summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/feed.rss2
-rw-r--r--docs/notebooks/phil3030-spring-2024.html2015
2 files changed, 2016 insertions, 1 deletions
diff --git a/docs/feed.rss b/docs/feed.rss
index eab44e8..39e3517 100644
--- a/docs/feed.rss
+++ b/docs/feed.rss
@@ -4,7 +4,7 @@
<link rel="alternate" type="text/html" href="https://web.navan.dev/"/>
<link rel="self" type="application/atom+xml" href="https://web.navan.dev/feed.rss"/>
<subtitle>Rare Tips, Tricks and Posts</subtitle>
- <updated>2024-04-26T01:40:20.777838</updated>
+ <updated>2024-04-28T23:16:15.648424</updated>
<author>
<name>Navan Chauhan</name>
</author>
diff --git a/docs/notebooks/phil3030-spring-2024.html b/docs/notebooks/phil3030-spring-2024.html
new file mode 100644
index 0000000..ba44508
--- /dev/null
+++ b/docs/notebooks/phil3030-spring-2024.html
@@ -0,0 +1,2015 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+
+ <meta charset="utf-8" />
+ <meta http-equiv="X-UA-Compatible" content="IE=EDGE" />
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+
+
+
+ <meta property="title" content="PHIL3030 Term Paper" />
+
+ <meta property="author" content="Navan Chauhan" />
+
+ <meta property="date" content="2024-04-28" />
+
+
+
+ <title>PHIL3030 Term Paper</title>
+
+ <!-- jquery -->
+ <script src="data:application/javascript;base64,LyohIGpRdWVyeSB2My42LjAgfCAoYykgT3BlbkpTIEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycyB8IGpxdWVyeS5vcmcvbGljZW5zZSAqLwohZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7Im9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlLmV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9ZS5kb2N1bWVudD90KGUsITApOmZ1bmN0aW9uKGUpe2lmKCFlLmRvY3VtZW50KXRocm93IG5ldyBFcnJvcigialF1ZXJ5IHJlcXVpcmVzIGEgd2luZG93IHdpdGggYSBkb2N1bWVudCIpO3JldHVybiB0KGUpfTp0KGUpfSgidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6dGhpcyxmdW5jdGlvbihDLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgdD1bXSxyPU9iamVjdC5nZXRQcm90b3R5cGVPZixzPXQuc2xpY2UsZz10LmZsYXQ/ZnVuY3Rpb24oZSl7cmV0dXJuIHQuZmxhdC5jYWxsKGUpfTpmdW5jdGlvbihlKXtyZXR1cm4gdC5jb25jYXQuYXBwbHkoW10sZSl9LHU9dC5wdXNoLGk9dC5pbmRleE9mLG49e30sbz1uLnRvU3RyaW5nLHY9bi5oYXNPd25Qcm9wZXJ0eSxhPXYudG9TdHJpbmcsbD1hLmNhbGwoT2JqZWN0KSx5PXt9LG09ZnVuY3Rpb24oZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGUmJiJudW1iZXIiIT10eXBlb2YgZS5ub2RlVHlwZSYmImZ1bmN0aW9uIiE9dHlwZW9mIGUuaXRlbX0seD1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbCE9ZSYmZT09PWUud2luZG93fSxFPUMuZG9jdW1lbnQsYz17dHlwZTohMCxzcmM6ITAsbm9uY2U6ITAsbm9Nb2R1bGU6ITB9O2Z1bmN0aW9uIGIoZSx0LG4pe3ZhciByLGksbz0obj1ufHxFKS5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtpZihvLnRleHQ9ZSx0KWZvcihyIGluIGMpKGk9dFtyXXx8dC5nZXRBdHRyaWJ1dGUmJnQuZ2V0QXR0cmlidXRlKHIpKSYmby5zZXRBdHRyaWJ1dGUocixpKTtuLmhlYWQuYXBwZW5kQ2hpbGQobykucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChvKX1mdW5jdGlvbiB3KGUpe3JldHVybiBudWxsPT1lP2UrIiI6Im9iamVjdCI9PXR5cGVvZiBlfHwiZnVuY3Rpb24iPT10eXBlb2YgZT9uW28uY2FsbChlKV18fCJvYmplY3QiOnR5cGVvZiBlfXZhciBmPSIzLjYuMCIsUz1mdW5jdGlvbihlLHQpe3JldHVybiBuZXcgUy5mbi5pbml0KGUsdCl9O2Z1bmN0aW9uIHAoZSl7dmFyIHQ9ISFlJiYibGVuZ3RoImluIGUmJmUubGVuZ3RoLG49dyhlKTtyZXR1cm4hbShlKSYmIXgoZSkmJigiYXJyYXkiPT09bnx8MD09PXR8fCJudW1iZXIiPT10eXBlb2YgdCYmMDx0JiZ0LTEgaW4gZSl9Uy5mbj1TLnByb3RvdHlwZT17anF1ZXJ5OmYsY29uc3RydWN0b3I6UyxsZW5ndGg6MCx0b0FycmF5OmZ1bmN0aW9uKCl7cmV0dXJuIHMuY2FsbCh0aGlzKX0sZ2V0OmZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lP3MuY2FsbCh0aGlzKTplPDA/dGhpc1tlK3RoaXMubGVuZ3RoXTp0aGlzW2VdfSxwdXNoU3RhY2s6ZnVuY3Rpb24oZSl7dmFyIHQ9Uy5tZXJnZSh0aGlzLmNvbnN0cnVjdG9yKCksZSk7cmV0dXJuIHQucHJldk9iamVjdD10aGlzLHR9LGVhY2g6ZnVuY3Rpb24oZSl7cmV0dXJuIFMuZWFjaCh0aGlzLGUpfSxtYXA6ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMucHVzaFN0YWNrKFMubWFwKHRoaXMsZnVuY3Rpb24oZSx0KXtyZXR1cm4gbi5jYWxsKGUsdCxlKX0pKX0sc2xpY2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2socy5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSxmaXJzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKDApfSxsYXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoLTEpfSxldmVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKFMuZ3JlcCh0aGlzLGZ1bmN0aW9uKGUsdCl7cmV0dXJuKHQrMSklMn0pKX0sb2RkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKFMuZ3JlcCh0aGlzLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQlMn0pKX0sZXE6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5sZW5ndGgsbj0rZSsoZTwwP3Q6MCk7cmV0dXJuIHRoaXMucHVzaFN0YWNrKDA8PW4mJm48dD9bdGhpc1tuXV06W10pfSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcmV2T2JqZWN0fHx0aGlzLmNvbnN0cnVjdG9yKCl9LHB1c2g6dSxzb3J0OnQuc29ydCxzcGxpY2U6dC5zcGxpY2V9LFMuZXh0ZW5kPVMuZm4uZXh0ZW5kPWZ1bmN0aW9uKCl7dmFyIGUsdCxuLHIsaSxvLGE9YXJndW1lbnRzWzBdfHx7fSxzPTEsdT1hcmd1bWVudHMubGVuZ3RoLGw9ITE7Zm9yKCJib29sZWFuIj09dHlwZW9mIGEmJihsPWEsYT1hcmd1bWVudHNbc118fHt9LHMrKyksIm9iamVjdCI9PXR5cGVvZiBhfHxtKGEpfHwoYT17fSkscz09PXUmJihhPXRoaXMscy0tKTtzPHU7cysrKWlmKG51bGwhPShlPWFyZ3VtZW50c1tzXSkpZm9yKHQgaW4gZSlyPWVbdF0sIl9fcHJvdG9fXyIhPT10JiZhIT09ciYmKGwmJnImJihTLmlzUGxhaW5PYmplY3Qocil8fChpPUFycmF5LmlzQXJyYXkocikpKT8obj1hW3RdLG89aSYmIUFycmF5LmlzQXJyYXkobik/W106aXx8Uy5pc1BsYWluT2JqZWN0KG4pP246e30saT0hMSxhW3RdPVMuZXh0ZW5kKGwsbyxyKSk6dm9pZCAwIT09ciYmKGFbdF09cikpO3JldHVybiBhfSxTLmV4dGVuZCh7ZXhwYW5kbzoialF1ZXJ5IisoZitNYXRoLnJhbmRvbSgpKS5yZXBsYWNlKC9cRC9nLCIiKSxpc1JlYWR5OiEwLGVycm9yOmZ1bmN0aW9uKGUpe3Rocm93IG5ldyBFcnJvcihlKX0sbm9vcDpmdW5jdGlvbigpe30saXNQbGFpbk9iamVjdDpmdW5jdGlvbihlKXt2YXIgdCxuO3JldHVybiEoIWV8fCJbb2JqZWN0IE9iamVjdF0iIT09by5jYWxsKGUpKSYmKCEodD1yKGUpKXx8ImZ1bmN0aW9uIj09dHlwZW9mKG49di5jYWxsKHQsImNvbnN0cnVjdG9yIikmJnQuY29uc3RydWN0b3IpJiZhLmNhbGwobik9PT1sKX0saXNFbXB0eU9iamVjdDpmdW5jdGlvbihlKXt2YXIgdDtmb3IodCBpbiBlKXJldHVybiExO3JldHVybiEwfSxnbG9iYWxFdmFsOmZ1bmN0aW9uKGUsdCxuKXtiKGUse25vbmNlOnQmJnQubm9uY2V9LG4pfSxlYWNoOmZ1bmN0aW9uKGUsdCl7dmFyIG4scj0wO2lmKHAoZSkpe2ZvcihuPWUubGVuZ3RoO3I8bjtyKyspaWYoITE9PT10LmNhbGwoZVtyXSxyLGVbcl0pKWJyZWFrfWVsc2UgZm9yKHIgaW4gZSlpZighMT09PXQuY2FsbChlW3JdLHIsZVtyXSkpYnJlYWs7cmV0dXJuIGV9LG1ha2VBcnJheTpmdW5jdGlvbihlLHQpe3ZhciBuPXR8fFtdO3JldHVybiBudWxsIT1lJiYocChPYmplY3QoZSkpP1MubWVyZ2Uobiwic3RyaW5nIj09dHlwZW9mIGU/W2VdOmUpOnUuY2FsbChuLGUpKSxufSxpbkFycmF5OmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbnVsbD09dD8tMTppLmNhbGwodCxlLG4pfSxtZXJnZTpmdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0rdC5sZW5ndGgscj0wLGk9ZS5sZW5ndGg7cjxuO3IrKyllW2krK109dFtyXTtyZXR1cm4gZS5sZW5ndGg9aSxlfSxncmVwOmZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIHI9W10saT0wLG89ZS5sZW5ndGgsYT0hbjtpPG87aSsrKSF0KGVbaV0saSkhPT1hJiZyLnB1c2goZVtpXSk7cmV0dXJuIHJ9LG1hcDpmdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvPTAsYT1bXTtpZihwKGUpKWZvcihyPWUubGVuZ3RoO288cjtvKyspbnVsbCE9KGk9dChlW29dLG8sbikpJiZhLnB1c2goaSk7ZWxzZSBmb3IobyBpbiBlKW51bGwhPShpPXQoZVtvXSxvLG4pKSYmYS5wdXNoKGkpO3JldHVybiBnKGEpfSxndWlkOjEsc3VwcG9ydDp5fSksImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKFMuZm5bU3ltYm9sLml0ZXJhdG9yXT10W1N5bWJvbC5pdGVyYXRvcl0pLFMuZWFjaCgiQm9vbGVhbiBOdW1iZXIgU3RyaW5nIEZ1bmN0aW9uIEFycmF5IERhdGUgUmVnRXhwIE9iamVjdCBFcnJvciBTeW1ib2wiLnNwbGl0KCIgIiksZnVuY3Rpb24oZSx0KXtuWyJbb2JqZWN0ICIrdCsiXSJdPXQudG9Mb3dlckNhc2UoKX0pO3ZhciBkPWZ1bmN0aW9uKG4pe3ZhciBlLGQsYixvLGksaCxmLGcsdyx1LGwsVCxDLGEsRSx2LHMsYyx5LFM9InNpenpsZSIrMSpuZXcgRGF0ZSxwPW4uZG9jdW1lbnQsaz0wLHI9MCxtPXVlKCkseD11ZSgpLEE9dWUoKSxOPXVlKCksaj1mdW5jdGlvbihlLHQpe3JldHVybiBlPT09dCYmKGw9ITApLDB9LEQ9e30uaGFzT3duUHJvcGVydHksdD1bXSxxPXQucG9wLEw9dC5wdXNoLEg9dC5wdXNoLE89dC5zbGljZSxQPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPTAscj1lLmxlbmd0aDtuPHI7bisrKWlmKGVbbl09PT10KXJldHVybiBuO3JldHVybi0xfSxSPSJjaGVja2VkfHNlbGVjdGVkfGFzeW5jfGF1dG9mb2N1c3xhdXRvcGxheXxjb250cm9sc3xkZWZlcnxkaXNhYmxlZHxoaWRkZW58aXNtYXB8bG9vcHxtdWx0aXBsZXxvcGVufHJlYWRvbmx5fHJlcXVpcmVkfHNjb3BlZCIsTT0iW1xceDIwXFx0XFxyXFxuXFxmXSIsST0iKD86XFxcXFtcXGRhLWZBLUZdezEsNn0iK00rIj98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15cMC1cXHg3Zl0pKyIsVz0iXFxbIitNKyIqKCIrSSsiKSg/OiIrTSsiKihbKl4kfCF+XT89KSIrTSsiKig/OicoKD86XFxcXC58W15cXFxcJ10pKiknfFwiKCg/OlxcXFwufFteXFxcXFwiXSkqKVwifCgiK0krIikpfCkiK00rIipcXF0iLEY9IjooIitJKyIpKD86XFwoKCgnKCg/OlxcXFwufFteXFxcXCddKSopJ3xcIigoPzpcXFxcLnxbXlxcXFxcIl0pKilcIil8KCg/OlxcXFwufFteXFxcXCgpW1xcXV18IitXKyIpKil8LiopXFwpfCkiLEI9bmV3IFJlZ0V4cChNKyIrIiwiZyIpLCQ9bmV3IFJlZ0V4cCgiXiIrTSsiK3woKD86XnxbXlxcXFxdKSg/OlxcXFwuKSopIitNKyIrJCIsImciKSxfPW5ldyBSZWdFeHAoIl4iK00rIiosIitNKyIqIiksej1uZXcgUmVnRXhwKCJeIitNKyIqKFs+K35dfCIrTSsiKSIrTSsiKiIpLFU9bmV3IFJlZ0V4cChNKyJ8PiIpLFg9bmV3IFJlZ0V4cChGKSxWPW5ldyBSZWdFeHAoIl4iK0krIiQiKSxHPXtJRDpuZXcgUmVnRXhwKCJeIygiK0krIikiKSxDTEFTUzpuZXcgUmVnRXhwKCJeXFwuKCIrSSsiKSIpLFRBRzpuZXcgUmVnRXhwKCJeKCIrSSsifFsqXSkiKSxBVFRSOm5ldyBSZWdFeHAoIl4iK1cpLFBTRVVETzpuZXcgUmVnRXhwKCJeIitGKSxDSElMRDpuZXcgUmVnRXhwKCJeOihvbmx5fGZpcnN0fGxhc3R8bnRofG50aC1sYXN0KS0oY2hpbGR8b2YtdHlwZSkoPzpcXCgiK00rIiooZXZlbnxvZGR8KChbKy1dfCkoXFxkKilufCkiK00rIiooPzooWystXXwpIitNKyIqKFxcZCspfCkpIitNKyIqXFwpfCkiLCJpIiksYm9vbDpuZXcgUmVnRXhwKCJeKD86IitSKyIpJCIsImkiKSxuZWVkc0NvbnRleHQ6bmV3IFJlZ0V4cCgiXiIrTSsiKls+K35dfDooZXZlbnxvZGR8ZXF8Z3R8bHR8bnRofGZpcnN0fGxhc3QpKD86XFwoIitNKyIqKCg/Oi1cXGQpP1xcZCopIitNKyIqXFwpfCkoPz1bXi1dfCQpIiwiaSIpfSxZPS9IVE1MJC9pLFE9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9uKSQvaSxKPS9eaFxkJC9pLEs9L15bXntdK1x7XHMqXFtuYXRpdmUgXHcvLFo9L14oPzojKFtcdy1dKyl8KFx3Kyl8XC4oW1x3LV0rKSkkLyxlZT0vWyt+XS8sdGU9bmV3IFJlZ0V4cCgiXFxcXFtcXGRhLWZBLUZdezEsNn0iK00rIj98XFxcXChbXlxcclxcblxcZl0pIiwiZyIpLG5lPWZ1bmN0aW9uKGUsdCl7dmFyIG49IjB4IitlLnNsaWNlKDEpLTY1NTM2O3JldHVybiB0fHwobjwwP1N0cmluZy5mcm9tQ2hhckNvZGUobis2NTUzNik6U3RyaW5nLmZyb21DaGFyQ29kZShuPj4xMHw1NTI5NiwxMDIzJm58NTYzMjApKX0scmU9LyhbXDAtXHgxZlx4N2ZdfF4tP1xkKXxeLSR8W15cMC1ceDFmXHg3Zi1cdUZGRkZcdy1dL2csaWU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD8iXDAiPT09ZT8iXHVmZmZkIjplLnNsaWNlKDAsLTEpKyJcXCIrZS5jaGFyQ29kZUF0KGUubGVuZ3RoLTEpLnRvU3RyaW5nKDE2KSsiICI6IlxcIitlfSxvZT1mdW5jdGlvbigpe1QoKX0sYWU9YmUoZnVuY3Rpb24oZSl7cmV0dXJuITA9PT1lLmRpc2FibGVkJiYiZmllbGRzZXQiPT09ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpfSx7ZGlyOiJwYXJlbnROb2RlIixuZXh0OiJsZWdlbmQifSk7dHJ5e0guYXBwbHkodD1PLmNhbGwocC5jaGlsZE5vZGVzKSxwLmNoaWxkTm9kZXMpLHRbcC5jaGlsZE5vZGVzLmxlbmd0aF0ubm9kZVR5cGV9Y2F0Y2goZSl7SD17YXBwbHk6dC5sZW5ndGg/ZnVuY3Rpb24oZSx0KXtMLmFwcGx5KGUsTy5jYWxsKHQpKX06ZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmxlbmd0aCxyPTA7d2hpbGUoZVtuKytdPXRbcisrXSk7ZS5sZW5ndGg9bi0xfX19ZnVuY3Rpb24gc2UodCxlLG4scil7dmFyIGksbyxhLHMsdSxsLGMsZj1lJiZlLm93bmVyRG9jdW1lbnQscD1lP2Uubm9kZVR5cGU6OTtpZihuPW58fFtdLCJzdHJpbmciIT10eXBlb2YgdHx8IXR8fDEhPT1wJiY5IT09cCYmMTEhPT1wKXJldHVybiBuO2lmKCFyJiYoVChlKSxlPWV8fEMsRSkpe2lmKDExIT09cCYmKHU9Wi5leGVjKHQpKSlpZihpPXVbMV0pe2lmKDk9PT1wKXtpZighKGE9ZS5nZXRFbGVtZW50QnlJZChpKSkpcmV0dXJuIG47aWYoYS5pZD09PWkpcmV0dXJuIG4ucHVzaChhKSxufWVsc2UgaWYoZiYmKGE9Zi5nZXRFbGVtZW50QnlJZChpKSkmJnkoZSxhKSYmYS5pZD09PWkpcmV0dXJuIG4ucHVzaChhKSxufWVsc2V7aWYodVsyXSlyZXR1cm4gSC5hcHBseShuLGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUodCkpLG47aWYoKGk9dVszXSkmJmQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSYmZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKXJldHVybiBILmFwcGx5KG4sZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGkpKSxufWlmKGQucXNhJiYhTlt0KyIgIl0mJighdnx8IXYudGVzdCh0KSkmJigxIT09cHx8Im9iamVjdCIhPT1lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpKXtpZihjPXQsZj1lLDE9PT1wJiYoVS50ZXN0KHQpfHx6LnRlc3QodCkpKXsoZj1lZS50ZXN0KHQpJiZ5ZShlLnBhcmVudE5vZGUpfHxlKT09PWUmJmQuc2NvcGV8fCgocz1lLmdldEF0dHJpYnV0ZSgiaWQiKSk/cz1zLnJlcGxhY2UocmUsaWUpOmUuc2V0QXR0cmlidXRlKCJpZCIscz1TKSksbz0obD1oKHQpKS5sZW5ndGg7d2hpbGUoby0tKWxbb109KHM/IiMiK3M6IjpzY29wZSIpKyIgIit4ZShsW29dKTtjPWwuam9pbigiLCIpfXRyeXtyZXR1cm4gSC5hcHBseShuLGYucXVlcnlTZWxlY3RvckFsbChjKSksbn1jYXRjaChlKXtOKHQsITApfWZpbmFsbHl7cz09PVMmJmUucmVtb3ZlQXR0cmlidXRlKCJpZCIpfX19cmV0dXJuIGcodC5yZXBsYWNlKCQsIiQxIiksZSxuLHIpfWZ1bmN0aW9uIHVlKCl7dmFyIHI9W107cmV0dXJuIGZ1bmN0aW9uIGUodCxuKXtyZXR1cm4gci5wdXNoKHQrIiAiKT5iLmNhY2hlTGVuZ3RoJiZkZWxldGUgZVtyLnNoaWZ0KCldLGVbdCsiICJdPW59fWZ1bmN0aW9uIGxlKGUpe3JldHVybiBlW1NdPSEwLGV9ZnVuY3Rpb24gY2UoZSl7dmFyIHQ9Qy5jcmVhdGVFbGVtZW50KCJmaWVsZHNldCIpO3RyeXtyZXR1cm4hIWUodCl9Y2F0Y2goZSl7cmV0dXJuITF9ZmluYWxseXt0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KSx0PW51bGx9fWZ1bmN0aW9uIGZlKGUsdCl7dmFyIG49ZS5zcGxpdCgifCIpLHI9bi5sZW5ndGg7d2hpbGUoci0tKWIuYXR0ckhhbmRsZVtuW3JdXT10fWZ1bmN0aW9uIHBlKGUsdCl7dmFyIG49dCYmZSxyPW4mJjE9PT1lLm5vZGVUeXBlJiYxPT09dC5ub2RlVHlwZSYmZS5zb3VyY2VJbmRleC10LnNvdXJjZUluZGV4O2lmKHIpcmV0dXJuIHI7aWYobil3aGlsZShuPW4ubmV4dFNpYmxpbmcpaWYobj09PXQpcmV0dXJuLTE7cmV0dXJuIGU/MTotMX1mdW5jdGlvbiBkZSh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuImlucHV0Ij09PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmZS50eXBlPT09dH19ZnVuY3Rpb24gaGUobil7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciB0PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4oImlucHV0Ij09PXR8fCJidXR0b24iPT09dCkmJmUudHlwZT09PW59fWZ1bmN0aW9uIGdlKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4iZm9ybSJpbiBlP2UucGFyZW50Tm9kZSYmITE9PT1lLmRpc2FibGVkPyJsYWJlbCJpbiBlPyJsYWJlbCJpbiBlLnBhcmVudE5vZGU/ZS5wYXJlbnROb2RlLmRpc2FibGVkPT09dDplLmRpc2FibGVkPT09dDplLmlzRGlzYWJsZWQ9PT10fHxlLmlzRGlzYWJsZWQhPT0hdCYmYWUoZSk9PT10OmUuZGlzYWJsZWQ9PT10OiJsYWJlbCJpbiBlJiZlLmRpc2FibGVkPT09dH19ZnVuY3Rpb24gdmUoYSl7cmV0dXJuIGxlKGZ1bmN0aW9uKG8pe3JldHVybiBvPStvLGxlKGZ1bmN0aW9uKGUsdCl7dmFyIG4scj1hKFtdLGUubGVuZ3RoLG8pLGk9ci5sZW5ndGg7d2hpbGUoaS0tKWVbbj1yW2ldXSYmKGVbbl09ISh0W25dPWVbbl0pKX0pfSl9ZnVuY3Rpb24geWUoZSl7cmV0dXJuIGUmJiJ1bmRlZmluZWQiIT10eXBlb2YgZS5nZXRFbGVtZW50c0J5VGFnTmFtZSYmZX1mb3IoZSBpbiBkPXNlLnN1cHBvcnQ9e30saT1zZS5pc1hNTD1mdW5jdGlvbihlKXt2YXIgdD1lJiZlLm5hbWVzcGFjZVVSSSxuPWUmJihlLm93bmVyRG9jdW1lbnR8fGUpLmRvY3VtZW50RWxlbWVudDtyZXR1cm4hWS50ZXN0KHR8fG4mJm4ubm9kZU5hbWV8fCJIVE1MIil9LFQ9c2Uuc2V0RG9jdW1lbnQ9ZnVuY3Rpb24oZSl7dmFyIHQsbixyPWU/ZS5vd25lckRvY3VtZW50fHxlOnA7cmV0dXJuIHIhPUMmJjk9PT1yLm5vZGVUeXBlJiZyLmRvY3VtZW50RWxlbWVudCYmKGE9KEM9cikuZG9jdW1lbnRFbGVtZW50LEU9IWkoQykscCE9QyYmKG49Qy5kZWZhdWx0VmlldykmJm4udG9wIT09biYmKG4uYWRkRXZlbnRMaXN0ZW5lcj9uLmFkZEV2ZW50TGlzdGVuZXIoInVubG9hZCIsb2UsITEpOm4uYXR0YWNoRXZlbnQmJm4uYXR0YWNoRXZlbnQoIm9udW5sb2FkIixvZSkpLGQuc2NvcGU9Y2UoZnVuY3Rpb24oZSl7cmV0dXJuIGEuYXBwZW5kQ2hpbGQoZSkuYXBwZW5kQ2hpbGQoQy5jcmVhdGVFbGVtZW50KCJkaXYiKSksInVuZGVmaW5lZCIhPXR5cGVvZiBlLnF1ZXJ5U2VsZWN0b3JBbGwmJiFlLnF1ZXJ5U2VsZWN0b3JBbGwoIjpzY29wZSBmaWVsZHNldCBkaXYiKS5sZW5ndGh9KSxkLmF0dHJpYnV0ZXM9Y2UoZnVuY3Rpb24oZSl7cmV0dXJuIGUuY2xhc3NOYW1lPSJpIiwhZS5nZXRBdHRyaWJ1dGUoImNsYXNzTmFtZSIpfSksZC5nZXRFbGVtZW50c0J5VGFnTmFtZT1jZShmdW5jdGlvbihlKXtyZXR1cm4gZS5hcHBlbmRDaGlsZChDLmNyZWF0ZUNvbW1lbnQoIiIpKSwhZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLmxlbmd0aH0pLGQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZT1LLnRlc3QoQy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKSxkLmdldEJ5SWQ9Y2UoZnVuY3Rpb24oZSl7cmV0dXJuIGEuYXBwZW5kQ2hpbGQoZSkuaWQ9UywhQy5nZXRFbGVtZW50c0J5TmFtZXx8IUMuZ2V0RWxlbWVudHNCeU5hbWUoUykubGVuZ3RofSksZC5nZXRCeUlkPyhiLmZpbHRlci5JRD1mdW5jdGlvbihlKXt2YXIgdD1lLnJlcGxhY2UodGUsbmUpO3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXRBdHRyaWJ1dGUoImlkIik9PT10fX0sYi5maW5kLklEPWZ1bmN0aW9uKGUsdCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB0LmdldEVsZW1lbnRCeUlkJiZFKXt2YXIgbj10LmdldEVsZW1lbnRCeUlkKGUpO3JldHVybiBuP1tuXTpbXX19KTooYi5maWx0ZXIuSUQ9ZnVuY3Rpb24oZSl7dmFyIG49ZS5yZXBsYWNlKHRlLG5lKTtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHQ9InVuZGVmaW5lZCIhPXR5cGVvZiBlLmdldEF0dHJpYnV0ZU5vZGUmJmUuZ2V0QXR0cmlidXRlTm9kZSgiaWQiKTtyZXR1cm4gdCYmdC52YWx1ZT09PW59fSxiLmZpbmQuSUQ9ZnVuY3Rpb24oZSx0KXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIHQuZ2V0RWxlbWVudEJ5SWQmJkUpe3ZhciBuLHIsaSxvPXQuZ2V0RWxlbWVudEJ5SWQoZSk7aWYobyl7aWYoKG49by5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpKSYmbi52YWx1ZT09PWUpcmV0dXJuW29dO2k9dC5nZXRFbGVtZW50c0J5TmFtZShlKSxyPTA7d2hpbGUobz1pW3IrK10paWYoKG49by5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpKSYmbi52YWx1ZT09PWUpcmV0dXJuW29dfXJldHVybltdfX0pLGIuZmluZC5UQUc9ZC5nZXRFbGVtZW50c0J5VGFnTmFtZT9mdW5jdGlvbihlLHQpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgdC5nZXRFbGVtZW50c0J5VGFnTmFtZT90LmdldEVsZW1lbnRzQnlUYWdOYW1lKGUpOmQucXNhP3QucXVlcnlTZWxlY3RvckFsbChlKTp2b2lkIDB9OmZ1bmN0aW9uKGUsdCl7dmFyIG4scj1bXSxpPTAsbz10LmdldEVsZW1lbnRzQnlUYWdOYW1lKGUpO2lmKCIqIj09PWUpe3doaWxlKG49b1tpKytdKTE9PT1uLm5vZGVUeXBlJiZyLnB1c2gobik7cmV0dXJuIHJ9cmV0dXJuIG99LGIuZmluZC5DTEFTUz1kLmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJmZ1bmN0aW9uKGUsdCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJkUpcmV0dXJuIHQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShlKX0scz1bXSx2PVtdLChkLnFzYT1LLnRlc3QoQy5xdWVyeVNlbGVjdG9yQWxsKSkmJihjZShmdW5jdGlvbihlKXt2YXIgdDthLmFwcGVuZENoaWxkKGUpLmlubmVySFRNTD0iPGEgaWQ9JyIrUysiJz48L2E+PHNlbGVjdCBpZD0nIitTKyItXHJcXCcgbXNhbGxvd2NhcHR1cmU9Jyc+PG9wdGlvbiBzZWxlY3RlZD0nJz48L29wdGlvbj48L3NlbGVjdD4iLGUucXVlcnlTZWxlY3RvckFsbCgiW21zYWxsb3djYXB0dXJlXj0nJ10iKS5sZW5ndGgmJnYucHVzaCgiWypeJF09IitNKyIqKD86Jyd8XCJcIikiKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIltzZWxlY3RlZF0iKS5sZW5ndGh8fHYucHVzaCgiXFxbIitNKyIqKD86dmFsdWV8IitSKyIpIiksZS5xdWVyeVNlbGVjdG9yQWxsKCJbaWR+PSIrUysiLV0iKS5sZW5ndGh8fHYucHVzaCgifj0iKSwodD1DLmNyZWF0ZUVsZW1lbnQoImlucHV0IikpLnNldEF0dHJpYnV0ZSgibmFtZSIsIiIpLGUuYXBwZW5kQ2hpbGQodCksZS5xdWVyeVNlbGVjdG9yQWxsKCJbbmFtZT0nJ10iKS5sZW5ndGh8fHYucHVzaCgiXFxbIitNKyIqbmFtZSIrTSsiKj0iK00rIiooPzonJ3xcIlwiKSIpLGUucXVlcnlTZWxlY3RvckFsbCgiOmNoZWNrZWQiKS5sZW5ndGh8fHYucHVzaCgiOmNoZWNrZWQiKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoImEjIitTKyIrKiIpLmxlbmd0aHx8di5wdXNoKCIuIy4rWyt+XSIpLGUucXVlcnlTZWxlY3RvckFsbCgiXFxcZiIpLHYucHVzaCgiW1xcclxcblxcZl0iKX0pLGNlKGZ1bmN0aW9uKGUpe2UuaW5uZXJIVE1MPSI8YSBocmVmPScnIGRpc2FibGVkPSdkaXNhYmxlZCc+PC9hPjxzZWxlY3QgZGlzYWJsZWQ9J2Rpc2FibGVkJz48b3B0aW9uLz48L3NlbGVjdD4iO3ZhciB0PUMuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTt0LnNldEF0dHJpYnV0ZSgidHlwZSIsImhpZGRlbiIpLGUuYXBwZW5kQ2hpbGQodCkuc2V0QXR0cmlidXRlKCJuYW1lIiwiRCIpLGUucXVlcnlTZWxlY3RvckFsbCgiW25hbWU9ZF0iKS5sZW5ndGgmJnYucHVzaCgibmFtZSIrTSsiKlsqXiR8IX5dPz0iKSwyIT09ZS5xdWVyeVNlbGVjdG9yQWxsKCI6ZW5hYmxlZCIpLmxlbmd0aCYmdi5wdXNoKCI6ZW5hYmxlZCIsIjpkaXNhYmxlZCIpLGEuYXBwZW5kQ2hpbGQoZSkuZGlzYWJsZWQ9ITAsMiE9PWUucXVlcnlTZWxlY3RvckFsbCgiOmRpc2FibGVkIikubGVuZ3RoJiZ2LnB1c2goIjplbmFibGVkIiwiOmRpc2FibGVkIiksZS5xdWVyeVNlbGVjdG9yQWxsKCIqLDp4Iiksdi5wdXNoKCIsLio6Iil9KSksKGQubWF0Y2hlc1NlbGVjdG9yPUsudGVzdChjPWEubWF0Y2hlc3x8YS53ZWJraXRNYXRjaGVzU2VsZWN0b3J8fGEubW96TWF0Y2hlc1NlbGVjdG9yfHxhLm9NYXRjaGVzU2VsZWN0b3J8fGEubXNNYXRjaGVzU2VsZWN0b3IpKSYmY2UoZnVuY3Rpb24oZSl7ZC5kaXNjb25uZWN0ZWRNYXRjaD1jLmNhbGwoZSwiKiIpLGMuY2FsbChlLCJbcyE9JyddOngiKSxzLnB1c2goIiE9IixGKX0pLHY9di5sZW5ndGgmJm5ldyBSZWdFeHAodi5qb2luKCJ8IikpLHM9cy5sZW5ndGgmJm5ldyBSZWdFeHAocy5qb2luKCJ8IikpLHQ9Sy50ZXN0KGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24pLHk9dHx8Sy50ZXN0KGEuY29udGFpbnMpP2Z1bmN0aW9uKGUsdCl7dmFyIG49OT09PWUubm9kZVR5cGU/ZS5kb2N1bWVudEVsZW1lbnQ6ZSxyPXQmJnQucGFyZW50Tm9kZTtyZXR1cm4gZT09PXJ8fCEoIXJ8fDEhPT1yLm5vZGVUeXBlfHwhKG4uY29udGFpbnM/bi5jb250YWlucyhyKTplLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uJiYxNiZlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHIpKSl9OmZ1bmN0aW9uKGUsdCl7aWYodCl3aGlsZSh0PXQucGFyZW50Tm9kZSlpZih0PT09ZSlyZXR1cm4hMDtyZXR1cm4hMX0saj10P2Z1bmN0aW9uKGUsdCl7aWYoZT09PXQpcmV0dXJuIGw9ITAsMDt2YXIgbj0hZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbi0hdC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbjtyZXR1cm4gbnx8KDEmKG49KGUub3duZXJEb2N1bWVudHx8ZSk9PSh0Lm93bmVyRG9jdW1lbnR8fHQpP2UuY29tcGFyZURvY3VtZW50UG9zaXRpb24odCk6MSl8fCFkLnNvcnREZXRhY2hlZCYmdC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlKT09PW4/ZT09Q3x8ZS5vd25lckRvY3VtZW50PT1wJiZ5KHAsZSk/LTE6dD09Q3x8dC5vd25lckRvY3VtZW50PT1wJiZ5KHAsdCk/MTp1P1AodSxlKS1QKHUsdCk6MDo0Jm4/LTE6MSl9OmZ1bmN0aW9uKGUsdCl7aWYoZT09PXQpcmV0dXJuIGw9ITAsMDt2YXIgbixyPTAsaT1lLnBhcmVudE5vZGUsbz10LnBhcmVudE5vZGUsYT1bZV0scz1bdF07aWYoIWl8fCFvKXJldHVybiBlPT1DPy0xOnQ9PUM/MTppPy0xOm8/MTp1P1AodSxlKS1QKHUsdCk6MDtpZihpPT09bylyZXR1cm4gcGUoZSx0KTtuPWU7d2hpbGUobj1uLnBhcmVudE5vZGUpYS51bnNoaWZ0KG4pO249dDt3aGlsZShuPW4ucGFyZW50Tm9kZSlzLnVuc2hpZnQobik7d2hpbGUoYVtyXT09PXNbcl0pcisrO3JldHVybiByP3BlKGFbcl0sc1tyXSk6YVtyXT09cD8tMTpzW3JdPT1wPzE6MH0pLEN9LHNlLm1hdGNoZXM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gc2UoZSxudWxsLG51bGwsdCl9LHNlLm1hdGNoZXNTZWxlY3Rvcj1mdW5jdGlvbihlLHQpe2lmKFQoZSksZC5tYXRjaGVzU2VsZWN0b3ImJkUmJiFOW3QrIiAiXSYmKCFzfHwhcy50ZXN0KHQpKSYmKCF2fHwhdi50ZXN0KHQpKSl0cnl7dmFyIG49Yy5jYWxsKGUsdCk7aWYobnx8ZC5kaXNjb25uZWN0ZWRNYXRjaHx8ZS5kb2N1bWVudCYmMTEhPT1lLmRvY3VtZW50Lm5vZGVUeXBlKXJldHVybiBufWNhdGNoKGUpe04odCwhMCl9cmV0dXJuIDA8c2UodCxDLG51bGwsW2VdKS5sZW5ndGh9LHNlLmNvbnRhaW5zPWZ1bmN0aW9uKGUsdCl7cmV0dXJuKGUub3duZXJEb2N1bWVudHx8ZSkhPUMmJlQoZSkseShlLHQpfSxzZS5hdHRyPWZ1bmN0aW9uKGUsdCl7KGUub3duZXJEb2N1bWVudHx8ZSkhPUMmJlQoZSk7dmFyIG49Yi5hdHRySGFuZGxlW3QudG9Mb3dlckNhc2UoKV0scj1uJiZELmNhbGwoYi5hdHRySGFuZGxlLHQudG9Mb3dlckNhc2UoKSk/bihlLHQsIUUpOnZvaWQgMDtyZXR1cm4gdm9pZCAwIT09cj9yOmQuYXR0cmlidXRlc3x8IUU/ZS5nZXRBdHRyaWJ1dGUodCk6KHI9ZS5nZXRBdHRyaWJ1dGVOb2RlKHQpKSYmci5zcGVjaWZpZWQ/ci52YWx1ZTpudWxsfSxzZS5lc2NhcGU9ZnVuY3Rpb24oZSl7cmV0dXJuKGUrIiIpLnJlcGxhY2UocmUsaWUpfSxzZS5lcnJvcj1mdW5jdGlvbihlKXt0aHJvdyBuZXcgRXJyb3IoIlN5bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246ICIrZSl9LHNlLnVuaXF1ZVNvcnQ9ZnVuY3Rpb24oZSl7dmFyIHQsbj1bXSxyPTAsaT0wO2lmKGw9IWQuZGV0ZWN0RHVwbGljYXRlcyx1PSFkLnNvcnRTdGFibGUmJmUuc2xpY2UoMCksZS5zb3J0KGopLGwpe3doaWxlKHQ9ZVtpKytdKXQ9PT1lW2ldJiYocj1uLnB1c2goaSkpO3doaWxlKHItLSllLnNwbGljZShuW3JdLDEpfXJldHVybiB1PW51bGwsZX0sbz1zZS5nZXRUZXh0PWZ1bmN0aW9uKGUpe3ZhciB0LG49IiIscj0wLGk9ZS5ub2RlVHlwZTtpZihpKXtpZigxPT09aXx8OT09PWl8fDExPT09aSl7aWYoInN0cmluZyI9PXR5cGVvZiBlLnRleHRDb250ZW50KXJldHVybiBlLnRleHRDb250ZW50O2ZvcihlPWUuZmlyc3RDaGlsZDtlO2U9ZS5uZXh0U2libGluZyluKz1vKGUpfWVsc2UgaWYoMz09PWl8fDQ9PT1pKXJldHVybiBlLm5vZGVWYWx1ZX1lbHNlIHdoaWxlKHQ9ZVtyKytdKW4rPW8odCk7cmV0dXJuIG59LChiPXNlLnNlbGVjdG9ycz17Y2FjaGVMZW5ndGg6NTAsY3JlYXRlUHNldWRvOmxlLG1hdGNoOkcsYXR0ckhhbmRsZTp7fSxmaW5kOnt9LHJlbGF0aXZlOnsiPiI6e2RpcjoicGFyZW50Tm9kZSIsZmlyc3Q6ITB9LCIgIjp7ZGlyOiJwYXJlbnROb2RlIn0sIisiOntkaXI6InByZXZpb3VzU2libGluZyIsZmlyc3Q6ITB9LCJ+Ijp7ZGlyOiJwcmV2aW91c1NpYmxpbmcifX0scHJlRmlsdGVyOntBVFRSOmZ1bmN0aW9uKGUpe3JldHVybiBlWzFdPWVbMV0ucmVwbGFjZSh0ZSxuZSksZVszXT0oZVszXXx8ZVs0XXx8ZVs1XXx8IiIpLnJlcGxhY2UodGUsbmUpLCJ+PSI9PT1lWzJdJiYoZVszXT0iICIrZVszXSsiICIpLGUuc2xpY2UoMCw0KX0sQ0hJTEQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGVbMV09ZVsxXS50b0xvd2VyQ2FzZSgpLCJudGgiPT09ZVsxXS5zbGljZSgwLDMpPyhlWzNdfHxzZS5lcnJvcihlWzBdKSxlWzRdPSsoZVs0XT9lWzVdKyhlWzZdfHwxKToyKigiZXZlbiI9PT1lWzNdfHwib2RkIj09PWVbM10pKSxlWzVdPSsoZVs3XStlWzhdfHwib2RkIj09PWVbM10pKTplWzNdJiZzZS5lcnJvcihlWzBdKSxlfSxQU0VVRE86ZnVuY3Rpb24oZSl7dmFyIHQsbj0hZVs2XSYmZVsyXTtyZXR1cm4gRy5DSElMRC50ZXN0KGVbMF0pP251bGw6KGVbM10/ZVsyXT1lWzRdfHxlWzVdfHwiIjpuJiZYLnRlc3QobikmJih0PWgobiwhMCkpJiYodD1uLmluZGV4T2YoIikiLG4ubGVuZ3RoLXQpLW4ubGVuZ3RoKSYmKGVbMF09ZVswXS5zbGljZSgwLHQpLGVbMl09bi5zbGljZSgwLHQpKSxlLnNsaWNlKDAsMykpfX0sZmlsdGVyOntUQUc6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5yZXBsYWNlKHRlLG5lKS50b0xvd2VyQ2FzZSgpO3JldHVybiIqIj09PWU/ZnVuY3Rpb24oKXtyZXR1cm4hMH06ZnVuY3Rpb24oZSl7cmV0dXJuIGUubm9kZU5hbWUmJmUubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PXR9fSxDTEFTUzpmdW5jdGlvbihlKXt2YXIgdD1tW2UrIiAiXTtyZXR1cm4gdHx8KHQ9bmV3IFJlZ0V4cCgiKF58IitNKyIpIitlKyIoIitNKyJ8JCkiKSkmJm0oZSxmdW5jdGlvbihlKXtyZXR1cm4gdC50ZXN0KCJzdHJpbmciPT10eXBlb2YgZS5jbGFzc05hbWUmJmUuY2xhc3NOYW1lfHwidW5kZWZpbmVkIiE9dHlwZW9mIGUuZ2V0QXR0cmlidXRlJiZlLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIpfSl9LEFUVFI6ZnVuY3Rpb24obixyLGkpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgdD1zZS5hdHRyKGUsbik7cmV0dXJuIG51bGw9PXQ/IiE9Ij09PXI6IXJ8fCh0Kz0iIiwiPSI9PT1yP3Q9PT1pOiIhPSI9PT1yP3QhPT1pOiJePSI9PT1yP2kmJjA9PT10LmluZGV4T2YoaSk6Iio9Ij09PXI/aSYmLTE8dC5pbmRleE9mKGkpOiIkPSI9PT1yP2kmJnQuc2xpY2UoLWkubGVuZ3RoKT09PWk6In49Ij09PXI/LTE8KCIgIit0LnJlcGxhY2UoQiwiICIpKyIgIikuaW5kZXhPZihpKToifD0iPT09ciYmKHQ9PT1pfHx0LnNsaWNlKDAsaS5sZW5ndGgrMSk9PT1pKyItIikpfX0sQ0hJTEQ6ZnVuY3Rpb24oaCxlLHQsZyx2KXt2YXIgeT0ibnRoIiE9PWguc2xpY2UoMCwzKSxtPSJsYXN0IiE9PWguc2xpY2UoLTQpLHg9Im9mLXR5cGUiPT09ZTtyZXR1cm4gMT09PWcmJjA9PT12P2Z1bmN0aW9uKGUpe3JldHVybiEhZS5wYXJlbnROb2RlfTpmdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvLGEscyx1LGw9eSE9PW0/Im5leHRTaWJsaW5nIjoicHJldmlvdXNTaWJsaW5nIixjPWUucGFyZW50Tm9kZSxmPXgmJmUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxwPSFuJiYheCxkPSExO2lmKGMpe2lmKHkpe3doaWxlKGwpe2E9ZTt3aGlsZShhPWFbbF0paWYoeD9hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1mOjE9PT1hLm5vZGVUeXBlKXJldHVybiExO3U9bD0ib25seSI9PT1oJiYhdSYmIm5leHRTaWJsaW5nIn1yZXR1cm4hMH1pZih1PVttP2MuZmlyc3RDaGlsZDpjLmxhc3RDaGlsZF0sbSYmcCl7ZD0ocz0ocj0oaT0obz0oYT1jKVtTXXx8KGFbU109e30pKVthLnVuaXF1ZUlEXXx8KG9bYS51bmlxdWVJRF09e30pKVtoXXx8W10pWzBdPT09ayYmclsxXSkmJnJbMl0sYT1zJiZjLmNoaWxkTm9kZXNbc107d2hpbGUoYT0rK3MmJmEmJmFbbF18fChkPXM9MCl8fHUucG9wKCkpaWYoMT09PWEubm9kZVR5cGUmJisrZCYmYT09PWUpe2lbaF09W2sscyxkXTticmVha319ZWxzZSBpZihwJiYoZD1zPShyPShpPShvPShhPWUpW1NdfHwoYVtTXT17fSkpW2EudW5pcXVlSURdfHwob1thLnVuaXF1ZUlEXT17fSkpW2hdfHxbXSlbMF09PT1rJiZyWzFdKSwhMT09PWQpd2hpbGUoYT0rK3MmJmEmJmFbbF18fChkPXM9MCl8fHUucG9wKCkpaWYoKHg/YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09ZjoxPT09YS5ub2RlVHlwZSkmJisrZCYmKHAmJigoaT0obz1hW1NdfHwoYVtTXT17fSkpW2EudW5pcXVlSURdfHwob1thLnVuaXF1ZUlEXT17fSkpW2hdPVtrLGRdKSxhPT09ZSkpYnJlYWs7cmV0dXJuKGQtPXYpPT09Z3x8ZCVnPT0wJiYwPD1kL2d9fX0sUFNFVURPOmZ1bmN0aW9uKGUsbyl7dmFyIHQsYT1iLnBzZXVkb3NbZV18fGIuc2V0RmlsdGVyc1tlLnRvTG93ZXJDYXNlKCldfHxzZS5lcnJvcigidW5zdXBwb3J0ZWQgcHNldWRvOiAiK2UpO3JldHVybiBhW1NdP2Eobyk6MTxhLmxlbmd0aD8odD1bZSxlLCIiLG9dLGIuc2V0RmlsdGVycy5oYXNPd25Qcm9wZXJ0eShlLnRvTG93ZXJDYXNlKCkpP2xlKGZ1bmN0aW9uKGUsdCl7dmFyIG4scj1hKGUsbyksaT1yLmxlbmd0aDt3aGlsZShpLS0pZVtuPVAoZSxyW2ldKV09ISh0W25dPXJbaV0pfSk6ZnVuY3Rpb24oZSl7cmV0dXJuIGEoZSwwLHQpfSk6YX19LHBzZXVkb3M6e25vdDpsZShmdW5jdGlvbihlKXt2YXIgcj1bXSxpPVtdLHM9ZihlLnJlcGxhY2UoJCwiJDEiKSk7cmV0dXJuIHNbU10/bGUoZnVuY3Rpb24oZSx0LG4scil7dmFyIGksbz1zKGUsbnVsbCxyLFtdKSxhPWUubGVuZ3RoO3doaWxlKGEtLSkoaT1vW2FdKSYmKGVbYV09ISh0W2FdPWkpKX0pOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gclswXT1lLHMocixudWxsLG4saSksclswXT1udWxsLCFpLnBvcCgpfX0pLGhhczpsZShmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIDA8c2UodCxlKS5sZW5ndGh9fSksY29udGFpbnM6bGUoZnVuY3Rpb24odCl7cmV0dXJuIHQ9dC5yZXBsYWNlKHRlLG5lKSxmdW5jdGlvbihlKXtyZXR1cm4tMTwoZS50ZXh0Q29udGVudHx8byhlKSkuaW5kZXhPZih0KX19KSxsYW5nOmxlKGZ1bmN0aW9uKG4pe3JldHVybiBWLnRlc3Qobnx8IiIpfHxzZS5lcnJvcigidW5zdXBwb3J0ZWQgbGFuZzogIituKSxuPW4ucmVwbGFjZSh0ZSxuZSkudG9Mb3dlckNhc2UoKSxmdW5jdGlvbihlKXt2YXIgdDtkb3tpZih0PUU/ZS5sYW5nOmUuZ2V0QXR0cmlidXRlKCJ4bWw6bGFuZyIpfHxlLmdldEF0dHJpYnV0ZSgibGFuZyIpKXJldHVybih0PXQudG9Mb3dlckNhc2UoKSk9PT1ufHwwPT09dC5pbmRleE9mKG4rIi0iKX13aGlsZSgoZT1lLnBhcmVudE5vZGUpJiYxPT09ZS5ub2RlVHlwZSk7cmV0dXJuITF9fSksdGFyZ2V0OmZ1bmN0aW9uKGUpe3ZhciB0PW4ubG9jYXRpb24mJm4ubG9jYXRpb24uaGFzaDtyZXR1cm4gdCYmdC5zbGljZSgxKT09PWUuaWR9LHJvb3Q6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT1hfSxmb2N1czpmdW5jdGlvbihlKXtyZXR1cm4gZT09PUMuYWN0aXZlRWxlbWVudCYmKCFDLmhhc0ZvY3VzfHxDLmhhc0ZvY3VzKCkpJiYhIShlLnR5cGV8fGUuaHJlZnx8fmUudGFiSW5kZXgpfSxlbmFibGVkOmdlKCExKSxkaXNhYmxlZDpnZSghMCksY2hlY2tlZDpmdW5jdGlvbihlKXt2YXIgdD1lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PXQmJiEhZS5jaGVja2VkfHwib3B0aW9uIj09PXQmJiEhZS5zZWxlY3RlZH0sc2VsZWN0ZWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUucGFyZW50Tm9kZSYmZS5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXgsITA9PT1lLnNlbGVjdGVkfSxlbXB0eTpmdW5jdGlvbihlKXtmb3IoZT1lLmZpcnN0Q2hpbGQ7ZTtlPWUubmV4dFNpYmxpbmcpaWYoZS5ub2RlVHlwZTw2KXJldHVybiExO3JldHVybiEwfSxwYXJlbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIWIucHNldWRvcy5lbXB0eShlKX0saGVhZGVyOmZ1bmN0aW9uKGUpe3JldHVybiBKLnRlc3QoZS5ub2RlTmFtZSl9LGlucHV0OmZ1bmN0aW9uKGUpe3JldHVybiBRLnRlc3QoZS5ub2RlTmFtZSl9LGJ1dHRvbjpmdW5jdGlvbihlKXt2YXIgdD1lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PXQmJiJidXR0b24iPT09ZS50eXBlfHwiYnV0dG9uIj09PXR9LHRleHQ6ZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuImlucHV0Ij09PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmInRleHQiPT09ZS50eXBlJiYobnVsbD09KHQ9ZS5nZXRBdHRyaWJ1dGUoInR5cGUiKSl8fCJ0ZXh0Ij09PXQudG9Mb3dlckNhc2UoKSl9LGZpcnN0OnZlKGZ1bmN0aW9uKCl7cmV0dXJuWzBdfSksbGFzdDp2ZShmdW5jdGlvbihlLHQpe3JldHVyblt0LTFdfSksZXE6dmUoZnVuY3Rpb24oZSx0LG4pe3JldHVybltuPDA/bit0Om5dfSksZXZlbjp2ZShmdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0wO248dDtuKz0yKWUucHVzaChuKTtyZXR1cm4gZX0pLG9kZDp2ZShmdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0xO248dDtuKz0yKWUucHVzaChuKTtyZXR1cm4gZX0pLGx0OnZlKGZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIHI9bjwwP24rdDp0PG4/dDpuOzA8PS0tcjspZS5wdXNoKHIpO3JldHVybiBlfSksZ3Q6dmUoZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgcj1uPDA/bit0Om47KytyPHQ7KWUucHVzaChyKTtyZXR1cm4gZX0pfX0pLnBzZXVkb3MubnRoPWIucHNldWRvcy5lcSx7cmFkaW86ITAsY2hlY2tib3g6ITAsZmlsZTohMCxwYXNzd29yZDohMCxpbWFnZTohMH0pYi5wc2V1ZG9zW2VdPWRlKGUpO2ZvcihlIGlue3N1Ym1pdDohMCxyZXNldDohMH0pYi5wc2V1ZG9zW2VdPWhlKGUpO2Z1bmN0aW9uIG1lKCl7fWZ1bmN0aW9uIHhlKGUpe2Zvcih2YXIgdD0wLG49ZS5sZW5ndGgscj0iIjt0PG47dCsrKXIrPWVbdF0udmFsdWU7cmV0dXJuIHJ9ZnVuY3Rpb24gYmUocyxlLHQpe3ZhciB1PWUuZGlyLGw9ZS5uZXh0LGM9bHx8dSxmPXQmJiJwYXJlbnROb2RlIj09PWMscD1yKys7cmV0dXJuIGUuZmlyc3Q/ZnVuY3Rpb24oZSx0LG4pe3doaWxlKGU9ZVt1XSlpZigxPT09ZS5ub2RlVHlwZXx8ZilyZXR1cm4gcyhlLHQsbik7cmV0dXJuITF9OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYT1bayxwXTtpZihuKXt3aGlsZShlPWVbdV0paWYoKDE9PT1lLm5vZGVUeXBlfHxmKSYmcyhlLHQsbikpcmV0dXJuITB9ZWxzZSB3aGlsZShlPWVbdV0paWYoMT09PWUubm9kZVR5cGV8fGYpaWYoaT0obz1lW1NdfHwoZVtTXT17fSkpW2UudW5pcXVlSURdfHwob1tlLnVuaXF1ZUlEXT17fSksbCYmbD09PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSllPWVbdV18fGU7ZWxzZXtpZigocj1pW2NdKSYmclswXT09PWsmJnJbMV09PT1wKXJldHVybiBhWzJdPXJbMl07aWYoKGlbY109YSlbMl09cyhlLHQsbikpcmV0dXJuITB9cmV0dXJuITF9fWZ1bmN0aW9uIHdlKGkpe3JldHVybiAxPGkubGVuZ3RoP2Z1bmN0aW9uKGUsdCxuKXt2YXIgcj1pLmxlbmd0aDt3aGlsZShyLS0paWYoIWlbcl0oZSx0LG4pKXJldHVybiExO3JldHVybiEwfTppWzBdfWZ1bmN0aW9uIFRlKGUsdCxuLHIsaSl7Zm9yKHZhciBvLGE9W10scz0wLHU9ZS5sZW5ndGgsbD1udWxsIT10O3M8dTtzKyspKG89ZVtzXSkmJihuJiYhbihvLHIsaSl8fChhLnB1c2gobyksbCYmdC5wdXNoKHMpKSk7cmV0dXJuIGF9ZnVuY3Rpb24gQ2UoZCxoLGcsdix5LGUpe3JldHVybiB2JiYhdltTXSYmKHY9Q2UodikpLHkmJiF5W1NdJiYoeT1DZSh5LGUpKSxsZShmdW5jdGlvbihlLHQsbixyKXt2YXIgaSxvLGEscz1bXSx1PVtdLGw9dC5sZW5ndGgsYz1lfHxmdW5jdGlvbihlLHQsbil7Zm9yKHZhciByPTAsaT10Lmxlbmd0aDtyPGk7cisrKXNlKGUsdFtyXSxuKTtyZXR1cm4gbn0oaHx8IioiLG4ubm9kZVR5cGU/W25dOm4sW10pLGY9IWR8fCFlJiZoP2M6VGUoYyxzLGQsbixyKSxwPWc/eXx8KGU/ZDpsfHx2KT9bXTp0OmY7aWYoZyYmZyhmLHAsbixyKSx2KXtpPVRlKHAsdSksdihpLFtdLG4sciksbz1pLmxlbmd0aDt3aGlsZShvLS0pKGE9aVtvXSkmJihwW3Vbb11dPSEoZlt1W29dXT1hKSl9aWYoZSl7aWYoeXx8ZCl7aWYoeSl7aT1bXSxvPXAubGVuZ3RoO3doaWxlKG8tLSkoYT1wW29dKSYmaS5wdXNoKGZbb109YSk7eShudWxsLHA9W10saSxyKX1vPXAubGVuZ3RoO3doaWxlKG8tLSkoYT1wW29dKSYmLTE8KGk9eT9QKGUsYSk6c1tvXSkmJihlW2ldPSEodFtpXT1hKSl9fWVsc2UgcD1UZShwPT09dD9wLnNwbGljZShsLHAubGVuZ3RoKTpwKSx5P3kobnVsbCx0LHAscik6SC5hcHBseSh0LHApfSl9ZnVuY3Rpb24gRWUoZSl7Zm9yKHZhciBpLHQsbixyPWUubGVuZ3RoLG89Yi5yZWxhdGl2ZVtlWzBdLnR5cGVdLGE9b3x8Yi5yZWxhdGl2ZVsiICJdLHM9bz8xOjAsdT1iZShmdW5jdGlvbihlKXtyZXR1cm4gZT09PWl9LGEsITApLGw9YmUoZnVuY3Rpb24oZSl7cmV0dXJuLTE8UChpLGUpfSxhLCEwKSxjPVtmdW5jdGlvbihlLHQsbil7dmFyIHI9IW8mJihufHx0IT09dyl8fCgoaT10KS5ub2RlVHlwZT91KGUsdCxuKTpsKGUsdCxuKSk7cmV0dXJuIGk9bnVsbCxyfV07czxyO3MrKylpZih0PWIucmVsYXRpdmVbZVtzXS50eXBlXSljPVtiZSh3ZShjKSx0KV07ZWxzZXtpZigodD1iLmZpbHRlcltlW3NdLnR5cGVdLmFwcGx5KG51bGwsZVtzXS5tYXRjaGVzKSlbU10pe2ZvcihuPSsrcztuPHI7bisrKWlmKGIucmVsYXRpdmVbZVtuXS50eXBlXSlicmVhaztyZXR1cm4gQ2UoMTxzJiZ3ZShjKSwxPHMmJnhlKGUuc2xpY2UoMCxzLTEpLmNvbmNhdCh7dmFsdWU6IiAiPT09ZVtzLTJdLnR5cGU/IioiOiIifSkpLnJlcGxhY2UoJCwiJDEiKSx0LHM8biYmRWUoZS5zbGljZShzLG4pKSxuPHImJkVlKGU9ZS5zbGljZShuKSksbjxyJiZ4ZShlKSl9Yy5wdXNoKHQpfXJldHVybiB3ZShjKX1yZXR1cm4gbWUucHJvdG90eXBlPWIuZmlsdGVycz1iLnBzZXVkb3MsYi5zZXRGaWx0ZXJzPW5ldyBtZSxoPXNlLnRva2VuaXplPWZ1bmN0aW9uKGUsdCl7dmFyIG4scixpLG8sYSxzLHUsbD14W2UrIiAiXTtpZihsKXJldHVybiB0PzA6bC5zbGljZSgwKTthPWUscz1bXSx1PWIucHJlRmlsdGVyO3doaWxlKGEpe2ZvcihvIGluIG4mJiEocj1fLmV4ZWMoYSkpfHwociYmKGE9YS5zbGljZShyWzBdLmxlbmd0aCl8fGEpLHMucHVzaChpPVtdKSksbj0hMSwocj16LmV4ZWMoYSkpJiYobj1yLnNoaWZ0KCksaS5wdXNoKHt2YWx1ZTpuLHR5cGU6clswXS5yZXBsYWNlKCQsIiAiKX0pLGE9YS5zbGljZShuLmxlbmd0aCkpLGIuZmlsdGVyKSEocj1HW29dLmV4ZWMoYSkpfHx1W29dJiYhKHI9dVtvXShyKSl8fChuPXIuc2hpZnQoKSxpLnB1c2goe3ZhbHVlOm4sdHlwZTpvLG1hdGNoZXM6cn0pLGE9YS5zbGljZShuLmxlbmd0aCkpO2lmKCFuKWJyZWFrfXJldHVybiB0P2EubGVuZ3RoOmE/c2UuZXJyb3IoZSk6eChlLHMpLnNsaWNlKDApfSxmPXNlLmNvbXBpbGU9ZnVuY3Rpb24oZSx0KXt2YXIgbix2LHksbSx4LHIsaT1bXSxvPVtdLGE9QVtlKyIgIl07aWYoIWEpe3R8fCh0PWgoZSkpLG49dC5sZW5ndGg7d2hpbGUobi0tKShhPUVlKHRbbl0pKVtTXT9pLnB1c2goYSk6by5wdXNoKGEpOyhhPUEoZSwodj1vLG09MDwoeT1pKS5sZW5ndGgseD0wPHYubGVuZ3RoLHI9ZnVuY3Rpb24oZSx0LG4scixpKXt2YXIgbyxhLHMsdT0wLGw9IjAiLGM9ZSYmW10sZj1bXSxwPXcsZD1lfHx4JiZiLmZpbmQuVEFHKCIqIixpKSxoPWsrPW51bGw9PXA/MTpNYXRoLnJhbmRvbSgpfHwuMSxnPWQubGVuZ3RoO2ZvcihpJiYodz10PT1DfHx0fHxpKTtsIT09ZyYmbnVsbCE9KG89ZFtsXSk7bCsrKXtpZih4JiZvKXthPTAsdHx8by5vd25lckRvY3VtZW50PT1DfHwoVChvKSxuPSFFKTt3aGlsZShzPXZbYSsrXSlpZihzKG8sdHx8QyxuKSl7ci5wdXNoKG8pO2JyZWFrfWkmJihrPWgpfW0mJigobz0hcyYmbykmJnUtLSxlJiZjLnB1c2gobykpfWlmKHUrPWwsbSYmbCE9PXUpe2E9MDt3aGlsZShzPXlbYSsrXSlzKGMsZix0LG4pO2lmKGUpe2lmKDA8dSl3aGlsZShsLS0pY1tsXXx8ZltsXXx8KGZbbF09cS5jYWxsKHIpKTtmPVRlKGYpfUguYXBwbHkocixmKSxpJiYhZSYmMDxmLmxlbmd0aCYmMTx1K3kubGVuZ3RoJiZzZS51bmlxdWVTb3J0KHIpfXJldHVybiBpJiYoaz1oLHc9cCksY30sbT9sZShyKTpyKSkpLnNlbGVjdG9yPWV9cmV0dXJuIGF9LGc9c2Uuc2VsZWN0PWZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBpLG8sYSxzLHUsbD0iZnVuY3Rpb24iPT10eXBlb2YgZSYmZSxjPSFyJiZoKGU9bC5zZWxlY3Rvcnx8ZSk7aWYobj1ufHxbXSwxPT09Yy5sZW5ndGgpe2lmKDI8KG89Y1swXT1jWzBdLnNsaWNlKDApKS5sZW5ndGgmJiJJRCI9PT0oYT1vWzBdKS50eXBlJiY5PT09dC5ub2RlVHlwZSYmRSYmYi5yZWxhdGl2ZVtvWzFdLnR5cGVdKXtpZighKHQ9KGIuZmluZC5JRChhLm1hdGNoZXNbMF0ucmVwbGFjZSh0ZSxuZSksdCl8fFtdKVswXSkpcmV0dXJuIG47bCYmKHQ9dC5wYXJlbnROb2RlKSxlPWUuc2xpY2Uoby5zaGlmdCgpLnZhbHVlLmxlbmd0aCl9aT1HLm5lZWRzQ29udGV4dC50ZXN0KGUpPzA6by5sZW5ndGg7d2hpbGUoaS0tKXtpZihhPW9baV0sYi5yZWxhdGl2ZVtzPWEudHlwZV0pYnJlYWs7aWYoKHU9Yi5maW5kW3NdKSYmKHI9dShhLm1hdGNoZXNbMF0ucmVwbGFjZSh0ZSxuZSksZWUudGVzdChvWzBdLnR5cGUpJiZ5ZSh0LnBhcmVudE5vZGUpfHx0KSkpe2lmKG8uc3BsaWNlKGksMSksIShlPXIubGVuZ3RoJiZ4ZShvKSkpcmV0dXJuIEguYXBwbHkobixyKSxuO2JyZWFrfX19cmV0dXJuKGx8fGYoZSxjKSkocix0LCFFLG4sIXR8fGVlLnRlc3QoZSkmJnllKHQucGFyZW50Tm9kZSl8fHQpLG59LGQuc29ydFN0YWJsZT1TLnNwbGl0KCIiKS5zb3J0KGopLmpvaW4oIiIpPT09UyxkLmRldGVjdER1cGxpY2F0ZXM9ISFsLFQoKSxkLnNvcnREZXRhY2hlZD1jZShmdW5jdGlvbihlKXtyZXR1cm4gMSZlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKEMuY3JlYXRlRWxlbWVudCgiZmllbGRzZXQiKSl9KSxjZShmdW5jdGlvbihlKXtyZXR1cm4gZS5pbm5lckhUTUw9IjxhIGhyZWY9JyMnPjwvYT4iLCIjIj09PWUuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoImhyZWYiKX0pfHxmZSgidHlwZXxocmVmfGhlaWdodHx3aWR0aCIsZnVuY3Rpb24oZSx0LG4pe2lmKCFuKXJldHVybiBlLmdldEF0dHJpYnV0ZSh0LCJ0eXBlIj09PXQudG9Mb3dlckNhc2UoKT8xOjIpfSksZC5hdHRyaWJ1dGVzJiZjZShmdW5jdGlvbihlKXtyZXR1cm4gZS5pbm5lckhUTUw9IjxpbnB1dC8+IixlLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIiIpLCIiPT09ZS5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSgidmFsdWUiKX0pfHxmZSgidmFsdWUiLGZ1bmN0aW9uKGUsdCxuKXtpZighbiYmImlucHV0Ij09PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSlyZXR1cm4gZS5kZWZhdWx0VmFsdWV9KSxjZShmdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZS5nZXRBdHRyaWJ1dGUoImRpc2FibGVkIil9KXx8ZmUoUixmdW5jdGlvbihlLHQsbil7dmFyIHI7aWYoIW4pcmV0dXJuITA9PT1lW3RdP3QudG9Mb3dlckNhc2UoKToocj1lLmdldEF0dHJpYnV0ZU5vZGUodCkpJiZyLnNwZWNpZmllZD9yLnZhbHVlOm51bGx9KSxzZX0oQyk7Uy5maW5kPWQsUy5leHByPWQuc2VsZWN0b3JzLFMuZXhwclsiOiJdPVMuZXhwci5wc2V1ZG9zLFMudW5pcXVlU29ydD1TLnVuaXF1ZT1kLnVuaXF1ZVNvcnQsUy50ZXh0PWQuZ2V0VGV4dCxTLmlzWE1MRG9jPWQuaXNYTUwsUy5jb250YWlucz1kLmNvbnRhaW5zLFMuZXNjYXBlU2VsZWN0b3I9ZC5lc2NhcGU7dmFyIGg9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPVtdLGk9dm9pZCAwIT09bjt3aGlsZSgoZT1lW3RdKSYmOSE9PWUubm9kZVR5cGUpaWYoMT09PWUubm9kZVR5cGUpe2lmKGkmJlMoZSkuaXMobikpYnJlYWs7ci5wdXNoKGUpfXJldHVybiByfSxUPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPVtdO2U7ZT1lLm5leHRTaWJsaW5nKTE9PT1lLm5vZGVUeXBlJiZlIT09dCYmbi5wdXNoKGUpO3JldHVybiBufSxrPVMuZXhwci5tYXRjaC5uZWVkc0NvbnRleHQ7ZnVuY3Rpb24gQShlLHQpe3JldHVybiBlLm5vZGVOYW1lJiZlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT10LnRvTG93ZXJDYXNlKCl9dmFyIE49L148KFthLXpdW15cL1wwPjpceDIwXHRcclxuXGZdKilbXHgyMFx0XHJcblxmXSpcLz8+KD86PFwvXDE+fCkkL2k7ZnVuY3Rpb24gaihlLG4scil7cmV0dXJuIG0obik/Uy5ncmVwKGUsZnVuY3Rpb24oZSx0KXtyZXR1cm4hIW4uY2FsbChlLHQsZSkhPT1yfSk6bi5ub2RlVHlwZT9TLmdyZXAoZSxmdW5jdGlvbihlKXtyZXR1cm4gZT09PW4hPT1yfSk6InN0cmluZyIhPXR5cGVvZiBuP1MuZ3JlcChlLGZ1bmN0aW9uKGUpe3JldHVybi0xPGkuY2FsbChuLGUpIT09cn0pOlMuZmlsdGVyKG4sZSxyKX1TLmZpbHRlcj1mdW5jdGlvbihlLHQsbil7dmFyIHI9dFswXTtyZXR1cm4gbiYmKGU9Ijpub3QoIitlKyIpIiksMT09PXQubGVuZ3RoJiYxPT09ci5ub2RlVHlwZT9TLmZpbmQubWF0Y2hlc1NlbGVjdG9yKHIsZSk/W3JdOltdOlMuZmluZC5tYXRjaGVzKGUsUy5ncmVwKHQsZnVuY3Rpb24oZSl7cmV0dXJuIDE9PT1lLm5vZGVUeXBlfSkpfSxTLmZuLmV4dGVuZCh7ZmluZDpmdW5jdGlvbihlKXt2YXIgdCxuLHI9dGhpcy5sZW5ndGgsaT10aGlzO2lmKCJzdHJpbmciIT10eXBlb2YgZSlyZXR1cm4gdGhpcy5wdXNoU3RhY2soUyhlKS5maWx0ZXIoZnVuY3Rpb24oKXtmb3IodD0wO3Q8cjt0KyspaWYoUy5jb250YWlucyhpW3RdLHRoaXMpKXJldHVybiEwfSkpO2ZvcihuPXRoaXMucHVzaFN0YWNrKFtdKSx0PTA7dDxyO3QrKylTLmZpbmQoZSxpW3RdLG4pO3JldHVybiAxPHI/Uy51bmlxdWVTb3J0KG4pOm59LGZpbHRlcjpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soaih0aGlzLGV8fFtdLCExKSl9LG5vdDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soaih0aGlzLGV8fFtdLCEwKSl9LGlzOmZ1bmN0aW9uKGUpe3JldHVybiEhaih0aGlzLCJzdHJpbmciPT10eXBlb2YgZSYmay50ZXN0KGUpP1MoZSk6ZXx8W10sITEpLmxlbmd0aH19KTt2YXIgRCxxPS9eKD86XHMqKDxbXHdcV10rPilbXj5dKnwjKFtcdy1dKykpJC87KFMuZm4uaW5pdD1mdW5jdGlvbihlLHQsbil7dmFyIHIsaTtpZighZSlyZXR1cm4gdGhpcztpZihuPW58fEQsInN0cmluZyI9PXR5cGVvZiBlKXtpZighKHI9IjwiPT09ZVswXSYmIj4iPT09ZVtlLmxlbmd0aC0xXSYmMzw9ZS5sZW5ndGg/W251bGwsZSxudWxsXTpxLmV4ZWMoZSkpfHwhclsxXSYmdClyZXR1cm4hdHx8dC5qcXVlcnk/KHR8fG4pLmZpbmQoZSk6dGhpcy5jb25zdHJ1Y3Rvcih0KS5maW5kKGUpO2lmKHJbMV0pe2lmKHQ9dCBpbnN0YW5jZW9mIFM/dFswXTp0LFMubWVyZ2UodGhpcyxTLnBhcnNlSFRNTChyWzFdLHQmJnQubm9kZVR5cGU/dC5vd25lckRvY3VtZW50fHx0OkUsITApKSxOLnRlc3QoclsxXSkmJlMuaXNQbGFpbk9iamVjdCh0KSlmb3IociBpbiB0KW0odGhpc1tyXSk/dGhpc1tyXSh0W3JdKTp0aGlzLmF0dHIocix0W3JdKTtyZXR1cm4gdGhpc31yZXR1cm4oaT1FLmdldEVsZW1lbnRCeUlkKHJbMl0pKSYmKHRoaXNbMF09aSx0aGlzLmxlbmd0aD0xKSx0aGlzfXJldHVybiBlLm5vZGVUeXBlPyh0aGlzWzBdPWUsdGhpcy5sZW5ndGg9MSx0aGlzKTptKGUpP3ZvaWQgMCE9PW4ucmVhZHk/bi5yZWFkeShlKTplKFMpOlMubWFrZUFycmF5KGUsdGhpcyl9KS5wcm90b3R5cGU9Uy5mbixEPVMoRSk7dmFyIEw9L14oPzpwYXJlbnRzfHByZXYoPzpVbnRpbHxBbGwpKS8sSD17Y2hpbGRyZW46ITAsY29udGVudHM6ITAsbmV4dDohMCxwcmV2OiEwfTtmdW5jdGlvbiBPKGUsdCl7d2hpbGUoKGU9ZVt0XSkmJjEhPT1lLm5vZGVUeXBlKTtyZXR1cm4gZX1TLmZuLmV4dGVuZCh7aGFzOmZ1bmN0aW9uKGUpe3ZhciB0PVMoZSx0aGlzKSxuPXQubGVuZ3RoO3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbigpe2Zvcih2YXIgZT0wO2U8bjtlKyspaWYoUy5jb250YWlucyh0aGlzLHRbZV0pKXJldHVybiEwfSl9LGNsb3Nlc3Q6ZnVuY3Rpb24oZSx0KXt2YXIgbixyPTAsaT10aGlzLmxlbmd0aCxvPVtdLGE9InN0cmluZyIhPXR5cGVvZiBlJiZTKGUpO2lmKCFrLnRlc3QoZSkpZm9yKDtyPGk7cisrKWZvcihuPXRoaXNbcl07biYmbiE9PXQ7bj1uLnBhcmVudE5vZGUpaWYobi5ub2RlVHlwZTwxMSYmKGE/LTE8YS5pbmRleChuKToxPT09bi5ub2RlVHlwZSYmUy5maW5kLm1hdGNoZXNTZWxlY3RvcihuLGUpKSl7by5wdXNoKG4pO2JyZWFrfXJldHVybiB0aGlzLnB1c2hTdGFjaygxPG8ubGVuZ3RoP1MudW5pcXVlU29ydChvKTpvKX0saW5kZXg6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/InN0cmluZyI9PXR5cGVvZiBlP2kuY2FsbChTKGUpLHRoaXNbMF0pOmkuY2FsbCh0aGlzLGUuanF1ZXJ5P2VbMF06ZSk6dGhpc1swXSYmdGhpc1swXS5wYXJlbnROb2RlP3RoaXMuZmlyc3QoKS5wcmV2QWxsKCkubGVuZ3RoOi0xfSxhZGQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy51bmlxdWVTb3J0KFMubWVyZ2UodGhpcy5nZXQoKSxTKGUsdCkpKSl9LGFkZEJhY2s6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuYWRkKG51bGw9PWU/dGhpcy5wcmV2T2JqZWN0OnRoaXMucHJldk9iamVjdC5maWx0ZXIoZSkpfX0pLFMuZWFjaCh7cGFyZW50OmZ1bmN0aW9uKGUpe3ZhciB0PWUucGFyZW50Tm9kZTtyZXR1cm4gdCYmMTEhPT10Lm5vZGVUeXBlP3Q6bnVsbH0scGFyZW50czpmdW5jdGlvbihlKXtyZXR1cm4gaChlLCJwYXJlbnROb2RlIil9LHBhcmVudHNVbnRpbDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIGgoZSwicGFyZW50Tm9kZSIsbil9LG5leHQ6ZnVuY3Rpb24oZSl7cmV0dXJuIE8oZSwibmV4dFNpYmxpbmciKX0scHJldjpmdW5jdGlvbihlKXtyZXR1cm4gTyhlLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dEFsbDpmdW5jdGlvbihlKXtyZXR1cm4gaChlLCJuZXh0U2libGluZyIpfSxwcmV2QWxsOmZ1bmN0aW9uKGUpe3JldHVybiBoKGUsInByZXZpb3VzU2libGluZyIpfSxuZXh0VW50aWw6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBoKGUsIm5leHRTaWJsaW5nIixuKX0scHJldlVudGlsOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gaChlLCJwcmV2aW91c1NpYmxpbmciLG4pfSxzaWJsaW5nczpmdW5jdGlvbihlKXtyZXR1cm4gVCgoZS5wYXJlbnROb2RlfHx7fSkuZmlyc3RDaGlsZCxlKX0sY2hpbGRyZW46ZnVuY3Rpb24oZSl7cmV0dXJuIFQoZS5maXJzdENoaWxkKX0sY29udGVudHM6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPWUuY29udGVudERvY3VtZW50JiZyKGUuY29udGVudERvY3VtZW50KT9lLmNvbnRlbnREb2N1bWVudDooQShlLCJ0ZW1wbGF0ZSIpJiYoZT1lLmNvbnRlbnR8fGUpLFMubWVyZ2UoW10sZS5jaGlsZE5vZGVzKSl9fSxmdW5jdGlvbihyLGkpe1MuZm5bcl09ZnVuY3Rpb24oZSx0KXt2YXIgbj1TLm1hcCh0aGlzLGksZSk7cmV0dXJuIlVudGlsIiE9PXIuc2xpY2UoLTUpJiYodD1lKSx0JiYic3RyaW5nIj09dHlwZW9mIHQmJihuPVMuZmlsdGVyKHQsbikpLDE8dGhpcy5sZW5ndGgmJihIW3JdfHxTLnVuaXF1ZVNvcnQobiksTC50ZXN0KHIpJiZuLnJldmVyc2UoKSksdGhpcy5wdXNoU3RhY2sobil9fSk7dmFyIFA9L1teXHgyMFx0XHJcblxmXSsvZztmdW5jdGlvbiBSKGUpe3JldHVybiBlfWZ1bmN0aW9uIE0oZSl7dGhyb3cgZX1mdW5jdGlvbiBJKGUsdCxuLHIpe3ZhciBpO3RyeXtlJiZtKGk9ZS5wcm9taXNlKT9pLmNhbGwoZSkuZG9uZSh0KS5mYWlsKG4pOmUmJm0oaT1lLnRoZW4pP2kuY2FsbChlLHQsbik6dC5hcHBseSh2b2lkIDAsW2VdLnNsaWNlKHIpKX1jYXRjaChlKXtuLmFwcGx5KHZvaWQgMCxbZV0pfX1TLkNhbGxiYWNrcz1mdW5jdGlvbihyKXt2YXIgZSxuO3I9InN0cmluZyI9PXR5cGVvZiByPyhlPXIsbj17fSxTLmVhY2goZS5tYXRjaChQKXx8W10sZnVuY3Rpb24oZSx0KXtuW3RdPSEwfSksbik6Uy5leHRlbmQoe30scik7dmFyIGksdCxvLGEscz1bXSx1PVtdLGw9LTEsYz1mdW5jdGlvbigpe2ZvcihhPWF8fHIub25jZSxvPWk9ITA7dS5sZW5ndGg7bD0tMSl7dD11LnNoaWZ0KCk7d2hpbGUoKytsPHMubGVuZ3RoKSExPT09c1tsXS5hcHBseSh0WzBdLHRbMV0pJiZyLnN0b3BPbkZhbHNlJiYobD1zLmxlbmd0aCx0PSExKX1yLm1lbW9yeXx8KHQ9ITEpLGk9ITEsYSYmKHM9dD9bXToiIil9LGY9e2FkZDpmdW5jdGlvbigpe3JldHVybiBzJiYodCYmIWkmJihsPXMubGVuZ3RoLTEsdS5wdXNoKHQpKSxmdW5jdGlvbiBuKGUpe1MuZWFjaChlLGZ1bmN0aW9uKGUsdCl7bSh0KT9yLnVuaXF1ZSYmZi5oYXModCl8fHMucHVzaCh0KTp0JiZ0Lmxlbmd0aCYmInN0cmluZyIhPT13KHQpJiZuKHQpfSl9KGFyZ3VtZW50cyksdCYmIWkmJmMoKSksdGhpc30scmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIFMuZWFjaChhcmd1bWVudHMsZnVuY3Rpb24oZSx0KXt2YXIgbjt3aGlsZSgtMTwobj1TLmluQXJyYXkodCxzLG4pKSlzLnNwbGljZShuLDEpLG48PWwmJmwtLX0pLHRoaXN9LGhhczpmdW5jdGlvbihlKXtyZXR1cm4gZT8tMTxTLmluQXJyYXkoZSxzKTowPHMubGVuZ3RofSxlbXB0eTpmdW5jdGlvbigpe3JldHVybiBzJiYocz1bXSksdGhpc30sZGlzYWJsZTpmdW5jdGlvbigpe3JldHVybiBhPXU9W10scz10PSIiLHRoaXN9LGRpc2FibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIXN9LGxvY2s6ZnVuY3Rpb24oKXtyZXR1cm4gYT11PVtdLHR8fGl8fChzPXQ9IiIpLHRoaXN9LGxvY2tlZDpmdW5jdGlvbigpe3JldHVybiEhYX0sZmlyZVdpdGg6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gYXx8KHQ9W2UsKHQ9dHx8W10pLnNsaWNlP3Quc2xpY2UoKTp0XSx1LnB1c2godCksaXx8YygpKSx0aGlzfSxmaXJlOmZ1bmN0aW9uKCl7cmV0dXJuIGYuZmlyZVdpdGgodGhpcyxhcmd1bWVudHMpLHRoaXN9LGZpcmVkOmZ1bmN0aW9uKCl7cmV0dXJuISFvfX07cmV0dXJuIGZ9LFMuZXh0ZW5kKHtEZWZlcnJlZDpmdW5jdGlvbihlKXt2YXIgbz1bWyJub3RpZnkiLCJwcm9ncmVzcyIsUy5DYWxsYmFja3MoIm1lbW9yeSIpLFMuQ2FsbGJhY2tzKCJtZW1vcnkiKSwyXSxbInJlc29sdmUiLCJkb25lIixTLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSxTLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSwwLCJyZXNvbHZlZCJdLFsicmVqZWN0IiwiZmFpbCIsUy5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksUy5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksMSwicmVqZWN0ZWQiXV0saT0icGVuZGluZyIsYT17c3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gaX0sYWx3YXlzOmZ1bmN0aW9uKCl7cmV0dXJuIHMuZG9uZShhcmd1bWVudHMpLmZhaWwoYXJndW1lbnRzKSx0aGlzfSwiY2F0Y2giOmZ1bmN0aW9uKGUpe3JldHVybiBhLnRoZW4obnVsbCxlKX0scGlwZTpmdW5jdGlvbigpe3ZhciBpPWFyZ3VtZW50cztyZXR1cm4gUy5EZWZlcnJlZChmdW5jdGlvbihyKXtTLmVhY2gobyxmdW5jdGlvbihlLHQpe3ZhciBuPW0oaVt0WzRdXSkmJmlbdFs0XV07c1t0WzFdXShmdW5jdGlvbigpe3ZhciBlPW4mJm4uYXBwbHkodGhpcyxhcmd1bWVudHMpO2UmJm0oZS5wcm9taXNlKT9lLnByb21pc2UoKS5wcm9ncmVzcyhyLm5vdGlmeSkuZG9uZShyLnJlc29sdmUpLmZhaWwoci5yZWplY3QpOnJbdFswXSsiV2l0aCJdKHRoaXMsbj9bZV06YXJndW1lbnRzKX0pfSksaT1udWxsfSkucHJvbWlzZSgpfSx0aGVuOmZ1bmN0aW9uKHQsbixyKXt2YXIgdT0wO2Z1bmN0aW9uIGwoaSxvLGEscyl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49dGhpcyxyPWFyZ3VtZW50cyxlPWZ1bmN0aW9uKCl7dmFyIGUsdDtpZighKGk8dSkpe2lmKChlPWEuYXBwbHkobixyKSk9PT1vLnByb21pc2UoKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGVuYWJsZSBzZWxmLXJlc29sdXRpb24iKTt0PWUmJigib2JqZWN0Ij09dHlwZW9mIGV8fCJmdW5jdGlvbiI9PXR5cGVvZiBlKSYmZS50aGVuLG0odCk/cz90LmNhbGwoZSxsKHUsbyxSLHMpLGwodSxvLE0scykpOih1KyssdC5jYWxsKGUsbCh1LG8sUixzKSxsKHUsbyxNLHMpLGwodSxvLFIsby5ub3RpZnlXaXRoKSkpOihhIT09UiYmKG49dm9pZCAwLHI9W2VdKSwoc3x8by5yZXNvbHZlV2l0aCkobixyKSl9fSx0PXM/ZTpmdW5jdGlvbigpe3RyeXtlKCl9Y2F0Y2goZSl7Uy5EZWZlcnJlZC5leGNlcHRpb25Ib29rJiZTLkRlZmVycmVkLmV4Y2VwdGlvbkhvb2soZSx0LnN0YWNrVHJhY2UpLHU8PWkrMSYmKGEhPT1NJiYobj12b2lkIDAscj1bZV0pLG8ucmVqZWN0V2l0aChuLHIpKX19O2k/dCgpOihTLkRlZmVycmVkLmdldFN0YWNrSG9vayYmKHQuc3RhY2tUcmFjZT1TLkRlZmVycmVkLmdldFN0YWNrSG9vaygpKSxDLnNldFRpbWVvdXQodCkpfX1yZXR1cm4gUy5EZWZlcnJlZChmdW5jdGlvbihlKXtvWzBdWzNdLmFkZChsKDAsZSxtKHIpP3I6UixlLm5vdGlmeVdpdGgpKSxvWzFdWzNdLmFkZChsKDAsZSxtKHQpP3Q6UikpLG9bMl1bM10uYWRkKGwoMCxlLG0obik/bjpNKSl9KS5wcm9taXNlKCl9LHByb21pc2U6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPWU/Uy5leHRlbmQoZSxhKTphfX0scz17fTtyZXR1cm4gUy5lYWNoKG8sZnVuY3Rpb24oZSx0KXt2YXIgbj10WzJdLHI9dFs1XTthW3RbMV1dPW4uYWRkLHImJm4uYWRkKGZ1bmN0aW9uKCl7aT1yfSxvWzMtZV1bMl0uZGlzYWJsZSxvWzMtZV1bM10uZGlzYWJsZSxvWzBdWzJdLmxvY2ssb1swXVszXS5sb2NrKSxuLmFkZCh0WzNdLmZpcmUpLHNbdFswXV09ZnVuY3Rpb24oKXtyZXR1cm4gc1t0WzBdKyJXaXRoIl0odGhpcz09PXM/dm9pZCAwOnRoaXMsYXJndW1lbnRzKSx0aGlzfSxzW3RbMF0rIldpdGgiXT1uLmZpcmVXaXRofSksYS5wcm9taXNlKHMpLGUmJmUuY2FsbChzLHMpLHN9LHdoZW46ZnVuY3Rpb24oZSl7dmFyIG49YXJndW1lbnRzLmxlbmd0aCx0PW4scj1BcnJheSh0KSxpPXMuY2FsbChhcmd1bWVudHMpLG89Uy5EZWZlcnJlZCgpLGE9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JbdF09dGhpcyxpW3RdPTE8YXJndW1lbnRzLmxlbmd0aD9zLmNhbGwoYXJndW1lbnRzKTplLC0tbnx8by5yZXNvbHZlV2l0aChyLGkpfX07aWYobjw9MSYmKEkoZSxvLmRvbmUoYSh0KSkucmVzb2x2ZSxvLnJlamVjdCwhbiksInBlbmRpbmciPT09by5zdGF0ZSgpfHxtKGlbdF0mJmlbdF0udGhlbikpKXJldHVybiBvLnRoZW4oKTt3aGlsZSh0LS0pSShpW3RdLGEodCksby5yZWplY3QpO3JldHVybiBvLnByb21pc2UoKX19KTt2YXIgVz0vXihFdmFsfEludGVybmFsfFJhbmdlfFJlZmVyZW5jZXxTeW50YXh8VHlwZXxVUkkpRXJyb3IkLztTLkRlZmVycmVkLmV4Y2VwdGlvbkhvb2s9ZnVuY3Rpb24oZSx0KXtDLmNvbnNvbGUmJkMuY29uc29sZS53YXJuJiZlJiZXLnRlc3QoZS5uYW1lKSYmQy5jb25zb2xlLndhcm4oImpRdWVyeS5EZWZlcnJlZCBleGNlcHRpb246ICIrZS5tZXNzYWdlLGUuc3RhY2ssdCl9LFMucmVhZHlFeGNlcHRpb249ZnVuY3Rpb24oZSl7Qy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgZX0pfTt2YXIgRj1TLkRlZmVycmVkKCk7ZnVuY3Rpb24gQigpe0UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsQiksQy5yZW1vdmVFdmVudExpc3RlbmVyKCJsb2FkIixCKSxTLnJlYWR5KCl9Uy5mbi5yZWFkeT1mdW5jdGlvbihlKXtyZXR1cm4gRi50aGVuKGUpWyJjYXRjaCJdKGZ1bmN0aW9uKGUpe1MucmVhZHlFeGNlcHRpb24oZSl9KSx0aGlzfSxTLmV4dGVuZCh7aXNSZWFkeTohMSxyZWFkeVdhaXQ6MSxyZWFkeTpmdW5jdGlvbihlKXsoITA9PT1lPy0tUy5yZWFkeVdhaXQ6Uy5pc1JlYWR5KXx8KFMuaXNSZWFkeT0hMCkhPT1lJiYwPC0tUy5yZWFkeVdhaXR8fEYucmVzb2x2ZVdpdGgoRSxbU10pfX0pLFMucmVhZHkudGhlbj1GLnRoZW4sImNvbXBsZXRlIj09PUUucmVhZHlTdGF0ZXx8ImxvYWRpbmciIT09RS5yZWFkeVN0YXRlJiYhRS5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGw/Qy5zZXRUaW1lb3V0KFMucmVhZHkpOihFLmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLEIpLEMuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsQikpO3ZhciAkPWZ1bmN0aW9uKGUsdCxuLHIsaSxvLGEpe3ZhciBzPTAsdT1lLmxlbmd0aCxsPW51bGw9PW47aWYoIm9iamVjdCI9PT13KG4pKWZvcihzIGluIGk9ITAsbikkKGUsdCxzLG5bc10sITAsbyxhKTtlbHNlIGlmKHZvaWQgMCE9PXImJihpPSEwLG0ocil8fChhPSEwKSxsJiYoYT8odC5jYWxsKGUsciksdD1udWxsKToobD10LHQ9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBsLmNhbGwoUyhlKSxuKX0pKSx0KSlmb3IoO3M8dTtzKyspdChlW3NdLG4sYT9yOnIuY2FsbChlW3NdLHMsdChlW3NdLG4pKSk7cmV0dXJuIGk/ZTpsP3QuY2FsbChlKTp1P3QoZVswXSxuKTpvfSxfPS9eLW1zLS8sej0vLShbYS16XSkvZztmdW5jdGlvbiBVKGUsdCl7cmV0dXJuIHQudG9VcHBlckNhc2UoKX1mdW5jdGlvbiBYKGUpe3JldHVybiBlLnJlcGxhY2UoXywibXMtIikucmVwbGFjZSh6LFUpfXZhciBWPWZ1bmN0aW9uKGUpe3JldHVybiAxPT09ZS5ub2RlVHlwZXx8OT09PWUubm9kZVR5cGV8fCErZS5ub2RlVHlwZX07ZnVuY3Rpb24gRygpe3RoaXMuZXhwYW5kbz1TLmV4cGFuZG8rRy51aWQrK31HLnVpZD0xLEcucHJvdG90eXBlPXtjYWNoZTpmdW5jdGlvbihlKXt2YXIgdD1lW3RoaXMuZXhwYW5kb107cmV0dXJuIHR8fCh0PXt9LFYoZSkmJihlLm5vZGVUeXBlP2VbdGhpcy5leHBhbmRvXT10Ok9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHRoaXMuZXhwYW5kbyx7dmFsdWU6dCxjb25maWd1cmFibGU6ITB9KSkpLHR9LHNldDpmdW5jdGlvbihlLHQsbil7dmFyIHIsaT10aGlzLmNhY2hlKGUpO2lmKCJzdHJpbmciPT10eXBlb2YgdClpW1godCldPW47ZWxzZSBmb3IociBpbiB0KWlbWChyKV09dFtyXTtyZXR1cm4gaX0sZ2V0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMD09PXQ/dGhpcy5jYWNoZShlKTplW3RoaXMuZXhwYW5kb10mJmVbdGhpcy5leHBhbmRvXVtYKHQpXX0sYWNjZXNzOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdm9pZCAwPT09dHx8dCYmInN0cmluZyI9PXR5cGVvZiB0JiZ2b2lkIDA9PT1uP3RoaXMuZ2V0KGUsdCk6KHRoaXMuc2V0KGUsdCxuKSx2b2lkIDAhPT1uP246dCl9LHJlbW92ZTpmdW5jdGlvbihlLHQpe3ZhciBuLHI9ZVt0aGlzLmV4cGFuZG9dO2lmKHZvaWQgMCE9PXIpe2lmKHZvaWQgMCE9PXQpe249KHQ9QXJyYXkuaXNBcnJheSh0KT90Lm1hcChYKToodD1YKHQpKWluIHI/W3RdOnQubWF0Y2goUCl8fFtdKS5sZW5ndGg7d2hpbGUobi0tKWRlbGV0ZSByW3Rbbl1dfSh2b2lkIDA9PT10fHxTLmlzRW1wdHlPYmplY3QocikpJiYoZS5ub2RlVHlwZT9lW3RoaXMuZXhwYW5kb109dm9pZCAwOmRlbGV0ZSBlW3RoaXMuZXhwYW5kb10pfX0saGFzRGF0YTpmdW5jdGlvbihlKXt2YXIgdD1lW3RoaXMuZXhwYW5kb107cmV0dXJuIHZvaWQgMCE9PXQmJiFTLmlzRW1wdHlPYmplY3QodCl9fTt2YXIgWT1uZXcgRyxRPW5ldyBHLEo9L14oPzpce1tcd1xXXSpcfXxcW1tcd1xXXSpcXSkkLyxLPS9bQS1aXS9nO2Z1bmN0aW9uIFooZSx0LG4pe3ZhciByLGk7aWYodm9pZCAwPT09biYmMT09PWUubm9kZVR5cGUpaWYocj0iZGF0YS0iK3QucmVwbGFjZShLLCItJCYiKS50b0xvd2VyQ2FzZSgpLCJzdHJpbmciPT10eXBlb2Yobj1lLmdldEF0dHJpYnV0ZShyKSkpe3RyeXtuPSJ0cnVlIj09PShpPW4pfHwiZmFsc2UiIT09aSYmKCJudWxsIj09PWk/bnVsbDppPT09K2krIiI/K2k6Si50ZXN0KGkpP0pTT04ucGFyc2UoaSk6aSl9Y2F0Y2goZSl7fVEuc2V0KGUsdCxuKX1lbHNlIG49dm9pZCAwO3JldHVybiBufVMuZXh0ZW5kKHtoYXNEYXRhOmZ1bmN0aW9uKGUpe3JldHVybiBRLmhhc0RhdGEoZSl8fFkuaGFzRGF0YShlKX0sZGF0YTpmdW5jdGlvbihlLHQsbil7cmV0dXJuIFEuYWNjZXNzKGUsdCxuKX0scmVtb3ZlRGF0YTpmdW5jdGlvbihlLHQpe1EucmVtb3ZlKGUsdCl9LF9kYXRhOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gWS5hY2Nlc3MoZSx0LG4pfSxfcmVtb3ZlRGF0YTpmdW5jdGlvbihlLHQpe1kucmVtb3ZlKGUsdCl9fSksUy5mbi5leHRlbmQoe2RhdGE6ZnVuY3Rpb24obixlKXt2YXIgdCxyLGksbz10aGlzWzBdLGE9byYmby5hdHRyaWJ1dGVzO2lmKHZvaWQgMD09PW4pe2lmKHRoaXMubGVuZ3RoJiYoaT1RLmdldChvKSwxPT09by5ub2RlVHlwZSYmIVkuZ2V0KG8sImhhc0RhdGFBdHRycyIpKSl7dD1hLmxlbmd0aDt3aGlsZSh0LS0pYVt0XSYmMD09PShyPWFbdF0ubmFtZSkuaW5kZXhPZigiZGF0YS0iKSYmKHI9WChyLnNsaWNlKDUpKSxaKG8scixpW3JdKSk7WS5zZXQobywiaGFzRGF0YUF0dHJzIiwhMCl9cmV0dXJuIGl9cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBuP3RoaXMuZWFjaChmdW5jdGlvbigpe1Euc2V0KHRoaXMsbil9KTokKHRoaXMsZnVuY3Rpb24oZSl7dmFyIHQ7aWYobyYmdm9pZCAwPT09ZSlyZXR1cm4gdm9pZCAwIT09KHQ9US5nZXQobyxuKSk/dDp2b2lkIDAhPT0odD1aKG8sbikpP3Q6dm9pZCAwO3RoaXMuZWFjaChmdW5jdGlvbigpe1Euc2V0KHRoaXMsbixlKX0pfSxudWxsLGUsMTxhcmd1bWVudHMubGVuZ3RoLG51bGwsITApfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtRLnJlbW92ZSh0aGlzLGUpfSl9fSksUy5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcjtpZihlKXJldHVybiB0PSh0fHwiZngiKSsicXVldWUiLHI9WS5nZXQoZSx0KSxuJiYoIXJ8fEFycmF5LmlzQXJyYXkobik/cj1ZLmFjY2VzcyhlLHQsUy5tYWtlQXJyYXkobikpOnIucHVzaChuKSkscnx8W119LGRlcXVldWU6ZnVuY3Rpb24oZSx0KXt0PXR8fCJmeCI7dmFyIG49Uy5xdWV1ZShlLHQpLHI9bi5sZW5ndGgsaT1uLnNoaWZ0KCksbz1TLl9xdWV1ZUhvb2tzKGUsdCk7ImlucHJvZ3Jlc3MiPT09aSYmKGk9bi5zaGlmdCgpLHItLSksaSYmKCJmeCI9PT10JiZuLnVuc2hpZnQoImlucHJvZ3Jlc3MiKSxkZWxldGUgby5zdG9wLGkuY2FsbChlLGZ1bmN0aW9uKCl7Uy5kZXF1ZXVlKGUsdCl9LG8pKSwhciYmbyYmby5lbXB0eS5maXJlKCl9LF9xdWV1ZUhvb2tzOmZ1bmN0aW9uKGUsdCl7dmFyIG49dCsicXVldWVIb29rcyI7cmV0dXJuIFkuZ2V0KGUsbil8fFkuYWNjZXNzKGUsbix7ZW1wdHk6Uy5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IikuYWRkKGZ1bmN0aW9uKCl7WS5yZW1vdmUoZSxbdCsicXVldWUiLG5dKX0pfSl9fSksUy5mbi5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKHQsbil7dmFyIGU9MjtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIHQmJihuPXQsdD0iZngiLGUtLSksYXJndW1lbnRzLmxlbmd0aDxlP1MucXVldWUodGhpc1swXSx0KTp2b2lkIDA9PT1uP3RoaXM6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9Uy5xdWV1ZSh0aGlzLHQsbik7Uy5fcXVldWVIb29rcyh0aGlzLHQpLCJmeCI9PT10JiYiaW5wcm9ncmVzcyIhPT1lWzBdJiZTLmRlcXVldWUodGhpcyx0KX0pfSxkZXF1ZXVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtTLmRlcXVldWUodGhpcyxlKX0pfSxjbGVhclF1ZXVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnF1ZXVlKGV8fCJmeCIsW10pfSxwcm9taXNlOmZ1bmN0aW9uKGUsdCl7dmFyIG4scj0xLGk9Uy5EZWZlcnJlZCgpLG89dGhpcyxhPXRoaXMubGVuZ3RoLHM9ZnVuY3Rpb24oKXstLXJ8fGkucmVzb2x2ZVdpdGgobyxbb10pfTsic3RyaW5nIiE9dHlwZW9mIGUmJih0PWUsZT12b2lkIDApLGU9ZXx8ImZ4Ijt3aGlsZShhLS0pKG49WS5nZXQob1thXSxlKyJxdWV1ZUhvb2tzIikpJiZuLmVtcHR5JiYocisrLG4uZW1wdHkuYWRkKHMpKTtyZXR1cm4gcygpLGkucHJvbWlzZSh0KX19KTt2YXIgZWU9L1srLV0/KD86XGQqXC58KVxkKyg/OltlRV1bKy1dP1xkK3wpLy5zb3VyY2UsdGU9bmV3IFJlZ0V4cCgiXig/OihbKy1dKT18KSgiK2VlKyIpKFthLXolXSopJCIsImkiKSxuZT1bIlRvcCIsIlJpZ2h0IiwiQm90dG9tIiwiTGVmdCJdLHJlPUUuZG9jdW1lbnRFbGVtZW50LGllPWZ1bmN0aW9uKGUpe3JldHVybiBTLmNvbnRhaW5zKGUub3duZXJEb2N1bWVudCxlKX0sb2U9e2NvbXBvc2VkOiEwfTtyZS5nZXRSb290Tm9kZSYmKGllPWZ1bmN0aW9uKGUpe3JldHVybiBTLmNvbnRhaW5zKGUub3duZXJEb2N1bWVudCxlKXx8ZS5nZXRSb290Tm9kZShvZSk9PT1lLm93bmVyRG9jdW1lbnR9KTt2YXIgYWU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4ibm9uZSI9PT0oZT10fHxlKS5zdHlsZS5kaXNwbGF5fHwiIj09PWUuc3R5bGUuZGlzcGxheSYmaWUoZSkmJiJub25lIj09PVMuY3NzKGUsImRpc3BsYXkiKX07ZnVuY3Rpb24gc2UoZSx0LG4scil7dmFyIGksbyxhPTIwLHM9cj9mdW5jdGlvbigpe3JldHVybiByLmN1cigpfTpmdW5jdGlvbigpe3JldHVybiBTLmNzcyhlLHQsIiIpfSx1PXMoKSxsPW4mJm5bM118fChTLmNzc051bWJlclt0XT8iIjoicHgiKSxjPWUubm9kZVR5cGUmJihTLmNzc051bWJlclt0XXx8InB4IiE9PWwmJit1KSYmdGUuZXhlYyhTLmNzcyhlLHQpKTtpZihjJiZjWzNdIT09bCl7dS89MixsPWx8fGNbM10sYz0rdXx8MTt3aGlsZShhLS0pUy5zdHlsZShlLHQsYytsKSwoMS1vKSooMS0obz1zKCkvdXx8LjUpKTw9MCYmKGE9MCksYy89bztjKj0yLFMuc3R5bGUoZSx0LGMrbCksbj1ufHxbXX1yZXR1cm4gbiYmKGM9K2N8fCt1fHwwLGk9blsxXT9jKyhuWzFdKzEpKm5bMl06K25bMl0sciYmKHIudW5pdD1sLHIuc3RhcnQ9YyxyLmVuZD1pKSksaX12YXIgdWU9e307ZnVuY3Rpb24gbGUoZSx0KXtmb3IodmFyIG4scixpLG8sYSxzLHUsbD1bXSxjPTAsZj1lLmxlbmd0aDtjPGY7YysrKShyPWVbY10pLnN0eWxlJiYobj1yLnN0eWxlLmRpc3BsYXksdD8oIm5vbmUiPT09biYmKGxbY109WS5nZXQociwiZGlzcGxheSIpfHxudWxsLGxbY118fChyLnN0eWxlLmRpc3BsYXk9IiIpKSwiIj09PXIuc3R5bGUuZGlzcGxheSYmYWUocikmJihsW2NdPSh1PWE9bz12b2lkIDAsYT0oaT1yKS5vd25lckRvY3VtZW50LHM9aS5ub2RlTmFtZSwodT11ZVtzXSl8fChvPWEuYm9keS5hcHBlbmRDaGlsZChhLmNyZWF0ZUVsZW1lbnQocykpLHU9Uy5jc3MobywiZGlzcGxheSIpLG8ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChvKSwibm9uZSI9PT11JiYodT0iYmxvY2siKSx1ZVtzXT11KSkpKToibm9uZSIhPT1uJiYobFtjXT0ibm9uZSIsWS5zZXQociwiZGlzcGxheSIsbikpKTtmb3IoYz0wO2M8ZjtjKyspbnVsbCE9bFtjXSYmKGVbY10uc3R5bGUuZGlzcGxheT1sW2NdKTtyZXR1cm4gZX1TLmZuLmV4dGVuZCh7c2hvdzpmdW5jdGlvbigpe3JldHVybiBsZSh0aGlzLCEwKX0saGlkZTpmdW5jdGlvbigpe3JldHVybiBsZSh0aGlzKX0sdG9nZ2xlOmZ1bmN0aW9uKGUpe3JldHVybiJib29sZWFuIj09dHlwZW9mIGU/ZT90aGlzLnNob3coKTp0aGlzLmhpZGUoKTp0aGlzLmVhY2goZnVuY3Rpb24oKXthZSh0aGlzKT9TKHRoaXMpLnNob3coKTpTKHRoaXMpLmhpZGUoKX0pfX0pO3ZhciBjZSxmZSxwZT0vXig/OmNoZWNrYm94fHJhZGlvKSQvaSxkZT0vPChbYS16XVteXC9cMD5ceDIwXHRcclxuXGZdKikvaSxoZT0vXiR8Xm1vZHVsZSR8XC8oPzpqYXZhfGVjbWEpc2NyaXB0L2k7Y2U9RS5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkuYXBwZW5kQ2hpbGQoRS5jcmVhdGVFbGVtZW50KCJkaXYiKSksKGZlPUUuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSkuc2V0QXR0cmlidXRlKCJ0eXBlIiwicmFkaW8iKSxmZS5zZXRBdHRyaWJ1dGUoImNoZWNrZWQiLCJjaGVja2VkIiksZmUuc2V0QXR0cmlidXRlKCJuYW1lIiwidCIpLGNlLmFwcGVuZENoaWxkKGZlKSx5LmNoZWNrQ2xvbmU9Y2UuY2xvbmVOb2RlKCEwKS5jbG9uZU5vZGUoITApLmxhc3RDaGlsZC5jaGVja2VkLGNlLmlubmVySFRNTD0iPHRleHRhcmVhPng8L3RleHRhcmVhPiIseS5ub0Nsb25lQ2hlY2tlZD0hIWNlLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmRlZmF1bHRWYWx1ZSxjZS5pbm5lckhUTUw9IjxvcHRpb24+PC9vcHRpb24+Iix5Lm9wdGlvbj0hIWNlLmxhc3RDaGlsZDt2YXIgZ2U9e3RoZWFkOlsxLCI8dGFibGU+IiwiPC90YWJsZT4iXSxjb2w6WzIsIjx0YWJsZT48Y29sZ3JvdXA+IiwiPC9jb2xncm91cD48L3RhYmxlPiJdLHRyOlsyLCI8dGFibGU+PHRib2R5PiIsIjwvdGJvZHk+PC90YWJsZT4iXSx0ZDpbMywiPHRhYmxlPjx0Ym9keT48dHI+IiwiPC90cj48L3Rib2R5PjwvdGFibGU+Il0sX2RlZmF1bHQ6WzAsIiIsIiJdfTtmdW5jdGlvbiB2ZShlLHQpe3ZhciBuO3JldHVybiBuPSJ1bmRlZmluZWQiIT10eXBlb2YgZS5nZXRFbGVtZW50c0J5VGFnTmFtZT9lLmdldEVsZW1lbnRzQnlUYWdOYW1lKHR8fCIqIik6InVuZGVmaW5lZCIhPXR5cGVvZiBlLnF1ZXJ5U2VsZWN0b3JBbGw/ZS5xdWVyeVNlbGVjdG9yQWxsKHR8fCIqIik6W10sdm9pZCAwPT09dHx8dCYmQShlLHQpP1MubWVyZ2UoW2VdLG4pOm59ZnVuY3Rpb24geWUoZSx0KXtmb3IodmFyIG49MCxyPWUubGVuZ3RoO248cjtuKyspWS5zZXQoZVtuXSwiZ2xvYmFsRXZhbCIsIXR8fFkuZ2V0KHRbbl0sImdsb2JhbEV2YWwiKSl9Z2UudGJvZHk9Z2UudGZvb3Q9Z2UuY29sZ3JvdXA9Z2UuY2FwdGlvbj1nZS50aGVhZCxnZS50aD1nZS50ZCx5Lm9wdGlvbnx8KGdlLm9wdGdyb3VwPWdlLm9wdGlvbj1bMSwiPHNlbGVjdCBtdWx0aXBsZT0nbXVsdGlwbGUnPiIsIjwvc2VsZWN0PiJdKTt2YXIgbWU9Lzx8JiM/XHcrOy87ZnVuY3Rpb24geGUoZSx0LG4scixpKXtmb3IodmFyIG8sYSxzLHUsbCxjLGY9dC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkscD1bXSxkPTAsaD1lLmxlbmd0aDtkPGg7ZCsrKWlmKChvPWVbZF0pfHwwPT09bylpZigib2JqZWN0Ij09PXcobykpUy5tZXJnZShwLG8ubm9kZVR5cGU/W29dOm8pO2Vsc2UgaWYobWUudGVzdChvKSl7YT1hfHxmLmFwcGVuZENoaWxkKHQuY3JlYXRlRWxlbWVudCgiZGl2IikpLHM9KGRlLmV4ZWMobyl8fFsiIiwiIl0pWzFdLnRvTG93ZXJDYXNlKCksdT1nZVtzXXx8Z2UuX2RlZmF1bHQsYS5pbm5lckhUTUw9dVsxXStTLmh0bWxQcmVmaWx0ZXIobykrdVsyXSxjPXVbMF07d2hpbGUoYy0tKWE9YS5sYXN0Q2hpbGQ7Uy5tZXJnZShwLGEuY2hpbGROb2RlcyksKGE9Zi5maXJzdENoaWxkKS50ZXh0Q29udGVudD0iIn1lbHNlIHAucHVzaCh0LmNyZWF0ZVRleHROb2RlKG8pKTtmLnRleHRDb250ZW50PSIiLGQ9MDt3aGlsZShvPXBbZCsrXSlpZihyJiYtMTxTLmluQXJyYXkobyxyKSlpJiZpLnB1c2gobyk7ZWxzZSBpZihsPWllKG8pLGE9dmUoZi5hcHBlbmRDaGlsZChvKSwic2NyaXB0IiksbCYmeWUoYSksbil7Yz0wO3doaWxlKG89YVtjKytdKWhlLnRlc3Qoby50eXBlfHwiIikmJm4ucHVzaChvKX1yZXR1cm4gZn12YXIgYmU9L14oW14uXSopKD86XC4oLispfCkvO2Z1bmN0aW9uIHdlKCl7cmV0dXJuITB9ZnVuY3Rpb24gVGUoKXtyZXR1cm4hMX1mdW5jdGlvbiBDZShlLHQpe3JldHVybiBlPT09ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIEUuYWN0aXZlRWxlbWVudH1jYXRjaChlKXt9fSgpPT0oImZvY3VzIj09PXQpfWZ1bmN0aW9uIEVlKGUsdCxuLHIsaSxvKXt2YXIgYSxzO2lmKCJvYmplY3QiPT10eXBlb2YgdCl7Zm9yKHMgaW4ic3RyaW5nIiE9dHlwZW9mIG4mJihyPXJ8fG4sbj12b2lkIDApLHQpRWUoZSxzLG4scix0W3NdLG8pO3JldHVybiBlfWlmKG51bGw9PXImJm51bGw9PWk/KGk9bixyPW49dm9pZCAwKTpudWxsPT1pJiYoInN0cmluZyI9PXR5cGVvZiBuPyhpPXIscj12b2lkIDApOihpPXIscj1uLG49dm9pZCAwKSksITE9PT1pKWk9VGU7ZWxzZSBpZighaSlyZXR1cm4gZTtyZXR1cm4gMT09PW8mJihhPWksKGk9ZnVuY3Rpb24oZSl7cmV0dXJuIFMoKS5vZmYoZSksYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KS5ndWlkPWEuZ3VpZHx8KGEuZ3VpZD1TLmd1aWQrKykpLGUuZWFjaChmdW5jdGlvbigpe1MuZXZlbnQuYWRkKHRoaXMsdCxpLHIsbil9KX1mdW5jdGlvbiBTZShlLGksbyl7bz8oWS5zZXQoZSxpLCExKSxTLmV2ZW50LmFkZChlLGkse25hbWVzcGFjZTohMSxoYW5kbGVyOmZ1bmN0aW9uKGUpe3ZhciB0LG4scj1ZLmdldCh0aGlzLGkpO2lmKDEmZS5pc1RyaWdnZXImJnRoaXNbaV0pe2lmKHIubGVuZ3RoKShTLmV2ZW50LnNwZWNpYWxbaV18fHt9KS5kZWxlZ2F0ZVR5cGUmJmUuc3RvcFByb3BhZ2F0aW9uKCk7ZWxzZSBpZihyPXMuY2FsbChhcmd1bWVudHMpLFkuc2V0KHRoaXMsaSxyKSx0PW8odGhpcyxpKSx0aGlzW2ldKCksciE9PShuPVkuZ2V0KHRoaXMsaSkpfHx0P1kuc2V0KHRoaXMsaSwhMSk6bj17fSxyIT09bilyZXR1cm4gZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSxlLnByZXZlbnREZWZhdWx0KCksbiYmbi52YWx1ZX1lbHNlIHIubGVuZ3RoJiYoWS5zZXQodGhpcyxpLHt2YWx1ZTpTLmV2ZW50LnRyaWdnZXIoUy5leHRlbmQoclswXSxTLkV2ZW50LnByb3RvdHlwZSksci5zbGljZSgxKSx0aGlzKX0pLGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCkpfX0pKTp2b2lkIDA9PT1ZLmdldChlLGkpJiZTLmV2ZW50LmFkZChlLGksd2UpfVMuZXZlbnQ9e2dsb2JhbDp7fSxhZGQ6ZnVuY3Rpb24odCxlLG4scixpKXt2YXIgbyxhLHMsdSxsLGMsZixwLGQsaCxnLHY9WS5nZXQodCk7aWYoVih0KSl7bi5oYW5kbGVyJiYobj0obz1uKS5oYW5kbGVyLGk9by5zZWxlY3RvciksaSYmUy5maW5kLm1hdGNoZXNTZWxlY3RvcihyZSxpKSxuLmd1aWR8fChuLmd1aWQ9Uy5ndWlkKyspLCh1PXYuZXZlbnRzKXx8KHU9di5ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSksKGE9di5oYW5kbGUpfHwoYT12LmhhbmRsZT1mdW5jdGlvbihlKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIFMmJlMuZXZlbnQudHJpZ2dlcmVkIT09ZS50eXBlP1MuZXZlbnQuZGlzcGF0Y2guYXBwbHkodCxhcmd1bWVudHMpOnZvaWQgMH0pLGw9KGU9KGV8fCIiKS5tYXRjaChQKXx8WyIiXSkubGVuZ3RoO3doaWxlKGwtLSlkPWc9KHM9YmUuZXhlYyhlW2xdKXx8W10pWzFdLGg9KHNbMl18fCIiKS5zcGxpdCgiLiIpLnNvcnQoKSxkJiYoZj1TLmV2ZW50LnNwZWNpYWxbZF18fHt9LGQ9KGk/Zi5kZWxlZ2F0ZVR5cGU6Zi5iaW5kVHlwZSl8fGQsZj1TLmV2ZW50LnNwZWNpYWxbZF18fHt9LGM9Uy5leHRlbmQoe3R5cGU6ZCxvcmlnVHlwZTpnLGRhdGE6cixoYW5kbGVyOm4sZ3VpZDpuLmd1aWQsc2VsZWN0b3I6aSxuZWVkc0NvbnRleHQ6aSYmUy5leHByLm1hdGNoLm5lZWRzQ29udGV4dC50ZXN0KGkpLG5hbWVzcGFjZTpoLmpvaW4oIi4iKX0sbyksKHA9dVtkXSl8fCgocD11W2RdPVtdKS5kZWxlZ2F0ZUNvdW50PTAsZi5zZXR1cCYmITEhPT1mLnNldHVwLmNhbGwodCxyLGgsYSl8fHQuYWRkRXZlbnRMaXN0ZW5lciYmdC5hZGRFdmVudExpc3RlbmVyKGQsYSkpLGYuYWRkJiYoZi5hZGQuY2FsbCh0LGMpLGMuaGFuZGxlci5ndWlkfHwoYy5oYW5kbGVyLmd1aWQ9bi5ndWlkKSksaT9wLnNwbGljZShwLmRlbGVnYXRlQ291bnQrKywwLGMpOnAucHVzaChjKSxTLmV2ZW50Lmdsb2JhbFtkXT0hMCl9fSxyZW1vdmU6ZnVuY3Rpb24oZSx0LG4scixpKXt2YXIgbyxhLHMsdSxsLGMsZixwLGQsaCxnLHY9WS5oYXNEYXRhKGUpJiZZLmdldChlKTtpZih2JiYodT12LmV2ZW50cykpe2w9KHQ9KHR8fCIiKS5tYXRjaChQKXx8WyIiXSkubGVuZ3RoO3doaWxlKGwtLSlpZihkPWc9KHM9YmUuZXhlYyh0W2xdKXx8W10pWzFdLGg9KHNbMl18fCIiKS5zcGxpdCgiLiIpLnNvcnQoKSxkKXtmPVMuZXZlbnQuc3BlY2lhbFtkXXx8e30scD11W2Q9KHI/Zi5kZWxlZ2F0ZVR5cGU6Zi5iaW5kVHlwZSl8fGRdfHxbXSxzPXNbMl0mJm5ldyBSZWdFeHAoIihefFxcLikiK2guam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIiksYT1vPXAubGVuZ3RoO3doaWxlKG8tLSljPXBbb10sIWkmJmchPT1jLm9yaWdUeXBlfHxuJiZuLmd1aWQhPT1jLmd1aWR8fHMmJiFzLnRlc3QoYy5uYW1lc3BhY2UpfHxyJiZyIT09Yy5zZWxlY3RvciYmKCIqKiIhPT1yfHwhYy5zZWxlY3Rvcil8fChwLnNwbGljZShvLDEpLGMuc2VsZWN0b3ImJnAuZGVsZWdhdGVDb3VudC0tLGYucmVtb3ZlJiZmLnJlbW92ZS5jYWxsKGUsYykpO2EmJiFwLmxlbmd0aCYmKGYudGVhcmRvd24mJiExIT09Zi50ZWFyZG93bi5jYWxsKGUsaCx2LmhhbmRsZSl8fFMucmVtb3ZlRXZlbnQoZSxkLHYuaGFuZGxlKSxkZWxldGUgdVtkXSl9ZWxzZSBmb3IoZCBpbiB1KVMuZXZlbnQucmVtb3ZlKGUsZCt0W2xdLG4sciwhMCk7Uy5pc0VtcHR5T2JqZWN0KHUpJiZZLnJlbW92ZShlLCJoYW5kbGUgZXZlbnRzIil9fSxkaXNwYXRjaDpmdW5jdGlvbihlKXt2YXIgdCxuLHIsaSxvLGEscz1uZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCksdT1TLmV2ZW50LmZpeChlKSxsPShZLmdldCh0aGlzLCJldmVudHMiKXx8T2JqZWN0LmNyZWF0ZShudWxsKSlbdS50eXBlXXx8W10sYz1TLmV2ZW50LnNwZWNpYWxbdS50eXBlXXx8e307Zm9yKHNbMF09dSx0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKylzW3RdPWFyZ3VtZW50c1t0XTtpZih1LmRlbGVnYXRlVGFyZ2V0PXRoaXMsIWMucHJlRGlzcGF0Y2h8fCExIT09Yy5wcmVEaXNwYXRjaC5jYWxsKHRoaXMsdSkpe2E9Uy5ldmVudC5oYW5kbGVycy5jYWxsKHRoaXMsdSxsKSx0PTA7d2hpbGUoKGk9YVt0KytdKSYmIXUuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSl7dS5jdXJyZW50VGFyZ2V0PWkuZWxlbSxuPTA7d2hpbGUoKG89aS5oYW5kbGVyc1tuKytdKSYmIXUuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQoKSl1LnJuYW1lc3BhY2UmJiExIT09by5uYW1lc3BhY2UmJiF1LnJuYW1lc3BhY2UudGVzdChvLm5hbWVzcGFjZSl8fCh1LmhhbmRsZU9iaj1vLHUuZGF0YT1vLmRhdGEsdm9pZCAwIT09KHI9KChTLmV2ZW50LnNwZWNpYWxbby5vcmlnVHlwZV18fHt9KS5oYW5kbGV8fG8uaGFuZGxlcikuYXBwbHkoaS5lbGVtLHMpKSYmITE9PT0odS5yZXN1bHQ9cikmJih1LnByZXZlbnREZWZhdWx0KCksdS5zdG9wUHJvcGFnYXRpb24oKSkpfXJldHVybiBjLnBvc3REaXNwYXRjaCYmYy5wb3N0RGlzcGF0Y2guY2FsbCh0aGlzLHUpLHUucmVzdWx0fX0saGFuZGxlcnM6ZnVuY3Rpb24oZSx0KXt2YXIgbixyLGksbyxhLHM9W10sdT10LmRlbGVnYXRlQ291bnQsbD1lLnRhcmdldDtpZih1JiZsLm5vZGVUeXBlJiYhKCJjbGljayI9PT1lLnR5cGUmJjE8PWUuYnV0dG9uKSlmb3IoO2whPT10aGlzO2w9bC5wYXJlbnROb2RlfHx0aGlzKWlmKDE9PT1sLm5vZGVUeXBlJiYoImNsaWNrIiE9PWUudHlwZXx8ITAhPT1sLmRpc2FibGVkKSl7Zm9yKG89W10sYT17fSxuPTA7bjx1O24rKyl2b2lkIDA9PT1hW2k9KHI9dFtuXSkuc2VsZWN0b3IrIiAiXSYmKGFbaV09ci5uZWVkc0NvbnRleHQ/LTE8UyhpLHRoaXMpLmluZGV4KGwpOlMuZmluZChpLHRoaXMsbnVsbCxbbF0pLmxlbmd0aCksYVtpXSYmby5wdXNoKHIpO28ubGVuZ3RoJiZzLnB1c2goe2VsZW06bCxoYW5kbGVyczpvfSl9cmV0dXJuIGw9dGhpcyx1PHQubGVuZ3RoJiZzLnB1c2goe2VsZW06bCxoYW5kbGVyczp0LnNsaWNlKHUpfSksc30sYWRkUHJvcDpmdW5jdGlvbih0LGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShTLkV2ZW50LnByb3RvdHlwZSx0LHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6bShlKT9mdW5jdGlvbigpe2lmKHRoaXMub3JpZ2luYWxFdmVudClyZXR1cm4gZSh0aGlzLm9yaWdpbmFsRXZlbnQpfTpmdW5jdGlvbigpe2lmKHRoaXMub3JpZ2luYWxFdmVudClyZXR1cm4gdGhpcy5vcmlnaW5hbEV2ZW50W3RdfSxzZXQ6ZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsdCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZX0pfX0pfSxmaXg6ZnVuY3Rpb24oZSl7cmV0dXJuIGVbUy5leHBhbmRvXT9lOm5ldyBTLkV2ZW50KGUpfSxzcGVjaWFsOntsb2FkOntub0J1YmJsZTohMH0sY2xpY2s6e3NldHVwOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXN8fGU7cmV0dXJuIHBlLnRlc3QodC50eXBlKSYmdC5jbGljayYmQSh0LCJpbnB1dCIpJiZTZSh0LCJjbGljayIsd2UpLCExfSx0cmlnZ2VyOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXN8fGU7cmV0dXJuIHBlLnRlc3QodC50eXBlKSYmdC5jbGljayYmQSh0LCJpbnB1dCIpJiZTZSh0LCJjbGljayIpLCEwfSxfZGVmYXVsdDpmdW5jdGlvbihlKXt2YXIgdD1lLnRhcmdldDtyZXR1cm4gcGUudGVzdCh0LnR5cGUpJiZ0LmNsaWNrJiZBKHQsImlucHV0IikmJlkuZ2V0KHQsImNsaWNrIil8fEEodCwiYSIpfX0sYmVmb3JldW5sb2FkOntwb3N0RGlzcGF0Y2g6ZnVuY3Rpb24oZSl7dm9pZCAwIT09ZS5yZXN1bHQmJmUub3JpZ2luYWxFdmVudCYmKGUub3JpZ2luYWxFdmVudC5yZXR1cm5WYWx1ZT1lLnJlc3VsdCl9fX19LFMucmVtb3ZlRXZlbnQ9ZnVuY3Rpb24oZSx0LG4pe2UucmVtb3ZlRXZlbnRMaXN0ZW5lciYmZS5yZW1vdmVFdmVudExpc3RlbmVyKHQsbil9LFMuRXZlbnQ9ZnVuY3Rpb24oZSx0KXtpZighKHRoaXMgaW5zdGFuY2VvZiBTLkV2ZW50KSlyZXR1cm4gbmV3IFMuRXZlbnQoZSx0KTtlJiZlLnR5cGU/KHRoaXMub3JpZ2luYWxFdmVudD1lLHRoaXMudHlwZT1lLnR5cGUsdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9ZS5kZWZhdWx0UHJldmVudGVkfHx2b2lkIDA9PT1lLmRlZmF1bHRQcmV2ZW50ZWQmJiExPT09ZS5yZXR1cm5WYWx1ZT93ZTpUZSx0aGlzLnRhcmdldD1lLnRhcmdldCYmMz09PWUudGFyZ2V0Lm5vZGVUeXBlP2UudGFyZ2V0LnBhcmVudE5vZGU6ZS50YXJnZXQsdGhpcy5jdXJyZW50VGFyZ2V0PWUuY3VycmVudFRhcmdldCx0aGlzLnJlbGF0ZWRUYXJnZXQ9ZS5yZWxhdGVkVGFyZ2V0KTp0aGlzLnR5cGU9ZSx0JiZTLmV4dGVuZCh0aGlzLHQpLHRoaXMudGltZVN0YW1wPWUmJmUudGltZVN0YW1wfHxEYXRlLm5vdygpLHRoaXNbUy5leHBhbmRvXT0hMH0sUy5FdmVudC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlMuRXZlbnQsaXNEZWZhdWx0UHJldmVudGVkOlRlLGlzUHJvcGFnYXRpb25TdG9wcGVkOlRlLGlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOlRlLGlzU2ltdWxhdGVkOiExLHByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPXdlLGUmJiF0aGlzLmlzU2ltdWxhdGVkJiZlLnByZXZlbnREZWZhdWx0KCl9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3JpZ2luYWxFdmVudDt0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPXdlLGUmJiF0aGlzLmlzU2ltdWxhdGVkJiZlLnN0b3BQcm9wYWdhdGlvbigpfSxzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD13ZSxlJiYhdGhpcy5pc1NpbXVsYXRlZCYmZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSx0aGlzLnN0b3BQcm9wYWdhdGlvbigpfX0sUy5lYWNoKHthbHRLZXk6ITAsYnViYmxlczohMCxjYW5jZWxhYmxlOiEwLGNoYW5nZWRUb3VjaGVzOiEwLGN0cmxLZXk6ITAsZGV0YWlsOiEwLGV2ZW50UGhhc2U6ITAsbWV0YUtleTohMCxwYWdlWDohMCxwYWdlWTohMCxzaGlmdEtleTohMCx2aWV3OiEwLCJjaGFyIjohMCxjb2RlOiEwLGNoYXJDb2RlOiEwLGtleTohMCxrZXlDb2RlOiEwLGJ1dHRvbjohMCxidXR0b25zOiEwLGNsaWVudFg6ITAsY2xpZW50WTohMCxvZmZzZXRYOiEwLG9mZnNldFk6ITAscG9pbnRlcklkOiEwLHBvaW50ZXJUeXBlOiEwLHNjcmVlblg6ITAsc2NyZWVuWTohMCx0YXJnZXRUb3VjaGVzOiEwLHRvRWxlbWVudDohMCx0b3VjaGVzOiEwLHdoaWNoOiEwfSxTLmV2ZW50LmFkZFByb3ApLFMuZWFjaCh7Zm9jdXM6ImZvY3VzaW4iLGJsdXI6ImZvY3Vzb3V0In0sZnVuY3Rpb24oZSx0KXtTLmV2ZW50LnNwZWNpYWxbZV09e3NldHVwOmZ1bmN0aW9uKCl7cmV0dXJuIFNlKHRoaXMsZSxDZSksITF9LHRyaWdnZXI6ZnVuY3Rpb24oKXtyZXR1cm4gU2UodGhpcyxlKSwhMH0sX2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sZGVsZWdhdGVUeXBlOnR9fSksUy5lYWNoKHttb3VzZWVudGVyOiJtb3VzZW92ZXIiLG1vdXNlbGVhdmU6Im1vdXNlb3V0Iixwb2ludGVyZW50ZXI6InBvaW50ZXJvdmVyIixwb2ludGVybGVhdmU6InBvaW50ZXJvdXQifSxmdW5jdGlvbihlLGkpe1MuZXZlbnQuc3BlY2lhbFtlXT17ZGVsZWdhdGVUeXBlOmksYmluZFR5cGU6aSxoYW5kbGU6ZnVuY3Rpb24oZSl7dmFyIHQsbj1lLnJlbGF0ZWRUYXJnZXQscj1lLmhhbmRsZU9iajtyZXR1cm4gbiYmKG49PT10aGlzfHxTLmNvbnRhaW5zKHRoaXMsbikpfHwoZS50eXBlPXIub3JpZ1R5cGUsdD1yLmhhbmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLGUudHlwZT1pKSx0fX19KSxTLmZuLmV4dGVuZCh7b246ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIEVlKHRoaXMsZSx0LG4scil9LG9uZTpmdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gRWUodGhpcyxlLHQsbixyLDEpfSxvZmY6ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGk7aWYoZSYmZS5wcmV2ZW50RGVmYXVsdCYmZS5oYW5kbGVPYmopcmV0dXJuIHI9ZS5oYW5kbGVPYmosUyhlLmRlbGVnYXRlVGFyZ2V0KS5vZmYoci5uYW1lc3BhY2U/ci5vcmlnVHlwZSsiLiIrci5uYW1lc3BhY2U6ci5vcmlnVHlwZSxyLnNlbGVjdG9yLHIuaGFuZGxlciksdGhpcztpZigib2JqZWN0Ij09dHlwZW9mIGUpe2ZvcihpIGluIGUpdGhpcy5vZmYoaSx0LGVbaV0pO3JldHVybiB0aGlzfXJldHVybiExIT09dCYmImZ1bmN0aW9uIiE9dHlwZW9mIHR8fChuPXQsdD12b2lkIDApLCExPT09biYmKG49VGUpLHRoaXMuZWFjaChmdW5jdGlvbigpe1MuZXZlbnQucmVtb3ZlKHRoaXMsZSxuLHQpfSl9fSk7dmFyIGtlPS88c2NyaXB0fDxzdHlsZXw8bGluay9pLEFlPS9jaGVja2VkXHMqKD86W149XXw9XHMqLmNoZWNrZWQuKS9pLE5lPS9eXHMqPCEoPzpcW0NEQVRBXFt8LS0pfCg/OlxdXF18LS0pPlxzKiQvZztmdW5jdGlvbiBqZShlLHQpe3JldHVybiBBKGUsInRhYmxlIikmJkEoMTEhPT10Lm5vZGVUeXBlP3Q6dC5maXJzdENoaWxkLCJ0ciIpJiZTKGUpLmNoaWxkcmVuKCJ0Ym9keSIpWzBdfHxlfWZ1bmN0aW9uIERlKGUpe3JldHVybiBlLnR5cGU9KG51bGwhPT1lLmdldEF0dHJpYnV0ZSgidHlwZSIpKSsiLyIrZS50eXBlLGV9ZnVuY3Rpb24gcWUoZSl7cmV0dXJuInRydWUvIj09PShlLnR5cGV8fCIiKS5zbGljZSgwLDUpP2UudHlwZT1lLnR5cGUuc2xpY2UoNSk6ZS5yZW1vdmVBdHRyaWJ1dGUoInR5cGUiKSxlfWZ1bmN0aW9uIExlKGUsdCl7dmFyIG4scixpLG8sYSxzO2lmKDE9PT10Lm5vZGVUeXBlKXtpZihZLmhhc0RhdGEoZSkmJihzPVkuZ2V0KGUpLmV2ZW50cykpZm9yKGkgaW4gWS5yZW1vdmUodCwiaGFuZGxlIGV2ZW50cyIpLHMpZm9yKG49MCxyPXNbaV0ubGVuZ3RoO248cjtuKyspUy5ldmVudC5hZGQodCxpLHNbaV1bbl0pO1EuaGFzRGF0YShlKSYmKG89US5hY2Nlc3MoZSksYT1TLmV4dGVuZCh7fSxvKSxRLnNldCh0LGEpKX19ZnVuY3Rpb24gSGUobixyLGksbyl7cj1nKHIpO3ZhciBlLHQsYSxzLHUsbCxjPTAsZj1uLmxlbmd0aCxwPWYtMSxkPXJbMF0saD1tKGQpO2lmKGh8fDE8ZiYmInN0cmluZyI9PXR5cGVvZiBkJiYheS5jaGVja0Nsb25lJiZBZS50ZXN0KGQpKXJldHVybiBuLmVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9bi5lcShlKTtoJiYoclswXT1kLmNhbGwodGhpcyxlLHQuaHRtbCgpKSksSGUodCxyLGksbyl9KTtpZihmJiYodD0oZT14ZShyLG5bMF0ub3duZXJEb2N1bWVudCwhMSxuLG8pKS5maXJzdENoaWxkLDE9PT1lLmNoaWxkTm9kZXMubGVuZ3RoJiYoZT10KSx0fHxvKSl7Zm9yKHM9KGE9Uy5tYXAodmUoZSwic2NyaXB0IiksRGUpKS5sZW5ndGg7YzxmO2MrKyl1PWUsYyE9PXAmJih1PVMuY2xvbmUodSwhMCwhMCkscyYmUy5tZXJnZShhLHZlKHUsInNjcmlwdCIpKSksaS5jYWxsKG5bY10sdSxjKTtpZihzKWZvcihsPWFbYS5sZW5ndGgtMV0ub3duZXJEb2N1bWVudCxTLm1hcChhLHFlKSxjPTA7YzxzO2MrKyl1PWFbY10saGUudGVzdCh1LnR5cGV8fCIiKSYmIVkuYWNjZXNzKHUsImdsb2JhbEV2YWwiKSYmUy5jb250YWlucyhsLHUpJiYodS5zcmMmJiJtb2R1bGUiIT09KHUudHlwZXx8IiIpLnRvTG93ZXJDYXNlKCk/Uy5fZXZhbFVybCYmIXUubm9Nb2R1bGUmJlMuX2V2YWxVcmwodS5zcmMse25vbmNlOnUubm9uY2V8fHUuZ2V0QXR0cmlidXRlKCJub25jZSIpfSxsKTpiKHUudGV4dENvbnRlbnQucmVwbGFjZShOZSwiIiksdSxsKSl9cmV0dXJuIG59ZnVuY3Rpb24gT2UoZSx0LG4pe2Zvcih2YXIgcixpPXQ/Uy5maWx0ZXIodCxlKTplLG89MDtudWxsIT0ocj1pW29dKTtvKyspbnx8MSE9PXIubm9kZVR5cGV8fFMuY2xlYW5EYXRhKHZlKHIpKSxyLnBhcmVudE5vZGUmJihuJiZpZShyKSYmeWUodmUociwic2NyaXB0IikpLHIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChyKSk7cmV0dXJuIGV9Uy5leHRlbmQoe2h0bWxQcmVmaWx0ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LGNsb25lOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzLHUsbCxjPWUuY2xvbmVOb2RlKCEwKSxmPWllKGUpO2lmKCEoeS5ub0Nsb25lQ2hlY2tlZHx8MSE9PWUubm9kZVR5cGUmJjExIT09ZS5ub2RlVHlwZXx8Uy5pc1hNTERvYyhlKSkpZm9yKGE9dmUoYykscj0wLGk9KG89dmUoZSkpLmxlbmd0aDtyPGk7cisrKXM9b1tyXSx1PWFbcl0sdm9pZCAwLCJpbnB1dCI9PT0obD11Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpJiZwZS50ZXN0KHMudHlwZSk/dS5jaGVja2VkPXMuY2hlY2tlZDoiaW5wdXQiIT09bCYmInRleHRhcmVhIiE9PWx8fCh1LmRlZmF1bHRWYWx1ZT1zLmRlZmF1bHRWYWx1ZSk7aWYodClpZihuKWZvcihvPW98fHZlKGUpLGE9YXx8dmUoYykscj0wLGk9by5sZW5ndGg7cjxpO3IrKylMZShvW3JdLGFbcl0pO2Vsc2UgTGUoZSxjKTtyZXR1cm4gMDwoYT12ZShjLCJzY3JpcHQiKSkubGVuZ3RoJiZ5ZShhLCFmJiZ2ZShlLCJzY3JpcHQiKSksY30sY2xlYW5EYXRhOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxuLHIsaT1TLmV2ZW50LnNwZWNpYWwsbz0wO3ZvaWQgMCE9PShuPWVbb10pO28rKylpZihWKG4pKXtpZih0PW5bWS5leHBhbmRvXSl7aWYodC5ldmVudHMpZm9yKHIgaW4gdC5ldmVudHMpaVtyXT9TLmV2ZW50LnJlbW92ZShuLHIpOlMucmVtb3ZlRXZlbnQobixyLHQuaGFuZGxlKTtuW1kuZXhwYW5kb109dm9pZCAwfW5bUS5leHBhbmRvXSYmKG5bUS5leHBhbmRvXT12b2lkIDApfX19KSxTLmZuLmV4dGVuZCh7ZGV0YWNoOmZ1bmN0aW9uKGUpe3JldHVybiBPZSh0aGlzLGUsITApfSxyZW1vdmU6ZnVuY3Rpb24oZSl7cmV0dXJuIE9lKHRoaXMsZSl9LHRleHQ6ZnVuY3Rpb24oZSl7cmV0dXJuICQodGhpcyxmdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwPT09ZT9TLnRleHQodGhpcyk6dGhpcy5lbXB0eSgpLmVhY2goZnVuY3Rpb24oKXsxIT09dGhpcy5ub2RlVHlwZSYmMTEhPT10aGlzLm5vZGVUeXBlJiY5IT09dGhpcy5ub2RlVHlwZXx8KHRoaXMudGV4dENvbnRlbnQ9ZSl9KX0sbnVsbCxlLGFyZ3VtZW50cy5sZW5ndGgpfSxhcHBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gSGUodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oZSl7MSE9PXRoaXMubm9kZVR5cGUmJjExIT09dGhpcy5ub2RlVHlwZSYmOSE9PXRoaXMubm9kZVR5cGV8fGplKHRoaXMsZSkuYXBwZW5kQ2hpbGQoZSl9KX0scHJlcGVuZDpmdW5jdGlvbigpe3JldHVybiBIZSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihlKXtpZigxPT09dGhpcy5ub2RlVHlwZXx8MTE9PT10aGlzLm5vZGVUeXBlfHw5PT09dGhpcy5ub2RlVHlwZSl7dmFyIHQ9amUodGhpcyxlKTt0Lmluc2VydEJlZm9yZShlLHQuZmlyc3RDaGlsZCl9fSl9LGJlZm9yZTpmdW5jdGlvbigpe3JldHVybiBIZSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihlKXt0aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSx0aGlzKX0pfSxhZnRlcjpmdW5jdGlvbigpe3JldHVybiBIZSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihlKXt0aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSx0aGlzLm5leHRTaWJsaW5nKX0pfSxlbXB0eTpmdW5jdGlvbigpe2Zvcih2YXIgZSx0PTA7bnVsbCE9KGU9dGhpc1t0XSk7dCsrKTE9PT1lLm5vZGVUeXBlJiYoUy5jbGVhbkRhdGEodmUoZSwhMSkpLGUudGV4dENvbnRlbnQ9IiIpO3JldHVybiB0aGlzfSxjbG9uZTpmdW5jdGlvbihlLHQpe3JldHVybiBlPW51bGwhPWUmJmUsdD1udWxsPT10P2U6dCx0aGlzLm1hcChmdW5jdGlvbigpe3JldHVybiBTLmNsb25lKHRoaXMsZSx0KX0pfSxodG1sOmZ1bmN0aW9uKGUpe3JldHVybiAkKHRoaXMsZnVuY3Rpb24oZSl7dmFyIHQ9dGhpc1swXXx8e30sbj0wLHI9dGhpcy5sZW5ndGg7aWYodm9pZCAwPT09ZSYmMT09PXQubm9kZVR5cGUpcmV0dXJuIHQuaW5uZXJIVE1MO2lmKCJzdHJpbmciPT10eXBlb2YgZSYmIWtlLnRlc3QoZSkmJiFnZVsoZGUuZXhlYyhlKXx8WyIiLCIiXSlbMV0udG9Mb3dlckNhc2UoKV0pe2U9Uy5odG1sUHJlZmlsdGVyKGUpO3RyeXtmb3IoO248cjtuKyspMT09PSh0PXRoaXNbbl18fHt9KS5ub2RlVHlwZSYmKFMuY2xlYW5EYXRhKHZlKHQsITEpKSx0LmlubmVySFRNTD1lKTt0PTB9Y2F0Y2goZSl7fX10JiZ0aGlzLmVtcHR5KCkuYXBwZW5kKGUpfSxudWxsLGUsYXJndW1lbnRzLmxlbmd0aCl9LHJlcGxhY2VXaXRoOmZ1bmN0aW9uKCl7dmFyIG49W107cmV0dXJuIEhlKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMucGFyZW50Tm9kZTtTLmluQXJyYXkodGhpcyxuKTwwJiYoUy5jbGVhbkRhdGEodmUodGhpcykpLHQmJnQucmVwbGFjZUNoaWxkKGUsdGhpcykpfSxuKX19KSxTLmVhY2goe2FwcGVuZFRvOiJhcHBlbmQiLHByZXBlbmRUbzoicHJlcGVuZCIsaW5zZXJ0QmVmb3JlOiJiZWZvcmUiLGluc2VydEFmdGVyOiJhZnRlciIscmVwbGFjZUFsbDoicmVwbGFjZVdpdGgifSxmdW5jdGlvbihlLGEpe1MuZm5bZV09ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LG49W10scj1TKGUpLGk9ci5sZW5ndGgtMSxvPTA7bzw9aTtvKyspdD1vPT09aT90aGlzOnRoaXMuY2xvbmUoITApLFMocltvXSlbYV0odCksdS5hcHBseShuLHQuZ2V0KCkpO3JldHVybiB0aGlzLnB1c2hTdGFjayhuKX19KTt2YXIgUGU9bmV3IFJlZ0V4cCgiXigiK2VlKyIpKD8hcHgpW2EteiVdKyQiLCJpIiksUmU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3O3JldHVybiB0JiZ0Lm9wZW5lcnx8KHQ9QyksdC5nZXRDb21wdXRlZFN0eWxlKGUpfSxNZT1mdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvPXt9O2ZvcihpIGluIHQpb1tpXT1lLnN0eWxlW2ldLGUuc3R5bGVbaV09dFtpXTtmb3IoaSBpbiByPW4uY2FsbChlKSx0KWUuc3R5bGVbaV09b1tpXTtyZXR1cm4gcn0sSWU9bmV3IFJlZ0V4cChuZS5qb2luKCJ8IiksImkiKTtmdW5jdGlvbiBXZShlLHQsbil7dmFyIHIsaSxvLGEscz1lLnN0eWxlO3JldHVybihuPW58fFJlKGUpKSYmKCIiIT09KGE9bi5nZXRQcm9wZXJ0eVZhbHVlKHQpfHxuW3RdKXx8aWUoZSl8fChhPVMuc3R5bGUoZSx0KSksIXkucGl4ZWxCb3hTdHlsZXMoKSYmUGUudGVzdChhKSYmSWUudGVzdCh0KSYmKHI9cy53aWR0aCxpPXMubWluV2lkdGgsbz1zLm1heFdpZHRoLHMubWluV2lkdGg9cy5tYXhXaWR0aD1zLndpZHRoPWEsYT1uLndpZHRoLHMud2lkdGg9cixzLm1pbldpZHRoPWkscy5tYXhXaWR0aD1vKSksdm9pZCAwIT09YT9hKyIiOmF9ZnVuY3Rpb24gRmUoZSx0KXtyZXR1cm57Z2V0OmZ1bmN0aW9uKCl7aWYoIWUoKSlyZXR1cm4odGhpcy5nZXQ9dCkuYXBwbHkodGhpcyxhcmd1bWVudHMpO2RlbGV0ZSB0aGlzLmdldH19fSFmdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXtpZihsKXt1LnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTExMTExcHg7d2lkdGg6NjBweDttYXJnaW4tdG9wOjFweDtwYWRkaW5nOjA7Ym9yZGVyOjAiLGwuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3g7b3ZlcmZsb3c6c2Nyb2xsO21hcmdpbjphdXRvO2JvcmRlcjoxcHg7cGFkZGluZzoxcHg7d2lkdGg6NjAlO3RvcDoxJSIscmUuYXBwZW5kQ2hpbGQodSkuYXBwZW5kQ2hpbGQobCk7dmFyIGU9Qy5nZXRDb21wdXRlZFN0eWxlKGwpO249IjElIiE9PWUudG9wLHM9MTI9PT10KGUubWFyZ2luTGVmdCksbC5zdHlsZS5yaWdodD0iNjAlIixvPTM2PT09dChlLnJpZ2h0KSxyPTM2PT09dChlLndpZHRoKSxsLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsaT0xMj09PXQobC5vZmZzZXRXaWR0aC8zKSxyZS5yZW1vdmVDaGlsZCh1KSxsPW51bGx9fWZ1bmN0aW9uIHQoZSl7cmV0dXJuIE1hdGgucm91bmQocGFyc2VGbG9hdChlKSl9dmFyIG4scixpLG8sYSxzLHU9RS5jcmVhdGVFbGVtZW50KCJkaXYiKSxsPUUuY3JlYXRlRWxlbWVudCgiZGl2Iik7bC5zdHlsZSYmKGwuc3R5bGUuYmFja2dyb3VuZENsaXA9ImNvbnRlbnQtYm94IixsLmNsb25lTm9kZSghMCkuc3R5bGUuYmFja2dyb3VuZENsaXA9IiIseS5jbGVhckNsb25lU3R5bGU9ImNvbnRlbnQtYm94Ij09PWwuc3R5bGUuYmFja2dyb3VuZENsaXAsUy5leHRlbmQoeSx7Ym94U2l6aW5nUmVsaWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gZSgpLHJ9LHBpeGVsQm94U3R5bGVzOmZ1bmN0aW9uKCl7cmV0dXJuIGUoKSxvfSxwaXhlbFBvc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIGUoKSxufSxyZWxpYWJsZU1hcmdpbkxlZnQ6ZnVuY3Rpb24oKXtyZXR1cm4gZSgpLHN9LHNjcm9sbGJveFNpemU6ZnVuY3Rpb24oKXtyZXR1cm4gZSgpLGl9LHJlbGlhYmxlVHJEaW1lbnNpb25zOmZ1bmN0aW9uKCl7dmFyIGUsdCxuLHI7cmV0dXJuIG51bGw9PWEmJihlPUUuY3JlYXRlRWxlbWVudCgidGFibGUiKSx0PUUuY3JlYXRlRWxlbWVudCgidHIiKSxuPUUuY3JlYXRlRWxlbWVudCgiZGl2IiksZS5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi0xMTExMXB4O2JvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZSIsdC5zdHlsZS5jc3NUZXh0PSJib3JkZXI6MXB4IHNvbGlkIix0LnN0eWxlLmhlaWdodD0iMXB4IixuLnN0eWxlLmhlaWdodD0iOXB4IixuLnN0eWxlLmRpc3BsYXk9ImJsb2NrIixyZS5hcHBlbmRDaGlsZChlKS5hcHBlbmRDaGlsZCh0KS5hcHBlbmRDaGlsZChuKSxyPUMuZ2V0Q29tcHV0ZWRTdHlsZSh0KSxhPXBhcnNlSW50KHIuaGVpZ2h0LDEwKStwYXJzZUludChyLmJvcmRlclRvcFdpZHRoLDEwKStwYXJzZUludChyLmJvcmRlckJvdHRvbVdpZHRoLDEwKT09PXQub2Zmc2V0SGVpZ2h0LHJlLnJlbW92ZUNoaWxkKGUpKSxhfX0pKX0oKTt2YXIgQmU9WyJXZWJraXQiLCJNb3oiLCJtcyJdLCRlPUUuY3JlYXRlRWxlbWVudCgiZGl2Iikuc3R5bGUsX2U9e307ZnVuY3Rpb24gemUoZSl7dmFyIHQ9Uy5jc3NQcm9wc1tlXXx8X2VbZV07cmV0dXJuIHR8fChlIGluICRlP2U6X2VbZV09ZnVuY3Rpb24oZSl7dmFyIHQ9ZVswXS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSksbj1CZS5sZW5ndGg7d2hpbGUobi0tKWlmKChlPUJlW25dK3QpaW4gJGUpcmV0dXJuIGV9KGUpfHxlKX12YXIgVWU9L14obm9uZXx0YWJsZSg/IS1jW2VhXSkuKykvLFhlPS9eLS0vLFZlPXtwb3NpdGlvbjoiYWJzb2x1dGUiLHZpc2liaWxpdHk6ImhpZGRlbiIsZGlzcGxheToiYmxvY2sifSxHZT17bGV0dGVyU3BhY2luZzoiMCIsZm9udFdlaWdodDoiNDAwIn07ZnVuY3Rpb24gWWUoZSx0LG4pe3ZhciByPXRlLmV4ZWModCk7cmV0dXJuIHI/TWF0aC5tYXgoMCxyWzJdLShufHwwKSkrKHJbM118fCJweCIpOnR9ZnVuY3Rpb24gUWUoZSx0LG4scixpLG8pe3ZhciBhPSJ3aWR0aCI9PT10PzE6MCxzPTAsdT0wO2lmKG49PT0ocj8iYm9yZGVyIjoiY29udGVudCIpKXJldHVybiAwO2Zvcig7YTw0O2ErPTIpIm1hcmdpbiI9PT1uJiYodSs9Uy5jc3MoZSxuK25lW2FdLCEwLGkpKSxyPygiY29udGVudCI9PT1uJiYodS09Uy5jc3MoZSwicGFkZGluZyIrbmVbYV0sITAsaSkpLCJtYXJnaW4iIT09biYmKHUtPVMuY3NzKGUsImJvcmRlciIrbmVbYV0rIldpZHRoIiwhMCxpKSkpOih1Kz1TLmNzcyhlLCJwYWRkaW5nIituZVthXSwhMCxpKSwicGFkZGluZyIhPT1uP3UrPVMuY3NzKGUsImJvcmRlciIrbmVbYV0rIldpZHRoIiwhMCxpKTpzKz1TLmNzcyhlLCJib3JkZXIiK25lW2FdKyJXaWR0aCIsITAsaSkpO3JldHVybiFyJiYwPD1vJiYodSs9TWF0aC5tYXgoMCxNYXRoLmNlaWwoZVsib2Zmc2V0Iit0WzBdLnRvVXBwZXJDYXNlKCkrdC5zbGljZSgxKV0tby11LXMtLjUpKXx8MCksdX1mdW5jdGlvbiBKZShlLHQsbil7dmFyIHI9UmUoZSksaT0oIXkuYm94U2l6aW5nUmVsaWFibGUoKXx8bikmJiJib3JkZXItYm94Ij09PVMuY3NzKGUsImJveFNpemluZyIsITEsciksbz1pLGE9V2UoZSx0LHIpLHM9Im9mZnNldCIrdFswXS50b1VwcGVyQ2FzZSgpK3Quc2xpY2UoMSk7aWYoUGUudGVzdChhKSl7aWYoIW4pcmV0dXJuIGE7YT0iYXV0byJ9cmV0dXJuKCF5LmJveFNpemluZ1JlbGlhYmxlKCkmJml8fCF5LnJlbGlhYmxlVHJEaW1lbnNpb25zKCkmJkEoZSwidHIiKXx8ImF1dG8iPT09YXx8IXBhcnNlRmxvYXQoYSkmJiJpbmxpbmUiPT09Uy5jc3MoZSwiZGlzcGxheSIsITEscikpJiZlLmdldENsaWVudFJlY3RzKCkubGVuZ3RoJiYoaT0iYm9yZGVyLWJveCI9PT1TLmNzcyhlLCJib3hTaXppbmciLCExLHIpLChvPXMgaW4gZSkmJihhPWVbc10pKSwoYT1wYXJzZUZsb2F0KGEpfHwwKStRZShlLHQsbnx8KGk/ImJvcmRlciI6ImNvbnRlbnQiKSxvLHIsYSkrInB4In1mdW5jdGlvbiBLZShlLHQsbixyLGkpe3JldHVybiBuZXcgS2UucHJvdG90eXBlLmluaXQoZSx0LG4scixpKX1TLmV4dGVuZCh7Y3NzSG9va3M6e29wYWNpdHk6e2dldDpmdW5jdGlvbihlLHQpe2lmKHQpe3ZhciBuPVdlKGUsIm9wYWNpdHkiKTtyZXR1cm4iIj09PW4/IjEiOm59fX19LGNzc051bWJlcjp7YW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ITAsY29sdW1uQ291bnQ6ITAsZmlsbE9wYWNpdHk6ITAsZmxleEdyb3c6ITAsZmxleFNocmluazohMCxmb250V2VpZ2h0OiEwLGdyaWRBcmVhOiEwLGdyaWRDb2x1bW46ITAsZ3JpZENvbHVtbkVuZDohMCxncmlkQ29sdW1uU3RhcnQ6ITAsZ3JpZFJvdzohMCxncmlkUm93RW5kOiEwLGdyaWRSb3dTdGFydDohMCxsaW5lSGVpZ2h0OiEwLG9wYWNpdHk6ITAsb3JkZXI6ITAsb3JwaGFuczohMCx3aWRvd3M6ITAsekluZGV4OiEwLHpvb206ITB9LGNzc1Byb3BzOnt9LHN0eWxlOmZ1bmN0aW9uKGUsdCxuLHIpe2lmKGUmJjMhPT1lLm5vZGVUeXBlJiY4IT09ZS5ub2RlVHlwZSYmZS5zdHlsZSl7dmFyIGksbyxhLHM9WCh0KSx1PVhlLnRlc3QodCksbD1lLnN0eWxlO2lmKHV8fCh0PXplKHMpKSxhPVMuY3NzSG9va3NbdF18fFMuY3NzSG9va3Nbc10sdm9pZCAwPT09bilyZXR1cm4gYSYmImdldCJpbiBhJiZ2b2lkIDAhPT0oaT1hLmdldChlLCExLHIpKT9pOmxbdF07InN0cmluZyI9PT0obz10eXBlb2YgbikmJihpPXRlLmV4ZWMobikpJiZpWzFdJiYobj1zZShlLHQsaSksbz0ibnVtYmVyIiksbnVsbCE9biYmbj09biYmKCJudW1iZXIiIT09b3x8dXx8KG4rPWkmJmlbM118fChTLmNzc051bWJlcltzXT8iIjoicHgiKSkseS5jbGVhckNsb25lU3R5bGV8fCIiIT09bnx8MCE9PXQuaW5kZXhPZigiYmFja2dyb3VuZCIpfHwobFt0XT0iaW5oZXJpdCIpLGEmJiJzZXQiaW4gYSYmdm9pZCAwPT09KG49YS5zZXQoZSxuLHIpKXx8KHU/bC5zZXRQcm9wZXJ0eSh0LG4pOmxbdF09bikpfX0sY3NzOmZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBpLG8sYSxzPVgodCk7cmV0dXJuIFhlLnRlc3QodCl8fCh0PXplKHMpKSwoYT1TLmNzc0hvb2tzW3RdfHxTLmNzc0hvb2tzW3NdKSYmImdldCJpbiBhJiYoaT1hLmdldChlLCEwLG4pKSx2b2lkIDA9PT1pJiYoaT1XZShlLHQscikpLCJub3JtYWwiPT09aSYmdCBpbiBHZSYmKGk9R2VbdF0pLCIiPT09bnx8bj8obz1wYXJzZUZsb2F0KGkpLCEwPT09bnx8aXNGaW5pdGUobyk/b3x8MDppKTppfX0pLFMuZWFjaChbImhlaWdodCIsIndpZHRoIl0sZnVuY3Rpb24oZSx1KXtTLmNzc0hvb2tzW3VdPXtnZXQ6ZnVuY3Rpb24oZSx0LG4pe2lmKHQpcmV0dXJuIVVlLnRlc3QoUy5jc3MoZSwiZGlzcGxheSIpKXx8ZS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCYmZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aD9KZShlLHUsbik6TWUoZSxWZSxmdW5jdGlvbigpe3JldHVybiBKZShlLHUsbil9KX0sc2V0OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpPVJlKGUpLG89IXkuc2Nyb2xsYm94U2l6ZSgpJiYiYWJzb2x1dGUiPT09aS5wb3NpdGlvbixhPShvfHxuKSYmImJvcmRlci1ib3giPT09Uy5jc3MoZSwiYm94U2l6aW5nIiwhMSxpKSxzPW4/UWUoZSx1LG4sYSxpKTowO3JldHVybiBhJiZvJiYocy09TWF0aC5jZWlsKGVbIm9mZnNldCIrdVswXS50b1VwcGVyQ2FzZSgpK3Uuc2xpY2UoMSldLXBhcnNlRmxvYXQoaVt1XSktUWUoZSx1LCJib3JkZXIiLCExLGkpLS41KSkscyYmKHI9dGUuZXhlYyh0KSkmJiJweCIhPT0oclszXXx8InB4IikmJihlLnN0eWxlW3VdPXQsdD1TLmNzcyhlLHUpKSxZZSgwLHQscyl9fX0pLFMuY3NzSG9va3MubWFyZ2luTGVmdD1GZSh5LnJlbGlhYmxlTWFyZ2luTGVmdCxmdW5jdGlvbihlLHQpe2lmKHQpcmV0dXJuKHBhcnNlRmxvYXQoV2UoZSwibWFyZ2luTGVmdCIpKXx8ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0LU1lKGUse21hcmdpbkxlZnQ6MH0sZnVuY3Rpb24oKXtyZXR1cm4gZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0fSkpKyJweCJ9KSxTLmVhY2goe21hcmdpbjoiIixwYWRkaW5nOiIiLGJvcmRlcjoiV2lkdGgifSxmdW5jdGlvbihpLG8pe1MuY3NzSG9va3NbaStvXT17ZXhwYW5kOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0wLG49e30scj0ic3RyaW5nIj09dHlwZW9mIGU/ZS5zcGxpdCgiICIpOltlXTt0PDQ7dCsrKW5baStuZVt0XStvXT1yW3RdfHxyW3QtMl18fHJbMF07cmV0dXJuIG59fSwibWFyZ2luIiE9PWkmJihTLmNzc0hvb2tzW2krb10uc2V0PVllKX0pLFMuZm4uZXh0ZW5kKHtjc3M6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gJCh0aGlzLGZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG89e30sYT0wO2lmKEFycmF5LmlzQXJyYXkodCkpe2ZvcihyPVJlKGUpLGk9dC5sZW5ndGg7YTxpO2ErKylvW3RbYV1dPVMuY3NzKGUsdFthXSwhMSxyKTtyZXR1cm4gb31yZXR1cm4gdm9pZCAwIT09bj9TLnN0eWxlKGUsdCxuKTpTLmNzcyhlLHQpfSxlLHQsMTxhcmd1bWVudHMubGVuZ3RoKX19KSwoKFMuVHdlZW49S2UpLnByb3RvdHlwZT17Y29uc3RydWN0b3I6S2UsaW5pdDpmdW5jdGlvbihlLHQsbixyLGksbyl7dGhpcy5lbGVtPWUsdGhpcy5wcm9wPW4sdGhpcy5lYXNpbmc9aXx8Uy5lYXNpbmcuX2RlZmF1bHQsdGhpcy5vcHRpb25zPXQsdGhpcy5zdGFydD10aGlzLm5vdz10aGlzLmN1cigpLHRoaXMuZW5kPXIsdGhpcy51bml0PW98fChTLmNzc051bWJlcltuXT8iIjoicHgiKX0sY3VyOmZ1bmN0aW9uKCl7dmFyIGU9S2UucHJvcEhvb2tzW3RoaXMucHJvcF07cmV0dXJuIGUmJmUuZ2V0P2UuZ2V0KHRoaXMpOktlLnByb3BIb29rcy5fZGVmYXVsdC5nZXQodGhpcyl9LHJ1bjpmdW5jdGlvbihlKXt2YXIgdCxuPUtlLnByb3BIb29rc1t0aGlzLnByb3BdO3JldHVybiB0aGlzLm9wdGlvbnMuZHVyYXRpb24/dGhpcy5wb3M9dD1TLmVhc2luZ1t0aGlzLmVhc2luZ10oZSx0aGlzLm9wdGlvbnMuZHVyYXRpb24qZSwwLDEsdGhpcy5vcHRpb25zLmR1cmF0aW9uKTp0aGlzLnBvcz10PWUsdGhpcy5ub3c9KHRoaXMuZW5kLXRoaXMuc3RhcnQpKnQrdGhpcy5zdGFydCx0aGlzLm9wdGlvbnMuc3RlcCYmdGhpcy5vcHRpb25zLnN0ZXAuY2FsbCh0aGlzLmVsZW0sdGhpcy5ub3csdGhpcyksbiYmbi5zZXQ/bi5zZXQodGhpcyk6S2UucHJvcEhvb2tzLl9kZWZhdWx0LnNldCh0aGlzKSx0aGlzfX0pLmluaXQucHJvdG90eXBlPUtlLnByb3RvdHlwZSwoS2UucHJvcEhvb2tzPXtfZGVmYXVsdDp7Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybiAxIT09ZS5lbGVtLm5vZGVUeXBlfHxudWxsIT1lLmVsZW1bZS5wcm9wXSYmbnVsbD09ZS5lbGVtLnN0eWxlW2UucHJvcF0/ZS5lbGVtW2UucHJvcF06KHQ9Uy5jc3MoZS5lbGVtLGUucHJvcCwiIikpJiYiYXV0byIhPT10P3Q6MH0sc2V0OmZ1bmN0aW9uKGUpe1MuZnguc3RlcFtlLnByb3BdP1MuZnguc3RlcFtlLnByb3BdKGUpOjEhPT1lLmVsZW0ubm9kZVR5cGV8fCFTLmNzc0hvb2tzW2UucHJvcF0mJm51bGw9PWUuZWxlbS5zdHlsZVt6ZShlLnByb3ApXT9lLmVsZW1bZS5wcm9wXT1lLm5vdzpTLnN0eWxlKGUuZWxlbSxlLnByb3AsZS5ub3crZS51bml0KX19fSkuc2Nyb2xsVG9wPUtlLnByb3BIb29rcy5zY3JvbGxMZWZ0PXtzZXQ6ZnVuY3Rpb24oZSl7ZS5lbGVtLm5vZGVUeXBlJiZlLmVsZW0ucGFyZW50Tm9kZSYmKGUuZWxlbVtlLnByb3BdPWUubm93KX19LFMuZWFzaW5nPXtsaW5lYXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LHN3aW5nOmZ1bmN0aW9uKGUpe3JldHVybi41LU1hdGguY29zKGUqTWF0aC5QSSkvMn0sX2RlZmF1bHQ6InN3aW5nIn0sUy5meD1LZS5wcm90b3R5cGUuaW5pdCxTLmZ4LnN0ZXA9e307dmFyIFplLGV0LHR0LG50LHJ0PS9eKD86dG9nZ2xlfHNob3d8aGlkZSkkLyxpdD0vcXVldWVIb29rcyQvO2Z1bmN0aW9uIG90KCl7ZXQmJighMT09PUUuaGlkZGVuJiZDLnJlcXVlc3RBbmltYXRpb25GcmFtZT9DLnJlcXVlc3RBbmltYXRpb25GcmFtZShvdCk6Qy5zZXRUaW1lb3V0KG90LFMuZnguaW50ZXJ2YWwpLFMuZngudGljaygpKX1mdW5jdGlvbiBhdCgpe3JldHVybiBDLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtaZT12b2lkIDB9KSxaZT1EYXRlLm5vdygpfWZ1bmN0aW9uIHN0KGUsdCl7dmFyIG4scj0wLGk9e2hlaWdodDplfTtmb3IodD10PzE6MDtyPDQ7cis9Mi10KWlbIm1hcmdpbiIrKG49bmVbcl0pXT1pWyJwYWRkaW5nIituXT1lO3JldHVybiB0JiYoaS5vcGFjaXR5PWkud2lkdGg9ZSksaX1mdW5jdGlvbiB1dChlLHQsbil7Zm9yKHZhciByLGk9KGx0LnR3ZWVuZXJzW3RdfHxbXSkuY29uY2F0KGx0LnR3ZWVuZXJzWyIqIl0pLG89MCxhPWkubGVuZ3RoO288YTtvKyspaWYocj1pW29dLmNhbGwobix0LGUpKXJldHVybiByfWZ1bmN0aW9uIGx0KG8sZSx0KXt2YXIgbixhLHI9MCxpPWx0LnByZWZpbHRlcnMubGVuZ3RoLHM9Uy5EZWZlcnJlZCgpLmFsd2F5cyhmdW5jdGlvbigpe2RlbGV0ZSB1LmVsZW19KSx1PWZ1bmN0aW9uKCl7aWYoYSlyZXR1cm4hMTtmb3IodmFyIGU9WmV8fGF0KCksdD1NYXRoLm1heCgwLGwuc3RhcnRUaW1lK2wuZHVyYXRpb24tZSksbj0xLSh0L2wuZHVyYXRpb258fDApLHI9MCxpPWwudHdlZW5zLmxlbmd0aDtyPGk7cisrKWwudHdlZW5zW3JdLnJ1bihuKTtyZXR1cm4gcy5ub3RpZnlXaXRoKG8sW2wsbix0XSksbjwxJiZpP3Q6KGl8fHMubm90aWZ5V2l0aChvLFtsLDEsMF0pLHMucmVzb2x2ZVdpdGgobyxbbF0pLCExKX0sbD1zLnByb21pc2Uoe2VsZW06byxwcm9wczpTLmV4dGVuZCh7fSxlKSxvcHRzOlMuZXh0ZW5kKCEwLHtzcGVjaWFsRWFzaW5nOnt9LGVhc2luZzpTLmVhc2luZy5fZGVmYXVsdH0sdCksb3JpZ2luYWxQcm9wZXJ0aWVzOmUsb3JpZ2luYWxPcHRpb25zOnQsc3RhcnRUaW1lOlplfHxhdCgpLGR1cmF0aW9uOnQuZHVyYXRpb24sdHdlZW5zOltdLGNyZWF0ZVR3ZWVuOmZ1bmN0aW9uKGUsdCl7dmFyIG49Uy5Ud2VlbihvLGwub3B0cyxlLHQsbC5vcHRzLnNwZWNpYWxFYXNpbmdbZV18fGwub3B0cy5lYXNpbmcpO3JldHVybiBsLnR3ZWVucy5wdXNoKG4pLG59LHN0b3A6ZnVuY3Rpb24oZSl7dmFyIHQ9MCxuPWU/bC50d2VlbnMubGVuZ3RoOjA7aWYoYSlyZXR1cm4gdGhpcztmb3IoYT0hMDt0PG47dCsrKWwudHdlZW5zW3RdLnJ1bigxKTtyZXR1cm4gZT8ocy5ub3RpZnlXaXRoKG8sW2wsMSwwXSkscy5yZXNvbHZlV2l0aChvLFtsLGVdKSk6cy5yZWplY3RXaXRoKG8sW2wsZV0pLHRoaXN9fSksYz1sLnByb3BzO2ZvcighZnVuY3Rpb24oZSx0KXt2YXIgbixyLGksbyxhO2ZvcihuIGluIGUpaWYoaT10W3I9WChuKV0sbz1lW25dLEFycmF5LmlzQXJyYXkobykmJihpPW9bMV0sbz1lW25dPW9bMF0pLG4hPT1yJiYoZVtyXT1vLGRlbGV0ZSBlW25dKSwoYT1TLmNzc0hvb2tzW3JdKSYmImV4cGFuZCJpbiBhKWZvcihuIGluIG89YS5leHBhbmQobyksZGVsZXRlIGVbcl0sbyluIGluIGV8fChlW25dPW9bbl0sdFtuXT1pKTtlbHNlIHRbcl09aX0oYyxsLm9wdHMuc3BlY2lhbEVhc2luZyk7cjxpO3IrKylpZihuPWx0LnByZWZpbHRlcnNbcl0uY2FsbChsLG8sYyxsLm9wdHMpKXJldHVybiBtKG4uc3RvcCkmJihTLl9xdWV1ZUhvb2tzKGwuZWxlbSxsLm9wdHMucXVldWUpLnN0b3A9bi5zdG9wLmJpbmQobikpLG47cmV0dXJuIFMubWFwKGMsdXQsbCksbShsLm9wdHMuc3RhcnQpJiZsLm9wdHMuc3RhcnQuY2FsbChvLGwpLGwucHJvZ3Jlc3MobC5vcHRzLnByb2dyZXNzKS5kb25lKGwub3B0cy5kb25lLGwub3B0cy5jb21wbGV0ZSkuZmFpbChsLm9wdHMuZmFpbCkuYWx3YXlzKGwub3B0cy5hbHdheXMpLFMuZngudGltZXIoUy5leHRlbmQodSx7ZWxlbTpvLGFuaW06bCxxdWV1ZTpsLm9wdHMucXVldWV9KSksbH1TLkFuaW1hdGlvbj1TLmV4dGVuZChsdCx7dHdlZW5lcnM6eyIqIjpbZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLmNyZWF0ZVR3ZWVuKGUsdCk7cmV0dXJuIHNlKG4uZWxlbSxlLHRlLmV4ZWModCksbiksbn1dfSx0d2VlbmVyOmZ1bmN0aW9uKGUsdCl7bShlKT8odD1lLGU9WyIqIl0pOmU9ZS5tYXRjaChQKTtmb3IodmFyIG4scj0wLGk9ZS5sZW5ndGg7cjxpO3IrKyluPWVbcl0sbHQudHdlZW5lcnNbbl09bHQudHdlZW5lcnNbbl18fFtdLGx0LnR3ZWVuZXJzW25dLnVuc2hpZnQodCl9LHByZWZpbHRlcnM6W2Z1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzLHUsbCxjLGY9IndpZHRoImluIHR8fCJoZWlnaHQiaW4gdCxwPXRoaXMsZD17fSxoPWUuc3R5bGUsZz1lLm5vZGVUeXBlJiZhZShlKSx2PVkuZ2V0KGUsImZ4c2hvdyIpO2ZvcihyIGluIG4ucXVldWV8fChudWxsPT0oYT1TLl9xdWV1ZUhvb2tzKGUsImZ4IikpLnVucXVldWVkJiYoYS51bnF1ZXVlZD0wLHM9YS5lbXB0eS5maXJlLGEuZW1wdHkuZmlyZT1mdW5jdGlvbigpe2EudW5xdWV1ZWR8fHMoKX0pLGEudW5xdWV1ZWQrKyxwLmFsd2F5cyhmdW5jdGlvbigpe3AuYWx3YXlzKGZ1bmN0aW9uKCl7YS51bnF1ZXVlZC0tLFMucXVldWUoZSwiZngiKS5sZW5ndGh8fGEuZW1wdHkuZmlyZSgpfSl9KSksdClpZihpPXRbcl0scnQudGVzdChpKSl7aWYoZGVsZXRlIHRbcl0sbz1vfHwidG9nZ2xlIj09PWksaT09PShnPyJoaWRlIjoic2hvdyIpKXtpZigic2hvdyIhPT1pfHwhdnx8dm9pZCAwPT09dltyXSljb250aW51ZTtnPSEwfWRbcl09diYmdltyXXx8Uy5zdHlsZShlLHIpfWlmKCh1PSFTLmlzRW1wdHlPYmplY3QodCkpfHwhUy5pc0VtcHR5T2JqZWN0KGQpKWZvcihyIGluIGYmJjE9PT1lLm5vZGVUeXBlJiYobi5vdmVyZmxvdz1baC5vdmVyZmxvdyxoLm92ZXJmbG93WCxoLm92ZXJmbG93WV0sbnVsbD09KGw9diYmdi5kaXNwbGF5KSYmKGw9WS5nZXQoZSwiZGlzcGxheSIpKSwibm9uZSI9PT0oYz1TLmNzcyhlLCJkaXNwbGF5IikpJiYobD9jPWw6KGxlKFtlXSwhMCksbD1lLnN0eWxlLmRpc3BsYXl8fGwsYz1TLmNzcyhlLCJkaXNwbGF5IiksbGUoW2VdKSkpLCgiaW5saW5lIj09PWN8fCJpbmxpbmUtYmxvY2siPT09YyYmbnVsbCE9bCkmJiJub25lIj09PVMuY3NzKGUsImZsb2F0IikmJih1fHwocC5kb25lKGZ1bmN0aW9uKCl7aC5kaXNwbGF5PWx9KSxudWxsPT1sJiYoYz1oLmRpc3BsYXksbD0ibm9uZSI9PT1jPyIiOmMpKSxoLmRpc3BsYXk9ImlubGluZS1ibG9jayIpKSxuLm92ZXJmbG93JiYoaC5vdmVyZmxvdz0iaGlkZGVuIixwLmFsd2F5cyhmdW5jdGlvbigpe2gub3ZlcmZsb3c9bi5vdmVyZmxvd1swXSxoLm92ZXJmbG93WD1uLm92ZXJmbG93WzFdLGgub3ZlcmZsb3dZPW4ub3ZlcmZsb3dbMl19KSksdT0hMSxkKXV8fCh2PyJoaWRkZW4iaW4gdiYmKGc9di5oaWRkZW4pOnY9WS5hY2Nlc3MoZSwiZnhzaG93Iix7ZGlzcGxheTpsfSksbyYmKHYuaGlkZGVuPSFnKSxnJiZsZShbZV0sITApLHAuZG9uZShmdW5jdGlvbigpe2ZvcihyIGluIGd8fGxlKFtlXSksWS5yZW1vdmUoZSwiZnhzaG93IiksZClTLnN0eWxlKGUscixkW3JdKX0pKSx1PXV0KGc/dltyXTowLHIscCksciBpbiB2fHwodltyXT11LnN0YXJ0LGcmJih1LmVuZD11LnN0YXJ0LHUuc3RhcnQ9MCkpfV0scHJlZmlsdGVyOmZ1bmN0aW9uKGUsdCl7dD9sdC5wcmVmaWx0ZXJzLnVuc2hpZnQoZSk6bHQucHJlZmlsdGVycy5wdXNoKGUpfX0pLFMuc3BlZWQ9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWUmJiJvYmplY3QiPT10eXBlb2YgZT9TLmV4dGVuZCh7fSxlKTp7Y29tcGxldGU6bnx8IW4mJnR8fG0oZSkmJmUsZHVyYXRpb246ZSxlYXNpbmc6biYmdHx8dCYmIW0odCkmJnR9O3JldHVybiBTLmZ4Lm9mZj9yLmR1cmF0aW9uPTA6Im51bWJlciIhPXR5cGVvZiByLmR1cmF0aW9uJiYoci5kdXJhdGlvbiBpbiBTLmZ4LnNwZWVkcz9yLmR1cmF0aW9uPVMuZnguc3BlZWRzW3IuZHVyYXRpb25dOnIuZHVyYXRpb249Uy5meC5zcGVlZHMuX2RlZmF1bHQpLG51bGwhPXIucXVldWUmJiEwIT09ci5xdWV1ZXx8KHIucXVldWU9ImZ4Iiksci5vbGQ9ci5jb21wbGV0ZSxyLmNvbXBsZXRlPWZ1bmN0aW9uKCl7bShyLm9sZCkmJnIub2xkLmNhbGwodGhpcyksci5xdWV1ZSYmUy5kZXF1ZXVlKHRoaXMsci5xdWV1ZSl9LHJ9LFMuZm4uZXh0ZW5kKHtmYWRlVG86ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIHRoaXMuZmlsdGVyKGFlKS5jc3MoIm9wYWNpdHkiLDApLnNob3coKS5lbmQoKS5hbmltYXRlKHtvcGFjaXR5OnR9LGUsbixyKX0sYW5pbWF0ZTpmdW5jdGlvbih0LGUsbixyKXt2YXIgaT1TLmlzRW1wdHlPYmplY3QodCksbz1TLnNwZWVkKGUsbixyKSxhPWZ1bmN0aW9uKCl7dmFyIGU9bHQodGhpcyxTLmV4dGVuZCh7fSx0KSxvKTsoaXx8WS5nZXQodGhpcywiZmluaXNoIikpJiZlLnN0b3AoITApfTtyZXR1cm4gYS5maW5pc2g9YSxpfHwhMT09PW8ucXVldWU/dGhpcy5lYWNoKGEpOnRoaXMucXVldWUoby5xdWV1ZSxhKX0sc3RvcDpmdW5jdGlvbihpLGUsbyl7dmFyIGE9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zdG9wO2RlbGV0ZSBlLnN0b3AsdChvKX07cmV0dXJuInN0cmluZyIhPXR5cGVvZiBpJiYobz1lLGU9aSxpPXZvaWQgMCksZSYmdGhpcy5xdWV1ZShpfHwiZngiLFtdKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT0hMCx0PW51bGwhPWkmJmkrInF1ZXVlSG9va3MiLG49Uy50aW1lcnMscj1ZLmdldCh0aGlzKTtpZih0KXJbdF0mJnJbdF0uc3RvcCYmYShyW3RdKTtlbHNlIGZvcih0IGluIHIpclt0XSYmclt0XS5zdG9wJiZpdC50ZXN0KHQpJiZhKHJbdF0pO2Zvcih0PW4ubGVuZ3RoO3QtLTspblt0XS5lbGVtIT09dGhpc3x8bnVsbCE9aSYmblt0XS5xdWV1ZSE9PWl8fChuW3RdLmFuaW0uc3RvcChvKSxlPSExLG4uc3BsaWNlKHQsMSkpOyFlJiZvfHxTLmRlcXVldWUodGhpcyxpKX0pfSxmaW5pc2g6ZnVuY3Rpb24oYSl7cmV0dXJuITEhPT1hJiYoYT1hfHwiZngiKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZSx0PVkuZ2V0KHRoaXMpLG49dFthKyJxdWV1ZSJdLHI9dFthKyJxdWV1ZUhvb2tzIl0saT1TLnRpbWVycyxvPW4/bi5sZW5ndGg6MDtmb3IodC5maW5pc2g9ITAsUy5xdWV1ZSh0aGlzLGEsW10pLHImJnIuc3RvcCYmci5zdG9wLmNhbGwodGhpcywhMCksZT1pLmxlbmd0aDtlLS07KWlbZV0uZWxlbT09PXRoaXMmJmlbZV0ucXVldWU9PT1hJiYoaVtlXS5hbmltLnN0b3AoITApLGkuc3BsaWNlKGUsMSkpO2ZvcihlPTA7ZTxvO2UrKyluW2VdJiZuW2VdLmZpbmlzaCYmbltlXS5maW5pc2guY2FsbCh0aGlzKTtkZWxldGUgdC5maW5pc2h9KX19KSxTLmVhY2goWyJ0b2dnbGUiLCJzaG93IiwiaGlkZSJdLGZ1bmN0aW9uKGUscil7dmFyIGk9Uy5mbltyXTtTLmZuW3JdPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbnVsbD09ZXx8ImJvb2xlYW4iPT10eXBlb2YgZT9pLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp0aGlzLmFuaW1hdGUoc3QociwhMCksZSx0LG4pfX0pLFMuZWFjaCh7c2xpZGVEb3duOnN0KCJzaG93Iiksc2xpZGVVcDpzdCgiaGlkZSIpLHNsaWRlVG9nZ2xlOnN0KCJ0b2dnbGUiKSxmYWRlSW46e29wYWNpdHk6InNob3cifSxmYWRlT3V0OntvcGFjaXR5OiJoaWRlIn0sZmFkZVRvZ2dsZTp7b3BhY2l0eToidG9nZ2xlIn19LGZ1bmN0aW9uKGUscil7Uy5mbltlXT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMuYW5pbWF0ZShyLGUsdCxuKX19KSxTLnRpbWVycz1bXSxTLmZ4LnRpY2s9ZnVuY3Rpb24oKXt2YXIgZSx0PTAsbj1TLnRpbWVycztmb3IoWmU9RGF0ZS5ub3coKTt0PG4ubGVuZ3RoO3QrKykoZT1uW3RdKSgpfHxuW3RdIT09ZXx8bi5zcGxpY2UodC0tLDEpO24ubGVuZ3RofHxTLmZ4LnN0b3AoKSxaZT12b2lkIDB9LFMuZngudGltZXI9ZnVuY3Rpb24oZSl7Uy50aW1lcnMucHVzaChlKSxTLmZ4LnN0YXJ0KCl9LFMuZnguaW50ZXJ2YWw9MTMsUy5meC5zdGFydD1mdW5jdGlvbigpe2V0fHwoZXQ9ITAsb3QoKSl9LFMuZnguc3RvcD1mdW5jdGlvbigpe2V0PW51bGx9LFMuZnguc3BlZWRzPXtzbG93OjYwMCxmYXN0OjIwMCxfZGVmYXVsdDo0MDB9LFMuZm4uZGVsYXk9ZnVuY3Rpb24ocixlKXtyZXR1cm4gcj1TLmZ4JiZTLmZ4LnNwZWVkc1tyXXx8cixlPWV8fCJmeCIsdGhpcy5xdWV1ZShlLGZ1bmN0aW9uKGUsdCl7dmFyIG49Qy5zZXRUaW1lb3V0KGUscik7dC5zdG9wPWZ1bmN0aW9uKCl7Qy5jbGVhclRpbWVvdXQobil9fSl9LHR0PUUuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxudD1FLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpLmFwcGVuZENoaWxkKEUuY3JlYXRlRWxlbWVudCgib3B0aW9uIikpLHR0LnR5cGU9ImNoZWNrYm94Iix5LmNoZWNrT249IiIhPT10dC52YWx1ZSx5Lm9wdFNlbGVjdGVkPW50LnNlbGVjdGVkLCh0dD1FLmNyZWF0ZUVsZW1lbnQoImlucHV0IikpLnZhbHVlPSJ0Iix0dC50eXBlPSJyYWRpbyIseS5yYWRpb1ZhbHVlPSJ0Ij09PXR0LnZhbHVlO3ZhciBjdCxmdD1TLmV4cHIuYXR0ckhhbmRsZTtTLmZuLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihlLHQpe3JldHVybiAkKHRoaXMsUy5hdHRyLGUsdCwxPGFyZ3VtZW50cy5sZW5ndGgpfSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtTLnJlbW92ZUF0dHIodGhpcyxlKX0pfX0pLFMuZXh0ZW5kKHthdHRyOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG89ZS5ub2RlVHlwZTtpZigzIT09byYmOCE9PW8mJjIhPT1vKXJldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgZS5nZXRBdHRyaWJ1dGU/Uy5wcm9wKGUsdCxuKTooMT09PW8mJlMuaXNYTUxEb2MoZSl8fChpPVMuYXR0ckhvb2tzW3QudG9Mb3dlckNhc2UoKV18fChTLmV4cHIubWF0Y2guYm9vbC50ZXN0KHQpP2N0OnZvaWQgMCkpLHZvaWQgMCE9PW4/bnVsbD09PW4/dm9pZCBTLnJlbW92ZUF0dHIoZSx0KTppJiYic2V0ImluIGkmJnZvaWQgMCE9PShyPWkuc2V0KGUsbix0KSk/cjooZS5zZXRBdHRyaWJ1dGUodCxuKyIiKSxuKTppJiYiZ2V0ImluIGkmJm51bGwhPT0ocj1pLmdldChlLHQpKT9yOm51bGw9PShyPVMuZmluZC5hdHRyKGUsdCkpP3ZvaWQgMDpyKX0sYXR0ckhvb2tzOnt0eXBlOntzZXQ6ZnVuY3Rpb24oZSx0KXtpZigheS5yYWRpb1ZhbHVlJiYicmFkaW8iPT09dCYmQShlLCJpbnB1dCIpKXt2YXIgbj1lLnZhbHVlO3JldHVybiBlLnNldEF0dHJpYnV0ZSgidHlwZSIsdCksbiYmKGUudmFsdWU9biksdH19fX0scmVtb3ZlQXR0cjpmdW5jdGlvbihlLHQpe3ZhciBuLHI9MCxpPXQmJnQubWF0Y2goUCk7aWYoaSYmMT09PWUubm9kZVR5cGUpd2hpbGUobj1pW3IrK10pZS5yZW1vdmVBdHRyaWJ1dGUobil9fSksY3Q9e3NldDpmdW5jdGlvbihlLHQsbil7cmV0dXJuITE9PT10P1MucmVtb3ZlQXR0cihlLG4pOmUuc2V0QXR0cmlidXRlKG4sbiksbn19LFMuZWFjaChTLmV4cHIubWF0Y2guYm9vbC5zb3VyY2UubWF0Y2goL1x3Ky9nKSxmdW5jdGlvbihlLHQpe3ZhciBhPWZ0W3RdfHxTLmZpbmQuYXR0cjtmdFt0XT1mdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvPXQudG9Mb3dlckNhc2UoKTtyZXR1cm4gbnx8KGk9ZnRbb10sZnRbb109cixyPW51bGwhPWEoZSx0LG4pP286bnVsbCxmdFtvXT1pKSxyfX0pO3ZhciBwdD0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24pJC9pLGR0PS9eKD86YXxhcmVhKSQvaTtmdW5jdGlvbiBodChlKXtyZXR1cm4oZS5tYXRjaChQKXx8W10pLmpvaW4oIiAiKX1mdW5jdGlvbiBndChlKXtyZXR1cm4gZS5nZXRBdHRyaWJ1dGUmJmUuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIn1mdW5jdGlvbiB2dChlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9lOiJzdHJpbmciPT10eXBlb2YgZSYmZS5tYXRjaChQKXx8W119Uy5mbi5leHRlbmQoe3Byb3A6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gJCh0aGlzLFMucHJvcCxlLHQsMTxhcmd1bWVudHMubGVuZ3RoKX0scmVtb3ZlUHJvcDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXNbUy5wcm9wRml4W2VdfHxlXX0pfX0pLFMuZXh0ZW5kKHtwcm9wOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG89ZS5ub2RlVHlwZTtpZigzIT09byYmOCE9PW8mJjIhPT1vKXJldHVybiAxPT09byYmUy5pc1hNTERvYyhlKXx8KHQ9Uy5wcm9wRml4W3RdfHx0LGk9Uy5wcm9wSG9va3NbdF0pLHZvaWQgMCE9PW4/aSYmInNldCJpbiBpJiZ2b2lkIDAhPT0ocj1pLnNldChlLG4sdCkpP3I6ZVt0XT1uOmkmJiJnZXQiaW4gaSYmbnVsbCE9PShyPWkuZ2V0KGUsdCkpP3I6ZVt0XX0scHJvcEhvb2tzOnt0YWJJbmRleDp7Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0PVMuZmluZC5hdHRyKGUsInRhYmluZGV4Iik7cmV0dXJuIHQ/cGFyc2VJbnQodCwxMCk6cHQudGVzdChlLm5vZGVOYW1lKXx8ZHQudGVzdChlLm5vZGVOYW1lKSYmZS5ocmVmPzA6LTF9fX0scHJvcEZpeDp7ImZvciI6Imh0bWxGb3IiLCJjbGFzcyI6ImNsYXNzTmFtZSJ9fSkseS5vcHRTZWxlY3RlZHx8KFMucHJvcEhvb2tzLnNlbGVjdGVkPXtnZXQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5wYXJlbnROb2RlO3JldHVybiB0JiZ0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4LG51bGx9LHNldDpmdW5jdGlvbihlKXt2YXIgdD1lLnBhcmVudE5vZGU7dCYmKHQuc2VsZWN0ZWRJbmRleCx0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4KX19KSxTLmVhY2goWyJ0YWJJbmRleCIsInJlYWRPbmx5IiwibWF4TGVuZ3RoIiwiY2VsbFNwYWNpbmciLCJjZWxsUGFkZGluZyIsInJvd1NwYW4iLCJjb2xTcGFuIiwidXNlTWFwIiwiZnJhbWVCb3JkZXIiLCJjb250ZW50RWRpdGFibGUiXSxmdW5jdGlvbigpe1MucHJvcEZpeFt0aGlzLnRvTG93ZXJDYXNlKCldPXRoaXN9KSxTLmZuLmV4dGVuZCh7YWRkQ2xhc3M6ZnVuY3Rpb24odCl7dmFyIGUsbixyLGksbyxhLHMsdT0wO2lmKG0odCkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihlKXtTKHRoaXMpLmFkZENsYXNzKHQuY2FsbCh0aGlzLGUsZ3QodGhpcykpKX0pO2lmKChlPXZ0KHQpKS5sZW5ndGgpd2hpbGUobj10aGlzW3UrK10paWYoaT1ndChuKSxyPTE9PT1uLm5vZGVUeXBlJiYiICIraHQoaSkrIiAiKXthPTA7d2hpbGUobz1lW2ErK10pci5pbmRleE9mKCIgIitvKyIgIik8MCYmKHIrPW8rIiAiKTtpIT09KHM9aHQocikpJiZuLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHMpfXJldHVybiB0aGlzfSxyZW1vdmVDbGFzczpmdW5jdGlvbih0KXt2YXIgZSxuLHIsaSxvLGEscyx1PTA7aWYobSh0KSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGUpe1ModGhpcykucmVtb3ZlQ2xhc3ModC5jYWxsKHRoaXMsZSxndCh0aGlzKSkpfSk7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHRoaXMuYXR0cigiY2xhc3MiLCIiKTtpZigoZT12dCh0KSkubGVuZ3RoKXdoaWxlKG49dGhpc1t1KytdKWlmKGk9Z3Qobikscj0xPT09bi5ub2RlVHlwZSYmIiAiK2h0KGkpKyIgIil7YT0wO3doaWxlKG89ZVthKytdKXdoaWxlKC0xPHIuaW5kZXhPZigiICIrbysiICIpKXI9ci5yZXBsYWNlKCIgIitvKyIgIiwiICIpO2khPT0ocz1odChyKSkmJm4uc2V0QXR0cmlidXRlKCJjbGFzcyIscyl9cmV0dXJuIHRoaXN9LHRvZ2dsZUNsYXNzOmZ1bmN0aW9uKGksdCl7dmFyIG89dHlwZW9mIGksYT0ic3RyaW5nIj09PW98fEFycmF5LmlzQXJyYXkoaSk7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgdCYmYT90P3RoaXMuYWRkQ2xhc3MoaSk6dGhpcy5yZW1vdmVDbGFzcyhpKTptKGkpP3RoaXMuZWFjaChmdW5jdGlvbihlKXtTKHRoaXMpLnRvZ2dsZUNsYXNzKGkuY2FsbCh0aGlzLGUsZ3QodGhpcyksdCksdCl9KTp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZSx0LG4scjtpZihhKXt0PTAsbj1TKHRoaXMpLHI9dnQoaSk7d2hpbGUoZT1yW3QrK10pbi5oYXNDbGFzcyhlKT9uLnJlbW92ZUNsYXNzKGUpOm4uYWRkQ2xhc3MoZSl9ZWxzZSB2b2lkIDAhPT1pJiYiYm9vbGVhbiIhPT1vfHwoKGU9Z3QodGhpcykpJiZZLnNldCh0aGlzLCJfX2NsYXNzTmFtZV9fIixlKSx0aGlzLnNldEF0dHJpYnV0ZSYmdGhpcy5zZXRBdHRyaWJ1dGUoImNsYXNzIixlfHwhMT09PWk/IiI6WS5nZXQodGhpcywiX19jbGFzc05hbWVfXyIpfHwiIikpfSl9LGhhc0NsYXNzOmZ1bmN0aW9uKGUpe3ZhciB0LG4scj0wO3Q9IiAiK2UrIiAiO3doaWxlKG49dGhpc1tyKytdKWlmKDE9PT1uLm5vZGVUeXBlJiYtMTwoIiAiK2h0KGd0KG4pKSsiICIpLmluZGV4T2YodCkpcmV0dXJuITA7cmV0dXJuITF9fSk7dmFyIHl0PS9cci9nO1MuZm4uZXh0ZW5kKHt2YWw6ZnVuY3Rpb24obil7dmFyIHIsZSxpLHQ9dGhpc1swXTtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1tKG4pLHRoaXMuZWFjaChmdW5jdGlvbihlKXt2YXIgdDsxPT09dGhpcy5ub2RlVHlwZSYmKG51bGw9PSh0PWk/bi5jYWxsKHRoaXMsZSxTKHRoaXMpLnZhbCgpKTpuKT90PSIiOiJudW1iZXIiPT10eXBlb2YgdD90Kz0iIjpBcnJheS5pc0FycmF5KHQpJiYodD1TLm1hcCh0LGZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lPyIiOmUrIiJ9KSksKHI9Uy52YWxIb29rc1t0aGlzLnR5cGVdfHxTLnZhbEhvb2tzW3RoaXMubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pJiYic2V0ImluIHImJnZvaWQgMCE9PXIuc2V0KHRoaXMsdCwidmFsdWUiKXx8KHRoaXMudmFsdWU9dCkpfSkpOnQ/KHI9Uy52YWxIb29rc1t0LnR5cGVdfHxTLnZhbEhvb2tzW3Qubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pJiYiZ2V0ImluIHImJnZvaWQgMCE9PShlPXIuZ2V0KHQsInZhbHVlIikpP2U6InN0cmluZyI9PXR5cGVvZihlPXQudmFsdWUpP2UucmVwbGFjZSh5dCwiIik6bnVsbD09ZT8iIjplOnZvaWQgMH19KSxTLmV4dGVuZCh7dmFsSG9va3M6e29wdGlvbjp7Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0PVMuZmluZC5hdHRyKGUsInZhbHVlIik7cmV0dXJuIG51bGwhPXQ/dDpodChTLnRleHQoZSkpfX0sc2VsZWN0OntnZXQ6ZnVuY3Rpb24oZSl7dmFyIHQsbixyLGk9ZS5vcHRpb25zLG89ZS5zZWxlY3RlZEluZGV4LGE9InNlbGVjdC1vbmUiPT09ZS50eXBlLHM9YT9udWxsOltdLHU9YT9vKzE6aS5sZW5ndGg7Zm9yKHI9bzwwP3U6YT9vOjA7cjx1O3IrKylpZigoKG49aVtyXSkuc2VsZWN0ZWR8fHI9PT1vKSYmIW4uZGlzYWJsZWQmJighbi5wYXJlbnROb2RlLmRpc2FibGVkfHwhQShuLnBhcmVudE5vZGUsIm9wdGdyb3VwIikpKXtpZih0PVMobikudmFsKCksYSlyZXR1cm4gdDtzLnB1c2godCl9cmV0dXJuIHN9LHNldDpmdW5jdGlvbihlLHQpe3ZhciBuLHIsaT1lLm9wdGlvbnMsbz1TLm1ha2VBcnJheSh0KSxhPWkubGVuZ3RoO3doaWxlKGEtLSkoKHI9aVthXSkuc2VsZWN0ZWQ9LTE8Uy5pbkFycmF5KFMudmFsSG9va3Mub3B0aW9uLmdldChyKSxvKSkmJihuPSEwKTtyZXR1cm4gbnx8KGUuc2VsZWN0ZWRJbmRleD0tMSksb319fX0pLFMuZWFjaChbInJhZGlvIiwiY2hlY2tib3giXSxmdW5jdGlvbigpe1MudmFsSG9va3NbdGhpc109e3NldDpmdW5jdGlvbihlLHQpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIGUuY2hlY2tlZD0tMTxTLmluQXJyYXkoUyhlKS52YWwoKSx0KX19LHkuY2hlY2tPbnx8KFMudmFsSG9va3NbdGhpc10uZ2V0PWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT09ZS5nZXRBdHRyaWJ1dGUoInZhbHVlIik/Im9uIjplLnZhbHVlfSl9KSx5LmZvY3VzaW49Im9uZm9jdXNpbiJpbiBDO3ZhciBtdD0vXig/OmZvY3VzaW5mb2N1c3xmb2N1c291dGJsdXIpJC8seHQ9ZnVuY3Rpb24oZSl7ZS5zdG9wUHJvcGFnYXRpb24oKX07Uy5leHRlbmQoUy5ldmVudCx7dHJpZ2dlcjpmdW5jdGlvbihlLHQsbixyKXt2YXIgaSxvLGEscyx1LGwsYyxmLHA9W258fEVdLGQ9di5jYWxsKGUsInR5cGUiKT9lLnR5cGU6ZSxoPXYuY2FsbChlLCJuYW1lc3BhY2UiKT9lLm5hbWVzcGFjZS5zcGxpdCgiLiIpOltdO2lmKG89Zj1hPW49bnx8RSwzIT09bi5ub2RlVHlwZSYmOCE9PW4ubm9kZVR5cGUmJiFtdC50ZXN0KGQrUy5ldmVudC50cmlnZ2VyZWQpJiYoLTE8ZC5pbmRleE9mKCIuIikmJihkPShoPWQuc3BsaXQoIi4iKSkuc2hpZnQoKSxoLnNvcnQoKSksdT1kLmluZGV4T2YoIjoiKTwwJiYib24iK2QsKGU9ZVtTLmV4cGFuZG9dP2U6bmV3IFMuRXZlbnQoZCwib2JqZWN0Ij09dHlwZW9mIGUmJmUpKS5pc1RyaWdnZXI9cj8yOjMsZS5uYW1lc3BhY2U9aC5qb2luKCIuIiksZS5ybmFtZXNwYWNlPWUubmFtZXNwYWNlP25ldyBSZWdFeHAoIihefFxcLikiK2guam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIik6bnVsbCxlLnJlc3VsdD12b2lkIDAsZS50YXJnZXR8fChlLnRhcmdldD1uKSx0PW51bGw9PXQ/W2VdOlMubWFrZUFycmF5KHQsW2VdKSxjPVMuZXZlbnQuc3BlY2lhbFtkXXx8e30scnx8IWMudHJpZ2dlcnx8ITEhPT1jLnRyaWdnZXIuYXBwbHkobix0KSkpe2lmKCFyJiYhYy5ub0J1YmJsZSYmIXgobikpe2ZvcihzPWMuZGVsZWdhdGVUeXBlfHxkLG10LnRlc3QocytkKXx8KG89by5wYXJlbnROb2RlKTtvO289by5wYXJlbnROb2RlKXAucHVzaChvKSxhPW87YT09PShuLm93bmVyRG9jdW1lbnR8fEUpJiZwLnB1c2goYS5kZWZhdWx0Vmlld3x8YS5wYXJlbnRXaW5kb3d8fEMpfWk9MDt3aGlsZSgobz1wW2krK10pJiYhZS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKWY9byxlLnR5cGU9MTxpP3M6Yy5iaW5kVHlwZXx8ZCwobD0oWS5nZXQobywiZXZlbnRzIil8fE9iamVjdC5jcmVhdGUobnVsbCkpW2UudHlwZV0mJlkuZ2V0KG8sImhhbmRsZSIpKSYmbC5hcHBseShvLHQpLChsPXUmJm9bdV0pJiZsLmFwcGx5JiZWKG8pJiYoZS5yZXN1bHQ9bC5hcHBseShvLHQpLCExPT09ZS5yZXN1bHQmJmUucHJldmVudERlZmF1bHQoKSk7cmV0dXJuIGUudHlwZT1kLHJ8fGUuaXNEZWZhdWx0UHJldmVudGVkKCl8fGMuX2RlZmF1bHQmJiExIT09Yy5fZGVmYXVsdC5hcHBseShwLnBvcCgpLHQpfHwhVihuKXx8dSYmbShuW2RdKSYmIXgobikmJigoYT1uW3VdKSYmKG5bdV09bnVsbCksUy5ldmVudC50cmlnZ2VyZWQ9ZCxlLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkmJmYuYWRkRXZlbnRMaXN0ZW5lcihkLHh0KSxuW2RdKCksZS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpJiZmLnJlbW92ZUV2ZW50TGlzdGVuZXIoZCx4dCksUy5ldmVudC50cmlnZ2VyZWQ9dm9pZCAwLGEmJihuW3VdPWEpKSxlLnJlc3VsdH19LHNpbXVsYXRlOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1TLmV4dGVuZChuZXcgUy5FdmVudCxuLHt0eXBlOmUsaXNTaW11bGF0ZWQ6ITB9KTtTLmV2ZW50LnRyaWdnZXIocixudWxsLHQpfX0pLFMuZm4uZXh0ZW5kKHt0cmlnZ2VyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe1MuZXZlbnQudHJpZ2dlcihlLHQsdGhpcyl9KX0sdHJpZ2dlckhhbmRsZXI6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzWzBdO2lmKG4pcmV0dXJuIFMuZXZlbnQudHJpZ2dlcihlLHQsbiwhMCl9fSkseS5mb2N1c2lufHxTLmVhY2goe2ZvY3VzOiJmb2N1c2luIixibHVyOiJmb2N1c291dCJ9LGZ1bmN0aW9uKG4scil7dmFyIGk9ZnVuY3Rpb24oZSl7Uy5ldmVudC5zaW11bGF0ZShyLGUudGFyZ2V0LFMuZXZlbnQuZml4KGUpKX07Uy5ldmVudC5zcGVjaWFsW3JdPXtzZXR1cDpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3duZXJEb2N1bWVudHx8dGhpcy5kb2N1bWVudHx8dGhpcyx0PVkuYWNjZXNzKGUscik7dHx8ZS5hZGRFdmVudExpc3RlbmVyKG4saSwhMCksWS5hY2Nlc3MoZSxyLCh0fHwwKSsxKX0sdGVhcmRvd246ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm93bmVyRG9jdW1lbnR8fHRoaXMuZG9jdW1lbnR8fHRoaXMsdD1ZLmFjY2VzcyhlLHIpLTE7dD9ZLmFjY2VzcyhlLHIsdCk6KGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihuLGksITApLFkucmVtb3ZlKGUscikpfX19KTt2YXIgYnQ9Qy5sb2NhdGlvbix3dD17Z3VpZDpEYXRlLm5vdygpfSxUdD0vXD8vO1MucGFyc2VYTUw9ZnVuY3Rpb24oZSl7dmFyIHQsbjtpZighZXx8InN0cmluZyIhPXR5cGVvZiBlKXJldHVybiBudWxsO3RyeXt0PShuZXcgQy5ET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZyhlLCJ0ZXh0L3htbCIpfWNhdGNoKGUpe31yZXR1cm4gbj10JiZ0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwYXJzZXJlcnJvciIpWzBdLHQmJiFufHxTLmVycm9yKCJJbnZhbGlkIFhNTDogIisobj9TLm1hcChuLmNoaWxkTm9kZXMsZnVuY3Rpb24oZSl7cmV0dXJuIGUudGV4dENvbnRlbnR9KS5qb2luKCJcbiIpOmUpKSx0fTt2YXIgQ3Q9L1xbXF0kLyxFdD0vXHI/XG4vZyxTdD0vXig/OnN1Ym1pdHxidXR0b258aW1hZ2V8cmVzZXR8ZmlsZSkkL2ksa3Q9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8a2V5Z2VuKS9pO2Z1bmN0aW9uIEF0KG4sZSxyLGkpe3ZhciB0O2lmKEFycmF5LmlzQXJyYXkoZSkpUy5lYWNoKGUsZnVuY3Rpb24oZSx0KXtyfHxDdC50ZXN0KG4pP2kobix0KTpBdChuKyJbIisoIm9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT10P2U6IiIpKyJdIix0LHIsaSl9KTtlbHNlIGlmKHJ8fCJvYmplY3QiIT09dyhlKSlpKG4sZSk7ZWxzZSBmb3IodCBpbiBlKUF0KG4rIlsiK3QrIl0iLGVbdF0scixpKX1TLnBhcmFtPWZ1bmN0aW9uKGUsdCl7dmFyIG4scj1bXSxpPWZ1bmN0aW9uKGUsdCl7dmFyIG49bSh0KT90KCk6dDtyW3IubGVuZ3RoXT1lbmNvZGVVUklDb21wb25lbnQoZSkrIj0iK2VuY29kZVVSSUNvbXBvbmVudChudWxsPT1uPyIiOm4pfTtpZihudWxsPT1lKXJldHVybiIiO2lmKEFycmF5LmlzQXJyYXkoZSl8fGUuanF1ZXJ5JiYhUy5pc1BsYWluT2JqZWN0KGUpKVMuZWFjaChlLGZ1bmN0aW9uKCl7aSh0aGlzLm5hbWUsdGhpcy52YWx1ZSl9KTtlbHNlIGZvcihuIGluIGUpQXQobixlW25dLHQsaSk7cmV0dXJuIHIuam9pbigiJiIpfSxTLmZuLmV4dGVuZCh7c2VyaWFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIFMucGFyYW0odGhpcy5zZXJpYWxpemVBcnJheSgpKX0sc2VyaWFsaXplQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgZT1TLnByb3AodGhpcywiZWxlbWVudHMiKTtyZXR1cm4gZT9TLm1ha2VBcnJheShlKTp0aGlzfSkuZmlsdGVyKGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy50eXBlO3JldHVybiB0aGlzLm5hbWUmJiFTKHRoaXMpLmlzKCI6ZGlzYWJsZWQiKSYma3QudGVzdCh0aGlzLm5vZGVOYW1lKSYmIVN0LnRlc3QoZSkmJih0aGlzLmNoZWNrZWR8fCFwZS50ZXN0KGUpKX0pLm1hcChmdW5jdGlvbihlLHQpe3ZhciBuPVModGhpcykudmFsKCk7cmV0dXJuIG51bGw9PW4/bnVsbDpBcnJheS5pc0FycmF5KG4pP1MubWFwKG4sZnVuY3Rpb24oZSl7cmV0dXJue25hbWU6dC5uYW1lLHZhbHVlOmUucmVwbGFjZShFdCwiXHJcbiIpfX0pOntuYW1lOnQubmFtZSx2YWx1ZTpuLnJlcGxhY2UoRXQsIlxyXG4iKX19KS5nZXQoKX19KTt2YXIgTnQ9LyUyMC9nLGp0PS8jLiokLyxEdD0vKFs/Jl0pXz1bXiZdKi8scXQ9L14oLio/KTpbIFx0XSooW15cclxuXSopJC9nbSxMdD0vXig/OkdFVHxIRUFEKSQvLEh0PS9eXC9cLy8sT3Q9e30sUHQ9e30sUnQ9IiovIi5jb25jYXQoIioiKSxNdD1FLmNyZWF0ZUVsZW1lbnQoImEiKTtmdW5jdGlvbiBJdChvKXtyZXR1cm4gZnVuY3Rpb24oZSx0KXsic3RyaW5nIiE9dHlwZW9mIGUmJih0PWUsZT0iKiIpO3ZhciBuLHI9MCxpPWUudG9Mb3dlckNhc2UoKS5tYXRjaChQKXx8W107aWYobSh0KSl3aGlsZShuPWlbcisrXSkiKyI9PT1uWzBdPyhuPW4uc2xpY2UoMSl8fCIqIiwob1tuXT1vW25dfHxbXSkudW5zaGlmdCh0KSk6KG9bbl09b1tuXXx8W10pLnB1c2godCl9fWZ1bmN0aW9uIFd0KHQsaSxvLGEpe3ZhciBzPXt9LHU9dD09PVB0O2Z1bmN0aW9uIGwoZSl7dmFyIHI7cmV0dXJuIHNbZV09ITAsUy5lYWNoKHRbZV18fFtdLGZ1bmN0aW9uKGUsdCl7dmFyIG49dChpLG8sYSk7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBufHx1fHxzW25dP3U/IShyPW4pOnZvaWQgMDooaS5kYXRhVHlwZXMudW5zaGlmdChuKSxsKG4pLCExKX0pLHJ9cmV0dXJuIGwoaS5kYXRhVHlwZXNbMF0pfHwhc1siKiJdJiZsKCIqIil9ZnVuY3Rpb24gRnQoZSx0KXt2YXIgbixyLGk9Uy5hamF4U2V0dGluZ3MuZmxhdE9wdGlvbnN8fHt9O2ZvcihuIGluIHQpdm9pZCAwIT09dFtuXSYmKChpW25dP2U6cnx8KHI9e30pKVtuXT10W25dKTtyZXR1cm4gciYmUy5leHRlbmQoITAsZSxyKSxlfU10LmhyZWY9YnQuaHJlZixTLmV4dGVuZCh7YWN0aXZlOjAsbGFzdE1vZGlmaWVkOnt9LGV0YWc6e30sYWpheFNldHRpbmdzOnt1cmw6YnQuaHJlZix0eXBlOiJHRVQiLGlzTG9jYWw6L14oPzphYm91dHxhcHB8YXBwLXN0b3JhZ2V8ListZXh0ZW5zaW9ufGZpbGV8cmVzfHdpZGdldCk6JC8udGVzdChidC5wcm90b2NvbCksZ2xvYmFsOiEwLHByb2Nlc3NEYXRhOiEwLGFzeW5jOiEwLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9VVRGLTgiLGFjY2VwdHM6eyIqIjpSdCx0ZXh0OiJ0ZXh0L3BsYWluIixodG1sOiJ0ZXh0L2h0bWwiLHhtbDoiYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbCIsanNvbjoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9qYXZhc2NyaXB0In0sY29udGVudHM6e3htbDovXGJ4bWxcYi8saHRtbDovXGJodG1sLyxqc29uOi9cYmpzb25cYi99LHJlc3BvbnNlRmllbGRzOnt4bWw6InJlc3BvbnNlWE1MIix0ZXh0OiJyZXNwb25zZVRleHQiLGpzb246InJlc3BvbnNlSlNPTiJ9LGNvbnZlcnRlcnM6eyIqIHRleHQiOlN0cmluZywidGV4dCBodG1sIjohMCwidGV4dCBqc29uIjpKU09OLnBhcnNlLCJ0ZXh0IHhtbCI6Uy5wYXJzZVhNTH0sZmxhdE9wdGlvbnM6e3VybDohMCxjb250ZXh0OiEwfX0sYWpheFNldHVwOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ/RnQoRnQoZSxTLmFqYXhTZXR0aW5ncyksdCk6RnQoUy5hamF4U2V0dGluZ3MsZSl9LGFqYXhQcmVmaWx0ZXI6SXQoT3QpLGFqYXhUcmFuc3BvcnQ6SXQoUHQpLGFqYXg6ZnVuY3Rpb24oZSx0KXsib2JqZWN0Ij09dHlwZW9mIGUmJih0PWUsZT12b2lkIDApLHQ9dHx8e307dmFyIGMsZixwLG4sZCxyLGgsZyxpLG8sdj1TLmFqYXhTZXR1cCh7fSx0KSx5PXYuY29udGV4dHx8dixtPXYuY29udGV4dCYmKHkubm9kZVR5cGV8fHkuanF1ZXJ5KT9TKHkpOlMuZXZlbnQseD1TLkRlZmVycmVkKCksYj1TLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSx3PXYuc3RhdHVzQ29kZXx8e30sYT17fSxzPXt9LHU9ImNhbmNlbGVkIixUPXtyZWFkeVN0YXRlOjAsZ2V0UmVzcG9uc2VIZWFkZXI6ZnVuY3Rpb24oZSl7dmFyIHQ7aWYoaCl7aWYoIW4pe249e307d2hpbGUodD1xdC5leGVjKHApKW5bdFsxXS50b0xvd2VyQ2FzZSgpKyIgIl09KG5bdFsxXS50b0xvd2VyQ2FzZSgpKyIgIl18fFtdKS5jb25jYXQodFsyXSl9dD1uW2UudG9Mb3dlckNhc2UoKSsiICJdfXJldHVybiBudWxsPT10P251bGw6dC5qb2luKCIsICIpfSxnZXRBbGxSZXNwb25zZUhlYWRlcnM6ZnVuY3Rpb24oKXtyZXR1cm4gaD9wOm51bGx9LHNldFJlcXVlc3RIZWFkZXI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbnVsbD09aCYmKGU9c1tlLnRvTG93ZXJDYXNlKCldPXNbZS50b0xvd2VyQ2FzZSgpXXx8ZSxhW2VdPXQpLHRoaXN9LG92ZXJyaWRlTWltZVR5cGU6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWgmJih2Lm1pbWVUeXBlPWUpLHRoaXN9LHN0YXR1c0NvZGU6ZnVuY3Rpb24oZSl7dmFyIHQ7aWYoZSlpZihoKVQuYWx3YXlzKGVbVC5zdGF0dXNdKTtlbHNlIGZvcih0IGluIGUpd1t0XT1bd1t0XSxlW3RdXTtyZXR1cm4gdGhpc30sYWJvcnQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZXx8dTtyZXR1cm4gYyYmYy5hYm9ydCh0KSxsKDAsdCksdGhpc319O2lmKHgucHJvbWlzZShUKSx2LnVybD0oKGV8fHYudXJsfHxidC5ocmVmKSsiIikucmVwbGFjZShIdCxidC5wcm90b2NvbCsiLy8iKSx2LnR5cGU9dC5tZXRob2R8fHQudHlwZXx8di5tZXRob2R8fHYudHlwZSx2LmRhdGFUeXBlcz0odi5kYXRhVHlwZXx8IioiKS50b0xvd2VyQ2FzZSgpLm1hdGNoKFApfHxbIiJdLG51bGw9PXYuY3Jvc3NEb21haW4pe3I9RS5jcmVhdGVFbGVtZW50KCJhIik7dHJ5e3IuaHJlZj12LnVybCxyLmhyZWY9ci5ocmVmLHYuY3Jvc3NEb21haW49TXQucHJvdG9jb2wrIi8vIitNdC5ob3N0IT1yLnByb3RvY29sKyIvLyIrci5ob3N0fWNhdGNoKGUpe3YuY3Jvc3NEb21haW49ITB9fWlmKHYuZGF0YSYmdi5wcm9jZXNzRGF0YSYmInN0cmluZyIhPXR5cGVvZiB2LmRhdGEmJih2LmRhdGE9Uy5wYXJhbSh2LmRhdGEsdi50cmFkaXRpb25hbCkpLFd0KE90LHYsdCxUKSxoKXJldHVybiBUO2ZvcihpIGluKGc9Uy5ldmVudCYmdi5nbG9iYWwpJiYwPT1TLmFjdGl2ZSsrJiZTLmV2ZW50LnRyaWdnZXIoImFqYXhTdGFydCIpLHYudHlwZT12LnR5cGUudG9VcHBlckNhc2UoKSx2Lmhhc0NvbnRlbnQ9IUx0LnRlc3Qodi50eXBlKSxmPXYudXJsLnJlcGxhY2UoanQsIiIpLHYuaGFzQ29udGVudD92LmRhdGEmJnYucHJvY2Vzc0RhdGEmJjA9PT0odi5jb250ZW50VHlwZXx8IiIpLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpJiYodi5kYXRhPXYuZGF0YS5yZXBsYWNlKE50LCIrIikpOihvPXYudXJsLnNsaWNlKGYubGVuZ3RoKSx2LmRhdGEmJih2LnByb2Nlc3NEYXRhfHwic3RyaW5nIj09dHlwZW9mIHYuZGF0YSkmJihmKz0oVHQudGVzdChmKT8iJiI6Ij8iKSt2LmRhdGEsZGVsZXRlIHYuZGF0YSksITE9PT12LmNhY2hlJiYoZj1mLnJlcGxhY2UoRHQsIiQxIiksbz0oVHQudGVzdChmKT8iJiI6Ij8iKSsiXz0iK3d0Lmd1aWQrKytvKSx2LnVybD1mK28pLHYuaWZNb2RpZmllZCYmKFMubGFzdE1vZGlmaWVkW2ZdJiZULnNldFJlcXVlc3RIZWFkZXIoIklmLU1vZGlmaWVkLVNpbmNlIixTLmxhc3RNb2RpZmllZFtmXSksUy5ldGFnW2ZdJiZULnNldFJlcXVlc3RIZWFkZXIoIklmLU5vbmUtTWF0Y2giLFMuZXRhZ1tmXSkpLCh2LmRhdGEmJnYuaGFzQ29udGVudCYmITEhPT12LmNvbnRlbnRUeXBlfHx0LmNvbnRlbnRUeXBlKSYmVC5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLHYuY29udGVudFR5cGUpLFQuc2V0UmVxdWVzdEhlYWRlcigiQWNjZXB0Iix2LmRhdGFUeXBlc1swXSYmdi5hY2NlcHRzW3YuZGF0YVR5cGVzWzBdXT92LmFjY2VwdHNbdi5kYXRhVHlwZXNbMF1dKygiKiIhPT12LmRhdGFUeXBlc1swXT8iLCAiK1J0KyI7IHE9MC4wMSI6IiIpOnYuYWNjZXB0c1siKiJdKSx2LmhlYWRlcnMpVC5zZXRSZXF1ZXN0SGVhZGVyKGksdi5oZWFkZXJzW2ldKTtpZih2LmJlZm9yZVNlbmQmJighMT09PXYuYmVmb3JlU2VuZC5jYWxsKHksVCx2KXx8aCkpcmV0dXJuIFQuYWJvcnQoKTtpZih1PSJhYm9ydCIsYi5hZGQodi5jb21wbGV0ZSksVC5kb25lKHYuc3VjY2VzcyksVC5mYWlsKHYuZXJyb3IpLGM9V3QoUHQsdix0LFQpKXtpZihULnJlYWR5U3RhdGU9MSxnJiZtLnRyaWdnZXIoImFqYXhTZW5kIixbVCx2XSksaClyZXR1cm4gVDt2LmFzeW5jJiYwPHYudGltZW91dCYmKGQ9Qy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7VC5hYm9ydCgidGltZW91dCIpfSx2LnRpbWVvdXQpKTt0cnl7aD0hMSxjLnNlbmQoYSxsKX1jYXRjaChlKXtpZihoKXRocm93IGU7bCgtMSxlKX19ZWxzZSBsKC0xLCJObyBUcmFuc3BvcnQiKTtmdW5jdGlvbiBsKGUsdCxuLHIpe3ZhciBpLG8sYSxzLHUsbD10O2h8fChoPSEwLGQmJkMuY2xlYXJUaW1lb3V0KGQpLGM9dm9pZCAwLHA9cnx8IiIsVC5yZWFkeVN0YXRlPTA8ZT80OjAsaT0yMDA8PWUmJmU8MzAwfHwzMDQ9PT1lLG4mJihzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzPWUuY29udGVudHMsdT1lLmRhdGFUeXBlczt3aGlsZSgiKiI9PT11WzBdKXUuc2hpZnQoKSx2b2lkIDA9PT1yJiYocj1lLm1pbWVUeXBlfHx0LmdldFJlc3BvbnNlSGVhZGVyKCJDb250ZW50LVR5cGUiKSk7aWYocilmb3IoaSBpbiBzKWlmKHNbaV0mJnNbaV0udGVzdChyKSl7dS51bnNoaWZ0KGkpO2JyZWFrfWlmKHVbMF1pbiBuKW89dVswXTtlbHNle2ZvcihpIGluIG4pe2lmKCF1WzBdfHxlLmNvbnZlcnRlcnNbaSsiICIrdVswXV0pe289aTticmVha31hfHwoYT1pKX1vPW98fGF9aWYobylyZXR1cm4gbyE9PXVbMF0mJnUudW5zaGlmdChvKSxuW29dfSh2LFQsbikpLCFpJiYtMTxTLmluQXJyYXkoInNjcmlwdCIsdi5kYXRhVHlwZXMpJiZTLmluQXJyYXkoImpzb24iLHYuZGF0YVR5cGVzKTwwJiYodi5jb252ZXJ0ZXJzWyJ0ZXh0IHNjcmlwdCJdPWZ1bmN0aW9uKCl7fSkscz1mdW5jdGlvbihlLHQsbixyKXt2YXIgaSxvLGEscyx1LGw9e30sYz1lLmRhdGFUeXBlcy5zbGljZSgpO2lmKGNbMV0pZm9yKGEgaW4gZS5jb252ZXJ0ZXJzKWxbYS50b0xvd2VyQ2FzZSgpXT1lLmNvbnZlcnRlcnNbYV07bz1jLnNoaWZ0KCk7d2hpbGUobylpZihlLnJlc3BvbnNlRmllbGRzW29dJiYobltlLnJlc3BvbnNlRmllbGRzW29dXT10KSwhdSYmciYmZS5kYXRhRmlsdGVyJiYodD1lLmRhdGFGaWx0ZXIodCxlLmRhdGFUeXBlKSksdT1vLG89Yy5zaGlmdCgpKWlmKCIqIj09PW8pbz11O2Vsc2UgaWYoIioiIT09dSYmdSE9PW8pe2lmKCEoYT1sW3UrIiAiK29dfHxsWyIqICIrb10pKWZvcihpIGluIGwpaWYoKHM9aS5zcGxpdCgiICIpKVsxXT09PW8mJihhPWxbdSsiICIrc1swXV18fGxbIiogIitzWzBdXSkpeyEwPT09YT9hPWxbaV06ITAhPT1sW2ldJiYobz1zWzBdLGMudW5zaGlmdChzWzFdKSk7YnJlYWt9aWYoITAhPT1hKWlmKGEmJmVbInRocm93cyJdKXQ9YSh0KTtlbHNlIHRyeXt0PWEodCl9Y2F0Y2goZSl7cmV0dXJue3N0YXRlOiJwYXJzZXJlcnJvciIsZXJyb3I6YT9lOiJObyBjb252ZXJzaW9uIGZyb20gIit1KyIgdG8gIitvfX19cmV0dXJue3N0YXRlOiJzdWNjZXNzIixkYXRhOnR9fSh2LHMsVCxpKSxpPyh2LmlmTW9kaWZpZWQmJigodT1ULmdldFJlc3BvbnNlSGVhZGVyKCJMYXN0LU1vZGlmaWVkIikpJiYoUy5sYXN0TW9kaWZpZWRbZl09dSksKHU9VC5nZXRSZXNwb25zZUhlYWRlcigiZXRhZyIpKSYmKFMuZXRhZ1tmXT11KSksMjA0PT09ZXx8IkhFQUQiPT09di50eXBlP2w9Im5vY29udGVudCI6MzA0PT09ZT9sPSJub3Rtb2RpZmllZCI6KGw9cy5zdGF0ZSxvPXMuZGF0YSxpPSEoYT1zLmVycm9yKSkpOihhPWwsIWUmJmx8fChsPSJlcnJvciIsZTwwJiYoZT0wKSkpLFQuc3RhdHVzPWUsVC5zdGF0dXNUZXh0PSh0fHxsKSsiIixpP3gucmVzb2x2ZVdpdGgoeSxbbyxsLFRdKTp4LnJlamVjdFdpdGgoeSxbVCxsLGFdKSxULnN0YXR1c0NvZGUodyksdz12b2lkIDAsZyYmbS50cmlnZ2VyKGk/ImFqYXhTdWNjZXNzIjoiYWpheEVycm9yIixbVCx2LGk/bzphXSksYi5maXJlV2l0aCh5LFtULGxdKSxnJiYobS50cmlnZ2VyKCJhamF4Q29tcGxldGUiLFtULHZdKSwtLVMuYWN0aXZlfHxTLmV2ZW50LnRyaWdnZXIoImFqYXhTdG9wIikpKX1yZXR1cm4gVH0sZ2V0SlNPTjpmdW5jdGlvbihlLHQsbil7cmV0dXJuIFMuZ2V0KGUsdCxuLCJqc29uIil9LGdldFNjcmlwdDpmdW5jdGlvbihlLHQpe3JldHVybiBTLmdldChlLHZvaWQgMCx0LCJzY3JpcHQiKX19KSxTLmVhY2goWyJnZXQiLCJwb3N0Il0sZnVuY3Rpb24oZSxpKXtTW2ldPWZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiBtKHQpJiYocj1yfHxuLG49dCx0PXZvaWQgMCksUy5hamF4KFMuZXh0ZW5kKHt1cmw6ZSx0eXBlOmksZGF0YVR5cGU6cixkYXRhOnQsc3VjY2VzczpufSxTLmlzUGxhaW5PYmplY3QoZSkmJmUpKX19KSxTLmFqYXhQcmVmaWx0ZXIoZnVuY3Rpb24oZSl7dmFyIHQ7Zm9yKHQgaW4gZS5oZWFkZXJzKSJjb250ZW50LXR5cGUiPT09dC50b0xvd2VyQ2FzZSgpJiYoZS5jb250ZW50VHlwZT1lLmhlYWRlcnNbdF18fCIiKX0pLFMuX2V2YWxVcmw9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBTLmFqYXgoe3VybDplLHR5cGU6IkdFVCIsZGF0YVR5cGU6InNjcmlwdCIsY2FjaGU6ITAsYXN5bmM6ITEsZ2xvYmFsOiExLGNvbnZlcnRlcnM6eyJ0ZXh0IHNjcmlwdCI6ZnVuY3Rpb24oKXt9fSxkYXRhRmlsdGVyOmZ1bmN0aW9uKGUpe1MuZ2xvYmFsRXZhbChlLHQsbil9fSl9LFMuZm4uZXh0ZW5kKHt3cmFwQWxsOmZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybiB0aGlzWzBdJiYobShlKSYmKGU9ZS5jYWxsKHRoaXNbMF0pKSx0PVMoZSx0aGlzWzBdLm93bmVyRG9jdW1lbnQpLmVxKDApLmNsb25lKCEwKSx0aGlzWzBdLnBhcmVudE5vZGUmJnQuaW5zZXJ0QmVmb3JlKHRoaXNbMF0pLHQubWFwKGZ1bmN0aW9uKCl7dmFyIGU9dGhpczt3aGlsZShlLmZpcnN0RWxlbWVudENoaWxkKWU9ZS5maXJzdEVsZW1lbnRDaGlsZDtyZXR1cm4gZX0pLmFwcGVuZCh0aGlzKSksdGhpc30sd3JhcElubmVyOmZ1bmN0aW9uKG4pe3JldHVybiBtKG4pP3RoaXMuZWFjaChmdW5jdGlvbihlKXtTKHRoaXMpLndyYXBJbm5lcihuLmNhbGwodGhpcyxlKSl9KTp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT1TKHRoaXMpLHQ9ZS5jb250ZW50cygpO3QubGVuZ3RoP3Qud3JhcEFsbChuKTplLmFwcGVuZChuKX0pfSx3cmFwOmZ1bmN0aW9uKHQpe3ZhciBuPW0odCk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihlKXtTKHRoaXMpLndyYXBBbGwobj90LmNhbGwodGhpcyxlKTp0KX0pfSx1bndyYXA6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMucGFyZW50KGUpLm5vdCgiYm9keSIpLmVhY2goZnVuY3Rpb24oKXtTKHRoaXMpLnJlcGxhY2VXaXRoKHRoaXMuY2hpbGROb2Rlcyl9KSx0aGlzfX0pLFMuZXhwci5wc2V1ZG9zLmhpZGRlbj1mdW5jdGlvbihlKXtyZXR1cm4hUy5leHByLnBzZXVkb3MudmlzaWJsZShlKX0sUy5leHByLnBzZXVkb3MudmlzaWJsZT1mdW5jdGlvbihlKXtyZXR1cm4hIShlLm9mZnNldFdpZHRofHxlLm9mZnNldEhlaWdodHx8ZS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCl9LFMuYWpheFNldHRpbmdzLnhocj1mdW5jdGlvbigpe3RyeXtyZXR1cm4gbmV3IEMuWE1MSHR0cFJlcXVlc3R9Y2F0Y2goZSl7fX07dmFyIEJ0PXswOjIwMCwxMjIzOjIwNH0sJHQ9Uy5hamF4U2V0dGluZ3MueGhyKCk7eS5jb3JzPSEhJHQmJiJ3aXRoQ3JlZGVudGlhbHMiaW4gJHQseS5hamF4PSR0PSEhJHQsUy5hamF4VHJhbnNwb3J0KGZ1bmN0aW9uKGkpe3ZhciBvLGE7aWYoeS5jb3JzfHwkdCYmIWkuY3Jvc3NEb21haW4pcmV0dXJue3NlbmQ6ZnVuY3Rpb24oZSx0KXt2YXIgbixyPWkueGhyKCk7aWYoci5vcGVuKGkudHlwZSxpLnVybCxpLmFzeW5jLGkudXNlcm5hbWUsaS5wYXNzd29yZCksaS54aHJGaWVsZHMpZm9yKG4gaW4gaS54aHJGaWVsZHMpcltuXT1pLnhockZpZWxkc1tuXTtmb3IobiBpbiBpLm1pbWVUeXBlJiZyLm92ZXJyaWRlTWltZVR5cGUmJnIub3ZlcnJpZGVNaW1lVHlwZShpLm1pbWVUeXBlKSxpLmNyb3NzRG9tYWlufHxlWyJYLVJlcXVlc3RlZC1XaXRoIl18fChlWyJYLVJlcXVlc3RlZC1XaXRoIl09IlhNTEh0dHBSZXF1ZXN0IiksZSlyLnNldFJlcXVlc3RIZWFkZXIobixlW25dKTtvPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe28mJihvPWE9ci5vbmxvYWQ9ci5vbmVycm9yPXIub25hYm9ydD1yLm9udGltZW91dD1yLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLCJhYm9ydCI9PT1lP3IuYWJvcnQoKToiZXJyb3IiPT09ZT8ibnVtYmVyIiE9dHlwZW9mIHIuc3RhdHVzP3QoMCwiZXJyb3IiKTp0KHIuc3RhdHVzLHIuc3RhdHVzVGV4dCk6dChCdFtyLnN0YXR1c118fHIuc3RhdHVzLHIuc3RhdHVzVGV4dCwidGV4dCIhPT0oci5yZXNwb25zZVR5cGV8fCJ0ZXh0Iil8fCJzdHJpbmciIT10eXBlb2Ygci5yZXNwb25zZVRleHQ/e2JpbmFyeTpyLnJlc3BvbnNlfTp7dGV4dDpyLnJlc3BvbnNlVGV4dH0sci5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSkpfX0sci5vbmxvYWQ9bygpLGE9ci5vbmVycm9yPXIub250aW1lb3V0PW8oImVycm9yIiksdm9pZCAwIT09ci5vbmFib3J0P3Iub25hYm9ydD1hOnIub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7ND09PXIucmVhZHlTdGF0ZSYmQy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7byYmYSgpfSl9LG89bygiYWJvcnQiKTt0cnl7ci5zZW5kKGkuaGFzQ29udGVudCYmaS5kYXRhfHxudWxsKX1jYXRjaChlKXtpZihvKXRocm93IGV9fSxhYm9ydDpmdW5jdGlvbigpe28mJm8oKX19fSksUy5hamF4UHJlZmlsdGVyKGZ1bmN0aW9uKGUpe2UuY3Jvc3NEb21haW4mJihlLmNvbnRlbnRzLnNjcmlwdD0hMSl9KSxTLmFqYXhTZXR1cCh7YWNjZXB0czp7c2NyaXB0OiJ0ZXh0L2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2VjbWFzY3JpcHQsIGFwcGxpY2F0aW9uL3gtZWNtYXNjcmlwdCJ9LGNvbnRlbnRzOntzY3JpcHQ6L1xiKD86amF2YXxlY21hKXNjcmlwdFxiL30sY29udmVydGVyczp7InRleHQgc2NyaXB0IjpmdW5jdGlvbihlKXtyZXR1cm4gUy5nbG9iYWxFdmFsKGUpLGV9fX0pLFMuYWpheFByZWZpbHRlcigic2NyaXB0IixmdW5jdGlvbihlKXt2b2lkIDA9PT1lLmNhY2hlJiYoZS5jYWNoZT0hMSksZS5jcm9zc0RvbWFpbiYmKGUudHlwZT0iR0VUIil9KSxTLmFqYXhUcmFuc3BvcnQoInNjcmlwdCIsZnVuY3Rpb24obil7dmFyIHIsaTtpZihuLmNyb3NzRG9tYWlufHxuLnNjcmlwdEF0dHJzKXJldHVybntzZW5kOmZ1bmN0aW9uKGUsdCl7cj1TKCI8c2NyaXB0PiIpLmF0dHIobi5zY3JpcHRBdHRyc3x8e30pLnByb3Aoe2NoYXJzZXQ6bi5zY3JpcHRDaGFyc2V0LHNyYzpuLnVybH0pLm9uKCJsb2FkIGVycm9yIixpPWZ1bmN0aW9uKGUpe3IucmVtb3ZlKCksaT1udWxsLGUmJnQoImVycm9yIj09PWUudHlwZT80MDQ6MjAwLGUudHlwZSl9KSxFLmhlYWQuYXBwZW5kQ2hpbGQoclswXSl9LGFib3J0OmZ1bmN0aW9uKCl7aSYmaSgpfX19KTt2YXIgX3QsenQ9W10sVXQ9Lyg9KVw/KD89JnwkKXxcP1w/LztTLmFqYXhTZXR1cCh7anNvbnA6ImNhbGxiYWNrIixqc29ucENhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIGU9enQucG9wKCl8fFMuZXhwYW5kbysiXyIrd3QuZ3VpZCsrO3JldHVybiB0aGlzW2VdPSEwLGV9fSksUy5hamF4UHJlZmlsdGVyKCJqc29uIGpzb25wIixmdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvLGE9ITEhPT1lLmpzb25wJiYoVXQudGVzdChlLnVybCk/InVybCI6InN0cmluZyI9PXR5cGVvZiBlLmRhdGEmJjA9PT0oZS5jb250ZW50VHlwZXx8IiIpLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpJiZVdC50ZXN0KGUuZGF0YSkmJiJkYXRhIik7aWYoYXx8Impzb25wIj09PWUuZGF0YVR5cGVzWzBdKXJldHVybiByPWUuanNvbnBDYWxsYmFjaz1tKGUuanNvbnBDYWxsYmFjayk/ZS5qc29ucENhbGxiYWNrKCk6ZS5qc29ucENhbGxiYWNrLGE/ZVthXT1lW2FdLnJlcGxhY2UoVXQsIiQxIityKTohMSE9PWUuanNvbnAmJihlLnVybCs9KFR0LnRlc3QoZS51cmwpPyImIjoiPyIpK2UuanNvbnArIj0iK3IpLGUuY29udmVydGVyc1sic2NyaXB0IGpzb24iXT1mdW5jdGlvbigpe3JldHVybiBvfHxTLmVycm9yKHIrIiB3YXMgbm90IGNhbGxlZCIpLG9bMF19LGUuZGF0YVR5cGVzWzBdPSJqc29uIixpPUNbcl0sQ1tyXT1mdW5jdGlvbigpe289YXJndW1lbnRzfSxuLmFsd2F5cyhmdW5jdGlvbigpe3ZvaWQgMD09PWk/UyhDKS5yZW1vdmVQcm9wKHIpOkNbcl09aSxlW3JdJiYoZS5qc29ucENhbGxiYWNrPXQuanNvbnBDYWxsYmFjayx6dC5wdXNoKHIpKSxvJiZtKGkpJiZpKG9bMF0pLG89aT12b2lkIDB9KSwic2NyaXB0In0pLHkuY3JlYXRlSFRNTERvY3VtZW50PSgoX3Q9RS5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpLmJvZHkpLmlubmVySFRNTD0iPGZvcm0+PC9mb3JtPjxmb3JtPjwvZm9ybT4iLDI9PT1fdC5jaGlsZE5vZGVzLmxlbmd0aCksUy5wYXJzZUhUTUw9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiJzdHJpbmciIT10eXBlb2YgZT9bXTooImJvb2xlYW4iPT10eXBlb2YgdCYmKG49dCx0PSExKSx0fHwoeS5jcmVhdGVIVE1MRG9jdW1lbnQ/KChyPSh0PUUuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCIiKSkuY3JlYXRlRWxlbWVudCgiYmFzZSIpKS5ocmVmPUUubG9jYXRpb24uaHJlZix0LmhlYWQuYXBwZW5kQ2hpbGQocikpOnQ9RSksbz0hbiYmW10sKGk9Ti5leGVjKGUpKT9bdC5jcmVhdGVFbGVtZW50KGlbMV0pXTooaT14ZShbZV0sdCxvKSxvJiZvLmxlbmd0aCYmUyhvKS5yZW1vdmUoKSxTLm1lcmdlKFtdLGkuY2hpbGROb2RlcykpKTt2YXIgcixpLG99LFMuZm4ubG9hZD1mdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvLGE9dGhpcyxzPWUuaW5kZXhPZigiICIpO3JldHVybi0xPHMmJihyPWh0KGUuc2xpY2UocykpLGU9ZS5zbGljZSgwLHMpKSxtKHQpPyhuPXQsdD12b2lkIDApOnQmJiJvYmplY3QiPT10eXBlb2YgdCYmKGk9IlBPU1QiKSwwPGEubGVuZ3RoJiZTLmFqYXgoe3VybDplLHR5cGU6aXx8IkdFVCIsZGF0YVR5cGU6Imh0bWwiLGRhdGE6dH0pLmRvbmUoZnVuY3Rpb24oZSl7bz1hcmd1bWVudHMsYS5odG1sKHI/UygiPGRpdj4iKS5hcHBlbmQoUy5wYXJzZUhUTUwoZSkpLmZpbmQocik6ZSl9KS5hbHdheXMobiYmZnVuY3Rpb24oZSx0KXthLmVhY2goZnVuY3Rpb24oKXtuLmFwcGx5KHRoaXMsb3x8W2UucmVzcG9uc2VUZXh0LHQsZV0pfSl9KSx0aGlzfSxTLmV4cHIucHNldWRvcy5hbmltYXRlZD1mdW5jdGlvbih0KXtyZXR1cm4gUy5ncmVwKFMudGltZXJzLGZ1bmN0aW9uKGUpe3JldHVybiB0PT09ZS5lbGVtfSkubGVuZ3RofSxTLm9mZnNldD17c2V0T2Zmc2V0OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzLHUsbD1TLmNzcyhlLCJwb3NpdGlvbiIpLGM9UyhlKSxmPXt9OyJzdGF0aWMiPT09bCYmKGUuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIikscz1jLm9mZnNldCgpLG89Uy5jc3MoZSwidG9wIiksdT1TLmNzcyhlLCJsZWZ0IiksKCJhYnNvbHV0ZSI9PT1sfHwiZml4ZWQiPT09bCkmJi0xPChvK3UpLmluZGV4T2YoImF1dG8iKT8oYT0ocj1jLnBvc2l0aW9uKCkpLnRvcCxpPXIubGVmdCk6KGE9cGFyc2VGbG9hdChvKXx8MCxpPXBhcnNlRmxvYXQodSl8fDApLG0odCkmJih0PXQuY2FsbChlLG4sUy5leHRlbmQoe30scykpKSxudWxsIT10LnRvcCYmKGYudG9wPXQudG9wLXMudG9wK2EpLG51bGwhPXQubGVmdCYmKGYubGVmdD10LmxlZnQtcy5sZWZ0K2kpLCJ1c2luZyJpbiB0P3QudXNpbmcuY2FsbChlLGYpOmMuY3NzKGYpfX0sUy5mbi5leHRlbmQoe29mZnNldDpmdW5jdGlvbih0KXtpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiB2b2lkIDA9PT10P3RoaXM6dGhpcy5lYWNoKGZ1bmN0aW9uKGUpe1Mub2Zmc2V0LnNldE9mZnNldCh0aGlzLHQsZSl9KTt2YXIgZSxuLHI9dGhpc1swXTtyZXR1cm4gcj9yLmdldENsaWVudFJlY3RzKCkubGVuZ3RoPyhlPXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbj1yLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcse3RvcDplLnRvcCtuLnBhZ2VZT2Zmc2V0LGxlZnQ6ZS5sZWZ0K24ucGFnZVhPZmZzZXR9KTp7dG9wOjAsbGVmdDowfTp2b2lkIDB9LHBvc2l0aW9uOmZ1bmN0aW9uKCl7aWYodGhpc1swXSl7dmFyIGUsdCxuLHI9dGhpc1swXSxpPXt0b3A6MCxsZWZ0OjB9O2lmKCJmaXhlZCI9PT1TLmNzcyhyLCJwb3NpdGlvbiIpKXQ9ci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtlbHNle3Q9dGhpcy5vZmZzZXQoKSxuPXIub3duZXJEb2N1bWVudCxlPXIub2Zmc2V0UGFyZW50fHxuLmRvY3VtZW50RWxlbWVudDt3aGlsZShlJiYoZT09PW4uYm9keXx8ZT09PW4uZG9jdW1lbnRFbGVtZW50KSYmInN0YXRpYyI9PT1TLmNzcyhlLCJwb3NpdGlvbiIpKWU9ZS5wYXJlbnROb2RlO2UmJmUhPT1yJiYxPT09ZS5ub2RlVHlwZSYmKChpPVMoZSkub2Zmc2V0KCkpLnRvcCs9Uy5jc3MoZSwiYm9yZGVyVG9wV2lkdGgiLCEwKSxpLmxlZnQrPVMuY3NzKGUsImJvcmRlckxlZnRXaWR0aCIsITApKX1yZXR1cm57dG9wOnQudG9wLWkudG9wLVMuY3NzKHIsIm1hcmdpblRvcCIsITApLGxlZnQ6dC5sZWZ0LWkubGVmdC1TLmNzcyhyLCJtYXJnaW5MZWZ0IiwhMCl9fX0sb2Zmc2V0UGFyZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vZmZzZXRQYXJlbnQ7d2hpbGUoZSYmInN0YXRpYyI9PT1TLmNzcyhlLCJwb3NpdGlvbiIpKWU9ZS5vZmZzZXRQYXJlbnQ7cmV0dXJuIGV8fHJlfSl9fSksUy5lYWNoKHtzY3JvbGxMZWZ0OiJwYWdlWE9mZnNldCIsc2Nyb2xsVG9wOiJwYWdlWU9mZnNldCJ9LGZ1bmN0aW9uKHQsaSl7dmFyIG89InBhZ2VZT2Zmc2V0Ij09PWk7Uy5mblt0XT1mdW5jdGlvbihlKXtyZXR1cm4gJCh0aGlzLGZ1bmN0aW9uKGUsdCxuKXt2YXIgcjtpZih4KGUpP3I9ZTo5PT09ZS5ub2RlVHlwZSYmKHI9ZS5kZWZhdWx0Vmlldyksdm9pZCAwPT09bilyZXR1cm4gcj9yW2ldOmVbdF07cj9yLnNjcm9sbFRvKG8/ci5wYWdlWE9mZnNldDpuLG8/bjpyLnBhZ2VZT2Zmc2V0KTplW3RdPW59LHQsZSxhcmd1bWVudHMubGVuZ3RoKX19KSxTLmVhY2goWyJ0b3AiLCJsZWZ0Il0sZnVuY3Rpb24oZSxuKXtTLmNzc0hvb2tzW25dPUZlKHkucGl4ZWxQb3NpdGlvbixmdW5jdGlvbihlLHQpe2lmKHQpcmV0dXJuIHQ9V2UoZSxuKSxQZS50ZXN0KHQpP1MoZSkucG9zaXRpb24oKVtuXSsicHgiOnR9KX0pLFMuZWFjaCh7SGVpZ2h0OiJoZWlnaHQiLFdpZHRoOiJ3aWR0aCJ9LGZ1bmN0aW9uKGEscyl7Uy5lYWNoKHtwYWRkaW5nOiJpbm5lciIrYSxjb250ZW50OnMsIiI6Im91dGVyIithfSxmdW5jdGlvbihyLG8pe1MuZm5bb109ZnVuY3Rpb24oZSx0KXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoJiYocnx8ImJvb2xlYW4iIT10eXBlb2YgZSksaT1yfHwoITA9PT1lfHwhMD09PXQ/Im1hcmdpbiI6ImJvcmRlciIpO3JldHVybiAkKHRoaXMsZnVuY3Rpb24oZSx0LG4pe3ZhciByO3JldHVybiB4KGUpPzA9PT1vLmluZGV4T2YoIm91dGVyIik/ZVsiaW5uZXIiK2FdOmUuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJjbGllbnQiK2FdOjk9PT1lLm5vZGVUeXBlPyhyPWUuZG9jdW1lbnRFbGVtZW50LE1hdGgubWF4KGUuYm9keVsic2Nyb2xsIithXSxyWyJzY3JvbGwiK2FdLGUuYm9keVsib2Zmc2V0IithXSxyWyJvZmZzZXQiK2FdLHJbImNsaWVudCIrYV0pKTp2b2lkIDA9PT1uP1MuY3NzKGUsdCxpKTpTLnN0eWxlKGUsdCxuLGkpfSxzLG4/ZTp2b2lkIDAsbil9fSl9KSxTLmVhY2goWyJhamF4U3RhcnQiLCJhamF4U3RvcCIsImFqYXhDb21wbGV0ZSIsImFqYXhFcnJvciIsImFqYXhTdWNjZXNzIiwiYWpheFNlbmQiXSxmdW5jdGlvbihlLHQpe1MuZm5bdF09ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMub24odCxlKX19KSxTLmZuLmV4dGVuZCh7YmluZDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMub24oZSxudWxsLHQsbil9LHVuYmluZDpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLm9mZihlLG51bGwsdCl9LGRlbGVnYXRlOmZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiB0aGlzLm9uKHQsZSxuLHIpfSx1bmRlbGVnYXRlOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/dGhpcy5vZmYoZSwiKioiKTp0aGlzLm9mZih0LGV8fCIqKiIsbil9LGhvdmVyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMubW91c2VlbnRlcihlKS5tb3VzZWxlYXZlKHR8fGUpfX0pLFMuZWFjaCgiYmx1ciBmb2N1cyBmb2N1c2luIGZvY3Vzb3V0IHJlc2l6ZSBzY3JvbGwgY2xpY2sgZGJsY2xpY2sgbW91c2Vkb3duIG1vdXNldXAgbW91c2Vtb3ZlIG1vdXNlb3ZlciBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgY2hhbmdlIHNlbGVjdCBzdWJtaXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBjb250ZXh0bWVudSIuc3BsaXQoIiAiKSxmdW5jdGlvbihlLG4pe1MuZm5bbl09ZnVuY3Rpb24oZSx0KXtyZXR1cm4gMDxhcmd1bWVudHMubGVuZ3RoP3RoaXMub24obixudWxsLGUsdCk6dGhpcy50cmlnZ2VyKG4pfX0pO3ZhciBYdD0vXltcc1x1RkVGRlx4QTBdK3xbXHNcdUZFRkZceEEwXSskL2c7Uy5wcm94eT1mdW5jdGlvbihlLHQpe3ZhciBuLHIsaTtpZigic3RyaW5nIj09dHlwZW9mIHQmJihuPWVbdF0sdD1lLGU9biksbShlKSlyZXR1cm4gcj1zLmNhbGwoYXJndW1lbnRzLDIpLChpPWZ1bmN0aW9uKCl7cmV0dXJuIGUuYXBwbHkodHx8dGhpcyxyLmNvbmNhdChzLmNhbGwoYXJndW1lbnRzKSkpfSkuZ3VpZD1lLmd1aWQ9ZS5ndWlkfHxTLmd1aWQrKyxpfSxTLmhvbGRSZWFkeT1mdW5jdGlvbihlKXtlP1MucmVhZHlXYWl0Kys6Uy5yZWFkeSghMCl9LFMuaXNBcnJheT1BcnJheS5pc0FycmF5LFMucGFyc2VKU09OPUpTT04ucGFyc2UsUy5ub2RlTmFtZT1BLFMuaXNGdW5jdGlvbj1tLFMuaXNXaW5kb3c9eCxTLmNhbWVsQ2FzZT1YLFMudHlwZT13LFMubm93PURhdGUubm93LFMuaXNOdW1lcmljPWZ1bmN0aW9uKGUpe3ZhciB0PVMudHlwZShlKTtyZXR1cm4oIm51bWJlciI9PT10fHwic3RyaW5nIj09PXQpJiYhaXNOYU4oZS1wYXJzZUZsb2F0KGUpKX0sUy50cmltPWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lPyIiOihlKyIiKS5yZXBsYWNlKFh0LCIiKX0sImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZCYmZGVmaW5lKCJqcXVlcnkiLFtdLGZ1bmN0aW9uKCl7cmV0dXJuIFN9KTt2YXIgVnQ9Qy5qUXVlcnksR3Q9Qy4kO3JldHVybiBTLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIEMuJD09PVMmJihDLiQ9R3QpLGUmJkMualF1ZXJ5PT09UyYmKEMualF1ZXJ5PVZ0KSxTfSwidW5kZWZpbmVkIj09dHlwZW9mIGUmJihDLmpRdWVyeT1DLiQ9UyksU30pOwo="></script>
+
+ <!-- notebook theme (bootstrap 3) -->
+
+ <link href="data:text/css;base64,QGltcG9ydCB1cmwoImh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1Sb2JvdG86MzAwLDQwMCw1MDAsNzAwJmRpc3BsYXk9c3dhcCIpOy8qIQogKiBib290c3dhdGNoIHYzLjQuMQogKiBIb21lcGFnZTogaHR0cHM6Ly9ib290c3dhdGNoLmNvbQogKiBDb3B5cmlnaHQgMjAxMi0yMDE5IFRob21hcyBQYXJrCiAqIExpY2Vuc2VkIHVuZGVyIE1JVAogKiBCYXNlZCBvbiBCb290c3RyYXAKKi8vKiEKICogQm9vdHN0cmFwIHYzLjQuMSAoaHR0cHM6Ly9nZXRib290c3RyYXAuY29tLykKICogQ29weXJpZ2h0IDIwMTEtMjAxOSBUd2l0dGVyLCBJbmMuCiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFzdGVyL0xJQ0VOU0UpCiAqLy8qISBub3JtYWxpemUuY3NzIHYzLjAuMyB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9odG1se2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7LW1zLXRleHQtc2l6ZS1hZGp1c3Q6MTAwJTstd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6MTAwJX1ib2R5e21hcmdpbjowfWFydGljbGUsYXNpZGUsZGV0YWlscyxmaWdjYXB0aW9uLGZpZ3VyZSxmb290ZXIsaGVhZGVyLGhncm91cCxtYWluLG1lbnUsbmF2LHNlY3Rpb24sc3VtbWFyeXtkaXNwbGF5OmJsb2NrfWF1ZGlvLGNhbnZhcyxwcm9ncmVzcyx2aWRlb3tkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZX1hdWRpbzpub3QoW2NvbnRyb2xzXSl7ZGlzcGxheTpub25lO2hlaWdodDowfVtoaWRkZW5dLHRlbXBsYXRle2Rpc3BsYXk6bm9uZX1he2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9YTphY3RpdmUsYTpob3ZlcntvdXRsaW5lOjB9YWJiclt0aXRsZV17Ym9yZGVyLWJvdHRvbTpub25lO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBkb3R0ZWR9YixzdHJvbmd7Zm9udC13ZWlnaHQ6Ym9sZH1kZm57Zm9udC1zdHlsZTppdGFsaWN9aDF7Zm9udC1zaXplOjJlbTttYXJnaW46MC42N2VtIDB9bWFya3tiYWNrZ3JvdW5kOiNmZjA7Y29sb3I6IzAwMH1zbWFsbHtmb250LXNpemU6ODAlfXN1YixzdXB7Zm9udC1zaXplOjc1JTtsaW5lLWhlaWdodDowO3Bvc2l0aW9uOnJlbGF0aXZlO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfXN1cHt0b3A6LTAuNWVtfXN1Yntib3R0b206LTAuMjVlbX1pbWd7Ym9yZGVyOjB9c3ZnOm5vdCg6cm9vdCl7b3ZlcmZsb3c6aGlkZGVufWZpZ3VyZXttYXJnaW46MWVtIDQwcHh9aHJ7Ym94LXNpemluZzpjb250ZW50LWJveDtoZWlnaHQ6MH1wcmV7b3ZlcmZsb3c6YXV0b31jb2RlLGtiZCxwcmUsc2FtcHtmb250LWZhbWlseTptb25vc3BhY2UsIG1vbm9zcGFjZTtmb250LXNpemU6MWVtfWJ1dHRvbixpbnB1dCxvcHRncm91cCxzZWxlY3QsdGV4dGFyZWF7Y29sb3I6aW5oZXJpdDtmb250OmluaGVyaXQ7bWFyZ2luOjB9YnV0dG9ue292ZXJmbG93OnZpc2libGV9YnV0dG9uLHNlbGVjdHt0ZXh0LXRyYW5zZm9ybTpub25lfWJ1dHRvbixodG1sIGlucHV0W3R5cGU9ImJ1dHRvbiJdLGlucHV0W3R5cGU9InJlc2V0Il0saW5wdXRbdHlwZT0ic3VibWl0Il17LXdlYmtpdC1hcHBlYXJhbmNlOmJ1dHRvbjtjdXJzb3I6cG9pbnRlcn1idXR0b25bZGlzYWJsZWRdLGh0bWwgaW5wdXRbZGlzYWJsZWRde2N1cnNvcjpkZWZhdWx0fWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixpbnB1dDo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MDtwYWRkaW5nOjB9aW5wdXR7bGluZS1oZWlnaHQ6bm9ybWFsfWlucHV0W3R5cGU9ImNoZWNrYm94Il0saW5wdXRbdHlwZT0icmFkaW8iXXtib3gtc2l6aW5nOmJvcmRlci1ib3g7cGFkZGluZzowfWlucHV0W3R5cGU9Im51bWJlciJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLGlucHV0W3R5cGU9Im51bWJlciJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9ue2hlaWdodDphdXRvfWlucHV0W3R5cGU9InNlYXJjaCJdey13ZWJraXQtYXBwZWFyYW5jZTp0ZXh0ZmllbGQ7Ym94LXNpemluZzpjb250ZW50LWJveH1pbnB1dFt0eXBlPSJzZWFyY2giXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixpbnB1dFt0eXBlPSJzZWFyY2giXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX1maWVsZHNldHtib3JkZXI6MXB4IHNvbGlkICNjMGMwYzA7bWFyZ2luOjAgMnB4O3BhZGRpbmc6MC4zNWVtIDAuNjI1ZW0gMC43NWVtfWxlZ2VuZHtib3JkZXI6MDtwYWRkaW5nOjB9dGV4dGFyZWF7b3ZlcmZsb3c6YXV0b31vcHRncm91cHtmb250LXdlaWdodDpib2xkfXRhYmxle2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtib3JkZXItc3BhY2luZzowfXRkLHRoe3BhZGRpbmc6MH0vKiEgU291cmNlOiBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzICovQG1lZGlhIHByaW50eyosKjpiZWZvcmUsKjphZnRlcntjb2xvcjojMDAwICFpbXBvcnRhbnQ7dGV4dC1zaGFkb3c6bm9uZSAhaW1wb3J0YW50O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQgIWltcG9ydGFudDtib3gtc2hhZG93Om5vbmUgIWltcG9ydGFudH1hLGE6dmlzaXRlZHt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfWFbaHJlZl06YWZ0ZXJ7Y29udGVudDoiICgiIGF0dHIoaHJlZikgIikifWFiYnJbdGl0bGVdOmFmdGVye2NvbnRlbnQ6IiAoIiBhdHRyKHRpdGxlKSAiKSJ9YVtocmVmXj0iIyJdOmFmdGVyLGFbaHJlZl49ImphdmFzY3JpcHQ6Il06YWZ0ZXJ7Y29udGVudDoiIn1wcmUsYmxvY2txdW90ZXtib3JkZXI6MXB4IHNvbGlkICM5OTk7cGFnZS1icmVhay1pbnNpZGU6YXZvaWR9dGhlYWR7ZGlzcGxheTp0YWJsZS1oZWFkZXItZ3JvdXB9dHIsaW1ne3BhZ2UtYnJlYWstaW5zaWRlOmF2b2lkfWltZ3ttYXgtd2lkdGg6MTAwJSAhaW1wb3J0YW50fXAsaDIsaDN7b3JwaGFuczozO3dpZG93czozfWgyLGgze3BhZ2UtYnJlYWstYWZ0ZXI6YXZvaWR9Lm5hdmJhcntkaXNwbGF5Om5vbmV9LmJ0bj4uY2FyZXQsLmRyb3B1cD4uYnRuPi5jYXJldHtib3JkZXItdG9wLWNvbG9yOiMwMDAgIWltcG9ydGFudH0ubGFiZWx7Ym9yZGVyOjFweCBzb2xpZCAjMDAwfS50YWJsZXtib3JkZXItY29sbGFwc2U6Y29sbGFwc2UgIWltcG9ydGFudH0udGFibGUgdGQsLnRhYmxlIHRoe2JhY2tncm91bmQtY29sb3I6I2ZmZiAhaW1wb3J0YW50fS50YWJsZS1ib3JkZXJlZCB0aCwudGFibGUtYm9yZGVyZWQgdGR7Ym9yZGVyOjFweCBzb2xpZCAjZGRkICFpbXBvcnRhbnR9fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6IkdseXBoaWNvbnMgSGFsZmxpbmdzIjtzcmM6dXJsKCIuLi9mb250cy9nbHlwaGljb25zLWhhbGZsaW5ncy1yZWd1bGFyLmVvdCIpO3NyYzp1cmwoIi4uL2ZvbnRzL2dseXBoaWNvbnMtaGFsZmxpbmdzLXJlZ3VsYXIuZW90PyNpZWZpeCIpIGZvcm1hdCgiZW1iZWRkZWQtb3BlbnR5cGUiKSx1cmwoIi4uL2ZvbnRzL2dseXBoaWNvbnMtaGFsZmxpbmdzLXJlZ3VsYXIud29mZjIiKSBmb3JtYXQoIndvZmYyIiksdXJsKCIuLi9mb250cy9nbHlwaGljb25zLWhhbGZsaW5ncy1yZWd1bGFyLndvZmYiKSBmb3JtYXQoIndvZmYiKSx1cmwoIi4uL2ZvbnRzL2dseXBoaWNvbnMtaGFsZmxpbmdzLXJlZ3VsYXIudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpLHVybCgiLi4vZm9udHMvZ2x5cGhpY29ucy1oYWxmbGluZ3MtcmVndWxhci5zdmcjZ2x5cGhpY29uc19oYWxmbGluZ3NyZWd1bGFyIikgZm9ybWF0KCJzdmciKX0uZ2x5cGhpY29ue3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDoxcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1mYW1pbHk6IkdseXBoaWNvbnMgSGFsZmxpbmdzIjtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MTstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkOy1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZX0uZ2x5cGhpY29uLWFzdGVyaXNrOmJlZm9yZXtjb250ZW50OiJcMDAyYSJ9LmdseXBoaWNvbi1wbHVzOmJlZm9yZXtjb250ZW50OiJcMDAyYiJ9LmdseXBoaWNvbi1ldXJvOmJlZm9yZSwuZ2x5cGhpY29uLWV1cjpiZWZvcmV7Y29udGVudDoiXDIwYWMifS5nbHlwaGljb24tbWludXM6YmVmb3Jle2NvbnRlbnQ6IlwyMjEyIn0uZ2x5cGhpY29uLWNsb3VkOmJlZm9yZXtjb250ZW50OiJcMjYwMSJ9LmdseXBoaWNvbi1lbnZlbG9wZTpiZWZvcmV7Y29udGVudDoiXDI3MDkifS5nbHlwaGljb24tcGVuY2lsOmJlZm9yZXtjb250ZW50OiJcMjcwZiJ9LmdseXBoaWNvbi1nbGFzczpiZWZvcmV7Y29udGVudDoiXGUwMDEifS5nbHlwaGljb24tbXVzaWM6YmVmb3Jle2NvbnRlbnQ6IlxlMDAyIn0uZ2x5cGhpY29uLXNlYXJjaDpiZWZvcmV7Y29udGVudDoiXGUwMDMifS5nbHlwaGljb24taGVhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDA1In0uZ2x5cGhpY29uLXN0YXI6YmVmb3Jle2NvbnRlbnQ6IlxlMDA2In0uZ2x5cGhpY29uLXN0YXItZW1wdHk6YmVmb3Jle2NvbnRlbnQ6IlxlMDA3In0uZ2x5cGhpY29uLXVzZXI6YmVmb3Jle2NvbnRlbnQ6IlxlMDA4In0uZ2x5cGhpY29uLWZpbG06YmVmb3Jle2NvbnRlbnQ6IlxlMDA5In0uZ2x5cGhpY29uLXRoLWxhcmdlOmJlZm9yZXtjb250ZW50OiJcZTAxMCJ9LmdseXBoaWNvbi10aDpiZWZvcmV7Y29udGVudDoiXGUwMTEifS5nbHlwaGljb24tdGgtbGlzdDpiZWZvcmV7Y29udGVudDoiXGUwMTIifS5nbHlwaGljb24tb2s6YmVmb3Jle2NvbnRlbnQ6IlxlMDEzIn0uZ2x5cGhpY29uLXJlbW92ZTpiZWZvcmV7Y29udGVudDoiXGUwMTQifS5nbHlwaGljb24tem9vbS1pbjpiZWZvcmV7Y29udGVudDoiXGUwMTUifS5nbHlwaGljb24tem9vbS1vdXQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDE2In0uZ2x5cGhpY29uLW9mZjpiZWZvcmV7Y29udGVudDoiXGUwMTcifS5nbHlwaGljb24tc2lnbmFsOmJlZm9yZXtjb250ZW50OiJcZTAxOCJ9LmdseXBoaWNvbi1jb2c6YmVmb3Jle2NvbnRlbnQ6IlxlMDE5In0uZ2x5cGhpY29uLXRyYXNoOmJlZm9yZXtjb250ZW50OiJcZTAyMCJ9LmdseXBoaWNvbi1ob21lOmJlZm9yZXtjb250ZW50OiJcZTAyMSJ9LmdseXBoaWNvbi1maWxlOmJlZm9yZXtjb250ZW50OiJcZTAyMiJ9LmdseXBoaWNvbi10aW1lOmJlZm9yZXtjb250ZW50OiJcZTAyMyJ9LmdseXBoaWNvbi1yb2FkOmJlZm9yZXtjb250ZW50OiJcZTAyNCJ9LmdseXBoaWNvbi1kb3dubG9hZC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDI1In0uZ2x5cGhpY29uLWRvd25sb2FkOmJlZm9yZXtjb250ZW50OiJcZTAyNiJ9LmdseXBoaWNvbi11cGxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDI3In0uZ2x5cGhpY29uLWluYm94OmJlZm9yZXtjb250ZW50OiJcZTAyOCJ9LmdseXBoaWNvbi1wbGF5LWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGUwMjkifS5nbHlwaGljb24tcmVwZWF0OmJlZm9yZXtjb250ZW50OiJcZTAzMCJ9LmdseXBoaWNvbi1yZWZyZXNoOmJlZm9yZXtjb250ZW50OiJcZTAzMSJ9LmdseXBoaWNvbi1saXN0LWFsdDpiZWZvcmV7Y29udGVudDoiXGUwMzIifS5nbHlwaGljb24tbG9jazpiZWZvcmV7Y29udGVudDoiXGUwMzMifS5nbHlwaGljb24tZmxhZzpiZWZvcmV7Y29udGVudDoiXGUwMzQifS5nbHlwaGljb24taGVhZHBob25lczpiZWZvcmV7Y29udGVudDoiXGUwMzUifS5nbHlwaGljb24tdm9sdW1lLW9mZjpiZWZvcmV7Y29udGVudDoiXGUwMzYifS5nbHlwaGljb24tdm9sdW1lLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxlMDM3In0uZ2x5cGhpY29uLXZvbHVtZS11cDpiZWZvcmV7Y29udGVudDoiXGUwMzgifS5nbHlwaGljb24tcXJjb2RlOmJlZm9yZXtjb250ZW50OiJcZTAzOSJ9LmdseXBoaWNvbi1iYXJjb2RlOmJlZm9yZXtjb250ZW50OiJcZTA0MCJ9LmdseXBoaWNvbi10YWc6YmVmb3Jle2NvbnRlbnQ6IlxlMDQxIn0uZ2x5cGhpY29uLXRhZ3M6YmVmb3Jle2NvbnRlbnQ6IlxlMDQyIn0uZ2x5cGhpY29uLWJvb2s6YmVmb3Jle2NvbnRlbnQ6IlxlMDQzIn0uZ2x5cGhpY29uLWJvb2ttYXJrOmJlZm9yZXtjb250ZW50OiJcZTA0NCJ9LmdseXBoaWNvbi1wcmludDpiZWZvcmV7Y29udGVudDoiXGUwNDUifS5nbHlwaGljb24tY2FtZXJhOmJlZm9yZXtjb250ZW50OiJcZTA0NiJ9LmdseXBoaWNvbi1mb250OmJlZm9yZXtjb250ZW50OiJcZTA0NyJ9LmdseXBoaWNvbi1ib2xkOmJlZm9yZXtjb250ZW50OiJcZTA0OCJ9LmdseXBoaWNvbi1pdGFsaWM6YmVmb3Jle2NvbnRlbnQ6IlxlMDQ5In0uZ2x5cGhpY29uLXRleHQtaGVpZ2h0OmJlZm9yZXtjb250ZW50OiJcZTA1MCJ9LmdseXBoaWNvbi10ZXh0LXdpZHRoOmJlZm9yZXtjb250ZW50OiJcZTA1MSJ9LmdseXBoaWNvbi1hbGlnbi1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZTA1MiJ9LmdseXBoaWNvbi1hbGlnbi1jZW50ZXI6YmVmb3Jle2NvbnRlbnQ6IlxlMDUzIn0uZ2x5cGhpY29uLWFsaWduLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZTA1NCJ9LmdseXBoaWNvbi1hbGlnbi1qdXN0aWZ5OmJlZm9yZXtjb250ZW50OiJcZTA1NSJ9LmdseXBoaWNvbi1saXN0OmJlZm9yZXtjb250ZW50OiJcZTA1NiJ9LmdseXBoaWNvbi1pbmRlbnQtbGVmdDpiZWZvcmV7Y29udGVudDoiXGUwNTcifS5nbHlwaGljb24taW5kZW50LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZTA1OCJ9LmdseXBoaWNvbi1mYWNldGltZS12aWRlbzpiZWZvcmV7Y29udGVudDoiXGUwNTkifS5nbHlwaGljb24tcGljdHVyZTpiZWZvcmV7Y29udGVudDoiXGUwNjAifS5nbHlwaGljb24tbWFwLW1hcmtlcjpiZWZvcmV7Y29udGVudDoiXGUwNjIifS5nbHlwaGljb24tYWRqdXN0OmJlZm9yZXtjb250ZW50OiJcZTA2MyJ9LmdseXBoaWNvbi10aW50OmJlZm9yZXtjb250ZW50OiJcZTA2NCJ9LmdseXBoaWNvbi1lZGl0OmJlZm9yZXtjb250ZW50OiJcZTA2NSJ9LmdseXBoaWNvbi1zaGFyZTpiZWZvcmV7Y29udGVudDoiXGUwNjYifS5nbHlwaGljb24tY2hlY2s6YmVmb3Jle2NvbnRlbnQ6IlxlMDY3In0uZ2x5cGhpY29uLW1vdmU6YmVmb3Jle2NvbnRlbnQ6IlxlMDY4In0uZ2x5cGhpY29uLXN0ZXAtYmFja3dhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDY5In0uZ2x5cGhpY29uLWZhc3QtYmFja3dhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDcwIn0uZ2x5cGhpY29uLWJhY2t3YXJkOmJlZm9yZXtjb250ZW50OiJcZTA3MSJ9LmdseXBoaWNvbi1wbGF5OmJlZm9yZXtjb250ZW50OiJcZTA3MiJ9LmdseXBoaWNvbi1wYXVzZTpiZWZvcmV7Y29udGVudDoiXGUwNzMifS5nbHlwaGljb24tc3RvcDpiZWZvcmV7Y29udGVudDoiXGUwNzQifS5nbHlwaGljb24tZm9yd2FyZDpiZWZvcmV7Y29udGVudDoiXGUwNzUifS5nbHlwaGljb24tZmFzdC1mb3J3YXJkOmJlZm9yZXtjb250ZW50OiJcZTA3NiJ9LmdseXBoaWNvbi1zdGVwLWZvcndhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDc3In0uZ2x5cGhpY29uLWVqZWN0OmJlZm9yZXtjb250ZW50OiJcZTA3OCJ9LmdseXBoaWNvbi1jaGV2cm9uLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDc5In0uZ2x5cGhpY29uLWNoZXZyb24tcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDgwIn0uZ2x5cGhpY29uLXBsdXMtc2lnbjpiZWZvcmV7Y29udGVudDoiXGUwODEifS5nbHlwaGljb24tbWludXMtc2lnbjpiZWZvcmV7Y29udGVudDoiXGUwODIifS5nbHlwaGljb24tcmVtb3ZlLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxlMDgzIn0uZ2x5cGhpY29uLW9rLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxlMDg0In0uZ2x5cGhpY29uLXF1ZXN0aW9uLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxlMDg1In0uZ2x5cGhpY29uLWluZm8tc2lnbjpiZWZvcmV7Y29udGVudDoiXGUwODYifS5nbHlwaGljb24tc2NyZWVuc2hvdDpiZWZvcmV7Y29udGVudDoiXGUwODcifS5nbHlwaGljb24tcmVtb3ZlLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGUwODgifS5nbHlwaGljb24tb2stY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZTA4OSJ9LmdseXBoaWNvbi1iYW4tY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZTA5MCJ9LmdseXBoaWNvbi1hcnJvdy1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZTA5MSJ9LmdseXBoaWNvbi1hcnJvdy1yaWdodDpiZWZvcmV7Y29udGVudDoiXGUwOTIifS5nbHlwaGljb24tYXJyb3ctdXA6YmVmb3Jle2NvbnRlbnQ6IlxlMDkzIn0uZ2x5cGhpY29uLWFycm93LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxlMDk0In0uZ2x5cGhpY29uLXNoYXJlLWFsdDpiZWZvcmV7Y29udGVudDoiXGUwOTUifS5nbHlwaGljb24tcmVzaXplLWZ1bGw6YmVmb3Jle2NvbnRlbnQ6IlxlMDk2In0uZ2x5cGhpY29uLXJlc2l6ZS1zbWFsbDpiZWZvcmV7Y29udGVudDoiXGUwOTcifS5nbHlwaGljb24tZXhjbGFtYXRpb24tc2lnbjpiZWZvcmV7Y29udGVudDoiXGUxMDEifS5nbHlwaGljb24tZ2lmdDpiZWZvcmV7Y29udGVudDoiXGUxMDIifS5nbHlwaGljb24tbGVhZjpiZWZvcmV7Y29udGVudDoiXGUxMDMifS5nbHlwaGljb24tZmlyZTpiZWZvcmV7Y29udGVudDoiXGUxMDQifS5nbHlwaGljb24tZXllLW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxlMTA1In0uZ2x5cGhpY29uLWV5ZS1jbG9zZTpiZWZvcmV7Y29udGVudDoiXGUxMDYifS5nbHlwaGljb24td2FybmluZy1zaWduOmJlZm9yZXtjb250ZW50OiJcZTEwNyJ9LmdseXBoaWNvbi1wbGFuZTpiZWZvcmV7Y29udGVudDoiXGUxMDgifS5nbHlwaGljb24tY2FsZW5kYXI6YmVmb3Jle2NvbnRlbnQ6IlxlMTA5In0uZ2x5cGhpY29uLXJhbmRvbTpiZWZvcmV7Y29udGVudDoiXGUxMTAifS5nbHlwaGljb24tY29tbWVudDpiZWZvcmV7Y29udGVudDoiXGUxMTEifS5nbHlwaGljb24tbWFnbmV0OmJlZm9yZXtjb250ZW50OiJcZTExMiJ9LmdseXBoaWNvbi1jaGV2cm9uLXVwOmJlZm9yZXtjb250ZW50OiJcZTExMyJ9LmdseXBoaWNvbi1jaGV2cm9uLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxlMTE0In0uZ2x5cGhpY29uLXJldHdlZXQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTE1In0uZ2x5cGhpY29uLXNob3BwaW5nLWNhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTE2In0uZ2x5cGhpY29uLWZvbGRlci1jbG9zZTpiZWZvcmV7Y29udGVudDoiXGUxMTcifS5nbHlwaGljb24tZm9sZGVyLW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxlMTE4In0uZ2x5cGhpY29uLXJlc2l6ZS12ZXJ0aWNhbDpiZWZvcmV7Y29udGVudDoiXGUxMTkifS5nbHlwaGljb24tcmVzaXplLWhvcml6b250YWw6YmVmb3Jle2NvbnRlbnQ6IlxlMTIwIn0uZ2x5cGhpY29uLWhkZDpiZWZvcmV7Y29udGVudDoiXGUxMjEifS5nbHlwaGljb24tYnVsbGhvcm46YmVmb3Jle2NvbnRlbnQ6IlxlMTIyIn0uZ2x5cGhpY29uLWJlbGw6YmVmb3Jle2NvbnRlbnQ6IlxlMTIzIn0uZ2x5cGhpY29uLWNlcnRpZmljYXRlOmJlZm9yZXtjb250ZW50OiJcZTEyNCJ9LmdseXBoaWNvbi10aHVtYnMtdXA6YmVmb3Jle2NvbnRlbnQ6IlxlMTI1In0uZ2x5cGhpY29uLXRodW1icy1kb3duOmJlZm9yZXtjb250ZW50OiJcZTEyNiJ9LmdseXBoaWNvbi1oYW5kLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZTEyNyJ9LmdseXBoaWNvbi1oYW5kLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTI4In0uZ2x5cGhpY29uLWhhbmQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxlMTI5In0uZ2x5cGhpY29uLWhhbmQtZG93bjpiZWZvcmV7Y29udGVudDoiXGUxMzAifS5nbHlwaGljb24tY2lyY2xlLWFycm93LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZTEzMSJ9LmdseXBoaWNvbi1jaXJjbGUtYXJyb3ctbGVmdDpiZWZvcmV7Y29udGVudDoiXGUxMzIifS5nbHlwaGljb24tY2lyY2xlLWFycm93LXVwOmJlZm9yZXtjb250ZW50OiJcZTEzMyJ9LmdseXBoaWNvbi1jaXJjbGUtYXJyb3ctZG93bjpiZWZvcmV7Y29udGVudDoiXGUxMzQifS5nbHlwaGljb24tZ2xvYmU6YmVmb3Jle2NvbnRlbnQ6IlxlMTM1In0uZ2x5cGhpY29uLXdyZW5jaDpiZWZvcmV7Y29udGVudDoiXGUxMzYifS5nbHlwaGljb24tdGFza3M6YmVmb3Jle2NvbnRlbnQ6IlxlMTM3In0uZ2x5cGhpY29uLWZpbHRlcjpiZWZvcmV7Y29udGVudDoiXGUxMzgifS5nbHlwaGljb24tYnJpZWZjYXNlOmJlZm9yZXtjb250ZW50OiJcZTEzOSJ9LmdseXBoaWNvbi1mdWxsc2NyZWVuOmJlZm9yZXtjb250ZW50OiJcZTE0MCJ9LmdseXBoaWNvbi1kYXNoYm9hcmQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTQxIn0uZ2x5cGhpY29uLXBhcGVyY2xpcDpiZWZvcmV7Y29udGVudDoiXGUxNDIifS5nbHlwaGljb24taGVhcnQtZW1wdHk6YmVmb3Jle2NvbnRlbnQ6IlxlMTQzIn0uZ2x5cGhpY29uLWxpbms6YmVmb3Jle2NvbnRlbnQ6IlxlMTQ0In0uZ2x5cGhpY29uLXBob25lOmJlZm9yZXtjb250ZW50OiJcZTE0NSJ9LmdseXBoaWNvbi1wdXNocGluOmJlZm9yZXtjb250ZW50OiJcZTE0NiJ9LmdseXBoaWNvbi11c2Q6YmVmb3Jle2NvbnRlbnQ6IlxlMTQ4In0uZ2x5cGhpY29uLWdicDpiZWZvcmV7Y29udGVudDoiXGUxNDkifS5nbHlwaGljb24tc29ydDpiZWZvcmV7Y29udGVudDoiXGUxNTAifS5nbHlwaGljb24tc29ydC1ieS1hbHBoYWJldDpiZWZvcmV7Y29udGVudDoiXGUxNTEifS5nbHlwaGljb24tc29ydC1ieS1hbHBoYWJldC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTUyIn0uZ2x5cGhpY29uLXNvcnQtYnktb3JkZXI6YmVmb3Jle2NvbnRlbnQ6IlxlMTUzIn0uZ2x5cGhpY29uLXNvcnQtYnktb3JkZXItYWx0OmJlZm9yZXtjb250ZW50OiJcZTE1NCJ9LmdseXBoaWNvbi1zb3J0LWJ5LWF0dHJpYnV0ZXM6YmVmb3Jle2NvbnRlbnQ6IlxlMTU1In0uZ2x5cGhpY29uLXNvcnQtYnktYXR0cmlidXRlcy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTU2In0uZ2x5cGhpY29uLXVuY2hlY2tlZDpiZWZvcmV7Y29udGVudDoiXGUxNTcifS5nbHlwaGljb24tZXhwYW5kOmJlZm9yZXtjb250ZW50OiJcZTE1OCJ9LmdseXBoaWNvbi1jb2xsYXBzZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZTE1OSJ9LmdseXBoaWNvbi1jb2xsYXBzZS11cDpiZWZvcmV7Y29udGVudDoiXGUxNjAifS5nbHlwaGljb24tbG9nLWluOmJlZm9yZXtjb250ZW50OiJcZTE2MSJ9LmdseXBoaWNvbi1mbGFzaDpiZWZvcmV7Y29udGVudDoiXGUxNjIifS5nbHlwaGljb24tbG9nLW91dDpiZWZvcmV7Y29udGVudDoiXGUxNjMifS5nbHlwaGljb24tbmV3LXdpbmRvdzpiZWZvcmV7Y29udGVudDoiXGUxNjQifS5nbHlwaGljb24tcmVjb3JkOmJlZm9yZXtjb250ZW50OiJcZTE2NSJ9LmdseXBoaWNvbi1zYXZlOmJlZm9yZXtjb250ZW50OiJcZTE2NiJ9LmdseXBoaWNvbi1vcGVuOmJlZm9yZXtjb250ZW50OiJcZTE2NyJ9LmdseXBoaWNvbi1zYXZlZDpiZWZvcmV7Y29udGVudDoiXGUxNjgifS5nbHlwaGljb24taW1wb3J0OmJlZm9yZXtjb250ZW50OiJcZTE2OSJ9LmdseXBoaWNvbi1leHBvcnQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTcwIn0uZ2x5cGhpY29uLXNlbmQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTcxIn0uZ2x5cGhpY29uLWZsb3BweS1kaXNrOmJlZm9yZXtjb250ZW50OiJcZTE3MiJ9LmdseXBoaWNvbi1mbG9wcHktc2F2ZWQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTczIn0uZ2x5cGhpY29uLWZsb3BweS1yZW1vdmU6YmVmb3Jle2NvbnRlbnQ6IlxlMTc0In0uZ2x5cGhpY29uLWZsb3BweS1zYXZlOmJlZm9yZXtjb250ZW50OiJcZTE3NSJ9LmdseXBoaWNvbi1mbG9wcHktb3BlbjpiZWZvcmV7Y29udGVudDoiXGUxNzYifS5nbHlwaGljb24tY3JlZGl0LWNhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTc3In0uZ2x5cGhpY29uLXRyYW5zZmVyOmJlZm9yZXtjb250ZW50OiJcZTE3OCJ9LmdseXBoaWNvbi1jdXRsZXJ5OmJlZm9yZXtjb250ZW50OiJcZTE3OSJ9LmdseXBoaWNvbi1oZWFkZXI6YmVmb3Jle2NvbnRlbnQ6IlxlMTgwIn0uZ2x5cGhpY29uLWNvbXByZXNzZWQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTgxIn0uZ2x5cGhpY29uLWVhcnBob25lOmJlZm9yZXtjb250ZW50OiJcZTE4MiJ9LmdseXBoaWNvbi1waG9uZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTgzIn0uZ2x5cGhpY29uLXRvd2VyOmJlZm9yZXtjb250ZW50OiJcZTE4NCJ9LmdseXBoaWNvbi1zdGF0czpiZWZvcmV7Y29udGVudDoiXGUxODUifS5nbHlwaGljb24tc2QtdmlkZW86YmVmb3Jle2NvbnRlbnQ6IlxlMTg2In0uZ2x5cGhpY29uLWhkLXZpZGVvOmJlZm9yZXtjb250ZW50OiJcZTE4NyJ9LmdseXBoaWNvbi1zdWJ0aXRsZXM6YmVmb3Jle2NvbnRlbnQ6IlxlMTg4In0uZ2x5cGhpY29uLXNvdW5kLXN0ZXJlbzpiZWZvcmV7Y29udGVudDoiXGUxODkifS5nbHlwaGljb24tc291bmQtZG9sYnk6YmVmb3Jle2NvbnRlbnQ6IlxlMTkwIn0uZ2x5cGhpY29uLXNvdW5kLTUtMTpiZWZvcmV7Y29udGVudDoiXGUxOTEifS5nbHlwaGljb24tc291bmQtNi0xOmJlZm9yZXtjb250ZW50OiJcZTE5MiJ9LmdseXBoaWNvbi1zb3VuZC03LTE6YmVmb3Jle2NvbnRlbnQ6IlxlMTkzIn0uZ2x5cGhpY29uLWNvcHlyaWdodC1tYXJrOmJlZm9yZXtjb250ZW50OiJcZTE5NCJ9LmdseXBoaWNvbi1yZWdpc3RyYXRpb24tbWFyazpiZWZvcmV7Y29udGVudDoiXGUxOTUifS5nbHlwaGljb24tY2xvdWQtZG93bmxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTk3In0uZ2x5cGhpY29uLWNsb3VkLXVwbG9hZDpiZWZvcmV7Y29udGVudDoiXGUxOTgifS5nbHlwaGljb24tdHJlZS1jb25pZmVyOmJlZm9yZXtjb250ZW50OiJcZTE5OSJ9LmdseXBoaWNvbi10cmVlLWRlY2lkdW91czpiZWZvcmV7Y29udGVudDoiXGUyMDAifS5nbHlwaGljb24tY2Q6YmVmb3Jle2NvbnRlbnQ6IlxlMjAxIn0uZ2x5cGhpY29uLXNhdmUtZmlsZTpiZWZvcmV7Y29udGVudDoiXGUyMDIifS5nbHlwaGljb24tb3Blbi1maWxlOmJlZm9yZXtjb250ZW50OiJcZTIwMyJ9LmdseXBoaWNvbi1sZXZlbC11cDpiZWZvcmV7Y29udGVudDoiXGUyMDQifS5nbHlwaGljb24tY29weTpiZWZvcmV7Y29udGVudDoiXGUyMDUifS5nbHlwaGljb24tcGFzdGU6YmVmb3Jle2NvbnRlbnQ6IlxlMjA2In0uZ2x5cGhpY29uLWFsZXJ0OmJlZm9yZXtjb250ZW50OiJcZTIwOSJ9LmdseXBoaWNvbi1lcXVhbGl6ZXI6YmVmb3Jle2NvbnRlbnQ6IlxlMjEwIn0uZ2x5cGhpY29uLWtpbmc6YmVmb3Jle2NvbnRlbnQ6IlxlMjExIn0uZ2x5cGhpY29uLXF1ZWVuOmJlZm9yZXtjb250ZW50OiJcZTIxMiJ9LmdseXBoaWNvbi1wYXduOmJlZm9yZXtjb250ZW50OiJcZTIxMyJ9LmdseXBoaWNvbi1iaXNob3A6YmVmb3Jle2NvbnRlbnQ6IlxlMjE0In0uZ2x5cGhpY29uLWtuaWdodDpiZWZvcmV7Y29udGVudDoiXGUyMTUifS5nbHlwaGljb24tYmFieS1mb3JtdWxhOmJlZm9yZXtjb250ZW50OiJcZTIxNiJ9LmdseXBoaWNvbi10ZW50OmJlZm9yZXtjb250ZW50OiJcMjZmYSJ9LmdseXBoaWNvbi1ibGFja2JvYXJkOmJlZm9yZXtjb250ZW50OiJcZTIxOCJ9LmdseXBoaWNvbi1iZWQ6YmVmb3Jle2NvbnRlbnQ6IlxlMjE5In0uZ2x5cGhpY29uLWFwcGxlOmJlZm9yZXtjb250ZW50OiJcZjhmZiJ9LmdseXBoaWNvbi1lcmFzZTpiZWZvcmV7Y29udGVudDoiXGUyMjEifS5nbHlwaGljb24taG91cmdsYXNzOmJlZm9yZXtjb250ZW50OiJcMjMxYiJ9LmdseXBoaWNvbi1sYW1wOmJlZm9yZXtjb250ZW50OiJcZTIyMyJ9LmdseXBoaWNvbi1kdXBsaWNhdGU6YmVmb3Jle2NvbnRlbnQ6IlxlMjI0In0uZ2x5cGhpY29uLXBpZ2d5LWJhbms6YmVmb3Jle2NvbnRlbnQ6IlxlMjI1In0uZ2x5cGhpY29uLXNjaXNzb3JzOmJlZm9yZXtjb250ZW50OiJcZTIyNiJ9LmdseXBoaWNvbi1iaXRjb2luOmJlZm9yZXtjb250ZW50OiJcZTIyNyJ9LmdseXBoaWNvbi1idGM6YmVmb3Jle2NvbnRlbnQ6IlxlMjI3In0uZ2x5cGhpY29uLXhidDpiZWZvcmV7Y29udGVudDoiXGUyMjcifS5nbHlwaGljb24teWVuOmJlZm9yZXtjb250ZW50OiJcMDBhNSJ9LmdseXBoaWNvbi1qcHk6YmVmb3Jle2NvbnRlbnQ6IlwwMGE1In0uZ2x5cGhpY29uLXJ1YmxlOmJlZm9yZXtjb250ZW50OiJcMjBiZCJ9LmdseXBoaWNvbi1ydWI6YmVmb3Jle2NvbnRlbnQ6IlwyMGJkIn0uZ2x5cGhpY29uLXNjYWxlOmJlZm9yZXtjb250ZW50OiJcZTIzMCJ9LmdseXBoaWNvbi1pY2UtbG9sbHk6YmVmb3Jle2NvbnRlbnQ6IlxlMjMxIn0uZ2x5cGhpY29uLWljZS1sb2xseS10YXN0ZWQ6YmVmb3Jle2NvbnRlbnQ6IlxlMjMyIn0uZ2x5cGhpY29uLWVkdWNhdGlvbjpiZWZvcmV7Y29udGVudDoiXGUyMzMifS5nbHlwaGljb24tb3B0aW9uLWhvcml6b250YWw6YmVmb3Jle2NvbnRlbnQ6IlxlMjM0In0uZ2x5cGhpY29uLW9wdGlvbi12ZXJ0aWNhbDpiZWZvcmV7Y29udGVudDoiXGUyMzUifS5nbHlwaGljb24tbWVudS1oYW1idXJnZXI6YmVmb3Jle2NvbnRlbnQ6IlxlMjM2In0uZ2x5cGhpY29uLW1vZGFsLXdpbmRvdzpiZWZvcmV7Y29udGVudDoiXGUyMzcifS5nbHlwaGljb24tb2lsOmJlZm9yZXtjb250ZW50OiJcZTIzOCJ9LmdseXBoaWNvbi1ncmFpbjpiZWZvcmV7Y29udGVudDoiXGUyMzkifS5nbHlwaGljb24tc3VuZ2xhc3NlczpiZWZvcmV7Y29udGVudDoiXGUyNDAifS5nbHlwaGljb24tdGV4dC1zaXplOmJlZm9yZXtjb250ZW50OiJcZTI0MSJ9LmdseXBoaWNvbi10ZXh0LWNvbG9yOmJlZm9yZXtjb250ZW50OiJcZTI0MiJ9LmdseXBoaWNvbi10ZXh0LWJhY2tncm91bmQ6YmVmb3Jle2NvbnRlbnQ6IlxlMjQzIn0uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi10b3A6YmVmb3Jle2NvbnRlbnQ6IlxlMjQ0In0uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi1ib3R0b206YmVmb3Jle2NvbnRlbnQ6IlxlMjQ1In0uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi1ob3Jpem9udGFsOmJlZm9yZXtjb250ZW50OiJcZTI0NiJ9LmdseXBoaWNvbi1vYmplY3QtYWxpZ24tbGVmdDpiZWZvcmV7Y29udGVudDoiXGUyNDcifS5nbHlwaGljb24tb2JqZWN0LWFsaWduLXZlcnRpY2FsOmJlZm9yZXtjb250ZW50OiJcZTI0OCJ9LmdseXBoaWNvbi1vYmplY3QtYWxpZ24tcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxlMjQ5In0uZ2x5cGhpY29uLXRyaWFuZ2xlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZTI1MCJ9LmdseXBoaWNvbi10cmlhbmdsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZTI1MSJ9LmdseXBoaWNvbi10cmlhbmdsZS1ib3R0b206YmVmb3Jle2NvbnRlbnQ6IlxlMjUyIn0uZ2x5cGhpY29uLXRyaWFuZ2xlLXRvcDpiZWZvcmV7Y29udGVudDoiXGUyNTMifS5nbHlwaGljb24tY29uc29sZTpiZWZvcmV7Y29udGVudDoiXGUyNTQifS5nbHlwaGljb24tc3VwZXJzY3JpcHQ6YmVmb3Jle2NvbnRlbnQ6IlxlMjU1In0uZ2x5cGhpY29uLXN1YnNjcmlwdDpiZWZvcmV7Y29udGVudDoiXGUyNTYifS5nbHlwaGljb24tbWVudS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZTI1NyJ9LmdseXBoaWNvbi1tZW51LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZTI1OCJ9LmdseXBoaWNvbi1tZW51LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxlMjU5In0uZ2x5cGhpY29uLW1lbnUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxlMjYwIn0qe2JveC1zaXppbmc6Ym9yZGVyLWJveH0qOmJlZm9yZSwqOmFmdGVye2JveC1zaXppbmc6Ym9yZGVyLWJveH1odG1se2ZvbnQtc2l6ZToxMHB4Oy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjpyZ2JhKDAsMCwwLDApfWJvZHl7Zm9udC1mYW1pbHk6IlJvYm90byIsIkhlbHZldGljYSBOZXVlIixIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MTNweDtsaW5lLWhlaWdodDoxLjg0Njtjb2xvcjojNjY2NjY2O2JhY2tncm91bmQtY29sb3I6I2ZmZmZmZn1pbnB1dCxidXR0b24sc2VsZWN0LHRleHRhcmVhe2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7bGluZS1oZWlnaHQ6aW5oZXJpdH1he2NvbG9yOiMyMTk2ZjM7dGV4dC1kZWNvcmF0aW9uOm5vbmV9YTpob3ZlcixhOmZvY3Vze2NvbG9yOiMwYTZlYmQ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX1hOmZvY3Vze291dGxpbmU6NXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO291dGxpbmUtb2Zmc2V0Oi0ycHh9ZmlndXJle21hcmdpbjowfWltZ3t2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmltZy1yZXNwb25zaXZlLC50aHVtYm5haWw+aW1nLC50aHVtYm5haWwgYT5pbWcsLmNhcm91c2VsLWlubmVyPi5pdGVtPmltZywuY2Fyb3VzZWwtaW5uZXI+Lml0ZW0+YT5pbWd7ZGlzcGxheTpibG9jazttYXgtd2lkdGg6MTAwJTtoZWlnaHQ6YXV0b30uaW1nLXJvdW5kZWR7Ym9yZGVyLXJhZGl1czozcHh9LmltZy10aHVtYm5haWx7cGFkZGluZzo0cHg7bGluZS1oZWlnaHQ6MS44NDY7YmFja2dyb3VuZC1jb2xvcjojZmZmZmZmO2JvcmRlcjoxcHggc29saWQgI2RkZGRkZDtib3JkZXItcmFkaXVzOjNweDt0cmFuc2l0aW9uOmFsbCAuMnMgZWFzZS1pbi1vdXQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWF4LXdpZHRoOjEwMCU7aGVpZ2h0OmF1dG99LmltZy1jaXJjbGV7Ym9yZGVyLXJhZGl1czo1MCV9aHJ7bWFyZ2luLXRvcDoyM3B4O21hcmdpbi1ib3R0b206MjNweDtib3JkZXI6MDtib3JkZXItdG9wOjFweCBzb2xpZCAjZWVlZWVlfS5zci1vbmx5e3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDtoZWlnaHQ6MXB4O3BhZGRpbmc6MDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47Y2xpcDpyZWN0KDAsIDAsIDAsIDApO2JvcmRlcjowfS5zci1vbmx5LWZvY3VzYWJsZTphY3RpdmUsLnNyLW9ubHktZm9jdXNhYmxlOmZvY3Vze3Bvc2l0aW9uOnN0YXRpYzt3aWR0aDphdXRvO2hlaWdodDphdXRvO21hcmdpbjowO292ZXJmbG93OnZpc2libGU7Y2xpcDphdXRvfVtyb2xlPSJidXR0b24iXXtjdXJzb3I6cG9pbnRlcn1oMSxoMixoMyxoNCxoNSxoNiwuaDEsLmgyLC5oMywuaDQsLmg1LC5oNntmb250LWZhbWlseTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjE7Y29sb3I6IzQ0NDQ0NH1oMSBzbWFsbCxoMiBzbWFsbCxoMyBzbWFsbCxoNCBzbWFsbCxoNSBzbWFsbCxoNiBzbWFsbCwuaDEgc21hbGwsLmgyIHNtYWxsLC5oMyBzbWFsbCwuaDQgc21hbGwsLmg1IHNtYWxsLC5oNiBzbWFsbCxoMSAuc21hbGwsaDIgLnNtYWxsLGgzIC5zbWFsbCxoNCAuc21hbGwsaDUgLnNtYWxsLGg2IC5zbWFsbCwuaDEgLnNtYWxsLC5oMiAuc21hbGwsLmgzIC5zbWFsbCwuaDQgLnNtYWxsLC5oNSAuc21hbGwsLmg2IC5zbWFsbHtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MTtjb2xvcjojYmJiYmJifWgxLC5oMSxoMiwuaDIsaDMsLmgze21hcmdpbi10b3A6MjNweDttYXJnaW4tYm90dG9tOjExLjVweH1oMSBzbWFsbCwuaDEgc21hbGwsaDIgc21hbGwsLmgyIHNtYWxsLGgzIHNtYWxsLC5oMyBzbWFsbCxoMSAuc21hbGwsLmgxIC5zbWFsbCxoMiAuc21hbGwsLmgyIC5zbWFsbCxoMyAuc21hbGwsLmgzIC5zbWFsbHtmb250LXNpemU6NjUlfWg0LC5oNCxoNSwuaDUsaDYsLmg2e21hcmdpbi10b3A6MTEuNXB4O21hcmdpbi1ib3R0b206MTEuNXB4fWg0IHNtYWxsLC5oNCBzbWFsbCxoNSBzbWFsbCwuaDUgc21hbGwsaDYgc21hbGwsLmg2IHNtYWxsLGg0IC5zbWFsbCwuaDQgLnNtYWxsLGg1IC5zbWFsbCwuaDUgLnNtYWxsLGg2IC5zbWFsbCwuaDYgLnNtYWxse2ZvbnQtc2l6ZTo3NSV9aDEsLmgxe2ZvbnQtc2l6ZTo1NnB4fWgyLC5oMntmb250LXNpemU6NDVweH1oMywuaDN7Zm9udC1zaXplOjM0cHh9aDQsLmg0e2ZvbnQtc2l6ZToyNHB4fWg1LC5oNXtmb250LXNpemU6MjBweH1oNiwuaDZ7Zm9udC1zaXplOjE0cHh9cHttYXJnaW46MCAwIDExLjVweH0ubGVhZHttYXJnaW4tYm90dG9tOjIzcHg7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6MzAwO2xpbmUtaGVpZ2h0OjEuNH1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmxlYWR7Zm9udC1zaXplOjE5LjVweH19c21hbGwsLnNtYWxse2ZvbnQtc2l6ZTo5MiV9bWFyaywubWFya3twYWRkaW5nOi4yZW07YmFja2dyb3VuZC1jb2xvcjojZmZlMGIyfS50ZXh0LWxlZnR7dGV4dC1hbGlnbjpsZWZ0fS50ZXh0LXJpZ2h0e3RleHQtYWxpZ246cmlnaHR9LnRleHQtY2VudGVye3RleHQtYWxpZ246Y2VudGVyfS50ZXh0LWp1c3RpZnl7dGV4dC1hbGlnbjpqdXN0aWZ5fS50ZXh0LW5vd3JhcHt3aGl0ZS1zcGFjZTpub3dyYXB9LnRleHQtbG93ZXJjYXNle3RleHQtdHJhbnNmb3JtOmxvd2VyY2FzZX0udGV4dC11cHBlcmNhc2V7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfS50ZXh0LWNhcGl0YWxpemV7dGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZX0udGV4dC1tdXRlZHtjb2xvcjojYmJiYmJifS50ZXh0LXByaW1hcnl7Y29sb3I6IzIxOTZmM31hLnRleHQtcHJpbWFyeTpob3ZlcixhLnRleHQtcHJpbWFyeTpmb2N1c3tjb2xvcjojMGM3Y2Q1fS50ZXh0LXN1Y2Nlc3N7Y29sb3I6IzRjYWY1MH1hLnRleHQtc3VjY2Vzczpob3ZlcixhLnRleHQtc3VjY2Vzczpmb2N1c3tjb2xvcjojM2Q4YjQwfS50ZXh0LWluZm97Y29sb3I6IzljMjdiMH1hLnRleHQtaW5mbzpob3ZlcixhLnRleHQtaW5mbzpmb2N1c3tjb2xvcjojNzcxZTg2fS50ZXh0LXdhcm5pbmd7Y29sb3I6I2ZmOTgwMH1hLnRleHQtd2FybmluZzpob3ZlcixhLnRleHQtd2FybmluZzpmb2N1c3tjb2xvcjojY2M3YTAwfS50ZXh0LWRhbmdlcntjb2xvcjojZTUxYzIzfWEudGV4dC1kYW5nZXI6aG92ZXIsYS50ZXh0LWRhbmdlcjpmb2N1c3tjb2xvcjojYjkxNTFifS5iZy1wcmltYXJ5e2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMjE5NmYzfWEuYmctcHJpbWFyeTpob3ZlcixhLmJnLXByaW1hcnk6Zm9jdXN7YmFja2dyb3VuZC1jb2xvcjojMGM3Y2Q1fS5iZy1zdWNjZXNze2JhY2tncm91bmQtY29sb3I6I2RmZjBkOH1hLmJnLXN1Y2Nlc3M6aG92ZXIsYS5iZy1zdWNjZXNzOmZvY3Vze2JhY2tncm91bmQtY29sb3I6I2MxZTJiM30uYmctaW5mb3tiYWNrZ3JvdW5kLWNvbG9yOiNlMWJlZTd9YS5iZy1pbmZvOmhvdmVyLGEuYmctaW5mbzpmb2N1c3tiYWNrZ3JvdW5kLWNvbG9yOiNkMDk5ZDl9LmJnLXdhcm5pbmd7YmFja2dyb3VuZC1jb2xvcjojZmZlMGIyfWEuYmctd2FybmluZzpob3ZlcixhLmJnLXdhcm5pbmc6Zm9jdXN7YmFja2dyb3VuZC1jb2xvcjojZmZjYjdmfS5iZy1kYW5nZXJ7YmFja2dyb3VuZC1jb2xvcjojZjliZGJifWEuYmctZGFuZ2VyOmhvdmVyLGEuYmctZGFuZ2VyOmZvY3Vze2JhY2tncm91bmQtY29sb3I6I2Y1OTA4Y30ucGFnZS1oZWFkZXJ7cGFkZGluZy1ib3R0b206MTAuNXB4O21hcmdpbjo0NnB4IDAgMjNweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWVlZWVlfXVsLG9se21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjExLjVweH11bCB1bCxvbCB1bCx1bCBvbCxvbCBvbHttYXJnaW4tYm90dG9tOjB9Lmxpc3QtdW5zdHlsZWR7cGFkZGluZy1sZWZ0OjA7bGlzdC1zdHlsZTpub25lfS5saXN0LWlubGluZXtwYWRkaW5nLWxlZnQ6MDtsaXN0LXN0eWxlOm5vbmU7bWFyZ2luLWxlZnQ6LTVweH0ubGlzdC1pbmxpbmU+bGl7ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZy1yaWdodDo1cHg7cGFkZGluZy1sZWZ0OjVweH1kbHttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbToyM3B4fWR0LGRke2xpbmUtaGVpZ2h0OjEuODQ2fWR0e2ZvbnQtd2VpZ2h0OjcwMH1kZHttYXJnaW4tbGVmdDowfUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsuZGwtaG9yaXpvbnRhbCBkdHtmbG9hdDpsZWZ0O3dpZHRoOjE2MHB4O2NsZWFyOmxlZnQ7dGV4dC1hbGlnbjpyaWdodDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9LmRsLWhvcml6b250YWwgZGR7bWFyZ2luLWxlZnQ6MTgwcHh9fWFiYnJbdGl0bGVdLGFiYnJbZGF0YS1vcmlnaW5hbC10aXRsZV17Y3Vyc29yOmhlbHB9LmluaXRpYWxpc217Zm9udC1zaXplOjkwJTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9YmxvY2txdW90ZXtwYWRkaW5nOjExLjVweCAyM3B4O21hcmdpbjowIDAgMjNweDtmb250LXNpemU6MTYuMjVweDtib3JkZXItbGVmdDo1cHggc29saWQgI2VlZWVlZX1ibG9ja3F1b3RlIHA6bGFzdC1jaGlsZCxibG9ja3F1b3RlIHVsOmxhc3QtY2hpbGQsYmxvY2txdW90ZSBvbDpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MH1ibG9ja3F1b3RlIGZvb3RlcixibG9ja3F1b3RlIHNtYWxsLGJsb2NrcXVvdGUgLnNtYWxse2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjgwJTtsaW5lLWhlaWdodDoxLjg0Njtjb2xvcjojYmJiYmJifWJsb2NrcXVvdGUgZm9vdGVyOmJlZm9yZSxibG9ja3F1b3RlIHNtYWxsOmJlZm9yZSxibG9ja3F1b3RlIC5zbWFsbDpiZWZvcmV7Y29udGVudDoiXDIwMTQgXDAwQTAifS5ibG9ja3F1b3RlLXJldmVyc2UsYmxvY2txdW90ZS5wdWxsLXJpZ2h0e3BhZGRpbmctcmlnaHQ6MTVweDtwYWRkaW5nLWxlZnQ6MDt0ZXh0LWFsaWduOnJpZ2h0O2JvcmRlci1yaWdodDo1cHggc29saWQgI2VlZWVlZTtib3JkZXItbGVmdDowfS5ibG9ja3F1b3RlLXJldmVyc2UgZm9vdGVyOmJlZm9yZSxibG9ja3F1b3RlLnB1bGwtcmlnaHQgZm9vdGVyOmJlZm9yZSwuYmxvY2txdW90ZS1yZXZlcnNlIHNtYWxsOmJlZm9yZSxibG9ja3F1b3RlLnB1bGwtcmlnaHQgc21hbGw6YmVmb3JlLC5ibG9ja3F1b3RlLXJldmVyc2UgLnNtYWxsOmJlZm9yZSxibG9ja3F1b3RlLnB1bGwtcmlnaHQgLnNtYWxsOmJlZm9yZXtjb250ZW50OiIifS5ibG9ja3F1b3RlLXJldmVyc2UgZm9vdGVyOmFmdGVyLGJsb2NrcXVvdGUucHVsbC1yaWdodCBmb290ZXI6YWZ0ZXIsLmJsb2NrcXVvdGUtcmV2ZXJzZSBzbWFsbDphZnRlcixibG9ja3F1b3RlLnB1bGwtcmlnaHQgc21hbGw6YWZ0ZXIsLmJsb2NrcXVvdGUtcmV2ZXJzZSAuc21hbGw6YWZ0ZXIsYmxvY2txdW90ZS5wdWxsLXJpZ2h0IC5zbWFsbDphZnRlcntjb250ZW50OiJcMDBBMCBcMjAxNCJ9YWRkcmVzc3ttYXJnaW4tYm90dG9tOjIzcHg7Zm9udC1zdHlsZTpub3JtYWw7bGluZS1oZWlnaHQ6MS44NDZ9Y29kZSxrYmQscHJlLHNhbXB7Zm9udC1mYW1pbHk6TWVubG8sTW9uYWNvLENvbnNvbGFzLCJDb3VyaWVyIE5ldyIsbW9ub3NwYWNlfWNvZGV7cGFkZGluZzoycHggNHB4O2ZvbnQtc2l6ZTo5MCU7Y29sb3I6I2M3MjU0ZTtiYWNrZ3JvdW5kLWNvbG9yOiNmOWYyZjQ7Ym9yZGVyLXJhZGl1czozcHh9a2Jke3BhZGRpbmc6MnB4IDRweDtmb250LXNpemU6OTAlO2NvbG9yOiNmZmZmZmY7YmFja2dyb3VuZC1jb2xvcjojMzMzMzMzO2JvcmRlci1yYWRpdXM6M3B4O2JveC1zaGFkb3c6aW5zZXQgMCAtMXB4IDAgcmdiYSgwLDAsMCwwLjI1KX1rYmQga2Jke3BhZGRpbmc6MDtmb250LXNpemU6MTAwJTtmb250LXdlaWdodDo3MDA7Ym94LXNoYWRvdzpub25lfXByZXtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6MTFweDttYXJnaW46MCAwIDExLjVweDtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxLjg0Njtjb2xvcjojMjEyMTIxO3dvcmQtYnJlYWs6YnJlYWstYWxsO3dvcmQtd3JhcDpicmVhay13b3JkO2JhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTtib3JkZXI6MXB4IHNvbGlkICNjY2NjY2M7Ym9yZGVyLXJhZGl1czozcHh9cHJlIGNvZGV7cGFkZGluZzowO2ZvbnQtc2l6ZTppbmhlcml0O2NvbG9yOmluaGVyaXQ7d2hpdGUtc3BhY2U6cHJlLXdyYXA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjB9LnByZS1zY3JvbGxhYmxle21heC1oZWlnaHQ6MzQwcHg7b3ZlcmZsb3cteTpzY3JvbGx9LmNvbnRhaW5lcntwYWRkaW5nLXJpZ2h0OjE1cHg7cGFkZGluZy1sZWZ0OjE1cHg7bWFyZ2luLXJpZ2h0OmF1dG87bWFyZ2luLWxlZnQ6YXV0b31AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmNvbnRhaW5lcnt3aWR0aDo3NTBweH19QG1lZGlhIChtaW4td2lkdGg6OTkycHgpey5jb250YWluZXJ7d2lkdGg6OTcwcHh9fUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7LmNvbnRhaW5lcnt3aWR0aDoxMTcwcHh9fS5jb250YWluZXItZmx1aWR7cGFkZGluZy1yaWdodDoxNXB4O3BhZGRpbmctbGVmdDoxNXB4O21hcmdpbi1yaWdodDphdXRvO21hcmdpbi1sZWZ0OmF1dG99LnJvd3ttYXJnaW4tcmlnaHQ6LTE1cHg7bWFyZ2luLWxlZnQ6LTE1cHh9LnJvdy1uby1ndXR0ZXJze21hcmdpbi1yaWdodDowO21hcmdpbi1sZWZ0OjB9LnJvdy1uby1ndXR0ZXJzIFtjbGFzcyo9ImNvbC0iXXtwYWRkaW5nLXJpZ2h0OjA7cGFkZGluZy1sZWZ0OjB9LmNvbC14cy0xLC5jb2wtc20tMSwuY29sLW1kLTEsLmNvbC1sZy0xLC5jb2wteHMtMiwuY29sLXNtLTIsLmNvbC1tZC0yLC5jb2wtbGctMiwuY29sLXhzLTMsLmNvbC1zbS0zLC5jb2wtbWQtMywuY29sLWxnLTMsLmNvbC14cy00LC5jb2wtc20tNCwuY29sLW1kLTQsLmNvbC1sZy00LC5jb2wteHMtNSwuY29sLXNtLTUsLmNvbC1tZC01LC5jb2wtbGctNSwuY29sLXhzLTYsLmNvbC1zbS02LC5jb2wtbWQtNiwuY29sLWxnLTYsLmNvbC14cy03LC5jb2wtc20tNywuY29sLW1kLTcsLmNvbC1sZy03LC5jb2wteHMtOCwuY29sLXNtLTgsLmNvbC1tZC04LC5jb2wtbGctOCwuY29sLXhzLTksLmNvbC1zbS05LC5jb2wtbWQtOSwuY29sLWxnLTksLmNvbC14cy0xMCwuY29sLXNtLTEwLC5jb2wtbWQtMTAsLmNvbC1sZy0xMCwuY29sLXhzLTExLC5jb2wtc20tMTEsLmNvbC1tZC0xMSwuY29sLWxnLTExLC5jb2wteHMtMTIsLmNvbC1zbS0xMiwuY29sLW1kLTEyLC5jb2wtbGctMTJ7cG9zaXRpb246cmVsYXRpdmU7bWluLWhlaWdodDoxcHg7cGFkZGluZy1yaWdodDoxNXB4O3BhZGRpbmctbGVmdDoxNXB4fS5jb2wteHMtMSwuY29sLXhzLTIsLmNvbC14cy0zLC5jb2wteHMtNCwuY29sLXhzLTUsLmNvbC14cy02LC5jb2wteHMtNywuY29sLXhzLTgsLmNvbC14cy05LC5jb2wteHMtMTAsLmNvbC14cy0xMSwuY29sLXhzLTEye2Zsb2F0OmxlZnR9LmNvbC14cy0xMnt3aWR0aDoxMDAlfS5jb2wteHMtMTF7d2lkdGg6OTEuNjY2NjY2NjclfS5jb2wteHMtMTB7d2lkdGg6ODMuMzMzMzMzMzMlfS5jb2wteHMtOXt3aWR0aDo3NSV9LmNvbC14cy04e3dpZHRoOjY2LjY2NjY2NjY3JX0uY29sLXhzLTd7d2lkdGg6NTguMzMzMzMzMzMlfS5jb2wteHMtNnt3aWR0aDo1MCV9LmNvbC14cy01e3dpZHRoOjQxLjY2NjY2NjY3JX0uY29sLXhzLTR7d2lkdGg6MzMuMzMzMzMzMzMlfS5jb2wteHMtM3t3aWR0aDoyNSV9LmNvbC14cy0ye3dpZHRoOjE2LjY2NjY2NjY3JX0uY29sLXhzLTF7d2lkdGg6OC4zMzMzMzMzMyV9LmNvbC14cy1wdWxsLTEye3JpZ2h0OjEwMCV9LmNvbC14cy1wdWxsLTExe3JpZ2h0OjkxLjY2NjY2NjY3JX0uY29sLXhzLXB1bGwtMTB7cmlnaHQ6ODMuMzMzMzMzMzMlfS5jb2wteHMtcHVsbC05e3JpZ2h0Ojc1JX0uY29sLXhzLXB1bGwtOHtyaWdodDo2Ni42NjY2NjY2NyV9LmNvbC14cy1wdWxsLTd7cmlnaHQ6NTguMzMzMzMzMzMlfS5jb2wteHMtcHVsbC02e3JpZ2h0OjUwJX0uY29sLXhzLXB1bGwtNXtyaWdodDo0MS42NjY2NjY2NyV9LmNvbC14cy1wdWxsLTR7cmlnaHQ6MzMuMzMzMzMzMzMlfS5jb2wteHMtcHVsbC0ze3JpZ2h0OjI1JX0uY29sLXhzLXB1bGwtMntyaWdodDoxNi42NjY2NjY2NyV9LmNvbC14cy1wdWxsLTF7cmlnaHQ6OC4zMzMzMzMzMyV9LmNvbC14cy1wdWxsLTB7cmlnaHQ6YXV0b30uY29sLXhzLXB1c2gtMTJ7bGVmdDoxMDAlfS5jb2wteHMtcHVzaC0xMXtsZWZ0OjkxLjY2NjY2NjY3JX0uY29sLXhzLXB1c2gtMTB7bGVmdDo4My4zMzMzMzMzMyV9LmNvbC14cy1wdXNoLTl7bGVmdDo3NSV9LmNvbC14cy1wdXNoLTh7bGVmdDo2Ni42NjY2NjY2NyV9LmNvbC14cy1wdXNoLTd7bGVmdDo1OC4zMzMzMzMzMyV9LmNvbC14cy1wdXNoLTZ7bGVmdDo1MCV9LmNvbC14cy1wdXNoLTV7bGVmdDo0MS42NjY2NjY2NyV9LmNvbC14cy1wdXNoLTR7bGVmdDozMy4zMzMzMzMzMyV9LmNvbC14cy1wdXNoLTN7bGVmdDoyNSV9LmNvbC14cy1wdXNoLTJ7bGVmdDoxNi42NjY2NjY2NyV9LmNvbC14cy1wdXNoLTF7bGVmdDo4LjMzMzMzMzMzJX0uY29sLXhzLXB1c2gtMHtsZWZ0OmF1dG99LmNvbC14cy1vZmZzZXQtMTJ7bWFyZ2luLWxlZnQ6MTAwJX0uY29sLXhzLW9mZnNldC0xMXttYXJnaW4tbGVmdDo5MS42NjY2NjY2NyV9LmNvbC14cy1vZmZzZXQtMTB7bWFyZ2luLWxlZnQ6ODMuMzMzMzMzMzMlfS5jb2wteHMtb2Zmc2V0LTl7bWFyZ2luLWxlZnQ6NzUlfS5jb2wteHMtb2Zmc2V0LTh7bWFyZ2luLWxlZnQ6NjYuNjY2NjY2NjclfS5jb2wteHMtb2Zmc2V0LTd7bWFyZ2luLWxlZnQ6NTguMzMzMzMzMzMlfS5jb2wteHMtb2Zmc2V0LTZ7bWFyZ2luLWxlZnQ6NTAlfS5jb2wteHMtb2Zmc2V0LTV7bWFyZ2luLWxlZnQ6NDEuNjY2NjY2NjclfS5jb2wteHMtb2Zmc2V0LTR7bWFyZ2luLWxlZnQ6MzMuMzMzMzMzMzMlfS5jb2wteHMtb2Zmc2V0LTN7bWFyZ2luLWxlZnQ6MjUlfS5jb2wteHMtb2Zmc2V0LTJ7bWFyZ2luLWxlZnQ6MTYuNjY2NjY2NjclfS5jb2wteHMtb2Zmc2V0LTF7bWFyZ2luLWxlZnQ6OC4zMzMzMzMzMyV9LmNvbC14cy1vZmZzZXQtMHttYXJnaW4tbGVmdDowJX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmNvbC1zbS0xLC5jb2wtc20tMiwuY29sLXNtLTMsLmNvbC1zbS00LC5jb2wtc20tNSwuY29sLXNtLTYsLmNvbC1zbS03LC5jb2wtc20tOCwuY29sLXNtLTksLmNvbC1zbS0xMCwuY29sLXNtLTExLC5jb2wtc20tMTJ7ZmxvYXQ6bGVmdH0uY29sLXNtLTEye3dpZHRoOjEwMCV9LmNvbC1zbS0xMXt3aWR0aDo5MS42NjY2NjY2NyV9LmNvbC1zbS0xMHt3aWR0aDo4My4zMzMzMzMzMyV9LmNvbC1zbS05e3dpZHRoOjc1JX0uY29sLXNtLTh7d2lkdGg6NjYuNjY2NjY2NjclfS5jb2wtc20tN3t3aWR0aDo1OC4zMzMzMzMzMyV9LmNvbC1zbS02e3dpZHRoOjUwJX0uY29sLXNtLTV7d2lkdGg6NDEuNjY2NjY2NjclfS5jb2wtc20tNHt3aWR0aDozMy4zMzMzMzMzMyV9LmNvbC1zbS0ze3dpZHRoOjI1JX0uY29sLXNtLTJ7d2lkdGg6MTYuNjY2NjY2NjclfS5jb2wtc20tMXt3aWR0aDo4LjMzMzMzMzMzJX0uY29sLXNtLXB1bGwtMTJ7cmlnaHQ6MTAwJX0uY29sLXNtLXB1bGwtMTF7cmlnaHQ6OTEuNjY2NjY2NjclfS5jb2wtc20tcHVsbC0xMHtyaWdodDo4My4zMzMzMzMzMyV9LmNvbC1zbS1wdWxsLTl7cmlnaHQ6NzUlfS5jb2wtc20tcHVsbC04e3JpZ2h0OjY2LjY2NjY2NjY3JX0uY29sLXNtLXB1bGwtN3tyaWdodDo1OC4zMzMzMzMzMyV9LmNvbC1zbS1wdWxsLTZ7cmlnaHQ6NTAlfS5jb2wtc20tcHVsbC01e3JpZ2h0OjQxLjY2NjY2NjY3JX0uY29sLXNtLXB1bGwtNHtyaWdodDozMy4zMzMzMzMzMyV9LmNvbC1zbS1wdWxsLTN7cmlnaHQ6MjUlfS5jb2wtc20tcHVsbC0ye3JpZ2h0OjE2LjY2NjY2NjY3JX0uY29sLXNtLXB1bGwtMXtyaWdodDo4LjMzMzMzMzMzJX0uY29sLXNtLXB1bGwtMHtyaWdodDphdXRvfS5jb2wtc20tcHVzaC0xMntsZWZ0OjEwMCV9LmNvbC1zbS1wdXNoLTExe2xlZnQ6OTEuNjY2NjY2NjclfS5jb2wtc20tcHVzaC0xMHtsZWZ0OjgzLjMzMzMzMzMzJX0uY29sLXNtLXB1c2gtOXtsZWZ0Ojc1JX0uY29sLXNtLXB1c2gtOHtsZWZ0OjY2LjY2NjY2NjY3JX0uY29sLXNtLXB1c2gtN3tsZWZ0OjU4LjMzMzMzMzMzJX0uY29sLXNtLXB1c2gtNntsZWZ0OjUwJX0uY29sLXNtLXB1c2gtNXtsZWZ0OjQxLjY2NjY2NjY3JX0uY29sLXNtLXB1c2gtNHtsZWZ0OjMzLjMzMzMzMzMzJX0uY29sLXNtLXB1c2gtM3tsZWZ0OjI1JX0uY29sLXNtLXB1c2gtMntsZWZ0OjE2LjY2NjY2NjY3JX0uY29sLXNtLXB1c2gtMXtsZWZ0OjguMzMzMzMzMzMlfS5jb2wtc20tcHVzaC0we2xlZnQ6YXV0b30uY29sLXNtLW9mZnNldC0xMnttYXJnaW4tbGVmdDoxMDAlfS5jb2wtc20tb2Zmc2V0LTExe21hcmdpbi1sZWZ0OjkxLjY2NjY2NjY3JX0uY29sLXNtLW9mZnNldC0xMHttYXJnaW4tbGVmdDo4My4zMzMzMzMzMyV9LmNvbC1zbS1vZmZzZXQtOXttYXJnaW4tbGVmdDo3NSV9LmNvbC1zbS1vZmZzZXQtOHttYXJnaW4tbGVmdDo2Ni42NjY2NjY2NyV9LmNvbC1zbS1vZmZzZXQtN3ttYXJnaW4tbGVmdDo1OC4zMzMzMzMzMyV9LmNvbC1zbS1vZmZzZXQtNnttYXJnaW4tbGVmdDo1MCV9LmNvbC1zbS1vZmZzZXQtNXttYXJnaW4tbGVmdDo0MS42NjY2NjY2NyV9LmNvbC1zbS1vZmZzZXQtNHttYXJnaW4tbGVmdDozMy4zMzMzMzMzMyV9LmNvbC1zbS1vZmZzZXQtM3ttYXJnaW4tbGVmdDoyNSV9LmNvbC1zbS1vZmZzZXQtMnttYXJnaW4tbGVmdDoxNi42NjY2NjY2NyV9LmNvbC1zbS1vZmZzZXQtMXttYXJnaW4tbGVmdDo4LjMzMzMzMzMzJX0uY29sLXNtLW9mZnNldC0we21hcmdpbi1sZWZ0OjAlfX1AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7LmNvbC1tZC0xLC5jb2wtbWQtMiwuY29sLW1kLTMsLmNvbC1tZC00LC5jb2wtbWQtNSwuY29sLW1kLTYsLmNvbC1tZC03LC5jb2wtbWQtOCwuY29sLW1kLTksLmNvbC1tZC0xMCwuY29sLW1kLTExLC5jb2wtbWQtMTJ7ZmxvYXQ6bGVmdH0uY29sLW1kLTEye3dpZHRoOjEwMCV9LmNvbC1tZC0xMXt3aWR0aDo5MS42NjY2NjY2NyV9LmNvbC1tZC0xMHt3aWR0aDo4My4zMzMzMzMzMyV9LmNvbC1tZC05e3dpZHRoOjc1JX0uY29sLW1kLTh7d2lkdGg6NjYuNjY2NjY2NjclfS5jb2wtbWQtN3t3aWR0aDo1OC4zMzMzMzMzMyV9LmNvbC1tZC02e3dpZHRoOjUwJX0uY29sLW1kLTV7d2lkdGg6NDEuNjY2NjY2NjclfS5jb2wtbWQtNHt3aWR0aDozMy4zMzMzMzMzMyV9LmNvbC1tZC0ze3dpZHRoOjI1JX0uY29sLW1kLTJ7d2lkdGg6MTYuNjY2NjY2NjclfS5jb2wtbWQtMXt3aWR0aDo4LjMzMzMzMzMzJX0uY29sLW1kLXB1bGwtMTJ7cmlnaHQ6MTAwJX0uY29sLW1kLXB1bGwtMTF7cmlnaHQ6OTEuNjY2NjY2NjclfS5jb2wtbWQtcHVsbC0xMHtyaWdodDo4My4zMzMzMzMzMyV9LmNvbC1tZC1wdWxsLTl7cmlnaHQ6NzUlfS5jb2wtbWQtcHVsbC04e3JpZ2h0OjY2LjY2NjY2NjY3JX0uY29sLW1kLXB1bGwtN3tyaWdodDo1OC4zMzMzMzMzMyV9LmNvbC1tZC1wdWxsLTZ7cmlnaHQ6NTAlfS5jb2wtbWQtcHVsbC01e3JpZ2h0OjQxLjY2NjY2NjY3JX0uY29sLW1kLXB1bGwtNHtyaWdodDozMy4zMzMzMzMzMyV9LmNvbC1tZC1wdWxsLTN7cmlnaHQ6MjUlfS5jb2wtbWQtcHVsbC0ye3JpZ2h0OjE2LjY2NjY2NjY3JX0uY29sLW1kLXB1bGwtMXtyaWdodDo4LjMzMzMzMzMzJX0uY29sLW1kLXB1bGwtMHtyaWdodDphdXRvfS5jb2wtbWQtcHVzaC0xMntsZWZ0OjEwMCV9LmNvbC1tZC1wdXNoLTExe2xlZnQ6OTEuNjY2NjY2NjclfS5jb2wtbWQtcHVzaC0xMHtsZWZ0OjgzLjMzMzMzMzMzJX0uY29sLW1kLXB1c2gtOXtsZWZ0Ojc1JX0uY29sLW1kLXB1c2gtOHtsZWZ0OjY2LjY2NjY2NjY3JX0uY29sLW1kLXB1c2gtN3tsZWZ0OjU4LjMzMzMzMzMzJX0uY29sLW1kLXB1c2gtNntsZWZ0OjUwJX0uY29sLW1kLXB1c2gtNXtsZWZ0OjQxLjY2NjY2NjY3JX0uY29sLW1kLXB1c2gtNHtsZWZ0OjMzLjMzMzMzMzMzJX0uY29sLW1kLXB1c2gtM3tsZWZ0OjI1JX0uY29sLW1kLXB1c2gtMntsZWZ0OjE2LjY2NjY2NjY3JX0uY29sLW1kLXB1c2gtMXtsZWZ0OjguMzMzMzMzMzMlfS5jb2wtbWQtcHVzaC0we2xlZnQ6YXV0b30uY29sLW1kLW9mZnNldC0xMnttYXJnaW4tbGVmdDoxMDAlfS5jb2wtbWQtb2Zmc2V0LTExe21hcmdpbi1sZWZ0OjkxLjY2NjY2NjY3JX0uY29sLW1kLW9mZnNldC0xMHttYXJnaW4tbGVmdDo4My4zMzMzMzMzMyV9LmNvbC1tZC1vZmZzZXQtOXttYXJnaW4tbGVmdDo3NSV9LmNvbC1tZC1vZmZzZXQtOHttYXJnaW4tbGVmdDo2Ni42NjY2NjY2NyV9LmNvbC1tZC1vZmZzZXQtN3ttYXJnaW4tbGVmdDo1OC4zMzMzMzMzMyV9LmNvbC1tZC1vZmZzZXQtNnttYXJnaW4tbGVmdDo1MCV9LmNvbC1tZC1vZmZzZXQtNXttYXJnaW4tbGVmdDo0MS42NjY2NjY2NyV9LmNvbC1tZC1vZmZzZXQtNHttYXJnaW4tbGVmdDozMy4zMzMzMzMzMyV9LmNvbC1tZC1vZmZzZXQtM3ttYXJnaW4tbGVmdDoyNSV9LmNvbC1tZC1vZmZzZXQtMnttYXJnaW4tbGVmdDoxNi42NjY2NjY2NyV9LmNvbC1tZC1vZmZzZXQtMXttYXJnaW4tbGVmdDo4LjMzMzMzMzMzJX0uY29sLW1kLW9mZnNldC0we21hcmdpbi1sZWZ0OjAlfX1AbWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpey5jb2wtbGctMSwuY29sLWxnLTIsLmNvbC1sZy0zLC5jb2wtbGctNCwuY29sLWxnLTUsLmNvbC1sZy02LC5jb2wtbGctNywuY29sLWxnLTgsLmNvbC1sZy05LC5jb2wtbGctMTAsLmNvbC1sZy0xMSwuY29sLWxnLTEye2Zsb2F0OmxlZnR9LmNvbC1sZy0xMnt3aWR0aDoxMDAlfS5jb2wtbGctMTF7d2lkdGg6OTEuNjY2NjY2NjclfS5jb2wtbGctMTB7d2lkdGg6ODMuMzMzMzMzMzMlfS5jb2wtbGctOXt3aWR0aDo3NSV9LmNvbC1sZy04e3dpZHRoOjY2LjY2NjY2NjY3JX0uY29sLWxnLTd7d2lkdGg6NTguMzMzMzMzMzMlfS5jb2wtbGctNnt3aWR0aDo1MCV9LmNvbC1sZy01e3dpZHRoOjQxLjY2NjY2NjY3JX0uY29sLWxnLTR7d2lkdGg6MzMuMzMzMzMzMzMlfS5jb2wtbGctM3t3aWR0aDoyNSV9LmNvbC1sZy0ye3dpZHRoOjE2LjY2NjY2NjY3JX0uY29sLWxnLTF7d2lkdGg6OC4zMzMzMzMzMyV9LmNvbC1sZy1wdWxsLTEye3JpZ2h0OjEwMCV9LmNvbC1sZy1wdWxsLTExe3JpZ2h0OjkxLjY2NjY2NjY3JX0uY29sLWxnLXB1bGwtMTB7cmlnaHQ6ODMuMzMzMzMzMzMlfS5jb2wtbGctcHVsbC05e3JpZ2h0Ojc1JX0uY29sLWxnLXB1bGwtOHtyaWdodDo2Ni42NjY2NjY2NyV9LmNvbC1sZy1wdWxsLTd7cmlnaHQ6NTguMzMzMzMzMzMlfS5jb2wtbGctcHVsbC02e3JpZ2h0OjUwJX0uY29sLWxnLXB1bGwtNXtyaWdodDo0MS42NjY2NjY2NyV9LmNvbC1sZy1wdWxsLTR7cmlnaHQ6MzMuMzMzMzMzMzMlfS5jb2wtbGctcHVsbC0ze3JpZ2h0OjI1JX0uY29sLWxnLXB1bGwtMntyaWdodDoxNi42NjY2NjY2NyV9LmNvbC1sZy1wdWxsLTF7cmlnaHQ6OC4zMzMzMzMzMyV9LmNvbC1sZy1wdWxsLTB7cmlnaHQ6YXV0b30uY29sLWxnLXB1c2gtMTJ7bGVmdDoxMDAlfS5jb2wtbGctcHVzaC0xMXtsZWZ0OjkxLjY2NjY2NjY3JX0uY29sLWxnLXB1c2gtMTB7bGVmdDo4My4zMzMzMzMzMyV9LmNvbC1sZy1wdXNoLTl7bGVmdDo3NSV9LmNvbC1sZy1wdXNoLTh7bGVmdDo2Ni42NjY2NjY2NyV9LmNvbC1sZy1wdXNoLTd7bGVmdDo1OC4zMzMzMzMzMyV9LmNvbC1sZy1wdXNoLTZ7bGVmdDo1MCV9LmNvbC1sZy1wdXNoLTV7bGVmdDo0MS42NjY2NjY2NyV9LmNvbC1sZy1wdXNoLTR7bGVmdDozMy4zMzMzMzMzMyV9LmNvbC1sZy1wdXNoLTN7bGVmdDoyNSV9LmNvbC1sZy1wdXNoLTJ7bGVmdDoxNi42NjY2NjY2NyV9LmNvbC1sZy1wdXNoLTF7bGVmdDo4LjMzMzMzMzMzJX0uY29sLWxnLXB1c2gtMHtsZWZ0OmF1dG99LmNvbC1sZy1vZmZzZXQtMTJ7bWFyZ2luLWxlZnQ6MTAwJX0uY29sLWxnLW9mZnNldC0xMXttYXJnaW4tbGVmdDo5MS42NjY2NjY2NyV9LmNvbC1sZy1vZmZzZXQtMTB7bWFyZ2luLWxlZnQ6ODMuMzMzMzMzMzMlfS5jb2wtbGctb2Zmc2V0LTl7bWFyZ2luLWxlZnQ6NzUlfS5jb2wtbGctb2Zmc2V0LTh7bWFyZ2luLWxlZnQ6NjYuNjY2NjY2NjclfS5jb2wtbGctb2Zmc2V0LTd7bWFyZ2luLWxlZnQ6NTguMzMzMzMzMzMlfS5jb2wtbGctb2Zmc2V0LTZ7bWFyZ2luLWxlZnQ6NTAlfS5jb2wtbGctb2Zmc2V0LTV7bWFyZ2luLWxlZnQ6NDEuNjY2NjY2NjclfS5jb2wtbGctb2Zmc2V0LTR7bWFyZ2luLWxlZnQ6MzMuMzMzMzMzMzMlfS5jb2wtbGctb2Zmc2V0LTN7bWFyZ2luLWxlZnQ6MjUlfS5jb2wtbGctb2Zmc2V0LTJ7bWFyZ2luLWxlZnQ6MTYuNjY2NjY2NjclfS5jb2wtbGctb2Zmc2V0LTF7bWFyZ2luLWxlZnQ6OC4zMzMzMzMzMyV9LmNvbC1sZy1vZmZzZXQtMHttYXJnaW4tbGVmdDowJX19dGFibGV7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH10YWJsZSBjb2xbY2xhc3MqPSJjb2wtIl17cG9zaXRpb246c3RhdGljO2Rpc3BsYXk6dGFibGUtY29sdW1uO2Zsb2F0Om5vbmV9dGFibGUgdGRbY2xhc3MqPSJjb2wtIl0sdGFibGUgdGhbY2xhc3MqPSJjb2wtIl17cG9zaXRpb246c3RhdGljO2Rpc3BsYXk6dGFibGUtY2VsbDtmbG9hdDpub25lfWNhcHRpb257cGFkZGluZy10b3A6OHB4O3BhZGRpbmctYm90dG9tOjhweDtjb2xvcjojYmJiYmJiO3RleHQtYWxpZ246bGVmdH10aHt0ZXh0LWFsaWduOmxlZnR9LnRhYmxle3dpZHRoOjEwMCU7bWF4LXdpZHRoOjEwMCU7bWFyZ2luLWJvdHRvbToyM3B4fS50YWJsZT50aGVhZD50cj50aCwudGFibGU+dGJvZHk+dHI+dGgsLnRhYmxlPnRmb290PnRyPnRoLC50YWJsZT50aGVhZD50cj50ZCwudGFibGU+dGJvZHk+dHI+dGQsLnRhYmxlPnRmb290PnRyPnRke3BhZGRpbmc6OHB4O2xpbmUtaGVpZ2h0OjEuODQ2O3ZlcnRpY2FsLWFsaWduOnRvcDtib3JkZXItdG9wOjFweCBzb2xpZCAjZGRkZGRkfS50YWJsZT50aGVhZD50cj50aHt2ZXJ0aWNhbC1hbGlnbjpib3R0b207Ym9yZGVyLWJvdHRvbToycHggc29saWQgI2RkZGRkZH0udGFibGU+Y2FwdGlvbit0aGVhZD50cjpmaXJzdC1jaGlsZD50aCwudGFibGU+Y29sZ3JvdXArdGhlYWQ+dHI6Zmlyc3QtY2hpbGQ+dGgsLnRhYmxlPnRoZWFkOmZpcnN0LWNoaWxkPnRyOmZpcnN0LWNoaWxkPnRoLC50YWJsZT5jYXB0aW9uK3RoZWFkPnRyOmZpcnN0LWNoaWxkPnRkLC50YWJsZT5jb2xncm91cCt0aGVhZD50cjpmaXJzdC1jaGlsZD50ZCwudGFibGU+dGhlYWQ6Zmlyc3QtY2hpbGQ+dHI6Zmlyc3QtY2hpbGQ+dGR7Ym9yZGVyLXRvcDowfS50YWJsZT50Ym9keSt0Ym9keXtib3JkZXItdG9wOjJweCBzb2xpZCAjZGRkZGRkfS50YWJsZSAudGFibGV7YmFja2dyb3VuZC1jb2xvcjojZmZmZmZmfS50YWJsZS1jb25kZW5zZWQ+dGhlYWQ+dHI+dGgsLnRhYmxlLWNvbmRlbnNlZD50Ym9keT50cj50aCwudGFibGUtY29uZGVuc2VkPnRmb290PnRyPnRoLC50YWJsZS1jb25kZW5zZWQ+dGhlYWQ+dHI+dGQsLnRhYmxlLWNvbmRlbnNlZD50Ym9keT50cj50ZCwudGFibGUtY29uZGVuc2VkPnRmb290PnRyPnRke3BhZGRpbmc6NXB4fS50YWJsZS1ib3JkZXJlZHtib3JkZXI6MXB4IHNvbGlkICNkZGRkZGR9LnRhYmxlLWJvcmRlcmVkPnRoZWFkPnRyPnRoLC50YWJsZS1ib3JkZXJlZD50Ym9keT50cj50aCwudGFibGUtYm9yZGVyZWQ+dGZvb3Q+dHI+dGgsLnRhYmxlLWJvcmRlcmVkPnRoZWFkPnRyPnRkLC50YWJsZS1ib3JkZXJlZD50Ym9keT50cj50ZCwudGFibGUtYm9yZGVyZWQ+dGZvb3Q+dHI+dGR7Ym9yZGVyOjFweCBzb2xpZCAjZGRkZGRkfS50YWJsZS1ib3JkZXJlZD50aGVhZD50cj50aCwudGFibGUtYm9yZGVyZWQ+dGhlYWQ+dHI+dGR7Ym9yZGVyLWJvdHRvbS13aWR0aDoycHh9LnRhYmxlLXN0cmlwZWQ+dGJvZHk+dHI6bnRoLW9mLXR5cGUob2RkKXtiYWNrZ3JvdW5kLWNvbG9yOiNmOWY5Zjl9LnRhYmxlLWhvdmVyPnRib2R5PnRyOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2Y1ZjVmNX0udGFibGU+dGhlYWQ+dHI+dGQuYWN0aXZlLC50YWJsZT50Ym9keT50cj50ZC5hY3RpdmUsLnRhYmxlPnRmb290PnRyPnRkLmFjdGl2ZSwudGFibGU+dGhlYWQ+dHI+dGguYWN0aXZlLC50YWJsZT50Ym9keT50cj50aC5hY3RpdmUsLnRhYmxlPnRmb290PnRyPnRoLmFjdGl2ZSwudGFibGU+dGhlYWQ+dHIuYWN0aXZlPnRkLC50YWJsZT50Ym9keT50ci5hY3RpdmU+dGQsLnRhYmxlPnRmb290PnRyLmFjdGl2ZT50ZCwudGFibGU+dGhlYWQ+dHIuYWN0aXZlPnRoLC50YWJsZT50Ym9keT50ci5hY3RpdmU+dGgsLnRhYmxlPnRmb290PnRyLmFjdGl2ZT50aHtiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjV9LnRhYmxlLWhvdmVyPnRib2R5PnRyPnRkLmFjdGl2ZTpob3ZlciwudGFibGUtaG92ZXI+dGJvZHk+dHI+dGguYWN0aXZlOmhvdmVyLC50YWJsZS1ob3Zlcj50Ym9keT50ci5hY3RpdmU6aG92ZXI+dGQsLnRhYmxlLWhvdmVyPnRib2R5PnRyOmhvdmVyPi5hY3RpdmUsLnRhYmxlLWhvdmVyPnRib2R5PnRyLmFjdGl2ZTpob3Zlcj50aHtiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTh9LnRhYmxlPnRoZWFkPnRyPnRkLnN1Y2Nlc3MsLnRhYmxlPnRib2R5PnRyPnRkLnN1Y2Nlc3MsLnRhYmxlPnRmb290PnRyPnRkLnN1Y2Nlc3MsLnRhYmxlPnRoZWFkPnRyPnRoLnN1Y2Nlc3MsLnRhYmxlPnRib2R5PnRyPnRoLnN1Y2Nlc3MsLnRhYmxlPnRmb290PnRyPnRoLnN1Y2Nlc3MsLnRhYmxlPnRoZWFkPnRyLnN1Y2Nlc3M+dGQsLnRhYmxlPnRib2R5PnRyLnN1Y2Nlc3M+dGQsLnRhYmxlPnRmb290PnRyLnN1Y2Nlc3M+dGQsLnRhYmxlPnRoZWFkPnRyLnN1Y2Nlc3M+dGgsLnRhYmxlPnRib2R5PnRyLnN1Y2Nlc3M+dGgsLnRhYmxlPnRmb290PnRyLnN1Y2Nlc3M+dGh7YmFja2dyb3VuZC1jb2xvcjojZGZmMGQ4fS50YWJsZS1ob3Zlcj50Ym9keT50cj50ZC5zdWNjZXNzOmhvdmVyLC50YWJsZS1ob3Zlcj50Ym9keT50cj50aC5zdWNjZXNzOmhvdmVyLC50YWJsZS1ob3Zlcj50Ym9keT50ci5zdWNjZXNzOmhvdmVyPnRkLC50YWJsZS1ob3Zlcj50Ym9keT50cjpob3Zlcj4uc3VjY2VzcywudGFibGUtaG92ZXI+dGJvZHk+dHIuc3VjY2Vzczpob3Zlcj50aHtiYWNrZ3JvdW5kLWNvbG9yOiNkMGU5YzZ9LnRhYmxlPnRoZWFkPnRyPnRkLmluZm8sLnRhYmxlPnRib2R5PnRyPnRkLmluZm8sLnRhYmxlPnRmb290PnRyPnRkLmluZm8sLnRhYmxlPnRoZWFkPnRyPnRoLmluZm8sLnRhYmxlPnRib2R5PnRyPnRoLmluZm8sLnRhYmxlPnRmb290PnRyPnRoLmluZm8sLnRhYmxlPnRoZWFkPnRyLmluZm8+dGQsLnRhYmxlPnRib2R5PnRyLmluZm8+dGQsLnRhYmxlPnRmb290PnRyLmluZm8+dGQsLnRhYmxlPnRoZWFkPnRyLmluZm8+dGgsLnRhYmxlPnRib2R5PnRyLmluZm8+dGgsLnRhYmxlPnRmb290PnRyLmluZm8+dGh7YmFja2dyb3VuZC1jb2xvcjojZTFiZWU3fS50YWJsZS1ob3Zlcj50Ym9keT50cj50ZC5pbmZvOmhvdmVyLC50YWJsZS1ob3Zlcj50Ym9keT50cj50aC5pbmZvOmhvdmVyLC50YWJsZS1ob3Zlcj50Ym9keT50ci5pbmZvOmhvdmVyPnRkLC50YWJsZS1ob3Zlcj50Ym9keT50cjpob3Zlcj4uaW5mbywudGFibGUtaG92ZXI+dGJvZHk+dHIuaW5mbzpob3Zlcj50aHtiYWNrZ3JvdW5kLWNvbG9yOiNkOGFiZTB9LnRhYmxlPnRoZWFkPnRyPnRkLndhcm5pbmcsLnRhYmxlPnRib2R5PnRyPnRkLndhcm5pbmcsLnRhYmxlPnRmb290PnRyPnRkLndhcm5pbmcsLnRhYmxlPnRoZWFkPnRyPnRoLndhcm5pbmcsLnRhYmxlPnRib2R5PnRyPnRoLndhcm5pbmcsLnRhYmxlPnRmb290PnRyPnRoLndhcm5pbmcsLnRhYmxlPnRoZWFkPnRyLndhcm5pbmc+dGQsLnRhYmxlPnRib2R5PnRyLndhcm5pbmc+dGQsLnRhYmxlPnRmb290PnRyLndhcm5pbmc+dGQsLnRhYmxlPnRoZWFkPnRyLndhcm5pbmc+dGgsLnRhYmxlPnRib2R5PnRyLndhcm5pbmc+dGgsLnRhYmxlPnRmb290PnRyLndhcm5pbmc+dGh7YmFja2dyb3VuZC1jb2xvcjojZmZlMGIyfS50YWJsZS1ob3Zlcj50Ym9keT50cj50ZC53YXJuaW5nOmhvdmVyLC50YWJsZS1ob3Zlcj50Ym9keT50cj50aC53YXJuaW5nOmhvdmVyLC50YWJsZS1ob3Zlcj50Ym9keT50ci53YXJuaW5nOmhvdmVyPnRkLC50YWJsZS1ob3Zlcj50Ym9keT50cjpob3Zlcj4ud2FybmluZywudGFibGUtaG92ZXI+dGJvZHk+dHIud2FybmluZzpob3Zlcj50aHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmQ2OTl9LnRhYmxlPnRoZWFkPnRyPnRkLmRhbmdlciwudGFibGU+dGJvZHk+dHI+dGQuZGFuZ2VyLC50YWJsZT50Zm9vdD50cj50ZC5kYW5nZXIsLnRhYmxlPnRoZWFkPnRyPnRoLmRhbmdlciwudGFibGU+dGJvZHk+dHI+dGguZGFuZ2VyLC50YWJsZT50Zm9vdD50cj50aC5kYW5nZXIsLnRhYmxlPnRoZWFkPnRyLmRhbmdlcj50ZCwudGFibGU+dGJvZHk+dHIuZGFuZ2VyPnRkLC50YWJsZT50Zm9vdD50ci5kYW5nZXI+dGQsLnRhYmxlPnRoZWFkPnRyLmRhbmdlcj50aCwudGFibGU+dGJvZHk+dHIuZGFuZ2VyPnRoLC50YWJsZT50Zm9vdD50ci5kYW5nZXI+dGh7YmFja2dyb3VuZC1jb2xvcjojZjliZGJifS50YWJsZS1ob3Zlcj50Ym9keT50cj50ZC5kYW5nZXI6aG92ZXIsLnRhYmxlLWhvdmVyPnRib2R5PnRyPnRoLmRhbmdlcjpob3ZlciwudGFibGUtaG92ZXI+dGJvZHk+dHIuZGFuZ2VyOmhvdmVyPnRkLC50YWJsZS1ob3Zlcj50Ym9keT50cjpob3Zlcj4uZGFuZ2VyLC50YWJsZS1ob3Zlcj50Ym9keT50ci5kYW5nZXI6aG92ZXI+dGh7YmFja2dyb3VuZC1jb2xvcjojZjdhNmE0fS50YWJsZS1yZXNwb25zaXZle21pbi1oZWlnaHQ6LjAxJTtvdmVyZmxvdy14OmF1dG99QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo3NjdweCl7LnRhYmxlLXJlc3BvbnNpdmV7d2lkdGg6MTAwJTttYXJnaW4tYm90dG9tOjE3LjI1cHg7b3ZlcmZsb3cteTpoaWRkZW47LW1zLW92ZXJmbG93LXN0eWxlOi1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcjtib3JkZXI6MXB4IHNvbGlkICNkZGRkZGR9LnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxle21hcmdpbi1ib3R0b206MH0udGFibGUtcmVzcG9uc2l2ZT4udGFibGU+dGhlYWQ+dHI+dGgsLnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlPnRib2R5PnRyPnRoLC50YWJsZS1yZXNwb25zaXZlPi50YWJsZT50Zm9vdD50cj50aCwudGFibGUtcmVzcG9uc2l2ZT4udGFibGU+dGhlYWQ+dHI+dGQsLnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlPnRib2R5PnRyPnRkLC50YWJsZS1yZXNwb25zaXZlPi50YWJsZT50Zm9vdD50cj50ZHt3aGl0ZS1zcGFjZTpub3dyYXB9LnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVke2JvcmRlcjowfS50YWJsZS1yZXNwb25zaXZlPi50YWJsZS1ib3JkZXJlZD50aGVhZD50cj50aDpmaXJzdC1jaGlsZCwudGFibGUtcmVzcG9uc2l2ZT4udGFibGUtYm9yZGVyZWQ+dGJvZHk+dHI+dGg6Zmlyc3QtY2hpbGQsLnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRmb290PnRyPnRoOmZpcnN0LWNoaWxkLC50YWJsZS1yZXNwb25zaXZlPi50YWJsZS1ib3JkZXJlZD50aGVhZD50cj50ZDpmaXJzdC1jaGlsZCwudGFibGUtcmVzcG9uc2l2ZT4udGFibGUtYm9yZGVyZWQ+dGJvZHk+dHI+dGQ6Zmlyc3QtY2hpbGQsLnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRmb290PnRyPnRkOmZpcnN0LWNoaWxke2JvcmRlci1sZWZ0OjB9LnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRoZWFkPnRyPnRoOmxhc3QtY2hpbGQsLnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRib2R5PnRyPnRoOmxhc3QtY2hpbGQsLnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRmb290PnRyPnRoOmxhc3QtY2hpbGQsLnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRoZWFkPnRyPnRkOmxhc3QtY2hpbGQsLnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRib2R5PnRyPnRkOmxhc3QtY2hpbGQsLnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRmb290PnRyPnRkOmxhc3QtY2hpbGR7Ym9yZGVyLXJpZ2h0OjB9LnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRib2R5PnRyOmxhc3QtY2hpbGQ+dGgsLnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRmb290PnRyOmxhc3QtY2hpbGQ+dGgsLnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRib2R5PnRyOmxhc3QtY2hpbGQ+dGQsLnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRmb290PnRyOmxhc3QtY2hpbGQ+dGR7Ym9yZGVyLWJvdHRvbTowfX1maWVsZHNldHttaW4td2lkdGg6MDtwYWRkaW5nOjA7bWFyZ2luOjA7Ym9yZGVyOjB9bGVnZW5ke2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtwYWRkaW5nOjA7bWFyZ2luLWJvdHRvbToyM3B4O2ZvbnQtc2l6ZToxOS41cHg7bGluZS1oZWlnaHQ6aW5oZXJpdDtjb2xvcjojMjEyMTIxO2JvcmRlcjowO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlNWU1ZTV9bGFiZWx7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWF4LXdpZHRoOjEwMCU7bWFyZ2luLWJvdHRvbTo1cHg7Zm9udC13ZWlnaHQ6NzAwfWlucHV0W3R5cGU9InNlYXJjaCJde2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmV9aW5wdXRbdHlwZT0icmFkaW8iXSxpbnB1dFt0eXBlPSJjaGVja2JveCJde21hcmdpbjo0cHggMCAwO21hcmdpbi10b3A6MXB4IFw5O2xpbmUtaGVpZ2h0Om5vcm1hbH1pbnB1dFt0eXBlPSJyYWRpbyJdW2Rpc2FibGVkXSxpbnB1dFt0eXBlPSJjaGVja2JveCJdW2Rpc2FibGVkXSxpbnB1dFt0eXBlPSJyYWRpbyJdLmRpc2FibGVkLGlucHV0W3R5cGU9ImNoZWNrYm94Il0uZGlzYWJsZWQsZmllbGRzZXRbZGlzYWJsZWRdIGlucHV0W3R5cGU9InJhZGlvIl0sZmllbGRzZXRbZGlzYWJsZWRdIGlucHV0W3R5cGU9ImNoZWNrYm94Il17Y3Vyc29yOm5vdC1hbGxvd2VkfWlucHV0W3R5cGU9ImZpbGUiXXtkaXNwbGF5OmJsb2NrfWlucHV0W3R5cGU9InJhbmdlIl17ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlfXNlbGVjdFttdWx0aXBsZV0sc2VsZWN0W3NpemVde2hlaWdodDphdXRvfWlucHV0W3R5cGU9ImZpbGUiXTpmb2N1cyxpbnB1dFt0eXBlPSJyYWRpbyJdOmZvY3VzLGlucHV0W3R5cGU9ImNoZWNrYm94Il06Zm9jdXN7b3V0bGluZTo1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7b3V0bGluZS1vZmZzZXQ6LTJweH1vdXRwdXR7ZGlzcGxheTpibG9jaztwYWRkaW5nLXRvcDo3cHg7Zm9udC1zaXplOjEzcHg7bGluZS1oZWlnaHQ6MS44NDY7Y29sb3I6IzY2NjY2Nn0uZm9ybS1jb250cm9se2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtoZWlnaHQ6MzdweDtwYWRkaW5nOjZweCAxNnB4O2ZvbnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0OjEuODQ2O2NvbG9yOiM2NjY2NjY7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWltYWdlOm5vbmU7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjNweDtib3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMDc1KTt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciBlYXNlLWluLW91dCAuMTVzLGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjE1c30uZm9ybS1jb250cm9sOmZvY3Vze2JvcmRlci1jb2xvcjojNjZhZmU5O291dGxpbmU6MDtib3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMDc1KSwwIDAgOHB4IHJnYmEoMTAyLDE3NSwyMzMsMC42KX0uZm9ybS1jb250cm9sOjotbW96LXBsYWNlaG9sZGVye2NvbG9yOiNiYmJiYmI7b3BhY2l0eToxfS5mb3JtLWNvbnRyb2w6LW1zLWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOiNiYmJiYmJ9LmZvcm0tY29udHJvbDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcntjb2xvcjojYmJiYmJifS5mb3JtLWNvbnRyb2w6Oi1tcy1leHBhbmR7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6MH0uZm9ybS1jb250cm9sW2Rpc2FibGVkXSwuZm9ybS1jb250cm9sW3JlYWRvbmx5XSxmaWVsZHNldFtkaXNhYmxlZF0gLmZvcm0tY29udHJvbHtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O29wYWNpdHk6MX0uZm9ybS1jb250cm9sW2Rpc2FibGVkXSxmaWVsZHNldFtkaXNhYmxlZF0gLmZvcm0tY29udHJvbHtjdXJzb3I6bm90LWFsbG93ZWR9dGV4dGFyZWEuZm9ybS1jb250cm9se2hlaWdodDphdXRvfUBtZWRpYSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86MCl7aW5wdXRbdHlwZT0iZGF0ZSJdLmZvcm0tY29udHJvbCxpbnB1dFt0eXBlPSJ0aW1lIl0uZm9ybS1jb250cm9sLGlucHV0W3R5cGU9ImRhdGV0aW1lLWxvY2FsIl0uZm9ybS1jb250cm9sLGlucHV0W3R5cGU9Im1vbnRoIl0uZm9ybS1jb250cm9se2xpbmUtaGVpZ2h0OjM3cHh9aW5wdXRbdHlwZT0iZGF0ZSJdLmlucHV0LXNtLGlucHV0W3R5cGU9InRpbWUiXS5pbnB1dC1zbSxpbnB1dFt0eXBlPSJkYXRldGltZS1sb2NhbCJdLmlucHV0LXNtLGlucHV0W3R5cGU9Im1vbnRoIl0uaW5wdXQtc20sLmlucHV0LWdyb3VwLXNtIGlucHV0W3R5cGU9ImRhdGUiXSwuaW5wdXQtZ3JvdXAtc20gaW5wdXRbdHlwZT0idGltZSJdLC5pbnB1dC1ncm91cC1zbSBpbnB1dFt0eXBlPSJkYXRldGltZS1sb2NhbCJdLC5pbnB1dC1ncm91cC1zbSBpbnB1dFt0eXBlPSJtb250aCJde2xpbmUtaGVpZ2h0OjMwcHh9aW5wdXRbdHlwZT0iZGF0ZSJdLmlucHV0LWxnLGlucHV0W3R5cGU9InRpbWUiXS5pbnB1dC1sZyxpbnB1dFt0eXBlPSJkYXRldGltZS1sb2NhbCJdLmlucHV0LWxnLGlucHV0W3R5cGU9Im1vbnRoIl0uaW5wdXQtbGcsLmlucHV0LWdyb3VwLWxnIGlucHV0W3R5cGU9ImRhdGUiXSwuaW5wdXQtZ3JvdXAtbGcgaW5wdXRbdHlwZT0idGltZSJdLC5pbnB1dC1ncm91cC1sZyBpbnB1dFt0eXBlPSJkYXRldGltZS1sb2NhbCJdLC5pbnB1dC1ncm91cC1sZyBpbnB1dFt0eXBlPSJtb250aCJde2xpbmUtaGVpZ2h0OjQ1cHh9fS5mb3JtLWdyb3Vwe21hcmdpbi1ib3R0b206MTVweH0ucmFkaW8sLmNoZWNrYm94e3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7bWFyZ2luLXRvcDoxMHB4O21hcmdpbi1ib3R0b206MTBweH0ucmFkaW8uZGlzYWJsZWQgbGFiZWwsLmNoZWNrYm94LmRpc2FibGVkIGxhYmVsLGZpZWxkc2V0W2Rpc2FibGVkXSAucmFkaW8gbGFiZWwsZmllbGRzZXRbZGlzYWJsZWRdIC5jaGVja2JveCBsYWJlbHtjdXJzb3I6bm90LWFsbG93ZWR9LnJhZGlvIGxhYmVsLC5jaGVja2JveCBsYWJlbHttaW4taGVpZ2h0OjIzcHg7cGFkZGluZy1sZWZ0OjIwcHg7bWFyZ2luLWJvdHRvbTowO2ZvbnQtd2VpZ2h0OjQwMDtjdXJzb3I6cG9pbnRlcn0ucmFkaW8gaW5wdXRbdHlwZT0icmFkaW8iXSwucmFkaW8taW5saW5lIGlucHV0W3R5cGU9InJhZGlvIl0sLmNoZWNrYm94IGlucHV0W3R5cGU9ImNoZWNrYm94Il0sLmNoZWNrYm94LWlubGluZSBpbnB1dFt0eXBlPSJjaGVja2JveCJde3Bvc2l0aW9uOmFic29sdXRlO21hcmdpbi10b3A6NHB4IFw5O21hcmdpbi1sZWZ0Oi0yMHB4fS5yYWRpbysucmFkaW8sLmNoZWNrYm94Ky5jaGVja2JveHttYXJnaW4tdG9wOi01cHh9LnJhZGlvLWlubGluZSwuY2hlY2tib3gtaW5saW5le3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmctbGVmdDoyMHB4O21hcmdpbi1ib3R0b206MDtmb250LXdlaWdodDo0MDA7dmVydGljYWwtYWxpZ246bWlkZGxlO2N1cnNvcjpwb2ludGVyfS5yYWRpby1pbmxpbmUuZGlzYWJsZWQsLmNoZWNrYm94LWlubGluZS5kaXNhYmxlZCxmaWVsZHNldFtkaXNhYmxlZF0gLnJhZGlvLWlubGluZSxmaWVsZHNldFtkaXNhYmxlZF0gLmNoZWNrYm94LWlubGluZXtjdXJzb3I6bm90LWFsbG93ZWR9LnJhZGlvLWlubGluZSsucmFkaW8taW5saW5lLC5jaGVja2JveC1pbmxpbmUrLmNoZWNrYm94LWlubGluZXttYXJnaW4tdG9wOjA7bWFyZ2luLWxlZnQ6MTBweH0uZm9ybS1jb250cm9sLXN0YXRpY3ttaW4taGVpZ2h0OjM2cHg7cGFkZGluZy10b3A6N3B4O3BhZGRpbmctYm90dG9tOjdweDttYXJnaW4tYm90dG9tOjB9LmZvcm0tY29udHJvbC1zdGF0aWMuaW5wdXQtbGcsLmZvcm0tY29udHJvbC1zdGF0aWMuaW5wdXQtc217cGFkZGluZy1yaWdodDowO3BhZGRpbmctbGVmdDowfS5pbnB1dC1zbXtoZWlnaHQ6MzBweDtwYWRkaW5nOjVweCAxMHB4O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjEuNTtib3JkZXItcmFkaXVzOjNweH1zZWxlY3QuaW5wdXQtc217aGVpZ2h0OjMwcHg7bGluZS1oZWlnaHQ6MzBweH10ZXh0YXJlYS5pbnB1dC1zbSxzZWxlY3RbbXVsdGlwbGVdLmlucHV0LXNte2hlaWdodDphdXRvfS5mb3JtLWdyb3VwLXNtIC5mb3JtLWNvbnRyb2x7aGVpZ2h0OjMwcHg7cGFkZGluZzo1cHggMTBweDtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxLjU7Ym9yZGVyLXJhZGl1czozcHh9LmZvcm0tZ3JvdXAtc20gc2VsZWN0LmZvcm0tY29udHJvbHtoZWlnaHQ6MzBweDtsaW5lLWhlaWdodDozMHB4fS5mb3JtLWdyb3VwLXNtIHRleHRhcmVhLmZvcm0tY29udHJvbCwuZm9ybS1ncm91cC1zbSBzZWxlY3RbbXVsdGlwbGVdLmZvcm0tY29udHJvbHtoZWlnaHQ6YXV0b30uZm9ybS1ncm91cC1zbSAuZm9ybS1jb250cm9sLXN0YXRpY3toZWlnaHQ6MzBweDttaW4taGVpZ2h0OjM1cHg7cGFkZGluZzo2cHggMTBweDtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxLjV9LmlucHV0LWxne2hlaWdodDo0NXB4O3BhZGRpbmc6MTBweCAxNnB4O2ZvbnQtc2l6ZToxN3B4O2xpbmUtaGVpZ2h0OjEuMzMzMzMzMztib3JkZXItcmFkaXVzOjNweH1zZWxlY3QuaW5wdXQtbGd7aGVpZ2h0OjQ1cHg7bGluZS1oZWlnaHQ6NDVweH10ZXh0YXJlYS5pbnB1dC1sZyxzZWxlY3RbbXVsdGlwbGVdLmlucHV0LWxne2hlaWdodDphdXRvfS5mb3JtLWdyb3VwLWxnIC5mb3JtLWNvbnRyb2x7aGVpZ2h0OjQ1cHg7cGFkZGluZzoxMHB4IDE2cHg7Zm9udC1zaXplOjE3cHg7bGluZS1oZWlnaHQ6MS4zMzMzMzMzO2JvcmRlci1yYWRpdXM6M3B4fS5mb3JtLWdyb3VwLWxnIHNlbGVjdC5mb3JtLWNvbnRyb2x7aGVpZ2h0OjQ1cHg7bGluZS1oZWlnaHQ6NDVweH0uZm9ybS1ncm91cC1sZyB0ZXh0YXJlYS5mb3JtLWNvbnRyb2wsLmZvcm0tZ3JvdXAtbGcgc2VsZWN0W211bHRpcGxlXS5mb3JtLWNvbnRyb2x7aGVpZ2h0OmF1dG99LmZvcm0tZ3JvdXAtbGcgLmZvcm0tY29udHJvbC1zdGF0aWN7aGVpZ2h0OjQ1cHg7bWluLWhlaWdodDo0MHB4O3BhZGRpbmc6MTFweCAxNnB4O2ZvbnQtc2l6ZToxN3B4O2xpbmUtaGVpZ2h0OjEuMzMzMzMzM30uaGFzLWZlZWRiYWNre3Bvc2l0aW9uOnJlbGF0aXZlfS5oYXMtZmVlZGJhY2sgLmZvcm0tY29udHJvbHtwYWRkaW5nLXJpZ2h0OjQ2LjI1cHh9LmZvcm0tY29udHJvbC1mZWVkYmFja3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDowO3otaW5kZXg6MjtkaXNwbGF5OmJsb2NrO3dpZHRoOjM3cHg7aGVpZ2h0OjM3cHg7bGluZS1oZWlnaHQ6MzdweDt0ZXh0LWFsaWduOmNlbnRlcjtwb2ludGVyLWV2ZW50czpub25lfS5pbnB1dC1sZysuZm9ybS1jb250cm9sLWZlZWRiYWNrLC5pbnB1dC1ncm91cC1sZysuZm9ybS1jb250cm9sLWZlZWRiYWNrLC5mb3JtLWdyb3VwLWxnIC5mb3JtLWNvbnRyb2wrLmZvcm0tY29udHJvbC1mZWVkYmFja3t3aWR0aDo0NXB4O2hlaWdodDo0NXB4O2xpbmUtaGVpZ2h0OjQ1cHh9LmlucHV0LXNtKy5mb3JtLWNvbnRyb2wtZmVlZGJhY2ssLmlucHV0LWdyb3VwLXNtKy5mb3JtLWNvbnRyb2wtZmVlZGJhY2ssLmZvcm0tZ3JvdXAtc20gLmZvcm0tY29udHJvbCsuZm9ybS1jb250cm9sLWZlZWRiYWNre3dpZHRoOjMwcHg7aGVpZ2h0OjMwcHg7bGluZS1oZWlnaHQ6MzBweH0uaGFzLXN1Y2Nlc3MgLmhlbHAtYmxvY2ssLmhhcy1zdWNjZXNzIC5jb250cm9sLWxhYmVsLC5oYXMtc3VjY2VzcyAucmFkaW8sLmhhcy1zdWNjZXNzIC5jaGVja2JveCwuaGFzLXN1Y2Nlc3MgLnJhZGlvLWlubGluZSwuaGFzLXN1Y2Nlc3MgLmNoZWNrYm94LWlubGluZSwuaGFzLXN1Y2Nlc3MucmFkaW8gbGFiZWwsLmhhcy1zdWNjZXNzLmNoZWNrYm94IGxhYmVsLC5oYXMtc3VjY2Vzcy5yYWRpby1pbmxpbmUgbGFiZWwsLmhhcy1zdWNjZXNzLmNoZWNrYm94LWlubGluZSBsYWJlbHtjb2xvcjojNGNhZjUwfS5oYXMtc3VjY2VzcyAuZm9ybS1jb250cm9se2JvcmRlci1jb2xvcjojNGNhZjUwO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsMC4wNzUpfS5oYXMtc3VjY2VzcyAuZm9ybS1jb250cm9sOmZvY3Vze2JvcmRlci1jb2xvcjojM2Q4YjQwO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsMC4wNzUpLDAgMCA2cHggIzkyY2Y5NH0uaGFzLXN1Y2Nlc3MgLmlucHV0LWdyb3VwLWFkZG9ue2NvbG9yOiM0Y2FmNTA7YmFja2dyb3VuZC1jb2xvcjojZGZmMGQ4O2JvcmRlci1jb2xvcjojNGNhZjUwfS5oYXMtc3VjY2VzcyAuZm9ybS1jb250cm9sLWZlZWRiYWNre2NvbG9yOiM0Y2FmNTB9Lmhhcy13YXJuaW5nIC5oZWxwLWJsb2NrLC5oYXMtd2FybmluZyAuY29udHJvbC1sYWJlbCwuaGFzLXdhcm5pbmcgLnJhZGlvLC5oYXMtd2FybmluZyAuY2hlY2tib3gsLmhhcy13YXJuaW5nIC5yYWRpby1pbmxpbmUsLmhhcy13YXJuaW5nIC5jaGVja2JveC1pbmxpbmUsLmhhcy13YXJuaW5nLnJhZGlvIGxhYmVsLC5oYXMtd2FybmluZy5jaGVja2JveCBsYWJlbCwuaGFzLXdhcm5pbmcucmFkaW8taW5saW5lIGxhYmVsLC5oYXMtd2FybmluZy5jaGVja2JveC1pbmxpbmUgbGFiZWx7Y29sb3I6I2ZmOTgwMH0uaGFzLXdhcm5pbmcgLmZvcm0tY29udHJvbHtib3JkZXItY29sb3I6I2ZmOTgwMDtib3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMDc1KX0uaGFzLXdhcm5pbmcgLmZvcm0tY29udHJvbDpmb2N1c3tib3JkZXItY29sb3I6I2NjN2EwMDtib3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMDc1KSwwIDAgNnB4ICNmZmMxNjZ9Lmhhcy13YXJuaW5nIC5pbnB1dC1ncm91cC1hZGRvbntjb2xvcjojZmY5ODAwO2JhY2tncm91bmQtY29sb3I6I2ZmZTBiMjtib3JkZXItY29sb3I6I2ZmOTgwMH0uaGFzLXdhcm5pbmcgLmZvcm0tY29udHJvbC1mZWVkYmFja3tjb2xvcjojZmY5ODAwfS5oYXMtZXJyb3IgLmhlbHAtYmxvY2ssLmhhcy1lcnJvciAuY29udHJvbC1sYWJlbCwuaGFzLWVycm9yIC5yYWRpbywuaGFzLWVycm9yIC5jaGVja2JveCwuaGFzLWVycm9yIC5yYWRpby1pbmxpbmUsLmhhcy1lcnJvciAuY2hlY2tib3gtaW5saW5lLC5oYXMtZXJyb3IucmFkaW8gbGFiZWwsLmhhcy1lcnJvci5jaGVja2JveCBsYWJlbCwuaGFzLWVycm9yLnJhZGlvLWlubGluZSBsYWJlbCwuaGFzLWVycm9yLmNoZWNrYm94LWlubGluZSBsYWJlbHtjb2xvcjojZTUxYzIzfS5oYXMtZXJyb3IgLmZvcm0tY29udHJvbHtib3JkZXItY29sb3I6I2U1MWMyMztib3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMDc1KX0uaGFzLWVycm9yIC5mb3JtLWNvbnRyb2w6Zm9jdXN7Ym9yZGVyLWNvbG9yOiNiOTE1MWI7Ym94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwwLjA3NSksMCAwIDZweCAjZWY3ODdjfS5oYXMtZXJyb3IgLmlucHV0LWdyb3VwLWFkZG9ue2NvbG9yOiNlNTFjMjM7YmFja2dyb3VuZC1jb2xvcjojZjliZGJiO2JvcmRlci1jb2xvcjojZTUxYzIzfS5oYXMtZXJyb3IgLmZvcm0tY29udHJvbC1mZWVkYmFja3tjb2xvcjojZTUxYzIzfS5oYXMtZmVlZGJhY2sgbGFiZWx+LmZvcm0tY29udHJvbC1mZWVkYmFja3t0b3A6MjhweH0uaGFzLWZlZWRiYWNrIGxhYmVsLnNyLW9ubHl+LmZvcm0tY29udHJvbC1mZWVkYmFja3t0b3A6MH0uaGVscC1ibG9ja3tkaXNwbGF5OmJsb2NrO21hcmdpbi10b3A6NXB4O21hcmdpbi1ib3R0b206MTBweDtjb2xvcjojYTZhNmE2fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsuZm9ybS1pbmxpbmUgLmZvcm0tZ3JvdXB7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLWJvdHRvbTowO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uZm9ybS1pbmxpbmUgLmZvcm0tY29udHJvbHtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDphdXRvO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uZm9ybS1pbmxpbmUgLmZvcm0tY29udHJvbC1zdGF0aWN7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmZvcm0taW5saW5lIC5pbnB1dC1ncm91cHtkaXNwbGF5OmlubGluZS10YWJsZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmZvcm0taW5saW5lIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYWRkb24sLmZvcm0taW5saW5lIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnRuLC5mb3JtLWlubGluZSAuaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbHt3aWR0aDphdXRvfS5mb3JtLWlubGluZSAuaW5wdXQtZ3JvdXA+LmZvcm0tY29udHJvbHt3aWR0aDoxMDAlfS5mb3JtLWlubGluZSAuY29udHJvbC1sYWJlbHttYXJnaW4tYm90dG9tOjA7dmVydGljYWwtYWxpZ246bWlkZGxlfS5mb3JtLWlubGluZSAucmFkaW8sLmZvcm0taW5saW5lIC5jaGVja2JveHtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTowO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uZm9ybS1pbmxpbmUgLnJhZGlvIGxhYmVsLC5mb3JtLWlubGluZSAuY2hlY2tib3ggbGFiZWx7cGFkZGluZy1sZWZ0OjB9LmZvcm0taW5saW5lIC5yYWRpbyBpbnB1dFt0eXBlPSJyYWRpbyJdLC5mb3JtLWlubGluZSAuY2hlY2tib3ggaW5wdXRbdHlwZT0iY2hlY2tib3giXXtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW4tbGVmdDowfS5mb3JtLWlubGluZSAuaGFzLWZlZWRiYWNrIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2t7dG9wOjB9fS5mb3JtLWhvcml6b250YWwgLnJhZGlvLC5mb3JtLWhvcml6b250YWwgLmNoZWNrYm94LC5mb3JtLWhvcml6b250YWwgLnJhZGlvLWlubGluZSwuZm9ybS1ob3Jpem9udGFsIC5jaGVja2JveC1pbmxpbmV7cGFkZGluZy10b3A6N3B4O21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjB9LmZvcm0taG9yaXpvbnRhbCAucmFkaW8sLmZvcm0taG9yaXpvbnRhbCAuY2hlY2tib3h7bWluLWhlaWdodDozMHB4fS5mb3JtLWhvcml6b250YWwgLmZvcm0tZ3JvdXB7bWFyZ2luLXJpZ2h0Oi0xNXB4O21hcmdpbi1sZWZ0Oi0xNXB4fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsuZm9ybS1ob3Jpem9udGFsIC5jb250cm9sLWxhYmVse3BhZGRpbmctdG9wOjdweDttYXJnaW4tYm90dG9tOjA7dGV4dC1hbGlnbjpyaWdodH19LmZvcm0taG9yaXpvbnRhbCAuaGFzLWZlZWRiYWNrIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2t7cmlnaHQ6MTVweH1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmZvcm0taG9yaXpvbnRhbCAuZm9ybS1ncm91cC1sZyAuY29udHJvbC1sYWJlbHtwYWRkaW5nLXRvcDoxMXB4O2ZvbnQtc2l6ZToxN3B4fX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmZvcm0taG9yaXpvbnRhbCAuZm9ybS1ncm91cC1zbSAuY29udHJvbC1sYWJlbHtwYWRkaW5nLXRvcDo2cHg7Zm9udC1zaXplOjEycHh9fS5idG57ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLWJvdHRvbTowO2ZvbnQtd2VpZ2h0Om5vcm1hbDt0ZXh0LWFsaWduOmNlbnRlcjt3aGl0ZS1zcGFjZTpub3dyYXA7dmVydGljYWwtYWxpZ246bWlkZGxlOy1tcy10b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9uO3RvdWNoLWFjdGlvbjptYW5pcHVsYXRpb247Y3Vyc29yOnBvaW50ZXI7YmFja2dyb3VuZC1pbWFnZTpub25lO2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7cGFkZGluZzo2cHggMTZweDtmb250LXNpemU6MTNweDtsaW5lLWhlaWdodDoxLjg0Njtib3JkZXItcmFkaXVzOjNweDstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9LmJ0bjpmb2N1cywuYnRuOmFjdGl2ZTpmb2N1cywuYnRuLmFjdGl2ZTpmb2N1cywuYnRuLmZvY3VzLC5idG46YWN0aXZlLmZvY3VzLC5idG4uYWN0aXZlLmZvY3Vze291dGxpbmU6NXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO291dGxpbmUtb2Zmc2V0Oi0ycHh9LmJ0bjpob3ZlciwuYnRuOmZvY3VzLC5idG4uZm9jdXN7Y29sb3I6IzQ0NDQ0NDt0ZXh0LWRlY29yYXRpb246bm9uZX0uYnRuOmFjdGl2ZSwuYnRuLmFjdGl2ZXtiYWNrZ3JvdW5kLWltYWdlOm5vbmU7b3V0bGluZTowO2JveC1zaGFkb3c6aW5zZXQgMCAzcHggNXB4IHJnYmEoMCwwLDAsMC4xMjUpfS5idG4uZGlzYWJsZWQsLmJ0bltkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idG57Y3Vyc29yOm5vdC1hbGxvd2VkO2ZpbHRlcjphbHBoYShvcGFjaXR5PTY1KTtvcGFjaXR5OjAuNjU7Ym94LXNoYWRvdzpub25lfWEuYnRuLmRpc2FibGVkLGZpZWxkc2V0W2Rpc2FibGVkXSBhLmJ0bntwb2ludGVyLWV2ZW50czpub25lfS5idG4tZGVmYXVsdHtjb2xvcjojNDQ0NDQ0O2JhY2tncm91bmQtY29sb3I6I2ZmZmZmZjtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9LmJ0bi1kZWZhdWx0OmZvY3VzLC5idG4tZGVmYXVsdC5mb2N1c3tjb2xvcjojNDQ0NDQ0O2JhY2tncm91bmQtY29sb3I6I2U2ZTZlNjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKX0uYnRuLWRlZmF1bHQ6aG92ZXJ7Y29sb3I6IzQ0NDQ0NDtiYWNrZ3JvdW5kLWNvbG9yOiNlNmU2ZTY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCl9LmJ0bi1kZWZhdWx0OmFjdGl2ZSwuYnRuLWRlZmF1bHQuYWN0aXZlLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLWRlZmF1bHR7Y29sb3I6IzQ0NDQ0NDtiYWNrZ3JvdW5kLWNvbG9yOiNlNmU2ZTY7YmFja2dyb3VuZC1pbWFnZTpub25lO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApfS5idG4tZGVmYXVsdDphY3RpdmU6aG92ZXIsLmJ0bi1kZWZhdWx0LmFjdGl2ZTpob3Zlciwub3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi1kZWZhdWx0OmhvdmVyLC5idG4tZGVmYXVsdDphY3RpdmU6Zm9jdXMsLmJ0bi1kZWZhdWx0LmFjdGl2ZTpmb2N1cywub3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi1kZWZhdWx0OmZvY3VzLC5idG4tZGVmYXVsdDphY3RpdmUuZm9jdXMsLmJ0bi1kZWZhdWx0LmFjdGl2ZS5mb2N1cywub3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi1kZWZhdWx0LmZvY3Vze2NvbG9yOiM0NDQ0NDQ7YmFja2dyb3VuZC1jb2xvcjojZDRkNGQ0O2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApfS5idG4tZGVmYXVsdC5kaXNhYmxlZDpob3ZlciwuYnRuLWRlZmF1bHRbZGlzYWJsZWRdOmhvdmVyLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWRlZmF1bHQ6aG92ZXIsLmJ0bi1kZWZhdWx0LmRpc2FibGVkOmZvY3VzLC5idG4tZGVmYXVsdFtkaXNhYmxlZF06Zm9jdXMsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tZGVmYXVsdDpmb2N1cywuYnRuLWRlZmF1bHQuZGlzYWJsZWQuZm9jdXMsLmJ0bi1kZWZhdWx0W2Rpc2FibGVkXS5mb2N1cyxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kZWZhdWx0LmZvY3Vze2JhY2tncm91bmQtY29sb3I6I2ZmZmZmZjtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9LmJ0bi1kZWZhdWx0IC5iYWRnZXtjb2xvcjojZmZmZmZmO2JhY2tncm91bmQtY29sb3I6IzQ0NDQ0NH0uYnRuLXByaW1hcnl7Y29sb3I6I2ZmZmZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMyMTk2ZjM7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fS5idG4tcHJpbWFyeTpmb2N1cywuYnRuLXByaW1hcnkuZm9jdXN7Y29sb3I6I2ZmZmZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMwYzdjZDU7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCl9LmJ0bi1wcmltYXJ5OmhvdmVye2NvbG9yOiNmZmZmZmY7YmFja2dyb3VuZC1jb2xvcjojMGM3Y2Q1O2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApfS5idG4tcHJpbWFyeTphY3RpdmUsLmJ0bi1wcmltYXJ5LmFjdGl2ZSwub3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi1wcmltYXJ5e2NvbG9yOiNmZmZmZmY7YmFja2dyb3VuZC1jb2xvcjojMGM3Y2Q1O2JhY2tncm91bmQtaW1hZ2U6bm9uZTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKX0uYnRuLXByaW1hcnk6YWN0aXZlOmhvdmVyLC5idG4tcHJpbWFyeS5hY3RpdmU6aG92ZXIsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4tcHJpbWFyeTpob3ZlciwuYnRuLXByaW1hcnk6YWN0aXZlOmZvY3VzLC5idG4tcHJpbWFyeS5hY3RpdmU6Zm9jdXMsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4tcHJpbWFyeTpmb2N1cywuYnRuLXByaW1hcnk6YWN0aXZlLmZvY3VzLC5idG4tcHJpbWFyeS5hY3RpdmUuZm9jdXMsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4tcHJpbWFyeS5mb2N1c3tjb2xvcjojZmZmZmZmO2JhY2tncm91bmQtY29sb3I6IzBhNjhiNDtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKX0uYnRuLXByaW1hcnkuZGlzYWJsZWQ6aG92ZXIsLmJ0bi1wcmltYXJ5W2Rpc2FibGVkXTpob3ZlcixmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1wcmltYXJ5OmhvdmVyLC5idG4tcHJpbWFyeS5kaXNhYmxlZDpmb2N1cywuYnRuLXByaW1hcnlbZGlzYWJsZWRdOmZvY3VzLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXByaW1hcnk6Zm9jdXMsLmJ0bi1wcmltYXJ5LmRpc2FibGVkLmZvY3VzLC5idG4tcHJpbWFyeVtkaXNhYmxlZF0uZm9jdXMsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tcHJpbWFyeS5mb2N1c3tiYWNrZ3JvdW5kLWNvbG9yOiMyMTk2ZjM7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fS5idG4tcHJpbWFyeSAuYmFkZ2V7Y29sb3I6IzIxOTZmMztiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmZ9LmJ0bi1zdWNjZXNze2NvbG9yOiNmZmZmZmY7YmFja2dyb3VuZC1jb2xvcjojNGNhZjUwO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH0uYnRuLXN1Y2Nlc3M6Zm9jdXMsLmJ0bi1zdWNjZXNzLmZvY3Vze2NvbG9yOiNmZmZmZmY7YmFja2dyb3VuZC1jb2xvcjojM2Q4YjQwO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApfS5idG4tc3VjY2Vzczpob3Zlcntjb2xvcjojZmZmZmZmO2JhY2tncm91bmQtY29sb3I6IzNkOGI0MDtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKX0uYnRuLXN1Y2Nlc3M6YWN0aXZlLC5idG4tc3VjY2Vzcy5hY3RpdmUsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4tc3VjY2Vzc3tjb2xvcjojZmZmZmZmO2JhY2tncm91bmQtY29sb3I6IzNkOGI0MDtiYWNrZ3JvdW5kLWltYWdlOm5vbmU7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCl9LmJ0bi1zdWNjZXNzOmFjdGl2ZTpob3ZlciwuYnRuLXN1Y2Nlc3MuYWN0aXZlOmhvdmVyLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLXN1Y2Nlc3M6aG92ZXIsLmJ0bi1zdWNjZXNzOmFjdGl2ZTpmb2N1cywuYnRuLXN1Y2Nlc3MuYWN0aXZlOmZvY3VzLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLXN1Y2Nlc3M6Zm9jdXMsLmJ0bi1zdWNjZXNzOmFjdGl2ZS5mb2N1cywuYnRuLXN1Y2Nlc3MuYWN0aXZlLmZvY3VzLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLXN1Y2Nlc3MuZm9jdXN7Y29sb3I6I2ZmZmZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMzMjczMzQ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCl9LmJ0bi1zdWNjZXNzLmRpc2FibGVkOmhvdmVyLC5idG4tc3VjY2Vzc1tkaXNhYmxlZF06aG92ZXIsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tc3VjY2Vzczpob3ZlciwuYnRuLXN1Y2Nlc3MuZGlzYWJsZWQ6Zm9jdXMsLmJ0bi1zdWNjZXNzW2Rpc2FibGVkXTpmb2N1cyxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1zdWNjZXNzOmZvY3VzLC5idG4tc3VjY2Vzcy5kaXNhYmxlZC5mb2N1cywuYnRuLXN1Y2Nlc3NbZGlzYWJsZWRdLmZvY3VzLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXN1Y2Nlc3MuZm9jdXN7YmFja2dyb3VuZC1jb2xvcjojNGNhZjUwO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH0uYnRuLXN1Y2Nlc3MgLmJhZGdle2NvbG9yOiM0Y2FmNTA7YmFja2dyb3VuZC1jb2xvcjojZmZmZmZmfS5idG4taW5mb3tjb2xvcjojZmZmZmZmO2JhY2tncm91bmQtY29sb3I6IzljMjdiMDtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9LmJ0bi1pbmZvOmZvY3VzLC5idG4taW5mby5mb2N1c3tjb2xvcjojZmZmZmZmO2JhY2tncm91bmQtY29sb3I6Izc3MWU4Njtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKX0uYnRuLWluZm86aG92ZXJ7Y29sb3I6I2ZmZmZmZjtiYWNrZ3JvdW5kLWNvbG9yOiM3NzFlODY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCl9LmJ0bi1pbmZvOmFjdGl2ZSwuYnRuLWluZm8uYWN0aXZlLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLWluZm97Y29sb3I6I2ZmZmZmZjtiYWNrZ3JvdW5kLWNvbG9yOiM3NzFlODY7YmFja2dyb3VuZC1pbWFnZTpub25lO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApfS5idG4taW5mbzphY3RpdmU6aG92ZXIsLmJ0bi1pbmZvLmFjdGl2ZTpob3Zlciwub3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi1pbmZvOmhvdmVyLC5idG4taW5mbzphY3RpdmU6Zm9jdXMsLmJ0bi1pbmZvLmFjdGl2ZTpmb2N1cywub3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi1pbmZvOmZvY3VzLC5idG4taW5mbzphY3RpdmUuZm9jdXMsLmJ0bi1pbmZvLmFjdGl2ZS5mb2N1cywub3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi1pbmZvLmZvY3Vze2NvbG9yOiNmZmZmZmY7YmFja2dyb3VuZC1jb2xvcjojNWQxNzY5O2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApfS5idG4taW5mby5kaXNhYmxlZDpob3ZlciwuYnRuLWluZm9bZGlzYWJsZWRdOmhvdmVyLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWluZm86aG92ZXIsLmJ0bi1pbmZvLmRpc2FibGVkOmZvY3VzLC5idG4taW5mb1tkaXNhYmxlZF06Zm9jdXMsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4taW5mbzpmb2N1cywuYnRuLWluZm8uZGlzYWJsZWQuZm9jdXMsLmJ0bi1pbmZvW2Rpc2FibGVkXS5mb2N1cyxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1pbmZvLmZvY3Vze2JhY2tncm91bmQtY29sb3I6IzljMjdiMDtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9LmJ0bi1pbmZvIC5iYWRnZXtjb2xvcjojOWMyN2IwO2JhY2tncm91bmQtY29sb3I6I2ZmZmZmZn0uYnRuLXdhcm5pbmd7Y29sb3I6I2ZmZmZmZjtiYWNrZ3JvdW5kLWNvbG9yOiNmZjk4MDA7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fS5idG4td2FybmluZzpmb2N1cywuYnRuLXdhcm5pbmcuZm9jdXN7Y29sb3I6I2ZmZmZmZjtiYWNrZ3JvdW5kLWNvbG9yOiNjYzdhMDA7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCl9LmJ0bi13YXJuaW5nOmhvdmVye2NvbG9yOiNmZmZmZmY7YmFja2dyb3VuZC1jb2xvcjojY2M3YTAwO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApfS5idG4td2FybmluZzphY3RpdmUsLmJ0bi13YXJuaW5nLmFjdGl2ZSwub3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi13YXJuaW5ne2NvbG9yOiNmZmZmZmY7YmFja2dyb3VuZC1jb2xvcjojY2M3YTAwO2JhY2tncm91bmQtaW1hZ2U6bm9uZTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKX0uYnRuLXdhcm5pbmc6YWN0aXZlOmhvdmVyLC5idG4td2FybmluZy5hY3RpdmU6aG92ZXIsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4td2FybmluZzpob3ZlciwuYnRuLXdhcm5pbmc6YWN0aXZlOmZvY3VzLC5idG4td2FybmluZy5hY3RpdmU6Zm9jdXMsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4td2FybmluZzpmb2N1cywuYnRuLXdhcm5pbmc6YWN0aXZlLmZvY3VzLC5idG4td2FybmluZy5hY3RpdmUuZm9jdXMsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4td2FybmluZy5mb2N1c3tjb2xvcjojZmZmZmZmO2JhY2tncm91bmQtY29sb3I6I2E4NjQwMDtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKX0uYnRuLXdhcm5pbmcuZGlzYWJsZWQ6aG92ZXIsLmJ0bi13YXJuaW5nW2Rpc2FibGVkXTpob3ZlcixmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi13YXJuaW5nOmhvdmVyLC5idG4td2FybmluZy5kaXNhYmxlZDpmb2N1cywuYnRuLXdhcm5pbmdbZGlzYWJsZWRdOmZvY3VzLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXdhcm5pbmc6Zm9jdXMsLmJ0bi13YXJuaW5nLmRpc2FibGVkLmZvY3VzLC5idG4td2FybmluZ1tkaXNhYmxlZF0uZm9jdXMsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4td2FybmluZy5mb2N1c3tiYWNrZ3JvdW5kLWNvbG9yOiNmZjk4MDA7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fS5idG4td2FybmluZyAuYmFkZ2V7Y29sb3I6I2ZmOTgwMDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmZ9LmJ0bi1kYW5nZXJ7Y29sb3I6I2ZmZmZmZjtiYWNrZ3JvdW5kLWNvbG9yOiNlNTFjMjM7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fS5idG4tZGFuZ2VyOmZvY3VzLC5idG4tZGFuZ2VyLmZvY3Vze2NvbG9yOiNmZmZmZmY7YmFja2dyb3VuZC1jb2xvcjojYjkxNTFiO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApfS5idG4tZGFuZ2VyOmhvdmVye2NvbG9yOiNmZmZmZmY7YmFja2dyb3VuZC1jb2xvcjojYjkxNTFiO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApfS5idG4tZGFuZ2VyOmFjdGl2ZSwuYnRuLWRhbmdlci5hY3RpdmUsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4tZGFuZ2Vye2NvbG9yOiNmZmZmZmY7YmFja2dyb3VuZC1jb2xvcjojYjkxNTFiO2JhY2tncm91bmQtaW1hZ2U6bm9uZTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKX0uYnRuLWRhbmdlcjphY3RpdmU6aG92ZXIsLmJ0bi1kYW5nZXIuYWN0aXZlOmhvdmVyLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLWRhbmdlcjpob3ZlciwuYnRuLWRhbmdlcjphY3RpdmU6Zm9jdXMsLmJ0bi1kYW5nZXIuYWN0aXZlOmZvY3VzLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLWRhbmdlcjpmb2N1cywuYnRuLWRhbmdlcjphY3RpdmUuZm9jdXMsLmJ0bi1kYW5nZXIuYWN0aXZlLmZvY3VzLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLWRhbmdlci5mb2N1c3tjb2xvcjojZmZmZmZmO2JhY2tncm91bmQtY29sb3I6Izk5MTIxNjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKX0uYnRuLWRhbmdlci5kaXNhYmxlZDpob3ZlciwuYnRuLWRhbmdlcltkaXNhYmxlZF06aG92ZXIsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tZGFuZ2VyOmhvdmVyLC5idG4tZGFuZ2VyLmRpc2FibGVkOmZvY3VzLC5idG4tZGFuZ2VyW2Rpc2FibGVkXTpmb2N1cyxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kYW5nZXI6Zm9jdXMsLmJ0bi1kYW5nZXIuZGlzYWJsZWQuZm9jdXMsLmJ0bi1kYW5nZXJbZGlzYWJsZWRdLmZvY3VzLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWRhbmdlci5mb2N1c3tiYWNrZ3JvdW5kLWNvbG9yOiNlNTFjMjM7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fS5idG4tZGFuZ2VyIC5iYWRnZXtjb2xvcjojZTUxYzIzO2JhY2tncm91bmQtY29sb3I6I2ZmZmZmZn0uYnRuLWxpbmt7Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOiMyMTk2ZjM7Ym9yZGVyLXJhZGl1czowfS5idG4tbGluaywuYnRuLWxpbms6YWN0aXZlLC5idG4tbGluay5hY3RpdmUsLmJ0bi1saW5rW2Rpc2FibGVkXSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1saW5re2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym94LXNoYWRvdzpub25lfS5idG4tbGluaywuYnRuLWxpbms6aG92ZXIsLmJ0bi1saW5rOmZvY3VzLC5idG4tbGluazphY3RpdmV7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fS5idG4tbGluazpob3ZlciwuYnRuLWxpbms6Zm9jdXN7Y29sb3I6IzBhNmViZDt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LmJ0bi1saW5rW2Rpc2FibGVkXTpob3ZlcixmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1saW5rOmhvdmVyLC5idG4tbGlua1tkaXNhYmxlZF06Zm9jdXMsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tbGluazpmb2N1c3tjb2xvcjojYmJiYmJiO3RleHQtZGVjb3JhdGlvbjpub25lfS5idG4tbGcsLmJ0bi1ncm91cC1sZz4uYnRue3BhZGRpbmc6MTBweCAxNnB4O2ZvbnQtc2l6ZToxN3B4O2xpbmUtaGVpZ2h0OjEuMzMzMzMzMztib3JkZXItcmFkaXVzOjNweH0uYnRuLXNtLC5idG4tZ3JvdXAtc20+LmJ0bntwYWRkaW5nOjVweCAxMHB4O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjEuNTtib3JkZXItcmFkaXVzOjNweH0uYnRuLXhzLC5idG4tZ3JvdXAteHM+LmJ0bntwYWRkaW5nOjFweCA1cHg7Zm9udC1zaXplOjEycHg7bGluZS1oZWlnaHQ6MS41O2JvcmRlci1yYWRpdXM6M3B4fS5idG4tYmxvY2t7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlfS5idG4tYmxvY2srLmJ0bi1ibG9ja3ttYXJnaW4tdG9wOjVweH1pbnB1dFt0eXBlPSJzdWJtaXQiXS5idG4tYmxvY2ssaW5wdXRbdHlwZT0icmVzZXQiXS5idG4tYmxvY2ssaW5wdXRbdHlwZT0iYnV0dG9uIl0uYnRuLWJsb2Nre3dpZHRoOjEwMCV9LmZhZGV7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAwLjE1cyBsaW5lYXJ9LmZhZGUuaW57b3BhY2l0eToxfS5jb2xsYXBzZXtkaXNwbGF5Om5vbmV9LmNvbGxhcHNlLmlue2Rpc3BsYXk6YmxvY2t9dHIuY29sbGFwc2UuaW57ZGlzcGxheTp0YWJsZS1yb3d9dGJvZHkuY29sbGFwc2UuaW57ZGlzcGxheTp0YWJsZS1yb3ctZ3JvdXB9LmNvbGxhcHNpbmd7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjA7b3ZlcmZsb3c6aGlkZGVuO3RyYW5zaXRpb24tcHJvcGVydHk6aGVpZ2h0LCB2aXNpYmlsaXR5O3RyYW5zaXRpb24tZHVyYXRpb246MC4zNXM7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZX0uY2FyZXR7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MDtoZWlnaHQ6MDttYXJnaW4tbGVmdDoycHg7dmVydGljYWwtYWxpZ246bWlkZGxlO2JvcmRlci10b3A6NHB4IGRhc2hlZDtib3JkZXItdG9wOjRweCBzb2xpZCBcOTtib3JkZXItcmlnaHQ6NHB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1sZWZ0OjRweCBzb2xpZCB0cmFuc3BhcmVudH0uZHJvcHVwLC5kcm9wZG93bntwb3NpdGlvbjpyZWxhdGl2ZX0uZHJvcGRvd24tdG9nZ2xlOmZvY3Vze291dGxpbmU6MH0uZHJvcGRvd24tbWVudXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTAwJTtsZWZ0OjA7ei1pbmRleDoxMDAwO2Rpc3BsYXk6bm9uZTtmbG9hdDpsZWZ0O21pbi13aWR0aDoxNjBweDtwYWRkaW5nOjVweCAwO21hcmdpbjoycHggMCAwO2ZvbnQtc2l6ZToxM3B4O3RleHQtYWxpZ246bGVmdDtsaXN0LXN0eWxlOm5vbmU7YmFja2dyb3VuZC1jb2xvcjojZmZmZmZmO2JhY2tncm91bmQtY2xpcDpwYWRkaW5nLWJveDtib3JkZXI6MXB4IHNvbGlkICNjY2NjY2M7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMTUpO2JvcmRlci1yYWRpdXM6M3B4O2JveC1zaGFkb3c6MCA2cHggMTJweCByZ2JhKDAsMCwwLDAuMTc1KX0uZHJvcGRvd24tbWVudS5wdWxsLXJpZ2h0e3JpZ2h0OjA7bGVmdDphdXRvfS5kcm9wZG93bi1tZW51IC5kaXZpZGVye2hlaWdodDoxcHg7bWFyZ2luOjEwLjVweCAwO292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kLWNvbG9yOiNlNWU1ZTV9LmRyb3Bkb3duLW1lbnU+bGk+YXtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6M3B4IDIwcHg7Y2xlYXI6Ym90aDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS44NDY7Y29sb3I6IzY2NjY2Njt3aGl0ZS1zcGFjZTpub3dyYXB9LmRyb3Bkb3duLW1lbnU+bGk+YTpob3ZlciwuZHJvcGRvd24tbWVudT5saT5hOmZvY3Vze2NvbG9yOiMxNDE0MTQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7YmFja2dyb3VuZC1jb2xvcjojZWVlZWVlfS5kcm9wZG93bi1tZW51Pi5hY3RpdmU+YSwuZHJvcGRvd24tbWVudT4uYWN0aXZlPmE6aG92ZXIsLmRyb3Bkb3duLW1lbnU+LmFjdGl2ZT5hOmZvY3Vze2NvbG9yOiNmZmZmZmY7dGV4dC1kZWNvcmF0aW9uOm5vbmU7YmFja2dyb3VuZC1jb2xvcjojMjE5NmYzO291dGxpbmU6MH0uZHJvcGRvd24tbWVudT4uZGlzYWJsZWQ+YSwuZHJvcGRvd24tbWVudT4uZGlzYWJsZWQ+YTpob3ZlciwuZHJvcGRvd24tbWVudT4uZGlzYWJsZWQ+YTpmb2N1c3tjb2xvcjojYmJiYmJifS5kcm9wZG93bi1tZW51Pi5kaXNhYmxlZD5hOmhvdmVyLC5kcm9wZG93bi1tZW51Pi5kaXNhYmxlZD5hOmZvY3Vze3RleHQtZGVjb3JhdGlvbjpub25lO2N1cnNvcjpub3QtYWxsb3dlZDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtaW1hZ2U6bm9uZTtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KGVuYWJsZWQ9ZmFsc2UpfS5vcGVuPi5kcm9wZG93bi1tZW51e2Rpc3BsYXk6YmxvY2t9Lm9wZW4+YXtvdXRsaW5lOjB9LmRyb3Bkb3duLW1lbnUtcmlnaHR7cmlnaHQ6MDtsZWZ0OmF1dG99LmRyb3Bkb3duLW1lbnUtbGVmdHtyaWdodDphdXRvO2xlZnQ6MH0uZHJvcGRvd24taGVhZGVye2Rpc3BsYXk6YmxvY2s7cGFkZGluZzozcHggMjBweDtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxLjg0Njtjb2xvcjojYmJiYmJiO3doaXRlLXNwYWNlOm5vd3JhcH0uZHJvcGRvd24tYmFja2Ryb3B7cG9zaXRpb246Zml4ZWQ7dG9wOjA7cmlnaHQ6MDtib3R0b206MDtsZWZ0OjA7ei1pbmRleDo5OTB9LnB1bGwtcmlnaHQ+LmRyb3Bkb3duLW1lbnV7cmlnaHQ6MDtsZWZ0OmF1dG99LmRyb3B1cCAuY2FyZXQsLm5hdmJhci1maXhlZC1ib3R0b20gLmRyb3Bkb3duIC5jYXJldHtjb250ZW50OiIiO2JvcmRlci10b3A6MDtib3JkZXItYm90dG9tOjRweCBkYXNoZWQ7Ym9yZGVyLWJvdHRvbTo0cHggc29saWQgXDl9LmRyb3B1cCAuZHJvcGRvd24tbWVudSwubmF2YmFyLWZpeGVkLWJvdHRvbSAuZHJvcGRvd24gLmRyb3Bkb3duLW1lbnV7dG9wOmF1dG87Ym90dG9tOjEwMCU7bWFyZ2luLWJvdHRvbToycHh9QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5uYXZiYXItcmlnaHQgLmRyb3Bkb3duLW1lbnV7cmlnaHQ6MDtsZWZ0OmF1dG99Lm5hdmJhci1yaWdodCAuZHJvcGRvd24tbWVudS1sZWZ0e3JpZ2h0OmF1dG87bGVmdDowfX0uYnRuLWdyb3VwLC5idG4tZ3JvdXAtdmVydGljYWx7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlfS5idG4tZ3JvdXA+LmJ0biwuYnRuLWdyb3VwLXZlcnRpY2FsPi5idG57cG9zaXRpb246cmVsYXRpdmU7ZmxvYXQ6bGVmdH0uYnRuLWdyb3VwPi5idG46aG92ZXIsLmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRuOmhvdmVyLC5idG4tZ3JvdXA+LmJ0bjpmb2N1cywuYnRuLWdyb3VwLXZlcnRpY2FsPi5idG46Zm9jdXMsLmJ0bi1ncm91cD4uYnRuOmFjdGl2ZSwuYnRuLWdyb3VwLXZlcnRpY2FsPi5idG46YWN0aXZlLC5idG4tZ3JvdXA+LmJ0bi5hY3RpdmUsLmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRuLmFjdGl2ZXt6LWluZGV4OjJ9LmJ0bi1ncm91cCAuYnRuKy5idG4sLmJ0bi1ncm91cCAuYnRuKy5idG4tZ3JvdXAsLmJ0bi1ncm91cCAuYnRuLWdyb3VwKy5idG4sLmJ0bi1ncm91cCAuYnRuLWdyb3VwKy5idG4tZ3JvdXB7bWFyZ2luLWxlZnQ6LTFweH0uYnRuLXRvb2xiYXJ7bWFyZ2luLWxlZnQ6LTVweH0uYnRuLXRvb2xiYXIgLmJ0biwuYnRuLXRvb2xiYXIgLmJ0bi1ncm91cCwuYnRuLXRvb2xiYXIgLmlucHV0LWdyb3Vwe2Zsb2F0OmxlZnR9LmJ0bi10b29sYmFyPi5idG4sLmJ0bi10b29sYmFyPi5idG4tZ3JvdXAsLmJ0bi10b29sYmFyPi5pbnB1dC1ncm91cHttYXJnaW4tbGVmdDo1cHh9LmJ0bi1ncm91cD4uYnRuOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCk6bm90KC5kcm9wZG93bi10b2dnbGUpe2JvcmRlci1yYWRpdXM6MH0uYnRuLWdyb3VwPi5idG46Zmlyc3QtY2hpbGR7bWFyZ2luLWxlZnQ6MH0uYnRuLWdyb3VwPi5idG46Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKTpub3QoLmRyb3Bkb3duLXRvZ2dsZSl7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowfS5idG4tZ3JvdXA+LmJ0bjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpLC5idG4tZ3JvdXA+LmRyb3Bkb3duLXRvZ2dsZTpub3QoOmZpcnN0LWNoaWxkKXtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowfS5idG4tZ3JvdXA+LmJ0bi1ncm91cHtmbG9hdDpsZWZ0fS5idG4tZ3JvdXA+LmJ0bi1ncm91cDpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpPi5idG57Ym9yZGVyLXJhZGl1czowfS5idG4tZ3JvdXA+LmJ0bi1ncm91cDpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpPi5idG46bGFzdC1jaGlsZCwuYnRuLWdyb3VwPi5idG4tZ3JvdXA6Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKT4uZHJvcGRvd24tdG9nZ2xle2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MH0uYnRuLWdyb3VwPi5idG4tZ3JvdXA6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKT4uYnRuOmZpcnN0LWNoaWxke2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjB9LmJ0bi1ncm91cCAuZHJvcGRvd24tdG9nZ2xlOmFjdGl2ZSwuYnRuLWdyb3VwLm9wZW4gLmRyb3Bkb3duLXRvZ2dsZXtvdXRsaW5lOjB9LmJ0bi1ncm91cD4uYnRuKy5kcm9wZG93bi10b2dnbGV7cGFkZGluZy1yaWdodDo4cHg7cGFkZGluZy1sZWZ0OjhweH0uYnRuLWdyb3VwPi5idG4tbGcrLmRyb3Bkb3duLXRvZ2dsZXtwYWRkaW5nLXJpZ2h0OjEycHg7cGFkZGluZy1sZWZ0OjEycHh9LmJ0bi1ncm91cC5vcGVuIC5kcm9wZG93bi10b2dnbGV7Ym94LXNoYWRvdzppbnNldCAwIDNweCA1cHggcmdiYSgwLDAsMCwwLjEyNSl9LmJ0bi1ncm91cC5vcGVuIC5kcm9wZG93bi10b2dnbGUuYnRuLWxpbmt7Ym94LXNoYWRvdzpub25lfS5idG4gLmNhcmV0e21hcmdpbi1sZWZ0OjB9LmJ0bi1sZyAuY2FyZXR7Ym9yZGVyLXdpZHRoOjVweCA1cHggMDtib3JkZXItYm90dG9tLXdpZHRoOjB9LmRyb3B1cCAuYnRuLWxnIC5jYXJldHtib3JkZXItd2lkdGg6MCA1cHggNXB4fS5idG4tZ3JvdXAtdmVydGljYWw+LmJ0biwuYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4tZ3JvdXAsLmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRuLWdyb3VwPi5idG57ZGlzcGxheTpibG9jaztmbG9hdDpub25lO3dpZHRoOjEwMCU7bWF4LXdpZHRoOjEwMCV9LmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRuLWdyb3VwPi5idG57ZmxvYXQ6bm9uZX0uYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4rLmJ0biwuYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4rLmJ0bi1ncm91cCwuYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4tZ3JvdXArLmJ0biwuYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4tZ3JvdXArLmJ0bi1ncm91cHttYXJnaW4tdG9wOi0xcHg7bWFyZ2luLWxlZnQ6MH0uYnRuLWdyb3VwLXZlcnRpY2FsPi5idG46bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKXtib3JkZXItcmFkaXVzOjB9LmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRuOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCl7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czozcHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6M3B4O2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowfS5idG4tZ3JvdXAtdmVydGljYWw+LmJ0bjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpe2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjNweDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjNweH0uYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4tZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKT4uYnRue2JvcmRlci1yYWRpdXM6MH0uYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4tZ3JvdXA6Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKT4uYnRuOmxhc3QtY2hpbGQsLmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRuLWdyb3VwOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCk+LmRyb3Bkb3duLXRvZ2dsZXtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH0uYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4tZ3JvdXA6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKT4uYnRuOmZpcnN0LWNoaWxke2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowfS5idG4tZ3JvdXAtanVzdGlmaWVke2Rpc3BsYXk6dGFibGU7d2lkdGg6MTAwJTt0YWJsZS1sYXlvdXQ6Zml4ZWQ7Ym9yZGVyLWNvbGxhcHNlOnNlcGFyYXRlfS5idG4tZ3JvdXAtanVzdGlmaWVkPi5idG4sLmJ0bi1ncm91cC1qdXN0aWZpZWQ+LmJ0bi1ncm91cHtkaXNwbGF5OnRhYmxlLWNlbGw7ZmxvYXQ6bm9uZTt3aWR0aDoxJX0uYnRuLWdyb3VwLWp1c3RpZmllZD4uYnRuLWdyb3VwIC5idG57d2lkdGg6MTAwJX0uYnRuLWdyb3VwLWp1c3RpZmllZD4uYnRuLWdyb3VwIC5kcm9wZG93bi1tZW51e2xlZnQ6YXV0b31bZGF0YS10b2dnbGU9ImJ1dHRvbnMiXT4uYnRuIGlucHV0W3R5cGU9InJhZGlvIl0sW2RhdGEtdG9nZ2xlPSJidXR0b25zIl0+LmJ0bi1ncm91cD4uYnRuIGlucHV0W3R5cGU9InJhZGlvIl0sW2RhdGEtdG9nZ2xlPSJidXR0b25zIl0+LmJ0biBpbnB1dFt0eXBlPSJjaGVja2JveCJdLFtkYXRhLXRvZ2dsZT0iYnV0dG9ucyJdPi5idG4tZ3JvdXA+LmJ0biBpbnB1dFt0eXBlPSJjaGVja2JveCJde3Bvc2l0aW9uOmFic29sdXRlO2NsaXA6cmVjdCgwLCAwLCAwLCAwKTtwb2ludGVyLWV2ZW50czpub25lfS5pbnB1dC1ncm91cHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OnRhYmxlO2JvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZX0uaW5wdXQtZ3JvdXBbY2xhc3MqPSJjb2wtIl17ZmxvYXQ6bm9uZTtwYWRkaW5nLXJpZ2h0OjA7cGFkZGluZy1sZWZ0OjB9LmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2x7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoyO2Zsb2F0OmxlZnQ7d2lkdGg6MTAwJTttYXJnaW4tYm90dG9tOjB9LmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2w6Zm9jdXN7ei1pbmRleDozfS5pbnB1dC1ncm91cC1sZz4uZm9ybS1jb250cm9sLC5pbnB1dC1ncm91cC1sZz4uaW5wdXQtZ3JvdXAtYWRkb24sLmlucHV0LWdyb3VwLWxnPi5pbnB1dC1ncm91cC1idG4+LmJ0bntoZWlnaHQ6NDVweDtwYWRkaW5nOjEwcHggMTZweDtmb250LXNpemU6MTdweDtsaW5lLWhlaWdodDoxLjMzMzMzMzM7Ym9yZGVyLXJhZGl1czozcHh9c2VsZWN0LmlucHV0LWdyb3VwLWxnPi5mb3JtLWNvbnRyb2wsc2VsZWN0LmlucHV0LWdyb3VwLWxnPi5pbnB1dC1ncm91cC1hZGRvbixzZWxlY3QuaW5wdXQtZ3JvdXAtbGc+LmlucHV0LWdyb3VwLWJ0bj4uYnRue2hlaWdodDo0NXB4O2xpbmUtaGVpZ2h0OjQ1cHh9dGV4dGFyZWEuaW5wdXQtZ3JvdXAtbGc+LmZvcm0tY29udHJvbCx0ZXh0YXJlYS5pbnB1dC1ncm91cC1sZz4uaW5wdXQtZ3JvdXAtYWRkb24sdGV4dGFyZWEuaW5wdXQtZ3JvdXAtbGc+LmlucHV0LWdyb3VwLWJ0bj4uYnRuLHNlbGVjdFttdWx0aXBsZV0uaW5wdXQtZ3JvdXAtbGc+LmZvcm0tY29udHJvbCxzZWxlY3RbbXVsdGlwbGVdLmlucHV0LWdyb3VwLWxnPi5pbnB1dC1ncm91cC1hZGRvbixzZWxlY3RbbXVsdGlwbGVdLmlucHV0LWdyb3VwLWxnPi5pbnB1dC1ncm91cC1idG4+LmJ0bntoZWlnaHQ6YXV0b30uaW5wdXQtZ3JvdXAtc20+LmZvcm0tY29udHJvbCwuaW5wdXQtZ3JvdXAtc20+LmlucHV0LWdyb3VwLWFkZG9uLC5pbnB1dC1ncm91cC1zbT4uaW5wdXQtZ3JvdXAtYnRuPi5idG57aGVpZ2h0OjMwcHg7cGFkZGluZzo1cHggMTBweDtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxLjU7Ym9yZGVyLXJhZGl1czozcHh9c2VsZWN0LmlucHV0LWdyb3VwLXNtPi5mb3JtLWNvbnRyb2wsc2VsZWN0LmlucHV0LWdyb3VwLXNtPi5pbnB1dC1ncm91cC1hZGRvbixzZWxlY3QuaW5wdXQtZ3JvdXAtc20+LmlucHV0LWdyb3VwLWJ0bj4uYnRue2hlaWdodDozMHB4O2xpbmUtaGVpZ2h0OjMwcHh9dGV4dGFyZWEuaW5wdXQtZ3JvdXAtc20+LmZvcm0tY29udHJvbCx0ZXh0YXJlYS5pbnB1dC1ncm91cC1zbT4uaW5wdXQtZ3JvdXAtYWRkb24sdGV4dGFyZWEuaW5wdXQtZ3JvdXAtc20+LmlucHV0LWdyb3VwLWJ0bj4uYnRuLHNlbGVjdFttdWx0aXBsZV0uaW5wdXQtZ3JvdXAtc20+LmZvcm0tY29udHJvbCxzZWxlY3RbbXVsdGlwbGVdLmlucHV0LWdyb3VwLXNtPi5pbnB1dC1ncm91cC1hZGRvbixzZWxlY3RbbXVsdGlwbGVdLmlucHV0LWdyb3VwLXNtPi5pbnB1dC1ncm91cC1idG4+LmJ0bntoZWlnaHQ6YXV0b30uaW5wdXQtZ3JvdXAtYWRkb24sLmlucHV0LWdyb3VwLWJ0biwuaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbHtkaXNwbGF5OnRhYmxlLWNlbGx9LmlucHV0LWdyb3VwLWFkZG9uOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCksLmlucHV0LWdyb3VwLWJ0bjpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpLC5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCl7Ym9yZGVyLXJhZGl1czowfS5pbnB1dC1ncm91cC1hZGRvbiwuaW5wdXQtZ3JvdXAtYnRue3dpZHRoOjElO3doaXRlLXNwYWNlOm5vd3JhcDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmlucHV0LWdyb3VwLWFkZG9ue3BhZGRpbmc6NnB4IDE2cHg7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjE7Y29sb3I6IzY2NjY2Njt0ZXh0LWFsaWduOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czozcHh9LmlucHV0LWdyb3VwLWFkZG9uLmlucHV0LXNte3BhZGRpbmc6NXB4IDEwcHg7Zm9udC1zaXplOjEycHg7Ym9yZGVyLXJhZGl1czozcHh9LmlucHV0LWdyb3VwLWFkZG9uLmlucHV0LWxne3BhZGRpbmc6MTBweCAxNnB4O2ZvbnQtc2l6ZToxN3B4O2JvcmRlci1yYWRpdXM6M3B4fS5pbnB1dC1ncm91cC1hZGRvbiBpbnB1dFt0eXBlPSJyYWRpbyJdLC5pbnB1dC1ncm91cC1hZGRvbiBpbnB1dFt0eXBlPSJjaGVja2JveCJde21hcmdpbi10b3A6MH0uaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbDpmaXJzdC1jaGlsZCwuaW5wdXQtZ3JvdXAtYWRkb246Zmlyc3QtY2hpbGQsLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZD4uYnRuLC5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQ+LmJ0bi1ncm91cD4uYnRuLC5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQ+LmRyb3Bkb3duLXRvZ2dsZSwuaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQ+LmJ0bjpub3QoOmxhc3QtY2hpbGQpOm5vdCguZHJvcGRvd24tdG9nZ2xlKSwuaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQ+LmJ0bi1ncm91cDpub3QoOmxhc3QtY2hpbGQpPi5idG57Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowfS5pbnB1dC1ncm91cC1hZGRvbjpmaXJzdC1jaGlsZHtib3JkZXItcmlnaHQ6MH0uaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbDpsYXN0LWNoaWxkLC5pbnB1dC1ncm91cC1hZGRvbjpsYXN0LWNoaWxkLC5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZD4uYnRuLC5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZD4uYnRuLWdyb3VwPi5idG4sLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkPi5kcm9wZG93bi10b2dnbGUsLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZD4uYnRuOm5vdCg6Zmlyc3QtY2hpbGQpLC5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQ+LmJ0bi1ncm91cDpub3QoOmZpcnN0LWNoaWxkKT4uYnRue2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjB9LmlucHV0LWdyb3VwLWFkZG9uOmxhc3QtY2hpbGR7Ym9yZGVyLWxlZnQ6MH0uaW5wdXQtZ3JvdXAtYnRue3Bvc2l0aW9uOnJlbGF0aXZlO2ZvbnQtc2l6ZTowO3doaXRlLXNwYWNlOm5vd3JhcH0uaW5wdXQtZ3JvdXAtYnRuPi5idG57cG9zaXRpb246cmVsYXRpdmV9LmlucHV0LWdyb3VwLWJ0bj4uYnRuKy5idG57bWFyZ2luLWxlZnQ6LTFweH0uaW5wdXQtZ3JvdXAtYnRuPi5idG46aG92ZXIsLmlucHV0LWdyb3VwLWJ0bj4uYnRuOmZvY3VzLC5pbnB1dC1ncm91cC1idG4+LmJ0bjphY3RpdmV7ei1pbmRleDoyfS5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQ+LmJ0biwuaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkPi5idG4tZ3JvdXB7bWFyZ2luLXJpZ2h0Oi0xcHh9LmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkPi5idG4sLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkPi5idG4tZ3JvdXB7ei1pbmRleDoyO21hcmdpbi1sZWZ0Oi0xcHh9Lm5hdntwYWRkaW5nLWxlZnQ6MDttYXJnaW4tYm90dG9tOjA7bGlzdC1zdHlsZTpub25lfS5uYXY+bGl7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9ja30ubmF2PmxpPmF7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jaztwYWRkaW5nOjEwcHggMTVweH0ubmF2PmxpPmE6aG92ZXIsLm5hdj5saT5hOmZvY3Vze3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQtY29sb3I6I2VlZWVlZX0ubmF2PmxpLmRpc2FibGVkPmF7Y29sb3I6I2JiYmJiYn0ubmF2PmxpLmRpc2FibGVkPmE6aG92ZXIsLm5hdj5saS5kaXNhYmxlZD5hOmZvY3Vze2NvbG9yOiNiYmJiYmI7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y3Vyc29yOm5vdC1hbGxvd2VkO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9Lm5hdiAub3Blbj5hLC5uYXYgLm9wZW4+YTpob3ZlciwubmF2IC5vcGVuPmE6Zm9jdXN7YmFja2dyb3VuZC1jb2xvcjojZWVlZWVlO2JvcmRlci1jb2xvcjojMjE5NmYzfS5uYXYgLm5hdi1kaXZpZGVye2hlaWdodDoxcHg7bWFyZ2luOjEwLjVweCAwO292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kLWNvbG9yOiNlNWU1ZTV9Lm5hdj5saT5hPmltZ3ttYXgtd2lkdGg6bm9uZX0ubmF2LXRhYnN7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdHJhbnNwYXJlbnR9Lm5hdi10YWJzPmxpe2Zsb2F0OmxlZnQ7bWFyZ2luLWJvdHRvbTotMXB4fS5uYXYtdGFicz5saT5he21hcmdpbi1yaWdodDoycHg7bGluZS1oZWlnaHQ6MS44NDY7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjNweCAzcHggMCAwfS5uYXYtdGFicz5saT5hOmhvdmVye2JvcmRlci1jb2xvcjojZWVlZWVlICNlZWVlZWUgdHJhbnNwYXJlbnR9Lm5hdi10YWJzPmxpLmFjdGl2ZT5hLC5uYXYtdGFicz5saS5hY3RpdmU+YTpob3ZlciwubmF2LXRhYnM+bGkuYWN0aXZlPmE6Zm9jdXN7Y29sb3I6IzY2NjY2NjtjdXJzb3I6ZGVmYXVsdDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbS1jb2xvcjp0cmFuc3BhcmVudH0ubmF2LXRhYnMubmF2LWp1c3RpZmllZHt3aWR0aDoxMDAlO2JvcmRlci1ib3R0b206MH0ubmF2LXRhYnMubmF2LWp1c3RpZmllZD5saXtmbG9hdDpub25lfS5uYXYtdGFicy5uYXYtanVzdGlmaWVkPmxpPmF7bWFyZ2luLWJvdHRvbTo1cHg7dGV4dC1hbGlnbjpjZW50ZXJ9Lm5hdi10YWJzLm5hdi1qdXN0aWZpZWQ+LmRyb3Bkb3duIC5kcm9wZG93bi1tZW51e3RvcDphdXRvO2xlZnQ6YXV0b31AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7Lm5hdi10YWJzLm5hdi1qdXN0aWZpZWQ+bGl7ZGlzcGxheTp0YWJsZS1jZWxsO3dpZHRoOjElfS5uYXYtdGFicy5uYXYtanVzdGlmaWVkPmxpPmF7bWFyZ2luLWJvdHRvbTowfX0ubmF2LXRhYnMubmF2LWp1c3RpZmllZD5saT5he21hcmdpbi1yaWdodDowO2JvcmRlci1yYWRpdXM6M3B4fS5uYXYtdGFicy5uYXYtanVzdGlmaWVkPi5hY3RpdmU+YSwubmF2LXRhYnMubmF2LWp1c3RpZmllZD4uYWN0aXZlPmE6aG92ZXIsLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQ+LmFjdGl2ZT5hOmZvY3Vze2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnR9QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5uYXYtdGFicy5uYXYtanVzdGlmaWVkPmxpPmF7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czozcHggM3B4IDAgMH0ubmF2LXRhYnMubmF2LWp1c3RpZmllZD4uYWN0aXZlPmEsLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQ+LmFjdGl2ZT5hOmhvdmVyLC5uYXYtdGFicy5uYXYtanVzdGlmaWVkPi5hY3RpdmU+YTpmb2N1c3tib3JkZXItYm90dG9tLWNvbG9yOiNmZmZmZmZ9fS5uYXYtcGlsbHM+bGl7ZmxvYXQ6bGVmdH0ubmF2LXBpbGxzPmxpPmF7Ym9yZGVyLXJhZGl1czozcHh9Lm5hdi1waWxscz5saStsaXttYXJnaW4tbGVmdDoycHh9Lm5hdi1waWxscz5saS5hY3RpdmU+YSwubmF2LXBpbGxzPmxpLmFjdGl2ZT5hOmhvdmVyLC5uYXYtcGlsbHM+bGkuYWN0aXZlPmE6Zm9jdXN7Y29sb3I6I2ZmZmZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMyMTk2ZjN9Lm5hdi1zdGFja2VkPmxpe2Zsb2F0Om5vbmV9Lm5hdi1zdGFja2VkPmxpK2xpe21hcmdpbi10b3A6MnB4O21hcmdpbi1sZWZ0OjB9Lm5hdi1qdXN0aWZpZWR7d2lkdGg6MTAwJX0ubmF2LWp1c3RpZmllZD5saXtmbG9hdDpub25lfS5uYXYtanVzdGlmaWVkPmxpPmF7bWFyZ2luLWJvdHRvbTo1cHg7dGV4dC1hbGlnbjpjZW50ZXJ9Lm5hdi1qdXN0aWZpZWQ+LmRyb3Bkb3duIC5kcm9wZG93bi1tZW51e3RvcDphdXRvO2xlZnQ6YXV0b31AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7Lm5hdi1qdXN0aWZpZWQ+bGl7ZGlzcGxheTp0YWJsZS1jZWxsO3dpZHRoOjElfS5uYXYtanVzdGlmaWVkPmxpPmF7bWFyZ2luLWJvdHRvbTowfX0ubmF2LXRhYnMtanVzdGlmaWVke2JvcmRlci1ib3R0b206MH0ubmF2LXRhYnMtanVzdGlmaWVkPmxpPmF7bWFyZ2luLXJpZ2h0OjA7Ym9yZGVyLXJhZGl1czozcHh9Lm5hdi10YWJzLWp1c3RpZmllZD4uYWN0aXZlPmEsLm5hdi10YWJzLWp1c3RpZmllZD4uYWN0aXZlPmE6aG92ZXIsLm5hdi10YWJzLWp1c3RpZmllZD4uYWN0aXZlPmE6Zm9jdXN7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudH1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7Lm5hdi10YWJzLWp1c3RpZmllZD5saT5he2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6M3B4IDNweCAwIDB9Lm5hdi10YWJzLWp1c3RpZmllZD4uYWN0aXZlPmEsLm5hdi10YWJzLWp1c3RpZmllZD4uYWN0aXZlPmE6aG92ZXIsLm5hdi10YWJzLWp1c3RpZmllZD4uYWN0aXZlPmE6Zm9jdXN7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZmZmZmZmfX0udGFiLWNvbnRlbnQ+LnRhYi1wYW5le2Rpc3BsYXk6bm9uZX0udGFiLWNvbnRlbnQ+LmFjdGl2ZXtkaXNwbGF5OmJsb2NrfS5uYXYtdGFicyAuZHJvcGRvd24tbWVudXttYXJnaW4tdG9wOi0xcHg7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjB9Lm5hdmJhcntwb3NpdGlvbjpyZWxhdGl2ZTttaW4taGVpZ2h0OjY0cHg7bWFyZ2luLWJvdHRvbToyM3B4O2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnR9QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5uYXZiYXJ7Ym9yZGVyLXJhZGl1czozcHh9fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsubmF2YmFyLWhlYWRlcntmbG9hdDpsZWZ0fX0ubmF2YmFyLWNvbGxhcHNle3BhZGRpbmctcmlnaHQ6MTVweDtwYWRkaW5nLWxlZnQ6MTVweDtvdmVyZmxvdy14OnZpc2libGU7Ym9yZGVyLXRvcDoxcHggc29saWQgdHJhbnNwYXJlbnQ7Ym94LXNoYWRvdzppbnNldCAwIDFweCAwIHJnYmEoMjU1LDI1NSwyNTUsMC4xKTstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaH0ubmF2YmFyLWNvbGxhcHNlLmlue292ZXJmbG93LXk6YXV0b31AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7Lm5hdmJhci1jb2xsYXBzZXt3aWR0aDphdXRvO2JvcmRlci10b3A6MDtib3gtc2hhZG93Om5vbmV9Lm5hdmJhci1jb2xsYXBzZS5jb2xsYXBzZXtkaXNwbGF5OmJsb2NrICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTowO292ZXJmbG93OnZpc2libGUgIWltcG9ydGFudH0ubmF2YmFyLWNvbGxhcHNlLmlue292ZXJmbG93LXk6dmlzaWJsZX0ubmF2YmFyLWZpeGVkLXRvcCAubmF2YmFyLWNvbGxhcHNlLC5uYXZiYXItc3RhdGljLXRvcCAubmF2YmFyLWNvbGxhcHNlLC5uYXZiYXItZml4ZWQtYm90dG9tIC5uYXZiYXItY29sbGFwc2V7cGFkZGluZy1yaWdodDowO3BhZGRpbmctbGVmdDowfX0ubmF2YmFyLWZpeGVkLXRvcCwubmF2YmFyLWZpeGVkLWJvdHRvbXtwb3NpdGlvbjpmaXhlZDtyaWdodDowO2xlZnQ6MDt6LWluZGV4OjEwMzB9Lm5hdmJhci1maXhlZC10b3AgLm5hdmJhci1jb2xsYXBzZSwubmF2YmFyLWZpeGVkLWJvdHRvbSAubmF2YmFyLWNvbGxhcHNle21heC1oZWlnaHQ6MzQwcHh9QG1lZGlhIChtYXgtZGV2aWNlLXdpZHRoOjQ4MHB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSl7Lm5hdmJhci1maXhlZC10b3AgLm5hdmJhci1jb2xsYXBzZSwubmF2YmFyLWZpeGVkLWJvdHRvbSAubmF2YmFyLWNvbGxhcHNle21heC1oZWlnaHQ6MjAwcHh9fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsubmF2YmFyLWZpeGVkLXRvcCwubmF2YmFyLWZpeGVkLWJvdHRvbXtib3JkZXItcmFkaXVzOjB9fS5uYXZiYXItZml4ZWQtdG9we3RvcDowO2JvcmRlci13aWR0aDowIDAgMXB4fS5uYXZiYXItZml4ZWQtYm90dG9te2JvdHRvbTowO21hcmdpbi1ib3R0b206MDtib3JkZXItd2lkdGg6MXB4IDAgMH0uY29udGFpbmVyPi5uYXZiYXItaGVhZGVyLC5jb250YWluZXItZmx1aWQ+Lm5hdmJhci1oZWFkZXIsLmNvbnRhaW5lcj4ubmF2YmFyLWNvbGxhcHNlLC5jb250YWluZXItZmx1aWQ+Lm5hdmJhci1jb2xsYXBzZXttYXJnaW4tcmlnaHQ6LTE1cHg7bWFyZ2luLWxlZnQ6LTE1cHh9QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5jb250YWluZXI+Lm5hdmJhci1oZWFkZXIsLmNvbnRhaW5lci1mbHVpZD4ubmF2YmFyLWhlYWRlciwuY29udGFpbmVyPi5uYXZiYXItY29sbGFwc2UsLmNvbnRhaW5lci1mbHVpZD4ubmF2YmFyLWNvbGxhcHNle21hcmdpbi1yaWdodDowO21hcmdpbi1sZWZ0OjB9fS5uYXZiYXItc3RhdGljLXRvcHt6LWluZGV4OjEwMDA7Ym9yZGVyLXdpZHRoOjAgMCAxcHh9QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5uYXZiYXItc3RhdGljLXRvcHtib3JkZXItcmFkaXVzOjB9fS5uYXZiYXItYnJhbmR7ZmxvYXQ6bGVmdDtoZWlnaHQ6NjRweDtwYWRkaW5nOjIwLjVweCAxNXB4O2ZvbnQtc2l6ZToxN3B4O2xpbmUtaGVpZ2h0OjIzcHh9Lm5hdmJhci1icmFuZDpob3ZlciwubmF2YmFyLWJyYW5kOmZvY3Vze3RleHQtZGVjb3JhdGlvbjpub25lfS5uYXZiYXItYnJhbmQ+aW1ne2Rpc3BsYXk6YmxvY2t9QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5uYXZiYXI+LmNvbnRhaW5lciAubmF2YmFyLWJyYW5kLC5uYXZiYXI+LmNvbnRhaW5lci1mbHVpZCAubmF2YmFyLWJyYW5ke21hcmdpbi1sZWZ0Oi0xNXB4fX0ubmF2YmFyLXRvZ2dsZXtwb3NpdGlvbjpyZWxhdGl2ZTtmbG9hdDpyaWdodDtwYWRkaW5nOjlweCAxMHB4O21hcmdpbi1yaWdodDoxNXB4O21hcmdpbi10b3A6MTVweDttYXJnaW4tYm90dG9tOjE1cHg7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWltYWdlOm5vbmU7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjNweH0ubmF2YmFyLXRvZ2dsZTpmb2N1c3tvdXRsaW5lOjB9Lm5hdmJhci10b2dnbGUgLmljb24tYmFye2Rpc3BsYXk6YmxvY2s7d2lkdGg6MjJweDtoZWlnaHQ6MnB4O2JvcmRlci1yYWRpdXM6MXB4fS5uYXZiYXItdG9nZ2xlIC5pY29uLWJhcisuaWNvbi1iYXJ7bWFyZ2luLXRvcDo0cHh9QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5uYXZiYXItdG9nZ2xle2Rpc3BsYXk6bm9uZX19Lm5hdmJhci1uYXZ7bWFyZ2luOjEwLjI1cHggLTE1cHh9Lm5hdmJhci1uYXY+bGk+YXtwYWRkaW5nLXRvcDoxMHB4O3BhZGRpbmctYm90dG9tOjEwcHg7bGluZS1oZWlnaHQ6MjNweH1AbWVkaWEgKG1heC13aWR0aDo3NjdweCl7Lm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnV7cG9zaXRpb246c3RhdGljO2Zsb2F0Om5vbmU7d2lkdGg6YXV0bzttYXJnaW4tdG9wOjA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6MDtib3gtc2hhZG93Om5vbmV9Lm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnU+bGk+YSwubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taGVhZGVye3BhZGRpbmc6NXB4IDE1cHggNXB4IDI1cHh9Lm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnU+bGk+YXtsaW5lLWhlaWdodDoyM3B4fS5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51PmxpPmE6aG92ZXIsLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnU+bGk+YTpmb2N1c3tiYWNrZ3JvdW5kLWltYWdlOm5vbmV9fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsubmF2YmFyLW5hdntmbG9hdDpsZWZ0O21hcmdpbjowfS5uYXZiYXItbmF2Pmxpe2Zsb2F0OmxlZnR9Lm5hdmJhci1uYXY+bGk+YXtwYWRkaW5nLXRvcDoyMC41cHg7cGFkZGluZy1ib3R0b206MjAuNXB4fX0ubmF2YmFyLWZvcm17cGFkZGluZzoxMHB4IDE1cHg7bWFyZ2luLXJpZ2h0Oi0xNXB4O21hcmdpbi1sZWZ0Oi0xNXB4O2JvcmRlci10b3A6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHRyYW5zcGFyZW50O2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMCByZ2JhKDI1NSwyNTUsMjU1LDAuMSksMCAxcHggMCByZ2JhKDI1NSwyNTUsMjU1LDAuMSk7bWFyZ2luLXRvcDoxMy41cHg7bWFyZ2luLWJvdHRvbToxMy41cHh9QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5uYXZiYXItZm9ybSAuZm9ybS1ncm91cHtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tYm90dG9tOjA7dmVydGljYWwtYWxpZ246bWlkZGxlfS5uYXZiYXItZm9ybSAuZm9ybS1jb250cm9se2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOmF1dG87dmVydGljYWwtYWxpZ246bWlkZGxlfS5uYXZiYXItZm9ybSAuZm9ybS1jb250cm9sLXN0YXRpY3tkaXNwbGF5OmlubGluZS1ibG9ja30ubmF2YmFyLWZvcm0gLmlucHV0LWdyb3Vwe2Rpc3BsYXk6aW5saW5lLXRhYmxlO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0ubmF2YmFyLWZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1hZGRvbiwubmF2YmFyLWZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idG4sLm5hdmJhci1mb3JtIC5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9se3dpZHRoOmF1dG99Lm5hdmJhci1mb3JtIC5pbnB1dC1ncm91cD4uZm9ybS1jb250cm9se3dpZHRoOjEwMCV9Lm5hdmJhci1mb3JtIC5jb250cm9sLWxhYmVse21hcmdpbi1ib3R0b206MDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lm5hdmJhci1mb3JtIC5yYWRpbywubmF2YmFyLWZvcm0gLmNoZWNrYm94e2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjA7dmVydGljYWwtYWxpZ246bWlkZGxlfS5uYXZiYXItZm9ybSAucmFkaW8gbGFiZWwsLm5hdmJhci1mb3JtIC5jaGVja2JveCBsYWJlbHtwYWRkaW5nLWxlZnQ6MH0ubmF2YmFyLWZvcm0gLnJhZGlvIGlucHV0W3R5cGU9InJhZGlvIl0sLm5hdmJhci1mb3JtIC5jaGVja2JveCBpbnB1dFt0eXBlPSJjaGVja2JveCJde3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbi1sZWZ0OjB9Lm5hdmJhci1mb3JtIC5oYXMtZmVlZGJhY2sgLmZvcm0tY29udHJvbC1mZWVkYmFja3t0b3A6MH19QG1lZGlhIChtYXgtd2lkdGg6NzY3cHgpey5uYXZiYXItZm9ybSAuZm9ybS1ncm91cHttYXJnaW4tYm90dG9tOjVweH0ubmF2YmFyLWZvcm0gLmZvcm0tZ3JvdXA6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsubmF2YmFyLWZvcm17d2lkdGg6YXV0bztwYWRkaW5nLXRvcDowO3BhZGRpbmctYm90dG9tOjA7bWFyZ2luLXJpZ2h0OjA7bWFyZ2luLWxlZnQ6MDtib3JkZXI6MDtib3gtc2hhZG93Om5vbmV9fS5uYXZiYXItbmF2PmxpPi5kcm9wZG93bi1tZW51e21hcmdpbi10b3A6MDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MH0ubmF2YmFyLWZpeGVkLWJvdHRvbSAubmF2YmFyLW5hdj5saT4uZHJvcGRvd24tbWVudXttYXJnaW4tYm90dG9tOjA7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czozcHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6M3B4O2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowfS5uYXZiYXItYnRue21hcmdpbi10b3A6MTMuNXB4O21hcmdpbi1ib3R0b206MTMuNXB4fS5uYXZiYXItYnRuLmJ0bi1zbXttYXJnaW4tdG9wOjE3cHg7bWFyZ2luLWJvdHRvbToxN3B4fS5uYXZiYXItYnRuLmJ0bi14c3ttYXJnaW4tdG9wOjIxcHg7bWFyZ2luLWJvdHRvbToyMXB4fS5uYXZiYXItdGV4dHttYXJnaW4tdG9wOjIwLjVweDttYXJnaW4tYm90dG9tOjIwLjVweH1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7Lm5hdmJhci10ZXh0e2Zsb2F0OmxlZnQ7bWFyZ2luLXJpZ2h0OjE1cHg7bWFyZ2luLWxlZnQ6MTVweH19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5uYXZiYXItbGVmdHtmbG9hdDpsZWZ0ICFpbXBvcnRhbnR9Lm5hdmJhci1yaWdodHtmbG9hdDpyaWdodCAhaW1wb3J0YW50O21hcmdpbi1yaWdodDotMTVweH0ubmF2YmFyLXJpZ2h0fi5uYXZiYXItcmlnaHR7bWFyZ2luLXJpZ2h0OjB9fS5uYXZiYXItZGVmYXVsdHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fS5uYXZiYXItZGVmYXVsdCAubmF2YmFyLWJyYW5ke2NvbG9yOiM2NjY2NjZ9Lm5hdmJhci1kZWZhdWx0IC5uYXZiYXItYnJhbmQ6aG92ZXIsLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItYnJhbmQ6Zm9jdXN7Y29sb3I6IzIxMjEyMTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5uYXZiYXItZGVmYXVsdCAubmF2YmFyLXRleHR7Y29sb3I6I2JiYmJiYn0ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXY+bGk+YXtjb2xvcjojNjY2NjY2fS5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdj5saT5hOmhvdmVyLC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdj5saT5hOmZvY3Vze2NvbG9yOiMyMTIxMjE7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXY+LmFjdGl2ZT5hLC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdj4uYWN0aXZlPmE6aG92ZXIsLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2Pi5hY3RpdmU+YTpmb2N1c3tjb2xvcjojMjEyMTIxO2JhY2tncm91bmQtY29sb3I6I2VlZWVlZX0ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXY+LmRpc2FibGVkPmEsLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2Pi5kaXNhYmxlZD5hOmhvdmVyLC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdj4uZGlzYWJsZWQ+YTpmb2N1c3tjb2xvcjojY2NjY2NjO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9Lm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2Pi5vcGVuPmEsLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2Pi5vcGVuPmE6aG92ZXIsLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2Pi5vcGVuPmE6Zm9jdXN7Y29sb3I6IzIxMjEyMTtiYWNrZ3JvdW5kLWNvbG9yOiNlZWVlZWV9QG1lZGlhIChtYXgtd2lkdGg6NzY3cHgpey5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudT5saT5he2NvbG9yOiM2NjY2NjZ9Lm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51PmxpPmE6aG92ZXIsLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51PmxpPmE6Zm9jdXN7Y29sb3I6IzIxMjEyMTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudT4uYWN0aXZlPmEsLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51Pi5hY3RpdmU+YTpob3ZlciwubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnU+LmFjdGl2ZT5hOmZvY3Vze2NvbG9yOiMyMTIxMjE7YmFja2dyb3VuZC1jb2xvcjojZWVlZWVlfS5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudT4uZGlzYWJsZWQ+YSwubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnU+LmRpc2FibGVkPmE6aG92ZXIsLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51Pi5kaXNhYmxlZD5hOmZvY3Vze2NvbG9yOiNjY2NjY2M7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH19Lm5hdmJhci1kZWZhdWx0IC5uYXZiYXItdG9nZ2xle2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH0ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci10b2dnbGU6aG92ZXIsLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItdG9nZ2xlOmZvY3Vze2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9Lm5hdmJhci1kZWZhdWx0IC5uYXZiYXItdG9nZ2xlIC5pY29uLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC41KX0ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1jb2xsYXBzZSwubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1mb3Jte2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH0ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1saW5re2NvbG9yOiM2NjY2NjZ9Lm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbGluazpob3Zlcntjb2xvcjojMjEyMTIxfS5uYXZiYXItZGVmYXVsdCAuYnRuLWxpbmt7Y29sb3I6IzY2NjY2Nn0ubmF2YmFyLWRlZmF1bHQgLmJ0bi1saW5rOmhvdmVyLC5uYXZiYXItZGVmYXVsdCAuYnRuLWxpbms6Zm9jdXN7Y29sb3I6IzIxMjEyMX0ubmF2YmFyLWRlZmF1bHQgLmJ0bi1saW5rW2Rpc2FibGVkXTpob3ZlcixmaWVsZHNldFtkaXNhYmxlZF0gLm5hdmJhci1kZWZhdWx0IC5idG4tbGluazpob3ZlciwubmF2YmFyLWRlZmF1bHQgLmJ0bi1saW5rW2Rpc2FibGVkXTpmb2N1cyxmaWVsZHNldFtkaXNhYmxlZF0gLm5hdmJhci1kZWZhdWx0IC5idG4tbGluazpmb2N1c3tjb2xvcjojY2NjY2NjfS5uYXZiYXItaW52ZXJzZXtiYWNrZ3JvdW5kLWNvbG9yOiMyMTk2ZjM7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fS5uYXZiYXItaW52ZXJzZSAubmF2YmFyLWJyYW5ke2NvbG9yOiNiMmRiZmJ9Lm5hdmJhci1pbnZlcnNlIC5uYXZiYXItYnJhbmQ6aG92ZXIsLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItYnJhbmQ6Zm9jdXN7Y29sb3I6I2ZmZmZmZjtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5uYXZiYXItaW52ZXJzZSAubmF2YmFyLXRleHR7Y29sb3I6I2JiYmJiYn0ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXY+bGk+YXtjb2xvcjojYjJkYmZifS5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdj5saT5hOmhvdmVyLC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdj5saT5hOmZvY3Vze2NvbG9yOiNmZmZmZmY7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXY+LmFjdGl2ZT5hLC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdj4uYWN0aXZlPmE6aG92ZXIsLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2Pi5hY3RpdmU+YTpmb2N1c3tjb2xvcjojZmZmZmZmO2JhY2tncm91bmQtY29sb3I6IzBjN2NkNX0ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXY+LmRpc2FibGVkPmEsLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2Pi5kaXNhYmxlZD5hOmhvdmVyLC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdj4uZGlzYWJsZWQ+YTpmb2N1c3tjb2xvcjojNDQ0NDQ0O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9Lm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2Pi5vcGVuPmEsLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2Pi5vcGVuPmE6aG92ZXIsLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2Pi5vcGVuPmE6Zm9jdXN7Y29sb3I6I2ZmZmZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMwYzdjZDV9QG1lZGlhIChtYXgtd2lkdGg6NzY3cHgpey5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudT4uZHJvcGRvd24taGVhZGVye2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH0ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgLmRpdmlkZXJ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnU+bGk+YXtjb2xvcjojYjJkYmZifS5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudT5saT5hOmhvdmVyLC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudT5saT5hOmZvY3Vze2NvbG9yOiNmZmZmZmY7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnU+LmFjdGl2ZT5hLC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudT4uYWN0aXZlPmE6aG92ZXIsLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51Pi5hY3RpdmU+YTpmb2N1c3tjb2xvcjojZmZmZmZmO2JhY2tncm91bmQtY29sb3I6IzBjN2NkNX0ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnU+LmRpc2FibGVkPmEsLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51Pi5kaXNhYmxlZD5hOmhvdmVyLC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudT4uZGlzYWJsZWQ+YTpmb2N1c3tjb2xvcjojNDQ0NDQ0O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9fS5uYXZiYXItaW52ZXJzZSAubmF2YmFyLXRvZ2dsZXtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9Lm5hdmJhci1pbnZlcnNlIC5uYXZiYXItdG9nZ2xlOmhvdmVyLC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLXRvZ2dsZTpmb2N1c3tiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5uYXZiYXItaW52ZXJzZSAubmF2YmFyLXRvZ2dsZSAuaWNvbi1iYXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNSl9Lm5hdmJhci1pbnZlcnNlIC5uYXZiYXItY29sbGFwc2UsLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItZm9ybXtib3JkZXItY29sb3I6IzBjODRlNH0ubmF2YmFyLWludmVyc2UgLm5hdmJhci1saW5re2NvbG9yOiNiMmRiZmJ9Lm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbGluazpob3Zlcntjb2xvcjojZmZmZmZmfS5uYXZiYXItaW52ZXJzZSAuYnRuLWxpbmt7Y29sb3I6I2IyZGJmYn0ubmF2YmFyLWludmVyc2UgLmJ0bi1saW5rOmhvdmVyLC5uYXZiYXItaW52ZXJzZSAuYnRuLWxpbms6Zm9jdXN7Y29sb3I6I2ZmZmZmZn0ubmF2YmFyLWludmVyc2UgLmJ0bi1saW5rW2Rpc2FibGVkXTpob3ZlcixmaWVsZHNldFtkaXNhYmxlZF0gLm5hdmJhci1pbnZlcnNlIC5idG4tbGluazpob3ZlciwubmF2YmFyLWludmVyc2UgLmJ0bi1saW5rW2Rpc2FibGVkXTpmb2N1cyxmaWVsZHNldFtkaXNhYmxlZF0gLm5hdmJhci1pbnZlcnNlIC5idG4tbGluazpmb2N1c3tjb2xvcjojNDQ0NDQ0fS5icmVhZGNydW1ie3BhZGRpbmc6OHB4IDE1cHg7bWFyZ2luLWJvdHRvbToyM3B4O2xpc3Qtc3R5bGU6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7Ym9yZGVyLXJhZGl1czozcHh9LmJyZWFkY3J1bWI+bGl7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmJyZWFkY3J1bWI+bGkrbGk6YmVmb3Jle3BhZGRpbmc6MCA1cHg7Y29sb3I6I2NjY2NjYztjb250ZW50OiIvXDAwYTAifS5icmVhZGNydW1iPi5hY3RpdmV7Y29sb3I6I2JiYmJiYn0ucGFnaW5hdGlvbntkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nLWxlZnQ6MDttYXJnaW46MjNweCAwO2JvcmRlci1yYWRpdXM6M3B4fS5wYWdpbmF0aW9uPmxpe2Rpc3BsYXk6aW5saW5lfS5wYWdpbmF0aW9uPmxpPmEsLnBhZ2luYXRpb24+bGk+c3Bhbntwb3NpdGlvbjpyZWxhdGl2ZTtmbG9hdDpsZWZ0O3BhZGRpbmc6NnB4IDE2cHg7bWFyZ2luLWxlZnQ6LTFweDtsaW5lLWhlaWdodDoxLjg0Njtjb2xvcjojMjE5NmYzO3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQtY29sb3I6I2ZmZmZmZjtib3JkZXI6MXB4IHNvbGlkICNkZGRkZGR9LnBhZ2luYXRpb24+bGk+YTpob3ZlciwucGFnaW5hdGlvbj5saT5zcGFuOmhvdmVyLC5wYWdpbmF0aW9uPmxpPmE6Zm9jdXMsLnBhZ2luYXRpb24+bGk+c3Bhbjpmb2N1c3t6LWluZGV4OjI7Y29sb3I6IzBhNmViZDtiYWNrZ3JvdW5kLWNvbG9yOiNlZWVlZWU7Ym9yZGVyLWNvbG9yOiNkZGRkZGR9LnBhZ2luYXRpb24+bGk6Zmlyc3QtY2hpbGQ+YSwucGFnaW5hdGlvbj5saTpmaXJzdC1jaGlsZD5zcGFue21hcmdpbi1sZWZ0OjA7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czozcHg7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czozcHh9LnBhZ2luYXRpb24+bGk6bGFzdC1jaGlsZD5hLC5wYWdpbmF0aW9uPmxpOmxhc3QtY2hpbGQ+c3Bhbntib3JkZXItdG9wLXJpZ2h0LXJhZGl1czozcHg7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6M3B4fS5wYWdpbmF0aW9uPi5hY3RpdmU+YSwucGFnaW5hdGlvbj4uYWN0aXZlPnNwYW4sLnBhZ2luYXRpb24+LmFjdGl2ZT5hOmhvdmVyLC5wYWdpbmF0aW9uPi5hY3RpdmU+c3Bhbjpob3ZlciwucGFnaW5hdGlvbj4uYWN0aXZlPmE6Zm9jdXMsLnBhZ2luYXRpb24+LmFjdGl2ZT5zcGFuOmZvY3Vze3otaW5kZXg6Mztjb2xvcjojZmZmZmZmO2N1cnNvcjpkZWZhdWx0O2JhY2tncm91bmQtY29sb3I6IzIxOTZmMztib3JkZXItY29sb3I6IzIxOTZmM30ucGFnaW5hdGlvbj4uZGlzYWJsZWQ+c3BhbiwucGFnaW5hdGlvbj4uZGlzYWJsZWQ+c3Bhbjpob3ZlciwucGFnaW5hdGlvbj4uZGlzYWJsZWQ+c3Bhbjpmb2N1cywucGFnaW5hdGlvbj4uZGlzYWJsZWQ+YSwucGFnaW5hdGlvbj4uZGlzYWJsZWQ+YTpob3ZlciwucGFnaW5hdGlvbj4uZGlzYWJsZWQ+YTpmb2N1c3tjb2xvcjojYmJiYmJiO2N1cnNvcjpub3QtYWxsb3dlZDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7Ym9yZGVyLWNvbG9yOiNkZGRkZGR9LnBhZ2luYXRpb24tbGc+bGk+YSwucGFnaW5hdGlvbi1sZz5saT5zcGFue3BhZGRpbmc6MTBweCAxNnB4O2ZvbnQtc2l6ZToxN3B4O2xpbmUtaGVpZ2h0OjEuMzMzMzMzM30ucGFnaW5hdGlvbi1sZz5saTpmaXJzdC1jaGlsZD5hLC5wYWdpbmF0aW9uLWxnPmxpOmZpcnN0LWNoaWxkPnNwYW57Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czozcHg7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czozcHh9LnBhZ2luYXRpb24tbGc+bGk6bGFzdC1jaGlsZD5hLC5wYWdpbmF0aW9uLWxnPmxpOmxhc3QtY2hpbGQ+c3Bhbntib3JkZXItdG9wLXJpZ2h0LXJhZGl1czozcHg7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6M3B4fS5wYWdpbmF0aW9uLXNtPmxpPmEsLnBhZ2luYXRpb24tc20+bGk+c3BhbntwYWRkaW5nOjVweCAxMHB4O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjEuNX0ucGFnaW5hdGlvbi1zbT5saTpmaXJzdC1jaGlsZD5hLC5wYWdpbmF0aW9uLXNtPmxpOmZpcnN0LWNoaWxkPnNwYW57Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czozcHg7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czozcHh9LnBhZ2luYXRpb24tc20+bGk6bGFzdC1jaGlsZD5hLC5wYWdpbmF0aW9uLXNtPmxpOmxhc3QtY2hpbGQ+c3Bhbntib3JkZXItdG9wLXJpZ2h0LXJhZGl1czozcHg7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6M3B4fS5wYWdlcntwYWRkaW5nLWxlZnQ6MDttYXJnaW46MjNweCAwO3RleHQtYWxpZ246Y2VudGVyO2xpc3Qtc3R5bGU6bm9uZX0ucGFnZXIgbGl7ZGlzcGxheTppbmxpbmV9LnBhZ2VyIGxpPmEsLnBhZ2VyIGxpPnNwYW57ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZzo1cHggMTRweDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7Ym9yZGVyOjFweCBzb2xpZCAjZGRkZGRkO2JvcmRlci1yYWRpdXM6MTVweH0ucGFnZXIgbGk+YTpob3ZlciwucGFnZXIgbGk+YTpmb2N1c3t0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiNlZWVlZWV9LnBhZ2VyIC5uZXh0PmEsLnBhZ2VyIC5uZXh0PnNwYW57ZmxvYXQ6cmlnaHR9LnBhZ2VyIC5wcmV2aW91cz5hLC5wYWdlciAucHJldmlvdXM+c3BhbntmbG9hdDpsZWZ0fS5wYWdlciAuZGlzYWJsZWQ+YSwucGFnZXIgLmRpc2FibGVkPmE6aG92ZXIsLnBhZ2VyIC5kaXNhYmxlZD5hOmZvY3VzLC5wYWdlciAuZGlzYWJsZWQ+c3Bhbntjb2xvcjojYmJiYmJiO2N1cnNvcjpub3QtYWxsb3dlZDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmZ9LmxhYmVse2Rpc3BsYXk6aW5saW5lO3BhZGRpbmc6LjJlbSAuNmVtIC4zZW07Zm9udC1zaXplOjc1JTtmb250LXdlaWdodDo3MDA7bGluZS1oZWlnaHQ6MTtjb2xvcjojZmZmZmZmO3RleHQtYWxpZ246Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcDt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTtib3JkZXItcmFkaXVzOi4yNWVtfWEubGFiZWw6aG92ZXIsYS5sYWJlbDpmb2N1c3tjb2xvcjojZmZmZmZmO3RleHQtZGVjb3JhdGlvbjpub25lO2N1cnNvcjpwb2ludGVyfS5sYWJlbDplbXB0eXtkaXNwbGF5Om5vbmV9LmJ0biAubGFiZWx7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0xcHh9LmxhYmVsLWRlZmF1bHR7YmFja2dyb3VuZC1jb2xvcjojYmJiYmJifS5sYWJlbC1kZWZhdWx0W2hyZWZdOmhvdmVyLC5sYWJlbC1kZWZhdWx0W2hyZWZdOmZvY3Vze2JhY2tncm91bmQtY29sb3I6I2EyYTJhMn0ubGFiZWwtcHJpbWFyeXtiYWNrZ3JvdW5kLWNvbG9yOiMyMTk2ZjN9LmxhYmVsLXByaW1hcnlbaHJlZl06aG92ZXIsLmxhYmVsLXByaW1hcnlbaHJlZl06Zm9jdXN7YmFja2dyb3VuZC1jb2xvcjojMGM3Y2Q1fS5sYWJlbC1zdWNjZXNze2JhY2tncm91bmQtY29sb3I6IzRjYWY1MH0ubGFiZWwtc3VjY2Vzc1tocmVmXTpob3ZlciwubGFiZWwtc3VjY2Vzc1tocmVmXTpmb2N1c3tiYWNrZ3JvdW5kLWNvbG9yOiMzZDhiNDB9LmxhYmVsLWluZm97YmFja2dyb3VuZC1jb2xvcjojOWMyN2IwfS5sYWJlbC1pbmZvW2hyZWZdOmhvdmVyLC5sYWJlbC1pbmZvW2hyZWZdOmZvY3Vze2JhY2tncm91bmQtY29sb3I6Izc3MWU4Nn0ubGFiZWwtd2FybmluZ3tiYWNrZ3JvdW5kLWNvbG9yOiNmZjk4MDB9LmxhYmVsLXdhcm5pbmdbaHJlZl06aG92ZXIsLmxhYmVsLXdhcm5pbmdbaHJlZl06Zm9jdXN7YmFja2dyb3VuZC1jb2xvcjojY2M3YTAwfS5sYWJlbC1kYW5nZXJ7YmFja2dyb3VuZC1jb2xvcjojZTUxYzIzfS5sYWJlbC1kYW5nZXJbaHJlZl06aG92ZXIsLmxhYmVsLWRhbmdlcltocmVmXTpmb2N1c3tiYWNrZ3JvdW5kLWNvbG9yOiNiOTE1MWJ9LmJhZGdle2Rpc3BsYXk6aW5saW5lLWJsb2NrO21pbi13aWR0aDoxMHB4O3BhZGRpbmc6M3B4IDdweDtmb250LXNpemU6MTJweDtmb250LXdlaWdodDpub3JtYWw7bGluZS1oZWlnaHQ6MTtjb2xvcjojZmZmZmZmO3RleHQtYWxpZ246Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7YmFja2dyb3VuZC1jb2xvcjojYmJiYmJiO2JvcmRlci1yYWRpdXM6MTBweH0uYmFkZ2U6ZW1wdHl7ZGlzcGxheTpub25lfS5idG4gLmJhZGdle3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotMXB4fS5idG4teHMgLmJhZGdlLC5idG4tZ3JvdXAteHM+LmJ0biAuYmFkZ2V7dG9wOjA7cGFkZGluZzoxcHggNXB4fWEuYmFkZ2U6aG92ZXIsYS5iYWRnZTpmb2N1c3tjb2xvcjojZmZmZmZmO3RleHQtZGVjb3JhdGlvbjpub25lO2N1cnNvcjpwb2ludGVyfS5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlPi5iYWRnZSwubmF2LXBpbGxzPi5hY3RpdmU+YT4uYmFkZ2V7Y29sb3I6IzIxOTZmMztiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmZ9Lmxpc3QtZ3JvdXAtaXRlbT4uYmFkZ2V7ZmxvYXQ6cmlnaHR9Lmxpc3QtZ3JvdXAtaXRlbT4uYmFkZ2UrLmJhZGdle21hcmdpbi1yaWdodDo1cHh9Lm5hdi1waWxscz5saT5hPi5iYWRnZXttYXJnaW4tbGVmdDozcHh9Lmp1bWJvdHJvbntwYWRkaW5nLXRvcDozMHB4O3BhZGRpbmctYm90dG9tOjMwcHg7bWFyZ2luLWJvdHRvbTozMHB4O2NvbG9yOmluaGVyaXQ7YmFja2dyb3VuZC1jb2xvcjojZjlmOWY5fS5qdW1ib3Ryb24gaDEsLmp1bWJvdHJvbiAuaDF7Y29sb3I6IzQ0NDQ0NH0uanVtYm90cm9uIHB7bWFyZ2luLWJvdHRvbToxNXB4O2ZvbnQtc2l6ZToyMHB4O2ZvbnQtd2VpZ2h0OjIwMH0uanVtYm90cm9uPmhye2JvcmRlci10b3AtY29sb3I6I2UwZTBlMH0uY29udGFpbmVyIC5qdW1ib3Ryb24sLmNvbnRhaW5lci1mbHVpZCAuanVtYm90cm9ue3BhZGRpbmctcmlnaHQ6MTVweDtwYWRkaW5nLWxlZnQ6MTVweDtib3JkZXItcmFkaXVzOjNweH0uanVtYm90cm9uIC5jb250YWluZXJ7bWF4LXdpZHRoOjEwMCV9QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo3NjhweCl7Lmp1bWJvdHJvbntwYWRkaW5nLXRvcDo0OHB4O3BhZGRpbmctYm90dG9tOjQ4cHh9LmNvbnRhaW5lciAuanVtYm90cm9uLC5jb250YWluZXItZmx1aWQgLmp1bWJvdHJvbntwYWRkaW5nLXJpZ2h0OjYwcHg7cGFkZGluZy1sZWZ0OjYwcHh9Lmp1bWJvdHJvbiBoMSwuanVtYm90cm9uIC5oMXtmb250LXNpemU6NTlweH19LnRodW1ibmFpbHtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6NHB4O21hcmdpbi1ib3R0b206MjNweDtsaW5lLWhlaWdodDoxLjg0NjtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7Ym9yZGVyOjFweCBzb2xpZCAjZGRkZGRkO2JvcmRlci1yYWRpdXM6M3B4O3RyYW5zaXRpb246Ym9yZGVyIC4ycyBlYXNlLWluLW91dH0udGh1bWJuYWlsPmltZywudGh1bWJuYWlsIGE+aW1ne21hcmdpbi1yaWdodDphdXRvO21hcmdpbi1sZWZ0OmF1dG99YS50aHVtYm5haWw6aG92ZXIsYS50aHVtYm5haWw6Zm9jdXMsYS50aHVtYm5haWwuYWN0aXZle2JvcmRlci1jb2xvcjojMjE5NmYzfS50aHVtYm5haWwgLmNhcHRpb257cGFkZGluZzo5cHg7Y29sb3I6IzY2NjY2Nn0uYWxlcnR7cGFkZGluZzoxNXB4O21hcmdpbi1ib3R0b206MjNweDtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6M3B4fS5hbGVydCBoNHttYXJnaW4tdG9wOjA7Y29sb3I6aW5oZXJpdH0uYWxlcnQgLmFsZXJ0LWxpbmt7Zm9udC13ZWlnaHQ6Ym9sZH0uYWxlcnQ+cCwuYWxlcnQ+dWx7bWFyZ2luLWJvdHRvbTowfS5hbGVydD5wK3B7bWFyZ2luLXRvcDo1cHh9LmFsZXJ0LWRpc21pc3NhYmxlLC5hbGVydC1kaXNtaXNzaWJsZXtwYWRkaW5nLXJpZ2h0OjM1cHh9LmFsZXJ0LWRpc21pc3NhYmxlIC5jbG9zZSwuYWxlcnQtZGlzbWlzc2libGUgLmNsb3Nle3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotMnB4O3JpZ2h0Oi0yMXB4O2NvbG9yOmluaGVyaXR9LmFsZXJ0LXN1Y2Nlc3N7Y29sb3I6IzRjYWY1MDtiYWNrZ3JvdW5kLWNvbG9yOiNkZmYwZDg7Ym9yZGVyLWNvbG9yOiNkNmU5YzZ9LmFsZXJ0LXN1Y2Nlc3MgaHJ7Ym9yZGVyLXRvcC1jb2xvcjojYzllMmIzfS5hbGVydC1zdWNjZXNzIC5hbGVydC1saW5re2NvbG9yOiMzZDhiNDB9LmFsZXJ0LWluZm97Y29sb3I6IzljMjdiMDtiYWNrZ3JvdW5kLWNvbG9yOiNlMWJlZTc7Ym9yZGVyLWNvbG9yOiNjYmE0ZGR9LmFsZXJ0LWluZm8gaHJ7Ym9yZGVyLXRvcC1jb2xvcjojYzE5MWQ2fS5hbGVydC1pbmZvIC5hbGVydC1saW5re2NvbG9yOiM3NzFlODZ9LmFsZXJ0LXdhcm5pbmd7Y29sb3I6I2ZmOTgwMDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmUwYjI7Ym9yZGVyLWNvbG9yOiNmZmM1OTl9LmFsZXJ0LXdhcm5pbmcgaHJ7Ym9yZGVyLXRvcC1jb2xvcjojZmZiNjdmfS5hbGVydC13YXJuaW5nIC5hbGVydC1saW5re2NvbG9yOiNjYzdhMDB9LmFsZXJ0LWRhbmdlcntjb2xvcjojZTUxYzIzO2JhY2tncm91bmQtY29sb3I6I2Y5YmRiYjtib3JkZXItY29sb3I6I2Y3YTRhZn0uYWxlcnQtZGFuZ2VyIGhye2JvcmRlci10b3AtY29sb3I6I2Y1OGM5YX0uYWxlcnQtZGFuZ2VyIC5hbGVydC1saW5re2NvbG9yOiNiOTE1MWJ9QC13ZWJraXQta2V5ZnJhbWVzIHByb2dyZXNzLWJhci1zdHJpcGVze2Zyb217YmFja2dyb3VuZC1wb3NpdGlvbjo0MHB4IDB9dG97YmFja2dyb3VuZC1wb3NpdGlvbjowIDB9fUBrZXlmcmFtZXMgcHJvZ3Jlc3MtYmFyLXN0cmlwZXN7ZnJvbXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjQwcHggMH10b3tiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgMH19LnByb2dyZXNze2hlaWdodDoyM3B4O21hcmdpbi1ib3R0b206MjNweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O2JvcmRlci1yYWRpdXM6M3B4O2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMnB4IHJnYmEoMCwwLDAsMC4xKX0ucHJvZ3Jlc3MtYmFye2Zsb2F0OmxlZnQ7d2lkdGg6MCU7aGVpZ2h0OjEwMCU7Zm9udC1zaXplOjEycHg7bGluZS1oZWlnaHQ6MjNweDtjb2xvcjojZmZmZmZmO3RleHQtYWxpZ246Y2VudGVyO2JhY2tncm91bmQtY29sb3I6IzIxOTZmMztib3gtc2hhZG93Omluc2V0IDAgLTFweCAwIHJnYmEoMCwwLDAsMC4xNSk7dHJhbnNpdGlvbjp3aWR0aCAwLjZzIGVhc2V9LnByb2dyZXNzLXN0cmlwZWQgLnByb2dyZXNzLWJhciwucHJvZ3Jlc3MtYmFyLXN0cmlwZWR7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LDI1NSwyNTUsMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwwLjE1KSA1MCUsIHJnYmEoMjU1LDI1NSwyNTUsMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtiYWNrZ3JvdW5kLXNpemU6NDBweCA0MHB4fS5wcm9ncmVzcy5hY3RpdmUgLnByb2dyZXNzLWJhciwucHJvZ3Jlc3MtYmFyLmFjdGl2ZXstd2Via2l0LWFuaW1hdGlvbjpwcm9ncmVzcy1iYXItc3RyaXBlcyAycyBsaW5lYXIgaW5maW5pdGU7YW5pbWF0aW9uOnByb2dyZXNzLWJhci1zdHJpcGVzIDJzIGxpbmVhciBpbmZpbml0ZX0ucHJvZ3Jlc3MtYmFyLXN1Y2Nlc3N7YmFja2dyb3VuZC1jb2xvcjojNGNhZjUwfS5wcm9ncmVzcy1zdHJpcGVkIC5wcm9ncmVzcy1iYXItc3VjY2Vzc3tiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsMjU1LDI1NSwwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpIDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpfS5wcm9ncmVzcy1iYXItaW5mb3tiYWNrZ3JvdW5kLWNvbG9yOiM5YzI3YjB9LnByb2dyZXNzLXN0cmlwZWQgLnByb2dyZXNzLWJhci1pbmZve2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LDI1NSwyNTUsMC4xNSkgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCl9LnByb2dyZXNzLWJhci13YXJuaW5ne2JhY2tncm91bmQtY29sb3I6I2ZmOTgwMH0ucHJvZ3Jlc3Mtc3RyaXBlZCAucHJvZ3Jlc3MtYmFyLXdhcm5pbmd7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LDI1NSwyNTUsMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwwLjE1KSA1MCUsIHJnYmEoMjU1LDI1NSwyNTUsMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KX0ucHJvZ3Jlc3MtYmFyLWRhbmdlcntiYWNrZ3JvdW5kLWNvbG9yOiNlNTFjMjN9LnByb2dyZXNzLXN0cmlwZWQgLnByb2dyZXNzLWJhci1kYW5nZXJ7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LDI1NSwyNTUsMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwwLjE1KSA1MCUsIHJnYmEoMjU1LDI1NSwyNTUsMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KX0ubWVkaWF7bWFyZ2luLXRvcDoxNXB4fS5tZWRpYTpmaXJzdC1jaGlsZHttYXJnaW4tdG9wOjB9Lm1lZGlhLC5tZWRpYS1ib2R5e292ZXJmbG93OmhpZGRlbjt6b29tOjF9Lm1lZGlhLWJvZHl7d2lkdGg6MTAwMDBweH0ubWVkaWEtb2JqZWN0e2Rpc3BsYXk6YmxvY2t9Lm1lZGlhLW9iamVjdC5pbWctdGh1bWJuYWlse21heC13aWR0aDpub25lfS5tZWRpYS1yaWdodCwubWVkaWE+LnB1bGwtcmlnaHR7cGFkZGluZy1sZWZ0OjEwcHh9Lm1lZGlhLWxlZnQsLm1lZGlhPi5wdWxsLWxlZnR7cGFkZGluZy1yaWdodDoxMHB4fS5tZWRpYS1sZWZ0LC5tZWRpYS1yaWdodCwubWVkaWEtYm9keXtkaXNwbGF5OnRhYmxlLWNlbGw7dmVydGljYWwtYWxpZ246dG9wfS5tZWRpYS1taWRkbGV7dmVydGljYWwtYWxpZ246bWlkZGxlfS5tZWRpYS1ib3R0b217dmVydGljYWwtYWxpZ246Ym90dG9tfS5tZWRpYS1oZWFkaW5ne21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjVweH0ubWVkaWEtbGlzdHtwYWRkaW5nLWxlZnQ6MDtsaXN0LXN0eWxlOm5vbmV9Lmxpc3QtZ3JvdXB7cGFkZGluZy1sZWZ0OjA7bWFyZ2luLWJvdHRvbToyMHB4fS5saXN0LWdyb3VwLWl0ZW17cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jaztwYWRkaW5nOjEwcHggMTVweDttYXJnaW4tYm90dG9tOi0xcHg7YmFja2dyb3VuZC1jb2xvcjojZmZmZmZmO2JvcmRlcjoxcHggc29saWQgI2RkZGRkZH0ubGlzdC1ncm91cC1pdGVtOmZpcnN0LWNoaWxke2JvcmRlci10b3AtbGVmdC1yYWRpdXM6M3B4O2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjNweH0ubGlzdC1ncm91cC1pdGVtOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjNweDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjNweH0ubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkLC5saXN0LWdyb3VwLWl0ZW0uZGlzYWJsZWQ6aG92ZXIsLmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZDpmb2N1c3tjb2xvcjojYmJiYmJiO2N1cnNvcjpub3QtYWxsb3dlZDtiYWNrZ3JvdW5kLWNvbG9yOiNlZWVlZWV9Lmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZCAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsLmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZDpob3ZlciAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsLmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZDpmb2N1cyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmd7Y29sb3I6aW5oZXJpdH0ubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkIC5saXN0LWdyb3VwLWl0ZW0tdGV4dCwubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkOmhvdmVyIC5saXN0LWdyb3VwLWl0ZW0tdGV4dCwubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkOmZvY3VzIC5saXN0LWdyb3VwLWl0ZW0tdGV4dHtjb2xvcjojYmJiYmJifS5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlLC5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmhvdmVyLC5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmZvY3Vze3otaW5kZXg6Mjtjb2xvcjojZmZmZmZmO2JhY2tncm91bmQtY29sb3I6IzIxOTZmMztib3JkZXItY29sb3I6IzIxOTZmM30ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZSAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6aG92ZXIgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLC5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmZvY3VzIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZywubGlzdC1ncm91cC1pdGVtLmFjdGl2ZSAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmc+c21hbGwsLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6aG92ZXIgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nPnNtYWxsLC5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmZvY3VzIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZz5zbWFsbCwubGlzdC1ncm91cC1pdGVtLmFjdGl2ZSAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmc+LnNtYWxsLC5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmhvdmVyIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZz4uc21hbGwsLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6Zm9jdXMgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nPi5zbWFsbHtjb2xvcjppbmhlcml0fS5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlIC5saXN0LWdyb3VwLWl0ZW0tdGV4dCwubGlzdC1ncm91cC1pdGVtLmFjdGl2ZTpob3ZlciAubGlzdC1ncm91cC1pdGVtLXRleHQsLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6Zm9jdXMgLmxpc3QtZ3JvdXAtaXRlbS10ZXh0e2NvbG9yOiNlM2YyZmR9YS5saXN0LWdyb3VwLWl0ZW0sYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbXtjb2xvcjojNTU1NTU1fWEubGlzdC1ncm91cC1pdGVtIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyxidXR0b24ubGlzdC1ncm91cC1pdGVtIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZ3tjb2xvcjojMzMzMzMzfWEubGlzdC1ncm91cC1pdGVtOmhvdmVyLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW06aG92ZXIsYS5saXN0LWdyb3VwLWl0ZW06Zm9jdXMsYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbTpmb2N1c3tjb2xvcjojNTU1NTU1O3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQtY29sb3I6I2Y1ZjVmNX1idXR0b24ubGlzdC1ncm91cC1pdGVte3dpZHRoOjEwMCU7dGV4dC1hbGlnbjpsZWZ0fS5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzc3tjb2xvcjojNGNhZjUwO2JhY2tncm91bmQtY29sb3I6I2RmZjBkOH1hLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzc3tjb2xvcjojNGNhZjUwfWEubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tc3VjY2VzcyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmd7Y29sb3I6aW5oZXJpdH1hLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzOmhvdmVyLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzczpob3ZlcixhLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzOmZvY3VzLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzczpmb2N1c3tjb2xvcjojNGNhZjUwO2JhY2tncm91bmQtY29sb3I6I2QwZTljNn1hLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzLmFjdGl2ZSxidXR0b24ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MuYWN0aXZlLGEubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MuYWN0aXZlOmhvdmVyLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzcy5hY3RpdmU6aG92ZXIsYS5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzcy5hY3RpdmU6Zm9jdXMsYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzLmFjdGl2ZTpmb2N1c3tjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzRjYWY1MDtib3JkZXItY29sb3I6IzRjYWY1MH0ubGlzdC1ncm91cC1pdGVtLWluZm97Y29sb3I6IzljMjdiMDtiYWNrZ3JvdW5kLWNvbG9yOiNlMWJlZTd9YS5saXN0LWdyb3VwLWl0ZW0taW5mbyxidXR0b24ubGlzdC1ncm91cC1pdGVtLWluZm97Y29sb3I6IzljMjdiMH1hLmxpc3QtZ3JvdXAtaXRlbS1pbmZvIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyxidXR0b24ubGlzdC1ncm91cC1pdGVtLWluZm8gLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5ne2NvbG9yOmluaGVyaXR9YS5saXN0LWdyb3VwLWl0ZW0taW5mbzpob3ZlcixidXR0b24ubGlzdC1ncm91cC1pdGVtLWluZm86aG92ZXIsYS5saXN0LWdyb3VwLWl0ZW0taW5mbzpmb2N1cyxidXR0b24ubGlzdC1ncm91cC1pdGVtLWluZm86Zm9jdXN7Y29sb3I6IzljMjdiMDtiYWNrZ3JvdW5kLWNvbG9yOiNkOGFiZTB9YS5saXN0LWdyb3VwLWl0ZW0taW5mby5hY3RpdmUsYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1pbmZvLmFjdGl2ZSxhLmxpc3QtZ3JvdXAtaXRlbS1pbmZvLmFjdGl2ZTpob3ZlcixidXR0b24ubGlzdC1ncm91cC1pdGVtLWluZm8uYWN0aXZlOmhvdmVyLGEubGlzdC1ncm91cC1pdGVtLWluZm8uYWN0aXZlOmZvY3VzLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0taW5mby5hY3RpdmU6Zm9jdXN7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiM5YzI3YjA7Ym9yZGVyLWNvbG9yOiM5YzI3YjB9Lmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5ne2NvbG9yOiNmZjk4MDA7YmFja2dyb3VuZC1jb2xvcjojZmZlMGIyfWEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcsYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5ne2NvbG9yOiNmZjk4MDB9YS5saXN0LWdyb3VwLWl0ZW0td2FybmluZyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZ3tjb2xvcjppbmhlcml0fWEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmc6aG92ZXIsYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nOmhvdmVyLGEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmc6Zm9jdXMsYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nOmZvY3Vze2NvbG9yOiNmZjk4MDA7YmFja2dyb3VuZC1jb2xvcjojZmZkNjk5fWEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcuYWN0aXZlLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0td2FybmluZy5hY3RpdmUsYS5saXN0LWdyb3VwLWl0ZW0td2FybmluZy5hY3RpdmU6aG92ZXIsYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nLmFjdGl2ZTpob3ZlcixhLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nLmFjdGl2ZTpmb2N1cyxidXR0b24ubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcuYWN0aXZlOmZvY3Vze2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojZmY5ODAwO2JvcmRlci1jb2xvcjojZmY5ODAwfS5saXN0LWdyb3VwLWl0ZW0tZGFuZ2Vye2NvbG9yOiNlNTFjMjM7YmFja2dyb3VuZC1jb2xvcjojZjliZGJifWEubGlzdC1ncm91cC1pdGVtLWRhbmdlcixidXR0b24ubGlzdC1ncm91cC1pdGVtLWRhbmdlcntjb2xvcjojZTUxYzIzfWEubGlzdC1ncm91cC1pdGVtLWRhbmdlciAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5ne2NvbG9yOmluaGVyaXR9YS5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyOmhvdmVyLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyOmhvdmVyLGEubGlzdC1ncm91cC1pdGVtLWRhbmdlcjpmb2N1cyxidXR0b24ubGlzdC1ncm91cC1pdGVtLWRhbmdlcjpmb2N1c3tjb2xvcjojZTUxYzIzO2JhY2tncm91bmQtY29sb3I6I2Y3YTZhNH1hLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIuYWN0aXZlLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyLmFjdGl2ZSxhLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIuYWN0aXZlOmhvdmVyLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyLmFjdGl2ZTpob3ZlcixhLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIuYWN0aXZlOmZvY3VzLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyLmFjdGl2ZTpmb2N1c3tjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6I2U1MWMyMztib3JkZXItY29sb3I6I2U1MWMyM30ubGlzdC1ncm91cC1pdGVtLWhlYWRpbmd7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206NXB4fS5saXN0LWdyb3VwLWl0ZW0tdGV4dHttYXJnaW4tYm90dG9tOjA7bGluZS1oZWlnaHQ6MS4zfS5wYW5lbHttYXJnaW4tYm90dG9tOjIzcHg7YmFja2dyb3VuZC1jb2xvcjojZmZmZmZmO2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czozcHg7Ym94LXNoYWRvdzowIDFweCAxcHggcmdiYSgwLDAsMCwwLjA1KX0ucGFuZWwtYm9keXtwYWRkaW5nOjE1cHh9LnBhbmVsLWhlYWRpbmd7cGFkZGluZzoxMHB4IDE1cHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czoycHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MnB4fS5wYW5lbC1oZWFkaW5nPi5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xle2NvbG9yOmluaGVyaXR9LnBhbmVsLXRpdGxle21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjA7Zm9udC1zaXplOjE1cHg7Y29sb3I6aW5oZXJpdH0ucGFuZWwtdGl0bGU+YSwucGFuZWwtdGl0bGU+c21hbGwsLnBhbmVsLXRpdGxlPi5zbWFsbCwucGFuZWwtdGl0bGU+c21hbGw+YSwucGFuZWwtdGl0bGU+LnNtYWxsPmF7Y29sb3I6aW5oZXJpdH0ucGFuZWwtZm9vdGVye3BhZGRpbmc6MTBweCAxNXB4O2JhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTtib3JkZXItdG9wOjFweCBzb2xpZCAjZGRkZGRkO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjJweDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjJweH0ucGFuZWw+Lmxpc3QtZ3JvdXAsLnBhbmVsPi5wYW5lbC1jb2xsYXBzZT4ubGlzdC1ncm91cHttYXJnaW4tYm90dG9tOjB9LnBhbmVsPi5saXN0LWdyb3VwIC5saXN0LWdyb3VwLWl0ZW0sLnBhbmVsPi5wYW5lbC1jb2xsYXBzZT4ubGlzdC1ncm91cCAubGlzdC1ncm91cC1pdGVte2JvcmRlci13aWR0aDoxcHggMDtib3JkZXItcmFkaXVzOjB9LnBhbmVsPi5saXN0LWdyb3VwOmZpcnN0LWNoaWxkIC5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQsLnBhbmVsPi5wYW5lbC1jb2xsYXBzZT4ubGlzdC1ncm91cDpmaXJzdC1jaGlsZCAubGlzdC1ncm91cC1pdGVtOmZpcnN0LWNoaWxke2JvcmRlci10b3A6MDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjJweDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czoycHh9LnBhbmVsPi5saXN0LWdyb3VwOmxhc3QtY2hpbGQgLmxpc3QtZ3JvdXAtaXRlbTpsYXN0LWNoaWxkLC5wYW5lbD4ucGFuZWwtY29sbGFwc2U+Lmxpc3QtZ3JvdXA6bGFzdC1jaGlsZCAubGlzdC1ncm91cC1pdGVtOmxhc3QtY2hpbGR7Ym9yZGVyLWJvdHRvbTowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjJweDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjJweH0ucGFuZWw+LnBhbmVsLWhlYWRpbmcrLnBhbmVsLWNvbGxhcHNlPi5saXN0LWdyb3VwIC5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGR7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjB9LnBhbmVsLWhlYWRpbmcrLmxpc3QtZ3JvdXAgLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZHtib3JkZXItdG9wLXdpZHRoOjB9Lmxpc3QtZ3JvdXArLnBhbmVsLWZvb3Rlcntib3JkZXItdG9wLXdpZHRoOjB9LnBhbmVsPi50YWJsZSwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLC5wYW5lbD4ucGFuZWwtY29sbGFwc2U+LnRhYmxle21hcmdpbi1ib3R0b206MH0ucGFuZWw+LnRhYmxlIGNhcHRpb24sLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlPi50YWJsZSBjYXB0aW9uLC5wYW5lbD4ucGFuZWwtY29sbGFwc2U+LnRhYmxlIGNhcHRpb257cGFkZGluZy1yaWdodDoxNXB4O3BhZGRpbmctbGVmdDoxNXB4fS5wYW5lbD4udGFibGU6Zmlyc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkPi50YWJsZTpmaXJzdC1jaGlsZHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjJweDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czoycHh9LnBhbmVsPi50YWJsZTpmaXJzdC1jaGlsZD50aGVhZDpmaXJzdC1jaGlsZD50cjpmaXJzdC1jaGlsZCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQ+LnRhYmxlOmZpcnN0LWNoaWxkPnRoZWFkOmZpcnN0LWNoaWxkPnRyOmZpcnN0LWNoaWxkLC5wYW5lbD4udGFibGU6Zmlyc3QtY2hpbGQ+dGJvZHk6Zmlyc3QtY2hpbGQ+dHI6Zmlyc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkPi50YWJsZTpmaXJzdC1jaGlsZD50Ym9keTpmaXJzdC1jaGlsZD50cjpmaXJzdC1jaGlsZHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjJweDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czoycHh9LnBhbmVsPi50YWJsZTpmaXJzdC1jaGlsZD50aGVhZDpmaXJzdC1jaGlsZD50cjpmaXJzdC1jaGlsZCB0ZDpmaXJzdC1jaGlsZCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQ+LnRhYmxlOmZpcnN0LWNoaWxkPnRoZWFkOmZpcnN0LWNoaWxkPnRyOmZpcnN0LWNoaWxkIHRkOmZpcnN0LWNoaWxkLC5wYW5lbD4udGFibGU6Zmlyc3QtY2hpbGQ+dGJvZHk6Zmlyc3QtY2hpbGQ+dHI6Zmlyc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkPi50YWJsZTpmaXJzdC1jaGlsZD50Ym9keTpmaXJzdC1jaGlsZD50cjpmaXJzdC1jaGlsZCB0ZDpmaXJzdC1jaGlsZCwucGFuZWw+LnRhYmxlOmZpcnN0LWNoaWxkPnRoZWFkOmZpcnN0LWNoaWxkPnRyOmZpcnN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkLC5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZD4udGFibGU6Zmlyc3QtY2hpbGQ+dGhlYWQ6Zmlyc3QtY2hpbGQ+dHI6Zmlyc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQsLnBhbmVsPi50YWJsZTpmaXJzdC1jaGlsZD50Ym9keTpmaXJzdC1jaGlsZD50cjpmaXJzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQ+LnRhYmxlOmZpcnN0LWNoaWxkPnRib2R5OmZpcnN0LWNoaWxkPnRyOmZpcnN0LWNoaWxkIHRoOmZpcnN0LWNoaWxke2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MnB4fS5wYW5lbD4udGFibGU6Zmlyc3QtY2hpbGQ+dGhlYWQ6Zmlyc3QtY2hpbGQ+dHI6Zmlyc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQ+LnRhYmxlOmZpcnN0LWNoaWxkPnRoZWFkOmZpcnN0LWNoaWxkPnRyOmZpcnN0LWNoaWxkIHRkOmxhc3QtY2hpbGQsLnBhbmVsPi50YWJsZTpmaXJzdC1jaGlsZD50Ym9keTpmaXJzdC1jaGlsZD50cjpmaXJzdC1jaGlsZCB0ZDpsYXN0LWNoaWxkLC5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZD4udGFibGU6Zmlyc3QtY2hpbGQ+dGJvZHk6Zmlyc3QtY2hpbGQ+dHI6Zmlyc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCwucGFuZWw+LnRhYmxlOmZpcnN0LWNoaWxkPnRoZWFkOmZpcnN0LWNoaWxkPnRyOmZpcnN0LWNoaWxkIHRoOmxhc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkPi50YWJsZTpmaXJzdC1jaGlsZD50aGVhZDpmaXJzdC1jaGlsZD50cjpmaXJzdC1jaGlsZCB0aDpsYXN0LWNoaWxkLC5wYW5lbD4udGFibGU6Zmlyc3QtY2hpbGQ+dGJvZHk6Zmlyc3QtY2hpbGQ+dHI6Zmlyc3QtY2hpbGQgdGg6bGFzdC1jaGlsZCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQ+LnRhYmxlOmZpcnN0LWNoaWxkPnRib2R5OmZpcnN0LWNoaWxkPnRyOmZpcnN0LWNoaWxkIHRoOmxhc3QtY2hpbGR7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MnB4fS5wYW5lbD4udGFibGU6bGFzdC1jaGlsZCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZD4udGFibGU6bGFzdC1jaGlsZHtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czoycHg7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czoycHh9LnBhbmVsPi50YWJsZTpsYXN0LWNoaWxkPnRib2R5Omxhc3QtY2hpbGQ+dHI6bGFzdC1jaGlsZCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZD4udGFibGU6bGFzdC1jaGlsZD50Ym9keTpsYXN0LWNoaWxkPnRyOmxhc3QtY2hpbGQsLnBhbmVsPi50YWJsZTpsYXN0LWNoaWxkPnRmb290Omxhc3QtY2hpbGQ+dHI6bGFzdC1jaGlsZCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZD4udGFibGU6bGFzdC1jaGlsZD50Zm9vdDpsYXN0LWNoaWxkPnRyOmxhc3QtY2hpbGR7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MnB4O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MnB4fS5wYW5lbD4udGFibGU6bGFzdC1jaGlsZD50Ym9keTpsYXN0LWNoaWxkPnRyOmxhc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQ+LnRhYmxlOmxhc3QtY2hpbGQ+dGJvZHk6bGFzdC1jaGlsZD50cjpsYXN0LWNoaWxkIHRkOmZpcnN0LWNoaWxkLC5wYW5lbD4udGFibGU6bGFzdC1jaGlsZD50Zm9vdDpsYXN0LWNoaWxkPnRyOmxhc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQ+LnRhYmxlOmxhc3QtY2hpbGQ+dGZvb3Q6bGFzdC1jaGlsZD50cjpsYXN0LWNoaWxkIHRkOmZpcnN0LWNoaWxkLC5wYW5lbD4udGFibGU6bGFzdC1jaGlsZD50Ym9keTpsYXN0LWNoaWxkPnRyOmxhc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQ+LnRhYmxlOmxhc3QtY2hpbGQ+dGJvZHk6bGFzdC1jaGlsZD50cjpsYXN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkLC5wYW5lbD4udGFibGU6bGFzdC1jaGlsZD50Zm9vdDpsYXN0LWNoaWxkPnRyOmxhc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQ+LnRhYmxlOmxhc3QtY2hpbGQ+dGZvb3Q6bGFzdC1jaGlsZD50cjpsYXN0LWNoaWxkIHRoOmZpcnN0LWNoaWxke2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MnB4fS5wYW5lbD4udGFibGU6bGFzdC1jaGlsZD50Ym9keTpsYXN0LWNoaWxkPnRyOmxhc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZD4udGFibGU6bGFzdC1jaGlsZD50Ym9keTpsYXN0LWNoaWxkPnRyOmxhc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCwucGFuZWw+LnRhYmxlOmxhc3QtY2hpbGQ+dGZvb3Q6bGFzdC1jaGlsZD50cjpsYXN0LWNoaWxkIHRkOmxhc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQ+LnRhYmxlOmxhc3QtY2hpbGQ+dGZvb3Q6bGFzdC1jaGlsZD50cjpsYXN0LWNoaWxkIHRkOmxhc3QtY2hpbGQsLnBhbmVsPi50YWJsZTpsYXN0LWNoaWxkPnRib2R5Omxhc3QtY2hpbGQ+dHI6bGFzdC1jaGlsZCB0aDpsYXN0LWNoaWxkLC5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkPi50YWJsZTpsYXN0LWNoaWxkPnRib2R5Omxhc3QtY2hpbGQ+dHI6bGFzdC1jaGlsZCB0aDpsYXN0LWNoaWxkLC5wYW5lbD4udGFibGU6bGFzdC1jaGlsZD50Zm9vdDpsYXN0LWNoaWxkPnRyOmxhc3QtY2hpbGQgdGg6bGFzdC1jaGlsZCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZD4udGFibGU6bGFzdC1jaGlsZD50Zm9vdDpsYXN0LWNoaWxkPnRyOmxhc3QtY2hpbGQgdGg6bGFzdC1jaGlsZHtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czoycHh9LnBhbmVsPi5wYW5lbC1ib2R5Ky50YWJsZSwucGFuZWw+LnBhbmVsLWJvZHkrLnRhYmxlLXJlc3BvbnNpdmUsLnBhbmVsPi50YWJsZSsucGFuZWwtYm9keSwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmUrLnBhbmVsLWJvZHl7Ym9yZGVyLXRvcDoxcHggc29saWQgI2RkZGRkZH0ucGFuZWw+LnRhYmxlPnRib2R5OmZpcnN0LWNoaWxkPnRyOmZpcnN0LWNoaWxkIHRoLC5wYW5lbD4udGFibGU+dGJvZHk6Zmlyc3QtY2hpbGQ+dHI6Zmlyc3QtY2hpbGQgdGR7Ym9yZGVyLXRvcDowfS5wYW5lbD4udGFibGUtYm9yZGVyZWQsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlPi50YWJsZS1ib3JkZXJlZHtib3JkZXI6MH0ucGFuZWw+LnRhYmxlLWJvcmRlcmVkPnRoZWFkPnRyPnRoOmZpcnN0LWNoaWxkLC5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZT4udGFibGUtYm9yZGVyZWQ+dGhlYWQ+dHI+dGg6Zmlyc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1ib3JkZXJlZD50Ym9keT50cj50aDpmaXJzdC1jaGlsZCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRib2R5PnRyPnRoOmZpcnN0LWNoaWxkLC5wYW5lbD4udGFibGUtYm9yZGVyZWQ+dGZvb3Q+dHI+dGg6Zmlyc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlPi50YWJsZS1ib3JkZXJlZD50Zm9vdD50cj50aDpmaXJzdC1jaGlsZCwucGFuZWw+LnRhYmxlLWJvcmRlcmVkPnRoZWFkPnRyPnRkOmZpcnN0LWNoaWxkLC5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZT4udGFibGUtYm9yZGVyZWQ+dGhlYWQ+dHI+dGQ6Zmlyc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1ib3JkZXJlZD50Ym9keT50cj50ZDpmaXJzdC1jaGlsZCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRib2R5PnRyPnRkOmZpcnN0LWNoaWxkLC5wYW5lbD4udGFibGUtYm9yZGVyZWQ+dGZvb3Q+dHI+dGQ6Zmlyc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlPi50YWJsZS1ib3JkZXJlZD50Zm9vdD50cj50ZDpmaXJzdC1jaGlsZHtib3JkZXItbGVmdDowfS5wYW5lbD4udGFibGUtYm9yZGVyZWQ+dGhlYWQ+dHI+dGg6bGFzdC1jaGlsZCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRoZWFkPnRyPnRoOmxhc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1ib3JkZXJlZD50Ym9keT50cj50aDpsYXN0LWNoaWxkLC5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZT4udGFibGUtYm9yZGVyZWQ+dGJvZHk+dHI+dGg6bGFzdC1jaGlsZCwucGFuZWw+LnRhYmxlLWJvcmRlcmVkPnRmb290PnRyPnRoOmxhc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlPi50YWJsZS1ib3JkZXJlZD50Zm9vdD50cj50aDpsYXN0LWNoaWxkLC5wYW5lbD4udGFibGUtYm9yZGVyZWQ+dGhlYWQ+dHI+dGQ6bGFzdC1jaGlsZCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRoZWFkPnRyPnRkOmxhc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1ib3JkZXJlZD50Ym9keT50cj50ZDpsYXN0LWNoaWxkLC5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZT4udGFibGUtYm9yZGVyZWQ+dGJvZHk+dHI+dGQ6bGFzdC1jaGlsZCwucGFuZWw+LnRhYmxlLWJvcmRlcmVkPnRmb290PnRyPnRkOmxhc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlPi50YWJsZS1ib3JkZXJlZD50Zm9vdD50cj50ZDpsYXN0LWNoaWxke2JvcmRlci1yaWdodDowfS5wYW5lbD4udGFibGUtYm9yZGVyZWQ+dGhlYWQ+dHI6Zmlyc3QtY2hpbGQ+dGQsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlPi50YWJsZS1ib3JkZXJlZD50aGVhZD50cjpmaXJzdC1jaGlsZD50ZCwucGFuZWw+LnRhYmxlLWJvcmRlcmVkPnRib2R5PnRyOmZpcnN0LWNoaWxkPnRkLC5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZT4udGFibGUtYm9yZGVyZWQ+dGJvZHk+dHI6Zmlyc3QtY2hpbGQ+dGQsLnBhbmVsPi50YWJsZS1ib3JkZXJlZD50aGVhZD50cjpmaXJzdC1jaGlsZD50aCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRoZWFkPnRyOmZpcnN0LWNoaWxkPnRoLC5wYW5lbD4udGFibGUtYm9yZGVyZWQ+dGJvZHk+dHI6Zmlyc3QtY2hpbGQ+dGgsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlPi50YWJsZS1ib3JkZXJlZD50Ym9keT50cjpmaXJzdC1jaGlsZD50aHtib3JkZXItYm90dG9tOjB9LnBhbmVsPi50YWJsZS1ib3JkZXJlZD50Ym9keT50cjpsYXN0LWNoaWxkPnRkLC5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZT4udGFibGUtYm9yZGVyZWQ+dGJvZHk+dHI6bGFzdC1jaGlsZD50ZCwucGFuZWw+LnRhYmxlLWJvcmRlcmVkPnRmb290PnRyOmxhc3QtY2hpbGQ+dGQsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlPi50YWJsZS1ib3JkZXJlZD50Zm9vdD50cjpsYXN0LWNoaWxkPnRkLC5wYW5lbD4udGFibGUtYm9yZGVyZWQ+dGJvZHk+dHI6bGFzdC1jaGlsZD50aCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRib2R5PnRyOmxhc3QtY2hpbGQ+dGgsLnBhbmVsPi50YWJsZS1ib3JkZXJlZD50Zm9vdD50cjpsYXN0LWNoaWxkPnRoLC5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZT4udGFibGUtYm9yZGVyZWQ+dGZvb3Q+dHI6bGFzdC1jaGlsZD50aHtib3JkZXItYm90dG9tOjB9LnBhbmVsPi50YWJsZS1yZXNwb25zaXZle21hcmdpbi1ib3R0b206MDtib3JkZXI6MH0ucGFuZWwtZ3JvdXB7bWFyZ2luLWJvdHRvbToyM3B4fS5wYW5lbC1ncm91cCAucGFuZWx7bWFyZ2luLWJvdHRvbTowO2JvcmRlci1yYWRpdXM6M3B4fS5wYW5lbC1ncm91cCAucGFuZWwrLnBhbmVse21hcmdpbi10b3A6NXB4fS5wYW5lbC1ncm91cCAucGFuZWwtaGVhZGluZ3tib3JkZXItYm90dG9tOjB9LnBhbmVsLWdyb3VwIC5wYW5lbC1oZWFkaW5nKy5wYW5lbC1jb2xsYXBzZT4ucGFuZWwtYm9keSwucGFuZWwtZ3JvdXAgLnBhbmVsLWhlYWRpbmcrLnBhbmVsLWNvbGxhcHNlPi5saXN0LWdyb3Vwe2JvcmRlci10b3A6MXB4IHNvbGlkICNkZGRkZGR9LnBhbmVsLWdyb3VwIC5wYW5lbC1mb290ZXJ7Ym9yZGVyLXRvcDowfS5wYW5lbC1ncm91cCAucGFuZWwtZm9vdGVyKy5wYW5lbC1jb2xsYXBzZSAucGFuZWwtYm9keXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGRkZGRkfS5wYW5lbC1kZWZhdWx0e2JvcmRlci1jb2xvcjojZGRkZGRkfS5wYW5lbC1kZWZhdWx0Pi5wYW5lbC1oZWFkaW5ne2NvbG9yOiMyMTIxMjE7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O2JvcmRlci1jb2xvcjojZGRkZGRkfS5wYW5lbC1kZWZhdWx0Pi5wYW5lbC1oZWFkaW5nKy5wYW5lbC1jb2xsYXBzZT4ucGFuZWwtYm9keXtib3JkZXItdG9wLWNvbG9yOiNkZGRkZGR9LnBhbmVsLWRlZmF1bHQ+LnBhbmVsLWhlYWRpbmcgLmJhZGdle2NvbG9yOiNmNWY1ZjU7YmFja2dyb3VuZC1jb2xvcjojMjEyMTIxfS5wYW5lbC1kZWZhdWx0Pi5wYW5lbC1mb290ZXIrLnBhbmVsLWNvbGxhcHNlPi5wYW5lbC1ib2R5e2JvcmRlci1ib3R0b20tY29sb3I6I2RkZGRkZH0ucGFuZWwtcHJpbWFyeXtib3JkZXItY29sb3I6IzIxOTZmM30ucGFuZWwtcHJpbWFyeT4ucGFuZWwtaGVhZGluZ3tjb2xvcjojZmZmZmZmO2JhY2tncm91bmQtY29sb3I6IzIxOTZmMztib3JkZXItY29sb3I6IzIxOTZmM30ucGFuZWwtcHJpbWFyeT4ucGFuZWwtaGVhZGluZysucGFuZWwtY29sbGFwc2U+LnBhbmVsLWJvZHl7Ym9yZGVyLXRvcC1jb2xvcjojMjE5NmYzfS5wYW5lbC1wcmltYXJ5Pi5wYW5lbC1oZWFkaW5nIC5iYWRnZXtjb2xvcjojMjE5NmYzO2JhY2tncm91bmQtY29sb3I6I2ZmZmZmZn0ucGFuZWwtcHJpbWFyeT4ucGFuZWwtZm9vdGVyKy5wYW5lbC1jb2xsYXBzZT4ucGFuZWwtYm9keXtib3JkZXItYm90dG9tLWNvbG9yOiMyMTk2ZjN9LnBhbmVsLXN1Y2Nlc3N7Ym9yZGVyLWNvbG9yOiNkNmU5YzZ9LnBhbmVsLXN1Y2Nlc3M+LnBhbmVsLWhlYWRpbmd7Y29sb3I6I2ZmZmZmZjtiYWNrZ3JvdW5kLWNvbG9yOiM0Y2FmNTA7Ym9yZGVyLWNvbG9yOiNkNmU5YzZ9LnBhbmVsLXN1Y2Nlc3M+LnBhbmVsLWhlYWRpbmcrLnBhbmVsLWNvbGxhcHNlPi5wYW5lbC1ib2R5e2JvcmRlci10b3AtY29sb3I6I2Q2ZTljNn0ucGFuZWwtc3VjY2Vzcz4ucGFuZWwtaGVhZGluZyAuYmFkZ2V7Y29sb3I6IzRjYWY1MDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmZ9LnBhbmVsLXN1Y2Nlc3M+LnBhbmVsLWZvb3RlcisucGFuZWwtY29sbGFwc2U+LnBhbmVsLWJvZHl7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZDZlOWM2fS5wYW5lbC1pbmZve2JvcmRlci1jb2xvcjojY2JhNGRkfS5wYW5lbC1pbmZvPi5wYW5lbC1oZWFkaW5ne2NvbG9yOiNmZmZmZmY7YmFja2dyb3VuZC1jb2xvcjojOWMyN2IwO2JvcmRlci1jb2xvcjojY2JhNGRkfS5wYW5lbC1pbmZvPi5wYW5lbC1oZWFkaW5nKy5wYW5lbC1jb2xsYXBzZT4ucGFuZWwtYm9keXtib3JkZXItdG9wLWNvbG9yOiNjYmE0ZGR9LnBhbmVsLWluZm8+LnBhbmVsLWhlYWRpbmcgLmJhZGdle2NvbG9yOiM5YzI3YjA7YmFja2dyb3VuZC1jb2xvcjojZmZmZmZmfS5wYW5lbC1pbmZvPi5wYW5lbC1mb290ZXIrLnBhbmVsLWNvbGxhcHNlPi5wYW5lbC1ib2R5e2JvcmRlci1ib3R0b20tY29sb3I6I2NiYTRkZH0ucGFuZWwtd2FybmluZ3tib3JkZXItY29sb3I6I2ZmYzU5OX0ucGFuZWwtd2FybmluZz4ucGFuZWwtaGVhZGluZ3tjb2xvcjojZmZmZmZmO2JhY2tncm91bmQtY29sb3I6I2ZmOTgwMDtib3JkZXItY29sb3I6I2ZmYzU5OX0ucGFuZWwtd2FybmluZz4ucGFuZWwtaGVhZGluZysucGFuZWwtY29sbGFwc2U+LnBhbmVsLWJvZHl7Ym9yZGVyLXRvcC1jb2xvcjojZmZjNTk5fS5wYW5lbC13YXJuaW5nPi5wYW5lbC1oZWFkaW5nIC5iYWRnZXtjb2xvcjojZmY5ODAwO2JhY2tncm91bmQtY29sb3I6I2ZmZmZmZn0ucGFuZWwtd2FybmluZz4ucGFuZWwtZm9vdGVyKy5wYW5lbC1jb2xsYXBzZT4ucGFuZWwtYm9keXtib3JkZXItYm90dG9tLWNvbG9yOiNmZmM1OTl9LnBhbmVsLWRhbmdlcntib3JkZXItY29sb3I6I2Y3YTRhZn0ucGFuZWwtZGFuZ2VyPi5wYW5lbC1oZWFkaW5ne2NvbG9yOiNmZmZmZmY7YmFja2dyb3VuZC1jb2xvcjojZTUxYzIzO2JvcmRlci1jb2xvcjojZjdhNGFmfS5wYW5lbC1kYW5nZXI+LnBhbmVsLWhlYWRpbmcrLnBhbmVsLWNvbGxhcHNlPi5wYW5lbC1ib2R5e2JvcmRlci10b3AtY29sb3I6I2Y3YTRhZn0ucGFuZWwtZGFuZ2VyPi5wYW5lbC1oZWFkaW5nIC5iYWRnZXtjb2xvcjojZTUxYzIzO2JhY2tncm91bmQtY29sb3I6I2ZmZmZmZn0ucGFuZWwtZGFuZ2VyPi5wYW5lbC1mb290ZXIrLnBhbmVsLWNvbGxhcHNlPi5wYW5lbC1ib2R5e2JvcmRlci1ib3R0b20tY29sb3I6I2Y3YTRhZn0uZW1iZWQtcmVzcG9uc2l2ZXtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3BhZGRpbmc6MDtvdmVyZmxvdzpoaWRkZW59LmVtYmVkLXJlc3BvbnNpdmUgLmVtYmVkLXJlc3BvbnNpdmUtaXRlbSwuZW1iZWQtcmVzcG9uc2l2ZSBpZnJhbWUsLmVtYmVkLXJlc3BvbnNpdmUgZW1iZWQsLmVtYmVkLXJlc3BvbnNpdmUgb2JqZWN0LC5lbWJlZC1yZXNwb25zaXZlIHZpZGVve3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JvcmRlcjowfS5lbWJlZC1yZXNwb25zaXZlLTE2Ynk5e3BhZGRpbmctYm90dG9tOjU2LjI1JX0uZW1iZWQtcmVzcG9uc2l2ZS00Ynkze3BhZGRpbmctYm90dG9tOjc1JX0ud2VsbHttaW4taGVpZ2h0OjIwcHg7cGFkZGluZzoxOXB4O21hcmdpbi1ib3R0b206MjBweDtiYWNrZ3JvdW5kLWNvbG9yOiNmOWY5Zjk7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjNweDtib3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMDUpfS53ZWxsIGJsb2NrcXVvdGV7Ym9yZGVyLWNvbG9yOiNkZGQ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMC4xNSl9LndlbGwtbGd7cGFkZGluZzoyNHB4O2JvcmRlci1yYWRpdXM6M3B4fS53ZWxsLXNte3BhZGRpbmc6OXB4O2JvcmRlci1yYWRpdXM6M3B4fS5jbG9zZXtmbG9hdDpyaWdodDtmb250LXNpemU6MTkuNXB4O2ZvbnQtd2VpZ2h0Om5vcm1hbDtsaW5lLWhlaWdodDoxO2NvbG9yOiMwMDAwMDA7dGV4dC1zaGFkb3c6bm9uZTtmaWx0ZXI6YWxwaGEob3BhY2l0eT0yMCk7b3BhY2l0eTowLjJ9LmNsb3NlOmhvdmVyLC5jbG9zZTpmb2N1c3tjb2xvcjojMDAwMDAwO3RleHQtZGVjb3JhdGlvbjpub25lO2N1cnNvcjpwb2ludGVyO2ZpbHRlcjphbHBoYShvcGFjaXR5PTUwKTtvcGFjaXR5OjAuNX1idXR0b24uY2xvc2V7cGFkZGluZzowO2N1cnNvcjpwb2ludGVyO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lfS5tb2RhbC1vcGVue292ZXJmbG93OmhpZGRlbn0ubW9kYWx7cG9zaXRpb246Zml4ZWQ7dG9wOjA7cmlnaHQ6MDtib3R0b206MDtsZWZ0OjA7ei1pbmRleDoxMDUwO2Rpc3BsYXk6bm9uZTtvdmVyZmxvdzpoaWRkZW47LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7b3V0bGluZTowfS5tb2RhbC5mYWRlIC5tb2RhbC1kaWFsb2d7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKDAsIC0yNSUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoMCwgLTI1JSk7dHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuM3MgZWFzZS1vdXQ7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzIGVhc2Utb3V0fS5tb2RhbC5pbiAubW9kYWwtZGlhbG9ney13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgwLCAwKTt0cmFuc2Zvcm06dHJhbnNsYXRlKDAsIDApfS5tb2RhbC1vcGVuIC5tb2RhbHtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OmF1dG99Lm1vZGFsLWRpYWxvZ3twb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDphdXRvO21hcmdpbjoxMHB4fS5tb2RhbC1jb250ZW50e3Bvc2l0aW9uOnJlbGF0aXZlO2JhY2tncm91bmQtY29sb3I6I2ZmZmZmZjtiYWNrZ3JvdW5kLWNsaXA6cGFkZGluZy1ib3g7Ym9yZGVyOjFweCBzb2xpZCAjOTk5OTk5O2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czozcHg7Ym94LXNoYWRvdzowIDNweCA5cHggcmdiYSgwLDAsMCwwLjUpO291dGxpbmU6MH0ubW9kYWwtYmFja2Ryb3B7cG9zaXRpb246Zml4ZWQ7dG9wOjA7cmlnaHQ6MDtib3R0b206MDtsZWZ0OjA7ei1pbmRleDoxMDQwO2JhY2tncm91bmQtY29sb3I6IzAwMDAwMH0ubW9kYWwtYmFja2Ryb3AuZmFkZXtmaWx0ZXI6YWxwaGEob3BhY2l0eT0wKTtvcGFjaXR5OjB9Lm1vZGFsLWJhY2tkcm9wLmlue2ZpbHRlcjphbHBoYShvcGFjaXR5PTUwKTtvcGFjaXR5OjAuNX0ubW9kYWwtaGVhZGVye3BhZGRpbmc6MTVweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCB0cmFuc3BhcmVudH0ubW9kYWwtaGVhZGVyIC5jbG9zZXttYXJnaW4tdG9wOi0ycHh9Lm1vZGFsLXRpdGxle21hcmdpbjowO2xpbmUtaGVpZ2h0OjEuODQ2fS5tb2RhbC1ib2R5e3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmc6MTVweH0ubW9kYWwtZm9vdGVye3BhZGRpbmc6MTVweDt0ZXh0LWFsaWduOnJpZ2h0O2JvcmRlci10b3A6MXB4IHNvbGlkIHRyYW5zcGFyZW50fS5tb2RhbC1mb290ZXIgLmJ0bisuYnRue21hcmdpbi1ib3R0b206MDttYXJnaW4tbGVmdDo1cHh9Lm1vZGFsLWZvb3RlciAuYnRuLWdyb3VwIC5idG4rLmJ0bnttYXJnaW4tbGVmdDotMXB4fS5tb2RhbC1mb290ZXIgLmJ0bi1ibG9jaysuYnRuLWJsb2Nre21hcmdpbi1sZWZ0OjB9Lm1vZGFsLXNjcm9sbGJhci1tZWFzdXJle3Bvc2l0aW9uOmFic29sdXRlO3RvcDotOTk5OXB4O3dpZHRoOjUwcHg7aGVpZ2h0OjUwcHg7b3ZlcmZsb3c6c2Nyb2xsfUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsubW9kYWwtZGlhbG9ne3dpZHRoOjYwMHB4O21hcmdpbjozMHB4IGF1dG99Lm1vZGFsLWNvbnRlbnR7Ym94LXNoYWRvdzowIDVweCAxNXB4IHJnYmEoMCwwLDAsMC41KX0ubW9kYWwtc217d2lkdGg6MzAwcHh9fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXsubW9kYWwtbGd7d2lkdGg6OTAwcHh9fS50b29sdGlwe3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTA3MDtkaXNwbGF5OmJsb2NrO2ZvbnQtZmFtaWx5OiJSb2JvdG8iLCJIZWx2ZXRpY2EgTmV1ZSIsSGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuODQ2O2xpbmUtYnJlYWs6YXV0bzt0ZXh0LWFsaWduOmxlZnQ7dGV4dC1hbGlnbjpzdGFydDt0ZXh0LWRlY29yYXRpb246bm9uZTt0ZXh0LXNoYWRvdzpub25lO3RleHQtdHJhbnNmb3JtOm5vbmU7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO3dvcmQtYnJlYWs6bm9ybWFsO3dvcmQtc3BhY2luZzpub3JtYWw7d29yZC13cmFwOm5vcm1hbDt3aGl0ZS1zcGFjZTpub3JtYWw7Zm9udC1zaXplOjEycHg7ZmlsdGVyOmFscGhhKG9wYWNpdHk9MCk7b3BhY2l0eTowfS50b29sdGlwLmlue2ZpbHRlcjphbHBoYShvcGFjaXR5PTkwKTtvcGFjaXR5OjAuOX0udG9vbHRpcC50b3B7cGFkZGluZzo1cHggMDttYXJnaW4tdG9wOi0zcHh9LnRvb2x0aXAucmlnaHR7cGFkZGluZzowIDVweDttYXJnaW4tbGVmdDozcHh9LnRvb2x0aXAuYm90dG9te3BhZGRpbmc6NXB4IDA7bWFyZ2luLXRvcDozcHh9LnRvb2x0aXAubGVmdHtwYWRkaW5nOjAgNXB4O21hcmdpbi1sZWZ0Oi0zcHh9LnRvb2x0aXAudG9wIC50b29sdGlwLWFycm93e2JvdHRvbTowO2xlZnQ6NTAlO21hcmdpbi1sZWZ0Oi01cHg7Ym9yZGVyLXdpZHRoOjVweCA1cHggMDtib3JkZXItdG9wLWNvbG9yOiM3MjcyNzJ9LnRvb2x0aXAudG9wLWxlZnQgLnRvb2x0aXAtYXJyb3d7cmlnaHQ6NXB4O2JvdHRvbTowO21hcmdpbi1ib3R0b206LTVweDtib3JkZXItd2lkdGg6NXB4IDVweCAwO2JvcmRlci10b3AtY29sb3I6IzcyNzI3Mn0udG9vbHRpcC50b3AtcmlnaHQgLnRvb2x0aXAtYXJyb3d7Ym90dG9tOjA7bGVmdDo1cHg7bWFyZ2luLWJvdHRvbTotNXB4O2JvcmRlci13aWR0aDo1cHggNXB4IDA7Ym9yZGVyLXRvcC1jb2xvcjojNzI3MjcyfS50b29sdGlwLnJpZ2h0IC50b29sdGlwLWFycm93e3RvcDo1MCU7bGVmdDowO21hcmdpbi10b3A6LTVweDtib3JkZXItd2lkdGg6NXB4IDVweCA1cHggMDtib3JkZXItcmlnaHQtY29sb3I6IzcyNzI3Mn0udG9vbHRpcC5sZWZ0IC50b29sdGlwLWFycm93e3RvcDo1MCU7cmlnaHQ6MDttYXJnaW4tdG9wOi01cHg7Ym9yZGVyLXdpZHRoOjVweCAwIDVweCA1cHg7Ym9yZGVyLWxlZnQtY29sb3I6IzcyNzI3Mn0udG9vbHRpcC5ib3R0b20gLnRvb2x0aXAtYXJyb3d7dG9wOjA7bGVmdDo1MCU7bWFyZ2luLWxlZnQ6LTVweDtib3JkZXItd2lkdGg6MCA1cHggNXB4O2JvcmRlci1ib3R0b20tY29sb3I6IzcyNzI3Mn0udG9vbHRpcC5ib3R0b20tbGVmdCAudG9vbHRpcC1hcnJvd3t0b3A6MDtyaWdodDo1cHg7bWFyZ2luLXRvcDotNXB4O2JvcmRlci13aWR0aDowIDVweCA1cHg7Ym9yZGVyLWJvdHRvbS1jb2xvcjojNzI3MjcyfS50b29sdGlwLmJvdHRvbS1yaWdodCAudG9vbHRpcC1hcnJvd3t0b3A6MDtsZWZ0OjVweDttYXJnaW4tdG9wOi01cHg7Ym9yZGVyLXdpZHRoOjAgNXB4IDVweDtib3JkZXItYm90dG9tLWNvbG9yOiM3MjcyNzJ9LnRvb2x0aXAtaW5uZXJ7bWF4LXdpZHRoOjIwMHB4O3BhZGRpbmc6M3B4IDhweDtjb2xvcjojZmZmZmZmO3RleHQtYWxpZ246Y2VudGVyO2JhY2tncm91bmQtY29sb3I6IzcyNzI3Mjtib3JkZXItcmFkaXVzOjNweH0udG9vbHRpcC1hcnJvd3twb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDowO2hlaWdodDowO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItc3R5bGU6c29saWR9LnBvcG92ZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3otaW5kZXg6MTA2MDtkaXNwbGF5Om5vbmU7bWF4LXdpZHRoOjI3NnB4O3BhZGRpbmc6MXB4O2ZvbnQtZmFtaWx5OiJSb2JvdG8iLCJIZWx2ZXRpY2EgTmV1ZSIsSGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuODQ2O2xpbmUtYnJlYWs6YXV0bzt0ZXh0LWFsaWduOmxlZnQ7dGV4dC1hbGlnbjpzdGFydDt0ZXh0LWRlY29yYXRpb246bm9uZTt0ZXh0LXNoYWRvdzpub25lO3RleHQtdHJhbnNmb3JtOm5vbmU7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO3dvcmQtYnJlYWs6bm9ybWFsO3dvcmQtc3BhY2luZzpub3JtYWw7d29yZC13cmFwOm5vcm1hbDt3aGl0ZS1zcGFjZTpub3JtYWw7Zm9udC1zaXplOjEzcHg7YmFja2dyb3VuZC1jb2xvcjojZmZmZmZmO2JhY2tncm91bmQtY2xpcDpwYWRkaW5nLWJveDtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6M3B4O2JveC1zaGFkb3c6MCA1cHggMTBweCByZ2JhKDAsMCwwLDAuMil9LnBvcG92ZXIudG9we21hcmdpbi10b3A6LTEwcHh9LnBvcG92ZXIucmlnaHR7bWFyZ2luLWxlZnQ6MTBweH0ucG9wb3Zlci5ib3R0b217bWFyZ2luLXRvcDoxMHB4fS5wb3BvdmVyLmxlZnR7bWFyZ2luLWxlZnQ6LTEwcHh9LnBvcG92ZXI+LmFycm93e2JvcmRlci13aWR0aDoxMXB4fS5wb3BvdmVyPi5hcnJvdywucG9wb3Zlcj4uYXJyb3c6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jazt3aWR0aDowO2hlaWdodDowO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItc3R5bGU6c29saWR9LnBvcG92ZXI+LmFycm93OmFmdGVye2NvbnRlbnQ6IiI7Ym9yZGVyLXdpZHRoOjEwcHh9LnBvcG92ZXIudG9wPi5hcnJvd3tib3R0b206LTExcHg7bGVmdDo1MCU7bWFyZ2luLWxlZnQ6LTExcHg7Ym9yZGVyLXRvcC1jb2xvcjpyZ2JhKDAsMCwwLDApO2JvcmRlci10b3AtY29sb3I6cmdiYSgwLDAsMCwwLjA3NSk7Ym9yZGVyLWJvdHRvbS13aWR0aDowfS5wb3BvdmVyLnRvcD4uYXJyb3c6YWZ0ZXJ7Ym90dG9tOjFweDttYXJnaW4tbGVmdDotMTBweDtjb250ZW50OiIgIjtib3JkZXItdG9wLWNvbG9yOiNmZmZmZmY7Ym9yZGVyLWJvdHRvbS13aWR0aDowfS5wb3BvdmVyLnJpZ2h0Pi5hcnJvd3t0b3A6NTAlO2xlZnQ6LTExcHg7bWFyZ2luLXRvcDotMTFweDtib3JkZXItcmlnaHQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItcmlnaHQtY29sb3I6cmdiYSgwLDAsMCwwLjA3NSk7Ym9yZGVyLWxlZnQtd2lkdGg6MH0ucG9wb3Zlci5yaWdodD4uYXJyb3c6YWZ0ZXJ7Ym90dG9tOi0xMHB4O2xlZnQ6MXB4O2NvbnRlbnQ6IiAiO2JvcmRlci1yaWdodC1jb2xvcjojZmZmZmZmO2JvcmRlci1sZWZ0LXdpZHRoOjB9LnBvcG92ZXIuYm90dG9tPi5hcnJvd3t0b3A6LTExcHg7bGVmdDo1MCU7bWFyZ2luLWxlZnQ6LTExcHg7Ym9yZGVyLXRvcC13aWR0aDowO2JvcmRlci1ib3R0b20tY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItYm90dG9tLWNvbG9yOnJnYmEoMCwwLDAsMC4wNzUpfS5wb3BvdmVyLmJvdHRvbT4uYXJyb3c6YWZ0ZXJ7dG9wOjFweDttYXJnaW4tbGVmdDotMTBweDtjb250ZW50OiIgIjtib3JkZXItdG9wLXdpZHRoOjA7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZmZmZmZmfS5wb3BvdmVyLmxlZnQ+LmFycm93e3RvcDo1MCU7cmlnaHQ6LTExcHg7bWFyZ2luLXRvcDotMTFweDtib3JkZXItcmlnaHQtd2lkdGg6MDtib3JkZXItbGVmdC1jb2xvcjpyZ2JhKDAsMCwwLDApO2JvcmRlci1sZWZ0LWNvbG9yOnJnYmEoMCwwLDAsMC4wNzUpfS5wb3BvdmVyLmxlZnQ+LmFycm93OmFmdGVye3JpZ2h0OjFweDtib3R0b206LTEwcHg7Y29udGVudDoiICI7Ym9yZGVyLXJpZ2h0LXdpZHRoOjA7Ym9yZGVyLWxlZnQtY29sb3I6I2ZmZmZmZn0ucG9wb3Zlci10aXRsZXtwYWRkaW5nOjhweCAxNHB4O21hcmdpbjowO2ZvbnQtc2l6ZToxM3B4O2JhY2tncm91bmQtY29sb3I6I2Y3ZjdmNztib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWJlYmViO2JvcmRlci1yYWRpdXM6MnB4IDJweCAwIDB9LnBvcG92ZXItY29udGVudHtwYWRkaW5nOjlweCAxNHB4fS5jYXJvdXNlbHtwb3NpdGlvbjpyZWxhdGl2ZX0uY2Fyb3VzZWwtaW5uZXJ7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTtvdmVyZmxvdzpoaWRkZW59LmNhcm91c2VsLWlubmVyPi5pdGVte3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6bm9uZTt0cmFuc2l0aW9uOi42cyBlYXNlLWluLW91dCBsZWZ0fS5jYXJvdXNlbC1pbm5lcj4uaXRlbT5pbWcsLmNhcm91c2VsLWlubmVyPi5pdGVtPmE+aW1ne2xpbmUtaGVpZ2h0OjF9QG1lZGlhIGFsbCBhbmQgKHRyYW5zZm9ybS0zZCksKC13ZWJraXQtdHJhbnNmb3JtLTNkKXsuY2Fyb3VzZWwtaW5uZXI+Lml0ZW17dHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuNnMgZWFzZS1pbi1vdXQ7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjZzIGVhc2UtaW4tb3V0Oy13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47YmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47LXdlYmtpdC1wZXJzcGVjdGl2ZToxMDAwcHg7cGVyc3BlY3RpdmU6MTAwMHB4fS5jYXJvdXNlbC1pbm5lcj4uaXRlbS5uZXh0LC5jYXJvdXNlbC1pbm5lcj4uaXRlbS5hY3RpdmUucmlnaHR7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO2xlZnQ6MH0uY2Fyb3VzZWwtaW5uZXI+Lml0ZW0ucHJldiwuY2Fyb3VzZWwtaW5uZXI+Lml0ZW0uYWN0aXZlLmxlZnR7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7bGVmdDowfS5jYXJvdXNlbC1pbm5lcj4uaXRlbS5uZXh0LmxlZnQsLmNhcm91c2VsLWlubmVyPi5pdGVtLnByZXYucmlnaHQsLmNhcm91c2VsLWlubmVyPi5pdGVtLmFjdGl2ZXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLCAwLCAwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwgMCwgMCk7bGVmdDowfX0uY2Fyb3VzZWwtaW5uZXI+LmFjdGl2ZSwuY2Fyb3VzZWwtaW5uZXI+Lm5leHQsLmNhcm91c2VsLWlubmVyPi5wcmV2e2Rpc3BsYXk6YmxvY2t9LmNhcm91c2VsLWlubmVyPi5hY3RpdmV7bGVmdDowfS5jYXJvdXNlbC1pbm5lcj4ubmV4dCwuY2Fyb3VzZWwtaW5uZXI+LnByZXZ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7d2lkdGg6MTAwJX0uY2Fyb3VzZWwtaW5uZXI+Lm5leHR7bGVmdDoxMDAlfS5jYXJvdXNlbC1pbm5lcj4ucHJldntsZWZ0Oi0xMDAlfS5jYXJvdXNlbC1pbm5lcj4ubmV4dC5sZWZ0LC5jYXJvdXNlbC1pbm5lcj4ucHJldi5yaWdodHtsZWZ0OjB9LmNhcm91c2VsLWlubmVyPi5hY3RpdmUubGVmdHtsZWZ0Oi0xMDAlfS5jYXJvdXNlbC1pbm5lcj4uYWN0aXZlLnJpZ2h0e2xlZnQ6MTAwJX0uY2Fyb3VzZWwtY29udHJvbHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7d2lkdGg6MTUlO2ZvbnQtc2l6ZToyMHB4O2NvbG9yOiNmZmZmZmY7dGV4dC1hbGlnbjpjZW50ZXI7dGV4dC1zaGFkb3c6MCAxcHggMnB4IHJnYmEoMCwwLDAsMC42KTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7ZmlsdGVyOmFscGhhKG9wYWNpdHk9NTApO29wYWNpdHk6MC41fS5jYXJvdXNlbC1jb250cm9sLmxlZnR7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwwLDAsMC41KSAwLCByZ2JhKDAsMCwwLDAuMDAwMSkgMTAwJSk7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjODAwMDAwMDAnLCBlbmRDb2xvcnN0cj0nIzAwMDAwMDAwJywgR3JhZGllbnRUeXBlPTEpO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14fS5jYXJvdXNlbC1jb250cm9sLnJpZ2h0e3JpZ2h0OjA7bGVmdDphdXRvO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsMCwwLDAuMDAwMSkgMCwgcmdiYSgwLDAsMCwwLjUpIDEwMCUpO2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nIzAwMDAwMDAwJywgZW5kQ29sb3JzdHI9JyM4MDAwMDAwMCcsIEdyYWRpZW50VHlwZT0xKTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteH0uY2Fyb3VzZWwtY29udHJvbDpob3ZlciwuY2Fyb3VzZWwtY29udHJvbDpmb2N1c3tjb2xvcjojZmZmZmZmO3RleHQtZGVjb3JhdGlvbjpub25lO291dGxpbmU6MDtmaWx0ZXI6YWxwaGEob3BhY2l0eT05MCk7b3BhY2l0eTowLjl9LmNhcm91c2VsLWNvbnRyb2wgLmljb24tcHJldiwuY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1uZXh0LC5jYXJvdXNlbC1jb250cm9sIC5nbHlwaGljb24tY2hldnJvbi1sZWZ0LC5jYXJvdXNlbC1jb250cm9sIC5nbHlwaGljb24tY2hldnJvbi1yaWdodHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3otaW5kZXg6NTtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tdG9wOi0xMHB4fS5jYXJvdXNlbC1jb250cm9sIC5pY29uLXByZXYsLmNhcm91c2VsLWNvbnRyb2wgLmdseXBoaWNvbi1jaGV2cm9uLWxlZnR7bGVmdDo1MCU7bWFyZ2luLWxlZnQ6LTEwcHh9LmNhcm91c2VsLWNvbnRyb2wgLmljb24tbmV4dCwuY2Fyb3VzZWwtY29udHJvbCAuZ2x5cGhpY29uLWNoZXZyb24tcmlnaHR7cmlnaHQ6NTAlO21hcmdpbi1yaWdodDotMTBweH0uY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1wcmV2LC5jYXJvdXNlbC1jb250cm9sIC5pY29uLW5leHR7d2lkdGg6MjBweDtoZWlnaHQ6MjBweDtmb250LWZhbWlseTpzZXJpZjtsaW5lLWhlaWdodDoxfS5jYXJvdXNlbC1jb250cm9sIC5pY29uLXByZXY6YmVmb3Jle2NvbnRlbnQ6IlwyMDM5In0uY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1uZXh0OmJlZm9yZXtjb250ZW50OiJcMjAzYSJ9LmNhcm91c2VsLWluZGljYXRvcnN7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjEwcHg7bGVmdDo1MCU7ei1pbmRleDoxNTt3aWR0aDo2MCU7cGFkZGluZy1sZWZ0OjA7bWFyZ2luLWxlZnQ6LTMwJTt0ZXh0LWFsaWduOmNlbnRlcjtsaXN0LXN0eWxlOm5vbmV9LmNhcm91c2VsLWluZGljYXRvcnMgbGl7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTBweDtoZWlnaHQ6MTBweDttYXJnaW46MXB4O3RleHQtaW5kZW50Oi05OTlweDtjdXJzb3I6cG9pbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAgXDk7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2JvcmRlcjoxcHggc29saWQgI2ZmZmZmZjtib3JkZXItcmFkaXVzOjEwcHh9LmNhcm91c2VsLWluZGljYXRvcnMgLmFjdGl2ZXt3aWR0aDoxMnB4O2hlaWdodDoxMnB4O21hcmdpbjowO2JhY2tncm91bmQtY29sb3I6I2ZmZmZmZn0uY2Fyb3VzZWwtY2FwdGlvbntwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxNSU7Ym90dG9tOjIwcHg7bGVmdDoxNSU7ei1pbmRleDoxMDtwYWRkaW5nLXRvcDoyMHB4O3BhZGRpbmctYm90dG9tOjIwcHg7Y29sb3I6I2ZmZmZmZjt0ZXh0LWFsaWduOmNlbnRlcjt0ZXh0LXNoYWRvdzowIDFweCAycHggcmdiYSgwLDAsMCwwLjYpfS5jYXJvdXNlbC1jYXB0aW9uIC5idG57dGV4dC1zaGFkb3c6bm9uZX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjc2OHB4KXsuY2Fyb3VzZWwtY29udHJvbCAuZ2x5cGhpY29uLWNoZXZyb24tbGVmdCwuY2Fyb3VzZWwtY29udHJvbCAuZ2x5cGhpY29uLWNoZXZyb24tcmlnaHQsLmNhcm91c2VsLWNvbnRyb2wgLmljb24tcHJldiwuY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1uZXh0e3dpZHRoOjMwcHg7aGVpZ2h0OjMwcHg7bWFyZ2luLXRvcDotMTBweDtmb250LXNpemU6MzBweH0uY2Fyb3VzZWwtY29udHJvbCAuZ2x5cGhpY29uLWNoZXZyb24tbGVmdCwuY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1wcmV2e21hcmdpbi1sZWZ0Oi0xMHB4fS5jYXJvdXNlbC1jb250cm9sIC5nbHlwaGljb24tY2hldnJvbi1yaWdodCwuY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1uZXh0e21hcmdpbi1yaWdodDotMTBweH0uY2Fyb3VzZWwtY2FwdGlvbntyaWdodDoyMCU7bGVmdDoyMCU7cGFkZGluZy1ib3R0b206MzBweH0uY2Fyb3VzZWwtaW5kaWNhdG9yc3tib3R0b206MjBweH19LmNsZWFyZml4OmJlZm9yZSwuY2xlYXJmaXg6YWZ0ZXIsLmRsLWhvcml6b250YWwgZGQ6YmVmb3JlLC5kbC1ob3Jpem9udGFsIGRkOmFmdGVyLC5jb250YWluZXI6YmVmb3JlLC5jb250YWluZXI6YWZ0ZXIsLmNvbnRhaW5lci1mbHVpZDpiZWZvcmUsLmNvbnRhaW5lci1mbHVpZDphZnRlciwucm93OmJlZm9yZSwucm93OmFmdGVyLC5mb3JtLWhvcml6b250YWwgLmZvcm0tZ3JvdXA6YmVmb3JlLC5mb3JtLWhvcml6b250YWwgLmZvcm0tZ3JvdXA6YWZ0ZXIsLmJ0bi10b29sYmFyOmJlZm9yZSwuYnRuLXRvb2xiYXI6YWZ0ZXIsLmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRuLWdyb3VwOmJlZm9yZSwuYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4tZ3JvdXA6YWZ0ZXIsLm5hdjpiZWZvcmUsLm5hdjphZnRlciwubmF2YmFyOmJlZm9yZSwubmF2YmFyOmFmdGVyLC5uYXZiYXItaGVhZGVyOmJlZm9yZSwubmF2YmFyLWhlYWRlcjphZnRlciwubmF2YmFyLWNvbGxhcHNlOmJlZm9yZSwubmF2YmFyLWNvbGxhcHNlOmFmdGVyLC5wYWdlcjpiZWZvcmUsLnBhZ2VyOmFmdGVyLC5wYW5lbC1ib2R5OmJlZm9yZSwucGFuZWwtYm9keTphZnRlciwubW9kYWwtaGVhZGVyOmJlZm9yZSwubW9kYWwtaGVhZGVyOmFmdGVyLC5tb2RhbC1mb290ZXI6YmVmb3JlLC5tb2RhbC1mb290ZXI6YWZ0ZXJ7ZGlzcGxheTp0YWJsZTtjb250ZW50OiIgIn0uY2xlYXJmaXg6YWZ0ZXIsLmRsLWhvcml6b250YWwgZGQ6YWZ0ZXIsLmNvbnRhaW5lcjphZnRlciwuY29udGFpbmVyLWZsdWlkOmFmdGVyLC5yb3c6YWZ0ZXIsLmZvcm0taG9yaXpvbnRhbCAuZm9ybS1ncm91cDphZnRlciwuYnRuLXRvb2xiYXI6YWZ0ZXIsLmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRuLWdyb3VwOmFmdGVyLC5uYXY6YWZ0ZXIsLm5hdmJhcjphZnRlciwubmF2YmFyLWhlYWRlcjphZnRlciwubmF2YmFyLWNvbGxhcHNlOmFmdGVyLC5wYWdlcjphZnRlciwucGFuZWwtYm9keTphZnRlciwubW9kYWwtaGVhZGVyOmFmdGVyLC5tb2RhbC1mb290ZXI6YWZ0ZXJ7Y2xlYXI6Ym90aH0uY2VudGVyLWJsb2Nre2Rpc3BsYXk6YmxvY2s7bWFyZ2luLXJpZ2h0OmF1dG87bWFyZ2luLWxlZnQ6YXV0b30ucHVsbC1yaWdodHtmbG9hdDpyaWdodCAhaW1wb3J0YW50fS5wdWxsLWxlZnR7ZmxvYXQ6bGVmdCAhaW1wb3J0YW50fS5oaWRle2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50fS5zaG93e2Rpc3BsYXk6YmxvY2sgIWltcG9ydGFudH0uaW52aXNpYmxle3Zpc2liaWxpdHk6aGlkZGVufS50ZXh0LWhpZGV7Zm9udDowLzAgYTtjb2xvcjp0cmFuc3BhcmVudDt0ZXh0LXNoYWRvdzpub25lO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyOjB9LmhpZGRlbntkaXNwbGF5Om5vbmUgIWltcG9ydGFudH0uYWZmaXh7cG9zaXRpb246Zml4ZWR9QC1tcy12aWV3cG9ydHt3aWR0aDpkZXZpY2Utd2lkdGh9LnZpc2libGUteHMsLnZpc2libGUtc20sLnZpc2libGUtbWQsLnZpc2libGUtbGd7ZGlzcGxheTpub25lICFpbXBvcnRhbnR9LnZpc2libGUteHMtYmxvY2ssLnZpc2libGUteHMtaW5saW5lLC52aXNpYmxlLXhzLWlubGluZS1ibG9jaywudmlzaWJsZS1zbS1ibG9jaywudmlzaWJsZS1zbS1pbmxpbmUsLnZpc2libGUtc20taW5saW5lLWJsb2NrLC52aXNpYmxlLW1kLWJsb2NrLC52aXNpYmxlLW1kLWlubGluZSwudmlzaWJsZS1tZC1pbmxpbmUtYmxvY2ssLnZpc2libGUtbGctYmxvY2ssLnZpc2libGUtbGctaW5saW5lLC52aXNpYmxlLWxnLWlubGluZS1ibG9ja3tkaXNwbGF5Om5vbmUgIWltcG9ydGFudH1AbWVkaWEgKG1heC13aWR0aDo3NjdweCl7LnZpc2libGUteHN7ZGlzcGxheTpibG9jayAhaW1wb3J0YW50fXRhYmxlLnZpc2libGUteHN7ZGlzcGxheTp0YWJsZSAhaW1wb3J0YW50fXRyLnZpc2libGUteHN7ZGlzcGxheTp0YWJsZS1yb3cgIWltcG9ydGFudH10aC52aXNpYmxlLXhzLHRkLnZpc2libGUteHN7ZGlzcGxheTp0YWJsZS1jZWxsICFpbXBvcnRhbnR9fUBtZWRpYSAobWF4LXdpZHRoOjc2N3B4KXsudmlzaWJsZS14cy1ibG9ja3tkaXNwbGF5OmJsb2NrICFpbXBvcnRhbnR9fUBtZWRpYSAobWF4LXdpZHRoOjc2N3B4KXsudmlzaWJsZS14cy1pbmxpbmV7ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudH19QG1lZGlhIChtYXgtd2lkdGg6NzY3cHgpey52aXNpYmxlLXhzLWlubGluZS1ibG9ja3tkaXNwbGF5OmlubGluZS1ibG9jayAhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCkgYW5kIChtYXgtd2lkdGg6OTkxcHgpey52aXNpYmxlLXNte2Rpc3BsYXk6YmxvY2sgIWltcG9ydGFudH10YWJsZS52aXNpYmxlLXNte2Rpc3BsYXk6dGFibGUgIWltcG9ydGFudH10ci52aXNpYmxlLXNte2Rpc3BsYXk6dGFibGUtcm93ICFpbXBvcnRhbnR9dGgudmlzaWJsZS1zbSx0ZC52aXNpYmxlLXNte2Rpc3BsYXk6dGFibGUtY2VsbCAhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCkgYW5kIChtYXgtd2lkdGg6OTkxcHgpey52aXNpYmxlLXNtLWJsb2Nre2Rpc3BsYXk6YmxvY2sgIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpIGFuZCAobWF4LXdpZHRoOjk5MXB4KXsudmlzaWJsZS1zbS1pbmxpbmV7ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpIGFuZCAobWF4LXdpZHRoOjk5MXB4KXsudmlzaWJsZS1zbS1pbmxpbmUtYmxvY2t7ZGlzcGxheTppbmxpbmUtYmxvY2sgIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6OTkycHgpIGFuZCAobWF4LXdpZHRoOjExOTlweCl7LnZpc2libGUtbWR7ZGlzcGxheTpibG9jayAhaW1wb3J0YW50fXRhYmxlLnZpc2libGUtbWR7ZGlzcGxheTp0YWJsZSAhaW1wb3J0YW50fXRyLnZpc2libGUtbWR7ZGlzcGxheTp0YWJsZS1yb3cgIWltcG9ydGFudH10aC52aXNpYmxlLW1kLHRkLnZpc2libGUtbWR7ZGlzcGxheTp0YWJsZS1jZWxsICFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KSBhbmQgKG1heC13aWR0aDoxMTk5cHgpey52aXNpYmxlLW1kLWJsb2Nre2Rpc3BsYXk6YmxvY2sgIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6OTkycHgpIGFuZCAobWF4LXdpZHRoOjExOTlweCl7LnZpc2libGUtbWQtaW5saW5le2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KSBhbmQgKG1heC13aWR0aDoxMTk5cHgpey52aXNpYmxlLW1kLWlubGluZS1ibG9ja3tkaXNwbGF5OmlubGluZS1ibG9jayAhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpey52aXNpYmxlLWxne2Rpc3BsYXk6YmxvY2sgIWltcG9ydGFudH10YWJsZS52aXNpYmxlLWxne2Rpc3BsYXk6dGFibGUgIWltcG9ydGFudH10ci52aXNpYmxlLWxne2Rpc3BsYXk6dGFibGUtcm93ICFpbXBvcnRhbnR9dGgudmlzaWJsZS1sZyx0ZC52aXNpYmxlLWxne2Rpc3BsYXk6dGFibGUtY2VsbCAhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpey52aXNpYmxlLWxnLWJsb2Nre2Rpc3BsYXk6YmxvY2sgIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXsudmlzaWJsZS1sZy1pbmxpbmV7ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXsudmlzaWJsZS1sZy1pbmxpbmUtYmxvY2t7ZGlzcGxheTppbmxpbmUtYmxvY2sgIWltcG9ydGFudH19QG1lZGlhIChtYXgtd2lkdGg6NzY3cHgpey5oaWRkZW4teHN7ZGlzcGxheTpub25lICFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KSBhbmQgKG1heC13aWR0aDo5OTFweCl7LmhpZGRlbi1zbXtkaXNwbGF5Om5vbmUgIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6OTkycHgpIGFuZCAobWF4LXdpZHRoOjExOTlweCl7LmhpZGRlbi1tZHtkaXNwbGF5Om5vbmUgIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXsuaGlkZGVuLWxne2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50fX0udmlzaWJsZS1wcmludHtkaXNwbGF5Om5vbmUgIWltcG9ydGFudH1AbWVkaWEgcHJpbnR7LnZpc2libGUtcHJpbnR7ZGlzcGxheTpibG9jayAhaW1wb3J0YW50fXRhYmxlLnZpc2libGUtcHJpbnR7ZGlzcGxheTp0YWJsZSAhaW1wb3J0YW50fXRyLnZpc2libGUtcHJpbnR7ZGlzcGxheTp0YWJsZS1yb3cgIWltcG9ydGFudH10aC52aXNpYmxlLXByaW50LHRkLnZpc2libGUtcHJpbnR7ZGlzcGxheTp0YWJsZS1jZWxsICFpbXBvcnRhbnR9fS52aXNpYmxlLXByaW50LWJsb2Nre2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50fUBtZWRpYSBwcmludHsudmlzaWJsZS1wcmludC1ibG9ja3tkaXNwbGF5OmJsb2NrICFpbXBvcnRhbnR9fS52aXNpYmxlLXByaW50LWlubGluZXtkaXNwbGF5Om5vbmUgIWltcG9ydGFudH1AbWVkaWEgcHJpbnR7LnZpc2libGUtcHJpbnQtaW5saW5le2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnR9fS52aXNpYmxlLXByaW50LWlubGluZS1ibG9ja3tkaXNwbGF5Om5vbmUgIWltcG9ydGFudH1AbWVkaWEgcHJpbnR7LnZpc2libGUtcHJpbnQtaW5saW5lLWJsb2Nre2Rpc3BsYXk6aW5saW5lLWJsb2NrICFpbXBvcnRhbnR9fUBtZWRpYSBwcmludHsuaGlkZGVuLXByaW50e2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50fX0ubmF2YmFye2JvcmRlcjpub25lO2JveC1zaGFkb3c6MCAxcHggMnB4IHJnYmEoMCwwLDAsMC4zKX0ubmF2YmFyLWJyYW5ke2ZvbnQtc2l6ZToyNHB4fS5uYXZiYXItaW52ZXJzZSAubmF2YmFyLWZvcm0gaW5wdXRbdHlwZT10ZXh0XSwubmF2YmFyLWludmVyc2UgLm5hdmJhci1mb3JtIGlucHV0W3R5cGU9cGFzc3dvcmRde2NvbG9yOiNmZmY7Ym94LXNoYWRvdzppbnNldCAwIC0xcHggMCAjYjJkYmZifS5uYXZiYXItaW52ZXJzZSAubmF2YmFyLWZvcm0gaW5wdXRbdHlwZT10ZXh0XTo6LW1vei1wbGFjZWhvbGRlciwubmF2YmFyLWludmVyc2UgLm5hdmJhci1mb3JtIGlucHV0W3R5cGU9cGFzc3dvcmRdOjotbW96LXBsYWNlaG9sZGVye2NvbG9yOiNiMmRiZmI7b3BhY2l0eToxfS5uYXZiYXItaW52ZXJzZSAubmF2YmFyLWZvcm0gaW5wdXRbdHlwZT10ZXh0XTotbXMtaW5wdXQtcGxhY2Vob2xkZXIsLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItZm9ybSBpbnB1dFt0eXBlPXBhc3N3b3JkXTotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6I2IyZGJmYn0ubmF2YmFyLWludmVyc2UgLm5hdmJhci1mb3JtIGlucHV0W3R5cGU9dGV4dF06Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItZm9ybSBpbnB1dFt0eXBlPXBhc3N3b3JkXTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcntjb2xvcjojYjJkYmZifS5uYXZiYXItaW52ZXJzZSAubmF2YmFyLWZvcm0gaW5wdXRbdHlwZT10ZXh0XTpmb2N1cywubmF2YmFyLWludmVyc2UgLm5hdmJhci1mb3JtIGlucHV0W3R5cGU9cGFzc3dvcmRdOmZvY3Vze2JveC1zaGFkb3c6aW5zZXQgMCAtMnB4IDAgI2ZmZn0uYnRuLWRlZmF1bHR7YmFja2dyb3VuZC1zaXplOjIwMCUgMjAwJTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJX0uYnRuLWRlZmF1bHQ6Zm9jdXN7YmFja2dyb3VuZC1jb2xvcjojZmZmZmZmfS5idG4tZGVmYXVsdDpob3ZlciwuYnRuLWRlZmF1bHQ6YWN0aXZlOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2YwZjBmMH0uYnRuLWRlZmF1bHQ6YWN0aXZle2JhY2tncm91bmQtY29sb3I6I2UwZTBlMDtiYWNrZ3JvdW5kLWltYWdlOnJhZGlhbC1ncmFkaWVudChjaXJjbGUsICNlMGUwZTAgMTAlLCAjZmZmIDExJSk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZToxMDAwJSAxMDAwJTtib3gtc2hhZG93OjJweCAycHggNHB4IHJnYmEoMCwwLDAsMC40KX0uYnRuLXByaW1hcnl7YmFja2dyb3VuZC1zaXplOjIwMCUgMjAwJTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJX0uYnRuLXByaW1hcnk6Zm9jdXN7YmFja2dyb3VuZC1jb2xvcjojMjE5NmYzfS5idG4tcHJpbWFyeTpob3ZlciwuYnRuLXByaW1hcnk6YWN0aXZlOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzBkODdlOX0uYnRuLXByaW1hcnk6YWN0aXZle2JhY2tncm91bmQtY29sb3I6IzBiNzZjYztiYWNrZ3JvdW5kLWltYWdlOnJhZGlhbC1ncmFkaWVudChjaXJjbGUsICMwYjc2Y2MgMTAlLCAjMjE5NmYzIDExJSk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZToxMDAwJSAxMDAwJTtib3gtc2hhZG93OjJweCAycHggNHB4IHJnYmEoMCwwLDAsMC40KX0uYnRuLXN1Y2Nlc3N7YmFja2dyb3VuZC1zaXplOjIwMCUgMjAwJTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJX0uYnRuLXN1Y2Nlc3M6Zm9jdXN7YmFja2dyb3VuZC1jb2xvcjojNGNhZjUwfS5idG4tc3VjY2Vzczpob3ZlciwuYnRuLXN1Y2Nlc3M6YWN0aXZlOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzQzOWE0Nn0uYnRuLXN1Y2Nlc3M6YWN0aXZle2JhY2tncm91bmQtY29sb3I6IzM5ODQzYztiYWNrZ3JvdW5kLWltYWdlOnJhZGlhbC1ncmFkaWVudChjaXJjbGUsICMzOTg0M2MgMTAlLCAjNGNhZjUwIDExJSk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZToxMDAwJSAxMDAwJTtib3gtc2hhZG93OjJweCAycHggNHB4IHJnYmEoMCwwLDAsMC40KX0uYnRuLWluZm97YmFja2dyb3VuZC1zaXplOjIwMCUgMjAwJTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJX0uYnRuLWluZm86Zm9jdXN7YmFja2dyb3VuZC1jb2xvcjojOWMyN2IwfS5idG4taW5mbzpob3ZlciwuYnRuLWluZm86YWN0aXZlOmhvdmVye2JhY2tncm91bmQtY29sb3I6Izg2MjE5N30uYnRuLWluZm86YWN0aXZle2JhY2tncm91bmQtY29sb3I6IzcwMWM3ZTtiYWNrZ3JvdW5kLWltYWdlOnJhZGlhbC1ncmFkaWVudChjaXJjbGUsICM3MDFjN2UgMTAlLCAjOWMyN2IwIDExJSk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZToxMDAwJSAxMDAwJTtib3gtc2hhZG93OjJweCAycHggNHB4IHJnYmEoMCwwLDAsMC40KX0uYnRuLXdhcm5pbmd7YmFja2dyb3VuZC1zaXplOjIwMCUgMjAwJTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJX0uYnRuLXdhcm5pbmc6Zm9jdXN7YmFja2dyb3VuZC1jb2xvcjojZmY5ODAwfS5idG4td2FybmluZzpob3ZlciwuYnRuLXdhcm5pbmc6YWN0aXZlOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2UwODYwMH0uYnRuLXdhcm5pbmc6YWN0aXZle2JhY2tncm91bmQtY29sb3I6I2MyNzQwMDtiYWNrZ3JvdW5kLWltYWdlOnJhZGlhbC1ncmFkaWVudChjaXJjbGUsICNjMjc0MDAgMTAlLCAjZmY5ODAwIDExJSk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZToxMDAwJSAxMDAwJTtib3gtc2hhZG93OjJweCAycHggNHB4IHJnYmEoMCwwLDAsMC40KX0uYnRuLWRhbmdlcntiYWNrZ3JvdW5kLXNpemU6MjAwJSAyMDAlO2JhY2tncm91bmQtcG9zaXRpb246NTAlfS5idG4tZGFuZ2VyOmZvY3Vze2JhY2tncm91bmQtY29sb3I6I2U1MWMyM30uYnRuLWRhbmdlcjpob3ZlciwuYnRuLWRhbmdlcjphY3RpdmU6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojY2IxNzFlfS5idG4tZGFuZ2VyOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNiMDE0MWE7YmFja2dyb3VuZC1pbWFnZTpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCAjYjAxNDFhIDEwJSwgI2U1MWMyMyAxMSUpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6MTAwMCUgMTAwMCU7Ym94LXNoYWRvdzoycHggMnB4IDRweCByZ2JhKDAsMCwwLDAuNCl9LmJ0bi1saW5re2JhY2tncm91bmQtc2l6ZToyMDAlIDIwMCU7YmFja2dyb3VuZC1wb3NpdGlvbjo1MCV9LmJ0bi1saW5rOmZvY3Vze2JhY2tncm91bmQtY29sb3I6I2ZmZmZmZn0uYnRuLWxpbms6aG92ZXIsLmJ0bi1saW5rOmFjdGl2ZTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNmMGYwZjB9LmJ0bi1saW5rOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNlMGUwZTA7YmFja2dyb3VuZC1pbWFnZTpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCAjZTBlMGUwIDEwJSwgI2ZmZiAxMSUpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6MTAwMCUgMTAwMCU7Ym94LXNoYWRvdzoycHggMnB4IDRweCByZ2JhKDAsMCwwLDAuNCl9LmJ0bnt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Ym9yZGVyOm5vbmU7Ym94LXNoYWRvdzoxcHggMXB4IDRweCByZ2JhKDAsMCwwLDAuNCk7dHJhbnNpdGlvbjphbGwgMC40c30uYnRuLWxpbmt7Ym9yZGVyLXJhZGl1czozcHg7Ym94LXNoYWRvdzpub25lO2NvbG9yOiM0NDQ0NDR9LmJ0bi1saW5rOmhvdmVyLC5idG4tbGluazpmb2N1c3tib3gtc2hhZG93Om5vbmU7Y29sb3I6IzQ0NDQ0NDt0ZXh0LWRlY29yYXRpb246bm9uZX0uYnRuLWRlZmF1bHQuZGlzYWJsZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuMSk7Y29sb3I6cmdiYSgwLDAsMCwwLjQpO29wYWNpdHk6MX0uYnRuLWdyb3VwIC5idG4rLmJ0biwuYnRuLWdyb3VwIC5idG4rLmJ0bi1ncm91cCwuYnRuLWdyb3VwIC5idG4tZ3JvdXArLmJ0biwuYnRuLWdyb3VwIC5idG4tZ3JvdXArLmJ0bi1ncm91cHttYXJnaW4tbGVmdDowfS5idG4tZ3JvdXAtdmVydGljYWw+LmJ0bisuYnRuLC5idG4tZ3JvdXAtdmVydGljYWw+LmJ0bisuYnRuLWdyb3VwLC5idG4tZ3JvdXAtdmVydGljYWw+LmJ0bi1ncm91cCsuYnRuLC5idG4tZ3JvdXAtdmVydGljYWw+LmJ0bi1ncm91cCsuYnRuLWdyb3Vwe21hcmdpbi10b3A6MH1ib2R5ey13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7bGV0dGVyLXNwYWNpbmc6LjFweH1we21hcmdpbjowIDAgMWVtfWlucHV0LGJ1dHRvbnstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkO2xldHRlci1zcGFjaW5nOi4xcHh9YXt0cmFuc2l0aW9uOmFsbCAwLjJzfS50YWJsZS1ob3Zlcj50Ym9keT50ciwudGFibGUtaG92ZXI+dGJvZHk+dHI+dGgsLnRhYmxlLWhvdmVyPnRib2R5PnRyPnRke3RyYW5zaXRpb246YWxsIDAuMnN9bGFiZWx7Zm9udC13ZWlnaHQ6bm9ybWFsfXRleHRhcmVhLHRleHRhcmVhLmZvcm0tY29udHJvbCxpbnB1dC5mb3JtLWNvbnRyb2wsaW5wdXRbdHlwZT10ZXh0XSxpbnB1dFt0eXBlPXBhc3N3b3JkXSxpbnB1dFt0eXBlPWVtYWlsXSxpbnB1dFt0eXBlPW51bWJlcl0sW3R5cGU9dGV4dF0uZm9ybS1jb250cm9sLFt0eXBlPXBhc3N3b3JkXS5mb3JtLWNvbnRyb2wsW3R5cGU9ZW1haWxdLmZvcm0tY29udHJvbCxbdHlwZT10ZWxdLmZvcm0tY29udHJvbCxbY29udGVudGVkaXRhYmxlXS5mb3JtLWNvbnRyb2x7cGFkZGluZzowO2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTtib3gtc2hhZG93Omluc2V0IDAgLTFweCAwICNkZGQ7Zm9udC1zaXplOjE2cHh9dGV4dGFyZWE6Zm9jdXMsdGV4dGFyZWEuZm9ybS1jb250cm9sOmZvY3VzLGlucHV0LmZvcm0tY29udHJvbDpmb2N1cyxpbnB1dFt0eXBlPXRleHRdOmZvY3VzLGlucHV0W3R5cGU9cGFzc3dvcmRdOmZvY3VzLGlucHV0W3R5cGU9ZW1haWxdOmZvY3VzLGlucHV0W3R5cGU9bnVtYmVyXTpmb2N1cyxbdHlwZT10ZXh0XS5mb3JtLWNvbnRyb2w6Zm9jdXMsW3R5cGU9cGFzc3dvcmRdLmZvcm0tY29udHJvbDpmb2N1cyxbdHlwZT1lbWFpbF0uZm9ybS1jb250cm9sOmZvY3VzLFt0eXBlPXRlbF0uZm9ybS1jb250cm9sOmZvY3VzLFtjb250ZW50ZWRpdGFibGVdLmZvcm0tY29udHJvbDpmb2N1c3tib3gtc2hhZG93Omluc2V0IDAgLTJweCAwICMyMTk2ZjN9dGV4dGFyZWFbZGlzYWJsZWRdLHRleHRhcmVhLmZvcm0tY29udHJvbFtkaXNhYmxlZF0saW5wdXQuZm9ybS1jb250cm9sW2Rpc2FibGVkXSxpbnB1dFt0eXBlPXRleHRdW2Rpc2FibGVkXSxpbnB1dFt0eXBlPXBhc3N3b3JkXVtkaXNhYmxlZF0saW5wdXRbdHlwZT1lbWFpbF1bZGlzYWJsZWRdLGlucHV0W3R5cGU9bnVtYmVyXVtkaXNhYmxlZF0sW3R5cGU9dGV4dF0uZm9ybS1jb250cm9sW2Rpc2FibGVkXSxbdHlwZT1wYXNzd29yZF0uZm9ybS1jb250cm9sW2Rpc2FibGVkXSxbdHlwZT1lbWFpbF0uZm9ybS1jb250cm9sW2Rpc2FibGVkXSxbdHlwZT10ZWxdLmZvcm0tY29udHJvbFtkaXNhYmxlZF0sW2NvbnRlbnRlZGl0YWJsZV0uZm9ybS1jb250cm9sW2Rpc2FibGVkXSx0ZXh0YXJlYVtyZWFkb25seV0sdGV4dGFyZWEuZm9ybS1jb250cm9sW3JlYWRvbmx5XSxpbnB1dC5mb3JtLWNvbnRyb2xbcmVhZG9ubHldLGlucHV0W3R5cGU9dGV4dF1bcmVhZG9ubHldLGlucHV0W3R5cGU9cGFzc3dvcmRdW3JlYWRvbmx5XSxpbnB1dFt0eXBlPWVtYWlsXVtyZWFkb25seV0saW5wdXRbdHlwZT1udW1iZXJdW3JlYWRvbmx5XSxbdHlwZT10ZXh0XS5mb3JtLWNvbnRyb2xbcmVhZG9ubHldLFt0eXBlPXBhc3N3b3JkXS5mb3JtLWNvbnRyb2xbcmVhZG9ubHldLFt0eXBlPWVtYWlsXS5mb3JtLWNvbnRyb2xbcmVhZG9ubHldLFt0eXBlPXRlbF0uZm9ybS1jb250cm9sW3JlYWRvbmx5XSxbY29udGVudGVkaXRhYmxlXS5mb3JtLWNvbnRyb2xbcmVhZG9ubHlde2JveC1zaGFkb3c6bm9uZTtib3JkZXItYm90dG9tOjFweCBkb3R0ZWQgI2RkZH10ZXh0YXJlYS5pbnB1dC1zbSx0ZXh0YXJlYS5mb3JtLWNvbnRyb2wuaW5wdXQtc20saW5wdXQuZm9ybS1jb250cm9sLmlucHV0LXNtLGlucHV0W3R5cGU9dGV4dF0uaW5wdXQtc20saW5wdXRbdHlwZT1wYXNzd29yZF0uaW5wdXQtc20saW5wdXRbdHlwZT1lbWFpbF0uaW5wdXQtc20saW5wdXRbdHlwZT1udW1iZXJdLmlucHV0LXNtLFt0eXBlPXRleHRdLmZvcm0tY29udHJvbC5pbnB1dC1zbSxbdHlwZT1wYXNzd29yZF0uZm9ybS1jb250cm9sLmlucHV0LXNtLFt0eXBlPWVtYWlsXS5mb3JtLWNvbnRyb2wuaW5wdXQtc20sW3R5cGU9dGVsXS5mb3JtLWNvbnRyb2wuaW5wdXQtc20sW2NvbnRlbnRlZGl0YWJsZV0uZm9ybS1jb250cm9sLmlucHV0LXNte2ZvbnQtc2l6ZToxMnB4fXRleHRhcmVhLmlucHV0LWxnLHRleHRhcmVhLmZvcm0tY29udHJvbC5pbnB1dC1sZyxpbnB1dC5mb3JtLWNvbnRyb2wuaW5wdXQtbGcsaW5wdXRbdHlwZT10ZXh0XS5pbnB1dC1sZyxpbnB1dFt0eXBlPXBhc3N3b3JkXS5pbnB1dC1sZyxpbnB1dFt0eXBlPWVtYWlsXS5pbnB1dC1sZyxpbnB1dFt0eXBlPW51bWJlcl0uaW5wdXQtbGcsW3R5cGU9dGV4dF0uZm9ybS1jb250cm9sLmlucHV0LWxnLFt0eXBlPXBhc3N3b3JkXS5mb3JtLWNvbnRyb2wuaW5wdXQtbGcsW3R5cGU9ZW1haWxdLmZvcm0tY29udHJvbC5pbnB1dC1sZyxbdHlwZT10ZWxdLmZvcm0tY29udHJvbC5pbnB1dC1sZyxbY29udGVudGVkaXRhYmxlXS5mb3JtLWNvbnRyb2wuaW5wdXQtbGd7Zm9udC1zaXplOjE3cHh9c2VsZWN0LHNlbGVjdC5mb3JtLWNvbnRyb2x7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZTtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjBcOTtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJvQUFBQWFDQU1BQUFDZWxMejhBQUFBSjFCTVZFVm1abVptWm1abVptWm1abVptWm1abVptWm1abVptWm1abVptWm1abVptWm1abVptWm1abWFQL1FTakFBQUFESFJTVGxNQUFnTUpDMHVXcEthNndNeE1kamtvQUFBQU5VbEVRVlI0QWVYSnlRRUFFUkFBc05sN0hmM1g2eHQwUUw2SnBaV3EzMHBkdmRhZG1lKzBQTWR6dkhtOFlUaEhjVDFIN0swQnRPTURuaVpoV09nQUFBQUFTVVZPUks1Q1lJST0pO2JhY2tncm91bmQtc2l6ZToxM3B4O2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXBvc2l0aW9uOnJpZ2h0IGNlbnRlcjtib3gtc2hhZG93Omluc2V0IDAgLTFweCAwICNkZGQ7Zm9udC1zaXplOjE2cHg7bGluZS1oZWlnaHQ6MS41fXNlbGVjdDo6LW1zLWV4cGFuZCxzZWxlY3QuZm9ybS1jb250cm9sOjotbXMtZXhwYW5ke2Rpc3BsYXk6bm9uZX1zZWxlY3QuaW5wdXQtc20sc2VsZWN0LmZvcm0tY29udHJvbC5pbnB1dC1zbXtmb250LXNpemU6MTJweH1zZWxlY3QuaW5wdXQtbGcsc2VsZWN0LmZvcm0tY29udHJvbC5pbnB1dC1sZ3tmb250LXNpemU6MTdweH1zZWxlY3Q6Zm9jdXMsc2VsZWN0LmZvcm0tY29udHJvbDpmb2N1c3tib3gtc2hhZG93Omluc2V0IDAgLTJweCAwICMyMTk2ZjM7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCb0FBQUFhQ0FNQUFBQ2VsTHo4QUFBQUoxQk1WRVVoSVNFaElTRWhJU0VoSVNFaElTRWhJU0VoSVNFaElTRWhJU0VoSVNFaElTRWhJU0VoSVNGOFM5ZXdBQUFBREhSU1RsTUFBZ01KQzB1V3BLYTZ3TXhNZGprb0FBQUFOVWxFUVZSNEFlWEp5UUVBRVJBQXNObDdIZjNYNnh0MFFMNkpwWldxMzBwZHZkYWRtZSswUE1kenZIbThZVGhIY1QxSDdLMEJ0T01EbmlaaFdPZ0FBQUFBU1VWT1JLNUNZSUk9KX1zZWxlY3RbbXVsdGlwbGVdLHNlbGVjdC5mb3JtLWNvbnRyb2xbbXVsdGlwbGVde2JhY2tncm91bmQ6bm9uZX0ucmFkaW8gbGFiZWwsLnJhZGlvLWlubGluZSBsYWJlbCwuY2hlY2tib3ggbGFiZWwsLmNoZWNrYm94LWlubGluZSBsYWJlbHtwYWRkaW5nLWxlZnQ6MjVweH0ucmFkaW8gaW5wdXRbdHlwZT0icmFkaW8iXSwucmFkaW8taW5saW5lIGlucHV0W3R5cGU9InJhZGlvIl0sLmNoZWNrYm94IGlucHV0W3R5cGU9InJhZGlvIl0sLmNoZWNrYm94LWlubGluZSBpbnB1dFt0eXBlPSJyYWRpbyJdLC5yYWRpbyBpbnB1dFt0eXBlPSJjaGVja2JveCJdLC5yYWRpby1pbmxpbmUgaW5wdXRbdHlwZT0iY2hlY2tib3giXSwuY2hlY2tib3ggaW5wdXRbdHlwZT0iY2hlY2tib3giXSwuY2hlY2tib3gtaW5saW5lIGlucHV0W3R5cGU9ImNoZWNrYm94Il17bWFyZ2luLWxlZnQ6LTI1cHh9aW5wdXRbdHlwZT0icmFkaW8iXSwucmFkaW8gaW5wdXRbdHlwZT0icmFkaW8iXSwucmFkaW8taW5saW5lIGlucHV0W3R5cGU9InJhZGlvIl17cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luLXRvcDo2cHg7bWFyZ2luLXJpZ2h0OjRweDt2ZXJ0aWNhbC1hbGlnbjp0b3A7Ym9yZGVyOm5vbmU7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmU7Y3Vyc29yOnBvaW50ZXJ9aW5wdXRbdHlwZT0icmFkaW8iXTpmb2N1cywucmFkaW8gaW5wdXRbdHlwZT0icmFkaW8iXTpmb2N1cywucmFkaW8taW5saW5lIGlucHV0W3R5cGU9InJhZGlvIl06Zm9jdXN7b3V0bGluZTpub25lfWlucHV0W3R5cGU9InJhZGlvIl06YmVmb3JlLC5yYWRpbyBpbnB1dFt0eXBlPSJyYWRpbyJdOmJlZm9yZSwucmFkaW8taW5saW5lIGlucHV0W3R5cGU9InJhZGlvIl06YmVmb3JlLGlucHV0W3R5cGU9InJhZGlvIl06YWZ0ZXIsLnJhZGlvIGlucHV0W3R5cGU9InJhZGlvIl06YWZ0ZXIsLnJhZGlvLWlubGluZSBpbnB1dFt0eXBlPSJyYWRpbyJdOmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jazt3aWR0aDoxOHB4O2hlaWdodDoxOHB4O2JvcmRlci1yYWRpdXM6NTAlO3RyYW5zaXRpb246MjQwbXN9aW5wdXRbdHlwZT0icmFkaW8iXTpiZWZvcmUsLnJhZGlvIGlucHV0W3R5cGU9InJhZGlvIl06YmVmb3JlLC5yYWRpby1pbmxpbmUgaW5wdXRbdHlwZT0icmFkaW8iXTpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDotM3B4O2JhY2tncm91bmQtY29sb3I6IzIxOTZmMzstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwKTt0cmFuc2Zvcm06c2NhbGUoMCl9aW5wdXRbdHlwZT0icmFkaW8iXTphZnRlciwucmFkaW8gaW5wdXRbdHlwZT0icmFkaW8iXTphZnRlciwucmFkaW8taW5saW5lIGlucHV0W3R5cGU9InJhZGlvIl06YWZ0ZXJ7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0zcHg7Ym9yZGVyOjJweCBzb2xpZCAjNjY2NjY2fWlucHV0W3R5cGU9InJhZGlvIl06Y2hlY2tlZDpiZWZvcmUsLnJhZGlvIGlucHV0W3R5cGU9InJhZGlvIl06Y2hlY2tlZDpiZWZvcmUsLnJhZGlvLWlubGluZSBpbnB1dFt0eXBlPSJyYWRpbyJdOmNoZWNrZWQ6YmVmb3Jley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKC41KTt0cmFuc2Zvcm06c2NhbGUoLjUpfWlucHV0W3R5cGU9InJhZGlvIl06ZGlzYWJsZWQ6Y2hlY2tlZDpiZWZvcmUsLnJhZGlvIGlucHV0W3R5cGU9InJhZGlvIl06ZGlzYWJsZWQ6Y2hlY2tlZDpiZWZvcmUsLnJhZGlvLWlubGluZSBpbnB1dFt0eXBlPSJyYWRpbyJdOmRpc2FibGVkOmNoZWNrZWQ6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6I2JiYmJiYn1pbnB1dFt0eXBlPSJyYWRpbyJdOmNoZWNrZWQ6YWZ0ZXIsLnJhZGlvIGlucHV0W3R5cGU9InJhZGlvIl06Y2hlY2tlZDphZnRlciwucmFkaW8taW5saW5lIGlucHV0W3R5cGU9InJhZGlvIl06Y2hlY2tlZDphZnRlcntib3JkZXItY29sb3I6IzIxOTZmM31pbnB1dFt0eXBlPSJyYWRpbyJdOmRpc2FibGVkOmFmdGVyLC5yYWRpbyBpbnB1dFt0eXBlPSJyYWRpbyJdOmRpc2FibGVkOmFmdGVyLC5yYWRpby1pbmxpbmUgaW5wdXRbdHlwZT0icmFkaW8iXTpkaXNhYmxlZDphZnRlcixpbnB1dFt0eXBlPSJyYWRpbyJdOmRpc2FibGVkOmNoZWNrZWQ6YWZ0ZXIsLnJhZGlvIGlucHV0W3R5cGU9InJhZGlvIl06ZGlzYWJsZWQ6Y2hlY2tlZDphZnRlciwucmFkaW8taW5saW5lIGlucHV0W3R5cGU9InJhZGlvIl06ZGlzYWJsZWQ6Y2hlY2tlZDphZnRlcntib3JkZXItY29sb3I6I2JiYmJiYn1pbnB1dFt0eXBlPSJjaGVja2JveCJdLC5jaGVja2JveCBpbnB1dFt0eXBlPSJjaGVja2JveCJdLC5jaGVja2JveC1pbmxpbmUgaW5wdXRbdHlwZT0iY2hlY2tib3giXXtwb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXI6bm9uZTttYXJnaW4tYm90dG9tOi00cHg7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lO2N1cnNvcjpwb2ludGVyfWlucHV0W3R5cGU9ImNoZWNrYm94Il06Zm9jdXMsLmNoZWNrYm94IGlucHV0W3R5cGU9ImNoZWNrYm94Il06Zm9jdXMsLmNoZWNrYm94LWlubGluZSBpbnB1dFt0eXBlPSJjaGVja2JveCJdOmZvY3Vze291dGxpbmU6bm9uZX1pbnB1dFt0eXBlPSJjaGVja2JveCJdOmZvY3VzOmFmdGVyLC5jaGVja2JveCBpbnB1dFt0eXBlPSJjaGVja2JveCJdOmZvY3VzOmFmdGVyLC5jaGVja2JveC1pbmxpbmUgaW5wdXRbdHlwZT0iY2hlY2tib3giXTpmb2N1czphZnRlcntib3JkZXItY29sb3I6IzIxOTZmM31pbnB1dFt0eXBlPSJjaGVja2JveCJdOmFmdGVyLC5jaGVja2JveCBpbnB1dFt0eXBlPSJjaGVja2JveCJdOmFmdGVyLC5jaGVja2JveC1pbmxpbmUgaW5wdXRbdHlwZT0iY2hlY2tib3giXTphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7d2lkdGg6MThweDtoZWlnaHQ6MThweDttYXJnaW4tdG9wOi0ycHg7bWFyZ2luLXJpZ2h0OjVweDtib3JkZXI6MnB4IHNvbGlkICM2NjY2NjY7Ym9yZGVyLXJhZGl1czoycHg7dHJhbnNpdGlvbjoyNDBtc31pbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQ6YmVmb3JlLC5jaGVja2JveCBpbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQ6YmVmb3JlLC5jaGVja2JveC1pbmxpbmUgaW5wdXRbdHlwZT0iY2hlY2tib3giXTpjaGVja2VkOmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6NnB4O2Rpc3BsYXk6dGFibGU7d2lkdGg6NnB4O2hlaWdodDoxMnB4O2JvcmRlcjoycHggc29saWQgI2ZmZjtib3JkZXItdG9wLXdpZHRoOjA7Ym9yZGVyLWxlZnQtd2lkdGg6MDstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfWlucHV0W3R5cGU9ImNoZWNrYm94Il06Y2hlY2tlZDphZnRlciwuY2hlY2tib3ggaW5wdXRbdHlwZT0iY2hlY2tib3giXTpjaGVja2VkOmFmdGVyLC5jaGVja2JveC1pbmxpbmUgaW5wdXRbdHlwZT0iY2hlY2tib3giXTpjaGVja2VkOmFmdGVye2JhY2tncm91bmQtY29sb3I6IzIxOTZmMztib3JkZXItY29sb3I6IzIxOTZmM31pbnB1dFt0eXBlPSJjaGVja2JveCJdOmRpc2FibGVkOmFmdGVyLC5jaGVja2JveCBpbnB1dFt0eXBlPSJjaGVja2JveCJdOmRpc2FibGVkOmFmdGVyLC5jaGVja2JveC1pbmxpbmUgaW5wdXRbdHlwZT0iY2hlY2tib3giXTpkaXNhYmxlZDphZnRlcntib3JkZXItY29sb3I6I2JiYmJiYn1pbnB1dFt0eXBlPSJjaGVja2JveCJdOmRpc2FibGVkOmNoZWNrZWQ6YWZ0ZXIsLmNoZWNrYm94IGlucHV0W3R5cGU9ImNoZWNrYm94Il06ZGlzYWJsZWQ6Y2hlY2tlZDphZnRlciwuY2hlY2tib3gtaW5saW5lIGlucHV0W3R5cGU9ImNoZWNrYm94Il06ZGlzYWJsZWQ6Y2hlY2tlZDphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiNiYmJiYmI7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fS5oYXMtd2FybmluZyBpbnB1dDpub3QoW3R5cGU9Y2hlY2tib3hdKSwuaGFzLXdhcm5pbmcgLmZvcm0tY29udHJvbCwuaGFzLXdhcm5pbmcgaW5wdXQuZm9ybS1jb250cm9sW3JlYWRvbmx5XSwuaGFzLXdhcm5pbmcgaW5wdXRbdHlwZT10ZXh0XVtyZWFkb25seV0sLmhhcy13YXJuaW5nIFt0eXBlPXRleHRdLmZvcm0tY29udHJvbFtyZWFkb25seV0sLmhhcy13YXJuaW5nIGlucHV0Om5vdChbdHlwZT1jaGVja2JveF0pOmZvY3VzLC5oYXMtd2FybmluZyAuZm9ybS1jb250cm9sOmZvY3Vze2JvcmRlci1ib3R0b206bm9uZTtib3gtc2hhZG93Omluc2V0IDAgLTJweCAwICNmZjk4MDB9Lmhhcy1lcnJvciBpbnB1dDpub3QoW3R5cGU9Y2hlY2tib3hdKSwuaGFzLWVycm9yIC5mb3JtLWNvbnRyb2wsLmhhcy1lcnJvciBpbnB1dC5mb3JtLWNvbnRyb2xbcmVhZG9ubHldLC5oYXMtZXJyb3IgaW5wdXRbdHlwZT10ZXh0XVtyZWFkb25seV0sLmhhcy1lcnJvciBbdHlwZT10ZXh0XS5mb3JtLWNvbnRyb2xbcmVhZG9ubHldLC5oYXMtZXJyb3IgaW5wdXQ6bm90KFt0eXBlPWNoZWNrYm94XSk6Zm9jdXMsLmhhcy1lcnJvciAuZm9ybS1jb250cm9sOmZvY3Vze2JvcmRlci1ib3R0b206bm9uZTtib3gtc2hhZG93Omluc2V0IDAgLTJweCAwICNlNTFjMjN9Lmhhcy1zdWNjZXNzIGlucHV0Om5vdChbdHlwZT1jaGVja2JveF0pLC5oYXMtc3VjY2VzcyAuZm9ybS1jb250cm9sLC5oYXMtc3VjY2VzcyBpbnB1dC5mb3JtLWNvbnRyb2xbcmVhZG9ubHldLC5oYXMtc3VjY2VzcyBpbnB1dFt0eXBlPXRleHRdW3JlYWRvbmx5XSwuaGFzLXN1Y2Nlc3MgW3R5cGU9dGV4dF0uZm9ybS1jb250cm9sW3JlYWRvbmx5XSwuaGFzLXN1Y2Nlc3MgaW5wdXQ6bm90KFt0eXBlPWNoZWNrYm94XSk6Zm9jdXMsLmhhcy1zdWNjZXNzIC5mb3JtLWNvbnRyb2w6Zm9jdXN7Ym9yZGVyLWJvdHRvbTpub25lO2JveC1zaGFkb3c6aW5zZXQgMCAtMnB4IDAgIzRjYWY1MH0uaGFzLXdhcm5pbmcgLmlucHV0LWdyb3VwLWFkZG9uLC5oYXMtZXJyb3IgLmlucHV0LWdyb3VwLWFkZG9uLC5oYXMtc3VjY2VzcyAuaW5wdXQtZ3JvdXAtYWRkb257Y29sb3I6IzY2NjY2Njtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0uZm9ybS1ncm91cC1sZyBzZWxlY3QsLmZvcm0tZ3JvdXAtbGcgc2VsZWN0LmZvcm0tY29udHJvbHtsaW5lLWhlaWdodDoxLjV9Lm5hdi10YWJzPmxpPmEsLm5hdi10YWJzPmxpPmE6Zm9jdXN7bWFyZ2luLXJpZ2h0OjA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtjb2xvcjojNjY2NjY2O2JveC1zaGFkb3c6aW5zZXQgMCAtMXB4IDAgI2RkZDt0cmFuc2l0aW9uOmFsbCAwLjJzfS5uYXYtdGFicz5saT5hOmhvdmVyLC5uYXYtdGFicz5saT5hOmZvY3VzOmhvdmVye2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym94LXNoYWRvdzppbnNldCAwIC0ycHggMCAjMjE5NmYzO2NvbG9yOiMyMTk2ZjN9Lm5hdi10YWJzPmxpLmFjdGl2ZT5hLC5uYXYtdGFicz5saS5hY3RpdmU+YTpmb2N1c3tib3JkZXI6bm9uZTtib3gtc2hhZG93Omluc2V0IDAgLTJweCAwICMyMTk2ZjM7Y29sb3I6IzIxOTZmM30ubmF2LXRhYnM+bGkuYWN0aXZlPmE6aG92ZXIsLm5hdi10YWJzPmxpLmFjdGl2ZT5hOmZvY3VzOmhvdmVye2JvcmRlcjpub25lO2NvbG9yOiMyMTk2ZjN9Lm5hdi10YWJzPmxpLmRpc2FibGVkPmF7Ym94LXNoYWRvdzppbnNldCAwIC0xcHggMCAjZGRkfS5uYXYtdGFicy5uYXYtanVzdGlmaWVkPmxpPmEsLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQ+bGk+YTpob3ZlciwubmF2LXRhYnMubmF2LWp1c3RpZmllZD5saT5hOmZvY3VzLC5uYXYtdGFicy5uYXYtanVzdGlmaWVkPi5hY3RpdmU+YSwubmF2LXRhYnMubmF2LWp1c3RpZmllZD4uYWN0aXZlPmE6aG92ZXIsLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQ+LmFjdGl2ZT5hOmZvY3Vze2JvcmRlcjpub25lfS5uYXYtdGFicyAuZHJvcGRvd24tbWVudXttYXJnaW4tdG9wOjB9LmRyb3Bkb3duLW1lbnV7bWFyZ2luLXRvcDowO2JvcmRlcjpub25lO2JveC1zaGFkb3c6MCAxcHggNHB4IHJnYmEoMCwwLDAsMC4zKX0uYWxlcnR7Ym9yZGVyOm5vbmU7Y29sb3I6I2ZmZn0uYWxlcnQtc3VjY2Vzc3tiYWNrZ3JvdW5kLWNvbG9yOiM0Y2FmNTB9LmFsZXJ0LWluZm97YmFja2dyb3VuZC1jb2xvcjojOWMyN2IwfS5hbGVydC13YXJuaW5ne2JhY2tncm91bmQtY29sb3I6I2ZmOTgwMH0uYWxlcnQtZGFuZ2Vye2JhY2tncm91bmQtY29sb3I6I2U1MWMyM30uYWxlcnQgYTpub3QoLmNsb3NlKTpub3QoLmJ0biksLmFsZXJ0IC5hbGVydC1saW5re2NvbG9yOiNmZmY7Zm9udC13ZWlnaHQ6Ym9sZH0uYWxlcnQgLmNsb3Nle2NvbG9yOiNmZmZ9LmJhZGdle3BhZGRpbmc6NHB4IDZweCA0cHh9LnByb2dyZXNze3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTtoZWlnaHQ6NnB4O2JvcmRlci1yYWRpdXM6MDtib3gtc2hhZG93Om5vbmV9LnByb2dyZXNzLWJhcntib3gtc2hhZG93Om5vbmV9LnByb2dyZXNzLWJhcjpsYXN0LWNoaWxke2JvcmRlci1yYWRpdXM6MCAzcHggM3B4IDB9LnByb2dyZXNzLWJhcjpsYXN0LWNoaWxkOmJlZm9yZXtkaXNwbGF5OmJsb2NrO2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4Oi0xO2JhY2tncm91bmQtY29sb3I6I2NhZTZmY30ucHJvZ3Jlc3MtYmFyLXN1Y2Nlc3M6bGFzdC1jaGlsZC5wcm9ncmVzcy1iYXI6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6I2M3ZTdjOH0ucHJvZ3Jlc3MtYmFyLWluZm86bGFzdC1jaGlsZC5wcm9ncmVzcy1iYXI6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6I2VkYzlmM30ucHJvZ3Jlc3MtYmFyLXdhcm5pbmc6bGFzdC1jaGlsZC5wcm9ncmVzcy1iYXI6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6I2ZmZTBiM30ucHJvZ3Jlc3MtYmFyLWRhbmdlcjpsYXN0LWNoaWxkLnByb2dyZXNzLWJhcjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojZjI4ZTkyfS5jbG9zZXtmb250LXNpemU6MzRweDtmb250LXdlaWdodDozMDA7bGluZS1oZWlnaHQ6MjRweDtvcGFjaXR5OjAuNjt0cmFuc2l0aW9uOmFsbCAwLjJzfS5jbG9zZTpob3ZlcntvcGFjaXR5OjF9Lmxpc3QtZ3JvdXAtaXRlbXtwYWRkaW5nOjE1cHh9Lmxpc3QtZ3JvdXAtaXRlbS10ZXh0e2NvbG9yOiNiYmJiYmJ9LndlbGx7Ym9yZGVyLXJhZGl1czowO2JveC1zaGFkb3c6bm9uZX0ucGFuZWx7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czoycHg7Ym94LXNoYWRvdzowIDFweCA0cHggcmdiYSgwLDAsMCwwLjMpfS5wYW5lbC1oZWFkaW5ne2JvcmRlci1ib3R0b206bm9uZX0ucGFuZWwtZm9vdGVye2JvcmRlci10b3A6bm9uZX0ucG9wb3Zlcntib3JkZXI6bm9uZTtib3gtc2hhZG93OjAgMXB4IDRweCByZ2JhKDAsMCwwLDAuMyl9LmNhcm91c2VsLWNhcHRpb24gaDEsLmNhcm91c2VsLWNhcHRpb24gaDIsLmNhcm91c2VsLWNhcHRpb24gaDMsLmNhcm91c2VsLWNhcHRpb24gaDQsLmNhcm91c2VsLWNhcHRpb24gaDUsLmNhcm91c2VsLWNhcHRpb24gaDZ7Y29sb3I6aW5oZXJpdH0=" rel="stylesheet" />
+ <!-- bootstrap 3 -->
+ <script src="data:application/javascript;base64,LyohCiAqIEJvb3RzdHJhcCB2My4zLjUgKGh0dHA6Ly9nZXRib290c3RyYXAuY29tKQogKiBDb3B5cmlnaHQgMjAxMS0yMDE1IFR3aXR0ZXIsIEluYy4KICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlCiAqLwppZigidW5kZWZpbmVkIj09dHlwZW9mIGpRdWVyeSl0aHJvdyBuZXcgRXJyb3IoIkJvb3RzdHJhcCdzIEphdmFTY3JpcHQgcmVxdWlyZXMgalF1ZXJ5Iik7K2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0Ijt2YXIgYj1hLmZuLmpxdWVyeS5zcGxpdCgiICIpWzBdLnNwbGl0KCIuIik7aWYoYlswXTwyJiZiWzFdPDl8fDE9PWJbMF0mJjk9PWJbMV0mJmJbMl08MSl0aHJvdyBuZXcgRXJyb3IoIkJvb3RzdHJhcCdzIEphdmFTY3JpcHQgcmVxdWlyZXMgalF1ZXJ5IHZlcnNpb24gMS45LjEgb3IgaGlnaGVyIil9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKCl7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYm9vdHN0cmFwIiksYj17V2Via2l0VHJhbnNpdGlvbjoid2Via2l0VHJhbnNpdGlvbkVuZCIsTW96VHJhbnNpdGlvbjoidHJhbnNpdGlvbmVuZCIsT1RyYW5zaXRpb246Im9UcmFuc2l0aW9uRW5kIG90cmFuc2l0aW9uZW5kIix0cmFuc2l0aW9uOiJ0cmFuc2l0aW9uZW5kIn07Zm9yKHZhciBjIGluIGIpaWYodm9pZCAwIT09YS5zdHlsZVtjXSlyZXR1cm57ZW5kOmJbY119O3JldHVybiExfWEuZm4uZW11bGF0ZVRyYW5zaXRpb25FbmQ9ZnVuY3Rpb24oYil7dmFyIGM9ITEsZD10aGlzO2EodGhpcykub25lKCJic1RyYW5zaXRpb25FbmQiLGZ1bmN0aW9uKCl7Yz0hMH0pO3ZhciBlPWZ1bmN0aW9uKCl7Y3x8YShkKS50cmlnZ2VyKGEuc3VwcG9ydC50cmFuc2l0aW9uLmVuZCl9O3JldHVybiBzZXRUaW1lb3V0KGUsYiksdGhpc30sYShmdW5jdGlvbigpe2Euc3VwcG9ydC50cmFuc2l0aW9uPWIoKSxhLnN1cHBvcnQudHJhbnNpdGlvbiYmKGEuZXZlbnQuc3BlY2lhbC5ic1RyYW5zaXRpb25FbmQ9e2JpbmRUeXBlOmEuc3VwcG9ydC50cmFuc2l0aW9uLmVuZCxkZWxlZ2F0ZVR5cGU6YS5zdXBwb3J0LnRyYW5zaXRpb24uZW5kLGhhbmRsZTpmdW5jdGlvbihiKXtyZXR1cm4gYShiLnRhcmdldCkuaXModGhpcyk/Yi5oYW5kbGVPYmouaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk6dm9pZCAwfX0pfSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYz1hKHRoaXMpLGU9Yy5kYXRhKCJicy5hbGVydCIpO2V8fGMuZGF0YSgiYnMuYWxlcnQiLGU9bmV3IGQodGhpcykpLCJzdHJpbmciPT10eXBlb2YgYiYmZVtiXS5jYWxsKGMpfSl9dmFyIGM9J1tkYXRhLWRpc21pc3M9ImFsZXJ0Il0nLGQ9ZnVuY3Rpb24oYil7YShiKS5vbigiY2xpY2siLGMsdGhpcy5jbG9zZSl9O2QuVkVSU0lPTj0iMy4zLjUiLGQuVFJBTlNJVElPTl9EVVJBVElPTj0xNTAsZC5wcm90b3R5cGUuY2xvc2U9ZnVuY3Rpb24oYil7ZnVuY3Rpb24gYygpe2cuZGV0YWNoKCkudHJpZ2dlcigiY2xvc2VkLmJzLmFsZXJ0IikucmVtb3ZlKCl9dmFyIGU9YSh0aGlzKSxmPWUuYXR0cigiZGF0YS10YXJnZXQiKTtmfHwoZj1lLmF0dHIoImhyZWYiKSxmPWYmJmYucmVwbGFjZSgvLiooPz0jW15cc10qJCkvLCIiKSk7dmFyIGc9YShmKTtiJiZiLnByZXZlbnREZWZhdWx0KCksZy5sZW5ndGh8fChnPWUuY2xvc2VzdCgiLmFsZXJ0IikpLGcudHJpZ2dlcihiPWEuRXZlbnQoImNsb3NlLmJzLmFsZXJ0IikpLGIuaXNEZWZhdWx0UHJldmVudGVkKCl8fChnLnJlbW92ZUNsYXNzKCJpbiIpLGEuc3VwcG9ydC50cmFuc2l0aW9uJiZnLmhhc0NsYXNzKCJmYWRlIik/Zy5vbmUoImJzVHJhbnNpdGlvbkVuZCIsYykuZW11bGF0ZVRyYW5zaXRpb25FbmQoZC5UUkFOU0lUSU9OX0RVUkFUSU9OKTpjKCkpfTt2YXIgZT1hLmZuLmFsZXJ0O2EuZm4uYWxlcnQ9YixhLmZuLmFsZXJ0LkNvbnN0cnVjdG9yPWQsYS5mbi5hbGVydC5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4uYWxlcnQ9ZSx0aGlzfSxhKGRvY3VtZW50KS5vbigiY2xpY2suYnMuYWxlcnQuZGF0YS1hcGkiLGMsZC5wcm90b3R5cGUuY2xvc2UpfShqUXVlcnkpLCtmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYihiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9YSh0aGlzKSxlPWQuZGF0YSgiYnMuYnV0dG9uIiksZj0ib2JqZWN0Ij09dHlwZW9mIGImJmI7ZXx8ZC5kYXRhKCJicy5idXR0b24iLGU9bmV3IGModGhpcyxmKSksInRvZ2dsZSI9PWI/ZS50b2dnbGUoKTpiJiZlLnNldFN0YXRlKGIpfSl9dmFyIGM9ZnVuY3Rpb24oYixkKXt0aGlzLiRlbGVtZW50PWEoYiksdGhpcy5vcHRpb25zPWEuZXh0ZW5kKHt9LGMuREVGQVVMVFMsZCksdGhpcy5pc0xvYWRpbmc9ITF9O2MuVkVSU0lPTj0iMy4zLjUiLGMuREVGQVVMVFM9e2xvYWRpbmdUZXh0OiJsb2FkaW5nLi4uIn0sYy5wcm90b3R5cGUuc2V0U3RhdGU9ZnVuY3Rpb24oYil7dmFyIGM9ImRpc2FibGVkIixkPXRoaXMuJGVsZW1lbnQsZT1kLmlzKCJpbnB1dCIpPyJ2YWwiOiJodG1sIixmPWQuZGF0YSgpO2IrPSJUZXh0IixudWxsPT1mLnJlc2V0VGV4dCYmZC5kYXRhKCJyZXNldFRleHQiLGRbZV0oKSksc2V0VGltZW91dChhLnByb3h5KGZ1bmN0aW9uKCl7ZFtlXShudWxsPT1mW2JdP3RoaXMub3B0aW9uc1tiXTpmW2JdKSwibG9hZGluZ1RleHQiPT1iPyh0aGlzLmlzTG9hZGluZz0hMCxkLmFkZENsYXNzKGMpLmF0dHIoYyxjKSk6dGhpcy5pc0xvYWRpbmcmJih0aGlzLmlzTG9hZGluZz0hMSxkLnJlbW92ZUNsYXNzKGMpLnJlbW92ZUF0dHIoYykpfSx0aGlzKSwwKX0sYy5wcm90b3R5cGUudG9nZ2xlPWZ1bmN0aW9uKCl7dmFyIGE9ITAsYj10aGlzLiRlbGVtZW50LmNsb3Nlc3QoJ1tkYXRhLXRvZ2dsZT0iYnV0dG9ucyJdJyk7aWYoYi5sZW5ndGgpe3ZhciBjPXRoaXMuJGVsZW1lbnQuZmluZCgiaW5wdXQiKTsicmFkaW8iPT1jLnByb3AoInR5cGUiKT8oYy5wcm9wKCJjaGVja2VkIikmJihhPSExKSxiLmZpbmQoIi5hY3RpdmUiKS5yZW1vdmVDbGFzcygiYWN0aXZlIiksdGhpcy4kZWxlbWVudC5hZGRDbGFzcygiYWN0aXZlIikpOiJjaGVja2JveCI9PWMucHJvcCgidHlwZSIpJiYoYy5wcm9wKCJjaGVja2VkIikhPT10aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJhY3RpdmUiKSYmKGE9ITEpLHRoaXMuJGVsZW1lbnQudG9nZ2xlQ2xhc3MoImFjdGl2ZSIpKSxjLnByb3AoImNoZWNrZWQiLHRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoImFjdGl2ZSIpKSxhJiZjLnRyaWdnZXIoImNoYW5nZSIpfWVsc2UgdGhpcy4kZWxlbWVudC5hdHRyKCJhcmlhLXByZXNzZWQiLCF0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJhY3RpdmUiKSksdGhpcy4kZWxlbWVudC50b2dnbGVDbGFzcygiYWN0aXZlIil9O3ZhciBkPWEuZm4uYnV0dG9uO2EuZm4uYnV0dG9uPWIsYS5mbi5idXR0b24uQ29uc3RydWN0b3I9YyxhLmZuLmJ1dHRvbi5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4uYnV0dG9uPWQsdGhpc30sYShkb2N1bWVudCkub24oImNsaWNrLmJzLmJ1dHRvbi5kYXRhLWFwaSIsJ1tkYXRhLXRvZ2dsZV49ImJ1dHRvbiJdJyxmdW5jdGlvbihjKXt2YXIgZD1hKGMudGFyZ2V0KTtkLmhhc0NsYXNzKCJidG4iKXx8KGQ9ZC5jbG9zZXN0KCIuYnRuIikpLGIuY2FsbChkLCJ0b2dnbGUiKSxhKGMudGFyZ2V0KS5pcygnaW5wdXRbdHlwZT0icmFkaW8iXScpfHxhKGMudGFyZ2V0KS5pcygnaW5wdXRbdHlwZT0iY2hlY2tib3giXScpfHxjLnByZXZlbnREZWZhdWx0KCl9KS5vbigiZm9jdXMuYnMuYnV0dG9uLmRhdGEtYXBpIGJsdXIuYnMuYnV0dG9uLmRhdGEtYXBpIiwnW2RhdGEtdG9nZ2xlXj0iYnV0dG9uIl0nLGZ1bmN0aW9uKGIpe2EoYi50YXJnZXQpLmNsb3Nlc3QoIi5idG4iKS50b2dnbGVDbGFzcygiZm9jdXMiLC9eZm9jdXMoaW4pPyQvLnRlc3QoYi50eXBlKSl9KX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGIoYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1kLmRhdGEoImJzLmNhcm91c2VsIiksZj1hLmV4dGVuZCh7fSxjLkRFRkFVTFRTLGQuZGF0YSgpLCJvYmplY3QiPT10eXBlb2YgYiYmYiksZz0ic3RyaW5nIj09dHlwZW9mIGI/YjpmLnNsaWRlO2V8fGQuZGF0YSgiYnMuY2Fyb3VzZWwiLGU9bmV3IGModGhpcyxmKSksIm51bWJlciI9PXR5cGVvZiBiP2UudG8oYik6Zz9lW2ddKCk6Zi5pbnRlcnZhbCYmZS5wYXVzZSgpLmN5Y2xlKCl9KX12YXIgYz1mdW5jdGlvbihiLGMpe3RoaXMuJGVsZW1lbnQ9YShiKSx0aGlzLiRpbmRpY2F0b3JzPXRoaXMuJGVsZW1lbnQuZmluZCgiLmNhcm91c2VsLWluZGljYXRvcnMiKSx0aGlzLm9wdGlvbnM9Yyx0aGlzLnBhdXNlZD1udWxsLHRoaXMuc2xpZGluZz1udWxsLHRoaXMuaW50ZXJ2YWw9bnVsbCx0aGlzLiRhY3RpdmU9bnVsbCx0aGlzLiRpdGVtcz1udWxsLHRoaXMub3B0aW9ucy5rZXlib2FyZCYmdGhpcy4kZWxlbWVudC5vbigia2V5ZG93bi5icy5jYXJvdXNlbCIsYS5wcm94eSh0aGlzLmtleWRvd24sdGhpcykpLCJob3ZlciI9PXRoaXMub3B0aW9ucy5wYXVzZSYmISgib250b3VjaHN0YXJ0ImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkmJnRoaXMuJGVsZW1lbnQub24oIm1vdXNlZW50ZXIuYnMuY2Fyb3VzZWwiLGEucHJveHkodGhpcy5wYXVzZSx0aGlzKSkub24oIm1vdXNlbGVhdmUuYnMuY2Fyb3VzZWwiLGEucHJveHkodGhpcy5jeWNsZSx0aGlzKSl9O2MuVkVSU0lPTj0iMy4zLjUiLGMuVFJBTlNJVElPTl9EVVJBVElPTj02MDAsYy5ERUZBVUxUUz17aW50ZXJ2YWw6NWUzLHBhdXNlOiJob3ZlciIsd3JhcDohMCxrZXlib2FyZDohMH0sYy5wcm90b3R5cGUua2V5ZG93bj1mdW5jdGlvbihhKXtpZighL2lucHV0fHRleHRhcmVhL2kudGVzdChhLnRhcmdldC50YWdOYW1lKSl7c3dpdGNoKGEud2hpY2gpe2Nhc2UgMzc6dGhpcy5wcmV2KCk7YnJlYWs7Y2FzZSAzOTp0aGlzLm5leHQoKTticmVhaztkZWZhdWx0OnJldHVybn1hLnByZXZlbnREZWZhdWx0KCl9fSxjLnByb3RvdHlwZS5jeWNsZT1mdW5jdGlvbihiKXtyZXR1cm4gYnx8KHRoaXMucGF1c2VkPSExKSx0aGlzLmludGVydmFsJiZjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWwpLHRoaXMub3B0aW9ucy5pbnRlcnZhbCYmIXRoaXMucGF1c2VkJiYodGhpcy5pbnRlcnZhbD1zZXRJbnRlcnZhbChhLnByb3h5KHRoaXMubmV4dCx0aGlzKSx0aGlzLm9wdGlvbnMuaW50ZXJ2YWwpKSx0aGlzfSxjLnByb3RvdHlwZS5nZXRJdGVtSW5kZXg9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuJGl0ZW1zPWEucGFyZW50KCkuY2hpbGRyZW4oIi5pdGVtIiksdGhpcy4kaXRlbXMuaW5kZXgoYXx8dGhpcy4kYWN0aXZlKX0sYy5wcm90b3R5cGUuZ2V0SXRlbUZvckRpcmVjdGlvbj1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuZ2V0SXRlbUluZGV4KGIpLGQ9InByZXYiPT1hJiYwPT09Y3x8Im5leHQiPT1hJiZjPT10aGlzLiRpdGVtcy5sZW5ndGgtMTtpZihkJiYhdGhpcy5vcHRpb25zLndyYXApcmV0dXJuIGI7dmFyIGU9InByZXYiPT1hPy0xOjEsZj0oYytlKSV0aGlzLiRpdGVtcy5sZW5ndGg7cmV0dXJuIHRoaXMuJGl0ZW1zLmVxKGYpfSxjLnByb3RvdHlwZS50bz1mdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9dGhpcy5nZXRJdGVtSW5kZXgodGhpcy4kYWN0aXZlPXRoaXMuJGVsZW1lbnQuZmluZCgiLml0ZW0uYWN0aXZlIikpO3JldHVybiBhPnRoaXMuJGl0ZW1zLmxlbmd0aC0xfHwwPmE/dm9pZCAwOnRoaXMuc2xpZGluZz90aGlzLiRlbGVtZW50Lm9uZSgic2xpZC5icy5jYXJvdXNlbCIsZnVuY3Rpb24oKXtiLnRvKGEpfSk6Yz09YT90aGlzLnBhdXNlKCkuY3ljbGUoKTp0aGlzLnNsaWRlKGE+Yz8ibmV4dCI6InByZXYiLHRoaXMuJGl0ZW1zLmVxKGEpKX0sYy5wcm90b3R5cGUucGF1c2U9ZnVuY3Rpb24oYil7cmV0dXJuIGJ8fCh0aGlzLnBhdXNlZD0hMCksdGhpcy4kZWxlbWVudC5maW5kKCIubmV4dCwgLnByZXYiKS5sZW5ndGgmJmEuc3VwcG9ydC50cmFuc2l0aW9uJiYodGhpcy4kZWxlbWVudC50cmlnZ2VyKGEuc3VwcG9ydC50cmFuc2l0aW9uLmVuZCksdGhpcy5jeWNsZSghMCkpLHRoaXMuaW50ZXJ2YWw9Y2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsKSx0aGlzfSxjLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2xpZGluZz92b2lkIDA6dGhpcy5zbGlkZSgibmV4dCIpfSxjLnByb3RvdHlwZS5wcmV2PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2xpZGluZz92b2lkIDA6dGhpcy5zbGlkZSgicHJldiIpfSxjLnByb3RvdHlwZS5zbGlkZT1mdW5jdGlvbihiLGQpe3ZhciBlPXRoaXMuJGVsZW1lbnQuZmluZCgiLml0ZW0uYWN0aXZlIiksZj1kfHx0aGlzLmdldEl0ZW1Gb3JEaXJlY3Rpb24oYixlKSxnPXRoaXMuaW50ZXJ2YWwsaD0ibmV4dCI9PWI/ImxlZnQiOiJyaWdodCIsaT10aGlzO2lmKGYuaGFzQ2xhc3MoImFjdGl2ZSIpKXJldHVybiB0aGlzLnNsaWRpbmc9ITE7dmFyIGo9ZlswXSxrPWEuRXZlbnQoInNsaWRlLmJzLmNhcm91c2VsIix7cmVsYXRlZFRhcmdldDpqLGRpcmVjdGlvbjpofSk7aWYodGhpcy4kZWxlbWVudC50cmlnZ2VyKGspLCFrLmlzRGVmYXVsdFByZXZlbnRlZCgpKXtpZih0aGlzLnNsaWRpbmc9ITAsZyYmdGhpcy5wYXVzZSgpLHRoaXMuJGluZGljYXRvcnMubGVuZ3RoKXt0aGlzLiRpbmRpY2F0b3JzLmZpbmQoIi5hY3RpdmUiKS5yZW1vdmVDbGFzcygiYWN0aXZlIik7dmFyIGw9YSh0aGlzLiRpbmRpY2F0b3JzLmNoaWxkcmVuKClbdGhpcy5nZXRJdGVtSW5kZXgoZildKTtsJiZsLmFkZENsYXNzKCJhY3RpdmUiKX12YXIgbT1hLkV2ZW50KCJzbGlkLmJzLmNhcm91c2VsIix7cmVsYXRlZFRhcmdldDpqLGRpcmVjdGlvbjpofSk7cmV0dXJuIGEuc3VwcG9ydC50cmFuc2l0aW9uJiZ0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJzbGlkZSIpPyhmLmFkZENsYXNzKGIpLGZbMF0ub2Zmc2V0V2lkdGgsZS5hZGRDbGFzcyhoKSxmLmFkZENsYXNzKGgpLGUub25lKCJic1RyYW5zaXRpb25FbmQiLGZ1bmN0aW9uKCl7Zi5yZW1vdmVDbGFzcyhbYixoXS5qb2luKCIgIikpLmFkZENsYXNzKCJhY3RpdmUiKSxlLnJlbW92ZUNsYXNzKFsiYWN0aXZlIixoXS5qb2luKCIgIikpLGkuc2xpZGluZz0hMSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aS4kZWxlbWVudC50cmlnZ2VyKG0pfSwwKX0pLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuVFJBTlNJVElPTl9EVVJBVElPTikpOihlLnJlbW92ZUNsYXNzKCJhY3RpdmUiKSxmLmFkZENsYXNzKCJhY3RpdmUiKSx0aGlzLnNsaWRpbmc9ITEsdGhpcy4kZWxlbWVudC50cmlnZ2VyKG0pKSxnJiZ0aGlzLmN5Y2xlKCksdGhpc319O3ZhciBkPWEuZm4uY2Fyb3VzZWw7YS5mbi5jYXJvdXNlbD1iLGEuZm4uY2Fyb3VzZWwuQ29uc3RydWN0b3I9YyxhLmZuLmNhcm91c2VsLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi5jYXJvdXNlbD1kLHRoaXN9O3ZhciBlPWZ1bmN0aW9uKGMpe3ZhciBkLGU9YSh0aGlzKSxmPWEoZS5hdHRyKCJkYXRhLXRhcmdldCIpfHwoZD1lLmF0dHIoImhyZWYiKSkmJmQucmVwbGFjZSgvLiooPz0jW15cc10rJCkvLCIiKSk7aWYoZi5oYXNDbGFzcygiY2Fyb3VzZWwiKSl7dmFyIGc9YS5leHRlbmQoe30sZi5kYXRhKCksZS5kYXRhKCkpLGg9ZS5hdHRyKCJkYXRhLXNsaWRlLXRvIik7aCYmKGcuaW50ZXJ2YWw9ITEpLGIuY2FsbChmLGcpLGgmJmYuZGF0YSgiYnMuY2Fyb3VzZWwiKS50byhoKSxjLnByZXZlbnREZWZhdWx0KCl9fTthKGRvY3VtZW50KS5vbigiY2xpY2suYnMuY2Fyb3VzZWwuZGF0YS1hcGkiLCJbZGF0YS1zbGlkZV0iLGUpLm9uKCJjbGljay5icy5jYXJvdXNlbC5kYXRhLWFwaSIsIltkYXRhLXNsaWRlLXRvXSIsZSksYSh3aW5kb3cpLm9uKCJsb2FkIixmdW5jdGlvbigpe2EoJ1tkYXRhLXJpZGU9ImNhcm91c2VsIl0nKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGM9YSh0aGlzKTtiLmNhbGwoYyxjLmRhdGEoKSl9KX0pfShqUXVlcnkpLCtmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYihiKXt2YXIgYyxkPWIuYXR0cigiZGF0YS10YXJnZXQiKXx8KGM9Yi5hdHRyKCJocmVmIikpJiZjLnJlcGxhY2UoLy4qKD89I1teXHNdKyQpLywiIik7cmV0dXJuIGEoZCl9ZnVuY3Rpb24gYyhiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGM9YSh0aGlzKSxlPWMuZGF0YSgiYnMuY29sbGFwc2UiKSxmPWEuZXh0ZW5kKHt9LGQuREVGQVVMVFMsYy5kYXRhKCksIm9iamVjdCI9PXR5cGVvZiBiJiZiKTshZSYmZi50b2dnbGUmJi9zaG93fGhpZGUvLnRlc3QoYikmJihmLnRvZ2dsZT0hMSksZXx8Yy5kYXRhKCJicy5jb2xsYXBzZSIsZT1uZXcgZCh0aGlzLGYpKSwic3RyaW5nIj09dHlwZW9mIGImJmVbYl0oKX0pfXZhciBkPWZ1bmN0aW9uKGIsYyl7dGhpcy4kZWxlbWVudD1hKGIpLHRoaXMub3B0aW9ucz1hLmV4dGVuZCh7fSxkLkRFRkFVTFRTLGMpLHRoaXMuJHRyaWdnZXI9YSgnW2RhdGEtdG9nZ2xlPSJjb2xsYXBzZSJdW2hyZWY9IiMnK2IuaWQrJyJdLFtkYXRhLXRvZ2dsZT0iY29sbGFwc2UiXVtkYXRhLXRhcmdldD0iIycrYi5pZCsnIl0nKSx0aGlzLnRyYW5zaXRpb25pbmc9bnVsbCx0aGlzLm9wdGlvbnMucGFyZW50P3RoaXMuJHBhcmVudD10aGlzLmdldFBhcmVudCgpOnRoaXMuYWRkQXJpYUFuZENvbGxhcHNlZENsYXNzKHRoaXMuJGVsZW1lbnQsdGhpcy4kdHJpZ2dlciksdGhpcy5vcHRpb25zLnRvZ2dsZSYmdGhpcy50b2dnbGUoKX07ZC5WRVJTSU9OPSIzLjMuNSIsZC5UUkFOU0lUSU9OX0RVUkFUSU9OPTM1MCxkLkRFRkFVTFRTPXt0b2dnbGU6ITB9LGQucHJvdG90eXBlLmRpbWVuc2lvbj1mdW5jdGlvbigpe3ZhciBhPXRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoIndpZHRoIik7cmV0dXJuIGE/IndpZHRoIjoiaGVpZ2h0In0sZC5wcm90b3R5cGUuc2hvdz1mdW5jdGlvbigpe2lmKCF0aGlzLnRyYW5zaXRpb25pbmcmJiF0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJpbiIpKXt2YXIgYixlPXRoaXMuJHBhcmVudCYmdGhpcy4kcGFyZW50LmNoaWxkcmVuKCIucGFuZWwiKS5jaGlsZHJlbigiLmluLCAuY29sbGFwc2luZyIpO2lmKCEoZSYmZS5sZW5ndGgmJihiPWUuZGF0YSgiYnMuY29sbGFwc2UiKSxiJiZiLnRyYW5zaXRpb25pbmcpKSl7dmFyIGY9YS5FdmVudCgic2hvdy5icy5jb2xsYXBzZSIpO2lmKHRoaXMuJGVsZW1lbnQudHJpZ2dlcihmKSwhZi5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7ZSYmZS5sZW5ndGgmJihjLmNhbGwoZSwiaGlkZSIpLGJ8fGUuZGF0YSgiYnMuY29sbGFwc2UiLG51bGwpKTt2YXIgZz10aGlzLmRpbWVuc2lvbigpO3RoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoImNvbGxhcHNlIikuYWRkQ2xhc3MoImNvbGxhcHNpbmciKVtnXSgwKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwhMCksdGhpcy4kdHJpZ2dlci5yZW1vdmVDbGFzcygiY29sbGFwc2VkIikuYXR0cigiYXJpYS1leHBhbmRlZCIsITApLHRoaXMudHJhbnNpdGlvbmluZz0xO3ZhciBoPWZ1bmN0aW9uKCl7dGhpcy4kZWxlbWVudC5yZW1vdmVDbGFzcygiY29sbGFwc2luZyIpLmFkZENsYXNzKCJjb2xsYXBzZSBpbiIpW2ddKCIiKSx0aGlzLnRyYW5zaXRpb25pbmc9MCx0aGlzLiRlbGVtZW50LnRyaWdnZXIoInNob3duLmJzLmNvbGxhcHNlIil9O2lmKCFhLnN1cHBvcnQudHJhbnNpdGlvbilyZXR1cm4gaC5jYWxsKHRoaXMpO3ZhciBpPWEuY2FtZWxDYXNlKFsic2Nyb2xsIixnXS5qb2luKCItIikpO3RoaXMuJGVsZW1lbnQub25lKCJic1RyYW5zaXRpb25FbmQiLGEucHJveHkoaCx0aGlzKSkuZW11bGF0ZVRyYW5zaXRpb25FbmQoZC5UUkFOU0lUSU9OX0RVUkFUSU9OKVtnXSh0aGlzLiRlbGVtZW50WzBdW2ldKX19fX0sZC5wcm90b3R5cGUuaGlkZT1mdW5jdGlvbigpe2lmKCF0aGlzLnRyYW5zaXRpb25pbmcmJnRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoImluIikpe3ZhciBiPWEuRXZlbnQoImhpZGUuYnMuY29sbGFwc2UiKTtpZih0aGlzLiRlbGVtZW50LnRyaWdnZXIoYiksIWIuaXNEZWZhdWx0UHJldmVudGVkKCkpe3ZhciBjPXRoaXMuZGltZW5zaW9uKCk7dGhpcy4kZWxlbWVudFtjXSh0aGlzLiRlbGVtZW50W2NdKCkpWzBdLm9mZnNldEhlaWdodCx0aGlzLiRlbGVtZW50LmFkZENsYXNzKCJjb2xsYXBzaW5nIikucmVtb3ZlQ2xhc3MoImNvbGxhcHNlIGluIikuYXR0cigiYXJpYS1leHBhbmRlZCIsITEpLHRoaXMuJHRyaWdnZXIuYWRkQ2xhc3MoImNvbGxhcHNlZCIpLmF0dHIoImFyaWEtZXhwYW5kZWQiLCExKSx0aGlzLnRyYW5zaXRpb25pbmc9MTt2YXIgZT1mdW5jdGlvbigpe3RoaXMudHJhbnNpdGlvbmluZz0wLHRoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoImNvbGxhcHNpbmciKS5hZGRDbGFzcygiY29sbGFwc2UiKS50cmlnZ2VyKCJoaWRkZW4uYnMuY29sbGFwc2UiKX07cmV0dXJuIGEuc3VwcG9ydC50cmFuc2l0aW9uP3ZvaWQgdGhpcy4kZWxlbWVudFtjXSgwKS5vbmUoImJzVHJhbnNpdGlvbkVuZCIsYS5wcm94eShlLHRoaXMpKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChkLlRSQU5TSVRJT05fRFVSQVRJT04pOmUuY2FsbCh0aGlzKX19fSxkLnByb3RvdHlwZS50b2dnbGU9ZnVuY3Rpb24oKXt0aGlzW3RoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoImluIik/ImhpZGUiOiJzaG93Il0oKX0sZC5wcm90b3R5cGUuZ2V0UGFyZW50PWZ1bmN0aW9uKCl7cmV0dXJuIGEodGhpcy5vcHRpb25zLnBhcmVudCkuZmluZCgnW2RhdGEtdG9nZ2xlPSJjb2xsYXBzZSJdW2RhdGEtcGFyZW50PSInK3RoaXMub3B0aW9ucy5wYXJlbnQrJyJdJykuZWFjaChhLnByb3h5KGZ1bmN0aW9uKGMsZCl7dmFyIGU9YShkKTt0aGlzLmFkZEFyaWFBbmRDb2xsYXBzZWRDbGFzcyhiKGUpLGUpfSx0aGlzKSkuZW5kKCl9LGQucHJvdG90eXBlLmFkZEFyaWFBbmRDb2xsYXBzZWRDbGFzcz1mdW5jdGlvbihhLGIpe3ZhciBjPWEuaGFzQ2xhc3MoImluIik7YS5hdHRyKCJhcmlhLWV4cGFuZGVkIixjKSxiLnRvZ2dsZUNsYXNzKCJjb2xsYXBzZWQiLCFjKS5hdHRyKCJhcmlhLWV4cGFuZGVkIixjKX07dmFyIGU9YS5mbi5jb2xsYXBzZTthLmZuLmNvbGxhcHNlPWMsYS5mbi5jb2xsYXBzZS5Db25zdHJ1Y3Rvcj1kLGEuZm4uY29sbGFwc2Uubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLmNvbGxhcHNlPWUsdGhpc30sYShkb2N1bWVudCkub24oImNsaWNrLmJzLmNvbGxhcHNlLmRhdGEtYXBpIiwnW2RhdGEtdG9nZ2xlPSJjb2xsYXBzZSJdJyxmdW5jdGlvbihkKXt2YXIgZT1hKHRoaXMpO2UuYXR0cigiZGF0YS10YXJnZXQiKXx8ZC5wcmV2ZW50RGVmYXVsdCgpO3ZhciBmPWIoZSksZz1mLmRhdGEoImJzLmNvbGxhcHNlIiksaD1nPyJ0b2dnbGUiOmUuZGF0YSgpO2MuY2FsbChmLGgpfSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3ZhciBjPWIuYXR0cigiZGF0YS10YXJnZXQiKTtjfHwoYz1iLmF0dHIoImhyZWYiKSxjPWMmJi8jW0EtWmEtel0vLnRlc3QoYykmJmMucmVwbGFjZSgvLiooPz0jW15cc10qJCkvLCIiKSk7dmFyIGQ9YyYmYShjKTtyZXR1cm4gZCYmZC5sZW5ndGg/ZDpiLnBhcmVudCgpfWZ1bmN0aW9uIGMoYyl7YyYmMz09PWMud2hpY2h8fChhKGUpLnJlbW92ZSgpLGEoZikuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1iKGQpLGY9e3JlbGF0ZWRUYXJnZXQ6dGhpc307ZS5oYXNDbGFzcygib3BlbiIpJiYoYyYmImNsaWNrIj09Yy50eXBlJiYvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KGMudGFyZ2V0LnRhZ05hbWUpJiZhLmNvbnRhaW5zKGVbMF0sYy50YXJnZXQpfHwoZS50cmlnZ2VyKGM9YS5FdmVudCgiaGlkZS5icy5kcm9wZG93biIsZikpLGMuaXNEZWZhdWx0UHJldmVudGVkKCl8fChkLmF0dHIoImFyaWEtZXhwYW5kZWQiLCJmYWxzZSIpLGUucmVtb3ZlQ2xhc3MoIm9wZW4iKS50cmlnZ2VyKCJoaWRkZW4uYnMuZHJvcGRvd24iLGYpKSkpfSkpfWZ1bmN0aW9uIGQoYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBjPWEodGhpcyksZD1jLmRhdGEoImJzLmRyb3Bkb3duIik7ZHx8Yy5kYXRhKCJicy5kcm9wZG93biIsZD1uZXcgZyh0aGlzKSksInN0cmluZyI9PXR5cGVvZiBiJiZkW2JdLmNhbGwoYyl9KX12YXIgZT0iLmRyb3Bkb3duLWJhY2tkcm9wIixmPSdbZGF0YS10b2dnbGU9ImRyb3Bkb3duIl0nLGc9ZnVuY3Rpb24oYil7YShiKS5vbigiY2xpY2suYnMuZHJvcGRvd24iLHRoaXMudG9nZ2xlKX07Zy5WRVJTSU9OPSIzLjMuNSIsZy5wcm90b3R5cGUudG9nZ2xlPWZ1bmN0aW9uKGQpe3ZhciBlPWEodGhpcyk7aWYoIWUuaXMoIi5kaXNhYmxlZCwgOmRpc2FibGVkIikpe3ZhciBmPWIoZSksZz1mLmhhc0NsYXNzKCJvcGVuIik7aWYoYygpLCFnKXsib250b3VjaHN0YXJ0ImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmIWYuY2xvc2VzdCgiLm5hdmJhci1uYXYiKS5sZW5ndGgmJmEoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLmFkZENsYXNzKCJkcm9wZG93bi1iYWNrZHJvcCIpLmluc2VydEFmdGVyKGEodGhpcykpLm9uKCJjbGljayIsYyk7dmFyIGg9e3JlbGF0ZWRUYXJnZXQ6dGhpc307aWYoZi50cmlnZ2VyKGQ9YS5FdmVudCgic2hvdy5icy5kcm9wZG93biIsaCkpLGQuaXNEZWZhdWx0UHJldmVudGVkKCkpcmV0dXJuO2UudHJpZ2dlcigiZm9jdXMiKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwidHJ1ZSIpLGYudG9nZ2xlQ2xhc3MoIm9wZW4iKS50cmlnZ2VyKCJzaG93bi5icy5kcm9wZG93biIsaCl9cmV0dXJuITF9fSxnLnByb3RvdHlwZS5rZXlkb3duPWZ1bmN0aW9uKGMpe2lmKC8oMzh8NDB8Mjd8MzIpLy50ZXN0KGMud2hpY2gpJiYhL2lucHV0fHRleHRhcmVhL2kudGVzdChjLnRhcmdldC50YWdOYW1lKSl7dmFyIGQ9YSh0aGlzKTtpZihjLnByZXZlbnREZWZhdWx0KCksYy5zdG9wUHJvcGFnYXRpb24oKSwhZC5pcygiLmRpc2FibGVkLCA6ZGlzYWJsZWQiKSl7dmFyIGU9YihkKSxnPWUuaGFzQ2xhc3MoIm9wZW4iKTtpZighZyYmMjchPWMud2hpY2h8fGcmJjI3PT1jLndoaWNoKXJldHVybiAyNz09Yy53aGljaCYmZS5maW5kKGYpLnRyaWdnZXIoImZvY3VzIiksZC50cmlnZ2VyKCJjbGljayIpO3ZhciBoPSIgbGk6bm90KC5kaXNhYmxlZCk6dmlzaWJsZSBhIixpPWUuZmluZCgiLmRyb3Bkb3duLW1lbnUiK2gpO2lmKGkubGVuZ3RoKXt2YXIgaj1pLmluZGV4KGMudGFyZ2V0KTszOD09Yy53aGljaCYmaj4wJiZqLS0sNDA9PWMud2hpY2gmJmo8aS5sZW5ndGgtMSYmaisrLH5qfHwoaj0wKSxpLmVxKGopLnRyaWdnZXIoImZvY3VzIil9fX19O3ZhciBoPWEuZm4uZHJvcGRvd247YS5mbi5kcm9wZG93bj1kLGEuZm4uZHJvcGRvd24uQ29uc3RydWN0b3I9ZyxhLmZuLmRyb3Bkb3duLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi5kcm9wZG93bj1oLHRoaXN9LGEoZG9jdW1lbnQpLm9uKCJjbGljay5icy5kcm9wZG93bi5kYXRhLWFwaSIsYykub24oImNsaWNrLmJzLmRyb3Bkb3duLmRhdGEtYXBpIiwiLmRyb3Bkb3duIGZvcm0iLGZ1bmN0aW9uKGEpe2Euc3RvcFByb3BhZ2F0aW9uKCl9KS5vbigiY2xpY2suYnMuZHJvcGRvd24uZGF0YS1hcGkiLGYsZy5wcm90b3R5cGUudG9nZ2xlKS5vbigia2V5ZG93bi5icy5kcm9wZG93bi5kYXRhLWFwaSIsZixnLnByb3RvdHlwZS5rZXlkb3duKS5vbigia2V5ZG93bi5icy5kcm9wZG93bi5kYXRhLWFwaSIsIi5kcm9wZG93bi1tZW51IixnLnByb3RvdHlwZS5rZXlkb3duKX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGIoYixkKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9YSh0aGlzKSxmPWUuZGF0YSgiYnMubW9kYWwiKSxnPWEuZXh0ZW5kKHt9LGMuREVGQVVMVFMsZS5kYXRhKCksIm9iamVjdCI9PXR5cGVvZiBiJiZiKTtmfHxlLmRhdGEoImJzLm1vZGFsIixmPW5ldyBjKHRoaXMsZykpLCJzdHJpbmciPT10eXBlb2YgYj9mW2JdKGQpOmcuc2hvdyYmZi5zaG93KGQpfSl9dmFyIGM9ZnVuY3Rpb24oYixjKXt0aGlzLm9wdGlvbnM9Yyx0aGlzLiRib2R5PWEoZG9jdW1lbnQuYm9keSksdGhpcy4kZWxlbWVudD1hKGIpLHRoaXMuJGRpYWxvZz10aGlzLiRlbGVtZW50LmZpbmQoIi5tb2RhbC1kaWFsb2ciKSx0aGlzLiRiYWNrZHJvcD1udWxsLHRoaXMuaXNTaG93bj1udWxsLHRoaXMub3JpZ2luYWxCb2R5UGFkPW51bGwsdGhpcy5zY3JvbGxiYXJXaWR0aD0wLHRoaXMuaWdub3JlQmFja2Ryb3BDbGljaz0hMSx0aGlzLm9wdGlvbnMucmVtb3RlJiZ0aGlzLiRlbGVtZW50LmZpbmQoIi5tb2RhbC1jb250ZW50IikubG9hZCh0aGlzLm9wdGlvbnMucmVtb3RlLGEucHJveHkoZnVuY3Rpb24oKXt0aGlzLiRlbGVtZW50LnRyaWdnZXIoImxvYWRlZC5icy5tb2RhbCIpfSx0aGlzKSl9O2MuVkVSU0lPTj0iMy4zLjUiLGMuVFJBTlNJVElPTl9EVVJBVElPTj0zMDAsYy5CQUNLRFJPUF9UUkFOU0lUSU9OX0RVUkFUSU9OPTE1MCxjLkRFRkFVTFRTPXtiYWNrZHJvcDohMCxrZXlib2FyZDohMCxzaG93OiEwfSxjLnByb3RvdHlwZS50b2dnbGU9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuaXNTaG93bj90aGlzLmhpZGUoKTp0aGlzLnNob3coYSl9LGMucHJvdG90eXBlLnNob3c9ZnVuY3Rpb24oYil7dmFyIGQ9dGhpcyxlPWEuRXZlbnQoInNob3cuYnMubW9kYWwiLHtyZWxhdGVkVGFyZ2V0OmJ9KTt0aGlzLiRlbGVtZW50LnRyaWdnZXIoZSksdGhpcy5pc1Nob3dufHxlLmlzRGVmYXVsdFByZXZlbnRlZCgpfHwodGhpcy5pc1Nob3duPSEwLHRoaXMuY2hlY2tTY3JvbGxiYXIoKSx0aGlzLnNldFNjcm9sbGJhcigpLHRoaXMuJGJvZHkuYWRkQ2xhc3MoIm1vZGFsLW9wZW4iKSx0aGlzLmVzY2FwZSgpLHRoaXMucmVzaXplKCksdGhpcy4kZWxlbWVudC5vbigiY2xpY2suZGlzbWlzcy5icy5tb2RhbCIsJ1tkYXRhLWRpc21pc3M9Im1vZGFsIl0nLGEucHJveHkodGhpcy5oaWRlLHRoaXMpKSx0aGlzLiRkaWFsb2cub24oIm1vdXNlZG93bi5kaXNtaXNzLmJzLm1vZGFsIixmdW5jdGlvbigpe2QuJGVsZW1lbnQub25lKCJtb3VzZXVwLmRpc21pc3MuYnMubW9kYWwiLGZ1bmN0aW9uKGIpe2EoYi50YXJnZXQpLmlzKGQuJGVsZW1lbnQpJiYoZC5pZ25vcmVCYWNrZHJvcENsaWNrPSEwKX0pfSksdGhpcy5iYWNrZHJvcChmdW5jdGlvbigpe3ZhciBlPWEuc3VwcG9ydC50cmFuc2l0aW9uJiZkLiRlbGVtZW50Lmhhc0NsYXNzKCJmYWRlIik7ZC4kZWxlbWVudC5wYXJlbnQoKS5sZW5ndGh8fGQuJGVsZW1lbnQuYXBwZW5kVG8oZC4kYm9keSksZC4kZWxlbWVudC5zaG93KCkuc2Nyb2xsVG9wKDApLGQuYWRqdXN0RGlhbG9nKCksZSYmZC4kZWxlbWVudFswXS5vZmZzZXRXaWR0aCxkLiRlbGVtZW50LmFkZENsYXNzKCJpbiIpLGQuZW5mb3JjZUZvY3VzKCk7dmFyIGY9YS5FdmVudCgic2hvd24uYnMubW9kYWwiLHtyZWxhdGVkVGFyZ2V0OmJ9KTtlP2QuJGRpYWxvZy5vbmUoImJzVHJhbnNpdGlvbkVuZCIsZnVuY3Rpb24oKXtkLiRlbGVtZW50LnRyaWdnZXIoImZvY3VzIikudHJpZ2dlcihmKX0pLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuVFJBTlNJVElPTl9EVVJBVElPTik6ZC4kZWxlbWVudC50cmlnZ2VyKCJmb2N1cyIpLnRyaWdnZXIoZil9KSl9LGMucHJvdG90eXBlLmhpZGU9ZnVuY3Rpb24oYil7YiYmYi5wcmV2ZW50RGVmYXVsdCgpLGI9YS5FdmVudCgiaGlkZS5icy5tb2RhbCIpLHRoaXMuJGVsZW1lbnQudHJpZ2dlcihiKSx0aGlzLmlzU2hvd24mJiFiLmlzRGVmYXVsdFByZXZlbnRlZCgpJiYodGhpcy5pc1Nob3duPSExLHRoaXMuZXNjYXBlKCksdGhpcy5yZXNpemUoKSxhKGRvY3VtZW50KS5vZmYoImZvY3VzaW4uYnMubW9kYWwiKSx0aGlzLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJpbiIpLm9mZigiY2xpY2suZGlzbWlzcy5icy5tb2RhbCIpLm9mZigibW91c2V1cC5kaXNtaXNzLmJzLm1vZGFsIiksdGhpcy4kZGlhbG9nLm9mZigibW91c2Vkb3duLmRpc21pc3MuYnMubW9kYWwiKSxhLnN1cHBvcnQudHJhbnNpdGlvbiYmdGhpcy4kZWxlbWVudC5oYXNDbGFzcygiZmFkZSIpP3RoaXMuJGVsZW1lbnQub25lKCJic1RyYW5zaXRpb25FbmQiLGEucHJveHkodGhpcy5oaWRlTW9kYWwsdGhpcykpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuVFJBTlNJVElPTl9EVVJBVElPTik6dGhpcy5oaWRlTW9kYWwoKSl9LGMucHJvdG90eXBlLmVuZm9yY2VGb2N1cz1mdW5jdGlvbigpe2EoZG9jdW1lbnQpLm9mZigiZm9jdXNpbi5icy5tb2RhbCIpLm9uKCJmb2N1c2luLmJzLm1vZGFsIixhLnByb3h5KGZ1bmN0aW9uKGEpe3RoaXMuJGVsZW1lbnRbMF09PT1hLnRhcmdldHx8dGhpcy4kZWxlbWVudC5oYXMoYS50YXJnZXQpLmxlbmd0aHx8dGhpcy4kZWxlbWVudC50cmlnZ2VyKCJmb2N1cyIpfSx0aGlzKSl9LGMucHJvdG90eXBlLmVzY2FwZT1mdW5jdGlvbigpe3RoaXMuaXNTaG93biYmdGhpcy5vcHRpb25zLmtleWJvYXJkP3RoaXMuJGVsZW1lbnQub24oImtleWRvd24uZGlzbWlzcy5icy5tb2RhbCIsYS5wcm94eShmdW5jdGlvbihhKXsyNz09YS53aGljaCYmdGhpcy5oaWRlKCl9LHRoaXMpKTp0aGlzLmlzU2hvd258fHRoaXMuJGVsZW1lbnQub2ZmKCJrZXlkb3duLmRpc21pc3MuYnMubW9kYWwiKX0sYy5wcm90b3R5cGUucmVzaXplPWZ1bmN0aW9uKCl7dGhpcy5pc1Nob3duP2Eod2luZG93KS5vbigicmVzaXplLmJzLm1vZGFsIixhLnByb3h5KHRoaXMuaGFuZGxlVXBkYXRlLHRoaXMpKTphKHdpbmRvdykub2ZmKCJyZXNpemUuYnMubW9kYWwiKX0sYy5wcm90b3R5cGUuaGlkZU1vZGFsPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLiRlbGVtZW50LmhpZGUoKSx0aGlzLmJhY2tkcm9wKGZ1bmN0aW9uKCl7YS4kYm9keS5yZW1vdmVDbGFzcygibW9kYWwtb3BlbiIpLGEucmVzZXRBZGp1c3RtZW50cygpLGEucmVzZXRTY3JvbGxiYXIoKSxhLiRlbGVtZW50LnRyaWdnZXIoImhpZGRlbi5icy5tb2RhbCIpfSl9LGMucHJvdG90eXBlLnJlbW92ZUJhY2tkcm9wPWZ1bmN0aW9uKCl7dGhpcy4kYmFja2Ryb3AmJnRoaXMuJGJhY2tkcm9wLnJlbW92ZSgpLHRoaXMuJGJhY2tkcm9wPW51bGx9LGMucHJvdG90eXBlLmJhY2tkcm9wPWZ1bmN0aW9uKGIpe3ZhciBkPXRoaXMsZT10aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJmYWRlIik/ImZhZGUiOiIiO2lmKHRoaXMuaXNTaG93biYmdGhpcy5vcHRpb25zLmJhY2tkcm9wKXt2YXIgZj1hLnN1cHBvcnQudHJhbnNpdGlvbiYmZTtpZih0aGlzLiRiYWNrZHJvcD1hKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5hZGRDbGFzcygibW9kYWwtYmFja2Ryb3AgIitlKS5hcHBlbmRUbyh0aGlzLiRib2R5KSx0aGlzLiRlbGVtZW50Lm9uKCJjbGljay5kaXNtaXNzLmJzLm1vZGFsIixhLnByb3h5KGZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmlnbm9yZUJhY2tkcm9wQ2xpY2s/dm9pZCh0aGlzLmlnbm9yZUJhY2tkcm9wQ2xpY2s9ITEpOnZvaWQoYS50YXJnZXQ9PT1hLmN1cnJlbnRUYXJnZXQmJigic3RhdGljIj09dGhpcy5vcHRpb25zLmJhY2tkcm9wP3RoaXMuJGVsZW1lbnRbMF0uZm9jdXMoKTp0aGlzLmhpZGUoKSkpfSx0aGlzKSksZiYmdGhpcy4kYmFja2Ryb3BbMF0ub2Zmc2V0V2lkdGgsdGhpcy4kYmFja2Ryb3AuYWRkQ2xhc3MoImluIiksIWIpcmV0dXJuO2Y/dGhpcy4kYmFja2Ryb3Aub25lKCJic1RyYW5zaXRpb25FbmQiLGIpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuQkFDS0RST1BfVFJBTlNJVElPTl9EVVJBVElPTik6YigpfWVsc2UgaWYoIXRoaXMuaXNTaG93biYmdGhpcy4kYmFja2Ryb3Ape3RoaXMuJGJhY2tkcm9wLnJlbW92ZUNsYXNzKCJpbiIpO3ZhciBnPWZ1bmN0aW9uKCl7ZC5yZW1vdmVCYWNrZHJvcCgpLGImJmIoKX07YS5zdXBwb3J0LnRyYW5zaXRpb24mJnRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoImZhZGUiKT90aGlzLiRiYWNrZHJvcC5vbmUoImJzVHJhbnNpdGlvbkVuZCIsZykuZW11bGF0ZVRyYW5zaXRpb25FbmQoYy5CQUNLRFJPUF9UUkFOU0lUSU9OX0RVUkFUSU9OKTpnKCl9ZWxzZSBiJiZiKCl9LGMucHJvdG90eXBlLmhhbmRsZVVwZGF0ZT1mdW5jdGlvbigpe3RoaXMuYWRqdXN0RGlhbG9nKCl9LGMucHJvdG90eXBlLmFkanVzdERpYWxvZz1mdW5jdGlvbigpe3ZhciBhPXRoaXMuJGVsZW1lbnRbMF0uc2Nyb2xsSGVpZ2h0PmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7dGhpcy4kZWxlbWVudC5jc3Moe3BhZGRpbmdMZWZ0OiF0aGlzLmJvZHlJc092ZXJmbG93aW5nJiZhP3RoaXMuc2Nyb2xsYmFyV2lkdGg6IiIscGFkZGluZ1JpZ2h0OnRoaXMuYm9keUlzT3ZlcmZsb3dpbmcmJiFhP3RoaXMuc2Nyb2xsYmFyV2lkdGg6IiJ9KX0sYy5wcm90b3R5cGUucmVzZXRBZGp1c3RtZW50cz1mdW5jdGlvbigpe3RoaXMuJGVsZW1lbnQuY3NzKHtwYWRkaW5nTGVmdDoiIixwYWRkaW5nUmlnaHQ6IiJ9KX0sYy5wcm90b3R5cGUuY2hlY2tTY3JvbGxiYXI9ZnVuY3Rpb24oKXt2YXIgYT13aW5kb3cuaW5uZXJXaWR0aDtpZighYSl7dmFyIGI9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2E9Yi5yaWdodC1NYXRoLmFicyhiLmxlZnQpfXRoaXMuYm9keUlzT3ZlcmZsb3dpbmc9ZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aDxhLHRoaXMuc2Nyb2xsYmFyV2lkdGg9dGhpcy5tZWFzdXJlU2Nyb2xsYmFyKCl9LGMucHJvdG90eXBlLnNldFNjcm9sbGJhcj1mdW5jdGlvbigpe3ZhciBhPXBhcnNlSW50KHRoaXMuJGJvZHkuY3NzKCJwYWRkaW5nLXJpZ2h0Iil8fDAsMTApO3RoaXMub3JpZ2luYWxCb2R5UGFkPWRvY3VtZW50LmJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0fHwiIix0aGlzLmJvZHlJc092ZXJmbG93aW5nJiZ0aGlzLiRib2R5LmNzcygicGFkZGluZy1yaWdodCIsYSt0aGlzLnNjcm9sbGJhcldpZHRoKX0sYy5wcm90b3R5cGUucmVzZXRTY3JvbGxiYXI9ZnVuY3Rpb24oKXt0aGlzLiRib2R5LmNzcygicGFkZGluZy1yaWdodCIsdGhpcy5vcmlnaW5hbEJvZHlQYWQpfSxjLnByb3RvdHlwZS5tZWFzdXJlU2Nyb2xsYmFyPWZ1bmN0aW9uKCl7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7YS5jbGFzc05hbWU9Im1vZGFsLXNjcm9sbGJhci1tZWFzdXJlIix0aGlzLiRib2R5LmFwcGVuZChhKTt2YXIgYj1hLm9mZnNldFdpZHRoLWEuY2xpZW50V2lkdGg7cmV0dXJuIHRoaXMuJGJvZHlbMF0ucmVtb3ZlQ2hpbGQoYSksYn07dmFyIGQ9YS5mbi5tb2RhbDthLmZuLm1vZGFsPWIsYS5mbi5tb2RhbC5Db25zdHJ1Y3Rvcj1jLGEuZm4ubW9kYWwubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLm1vZGFsPWQsdGhpc30sYShkb2N1bWVudCkub24oImNsaWNrLmJzLm1vZGFsLmRhdGEtYXBpIiwnW2RhdGEtdG9nZ2xlPSJtb2RhbCJdJyxmdW5jdGlvbihjKXt2YXIgZD1hKHRoaXMpLGU9ZC5hdHRyKCJocmVmIiksZj1hKGQuYXR0cigiZGF0YS10YXJnZXQiKXx8ZSYmZS5yZXBsYWNlKC8uKig/PSNbXlxzXSskKS8sIiIpKSxnPWYuZGF0YSgiYnMubW9kYWwiKT8idG9nZ2xlIjphLmV4dGVuZCh7cmVtb3RlOiEvIy8udGVzdChlKSYmZX0sZi5kYXRhKCksZC5kYXRhKCkpO2QuaXMoImEiKSYmYy5wcmV2ZW50RGVmYXVsdCgpLGYub25lKCJzaG93LmJzLm1vZGFsIixmdW5jdGlvbihhKXthLmlzRGVmYXVsdFByZXZlbnRlZCgpfHxmLm9uZSgiaGlkZGVuLmJzLm1vZGFsIixmdW5jdGlvbigpe2QuaXMoIjp2aXNpYmxlIikmJmQudHJpZ2dlcigiZm9jdXMiKX0pfSksYi5jYWxsKGYsZyx0aGlzKX0pfShqUXVlcnkpLCtmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYihiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9YSh0aGlzKSxlPWQuZGF0YSgiYnMudG9vbHRpcCIpLGY9Im9iamVjdCI9PXR5cGVvZiBiJiZiOyhlfHwhL2Rlc3Ryb3l8aGlkZS8udGVzdChiKSkmJihlfHxkLmRhdGEoImJzLnRvb2x0aXAiLGU9bmV3IGModGhpcyxmKSksInN0cmluZyI9PXR5cGVvZiBiJiZlW2JdKCkpfSl9dmFyIGM9ZnVuY3Rpb24oYSxiKXt0aGlzLnR5cGU9bnVsbCx0aGlzLm9wdGlvbnM9bnVsbCx0aGlzLmVuYWJsZWQ9bnVsbCx0aGlzLnRpbWVvdXQ9bnVsbCx0aGlzLmhvdmVyU3RhdGU9bnVsbCx0aGlzLiRlbGVtZW50PW51bGwsdGhpcy5pblN0YXRlPW51bGwsdGhpcy5pbml0KCJ0b29sdGlwIixhLGIpfTtjLlZFUlNJT049IjMuMy41IixjLlRSQU5TSVRJT05fRFVSQVRJT049MTUwLGMuREVGQVVMVFM9e2FuaW1hdGlvbjohMCxwbGFjZW1lbnQ6InRvcCIsc2VsZWN0b3I6ITEsdGVtcGxhdGU6JzxkaXYgY2xhc3M9InRvb2x0aXAiIHJvbGU9InRvb2x0aXAiPjxkaXYgY2xhc3M9InRvb2x0aXAtYXJyb3ciPjwvZGl2PjxkaXYgY2xhc3M9InRvb2x0aXAtaW5uZXIiPjwvZGl2PjwvZGl2PicsdHJpZ2dlcjoiaG92ZXIgZm9jdXMiLHRpdGxlOiIiLGRlbGF5OjAsaHRtbDohMSxjb250YWluZXI6ITEsdmlld3BvcnQ6e3NlbGVjdG9yOiJib2R5IixwYWRkaW5nOjB9fSxjLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKGIsYyxkKXtpZih0aGlzLmVuYWJsZWQ9ITAsdGhpcy50eXBlPWIsdGhpcy4kZWxlbWVudD1hKGMpLHRoaXMub3B0aW9ucz10aGlzLmdldE9wdGlvbnMoZCksdGhpcy4kdmlld3BvcnQ9dGhpcy5vcHRpb25zLnZpZXdwb3J0JiZhKGEuaXNGdW5jdGlvbih0aGlzLm9wdGlvbnMudmlld3BvcnQpP3RoaXMub3B0aW9ucy52aWV3cG9ydC5jYWxsKHRoaXMsdGhpcy4kZWxlbWVudCk6dGhpcy5vcHRpb25zLnZpZXdwb3J0LnNlbGVjdG9yfHx0aGlzLm9wdGlvbnMudmlld3BvcnQpLHRoaXMuaW5TdGF0ZT17Y2xpY2s6ITEsaG92ZXI6ITEsZm9jdXM6ITF9LHRoaXMuJGVsZW1lbnRbMF1pbnN0YW5jZW9mIGRvY3VtZW50LmNvbnN0cnVjdG9yJiYhdGhpcy5vcHRpb25zLnNlbGVjdG9yKXRocm93IG5ldyBFcnJvcigiYHNlbGVjdG9yYCBvcHRpb24gbXVzdCBiZSBzcGVjaWZpZWQgd2hlbiBpbml0aWFsaXppbmcgIit0aGlzLnR5cGUrIiBvbiB0aGUgd2luZG93LmRvY3VtZW50IG9iamVjdCEiKTtmb3IodmFyIGU9dGhpcy5vcHRpb25zLnRyaWdnZXIuc3BsaXQoIiAiKSxmPWUubGVuZ3RoO2YtLTspe3ZhciBnPWVbZl07aWYoImNsaWNrIj09Zyl0aGlzLiRlbGVtZW50Lm9uKCJjbGljay4iK3RoaXMudHlwZSx0aGlzLm9wdGlvbnMuc2VsZWN0b3IsYS5wcm94eSh0aGlzLnRvZ2dsZSx0aGlzKSk7ZWxzZSBpZigibWFudWFsIiE9Zyl7dmFyIGg9ImhvdmVyIj09Zz8ibW91c2VlbnRlciI6ImZvY3VzaW4iLGk9ImhvdmVyIj09Zz8ibW91c2VsZWF2ZSI6ImZvY3Vzb3V0Ijt0aGlzLiRlbGVtZW50Lm9uKGgrIi4iK3RoaXMudHlwZSx0aGlzLm9wdGlvbnMuc2VsZWN0b3IsYS5wcm94eSh0aGlzLmVudGVyLHRoaXMpKSx0aGlzLiRlbGVtZW50Lm9uKGkrIi4iK3RoaXMudHlwZSx0aGlzLm9wdGlvbnMuc2VsZWN0b3IsYS5wcm94eSh0aGlzLmxlYXZlLHRoaXMpKX19dGhpcy5vcHRpb25zLnNlbGVjdG9yP3RoaXMuX29wdGlvbnM9YS5leHRlbmQoe30sdGhpcy5vcHRpb25zLHt0cmlnZ2VyOiJtYW51YWwiLHNlbGVjdG9yOiIifSk6dGhpcy5maXhUaXRsZSgpfSxjLnByb3RvdHlwZS5nZXREZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBjLkRFRkFVTFRTfSxjLnByb3RvdHlwZS5nZXRPcHRpb25zPWZ1bmN0aW9uKGIpe3JldHVybiBiPWEuZXh0ZW5kKHt9LHRoaXMuZ2V0RGVmYXVsdHMoKSx0aGlzLiRlbGVtZW50LmRhdGEoKSxiKSxiLmRlbGF5JiYibnVtYmVyIj09dHlwZW9mIGIuZGVsYXkmJihiLmRlbGF5PXtzaG93OmIuZGVsYXksaGlkZTpiLmRlbGF5fSksYn0sYy5wcm90b3R5cGUuZ2V0RGVsZWdhdGVPcHRpb25zPWZ1bmN0aW9uKCl7dmFyIGI9e30sYz10aGlzLmdldERlZmF1bHRzKCk7cmV0dXJuIHRoaXMuX29wdGlvbnMmJmEuZWFjaCh0aGlzLl9vcHRpb25zLGZ1bmN0aW9uKGEsZCl7Y1thXSE9ZCYmKGJbYV09ZCl9KSxifSxjLnByb3RvdHlwZS5lbnRlcj1mdW5jdGlvbihiKXt2YXIgYz1iIGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3Rvcj9iOmEoYi5jdXJyZW50VGFyZ2V0KS5kYXRhKCJicy4iK3RoaXMudHlwZSk7cmV0dXJuIGN8fChjPW5ldyB0aGlzLmNvbnN0cnVjdG9yKGIuY3VycmVudFRhcmdldCx0aGlzLmdldERlbGVnYXRlT3B0aW9ucygpKSxhKGIuY3VycmVudFRhcmdldCkuZGF0YSgiYnMuIit0aGlzLnR5cGUsYykpLGIgaW5zdGFuY2VvZiBhLkV2ZW50JiYoYy5pblN0YXRlWyJmb2N1c2luIj09Yi50eXBlPyJmb2N1cyI6ImhvdmVyIl09ITApLGMudGlwKCkuaGFzQ2xhc3MoImluIil8fCJpbiI9PWMuaG92ZXJTdGF0ZT92b2lkKGMuaG92ZXJTdGF0ZT0iaW4iKTooY2xlYXJUaW1lb3V0KGMudGltZW91dCksYy5ob3ZlclN0YXRlPSJpbiIsYy5vcHRpb25zLmRlbGF5JiZjLm9wdGlvbnMuZGVsYXkuc2hvdz92b2lkKGMudGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ImluIj09Yy5ob3ZlclN0YXRlJiZjLnNob3coKX0sYy5vcHRpb25zLmRlbGF5LnNob3cpKTpjLnNob3coKSl9LGMucHJvdG90eXBlLmlzSW5TdGF0ZVRydWU9ZnVuY3Rpb24oKXtmb3IodmFyIGEgaW4gdGhpcy5pblN0YXRlKWlmKHRoaXMuaW5TdGF0ZVthXSlyZXR1cm4hMDtyZXR1cm4hMX0sYy5wcm90b3R5cGUubGVhdmU9ZnVuY3Rpb24oYil7dmFyIGM9YiBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3I/YjphKGIuY3VycmVudFRhcmdldCkuZGF0YSgiYnMuIit0aGlzLnR5cGUpO3JldHVybiBjfHwoYz1uZXcgdGhpcy5jb25zdHJ1Y3RvcihiLmN1cnJlbnRUYXJnZXQsdGhpcy5nZXREZWxlZ2F0ZU9wdGlvbnMoKSksYShiLmN1cnJlbnRUYXJnZXQpLmRhdGEoImJzLiIrdGhpcy50eXBlLGMpKSxiIGluc3RhbmNlb2YgYS5FdmVudCYmKGMuaW5TdGF0ZVsiZm9jdXNvdXQiPT1iLnR5cGU/ImZvY3VzIjoiaG92ZXIiXT0hMSksYy5pc0luU3RhdGVUcnVlKCk/dm9pZCAwOihjbGVhclRpbWVvdXQoYy50aW1lb3V0KSxjLmhvdmVyU3RhdGU9Im91dCIsYy5vcHRpb25zLmRlbGF5JiZjLm9wdGlvbnMuZGVsYXkuaGlkZT92b2lkKGMudGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Im91dCI9PWMuaG92ZXJTdGF0ZSYmYy5oaWRlKCl9LGMub3B0aW9ucy5kZWxheS5oaWRlKSk6Yy5oaWRlKCkpfSxjLnByb3RvdHlwZS5zaG93PWZ1bmN0aW9uKCl7dmFyIGI9YS5FdmVudCgic2hvdy5icy4iK3RoaXMudHlwZSk7aWYodGhpcy5oYXNDb250ZW50KCkmJnRoaXMuZW5hYmxlZCl7dGhpcy4kZWxlbWVudC50cmlnZ2VyKGIpO3ZhciBkPWEuY29udGFpbnModGhpcy4kZWxlbWVudFswXS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCx0aGlzLiRlbGVtZW50WzBdKTtpZihiLmlzRGVmYXVsdFByZXZlbnRlZCgpfHwhZClyZXR1cm47dmFyIGU9dGhpcyxmPXRoaXMudGlwKCksZz10aGlzLmdldFVJRCh0aGlzLnR5cGUpO3RoaXMuc2V0Q29udGVudCgpLGYuYXR0cigiaWQiLGcpLHRoaXMuJGVsZW1lbnQuYXR0cigiYXJpYS1kZXNjcmliZWRieSIsZyksdGhpcy5vcHRpb25zLmFuaW1hdGlvbiYmZi5hZGRDbGFzcygiZmFkZSIpO3ZhciBoPSJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLm9wdGlvbnMucGxhY2VtZW50P3RoaXMub3B0aW9ucy5wbGFjZW1lbnQuY2FsbCh0aGlzLGZbMF0sdGhpcy4kZWxlbWVudFswXSk6dGhpcy5vcHRpb25zLnBsYWNlbWVudCxpPS9ccz9hdXRvP1xzPy9pLGo9aS50ZXN0KGgpO2omJihoPWgucmVwbGFjZShpLCIiKXx8InRvcCIpLGYuZGV0YWNoKCkuY3NzKHt0b3A6MCxsZWZ0OjAsZGlzcGxheToiYmxvY2sifSkuYWRkQ2xhc3MoaCkuZGF0YSgiYnMuIit0aGlzLnR5cGUsdGhpcyksdGhpcy5vcHRpb25zLmNvbnRhaW5lcj9mLmFwcGVuZFRvKHRoaXMub3B0aW9ucy5jb250YWluZXIpOmYuaW5zZXJ0QWZ0ZXIodGhpcy4kZWxlbWVudCksdGhpcy4kZWxlbWVudC50cmlnZ2VyKCJpbnNlcnRlZC5icy4iK3RoaXMudHlwZSk7dmFyIGs9dGhpcy5nZXRQb3NpdGlvbigpLGw9ZlswXS5vZmZzZXRXaWR0aCxtPWZbMF0ub2Zmc2V0SGVpZ2h0O2lmKGope3ZhciBuPWgsbz10aGlzLmdldFBvc2l0aW9uKHRoaXMuJHZpZXdwb3J0KTtoPSJib3R0b20iPT1oJiZrLmJvdHRvbSttPm8uYm90dG9tPyJ0b3AiOiJ0b3AiPT1oJiZrLnRvcC1tPG8udG9wPyJib3R0b20iOiJyaWdodCI9PWgmJmsucmlnaHQrbD5vLndpZHRoPyJsZWZ0IjoibGVmdCI9PWgmJmsubGVmdC1sPG8ubGVmdD8icmlnaHQiOmgsZi5yZW1vdmVDbGFzcyhuKS5hZGRDbGFzcyhoKX12YXIgcD10aGlzLmdldENhbGN1bGF0ZWRPZmZzZXQoaCxrLGwsbSk7dGhpcy5hcHBseVBsYWNlbWVudChwLGgpO3ZhciBxPWZ1bmN0aW9uKCl7dmFyIGE9ZS5ob3ZlclN0YXRlO2UuJGVsZW1lbnQudHJpZ2dlcigic2hvd24uYnMuIitlLnR5cGUpLGUuaG92ZXJTdGF0ZT1udWxsLCJvdXQiPT1hJiZlLmxlYXZlKGUpfTthLnN1cHBvcnQudHJhbnNpdGlvbiYmdGhpcy4kdGlwLmhhc0NsYXNzKCJmYWRlIik/Zi5vbmUoImJzVHJhbnNpdGlvbkVuZCIscSkuZW11bGF0ZVRyYW5zaXRpb25FbmQoYy5UUkFOU0lUSU9OX0RVUkFUSU9OKTpxKCl9fSxjLnByb3RvdHlwZS5hcHBseVBsYWNlbWVudD1mdW5jdGlvbihiLGMpe3ZhciBkPXRoaXMudGlwKCksZT1kWzBdLm9mZnNldFdpZHRoLGY9ZFswXS5vZmZzZXRIZWlnaHQsZz1wYXJzZUludChkLmNzcygibWFyZ2luLXRvcCIpLDEwKSxoPXBhcnNlSW50KGQuY3NzKCJtYXJnaW4tbGVmdCIpLDEwKTtpc05hTihnKSYmKGc9MCksaXNOYU4oaCkmJihoPTApLGIudG9wKz1nLGIubGVmdCs9aCxhLm9mZnNldC5zZXRPZmZzZXQoZFswXSxhLmV4dGVuZCh7dXNpbmc6ZnVuY3Rpb24oYSl7ZC5jc3Moe3RvcDpNYXRoLnJvdW5kKGEudG9wKSxsZWZ0Ok1hdGgucm91bmQoYS5sZWZ0KX0pfX0sYiksMCksZC5hZGRDbGFzcygiaW4iKTt2YXIgaT1kWzBdLm9mZnNldFdpZHRoLGo9ZFswXS5vZmZzZXRIZWlnaHQ7InRvcCI9PWMmJmohPWYmJihiLnRvcD1iLnRvcCtmLWopO3ZhciBrPXRoaXMuZ2V0Vmlld3BvcnRBZGp1c3RlZERlbHRhKGMsYixpLGopO2subGVmdD9iLmxlZnQrPWsubGVmdDpiLnRvcCs9ay50b3A7dmFyIGw9L3RvcHxib3R0b20vLnRlc3QoYyksbT1sPzIqay5sZWZ0LWUraToyKmsudG9wLWYraixuPWw/Im9mZnNldFdpZHRoIjoib2Zmc2V0SGVpZ2h0IjtkLm9mZnNldChiKSx0aGlzLnJlcGxhY2VBcnJvdyhtLGRbMF1bbl0sbCl9LGMucHJvdG90eXBlLnJlcGxhY2VBcnJvdz1mdW5jdGlvbihhLGIsYyl7dGhpcy5hcnJvdygpLmNzcyhjPyJsZWZ0IjoidG9wIiw1MCooMS1hL2IpKyIlIikuY3NzKGM/InRvcCI6ImxlZnQiLCIiKX0sYy5wcm90b3R5cGUuc2V0Q29udGVudD1mdW5jdGlvbigpe3ZhciBhPXRoaXMudGlwKCksYj10aGlzLmdldFRpdGxlKCk7YS5maW5kKCIudG9vbHRpcC1pbm5lciIpW3RoaXMub3B0aW9ucy5odG1sPyJodG1sIjoidGV4dCJdKGIpLGEucmVtb3ZlQ2xhc3MoImZhZGUgaW4gdG9wIGJvdHRvbSBsZWZ0IHJpZ2h0Iil9LGMucHJvdG90eXBlLmhpZGU9ZnVuY3Rpb24oYil7ZnVuY3Rpb24gZCgpeyJpbiIhPWUuaG92ZXJTdGF0ZSYmZi5kZXRhY2goKSxlLiRlbGVtZW50LnJlbW92ZUF0dHIoImFyaWEtZGVzY3JpYmVkYnkiKS50cmlnZ2VyKCJoaWRkZW4uYnMuIitlLnR5cGUpLGImJmIoKX12YXIgZT10aGlzLGY9YSh0aGlzLiR0aXApLGc9YS5FdmVudCgiaGlkZS5icy4iK3RoaXMudHlwZSk7cmV0dXJuIHRoaXMuJGVsZW1lbnQudHJpZ2dlcihnKSxnLmlzRGVmYXVsdFByZXZlbnRlZCgpP3ZvaWQgMDooZi5yZW1vdmVDbGFzcygiaW4iKSxhLnN1cHBvcnQudHJhbnNpdGlvbiYmZi5oYXNDbGFzcygiZmFkZSIpP2Yub25lKCJic1RyYW5zaXRpb25FbmQiLGQpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuVFJBTlNJVElPTl9EVVJBVElPTik6ZCgpLHRoaXMuaG92ZXJTdGF0ZT1udWxsLHRoaXMpfSxjLnByb3RvdHlwZS5maXhUaXRsZT1mdW5jdGlvbigpe3ZhciBhPXRoaXMuJGVsZW1lbnQ7KGEuYXR0cigidGl0bGUiKXx8InN0cmluZyIhPXR5cGVvZiBhLmF0dHIoImRhdGEtb3JpZ2luYWwtdGl0bGUiKSkmJmEuYXR0cigiZGF0YS1vcmlnaW5hbC10aXRsZSIsYS5hdHRyKCJ0aXRsZSIpfHwiIikuYXR0cigidGl0bGUiLCIiKX0sYy5wcm90b3R5cGUuaGFzQ29udGVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFRpdGxlKCl9LGMucHJvdG90eXBlLmdldFBvc2l0aW9uPWZ1bmN0aW9uKGIpe2I9Ynx8dGhpcy4kZWxlbWVudDt2YXIgYz1iWzBdLGQ9IkJPRFkiPT1jLnRhZ05hbWUsZT1jLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO251bGw9PWUud2lkdGgmJihlPWEuZXh0ZW5kKHt9LGUse3dpZHRoOmUucmlnaHQtZS5sZWZ0LGhlaWdodDplLmJvdHRvbS1lLnRvcH0pKTt2YXIgZj1kP3t0b3A6MCxsZWZ0OjB9OmIub2Zmc2V0KCksZz17c2Nyb2xsOmQ/ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcHx8ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A6Yi5zY3JvbGxUb3AoKX0saD1kP3t3aWR0aDphKHdpbmRvdykud2lkdGgoKSxoZWlnaHQ6YSh3aW5kb3cpLmhlaWdodCgpfTpudWxsO3JldHVybiBhLmV4dGVuZCh7fSxlLGcsaCxmKX0sYy5wcm90b3R5cGUuZ2V0Q2FsY3VsYXRlZE9mZnNldD1mdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4iYm90dG9tIj09YT97dG9wOmIudG9wK2IuaGVpZ2h0LGxlZnQ6Yi5sZWZ0K2Iud2lkdGgvMi1jLzJ9OiJ0b3AiPT1hP3t0b3A6Yi50b3AtZCxsZWZ0OmIubGVmdCtiLndpZHRoLzItYy8yfToibGVmdCI9PWE/e3RvcDpiLnRvcCtiLmhlaWdodC8yLWQvMixsZWZ0OmIubGVmdC1jfTp7dG9wOmIudG9wK2IuaGVpZ2h0LzItZC8yLGxlZnQ6Yi5sZWZ0K2Iud2lkdGh9fSxjLnByb3RvdHlwZS5nZXRWaWV3cG9ydEFkanVzdGVkRGVsdGE9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9e3RvcDowLGxlZnQ6MH07aWYoIXRoaXMuJHZpZXdwb3J0KXJldHVybiBlO3ZhciBmPXRoaXMub3B0aW9ucy52aWV3cG9ydCYmdGhpcy5vcHRpb25zLnZpZXdwb3J0LnBhZGRpbmd8fDAsZz10aGlzLmdldFBvc2l0aW9uKHRoaXMuJHZpZXdwb3J0KTtpZigvcmlnaHR8bGVmdC8udGVzdChhKSl7dmFyIGg9Yi50b3AtZi1nLnNjcm9sbCxpPWIudG9wK2YtZy5zY3JvbGwrZDtoPGcudG9wP2UudG9wPWcudG9wLWg6aT5nLnRvcCtnLmhlaWdodCYmKGUudG9wPWcudG9wK2cuaGVpZ2h0LWkpfWVsc2V7dmFyIGo9Yi5sZWZ0LWYsaz1iLmxlZnQrZitjO2o8Zy5sZWZ0P2UubGVmdD1nLmxlZnQtajprPmcucmlnaHQmJihlLmxlZnQ9Zy5sZWZ0K2cud2lkdGgtayl9cmV0dXJuIGV9LGMucHJvdG90eXBlLmdldFRpdGxlPWZ1bmN0aW9uKCl7dmFyIGEsYj10aGlzLiRlbGVtZW50LGM9dGhpcy5vcHRpb25zO3JldHVybiBhPWIuYXR0cigiZGF0YS1vcmlnaW5hbC10aXRsZSIpfHwoImZ1bmN0aW9uIj09dHlwZW9mIGMudGl0bGU/Yy50aXRsZS5jYWxsKGJbMF0pOmMudGl0bGUpfSxjLnByb3RvdHlwZS5nZXRVSUQ9ZnVuY3Rpb24oYSl7ZG8gYSs9fn4oMWU2Kk1hdGgucmFuZG9tKCkpO3doaWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpKTtyZXR1cm4gYX0sYy5wcm90b3R5cGUudGlwPWZ1bmN0aW9uKCl7aWYoIXRoaXMuJHRpcCYmKHRoaXMuJHRpcD1hKHRoaXMub3B0aW9ucy50ZW1wbGF0ZSksMSE9dGhpcy4kdGlwLmxlbmd0aCkpdGhyb3cgbmV3IEVycm9yKHRoaXMudHlwZSsiIGB0ZW1wbGF0ZWAgb3B0aW9uIG11c3QgY29uc2lzdCBvZiBleGFjdGx5IDEgdG9wLWxldmVsIGVsZW1lbnQhIik7cmV0dXJuIHRoaXMuJHRpcH0sYy5wcm90b3R5cGUuYXJyb3c9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kYXJyb3c9dGhpcy4kYXJyb3d8fHRoaXMudGlwKCkuZmluZCgiLnRvb2x0aXAtYXJyb3ciKX0sYy5wcm90b3R5cGUuZW5hYmxlPWZ1bmN0aW9uKCl7dGhpcy5lbmFibGVkPSEwfSxjLnByb3RvdHlwZS5kaXNhYmxlPWZ1bmN0aW9uKCl7dGhpcy5lbmFibGVkPSExfSxjLnByb3RvdHlwZS50b2dnbGVFbmFibGVkPWZ1bmN0aW9uKCl7dGhpcy5lbmFibGVkPSF0aGlzLmVuYWJsZWR9LGMucHJvdG90eXBlLnRvZ2dsZT1mdW5jdGlvbihiKXt2YXIgYz10aGlzO2ImJihjPWEoYi5jdXJyZW50VGFyZ2V0KS5kYXRhKCJicy4iK3RoaXMudHlwZSksY3x8KGM9bmV3IHRoaXMuY29uc3RydWN0b3IoYi5jdXJyZW50VGFyZ2V0LHRoaXMuZ2V0RGVsZWdhdGVPcHRpb25zKCkpLGEoYi5jdXJyZW50VGFyZ2V0KS5kYXRhKCJicy4iK3RoaXMudHlwZSxjKSkpLGI/KGMuaW5TdGF0ZS5jbGljaz0hYy5pblN0YXRlLmNsaWNrLGMuaXNJblN0YXRlVHJ1ZSgpP2MuZW50ZXIoYyk6Yy5sZWF2ZShjKSk6Yy50aXAoKS5oYXNDbGFzcygiaW4iKT9jLmxlYXZlKGMpOmMuZW50ZXIoYyl9LGMucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO2NsZWFyVGltZW91dCh0aGlzLnRpbWVvdXQpLHRoaXMuaGlkZShmdW5jdGlvbigpe2EuJGVsZW1lbnQub2ZmKCIuIithLnR5cGUpLnJlbW92ZURhdGEoImJzLiIrYS50eXBlKSxhLiR0aXAmJmEuJHRpcC5kZXRhY2goKSxhLiR0aXA9bnVsbCxhLiRhcnJvdz1udWxsLGEuJHZpZXdwb3J0PW51bGx9KX07dmFyIGQ9YS5mbi50b29sdGlwO2EuZm4udG9vbHRpcD1iLGEuZm4udG9vbHRpcC5Db25zdHJ1Y3Rvcj1jLGEuZm4udG9vbHRpcC5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4udG9vbHRpcD1kLHRoaXN9fShqUXVlcnkpLCtmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYihiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9YSh0aGlzKSxlPWQuZGF0YSgiYnMucG9wb3ZlciIpLGY9Im9iamVjdCI9PXR5cGVvZiBiJiZiOyhlfHwhL2Rlc3Ryb3l8aGlkZS8udGVzdChiKSkmJihlfHxkLmRhdGEoImJzLnBvcG92ZXIiLGU9bmV3IGModGhpcyxmKSksInN0cmluZyI9PXR5cGVvZiBiJiZlW2JdKCkpfSl9dmFyIGM9ZnVuY3Rpb24oYSxiKXt0aGlzLmluaXQoInBvcG92ZXIiLGEsYil9O2lmKCFhLmZuLnRvb2x0aXApdGhyb3cgbmV3IEVycm9yKCJQb3BvdmVyIHJlcXVpcmVzIHRvb2x0aXAuanMiKTtjLlZFUlNJT049IjMuMy41IixjLkRFRkFVTFRTPWEuZXh0ZW5kKHt9LGEuZm4udG9vbHRpcC5Db25zdHJ1Y3Rvci5ERUZBVUxUUyx7cGxhY2VtZW50OiJyaWdodCIsdHJpZ2dlcjoiY2xpY2siLGNvbnRlbnQ6IiIsdGVtcGxhdGU6JzxkaXYgY2xhc3M9InBvcG92ZXIiIHJvbGU9InRvb2x0aXAiPjxkaXYgY2xhc3M9ImFycm93Ij48L2Rpdj48aDMgY2xhc3M9InBvcG92ZXItdGl0bGUiPjwvaDM+PGRpdiBjbGFzcz0icG9wb3Zlci1jb250ZW50Ij48L2Rpdj48L2Rpdj4nfSksYy5wcm90b3R5cGU9YS5leHRlbmQoe30sYS5mbi50b29sdGlwLkNvbnN0cnVjdG9yLnByb3RvdHlwZSksYy5wcm90b3R5cGUuY29uc3RydWN0b3I9YyxjLnByb3RvdHlwZS5nZXREZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBjLkRFRkFVTFRTfSxjLnByb3RvdHlwZS5zZXRDb250ZW50PWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy50aXAoKSxiPXRoaXMuZ2V0VGl0bGUoKSxjPXRoaXMuZ2V0Q29udGVudCgpO2EuZmluZCgiLnBvcG92ZXItdGl0bGUiKVt0aGlzLm9wdGlvbnMuaHRtbD8iaHRtbCI6InRleHQiXShiKSxhLmZpbmQoIi5wb3BvdmVyLWNvbnRlbnQiKS5jaGlsZHJlbigpLmRldGFjaCgpLmVuZCgpW3RoaXMub3B0aW9ucy5odG1sPyJzdHJpbmciPT10eXBlb2YgYz8iaHRtbCI6ImFwcGVuZCI6InRleHQiXShjKSxhLnJlbW92ZUNsYXNzKCJmYWRlIHRvcCBib3R0b20gbGVmdCByaWdodCBpbiIpLGEuZmluZCgiLnBvcG92ZXItdGl0bGUiKS5odG1sKCl8fGEuZmluZCgiLnBvcG92ZXItdGl0bGUiKS5oaWRlKCl9LGMucHJvdG90eXBlLmhhc0NvbnRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRUaXRsZSgpfHx0aGlzLmdldENvbnRlbnQoKX0sYy5wcm90b3R5cGUuZ2V0Q29udGVudD1mdW5jdGlvbigpe3ZhciBhPXRoaXMuJGVsZW1lbnQsYj10aGlzLm9wdGlvbnM7cmV0dXJuIGEuYXR0cigiZGF0YS1jb250ZW50Iil8fCgiZnVuY3Rpb24iPT10eXBlb2YgYi5jb250ZW50P2IuY29udGVudC5jYWxsKGFbMF0pOmIuY29udGVudCl9LGMucHJvdG90eXBlLmFycm93PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJGFycm93PXRoaXMuJGFycm93fHx0aGlzLnRpcCgpLmZpbmQoIi5hcnJvdyIpfTt2YXIgZD1hLmZuLnBvcG92ZXI7YS5mbi5wb3BvdmVyPWIsYS5mbi5wb3BvdmVyLkNvbnN0cnVjdG9yPWMsYS5mbi5wb3BvdmVyLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi5wb3BvdmVyPWQsdGhpc319KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGMsZCl7dGhpcy4kYm9keT1hKGRvY3VtZW50LmJvZHkpLHRoaXMuJHNjcm9sbEVsZW1lbnQ9YShhKGMpLmlzKGRvY3VtZW50LmJvZHkpP3dpbmRvdzpjKSx0aGlzLm9wdGlvbnM9YS5leHRlbmQoe30sYi5ERUZBVUxUUyxkKSx0aGlzLnNlbGVjdG9yPSh0aGlzLm9wdGlvbnMudGFyZ2V0fHwiIikrIiAubmF2IGxpID4gYSIsdGhpcy5vZmZzZXRzPVtdLHRoaXMudGFyZ2V0cz1bXSx0aGlzLmFjdGl2ZVRhcmdldD1udWxsLHRoaXMuc2Nyb2xsSGVpZ2h0PTAsdGhpcy4kc2Nyb2xsRWxlbWVudC5vbigic2Nyb2xsLmJzLnNjcm9sbHNweSIsYS5wcm94eSh0aGlzLnByb2Nlc3MsdGhpcykpLHRoaXMucmVmcmVzaCgpLHRoaXMucHJvY2VzcygpfWZ1bmN0aW9uIGMoYyl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1kLmRhdGEoImJzLnNjcm9sbHNweSIpLGY9Im9iamVjdCI9PXR5cGVvZiBjJiZjO2V8fGQuZGF0YSgiYnMuc2Nyb2xsc3B5IixlPW5ldyBiKHRoaXMsZikpLCJzdHJpbmciPT10eXBlb2YgYyYmZVtjXSgpfSl9Yi5WRVJTSU9OPSIzLjMuNSIsYi5ERUZBVUxUUz17b2Zmc2V0OjEwfSxiLnByb3RvdHlwZS5nZXRTY3JvbGxIZWlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kc2Nyb2xsRWxlbWVudFswXS5zY3JvbGxIZWlnaHR8fE1hdGgubWF4KHRoaXMuJGJvZHlbMF0uc2Nyb2xsSGVpZ2h0LGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxIZWlnaHQpfSxiLnByb3RvdHlwZS5yZWZyZXNoPWZ1bmN0aW9uKCl7dmFyIGI9dGhpcyxjPSJvZmZzZXQiLGQ9MDt0aGlzLm9mZnNldHM9W10sdGhpcy50YXJnZXRzPVtdLHRoaXMuc2Nyb2xsSGVpZ2h0PXRoaXMuZ2V0U2Nyb2xsSGVpZ2h0KCksYS5pc1dpbmRvdyh0aGlzLiRzY3JvbGxFbGVtZW50WzBdKXx8KGM9InBvc2l0aW9uIixkPXRoaXMuJHNjcm9sbEVsZW1lbnQuc2Nyb2xsVG9wKCkpLHRoaXMuJGJvZHkuZmluZCh0aGlzLnNlbGVjdG9yKS5tYXAoZnVuY3Rpb24oKXt2YXIgYj1hKHRoaXMpLGU9Yi5kYXRhKCJ0YXJnZXQiKXx8Yi5hdHRyKCJocmVmIiksZj0vXiMuLy50ZXN0KGUpJiZhKGUpO3JldHVybiBmJiZmLmxlbmd0aCYmZi5pcygiOnZpc2libGUiKSYmW1tmW2NdKCkudG9wK2QsZV1dfHxudWxsfSkuc29ydChmdW5jdGlvbihhLGIpe3JldHVybiBhWzBdLWJbMF19KS5lYWNoKGZ1bmN0aW9uKCl7Yi5vZmZzZXRzLnB1c2godGhpc1swXSksYi50YXJnZXRzLnB1c2godGhpc1sxXSl9KX0sYi5wcm90b3R5cGUucHJvY2Vzcz1mdW5jdGlvbigpe3ZhciBhLGI9dGhpcy4kc2Nyb2xsRWxlbWVudC5zY3JvbGxUb3AoKSt0aGlzLm9wdGlvbnMub2Zmc2V0LGM9dGhpcy5nZXRTY3JvbGxIZWlnaHQoKSxkPXRoaXMub3B0aW9ucy5vZmZzZXQrYy10aGlzLiRzY3JvbGxFbGVtZW50LmhlaWdodCgpLGU9dGhpcy5vZmZzZXRzLGY9dGhpcy50YXJnZXRzLGc9dGhpcy5hY3RpdmVUYXJnZXQ7aWYodGhpcy5zY3JvbGxIZWlnaHQhPWMmJnRoaXMucmVmcmVzaCgpLGI+PWQpcmV0dXJuIGchPShhPWZbZi5sZW5ndGgtMV0pJiZ0aGlzLmFjdGl2YXRlKGEpO2lmKGcmJmI8ZVswXSlyZXR1cm4gdGhpcy5hY3RpdmVUYXJnZXQ9bnVsbCx0aGlzLmNsZWFyKCk7Zm9yKGE9ZS5sZW5ndGg7YS0tOylnIT1mW2FdJiZiPj1lW2FdJiYodm9pZCAwPT09ZVthKzFdfHxiPGVbYSsxXSkmJnRoaXMuYWN0aXZhdGUoZlthXSl9LGIucHJvdG90eXBlLmFjdGl2YXRlPWZ1bmN0aW9uKGIpe3RoaXMuYWN0aXZlVGFyZ2V0PWIsdGhpcy5jbGVhcigpO3ZhciBjPXRoaXMuc2VsZWN0b3IrJ1tkYXRhLXRhcmdldD0iJytiKyciXSwnK3RoaXMuc2VsZWN0b3IrJ1tocmVmPSInK2IrJyJdJyxkPWEoYykucGFyZW50cygibGkiKS5hZGRDbGFzcygiYWN0aXZlIik7ZC5wYXJlbnQoIi5kcm9wZG93bi1tZW51IikubGVuZ3RoJiYoZD1kLmNsb3Nlc3QoImxpLmRyb3Bkb3duIikuYWRkQ2xhc3MoImFjdGl2ZSIpKSwKZC50cmlnZ2VyKCJhY3RpdmF0ZS5icy5zY3JvbGxzcHkiKX0sYi5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXthKHRoaXMuc2VsZWN0b3IpLnBhcmVudHNVbnRpbCh0aGlzLm9wdGlvbnMudGFyZ2V0LCIuYWN0aXZlIikucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpfTt2YXIgZD1hLmZuLnNjcm9sbHNweTthLmZuLnNjcm9sbHNweT1jLGEuZm4uc2Nyb2xsc3B5LkNvbnN0cnVjdG9yPWIsYS5mbi5zY3JvbGxzcHkubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLnNjcm9sbHNweT1kLHRoaXN9LGEod2luZG93KS5vbigibG9hZC5icy5zY3JvbGxzcHkuZGF0YS1hcGkiLGZ1bmN0aW9uKCl7YSgnW2RhdGEtc3B5PSJzY3JvbGwiXScpLmVhY2goZnVuY3Rpb24oKXt2YXIgYj1hKHRoaXMpO2MuY2FsbChiLGIuZGF0YSgpKX0pfSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZD1hKHRoaXMpLGU9ZC5kYXRhKCJicy50YWIiKTtlfHxkLmRhdGEoImJzLnRhYiIsZT1uZXcgYyh0aGlzKSksInN0cmluZyI9PXR5cGVvZiBiJiZlW2JdKCl9KX12YXIgYz1mdW5jdGlvbihiKXt0aGlzLmVsZW1lbnQ9YShiKX07Yy5WRVJTSU9OPSIzLjMuNSIsYy5UUkFOU0lUSU9OX0RVUkFUSU9OPTE1MCxjLnByb3RvdHlwZS5zaG93PWZ1bmN0aW9uKCl7dmFyIGI9dGhpcy5lbGVtZW50LGM9Yi5jbG9zZXN0KCJ1bDpub3QoLmRyb3Bkb3duLW1lbnUpIiksZD1iLmRhdGEoInRhcmdldCIpO2lmKGR8fChkPWIuYXR0cigiaHJlZiIpLGQ9ZCYmZC5yZXBsYWNlKC8uKig/PSNbXlxzXSokKS8sIiIpKSwhYi5wYXJlbnQoImxpIikuaGFzQ2xhc3MoImFjdGl2ZSIpKXt2YXIgZT1jLmZpbmQoIi5hY3RpdmU6bGFzdCBhIiksZj1hLkV2ZW50KCJoaWRlLmJzLnRhYiIse3JlbGF0ZWRUYXJnZXQ6YlswXX0pLGc9YS5FdmVudCgic2hvdy5icy50YWIiLHtyZWxhdGVkVGFyZ2V0OmVbMF19KTtpZihlLnRyaWdnZXIoZiksYi50cmlnZ2VyKGcpLCFnLmlzRGVmYXVsdFByZXZlbnRlZCgpJiYhZi5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7dmFyIGg9YShkKTt0aGlzLmFjdGl2YXRlKGIuY2xvc2VzdCgibGkiKSxjKSx0aGlzLmFjdGl2YXRlKGgsaC5wYXJlbnQoKSxmdW5jdGlvbigpe2UudHJpZ2dlcih7dHlwZToiaGlkZGVuLmJzLnRhYiIscmVsYXRlZFRhcmdldDpiWzBdfSksYi50cmlnZ2VyKHt0eXBlOiJzaG93bi5icy50YWIiLHJlbGF0ZWRUYXJnZXQ6ZVswXX0pfSl9fX0sYy5wcm90b3R5cGUuYWN0aXZhdGU9ZnVuY3Rpb24oYixkLGUpe2Z1bmN0aW9uIGYoKXtnLnJlbW92ZUNsYXNzKCJhY3RpdmUiKS5maW5kKCI+IC5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSIpLnJlbW92ZUNsYXNzKCJhY3RpdmUiKS5lbmQoKS5maW5kKCdbZGF0YS10b2dnbGU9InRhYiJdJykuYXR0cigiYXJpYS1leHBhbmRlZCIsITEpLGIuYWRkQ2xhc3MoImFjdGl2ZSIpLmZpbmQoJ1tkYXRhLXRvZ2dsZT0idGFiIl0nKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwhMCksaD8oYlswXS5vZmZzZXRXaWR0aCxiLmFkZENsYXNzKCJpbiIpKTpiLnJlbW92ZUNsYXNzKCJmYWRlIiksYi5wYXJlbnQoIi5kcm9wZG93bi1tZW51IikubGVuZ3RoJiZiLmNsb3Nlc3QoImxpLmRyb3Bkb3duIikuYWRkQ2xhc3MoImFjdGl2ZSIpLmVuZCgpLmZpbmQoJ1tkYXRhLXRvZ2dsZT0idGFiIl0nKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwhMCksZSYmZSgpfXZhciBnPWQuZmluZCgiPiAuYWN0aXZlIiksaD1lJiZhLnN1cHBvcnQudHJhbnNpdGlvbiYmKGcubGVuZ3RoJiZnLmhhc0NsYXNzKCJmYWRlIil8fCEhZC5maW5kKCI+IC5mYWRlIikubGVuZ3RoKTtnLmxlbmd0aCYmaD9nLm9uZSgiYnNUcmFuc2l0aW9uRW5kIixmKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChjLlRSQU5TSVRJT05fRFVSQVRJT04pOmYoKSxnLnJlbW92ZUNsYXNzKCJpbiIpfTt2YXIgZD1hLmZuLnRhYjthLmZuLnRhYj1iLGEuZm4udGFiLkNvbnN0cnVjdG9yPWMsYS5mbi50YWIubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLnRhYj1kLHRoaXN9O3ZhciBlPWZ1bmN0aW9uKGMpe2MucHJldmVudERlZmF1bHQoKSxiLmNhbGwoYSh0aGlzKSwic2hvdyIpfTthKGRvY3VtZW50KS5vbigiY2xpY2suYnMudGFiLmRhdGEtYXBpIiwnW2RhdGEtdG9nZ2xlPSJ0YWIiXScsZSkub24oImNsaWNrLmJzLnRhYi5kYXRhLWFwaSIsJ1tkYXRhLXRvZ2dsZT0icGlsbCJdJyxlKX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGIoYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1kLmRhdGEoImJzLmFmZml4IiksZj0ib2JqZWN0Ij09dHlwZW9mIGImJmI7ZXx8ZC5kYXRhKCJicy5hZmZpeCIsZT1uZXcgYyh0aGlzLGYpKSwic3RyaW5nIj09dHlwZW9mIGImJmVbYl0oKX0pfXZhciBjPWZ1bmN0aW9uKGIsZCl7dGhpcy5vcHRpb25zPWEuZXh0ZW5kKHt9LGMuREVGQVVMVFMsZCksdGhpcy4kdGFyZ2V0PWEodGhpcy5vcHRpb25zLnRhcmdldCkub24oInNjcm9sbC5icy5hZmZpeC5kYXRhLWFwaSIsYS5wcm94eSh0aGlzLmNoZWNrUG9zaXRpb24sdGhpcykpLm9uKCJjbGljay5icy5hZmZpeC5kYXRhLWFwaSIsYS5wcm94eSh0aGlzLmNoZWNrUG9zaXRpb25XaXRoRXZlbnRMb29wLHRoaXMpKSx0aGlzLiRlbGVtZW50PWEoYiksdGhpcy5hZmZpeGVkPW51bGwsdGhpcy51bnBpbj1udWxsLHRoaXMucGlubmVkT2Zmc2V0PW51bGwsdGhpcy5jaGVja1Bvc2l0aW9uKCl9O2MuVkVSU0lPTj0iMy4zLjUiLGMuUkVTRVQ9ImFmZml4IGFmZml4LXRvcCBhZmZpeC1ib3R0b20iLGMuREVGQVVMVFM9e29mZnNldDowLHRhcmdldDp3aW5kb3d9LGMucHJvdG90eXBlLmdldFN0YXRlPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPXRoaXMuJHRhcmdldC5zY3JvbGxUb3AoKSxmPXRoaXMuJGVsZW1lbnQub2Zmc2V0KCksZz10aGlzLiR0YXJnZXQuaGVpZ2h0KCk7aWYobnVsbCE9YyYmInRvcCI9PXRoaXMuYWZmaXhlZClyZXR1cm4gYz5lPyJ0b3AiOiExO2lmKCJib3R0b20iPT10aGlzLmFmZml4ZWQpcmV0dXJuIG51bGwhPWM/ZSt0aGlzLnVucGluPD1mLnRvcD8hMToiYm90dG9tIjphLWQ+PWUrZz8hMToiYm90dG9tIjt2YXIgaD1udWxsPT10aGlzLmFmZml4ZWQsaT1oP2U6Zi50b3Asaj1oP2c6YjtyZXR1cm4gbnVsbCE9YyYmYz49ZT8idG9wIjpudWxsIT1kJiZpK2o+PWEtZD8iYm90dG9tIjohMX0sYy5wcm90b3R5cGUuZ2V0UGlubmVkT2Zmc2V0PWZ1bmN0aW9uKCl7aWYodGhpcy5waW5uZWRPZmZzZXQpcmV0dXJuIHRoaXMucGlubmVkT2Zmc2V0O3RoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoYy5SRVNFVCkuYWRkQ2xhc3MoImFmZml4Iik7dmFyIGE9dGhpcy4kdGFyZ2V0LnNjcm9sbFRvcCgpLGI9dGhpcy4kZWxlbWVudC5vZmZzZXQoKTtyZXR1cm4gdGhpcy5waW5uZWRPZmZzZXQ9Yi50b3AtYX0sYy5wcm90b3R5cGUuY2hlY2tQb3NpdGlvbldpdGhFdmVudExvb3A9ZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGEucHJveHkodGhpcy5jaGVja1Bvc2l0aW9uLHRoaXMpLDEpfSxjLnByb3RvdHlwZS5jaGVja1Bvc2l0aW9uPWZ1bmN0aW9uKCl7aWYodGhpcy4kZWxlbWVudC5pcygiOnZpc2libGUiKSl7dmFyIGI9dGhpcy4kZWxlbWVudC5oZWlnaHQoKSxkPXRoaXMub3B0aW9ucy5vZmZzZXQsZT1kLnRvcCxmPWQuYm90dG9tLGc9TWF0aC5tYXgoYShkb2N1bWVudCkuaGVpZ2h0KCksYShkb2N1bWVudC5ib2R5KS5oZWlnaHQoKSk7Im9iamVjdCIhPXR5cGVvZiBkJiYoZj1lPWQpLCJmdW5jdGlvbiI9PXR5cGVvZiBlJiYoZT1kLnRvcCh0aGlzLiRlbGVtZW50KSksImZ1bmN0aW9uIj09dHlwZW9mIGYmJihmPWQuYm90dG9tKHRoaXMuJGVsZW1lbnQpKTt2YXIgaD10aGlzLmdldFN0YXRlKGcsYixlLGYpO2lmKHRoaXMuYWZmaXhlZCE9aCl7bnVsbCE9dGhpcy51bnBpbiYmdGhpcy4kZWxlbWVudC5jc3MoInRvcCIsIiIpO3ZhciBpPSJhZmZpeCIrKGg/Ii0iK2g6IiIpLGo9YS5FdmVudChpKyIuYnMuYWZmaXgiKTtpZih0aGlzLiRlbGVtZW50LnRyaWdnZXIoaiksai5pc0RlZmF1bHRQcmV2ZW50ZWQoKSlyZXR1cm47dGhpcy5hZmZpeGVkPWgsdGhpcy51bnBpbj0iYm90dG9tIj09aD90aGlzLmdldFBpbm5lZE9mZnNldCgpOm51bGwsdGhpcy4kZWxlbWVudC5yZW1vdmVDbGFzcyhjLlJFU0VUKS5hZGRDbGFzcyhpKS50cmlnZ2VyKGkucmVwbGFjZSgiYWZmaXgiLCJhZmZpeGVkIikrIi5icy5hZmZpeCIpfSJib3R0b20iPT1oJiZ0aGlzLiRlbGVtZW50Lm9mZnNldCh7dG9wOmctYi1mfSl9fTt2YXIgZD1hLmZuLmFmZml4O2EuZm4uYWZmaXg9YixhLmZuLmFmZml4LkNvbnN0cnVjdG9yPWMsYS5mbi5hZmZpeC5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4uYWZmaXg9ZCx0aGlzfSxhKHdpbmRvdykub24oImxvYWQiLGZ1bmN0aW9uKCl7YSgnW2RhdGEtc3B5PSJhZmZpeCJdJykuZWFjaChmdW5jdGlvbigpe3ZhciBjPWEodGhpcyksZD1jLmRhdGEoKTtkLm9mZnNldD1kLm9mZnNldHx8e30sbnVsbCE9ZC5vZmZzZXRCb3R0b20mJihkLm9mZnNldC5ib3R0b209ZC5vZmZzZXRCb3R0b20pLG51bGwhPWQub2Zmc2V0VG9wJiYoZC5vZmZzZXQudG9wPWQub2Zmc2V0VG9wKSxiLmNhbGwoYyxkKX0pfSl9KGpRdWVyeSk7"></script>
+ <!-- jquery-ui -->
+ <script src="data:application/javascript;base64,LyohIGpRdWVyeSBVSSAtIHYxLjExLjQgLSAyMDE1LTAzLTExCiogaHR0cDovL2pxdWVyeXVpLmNvbQoqIEluY2x1ZGVzOiBjb3JlLmpzLCB3aWRnZXQuanMsIG1vdXNlLmpzLCBwb3NpdGlvbi5qcywgYWNjb3JkaW9uLmpzLCBhdXRvY29tcGxldGUuanMsIGJ1dHRvbi5qcywgZGF0ZXBpY2tlci5qcywgZGlhbG9nLmpzLCBkcmFnZ2FibGUuanMsIGRyb3BwYWJsZS5qcywgZWZmZWN0LmpzLCBlZmZlY3QtYmxpbmQuanMsIGVmZmVjdC1ib3VuY2UuanMsIGVmZmVjdC1jbGlwLmpzLCBlZmZlY3QtZHJvcC5qcywgZWZmZWN0LWV4cGxvZGUuanMsIGVmZmVjdC1mYWRlLmpzLCBlZmZlY3QtZm9sZC5qcywgZWZmZWN0LWhpZ2hsaWdodC5qcywgZWZmZWN0LXB1ZmYuanMsIGVmZmVjdC1wdWxzYXRlLmpzLCBlZmZlY3Qtc2NhbGUuanMsIGVmZmVjdC1zaGFrZS5qcywgZWZmZWN0LXNpemUuanMsIGVmZmVjdC1zbGlkZS5qcywgZWZmZWN0LXRyYW5zZmVyLmpzLCBtZW51LmpzLCBwcm9ncmVzc2Jhci5qcywgcmVzaXphYmxlLmpzLCBzZWxlY3RhYmxlLmpzLCBzZWxlY3RtZW51LmpzLCBzbGlkZXIuanMsIHNvcnRhYmxlLmpzLCBzcGlubmVyLmpzLCB0YWJzLmpzLCB0b29sdGlwLmpzCiogQ29weXJpZ2h0IDIwMTUgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9yczsgTGljZW5zZWQgTUlUICovCgooZnVuY3Rpb24oZSl7ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoWyJqcXVlcnkiXSxlKTplKGpRdWVyeSl9KShmdW5jdGlvbihlKXtmdW5jdGlvbiB0KHQscyl7dmFyIG4sYSxvLHI9dC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiJhcmVhIj09PXI/KG49dC5wYXJlbnROb2RlLGE9bi5uYW1lLHQuaHJlZiYmYSYmIm1hcCI9PT1uLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk/KG89ZSgiaW1nW3VzZW1hcD0nIyIrYSsiJ10iKVswXSwhIW8mJmkobykpOiExKTooL14oaW5wdXR8c2VsZWN0fHRleHRhcmVhfGJ1dHRvbnxvYmplY3QpJC8udGVzdChyKT8hdC5kaXNhYmxlZDoiYSI9PT1yP3QuaHJlZnx8czpzKSYmaSh0KX1mdW5jdGlvbiBpKHQpe3JldHVybiBlLmV4cHIuZmlsdGVycy52aXNpYmxlKHQpJiYhZSh0KS5wYXJlbnRzKCkuYWRkQmFjaygpLmZpbHRlcihmdW5jdGlvbigpe3JldHVybiJoaWRkZW4iPT09ZS5jc3ModGhpcywidmlzaWJpbGl0eSIpfSkubGVuZ3RofWZ1bmN0aW9uIHMoZSl7Zm9yKHZhciB0LGk7ZS5sZW5ndGgmJmVbMF0hPT1kb2N1bWVudDspe2lmKHQ9ZS5jc3MoInBvc2l0aW9uIiksKCJhYnNvbHV0ZSI9PT10fHwicmVsYXRpdmUiPT09dHx8ImZpeGVkIj09PXQpJiYoaT1wYXJzZUludChlLmNzcygiekluZGV4IiksMTApLCFpc05hTihpKSYmMCE9PWkpKXJldHVybiBpO2U9ZS5wYXJlbnQoKX1yZXR1cm4gMH1mdW5jdGlvbiBuKCl7dGhpcy5fY3VySW5zdD1udWxsLHRoaXMuX2tleUV2ZW50PSExLHRoaXMuX2Rpc2FibGVkSW5wdXRzPVtdLHRoaXMuX2RhdGVwaWNrZXJTaG93aW5nPSExLHRoaXMuX2luRGlhbG9nPSExLHRoaXMuX21haW5EaXZJZD0idWktZGF0ZXBpY2tlci1kaXYiLHRoaXMuX2lubGluZUNsYXNzPSJ1aS1kYXRlcGlja2VyLWlubGluZSIsdGhpcy5fYXBwZW5kQ2xhc3M9InVpLWRhdGVwaWNrZXItYXBwZW5kIix0aGlzLl90cmlnZ2VyQ2xhc3M9InVpLWRhdGVwaWNrZXItdHJpZ2dlciIsdGhpcy5fZGlhbG9nQ2xhc3M9InVpLWRhdGVwaWNrZXItZGlhbG9nIix0aGlzLl9kaXNhYmxlQ2xhc3M9InVpLWRhdGVwaWNrZXItZGlzYWJsZWQiLHRoaXMuX3Vuc2VsZWN0YWJsZUNsYXNzPSJ1aS1kYXRlcGlja2VyLXVuc2VsZWN0YWJsZSIsdGhpcy5fY3VycmVudENsYXNzPSJ1aS1kYXRlcGlja2VyLWN1cnJlbnQtZGF5Iix0aGlzLl9kYXlPdmVyQ2xhc3M9InVpLWRhdGVwaWNrZXItZGF5cy1jZWxsLW92ZXIiLHRoaXMucmVnaW9uYWw9W10sdGhpcy5yZWdpb25hbFsiIl09e2Nsb3NlVGV4dDoiRG9uZSIscHJldlRleHQ6IlByZXYiLG5leHRUZXh0OiJOZXh0IixjdXJyZW50VGV4dDoiVG9kYXkiLG1vbnRoTmFtZXM6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdLG1vbnRoTmFtZXNTaG9ydDpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLGRheU5hbWVzOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXSxkYXlOYW1lc1Nob3J0OlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sZGF5TmFtZXNNaW46WyJTdSIsIk1vIiwiVHUiLCJXZSIsIlRoIiwiRnIiLCJTYSJdLHdlZWtIZWFkZXI6IldrIixkYXRlRm9ybWF0OiJtbS9kZC95eSIsZmlyc3REYXk6MCxpc1JUTDohMSxzaG93TW9udGhBZnRlclllYXI6ITEseWVhclN1ZmZpeDoiIn0sdGhpcy5fZGVmYXVsdHM9e3Nob3dPbjoiZm9jdXMiLHNob3dBbmltOiJmYWRlSW4iLHNob3dPcHRpb25zOnt9LGRlZmF1bHREYXRlOm51bGwsYXBwZW5kVGV4dDoiIixidXR0b25UZXh0OiIuLi4iLGJ1dHRvbkltYWdlOiIiLGJ1dHRvbkltYWdlT25seTohMSxoaWRlSWZOb1ByZXZOZXh0OiExLG5hdmlnYXRpb25Bc0RhdGVGb3JtYXQ6ITEsZ290b0N1cnJlbnQ6ITEsY2hhbmdlTW9udGg6ITEsY2hhbmdlWWVhcjohMSx5ZWFyUmFuZ2U6ImMtMTA6YysxMCIsc2hvd090aGVyTW9udGhzOiExLHNlbGVjdE90aGVyTW9udGhzOiExLHNob3dXZWVrOiExLGNhbGN1bGF0ZVdlZWs6dGhpcy5pc284NjAxV2VlayxzaG9ydFllYXJDdXRvZmY6IisxMCIsbWluRGF0ZTpudWxsLG1heERhdGU6bnVsbCxkdXJhdGlvbjoiZmFzdCIsYmVmb3JlU2hvd0RheTpudWxsLGJlZm9yZVNob3c6bnVsbCxvblNlbGVjdDpudWxsLG9uQ2hhbmdlTW9udGhZZWFyOm51bGwsb25DbG9zZTpudWxsLG51bWJlck9mTW9udGhzOjEsc2hvd0N1cnJlbnRBdFBvczowLHN0ZXBNb250aHM6MSxzdGVwQmlnTW9udGhzOjEyLGFsdEZpZWxkOiIiLGFsdEZvcm1hdDoiIixjb25zdHJhaW5JbnB1dDohMCxzaG93QnV0dG9uUGFuZWw6ITEsYXV0b1NpemU6ITEsZGlzYWJsZWQ6ITF9LGUuZXh0ZW5kKHRoaXMuX2RlZmF1bHRzLHRoaXMucmVnaW9uYWxbIiJdKSx0aGlzLnJlZ2lvbmFsLmVuPWUuZXh0ZW5kKCEwLHt9LHRoaXMucmVnaW9uYWxbIiJdKSx0aGlzLnJlZ2lvbmFsWyJlbi1VUyJdPWUuZXh0ZW5kKCEwLHt9LHRoaXMucmVnaW9uYWwuZW4pLHRoaXMuZHBEaXY9YShlKCI8ZGl2IGlkPSciK3RoaXMuX21haW5EaXZJZCsiJyBjbGFzcz0ndWktZGF0ZXBpY2tlciB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktaGVscGVyLWNsZWFyZml4IHVpLWNvcm5lci1hbGwnPjwvZGl2PiIpKX1mdW5jdGlvbiBhKHQpe3ZhciBpPSJidXR0b24sIC51aS1kYXRlcGlja2VyLXByZXYsIC51aS1kYXRlcGlja2VyLW5leHQsIC51aS1kYXRlcGlja2VyLWNhbGVuZGFyIHRkIGEiO3JldHVybiB0LmRlbGVnYXRlKGksIm1vdXNlb3V0IixmdW5jdGlvbigpe2UodGhpcykucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWhvdmVyIiksLTEhPT10aGlzLmNsYXNzTmFtZS5pbmRleE9mKCJ1aS1kYXRlcGlja2VyLXByZXYiKSYmZSh0aGlzKS5yZW1vdmVDbGFzcygidWktZGF0ZXBpY2tlci1wcmV2LWhvdmVyIiksLTEhPT10aGlzLmNsYXNzTmFtZS5pbmRleE9mKCJ1aS1kYXRlcGlja2VyLW5leHQiKSYmZSh0aGlzKS5yZW1vdmVDbGFzcygidWktZGF0ZXBpY2tlci1uZXh0LWhvdmVyIil9KS5kZWxlZ2F0ZShpLCJtb3VzZW92ZXIiLG8pfWZ1bmN0aW9uIG8oKXtlLmRhdGVwaWNrZXIuX2lzRGlzYWJsZWREYXRlcGlja2VyKHYuaW5saW5lP3YuZHBEaXYucGFyZW50KClbMF06di5pbnB1dFswXSl8fChlKHRoaXMpLnBhcmVudHMoIi51aS1kYXRlcGlja2VyLWNhbGVuZGFyIikuZmluZCgiYSIpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1ob3ZlciIpLGUodGhpcykuYWRkQ2xhc3MoInVpLXN0YXRlLWhvdmVyIiksLTEhPT10aGlzLmNsYXNzTmFtZS5pbmRleE9mKCJ1aS1kYXRlcGlja2VyLXByZXYiKSYmZSh0aGlzKS5hZGRDbGFzcygidWktZGF0ZXBpY2tlci1wcmV2LWhvdmVyIiksLTEhPT10aGlzLmNsYXNzTmFtZS5pbmRleE9mKCJ1aS1kYXRlcGlja2VyLW5leHQiKSYmZSh0aGlzKS5hZGRDbGFzcygidWktZGF0ZXBpY2tlci1uZXh0LWhvdmVyIikpfWZ1bmN0aW9uIHIodCxpKXtlLmV4dGVuZCh0LGkpO2Zvcih2YXIgcyBpbiBpKW51bGw9PWlbc10mJih0W3NdPWlbc10pO3JldHVybiB0fWZ1bmN0aW9uIGgoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lbGVtZW50LnZhbCgpO2UuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuX3JlZnJlc2goKSx0IT09dGhpcy5lbGVtZW50LnZhbCgpJiZ0aGlzLl90cmlnZ2VyKCJjaGFuZ2UiKX19ZS51aT1lLnVpfHx7fSxlLmV4dGVuZChlLnVpLHt2ZXJzaW9uOiIxLjExLjQiLGtleUNvZGU6e0JBQ0tTUEFDRTo4LENPTU1BOjE4OCxERUxFVEU6NDYsRE9XTjo0MCxFTkQ6MzUsRU5URVI6MTMsRVNDQVBFOjI3LEhPTUU6MzYsTEVGVDozNyxQQUdFX0RPV046MzQsUEFHRV9VUDozMyxQRVJJT0Q6MTkwLFJJR0hUOjM5LFNQQUNFOjMyLFRBQjo5LFVQOjM4fX0pLGUuZm4uZXh0ZW5kKHtzY3JvbGxQYXJlbnQ6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5jc3MoInBvc2l0aW9uIikscz0iYWJzb2x1dGUiPT09aSxuPXQ/LyhhdXRvfHNjcm9sbHxoaWRkZW4pLzovKGF1dG98c2Nyb2xsKS8sYT10aGlzLnBhcmVudHMoKS5maWx0ZXIoZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpO3JldHVybiBzJiYic3RhdGljIj09PXQuY3NzKCJwb3NpdGlvbiIpPyExOm4udGVzdCh0LmNzcygib3ZlcmZsb3ciKSt0LmNzcygib3ZlcmZsb3cteSIpK3QuY3NzKCJvdmVyZmxvdy14IikpfSkuZXEoMCk7cmV0dXJuImZpeGVkIiE9PWkmJmEubGVuZ3RoP2E6ZSh0aGlzWzBdLm93bmVyRG9jdW1lbnR8fGRvY3VtZW50KX0sdW5pcXVlSWQ6ZnVuY3Rpb24oKXt2YXIgZT0wO3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt0aGlzLmlkfHwodGhpcy5pZD0idWktaWQtIisgKytlKX0pfX0oKSxyZW1vdmVVbmlxdWVJZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXsvXnVpLWlkLVxkKyQvLnRlc3QodGhpcy5pZCkmJmUodGhpcykucmVtb3ZlQXR0cigiaWQiKX0pfX0pLGUuZXh0ZW5kKGUuZXhwclsiOiJdLHtkYXRhOmUuZXhwci5jcmVhdGVQc2V1ZG8/ZS5leHByLmNyZWF0ZVBzZXVkbyhmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oaSl7cmV0dXJuISFlLmRhdGEoaSx0KX19KTpmdW5jdGlvbih0LGkscyl7cmV0dXJuISFlLmRhdGEodCxzWzNdKX0sZm9jdXNhYmxlOmZ1bmN0aW9uKGkpe3JldHVybiB0KGksIWlzTmFOKGUuYXR0cihpLCJ0YWJpbmRleCIpKSl9LHRhYmJhYmxlOmZ1bmN0aW9uKGkpe3ZhciBzPWUuYXR0cihpLCJ0YWJpbmRleCIpLG49aXNOYU4ocyk7cmV0dXJuKG58fHM+PTApJiZ0KGksIW4pfX0pLGUoIjxhPiIpLm91dGVyV2lkdGgoMSkuanF1ZXJ5fHxlLmVhY2goWyJXaWR0aCIsIkhlaWdodCJdLGZ1bmN0aW9uKHQsaSl7ZnVuY3Rpb24gcyh0LGkscyxhKXtyZXR1cm4gZS5lYWNoKG4sZnVuY3Rpb24oKXtpLT1wYXJzZUZsb2F0KGUuY3NzKHQsInBhZGRpbmciK3RoaXMpKXx8MCxzJiYoaS09cGFyc2VGbG9hdChlLmNzcyh0LCJib3JkZXIiK3RoaXMrIldpZHRoIikpfHwwKSxhJiYoaS09cGFyc2VGbG9hdChlLmNzcyh0LCJtYXJnaW4iK3RoaXMpKXx8MCl9KSxpfXZhciBuPSJXaWR0aCI9PT1pP1siTGVmdCIsIlJpZ2h0Il06WyJUb3AiLCJCb3R0b20iXSxhPWkudG9Mb3dlckNhc2UoKSxvPXtpbm5lcldpZHRoOmUuZm4uaW5uZXJXaWR0aCxpbm5lckhlaWdodDplLmZuLmlubmVySGVpZ2h0LG91dGVyV2lkdGg6ZS5mbi5vdXRlcldpZHRoLG91dGVySGVpZ2h0OmUuZm4ub3V0ZXJIZWlnaHR9O2UuZm5bImlubmVyIitpXT1mdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwPT09dD9vWyJpbm5lciIraV0uY2FsbCh0aGlzKTp0aGlzLmVhY2goZnVuY3Rpb24oKXtlKHRoaXMpLmNzcyhhLHModGhpcyx0KSsicHgiKX0pfSxlLmZuWyJvdXRlciIraV09ZnVuY3Rpb24odCxuKXtyZXR1cm4ibnVtYmVyIiE9dHlwZW9mIHQ/b1sib3V0ZXIiK2ldLmNhbGwodGhpcyx0KTp0aGlzLmVhY2goZnVuY3Rpb24oKXtlKHRoaXMpLmNzcyhhLHModGhpcyx0LCEwLG4pKyJweCIpfSl9fSksZS5mbi5hZGRCYWNrfHwoZS5mbi5hZGRCYWNrPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmFkZChudWxsPT1lP3RoaXMucHJldk9iamVjdDp0aGlzLnByZXZPYmplY3QuZmlsdGVyKGUpKX0pLGUoIjxhPiIpLmRhdGEoImEtYiIsImEiKS5yZW1vdmVEYXRhKCJhLWIiKS5kYXRhKCJhLWIiKSYmKGUuZm4ucmVtb3ZlRGF0YT1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oaSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dC5jYWxsKHRoaXMsZS5jYW1lbENhc2UoaSkpOnQuY2FsbCh0aGlzKX19KGUuZm4ucmVtb3ZlRGF0YSkpLGUudWkuaWU9ISEvbXNpZSBbXHcuXSsvLmV4ZWMobmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpKSxlLmZuLmV4dGVuZCh7Zm9jdXM6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGkscyl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBpP3RoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PXRoaXM7c2V0VGltZW91dChmdW5jdGlvbigpe2UodCkuZm9jdXMoKSxzJiZzLmNhbGwodCl9LGkpfSk6dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fShlLmZuLmZvY3VzKSxkaXNhYmxlU2VsZWN0aW9uOmZ1bmN0aW9uKCl7dmFyIGU9Im9uc2VsZWN0c3RhcnQiaW4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik/InNlbGVjdHN0YXJ0IjoibW91c2Vkb3duIjtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5iaW5kKGUrIi51aS1kaXNhYmxlU2VsZWN0aW9uIixmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCl9KX19KCksZW5hYmxlU2VsZWN0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudW5iaW5kKCIudWktZGlzYWJsZVNlbGVjdGlvbiIpfSx6SW5kZXg6ZnVuY3Rpb24odCl7aWYodm9pZCAwIT09dClyZXR1cm4gdGhpcy5jc3MoInpJbmRleCIsdCk7aWYodGhpcy5sZW5ndGgpZm9yKHZhciBpLHMsbj1lKHRoaXNbMF0pO24ubGVuZ3RoJiZuWzBdIT09ZG9jdW1lbnQ7KXtpZihpPW4uY3NzKCJwb3NpdGlvbiIpLCgiYWJzb2x1dGUiPT09aXx8InJlbGF0aXZlIj09PWl8fCJmaXhlZCI9PT1pKSYmKHM9cGFyc2VJbnQobi5jc3MoInpJbmRleCIpLDEwKSwhaXNOYU4ocykmJjAhPT1zKSlyZXR1cm4gcztuPW4ucGFyZW50KCl9cmV0dXJuIDB9fSksZS51aS5wbHVnaW49e2FkZDpmdW5jdGlvbih0LGkscyl7dmFyIG4sYT1lLnVpW3RdLnByb3RvdHlwZTtmb3IobiBpbiBzKWEucGx1Z2luc1tuXT1hLnBsdWdpbnNbbl18fFtdLGEucGx1Z2luc1tuXS5wdXNoKFtpLHNbbl1dKX0sY2FsbDpmdW5jdGlvbihlLHQsaSxzKXt2YXIgbixhPWUucGx1Z2luc1t0XTtpZihhJiYoc3x8ZS5lbGVtZW50WzBdLnBhcmVudE5vZGUmJjExIT09ZS5lbGVtZW50WzBdLnBhcmVudE5vZGUubm9kZVR5cGUpKWZvcihuPTA7YS5sZW5ndGg+bjtuKyspZS5vcHRpb25zW2Fbbl1bMF1dJiZhW25dWzFdLmFwcGx5KGUuZWxlbWVudCxpKX19O3ZhciBsPTAsdT1BcnJheS5wcm90b3R5cGUuc2xpY2U7ZS5jbGVhbkRhdGE9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGkpe3ZhciBzLG4sYTtmb3IoYT0wO251bGwhPShuPWlbYV0pO2ErKyl0cnl7cz1lLl9kYXRhKG4sImV2ZW50cyIpLHMmJnMucmVtb3ZlJiZlKG4pLnRyaWdnZXJIYW5kbGVyKCJyZW1vdmUiKX1jYXRjaChvKXt9dChpKX19KGUuY2xlYW5EYXRhKSxlLndpZGdldD1mdW5jdGlvbih0LGkscyl7dmFyIG4sYSxvLHIsaD17fSxsPXQuc3BsaXQoIi4iKVswXTtyZXR1cm4gdD10LnNwbGl0KCIuIilbMV0sbj1sKyItIit0LHN8fChzPWksaT1lLldpZGdldCksZS5leHByWyI6Il1bbi50b0xvd2VyQ2FzZSgpXT1mdW5jdGlvbih0KXtyZXR1cm4hIWUuZGF0YSh0LG4pfSxlW2xdPWVbbF18fHt9LGE9ZVtsXVt0XSxvPWVbbF1bdF09ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fY3JlYXRlV2lkZ2V0Pyhhcmd1bWVudHMubGVuZ3RoJiZ0aGlzLl9jcmVhdGVXaWRnZXQoZSx0KSx2b2lkIDApOm5ldyBvKGUsdCl9LGUuZXh0ZW5kKG8sYSx7dmVyc2lvbjpzLnZlcnNpb24sX3Byb3RvOmUuZXh0ZW5kKHt9LHMpLF9jaGlsZENvbnN0cnVjdG9yczpbXX0pLHI9bmV3IGksci5vcHRpb25zPWUud2lkZ2V0LmV4dGVuZCh7fSxyLm9wdGlvbnMpLGUuZWFjaChzLGZ1bmN0aW9uKHQscyl7cmV0dXJuIGUuaXNGdW5jdGlvbihzKT8oaFt0XT1mdW5jdGlvbigpe3ZhciBlPWZ1bmN0aW9uKCl7cmV0dXJuIGkucHJvdG90eXBlW3RdLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sbj1mdW5jdGlvbihlKXtyZXR1cm4gaS5wcm90b3R5cGVbdF0uYXBwbHkodGhpcyxlKX07cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQsaT10aGlzLl9zdXBlcixhPXRoaXMuX3N1cGVyQXBwbHk7cmV0dXJuIHRoaXMuX3N1cGVyPWUsdGhpcy5fc3VwZXJBcHBseT1uLHQ9cy5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5fc3VwZXI9aSx0aGlzLl9zdXBlckFwcGx5PWEsdH19KCksdm9pZCAwKTooaFt0XT1zLHZvaWQgMCl9KSxvLnByb3RvdHlwZT1lLndpZGdldC5leHRlbmQocix7d2lkZ2V0RXZlbnRQcmVmaXg6YT9yLndpZGdldEV2ZW50UHJlZml4fHx0OnR9LGgse2NvbnN0cnVjdG9yOm8sbmFtZXNwYWNlOmwsd2lkZ2V0TmFtZTp0LHdpZGdldEZ1bGxOYW1lOm59KSxhPyhlLmVhY2goYS5fY2hpbGRDb25zdHJ1Y3RvcnMsZnVuY3Rpb24odCxpKXt2YXIgcz1pLnByb3RvdHlwZTtlLndpZGdldChzLm5hbWVzcGFjZSsiLiIrcy53aWRnZXROYW1lLG8saS5fcHJvdG8pfSksZGVsZXRlIGEuX2NoaWxkQ29uc3RydWN0b3JzKTppLl9jaGlsZENvbnN0cnVjdG9ycy5wdXNoKG8pLGUud2lkZ2V0LmJyaWRnZSh0LG8pLG99LGUud2lkZ2V0LmV4dGVuZD1mdW5jdGlvbih0KXtmb3IodmFyIGkscyxuPXUuY2FsbChhcmd1bWVudHMsMSksYT0wLG89bi5sZW5ndGg7bz5hO2ErKylmb3IoaSBpbiBuW2FdKXM9blthXVtpXSxuW2FdLmhhc093blByb3BlcnR5KGkpJiZ2b2lkIDAhPT1zJiYodFtpXT1lLmlzUGxhaW5PYmplY3Qocyk/ZS5pc1BsYWluT2JqZWN0KHRbaV0pP2Uud2lkZ2V0LmV4dGVuZCh7fSx0W2ldLHMpOmUud2lkZ2V0LmV4dGVuZCh7fSxzKTpzKTtyZXR1cm4gdH0sZS53aWRnZXQuYnJpZGdlPWZ1bmN0aW9uKHQsaSl7dmFyIHM9aS5wcm90b3R5cGUud2lkZ2V0RnVsbE5hbWV8fHQ7ZS5mblt0XT1mdW5jdGlvbihuKXt2YXIgYT0ic3RyaW5nIj09dHlwZW9mIG4sbz11LmNhbGwoYXJndW1lbnRzLDEpLHI9dGhpcztyZXR1cm4gYT90aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgaSxhPWUuZGF0YSh0aGlzLHMpO3JldHVybiJpbnN0YW5jZSI9PT1uPyhyPWEsITEpOmE/ZS5pc0Z1bmN0aW9uKGFbbl0pJiYiXyIhPT1uLmNoYXJBdCgwKT8oaT1hW25dLmFwcGx5KGEsbyksaSE9PWEmJnZvaWQgMCE9PWk/KHI9aSYmaS5qcXVlcnk/ci5wdXNoU3RhY2soaS5nZXQoKSk6aSwhMSk6dm9pZCAwKTplLmVycm9yKCJubyBzdWNoIG1ldGhvZCAnIituKyInIGZvciAiK3QrIiB3aWRnZXQgaW5zdGFuY2UiKTplLmVycm9yKCJjYW5ub3QgY2FsbCBtZXRob2RzIG9uICIrdCsiIHByaW9yIHRvIGluaXRpYWxpemF0aW9uOyAiKyJhdHRlbXB0ZWQgdG8gY2FsbCBtZXRob2QgJyIrbisiJyIpfSk6KG8ubGVuZ3RoJiYobj1lLndpZGdldC5leHRlbmQuYXBwbHkobnVsbCxbbl0uY29uY2F0KG8pKSksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9ZS5kYXRhKHRoaXMscyk7dD8odC5vcHRpb24obnx8e30pLHQuX2luaXQmJnQuX2luaXQoKSk6ZS5kYXRhKHRoaXMscyxuZXcgaShuLHRoaXMpKX0pKSxyfX0sZS5XaWRnZXQ9ZnVuY3Rpb24oKXt9LGUuV2lkZ2V0Ll9jaGlsZENvbnN0cnVjdG9ycz1bXSxlLldpZGdldC5wcm90b3R5cGU9e3dpZGdldE5hbWU6IndpZGdldCIsd2lkZ2V0RXZlbnRQcmVmaXg6IiIsZGVmYXVsdEVsZW1lbnQ6IjxkaXY+IixvcHRpb25zOntkaXNhYmxlZDohMSxjcmVhdGU6bnVsbH0sX2NyZWF0ZVdpZGdldDpmdW5jdGlvbih0LGkpe2k9ZShpfHx0aGlzLmRlZmF1bHRFbGVtZW50fHx0aGlzKVswXSx0aGlzLmVsZW1lbnQ9ZShpKSx0aGlzLnV1aWQ9bCsrLHRoaXMuZXZlbnROYW1lc3BhY2U9Ii4iK3RoaXMud2lkZ2V0TmFtZSt0aGlzLnV1aWQsdGhpcy5iaW5kaW5ncz1lKCksdGhpcy5ob3ZlcmFibGU9ZSgpLHRoaXMuZm9jdXNhYmxlPWUoKSxpIT09dGhpcyYmKGUuZGF0YShpLHRoaXMud2lkZ2V0RnVsbE5hbWUsdGhpcyksdGhpcy5fb24oITAsdGhpcy5lbGVtZW50LHtyZW1vdmU6ZnVuY3Rpb24oZSl7ZS50YXJnZXQ9PT1pJiZ0aGlzLmRlc3Ryb3koKX19KSx0aGlzLmRvY3VtZW50PWUoaS5zdHlsZT9pLm93bmVyRG9jdW1lbnQ6aS5kb2N1bWVudHx8aSksdGhpcy53aW5kb3c9ZSh0aGlzLmRvY3VtZW50WzBdLmRlZmF1bHRWaWV3fHx0aGlzLmRvY3VtZW50WzBdLnBhcmVudFdpbmRvdykpLHRoaXMub3B0aW9ucz1lLndpZGdldC5leHRlbmQoe30sdGhpcy5vcHRpb25zLHRoaXMuX2dldENyZWF0ZU9wdGlvbnMoKSx0KSx0aGlzLl9jcmVhdGUoKSx0aGlzLl90cmlnZ2VyKCJjcmVhdGUiLG51bGwsdGhpcy5fZ2V0Q3JlYXRlRXZlbnREYXRhKCkpLHRoaXMuX2luaXQoKX0sX2dldENyZWF0ZU9wdGlvbnM6ZS5ub29wLF9nZXRDcmVhdGVFdmVudERhdGE6ZS5ub29wLF9jcmVhdGU6ZS5ub29wLF9pbml0OmUubm9vcCxkZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5fZGVzdHJveSgpLHRoaXMuZWxlbWVudC51bmJpbmQodGhpcy5ldmVudE5hbWVzcGFjZSkucmVtb3ZlRGF0YSh0aGlzLndpZGdldEZ1bGxOYW1lKS5yZW1vdmVEYXRhKGUuY2FtZWxDYXNlKHRoaXMud2lkZ2V0RnVsbE5hbWUpKSx0aGlzLndpZGdldCgpLnVuYmluZCh0aGlzLmV2ZW50TmFtZXNwYWNlKS5yZW1vdmVBdHRyKCJhcmlhLWRpc2FibGVkIikucmVtb3ZlQ2xhc3ModGhpcy53aWRnZXRGdWxsTmFtZSsiLWRpc2FibGVkICIrInVpLXN0YXRlLWRpc2FibGVkIiksdGhpcy5iaW5kaW5ncy51bmJpbmQodGhpcy5ldmVudE5hbWVzcGFjZSksdGhpcy5ob3ZlcmFibGUucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWhvdmVyIiksdGhpcy5mb2N1c2FibGUucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWZvY3VzIil9LF9kZXN0cm95OmUubm9vcCx3aWRnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbGVtZW50fSxvcHRpb246ZnVuY3Rpb24odCxpKXt2YXIgcyxuLGEsbz10O2lmKDA9PT1hcmd1bWVudHMubGVuZ3RoKXJldHVybiBlLndpZGdldC5leHRlbmQoe30sdGhpcy5vcHRpb25zKTtpZigic3RyaW5nIj09dHlwZW9mIHQpaWYobz17fSxzPXQuc3BsaXQoIi4iKSx0PXMuc2hpZnQoKSxzLmxlbmd0aCl7Zm9yKG49b1t0XT1lLndpZGdldC5leHRlbmQoe30sdGhpcy5vcHRpb25zW3RdKSxhPTA7cy5sZW5ndGgtMT5hO2ErKyluW3NbYV1dPW5bc1thXV18fHt9LG49bltzW2FdXTtpZih0PXMucG9wKCksMT09PWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHZvaWQgMD09PW5bdF0/bnVsbDpuW3RdO25bdF09aX1lbHNle2lmKDE9PT1hcmd1bWVudHMubGVuZ3RoKXJldHVybiB2b2lkIDA9PT10aGlzLm9wdGlvbnNbdF0/bnVsbDp0aGlzLm9wdGlvbnNbdF07b1t0XT1pfXJldHVybiB0aGlzLl9zZXRPcHRpb25zKG8pLHRoaXN9LF9zZXRPcHRpb25zOmZ1bmN0aW9uKGUpe3ZhciB0O2Zvcih0IGluIGUpdGhpcy5fc2V0T3B0aW9uKHQsZVt0XSk7cmV0dXJuIHRoaXN9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5vcHRpb25zW2VdPXQsImRpc2FibGVkIj09PWUmJih0aGlzLndpZGdldCgpLnRvZ2dsZUNsYXNzKHRoaXMud2lkZ2V0RnVsbE5hbWUrIi1kaXNhYmxlZCIsISF0KSx0JiYodGhpcy5ob3ZlcmFibGUucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWhvdmVyIiksdGhpcy5mb2N1c2FibGUucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWZvY3VzIikpKSx0aGlzfSxlbmFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2V0T3B0aW9ucyh7ZGlzYWJsZWQ6ITF9KX0sZGlzYWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zZXRPcHRpb25zKHtkaXNhYmxlZDohMH0pfSxfb246ZnVuY3Rpb24odCxpLHMpe3ZhciBuLGE9dGhpczsiYm9vbGVhbiIhPXR5cGVvZiB0JiYocz1pLGk9dCx0PSExKSxzPyhpPW49ZShpKSx0aGlzLmJpbmRpbmdzPXRoaXMuYmluZGluZ3MuYWRkKGkpKToocz1pLGk9dGhpcy5lbGVtZW50LG49dGhpcy53aWRnZXQoKSksZS5lYWNoKHMsZnVuY3Rpb24ocyxvKXtmdW5jdGlvbiByKCl7cmV0dXJuIHR8fGEub3B0aW9ucy5kaXNhYmxlZCE9PSEwJiYhZSh0aGlzKS5oYXNDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiKT8oInN0cmluZyI9PXR5cGVvZiBvP2Fbb106bykuYXBwbHkoYSxhcmd1bWVudHMpOnZvaWQgMH0ic3RyaW5nIiE9dHlwZW9mIG8mJihyLmd1aWQ9by5ndWlkPW8uZ3VpZHx8ci5ndWlkfHxlLmd1aWQrKyk7dmFyIGg9cy5tYXRjaCgvXihbXHc6LV0qKVxzKiguKikkLyksbD1oWzFdK2EuZXZlbnROYW1lc3BhY2UsdT1oWzJdO3U/bi5kZWxlZ2F0ZSh1LGwscik6aS5iaW5kKGwscil9KX0sX29mZjpmdW5jdGlvbih0LGkpe2k9KGl8fCIiKS5zcGxpdCgiICIpLmpvaW4odGhpcy5ldmVudE5hbWVzcGFjZSsiICIpK3RoaXMuZXZlbnROYW1lc3BhY2UsdC51bmJpbmQoaSkudW5kZWxlZ2F0ZShpKSx0aGlzLmJpbmRpbmdzPWUodGhpcy5iaW5kaW5ncy5ub3QodCkuZ2V0KCkpLHRoaXMuZm9jdXNhYmxlPWUodGhpcy5mb2N1c2FibGUubm90KHQpLmdldCgpKSx0aGlzLmhvdmVyYWJsZT1lKHRoaXMuaG92ZXJhYmxlLm5vdCh0KS5nZXQoKSl9LF9kZWxheTpmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIGkoKXtyZXR1cm4oInN0cmluZyI9PXR5cGVvZiBlP3NbZV06ZSkuYXBwbHkocyxhcmd1bWVudHMpfXZhciBzPXRoaXM7cmV0dXJuIHNldFRpbWVvdXQoaSx0fHwwKX0sX2hvdmVyYWJsZTpmdW5jdGlvbih0KXt0aGlzLmhvdmVyYWJsZT10aGlzLmhvdmVyYWJsZS5hZGQodCksdGhpcy5fb24odCx7bW91c2VlbnRlcjpmdW5jdGlvbih0KXtlKHQuY3VycmVudFRhcmdldCkuYWRkQ2xhc3MoInVpLXN0YXRlLWhvdmVyIil9LG1vdXNlbGVhdmU6ZnVuY3Rpb24odCl7ZSh0LmN1cnJlbnRUYXJnZXQpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1ob3ZlciIpfX0pfSxfZm9jdXNhYmxlOmZ1bmN0aW9uKHQpe3RoaXMuZm9jdXNhYmxlPXRoaXMuZm9jdXNhYmxlLmFkZCh0KSx0aGlzLl9vbih0LHtmb2N1c2luOmZ1bmN0aW9uKHQpe2UodC5jdXJyZW50VGFyZ2V0KS5hZGRDbGFzcygidWktc3RhdGUtZm9jdXMiKX0sZm9jdXNvdXQ6ZnVuY3Rpb24odCl7ZSh0LmN1cnJlbnRUYXJnZXQpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpfX0pfSxfdHJpZ2dlcjpmdW5jdGlvbih0LGkscyl7dmFyIG4sYSxvPXRoaXMub3B0aW9uc1t0XTtpZihzPXN8fHt9LGk9ZS5FdmVudChpKSxpLnR5cGU9KHQ9PT10aGlzLndpZGdldEV2ZW50UHJlZml4P3Q6dGhpcy53aWRnZXRFdmVudFByZWZpeCt0KS50b0xvd2VyQ2FzZSgpLGkudGFyZ2V0PXRoaXMuZWxlbWVudFswXSxhPWkub3JpZ2luYWxFdmVudClmb3IobiBpbiBhKW4gaW4gaXx8KGlbbl09YVtuXSk7cmV0dXJuIHRoaXMuZWxlbWVudC50cmlnZ2VyKGkscyksIShlLmlzRnVuY3Rpb24obykmJm8uYXBwbHkodGhpcy5lbGVtZW50WzBdLFtpXS5jb25jYXQocykpPT09ITF8fGkuaXNEZWZhdWx0UHJldmVudGVkKCkpfX0sZS5lYWNoKHtzaG93OiJmYWRlSW4iLGhpZGU6ImZhZGVPdXQifSxmdW5jdGlvbih0LGkpe2UuV2lkZ2V0LnByb3RvdHlwZVsiXyIrdF09ZnVuY3Rpb24ocyxuLGEpeyJzdHJpbmciPT10eXBlb2YgbiYmKG49e2VmZmVjdDpufSk7dmFyIG8scj1uP249PT0hMHx8Im51bWJlciI9PXR5cGVvZiBuP2k6bi5lZmZlY3R8fGk6dDtuPW58fHt9LCJudW1iZXIiPT10eXBlb2YgbiYmKG49e2R1cmF0aW9uOm59KSxvPSFlLmlzRW1wdHlPYmplY3Qobiksbi5jb21wbGV0ZT1hLG4uZGVsYXkmJnMuZGVsYXkobi5kZWxheSksbyYmZS5lZmZlY3RzJiZlLmVmZmVjdHMuZWZmZWN0W3JdP3NbdF0obik6ciE9PXQmJnNbcl0/c1tyXShuLmR1cmF0aW9uLG4uZWFzaW5nLGEpOnMucXVldWUoZnVuY3Rpb24oaSl7ZSh0aGlzKVt0XSgpLGEmJmEuY2FsbChzWzBdKSxpKCl9KX19KSxlLndpZGdldDt2YXIgZD0hMTtlKGRvY3VtZW50KS5tb3VzZXVwKGZ1bmN0aW9uKCl7ZD0hMX0pLGUud2lkZ2V0KCJ1aS5tb3VzZSIse3ZlcnNpb246IjEuMTEuNCIsb3B0aW9uczp7Y2FuY2VsOiJpbnB1dCx0ZXh0YXJlYSxidXR0b24sc2VsZWN0LG9wdGlvbiIsZGlzdGFuY2U6MSxkZWxheTowfSxfbW91c2VJbml0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLmVsZW1lbnQuYmluZCgibW91c2Vkb3duLiIrdGhpcy53aWRnZXROYW1lLGZ1bmN0aW9uKGUpe3JldHVybiB0Ll9tb3VzZURvd24oZSl9KS5iaW5kKCJjbGljay4iK3RoaXMud2lkZ2V0TmFtZSxmdW5jdGlvbihpKXtyZXR1cm4hMD09PWUuZGF0YShpLnRhcmdldCx0LndpZGdldE5hbWUrIi5wcmV2ZW50Q2xpY2tFdmVudCIpPyhlLnJlbW92ZURhdGEoaS50YXJnZXQsdC53aWRnZXROYW1lKyIucHJldmVudENsaWNrRXZlbnQiKSxpLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpLCExKTp2b2lkIDB9KSx0aGlzLnN0YXJ0ZWQ9ITF9LF9tb3VzZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQudW5iaW5kKCIuIit0aGlzLndpZGdldE5hbWUpLHRoaXMuX21vdXNlTW92ZURlbGVnYXRlJiZ0aGlzLmRvY3VtZW50LnVuYmluZCgibW91c2Vtb3ZlLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlTW92ZURlbGVnYXRlKS51bmJpbmQoIm1vdXNldXAuIit0aGlzLndpZGdldE5hbWUsdGhpcy5fbW91c2VVcERlbGVnYXRlKX0sX21vdXNlRG93bjpmdW5jdGlvbih0KXtpZighZCl7dGhpcy5fbW91c2VNb3ZlZD0hMSx0aGlzLl9tb3VzZVN0YXJ0ZWQmJnRoaXMuX21vdXNlVXAodCksdGhpcy5fbW91c2VEb3duRXZlbnQ9dDt2YXIgaT10aGlzLHM9MT09PXQud2hpY2gsbj0ic3RyaW5nIj09dHlwZW9mIHRoaXMub3B0aW9ucy5jYW5jZWwmJnQudGFyZ2V0Lm5vZGVOYW1lP2UodC50YXJnZXQpLmNsb3Nlc3QodGhpcy5vcHRpb25zLmNhbmNlbCkubGVuZ3RoOiExO3JldHVybiBzJiYhbiYmdGhpcy5fbW91c2VDYXB0dXJlKHQpPyh0aGlzLm1vdXNlRGVsYXlNZXQ9IXRoaXMub3B0aW9ucy5kZWxheSx0aGlzLm1vdXNlRGVsYXlNZXR8fCh0aGlzLl9tb3VzZURlbGF5VGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe2kubW91c2VEZWxheU1ldD0hMH0sdGhpcy5vcHRpb25zLmRlbGF5KSksdGhpcy5fbW91c2VEaXN0YW5jZU1ldCh0KSYmdGhpcy5fbW91c2VEZWxheU1ldCh0KSYmKHRoaXMuX21vdXNlU3RhcnRlZD10aGlzLl9tb3VzZVN0YXJ0KHQpIT09ITEsIXRoaXMuX21vdXNlU3RhcnRlZCk/KHQucHJldmVudERlZmF1bHQoKSwhMCk6KCEwPT09ZS5kYXRhKHQudGFyZ2V0LHRoaXMud2lkZ2V0TmFtZSsiLnByZXZlbnRDbGlja0V2ZW50IikmJmUucmVtb3ZlRGF0YSh0LnRhcmdldCx0aGlzLndpZGdldE5hbWUrIi5wcmV2ZW50Q2xpY2tFdmVudCIpLHRoaXMuX21vdXNlTW92ZURlbGVnYXRlPWZ1bmN0aW9uKGUpe3JldHVybiBpLl9tb3VzZU1vdmUoZSl9LHRoaXMuX21vdXNlVXBEZWxlZ2F0ZT1mdW5jdGlvbihlKXtyZXR1cm4gaS5fbW91c2VVcChlKX0sdGhpcy5kb2N1bWVudC5iaW5kKCJtb3VzZW1vdmUuIit0aGlzLndpZGdldE5hbWUsdGhpcy5fbW91c2VNb3ZlRGVsZWdhdGUpLmJpbmQoIm1vdXNldXAuIit0aGlzLndpZGdldE5hbWUsdGhpcy5fbW91c2VVcERlbGVnYXRlKSx0LnByZXZlbnREZWZhdWx0KCksZD0hMCwhMCkpOiEwfX0sX21vdXNlTW92ZTpmdW5jdGlvbih0KXtpZih0aGlzLl9tb3VzZU1vdmVkKXtpZihlLnVpLmllJiYoIWRvY3VtZW50LmRvY3VtZW50TW9kZXx8OT5kb2N1bWVudC5kb2N1bWVudE1vZGUpJiYhdC5idXR0b24pcmV0dXJuIHRoaXMuX21vdXNlVXAodCk7aWYoIXQud2hpY2gpcmV0dXJuIHRoaXMuX21vdXNlVXAodCl9cmV0dXJuKHQud2hpY2h8fHQuYnV0dG9uKSYmKHRoaXMuX21vdXNlTW92ZWQ9ITApLHRoaXMuX21vdXNlU3RhcnRlZD8odGhpcy5fbW91c2VEcmFnKHQpLHQucHJldmVudERlZmF1bHQoKSk6KHRoaXMuX21vdXNlRGlzdGFuY2VNZXQodCkmJnRoaXMuX21vdXNlRGVsYXlNZXQodCkmJih0aGlzLl9tb3VzZVN0YXJ0ZWQ9dGhpcy5fbW91c2VTdGFydCh0aGlzLl9tb3VzZURvd25FdmVudCx0KSE9PSExLHRoaXMuX21vdXNlU3RhcnRlZD90aGlzLl9tb3VzZURyYWcodCk6dGhpcy5fbW91c2VVcCh0KSksIXRoaXMuX21vdXNlU3RhcnRlZCl9LF9tb3VzZVVwOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmRvY3VtZW50LnVuYmluZCgibW91c2Vtb3ZlLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlTW92ZURlbGVnYXRlKS51bmJpbmQoIm1vdXNldXAuIit0aGlzLndpZGdldE5hbWUsdGhpcy5fbW91c2VVcERlbGVnYXRlKSx0aGlzLl9tb3VzZVN0YXJ0ZWQmJih0aGlzLl9tb3VzZVN0YXJ0ZWQ9ITEsdC50YXJnZXQ9PT10aGlzLl9tb3VzZURvd25FdmVudC50YXJnZXQmJmUuZGF0YSh0LnRhcmdldCx0aGlzLndpZGdldE5hbWUrIi5wcmV2ZW50Q2xpY2tFdmVudCIsITApLHRoaXMuX21vdXNlU3RvcCh0KSksZD0hMSwhMX0sX21vdXNlRGlzdGFuY2VNZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGgubWF4KE1hdGguYWJzKHRoaXMuX21vdXNlRG93bkV2ZW50LnBhZ2VYLWUucGFnZVgpLE1hdGguYWJzKHRoaXMuX21vdXNlRG93bkV2ZW50LnBhZ2VZLWUucGFnZVkpKT49dGhpcy5vcHRpb25zLmRpc3RhbmNlfSxfbW91c2VEZWxheU1ldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1vdXNlRGVsYXlNZXR9LF9tb3VzZVN0YXJ0OmZ1bmN0aW9uKCl7fSxfbW91c2VEcmFnOmZ1bmN0aW9uKCl7fSxfbW91c2VTdG9wOmZ1bmN0aW9uKCl7fSxfbW91c2VDYXB0dXJlOmZ1bmN0aW9uKCl7cmV0dXJuITB9fSksZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUsdCxpKXtyZXR1cm5bcGFyc2VGbG9hdChlWzBdKSoocC50ZXN0KGVbMF0pP3QvMTAwOjEpLHBhcnNlRmxvYXQoZVsxXSkqKHAudGVzdChlWzFdKT9pLzEwMDoxKV19ZnVuY3Rpb24gaSh0LGkpe3JldHVybiBwYXJzZUludChlLmNzcyh0LGkpLDEwKXx8MH1mdW5jdGlvbiBzKHQpe3ZhciBpPXRbMF07cmV0dXJuIDk9PT1pLm5vZGVUeXBlP3t3aWR0aDp0LndpZHRoKCksaGVpZ2h0OnQuaGVpZ2h0KCksb2Zmc2V0Ont0b3A6MCxsZWZ0OjB9fTplLmlzV2luZG93KGkpP3t3aWR0aDp0LndpZHRoKCksaGVpZ2h0OnQuaGVpZ2h0KCksb2Zmc2V0Ont0b3A6dC5zY3JvbGxUb3AoKSxsZWZ0OnQuc2Nyb2xsTGVmdCgpfX06aS5wcmV2ZW50RGVmYXVsdD97d2lkdGg6MCxoZWlnaHQ6MCxvZmZzZXQ6e3RvcDppLnBhZ2VZLGxlZnQ6aS5wYWdlWH19Ont3aWR0aDp0Lm91dGVyV2lkdGgoKSxoZWlnaHQ6dC5vdXRlckhlaWdodCgpLG9mZnNldDp0Lm9mZnNldCgpfX1lLnVpPWUudWl8fHt9O3ZhciBuLGEsbz1NYXRoLm1heCxyPU1hdGguYWJzLGg9TWF0aC5yb3VuZCxsPS9sZWZ0fGNlbnRlcnxyaWdodC8sdT0vdG9wfGNlbnRlcnxib3R0b20vLGQ9L1tcK1wtXVxkKyhcLltcZF0rKT8lPy8sYz0vXlx3Ky8scD0vJSQvLGY9ZS5mbi5wb3NpdGlvbjtlLnBvc2l0aW9uPXtzY3JvbGxiYXJXaWR0aDpmdW5jdGlvbigpe2lmKHZvaWQgMCE9PW4pcmV0dXJuIG47dmFyIHQsaSxzPWUoIjxkaXYgc3R5bGU9J2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6NTBweDtoZWlnaHQ6NTBweDtvdmVyZmxvdzpoaWRkZW47Jz48ZGl2IHN0eWxlPSdoZWlnaHQ6MTAwcHg7d2lkdGg6YXV0bzsnPjwvZGl2PjwvZGl2PiIpLGE9cy5jaGlsZHJlbigpWzBdO3JldHVybiBlKCJib2R5IikuYXBwZW5kKHMpLHQ9YS5vZmZzZXRXaWR0aCxzLmNzcygib3ZlcmZsb3ciLCJzY3JvbGwiKSxpPWEub2Zmc2V0V2lkdGgsdD09PWkmJihpPXNbMF0uY2xpZW50V2lkdGgpLHMucmVtb3ZlKCksbj10LWl9LGdldFNjcm9sbEluZm86ZnVuY3Rpb24odCl7dmFyIGk9dC5pc1dpbmRvd3x8dC5pc0RvY3VtZW50PyIiOnQuZWxlbWVudC5jc3MoIm92ZXJmbG93LXgiKSxzPXQuaXNXaW5kb3d8fHQuaXNEb2N1bWVudD8iIjp0LmVsZW1lbnQuY3NzKCJvdmVyZmxvdy15Iiksbj0ic2Nyb2xsIj09PWl8fCJhdXRvIj09PWkmJnQud2lkdGg8dC5lbGVtZW50WzBdLnNjcm9sbFdpZHRoLGE9InNjcm9sbCI9PT1zfHwiYXV0byI9PT1zJiZ0LmhlaWdodDx0LmVsZW1lbnRbMF0uc2Nyb2xsSGVpZ2h0O3JldHVybnt3aWR0aDphP2UucG9zaXRpb24uc2Nyb2xsYmFyV2lkdGgoKTowLGhlaWdodDpuP2UucG9zaXRpb24uc2Nyb2xsYmFyV2lkdGgoKTowfX0sZ2V0V2l0aGluSW5mbzpmdW5jdGlvbih0KXt2YXIgaT1lKHR8fHdpbmRvdykscz1lLmlzV2luZG93KGlbMF0pLG49ISFpWzBdJiY5PT09aVswXS5ub2RlVHlwZTtyZXR1cm57ZWxlbWVudDppLGlzV2luZG93OnMsaXNEb2N1bWVudDpuLG9mZnNldDppLm9mZnNldCgpfHx7bGVmdDowLHRvcDowfSxzY3JvbGxMZWZ0Omkuc2Nyb2xsTGVmdCgpLHNjcm9sbFRvcDppLnNjcm9sbFRvcCgpLHdpZHRoOnN8fG4/aS53aWR0aCgpOmkub3V0ZXJXaWR0aCgpLGhlaWdodDpzfHxuP2kuaGVpZ2h0KCk6aS5vdXRlckhlaWdodCgpfX19LGUuZm4ucG9zaXRpb249ZnVuY3Rpb24obil7aWYoIW58fCFuLm9mKXJldHVybiBmLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtuPWUuZXh0ZW5kKHt9LG4pO3ZhciBwLG0sZyx2LHksYixfPWUobi5vZikseD1lLnBvc2l0aW9uLmdldFdpdGhpbkluZm8obi53aXRoaW4pLHc9ZS5wb3NpdGlvbi5nZXRTY3JvbGxJbmZvKHgpLGs9KG4uY29sbGlzaW9ufHwiZmxpcCIpLnNwbGl0KCIgIiksVD17fTtyZXR1cm4gYj1zKF8pLF9bMF0ucHJldmVudERlZmF1bHQmJihuLmF0PSJsZWZ0IHRvcCIpLG09Yi53aWR0aCxnPWIuaGVpZ2h0LHY9Yi5vZmZzZXQseT1lLmV4dGVuZCh7fSx2KSxlLmVhY2goWyJteSIsImF0Il0sZnVuY3Rpb24oKXt2YXIgZSx0LGk9KG5bdGhpc118fCIiKS5zcGxpdCgiICIpOzE9PT1pLmxlbmd0aCYmKGk9bC50ZXN0KGlbMF0pP2kuY29uY2F0KFsiY2VudGVyIl0pOnUudGVzdChpWzBdKT9bImNlbnRlciJdLmNvbmNhdChpKTpbImNlbnRlciIsImNlbnRlciJdKSxpWzBdPWwudGVzdChpWzBdKT9pWzBdOiJjZW50ZXIiLGlbMV09dS50ZXN0KGlbMV0pP2lbMV06ImNlbnRlciIsZT1kLmV4ZWMoaVswXSksdD1kLmV4ZWMoaVsxXSksVFt0aGlzXT1bZT9lWzBdOjAsdD90WzBdOjBdLG5bdGhpc109W2MuZXhlYyhpWzBdKVswXSxjLmV4ZWMoaVsxXSlbMF1dfSksMT09PWsubGVuZ3RoJiYoa1sxXT1rWzBdKSwicmlnaHQiPT09bi5hdFswXT95LmxlZnQrPW06ImNlbnRlciI9PT1uLmF0WzBdJiYoeS5sZWZ0Kz1tLzIpLCJib3R0b20iPT09bi5hdFsxXT95LnRvcCs9ZzoiY2VudGVyIj09PW4uYXRbMV0mJih5LnRvcCs9Zy8yKSxwPXQoVC5hdCxtLGcpLHkubGVmdCs9cFswXSx5LnRvcCs9cFsxXSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgcyxsLHU9ZSh0aGlzKSxkPXUub3V0ZXJXaWR0aCgpLGM9dS5vdXRlckhlaWdodCgpLGY9aSh0aGlzLCJtYXJnaW5MZWZ0IiksYj1pKHRoaXMsIm1hcmdpblRvcCIpLEQ9ZCtmK2kodGhpcywibWFyZ2luUmlnaHQiKSt3LndpZHRoLFM9YytiK2kodGhpcywibWFyZ2luQm90dG9tIikrdy5oZWlnaHQsTT1lLmV4dGVuZCh7fSx5KSxDPXQoVC5teSx1Lm91dGVyV2lkdGgoKSx1Lm91dGVySGVpZ2h0KCkpOyJyaWdodCI9PT1uLm15WzBdP00ubGVmdC09ZDoiY2VudGVyIj09PW4ubXlbMF0mJihNLmxlZnQtPWQvMiksImJvdHRvbSI9PT1uLm15WzFdP00udG9wLT1jOiJjZW50ZXIiPT09bi5teVsxXSYmKE0udG9wLT1jLzIpLE0ubGVmdCs9Q1swXSxNLnRvcCs9Q1sxXSxhfHwoTS5sZWZ0PWgoTS5sZWZ0KSxNLnRvcD1oKE0udG9wKSkscz17bWFyZ2luTGVmdDpmLG1hcmdpblRvcDpifSxlLmVhY2goWyJsZWZ0IiwidG9wIl0sZnVuY3Rpb24odCxpKXtlLnVpLnBvc2l0aW9uW2tbdF1dJiZlLnVpLnBvc2l0aW9uW2tbdF1dW2ldKE0se3RhcmdldFdpZHRoOm0sdGFyZ2V0SGVpZ2h0OmcsZWxlbVdpZHRoOmQsZWxlbUhlaWdodDpjLGNvbGxpc2lvblBvc2l0aW9uOnMsY29sbGlzaW9uV2lkdGg6RCxjb2xsaXNpb25IZWlnaHQ6UyxvZmZzZXQ6W3BbMF0rQ1swXSxwWzFdK0NbMV1dLG15Om4ubXksYXQ6bi5hdCx3aXRoaW46eCxlbGVtOnV9KX0pLG4udXNpbmcmJihsPWZ1bmN0aW9uKGUpe3ZhciB0PXYubGVmdC1NLmxlZnQsaT10K20tZCxzPXYudG9wLU0udG9wLGE9cytnLWMsaD17dGFyZ2V0OntlbGVtZW50Ol8sbGVmdDp2LmxlZnQsdG9wOnYudG9wLHdpZHRoOm0saGVpZ2h0Omd9LGVsZW1lbnQ6e2VsZW1lbnQ6dSxsZWZ0Ok0ubGVmdCx0b3A6TS50b3Asd2lkdGg6ZCxoZWlnaHQ6Y30saG9yaXpvbnRhbDowPmk/ImxlZnQiOnQ+MD8icmlnaHQiOiJjZW50ZXIiLHZlcnRpY2FsOjA+YT8idG9wIjpzPjA/ImJvdHRvbSI6Im1pZGRsZSJ9O2Q+bSYmbT5yKHQraSkmJihoLmhvcml6b250YWw9ImNlbnRlciIpLGM+ZyYmZz5yKHMrYSkmJihoLnZlcnRpY2FsPSJtaWRkbGUiKSxoLmltcG9ydGFudD1vKHIodCkscihpKSk+byhyKHMpLHIoYSkpPyJob3Jpem9udGFsIjoidmVydGljYWwiLG4udXNpbmcuY2FsbCh0aGlzLGUsaCl9KSx1Lm9mZnNldChlLmV4dGVuZChNLHt1c2luZzpsfSkpfSl9LGUudWkucG9zaXRpb249e2ZpdDp7bGVmdDpmdW5jdGlvbihlLHQpe3ZhciBpLHM9dC53aXRoaW4sbj1zLmlzV2luZG93P3Muc2Nyb2xsTGVmdDpzLm9mZnNldC5sZWZ0LGE9cy53aWR0aCxyPWUubGVmdC10LmNvbGxpc2lvblBvc2l0aW9uLm1hcmdpbkxlZnQsaD1uLXIsbD1yK3QuY29sbGlzaW9uV2lkdGgtYS1uO3QuY29sbGlzaW9uV2lkdGg+YT9oPjAmJjA+PWw/KGk9ZS5sZWZ0K2grdC5jb2xsaXNpb25XaWR0aC1hLW4sZS5sZWZ0Kz1oLWkpOmUubGVmdD1sPjAmJjA+PWg/bjpoPmw/bithLXQuY29sbGlzaW9uV2lkdGg6bjpoPjA/ZS5sZWZ0Kz1oOmw+MD9lLmxlZnQtPWw6ZS5sZWZ0PW8oZS5sZWZ0LXIsZS5sZWZ0KX0sdG9wOmZ1bmN0aW9uKGUsdCl7dmFyIGkscz10LndpdGhpbixuPXMuaXNXaW5kb3c/cy5zY3JvbGxUb3A6cy5vZmZzZXQudG9wLGE9dC53aXRoaW4uaGVpZ2h0LHI9ZS50b3AtdC5jb2xsaXNpb25Qb3NpdGlvbi5tYXJnaW5Ub3AsaD1uLXIsbD1yK3QuY29sbGlzaW9uSGVpZ2h0LWEtbjt0LmNvbGxpc2lvbkhlaWdodD5hP2g+MCYmMD49bD8oaT1lLnRvcCtoK3QuY29sbGlzaW9uSGVpZ2h0LWEtbixlLnRvcCs9aC1pKTplLnRvcD1sPjAmJjA+PWg/bjpoPmw/bithLXQuY29sbGlzaW9uSGVpZ2h0Om46aD4wP2UudG9wKz1oOmw+MD9lLnRvcC09bDplLnRvcD1vKGUudG9wLXIsZS50b3ApfX0sZmxpcDp7bGVmdDpmdW5jdGlvbihlLHQpe3ZhciBpLHMsbj10LndpdGhpbixhPW4ub2Zmc2V0LmxlZnQrbi5zY3JvbGxMZWZ0LG89bi53aWR0aCxoPW4uaXNXaW5kb3c/bi5zY3JvbGxMZWZ0Om4ub2Zmc2V0LmxlZnQsbD1lLmxlZnQtdC5jb2xsaXNpb25Qb3NpdGlvbi5tYXJnaW5MZWZ0LHU9bC1oLGQ9bCt0LmNvbGxpc2lvbldpZHRoLW8taCxjPSJsZWZ0Ij09PXQubXlbMF0/LXQuZWxlbVdpZHRoOiJyaWdodCI9PT10Lm15WzBdP3QuZWxlbVdpZHRoOjAscD0ibGVmdCI9PT10LmF0WzBdP3QudGFyZ2V0V2lkdGg6InJpZ2h0Ij09PXQuYXRbMF0/LXQudGFyZ2V0V2lkdGg6MCxmPS0yKnQub2Zmc2V0WzBdOzA+dT8oaT1lLmxlZnQrYytwK2YrdC5jb2xsaXNpb25XaWR0aC1vLWEsKDA+aXx8cih1KT5pKSYmKGUubGVmdCs9YytwK2YpKTpkPjAmJihzPWUubGVmdC10LmNvbGxpc2lvblBvc2l0aW9uLm1hcmdpbkxlZnQrYytwK2YtaCwocz4wfHxkPnIocykpJiYoZS5sZWZ0Kz1jK3ArZikpfSx0b3A6ZnVuY3Rpb24oZSx0KXt2YXIgaSxzLG49dC53aXRoaW4sYT1uLm9mZnNldC50b3Arbi5zY3JvbGxUb3Asbz1uLmhlaWdodCxoPW4uaXNXaW5kb3c/bi5zY3JvbGxUb3A6bi5vZmZzZXQudG9wLGw9ZS50b3AtdC5jb2xsaXNpb25Qb3NpdGlvbi5tYXJnaW5Ub3AsdT1sLWgsZD1sK3QuY29sbGlzaW9uSGVpZ2h0LW8taCxjPSJ0b3AiPT09dC5teVsxXSxwPWM/LXQuZWxlbUhlaWdodDoiYm90dG9tIj09PXQubXlbMV0/dC5lbGVtSGVpZ2h0OjAsZj0idG9wIj09PXQuYXRbMV0/dC50YXJnZXRIZWlnaHQ6ImJvdHRvbSI9PT10LmF0WzFdPy10LnRhcmdldEhlaWdodDowLG09LTIqdC5vZmZzZXRbMV07MD51PyhzPWUudG9wK3ArZittK3QuY29sbGlzaW9uSGVpZ2h0LW8tYSwoMD5zfHxyKHUpPnMpJiYoZS50b3ArPXArZittKSk6ZD4wJiYoaT1lLnRvcC10LmNvbGxpc2lvblBvc2l0aW9uLm1hcmdpblRvcCtwK2YrbS1oLChpPjB8fGQ+cihpKSkmJihlLnRvcCs9cCtmK20pKX19LGZsaXBmaXQ6e2xlZnQ6ZnVuY3Rpb24oKXtlLnVpLnBvc2l0aW9uLmZsaXAubGVmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyksZS51aS5wb3NpdGlvbi5maXQubGVmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LHRvcDpmdW5jdGlvbigpe2UudWkucG9zaXRpb24uZmxpcC50b3AuYXBwbHkodGhpcyxhcmd1bWVudHMpLGUudWkucG9zaXRpb24uZml0LnRvcC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fX0sZnVuY3Rpb24oKXt2YXIgdCxpLHMsbixvLHI9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKVswXSxoPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3Q9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChyPyJkaXYiOiJib2R5Iikscz17dmlzaWJpbGl0eToiaGlkZGVuIix3aWR0aDowLGhlaWdodDowLGJvcmRlcjowLG1hcmdpbjowLGJhY2tncm91bmQ6Im5vbmUifSxyJiZlLmV4dGVuZChzLHtwb3NpdGlvbjoiYWJzb2x1dGUiLGxlZnQ6Ii0xMDAwcHgiLHRvcDoiLTEwMDBweCJ9KTtmb3IobyBpbiBzKXQuc3R5bGVbb109c1tvXTt0LmFwcGVuZENoaWxkKGgpLGk9cnx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGkuaW5zZXJ0QmVmb3JlKHQsaS5maXJzdENoaWxkKSxoLnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTAuNzQzMjIyMnB4OyIsbj1lKGgpLm9mZnNldCgpLmxlZnQsYT1uPjEwJiYxMT5uLHQuaW5uZXJIVE1MPSIiLGkucmVtb3ZlQ2hpbGQodCl9KCl9KCksZS51aS5wb3NpdGlvbixlLndpZGdldCgidWkuYWNjb3JkaW9uIix7dmVyc2lvbjoiMS4xMS40IixvcHRpb25zOnthY3RpdmU6MCxhbmltYXRlOnt9LGNvbGxhcHNpYmxlOiExLGV2ZW50OiJjbGljayIsaGVhZGVyOiI+IGxpID4gOmZpcnN0LWNoaWxkLD4gOm5vdChsaSk6ZXZlbiIsaGVpZ2h0U3R5bGU6ImF1dG8iLGljb25zOnthY3RpdmVIZWFkZXI6InVpLWljb24tdHJpYW5nbGUtMS1zIixoZWFkZXI6InVpLWljb24tdHJpYW5nbGUtMS1lIn0sYWN0aXZhdGU6bnVsbCxiZWZvcmVBY3RpdmF0ZTpudWxsfSxoaWRlUHJvcHM6e2JvcmRlclRvcFdpZHRoOiJoaWRlIixib3JkZXJCb3R0b21XaWR0aDoiaGlkZSIscGFkZGluZ1RvcDoiaGlkZSIscGFkZGluZ0JvdHRvbToiaGlkZSIsaGVpZ2h0OiJoaWRlIn0sc2hvd1Byb3BzOntib3JkZXJUb3BXaWR0aDoic2hvdyIsYm9yZGVyQm90dG9tV2lkdGg6InNob3ciLHBhZGRpbmdUb3A6InNob3ciLHBhZGRpbmdCb3R0b206InNob3ciLGhlaWdodDoic2hvdyJ9LF9jcmVhdGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnM7dGhpcy5wcmV2U2hvdz10aGlzLnByZXZIaWRlPWUoKSx0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLWFjY29yZGlvbiB1aS13aWRnZXQgdWktaGVscGVyLXJlc2V0IikuYXR0cigicm9sZSIsInRhYmxpc3QiKSx0LmNvbGxhcHNpYmxlfHx0LmFjdGl2ZSE9PSExJiZudWxsIT10LmFjdGl2ZXx8KHQuYWN0aXZlPTApLHRoaXMuX3Byb2Nlc3NQYW5lbHMoKSwwPnQuYWN0aXZlJiYodC5hY3RpdmUrPXRoaXMuaGVhZGVycy5sZW5ndGgpLHRoaXMuX3JlZnJlc2goKX0sX2dldENyZWF0ZUV2ZW50RGF0YTpmdW5jdGlvbigpe3JldHVybntoZWFkZXI6dGhpcy5hY3RpdmUscGFuZWw6dGhpcy5hY3RpdmUubGVuZ3RoP3RoaXMuYWN0aXZlLm5leHQoKTplKCl9fSxfY3JlYXRlSWNvbnM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMuaWNvbnM7dCYmKGUoIjxzcGFuPiIpLmFkZENsYXNzKCJ1aS1hY2NvcmRpb24taGVhZGVyLWljb24gdWktaWNvbiAiK3QuaGVhZGVyKS5wcmVwZW5kVG8odGhpcy5oZWFkZXJzKSx0aGlzLmFjdGl2ZS5jaGlsZHJlbigiLnVpLWFjY29yZGlvbi1oZWFkZXItaWNvbiIpLnJlbW92ZUNsYXNzKHQuaGVhZGVyKS5hZGRDbGFzcyh0LmFjdGl2ZUhlYWRlciksdGhpcy5oZWFkZXJzLmFkZENsYXNzKCJ1aS1hY2NvcmRpb24taWNvbnMiKSl9LF9kZXN0cm95SWNvbnM6ZnVuY3Rpb24oKXt0aGlzLmhlYWRlcnMucmVtb3ZlQ2xhc3MoInVpLWFjY29yZGlvbi1pY29ucyIpLmNoaWxkcmVuKCIudWktYWNjb3JkaW9uLWhlYWRlci1pY29uIikucmVtb3ZlKCl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dmFyIGU7dGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1hY2NvcmRpb24gdWktd2lkZ2V0IHVpLWhlbHBlci1yZXNldCIpLnJlbW92ZUF0dHIoInJvbGUiKSx0aGlzLmhlYWRlcnMucmVtb3ZlQ2xhc3MoInVpLWFjY29yZGlvbi1oZWFkZXIgdWktYWNjb3JkaW9uLWhlYWRlci1hY3RpdmUgdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItYWxsIHVpLXN0YXRlLWFjdGl2ZSB1aS1zdGF0ZS1kaXNhYmxlZCB1aS1jb3JuZXItdG9wIikucmVtb3ZlQXR0cigicm9sZSIpLnJlbW92ZUF0dHIoImFyaWEtZXhwYW5kZWQiKS5yZW1vdmVBdHRyKCJhcmlhLXNlbGVjdGVkIikucmVtb3ZlQXR0cigiYXJpYS1jb250cm9scyIpLnJlbW92ZUF0dHIoInRhYkluZGV4IikucmVtb3ZlVW5pcXVlSWQoKSx0aGlzLl9kZXN0cm95SWNvbnMoKSxlPXRoaXMuaGVhZGVycy5uZXh0KCkucmVtb3ZlQ2xhc3MoInVpLWhlbHBlci1yZXNldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYm90dG9tIHVpLWFjY29yZGlvbi1jb250ZW50IHVpLWFjY29yZGlvbi1jb250ZW50LWFjdGl2ZSB1aS1zdGF0ZS1kaXNhYmxlZCIpLmNzcygiZGlzcGxheSIsIiIpLnJlbW92ZUF0dHIoInJvbGUiKS5yZW1vdmVBdHRyKCJhcmlhLWhpZGRlbiIpLnJlbW92ZUF0dHIoImFyaWEtbGFiZWxsZWRieSIpLnJlbW92ZVVuaXF1ZUlkKCksImNvbnRlbnQiIT09dGhpcy5vcHRpb25zLmhlaWdodFN0eWxlJiZlLmNzcygiaGVpZ2h0IiwiIil9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4iYWN0aXZlIj09PWU/KHRoaXMuX2FjdGl2YXRlKHQpLHZvaWQgMCk6KCJldmVudCI9PT1lJiYodGhpcy5vcHRpb25zLmV2ZW50JiZ0aGlzLl9vZmYodGhpcy5oZWFkZXJzLHRoaXMub3B0aW9ucy5ldmVudCksdGhpcy5fc2V0dXBFdmVudHModCkpLHRoaXMuX3N1cGVyKGUsdCksImNvbGxhcHNpYmxlIiE9PWV8fHR8fHRoaXMub3B0aW9ucy5hY3RpdmUhPT0hMXx8dGhpcy5fYWN0aXZhdGUoMCksImljb25zIj09PWUmJih0aGlzLl9kZXN0cm95SWNvbnMoKSx0JiZ0aGlzLl9jcmVhdGVJY29ucygpKSwiZGlzYWJsZWQiPT09ZSYmKHRoaXMuZWxlbWVudC50b2dnbGVDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiLCEhdCkuYXR0cigiYXJpYS1kaXNhYmxlZCIsdCksdGhpcy5oZWFkZXJzLmFkZCh0aGlzLmhlYWRlcnMubmV4dCgpKS50b2dnbGVDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiLCEhdCkpLHZvaWQgMCl9LF9rZXlkb3duOmZ1bmN0aW9uKHQpe2lmKCF0LmFsdEtleSYmIXQuY3RybEtleSl7dmFyIGk9ZS51aS5rZXlDb2RlLHM9dGhpcy5oZWFkZXJzLmxlbmd0aCxuPXRoaXMuaGVhZGVycy5pbmRleCh0LnRhcmdldCksYT0hMTtzd2l0Y2godC5rZXlDb2RlKXtjYXNlIGkuUklHSFQ6Y2FzZSBpLkRPV046YT10aGlzLmhlYWRlcnNbKG4rMSklc107YnJlYWs7Y2FzZSBpLkxFRlQ6Y2FzZSBpLlVQOmE9dGhpcy5oZWFkZXJzWyhuLTErcyklc107YnJlYWs7Y2FzZSBpLlNQQUNFOmNhc2UgaS5FTlRFUjp0aGlzLl9ldmVudEhhbmRsZXIodCk7YnJlYWs7Y2FzZSBpLkhPTUU6YT10aGlzLmhlYWRlcnNbMF07YnJlYWs7Y2FzZSBpLkVORDphPXRoaXMuaGVhZGVyc1tzLTFdfWEmJihlKHQudGFyZ2V0KS5hdHRyKCJ0YWJJbmRleCIsLTEpLGUoYSkuYXR0cigidGFiSW5kZXgiLDApLGEuZm9jdXMoKSx0LnByZXZlbnREZWZhdWx0KCkpfX0sX3BhbmVsS2V5RG93bjpmdW5jdGlvbih0KXt0LmtleUNvZGU9PT1lLnVpLmtleUNvZGUuVVAmJnQuY3RybEtleSYmZSh0LmN1cnJlbnRUYXJnZXQpLnByZXYoKS5mb2N1cygpfSxyZWZyZXNoOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcHRpb25zO3RoaXMuX3Byb2Nlc3NQYW5lbHMoKSx0LmFjdGl2ZT09PSExJiZ0LmNvbGxhcHNpYmxlPT09ITB8fCF0aGlzLmhlYWRlcnMubGVuZ3RoPyh0LmFjdGl2ZT0hMSx0aGlzLmFjdGl2ZT1lKCkpOnQuYWN0aXZlPT09ITE/dGhpcy5fYWN0aXZhdGUoMCk6dGhpcy5hY3RpdmUubGVuZ3RoJiYhZS5jb250YWlucyh0aGlzLmVsZW1lbnRbMF0sdGhpcy5hY3RpdmVbMF0pP3RoaXMuaGVhZGVycy5sZW5ndGg9PT10aGlzLmhlYWRlcnMuZmluZCgiLnVpLXN0YXRlLWRpc2FibGVkIikubGVuZ3RoPyh0LmFjdGl2ZT0hMSx0aGlzLmFjdGl2ZT1lKCkpOnRoaXMuX2FjdGl2YXRlKE1hdGgubWF4KDAsdC5hY3RpdmUtMSkpOnQuYWN0aXZlPXRoaXMuaGVhZGVycy5pbmRleCh0aGlzLmFjdGl2ZSksdGhpcy5fZGVzdHJveUljb25zKCksdGhpcy5fcmVmcmVzaCgpfSxfcHJvY2Vzc1BhbmVsczpmdW5jdGlvbigpe3ZhciBlPXRoaXMuaGVhZGVycyx0PXRoaXMucGFuZWxzO3RoaXMuaGVhZGVycz10aGlzLmVsZW1lbnQuZmluZCh0aGlzLm9wdGlvbnMuaGVhZGVyKS5hZGRDbGFzcygidWktYWNjb3JkaW9uLWhlYWRlciB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwiKSx0aGlzLnBhbmVscz10aGlzLmhlYWRlcnMubmV4dCgpLmFkZENsYXNzKCJ1aS1hY2NvcmRpb24tY29udGVudCB1aS1oZWxwZXItcmVzZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWJvdHRvbSIpLmZpbHRlcigiOm5vdCgudWktYWNjb3JkaW9uLWNvbnRlbnQtYWN0aXZlKSIpLmhpZGUoKSx0JiYodGhpcy5fb2ZmKGUubm90KHRoaXMuaGVhZGVycykpLHRoaXMuX29mZih0Lm5vdCh0aGlzLnBhbmVscykpKX0sX3JlZnJlc2g6ZnVuY3Rpb24oKXt2YXIgdCxpPXRoaXMub3B0aW9ucyxzPWkuaGVpZ2h0U3R5bGUsbj10aGlzLmVsZW1lbnQucGFyZW50KCk7dGhpcy5hY3RpdmU9dGhpcy5fZmluZEFjdGl2ZShpLmFjdGl2ZSkuYWRkQ2xhc3MoInVpLWFjY29yZGlvbi1oZWFkZXItYWN0aXZlIHVpLXN0YXRlLWFjdGl2ZSB1aS1jb3JuZXItdG9wIikucmVtb3ZlQ2xhc3MoInVpLWNvcm5lci1hbGwiKSx0aGlzLmFjdGl2ZS5uZXh0KCkuYWRkQ2xhc3MoInVpLWFjY29yZGlvbi1jb250ZW50LWFjdGl2ZSIpLnNob3coKSx0aGlzLmhlYWRlcnMuYXR0cigicm9sZSIsInRhYiIpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLGk9dC51bmlxdWVJZCgpLmF0dHIoImlkIikscz10Lm5leHQoKSxuPXMudW5pcXVlSWQoKS5hdHRyKCJpZCIpO3QuYXR0cigiYXJpYS1jb250cm9scyIsbikscy5hdHRyKCJhcmlhLWxhYmVsbGVkYnkiLGkpfSkubmV4dCgpLmF0dHIoInJvbGUiLCJ0YWJwYW5lbCIpLHRoaXMuaGVhZGVycy5ub3QodGhpcy5hY3RpdmUpLmF0dHIoeyJhcmlhLXNlbGVjdGVkIjoiZmFsc2UiLCJhcmlhLWV4cGFuZGVkIjoiZmFsc2UiLHRhYkluZGV4Oi0xfSkubmV4dCgpLmF0dHIoeyJhcmlhLWhpZGRlbiI6InRydWUifSkuaGlkZSgpLHRoaXMuYWN0aXZlLmxlbmd0aD90aGlzLmFjdGl2ZS5hdHRyKHsiYXJpYS1zZWxlY3RlZCI6InRydWUiLCJhcmlhLWV4cGFuZGVkIjoidHJ1ZSIsdGFiSW5kZXg6MH0pLm5leHQoKS5hdHRyKHsiYXJpYS1oaWRkZW4iOiJmYWxzZSJ9KTp0aGlzLmhlYWRlcnMuZXEoMCkuYXR0cigidGFiSW5kZXgiLDApLHRoaXMuX2NyZWF0ZUljb25zKCksdGhpcy5fc2V0dXBFdmVudHMoaS5ldmVudCksImZpbGwiPT09cz8odD1uLmhlaWdodCgpLHRoaXMuZWxlbWVudC5zaWJsaW5ncygiOnZpc2libGUiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGk9ZSh0aGlzKSxzPWkuY3NzKCJwb3NpdGlvbiIpOyJhYnNvbHV0ZSIhPT1zJiYiZml4ZWQiIT09cyYmKHQtPWkub3V0ZXJIZWlnaHQoITApKX0pLHRoaXMuaGVhZGVycy5lYWNoKGZ1bmN0aW9uKCl7dC09ZSh0aGlzKS5vdXRlckhlaWdodCghMCl9KSx0aGlzLmhlYWRlcnMubmV4dCgpLmVhY2goZnVuY3Rpb24oKXtlKHRoaXMpLmhlaWdodChNYXRoLm1heCgwLHQtZSh0aGlzKS5pbm5lckhlaWdodCgpK2UodGhpcykuaGVpZ2h0KCkpKX0pLmNzcygib3ZlcmZsb3ciLCJhdXRvIikpOiJhdXRvIj09PXMmJih0PTAsdGhpcy5oZWFkZXJzLm5leHQoKS5lYWNoKGZ1bmN0aW9uKCl7dD1NYXRoLm1heCh0LGUodGhpcykuY3NzKCJoZWlnaHQiLCIiKS5oZWlnaHQoKSl9KS5oZWlnaHQodCkpfSxfYWN0aXZhdGU6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5fZmluZEFjdGl2ZSh0KVswXTtpIT09dGhpcy5hY3RpdmVbMF0mJihpPWl8fHRoaXMuYWN0aXZlWzBdLHRoaXMuX2V2ZW50SGFuZGxlcih7dGFyZ2V0OmksY3VycmVudFRhcmdldDppLHByZXZlbnREZWZhdWx0OmUubm9vcH0pKX0sX2ZpbmRBY3RpdmU6ZnVuY3Rpb24odCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0P3RoaXMuaGVhZGVycy5lcSh0KTplKCl9LF9zZXR1cEV2ZW50czpmdW5jdGlvbih0KXt2YXIgaT17a2V5ZG93bjoiX2tleWRvd24ifTt0JiZlLmVhY2godC5zcGxpdCgiICIpLGZ1bmN0aW9uKGUsdCl7aVt0XT0iX2V2ZW50SGFuZGxlciJ9KSx0aGlzLl9vZmYodGhpcy5oZWFkZXJzLmFkZCh0aGlzLmhlYWRlcnMubmV4dCgpKSksdGhpcy5fb24odGhpcy5oZWFkZXJzLGkpLHRoaXMuX29uKHRoaXMuaGVhZGVycy5uZXh0KCkse2tleWRvd246Il9wYW5lbEtleURvd24ifSksdGhpcy5faG92ZXJhYmxlKHRoaXMuaGVhZGVycyksdGhpcy5fZm9jdXNhYmxlKHRoaXMuaGVhZGVycyl9LF9ldmVudEhhbmRsZXI6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5vcHRpb25zLHM9dGhpcy5hY3RpdmUsbj1lKHQuY3VycmVudFRhcmdldCksYT1uWzBdPT09c1swXSxvPWEmJmkuY29sbGFwc2libGUscj1vP2UoKTpuLm5leHQoKSxoPXMubmV4dCgpLGw9e29sZEhlYWRlcjpzLG9sZFBhbmVsOmgsbmV3SGVhZGVyOm8/ZSgpOm4sbmV3UGFuZWw6cn07dC5wcmV2ZW50RGVmYXVsdCgpLGEmJiFpLmNvbGxhcHNpYmxlfHx0aGlzLl90cmlnZ2VyKCJiZWZvcmVBY3RpdmF0ZSIsdCxsKT09PSExfHwoaS5hY3RpdmU9bz8hMTp0aGlzLmhlYWRlcnMuaW5kZXgobiksdGhpcy5hY3RpdmU9YT9lKCk6bix0aGlzLl90b2dnbGUobCkscy5yZW1vdmVDbGFzcygidWktYWNjb3JkaW9uLWhlYWRlci1hY3RpdmUgdWktc3RhdGUtYWN0aXZlIiksaS5pY29ucyYmcy5jaGlsZHJlbigiLnVpLWFjY29yZGlvbi1oZWFkZXItaWNvbiIpLnJlbW92ZUNsYXNzKGkuaWNvbnMuYWN0aXZlSGVhZGVyKS5hZGRDbGFzcyhpLmljb25zLmhlYWRlciksYXx8KG4ucmVtb3ZlQ2xhc3MoInVpLWNvcm5lci1hbGwiKS5hZGRDbGFzcygidWktYWNjb3JkaW9uLWhlYWRlci1hY3RpdmUgdWktc3RhdGUtYWN0aXZlIHVpLWNvcm5lci10b3AiKSxpLmljb25zJiZuLmNoaWxkcmVuKCIudWktYWNjb3JkaW9uLWhlYWRlci1pY29uIikucmVtb3ZlQ2xhc3MoaS5pY29ucy5oZWFkZXIpLmFkZENsYXNzKGkuaWNvbnMuYWN0aXZlSGVhZGVyKSxuLm5leHQoKS5hZGRDbGFzcygidWktYWNjb3JkaW9uLWNvbnRlbnQtYWN0aXZlIikpKX0sX3RvZ2dsZTpmdW5jdGlvbih0KXt2YXIgaT10Lm5ld1BhbmVsLHM9dGhpcy5wcmV2U2hvdy5sZW5ndGg/dGhpcy5wcmV2U2hvdzp0Lm9sZFBhbmVsO3RoaXMucHJldlNob3cuYWRkKHRoaXMucHJldkhpZGUpLnN0b3AoITAsITApLHRoaXMucHJldlNob3c9aSx0aGlzLnByZXZIaWRlPXMsdGhpcy5vcHRpb25zLmFuaW1hdGU/dGhpcy5fYW5pbWF0ZShpLHMsdCk6KHMuaGlkZSgpLGkuc2hvdygpLHRoaXMuX3RvZ2dsZUNvbXBsZXRlKHQpKSxzLmF0dHIoeyJhcmlhLWhpZGRlbiI6InRydWUifSkscy5wcmV2KCkuYXR0cih7ImFyaWEtc2VsZWN0ZWQiOiJmYWxzZSIsImFyaWEtZXhwYW5kZWQiOiJmYWxzZSJ9KSxpLmxlbmd0aCYmcy5sZW5ndGg/cy5wcmV2KCkuYXR0cih7dGFiSW5kZXg6LTEsImFyaWEtZXhwYW5kZWQiOiJmYWxzZSJ9KTppLmxlbmd0aCYmdGhpcy5oZWFkZXJzLmZpbHRlcihmdW5jdGlvbigpe3JldHVybiAwPT09cGFyc2VJbnQoZSh0aGlzKS5hdHRyKCJ0YWJJbmRleCIpLDEwKX0pLmF0dHIoInRhYkluZGV4IiwtMSksaS5hdHRyKCJhcmlhLWhpZGRlbiIsImZhbHNlIikucHJldigpLmF0dHIoeyJhcmlhLXNlbGVjdGVkIjoidHJ1ZSIsImFyaWEtZXhwYW5kZWQiOiJ0cnVlIix0YWJJbmRleDowfSl9LF9hbmltYXRlOmZ1bmN0aW9uKGUsdCxpKXt2YXIgcyxuLGEsbz10aGlzLHI9MCxoPWUuY3NzKCJib3gtc2l6aW5nIiksbD1lLmxlbmd0aCYmKCF0Lmxlbmd0aHx8ZS5pbmRleCgpPHQuaW5kZXgoKSksdT10aGlzLm9wdGlvbnMuYW5pbWF0ZXx8e30sZD1sJiZ1LmRvd258fHUsYz1mdW5jdGlvbigpe28uX3RvZ2dsZUNvbXBsZXRlKGkpfTtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGQmJihhPWQpLCJzdHJpbmciPT10eXBlb2YgZCYmKG49ZCksbj1ufHxkLmVhc2luZ3x8dS5lYXNpbmcsYT1hfHxkLmR1cmF0aW9ufHx1LmR1cmF0aW9uLHQubGVuZ3RoP2UubGVuZ3RoPyhzPWUuc2hvdygpLm91dGVySGVpZ2h0KCksdC5hbmltYXRlKHRoaXMuaGlkZVByb3BzLHtkdXJhdGlvbjphLGVhc2luZzpuLHN0ZXA6ZnVuY3Rpb24oZSx0KXt0Lm5vdz1NYXRoLnJvdW5kKGUpfX0pLGUuaGlkZSgpLmFuaW1hdGUodGhpcy5zaG93UHJvcHMse2R1cmF0aW9uOmEsZWFzaW5nOm4sY29tcGxldGU6YyxzdGVwOmZ1bmN0aW9uKGUsaSl7aS5ub3c9TWF0aC5yb3VuZChlKSwiaGVpZ2h0IiE9PWkucHJvcD8iY29udGVudC1ib3giPT09aCYmKHIrPWkubm93KToiY29udGVudCIhPT1vLm9wdGlvbnMuaGVpZ2h0U3R5bGUmJihpLm5vdz1NYXRoLnJvdW5kKHMtdC5vdXRlckhlaWdodCgpLXIpLHI9MCl9fSksdm9pZCAwKTp0LmFuaW1hdGUodGhpcy5oaWRlUHJvcHMsYSxuLGMpOmUuYW5pbWF0ZSh0aGlzLnNob3dQcm9wcyxhLG4sYyl9LF90b2dnbGVDb21wbGV0ZTpmdW5jdGlvbihlKXt2YXIgdD1lLm9sZFBhbmVsO3QucmVtb3ZlQ2xhc3MoInVpLWFjY29yZGlvbi1jb250ZW50LWFjdGl2ZSIpLnByZXYoKS5yZW1vdmVDbGFzcygidWktY29ybmVyLXRvcCIpLmFkZENsYXNzKCJ1aS1jb3JuZXItYWxsIiksdC5sZW5ndGgmJih0LnBhcmVudCgpWzBdLmNsYXNzTmFtZT10LnBhcmVudCgpWzBdLmNsYXNzTmFtZSksdGhpcy5fdHJpZ2dlcigiYWN0aXZhdGUiLG51bGwsZSl9fSksZS53aWRnZXQoInVpLm1lbnUiLHt2ZXJzaW9uOiIxLjExLjQiLGRlZmF1bHRFbGVtZW50OiI8dWw+IixkZWxheTozMDAsb3B0aW9uczp7aWNvbnM6e3N1Ym1lbnU6InVpLWljb24tY2FyYXQtMS1lIn0saXRlbXM6Ij4gKiIsbWVudXM6InVsIixwb3NpdGlvbjp7bXk6ImxlZnQtMSB0b3AiLGF0OiJyaWdodCB0b3AifSxyb2xlOiJtZW51IixibHVyOm51bGwsZm9jdXM6bnVsbCxzZWxlY3Q6bnVsbH0sX2NyZWF0ZTpmdW5jdGlvbigpe3RoaXMuYWN0aXZlTWVudT10aGlzLmVsZW1lbnQsdGhpcy5tb3VzZUhhbmRsZWQ9ITEsdGhpcy5lbGVtZW50LnVuaXF1ZUlkKCkuYWRkQ2xhc3MoInVpLW1lbnUgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IikudG9nZ2xlQ2xhc3MoInVpLW1lbnUtaWNvbnMiLCEhdGhpcy5lbGVtZW50LmZpbmQoIi51aS1pY29uIikubGVuZ3RoKS5hdHRyKHtyb2xlOnRoaXMub3B0aW9ucy5yb2xlLHRhYkluZGV4OjB9KSx0aGlzLm9wdGlvbnMuZGlzYWJsZWQmJnRoaXMuZWxlbWVudC5hZGRDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiKS5hdHRyKCJhcmlhLWRpc2FibGVkIiwidHJ1ZSIpLHRoaXMuX29uKHsibW91c2Vkb3duIC51aS1tZW51LWl0ZW0iOmZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKX0sImNsaWNrIC51aS1tZW51LWl0ZW0iOmZ1bmN0aW9uKHQpe3ZhciBpPWUodC50YXJnZXQpOyF0aGlzLm1vdXNlSGFuZGxlZCYmaS5ub3QoIi51aS1zdGF0ZS1kaXNhYmxlZCIpLmxlbmd0aCYmKHRoaXMuc2VsZWN0KHQpLHQuaXNQcm9wYWdhdGlvblN0b3BwZWQoKXx8KHRoaXMubW91c2VIYW5kbGVkPSEwKSxpLmhhcygiLnVpLW1lbnUiKS5sZW5ndGg/dGhpcy5leHBhbmQodCk6IXRoaXMuZWxlbWVudC5pcygiOmZvY3VzIikmJmUodGhpcy5kb2N1bWVudFswXS5hY3RpdmVFbGVtZW50KS5jbG9zZXN0KCIudWktbWVudSIpLmxlbmd0aCYmKHRoaXMuZWxlbWVudC50cmlnZ2VyKCJmb2N1cyIsWyEwXSksdGhpcy5hY3RpdmUmJjE9PT10aGlzLmFjdGl2ZS5wYXJlbnRzKCIudWktbWVudSIpLmxlbmd0aCYmY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpKSl9LCJtb3VzZWVudGVyIC51aS1tZW51LWl0ZW0iOmZ1bmN0aW9uKHQpe2lmKCF0aGlzLnByZXZpb3VzRmlsdGVyKXt2YXIgaT1lKHQuY3VycmVudFRhcmdldCk7Cmkuc2libGluZ3MoIi51aS1zdGF0ZS1hY3RpdmUiKS5yZW1vdmVDbGFzcygidWktc3RhdGUtYWN0aXZlIiksdGhpcy5mb2N1cyh0LGkpfX0sbW91c2VsZWF2ZToiY29sbGFwc2VBbGwiLCJtb3VzZWxlYXZlIC51aS1tZW51IjoiY29sbGFwc2VBbGwiLGZvY3VzOmZ1bmN0aW9uKGUsdCl7dmFyIGk9dGhpcy5hY3RpdmV8fHRoaXMuZWxlbWVudC5maW5kKHRoaXMub3B0aW9ucy5pdGVtcykuZXEoMCk7dHx8dGhpcy5mb2N1cyhlLGkpfSxibHVyOmZ1bmN0aW9uKHQpe3RoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7ZS5jb250YWlucyh0aGlzLmVsZW1lbnRbMF0sdGhpcy5kb2N1bWVudFswXS5hY3RpdmVFbGVtZW50KXx8dGhpcy5jb2xsYXBzZUFsbCh0KX0pfSxrZXlkb3duOiJfa2V5ZG93biJ9KSx0aGlzLnJlZnJlc2goKSx0aGlzLl9vbih0aGlzLmRvY3VtZW50LHtjbGljazpmdW5jdGlvbihlKXt0aGlzLl9jbG9zZU9uRG9jdW1lbnRDbGljayhlKSYmdGhpcy5jb2xsYXBzZUFsbChlKSx0aGlzLm1vdXNlSGFuZGxlZD0hMX19KX0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQucmVtb3ZlQXR0cigiYXJpYS1hY3RpdmVkZXNjZW5kYW50IikuZmluZCgiLnVpLW1lbnUiKS5hZGRCYWNrKCkucmVtb3ZlQ2xhc3MoInVpLW1lbnUgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLW1lbnUtaWNvbnMgdWktZnJvbnQiKS5yZW1vdmVBdHRyKCJyb2xlIikucmVtb3ZlQXR0cigidGFiSW5kZXgiKS5yZW1vdmVBdHRyKCJhcmlhLWxhYmVsbGVkYnkiKS5yZW1vdmVBdHRyKCJhcmlhLWV4cGFuZGVkIikucmVtb3ZlQXR0cigiYXJpYS1oaWRkZW4iKS5yZW1vdmVBdHRyKCJhcmlhLWRpc2FibGVkIikucmVtb3ZlVW5pcXVlSWQoKS5zaG93KCksdGhpcy5lbGVtZW50LmZpbmQoIi51aS1tZW51LWl0ZW0iKS5yZW1vdmVDbGFzcygidWktbWVudS1pdGVtIikucmVtb3ZlQXR0cigicm9sZSIpLnJlbW92ZUF0dHIoImFyaWEtZGlzYWJsZWQiKS5yZW1vdmVVbmlxdWVJZCgpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1ob3ZlciIpLnJlbW92ZUF0dHIoInRhYkluZGV4IikucmVtb3ZlQXR0cigicm9sZSIpLnJlbW92ZUF0dHIoImFyaWEtaGFzcG9wdXAiKS5jaGlsZHJlbigpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpO3QuZGF0YSgidWktbWVudS1zdWJtZW51LWNhcmF0IikmJnQucmVtb3ZlKCl9KSx0aGlzLmVsZW1lbnQuZmluZCgiLnVpLW1lbnUtZGl2aWRlciIpLnJlbW92ZUNsYXNzKCJ1aS1tZW51LWRpdmlkZXIgdWktd2lkZ2V0LWNvbnRlbnQiKX0sX2tleWRvd246ZnVuY3Rpb24odCl7dmFyIGkscyxuLGEsbz0hMDtzd2l0Y2godC5rZXlDb2RlKXtjYXNlIGUudWkua2V5Q29kZS5QQUdFX1VQOnRoaXMucHJldmlvdXNQYWdlKHQpO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLlBBR0VfRE9XTjp0aGlzLm5leHRQYWdlKHQpO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkhPTUU6dGhpcy5fbW92ZSgiZmlyc3QiLCJmaXJzdCIsdCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuRU5EOnRoaXMuX21vdmUoImxhc3QiLCJsYXN0Iix0KTticmVhaztjYXNlIGUudWkua2V5Q29kZS5VUDp0aGlzLnByZXZpb3VzKHQpO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkRPV046dGhpcy5uZXh0KHQpO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkxFRlQ6dGhpcy5jb2xsYXBzZSh0KTticmVhaztjYXNlIGUudWkua2V5Q29kZS5SSUdIVDp0aGlzLmFjdGl2ZSYmIXRoaXMuYWN0aXZlLmlzKCIudWktc3RhdGUtZGlzYWJsZWQiKSYmdGhpcy5leHBhbmQodCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuRU5URVI6Y2FzZSBlLnVpLmtleUNvZGUuU1BBQ0U6dGhpcy5fYWN0aXZhdGUodCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuRVNDQVBFOnRoaXMuY29sbGFwc2UodCk7YnJlYWs7ZGVmYXVsdDpvPSExLHM9dGhpcy5wcmV2aW91c0ZpbHRlcnx8IiIsbj1TdHJpbmcuZnJvbUNoYXJDb2RlKHQua2V5Q29kZSksYT0hMSxjbGVhclRpbWVvdXQodGhpcy5maWx0ZXJUaW1lciksbj09PXM/YT0hMDpuPXMrbixpPXRoaXMuX2ZpbHRlck1lbnVJdGVtcyhuKSxpPWEmJi0xIT09aS5pbmRleCh0aGlzLmFjdGl2ZS5uZXh0KCkpP3RoaXMuYWN0aXZlLm5leHRBbGwoIi51aS1tZW51LWl0ZW0iKTppLGkubGVuZ3RofHwobj1TdHJpbmcuZnJvbUNoYXJDb2RlKHQua2V5Q29kZSksaT10aGlzLl9maWx0ZXJNZW51SXRlbXMobikpLGkubGVuZ3RoPyh0aGlzLmZvY3VzKHQsaSksdGhpcy5wcmV2aW91c0ZpbHRlcj1uLHRoaXMuZmlsdGVyVGltZXI9dGhpcy5fZGVsYXkoZnVuY3Rpb24oKXtkZWxldGUgdGhpcy5wcmV2aW91c0ZpbHRlcn0sMWUzKSk6ZGVsZXRlIHRoaXMucHJldmlvdXNGaWx0ZXJ9byYmdC5wcmV2ZW50RGVmYXVsdCgpfSxfYWN0aXZhdGU6ZnVuY3Rpb24oZSl7dGhpcy5hY3RpdmUuaXMoIi51aS1zdGF0ZS1kaXNhYmxlZCIpfHwodGhpcy5hY3RpdmUuaXMoIlthcmlhLWhhc3BvcHVwPSd0cnVlJ10iKT90aGlzLmV4cGFuZChlKTp0aGlzLnNlbGVjdChlKSl9LHJlZnJlc2g6ZnVuY3Rpb24oKXt2YXIgdCxpLHM9dGhpcyxuPXRoaXMub3B0aW9ucy5pY29ucy5zdWJtZW51LGE9dGhpcy5lbGVtZW50LmZpbmQodGhpcy5vcHRpb25zLm1lbnVzKTt0aGlzLmVsZW1lbnQudG9nZ2xlQ2xhc3MoInVpLW1lbnUtaWNvbnMiLCEhdGhpcy5lbGVtZW50LmZpbmQoIi51aS1pY29uIikubGVuZ3RoKSxhLmZpbHRlcigiOm5vdCgudWktbWVudSkiKS5hZGRDbGFzcygidWktbWVudSB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktZnJvbnQiKS5oaWRlKCkuYXR0cih7cm9sZTp0aGlzLm9wdGlvbnMucm9sZSwiYXJpYS1oaWRkZW4iOiJ0cnVlIiwiYXJpYS1leHBhbmRlZCI6ImZhbHNlIn0pLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLGk9dC5wYXJlbnQoKSxzPWUoIjxzcGFuPiIpLmFkZENsYXNzKCJ1aS1tZW51LWljb24gdWktaWNvbiAiK24pLmRhdGEoInVpLW1lbnUtc3VibWVudS1jYXJhdCIsITApO2kuYXR0cigiYXJpYS1oYXNwb3B1cCIsInRydWUiKS5wcmVwZW5kKHMpLHQuYXR0cigiYXJpYS1sYWJlbGxlZGJ5IixpLmF0dHIoImlkIikpfSksdD1hLmFkZCh0aGlzLmVsZW1lbnQpLGk9dC5maW5kKHRoaXMub3B0aW9ucy5pdGVtcyksaS5ub3QoIi51aS1tZW51LWl0ZW0iKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKTtzLl9pc0RpdmlkZXIodCkmJnQuYWRkQ2xhc3MoInVpLXdpZGdldC1jb250ZW50IHVpLW1lbnUtZGl2aWRlciIpfSksaS5ub3QoIi51aS1tZW51LWl0ZW0sIC51aS1tZW51LWRpdmlkZXIiKS5hZGRDbGFzcygidWktbWVudS1pdGVtIikudW5pcXVlSWQoKS5hdHRyKHt0YWJJbmRleDotMSxyb2xlOnRoaXMuX2l0ZW1Sb2xlKCl9KSxpLmZpbHRlcigiLnVpLXN0YXRlLWRpc2FibGVkIikuYXR0cigiYXJpYS1kaXNhYmxlZCIsInRydWUiKSx0aGlzLmFjdGl2ZSYmIWUuY29udGFpbnModGhpcy5lbGVtZW50WzBdLHRoaXMuYWN0aXZlWzBdKSYmdGhpcy5ibHVyKCl9LF9pdGVtUm9sZTpmdW5jdGlvbigpe3JldHVybnttZW51OiJtZW51aXRlbSIsbGlzdGJveDoib3B0aW9uIn1bdGhpcy5vcHRpb25zLnJvbGVdfSxfc2V0T3B0aW9uOmZ1bmN0aW9uKGUsdCl7Imljb25zIj09PWUmJnRoaXMuZWxlbWVudC5maW5kKCIudWktbWVudS1pY29uIikucmVtb3ZlQ2xhc3ModGhpcy5vcHRpb25zLmljb25zLnN1Ym1lbnUpLmFkZENsYXNzKHQuc3VibWVudSksImRpc2FibGVkIj09PWUmJnRoaXMuZWxlbWVudC50b2dnbGVDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiLCEhdCkuYXR0cigiYXJpYS1kaXNhYmxlZCIsdCksdGhpcy5fc3VwZXIoZSx0KX0sZm9jdXM6ZnVuY3Rpb24oZSx0KXt2YXIgaSxzO3RoaXMuYmx1cihlLGUmJiJmb2N1cyI9PT1lLnR5cGUpLHRoaXMuX3Njcm9sbEludG9WaWV3KHQpLHRoaXMuYWN0aXZlPXQuZmlyc3QoKSxzPXRoaXMuYWN0aXZlLmFkZENsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKSx0aGlzLm9wdGlvbnMucm9sZSYmdGhpcy5lbGVtZW50LmF0dHIoImFyaWEtYWN0aXZlZGVzY2VuZGFudCIscy5hdHRyKCJpZCIpKSx0aGlzLmFjdGl2ZS5wYXJlbnQoKS5jbG9zZXN0KCIudWktbWVudS1pdGVtIikuYWRkQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpLGUmJiJrZXlkb3duIj09PWUudHlwZT90aGlzLl9jbG9zZSgpOnRoaXMudGltZXI9dGhpcy5fZGVsYXkoZnVuY3Rpb24oKXt0aGlzLl9jbG9zZSgpfSx0aGlzLmRlbGF5KSxpPXQuY2hpbGRyZW4oIi51aS1tZW51IiksaS5sZW5ndGgmJmUmJi9ebW91c2UvLnRlc3QoZS50eXBlKSYmdGhpcy5fc3RhcnRPcGVuaW5nKGkpLHRoaXMuYWN0aXZlTWVudT10LnBhcmVudCgpLHRoaXMuX3RyaWdnZXIoImZvY3VzIixlLHtpdGVtOnR9KX0sX3Njcm9sbEludG9WaWV3OmZ1bmN0aW9uKHQpe3ZhciBpLHMsbixhLG8scjt0aGlzLl9oYXNTY3JvbGwoKSYmKGk9cGFyc2VGbG9hdChlLmNzcyh0aGlzLmFjdGl2ZU1lbnVbMF0sImJvcmRlclRvcFdpZHRoIikpfHwwLHM9cGFyc2VGbG9hdChlLmNzcyh0aGlzLmFjdGl2ZU1lbnVbMF0sInBhZGRpbmdUb3AiKSl8fDAsbj10Lm9mZnNldCgpLnRvcC10aGlzLmFjdGl2ZU1lbnUub2Zmc2V0KCkudG9wLWktcyxhPXRoaXMuYWN0aXZlTWVudS5zY3JvbGxUb3AoKSxvPXRoaXMuYWN0aXZlTWVudS5oZWlnaHQoKSxyPXQub3V0ZXJIZWlnaHQoKSwwPm4/dGhpcy5hY3RpdmVNZW51LnNjcm9sbFRvcChhK24pOm4rcj5vJiZ0aGlzLmFjdGl2ZU1lbnUuc2Nyb2xsVG9wKGErbi1vK3IpKX0sYmx1cjpmdW5jdGlvbihlLHQpe3R8fGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLmFjdGl2ZSYmKHRoaXMuYWN0aXZlLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpLHRoaXMuYWN0aXZlPW51bGwsdGhpcy5fdHJpZ2dlcigiYmx1ciIsZSx7aXRlbTp0aGlzLmFjdGl2ZX0pKX0sX3N0YXJ0T3BlbmluZzpmdW5jdGlvbihlKXtjbGVhclRpbWVvdXQodGhpcy50aW1lciksInRydWUiPT09ZS5hdHRyKCJhcmlhLWhpZGRlbiIpJiYodGhpcy50aW1lcj10aGlzLl9kZWxheShmdW5jdGlvbigpe3RoaXMuX2Nsb3NlKCksdGhpcy5fb3BlbihlKX0sdGhpcy5kZWxheSkpfSxfb3BlbjpmdW5jdGlvbih0KXt2YXIgaT1lLmV4dGVuZCh7b2Y6dGhpcy5hY3RpdmV9LHRoaXMub3B0aW9ucy5wb3NpdGlvbik7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMuZWxlbWVudC5maW5kKCIudWktbWVudSIpLm5vdCh0LnBhcmVudHMoIi51aS1tZW51IikpLmhpZGUoKS5hdHRyKCJhcmlhLWhpZGRlbiIsInRydWUiKSx0LnNob3coKS5yZW1vdmVBdHRyKCJhcmlhLWhpZGRlbiIpLmF0dHIoImFyaWEtZXhwYW5kZWQiLCJ0cnVlIikucG9zaXRpb24oaSl9LGNvbGxhcHNlQWxsOmZ1bmN0aW9uKHQsaSl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMudGltZXI9dGhpcy5fZGVsYXkoZnVuY3Rpb24oKXt2YXIgcz1pP3RoaXMuZWxlbWVudDplKHQmJnQudGFyZ2V0KS5jbG9zZXN0KHRoaXMuZWxlbWVudC5maW5kKCIudWktbWVudSIpKTtzLmxlbmd0aHx8KHM9dGhpcy5lbGVtZW50KSx0aGlzLl9jbG9zZShzKSx0aGlzLmJsdXIodCksdGhpcy5hY3RpdmVNZW51PXN9LHRoaXMuZGVsYXkpfSxfY2xvc2U6ZnVuY3Rpb24oZSl7ZXx8KGU9dGhpcy5hY3RpdmU/dGhpcy5hY3RpdmUucGFyZW50KCk6dGhpcy5lbGVtZW50KSxlLmZpbmQoIi51aS1tZW51IikuaGlkZSgpLmF0dHIoImFyaWEtaGlkZGVuIiwidHJ1ZSIpLmF0dHIoImFyaWEtZXhwYW5kZWQiLCJmYWxzZSIpLmVuZCgpLmZpbmQoIi51aS1zdGF0ZS1hY3RpdmUiKS5ub3QoIi51aS1zdGF0ZS1mb2N1cyIpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKX0sX2Nsb3NlT25Eb2N1bWVudENsaWNrOmZ1bmN0aW9uKHQpe3JldHVybiFlKHQudGFyZ2V0KS5jbG9zZXN0KCIudWktbWVudSIpLmxlbmd0aH0sX2lzRGl2aWRlcjpmdW5jdGlvbihlKXtyZXR1cm4hL1teXC1cdTIwMTRcdTIwMTNcc10vLnRlc3QoZS50ZXh0KCkpfSxjb2xsYXBzZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmFjdGl2ZSYmdGhpcy5hY3RpdmUucGFyZW50KCkuY2xvc2VzdCgiLnVpLW1lbnUtaXRlbSIsdGhpcy5lbGVtZW50KTt0JiZ0Lmxlbmd0aCYmKHRoaXMuX2Nsb3NlKCksdGhpcy5mb2N1cyhlLHQpKX0sZXhwYW5kOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuYWN0aXZlJiZ0aGlzLmFjdGl2ZS5jaGlsZHJlbigiLnVpLW1lbnUgIikuZmluZCh0aGlzLm9wdGlvbnMuaXRlbXMpLmZpcnN0KCk7dCYmdC5sZW5ndGgmJih0aGlzLl9vcGVuKHQucGFyZW50KCkpLHRoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7dGhpcy5mb2N1cyhlLHQpfSkpfSxuZXh0OmZ1bmN0aW9uKGUpe3RoaXMuX21vdmUoIm5leHQiLCJmaXJzdCIsZSl9LHByZXZpb3VzOmZ1bmN0aW9uKGUpe3RoaXMuX21vdmUoInByZXYiLCJsYXN0IixlKX0saXNGaXJzdEl0ZW06ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hY3RpdmUmJiF0aGlzLmFjdGl2ZS5wcmV2QWxsKCIudWktbWVudS1pdGVtIikubGVuZ3RofSxpc0xhc3RJdGVtOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYWN0aXZlJiYhdGhpcy5hY3RpdmUubmV4dEFsbCgiLnVpLW1lbnUtaXRlbSIpLmxlbmd0aH0sX21vdmU6ZnVuY3Rpb24oZSx0LGkpe3ZhciBzO3RoaXMuYWN0aXZlJiYocz0iZmlyc3QiPT09ZXx8Imxhc3QiPT09ZT90aGlzLmFjdGl2ZVsiZmlyc3QiPT09ZT8icHJldkFsbCI6Im5leHRBbGwiXSgiLnVpLW1lbnUtaXRlbSIpLmVxKC0xKTp0aGlzLmFjdGl2ZVtlKyJBbGwiXSgiLnVpLW1lbnUtaXRlbSIpLmVxKDApKSxzJiZzLmxlbmd0aCYmdGhpcy5hY3RpdmV8fChzPXRoaXMuYWN0aXZlTWVudS5maW5kKHRoaXMub3B0aW9ucy5pdGVtcylbdF0oKSksdGhpcy5mb2N1cyhpLHMpfSxuZXh0UGFnZTpmdW5jdGlvbih0KXt2YXIgaSxzLG47cmV0dXJuIHRoaXMuYWN0aXZlPyh0aGlzLmlzTGFzdEl0ZW0oKXx8KHRoaXMuX2hhc1Njcm9sbCgpPyhzPXRoaXMuYWN0aXZlLm9mZnNldCgpLnRvcCxuPXRoaXMuZWxlbWVudC5oZWlnaHQoKSx0aGlzLmFjdGl2ZS5uZXh0QWxsKCIudWktbWVudS1pdGVtIikuZWFjaChmdW5jdGlvbigpe3JldHVybiBpPWUodGhpcyksMD5pLm9mZnNldCgpLnRvcC1zLW59KSx0aGlzLmZvY3VzKHQsaSkpOnRoaXMuZm9jdXModCx0aGlzLmFjdGl2ZU1lbnUuZmluZCh0aGlzLm9wdGlvbnMuaXRlbXMpW3RoaXMuYWN0aXZlPyJsYXN0IjoiZmlyc3QiXSgpKSksdm9pZCAwKToodGhpcy5uZXh0KHQpLHZvaWQgMCl9LHByZXZpb3VzUGFnZTpmdW5jdGlvbih0KXt2YXIgaSxzLG47cmV0dXJuIHRoaXMuYWN0aXZlPyh0aGlzLmlzRmlyc3RJdGVtKCl8fCh0aGlzLl9oYXNTY3JvbGwoKT8ocz10aGlzLmFjdGl2ZS5vZmZzZXQoKS50b3Asbj10aGlzLmVsZW1lbnQuaGVpZ2h0KCksdGhpcy5hY3RpdmUucHJldkFsbCgiLnVpLW1lbnUtaXRlbSIpLmVhY2goZnVuY3Rpb24oKXtyZXR1cm4gaT1lKHRoaXMpLGkub2Zmc2V0KCkudG9wLXMrbj4wfSksdGhpcy5mb2N1cyh0LGkpKTp0aGlzLmZvY3VzKHQsdGhpcy5hY3RpdmVNZW51LmZpbmQodGhpcy5vcHRpb25zLml0ZW1zKS5maXJzdCgpKSksdm9pZCAwKToodGhpcy5uZXh0KHQpLHZvaWQgMCl9LF9oYXNTY3JvbGw6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbGVtZW50Lm91dGVySGVpZ2h0KCk8dGhpcy5lbGVtZW50LnByb3AoInNjcm9sbEhlaWdodCIpfSxzZWxlY3Q6ZnVuY3Rpb24odCl7dGhpcy5hY3RpdmU9dGhpcy5hY3RpdmV8fGUodC50YXJnZXQpLmNsb3Nlc3QoIi51aS1tZW51LWl0ZW0iKTt2YXIgaT17aXRlbTp0aGlzLmFjdGl2ZX07dGhpcy5hY3RpdmUuaGFzKCIudWktbWVudSIpLmxlbmd0aHx8dGhpcy5jb2xsYXBzZUFsbCh0LCEwKSx0aGlzLl90cmlnZ2VyKCJzZWxlY3QiLHQsaSl9LF9maWx0ZXJNZW51SXRlbXM6ZnVuY3Rpb24odCl7dmFyIGk9dC5yZXBsYWNlKC9bXC1cW1xde30oKSorPy4sXFxcXiR8I1xzXS9nLCJcXCQmIikscz1SZWdFeHAoIl4iK2ksImkiKTtyZXR1cm4gdGhpcy5hY3RpdmVNZW51LmZpbmQodGhpcy5vcHRpb25zLml0ZW1zKS5maWx0ZXIoIi51aS1tZW51LWl0ZW0iKS5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gcy50ZXN0KGUudHJpbShlKHRoaXMpLnRleHQoKSkpfSl9fSksZS53aWRnZXQoInVpLmF1dG9jb21wbGV0ZSIse3ZlcnNpb246IjEuMTEuNCIsZGVmYXVsdEVsZW1lbnQ6IjxpbnB1dD4iLG9wdGlvbnM6e2FwcGVuZFRvOm51bGwsYXV0b0ZvY3VzOiExLGRlbGF5OjMwMCxtaW5MZW5ndGg6MSxwb3NpdGlvbjp7bXk6ImxlZnQgdG9wIixhdDoibGVmdCBib3R0b20iLGNvbGxpc2lvbjoibm9uZSJ9LHNvdXJjZTpudWxsLGNoYW5nZTpudWxsLGNsb3NlOm51bGwsZm9jdXM6bnVsbCxvcGVuOm51bGwscmVzcG9uc2U6bnVsbCxzZWFyY2g6bnVsbCxzZWxlY3Q6bnVsbH0scmVxdWVzdEluZGV4OjAscGVuZGluZzowLF9jcmVhdGU6ZnVuY3Rpb24oKXt2YXIgdCxpLHMsbj10aGlzLmVsZW1lbnRbMF0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxhPSJ0ZXh0YXJlYSI9PT1uLG89ImlucHV0Ij09PW47dGhpcy5pc011bHRpTGluZT1hPyEwOm8/ITE6dGhpcy5lbGVtZW50LnByb3AoImlzQ29udGVudEVkaXRhYmxlIiksdGhpcy52YWx1ZU1ldGhvZD10aGlzLmVsZW1lbnRbYXx8bz8idmFsIjoidGV4dCJdLHRoaXMuaXNOZXdNZW51PSEwLHRoaXMuZWxlbWVudC5hZGRDbGFzcygidWktYXV0b2NvbXBsZXRlLWlucHV0IikuYXR0cigiYXV0b2NvbXBsZXRlIiwib2ZmIiksdGhpcy5fb24odGhpcy5lbGVtZW50LHtrZXlkb3duOmZ1bmN0aW9uKG4pe2lmKHRoaXMuZWxlbWVudC5wcm9wKCJyZWFkT25seSIpKXJldHVybiB0PSEwLHM9ITAsaT0hMCx2b2lkIDA7dD0hMSxzPSExLGk9ITE7dmFyIGE9ZS51aS5rZXlDb2RlO3N3aXRjaChuLmtleUNvZGUpe2Nhc2UgYS5QQUdFX1VQOnQ9ITAsdGhpcy5fbW92ZSgicHJldmlvdXNQYWdlIixuKTticmVhaztjYXNlIGEuUEFHRV9ET1dOOnQ9ITAsdGhpcy5fbW92ZSgibmV4dFBhZ2UiLG4pO2JyZWFrO2Nhc2UgYS5VUDp0PSEwLHRoaXMuX2tleUV2ZW50KCJwcmV2aW91cyIsbik7YnJlYWs7Y2FzZSBhLkRPV046dD0hMCx0aGlzLl9rZXlFdmVudCgibmV4dCIsbik7YnJlYWs7Y2FzZSBhLkVOVEVSOnRoaXMubWVudS5hY3RpdmUmJih0PSEwLG4ucHJldmVudERlZmF1bHQoKSx0aGlzLm1lbnUuc2VsZWN0KG4pKTticmVhaztjYXNlIGEuVEFCOnRoaXMubWVudS5hY3RpdmUmJnRoaXMubWVudS5zZWxlY3Qobik7YnJlYWs7Y2FzZSBhLkVTQ0FQRTp0aGlzLm1lbnUuZWxlbWVudC5pcygiOnZpc2libGUiKSYmKHRoaXMuaXNNdWx0aUxpbmV8fHRoaXMuX3ZhbHVlKHRoaXMudGVybSksdGhpcy5jbG9zZShuKSxuLnByZXZlbnREZWZhdWx0KCkpO2JyZWFrO2RlZmF1bHQ6aT0hMCx0aGlzLl9zZWFyY2hUaW1lb3V0KG4pfX0sa2V5cHJlc3M6ZnVuY3Rpb24ocyl7aWYodClyZXR1cm4gdD0hMSwoIXRoaXMuaXNNdWx0aUxpbmV8fHRoaXMubWVudS5lbGVtZW50LmlzKCI6dmlzaWJsZSIpKSYmcy5wcmV2ZW50RGVmYXVsdCgpLHZvaWQgMDtpZighaSl7dmFyIG49ZS51aS5rZXlDb2RlO3N3aXRjaChzLmtleUNvZGUpe2Nhc2Ugbi5QQUdFX1VQOnRoaXMuX21vdmUoInByZXZpb3VzUGFnZSIscyk7YnJlYWs7Y2FzZSBuLlBBR0VfRE9XTjp0aGlzLl9tb3ZlKCJuZXh0UGFnZSIscyk7YnJlYWs7Y2FzZSBuLlVQOnRoaXMuX2tleUV2ZW50KCJwcmV2aW91cyIscyk7YnJlYWs7Y2FzZSBuLkRPV046dGhpcy5fa2V5RXZlbnQoIm5leHQiLHMpfX19LGlucHV0OmZ1bmN0aW9uKGUpe3JldHVybiBzPyhzPSExLGUucHJldmVudERlZmF1bHQoKSx2b2lkIDApOih0aGlzLl9zZWFyY2hUaW1lb3V0KGUpLHZvaWQgMCl9LGZvY3VzOmZ1bmN0aW9uKCl7dGhpcy5zZWxlY3RlZEl0ZW09bnVsbCx0aGlzLnByZXZpb3VzPXRoaXMuX3ZhbHVlKCl9LGJsdXI6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY2FuY2VsQmx1cj8oZGVsZXRlIHRoaXMuY2FuY2VsQmx1cix2b2lkIDApOihjbGVhclRpbWVvdXQodGhpcy5zZWFyY2hpbmcpLHRoaXMuY2xvc2UoZSksdGhpcy5fY2hhbmdlKGUpLHZvaWQgMCl9fSksdGhpcy5faW5pdFNvdXJjZSgpLHRoaXMubWVudT1lKCI8dWw+IikuYWRkQ2xhc3MoInVpLWF1dG9jb21wbGV0ZSB1aS1mcm9udCIpLmFwcGVuZFRvKHRoaXMuX2FwcGVuZFRvKCkpLm1lbnUoe3JvbGU6bnVsbH0pLmhpZGUoKS5tZW51KCJpbnN0YW5jZSIpLHRoaXMuX29uKHRoaXMubWVudS5lbGVtZW50LHttb3VzZWRvd246ZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY2FuY2VsQmx1cj0hMCx0aGlzLl9kZWxheShmdW5jdGlvbigpe2RlbGV0ZSB0aGlzLmNhbmNlbEJsdXJ9KTt2YXIgaT10aGlzLm1lbnUuZWxlbWVudFswXTtlKHQudGFyZ2V0KS5jbG9zZXN0KCIudWktbWVudS1pdGVtIikubGVuZ3RofHx0aGlzLl9kZWxheShmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5kb2N1bWVudC5vbmUoIm1vdXNlZG93biIsZnVuY3Rpb24ocyl7cy50YXJnZXQ9PT10LmVsZW1lbnRbMF18fHMudGFyZ2V0PT09aXx8ZS5jb250YWlucyhpLHMudGFyZ2V0KXx8dC5jbG9zZSgpfSl9KX0sbWVudWZvY3VzOmZ1bmN0aW9uKHQsaSl7dmFyIHMsbjtyZXR1cm4gdGhpcy5pc05ld01lbnUmJih0aGlzLmlzTmV3TWVudT0hMSx0Lm9yaWdpbmFsRXZlbnQmJi9ebW91c2UvLnRlc3QodC5vcmlnaW5hbEV2ZW50LnR5cGUpKT8odGhpcy5tZW51LmJsdXIoKSx0aGlzLmRvY3VtZW50Lm9uZSgibW91c2Vtb3ZlIixmdW5jdGlvbigpe2UodC50YXJnZXQpLnRyaWdnZXIodC5vcmlnaW5hbEV2ZW50KX0pLHZvaWQgMCk6KG49aS5pdGVtLmRhdGEoInVpLWF1dG9jb21wbGV0ZS1pdGVtIiksITEhPT10aGlzLl90cmlnZ2VyKCJmb2N1cyIsdCx7aXRlbTpufSkmJnQub3JpZ2luYWxFdmVudCYmL15rZXkvLnRlc3QodC5vcmlnaW5hbEV2ZW50LnR5cGUpJiZ0aGlzLl92YWx1ZShuLnZhbHVlKSxzPWkuaXRlbS5hdHRyKCJhcmlhLWxhYmVsIil8fG4udmFsdWUscyYmZS50cmltKHMpLmxlbmd0aCYmKHRoaXMubGl2ZVJlZ2lvbi5jaGlsZHJlbigpLmhpZGUoKSxlKCI8ZGl2PiIpLnRleHQocykuYXBwZW5kVG8odGhpcy5saXZlUmVnaW9uKSksdm9pZCAwKX0sbWVudXNlbGVjdDpmdW5jdGlvbihlLHQpe3ZhciBpPXQuaXRlbS5kYXRhKCJ1aS1hdXRvY29tcGxldGUtaXRlbSIpLHM9dGhpcy5wcmV2aW91czt0aGlzLmVsZW1lbnRbMF0hPT10aGlzLmRvY3VtZW50WzBdLmFjdGl2ZUVsZW1lbnQmJih0aGlzLmVsZW1lbnQuZm9jdXMoKSx0aGlzLnByZXZpb3VzPXMsdGhpcy5fZGVsYXkoZnVuY3Rpb24oKXt0aGlzLnByZXZpb3VzPXMsdGhpcy5zZWxlY3RlZEl0ZW09aX0pKSwhMSE9PXRoaXMuX3RyaWdnZXIoInNlbGVjdCIsZSx7aXRlbTppfSkmJnRoaXMuX3ZhbHVlKGkudmFsdWUpLHRoaXMudGVybT10aGlzLl92YWx1ZSgpLHRoaXMuY2xvc2UoZSksdGhpcy5zZWxlY3RlZEl0ZW09aX19KSx0aGlzLmxpdmVSZWdpb249ZSgiPHNwYW4+Iix7cm9sZToic3RhdHVzIiwiYXJpYS1saXZlIjoiYXNzZXJ0aXZlIiwiYXJpYS1yZWxldmFudCI6ImFkZGl0aW9ucyJ9KS5hZGRDbGFzcygidWktaGVscGVyLWhpZGRlbi1hY2Nlc3NpYmxlIikuYXBwZW5kVG8odGhpcy5kb2N1bWVudFswXS5ib2R5KSx0aGlzLl9vbih0aGlzLndpbmRvdyx7YmVmb3JldW5sb2FkOmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LnJlbW92ZUF0dHIoImF1dG9jb21wbGV0ZSIpfX0pfSxfZGVzdHJveTpmdW5jdGlvbigpe2NsZWFyVGltZW91dCh0aGlzLnNlYXJjaGluZyksdGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1hdXRvY29tcGxldGUtaW5wdXQiKS5yZW1vdmVBdHRyKCJhdXRvY29tcGxldGUiKSx0aGlzLm1lbnUuZWxlbWVudC5yZW1vdmUoKSx0aGlzLmxpdmVSZWdpb24ucmVtb3ZlKCl9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXt0aGlzLl9zdXBlcihlLHQpLCJzb3VyY2UiPT09ZSYmdGhpcy5faW5pdFNvdXJjZSgpLCJhcHBlbmRUbyI9PT1lJiZ0aGlzLm1lbnUuZWxlbWVudC5hcHBlbmRUbyh0aGlzLl9hcHBlbmRUbygpKSwiZGlzYWJsZWQiPT09ZSYmdCYmdGhpcy54aHImJnRoaXMueGhyLmFib3J0KCl9LF9hcHBlbmRUbzpmdW5jdGlvbigpe3ZhciB0PXRoaXMub3B0aW9ucy5hcHBlbmRUbztyZXR1cm4gdCYmKHQ9dC5qcXVlcnl8fHQubm9kZVR5cGU/ZSh0KTp0aGlzLmRvY3VtZW50LmZpbmQodCkuZXEoMCkpLHQmJnRbMF18fCh0PXRoaXMuZWxlbWVudC5jbG9zZXN0KCIudWktZnJvbnQiKSksdC5sZW5ndGh8fCh0PXRoaXMuZG9jdW1lbnRbMF0uYm9keSksdH0sX2luaXRTb3VyY2U6ZnVuY3Rpb24oKXt2YXIgdCxpLHM9dGhpcztlLmlzQXJyYXkodGhpcy5vcHRpb25zLnNvdXJjZSk/KHQ9dGhpcy5vcHRpb25zLnNvdXJjZSx0aGlzLnNvdXJjZT1mdW5jdGlvbihpLHMpe3MoZS51aS5hdXRvY29tcGxldGUuZmlsdGVyKHQsaS50ZXJtKSl9KToic3RyaW5nIj09dHlwZW9mIHRoaXMub3B0aW9ucy5zb3VyY2U/KGk9dGhpcy5vcHRpb25zLnNvdXJjZSx0aGlzLnNvdXJjZT1mdW5jdGlvbih0LG4pe3MueGhyJiZzLnhoci5hYm9ydCgpLHMueGhyPWUuYWpheCh7dXJsOmksZGF0YTp0LGRhdGFUeXBlOiJqc29uIixzdWNjZXNzOmZ1bmN0aW9uKGUpe24oZSl9LGVycm9yOmZ1bmN0aW9uKCl7bihbXSl9fSl9KTp0aGlzLnNvdXJjZT10aGlzLm9wdGlvbnMuc291cmNlfSxfc2VhcmNoVGltZW91dDpmdW5jdGlvbihlKXtjbGVhclRpbWVvdXQodGhpcy5zZWFyY2hpbmcpLHRoaXMuc2VhcmNoaW5nPXRoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy50ZXJtPT09dGhpcy5fdmFsdWUoKSxpPXRoaXMubWVudS5lbGVtZW50LmlzKCI6dmlzaWJsZSIpLHM9ZS5hbHRLZXl8fGUuY3RybEtleXx8ZS5tZXRhS2V5fHxlLnNoaWZ0S2V5OyghdHx8dCYmIWkmJiFzKSYmKHRoaXMuc2VsZWN0ZWRJdGVtPW51bGwsdGhpcy5zZWFyY2gobnVsbCxlKSl9LHRoaXMub3B0aW9ucy5kZWxheSl9LHNlYXJjaDpmdW5jdGlvbihlLHQpe3JldHVybiBlPW51bGwhPWU/ZTp0aGlzLl92YWx1ZSgpLHRoaXMudGVybT10aGlzLl92YWx1ZSgpLGUubGVuZ3RoPHRoaXMub3B0aW9ucy5taW5MZW5ndGg/dGhpcy5jbG9zZSh0KTp0aGlzLl90cmlnZ2VyKCJzZWFyY2giLHQpIT09ITE/dGhpcy5fc2VhcmNoKGUpOnZvaWQgMH0sX3NlYXJjaDpmdW5jdGlvbihlKXt0aGlzLnBlbmRpbmcrKyx0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLWF1dG9jb21wbGV0ZS1sb2FkaW5nIiksdGhpcy5jYW5jZWxTZWFyY2g9ITEsdGhpcy5zb3VyY2Uoe3Rlcm06ZX0sdGhpcy5fcmVzcG9uc2UoKSl9LF9yZXNwb25zZTpmdW5jdGlvbigpe3ZhciB0PSsrdGhpcy5yZXF1ZXN0SW5kZXg7cmV0dXJuIGUucHJveHkoZnVuY3Rpb24oZSl7dD09PXRoaXMucmVxdWVzdEluZGV4JiZ0aGlzLl9fcmVzcG9uc2UoZSksdGhpcy5wZW5kaW5nLS0sdGhpcy5wZW5kaW5nfHx0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLWF1dG9jb21wbGV0ZS1sb2FkaW5nIil9LHRoaXMpfSxfX3Jlc3BvbnNlOmZ1bmN0aW9uKGUpe2UmJihlPXRoaXMuX25vcm1hbGl6ZShlKSksdGhpcy5fdHJpZ2dlcigicmVzcG9uc2UiLG51bGwse2NvbnRlbnQ6ZX0pLCF0aGlzLm9wdGlvbnMuZGlzYWJsZWQmJmUmJmUubGVuZ3RoJiYhdGhpcy5jYW5jZWxTZWFyY2g/KHRoaXMuX3N1Z2dlc3QoZSksdGhpcy5fdHJpZ2dlcigib3BlbiIpKTp0aGlzLl9jbG9zZSgpfSxjbG9zZTpmdW5jdGlvbihlKXt0aGlzLmNhbmNlbFNlYXJjaD0hMCx0aGlzLl9jbG9zZShlKX0sX2Nsb3NlOmZ1bmN0aW9uKGUpe3RoaXMubWVudS5lbGVtZW50LmlzKCI6dmlzaWJsZSIpJiYodGhpcy5tZW51LmVsZW1lbnQuaGlkZSgpLHRoaXMubWVudS5ibHVyKCksdGhpcy5pc05ld01lbnU9ITAsdGhpcy5fdHJpZ2dlcigiY2xvc2UiLGUpKX0sX2NoYW5nZTpmdW5jdGlvbihlKXt0aGlzLnByZXZpb3VzIT09dGhpcy5fdmFsdWUoKSYmdGhpcy5fdHJpZ2dlcigiY2hhbmdlIixlLHtpdGVtOnRoaXMuc2VsZWN0ZWRJdGVtfSl9LF9ub3JtYWxpemU6ZnVuY3Rpb24odCl7cmV0dXJuIHQubGVuZ3RoJiZ0WzBdLmxhYmVsJiZ0WzBdLnZhbHVlP3Q6ZS5tYXAodCxmdW5jdGlvbih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/e2xhYmVsOnQsdmFsdWU6dH06ZS5leHRlbmQoe30sdCx7bGFiZWw6dC5sYWJlbHx8dC52YWx1ZSx2YWx1ZTp0LnZhbHVlfHx0LmxhYmVsfSl9KX0sX3N1Z2dlc3Q6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5tZW51LmVsZW1lbnQuZW1wdHkoKTt0aGlzLl9yZW5kZXJNZW51KGksdCksdGhpcy5pc05ld01lbnU9ITAsdGhpcy5tZW51LnJlZnJlc2goKSxpLnNob3coKSx0aGlzLl9yZXNpemVNZW51KCksaS5wb3NpdGlvbihlLmV4dGVuZCh7b2Y6dGhpcy5lbGVtZW50fSx0aGlzLm9wdGlvbnMucG9zaXRpb24pKSx0aGlzLm9wdGlvbnMuYXV0b0ZvY3VzJiZ0aGlzLm1lbnUubmV4dCgpfSxfcmVzaXplTWVudTpmdW5jdGlvbigpe3ZhciBlPXRoaXMubWVudS5lbGVtZW50O2Uub3V0ZXJXaWR0aChNYXRoLm1heChlLndpZHRoKCIiKS5vdXRlcldpZHRoKCkrMSx0aGlzLmVsZW1lbnQub3V0ZXJXaWR0aCgpKSl9LF9yZW5kZXJNZW51OmZ1bmN0aW9uKHQsaSl7dmFyIHM9dGhpcztlLmVhY2goaSxmdW5jdGlvbihlLGkpe3MuX3JlbmRlckl0ZW1EYXRhKHQsaSl9KX0sX3JlbmRlckl0ZW1EYXRhOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuX3JlbmRlckl0ZW0oZSx0KS5kYXRhKCJ1aS1hdXRvY29tcGxldGUtaXRlbSIsdCl9LF9yZW5kZXJJdGVtOmZ1bmN0aW9uKHQsaSl7cmV0dXJuIGUoIjxsaT4iKS50ZXh0KGkubGFiZWwpLmFwcGVuZFRvKHQpfSxfbW92ZTpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLm1lbnUuZWxlbWVudC5pcygiOnZpc2libGUiKT90aGlzLm1lbnUuaXNGaXJzdEl0ZW0oKSYmL15wcmV2aW91cy8udGVzdChlKXx8dGhpcy5tZW51LmlzTGFzdEl0ZW0oKSYmL15uZXh0Ly50ZXN0KGUpPyh0aGlzLmlzTXVsdGlMaW5lfHx0aGlzLl92YWx1ZSh0aGlzLnRlcm0pLHRoaXMubWVudS5ibHVyKCksdm9pZCAwKToodGhpcy5tZW51W2VdKHQpLHZvaWQgMCk6KHRoaXMuc2VhcmNoKG51bGwsdCksdm9pZCAwKX0sd2lkZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWVudS5lbGVtZW50fSxfdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZU1ldGhvZC5hcHBseSh0aGlzLmVsZW1lbnQsYXJndW1lbnRzKX0sX2tleUV2ZW50OmZ1bmN0aW9uKGUsdCl7KCF0aGlzLmlzTXVsdGlMaW5lfHx0aGlzLm1lbnUuZWxlbWVudC5pcygiOnZpc2libGUiKSkmJih0aGlzLl9tb3ZlKGUsdCksdC5wcmV2ZW50RGVmYXVsdCgpKX19KSxlLmV4dGVuZChlLnVpLmF1dG9jb21wbGV0ZSx7ZXNjYXBlUmVnZXg6ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZSgvW1wtXFtcXXt9KCkqKz8uLFxcXF4kfCNcc10vZywiXFwkJiIpfSxmaWx0ZXI6ZnVuY3Rpb24odCxpKXt2YXIgcz1SZWdFeHAoZS51aS5hdXRvY29tcGxldGUuZXNjYXBlUmVnZXgoaSksImkiKTtyZXR1cm4gZS5ncmVwKHQsZnVuY3Rpb24oZSl7cmV0dXJuIHMudGVzdChlLmxhYmVsfHxlLnZhbHVlfHxlKX0pfX0pLGUud2lkZ2V0KCJ1aS5hdXRvY29tcGxldGUiLGUudWkuYXV0b2NvbXBsZXRlLHtvcHRpb25zOnttZXNzYWdlczp7bm9SZXN1bHRzOiJObyBzZWFyY2ggcmVzdWx0cy4iLHJlc3VsdHM6ZnVuY3Rpb24oZSl7cmV0dXJuIGUrKGU+MT8iIHJlc3VsdHMgYXJlIjoiIHJlc3VsdCBpcyIpKyIgYXZhaWxhYmxlLCB1c2UgdXAgYW5kIGRvd24gYXJyb3cga2V5cyB0byBuYXZpZ2F0ZS4ifX19LF9fcmVzcG9uc2U6ZnVuY3Rpb24odCl7dmFyIGk7dGhpcy5fc3VwZXJBcHBseShhcmd1bWVudHMpLHRoaXMub3B0aW9ucy5kaXNhYmxlZHx8dGhpcy5jYW5jZWxTZWFyY2h8fChpPXQmJnQubGVuZ3RoP3RoaXMub3B0aW9ucy5tZXNzYWdlcy5yZXN1bHRzKHQubGVuZ3RoKTp0aGlzLm9wdGlvbnMubWVzc2FnZXMubm9SZXN1bHRzLHRoaXMubGl2ZVJlZ2lvbi5jaGlsZHJlbigpLmhpZGUoKSxlKCI8ZGl2PiIpLnRleHQoaSkuYXBwZW5kVG8odGhpcy5saXZlUmVnaW9uKSl9fSksZS51aS5hdXRvY29tcGxldGU7dmFyIGMscD0idWktYnV0dG9uIHVpLXdpZGdldCB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwiLGY9InVpLWJ1dHRvbi1pY29ucy1vbmx5IHVpLWJ1dHRvbi1pY29uLW9ubHkgdWktYnV0dG9uLXRleHQtaWNvbnMgdWktYnV0dG9uLXRleHQtaWNvbi1wcmltYXJ5IHVpLWJ1dHRvbi10ZXh0LWljb24tc2Vjb25kYXJ5IHVpLWJ1dHRvbi10ZXh0LW9ubHkiLG09ZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0LmZpbmQoIjp1aS1idXR0b24iKS5idXR0b24oInJlZnJlc2giKX0sMSl9LGc9ZnVuY3Rpb24odCl7dmFyIGk9dC5uYW1lLHM9dC5mb3JtLG49ZShbXSk7cmV0dXJuIGkmJihpPWkucmVwbGFjZSgvJy9nLCJcXCciKSxuPXM/ZShzKS5maW5kKCJbbmFtZT0nIitpKyInXVt0eXBlPXJhZGlvXSIpOmUoIltuYW1lPSciK2krIiddW3R5cGU9cmFkaW9dIix0Lm93bmVyRG9jdW1lbnQpLmZpbHRlcihmdW5jdGlvbigpe3JldHVybiF0aGlzLmZvcm19KSksbn07ZS53aWRnZXQoInVpLmJ1dHRvbiIse3ZlcnNpb246IjEuMTEuNCIsZGVmYXVsdEVsZW1lbnQ6IjxidXR0b24+IixvcHRpb25zOntkaXNhYmxlZDpudWxsLHRleHQ6ITAsbGFiZWw6bnVsbCxpY29uczp7cHJpbWFyeTpudWxsLHNlY29uZGFyeTpudWxsfX0sX2NyZWF0ZTpmdW5jdGlvbigpe3RoaXMuZWxlbWVudC5jbG9zZXN0KCJmb3JtIikudW5iaW5kKCJyZXNldCIrdGhpcy5ldmVudE5hbWVzcGFjZSkuYmluZCgicmVzZXQiK3RoaXMuZXZlbnROYW1lc3BhY2UsbSksImJvb2xlYW4iIT10eXBlb2YgdGhpcy5vcHRpb25zLmRpc2FibGVkP3RoaXMub3B0aW9ucy5kaXNhYmxlZD0hIXRoaXMuZWxlbWVudC5wcm9wKCJkaXNhYmxlZCIpOnRoaXMuZWxlbWVudC5wcm9wKCJkaXNhYmxlZCIsdGhpcy5vcHRpb25zLmRpc2FibGVkKSx0aGlzLl9kZXRlcm1pbmVCdXR0b25UeXBlKCksdGhpcy5oYXNUaXRsZT0hIXRoaXMuYnV0dG9uRWxlbWVudC5hdHRyKCJ0aXRsZSIpO3ZhciB0PXRoaXMsaT10aGlzLm9wdGlvbnMscz0iY2hlY2tib3giPT09dGhpcy50eXBlfHwicmFkaW8iPT09dGhpcy50eXBlLG49cz8iIjoidWktc3RhdGUtYWN0aXZlIjtudWxsPT09aS5sYWJlbCYmKGkubGFiZWw9ImlucHV0Ij09PXRoaXMudHlwZT90aGlzLmJ1dHRvbkVsZW1lbnQudmFsKCk6dGhpcy5idXR0b25FbGVtZW50Lmh0bWwoKSksdGhpcy5faG92ZXJhYmxlKHRoaXMuYnV0dG9uRWxlbWVudCksdGhpcy5idXR0b25FbGVtZW50LmFkZENsYXNzKHApLmF0dHIoInJvbGUiLCJidXR0b24iKS5iaW5kKCJtb3VzZWVudGVyIit0aGlzLmV2ZW50TmFtZXNwYWNlLGZ1bmN0aW9uKCl7aS5kaXNhYmxlZHx8dGhpcz09PWMmJmUodGhpcykuYWRkQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpfSkuYmluZCgibW91c2VsZWF2ZSIrdGhpcy5ldmVudE5hbWVzcGFjZSxmdW5jdGlvbigpe2kuZGlzYWJsZWR8fGUodGhpcykucmVtb3ZlQ2xhc3Mobil9KS5iaW5kKCJjbGljayIrdGhpcy5ldmVudE5hbWVzcGFjZSxmdW5jdGlvbihlKXtpLmRpc2FibGVkJiYoZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCkpfSksdGhpcy5fb24oe2ZvY3VzOmZ1bmN0aW9uKCl7dGhpcy5idXR0b25FbGVtZW50LmFkZENsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpfSxibHVyOmZ1bmN0aW9uKCl7dGhpcy5idXR0b25FbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpfX0pLHMmJnRoaXMuZWxlbWVudC5iaW5kKCJjaGFuZ2UiK3RoaXMuZXZlbnROYW1lc3BhY2UsZnVuY3Rpb24oKXt0LnJlZnJlc2goKX0pLCJjaGVja2JveCI9PT10aGlzLnR5cGU/dGhpcy5idXR0b25FbGVtZW50LmJpbmQoImNsaWNrIit0aGlzLmV2ZW50TmFtZXNwYWNlLGZ1bmN0aW9uKCl7cmV0dXJuIGkuZGlzYWJsZWQ/ITE6dm9pZCAwfSk6InJhZGlvIj09PXRoaXMudHlwZT90aGlzLmJ1dHRvbkVsZW1lbnQuYmluZCgiY2xpY2siK3RoaXMuZXZlbnROYW1lc3BhY2UsZnVuY3Rpb24oKXtpZihpLmRpc2FibGVkKXJldHVybiExO2UodGhpcykuYWRkQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpLHQuYnV0dG9uRWxlbWVudC5hdHRyKCJhcmlhLXByZXNzZWQiLCJ0cnVlIik7dmFyIHM9dC5lbGVtZW50WzBdO2cocykubm90KHMpLm1hcChmdW5jdGlvbigpe3JldHVybiBlKHRoaXMpLmJ1dHRvbigid2lkZ2V0IilbMF19KS5yZW1vdmVDbGFzcygidWktc3RhdGUtYWN0aXZlIikuYXR0cigiYXJpYS1wcmVzc2VkIiwiZmFsc2UiKX0pOih0aGlzLmJ1dHRvbkVsZW1lbnQuYmluZCgibW91c2Vkb3duIit0aGlzLmV2ZW50TmFtZXNwYWNlLGZ1bmN0aW9uKCl7cmV0dXJuIGkuZGlzYWJsZWQ/ITE6KGUodGhpcykuYWRkQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpLGM9dGhpcyx0LmRvY3VtZW50Lm9uZSgibW91c2V1cCIsZnVuY3Rpb24oKXtjPW51bGx9KSx2b2lkIDApfSkuYmluZCgibW91c2V1cCIrdGhpcy5ldmVudE5hbWVzcGFjZSxmdW5jdGlvbigpe3JldHVybiBpLmRpc2FibGVkPyExOihlKHRoaXMpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKSx2b2lkIDApfSkuYmluZCgia2V5ZG93biIrdGhpcy5ldmVudE5hbWVzcGFjZSxmdW5jdGlvbih0KXtyZXR1cm4gaS5kaXNhYmxlZD8hMTooKHQua2V5Q29kZT09PWUudWkua2V5Q29kZS5TUEFDRXx8dC5rZXlDb2RlPT09ZS51aS5rZXlDb2RlLkVOVEVSKSYmZSh0aGlzKS5hZGRDbGFzcygidWktc3RhdGUtYWN0aXZlIiksdm9pZCAwKX0pLmJpbmQoImtleXVwIit0aGlzLmV2ZW50TmFtZXNwYWNlKyIgYmx1ciIrdGhpcy5ldmVudE5hbWVzcGFjZSxmdW5jdGlvbigpe2UodGhpcykucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpfSksdGhpcy5idXR0b25FbGVtZW50LmlzKCJhIikmJnRoaXMuYnV0dG9uRWxlbWVudC5rZXl1cChmdW5jdGlvbih0KXt0LmtleUNvZGU9PT1lLnVpLmtleUNvZGUuU1BBQ0UmJmUodGhpcykuY2xpY2soKX0pKSx0aGlzLl9zZXRPcHRpb24oImRpc2FibGVkIixpLmRpc2FibGVkKSx0aGlzLl9yZXNldEJ1dHRvbigpfSxfZGV0ZXJtaW5lQnV0dG9uVHlwZTpmdW5jdGlvbigpe3ZhciBlLHQsaTt0aGlzLnR5cGU9dGhpcy5lbGVtZW50LmlzKCJbdHlwZT1jaGVja2JveF0iKT8iY2hlY2tib3giOnRoaXMuZWxlbWVudC5pcygiW3R5cGU9cmFkaW9dIik/InJhZGlvIjp0aGlzLmVsZW1lbnQuaXMoImlucHV0Iik/ImlucHV0IjoiYnV0dG9uIiwiY2hlY2tib3giPT09dGhpcy50eXBlfHwicmFkaW8iPT09dGhpcy50eXBlPyhlPXRoaXMuZWxlbWVudC5wYXJlbnRzKCkubGFzdCgpLHQ9ImxhYmVsW2Zvcj0nIit0aGlzLmVsZW1lbnQuYXR0cigiaWQiKSsiJ10iLHRoaXMuYnV0dG9uRWxlbWVudD1lLmZpbmQodCksdGhpcy5idXR0b25FbGVtZW50Lmxlbmd0aHx8KGU9ZS5sZW5ndGg/ZS5zaWJsaW5ncygpOnRoaXMuZWxlbWVudC5zaWJsaW5ncygpLHRoaXMuYnV0dG9uRWxlbWVudD1lLmZpbHRlcih0KSx0aGlzLmJ1dHRvbkVsZW1lbnQubGVuZ3RofHwodGhpcy5idXR0b25FbGVtZW50PWUuZmluZCh0KSkpLHRoaXMuZWxlbWVudC5hZGRDbGFzcygidWktaGVscGVyLWhpZGRlbi1hY2Nlc3NpYmxlIiksaT10aGlzLmVsZW1lbnQuaXMoIjpjaGVja2VkIiksaSYmdGhpcy5idXR0b25FbGVtZW50LmFkZENsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKSx0aGlzLmJ1dHRvbkVsZW1lbnQucHJvcCgiYXJpYS1wcmVzc2VkIixpKSk6dGhpcy5idXR0b25FbGVtZW50PXRoaXMuZWxlbWVudH0sd2lkZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYnV0dG9uRWxlbWVudH0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLWhlbHBlci1oaWRkZW4tYWNjZXNzaWJsZSIpLHRoaXMuYnV0dG9uRWxlbWVudC5yZW1vdmVDbGFzcyhwKyIgdWktc3RhdGUtYWN0aXZlICIrZikucmVtb3ZlQXR0cigicm9sZSIpLnJlbW92ZUF0dHIoImFyaWEtcHJlc3NlZCIpLmh0bWwodGhpcy5idXR0b25FbGVtZW50LmZpbmQoIi51aS1idXR0b24tdGV4dCIpLmh0bWwoKSksdGhpcy5oYXNUaXRsZXx8dGhpcy5idXR0b25FbGVtZW50LnJlbW92ZUF0dHIoInRpdGxlIil9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fc3VwZXIoZSx0KSwiZGlzYWJsZWQiPT09ZT8odGhpcy53aWRnZXQoKS50b2dnbGVDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiLCEhdCksdGhpcy5lbGVtZW50LnByb3AoImRpc2FibGVkIiwhIXQpLHQmJigiY2hlY2tib3giPT09dGhpcy50eXBlfHwicmFkaW8iPT09dGhpcy50eXBlP3RoaXMuYnV0dG9uRWxlbWVudC5yZW1vdmVDbGFzcygidWktc3RhdGUtZm9jdXMiKTp0aGlzLmJ1dHRvbkVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWZvY3VzIHVpLXN0YXRlLWFjdGl2ZSIpKSx2b2lkIDApOih0aGlzLl9yZXNldEJ1dHRvbigpLHZvaWQgMCl9LHJlZnJlc2g6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmVsZW1lbnQuaXMoImlucHV0LCBidXR0b24iKT90aGlzLmVsZW1lbnQuaXMoIjpkaXNhYmxlZCIpOnRoaXMuZWxlbWVudC5oYXNDbGFzcygidWktYnV0dG9uLWRpc2FibGVkIik7dCE9PXRoaXMub3B0aW9ucy5kaXNhYmxlZCYmdGhpcy5fc2V0T3B0aW9uKCJkaXNhYmxlZCIsdCksInJhZGlvIj09PXRoaXMudHlwZT9nKHRoaXMuZWxlbWVudFswXSkuZWFjaChmdW5jdGlvbigpe2UodGhpcykuaXMoIjpjaGVja2VkIik/ZSh0aGlzKS5idXR0b24oIndpZGdldCIpLmFkZENsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKS5hdHRyKCJhcmlhLXByZXNzZWQiLCJ0cnVlIik6ZSh0aGlzKS5idXR0b24oIndpZGdldCIpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKS5hdHRyKCJhcmlhLXByZXNzZWQiLCJmYWxzZSIpfSk6ImNoZWNrYm94Ij09PXRoaXMudHlwZSYmKHRoaXMuZWxlbWVudC5pcygiOmNoZWNrZWQiKT90aGlzLmJ1dHRvbkVsZW1lbnQuYWRkQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpLmF0dHIoImFyaWEtcHJlc3NlZCIsInRydWUiKTp0aGlzLmJ1dHRvbkVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpLmF0dHIoImFyaWEtcHJlc3NlZCIsImZhbHNlIikpfSxfcmVzZXRCdXR0b246ZnVuY3Rpb24oKXtpZigiaW5wdXQiPT09dGhpcy50eXBlKXJldHVybiB0aGlzLm9wdGlvbnMubGFiZWwmJnRoaXMuZWxlbWVudC52YWwodGhpcy5vcHRpb25zLmxhYmVsKSx2b2lkIDA7dmFyIHQ9dGhpcy5idXR0b25FbGVtZW50LnJlbW92ZUNsYXNzKGYpLGk9ZSgiPHNwYW4+PC9zcGFuPiIsdGhpcy5kb2N1bWVudFswXSkuYWRkQ2xhc3MoInVpLWJ1dHRvbi10ZXh0IikuaHRtbCh0aGlzLm9wdGlvbnMubGFiZWwpLmFwcGVuZFRvKHQuZW1wdHkoKSkudGV4dCgpLHM9dGhpcy5vcHRpb25zLmljb25zLG49cy5wcmltYXJ5JiZzLnNlY29uZGFyeSxhPVtdO3MucHJpbWFyeXx8cy5zZWNvbmRhcnk/KHRoaXMub3B0aW9ucy50ZXh0JiZhLnB1c2goInVpLWJ1dHRvbi10ZXh0LWljb24iKyhuPyJzIjpzLnByaW1hcnk/Ii1wcmltYXJ5IjoiLXNlY29uZGFyeSIpKSxzLnByaW1hcnkmJnQucHJlcGVuZCgiPHNwYW4gY2xhc3M9J3VpLWJ1dHRvbi1pY29uLXByaW1hcnkgdWktaWNvbiAiK3MucHJpbWFyeSsiJz48L3NwYW4+Iikscy5zZWNvbmRhcnkmJnQuYXBwZW5kKCI8c3BhbiBjbGFzcz0ndWktYnV0dG9uLWljb24tc2Vjb25kYXJ5IHVpLWljb24gIitzLnNlY29uZGFyeSsiJz48L3NwYW4+IiksdGhpcy5vcHRpb25zLnRleHR8fChhLnB1c2gobj8idWktYnV0dG9uLWljb25zLW9ubHkiOiJ1aS1idXR0b24taWNvbi1vbmx5IiksdGhpcy5oYXNUaXRsZXx8dC5hdHRyKCJ0aXRsZSIsZS50cmltKGkpKSkpOmEucHVzaCgidWktYnV0dG9uLXRleHQtb25seSIpLHQuYWRkQ2xhc3MoYS5qb2luKCIgIikpfX0pLGUud2lkZ2V0KCJ1aS5idXR0b25zZXQiLHt2ZXJzaW9uOiIxLjExLjQiLG9wdGlvbnM6e2l0ZW1zOiJidXR0b24sIGlucHV0W3R5cGU9YnV0dG9uXSwgaW5wdXRbdHlwZT1zdWJtaXRdLCBpbnB1dFt0eXBlPXJlc2V0XSwgaW5wdXRbdHlwZT1jaGVja2JveF0sIGlucHV0W3R5cGU9cmFkaW9dLCBhLCA6ZGF0YSh1aS1idXR0b24pIn0sX2NyZWF0ZTpmdW5jdGlvbigpe3RoaXMuZWxlbWVudC5hZGRDbGFzcygidWktYnV0dG9uc2V0Iil9LF9pbml0OmZ1bmN0aW9uKCl7dGhpcy5yZWZyZXNoKCl9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXsiZGlzYWJsZWQiPT09ZSYmdGhpcy5idXR0b25zLmJ1dHRvbigib3B0aW9uIixlLHQpLHRoaXMuX3N1cGVyKGUsdCl9LHJlZnJlc2g6ZnVuY3Rpb24oKXt2YXIgdD0icnRsIj09PXRoaXMuZWxlbWVudC5jc3MoImRpcmVjdGlvbiIpLGk9dGhpcy5lbGVtZW50LmZpbmQodGhpcy5vcHRpb25zLml0ZW1zKSxzPWkuZmlsdGVyKCI6dWktYnV0dG9uIik7aS5ub3QoIjp1aS1idXR0b24iKS5idXR0b24oKSxzLmJ1dHRvbigicmVmcmVzaCIpLHRoaXMuYnV0dG9ucz1pLm1hcChmdW5jdGlvbigpe3JldHVybiBlKHRoaXMpLmJ1dHRvbigid2lkZ2V0IilbMF19KS5yZW1vdmVDbGFzcygidWktY29ybmVyLWFsbCB1aS1jb3JuZXItbGVmdCB1aS1jb3JuZXItcmlnaHQiKS5maWx0ZXIoIjpmaXJzdCIpLmFkZENsYXNzKHQ/InVpLWNvcm5lci1yaWdodCI6InVpLWNvcm5lci1sZWZ0IikuZW5kKCkuZmlsdGVyKCI6bGFzdCIpLmFkZENsYXNzKHQ/InVpLWNvcm5lci1sZWZ0IjoidWktY29ybmVyLXJpZ2h0IikuZW5kKCkuZW5kKCl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1idXR0b25zZXQiKSx0aGlzLmJ1dHRvbnMubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIGUodGhpcykuYnV0dG9uKCJ3aWRnZXQiKVswXX0pLnJlbW92ZUNsYXNzKCJ1aS1jb3JuZXItbGVmdCB1aS1jb3JuZXItcmlnaHQiKS5lbmQoKS5idXR0b24oImRlc3Ryb3kiKX19KSxlLnVpLmJ1dHRvbixlLmV4dGVuZChlLnVpLHtkYXRlcGlja2VyOnt2ZXJzaW9uOiIxLjExLjQifX0pO3ZhciB2O2UuZXh0ZW5kKG4ucHJvdG90eXBlLHttYXJrZXJDbGFzc05hbWU6Imhhc0RhdGVwaWNrZXIiLG1heFJvd3M6NCxfd2lkZ2V0RGF0ZXBpY2tlcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRwRGl2fSxzZXREZWZhdWx0czpmdW5jdGlvbihlKXtyZXR1cm4gcih0aGlzLl9kZWZhdWx0cyxlfHx7fSksdGhpc30sX2F0dGFjaERhdGVwaWNrZXI6ZnVuY3Rpb24odCxpKXt2YXIgcyxuLGE7cz10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksbj0iZGl2Ij09PXN8fCJzcGFuIj09PXMsdC5pZHx8KHRoaXMudXVpZCs9MSx0LmlkPSJkcCIrdGhpcy51dWlkKSxhPXRoaXMuX25ld0luc3QoZSh0KSxuKSxhLnNldHRpbmdzPWUuZXh0ZW5kKHt9LGl8fHt9KSwiaW5wdXQiPT09cz90aGlzLl9jb25uZWN0RGF0ZXBpY2tlcih0LGEpOm4mJnRoaXMuX2lubGluZURhdGVwaWNrZXIodCxhKX0sX25ld0luc3Q6ZnVuY3Rpb24odCxpKXt2YXIgcz10WzBdLmlkLnJlcGxhY2UoLyhbXkEtWmEtejAtOV9cLV0pL2csIlxcXFwkMSIpO3JldHVybntpZDpzLGlucHV0OnQsc2VsZWN0ZWREYXk6MCxzZWxlY3RlZE1vbnRoOjAsc2VsZWN0ZWRZZWFyOjAsZHJhd01vbnRoOjAsZHJhd1llYXI6MCxpbmxpbmU6aSxkcERpdjppP2EoZSgiPGRpdiBjbGFzcz0nIit0aGlzLl9pbmxpbmVDbGFzcysiIHVpLWRhdGVwaWNrZXIgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWhlbHBlci1jbGVhcmZpeCB1aS1jb3JuZXItYWxsJz48L2Rpdj4iKSk6dGhpcy5kcERpdn19LF9jb25uZWN0RGF0ZXBpY2tlcjpmdW5jdGlvbih0LGkpe3ZhciBzPWUodCk7aS5hcHBlbmQ9ZShbXSksaS50cmlnZ2VyPWUoW10pLHMuaGFzQ2xhc3ModGhpcy5tYXJrZXJDbGFzc05hbWUpfHwodGhpcy5fYXR0YWNobWVudHMocyxpKSxzLmFkZENsYXNzKHRoaXMubWFya2VyQ2xhc3NOYW1lKS5rZXlkb3duKHRoaXMuX2RvS2V5RG93bikua2V5cHJlc3ModGhpcy5fZG9LZXlQcmVzcykua2V5dXAodGhpcy5fZG9LZXlVcCksdGhpcy5fYXV0b1NpemUoaSksZS5kYXRhKHQsImRhdGVwaWNrZXIiLGkpLGkuc2V0dGluZ3MuZGlzYWJsZWQmJnRoaXMuX2Rpc2FibGVEYXRlcGlja2VyKHQpKX0sX2F0dGFjaG1lbnRzOmZ1bmN0aW9uKHQsaSl7dmFyIHMsbixhLG89dGhpcy5fZ2V0KGksImFwcGVuZFRleHQiKSxyPXRoaXMuX2dldChpLCJpc1JUTCIpO2kuYXBwZW5kJiZpLmFwcGVuZC5yZW1vdmUoKSxvJiYoaS5hcHBlbmQ9ZSgiPHNwYW4gY2xhc3M9JyIrdGhpcy5fYXBwZW5kQ2xhc3MrIic+IitvKyI8L3NwYW4+IiksdFtyPyJiZWZvcmUiOiJhZnRlciJdKGkuYXBwZW5kKSksdC51bmJpbmQoImZvY3VzIix0aGlzLl9zaG93RGF0ZXBpY2tlciksaS50cmlnZ2VyJiZpLnRyaWdnZXIucmVtb3ZlKCkscz10aGlzLl9nZXQoaSwic2hvd09uIiksKCJmb2N1cyI9PT1zfHwiYm90aCI9PT1zKSYmdC5mb2N1cyh0aGlzLl9zaG93RGF0ZXBpY2tlciksKCJidXR0b24iPT09c3x8ImJvdGgiPT09cykmJihuPXRoaXMuX2dldChpLCJidXR0b25UZXh0IiksYT10aGlzLl9nZXQoaSwiYnV0dG9uSW1hZ2UiKSxpLnRyaWdnZXI9ZSh0aGlzLl9nZXQoaSwiYnV0dG9uSW1hZ2VPbmx5Iik/ZSgiPGltZy8+IikuYWRkQ2xhc3ModGhpcy5fdHJpZ2dlckNsYXNzKS5hdHRyKHtzcmM6YSxhbHQ6bix0aXRsZTpufSk6ZSgiPGJ1dHRvbiB0eXBlPSdidXR0b24nPjwvYnV0dG9uPiIpLmFkZENsYXNzKHRoaXMuX3RyaWdnZXJDbGFzcykuaHRtbChhP2UoIjxpbWcvPiIpLmF0dHIoe3NyYzphLGFsdDpuLHRpdGxlOm59KTpuKSksdFtyPyJiZWZvcmUiOiJhZnRlciJdKGkudHJpZ2dlciksaS50cmlnZ2VyLmNsaWNrKGZ1bmN0aW9uKCl7cmV0dXJuIGUuZGF0ZXBpY2tlci5fZGF0ZXBpY2tlclNob3dpbmcmJmUuZGF0ZXBpY2tlci5fbGFzdElucHV0PT09dFswXT9lLmRhdGVwaWNrZXIuX2hpZGVEYXRlcGlja2VyKCk6ZS5kYXRlcGlja2VyLl9kYXRlcGlja2VyU2hvd2luZyYmZS5kYXRlcGlja2VyLl9sYXN0SW5wdXQhPT10WzBdPyhlLmRhdGVwaWNrZXIuX2hpZGVEYXRlcGlja2VyKCksZS5kYXRlcGlja2VyLl9zaG93RGF0ZXBpY2tlcih0WzBdKSk6ZS5kYXRlcGlja2VyLl9zaG93RGF0ZXBpY2tlcih0WzBdKSwhMX0pKX0sX2F1dG9TaXplOmZ1bmN0aW9uKGUpe2lmKHRoaXMuX2dldChlLCJhdXRvU2l6ZSIpJiYhZS5pbmxpbmUpe3ZhciB0LGkscyxuLGE9bmV3IERhdGUoMjAwOSwxMSwyMCksbz10aGlzLl9nZXQoZSwiZGF0ZUZvcm1hdCIpO28ubWF0Y2goL1tETV0vKSYmKHQ9ZnVuY3Rpb24oZSl7Zm9yKGk9MCxzPTAsbj0wO2UubGVuZ3RoPm47bisrKWVbbl0ubGVuZ3RoPmkmJihpPWVbbl0ubGVuZ3RoLHM9bik7cmV0dXJuIHN9LGEuc2V0TW9udGgodCh0aGlzLl9nZXQoZSxvLm1hdGNoKC9NTS8pPyJtb250aE5hbWVzIjoibW9udGhOYW1lc1Nob3J0IikpKSxhLnNldERhdGUodCh0aGlzLl9nZXQoZSxvLm1hdGNoKC9ERC8pPyJkYXlOYW1lcyI6ImRheU5hbWVzU2hvcnQiKSkrMjAtYS5nZXREYXkoKSkpLGUuaW5wdXQuYXR0cigic2l6ZSIsdGhpcy5fZm9ybWF0RGF0ZShlLGEpLmxlbmd0aCl9fSxfaW5saW5lRGF0ZXBpY2tlcjpmdW5jdGlvbih0LGkpe3ZhciBzPWUodCk7cy5oYXNDbGFzcyh0aGlzLm1hcmtlckNsYXNzTmFtZSl8fChzLmFkZENsYXNzKHRoaXMubWFya2VyQ2xhc3NOYW1lKS5hcHBlbmQoaS5kcERpdiksZS5kYXRhKHQsImRhdGVwaWNrZXIiLGkpLHRoaXMuX3NldERhdGUoaSx0aGlzLl9nZXREZWZhdWx0RGF0ZShpKSwhMCksdGhpcy5fdXBkYXRlRGF0ZXBpY2tlcihpKSx0aGlzLl91cGRhdGVBbHRlcm5hdGUoaSksaS5zZXR0aW5ncy5kaXNhYmxlZCYmdGhpcy5fZGlzYWJsZURhdGVwaWNrZXIodCksaS5kcERpdi5jc3MoImRpc3BsYXkiLCJibG9jayIpKX0sX2RpYWxvZ0RhdGVwaWNrZXI6ZnVuY3Rpb24odCxpLHMsbixhKXt2YXIgbyxoLGwsdSxkLGM9dGhpcy5fZGlhbG9nSW5zdDtyZXR1cm4gY3x8KHRoaXMudXVpZCs9MSxvPSJkcCIrdGhpcy51dWlkLHRoaXMuX2RpYWxvZ0lucHV0PWUoIjxpbnB1dCB0eXBlPSd0ZXh0JyBpZD0nIitvKyInIHN0eWxlPSdwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogLTEwMHB4OyB3aWR0aDogMHB4OycvPiIpLHRoaXMuX2RpYWxvZ0lucHV0LmtleWRvd24odGhpcy5fZG9LZXlEb3duKSxlKCJib2R5IikuYXBwZW5kKHRoaXMuX2RpYWxvZ0lucHV0KSxjPXRoaXMuX2RpYWxvZ0luc3Q9dGhpcy5fbmV3SW5zdCh0aGlzLl9kaWFsb2dJbnB1dCwhMSksYy5zZXR0aW5ncz17fSxlLmRhdGEodGhpcy5fZGlhbG9nSW5wdXRbMF0sImRhdGVwaWNrZXIiLGMpKSxyKGMuc2V0dGluZ3Msbnx8e30pLGk9aSYmaS5jb25zdHJ1Y3Rvcj09PURhdGU/dGhpcy5fZm9ybWF0RGF0ZShjLGkpOmksdGhpcy5fZGlhbG9nSW5wdXQudmFsKGkpLHRoaXMuX3Bvcz1hP2EubGVuZ3RoP2E6W2EucGFnZVgsYS5wYWdlWV06bnVsbCx0aGlzLl9wb3N8fChoPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCxsPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQsdT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdHx8ZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0LGQ9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcHx8ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AsdGhpcy5fcG9zPVtoLzItMTAwK3UsbC8yLTE1MCtkXSksdGhpcy5fZGlhbG9nSW5wdXQuY3NzKCJsZWZ0Iix0aGlzLl9wb3NbMF0rMjArInB4IikuY3NzKCJ0b3AiLHRoaXMuX3Bvc1sxXSsicHgiKSxjLnNldHRpbmdzLm9uU2VsZWN0PXMsdGhpcy5faW5EaWFsb2c9ITAsdGhpcy5kcERpdi5hZGRDbGFzcyh0aGlzLl9kaWFsb2dDbGFzcyksdGhpcy5fc2hvd0RhdGVwaWNrZXIodGhpcy5fZGlhbG9nSW5wdXRbMF0pLGUuYmxvY2tVSSYmZS5ibG9ja1VJKHRoaXMuZHBEaXYpLGUuZGF0YSh0aGlzLl9kaWFsb2dJbnB1dFswXSwiZGF0ZXBpY2tlciIsYyksdGhpc30sX2Rlc3Ryb3lEYXRlcGlja2VyOmZ1bmN0aW9uKHQpe3ZhciBpLHM9ZSh0KSxuPWUuZGF0YSh0LCJkYXRlcGlja2VyIik7cy5oYXNDbGFzcyh0aGlzLm1hcmtlckNsYXNzTmFtZSkmJihpPXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxlLnJlbW92ZURhdGEodCwiZGF0ZXBpY2tlciIpLCJpbnB1dCI9PT1pPyhuLmFwcGVuZC5yZW1vdmUoKSxuLnRyaWdnZXIucmVtb3ZlKCkscy5yZW1vdmVDbGFzcyh0aGlzLm1hcmtlckNsYXNzTmFtZSkudW5iaW5kKCJmb2N1cyIsdGhpcy5fc2hvd0RhdGVwaWNrZXIpLnVuYmluZCgia2V5ZG93biIsdGhpcy5fZG9LZXlEb3duKS51bmJpbmQoImtleXByZXNzIix0aGlzLl9kb0tleVByZXNzKS51bmJpbmQoImtleXVwIix0aGlzLl9kb0tleVVwKSk6KCJkaXYiPT09aXx8InNwYW4iPT09aSkmJnMucmVtb3ZlQ2xhc3ModGhpcy5tYXJrZXJDbGFzc05hbWUpLmVtcHR5KCksdj09PW4mJih2PW51bGwpKX0sX2VuYWJsZURhdGVwaWNrZXI6ZnVuY3Rpb24odCl7dmFyIGkscyxuPWUodCksYT1lLmRhdGEodCwiZGF0ZXBpY2tlciIpO24uaGFzQ2xhc3ModGhpcy5tYXJrZXJDbGFzc05hbWUpJiYoaT10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksImlucHV0Ij09PWk/KHQuZGlzYWJsZWQ9ITEsYS50cmlnZ2VyLmZpbHRlcigiYnV0dG9uIikuZWFjaChmdW5jdGlvbigpe3RoaXMuZGlzYWJsZWQ9ITF9KS5lbmQoKS5maWx0ZXIoImltZyIpLmNzcyh7b3BhY2l0eToiMS4wIixjdXJzb3I6IiJ9KSk6KCJkaXYiPT09aXx8InNwYW4iPT09aSkmJihzPW4uY2hpbGRyZW4oIi4iK3RoaXMuX2lubGluZUNsYXNzKSxzLmNoaWxkcmVuKCkucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWRpc2FibGVkIikscy5maW5kKCJzZWxlY3QudWktZGF0ZXBpY2tlci1tb250aCwgc2VsZWN0LnVpLWRhdGVwaWNrZXIteWVhciIpLnByb3AoImRpc2FibGVkIiwhMSkpLHRoaXMuX2Rpc2FibGVkSW5wdXRzPWUubWFwKHRoaXMuX2Rpc2FibGVkSW5wdXRzLGZ1bmN0aW9uKGUpe3JldHVybiBlPT09dD9udWxsOmV9KSl9LF9kaXNhYmxlRGF0ZXBpY2tlcjpmdW5jdGlvbih0KXt2YXIgaSxzLG49ZSh0KSxhPWUuZGF0YSh0LCJkYXRlcGlja2VyIik7bi5oYXNDbGFzcyh0aGlzLm1hcmtlckNsYXNzTmFtZSkmJihpPXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSwiaW5wdXQiPT09aT8odC5kaXNhYmxlZD0hMCxhLnRyaWdnZXIuZmlsdGVyKCJidXR0b24iKS5lYWNoKGZ1bmN0aW9uKCl7dGhpcy5kaXNhYmxlZD0hMH0pLmVuZCgpLmZpbHRlcigiaW1nIikuY3NzKHtvcGFjaXR5OiIwLjUiLGN1cnNvcjoiZGVmYXVsdCJ9KSk6KCJkaXYiPT09aXx8InNwYW4iPT09aSkmJihzPW4uY2hpbGRyZW4oIi4iK3RoaXMuX2lubGluZUNsYXNzKSxzLmNoaWxkcmVuKCkuYWRkQ2xhc3MoInVpLXN0YXRlLWRpc2FibGVkIikscy5maW5kKCJzZWxlY3QudWktZGF0ZXBpY2tlci1tb250aCwgc2VsZWN0LnVpLWRhdGVwaWNrZXIteWVhciIpLnByb3AoImRpc2FibGVkIiwhMCkpLHRoaXMuX2Rpc2FibGVkSW5wdXRzPWUubWFwKHRoaXMuX2Rpc2FibGVkSW5wdXRzLGZ1bmN0aW9uKGUpe3JldHVybiBlPT09dD9udWxsOmV9KSx0aGlzLl9kaXNhYmxlZElucHV0c1t0aGlzLl9kaXNhYmxlZElucHV0cy5sZW5ndGhdPXQpfSxfaXNEaXNhYmxlZERhdGVwaWNrZXI6ZnVuY3Rpb24oZSl7aWYoIWUpcmV0dXJuITE7Zm9yKHZhciB0PTA7dGhpcy5fZGlzYWJsZWRJbnB1dHMubGVuZ3RoPnQ7dCsrKWlmKHRoaXMuX2Rpc2FibGVkSW5wdXRzW3RdPT09ZSlyZXR1cm4hMDtyZXR1cm4hMX0sX2dldEluc3Q6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiBlLmRhdGEodCwiZGF0ZXBpY2tlciIpfWNhdGNoKGkpe3Rocm93Ik1pc3NpbmcgaW5zdGFuY2UgZGF0YSBmb3IgdGhpcyBkYXRlcGlja2VyIn19LF9vcHRpb25EYXRlcGlja2VyOmZ1bmN0aW9uKHQsaSxzKXt2YXIgbixhLG8saCxsPXRoaXMuX2dldEluc3QodCk7cmV0dXJuIDI9PT1hcmd1bWVudHMubGVuZ3RoJiYic3RyaW5nIj09dHlwZW9mIGk/ImRlZmF1bHRzIj09PWk/ZS5leHRlbmQoe30sZS5kYXRlcGlja2VyLl9kZWZhdWx0cyk6bD8iYWxsIj09PWk/ZS5leHRlbmQoe30sbC5zZXR0aW5ncyk6dGhpcy5fZ2V0KGwsaSk6bnVsbDoobj1pfHx7fSwic3RyaW5nIj09dHlwZW9mIGkmJihuPXt9LG5baV09cyksbCYmKHRoaXMuX2N1ckluc3Q9PT1sJiZ0aGlzLl9oaWRlRGF0ZXBpY2tlcigpLGE9dGhpcy5fZ2V0RGF0ZURhdGVwaWNrZXIodCwhMCksbz10aGlzLl9nZXRNaW5NYXhEYXRlKGwsIm1pbiIpLGg9dGhpcy5fZ2V0TWluTWF4RGF0ZShsLCJtYXgiKSxyKGwuc2V0dGluZ3MsbiksbnVsbCE9PW8mJnZvaWQgMCE9PW4uZGF0ZUZvcm1hdCYmdm9pZCAwPT09bi5taW5EYXRlJiYobC5zZXR0aW5ncy5taW5EYXRlPXRoaXMuX2Zvcm1hdERhdGUobCxvKSksbnVsbCE9PWgmJnZvaWQgMCE9PW4uZGF0ZUZvcm1hdCYmdm9pZCAwPT09bi5tYXhEYXRlJiYobC5zZXR0aW5ncy5tYXhEYXRlPXRoaXMuX2Zvcm1hdERhdGUobCxoKSksImRpc2FibGVkImluIG4mJihuLmRpc2FibGVkP3RoaXMuX2Rpc2FibGVEYXRlcGlja2VyKHQpOnRoaXMuX2VuYWJsZURhdGVwaWNrZXIodCkpLHRoaXMuX2F0dGFjaG1lbnRzKGUodCksbCksdGhpcy5fYXV0b1NpemUobCksdGhpcy5fc2V0RGF0ZShsLGEpLHRoaXMuX3VwZGF0ZUFsdGVybmF0ZShsKSx0aGlzLl91cGRhdGVEYXRlcGlja2VyKGwpKSx2b2lkIDApfSxfY2hhbmdlRGF0ZXBpY2tlcjpmdW5jdGlvbihlLHQsaSl7dGhpcy5fb3B0aW9uRGF0ZXBpY2tlcihlLHQsaSl9LF9yZWZyZXNoRGF0ZXBpY2tlcjpmdW5jdGlvbihlKXt2YXIgdD10aGlzLl9nZXRJbnN0KGUpO3QmJnRoaXMuX3VwZGF0ZURhdGVwaWNrZXIodCl9LF9zZXREYXRlRGF0ZXBpY2tlcjpmdW5jdGlvbihlLHQpe3ZhciBpPXRoaXMuX2dldEluc3QoZSk7aSYmKHRoaXMuX3NldERhdGUoaSx0KSx0aGlzLl91cGRhdGVEYXRlcGlja2VyKGkpLHRoaXMuX3VwZGF0ZUFsdGVybmF0ZShpKSl9LF9nZXREYXRlRGF0ZXBpY2tlcjpmdW5jdGlvbihlLHQpe3ZhciBpPXRoaXMuX2dldEluc3QoZSk7cmV0dXJuIGkmJiFpLmlubGluZSYmdGhpcy5fc2V0RGF0ZUZyb21GaWVsZChpLHQpLGk/dGhpcy5fZ2V0RGF0ZShpKTpudWxsfSxfZG9LZXlEb3duOmZ1bmN0aW9uKHQpe3ZhciBpLHMsbixhPWUuZGF0ZXBpY2tlci5fZ2V0SW5zdCh0LnRhcmdldCksbz0hMCxyPWEuZHBEaXYuaXMoIi51aS1kYXRlcGlja2VyLXJ0bCIpO2lmKGEuX2tleUV2ZW50PSEwLGUuZGF0ZXBpY2tlci5fZGF0ZXBpY2tlclNob3dpbmcpc3dpdGNoKHQua2V5Q29kZSl7Y2FzZSA5OmUuZGF0ZXBpY2tlci5faGlkZURhdGVwaWNrZXIoKSxvPSExO2JyZWFrO2Nhc2UgMTM6cmV0dXJuIG49ZSgidGQuIitlLmRhdGVwaWNrZXIuX2RheU92ZXJDbGFzcysiOm5vdCguIitlLmRhdGVwaWNrZXIuX2N1cnJlbnRDbGFzcysiKSIsYS5kcERpdiksblswXSYmZS5kYXRlcGlja2VyLl9zZWxlY3REYXkodC50YXJnZXQsYS5zZWxlY3RlZE1vbnRoLGEuc2VsZWN0ZWRZZWFyLG5bMF0pLGk9ZS5kYXRlcGlja2VyLl9nZXQoYSwib25TZWxlY3QiKSxpPyhzPWUuZGF0ZXBpY2tlci5fZm9ybWF0RGF0ZShhKSxpLmFwcGx5KGEuaW5wdXQ/YS5pbnB1dFswXTpudWxsLFtzLGFdKSk6ZS5kYXRlcGlja2VyLl9oaWRlRGF0ZXBpY2tlcigpLCExO2Nhc2UgMjc6ZS5kYXRlcGlja2VyLl9oaWRlRGF0ZXBpY2tlcigpO2JyZWFrO2Nhc2UgMzM6ZS5kYXRlcGlja2VyLl9hZGp1c3REYXRlKHQudGFyZ2V0LHQuY3RybEtleT8tZS5kYXRlcGlja2VyLl9nZXQoYSwic3RlcEJpZ01vbnRocyIpOi1lLmRhdGVwaWNrZXIuX2dldChhLCJzdGVwTW9udGhzIiksIk0iKTticmVhaztjYXNlIDM0OmUuZGF0ZXBpY2tlci5fYWRqdXN0RGF0ZSh0LnRhcmdldCx0LmN0cmxLZXk/K2UuZGF0ZXBpY2tlci5fZ2V0KGEsInN0ZXBCaWdNb250aHMiKTorZS5kYXRlcGlja2VyLl9nZXQoYSwic3RlcE1vbnRocyIpLCJNIik7YnJlYWs7Y2FzZSAzNToodC5jdHJsS2V5fHx0Lm1ldGFLZXkpJiZlLmRhdGVwaWNrZXIuX2NsZWFyRGF0ZSh0LnRhcmdldCksbz10LmN0cmxLZXl8fHQubWV0YUtleTticmVhaztjYXNlIDM2Oih0LmN0cmxLZXl8fHQubWV0YUtleSkmJmUuZGF0ZXBpY2tlci5fZ290b1RvZGF5KHQudGFyZ2V0KSxvPXQuY3RybEtleXx8dC5tZXRhS2V5O2JyZWFrO2Nhc2UgMzc6KHQuY3RybEtleXx8dC5tZXRhS2V5KSYmZS5kYXRlcGlja2VyLl9hZGp1c3REYXRlKHQudGFyZ2V0LHI/MTotMSwiRCIpLG89dC5jdHJsS2V5fHx0Lm1ldGFLZXksdC5vcmlnaW5hbEV2ZW50LmFsdEtleSYmZS5kYXRlcGlja2VyLl9hZGp1c3REYXRlKHQudGFyZ2V0LHQuY3RybEtleT8tZS5kYXRlcGlja2VyLl9nZXQoYSwic3RlcEJpZ01vbnRocyIpOi1lLmRhdGVwaWNrZXIuX2dldChhLCJzdGVwTW9udGhzIiksIk0iKTticmVhaztjYXNlIDM4Oih0LmN0cmxLZXl8fHQubWV0YUtleSkmJmUuZGF0ZXBpY2tlci5fYWRqdXN0RGF0ZSh0LnRhcmdldCwtNywiRCIpLG89dC5jdHJsS2V5fHx0Lm1ldGFLZXk7YnJlYWs7Y2FzZSAzOToodC5jdHJsS2V5fHx0Lm1ldGFLZXkpJiZlLmRhdGVwaWNrZXIuX2FkanVzdERhdGUodC50YXJnZXQscj8tMToxLCJEIiksbz10LmN0cmxLZXl8fHQubWV0YUtleSx0Lm9yaWdpbmFsRXZlbnQuYWx0S2V5JiZlLmRhdGVwaWNrZXIuX2FkanVzdERhdGUodC50YXJnZXQsdC5jdHJsS2V5PytlLmRhdGVwaWNrZXIuX2dldChhLCJzdGVwQmlnTW9udGhzIik6K2UuZGF0ZXBpY2tlci5fZ2V0KGEsInN0ZXBNb250aHMiKSwiTSIpO2JyZWFrO2Nhc2UgNDA6KHQuY3RybEtleXx8dC5tZXRhS2V5KSYmZS5kYXRlcGlja2VyLl9hZGp1c3REYXRlKHQudGFyZ2V0LDcsIkQiKSxvPXQuY3RybEtleXx8dC5tZXRhS2V5O2JyZWFrO2RlZmF1bHQ6bz0hMX1lbHNlIDM2PT09dC5rZXlDb2RlJiZ0LmN0cmxLZXk/ZS5kYXRlcGlja2VyLl9zaG93RGF0ZXBpY2tlcih0aGlzKTpvPSExO28mJih0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSl9LF9kb0tleVByZXNzOmZ1bmN0aW9uKHQpe3ZhciBpLHMsbj1lLmRhdGVwaWNrZXIuX2dldEluc3QodC50YXJnZXQpOwpyZXR1cm4gZS5kYXRlcGlja2VyLl9nZXQobiwiY29uc3RyYWluSW5wdXQiKT8oaT1lLmRhdGVwaWNrZXIuX3Bvc3NpYmxlQ2hhcnMoZS5kYXRlcGlja2VyLl9nZXQobiwiZGF0ZUZvcm1hdCIpKSxzPVN0cmluZy5mcm9tQ2hhckNvZGUobnVsbD09dC5jaGFyQ29kZT90LmtleUNvZGU6dC5jaGFyQ29kZSksdC5jdHJsS2V5fHx0Lm1ldGFLZXl8fCIgIj5zfHwhaXx8aS5pbmRleE9mKHMpPi0xKTp2b2lkIDB9LF9kb0tleVVwOmZ1bmN0aW9uKHQpe3ZhciBpLHM9ZS5kYXRlcGlja2VyLl9nZXRJbnN0KHQudGFyZ2V0KTtpZihzLmlucHV0LnZhbCgpIT09cy5sYXN0VmFsKXRyeXtpPWUuZGF0ZXBpY2tlci5wYXJzZURhdGUoZS5kYXRlcGlja2VyLl9nZXQocywiZGF0ZUZvcm1hdCIpLHMuaW5wdXQ/cy5pbnB1dC52YWwoKTpudWxsLGUuZGF0ZXBpY2tlci5fZ2V0Rm9ybWF0Q29uZmlnKHMpKSxpJiYoZS5kYXRlcGlja2VyLl9zZXREYXRlRnJvbUZpZWxkKHMpLGUuZGF0ZXBpY2tlci5fdXBkYXRlQWx0ZXJuYXRlKHMpLGUuZGF0ZXBpY2tlci5fdXBkYXRlRGF0ZXBpY2tlcihzKSl9Y2F0Y2gobil7fXJldHVybiEwfSxfc2hvd0RhdGVwaWNrZXI6ZnVuY3Rpb24odCl7aWYodD10LnRhcmdldHx8dCwiaW5wdXQiIT09dC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpJiYodD1lKCJpbnB1dCIsdC5wYXJlbnROb2RlKVswXSksIWUuZGF0ZXBpY2tlci5faXNEaXNhYmxlZERhdGVwaWNrZXIodCkmJmUuZGF0ZXBpY2tlci5fbGFzdElucHV0IT09dCl7dmFyIGksbixhLG8saCxsLHU7aT1lLmRhdGVwaWNrZXIuX2dldEluc3QodCksZS5kYXRlcGlja2VyLl9jdXJJbnN0JiZlLmRhdGVwaWNrZXIuX2N1ckluc3QhPT1pJiYoZS5kYXRlcGlja2VyLl9jdXJJbnN0LmRwRGl2LnN0b3AoITAsITApLGkmJmUuZGF0ZXBpY2tlci5fZGF0ZXBpY2tlclNob3dpbmcmJmUuZGF0ZXBpY2tlci5faGlkZURhdGVwaWNrZXIoZS5kYXRlcGlja2VyLl9jdXJJbnN0LmlucHV0WzBdKSksbj1lLmRhdGVwaWNrZXIuX2dldChpLCJiZWZvcmVTaG93IiksYT1uP24uYXBwbHkodCxbdCxpXSk6e30sYSE9PSExJiYocihpLnNldHRpbmdzLGEpLGkubGFzdFZhbD1udWxsLGUuZGF0ZXBpY2tlci5fbGFzdElucHV0PXQsZS5kYXRlcGlja2VyLl9zZXREYXRlRnJvbUZpZWxkKGkpLGUuZGF0ZXBpY2tlci5faW5EaWFsb2cmJih0LnZhbHVlPSIiKSxlLmRhdGVwaWNrZXIuX3Bvc3x8KGUuZGF0ZXBpY2tlci5fcG9zPWUuZGF0ZXBpY2tlci5fZmluZFBvcyh0KSxlLmRhdGVwaWNrZXIuX3Bvc1sxXSs9dC5vZmZzZXRIZWlnaHQpLG89ITEsZSh0KS5wYXJlbnRzKCkuZWFjaChmdW5jdGlvbigpe3JldHVybiBvfD0iZml4ZWQiPT09ZSh0aGlzKS5jc3MoInBvc2l0aW9uIiksIW99KSxoPXtsZWZ0OmUuZGF0ZXBpY2tlci5fcG9zWzBdLHRvcDplLmRhdGVwaWNrZXIuX3Bvc1sxXX0sZS5kYXRlcGlja2VyLl9wb3M9bnVsbCxpLmRwRGl2LmVtcHR5KCksaS5kcERpdi5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsZGlzcGxheToiYmxvY2siLHRvcDoiLTEwMDBweCJ9KSxlLmRhdGVwaWNrZXIuX3VwZGF0ZURhdGVwaWNrZXIoaSksaD1lLmRhdGVwaWNrZXIuX2NoZWNrT2Zmc2V0KGksaCxvKSxpLmRwRGl2LmNzcyh7cG9zaXRpb246ZS5kYXRlcGlja2VyLl9pbkRpYWxvZyYmZS5ibG9ja1VJPyJzdGF0aWMiOm8/ImZpeGVkIjoiYWJzb2x1dGUiLGRpc3BsYXk6Im5vbmUiLGxlZnQ6aC5sZWZ0KyJweCIsdG9wOmgudG9wKyJweCJ9KSxpLmlubGluZXx8KGw9ZS5kYXRlcGlja2VyLl9nZXQoaSwic2hvd0FuaW0iKSx1PWUuZGF0ZXBpY2tlci5fZ2V0KGksImR1cmF0aW9uIiksaS5kcERpdi5jc3MoInotaW5kZXgiLHMoZSh0KSkrMSksZS5kYXRlcGlja2VyLl9kYXRlcGlja2VyU2hvd2luZz0hMCxlLmVmZmVjdHMmJmUuZWZmZWN0cy5lZmZlY3RbbF0/aS5kcERpdi5zaG93KGwsZS5kYXRlcGlja2VyLl9nZXQoaSwic2hvd09wdGlvbnMiKSx1KTppLmRwRGl2W2x8fCJzaG93Il0obD91Om51bGwpLGUuZGF0ZXBpY2tlci5fc2hvdWxkRm9jdXNJbnB1dChpKSYmaS5pbnB1dC5mb2N1cygpLGUuZGF0ZXBpY2tlci5fY3VySW5zdD1pKSl9fSxfdXBkYXRlRGF0ZXBpY2tlcjpmdW5jdGlvbih0KXt0aGlzLm1heFJvd3M9NCx2PXQsdC5kcERpdi5lbXB0eSgpLmFwcGVuZCh0aGlzLl9nZW5lcmF0ZUhUTUwodCkpLHRoaXMuX2F0dGFjaEhhbmRsZXJzKHQpO3ZhciBpLHM9dGhpcy5fZ2V0TnVtYmVyT2ZNb250aHModCksbj1zWzFdLGE9MTcscj10LmRwRGl2LmZpbmQoIi4iK3RoaXMuX2RheU92ZXJDbGFzcysiIGEiKTtyLmxlbmd0aD4wJiZvLmFwcGx5KHIuZ2V0KDApKSx0LmRwRGl2LnJlbW92ZUNsYXNzKCJ1aS1kYXRlcGlja2VyLW11bHRpLTIgdWktZGF0ZXBpY2tlci1tdWx0aS0zIHVpLWRhdGVwaWNrZXItbXVsdGktNCIpLndpZHRoKCIiKSxuPjEmJnQuZHBEaXYuYWRkQ2xhc3MoInVpLWRhdGVwaWNrZXItbXVsdGktIituKS5jc3MoIndpZHRoIixhKm4rImVtIiksdC5kcERpdlsoMSE9PXNbMF18fDEhPT1zWzFdPyJhZGQiOiJyZW1vdmUiKSsiQ2xhc3MiXSgidWktZGF0ZXBpY2tlci1tdWx0aSIpLHQuZHBEaXZbKHRoaXMuX2dldCh0LCJpc1JUTCIpPyJhZGQiOiJyZW1vdmUiKSsiQ2xhc3MiXSgidWktZGF0ZXBpY2tlci1ydGwiKSx0PT09ZS5kYXRlcGlja2VyLl9jdXJJbnN0JiZlLmRhdGVwaWNrZXIuX2RhdGVwaWNrZXJTaG93aW5nJiZlLmRhdGVwaWNrZXIuX3Nob3VsZEZvY3VzSW5wdXQodCkmJnQuaW5wdXQuZm9jdXMoKSx0LnllYXJzaHRtbCYmKGk9dC55ZWFyc2h0bWwsc2V0VGltZW91dChmdW5jdGlvbigpe2k9PT10LnllYXJzaHRtbCYmdC55ZWFyc2h0bWwmJnQuZHBEaXYuZmluZCgic2VsZWN0LnVpLWRhdGVwaWNrZXIteWVhcjpmaXJzdCIpLnJlcGxhY2VXaXRoKHQueWVhcnNodG1sKSxpPXQueWVhcnNodG1sPW51bGx9LDApKX0sX3Nob3VsZEZvY3VzSW5wdXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuaW5wdXQmJmUuaW5wdXQuaXMoIjp2aXNpYmxlIikmJiFlLmlucHV0LmlzKCI6ZGlzYWJsZWQiKSYmIWUuaW5wdXQuaXMoIjpmb2N1cyIpfSxfY2hlY2tPZmZzZXQ6ZnVuY3Rpb24odCxpLHMpe3ZhciBuPXQuZHBEaXYub3V0ZXJXaWR0aCgpLGE9dC5kcERpdi5vdXRlckhlaWdodCgpLG89dC5pbnB1dD90LmlucHV0Lm91dGVyV2lkdGgoKTowLHI9dC5pbnB1dD90LmlucHV0Lm91dGVySGVpZ2h0KCk6MCxoPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCsocz8wOmUoZG9jdW1lbnQpLnNjcm9sbExlZnQoKSksbD1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KyhzPzA6ZShkb2N1bWVudCkuc2Nyb2xsVG9wKCkpO3JldHVybiBpLmxlZnQtPXRoaXMuX2dldCh0LCJpc1JUTCIpP24tbzowLGkubGVmdC09cyYmaS5sZWZ0PT09dC5pbnB1dC5vZmZzZXQoKS5sZWZ0P2UoZG9jdW1lbnQpLnNjcm9sbExlZnQoKTowLGkudG9wLT1zJiZpLnRvcD09PXQuaW5wdXQub2Zmc2V0KCkudG9wK3I/ZShkb2N1bWVudCkuc2Nyb2xsVG9wKCk6MCxpLmxlZnQtPU1hdGgubWluKGkubGVmdCxpLmxlZnQrbj5oJiZoPm4/TWF0aC5hYnMoaS5sZWZ0K24taCk6MCksaS50b3AtPU1hdGgubWluKGkudG9wLGkudG9wK2E+bCYmbD5hP01hdGguYWJzKGErcik6MCksaX0sX2ZpbmRQb3M6ZnVuY3Rpb24odCl7Zm9yKHZhciBpLHM9dGhpcy5fZ2V0SW5zdCh0KSxuPXRoaXMuX2dldChzLCJpc1JUTCIpO3QmJigiaGlkZGVuIj09PXQudHlwZXx8MSE9PXQubm9kZVR5cGV8fGUuZXhwci5maWx0ZXJzLmhpZGRlbih0KSk7KXQ9dFtuPyJwcmV2aW91c1NpYmxpbmciOiJuZXh0U2libGluZyJdO3JldHVybiBpPWUodCkub2Zmc2V0KCksW2kubGVmdCxpLnRvcF19LF9oaWRlRGF0ZXBpY2tlcjpmdW5jdGlvbih0KXt2YXIgaSxzLG4sYSxvPXRoaXMuX2N1ckluc3Q7IW98fHQmJm8hPT1lLmRhdGEodCwiZGF0ZXBpY2tlciIpfHx0aGlzLl9kYXRlcGlja2VyU2hvd2luZyYmKGk9dGhpcy5fZ2V0KG8sInNob3dBbmltIikscz10aGlzLl9nZXQobywiZHVyYXRpb24iKSxuPWZ1bmN0aW9uKCl7ZS5kYXRlcGlja2VyLl90aWR5RGlhbG9nKG8pfSxlLmVmZmVjdHMmJihlLmVmZmVjdHMuZWZmZWN0W2ldfHxlLmVmZmVjdHNbaV0pP28uZHBEaXYuaGlkZShpLGUuZGF0ZXBpY2tlci5fZ2V0KG8sInNob3dPcHRpb25zIikscyxuKTpvLmRwRGl2WyJzbGlkZURvd24iPT09aT8ic2xpZGVVcCI6ImZhZGVJbiI9PT1pPyJmYWRlT3V0IjoiaGlkZSJdKGk/czpudWxsLG4pLGl8fG4oKSx0aGlzLl9kYXRlcGlja2VyU2hvd2luZz0hMSxhPXRoaXMuX2dldChvLCJvbkNsb3NlIiksYSYmYS5hcHBseShvLmlucHV0P28uaW5wdXRbMF06bnVsbCxbby5pbnB1dD9vLmlucHV0LnZhbCgpOiIiLG9dKSx0aGlzLl9sYXN0SW5wdXQ9bnVsbCx0aGlzLl9pbkRpYWxvZyYmKHRoaXMuX2RpYWxvZ0lucHV0LmNzcyh7cG9zaXRpb246ImFic29sdXRlIixsZWZ0OiIwIix0b3A6Ii0xMDBweCJ9KSxlLmJsb2NrVUkmJihlLnVuYmxvY2tVSSgpLGUoImJvZHkiKS5hcHBlbmQodGhpcy5kcERpdikpKSx0aGlzLl9pbkRpYWxvZz0hMSl9LF90aWR5RGlhbG9nOmZ1bmN0aW9uKGUpe2UuZHBEaXYucmVtb3ZlQ2xhc3ModGhpcy5fZGlhbG9nQ2xhc3MpLnVuYmluZCgiLnVpLWRhdGVwaWNrZXItY2FsZW5kYXIiKX0sX2NoZWNrRXh0ZXJuYWxDbGljazpmdW5jdGlvbih0KXtpZihlLmRhdGVwaWNrZXIuX2N1ckluc3Qpe3ZhciBpPWUodC50YXJnZXQpLHM9ZS5kYXRlcGlja2VyLl9nZXRJbnN0KGlbMF0pOyhpWzBdLmlkIT09ZS5kYXRlcGlja2VyLl9tYWluRGl2SWQmJjA9PT1pLnBhcmVudHMoIiMiK2UuZGF0ZXBpY2tlci5fbWFpbkRpdklkKS5sZW5ndGgmJiFpLmhhc0NsYXNzKGUuZGF0ZXBpY2tlci5tYXJrZXJDbGFzc05hbWUpJiYhaS5jbG9zZXN0KCIuIitlLmRhdGVwaWNrZXIuX3RyaWdnZXJDbGFzcykubGVuZ3RoJiZlLmRhdGVwaWNrZXIuX2RhdGVwaWNrZXJTaG93aW5nJiYoIWUuZGF0ZXBpY2tlci5faW5EaWFsb2d8fCFlLmJsb2NrVUkpfHxpLmhhc0NsYXNzKGUuZGF0ZXBpY2tlci5tYXJrZXJDbGFzc05hbWUpJiZlLmRhdGVwaWNrZXIuX2N1ckluc3QhPT1zKSYmZS5kYXRlcGlja2VyLl9oaWRlRGF0ZXBpY2tlcigpfX0sX2FkanVzdERhdGU6ZnVuY3Rpb24odCxpLHMpe3ZhciBuPWUodCksYT10aGlzLl9nZXRJbnN0KG5bMF0pO3RoaXMuX2lzRGlzYWJsZWREYXRlcGlja2VyKG5bMF0pfHwodGhpcy5fYWRqdXN0SW5zdERhdGUoYSxpKygiTSI9PT1zP3RoaXMuX2dldChhLCJzaG93Q3VycmVudEF0UG9zIik6MCkscyksdGhpcy5fdXBkYXRlRGF0ZXBpY2tlcihhKSl9LF9nb3RvVG9kYXk6ZnVuY3Rpb24odCl7dmFyIGkscz1lKHQpLG49dGhpcy5fZ2V0SW5zdChzWzBdKTt0aGlzLl9nZXQobiwiZ290b0N1cnJlbnQiKSYmbi5jdXJyZW50RGF5PyhuLnNlbGVjdGVkRGF5PW4uY3VycmVudERheSxuLmRyYXdNb250aD1uLnNlbGVjdGVkTW9udGg9bi5jdXJyZW50TW9udGgsbi5kcmF3WWVhcj1uLnNlbGVjdGVkWWVhcj1uLmN1cnJlbnRZZWFyKTooaT1uZXcgRGF0ZSxuLnNlbGVjdGVkRGF5PWkuZ2V0RGF0ZSgpLG4uZHJhd01vbnRoPW4uc2VsZWN0ZWRNb250aD1pLmdldE1vbnRoKCksbi5kcmF3WWVhcj1uLnNlbGVjdGVkWWVhcj1pLmdldEZ1bGxZZWFyKCkpLHRoaXMuX25vdGlmeUNoYW5nZShuKSx0aGlzLl9hZGp1c3REYXRlKHMpfSxfc2VsZWN0TW9udGhZZWFyOmZ1bmN0aW9uKHQsaSxzKXt2YXIgbj1lKHQpLGE9dGhpcy5fZ2V0SW5zdChuWzBdKTthWyJzZWxlY3RlZCIrKCJNIj09PXM/Ik1vbnRoIjoiWWVhciIpXT1hWyJkcmF3IisoIk0iPT09cz8iTW9udGgiOiJZZWFyIildPXBhcnNlSW50KGkub3B0aW9uc1tpLnNlbGVjdGVkSW5kZXhdLnZhbHVlLDEwKSx0aGlzLl9ub3RpZnlDaGFuZ2UoYSksdGhpcy5fYWRqdXN0RGF0ZShuKX0sX3NlbGVjdERheTpmdW5jdGlvbih0LGkscyxuKXt2YXIgYSxvPWUodCk7ZShuKS5oYXNDbGFzcyh0aGlzLl91bnNlbGVjdGFibGVDbGFzcyl8fHRoaXMuX2lzRGlzYWJsZWREYXRlcGlja2VyKG9bMF0pfHwoYT10aGlzLl9nZXRJbnN0KG9bMF0pLGEuc2VsZWN0ZWREYXk9YS5jdXJyZW50RGF5PWUoImEiLG4pLmh0bWwoKSxhLnNlbGVjdGVkTW9udGg9YS5jdXJyZW50TW9udGg9aSxhLnNlbGVjdGVkWWVhcj1hLmN1cnJlbnRZZWFyPXMsdGhpcy5fc2VsZWN0RGF0ZSh0LHRoaXMuX2Zvcm1hdERhdGUoYSxhLmN1cnJlbnREYXksYS5jdXJyZW50TW9udGgsYS5jdXJyZW50WWVhcikpKX0sX2NsZWFyRGF0ZTpmdW5jdGlvbih0KXt2YXIgaT1lKHQpO3RoaXMuX3NlbGVjdERhdGUoaSwiIil9LF9zZWxlY3REYXRlOmZ1bmN0aW9uKHQsaSl7dmFyIHMsbj1lKHQpLGE9dGhpcy5fZ2V0SW5zdChuWzBdKTtpPW51bGwhPWk/aTp0aGlzLl9mb3JtYXREYXRlKGEpLGEuaW5wdXQmJmEuaW5wdXQudmFsKGkpLHRoaXMuX3VwZGF0ZUFsdGVybmF0ZShhKSxzPXRoaXMuX2dldChhLCJvblNlbGVjdCIpLHM/cy5hcHBseShhLmlucHV0P2EuaW5wdXRbMF06bnVsbCxbaSxhXSk6YS5pbnB1dCYmYS5pbnB1dC50cmlnZ2VyKCJjaGFuZ2UiKSxhLmlubGluZT90aGlzLl91cGRhdGVEYXRlcGlja2VyKGEpOih0aGlzLl9oaWRlRGF0ZXBpY2tlcigpLHRoaXMuX2xhc3RJbnB1dD1hLmlucHV0WzBdLCJvYmplY3QiIT10eXBlb2YgYS5pbnB1dFswXSYmYS5pbnB1dC5mb2N1cygpLHRoaXMuX2xhc3RJbnB1dD1udWxsKX0sX3VwZGF0ZUFsdGVybmF0ZTpmdW5jdGlvbih0KXt2YXIgaSxzLG4sYT10aGlzLl9nZXQodCwiYWx0RmllbGQiKTthJiYoaT10aGlzLl9nZXQodCwiYWx0Rm9ybWF0Iil8fHRoaXMuX2dldCh0LCJkYXRlRm9ybWF0Iikscz10aGlzLl9nZXREYXRlKHQpLG49dGhpcy5mb3JtYXREYXRlKGkscyx0aGlzLl9nZXRGb3JtYXRDb25maWcodCkpLGUoYSkuZWFjaChmdW5jdGlvbigpe2UodGhpcykudmFsKG4pfSkpfSxub1dlZWtlbmRzOmZ1bmN0aW9uKGUpe3ZhciB0PWUuZ2V0RGF5KCk7cmV0dXJuW3Q+MCYmNj50LCIiXX0saXNvODYwMVdlZWs6ZnVuY3Rpb24oZSl7dmFyIHQsaT1uZXcgRGF0ZShlLmdldFRpbWUoKSk7cmV0dXJuIGkuc2V0RGF0ZShpLmdldERhdGUoKSs0LShpLmdldERheSgpfHw3KSksdD1pLmdldFRpbWUoKSxpLnNldE1vbnRoKDApLGkuc2V0RGF0ZSgxKSxNYXRoLmZsb29yKE1hdGgucm91bmQoKHQtaSkvODY0ZTUpLzcpKzF9LHBhcnNlRGF0ZTpmdW5jdGlvbih0LGkscyl7aWYobnVsbD09dHx8bnVsbD09aSl0aHJvdyJJbnZhbGlkIGFyZ3VtZW50cyI7aWYoaT0ib2JqZWN0Ij09dHlwZW9mIGk/IiIraTppKyIiLCIiPT09aSlyZXR1cm4gbnVsbDt2YXIgbixhLG8scixoPTAsbD0ocz9zLnNob3J0WWVhckN1dG9mZjpudWxsKXx8dGhpcy5fZGVmYXVsdHMuc2hvcnRZZWFyQ3V0b2ZmLHU9InN0cmluZyIhPXR5cGVvZiBsP2w6KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpJTEwMCtwYXJzZUludChsLDEwKSxkPShzP3MuZGF5TmFtZXNTaG9ydDpudWxsKXx8dGhpcy5fZGVmYXVsdHMuZGF5TmFtZXNTaG9ydCxjPShzP3MuZGF5TmFtZXM6bnVsbCl8fHRoaXMuX2RlZmF1bHRzLmRheU5hbWVzLHA9KHM/cy5tb250aE5hbWVzU2hvcnQ6bnVsbCl8fHRoaXMuX2RlZmF1bHRzLm1vbnRoTmFtZXNTaG9ydCxmPShzP3MubW9udGhOYW1lczpudWxsKXx8dGhpcy5fZGVmYXVsdHMubW9udGhOYW1lcyxtPS0xLGc9LTEsdj0tMSx5PS0xLGI9ITEsXz1mdW5jdGlvbihlKXt2YXIgaT10Lmxlbmd0aD5uKzEmJnQuY2hhckF0KG4rMSk9PT1lO3JldHVybiBpJiZuKyssaX0seD1mdW5jdGlvbihlKXt2YXIgdD1fKGUpLHM9IkAiPT09ZT8xNDoiISI9PT1lPzIwOiJ5Ij09PWUmJnQ/NDoibyI9PT1lPzM6MixuPSJ5Ij09PWU/czoxLGE9UmVnRXhwKCJeXFxkeyIrbisiLCIrcysifSIpLG89aS5zdWJzdHJpbmcoaCkubWF0Y2goYSk7aWYoIW8pdGhyb3ciTWlzc2luZyBudW1iZXIgYXQgcG9zaXRpb24gIitoO3JldHVybiBoKz1vWzBdLmxlbmd0aCxwYXJzZUludChvWzBdLDEwKX0sdz1mdW5jdGlvbih0LHMsbil7dmFyIGE9LTEsbz1lLm1hcChfKHQpP246cyxmdW5jdGlvbihlLHQpe3JldHVybltbdCxlXV19KS5zb3J0KGZ1bmN0aW9uKGUsdCl7cmV0dXJuLShlWzFdLmxlbmd0aC10WzFdLmxlbmd0aCl9KTtpZihlLmVhY2gobyxmdW5jdGlvbihlLHQpe3ZhciBzPXRbMV07cmV0dXJuIGkuc3Vic3RyKGgscy5sZW5ndGgpLnRvTG93ZXJDYXNlKCk9PT1zLnRvTG93ZXJDYXNlKCk/KGE9dFswXSxoKz1zLmxlbmd0aCwhMSk6dm9pZCAwfSksLTEhPT1hKXJldHVybiBhKzE7dGhyb3ciVW5rbm93biBuYW1lIGF0IHBvc2l0aW9uICIraH0saz1mdW5jdGlvbigpe2lmKGkuY2hhckF0KGgpIT09dC5jaGFyQXQobikpdGhyb3ciVW5leHBlY3RlZCBsaXRlcmFsIGF0IHBvc2l0aW9uICIraDtoKyt9O2ZvcihuPTA7dC5sZW5ndGg+bjtuKyspaWYoYikiJyIhPT10LmNoYXJBdChuKXx8XygiJyIpP2soKTpiPSExO2Vsc2Ugc3dpdGNoKHQuY2hhckF0KG4pKXtjYXNlImQiOnY9eCgiZCIpO2JyZWFrO2Nhc2UiRCI6dygiRCIsZCxjKTticmVhaztjYXNlIm8iOnk9eCgibyIpO2JyZWFrO2Nhc2UibSI6Zz14KCJtIik7YnJlYWs7Y2FzZSJNIjpnPXcoIk0iLHAsZik7YnJlYWs7Y2FzZSJ5IjptPXgoInkiKTticmVhaztjYXNlIkAiOnI9bmV3IERhdGUoeCgiQCIpKSxtPXIuZ2V0RnVsbFllYXIoKSxnPXIuZ2V0TW9udGgoKSsxLHY9ci5nZXREYXRlKCk7YnJlYWs7Y2FzZSIhIjpyPW5ldyBEYXRlKCh4KCIhIiktdGhpcy5fdGlja3NUbzE5NzApLzFlNCksbT1yLmdldEZ1bGxZZWFyKCksZz1yLmdldE1vbnRoKCkrMSx2PXIuZ2V0RGF0ZSgpO2JyZWFrO2Nhc2UiJyI6XygiJyIpP2soKTpiPSEwO2JyZWFrO2RlZmF1bHQ6aygpfWlmKGkubGVuZ3RoPmgmJihvPWkuc3Vic3RyKGgpLCEvXlxzKy8udGVzdChvKSkpdGhyb3ciRXh0cmEvdW5wYXJzZWQgY2hhcmFjdGVycyBmb3VuZCBpbiBkYXRlOiAiK287aWYoLTE9PT1tP209KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpOjEwMD5tJiYobSs9KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpLShuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKSUxMDArKHU+PW0/MDotMTAwKSkseT4tMSlmb3IoZz0xLHY9eTs7KXtpZihhPXRoaXMuX2dldERheXNJbk1vbnRoKG0sZy0xKSxhPj12KWJyZWFrO2crKyx2LT1hfWlmKHI9dGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QobmV3IERhdGUobSxnLTEsdikpLHIuZ2V0RnVsbFllYXIoKSE9PW18fHIuZ2V0TW9udGgoKSsxIT09Z3x8ci5nZXREYXRlKCkhPT12KXRocm93IkludmFsaWQgZGF0ZSI7cmV0dXJuIHJ9LEFUT006Inl5LW1tLWRkIixDT09LSUU6IkQsIGRkIE0geXkiLElTT184NjAxOiJ5eS1tbS1kZCIsUkZDXzgyMjoiRCwgZCBNIHkiLFJGQ184NTA6IkRELCBkZC1NLXkiLFJGQ18xMDM2OiJELCBkIE0geSIsUkZDXzExMjM6IkQsIGQgTSB5eSIsUkZDXzI4MjI6IkQsIGQgTSB5eSIsUlNTOiJELCBkIE0geSIsVElDS1M6IiEiLFRJTUVTVEFNUDoiQCIsVzNDOiJ5eS1tbS1kZCIsX3RpY2tzVG8xOTcwOjFlNyo2MCo2MCoyNCooNzE4Njg1K01hdGguZmxvb3IoNDkyLjUpLU1hdGguZmxvb3IoMTkuNykrTWF0aC5mbG9vcig0LjkyNSkpLGZvcm1hdERhdGU6ZnVuY3Rpb24oZSx0LGkpe2lmKCF0KXJldHVybiIiO3ZhciBzLG49KGk/aS5kYXlOYW1lc1Nob3J0Om51bGwpfHx0aGlzLl9kZWZhdWx0cy5kYXlOYW1lc1Nob3J0LGE9KGk/aS5kYXlOYW1lczpudWxsKXx8dGhpcy5fZGVmYXVsdHMuZGF5TmFtZXMsbz0oaT9pLm1vbnRoTmFtZXNTaG9ydDpudWxsKXx8dGhpcy5fZGVmYXVsdHMubW9udGhOYW1lc1Nob3J0LHI9KGk/aS5tb250aE5hbWVzOm51bGwpfHx0aGlzLl9kZWZhdWx0cy5tb250aE5hbWVzLGg9ZnVuY3Rpb24odCl7dmFyIGk9ZS5sZW5ndGg+cysxJiZlLmNoYXJBdChzKzEpPT09dDtyZXR1cm4gaSYmcysrLGl9LGw9ZnVuY3Rpb24oZSx0LGkpe3ZhciBzPSIiK3Q7aWYoaChlKSlmb3IoO2k+cy5sZW5ndGg7KXM9IjAiK3M7cmV0dXJuIHN9LHU9ZnVuY3Rpb24oZSx0LGkscyl7cmV0dXJuIGgoZSk/c1t0XTppW3RdfSxkPSIiLGM9ITE7aWYodClmb3Iocz0wO2UubGVuZ3RoPnM7cysrKWlmKGMpIiciIT09ZS5jaGFyQXQocyl8fGgoIiciKT9kKz1lLmNoYXJBdChzKTpjPSExO2Vsc2Ugc3dpdGNoKGUuY2hhckF0KHMpKXtjYXNlImQiOmQrPWwoImQiLHQuZ2V0RGF0ZSgpLDIpO2JyZWFrO2Nhc2UiRCI6ZCs9dSgiRCIsdC5nZXREYXkoKSxuLGEpO2JyZWFrO2Nhc2UibyI6ZCs9bCgibyIsTWF0aC5yb3VuZCgobmV3IERhdGUodC5nZXRGdWxsWWVhcigpLHQuZ2V0TW9udGgoKSx0LmdldERhdGUoKSkuZ2V0VGltZSgpLW5ldyBEYXRlKHQuZ2V0RnVsbFllYXIoKSwwLDApLmdldFRpbWUoKSkvODY0ZTUpLDMpO2JyZWFrO2Nhc2UibSI6ZCs9bCgibSIsdC5nZXRNb250aCgpKzEsMik7YnJlYWs7Y2FzZSJNIjpkKz11KCJNIix0LmdldE1vbnRoKCksbyxyKTticmVhaztjYXNlInkiOmQrPWgoInkiKT90LmdldEZ1bGxZZWFyKCk6KDEwPnQuZ2V0WWVhcigpJTEwMD8iMCI6IiIpK3QuZ2V0WWVhcigpJTEwMDticmVhaztjYXNlIkAiOmQrPXQuZ2V0VGltZSgpO2JyZWFrO2Nhc2UiISI6ZCs9MWU0KnQuZ2V0VGltZSgpK3RoaXMuX3RpY2tzVG8xOTcwO2JyZWFrO2Nhc2UiJyI6aCgiJyIpP2QrPSInIjpjPSEwO2JyZWFrO2RlZmF1bHQ6ZCs9ZS5jaGFyQXQocyl9cmV0dXJuIGR9LF9wb3NzaWJsZUNoYXJzOmZ1bmN0aW9uKGUpe3ZhciB0LGk9IiIscz0hMSxuPWZ1bmN0aW9uKGkpe3ZhciBzPWUubGVuZ3RoPnQrMSYmZS5jaGFyQXQodCsxKT09PWk7cmV0dXJuIHMmJnQrKyxzfTtmb3IodD0wO2UubGVuZ3RoPnQ7dCsrKWlmKHMpIiciIT09ZS5jaGFyQXQodCl8fG4oIiciKT9pKz1lLmNoYXJBdCh0KTpzPSExO2Vsc2Ugc3dpdGNoKGUuY2hhckF0KHQpKXtjYXNlImQiOmNhc2UibSI6Y2FzZSJ5IjpjYXNlIkAiOmkrPSIwMTIzNDU2Nzg5IjticmVhaztjYXNlIkQiOmNhc2UiTSI6cmV0dXJuIG51bGw7Y2FzZSInIjpuKCInIik/aSs9IiciOnM9ITA7YnJlYWs7ZGVmYXVsdDppKz1lLmNoYXJBdCh0KX1yZXR1cm4gaX0sX2dldDpmdW5jdGlvbihlLHQpe3JldHVybiB2b2lkIDAhPT1lLnNldHRpbmdzW3RdP2Uuc2V0dGluZ3NbdF06dGhpcy5fZGVmYXVsdHNbdF19LF9zZXREYXRlRnJvbUZpZWxkOmZ1bmN0aW9uKGUsdCl7aWYoZS5pbnB1dC52YWwoKSE9PWUubGFzdFZhbCl7dmFyIGk9dGhpcy5fZ2V0KGUsImRhdGVGb3JtYXQiKSxzPWUubGFzdFZhbD1lLmlucHV0P2UuaW5wdXQudmFsKCk6bnVsbCxuPXRoaXMuX2dldERlZmF1bHREYXRlKGUpLGE9bixvPXRoaXMuX2dldEZvcm1hdENvbmZpZyhlKTt0cnl7YT10aGlzLnBhcnNlRGF0ZShpLHMsbyl8fG59Y2F0Y2gocil7cz10PyIiOnN9ZS5zZWxlY3RlZERheT1hLmdldERhdGUoKSxlLmRyYXdNb250aD1lLnNlbGVjdGVkTW9udGg9YS5nZXRNb250aCgpLGUuZHJhd1llYXI9ZS5zZWxlY3RlZFllYXI9YS5nZXRGdWxsWWVhcigpLGUuY3VycmVudERheT1zP2EuZ2V0RGF0ZSgpOjAsZS5jdXJyZW50TW9udGg9cz9hLmdldE1vbnRoKCk6MCxlLmN1cnJlbnRZZWFyPXM/YS5nZXRGdWxsWWVhcigpOjAsdGhpcy5fYWRqdXN0SW5zdERhdGUoZSl9fSxfZ2V0RGVmYXVsdERhdGU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX3Jlc3RyaWN0TWluTWF4KGUsdGhpcy5fZGV0ZXJtaW5lRGF0ZShlLHRoaXMuX2dldChlLCJkZWZhdWx0RGF0ZSIpLG5ldyBEYXRlKSl9LF9kZXRlcm1pbmVEYXRlOmZ1bmN0aW9uKHQsaSxzKXt2YXIgbj1mdW5jdGlvbihlKXt2YXIgdD1uZXcgRGF0ZTtyZXR1cm4gdC5zZXREYXRlKHQuZ2V0RGF0ZSgpK2UpLHR9LGE9ZnVuY3Rpb24oaSl7dHJ5e3JldHVybiBlLmRhdGVwaWNrZXIucGFyc2VEYXRlKGUuZGF0ZXBpY2tlci5fZ2V0KHQsImRhdGVGb3JtYXQiKSxpLGUuZGF0ZXBpY2tlci5fZ2V0Rm9ybWF0Q29uZmlnKHQpKX1jYXRjaChzKXt9Zm9yKHZhciBuPShpLnRvTG93ZXJDYXNlKCkubWF0Y2goL15jLyk/ZS5kYXRlcGlja2VyLl9nZXREYXRlKHQpOm51bGwpfHxuZXcgRGF0ZSxhPW4uZ2V0RnVsbFllYXIoKSxvPW4uZ2V0TW9udGgoKSxyPW4uZ2V0RGF0ZSgpLGg9LyhbK1wtXT9bMC05XSspXHMqKGR8RHx3fFd8bXxNfHl8WSk/L2csbD1oLmV4ZWMoaSk7bDspe3N3aXRjaChsWzJdfHwiZCIpe2Nhc2UiZCI6Y2FzZSJEIjpyKz1wYXJzZUludChsWzFdLDEwKTticmVhaztjYXNlInciOmNhc2UiVyI6cis9NypwYXJzZUludChsWzFdLDEwKTticmVhaztjYXNlIm0iOmNhc2UiTSI6bys9cGFyc2VJbnQobFsxXSwxMCkscj1NYXRoLm1pbihyLGUuZGF0ZXBpY2tlci5fZ2V0RGF5c0luTW9udGgoYSxvKSk7YnJlYWs7Y2FzZSJ5IjpjYXNlIlkiOmErPXBhcnNlSW50KGxbMV0sMTApLHI9TWF0aC5taW4ocixlLmRhdGVwaWNrZXIuX2dldERheXNJbk1vbnRoKGEsbykpfWw9aC5leGVjKGkpfXJldHVybiBuZXcgRGF0ZShhLG8scil9LG89bnVsbD09aXx8IiI9PT1pP3M6InN0cmluZyI9PXR5cGVvZiBpP2EoaSk6Im51bWJlciI9PXR5cGVvZiBpP2lzTmFOKGkpP3M6bihpKTpuZXcgRGF0ZShpLmdldFRpbWUoKSk7cmV0dXJuIG89byYmIkludmFsaWQgRGF0ZSI9PSIiK28/czpvLG8mJihvLnNldEhvdXJzKDApLG8uc2V0TWludXRlcygwKSxvLnNldFNlY29uZHMoMCksby5zZXRNaWxsaXNlY29uZHMoMCkpLHRoaXMuX2RheWxpZ2h0U2F2aW5nQWRqdXN0KG8pfSxfZGF5bGlnaHRTYXZpbmdBZGp1c3Q6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/KGUuc2V0SG91cnMoZS5nZXRIb3VycygpPjEyP2UuZ2V0SG91cnMoKSsyOjApLGUpOm51bGx9LF9zZXREYXRlOmZ1bmN0aW9uKGUsdCxpKXt2YXIgcz0hdCxuPWUuc2VsZWN0ZWRNb250aCxhPWUuc2VsZWN0ZWRZZWFyLG89dGhpcy5fcmVzdHJpY3RNaW5NYXgoZSx0aGlzLl9kZXRlcm1pbmVEYXRlKGUsdCxuZXcgRGF0ZSkpO2Uuc2VsZWN0ZWREYXk9ZS5jdXJyZW50RGF5PW8uZ2V0RGF0ZSgpLGUuZHJhd01vbnRoPWUuc2VsZWN0ZWRNb250aD1lLmN1cnJlbnRNb250aD1vLmdldE1vbnRoKCksZS5kcmF3WWVhcj1lLnNlbGVjdGVkWWVhcj1lLmN1cnJlbnRZZWFyPW8uZ2V0RnVsbFllYXIoKSxuPT09ZS5zZWxlY3RlZE1vbnRoJiZhPT09ZS5zZWxlY3RlZFllYXJ8fGl8fHRoaXMuX25vdGlmeUNoYW5nZShlKSx0aGlzLl9hZGp1c3RJbnN0RGF0ZShlKSxlLmlucHV0JiZlLmlucHV0LnZhbChzPyIiOnRoaXMuX2Zvcm1hdERhdGUoZSkpfSxfZ2V0RGF0ZTpmdW5jdGlvbihlKXt2YXIgdD0hZS5jdXJyZW50WWVhcnx8ZS5pbnB1dCYmIiI9PT1lLmlucHV0LnZhbCgpP251bGw6dGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QobmV3IERhdGUoZS5jdXJyZW50WWVhcixlLmN1cnJlbnRNb250aCxlLmN1cnJlbnREYXkpKTtyZXR1cm4gdH0sX2F0dGFjaEhhbmRsZXJzOmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMuX2dldCh0LCJzdGVwTW9udGhzIikscz0iIyIrdC5pZC5yZXBsYWNlKC9cXFxcL2csIlxcIik7dC5kcERpdi5maW5kKCJbZGF0YS1oYW5kbGVyXSIpLm1hcChmdW5jdGlvbigpe3ZhciB0PXtwcmV2OmZ1bmN0aW9uKCl7ZS5kYXRlcGlja2VyLl9hZGp1c3REYXRlKHMsLWksIk0iKX0sbmV4dDpmdW5jdGlvbigpe2UuZGF0ZXBpY2tlci5fYWRqdXN0RGF0ZShzLCtpLCJNIil9LGhpZGU6ZnVuY3Rpb24oKXtlLmRhdGVwaWNrZXIuX2hpZGVEYXRlcGlja2VyKCl9LHRvZGF5OmZ1bmN0aW9uKCl7ZS5kYXRlcGlja2VyLl9nb3RvVG9kYXkocyl9LHNlbGVjdERheTpmdW5jdGlvbigpe3JldHVybiBlLmRhdGVwaWNrZXIuX3NlbGVjdERheShzLCt0aGlzLmdldEF0dHJpYnV0ZSgiZGF0YS1tb250aCIpLCt0aGlzLmdldEF0dHJpYnV0ZSgiZGF0YS15ZWFyIiksdGhpcyksITF9LHNlbGVjdE1vbnRoOmZ1bmN0aW9uKCl7cmV0dXJuIGUuZGF0ZXBpY2tlci5fc2VsZWN0TW9udGhZZWFyKHMsdGhpcywiTSIpLCExfSxzZWxlY3RZZWFyOmZ1bmN0aW9uKCl7cmV0dXJuIGUuZGF0ZXBpY2tlci5fc2VsZWN0TW9udGhZZWFyKHMsdGhpcywiWSIpLCExfX07ZSh0aGlzKS5iaW5kKHRoaXMuZ2V0QXR0cmlidXRlKCJkYXRhLWV2ZW50IiksdFt0aGlzLmdldEF0dHJpYnV0ZSgiZGF0YS1oYW5kbGVyIildKX0pfSxfZ2VuZXJhdGVIVE1MOmZ1bmN0aW9uKGUpe3ZhciB0LGkscyxuLGEsbyxyLGgsbCx1LGQsYyxwLGYsbSxnLHYseSxiLF8seCx3LGssVCxELFMsTSxDLE4sQSxQLEksSCx6LEYsRSxPLGosVyxMPW5ldyBEYXRlLFI9dGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QobmV3IERhdGUoTC5nZXRGdWxsWWVhcigpLEwuZ2V0TW9udGgoKSxMLmdldERhdGUoKSkpLFk9dGhpcy5fZ2V0KGUsImlzUlRMIiksQj10aGlzLl9nZXQoZSwic2hvd0J1dHRvblBhbmVsIiksSj10aGlzLl9nZXQoZSwiaGlkZUlmTm9QcmV2TmV4dCIpLHE9dGhpcy5fZ2V0KGUsIm5hdmlnYXRpb25Bc0RhdGVGb3JtYXQiKSxLPXRoaXMuX2dldE51bWJlck9mTW9udGhzKGUpLFY9dGhpcy5fZ2V0KGUsInNob3dDdXJyZW50QXRQb3MiKSxVPXRoaXMuX2dldChlLCJzdGVwTW9udGhzIiksUT0xIT09S1swXXx8MSE9PUtbMV0sRz10aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdChlLmN1cnJlbnREYXk/bmV3IERhdGUoZS5jdXJyZW50WWVhcixlLmN1cnJlbnRNb250aCxlLmN1cnJlbnREYXkpOm5ldyBEYXRlKDk5OTksOSw5KSksWD10aGlzLl9nZXRNaW5NYXhEYXRlKGUsIm1pbiIpLCQ9dGhpcy5fZ2V0TWluTWF4RGF0ZShlLCJtYXgiKSxaPWUuZHJhd01vbnRoLVYsZXQ9ZS5kcmF3WWVhcjtpZigwPlomJihaKz0xMixldC0tKSwkKWZvcih0PXRoaXMuX2RheWxpZ2h0U2F2aW5nQWRqdXN0KG5ldyBEYXRlKCQuZ2V0RnVsbFllYXIoKSwkLmdldE1vbnRoKCktS1swXSpLWzFdKzEsJC5nZXREYXRlKCkpKSx0PVgmJlg+dD9YOnQ7dGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QobmV3IERhdGUoZXQsWiwxKSk+dDspWi0tLDA+WiYmKFo9MTEsZXQtLSk7Zm9yKGUuZHJhd01vbnRoPVosZS5kcmF3WWVhcj1ldCxpPXRoaXMuX2dldChlLCJwcmV2VGV4dCIpLGk9cT90aGlzLmZvcm1hdERhdGUoaSx0aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdChuZXcgRGF0ZShldCxaLVUsMSkpLHRoaXMuX2dldEZvcm1hdENvbmZpZyhlKSk6aSxzPXRoaXMuX2NhbkFkanVzdE1vbnRoKGUsLTEsZXQsWik/IjxhIGNsYXNzPSd1aS1kYXRlcGlja2VyLXByZXYgdWktY29ybmVyLWFsbCcgZGF0YS1oYW5kbGVyPSdwcmV2JyBkYXRhLWV2ZW50PSdjbGljaycgdGl0bGU9JyIraSsiJz48c3BhbiBjbGFzcz0ndWktaWNvbiB1aS1pY29uLWNpcmNsZS10cmlhbmdsZS0iKyhZPyJlIjoidyIpKyInPiIraSsiPC9zcGFuPjwvYT4iOko/IiI6IjxhIGNsYXNzPSd1aS1kYXRlcGlja2VyLXByZXYgdWktY29ybmVyLWFsbCB1aS1zdGF0ZS1kaXNhYmxlZCcgdGl0bGU9JyIraSsiJz48c3BhbiBjbGFzcz0ndWktaWNvbiB1aS1pY29uLWNpcmNsZS10cmlhbmdsZS0iKyhZPyJlIjoidyIpKyInPiIraSsiPC9zcGFuPjwvYT4iLG49dGhpcy5fZ2V0KGUsIm5leHRUZXh0Iiksbj1xP3RoaXMuZm9ybWF0RGF0ZShuLHRoaXMuX2RheWxpZ2h0U2F2aW5nQWRqdXN0KG5ldyBEYXRlKGV0LForVSwxKSksdGhpcy5fZ2V0Rm9ybWF0Q29uZmlnKGUpKTpuLGE9dGhpcy5fY2FuQWRqdXN0TW9udGgoZSwxLGV0LFopPyI8YSBjbGFzcz0ndWktZGF0ZXBpY2tlci1uZXh0IHVpLWNvcm5lci1hbGwnIGRhdGEtaGFuZGxlcj0nbmV4dCcgZGF0YS1ldmVudD0nY2xpY2snIHRpdGxlPSciK24rIic+PHNwYW4gY2xhc3M9J3VpLWljb24gdWktaWNvbi1jaXJjbGUtdHJpYW5nbGUtIisoWT8idyI6ImUiKSsiJz4iK24rIjwvc3Bhbj48L2E+IjpKPyIiOiI8YSBjbGFzcz0ndWktZGF0ZXBpY2tlci1uZXh0IHVpLWNvcm5lci1hbGwgdWktc3RhdGUtZGlzYWJsZWQnIHRpdGxlPSciK24rIic+PHNwYW4gY2xhc3M9J3VpLWljb24gdWktaWNvbi1jaXJjbGUtdHJpYW5nbGUtIisoWT8idyI6ImUiKSsiJz4iK24rIjwvc3Bhbj48L2E+IixvPXRoaXMuX2dldChlLCJjdXJyZW50VGV4dCIpLHI9dGhpcy5fZ2V0KGUsImdvdG9DdXJyZW50IikmJmUuY3VycmVudERheT9HOlIsbz1xP3RoaXMuZm9ybWF0RGF0ZShvLHIsdGhpcy5fZ2V0Rm9ybWF0Q29uZmlnKGUpKTpvLGg9ZS5pbmxpbmU/IiI6IjxidXR0b24gdHlwZT0nYnV0dG9uJyBjbGFzcz0ndWktZGF0ZXBpY2tlci1jbG9zZSB1aS1zdGF0ZS1kZWZhdWx0IHVpLXByaW9yaXR5LXByaW1hcnkgdWktY29ybmVyLWFsbCcgZGF0YS1oYW5kbGVyPSdoaWRlJyBkYXRhLWV2ZW50PSdjbGljayc+Iit0aGlzLl9nZXQoZSwiY2xvc2VUZXh0IikrIjwvYnV0dG9uPiIsbD1CPyI8ZGl2IGNsYXNzPSd1aS1kYXRlcGlja2VyLWJ1dHRvbnBhbmUgdWktd2lkZ2V0LWNvbnRlbnQnPiIrKFk/aDoiIikrKHRoaXMuX2lzSW5SYW5nZShlLHIpPyI8YnV0dG9uIHR5cGU9J2J1dHRvbicgY2xhc3M9J3VpLWRhdGVwaWNrZXItY3VycmVudCB1aS1zdGF0ZS1kZWZhdWx0IHVpLXByaW9yaXR5LXNlY29uZGFyeSB1aS1jb3JuZXItYWxsJyBkYXRhLWhhbmRsZXI9J3RvZGF5JyBkYXRhLWV2ZW50PSdjbGljayc+IitvKyI8L2J1dHRvbj4iOiIiKSsoWT8iIjpoKSsiPC9kaXY+IjoiIix1PXBhcnNlSW50KHRoaXMuX2dldChlLCJmaXJzdERheSIpLDEwKSx1PWlzTmFOKHUpPzA6dSxkPXRoaXMuX2dldChlLCJzaG93V2VlayIpLGM9dGhpcy5fZ2V0KGUsImRheU5hbWVzIikscD10aGlzLl9nZXQoZSwiZGF5TmFtZXNNaW4iKSxmPXRoaXMuX2dldChlLCJtb250aE5hbWVzIiksbT10aGlzLl9nZXQoZSwibW9udGhOYW1lc1Nob3J0IiksZz10aGlzLl9nZXQoZSwiYmVmb3JlU2hvd0RheSIpLHY9dGhpcy5fZ2V0KGUsInNob3dPdGhlck1vbnRocyIpLHk9dGhpcy5fZ2V0KGUsInNlbGVjdE90aGVyTW9udGhzIiksYj10aGlzLl9nZXREZWZhdWx0RGF0ZShlKSxfPSIiLHc9MDtLWzBdPnc7dysrKXtmb3Ioaz0iIix0aGlzLm1heFJvd3M9NCxUPTA7S1sxXT5UO1QrKyl7aWYoRD10aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdChuZXcgRGF0ZShldCxaLGUuc2VsZWN0ZWREYXkpKSxTPSIgdWktY29ybmVyLWFsbCIsTT0iIixRKXtpZihNKz0iPGRpdiBjbGFzcz0ndWktZGF0ZXBpY2tlci1ncm91cCIsS1sxXT4xKXN3aXRjaChUKXtjYXNlIDA6TSs9IiB1aS1kYXRlcGlja2VyLWdyb3VwLWZpcnN0IixTPSIgdWktY29ybmVyLSIrKFk/InJpZ2h0IjoibGVmdCIpO2JyZWFrO2Nhc2UgS1sxXS0xOk0rPSIgdWktZGF0ZXBpY2tlci1ncm91cC1sYXN0IixTPSIgdWktY29ybmVyLSIrKFk/ImxlZnQiOiJyaWdodCIpO2JyZWFrO2RlZmF1bHQ6TSs9IiB1aS1kYXRlcGlja2VyLWdyb3VwLW1pZGRsZSIsUz0iIn1NKz0iJz4ifWZvcihNKz0iPGRpdiBjbGFzcz0ndWktZGF0ZXBpY2tlci1oZWFkZXIgdWktd2lkZ2V0LWhlYWRlciB1aS1oZWxwZXItY2xlYXJmaXgiK1MrIic+IisoL2FsbHxsZWZ0Ly50ZXN0KFMpJiYwPT09dz9ZP2E6czoiIikrKC9hbGx8cmlnaHQvLnRlc3QoUykmJjA9PT13P1k/czphOiIiKSt0aGlzLl9nZW5lcmF0ZU1vbnRoWWVhckhlYWRlcihlLFosZXQsWCwkLHc+MHx8VD4wLGYsbSkrIjwvZGl2Pjx0YWJsZSBjbGFzcz0ndWktZGF0ZXBpY2tlci1jYWxlbmRhcic+PHRoZWFkPiIrIjx0cj4iLEM9ZD8iPHRoIGNsYXNzPSd1aS1kYXRlcGlja2VyLXdlZWstY29sJz4iK3RoaXMuX2dldChlLCJ3ZWVrSGVhZGVyIikrIjwvdGg+IjoiIix4PTA7Nz54O3grKylOPSh4K3UpJTcsQys9Ijx0aCBzY29wZT0nY29sJyIrKCh4K3UrNiklNz49NT8iIGNsYXNzPSd1aS1kYXRlcGlja2VyLXdlZWstZW5kJyI6IiIpKyI+IisiPHNwYW4gdGl0bGU9JyIrY1tOXSsiJz4iK3BbTl0rIjwvc3Bhbj48L3RoPiI7Zm9yKE0rPUMrIjwvdHI+PC90aGVhZD48dGJvZHk+IixBPXRoaXMuX2dldERheXNJbk1vbnRoKGV0LFopLGV0PT09ZS5zZWxlY3RlZFllYXImJlo9PT1lLnNlbGVjdGVkTW9udGgmJihlLnNlbGVjdGVkRGF5PU1hdGgubWluKGUuc2VsZWN0ZWREYXksQSkpLFA9KHRoaXMuX2dldEZpcnN0RGF5T2ZNb250aChldCxaKS11KzcpJTcsST1NYXRoLmNlaWwoKFArQSkvNyksSD1RP3RoaXMubWF4Um93cz5JP3RoaXMubWF4Um93czpJOkksdGhpcy5tYXhSb3dzPUgsej10aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdChuZXcgRGF0ZShldCxaLDEtUCkpLEY9MDtIPkY7RisrKXtmb3IoTSs9Ijx0cj4iLEU9ZD8iPHRkIGNsYXNzPSd1aS1kYXRlcGlja2VyLXdlZWstY29sJz4iK3RoaXMuX2dldChlLCJjYWxjdWxhdGVXZWVrIikoeikrIjwvdGQ+IjoiIix4PTA7Nz54O3grKylPPWc/Zy5hcHBseShlLmlucHV0P2UuaW5wdXRbMF06bnVsbCxbel0pOlshMCwiIl0saj16LmdldE1vbnRoKCkhPT1aLFc9aiYmIXl8fCFPWzBdfHxYJiZYPnp8fCQmJno+JCxFKz0iPHRkIGNsYXNzPSciKygoeCt1KzYpJTc+PTU/IiB1aS1kYXRlcGlja2VyLXdlZWstZW5kIjoiIikrKGo/IiB1aS1kYXRlcGlja2VyLW90aGVyLW1vbnRoIjoiIikrKHouZ2V0VGltZSgpPT09RC5nZXRUaW1lKCkmJlo9PT1lLnNlbGVjdGVkTW9udGgmJmUuX2tleUV2ZW50fHxiLmdldFRpbWUoKT09PXouZ2V0VGltZSgpJiZiLmdldFRpbWUoKT09PUQuZ2V0VGltZSgpPyIgIit0aGlzLl9kYXlPdmVyQ2xhc3M6IiIpKyhXPyIgIit0aGlzLl91bnNlbGVjdGFibGVDbGFzcysiIHVpLXN0YXRlLWRpc2FibGVkIjoiIikrKGomJiF2PyIiOiIgIitPWzFdKyh6LmdldFRpbWUoKT09PUcuZ2V0VGltZSgpPyIgIit0aGlzLl9jdXJyZW50Q2xhc3M6IiIpKyh6LmdldFRpbWUoKT09PVIuZ2V0VGltZSgpPyIgdWktZGF0ZXBpY2tlci10b2RheSI6IiIpKSsiJyIrKGomJiF2fHwhT1syXT8iIjoiIHRpdGxlPSciK09bMl0ucmVwbGFjZSgvJy9nLCImIzM5OyIpKyInIikrKFc/IiI6IiBkYXRhLWhhbmRsZXI9J3NlbGVjdERheScgZGF0YS1ldmVudD0nY2xpY2snIGRhdGEtbW9udGg9JyIrei5nZXRNb250aCgpKyInIGRhdGEteWVhcj0nIit6LmdldEZ1bGxZZWFyKCkrIiciKSsiPiIrKGomJiF2PyImI3hhMDsiOlc/IjxzcGFuIGNsYXNzPSd1aS1zdGF0ZS1kZWZhdWx0Jz4iK3ouZ2V0RGF0ZSgpKyI8L3NwYW4+IjoiPGEgY2xhc3M9J3VpLXN0YXRlLWRlZmF1bHQiKyh6LmdldFRpbWUoKT09PVIuZ2V0VGltZSgpPyIgdWktc3RhdGUtaGlnaGxpZ2h0IjoiIikrKHouZ2V0VGltZSgpPT09Ry5nZXRUaW1lKCk/IiB1aS1zdGF0ZS1hY3RpdmUiOiIiKSsoaj8iIHVpLXByaW9yaXR5LXNlY29uZGFyeSI6IiIpKyInIGhyZWY9JyMnPiIrei5nZXREYXRlKCkrIjwvYT4iKSsiPC90ZD4iLHouc2V0RGF0ZSh6LmdldERhdGUoKSsxKSx6PXRoaXMuX2RheWxpZ2h0U2F2aW5nQWRqdXN0KHopO00rPUUrIjwvdHI+In1aKyssWj4xMSYmKFo9MCxldCsrKSxNKz0iPC90Ym9keT48L3RhYmxlPiIrKFE/IjwvZGl2PiIrKEtbMF0+MCYmVD09PUtbMV0tMT8iPGRpdiBjbGFzcz0ndWktZGF0ZXBpY2tlci1yb3ctYnJlYWsnPjwvZGl2PiI6IiIpOiIiKSxrKz1NfV8rPWt9cmV0dXJuIF8rPWwsZS5fa2V5RXZlbnQ9ITEsX30sX2dlbmVyYXRlTW9udGhZZWFySGVhZGVyOmZ1bmN0aW9uKGUsdCxpLHMsbixhLG8scil7dmFyIGgsbCx1LGQsYyxwLGYsbSxnPXRoaXMuX2dldChlLCJjaGFuZ2VNb250aCIpLHY9dGhpcy5fZ2V0KGUsImNoYW5nZVllYXIiKSx5PXRoaXMuX2dldChlLCJzaG93TW9udGhBZnRlclllYXIiKSxiPSI8ZGl2IGNsYXNzPSd1aS1kYXRlcGlja2VyLXRpdGxlJz4iLF89IiI7aWYoYXx8IWcpXys9IjxzcGFuIGNsYXNzPSd1aS1kYXRlcGlja2VyLW1vbnRoJz4iK29bdF0rIjwvc3Bhbj4iO2Vsc2V7Zm9yKGg9cyYmcy5nZXRGdWxsWWVhcigpPT09aSxsPW4mJm4uZ2V0RnVsbFllYXIoKT09PWksXys9IjxzZWxlY3QgY2xhc3M9J3VpLWRhdGVwaWNrZXItbW9udGgnIGRhdGEtaGFuZGxlcj0nc2VsZWN0TW9udGgnIGRhdGEtZXZlbnQ9J2NoYW5nZSc+Iix1PTA7MTI+dTt1KyspKCFofHx1Pj1zLmdldE1vbnRoKCkpJiYoIWx8fG4uZ2V0TW9udGgoKT49dSkmJihfKz0iPG9wdGlvbiB2YWx1ZT0nIit1KyInIisodT09PXQ/IiBzZWxlY3RlZD0nc2VsZWN0ZWQnIjoiIikrIj4iK3JbdV0rIjwvb3B0aW9uPiIpO18rPSI8L3NlbGVjdD4ifWlmKHl8fChiKz1fKyghYSYmZyYmdj8iIjoiJiN4YTA7IikpLCFlLnllYXJzaHRtbClpZihlLnllYXJzaHRtbD0iIixhfHwhdiliKz0iPHNwYW4gY2xhc3M9J3VpLWRhdGVwaWNrZXIteWVhcic+IitpKyI8L3NwYW4+IjtlbHNle2ZvcihkPXRoaXMuX2dldChlLCJ5ZWFyUmFuZ2UiKS5zcGxpdCgiOiIpLGM9KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpLHA9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5tYXRjaCgvY1srXC1dLiovKT9pK3BhcnNlSW50KGUuc3Vic3RyaW5nKDEpLDEwKTplLm1hdGNoKC9bK1wtXS4qLyk/YytwYXJzZUludChlLDEwKTpwYXJzZUludChlLDEwKTtyZXR1cm4gaXNOYU4odCk/Yzp0fSxmPXAoZFswXSksbT1NYXRoLm1heChmLHAoZFsxXXx8IiIpKSxmPXM/TWF0aC5tYXgoZixzLmdldEZ1bGxZZWFyKCkpOmYsbT1uP01hdGgubWluKG0sbi5nZXRGdWxsWWVhcigpKTptLGUueWVhcnNodG1sKz0iPHNlbGVjdCBjbGFzcz0ndWktZGF0ZXBpY2tlci15ZWFyJyBkYXRhLWhhbmRsZXI9J3NlbGVjdFllYXInIGRhdGEtZXZlbnQ9J2NoYW5nZSc+IjttPj1mO2YrKyllLnllYXJzaHRtbCs9IjxvcHRpb24gdmFsdWU9JyIrZisiJyIrKGY9PT1pPyIgc2VsZWN0ZWQ9J3NlbGVjdGVkJyI6IiIpKyI+IitmKyI8L29wdGlvbj4iO2UueWVhcnNodG1sKz0iPC9zZWxlY3Q+IixiKz1lLnllYXJzaHRtbCxlLnllYXJzaHRtbD1udWxsfXJldHVybiBiKz10aGlzLl9nZXQoZSwieWVhclN1ZmZpeCIpLHkmJihiKz0oIWEmJmcmJnY/IiI6IiYjeGEwOyIpK18pLGIrPSI8L2Rpdj4ifSxfYWRqdXN0SW5zdERhdGU6ZnVuY3Rpb24oZSx0LGkpe3ZhciBzPWUuZHJhd1llYXIrKCJZIj09PWk/dDowKSxuPWUuZHJhd01vbnRoKygiTSI9PT1pP3Q6MCksYT1NYXRoLm1pbihlLnNlbGVjdGVkRGF5LHRoaXMuX2dldERheXNJbk1vbnRoKHMsbikpKygiRCI9PT1pP3Q6MCksbz10aGlzLl9yZXN0cmljdE1pbk1heChlLHRoaXMuX2RheWxpZ2h0U2F2aW5nQWRqdXN0KG5ldyBEYXRlKHMsbixhKSkpO2Uuc2VsZWN0ZWREYXk9by5nZXREYXRlKCksZS5kcmF3TW9udGg9ZS5zZWxlY3RlZE1vbnRoPW8uZ2V0TW9udGgoKSxlLmRyYXdZZWFyPWUuc2VsZWN0ZWRZZWFyPW8uZ2V0RnVsbFllYXIoKSwoIk0iPT09aXx8IlkiPT09aSkmJnRoaXMuX25vdGlmeUNoYW5nZShlKX0sX3Jlc3RyaWN0TWluTWF4OmZ1bmN0aW9uKGUsdCl7dmFyIGk9dGhpcy5fZ2V0TWluTWF4RGF0ZShlLCJtaW4iKSxzPXRoaXMuX2dldE1pbk1heERhdGUoZSwibWF4Iiksbj1pJiZpPnQ/aTp0O3JldHVybiBzJiZuPnM/czpufSxfbm90aWZ5Q2hhbmdlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2dldChlLCJvbkNoYW5nZU1vbnRoWWVhciIpO3QmJnQuYXBwbHkoZS5pbnB1dD9lLmlucHV0WzBdOm51bGwsW2Uuc2VsZWN0ZWRZZWFyLGUuc2VsZWN0ZWRNb250aCsxLGVdKX0sX2dldE51bWJlck9mTW9udGhzOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2dldChlLCJudW1iZXJPZk1vbnRocyIpO3JldHVybiBudWxsPT10P1sxLDFdOiJudW1iZXIiPT10eXBlb2YgdD9bMSx0XTp0fSxfZ2V0TWluTWF4RGF0ZTpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl9kZXRlcm1pbmVEYXRlKGUsdGhpcy5fZ2V0KGUsdCsiRGF0ZSIpLG51bGwpfSxfZ2V0RGF5c0luTW9udGg6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gMzItdGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QobmV3IERhdGUoZSx0LDMyKSkuZ2V0RGF0ZSgpfSxfZ2V0Rmlyc3REYXlPZk1vbnRoOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBEYXRlKGUsdCwxKS5nZXREYXkoKX0sX2NhbkFkanVzdE1vbnRoOmZ1bmN0aW9uKGUsdCxpLHMpe3ZhciBuPXRoaXMuX2dldE51bWJlck9mTW9udGhzKGUpLGE9dGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QobmV3IERhdGUoaSxzKygwPnQ/dDpuWzBdKm5bMV0pLDEpKTtyZXR1cm4gMD50JiZhLnNldERhdGUodGhpcy5fZ2V0RGF5c0luTW9udGgoYS5nZXRGdWxsWWVhcigpLGEuZ2V0TW9udGgoKSkpLHRoaXMuX2lzSW5SYW5nZShlLGEpfSxfaXNJblJhbmdlOmZ1bmN0aW9uKGUsdCl7dmFyIGkscyxuPXRoaXMuX2dldE1pbk1heERhdGUoZSwibWluIiksYT10aGlzLl9nZXRNaW5NYXhEYXRlKGUsIm1heCIpLG89bnVsbCxyPW51bGwsaD10aGlzLl9nZXQoZSwieWVhclJhbmdlIik7cmV0dXJuIGgmJihpPWguc3BsaXQoIjoiKSxzPShuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKSxvPXBhcnNlSW50KGlbMF0sMTApLHI9cGFyc2VJbnQoaVsxXSwxMCksaVswXS5tYXRjaCgvWytcLV0uKi8pJiYobys9cyksaVsxXS5tYXRjaCgvWytcLV0uKi8pJiYocis9cykpLCghbnx8dC5nZXRUaW1lKCk+PW4uZ2V0VGltZSgpKSYmKCFhfHx0LmdldFRpbWUoKTw9YS5nZXRUaW1lKCkpJiYoIW98fHQuZ2V0RnVsbFllYXIoKT49bykmJighcnx8cj49dC5nZXRGdWxsWWVhcigpKX0sX2dldEZvcm1hdENvbmZpZzpmdW5jdGlvbihlKXt2YXIgdD10aGlzLl9nZXQoZSwic2hvcnRZZWFyQ3V0b2ZmIik7cmV0dXJuIHQ9InN0cmluZyIhPXR5cGVvZiB0P3Q6KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpJTEwMCtwYXJzZUludCh0LDEwKSx7c2hvcnRZZWFyQ3V0b2ZmOnQsZGF5TmFtZXNTaG9ydDp0aGlzLl9nZXQoZSwiZGF5TmFtZXNTaG9ydCIpLGRheU5hbWVzOnRoaXMuX2dldChlLCJkYXlOYW1lcyIpLG1vbnRoTmFtZXNTaG9ydDp0aGlzLl9nZXQoZSwibW9udGhOYW1lc1Nob3J0IiksbW9udGhOYW1lczp0aGlzLl9nZXQoZSwibW9udGhOYW1lcyIpfX0sX2Zvcm1hdERhdGU6ZnVuY3Rpb24oZSx0LGkscyl7dHx8KGUuY3VycmVudERheT1lLnNlbGVjdGVkRGF5LGUuY3VycmVudE1vbnRoPWUuc2VsZWN0ZWRNb250aCxlLmN1cnJlbnRZZWFyPWUuc2VsZWN0ZWRZZWFyKTt2YXIgbj10PyJvYmplY3QiPT10eXBlb2YgdD90OnRoaXMuX2RheWxpZ2h0U2F2aW5nQWRqdXN0KG5ldyBEYXRlKHMsaSx0KSk6dGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QobmV3IERhdGUoZS5jdXJyZW50WWVhcixlLmN1cnJlbnRNb250aCxlLmN1cnJlbnREYXkpKTtyZXR1cm4gdGhpcy5mb3JtYXREYXRlKHRoaXMuX2dldChlLCJkYXRlRm9ybWF0Iiksbix0aGlzLl9nZXRGb3JtYXRDb25maWcoZSkpfX0pLGUuZm4uZGF0ZXBpY2tlcj1mdW5jdGlvbih0KXtpZighdGhpcy5sZW5ndGgpcmV0dXJuIHRoaXM7ZS5kYXRlcGlja2VyLmluaXRpYWxpemVkfHwoZShkb2N1bWVudCkubW91c2Vkb3duKGUuZGF0ZXBpY2tlci5fY2hlY2tFeHRlcm5hbENsaWNrKSxlLmRhdGVwaWNrZXIuaW5pdGlhbGl6ZWQ9ITApLDA9PT1lKCIjIitlLmRhdGVwaWNrZXIuX21haW5EaXZJZCkubGVuZ3RoJiZlKCJib2R5IikuYXBwZW5kKGUuZGF0ZXBpY2tlci5kcERpdik7dmFyIGk9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO3JldHVybiJzdHJpbmciIT10eXBlb2YgdHx8ImlzRGlzYWJsZWQiIT09dCYmImdldERhdGUiIT09dCYmIndpZGdldCIhPT10PyJvcHRpb24iPT09dCYmMj09PWFyZ3VtZW50cy5sZW5ndGgmJiJzdHJpbmciPT10eXBlb2YgYXJndW1lbnRzWzFdP2UuZGF0ZXBpY2tlclsiXyIrdCsiRGF0ZXBpY2tlciJdLmFwcGx5KGUuZGF0ZXBpY2tlcixbdGhpc1swXV0uY29uY2F0KGkpKTp0aGlzLmVhY2goZnVuY3Rpb24oKXsic3RyaW5nIj09dHlwZW9mIHQ/ZS5kYXRlcGlja2VyWyJfIit0KyJEYXRlcGlja2VyIl0uYXBwbHkoZS5kYXRlcGlja2VyLFt0aGlzXS5jb25jYXQoaSkpOmUuZGF0ZXBpY2tlci5fYXR0YWNoRGF0ZXBpY2tlcih0aGlzLHQpfSk6ZS5kYXRlcGlja2VyWyJfIit0KyJEYXRlcGlja2VyIl0uYXBwbHkoZS5kYXRlcGlja2VyLFt0aGlzWzBdXS5jb25jYXQoaSkpfSxlLmRhdGVwaWNrZXI9bmV3IG4sZS5kYXRlcGlja2VyLmluaXRpYWxpemVkPSExLGUuZGF0ZXBpY2tlci51dWlkPShuZXcgRGF0ZSkuZ2V0VGltZSgpLGUuZGF0ZXBpY2tlci52ZXJzaW9uPSIxLjExLjQiLGUuZGF0ZXBpY2tlcixlLndpZGdldCgidWkuZHJhZ2dhYmxlIixlLnVpLm1vdXNlLHt2ZXJzaW9uOiIxLjExLjQiLHdpZGdldEV2ZW50UHJlZml4OiJkcmFnIixvcHRpb25zOnthZGRDbGFzc2VzOiEwLGFwcGVuZFRvOiJwYXJlbnQiLGF4aXM6ITEsY29ubmVjdFRvU29ydGFibGU6ITEsY29udGFpbm1lbnQ6ITEsY3Vyc29yOiJhdXRvIixjdXJzb3JBdDohMSxncmlkOiExLGhhbmRsZTohMSxoZWxwZXI6Im9yaWdpbmFsIixpZnJhbWVGaXg6ITEsb3BhY2l0eTohMSxyZWZyZXNoUG9zaXRpb25zOiExLHJldmVydDohMSxyZXZlcnREdXJhdGlvbjo1MDAsc2NvcGU6ImRlZmF1bHQiLHNjcm9sbDohMCxzY3JvbGxTZW5zaXRpdml0eToyMCxzY3JvbGxTcGVlZDoyMCxzbmFwOiExLHNuYXBNb2RlOiJib3RoIixzbmFwVG9sZXJhbmNlOjIwLHN0YWNrOiExLHpJbmRleDohMSxkcmFnOm51bGwsc3RhcnQ6bnVsbCxzdG9wOm51bGx9LF9jcmVhdGU6ZnVuY3Rpb24oKXsib3JpZ2luYWwiPT09dGhpcy5vcHRpb25zLmhlbHBlciYmdGhpcy5fc2V0UG9zaXRpb25SZWxhdGl2ZSgpLHRoaXMub3B0aW9ucy5hZGRDbGFzc2VzJiZ0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLWRyYWdnYWJsZSIpLHRoaXMub3B0aW9ucy5kaXNhYmxlZCYmdGhpcy5lbGVtZW50LmFkZENsYXNzKCJ1aS1kcmFnZ2FibGUtZGlzYWJsZWQiKSx0aGlzLl9zZXRIYW5kbGVDbGFzc05hbWUoKSx0aGlzLl9tb3VzZUluaXQoKX0sX3NldE9wdGlvbjpmdW5jdGlvbihlLHQpe3RoaXMuX3N1cGVyKGUsdCksImhhbmRsZSI9PT1lJiYodGhpcy5fcmVtb3ZlSGFuZGxlQ2xhc3NOYW1lKCksdGhpcy5fc2V0SGFuZGxlQ2xhc3NOYW1lKCkpfSxfZGVzdHJveTpmdW5jdGlvbigpe3JldHVybih0aGlzLmhlbHBlcnx8dGhpcy5lbGVtZW50KS5pcygiLnVpLWRyYWdnYWJsZS1kcmFnZ2luZyIpPyh0aGlzLmRlc3Ryb3lPbkNsZWFyPSEwLHZvaWQgMCk6KHRoaXMuZWxlbWVudC5yZW1vdmVDbGFzcygidWktZHJhZ2dhYmxlIHVpLWRyYWdnYWJsZS1kcmFnZ2luZyB1aS1kcmFnZ2FibGUtZGlzYWJsZWQiKSx0aGlzLl9yZW1vdmVIYW5kbGVDbGFzc05hbWUoKSx0aGlzLl9tb3VzZURlc3Ryb3koKSx2b2lkIDApfSxfbW91c2VDYXB0dXJlOmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMub3B0aW9ucztyZXR1cm4gdGhpcy5fYmx1ckFjdGl2ZUVsZW1lbnQodCksdGhpcy5oZWxwZXJ8fGkuZGlzYWJsZWR8fGUodC50YXJnZXQpLmNsb3Nlc3QoIi51aS1yZXNpemFibGUtaGFuZGxlIikubGVuZ3RoPjA/ITE6KHRoaXMuaGFuZGxlPXRoaXMuX2dldEhhbmRsZSh0KSx0aGlzLmhhbmRsZT8odGhpcy5fYmxvY2tGcmFtZXMoaS5pZnJhbWVGaXg9PT0hMD8iaWZyYW1lIjppLmlmcmFtZUZpeCksITApOiExKX0sX2Jsb2NrRnJhbWVzOmZ1bmN0aW9uKHQpe3RoaXMuaWZyYW1lQmxvY2tzPXRoaXMuZG9jdW1lbnQuZmluZCh0KS5tYXAoZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpO3JldHVybiBlKCI8ZGl2PiIpLmNzcygicG9zaXRpb24iLCJhYnNvbHV0ZSIpLmFwcGVuZFRvKHQucGFyZW50KCkpLm91dGVyV2lkdGgodC5vdXRlcldpZHRoKCkpLm91dGVySGVpZ2h0KHQub3V0ZXJIZWlnaHQoKSkub2Zmc2V0KHQub2Zmc2V0KCkpWzBdfSl9LF91bmJsb2NrRnJhbWVzOmZ1bmN0aW9uKCl7dGhpcy5pZnJhbWVCbG9ja3MmJih0aGlzLmlmcmFtZUJsb2Nrcy5yZW1vdmUoKSxkZWxldGUgdGhpcy5pZnJhbWVCbG9ja3MpfSxfYmx1ckFjdGl2ZUVsZW1lbnQ6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5kb2N1bWVudFswXTtpZih0aGlzLmhhbmRsZUVsZW1lbnQuaXModC50YXJnZXQpKXRyeXtpLmFjdGl2ZUVsZW1lbnQmJiJib2R5IiE9PWkuYWN0aXZlRWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpJiZlKGkuYWN0aXZlRWxlbWVudCkuYmx1cigpfWNhdGNoKHMpe319LF9tb3VzZVN0YXJ0OmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMub3B0aW9ucztyZXR1cm4gdGhpcy5oZWxwZXI9dGhpcy5fY3JlYXRlSGVscGVyKHQpLHRoaXMuaGVscGVyLmFkZENsYXNzKCJ1aS1kcmFnZ2FibGUtZHJhZ2dpbmciKSx0aGlzLl9jYWNoZUhlbHBlclByb3BvcnRpb25zKCksZS51aS5kZG1hbmFnZXImJihlLnVpLmRkbWFuYWdlci5jdXJyZW50PXRoaXMpLHRoaXMuX2NhY2hlTWFyZ2lucygpLHRoaXMuY3NzUG9zaXRpb249dGhpcy5oZWxwZXIuY3NzKCJwb3NpdGlvbiIpLHRoaXMuc2Nyb2xsUGFyZW50PXRoaXMuaGVscGVyLnNjcm9sbFBhcmVudCghMCksdGhpcy5vZmZzZXRQYXJlbnQ9dGhpcy5oZWxwZXIub2Zmc2V0UGFyZW50KCksdGhpcy5oYXNGaXhlZEFuY2VzdG9yPXRoaXMuaGVscGVyLnBhcmVudHMoKS5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4iZml4ZWQiPT09ZSh0aGlzKS5jc3MoInBvc2l0aW9uIil9KS5sZW5ndGg+MCx0aGlzLnBvc2l0aW9uQWJzPXRoaXMuZWxlbWVudC5vZmZzZXQoKSx0aGlzLl9yZWZyZXNoT2Zmc2V0cyh0KSx0aGlzLm9yaWdpbmFsUG9zaXRpb249dGhpcy5wb3NpdGlvbj10aGlzLl9nZW5lcmF0ZVBvc2l0aW9uKHQsITEpLHRoaXMub3JpZ2luYWxQYWdlWD10LnBhZ2VYLHRoaXMub3JpZ2luYWxQYWdlWT10LnBhZ2VZLGkuY3Vyc29yQXQmJnRoaXMuX2FkanVzdE9mZnNldEZyb21IZWxwZXIoaS5jdXJzb3JBdCksdGhpcy5fc2V0Q29udGFpbm1lbnQoKSx0aGlzLl90cmlnZ2VyKCJzdGFydCIsdCk9PT0hMT8odGhpcy5fY2xlYXIoKSwhMSk6KHRoaXMuX2NhY2hlSGVscGVyUHJvcG9ydGlvbnMoKSxlLnVpLmRkbWFuYWdlciYmIWkuZHJvcEJlaGF2aW91ciYmZS51aS5kZG1hbmFnZXIucHJlcGFyZU9mZnNldHModGhpcyx0KSx0aGlzLl9ub3JtYWxpemVSaWdodEJvdHRvbSgpLHRoaXMuX21vdXNlRHJhZyh0LCEwKSxlLnVpLmRkbWFuYWdlciYmZS51aS5kZG1hbmFnZXIuZHJhZ1N0YXJ0KHRoaXMsdCksITApfSxfcmVmcmVzaE9mZnNldHM6ZnVuY3Rpb24oZSl7dGhpcy5vZmZzZXQ9e3RvcDp0aGlzLnBvc2l0aW9uQWJzLnRvcC10aGlzLm1hcmdpbnMudG9wLGxlZnQ6dGhpcy5wb3NpdGlvbkFicy5sZWZ0LXRoaXMubWFyZ2lucy5sZWZ0LHNjcm9sbDohMSxwYXJlbnQ6dGhpcy5fZ2V0UGFyZW50T2Zmc2V0KCkscmVsYXRpdmU6dGhpcy5fZ2V0UmVsYXRpdmVPZmZzZXQoKX0sdGhpcy5vZmZzZXQuY2xpY2s9e2xlZnQ6ZS5wYWdlWC10aGlzLm9mZnNldC5sZWZ0LHRvcDplLnBhZ2VZLXRoaXMub2Zmc2V0LnRvcH19LF9tb3VzZURyYWc6ZnVuY3Rpb24odCxpKXtpZih0aGlzLmhhc0ZpeGVkQW5jZXN0b3ImJih0aGlzLm9mZnNldC5wYXJlbnQ9dGhpcy5fZ2V0UGFyZW50T2Zmc2V0KCkpLHRoaXMucG9zaXRpb249dGhpcy5fZ2VuZXJhdGVQb3NpdGlvbih0LCEwKSx0aGlzLnBvc2l0aW9uQWJzPXRoaXMuX2NvbnZlcnRQb3NpdGlvblRvKCJhYnNvbHV0ZSIpLCFpKXt2YXIgcz10aGlzLl91aUhhc2goKTtpZih0aGlzLl90cmlnZ2VyKCJkcmFnIix0LHMpPT09ITEpcmV0dXJuIHRoaXMuX21vdXNlVXAoe30pLCExO3RoaXMucG9zaXRpb249cy5wb3NpdGlvbn1yZXR1cm4gdGhpcy5oZWxwZXJbMF0uc3R5bGUubGVmdD10aGlzLnBvc2l0aW9uLmxlZnQrInB4Iix0aGlzLmhlbHBlclswXS5zdHlsZS50b3A9dGhpcy5wb3NpdGlvbi50b3ArInB4IixlLnVpLmRkbWFuYWdlciYmZS51aS5kZG1hbmFnZXIuZHJhZyh0aGlzLHQpLCExfSxfbW91c2VTdG9wOmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMscz0hMTtyZXR1cm4gZS51aS5kZG1hbmFnZXImJiF0aGlzLm9wdGlvbnMuZHJvcEJlaGF2aW91ciYmKHM9ZS51aS5kZG1hbmFnZXIuZHJvcCh0aGlzLHQpKSx0aGlzLmRyb3BwZWQmJihzPXRoaXMuZHJvcHBlZCx0aGlzLmRyb3BwZWQ9ITEpLCJpbnZhbGlkIj09PXRoaXMub3B0aW9ucy5yZXZlcnQmJiFzfHwidmFsaWQiPT09dGhpcy5vcHRpb25zLnJldmVydCYmc3x8dGhpcy5vcHRpb25zLnJldmVydD09PSEwfHxlLmlzRnVuY3Rpb24odGhpcy5vcHRpb25zLnJldmVydCkmJnRoaXMub3B0aW9ucy5yZXZlcnQuY2FsbCh0aGlzLmVsZW1lbnQscyk/ZSh0aGlzLmhlbHBlcikuYW5pbWF0ZSh0aGlzLm9yaWdpbmFsUG9zaXRpb24scGFyc2VJbnQodGhpcy5vcHRpb25zLnJldmVydER1cmF0aW9uLDEwKSxmdW5jdGlvbigpe2kuX3RyaWdnZXIoInN0b3AiLHQpIT09ITEmJmkuX2NsZWFyKCl9KTp0aGlzLl90cmlnZ2VyKCJzdG9wIix0KSE9PSExJiZ0aGlzLl9jbGVhcigpLCExfSxfbW91c2VVcDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fdW5ibG9ja0ZyYW1lcygpLGUudWkuZGRtYW5hZ2VyJiZlLnVpLmRkbWFuYWdlci5kcmFnU3RvcCh0aGlzLHQpLHRoaXMuaGFuZGxlRWxlbWVudC5pcyh0LnRhcmdldCkmJnRoaXMuZWxlbWVudC5mb2N1cygpLGUudWkubW91c2UucHJvdG90eXBlLl9tb3VzZVVwLmNhbGwodGhpcyx0KX0sY2FuY2VsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGVscGVyLmlzKCIudWktZHJhZ2dhYmxlLWRyYWdnaW5nIik/dGhpcy5fbW91c2VVcCh7fSk6dGhpcy5fY2xlYXIoKSx0aGlzfSxfZ2V0SGFuZGxlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm9wdGlvbnMuaGFuZGxlPyEhZSh0LnRhcmdldCkuY2xvc2VzdCh0aGlzLmVsZW1lbnQuZmluZCh0aGlzLm9wdGlvbnMuaGFuZGxlKSkubGVuZ3RoOiEwfSxfc2V0SGFuZGxlQ2xhc3NOYW1lOmZ1bmN0aW9uKCl7dGhpcy5oYW5kbGVFbGVtZW50PXRoaXMub3B0aW9ucy5oYW5kbGU/dGhpcy5lbGVtZW50LmZpbmQodGhpcy5vcHRpb25zLmhhbmRsZSk6dGhpcy5lbGVtZW50LHRoaXMuaGFuZGxlRWxlbWVudC5hZGRDbGFzcygidWktZHJhZ2dhYmxlLWhhbmRsZSIpfSxfcmVtb3ZlSGFuZGxlQ2xhc3NOYW1lOmZ1bmN0aW9uKCl7dGhpcy5oYW5kbGVFbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1kcmFnZ2FibGUtaGFuZGxlIil9LF9jcmVhdGVIZWxwZXI6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5vcHRpb25zLHM9ZS5pc0Z1bmN0aW9uKGkuaGVscGVyKSxuPXM/ZShpLmhlbHBlci5hcHBseSh0aGlzLmVsZW1lbnRbMF0sW3RdKSk6ImNsb25lIj09PWkuaGVscGVyP3RoaXMuZWxlbWVudC5jbG9uZSgpLnJlbW92ZUF0dHIoImlkIik6dGhpcy5lbGVtZW50O3JldHVybiBuLnBhcmVudHMoImJvZHkiKS5sZW5ndGh8fG4uYXBwZW5kVG8oInBhcmVudCI9PT1pLmFwcGVuZFRvP3RoaXMuZWxlbWVudFswXS5wYXJlbnROb2RlOmkuYXBwZW5kVG8pLHMmJm5bMF09PT10aGlzLmVsZW1lbnRbMF0mJnRoaXMuX3NldFBvc2l0aW9uUmVsYXRpdmUoKSxuWzBdPT09dGhpcy5lbGVtZW50WzBdfHwvKGZpeGVkfGFic29sdXRlKS8udGVzdChuLmNzcygicG9zaXRpb24iKSl8fG4uY3NzKCJwb3NpdGlvbiIsImFic29sdXRlIiksbn0sX3NldFBvc2l0aW9uUmVsYXRpdmU6ZnVuY3Rpb24oKXsvXig/OnJ8YXxmKS8udGVzdCh0aGlzLmVsZW1lbnQuY3NzKCJwb3NpdGlvbiIpKXx8KHRoaXMuZWxlbWVudFswXS5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiKX0sX2FkanVzdE9mZnNldEZyb21IZWxwZXI6ZnVuY3Rpb24odCl7InN0cmluZyI9PXR5cGVvZiB0JiYodD10LnNwbGl0KCIgIikpLGUuaXNBcnJheSh0KSYmKHQ9e2xlZnQ6K3RbMF0sdG9wOit0WzFdfHwwfSksImxlZnQiaW4gdCYmKHRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ9dC5sZWZ0K3RoaXMubWFyZ2lucy5sZWZ0KSwicmlnaHQiaW4gdCYmKHRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ9dGhpcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aC10LnJpZ2h0K3RoaXMubWFyZ2lucy5sZWZ0KSwidG9wImluIHQmJih0aGlzLm9mZnNldC5jbGljay50b3A9dC50b3ArdGhpcy5tYXJnaW5zLnRvcCksImJvdHRvbSJpbiB0JiYodGhpcy5vZmZzZXQuY2xpY2sudG9wPXRoaXMuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LXQuYm90dG9tK3RoaXMubWFyZ2lucy50b3ApfSxfaXNSb290Tm9kZTpmdW5jdGlvbihlKXtyZXR1cm4vKGh0bWx8Ym9keSkvaS50ZXN0KGUudGFnTmFtZSl8fGU9PT10aGlzLmRvY3VtZW50WzBdfSxfZ2V0UGFyZW50T2Zmc2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vZmZzZXRQYXJlbnQub2Zmc2V0KCksaT10aGlzLmRvY3VtZW50WzBdO3JldHVybiJhYnNvbHV0ZSI9PT10aGlzLmNzc1Bvc2l0aW9uJiZ0aGlzLnNjcm9sbFBhcmVudFswXSE9PWkmJmUuY29udGFpbnModGhpcy5zY3JvbGxQYXJlbnRbMF0sdGhpcy5vZmZzZXRQYXJlbnRbMF0pJiYodC5sZWZ0Kz10aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxMZWZ0KCksdC50b3ArPXRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbFRvcCgpKSx0aGlzLl9pc1Jvb3ROb2RlKHRoaXMub2Zmc2V0UGFyZW50WzBdKSYmKHQ9e3RvcDowLGxlZnQ6MH0pLHt0b3A6dC50b3ArKHBhcnNlSW50KHRoaXMub2Zmc2V0UGFyZW50LmNzcygiYm9yZGVyVG9wV2lkdGgiKSwxMCl8fDApLGxlZnQ6dC5sZWZ0KyhwYXJzZUludCh0aGlzLm9mZnNldFBhcmVudC5jc3MoImJvcmRlckxlZnRXaWR0aCIpLDEwKXx8MCl9fSxfZ2V0UmVsYXRpdmVPZmZzZXQ6ZnVuY3Rpb24oKXtpZigicmVsYXRpdmUiIT09dGhpcy5jc3NQb3NpdGlvbilyZXR1cm57dG9wOjAsbGVmdDowfTt2YXIgZT10aGlzLmVsZW1lbnQucG9zaXRpb24oKSx0PXRoaXMuX2lzUm9vdE5vZGUodGhpcy5zY3JvbGxQYXJlbnRbMF0pO3JldHVybnt0b3A6ZS50b3AtKHBhcnNlSW50KHRoaXMuaGVscGVyLmNzcygidG9wIiksMTApfHwwKSsodD8wOnRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbFRvcCgpKSxsZWZ0OmUubGVmdC0ocGFyc2VJbnQodGhpcy5oZWxwZXIuY3NzKCJsZWZ0IiksMTApfHwwKSsodD8wOnRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbExlZnQoKSl9fSxfY2FjaGVNYXJnaW5zOmZ1bmN0aW9uKCl7dGhpcy5tYXJnaW5zPXtsZWZ0OnBhcnNlSW50KHRoaXMuZWxlbWVudC5jc3MoIm1hcmdpbkxlZnQiKSwxMCl8fDAsdG9wOnBhcnNlSW50KHRoaXMuZWxlbWVudC5jc3MoIm1hcmdpblRvcCIpLDEwKXx8MCxyaWdodDpwYXJzZUludCh0aGlzLmVsZW1lbnQuY3NzKCJtYXJnaW5SaWdodCIpLDEwKXx8MCxib3R0b206cGFyc2VJbnQodGhpcy5lbGVtZW50LmNzcygibWFyZ2luQm90dG9tIiksMTApfHwwfX0sX2NhY2hlSGVscGVyUHJvcG9ydGlvbnM6ZnVuY3Rpb24oKXt0aGlzLmhlbHBlclByb3BvcnRpb25zPXt3aWR0aDp0aGlzLmhlbHBlci5vdXRlcldpZHRoKCksaGVpZ2h0OnRoaXMuaGVscGVyLm91dGVySGVpZ2h0KCl9fSxfc2V0Q29udGFpbm1lbnQ6ZnVuY3Rpb24oKXt2YXIgdCxpLHMsbj10aGlzLm9wdGlvbnMsYT10aGlzLmRvY3VtZW50WzBdO3JldHVybiB0aGlzLnJlbGF0aXZlQ29udGFpbmVyPW51bGwsbi5jb250YWlubWVudD8id2luZG93Ij09PW4uY29udGFpbm1lbnQ/KHRoaXMuY29udGFpbm1lbnQ9W2Uod2luZG93KS5zY3JvbGxMZWZ0KCktdGhpcy5vZmZzZXQucmVsYXRpdmUubGVmdC10aGlzLm9mZnNldC5wYXJlbnQubGVmdCxlKHdpbmRvdykuc2Nyb2xsVG9wKCktdGhpcy5vZmZzZXQucmVsYXRpdmUudG9wLXRoaXMub2Zmc2V0LnBhcmVudC50b3AsZSh3aW5kb3cpLnNjcm9sbExlZnQoKStlKHdpbmRvdykud2lkdGgoKS10aGlzLmhlbHBlclByb3BvcnRpb25zLndpZHRoLXRoaXMubWFyZ2lucy5sZWZ0LGUod2luZG93KS5zY3JvbGxUb3AoKSsoZSh3aW5kb3cpLmhlaWdodCgpfHxhLmJvZHkucGFyZW50Tm9kZS5zY3JvbGxIZWlnaHQpLXRoaXMuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LXRoaXMubWFyZ2lucy50b3BdLHZvaWQgMCk6ImRvY3VtZW50Ij09PW4uY29udGFpbm1lbnQ/KHRoaXMuY29udGFpbm1lbnQ9WzAsMCxlKGEpLndpZHRoKCktdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aC10aGlzLm1hcmdpbnMubGVmdCwoZShhKS5oZWlnaHQoKXx8YS5ib2R5LnBhcmVudE5vZGUuc2Nyb2xsSGVpZ2h0KS10aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodC10aGlzLm1hcmdpbnMudG9wXSx2b2lkIDApOm4uY29udGFpbm1lbnQuY29uc3RydWN0b3I9PT1BcnJheT8odGhpcy5jb250YWlubWVudD1uLmNvbnRhaW5tZW50LHZvaWQgMCk6KCJwYXJlbnQiPT09bi5jb250YWlubWVudCYmKG4uY29udGFpbm1lbnQ9dGhpcy5oZWxwZXJbMF0ucGFyZW50Tm9kZSksaT1lKG4uY29udGFpbm1lbnQpLHM9aVswXSxzJiYodD0vKHNjcm9sbHxhdXRvKS8udGVzdChpLmNzcygib3ZlcmZsb3ciKSksdGhpcy5jb250YWlubWVudD1bKHBhcnNlSW50KGkuY3NzKCJib3JkZXJMZWZ0V2lkdGgiKSwxMCl8fDApKyhwYXJzZUludChpLmNzcygicGFkZGluZ0xlZnQiKSwxMCl8fDApLChwYXJzZUludChpLmNzcygiYm9yZGVyVG9wV2lkdGgiKSwxMCl8fDApKyhwYXJzZUludChpLmNzcygicGFkZGluZ1RvcCIpLDEwKXx8MCksKHQ/TWF0aC5tYXgocy5zY3JvbGxXaWR0aCxzLm9mZnNldFdpZHRoKTpzLm9mZnNldFdpZHRoKS0ocGFyc2VJbnQoaS5jc3MoImJvcmRlclJpZ2h0V2lkdGgiKSwxMCl8fDApLShwYXJzZUludChpLmNzcygicGFkZGluZ1JpZ2h0IiksMTApfHwwKS10aGlzLmhlbHBlclByb3BvcnRpb25zLndpZHRoLXRoaXMubWFyZ2lucy5sZWZ0LXRoaXMubWFyZ2lucy5yaWdodCwodD9NYXRoLm1heChzLnNjcm9sbEhlaWdodCxzLm9mZnNldEhlaWdodCk6cy5vZmZzZXRIZWlnaHQpLShwYXJzZUludChpLmNzcygiYm9yZGVyQm90dG9tV2lkdGgiKSwxMCl8fDApLShwYXJzZUludChpLmNzcygicGFkZGluZ0JvdHRvbSIpLDEwKXx8MCktdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQtdGhpcy5tYXJnaW5zLnRvcC10aGlzLm1hcmdpbnMuYm90dG9tXSx0aGlzLnJlbGF0aXZlQ29udGFpbmVyPWkpLHZvaWQgMCk6KHRoaXMuY29udGFpbm1lbnQ9bnVsbCx2b2lkIDApCn0sX2NvbnZlcnRQb3NpdGlvblRvOmZ1bmN0aW9uKGUsdCl7dHx8KHQ9dGhpcy5wb3NpdGlvbik7dmFyIGk9ImFic29sdXRlIj09PWU/MTotMSxzPXRoaXMuX2lzUm9vdE5vZGUodGhpcy5zY3JvbGxQYXJlbnRbMF0pO3JldHVybnt0b3A6dC50b3ArdGhpcy5vZmZzZXQucmVsYXRpdmUudG9wKmkrdGhpcy5vZmZzZXQucGFyZW50LnRvcCppLSgiZml4ZWQiPT09dGhpcy5jc3NQb3NpdGlvbj8tdGhpcy5vZmZzZXQuc2Nyb2xsLnRvcDpzPzA6dGhpcy5vZmZzZXQuc2Nyb2xsLnRvcCkqaSxsZWZ0OnQubGVmdCt0aGlzLm9mZnNldC5yZWxhdGl2ZS5sZWZ0KmkrdGhpcy5vZmZzZXQucGFyZW50LmxlZnQqaS0oImZpeGVkIj09PXRoaXMuY3NzUG9zaXRpb24/LXRoaXMub2Zmc2V0LnNjcm9sbC5sZWZ0OnM/MDp0aGlzLm9mZnNldC5zY3JvbGwubGVmdCkqaX19LF9nZW5lcmF0ZVBvc2l0aW9uOmZ1bmN0aW9uKGUsdCl7dmFyIGkscyxuLGEsbz10aGlzLm9wdGlvbnMscj10aGlzLl9pc1Jvb3ROb2RlKHRoaXMuc2Nyb2xsUGFyZW50WzBdKSxoPWUucGFnZVgsbD1lLnBhZ2VZO3JldHVybiByJiZ0aGlzLm9mZnNldC5zY3JvbGx8fCh0aGlzLm9mZnNldC5zY3JvbGw9e3RvcDp0aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxUb3AoKSxsZWZ0OnRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbExlZnQoKX0pLHQmJih0aGlzLmNvbnRhaW5tZW50JiYodGhpcy5yZWxhdGl2ZUNvbnRhaW5lcj8ocz10aGlzLnJlbGF0aXZlQ29udGFpbmVyLm9mZnNldCgpLGk9W3RoaXMuY29udGFpbm1lbnRbMF0rcy5sZWZ0LHRoaXMuY29udGFpbm1lbnRbMV0rcy50b3AsdGhpcy5jb250YWlubWVudFsyXStzLmxlZnQsdGhpcy5jb250YWlubWVudFszXStzLnRvcF0pOmk9dGhpcy5jb250YWlubWVudCxlLnBhZ2VYLXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ8aVswXSYmKGg9aVswXSt0aGlzLm9mZnNldC5jbGljay5sZWZ0KSxlLnBhZ2VZLXRoaXMub2Zmc2V0LmNsaWNrLnRvcDxpWzFdJiYobD1pWzFdK3RoaXMub2Zmc2V0LmNsaWNrLnRvcCksZS5wYWdlWC10aGlzLm9mZnNldC5jbGljay5sZWZ0PmlbMl0mJihoPWlbMl0rdGhpcy5vZmZzZXQuY2xpY2subGVmdCksZS5wYWdlWS10aGlzLm9mZnNldC5jbGljay50b3A+aVszXSYmKGw9aVszXSt0aGlzLm9mZnNldC5jbGljay50b3ApKSxvLmdyaWQmJihuPW8uZ3JpZFsxXT90aGlzLm9yaWdpbmFsUGFnZVkrTWF0aC5yb3VuZCgobC10aGlzLm9yaWdpbmFsUGFnZVkpL28uZ3JpZFsxXSkqby5ncmlkWzFdOnRoaXMub3JpZ2luYWxQYWdlWSxsPWk/bi10aGlzLm9mZnNldC5jbGljay50b3A+PWlbMV18fG4tdGhpcy5vZmZzZXQuY2xpY2sudG9wPmlbM10/bjpuLXRoaXMub2Zmc2V0LmNsaWNrLnRvcD49aVsxXT9uLW8uZ3JpZFsxXTpuK28uZ3JpZFsxXTpuLGE9by5ncmlkWzBdP3RoaXMub3JpZ2luYWxQYWdlWCtNYXRoLnJvdW5kKChoLXRoaXMub3JpZ2luYWxQYWdlWCkvby5ncmlkWzBdKSpvLmdyaWRbMF06dGhpcy5vcmlnaW5hbFBhZ2VYLGg9aT9hLXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ+PWlbMF18fGEtdGhpcy5vZmZzZXQuY2xpY2subGVmdD5pWzJdP2E6YS10aGlzLm9mZnNldC5jbGljay5sZWZ0Pj1pWzBdP2Etby5ncmlkWzBdOmErby5ncmlkWzBdOmEpLCJ5Ij09PW8uYXhpcyYmKGg9dGhpcy5vcmlnaW5hbFBhZ2VYKSwieCI9PT1vLmF4aXMmJihsPXRoaXMub3JpZ2luYWxQYWdlWSkpLHt0b3A6bC10aGlzLm9mZnNldC5jbGljay50b3AtdGhpcy5vZmZzZXQucmVsYXRpdmUudG9wLXRoaXMub2Zmc2V0LnBhcmVudC50b3ArKCJmaXhlZCI9PT10aGlzLmNzc1Bvc2l0aW9uPy10aGlzLm9mZnNldC5zY3JvbGwudG9wOnI/MDp0aGlzLm9mZnNldC5zY3JvbGwudG9wKSxsZWZ0OmgtdGhpcy5vZmZzZXQuY2xpY2subGVmdC10aGlzLm9mZnNldC5yZWxhdGl2ZS5sZWZ0LXRoaXMub2Zmc2V0LnBhcmVudC5sZWZ0KygiZml4ZWQiPT09dGhpcy5jc3NQb3NpdGlvbj8tdGhpcy5vZmZzZXQuc2Nyb2xsLmxlZnQ6cj8wOnRoaXMub2Zmc2V0LnNjcm9sbC5sZWZ0KX19LF9jbGVhcjpmdW5jdGlvbigpe3RoaXMuaGVscGVyLnJlbW92ZUNsYXNzKCJ1aS1kcmFnZ2FibGUtZHJhZ2dpbmciKSx0aGlzLmhlbHBlclswXT09PXRoaXMuZWxlbWVudFswXXx8dGhpcy5jYW5jZWxIZWxwZXJSZW1vdmFsfHx0aGlzLmhlbHBlci5yZW1vdmUoKSx0aGlzLmhlbHBlcj1udWxsLHRoaXMuY2FuY2VsSGVscGVyUmVtb3ZhbD0hMSx0aGlzLmRlc3Ryb3lPbkNsZWFyJiZ0aGlzLmRlc3Ryb3koKX0sX25vcm1hbGl6ZVJpZ2h0Qm90dG9tOmZ1bmN0aW9uKCl7InkiIT09dGhpcy5vcHRpb25zLmF4aXMmJiJhdXRvIiE9PXRoaXMuaGVscGVyLmNzcygicmlnaHQiKSYmKHRoaXMuaGVscGVyLndpZHRoKHRoaXMuaGVscGVyLndpZHRoKCkpLHRoaXMuaGVscGVyLmNzcygicmlnaHQiLCJhdXRvIikpLCJ4IiE9PXRoaXMub3B0aW9ucy5heGlzJiYiYXV0byIhPT10aGlzLmhlbHBlci5jc3MoImJvdHRvbSIpJiYodGhpcy5oZWxwZXIuaGVpZ2h0KHRoaXMuaGVscGVyLmhlaWdodCgpKSx0aGlzLmhlbHBlci5jc3MoImJvdHRvbSIsImF1dG8iKSl9LF90cmlnZ2VyOmZ1bmN0aW9uKHQsaSxzKXtyZXR1cm4gcz1zfHx0aGlzLl91aUhhc2goKSxlLnVpLnBsdWdpbi5jYWxsKHRoaXMsdCxbaSxzLHRoaXNdLCEwKSwvXihkcmFnfHN0YXJ0fHN0b3ApLy50ZXN0KHQpJiYodGhpcy5wb3NpdGlvbkFicz10aGlzLl9jb252ZXJ0UG9zaXRpb25UbygiYWJzb2x1dGUiKSxzLm9mZnNldD10aGlzLnBvc2l0aW9uQWJzKSxlLldpZGdldC5wcm90b3R5cGUuX3RyaWdnZXIuY2FsbCh0aGlzLHQsaSxzKX0scGx1Z2luczp7fSxfdWlIYXNoOmZ1bmN0aW9uKCl7cmV0dXJue2hlbHBlcjp0aGlzLmhlbHBlcixwb3NpdGlvbjp0aGlzLnBvc2l0aW9uLG9yaWdpbmFsUG9zaXRpb246dGhpcy5vcmlnaW5hbFBvc2l0aW9uLG9mZnNldDp0aGlzLnBvc2l0aW9uQWJzfX19KSxlLnVpLnBsdWdpbi5hZGQoImRyYWdnYWJsZSIsImNvbm5lY3RUb1NvcnRhYmxlIix7c3RhcnQ6ZnVuY3Rpb24odCxpLHMpe3ZhciBuPWUuZXh0ZW5kKHt9LGkse2l0ZW06cy5lbGVtZW50fSk7cy5zb3J0YWJsZXM9W10sZShzLm9wdGlvbnMuY29ubmVjdFRvU29ydGFibGUpLmVhY2goZnVuY3Rpb24oKXt2YXIgaT1lKHRoaXMpLnNvcnRhYmxlKCJpbnN0YW5jZSIpO2kmJiFpLm9wdGlvbnMuZGlzYWJsZWQmJihzLnNvcnRhYmxlcy5wdXNoKGkpLGkucmVmcmVzaFBvc2l0aW9ucygpLGkuX3RyaWdnZXIoImFjdGl2YXRlIix0LG4pKX0pfSxzdG9wOmZ1bmN0aW9uKHQsaSxzKXt2YXIgbj1lLmV4dGVuZCh7fSxpLHtpdGVtOnMuZWxlbWVudH0pO3MuY2FuY2VsSGVscGVyUmVtb3ZhbD0hMSxlLmVhY2gocy5zb3J0YWJsZXMsZnVuY3Rpb24oKXt2YXIgZT10aGlzO2UuaXNPdmVyPyhlLmlzT3Zlcj0wLHMuY2FuY2VsSGVscGVyUmVtb3ZhbD0hMCxlLmNhbmNlbEhlbHBlclJlbW92YWw9ITEsZS5fc3RvcmVkQ1NTPXtwb3NpdGlvbjplLnBsYWNlaG9sZGVyLmNzcygicG9zaXRpb24iKSx0b3A6ZS5wbGFjZWhvbGRlci5jc3MoInRvcCIpLGxlZnQ6ZS5wbGFjZWhvbGRlci5jc3MoImxlZnQiKX0sZS5fbW91c2VTdG9wKHQpLGUub3B0aW9ucy5oZWxwZXI9ZS5vcHRpb25zLl9oZWxwZXIpOihlLmNhbmNlbEhlbHBlclJlbW92YWw9ITAsZS5fdHJpZ2dlcigiZGVhY3RpdmF0ZSIsdCxuKSl9KX0sZHJhZzpmdW5jdGlvbih0LGkscyl7ZS5lYWNoKHMuc29ydGFibGVzLGZ1bmN0aW9uKCl7dmFyIG49ITEsYT10aGlzO2EucG9zaXRpb25BYnM9cy5wb3NpdGlvbkFicyxhLmhlbHBlclByb3BvcnRpb25zPXMuaGVscGVyUHJvcG9ydGlvbnMsYS5vZmZzZXQuY2xpY2s9cy5vZmZzZXQuY2xpY2ssYS5faW50ZXJzZWN0c1dpdGgoYS5jb250YWluZXJDYWNoZSkmJihuPSEwLGUuZWFjaChzLnNvcnRhYmxlcyxmdW5jdGlvbigpe3JldHVybiB0aGlzLnBvc2l0aW9uQWJzPXMucG9zaXRpb25BYnMsdGhpcy5oZWxwZXJQcm9wb3J0aW9ucz1zLmhlbHBlclByb3BvcnRpb25zLHRoaXMub2Zmc2V0LmNsaWNrPXMub2Zmc2V0LmNsaWNrLHRoaXMhPT1hJiZ0aGlzLl9pbnRlcnNlY3RzV2l0aCh0aGlzLmNvbnRhaW5lckNhY2hlKSYmZS5jb250YWlucyhhLmVsZW1lbnRbMF0sdGhpcy5lbGVtZW50WzBdKSYmKG49ITEpLG59KSksbj8oYS5pc092ZXJ8fChhLmlzT3Zlcj0xLHMuX3BhcmVudD1pLmhlbHBlci5wYXJlbnQoKSxhLmN1cnJlbnRJdGVtPWkuaGVscGVyLmFwcGVuZFRvKGEuZWxlbWVudCkuZGF0YSgidWktc29ydGFibGUtaXRlbSIsITApLGEub3B0aW9ucy5faGVscGVyPWEub3B0aW9ucy5oZWxwZXIsYS5vcHRpb25zLmhlbHBlcj1mdW5jdGlvbigpe3JldHVybiBpLmhlbHBlclswXX0sdC50YXJnZXQ9YS5jdXJyZW50SXRlbVswXSxhLl9tb3VzZUNhcHR1cmUodCwhMCksYS5fbW91c2VTdGFydCh0LCEwLCEwKSxhLm9mZnNldC5jbGljay50b3A9cy5vZmZzZXQuY2xpY2sudG9wLGEub2Zmc2V0LmNsaWNrLmxlZnQ9cy5vZmZzZXQuY2xpY2subGVmdCxhLm9mZnNldC5wYXJlbnQubGVmdC09cy5vZmZzZXQucGFyZW50LmxlZnQtYS5vZmZzZXQucGFyZW50LmxlZnQsYS5vZmZzZXQucGFyZW50LnRvcC09cy5vZmZzZXQucGFyZW50LnRvcC1hLm9mZnNldC5wYXJlbnQudG9wLHMuX3RyaWdnZXIoInRvU29ydGFibGUiLHQpLHMuZHJvcHBlZD1hLmVsZW1lbnQsZS5lYWNoKHMuc29ydGFibGVzLGZ1bmN0aW9uKCl7dGhpcy5yZWZyZXNoUG9zaXRpb25zKCl9KSxzLmN1cnJlbnRJdGVtPXMuZWxlbWVudCxhLmZyb21PdXRzaWRlPXMpLGEuY3VycmVudEl0ZW0mJihhLl9tb3VzZURyYWcodCksaS5wb3NpdGlvbj1hLnBvc2l0aW9uKSk6YS5pc092ZXImJihhLmlzT3Zlcj0wLGEuY2FuY2VsSGVscGVyUmVtb3ZhbD0hMCxhLm9wdGlvbnMuX3JldmVydD1hLm9wdGlvbnMucmV2ZXJ0LGEub3B0aW9ucy5yZXZlcnQ9ITEsYS5fdHJpZ2dlcigib3V0Iix0LGEuX3VpSGFzaChhKSksYS5fbW91c2VTdG9wKHQsITApLGEub3B0aW9ucy5yZXZlcnQ9YS5vcHRpb25zLl9yZXZlcnQsYS5vcHRpb25zLmhlbHBlcj1hLm9wdGlvbnMuX2hlbHBlcixhLnBsYWNlaG9sZGVyJiZhLnBsYWNlaG9sZGVyLnJlbW92ZSgpLGkuaGVscGVyLmFwcGVuZFRvKHMuX3BhcmVudCkscy5fcmVmcmVzaE9mZnNldHModCksaS5wb3NpdGlvbj1zLl9nZW5lcmF0ZVBvc2l0aW9uKHQsITApLHMuX3RyaWdnZXIoImZyb21Tb3J0YWJsZSIsdCkscy5kcm9wcGVkPSExLGUuZWFjaChzLnNvcnRhYmxlcyxmdW5jdGlvbigpe3RoaXMucmVmcmVzaFBvc2l0aW9ucygpfSkpfSl9fSksZS51aS5wbHVnaW4uYWRkKCJkcmFnZ2FibGUiLCJjdXJzb3IiLHtzdGFydDpmdW5jdGlvbih0LGkscyl7dmFyIG49ZSgiYm9keSIpLGE9cy5vcHRpb25zO24uY3NzKCJjdXJzb3IiKSYmKGEuX2N1cnNvcj1uLmNzcygiY3Vyc29yIikpLG4uY3NzKCJjdXJzb3IiLGEuY3Vyc29yKX0sc3RvcDpmdW5jdGlvbih0LGkscyl7dmFyIG49cy5vcHRpb25zO24uX2N1cnNvciYmZSgiYm9keSIpLmNzcygiY3Vyc29yIixuLl9jdXJzb3IpfX0pLGUudWkucGx1Z2luLmFkZCgiZHJhZ2dhYmxlIiwib3BhY2l0eSIse3N0YXJ0OmZ1bmN0aW9uKHQsaSxzKXt2YXIgbj1lKGkuaGVscGVyKSxhPXMub3B0aW9ucztuLmNzcygib3BhY2l0eSIpJiYoYS5fb3BhY2l0eT1uLmNzcygib3BhY2l0eSIpKSxuLmNzcygib3BhY2l0eSIsYS5vcGFjaXR5KX0sc3RvcDpmdW5jdGlvbih0LGkscyl7dmFyIG49cy5vcHRpb25zO24uX29wYWNpdHkmJmUoaS5oZWxwZXIpLmNzcygib3BhY2l0eSIsbi5fb3BhY2l0eSl9fSksZS51aS5wbHVnaW4uYWRkKCJkcmFnZ2FibGUiLCJzY3JvbGwiLHtzdGFydDpmdW5jdGlvbihlLHQsaSl7aS5zY3JvbGxQYXJlbnROb3RIaWRkZW58fChpLnNjcm9sbFBhcmVudE5vdEhpZGRlbj1pLmhlbHBlci5zY3JvbGxQYXJlbnQoITEpKSxpLnNjcm9sbFBhcmVudE5vdEhpZGRlblswXSE9PWkuZG9jdW1lbnRbMF0mJiJIVE1MIiE9PWkuc2Nyb2xsUGFyZW50Tm90SGlkZGVuWzBdLnRhZ05hbWUmJihpLm92ZXJmbG93T2Zmc2V0PWkuc2Nyb2xsUGFyZW50Tm90SGlkZGVuLm9mZnNldCgpKX0sZHJhZzpmdW5jdGlvbih0LGkscyl7dmFyIG49cy5vcHRpb25zLGE9ITEsbz1zLnNjcm9sbFBhcmVudE5vdEhpZGRlblswXSxyPXMuZG9jdW1lbnRbMF07byE9PXImJiJIVE1MIiE9PW8udGFnTmFtZT8obi5heGlzJiYieCI9PT1uLmF4aXN8fChzLm92ZXJmbG93T2Zmc2V0LnRvcCtvLm9mZnNldEhlaWdodC10LnBhZ2VZPG4uc2Nyb2xsU2Vuc2l0aXZpdHk/by5zY3JvbGxUb3A9YT1vLnNjcm9sbFRvcCtuLnNjcm9sbFNwZWVkOnQucGFnZVktcy5vdmVyZmxvd09mZnNldC50b3A8bi5zY3JvbGxTZW5zaXRpdml0eSYmKG8uc2Nyb2xsVG9wPWE9by5zY3JvbGxUb3Atbi5zY3JvbGxTcGVlZCkpLG4uYXhpcyYmInkiPT09bi5heGlzfHwocy5vdmVyZmxvd09mZnNldC5sZWZ0K28ub2Zmc2V0V2lkdGgtdC5wYWdlWDxuLnNjcm9sbFNlbnNpdGl2aXR5P28uc2Nyb2xsTGVmdD1hPW8uc2Nyb2xsTGVmdCtuLnNjcm9sbFNwZWVkOnQucGFnZVgtcy5vdmVyZmxvd09mZnNldC5sZWZ0PG4uc2Nyb2xsU2Vuc2l0aXZpdHkmJihvLnNjcm9sbExlZnQ9YT1vLnNjcm9sbExlZnQtbi5zY3JvbGxTcGVlZCkpKToobi5heGlzJiYieCI9PT1uLmF4aXN8fCh0LnBhZ2VZLWUocikuc2Nyb2xsVG9wKCk8bi5zY3JvbGxTZW5zaXRpdml0eT9hPWUocikuc2Nyb2xsVG9wKGUocikuc2Nyb2xsVG9wKCktbi5zY3JvbGxTcGVlZCk6ZSh3aW5kb3cpLmhlaWdodCgpLSh0LnBhZ2VZLWUocikuc2Nyb2xsVG9wKCkpPG4uc2Nyb2xsU2Vuc2l0aXZpdHkmJihhPWUocikuc2Nyb2xsVG9wKGUocikuc2Nyb2xsVG9wKCkrbi5zY3JvbGxTcGVlZCkpKSxuLmF4aXMmJiJ5Ij09PW4uYXhpc3x8KHQucGFnZVgtZShyKS5zY3JvbGxMZWZ0KCk8bi5zY3JvbGxTZW5zaXRpdml0eT9hPWUocikuc2Nyb2xsTGVmdChlKHIpLnNjcm9sbExlZnQoKS1uLnNjcm9sbFNwZWVkKTplKHdpbmRvdykud2lkdGgoKS0odC5wYWdlWC1lKHIpLnNjcm9sbExlZnQoKSk8bi5zY3JvbGxTZW5zaXRpdml0eSYmKGE9ZShyKS5zY3JvbGxMZWZ0KGUocikuc2Nyb2xsTGVmdCgpK24uc2Nyb2xsU3BlZWQpKSkpLGEhPT0hMSYmZS51aS5kZG1hbmFnZXImJiFuLmRyb3BCZWhhdmlvdXImJmUudWkuZGRtYW5hZ2VyLnByZXBhcmVPZmZzZXRzKHMsdCl9fSksZS51aS5wbHVnaW4uYWRkKCJkcmFnZ2FibGUiLCJzbmFwIix7c3RhcnQ6ZnVuY3Rpb24odCxpLHMpe3ZhciBuPXMub3B0aW9ucztzLnNuYXBFbGVtZW50cz1bXSxlKG4uc25hcC5jb25zdHJ1Y3RvciE9PVN0cmluZz9uLnNuYXAuaXRlbXN8fCI6ZGF0YSh1aS1kcmFnZ2FibGUpIjpuLnNuYXApLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLGk9dC5vZmZzZXQoKTt0aGlzIT09cy5lbGVtZW50WzBdJiZzLnNuYXBFbGVtZW50cy5wdXNoKHtpdGVtOnRoaXMsd2lkdGg6dC5vdXRlcldpZHRoKCksaGVpZ2h0OnQub3V0ZXJIZWlnaHQoKSx0b3A6aS50b3AsbGVmdDppLmxlZnR9KX0pfSxkcmFnOmZ1bmN0aW9uKHQsaSxzKXt2YXIgbixhLG8scixoLGwsdSxkLGMscCxmPXMub3B0aW9ucyxtPWYuc25hcFRvbGVyYW5jZSxnPWkub2Zmc2V0LmxlZnQsdj1nK3MuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgseT1pLm9mZnNldC50b3AsYj15K3MuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0O2ZvcihjPXMuc25hcEVsZW1lbnRzLmxlbmd0aC0xO2M+PTA7Yy0tKWg9cy5zbmFwRWxlbWVudHNbY10ubGVmdC1zLm1hcmdpbnMubGVmdCxsPWgrcy5zbmFwRWxlbWVudHNbY10ud2lkdGgsdT1zLnNuYXBFbGVtZW50c1tjXS50b3Atcy5tYXJnaW5zLnRvcCxkPXUrcy5zbmFwRWxlbWVudHNbY10uaGVpZ2h0LGgtbT52fHxnPmwrbXx8dS1tPmJ8fHk+ZCttfHwhZS5jb250YWlucyhzLnNuYXBFbGVtZW50c1tjXS5pdGVtLm93bmVyRG9jdW1lbnQscy5zbmFwRWxlbWVudHNbY10uaXRlbSk/KHMuc25hcEVsZW1lbnRzW2NdLnNuYXBwaW5nJiZzLm9wdGlvbnMuc25hcC5yZWxlYXNlJiZzLm9wdGlvbnMuc25hcC5yZWxlYXNlLmNhbGwocy5lbGVtZW50LHQsZS5leHRlbmQocy5fdWlIYXNoKCkse3NuYXBJdGVtOnMuc25hcEVsZW1lbnRzW2NdLml0ZW19KSkscy5zbmFwRWxlbWVudHNbY10uc25hcHBpbmc9ITEpOigiaW5uZXIiIT09Zi5zbmFwTW9kZSYmKG49bT49TWF0aC5hYnModS1iKSxhPW0+PU1hdGguYWJzKGQteSksbz1tPj1NYXRoLmFicyhoLXYpLHI9bT49TWF0aC5hYnMobC1nKSxuJiYoaS5wb3NpdGlvbi50b3A9cy5fY29udmVydFBvc2l0aW9uVG8oInJlbGF0aXZlIix7dG9wOnUtcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQsbGVmdDowfSkudG9wKSxhJiYoaS5wb3NpdGlvbi50b3A9cy5fY29udmVydFBvc2l0aW9uVG8oInJlbGF0aXZlIix7dG9wOmQsbGVmdDowfSkudG9wKSxvJiYoaS5wb3NpdGlvbi5sZWZ0PXMuX2NvbnZlcnRQb3NpdGlvblRvKCJyZWxhdGl2ZSIse3RvcDowLGxlZnQ6aC1zLmhlbHBlclByb3BvcnRpb25zLndpZHRofSkubGVmdCksciYmKGkucG9zaXRpb24ubGVmdD1zLl9jb252ZXJ0UG9zaXRpb25UbygicmVsYXRpdmUiLHt0b3A6MCxsZWZ0Omx9KS5sZWZ0KSkscD1ufHxhfHxvfHxyLCJvdXRlciIhPT1mLnNuYXBNb2RlJiYobj1tPj1NYXRoLmFicyh1LXkpLGE9bT49TWF0aC5hYnMoZC1iKSxvPW0+PU1hdGguYWJzKGgtZykscj1tPj1NYXRoLmFicyhsLXYpLG4mJihpLnBvc2l0aW9uLnRvcD1zLl9jb252ZXJ0UG9zaXRpb25UbygicmVsYXRpdmUiLHt0b3A6dSxsZWZ0OjB9KS50b3ApLGEmJihpLnBvc2l0aW9uLnRvcD1zLl9jb252ZXJ0UG9zaXRpb25UbygicmVsYXRpdmUiLHt0b3A6ZC1zLmhlbHBlclByb3BvcnRpb25zLmhlaWdodCxsZWZ0OjB9KS50b3ApLG8mJihpLnBvc2l0aW9uLmxlZnQ9cy5fY29udmVydFBvc2l0aW9uVG8oInJlbGF0aXZlIix7dG9wOjAsbGVmdDpofSkubGVmdCksciYmKGkucG9zaXRpb24ubGVmdD1zLl9jb252ZXJ0UG9zaXRpb25UbygicmVsYXRpdmUiLHt0b3A6MCxsZWZ0Omwtcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aH0pLmxlZnQpKSwhcy5zbmFwRWxlbWVudHNbY10uc25hcHBpbmcmJihufHxhfHxvfHxyfHxwKSYmcy5vcHRpb25zLnNuYXAuc25hcCYmcy5vcHRpb25zLnNuYXAuc25hcC5jYWxsKHMuZWxlbWVudCx0LGUuZXh0ZW5kKHMuX3VpSGFzaCgpLHtzbmFwSXRlbTpzLnNuYXBFbGVtZW50c1tjXS5pdGVtfSkpLHMuc25hcEVsZW1lbnRzW2NdLnNuYXBwaW5nPW58fGF8fG98fHJ8fHApfX0pLGUudWkucGx1Z2luLmFkZCgiZHJhZ2dhYmxlIiwic3RhY2siLHtzdGFydDpmdW5jdGlvbih0LGkscyl7dmFyIG4sYT1zLm9wdGlvbnMsbz1lLm1ha2VBcnJheShlKGEuc3RhY2spKS5zb3J0KGZ1bmN0aW9uKHQsaSl7cmV0dXJuKHBhcnNlSW50KGUodCkuY3NzKCJ6SW5kZXgiKSwxMCl8fDApLShwYXJzZUludChlKGkpLmNzcygiekluZGV4IiksMTApfHwwKX0pO28ubGVuZ3RoJiYobj1wYXJzZUludChlKG9bMF0pLmNzcygiekluZGV4IiksMTApfHwwLGUobykuZWFjaChmdW5jdGlvbih0KXtlKHRoaXMpLmNzcygiekluZGV4IixuK3QpfSksdGhpcy5jc3MoInpJbmRleCIsbitvLmxlbmd0aCkpfX0pLGUudWkucGx1Z2luLmFkZCgiZHJhZ2dhYmxlIiwiekluZGV4Iix7c3RhcnQ6ZnVuY3Rpb24odCxpLHMpe3ZhciBuPWUoaS5oZWxwZXIpLGE9cy5vcHRpb25zO24uY3NzKCJ6SW5kZXgiKSYmKGEuX3pJbmRleD1uLmNzcygiekluZGV4IikpLG4uY3NzKCJ6SW5kZXgiLGEuekluZGV4KX0sc3RvcDpmdW5jdGlvbih0LGkscyl7dmFyIG49cy5vcHRpb25zO24uX3pJbmRleCYmZShpLmhlbHBlcikuY3NzKCJ6SW5kZXgiLG4uX3pJbmRleCl9fSksZS51aS5kcmFnZ2FibGUsZS53aWRnZXQoInVpLnJlc2l6YWJsZSIsZS51aS5tb3VzZSx7dmVyc2lvbjoiMS4xMS40Iix3aWRnZXRFdmVudFByZWZpeDoicmVzaXplIixvcHRpb25zOnthbHNvUmVzaXplOiExLGFuaW1hdGU6ITEsYW5pbWF0ZUR1cmF0aW9uOiJzbG93IixhbmltYXRlRWFzaW5nOiJzd2luZyIsYXNwZWN0UmF0aW86ITEsYXV0b0hpZGU6ITEsY29udGFpbm1lbnQ6ITEsZ2hvc3Q6ITEsZ3JpZDohMSxoYW5kbGVzOiJlLHMsc2UiLGhlbHBlcjohMSxtYXhIZWlnaHQ6bnVsbCxtYXhXaWR0aDpudWxsLG1pbkhlaWdodDoxMCxtaW5XaWR0aDoxMCx6SW5kZXg6OTAscmVzaXplOm51bGwsc3RhcnQ6bnVsbCxzdG9wOm51bGx9LF9udW06ZnVuY3Rpb24oZSl7cmV0dXJuIHBhcnNlSW50KGUsMTApfHwwfSxfaXNOdW1iZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIWlzTmFOKHBhcnNlSW50KGUsMTApKX0sX2hhc1Njcm9sbDpmdW5jdGlvbih0LGkpe2lmKCJoaWRkZW4iPT09ZSh0KS5jc3MoIm92ZXJmbG93IikpcmV0dXJuITE7dmFyIHM9aSYmImxlZnQiPT09aT8ic2Nyb2xsTGVmdCI6InNjcm9sbFRvcCIsbj0hMTtyZXR1cm4gdFtzXT4wPyEwOih0W3NdPTEsbj10W3NdPjAsdFtzXT0wLG4pfSxfY3JlYXRlOmZ1bmN0aW9uKCl7dmFyIHQsaSxzLG4sYSxvPXRoaXMscj10aGlzLm9wdGlvbnM7aWYodGhpcy5lbGVtZW50LmFkZENsYXNzKCJ1aS1yZXNpemFibGUiKSxlLmV4dGVuZCh0aGlzLHtfYXNwZWN0UmF0aW86ISFyLmFzcGVjdFJhdGlvLGFzcGVjdFJhdGlvOnIuYXNwZWN0UmF0aW8sb3JpZ2luYWxFbGVtZW50OnRoaXMuZWxlbWVudCxfcHJvcG9ydGlvbmFsbHlSZXNpemVFbGVtZW50czpbXSxfaGVscGVyOnIuaGVscGVyfHxyLmdob3N0fHxyLmFuaW1hdGU/ci5oZWxwZXJ8fCJ1aS1yZXNpemFibGUtaGVscGVyIjpudWxsfSksdGhpcy5lbGVtZW50WzBdLm5vZGVOYW1lLm1hdGNoKC9eKGNhbnZhc3x0ZXh0YXJlYXxpbnB1dHxzZWxlY3R8YnV0dG9ufGltZykkL2kpJiYodGhpcy5lbGVtZW50LndyYXAoZSgiPGRpdiBjbGFzcz0ndWktd3JhcHBlcicgc3R5bGU9J292ZXJmbG93OiBoaWRkZW47Jz48L2Rpdj4iKS5jc3Moe3Bvc2l0aW9uOnRoaXMuZWxlbWVudC5jc3MoInBvc2l0aW9uIiksd2lkdGg6dGhpcy5lbGVtZW50Lm91dGVyV2lkdGgoKSxoZWlnaHQ6dGhpcy5lbGVtZW50Lm91dGVySGVpZ2h0KCksdG9wOnRoaXMuZWxlbWVudC5jc3MoInRvcCIpLGxlZnQ6dGhpcy5lbGVtZW50LmNzcygibGVmdCIpfSkpLHRoaXMuZWxlbWVudD10aGlzLmVsZW1lbnQucGFyZW50KCkuZGF0YSgidWktcmVzaXphYmxlIix0aGlzLmVsZW1lbnQucmVzaXphYmxlKCJpbnN0YW5jZSIpKSx0aGlzLmVsZW1lbnRJc1dyYXBwZXI9ITAsdGhpcy5lbGVtZW50LmNzcyh7bWFyZ2luTGVmdDp0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoIm1hcmdpbkxlZnQiKSxtYXJnaW5Ub3A6dGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKCJtYXJnaW5Ub3AiKSxtYXJnaW5SaWdodDp0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoIm1hcmdpblJpZ2h0IiksbWFyZ2luQm90dG9tOnRoaXMub3JpZ2luYWxFbGVtZW50LmNzcygibWFyZ2luQm90dG9tIil9KSx0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3Moe21hcmdpbkxlZnQ6MCxtYXJnaW5Ub3A6MCxtYXJnaW5SaWdodDowLG1hcmdpbkJvdHRvbTowfSksdGhpcy5vcmlnaW5hbFJlc2l6ZVN0eWxlPXRoaXMub3JpZ2luYWxFbGVtZW50LmNzcygicmVzaXplIiksdGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKCJyZXNpemUiLCJub25lIiksdGhpcy5fcHJvcG9ydGlvbmFsbHlSZXNpemVFbGVtZW50cy5wdXNoKHRoaXMub3JpZ2luYWxFbGVtZW50LmNzcyh7cG9zaXRpb246InN0YXRpYyIsem9vbToxLGRpc3BsYXk6ImJsb2NrIn0pKSx0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3Moe21hcmdpbjp0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoIm1hcmdpbiIpfSksdGhpcy5fcHJvcG9ydGlvbmFsbHlSZXNpemUoKSksdGhpcy5oYW5kbGVzPXIuaGFuZGxlc3x8KGUoIi51aS1yZXNpemFibGUtaGFuZGxlIix0aGlzLmVsZW1lbnQpLmxlbmd0aD97bjoiLnVpLXJlc2l6YWJsZS1uIixlOiIudWktcmVzaXphYmxlLWUiLHM6Ii51aS1yZXNpemFibGUtcyIsdzoiLnVpLXJlc2l6YWJsZS13IixzZToiLnVpLXJlc2l6YWJsZS1zZSIsc3c6Ii51aS1yZXNpemFibGUtc3ciLG5lOiIudWktcmVzaXphYmxlLW5lIixudzoiLnVpLXJlc2l6YWJsZS1udyJ9OiJlLHMsc2UiKSx0aGlzLl9oYW5kbGVzPWUoKSx0aGlzLmhhbmRsZXMuY29uc3RydWN0b3I9PT1TdHJpbmcpZm9yKCJhbGwiPT09dGhpcy5oYW5kbGVzJiYodGhpcy5oYW5kbGVzPSJuLGUscyx3LHNlLHN3LG5lLG53IiksdD10aGlzLmhhbmRsZXMuc3BsaXQoIiwiKSx0aGlzLmhhbmRsZXM9e30saT0wO3QubGVuZ3RoPmk7aSsrKXM9ZS50cmltKHRbaV0pLGE9InVpLXJlc2l6YWJsZS0iK3Msbj1lKCI8ZGl2IGNsYXNzPSd1aS1yZXNpemFibGUtaGFuZGxlICIrYSsiJz48L2Rpdj4iKSxuLmNzcyh7ekluZGV4OnIuekluZGV4fSksInNlIj09PXMmJm4uYWRkQ2xhc3MoInVpLWljb24gdWktaWNvbi1ncmlwc21hbGwtZGlhZ29uYWwtc2UiKSx0aGlzLmhhbmRsZXNbc109Ii51aS1yZXNpemFibGUtIitzLHRoaXMuZWxlbWVudC5hcHBlbmQobik7dGhpcy5fcmVuZGVyQXhpcz1mdW5jdGlvbih0KXt2YXIgaSxzLG4sYTt0PXR8fHRoaXMuZWxlbWVudDtmb3IoaSBpbiB0aGlzLmhhbmRsZXMpdGhpcy5oYW5kbGVzW2ldLmNvbnN0cnVjdG9yPT09U3RyaW5nP3RoaXMuaGFuZGxlc1tpXT10aGlzLmVsZW1lbnQuY2hpbGRyZW4odGhpcy5oYW5kbGVzW2ldKS5maXJzdCgpLnNob3coKToodGhpcy5oYW5kbGVzW2ldLmpxdWVyeXx8dGhpcy5oYW5kbGVzW2ldLm5vZGVUeXBlKSYmKHRoaXMuaGFuZGxlc1tpXT1lKHRoaXMuaGFuZGxlc1tpXSksdGhpcy5fb24odGhpcy5oYW5kbGVzW2ldLHttb3VzZWRvd246by5fbW91c2VEb3dufSkpLHRoaXMuZWxlbWVudElzV3JhcHBlciYmdGhpcy5vcmlnaW5hbEVsZW1lbnRbMF0ubm9kZU5hbWUubWF0Y2goL14odGV4dGFyZWF8aW5wdXR8c2VsZWN0fGJ1dHRvbikkL2kpJiYocz1lKHRoaXMuaGFuZGxlc1tpXSx0aGlzLmVsZW1lbnQpLGE9L3N3fG5lfG53fHNlfG58cy8udGVzdChpKT9zLm91dGVySGVpZ2h0KCk6cy5vdXRlcldpZHRoKCksbj1bInBhZGRpbmciLC9uZXxud3xuLy50ZXN0KGkpPyJUb3AiOi9zZXxzd3xzLy50ZXN0KGkpPyJCb3R0b20iOi9eZSQvLnRlc3QoaSk/IlJpZ2h0IjoiTGVmdCJdLmpvaW4oIiIpLHQuY3NzKG4sYSksdGhpcy5fcHJvcG9ydGlvbmFsbHlSZXNpemUoKSksdGhpcy5faGFuZGxlcz10aGlzLl9oYW5kbGVzLmFkZCh0aGlzLmhhbmRsZXNbaV0pfSx0aGlzLl9yZW5kZXJBeGlzKHRoaXMuZWxlbWVudCksdGhpcy5faGFuZGxlcz10aGlzLl9oYW5kbGVzLmFkZCh0aGlzLmVsZW1lbnQuZmluZCgiLnVpLXJlc2l6YWJsZS1oYW5kbGUiKSksdGhpcy5faGFuZGxlcy5kaXNhYmxlU2VsZWN0aW9uKCksdGhpcy5faGFuZGxlcy5tb3VzZW92ZXIoZnVuY3Rpb24oKXtvLnJlc2l6aW5nfHwodGhpcy5jbGFzc05hbWUmJihuPXRoaXMuY2xhc3NOYW1lLm1hdGNoKC91aS1yZXNpemFibGUtKHNlfHN3fG5lfG53fG58ZXxzfHcpL2kpKSxvLmF4aXM9biYmblsxXT9uWzFdOiJzZSIpfSksci5hdXRvSGlkZSYmKHRoaXMuX2hhbmRsZXMuaGlkZSgpLGUodGhpcy5lbGVtZW50KS5hZGRDbGFzcygidWktcmVzaXphYmxlLWF1dG9oaWRlIikubW91c2VlbnRlcihmdW5jdGlvbigpe3IuZGlzYWJsZWR8fChlKHRoaXMpLnJlbW92ZUNsYXNzKCJ1aS1yZXNpemFibGUtYXV0b2hpZGUiKSxvLl9oYW5kbGVzLnNob3coKSl9KS5tb3VzZWxlYXZlKGZ1bmN0aW9uKCl7ci5kaXNhYmxlZHx8by5yZXNpemluZ3x8KGUodGhpcykuYWRkQ2xhc3MoInVpLXJlc2l6YWJsZS1hdXRvaGlkZSIpLG8uX2hhbmRsZXMuaGlkZSgpKX0pKSx0aGlzLl9tb3VzZUluaXQoKX0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLl9tb3VzZURlc3Ryb3koKTt2YXIgdCxpPWZ1bmN0aW9uKHQpe2UodCkucmVtb3ZlQ2xhc3MoInVpLXJlc2l6YWJsZSB1aS1yZXNpemFibGUtZGlzYWJsZWQgdWktcmVzaXphYmxlLXJlc2l6aW5nIikucmVtb3ZlRGF0YSgicmVzaXphYmxlIikucmVtb3ZlRGF0YSgidWktcmVzaXphYmxlIikudW5iaW5kKCIucmVzaXphYmxlIikuZmluZCgiLnVpLXJlc2l6YWJsZS1oYW5kbGUiKS5yZW1vdmUoKX07cmV0dXJuIHRoaXMuZWxlbWVudElzV3JhcHBlciYmKGkodGhpcy5lbGVtZW50KSx0PXRoaXMuZWxlbWVudCx0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3Moe3Bvc2l0aW9uOnQuY3NzKCJwb3NpdGlvbiIpLHdpZHRoOnQub3V0ZXJXaWR0aCgpLGhlaWdodDp0Lm91dGVySGVpZ2h0KCksdG9wOnQuY3NzKCJ0b3AiKSxsZWZ0OnQuY3NzKCJsZWZ0Iil9KS5pbnNlcnRBZnRlcih0KSx0LnJlbW92ZSgpKSx0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoInJlc2l6ZSIsdGhpcy5vcmlnaW5hbFJlc2l6ZVN0eWxlKSxpKHRoaXMub3JpZ2luYWxFbGVtZW50KSx0aGlzfSxfbW91c2VDYXB0dXJlOmZ1bmN0aW9uKHQpe3ZhciBpLHMsbj0hMTtmb3IoaSBpbiB0aGlzLmhhbmRsZXMpcz1lKHRoaXMuaGFuZGxlc1tpXSlbMF0sKHM9PT10LnRhcmdldHx8ZS5jb250YWlucyhzLHQudGFyZ2V0KSkmJihuPSEwKTtyZXR1cm4hdGhpcy5vcHRpb25zLmRpc2FibGVkJiZufSxfbW91c2VTdGFydDpmdW5jdGlvbih0KXt2YXIgaSxzLG4sYT10aGlzLm9wdGlvbnMsbz10aGlzLmVsZW1lbnQ7cmV0dXJuIHRoaXMucmVzaXppbmc9ITAsdGhpcy5fcmVuZGVyUHJveHkoKSxpPXRoaXMuX251bSh0aGlzLmhlbHBlci5jc3MoImxlZnQiKSkscz10aGlzLl9udW0odGhpcy5oZWxwZXIuY3NzKCJ0b3AiKSksYS5jb250YWlubWVudCYmKGkrPWUoYS5jb250YWlubWVudCkuc2Nyb2xsTGVmdCgpfHwwLHMrPWUoYS5jb250YWlubWVudCkuc2Nyb2xsVG9wKCl8fDApLHRoaXMub2Zmc2V0PXRoaXMuaGVscGVyLm9mZnNldCgpLHRoaXMucG9zaXRpb249e2xlZnQ6aSx0b3A6c30sdGhpcy5zaXplPXRoaXMuX2hlbHBlcj97d2lkdGg6dGhpcy5oZWxwZXIud2lkdGgoKSxoZWlnaHQ6dGhpcy5oZWxwZXIuaGVpZ2h0KCl9Ont3aWR0aDpvLndpZHRoKCksaGVpZ2h0Om8uaGVpZ2h0KCl9LHRoaXMub3JpZ2luYWxTaXplPXRoaXMuX2hlbHBlcj97d2lkdGg6by5vdXRlcldpZHRoKCksaGVpZ2h0Om8ub3V0ZXJIZWlnaHQoKX06e3dpZHRoOm8ud2lkdGgoKSxoZWlnaHQ6by5oZWlnaHQoKX0sdGhpcy5zaXplRGlmZj17d2lkdGg6by5vdXRlcldpZHRoKCktby53aWR0aCgpLGhlaWdodDpvLm91dGVySGVpZ2h0KCktby5oZWlnaHQoKX0sdGhpcy5vcmlnaW5hbFBvc2l0aW9uPXtsZWZ0OmksdG9wOnN9LHRoaXMub3JpZ2luYWxNb3VzZVBvc2l0aW9uPXtsZWZ0OnQucGFnZVgsdG9wOnQucGFnZVl9LHRoaXMuYXNwZWN0UmF0aW89Im51bWJlciI9PXR5cGVvZiBhLmFzcGVjdFJhdGlvP2EuYXNwZWN0UmF0aW86dGhpcy5vcmlnaW5hbFNpemUud2lkdGgvdGhpcy5vcmlnaW5hbFNpemUuaGVpZ2h0fHwxLG49ZSgiLnVpLXJlc2l6YWJsZS0iK3RoaXMuYXhpcykuY3NzKCJjdXJzb3IiKSxlKCJib2R5IikuY3NzKCJjdXJzb3IiLCJhdXRvIj09PW4/dGhpcy5heGlzKyItcmVzaXplIjpuKSxvLmFkZENsYXNzKCJ1aS1yZXNpemFibGUtcmVzaXppbmciKSx0aGlzLl9wcm9wYWdhdGUoInN0YXJ0Iix0KSwhMH0sX21vdXNlRHJhZzpmdW5jdGlvbih0KXt2YXIgaSxzLG49dGhpcy5vcmlnaW5hbE1vdXNlUG9zaXRpb24sYT10aGlzLmF4aXMsbz10LnBhZ2VYLW4ubGVmdHx8MCxyPXQucGFnZVktbi50b3B8fDAsaD10aGlzLl9jaGFuZ2VbYV07cmV0dXJuIHRoaXMuX3VwZGF0ZVByZXZQcm9wZXJ0aWVzKCksaD8oaT1oLmFwcGx5KHRoaXMsW3QsbyxyXSksdGhpcy5fdXBkYXRlVmlydHVhbEJvdW5kYXJpZXModC5zaGlmdEtleSksKHRoaXMuX2FzcGVjdFJhdGlvfHx0LnNoaWZ0S2V5KSYmKGk9dGhpcy5fdXBkYXRlUmF0aW8oaSx0KSksaT10aGlzLl9yZXNwZWN0U2l6ZShpLHQpLHRoaXMuX3VwZGF0ZUNhY2hlKGkpLHRoaXMuX3Byb3BhZ2F0ZSgicmVzaXplIix0KSxzPXRoaXMuX2FwcGx5Q2hhbmdlcygpLCF0aGlzLl9oZWxwZXImJnRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplRWxlbWVudHMubGVuZ3RoJiZ0aGlzLl9wcm9wb3J0aW9uYWxseVJlc2l6ZSgpLGUuaXNFbXB0eU9iamVjdChzKXx8KHRoaXMuX3VwZGF0ZVByZXZQcm9wZXJ0aWVzKCksdGhpcy5fdHJpZ2dlcigicmVzaXplIix0LHRoaXMudWkoKSksdGhpcy5fYXBwbHlDaGFuZ2VzKCkpLCExKTohMX0sX21vdXNlU3RvcDpmdW5jdGlvbih0KXt0aGlzLnJlc2l6aW5nPSExO3ZhciBpLHMsbixhLG8scixoLGw9dGhpcy5vcHRpb25zLHU9dGhpcztyZXR1cm4gdGhpcy5faGVscGVyJiYoaT10aGlzLl9wcm9wb3J0aW9uYWxseVJlc2l6ZUVsZW1lbnRzLHM9aS5sZW5ndGgmJi90ZXh0YXJlYS9pLnRlc3QoaVswXS5ub2RlTmFtZSksbj1zJiZ0aGlzLl9oYXNTY3JvbGwoaVswXSwibGVmdCIpPzA6dS5zaXplRGlmZi5oZWlnaHQsYT1zPzA6dS5zaXplRGlmZi53aWR0aCxvPXt3aWR0aDp1LmhlbHBlci53aWR0aCgpLWEsaGVpZ2h0OnUuaGVscGVyLmhlaWdodCgpLW59LHI9cGFyc2VJbnQodS5lbGVtZW50LmNzcygibGVmdCIpLDEwKSsodS5wb3NpdGlvbi5sZWZ0LXUub3JpZ2luYWxQb3NpdGlvbi5sZWZ0KXx8bnVsbCxoPXBhcnNlSW50KHUuZWxlbWVudC5jc3MoInRvcCIpLDEwKSsodS5wb3NpdGlvbi50b3AtdS5vcmlnaW5hbFBvc2l0aW9uLnRvcCl8fG51bGwsbC5hbmltYXRlfHx0aGlzLmVsZW1lbnQuY3NzKGUuZXh0ZW5kKG8se3RvcDpoLGxlZnQ6cn0pKSx1LmhlbHBlci5oZWlnaHQodS5zaXplLmhlaWdodCksdS5oZWxwZXIud2lkdGgodS5zaXplLndpZHRoKSx0aGlzLl9oZWxwZXImJiFsLmFuaW1hdGUmJnRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplKCkpLGUoImJvZHkiKS5jc3MoImN1cnNvciIsImF1dG8iKSx0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXJlc2l6YWJsZS1yZXNpemluZyIpLHRoaXMuX3Byb3BhZ2F0ZSgic3RvcCIsdCksdGhpcy5faGVscGVyJiZ0aGlzLmhlbHBlci5yZW1vdmUoKSwhMX0sX3VwZGF0ZVByZXZQcm9wZXJ0aWVzOmZ1bmN0aW9uKCl7dGhpcy5wcmV2UG9zaXRpb249e3RvcDp0aGlzLnBvc2l0aW9uLnRvcCxsZWZ0OnRoaXMucG9zaXRpb24ubGVmdH0sdGhpcy5wcmV2U2l6ZT17d2lkdGg6dGhpcy5zaXplLndpZHRoLGhlaWdodDp0aGlzLnNpemUuaGVpZ2h0fX0sX2FwcGx5Q2hhbmdlczpmdW5jdGlvbigpe3ZhciBlPXt9O3JldHVybiB0aGlzLnBvc2l0aW9uLnRvcCE9PXRoaXMucHJldlBvc2l0aW9uLnRvcCYmKGUudG9wPXRoaXMucG9zaXRpb24udG9wKyJweCIpLHRoaXMucG9zaXRpb24ubGVmdCE9PXRoaXMucHJldlBvc2l0aW9uLmxlZnQmJihlLmxlZnQ9dGhpcy5wb3NpdGlvbi5sZWZ0KyJweCIpLHRoaXMuc2l6ZS53aWR0aCE9PXRoaXMucHJldlNpemUud2lkdGgmJihlLndpZHRoPXRoaXMuc2l6ZS53aWR0aCsicHgiKSx0aGlzLnNpemUuaGVpZ2h0IT09dGhpcy5wcmV2U2l6ZS5oZWlnaHQmJihlLmhlaWdodD10aGlzLnNpemUuaGVpZ2h0KyJweCIpLHRoaXMuaGVscGVyLmNzcyhlKSxlfSxfdXBkYXRlVmlydHVhbEJvdW5kYXJpZXM6ZnVuY3Rpb24oZSl7dmFyIHQsaSxzLG4sYSxvPXRoaXMub3B0aW9uczthPXttaW5XaWR0aDp0aGlzLl9pc051bWJlcihvLm1pbldpZHRoKT9vLm1pbldpZHRoOjAsbWF4V2lkdGg6dGhpcy5faXNOdW1iZXIoby5tYXhXaWR0aCk/by5tYXhXaWR0aDoxLzAsbWluSGVpZ2h0OnRoaXMuX2lzTnVtYmVyKG8ubWluSGVpZ2h0KT9vLm1pbkhlaWdodDowLG1heEhlaWdodDp0aGlzLl9pc051bWJlcihvLm1heEhlaWdodCk/by5tYXhIZWlnaHQ6MS8wfSwodGhpcy5fYXNwZWN0UmF0aW98fGUpJiYodD1hLm1pbkhlaWdodCp0aGlzLmFzcGVjdFJhdGlvLHM9YS5taW5XaWR0aC90aGlzLmFzcGVjdFJhdGlvLGk9YS5tYXhIZWlnaHQqdGhpcy5hc3BlY3RSYXRpbyxuPWEubWF4V2lkdGgvdGhpcy5hc3BlY3RSYXRpbyx0PmEubWluV2lkdGgmJihhLm1pbldpZHRoPXQpLHM+YS5taW5IZWlnaHQmJihhLm1pbkhlaWdodD1zKSxhLm1heFdpZHRoPmkmJihhLm1heFdpZHRoPWkpLGEubWF4SGVpZ2h0Pm4mJihhLm1heEhlaWdodD1uKSksdGhpcy5fdkJvdW5kYXJpZXM9YX0sX3VwZGF0ZUNhY2hlOmZ1bmN0aW9uKGUpe3RoaXMub2Zmc2V0PXRoaXMuaGVscGVyLm9mZnNldCgpLHRoaXMuX2lzTnVtYmVyKGUubGVmdCkmJih0aGlzLnBvc2l0aW9uLmxlZnQ9ZS5sZWZ0KSx0aGlzLl9pc051bWJlcihlLnRvcCkmJih0aGlzLnBvc2l0aW9uLnRvcD1lLnRvcCksdGhpcy5faXNOdW1iZXIoZS5oZWlnaHQpJiYodGhpcy5zaXplLmhlaWdodD1lLmhlaWdodCksdGhpcy5faXNOdW1iZXIoZS53aWR0aCkmJih0aGlzLnNpemUud2lkdGg9ZS53aWR0aCl9LF91cGRhdGVSYXRpbzpmdW5jdGlvbihlKXt2YXIgdD10aGlzLnBvc2l0aW9uLGk9dGhpcy5zaXplLHM9dGhpcy5heGlzO3JldHVybiB0aGlzLl9pc051bWJlcihlLmhlaWdodCk/ZS53aWR0aD1lLmhlaWdodCp0aGlzLmFzcGVjdFJhdGlvOnRoaXMuX2lzTnVtYmVyKGUud2lkdGgpJiYoZS5oZWlnaHQ9ZS53aWR0aC90aGlzLmFzcGVjdFJhdGlvKSwic3ciPT09cyYmKGUubGVmdD10LmxlZnQrKGkud2lkdGgtZS53aWR0aCksZS50b3A9bnVsbCksIm53Ij09PXMmJihlLnRvcD10LnRvcCsoaS5oZWlnaHQtZS5oZWlnaHQpLGUubGVmdD10LmxlZnQrKGkud2lkdGgtZS53aWR0aCkpLGV9LF9yZXNwZWN0U2l6ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLl92Qm91bmRhcmllcyxpPXRoaXMuYXhpcyxzPXRoaXMuX2lzTnVtYmVyKGUud2lkdGgpJiZ0Lm1heFdpZHRoJiZ0Lm1heFdpZHRoPGUud2lkdGgsbj10aGlzLl9pc051bWJlcihlLmhlaWdodCkmJnQubWF4SGVpZ2h0JiZ0Lm1heEhlaWdodDxlLmhlaWdodCxhPXRoaXMuX2lzTnVtYmVyKGUud2lkdGgpJiZ0Lm1pbldpZHRoJiZ0Lm1pbldpZHRoPmUud2lkdGgsbz10aGlzLl9pc051bWJlcihlLmhlaWdodCkmJnQubWluSGVpZ2h0JiZ0Lm1pbkhlaWdodD5lLmhlaWdodCxyPXRoaXMub3JpZ2luYWxQb3NpdGlvbi5sZWZ0K3RoaXMub3JpZ2luYWxTaXplLndpZHRoLGg9dGhpcy5wb3NpdGlvbi50b3ArdGhpcy5zaXplLmhlaWdodCxsPS9zd3xud3x3Ly50ZXN0KGkpLHU9L253fG5lfG4vLnRlc3QoaSk7cmV0dXJuIGEmJihlLndpZHRoPXQubWluV2lkdGgpLG8mJihlLmhlaWdodD10Lm1pbkhlaWdodCkscyYmKGUud2lkdGg9dC5tYXhXaWR0aCksbiYmKGUuaGVpZ2h0PXQubWF4SGVpZ2h0KSxhJiZsJiYoZS5sZWZ0PXItdC5taW5XaWR0aCkscyYmbCYmKGUubGVmdD1yLXQubWF4V2lkdGgpLG8mJnUmJihlLnRvcD1oLXQubWluSGVpZ2h0KSxuJiZ1JiYoZS50b3A9aC10Lm1heEhlaWdodCksZS53aWR0aHx8ZS5oZWlnaHR8fGUubGVmdHx8IWUudG9wP2Uud2lkdGh8fGUuaGVpZ2h0fHxlLnRvcHx8IWUubGVmdHx8KGUubGVmdD1udWxsKTplLnRvcD1udWxsLGV9LF9nZXRQYWRkaW5nUGx1c0JvcmRlckRpbWVuc2lvbnM6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTAsaT1bXSxzPVtlLmNzcygiYm9yZGVyVG9wV2lkdGgiKSxlLmNzcygiYm9yZGVyUmlnaHRXaWR0aCIpLGUuY3NzKCJib3JkZXJCb3R0b21XaWR0aCIpLGUuY3NzKCJib3JkZXJMZWZ0V2lkdGgiKV0sbj1bZS5jc3MoInBhZGRpbmdUb3AiKSxlLmNzcygicGFkZGluZ1JpZ2h0IiksZS5jc3MoInBhZGRpbmdCb3R0b20iKSxlLmNzcygicGFkZGluZ0xlZnQiKV07ND50O3QrKylpW3RdPXBhcnNlSW50KHNbdF0sMTApfHwwLGlbdF0rPXBhcnNlSW50KG5bdF0sMTApfHwwO3JldHVybntoZWlnaHQ6aVswXStpWzJdLHdpZHRoOmlbMV0raVszXX19LF9wcm9wb3J0aW9uYWxseVJlc2l6ZTpmdW5jdGlvbigpe2lmKHRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplRWxlbWVudHMubGVuZ3RoKWZvcih2YXIgZSx0PTAsaT10aGlzLmhlbHBlcnx8dGhpcy5lbGVtZW50O3RoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplRWxlbWVudHMubGVuZ3RoPnQ7dCsrKWU9dGhpcy5fcHJvcG9ydGlvbmFsbHlSZXNpemVFbGVtZW50c1t0XSx0aGlzLm91dGVyRGltZW5zaW9uc3x8KHRoaXMub3V0ZXJEaW1lbnNpb25zPXRoaXMuX2dldFBhZGRpbmdQbHVzQm9yZGVyRGltZW5zaW9ucyhlKSksZS5jc3Moe2hlaWdodDppLmhlaWdodCgpLXRoaXMub3V0ZXJEaW1lbnNpb25zLmhlaWdodHx8MCx3aWR0aDppLndpZHRoKCktdGhpcy5vdXRlckRpbWVuc2lvbnMud2lkdGh8fDB9KX0sX3JlbmRlclByb3h5OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lbGVtZW50LGk9dGhpcy5vcHRpb25zO3RoaXMuZWxlbWVudE9mZnNldD10Lm9mZnNldCgpLHRoaXMuX2hlbHBlcj8odGhpcy5oZWxwZXI9dGhpcy5oZWxwZXJ8fGUoIjxkaXYgc3R5bGU9J292ZXJmbG93OmhpZGRlbjsnPjwvZGl2PiIpLHRoaXMuaGVscGVyLmFkZENsYXNzKHRoaXMuX2hlbHBlcikuY3NzKHt3aWR0aDp0aGlzLmVsZW1lbnQub3V0ZXJXaWR0aCgpLTEsaGVpZ2h0OnRoaXMuZWxlbWVudC5vdXRlckhlaWdodCgpLTEscG9zaXRpb246ImFic29sdXRlIixsZWZ0OnRoaXMuZWxlbWVudE9mZnNldC5sZWZ0KyJweCIsdG9wOnRoaXMuZWxlbWVudE9mZnNldC50b3ArInB4Iix6SW5kZXg6KytpLnpJbmRleH0pLHRoaXMuaGVscGVyLmFwcGVuZFRvKCJib2R5IikuZGlzYWJsZVNlbGVjdGlvbigpKTp0aGlzLmhlbHBlcj10aGlzLmVsZW1lbnR9LF9jaGFuZ2U6e2U6ZnVuY3Rpb24oZSx0KXtyZXR1cm57d2lkdGg6dGhpcy5vcmlnaW5hbFNpemUud2lkdGgrdH19LHc6ZnVuY3Rpb24oZSx0KXt2YXIgaT10aGlzLm9yaWdpbmFsU2l6ZSxzPXRoaXMub3JpZ2luYWxQb3NpdGlvbjtyZXR1cm57bGVmdDpzLmxlZnQrdCx3aWR0aDppLndpZHRoLXR9fSxuOmZ1bmN0aW9uKGUsdCxpKXt2YXIgcz10aGlzLm9yaWdpbmFsU2l6ZSxuPXRoaXMub3JpZ2luYWxQb3NpdGlvbjtyZXR1cm57dG9wOm4udG9wK2ksaGVpZ2h0OnMuaGVpZ2h0LWl9fSxzOmZ1bmN0aW9uKGUsdCxpKXtyZXR1cm57aGVpZ2h0OnRoaXMub3JpZ2luYWxTaXplLmhlaWdodCtpfX0sc2U6ZnVuY3Rpb24odCxpLHMpe3JldHVybiBlLmV4dGVuZCh0aGlzLl9jaGFuZ2Uucy5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5fY2hhbmdlLmUuYXBwbHkodGhpcyxbdCxpLHNdKSl9LHN3OmZ1bmN0aW9uKHQsaSxzKXtyZXR1cm4gZS5leHRlbmQodGhpcy5fY2hhbmdlLnMuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuX2NoYW5nZS53LmFwcGx5KHRoaXMsW3QsaSxzXSkpfSxuZTpmdW5jdGlvbih0LGkscyl7cmV0dXJuIGUuZXh0ZW5kKHRoaXMuX2NoYW5nZS5uLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLl9jaGFuZ2UuZS5hcHBseSh0aGlzLFt0LGksc10pKX0sbnc6ZnVuY3Rpb24odCxpLHMpe3JldHVybiBlLmV4dGVuZCh0aGlzLl9jaGFuZ2Uubi5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5fY2hhbmdlLncuYXBwbHkodGhpcyxbdCxpLHNdKSl9fSxfcHJvcGFnYXRlOmZ1bmN0aW9uKHQsaSl7ZS51aS5wbHVnaW4uY2FsbCh0aGlzLHQsW2ksdGhpcy51aSgpXSksInJlc2l6ZSIhPT10JiZ0aGlzLl90cmlnZ2VyKHQsaSx0aGlzLnVpKCkpfSxwbHVnaW5zOnt9LHVpOmZ1bmN0aW9uKCl7cmV0dXJue29yaWdpbmFsRWxlbWVudDp0aGlzLm9yaWdpbmFsRWxlbWVudCxlbGVtZW50OnRoaXMuZWxlbWVudCxoZWxwZXI6dGhpcy5oZWxwZXIscG9zaXRpb246dGhpcy5wb3NpdGlvbixzaXplOnRoaXMuc2l6ZSxvcmlnaW5hbFNpemU6dGhpcy5vcmlnaW5hbFNpemUsb3JpZ2luYWxQb3NpdGlvbjp0aGlzLm9yaWdpbmFsUG9zaXRpb259fX0pLGUudWkucGx1Z2luLmFkZCgicmVzaXphYmxlIiwiYW5pbWF0ZSIse3N0b3A6ZnVuY3Rpb24odCl7dmFyIGk9ZSh0aGlzKS5yZXNpemFibGUoImluc3RhbmNlIikscz1pLm9wdGlvbnMsbj1pLl9wcm9wb3J0aW9uYWxseVJlc2l6ZUVsZW1lbnRzLGE9bi5sZW5ndGgmJi90ZXh0YXJlYS9pLnRlc3QoblswXS5ub2RlTmFtZSksbz1hJiZpLl9oYXNTY3JvbGwoblswXSwibGVmdCIpPzA6aS5zaXplRGlmZi5oZWlnaHQscj1hPzA6aS5zaXplRGlmZi53aWR0aCxoPXt3aWR0aDppLnNpemUud2lkdGgtcixoZWlnaHQ6aS5zaXplLmhlaWdodC1vfSxsPXBhcnNlSW50KGkuZWxlbWVudC5jc3MoImxlZnQiKSwxMCkrKGkucG9zaXRpb24ubGVmdC1pLm9yaWdpbmFsUG9zaXRpb24ubGVmdCl8fG51bGwsdT1wYXJzZUludChpLmVsZW1lbnQuY3NzKCJ0b3AiKSwxMCkrKGkucG9zaXRpb24udG9wLWkub3JpZ2luYWxQb3NpdGlvbi50b3ApfHxudWxsO2kuZWxlbWVudC5hbmltYXRlKGUuZXh0ZW5kKGgsdSYmbD97dG9wOnUsbGVmdDpsfTp7fSkse2R1cmF0aW9uOnMuYW5pbWF0ZUR1cmF0aW9uLGVhc2luZzpzLmFuaW1hdGVFYXNpbmcsc3RlcDpmdW5jdGlvbigpe3ZhciBzPXt3aWR0aDpwYXJzZUludChpLmVsZW1lbnQuY3NzKCJ3aWR0aCIpLDEwKSxoZWlnaHQ6cGFyc2VJbnQoaS5lbGVtZW50LmNzcygiaGVpZ2h0IiksMTApLHRvcDpwYXJzZUludChpLmVsZW1lbnQuY3NzKCJ0b3AiKSwxMCksbGVmdDpwYXJzZUludChpLmVsZW1lbnQuY3NzKCJsZWZ0IiksMTApfTtuJiZuLmxlbmd0aCYmZShuWzBdKS5jc3Moe3dpZHRoOnMud2lkdGgsaGVpZ2h0OnMuaGVpZ2h0fSksaS5fdXBkYXRlQ2FjaGUocyksaS5fcHJvcGFnYXRlKCJyZXNpemUiLHQpfX0pfX0pLGUudWkucGx1Z2luLmFkZCgicmVzaXphYmxlIiwiY29udGFpbm1lbnQiLHtzdGFydDpmdW5jdGlvbigpe3ZhciB0LGkscyxuLGEsbyxyLGg9ZSh0aGlzKS5yZXNpemFibGUoImluc3RhbmNlIiksbD1oLm9wdGlvbnMsdT1oLmVsZW1lbnQsZD1sLmNvbnRhaW5tZW50LGM9ZCBpbnN0YW5jZW9mIGU/ZC5nZXQoMCk6L3BhcmVudC8udGVzdChkKT91LnBhcmVudCgpLmdldCgwKTpkO2MmJihoLmNvbnRhaW5lckVsZW1lbnQ9ZShjKSwvZG9jdW1lbnQvLnRlc3QoZCl8fGQ9PT1kb2N1bWVudD8oaC5jb250YWluZXJPZmZzZXQ9e2xlZnQ6MCx0b3A6MH0saC5jb250YWluZXJQb3NpdGlvbj17bGVmdDowLHRvcDowfSxoLnBhcmVudERhdGE9e2VsZW1lbnQ6ZShkb2N1bWVudCksbGVmdDowLHRvcDowLHdpZHRoOmUoZG9jdW1lbnQpLndpZHRoKCksaGVpZ2h0OmUoZG9jdW1lbnQpLmhlaWdodCgpfHxkb2N1bWVudC5ib2R5LnBhcmVudE5vZGUuc2Nyb2xsSGVpZ2h0fSk6KHQ9ZShjKSxpPVtdLGUoWyJUb3AiLCJSaWdodCIsIkxlZnQiLCJCb3R0b20iXSkuZWFjaChmdW5jdGlvbihlLHMpe2lbZV09aC5fbnVtKHQuY3NzKCJwYWRkaW5nIitzKSl9KSxoLmNvbnRhaW5lck9mZnNldD10Lm9mZnNldCgpLGguY29udGFpbmVyUG9zaXRpb249dC5wb3NpdGlvbigpLGguY29udGFpbmVyU2l6ZT17aGVpZ2h0OnQuaW5uZXJIZWlnaHQoKS1pWzNdLHdpZHRoOnQuaW5uZXJXaWR0aCgpLWlbMV19LHM9aC5jb250YWluZXJPZmZzZXQsbj1oLmNvbnRhaW5lclNpemUuaGVpZ2h0LGE9aC5jb250YWluZXJTaXplLndpZHRoLG89aC5faGFzU2Nyb2xsKGMsImxlZnQiKT9jLnNjcm9sbFdpZHRoOmEscj1oLl9oYXNTY3JvbGwoYyk/Yy5zY3JvbGxIZWlnaHQ6bixoLnBhcmVudERhdGE9e2VsZW1lbnQ6YyxsZWZ0OnMubGVmdCx0b3A6cy50b3Asd2lkdGg6byxoZWlnaHQ6cn0pKX0scmVzaXplOmZ1bmN0aW9uKHQpe3ZhciBpLHMsbixhLG89ZSh0aGlzKS5yZXNpemFibGUoImluc3RhbmNlIikscj1vLm9wdGlvbnMsaD1vLmNvbnRhaW5lck9mZnNldCxsPW8ucG9zaXRpb24sdT1vLl9hc3BlY3RSYXRpb3x8dC5zaGlmdEtleSxkPXt0b3A6MCxsZWZ0OjB9LGM9by5jb250YWluZXJFbGVtZW50LHA9ITA7Y1swXSE9PWRvY3VtZW50JiYvc3RhdGljLy50ZXN0KGMuY3NzKCJwb3NpdGlvbiIpKSYmKGQ9aCksbC5sZWZ0PChvLl9oZWxwZXI/aC5sZWZ0OjApJiYoby5zaXplLndpZHRoPW8uc2l6ZS53aWR0aCsoby5faGVscGVyP28ucG9zaXRpb24ubGVmdC1oLmxlZnQ6by5wb3NpdGlvbi5sZWZ0LWQubGVmdCksdSYmKG8uc2l6ZS5oZWlnaHQ9by5zaXplLndpZHRoL28uYXNwZWN0UmF0aW8scD0hMSksby5wb3NpdGlvbi5sZWZ0PXIuaGVscGVyP2gubGVmdDowKSxsLnRvcDwoby5faGVscGVyP2gudG9wOjApJiYoby5zaXplLmhlaWdodD1vLnNpemUuaGVpZ2h0KyhvLl9oZWxwZXI/by5wb3NpdGlvbi50b3AtaC50b3A6by5wb3NpdGlvbi50b3ApLHUmJihvLnNpemUud2lkdGg9by5zaXplLmhlaWdodCpvLmFzcGVjdFJhdGlvLHA9ITEpLG8ucG9zaXRpb24udG9wPW8uX2hlbHBlcj9oLnRvcDowKSxuPW8uY29udGFpbmVyRWxlbWVudC5nZXQoMCk9PT1vLmVsZW1lbnQucGFyZW50KCkuZ2V0KDApLGE9L3JlbGF0aXZlfGFic29sdXRlLy50ZXN0KG8uY29udGFpbmVyRWxlbWVudC5jc3MoInBvc2l0aW9uIikpLG4mJmE/KG8ub2Zmc2V0LmxlZnQ9by5wYXJlbnREYXRhLmxlZnQrby5wb3NpdGlvbi5sZWZ0LG8ub2Zmc2V0LnRvcD1vLnBhcmVudERhdGEudG9wK28ucG9zaXRpb24udG9wKTooby5vZmZzZXQubGVmdD1vLmVsZW1lbnQub2Zmc2V0KCkubGVmdCxvLm9mZnNldC50b3A9by5lbGVtZW50Lm9mZnNldCgpLnRvcCksaT1NYXRoLmFicyhvLnNpemVEaWZmLndpZHRoKyhvLl9oZWxwZXI/by5vZmZzZXQubGVmdC1kLmxlZnQ6by5vZmZzZXQubGVmdC1oLmxlZnQpKSxzPU1hdGguYWJzKG8uc2l6ZURpZmYuaGVpZ2h0KyhvLl9oZWxwZXI/by5vZmZzZXQudG9wLWQudG9wOm8ub2Zmc2V0LnRvcC1oLnRvcCkpLGkrby5zaXplLndpZHRoPj1vLnBhcmVudERhdGEud2lkdGgmJihvLnNpemUud2lkdGg9by5wYXJlbnREYXRhLndpZHRoLWksdSYmKG8uc2l6ZS5oZWlnaHQ9by5zaXplLndpZHRoL28uYXNwZWN0UmF0aW8scD0hMSkpLHMrby5zaXplLmhlaWdodD49by5wYXJlbnREYXRhLmhlaWdodCYmKG8uc2l6ZS5oZWlnaHQ9by5wYXJlbnREYXRhLmhlaWdodC1zLHUmJihvLnNpemUud2lkdGg9by5zaXplLmhlaWdodCpvLmFzcGVjdFJhdGlvLHA9ITEpKSxwfHwoby5wb3NpdGlvbi5sZWZ0PW8ucHJldlBvc2l0aW9uLmxlZnQsby5wb3NpdGlvbi50b3A9by5wcmV2UG9zaXRpb24udG9wLG8uc2l6ZS53aWR0aD1vLnByZXZTaXplLndpZHRoLG8uc2l6ZS5oZWlnaHQ9by5wcmV2U2l6ZS5oZWlnaHQpfSxzdG9wOmZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKS5yZXNpemFibGUoImluc3RhbmNlIiksaT10Lm9wdGlvbnMscz10LmNvbnRhaW5lck9mZnNldCxuPXQuY29udGFpbmVyUG9zaXRpb24sYT10LmNvbnRhaW5lckVsZW1lbnQsbz1lKHQuaGVscGVyKSxyPW8ub2Zmc2V0KCksaD1vLm91dGVyV2lkdGgoKS10LnNpemVEaWZmLndpZHRoLGw9by5vdXRlckhlaWdodCgpLXQuc2l6ZURpZmYuaGVpZ2h0O3QuX2hlbHBlciYmIWkuYW5pbWF0ZSYmL3JlbGF0aXZlLy50ZXN0KGEuY3NzKCJwb3NpdGlvbiIpKSYmZSh0aGlzKS5jc3Moe2xlZnQ6ci5sZWZ0LW4ubGVmdC1zLmxlZnQsd2lkdGg6aCxoZWlnaHQ6bH0pLHQuX2hlbHBlciYmIWkuYW5pbWF0ZSYmL3N0YXRpYy8udGVzdChhLmNzcygicG9zaXRpb24iKSkmJmUodGhpcykuY3NzKHtsZWZ0OnIubGVmdC1uLmxlZnQtcy5sZWZ0LHdpZHRoOmgsaGVpZ2h0Omx9KX19KSxlLnVpLnBsdWdpbi5hZGQoInJlc2l6YWJsZSIsImFsc29SZXNpemUiLHtzdGFydDpmdW5jdGlvbigpe3ZhciB0PWUodGhpcykucmVzaXphYmxlKCJpbnN0YW5jZSIpLGk9dC5vcHRpb25zO2UoaS5hbHNvUmVzaXplKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKTt0LmRhdGEoInVpLXJlc2l6YWJsZS1hbHNvcmVzaXplIix7d2lkdGg6cGFyc2VJbnQodC53aWR0aCgpLDEwKSxoZWlnaHQ6cGFyc2VJbnQodC5oZWlnaHQoKSwxMCksbGVmdDpwYXJzZUludCh0LmNzcygibGVmdCIpLDEwKSx0b3A6cGFyc2VJbnQodC5jc3MoInRvcCIpLDEwKX0pfSl9LHJlc2l6ZTpmdW5jdGlvbih0LGkpe3ZhciBzPWUodGhpcykucmVzaXphYmxlKCJpbnN0YW5jZSIpLG49cy5vcHRpb25zLGE9cy5vcmlnaW5hbFNpemUsbz1zLm9yaWdpbmFsUG9zaXRpb24scj17aGVpZ2h0OnMuc2l6ZS5oZWlnaHQtYS5oZWlnaHR8fDAsd2lkdGg6cy5zaXplLndpZHRoLWEud2lkdGh8fDAsdG9wOnMucG9zaXRpb24udG9wLW8udG9wfHwwLGxlZnQ6cy5wb3NpdGlvbi5sZWZ0LW8ubGVmdHx8MH07ZShuLmFsc29SZXNpemUpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLHM9ZSh0aGlzKS5kYXRhKCJ1aS1yZXNpemFibGUtYWxzb3Jlc2l6ZSIpLG49e30sYT10LnBhcmVudHMoaS5vcmlnaW5hbEVsZW1lbnRbMF0pLmxlbmd0aD9bIndpZHRoIiwiaGVpZ2h0Il06WyJ3aWR0aCIsImhlaWdodCIsInRvcCIsImxlZnQiXTtlLmVhY2goYSxmdW5jdGlvbihlLHQpe3ZhciBpPShzW3RdfHwwKSsoclt0XXx8MCk7aSYmaT49MCYmKG5bdF09aXx8bnVsbCl9KSx0LmNzcyhuKX0pfSxzdG9wOmZ1bmN0aW9uKCl7ZSh0aGlzKS5yZW1vdmVEYXRhKCJyZXNpemFibGUtYWxzb3Jlc2l6ZSIpfX0pLGUudWkucGx1Z2luLmFkZCgicmVzaXphYmxlIiwiZ2hvc3QiLHtzdGFydDpmdW5jdGlvbigpe3ZhciB0PWUodGhpcykucmVzaXphYmxlKCJpbnN0YW5jZSIpLGk9dC5vcHRpb25zLHM9dC5zaXplO3QuZ2hvc3Q9dC5vcmlnaW5hbEVsZW1lbnQuY2xvbmUoKSx0Lmdob3N0LmNzcyh7b3BhY2l0eTouMjUsZGlzcGxheToiYmxvY2siLHBvc2l0aW9uOiJyZWxhdGl2ZSIsaGVpZ2h0OnMuaGVpZ2h0LHdpZHRoOnMud2lkdGgsbWFyZ2luOjAsbGVmdDowLHRvcDowfSkuYWRkQ2xhc3MoInVpLXJlc2l6YWJsZS1naG9zdCIpLmFkZENsYXNzKCJzdHJpbmciPT10eXBlb2YgaS5naG9zdD9pLmdob3N0OiIiKSx0Lmdob3N0LmFwcGVuZFRvKHQuaGVscGVyKX0scmVzaXplOmZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKS5yZXNpemFibGUoImluc3RhbmNlIik7dC5naG9zdCYmdC5naG9zdC5jc3Moe3Bvc2l0aW9uOiJyZWxhdGl2ZSIsaGVpZ2h0OnQuc2l6ZS5oZWlnaHQsd2lkdGg6dC5zaXplLndpZHRofSl9LHN0b3A6ZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLnJlc2l6YWJsZSgiaW5zdGFuY2UiKTt0Lmdob3N0JiZ0LmhlbHBlciYmdC5oZWxwZXIuZ2V0KDApLnJlbW92ZUNoaWxkKHQuZ2hvc3QuZ2V0KDApKX19KSxlLnVpLnBsdWdpbi5hZGQoInJlc2l6YWJsZSIsImdyaWQiLHtyZXNpemU6ZnVuY3Rpb24oKXt2YXIgdCxpPWUodGhpcykucmVzaXphYmxlKCJpbnN0YW5jZSIpLHM9aS5vcHRpb25zLG49aS5zaXplLGE9aS5vcmlnaW5hbFNpemUsbz1pLm9yaWdpbmFsUG9zaXRpb24scj1pLmF4aXMsaD0ibnVtYmVyIj09dHlwZW9mIHMuZ3JpZD9bcy5ncmlkLHMuZ3JpZF06cy5ncmlkLGw9aFswXXx8MSx1PWhbMV18fDEsZD1NYXRoLnJvdW5kKChuLndpZHRoLWEud2lkdGgpL2wpKmwsYz1NYXRoLnJvdW5kKChuLmhlaWdodC1hLmhlaWdodCkvdSkqdSxwPWEud2lkdGgrZCxmPWEuaGVpZ2h0K2MsbT1zLm1heFdpZHRoJiZwPnMubWF4V2lkdGgsZz1zLm1heEhlaWdodCYmZj5zLm1heEhlaWdodCx2PXMubWluV2lkdGgmJnMubWluV2lkdGg+cCx5PXMubWluSGVpZ2h0JiZzLm1pbkhlaWdodD5mO3MuZ3JpZD1oLHYmJihwKz1sKSx5JiYoZis9dSksbSYmKHAtPWwpLGcmJihmLT11KSwvXihzZXxzfGUpJC8udGVzdChyKT8oaS5zaXplLndpZHRoPXAsaS5zaXplLmhlaWdodD1mKTovXihuZSkkLy50ZXN0KHIpPyhpLnNpemUud2lkdGg9cCxpLnNpemUuaGVpZ2h0PWYsaS5wb3NpdGlvbi50b3A9by50b3AtYyk6L14oc3cpJC8udGVzdChyKT8oaS5zaXplLndpZHRoPXAsaS5zaXplLmhlaWdodD1mLGkucG9zaXRpb24ubGVmdD1vLmxlZnQtZCk6KCgwPj1mLXV8fDA+PXAtbCkmJih0PWkuX2dldFBhZGRpbmdQbHVzQm9yZGVyRGltZW5zaW9ucyh0aGlzKSksZi11PjA/KGkuc2l6ZS5oZWlnaHQ9ZixpLnBvc2l0aW9uLnRvcD1vLnRvcC1jKTooZj11LXQuaGVpZ2h0LGkuc2l6ZS5oZWlnaHQ9ZixpLnBvc2l0aW9uLnRvcD1vLnRvcCthLmhlaWdodC1mKSxwLWw+MD8oaS5zaXplLndpZHRoPXAsaS5wb3NpdGlvbi5sZWZ0PW8ubGVmdC1kKToocD1sLXQud2lkdGgsaS5zaXplLndpZHRoPXAsaS5wb3NpdGlvbi5sZWZ0PW8ubGVmdCthLndpZHRoLXApKX19KSxlLnVpLnJlc2l6YWJsZSxlLndpZGdldCgidWkuZGlhbG9nIix7dmVyc2lvbjoiMS4xMS40IixvcHRpb25zOnthcHBlbmRUbzoiYm9keSIsYXV0b09wZW46ITAsYnV0dG9uczpbXSxjbG9zZU9uRXNjYXBlOiEwLGNsb3NlVGV4dDoiQ2xvc2UiLGRpYWxvZ0NsYXNzOiIiLGRyYWdnYWJsZTohMCxoaWRlOm51bGwsaGVpZ2h0OiJhdXRvIixtYXhIZWlnaHQ6bnVsbCxtYXhXaWR0aDpudWxsLG1pbkhlaWdodDoxNTAsbWluV2lkdGg6MTUwLG1vZGFsOiExLHBvc2l0aW9uOntteToiY2VudGVyIixhdDoiY2VudGVyIixvZjp3aW5kb3csY29sbGlzaW9uOiJmaXQiLHVzaW5nOmZ1bmN0aW9uKHQpe3ZhciBpPWUodGhpcykuY3NzKHQpLm9mZnNldCgpLnRvcDswPmkmJmUodGhpcykuY3NzKCJ0b3AiLHQudG9wLWkpfX0scmVzaXphYmxlOiEwLHNob3c6bnVsbCx0aXRsZTpudWxsLHdpZHRoOjMwMCxiZWZvcmVDbG9zZTpudWxsLGNsb3NlOm51bGwsZHJhZzpudWxsLGRyYWdTdGFydDpudWxsLGRyYWdTdG9wOm51bGwsZm9jdXM6bnVsbCxvcGVuOm51bGwscmVzaXplOm51bGwscmVzaXplU3RhcnQ6bnVsbCxyZXNpemVTdG9wOm51bGx9LHNpemVSZWxhdGVkT3B0aW9uczp7YnV0dG9uczohMCxoZWlnaHQ6ITAsbWF4SGVpZ2h0OiEwLG1heFdpZHRoOiEwLG1pbkhlaWdodDohMCxtaW5XaWR0aDohMCx3aWR0aDohMH0scmVzaXphYmxlUmVsYXRlZE9wdGlvbnM6e21heEhlaWdodDohMCxtYXhXaWR0aDohMCxtaW5IZWlnaHQ6ITAsbWluV2lkdGg6ITB9LF9jcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLm9yaWdpbmFsQ3NzPXtkaXNwbGF5OnRoaXMuZWxlbWVudFswXS5zdHlsZS5kaXNwbGF5LHdpZHRoOnRoaXMuZWxlbWVudFswXS5zdHlsZS53aWR0aCxtaW5IZWlnaHQ6dGhpcy5lbGVtZW50WzBdLnN0eWxlLm1pbkhlaWdodCxtYXhIZWlnaHQ6dGhpcy5lbGVtZW50WzBdLnN0eWxlLm1heEhlaWdodCxoZWlnaHQ6dGhpcy5lbGVtZW50WzBdLnN0eWxlLmhlaWdodH0sdGhpcy5vcmlnaW5hbFBvc2l0aW9uPXtwYXJlbnQ6dGhpcy5lbGVtZW50LnBhcmVudCgpLGluZGV4OnRoaXMuZWxlbWVudC5wYXJlbnQoKS5jaGlsZHJlbigpLmluZGV4KHRoaXMuZWxlbWVudCl9LHRoaXMub3JpZ2luYWxUaXRsZT10aGlzLmVsZW1lbnQuYXR0cigidGl0bGUiKSx0aGlzLm9wdGlvbnMudGl0bGU9dGhpcy5vcHRpb25zLnRpdGxlfHx0aGlzLm9yaWdpbmFsVGl0bGUsdGhpcy5fY3JlYXRlV3JhcHBlcigpLHRoaXMuZWxlbWVudC5zaG93KCkucmVtb3ZlQXR0cigidGl0bGUiKS5hZGRDbGFzcygidWktZGlhbG9nLWNvbnRlbnQgdWktd2lkZ2V0LWNvbnRlbnQiKS5hcHBlbmRUbyh0aGlzLnVpRGlhbG9nKSx0aGlzLl9jcmVhdGVUaXRsZWJhcigpLHRoaXMuX2NyZWF0ZUJ1dHRvblBhbmUoKSx0aGlzLm9wdGlvbnMuZHJhZ2dhYmxlJiZlLmZuLmRyYWdnYWJsZSYmdGhpcy5fbWFrZURyYWdnYWJsZSgpLHRoaXMub3B0aW9ucy5yZXNpemFibGUmJmUuZm4ucmVzaXphYmxlJiZ0aGlzLl9tYWtlUmVzaXphYmxlKCksdGhpcy5faXNPcGVuPSExLHRoaXMuX3RyYWNrRm9jdXMoKX0sX2luaXQ6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMuYXV0b09wZW4mJnRoaXMub3BlbigpfSxfYXBwZW5kVG86ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMuYXBwZW5kVG87cmV0dXJuIHQmJih0LmpxdWVyeXx8dC5ub2RlVHlwZSk/ZSh0KTp0aGlzLmRvY3VtZW50LmZpbmQodHx8ImJvZHkiKS5lcSgwKX0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt2YXIgZSx0PXRoaXMub3JpZ2luYWxQb3NpdGlvbjt0aGlzLl91bnRyYWNrSW5zdGFuY2UoKSx0aGlzLl9kZXN0cm95T3ZlcmxheSgpLHRoaXMuZWxlbWVudC5yZW1vdmVVbmlxdWVJZCgpLnJlbW92ZUNsYXNzKCJ1aS1kaWFsb2ctY29udGVudCB1aS13aWRnZXQtY29udGVudCIpLmNzcyh0aGlzLm9yaWdpbmFsQ3NzKS5kZXRhY2goKSx0aGlzLnVpRGlhbG9nLnN0b3AoITAsITApLnJlbW92ZSgpLHRoaXMub3JpZ2luYWxUaXRsZSYmdGhpcy5lbGVtZW50LmF0dHIoInRpdGxlIix0aGlzLm9yaWdpbmFsVGl0bGUpLGU9dC5wYXJlbnQuY2hpbGRyZW4oKS5lcSh0LmluZGV4KSxlLmxlbmd0aCYmZVswXSE9PXRoaXMuZWxlbWVudFswXT9lLmJlZm9yZSh0aGlzLmVsZW1lbnQpOnQucGFyZW50LmFwcGVuZCh0aGlzLmVsZW1lbnQpfSx3aWRnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy51aURpYWxvZ30sZGlzYWJsZTplLm5vb3AsZW5hYmxlOmUubm9vcCxjbG9zZTpmdW5jdGlvbih0KXt2YXIgaSxzPXRoaXM7aWYodGhpcy5faXNPcGVuJiZ0aGlzLl90cmlnZ2VyKCJiZWZvcmVDbG9zZSIsdCkhPT0hMSl7aWYodGhpcy5faXNPcGVuPSExLHRoaXMuX2ZvY3VzZWRFbGVtZW50PW51bGwsdGhpcy5fZGVzdHJveU92ZXJsYXkoKSx0aGlzLl91bnRyYWNrSW5zdGFuY2UoKSwhdGhpcy5vcGVuZXIuZmlsdGVyKCI6Zm9jdXNhYmxlIikuZm9jdXMoKS5sZW5ndGgpdHJ5e2k9dGhpcy5kb2N1bWVudFswXS5hY3RpdmVFbGVtZW50LGkmJiJib2R5IiE9PWkubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmZShpKS5ibHVyKCl9Y2F0Y2gobil7fXRoaXMuX2hpZGUodGhpcy51aURpYWxvZyx0aGlzLm9wdGlvbnMuaGlkZSxmdW5jdGlvbigpe3MuX3RyaWdnZXIoImNsb3NlIix0KX0pfX0saXNPcGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2lzT3Blbn0sbW92ZVRvVG9wOmZ1bmN0aW9uKCl7dGhpcy5fbW92ZVRvVG9wKCl9LF9tb3ZlVG9Ub3A6ZnVuY3Rpb24odCxpKXt2YXIgcz0hMSxuPXRoaXMudWlEaWFsb2cuc2libGluZ3MoIi51aS1mcm9udDp2aXNpYmxlIikubWFwKGZ1bmN0aW9uKCl7cmV0dXJuK2UodGhpcykuY3NzKCJ6LWluZGV4Iil9KS5nZXQoKSxhPU1hdGgubWF4LmFwcGx5KG51bGwsbik7cmV0dXJuIGE+PSt0aGlzLnVpRGlhbG9nLmNzcygiei1pbmRleCIpJiYodGhpcy51aURpYWxvZy5jc3MoInotaW5kZXgiLGErMSkscz0hMCkscyYmIWkmJnRoaXMuX3RyaWdnZXIoImZvY3VzIix0KSxzfSxvcGVuOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5faXNPcGVuPyh0aGlzLl9tb3ZlVG9Ub3AoKSYmdGhpcy5fZm9jdXNUYWJiYWJsZSgpLHZvaWQgMCk6KHRoaXMuX2lzT3Blbj0hMCx0aGlzLm9wZW5lcj1lKHRoaXMuZG9jdW1lbnRbMF0uYWN0aXZlRWxlbWVudCksdGhpcy5fc2l6ZSgpLHRoaXMuX3Bvc2l0aW9uKCksdGhpcy5fY3JlYXRlT3ZlcmxheSgpLHRoaXMuX21vdmVUb1RvcChudWxsLCEwKSx0aGlzLm92ZXJsYXkmJnRoaXMub3ZlcmxheS5jc3MoInotaW5kZXgiLHRoaXMudWlEaWFsb2cuY3NzKCJ6LWluZGV4IiktMSksdGhpcy5fc2hvdyh0aGlzLnVpRGlhbG9nLHRoaXMub3B0aW9ucy5zaG93LGZ1bmN0aW9uKCl7dC5fZm9jdXNUYWJiYWJsZSgpLHQuX3RyaWdnZXIoImZvY3VzIil9KSx0aGlzLl9tYWtlRm9jdXNUYXJnZXQoKSx0aGlzLl90cmlnZ2VyKCJvcGVuIiksdm9pZCAwKX0sX2ZvY3VzVGFiYmFibGU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9mb2N1c2VkRWxlbWVudDtlfHwoZT10aGlzLmVsZW1lbnQuZmluZCgiW2F1dG9mb2N1c10iKSksZS5sZW5ndGh8fChlPXRoaXMuZWxlbWVudC5maW5kKCI6dGFiYmFibGUiKSksZS5sZW5ndGh8fChlPXRoaXMudWlEaWFsb2dCdXR0b25QYW5lLmZpbmQoIjp0YWJiYWJsZSIpKSxlLmxlbmd0aHx8KGU9dGhpcy51aURpYWxvZ1RpdGxlYmFyQ2xvc2UuZmlsdGVyKCI6dGFiYmFibGUiKSksZS5sZW5ndGh8fChlPXRoaXMudWlEaWFsb2cpLGUuZXEoMCkuZm9jdXMoKX0sX2tlZXBGb2N1czpmdW5jdGlvbih0KXtmdW5jdGlvbiBpKCl7dmFyIHQ9dGhpcy5kb2N1bWVudFswXS5hY3RpdmVFbGVtZW50LGk9dGhpcy51aURpYWxvZ1swXT09PXR8fGUuY29udGFpbnModGhpcy51aURpYWxvZ1swXSx0KTtpfHx0aGlzLl9mb2N1c1RhYmJhYmxlKCl9dC5wcmV2ZW50RGVmYXVsdCgpLGkuY2FsbCh0aGlzKSx0aGlzLl9kZWxheShpKX0sX2NyZWF0ZVdyYXBwZXI6ZnVuY3Rpb24oKXt0aGlzLnVpRGlhbG9nPWUoIjxkaXY+IikuYWRkQ2xhc3MoInVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1mcm9udCAiK3RoaXMub3B0aW9ucy5kaWFsb2dDbGFzcykuaGlkZSgpLmF0dHIoe3RhYkluZGV4Oi0xLHJvbGU6ImRpYWxvZyJ9KS5hcHBlbmRUbyh0aGlzLl9hcHBlbmRUbygpKSx0aGlzLl9vbih0aGlzLnVpRGlhbG9nLHtrZXlkb3duOmZ1bmN0aW9uKHQpe2lmKHRoaXMub3B0aW9ucy5jbG9zZU9uRXNjYXBlJiYhdC5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmdC5rZXlDb2RlJiZ0LmtleUNvZGU9PT1lLnVpLmtleUNvZGUuRVNDQVBFKXJldHVybiB0LnByZXZlbnREZWZhdWx0KCksdGhpcy5jbG9zZSh0KSx2b2lkIDA7CmlmKHQua2V5Q29kZT09PWUudWkua2V5Q29kZS5UQUImJiF0LmlzRGVmYXVsdFByZXZlbnRlZCgpKXt2YXIgaT10aGlzLnVpRGlhbG9nLmZpbmQoIjp0YWJiYWJsZSIpLHM9aS5maWx0ZXIoIjpmaXJzdCIpLG49aS5maWx0ZXIoIjpsYXN0Iik7dC50YXJnZXQhPT1uWzBdJiZ0LnRhcmdldCE9PXRoaXMudWlEaWFsb2dbMF18fHQuc2hpZnRLZXk/dC50YXJnZXQhPT1zWzBdJiZ0LnRhcmdldCE9PXRoaXMudWlEaWFsb2dbMF18fCF0LnNoaWZ0S2V5fHwodGhpcy5fZGVsYXkoZnVuY3Rpb24oKXtuLmZvY3VzKCl9KSx0LnByZXZlbnREZWZhdWx0KCkpOih0aGlzLl9kZWxheShmdW5jdGlvbigpe3MuZm9jdXMoKX0pLHQucHJldmVudERlZmF1bHQoKSl9fSxtb3VzZWRvd246ZnVuY3Rpb24oZSl7dGhpcy5fbW92ZVRvVG9wKGUpJiZ0aGlzLl9mb2N1c1RhYmJhYmxlKCl9fSksdGhpcy5lbGVtZW50LmZpbmQoIlthcmlhLWRlc2NyaWJlZGJ5XSIpLmxlbmd0aHx8dGhpcy51aURpYWxvZy5hdHRyKHsiYXJpYS1kZXNjcmliZWRieSI6dGhpcy5lbGVtZW50LnVuaXF1ZUlkKCkuYXR0cigiaWQiKX0pfSxfY3JlYXRlVGl0bGViYXI6ZnVuY3Rpb24oKXt2YXIgdDt0aGlzLnVpRGlhbG9nVGl0bGViYXI9ZSgiPGRpdj4iKS5hZGRDbGFzcygidWktZGlhbG9nLXRpdGxlYmFyIHVpLXdpZGdldC1oZWFkZXIgdWktY29ybmVyLWFsbCB1aS1oZWxwZXItY2xlYXJmaXgiKS5wcmVwZW5kVG8odGhpcy51aURpYWxvZyksdGhpcy5fb24odGhpcy51aURpYWxvZ1RpdGxlYmFyLHttb3VzZWRvd246ZnVuY3Rpb24odCl7ZSh0LnRhcmdldCkuY2xvc2VzdCgiLnVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSIpfHx0aGlzLnVpRGlhbG9nLmZvY3VzKCl9fSksdGhpcy51aURpYWxvZ1RpdGxlYmFyQ2xvc2U9ZSgiPGJ1dHRvbiB0eXBlPSdidXR0b24nPjwvYnV0dG9uPiIpLmJ1dHRvbih7bGFiZWw6dGhpcy5vcHRpb25zLmNsb3NlVGV4dCxpY29uczp7cHJpbWFyeToidWktaWNvbi1jbG9zZXRoaWNrIn0sdGV4dDohMX0pLmFkZENsYXNzKCJ1aS1kaWFsb2ctdGl0bGViYXItY2xvc2UiKS5hcHBlbmRUbyh0aGlzLnVpRGlhbG9nVGl0bGViYXIpLHRoaXMuX29uKHRoaXMudWlEaWFsb2dUaXRsZWJhckNsb3NlLHtjbGljazpmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCksdGhpcy5jbG9zZShlKX19KSx0PWUoIjxzcGFuPiIpLnVuaXF1ZUlkKCkuYWRkQ2xhc3MoInVpLWRpYWxvZy10aXRsZSIpLnByZXBlbmRUbyh0aGlzLnVpRGlhbG9nVGl0bGViYXIpLHRoaXMuX3RpdGxlKHQpLHRoaXMudWlEaWFsb2cuYXR0cih7ImFyaWEtbGFiZWxsZWRieSI6dC5hdHRyKCJpZCIpfSl9LF90aXRsZTpmdW5jdGlvbihlKXt0aGlzLm9wdGlvbnMudGl0bGV8fGUuaHRtbCgiJiMxNjA7IiksZS50ZXh0KHRoaXMub3B0aW9ucy50aXRsZSl9LF9jcmVhdGVCdXR0b25QYW5lOmZ1bmN0aW9uKCl7dGhpcy51aURpYWxvZ0J1dHRvblBhbmU9ZSgiPGRpdj4iKS5hZGRDbGFzcygidWktZGlhbG9nLWJ1dHRvbnBhbmUgdWktd2lkZ2V0LWNvbnRlbnQgdWktaGVscGVyLWNsZWFyZml4IiksdGhpcy51aUJ1dHRvblNldD1lKCI8ZGl2PiIpLmFkZENsYXNzKCJ1aS1kaWFsb2ctYnV0dG9uc2V0IikuYXBwZW5kVG8odGhpcy51aURpYWxvZ0J1dHRvblBhbmUpLHRoaXMuX2NyZWF0ZUJ1dHRvbnMoKX0sX2NyZWF0ZUJ1dHRvbnM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGk9dGhpcy5vcHRpb25zLmJ1dHRvbnM7cmV0dXJuIHRoaXMudWlEaWFsb2dCdXR0b25QYW5lLnJlbW92ZSgpLHRoaXMudWlCdXR0b25TZXQuZW1wdHkoKSxlLmlzRW1wdHlPYmplY3QoaSl8fGUuaXNBcnJheShpKSYmIWkubGVuZ3RoPyh0aGlzLnVpRGlhbG9nLnJlbW92ZUNsYXNzKCJ1aS1kaWFsb2ctYnV0dG9ucyIpLHZvaWQgMCk6KGUuZWFjaChpLGZ1bmN0aW9uKGkscyl7dmFyIG4sYTtzPWUuaXNGdW5jdGlvbihzKT97Y2xpY2s6cyx0ZXh0Oml9OnMscz1lLmV4dGVuZCh7dHlwZToiYnV0dG9uIn0scyksbj1zLmNsaWNrLHMuY2xpY2s9ZnVuY3Rpb24oKXtuLmFwcGx5KHQuZWxlbWVudFswXSxhcmd1bWVudHMpfSxhPXtpY29uczpzLmljb25zLHRleHQ6cy5zaG93VGV4dH0sZGVsZXRlIHMuaWNvbnMsZGVsZXRlIHMuc2hvd1RleHQsZSgiPGJ1dHRvbj48L2J1dHRvbj4iLHMpLmJ1dHRvbihhKS5hcHBlbmRUbyh0LnVpQnV0dG9uU2V0KX0pLHRoaXMudWlEaWFsb2cuYWRkQ2xhc3MoInVpLWRpYWxvZy1idXR0b25zIiksdGhpcy51aURpYWxvZ0J1dHRvblBhbmUuYXBwZW5kVG8odGhpcy51aURpYWxvZyksdm9pZCAwKX0sX21ha2VEcmFnZ2FibGU6ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe3JldHVybntwb3NpdGlvbjplLnBvc2l0aW9uLG9mZnNldDplLm9mZnNldH19dmFyIGk9dGhpcyxzPXRoaXMub3B0aW9uczt0aGlzLnVpRGlhbG9nLmRyYWdnYWJsZSh7Y2FuY2VsOiIudWktZGlhbG9nLWNvbnRlbnQsIC51aS1kaWFsb2ctdGl0bGViYXItY2xvc2UiLGhhbmRsZToiLnVpLWRpYWxvZy10aXRsZWJhciIsY29udGFpbm1lbnQ6ImRvY3VtZW50IixzdGFydDpmdW5jdGlvbihzLG4pe2UodGhpcykuYWRkQ2xhc3MoInVpLWRpYWxvZy1kcmFnZ2luZyIpLGkuX2Jsb2NrRnJhbWVzKCksaS5fdHJpZ2dlcigiZHJhZ1N0YXJ0IixzLHQobikpfSxkcmFnOmZ1bmN0aW9uKGUscyl7aS5fdHJpZ2dlcigiZHJhZyIsZSx0KHMpKX0sc3RvcDpmdW5jdGlvbihuLGEpe3ZhciBvPWEub2Zmc2V0LmxlZnQtaS5kb2N1bWVudC5zY3JvbGxMZWZ0KCkscj1hLm9mZnNldC50b3AtaS5kb2N1bWVudC5zY3JvbGxUb3AoKTtzLnBvc2l0aW9uPXtteToibGVmdCB0b3AiLGF0OiJsZWZ0Iisobz49MD8iKyI6IiIpK28rIiAiKyJ0b3AiKyhyPj0wPyIrIjoiIikrcixvZjppLndpbmRvd30sZSh0aGlzKS5yZW1vdmVDbGFzcygidWktZGlhbG9nLWRyYWdnaW5nIiksaS5fdW5ibG9ja0ZyYW1lcygpLGkuX3RyaWdnZXIoImRyYWdTdG9wIixuLHQoYSkpfX0pfSxfbWFrZVJlc2l6YWJsZTpmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7cmV0dXJue29yaWdpbmFsUG9zaXRpb246ZS5vcmlnaW5hbFBvc2l0aW9uLG9yaWdpbmFsU2l6ZTplLm9yaWdpbmFsU2l6ZSxwb3NpdGlvbjplLnBvc2l0aW9uLHNpemU6ZS5zaXplfX12YXIgaT10aGlzLHM9dGhpcy5vcHRpb25zLG49cy5yZXNpemFibGUsYT10aGlzLnVpRGlhbG9nLmNzcygicG9zaXRpb24iKSxvPSJzdHJpbmciPT10eXBlb2Ygbj9uOiJuLGUscyx3LHNlLHN3LG5lLG53Ijt0aGlzLnVpRGlhbG9nLnJlc2l6YWJsZSh7Y2FuY2VsOiIudWktZGlhbG9nLWNvbnRlbnQiLGNvbnRhaW5tZW50OiJkb2N1bWVudCIsYWxzb1Jlc2l6ZTp0aGlzLmVsZW1lbnQsbWF4V2lkdGg6cy5tYXhXaWR0aCxtYXhIZWlnaHQ6cy5tYXhIZWlnaHQsbWluV2lkdGg6cy5taW5XaWR0aCxtaW5IZWlnaHQ6dGhpcy5fbWluSGVpZ2h0KCksaGFuZGxlczpvLHN0YXJ0OmZ1bmN0aW9uKHMsbil7ZSh0aGlzKS5hZGRDbGFzcygidWktZGlhbG9nLXJlc2l6aW5nIiksaS5fYmxvY2tGcmFtZXMoKSxpLl90cmlnZ2VyKCJyZXNpemVTdGFydCIscyx0KG4pKX0scmVzaXplOmZ1bmN0aW9uKGUscyl7aS5fdHJpZ2dlcigicmVzaXplIixlLHQocykpfSxzdG9wOmZ1bmN0aW9uKG4sYSl7dmFyIG89aS51aURpYWxvZy5vZmZzZXQoKSxyPW8ubGVmdC1pLmRvY3VtZW50LnNjcm9sbExlZnQoKSxoPW8udG9wLWkuZG9jdW1lbnQuc2Nyb2xsVG9wKCk7cy5oZWlnaHQ9aS51aURpYWxvZy5oZWlnaHQoKSxzLndpZHRoPWkudWlEaWFsb2cud2lkdGgoKSxzLnBvc2l0aW9uPXtteToibGVmdCB0b3AiLGF0OiJsZWZ0Iisocj49MD8iKyI6IiIpK3IrIiAiKyJ0b3AiKyhoPj0wPyIrIjoiIikraCxvZjppLndpbmRvd30sZSh0aGlzKS5yZW1vdmVDbGFzcygidWktZGlhbG9nLXJlc2l6aW5nIiksaS5fdW5ibG9ja0ZyYW1lcygpLGkuX3RyaWdnZXIoInJlc2l6ZVN0b3AiLG4sdChhKSl9fSkuY3NzKCJwb3NpdGlvbiIsYSl9LF90cmFja0ZvY3VzOmZ1bmN0aW9uKCl7dGhpcy5fb24odGhpcy53aWRnZXQoKSx7Zm9jdXNpbjpmdW5jdGlvbih0KXt0aGlzLl9tYWtlRm9jdXNUYXJnZXQoKSx0aGlzLl9mb2N1c2VkRWxlbWVudD1lKHQudGFyZ2V0KX19KX0sX21ha2VGb2N1c1RhcmdldDpmdW5jdGlvbigpe3RoaXMuX3VudHJhY2tJbnN0YW5jZSgpLHRoaXMuX3RyYWNraW5nSW5zdGFuY2VzKCkudW5zaGlmdCh0aGlzKX0sX3VudHJhY2tJbnN0YW5jZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX3RyYWNraW5nSW5zdGFuY2VzKCksaT1lLmluQXJyYXkodGhpcyx0KTstMSE9PWkmJnQuc3BsaWNlKGksMSl9LF90cmFja2luZ0luc3RhbmNlczpmdW5jdGlvbigpe3ZhciBlPXRoaXMuZG9jdW1lbnQuZGF0YSgidWktZGlhbG9nLWluc3RhbmNlcyIpO3JldHVybiBlfHwoZT1bXSx0aGlzLmRvY3VtZW50LmRhdGEoInVpLWRpYWxvZy1pbnN0YW5jZXMiLGUpKSxlfSxfbWluSGVpZ2h0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcHRpb25zO3JldHVybiJhdXRvIj09PWUuaGVpZ2h0P2UubWluSGVpZ2h0Ok1hdGgubWluKGUubWluSGVpZ2h0LGUuaGVpZ2h0KX0sX3Bvc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy51aURpYWxvZy5pcygiOnZpc2libGUiKTtlfHx0aGlzLnVpRGlhbG9nLnNob3coKSx0aGlzLnVpRGlhbG9nLnBvc2l0aW9uKHRoaXMub3B0aW9ucy5wb3NpdGlvbiksZXx8dGhpcy51aURpYWxvZy5oaWRlKCl9LF9zZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMscz0hMSxuPXt9O2UuZWFjaCh0LGZ1bmN0aW9uKGUsdCl7aS5fc2V0T3B0aW9uKGUsdCksZSBpbiBpLnNpemVSZWxhdGVkT3B0aW9ucyYmKHM9ITApLGUgaW4gaS5yZXNpemFibGVSZWxhdGVkT3B0aW9ucyYmKG5bZV09dCl9KSxzJiYodGhpcy5fc2l6ZSgpLHRoaXMuX3Bvc2l0aW9uKCkpLHRoaXMudWlEaWFsb2cuaXMoIjpkYXRhKHVpLXJlc2l6YWJsZSkiKSYmdGhpcy51aURpYWxvZy5yZXNpemFibGUoIm9wdGlvbiIsbil9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXt2YXIgaSxzLG49dGhpcy51aURpYWxvZzsiZGlhbG9nQ2xhc3MiPT09ZSYmbi5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMuZGlhbG9nQ2xhc3MpLmFkZENsYXNzKHQpLCJkaXNhYmxlZCIhPT1lJiYodGhpcy5fc3VwZXIoZSx0KSwiYXBwZW5kVG8iPT09ZSYmdGhpcy51aURpYWxvZy5hcHBlbmRUbyh0aGlzLl9hcHBlbmRUbygpKSwiYnV0dG9ucyI9PT1lJiZ0aGlzLl9jcmVhdGVCdXR0b25zKCksImNsb3NlVGV4dCI9PT1lJiZ0aGlzLnVpRGlhbG9nVGl0bGViYXJDbG9zZS5idXR0b24oe2xhYmVsOiIiK3R9KSwiZHJhZ2dhYmxlIj09PWUmJihpPW4uaXMoIjpkYXRhKHVpLWRyYWdnYWJsZSkiKSxpJiYhdCYmbi5kcmFnZ2FibGUoImRlc3Ryb3kiKSwhaSYmdCYmdGhpcy5fbWFrZURyYWdnYWJsZSgpKSwicG9zaXRpb24iPT09ZSYmdGhpcy5fcG9zaXRpb24oKSwicmVzaXphYmxlIj09PWUmJihzPW4uaXMoIjpkYXRhKHVpLXJlc2l6YWJsZSkiKSxzJiYhdCYmbi5yZXNpemFibGUoImRlc3Ryb3kiKSxzJiYic3RyaW5nIj09dHlwZW9mIHQmJm4ucmVzaXphYmxlKCJvcHRpb24iLCJoYW5kbGVzIix0KSxzfHx0PT09ITF8fHRoaXMuX21ha2VSZXNpemFibGUoKSksInRpdGxlIj09PWUmJnRoaXMuX3RpdGxlKHRoaXMudWlEaWFsb2dUaXRsZWJhci5maW5kKCIudWktZGlhbG9nLXRpdGxlIikpKX0sX3NpemU6ZnVuY3Rpb24oKXt2YXIgZSx0LGkscz10aGlzLm9wdGlvbnM7dGhpcy5lbGVtZW50LnNob3coKS5jc3Moe3dpZHRoOiJhdXRvIixtaW5IZWlnaHQ6MCxtYXhIZWlnaHQ6Im5vbmUiLGhlaWdodDowfSkscy5taW5XaWR0aD5zLndpZHRoJiYocy53aWR0aD1zLm1pbldpZHRoKSxlPXRoaXMudWlEaWFsb2cuY3NzKHtoZWlnaHQ6ImF1dG8iLHdpZHRoOnMud2lkdGh9KS5vdXRlckhlaWdodCgpLHQ9TWF0aC5tYXgoMCxzLm1pbkhlaWdodC1lKSxpPSJudW1iZXIiPT10eXBlb2Ygcy5tYXhIZWlnaHQ/TWF0aC5tYXgoMCxzLm1heEhlaWdodC1lKToibm9uZSIsImF1dG8iPT09cy5oZWlnaHQ/dGhpcy5lbGVtZW50LmNzcyh7bWluSGVpZ2h0OnQsbWF4SGVpZ2h0OmksaGVpZ2h0OiJhdXRvIn0pOnRoaXMuZWxlbWVudC5oZWlnaHQoTWF0aC5tYXgoMCxzLmhlaWdodC1lKSksdGhpcy51aURpYWxvZy5pcygiOmRhdGEodWktcmVzaXphYmxlKSIpJiZ0aGlzLnVpRGlhbG9nLnJlc2l6YWJsZSgib3B0aW9uIiwibWluSGVpZ2h0Iix0aGlzLl9taW5IZWlnaHQoKSl9LF9ibG9ja0ZyYW1lczpmdW5jdGlvbigpe3RoaXMuaWZyYW1lQmxvY2tzPXRoaXMuZG9jdW1lbnQuZmluZCgiaWZyYW1lIikubWFwKGZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKTtyZXR1cm4gZSgiPGRpdj4iKS5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsd2lkdGg6dC5vdXRlcldpZHRoKCksaGVpZ2h0OnQub3V0ZXJIZWlnaHQoKX0pLmFwcGVuZFRvKHQucGFyZW50KCkpLm9mZnNldCh0Lm9mZnNldCgpKVswXX0pfSxfdW5ibG9ja0ZyYW1lczpmdW5jdGlvbigpe3RoaXMuaWZyYW1lQmxvY2tzJiYodGhpcy5pZnJhbWVCbG9ja3MucmVtb3ZlKCksZGVsZXRlIHRoaXMuaWZyYW1lQmxvY2tzKX0sX2FsbG93SW50ZXJhY3Rpb246ZnVuY3Rpb24odCl7cmV0dXJuIGUodC50YXJnZXQpLmNsb3Nlc3QoIi51aS1kaWFsb2ciKS5sZW5ndGg/ITA6ISFlKHQudGFyZ2V0KS5jbG9zZXN0KCIudWktZGF0ZXBpY2tlciIpLmxlbmd0aH0sX2NyZWF0ZU92ZXJsYXk6ZnVuY3Rpb24oKXtpZih0aGlzLm9wdGlvbnMubW9kYWwpe3ZhciB0PSEwO3RoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7dD0hMX0pLHRoaXMuZG9jdW1lbnQuZGF0YSgidWktZGlhbG9nLW92ZXJsYXlzIil8fHRoaXMuX29uKHRoaXMuZG9jdW1lbnQse2ZvY3VzaW46ZnVuY3Rpb24oZSl7dHx8dGhpcy5fYWxsb3dJbnRlcmFjdGlvbihlKXx8KGUucHJldmVudERlZmF1bHQoKSx0aGlzLl90cmFja2luZ0luc3RhbmNlcygpWzBdLl9mb2N1c1RhYmJhYmxlKCkpfX0pLHRoaXMub3ZlcmxheT1lKCI8ZGl2PiIpLmFkZENsYXNzKCJ1aS13aWRnZXQtb3ZlcmxheSB1aS1mcm9udCIpLmFwcGVuZFRvKHRoaXMuX2FwcGVuZFRvKCkpLHRoaXMuX29uKHRoaXMub3ZlcmxheSx7bW91c2Vkb3duOiJfa2VlcEZvY3VzIn0pLHRoaXMuZG9jdW1lbnQuZGF0YSgidWktZGlhbG9nLW92ZXJsYXlzIiwodGhpcy5kb2N1bWVudC5kYXRhKCJ1aS1kaWFsb2ctb3ZlcmxheXMiKXx8MCkrMSl9fSxfZGVzdHJveU92ZXJsYXk6ZnVuY3Rpb24oKXtpZih0aGlzLm9wdGlvbnMubW9kYWwmJnRoaXMub3ZlcmxheSl7dmFyIGU9dGhpcy5kb2N1bWVudC5kYXRhKCJ1aS1kaWFsb2ctb3ZlcmxheXMiKS0xO2U/dGhpcy5kb2N1bWVudC5kYXRhKCJ1aS1kaWFsb2ctb3ZlcmxheXMiLGUpOnRoaXMuZG9jdW1lbnQudW5iaW5kKCJmb2N1c2luIikucmVtb3ZlRGF0YSgidWktZGlhbG9nLW92ZXJsYXlzIiksdGhpcy5vdmVybGF5LnJlbW92ZSgpLHRoaXMub3ZlcmxheT1udWxsfX19KSxlLndpZGdldCgidWkuZHJvcHBhYmxlIix7dmVyc2lvbjoiMS4xMS40Iix3aWRnZXRFdmVudFByZWZpeDoiZHJvcCIsb3B0aW9uczp7YWNjZXB0OiIqIixhY3RpdmVDbGFzczohMSxhZGRDbGFzc2VzOiEwLGdyZWVkeTohMSxob3ZlckNsYXNzOiExLHNjb3BlOiJkZWZhdWx0Iix0b2xlcmFuY2U6ImludGVyc2VjdCIsYWN0aXZhdGU6bnVsbCxkZWFjdGl2YXRlOm51bGwsZHJvcDpudWxsLG91dDpudWxsLG92ZXI6bnVsbH0sX2NyZWF0ZTpmdW5jdGlvbigpe3ZhciB0LGk9dGhpcy5vcHRpb25zLHM9aS5hY2NlcHQ7dGhpcy5pc292ZXI9ITEsdGhpcy5pc291dD0hMCx0aGlzLmFjY2VwdD1lLmlzRnVuY3Rpb24ocyk/czpmdW5jdGlvbihlKXtyZXR1cm4gZS5pcyhzKX0sdGhpcy5wcm9wb3J0aW9ucz1mdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PWFyZ3VtZW50c1swXSx2b2lkIDApOnQ/dDp0PXt3aWR0aDp0aGlzLmVsZW1lbnRbMF0ub2Zmc2V0V2lkdGgsaGVpZ2h0OnRoaXMuZWxlbWVudFswXS5vZmZzZXRIZWlnaHR9fSx0aGlzLl9hZGRUb01hbmFnZXIoaS5zY29wZSksaS5hZGRDbGFzc2VzJiZ0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLWRyb3BwYWJsZSIpfSxfYWRkVG9NYW5hZ2VyOmZ1bmN0aW9uKHQpe2UudWkuZGRtYW5hZ2VyLmRyb3BwYWJsZXNbdF09ZS51aS5kZG1hbmFnZXIuZHJvcHBhYmxlc1t0XXx8W10sZS51aS5kZG1hbmFnZXIuZHJvcHBhYmxlc1t0XS5wdXNoKHRoaXMpfSxfc3BsaWNlOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0wO2UubGVuZ3RoPnQ7dCsrKWVbdF09PT10aGlzJiZlLnNwbGljZSh0LDEpfSxfZGVzdHJveTpmdW5jdGlvbigpe3ZhciB0PWUudWkuZGRtYW5hZ2VyLmRyb3BwYWJsZXNbdGhpcy5vcHRpb25zLnNjb3BlXTt0aGlzLl9zcGxpY2UodCksdGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1kcm9wcGFibGUgdWktZHJvcHBhYmxlLWRpc2FibGVkIil9LF9zZXRPcHRpb246ZnVuY3Rpb24odCxpKXtpZigiYWNjZXB0Ij09PXQpdGhpcy5hY2NlcHQ9ZS5pc0Z1bmN0aW9uKGkpP2k6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuaXMoaSl9O2Vsc2UgaWYoInNjb3BlIj09PXQpe3ZhciBzPWUudWkuZGRtYW5hZ2VyLmRyb3BwYWJsZXNbdGhpcy5vcHRpb25zLnNjb3BlXTt0aGlzLl9zcGxpY2UocyksdGhpcy5fYWRkVG9NYW5hZ2VyKGkpfXRoaXMuX3N1cGVyKHQsaSl9LF9hY3RpdmF0ZTpmdW5jdGlvbih0KXt2YXIgaT1lLnVpLmRkbWFuYWdlci5jdXJyZW50O3RoaXMub3B0aW9ucy5hY3RpdmVDbGFzcyYmdGhpcy5lbGVtZW50LmFkZENsYXNzKHRoaXMub3B0aW9ucy5hY3RpdmVDbGFzcyksaSYmdGhpcy5fdHJpZ2dlcigiYWN0aXZhdGUiLHQsdGhpcy51aShpKSl9LF9kZWFjdGl2YXRlOmZ1bmN0aW9uKHQpe3ZhciBpPWUudWkuZGRtYW5hZ2VyLmN1cnJlbnQ7dGhpcy5vcHRpb25zLmFjdGl2ZUNsYXNzJiZ0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3ModGhpcy5vcHRpb25zLmFjdGl2ZUNsYXNzKSxpJiZ0aGlzLl90cmlnZ2VyKCJkZWFjdGl2YXRlIix0LHRoaXMudWkoaSkpfSxfb3ZlcjpmdW5jdGlvbih0KXt2YXIgaT1lLnVpLmRkbWFuYWdlci5jdXJyZW50O2kmJihpLmN1cnJlbnRJdGVtfHxpLmVsZW1lbnQpWzBdIT09dGhpcy5lbGVtZW50WzBdJiZ0aGlzLmFjY2VwdC5jYWxsKHRoaXMuZWxlbWVudFswXSxpLmN1cnJlbnRJdGVtfHxpLmVsZW1lbnQpJiYodGhpcy5vcHRpb25zLmhvdmVyQ2xhc3MmJnRoaXMuZWxlbWVudC5hZGRDbGFzcyh0aGlzLm9wdGlvbnMuaG92ZXJDbGFzcyksdGhpcy5fdHJpZ2dlcigib3ZlciIsdCx0aGlzLnVpKGkpKSl9LF9vdXQ6ZnVuY3Rpb24odCl7dmFyIGk9ZS51aS5kZG1hbmFnZXIuY3VycmVudDtpJiYoaS5jdXJyZW50SXRlbXx8aS5lbGVtZW50KVswXSE9PXRoaXMuZWxlbWVudFswXSYmdGhpcy5hY2NlcHQuY2FsbCh0aGlzLmVsZW1lbnRbMF0saS5jdXJyZW50SXRlbXx8aS5lbGVtZW50KSYmKHRoaXMub3B0aW9ucy5ob3ZlckNsYXNzJiZ0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3ModGhpcy5vcHRpb25zLmhvdmVyQ2xhc3MpLHRoaXMuX3RyaWdnZXIoIm91dCIsdCx0aGlzLnVpKGkpKSl9LF9kcm9wOmZ1bmN0aW9uKHQsaSl7dmFyIHM9aXx8ZS51aS5kZG1hbmFnZXIuY3VycmVudCxuPSExO3JldHVybiBzJiYocy5jdXJyZW50SXRlbXx8cy5lbGVtZW50KVswXSE9PXRoaXMuZWxlbWVudFswXT8odGhpcy5lbGVtZW50LmZpbmQoIjpkYXRhKHVpLWRyb3BwYWJsZSkiKS5ub3QoIi51aS1kcmFnZ2FibGUtZHJhZ2dpbmciKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGk9ZSh0aGlzKS5kcm9wcGFibGUoImluc3RhbmNlIik7cmV0dXJuIGkub3B0aW9ucy5ncmVlZHkmJiFpLm9wdGlvbnMuZGlzYWJsZWQmJmkub3B0aW9ucy5zY29wZT09PXMub3B0aW9ucy5zY29wZSYmaS5hY2NlcHQuY2FsbChpLmVsZW1lbnRbMF0scy5jdXJyZW50SXRlbXx8cy5lbGVtZW50KSYmZS51aS5pbnRlcnNlY3QocyxlLmV4dGVuZChpLHtvZmZzZXQ6aS5lbGVtZW50Lm9mZnNldCgpfSksaS5vcHRpb25zLnRvbGVyYW5jZSx0KT8obj0hMCwhMSk6dm9pZCAwfSksbj8hMTp0aGlzLmFjY2VwdC5jYWxsKHRoaXMuZWxlbWVudFswXSxzLmN1cnJlbnRJdGVtfHxzLmVsZW1lbnQpPyh0aGlzLm9wdGlvbnMuYWN0aXZlQ2xhc3MmJnRoaXMuZWxlbWVudC5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMuYWN0aXZlQ2xhc3MpLHRoaXMub3B0aW9ucy5ob3ZlckNsYXNzJiZ0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3ModGhpcy5vcHRpb25zLmhvdmVyQ2xhc3MpLHRoaXMuX3RyaWdnZXIoImRyb3AiLHQsdGhpcy51aShzKSksdGhpcy5lbGVtZW50KTohMSk6ITF9LHVpOmZ1bmN0aW9uKGUpe3JldHVybntkcmFnZ2FibGU6ZS5jdXJyZW50SXRlbXx8ZS5lbGVtZW50LGhlbHBlcjplLmhlbHBlcixwb3NpdGlvbjplLnBvc2l0aW9uLG9mZnNldDplLnBvc2l0aW9uQWJzfX19KSxlLnVpLmludGVyc2VjdD1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSx0LGkpe3JldHVybiBlPj10JiZ0K2k+ZX1yZXR1cm4gZnVuY3Rpb24odCxpLHMsbil7aWYoIWkub2Zmc2V0KXJldHVybiExO3ZhciBhPSh0LnBvc2l0aW9uQWJzfHx0LnBvc2l0aW9uLmFic29sdXRlKS5sZWZ0K3QubWFyZ2lucy5sZWZ0LG89KHQucG9zaXRpb25BYnN8fHQucG9zaXRpb24uYWJzb2x1dGUpLnRvcCt0Lm1hcmdpbnMudG9wLHI9YSt0LmhlbHBlclByb3BvcnRpb25zLndpZHRoLGg9byt0LmhlbHBlclByb3BvcnRpb25zLmhlaWdodCxsPWkub2Zmc2V0LmxlZnQsdT1pLm9mZnNldC50b3AsZD1sK2kucHJvcG9ydGlvbnMoKS53aWR0aCxjPXUraS5wcm9wb3J0aW9ucygpLmhlaWdodDtzd2l0Y2gocyl7Y2FzZSJmaXQiOnJldHVybiBhPj1sJiZkPj1yJiZvPj11JiZjPj1oO2Nhc2UiaW50ZXJzZWN0IjpyZXR1cm4gYSt0LmhlbHBlclByb3BvcnRpb25zLndpZHRoLzI+bCYmZD5yLXQuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgvMiYmbyt0LmhlbHBlclByb3BvcnRpb25zLmhlaWdodC8yPnUmJmM+aC10LmhlbHBlclByb3BvcnRpb25zLmhlaWdodC8yO2Nhc2UicG9pbnRlciI6cmV0dXJuIGUobi5wYWdlWSx1LGkucHJvcG9ydGlvbnMoKS5oZWlnaHQpJiZlKG4ucGFnZVgsbCxpLnByb3BvcnRpb25zKCkud2lkdGgpO2Nhc2UidG91Y2giOnJldHVybihvPj11JiZjPj1vfHxoPj11JiZjPj1ofHx1Pm8mJmg+YykmJihhPj1sJiZkPj1hfHxyPj1sJiZkPj1yfHxsPmEmJnI+ZCk7ZGVmYXVsdDpyZXR1cm4hMX19fSgpLGUudWkuZGRtYW5hZ2VyPXtjdXJyZW50Om51bGwsZHJvcHBhYmxlczp7ImRlZmF1bHQiOltdfSxwcmVwYXJlT2Zmc2V0czpmdW5jdGlvbih0LGkpe3ZhciBzLG4sYT1lLnVpLmRkbWFuYWdlci5kcm9wcGFibGVzW3Qub3B0aW9ucy5zY29wZV18fFtdLG89aT9pLnR5cGU6bnVsbCxyPSh0LmN1cnJlbnRJdGVtfHx0LmVsZW1lbnQpLmZpbmQoIjpkYXRhKHVpLWRyb3BwYWJsZSkiKS5hZGRCYWNrKCk7ZTpmb3Iocz0wO2EubGVuZ3RoPnM7cysrKWlmKCEoYVtzXS5vcHRpb25zLmRpc2FibGVkfHx0JiYhYVtzXS5hY2NlcHQuY2FsbChhW3NdLmVsZW1lbnRbMF0sdC5jdXJyZW50SXRlbXx8dC5lbGVtZW50KSkpe2ZvcihuPTA7ci5sZW5ndGg+bjtuKyspaWYocltuXT09PWFbc10uZWxlbWVudFswXSl7YVtzXS5wcm9wb3J0aW9ucygpLmhlaWdodD0wO2NvbnRpbnVlIGV9YVtzXS52aXNpYmxlPSJub25lIiE9PWFbc10uZWxlbWVudC5jc3MoImRpc3BsYXkiKSxhW3NdLnZpc2libGUmJigibW91c2Vkb3duIj09PW8mJmFbc10uX2FjdGl2YXRlLmNhbGwoYVtzXSxpKSxhW3NdLm9mZnNldD1hW3NdLmVsZW1lbnQub2Zmc2V0KCksYVtzXS5wcm9wb3J0aW9ucyh7d2lkdGg6YVtzXS5lbGVtZW50WzBdLm9mZnNldFdpZHRoLGhlaWdodDphW3NdLmVsZW1lbnRbMF0ub2Zmc2V0SGVpZ2h0fSkpfX0sZHJvcDpmdW5jdGlvbih0LGkpe3ZhciBzPSExO3JldHVybiBlLmVhY2goKGUudWkuZGRtYW5hZ2VyLmRyb3BwYWJsZXNbdC5vcHRpb25zLnNjb3BlXXx8W10pLnNsaWNlKCksZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMmJighdGhpcy5vcHRpb25zLmRpc2FibGVkJiZ0aGlzLnZpc2libGUmJmUudWkuaW50ZXJzZWN0KHQsdGhpcyx0aGlzLm9wdGlvbnMudG9sZXJhbmNlLGkpJiYocz10aGlzLl9kcm9wLmNhbGwodGhpcyxpKXx8cyksIXRoaXMub3B0aW9ucy5kaXNhYmxlZCYmdGhpcy52aXNpYmxlJiZ0aGlzLmFjY2VwdC5jYWxsKHRoaXMuZWxlbWVudFswXSx0LmN1cnJlbnRJdGVtfHx0LmVsZW1lbnQpJiYodGhpcy5pc291dD0hMCx0aGlzLmlzb3Zlcj0hMSx0aGlzLl9kZWFjdGl2YXRlLmNhbGwodGhpcyxpKSkpfSksc30sZHJhZ1N0YXJ0OmZ1bmN0aW9uKHQsaSl7dC5lbGVtZW50LnBhcmVudHNVbnRpbCgiYm9keSIpLmJpbmQoInNjcm9sbC5kcm9wcGFibGUiLGZ1bmN0aW9uKCl7dC5vcHRpb25zLnJlZnJlc2hQb3NpdGlvbnN8fGUudWkuZGRtYW5hZ2VyLnByZXBhcmVPZmZzZXRzKHQsaSl9KX0sZHJhZzpmdW5jdGlvbih0LGkpe3Qub3B0aW9ucy5yZWZyZXNoUG9zaXRpb25zJiZlLnVpLmRkbWFuYWdlci5wcmVwYXJlT2Zmc2V0cyh0LGkpLGUuZWFjaChlLnVpLmRkbWFuYWdlci5kcm9wcGFibGVzW3Qub3B0aW9ucy5zY29wZV18fFtdLGZ1bmN0aW9uKCl7aWYoIXRoaXMub3B0aW9ucy5kaXNhYmxlZCYmIXRoaXMuZ3JlZWR5Q2hpbGQmJnRoaXMudmlzaWJsZSl7dmFyIHMsbixhLG89ZS51aS5pbnRlcnNlY3QodCx0aGlzLHRoaXMub3B0aW9ucy50b2xlcmFuY2UsaSkscj0hbyYmdGhpcy5pc292ZXI/Imlzb3V0IjpvJiYhdGhpcy5pc292ZXI/Imlzb3ZlciI6bnVsbDtyJiYodGhpcy5vcHRpb25zLmdyZWVkeSYmKG49dGhpcy5vcHRpb25zLnNjb3BlLGE9dGhpcy5lbGVtZW50LnBhcmVudHMoIjpkYXRhKHVpLWRyb3BwYWJsZSkiKS5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gZSh0aGlzKS5kcm9wcGFibGUoImluc3RhbmNlIikub3B0aW9ucy5zY29wZT09PW59KSxhLmxlbmd0aCYmKHM9ZShhWzBdKS5kcm9wcGFibGUoImluc3RhbmNlIikscy5ncmVlZHlDaGlsZD0iaXNvdmVyIj09PXIpKSxzJiYiaXNvdmVyIj09PXImJihzLmlzb3Zlcj0hMSxzLmlzb3V0PSEwLHMuX291dC5jYWxsKHMsaSkpLHRoaXNbcl09ITAsdGhpc1siaXNvdXQiPT09cj8iaXNvdmVyIjoiaXNvdXQiXT0hMSx0aGlzWyJpc292ZXIiPT09cj8iX292ZXIiOiJfb3V0Il0uY2FsbCh0aGlzLGkpLHMmJiJpc291dCI9PT1yJiYocy5pc291dD0hMSxzLmlzb3Zlcj0hMCxzLl9vdmVyLmNhbGwocyxpKSkpfX0pfSxkcmFnU3RvcDpmdW5jdGlvbih0LGkpe3QuZWxlbWVudC5wYXJlbnRzVW50aWwoImJvZHkiKS51bmJpbmQoInNjcm9sbC5kcm9wcGFibGUiKSx0Lm9wdGlvbnMucmVmcmVzaFBvc2l0aW9uc3x8ZS51aS5kZG1hbmFnZXIucHJlcGFyZU9mZnNldHModCxpKX19LGUudWkuZHJvcHBhYmxlO3ZhciB5PSJ1aS1lZmZlY3RzLSIsYj1lO2UuZWZmZWN0cz17ZWZmZWN0Ont9fSxmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIGkoZSx0LGkpe3ZhciBzPWRbdC50eXBlXXx8e307cmV0dXJuIG51bGw9PWU/aXx8IXQuZGVmP251bGw6dC5kZWY6KGU9cy5mbG9vcj9+fmU6cGFyc2VGbG9hdChlKSxpc05hTihlKT90LmRlZjpzLm1vZD8oZStzLm1vZCklcy5tb2Q6MD5lPzA6ZT5zLm1heD9zLm1heDplKX1mdW5jdGlvbiBzKGkpe3ZhciBzPWwoKSxuPXMuX3JnYmE9W107cmV0dXJuIGk9aS50b0xvd2VyQ2FzZSgpLGYoaCxmdW5jdGlvbihlLGEpe3ZhciBvLHI9YS5yZS5leGVjKGkpLGg9ciYmYS5wYXJzZShyKSxsPWEuc3BhY2V8fCJyZ2JhIjtyZXR1cm4gaD8obz1zW2xdKGgpLHNbdVtsXS5jYWNoZV09b1t1W2xdLmNhY2hlXSxuPXMuX3JnYmE9by5fcmdiYSwhMSk6dH0pLG4ubGVuZ3RoPygiMCwwLDAsMCI9PT1uLmpvaW4oKSYmZS5leHRlbmQobixhLnRyYW5zcGFyZW50KSxzKTphW2ldfWZ1bmN0aW9uIG4oZSx0LGkpe3JldHVybiBpPShpKzEpJTEsMT42Kmk/ZSs2Kih0LWUpKmk6MT4yKmk/dDoyPjMqaT9lKzYqKHQtZSkqKDIvMy1pKTplfXZhciBhLG89ImJhY2tncm91bmRDb2xvciBib3JkZXJCb3R0b21Db2xvciBib3JkZXJMZWZ0Q29sb3IgYm9yZGVyUmlnaHRDb2xvciBib3JkZXJUb3BDb2xvciBjb2xvciBjb2x1bW5SdWxlQ29sb3Igb3V0bGluZUNvbG9yIHRleHREZWNvcmF0aW9uQ29sb3IgdGV4dEVtcGhhc2lzQ29sb3IiLHI9L14oW1wtK10pPVxzKihcZCtcLj9cZCopLyxoPVt7cmU6L3JnYmE/XChccyooXGR7MSwzfSlccyosXHMqKFxkezEsM30pXHMqLFxzKihcZHsxLDN9KVxzKig/OixccyooXGQ/KD86XC5cZCspPylccyopP1wpLyxwYXJzZTpmdW5jdGlvbihlKXtyZXR1cm5bZVsxXSxlWzJdLGVbM10sZVs0XV19fSx7cmU6L3JnYmE/XChccyooXGQrKD86XC5cZCspPylcJVxzKixccyooXGQrKD86XC5cZCspPylcJVxzKixccyooXGQrKD86XC5cZCspPylcJVxzKig/OixccyooXGQ/KD86XC5cZCspPylccyopP1wpLyxwYXJzZTpmdW5jdGlvbihlKXtyZXR1cm5bMi41NSplWzFdLDIuNTUqZVsyXSwyLjU1KmVbM10sZVs0XV19fSx7cmU6LyMoW2EtZjAtOV17Mn0pKFthLWYwLTldezJ9KShbYS1mMC05XXsyfSkvLHBhcnNlOmZ1bmN0aW9uKGUpe3JldHVybltwYXJzZUludChlWzFdLDE2KSxwYXJzZUludChlWzJdLDE2KSxwYXJzZUludChlWzNdLDE2KV19fSx7cmU6LyMoW2EtZjAtOV0pKFthLWYwLTldKShbYS1mMC05XSkvLHBhcnNlOmZ1bmN0aW9uKGUpe3JldHVybltwYXJzZUludChlWzFdK2VbMV0sMTYpLHBhcnNlSW50KGVbMl0rZVsyXSwxNikscGFyc2VJbnQoZVszXStlWzNdLDE2KV19fSx7cmU6L2hzbGE/XChccyooXGQrKD86XC5cZCspPylccyosXHMqKFxkKyg/OlwuXGQrKT8pXCVccyosXHMqKFxkKyg/OlwuXGQrKT8pXCVccyooPzosXHMqKFxkPyg/OlwuXGQrKT8pXHMqKT9cKS8sc3BhY2U6ImhzbGEiLHBhcnNlOmZ1bmN0aW9uKGUpe3JldHVybltlWzFdLGVbMl0vMTAwLGVbM10vMTAwLGVbNF1dfX1dLGw9ZS5Db2xvcj1mdW5jdGlvbih0LGkscyxuKXtyZXR1cm4gbmV3IGUuQ29sb3IuZm4ucGFyc2UodCxpLHMsbil9LHU9e3JnYmE6e3Byb3BzOntyZWQ6e2lkeDowLHR5cGU6ImJ5dGUifSxncmVlbjp7aWR4OjEsdHlwZToiYnl0ZSJ9LGJsdWU6e2lkeDoyLHR5cGU6ImJ5dGUifX19LGhzbGE6e3Byb3BzOntodWU6e2lkeDowLHR5cGU6ImRlZ3JlZXMifSxzYXR1cmF0aW9uOntpZHg6MSx0eXBlOiJwZXJjZW50In0sbGlnaHRuZXNzOntpZHg6Mix0eXBlOiJwZXJjZW50In19fX0sZD17ImJ5dGUiOntmbG9vcjohMCxtYXg6MjU1fSxwZXJjZW50OnttYXg6MX0sZGVncmVlczp7bW9kOjM2MCxmbG9vcjohMH19LGM9bC5zdXBwb3J0PXt9LHA9ZSgiPHA+IilbMF0sZj1lLmVhY2g7cC5zdHlsZS5jc3NUZXh0PSJiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMSwxLDEsLjUpIixjLnJnYmE9cC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IuaW5kZXhPZigicmdiYSIpPi0xLGYodSxmdW5jdGlvbihlLHQpe3QuY2FjaGU9Il8iK2UsdC5wcm9wcy5hbHBoYT17aWR4OjMsdHlwZToicGVyY2VudCIsZGVmOjF9fSksbC5mbj1lLmV4dGVuZChsLnByb3RvdHlwZSx7cGFyc2U6ZnVuY3Rpb24obixvLHIsaCl7aWYobj09PXQpcmV0dXJuIHRoaXMuX3JnYmE9W251bGwsbnVsbCxudWxsLG51bGxdLHRoaXM7KG4uanF1ZXJ5fHxuLm5vZGVUeXBlKSYmKG49ZShuKS5jc3Mobyksbz10KTt2YXIgZD10aGlzLGM9ZS50eXBlKG4pLHA9dGhpcy5fcmdiYT1bXTtyZXR1cm4gbyE9PXQmJihuPVtuLG8scixoXSxjPSJhcnJheSIpLCJzdHJpbmciPT09Yz90aGlzLnBhcnNlKHMobil8fGEuX2RlZmF1bHQpOiJhcnJheSI9PT1jPyhmKHUucmdiYS5wcm9wcyxmdW5jdGlvbihlLHQpe3BbdC5pZHhdPWkoblt0LmlkeF0sdCl9KSx0aGlzKToib2JqZWN0Ij09PWM/KG4gaW5zdGFuY2VvZiBsP2YodSxmdW5jdGlvbihlLHQpe25bdC5jYWNoZV0mJihkW3QuY2FjaGVdPW5bdC5jYWNoZV0uc2xpY2UoKSl9KTpmKHUsZnVuY3Rpb24odCxzKXt2YXIgYT1zLmNhY2hlO2Yocy5wcm9wcyxmdW5jdGlvbihlLHQpe2lmKCFkW2FdJiZzLnRvKXtpZigiYWxwaGEiPT09ZXx8bnVsbD09bltlXSlyZXR1cm47ZFthXT1zLnRvKGQuX3JnYmEpfWRbYV1bdC5pZHhdPWkobltlXSx0LCEwKX0pLGRbYV0mJjA+ZS5pbkFycmF5KG51bGwsZFthXS5zbGljZSgwLDMpKSYmKGRbYV1bM109MSxzLmZyb20mJihkLl9yZ2JhPXMuZnJvbShkW2FdKSkpfSksdGhpcyk6dH0saXM6ZnVuY3Rpb24oZSl7dmFyIGk9bChlKSxzPSEwLG49dGhpcztyZXR1cm4gZih1LGZ1bmN0aW9uKGUsYSl7dmFyIG8scj1pW2EuY2FjaGVdO3JldHVybiByJiYobz1uW2EuY2FjaGVdfHxhLnRvJiZhLnRvKG4uX3JnYmEpfHxbXSxmKGEucHJvcHMsZnVuY3Rpb24oZSxpKXtyZXR1cm4gbnVsbCE9cltpLmlkeF0/cz1yW2kuaWR4XT09PW9baS5pZHhdOnR9KSksc30pLHN9LF9zcGFjZTpmdW5jdGlvbigpe3ZhciBlPVtdLHQ9dGhpcztyZXR1cm4gZih1LGZ1bmN0aW9uKGkscyl7dFtzLmNhY2hlXSYmZS5wdXNoKGkpfSksZS5wb3AoKX0sdHJhbnNpdGlvbjpmdW5jdGlvbihlLHQpe3ZhciBzPWwoZSksbj1zLl9zcGFjZSgpLGE9dVtuXSxvPTA9PT10aGlzLmFscGhhKCk/bCgidHJhbnNwYXJlbnQiKTp0aGlzLHI9b1thLmNhY2hlXXx8YS50byhvLl9yZ2JhKSxoPXIuc2xpY2UoKTtyZXR1cm4gcz1zW2EuY2FjaGVdLGYoYS5wcm9wcyxmdW5jdGlvbihlLG4pe3ZhciBhPW4uaWR4LG89clthXSxsPXNbYV0sdT1kW24udHlwZV18fHt9O251bGwhPT1sJiYobnVsbD09PW8/aFthXT1sOih1Lm1vZCYmKGwtbz51Lm1vZC8yP28rPXUubW9kOm8tbD51Lm1vZC8yJiYoby09dS5tb2QpKSxoW2FdPWkoKGwtbykqdCtvLG4pKSl9KSx0aGlzW25dKGgpfSxibGVuZDpmdW5jdGlvbih0KXtpZigxPT09dGhpcy5fcmdiYVszXSlyZXR1cm4gdGhpczt2YXIgaT10aGlzLl9yZ2JhLnNsaWNlKCkscz1pLnBvcCgpLG49bCh0KS5fcmdiYTtyZXR1cm4gbChlLm1hcChpLGZ1bmN0aW9uKGUsdCl7cmV0dXJuKDEtcykqblt0XStzKmV9KSl9LHRvUmdiYVN0cmluZzpmdW5jdGlvbigpe3ZhciB0PSJyZ2JhKCIsaT1lLm1hcCh0aGlzLl9yZ2JhLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIG51bGw9PWU/dD4yPzE6MDplfSk7cmV0dXJuIDE9PT1pWzNdJiYoaS5wb3AoKSx0PSJyZ2IoIiksdCtpLmpvaW4oKSsiKSJ9LHRvSHNsYVN0cmluZzpmdW5jdGlvbigpe3ZhciB0PSJoc2xhKCIsaT1lLm1hcCh0aGlzLmhzbGEoKSxmdW5jdGlvbihlLHQpe3JldHVybiBudWxsPT1lJiYoZT10PjI/MTowKSx0JiYzPnQmJihlPU1hdGgucm91bmQoMTAwKmUpKyIlIiksZX0pO3JldHVybiAxPT09aVszXSYmKGkucG9wKCksdD0iaHNsKCIpLHQraS5qb2luKCkrIikifSx0b0hleFN0cmluZzpmdW5jdGlvbih0KXt2YXIgaT10aGlzLl9yZ2JhLnNsaWNlKCkscz1pLnBvcCgpO3JldHVybiB0JiZpLnB1c2gofn4oMjU1KnMpKSwiIyIrZS5tYXAoaSxmdW5jdGlvbihlKXtyZXR1cm4gZT0oZXx8MCkudG9TdHJpbmcoMTYpLDE9PT1lLmxlbmd0aD8iMCIrZTplfSkuam9pbigiIil9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLl9yZ2JhWzNdPyJ0cmFuc3BhcmVudCI6dGhpcy50b1JnYmFTdHJpbmcoKX19KSxsLmZuLnBhcnNlLnByb3RvdHlwZT1sLmZuLHUuaHNsYS50bz1mdW5jdGlvbihlKXtpZihudWxsPT1lWzBdfHxudWxsPT1lWzFdfHxudWxsPT1lWzJdKXJldHVybltudWxsLG51bGwsbnVsbCxlWzNdXTt2YXIgdCxpLHM9ZVswXS8yNTUsbj1lWzFdLzI1NSxhPWVbMl0vMjU1LG89ZVszXSxyPU1hdGgubWF4KHMsbixhKSxoPU1hdGgubWluKHMsbixhKSxsPXItaCx1PXIraCxkPS41KnU7cmV0dXJuIHQ9aD09PXI/MDpzPT09cj82MCoobi1hKS9sKzM2MDpuPT09cj82MCooYS1zKS9sKzEyMDo2MCoocy1uKS9sKzI0MCxpPTA9PT1sPzA6LjU+PWQ/bC91OmwvKDItdSksW01hdGgucm91bmQodCklMzYwLGksZCxudWxsPT1vPzE6b119LHUuaHNsYS5mcm9tPWZ1bmN0aW9uKGUpe2lmKG51bGw9PWVbMF18fG51bGw9PWVbMV18fG51bGw9PWVbMl0pcmV0dXJuW251bGwsbnVsbCxudWxsLGVbM11dO3ZhciB0PWVbMF0vMzYwLGk9ZVsxXSxzPWVbMl0sYT1lWzNdLG89LjU+PXM/cyooMStpKTpzK2ktcyppLHI9MipzLW87cmV0dXJuW01hdGgucm91bmQoMjU1Km4ocixvLHQrMS8zKSksTWF0aC5yb3VuZCgyNTUqbihyLG8sdCkpLE1hdGgucm91bmQoMjU1Km4ocixvLHQtMS8zKSksYV19LGYodSxmdW5jdGlvbihzLG4pe3ZhciBhPW4ucHJvcHMsbz1uLmNhY2hlLGg9bi50byx1PW4uZnJvbTtsLmZuW3NdPWZ1bmN0aW9uKHMpe2lmKGgmJiF0aGlzW29dJiYodGhpc1tvXT1oKHRoaXMuX3JnYmEpKSxzPT09dClyZXR1cm4gdGhpc1tvXS5zbGljZSgpO3ZhciBuLHI9ZS50eXBlKHMpLGQ9ImFycmF5Ij09PXJ8fCJvYmplY3QiPT09cj9zOmFyZ3VtZW50cyxjPXRoaXNbb10uc2xpY2UoKTtyZXR1cm4gZihhLGZ1bmN0aW9uKGUsdCl7dmFyIHM9ZFsib2JqZWN0Ij09PXI/ZTp0LmlkeF07bnVsbD09cyYmKHM9Y1t0LmlkeF0pLGNbdC5pZHhdPWkocyx0KX0pLHU/KG49bCh1KGMpKSxuW29dPWMsbik6bChjKX0sZihhLGZ1bmN0aW9uKHQsaSl7bC5mblt0XXx8KGwuZm5bdF09ZnVuY3Rpb24obil7dmFyIGEsbz1lLnR5cGUobiksaD0iYWxwaGEiPT09dD90aGlzLl9oc2xhPyJoc2xhIjoicmdiYSI6cyxsPXRoaXNbaF0oKSx1PWxbaS5pZHhdO3JldHVybiJ1bmRlZmluZWQiPT09bz91OigiZnVuY3Rpb24iPT09byYmKG49bi5jYWxsKHRoaXMsdSksbz1lLnR5cGUobikpLG51bGw9PW4mJmkuZW1wdHk/dGhpczooInN0cmluZyI9PT1vJiYoYT1yLmV4ZWMobiksYSYmKG49dStwYXJzZUZsb2F0KGFbMl0pKigiKyI9PT1hWzFdPzE6LTEpKSksbFtpLmlkeF09bix0aGlzW2hdKGwpKSl9KX0pfSksbC5ob29rPWZ1bmN0aW9uKHQpe3ZhciBpPXQuc3BsaXQoIiAiKTtmKGksZnVuY3Rpb24odCxpKXtlLmNzc0hvb2tzW2ldPXtzZXQ6ZnVuY3Rpb24odCxuKXt2YXIgYSxvLHI9IiI7aWYoInRyYW5zcGFyZW50IiE9PW4mJigic3RyaW5nIiE9PWUudHlwZShuKXx8KGE9cyhuKSkpKXtpZihuPWwoYXx8biksIWMucmdiYSYmMSE9PW4uX3JnYmFbM10pe2ZvcihvPSJiYWNrZ3JvdW5kQ29sb3IiPT09aT90LnBhcmVudE5vZGU6dDsoIiI9PT1yfHwidHJhbnNwYXJlbnQiPT09cikmJm8mJm8uc3R5bGU7KXRyeXtyPWUuY3NzKG8sImJhY2tncm91bmRDb2xvciIpLG89by5wYXJlbnROb2RlfWNhdGNoKGgpe31uPW4uYmxlbmQociYmInRyYW5zcGFyZW50IiE9PXI/cjoiX2RlZmF1bHQiKX1uPW4udG9SZ2JhU3RyaW5nKCl9dHJ5e3Quc3R5bGVbaV09bn1jYXRjaChoKXt9fX0sZS5meC5zdGVwW2ldPWZ1bmN0aW9uKHQpe3QuY29sb3JJbml0fHwodC5zdGFydD1sKHQuZWxlbSxpKSx0LmVuZD1sKHQuZW5kKSx0LmNvbG9ySW5pdD0hMCksZS5jc3NIb29rc1tpXS5zZXQodC5lbGVtLHQuc3RhcnQudHJhbnNpdGlvbih0LmVuZCx0LnBvcykpfX0pfSxsLmhvb2sobyksZS5jc3NIb29rcy5ib3JkZXJDb2xvcj17ZXhwYW5kOmZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiBmKFsiVG9wIiwiUmlnaHQiLCJCb3R0b20iLCJMZWZ0Il0sZnVuY3Rpb24oaSxzKXt0WyJib3JkZXIiK3MrIkNvbG9yIl09ZX0pLHR9fSxhPWUuQ29sb3IubmFtZXM9e2FxdWE6IiMwMGZmZmYiLGJsYWNrOiIjMDAwMDAwIixibHVlOiIjMDAwMGZmIixmdWNoc2lhOiIjZmYwMGZmIixncmF5OiIjODA4MDgwIixncmVlbjoiIzAwODAwMCIsbGltZToiIzAwZmYwMCIsbWFyb29uOiIjODAwMDAwIixuYXZ5OiIjMDAwMDgwIixvbGl2ZToiIzgwODAwMCIscHVycGxlOiIjODAwMDgwIixyZWQ6IiNmZjAwMDAiLHNpbHZlcjoiI2MwYzBjMCIsdGVhbDoiIzAwODA4MCIsd2hpdGU6IiNmZmZmZmYiLHllbGxvdzoiI2ZmZmYwMCIsdHJhbnNwYXJlbnQ6W251bGwsbnVsbCxudWxsLDBdLF9kZWZhdWx0OiIjZmZmZmZmIn19KGIpLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2YXIgaSxzLG49dC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3P3Qub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKHQsbnVsbCk6dC5jdXJyZW50U3R5bGUsYT17fTtpZihuJiZuLmxlbmd0aCYmblswXSYmbltuWzBdXSlmb3Iocz1uLmxlbmd0aDtzLS07KWk9bltzXSwic3RyaW5nIj09dHlwZW9mIG5baV0mJihhW2UuY2FtZWxDYXNlKGkpXT1uW2ldKTtlbHNlIGZvcihpIGluIG4pInN0cmluZyI9PXR5cGVvZiBuW2ldJiYoYVtpXT1uW2ldKTtyZXR1cm4gYX1mdW5jdGlvbiBpKHQsaSl7dmFyIHMsYSxvPXt9O2ZvcihzIGluIGkpYT1pW3NdLHRbc10hPT1hJiYobltzXXx8KGUuZnguc3RlcFtzXXx8IWlzTmFOKHBhcnNlRmxvYXQoYSkpKSYmKG9bc109YSkpO3JldHVybiBvfXZhciBzPVsiYWRkIiwicmVtb3ZlIiwidG9nZ2xlIl0sbj17Ym9yZGVyOjEsYm9yZGVyQm90dG9tOjEsYm9yZGVyQ29sb3I6MSxib3JkZXJMZWZ0OjEsYm9yZGVyUmlnaHQ6MSxib3JkZXJUb3A6MSxib3JkZXJXaWR0aDoxLG1hcmdpbjoxLHBhZGRpbmc6MX07ZS5lYWNoKFsiYm9yZGVyTGVmdFN0eWxlIiwiYm9yZGVyUmlnaHRTdHlsZSIsImJvcmRlckJvdHRvbVN0eWxlIiwiYm9yZGVyVG9wU3R5bGUiXSxmdW5jdGlvbih0LGkpe2UuZnguc3RlcFtpXT1mdW5jdGlvbihlKXsoIm5vbmUiIT09ZS5lbmQmJiFlLnNldEF0dHJ8fDE9PT1lLnBvcyYmIWUuc2V0QXR0cikmJihiLnN0eWxlKGUuZWxlbSxpLGUuZW5kKSxlLnNldEF0dHI9ITApfX0pLGUuZm4uYWRkQmFja3x8KGUuZm4uYWRkQmFjaz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5hZGQobnVsbD09ZT90aGlzLnByZXZPYmplY3Q6dGhpcy5wcmV2T2JqZWN0LmZpbHRlcihlKSl9KSxlLmVmZmVjdHMuYW5pbWF0ZUNsYXNzPWZ1bmN0aW9uKG4sYSxvLHIpe3ZhciBoPWUuc3BlZWQoYSxvLHIpO3JldHVybiB0aGlzLnF1ZXVlKGZ1bmN0aW9uKCl7dmFyIGEsbz1lKHRoaXMpLHI9by5hdHRyKCJjbGFzcyIpfHwiIixsPWguY2hpbGRyZW4/by5maW5kKCIqIikuYWRkQmFjaygpOm87bD1sLm1hcChmdW5jdGlvbigpe3ZhciBpPWUodGhpcyk7cmV0dXJue2VsOmksc3RhcnQ6dCh0aGlzKX19KSxhPWZ1bmN0aW9uKCl7ZS5lYWNoKHMsZnVuY3Rpb24oZSx0KXtuW3RdJiZvW3QrIkNsYXNzIl0oblt0XSl9KX0sYSgpLGw9bC5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbmQ9dCh0aGlzLmVsWzBdKSx0aGlzLmRpZmY9aSh0aGlzLnN0YXJ0LHRoaXMuZW5kKSx0aGlzfSksby5hdHRyKCJjbGFzcyIsciksbD1sLm1hcChmdW5jdGlvbigpe3ZhciB0PXRoaXMsaT1lLkRlZmVycmVkKCkscz1lLmV4dGVuZCh7fSxoLHtxdWV1ZTohMSxjb21wbGV0ZTpmdW5jdGlvbigpe2kucmVzb2x2ZSh0KX19KTtyZXR1cm4gdGhpcy5lbC5hbmltYXRlKHRoaXMuZGlmZixzKSxpLnByb21pc2UoKX0pLGUud2hlbi5hcHBseShlLGwuZ2V0KCkpLmRvbmUoZnVuY3Rpb24oKXthKCksZS5lYWNoKGFyZ3VtZW50cyxmdW5jdGlvbigpe3ZhciB0PXRoaXMuZWw7ZS5lYWNoKHRoaXMuZGlmZixmdW5jdGlvbihlKXt0LmNzcyhlLCIiKX0pfSksaC5jb21wbGV0ZS5jYWxsKG9bMF0pfSl9KX0sZS5mbi5leHRlbmQoe2FkZENsYXNzOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihpLHMsbixhKXtyZXR1cm4gcz9lLmVmZmVjdHMuYW5pbWF0ZUNsYXNzLmNhbGwodGhpcyx7YWRkOml9LHMsbixhKTp0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KGUuZm4uYWRkQ2xhc3MpLHJlbW92ZUNsYXNzOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihpLHMsbixhKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP2UuZWZmZWN0cy5hbmltYXRlQ2xhc3MuY2FsbCh0aGlzLHtyZW1vdmU6aX0scyxuLGEpOnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oZS5mbi5yZW1vdmVDbGFzcyksdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGkscyxuLGEsbyl7cmV0dXJuImJvb2xlYW4iPT10eXBlb2Ygc3x8dm9pZCAwPT09cz9uP2UuZWZmZWN0cy5hbmltYXRlQ2xhc3MuY2FsbCh0aGlzLHM/e2FkZDppfTp7cmVtb3ZlOml9LG4sYSxvKTp0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTplLmVmZmVjdHMuYW5pbWF0ZUNsYXNzLmNhbGwodGhpcyx7dG9nZ2xlOml9LHMsbixhKX19KGUuZm4udG9nZ2xlQ2xhc3MpLHN3aXRjaENsYXNzOmZ1bmN0aW9uKHQsaSxzLG4sYSl7cmV0dXJuIGUuZWZmZWN0cy5hbmltYXRlQ2xhc3MuY2FsbCh0aGlzLHthZGQ6aSxyZW1vdmU6dH0scyxuLGEpfX0pfSgpLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGkscyxuKXtyZXR1cm4gZS5pc1BsYWluT2JqZWN0KHQpJiYoaT10LHQ9dC5lZmZlY3QpLHQ9e2VmZmVjdDp0fSxudWxsPT1pJiYoaT17fSksZS5pc0Z1bmN0aW9uKGkpJiYobj1pLHM9bnVsbCxpPXt9KSwoIm51bWJlciI9PXR5cGVvZiBpfHxlLmZ4LnNwZWVkc1tpXSkmJihuPXMscz1pLGk9e30pLGUuaXNGdW5jdGlvbihzKSYmKG49cyxzPW51bGwpLGkmJmUuZXh0ZW5kKHQsaSkscz1zfHxpLmR1cmF0aW9uLHQuZHVyYXRpb249ZS5meC5vZmY/MDoibnVtYmVyIj09dHlwZW9mIHM/czpzIGluIGUuZnguc3BlZWRzP2UuZnguc3BlZWRzW3NdOmUuZnguc3BlZWRzLl9kZWZhdWx0LHQuY29tcGxldGU9bnx8aS5jb21wbGV0ZSx0fWZ1bmN0aW9uIGkodCl7cmV0dXJuIXR8fCJudW1iZXIiPT10eXBlb2YgdHx8ZS5meC5zcGVlZHNbdF0/ITA6InN0cmluZyIhPXR5cGVvZiB0fHxlLmVmZmVjdHMuZWZmZWN0W3RdP2UuaXNGdW5jdGlvbih0KT8hMDoib2JqZWN0IiE9dHlwZW9mIHR8fHQuZWZmZWN0PyExOiEwOiEwfWUuZXh0ZW5kKGUuZWZmZWN0cyx7dmVyc2lvbjoiMS4xMS40IixzYXZlOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBpPTA7dC5sZW5ndGg+aTtpKyspbnVsbCE9PXRbaV0mJmUuZGF0YSh5K3RbaV0sZVswXS5zdHlsZVt0W2ldXSl9LHJlc3RvcmU6ZnVuY3Rpb24oZSx0KXt2YXIgaSxzO2ZvcihzPTA7dC5sZW5ndGg+cztzKyspbnVsbCE9PXRbc10mJihpPWUuZGF0YSh5K3Rbc10pLHZvaWQgMD09PWkmJihpPSIiKSxlLmNzcyh0W3NdLGkpKX0sc2V0TW9kZTpmdW5jdGlvbihlLHQpe3JldHVybiJ0b2dnbGUiPT09dCYmKHQ9ZS5pcygiOmhpZGRlbiIpPyJzaG93IjoiaGlkZSIpLHR9LGdldEJhc2VsaW5lOmZ1bmN0aW9uKGUsdCl7dmFyIGkscztzd2l0Y2goZVswXSl7Y2FzZSJ0b3AiOmk9MDticmVhaztjYXNlIm1pZGRsZSI6aT0uNTticmVhaztjYXNlImJvdHRvbSI6aT0xO2JyZWFrO2RlZmF1bHQ6aT1lWzBdL3QuaGVpZ2h0fXN3aXRjaChlWzFdKXtjYXNlImxlZnQiOnM9MDticmVhaztjYXNlImNlbnRlciI6cz0uNTticmVhaztjYXNlInJpZ2h0IjpzPTE7YnJlYWs7ZGVmYXVsdDpzPWVbMV0vdC53aWR0aH1yZXR1cm57eDpzLHk6aX19LGNyZWF0ZVdyYXBwZXI6ZnVuY3Rpb24odCl7aWYodC5wYXJlbnQoKS5pcygiLnVpLWVmZmVjdHMtd3JhcHBlciIpKXJldHVybiB0LnBhcmVudCgpO3ZhciBpPXt3aWR0aDp0Lm91dGVyV2lkdGgoITApLGhlaWdodDp0Lm91dGVySGVpZ2h0KCEwKSwiZmxvYXQiOnQuY3NzKCJmbG9hdCIpfSxzPWUoIjxkaXY+PC9kaXY+IikuYWRkQ2xhc3MoInVpLWVmZmVjdHMtd3JhcHBlciIpLmNzcyh7Zm9udFNpemU6IjEwMCUiLGJhY2tncm91bmQ6InRyYW5zcGFyZW50Iixib3JkZXI6Im5vbmUiLG1hcmdpbjowLHBhZGRpbmc6MH0pLG49e3dpZHRoOnQud2lkdGgoKSxoZWlnaHQ6dC5oZWlnaHQoKX0sYT1kb2N1bWVudC5hY3RpdmVFbGVtZW50O3RyeXthLmlkfWNhdGNoKG8pe2E9ZG9jdW1lbnQuYm9keX1yZXR1cm4gdC53cmFwKHMpLCh0WzBdPT09YXx8ZS5jb250YWlucyh0WzBdLGEpKSYmZShhKS5mb2N1cygpLHM9dC5wYXJlbnQoKSwic3RhdGljIj09PXQuY3NzKCJwb3NpdGlvbiIpPyhzLmNzcyh7cG9zaXRpb246InJlbGF0aXZlIn0pLHQuY3NzKHtwb3NpdGlvbjoicmVsYXRpdmUifSkpOihlLmV4dGVuZChpLHtwb3NpdGlvbjp0LmNzcygicG9zaXRpb24iKSx6SW5kZXg6dC5jc3MoInotaW5kZXgiKX0pLGUuZWFjaChbInRvcCIsImxlZnQiLCJib3R0b20iLCJyaWdodCJdLGZ1bmN0aW9uKGUscyl7aVtzXT10LmNzcyhzKSxpc05hTihwYXJzZUludChpW3NdLDEwKSkmJihpW3NdPSJhdXRvIil9KSx0LmNzcyh7cG9zaXRpb246InJlbGF0aXZlIix0b3A6MCxsZWZ0OjAscmlnaHQ6ImF1dG8iLGJvdHRvbToiYXV0byJ9KSksdC5jc3Mobikscy5jc3MoaSkuc2hvdygpfSxyZW1vdmVXcmFwcGVyOmZ1bmN0aW9uKHQpe3ZhciBpPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7cmV0dXJuIHQucGFyZW50KCkuaXMoIi51aS1lZmZlY3RzLXdyYXBwZXIiKSYmKHQucGFyZW50KCkucmVwbGFjZVdpdGgodCksKHRbMF09PT1pfHxlLmNvbnRhaW5zKHRbMF0saSkpJiZlKGkpLmZvY3VzKCkpLHR9LHNldFRyYW5zaXRpb246ZnVuY3Rpb24odCxpLHMsbil7cmV0dXJuIG49bnx8e30sZS5lYWNoKGksZnVuY3Rpb24oZSxpKXt2YXIgYT10LmNzc1VuaXQoaSk7YVswXT4wJiYobltpXT1hWzBdKnMrYVsxXSl9KSxufX0pLGUuZm4uZXh0ZW5kKHtlZmZlY3Q6ZnVuY3Rpb24oKXtmdW5jdGlvbiBpKHQpe2Z1bmN0aW9uIGkoKXtlLmlzRnVuY3Rpb24oYSkmJmEuY2FsbChuWzBdKSxlLmlzRnVuY3Rpb24odCkmJnQoKX12YXIgbj1lKHRoaXMpLGE9cy5jb21wbGV0ZSxyPXMubW9kZTsobi5pcygiOmhpZGRlbiIpPyJoaWRlIj09PXI6InNob3ciPT09cik/KG5bcl0oKSxpKCkpOm8uY2FsbChuWzBdLHMsaSl9dmFyIHM9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyksbj1zLm1vZGUsYT1zLnF1ZXVlLG89ZS5lZmZlY3RzLmVmZmVjdFtzLmVmZmVjdF07cmV0dXJuIGUuZngub2ZmfHwhbz9uP3RoaXNbbl0ocy5kdXJhdGlvbixzLmNvbXBsZXRlKTp0aGlzLmVhY2goZnVuY3Rpb24oKXtzLmNvbXBsZXRlJiZzLmNvbXBsZXRlLmNhbGwodGhpcyl9KTphPT09ITE/dGhpcy5lYWNoKGkpOnRoaXMucXVldWUoYXx8ImZ4IixpKX0sc2hvdzpmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24ocyl7aWYoaShzKSlyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIG49dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIG4ubW9kZT0ic2hvdyIsdGhpcy5lZmZlY3QuY2FsbCh0aGlzLG4pfX0oZS5mbi5zaG93KSxoaWRlOmZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihzKXtpZihpKHMpKXJldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgbj10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gbi5tb2RlPSJoaWRlIix0aGlzLmVmZmVjdC5jYWxsKHRoaXMsbil9fShlLmZuLmhpZGUpLHRvZ2dsZTpmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24ocyl7aWYoaShzKXx8ImJvb2xlYW4iPT10eXBlb2YgcylyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIG49dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIG4ubW9kZT0idG9nZ2xlIix0aGlzLmVmZmVjdC5jYWxsKHRoaXMsbil9fShlLmZuLnRvZ2dsZSksY3NzVW5pdDpmdW5jdGlvbih0KXt2YXIgaT10aGlzLmNzcyh0KSxzPVtdO3JldHVybiBlLmVhY2goWyJlbSIsInB4IiwiJSIsInB0Il0sZnVuY3Rpb24oZSx0KXtpLmluZGV4T2YodCk+MCYmKHM9W3BhcnNlRmxvYXQoaSksdF0pfSksc319KX0oKSxmdW5jdGlvbigpe3ZhciB0PXt9O2UuZWFjaChbIlF1YWQiLCJDdWJpYyIsIlF1YXJ0IiwiUXVpbnQiLCJFeHBvIl0sZnVuY3Rpb24oZSxpKXt0W2ldPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnBvdyh0LGUrMil9fSksZS5leHRlbmQodCx7U2luZTpmdW5jdGlvbihlKXtyZXR1cm4gMS1NYXRoLmNvcyhlKk1hdGguUEkvMil9LENpcmM6ZnVuY3Rpb24oZSl7cmV0dXJuIDEtTWF0aC5zcXJ0KDEtZSplKX0sRWxhc3RpYzpmdW5jdGlvbihlKXtyZXR1cm4gMD09PWV8fDE9PT1lP2U6LU1hdGgucG93KDIsOCooZS0xKSkqTWF0aC5zaW4oKDgwKihlLTEpLTcuNSkqTWF0aC5QSS8xNSl9LEJhY2s6ZnVuY3Rpb24oZSl7cmV0dXJuIGUqZSooMyplLTIpfSxCb3VuY2U6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LGk9NDsoKHQ9TWF0aC5wb3coMiwtLWkpKS0xKS8xMT5lOyk7cmV0dXJuIDEvTWF0aC5wb3coNCwzLWkpLTcuNTYyNSpNYXRoLnBvdygoMyp0LTIpLzIyLWUsMil9fSksZS5lYWNoKHQsZnVuY3Rpb24odCxpKXtlLmVhc2luZ1siZWFzZUluIit0XT1pLGUuZWFzaW5nWyJlYXNlT3V0Iit0XT1mdW5jdGlvbihlKXtyZXR1cm4gMS1pKDEtZSl9LGUuZWFzaW5nWyJlYXNlSW5PdXQiK3RdPWZ1bmN0aW9uKGUpe3JldHVybi41PmU/aSgyKmUpLzI6MS1pKC0yKmUrMikvMn19KX0oKSxlLmVmZmVjdHMsZS5lZmZlY3RzLmVmZmVjdC5ibGluZD1mdW5jdGlvbih0LGkpe3ZhciBzLG4sYSxvPWUodGhpcykscj0vdXB8ZG93bnx2ZXJ0aWNhbC8saD0vdXB8bGVmdHx2ZXJ0aWNhbHxob3Jpem9udGFsLyxsPVsicG9zaXRpb24iLCJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiLCJoZWlnaHQiLCJ3aWR0aCJdLHU9ZS5lZmZlY3RzLnNldE1vZGUobyx0Lm1vZGV8fCJoaWRlIiksZD10LmRpcmVjdGlvbnx8InVwIixjPXIudGVzdChkKSxwPWM/ImhlaWdodCI6IndpZHRoIixmPWM/InRvcCI6ImxlZnQiLG09aC50ZXN0KGQpLGc9e30sdj0ic2hvdyI9PT11O28ucGFyZW50KCkuaXMoIi51aS1lZmZlY3RzLXdyYXBwZXIiKT9lLmVmZmVjdHMuc2F2ZShvLnBhcmVudCgpLGwpOmUuZWZmZWN0cy5zYXZlKG8sbCksby5zaG93KCkscz1lLmVmZmVjdHMuY3JlYXRlV3JhcHBlcihvKS5jc3Moe292ZXJmbG93OiJoaWRkZW4ifSksbj1zW3BdKCksYT1wYXJzZUZsb2F0KHMuY3NzKGYpKXx8MCxnW3BdPXY/bjowLG18fChvLmNzcyhjPyJib3R0b20iOiJyaWdodCIsMCkuY3NzKGM/InRvcCI6ImxlZnQiLCJhdXRvIikuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUifSksZ1tmXT12P2E6bithKSx2JiYocy5jc3MocCwwKSxtfHxzLmNzcyhmLGErbikpLHMuYW5pbWF0ZShnLHtkdXJhdGlvbjp0LmR1cmF0aW9uLGVhc2luZzp0LmVhc2luZyxxdWV1ZTohMSxjb21wbGV0ZTpmdW5jdGlvbigpeyJoaWRlIj09PXUmJm8uaGlkZSgpLGUuZWZmZWN0cy5yZXN0b3JlKG8sbCksZS5lZmZlY3RzLnJlbW92ZVdyYXBwZXIobyksaSgpfX0pfSxlLmVmZmVjdHMuZWZmZWN0LmJvdW5jZT1mdW5jdGlvbih0LGkpe3ZhciBzLG4sYSxvPWUodGhpcykscj1bInBvc2l0aW9uIiwidG9wIiwiYm90dG9tIiwibGVmdCIsInJpZ2h0IiwiaGVpZ2h0Iiwid2lkdGgiXSxoPWUuZWZmZWN0cy5zZXRNb2RlKG8sdC5tb2RlfHwiZWZmZWN0IiksbD0iaGlkZSI9PT1oLHU9InNob3ciPT09aCxkPXQuZGlyZWN0aW9ufHwidXAiLGM9dC5kaXN0YW5jZSxwPXQudGltZXN8fDUsZj0yKnArKHV8fGw/MTowKSxtPXQuZHVyYXRpb24vZixnPXQuZWFzaW5nLHY9InVwIj09PWR8fCJkb3duIj09PWQ/InRvcCI6ImxlZnQiLHk9InVwIj09PWR8fCJsZWZ0Ij09PWQsYj1vLnF1ZXVlKCksXz1iLmxlbmd0aDtmb3IoKHV8fGwpJiZyLnB1c2goIm9wYWNpdHkiKSxlLmVmZmVjdHMuc2F2ZShvLHIpLG8uc2hvdygpLGUuZWZmZWN0cy5jcmVhdGVXcmFwcGVyKG8pLGN8fChjPW9bInRvcCI9PT12PyJvdXRlckhlaWdodCI6Im91dGVyV2lkdGgiXSgpLzMpLHUmJihhPXtvcGFjaXR5OjF9LGFbdl09MCxvLmNzcygib3BhY2l0eSIsMCkuY3NzKHYseT8yKi1jOjIqYykuYW5pbWF0ZShhLG0sZykpLGwmJihjLz1NYXRoLnBvdygyLHAtMSkpLGE9e30sYVt2XT0wLHM9MDtwPnM7cysrKW49e30sblt2XT0oeT8iLT0iOiIrPSIpK2Msby5hbmltYXRlKG4sbSxnKS5hbmltYXRlKGEsbSxnKSxjPWw/MipjOmMvMjtsJiYobj17b3BhY2l0eTowfSxuW3ZdPSh5PyItPSI6Iis9IikrYyxvLmFuaW1hdGUobixtLGcpKSxvLnF1ZXVlKGZ1bmN0aW9uKCl7bCYmby5oaWRlKCksZS5lZmZlY3RzLnJlc3RvcmUobyxyKSxlLmVmZmVjdHMucmVtb3ZlV3JhcHBlcihvKSxpKCl9KSxfPjEmJmIuc3BsaWNlLmFwcGx5KGIsWzEsMF0uY29uY2F0KGIuc3BsaWNlKF8sZisxKSkpLG8uZGVxdWV1ZSgpfSxlLmVmZmVjdHMuZWZmZWN0LmNsaXA9ZnVuY3Rpb24odCxpKXt2YXIgcyxuLGEsbz1lKHRoaXMpLHI9WyJwb3NpdGlvbiIsInRvcCIsImJvdHRvbSIsImxlZnQiLCJyaWdodCIsImhlaWdodCIsIndpZHRoIl0saD1lLmVmZmVjdHMuc2V0TW9kZShvLHQubW9kZXx8ImhpZGUiKSxsPSJzaG93Ij09PWgsdT10LmRpcmVjdGlvbnx8InZlcnRpY2FsIixkPSJ2ZXJ0aWNhbCI9PT11LGM9ZD8iaGVpZ2h0Ijoid2lkdGgiLHA9ZD8idG9wIjoibGVmdCIsZj17fTtlLmVmZmVjdHMuc2F2ZShvLHIpLG8uc2hvdygpLHM9ZS5lZmZlY3RzLmNyZWF0ZVdyYXBwZXIobykuY3NzKHtvdmVyZmxvdzoiaGlkZGVuIn0pLG49IklNRyI9PT1vWzBdLnRhZ05hbWU/czpvLGE9bltjXSgpLGwmJihuLmNzcyhjLDApLG4uY3NzKHAsYS8yKSksZltjXT1sP2E6MCxmW3BdPWw/MDphLzIsbi5hbmltYXRlKGYse3F1ZXVlOiExLGR1cmF0aW9uOnQuZHVyYXRpb24sZWFzaW5nOnQuZWFzaW5nLGNvbXBsZXRlOmZ1bmN0aW9uKCl7bHx8by5oaWRlKCksZS5lZmZlY3RzLnJlc3RvcmUobyxyKSxlLmVmZmVjdHMucmVtb3ZlV3JhcHBlcihvKSxpKCl9fSl9LGUuZWZmZWN0cy5lZmZlY3QuZHJvcD1mdW5jdGlvbih0LGkpe3ZhciBzLG49ZSh0aGlzKSxhPVsicG9zaXRpb24iLCJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiLCJvcGFjaXR5IiwiaGVpZ2h0Iiwid2lkdGgiXSxvPWUuZWZmZWN0cy5zZXRNb2RlKG4sdC5tb2RlfHwiaGlkZSIpLHI9InNob3ciPT09byxoPXQuZGlyZWN0aW9ufHwibGVmdCIsbD0idXAiPT09aHx8ImRvd24iPT09aD8idG9wIjoibGVmdCIsdT0idXAiPT09aHx8ImxlZnQiPT09aD8icG9zIjoibmVnIixkPXtvcGFjaXR5OnI/MTowfTtlLmVmZmVjdHMuc2F2ZShuLGEpLG4uc2hvdygpLGUuZWZmZWN0cy5jcmVhdGVXcmFwcGVyKG4pLHM9dC5kaXN0YW5jZXx8blsidG9wIj09PWw/Im91dGVySGVpZ2h0Ijoib3V0ZXJXaWR0aCJdKCEwKS8yLHImJm4uY3NzKCJvcGFjaXR5IiwwKS5jc3MobCwicG9zIj09PXU/LXM6cyksZFtsXT0ocj8icG9zIj09PXU/Iis9IjoiLT0iOiJwb3MiPT09dT8iLT0iOiIrPSIpK3Msbi5hbmltYXRlKGQse3F1ZXVlOiExLGR1cmF0aW9uOnQuZHVyYXRpb24sZWFzaW5nOnQuZWFzaW5nLGNvbXBsZXRlOmZ1bmN0aW9uKCl7ImhpZGUiPT09byYmbi5oaWRlKCksZS5lZmZlY3RzLnJlc3RvcmUobixhKSxlLmVmZmVjdHMucmVtb3ZlV3JhcHBlcihuKSxpKCl9fSl9LGUuZWZmZWN0cy5lZmZlY3QuZXhwbG9kZT1mdW5jdGlvbih0LGkpe2Z1bmN0aW9uIHMoKXtiLnB1c2godGhpcyksYi5sZW5ndGg9PT1kKmMmJm4oKX1mdW5jdGlvbiBuKCl7cC5jc3Moe3Zpc2liaWxpdHk6InZpc2libGUifSksZShiKS5yZW1vdmUoKSxtfHxwLmhpZGUoKSxpKCl9dmFyIGEsbyxyLGgsbCx1LGQ9dC5waWVjZXM/TWF0aC5yb3VuZChNYXRoLnNxcnQodC5waWVjZXMpKTozLGM9ZCxwPWUodGhpcyksZj1lLmVmZmVjdHMuc2V0TW9kZShwLHQubW9kZXx8ImhpZGUiKSxtPSJzaG93Ij09PWYsZz1wLnNob3coKS5jc3MoInZpc2liaWxpdHkiLCJoaWRkZW4iKS5vZmZzZXQoKSx2PU1hdGguY2VpbChwLm91dGVyV2lkdGgoKS9jKSx5PU1hdGguY2VpbChwLm91dGVySGVpZ2h0KCkvZCksYj1bXTtmb3IoYT0wO2Q+YTthKyspZm9yKGg9Zy50b3ArYSp5LHU9YS0oZC0xKS8yLG89MDtjPm87bysrKXI9Zy5sZWZ0K28qdixsPW8tKGMtMSkvMixwLmNsb25lKCkuYXBwZW5kVG8oImJvZHkiKS53cmFwKCI8ZGl2PjwvZGl2PiIpLmNzcyh7cG9zaXRpb246ImFic29sdXRlIix2aXNpYmlsaXR5OiJ2aXNpYmxlIixsZWZ0Oi1vKnYsdG9wOi1hKnl9KS5wYXJlbnQoKS5hZGRDbGFzcygidWktZWZmZWN0cy1leHBsb2RlIikuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUiLG92ZXJmbG93OiJoaWRkZW4iLHdpZHRoOnYsaGVpZ2h0OnksbGVmdDpyKyhtP2wqdjowKSx0b3A6aCsobT91Knk6MCksb3BhY2l0eTptPzA6MX0pLmFuaW1hdGUoe2xlZnQ6cisobT8wOmwqdiksdG9wOmgrKG0/MDp1KnkpLG9wYWNpdHk6bT8xOjB9LHQuZHVyYXRpb258fDUwMCx0LmVhc2luZyxzKX0sZS5lZmZlY3RzLmVmZmVjdC5mYWRlPWZ1bmN0aW9uKHQsaSl7dmFyIHM9ZSh0aGlzKSxuPWUuZWZmZWN0cy5zZXRNb2RlKHMsdC5tb2RlfHwidG9nZ2xlIik7cy5hbmltYXRlKHtvcGFjaXR5Om59LHtxdWV1ZTohMSxkdXJhdGlvbjp0LmR1cmF0aW9uLGVhc2luZzp0LmVhc2luZyxjb21wbGV0ZTppfSl9LGUuZWZmZWN0cy5lZmZlY3QuZm9sZD1mdW5jdGlvbih0LGkpe3ZhciBzLG4sYT1lKHRoaXMpLG89WyJwb3NpdGlvbiIsInRvcCIsImJvdHRvbSIsImxlZnQiLCJyaWdodCIsImhlaWdodCIsIndpZHRoIl0scj1lLmVmZmVjdHMuc2V0TW9kZShhLHQubW9kZXx8ImhpZGUiKSxoPSJzaG93Ij09PXIsbD0iaGlkZSI9PT1yLHU9dC5zaXplfHwxNSxkPS8oWzAtOV0rKSUvLmV4ZWModSksYz0hIXQuaG9yaXpGaXJzdCxwPWghPT1jLGY9cD9bIndpZHRoIiwiaGVpZ2h0Il06WyJoZWlnaHQiLCJ3aWR0aCJdLG09dC5kdXJhdGlvbi8yLGc9e30sdj17fTtlLmVmZmVjdHMuc2F2ZShhLG8pLGEuc2hvdygpLHM9ZS5lZmZlY3RzLmNyZWF0ZVdyYXBwZXIoYSkuY3NzKHtvdmVyZmxvdzoiaGlkZGVuIn0pLG49cD9bcy53aWR0aCgpLHMuaGVpZ2h0KCldOltzLmhlaWdodCgpLHMud2lkdGgoKV0sZCYmKHU9cGFyc2VJbnQoZFsxXSwxMCkvMTAwKm5bbD8wOjFdKSxoJiZzLmNzcyhjP3toZWlnaHQ6MCx3aWR0aDp1fTp7aGVpZ2h0OnUsd2lkdGg6MH0pLGdbZlswXV09aD9uWzBdOnUsdltmWzFdXT1oP25bMV06MCxzLmFuaW1hdGUoZyxtLHQuZWFzaW5nKS5hbmltYXRlKHYsbSx0LmVhc2luZyxmdW5jdGlvbigpe2wmJmEuaGlkZSgpLGUuZWZmZWN0cy5yZXN0b3JlKGEsbyksZS5lZmZlY3RzLnJlbW92ZVdyYXBwZXIoYSksaSgpfSl9LGUuZWZmZWN0cy5lZmZlY3QuaGlnaGxpZ2h0PWZ1bmN0aW9uKHQsaSl7dmFyIHM9ZSh0aGlzKSxuPVsiYmFja2dyb3VuZEltYWdlIiwiYmFja2dyb3VuZENvbG9yIiwib3BhY2l0eSJdLGE9ZS5lZmZlY3RzLnNldE1vZGUocyx0Lm1vZGV8fCJzaG93Iiksbz17YmFja2dyb3VuZENvbG9yOnMuY3NzKCJiYWNrZ3JvdW5kQ29sb3IiKX07ImhpZGUiPT09YSYmKG8ub3BhY2l0eT0wKSxlLmVmZmVjdHMuc2F2ZShzLG4pLHMuc2hvdygpLmNzcyh7YmFja2dyb3VuZEltYWdlOiJub25lIixiYWNrZ3JvdW5kQ29sb3I6dC5jb2xvcnx8IiNmZmZmOTkifSkuYW5pbWF0ZShvLHtxdWV1ZTohMSxkdXJhdGlvbjp0LmR1cmF0aW9uLGVhc2luZzp0LmVhc2luZyxjb21wbGV0ZTpmdW5jdGlvbigpeyJoaWRlIj09PWEmJnMuaGlkZSgpLGUuZWZmZWN0cy5yZXN0b3JlKHMsbiksaSgpfX0pfSxlLmVmZmVjdHMuZWZmZWN0LnNpemU9ZnVuY3Rpb24odCxpKXt2YXIgcyxuLGEsbz1lKHRoaXMpLHI9WyJwb3NpdGlvbiIsInRvcCIsImJvdHRvbSIsImxlZnQiLCJyaWdodCIsIndpZHRoIiwiaGVpZ2h0Iiwib3ZlcmZsb3ciLCJvcGFjaXR5Il0saD1bInBvc2l0aW9uIiwidG9wIiwiYm90dG9tIiwibGVmdCIsInJpZ2h0Iiwib3ZlcmZsb3ciLCJvcGFjaXR5Il0sbD1bIndpZHRoIiwiaGVpZ2h0Iiwib3ZlcmZsb3ciXSx1PVsiZm9udFNpemUiXSxkPVsiYm9yZGVyVG9wV2lkdGgiLCJib3JkZXJCb3R0b21XaWR0aCIsInBhZGRpbmdUb3AiLCJwYWRkaW5nQm90dG9tIl0sYz1bImJvcmRlckxlZnRXaWR0aCIsImJvcmRlclJpZ2h0V2lkdGgiLCJwYWRkaW5nTGVmdCIsInBhZGRpbmdSaWdodCJdLHA9ZS5lZmZlY3RzLnNldE1vZGUobyx0Lm1vZGV8fCJlZmZlY3QiKSxmPXQucmVzdG9yZXx8ImVmZmVjdCIhPT1wLG09dC5zY2FsZXx8ImJvdGgiLGc9dC5vcmlnaW58fFsibWlkZGxlIiwiY2VudGVyIl0sdj1vLmNzcygicG9zaXRpb24iKSx5PWY/cjpoLGI9e2hlaWdodDowLHdpZHRoOjAsb3V0ZXJIZWlnaHQ6MCxvdXRlcldpZHRoOjB9OyJzaG93Ij09PXAmJm8uc2hvdygpLHM9e2hlaWdodDpvLmhlaWdodCgpLHdpZHRoOm8ud2lkdGgoKSxvdXRlckhlaWdodDpvLm91dGVySGVpZ2h0KCksb3V0ZXJXaWR0aDpvLm91dGVyV2lkdGgoKX0sInRvZ2dsZSI9PT10Lm1vZGUmJiJzaG93Ij09PXA/KG8uZnJvbT10LnRvfHxiLG8udG89dC5mcm9tfHxzKTooby5mcm9tPXQuZnJvbXx8KCJzaG93Ij09PXA/YjpzKSxvLnRvPXQudG98fCgiaGlkZSI9PT1wP2I6cykpLGE9e2Zyb206e3k6by5mcm9tLmhlaWdodC9zLmhlaWdodCx4Om8uZnJvbS53aWR0aC9zLndpZHRofSx0bzp7eTpvLnRvLmhlaWdodC9zLmhlaWdodCx4Om8udG8ud2lkdGgvcy53aWR0aH19LCgiYm94Ij09PW18fCJib3RoIj09PW0pJiYoYS5mcm9tLnkhPT1hLnRvLnkmJih5PXkuY29uY2F0KGQpLG8uZnJvbT1lLmVmZmVjdHMuc2V0VHJhbnNpdGlvbihvLGQsYS5mcm9tLnksby5mcm9tKSxvLnRvPWUuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKG8sZCxhLnRvLnksby50bykpLGEuZnJvbS54IT09YS50by54JiYoeT15LmNvbmNhdChjKSxvLmZyb209ZS5lZmZlY3RzLnNldFRyYW5zaXRpb24obyxjLGEuZnJvbS54LG8uZnJvbSksby50bz1lLmVmZmVjdHMuc2V0VHJhbnNpdGlvbihvLGMsYS50by54LG8udG8pKSksKCJjb250ZW50Ij09PW18fCJib3RoIj09PW0pJiZhLmZyb20ueSE9PWEudG8ueSYmKHk9eS5jb25jYXQodSkuY29uY2F0KGwpLG8uZnJvbT1lLmVmZmVjdHMuc2V0VHJhbnNpdGlvbihvLHUsYS5mcm9tLnksby5mcm9tKSxvLnRvPWUuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKG8sdSxhLnRvLnksby50bykpLGUuZWZmZWN0cy5zYXZlKG8seSksby5zaG93KCksZS5lZmZlY3RzLmNyZWF0ZVdyYXBwZXIobyksby5jc3MoIm92ZXJmbG93IiwiaGlkZGVuIikuY3NzKG8uZnJvbSksZyYmKG49ZS5lZmZlY3RzLmdldEJhc2VsaW5lKGcscyksby5mcm9tLnRvcD0ocy5vdXRlckhlaWdodC1vLm91dGVySGVpZ2h0KCkpKm4ueSxvLmZyb20ubGVmdD0ocy5vdXRlcldpZHRoLW8ub3V0ZXJXaWR0aCgpKSpuLngsby50by50b3A9KHMub3V0ZXJIZWlnaHQtby50by5vdXRlckhlaWdodCkqbi55LG8udG8ubGVmdD0ocy5vdXRlcldpZHRoLW8udG8ub3V0ZXJXaWR0aCkqbi54KSxvLmNzcyhvLmZyb20pLCgiY29udGVudCI9PT1tfHwiYm90aCI9PT1tKSYmKGQ9ZC5jb25jYXQoWyJtYXJnaW5Ub3AiLCJtYXJnaW5Cb3R0b20iXSkuY29uY2F0KHUpLGM9Yy5jb25jYXQoWyJtYXJnaW5MZWZ0IiwibWFyZ2luUmlnaHQiXSksbD1yLmNvbmNhdChkKS5jb25jYXQoYyksby5maW5kKCIqW3dpZHRoXSIpLmVhY2goZnVuY3Rpb24oKXt2YXIgaT1lKHRoaXMpLHM9e2hlaWdodDppLmhlaWdodCgpLHdpZHRoOmkud2lkdGgoKSxvdXRlckhlaWdodDppLm91dGVySGVpZ2h0KCksb3V0ZXJXaWR0aDppLm91dGVyV2lkdGgoKX07CmYmJmUuZWZmZWN0cy5zYXZlKGksbCksaS5mcm9tPXtoZWlnaHQ6cy5oZWlnaHQqYS5mcm9tLnksd2lkdGg6cy53aWR0aCphLmZyb20ueCxvdXRlckhlaWdodDpzLm91dGVySGVpZ2h0KmEuZnJvbS55LG91dGVyV2lkdGg6cy5vdXRlcldpZHRoKmEuZnJvbS54fSxpLnRvPXtoZWlnaHQ6cy5oZWlnaHQqYS50by55LHdpZHRoOnMud2lkdGgqYS50by54LG91dGVySGVpZ2h0OnMuaGVpZ2h0KmEudG8ueSxvdXRlcldpZHRoOnMud2lkdGgqYS50by54fSxhLmZyb20ueSE9PWEudG8ueSYmKGkuZnJvbT1lLmVmZmVjdHMuc2V0VHJhbnNpdGlvbihpLGQsYS5mcm9tLnksaS5mcm9tKSxpLnRvPWUuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKGksZCxhLnRvLnksaS50bykpLGEuZnJvbS54IT09YS50by54JiYoaS5mcm9tPWUuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKGksYyxhLmZyb20ueCxpLmZyb20pLGkudG89ZS5lZmZlY3RzLnNldFRyYW5zaXRpb24oaSxjLGEudG8ueCxpLnRvKSksaS5jc3MoaS5mcm9tKSxpLmFuaW1hdGUoaS50byx0LmR1cmF0aW9uLHQuZWFzaW5nLGZ1bmN0aW9uKCl7ZiYmZS5lZmZlY3RzLnJlc3RvcmUoaSxsKX0pfSkpLG8uYW5pbWF0ZShvLnRvLHtxdWV1ZTohMSxkdXJhdGlvbjp0LmR1cmF0aW9uLGVhc2luZzp0LmVhc2luZyxjb21wbGV0ZTpmdW5jdGlvbigpezA9PT1vLnRvLm9wYWNpdHkmJm8uY3NzKCJvcGFjaXR5IixvLmZyb20ub3BhY2l0eSksImhpZGUiPT09cCYmby5oaWRlKCksZS5lZmZlY3RzLnJlc3RvcmUobyx5KSxmfHwoInN0YXRpYyI9PT12P28uY3NzKHtwb3NpdGlvbjoicmVsYXRpdmUiLHRvcDpvLnRvLnRvcCxsZWZ0Om8udG8ubGVmdH0pOmUuZWFjaChbInRvcCIsImxlZnQiXSxmdW5jdGlvbihlLHQpe28uY3NzKHQsZnVuY3Rpb24odCxpKXt2YXIgcz1wYXJzZUludChpLDEwKSxuPWU/by50by5sZWZ0Om8udG8udG9wO3JldHVybiJhdXRvIj09PWk/bisicHgiOnMrbisicHgifSl9KSksZS5lZmZlY3RzLnJlbW92ZVdyYXBwZXIobyksaSgpfX0pfSxlLmVmZmVjdHMuZWZmZWN0LnNjYWxlPWZ1bmN0aW9uKHQsaSl7dmFyIHM9ZSh0aGlzKSxuPWUuZXh0ZW5kKCEwLHt9LHQpLGE9ZS5lZmZlY3RzLnNldE1vZGUocyx0Lm1vZGV8fCJlZmZlY3QiKSxvPXBhcnNlSW50KHQucGVyY2VudCwxMCl8fCgwPT09cGFyc2VJbnQodC5wZXJjZW50LDEwKT8wOiJoaWRlIj09PWE/MDoxMDApLHI9dC5kaXJlY3Rpb258fCJib3RoIixoPXQub3JpZ2luLGw9e2hlaWdodDpzLmhlaWdodCgpLHdpZHRoOnMud2lkdGgoKSxvdXRlckhlaWdodDpzLm91dGVySGVpZ2h0KCksb3V0ZXJXaWR0aDpzLm91dGVyV2lkdGgoKX0sdT17eToiaG9yaXpvbnRhbCIhPT1yP28vMTAwOjEseDoidmVydGljYWwiIT09cj9vLzEwMDoxfTtuLmVmZmVjdD0ic2l6ZSIsbi5xdWV1ZT0hMSxuLmNvbXBsZXRlPWksImVmZmVjdCIhPT1hJiYobi5vcmlnaW49aHx8WyJtaWRkbGUiLCJjZW50ZXIiXSxuLnJlc3RvcmU9ITApLG4uZnJvbT10LmZyb218fCgic2hvdyI9PT1hP3toZWlnaHQ6MCx3aWR0aDowLG91dGVySGVpZ2h0OjAsb3V0ZXJXaWR0aDowfTpsKSxuLnRvPXtoZWlnaHQ6bC5oZWlnaHQqdS55LHdpZHRoOmwud2lkdGgqdS54LG91dGVySGVpZ2h0Omwub3V0ZXJIZWlnaHQqdS55LG91dGVyV2lkdGg6bC5vdXRlcldpZHRoKnUueH0sbi5mYWRlJiYoInNob3ciPT09YSYmKG4uZnJvbS5vcGFjaXR5PTAsbi50by5vcGFjaXR5PTEpLCJoaWRlIj09PWEmJihuLmZyb20ub3BhY2l0eT0xLG4udG8ub3BhY2l0eT0wKSkscy5lZmZlY3Qobil9LGUuZWZmZWN0cy5lZmZlY3QucHVmZj1mdW5jdGlvbih0LGkpe3ZhciBzPWUodGhpcyksbj1lLmVmZmVjdHMuc2V0TW9kZShzLHQubW9kZXx8ImhpZGUiKSxhPSJoaWRlIj09PW4sbz1wYXJzZUludCh0LnBlcmNlbnQsMTApfHwxNTAscj1vLzEwMCxoPXtoZWlnaHQ6cy5oZWlnaHQoKSx3aWR0aDpzLndpZHRoKCksb3V0ZXJIZWlnaHQ6cy5vdXRlckhlaWdodCgpLG91dGVyV2lkdGg6cy5vdXRlcldpZHRoKCl9O2UuZXh0ZW5kKHQse2VmZmVjdDoic2NhbGUiLHF1ZXVlOiExLGZhZGU6ITAsbW9kZTpuLGNvbXBsZXRlOmkscGVyY2VudDphP286MTAwLGZyb206YT9oOntoZWlnaHQ6aC5oZWlnaHQqcix3aWR0aDpoLndpZHRoKnIsb3V0ZXJIZWlnaHQ6aC5vdXRlckhlaWdodCpyLG91dGVyV2lkdGg6aC5vdXRlcldpZHRoKnJ9fSkscy5lZmZlY3QodCl9LGUuZWZmZWN0cy5lZmZlY3QucHVsc2F0ZT1mdW5jdGlvbih0LGkpe3ZhciBzLG49ZSh0aGlzKSxhPWUuZWZmZWN0cy5zZXRNb2RlKG4sdC5tb2RlfHwic2hvdyIpLG89InNob3ciPT09YSxyPSJoaWRlIj09PWEsaD1vfHwiaGlkZSI9PT1hLGw9MioodC50aW1lc3x8NSkrKGg/MTowKSx1PXQuZHVyYXRpb24vbCxkPTAsYz1uLnF1ZXVlKCkscD1jLmxlbmd0aDtmb3IoKG98fCFuLmlzKCI6dmlzaWJsZSIpKSYmKG4uY3NzKCJvcGFjaXR5IiwwKS5zaG93KCksZD0xKSxzPTE7bD5zO3MrKyluLmFuaW1hdGUoe29wYWNpdHk6ZH0sdSx0LmVhc2luZyksZD0xLWQ7bi5hbmltYXRlKHtvcGFjaXR5OmR9LHUsdC5lYXNpbmcpLG4ucXVldWUoZnVuY3Rpb24oKXtyJiZuLmhpZGUoKSxpKCl9KSxwPjEmJmMuc3BsaWNlLmFwcGx5KGMsWzEsMF0uY29uY2F0KGMuc3BsaWNlKHAsbCsxKSkpLG4uZGVxdWV1ZSgpfSxlLmVmZmVjdHMuZWZmZWN0LnNoYWtlPWZ1bmN0aW9uKHQsaSl7dmFyIHMsbj1lKHRoaXMpLGE9WyJwb3NpdGlvbiIsInRvcCIsImJvdHRvbSIsImxlZnQiLCJyaWdodCIsImhlaWdodCIsIndpZHRoIl0sbz1lLmVmZmVjdHMuc2V0TW9kZShuLHQubW9kZXx8ImVmZmVjdCIpLHI9dC5kaXJlY3Rpb258fCJsZWZ0IixoPXQuZGlzdGFuY2V8fDIwLGw9dC50aW1lc3x8Myx1PTIqbCsxLGQ9TWF0aC5yb3VuZCh0LmR1cmF0aW9uL3UpLGM9InVwIj09PXJ8fCJkb3duIj09PXI/InRvcCI6ImxlZnQiLHA9InVwIj09PXJ8fCJsZWZ0Ij09PXIsZj17fSxtPXt9LGc9e30sdj1uLnF1ZXVlKCkseT12Lmxlbmd0aDtmb3IoZS5lZmZlY3RzLnNhdmUobixhKSxuLnNob3coKSxlLmVmZmVjdHMuY3JlYXRlV3JhcHBlcihuKSxmW2NdPShwPyItPSI6Iis9IikraCxtW2NdPShwPyIrPSI6Ii09IikrMipoLGdbY109KHA/Ii09IjoiKz0iKSsyKmgsbi5hbmltYXRlKGYsZCx0LmVhc2luZykscz0xO2w+cztzKyspbi5hbmltYXRlKG0sZCx0LmVhc2luZykuYW5pbWF0ZShnLGQsdC5lYXNpbmcpO24uYW5pbWF0ZShtLGQsdC5lYXNpbmcpLmFuaW1hdGUoZixkLzIsdC5lYXNpbmcpLnF1ZXVlKGZ1bmN0aW9uKCl7ImhpZGUiPT09byYmbi5oaWRlKCksZS5lZmZlY3RzLnJlc3RvcmUobixhKSxlLmVmZmVjdHMucmVtb3ZlV3JhcHBlcihuKSxpKCl9KSx5PjEmJnYuc3BsaWNlLmFwcGx5KHYsWzEsMF0uY29uY2F0KHYuc3BsaWNlKHksdSsxKSkpLG4uZGVxdWV1ZSgpfSxlLmVmZmVjdHMuZWZmZWN0LnNsaWRlPWZ1bmN0aW9uKHQsaSl7dmFyIHMsbj1lKHRoaXMpLGE9WyJwb3NpdGlvbiIsInRvcCIsImJvdHRvbSIsImxlZnQiLCJyaWdodCIsIndpZHRoIiwiaGVpZ2h0Il0sbz1lLmVmZmVjdHMuc2V0TW9kZShuLHQubW9kZXx8InNob3ciKSxyPSJzaG93Ij09PW8saD10LmRpcmVjdGlvbnx8ImxlZnQiLGw9InVwIj09PWh8fCJkb3duIj09PWg/InRvcCI6ImxlZnQiLHU9InVwIj09PWh8fCJsZWZ0Ij09PWgsZD17fTtlLmVmZmVjdHMuc2F2ZShuLGEpLG4uc2hvdygpLHM9dC5kaXN0YW5jZXx8blsidG9wIj09PWw/Im91dGVySGVpZ2h0Ijoib3V0ZXJXaWR0aCJdKCEwKSxlLmVmZmVjdHMuY3JlYXRlV3JhcHBlcihuKS5jc3Moe292ZXJmbG93OiJoaWRkZW4ifSksciYmbi5jc3MobCx1P2lzTmFOKHMpPyItIitzOi1zOnMpLGRbbF09KHI/dT8iKz0iOiItPSI6dT8iLT0iOiIrPSIpK3Msbi5hbmltYXRlKGQse3F1ZXVlOiExLGR1cmF0aW9uOnQuZHVyYXRpb24sZWFzaW5nOnQuZWFzaW5nLGNvbXBsZXRlOmZ1bmN0aW9uKCl7ImhpZGUiPT09byYmbi5oaWRlKCksZS5lZmZlY3RzLnJlc3RvcmUobixhKSxlLmVmZmVjdHMucmVtb3ZlV3JhcHBlcihuKSxpKCl9fSl9LGUuZWZmZWN0cy5lZmZlY3QudHJhbnNmZXI9ZnVuY3Rpb24odCxpKXt2YXIgcz1lKHRoaXMpLG49ZSh0LnRvKSxhPSJmaXhlZCI9PT1uLmNzcygicG9zaXRpb24iKSxvPWUoImJvZHkiKSxyPWE/by5zY3JvbGxUb3AoKTowLGg9YT9vLnNjcm9sbExlZnQoKTowLGw9bi5vZmZzZXQoKSx1PXt0b3A6bC50b3AtcixsZWZ0OmwubGVmdC1oLGhlaWdodDpuLmlubmVySGVpZ2h0KCksd2lkdGg6bi5pbm5lcldpZHRoKCl9LGQ9cy5vZmZzZXQoKSxjPWUoIjxkaXYgY2xhc3M9J3VpLWVmZmVjdHMtdHJhbnNmZXInPjwvZGl2PiIpLmFwcGVuZFRvKGRvY3VtZW50LmJvZHkpLmFkZENsYXNzKHQuY2xhc3NOYW1lKS5jc3Moe3RvcDpkLnRvcC1yLGxlZnQ6ZC5sZWZ0LWgsaGVpZ2h0OnMuaW5uZXJIZWlnaHQoKSx3aWR0aDpzLmlubmVyV2lkdGgoKSxwb3NpdGlvbjphPyJmaXhlZCI6ImFic29sdXRlIn0pLmFuaW1hdGUodSx0LmR1cmF0aW9uLHQuZWFzaW5nLGZ1bmN0aW9uKCl7Yy5yZW1vdmUoKSxpKCl9KX0sZS53aWRnZXQoInVpLnByb2dyZXNzYmFyIix7dmVyc2lvbjoiMS4xMS40IixvcHRpb25zOnttYXg6MTAwLHZhbHVlOjAsY2hhbmdlOm51bGwsY29tcGxldGU6bnVsbH0sbWluOjAsX2NyZWF0ZTpmdW5jdGlvbigpe3RoaXMub2xkVmFsdWU9dGhpcy5vcHRpb25zLnZhbHVlPXRoaXMuX2NvbnN0cmFpbmVkVmFsdWUoKSx0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLXByb2dyZXNzYmFyIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIikuYXR0cih7cm9sZToicHJvZ3Jlc3NiYXIiLCJhcmlhLXZhbHVlbWluIjp0aGlzLm1pbn0pLHRoaXMudmFsdWVEaXY9ZSgiPGRpdiBjbGFzcz0ndWktcHJvZ3Jlc3NiYXItdmFsdWUgdWktd2lkZ2V0LWhlYWRlciB1aS1jb3JuZXItbGVmdCc+PC9kaXY+IikuYXBwZW5kVG8odGhpcy5lbGVtZW50KSx0aGlzLl9yZWZyZXNoVmFsdWUoKX0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXByb2dyZXNzYmFyIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIikucmVtb3ZlQXR0cigicm9sZSIpLnJlbW92ZUF0dHIoImFyaWEtdmFsdWVtaW4iKS5yZW1vdmVBdHRyKCJhcmlhLXZhbHVlbWF4IikucmVtb3ZlQXR0cigiYXJpYS12YWx1ZW5vdyIpLHRoaXMudmFsdWVEaXYucmVtb3ZlKCl9LHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDA9PT1lP3RoaXMub3B0aW9ucy52YWx1ZToodGhpcy5vcHRpb25zLnZhbHVlPXRoaXMuX2NvbnN0cmFpbmVkVmFsdWUoZSksdGhpcy5fcmVmcmVzaFZhbHVlKCksdm9pZCAwKX0sX2NvbnN0cmFpbmVkVmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXRoaXMub3B0aW9ucy52YWx1ZSksdGhpcy5pbmRldGVybWluYXRlPWU9PT0hMSwibnVtYmVyIiE9dHlwZW9mIGUmJihlPTApLHRoaXMuaW5kZXRlcm1pbmF0ZT8hMTpNYXRoLm1pbih0aGlzLm9wdGlvbnMubWF4LE1hdGgubWF4KHRoaXMubWluLGUpKX0sX3NldE9wdGlvbnM6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS52YWx1ZTtkZWxldGUgZS52YWx1ZSx0aGlzLl9zdXBlcihlKSx0aGlzLm9wdGlvbnMudmFsdWU9dGhpcy5fY29uc3RyYWluZWRWYWx1ZSh0KSx0aGlzLl9yZWZyZXNoVmFsdWUoKX0sX3NldE9wdGlvbjpmdW5jdGlvbihlLHQpeyJtYXgiPT09ZSYmKHQ9TWF0aC5tYXgodGhpcy5taW4sdCkpLCJkaXNhYmxlZCI9PT1lJiZ0aGlzLmVsZW1lbnQudG9nZ2xlQ2xhc3MoInVpLXN0YXRlLWRpc2FibGVkIiwhIXQpLmF0dHIoImFyaWEtZGlzYWJsZWQiLHQpLHRoaXMuX3N1cGVyKGUsdCl9LF9wZXJjZW50YWdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5kZXRlcm1pbmF0ZT8xMDA6MTAwKih0aGlzLm9wdGlvbnMudmFsdWUtdGhpcy5taW4pLyh0aGlzLm9wdGlvbnMubWF4LXRoaXMubWluKX0sX3JlZnJlc2hWYWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMub3B0aW9ucy52YWx1ZSxpPXRoaXMuX3BlcmNlbnRhZ2UoKTt0aGlzLnZhbHVlRGl2LnRvZ2dsZSh0aGlzLmluZGV0ZXJtaW5hdGV8fHQ+dGhpcy5taW4pLnRvZ2dsZUNsYXNzKCJ1aS1jb3JuZXItcmlnaHQiLHQ9PT10aGlzLm9wdGlvbnMubWF4KS53aWR0aChpLnRvRml4ZWQoMCkrIiUiKSx0aGlzLmVsZW1lbnQudG9nZ2xlQ2xhc3MoInVpLXByb2dyZXNzYmFyLWluZGV0ZXJtaW5hdGUiLHRoaXMuaW5kZXRlcm1pbmF0ZSksdGhpcy5pbmRldGVybWluYXRlPyh0aGlzLmVsZW1lbnQucmVtb3ZlQXR0cigiYXJpYS12YWx1ZW5vdyIpLHRoaXMub3ZlcmxheURpdnx8KHRoaXMub3ZlcmxheURpdj1lKCI8ZGl2IGNsYXNzPSd1aS1wcm9ncmVzc2Jhci1vdmVybGF5Jz48L2Rpdj4iKS5hcHBlbmRUbyh0aGlzLnZhbHVlRGl2KSkpOih0aGlzLmVsZW1lbnQuYXR0cih7ImFyaWEtdmFsdWVtYXgiOnRoaXMub3B0aW9ucy5tYXgsImFyaWEtdmFsdWVub3ciOnR9KSx0aGlzLm92ZXJsYXlEaXYmJih0aGlzLm92ZXJsYXlEaXYucmVtb3ZlKCksdGhpcy5vdmVybGF5RGl2PW51bGwpKSx0aGlzLm9sZFZhbHVlIT09dCYmKHRoaXMub2xkVmFsdWU9dCx0aGlzLl90cmlnZ2VyKCJjaGFuZ2UiKSksdD09PXRoaXMub3B0aW9ucy5tYXgmJnRoaXMuX3RyaWdnZXIoImNvbXBsZXRlIil9fSksZS53aWRnZXQoInVpLnNlbGVjdGFibGUiLGUudWkubW91c2Use3ZlcnNpb246IjEuMTEuNCIsb3B0aW9uczp7YXBwZW5kVG86ImJvZHkiLGF1dG9SZWZyZXNoOiEwLGRpc3RhbmNlOjAsZmlsdGVyOiIqIix0b2xlcmFuY2U6InRvdWNoIixzZWxlY3RlZDpudWxsLHNlbGVjdGluZzpudWxsLHN0YXJ0Om51bGwsc3RvcDpudWxsLHVuc2VsZWN0ZWQ6bnVsbCx1bnNlbGVjdGluZzpudWxsfSxfY3JlYXRlOmZ1bmN0aW9uKCl7dmFyIHQsaT10aGlzO3RoaXMuZWxlbWVudC5hZGRDbGFzcygidWktc2VsZWN0YWJsZSIpLHRoaXMuZHJhZ2dlZD0hMSx0aGlzLnJlZnJlc2g9ZnVuY3Rpb24oKXt0PWUoaS5vcHRpb25zLmZpbHRlcixpLmVsZW1lbnRbMF0pLHQuYWRkQ2xhc3MoInVpLXNlbGVjdGVlIiksdC5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKSxpPXQub2Zmc2V0KCk7ZS5kYXRhKHRoaXMsInNlbGVjdGFibGUtaXRlbSIse2VsZW1lbnQ6dGhpcywkZWxlbWVudDp0LGxlZnQ6aS5sZWZ0LHRvcDppLnRvcCxyaWdodDppLmxlZnQrdC5vdXRlcldpZHRoKCksYm90dG9tOmkudG9wK3Qub3V0ZXJIZWlnaHQoKSxzdGFydHNlbGVjdGVkOiExLHNlbGVjdGVkOnQuaGFzQ2xhc3MoInVpLXNlbGVjdGVkIiksc2VsZWN0aW5nOnQuaGFzQ2xhc3MoInVpLXNlbGVjdGluZyIpLHVuc2VsZWN0aW5nOnQuaGFzQ2xhc3MoInVpLXVuc2VsZWN0aW5nIil9KX0pfSx0aGlzLnJlZnJlc2goKSx0aGlzLnNlbGVjdGVlcz10LmFkZENsYXNzKCJ1aS1zZWxlY3RlZSIpLHRoaXMuX21vdXNlSW5pdCgpLHRoaXMuaGVscGVyPWUoIjxkaXYgY2xhc3M9J3VpLXNlbGVjdGFibGUtaGVscGVyJz48L2Rpdj4iKX0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGVlcy5yZW1vdmVDbGFzcygidWktc2VsZWN0ZWUiKS5yZW1vdmVEYXRhKCJzZWxlY3RhYmxlLWl0ZW0iKSx0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXNlbGVjdGFibGUgdWktc2VsZWN0YWJsZS1kaXNhYmxlZCIpLHRoaXMuX21vdXNlRGVzdHJveSgpfSxfbW91c2VTdGFydDpmdW5jdGlvbih0KXt2YXIgaT10aGlzLHM9dGhpcy5vcHRpb25zO3RoaXMub3Bvcz1bdC5wYWdlWCx0LnBhZ2VZXSx0aGlzLm9wdGlvbnMuZGlzYWJsZWR8fCh0aGlzLnNlbGVjdGVlcz1lKHMuZmlsdGVyLHRoaXMuZWxlbWVudFswXSksdGhpcy5fdHJpZ2dlcigic3RhcnQiLHQpLGUocy5hcHBlbmRUbykuYXBwZW5kKHRoaXMuaGVscGVyKSx0aGlzLmhlbHBlci5jc3Moe2xlZnQ6dC5wYWdlWCx0b3A6dC5wYWdlWSx3aWR0aDowLGhlaWdodDowfSkscy5hdXRvUmVmcmVzaCYmdGhpcy5yZWZyZXNoKCksdGhpcy5zZWxlY3RlZXMuZmlsdGVyKCIudWktc2VsZWN0ZWQiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHM9ZS5kYXRhKHRoaXMsInNlbGVjdGFibGUtaXRlbSIpO3Muc3RhcnRzZWxlY3RlZD0hMCx0Lm1ldGFLZXl8fHQuY3RybEtleXx8KHMuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXNlbGVjdGVkIikscy5zZWxlY3RlZD0hMSxzLiRlbGVtZW50LmFkZENsYXNzKCJ1aS11bnNlbGVjdGluZyIpLHMudW5zZWxlY3Rpbmc9ITAsaS5fdHJpZ2dlcigidW5zZWxlY3RpbmciLHQse3Vuc2VsZWN0aW5nOnMuZWxlbWVudH0pKX0pLGUodC50YXJnZXQpLnBhcmVudHMoKS5hZGRCYWNrKCkuZWFjaChmdW5jdGlvbigpe3ZhciBzLG49ZS5kYXRhKHRoaXMsInNlbGVjdGFibGUtaXRlbSIpO3JldHVybiBuPyhzPSF0Lm1ldGFLZXkmJiF0LmN0cmxLZXl8fCFuLiRlbGVtZW50Lmhhc0NsYXNzKCJ1aS1zZWxlY3RlZCIpLG4uJGVsZW1lbnQucmVtb3ZlQ2xhc3Mocz8idWktdW5zZWxlY3RpbmciOiJ1aS1zZWxlY3RlZCIpLmFkZENsYXNzKHM/InVpLXNlbGVjdGluZyI6InVpLXVuc2VsZWN0aW5nIiksbi51bnNlbGVjdGluZz0hcyxuLnNlbGVjdGluZz1zLG4uc2VsZWN0ZWQ9cyxzP2kuX3RyaWdnZXIoInNlbGVjdGluZyIsdCx7c2VsZWN0aW5nOm4uZWxlbWVudH0pOmkuX3RyaWdnZXIoInVuc2VsZWN0aW5nIix0LHt1bnNlbGVjdGluZzpuLmVsZW1lbnR9KSwhMSk6dm9pZCAwfSkpfSxfbW91c2VEcmFnOmZ1bmN0aW9uKHQpe2lmKHRoaXMuZHJhZ2dlZD0hMCwhdGhpcy5vcHRpb25zLmRpc2FibGVkKXt2YXIgaSxzPXRoaXMsbj10aGlzLm9wdGlvbnMsYT10aGlzLm9wb3NbMF0sbz10aGlzLm9wb3NbMV0scj10LnBhZ2VYLGg9dC5wYWdlWTtyZXR1cm4gYT5yJiYoaT1yLHI9YSxhPWkpLG8+aCYmKGk9aCxoPW8sbz1pKSx0aGlzLmhlbHBlci5jc3Moe2xlZnQ6YSx0b3A6byx3aWR0aDpyLWEsaGVpZ2h0Omgtb30pLHRoaXMuc2VsZWN0ZWVzLmVhY2goZnVuY3Rpb24oKXt2YXIgaT1lLmRhdGEodGhpcywic2VsZWN0YWJsZS1pdGVtIiksbD0hMTtpJiZpLmVsZW1lbnQhPT1zLmVsZW1lbnRbMF0mJigidG91Y2giPT09bi50b2xlcmFuY2U/bD0hKGkubGVmdD5yfHxhPmkucmlnaHR8fGkudG9wPmh8fG8+aS5ib3R0b20pOiJmaXQiPT09bi50b2xlcmFuY2UmJihsPWkubGVmdD5hJiZyPmkucmlnaHQmJmkudG9wPm8mJmg+aS5ib3R0b20pLGw/KGkuc2VsZWN0ZWQmJihpLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zZWxlY3RlZCIpLGkuc2VsZWN0ZWQ9ITEpLGkudW5zZWxlY3RpbmcmJihpLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS11bnNlbGVjdGluZyIpLGkudW5zZWxlY3Rpbmc9ITEpLGkuc2VsZWN0aW5nfHwoaS4kZWxlbWVudC5hZGRDbGFzcygidWktc2VsZWN0aW5nIiksaS5zZWxlY3Rpbmc9ITAscy5fdHJpZ2dlcigic2VsZWN0aW5nIix0LHtzZWxlY3Rpbmc6aS5lbGVtZW50fSkpKTooaS5zZWxlY3RpbmcmJigodC5tZXRhS2V5fHx0LmN0cmxLZXkpJiZpLnN0YXJ0c2VsZWN0ZWQ/KGkuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXNlbGVjdGluZyIpLGkuc2VsZWN0aW5nPSExLGkuJGVsZW1lbnQuYWRkQ2xhc3MoInVpLXNlbGVjdGVkIiksaS5zZWxlY3RlZD0hMCk6KGkuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXNlbGVjdGluZyIpLGkuc2VsZWN0aW5nPSExLGkuc3RhcnRzZWxlY3RlZCYmKGkuJGVsZW1lbnQuYWRkQ2xhc3MoInVpLXVuc2VsZWN0aW5nIiksaS51bnNlbGVjdGluZz0hMCkscy5fdHJpZ2dlcigidW5zZWxlY3RpbmciLHQse3Vuc2VsZWN0aW5nOmkuZWxlbWVudH0pKSksaS5zZWxlY3RlZCYmKHQubWV0YUtleXx8dC5jdHJsS2V5fHxpLnN0YXJ0c2VsZWN0ZWR8fChpLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zZWxlY3RlZCIpLGkuc2VsZWN0ZWQ9ITEsaS4kZWxlbWVudC5hZGRDbGFzcygidWktdW5zZWxlY3RpbmciKSxpLnVuc2VsZWN0aW5nPSEwLHMuX3RyaWdnZXIoInVuc2VsZWN0aW5nIix0LHt1bnNlbGVjdGluZzppLmVsZW1lbnR9KSkpKSl9KSwhMX19LF9tb3VzZVN0b3A6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcztyZXR1cm4gdGhpcy5kcmFnZ2VkPSExLGUoIi51aS11bnNlbGVjdGluZyIsdGhpcy5lbGVtZW50WzBdKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHM9ZS5kYXRhKHRoaXMsInNlbGVjdGFibGUtaXRlbSIpO3MuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXVuc2VsZWN0aW5nIikscy51bnNlbGVjdGluZz0hMSxzLnN0YXJ0c2VsZWN0ZWQ9ITEsaS5fdHJpZ2dlcigidW5zZWxlY3RlZCIsdCx7dW5zZWxlY3RlZDpzLmVsZW1lbnR9KX0pLGUoIi51aS1zZWxlY3RpbmciLHRoaXMuZWxlbWVudFswXSkuZWFjaChmdW5jdGlvbigpe3ZhciBzPWUuZGF0YSh0aGlzLCJzZWxlY3RhYmxlLWl0ZW0iKTtzLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zZWxlY3RpbmciKS5hZGRDbGFzcygidWktc2VsZWN0ZWQiKSxzLnNlbGVjdGluZz0hMSxzLnNlbGVjdGVkPSEwLHMuc3RhcnRzZWxlY3RlZD0hMCxpLl90cmlnZ2VyKCJzZWxlY3RlZCIsdCx7c2VsZWN0ZWQ6cy5lbGVtZW50fSl9KSx0aGlzLl90cmlnZ2VyKCJzdG9wIix0KSx0aGlzLmhlbHBlci5yZW1vdmUoKSwhMX19KSxlLndpZGdldCgidWkuc2VsZWN0bWVudSIse3ZlcnNpb246IjEuMTEuNCIsZGVmYXVsdEVsZW1lbnQ6IjxzZWxlY3Q+IixvcHRpb25zOnthcHBlbmRUbzpudWxsLGRpc2FibGVkOm51bGwsaWNvbnM6e2J1dHRvbjoidWktaWNvbi10cmlhbmdsZS0xLXMifSxwb3NpdGlvbjp7bXk6ImxlZnQgdG9wIixhdDoibGVmdCBib3R0b20iLGNvbGxpc2lvbjoibm9uZSJ9LHdpZHRoOm51bGwsY2hhbmdlOm51bGwsY2xvc2U6bnVsbCxmb2N1czpudWxsLG9wZW46bnVsbCxzZWxlY3Q6bnVsbH0sX2NyZWF0ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMuZWxlbWVudC51bmlxdWVJZCgpLmF0dHIoImlkIik7dGhpcy5pZHM9e2VsZW1lbnQ6ZSxidXR0b246ZSsiLWJ1dHRvbiIsbWVudTplKyItbWVudSJ9LHRoaXMuX2RyYXdCdXR0b24oKSx0aGlzLl9kcmF3TWVudSgpLHRoaXMub3B0aW9ucy5kaXNhYmxlZCYmdGhpcy5kaXNhYmxlKCl9LF9kcmF3QnV0dG9uOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLmxhYmVsPWUoImxhYmVsW2Zvcj0nIit0aGlzLmlkcy5lbGVtZW50KyInXSIpLmF0dHIoImZvciIsdGhpcy5pZHMuYnV0dG9uKSx0aGlzLl9vbih0aGlzLmxhYmVsLHtjbGljazpmdW5jdGlvbihlKXt0aGlzLmJ1dHRvbi5mb2N1cygpLGUucHJldmVudERlZmF1bHQoKX19KSx0aGlzLmVsZW1lbnQuaGlkZSgpLHRoaXMuYnV0dG9uPWUoIjxzcGFuPiIseyJjbGFzcyI6InVpLXNlbGVjdG1lbnUtYnV0dG9uIHVpLXdpZGdldCB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwiLHRhYmluZGV4OnRoaXMub3B0aW9ucy5kaXNhYmxlZD8tMTowLGlkOnRoaXMuaWRzLmJ1dHRvbixyb2xlOiJjb21ib2JveCIsImFyaWEtZXhwYW5kZWQiOiJmYWxzZSIsImFyaWEtYXV0b2NvbXBsZXRlIjoibGlzdCIsImFyaWEtb3ducyI6dGhpcy5pZHMubWVudSwiYXJpYS1oYXNwb3B1cCI6InRydWUifSkuaW5zZXJ0QWZ0ZXIodGhpcy5lbGVtZW50KSxlKCI8c3Bhbj4iLHsiY2xhc3MiOiJ1aS1pY29uICIrdGhpcy5vcHRpb25zLmljb25zLmJ1dHRvbn0pLnByZXBlbmRUbyh0aGlzLmJ1dHRvbiksdGhpcy5idXR0b25UZXh0PWUoIjxzcGFuPiIseyJjbGFzcyI6InVpLXNlbGVjdG1lbnUtdGV4dCJ9KS5hcHBlbmRUbyh0aGlzLmJ1dHRvbiksdGhpcy5fc2V0VGV4dCh0aGlzLmJ1dHRvblRleHQsdGhpcy5lbGVtZW50LmZpbmQoIm9wdGlvbjpzZWxlY3RlZCIpLnRleHQoKSksdGhpcy5fcmVzaXplQnV0dG9uKCksdGhpcy5fb24odGhpcy5idXR0b24sdGhpcy5fYnV0dG9uRXZlbnRzKSx0aGlzLmJ1dHRvbi5vbmUoImZvY3VzaW4iLGZ1bmN0aW9uKCl7dC5tZW51SXRlbXN8fHQuX3JlZnJlc2hNZW51KCl9KSx0aGlzLl9ob3ZlcmFibGUodGhpcy5idXR0b24pLHRoaXMuX2ZvY3VzYWJsZSh0aGlzLmJ1dHRvbil9LF9kcmF3TWVudTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5tZW51PWUoIjx1bD4iLHsiYXJpYS1oaWRkZW4iOiJ0cnVlIiwiYXJpYS1sYWJlbGxlZGJ5Ijp0aGlzLmlkcy5idXR0b24saWQ6dGhpcy5pZHMubWVudX0pLHRoaXMubWVudVdyYXA9ZSgiPGRpdj4iLHsiY2xhc3MiOiJ1aS1zZWxlY3RtZW51LW1lbnUgdWktZnJvbnQifSkuYXBwZW5kKHRoaXMubWVudSkuYXBwZW5kVG8odGhpcy5fYXBwZW5kVG8oKSksdGhpcy5tZW51SW5zdGFuY2U9dGhpcy5tZW51Lm1lbnUoe3JvbGU6Imxpc3Rib3giLHNlbGVjdDpmdW5jdGlvbihlLGkpe2UucHJldmVudERlZmF1bHQoKSx0Ll9zZXRTZWxlY3Rpb24oKSx0Ll9zZWxlY3QoaS5pdGVtLmRhdGEoInVpLXNlbGVjdG1lbnUtaXRlbSIpLGUpfSxmb2N1czpmdW5jdGlvbihlLGkpe3ZhciBzPWkuaXRlbS5kYXRhKCJ1aS1zZWxlY3RtZW51LWl0ZW0iKTtudWxsIT10LmZvY3VzSW5kZXgmJnMuaW5kZXghPT10LmZvY3VzSW5kZXgmJih0Ll90cmlnZ2VyKCJmb2N1cyIsZSx7aXRlbTpzfSksdC5pc09wZW58fHQuX3NlbGVjdChzLGUpKSx0LmZvY3VzSW5kZXg9cy5pbmRleCx0LmJ1dHRvbi5hdHRyKCJhcmlhLWFjdGl2ZWRlc2NlbmRhbnQiLHQubWVudUl0ZW1zLmVxKHMuaW5kZXgpLmF0dHIoImlkIikpfX0pLm1lbnUoImluc3RhbmNlIiksdGhpcy5tZW51LmFkZENsYXNzKCJ1aS1jb3JuZXItYm90dG9tIikucmVtb3ZlQ2xhc3MoInVpLWNvcm5lci1hbGwiKSx0aGlzLm1lbnVJbnN0YW5jZS5fb2ZmKHRoaXMubWVudSwibW91c2VsZWF2ZSIpLHRoaXMubWVudUluc3RhbmNlLl9jbG9zZU9uRG9jdW1lbnRDbGljaz1mdW5jdGlvbigpe3JldHVybiExfSx0aGlzLm1lbnVJbnN0YW5jZS5faXNEaXZpZGVyPWZ1bmN0aW9uKCl7cmV0dXJuITF9fSxyZWZyZXNoOmZ1bmN0aW9uKCl7dGhpcy5fcmVmcmVzaE1lbnUoKSx0aGlzLl9zZXRUZXh0KHRoaXMuYnV0dG9uVGV4dCx0aGlzLl9nZXRTZWxlY3RlZEl0ZW0oKS50ZXh0KCkpLHRoaXMub3B0aW9ucy53aWR0aHx8dGhpcy5fcmVzaXplQnV0dG9uKCl9LF9yZWZyZXNoTWVudTpmdW5jdGlvbigpe3RoaXMubWVudS5lbXB0eSgpO3ZhciBlLHQ9dGhpcy5lbGVtZW50LmZpbmQoIm9wdGlvbiIpO3QubGVuZ3RoJiYodGhpcy5fcGFyc2VPcHRpb25zKHQpLHRoaXMuX3JlbmRlck1lbnUodGhpcy5tZW51LHRoaXMuaXRlbXMpLHRoaXMubWVudUluc3RhbmNlLnJlZnJlc2goKSx0aGlzLm1lbnVJdGVtcz10aGlzLm1lbnUuZmluZCgibGkiKS5ub3QoIi51aS1zZWxlY3RtZW51LW9wdGdyb3VwIiksZT10aGlzLl9nZXRTZWxlY3RlZEl0ZW0oKSx0aGlzLm1lbnVJbnN0YW5jZS5mb2N1cyhudWxsLGUpLHRoaXMuX3NldEFyaWEoZS5kYXRhKCJ1aS1zZWxlY3RtZW51LWl0ZW0iKSksdGhpcy5fc2V0T3B0aW9uKCJkaXNhYmxlZCIsdGhpcy5lbGVtZW50LnByb3AoImRpc2FibGVkIikpKX0sb3BlbjpmdW5jdGlvbihlKXt0aGlzLm9wdGlvbnMuZGlzYWJsZWR8fCh0aGlzLm1lbnVJdGVtcz8odGhpcy5tZW51LmZpbmQoIi51aS1zdGF0ZS1mb2N1cyIpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpLHRoaXMubWVudUluc3RhbmNlLmZvY3VzKG51bGwsdGhpcy5fZ2V0U2VsZWN0ZWRJdGVtKCkpKTp0aGlzLl9yZWZyZXNoTWVudSgpLHRoaXMuaXNPcGVuPSEwLHRoaXMuX3RvZ2dsZUF0dHIoKSx0aGlzLl9yZXNpemVNZW51KCksdGhpcy5fcG9zaXRpb24oKSx0aGlzLl9vbih0aGlzLmRvY3VtZW50LHRoaXMuX2RvY3VtZW50Q2xpY2spLHRoaXMuX3RyaWdnZXIoIm9wZW4iLGUpKX0sX3Bvc2l0aW9uOmZ1bmN0aW9uKCl7dGhpcy5tZW51V3JhcC5wb3NpdGlvbihlLmV4dGVuZCh7b2Y6dGhpcy5idXR0b259LHRoaXMub3B0aW9ucy5wb3NpdGlvbikpfSxjbG9zZTpmdW5jdGlvbihlKXt0aGlzLmlzT3BlbiYmKHRoaXMuaXNPcGVuPSExLHRoaXMuX3RvZ2dsZUF0dHIoKSx0aGlzLnJhbmdlPW51bGwsdGhpcy5fb2ZmKHRoaXMuZG9jdW1lbnQpLHRoaXMuX3RyaWdnZXIoImNsb3NlIixlKSl9LHdpZGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmJ1dHRvbn0sbWVudVdpZGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1lbnV9LF9yZW5kZXJNZW51OmZ1bmN0aW9uKHQsaSl7dmFyIHM9dGhpcyxuPSIiO2UuZWFjaChpLGZ1bmN0aW9uKGksYSl7YS5vcHRncm91cCE9PW4mJihlKCI8bGk+Iix7ImNsYXNzIjoidWktc2VsZWN0bWVudS1vcHRncm91cCB1aS1tZW51LWRpdmlkZXIiKyhhLmVsZW1lbnQucGFyZW50KCJvcHRncm91cCIpLnByb3AoImRpc2FibGVkIik/IiB1aS1zdGF0ZS1kaXNhYmxlZCI6IiIpLHRleHQ6YS5vcHRncm91cH0pLmFwcGVuZFRvKHQpLG49YS5vcHRncm91cCkscy5fcmVuZGVySXRlbURhdGEodCxhKX0pfSxfcmVuZGVySXRlbURhdGE6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fcmVuZGVySXRlbShlLHQpLmRhdGEoInVpLXNlbGVjdG1lbnUtaXRlbSIsdCl9LF9yZW5kZXJJdGVtOmZ1bmN0aW9uKHQsaSl7dmFyIHM9ZSgiPGxpPiIpO3JldHVybiBpLmRpc2FibGVkJiZzLmFkZENsYXNzKCJ1aS1zdGF0ZS1kaXNhYmxlZCIpLHRoaXMuX3NldFRleHQocyxpLmxhYmVsKSxzLmFwcGVuZFRvKHQpfSxfc2V0VGV4dDpmdW5jdGlvbihlLHQpe3Q/ZS50ZXh0KHQpOmUuaHRtbCgiJiMxNjA7Iil9LF9tb3ZlOmZ1bmN0aW9uKGUsdCl7dmFyIGkscyxuPSIudWktbWVudS1pdGVtIjt0aGlzLmlzT3Blbj9pPXRoaXMubWVudUl0ZW1zLmVxKHRoaXMuZm9jdXNJbmRleCk6KGk9dGhpcy5tZW51SXRlbXMuZXEodGhpcy5lbGVtZW50WzBdLnNlbGVjdGVkSW5kZXgpLG4rPSI6bm90KC51aS1zdGF0ZS1kaXNhYmxlZCkiKSxzPSJmaXJzdCI9PT1lfHwibGFzdCI9PT1lP2lbImZpcnN0Ij09PWU/InByZXZBbGwiOiJuZXh0QWxsIl0obikuZXEoLTEpOmlbZSsiQWxsIl0obikuZXEoMCkscy5sZW5ndGgmJnRoaXMubWVudUluc3RhbmNlLmZvY3VzKHQscyl9LF9nZXRTZWxlY3RlZEl0ZW06ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tZW51SXRlbXMuZXEodGhpcy5lbGVtZW50WzBdLnNlbGVjdGVkSW5kZXgpfSxfdG9nZ2xlOmZ1bmN0aW9uKGUpe3RoaXNbdGhpcy5pc09wZW4/ImNsb3NlIjoib3BlbiJdKGUpfSxfc2V0U2VsZWN0aW9uOmZ1bmN0aW9uKCl7dmFyIGU7dGhpcy5yYW5nZSYmKHdpbmRvdy5nZXRTZWxlY3Rpb24/KGU9d2luZG93LmdldFNlbGVjdGlvbigpLGUucmVtb3ZlQWxsUmFuZ2VzKCksZS5hZGRSYW5nZSh0aGlzLnJhbmdlKSk6dGhpcy5yYW5nZS5zZWxlY3QoKSx0aGlzLmJ1dHRvbi5mb2N1cygpKX0sX2RvY3VtZW50Q2xpY2s6e21vdXNlZG93bjpmdW5jdGlvbih0KXt0aGlzLmlzT3BlbiYmKGUodC50YXJnZXQpLmNsb3Nlc3QoIi51aS1zZWxlY3RtZW51LW1lbnUsICMiK3RoaXMuaWRzLmJ1dHRvbikubGVuZ3RofHx0aGlzLmNsb3NlKHQpKX19LF9idXR0b25FdmVudHM6e21vdXNlZG93bjpmdW5jdGlvbigpe3ZhciBlO3dpbmRvdy5nZXRTZWxlY3Rpb24/KGU9d2luZG93LmdldFNlbGVjdGlvbigpLGUucmFuZ2VDb3VudCYmKHRoaXMucmFuZ2U9ZS5nZXRSYW5nZUF0KDApKSk6dGhpcy5yYW5nZT1kb2N1bWVudC5zZWxlY3Rpb24uY3JlYXRlUmFuZ2UoKX0sY2xpY2s6ZnVuY3Rpb24oZSl7dGhpcy5fc2V0U2VsZWN0aW9uKCksdGhpcy5fdG9nZ2xlKGUpfSxrZXlkb3duOmZ1bmN0aW9uKHQpe3ZhciBpPSEwO3N3aXRjaCh0LmtleUNvZGUpe2Nhc2UgZS51aS5rZXlDb2RlLlRBQjpjYXNlIGUudWkua2V5Q29kZS5FU0NBUEU6dGhpcy5jbG9zZSh0KSxpPSExO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkVOVEVSOnRoaXMuaXNPcGVuJiZ0aGlzLl9zZWxlY3RGb2N1c2VkSXRlbSh0KTticmVhaztjYXNlIGUudWkua2V5Q29kZS5VUDp0LmFsdEtleT90aGlzLl90b2dnbGUodCk6dGhpcy5fbW92ZSgicHJldiIsdCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuRE9XTjp0LmFsdEtleT90aGlzLl90b2dnbGUodCk6dGhpcy5fbW92ZSgibmV4dCIsdCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuU1BBQ0U6dGhpcy5pc09wZW4/dGhpcy5fc2VsZWN0Rm9jdXNlZEl0ZW0odCk6dGhpcy5fdG9nZ2xlKHQpO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkxFRlQ6dGhpcy5fbW92ZSgicHJldiIsdCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuUklHSFQ6dGhpcy5fbW92ZSgibmV4dCIsdCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuSE9NRTpjYXNlIGUudWkua2V5Q29kZS5QQUdFX1VQOnRoaXMuX21vdmUoImZpcnN0Iix0KTticmVhaztjYXNlIGUudWkua2V5Q29kZS5FTkQ6Y2FzZSBlLnVpLmtleUNvZGUuUEFHRV9ET1dOOnRoaXMuX21vdmUoImxhc3QiLHQpO2JyZWFrO2RlZmF1bHQ6dGhpcy5tZW51LnRyaWdnZXIodCksaT0hMX1pJiZ0LnByZXZlbnREZWZhdWx0KCl9fSxfc2VsZWN0Rm9jdXNlZEl0ZW06ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5tZW51SXRlbXMuZXEodGhpcy5mb2N1c0luZGV4KTt0Lmhhc0NsYXNzKCJ1aS1zdGF0ZS1kaXNhYmxlZCIpfHx0aGlzLl9zZWxlY3QodC5kYXRhKCJ1aS1zZWxlY3RtZW51LWl0ZW0iKSxlKX0sX3NlbGVjdDpmdW5jdGlvbihlLHQpe3ZhciBpPXRoaXMuZWxlbWVudFswXS5zZWxlY3RlZEluZGV4O3RoaXMuZWxlbWVudFswXS5zZWxlY3RlZEluZGV4PWUuaW5kZXgsdGhpcy5fc2V0VGV4dCh0aGlzLmJ1dHRvblRleHQsZS5sYWJlbCksdGhpcy5fc2V0QXJpYShlKSx0aGlzLl90cmlnZ2VyKCJzZWxlY3QiLHQse2l0ZW06ZX0pLGUuaW5kZXghPT1pJiZ0aGlzLl90cmlnZ2VyKCJjaGFuZ2UiLHQse2l0ZW06ZX0pLHRoaXMuY2xvc2UodCl9LF9zZXRBcmlhOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMubWVudUl0ZW1zLmVxKGUuaW5kZXgpLmF0dHIoImlkIik7dGhpcy5idXR0b24uYXR0cih7ImFyaWEtbGFiZWxsZWRieSI6dCwiYXJpYS1hY3RpdmVkZXNjZW5kYW50Ijp0fSksdGhpcy5tZW51LmF0dHIoImFyaWEtYWN0aXZlZGVzY2VuZGFudCIsdCl9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXsiaWNvbnMiPT09ZSYmdGhpcy5idXR0b24uZmluZCgic3Bhbi51aS1pY29uIikucmVtb3ZlQ2xhc3ModGhpcy5vcHRpb25zLmljb25zLmJ1dHRvbikuYWRkQ2xhc3ModC5idXR0b24pLHRoaXMuX3N1cGVyKGUsdCksImFwcGVuZFRvIj09PWUmJnRoaXMubWVudVdyYXAuYXBwZW5kVG8odGhpcy5fYXBwZW5kVG8oKSksImRpc2FibGVkIj09PWUmJih0aGlzLm1lbnVJbnN0YW5jZS5vcHRpb24oImRpc2FibGVkIix0KSx0aGlzLmJ1dHRvbi50b2dnbGVDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiLHQpLmF0dHIoImFyaWEtZGlzYWJsZWQiLHQpLHRoaXMuZWxlbWVudC5wcm9wKCJkaXNhYmxlZCIsdCksdD8odGhpcy5idXR0b24uYXR0cigidGFiaW5kZXgiLC0xKSx0aGlzLmNsb3NlKCkpOnRoaXMuYnV0dG9uLmF0dHIoInRhYmluZGV4IiwwKSksIndpZHRoIj09PWUmJnRoaXMuX3Jlc2l6ZUJ1dHRvbigpfSxfYXBwZW5kVG86ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMuYXBwZW5kVG87cmV0dXJuIHQmJih0PXQuanF1ZXJ5fHx0Lm5vZGVUeXBlP2UodCk6dGhpcy5kb2N1bWVudC5maW5kKHQpLmVxKDApKSx0JiZ0WzBdfHwodD10aGlzLmVsZW1lbnQuY2xvc2VzdCgiLnVpLWZyb250IikpLHQubGVuZ3RofHwodD10aGlzLmRvY3VtZW50WzBdLmJvZHkpLHR9LF90b2dnbGVBdHRyOmZ1bmN0aW9uKCl7dGhpcy5idXR0b24udG9nZ2xlQ2xhc3MoInVpLWNvcm5lci10b3AiLHRoaXMuaXNPcGVuKS50b2dnbGVDbGFzcygidWktY29ybmVyLWFsbCIsIXRoaXMuaXNPcGVuKS5hdHRyKCJhcmlhLWV4cGFuZGVkIix0aGlzLmlzT3BlbiksdGhpcy5tZW51V3JhcC50b2dnbGVDbGFzcygidWktc2VsZWN0bWVudS1vcGVuIix0aGlzLmlzT3BlbiksdGhpcy5tZW51LmF0dHIoImFyaWEtaGlkZGVuIiwhdGhpcy5pc09wZW4pfSxfcmVzaXplQnV0dG9uOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcHRpb25zLndpZHRoO2V8fChlPXRoaXMuZWxlbWVudC5zaG93KCkub3V0ZXJXaWR0aCgpLHRoaXMuZWxlbWVudC5oaWRlKCkpLHRoaXMuYnV0dG9uLm91dGVyV2lkdGgoZSl9LF9yZXNpemVNZW51OmZ1bmN0aW9uKCl7dGhpcy5tZW51Lm91dGVyV2lkdGgoTWF0aC5tYXgodGhpcy5idXR0b24ub3V0ZXJXaWR0aCgpLHRoaXMubWVudS53aWR0aCgiIikub3V0ZXJXaWR0aCgpKzEpKX0sX2dldENyZWF0ZU9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm57ZGlzYWJsZWQ6dGhpcy5lbGVtZW50LnByb3AoImRpc2FibGVkIil9fSxfcGFyc2VPcHRpb25zOmZ1bmN0aW9uKHQpe3ZhciBpPVtdO3QuZWFjaChmdW5jdGlvbih0LHMpe3ZhciBuPWUocyksYT1uLnBhcmVudCgib3B0Z3JvdXAiKTtpLnB1c2goe2VsZW1lbnQ6bixpbmRleDp0LHZhbHVlOm4udmFsKCksbGFiZWw6bi50ZXh0KCksb3B0Z3JvdXA6YS5hdHRyKCJsYWJlbCIpfHwiIixkaXNhYmxlZDphLnByb3AoImRpc2FibGVkIil8fG4ucHJvcCgiZGlzYWJsZWQiKX0pfSksdGhpcy5pdGVtcz1pfSxfZGVzdHJveTpmdW5jdGlvbigpe3RoaXMubWVudVdyYXAucmVtb3ZlKCksdGhpcy5idXR0b24ucmVtb3ZlKCksdGhpcy5lbGVtZW50LnNob3coKSx0aGlzLmVsZW1lbnQucmVtb3ZlVW5pcXVlSWQoKSx0aGlzLmxhYmVsLmF0dHIoImZvciIsdGhpcy5pZHMuZWxlbWVudCl9fSksZS53aWRnZXQoInVpLnNsaWRlciIsZS51aS5tb3VzZSx7dmVyc2lvbjoiMS4xMS40Iix3aWRnZXRFdmVudFByZWZpeDoic2xpZGUiLG9wdGlvbnM6e2FuaW1hdGU6ITEsZGlzdGFuY2U6MCxtYXg6MTAwLG1pbjowLG9yaWVudGF0aW9uOiJob3Jpem9udGFsIixyYW5nZTohMSxzdGVwOjEsdmFsdWU6MCx2YWx1ZXM6bnVsbCxjaGFuZ2U6bnVsbCxzbGlkZTpudWxsLHN0YXJ0Om51bGwsc3RvcDpudWxsfSxudW1QYWdlczo1LF9jcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLl9rZXlTbGlkaW5nPSExLHRoaXMuX21vdXNlU2xpZGluZz0hMSx0aGlzLl9hbmltYXRlT2ZmPSEwLHRoaXMuX2hhbmRsZUluZGV4PW51bGwsdGhpcy5fZGV0ZWN0T3JpZW50YXRpb24oKSx0aGlzLl9tb3VzZUluaXQoKSx0aGlzLl9jYWxjdWxhdGVOZXdNYXgoKSx0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLXNsaWRlciB1aS1zbGlkZXItIit0aGlzLm9yaWVudGF0aW9uKyIgdWktd2lkZ2V0IisiIHVpLXdpZGdldC1jb250ZW50IisiIHVpLWNvcm5lci1hbGwiKSx0aGlzLl9yZWZyZXNoKCksdGhpcy5fc2V0T3B0aW9uKCJkaXNhYmxlZCIsdGhpcy5vcHRpb25zLmRpc2FibGVkKSx0aGlzLl9hbmltYXRlT2ZmPSExfSxfcmVmcmVzaDpmdW5jdGlvbigpe3RoaXMuX2NyZWF0ZVJhbmdlKCksdGhpcy5fY3JlYXRlSGFuZGxlcygpLHRoaXMuX3NldHVwRXZlbnRzKCksdGhpcy5fcmVmcmVzaFZhbHVlKCl9LF9jcmVhdGVIYW5kbGVzOmZ1bmN0aW9uKCl7dmFyIHQsaSxzPXRoaXMub3B0aW9ucyxuPXRoaXMuZWxlbWVudC5maW5kKCIudWktc2xpZGVyLWhhbmRsZSIpLmFkZENsYXNzKCJ1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwiKSxhPSI8c3BhbiBjbGFzcz0ndWktc2xpZGVyLWhhbmRsZSB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwnIHRhYmluZGV4PScwJz48L3NwYW4+IixvPVtdO2ZvcihpPXMudmFsdWVzJiZzLnZhbHVlcy5sZW5ndGh8fDEsbi5sZW5ndGg+aSYmKG4uc2xpY2UoaSkucmVtb3ZlKCksbj1uLnNsaWNlKDAsaSkpLHQ9bi5sZW5ndGg7aT50O3QrKylvLnB1c2goYSk7dGhpcy5oYW5kbGVzPW4uYWRkKGUoby5qb2luKCIiKSkuYXBwZW5kVG8odGhpcy5lbGVtZW50KSksdGhpcy5oYW5kbGU9dGhpcy5oYW5kbGVzLmVxKDApLHRoaXMuaGFuZGxlcy5lYWNoKGZ1bmN0aW9uKHQpe2UodGhpcykuZGF0YSgidWktc2xpZGVyLWhhbmRsZS1pbmRleCIsdCl9KX0sX2NyZWF0ZVJhbmdlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcHRpb25zLGk9IiI7dC5yYW5nZT8odC5yYW5nZT09PSEwJiYodC52YWx1ZXM/dC52YWx1ZXMubGVuZ3RoJiYyIT09dC52YWx1ZXMubGVuZ3RoP3QudmFsdWVzPVt0LnZhbHVlc1swXSx0LnZhbHVlc1swXV06ZS5pc0FycmF5KHQudmFsdWVzKSYmKHQudmFsdWVzPXQudmFsdWVzLnNsaWNlKDApKTp0LnZhbHVlcz1bdGhpcy5fdmFsdWVNaW4oKSx0aGlzLl92YWx1ZU1pbigpXSksdGhpcy5yYW5nZSYmdGhpcy5yYW5nZS5sZW5ndGg/dGhpcy5yYW5nZS5yZW1vdmVDbGFzcygidWktc2xpZGVyLXJhbmdlLW1pbiB1aS1zbGlkZXItcmFuZ2UtbWF4IikuY3NzKHtsZWZ0OiIiLGJvdHRvbToiIn0pOih0aGlzLnJhbmdlPWUoIjxkaXY+PC9kaXY+IikuYXBwZW5kVG8odGhpcy5lbGVtZW50KSxpPSJ1aS1zbGlkZXItcmFuZ2UgdWktd2lkZ2V0LWhlYWRlciB1aS1jb3JuZXItYWxsIiksdGhpcy5yYW5nZS5hZGRDbGFzcyhpKygibWluIj09PXQucmFuZ2V8fCJtYXgiPT09dC5yYW5nZT8iIHVpLXNsaWRlci1yYW5nZS0iK3QucmFuZ2U6IiIpKSk6KHRoaXMucmFuZ2UmJnRoaXMucmFuZ2UucmVtb3ZlKCksdGhpcy5yYW5nZT1udWxsKX0sX3NldHVwRXZlbnRzOmZ1bmN0aW9uKCl7dGhpcy5fb2ZmKHRoaXMuaGFuZGxlcyksdGhpcy5fb24odGhpcy5oYW5kbGVzLHRoaXMuX2hhbmRsZUV2ZW50cyksdGhpcy5faG92ZXJhYmxlKHRoaXMuaGFuZGxlcyksdGhpcy5fZm9jdXNhYmxlKHRoaXMuaGFuZGxlcyl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5oYW5kbGVzLnJlbW92ZSgpLHRoaXMucmFuZ2UmJnRoaXMucmFuZ2UucmVtb3ZlKCksdGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zbGlkZXIgdWktc2xpZGVyLWhvcml6b250YWwgdWktc2xpZGVyLXZlcnRpY2FsIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIiksdGhpcy5fbW91c2VEZXN0cm95KCl9LF9tb3VzZUNhcHR1cmU6ZnVuY3Rpb24odCl7dmFyIGkscyxuLGEsbyxyLGgsbCx1PXRoaXMsZD10aGlzLm9wdGlvbnM7cmV0dXJuIGQuZGlzYWJsZWQ/ITE6KHRoaXMuZWxlbWVudFNpemU9e3dpZHRoOnRoaXMuZWxlbWVudC5vdXRlcldpZHRoKCksaGVpZ2h0OnRoaXMuZWxlbWVudC5vdXRlckhlaWdodCgpfSx0aGlzLmVsZW1lbnRPZmZzZXQ9dGhpcy5lbGVtZW50Lm9mZnNldCgpLGk9e3g6dC5wYWdlWCx5OnQucGFnZVl9LHM9dGhpcy5fbm9ybVZhbHVlRnJvbU1vdXNlKGkpLG49dGhpcy5fdmFsdWVNYXgoKS10aGlzLl92YWx1ZU1pbigpKzEsdGhpcy5oYW5kbGVzLmVhY2goZnVuY3Rpb24odCl7dmFyIGk9TWF0aC5hYnMocy11LnZhbHVlcyh0KSk7KG4+aXx8bj09PWkmJih0PT09dS5fbGFzdENoYW5nZWRWYWx1ZXx8dS52YWx1ZXModCk9PT1kLm1pbikpJiYobj1pLGE9ZSh0aGlzKSxvPXQpfSkscj10aGlzLl9zdGFydCh0LG8pLHI9PT0hMT8hMToodGhpcy5fbW91c2VTbGlkaW5nPSEwLHRoaXMuX2hhbmRsZUluZGV4PW8sYS5hZGRDbGFzcygidWktc3RhdGUtYWN0aXZlIikuZm9jdXMoKSxoPWEub2Zmc2V0KCksbD0hZSh0LnRhcmdldCkucGFyZW50cygpLmFkZEJhY2soKS5pcygiLnVpLXNsaWRlci1oYW5kbGUiKSx0aGlzLl9jbGlja09mZnNldD1sP3tsZWZ0OjAsdG9wOjB9OntsZWZ0OnQucGFnZVgtaC5sZWZ0LWEud2lkdGgoKS8yLHRvcDp0LnBhZ2VZLWgudG9wLWEuaGVpZ2h0KCkvMi0ocGFyc2VJbnQoYS5jc3MoImJvcmRlclRvcFdpZHRoIiksMTApfHwwKS0ocGFyc2VJbnQoYS5jc3MoImJvcmRlckJvdHRvbVdpZHRoIiksMTApfHwwKSsocGFyc2VJbnQoYS5jc3MoIm1hcmdpblRvcCIpLDEwKXx8MCl9LHRoaXMuaGFuZGxlcy5oYXNDbGFzcygidWktc3RhdGUtaG92ZXIiKXx8dGhpcy5fc2xpZGUodCxvLHMpLHRoaXMuX2FuaW1hdGVPZmY9ITAsITApKX0sX21vdXNlU3RhcnQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sX21vdXNlRHJhZzpmdW5jdGlvbihlKXt2YXIgdD17eDplLnBhZ2VYLHk6ZS5wYWdlWX0saT10aGlzLl9ub3JtVmFsdWVGcm9tTW91c2UodCk7cmV0dXJuIHRoaXMuX3NsaWRlKGUsdGhpcy5faGFuZGxlSW5kZXgsaSksITF9LF9tb3VzZVN0b3A6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuaGFuZGxlcy5yZW1vdmVDbGFzcygidWktc3RhdGUtYWN0aXZlIiksdGhpcy5fbW91c2VTbGlkaW5nPSExLHRoaXMuX3N0b3AoZSx0aGlzLl9oYW5kbGVJbmRleCksdGhpcy5fY2hhbmdlKGUsdGhpcy5faGFuZGxlSW5kZXgpLHRoaXMuX2hhbmRsZUluZGV4PW51bGwsdGhpcy5fY2xpY2tPZmZzZXQ9bnVsbCx0aGlzLl9hbmltYXRlT2ZmPSExLCExfSxfZGV0ZWN0T3JpZW50YXRpb246ZnVuY3Rpb24oKXt0aGlzLm9yaWVudGF0aW9uPSJ2ZXJ0aWNhbCI9PT10aGlzLm9wdGlvbnMub3JpZW50YXRpb24/InZlcnRpY2FsIjoiaG9yaXpvbnRhbCJ9LF9ub3JtVmFsdWVGcm9tTW91c2U6ZnVuY3Rpb24oZSl7dmFyIHQsaSxzLG4sYTtyZXR1cm4iaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uPyh0PXRoaXMuZWxlbWVudFNpemUud2lkdGgsaT1lLngtdGhpcy5lbGVtZW50T2Zmc2V0LmxlZnQtKHRoaXMuX2NsaWNrT2Zmc2V0P3RoaXMuX2NsaWNrT2Zmc2V0LmxlZnQ6MCkpOih0PXRoaXMuZWxlbWVudFNpemUuaGVpZ2h0LGk9ZS55LXRoaXMuZWxlbWVudE9mZnNldC50b3AtKHRoaXMuX2NsaWNrT2Zmc2V0P3RoaXMuX2NsaWNrT2Zmc2V0LnRvcDowKSkscz1pL3Qscz4xJiYocz0xKSwwPnMmJihzPTApLCJ2ZXJ0aWNhbCI9PT10aGlzLm9yaWVudGF0aW9uJiYocz0xLXMpLG49dGhpcy5fdmFsdWVNYXgoKS10aGlzLl92YWx1ZU1pbigpLGE9dGhpcy5fdmFsdWVNaW4oKStzKm4sdGhpcy5fdHJpbUFsaWduVmFsdWUoYSl9LF9zdGFydDpmdW5jdGlvbihlLHQpe3ZhciBpPXtoYW5kbGU6dGhpcy5oYW5kbGVzW3RdLHZhbHVlOnRoaXMudmFsdWUoKX07cmV0dXJuIHRoaXMub3B0aW9ucy52YWx1ZXMmJnRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoJiYoaS52YWx1ZT10aGlzLnZhbHVlcyh0KSxpLnZhbHVlcz10aGlzLnZhbHVlcygpKSx0aGlzLl90cmlnZ2VyKCJzdGFydCIsZSxpKX0sX3NsaWRlOmZ1bmN0aW9uKGUsdCxpKXt2YXIgcyxuLGE7dGhpcy5vcHRpb25zLnZhbHVlcyYmdGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGg/KHM9dGhpcy52YWx1ZXModD8wOjEpLDI9PT10aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aCYmdGhpcy5vcHRpb25zLnJhbmdlPT09ITAmJigwPT09dCYmaT5zfHwxPT09dCYmcz5pKSYmKGk9cyksaSE9PXRoaXMudmFsdWVzKHQpJiYobj10aGlzLnZhbHVlcygpLG5bdF09aSxhPXRoaXMuX3RyaWdnZXIoInNsaWRlIixlLHtoYW5kbGU6dGhpcy5oYW5kbGVzW3RdLHZhbHVlOmksdmFsdWVzOm59KSxzPXRoaXMudmFsdWVzKHQ/MDoxKSxhIT09ITEmJnRoaXMudmFsdWVzKHQsaSkpKTppIT09dGhpcy52YWx1ZSgpJiYoYT10aGlzLl90cmlnZ2VyKCJzbGlkZSIsZSx7aGFuZGxlOnRoaXMuaGFuZGxlc1t0XSx2YWx1ZTppfSksYSE9PSExJiZ0aGlzLnZhbHVlKGkpKX0sX3N0b3A6ZnVuY3Rpb24oZSx0KXt2YXIgaT17aGFuZGxlOnRoaXMuaGFuZGxlc1t0XSx2YWx1ZTp0aGlzLnZhbHVlKCl9O3RoaXMub3B0aW9ucy52YWx1ZXMmJnRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoJiYoaS52YWx1ZT10aGlzLnZhbHVlcyh0KSxpLnZhbHVlcz10aGlzLnZhbHVlcygpKSx0aGlzLl90cmlnZ2VyKCJzdG9wIixlLGkpfSxfY2hhbmdlOmZ1bmN0aW9uKGUsdCl7aWYoIXRoaXMuX2tleVNsaWRpbmcmJiF0aGlzLl9tb3VzZVNsaWRpbmcpe3ZhciBpPXtoYW5kbGU6dGhpcy5oYW5kbGVzW3RdLHZhbHVlOnRoaXMudmFsdWUoKX07dGhpcy5vcHRpb25zLnZhbHVlcyYmdGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGgmJihpLnZhbHVlPXRoaXMudmFsdWVzKHQpLGkudmFsdWVzPXRoaXMudmFsdWVzKCkpLHRoaXMuX2xhc3RDaGFuZ2VkVmFsdWU9dCx0aGlzLl90cmlnZ2VyKCJjaGFuZ2UiLGUsaSl9fSx2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5vcHRpb25zLnZhbHVlPXRoaXMuX3RyaW1BbGlnblZhbHVlKGUpLHRoaXMuX3JlZnJlc2hWYWx1ZSgpLHRoaXMuX2NoYW5nZShudWxsLDApLHZvaWQgMCk6dGhpcy5fdmFsdWUoKX0sdmFsdWVzOmZ1bmN0aW9uKHQsaSl7dmFyIHMsbixhO2lmKGFyZ3VtZW50cy5sZW5ndGg+MSlyZXR1cm4gdGhpcy5vcHRpb25zLnZhbHVlc1t0XT10aGlzLl90cmltQWxpZ25WYWx1ZShpKSx0aGlzLl9yZWZyZXNoVmFsdWUoKSx0aGlzLl9jaGFuZ2UobnVsbCx0KSx2b2lkIDA7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHRoaXMuX3ZhbHVlcygpO2lmKCFlLmlzQXJyYXkoYXJndW1lbnRzWzBdKSlyZXR1cm4gdGhpcy5vcHRpb25zLnZhbHVlcyYmdGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGg/dGhpcy5fdmFsdWVzKHQpOnRoaXMudmFsdWUoKTtmb3Iocz10aGlzLm9wdGlvbnMudmFsdWVzLG49YXJndW1lbnRzWzBdLGE9MDtzLmxlbmd0aD5hO2ErPTEpc1thXT10aGlzLl90cmltQWxpZ25WYWx1ZShuW2FdKSx0aGlzLl9jaGFuZ2UobnVsbCxhKTt0aGlzLl9yZWZyZXNoVmFsdWUoKX0sX3NldE9wdGlvbjpmdW5jdGlvbih0LGkpe3ZhciBzLG49MDtzd2l0Y2goInJhbmdlIj09PXQmJnRoaXMub3B0aW9ucy5yYW5nZT09PSEwJiYoIm1pbiI9PT1pPyh0aGlzLm9wdGlvbnMudmFsdWU9dGhpcy5fdmFsdWVzKDApLHRoaXMub3B0aW9ucy52YWx1ZXM9bnVsbCk6Im1heCI9PT1pJiYodGhpcy5vcHRpb25zLnZhbHVlPXRoaXMuX3ZhbHVlcyh0aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aC0xKSx0aGlzLm9wdGlvbnMudmFsdWVzPW51bGwpKSxlLmlzQXJyYXkodGhpcy5vcHRpb25zLnZhbHVlcykmJihuPXRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoKSwiZGlzYWJsZWQiPT09dCYmdGhpcy5lbGVtZW50LnRvZ2dsZUNsYXNzKCJ1aS1zdGF0ZS1kaXNhYmxlZCIsISFpKSx0aGlzLl9zdXBlcih0LGkpLHQpe2Nhc2Uib3JpZW50YXRpb24iOnRoaXMuX2RldGVjdE9yaWVudGF0aW9uKCksdGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zbGlkZXItaG9yaXpvbnRhbCB1aS1zbGlkZXItdmVydGljYWwiKS5hZGRDbGFzcygidWktc2xpZGVyLSIrdGhpcy5vcmllbnRhdGlvbiksdGhpcy5fcmVmcmVzaFZhbHVlKCksdGhpcy5oYW5kbGVzLmNzcygiaG9yaXpvbnRhbCI9PT1pPyJib3R0b20iOiJsZWZ0IiwiIik7YnJlYWs7Y2FzZSJ2YWx1ZSI6dGhpcy5fYW5pbWF0ZU9mZj0hMCx0aGlzLl9yZWZyZXNoVmFsdWUoKSx0aGlzLl9jaGFuZ2UobnVsbCwwKSx0aGlzLl9hbmltYXRlT2ZmPSExO2JyZWFrO2Nhc2UidmFsdWVzIjpmb3IodGhpcy5fYW5pbWF0ZU9mZj0hMCx0aGlzLl9yZWZyZXNoVmFsdWUoKSxzPTA7bj5zO3MrPTEpdGhpcy5fY2hhbmdlKG51bGwscyk7dGhpcy5fYW5pbWF0ZU9mZj0hMTticmVhaztjYXNlInN0ZXAiOmNhc2UibWluIjpjYXNlIm1heCI6dGhpcy5fYW5pbWF0ZU9mZj0hMCx0aGlzLl9jYWxjdWxhdGVOZXdNYXgoKSx0aGlzLl9yZWZyZXNoVmFsdWUoKSx0aGlzLl9hbmltYXRlT2ZmPSExO2JyZWFrO2Nhc2UicmFuZ2UiOnRoaXMuX2FuaW1hdGVPZmY9ITAsdGhpcy5fcmVmcmVzaCgpLHRoaXMuX2FuaW1hdGVPZmY9ITF9fSxfdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9wdGlvbnMudmFsdWU7cmV0dXJuIGU9dGhpcy5fdHJpbUFsaWduVmFsdWUoZSl9LF92YWx1ZXM6ZnVuY3Rpb24oZSl7dmFyIHQsaSxzO2lmKGFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHQ9dGhpcy5vcHRpb25zLnZhbHVlc1tlXSx0PXRoaXMuX3RyaW1BbGlnblZhbHVlKHQpO2lmKHRoaXMub3B0aW9ucy52YWx1ZXMmJnRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoKXtmb3IoaT10aGlzLm9wdGlvbnMudmFsdWVzLnNsaWNlKCkscz0wO2kubGVuZ3RoPnM7cys9MSlpW3NdPXRoaXMuX3RyaW1BbGlnblZhbHVlKGlbc10pO3JldHVybiBpfXJldHVybltdfSxfdHJpbUFsaWduVmFsdWU6ZnVuY3Rpb24oZSl7aWYodGhpcy5fdmFsdWVNaW4oKT49ZSlyZXR1cm4gdGhpcy5fdmFsdWVNaW4oKTtpZihlPj10aGlzLl92YWx1ZU1heCgpKXJldHVybiB0aGlzLl92YWx1ZU1heCgpO3ZhciB0PXRoaXMub3B0aW9ucy5zdGVwPjA/dGhpcy5vcHRpb25zLnN0ZXA6MSxpPShlLXRoaXMuX3ZhbHVlTWluKCkpJXQscz1lLWk7cmV0dXJuIDIqTWF0aC5hYnMoaSk+PXQmJihzKz1pPjA/dDotdCkscGFyc2VGbG9hdChzLnRvRml4ZWQoNSkpfSxfY2FsY3VsYXRlTmV3TWF4OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcHRpb25zLm1heCx0PXRoaXMuX3ZhbHVlTWluKCksaT10aGlzLm9wdGlvbnMuc3RlcCxzPU1hdGguZmxvb3IoKyhlLXQpLnRvRml4ZWQodGhpcy5fcHJlY2lzaW9uKCkpL2kpKmk7ZT1zK3QsdGhpcy5tYXg9cGFyc2VGbG9hdChlLnRvRml4ZWQodGhpcy5fcHJlY2lzaW9uKCkpKX0sX3ByZWNpc2lvbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMuX3ByZWNpc2lvbk9mKHRoaXMub3B0aW9ucy5zdGVwKTtyZXR1cm4gbnVsbCE9PXRoaXMub3B0aW9ucy5taW4mJihlPU1hdGgubWF4KGUsdGhpcy5fcHJlY2lzaW9uT2YodGhpcy5vcHRpb25zLm1pbikpKSxlfSxfcHJlY2lzaW9uT2Y6ZnVuY3Rpb24oZSl7dmFyIHQ9IiIrZSxpPXQuaW5kZXhPZigiLiIpO3JldHVybi0xPT09aT8wOnQubGVuZ3RoLWktMX0sX3ZhbHVlTWluOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5taW59LF92YWx1ZU1heDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1heH0sX3JlZnJlc2hWYWx1ZTpmdW5jdGlvbigpe3ZhciB0LGkscyxuLGEsbz10aGlzLm9wdGlvbnMucmFuZ2Uscj10aGlzLm9wdGlvbnMsaD10aGlzLGw9dGhpcy5fYW5pbWF0ZU9mZj8hMTpyLmFuaW1hdGUsdT17fTt0aGlzLm9wdGlvbnMudmFsdWVzJiZ0aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aD90aGlzLmhhbmRsZXMuZWFjaChmdW5jdGlvbihzKXtpPTEwMCooKGgudmFsdWVzKHMpLWguX3ZhbHVlTWluKCkpLyhoLl92YWx1ZU1heCgpLWguX3ZhbHVlTWluKCkpKSx1WyJob3Jpem9udGFsIj09PWgub3JpZW50YXRpb24/ImxlZnQiOiJib3R0b20iXT1pKyIlIixlKHRoaXMpLnN0b3AoMSwxKVtsPyJhbmltYXRlIjoiY3NzIl0odSxyLmFuaW1hdGUpLGgub3B0aW9ucy5yYW5nZT09PSEwJiYoImhvcml6b250YWwiPT09aC5vcmllbnRhdGlvbj8oMD09PXMmJmgucmFuZ2Uuc3RvcCgxLDEpW2w/ImFuaW1hdGUiOiJjc3MiXSh7bGVmdDppKyIlIn0sci5hbmltYXRlKSwxPT09cyYmaC5yYW5nZVtsPyJhbmltYXRlIjoiY3NzIl0oe3dpZHRoOmktdCsiJSJ9LHtxdWV1ZTohMSxkdXJhdGlvbjpyLmFuaW1hdGV9KSk6KDA9PT1zJiZoLnJhbmdlLnN0b3AoMSwxKVtsPyJhbmltYXRlIjoiY3NzIl0oe2JvdHRvbTppKyIlIn0sci5hbmltYXRlKSwxPT09cyYmaC5yYW5nZVtsPyJhbmltYXRlIjoiY3NzIl0oe2hlaWdodDppLXQrIiUifSx7cXVldWU6ITEsZHVyYXRpb246ci5hbmltYXRlfSkpKSx0PWl9KToocz10aGlzLnZhbHVlKCksbj10aGlzLl92YWx1ZU1pbigpLGE9dGhpcy5fdmFsdWVNYXgoKSxpPWEhPT1uPzEwMCooKHMtbikvKGEtbikpOjAsdVsiaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uPyJsZWZ0IjoiYm90dG9tIl09aSsiJSIsdGhpcy5oYW5kbGUuc3RvcCgxLDEpW2w/ImFuaW1hdGUiOiJjc3MiXSh1LHIuYW5pbWF0ZSksIm1pbiI9PT1vJiYiaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uJiZ0aGlzLnJhbmdlLnN0b3AoMSwxKVtsPyJhbmltYXRlIjoiY3NzIl0oe3dpZHRoOmkrIiUifSxyLmFuaW1hdGUpLCJtYXgiPT09byYmImhvcml6b250YWwiPT09dGhpcy5vcmllbnRhdGlvbiYmdGhpcy5yYW5nZVtsPyJhbmltYXRlIjoiY3NzIl0oe3dpZHRoOjEwMC1pKyIlIn0se3F1ZXVlOiExLGR1cmF0aW9uOnIuYW5pbWF0ZX0pLCJtaW4iPT09byYmInZlcnRpY2FsIj09PXRoaXMub3JpZW50YXRpb24mJnRoaXMucmFuZ2Uuc3RvcCgxLDEpW2w/ImFuaW1hdGUiOiJjc3MiXSh7aGVpZ2h0OmkrIiUifSxyLmFuaW1hdGUpLCJtYXgiPT09byYmInZlcnRpY2FsIj09PXRoaXMub3JpZW50YXRpb24mJnRoaXMucmFuZ2VbbD8iYW5pbWF0ZSI6ImNzcyJdKHtoZWlnaHQ6MTAwLWkrIiUifSx7cXVldWU6ITEsZHVyYXRpb246ci5hbmltYXRlfSkpfSxfaGFuZGxlRXZlbnRzOntrZXlkb3duOmZ1bmN0aW9uKHQpe3ZhciBpLHMsbixhLG89ZSh0LnRhcmdldCkuZGF0YSgidWktc2xpZGVyLWhhbmRsZS1pbmRleCIpO3N3aXRjaCh0LmtleUNvZGUpe2Nhc2UgZS51aS5rZXlDb2RlLkhPTUU6Y2FzZSBlLnVpLmtleUNvZGUuRU5EOmNhc2UgZS51aS5rZXlDb2RlLlBBR0VfVVA6Y2FzZSBlLnVpLmtleUNvZGUuUEFHRV9ET1dOOmNhc2UgZS51aS5rZXlDb2RlLlVQOmNhc2UgZS51aS5rZXlDb2RlLlJJR0hUOmNhc2UgZS51aS5rZXlDb2RlLkRPV046Y2FzZSBlLnVpLmtleUNvZGUuTEVGVDppZih0LnByZXZlbnREZWZhdWx0KCksIXRoaXMuX2tleVNsaWRpbmcmJih0aGlzLl9rZXlTbGlkaW5nPSEwLGUodC50YXJnZXQpLmFkZENsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKSxpPXRoaXMuX3N0YXJ0KHQsbyksaT09PSExKSlyZXR1cm59c3dpdGNoKGE9dGhpcy5vcHRpb25zLnN0ZXAscz1uPXRoaXMub3B0aW9ucy52YWx1ZXMmJnRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoP3RoaXMudmFsdWVzKG8pOnRoaXMudmFsdWUoKSx0LmtleUNvZGUpe2Nhc2UgZS51aS5rZXlDb2RlLkhPTUU6bj10aGlzLl92YWx1ZU1pbigpO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkVORDpuPXRoaXMuX3ZhbHVlTWF4KCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuUEFHRV9VUDpuPXRoaXMuX3RyaW1BbGlnblZhbHVlKHMrKHRoaXMuX3ZhbHVlTWF4KCktdGhpcy5fdmFsdWVNaW4oKSkvdGhpcy5udW1QYWdlcyk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuUEFHRV9ET1dOOm49dGhpcy5fdHJpbUFsaWduVmFsdWUocy0odGhpcy5fdmFsdWVNYXgoKS10aGlzLl92YWx1ZU1pbigpKS90aGlzLm51bVBhZ2VzKTticmVhaztjYXNlIGUudWkua2V5Q29kZS5VUDpjYXNlIGUudWkua2V5Q29kZS5SSUdIVDppZihzPT09dGhpcy5fdmFsdWVNYXgoKSlyZXR1cm47bj10aGlzLl90cmltQWxpZ25WYWx1ZShzK2EpO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkRPV046Y2FzZSBlLnVpLmtleUNvZGUuTEVGVDppZihzPT09dGhpcy5fdmFsdWVNaW4oKSlyZXR1cm47bj10aGlzLl90cmltQWxpZ25WYWx1ZShzLWEpfXRoaXMuX3NsaWRlKHQsbyxuKX0sa2V5dXA6ZnVuY3Rpb24odCl7dmFyIGk9ZSh0LnRhcmdldCkuZGF0YSgidWktc2xpZGVyLWhhbmRsZS1pbmRleCIpO3RoaXMuX2tleVNsaWRpbmcmJih0aGlzLl9rZXlTbGlkaW5nPSExLHRoaXMuX3N0b3AodCxpKSx0aGlzLl9jaGFuZ2UodCxpKSxlKHQudGFyZ2V0KS5yZW1vdmVDbGFzcygidWktc3RhdGUtYWN0aXZlIikpfX19KSxlLndpZGdldCgidWkuc29ydGFibGUiLGUudWkubW91c2Use3ZlcnNpb246IjEuMTEuNCIsd2lkZ2V0RXZlbnRQcmVmaXg6InNvcnQiLHJlYWR5OiExLG9wdGlvbnM6e2FwcGVuZFRvOiJwYXJlbnQiLGF4aXM6ITEsY29ubmVjdFdpdGg6ITEsY29udGFpbm1lbnQ6ITEsY3Vyc29yOiJhdXRvIixjdXJzb3JBdDohMSxkcm9wT25FbXB0eTohMCxmb3JjZVBsYWNlaG9sZGVyU2l6ZTohMSxmb3JjZUhlbHBlclNpemU6ITEsZ3JpZDohMSxoYW5kbGU6ITEsaGVscGVyOiJvcmlnaW5hbCIsaXRlbXM6Ij4gKiIsb3BhY2l0eTohMSxwbGFjZWhvbGRlcjohMSxyZXZlcnQ6ITEsc2Nyb2xsOiEwLHNjcm9sbFNlbnNpdGl2aXR5OjIwLHNjcm9sbFNwZWVkOjIwLHNjb3BlOiJkZWZhdWx0Iix0b2xlcmFuY2U6ImludGVyc2VjdCIsekluZGV4OjFlMyxhY3RpdmF0ZTpudWxsLGJlZm9yZVN0b3A6bnVsbCxjaGFuZ2U6bnVsbCxkZWFjdGl2YXRlOm51bGwsb3V0Om51bGwsb3ZlcjpudWxsLHJlY2VpdmU6bnVsbCxyZW1vdmU6bnVsbCxzb3J0Om51bGwsc3RhcnQ6bnVsbCxzdG9wOm51bGwsdXBkYXRlOm51bGx9LF9pc092ZXJBeGlzOmZ1bmN0aW9uKGUsdCxpKXtyZXR1cm4gZT49dCYmdCtpPmV9LF9pc0Zsb2F0aW5nOmZ1bmN0aW9uKGUpe3JldHVybi9sZWZ0fHJpZ2h0Ly50ZXN0KGUuY3NzKCJmbG9hdCIpKXx8L2lubGluZXx0YWJsZS1jZWxsLy50ZXN0KGUuY3NzKCJkaXNwbGF5IikpfSxfY3JlYXRlOmZ1bmN0aW9uKCl7dGhpcy5jb250YWluZXJDYWNoZT17fSx0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLXNvcnRhYmxlIiksdGhpcy5yZWZyZXNoKCksdGhpcy5vZmZzZXQ9dGhpcy5lbGVtZW50Lm9mZnNldCgpLHRoaXMuX21vdXNlSW5pdCgpLHRoaXMuX3NldEhhbmRsZUNsYXNzTmFtZSgpLHRoaXMucmVhZHk9ITB9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXt0aGlzLl9zdXBlcihlLHQpLCJoYW5kbGUiPT09ZSYmdGhpcy5fc2V0SGFuZGxlQ2xhc3NOYW1lKCl9LF9zZXRIYW5kbGVDbGFzc05hbWU6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQuZmluZCgiLnVpLXNvcnRhYmxlLWhhbmRsZSIpLnJlbW92ZUNsYXNzKCJ1aS1zb3J0YWJsZS1oYW5kbGUiKSxlLmVhY2godGhpcy5pdGVtcyxmdW5jdGlvbigpeyh0aGlzLmluc3RhbmNlLm9wdGlvbnMuaGFuZGxlP3RoaXMuaXRlbS5maW5kKHRoaXMuaW5zdGFuY2Uub3B0aW9ucy5oYW5kbGUpOnRoaXMuaXRlbSkuYWRkQ2xhc3MoInVpLXNvcnRhYmxlLWhhbmRsZSIpfSl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zb3J0YWJsZSB1aS1zb3J0YWJsZS1kaXNhYmxlZCIpLmZpbmQoIi51aS1zb3J0YWJsZS1oYW5kbGUiKS5yZW1vdmVDbGFzcygidWktc29ydGFibGUtaGFuZGxlIiksdGhpcy5fbW91c2VEZXN0cm95KCk7Zm9yKHZhciBlPXRoaXMuaXRlbXMubGVuZ3RoLTE7ZT49MDtlLS0pdGhpcy5pdGVtc1tlXS5pdGVtLnJlbW92ZURhdGEodGhpcy53aWRnZXROYW1lKyItaXRlbSIpO3JldHVybiB0aGlzfSxfbW91c2VDYXB0dXJlOmZ1bmN0aW9uKHQsaSl7dmFyIHM9bnVsbCxuPSExLGE9dGhpcztyZXR1cm4gdGhpcy5yZXZlcnRpbmc/ITE6dGhpcy5vcHRpb25zLmRpc2FibGVkfHwic3RhdGljIj09PXRoaXMub3B0aW9ucy50eXBlPyExOih0aGlzLl9yZWZyZXNoSXRlbXModCksZSh0LnRhcmdldCkucGFyZW50cygpLmVhY2goZnVuY3Rpb24oKXtyZXR1cm4gZS5kYXRhKHRoaXMsYS53aWRnZXROYW1lKyItaXRlbSIpPT09YT8ocz1lKHRoaXMpLCExKTp2b2lkIDB9KSxlLmRhdGEodC50YXJnZXQsYS53aWRnZXROYW1lKyItaXRlbSIpPT09YSYmKHM9ZSh0LnRhcmdldCkpLHM/IXRoaXMub3B0aW9ucy5oYW5kbGV8fGl8fChlKHRoaXMub3B0aW9ucy5oYW5kbGUscykuZmluZCgiKiIpLmFkZEJhY2soKS5lYWNoKGZ1bmN0aW9uKCl7dGhpcz09PXQudGFyZ2V0JiYobj0hMCl9KSxuKT8odGhpcy5jdXJyZW50SXRlbT1zLHRoaXMuX3JlbW92ZUN1cnJlbnRzRnJvbUl0ZW1zKCksITApOiExOiExKX0sX21vdXNlU3RhcnQ6ZnVuY3Rpb24odCxpLHMpe3ZhciBuLGEsbz10aGlzLm9wdGlvbnM7aWYodGhpcy5jdXJyZW50Q29udGFpbmVyPXRoaXMsdGhpcy5yZWZyZXNoUG9zaXRpb25zKCksdGhpcy5oZWxwZXI9dGhpcy5fY3JlYXRlSGVscGVyKHQpLHRoaXMuX2NhY2hlSGVscGVyUHJvcG9ydGlvbnMoKSx0aGlzLl9jYWNoZU1hcmdpbnMoKSx0aGlzLnNjcm9sbFBhcmVudD10aGlzLmhlbHBlci5zY3JvbGxQYXJlbnQoKSx0aGlzLm9mZnNldD10aGlzLmN1cnJlbnRJdGVtLm9mZnNldCgpLHRoaXMub2Zmc2V0PXt0b3A6dGhpcy5vZmZzZXQudG9wLXRoaXMubWFyZ2lucy50b3AsbGVmdDp0aGlzLm9mZnNldC5sZWZ0LXRoaXMubWFyZ2lucy5sZWZ0fSxlLmV4dGVuZCh0aGlzLm9mZnNldCx7Y2xpY2s6e2xlZnQ6dC5wYWdlWC10aGlzLm9mZnNldC5sZWZ0LHRvcDp0LnBhZ2VZLXRoaXMub2Zmc2V0LnRvcH0scGFyZW50OnRoaXMuX2dldFBhcmVudE9mZnNldCgpLHJlbGF0aXZlOnRoaXMuX2dldFJlbGF0aXZlT2Zmc2V0KCl9KSx0aGlzLmhlbHBlci5jc3MoInBvc2l0aW9uIiwiYWJzb2x1dGUiKSx0aGlzLmNzc1Bvc2l0aW9uPXRoaXMuaGVscGVyLmNzcygicG9zaXRpb24iKSx0aGlzLm9yaWdpbmFsUG9zaXRpb249dGhpcy5fZ2VuZXJhdGVQb3NpdGlvbih0KSx0aGlzLm9yaWdpbmFsUGFnZVg9dC5wYWdlWCx0aGlzLm9yaWdpbmFsUGFnZVk9dC5wYWdlWSxvLmN1cnNvckF0JiZ0aGlzLl9hZGp1c3RPZmZzZXRGcm9tSGVscGVyKG8uY3Vyc29yQXQpLHRoaXMuZG9tUG9zaXRpb249e3ByZXY6dGhpcy5jdXJyZW50SXRlbS5wcmV2KClbMF0scGFyZW50OnRoaXMuY3VycmVudEl0ZW0ucGFyZW50KClbMF19LHRoaXMuaGVscGVyWzBdIT09dGhpcy5jdXJyZW50SXRlbVswXSYmdGhpcy5jdXJyZW50SXRlbS5oaWRlKCksdGhpcy5fY3JlYXRlUGxhY2Vob2xkZXIoKSxvLmNvbnRhaW5tZW50JiZ0aGlzLl9zZXRDb250YWlubWVudCgpLG8uY3Vyc29yJiYiYXV0byIhPT1vLmN1cnNvciYmKGE9dGhpcy5kb2N1bWVudC5maW5kKCJib2R5IiksdGhpcy5zdG9yZWRDdXJzb3I9YS5jc3MoImN1cnNvciIpLGEuY3NzKCJjdXJzb3IiLG8uY3Vyc29yKSx0aGlzLnN0b3JlZFN0eWxlc2hlZXQ9ZSgiPHN0eWxlPip7IGN1cnNvcjogIitvLmN1cnNvcisiICFpbXBvcnRhbnQ7IH08L3N0eWxlPiIpLmFwcGVuZFRvKGEpKSxvLm9wYWNpdHkmJih0aGlzLmhlbHBlci5jc3MoIm9wYWNpdHkiKSYmKHRoaXMuX3N0b3JlZE9wYWNpdHk9dGhpcy5oZWxwZXIuY3NzKCJvcGFjaXR5IikpLHRoaXMuaGVscGVyLmNzcygib3BhY2l0eSIsby5vcGFjaXR5KSksby56SW5kZXgmJih0aGlzLmhlbHBlci5jc3MoInpJbmRleCIpJiYodGhpcy5fc3RvcmVkWkluZGV4PXRoaXMuaGVscGVyLmNzcygiekluZGV4IikpLHRoaXMuaGVscGVyLmNzcygiekluZGV4IixvLnpJbmRleCkpLHRoaXMuc2Nyb2xsUGFyZW50WzBdIT09dGhpcy5kb2N1bWVudFswXSYmIkhUTUwiIT09dGhpcy5zY3JvbGxQYXJlbnRbMF0udGFnTmFtZSYmKHRoaXMub3ZlcmZsb3dPZmZzZXQ9dGhpcy5zY3JvbGxQYXJlbnQub2Zmc2V0KCkpLHRoaXMuX3RyaWdnZXIoInN0YXJ0Iix0LHRoaXMuX3VpSGFzaCgpKSx0aGlzLl9wcmVzZXJ2ZUhlbHBlclByb3BvcnRpb25zfHx0aGlzLl9jYWNoZUhlbHBlclByb3BvcnRpb25zKCksIXMpZm9yKG49dGhpcy5jb250YWluZXJzLmxlbmd0aC0xO24+PTA7bi0tKXRoaXMuY29udGFpbmVyc1tuXS5fdHJpZ2dlcigiYWN0aXZhdGUiLHQsdGhpcy5fdWlIYXNoKHRoaXMpKTsKcmV0dXJuIGUudWkuZGRtYW5hZ2VyJiYoZS51aS5kZG1hbmFnZXIuY3VycmVudD10aGlzKSxlLnVpLmRkbWFuYWdlciYmIW8uZHJvcEJlaGF2aW91ciYmZS51aS5kZG1hbmFnZXIucHJlcGFyZU9mZnNldHModGhpcyx0KSx0aGlzLmRyYWdnaW5nPSEwLHRoaXMuaGVscGVyLmFkZENsYXNzKCJ1aS1zb3J0YWJsZS1oZWxwZXIiKSx0aGlzLl9tb3VzZURyYWcodCksITB9LF9tb3VzZURyYWc6ZnVuY3Rpb24odCl7dmFyIGkscyxuLGEsbz10aGlzLm9wdGlvbnMscj0hMTtmb3IodGhpcy5wb3NpdGlvbj10aGlzLl9nZW5lcmF0ZVBvc2l0aW9uKHQpLHRoaXMucG9zaXRpb25BYnM9dGhpcy5fY29udmVydFBvc2l0aW9uVG8oImFic29sdXRlIiksdGhpcy5sYXN0UG9zaXRpb25BYnN8fCh0aGlzLmxhc3RQb3NpdGlvbkFicz10aGlzLnBvc2l0aW9uQWJzKSx0aGlzLm9wdGlvbnMuc2Nyb2xsJiYodGhpcy5zY3JvbGxQYXJlbnRbMF0hPT10aGlzLmRvY3VtZW50WzBdJiYiSFRNTCIhPT10aGlzLnNjcm9sbFBhcmVudFswXS50YWdOYW1lPyh0aGlzLm92ZXJmbG93T2Zmc2V0LnRvcCt0aGlzLnNjcm9sbFBhcmVudFswXS5vZmZzZXRIZWlnaHQtdC5wYWdlWTxvLnNjcm9sbFNlbnNpdGl2aXR5P3RoaXMuc2Nyb2xsUGFyZW50WzBdLnNjcm9sbFRvcD1yPXRoaXMuc2Nyb2xsUGFyZW50WzBdLnNjcm9sbFRvcCtvLnNjcm9sbFNwZWVkOnQucGFnZVktdGhpcy5vdmVyZmxvd09mZnNldC50b3A8by5zY3JvbGxTZW5zaXRpdml0eSYmKHRoaXMuc2Nyb2xsUGFyZW50WzBdLnNjcm9sbFRvcD1yPXRoaXMuc2Nyb2xsUGFyZW50WzBdLnNjcm9sbFRvcC1vLnNjcm9sbFNwZWVkKSx0aGlzLm92ZXJmbG93T2Zmc2V0LmxlZnQrdGhpcy5zY3JvbGxQYXJlbnRbMF0ub2Zmc2V0V2lkdGgtdC5wYWdlWDxvLnNjcm9sbFNlbnNpdGl2aXR5P3RoaXMuc2Nyb2xsUGFyZW50WzBdLnNjcm9sbExlZnQ9cj10aGlzLnNjcm9sbFBhcmVudFswXS5zY3JvbGxMZWZ0K28uc2Nyb2xsU3BlZWQ6dC5wYWdlWC10aGlzLm92ZXJmbG93T2Zmc2V0LmxlZnQ8by5zY3JvbGxTZW5zaXRpdml0eSYmKHRoaXMuc2Nyb2xsUGFyZW50WzBdLnNjcm9sbExlZnQ9cj10aGlzLnNjcm9sbFBhcmVudFswXS5zY3JvbGxMZWZ0LW8uc2Nyb2xsU3BlZWQpKToodC5wYWdlWS10aGlzLmRvY3VtZW50LnNjcm9sbFRvcCgpPG8uc2Nyb2xsU2Vuc2l0aXZpdHk/cj10aGlzLmRvY3VtZW50LnNjcm9sbFRvcCh0aGlzLmRvY3VtZW50LnNjcm9sbFRvcCgpLW8uc2Nyb2xsU3BlZWQpOnRoaXMud2luZG93LmhlaWdodCgpLSh0LnBhZ2VZLXRoaXMuZG9jdW1lbnQuc2Nyb2xsVG9wKCkpPG8uc2Nyb2xsU2Vuc2l0aXZpdHkmJihyPXRoaXMuZG9jdW1lbnQuc2Nyb2xsVG9wKHRoaXMuZG9jdW1lbnQuc2Nyb2xsVG9wKCkrby5zY3JvbGxTcGVlZCkpLHQucGFnZVgtdGhpcy5kb2N1bWVudC5zY3JvbGxMZWZ0KCk8by5zY3JvbGxTZW5zaXRpdml0eT9yPXRoaXMuZG9jdW1lbnQuc2Nyb2xsTGVmdCh0aGlzLmRvY3VtZW50LnNjcm9sbExlZnQoKS1vLnNjcm9sbFNwZWVkKTp0aGlzLndpbmRvdy53aWR0aCgpLSh0LnBhZ2VYLXRoaXMuZG9jdW1lbnQuc2Nyb2xsTGVmdCgpKTxvLnNjcm9sbFNlbnNpdGl2aXR5JiYocj10aGlzLmRvY3VtZW50LnNjcm9sbExlZnQodGhpcy5kb2N1bWVudC5zY3JvbGxMZWZ0KCkrby5zY3JvbGxTcGVlZCkpKSxyIT09ITEmJmUudWkuZGRtYW5hZ2VyJiYhby5kcm9wQmVoYXZpb3VyJiZlLnVpLmRkbWFuYWdlci5wcmVwYXJlT2Zmc2V0cyh0aGlzLHQpKSx0aGlzLnBvc2l0aW9uQWJzPXRoaXMuX2NvbnZlcnRQb3NpdGlvblRvKCJhYnNvbHV0ZSIpLHRoaXMub3B0aW9ucy5heGlzJiYieSI9PT10aGlzLm9wdGlvbnMuYXhpc3x8KHRoaXMuaGVscGVyWzBdLnN0eWxlLmxlZnQ9dGhpcy5wb3NpdGlvbi5sZWZ0KyJweCIpLHRoaXMub3B0aW9ucy5heGlzJiYieCI9PT10aGlzLm9wdGlvbnMuYXhpc3x8KHRoaXMuaGVscGVyWzBdLnN0eWxlLnRvcD10aGlzLnBvc2l0aW9uLnRvcCsicHgiKSxpPXRoaXMuaXRlbXMubGVuZ3RoLTE7aT49MDtpLS0paWYocz10aGlzLml0ZW1zW2ldLG49cy5pdGVtWzBdLGE9dGhpcy5faW50ZXJzZWN0c1dpdGhQb2ludGVyKHMpLGEmJnMuaW5zdGFuY2U9PT10aGlzLmN1cnJlbnRDb250YWluZXImJm4hPT10aGlzLmN1cnJlbnRJdGVtWzBdJiZ0aGlzLnBsYWNlaG9sZGVyWzE9PT1hPyJuZXh0IjoicHJldiJdKClbMF0hPT1uJiYhZS5jb250YWlucyh0aGlzLnBsYWNlaG9sZGVyWzBdLG4pJiYoInNlbWktZHluYW1pYyI9PT10aGlzLm9wdGlvbnMudHlwZT8hZS5jb250YWlucyh0aGlzLmVsZW1lbnRbMF0sbik6ITApKXtpZih0aGlzLmRpcmVjdGlvbj0xPT09YT8iZG93biI6InVwIiwicG9pbnRlciIhPT10aGlzLm9wdGlvbnMudG9sZXJhbmNlJiYhdGhpcy5faW50ZXJzZWN0c1dpdGhTaWRlcyhzKSlicmVhazt0aGlzLl9yZWFycmFuZ2UodCxzKSx0aGlzLl90cmlnZ2VyKCJjaGFuZ2UiLHQsdGhpcy5fdWlIYXNoKCkpO2JyZWFrfXJldHVybiB0aGlzLl9jb250YWN0Q29udGFpbmVycyh0KSxlLnVpLmRkbWFuYWdlciYmZS51aS5kZG1hbmFnZXIuZHJhZyh0aGlzLHQpLHRoaXMuX3RyaWdnZXIoInNvcnQiLHQsdGhpcy5fdWlIYXNoKCkpLHRoaXMubGFzdFBvc2l0aW9uQWJzPXRoaXMucG9zaXRpb25BYnMsITF9LF9tb3VzZVN0b3A6ZnVuY3Rpb24odCxpKXtpZih0KXtpZihlLnVpLmRkbWFuYWdlciYmIXRoaXMub3B0aW9ucy5kcm9wQmVoYXZpb3VyJiZlLnVpLmRkbWFuYWdlci5kcm9wKHRoaXMsdCksdGhpcy5vcHRpb25zLnJldmVydCl7dmFyIHM9dGhpcyxuPXRoaXMucGxhY2Vob2xkZXIub2Zmc2V0KCksYT10aGlzLm9wdGlvbnMuYXhpcyxvPXt9O2EmJiJ4IiE9PWF8fChvLmxlZnQ9bi5sZWZ0LXRoaXMub2Zmc2V0LnBhcmVudC5sZWZ0LXRoaXMubWFyZ2lucy5sZWZ0Kyh0aGlzLm9mZnNldFBhcmVudFswXT09PXRoaXMuZG9jdW1lbnRbMF0uYm9keT8wOnRoaXMub2Zmc2V0UGFyZW50WzBdLnNjcm9sbExlZnQpKSxhJiYieSIhPT1hfHwoby50b3A9bi50b3AtdGhpcy5vZmZzZXQucGFyZW50LnRvcC10aGlzLm1hcmdpbnMudG9wKyh0aGlzLm9mZnNldFBhcmVudFswXT09PXRoaXMuZG9jdW1lbnRbMF0uYm9keT8wOnRoaXMub2Zmc2V0UGFyZW50WzBdLnNjcm9sbFRvcCkpLHRoaXMucmV2ZXJ0aW5nPSEwLGUodGhpcy5oZWxwZXIpLmFuaW1hdGUobyxwYXJzZUludCh0aGlzLm9wdGlvbnMucmV2ZXJ0LDEwKXx8NTAwLGZ1bmN0aW9uKCl7cy5fY2xlYXIodCl9KX1lbHNlIHRoaXMuX2NsZWFyKHQsaSk7cmV0dXJuITF9fSxjYW5jZWw6ZnVuY3Rpb24oKXtpZih0aGlzLmRyYWdnaW5nKXt0aGlzLl9tb3VzZVVwKHt0YXJnZXQ6bnVsbH0pLCJvcmlnaW5hbCI9PT10aGlzLm9wdGlvbnMuaGVscGVyP3RoaXMuY3VycmVudEl0ZW0uY3NzKHRoaXMuX3N0b3JlZENTUykucmVtb3ZlQ2xhc3MoInVpLXNvcnRhYmxlLWhlbHBlciIpOnRoaXMuY3VycmVudEl0ZW0uc2hvdygpO2Zvcih2YXIgdD10aGlzLmNvbnRhaW5lcnMubGVuZ3RoLTE7dD49MDt0LS0pdGhpcy5jb250YWluZXJzW3RdLl90cmlnZ2VyKCJkZWFjdGl2YXRlIixudWxsLHRoaXMuX3VpSGFzaCh0aGlzKSksdGhpcy5jb250YWluZXJzW3RdLmNvbnRhaW5lckNhY2hlLm92ZXImJih0aGlzLmNvbnRhaW5lcnNbdF0uX3RyaWdnZXIoIm91dCIsbnVsbCx0aGlzLl91aUhhc2godGhpcykpLHRoaXMuY29udGFpbmVyc1t0XS5jb250YWluZXJDYWNoZS5vdmVyPTApfXJldHVybiB0aGlzLnBsYWNlaG9sZGVyJiYodGhpcy5wbGFjZWhvbGRlclswXS5wYXJlbnROb2RlJiZ0aGlzLnBsYWNlaG9sZGVyWzBdLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5wbGFjZWhvbGRlclswXSksIm9yaWdpbmFsIiE9PXRoaXMub3B0aW9ucy5oZWxwZXImJnRoaXMuaGVscGVyJiZ0aGlzLmhlbHBlclswXS5wYXJlbnROb2RlJiZ0aGlzLmhlbHBlci5yZW1vdmUoKSxlLmV4dGVuZCh0aGlzLHtoZWxwZXI6bnVsbCxkcmFnZ2luZzohMSxyZXZlcnRpbmc6ITEsX25vRmluYWxTb3J0Om51bGx9KSx0aGlzLmRvbVBvc2l0aW9uLnByZXY/ZSh0aGlzLmRvbVBvc2l0aW9uLnByZXYpLmFmdGVyKHRoaXMuY3VycmVudEl0ZW0pOmUodGhpcy5kb21Qb3NpdGlvbi5wYXJlbnQpLnByZXBlbmQodGhpcy5jdXJyZW50SXRlbSkpLHRoaXN9LHNlcmlhbGl6ZTpmdW5jdGlvbih0KXt2YXIgaT10aGlzLl9nZXRJdGVtc0FzalF1ZXJ5KHQmJnQuY29ubmVjdGVkKSxzPVtdO3JldHVybiB0PXR8fHt9LGUoaSkuZWFjaChmdW5jdGlvbigpe3ZhciBpPShlKHQuaXRlbXx8dGhpcykuYXR0cih0LmF0dHJpYnV0ZXx8ImlkIil8fCIiKS5tYXRjaCh0LmV4cHJlc3Npb258fC8oLispW1wtPV9dKC4rKS8pO2kmJnMucHVzaCgodC5rZXl8fGlbMV0rIltdIikrIj0iKyh0LmtleSYmdC5leHByZXNzaW9uP2lbMV06aVsyXSkpfSksIXMubGVuZ3RoJiZ0LmtleSYmcy5wdXNoKHQua2V5KyI9Iikscy5qb2luKCImIil9LHRvQXJyYXk6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5fZ2V0SXRlbXNBc2pRdWVyeSh0JiZ0LmNvbm5lY3RlZCkscz1bXTtyZXR1cm4gdD10fHx7fSxpLmVhY2goZnVuY3Rpb24oKXtzLnB1c2goZSh0Lml0ZW18fHRoaXMpLmF0dHIodC5hdHRyaWJ1dGV8fCJpZCIpfHwiIil9KSxzfSxfaW50ZXJzZWN0c1dpdGg6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5wb3NpdGlvbkFicy5sZWZ0LGk9dCt0aGlzLmhlbHBlclByb3BvcnRpb25zLndpZHRoLHM9dGhpcy5wb3NpdGlvbkFicy50b3Asbj1zK3RoaXMuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LGE9ZS5sZWZ0LG89YStlLndpZHRoLHI9ZS50b3AsaD1yK2UuaGVpZ2h0LGw9dGhpcy5vZmZzZXQuY2xpY2sudG9wLHU9dGhpcy5vZmZzZXQuY2xpY2subGVmdCxkPSJ4Ij09PXRoaXMub3B0aW9ucy5heGlzfHxzK2w+ciYmaD5zK2wsYz0ieSI9PT10aGlzLm9wdGlvbnMuYXhpc3x8dCt1PmEmJm8+dCt1LHA9ZCYmYztyZXR1cm4icG9pbnRlciI9PT10aGlzLm9wdGlvbnMudG9sZXJhbmNlfHx0aGlzLm9wdGlvbnMuZm9yY2VQb2ludGVyRm9yQ29udGFpbmVyc3x8InBvaW50ZXIiIT09dGhpcy5vcHRpb25zLnRvbGVyYW5jZSYmdGhpcy5oZWxwZXJQcm9wb3J0aW9uc1t0aGlzLmZsb2F0aW5nPyJ3aWR0aCI6ImhlaWdodCJdPmVbdGhpcy5mbG9hdGluZz8id2lkdGgiOiJoZWlnaHQiXT9wOnQrdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aC8yPmEmJm8+aS10aGlzLmhlbHBlclByb3BvcnRpb25zLndpZHRoLzImJnMrdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQvMj5yJiZoPm4tdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQvMn0sX2ludGVyc2VjdHNXaXRoUG9pbnRlcjpmdW5jdGlvbihlKXt2YXIgdD0ieCI9PT10aGlzLm9wdGlvbnMuYXhpc3x8dGhpcy5faXNPdmVyQXhpcyh0aGlzLnBvc2l0aW9uQWJzLnRvcCt0aGlzLm9mZnNldC5jbGljay50b3AsZS50b3AsZS5oZWlnaHQpLGk9InkiPT09dGhpcy5vcHRpb25zLmF4aXN8fHRoaXMuX2lzT3ZlckF4aXModGhpcy5wb3NpdGlvbkFicy5sZWZ0K3RoaXMub2Zmc2V0LmNsaWNrLmxlZnQsZS5sZWZ0LGUud2lkdGgpLHM9dCYmaSxuPXRoaXMuX2dldERyYWdWZXJ0aWNhbERpcmVjdGlvbigpLGE9dGhpcy5fZ2V0RHJhZ0hvcml6b250YWxEaXJlY3Rpb24oKTtyZXR1cm4gcz90aGlzLmZsb2F0aW5nP2EmJiJyaWdodCI9PT1hfHwiZG93biI9PT1uPzI6MTpuJiYoImRvd24iPT09bj8yOjEpOiExfSxfaW50ZXJzZWN0c1dpdGhTaWRlczpmdW5jdGlvbihlKXt2YXIgdD10aGlzLl9pc092ZXJBeGlzKHRoaXMucG9zaXRpb25BYnMudG9wK3RoaXMub2Zmc2V0LmNsaWNrLnRvcCxlLnRvcCtlLmhlaWdodC8yLGUuaGVpZ2h0KSxpPXRoaXMuX2lzT3ZlckF4aXModGhpcy5wb3NpdGlvbkFicy5sZWZ0K3RoaXMub2Zmc2V0LmNsaWNrLmxlZnQsZS5sZWZ0K2Uud2lkdGgvMixlLndpZHRoKSxzPXRoaXMuX2dldERyYWdWZXJ0aWNhbERpcmVjdGlvbigpLG49dGhpcy5fZ2V0RHJhZ0hvcml6b250YWxEaXJlY3Rpb24oKTtyZXR1cm4gdGhpcy5mbG9hdGluZyYmbj8icmlnaHQiPT09biYmaXx8ImxlZnQiPT09biYmIWk6cyYmKCJkb3duIj09PXMmJnR8fCJ1cCI9PT1zJiYhdCl9LF9nZXREcmFnVmVydGljYWxEaXJlY3Rpb246ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnBvc2l0aW9uQWJzLnRvcC10aGlzLmxhc3RQb3NpdGlvbkFicy50b3A7cmV0dXJuIDAhPT1lJiYoZT4wPyJkb3duIjoidXAiKX0sX2dldERyYWdIb3Jpem9udGFsRGlyZWN0aW9uOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5wb3NpdGlvbkFicy5sZWZ0LXRoaXMubGFzdFBvc2l0aW9uQWJzLmxlZnQ7cmV0dXJuIDAhPT1lJiYoZT4wPyJyaWdodCI6ImxlZnQiKX0scmVmcmVzaDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fcmVmcmVzaEl0ZW1zKGUpLHRoaXMuX3NldEhhbmRsZUNsYXNzTmFtZSgpLHRoaXMucmVmcmVzaFBvc2l0aW9ucygpLHRoaXN9LF9jb25uZWN0V2l0aDpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3B0aW9ucztyZXR1cm4gZS5jb25uZWN0V2l0aC5jb25zdHJ1Y3Rvcj09PVN0cmluZz9bZS5jb25uZWN0V2l0aF06ZS5jb25uZWN0V2l0aH0sX2dldEl0ZW1zQXNqUXVlcnk6ZnVuY3Rpb24odCl7ZnVuY3Rpb24gaSgpe3IucHVzaCh0aGlzKX12YXIgcyxuLGEsbyxyPVtdLGg9W10sbD10aGlzLl9jb25uZWN0V2l0aCgpO2lmKGwmJnQpZm9yKHM9bC5sZW5ndGgtMTtzPj0wO3MtLSlmb3IoYT1lKGxbc10sdGhpcy5kb2N1bWVudFswXSksbj1hLmxlbmd0aC0xO24+PTA7bi0tKW89ZS5kYXRhKGFbbl0sdGhpcy53aWRnZXRGdWxsTmFtZSksbyYmbyE9PXRoaXMmJiFvLm9wdGlvbnMuZGlzYWJsZWQmJmgucHVzaChbZS5pc0Z1bmN0aW9uKG8ub3B0aW9ucy5pdGVtcyk/by5vcHRpb25zLml0ZW1zLmNhbGwoby5lbGVtZW50KTplKG8ub3B0aW9ucy5pdGVtcyxvLmVsZW1lbnQpLm5vdCgiLnVpLXNvcnRhYmxlLWhlbHBlciIpLm5vdCgiLnVpLXNvcnRhYmxlLXBsYWNlaG9sZGVyIiksb10pO2ZvcihoLnB1c2goW2UuaXNGdW5jdGlvbih0aGlzLm9wdGlvbnMuaXRlbXMpP3RoaXMub3B0aW9ucy5pdGVtcy5jYWxsKHRoaXMuZWxlbWVudCxudWxsLHtvcHRpb25zOnRoaXMub3B0aW9ucyxpdGVtOnRoaXMuY3VycmVudEl0ZW19KTplKHRoaXMub3B0aW9ucy5pdGVtcyx0aGlzLmVsZW1lbnQpLm5vdCgiLnVpLXNvcnRhYmxlLWhlbHBlciIpLm5vdCgiLnVpLXNvcnRhYmxlLXBsYWNlaG9sZGVyIiksdGhpc10pLHM9aC5sZW5ndGgtMTtzPj0wO3MtLSloW3NdWzBdLmVhY2goaSk7cmV0dXJuIGUocil9LF9yZW1vdmVDdXJyZW50c0Zyb21JdGVtczpmdW5jdGlvbigpe3ZhciB0PXRoaXMuY3VycmVudEl0ZW0uZmluZCgiOmRhdGEoIit0aGlzLndpZGdldE5hbWUrIi1pdGVtKSIpO3RoaXMuaXRlbXM9ZS5ncmVwKHRoaXMuaXRlbXMsZnVuY3Rpb24oZSl7Zm9yKHZhciBpPTA7dC5sZW5ndGg+aTtpKyspaWYodFtpXT09PWUuaXRlbVswXSlyZXR1cm4hMTtyZXR1cm4hMH0pfSxfcmVmcmVzaEl0ZW1zOmZ1bmN0aW9uKHQpe3RoaXMuaXRlbXM9W10sdGhpcy5jb250YWluZXJzPVt0aGlzXTt2YXIgaSxzLG4sYSxvLHIsaCxsLHU9dGhpcy5pdGVtcyxkPVtbZS5pc0Z1bmN0aW9uKHRoaXMub3B0aW9ucy5pdGVtcyk/dGhpcy5vcHRpb25zLml0ZW1zLmNhbGwodGhpcy5lbGVtZW50WzBdLHQse2l0ZW06dGhpcy5jdXJyZW50SXRlbX0pOmUodGhpcy5vcHRpb25zLml0ZW1zLHRoaXMuZWxlbWVudCksdGhpc11dLGM9dGhpcy5fY29ubmVjdFdpdGgoKTtpZihjJiZ0aGlzLnJlYWR5KWZvcihpPWMubGVuZ3RoLTE7aT49MDtpLS0pZm9yKG49ZShjW2ldLHRoaXMuZG9jdW1lbnRbMF0pLHM9bi5sZW5ndGgtMTtzPj0wO3MtLSlhPWUuZGF0YShuW3NdLHRoaXMud2lkZ2V0RnVsbE5hbWUpLGEmJmEhPT10aGlzJiYhYS5vcHRpb25zLmRpc2FibGVkJiYoZC5wdXNoKFtlLmlzRnVuY3Rpb24oYS5vcHRpb25zLml0ZW1zKT9hLm9wdGlvbnMuaXRlbXMuY2FsbChhLmVsZW1lbnRbMF0sdCx7aXRlbTp0aGlzLmN1cnJlbnRJdGVtfSk6ZShhLm9wdGlvbnMuaXRlbXMsYS5lbGVtZW50KSxhXSksdGhpcy5jb250YWluZXJzLnB1c2goYSkpO2ZvcihpPWQubGVuZ3RoLTE7aT49MDtpLS0pZm9yKG89ZFtpXVsxXSxyPWRbaV1bMF0scz0wLGw9ci5sZW5ndGg7bD5zO3MrKyloPWUocltzXSksaC5kYXRhKHRoaXMud2lkZ2V0TmFtZSsiLWl0ZW0iLG8pLHUucHVzaCh7aXRlbTpoLGluc3RhbmNlOm8sd2lkdGg6MCxoZWlnaHQ6MCxsZWZ0OjAsdG9wOjB9KX0scmVmcmVzaFBvc2l0aW9uczpmdW5jdGlvbih0KXt0aGlzLmZsb2F0aW5nPXRoaXMuaXRlbXMubGVuZ3RoPyJ4Ij09PXRoaXMub3B0aW9ucy5heGlzfHx0aGlzLl9pc0Zsb2F0aW5nKHRoaXMuaXRlbXNbMF0uaXRlbSk6ITEsdGhpcy5vZmZzZXRQYXJlbnQmJnRoaXMuaGVscGVyJiYodGhpcy5vZmZzZXQucGFyZW50PXRoaXMuX2dldFBhcmVudE9mZnNldCgpKTt2YXIgaSxzLG4sYTtmb3IoaT10aGlzLml0ZW1zLmxlbmd0aC0xO2k+PTA7aS0tKXM9dGhpcy5pdGVtc1tpXSxzLmluc3RhbmNlIT09dGhpcy5jdXJyZW50Q29udGFpbmVyJiZ0aGlzLmN1cnJlbnRDb250YWluZXImJnMuaXRlbVswXSE9PXRoaXMuY3VycmVudEl0ZW1bMF18fChuPXRoaXMub3B0aW9ucy50b2xlcmFuY2VFbGVtZW50P2UodGhpcy5vcHRpb25zLnRvbGVyYW5jZUVsZW1lbnQscy5pdGVtKTpzLml0ZW0sdHx8KHMud2lkdGg9bi5vdXRlcldpZHRoKCkscy5oZWlnaHQ9bi5vdXRlckhlaWdodCgpKSxhPW4ub2Zmc2V0KCkscy5sZWZ0PWEubGVmdCxzLnRvcD1hLnRvcCk7aWYodGhpcy5vcHRpb25zLmN1c3RvbSYmdGhpcy5vcHRpb25zLmN1c3RvbS5yZWZyZXNoQ29udGFpbmVycyl0aGlzLm9wdGlvbnMuY3VzdG9tLnJlZnJlc2hDb250YWluZXJzLmNhbGwodGhpcyk7ZWxzZSBmb3IoaT10aGlzLmNvbnRhaW5lcnMubGVuZ3RoLTE7aT49MDtpLS0pYT10aGlzLmNvbnRhaW5lcnNbaV0uZWxlbWVudC5vZmZzZXQoKSx0aGlzLmNvbnRhaW5lcnNbaV0uY29udGFpbmVyQ2FjaGUubGVmdD1hLmxlZnQsdGhpcy5jb250YWluZXJzW2ldLmNvbnRhaW5lckNhY2hlLnRvcD1hLnRvcCx0aGlzLmNvbnRhaW5lcnNbaV0uY29udGFpbmVyQ2FjaGUud2lkdGg9dGhpcy5jb250YWluZXJzW2ldLmVsZW1lbnQub3V0ZXJXaWR0aCgpLHRoaXMuY29udGFpbmVyc1tpXS5jb250YWluZXJDYWNoZS5oZWlnaHQ9dGhpcy5jb250YWluZXJzW2ldLmVsZW1lbnQub3V0ZXJIZWlnaHQoKTtyZXR1cm4gdGhpc30sX2NyZWF0ZVBsYWNlaG9sZGVyOmZ1bmN0aW9uKHQpe3Q9dHx8dGhpczt2YXIgaSxzPXQub3B0aW9ucztzLnBsYWNlaG9sZGVyJiZzLnBsYWNlaG9sZGVyLmNvbnN0cnVjdG9yIT09U3RyaW5nfHwoaT1zLnBsYWNlaG9sZGVyLHMucGxhY2Vob2xkZXI9e2VsZW1lbnQ6ZnVuY3Rpb24oKXt2YXIgcz10LmN1cnJlbnRJdGVtWzBdLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksbj1lKCI8IitzKyI+Iix0LmRvY3VtZW50WzBdKS5hZGRDbGFzcyhpfHx0LmN1cnJlbnRJdGVtWzBdLmNsYXNzTmFtZSsiIHVpLXNvcnRhYmxlLXBsYWNlaG9sZGVyIikucmVtb3ZlQ2xhc3MoInVpLXNvcnRhYmxlLWhlbHBlciIpO3JldHVybiJ0Ym9keSI9PT1zP3QuX2NyZWF0ZVRyUGxhY2Vob2xkZXIodC5jdXJyZW50SXRlbS5maW5kKCJ0ciIpLmVxKDApLGUoIjx0cj4iLHQuZG9jdW1lbnRbMF0pLmFwcGVuZFRvKG4pKToidHIiPT09cz90Ll9jcmVhdGVUclBsYWNlaG9sZGVyKHQuY3VycmVudEl0ZW0sbik6ImltZyI9PT1zJiZuLmF0dHIoInNyYyIsdC5jdXJyZW50SXRlbS5hdHRyKCJzcmMiKSksaXx8bi5jc3MoInZpc2liaWxpdHkiLCJoaWRkZW4iKSxufSx1cGRhdGU6ZnVuY3Rpb24oZSxuKXsoIWl8fHMuZm9yY2VQbGFjZWhvbGRlclNpemUpJiYobi5oZWlnaHQoKXx8bi5oZWlnaHQodC5jdXJyZW50SXRlbS5pbm5lckhlaWdodCgpLXBhcnNlSW50KHQuY3VycmVudEl0ZW0uY3NzKCJwYWRkaW5nVG9wIil8fDAsMTApLXBhcnNlSW50KHQuY3VycmVudEl0ZW0uY3NzKCJwYWRkaW5nQm90dG9tIil8fDAsMTApKSxuLndpZHRoKCl8fG4ud2lkdGgodC5jdXJyZW50SXRlbS5pbm5lcldpZHRoKCktcGFyc2VJbnQodC5jdXJyZW50SXRlbS5jc3MoInBhZGRpbmdMZWZ0Iil8fDAsMTApLXBhcnNlSW50KHQuY3VycmVudEl0ZW0uY3NzKCJwYWRkaW5nUmlnaHQiKXx8MCwxMCkpKX19KSx0LnBsYWNlaG9sZGVyPWUocy5wbGFjZWhvbGRlci5lbGVtZW50LmNhbGwodC5lbGVtZW50LHQuY3VycmVudEl0ZW0pKSx0LmN1cnJlbnRJdGVtLmFmdGVyKHQucGxhY2Vob2xkZXIpLHMucGxhY2Vob2xkZXIudXBkYXRlKHQsdC5wbGFjZWhvbGRlcil9LF9jcmVhdGVUclBsYWNlaG9sZGVyOmZ1bmN0aW9uKHQsaSl7dmFyIHM9dGhpczt0LmNoaWxkcmVuKCkuZWFjaChmdW5jdGlvbigpe2UoIjx0ZD4mIzE2MDs8L3RkPiIscy5kb2N1bWVudFswXSkuYXR0cigiY29sc3BhbiIsZSh0aGlzKS5hdHRyKCJjb2xzcGFuIil8fDEpLmFwcGVuZFRvKGkpfSl9LF9jb250YWN0Q29udGFpbmVyczpmdW5jdGlvbih0KXt2YXIgaSxzLG4sYSxvLHIsaCxsLHUsZCxjPW51bGwscD1udWxsO2ZvcihpPXRoaXMuY29udGFpbmVycy5sZW5ndGgtMTtpPj0wO2ktLSlpZighZS5jb250YWlucyh0aGlzLmN1cnJlbnRJdGVtWzBdLHRoaXMuY29udGFpbmVyc1tpXS5lbGVtZW50WzBdKSlpZih0aGlzLl9pbnRlcnNlY3RzV2l0aCh0aGlzLmNvbnRhaW5lcnNbaV0uY29udGFpbmVyQ2FjaGUpKXtpZihjJiZlLmNvbnRhaW5zKHRoaXMuY29udGFpbmVyc1tpXS5lbGVtZW50WzBdLGMuZWxlbWVudFswXSkpY29udGludWU7Yz10aGlzLmNvbnRhaW5lcnNbaV0scD1pfWVsc2UgdGhpcy5jb250YWluZXJzW2ldLmNvbnRhaW5lckNhY2hlLm92ZXImJih0aGlzLmNvbnRhaW5lcnNbaV0uX3RyaWdnZXIoIm91dCIsdCx0aGlzLl91aUhhc2godGhpcykpLHRoaXMuY29udGFpbmVyc1tpXS5jb250YWluZXJDYWNoZS5vdmVyPTApO2lmKGMpaWYoMT09PXRoaXMuY29udGFpbmVycy5sZW5ndGgpdGhpcy5jb250YWluZXJzW3BdLmNvbnRhaW5lckNhY2hlLm92ZXJ8fCh0aGlzLmNvbnRhaW5lcnNbcF0uX3RyaWdnZXIoIm92ZXIiLHQsdGhpcy5fdWlIYXNoKHRoaXMpKSx0aGlzLmNvbnRhaW5lcnNbcF0uY29udGFpbmVyQ2FjaGUub3Zlcj0xKTtlbHNle2ZvcihuPTFlNCxhPW51bGwsdT1jLmZsb2F0aW5nfHx0aGlzLl9pc0Zsb2F0aW5nKHRoaXMuY3VycmVudEl0ZW0pLG89dT8ibGVmdCI6InRvcCIscj11PyJ3aWR0aCI6ImhlaWdodCIsZD11PyJjbGllbnRYIjoiY2xpZW50WSIscz10aGlzLml0ZW1zLmxlbmd0aC0xO3M+PTA7cy0tKWUuY29udGFpbnModGhpcy5jb250YWluZXJzW3BdLmVsZW1lbnRbMF0sdGhpcy5pdGVtc1tzXS5pdGVtWzBdKSYmdGhpcy5pdGVtc1tzXS5pdGVtWzBdIT09dGhpcy5jdXJyZW50SXRlbVswXSYmKGg9dGhpcy5pdGVtc1tzXS5pdGVtLm9mZnNldCgpW29dLGw9ITEsdFtkXS1oPnRoaXMuaXRlbXNbc11bcl0vMiYmKGw9ITApLG4+TWF0aC5hYnModFtkXS1oKSYmKG49TWF0aC5hYnModFtkXS1oKSxhPXRoaXMuaXRlbXNbc10sdGhpcy5kaXJlY3Rpb249bD8idXAiOiJkb3duIikpO2lmKCFhJiYhdGhpcy5vcHRpb25zLmRyb3BPbkVtcHR5KXJldHVybjtpZih0aGlzLmN1cnJlbnRDb250YWluZXI9PT10aGlzLmNvbnRhaW5lcnNbcF0pcmV0dXJuIHRoaXMuY3VycmVudENvbnRhaW5lci5jb250YWluZXJDYWNoZS5vdmVyfHwodGhpcy5jb250YWluZXJzW3BdLl90cmlnZ2VyKCJvdmVyIix0LHRoaXMuX3VpSGFzaCgpKSx0aGlzLmN1cnJlbnRDb250YWluZXIuY29udGFpbmVyQ2FjaGUub3Zlcj0xKSx2b2lkIDA7YT90aGlzLl9yZWFycmFuZ2UodCxhLG51bGwsITApOnRoaXMuX3JlYXJyYW5nZSh0LG51bGwsdGhpcy5jb250YWluZXJzW3BdLmVsZW1lbnQsITApLHRoaXMuX3RyaWdnZXIoImNoYW5nZSIsdCx0aGlzLl91aUhhc2goKSksdGhpcy5jb250YWluZXJzW3BdLl90cmlnZ2VyKCJjaGFuZ2UiLHQsdGhpcy5fdWlIYXNoKHRoaXMpKSx0aGlzLmN1cnJlbnRDb250YWluZXI9dGhpcy5jb250YWluZXJzW3BdLHRoaXMub3B0aW9ucy5wbGFjZWhvbGRlci51cGRhdGUodGhpcy5jdXJyZW50Q29udGFpbmVyLHRoaXMucGxhY2Vob2xkZXIpLHRoaXMuY29udGFpbmVyc1twXS5fdHJpZ2dlcigib3ZlciIsdCx0aGlzLl91aUhhc2godGhpcykpLHRoaXMuY29udGFpbmVyc1twXS5jb250YWluZXJDYWNoZS5vdmVyPTF9fSxfY3JlYXRlSGVscGVyOmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMub3B0aW9ucyxzPWUuaXNGdW5jdGlvbihpLmhlbHBlcik/ZShpLmhlbHBlci5hcHBseSh0aGlzLmVsZW1lbnRbMF0sW3QsdGhpcy5jdXJyZW50SXRlbV0pKToiY2xvbmUiPT09aS5oZWxwZXI/dGhpcy5jdXJyZW50SXRlbS5jbG9uZSgpOnRoaXMuY3VycmVudEl0ZW07cmV0dXJuIHMucGFyZW50cygiYm9keSIpLmxlbmd0aHx8ZSgicGFyZW50IiE9PWkuYXBwZW5kVG8/aS5hcHBlbmRUbzp0aGlzLmN1cnJlbnRJdGVtWzBdLnBhcmVudE5vZGUpWzBdLmFwcGVuZENoaWxkKHNbMF0pLHNbMF09PT10aGlzLmN1cnJlbnRJdGVtWzBdJiYodGhpcy5fc3RvcmVkQ1NTPXt3aWR0aDp0aGlzLmN1cnJlbnRJdGVtWzBdLnN0eWxlLndpZHRoLGhlaWdodDp0aGlzLmN1cnJlbnRJdGVtWzBdLnN0eWxlLmhlaWdodCxwb3NpdGlvbjp0aGlzLmN1cnJlbnRJdGVtLmNzcygicG9zaXRpb24iKSx0b3A6dGhpcy5jdXJyZW50SXRlbS5jc3MoInRvcCIpLGxlZnQ6dGhpcy5jdXJyZW50SXRlbS5jc3MoImxlZnQiKX0pLCghc1swXS5zdHlsZS53aWR0aHx8aS5mb3JjZUhlbHBlclNpemUpJiZzLndpZHRoKHRoaXMuY3VycmVudEl0ZW0ud2lkdGgoKSksKCFzWzBdLnN0eWxlLmhlaWdodHx8aS5mb3JjZUhlbHBlclNpemUpJiZzLmhlaWdodCh0aGlzLmN1cnJlbnRJdGVtLmhlaWdodCgpKSxzfSxfYWRqdXN0T2Zmc2V0RnJvbUhlbHBlcjpmdW5jdGlvbih0KXsic3RyaW5nIj09dHlwZW9mIHQmJih0PXQuc3BsaXQoIiAiKSksZS5pc0FycmF5KHQpJiYodD17bGVmdDordFswXSx0b3A6K3RbMV18fDB9KSwibGVmdCJpbiB0JiYodGhpcy5vZmZzZXQuY2xpY2subGVmdD10LmxlZnQrdGhpcy5tYXJnaW5zLmxlZnQpLCJyaWdodCJpbiB0JiYodGhpcy5vZmZzZXQuY2xpY2subGVmdD10aGlzLmhlbHBlclByb3BvcnRpb25zLndpZHRoLXQucmlnaHQrdGhpcy5tYXJnaW5zLmxlZnQpLCJ0b3AiaW4gdCYmKHRoaXMub2Zmc2V0LmNsaWNrLnRvcD10LnRvcCt0aGlzLm1hcmdpbnMudG9wKSwiYm90dG9tImluIHQmJih0aGlzLm9mZnNldC5jbGljay50b3A9dGhpcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQtdC5ib3R0b20rdGhpcy5tYXJnaW5zLnRvcCl9LF9nZXRQYXJlbnRPZmZzZXQ6ZnVuY3Rpb24oKXt0aGlzLm9mZnNldFBhcmVudD10aGlzLmhlbHBlci5vZmZzZXRQYXJlbnQoKTt2YXIgdD10aGlzLm9mZnNldFBhcmVudC5vZmZzZXQoKTtyZXR1cm4iYWJzb2x1dGUiPT09dGhpcy5jc3NQb3NpdGlvbiYmdGhpcy5zY3JvbGxQYXJlbnRbMF0hPT10aGlzLmRvY3VtZW50WzBdJiZlLmNvbnRhaW5zKHRoaXMuc2Nyb2xsUGFyZW50WzBdLHRoaXMub2Zmc2V0UGFyZW50WzBdKSYmKHQubGVmdCs9dGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsTGVmdCgpLHQudG9wKz10aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxUb3AoKSksKHRoaXMub2Zmc2V0UGFyZW50WzBdPT09dGhpcy5kb2N1bWVudFswXS5ib2R5fHx0aGlzLm9mZnNldFBhcmVudFswXS50YWdOYW1lJiYiaHRtbCI9PT10aGlzLm9mZnNldFBhcmVudFswXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkmJmUudWkuaWUpJiYodD17dG9wOjAsbGVmdDowfSkse3RvcDp0LnRvcCsocGFyc2VJbnQodGhpcy5vZmZzZXRQYXJlbnQuY3NzKCJib3JkZXJUb3BXaWR0aCIpLDEwKXx8MCksbGVmdDp0LmxlZnQrKHBhcnNlSW50KHRoaXMub2Zmc2V0UGFyZW50LmNzcygiYm9yZGVyTGVmdFdpZHRoIiksMTApfHwwKX19LF9nZXRSZWxhdGl2ZU9mZnNldDpmdW5jdGlvbigpe2lmKCJyZWxhdGl2ZSI9PT10aGlzLmNzc1Bvc2l0aW9uKXt2YXIgZT10aGlzLmN1cnJlbnRJdGVtLnBvc2l0aW9uKCk7cmV0dXJue3RvcDplLnRvcC0ocGFyc2VJbnQodGhpcy5oZWxwZXIuY3NzKCJ0b3AiKSwxMCl8fDApK3RoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbFRvcCgpLGxlZnQ6ZS5sZWZ0LShwYXJzZUludCh0aGlzLmhlbHBlci5jc3MoImxlZnQiKSwxMCl8fDApK3RoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbExlZnQoKX19cmV0dXJue3RvcDowLGxlZnQ6MH19LF9jYWNoZU1hcmdpbnM6ZnVuY3Rpb24oKXt0aGlzLm1hcmdpbnM9e2xlZnQ6cGFyc2VJbnQodGhpcy5jdXJyZW50SXRlbS5jc3MoIm1hcmdpbkxlZnQiKSwxMCl8fDAsdG9wOnBhcnNlSW50KHRoaXMuY3VycmVudEl0ZW0uY3NzKCJtYXJnaW5Ub3AiKSwxMCl8fDB9fSxfY2FjaGVIZWxwZXJQcm9wb3J0aW9uczpmdW5jdGlvbigpe3RoaXMuaGVscGVyUHJvcG9ydGlvbnM9e3dpZHRoOnRoaXMuaGVscGVyLm91dGVyV2lkdGgoKSxoZWlnaHQ6dGhpcy5oZWxwZXIub3V0ZXJIZWlnaHQoKX19LF9zZXRDb250YWlubWVudDpmdW5jdGlvbigpe3ZhciB0LGkscyxuPXRoaXMub3B0aW9uczsicGFyZW50Ij09PW4uY29udGFpbm1lbnQmJihuLmNvbnRhaW5tZW50PXRoaXMuaGVscGVyWzBdLnBhcmVudE5vZGUpLCgiZG9jdW1lbnQiPT09bi5jb250YWlubWVudHx8IndpbmRvdyI9PT1uLmNvbnRhaW5tZW50KSYmKHRoaXMuY29udGFpbm1lbnQ9WzAtdGhpcy5vZmZzZXQucmVsYXRpdmUubGVmdC10aGlzLm9mZnNldC5wYXJlbnQubGVmdCwwLXRoaXMub2Zmc2V0LnJlbGF0aXZlLnRvcC10aGlzLm9mZnNldC5wYXJlbnQudG9wLCJkb2N1bWVudCI9PT1uLmNvbnRhaW5tZW50P3RoaXMuZG9jdW1lbnQud2lkdGgoKTp0aGlzLndpbmRvdy53aWR0aCgpLXRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgtdGhpcy5tYXJnaW5zLmxlZnQsKCJkb2N1bWVudCI9PT1uLmNvbnRhaW5tZW50P3RoaXMuZG9jdW1lbnQud2lkdGgoKTp0aGlzLndpbmRvdy5oZWlnaHQoKXx8dGhpcy5kb2N1bWVudFswXS5ib2R5LnBhcmVudE5vZGUuc2Nyb2xsSGVpZ2h0KS10aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodC10aGlzLm1hcmdpbnMudG9wXSksL14oZG9jdW1lbnR8d2luZG93fHBhcmVudCkkLy50ZXN0KG4uY29udGFpbm1lbnQpfHwodD1lKG4uY29udGFpbm1lbnQpWzBdLGk9ZShuLmNvbnRhaW5tZW50KS5vZmZzZXQoKSxzPSJoaWRkZW4iIT09ZSh0KS5jc3MoIm92ZXJmbG93IiksdGhpcy5jb250YWlubWVudD1baS5sZWZ0KyhwYXJzZUludChlKHQpLmNzcygiYm9yZGVyTGVmdFdpZHRoIiksMTApfHwwKSsocGFyc2VJbnQoZSh0KS5jc3MoInBhZGRpbmdMZWZ0IiksMTApfHwwKS10aGlzLm1hcmdpbnMubGVmdCxpLnRvcCsocGFyc2VJbnQoZSh0KS5jc3MoImJvcmRlclRvcFdpZHRoIiksMTApfHwwKSsocGFyc2VJbnQoZSh0KS5jc3MoInBhZGRpbmdUb3AiKSwxMCl8fDApLXRoaXMubWFyZ2lucy50b3AsaS5sZWZ0KyhzP01hdGgubWF4KHQuc2Nyb2xsV2lkdGgsdC5vZmZzZXRXaWR0aCk6dC5vZmZzZXRXaWR0aCktKHBhcnNlSW50KGUodCkuY3NzKCJib3JkZXJMZWZ0V2lkdGgiKSwxMCl8fDApLShwYXJzZUludChlKHQpLmNzcygicGFkZGluZ1JpZ2h0IiksMTApfHwwKS10aGlzLmhlbHBlclByb3BvcnRpb25zLndpZHRoLXRoaXMubWFyZ2lucy5sZWZ0LGkudG9wKyhzP01hdGgubWF4KHQuc2Nyb2xsSGVpZ2h0LHQub2Zmc2V0SGVpZ2h0KTp0Lm9mZnNldEhlaWdodCktKHBhcnNlSW50KGUodCkuY3NzKCJib3JkZXJUb3BXaWR0aCIpLDEwKXx8MCktKHBhcnNlSW50KGUodCkuY3NzKCJwYWRkaW5nQm90dG9tIiksMTApfHwwKS10aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodC10aGlzLm1hcmdpbnMudG9wXSl9LF9jb252ZXJ0UG9zaXRpb25UbzpmdW5jdGlvbih0LGkpe2l8fChpPXRoaXMucG9zaXRpb24pO3ZhciBzPSJhYnNvbHV0ZSI9PT10PzE6LTEsbj0iYWJzb2x1dGUiIT09dGhpcy5jc3NQb3NpdGlvbnx8dGhpcy5zY3JvbGxQYXJlbnRbMF0hPT10aGlzLmRvY3VtZW50WzBdJiZlLmNvbnRhaW5zKHRoaXMuc2Nyb2xsUGFyZW50WzBdLHRoaXMub2Zmc2V0UGFyZW50WzBdKT90aGlzLnNjcm9sbFBhcmVudDp0aGlzLm9mZnNldFBhcmVudCxhPS8oaHRtbHxib2R5KS9pLnRlc3QoblswXS50YWdOYW1lKTtyZXR1cm57dG9wOmkudG9wK3RoaXMub2Zmc2V0LnJlbGF0aXZlLnRvcCpzK3RoaXMub2Zmc2V0LnBhcmVudC50b3Aqcy0oImZpeGVkIj09PXRoaXMuY3NzUG9zaXRpb24/LXRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbFRvcCgpOmE/MDpuLnNjcm9sbFRvcCgpKSpzLGxlZnQ6aS5sZWZ0K3RoaXMub2Zmc2V0LnJlbGF0aXZlLmxlZnQqcyt0aGlzLm9mZnNldC5wYXJlbnQubGVmdCpzLSgiZml4ZWQiPT09dGhpcy5jc3NQb3NpdGlvbj8tdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsTGVmdCgpOmE/MDpuLnNjcm9sbExlZnQoKSkqc319LF9nZW5lcmF0ZVBvc2l0aW9uOmZ1bmN0aW9uKHQpe3ZhciBpLHMsbj10aGlzLm9wdGlvbnMsYT10LnBhZ2VYLG89dC5wYWdlWSxyPSJhYnNvbHV0ZSIhPT10aGlzLmNzc1Bvc2l0aW9ufHx0aGlzLnNjcm9sbFBhcmVudFswXSE9PXRoaXMuZG9jdW1lbnRbMF0mJmUuY29udGFpbnModGhpcy5zY3JvbGxQYXJlbnRbMF0sdGhpcy5vZmZzZXRQYXJlbnRbMF0pP3RoaXMuc2Nyb2xsUGFyZW50OnRoaXMub2Zmc2V0UGFyZW50LGg9LyhodG1sfGJvZHkpL2kudGVzdChyWzBdLnRhZ05hbWUpO3JldHVybiJyZWxhdGl2ZSIhPT10aGlzLmNzc1Bvc2l0aW9ufHx0aGlzLnNjcm9sbFBhcmVudFswXSE9PXRoaXMuZG9jdW1lbnRbMF0mJnRoaXMuc2Nyb2xsUGFyZW50WzBdIT09dGhpcy5vZmZzZXRQYXJlbnRbMF18fCh0aGlzLm9mZnNldC5yZWxhdGl2ZT10aGlzLl9nZXRSZWxhdGl2ZU9mZnNldCgpKSx0aGlzLm9yaWdpbmFsUG9zaXRpb24mJih0aGlzLmNvbnRhaW5tZW50JiYodC5wYWdlWC10aGlzLm9mZnNldC5jbGljay5sZWZ0PHRoaXMuY29udGFpbm1lbnRbMF0mJihhPXRoaXMuY29udGFpbm1lbnRbMF0rdGhpcy5vZmZzZXQuY2xpY2subGVmdCksdC5wYWdlWS10aGlzLm9mZnNldC5jbGljay50b3A8dGhpcy5jb250YWlubWVudFsxXSYmKG89dGhpcy5jb250YWlubWVudFsxXSt0aGlzLm9mZnNldC5jbGljay50b3ApLHQucGFnZVgtdGhpcy5vZmZzZXQuY2xpY2subGVmdD50aGlzLmNvbnRhaW5tZW50WzJdJiYoYT10aGlzLmNvbnRhaW5tZW50WzJdK3RoaXMub2Zmc2V0LmNsaWNrLmxlZnQpLHQucGFnZVktdGhpcy5vZmZzZXQuY2xpY2sudG9wPnRoaXMuY29udGFpbm1lbnRbM10mJihvPXRoaXMuY29udGFpbm1lbnRbM10rdGhpcy5vZmZzZXQuY2xpY2sudG9wKSksbi5ncmlkJiYoaT10aGlzLm9yaWdpbmFsUGFnZVkrTWF0aC5yb3VuZCgoby10aGlzLm9yaWdpbmFsUGFnZVkpL24uZ3JpZFsxXSkqbi5ncmlkWzFdLG89dGhpcy5jb250YWlubWVudD9pLXRoaXMub2Zmc2V0LmNsaWNrLnRvcD49dGhpcy5jb250YWlubWVudFsxXSYmaS10aGlzLm9mZnNldC5jbGljay50b3A8PXRoaXMuY29udGFpbm1lbnRbM10/aTppLXRoaXMub2Zmc2V0LmNsaWNrLnRvcD49dGhpcy5jb250YWlubWVudFsxXT9pLW4uZ3JpZFsxXTppK24uZ3JpZFsxXTppLHM9dGhpcy5vcmlnaW5hbFBhZ2VYK01hdGgucm91bmQoKGEtdGhpcy5vcmlnaW5hbFBhZ2VYKS9uLmdyaWRbMF0pKm4uZ3JpZFswXSxhPXRoaXMuY29udGFpbm1lbnQ/cy10aGlzLm9mZnNldC5jbGljay5sZWZ0Pj10aGlzLmNvbnRhaW5tZW50WzBdJiZzLXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ8PXRoaXMuY29udGFpbm1lbnRbMl0/czpzLXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ+PXRoaXMuY29udGFpbm1lbnRbMF0/cy1uLmdyaWRbMF06cytuLmdyaWRbMF06cykpLHt0b3A6by10aGlzLm9mZnNldC5jbGljay50b3AtdGhpcy5vZmZzZXQucmVsYXRpdmUudG9wLXRoaXMub2Zmc2V0LnBhcmVudC50b3ArKCJmaXhlZCI9PT10aGlzLmNzc1Bvc2l0aW9uPy10aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxUb3AoKTpoPzA6ci5zY3JvbGxUb3AoKSksbGVmdDphLXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQtdGhpcy5vZmZzZXQucmVsYXRpdmUubGVmdC10aGlzLm9mZnNldC5wYXJlbnQubGVmdCsoImZpeGVkIj09PXRoaXMuY3NzUG9zaXRpb24/LXRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbExlZnQoKTpoPzA6ci5zY3JvbGxMZWZ0KCkpfX0sX3JlYXJyYW5nZTpmdW5jdGlvbihlLHQsaSxzKXtpP2lbMF0uYXBwZW5kQ2hpbGQodGhpcy5wbGFjZWhvbGRlclswXSk6dC5pdGVtWzBdLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMucGxhY2Vob2xkZXJbMF0sImRvd24iPT09dGhpcy5kaXJlY3Rpb24/dC5pdGVtWzBdOnQuaXRlbVswXS5uZXh0U2libGluZyksdGhpcy5jb3VudGVyPXRoaXMuY291bnRlcj8rK3RoaXMuY291bnRlcjoxO3ZhciBuPXRoaXMuY291bnRlcjt0aGlzLl9kZWxheShmdW5jdGlvbigpe249PT10aGlzLmNvdW50ZXImJnRoaXMucmVmcmVzaFBvc2l0aW9ucyghcyl9KX0sX2NsZWFyOmZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gaShlLHQsaSl7cmV0dXJuIGZ1bmN0aW9uKHMpe2kuX3RyaWdnZXIoZSxzLHQuX3VpSGFzaCh0KSl9fXRoaXMucmV2ZXJ0aW5nPSExO3ZhciBzLG49W107aWYoIXRoaXMuX25vRmluYWxTb3J0JiZ0aGlzLmN1cnJlbnRJdGVtLnBhcmVudCgpLmxlbmd0aCYmdGhpcy5wbGFjZWhvbGRlci5iZWZvcmUodGhpcy5jdXJyZW50SXRlbSksdGhpcy5fbm9GaW5hbFNvcnQ9bnVsbCx0aGlzLmhlbHBlclswXT09PXRoaXMuY3VycmVudEl0ZW1bMF0pe2ZvcihzIGluIHRoaXMuX3N0b3JlZENTUykoImF1dG8iPT09dGhpcy5fc3RvcmVkQ1NTW3NdfHwic3RhdGljIj09PXRoaXMuX3N0b3JlZENTU1tzXSkmJih0aGlzLl9zdG9yZWRDU1Nbc109IiIpO3RoaXMuY3VycmVudEl0ZW0uY3NzKHRoaXMuX3N0b3JlZENTUykucmVtb3ZlQ2xhc3MoInVpLXNvcnRhYmxlLWhlbHBlciIpfWVsc2UgdGhpcy5jdXJyZW50SXRlbS5zaG93KCk7Zm9yKHRoaXMuZnJvbU91dHNpZGUmJiF0JiZuLnB1c2goZnVuY3Rpb24oZSl7dGhpcy5fdHJpZ2dlcigicmVjZWl2ZSIsZSx0aGlzLl91aUhhc2godGhpcy5mcm9tT3V0c2lkZSkpfSksIXRoaXMuZnJvbU91dHNpZGUmJnRoaXMuZG9tUG9zaXRpb24ucHJldj09PXRoaXMuY3VycmVudEl0ZW0ucHJldigpLm5vdCgiLnVpLXNvcnRhYmxlLWhlbHBlciIpWzBdJiZ0aGlzLmRvbVBvc2l0aW9uLnBhcmVudD09PXRoaXMuY3VycmVudEl0ZW0ucGFyZW50KClbMF18fHR8fG4ucHVzaChmdW5jdGlvbihlKXt0aGlzLl90cmlnZ2VyKCJ1cGRhdGUiLGUsdGhpcy5fdWlIYXNoKCkpfSksdGhpcyE9PXRoaXMuY3VycmVudENvbnRhaW5lciYmKHR8fChuLnB1c2goZnVuY3Rpb24oZSl7dGhpcy5fdHJpZ2dlcigicmVtb3ZlIixlLHRoaXMuX3VpSGFzaCgpKX0pLG4ucHVzaChmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7ZS5fdHJpZ2dlcigicmVjZWl2ZSIsdCx0aGlzLl91aUhhc2godGhpcykpfX0uY2FsbCh0aGlzLHRoaXMuY3VycmVudENvbnRhaW5lcikpLG4ucHVzaChmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7ZS5fdHJpZ2dlcigidXBkYXRlIix0LHRoaXMuX3VpSGFzaCh0aGlzKSl9fS5jYWxsKHRoaXMsdGhpcy5jdXJyZW50Q29udGFpbmVyKSkpKSxzPXRoaXMuY29udGFpbmVycy5sZW5ndGgtMTtzPj0wO3MtLSl0fHxuLnB1c2goaSgiZGVhY3RpdmF0ZSIsdGhpcyx0aGlzLmNvbnRhaW5lcnNbc10pKSx0aGlzLmNvbnRhaW5lcnNbc10uY29udGFpbmVyQ2FjaGUub3ZlciYmKG4ucHVzaChpKCJvdXQiLHRoaXMsdGhpcy5jb250YWluZXJzW3NdKSksdGhpcy5jb250YWluZXJzW3NdLmNvbnRhaW5lckNhY2hlLm92ZXI9MCk7aWYodGhpcy5zdG9yZWRDdXJzb3ImJih0aGlzLmRvY3VtZW50LmZpbmQoImJvZHkiKS5jc3MoImN1cnNvciIsdGhpcy5zdG9yZWRDdXJzb3IpLHRoaXMuc3RvcmVkU3R5bGVzaGVldC5yZW1vdmUoKSksdGhpcy5fc3RvcmVkT3BhY2l0eSYmdGhpcy5oZWxwZXIuY3NzKCJvcGFjaXR5Iix0aGlzLl9zdG9yZWRPcGFjaXR5KSx0aGlzLl9zdG9yZWRaSW5kZXgmJnRoaXMuaGVscGVyLmNzcygiekluZGV4IiwiYXV0byI9PT10aGlzLl9zdG9yZWRaSW5kZXg/IiI6dGhpcy5fc3RvcmVkWkluZGV4KSx0aGlzLmRyYWdnaW5nPSExLHR8fHRoaXMuX3RyaWdnZXIoImJlZm9yZVN0b3AiLGUsdGhpcy5fdWlIYXNoKCkpLHRoaXMucGxhY2Vob2xkZXJbMF0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLnBsYWNlaG9sZGVyWzBdKSx0aGlzLmNhbmNlbEhlbHBlclJlbW92YWx8fCh0aGlzLmhlbHBlclswXSE9PXRoaXMuY3VycmVudEl0ZW1bMF0mJnRoaXMuaGVscGVyLnJlbW92ZSgpLHRoaXMuaGVscGVyPW51bGwpLCF0KXtmb3Iocz0wO24ubGVuZ3RoPnM7cysrKW5bc10uY2FsbCh0aGlzLGUpO3RoaXMuX3RyaWdnZXIoInN0b3AiLGUsdGhpcy5fdWlIYXNoKCkpfXJldHVybiB0aGlzLmZyb21PdXRzaWRlPSExLCF0aGlzLmNhbmNlbEhlbHBlclJlbW92YWx9LF90cmlnZ2VyOmZ1bmN0aW9uKCl7ZS5XaWRnZXQucHJvdG90eXBlLl90cmlnZ2VyLmFwcGx5KHRoaXMsYXJndW1lbnRzKT09PSExJiZ0aGlzLmNhbmNlbCgpfSxfdWlIYXNoOmZ1bmN0aW9uKHQpe3ZhciBpPXR8fHRoaXM7cmV0dXJue2hlbHBlcjppLmhlbHBlcixwbGFjZWhvbGRlcjppLnBsYWNlaG9sZGVyfHxlKFtdKSxwb3NpdGlvbjppLnBvc2l0aW9uLG9yaWdpbmFsUG9zaXRpb246aS5vcmlnaW5hbFBvc2l0aW9uLG9mZnNldDppLnBvc2l0aW9uQWJzLGl0ZW06aS5jdXJyZW50SXRlbSxzZW5kZXI6dD90LmVsZW1lbnQ6bnVsbH19fSksZS53aWRnZXQoInVpLnNwaW5uZXIiLHt2ZXJzaW9uOiIxLjExLjQiLGRlZmF1bHRFbGVtZW50OiI8aW5wdXQ+Iix3aWRnZXRFdmVudFByZWZpeDoic3BpbiIsb3B0aW9uczp7Y3VsdHVyZTpudWxsLGljb25zOntkb3duOiJ1aS1pY29uLXRyaWFuZ2xlLTEtcyIsdXA6InVpLWljb24tdHJpYW5nbGUtMS1uIn0saW5jcmVtZW50YWw6ITAsbWF4Om51bGwsbWluOm51bGwsbnVtYmVyRm9ybWF0Om51bGwscGFnZToxMCxzdGVwOjEsY2hhbmdlOm51bGwsc3BpbjpudWxsLHN0YXJ0Om51bGwsc3RvcDpudWxsfSxfY3JlYXRlOmZ1bmN0aW9uKCl7dGhpcy5fc2V0T3B0aW9uKCJtYXgiLHRoaXMub3B0aW9ucy5tYXgpLHRoaXMuX3NldE9wdGlvbigibWluIix0aGlzLm9wdGlvbnMubWluKSx0aGlzLl9zZXRPcHRpb24oInN0ZXAiLHRoaXMub3B0aW9ucy5zdGVwKSwiIiE9PXRoaXMudmFsdWUoKSYmdGhpcy5fdmFsdWUodGhpcy5lbGVtZW50LnZhbCgpLCEwKSx0aGlzLl9kcmF3KCksdGhpcy5fb24odGhpcy5fZXZlbnRzKSx0aGlzLl9yZWZyZXNoKCksdGhpcy5fb24odGhpcy53aW5kb3cse2JlZm9yZXVubG9hZDpmdW5jdGlvbigpe3RoaXMuZWxlbWVudC5yZW1vdmVBdHRyKCJhdXRvY29tcGxldGUiKX19KX0sX2dldENyZWF0ZU9wdGlvbnM6ZnVuY3Rpb24oKXt2YXIgdD17fSxpPXRoaXMuZWxlbWVudDtyZXR1cm4gZS5lYWNoKFsibWluIiwibWF4Iiwic3RlcCJdLGZ1bmN0aW9uKGUscyl7dmFyIG49aS5hdHRyKHMpO3ZvaWQgMCE9PW4mJm4ubGVuZ3RoJiYodFtzXT1uKX0pLHR9LF9ldmVudHM6e2tleWRvd246ZnVuY3Rpb24oZSl7dGhpcy5fc3RhcnQoZSkmJnRoaXMuX2tleWRvd24oZSkmJmUucHJldmVudERlZmF1bHQoKX0sa2V5dXA6Il9zdG9wIixmb2N1czpmdW5jdGlvbigpe3RoaXMucHJldmlvdXM9dGhpcy5lbGVtZW50LnZhbCgpfSxibHVyOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNhbmNlbEJsdXI/KGRlbGV0ZSB0aGlzLmNhbmNlbEJsdXIsdm9pZCAwKToodGhpcy5fc3RvcCgpLHRoaXMuX3JlZnJlc2goKSx0aGlzLnByZXZpb3VzIT09dGhpcy5lbGVtZW50LnZhbCgpJiZ0aGlzLl90cmlnZ2VyKCJjaGFuZ2UiLGUpLHZvaWQgMCl9LG1vdXNld2hlZWw6ZnVuY3Rpb24oZSx0KXtpZih0KXtpZighdGhpcy5zcGlubmluZyYmIXRoaXMuX3N0YXJ0KGUpKXJldHVybiExO3RoaXMuX3NwaW4oKHQ+MD8xOi0xKSp0aGlzLm9wdGlvbnMuc3RlcCxlKSxjbGVhclRpbWVvdXQodGhpcy5tb3VzZXdoZWVsVGltZXIpLHRoaXMubW91c2V3aGVlbFRpbWVyPXRoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7dGhpcy5zcGlubmluZyYmdGhpcy5fc3RvcChlKX0sMTAwKSxlLnByZXZlbnREZWZhdWx0KCl9fSwibW91c2Vkb3duIC51aS1zcGlubmVyLWJ1dHRvbiI6ZnVuY3Rpb24odCl7ZnVuY3Rpb24gaSgpe3ZhciBlPXRoaXMuZWxlbWVudFswXT09PXRoaXMuZG9jdW1lbnRbMF0uYWN0aXZlRWxlbWVudDtlfHwodGhpcy5lbGVtZW50LmZvY3VzKCksdGhpcy5wcmV2aW91cz1zLHRoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7dGhpcy5wcmV2aW91cz1zfSkpfXZhciBzO3M9dGhpcy5lbGVtZW50WzBdPT09dGhpcy5kb2N1bWVudFswXS5hY3RpdmVFbGVtZW50P3RoaXMucHJldmlvdXM6dGhpcy5lbGVtZW50LnZhbCgpLHQucHJldmVudERlZmF1bHQoKSxpLmNhbGwodGhpcyksdGhpcy5jYW5jZWxCbHVyPSEwLHRoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXMuY2FuY2VsQmx1cixpLmNhbGwodGhpcyl9KSx0aGlzLl9zdGFydCh0KSE9PSExJiZ0aGlzLl9yZXBlYXQobnVsbCxlKHQuY3VycmVudFRhcmdldCkuaGFzQ2xhc3MoInVpLXNwaW5uZXItdXAiKT8xOi0xLHQpfSwibW91c2V1cCAudWktc3Bpbm5lci1idXR0b24iOiJfc3RvcCIsIm1vdXNlZW50ZXIgLnVpLXNwaW5uZXItYnV0dG9uIjpmdW5jdGlvbih0KXtyZXR1cm4gZSh0LmN1cnJlbnRUYXJnZXQpLmhhc0NsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKT90aGlzLl9zdGFydCh0KT09PSExPyExOih0aGlzLl9yZXBlYXQobnVsbCxlKHQuY3VycmVudFRhcmdldCkuaGFzQ2xhc3MoInVpLXNwaW5uZXItdXAiKT8xOi0xLHQpLHZvaWQgMCk6dm9pZCAwfSwibW91c2VsZWF2ZSAudWktc3Bpbm5lci1idXR0b24iOiJfc3RvcCJ9LF9kcmF3OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy51aVNwaW5uZXI9dGhpcy5lbGVtZW50LmFkZENsYXNzKCJ1aS1zcGlubmVyLWlucHV0IikuYXR0cigiYXV0b2NvbXBsZXRlIiwib2ZmIikud3JhcCh0aGlzLl91aVNwaW5uZXJIdG1sKCkpLnBhcmVudCgpLmFwcGVuZCh0aGlzLl9idXR0b25IdG1sKCkpO3RoaXMuZWxlbWVudC5hdHRyKCJyb2xlIiwic3BpbmJ1dHRvbiIpLHRoaXMuYnV0dG9ucz1lLmZpbmQoIi51aS1zcGlubmVyLWJ1dHRvbiIpLmF0dHIoInRhYkluZGV4IiwtMSkuYnV0dG9uKCkucmVtb3ZlQ2xhc3MoInVpLWNvcm5lci1hbGwiKSx0aGlzLmJ1dHRvbnMuaGVpZ2h0KCk+TWF0aC5jZWlsKC41KmUuaGVpZ2h0KCkpJiZlLmhlaWdodCgpPjAmJmUuaGVpZ2h0KGUuaGVpZ2h0KCkpLHRoaXMub3B0aW9ucy5kaXNhYmxlZCYmdGhpcy5kaXNhYmxlKCl9LF9rZXlkb3duOmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMub3B0aW9ucyxzPWUudWkua2V5Q29kZTtzd2l0Y2godC5rZXlDb2RlKXtjYXNlIHMuVVA6cmV0dXJuIHRoaXMuX3JlcGVhdChudWxsLDEsdCksITA7Y2FzZSBzLkRPV046cmV0dXJuIHRoaXMuX3JlcGVhdChudWxsLC0xLHQpLCEwO2Nhc2Ugcy5QQUdFX1VQOnJldHVybiB0aGlzLl9yZXBlYXQobnVsbCxpLnBhZ2UsdCksITA7Y2FzZSBzLlBBR0VfRE9XTjpyZXR1cm4gdGhpcy5fcmVwZWF0KG51bGwsLWkucGFnZSx0KSwhMH1yZXR1cm4hMX0sX3VpU3Bpbm5lckh0bWw6ZnVuY3Rpb24oKXtyZXR1cm4iPHNwYW4gY2xhc3M9J3VpLXNwaW5uZXIgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwnPjwvc3Bhbj4ifSxfYnV0dG9uSHRtbDpmdW5jdGlvbigpe3JldHVybiI8YSBjbGFzcz0ndWktc3Bpbm5lci1idXR0b24gdWktc3Bpbm5lci11cCB1aS1jb3JuZXItdHInPjxzcGFuIGNsYXNzPSd1aS1pY29uICIrdGhpcy5vcHRpb25zLmljb25zLnVwKyInPiYjOTY1MDs8L3NwYW4+IisiPC9hPiIrIjxhIGNsYXNzPSd1aS1zcGlubmVyLWJ1dHRvbiB1aS1zcGlubmVyLWRvd24gdWktY29ybmVyLWJyJz4iKyI8c3BhbiBjbGFzcz0ndWktaWNvbiAiK3RoaXMub3B0aW9ucy5pY29ucy5kb3duKyInPiYjOTY2MDs8L3NwYW4+IisiPC9hPiJ9LF9zdGFydDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5zcGlubmluZ3x8dGhpcy5fdHJpZ2dlcigic3RhcnQiLGUpIT09ITE/KHRoaXMuY291bnRlcnx8KHRoaXMuY291bnRlcj0xKSx0aGlzLnNwaW5uaW5nPSEwLCEwKTohMX0sX3JlcGVhdDpmdW5jdGlvbihlLHQsaSl7ZT1lfHw1MDAsY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMudGltZXI9dGhpcy5fZGVsYXkoZnVuY3Rpb24oKXt0aGlzLl9yZXBlYXQoNDAsdCxpKX0sZSksdGhpcy5fc3Bpbih0KnRoaXMub3B0aW9ucy5zdGVwLGkpfSxfc3BpbjpmdW5jdGlvbihlLHQpe3ZhciBpPXRoaXMudmFsdWUoKXx8MDt0aGlzLmNvdW50ZXJ8fCh0aGlzLmNvdW50ZXI9MSksaT10aGlzLl9hZGp1c3RWYWx1ZShpK2UqdGhpcy5faW5jcmVtZW50KHRoaXMuY291bnRlcikpLHRoaXMuc3Bpbm5pbmcmJnRoaXMuX3RyaWdnZXIoInNwaW4iLHQse3ZhbHVlOml9KT09PSExfHwodGhpcy5fdmFsdWUoaSksdGhpcy5jb3VudGVyKyspfSxfaW5jcmVtZW50OmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMub3B0aW9ucy5pbmNyZW1lbnRhbDtyZXR1cm4gaT9lLmlzRnVuY3Rpb24oaSk/aSh0KTpNYXRoLmZsb29yKHQqdCp0LzVlNC10KnQvNTAwKzE3KnQvMjAwKzEpOjF9LF9wcmVjaXNpb246ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9wcmVjaXNpb25PZih0aGlzLm9wdGlvbnMuc3RlcCk7cmV0dXJuIG51bGwhPT10aGlzLm9wdGlvbnMubWluJiYoZT1NYXRoLm1heChlLHRoaXMuX3ByZWNpc2lvbk9mKHRoaXMub3B0aW9ucy5taW4pKSksZX0sX3ByZWNpc2lvbk9mOmZ1bmN0aW9uKGUpe3ZhciB0PSIiK2UsaT10LmluZGV4T2YoIi4iKTtyZXR1cm4tMT09PWk/MDp0Lmxlbmd0aC1pLTF9LF9hZGp1c3RWYWx1ZTpmdW5jdGlvbihlKXt2YXIgdCxpLHM9dGhpcy5vcHRpb25zO3JldHVybiB0PW51bGwhPT1zLm1pbj9zLm1pbjowLGk9ZS10LGk9TWF0aC5yb3VuZChpL3Muc3RlcCkqcy5zdGVwLGU9dCtpLGU9cGFyc2VGbG9hdChlLnRvRml4ZWQodGhpcy5fcHJlY2lzaW9uKCkpKSxudWxsIT09cy5tYXgmJmU+cy5tYXg/cy5tYXg6bnVsbCE9PXMubWluJiZzLm1pbj5lP3MubWluOmV9LF9zdG9wOmZ1bmN0aW9uKGUpe3RoaXMuc3Bpbm5pbmcmJihjbGVhclRpbWVvdXQodGhpcy50aW1lciksY2xlYXJUaW1lb3V0KHRoaXMubW91c2V3aGVlbFRpbWVyKSx0aGlzLmNvdW50ZXI9MCx0aGlzLnNwaW5uaW5nPSExLHRoaXMuX3RyaWdnZXIoInN0b3AiLGUpKX0sX3NldE9wdGlvbjpmdW5jdGlvbihlLHQpe2lmKCJjdWx0dXJlIj09PWV8fCJudW1iZXJGb3JtYXQiPT09ZSl7dmFyIGk9dGhpcy5fcGFyc2UodGhpcy5lbGVtZW50LnZhbCgpKTtyZXR1cm4gdGhpcy5vcHRpb25zW2VdPXQsdGhpcy5lbGVtZW50LnZhbCh0aGlzLl9mb3JtYXQoaSkpLHZvaWQgMH0oIm1heCI9PT1lfHwibWluIj09PWV8fCJzdGVwIj09PWUpJiYic3RyaW5nIj09dHlwZW9mIHQmJih0PXRoaXMuX3BhcnNlKHQpKSwiaWNvbnMiPT09ZSYmKHRoaXMuYnV0dG9ucy5maXJzdCgpLmZpbmQoIi51aS1pY29uIikucmVtb3ZlQ2xhc3ModGhpcy5vcHRpb25zLmljb25zLnVwKS5hZGRDbGFzcyh0LnVwKSx0aGlzLmJ1dHRvbnMubGFzdCgpLmZpbmQoIi51aS1pY29uIikucmVtb3ZlQ2xhc3ModGhpcy5vcHRpb25zLmljb25zLmRvd24pLmFkZENsYXNzKHQuZG93bikpLHRoaXMuX3N1cGVyKGUsdCksImRpc2FibGVkIj09PWUmJih0aGlzLndpZGdldCgpLnRvZ2dsZUNsYXNzKCJ1aS1zdGF0ZS1kaXNhYmxlZCIsISF0KSx0aGlzLmVsZW1lbnQucHJvcCgiZGlzYWJsZWQiLCEhdCksdGhpcy5idXR0b25zLmJ1dHRvbih0PyJkaXNhYmxlIjoiZW5hYmxlIikpfSxfc2V0T3B0aW9uczpoKGZ1bmN0aW9uKGUpe3RoaXMuX3N1cGVyKGUpfSksX3BhcnNlOmZ1bmN0aW9uKGUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZSYmIiIhPT1lJiYoZT13aW5kb3cuR2xvYmFsaXplJiZ0aGlzLm9wdGlvbnMubnVtYmVyRm9ybWF0P0dsb2JhbGl6ZS5wYXJzZUZsb2F0KGUsMTAsdGhpcy5vcHRpb25zLmN1bHR1cmUpOitlKSwiIj09PWV8fGlzTmFOKGUpP251bGw6ZX0sX2Zvcm1hdDpmdW5jdGlvbihlKXtyZXR1cm4iIj09PWU/IiI6d2luZG93Lkdsb2JhbGl6ZSYmdGhpcy5vcHRpb25zLm51bWJlckZvcm1hdD9HbG9iYWxpemUuZm9ybWF0KGUsdGhpcy5vcHRpb25zLm51bWJlckZvcm1hdCx0aGlzLm9wdGlvbnMuY3VsdHVyZSk6ZX0sX3JlZnJlc2g6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQuYXR0cih7ImFyaWEtdmFsdWVtaW4iOnRoaXMub3B0aW9ucy5taW4sImFyaWEtdmFsdWVtYXgiOnRoaXMub3B0aW9ucy5tYXgsImFyaWEtdmFsdWVub3ciOnRoaXMuX3BhcnNlKHRoaXMuZWxlbWVudC52YWwoKSl9KX0saXNWYWxpZDpmdW5jdGlvbigpe3ZhciBlPXRoaXMudmFsdWUoKTtyZXR1cm4gbnVsbD09PWU/ITE6ZT09PXRoaXMuX2FkanVzdFZhbHVlKGUpfSxfdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgaTsiIiE9PWUmJihpPXRoaXMuX3BhcnNlKGUpLG51bGwhPT1pJiYodHx8KGk9dGhpcy5fYWRqdXN0VmFsdWUoaSkpLGU9dGhpcy5fZm9ybWF0KGkpKSksdGhpcy5lbGVtZW50LnZhbChlKSx0aGlzLl9yZWZyZXNoKCl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zcGlubmVyLWlucHV0IikucHJvcCgiZGlzYWJsZWQiLCExKS5yZW1vdmVBdHRyKCJhdXRvY29tcGxldGUiKS5yZW1vdmVBdHRyKCJyb2xlIikucmVtb3ZlQXR0cigiYXJpYS12YWx1ZW1pbiIpLnJlbW92ZUF0dHIoImFyaWEtdmFsdWVtYXgiKS5yZW1vdmVBdHRyKCJhcmlhLXZhbHVlbm93IiksdGhpcy51aVNwaW5uZXIucmVwbGFjZVdpdGgodGhpcy5lbGVtZW50KX0sc3RlcFVwOmgoZnVuY3Rpb24oZSl7dGhpcy5fc3RlcFVwKGUpfSksX3N0ZXBVcDpmdW5jdGlvbihlKXt0aGlzLl9zdGFydCgpJiYodGhpcy5fc3BpbigoZXx8MSkqdGhpcy5vcHRpb25zLnN0ZXApLHRoaXMuX3N0b3AoKSl9LHN0ZXBEb3duOmgoZnVuY3Rpb24oZSl7dGhpcy5fc3RlcERvd24oZSl9KSxfc3RlcERvd246ZnVuY3Rpb24oZSl7dGhpcy5fc3RhcnQoKSYmKHRoaXMuX3NwaW4oKGV8fDEpKi10aGlzLm9wdGlvbnMuc3RlcCksdGhpcy5fc3RvcCgpKX0scGFnZVVwOmgoZnVuY3Rpb24oZSl7dGhpcy5fc3RlcFVwKChlfHwxKSp0aGlzLm9wdGlvbnMucGFnZSl9KSxwYWdlRG93bjpoKGZ1bmN0aW9uKGUpe3RoaXMuX3N0ZXBEb3duKChlfHwxKSp0aGlzLm9wdGlvbnMucGFnZSl9KSx2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaCh0aGlzLl92YWx1ZSkuY2FsbCh0aGlzLGUpLHZvaWQgMCk6dGhpcy5fcGFyc2UodGhpcy5lbGVtZW50LnZhbCgpKX0sd2lkZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudWlTcGlubmVyfX0pLGUud2lkZ2V0KCJ1aS50YWJzIix7dmVyc2lvbjoiMS4xMS40IixkZWxheTozMDAsb3B0aW9uczp7YWN0aXZlOm51bGwsY29sbGFwc2libGU6ITEsZXZlbnQ6ImNsaWNrIixoZWlnaHRTdHlsZToiY29udGVudCIsaGlkZTpudWxsLHNob3c6bnVsbCxhY3RpdmF0ZTpudWxsLGJlZm9yZUFjdGl2YXRlOm51bGwsYmVmb3JlTG9hZDpudWxsLGxvYWQ6bnVsbH0sX2lzTG9jYWw6ZnVuY3Rpb24oKXt2YXIgZT0vIy4qJC87cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBpLHM7dD10LmNsb25lTm9kZSghMSksaT10LmhyZWYucmVwbGFjZShlLCIiKSxzPWxvY2F0aW9uLmhyZWYucmVwbGFjZShlLCIiKTt0cnl7aT1kZWNvZGVVUklDb21wb25lbnQoaSl9Y2F0Y2gobil7fXRyeXtzPWRlY29kZVVSSUNvbXBvbmVudChzKX1jYXRjaChuKXt9cmV0dXJuIHQuaGFzaC5sZW5ndGg+MSYmaT09PXN9fSgpLF9jcmVhdGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGk9dGhpcy5vcHRpb25zO3RoaXMucnVubmluZz0hMSx0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLXRhYnMgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwiKS50b2dnbGVDbGFzcygidWktdGFicy1jb2xsYXBzaWJsZSIsaS5jb2xsYXBzaWJsZSksdGhpcy5fcHJvY2Vzc1RhYnMoKSxpLmFjdGl2ZT10aGlzLl9pbml0aWFsQWN0aXZlKCksZS5pc0FycmF5KGkuZGlzYWJsZWQpJiYoaS5kaXNhYmxlZD1lLnVuaXF1ZShpLmRpc2FibGVkLmNvbmNhdChlLm1hcCh0aGlzLnRhYnMuZmlsdGVyKCIudWktc3RhdGUtZGlzYWJsZWQiKSxmdW5jdGlvbihlKXtyZXR1cm4gdC50YWJzLmluZGV4KGUpfSkpKS5zb3J0KCkpLHRoaXMuYWN0aXZlPXRoaXMub3B0aW9ucy5hY3RpdmUhPT0hMSYmdGhpcy5hbmNob3JzLmxlbmd0aD90aGlzLl9maW5kQWN0aXZlKGkuYWN0aXZlKTplKCksdGhpcy5fcmVmcmVzaCgpLHRoaXMuYWN0aXZlLmxlbmd0aCYmdGhpcy5sb2FkKGkuYWN0aXZlKX0sX2luaXRpYWxBY3RpdmU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMuYWN0aXZlLGk9dGhpcy5vcHRpb25zLmNvbGxhcHNpYmxlLHM9bG9jYXRpb24uaGFzaC5zdWJzdHJpbmcoMSk7cmV0dXJuIG51bGw9PT10JiYocyYmdGhpcy50YWJzLmVhY2goZnVuY3Rpb24oaSxuKXtyZXR1cm4gZShuKS5hdHRyKCJhcmlhLWNvbnRyb2xzIik9PT1zPyh0PWksITEpOnZvaWQgMH0pLG51bGw9PT10JiYodD10aGlzLnRhYnMuaW5kZXgodGhpcy50YWJzLmZpbHRlcigiLnVpLXRhYnMtYWN0aXZlIikpKSwobnVsbD09PXR8fC0xPT09dCkmJih0PXRoaXMudGFicy5sZW5ndGg/MDohMSkpLHQhPT0hMSYmKHQ9dGhpcy50YWJzLmluZGV4KHRoaXMudGFicy5lcSh0KSksLTE9PT10JiYodD1pPyExOjApKSwhaSYmdD09PSExJiZ0aGlzLmFuY2hvcnMubGVuZ3RoJiYodD0wKSx0fSxfZ2V0Q3JlYXRlRXZlbnREYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3RhYjp0aGlzLmFjdGl2ZSxwYW5lbDp0aGlzLmFjdGl2ZS5sZW5ndGg/dGhpcy5fZ2V0UGFuZWxGb3JUYWIodGhpcy5hY3RpdmUpOmUoKX19LF90YWJLZXlkb3duOmZ1bmN0aW9uKHQpe3ZhciBpPWUodGhpcy5kb2N1bWVudFswXS5hY3RpdmVFbGVtZW50KS5jbG9zZXN0KCJsaSIpLHM9dGhpcy50YWJzLmluZGV4KGkpLG49ITA7aWYoIXRoaXMuX2hhbmRsZVBhZ2VOYXYodCkpe3N3aXRjaCh0LmtleUNvZGUpe2Nhc2UgZS51aS5rZXlDb2RlLlJJR0hUOmNhc2UgZS51aS5rZXlDb2RlLkRPV046cysrO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLlVQOmNhc2UgZS51aS5rZXlDb2RlLkxFRlQ6bj0hMSxzLS07YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuRU5EOnM9dGhpcy5hbmNob3JzLmxlbmd0aC0xO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkhPTUU6cz0wO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLlNQQUNFOnJldHVybiB0LnByZXZlbnREZWZhdWx0KCksY2xlYXJUaW1lb3V0KHRoaXMuYWN0aXZhdGluZyksdGhpcy5fYWN0aXZhdGUocyksdm9pZCAwO2Nhc2UgZS51aS5rZXlDb2RlLkVOVEVSOnJldHVybiB0LnByZXZlbnREZWZhdWx0KCksY2xlYXJUaW1lb3V0KHRoaXMuYWN0aXZhdGluZyksdGhpcy5fYWN0aXZhdGUocz09PXRoaXMub3B0aW9ucy5hY3RpdmU/ITE6cyksdm9pZCAwO2RlZmF1bHQ6cmV0dXJufXQucHJldmVudERlZmF1bHQoKSxjbGVhclRpbWVvdXQodGhpcy5hY3RpdmF0aW5nKSxzPXRoaXMuX2ZvY3VzTmV4dFRhYihzLG4pLHQuY3RybEtleXx8dC5tZXRhS2V5fHwoaS5hdHRyKCJhcmlhLXNlbGVjdGVkIiwiZmFsc2UiKSx0aGlzLnRhYnMuZXEocykuYXR0cigiYXJpYS1zZWxlY3RlZCIsInRydWUiKSx0aGlzLmFjdGl2YXRpbmc9dGhpcy5fZGVsYXkoZnVuY3Rpb24oKXt0aGlzLm9wdGlvbigiYWN0aXZlIixzKX0sdGhpcy5kZWxheSkpfX0sX3BhbmVsS2V5ZG93bjpmdW5jdGlvbih0KXt0aGlzLl9oYW5kbGVQYWdlTmF2KHQpfHx0LmN0cmxLZXkmJnQua2V5Q29kZT09PWUudWkua2V5Q29kZS5VUCYmKHQucHJldmVudERlZmF1bHQoKSx0aGlzLmFjdGl2ZS5mb2N1cygpKX0sX2hhbmRsZVBhZ2VOYXY6ZnVuY3Rpb24odCl7cmV0dXJuIHQuYWx0S2V5JiZ0LmtleUNvZGU9PT1lLnVpLmtleUNvZGUuUEFHRV9VUD8odGhpcy5fYWN0aXZhdGUodGhpcy5fZm9jdXNOZXh0VGFiKHRoaXMub3B0aW9ucy5hY3RpdmUtMSwhMSkpLCEwKTp0LmFsdEtleSYmdC5rZXlDb2RlPT09ZS51aS5rZXlDb2RlLlBBR0VfRE9XTj8odGhpcy5fYWN0aXZhdGUodGhpcy5fZm9jdXNOZXh0VGFiKHRoaXMub3B0aW9ucy5hY3RpdmUrMSwhMCkpLCEwKTp2b2lkIDB9LF9maW5kTmV4dFRhYjpmdW5jdGlvbih0LGkpe2Z1bmN0aW9uIHMoKXtyZXR1cm4gdD5uJiYodD0wKSwwPnQmJih0PW4pLHR9Zm9yKHZhciBuPXRoaXMudGFicy5sZW5ndGgtMTstMSE9PWUuaW5BcnJheShzKCksdGhpcy5vcHRpb25zLmRpc2FibGVkKTspdD1pP3QrMTp0LTE7cmV0dXJuIHR9LF9mb2N1c05leHRUYWI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT10aGlzLl9maW5kTmV4dFRhYihlLHQpLHRoaXMudGFicy5lcShlKS5mb2N1cygpLGV9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4iYWN0aXZlIj09PWU/KHRoaXMuX2FjdGl2YXRlKHQpLHZvaWQgMCk6ImRpc2FibGVkIj09PWU/KHRoaXMuX3NldHVwRGlzYWJsZWQodCksdm9pZCAwKToodGhpcy5fc3VwZXIoZSx0KSwiY29sbGFwc2libGUiPT09ZSYmKHRoaXMuZWxlbWVudC50b2dnbGVDbGFzcygidWktdGFicy1jb2xsYXBzaWJsZSIsdCksdHx8dGhpcy5vcHRpb25zLmFjdGl2ZSE9PSExfHx0aGlzLl9hY3RpdmF0ZSgwKSksImV2ZW50Ij09PWUmJnRoaXMuX3NldHVwRXZlbnRzKHQpLCJoZWlnaHRTdHlsZSI9PT1lJiZ0aGlzLl9zZXR1cEhlaWdodFN0eWxlKHQpLHZvaWQgMCl9LF9zYW5pdGl6ZVNlbGVjdG9yOmZ1bmN0aW9uKGUpe3JldHVybiBlP2UucmVwbGFjZSgvWyEiJCUmJygpKissLlwvOjs8PT4/QFxbXF1cXmB7fH1+XS9nLCJcXCQmIik6IiJ9LHJlZnJlc2g6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMsaT10aGlzLnRhYmxpc3QuY2hpbGRyZW4oIjpoYXMoYVtocmVmXSkiKTt0LmRpc2FibGVkPWUubWFwKGkuZmlsdGVyKCIudWktc3RhdGUtZGlzYWJsZWQiKSxmdW5jdGlvbihlKXtyZXR1cm4gaS5pbmRleChlKX0pLHRoaXMuX3Byb2Nlc3NUYWJzKCksdC5hY3RpdmUhPT0hMSYmdGhpcy5hbmNob3JzLmxlbmd0aD90aGlzLmFjdGl2ZS5sZW5ndGgmJiFlLmNvbnRhaW5zKHRoaXMudGFibGlzdFswXSx0aGlzLmFjdGl2ZVswXSk/dGhpcy50YWJzLmxlbmd0aD09PXQuZGlzYWJsZWQubGVuZ3RoPyh0LmFjdGl2ZT0hMSx0aGlzLmFjdGl2ZT1lKCkpOnRoaXMuX2FjdGl2YXRlKHRoaXMuX2ZpbmROZXh0VGFiKE1hdGgubWF4KDAsdC5hY3RpdmUtMSksITEpKTp0LmFjdGl2ZT10aGlzLnRhYnMuaW5kZXgodGhpcy5hY3RpdmUpOih0LmFjdGl2ZT0hMSx0aGlzLmFjdGl2ZT1lKCkpLHRoaXMuX3JlZnJlc2goKX0sX3JlZnJlc2g6ZnVuY3Rpb24oKXt0aGlzLl9zZXR1cERpc2FibGVkKHRoaXMub3B0aW9ucy5kaXNhYmxlZCksdGhpcy5fc2V0dXBFdmVudHModGhpcy5vcHRpb25zLmV2ZW50KSx0aGlzLl9zZXR1cEhlaWdodFN0eWxlKHRoaXMub3B0aW9ucy5oZWlnaHRTdHlsZSksdGhpcy50YWJzLm5vdCh0aGlzLmFjdGl2ZSkuYXR0cih7ImFyaWEtc2VsZWN0ZWQiOiJmYWxzZSIsImFyaWEtZXhwYW5kZWQiOiJmYWxzZSIsdGFiSW5kZXg6LTF9KSx0aGlzLnBhbmVscy5ub3QodGhpcy5fZ2V0UGFuZWxGb3JUYWIodGhpcy5hY3RpdmUpKS5oaWRlKCkuYXR0cih7ImFyaWEtaGlkZGVuIjoidHJ1ZSJ9KSx0aGlzLmFjdGl2ZS5sZW5ndGg/KHRoaXMuYWN0aXZlLmFkZENsYXNzKCJ1aS10YWJzLWFjdGl2ZSB1aS1zdGF0ZS1hY3RpdmUiKS5hdHRyKHsiYXJpYS1zZWxlY3RlZCI6InRydWUiLCJhcmlhLWV4cGFuZGVkIjoidHJ1ZSIsdGFiSW5kZXg6MH0pLHRoaXMuX2dldFBhbmVsRm9yVGFiKHRoaXMuYWN0aXZlKS5zaG93KCkuYXR0cih7ImFyaWEtaGlkZGVuIjoiZmFsc2UifSkpOnRoaXMudGFicy5lcSgwKS5hdHRyKCJ0YWJJbmRleCIsMCl9LF9wcm9jZXNzVGFiczpmdW5jdGlvbigpe3ZhciB0PXRoaXMsaT10aGlzLnRhYnMscz10aGlzLmFuY2hvcnMsbj10aGlzLnBhbmVsczsKdGhpcy50YWJsaXN0PXRoaXMuX2dldExpc3QoKS5hZGRDbGFzcygidWktdGFicy1uYXYgdWktaGVscGVyLXJlc2V0IHVpLWhlbHBlci1jbGVhcmZpeCB1aS13aWRnZXQtaGVhZGVyIHVpLWNvcm5lci1hbGwiKS5hdHRyKCJyb2xlIiwidGFibGlzdCIpLmRlbGVnYXRlKCI+IGxpIiwibW91c2Vkb3duIit0aGlzLmV2ZW50TmFtZXNwYWNlLGZ1bmN0aW9uKHQpe2UodGhpcykuaXMoIi51aS1zdGF0ZS1kaXNhYmxlZCIpJiZ0LnByZXZlbnREZWZhdWx0KCl9KS5kZWxlZ2F0ZSgiLnVpLXRhYnMtYW5jaG9yIiwiZm9jdXMiK3RoaXMuZXZlbnROYW1lc3BhY2UsZnVuY3Rpb24oKXtlKHRoaXMpLmNsb3Nlc3QoImxpIikuaXMoIi51aS1zdGF0ZS1kaXNhYmxlZCIpJiZ0aGlzLmJsdXIoKX0pLHRoaXMudGFicz10aGlzLnRhYmxpc3QuZmluZCgiPiBsaTpoYXMoYVtocmVmXSkiKS5hZGRDbGFzcygidWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItdG9wIikuYXR0cih7cm9sZToidGFiIix0YWJJbmRleDotMX0pLHRoaXMuYW5jaG9ycz10aGlzLnRhYnMubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIGUoImEiLHRoaXMpWzBdfSkuYWRkQ2xhc3MoInVpLXRhYnMtYW5jaG9yIikuYXR0cih7cm9sZToicHJlc2VudGF0aW9uIix0YWJJbmRleDotMX0pLHRoaXMucGFuZWxzPWUoKSx0aGlzLmFuY2hvcnMuZWFjaChmdW5jdGlvbihpLHMpe3ZhciBuLGEsbyxyPWUocykudW5pcXVlSWQoKS5hdHRyKCJpZCIpLGg9ZShzKS5jbG9zZXN0KCJsaSIpLGw9aC5hdHRyKCJhcmlhLWNvbnRyb2xzIik7dC5faXNMb2NhbChzKT8obj1zLmhhc2gsbz1uLnN1YnN0cmluZygxKSxhPXQuZWxlbWVudC5maW5kKHQuX3Nhbml0aXplU2VsZWN0b3IobikpKToobz1oLmF0dHIoImFyaWEtY29udHJvbHMiKXx8ZSh7fSkudW5pcXVlSWQoKVswXS5pZCxuPSIjIitvLGE9dC5lbGVtZW50LmZpbmQobiksYS5sZW5ndGh8fChhPXQuX2NyZWF0ZVBhbmVsKG8pLGEuaW5zZXJ0QWZ0ZXIodC5wYW5lbHNbaS0xXXx8dC50YWJsaXN0KSksYS5hdHRyKCJhcmlhLWxpdmUiLCJwb2xpdGUiKSksYS5sZW5ndGgmJih0LnBhbmVscz10LnBhbmVscy5hZGQoYSkpLGwmJmguZGF0YSgidWktdGFicy1hcmlhLWNvbnRyb2xzIixsKSxoLmF0dHIoeyJhcmlhLWNvbnRyb2xzIjpvLCJhcmlhLWxhYmVsbGVkYnkiOnJ9KSxhLmF0dHIoImFyaWEtbGFiZWxsZWRieSIscil9KSx0aGlzLnBhbmVscy5hZGRDbGFzcygidWktdGFicy1wYW5lbCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYm90dG9tIikuYXR0cigicm9sZSIsInRhYnBhbmVsIiksaSYmKHRoaXMuX29mZihpLm5vdCh0aGlzLnRhYnMpKSx0aGlzLl9vZmYocy5ub3QodGhpcy5hbmNob3JzKSksdGhpcy5fb2ZmKG4ubm90KHRoaXMucGFuZWxzKSkpfSxfZ2V0TGlzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRhYmxpc3R8fHRoaXMuZWxlbWVudC5maW5kKCJvbCx1bCIpLmVxKDApfSxfY3JlYXRlUGFuZWw6ZnVuY3Rpb24odCl7cmV0dXJuIGUoIjxkaXY+IikuYXR0cigiaWQiLHQpLmFkZENsYXNzKCJ1aS10YWJzLXBhbmVsIHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1ib3R0b20iKS5kYXRhKCJ1aS10YWJzLWRlc3Ryb3kiLCEwKX0sX3NldHVwRGlzYWJsZWQ6ZnVuY3Rpb24odCl7ZS5pc0FycmF5KHQpJiYodC5sZW5ndGg/dC5sZW5ndGg9PT10aGlzLmFuY2hvcnMubGVuZ3RoJiYodD0hMCk6dD0hMSk7Zm9yKHZhciBpLHM9MDtpPXRoaXMudGFic1tzXTtzKyspdD09PSEwfHwtMSE9PWUuaW5BcnJheShzLHQpP2UoaSkuYWRkQ2xhc3MoInVpLXN0YXRlLWRpc2FibGVkIikuYXR0cigiYXJpYS1kaXNhYmxlZCIsInRydWUiKTplKGkpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1kaXNhYmxlZCIpLnJlbW92ZUF0dHIoImFyaWEtZGlzYWJsZWQiKTt0aGlzLm9wdGlvbnMuZGlzYWJsZWQ9dH0sX3NldHVwRXZlbnRzOmZ1bmN0aW9uKHQpe3ZhciBpPXt9O3QmJmUuZWFjaCh0LnNwbGl0KCIgIiksZnVuY3Rpb24oZSx0KXtpW3RdPSJfZXZlbnRIYW5kbGVyIn0pLHRoaXMuX29mZih0aGlzLmFuY2hvcnMuYWRkKHRoaXMudGFicykuYWRkKHRoaXMucGFuZWxzKSksdGhpcy5fb24oITAsdGhpcy5hbmNob3JzLHtjbGljazpmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCl9fSksdGhpcy5fb24odGhpcy5hbmNob3JzLGkpLHRoaXMuX29uKHRoaXMudGFicyx7a2V5ZG93bjoiX3RhYktleWRvd24ifSksdGhpcy5fb24odGhpcy5wYW5lbHMse2tleWRvd246Il9wYW5lbEtleWRvd24ifSksdGhpcy5fZm9jdXNhYmxlKHRoaXMudGFicyksdGhpcy5faG92ZXJhYmxlKHRoaXMudGFicyl9LF9zZXR1cEhlaWdodFN0eWxlOmZ1bmN0aW9uKHQpe3ZhciBpLHM9dGhpcy5lbGVtZW50LnBhcmVudCgpOyJmaWxsIj09PXQ/KGk9cy5oZWlnaHQoKSxpLT10aGlzLmVsZW1lbnQub3V0ZXJIZWlnaHQoKS10aGlzLmVsZW1lbnQuaGVpZ2h0KCksdGhpcy5lbGVtZW50LnNpYmxpbmdzKCI6dmlzaWJsZSIpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLHM9dC5jc3MoInBvc2l0aW9uIik7ImFic29sdXRlIiE9PXMmJiJmaXhlZCIhPT1zJiYoaS09dC5vdXRlckhlaWdodCghMCkpfSksdGhpcy5lbGVtZW50LmNoaWxkcmVuKCkubm90KHRoaXMucGFuZWxzKS5lYWNoKGZ1bmN0aW9uKCl7aS09ZSh0aGlzKS5vdXRlckhlaWdodCghMCl9KSx0aGlzLnBhbmVscy5lYWNoKGZ1bmN0aW9uKCl7ZSh0aGlzKS5oZWlnaHQoTWF0aC5tYXgoMCxpLWUodGhpcykuaW5uZXJIZWlnaHQoKStlKHRoaXMpLmhlaWdodCgpKSl9KS5jc3MoIm92ZXJmbG93IiwiYXV0byIpKToiYXV0byI9PT10JiYoaT0wLHRoaXMucGFuZWxzLmVhY2goZnVuY3Rpb24oKXtpPU1hdGgubWF4KGksZSh0aGlzKS5oZWlnaHQoIiIpLmhlaWdodCgpKX0pLmhlaWdodChpKSl9LF9ldmVudEhhbmRsZXI6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5vcHRpb25zLHM9dGhpcy5hY3RpdmUsbj1lKHQuY3VycmVudFRhcmdldCksYT1uLmNsb3Nlc3QoImxpIiksbz1hWzBdPT09c1swXSxyPW8mJmkuY29sbGFwc2libGUsaD1yP2UoKTp0aGlzLl9nZXRQYW5lbEZvclRhYihhKSxsPXMubGVuZ3RoP3RoaXMuX2dldFBhbmVsRm9yVGFiKHMpOmUoKSx1PXtvbGRUYWI6cyxvbGRQYW5lbDpsLG5ld1RhYjpyP2UoKTphLG5ld1BhbmVsOmh9O3QucHJldmVudERlZmF1bHQoKSxhLmhhc0NsYXNzKCJ1aS1zdGF0ZS1kaXNhYmxlZCIpfHxhLmhhc0NsYXNzKCJ1aS10YWJzLWxvYWRpbmciKXx8dGhpcy5ydW5uaW5nfHxvJiYhaS5jb2xsYXBzaWJsZXx8dGhpcy5fdHJpZ2dlcigiYmVmb3JlQWN0aXZhdGUiLHQsdSk9PT0hMXx8KGkuYWN0aXZlPXI/ITE6dGhpcy50YWJzLmluZGV4KGEpLHRoaXMuYWN0aXZlPW8/ZSgpOmEsdGhpcy54aHImJnRoaXMueGhyLmFib3J0KCksbC5sZW5ndGh8fGgubGVuZ3RofHxlLmVycm9yKCJqUXVlcnkgVUkgVGFiczogTWlzbWF0Y2hpbmcgZnJhZ21lbnQgaWRlbnRpZmllci4iKSxoLmxlbmd0aCYmdGhpcy5sb2FkKHRoaXMudGFicy5pbmRleChhKSx0KSx0aGlzLl90b2dnbGUodCx1KSl9LF90b2dnbGU6ZnVuY3Rpb24odCxpKXtmdW5jdGlvbiBzKCl7YS5ydW5uaW5nPSExLGEuX3RyaWdnZXIoImFjdGl2YXRlIix0LGkpfWZ1bmN0aW9uIG4oKXtpLm5ld1RhYi5jbG9zZXN0KCJsaSIpLmFkZENsYXNzKCJ1aS10YWJzLWFjdGl2ZSB1aS1zdGF0ZS1hY3RpdmUiKSxvLmxlbmd0aCYmYS5vcHRpb25zLnNob3c/YS5fc2hvdyhvLGEub3B0aW9ucy5zaG93LHMpOihvLnNob3coKSxzKCkpfXZhciBhPXRoaXMsbz1pLm5ld1BhbmVsLHI9aS5vbGRQYW5lbDt0aGlzLnJ1bm5pbmc9ITAsci5sZW5ndGgmJnRoaXMub3B0aW9ucy5oaWRlP3RoaXMuX2hpZGUocix0aGlzLm9wdGlvbnMuaGlkZSxmdW5jdGlvbigpe2kub2xkVGFiLmNsb3Nlc3QoImxpIikucmVtb3ZlQ2xhc3MoInVpLXRhYnMtYWN0aXZlIHVpLXN0YXRlLWFjdGl2ZSIpLG4oKX0pOihpLm9sZFRhYi5jbG9zZXN0KCJsaSIpLnJlbW92ZUNsYXNzKCJ1aS10YWJzLWFjdGl2ZSB1aS1zdGF0ZS1hY3RpdmUiKSxyLmhpZGUoKSxuKCkpLHIuYXR0cigiYXJpYS1oaWRkZW4iLCJ0cnVlIiksaS5vbGRUYWIuYXR0cih7ImFyaWEtc2VsZWN0ZWQiOiJmYWxzZSIsImFyaWEtZXhwYW5kZWQiOiJmYWxzZSJ9KSxvLmxlbmd0aCYmci5sZW5ndGg/aS5vbGRUYWIuYXR0cigidGFiSW5kZXgiLC0xKTpvLmxlbmd0aCYmdGhpcy50YWJzLmZpbHRlcihmdW5jdGlvbigpe3JldHVybiAwPT09ZSh0aGlzKS5hdHRyKCJ0YWJJbmRleCIpfSkuYXR0cigidGFiSW5kZXgiLC0xKSxvLmF0dHIoImFyaWEtaGlkZGVuIiwiZmFsc2UiKSxpLm5ld1RhYi5hdHRyKHsiYXJpYS1zZWxlY3RlZCI6InRydWUiLCJhcmlhLWV4cGFuZGVkIjoidHJ1ZSIsdGFiSW5kZXg6MH0pfSxfYWN0aXZhdGU6ZnVuY3Rpb24odCl7dmFyIGkscz10aGlzLl9maW5kQWN0aXZlKHQpO3NbMF0hPT10aGlzLmFjdGl2ZVswXSYmKHMubGVuZ3RofHwocz10aGlzLmFjdGl2ZSksaT1zLmZpbmQoIi51aS10YWJzLWFuY2hvciIpWzBdLHRoaXMuX2V2ZW50SGFuZGxlcih7dGFyZ2V0OmksY3VycmVudFRhcmdldDppLHByZXZlbnREZWZhdWx0OmUubm9vcH0pKX0sX2ZpbmRBY3RpdmU6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT0hMT9lKCk6dGhpcy50YWJzLmVxKHQpfSxfZ2V0SW5kZXg6ZnVuY3Rpb24oZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlJiYoZT10aGlzLmFuY2hvcnMuaW5kZXgodGhpcy5hbmNob3JzLmZpbHRlcigiW2hyZWYkPSciK2UrIiddIikpKSxlfSxfZGVzdHJveTpmdW5jdGlvbigpe3RoaXMueGhyJiZ0aGlzLnhoci5hYm9ydCgpLHRoaXMuZWxlbWVudC5yZW1vdmVDbGFzcygidWktdGFicyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS10YWJzLWNvbGxhcHNpYmxlIiksdGhpcy50YWJsaXN0LnJlbW92ZUNsYXNzKCJ1aS10YWJzLW5hdiB1aS1oZWxwZXItcmVzZXQgdWktaGVscGVyLWNsZWFyZml4IHVpLXdpZGdldC1oZWFkZXIgdWktY29ybmVyLWFsbCIpLnJlbW92ZUF0dHIoInJvbGUiKSx0aGlzLmFuY2hvcnMucmVtb3ZlQ2xhc3MoInVpLXRhYnMtYW5jaG9yIikucmVtb3ZlQXR0cigicm9sZSIpLnJlbW92ZUF0dHIoInRhYkluZGV4IikucmVtb3ZlVW5pcXVlSWQoKSx0aGlzLnRhYmxpc3QudW5iaW5kKHRoaXMuZXZlbnROYW1lc3BhY2UpLHRoaXMudGFicy5hZGQodGhpcy5wYW5lbHMpLmVhY2goZnVuY3Rpb24oKXtlLmRhdGEodGhpcywidWktdGFicy1kZXN0cm95Iik/ZSh0aGlzKS5yZW1vdmUoKTplKHRoaXMpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1kZWZhdWx0IHVpLXN0YXRlLWFjdGl2ZSB1aS1zdGF0ZS1kaXNhYmxlZCB1aS1jb3JuZXItdG9wIHVpLWNvcm5lci1ib3R0b20gdWktd2lkZ2V0LWNvbnRlbnQgdWktdGFicy1hY3RpdmUgdWktdGFicy1wYW5lbCIpLnJlbW92ZUF0dHIoInRhYkluZGV4IikucmVtb3ZlQXR0cigiYXJpYS1saXZlIikucmVtb3ZlQXR0cigiYXJpYS1idXN5IikucmVtb3ZlQXR0cigiYXJpYS1zZWxlY3RlZCIpLnJlbW92ZUF0dHIoImFyaWEtbGFiZWxsZWRieSIpLnJlbW92ZUF0dHIoImFyaWEtaGlkZGVuIikucmVtb3ZlQXR0cigiYXJpYS1leHBhbmRlZCIpLnJlbW92ZUF0dHIoInJvbGUiKX0pLHRoaXMudGFicy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKSxpPXQuZGF0YSgidWktdGFicy1hcmlhLWNvbnRyb2xzIik7aT90LmF0dHIoImFyaWEtY29udHJvbHMiLGkpLnJlbW92ZURhdGEoInVpLXRhYnMtYXJpYS1jb250cm9scyIpOnQucmVtb3ZlQXR0cigiYXJpYS1jb250cm9scyIpfSksdGhpcy5wYW5lbHMuc2hvdygpLCJjb250ZW50IiE9PXRoaXMub3B0aW9ucy5oZWlnaHRTdHlsZSYmdGhpcy5wYW5lbHMuY3NzKCJoZWlnaHQiLCIiKX0sZW5hYmxlOmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMub3B0aW9ucy5kaXNhYmxlZDtpIT09ITEmJih2b2lkIDA9PT10P2k9ITE6KHQ9dGhpcy5fZ2V0SW5kZXgodCksaT1lLmlzQXJyYXkoaSk/ZS5tYXAoaSxmdW5jdGlvbihlKXtyZXR1cm4gZSE9PXQ/ZTpudWxsfSk6ZS5tYXAodGhpcy50YWJzLGZ1bmN0aW9uKGUsaSl7cmV0dXJuIGkhPT10P2k6bnVsbH0pKSx0aGlzLl9zZXR1cERpc2FibGVkKGkpKX0sZGlzYWJsZTpmdW5jdGlvbih0KXt2YXIgaT10aGlzLm9wdGlvbnMuZGlzYWJsZWQ7aWYoaSE9PSEwKXtpZih2b2lkIDA9PT10KWk9ITA7ZWxzZXtpZih0PXRoaXMuX2dldEluZGV4KHQpLC0xIT09ZS5pbkFycmF5KHQsaSkpcmV0dXJuO2k9ZS5pc0FycmF5KGkpP2UubWVyZ2UoW3RdLGkpLnNvcnQoKTpbdF19dGhpcy5fc2V0dXBEaXNhYmxlZChpKX19LGxvYWQ6ZnVuY3Rpb24odCxpKXt0PXRoaXMuX2dldEluZGV4KHQpO3ZhciBzPXRoaXMsbj10aGlzLnRhYnMuZXEodCksYT1uLmZpbmQoIi51aS10YWJzLWFuY2hvciIpLG89dGhpcy5fZ2V0UGFuZWxGb3JUYWIobikscj17dGFiOm4scGFuZWw6b30saD1mdW5jdGlvbihlLHQpeyJhYm9ydCI9PT10JiZzLnBhbmVscy5zdG9wKCExLCEwKSxuLnJlbW92ZUNsYXNzKCJ1aS10YWJzLWxvYWRpbmciKSxvLnJlbW92ZUF0dHIoImFyaWEtYnVzeSIpLGU9PT1zLnhociYmZGVsZXRlIHMueGhyfTt0aGlzLl9pc0xvY2FsKGFbMF0pfHwodGhpcy54aHI9ZS5hamF4KHRoaXMuX2FqYXhTZXR0aW5ncyhhLGkscikpLHRoaXMueGhyJiYiY2FuY2VsZWQiIT09dGhpcy54aHIuc3RhdHVzVGV4dCYmKG4uYWRkQ2xhc3MoInVpLXRhYnMtbG9hZGluZyIpLG8uYXR0cigiYXJpYS1idXN5IiwidHJ1ZSIpLHRoaXMueGhyLmRvbmUoZnVuY3Rpb24oZSx0LG4pe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtvLmh0bWwoZSkscy5fdHJpZ2dlcigibG9hZCIsaSxyKSxoKG4sdCl9LDEpfSkuZmFpbChmdW5jdGlvbihlLHQpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtoKGUsdCl9LDEpfSkpKX0sX2FqYXhTZXR0aW5nczpmdW5jdGlvbih0LGkscyl7dmFyIG49dGhpcztyZXR1cm57dXJsOnQuYXR0cigiaHJlZiIpLGJlZm9yZVNlbmQ6ZnVuY3Rpb24odCxhKXtyZXR1cm4gbi5fdHJpZ2dlcigiYmVmb3JlTG9hZCIsaSxlLmV4dGVuZCh7anFYSFI6dCxhamF4U2V0dGluZ3M6YX0scykpfX19LF9nZXRQYW5lbEZvclRhYjpmdW5jdGlvbih0KXt2YXIgaT1lKHQpLmF0dHIoImFyaWEtY29udHJvbHMiKTtyZXR1cm4gdGhpcy5lbGVtZW50LmZpbmQodGhpcy5fc2FuaXRpemVTZWxlY3RvcigiIyIraSkpfX0pLGUud2lkZ2V0KCJ1aS50b29sdGlwIix7dmVyc2lvbjoiMS4xMS40IixvcHRpb25zOntjb250ZW50OmZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKS5hdHRyKCJ0aXRsZSIpfHwiIjtyZXR1cm4gZSgiPGE+IikudGV4dCh0KS5odG1sKCl9LGhpZGU6ITAsaXRlbXM6Ilt0aXRsZV06bm90KFtkaXNhYmxlZF0pIixwb3NpdGlvbjp7bXk6ImxlZnQgdG9wKzE1IixhdDoibGVmdCBib3R0b20iLGNvbGxpc2lvbjoiZmxpcGZpdCBmbGlwIn0sc2hvdzohMCx0b29sdGlwQ2xhc3M6bnVsbCx0cmFjazohMSxjbG9zZTpudWxsLG9wZW46bnVsbH0sX2FkZERlc2NyaWJlZEJ5OmZ1bmN0aW9uKHQsaSl7dmFyIHM9KHQuYXR0cigiYXJpYS1kZXNjcmliZWRieSIpfHwiIikuc3BsaXQoL1xzKy8pO3MucHVzaChpKSx0LmRhdGEoInVpLXRvb2x0aXAtaWQiLGkpLmF0dHIoImFyaWEtZGVzY3JpYmVkYnkiLGUudHJpbShzLmpvaW4oIiAiKSkpfSxfcmVtb3ZlRGVzY3JpYmVkQnk6ZnVuY3Rpb24odCl7dmFyIGk9dC5kYXRhKCJ1aS10b29sdGlwLWlkIikscz0odC5hdHRyKCJhcmlhLWRlc2NyaWJlZGJ5Iil8fCIiKS5zcGxpdCgvXHMrLyksbj1lLmluQXJyYXkoaSxzKTstMSE9PW4mJnMuc3BsaWNlKG4sMSksdC5yZW1vdmVEYXRhKCJ1aS10b29sdGlwLWlkIikscz1lLnRyaW0ocy5qb2luKCIgIikpLHM/dC5hdHRyKCJhcmlhLWRlc2NyaWJlZGJ5IixzKTp0LnJlbW92ZUF0dHIoImFyaWEtZGVzY3JpYmVkYnkiKX0sX2NyZWF0ZTpmdW5jdGlvbigpe3RoaXMuX29uKHttb3VzZW92ZXI6Im9wZW4iLGZvY3VzaW46Im9wZW4ifSksdGhpcy50b29sdGlwcz17fSx0aGlzLnBhcmVudHM9e30sdGhpcy5vcHRpb25zLmRpc2FibGVkJiZ0aGlzLl9kaXNhYmxlKCksdGhpcy5saXZlUmVnaW9uPWUoIjxkaXY+IikuYXR0cih7cm9sZToibG9nIiwiYXJpYS1saXZlIjoiYXNzZXJ0aXZlIiwiYXJpYS1yZWxldmFudCI6ImFkZGl0aW9ucyJ9KS5hZGRDbGFzcygidWktaGVscGVyLWhpZGRlbi1hY2Nlc3NpYmxlIikuYXBwZW5kVG8odGhpcy5kb2N1bWVudFswXS5ib2R5KX0sX3NldE9wdGlvbjpmdW5jdGlvbih0LGkpe3ZhciBzPXRoaXM7cmV0dXJuImRpc2FibGVkIj09PXQ/KHRoaXNbaT8iX2Rpc2FibGUiOiJfZW5hYmxlIl0oKSx0aGlzLm9wdGlvbnNbdF09aSx2b2lkIDApOih0aGlzLl9zdXBlcih0LGkpLCJjb250ZW50Ij09PXQmJmUuZWFjaCh0aGlzLnRvb2x0aXBzLGZ1bmN0aW9uKGUsdCl7cy5fdXBkYXRlQ29udGVudCh0LmVsZW1lbnQpfSksdm9pZCAwKX0sX2Rpc2FibGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2UuZWFjaCh0aGlzLnRvb2x0aXBzLGZ1bmN0aW9uKGkscyl7dmFyIG49ZS5FdmVudCgiYmx1ciIpO24udGFyZ2V0PW4uY3VycmVudFRhcmdldD1zLmVsZW1lbnRbMF0sdC5jbG9zZShuLCEwKX0pLHRoaXMuZWxlbWVudC5maW5kKHRoaXMub3B0aW9ucy5pdGVtcykuYWRkQmFjaygpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpO3QuaXMoIlt0aXRsZV0iKSYmdC5kYXRhKCJ1aS10b29sdGlwLXRpdGxlIix0LmF0dHIoInRpdGxlIikpLnJlbW92ZUF0dHIoInRpdGxlIil9KX0sX2VuYWJsZTpmdW5jdGlvbigpe3RoaXMuZWxlbWVudC5maW5kKHRoaXMub3B0aW9ucy5pdGVtcykuYWRkQmFjaygpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpO3QuZGF0YSgidWktdG9vbHRpcC10aXRsZSIpJiZ0LmF0dHIoInRpdGxlIix0LmRhdGEoInVpLXRvb2x0aXAtdGl0bGUiKSl9KX0sb3BlbjpmdW5jdGlvbih0KXt2YXIgaT10aGlzLHM9ZSh0P3QudGFyZ2V0OnRoaXMuZWxlbWVudCkuY2xvc2VzdCh0aGlzLm9wdGlvbnMuaXRlbXMpO3MubGVuZ3RoJiYhcy5kYXRhKCJ1aS10b29sdGlwLWlkIikmJihzLmF0dHIoInRpdGxlIikmJnMuZGF0YSgidWktdG9vbHRpcC10aXRsZSIscy5hdHRyKCJ0aXRsZSIpKSxzLmRhdGEoInVpLXRvb2x0aXAtb3BlbiIsITApLHQmJiJtb3VzZW92ZXIiPT09dC50eXBlJiZzLnBhcmVudHMoKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQscz1lKHRoaXMpO3MuZGF0YSgidWktdG9vbHRpcC1vcGVuIikmJih0PWUuRXZlbnQoImJsdXIiKSx0LnRhcmdldD10LmN1cnJlbnRUYXJnZXQ9dGhpcyxpLmNsb3NlKHQsITApKSxzLmF0dHIoInRpdGxlIikmJihzLnVuaXF1ZUlkKCksaS5wYXJlbnRzW3RoaXMuaWRdPXtlbGVtZW50OnRoaXMsdGl0bGU6cy5hdHRyKCJ0aXRsZSIpfSxzLmF0dHIoInRpdGxlIiwiIikpfSksdGhpcy5fcmVnaXN0ZXJDbG9zZUhhbmRsZXJzKHQscyksdGhpcy5fdXBkYXRlQ29udGVudChzLHQpKX0sX3VwZGF0ZUNvbnRlbnQ6ZnVuY3Rpb24oZSx0KXt2YXIgaSxzPXRoaXMub3B0aW9ucy5jb250ZW50LG49dGhpcyxhPXQ/dC50eXBlOm51bGw7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBzP3RoaXMuX29wZW4odCxlLHMpOihpPXMuY2FsbChlWzBdLGZ1bmN0aW9uKGkpe24uX2RlbGF5KGZ1bmN0aW9uKCl7ZS5kYXRhKCJ1aS10b29sdGlwLW9wZW4iKSYmKHQmJih0LnR5cGU9YSksdGhpcy5fb3Blbih0LGUsaSkpfSl9KSxpJiZ0aGlzLl9vcGVuKHQsZSxpKSx2b2lkIDApfSxfb3BlbjpmdW5jdGlvbih0LGkscyl7ZnVuY3Rpb24gbihlKXtsLm9mPWUsby5pcygiOmhpZGRlbiIpfHxvLnBvc2l0aW9uKGwpfXZhciBhLG8scixoLGw9ZS5leHRlbmQoe30sdGhpcy5vcHRpb25zLnBvc2l0aW9uKTtpZihzKXtpZihhPXRoaXMuX2ZpbmQoaSkpcmV0dXJuIGEudG9vbHRpcC5maW5kKCIudWktdG9vbHRpcC1jb250ZW50IikuaHRtbChzKSx2b2lkIDA7aS5pcygiW3RpdGxlXSIpJiYodCYmIm1vdXNlb3ZlciI9PT10LnR5cGU/aS5hdHRyKCJ0aXRsZSIsIiIpOmkucmVtb3ZlQXR0cigidGl0bGUiKSksYT10aGlzLl90b29sdGlwKGkpLG89YS50b29sdGlwLHRoaXMuX2FkZERlc2NyaWJlZEJ5KGksby5hdHRyKCJpZCIpKSxvLmZpbmQoIi51aS10b29sdGlwLWNvbnRlbnQiKS5odG1sKHMpLHRoaXMubGl2ZVJlZ2lvbi5jaGlsZHJlbigpLmhpZGUoKSxzLmNsb25lPyhoPXMuY2xvbmUoKSxoLnJlbW92ZUF0dHIoImlkIikuZmluZCgiW2lkXSIpLnJlbW92ZUF0dHIoImlkIikpOmg9cyxlKCI8ZGl2PiIpLmh0bWwoaCkuYXBwZW5kVG8odGhpcy5saXZlUmVnaW9uKSx0aGlzLm9wdGlvbnMudHJhY2smJnQmJi9ebW91c2UvLnRlc3QodC50eXBlKT8odGhpcy5fb24odGhpcy5kb2N1bWVudCx7bW91c2Vtb3ZlOm59KSxuKHQpKTpvLnBvc2l0aW9uKGUuZXh0ZW5kKHtvZjppfSx0aGlzLm9wdGlvbnMucG9zaXRpb24pKSxvLmhpZGUoKSx0aGlzLl9zaG93KG8sdGhpcy5vcHRpb25zLnNob3cpLHRoaXMub3B0aW9ucy5zaG93JiZ0aGlzLm9wdGlvbnMuc2hvdy5kZWxheSYmKHI9dGhpcy5kZWxheWVkU2hvdz1zZXRJbnRlcnZhbChmdW5jdGlvbigpe28uaXMoIjp2aXNpYmxlIikmJihuKGwub2YpLGNsZWFySW50ZXJ2YWwocikpfSxlLmZ4LmludGVydmFsKSksdGhpcy5fdHJpZ2dlcigib3BlbiIsdCx7dG9vbHRpcDpvfSl9fSxfcmVnaXN0ZXJDbG9zZUhhbmRsZXJzOmZ1bmN0aW9uKHQsaSl7dmFyIHM9e2tleXVwOmZ1bmN0aW9uKHQpe2lmKHQua2V5Q29kZT09PWUudWkua2V5Q29kZS5FU0NBUEUpe3ZhciBzPWUuRXZlbnQodCk7cy5jdXJyZW50VGFyZ2V0PWlbMF0sdGhpcy5jbG9zZShzLCEwKX19fTtpWzBdIT09dGhpcy5lbGVtZW50WzBdJiYocy5yZW1vdmU9ZnVuY3Rpb24oKXt0aGlzLl9yZW1vdmVUb29sdGlwKHRoaXMuX2ZpbmQoaSkudG9vbHRpcCl9KSx0JiYibW91c2VvdmVyIiE9PXQudHlwZXx8KHMubW91c2VsZWF2ZT0iY2xvc2UiKSx0JiYiZm9jdXNpbiIhPT10LnR5cGV8fChzLmZvY3Vzb3V0PSJjbG9zZSIpLHRoaXMuX29uKCEwLGkscyl9LGNsb3NlOmZ1bmN0aW9uKHQpe3ZhciBpLHM9dGhpcyxuPWUodD90LmN1cnJlbnRUYXJnZXQ6dGhpcy5lbGVtZW50KSxhPXRoaXMuX2ZpbmQobik7cmV0dXJuIGE/KGk9YS50b29sdGlwLGEuY2xvc2luZ3x8KGNsZWFySW50ZXJ2YWwodGhpcy5kZWxheWVkU2hvdyksbi5kYXRhKCJ1aS10b29sdGlwLXRpdGxlIikmJiFuLmF0dHIoInRpdGxlIikmJm4uYXR0cigidGl0bGUiLG4uZGF0YSgidWktdG9vbHRpcC10aXRsZSIpKSx0aGlzLl9yZW1vdmVEZXNjcmliZWRCeShuKSxhLmhpZGluZz0hMCxpLnN0b3AoITApLHRoaXMuX2hpZGUoaSx0aGlzLm9wdGlvbnMuaGlkZSxmdW5jdGlvbigpe3MuX3JlbW92ZVRvb2x0aXAoZSh0aGlzKSl9KSxuLnJlbW92ZURhdGEoInVpLXRvb2x0aXAtb3BlbiIpLHRoaXMuX29mZihuLCJtb3VzZWxlYXZlIGZvY3Vzb3V0IGtleXVwIiksblswXSE9PXRoaXMuZWxlbWVudFswXSYmdGhpcy5fb2ZmKG4sInJlbW92ZSIpLHRoaXMuX29mZih0aGlzLmRvY3VtZW50LCJtb3VzZW1vdmUiKSx0JiYibW91c2VsZWF2ZSI9PT10LnR5cGUmJmUuZWFjaCh0aGlzLnBhcmVudHMsZnVuY3Rpb24odCxpKXtlKGkuZWxlbWVudCkuYXR0cigidGl0bGUiLGkudGl0bGUpLGRlbGV0ZSBzLnBhcmVudHNbdF19KSxhLmNsb3Npbmc9ITAsdGhpcy5fdHJpZ2dlcigiY2xvc2UiLHQse3Rvb2x0aXA6aX0pLGEuaGlkaW5nfHwoYS5jbG9zaW5nPSExKSksdm9pZCAwKToobi5yZW1vdmVEYXRhKCJ1aS10b29sdGlwLW9wZW4iKSx2b2lkIDApfSxfdG9vbHRpcDpmdW5jdGlvbih0KXt2YXIgaT1lKCI8ZGl2PiIpLmF0dHIoInJvbGUiLCJ0b29sdGlwIikuYWRkQ2xhc3MoInVpLXRvb2x0aXAgdWktd2lkZ2V0IHVpLWNvcm5lci1hbGwgdWktd2lkZ2V0LWNvbnRlbnQgIisodGhpcy5vcHRpb25zLnRvb2x0aXBDbGFzc3x8IiIpKSxzPWkudW5pcXVlSWQoKS5hdHRyKCJpZCIpO3JldHVybiBlKCI8ZGl2PiIpLmFkZENsYXNzKCJ1aS10b29sdGlwLWNvbnRlbnQiKS5hcHBlbmRUbyhpKSxpLmFwcGVuZFRvKHRoaXMuZG9jdW1lbnRbMF0uYm9keSksdGhpcy50b29sdGlwc1tzXT17ZWxlbWVudDp0LHRvb2x0aXA6aX19LF9maW5kOmZ1bmN0aW9uKGUpe3ZhciB0PWUuZGF0YSgidWktdG9vbHRpcC1pZCIpO3JldHVybiB0P3RoaXMudG9vbHRpcHNbdF06bnVsbH0sX3JlbW92ZVRvb2x0aXA6ZnVuY3Rpb24oZSl7ZS5yZW1vdmUoKSxkZWxldGUgdGhpcy50b29sdGlwc1tlLmF0dHIoImlkIildfSxfZGVzdHJveTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7ZS5lYWNoKHRoaXMudG9vbHRpcHMsZnVuY3Rpb24oaSxzKXt2YXIgbj1lLkV2ZW50KCJibHVyIiksYT1zLmVsZW1lbnQ7bi50YXJnZXQ9bi5jdXJyZW50VGFyZ2V0PWFbMF0sdC5jbG9zZShuLCEwKSxlKCIjIitpKS5yZW1vdmUoKSxhLmRhdGEoInVpLXRvb2x0aXAtdGl0bGUiKSYmKGEuYXR0cigidGl0bGUiKXx8YS5hdHRyKCJ0aXRsZSIsYS5kYXRhKCJ1aS10b29sdGlwLXRpdGxlIikpLGEucmVtb3ZlRGF0YSgidWktdG9vbHRpcC10aXRsZSIpKX0pLHRoaXMubGl2ZVJlZ2lvbi5yZW1vdmUoKX19KX0pOw=="></script>
+
+ <!-- jquery tocify -->
+ <script src="data:application/javascript;base64,LyoganF1ZXJ5IFRvY2lmeSAtIHYxLjkuMSAtIDIwMTMtMTAtMjIKICogaHR0cDovL3d3dy5ncmVnZnJhbmtvLmNvbS9qcXVlcnkudG9jaWZ5LmpzLwogKiBDb3B5cmlnaHQgKGMpIDIwMTMgR3JlZyBGcmFua287IExpY2Vuc2VkIE1JVCAqLwoKLy8gSW1tZWRpYXRlbHktSW52b2tlZCBGdW5jdGlvbiBFeHByZXNzaW9uIChJSUZFKSBbQmVuIEFsbWFuIEJsb2cgUG9zdF0oaHR0cDovL2JlbmFsbWFuLmNvbS9uZXdzLzIwMTAvMTEvaW1tZWRpYXRlbHktaW52b2tlZC1mdW5jdGlvbi1leHByZXNzaW9uLykgdGhhdCBjYWxscyBhbm90aGVyIElJRkUgdGhhdCBjb250YWlucyBhbGwgb2YgdGhlIHBsdWdpbiBsb2dpYy4gIEkgdXNlZCB0aGlzIHBhdHRlcm4gc28gdGhhdCBhbnlvbmUgdmlld2luZyB0aGlzIGNvZGUgd291bGQgbm90IGhhdmUgdG8gc2Nyb2xsIHRvIHRoZSBib3R0b20gb2YgdGhlIHBhZ2UgdG8gdmlldyB0aGUgbG9jYWwgcGFyYW1ldGVycyB0aGF0IHdlcmUgcGFzc2VkIHRvIHRoZSBtYWluIElJRkUuCihmdW5jdGlvbih0b2NpZnkpIHsKCiAgICAvLyBFQ01BU2NyaXB0IDUgU3RyaWN0IE1vZGU6IFtKb2huIFJlc2lnIEJsb2cgUG9zdF0oaHR0cDovL2Vqb2huLm9yZy9ibG9nL2VjbWFzY3JpcHQtNS1zdHJpY3QtbW9kZS1qc29uLWFuZC1tb3JlLykKICAgICJ1c2Ugc3RyaWN0IjsKCiAgICAvLyBDYWxscyB0aGUgc2Vjb25kIElJRkUgYW5kIGxvY2FsbHkgcGFzc2VzIGluIHRoZSBnbG9iYWwgalF1ZXJ5LCB3aW5kb3csIGFuZCBkb2N1bWVudCBvYmplY3RzCiAgICB0b2NpZnkod2luZG93LmpRdWVyeSwgd2luZG93LCBkb2N1bWVudCk7CgogIH0KCiAgLy8gTG9jYWxseSBwYXNzZXMgaW4gYGpRdWVyeWAsIHRoZSBgd2luZG93YCBvYmplY3QsIHRoZSBgZG9jdW1lbnRgIG9iamVjdCwgYW5kIGFuIGB1bmRlZmluZWRgIHZhcmlhYmxlLiAgVGhlIGBqUXVlcnlgLCBgd2luZG93YCBhbmQgYGRvY3VtZW50YCBvYmplY3RzIGFyZSBwYXNzZWQgaW4gbG9jYWxseSwgdG8gaW1wcm92ZSBwZXJmb3JtYW5jZSwgc2luY2UgamF2YXNjcmlwdCBmaXJzdCBzZWFyY2hlcyBmb3IgYSB2YXJpYWJsZSBtYXRjaCB3aXRoaW4gdGhlIGxvY2FsIHZhcmlhYmxlcyBzZXQgYmVmb3JlIHNlYXJjaGluZyB0aGUgZ2xvYmFsIHZhcmlhYmxlcyBzZXQuICBBbGwgb2YgdGhlIGdsb2JhbCB2YXJpYWJsZXMgYXJlIGFsc28gcGFzc2VkIGluIGxvY2FsbHkgdG8gYmUgbWluaWZpZXIgZnJpZW5kbHkuIGB1bmRlZmluZWRgIGNhbiBiZSBwYXNzZWQgaW4gbG9jYWxseSwgYmVjYXVzZSBpdCBpcyBub3QgYSByZXNlcnZlZCB3b3JkIGluIEphdmFTY3JpcHQuCiAgKGZ1bmN0aW9uKCQsIHdpbmRvdywgZG9jdW1lbnQsIHVuZGVmaW5lZCkgewoKICAgIC8vIEVDTUFTY3JpcHQgNSBTdHJpY3QgTW9kZTogW0pvaG4gUmVzaWcgQmxvZyBQb3N0XShodHRwOi8vZWpvaG4ub3JnL2Jsb2cvZWNtYXNjcmlwdC01LXN0cmljdC1tb2RlLWpzb24tYW5kLW1vcmUvKQogICAgInVzZSBzdHJpY3QiOwoKICAgIHZhciB0b2NDbGFzc05hbWUgPSAidG9jaWZ5IiwKICAgICAgdG9jQ2xhc3MgPSAiLiIgKyB0b2NDbGFzc05hbWUsCiAgICAgIHRvY0ZvY3VzQ2xhc3NOYW1lID0gInRvY2lmeS1mb2N1cyIsCiAgICAgIHRvY0hvdmVyQ2xhc3NOYW1lID0gInRvY2lmeS1ob3ZlciIsCiAgICAgIGhpZGVUb2NDbGFzc05hbWUgPSAidG9jaWZ5LWhpZGUiLAogICAgICBoaWRlVG9jQ2xhc3MgPSAiLiIgKyBoaWRlVG9jQ2xhc3NOYW1lLAogICAgICBoZWFkZXJDbGFzc05hbWUgPSAidG9jaWZ5LWhlYWRlciIsCiAgICAgIGhlYWRlckNsYXNzID0gIi4iICsgaGVhZGVyQ2xhc3NOYW1lLAogICAgICBzdWJoZWFkZXJDbGFzc05hbWUgPSAidG9jaWZ5LXN1YmhlYWRlciIsCiAgICAgIHN1YmhlYWRlckNsYXNzID0gIi4iICsgc3ViaGVhZGVyQ2xhc3NOYW1lLAogICAgICBpdGVtQ2xhc3NOYW1lID0gInRvY2lmeS1pdGVtIiwKICAgICAgaXRlbUNsYXNzID0gIi4iICsgaXRlbUNsYXNzTmFtZSwKICAgICAgZXh0ZW5kUGFnZUNsYXNzTmFtZSA9ICJ0b2NpZnktZXh0ZW5kLXBhZ2UiLAogICAgICBleHRlbmRQYWdlQ2xhc3MgPSAiLiIgKyBleHRlbmRQYWdlQ2xhc3NOYW1lOwoKICAgIC8vIENhbGxpbmcgdGhlIGpRdWVyeVVJIFdpZGdldCBGYWN0b3J5IE1ldGhvZAogICAgJC53aWRnZXQoInRvYy50b2NpZnkiLCB7CgogICAgICAvL1BsdWdpbiB2ZXJzaW9uCiAgICAgIHZlcnNpb246ICIxLjkuMSIsCgogICAgICAvLyBUaGVzZSBvcHRpb25zIHdpbGwgYmUgdXNlZCBhcyBkZWZhdWx0cwogICAgICBvcHRpb25zOiB7CgogICAgICAgIC8vICoqY29udGV4dCoqOiBBY2NlcHRzIFN0cmluZzogQW55IGpRdWVyeSBzZWxlY3RvcgogICAgICAgIC8vIFRoZSBjb250YWluZXIgZWxlbWVudCB0aGF0IGhvbGRzIGFsbCBvZiB0aGUgZWxlbWVudHMgdXNlZCB0byBnZW5lcmF0ZSB0aGUgdGFibGUgb2YgY29udGVudHMKICAgICAgICBjb250ZXh0OiAiYm9keSIsCgogICAgICAgIC8vICoqaWdub3JlU2VsZWN0b3IqKjogQWNjZXB0cyBTdHJpbmc6IEFueSBqUXVlcnkgc2VsZWN0b3IKICAgICAgICAvLyBBIHNlbGVjdG9yIHRvIGFueSBlbGVtZW50IHRoYXQgd291bGQgYmUgbWF0Y2hlZCBieSBzZWxlY3RvcnMgdGhhdCB5b3Ugd2lzaCB0byBiZSBpZ25vcmVkCiAgICAgICAgaWdub3JlU2VsZWN0b3I6IG51bGwsCgogICAgICAgIC8vICoqc2VsZWN0b3JzKio6IEFjY2VwdHMgYW4gQXJyYXkgb2YgU3RyaW5nczogQW55IGpRdWVyeSBzZWxlY3RvcnMKICAgICAgICAvLyBUaGUgZWxlbWVudCdzIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIHRhYmxlIG9mIGNvbnRlbnRzLiAgVGhlIG9yZGVyIGlzIHZlcnkgaW1wb3J0YW50IHNpbmNlIGl0IHdpbGwgZGV0ZXJtaW5lIHRoZSB0YWJsZSBvZiBjb250ZW50J3MgbmVzdGluZyBzdHJ1Y3R1cmUKICAgICAgICBzZWxlY3RvcnM6ICJoMSwgaDIsIGgzIiwKCiAgICAgICAgLy8gKipzaG93QW5kSGlkZSoqOiBBY2NlcHRzIGEgYm9vbGVhbjogdHJ1ZSBvciBmYWxzZQogICAgICAgIC8vIFVzZWQgdG8gZGV0ZXJtaW5lIGlmIGVsZW1lbnRzIHNob3VsZCBiZSBzaG93biBhbmQgaGlkZGVuCiAgICAgICAgc2hvd0FuZEhpZGU6IHRydWUsCgogICAgICAgIC8vICoqc2hvd0VmZmVjdCoqOiBBY2NlcHRzIFN0cmluZzogIm5vbmUiLCAiZmFkZUluIiwgInNob3ciLCBvciAic2xpZGVEb3duIgogICAgICAgIC8vIFVzZWQgdG8gZGlzcGxheSBhbnkgb2YgdGhlIHRhYmxlIG9mIGNvbnRlbnRzIG5lc3RlZCBpdGVtcwogICAgICAgIHNob3dFZmZlY3Q6ICJzbGlkZURvd24iLAoKICAgICAgICAvLyAqKnNob3dFZmZlY3RTcGVlZCoqOiBBY2NlcHRzIE51bWJlciAobWlsbGlzZWNvbmRzKSBvciBTdHJpbmc6ICJzbG93IiwgIm1lZGl1bSIsIG9yICJmYXN0IgogICAgICAgIC8vIFRoZSB0aW1lIGR1cmF0aW9uIG9mIHRoZSBzaG93IGFuaW1hdGlvbgogICAgICAgIHNob3dFZmZlY3RTcGVlZDogIm1lZGl1bSIsCgogICAgICAgIC8vICoqaGlkZUVmZmVjdCoqOiBBY2NlcHRzIFN0cmluZzogIm5vbmUiLCAiZmFkZU91dCIsICJoaWRlIiwgb3IgInNsaWRlVXAiCiAgICAgICAgLy8gVXNlZCB0byBoaWRlIGFueSBvZiB0aGUgdGFibGUgb2YgY29udGVudHMgbmVzdGVkIGl0ZW1zCiAgICAgICAgaGlkZUVmZmVjdDogInNsaWRlVXAiLAoKICAgICAgICAvLyAqKmhpZGVFZmZlY3RTcGVlZCoqOiBBY2NlcHRzIE51bWJlciAobWlsbGlzZWNvbmRzKSBvciBTdHJpbmc6ICJzbG93IiwgIm1lZGl1bSIsIG9yICJmYXN0IgogICAgICAgIC8vIFRoZSB0aW1lIGR1cmF0aW9uIG9mIHRoZSBoaWRlIGFuaW1hdGlvbgogICAgICAgIGhpZGVFZmZlY3RTcGVlZDogIm1lZGl1bSIsCgogICAgICAgIC8vICoqc21vb3RoU2Nyb2xsKio6IEFjY2VwdHMgYSBib29sZWFuOiB0cnVlIG9yIGZhbHNlCiAgICAgICAgLy8gRGV0ZXJtaW5lcyBpZiBhIGpRdWVyeSBhbmltYXRpb24gc2hvdWxkIGJlIHVzZWQgdG8gc2Nyb2xsIHRvIHNwZWNpZmljIHRhYmxlIG9mIGNvbnRlbnRzIGl0ZW1zIG9uIHRoZSBwYWdlCiAgICAgICAgc21vb3RoU2Nyb2xsOiB0cnVlLAoKICAgICAgICAvLyAqKnNtb290aFNjcm9sbFNwZWVkKio6IEFjY2VwdHMgTnVtYmVyIChtaWxsaXNlY29uZHMpIG9yIFN0cmluZzogInNsb3ciLCAibWVkaXVtIiwgb3IgImZhc3QiCiAgICAgICAgLy8gVGhlIHRpbWUgZHVyYXRpb24gb2YgdGhlIHNtb290aFNjcm9sbCBhbmltYXRpb24KICAgICAgICBzbW9vdGhTY3JvbGxTcGVlZDogIm1lZGl1bSIsCgogICAgICAgIC8vICoqc2Nyb2xsVG8qKjogQWNjZXB0cyBOdW1iZXIgKHBpeGVscykKICAgICAgICAvLyBUaGUgYW1vdW50IG9mIHNwYWNlIGJldHdlZW4gdGhlIHRvcCBvZiBwYWdlIGFuZCB0aGUgc2VsZWN0ZWQgdGFibGUgb2YgY29udGVudHMgaXRlbSBhZnRlciB0aGUgcGFnZSBoYXMgYmVlbiBzY3JvbGxlZAogICAgICAgIHNjcm9sbFRvOiAwLAoKICAgICAgICAvLyAqKnNob3dBbmRIaWRlT25TY3JvbGwqKjogQWNjZXB0cyBhIGJvb2xlYW46IHRydWUgb3IgZmFsc2UKICAgICAgICAvLyBEZXRlcm1pbmVzIGlmIHRhYmxlIG9mIGNvbnRlbnRzIG5lc3RlZCBpdGVtcyBzaG91bGQgYmUgc2hvd24gYW5kIGhpZGRlbiB3aGlsZSBzY3JvbGxpbmcKICAgICAgICBzaG93QW5kSGlkZU9uU2Nyb2xsOiB0cnVlLAoKICAgICAgICAvLyAqKmhpZ2hsaWdodE9uU2Nyb2xsKio6IEFjY2VwdHMgYSBib29sZWFuOiB0cnVlIG9yIGZhbHNlCiAgICAgICAgLy8gRGV0ZXJtaW5lcyBpZiB0YWJsZSBvZiBjb250ZW50cyBuZXN0ZWQgaXRlbXMgc2hvdWxkIGJlIGhpZ2hsaWdodGVkIChzZXQgdG8gYSBkaWZmZXJlbnQgY29sb3IpIHdoaWxlIHNjcm9sbGluZwogICAgICAgIGhpZ2hsaWdodE9uU2Nyb2xsOiB0cnVlLAoKICAgICAgICAvLyAqKmhpZ2hsaWdodE9mZnNldCoqOiBBY2NlcHRzIGEgbnVtYmVyCiAgICAgICAgLy8gVGhlIG9mZnNldCBkaXN0YW5jZSBpbiBwaXhlbHMgdG8gdHJpZ2dlciB0aGUgbmV4dCBhY3RpdmUgdGFibGUgb2YgY29udGVudHMgaXRlbQogICAgICAgIGhpZ2hsaWdodE9mZnNldDogNDAsCgogICAgICAgIC8vICoqdGhlbWUqKjogQWNjZXB0cyBhIHN0cmluZzogImJvb3RzdHJhcCIsICJqcXVlcnl1aSIsIG9yICJub25lIgogICAgICAgIC8vIERldGVybWluZXMgaWYgVHdpdHRlciBCb290c3RyYXAsIGpRdWVyeVVJLCBvciBUb2NpZnkgY2xhc3NlcyBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIHRhYmxlIG9mIGNvbnRlbnRzCiAgICAgICAgdGhlbWU6ICJib290c3RyYXAiLAoKICAgICAgICAvLyAqKmV4dGVuZFBhZ2UqKjogQWNjZXB0cyBhIGJvb2xlYW46IHRydWUgb3IgZmFsc2UKICAgICAgICAvLyBJZiBhIHVzZXIgc2Nyb2xscyB0byB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGFuZCB0aGUgcGFnZSBpcyBub3QgdGFsbCBlbm91Z2ggdG8gc2Nyb2xsIHRvIHRoZSBsYXN0IHRhYmxlIG9mIGNvbnRlbnRzIGl0ZW0sIHRoZW4gdGhlIHBhZ2UgaGVpZ2h0IGlzIGluY3JlYXNlZAogICAgICAgIGV4dGVuZFBhZ2U6IHRydWUsCgogICAgICAgIC8vICoqZXh0ZW5kUGFnZU9mZnNldCoqOiBBY2NlcHRzIGEgbnVtYmVyOiBwaXhlbHMKICAgICAgICAvLyBIb3cgY2xvc2UgdG8gdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSBhIHVzZXIgbXVzdCBzY3JvbGwgYmVmb3JlIHRoZSBwYWdlIGlzIGV4dGVuZGVkCiAgICAgICAgZXh0ZW5kUGFnZU9mZnNldDogMTAwLAoKICAgICAgICAvLyAqKmhpc3RvcnkqKjogQWNjZXB0cyBhIGJvb2xlYW46IHRydWUgb3IgZmFsc2UKICAgICAgICAvLyBBZGRzIGEgaGFzaCB0byB0aGUgcGFnZSB1cmwgdG8gbWFpbnRhaW4gaGlzdG9yeQogICAgICAgIGhpc3Rvcnk6IHRydWUsCgogICAgICAgIC8vICoqc2Nyb2xsSGlzdG9yeSoqOiBBY2NlcHRzIGEgYm9vbGVhbjogdHJ1ZSBvciBmYWxzZQogICAgICAgIC8vIEFkZHMgYSBoYXNoIHRvIHRoZSBwYWdlIHVybCwgdG8gbWFpbnRhaW4gaGlzdG9yeSwgd2hlbiBzY3JvbGxpbmcgdG8gYSBUT0MgaXRlbQogICAgICAgIHNjcm9sbEhpc3Rvcnk6IGZhbHNlLAoKICAgICAgICAvLyAqKmhhc2hHZW5lcmF0b3IqKjogSG93IHRoZSBoYXNoIHZhbHVlICh0aGUgYW5jaG9yIHNlZ21lbnQgb2YgdGhlIFVSTCwgZm9sbG93aW5nIHRoZQogICAgICAgIC8vICMgY2hhcmFjdGVyKSB3aWxsIGJlIGdlbmVyYXRlZC4KICAgICAgICAvLwogICAgICAgIC8vICJjb21wYWN0IiAoZGVmYXVsdCkgLSAjQ29tcHJlc3Nlc0V2ZXJ5dGhpbmdUb2dldGhlcgogICAgICAgIC8vICJwcmV0dHkiIC0gI2xvb2tzLWxpa2UtYS1uaWNlLXVybC1hbmQtaXMtZWFzaWx5LXJlYWRhYmxlCiAgICAgICAgLy8gZnVuY3Rpb24odGV4dCwgZWxlbWVudCl7fSAtIFlvdXIgb3duIGhhc2ggZ2VuZXJhdGlvbiBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdGhlIHRleHQgYXMgYW4KICAgICAgICAvLyBhcmd1bWVudCwgYW5kIHJldHVybnMgdGhlIGhhc2ggdmFsdWUuCiAgICAgICAgaGFzaEdlbmVyYXRvcjogImNvbXBhY3QiLAoKICAgICAgICAvLyAqKmhpZ2hsaWdodERlZmF1bHQqKjogQWNjZXB0cyBhIGJvb2xlYW46IHRydWUgb3IgZmFsc2UKICAgICAgICAvLyBTZXQncyB0aGUgZmlyc3QgVE9DIGl0ZW0gYXMgYWN0aXZlIGlmIG5vIG90aGVyIFRPQyBpdGVtIGlzIGFjdGl2ZS4KICAgICAgICBoaWdobGlnaHREZWZhdWx0OiB0cnVlCgogICAgICB9LAoKICAgICAgLy8gX0NyZWF0ZQogICAgICAvLyAtLS0tLS0tCiAgICAgIC8vICAgICAgQ29uc3RydWN0cyB0aGUgcGx1Z2luLiAgT25seSBjYWxsZWQgb25jZS4KICAgICAgX2NyZWF0ZTogZnVuY3Rpb24oKSB7CgogICAgICAgIHZhciBzZWxmID0gdGhpczsKCiAgICAgICAgc2VsZi5leHRlbmRQYWdlU2Nyb2xsID0gdHJ1ZTsKCiAgICAgICAgLy8gSW50ZXJuYWwgYXJyYXkgdGhhdCBrZWVwcyB0cmFjayBvZiBhbGwgVE9DIGl0ZW1zIChIZWxwcyB0byByZWNvZ25pemUgaWYgdGhlcmUgYXJlIGR1cGxpY2F0ZSBUT0MgaXRlbSBzdHJpbmdzKQogICAgICAgIHNlbGYuaXRlbXMgPSBbXTsKCiAgICAgICAgLy8gR2VuZXJhdGVzIHRoZSBIVE1MIGZvciB0aGUgZHluYW1pYyB0YWJsZSBvZiBjb250ZW50cwogICAgICAgIHNlbGYuX2dlbmVyYXRlVG9jKCk7CgogICAgICAgIC8vIEFkZHMgQ1NTIGNsYXNzZXMgdG8gdGhlIG5ld2x5IGdlbmVyYXRlZCB0YWJsZSBvZiBjb250ZW50cyBIVE1MCiAgICAgICAgc2VsZi5fYWRkQ1NTQ2xhc3NlcygpOwoKICAgICAgICBzZWxmLndlYmtpdCA9IChmdW5jdGlvbigpIHsKCiAgICAgICAgICBmb3IgKHZhciBwcm9wIGluIHdpbmRvdykgewoKICAgICAgICAgICAgaWYgKHByb3ApIHsKCiAgICAgICAgICAgICAgaWYgKHByb3AudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJ3ZWJraXQiKSAhPT0gLTEpIHsKCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKCiAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgfQoKICAgICAgICAgIH0KCiAgICAgICAgICByZXR1cm4gZmFsc2U7CgogICAgICAgIH0oKSk7CgogICAgICAgIC8vIEFkZHMgalF1ZXJ5IGV2ZW50IGhhbmRsZXJzIHRvIHRoZSBuZXdseSBnZW5lcmF0ZWQgdGFibGUgb2YgY29udGVudHMKICAgICAgICBzZWxmLl9zZXRFdmVudEhhbmRsZXJzKCk7CgogICAgICAgIC8vIEJpbmRpbmcgdG8gdGhlIFdpbmRvdyBsb2FkIGV2ZW50IHRvIG1ha2Ugc3VyZSB0aGUgY29ycmVjdCBzY3JvbGxUb3AgaXMgY2FsY3VsYXRlZAogICAgICAgICQod2luZG93KS5vbigibG9hZCIsIGZ1bmN0aW9uKCkgewoKICAgICAgICAgIC8vIFNldHMgdGhlIGFjdGl2ZSBUT0MgaXRlbQogICAgICAgICAgc2VsZi5fc2V0QWN0aXZlRWxlbWVudCh0cnVlKTsKCiAgICAgICAgICAvLyBPbmNlIGFsbCBhbmltYXRpb25zIG9uIHRoZSBwYWdlIGFyZSBjb21wbGV0ZSwgdGhpcyBjYWxsYmFjayBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZAogICAgICAgICAgJCgiaHRtbCwgYm9keSIpLnByb21pc2UoKS5kb25lKGZ1bmN0aW9uKCkgewoKICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKCiAgICAgICAgICAgICAgc2VsZi5leHRlbmRQYWdlU2Nyb2xsID0gZmFsc2U7CgogICAgICAgICAgICB9LCAwKTsKCiAgICAgICAgICB9KTsKCiAgICAgICAgfSk7CgogICAgICB9LAoKICAgICAgLy8gX2dlbmVyYXRlVG9jCiAgICAgIC8vIC0tLS0tLS0tLS0tLQogICAgICAvLyAgICAgIEdlbmVyYXRlcyB0aGUgSFRNTCBmb3IgdGhlIGR5bmFtaWMgdGFibGUgb2YgY29udGVudHMKICAgICAgX2dlbmVyYXRlVG9jOiBmdW5jdGlvbigpIHsKCiAgICAgICAgLy8gX0xvY2FsIHZhcmlhYmxlc18KCiAgICAgICAgLy8gU3RvcmVzIHRoZSBwbHVnaW4gY29udGV4dCBpbiB0aGUgc2VsZiB2YXJpYWJsZQogICAgICAgIHZhciBzZWxmID0gdGhpcywKCiAgICAgICAgICAvLyBBbGwgb2YgdGhlIEhUTUwgdGFncyBmb3VuZCB3aXRoaW4gdGhlIGNvbnRleHQgcHJvdmlkZWQgKGkuZS4gYm9keSkgdGhhdCBtYXRjaCB0aGUgdG9wIGxldmVsIGpRdWVyeSBzZWxlY3RvciBhYm92ZQogICAgICAgICAgZmlyc3RFbGVtLAoKICAgICAgICAgIC8vIEluc3RhbnRpYXRlZCB2YXJpYWJsZSB0aGF0IHdpbGwgc3RvcmUgdGhlIHRvcCBsZXZlbCBuZXdseSBjcmVhdGVkIHVub3JkZXJlZCBsaXN0IERPTSBlbGVtZW50CiAgICAgICAgICB1bCwKICAgICAgICAgIGlnbm9yZVNlbGVjdG9yID0gc2VsZi5vcHRpb25zLmlnbm9yZVNlbGVjdG9yOwoKCiAgICAgICAgLy8gRGV0ZXJtaW5lIHRoZSBlbGVtZW50IHRvIHN0YXJ0IHRoZSB0b2Mgd2l0aAogICAgICAgIC8vIGdldCBhbGwgdGhlIHRvcCBsZXZlbCBzZWxlY3RvcnMKICAgICAgICBmaXJzdEVsZW0gPSBbXTsKICAgICAgICB2YXIgc2VsZWN0b3JzID0gdGhpcy5vcHRpb25zLnNlbGVjdG9ycy5yZXBsYWNlKC8gL2csICIiKS5zcGxpdCgiLCIpOwogICAgICAgIC8vIGZpbmQgdGhlIGZpcnN0IHNldCB0aGF0IGhhdmUgYXQgbGVhc3Qgb25lIG5vbi1pZ25vcmVkIGVsZW1lbnQKICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgc2VsZWN0b3JzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICB2YXIgZm91bmRTZWxlY3RvcnMgPSAkKHRoaXMub3B0aW9ucy5jb250ZXh0KS5maW5kKHNlbGVjdG9yc1tpXSk7CiAgICAgICAgICBmb3IgKHZhciBzID0gMDsgcyA8IGZvdW5kU2VsZWN0b3JzLmxlbmd0aDsgcysrKSB7CiAgICAgICAgICAgIGlmICghJChmb3VuZFNlbGVjdG9yc1tzXSkuaXMoaWdub3JlU2VsZWN0b3IpKSB7CiAgICAgICAgICAgICAgZmlyc3RFbGVtID0gZm91bmRTZWxlY3RvcnM7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGlmIChmaXJzdEVsZW0ubGVuZ3RoPiAwKQogICAgICAgICAgICBicmVhazsKICAgICAgICB9CgogICAgICAgIGlmICghZmlyc3RFbGVtLmxlbmd0aCkgewoKICAgICAgICAgIHNlbGYuZWxlbWVudC5hZGRDbGFzcyhoaWRlVG9jQ2xhc3NOYW1lKTsKCiAgICAgICAgICByZXR1cm47CgogICAgICAgIH0KCiAgICAgICAgc2VsZi5lbGVtZW50LmFkZENsYXNzKHRvY0NsYXNzTmFtZSk7CgogICAgICAgIC8vIExvb3BzIHRocm91Z2ggZWFjaCB0b3AgbGV2ZWwgc2VsZWN0b3IKICAgICAgICBmaXJzdEVsZW0uZWFjaChmdW5jdGlvbihpbmRleCkgewoKICAgICAgICAgIC8vSWYgdGhlIGVsZW1lbnQgbWF0Y2hlcyB0aGUgaWdub3JlU2VsZWN0b3IgdGhlbiB3ZSBza2lwIGl0CiAgICAgICAgICBpZiAoJCh0aGlzKS5pcyhpZ25vcmVTZWxlY3RvcikpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQoKICAgICAgICAgIC8vIENyZWF0ZXMgYW4gdW5vcmRlcmVkIGxpc3QgSFRNTCBlbGVtZW50IGFuZCBhZGRzIGEgZHluYW1pYyBJRCBhbmQgc3RhbmRhcmQgY2xhc3MgbmFtZQogICAgICAgICAgdWwgPSAkKCI8dWwvPiIsIHsKICAgICAgICAgICAgImlkIjogaGVhZGVyQ2xhc3NOYW1lICsgaW5kZXgsCiAgICAgICAgICAgICJjbGFzcyI6IGhlYWRlckNsYXNzTmFtZQogICAgICAgICAgfSkuCgogICAgICAgICAgLy8gQXBwZW5kcyBhIHRvcCBsZXZlbCBsaXN0IGl0ZW0gSFRNTCBlbGVtZW50IHRvIHRoZSBwcmV2aW91c2x5IGNyZWF0ZWQgSFRNTCBoZWFkZXIKICAgICAgICAgIGFwcGVuZChzZWxmLl9uZXN0RWxlbWVudHMoJCh0aGlzKSwgaW5kZXgpKTsKCiAgICAgICAgICAvLyBBZGQgdGhlIGNyZWF0ZWQgdW5vcmRlcmVkIGxpc3QgZWxlbWVudCB0byB0aGUgSFRNTCBlbGVtZW50IGNhbGxpbmcgdGhlIHBsdWdpbgogICAgICAgICAgc2VsZi5lbGVtZW50LmFwcGVuZCh1bCk7CgogICAgICAgICAgLy8gRmluZHMgYWxsIG9mIHRoZSBIVE1MIHRhZ3MgYmV0d2VlbiB0aGUgaGVhZGVyIGFuZCBzdWJoZWFkZXIgZWxlbWVudHMKICAgICAgICAgICQodGhpcykubmV4dFVudGlsKHRoaXMubm9kZU5hbWUudG9Mb3dlckNhc2UoKSkuZWFjaChmdW5jdGlvbigpIHsKCiAgICAgICAgICAgIC8vIElmIHRoZXJlIGFyZSBubyBuZXN0ZWQgc3ViaGVhZGVyIGVsZW1lbWVudHMKICAgICAgICAgICAgaWYgKCQodGhpcykuZmluZChzZWxmLm9wdGlvbnMuc2VsZWN0b3JzKS5sZW5ndGggPT09IDApIHsKCiAgICAgICAgICAgICAgLy8gTG9vcHMgdGhyb3VnaCBhbGwgb2YgdGhlIHN1YmhlYWRlciBlbGVtZW50cwogICAgICAgICAgICAgICQodGhpcykuZmlsdGVyKHNlbGYub3B0aW9ucy5zZWxlY3RvcnMpLmVhY2goZnVuY3Rpb24oKSB7CgogICAgICAgICAgICAgICAgLy9JZiB0aGUgZWxlbWVudCBtYXRjaGVzIHRoZSBpZ25vcmVTZWxlY3RvciB0aGVuIHdlIHNraXAgaXQKICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLmlzKGlnbm9yZVNlbGVjdG9yKSkgewogICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgc2VsZi5fYXBwZW5kU3ViaGVhZGVycy5jYWxsKHRoaXMsIHNlbGYsIHVsKTsKCiAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBJZiB0aGVyZSBhcmUgbmVzdGVkIHN1YmhlYWRlciBlbGVtZW50cwogICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgLy8gTG9vcHMgdGhyb3VnaCBhbGwgb2YgdGhlIHN1YmhlYWRlciBlbGVtZW50cwogICAgICAgICAgICAgICQodGhpcykuZmluZChzZWxmLm9wdGlvbnMuc2VsZWN0b3JzKS5lYWNoKGZ1bmN0aW9uKCkgewoKICAgICAgICAgICAgICAgIC8vSWYgdGhlIGVsZW1lbnQgbWF0Y2hlcyB0aGUgaWdub3JlU2VsZWN0b3IgdGhlbiB3ZSBza2lwIGl0CiAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5pcyhpZ25vcmVTZWxlY3RvcikpIHsKICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHNlbGYuX2FwcGVuZFN1YmhlYWRlcnMuY2FsbCh0aGlzLCBzZWxmLCB1bCk7CgogICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgfQoKICAgICAgICAgIH0pOwoKICAgICAgICB9KTsKCiAgICAgIH0sCgogICAgICBfc2V0QWN0aXZlRWxlbWVudDogZnVuY3Rpb24ocGFnZWxvYWQpIHsKCiAgICAgICAgdmFyIHNlbGYgPSB0aGlzLAoKICAgICAgICAgIGhhc2ggPSB3aW5kb3cubG9jYXRpb24uaGFzaC5zdWJzdHJpbmcoMSksCgogICAgICAgICAgZWxlbSA9IHNlbGYuZWxlbWVudC5maW5kKCdsaVtkYXRhLXVuaXF1ZT0iJyArIGhhc2ggKyAnIl0nKTsKCiAgICAgICAgaWYgKGhhc2gubGVuZ3RoKSB7CgogICAgICAgICAgLy8gUmVtb3ZlcyBoaWdobGlnaHRpbmcgZnJvbSBhbGwgb2YgdGhlIGxpc3QgaXRlbSdzCiAgICAgICAgICBzZWxmLmVsZW1lbnQuZmluZCgiLiIgKyBzZWxmLmZvY3VzQ2xhc3MpLnJlbW92ZUNsYXNzKHNlbGYuZm9jdXNDbGFzcyk7CgogICAgICAgICAgLy8gSGlnaGxpZ2h0cyB0aGUgY3VycmVudCBsaXN0IGl0ZW0gdGhhdCB3YXMgY2xpY2tlZAogICAgICAgICAgZWxlbS5hZGRDbGFzcyhzZWxmLmZvY3VzQ2xhc3MpOwoKICAgICAgICAgIC8vIFRyaWdnZXJzIHRoZSBjbGljayBldmVudCBvbiB0aGUgY3VycmVudGx5IGZvY3VzZWQgVE9DIGl0ZW0KICAgICAgICAgIGVsZW0uY2xpY2soKTsKCiAgICAgICAgfSBlbHNlIHsKCiAgICAgICAgICAvLyBSZW1vdmVzIGhpZ2hsaWdodGluZyBmcm9tIGFsbCBvZiB0aGUgbGlzdCBpdGVtJ3MKICAgICAgICAgIHNlbGYuZWxlbWVudC5maW5kKCIuIiArIHNlbGYuZm9jdXNDbGFzcykucmVtb3ZlQ2xhc3Moc2VsZi5mb2N1c0NsYXNzKTsKCiAgICAgICAgICBpZiAoIWhhc2gubGVuZ3RoICYmIHBhZ2Vsb2FkICYmIHNlbGYub3B0aW9ucy5oaWdobGlnaHREZWZhdWx0KSB7CgogICAgICAgICAgICAvLyBIaWdobGlnaHRzIHRoZSBmaXJzdCBUT0MgaXRlbSBpZiBubyBvdGhlciBpdGVtcyBhcmUgaGlnaGxpZ2h0ZWQKICAgICAgICAgICAgc2VsZi5lbGVtZW50LmZpbmQoaXRlbUNsYXNzKS5maXJzdCgpLmFkZENsYXNzKHNlbGYuZm9jdXNDbGFzcyk7CgogICAgICAgICAgfQoKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmOwoKICAgICAgfSwKCiAgICAgIC8vIF9uZXN0RWxlbWVudHMKICAgICAgLy8gLS0tLS0tLS0tLS0tLQogICAgICAvLyAgICAgIEhlbHBzIGNyZWF0ZSB0aGUgdGFibGUgb2YgY29udGVudHMgbGlzdCBieSBhcHBlbmRpbmcgbmVzdGVkIGxpc3QgaXRlbXMKICAgICAgX25lc3RFbGVtZW50czogZnVuY3Rpb24oc2VsZiwgaW5kZXgpIHsKCiAgICAgICAgdmFyIGFyciwgaXRlbSwgaGFzaFZhbHVlOwoKICAgICAgICBhcnIgPSAkLmdyZXAodGhpcy5pdGVtcywgZnVuY3Rpb24oaXRlbSkgewoKICAgICAgICAgIHJldHVybiBpdGVtID09PSBzZWxmLnRleHQoKTsKCiAgICAgICAgfSk7CgogICAgICAgIC8vIElmIHRoZXJlIGlzIGFscmVhZHkgYSBkdXBsaWNhdGUgVE9DIGl0ZW0KICAgICAgICBpZiAoYXJyLmxlbmd0aCkgewoKICAgICAgICAgIC8vIEFkZHMgdGhlIGN1cnJlbnQgVE9DIGl0ZW0gdGV4dCBhbmQgaW5kZXggKGZvciBzbGlnaHQgcmFuZG9taXphdGlvbikgdG8gdGhlIGludGVybmFsIGFycmF5CiAgICAgICAgICB0aGlzLml0ZW1zLnB1c2goc2VsZi50ZXh0KCkgKyBpbmRleCk7CgogICAgICAgIH0KCiAgICAgICAgLy8gSWYgdGhlcmUgbm90IGEgZHVwbGljYXRlIFRPQyBpdGVtCiAgICAgICAgZWxzZSB7CgogICAgICAgICAgLy8gQWRkcyB0aGUgY3VycmVudCBUT0MgaXRlbSB0ZXh0IHRvIHRoZSBpbnRlcm5hbCBhcnJheQogICAgICAgICAgdGhpcy5pdGVtcy5wdXNoKHNlbGYudGV4dCgpKTsKCiAgICAgICAgfQoKICAgICAgICBoYXNoVmFsdWUgPSB0aGlzLl9nZW5lcmF0ZUhhc2hWYWx1ZShhcnIsIHNlbGYsIGluZGV4KTsKCiAgICAgICAgLy8gQXBwZW5kcyBhIGxpc3QgaXRlbSBIVE1MIGVsZW1lbnQgdG8gdGhlIGxhc3QgdW5vcmRlcmVkIGxpc3QgSFRNTCBlbGVtZW50IGZvdW5kIHdpdGhpbiB0aGUgSFRNTCBlbGVtZW50IGNhbGxpbmcgdGhlIHBsdWdpbgogICAgICAgIGl0ZW0gPSAkKCI8bGkvPiIsIHsKCiAgICAgICAgICAvLyBTZXRzIGEgY29tbW9uIGNsYXNzIG5hbWUgdG8gdGhlIGxpc3QgaXRlbQogICAgICAgICAgImNsYXNzIjogaXRlbUNsYXNzTmFtZSwKCiAgICAgICAgICAiZGF0YS11bmlxdWUiOiBoYXNoVmFsdWUKCiAgICAgICAgfSk7CgogICAgICAgIGlmICh0aGlzLm9wdGlvbnMudGhlbWUgIT09ICJib290c3RyYXAzIikgewoKICAgICAgICAgIGl0ZW0uYXBwZW5kKCQoIjxhLz4iLCB7CgogICAgICAgICAgICAiaHRtbCI6IHNlbGYuaHRtbCgpCgogICAgICAgICAgfSkpOwoKICAgICAgICB9IGVsc2UgewoKICAgICAgICAgIGl0ZW0uaHRtbChzZWxmLmh0bWwoKSk7CgogICAgICAgIH0KCiAgICAgICAgLy8gQWRkcyBhbiBIVE1MIGFuY2hvciB0YWcgYmVmb3JlIHRoZSBjdXJyZW50bHkgdHJhdmVyc2VkIEhUTUwgZWxlbWVudAogICAgICAgIHNlbGYuYmVmb3JlKCQoIjxkaXYvPiIsIHsKCiAgICAgICAgICAvLyBTZXRzIGEgbmFtZSBhdHRyaWJ1dGUgb24gdGhlIGFuY2hvciB0YWcgdG8gdGhlIHRleHQgb2YgdGhlIGN1cnJlbnRseSB0cmF2ZXJzZWQgSFRNTCBlbGVtZW50IChhbHNvIG1ha2luZyBzdXJlIHRoYXQgYWxsIHdoaXRlc3BhY2UgaXMgcmVwbGFjZWQgd2l0aCBhbiB1bmRlcnNjb3JlKQogICAgICAgICAgIm5hbWUiOiBoYXNoVmFsdWUsCgogICAgICAgICAgImRhdGEtdW5pcXVlIjogaGFzaFZhbHVlCgogICAgICAgIH0pKTsKCiAgICAgICAgcmV0dXJuIGl0ZW07CgogICAgICB9LAoKICAgICAgLy8gX2dlbmVyYXRlSGFzaFZhbHVlCiAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAvLyAgICAgIEdlbmVyYXRlcyB0aGUgaGFzaCB2YWx1ZSB0aGF0IHdpbGwgYmUgdXNlZCB0byByZWZlciB0byBlYWNoIGl0ZW0uCiAgICAgIF9nZW5lcmF0ZUhhc2hWYWx1ZTogZnVuY3Rpb24oYXJyLCBzZWxmLCBpbmRleCkgewoKICAgICAgICB2YXIgaGFzaFZhbHVlID0gIiIsCiAgICAgICAgICBoYXNoR2VuZXJhdG9yT3B0aW9uID0gdGhpcy5vcHRpb25zLmhhc2hHZW5lcmF0b3I7CgogICAgICAgIGlmIChoYXNoR2VuZXJhdG9yT3B0aW9uID09PSAicHJldHR5IikgewoKICAgICAgICAgIC8vIHByZXR0aWZ5IHRoZSB0ZXh0CiAgICAgICAgICBoYXNoVmFsdWUgPSBzZWxmLnRleHQoKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xzL2csICItIik7CgogICAgICAgICAgLy8gZml4IGRvdWJsZSBoeXBoZW5zCiAgICAgICAgICB3aGlsZSAoaGFzaFZhbHVlLmluZGV4T2YoIi0tIikgPiAtMSkgewogICAgICAgICAgICBoYXNoVmFsdWUgPSBoYXNoVmFsdWUucmVwbGFjZSgvLS0vZywgIi0iKTsKICAgICAgICAgIH0KCiAgICAgICAgICAvLyBmaXggY29sb24tc3BhY2UgaW5zdGFuY2VzCiAgICAgICAgICB3aGlsZSAoaGFzaFZhbHVlLmluZGV4T2YoIjotIikgPiAtMSkgewogICAgICAgICAgICBoYXNoVmFsdWUgPSBoYXNoVmFsdWUucmVwbGFjZSgvOi0vZywgIi0iKTsKICAgICAgICAgIH0KCiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgaGFzaEdlbmVyYXRvck9wdGlvbiA9PT0gImZ1bmN0aW9uIikgewoKICAgICAgICAgIC8vIGNhbGwgdGhlIGZ1bmN0aW9uCiAgICAgICAgICBoYXNoVmFsdWUgPSBoYXNoR2VuZXJhdG9yT3B0aW9uKHNlbGYudGV4dCgpLCBzZWxmKTsKCiAgICAgICAgfSBlbHNlIHsKCiAgICAgICAgICAvLyBjb21wYWN0IC0gdGhlIGRlZmF1bHQKICAgICAgICAgIGhhc2hWYWx1ZSA9IHNlbGYudGV4dCgpLnJlcGxhY2UoL1xzL2csICIiKTsKCiAgICAgICAgfQoKICAgICAgICAvLyBhZGQgdGhlIGluZGV4IGlmIHdlIG5lZWQgdG8KICAgICAgICBpZiAoYXJyLmxlbmd0aCkgewogICAgICAgICAgaGFzaFZhbHVlICs9ICIiICsgaW5kZXg7CiAgICAgICAgfQoKICAgICAgICAvLyByZXR1cm4gdGhlIHZhbHVlCiAgICAgICAgcmV0dXJuIGhhc2hWYWx1ZTsKCiAgICAgIH0sCgogICAgICAvLyBfYXBwZW5kRWxlbWVudHMKICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tCiAgICAgIC8vICAgICAgSGVscHMgY3JlYXRlIHRoZSB0YWJsZSBvZiBjb250ZW50cyBsaXN0IGJ5IGFwcGVuZGluZyBzdWJoZWFkZXIgZWxlbWVudHMKCiAgICAgIF9hcHBlbmRTdWJoZWFkZXJzOiBmdW5jdGlvbihzZWxmLCB1bCkgewoKICAgICAgICAvLyBUaGUgY3VycmVudCBlbGVtZW50IGluZGV4CiAgICAgICAgdmFyIGluZGV4ID0gJCh0aGlzKS5pbmRleChzZWxmLm9wdGlvbnMuc2VsZWN0b3JzKSwKCiAgICAgICAgICAvLyBGaW5kcyB0aGUgcHJldmlvdXMgaGVhZGVyIERPTSBlbGVtZW50CiAgICAgICAgICBwcmV2aW91c0hlYWRlciA9ICQoc2VsZi5vcHRpb25zLnNlbGVjdG9ycykuZXEoaW5kZXggLSAxKSwKCiAgICAgICAgICBjdXJyZW50VGFnTmFtZSA9ICskKHRoaXMpLnByb3AoInRhZ05hbWUiKS5jaGFyQXQoMSksCgogICAgICAgICAgcHJldmlvdXNUYWdOYW1lID0gK3ByZXZpb3VzSGVhZGVyLnByb3AoInRhZ05hbWUiKS5jaGFyQXQoMSksCgogICAgICAgICAgbGFzdFN1YmhlYWRlcjsKCiAgICAgICAgLy8gSWYgdGhlIGN1cnJlbnQgaGVhZGVyIERPTSBlbGVtZW50IGlzIHNtYWxsZXIgdGhhbiB0aGUgcHJldmlvdXMgaGVhZGVyIERPTSBlbGVtZW50IG9yIHRoZSBmaXJzdCBzdWJoZWFkZXIKICAgICAgICBpZiAoY3VycmVudFRhZ05hbWUgPCBwcmV2aW91c1RhZ05hbWUpIHsKCiAgICAgICAgICAvLyBTZWxlY3RzIHRoZSBsYXN0IHVub3JkZXJlZCBsaXN0IEhUTUwgZm91bmQgd2l0aGluIHRoZSBIVE1MIGVsZW1lbnQgY2FsbGluZyB0aGUgcGx1Z2luCiAgICAgICAgICBzZWxmLmVsZW1lbnQuZmluZChzdWJoZWFkZXJDbGFzcyArICJbZGF0YS10YWc9IiArIGN1cnJlbnRUYWdOYW1lICsgIl0iKS5sYXN0KCkuYXBwZW5kKHNlbGYuX25lc3RFbGVtZW50cygkKHRoaXMpLCBpbmRleCkpOwoKICAgICAgICB9CgogICAgICAgIC8vIElmIHRoZSBjdXJyZW50IGhlYWRlciBET00gZWxlbWVudCBpcyB0aGUgc2FtZSB0eXBlIG9mIGhlYWRlcihlZy4gaDQpIGFzIHRoZSBwcmV2aW91cyBoZWFkZXIgRE9NIGVsZW1lbnQKICAgICAgICBlbHNlIGlmIChjdXJyZW50VGFnTmFtZSA9PT0gcHJldmlvdXNUYWdOYW1lKSB7CgogICAgICAgICAgdWwuZmluZChpdGVtQ2xhc3MpLmxhc3QoKS5hZnRlcihzZWxmLl9uZXN0RWxlbWVudHMoJCh0aGlzKSwgaW5kZXgpKTsKCiAgICAgICAgfSBlbHNlIHsKCiAgICAgICAgICAvLyBTZWxlY3RzIHRoZSBsYXN0IHVub3JkZXJlZCBsaXN0IEhUTUwgZm91bmQgd2l0aGluIHRoZSBIVE1MIGVsZW1lbnQgY2FsbGluZyB0aGUgcGx1Z2luCiAgICAgICAgICB1bC5maW5kKGl0ZW1DbGFzcykubGFzdCgpLgoKICAgICAgICAgIC8vIEFwcGVuZHMgYW4gdW5vcmRlcmVkTGlzdCBIVE1MIGVsZW1lbnQgdG8gdGhlIGR5bmFtaWMgYHVub3JkZXJlZExpc3RgIHZhcmlhYmxlIGFuZCBzZXRzIGEgY29tbW9uIGNsYXNzIG5hbWUKICAgICAgICAgIGFmdGVyKCQoIjx1bC8+IiwgewoKICAgICAgICAgICAgImNsYXNzIjogc3ViaGVhZGVyQ2xhc3NOYW1lLAoKICAgICAgICAgICAgImRhdGEtdGFnIjogY3VycmVudFRhZ05hbWUKCiAgICAgICAgICB9KSkubmV4dChzdWJoZWFkZXJDbGFzcykuCgogICAgICAgICAgLy8gQXBwZW5kcyBhIGxpc3QgaXRlbSBIVE1MIGVsZW1lbnQgdG8gdGhlIGxhc3QgdW5vcmRlcmVkIGxpc3QgSFRNTCBlbGVtZW50IGZvdW5kIHdpdGhpbiB0aGUgSFRNTCBlbGVtZW50IGNhbGxpbmcgdGhlIHBsdWdpbgogICAgICAgICAgYXBwZW5kKHNlbGYuX25lc3RFbGVtZW50cygkKHRoaXMpLCBpbmRleCkpOwogICAgICAgIH0KCiAgICAgIH0sCgogICAgICAvLyBfc2V0RXZlbnRIYW5kbGVycwogICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tCiAgICAgIC8vICAgICAgQWRkcyBqUXVlcnkgZXZlbnQgaGFuZGxlcnMgdG8gdGhlIG5ld2x5IGdlbmVyYXRlZCB0YWJsZSBvZiBjb250ZW50cwogICAgICBfc2V0RXZlbnRIYW5kbGVyczogZnVuY3Rpb24oKSB7CgogICAgICAgIC8vIF9Mb2NhbCB2YXJpYWJsZXNfCgogICAgICAgIC8vIFN0b3JlcyB0aGUgcGx1Z2luIGNvbnRleHQgaW4gdGhlIHNlbGYgdmFyaWFibGUKICAgICAgICB2YXIgc2VsZiA9IHRoaXMsCgogICAgICAgICAgLy8gSW5zdGFudGlhdGVzIGEgbmV3IHZhcmlhYmxlIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGhvbGQgYSBzcGVjaWZpYyBlbGVtZW50J3MgY29udGV4dAogICAgICAgICAgJHNlbGYsCgogICAgICAgICAgLy8gSW5zdGFudGlhdGVzIGEgbmV3IHZhcmlhYmxlIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGRldGVybWluZSB0aGUgc21vb3RoU2Nyb2xsIGFuaW1hdGlvbiB0aW1lIGR1cmF0aW9uCiAgICAgICAgICBkdXJhdGlvbjsKCiAgICAgICAgLy8gRXZlbnQgZGVsZWdhdGlvbiB0aGF0IGxvb2tzIGZvciBhbnkgY2xpY2tzIG9uIGxpc3QgaXRlbSBlbGVtZW50cyBpbnNpZGUgb2YgdGhlIEhUTUwgZWxlbWVudCBjYWxsaW5nIHRoZSBwbHVnaW4KICAgICAgICB0aGlzLmVsZW1lbnQub24oImNsaWNrLnRvY2lmeSIsICJsaSIsIGZ1bmN0aW9uKGV2ZW50KSB7CgogICAgICAgICAgaWYgKHNlbGYub3B0aW9ucy5oaXN0b3J5KSB7CgogICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaGFzaCA9ICQodGhpcykuYXR0cigiZGF0YS11bmlxdWUiKTsKCiAgICAgICAgICB9CgogICAgICAgICAgLy8gUmVtb3ZlcyBoaWdobGlnaHRpbmcgZnJvbSBhbGwgb2YgdGhlIGxpc3QgaXRlbSdzCiAgICAgICAgICBzZWxmLmVsZW1lbnQuZmluZCgiLiIgKyBzZWxmLmZvY3VzQ2xhc3MpLnJlbW92ZUNsYXNzKHNlbGYuZm9jdXNDbGFzcyk7CgogICAgICAgICAgLy8gSGlnaGxpZ2h0cyB0aGUgY3VycmVudCBsaXN0IGl0ZW0gdGhhdCB3YXMgY2xpY2tlZAogICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcyhzZWxmLmZvY3VzQ2xhc3MpOwoKICAgICAgICAgIC8vIElmIHRoZSBzaG93QW5kSGlkZSBvcHRpb24gaXMgdHJ1ZQogICAgICAgICAgaWYgKHNlbGYub3B0aW9ucy5zaG93QW5kSGlkZSkgewoKICAgICAgICAgICAgdmFyIGVsZW0gPSAkKCdsaVtkYXRhLXVuaXF1ZT0iJyArICQodGhpcykuYXR0cigiZGF0YS11bmlxdWUiKSArICciXScpOwoKICAgICAgICAgICAgc2VsZi5fdHJpZ2dlclNob3coZWxlbSk7CgogICAgICAgICAgfQoKICAgICAgICAgIHNlbGYuX3Njcm9sbFRvKCQodGhpcykpOwoKICAgICAgICB9KTsKCiAgICAgICAgLy8gTW91c2VlbnRlciBhbmQgTW91c2VsZWF2ZSBldmVudCBoYW5kbGVycyBmb3IgdGhlIGxpc3QgaXRlbSdzIHdpdGhpbiB0aGUgSFRNTCBlbGVtZW50IGNhbGxpbmcgdGhlIHBsdWdpbgogICAgICAgIHRoaXMuZWxlbWVudC5maW5kKCJsaSIpLm9uKHsKCiAgICAgICAgICAvLyBNb3VzZWVudGVyIGV2ZW50IGhhbmRsZXIKICAgICAgICAgICJtb3VzZWVudGVyLnRvY2lmeSI6IGZ1bmN0aW9uKCkgewoKICAgICAgICAgICAgLy8gQWRkcyBhIGhvdmVyIENTUyBjbGFzcyB0byB0aGUgY3VycmVudCBsaXN0IGl0ZW0KICAgICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcyhzZWxmLmhvdmVyQ2xhc3MpOwoKICAgICAgICAgICAgLy8gTWFrZXMgc3VyZSB0aGUgY3Vyc29yIGlzIHNldCB0byB0aGUgcG9pbnRlciBpY29uCiAgICAgICAgICAgICQodGhpcykuY3NzKCJjdXJzb3IiLCAicG9pbnRlciIpOwoKICAgICAgICAgIH0sCgogICAgICAgICAgLy8gTW91c2VsZWF2ZSBldmVudCBoYW5kbGVyCiAgICAgICAgICAibW91c2VsZWF2ZS50b2NpZnkiOiBmdW5jdGlvbigpIHsKCiAgICAgICAgICAgIGlmIChzZWxmLm9wdGlvbnMudGhlbWUgIT09ICJib290c3RyYXAiKSB7CgogICAgICAgICAgICAgIC8vIFJlbW92ZXMgdGhlIGhvdmVyIENTUyBjbGFzcyBmcm9tIHRoZSBjdXJyZW50IGxpc3QgaXRlbQogICAgICAgICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3Moc2VsZi5ob3ZlckNsYXNzKTsKCiAgICAgICAgICAgIH0KCiAgICAgICAgICB9CiAgICAgICAgfSk7CgogICAgICAgIC8vIG9ubHkgYXR0YWNoIGhhbmRsZXIgaWYgbmVlZGVkIChleHBlbnNpdmUgaW4gSUUpCiAgICAgICAgaWYgKHNlbGYub3B0aW9ucy5leHRlbmRQYWdlIHx8IHNlbGYub3B0aW9ucy5oaWdobGlnaHRPblNjcm9sbCB8fCBzZWxmLm9wdGlvbnMuc2Nyb2xsSGlzdG9yeSB8fCBzZWxmLm9wdGlvbnMuc2hvd0FuZEhpZGVPblNjcm9sbCkgewogICAgICAgICAgLy8gV2luZG93IHNjcm9sbCBldmVudCBoYW5kbGVyCiAgICAgICAgICAkKHdpbmRvdykub24oInNjcm9sbC50b2NpZnkiLCBmdW5jdGlvbigpIHsKCiAgICAgICAgICAgIC8vIE9uY2UgYWxsIGFuaW1hdGlvbnMgb24gdGhlIHBhZ2UgYXJlIGNvbXBsZXRlLCB0aGlzIGNhbGxiYWNrIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkCiAgICAgICAgICAgICQoImh0bWwsIGJvZHkiKS5wcm9taXNlKCkuZG9uZShmdW5jdGlvbigpIHsKCiAgICAgICAgICAgICAgLy8gTG9jYWwgdmFyaWFibGVzCgogICAgICAgICAgICAgIC8vIFN0b3JlcyBob3cgZmFyIHRoZSB1c2VyIGhhcyBzY3JvbGxlZAogICAgICAgICAgICAgIHZhciB3aW5TY3JvbGxUb3AgPSAkKHdpbmRvdykuc2Nyb2xsVG9wKCksCgogICAgICAgICAgICAgICAgLy8gU3RvcmVzIHRoZSBoZWlnaHQgb2YgdGhlIHdpbmRvdwogICAgICAgICAgICAgICAgd2luSGVpZ2h0ID0gJCh3aW5kb3cpLmhlaWdodCgpLAoKICAgICAgICAgICAgICAgIC8vIFN0b3JlcyB0aGUgaGVpZ2h0IG9mIHRoZSBkb2N1bWVudAogICAgICAgICAgICAgICAgZG9jSGVpZ2h0ID0gJChkb2N1bWVudCkuaGVpZ2h0KCksCgogICAgICAgICAgICAgICAgc2Nyb2xsSGVpZ2h0ID0gJCgiYm9keSIpWzBdLnNjcm9sbEhlaWdodCwKCiAgICAgICAgICAgICAgICAvLyBJbnN0YW50aWF0ZXMgYSB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgdXNlZCB0byBob2xkIGEgc2VsZWN0ZWQgSFRNTCBlbGVtZW50CiAgICAgICAgICAgICAgICBlbGVtLAoKICAgICAgICAgICAgICAgIGxhc3RFbGVtLAoKICAgICAgICAgICAgICAgIGxhc3RFbGVtT2Zmc2V0LAoKICAgICAgICAgICAgICAgIGN1cnJlbnRFbGVtOwoKICAgICAgICAgICAgICBpZiAoc2VsZi5vcHRpb25zLmV4dGVuZFBhZ2UpIHsKCiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdXNlciBoYXMgc2Nyb2xsZWQgdG8gdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSBhbmQgdGhlIGxhc3QgdG9jIGl0ZW0gaXMgbm90IGZvY3VzZWQKICAgICAgICAgICAgICAgIGlmICgoc2VsZi53ZWJraXQgJiYgd2luU2Nyb2xsVG9wID49IHNjcm9sbEhlaWdodCAtIHdpbkhlaWdodCAtIHNlbGYub3B0aW9ucy5leHRlbmRQYWdlT2Zmc2V0KSB8fCAoIXNlbGYud2Via2l0ICYmIHdpbkhlaWdodCArIHdpblNjcm9sbFRvcCA+IGRvY0hlaWdodCAtIHNlbGYub3B0aW9ucy5leHRlbmRQYWdlT2Zmc2V0KSkgewoKICAgICAgICAgICAgICAgICAgaWYgKCEkKGV4dGVuZFBhZ2VDbGFzcykubGVuZ3RoKSB7CgogICAgICAgICAgICAgICAgICAgIGxhc3RFbGVtID0gJCgnZGl2W2RhdGEtdW5pcXVlPSInICsgJChpdGVtQ2xhc3MpLmxhc3QoKS5hdHRyKCJkYXRhLXVuaXF1ZSIpICsgJyJdJyk7CgogICAgICAgICAgICAgICAgICAgIGlmICghbGFzdEVsZW0ubGVuZ3RoKSByZXR1cm47CgogICAgICAgICAgICAgICAgICAgIC8vIEdldHMgdGhlIHRvcCBvZmZzZXQgb2YgdGhlIHBhZ2UgaGVhZGVyIHRoYXQgaXMgbGlua2VkIHRvIHRoZSBsYXN0IHRvYyBpdGVtCiAgICAgICAgICAgICAgICAgICAgbGFzdEVsZW1PZmZzZXQgPSBsYXN0RWxlbS5vZmZzZXQoKS50b3A7CgogICAgICAgICAgICAgICAgICAgIC8vIEFwcGVuZHMgYSBkaXYgdG8gdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSBhbmQgc2V0cyB0aGUgaGVpZ2h0IHRvIHRoZSBkaWZmZXJlbmNlIG9mIHRoZSB3aW5kb3cgc2Nyb2xsVG9wIGFuZCB0aGUgbGFzdCBlbGVtZW50J3MgcG9zaXRpb24gdG9wIG9mZnNldAogICAgICAgICAgICAgICAgICAgICQoc2VsZi5vcHRpb25zLmNvbnRleHQpLmFwcGVuZCgkKCI8ZGl2Lz4iLCB7CgogICAgICAgICAgICAgICAgICAgICAgImNsYXNzIjogZXh0ZW5kUGFnZUNsYXNzTmFtZSwKCiAgICAgICAgICAgICAgICAgICAgICAiaGVpZ2h0IjogTWF0aC5hYnMobGFzdEVsZW1PZmZzZXQgLSB3aW5TY3JvbGxUb3ApICsgInB4IiwKCiAgICAgICAgICAgICAgICAgICAgICAiZGF0YS11bmlxdWUiOiBleHRlbmRQYWdlQ2xhc3NOYW1lCgogICAgICAgICAgICAgICAgICAgIH0pKTsKCiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGYuZXh0ZW5kUGFnZVNjcm9sbCkgewoKICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRFbGVtID0gc2VsZi5lbGVtZW50LmZpbmQoJ2xpLicgKyBzZWxmLmZvY3VzQ2xhc3MpOwoKICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3Njcm9sbFRvKCQoJ2RpdltkYXRhLXVuaXF1ZT0iJyArIGN1cnJlbnRFbGVtLmF0dHIoImRhdGEtdW5pcXVlIikgKyAnIl0nKSk7CgogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgLy8gVGhlIHplcm8gdGltZW91dCBlbnN1cmVzIHRoZSBmb2xsb3dpbmcgY29kZSBpcyBydW4gYWZ0ZXIgdGhlIHNjcm9sbCBldmVudHMKICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewoKICAgICAgICAgICAgICAgIC8vIF9Mb2NhbCB2YXJpYWJsZXNfCgogICAgICAgICAgICAgICAgLy8gU3RvcmVzIHRoZSBkaXN0YW5jZSB0byB0aGUgY2xvc2VzdCBhbmNob3IKICAgICAgICAgICAgICAgIHZhciBjbG9zZXN0QW5jaG9yRGlzdGFuY2UgPSBudWxsLAoKICAgICAgICAgICAgICAgICAgLy8gU3RvcmVzIHRoZSBpbmRleCBvZiB0aGUgY2xvc2VzdCBhbmNob3IKICAgICAgICAgICAgICAgICAgY2xvc2VzdEFuY2hvcklkeCA9IG51bGwsCgogICAgICAgICAgICAgICAgICAvLyBLZWVwcyBhIHJlZmVyZW5jZSB0byBhbGwgYW5jaG9ycwogICAgICAgICAgICAgICAgICBhbmNob3JzID0gJChzZWxmLm9wdGlvbnMuY29udGV4dCkuZmluZCgiZGl2W2RhdGEtdW5pcXVlXSIpLAoKICAgICAgICAgICAgICAgICAgYW5jaG9yVGV4dDsKCiAgICAgICAgICAgICAgICAvLyBEZXRlcm1pbmVzIHRoZSBpbmRleCBvZiB0aGUgY2xvc2VzdCBhbmNob3IKICAgICAgICAgICAgICAgIGFuY2hvcnMuZWFjaChmdW5jdGlvbihpZHgpIHsKICAgICAgICAgICAgICAgICAgdmFyIGRpc3RhbmNlID0gTWF0aC5hYnMoKCQodGhpcykubmV4dCgpLmxlbmd0aCA/ICQodGhpcykubmV4dCgpIDogJCh0aGlzKSkub2Zmc2V0KCkudG9wIC0gd2luU2Nyb2xsVG9wIC0gc2VsZi5vcHRpb25zLmhpZ2hsaWdodE9mZnNldCk7CiAgICAgICAgICAgICAgICAgIGlmIChjbG9zZXN0QW5jaG9yRGlzdGFuY2UgPT0gbnVsbCB8fCBkaXN0YW5jZSA8IGNsb3Nlc3RBbmNob3JEaXN0YW5jZSkgewogICAgICAgICAgICAgICAgICAgIGNsb3Nlc3RBbmNob3JEaXN0YW5jZSA9IGRpc3RhbmNlOwogICAgICAgICAgICAgICAgICAgIGNsb3Nlc3RBbmNob3JJZHggPSBpZHg7CiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICBhbmNob3JUZXh0ID0gJChhbmNob3JzW2Nsb3Nlc3RBbmNob3JJZHhdKS5hdHRyKCJkYXRhLXVuaXF1ZSIpOwoKICAgICAgICAgICAgICAgIC8vIFN0b3JlcyB0aGUgbGlzdCBpdGVtIEhUTUwgZWxlbWVudCB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBjdXJyZW50bHkgdHJhdmVyc2VkIGFuY2hvciB0YWcKICAgICAgICAgICAgICAgIGVsZW0gPSAkKCdsaVtkYXRhLXVuaXF1ZT0iJyArIGFuY2hvclRleHQgKyAnIl0nKTsKCiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgYGhpZ2hsaWdodE9uU2Nyb2xsYCBvcHRpb24gaXMgdHJ1ZSBhbmQgYSBuZXh0IGVsZW1lbnQgaXMgZm91bmQKICAgICAgICAgICAgICAgIGlmIChzZWxmLm9wdGlvbnMuaGlnaGxpZ2h0T25TY3JvbGwgJiYgZWxlbS5sZW5ndGgpIHsKCiAgICAgICAgICAgICAgICAgIC8vIFJlbW92ZXMgaGlnaGxpZ2h0aW5nIGZyb20gYWxsIG9mIHRoZSBsaXN0IGl0ZW0ncwogICAgICAgICAgICAgICAgICBzZWxmLmVsZW1lbnQuZmluZCgiLiIgKyBzZWxmLmZvY3VzQ2xhc3MpLnJlbW92ZUNsYXNzKHNlbGYuZm9jdXNDbGFzcyk7CgogICAgICAgICAgICAgICAgICAvLyBIaWdobGlnaHRzIHRoZSBjb3JyZXNwb25kaW5nIGxpc3QgaXRlbQogICAgICAgICAgICAgICAgICBlbGVtLmFkZENsYXNzKHNlbGYuZm9jdXNDbGFzcyk7CgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmIChzZWxmLm9wdGlvbnMuc2Nyb2xsSGlzdG9yeSkgewoKICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5oYXNoICE9PSAiIyIgKyBhbmNob3JUZXh0KSB7CgogICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKCIjIiArIGFuY2hvclRleHQpOwoKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vIElmIHRoZSBgc2hvd0FuZEhpZGVPblNjcm9sbGAgb3B0aW9uIGlzIHRydWUKICAgICAgICAgICAgICAgIGlmIChzZWxmLm9wdGlvbnMuc2hvd0FuZEhpZGVPblNjcm9sbCAmJiBzZWxmLm9wdGlvbnMuc2hvd0FuZEhpZGUpIHsKCiAgICAgICAgICAgICAgICAgIHNlbGYuX3RyaWdnZXJTaG93KGVsZW0sIHRydWUpOwoKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgfSwgMCk7CgogICAgICAgICAgICB9KTsKCiAgICAgICAgICB9KTsKICAgICAgICB9CgogICAgICB9LAoKICAgICAgLy8gU2hvdwogICAgICAvLyAtLS0tCiAgICAgIC8vICAgICAgT3BlbnMgdGhlIGN1cnJlbnQgc3ViLWhlYWRlcgogICAgICBzaG93OiBmdW5jdGlvbihlbGVtLCBzY3JvbGwpIHsKCiAgICAgICAgLy8gU3RvcmVzIHRoZSBwbHVnaW4gY29udGV4dCBpbiB0aGUgYHNlbGZgIHZhcmlhYmxlCiAgICAgICAgdmFyIHNlbGYgPSB0aGlzLAogICAgICAgICAgZWxlbWVudCA9IGVsZW07CgogICAgICAgIC8vIElmIHRoZSBzdWItaGVhZGVyIGlzIG5vdCBhbHJlYWR5IHZpc2libGUKICAgICAgICBpZiAoIWVsZW0uaXMoIjp2aXNpYmxlIikpIHsKCiAgICAgICAgICAvLyBJZiB0aGUgY3VycmVudCBlbGVtZW50IGRvZXMgbm90IGhhdmUgYW55IG5lc3RlZCBzdWJoZWFkZXJzLCBpcyBub3QgYSBoZWFkZXIsIGFuZCBpdHMgcGFyZW50IGlzIG5vdCB2aXNpYmxlCiAgICAgICAgICBpZiAoIWVsZW0uZmluZChzdWJoZWFkZXJDbGFzcykubGVuZ3RoICYmICFlbGVtLnBhcmVudCgpLmlzKGhlYWRlckNsYXNzKSAmJiAhZWxlbS5wYXJlbnQoKS5pcygiOnZpc2libGUiKSkgewoKICAgICAgICAgICAgLy8gU2V0cyB0aGUgY3VycmVudCBlbGVtZW50IHRvIGFsbCBvZiB0aGUgc3ViaGVhZGVycyB3aXRoaW4gdGhlIGN1cnJlbnQgaGVhZGVyCiAgICAgICAgICAgIGVsZW0gPSBlbGVtLnBhcmVudHMoc3ViaGVhZGVyQ2xhc3MpLmFkZChlbGVtKTsKCiAgICAgICAgICB9CgogICAgICAgICAgLy8gSWYgdGhlIGN1cnJlbnQgZWxlbWVudCBkb2VzIG5vdCBoYXZlIGFueSBuZXN0ZWQgc3ViaGVhZGVycyBhbmQgaXMgbm90IGEgaGVhZGVyCiAgICAgICAgICBlbHNlIGlmICghZWxlbS5jaGlsZHJlbihzdWJoZWFkZXJDbGFzcykubGVuZ3RoICYmICFlbGVtLnBhcmVudCgpLmlzKGhlYWRlckNsYXNzKSkgewoKICAgICAgICAgICAgLy8gU2V0cyB0aGUgY3VycmVudCBlbGVtZW50IHRvIHRoZSBjbG9zZXN0IHN1YmhlYWRlcgogICAgICAgICAgICBlbGVtID0gZWxlbS5jbG9zZXN0KHN1YmhlYWRlckNsYXNzKTsKCiAgICAgICAgICB9CgogICAgICAgICAgLy9EZXRlcm1pbmVzIHdoYXQgalF1ZXJ5IGVmZmVjdCB0byB1c2UKICAgICAgICAgIHN3aXRjaCAoc2VsZi5vcHRpb25zLnNob3dFZmZlY3QpIHsKCiAgICAgICAgICAgIC8vVXNlcyBgbm8gZWZmZWN0YAogICAgICAgICAgICBjYXNlICJub25lIjoKCiAgICAgICAgICAgICAgZWxlbS5zaG93KCk7CgogICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAvL1VzZXMgdGhlIGpRdWVyeSBgc2hvd2Agc3BlY2lhbCBlZmZlY3QKICAgICAgICAgICAgY2FzZSAic2hvdyI6CgogICAgICAgICAgICAgIGVsZW0uc2hvdyhzZWxmLm9wdGlvbnMuc2hvd0VmZmVjdFNwZWVkKTsKCiAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgIC8vVXNlcyB0aGUgalF1ZXJ5IGBzbGlkZURvd25gIHNwZWNpYWwgZWZmZWN0CiAgICAgICAgICAgIGNhc2UgInNsaWRlRG93biI6CgogICAgICAgICAgICAgIGVsZW0uc2xpZGVEb3duKHNlbGYub3B0aW9ucy5zaG93RWZmZWN0U3BlZWQpOwoKICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgLy9Vc2VzIHRoZSBqUXVlcnkgYGZhZGVJbmAgc3BlY2lhbCBlZmZlY3QKICAgICAgICAgICAgY2FzZSAiZmFkZUluIjoKCiAgICAgICAgICAgICAgZWxlbS5mYWRlSW4oc2VsZi5vcHRpb25zLnNob3dFZmZlY3RTcGVlZCk7CgogICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAvL0lmIG5vbmUgb2YgdGhlIGFib3ZlIG9wdGlvbnMgd2VyZSBwYXNzZWQsIHRoZW4gYSBgalF1ZXJ5VUkgc2hvdyBlZmZlY3RgIGlzIGV4cGVjdGVkCiAgICAgICAgICAgIGRlZmF1bHQ6CgogICAgICAgICAgICAgIGVsZW0uc2hvdygpOwoKICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICB9CgogICAgICAgIH0KCiAgICAgICAgLy8gSWYgdGhlIGN1cnJlbnQgc3ViaGVhZGVyIHBhcmVudCBlbGVtZW50IGlzIGEgaGVhZGVyCiAgICAgICAgaWYgKGVsZW0ucGFyZW50KCkuaXMoaGVhZGVyQ2xhc3MpKSB7CgogICAgICAgICAgLy8gSGlkZXMgYWxsIG5vbi1hY3RpdmUgc3ViLWhlYWRlcnMKICAgICAgICAgIHNlbGYuaGlkZSgkKHN1YmhlYWRlckNsYXNzKS5ub3QoZWxlbSkpOwoKICAgICAgICB9CgogICAgICAgIC8vIElmIHRoZSBjdXJyZW50IHN1YmhlYWRlciBwYXJlbnQgZWxlbWVudCBpcyBub3QgYSBoZWFkZXIKICAgICAgICBlbHNlIHsKCiAgICAgICAgICAvLyBIaWRlcyBhbGwgbm9uLWFjdGl2ZSBzdWItaGVhZGVycwogICAgICAgICAgc2VsZi5oaWRlKCQoc3ViaGVhZGVyQ2xhc3MpLm5vdChlbGVtLmNsb3Nlc3QoaGVhZGVyQ2xhc3MpLmZpbmQoc3ViaGVhZGVyQ2xhc3MpLm5vdChlbGVtLnNpYmxpbmdzKCkpKSk7CgogICAgICAgIH0KCiAgICAgICAgLy8gTWFpbnRhaW5zIGNoYWluYWJsaXR5CiAgICAgICAgcmV0dXJuIHNlbGY7CgogICAgICB9LAoKICAgICAgLy8gSGlkZQogICAgICAvLyAtLS0tCiAgICAgIC8vICAgICAgQ2xvc2VzIHRoZSBjdXJyZW50IHN1Yi1oZWFkZXIKICAgICAgaGlkZTogZnVuY3Rpb24oZWxlbSkgewoKICAgICAgICAvLyBTdG9yZXMgdGhlIHBsdWdpbiBjb250ZXh0IGluIHRoZSBgc2VsZmAgdmFyaWFibGUKICAgICAgICB2YXIgc2VsZiA9IHRoaXM7CgogICAgICAgIC8vRGV0ZXJtaW5lcyB3aGF0IGpRdWVyeSBlZmZlY3QgdG8gdXNlCiAgICAgICAgc3dpdGNoIChzZWxmLm9wdGlvbnMuaGlkZUVmZmVjdCkgewoKICAgICAgICAgIC8vIFVzZXMgYG5vIGVmZmVjdGAKICAgICAgICAgIGNhc2UgIm5vbmUiOgoKICAgICAgICAgICAgZWxlbS5oaWRlKCk7CgogICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIC8vIFVzZXMgdGhlIGpRdWVyeSBgaGlkZWAgc3BlY2lhbCBlZmZlY3QKICAgICAgICAgIGNhc2UgImhpZGUiOgoKICAgICAgICAgICAgZWxlbS5oaWRlKHNlbGYub3B0aW9ucy5oaWRlRWZmZWN0U3BlZWQpOwoKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAvLyBVc2VzIHRoZSBqUXVlcnkgYHNsaWRlVXBgIHNwZWNpYWwgZWZmZWN0CiAgICAgICAgICBjYXNlICJzbGlkZVVwIjoKCiAgICAgICAgICAgIGVsZW0uc2xpZGVVcChzZWxmLm9wdGlvbnMuaGlkZUVmZmVjdFNwZWVkKTsKCiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgLy8gVXNlcyB0aGUgalF1ZXJ5IGBmYWRlT3V0YCBzcGVjaWFsIGVmZmVjdAogICAgICAgICAgY2FzZSAiZmFkZU91dCI6CgogICAgICAgICAgICBlbGVtLmZhZGVPdXQoc2VsZi5vcHRpb25zLmhpZGVFZmZlY3RTcGVlZCk7CgogICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIC8vIElmIG5vbmUgb2YgdGhlIGFib3ZlIG9wdGlvbnMgd2VyZSBwYXNzZWQsIHRoZW4gYSBganF1ZXJ5VUkgaGlkZSBlZmZlY3RgIGlzIGV4cGVjdGVkCiAgICAgICAgICBkZWZhdWx0OgoKICAgICAgICAgICAgZWxlbS5oaWRlKCk7CgogICAgICAgICAgICBicmVhazsKCiAgICAgICAgfQoKICAgICAgICAvLyBNYWludGFpbnMgY2hhaW5hYmxpdHkKICAgICAgICByZXR1cm4gc2VsZjsKICAgICAgfSwKCiAgICAgIC8vIF90cmlnZ2VyU2hvdwogICAgICAvLyAtLS0tLS0tLS0tLS0KICAgICAgLy8gICAgICBEZXRlcm1pbmVzIHdoYXQgZWxlbWVudHMgZ2V0IHNob3duIG9uIHNjcm9sbCBhbmQgY2xpY2sKICAgICAgX3RyaWdnZXJTaG93OiBmdW5jdGlvbihlbGVtLCBzY3JvbGwpIHsKCiAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwoKICAgICAgICAvLyBJZiB0aGUgY3VycmVudCBlbGVtZW50J3MgcGFyZW50IGlzIGEgaGVhZGVyIGVsZW1lbnQgb3IgdGhlIG5leHQgZWxlbWVudCBpcyBhIG5lc3RlZCBzdWJoZWFkZXIgZWxlbWVudAogICAgICAgIGlmIChlbGVtLnBhcmVudCgpLmlzKGhlYWRlckNsYXNzKSB8fCBlbGVtLm5leHQoKS5pcyhzdWJoZWFkZXJDbGFzcykpIHsKCiAgICAgICAgICAvLyBTaG93cyB0aGUgbmV4dCBzdWItaGVhZGVyIGVsZW1lbnQKICAgICAgICAgIHNlbGYuc2hvdyhlbGVtLm5leHQoc3ViaGVhZGVyQ2xhc3MpLCBzY3JvbGwpOwoKICAgICAgICB9CgogICAgICAgIC8vIElmIHRoZSBjdXJyZW50IGVsZW1lbnQncyBwYXJlbnQgaXMgYSBzdWJoZWFkZXIgZWxlbWVudAogICAgICAgIGVsc2UgaWYgKGVsZW0ucGFyZW50KCkuaXMoc3ViaGVhZGVyQ2xhc3MpKSB7CgogICAgICAgICAgLy8gU2hvd3MgdGhlIHBhcmVudCBzdWItaGVhZGVyIGVsZW1lbnQKICAgICAgICAgIHNlbGYuc2hvdyhlbGVtLnBhcmVudCgpLCBzY3JvbGwpOwoKICAgICAgICB9CgogICAgICAgIC8vIE1haW50YWlucyBjaGFpbmFiaWxpdHkKICAgICAgICByZXR1cm4gc2VsZjsKCiAgICAgIH0sCgogICAgICAvLyBfYWRkQ1NTQ2xhc3NlcwogICAgICAvLyAtLS0tLS0tLS0tLS0tLQogICAgICAvLyAgICAgIEFkZHMgQ1NTIGNsYXNzZXMgdG8gdGhlIG5ld2x5IGdlbmVyYXRlZCB0YWJsZSBvZiBjb250ZW50cyBIVE1MCiAgICAgIF9hZGRDU1NDbGFzc2VzOiBmdW5jdGlvbigpIHsKCiAgICAgICAgLy8gSWYgdGhlIHVzZXIgd2FudHMgYSBqcXVlcnlVSSB0aGVtZQogICAgICAgIGlmICh0aGlzLm9wdGlvbnMudGhlbWUgPT09ICJqcXVlcnl1aSIpIHsKCiAgICAgICAgICB0aGlzLmZvY3VzQ2xhc3MgPSAidWktc3RhdGUtZGVmYXVsdCI7CgogICAgICAgICAgdGhpcy5ob3ZlckNsYXNzID0gInVpLXN0YXRlLWhvdmVyIjsKCiAgICAgICAgICAvL0FkZHMgdGhlIGRlZmF1bHQgc3R5bGluZyB0byB0aGUgZHJvcGRvd24gbGlzdAogICAgICAgICAgdGhpcy5lbGVtZW50LmFkZENsYXNzKCJ1aS13aWRnZXQiKS5maW5kKCIudG9jLXRpdGxlIikuYWRkQ2xhc3MoInVpLXdpZGdldC1oZWFkZXIiKS5lbmQoKS5maW5kKCJsaSIpLmFkZENsYXNzKCJ1aS13aWRnZXQtY29udGVudCIpOwoKICAgICAgICB9CgogICAgICAgIC8vIElmIHRoZSB1c2VyIHdhbnRzIGEgdHdpdHRlckJvb3RzdHJhcCB0aGVtZQogICAgICAgIGVsc2UgaWYgKHRoaXMub3B0aW9ucy50aGVtZSA9PT0gImJvb3RzdHJhcCIpIHsKCiAgICAgICAgICB0aGlzLmVsZW1lbnQuZmluZChoZWFkZXJDbGFzcyArICIsIiArIHN1YmhlYWRlckNsYXNzKS5hZGRDbGFzcygibmF2IG5hdi1saXN0Iik7CgogICAgICAgICAgdGhpcy5mb2N1c0NsYXNzID0gImFjdGl2ZSI7CgogICAgICAgIH0KCiAgICAgICAgLy8gSWYgdGhlIHVzZXIgd2FudHMgYSB0d2l0dGVyQm9vdHN0cmFwIHRoZW1lCiAgICAgICAgZWxzZSBpZiAodGhpcy5vcHRpb25zLnRoZW1lID09PSAiYm9vdHN0cmFwMyIpIHsKCiAgICAgICAgICB0aGlzLmVsZW1lbnQuZmluZChoZWFkZXJDbGFzcyArICIsIiArIHN1YmhlYWRlckNsYXNzKS5hZGRDbGFzcygibGlzdC1ncm91cCIpOwoKICAgICAgICAgIHRoaXMuZWxlbWVudC5maW5kKGl0ZW1DbGFzcykuYWRkQ2xhc3MoImxpc3QtZ3JvdXAtaXRlbSIpOwoKICAgICAgICAgIHRoaXMuZm9jdXNDbGFzcyA9ICJhY3RpdmUiOwoKICAgICAgICB9CgogICAgICAgIC8vIElmIGEgdXNlciBkb2VzIG5vdCB3YW50IGEgcHJlYnVpbHQgdGhlbWUKICAgICAgICBlbHNlIHsKCiAgICAgICAgICAvLyBBZGRzIG1vcmUgbmV1dHJhbCBjbGFzc2VzIChpbnN0ZWFkIG9mIGpxdWVyeXVpKQoKICAgICAgICAgIHRoaXMuZm9jdXNDbGFzcyA9IHRvY0ZvY3VzQ2xhc3NOYW1lOwoKICAgICAgICAgIHRoaXMuaG92ZXJDbGFzcyA9IHRvY0hvdmVyQ2xhc3NOYW1lOwoKICAgICAgICB9CgogICAgICAgIC8vTWFpbnRhaW5zIGNoYWluYWJpbGl0eQogICAgICAgIHJldHVybiB0aGlzOwoKICAgICAgfSwKCiAgICAgIC8vIHNldE9wdGlvbgogICAgICAvLyAtLS0tLS0tLS0KICAgICAgLy8gICAgICBTZXRzIGEgc2luZ2xlIFRvY2lmeSBvcHRpb24gYWZ0ZXIgdGhlIHBsdWdpbiBpcyBpbnZva2VkCiAgICAgIHNldE9wdGlvbjogZnVuY3Rpb24oKSB7CgogICAgICAgIC8vIENhbGxzIHRoZSBqUXVlcnlVSSBXaWRnZXQgRmFjdG9yeSBzZXRPcHRpb24gbWV0aG9kCiAgICAgICAgJC5XaWRnZXQucHJvdG90eXBlLl9zZXRPcHRpb24uYXBwbHkodGhpcywgYXJndW1lbnRzKTsKCiAgICAgIH0sCgogICAgICAvLyBzZXRPcHRpb25zCiAgICAgIC8vIC0tLS0tLS0tLS0KICAgICAgLy8gICAgICBTZXRzIGEgc2luZ2xlIG9yIG11bHRpcGxlIFRvY2lmeSBvcHRpb25zIGFmdGVyIHRoZSBwbHVnaW4gaXMgaW52b2tlZAogICAgICBzZXRPcHRpb25zOiBmdW5jdGlvbigpIHsKCiAgICAgICAgLy8gQ2FsbHMgdGhlIGpRdWVyeVVJIFdpZGdldCBGYWN0b3J5IHNldE9wdGlvbnMgbWV0aG9kCiAgICAgICAgJC5XaWRnZXQucHJvdG90eXBlLl9zZXRPcHRpb25zLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CgogICAgICB9LAoKICAgICAgLy8gX3Njcm9sbFRvCiAgICAgIC8vIC0tLS0tLS0tLQogICAgICAvLyAgICAgIFNjcm9sbHMgdG8gYSBzcGVjaWZpYyBlbGVtZW50CiAgICAgIF9zY3JvbGxUbzogZnVuY3Rpb24oZWxlbSkgewoKICAgICAgICB2YXIgc2VsZiA9IHRoaXMsCiAgICAgICAgICBkdXJhdGlvbiA9IHNlbGYub3B0aW9ucy5zbW9vdGhTY3JvbGwgfHwgMCwKICAgICAgICAgIHNjcm9sbFRvID0gc2VsZi5vcHRpb25zLnNjcm9sbFRvLAogICAgICAgICAgY3VycmVudERpdiA9ICQoJ2RpdltkYXRhLXVuaXF1ZT0iJyArIGVsZW0uYXR0cigiZGF0YS11bmlxdWUiKSArICciXScpOwoKICAgICAgICBpZiAoIWN1cnJlbnREaXYubGVuZ3RoKSB7CgogICAgICAgICAgcmV0dXJuIHNlbGY7CgogICAgICAgIH0KCiAgICAgICAgLy8gT25jZSBhbGwgYW5pbWF0aW9ucyBvbiB0aGUgcGFnZSBhcmUgY29tcGxldGUsIHRoaXMgY2FsbGJhY2sgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQKICAgICAgICAkKCJodG1sLCBib2R5IikucHJvbWlzZSgpLmRvbmUoZnVuY3Rpb24oKSB7CgogICAgICAgICAgLy8gQW5pbWF0ZXMgdGhlIGh0bWwgYW5kIGJvZHkgZWxlbWVudCBzY3JvbGx0b3BzCiAgICAgICAgICAkKCJodG1sLCBib2R5IikuYW5pbWF0ZSh7CgogICAgICAgICAgICAvLyBTZXRzIHRoZSBqUXVlcnkgYHNjcm9sbFRvcGAgdG8gdGhlIHRvcCBvZmZzZXQgb2YgdGhlIEhUTUwgZGl2IHRhZyB0aGF0IG1hdGNoZXMgdGhlIGN1cnJlbnQgbGlzdCBpdGVtJ3MgYGRhdGEtdW5pcXVlYCB0YWcKICAgICAgICAgICAgInNjcm9sbFRvcCI6IGN1cnJlbnREaXYub2Zmc2V0KCkudG9wIC0gKCQuaXNGdW5jdGlvbihzY3JvbGxUbykgPyBzY3JvbGxUby5jYWxsKCkgOiBzY3JvbGxUbykgKyAicHgiCgogICAgICAgICAgfSwgewoKICAgICAgICAgICAgLy8gU2V0cyB0aGUgc21vb3RoU2Nyb2xsIGFuaW1hdGlvbiB0aW1lIGR1cmF0aW9uIHRvIHRoZSBzbW9vdGhTY3JvbGxTcGVlZCBvcHRpb24KICAgICAgICAgICAgImR1cmF0aW9uIjogZHVyYXRpb24KCiAgICAgICAgICB9KTsKCiAgICAgICAgfSk7CgogICAgICAgIC8vIE1haW50YWlucyBjaGFpbmFiaWxpdHkKICAgICAgICByZXR1cm4gc2VsZjsKCiAgICAgIH0KCiAgICB9KTsKCiAgfSkpOyAvL2VuZCBvZiBwbHVnaW4K"></script>
+ <link href="data:text/css;base64,LyoKICoganF1ZXJ5LnRvY2lmeS5jc3MgMS45LjAKICogQXV0aG9yOiBAZ3JlZ2ZyYW5rbwogKi8KCi8qIFRoZSBUYWJsZSBvZiBDb250ZW50cyBjb250YWluZXIgZWxlbWVudCAqLwoudG9jaWZ5IHsKICAgIHdpZHRoOiAyMCU7CiAgICBtYXgtaGVpZ2h0OiA5MCU7CiAgICBvdmVyZmxvdzogYXV0bzsKICAgIG1hcmdpbi1sZWZ0OiAyJTsKICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7CiAgICB3ZWJraXQtYm9yZGVyLXJhZGl1czogNnB4OwogICAgbW96LWJvcmRlci1yYWRpdXM6IDZweDsKICAgIGJvcmRlci1yYWRpdXM6IDZweDsKfQoKLyogVGhlIFRhYmxlIG9mIENvbnRlbnRzIGlzIGNvbXBvc2VkIG9mIG11bHRpcGxlIG5lc3RlZCB1bm9yZGVyZWQgbGlzdHMuICBUaGVzZSBzdHlsZXMgcmVtb3ZlIHRoZSBkZWZhdWx0IHN0eWxpbmcgb2YgYW4gdW5vcmRlcmVkIGxpc3QgYmVjYXVzZSBpdCBpcyB1Z2x5LiAqLwoudG9jaWZ5IHVsLCAudG9jaWZ5IGxpIHsKICAgIGxpc3Qtc3R5bGU6IG5vbmU7CiAgICBtYXJnaW46IDA7CiAgICBwYWRkaW5nOiAwOwogICAgYm9yZGVyOiBub25lOwogICAgbGluZS1oZWlnaHQ6IDMwcHg7Cn0KCi8qIFRvcCBsZXZlbCBoZWFkZXIgZWxlbWVudHMgKi8KLnRvY2lmeS1oZWFkZXIgewogICAgdGV4dC1pbmRlbnQ6IDEwcHg7Cn0KCi8qIFRvcCBsZXZlbCBzdWJoZWFkZXIgZWxlbWVudHMuICBUaGVzZSBhcmUgdGhlIGZpcnN0IG5lc3RlZCBpdGVtcyB1bmRlcm5lYXRoIGEgaGVhZGVyIGVsZW1lbnQuICovCi50b2NpZnktc3ViaGVhZGVyIHsKICAgIHRleHQtaW5kZW50OiAyMHB4OwogICAgZGlzcGxheTogbm9uZTsKfQoKLyogTWFrZXMgdGhlIGZvbnQgc21hbGxlciBmb3IgYWxsIHN1YmhlYWRlciBlbGVtZW50cy4gKi8KLnRvY2lmeS1zdWJoZWFkZXIgbGkgewogICAgZm9udC1zaXplOiAxMnB4Owp9CgovKiBGdXJ0aGVyIGluZGVudHMgc2Vjb25kIGxldmVsIHN1YmhlYWRlciBlbGVtZW50cy4gKi8KLnRvY2lmeS1zdWJoZWFkZXIgLnRvY2lmeS1zdWJoZWFkZXIgewogICAgdGV4dC1pbmRlbnQ6IDMwcHg7Cn0KCi8qIEZ1cnRoZXIgaW5kZW50cyB0aGlyZCBsZXZlbCBzdWJoZWFkZXIgZWxlbWVudHMuIFlvdSBjYW4gY29udGludWUgdGhpcyBwYXR0ZXJuIGlmIHlvdSBoYXZlIG1vcmUgbmVzdGVkIGVsZW1lbnRzLiAqLwoudG9jaWZ5LXN1YmhlYWRlciAudG9jaWZ5LXN1YmhlYWRlciAudG9jaWZ5LXN1YmhlYWRlciB7CiAgICB0ZXh0LWluZGVudDogNDBweDsKfQoKLyogVHdpdHRlciBCb290c3RyYXAgT3ZlcnJpZGUgU3R5bGUgKi8KLm5hdi1saXN0ID4gbGkgPiBhLCAubmF2LWxpc3QgLm5hdi1oZWFkZXIgewogICAgbWFyZ2luOiAwcHg7Cn0KCi8qIFR3aXR0ZXIgQm9vdHN0cmFwIE92ZXJyaWRlIFN0eWxlICovCi5uYXYtbGlzdCA+IGxpID4gYSB7CiAgICBwYWRkaW5nOiA1cHg7Cn0=" rel="stylesheet" />
+ <style type="text/css">
+div.main-container {
+ max-width: 1200px;
+ }
+
+ /* TOC */
+ #TOC {
+ margin: 25px 0px 20px 0px;
+ }
+
+ .tocify .tocify-item a, .tocify .list-group-item {
+ padding: 5px;
+ }
+
+ @media (max-width: 768px) {
+ #TOC {
+ position: relative;
+ width: 100%;
+ }
+ }
+
+ @media print {
+ .toc-content {
+ /* see https://github.com/w3c/csswg-drafts/issues/4434 */
+ float: right;
+ }
+ }
+
+ div.tocify {
+ width: 20%;
+ max-width: 260px;
+ max-height: 85%;
+ }
+
+ @media (min-width: 768px) and (max-width: 991px) {
+ div.tocify {
+ width: 25%;
+ }
+ }
+
+ @media (max-width: 767px) {
+ div.tocify {
+ width: 100%;
+ max-width: none;
+ }
+ }
+
+ .tocify ul,
+ .tocify li {
+ line-height: 20px;
+ }
+
+ .tocify-subheader .tocify-item {
+ font-size: 0.90em;
+ }
+
+ .tocify .list-group-item {
+ border-radius: 0px;
+ }</style>
+
+ <!-- jQuery Plugin: Sticky Tabs -->
+
+ <script src="data:application/javascript;base64,CgovKioKICogalF1ZXJ5IFBsdWdpbjogU3RpY2t5IFRhYnMKICoKICogQGF1dGhvciBBaWRhbiBMaXN0ZXIgPGFpZGFuQHBocC5uZXQ+CiAqIGFkYXB0ZWQgYnkgUnViZW4gQXJzbGFuIHRvIGFjdGl2YXRlIHBhcmVudCB0YWJzIHRvbwogKiBodHRwOi8vd3d3LmFpZGFubGlzdGVyLmNvbS8yMDE0LzAzL3BlcnNpc3RpbmctdGhlLXRhYi1zdGF0ZS1pbi1ib290c3RyYXAvCiAqLwogKGZ1bmN0aW9uKCQpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgICQuZm4ucm1hcmtkb3duU3RpY2t5VGFicyA9IGZ1bmN0aW9uKCkgewogICAgICB2YXIgY29udGV4dCA9IHRoaXM7CiAgICAgIC8vIFNob3cgdGhlIHRhYiBjb3JyZXNwb25kaW5nIHdpdGggdGhlIGhhc2ggaW4gdGhlIFVSTCwgb3IgdGhlIGZpcnN0IHRhYgogICAgICB2YXIgc2hvd1N0dWZmRnJvbUhhc2ggPSBmdW5jdGlvbigpIHsKICAgICAgICB2YXIgaGFzaCA9IHdpbmRvdy5sb2NhdGlvbi5oYXNoOwogICAgICAgIHZhciBzZWxlY3RvciA9IGhhc2ggPyAnYVtocmVmPSInICsgaGFzaCArICciXScgOiAnbGkuYWN0aXZlID4gYSc7CiAgICAgICAgdmFyICRzZWxlY3RvciA9ICQoc2VsZWN0b3IsIGNvbnRleHQpOwogICAgICAgIGlmKCRzZWxlY3Rvci5kYXRhKCd0b2dnbGUnKSA9PT0gInRhYiIpIHsKICAgICAgICAgICRzZWxlY3Rvci50YWIoJ3Nob3cnKTsKICAgICAgICAgIC8vIHdhbGsgdXAgdGhlIGFuY2VzdG9ycyBvZiB0aGlzIGVsZW1lbnQsIHNob3cgYW55IGhpZGRlbiB0YWJzCiAgICAgICAgICAkc2VsZWN0b3IucGFyZW50cygnLnNlY3Rpb24udGFic2V0JykuZWFjaChmdW5jdGlvbihpLCBlbG0pIHsKICAgICAgICAgICAgdmFyIGxpbmsgPSAkKCdhW2hyZWY9IiMnICsgJChlbG0pLmF0dHIoJ2lkJykgKyAnIl0nKTsKICAgICAgICAgICAgaWYobGluay5kYXRhKCd0b2dnbGUnKSA9PT0gInRhYiIpIHsKICAgICAgICAgICAgICBsaW5rLnRhYigic2hvdyIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgIH07CiAgCiAgCiAgICAgIC8vIFNldCB0aGUgY29ycmVjdCB0YWIgd2hlbiB0aGUgcGFnZSBsb2FkcwogICAgICBzaG93U3R1ZmZGcm9tSGFzaChjb250ZXh0KTsKICAKICAgICAgLy8gU2V0IHRoZSBjb3JyZWN0IHRhYiB3aGVuIGEgdXNlciB1c2VzIHRoZWlyIGJhY2svZm9yd2FyZCBidXR0b24KICAgICAgJCh3aW5kb3cpLm9uKCdoYXNoY2hhbmdlJywgZnVuY3Rpb24oKSB7CiAgICAgICAgc2hvd1N0dWZmRnJvbUhhc2goY29udGV4dCk7CiAgICAgIH0pOwogIAogICAgICAvLyBDaGFuZ2UgdGhlIFVSTCB3aGVuIHRhYnMgYXJlIGNsaWNrZWQKICAgICAgJCgnYScsIGNvbnRleHQpLm9uKCdjbGljaycsIGZ1bmN0aW9uKGUpIHsKICAgICAgICBoaXN0b3J5LnB1c2hTdGF0ZShudWxsLCBudWxsLCB0aGlzLmhyZWYpOwogICAgICAgIHNob3dTdHVmZkZyb21IYXNoKGNvbnRleHQpOwogICAgICB9KTsKICAKICAgICAgcmV0dXJuIHRoaXM7CiAgICB9OwogIH0oalF1ZXJ5KSk7CiAgCiAgd2luZG93LmJ1aWxkVGFic2V0cyA9IGZ1bmN0aW9uKHRvY0lEKSB7CiAgCiAgICAvLyBidWlsZCBhIHRhYnNldCBmcm9tIGEgc2VjdGlvbiBkaXYgd2l0aCB0aGUgLnRhYnNldCBjbGFzcwogICAgZnVuY3Rpb24gYnVpbGRUYWJzZXQodGFic2V0KSB7CiAgCiAgICAgIC8vIGNoZWNrIGZvciBmYWRlIGFuZCBwaWxscyBvcHRpb25zCiAgICAgIHZhciBmYWRlID0gdGFic2V0Lmhhc0NsYXNzKCJ0YWJzZXQtZmFkZSIpOwogICAgICB2YXIgcGlsbHMgPSB0YWJzZXQuaGFzQ2xhc3MoInRhYnNldC1waWxscyIpOwogICAgICB2YXIgbmF2Q2xhc3MgPSBwaWxscyA/ICJuYXYtcGlsbHMiIDogIm5hdi10YWJzIjsKICAKICAgICAgLy8gZGV0ZXJtaW5lIHRoZSBoZWFkaW5nIGxldmVsIG9mIHRoZSB0YWJzZXQgYW5kIHRhYnMKICAgICAgdmFyIG1hdGNoID0gdGFic2V0LmF0dHIoJ2NsYXNzJykubWF0Y2goL2xldmVsKFxkKSAvKTsKICAgICAgaWYgKG1hdGNoID09PSBudWxsKQogICAgICAgIHJldHVybjsKICAgICAgdmFyIHRhYnNldExldmVsID0gTnVtYmVyKG1hdGNoWzFdKTsKICAgICAgdmFyIHRhYkxldmVsID0gdGFic2V0TGV2ZWwgKyAxOwogIAogICAgICAvLyBmaW5kIGFsbCBzdWJoZWFkaW5ncyBpbW1lZGlhdGVseSBiZWxvdwogICAgICB2YXIgdGFicyA9IHRhYnNldC5maW5kKCJkaXYuc2VjdGlvbi5sZXZlbCIgKyB0YWJMZXZlbCk7CiAgICAgIGlmICghdGFicy5sZW5ndGgpCiAgICAgICAgcmV0dXJuOwogIAogICAgICAvLyBjcmVhdGUgdGFibGlzdCBhbmQgdGFiLWNvbnRlbnQgZWxlbWVudHMKICAgICAgdmFyIHRhYkxpc3QgPSAkKCc8dWwgY2xhc3M9Im5hdiAnICsgbmF2Q2xhc3MgKyAnIiByb2xlPSJ0YWJsaXN0Ij48L3VsPicpOwogICAgICAkKHRhYnNbMF0pLmJlZm9yZSh0YWJMaXN0KTsKICAgICAgdmFyIHRhYkNvbnRlbnQgPSAkKCc8ZGl2IGNsYXNzPSJ0YWItY29udGVudCI+PC9kaXY+Jyk7CiAgICAgICQodGFic1swXSkuYmVmb3JlKHRhYkNvbnRlbnQpOwogIAogICAgICAvLyBidWlsZCB0aGUgdGFic2V0CiAgICAgIHZhciBhY3RpdmVUYWIgPSAwOwogICAgICB0YWJzLmVhY2goZnVuY3Rpb24oaSkgewogIAogICAgICAgIC8vIGdldCB0aGUgdGFiIGRpdgogICAgICAgIHZhciB0YWIgPSAkKHRhYnNbaV0pOwogIAogICAgICAgIC8vIGdldCB0aGUgaWQgdGhlbiBzYW5pdGl6ZSBpdCBmb3IgdXNlIHdpdGggYm9vdHN0cmFwIHRhYnMKICAgICAgICB2YXIgaWQgPSB0YWIuYXR0cignaWQnKTsKICAKICAgICAgICAvLyBzZWUgaWYgdGhpcyBpcyBtYXJrZWQgYXMgdGhlIGFjdGl2ZSB0YWIKICAgICAgICBpZiAodGFiLmhhc0NsYXNzKCdhY3RpdmUnKSkKICAgICAgICAgIGFjdGl2ZVRhYiA9IGk7CiAgCiAgICAgICAgLy8gcmVtb3ZlIGFueSB0YWJsZSBvZiBjb250ZW50cyBlbnRyaWVzIGFzc29jaWF0ZWQgd2l0aAogICAgICAgIC8vIHRoaXMgSUQgKHNpbmNlIHdlJ2xsIGJlIHJlbW92aW5nIHRoZSBoZWFkaW5nIGVsZW1lbnQpCiAgICAgICAgJCgiZGl2IyIgKyB0b2NJRCArICIgbGkgYVtocmVmPScjIiArIGlkICsgIiddIikucGFyZW50KCkucmVtb3ZlKCk7CiAgCiAgICAgICAgLy8gc2FuaXRpemUgdGhlIGlkIGZvciB1c2Ugd2l0aCBib290c3RyYXAgdGFicwogICAgICAgIGlkID0gaWQucmVwbGFjZSgvWy5cLz8mISM8Pl0vZywgJycpLnJlcGxhY2UoL1xzL2csICdfJyk7CiAgICAgICAgdGFiLmF0dHIoJ2lkJywgaWQpOwogIAogICAgICAgIC8vIGdldCB0aGUgaGVhZGluZyBlbGVtZW50IHdpdGhpbiBpdCwgZ3JhYiBpdCdzIHRleHQsIHRoZW4gcmVtb3ZlIGl0CiAgICAgICAgdmFyIGhlYWRpbmcgPSB0YWIuZmluZCgnaCcgKyB0YWJMZXZlbCArICc6Zmlyc3QnKTsKICAgICAgICB2YXIgaGVhZGluZ1RleHQgPSBoZWFkaW5nLmh0bWwoKTsKICAgICAgICBoZWFkaW5nLnJlbW92ZSgpOwogIAogICAgICAgIC8vIGJ1aWxkIGFuZCBhcHBlbmQgdGhlIHRhYiBsaXN0IGl0ZW0KICAgICAgICB2YXIgYSA9ICQoJzxhIHJvbGU9InRhYiIgZGF0YS10b2dnbGU9InRhYiI+JyArIGhlYWRpbmdUZXh0ICsgJzwvYT4nKTsKICAgICAgICBhLmF0dHIoJ2hyZWYnLCAnIycgKyBpZCk7CiAgICAgICAgYS5hdHRyKCdhcmlhLWNvbnRyb2xzJywgaWQpOwogICAgICAgIHZhciBsaSA9ICQoJzxsaSByb2xlPSJwcmVzZW50YXRpb24iPjwvbGk+Jyk7CiAgICAgICAgbGkuYXBwZW5kKGEpOwogICAgICAgIHRhYkxpc3QuYXBwZW5kKGxpKTsKICAKICAgICAgICAvLyBzZXQgaXQncyBhdHRyaWJ1dGVzCiAgICAgICAgdGFiLmF0dHIoJ3JvbGUnLCAndGFicGFuZWwnKTsKICAgICAgICB0YWIuYWRkQ2xhc3MoJ3RhYi1wYW5lJyk7CiAgICAgICAgdGFiLmFkZENsYXNzKCd0YWJiZWQtcGFuZScpOwogICAgICAgIGlmIChmYWRlKQogICAgICAgICAgdGFiLmFkZENsYXNzKCdmYWRlJyk7CiAgCiAgICAgICAgLy8gbW92ZSBpdCBpbnRvIHRoZSB0YWIgY29udGVudCBkaXYKICAgICAgICB0YWIuZGV0YWNoKCkuYXBwZW5kVG8odGFiQ29udGVudCk7CiAgICAgIH0pOwogIAogICAgICAvLyBzZXQgYWN0aXZlIHRhYgogICAgICAkKHRhYkxpc3QuY2hpbGRyZW4oJ2xpJylbYWN0aXZlVGFiXSkuYWRkQ2xhc3MoJ2FjdGl2ZScpOwogICAgICB2YXIgYWN0aXZlID0gJCh0YWJDb250ZW50LmNoaWxkcmVuKCdkaXYuc2VjdGlvbicpW2FjdGl2ZVRhYl0pOwogICAgICBhY3RpdmUuYWRkQ2xhc3MoJ2FjdGl2ZScpOwogICAgICBpZiAoZmFkZSkKICAgICAgICBhY3RpdmUuYWRkQ2xhc3MoJ2luJyk7CiAgCiAgICAgIGlmICh0YWJzZXQuaGFzQ2xhc3MoInRhYnNldC1zdGlja3kiKSkKICAgICAgICB0YWJzZXQucm1hcmtkb3duU3RpY2t5VGFicygpOwogICAgfQogIAogICAgLy8gY29udmVydCBzZWN0aW9uIGRpdnMgd2l0aCB0aGUgLnRhYnNldCBjbGFzcyB0byB0YWJzZXRzCiAgICB2YXIgdGFic2V0cyA9ICQoImRpdi5zZWN0aW9uLnRhYnNldCIpOwogICAgdGFic2V0cy5lYWNoKGZ1bmN0aW9uKGkpIHsKICAgICAgYnVpbGRUYWJzZXQoJCh0YWJzZXRzW2ldKSk7CiAgICB9KTsKICB9OwogIAogIA==" ></script>
+ <style type="text/css">
+/* tabsets */
+
+.tabset-dropdown>.nav-tabs {
+ display: inline-table;
+ max-height: 500px;
+ min-height: 44px;
+ overflow-y: auto;
+ border: 1px solid #ddd;
+ border-radius: 4px;
+ }
+
+ .tabset-dropdown>.nav-tabs>li.active:before {
+ content: "▼";
+ font-family: 'Glyphicons Halflings';
+ display: inline-block;
+ padding: 10px;
+ border-right: 1px solid #ddd;
+ }
+
+ .tabset-dropdown>.nav-tabs.nav-tabs-open>li.active:before {
+ content: "➤";
+ border: none;
+ }
+
+ .tabset-dropdown>.nav-tabs.nav-tabs-open:before {
+ content: "▼";
+ font-family: 'Glyphicons Halflings';
+ display: inline-block;
+ padding: 10px;
+ border-right: 1px solid #ddd;
+ }
+
+ .tabset-dropdown>.nav-tabs>li.active {
+ display: block;
+ }
+
+ .tabset-dropdown>.nav-tabs>li>a,
+ .tabset-dropdown>.nav-tabs>li>a:focus,
+ .tabset-dropdown>.nav-tabs>li>a:hover {
+ border: none;
+ display: inline-block;
+ border-radius: 4px;
+ background-color: transparent;
+ }
+
+ .tabset-dropdown>.nav-tabs.nav-tabs-open>li {
+ display: block;
+ float: none;
+ }
+
+ .tabset-dropdown>.nav-tabs>li {
+ display: none;
+ }</style>
+
+
+ <!-- MathJax -->
+ <!-- Load mathjax -->
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS_CHTML-full,Safe"> </script>
+ <!-- MathJax configuration -->
+ <script type="text/x-mathjax-config">
+ init_mathjax = function() {
+ if (window.MathJax) {
+ // MathJax loaded
+ MathJax.Hub.Config({
+ TeX: {
+ equationNumbers: {
+ autoNumber: "AMS",
+ useLabelIds: true
+ }
+ },
+ tex2jax: {
+ inlineMath: [ ['$','$'], ["\\(","\\)"] ],
+ displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
+ processEscapes: true,
+ processEnvironments: true
+ },
+ displayAlign: 'center',
+ CommonHTML: {
+ linebreaks: {
+ automatic: true
+ }
+ }
+ });
+
+ MathJax.Hub.Queue(["Typeset", MathJax.Hub]);
+ }
+ }
+ init_mathjax();
+ </script>
+ <!-- End of mathjax configuration -->
+
+ <!-- plotly -->
+
+ <script src="data:application/javascript;base64,LyoqCiogcGxvdGx5LmpzIHYyLjEzLjMKKiBDb3B5cmlnaHQgMjAxMi0yMDIyLCBQbG90bHksIEluYy4KKiBBbGwgcmlnaHRzIHJlc2VydmVkLgoqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZQoqLwohZnVuY3Rpb24odCl7aWYoIm9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZSltb2R1bGUuZXhwb3J0cz10KCk7ZWxzZSBpZigiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kKWRlZmluZShbXSx0KTtlbHNleygidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOnRoaXMpLlBsb3RseT10KCl9fSgoZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gdChlLHIsbil7ZnVuY3Rpb24gaShvLHMpe2lmKCFyW29dKXtpZighZVtvXSl7dmFyIGw9ImZ1bmN0aW9uIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmU7aWYoIXMmJmwpcmV0dXJuIGwobywhMCk7aWYoYSlyZXR1cm4gYShvLCEwKTt2YXIgYz1uZXcgRXJyb3IoIkNhbm5vdCBmaW5kIG1vZHVsZSAnIitvKyInIik7dGhyb3cgYy5jb2RlPSJNT0RVTEVfTk9UX0ZPVU5EIixjfXZhciB1PXJbb109e2V4cG9ydHM6e319O2Vbb11bMF0uY2FsbCh1LmV4cG9ydHMsKGZ1bmN0aW9uKHQpe3JldHVybiBpKGVbb11bMV1bdF18fHQpfSksdSx1LmV4cG9ydHMsdCxlLHIsbil9cmV0dXJuIHJbb10uZXhwb3J0c31mb3IodmFyIGE9ImZ1bmN0aW9uIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmUsbz0wO288bi5sZW5ndGg7bysrKWkobltvXSk7cmV0dXJuIGl9KHsxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NyYy9saWIiKSxpPXsiWCxYIGRpdiI6J2RpcmVjdGlvbjpsdHI7Zm9udC1mYW1pbHk6Ik9wZW4gU2FucyIsdmVyZGFuYSxhcmlhbCxzYW5zLXNlcmlmO21hcmdpbjowO3BhZGRpbmc6MDsnLCJYIGlucHV0LFggYnV0dG9uIjonZm9udC1mYW1pbHk6Ik9wZW4gU2FucyIsdmVyZGFuYSxhcmlhbCxzYW5zLXNlcmlmOycsIlggaW5wdXQ6Zm9jdXMsWCBidXR0b246Zm9jdXMiOiJvdXRsaW5lOm5vbmU7IiwiWCBhIjoidGV4dC1kZWNvcmF0aW9uOm5vbmU7IiwiWCBhOmhvdmVyIjoidGV4dC1kZWNvcmF0aW9uOm5vbmU7IiwiWCAuY3Jpc3AiOiJzaGFwZS1yZW5kZXJpbmc6Y3Jpc3BFZGdlczsiLCJYIC51c2VyLXNlbGVjdC1ub25lIjoiLXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTstby11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7IiwiWCBzdmciOiJvdmVyZmxvdzpoaWRkZW47IiwiWCBzdmcgYSI6ImZpbGw6IzQ0N2FkYjsiLCJYIHN2ZyBhOmhvdmVyIjoiZmlsbDojM2M2ZGM1OyIsIlggLm1haW4tc3ZnIjoicG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3BvaW50ZXItZXZlbnRzOm5vbmU7IiwiWCAubWFpbi1zdmcgLmRyYWdsYXllciI6InBvaW50ZXItZXZlbnRzOmFsbDsiLCJYIC5jdXJzb3ItZGVmYXVsdCI6ImN1cnNvcjpkZWZhdWx0OyIsIlggLmN1cnNvci1wb2ludGVyIjoiY3Vyc29yOnBvaW50ZXI7IiwiWCAuY3Vyc29yLWNyb3NzaGFpciI6ImN1cnNvcjpjcm9zc2hhaXI7IiwiWCAuY3Vyc29yLW1vdmUiOiJjdXJzb3I6bW92ZTsiLCJYIC5jdXJzb3ItY29sLXJlc2l6ZSI6ImN1cnNvcjpjb2wtcmVzaXplOyIsIlggLmN1cnNvci1yb3ctcmVzaXplIjoiY3Vyc29yOnJvdy1yZXNpemU7IiwiWCAuY3Vyc29yLW5zLXJlc2l6ZSI6ImN1cnNvcjpucy1yZXNpemU7IiwiWCAuY3Vyc29yLWV3LXJlc2l6ZSI6ImN1cnNvcjpldy1yZXNpemU7IiwiWCAuY3Vyc29yLXN3LXJlc2l6ZSI6ImN1cnNvcjpzdy1yZXNpemU7IiwiWCAuY3Vyc29yLXMtcmVzaXplIjoiY3Vyc29yOnMtcmVzaXplOyIsIlggLmN1cnNvci1zZS1yZXNpemUiOiJjdXJzb3I6c2UtcmVzaXplOyIsIlggLmN1cnNvci13LXJlc2l6ZSI6ImN1cnNvcjp3LXJlc2l6ZTsiLCJYIC5jdXJzb3ItZS1yZXNpemUiOiJjdXJzb3I6ZS1yZXNpemU7IiwiWCAuY3Vyc29yLW53LXJlc2l6ZSI6ImN1cnNvcjpudy1yZXNpemU7IiwiWCAuY3Vyc29yLW4tcmVzaXplIjoiY3Vyc29yOm4tcmVzaXplOyIsIlggLmN1cnNvci1uZS1yZXNpemUiOiJjdXJzb3I6bmUtcmVzaXplOyIsIlggLmN1cnNvci1ncmFiIjoiY3Vyc29yOi13ZWJraXQtZ3JhYjtjdXJzb3I6Z3JhYjsiLCJYIC5tb2RlYmFyIjoicG9zaXRpb246YWJzb2x1dGU7dG9wOjJweDtyaWdodDoycHg7IiwiWCAuZWFzZS1iZyI6Ii13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4zcyBlYXNlIDBzOy1tb3otdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4zcyBlYXNlIDBzOy1tcy10cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjNzIGVhc2UgMHM7LW8tdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4zcyBlYXNlIDBzO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuM3MgZWFzZSAwczsiLCJYIC5tb2RlYmFyLS1ob3Zlcj46bm90KC53YXRlcm1hcmspIjoib3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4zcyBlYXNlIDBzOy1tb3otdHJhbnNpdGlvbjpvcGFjaXR5IC4zcyBlYXNlIDBzOy1tcy10cmFuc2l0aW9uOm9wYWNpdHkgLjNzIGVhc2UgMHM7LW8tdHJhbnNpdGlvbjpvcGFjaXR5IC4zcyBlYXNlIDBzO3RyYW5zaXRpb246b3BhY2l0eSAuM3MgZWFzZSAwczsiLCJYOmhvdmVyIC5tb2RlYmFyLS1ob3ZlciAubW9kZWJhci1ncm91cCI6Im9wYWNpdHk6MTsiLCJYIC5tb2RlYmFyLWdyb3VwIjoiZmxvYXQ6bGVmdDtkaXNwbGF5OmlubGluZS1ibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3g7cGFkZGluZy1sZWZ0OjhweDtwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7d2hpdGUtc3BhY2U6bm93cmFwOyIsIlggLm1vZGViYXItYnRuIjoicG9zaXRpb246cmVsYXRpdmU7Zm9udC1zaXplOjE2cHg7cGFkZGluZzozcHggNHB4O2hlaWdodDoyMnB4O2N1cnNvcjpwb2ludGVyO2xpbmUtaGVpZ2h0Om5vcm1hbDtib3gtc2l6aW5nOmJvcmRlci1ib3g7IiwiWCAubW9kZWJhci1idG4gc3ZnIjoicG9zaXRpb246cmVsYXRpdmU7dG9wOjJweDsiLCJYIC5tb2RlYmFyLnZlcnRpY2FsIjoiZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LXdyYXA6d3JhcDthbGlnbi1jb250ZW50OmZsZXgtZW5kO21heC1oZWlnaHQ6MTAwJTsiLCJYIC5tb2RlYmFyLnZlcnRpY2FsIHN2ZyI6InRvcDotMXB4OyIsIlggLm1vZGViYXIudmVydGljYWwgLm1vZGViYXItZ3JvdXAiOiJkaXNwbGF5OmJsb2NrO2Zsb2F0Om5vbmU7cGFkZGluZy1sZWZ0OjBweDtwYWRkaW5nLWJvdHRvbTo4cHg7IiwiWCAubW9kZWJhci52ZXJ0aWNhbCAubW9kZWJhci1ncm91cCAubW9kZWJhci1idG4iOiJkaXNwbGF5OmJsb2NrO3RleHQtYWxpZ246Y2VudGVyOyIsIlggW2RhdGEtdGl0bGVdOmJlZm9yZSxYIFtkYXRhLXRpdGxlXTphZnRlciI6InBvc2l0aW9uOmFic29sdXRlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIDAsIDApOy1tb3otdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIDAsIDApOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwgMCwgMCk7LW8tdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIDAsIDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLCAwLCAwKTtkaXNwbGF5Om5vbmU7b3BhY2l0eTowO3otaW5kZXg6MTAwMTtwb2ludGVyLWV2ZW50czpub25lO3RvcDoxMTAlO3JpZ2h0OjUwJTsiLCJYIFtkYXRhLXRpdGxlXTpob3ZlcjpiZWZvcmUsWCBbZGF0YS10aXRsZV06aG92ZXI6YWZ0ZXIiOiJkaXNwbGF5OmJsb2NrO29wYWNpdHk6MTsiLCJYIFtkYXRhLXRpdGxlXTpiZWZvcmUiOidjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwKTtib3JkZXI6NnB4IHNvbGlkIHJnYmEoMCwwLDAsMCk7ei1pbmRleDoxMDAyO21hcmdpbi10b3A6LTEycHg7Ym9yZGVyLWJvdHRvbS1jb2xvcjojNjk3MzhhO21hcmdpbi1yaWdodDotNnB4OycsIlggW2RhdGEtdGl0bGVdOmFmdGVyIjoiY29udGVudDphdHRyKGRhdGEtdGl0bGUpO2JhY2tncm91bmQ6IzY5NzM4YTtjb2xvcjojZmZmO3BhZGRpbmc6OHB4IDEwcHg7Zm9udC1zaXplOjEycHg7bGluZS1oZWlnaHQ6MTJweDt3aGl0ZS1zcGFjZTpub3dyYXA7bWFyZ2luLXJpZ2h0Oi0xOHB4O2JvcmRlci1yYWRpdXM6MnB4OyIsIlggLnZlcnRpY2FsIFtkYXRhLXRpdGxlXTpiZWZvcmUsWCAudmVydGljYWwgW2RhdGEtdGl0bGVdOmFmdGVyIjoidG9wOjAlO3JpZ2h0OjIwMCU7IiwiWCAudmVydGljYWwgW2RhdGEtdGl0bGVdOmJlZm9yZSI6ImJvcmRlcjo2cHggc29saWQgcmdiYSgwLDAsMCwwKTtib3JkZXItbGVmdC1jb2xvcjojNjk3MzhhO21hcmdpbi10b3A6OHB4O21hcmdpbi1yaWdodDotMzBweDsiLFk6J2ZvbnQtZmFtaWx5OiJPcGVuIFNhbnMiLHZlcmRhbmEsYXJpYWwsc2Fucy1zZXJpZjtwb3NpdGlvbjpmaXhlZDt0b3A6NTBweDtyaWdodDoyMHB4O3otaW5kZXg6MTAwMDA7Zm9udC1zaXplOjEwcHQ7bWF4LXdpZHRoOjE4MHB4OycsIlkgcCI6Im1hcmdpbjowOyIsIlkgLm5vdGlmaWVyLW5vdGUiOiJtaW4td2lkdGg6MTgwcHg7bWF4LXdpZHRoOjI1MHB4O2JvcmRlcjoxcHggc29saWQgI2ZmZjt6LWluZGV4OjMwMDA7bWFyZ2luOjA7YmFja2dyb3VuZC1jb2xvcjojOGM5N2FmO2JhY2tncm91bmQtY29sb3I6cmdiYSgxNDAsMTUxLDE3NSwuOSk7Y29sb3I6I2ZmZjtwYWRkaW5nOjEwcHg7b3ZlcmZsb3ctd3JhcDpicmVhay13b3JkO3dvcmQtd3JhcDpicmVhay13b3JkOy1tcy1oeXBoZW5zOmF1dG87LXdlYmtpdC1oeXBoZW5zOmF1dG87aHlwaGVuczphdXRvOyIsIlkgLm5vdGlmaWVyLWNsb3NlIjoiY29sb3I6I2ZmZjtvcGFjaXR5Oi44O2Zsb2F0OnJpZ2h0O3BhZGRpbmc6MCA1cHg7YmFja2dyb3VuZDpub25lO2JvcmRlcjpub25lO2ZvbnQtc2l6ZToyMHB4O2ZvbnQtd2VpZ2h0OmJvbGQ7bGluZS1oZWlnaHQ6MjBweDsiLCJZIC5ub3RpZmllci1jbG9zZTpob3ZlciI6ImNvbG9yOiM0NDQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y3Vyc29yOnBvaW50ZXI7In07Zm9yKHZhciBhIGluIGkpe3ZhciBvPWEucmVwbGFjZSgvXiwvLCIgLCIpLnJlcGxhY2UoL1gvZywiLmpzLXBsb3RseS1wbG90IC5wbG90bHkiKS5yZXBsYWNlKC9ZL2csIi5wbG90bHktbm90aWZpZXIiKTtuLmFkZFN0eWxlUnVsZShvLGlbYV0pfX0seyIuLi9zcmMvbGliIjo1MTV9XSwyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhbnNmb3Jtcy9hZ2dyZWdhdGUiKX0seyIuLi9zcmMvdHJhbnNmb3Jtcy9hZ2dyZWdhdGUiOjExMjd9XSwzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL2JhciIpfSx7Ii4uL3NyYy90cmFjZXMvYmFyIjo2NjV9XSw0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL2JhcnBvbGFyIil9LHsiLi4vc3JjL3RyYWNlcy9iYXJwb2xhciI6Njc4fV0sNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9ib3giKX0seyIuLi9zcmMvdHJhY2VzL2JveCI6Njg4fV0sNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL2NvbXBvbmVudHMvY2FsZW5kYXJzIil9LHsiLi4vc3JjL2NvbXBvbmVudHMvY2FsZW5kYXJzIjozNjV9XSw3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL2NhbmRsZXN0aWNrIil9LHsiLi4vc3JjL3RyYWNlcy9jYW5kbGVzdGljayI6Njk3fV0sODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9jYXJwZXQiKX0seyIuLi9zcmMvdHJhY2VzL2NhcnBldCI6NzE2fV0sOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9jaG9yb3BsZXRoIil9LHsiLi4vc3JjL3RyYWNlcy9jaG9yb3BsZXRoIjo3MzB9XSwxMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9jaG9yb3BsZXRobWFwYm94Iil9LHsiLi4vc3JjL3RyYWNlcy9jaG9yb3BsZXRobWFwYm94Ijo3Mzd9XSwxMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9jb25lIil9LHsiLi4vc3JjL3RyYWNlcy9jb25lIjo3NDN9XSwxMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9jb250b3VyIil9LHsiLi4vc3JjL3RyYWNlcy9jb250b3VyIjo3NTh9XSwxMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9jb250b3VyY2FycGV0Iil9LHsiLi4vc3JjL3RyYWNlcy9jb250b3VyY2FycGV0Ijo3Njl9XSwxNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL2NvcmUiKX0seyIuLi9zcmMvY29yZSI6NDkzfV0sMTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvZGVuc2l0eW1hcGJveCIpfSx7Ii4uL3NyYy90cmFjZXMvZGVuc2l0eW1hcGJveCI6Nzc3fV0sMTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFuc2Zvcm1zL2ZpbHRlciIpfSx7Ii4uL3NyYy90cmFuc2Zvcm1zL2ZpbHRlciI6MTEyOH1dLDE3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL2Z1bm5lbCIpfSx7Ii4uL3NyYy90cmFjZXMvZnVubmVsIjo3ODd9XSwxODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9mdW5uZWxhcmVhIil9LHsiLi4vc3JjL3RyYWNlcy9mdW5uZWxhcmVhIjo3OTZ9XSwxOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYW5zZm9ybXMvZ3JvdXBieSIpfSx7Ii4uL3NyYy90cmFuc2Zvcm1zL2dyb3VwYnkiOjExMjl9XSwyMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9oZWF0bWFwIil9LHsiLi4vc3JjL3RyYWNlcy9oZWF0bWFwIjo4MDl9XSwyMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9oZWF0bWFwZ2wiKX0seyIuLi9zcmMvdHJhY2VzL2hlYXRtYXBnbCI6ODIwfV0sMjI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvaGlzdG9ncmFtIil9LHsiLi4vc3JjL3RyYWNlcy9oaXN0b2dyYW0iOjgzMn1dLDIzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL2hpc3RvZ3JhbTJkIil9LHsiLi4vc3JjL3RyYWNlcy9oaXN0b2dyYW0yZCI6ODM4fV0sMjQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvaGlzdG9ncmFtMmRjb250b3VyIil9LHsiLi4vc3JjL3RyYWNlcy9oaXN0b2dyYW0yZGNvbnRvdXIiOjg0Mn1dLDI1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL2ljaWNsZSIpfSx7Ii4uL3NyYy90cmFjZXMvaWNpY2xlIjo4NDh9XSwyNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9pbWFnZSIpfSx7Ii4uL3NyYy90cmFjZXMvaW1hZ2UiOjg2MX1dLDI3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vY29yZSIpO24ucmVnaXN0ZXIoW3QoIi4vYmFyIiksdCgiLi9ib3giKSx0KCIuL2hlYXRtYXAiKSx0KCIuL2hpc3RvZ3JhbSIpLHQoIi4vaGlzdG9ncmFtMmQiKSx0KCIuL2hpc3RvZ3JhbTJkY29udG91ciIpLHQoIi4vY29udG91ciIpLHQoIi4vc2NhdHRlcnRlcm5hcnkiKSx0KCIuL3Zpb2xpbiIpLHQoIi4vZnVubmVsIiksdCgiLi93YXRlcmZhbGwiKSx0KCIuL2ltYWdlIiksdCgiLi9waWUiKSx0KCIuL3N1bmJ1cnN0IiksdCgiLi90cmVlbWFwIiksdCgiLi9pY2ljbGUiKSx0KCIuL2Z1bm5lbGFyZWEiKSx0KCIuL3NjYXR0ZXIzZCIpLHQoIi4vc3VyZmFjZSIpLHQoIi4vaXNvc3VyZmFjZSIpLHQoIi4vdm9sdW1lIiksdCgiLi9tZXNoM2QiKSx0KCIuL2NvbmUiKSx0KCIuL3N0cmVhbXR1YmUiKSx0KCIuL3NjYXR0ZXJnZW8iKSx0KCIuL2Nob3JvcGxldGgiKSx0KCIuL3NjYXR0ZXJnbCIpLHQoIi4vc3Bsb20iKSx0KCIuL3BvaW50Y2xvdWQiKSx0KCIuL2hlYXRtYXBnbCIpLHQoIi4vcGFyY29vcmRzIiksdCgiLi9wYXJjYXRzIiksdCgiLi9zY2F0dGVybWFwYm94IiksdCgiLi9jaG9yb3BsZXRobWFwYm94IiksdCgiLi9kZW5zaXR5bWFwYm94IiksdCgiLi9zYW5rZXkiKSx0KCIuL2luZGljYXRvciIpLHQoIi4vdGFibGUiKSx0KCIuL2NhcnBldCIpLHQoIi4vc2NhdHRlcmNhcnBldCIpLHQoIi4vY29udG91cmNhcnBldCIpLHQoIi4vb2hsYyIpLHQoIi4vY2FuZGxlc3RpY2siKSx0KCIuL3NjYXR0ZXJwb2xhciIpLHQoIi4vc2NhdHRlcnBvbGFyZ2wiKSx0KCIuL2JhcnBvbGFyIiksdCgiLi9zY2F0dGVyc21pdGgiKSx0KCIuL2FnZ3JlZ2F0ZSIpLHQoIi4vZmlsdGVyIiksdCgiLi9ncm91cGJ5IiksdCgiLi9zb3J0IiksdCgiLi9jYWxlbmRhcnMiKV0pLGUuZXhwb3J0cz1ufSx7Ii4vYWdncmVnYXRlIjoyLCIuL2JhciI6MywiLi9iYXJwb2xhciI6NCwiLi9ib3giOjUsIi4vY2FsZW5kYXJzIjo2LCIuL2NhbmRsZXN0aWNrIjo3LCIuL2NhcnBldCI6OCwiLi9jaG9yb3BsZXRoIjo5LCIuL2Nob3JvcGxldGhtYXBib3giOjEwLCIuL2NvbmUiOjExLCIuL2NvbnRvdXIiOjEyLCIuL2NvbnRvdXJjYXJwZXQiOjEzLCIuL2NvcmUiOjE0LCIuL2RlbnNpdHltYXBib3giOjE1LCIuL2ZpbHRlciI6MTYsIi4vZnVubmVsIjoxNywiLi9mdW5uZWxhcmVhIjoxOCwiLi9ncm91cGJ5IjoxOSwiLi9oZWF0bWFwIjoyMCwiLi9oZWF0bWFwZ2wiOjIxLCIuL2hpc3RvZ3JhbSI6MjIsIi4vaGlzdG9ncmFtMmQiOjIzLCIuL2hpc3RvZ3JhbTJkY29udG91ciI6MjQsIi4vaWNpY2xlIjoyNSwiLi9pbWFnZSI6MjYsIi4vaW5kaWNhdG9yIjoyOCwiLi9pc29zdXJmYWNlIjoyOSwiLi9tZXNoM2QiOjMwLCIuL29obGMiOjMxLCIuL3BhcmNhdHMiOjMyLCIuL3BhcmNvb3JkcyI6MzMsIi4vcGllIjozNCwiLi9wb2ludGNsb3VkIjozNSwiLi9zYW5rZXkiOjM2LCIuL3NjYXR0ZXIzZCI6MzcsIi4vc2NhdHRlcmNhcnBldCI6MzgsIi4vc2NhdHRlcmdlbyI6MzksIi4vc2NhdHRlcmdsIjo0MCwiLi9zY2F0dGVybWFwYm94Ijo0MSwiLi9zY2F0dGVycG9sYXIiOjQyLCIuL3NjYXR0ZXJwb2xhcmdsIjo0MywiLi9zY2F0dGVyc21pdGgiOjQ0LCIuL3NjYXR0ZXJ0ZXJuYXJ5Ijo0NSwiLi9zb3J0Ijo0NiwiLi9zcGxvbSI6NDcsIi4vc3RyZWFtdHViZSI6NDgsIi4vc3VuYnVyc3QiOjQ5LCIuL3N1cmZhY2UiOjUwLCIuL3RhYmxlIjo1MSwiLi90cmVlbWFwIjo1MiwiLi92aW9saW4iOjUzLCIuL3ZvbHVtZSI6NTQsIi4vd2F0ZXJmYWxsIjo1NX1dLDI4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL2luZGljYXRvciIpfSx7Ii4uL3NyYy90cmFjZXMvaW5kaWNhdG9yIjo4Njl9XSwyOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9pc29zdXJmYWNlIil9LHsiLi4vc3JjL3RyYWNlcy9pc29zdXJmYWNlIjo4NzV9XSwzMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9tZXNoM2QiKX0seyIuLi9zcmMvdHJhY2VzL21lc2gzZCI6ODgwfV0sMzE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvb2hsYyIpfSx7Ii4uL3NyYy90cmFjZXMvb2hsYyI6ODg1fV0sMzI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvcGFyY2F0cyIpfSx7Ii4uL3NyYy90cmFjZXMvcGFyY2F0cyI6ODk0fV0sMzM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvcGFyY29vcmRzIil9LHsiLi4vc3JjL3RyYWNlcy9wYXJjb29yZHMiOjkwNX1dLDM0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL3BpZSIpfSx7Ii4uL3NyYy90cmFjZXMvcGllIjo5MTZ9XSwzNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9wb2ludGNsb3VkIil9LHsiLi4vc3JjL3RyYWNlcy9wb2ludGNsb3VkIjo5MjV9XSwzNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9zYW5rZXkiKX0seyIuLi9zcmMvdHJhY2VzL3NhbmtleSI6OTMxfV0sMzc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvc2NhdHRlcjNkIil9LHsiLi4vc3JjL3RyYWNlcy9zY2F0dGVyM2QiOjk2OX1dLDM4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL3NjYXR0ZXJjYXJwZXQiKX0seyIuLi9zcmMvdHJhY2VzL3NjYXR0ZXJjYXJwZXQiOjk3Nn1dLDM5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL3NjYXR0ZXJnZW8iKX0seyIuLi9zcmMvdHJhY2VzL3NjYXR0ZXJnZW8iOjk4NH1dLDQwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL3NjYXR0ZXJnbCIpfSx7Ii4uL3NyYy90cmFjZXMvc2NhdHRlcmdsIjo5OTh9XSw0MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9zY2F0dGVybWFwYm94Iil9LHsiLi4vc3JjL3RyYWNlcy9zY2F0dGVybWFwYm94IjoxMDA4fV0sNDI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvc2NhdHRlcnBvbGFyIil9LHsiLi4vc3JjL3RyYWNlcy9zY2F0dGVycG9sYXIiOjEwMTZ9XSw0MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9zY2F0dGVycG9sYXJnbCIpfSx7Ii4uL3NyYy90cmFjZXMvc2NhdHRlcnBvbGFyZ2wiOjEwMjR9XSw0NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9zY2F0dGVyc21pdGgiKX0seyIuLi9zcmMvdHJhY2VzL3NjYXR0ZXJzbWl0aCI6MTAzMX1dLDQ1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL3NjYXR0ZXJ0ZXJuYXJ5Iil9LHsiLi4vc3JjL3RyYWNlcy9zY2F0dGVydGVybmFyeSI6MTAzOX1dLDQ2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhbnNmb3Jtcy9zb3J0Iil9LHsiLi4vc3JjL3RyYW5zZm9ybXMvc29ydCI6MTEzMX1dLDQ3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL3NwbG9tIil9LHsiLi4vc3JjL3RyYWNlcy9zcGxvbSI6MTA0OX1dLDQ4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL3N0cmVhbXR1YmUiKX0seyIuLi9zcmMvdHJhY2VzL3N0cmVhbXR1YmUiOjEwNTd9XSw0OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9zdW5idXJzdCIpfSx7Ii4uL3NyYy90cmFjZXMvc3VuYnVyc3QiOjEwNjV9XSw1MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9zdXJmYWNlIil9LHsiLi4vc3JjL3RyYWNlcy9zdXJmYWNlIjoxMDc0fV0sNTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvdGFibGUiKX0seyIuLi9zcmMvdHJhY2VzL3RhYmxlIjoxMDgyfV0sNTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvdHJlZW1hcCIpfSx7Ii4uL3NyYy90cmFjZXMvdHJlZW1hcCI6MTA5M31dLDUzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL3Zpb2xpbiIpfSx7Ii4uL3NyYy90cmFjZXMvdmlvbGluIjoxMTA2fV0sNTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvdm9sdW1lIil9LHsiLi4vc3JjL3RyYWNlcy92b2x1bWUiOjExMTR9XSw1NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy93YXRlcmZhbGwiKX0seyIuLi9zcmMvdHJhY2VzL3dhdGVyZmFsbCI6MTEyMn1dLDU2OltmdW5jdGlvbih0LGUscil7IWZ1bmN0aW9uKG4saSl7Im9iamVjdCI9PXR5cGVvZiByJiZ2b2lkIDAhPT1lP2kocix0KCJkMy1hcnJheSIpLHQoImQzLWNvbGxlY3Rpb24iKSx0KCJkMy1zaGFwZSIpLHQoImVsZW1lbnRhcnktY2lyY3VpdHMtZGlyZWN0ZWQtZ3JhcGgiKSk6aShuLmQzPW4uZDN8fHt9LG4uZDMsbi5kMyxuLmQzLG51bGwpfSh0aGlzLChmdW5jdGlvbih0LGUscixuLGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBhKHQpe3JldHVybiB0LnRhcmdldC5kZXB0aH1mdW5jdGlvbiBvKHQsZSl7cmV0dXJuIHQuc291cmNlTGlua3MubGVuZ3RoP3QuZGVwdGg6ZS0xfWZ1bmN0aW9uIHModCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWk9aSYmaS5oYXNPd25Qcm9wZXJ0eSgiZGVmYXVsdCIpP2kuZGVmYXVsdDppO3ZhciBsPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fTtmdW5jdGlvbiBjKHQsZSl7cmV0dXJuIGYodC5zb3VyY2UsZS5zb3VyY2UpfHx0LmluZGV4LWUuaW5kZXh9ZnVuY3Rpb24gdSh0LGUpe3JldHVybiBmKHQudGFyZ2V0LGUudGFyZ2V0KXx8dC5pbmRleC1lLmluZGV4fWZ1bmN0aW9uIGYodCxlKXtyZXR1cm4gdC5wYXJ0T2ZDeWNsZT09PWUucGFydE9mQ3ljbGU/dC55MC1lLnkwOiJ0b3AiPT09dC5jaXJjdWxhckxpbmtUeXBlfHwiYm90dG9tIj09PWUuY2lyY3VsYXJMaW5rVHlwZT8tMToxfWZ1bmN0aW9uIGgodCl7cmV0dXJuIHQudmFsdWV9ZnVuY3Rpb24gcCh0KXtyZXR1cm4odC55MCt0LnkxKS8yfWZ1bmN0aW9uIGQodCl7cmV0dXJuIHAodC5zb3VyY2UpfWZ1bmN0aW9uIG0odCl7cmV0dXJuIHAodC50YXJnZXQpfWZ1bmN0aW9uIGcodCl7cmV0dXJuIHQuaW5kZXh9ZnVuY3Rpb24gdih0KXtyZXR1cm4gdC5ub2Rlc31mdW5jdGlvbiB5KHQpe3JldHVybiB0LmxpbmtzfWZ1bmN0aW9uIHgodCxlKXt2YXIgcj10LmdldChlKTtpZighcil0aHJvdyBuZXcgRXJyb3IoIm1pc3Npbmc6ICIrZSk7cmV0dXJuIHJ9ZnVuY3Rpb24gYih0LGUpe3JldHVybiBlKHQpfWZ1bmN0aW9uIF8odCxlLHIpe3ZhciBuPTA7aWYobnVsbD09PXIpe2Zvcih2YXIgYT1bXSxvPTA7bzx0LmxpbmtzLmxlbmd0aDtvKyspe3ZhciBzPXQubGlua3Nbb10sbD1zLnNvdXJjZS5pbmRleCxjPXMudGFyZ2V0LmluZGV4O2FbbF18fChhW2xdPVtdKSxhW2NdfHwoYVtjXT1bXSksLTE9PT1hW2xdLmluZGV4T2YoYykmJmFbbF0ucHVzaChjKX12YXIgdT1pKGEpO3Uuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5sZW5ndGgtZS5sZW5ndGh9KSk7dmFyIGY9e307Zm9yKG89MDtvPHUubGVuZ3RoO28rKyl7dmFyIGg9dVtvXS5zbGljZSgtMik7ZltoWzBdXXx8KGZbaFswXV09e30pLGZbaFswXV1baFsxXV09ITB9dC5saW5rcy5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT10LnRhcmdldC5pbmRleCxyPXQuc291cmNlLmluZGV4O2U9PT1yfHxmW3JdJiZmW3JdW2VdPyh0LmNpcmN1bGFyPSEwLHQuY2lyY3VsYXJMaW5rSUQ9bixuKz0xKTp0LmNpcmN1bGFyPSExfSkpfWVsc2UgdC5saW5rcy5mb3JFYWNoKChmdW5jdGlvbih0KXt0LnNvdXJjZVtyXTx0LnRhcmdldFtyXT90LmNpcmN1bGFyPSExOih0LmNpcmN1bGFyPSEwLHQuY2lyY3VsYXJMaW5rSUQ9bixuKz0xKX0pKX1mdW5jdGlvbiB3KHQsZSl7dmFyIHI9MCxuPTA7dC5saW5rcy5mb3JFYWNoKChmdW5jdGlvbihpKXtpLmNpcmN1bGFyJiYoaS5zb3VyY2UuY2lyY3VsYXJMaW5rVHlwZXx8aS50YXJnZXQuY2lyY3VsYXJMaW5rVHlwZT9pLmNpcmN1bGFyTGlua1R5cGU9aS5zb3VyY2UuY2lyY3VsYXJMaW5rVHlwZT9pLnNvdXJjZS5jaXJjdWxhckxpbmtUeXBlOmkudGFyZ2V0LmNpcmN1bGFyTGlua1R5cGU6aS5jaXJjdWxhckxpbmtUeXBlPXI8bj8idG9wIjoiYm90dG9tIiwidG9wIj09aS5jaXJjdWxhckxpbmtUeXBlP3IrPTE6bis9MSx0Lm5vZGVzLmZvckVhY2goKGZ1bmN0aW9uKHQpe2IodCxlKSE9YihpLnNvdXJjZSxlKSYmYih0LGUpIT1iKGkudGFyZ2V0LGUpfHwodC5jaXJjdWxhckxpbmtUeXBlPWkuY2lyY3VsYXJMaW5rVHlwZSl9KSkpfSkpLHQubGlua3MuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5jaXJjdWxhciYmKHQuc291cmNlLmNpcmN1bGFyTGlua1R5cGU9PXQudGFyZ2V0LmNpcmN1bGFyTGlua1R5cGUmJih0LmNpcmN1bGFyTGlua1R5cGU9dC5zb3VyY2UuY2lyY3VsYXJMaW5rVHlwZSkscSh0LGUpJiYodC5jaXJjdWxhckxpbmtUeXBlPXQuc291cmNlLmNpcmN1bGFyTGlua1R5cGUpKX0pKX1mdW5jdGlvbiBUKHQpe3ZhciBlPU1hdGguYWJzKHQueTEtdC55MCkscj1NYXRoLmFicyh0LnRhcmdldC54MC10LnNvdXJjZS54MSk7cmV0dXJuIE1hdGguYXRhbihyL2UpfWZ1bmN0aW9uIGsodCxlKXt2YXIgcj0wO3Quc291cmNlTGlua3MuZm9yRWFjaCgoZnVuY3Rpb24odCl7cj10LmNpcmN1bGFyJiYhcSh0LGUpP3IrMTpyfSkpO3ZhciBuPTA7cmV0dXJuIHQudGFyZ2V0TGlua3MuZm9yRWFjaCgoZnVuY3Rpb24odCl7bj10LmNpcmN1bGFyJiYhcSh0LGUpP24rMTpufSkpLHIrbn1mdW5jdGlvbiBBKHQpe3ZhciBlPXQuc291cmNlLnNvdXJjZUxpbmtzLHI9MDtlLmZvckVhY2goKGZ1bmN0aW9uKHQpe3I9dC5jaXJjdWxhcj9yKzE6cn0pKTt2YXIgbj10LnRhcmdldC50YXJnZXRMaW5rcyxpPTA7cmV0dXJuIG4uZm9yRWFjaCgoZnVuY3Rpb24odCl7aT10LmNpcmN1bGFyP2krMTppfSkpLCEocj4xfHxpPjEpfWZ1bmN0aW9uIE0odCxlLHIpe3JldHVybiB0LnNvcnQoRSksdC5mb3JFYWNoKChmdW5jdGlvbihuLGkpe3ZhciBhLG8scz0wO2lmKHEobixyKSYmQShuKSluLmNpcmN1bGFyUGF0aERhdGEudmVydGljYWxCdWZmZXI9cytuLndpZHRoLzI7ZWxzZXtmb3IodmFyIGw9MDtsPGk7bCsrKWlmKGE9dFtpXSxvPXRbbF0sIShhLnNvdXJjZS5jb2x1bW48by50YXJnZXQuY29sdW1ufHxhLnRhcmdldC5jb2x1bW4+by5zb3VyY2UuY29sdW1uKSl7dmFyIGM9dFtsXS5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsQnVmZmVyK3RbbF0ud2lkdGgvMitlO3M9Yz5zP2M6c31uLmNpcmN1bGFyUGF0aERhdGEudmVydGljYWxCdWZmZXI9cytuLndpZHRoLzJ9fSkpLHR9ZnVuY3Rpb24gUyh0LHIsaSxhKXt2YXIgbz1lLm1pbih0LmxpbmtzLChmdW5jdGlvbih0KXtyZXR1cm4gdC5zb3VyY2UueTB9KSk7dC5saW5rcy5mb3JFYWNoKChmdW5jdGlvbih0KXt0LmNpcmN1bGFyJiYodC5jaXJjdWxhclBhdGhEYXRhPXt9KX0pKSxNKHQubGlua3MuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4idG9wIj09dC5jaXJjdWxhckxpbmtUeXBlfSkpLHIsYSksTSh0LmxpbmtzLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuImJvdHRvbSI9PXQuY2lyY3VsYXJMaW5rVHlwZX0pKSxyLGEpLHQubGlua3MuZm9yRWFjaCgoZnVuY3Rpb24oZSl7aWYoZS5jaXJjdWxhcil7aWYoZS5jaXJjdWxhclBhdGhEYXRhLmFyY1JhZGl1cz1lLndpZHRoKzEwLGUuY2lyY3VsYXJQYXRoRGF0YS5sZWZ0Tm9kZUJ1ZmZlcj01LGUuY2lyY3VsYXJQYXRoRGF0YS5yaWdodE5vZGVCdWZmZXI9NSxlLmNpcmN1bGFyUGF0aERhdGEuc291cmNlV2lkdGg9ZS5zb3VyY2UueDEtZS5zb3VyY2UueDAsZS5jaXJjdWxhclBhdGhEYXRhLnNvdXJjZVg9ZS5zb3VyY2UueDArZS5jaXJjdWxhclBhdGhEYXRhLnNvdXJjZVdpZHRoLGUuY2lyY3VsYXJQYXRoRGF0YS50YXJnZXRYPWUudGFyZ2V0LngwLGUuY2lyY3VsYXJQYXRoRGF0YS5zb3VyY2VZPWUueTAsZS5jaXJjdWxhclBhdGhEYXRhLnRhcmdldFk9ZS55MSxxKGUsYSkmJkEoZSkpZS5jaXJjdWxhclBhdGhEYXRhLmxlZnRTbWFsbEFyY1JhZGl1cz0xMCtlLndpZHRoLzIsZS5jaXJjdWxhclBhdGhEYXRhLmxlZnRMYXJnZUFyY1JhZGl1cz0xMCtlLndpZHRoLzIsZS5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0U21hbGxBcmNSYWRpdXM9MTArZS53aWR0aC8yLGUuY2lyY3VsYXJQYXRoRGF0YS5yaWdodExhcmdlQXJjUmFkaXVzPTEwK2Uud2lkdGgvMiwiYm90dG9tIj09ZS5jaXJjdWxhckxpbmtUeXBlPyhlLmNpcmN1bGFyUGF0aERhdGEudmVydGljYWxGdWxsRXh0ZW50PWUuc291cmNlLnkxKzI1K2UuY2lyY3VsYXJQYXRoRGF0YS52ZXJ0aWNhbEJ1ZmZlcixlLmNpcmN1bGFyUGF0aERhdGEudmVydGljYWxMZWZ0SW5uZXJFeHRlbnQ9ZS5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsRnVsbEV4dGVudC1lLmNpcmN1bGFyUGF0aERhdGEubGVmdExhcmdlQXJjUmFkaXVzLGUuY2lyY3VsYXJQYXRoRGF0YS52ZXJ0aWNhbFJpZ2h0SW5uZXJFeHRlbnQ9ZS5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsRnVsbEV4dGVudC1lLmNpcmN1bGFyUGF0aERhdGEucmlnaHRMYXJnZUFyY1JhZGl1cyk6KGUuY2lyY3VsYXJQYXRoRGF0YS52ZXJ0aWNhbEZ1bGxFeHRlbnQ9ZS5zb3VyY2UueTAtMjUtZS5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsQnVmZmVyLGUuY2lyY3VsYXJQYXRoRGF0YS52ZXJ0aWNhbExlZnRJbm5lckV4dGVudD1lLmNpcmN1bGFyUGF0aERhdGEudmVydGljYWxGdWxsRXh0ZW50K2UuY2lyY3VsYXJQYXRoRGF0YS5sZWZ0TGFyZ2VBcmNSYWRpdXMsZS5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsUmlnaHRJbm5lckV4dGVudD1lLmNpcmN1bGFyUGF0aERhdGEudmVydGljYWxGdWxsRXh0ZW50K2UuY2lyY3VsYXJQYXRoRGF0YS5yaWdodExhcmdlQXJjUmFkaXVzKTtlbHNle3ZhciBzPWUuc291cmNlLmNvbHVtbixsPWUuY2lyY3VsYXJMaW5rVHlwZSxjPXQubGlua3MuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC5zb3VyY2UuY29sdW1uPT1zJiZ0LmNpcmN1bGFyTGlua1R5cGU9PWx9KSk7ImJvdHRvbSI9PWUuY2lyY3VsYXJMaW5rVHlwZT9jLnNvcnQoQyk6Yy5zb3J0KEwpO3ZhciB1PTA7Yy5mb3JFYWNoKChmdW5jdGlvbih0LG4pe3QuY2lyY3VsYXJMaW5rSUQ9PWUuY2lyY3VsYXJMaW5rSUQmJihlLmNpcmN1bGFyUGF0aERhdGEubGVmdFNtYWxsQXJjUmFkaXVzPTEwK2Uud2lkdGgvMit1LGUuY2lyY3VsYXJQYXRoRGF0YS5sZWZ0TGFyZ2VBcmNSYWRpdXM9MTArZS53aWR0aC8yK24qcit1KSx1Kz10LndpZHRofSkpLHM9ZS50YXJnZXQuY29sdW1uLGM9dC5saW5rcy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRhcmdldC5jb2x1bW49PXMmJnQuY2lyY3VsYXJMaW5rVHlwZT09bH0pKSwiYm90dG9tIj09ZS5jaXJjdWxhckxpbmtUeXBlP2Muc29ydChJKTpjLnNvcnQoUCksdT0wLGMuZm9yRWFjaCgoZnVuY3Rpb24odCxuKXt0LmNpcmN1bGFyTGlua0lEPT1lLmNpcmN1bGFyTGlua0lEJiYoZS5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0U21hbGxBcmNSYWRpdXM9MTArZS53aWR0aC8yK3UsZS5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0TGFyZ2VBcmNSYWRpdXM9MTArZS53aWR0aC8yK24qcit1KSx1Kz10LndpZHRofSkpLCJib3R0b20iPT1lLmNpcmN1bGFyTGlua1R5cGU/KGUuY2lyY3VsYXJQYXRoRGF0YS52ZXJ0aWNhbEZ1bGxFeHRlbnQ9TWF0aC5tYXgoaSxlLnNvdXJjZS55MSxlLnRhcmdldC55MSkrMjUrZS5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsQnVmZmVyLGUuY2lyY3VsYXJQYXRoRGF0YS52ZXJ0aWNhbExlZnRJbm5lckV4dGVudD1lLmNpcmN1bGFyUGF0aERhdGEudmVydGljYWxGdWxsRXh0ZW50LWUuY2lyY3VsYXJQYXRoRGF0YS5sZWZ0TGFyZ2VBcmNSYWRpdXMsZS5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsUmlnaHRJbm5lckV4dGVudD1lLmNpcmN1bGFyUGF0aERhdGEudmVydGljYWxGdWxsRXh0ZW50LWUuY2lyY3VsYXJQYXRoRGF0YS5yaWdodExhcmdlQXJjUmFkaXVzKTooZS5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsRnVsbEV4dGVudD1vLTI1LWUuY2lyY3VsYXJQYXRoRGF0YS52ZXJ0aWNhbEJ1ZmZlcixlLmNpcmN1bGFyUGF0aERhdGEudmVydGljYWxMZWZ0SW5uZXJFeHRlbnQ9ZS5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsRnVsbEV4dGVudCtlLmNpcmN1bGFyUGF0aERhdGEubGVmdExhcmdlQXJjUmFkaXVzLGUuY2lyY3VsYXJQYXRoRGF0YS52ZXJ0aWNhbFJpZ2h0SW5uZXJFeHRlbnQ9ZS5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsRnVsbEV4dGVudCtlLmNpcmN1bGFyUGF0aERhdGEucmlnaHRMYXJnZUFyY1JhZGl1cyl9ZS5jaXJjdWxhclBhdGhEYXRhLmxlZnRJbm5lckV4dGVudD1lLmNpcmN1bGFyUGF0aERhdGEuc291cmNlWCtlLmNpcmN1bGFyUGF0aERhdGEubGVmdE5vZGVCdWZmZXIsZS5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0SW5uZXJFeHRlbnQ9ZS5jaXJjdWxhclBhdGhEYXRhLnRhcmdldFgtZS5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0Tm9kZUJ1ZmZlcixlLmNpcmN1bGFyUGF0aERhdGEubGVmdEZ1bGxFeHRlbnQ9ZS5jaXJjdWxhclBhdGhEYXRhLnNvdXJjZVgrZS5jaXJjdWxhclBhdGhEYXRhLmxlZnRMYXJnZUFyY1JhZGl1cytlLmNpcmN1bGFyUGF0aERhdGEubGVmdE5vZGVCdWZmZXIsZS5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0RnVsbEV4dGVudD1lLmNpcmN1bGFyUGF0aERhdGEudGFyZ2V0WC1lLmNpcmN1bGFyUGF0aERhdGEucmlnaHRMYXJnZUFyY1JhZGl1cy1lLmNpcmN1bGFyUGF0aERhdGEucmlnaHROb2RlQnVmZmVyfWlmKGUuY2lyY3VsYXIpZS5wYXRoPWZ1bmN0aW9uKHQpe3ZhciBlPSIiO2U9InRvcCI9PXQuY2lyY3VsYXJMaW5rVHlwZT8iTSIrdC5jaXJjdWxhclBhdGhEYXRhLnNvdXJjZVgrIiAiK3QuY2lyY3VsYXJQYXRoRGF0YS5zb3VyY2VZKyIgTCIrdC5jaXJjdWxhclBhdGhEYXRhLmxlZnRJbm5lckV4dGVudCsiICIrdC5jaXJjdWxhclBhdGhEYXRhLnNvdXJjZVkrIiBBIit0LmNpcmN1bGFyUGF0aERhdGEubGVmdExhcmdlQXJjUmFkaXVzKyIgIit0LmNpcmN1bGFyUGF0aERhdGEubGVmdFNtYWxsQXJjUmFkaXVzKyIgMCAwIDAgIit0LmNpcmN1bGFyUGF0aERhdGEubGVmdEZ1bGxFeHRlbnQrIiAiKyh0LmNpcmN1bGFyUGF0aERhdGEuc291cmNlWS10LmNpcmN1bGFyUGF0aERhdGEubGVmdFNtYWxsQXJjUmFkaXVzKSsiIEwiK3QuY2lyY3VsYXJQYXRoRGF0YS5sZWZ0RnVsbEV4dGVudCsiICIrdC5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsTGVmdElubmVyRXh0ZW50KyIgQSIrdC5jaXJjdWxhclBhdGhEYXRhLmxlZnRMYXJnZUFyY1JhZGl1cysiICIrdC5jaXJjdWxhclBhdGhEYXRhLmxlZnRMYXJnZUFyY1JhZGl1cysiIDAgMCAwICIrdC5jaXJjdWxhclBhdGhEYXRhLmxlZnRJbm5lckV4dGVudCsiICIrdC5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsRnVsbEV4dGVudCsiIEwiK3QuY2lyY3VsYXJQYXRoRGF0YS5yaWdodElubmVyRXh0ZW50KyIgIit0LmNpcmN1bGFyUGF0aERhdGEudmVydGljYWxGdWxsRXh0ZW50KyIgQSIrdC5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0TGFyZ2VBcmNSYWRpdXMrIiAiK3QuY2lyY3VsYXJQYXRoRGF0YS5yaWdodExhcmdlQXJjUmFkaXVzKyIgMCAwIDAgIit0LmNpcmN1bGFyUGF0aERhdGEucmlnaHRGdWxsRXh0ZW50KyIgIit0LmNpcmN1bGFyUGF0aERhdGEudmVydGljYWxSaWdodElubmVyRXh0ZW50KyIgTCIrdC5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0RnVsbEV4dGVudCsiICIrKHQuY2lyY3VsYXJQYXRoRGF0YS50YXJnZXRZLXQuY2lyY3VsYXJQYXRoRGF0YS5yaWdodFNtYWxsQXJjUmFkaXVzKSsiIEEiK3QuY2lyY3VsYXJQYXRoRGF0YS5yaWdodExhcmdlQXJjUmFkaXVzKyIgIit0LmNpcmN1bGFyUGF0aERhdGEucmlnaHRTbWFsbEFyY1JhZGl1cysiIDAgMCAwICIrdC5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0SW5uZXJFeHRlbnQrIiAiK3QuY2lyY3VsYXJQYXRoRGF0YS50YXJnZXRZKyIgTCIrdC5jaXJjdWxhclBhdGhEYXRhLnRhcmdldFgrIiAiK3QuY2lyY3VsYXJQYXRoRGF0YS50YXJnZXRZOiJNIit0LmNpcmN1bGFyUGF0aERhdGEuc291cmNlWCsiICIrdC5jaXJjdWxhclBhdGhEYXRhLnNvdXJjZVkrIiBMIit0LmNpcmN1bGFyUGF0aERhdGEubGVmdElubmVyRXh0ZW50KyIgIit0LmNpcmN1bGFyUGF0aERhdGEuc291cmNlWSsiIEEiK3QuY2lyY3VsYXJQYXRoRGF0YS5sZWZ0TGFyZ2VBcmNSYWRpdXMrIiAiK3QuY2lyY3VsYXJQYXRoRGF0YS5sZWZ0U21hbGxBcmNSYWRpdXMrIiAwIDAgMSAiK3QuY2lyY3VsYXJQYXRoRGF0YS5sZWZ0RnVsbEV4dGVudCsiICIrKHQuY2lyY3VsYXJQYXRoRGF0YS5zb3VyY2VZK3QuY2lyY3VsYXJQYXRoRGF0YS5sZWZ0U21hbGxBcmNSYWRpdXMpKyIgTCIrdC5jaXJjdWxhclBhdGhEYXRhLmxlZnRGdWxsRXh0ZW50KyIgIit0LmNpcmN1bGFyUGF0aERhdGEudmVydGljYWxMZWZ0SW5uZXJFeHRlbnQrIiBBIit0LmNpcmN1bGFyUGF0aERhdGEubGVmdExhcmdlQXJjUmFkaXVzKyIgIit0LmNpcmN1bGFyUGF0aERhdGEubGVmdExhcmdlQXJjUmFkaXVzKyIgMCAwIDEgIit0LmNpcmN1bGFyUGF0aERhdGEubGVmdElubmVyRXh0ZW50KyIgIit0LmNpcmN1bGFyUGF0aERhdGEudmVydGljYWxGdWxsRXh0ZW50KyIgTCIrdC5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0SW5uZXJFeHRlbnQrIiAiK3QuY2lyY3VsYXJQYXRoRGF0YS52ZXJ0aWNhbEZ1bGxFeHRlbnQrIiBBIit0LmNpcmN1bGFyUGF0aERhdGEucmlnaHRMYXJnZUFyY1JhZGl1cysiICIrdC5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0TGFyZ2VBcmNSYWRpdXMrIiAwIDAgMSAiK3QuY2lyY3VsYXJQYXRoRGF0YS5yaWdodEZ1bGxFeHRlbnQrIiAiK3QuY2lyY3VsYXJQYXRoRGF0YS52ZXJ0aWNhbFJpZ2h0SW5uZXJFeHRlbnQrIiBMIit0LmNpcmN1bGFyUGF0aERhdGEucmlnaHRGdWxsRXh0ZW50KyIgIisodC5jaXJjdWxhclBhdGhEYXRhLnRhcmdldFkrdC5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0U21hbGxBcmNSYWRpdXMpKyIgQSIrdC5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0TGFyZ2VBcmNSYWRpdXMrIiAiK3QuY2lyY3VsYXJQYXRoRGF0YS5yaWdodFNtYWxsQXJjUmFkaXVzKyIgMCAwIDEgIit0LmNpcmN1bGFyUGF0aERhdGEucmlnaHRJbm5lckV4dGVudCsiICIrdC5jaXJjdWxhclBhdGhEYXRhLnRhcmdldFkrIiBMIit0LmNpcmN1bGFyUGF0aERhdGEudGFyZ2V0WCsiICIrdC5jaXJjdWxhclBhdGhEYXRhLnRhcmdldFk7cmV0dXJuIGV9KGUpO2Vsc2V7dmFyIGY9bi5saW5rSG9yaXpvbnRhbCgpLnNvdXJjZSgoZnVuY3Rpb24odCl7cmV0dXJuW3Quc291cmNlLngwKyh0LnNvdXJjZS54MS10LnNvdXJjZS54MCksdC55MF19KSkudGFyZ2V0KChmdW5jdGlvbih0KXtyZXR1cm5bdC50YXJnZXQueDAsdC55MV19KSk7ZS5wYXRoPWYoZSl9fSkpfWZ1bmN0aW9uIEUodCxlKXtyZXR1cm4gTyh0KT09TyhlKT8iYm90dG9tIj09dC5jaXJjdWxhckxpbmtUeXBlP0ModCxlKTpMKHQsZSk6TyhlKS1PKHQpfWZ1bmN0aW9uIEwodCxlKXtyZXR1cm4gdC55MC1lLnkwfWZ1bmN0aW9uIEModCxlKXtyZXR1cm4gZS55MC10LnkwfWZ1bmN0aW9uIFAodCxlKXtyZXR1cm4gdC55MS1lLnkxfWZ1bmN0aW9uIEkodCxlKXtyZXR1cm4gZS55MS10LnkxfWZ1bmN0aW9uIE8odCl7cmV0dXJuIHQudGFyZ2V0LmNvbHVtbi10LnNvdXJjZS5jb2x1bW59ZnVuY3Rpb24geih0KXtyZXR1cm4gdC50YXJnZXQueDAtdC5zb3VyY2UueDF9ZnVuY3Rpb24gRCh0LGUpe3ZhciByPVQodCksbj16KGUpL01hdGgudGFuKHIpO3JldHVybiJ1cCI9PUgodCk/dC55MStuOnQueTEtbn1mdW5jdGlvbiBSKHQsZSl7dmFyIHI9VCh0KSxuPXooZSkvTWF0aC50YW4ocik7cmV0dXJuInVwIj09SCh0KT90LnkxLW46dC55MStufWZ1bmN0aW9uIEYodCxlLHIsbil7dC5saW5rcy5mb3JFYWNoKChmdW5jdGlvbihpKXtpZighaS5jaXJjdWxhciYmaS50YXJnZXQuY29sdW1uLWkuc291cmNlLmNvbHVtbj4xKXt2YXIgYT1pLnNvdXJjZS5jb2x1bW4rMSxvPWkudGFyZ2V0LmNvbHVtbi0xLHM9MSxsPW8tYSsxO2ZvcihzPTE7YTw9bzthKysscysrKXQubm9kZXMuZm9yRWFjaCgoZnVuY3Rpb24obyl7aWYoby5jb2x1bW49PWEpe3ZhciBjLHU9cy8obCsxKSxmPU1hdGgucG93KDEtdSwzKSxoPTMqdSpNYXRoLnBvdygxLXUsMikscD0zKk1hdGgucG93KHUsMikqKDEtdSksZD1NYXRoLnBvdyh1LDMpLG09ZippLnkwK2gqaS55MCtwKmkueTErZCppLnkxLGc9bS1pLndpZHRoLzIsdj1tK2kud2lkdGgvMjtnPm8ueTAmJmc8by55MT8oYz1vLnkxLWcrMTAsYz0iYm90dG9tIj09by5jaXJjdWxhckxpbmtUeXBlP2M6LWMsbz1OKG8sYyxlLHIpLHQubm9kZXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7Yih0LG4pIT1iKG8sbikmJnQuY29sdW1uPT1vLmNvbHVtbiYmQihvLHQpJiZOKHQsYyxlLHIpfSkpKToodj5vLnkwJiZ2PG8ueTF8fGc8by55MCYmdj5vLnkxKSYmKGM9di1vLnkwKzEwLG89TihvLGMsZSxyKSx0Lm5vZGVzLmZvckVhY2goKGZ1bmN0aW9uKHQpe2IodCxuKSE9YihvLG4pJiZ0LmNvbHVtbj09by5jb2x1bW4mJnQueTA8by55MSYmdC55MT5vLnkxJiZOKHQsYyxlLHIpfSkpKX19KSl9fSkpfWZ1bmN0aW9uIEIodCxlKXtyZXR1cm4gdC55MD5lLnkwJiZ0LnkwPGUueTF8fCh0LnkxPmUueTAmJnQueTE8ZS55MXx8dC55MDxlLnkwJiZ0LnkxPmUueTEpfWZ1bmN0aW9uIE4odCxlLHIsbil7cmV0dXJuIHQueTArZT49ciYmdC55MStlPD1uJiYodC55MD10LnkwK2UsdC55MT10LnkxK2UsdC50YXJnZXRMaW5rcy5mb3JFYWNoKChmdW5jdGlvbih0KXt0LnkxPXQueTErZX0pKSx0LnNvdXJjZUxpbmtzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QueTA9dC55MCtlfSkpKSx0fWZ1bmN0aW9uIGoodCxlLHIsbil7dC5ub2Rlcy5mb3JFYWNoKChmdW5jdGlvbihpKXtuJiZpLnkrKGkueTEtaS55MCk+ZSYmKGkueT1pLnktKGkueSsoaS55MS1pLnkwKS1lKSk7dmFyIGE9dC5saW5rcy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBiKHQuc291cmNlLHIpPT1iKGkscil9KSksbz1hLmxlbmd0aDtvPjEmJmEuc29ydCgoZnVuY3Rpb24odCxlKXtpZighdC5jaXJjdWxhciYmIWUuY2lyY3VsYXIpe2lmKHQudGFyZ2V0LmNvbHVtbj09ZS50YXJnZXQuY29sdW1uKXJldHVybiB0LnkxLWUueTE7aWYoIVYodCxlKSlyZXR1cm4gdC55MS1lLnkxO2lmKHQudGFyZ2V0LmNvbHVtbj5lLnRhcmdldC5jb2x1bW4pe3ZhciByPVIoZSx0KTtyZXR1cm4gdC55MS1yfWlmKGUudGFyZ2V0LmNvbHVtbj50LnRhcmdldC5jb2x1bW4pcmV0dXJuIFIodCxlKS1lLnkxfXJldHVybiB0LmNpcmN1bGFyJiYhZS5jaXJjdWxhcj8idG9wIj09dC5jaXJjdWxhckxpbmtUeXBlPy0xOjE6ZS5jaXJjdWxhciYmIXQuY2lyY3VsYXI/InRvcCI9PWUuY2lyY3VsYXJMaW5rVHlwZT8xOi0xOnQuY2lyY3VsYXImJmUuY2lyY3VsYXI/dC5jaXJjdWxhckxpbmtUeXBlPT09ZS5jaXJjdWxhckxpbmtUeXBlJiYidG9wIj09dC5jaXJjdWxhckxpbmtUeXBlP3QudGFyZ2V0LmNvbHVtbj09PWUudGFyZ2V0LmNvbHVtbj90LnRhcmdldC55MS1lLnRhcmdldC55MTplLnRhcmdldC5jb2x1bW4tdC50YXJnZXQuY29sdW1uOnQuY2lyY3VsYXJMaW5rVHlwZT09PWUuY2lyY3VsYXJMaW5rVHlwZSYmImJvdHRvbSI9PXQuY2lyY3VsYXJMaW5rVHlwZT90LnRhcmdldC5jb2x1bW49PT1lLnRhcmdldC5jb2x1bW4/ZS50YXJnZXQueTEtdC50YXJnZXQueTE6dC50YXJnZXQuY29sdW1uLWUudGFyZ2V0LmNvbHVtbjoidG9wIj09dC5jaXJjdWxhckxpbmtUeXBlPy0xOjE6dm9pZCAwfSkpO3ZhciBzPWkueTA7YS5mb3JFYWNoKChmdW5jdGlvbih0KXt0LnkwPXMrdC53aWR0aC8yLHMrPXQud2lkdGh9KSksYS5mb3JFYWNoKChmdW5jdGlvbih0LGUpe2lmKCJib3R0b20iPT10LmNpcmN1bGFyTGlua1R5cGUpe2Zvcih2YXIgcj1lKzEsbj0wO3I8bztyKyspbis9YVtyXS53aWR0aDt0LnkwPWkueTEtbi10LndpZHRoLzJ9fSkpfSkpfWZ1bmN0aW9uIFUodCxlLHIpe3Qubm9kZXMuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIG49dC5saW5rcy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBiKHQudGFyZ2V0LHIpPT1iKGUscil9KSksaT1uLmxlbmd0aDtpPjEmJm4uc29ydCgoZnVuY3Rpb24odCxlKXtpZighdC5jaXJjdWxhciYmIWUuY2lyY3VsYXIpe2lmKHQuc291cmNlLmNvbHVtbj09ZS5zb3VyY2UuY29sdW1uKXJldHVybiB0LnkwLWUueTA7aWYoIVYodCxlKSlyZXR1cm4gdC55MC1lLnkwO2lmKGUuc291cmNlLmNvbHVtbjx0LnNvdXJjZS5jb2x1bW4pe3ZhciByPUQoZSx0KTtyZXR1cm4gdC55MC1yfWlmKHQuc291cmNlLmNvbHVtbjxlLnNvdXJjZS5jb2x1bW4pcmV0dXJuIEQodCxlKS1lLnkwfXJldHVybiB0LmNpcmN1bGFyJiYhZS5jaXJjdWxhcj8idG9wIj09dC5jaXJjdWxhckxpbmtUeXBlPy0xOjE6ZS5jaXJjdWxhciYmIXQuY2lyY3VsYXI/InRvcCI9PWUuY2lyY3VsYXJMaW5rVHlwZT8xOi0xOnQuY2lyY3VsYXImJmUuY2lyY3VsYXI/dC5jaXJjdWxhckxpbmtUeXBlPT09ZS5jaXJjdWxhckxpbmtUeXBlJiYidG9wIj09dC5jaXJjdWxhckxpbmtUeXBlP3Quc291cmNlLmNvbHVtbj09PWUuc291cmNlLmNvbHVtbj90LnNvdXJjZS55MS1lLnNvdXJjZS55MTp0LnNvdXJjZS5jb2x1bW4tZS5zb3VyY2UuY29sdW1uOnQuY2lyY3VsYXJMaW5rVHlwZT09PWUuY2lyY3VsYXJMaW5rVHlwZSYmImJvdHRvbSI9PXQuY2lyY3VsYXJMaW5rVHlwZT90LnNvdXJjZS5jb2x1bW49PT1lLnNvdXJjZS5jb2x1bW4/dC5zb3VyY2UueTEtZS5zb3VyY2UueTE6ZS5zb3VyY2UuY29sdW1uLXQuc291cmNlLmNvbHVtbjoidG9wIj09dC5jaXJjdWxhckxpbmtUeXBlPy0xOjE6dm9pZCAwfSkpO3ZhciBhPWUueTA7bi5mb3JFYWNoKChmdW5jdGlvbih0KXt0LnkxPWErdC53aWR0aC8yLGErPXQud2lkdGh9KSksbi5mb3JFYWNoKChmdW5jdGlvbih0LHIpe2lmKCJib3R0b20iPT10LmNpcmN1bGFyTGlua1R5cGUpe2Zvcih2YXIgYT1yKzEsbz0wO2E8aTthKyspbys9blthXS53aWR0aDt0LnkxPWUueTEtby10LndpZHRoLzJ9fSkpfSkpfWZ1bmN0aW9uIFYodCxlKXtyZXR1cm4gSCh0KT09SChlKX1mdW5jdGlvbiBIKHQpe3JldHVybiB0LnkwLXQueTE+MD8idXAiOiJkb3duIn1mdW5jdGlvbiBxKHQsZSl7cmV0dXJuIGIodC5zb3VyY2UsZSk9PWIodC50YXJnZXQsZSl9ZnVuY3Rpb24gRyh0LHIsbil7dmFyIGk9dC5ub2RlcyxhPXQubGlua3Msbz0hMSxzPSExO2lmKGEuZm9yRWFjaCgoZnVuY3Rpb24odCl7InRvcCI9PXQuY2lyY3VsYXJMaW5rVHlwZT9vPSEwOiJib3R0b20iPT10LmNpcmN1bGFyTGlua1R5cGUmJihzPSEwKX0pKSwwPT1vfHwwPT1zKXt2YXIgbD1lLm1pbihpLChmdW5jdGlvbih0KXtyZXR1cm4gdC55MH0pKSxjPShuLXIpLyhlLm1heChpLChmdW5jdGlvbih0KXtyZXR1cm4gdC55MX0pKS1sKTtpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPSh0LnkxLXQueTApKmM7dC55MD0odC55MC1sKSpjLHQueTE9dC55MCtlfSkpLGEuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC55MD0odC55MC1sKSpjLHQueTE9KHQueTEtbCkqYyx0LndpZHRoPXQud2lkdGgqY30pKX19dC5zYW5rZXlDaXJjdWxhcj1mdW5jdGlvbigpe3ZhciB0LG4saT0wLGE9MCxiPTEsVD0xLEE9MjQsTT1nLEU9byxMPXYsQz15LFA9MzIsST0yLE89bnVsbDtmdW5jdGlvbiB6KCl7dmFyIHQ9e25vZGVzOkwuYXBwbHkobnVsbCxhcmd1bWVudHMpLGxpbmtzOkMuYXBwbHkobnVsbCxhcmd1bWVudHMpfTtEKHQpLF8odCxNLE8pLFIodCksQih0KSx3KHQsTSksTih0LFAsTSksVih0KTtmb3IodmFyIGU9NCxyPTA7cjxlO3IrKylqKHQsVCxNKSxVKHQsVCxNKSxGKHQsYSxULE0pLGoodCxULE0pLFUodCxULE0pO3JldHVybiBHKHQsYSxUKSxTKHQsSSxULE0pLHR9ZnVuY3Rpb24gRCh0KXt0Lm5vZGVzLmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7dC5pbmRleD1lLHQuc291cmNlTGlua3M9W10sdC50YXJnZXRMaW5rcz1bXX0pKTt2YXIgZT1yLm1hcCh0Lm5vZGVzLE0pO3JldHVybiB0LmxpbmtzLmZvckVhY2goKGZ1bmN0aW9uKHQscil7dC5pbmRleD1yO3ZhciBuPXQuc291cmNlLGk9dC50YXJnZXQ7Im9iamVjdCIhPT0odm9pZCAwPT09bj8idW5kZWZpbmVkIjpsKG4pKSYmKG49dC5zb3VyY2U9eChlLG4pKSwib2JqZWN0IiE9PSh2b2lkIDA9PT1pPyJ1bmRlZmluZWQiOmwoaSkpJiYoaT10LnRhcmdldD14KGUsaSkpLG4uc291cmNlTGlua3MucHVzaCh0KSxpLnRhcmdldExpbmtzLnB1c2godCl9KSksdH1mdW5jdGlvbiBSKHQpe3Qubm9kZXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5wYXJ0T2ZDeWNsZT0hMSx0LnZhbHVlPU1hdGgubWF4KGUuc3VtKHQuc291cmNlTGlua3MsaCksZS5zdW0odC50YXJnZXRMaW5rcyxoKSksdC5zb3VyY2VMaW5rcy5mb3JFYWNoKChmdW5jdGlvbihlKXtlLmNpcmN1bGFyJiYodC5wYXJ0T2ZDeWNsZT0hMCx0LmNpcmN1bGFyTGlua1R5cGU9ZS5jaXJjdWxhckxpbmtUeXBlKX0pKSx0LnRhcmdldExpbmtzLmZvckVhY2goKGZ1bmN0aW9uKGUpe2UuY2lyY3VsYXImJih0LnBhcnRPZkN5Y2xlPSEwLHQuY2lyY3VsYXJMaW5rVHlwZT1lLmNpcmN1bGFyTGlua1R5cGUpfSkpfSkpfWZ1bmN0aW9uIEIodCl7dmFyIGUscixuO2ZvcihlPXQubm9kZXMscj1bXSxuPTA7ZS5sZW5ndGg7KytuLGU9cixyPVtdKWUuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5kZXB0aD1uLHQuc291cmNlTGlua3MuZm9yRWFjaCgoZnVuY3Rpb24odCl7ci5pbmRleE9mKHQudGFyZ2V0KTwwJiYhdC5jaXJjdWxhciYmci5wdXNoKHQudGFyZ2V0KX0pKX0pKTtmb3IoZT10Lm5vZGVzLHI9W10sbj0wO2UubGVuZ3RoOysrbixlPXIscj1bXSllLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuaGVpZ2h0PW4sdC50YXJnZXRMaW5rcy5mb3JFYWNoKChmdW5jdGlvbih0KXtyLmluZGV4T2YodC5zb3VyY2UpPDAmJiF0LmNpcmN1bGFyJiZyLnB1c2godC5zb3VyY2UpfSkpfSkpO3Qubm9kZXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5jb2x1bW49TWF0aC5mbG9vcihFLmNhbGwobnVsbCx0LG4pKX0pKX1mdW5jdGlvbiBOKG8scyxsKXt2YXIgYz1yLm5lc3QoKS5rZXkoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmNvbHVtbn0pKS5zb3J0S2V5cyhlLmFzY2VuZGluZykuZW50cmllcyhvLm5vZGVzKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnZhbHVlc30pKTshZnVuY3Rpb24ocil7aWYobil7dmFyIHM9MS8wO2MuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9VCpuLyh0Lmxlbmd0aCsxKTtzPWU8cz9lOnN9KSksdD1zfXZhciBsPWUubWluKGMsKGZ1bmN0aW9uKHIpe3JldHVybihULWEtKHIubGVuZ3RoLTEpKnQpL2Uuc3VtKHIsaCl9KSk7bCo9LjMsby5saW5rcy5mb3JFYWNoKChmdW5jdGlvbih0KXt0LndpZHRoPXQudmFsdWUqbH0pKTt2YXIgdT1mdW5jdGlvbih0KXt2YXIgcj0wLG49MCxpPTAsYT0wLG89ZS5tYXgodC5ub2RlcywoZnVuY3Rpb24odCl7cmV0dXJuIHQuY29sdW1ufSkpO3JldHVybiB0LmxpbmtzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuY2lyY3VsYXImJigidG9wIj09dC5jaXJjdWxhckxpbmtUeXBlP3IrPXQud2lkdGg6bis9dC53aWR0aCwwPT10LnRhcmdldC5jb2x1bW4mJihhKz10LndpZHRoKSx0LnNvdXJjZS5jb2x1bW49PW8mJihpKz10LndpZHRoKSl9KSkse3RvcDpyPXI+MD9yKzI1KzEwOnIsYm90dG9tOm49bj4wP24rMjUrMTA6bixsZWZ0OmE9YT4wP2ErMjUrMTA6YSxyaWdodDppPWk+MD9pKzI1KzEwOml9fShvKSxmPWZ1bmN0aW9uKHQscil7dmFyIG49ZS5tYXgodC5ub2RlcywoZnVuY3Rpb24odCl7cmV0dXJuIHQuY29sdW1ufSkpLG89Yi1pLHM9VC1hLGw9by8obytyLnJpZ2h0K3IubGVmdCksYz1zLyhzK3IudG9wK3IuYm90dG9tKTtyZXR1cm4gaT1pKmwrci5sZWZ0LGI9MD09ci5yaWdodD9iOmIqbCxhPWEqYytyLnRvcCxUKj1jLHQubm9kZXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC54MD1pK3QuY29sdW1uKigoYi1pLUEpL24pLHQueDE9dC54MCtBfSkpLGN9KG8sdSk7bCo9ZixvLmxpbmtzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3Qud2lkdGg9dC52YWx1ZSpsfSkpLGMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9dC5sZW5ndGg7dC5mb3JFYWNoKChmdW5jdGlvbih0LG4pe3QuZGVwdGg9PWMubGVuZ3RoLTEmJjE9PWV8fDA9PXQuZGVwdGgmJjE9PWU/KHQueTA9VC8yLXQudmFsdWUqbCx0LnkxPXQueTArdC52YWx1ZSpsKTp0LnBhcnRPZkN5Y2xlPzA9PWsodCxyKT8odC55MD1ULzIrbix0LnkxPXQueTArdC52YWx1ZSpsKToidG9wIj09dC5jaXJjdWxhckxpbmtUeXBlPyh0LnkwPWErbix0LnkxPXQueTArdC52YWx1ZSpsKToodC55MD1ULXQudmFsdWUqbC1uLHQueTE9dC55MCt0LnZhbHVlKmwpOjA9PXUudG9wfHwwPT11LmJvdHRvbT8odC55MD0oVC1hKS9lKm4sdC55MT10LnkwK3QudmFsdWUqbCk6KHQueTA9KFQtYSkvMi1lLzIrbix0LnkxPXQueTArdC52YWx1ZSpsKX0pKX0pKX0obCkseSgpO2Zvcih2YXIgdT0xLGc9cztnPjA7LS1nKXYodSo9Ljk5LGwpLHkoKTtmdW5jdGlvbiB2KHQscil7dmFyIG49Yy5sZW5ndGg7Yy5mb3JFYWNoKChmdW5jdGlvbihpKXt2YXIgYT1pLmxlbmd0aCxvPWlbMF0uZGVwdGg7aS5mb3JFYWNoKChmdW5jdGlvbihpKXt2YXIgcztpZihpLnNvdXJjZUxpbmtzLmxlbmd0aHx8aS50YXJnZXRMaW5rcy5sZW5ndGgpaWYoaS5wYXJ0T2ZDeWNsZSYmayhpLHIpPjApO2Vsc2UgaWYoMD09byYmMT09YSlzPWkueTEtaS55MCxpLnkwPVQvMi1zLzIsaS55MT1ULzIrcy8yO2Vsc2UgaWYobz09bi0xJiYxPT1hKXM9aS55MS1pLnkwLGkueTA9VC8yLXMvMixpLnkxPVQvMitzLzI7ZWxzZXt2YXIgbD1lLm1lYW4oaS5zb3VyY2VMaW5rcyxtKSxjPWUubWVhbihpLnRhcmdldExpbmtzLGQpLHU9KChsJiZjPyhsK2MpLzI6bHx8YyktcChpKSkqdDtpLnkwKz11LGkueTErPXV9fSkpfSkpfWZ1bmN0aW9uIHkoKXtjLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciByLG4saSxvPWEscz1lLmxlbmd0aDtmb3IoZS5zb3J0KGYpLGk9MDtpPHM7KytpKShuPW8tKHI9ZVtpXSkueTApPjAmJihyLnkwKz1uLHIueTErPW4pLG89ci55MSt0O2lmKChuPW8tdC1UKT4wKWZvcihvPXIueTAtPW4sci55MS09bixpPXMtMjtpPj0wOy0taSkobj0ocj1lW2ldKS55MSt0LW8pPjAmJihyLnkwLT1uLHIueTEtPW4pLG89ci55MH0pKX19ZnVuY3Rpb24gVih0KXt0Lm5vZGVzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3Quc291cmNlTGlua3Muc29ydCh1KSx0LnRhcmdldExpbmtzLnNvcnQoYyl9KSksdC5ub2Rlcy5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT10LnkwLHI9ZSxuPXQueTEsaT1uO3Quc291cmNlTGlua3MuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5jaXJjdWxhcj8odC55MD1uLXQud2lkdGgvMixuLT10LndpZHRoKToodC55MD1lK3Qud2lkdGgvMixlKz10LndpZHRoKX0pKSx0LnRhcmdldExpbmtzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuY2lyY3VsYXI/KHQueTE9aS10LndpZHRoLzIsaS09dC53aWR0aCk6KHQueTE9cit0LndpZHRoLzIscis9dC53aWR0aCl9KSl9KSl9cmV0dXJuIHoubm9kZUlkPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhNPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cyh0KSx6KTpNfSx6Lm5vZGVBbGlnbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oRT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OnModCkseik6RX0sei5ub2RlV2lkdGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KEE9K3Qseik6QX0sei5ub2RlUGFkZGluZz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0rZSx6KTp0fSx6Lm5vZGVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhMPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cyh0KSx6KTpMfSx6LmxpbmtzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhDPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cyh0KSx6KTpDfSx6LnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9YT0wLGI9K3RbMF0sVD0rdFsxXSx6KTpbYi1pLFQtYV19LHouZXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSt0WzBdWzBdLGI9K3RbMV1bMF0sYT0rdFswXVsxXSxUPSt0WzFdWzFdLHopOltbaSxhXSxbYixUXV19LHouaXRlcmF0aW9ucz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oUD0rdCx6KTpQfSx6LmNpcmN1bGFyTGlua0dhcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oST0rdCx6KTpJfSx6Lm5vZGVQYWRkaW5nUmF0aW89ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49K3Qseik6bn0sei5zb3J0Tm9kZXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KE89dCx6KTpPfSx6LnVwZGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdyh0LE0pLFYodCksdC5saW5rcy5mb3JFYWNoKChmdW5jdGlvbih0KXt0LmNpcmN1bGFyJiYodC5jaXJjdWxhckxpbmtUeXBlPXQueTArdC55MTxUPyJ0b3AiOiJib3R0b20iLHQuc291cmNlLmNpcmN1bGFyTGlua1R5cGU9dC5jaXJjdWxhckxpbmtUeXBlLHQudGFyZ2V0LmNpcmN1bGFyTGlua1R5cGU9dC5jaXJjdWxhckxpbmtUeXBlKX0pKSxqKHQsVCxNLCExKSxVKHQsVCxNKSxTKHQsSSxULE0pLHR9LHp9LHQuc2Fua2V5Q2VudGVyPWZ1bmN0aW9uKHQpe3JldHVybiB0LnRhcmdldExpbmtzLmxlbmd0aD90LmRlcHRoOnQuc291cmNlTGlua3MubGVuZ3RoP2UubWluKHQuc291cmNlTGlua3MsYSktMTowfSx0LnNhbmtleUxlZnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQuZGVwdGh9LHQuc2Fua2V5UmlnaHQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS0xLXQuaGVpZ2h0fSx0LnNhbmtleUp1c3RpZnk9byxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KSl9LHsiZDMtYXJyYXkiOjEwNywiZDMtY29sbGVjdGlvbiI6MTA4LCJkMy1zaGFwZSI6MTE5LCJlbGVtZW50YXJ5LWNpcmN1aXRzLWRpcmVjdGVkLWdyYXBoIjoxMzB9XSw1NzpbZnVuY3Rpb24odCxlLHIpeyFmdW5jdGlvbihuLGkpeyJvYmplY3QiPT10eXBlb2YgciYmdm9pZCAwIT09ZT9pKHIsdCgiZDMtYXJyYXkiKSx0KCJkMy1jb2xsZWN0aW9uIiksdCgiZDMtc2hhcGUiKSk6aShuLmQzPW4uZDN8fHt9LG4uZDMsbi5kMyxuLmQzKX0odGhpcywoZnVuY3Rpb24odCxlLHIsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkodCl7cmV0dXJuIHQudGFyZ2V0LmRlcHRofWZ1bmN0aW9uIGEodCxlKXtyZXR1cm4gdC5zb3VyY2VMaW5rcy5sZW5ndGg/dC5kZXB0aDplLTF9ZnVuY3Rpb24gbyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gcyh0LGUpe3JldHVybiBjKHQuc291cmNlLGUuc291cmNlKXx8dC5pbmRleC1lLmluZGV4fWZ1bmN0aW9uIGwodCxlKXtyZXR1cm4gYyh0LnRhcmdldCxlLnRhcmdldCl8fHQuaW5kZXgtZS5pbmRleH1mdW5jdGlvbiBjKHQsZSl7cmV0dXJuIHQueTAtZS55MH1mdW5jdGlvbiB1KHQpe3JldHVybiB0LnZhbHVlfWZ1bmN0aW9uIGYodCl7cmV0dXJuKHQueTArdC55MSkvMn1mdW5jdGlvbiBoKHQpe3JldHVybiBmKHQuc291cmNlKSp0LnZhbHVlfWZ1bmN0aW9uIHAodCl7cmV0dXJuIGYodC50YXJnZXQpKnQudmFsdWV9ZnVuY3Rpb24gZCh0KXtyZXR1cm4gdC5pbmRleH1mdW5jdGlvbiBtKHQpe3JldHVybiB0Lm5vZGVzfWZ1bmN0aW9uIGcodCl7cmV0dXJuIHQubGlua3N9ZnVuY3Rpb24gdih0LGUpe3ZhciByPXQuZ2V0KGUpO2lmKCFyKXRocm93IG5ldyBFcnJvcigibWlzc2luZzogIitlKTtyZXR1cm4gcn1mdW5jdGlvbiB5KHQpe3JldHVyblt0LnNvdXJjZS54MSx0LnkwXX1mdW5jdGlvbiB4KHQpe3JldHVyblt0LnRhcmdldC54MCx0LnkxXX10LnNhbmtleT1mdW5jdGlvbigpe3ZhciB0PTAsbj0wLGk9MSx5PTEseD0yNCxiPTgsXz1kLHc9YSxUPW0saz1nLEE9MzI7ZnVuY3Rpb24gTSgpe3ZhciB0PXtub2RlczpULmFwcGx5KG51bGwsYXJndW1lbnRzKSxsaW5rczprLmFwcGx5KG51bGwsYXJndW1lbnRzKX07cmV0dXJuIFModCksRSh0KSxMKHQpLEModCksUCh0KSx0fWZ1bmN0aW9uIFModCl7dC5ub2Rlcy5mb3JFYWNoKChmdW5jdGlvbih0LGUpe3QuaW5kZXg9ZSx0LnNvdXJjZUxpbmtzPVtdLHQudGFyZ2V0TGlua3M9W119KSk7dmFyIGU9ci5tYXAodC5ub2RlcyxfKTt0LmxpbmtzLmZvckVhY2goKGZ1bmN0aW9uKHQscil7dC5pbmRleD1yO3ZhciBuPXQuc291cmNlLGk9dC50YXJnZXQ7Im9iamVjdCIhPXR5cGVvZiBuJiYobj10LnNvdXJjZT12KGUsbikpLCJvYmplY3QiIT10eXBlb2YgaSYmKGk9dC50YXJnZXQ9dihlLGkpKSxuLnNvdXJjZUxpbmtzLnB1c2godCksaS50YXJnZXRMaW5rcy5wdXNoKHQpfSkpfWZ1bmN0aW9uIEUodCl7dC5ub2Rlcy5mb3JFYWNoKChmdW5jdGlvbih0KXt0LnZhbHVlPU1hdGgubWF4KGUuc3VtKHQuc291cmNlTGlua3MsdSksZS5zdW0odC50YXJnZXRMaW5rcyx1KSl9KSl9ZnVuY3Rpb24gTChlKXt2YXIgcixuLGE7Zm9yKHI9ZS5ub2RlcyxuPVtdLGE9MDtyLmxlbmd0aDsrK2Escj1uLG49W10pci5mb3JFYWNoKChmdW5jdGlvbih0KXt0LmRlcHRoPWEsdC5zb3VyY2VMaW5rcy5mb3JFYWNoKChmdW5jdGlvbih0KXtuLmluZGV4T2YodC50YXJnZXQpPDAmJm4ucHVzaCh0LnRhcmdldCl9KSl9KSk7Zm9yKHI9ZS5ub2RlcyxuPVtdLGE9MDtyLmxlbmd0aDsrK2Escj1uLG49W10pci5mb3JFYWNoKChmdW5jdGlvbih0KXt0LmhlaWdodD1hLHQudGFyZ2V0TGlua3MuZm9yRWFjaCgoZnVuY3Rpb24odCl7bi5pbmRleE9mKHQuc291cmNlKTwwJiZuLnB1c2godC5zb3VyY2UpfSkpfSkpO3ZhciBvPShpLXQteCkvKGEtMSk7ZS5ub2Rlcy5mb3JFYWNoKChmdW5jdGlvbihlKXtlLngxPShlLngwPXQrTWF0aC5tYXgoMCxNYXRoLm1pbihhLTEsTWF0aC5mbG9vcih3LmNhbGwobnVsbCxlLGEpKSkpKm8pK3h9KSl9ZnVuY3Rpb24gQyh0KXt2YXIgaT1yLm5lc3QoKS5rZXkoKGZ1bmN0aW9uKHQpe3JldHVybiB0LngwfSkpLnNvcnRLZXlzKGUuYXNjZW5kaW5nKS5lbnRyaWVzKHQubm9kZXMpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQudmFsdWVzfSkpOyFmdW5jdGlvbigpe3ZhciByPWUubWF4KGksKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmxlbmd0aH0pKSxhPTIvMyooeS1uKS8oci0xKTtiPmEmJihiPWEpO3ZhciBvPWUubWluKGksKGZ1bmN0aW9uKHQpe3JldHVybih5LW4tKHQubGVuZ3RoLTEpKmIpL2Uuc3VtKHQsdSl9KSk7aS5mb3JFYWNoKChmdW5jdGlvbih0KXt0LmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7dC55MT0odC55MD1lKSt0LnZhbHVlKm99KSl9KSksdC5saW5rcy5mb3JFYWNoKChmdW5jdGlvbih0KXt0LndpZHRoPXQudmFsdWUqb30pKX0oKSxkKCk7Zm9yKHZhciBhPTEsbz1BO28+MDstLW8pbChhKj0uOTkpLGQoKSxzKGEpLGQoKTtmdW5jdGlvbiBzKHQpe2kuZm9yRWFjaCgoZnVuY3Rpb24ocil7ci5mb3JFYWNoKChmdW5jdGlvbihyKXtpZihyLnRhcmdldExpbmtzLmxlbmd0aCl7dmFyIG49KGUuc3VtKHIudGFyZ2V0TGlua3MsaCkvZS5zdW0oci50YXJnZXRMaW5rcyx1KS1mKHIpKSp0O3IueTArPW4sci55MSs9bn19KSl9KSl9ZnVuY3Rpb24gbCh0KXtpLnNsaWNlKCkucmV2ZXJzZSgpLmZvckVhY2goKGZ1bmN0aW9uKHIpe3IuZm9yRWFjaCgoZnVuY3Rpb24ocil7aWYoci5zb3VyY2VMaW5rcy5sZW5ndGgpe3ZhciBuPShlLnN1bShyLnNvdXJjZUxpbmtzLHApL2Uuc3VtKHIuc291cmNlTGlua3MsdSktZihyKSkqdDtyLnkwKz1uLHIueTErPW59fSkpfSkpfWZ1bmN0aW9uIGQoKXtpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlLHIsaSxhPW4sbz10Lmxlbmd0aDtmb3IodC5zb3J0KGMpLGk9MDtpPG87KytpKShyPWEtKGU9dFtpXSkueTApPjAmJihlLnkwKz1yLGUueTErPXIpLGE9ZS55MStiO2lmKChyPWEtYi15KT4wKWZvcihhPWUueTAtPXIsZS55MS09cixpPW8tMjtpPj0wOy0taSkocj0oZT10W2ldKS55MStiLWEpPjAmJihlLnkwLT1yLGUueTEtPXIpLGE9ZS55MH0pKX19ZnVuY3Rpb24gUCh0KXt0Lm5vZGVzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3Quc291cmNlTGlua3Muc29ydChsKSx0LnRhcmdldExpbmtzLnNvcnQocyl9KSksdC5ub2Rlcy5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT10LnkwLHI9ZTt0LnNvdXJjZUxpbmtzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QueTA9ZSt0LndpZHRoLzIsZSs9dC53aWR0aH0pKSx0LnRhcmdldExpbmtzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QueTE9cit0LndpZHRoLzIscis9dC53aWR0aH0pKX0pKX1yZXR1cm4gTS51cGRhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIFAodCksdH0sTS5ub2RlSWQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KF89ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpvKHQpLE0pOl99LE0ubm9kZUFsaWduPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh3PSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6byh0KSxNKTp3fSxNLm5vZGVXaWR0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oeD0rdCxNKTp4fSxNLm5vZGVQYWRkaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhiPSt0LE0pOmJ9LE0ubm9kZXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KFQ9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpvKHQpLE0pOlR9LE0ubGlua3M9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGs9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpvKHQpLE0pOmt9LE0uc2l6ZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1uPTAsaT0rZVswXSx5PStlWzFdLE0pOltpLXQseS1uXX0sTS5leHRlbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9K2VbMF1bMF0saT0rZVsxXVswXSxuPStlWzBdWzFdLHk9K2VbMV1bMV0sTSk6W1t0LG5dLFtpLHldXX0sTS5pdGVyYXRpb25zPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhBPSt0LE0pOkF9LE19LHQuc2Fua2V5Q2VudGVyPWZ1bmN0aW9uKHQpe3JldHVybiB0LnRhcmdldExpbmtzLmxlbmd0aD90LmRlcHRoOnQuc291cmNlTGlua3MubGVuZ3RoP2UubWluKHQuc291cmNlTGlua3MsaSktMTowfSx0LnNhbmtleUxlZnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQuZGVwdGh9LHQuc2Fua2V5UmlnaHQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS0xLXQuaGVpZ2h0fSx0LnNhbmtleUp1c3RpZnk9YSx0LnNhbmtleUxpbmtIb3Jpem9udGFsPWZ1bmN0aW9uKCl7cmV0dXJuIG4ubGlua0hvcml6b250YWwoKS5zb3VyY2UoeSkudGFyZ2V0KHgpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KSl9LHsiZDMtYXJyYXkiOjEwNywiZDMtY29sbGVjdGlvbiI6MTA4LCJkMy1zaGFwZSI6MTE5fV0sNTg6W2Z1bmN0aW9uKHQsZSxyKXsoZnVuY3Rpb24oKXt2YXIgdD17dmVyc2lvbjoiMy44LjAifSxyPVtdLnNsaWNlLG49ZnVuY3Rpb24odCl7cmV0dXJuIHIuY2FsbCh0KX0saT1zZWxmLmRvY3VtZW50O2Z1bmN0aW9uIGEodCl7cmV0dXJuIHQmJih0Lm93bmVyRG9jdW1lbnR8fHQuZG9jdW1lbnR8fHQpLmRvY3VtZW50RWxlbWVudH1mdW5jdGlvbiBvKHQpe3JldHVybiB0JiYodC5vd25lckRvY3VtZW50JiZ0Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd8fHQuZG9jdW1lbnQmJnR8fHQuZGVmYXVsdFZpZXcpfWlmKGkpdHJ5e24oaS5kb2N1bWVudEVsZW1lbnQuY2hpbGROb2RlcylbMF0ubm9kZVR5cGV9Y2F0Y2godCl7bj1mdW5jdGlvbih0KXtmb3IodmFyIGU9dC5sZW5ndGgscj1uZXcgQXJyYXkoZSk7ZS0tOylyW2VdPXRbZV07cmV0dXJuIHJ9fWlmKERhdGUubm93fHwoRGF0ZS5ub3c9ZnVuY3Rpb24oKXtyZXR1cm4rbmV3IERhdGV9KSxpKXRyeXtpLmNyZWF0ZUVsZW1lbnQoIkRJViIpLnN0eWxlLnNldFByb3BlcnR5KCJvcGFjaXR5IiwwLCIiKX1jYXRjaCh0KXt2YXIgcz10aGlzLkVsZW1lbnQucHJvdG90eXBlLGw9cy5zZXRBdHRyaWJ1dGUsYz1zLnNldEF0dHJpYnV0ZU5TLHU9dGhpcy5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZSxmPXUuc2V0UHJvcGVydHk7cy5zZXRBdHRyaWJ1dGU9ZnVuY3Rpb24odCxlKXtsLmNhbGwodGhpcyx0LGUrIiIpfSxzLnNldEF0dHJpYnV0ZU5TPWZ1bmN0aW9uKHQsZSxyKXtjLmNhbGwodGhpcyx0LGUscisiIil9LHUuc2V0UHJvcGVydHk9ZnVuY3Rpb24odCxlLHIpe2YuY2FsbCh0aGlzLHQsZSsiIixyKX19ZnVuY3Rpb24gaCh0LGUpe3JldHVybiB0PGU/LTE6dD5lPzE6dD49ZT8wOk5hTn1mdW5jdGlvbiBwKHQpe3JldHVybiBudWxsPT09dD9OYU46K3R9ZnVuY3Rpb24gZCh0KXtyZXR1cm4haXNOYU4odCl9ZnVuY3Rpb24gbSh0KXtyZXR1cm57bGVmdDpmdW5jdGlvbihlLHIsbixpKXtmb3IoYXJndW1lbnRzLmxlbmd0aDwzJiYobj0wKSxhcmd1bWVudHMubGVuZ3RoPDQmJihpPWUubGVuZ3RoKTtuPGk7KXt2YXIgYT1uK2k+Pj4xO3QoZVthXSxyKTwwP249YSsxOmk9YX1yZXR1cm4gbn0scmlnaHQ6ZnVuY3Rpb24oZSxyLG4saSl7Zm9yKGFyZ3VtZW50cy5sZW5ndGg8MyYmKG49MCksYXJndW1lbnRzLmxlbmd0aDw0JiYoaT1lLmxlbmd0aCk7bjxpOyl7dmFyIGE9bitpPj4+MTt0KGVbYV0scik+MD9pPWE6bj1hKzF9cmV0dXJuIG59fX10LmFzY2VuZGluZz1oLHQuZGVzY2VuZGluZz1mdW5jdGlvbih0LGUpe3JldHVybiBlPHQ/LTE6ZT50PzE6ZT49dD8wOk5hTn0sdC5taW49ZnVuY3Rpb24odCxlKXt2YXIgcixuLGk9LTEsYT10Lmxlbmd0aDtpZigxPT09YXJndW1lbnRzLmxlbmd0aCl7Zm9yKDsrK2k8YTspaWYobnVsbCE9KG49dFtpXSkmJm4+PW4pe3I9bjticmVha31mb3IoOysraTxhOyludWxsIT0obj10W2ldKSYmcj5uJiYocj1uKX1lbHNle2Zvcig7KytpPGE7KWlmKG51bGwhPShuPWUuY2FsbCh0LHRbaV0saSkpJiZuPj1uKXtyPW47YnJlYWt9Zm9yKDsrK2k8YTspbnVsbCE9KG49ZS5jYWxsKHQsdFtpXSxpKSkmJnI+biYmKHI9bil9cmV0dXJuIHJ9LHQubWF4PWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixpPS0xLGE9dC5sZW5ndGg7aWYoMT09PWFyZ3VtZW50cy5sZW5ndGgpe2Zvcig7KytpPGE7KWlmKG51bGwhPShuPXRbaV0pJiZuPj1uKXtyPW47YnJlYWt9Zm9yKDsrK2k8YTspbnVsbCE9KG49dFtpXSkmJm4+ciYmKHI9bil9ZWxzZXtmb3IoOysraTxhOylpZihudWxsIT0obj1lLmNhbGwodCx0W2ldLGkpKSYmbj49bil7cj1uO2JyZWFrfWZvcig7KytpPGE7KW51bGwhPShuPWUuY2FsbCh0LHRbaV0saSkpJiZuPnImJihyPW4pfXJldHVybiByfSx0LmV4dGVudD1mdW5jdGlvbih0LGUpe3ZhciByLG4saSxhPS0xLG89dC5sZW5ndGg7aWYoMT09PWFyZ3VtZW50cy5sZW5ndGgpe2Zvcig7KythPG87KWlmKG51bGwhPShuPXRbYV0pJiZuPj1uKXtyPWk9bjticmVha31mb3IoOysrYTxvOyludWxsIT0obj10W2FdKSYmKHI+biYmKHI9biksaTxuJiYoaT1uKSl9ZWxzZXtmb3IoOysrYTxvOylpZihudWxsIT0obj1lLmNhbGwodCx0W2FdLGEpKSYmbj49bil7cj1pPW47YnJlYWt9Zm9yKDsrK2E8bzspbnVsbCE9KG49ZS5jYWxsKHQsdFthXSxhKSkmJihyPm4mJihyPW4pLGk8biYmKGk9bikpfXJldHVybltyLGldfSx0LnN1bT1mdW5jdGlvbih0LGUpe3ZhciByLG49MCxpPXQubGVuZ3RoLGE9LTE7aWYoMT09PWFyZ3VtZW50cy5sZW5ndGgpZm9yKDsrK2E8aTspZChyPSt0W2FdKSYmKG4rPXIpO2Vsc2UgZm9yKDsrK2E8aTspZChyPStlLmNhbGwodCx0W2FdLGEpKSYmKG4rPXIpO3JldHVybiBufSx0Lm1lYW49ZnVuY3Rpb24odCxlKXt2YXIgcixuPTAsaT10Lmxlbmd0aCxhPS0xLG89aTtpZigxPT09YXJndW1lbnRzLmxlbmd0aClmb3IoOysrYTxpOylkKHI9cCh0W2FdKSk/bis9cjotLW87ZWxzZSBmb3IoOysrYTxpOylkKHI9cChlLmNhbGwodCx0W2FdLGEpKSk/bis9cjotLW87aWYobylyZXR1cm4gbi9vfSx0LnF1YW50aWxlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9KHQubGVuZ3RoLTEpKmUrMSxuPU1hdGguZmxvb3IociksaT0rdFtuLTFdLGE9ci1uO3JldHVybiBhP2krYSoodFtuXS1pKTppfSx0Lm1lZGlhbj1mdW5jdGlvbihlLHIpe3ZhciBuLGk9W10sYT1lLmxlbmd0aCxvPS0xO2lmKDE9PT1hcmd1bWVudHMubGVuZ3RoKWZvcig7KytvPGE7KWQobj1wKGVbb10pKSYmaS5wdXNoKG4pO2Vsc2UgZm9yKDsrK288YTspZChuPXAoci5jYWxsKGUsZVtvXSxvKSkpJiZpLnB1c2gobik7aWYoaS5sZW5ndGgpcmV0dXJuIHQucXVhbnRpbGUoaS5zb3J0KGgpLC41KX0sdC52YXJpYW5jZT1mdW5jdGlvbih0LGUpe3ZhciByLG4saT10Lmxlbmd0aCxhPTAsbz0wLHM9LTEsbD0wO2lmKDE9PT1hcmd1bWVudHMubGVuZ3RoKWZvcig7KytzPGk7KWQocj1wKHRbc10pKSYmKG8rPShuPXItYSkqKHItKGErPW4vKytsKSkpO2Vsc2UgZm9yKDsrK3M8aTspZChyPXAoZS5jYWxsKHQsdFtzXSxzKSkpJiYobys9KG49ci1hKSooci0oYSs9bi8rK2wpKSk7aWYobD4xKXJldHVybiBvLyhsLTEpfSx0LmRldmlhdGlvbj1mdW5jdGlvbigpe3ZhciBlPXQudmFyaWFuY2UuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBlP01hdGguc3FydChlKTplfTt2YXIgZz1tKGgpO2Z1bmN0aW9uIHYodCl7cmV0dXJuIHQubGVuZ3RofXQuYmlzZWN0TGVmdD1nLmxlZnQsdC5iaXNlY3Q9dC5iaXNlY3RSaWdodD1nLnJpZ2h0LHQuYmlzZWN0b3I9ZnVuY3Rpb24odCl7cmV0dXJuIG0oMT09PXQubGVuZ3RoP2Z1bmN0aW9uKGUscil7cmV0dXJuIGgodChlKSxyKX06dCl9LHQuc2h1ZmZsZT1mdW5jdGlvbih0LGUscil7KGE9YXJndW1lbnRzLmxlbmd0aCk8MyYmKHI9dC5sZW5ndGgsYTwyJiYoZT0wKSk7Zm9yKHZhciBuLGksYT1yLWU7YTspaT1NYXRoLnJhbmRvbSgpKmEtLXwwLG49dFthK2VdLHRbYStlXT10W2krZV0sdFtpK2VdPW47cmV0dXJuIHR9LHQucGVybXV0ZT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1lLmxlbmd0aCxuPW5ldyBBcnJheShyKTtyLS07KW5bcl09dFtlW3JdXTtyZXR1cm4gbn0sdC5wYWlycz1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxyPXQubGVuZ3RoLTEsbj10WzBdLGk9bmV3IEFycmF5KHI8MD8wOnIpO2U8cjspaVtlXT1bbixuPXRbKytlXV07cmV0dXJuIGl9LHQudHJhbnNwb3NlPWZ1bmN0aW9uKGUpe2lmKCEoYT1lLmxlbmd0aCkpcmV0dXJuW107Zm9yKHZhciByPS0xLG49dC5taW4oZSx2KSxpPW5ldyBBcnJheShuKTsrK3I8bjspZm9yKHZhciBhLG89LTEscz1pW3JdPW5ldyBBcnJheShhKTsrK288YTspc1tvXT1lW29dW3JdO3JldHVybiBpfSx0LnppcD1mdW5jdGlvbigpe3JldHVybiB0LnRyYW5zcG9zZShhcmd1bWVudHMpfSx0LmtleXM9ZnVuY3Rpb24odCl7dmFyIGU9W107Zm9yKHZhciByIGluIHQpZS5wdXNoKHIpO3JldHVybiBlfSx0LnZhbHVlcz1mdW5jdGlvbih0KXt2YXIgZT1bXTtmb3IodmFyIHIgaW4gdCllLnB1c2godFtyXSk7cmV0dXJuIGV9LHQuZW50cmllcz1mdW5jdGlvbih0KXt2YXIgZT1bXTtmb3IodmFyIHIgaW4gdCllLnB1c2goe2tleTpyLHZhbHVlOnRbcl19KTtyZXR1cm4gZX0sdC5tZXJnZT1mdW5jdGlvbih0KXtmb3IodmFyIGUscixuLGk9dC5sZW5ndGgsYT0tMSxvPTA7KythPGk7KW8rPXRbYV0ubGVuZ3RoO2ZvcihyPW5ldyBBcnJheShvKTstLWk+PTA7KWZvcihlPShuPXRbaV0pLmxlbmd0aDstLWU+PTA7KXJbLS1vXT1uW2VdO3JldHVybiByfTt2YXIgeT1NYXRoLmFicztmdW5jdGlvbiB4KHQpe2Zvcih2YXIgZT0xO3QqZSUxOyllKj0xMDtyZXR1cm4gZX1mdW5jdGlvbiBiKHQsZSl7Zm9yKHZhciByIGluIGUpT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLHIse3ZhbHVlOmVbcl0sZW51bWVyYWJsZTohMX0pfWZ1bmN0aW9uIF8oKXt0aGlzLl89T2JqZWN0LmNyZWF0ZShudWxsKX10LnJhbmdlPWZ1bmN0aW9uKHQsZSxyKXtpZihhcmd1bWVudHMubGVuZ3RoPDMmJihyPTEsYXJndW1lbnRzLmxlbmd0aDwyJiYoZT10LHQ9MCkpLChlLXQpL3I9PTEvMCl0aHJvdyBuZXcgRXJyb3IoImluZmluaXRlIHJhbmdlIik7dmFyIG4saT1bXSxhPXgoeShyKSksbz0tMTtpZih0Kj1hLGUqPWEsKHIqPWEpPDApZm9yKDsobj10K3IqKytvKT5lOylpLnB1c2gobi9hKTtlbHNlIGZvcig7KG49dCtyKisrbyk8ZTspaS5wdXNoKG4vYSk7cmV0dXJuIGl9LHQubWFwPWZ1bmN0aW9uKHQsZSl7dmFyIHI9bmV3IF87aWYodCBpbnN0YW5jZW9mIF8pdC5mb3JFYWNoKChmdW5jdGlvbih0LGUpe3Iuc2V0KHQsZSl9KSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KHQpKXt2YXIgbixpPS0xLGE9dC5sZW5ndGg7aWYoMT09PWFyZ3VtZW50cy5sZW5ndGgpZm9yKDsrK2k8YTspci5zZXQoaSx0W2ldKTtlbHNlIGZvcig7KytpPGE7KXIuc2V0KGUuY2FsbCh0LG49dFtpXSxpKSxuKX1lbHNlIGZvcih2YXIgbyBpbiB0KXIuc2V0KG8sdFtvXSk7cmV0dXJuIHJ9O2Z1bmN0aW9uIHcodCl7cmV0dXJuIl9fcHJvdG9fXyI9PSh0Kz0iIil8fCJcMCI9PT10WzBdPyJcMCIrdDp0fWZ1bmN0aW9uIFQodCl7cmV0dXJuIlwwIj09PSh0Kz0iIilbMF0/dC5zbGljZSgxKTp0fWZ1bmN0aW9uIGsodCl7cmV0dXJuIHcodClpbiB0aGlzLl99ZnVuY3Rpb24gQSh0KXtyZXR1cm4odD13KHQpKWluIHRoaXMuXyYmZGVsZXRlIHRoaXMuX1t0XX1mdW5jdGlvbiBNKCl7dmFyIHQ9W107Zm9yKHZhciBlIGluIHRoaXMuXyl0LnB1c2goVChlKSk7cmV0dXJuIHR9ZnVuY3Rpb24gUygpe3ZhciB0PTA7Zm9yKHZhciBlIGluIHRoaXMuXykrK3Q7cmV0dXJuIHR9ZnVuY3Rpb24gRSgpe2Zvcih2YXIgdCBpbiB0aGlzLl8pcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gTCgpe3RoaXMuXz1PYmplY3QuY3JlYXRlKG51bGwpfWZ1bmN0aW9uIEModCl7cmV0dXJuIHR9ZnVuY3Rpb24gUCh0LGUscil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49ci5hcHBseShlLGFyZ3VtZW50cyk7cmV0dXJuIG49PT1lP3Q6bn19ZnVuY3Rpb24gSSh0LGUpe2lmKGUgaW4gdClyZXR1cm4gZTtlPWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKTtmb3IodmFyIHI9MCxuPU8ubGVuZ3RoO3I8bjsrK3Ipe3ZhciBpPU9bcl0rZTtpZihpIGluIHQpcmV0dXJuIGl9fWIoXyx7aGFzOmssZ2V0OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9bdyh0KV19LHNldDpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9bdyh0KV09ZX0scmVtb3ZlOkEsa2V5czpNLHZhbHVlczpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgZSBpbiB0aGlzLl8pdC5wdXNoKHRoaXMuX1tlXSk7cmV0dXJuIHR9LGVudHJpZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtmb3IodmFyIGUgaW4gdGhpcy5fKXQucHVzaCh7a2V5OlQoZSksdmFsdWU6dGhpcy5fW2VdfSk7cmV0dXJuIHR9LHNpemU6UyxlbXB0eTpFLGZvckVhY2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlIGluIHRoaXMuXyl0LmNhbGwodGhpcyxUKGUpLHRoaXMuX1tlXSl9fSksdC5uZXN0PWZ1bmN0aW9uKCl7dmFyIGUscixuPXt9LGk9W10sYT1bXTtmdW5jdGlvbiBvKHQsYSxzKXtpZihzPj1pLmxlbmd0aClyZXR1cm4gcj9yLmNhbGwobixhKTplP2Euc29ydChlKTphO2Zvcih2YXIgbCxjLHUsZixoPS0xLHA9YS5sZW5ndGgsZD1pW3MrK10sbT1uZXcgXzsrK2g8cDspKGY9bS5nZXQobD1kKGM9YVtoXSkpKT9mLnB1c2goYyk6bS5zZXQobCxbY10pO3JldHVybiB0PyhjPXQoKSx1PWZ1bmN0aW9uKGUscil7Yy5zZXQoZSxvKHQscixzKSl9KTooYz17fSx1PWZ1bmN0aW9uKGUscil7Y1tlXT1vKHQscixzKX0pLG0uZm9yRWFjaCh1KSxjfXJldHVybiBuLm1hcD1mdW5jdGlvbih0LGUpe3JldHVybiBvKGUsdCwwKX0sbi5lbnRyaWVzPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbiB0KGUscil7aWYocj49aS5sZW5ndGgpcmV0dXJuIGU7dmFyIG49W10sbz1hW3IrK107cmV0dXJuIGUuZm9yRWFjaCgoZnVuY3Rpb24oZSxpKXtuLnB1c2goe2tleTplLHZhbHVlczp0KGkscil9KX0pKSxvP24uc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gbyh0LmtleSxlLmtleSl9KSk6bn0obyh0Lm1hcCxlLDApLDApfSxuLmtleT1mdW5jdGlvbih0KXtyZXR1cm4gaS5wdXNoKHQpLG59LG4uc29ydEtleXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFbaS5sZW5ndGgtMV09dCxufSxuLnNvcnRWYWx1ZXM9ZnVuY3Rpb24odCl7cmV0dXJuIGU9dCxufSxuLnJvbGx1cD1mdW5jdGlvbih0KXtyZXR1cm4gcj10LG59LG59LHQuc2V0PWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBMO2lmKHQpZm9yKHZhciByPTAsbj10Lmxlbmd0aDtyPG47KytyKWUuYWRkKHRbcl0pO3JldHVybiBlfSxiKEwse2hhczprLGFkZDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fW3codCs9IiIpXT0hMCx0fSxyZW1vdmU6QSx2YWx1ZXM6TSxzaXplOlMsZW1wdHk6RSxmb3JFYWNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSBpbiB0aGlzLl8pdC5jYWxsKHRoaXMsVChlKSl9fSksdC5iZWhhdmlvcj17fSx0LnJlYmluZD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcixuPTEsaT1hcmd1bWVudHMubGVuZ3RoOysrbjxpOyl0W3I9YXJndW1lbnRzW25dXT1QKHQsZSxlW3JdKTtyZXR1cm4gdH07dmFyIE89WyJ3ZWJraXQiLCJtcyIsIm1veiIsIk1veiIsIm8iLCJPIl07ZnVuY3Rpb24geigpe31mdW5jdGlvbiBEKCl7fWZ1bmN0aW9uIFIodCl7dmFyIGU9W10scj1uZXcgXztmdW5jdGlvbiBuKCl7Zm9yKHZhciByLG49ZSxpPS0xLGE9bi5sZW5ndGg7KytpPGE7KShyPW5baV0ub24pJiZyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gdH1yZXR1cm4gbi5vbj1mdW5jdGlvbihuLGkpe3ZhciBhLG89ci5nZXQobik7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj9vJiZvLm9uOihvJiYoby5vbj1udWxsLGU9ZS5zbGljZSgwLGE9ZS5pbmRleE9mKG8pKS5jb25jYXQoZS5zbGljZShhKzEpKSxyLnJlbW92ZShuKSksaSYmZS5wdXNoKHIuc2V0KG4se29uOml9KSksdCl9LG59ZnVuY3Rpb24gRigpe3QuZXZlbnQucHJldmVudERlZmF1bHQoKX1mdW5jdGlvbiBCKCl7Zm9yKHZhciBlLHI9dC5ldmVudDtlPXIuc291cmNlRXZlbnQ7KXI9ZTtyZXR1cm4gcn1mdW5jdGlvbiBOKGUpe2Zvcih2YXIgcj1uZXcgRCxuPTAsaT1hcmd1bWVudHMubGVuZ3RoOysrbjxpOylyW2FyZ3VtZW50c1tuXV09UihyKTtyZXR1cm4gci5vZj1mdW5jdGlvbihuLGkpe3JldHVybiBmdW5jdGlvbihhKXt0cnl7dmFyIG89YS5zb3VyY2VFdmVudD10LmV2ZW50O2EudGFyZ2V0PWUsdC5ldmVudD1hLHJbYS50eXBlXS5hcHBseShuLGkpfWZpbmFsbHl7dC5ldmVudD1vfX19LHJ9dC5kaXNwYXRjaD1mdW5jdGlvbigpe2Zvcih2YXIgdD1uZXcgRCxlPS0xLHI9YXJndW1lbnRzLmxlbmd0aDsrK2U8cjspdFthcmd1bWVudHNbZV1dPVIodCk7cmV0dXJuIHR9LEQucHJvdG90eXBlLm9uPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5pbmRleE9mKCIuIiksbj0iIjtpZihyPj0wJiYobj10LnNsaWNlKHIrMSksdD10LnNsaWNlKDAscikpLHQpcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj90aGlzW3RdLm9uKG4pOnRoaXNbdF0ub24obixlKTtpZigyPT09YXJndW1lbnRzLmxlbmd0aCl7aWYobnVsbD09ZSlmb3IodCBpbiB0aGlzKXRoaXMuaGFzT3duUHJvcGVydHkodCkmJnRoaXNbdF0ub24obixudWxsKTtyZXR1cm4gdGhpc319LHQuZXZlbnQ9bnVsbCx0LnJlcXVvdGU9ZnVuY3Rpb24odCl7cmV0dXJuIHQucmVwbGFjZShqLCJcXCQmIil9O3ZhciBqPS9bXFxcXlwkXCpcK1w/XHxcW1xdXChcKVwuXHtcfV0vZyxVPXt9Ll9fcHJvdG9fXz9mdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByIGluIGUpdFtyXT1lW3JdfTtmdW5jdGlvbiBWKHQpe3JldHVybiBVKHQsWSksdH12YXIgSD1mdW5jdGlvbih0LGUpe3JldHVybiBlLnF1ZXJ5U2VsZWN0b3IodCl9LHE9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5xdWVyeVNlbGVjdG9yQWxsKHQpfSxHPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5tYXRjaGVzfHx0W0kodCwibWF0Y2hlc1NlbGVjdG9yIildO3JldHVybihHPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHIuY2FsbCh0LGUpfSkodCxlKX07ImZ1bmN0aW9uIj09dHlwZW9mIFNpenpsZSYmKEg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gU2l6emxlKHQsZSlbMF18fG51bGx9LHE9U2l6emxlLEc9U2l6emxlLm1hdGNoZXNTZWxlY3RvciksdC5zZWxlY3Rpb249ZnVuY3Rpb24oKXtyZXR1cm4gdC5zZWxlY3QoaS5kb2N1bWVudEVsZW1lbnQpfTt2YXIgWT10LnNlbGVjdGlvbi5wcm90b3R5cGU9W107ZnVuY3Rpb24gVyh0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdD90OmZ1bmN0aW9uKCl7cmV0dXJuIEgodCx0aGlzKX19ZnVuY3Rpb24gWCh0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdD90OmZ1bmN0aW9uKCl7cmV0dXJuIHEodCx0aGlzKX19WS5zZWxlY3Q9ZnVuY3Rpb24odCl7dmFyIGUscixuLGksYT1bXTt0PVcodCk7Zm9yKHZhciBvPS0xLHM9dGhpcy5sZW5ndGg7KytvPHM7KXthLnB1c2goZT1bXSksZS5wYXJlbnROb2RlPShuPXRoaXNbb10pLnBhcmVudE5vZGU7Zm9yKHZhciBsPS0xLGM9bi5sZW5ndGg7KytsPGM7KShpPW5bbF0pPyhlLnB1c2gocj10LmNhbGwoaSxpLl9fZGF0YV9fLGwsbykpLHImJiJfX2RhdGFfXyJpbiBpJiYoci5fX2RhdGFfXz1pLl9fZGF0YV9fKSk6ZS5wdXNoKG51bGwpfXJldHVybiBWKGEpfSxZLnNlbGVjdEFsbD1mdW5jdGlvbih0KXt2YXIgZSxyLGk9W107dD1YKHQpO2Zvcih2YXIgYT0tMSxvPXRoaXMubGVuZ3RoOysrYTxvOylmb3IodmFyIHM9dGhpc1thXSxsPS0xLGM9cy5sZW5ndGg7KytsPGM7KShyPXNbbF0pJiYoaS5wdXNoKGU9bih0LmNhbGwocixyLl9fZGF0YV9fLGwsYSkpKSxlLnBhcmVudE5vZGU9cik7cmV0dXJuIFYoaSl9O3ZhciBaPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIixKPXtzdmc6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix4aHRtbDpaLHhsaW5rOiJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIix4bWw6Imh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvIn07ZnVuY3Rpb24gSyhlLHIpe3JldHVybiBlPXQubnMucXVhbGlmeShlKSxudWxsPT1yP2UubG9jYWw/ZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKGUuc3BhY2UsZS5sb2NhbCl9OmZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUoZSl9OiJmdW5jdGlvbiI9PXR5cGVvZiByP2UubG9jYWw/ZnVuY3Rpb24oKXt2YXIgdD1yLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT10P3RoaXMucmVtb3ZlQXR0cmlidXRlTlMoZS5zcGFjZSxlLmxvY2FsKTp0aGlzLnNldEF0dHJpYnV0ZU5TKGUuc3BhY2UsZS5sb2NhbCx0KX06ZnVuY3Rpb24oKXt2YXIgdD1yLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT10P3RoaXMucmVtb3ZlQXR0cmlidXRlKGUpOnRoaXMuc2V0QXR0cmlidXRlKGUsdCl9OmUubG9jYWw/ZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZU5TKGUuc3BhY2UsZS5sb2NhbCxyKX06ZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZShlLHIpfX1mdW5jdGlvbiBRKHQpe3JldHVybiB0LnRyaW0oKS5yZXBsYWNlKC9ccysvZywiICIpfWZ1bmN0aW9uICQoZSl7cmV0dXJuIG5ldyBSZWdFeHAoIig/Ol58XFxzKykiK3QucmVxdW90ZShlKSsiKD86XFxzK3wkKSIsImciKX1mdW5jdGlvbiB0dCh0KXtyZXR1cm4odCsiIikudHJpbSgpLnNwbGl0KC9efFxzKy8pfWZ1bmN0aW9uIGV0KHQsZSl7dmFyIHI9KHQ9dHQodCkubWFwKHJ0KSkubGVuZ3RoO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlP2Z1bmN0aW9uKCl7Zm9yKHZhciBuPS0xLGk9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7KytuPHI7KXRbbl0odGhpcyxpKX06ZnVuY3Rpb24oKXtmb3IodmFyIG49LTE7KytuPHI7KXRbbl0odGhpcyxlKX19ZnVuY3Rpb24gcnQodCl7dmFyIGU9JCh0KTtyZXR1cm4gZnVuY3Rpb24ocixuKXtpZihpPXIuY2xhc3NMaXN0KXJldHVybiBuP2kuYWRkKHQpOmkucmVtb3ZlKHQpO3ZhciBpPXIuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIjtuPyhlLmxhc3RJbmRleD0wLGUudGVzdChpKXx8ci5zZXRBdHRyaWJ1dGUoImNsYXNzIixRKGkrIiAiK3QpKSk6ci5zZXRBdHRyaWJ1dGUoImNsYXNzIixRKGkucmVwbGFjZShlLCIgIikpKX19ZnVuY3Rpb24gbnQodCxlLHIpe3JldHVybiBudWxsPT1lP2Z1bmN0aW9uKCl7dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KX06ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZnVuY3Rpb24oKXt2YXIgbj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1uP3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCk6dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSh0LG4scil9OmZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSh0LGUscil9fWZ1bmN0aW9uIGl0KHQsZSl7cmV0dXJuIG51bGw9PWU/ZnVuY3Rpb24oKXtkZWxldGUgdGhpc1t0XX06ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZnVuY3Rpb24oKXt2YXIgcj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1yP2RlbGV0ZSB0aGlzW3RdOnRoaXNbdF09cn06ZnVuY3Rpb24oKXt0aGlzW3RdPWV9fWZ1bmN0aW9uIGF0KGUpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6KGU9dC5ucy5xdWFsaWZ5KGUpKS5sb2NhbD9mdW5jdGlvbigpe3JldHVybiB0aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGUuc3BhY2UsZS5sb2NhbCl9OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vd25lckRvY3VtZW50LHI9dGhpcy5uYW1lc3BhY2VVUkk7cmV0dXJuIHI9PT1aJiZ0LmRvY3VtZW50RWxlbWVudC5uYW1lc3BhY2VVUkk9PT1aP3QuY3JlYXRlRWxlbWVudChlKTp0LmNyZWF0ZUVsZW1lbnROUyhyLGUpfX1mdW5jdGlvbiBvdCgpe3ZhciB0PXRoaXMucGFyZW50Tm9kZTt0JiZ0LnJlbW92ZUNoaWxkKHRoaXMpfWZ1bmN0aW9uIHN0KHQpe3JldHVybntfX2RhdGFfXzp0fX1mdW5jdGlvbiBsdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gRyh0aGlzLHQpfX1mdW5jdGlvbiBjdCh0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aHx8KHQ9aCksZnVuY3Rpb24oZSxyKXtyZXR1cm4gZSYmcj90KGUuX19kYXRhX18sci5fX2RhdGFfXyk6IWUtIXJ9fWZ1bmN0aW9uIHV0KHQsZSl7Zm9yKHZhciByPTAsbj10Lmxlbmd0aDtyPG47cisrKWZvcih2YXIgaSxhPXRbcl0sbz0wLHM9YS5sZW5ndGg7bzxzO28rKykoaT1hW29dKSYmZShpLG8scik7cmV0dXJuIHR9ZnVuY3Rpb24gZnQodCl7cmV0dXJuIFUodCxodCksdH10Lm5zPXtwcmVmaXg6SixxdWFsaWZ5OmZ1bmN0aW9uKHQpe3ZhciBlPXQuaW5kZXhPZigiOiIpLHI9dDtyZXR1cm4gZT49MCYmInhtbG5zIiE9PShyPXQuc2xpY2UoMCxlKSkmJih0PXQuc2xpY2UoZSsxKSksSi5oYXNPd25Qcm9wZXJ0eShyKT97c3BhY2U6SltyXSxsb2NhbDp0fTp0fX0sWS5hdHRyPWZ1bmN0aW9uKGUscil7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXtpZigic3RyaW5nIj09dHlwZW9mIGUpe3ZhciBuPXRoaXMubm9kZSgpO3JldHVybihlPXQubnMucXVhbGlmeShlKSkubG9jYWw/bi5nZXRBdHRyaWJ1dGVOUyhlLnNwYWNlLGUubG9jYWwpOm4uZ2V0QXR0cmlidXRlKGUpfWZvcihyIGluIGUpdGhpcy5lYWNoKEsocixlW3JdKSk7cmV0dXJuIHRoaXN9cmV0dXJuIHRoaXMuZWFjaChLKGUscikpfSxZLmNsYXNzZWQ9ZnVuY3Rpb24odCxlKXtpZihhcmd1bWVudHMubGVuZ3RoPDIpe2lmKCJzdHJpbmciPT10eXBlb2YgdCl7dmFyIHI9dGhpcy5ub2RlKCksbj0odD10dCh0KSkubGVuZ3RoLGk9LTE7aWYoZT1yLmNsYXNzTGlzdCl7Zm9yKDsrK2k8bjspaWYoIWUuY29udGFpbnModFtpXSkpcmV0dXJuITF9ZWxzZSBmb3IoZT1yLmdldEF0dHJpYnV0ZSgiY2xhc3MiKTsrK2k8bjspaWYoISQodFtpXSkudGVzdChlKSlyZXR1cm4hMTtyZXR1cm4hMH1mb3IoZSBpbiB0KXRoaXMuZWFjaChldChlLHRbZV0pKTtyZXR1cm4gdGhpc31yZXR1cm4gdGhpcy5lYWNoKGV0KHQsZSkpfSxZLnN0eWxlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoO2lmKG48Myl7aWYoInN0cmluZyIhPXR5cGVvZiB0KXtmb3IociBpbiBuPDImJihlPSIiKSx0KXRoaXMuZWFjaChudChyLHRbcl0sZSkpO3JldHVybiB0aGlzfWlmKG48Mil7dmFyIGk9dGhpcy5ub2RlKCk7cmV0dXJuIG8oaSkuZ2V0Q29tcHV0ZWRTdHlsZShpLG51bGwpLmdldFByb3BlcnR5VmFsdWUodCl9cj0iIn1yZXR1cm4gdGhpcy5lYWNoKG50KHQsZSxyKSl9LFkucHJvcGVydHk9ZnVuY3Rpb24odCxlKXtpZihhcmd1bWVudHMubGVuZ3RoPDIpe2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4gdGhpcy5ub2RlKClbdF07Zm9yKGUgaW4gdCl0aGlzLmVhY2goaXQoZSx0W2VdKSk7cmV0dXJuIHRoaXN9cmV0dXJuIHRoaXMuZWFjaChpdCh0LGUpKX0sWS50ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaCgiZnVuY3Rpb24iPT10eXBlb2YgdD9mdW5jdGlvbigpe3ZhciBlPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMudGV4dENvbnRlbnQ9bnVsbD09ZT8iIjplfTpudWxsPT10P2Z1bmN0aW9uKCl7dGhpcy50ZXh0Q29udGVudD0iIn06ZnVuY3Rpb24oKXt0aGlzLnRleHRDb250ZW50PXR9KTp0aGlzLm5vZGUoKS50ZXh0Q29udGVudH0sWS5odG1sPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaCgiZnVuY3Rpb24iPT10eXBlb2YgdD9mdW5jdGlvbigpe3ZhciBlPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMuaW5uZXJIVE1MPW51bGw9PWU/IiI6ZX06bnVsbD09dD9mdW5jdGlvbigpe3RoaXMuaW5uZXJIVE1MPSIifTpmdW5jdGlvbigpe3RoaXMuaW5uZXJIVE1MPXR9KTp0aGlzLm5vZGUoKS5pbm5lckhUTUx9LFkuYXBwZW5kPWZ1bmN0aW9uKHQpe3JldHVybiB0PWF0KHQpLHRoaXMuc2VsZWN0KChmdW5jdGlvbigpe3JldHVybiB0aGlzLmFwcGVuZENoaWxkKHQuYXBwbHkodGhpcyxhcmd1bWVudHMpKX0pKX0sWS5pbnNlcnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD1hdCh0KSxlPVcoZSksdGhpcy5zZWxlY3QoKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5zZXJ0QmVmb3JlKHQuYXBwbHkodGhpcyxhcmd1bWVudHMpLGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfHxudWxsKX0pKX0sWS5yZW1vdmU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKG90KX0sWS5kYXRhPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixpPS0xLGE9dGhpcy5sZW5ndGg7aWYoIWFyZ3VtZW50cy5sZW5ndGgpe2Zvcih0PW5ldyBBcnJheShhPShyPXRoaXNbMF0pLmxlbmd0aCk7KytpPGE7KShuPXJbaV0pJiYodFtpXT1uLl9fZGF0YV9fKTtyZXR1cm4gdH1mdW5jdGlvbiBvKHQscil7dmFyIG4saSxhLG89dC5sZW5ndGgsdT1yLmxlbmd0aCxmPU1hdGgubWluKG8sdSksaD1uZXcgQXJyYXkodSkscD1uZXcgQXJyYXkodSksZD1uZXcgQXJyYXkobyk7aWYoZSl7dmFyIG0sZz1uZXcgXyx2PW5ldyBBcnJheShvKTtmb3Iobj0tMTsrK248bzspKGk9dFtuXSkmJihnLmhhcyhtPWUuY2FsbChpLGkuX19kYXRhX18sbikpP2Rbbl09aTpnLnNldChtLGkpLHZbbl09bSk7Zm9yKG49LTE7KytuPHU7KShpPWcuZ2V0KG09ZS5jYWxsKHIsYT1yW25dLG4pKSk/ITAhPT1pJiYoaFtuXT1pLGkuX19kYXRhX189YSk6cFtuXT1zdChhKSxnLnNldChtLCEwKTtmb3Iobj0tMTsrK248bzspbiBpbiB2JiYhMCE9PWcuZ2V0KHZbbl0pJiYoZFtuXT10W25dKX1lbHNle2ZvcihuPS0xOysrbjxmOylpPXRbbl0sYT1yW25dLGk/KGkuX19kYXRhX189YSxoW25dPWkpOnBbbl09c3QoYSk7Zm9yKDtuPHU7KytuKXBbbl09c3QocltuXSk7Zm9yKDtuPG87KytuKWRbbl09dFtuXX1wLnVwZGF0ZT1oLHAucGFyZW50Tm9kZT1oLnBhcmVudE5vZGU9ZC5wYXJlbnROb2RlPXQucGFyZW50Tm9kZSxzLnB1c2gocCksbC5wdXNoKGgpLGMucHVzaChkKX12YXIgcz1mdChbXSksbD1WKFtdKSxjPVYoW10pO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0KWZvcig7KytpPGE7KW8ocj10aGlzW2ldLHQuY2FsbChyLHIucGFyZW50Tm9kZS5fX2RhdGFfXyxpKSk7ZWxzZSBmb3IoOysraTxhOylvKHI9dGhpc1tpXSx0KTtyZXR1cm4gbC5lbnRlcj1mdW5jdGlvbigpe3JldHVybiBzfSxsLmV4aXQ9ZnVuY3Rpb24oKXtyZXR1cm4gY30sbH0sWS5kYXR1bT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLnByb3BlcnR5KCJfX2RhdGFfXyIsdCk6dGhpcy5wcm9wZXJ0eSgiX19kYXRhX18iKX0sWS5maWx0ZXI9ZnVuY3Rpb24odCl7dmFyIGUscixuLGk9W107ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PWx0KHQpKTtmb3IodmFyIGE9MCxvPXRoaXMubGVuZ3RoO2E8bzthKyspe2kucHVzaChlPVtdKSxlLnBhcmVudE5vZGU9KHI9dGhpc1thXSkucGFyZW50Tm9kZTtmb3IodmFyIHM9MCxsPXIubGVuZ3RoO3M8bDtzKyspKG49cltzXSkmJnQuY2FsbChuLG4uX19kYXRhX18scyxhKSYmZS5wdXNoKG4pfXJldHVybiBWKGkpfSxZLm9yZGVyPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PS0xLGU9dGhpcy5sZW5ndGg7Kyt0PGU7KWZvcih2YXIgcixuPXRoaXNbdF0saT1uLmxlbmd0aC0xLGE9bltpXTstLWk+PTA7KShyPW5baV0pJiYoYSYmYSE9PXIubmV4dFNpYmxpbmcmJmEucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocixhKSxhPXIpO3JldHVybiB0aGlzfSxZLnNvcnQ9ZnVuY3Rpb24odCl7dD1jdC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7Zm9yKHZhciBlPS0xLHI9dGhpcy5sZW5ndGg7KytlPHI7KXRoaXNbZV0uc29ydCh0KTtyZXR1cm4gdGhpcy5vcmRlcigpfSxZLmVhY2g9ZnVuY3Rpb24odCl7cmV0dXJuIHV0KHRoaXMsKGZ1bmN0aW9uKGUscixuKXt0LmNhbGwoZSxlLl9fZGF0YV9fLHIsbil9KSl9LFkuY2FsbD1mdW5jdGlvbih0KXt2YXIgZT1uKGFyZ3VtZW50cyk7cmV0dXJuIHQuYXBwbHkoZVswXT10aGlzLGUpLHRoaXN9LFkuZW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5ub2RlKCl9LFkubm9kZT1mdW5jdGlvbigpe2Zvcih2YXIgdD0wLGU9dGhpcy5sZW5ndGg7dDxlO3QrKylmb3IodmFyIHI9dGhpc1t0XSxuPTAsaT1yLmxlbmd0aDtuPGk7bisrKXt2YXIgYT1yW25dO2lmKGEpcmV0dXJuIGF9cmV0dXJuIG51bGx9LFkuc2l6ZT1mdW5jdGlvbigpe3ZhciB0PTA7cmV0dXJuIHV0KHRoaXMsKGZ1bmN0aW9uKCl7Kyt0fSkpLHR9O3ZhciBodD1bXTtmdW5jdGlvbiBwdCh0KXt2YXIgZSxyO3JldHVybiBmdW5jdGlvbihuLGksYSl7dmFyIG8scz10W2FdLnVwZGF0ZSxsPXMubGVuZ3RoO2ZvcihhIT1yJiYocj1hLGU9MCksaT49ZSYmKGU9aSsxKTshKG89c1tlXSkmJisrZTxsOyk7cmV0dXJuIG99fWZ1bmN0aW9uIGR0KGUscixpKXt2YXIgYT0iX19vbiIrZSxvPWUuaW5kZXhPZigiLiIpLHM9Z3Q7bz4wJiYoZT1lLnNsaWNlKDAsbykpO3ZhciBsPW10LmdldChlKTtmdW5jdGlvbiBjKCl7dmFyIHQ9dGhpc1thXTt0JiYodGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGUsdCx0LiQpLGRlbGV0ZSB0aGlzW2FdKX1yZXR1cm4gbCYmKGU9bCxzPXZ0KSxvP3I/ZnVuY3Rpb24oKXt2YXIgdD1zKHIsbihhcmd1bWVudHMpKTtjLmNhbGwodGhpcyksdGhpcy5hZGRFdmVudExpc3RlbmVyKGUsdGhpc1thXT10LHQuJD1pKSx0Ll89cn06YzpyP3o6ZnVuY3Rpb24oKXt2YXIgcixuPW5ldyBSZWdFeHAoIl5fX29uKFteLl0rKSIrdC5yZXF1b3RlKGUpKyIkIik7Zm9yKHZhciBpIGluIHRoaXMpaWYocj1pLm1hdGNoKG4pKXt2YXIgYT10aGlzW2ldO3RoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihyWzFdLGEsYS4kKSxkZWxldGUgdGhpc1tpXX19fXQuc2VsZWN0aW9uLmVudGVyPWZ0LHQuc2VsZWN0aW9uLmVudGVyLnByb3RvdHlwZT1odCxodC5hcHBlbmQ9WS5hcHBlbmQsaHQuZW1wdHk9WS5lbXB0eSxodC5ub2RlPVkubm9kZSxodC5jYWxsPVkuY2FsbCxodC5zaXplPVkuc2l6ZSxodC5zZWxlY3Q9ZnVuY3Rpb24odCl7Zm9yKHZhciBlLHIsbixpLGEsbz1bXSxzPS0xLGw9dGhpcy5sZW5ndGg7KytzPGw7KXtuPShpPXRoaXNbc10pLnVwZGF0ZSxvLnB1c2goZT1bXSksZS5wYXJlbnROb2RlPWkucGFyZW50Tm9kZTtmb3IodmFyIGM9LTEsdT1pLmxlbmd0aDsrK2M8dTspKGE9aVtjXSk/KGUucHVzaChuW2NdPXI9dC5jYWxsKGkucGFyZW50Tm9kZSxhLl9fZGF0YV9fLGMscykpLHIuX19kYXRhX189YS5fX2RhdGFfXyk6ZS5wdXNoKG51bGwpfXJldHVybiBWKG8pfSxodC5pbnNlcnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyJiYoZT1wdCh0aGlzKSksWS5pbnNlcnQuY2FsbCh0aGlzLHQsZSl9LHQuc2VsZWN0PWZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiJzdHJpbmciPT10eXBlb2YgdD8oZT1bSCh0LGkpXSkucGFyZW50Tm9kZT1pLmRvY3VtZW50RWxlbWVudDooZT1bdF0pLnBhcmVudE5vZGU9YSh0KSxWKFtlXSl9LHQuc2VsZWN0QWxsPWZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiJzdHJpbmciPT10eXBlb2YgdD8oZT1uKHEodCxpKSkpLnBhcmVudE5vZGU9aS5kb2N1bWVudEVsZW1lbnQ6KGU9bih0KSkucGFyZW50Tm9kZT1udWxsLFYoW2VdKX0sWS5vbj1mdW5jdGlvbih0LGUscil7dmFyIG49YXJndW1lbnRzLmxlbmd0aDtpZihuPDMpe2lmKCJzdHJpbmciIT10eXBlb2YgdCl7Zm9yKHIgaW4gbjwyJiYoZT0hMSksdCl0aGlzLmVhY2goZHQocix0W3JdLGUpKTtyZXR1cm4gdGhpc31pZihuPDIpcmV0dXJuKG49dGhpcy5ub2RlKClbIl9fb24iK3RdKSYmbi5fO3I9ITF9cmV0dXJuIHRoaXMuZWFjaChkdCh0LGUscikpfTt2YXIgbXQ9dC5tYXAoe21vdXNlZW50ZXI6Im1vdXNlb3ZlciIsbW91c2VsZWF2ZToibW91c2VvdXQifSk7ZnVuY3Rpb24gZ3QoZSxyKXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGk9dC5ldmVudDt0LmV2ZW50PW4sclswXT10aGlzLl9fZGF0YV9fO3RyeXtlLmFwcGx5KHRoaXMscil9ZmluYWxseXt0LmV2ZW50PWl9fX1mdW5jdGlvbiB2dCh0LGUpe3ZhciByPWd0KHQsZSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBlPXQucmVsYXRlZFRhcmdldDtlJiYoZT09PXRoaXN8fDgmZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0aGlzKSl8fHIuY2FsbCh0aGlzLHQpfX1pJiZtdC5mb3JFYWNoKChmdW5jdGlvbih0KXsib24iK3QgaW4gaSYmbXQucmVtb3ZlKHQpfSkpO3ZhciB5dCx4dD0wO2Z1bmN0aW9uIGJ0KGUpe3ZhciByPSIuZHJhZ3N1cHByZXNzLSIrICsreHQsbj0iY2xpY2siK3IsaT10LnNlbGVjdChvKGUpKS5vbigidG91Y2htb3ZlIityLEYpLm9uKCJkcmFnc3RhcnQiK3IsRikub24oInNlbGVjdHN0YXJ0IityLEYpO2lmKG51bGw9PXl0JiYoeXQ9ISgib25zZWxlY3RzdGFydCJpbiBlKSYmSShlLnN0eWxlLCJ1c2VyU2VsZWN0IikpLHl0KXt2YXIgcz1hKGUpLnN0eWxlLGw9c1t5dF07c1t5dF09Im5vbmUifXJldHVybiBmdW5jdGlvbih0KXtpZihpLm9uKHIsbnVsbCkseXQmJihzW3l0XT1sKSx0KXt2YXIgZT1mdW5jdGlvbigpe2kub24obixudWxsKX07aS5vbihuLChmdW5jdGlvbigpe0YoKSxlKCl9KSwhMCksc2V0VGltZW91dChlLDApfX19dC5tb3VzZT1mdW5jdGlvbih0KXtyZXR1cm4gd3QodCxCKCkpfTt2YXIgX3Q9dGhpcy5uYXZpZ2F0b3ImJi9XZWJLaXQvLnRlc3QodGhpcy5uYXZpZ2F0b3IudXNlckFnZW50KT8tMTowO2Z1bmN0aW9uIHd0KGUscil7ci5jaGFuZ2VkVG91Y2hlcyYmKHI9ci5jaGFuZ2VkVG91Y2hlc1swXSk7dmFyIG49ZS5vd25lclNWR0VsZW1lbnR8fGU7aWYobi5jcmVhdGVTVkdQb2ludCl7dmFyIGk9bi5jcmVhdGVTVkdQb2ludCgpO2lmKF90PDApe3ZhciBhPW8oZSk7aWYoYS5zY3JvbGxYfHxhLnNjcm9sbFkpe3ZhciBzPShuPXQuc2VsZWN0KCJib2R5IikuYXBwZW5kKCJzdmciKS5zdHlsZSh7cG9zaXRpb246ImFic29sdXRlIix0b3A6MCxsZWZ0OjAsbWFyZ2luOjAscGFkZGluZzowLGJvcmRlcjoibm9uZSJ9LCJpbXBvcnRhbnQiKSlbMF1bMF0uZ2V0U2NyZWVuQ1RNKCk7X3Q9IShzLmZ8fHMuZSksbi5yZW1vdmUoKX19cmV0dXJuIF90PyhpLng9ci5wYWdlWCxpLnk9ci5wYWdlWSk6KGkueD1yLmNsaWVudFgsaS55PXIuY2xpZW50WSksWyhpPWkubWF0cml4VHJhbnNmb3JtKGUuZ2V0U2NyZWVuQ1RNKCkuaW52ZXJzZSgpKSkueCxpLnldfXZhciBsPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuW3IuY2xpZW50WC1sLmxlZnQtZS5jbGllbnRMZWZ0LHIuY2xpZW50WS1sLnRvcC1lLmNsaWVudFRvcF19ZnVuY3Rpb24gVHQoKXtyZXR1cm4gdC5ldmVudC5jaGFuZ2VkVG91Y2hlc1swXS5pZGVudGlmaWVyfXQudG91Y2g9ZnVuY3Rpb24odCxlLHIpe2lmKGFyZ3VtZW50cy5sZW5ndGg8MyYmKHI9ZSxlPUIoKS5jaGFuZ2VkVG91Y2hlcyksZSlmb3IodmFyIG4saT0wLGE9ZS5sZW5ndGg7aTxhOysraSlpZigobj1lW2ldKS5pZGVudGlmaWVyPT09cilyZXR1cm4gd3QodCxuKX0sdC5iZWhhdmlvci5kcmFnPWZ1bmN0aW9uKCl7dmFyIGU9TihhLCJkcmFnIiwiZHJhZ3N0YXJ0IiwiZHJhZ2VuZCIpLHI9bnVsbCxuPXMoeix0Lm1vdXNlLG8sIm1vdXNlbW92ZSIsIm1vdXNldXAiKSxpPXMoVHQsdC50b3VjaCxDLCJ0b3VjaG1vdmUiLCJ0b3VjaGVuZCIpO2Z1bmN0aW9uIGEoKXt0aGlzLm9uKCJtb3VzZWRvd24uZHJhZyIsbikub24oInRvdWNoc3RhcnQuZHJhZyIsaSl9ZnVuY3Rpb24gcyhuLGksYSxvLHMpe3JldHVybiBmdW5jdGlvbigpe3ZhciBsLGM9dGhpcyx1PXQuZXZlbnQudGFyZ2V0LmNvcnJlc3BvbmRpbmdFbGVtZW50fHx0LmV2ZW50LnRhcmdldCxmPWMucGFyZW50Tm9kZSxoPWUub2YoYyxhcmd1bWVudHMpLHA9MCxkPW4oKSxtPSIuZHJhZyIrKG51bGw9PWQ/IiI6Ii0iK2QpLGc9dC5zZWxlY3QoYSh1KSkub24obyttLHgpLm9uKHMrbSxiKSx2PWJ0KHUpLHk9aShmLGQpO2Z1bmN0aW9uIHgoKXt2YXIgdCxlLHI9aShmLGQpO3ImJih0PXJbMF0teVswXSxlPXJbMV0teVsxXSxwfD10fGUseT1yLGgoe3R5cGU6ImRyYWciLHg6clswXStsWzBdLHk6clsxXStsWzFdLGR4OnQsZHk6ZX0pKX1mdW5jdGlvbiBiKCl7aShmLGQpJiYoZy5vbihvK20sbnVsbCkub24ocyttLG51bGwpLHYocCksaCh7dHlwZToiZHJhZ2VuZCJ9KSl9bD1yP1sobD1yLmFwcGx5KGMsYXJndW1lbnRzKSkueC15WzBdLGwueS15WzFdXTpbMCwwXSxoKHt0eXBlOiJkcmFnc3RhcnQifSl9fXJldHVybiBhLm9yaWdpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10LGEpOnJ9LHQucmViaW5kKGEsZSwib24iKX0sdC50b3VjaGVzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8MiYmKGU9QigpLnRvdWNoZXMpLGU/bihlKS5tYXAoKGZ1bmN0aW9uKGUpe3ZhciByPXd0KHQsZSk7cmV0dXJuIHIuaWRlbnRpZmllcj1lLmlkZW50aWZpZXIscn0pKTpbXX07dmFyIGt0PTFlLTYsQXQ9TWF0aC5QSSxNdD0yKkF0LFN0PU10LWt0LEV0PUF0LzIsTHQ9QXQvMTgwLEN0PTE4MC9BdDtmdW5jdGlvbiBQdCh0KXtyZXR1cm4gdD4xP0V0OnQ8LTE/LUV0Ok1hdGguYXNpbih0KX1mdW5jdGlvbiBJdCh0KXtyZXR1cm4oKHQ9TWF0aC5leHAodCkpKzEvdCkvMn12YXIgT3Q9TWF0aC5TUVJUMjt0LmludGVycG9sYXRlWm9vbT1mdW5jdGlvbih0LGUpe3ZhciByLG4saT10WzBdLGE9dFsxXSxvPXRbMl0scz1lWzBdLGw9ZVsxXSxjPWVbMl0sdT1zLWksZj1sLWEsaD11KnUrZipmO2lmKGg8MWUtMTIpbj1NYXRoLmxvZyhjL28pL090LHI9ZnVuY3Rpb24odCl7cmV0dXJuW2krdCp1LGErdCpmLG8qTWF0aC5leHAoT3QqdCpuKV19O2Vsc2V7dmFyIHA9TWF0aC5zcXJ0KGgpLGQ9KGMqYy1vKm8rNCpoKS8oMipvKjIqcCksbT0oYypjLW8qby00KmgpLygyKmMqMipwKSxnPU1hdGgubG9nKE1hdGguc3FydChkKmQrMSktZCksdj1NYXRoLmxvZyhNYXRoLnNxcnQobSptKzEpLW0pO249KHYtZykvT3Qscj1mdW5jdGlvbih0KXt2YXIgZSxyPXQqbixzPUl0KGcpLGw9by8oMipwKSoocyooZT1PdCpyK2csKChlPU1hdGguZXhwKDIqZSkpLTEpLyhlKzEpKS1mdW5jdGlvbih0KXtyZXR1cm4oKHQ9TWF0aC5leHAodCkpLTEvdCkvMn0oZykpO3JldHVybltpK2wqdSxhK2wqZixvKnMvSXQoT3QqcitnKV19fXJldHVybiByLmR1cmF0aW9uPTFlMypuLHJ9LHQuYmVoYXZpb3Iuem9vbT1mdW5jdGlvbigpe3ZhciBlLHIsbixhLHMsbCxjLHUsZixoPXt4OjAseTowLGs6MX0scD1bOTYwLDUwMF0sZD1SdCxtPTI1MCxnPTAsdj0ibW91c2Vkb3duLnpvb20iLHk9Im1vdXNlbW92ZS56b29tIix4PSJtb3VzZXVwLnpvb20iLGI9InRvdWNoc3RhcnQuem9vbSIsXz1OKHcsInpvb21zdGFydCIsInpvb20iLCJ6b29tZW5kIik7ZnVuY3Rpb24gdyh0KXt0Lm9uKHYsUCkub24oRHQrIi56b29tIixPKS5vbigiZGJsY2xpY2suem9vbSIseikub24oYixJKX1mdW5jdGlvbiBUKHQpe3JldHVyblsodFswXS1oLngpL2guaywodFsxXS1oLnkpL2gua119ZnVuY3Rpb24gayh0KXtoLms9TWF0aC5tYXgoZFswXSxNYXRoLm1pbihkWzFdLHQpKX1mdW5jdGlvbiBBKHQsZSl7ZT1mdW5jdGlvbih0KXtyZXR1cm5bdFswXSpoLmsraC54LHRbMV0qaC5rK2gueV19KGUpLGgueCs9dFswXS1lWzBdLGgueSs9dFsxXS1lWzFdfWZ1bmN0aW9uIE0oZSxuLGksYSl7ZS5fX2NoYXJ0X189e3g6aC54LHk6aC55LGs6aC5rfSxrKE1hdGgucG93KDIsYSkpLEEocj1uLGkpLGU9dC5zZWxlY3QoZSksbT4wJiYoZT1lLnRyYW5zaXRpb24oKS5kdXJhdGlvbihtKSksZS5jYWxsKHcuZXZlbnQpfWZ1bmN0aW9uIFMoKXtjJiZjLmRvbWFpbihsLnJhbmdlKCkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4odC1oLngpL2gua30pKS5tYXAobC5pbnZlcnQpKSxmJiZmLmRvbWFpbih1LnJhbmdlKCkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4odC1oLnkpL2gua30pKS5tYXAodS5pbnZlcnQpKX1mdW5jdGlvbiBFKHQpe2crK3x8dCh7dHlwZToiem9vbXN0YXJ0In0pfWZ1bmN0aW9uIEwodCl7UygpLHQoe3R5cGU6Inpvb20iLHNjYWxlOmguayx0cmFuc2xhdGU6W2gueCxoLnldfSl9ZnVuY3Rpb24gQyh0KXstLWd8fCh0KHt0eXBlOiJ6b29tZW5kIn0pLHI9bnVsbCl9ZnVuY3Rpb24gUCgpe3ZhciBlPXRoaXMscj1fLm9mKGUsYXJndW1lbnRzKSxuPTAsaT10LnNlbGVjdChvKGUpKS5vbih5LGwpLm9uKHgsYyksYT1UKHQubW91c2UoZSkpLHM9YnQoZSk7ZnVuY3Rpb24gbCgpe249MSxBKHQubW91c2UoZSksYSksTChyKX1mdW5jdGlvbiBjKCl7aS5vbih5LG51bGwpLm9uKHgsbnVsbCkscyhuKSxDKHIpfURpLmNhbGwoZSksRShyKX1mdW5jdGlvbiBJKCl7dmFyIGUscj10aGlzLG49Xy5vZihyLGFyZ3VtZW50cyksaT17fSxhPTAsbz0iLnpvb20tIit0LmV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmlkZW50aWZpZXIsbD0idG91Y2htb3ZlIitvLGM9InRvdWNoZW5kIitvLHU9W10sZj10LnNlbGVjdChyKSxwPWJ0KHIpO2Z1bmN0aW9uIGQoKXt2YXIgbj10LnRvdWNoZXMocik7cmV0dXJuIGU9aC5rLG4uZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5pZGVudGlmaWVyIGluIGkmJihpW3QuaWRlbnRpZmllcl09VCh0KSl9KSksbn1mdW5jdGlvbiBtKCl7dmFyIGU9dC5ldmVudC50YXJnZXQ7dC5zZWxlY3QoZSkub24obCxnKS5vbihjLHkpLHUucHVzaChlKTtmb3IodmFyIG49dC5ldmVudC5jaGFuZ2VkVG91Y2hlcyxvPTAsZj1uLmxlbmd0aDtvPGY7KytvKWlbbltvXS5pZGVudGlmaWVyXT1udWxsO3ZhciBwPWQoKSxtPURhdGUubm93KCk7aWYoMT09PXAubGVuZ3RoKXtpZihtLXM8NTAwKXt2YXIgdj1wWzBdO00ocix2LGlbdi5pZGVudGlmaWVyXSxNYXRoLmZsb29yKE1hdGgubG9nKGguaykvTWF0aC5MTjIpKzEpLEYoKX1zPW19ZWxzZSBpZihwLmxlbmd0aD4xKXt2PXBbMF07dmFyIHg9cFsxXSxiPXZbMF0teFswXSxfPXZbMV0teFsxXTthPWIqYitfKl99fWZ1bmN0aW9uIGcoKXt2YXIgbyxsLGMsdSxmPXQudG91Y2hlcyhyKTtEaS5jYWxsKHIpO2Zvcih2YXIgaD0wLHA9Zi5sZW5ndGg7aDxwOysraCx1PW51bGwpaWYoYz1mW2hdLHU9aVtjLmlkZW50aWZpZXJdKXtpZihsKWJyZWFrO289YyxsPXV9aWYodSl7dmFyIGQ9KGQ9Y1swXS1vWzBdKSpkKyhkPWNbMV0tb1sxXSkqZCxtPWEmJk1hdGguc3FydChkL2EpO289WyhvWzBdK2NbMF0pLzIsKG9bMV0rY1sxXSkvMl0sbD1bKGxbMF0rdVswXSkvMiwobFsxXSt1WzFdKS8yXSxrKG0qZSl9cz1udWxsLEEobyxsKSxMKG4pfWZ1bmN0aW9uIHkoKXtpZih0LmV2ZW50LnRvdWNoZXMubGVuZ3RoKXtmb3IodmFyIGU9dC5ldmVudC5jaGFuZ2VkVG91Y2hlcyxyPTAsYT1lLmxlbmd0aDtyPGE7KytyKWRlbGV0ZSBpW2Vbcl0uaWRlbnRpZmllcl07Zm9yKHZhciBzIGluIGkpcmV0dXJuIHZvaWQgZCgpfXQuc2VsZWN0QWxsKHUpLm9uKG8sbnVsbCksZi5vbih2LFApLm9uKGIsSSkscCgpLEMobil9bSgpLEUobiksZi5vbih2LG51bGwpLm9uKGIsbSl9ZnVuY3Rpb24gTygpe3ZhciBpPV8ub2YodGhpcyxhcmd1bWVudHMpO2E/Y2xlYXJUaW1lb3V0KGEpOihEaS5jYWxsKHRoaXMpLGU9VChyPW58fHQubW91c2UodGhpcykpLEUoaSkpLGE9c2V0VGltZW91dCgoZnVuY3Rpb24oKXthPW51bGwsQyhpKX0pLDUwKSxGKCksayhNYXRoLnBvdygyLC4wMDIqenQoKSkqaC5rKSxBKHIsZSksTChpKX1mdW5jdGlvbiB6KCl7dmFyIGU9dC5tb3VzZSh0aGlzKSxyPU1hdGgubG9nKGguaykvTWF0aC5MTjI7TSh0aGlzLGUsVChlKSx0LmV2ZW50LnNoaWZ0S2V5P01hdGguY2VpbChyKS0xOk1hdGguZmxvb3IocikrMSl9cmV0dXJuIER0fHwoRHQ9Im9ud2hlZWwiaW4gaT8oenQ9ZnVuY3Rpb24oKXtyZXR1cm4tdC5ldmVudC5kZWx0YVkqKHQuZXZlbnQuZGVsdGFNb2RlPzEyMDoxKX0sIndoZWVsIik6Im9ubW91c2V3aGVlbCJpbiBpPyh6dD1mdW5jdGlvbigpe3JldHVybiB0LmV2ZW50LndoZWVsRGVsdGF9LCJtb3VzZXdoZWVsIik6KHp0PWZ1bmN0aW9uKCl7cmV0dXJuLXQuZXZlbnQuZGV0YWlsfSwiTW96TW91c2VQaXhlbFNjcm9sbCIpKSx3LmV2ZW50PWZ1bmN0aW9uKGUpe2UuZWFjaCgoZnVuY3Rpb24oKXt2YXIgZT1fLm9mKHRoaXMsYXJndW1lbnRzKSxuPWg7Qmk/dC5zZWxlY3QodGhpcykudHJhbnNpdGlvbigpLmVhY2goInN0YXJ0Lnpvb20iLChmdW5jdGlvbigpe2g9dGhpcy5fX2NoYXJ0X198fHt4OjAseTowLGs6MX0sRShlKX0pKS50d2Vlbigiem9vbTp6b29tIiwoZnVuY3Rpb24oKXt2YXIgaT1wWzBdLGE9cFsxXSxvPXI/clswXTppLzIscz1yP3JbMV06YS8yLGw9dC5pbnRlcnBvbGF0ZVpvb20oWyhvLWgueCkvaC5rLChzLWgueSkvaC5rLGkvaC5rXSxbKG8tbi54KS9uLmssKHMtbi55KS9uLmssaS9uLmtdKTtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIHI9bCh0KSxuPWkvclsyXTt0aGlzLl9fY2hhcnRfXz1oPXt4Om8tclswXSpuLHk6cy1yWzFdKm4sazpufSxMKGUpfX0pKS5lYWNoKCJpbnRlcnJ1cHQuem9vbSIsKGZ1bmN0aW9uKCl7QyhlKX0pKS5lYWNoKCJlbmQuem9vbSIsKGZ1bmN0aW9uKCl7QyhlKX0pKToodGhpcy5fX2NoYXJ0X189aCxFKGUpLEwoZSksQyhlKSl9KSl9LHcudHJhbnNsYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPXt4Oit0WzBdLHk6K3RbMV0sazpoLmt9LFMoKSx3KTpbaC54LGgueV19LHcuc2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9e3g6aC54LHk6aC55LGs6bnVsbH0saygrdCksUygpLHcpOmgua30sdy5zY2FsZUV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZD1udWxsPT10P1J0OlsrdFswXSwrdFsxXV0sdyk6ZH0sdy5jZW50ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dCYmWyt0WzBdLCt0WzFdXSx3KTpufSx3LnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHA9dCYmWyt0WzBdLCt0WzFdXSx3KTpwfSx3LmR1cmF0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhtPSt0LHcpOm19LHcueD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz10LGw9dC5jb3B5KCksaD17eDowLHk6MCxrOjF9LHcpOmN9LHcueT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj10LHU9dC5jb3B5KCksaD17eDowLHk6MCxrOjF9LHcpOmZ9LHQucmViaW5kKHcsXywib24iKX07dmFyIHp0LER0LFJ0PVswLDEvMF07ZnVuY3Rpb24gRnQoKXt9ZnVuY3Rpb24gQnQodCxlLHIpe3JldHVybiB0aGlzIGluc3RhbmNlb2YgQnQ/KHRoaXMuaD0rdCx0aGlzLnM9K2Usdm9pZCh0aGlzLmw9K3IpKTphcmd1bWVudHMubGVuZ3RoPDI/dCBpbnN0YW5jZW9mIEJ0P25ldyBCdCh0LmgsdC5zLHQubCk6bmUoIiIrdCxpZSxCdCk6bmV3IEJ0KHQsZSxyKX10LmNvbG9yPUZ0LEZ0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJnYigpKyIifSx0LmhzbD1CdDt2YXIgTnQ9QnQucHJvdG90eXBlPW5ldyBGdDtmdW5jdGlvbiBqdCh0LGUscil7dmFyIG4saTtmdW5jdGlvbiBhKHQpe3JldHVybiBNYXRoLnJvdW5kKDI1NSpmdW5jdGlvbih0KXtyZXR1cm4gdD4zNjA/dC09MzYwOnQ8MCYmKHQrPTM2MCksdDw2MD9uKyhpLW4pKnQvNjA6dDwxODA/aTp0PDI0MD9uKyhpLW4pKigyNDAtdCkvNjA6bn0odCkpfXJldHVybiB0PWlzTmFOKHQpPzA6KHQlPTM2MCk8MD90KzM2MDp0LGU9aXNOYU4oZSl8fGU8MD8wOmU+MT8xOmUsbj0yKihyPXI8MD8wOnI+MT8xOnIpLShpPXI8PS41P3IqKDErZSk6citlLXIqZSksbmV3IFF0KGEodCsxMjApLGEodCksYSh0LTEyMCkpfWZ1bmN0aW9uIFV0KGUscixuKXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIFV0Pyh0aGlzLmg9K2UsdGhpcy5jPStyLHZvaWQodGhpcy5sPStuKSk6YXJndW1lbnRzLmxlbmd0aDwyP2UgaW5zdGFuY2VvZiBVdD9uZXcgVXQoZS5oLGUuYyxlLmwpOlh0KGUgaW5zdGFuY2VvZiBxdD9lLmw6KGU9YWUoKGU9dC5yZ2IoZSkpLnIsZS5nLGUuYikpLmwsZS5hLGUuYik6bmV3IFV0KGUscixuKX1OdC5icmlnaHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gdD1NYXRoLnBvdyguNyxhcmd1bWVudHMubGVuZ3RoP3Q6MSksbmV3IEJ0KHRoaXMuaCx0aGlzLnMsdGhpcy5sL3QpfSxOdC5kYXJrZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9TWF0aC5wb3coLjcsYXJndW1lbnRzLmxlbmd0aD90OjEpLG5ldyBCdCh0aGlzLmgsdGhpcy5zLHQqdGhpcy5sKX0sTnQucmdiPWZ1bmN0aW9uKCl7cmV0dXJuIGp0KHRoaXMuaCx0aGlzLnMsdGhpcy5sKX0sdC5oY2w9VXQ7dmFyIFZ0PVV0LnByb3RvdHlwZT1uZXcgRnQ7ZnVuY3Rpb24gSHQodCxlLHIpe3JldHVybiBpc05hTih0KSYmKHQ9MCksaXNOYU4oZSkmJihlPTApLG5ldyBxdChyLE1hdGguY29zKHQqPUx0KSplLE1hdGguc2luKHQpKmUpfWZ1bmN0aW9uIHF0KHQsZSxyKXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIHF0Pyh0aGlzLmw9K3QsdGhpcy5hPStlLHZvaWQodGhpcy5iPStyKSk6YXJndW1lbnRzLmxlbmd0aDwyP3QgaW5zdGFuY2VvZiBxdD9uZXcgcXQodC5sLHQuYSx0LmIpOnQgaW5zdGFuY2VvZiBVdD9IdCh0LmgsdC5jLHQubCk6YWUoKHQ9UXQodCkpLnIsdC5nLHQuYik6bmV3IHF0KHQsZSxyKX1WdC5icmlnaHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IFV0KHRoaXMuaCx0aGlzLmMsTWF0aC5taW4oMTAwLHRoaXMubCtHdCooYXJndW1lbnRzLmxlbmd0aD90OjEpKSl9LFZ0LmRhcmtlcj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IFV0KHRoaXMuaCx0aGlzLmMsTWF0aC5tYXgoMCx0aGlzLmwtR3QqKGFyZ3VtZW50cy5sZW5ndGg/dDoxKSkpfSxWdC5yZ2I9ZnVuY3Rpb24oKXtyZXR1cm4gSHQodGhpcy5oLHRoaXMuYyx0aGlzLmwpLnJnYigpfSx0LmxhYj1xdDt2YXIgR3Q9MTgsWXQ9cXQucHJvdG90eXBlPW5ldyBGdDtmdW5jdGlvbiBXdCh0LGUscil7dmFyIG49KHQrMTYpLzExNixpPW4rZS81MDAsYT1uLXIvMjAwO3JldHVybiBuZXcgUXQoS3QoMy4yNDA0NTQyKihpPS45NTA0NypadChpKSktMS41MzcxMzg1KihuPTEqWnQobikpLS40OTg1MzE0KihhPTEuMDg4ODMqWnQoYSkpKSxLdCgtLjk2OTI2NippKzEuODc2MDEwOCpuKy4wNDE1NTYqYSksS3QoLjA1NTY0MzQqaS0uMjA0MDI1OSpuKzEuMDU3MjI1MiphKSl9ZnVuY3Rpb24gWHQodCxlLHIpe3JldHVybiB0PjA/bmV3IFV0KE1hdGguYXRhbjIocixlKSpDdCxNYXRoLnNxcnQoZSplK3IqciksdCk6bmV3IFV0KE5hTixOYU4sdCl9ZnVuY3Rpb24gWnQodCl7cmV0dXJuIHQ+LjIwNjg5MzAzND90KnQqdDoodC00LzI5KS83Ljc4NzAzN31mdW5jdGlvbiBKdCh0KXtyZXR1cm4gdD4uMDA4ODU2P01hdGgucG93KHQsMS8zKTo3Ljc4NzAzNyp0KzQvMjl9ZnVuY3Rpb24gS3QodCl7cmV0dXJuIE1hdGgucm91bmQoMjU1Kih0PD0uMDAzMDQ/MTIuOTIqdDoxLjA1NSpNYXRoLnBvdyh0LDEvMi40KS0uMDU1KSl9ZnVuY3Rpb24gUXQodCxlLHIpe3JldHVybiB0aGlzIGluc3RhbmNlb2YgUXQ/KHRoaXMucj1+fnQsdGhpcy5nPX5+ZSx2b2lkKHRoaXMuYj1+fnIpKTphcmd1bWVudHMubGVuZ3RoPDI/dCBpbnN0YW5jZW9mIFF0P25ldyBRdCh0LnIsdC5nLHQuYik6bmUoIiIrdCxRdCxqdCk6bmV3IFF0KHQsZSxyKX1mdW5jdGlvbiAkdCh0KXtyZXR1cm4gbmV3IFF0KHQ+PjE2LHQ+PjgmMjU1LDI1NSZ0KX1mdW5jdGlvbiB0ZSh0KXtyZXR1cm4gJHQodCkrIiJ9WXQuYnJpZ2h0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBxdChNYXRoLm1pbigxMDAsdGhpcy5sK0d0Kihhcmd1bWVudHMubGVuZ3RoP3Q6MSkpLHRoaXMuYSx0aGlzLmIpfSxZdC5kYXJrZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBxdChNYXRoLm1heCgwLHRoaXMubC1HdCooYXJndW1lbnRzLmxlbmd0aD90OjEpKSx0aGlzLmEsdGhpcy5iKX0sWXQucmdiPWZ1bmN0aW9uKCl7cmV0dXJuIFd0KHRoaXMubCx0aGlzLmEsdGhpcy5iKX0sdC5yZ2I9UXQ7dmFyIGVlPVF0LnByb3RvdHlwZT1uZXcgRnQ7ZnVuY3Rpb24gcmUodCl7cmV0dXJuIHQ8MTY/IjAiK01hdGgubWF4KDAsdCkudG9TdHJpbmcoMTYpOk1hdGgubWluKDI1NSx0KS50b1N0cmluZygxNil9ZnVuY3Rpb24gbmUodCxlLHIpe3ZhciBuLGksYSxvPTAscz0wLGw9MDtpZihuPS8oW2Etel0rKVwoKC4qKVwpLy5leGVjKHQ9dC50b0xvd2VyQ2FzZSgpKSlzd2l0Y2goaT1uWzJdLnNwbGl0KCIsIiksblsxXSl7Y2FzZSJoc2wiOnJldHVybiByKHBhcnNlRmxvYXQoaVswXSkscGFyc2VGbG9hdChpWzFdKS8xMDAscGFyc2VGbG9hdChpWzJdKS8xMDApO2Nhc2UicmdiIjpyZXR1cm4gZShzZShpWzBdKSxzZShpWzFdKSxzZShpWzJdKSl9cmV0dXJuKGE9bGUuZ2V0KHQpKT9lKGEucixhLmcsYS5iKToobnVsbD09dHx8IiMiIT09dC5jaGFyQXQoMCl8fGlzTmFOKGE9cGFyc2VJbnQodC5zbGljZSgxKSwxNikpfHwoND09PXQubGVuZ3RoPyhvPSgzODQwJmEpPj40LG98PW8+PjQscz0yNDAmYSxzfD1zPj40LGw9MTUmYSxsfD1sPDw0KTo3PT09dC5sZW5ndGgmJihvPSgxNjcxMTY4MCZhKT4+MTYscz0oNjUyODAmYSk+PjgsbD0yNTUmYSkpLGUobyxzLGwpKX1mdW5jdGlvbiBpZSh0LGUscil7dmFyIG4saSxhPU1hdGgubWluKHQvPTI1NSxlLz0yNTUsci89MjU1KSxvPU1hdGgubWF4KHQsZSxyKSxzPW8tYSxsPShvK2EpLzI7cmV0dXJuIHM/KGk9bDwuNT9zLyhvK2EpOnMvKDItby1hKSxuPXQ9PW8/KGUtcikvcysoZTxyPzY6MCk6ZT09bz8oci10KS9zKzI6KHQtZSkvcys0LG4qPTYwKToobj1OYU4saT1sPjAmJmw8MT8wOm4pLG5ldyBCdChuLGksbCl9ZnVuY3Rpb24gYWUodCxlLHIpe3ZhciBuPUp0KCguNDEyNDU2NCoodD1vZSh0KSkrLjM1NzU3NjEqKGU9b2UoZSkpKy4xODA0Mzc1KihyPW9lKHIpKSkvLjk1MDQ3KSxpPUp0KCguMjEyNjcyOSp0Ky43MTUxNTIyKmUrLjA3MjE3NSpyKS8xKTtyZXR1cm4gcXQoMTE2KmktMTYsNTAwKihuLWkpLDIwMCooaS1KdCgoLjAxOTMzMzkqdCsuMTE5MTkyKmUrLjk1MDMwNDEqcikvMS4wODg4MykpKX1mdW5jdGlvbiBvZSh0KXtyZXR1cm4odC89MjU1KTw9LjA0MDQ1P3QvMTIuOTI6TWF0aC5wb3coKHQrLjA1NSkvMS4wNTUsMi40KX1mdW5jdGlvbiBzZSh0KXt2YXIgZT1wYXJzZUZsb2F0KHQpO3JldHVybiIlIj09PXQuY2hhckF0KHQubGVuZ3RoLTEpP01hdGgucm91bmQoMi41NSplKTplfWVlLmJyaWdodGVyPWZ1bmN0aW9uKHQpe3Q9TWF0aC5wb3coLjcsYXJndW1lbnRzLmxlbmd0aD90OjEpO3ZhciBlPXRoaXMucixyPXRoaXMuZyxuPXRoaXMuYixpPTMwO3JldHVybiBlfHxyfHxuPyhlJiZlPGkmJihlPWkpLHImJnI8aSYmKHI9aSksbiYmbjxpJiYobj1pKSxuZXcgUXQoTWF0aC5taW4oMjU1LGUvdCksTWF0aC5taW4oMjU1LHIvdCksTWF0aC5taW4oMjU1LG4vdCkpKTpuZXcgUXQoaSxpLGkpfSxlZS5kYXJrZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBRdCgodD1NYXRoLnBvdyguNyxhcmd1bWVudHMubGVuZ3RoP3Q6MSkpKnRoaXMucix0KnRoaXMuZyx0KnRoaXMuYil9LGVlLmhzbD1mdW5jdGlvbigpe3JldHVybiBpZSh0aGlzLnIsdGhpcy5nLHRoaXMuYil9LGVlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIiMiK3JlKHRoaXMucikrcmUodGhpcy5nKStyZSh0aGlzLmIpfTt2YXIgbGU9dC5tYXAoe2FsaWNlYmx1ZToxNTc5MjM4MyxhbnRpcXVld2hpdGU6MTY0NDQzNzUsYXF1YTo2NTUzNSxhcXVhbWFyaW5lOjgzODg1NjQsYXp1cmU6MTU3OTQxNzUsYmVpZ2U6MTYxMTkyNjAsYmlzcXVlOjE2NzcwMjQ0LGJsYWNrOjAsYmxhbmNoZWRhbG1vbmQ6MTY3NzIwNDUsYmx1ZToyNTUsYmx1ZXZpb2xldDo5MDU1MjAyLGJyb3duOjEwODI0MjM0LGJ1cmx5d29vZDoxNDU5NjIzMSxjYWRldGJsdWU6NjI2NjUyOCxjaGFydHJldXNlOjgzODgzNTIsY2hvY29sYXRlOjEzNzg5NDcwLGNvcmFsOjE2NzQ0MjcyLGNvcm5mbG93ZXJibHVlOjY1OTE5ODEsY29ybnNpbGs6MTY3NzUzODgsY3JpbXNvbjoxNDQyMzEwMCxjeWFuOjY1NTM1LGRhcmtibHVlOjEzOSxkYXJrY3lhbjozNTcyMyxkYXJrZ29sZGVucm9kOjEyMDkyOTM5LGRhcmtncmF5OjExMTE5MDE3LGRhcmtncmVlbjoyNTYwMCxkYXJrZ3JleToxMTExOTAxNyxkYXJra2hha2k6MTI0MzMyNTksZGFya21hZ2VudGE6OTEwOTY0MyxkYXJrb2xpdmVncmVlbjo1NTk3OTk5LGRhcmtvcmFuZ2U6MTY3NDc1MjAsZGFya29yY2hpZDoxMDA0MDAxMixkYXJrcmVkOjkxMDk1MDQsZGFya3NhbG1vbjoxNTMwODQxMCxkYXJrc2VhZ3JlZW46OTQxOTkxOSxkYXJrc2xhdGVibHVlOjQ3MzQzNDcsZGFya3NsYXRlZ3JheTozMTAwNDk1LGRhcmtzbGF0ZWdyZXk6MzEwMDQ5NSxkYXJrdHVycXVvaXNlOjUyOTQ1LGRhcmt2aW9sZXQ6OTY5OTUzOSxkZWVwcGluazoxNjcxNjk0NyxkZWVwc2t5Ymx1ZTo0OTE1MSxkaW1ncmF5OjY5MDgyNjUsZGltZ3JleTo2OTA4MjY1LGRvZGdlcmJsdWU6MjAwMzE5OSxmaXJlYnJpY2s6MTE2NzQxNDYsZmxvcmFsd2hpdGU6MTY3NzU5MjAsZm9yZXN0Z3JlZW46MjI2Mzg0MixmdWNoc2lhOjE2NzExOTM1LGdhaW5zYm9ybzoxNDQ3NDQ2MCxnaG9zdHdoaXRlOjE2MzE2NjcxLGdvbGQ6MTY3NjY3MjAsZ29sZGVucm9kOjE0MzI5MTIwLGdyYXk6ODQyMTUwNCxncmVlbjozMjc2OCxncmVlbnllbGxvdzoxMTQwMzA1NSxncmV5Ojg0MjE1MDQsaG9uZXlkZXc6MTU3OTQxNjAsaG90cGluazoxNjczODc0MCxpbmRpYW5yZWQ6MTM0NTg1MjQsaW5kaWdvOjQ5MTUzMzAsaXZvcnk6MTY3NzcyMDAsa2hha2k6MTU3ODc2NjAsbGF2ZW5kZXI6MTUxMzI0MTAsbGF2ZW5kZXJibHVzaDoxNjc3MzM2NSxsYXduZ3JlZW46ODE5MDk3NixsZW1vbmNoaWZmb246MTY3NzU4ODUsbGlnaHRibHVlOjExMzkzMjU0LGxpZ2h0Y29yYWw6MTU3NjE1MzYsbGlnaHRjeWFuOjE0NzQ1NTk5LGxpZ2h0Z29sZGVucm9keWVsbG93OjE2NDQ4MjEwLGxpZ2h0Z3JheToxMzg4MjMyMyxsaWdodGdyZWVuOjk0OTgyNTYsbGlnaHRncmV5OjEzODgyMzIzLGxpZ2h0cGluazoxNjc1ODQ2NSxsaWdodHNhbG1vbjoxNjc1Mjc2MixsaWdodHNlYWdyZWVuOjIxNDI4OTAsbGlnaHRza3libHVlOjg5MDAzNDYsbGlnaHRzbGF0ZWdyYXk6NzgzMzc1MyxsaWdodHNsYXRlZ3JleTo3ODMzNzUzLGxpZ2h0c3RlZWxibHVlOjExNTg0NzM0LGxpZ2h0eWVsbG93OjE2Nzc3MTg0LGxpbWU6NjUyODAsbGltZWdyZWVuOjMzMjkzMzAsbGluZW46MTY0NDU2NzAsbWFnZW50YToxNjcxMTkzNSxtYXJvb246ODM4ODYwOCxtZWRpdW1hcXVhbWFyaW5lOjY3MzczMjIsbWVkaXVtYmx1ZToyMDUsbWVkaXVtb3JjaGlkOjEyMjExNjY3LG1lZGl1bXB1cnBsZTo5NjYyNjgzLG1lZGl1bXNlYWdyZWVuOjM5NzgwOTcsbWVkaXVtc2xhdGVibHVlOjgwODc3OTAsbWVkaXVtc3ByaW5nZ3JlZW46NjQxNTQsbWVkaXVtdHVycXVvaXNlOjQ3NzIzMDAsbWVkaXVtdmlvbGV0cmVkOjEzMDQ3MTczLG1pZG5pZ2h0Ymx1ZToxNjQ0OTEyLG1pbnRjcmVhbToxNjEyMTg1MCxtaXN0eXJvc2U6MTY3NzAyNzMsbW9jY2FzaW46MTY3NzAyMjksbmF2YWpvd2hpdGU6MTY3Njg2ODUsbmF2eToxMjgsb2xkbGFjZToxNjY0MzU1OCxvbGl2ZTo4NDIxMzc2LG9saXZlZHJhYjo3MDQ4NzM5LG9yYW5nZToxNjc1MzkyMCxvcmFuZ2VyZWQ6MTY3MjkzNDQsb3JjaGlkOjE0MzE1NzM0LHBhbGVnb2xkZW5yb2Q6MTU2NTcxMzAscGFsZWdyZWVuOjEwMDI1ODgwLHBhbGV0dXJxdW9pc2U6MTE1Mjk5NjYscGFsZXZpb2xldHJlZDoxNDM4MTIwMyxwYXBheWF3aGlwOjE2NzczMDc3LHBlYWNocHVmZjoxNjc2NzY3MyxwZXJ1OjEzNDY4OTkxLHBpbms6MTY3NjEwMzUscGx1bToxNDUyNDYzNyxwb3dkZXJibHVlOjExNTkxOTEwLHB1cnBsZTo4Mzg4NzM2LHJlYmVjY2FwdXJwbGU6NjY5Nzg4MSxyZWQ6MTY3MTE2ODAscm9zeWJyb3duOjEyMzU3NTE5LHJveWFsYmx1ZTo0Mjg2OTQ1LHNhZGRsZWJyb3duOjkxMjcxODcsc2FsbW9uOjE2NDE2ODgyLHNhbmR5YnJvd246MTYwMzI4NjQsc2VhZ3JlZW46MzA1MDMyNyxzZWFzaGVsbDoxNjc3NDYzOCxzaWVubmE6MTA1MDY3OTcsc2lsdmVyOjEyNjMyMjU2LHNreWJsdWU6ODkwMDMzMSxzbGF0ZWJsdWU6Njk3MDA2MSxzbGF0ZWdyYXk6NzM3Mjk0NCxzbGF0ZWdyZXk6NzM3Mjk0NCxzbm93OjE2Nzc1OTMwLHNwcmluZ2dyZWVuOjY1NDA3LHN0ZWVsYmx1ZTo0NjIwOTgwLHRhbjoxMzgwODc4MCx0ZWFsOjMyODk2LHRoaXN0bGU6MTQyMDQ4ODgsdG9tYXRvOjE2NzM3MDk1LHR1cnF1b2lzZTo0MjUxODU2LHZpb2xldDoxNTYzMTA4Nix3aGVhdDoxNjExMzMzMSx3aGl0ZToxNjc3NzIxNSx3aGl0ZXNtb2tlOjE2MTE5Mjg1LHllbGxvdzoxNjc3Njk2MCx5ZWxsb3dncmVlbjoxMDE0NTA3NH0pO2Z1bmN0aW9uIGNlKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gdWUodCl7cmV0dXJuIGZ1bmN0aW9uKGUscixuKXtyZXR1cm4gMj09PWFyZ3VtZW50cy5sZW5ndGgmJiJmdW5jdGlvbiI9PXR5cGVvZiByJiYobj1yLHI9bnVsbCksZmUoZSxyLHQsbil9fWZ1bmN0aW9uIGZlKGUscixpLGEpe3ZhciBvPXt9LHM9dC5kaXNwYXRjaCgiYmVmb3Jlc2VuZCIsInByb2dyZXNzIiwibG9hZCIsImVycm9yIiksbD17fSxjPW5ldyBYTUxIdHRwUmVxdWVzdCx1PW51bGw7ZnVuY3Rpb24gZigpe3ZhciB0LGU9Yy5zdGF0dXM7aWYoIWUmJmZ1bmN0aW9uKHQpe3ZhciBlPXQucmVzcG9uc2VUeXBlO3JldHVybiBlJiYidGV4dCIhPT1lP3QucmVzcG9uc2U6dC5yZXNwb25zZVRleHR9KGMpfHxlPj0yMDAmJmU8MzAwfHwzMDQ9PT1lKXt0cnl7dD1pLmNhbGwobyxjKX1jYXRjaCh0KXtyZXR1cm4gdm9pZCBzLmVycm9yLmNhbGwobyx0KX1zLmxvYWQuY2FsbChvLHQpfWVsc2Ugcy5lcnJvci5jYWxsKG8sYyl9cmV0dXJuIHNlbGYuWERvbWFpblJlcXVlc3QmJiEoIndpdGhDcmVkZW50aWFscyJpbiBjKSYmL14oaHR0cChzKT86KT9cL1wvLy50ZXN0KGUpJiYoYz1uZXcgWERvbWFpblJlcXVlc3QpLCJvbmxvYWQiaW4gYz9jLm9ubG9hZD1jLm9uZXJyb3I9ZjpjLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2MucmVhZHlTdGF0ZT4zJiZmKCl9LGMub25wcm9ncmVzcz1mdW5jdGlvbihlKXt2YXIgcj10LmV2ZW50O3QuZXZlbnQ9ZTt0cnl7cy5wcm9ncmVzcy5jYWxsKG8sYyl9ZmluYWxseXt0LmV2ZW50PXJ9fSxvLmhlYWRlcj1mdW5jdGlvbih0LGUpe3JldHVybiB0PSh0KyIiKS50b0xvd2VyQ2FzZSgpLGFyZ3VtZW50cy5sZW5ndGg8Mj9sW3RdOihudWxsPT1lP2RlbGV0ZSBsW3RdOmxbdF09ZSsiIixvKX0sby5taW1lVHlwZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1udWxsPT10P251bGw6dCsiIixvKTpyfSxvLnJlc3BvbnNlVHlwZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT10LG8pOnV9LG8ucmVzcG9uc2U9ZnVuY3Rpb24odCl7cmV0dXJuIGk9dCxvfSxbImdldCIsInBvc3QiXS5mb3JFYWNoKChmdW5jdGlvbih0KXtvW3RdPWZ1bmN0aW9uKCl7cmV0dXJuIG8uc2VuZC5hcHBseShvLFt0XS5jb25jYXQobihhcmd1bWVudHMpKSl9fSkpLG8uc2VuZD1mdW5jdGlvbih0LG4saSl7aWYoMj09PWFyZ3VtZW50cy5sZW5ndGgmJiJmdW5jdGlvbiI9PXR5cGVvZiBuJiYoaT1uLG49bnVsbCksYy5vcGVuKHQsZSwhMCksbnVsbD09cnx8ImFjY2VwdCJpbiBsfHwobC5hY2NlcHQ9cisiLCovKiIpLGMuc2V0UmVxdWVzdEhlYWRlcilmb3IodmFyIGEgaW4gbCljLnNldFJlcXVlc3RIZWFkZXIoYSxsW2FdKTtyZXR1cm4gbnVsbCE9ciYmYy5vdmVycmlkZU1pbWVUeXBlJiZjLm92ZXJyaWRlTWltZVR5cGUociksbnVsbCE9dSYmKGMucmVzcG9uc2VUeXBlPXUpLG51bGwhPWkmJm8ub24oImVycm9yIixpKS5vbigibG9hZCIsKGZ1bmN0aW9uKHQpe2kobnVsbCx0KX0pKSxzLmJlZm9yZXNlbmQuY2FsbChvLGMpLGMuc2VuZChudWxsPT1uP251bGw6biksb30sby5hYm9ydD1mdW5jdGlvbigpe3JldHVybiBjLmFib3J0KCksb30sdC5yZWJpbmQobyxzLCJvbiIpLG51bGw9PWE/bzpvLmdldChmdW5jdGlvbih0KXtyZXR1cm4gMT09PXQubGVuZ3RoP2Z1bmN0aW9uKGUscil7dChudWxsPT1lP3I6bnVsbCl9OnR9KGEpKX1sZS5mb3JFYWNoKChmdW5jdGlvbih0LGUpe2xlLnNldCh0LCR0KGUpKX0pKSx0LmZ1bmN0b3I9Y2UsdC54aHI9dWUoQyksdC5kc3Y9ZnVuY3Rpb24odCxlKXt2YXIgcj1uZXcgUmVnRXhwKCdbIicrdCsiXG5dIiksbj10LmNoYXJDb2RlQXQoMCk7ZnVuY3Rpb24gaSh0LHIsbil7YXJndW1lbnRzLmxlbmd0aDwzJiYobj1yLHI9bnVsbCk7dmFyIGk9ZmUodCxlLG51bGw9PXI/YTpvKHIpLG4pO3JldHVybiBpLnJvdz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9pLnJlc3BvbnNlKG51bGw9PShyPXQpP2E6byh0KSk6cn0saX1mdW5jdGlvbiBhKHQpe3JldHVybiBpLnBhcnNlKHQucmVzcG9uc2VUZXh0KX1mdW5jdGlvbiBvKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gaS5wYXJzZShlLnJlc3BvbnNlVGV4dCx0KX19ZnVuY3Rpb24gcyhlKXtyZXR1cm4gZS5tYXAobCkuam9pbih0KX1mdW5jdGlvbiBsKHQpe3JldHVybiByLnRlc3QodCk/JyInK3QucmVwbGFjZSgvXCIvZywnIiInKSsnIic6dH1yZXR1cm4gaS5wYXJzZT1mdW5jdGlvbih0LGUpe3ZhciByO3JldHVybiBpLnBhcnNlUm93cyh0LChmdW5jdGlvbih0LG4pe2lmKHIpcmV0dXJuIHIodCxuLTEpO3ZhciBpPWZ1bmN0aW9uKGUpe2Zvcih2YXIgcj17fSxuPXQubGVuZ3RoLGk9MDtpPG47KytpKXJbdFtpXV09ZVtpXTtyZXR1cm4gcn07cj1lP2Z1bmN0aW9uKHQscil7cmV0dXJuIGUoaSh0KSxyKX06aX0pKX0saS5wYXJzZVJvd3M9ZnVuY3Rpb24odCxlKXt2YXIgcixpLGE9e30sbz17fSxzPVtdLGw9dC5sZW5ndGgsYz0wLHU9MDtmdW5jdGlvbiBmKCl7aWYoYz49bClyZXR1cm4gbztpZihpKXJldHVybiBpPSExLGE7dmFyIGU9YztpZigzND09PXQuY2hhckNvZGVBdChlKSl7Zm9yKHZhciByPWU7cisrPGw7KWlmKDM0PT09dC5jaGFyQ29kZUF0KHIpKXtpZigzNCE9PXQuY2hhckNvZGVBdChyKzEpKWJyZWFrOysrcn1yZXR1cm4gYz1yKzIsMTM9PT0ocz10LmNoYXJDb2RlQXQocisxKSk/KGk9ITAsMTA9PT10LmNoYXJDb2RlQXQocisyKSYmKytjKToxMD09PXMmJihpPSEwKSx0LnNsaWNlKGUrMSxyKS5yZXBsYWNlKC8iIi9nLCciJyl9Zm9yKDtjPGw7KXt2YXIgcyx1PTE7aWYoMTA9PT0ocz10LmNoYXJDb2RlQXQoYysrKSkpaT0hMDtlbHNlIGlmKDEzPT09cylpPSEwLDEwPT09dC5jaGFyQ29kZUF0KGMpJiYoKytjLCsrdSk7ZWxzZSBpZihzIT09biljb250aW51ZTtyZXR1cm4gdC5zbGljZShlLGMtdSl9cmV0dXJuIHQuc2xpY2UoZSl9Zm9yKDsocj1mKCkpIT09bzspe2Zvcih2YXIgaD1bXTtyIT09YSYmciE9PW87KWgucHVzaChyKSxyPWYoKTtlJiZudWxsPT0oaD1lKGgsdSsrKSl8fHMucHVzaChoKX1yZXR1cm4gc30saS5mb3JtYXQ9ZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlWzBdKSlyZXR1cm4gaS5mb3JtYXRSb3dzKGUpO3ZhciByPW5ldyBMLG49W107cmV0dXJuIGUuZm9yRWFjaCgoZnVuY3Rpb24odCl7Zm9yKHZhciBlIGluIHQpci5oYXMoZSl8fG4ucHVzaChyLmFkZChlKSl9KSksW24ubWFwKGwpLmpvaW4odCldLmNvbmNhdChlLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIG4ubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gbChlW3RdKX0pKS5qb2luKHQpfSkpKS5qb2luKCJcbiIpfSxpLmZvcm1hdFJvd3M9ZnVuY3Rpb24odCl7cmV0dXJuIHQubWFwKHMpLmpvaW4oIlxuIil9LGl9LHQuY3N2PXQuZHN2KCIsIiwidGV4dC9jc3YiKSx0LnRzdj10LmRzdigiXHQiLCJ0ZXh0L3RhYi1zZXBhcmF0ZWQtdmFsdWVzIik7dmFyIGhlLHBlLGRlLG1lLGdlPXRoaXNbSSh0aGlzLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiKV18fGZ1bmN0aW9uKHQpe3NldFRpbWVvdXQodCwxNyl9O2Z1bmN0aW9uIHZlKHQsZSxyKXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoO248MiYmKGU9MCksbjwzJiYocj1EYXRlLm5vdygpKTt2YXIgaT1yK2UsYT17Yzp0LHQ6aSxuOm51bGx9O3JldHVybiBwZT9wZS5uPWE6aGU9YSxwZT1hLGRlfHwobWU9Y2xlYXJUaW1lb3V0KG1lKSxkZT0xLGdlKHllKSksYX1mdW5jdGlvbiB5ZSgpe3ZhciB0PXhlKCksZT1iZSgpLXQ7ZT4yND8oaXNGaW5pdGUoZSkmJihjbGVhclRpbWVvdXQobWUpLG1lPXNldFRpbWVvdXQoeWUsZSkpLGRlPTApOihkZT0xLGdlKHllKSl9ZnVuY3Rpb24geGUoKXtmb3IodmFyIHQ9RGF0ZS5ub3coKSxlPWhlO2U7KXQ+PWUudCYmZS5jKHQtZS50KSYmKGUuYz1udWxsKSxlPWUubjtyZXR1cm4gdH1mdW5jdGlvbiBiZSgpe2Zvcih2YXIgdCxlPWhlLHI9MS8wO2U7KWUuYz8oZS50PHImJihyPWUudCksZT0odD1lKS5uKTplPXQ/dC5uPWUubjpoZT1lLm47cmV0dXJuIHBlPXQscn1mdW5jdGlvbiBfZSh0KXtyZXR1cm4gdFswXX1mdW5jdGlvbiB3ZSh0KXtyZXR1cm4gdFsxXX1mdW5jdGlvbiBUZSh0KXtmb3IodmFyIGUscixuLGk9dC5sZW5ndGgsYT1bMCwxXSxvPTIscz0yO3M8aTtzKyspe2Zvcig7bz4xJiYoZT10W2Fbby0yXV0scj10W2Fbby0xXV0sbj10W3NdLChyWzBdLWVbMF0pKihuWzFdLWVbMV0pLShyWzFdLWVbMV0pKihuWzBdLWVbMF0pPD0wKTspLS1vO2FbbysrXT1zfXJldHVybiBhLnNsaWNlKDAsbyl9ZnVuY3Rpb24ga2UodCxlKXtyZXR1cm4gdFswXS1lWzBdfHx0WzFdLWVbMV19dC50aW1lcj1mdW5jdGlvbigpe3ZlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sdC50aW1lci5mbHVzaD1mdW5jdGlvbigpe3hlKCksYmUoKX0sdC5yb3VuZD1mdW5jdGlvbih0LGUpe3JldHVybiBlP01hdGgucm91bmQodCooZT1NYXRoLnBvdygxMCxlKSkpL2U6TWF0aC5yb3VuZCh0KX0sdC5nZW9tPXt9LHQuZ2VvbS5odWxsPWZ1bmN0aW9uKHQpe3ZhciBlPV9lLHI9d2U7aWYoYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gbih0KTtmdW5jdGlvbiBuKHQpe2lmKHQubGVuZ3RoPDMpcmV0dXJuW107dmFyIG4saT1jZShlKSxhPWNlKHIpLG89dC5sZW5ndGgscz1bXSxsPVtdO2ZvcihuPTA7bjxvO24rKylzLnB1c2goWytpLmNhbGwodGhpcyx0W25dLG4pLCthLmNhbGwodGhpcyx0W25dLG4pLG5dKTtmb3Iocy5zb3J0KGtlKSxuPTA7bjxvO24rKylsLnB1c2goW3Nbbl1bMF0sLXNbbl1bMV1dKTt2YXIgYz1UZShzKSx1PVRlKGwpLGY9dVswXT09PWNbMF0saD11W3UubGVuZ3RoLTFdPT09Y1tjLmxlbmd0aC0xXSxwPVtdO2ZvcihuPWMubGVuZ3RoLTE7bj49MDstLW4pcC5wdXNoKHRbc1tjW25dXVsyXV0pO2ZvcihuPStmO248dS5sZW5ndGgtaDsrK24pcC5wdXNoKHRbc1t1W25dXVsyXV0pO3JldHVybiBwfXJldHVybiBuLng9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCxuKTplfSxuLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dCxuKTpyfSxufSx0Lmdlb20ucG9seWdvbj1mdW5jdGlvbih0KXtyZXR1cm4gVSh0LEFlKSx0fTt2YXIgQWU9dC5nZW9tLnBvbHlnb24ucHJvdG90eXBlPVtdO2Z1bmN0aW9uIE1lKHQsZSxyKXtyZXR1cm4oclswXS1lWzBdKSoodFsxXS1lWzFdKTwoclsxXS1lWzFdKSoodFswXS1lWzBdKX1mdW5jdGlvbiBTZSh0LGUscixuKXt2YXIgaT10WzBdLGE9clswXSxvPWVbMF0taSxzPW5bMF0tYSxsPXRbMV0sYz1yWzFdLHU9ZVsxXS1sLGY9blsxXS1jLGg9KHMqKGwtYyktZiooaS1hKSkvKGYqby1zKnUpO3JldHVybltpK2gqbyxsK2gqdV19ZnVuY3Rpb24gRWUodCl7dmFyIGU9dFswXSxyPXRbdC5sZW5ndGgtMV07cmV0dXJuIShlWzBdLXJbMF18fGVbMV0tclsxXSl9QWUuYXJlYT1mdW5jdGlvbigpe2Zvcih2YXIgdCxlPS0xLHI9dGhpcy5sZW5ndGgsbj10aGlzW3ItMV0saT0wOysrZTxyOyl0PW4sbj10aGlzW2VdLGkrPXRbMV0qblswXS10WzBdKm5bMV07cmV0dXJuLjUqaX0sQWUuY2VudHJvaWQ9ZnVuY3Rpb24odCl7dmFyIGUscixuPS0xLGk9dGhpcy5sZW5ndGgsYT0wLG89MCxzPXRoaXNbaS0xXTtmb3IoYXJndW1lbnRzLmxlbmd0aHx8KHQ9LTEvKDYqdGhpcy5hcmVhKCkpKTsrK248aTspZT1zLHM9dGhpc1tuXSxyPWVbMF0qc1sxXS1zWzBdKmVbMV0sYSs9KGVbMF0rc1swXSkqcixvKz0oZVsxXStzWzFdKSpyO3JldHVyblthKnQsbyp0XX0sQWUuY2xpcD1mdW5jdGlvbih0KXtmb3IodmFyIGUscixuLGksYSxvLHM9RWUodCksbD0tMSxjPXRoaXMubGVuZ3RoLUVlKHRoaXMpLHU9dGhpc1tjLTFdOysrbDxjOyl7Zm9yKGU9dC5zbGljZSgpLHQubGVuZ3RoPTAsaT10aGlzW2xdLGE9ZVsobj1lLmxlbmd0aC1zKS0xXSxyPS0xOysrcjxuOylNZShvPWVbcl0sdSxpKT8oTWUoYSx1LGkpfHx0LnB1c2goU2UoYSxvLHUsaSkpLHQucHVzaChvKSk6TWUoYSx1LGkpJiZ0LnB1c2goU2UoYSxvLHUsaSkpLGE9bztzJiZ0LnB1c2godFswXSksdT1pfXJldHVybiB0fTt2YXIgTGUsQ2UsUGUsSWUsT2UsemU9W10sRGU9W107ZnVuY3Rpb24gUmUoKXtlcih0aGlzKSx0aGlzLmVkZ2U9dGhpcy5zaXRlPXRoaXMuY2lyY2xlPW51bGx9ZnVuY3Rpb24gRmUodCl7dmFyIGU9emUucG9wKCl8fG5ldyBSZTtyZXR1cm4gZS5zaXRlPXQsZX1mdW5jdGlvbiBCZSh0KXtXZSh0KSxQZS5yZW1vdmUodCksemUucHVzaCh0KSxlcih0KX1mdW5jdGlvbiBOZSh0KXt2YXIgZT10LmNpcmNsZSxyPWUueCxuPWUuY3ksaT17eDpyLHk6bn0sYT10LlAsbz10Lk4scz1bdF07QmUodCk7Zm9yKHZhciBsPWE7bC5jaXJjbGUmJnkoci1sLmNpcmNsZS54KTxrdCYmeShuLWwuY2lyY2xlLmN5KTxrdDspYT1sLlAscy51bnNoaWZ0KGwpLEJlKGwpLGw9YTtzLnVuc2hpZnQobCksV2UobCk7Zm9yKHZhciBjPW87Yy5jaXJjbGUmJnkoci1jLmNpcmNsZS54KTxrdCYmeShuLWMuY2lyY2xlLmN5KTxrdDspbz1jLk4scy5wdXNoKGMpLEJlKGMpLGM9bztzLnB1c2goYyksV2UoYyk7dmFyIHUsZj1zLmxlbmd0aDtmb3IodT0xO3U8ZjsrK3UpYz1zW3VdLGw9c1t1LTFdLFFlKGMuZWRnZSxsLnNpdGUsYy5zaXRlLGkpO2w9c1swXSwoYz1zW2YtMV0pLmVkZ2U9SmUobC5zaXRlLGMuc2l0ZSxudWxsLGkpLFllKGwpLFllKGMpfWZ1bmN0aW9uIGplKHQpe2Zvcih2YXIgZSxyLG4saSxhPXQueCxvPXQueSxzPVBlLl87czspaWYoKG49VWUocyxvKS1hKT5rdClzPXMuTDtlbHNle2lmKCEoKGk9YS1WZShzLG8pKT5rdCkpe24+LWt0PyhlPXMuUCxyPXMpOmk+LWt0PyhlPXMscj1zLk4pOmU9cj1zO2JyZWFrfWlmKCFzLlIpe2U9czticmVha31zPXMuUn12YXIgbD1GZSh0KTtpZihQZS5pbnNlcnQoZSxsKSxlfHxyKXtpZihlPT09cilyZXR1cm4gV2UoZSkscj1GZShlLnNpdGUpLFBlLmluc2VydChsLHIpLGwuZWRnZT1yLmVkZ2U9SmUoZS5zaXRlLGwuc2l0ZSksWWUoZSksdm9pZCBZZShyKTtpZihyKXtXZShlKSxXZShyKTt2YXIgYz1lLnNpdGUsdT1jLngsZj1jLnksaD10LngtdSxwPXQueS1mLGQ9ci5zaXRlLG09ZC54LXUsZz1kLnktZix2PTIqKGgqZy1wKm0pLHk9aCpoK3AqcCx4PW0qbStnKmcsYj17eDooZyp5LXAqeCkvdit1LHk6KGgqeC1tKnkpL3YrZn07UWUoci5lZGdlLGMsZCxiKSxsLmVkZ2U9SmUoYyx0LG51bGwsYiksci5lZGdlPUplKHQsZCxudWxsLGIpLFllKGUpLFllKHIpfWVsc2UgbC5lZGdlPUplKGUuc2l0ZSxsLnNpdGUpfX1mdW5jdGlvbiBVZSh0LGUpe3ZhciByPXQuc2l0ZSxuPXIueCxpPXIueSxhPWktZTtpZighYSlyZXR1cm4gbjt2YXIgbz10LlA7aWYoIW8pcmV0dXJuLTEvMDt2YXIgcz0ocj1vLnNpdGUpLngsbD1yLnksYz1sLWU7aWYoIWMpcmV0dXJuIHM7dmFyIHU9cy1uLGY9MS9hLTEvYyxoPXUvYztyZXR1cm4gZj8oLWgrTWF0aC5zcXJ0KGgqaC0yKmYqKHUqdS8oLTIqYyktbCtjLzIraS1hLzIpKSkvZituOihuK3MpLzJ9ZnVuY3Rpb24gVmUodCxlKXt2YXIgcj10Lk47aWYocilyZXR1cm4gVWUocixlKTt2YXIgbj10LnNpdGU7cmV0dXJuIG4ueT09PWU/bi54OjEvMH1mdW5jdGlvbiBIZSh0KXt0aGlzLnNpdGU9dCx0aGlzLmVkZ2VzPVtdfWZ1bmN0aW9uIHFlKHQsZSl7cmV0dXJuIGUuYW5nbGUtdC5hbmdsZX1mdW5jdGlvbiBHZSgpe2VyKHRoaXMpLHRoaXMueD10aGlzLnk9dGhpcy5hcmM9dGhpcy5zaXRlPXRoaXMuY3k9bnVsbH1mdW5jdGlvbiBZZSh0KXt2YXIgZT10LlAscj10Lk47aWYoZSYmcil7dmFyIG49ZS5zaXRlLGk9dC5zaXRlLGE9ci5zaXRlO2lmKG4hPT1hKXt2YXIgbz1pLngscz1pLnksbD1uLngtbyxjPW4ueS1zLHU9YS54LW8sZj0yKihsKihnPWEueS1zKS1jKnUpO2lmKCEoZj49LTFlLTEyKSl7dmFyIGg9bCpsK2MqYyxwPXUqdStnKmcsZD0oZypoLWMqcCkvZixtPShsKnAtdSpoKS9mLGc9bStzLHY9RGUucG9wKCl8fG5ldyBHZTt2LmFyYz10LHYuc2l0ZT1pLHYueD1kK28sdi55PWcrTWF0aC5zcXJ0KGQqZCttKm0pLHYuY3k9Zyx0LmNpcmNsZT12O2Zvcih2YXIgeT1udWxsLHg9T2UuXzt4OylpZih2Lnk8eC55fHx2Lnk9PT14LnkmJnYueDw9eC54KXtpZigheC5MKXt5PXguUDticmVha314PXguTH1lbHNle2lmKCF4LlIpe3k9eDticmVha314PXguUn1PZS5pbnNlcnQoeSx2KSx5fHwoSWU9dil9fX19ZnVuY3Rpb24gV2UodCl7dmFyIGU9dC5jaXJjbGU7ZSYmKGUuUHx8KEllPWUuTiksT2UucmVtb3ZlKGUpLERlLnB1c2goZSksZXIoZSksdC5jaXJjbGU9bnVsbCl9ZnVuY3Rpb24gWGUodCxlKXt2YXIgcj10LmI7aWYocilyZXR1cm4hMDt2YXIgbixpLGE9dC5hLG89ZVswXVswXSxzPWVbMV1bMF0sbD1lWzBdWzFdLGM9ZVsxXVsxXSx1PXQubCxmPXQucixoPXUueCxwPXUueSxkPWYueCxtPWYueSxnPShoK2QpLzIsdj0ocCttKS8yO2lmKG09PT1wKXtpZihnPG98fGc+PXMpcmV0dXJuO2lmKGg+ZCl7aWYoYSl7aWYoYS55Pj1jKXJldHVybn1lbHNlIGE9e3g6Zyx5Omx9O3I9e3g6Zyx5OmN9fWVsc2V7aWYoYSl7aWYoYS55PGwpcmV0dXJufWVsc2UgYT17eDpnLHk6Y307cj17eDpnLHk6bH19fWVsc2UgaWYoaT12LShuPShoLWQpLyhtLXApKSpnLG48LTF8fG4+MSlpZihoPmQpe2lmKGEpe2lmKGEueT49YylyZXR1cm59ZWxzZSBhPXt4OihsLWkpL24seTpsfTtyPXt4OihjLWkpL24seTpjfX1lbHNle2lmKGEpe2lmKGEueTxsKXJldHVybn1lbHNlIGE9e3g6KGMtaSkvbix5OmN9O3I9e3g6KGwtaSkvbix5Omx9fWVsc2UgaWYocDxtKXtpZihhKXtpZihhLng+PXMpcmV0dXJufWVsc2UgYT17eDpvLHk6bipvK2l9O3I9e3g6cyx5Om4qcytpfX1lbHNle2lmKGEpe2lmKGEueDxvKXJldHVybn1lbHNlIGE9e3g6cyx5Om4qcytpfTtyPXt4Om8seTpuKm8raX19cmV0dXJuIHQuYT1hLHQuYj1yLCEwfWZ1bmN0aW9uIFplKHQsZSl7dGhpcy5sPXQsdGhpcy5yPWUsdGhpcy5hPXRoaXMuYj1udWxsfWZ1bmN0aW9uIEplKHQsZSxyLG4pe3ZhciBpPW5ldyBaZSh0LGUpO3JldHVybiBMZS5wdXNoKGkpLHImJlFlKGksdCxlLHIpLG4mJlFlKGksZSx0LG4pLENlW3QuaV0uZWRnZXMucHVzaChuZXcgJGUoaSx0LGUpKSxDZVtlLmldLmVkZ2VzLnB1c2gobmV3ICRlKGksZSx0KSksaX1mdW5jdGlvbiBLZSh0LGUscil7dmFyIG49bmV3IFplKHQsbnVsbCk7cmV0dXJuIG4uYT1lLG4uYj1yLExlLnB1c2gobiksbn1mdW5jdGlvbiBRZSh0LGUscixuKXt0LmF8fHQuYj90Lmw9PT1yP3QuYj1uOnQuYT1uOih0LmE9bix0Lmw9ZSx0LnI9cil9ZnVuY3Rpb24gJGUodCxlLHIpe3ZhciBuPXQuYSxpPXQuYjt0aGlzLmVkZ2U9dCx0aGlzLnNpdGU9ZSx0aGlzLmFuZ2xlPXI/TWF0aC5hdGFuMihyLnktZS55LHIueC1lLngpOnQubD09PWU/TWF0aC5hdGFuMihpLngtbi54LG4ueS1pLnkpOk1hdGguYXRhbjIobi54LWkueCxpLnktbi55KX1mdW5jdGlvbiB0cigpe3RoaXMuXz1udWxsfWZ1bmN0aW9uIGVyKHQpe3QuVT10LkM9dC5MPXQuUj10LlA9dC5OPW51bGx9ZnVuY3Rpb24gcnIodCxlKXt2YXIgcj1lLG49ZS5SLGk9ci5VO2k/aS5MPT09cj9pLkw9bjppLlI9bjp0Ll89bixuLlU9aSxyLlU9bixyLlI9bi5MLHIuUiYmKHIuUi5VPXIpLG4uTD1yfWZ1bmN0aW9uIG5yKHQsZSl7dmFyIHI9ZSxuPWUuTCxpPXIuVTtpP2kuTD09PXI/aS5MPW46aS5SPW46dC5fPW4sbi5VPWksci5VPW4sci5MPW4uUixyLkwmJihyLkwuVT1yKSxuLlI9cn1mdW5jdGlvbiBpcih0KXtmb3IoO3QuTDspdD10Lkw7cmV0dXJuIHR9ZnVuY3Rpb24gYXIodCxlKXt2YXIgcixuLGksYT10LnNvcnQob3IpLnBvcCgpO2ZvcihMZT1bXSxDZT1uZXcgQXJyYXkodC5sZW5ndGgpLFBlPW5ldyB0cixPZT1uZXcgdHI7OylpZihpPUllLGEmJighaXx8YS55PGkueXx8YS55PT09aS55JiZhLng8aS54KSlhLng9PT1yJiZhLnk9PT1ufHwoQ2VbYS5pXT1uZXcgSGUoYSksamUoYSkscj1hLngsbj1hLnkpLGE9dC5wb3AoKTtlbHNle2lmKCFpKWJyZWFrO05lKGkuYXJjKX1lJiYoZnVuY3Rpb24odCl7Zm9yKHZhciBlLHIsbixpLGEsbz1MZSxzPShyPXRbMF1bMF0sbj10WzBdWzFdLGk9dFsxXVswXSxhPXRbMV1bMV0sZnVuY3Rpb24odCl7dmFyIGUsbz10LmEscz10LmIsbD1vLngsYz1vLnksdT0wLGY9MSxoPXMueC1sLHA9cy55LWM7aWYoZT1yLWwsaHx8IShlPjApKXtpZihlLz1oLGg8MCl7aWYoZTx1KXJldHVybjtlPGYmJihmPWUpfWVsc2UgaWYoaD4wKXtpZihlPmYpcmV0dXJuO2U+dSYmKHU9ZSl9aWYoZT1pLWwsaHx8IShlPDApKXtpZihlLz1oLGg8MCl7aWYoZT5mKXJldHVybjtlPnUmJih1PWUpfWVsc2UgaWYoaD4wKXtpZihlPHUpcmV0dXJuO2U8ZiYmKGY9ZSl9aWYoZT1uLWMscHx8IShlPjApKXtpZihlLz1wLHA8MCl7aWYoZTx1KXJldHVybjtlPGYmJihmPWUpfWVsc2UgaWYocD4wKXtpZihlPmYpcmV0dXJuO2U+dSYmKHU9ZSl9aWYoZT1hLWMscHx8IShlPDApKXtpZihlLz1wLHA8MCl7aWYoZT5mKXJldHVybjtlPnUmJih1PWUpfWVsc2UgaWYocD4wKXtpZihlPHUpcmV0dXJuO2U8ZiYmKGY9ZSl9cmV0dXJuIHU+MCYmKHQuYT17eDpsK3UqaCx5OmMrdSpwfSksZjwxJiYodC5iPXt4OmwrZipoLHk6YytmKnB9KSx0fX19fX0pLGw9by5sZW5ndGg7bC0tOykoIVhlKGU9b1tsXSx0KXx8IXMoZSl8fHkoZS5hLngtZS5iLngpPGt0JiZ5KGUuYS55LWUuYi55KTxrdCkmJihlLmE9ZS5iPW51bGwsby5zcGxpY2UobCwxKSl9KGUpLGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyLG4saSxhLG8scyxsLGMsdSxmPXRbMF1bMF0saD10WzFdWzBdLHA9dFswXVsxXSxkPXRbMV1bMV0sbT1DZSxnPW0ubGVuZ3RoO2ctLTspaWYoKGE9bVtnXSkmJmEucHJlcGFyZSgpKWZvcihsPShzPWEuZWRnZXMpLmxlbmd0aCxvPTA7bzxsOyluPSh1PXNbb10uZW5kKCkpLngsaT11LnksZT0oYz1zWysrbyVsXS5zdGFydCgpKS54LHI9Yy55LCh5KG4tZSk+a3R8fHkoaS1yKT5rdCkmJihzLnNwbGljZShvLDAsbmV3ICRlKEtlKGEuc2l0ZSx1LHkobi1mKTxrdCYmZC1pPmt0P3t4OmYseTp5KGUtZik8a3Q/cjpkfTp5KGktZCk8a3QmJmgtbj5rdD97eDp5KHItZCk8a3Q/ZTpoLHk6ZH06eShuLWgpPGt0JiZpLXA+a3Q/e3g6aCx5OnkoZS1oKTxrdD9yOnB9OnkoaS1wKTxrdCYmbi1mPmt0P3t4Onkoci1wKTxrdD9lOmYseTpwfTpudWxsKSxhLnNpdGUsbnVsbCkpLCsrbCl9KGUpKTt2YXIgbz17Y2VsbHM6Q2UsZWRnZXM6TGV9O3JldHVybiBQZT1PZT1MZT1DZT1udWxsLG99ZnVuY3Rpb24gb3IodCxlKXtyZXR1cm4gZS55LXQueXx8ZS54LXQueH1IZS5wcm90b3R5cGUucHJlcGFyZT1mdW5jdGlvbigpe2Zvcih2YXIgdCxlPXRoaXMuZWRnZXMscj1lLmxlbmd0aDtyLS07KSh0PWVbcl0uZWRnZSkuYiYmdC5hfHxlLnNwbGljZShyLDEpO3JldHVybiBlLnNvcnQocWUpLGUubGVuZ3RofSwkZS5wcm90b3R5cGU9e3N0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRnZS5sPT09dGhpcy5zaXRlP3RoaXMuZWRnZS5hOnRoaXMuZWRnZS5ifSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGdlLmw9PT10aGlzLnNpdGU/dGhpcy5lZGdlLmI6dGhpcy5lZGdlLmF9fSx0ci5wcm90b3R5cGU9e2luc2VydDpmdW5jdGlvbih0LGUpe3ZhciByLG4saTtpZih0KXtpZihlLlA9dCxlLk49dC5OLHQuTiYmKHQuTi5QPWUpLHQuTj1lLHQuUil7Zm9yKHQ9dC5SO3QuTDspdD10Lkw7dC5MPWV9ZWxzZSB0LlI9ZTtyPXR9ZWxzZSB0aGlzLl8/KHQ9aXIodGhpcy5fKSxlLlA9bnVsbCxlLk49dCx0LlA9dC5MPWUscj10KTooZS5QPWUuTj1udWxsLHRoaXMuXz1lLHI9bnVsbCk7Zm9yKGUuTD1lLlI9bnVsbCxlLlU9cixlLkM9ITAsdD1lO3ImJnIuQzspcj09PShuPXIuVSkuTD8oaT1uLlIpJiZpLkM/KHIuQz1pLkM9ITEsbi5DPSEwLHQ9bik6KHQ9PT1yLlImJihycih0aGlzLHIpLHI9KHQ9cikuVSksci5DPSExLG4uQz0hMCxucih0aGlzLG4pKTooaT1uLkwpJiZpLkM/KHIuQz1pLkM9ITEsbi5DPSEwLHQ9bik6KHQ9PT1yLkwmJihucih0aGlzLHIpLHI9KHQ9cikuVSksci5DPSExLG4uQz0hMCxycih0aGlzLG4pKSxyPXQuVTt0aGlzLl8uQz0hMX0scmVtb3ZlOmZ1bmN0aW9uKHQpe3QuTiYmKHQuTi5QPXQuUCksdC5QJiYodC5QLk49dC5OKSx0Lk49dC5QPW51bGw7dmFyIGUscixuLGk9dC5VLGE9dC5MLG89dC5SO2lmKHI9YT9vP2lyKG8pOmE6byxpP2kuTD09PXQ/aS5MPXI6aS5SPXI6dGhpcy5fPXIsYSYmbz8obj1yLkMsci5DPXQuQyxyLkw9YSxhLlU9cixyIT09bz8oaT1yLlUsci5VPXQuVSx0PXIuUixpLkw9dCxyLlI9byxvLlU9cik6KHIuVT1pLGk9cix0PXIuUikpOihuPXQuQyx0PXIpLHQmJih0LlU9aSksIW4paWYodCYmdC5DKXQuQz0hMTtlbHNle2Rve2lmKHQ9PT10aGlzLl8pYnJlYWs7aWYodD09PWkuTCl7aWYoKGU9aS5SKS5DJiYoZS5DPSExLGkuQz0hMCxycih0aGlzLGkpLGU9aS5SKSxlLkwmJmUuTC5DfHxlLlImJmUuUi5DKXtlLlImJmUuUi5DfHwoZS5MLkM9ITEsZS5DPSEwLG5yKHRoaXMsZSksZT1pLlIpLGUuQz1pLkMsaS5DPWUuUi5DPSExLHJyKHRoaXMsaSksdD10aGlzLl87YnJlYWt9fWVsc2UgaWYoKGU9aS5MKS5DJiYoZS5DPSExLGkuQz0hMCxucih0aGlzLGkpLGU9aS5MKSxlLkwmJmUuTC5DfHxlLlImJmUuUi5DKXtlLkwmJmUuTC5DfHwoZS5SLkM9ITEsZS5DPSEwLHJyKHRoaXMsZSksZT1pLkwpLGUuQz1pLkMsaS5DPWUuTC5DPSExLG5yKHRoaXMsaSksdD10aGlzLl87YnJlYWt9ZS5DPSEwLHQ9aSxpPWkuVX13aGlsZSghdC5DKTt0JiYodC5DPSExKX19fSx0Lmdlb20udm9yb25vaT1mdW5jdGlvbih0KXt2YXIgZT1fZSxyPXdlLG49ZSxpPXIsYT1zcjtpZih0KXJldHVybiBvKHQpO2Z1bmN0aW9uIG8odCl7dmFyIGU9bmV3IEFycmF5KHQubGVuZ3RoKSxyPWFbMF1bMF0sbj1hWzBdWzFdLGk9YVsxXVswXSxvPWFbMV1bMV07cmV0dXJuIGFyKHModCksYSkuY2VsbHMuZm9yRWFjaCgoZnVuY3Rpb24oYSxzKXt2YXIgbD1hLmVkZ2VzLGM9YS5zaXRlOyhlW3NdPWwubGVuZ3RoP2wubWFwKChmdW5jdGlvbih0KXt2YXIgZT10LnN0YXJ0KCk7cmV0dXJuW2UueCxlLnldfSkpOmMueD49ciYmYy54PD1pJiZjLnk+PW4mJmMueTw9bz9bW3Isb10sW2ksb10sW2ksbl0sW3Isbl1dOltdKS5wb2ludD10W3NdfSkpLGV9ZnVuY3Rpb24gcyh0KXtyZXR1cm4gdC5tYXAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJue3g6TWF0aC5yb3VuZChuKHQsZSkva3QpKmt0LHk6TWF0aC5yb3VuZChpKHQsZSkva3QpKmt0LGk6ZX19KSl9cmV0dXJuIG8ubGlua3M9ZnVuY3Rpb24odCl7cmV0dXJuIGFyKHModCkpLmVkZ2VzLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQubCYmdC5yfSkpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJue3NvdXJjZTp0W2UubC5pXSx0YXJnZXQ6dFtlLnIuaV19fSkpfSxvLnRyaWFuZ2xlcz1mdW5jdGlvbih0KXt2YXIgZT1bXTtyZXR1cm4gYXIocyh0KSkuY2VsbHMuZm9yRWFjaCgoZnVuY3Rpb24ocixuKXtmb3IodmFyIGksYSxvLHMsbD1yLnNpdGUsYz1yLmVkZ2VzLnNvcnQocWUpLHU9LTEsZj1jLmxlbmd0aCxoPWNbZi0xXS5lZGdlLHA9aC5sPT09bD9oLnI6aC5sOysrdTxmOyloLGk9cCxwPShoPWNbdV0uZWRnZSkubD09PWw/aC5yOmgubCxuPGkuaSYmbjxwLmkmJihvPWkscz1wLCgoYT1sKS54LXMueCkqKG8ueS1hLnkpLShhLngtby54KSoocy55LWEueSk8MCkmJmUucHVzaChbdFtuXSx0W2kuaV0sdFtwLmldXSl9KSksZX0sby54PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPWNlKGU9dCksbyk6ZX0sby55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPWNlKHI9dCksbyk6cn0sby5jbGlwRXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPW51bGw9PXQ/c3I6dCxvKTphPT09c3I/bnVsbDphfSxvLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/by5jbGlwRXh0ZW50KHQmJltbMCwwXSx0XSk6YT09PXNyP251bGw6YSYmYVsxXX0sb307dmFyIHNyPVtbLTFlNiwtMWU2XSxbMWU2LDFlNl1dO2Z1bmN0aW9uIGxyKHQpe3JldHVybiB0Lnh9ZnVuY3Rpb24gY3IodCl7cmV0dXJuIHQueX1mdW5jdGlvbiB1cih0LGUscixuLGksYSl7aWYoIXQoZSxyLG4saSxhKSl7dmFyIG89LjUqKHIraSkscz0uNSoobithKSxsPWUubm9kZXM7bFswXSYmdXIodCxsWzBdLHIsbixvLHMpLGxbMV0mJnVyKHQsbFsxXSxvLG4saSxzKSxsWzJdJiZ1cih0LGxbMl0scixzLG8sYSksbFszXSYmdXIodCxsWzNdLG8scyxpLGEpfX1mdW5jdGlvbiBmcih0LGUscixuLGksYSxvKXt2YXIgcyxsPTEvMDtyZXR1cm4gZnVuY3Rpb24gdChjLHUsZixoLHApe2lmKCEodT5hfHxmPm98fGg8bnx8cDxpKSl7aWYoZD1jLnBvaW50KXt2YXIgZCxtPWUtYy54LGc9ci1jLnksdj1tKm0rZypnO2lmKHY8bCl7dmFyIHk9TWF0aC5zcXJ0KGw9dik7bj1lLXksaT1yLXksYT1lK3ksbz1yK3kscz1kfX1mb3IodmFyIHg9Yy5ub2RlcyxiPS41Kih1K2gpLF89LjUqKGYrcCksdz0ocj49Xyk8PDF8ZT49YixUPXcrNDt3PFQ7Kyt3KWlmKGM9eFszJnddKXN3aXRjaCgzJncpe2Nhc2UgMDp0KGMsdSxmLGIsXyk7YnJlYWs7Y2FzZSAxOnQoYyxiLGYsaCxfKTticmVhaztjYXNlIDI6dChjLHUsXyxiLHApO2JyZWFrO2Nhc2UgMzp0KGMsYixfLGgscCl9fX0odCxuLGksYSxvKSxzfWZ1bmN0aW9uIGhyKGUscil7ZT10LnJnYihlKSxyPXQucmdiKHIpO3ZhciBuPWUucixpPWUuZyxhPWUuYixvPXIuci1uLHM9ci5nLWksbD1yLmItYTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIiMiK3JlKE1hdGgucm91bmQobitvKnQpKStyZShNYXRoLnJvdW5kKGkrcyp0KSkrcmUoTWF0aC5yb3VuZChhK2wqdCkpfX1mdW5jdGlvbiBwcih0LGUpe3ZhciByLG49e30saT17fTtmb3IociBpbiB0KXIgaW4gZT9uW3JdPXlyKHRbcl0sZVtyXSk6aVtyXT10W3JdO2ZvcihyIGluIGUpciBpbiB0fHwoaVtyXT1lW3JdKTtyZXR1cm4gZnVuY3Rpb24odCl7Zm9yKHIgaW4gbilpW3JdPW5bcl0odCk7cmV0dXJuIGl9fWZ1bmN0aW9uIGRyKHQsZSl7cmV0dXJuIHQ9K3QsZT0rZSxmdW5jdGlvbihyKXtyZXR1cm4gdCooMS1yKStlKnJ9fWZ1bmN0aW9uIG1yKHQsZSl7dmFyIHIsbixpLGE9Z3IubGFzdEluZGV4PXZyLmxhc3RJbmRleD0wLG89LTEscz1bXSxsPVtdO2Zvcih0Kz0iIixlKz0iIjsocj1nci5leGVjKHQpKSYmKG49dnIuZXhlYyhlKSk7KShpPW4uaW5kZXgpPmEmJihpPWUuc2xpY2UoYSxpKSxzW29dP3Nbb10rPWk6c1srK29dPWkpLChyPXJbMF0pPT09KG49blswXSk/c1tvXT9zW29dKz1uOnNbKytvXT1uOihzWysrb109bnVsbCxsLnB1c2goe2k6byx4OmRyKHIsbil9KSksYT12ci5sYXN0SW5kZXg7cmV0dXJuIGE8ZS5sZW5ndGgmJihpPWUuc2xpY2UoYSksc1tvXT9zW29dKz1pOnNbKytvXT1pKSxzLmxlbmd0aDwyP2xbMF0/KGU9bFswXS54LGZ1bmN0aW9uKHQpe3JldHVybiBlKHQpKyIifSk6ZnVuY3Rpb24oKXtyZXR1cm4gZX06KGU9bC5sZW5ndGgsZnVuY3Rpb24odCl7Zm9yKHZhciByLG49MDtuPGU7KytuKXNbKHI9bFtuXSkuaV09ci54KHQpO3JldHVybiBzLmpvaW4oIiIpfSl9dC5nZW9tLmRlbGF1bmF5PWZ1bmN0aW9uKGUpe3JldHVybiB0Lmdlb20udm9yb25vaSgpLnRyaWFuZ2xlcyhlKX0sdC5nZW9tLnF1YWR0cmVlPWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGEsbz1fZSxzPXdlO2lmKGE9YXJndW1lbnRzLmxlbmd0aClyZXR1cm4gbz1scixzPWNyLDM9PT1hJiYoaT1yLG49ZSxyPWU9MCksbCh0KTtmdW5jdGlvbiBsKHQpe3ZhciBsLGMsdSxmLGgscCxkLG0sZyx2PWNlKG8pLHg9Y2Uocyk7aWYobnVsbCE9ZSlwPWUsZD1yLG09bixnPWk7ZWxzZSBpZihtPWc9LShwPWQ9MS8wKSxjPVtdLHU9W10saD10Lmxlbmd0aCxhKWZvcihmPTA7ZjxoOysrZikobD10W2ZdKS54PHAmJihwPWwueCksbC55PGQmJihkPWwueSksbC54Pm0mJihtPWwueCksbC55PmcmJihnPWwueSksYy5wdXNoKGwueCksdS5wdXNoKGwueSk7ZWxzZSBmb3IoZj0wO2Y8aDsrK2Ype3ZhciBiPSt2KGw9dFtmXSxmKSxfPSt4KGwsZik7YjxwJiYocD1iKSxfPGQmJihkPV8pLGI+bSYmKG09YiksXz5nJiYoZz1fKSxjLnB1c2goYiksdS5wdXNoKF8pfXZhciB3PW0tcCxUPWctZDtmdW5jdGlvbiBrKHQsZSxyLG4saSxhLG8scyl7aWYoIWlzTmFOKHIpJiYhaXNOYU4obikpaWYodC5sZWFmKXt2YXIgbD10LngsYz10Lnk7aWYobnVsbCE9bClpZih5KGwtcikreShjLW4pPC4wMSlBKHQsZSxyLG4saSxhLG8scyk7ZWxzZXt2YXIgdT10LnBvaW50O3QueD10Lnk9dC5wb2ludD1udWxsLEEodCx1LGwsYyxpLGEsbyxzKSxBKHQsZSxyLG4saSxhLG8scyl9ZWxzZSB0Lng9cix0Lnk9bix0LnBvaW50PWV9ZWxzZSBBKHQsZSxyLG4saSxhLG8scyl9ZnVuY3Rpb24gQSh0LGUscixuLGksYSxvLHMpe3ZhciBsPS41KihpK28pLGM9LjUqKGErcyksdT1yPj1sLGY9bj49YyxoPWY8PDF8dTt0LmxlYWY9ITEsdT9pPWw6bz1sLGY/YT1jOnM9YyxrKHQ9dC5ub2Rlc1toXXx8KHQubm9kZXNbaF09e2xlYWY6ITAsbm9kZXM6W10scG9pbnQ6bnVsbCx4Om51bGwseTpudWxsfSksZSxyLG4saSxhLG8scyl9dz5UP2c9ZCt3Om09cCtUO3ZhciBNPXtsZWFmOiEwLG5vZGVzOltdLHBvaW50Om51bGwseDpudWxsLHk6bnVsbCxhZGQ6ZnVuY3Rpb24odCl7ayhNLHQsK3YodCwrK2YpLCt4KHQsZikscCxkLG0sZyl9LHZpc2l0OmZ1bmN0aW9uKHQpe3VyKHQsTSxwLGQsbSxnKX0sZmluZDpmdW5jdGlvbih0KXtyZXR1cm4gZnIoTSx0WzBdLHRbMV0scCxkLG0sZyl9fTtpZihmPS0xLG51bGw9PWUpe2Zvcig7KytmPGg7KWsoTSx0W2ZdLGNbZl0sdVtmXSxwLGQsbSxnKTstLWZ9ZWxzZSB0LmZvckVhY2goTS5hZGQpO3JldHVybiBjPXU9dD1sPW51bGwsTX1yZXR1cm4gbC54PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPXQsbCk6b30sbC55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPXQsbCk6c30sbC5leHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG51bGw9PXQ/ZT1yPW49aT1udWxsOihlPSt0WzBdWzBdLHI9K3RbMF1bMV0sbj0rdFsxXVswXSxpPSt0WzFdWzFdKSxsKTpudWxsPT1lP251bGw6W1tlLHJdLFtuLGldXX0sbC5zaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhudWxsPT10P2U9cj1uPWk9bnVsbDooZT1yPTAsbj0rdFswXSxpPSt0WzFdKSxsKTpudWxsPT1lP251bGw6W24tZSxpLXJdfSxsfSx0LmludGVycG9sYXRlUmdiPWhyLHQuaW50ZXJwb2xhdGVPYmplY3Q9cHIsdC5pbnRlcnBvbGF0ZU51bWJlcj1kcix0LmludGVycG9sYXRlU3RyaW5nPW1yO3ZhciBncj0vWy0rXT8oPzpcZCtcLj9cZCp8XC4/XGQrKSg/OltlRV1bLStdP1xkKyk/L2csdnI9bmV3IFJlZ0V4cChnci5zb3VyY2UsImciKTtmdW5jdGlvbiB5cihlLHIpe2Zvcih2YXIgbixpPXQuaW50ZXJwb2xhdG9ycy5sZW5ndGg7LS1pPj0wJiYhKG49dC5pbnRlcnBvbGF0b3JzW2ldKGUscikpOyk7cmV0dXJuIG59ZnVuY3Rpb24geHIodCxlKXt2YXIgcixuPVtdLGk9W10sYT10Lmxlbmd0aCxvPWUubGVuZ3RoLHM9TWF0aC5taW4odC5sZW5ndGgsZS5sZW5ndGgpO2ZvcihyPTA7cjxzOysrciluLnB1c2goeXIodFtyXSxlW3JdKSk7Zm9yKDtyPGE7KytyKWlbcl09dFtyXTtmb3IoO3I8bzsrK3IpaVtyXT1lW3JdO3JldHVybiBmdW5jdGlvbih0KXtmb3Iocj0wO3I8czsrK3IpaVtyXT1uW3JdKHQpO3JldHVybiBpfX10LmludGVycG9sYXRlPXlyLHQuaW50ZXJwb2xhdG9ycz1bZnVuY3Rpb24odCxlKXt2YXIgcj10eXBlb2YgZTtyZXR1cm4oInN0cmluZyI9PT1yP2xlLmhhcyhlLnRvTG93ZXJDYXNlKCkpfHwvXigjfHJnYlwofGhzbFwoKS9pLnRlc3QoZSk/aHI6bXI6ZSBpbnN0YW5jZW9mIEZ0P2hyOkFycmF5LmlzQXJyYXkoZSk/eHI6Im9iamVjdCI9PT1yJiZpc05hTihlKT9wcjpkcikodCxlKX1dLHQuaW50ZXJwb2xhdGVBcnJheT14cjt2YXIgYnI9ZnVuY3Rpb24oKXtyZXR1cm4gQ30sX3I9dC5tYXAoe2xpbmVhcjpicixwb2x5OmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5wb3coZSx0KX19LHF1YWQ6ZnVuY3Rpb24oKXtyZXR1cm4gTXJ9LGN1YmljOmZ1bmN0aW9uKCl7cmV0dXJuIFNyfSxzaW46ZnVuY3Rpb24oKXtyZXR1cm4gTHJ9LGV4cDpmdW5jdGlvbigpe3JldHVybiBDcn0sY2lyY2xlOmZ1bmN0aW9uKCl7cmV0dXJuIFByfSxlbGFzdGljOmZ1bmN0aW9uKHQsZSl7dmFyIHI7YXJndW1lbnRzLmxlbmd0aDwyJiYoZT0uNDUpO2FyZ3VtZW50cy5sZW5ndGg/cj1lL010Kk1hdGguYXNpbigxL3QpOih0PTEscj1lLzQpO3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gMSt0Kk1hdGgucG93KDIsLTEwKm4pKk1hdGguc2luKChuLXIpKk10L2UpfX0sYmFjazpmdW5jdGlvbih0KXt0fHwodD0xLjcwMTU4KTtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGUqZSooKHQrMSkqZS10KX19LGJvdW5jZTpmdW5jdGlvbigpe3JldHVybiBJcn19KSx3cj10Lm1hcCh7aW46QyxvdXQ6a3IsImluLW91dCI6QXIsIm91dC1pbiI6ZnVuY3Rpb24odCl7cmV0dXJuIEFyKGtyKHQpKX19KTtmdW5jdGlvbiBUcih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGU8PTA/MDplPj0xPzE6dChlKX19ZnVuY3Rpb24ga3IodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiAxLXQoMS1lKX19ZnVuY3Rpb24gQXIodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybi41KihlPC41P3QoMiplKToyLXQoMi0yKmUpKX19ZnVuY3Rpb24gTXIodCl7cmV0dXJuIHQqdH1mdW5jdGlvbiBTcih0KXtyZXR1cm4gdCp0KnR9ZnVuY3Rpb24gRXIodCl7aWYodDw9MClyZXR1cm4gMDtpZih0Pj0xKXJldHVybiAxO3ZhciBlPXQqdCxyPWUqdDtyZXR1cm4gNCoodDwuNT9yOjMqKHQtZSkrci0uNzUpfWZ1bmN0aW9uIExyKHQpe3JldHVybiAxLU1hdGguY29zKHQqRXQpfWZ1bmN0aW9uIENyKHQpe3JldHVybiBNYXRoLnBvdygyLDEwKih0LTEpKX1mdW5jdGlvbiBQcih0KXtyZXR1cm4gMS1NYXRoLnNxcnQoMS10KnQpfWZ1bmN0aW9uIElyKHQpe3JldHVybiB0PDEvMi43NT83LjU2MjUqdCp0OnQ8Mi8yLjc1PzcuNTYyNSoodC09MS41LzIuNzUpKnQrLjc1OnQ8Mi41LzIuNzU/Ny41NjI1Kih0LT0yLjI1LzIuNzUpKnQrLjkzNzU6Ny41NjI1Kih0LT0yLjYyNS8yLjc1KSp0Ky45ODQzNzV9ZnVuY3Rpb24gT3IodCxlKXtyZXR1cm4gZS09dCxmdW5jdGlvbihyKXtyZXR1cm4gTWF0aC5yb3VuZCh0K2Uqcil9fWZ1bmN0aW9uIHpyKHQpe3ZhciBlLHIsbixpPVt0LmEsdC5iXSxhPVt0LmMsdC5kXSxvPVJyKGkpLHM9RHIoaSxhKSxsPVJyKCgoZT1hKVswXSs9KG49LXMpKihyPWkpWzBdLGVbMV0rPW4qclsxXSxlKSl8fDA7aVswXSphWzFdPGFbMF0qaVsxXSYmKGlbMF0qPS0xLGlbMV0qPS0xLG8qPS0xLHMqPS0xKSx0aGlzLnJvdGF0ZT0obz9NYXRoLmF0YW4yKGlbMV0saVswXSk6TWF0aC5hdGFuMigtYVswXSxhWzFdKSkqQ3QsdGhpcy50cmFuc2xhdGU9W3QuZSx0LmZdLHRoaXMuc2NhbGU9W28sbF0sdGhpcy5za2V3PWw/TWF0aC5hdGFuMihzLGwpKkN0OjB9ZnVuY3Rpb24gRHIodCxlKXtyZXR1cm4gdFswXSplWzBdK3RbMV0qZVsxXX1mdW5jdGlvbiBScih0KXt2YXIgZT1NYXRoLnNxcnQoRHIodCx0KSk7cmV0dXJuIGUmJih0WzBdLz1lLHRbMV0vPWUpLGV9dC5lYXNlPWZ1bmN0aW9uKHQpe3ZhciBlPXQuaW5kZXhPZigiLSIpLG49ZT49MD90LnNsaWNlKDAsZSk6dCxpPWU+PTA/dC5zbGljZShlKzEpOiJpbiI7cmV0dXJuIG49X3IuZ2V0KG4pfHxicixUcigoaT13ci5nZXQoaSl8fEMpKG4uYXBwbHkobnVsbCxyLmNhbGwoYXJndW1lbnRzLDEpKSkpfSx0LmludGVycG9sYXRlSGNsPWZ1bmN0aW9uKGUscil7ZT10LmhjbChlKSxyPXQuaGNsKHIpO3ZhciBuPWUuaCxpPWUuYyxhPWUubCxvPXIuaC1uLHM9ci5jLWksbD1yLmwtYTtpc05hTihzKSYmKHM9MCxpPWlzTmFOKGkpP3IuYzppKTtpc05hTihvKT8obz0wLG49aXNOYU4obik/ci5oOm4pOm8+MTgwP28tPTM2MDpvPC0xODAmJihvKz0zNjApO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gSHQobitvKnQsaStzKnQsYStsKnQpKyIifX0sdC5pbnRlcnBvbGF0ZUhzbD1mdW5jdGlvbihlLHIpe2U9dC5oc2woZSkscj10LmhzbChyKTt2YXIgbj1lLmgsaT1lLnMsYT1lLmwsbz1yLmgtbixzPXIucy1pLGw9ci5sLWE7aXNOYU4ocykmJihzPTAsaT1pc05hTihpKT9yLnM6aSk7aXNOYU4obyk/KG89MCxuPWlzTmFOKG4pP3IuaDpuKTpvPjE4MD9vLT0zNjA6bzwtMTgwJiYobys9MzYwKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGp0KG4rbyp0LGkrcyp0LGErbCp0KSsiIn19LHQuaW50ZXJwb2xhdGVMYWI9ZnVuY3Rpb24oZSxyKXtlPXQubGFiKGUpLHI9dC5sYWIocik7dmFyIG49ZS5sLGk9ZS5hLGE9ZS5iLG89ci5sLW4scz1yLmEtaSxsPXIuYi1hO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gV3QobitvKnQsaStzKnQsYStsKnQpKyIifX0sdC5pbnRlcnBvbGF0ZVJvdW5kPU9yLHQudHJhbnNmb3JtPWZ1bmN0aW9uKGUpe3ZhciByPWkuY3JlYXRlRWxlbWVudE5TKHQubnMucHJlZml4LnN2ZywiZyIpO3JldHVybih0LnRyYW5zZm9ybT1mdW5jdGlvbih0KXtpZihudWxsIT10KXtyLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIix0KTt2YXIgZT1yLnRyYW5zZm9ybS5iYXNlVmFsLmNvbnNvbGlkYXRlKCl9cmV0dXJuIG5ldyB6cihlP2UubWF0cml4OkZyKX0pKGUpfSx6ci5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4idHJhbnNsYXRlKCIrdGhpcy50cmFuc2xhdGUrIilyb3RhdGUoIit0aGlzLnJvdGF0ZSsiKXNrZXdYKCIrdGhpcy5za2V3KyIpc2NhbGUoIit0aGlzLnNjYWxlKyIpIn07dmFyIEZyPXthOjEsYjowLGM6MCxkOjEsZTowLGY6MH07ZnVuY3Rpb24gQnIodCl7cmV0dXJuIHQubGVuZ3RoP3QucG9wKCkrIiwiOiIifWZ1bmN0aW9uIE5yKGUscil7dmFyIG49W10saT1bXTtyZXR1cm4gZT10LnRyYW5zZm9ybShlKSxyPXQudHJhbnNmb3JtKHIpLGZ1bmN0aW9uKHQsZSxyLG4pe2lmKHRbMF0hPT1lWzBdfHx0WzFdIT09ZVsxXSl7dmFyIGk9ci5wdXNoKCJ0cmFuc2xhdGUoIixudWxsLCIsIixudWxsLCIpIik7bi5wdXNoKHtpOmktNCx4OmRyKHRbMF0sZVswXSl9LHtpOmktMix4OmRyKHRbMV0sZVsxXSl9KX1lbHNlKGVbMF18fGVbMV0pJiZyLnB1c2goInRyYW5zbGF0ZSgiK2UrIikiKX0oZS50cmFuc2xhdGUsci50cmFuc2xhdGUsbixpKSxmdW5jdGlvbih0LGUscixuKXt0IT09ZT8odC1lPjE4MD9lKz0zNjA6ZS10PjE4MCYmKHQrPTM2MCksbi5wdXNoKHtpOnIucHVzaChCcihyKSsicm90YXRlKCIsbnVsbCwiKSIpLTIseDpkcih0LGUpfSkpOmUmJnIucHVzaChCcihyKSsicm90YXRlKCIrZSsiKSIpfShlLnJvdGF0ZSxyLnJvdGF0ZSxuLGkpLGZ1bmN0aW9uKHQsZSxyLG4pe3QhPT1lP24ucHVzaCh7aTpyLnB1c2goQnIocikrInNrZXdYKCIsbnVsbCwiKSIpLTIseDpkcih0LGUpfSk6ZSYmci5wdXNoKEJyKHIpKyJza2V3WCgiK2UrIikiKX0oZS5za2V3LHIuc2tldyxuLGkpLGZ1bmN0aW9uKHQsZSxyLG4pe2lmKHRbMF0hPT1lWzBdfHx0WzFdIT09ZVsxXSl7dmFyIGk9ci5wdXNoKEJyKHIpKyJzY2FsZSgiLG51bGwsIiwiLG51bGwsIikiKTtuLnB1c2goe2k6aS00LHg6ZHIodFswXSxlWzBdKX0se2k6aS0yLHg6ZHIodFsxXSxlWzFdKX0pfWVsc2UgMT09PWVbMF0mJjE9PT1lWzFdfHxyLnB1c2goQnIocikrInNjYWxlKCIrZSsiKSIpfShlLnNjYWxlLHIuc2NhbGUsbixpKSxlPXI9bnVsbCxmdW5jdGlvbih0KXtmb3IodmFyIGUscj0tMSxhPWkubGVuZ3RoOysrcjxhOyluWyhlPWlbcl0pLmldPWUueCh0KTtyZXR1cm4gbi5qb2luKCIiKX19ZnVuY3Rpb24ganIodCxlKXtyZXR1cm4gZT0oZS09dD0rdCl8fDEvZSxmdW5jdGlvbihyKXtyZXR1cm4oci10KS9lfX1mdW5jdGlvbiBVcih0LGUpe3JldHVybiBlPShlLT10PSt0KXx8MS9lLGZ1bmN0aW9uKHIpe3JldHVybiBNYXRoLm1heCgwLE1hdGgubWluKDEsKHItdCkvZSkpfX1mdW5jdGlvbiBWcih0KXtmb3IodmFyIGU9dC5zb3VyY2Uscj10LnRhcmdldCxuPWZ1bmN0aW9uKHQsZSl7aWYodD09PWUpcmV0dXJuIHQ7dmFyIHI9SHIodCksbj1IcihlKSxpPXIucG9wKCksYT1uLnBvcCgpLG89bnVsbDtmb3IoO2k9PT1hOylvPWksaT1yLnBvcCgpLGE9bi5wb3AoKTtyZXR1cm4gb30oZSxyKSxpPVtlXTtlIT09bjspZT1lLnBhcmVudCxpLnB1c2goZSk7Zm9yKHZhciBhPWkubGVuZ3RoO3IhPT1uOylpLnNwbGljZShhLDAscikscj1yLnBhcmVudDtyZXR1cm4gaX1mdW5jdGlvbiBIcih0KXtmb3IodmFyIGU9W10scj10LnBhcmVudDtudWxsIT1yOyllLnB1c2godCksdD1yLHI9ci5wYXJlbnQ7cmV0dXJuIGUucHVzaCh0KSxlfWZ1bmN0aW9uIHFyKHQpe3QuZml4ZWR8PTJ9ZnVuY3Rpb24gR3IodCl7dC5maXhlZCY9LTd9ZnVuY3Rpb24gWXIodCl7dC5maXhlZHw9NCx0LnB4PXQueCx0LnB5PXQueX1mdW5jdGlvbiBXcih0KXt0LmZpeGVkJj0tNX10LmludGVycG9sYXRlVHJhbnNmb3JtPU5yLHQubGF5b3V0PXt9LHQubGF5b3V0LmJ1bmRsZT1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0KXtmb3IodmFyIGU9W10scj0tMSxuPXQubGVuZ3RoOysrcjxuOyllLnB1c2goVnIodFtyXSkpO3JldHVybiBlfX0sdC5sYXlvdXQuY2hvcmQ9ZnVuY3Rpb24oKXt2YXIgZSxyLG4saSxhLG8scyxsPXt9LGM9MDtmdW5jdGlvbiB1KCl7dmFyIGwsdSxoLHAsZCxtPXt9LGc9W10sdj10LnJhbmdlKGkpLHk9W107Zm9yKGU9W10scj1bXSxsPTAscD0tMTsrK3A8aTspe2Zvcih1PTAsZD0tMTsrK2Q8aTspdSs9bltwXVtkXTtnLnB1c2godSkseS5wdXNoKHQucmFuZ2UoaSkpLGwrPXV9Zm9yKGEmJnYuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gYShnW3RdLGdbZV0pfSkpLG8mJnkuZm9yRWFjaCgoZnVuY3Rpb24odCxlKXt0LnNvcnQoKGZ1bmN0aW9uKHQscil7cmV0dXJuIG8obltlXVt0XSxuW2VdW3JdKX0pKX0pKSxsPShNdC1jKmkpL2wsdT0wLHA9LTE7KytwPGk7KXtmb3IoaD11LGQ9LTE7KytkPGk7KXt2YXIgeD12W3BdLGI9eVt4XVtkXSxfPW5beF1bYl0sdz11LFQ9dSs9XypsO21beCsiLSIrYl09e2luZGV4Ongsc3ViaW5kZXg6YixzdGFydEFuZ2xlOncsZW5kQW5nbGU6VCx2YWx1ZTpffX1yW3hdPXtpbmRleDp4LHN0YXJ0QW5nbGU6aCxlbmRBbmdsZTp1LHZhbHVlOmdbeF19LHUrPWN9Zm9yKHA9LTE7KytwPGk7KWZvcihkPXAtMTsrK2Q8aTspe3ZhciBrPW1bcCsiLSIrZF0sQT1tW2QrIi0iK3BdOyhrLnZhbHVlfHxBLnZhbHVlKSYmZS5wdXNoKGsudmFsdWU8QS52YWx1ZT97c291cmNlOkEsdGFyZ2V0Omt9Ontzb3VyY2U6ayx0YXJnZXQ6QX0pfXMmJmYoKX1mdW5jdGlvbiBmKCl7ZS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiBzKCh0LnNvdXJjZS52YWx1ZSt0LnRhcmdldC52YWx1ZSkvMiwoZS5zb3VyY2UudmFsdWUrZS50YXJnZXQudmFsdWUpLzIpfSkpfXJldHVybiBsLm1hdHJpeD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0obj10KSYmbi5sZW5ndGgsZT1yPW51bGwsbCk6bn0sbC5wYWRkaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPXQsZT1yPW51bGwsbCk6Y30sbC5zb3J0R3JvdXBzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPXQsZT1yPW51bGwsbCk6YX0sbC5zb3J0U3ViZ3JvdXBzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPXQsZT1udWxsLGwpOm99LGwuc29ydENob3Jkcz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz10LGUmJmYoKSxsKTpzfSxsLmNob3Jkcz1mdW5jdGlvbigpe3JldHVybiBlfHx1KCksZX0sbC5ncm91cHM9ZnVuY3Rpb24oKXtyZXR1cm4gcnx8dSgpLHJ9LGx9LHQubGF5b3V0LmZvcmNlPWZ1bmN0aW9uKCl7dmFyIGUscixuLGksYSxvLHM9e30sbD10LmRpc3BhdGNoKCJzdGFydCIsInRpY2siLCJlbmQiKSxjPVsxLDFdLHU9LjksZj1YcixoPVpyLHA9LTMwLGQ9SnIsbT0uMSxnPS42NCx2PVtdLHk9W107ZnVuY3Rpb24geCh0KXtyZXR1cm4gZnVuY3Rpb24oZSxyLG4saSl7aWYoZS5wb2ludCE9PXQpe3ZhciBhPWUuY3gtdC54LG89ZS5jeS10Lnkscz1pLXIsbD1hKmErbypvO2lmKHMqcy9nPGwpe2lmKGw8ZCl7dmFyIGM9ZS5jaGFyZ2UvbDt0LnB4LT1hKmMsdC5weS09bypjfXJldHVybiEwfWlmKGUucG9pbnQmJmwmJmw8ZCl7Yz1lLnBvaW50Q2hhcmdlL2w7dC5weC09YSpjLHQucHktPW8qY319cmV0dXJuIWUuY2hhcmdlfX1mdW5jdGlvbiBiKGUpe2UucHg9dC5ldmVudC54LGUucHk9dC5ldmVudC55LHMucmVzdW1lKCl9cmV0dXJuIHMudGljaz1mdW5jdGlvbigpe2lmKChuKj0uOTkpPC4wMDUpcmV0dXJuIGU9bnVsbCxsLmVuZCh7dHlwZToiZW5kIixhbHBoYTpuPTB9KSwhMDt2YXIgcixzLGYsaCxkLGcsYixfLHcsVD12Lmxlbmd0aCxrPXkubGVuZ3RoO2ZvcihzPTA7czxrOysrcyloPShmPXlbc10pLnNvdXJjZSwoZz0oXz0oZD1mLnRhcmdldCkueC1oLngpKl8rKHc9ZC55LWgueSkqdykmJihfKj1nPW4qYVtzXSooKGc9TWF0aC5zcXJ0KGcpKS1pW3NdKS9nLHcqPWcsZC54LT1fKihiPWgud2VpZ2h0K2Qud2VpZ2h0P2gud2VpZ2h0LyhoLndlaWdodCtkLndlaWdodCk6LjUpLGQueS09dypiLGgueCs9XyooYj0xLWIpLGgueSs9dypiKTtpZigoYj1uKm0pJiYoXz1jWzBdLzIsdz1jWzFdLzIscz0tMSxiKSlmb3IoOysrczxUOykoZj12W3NdKS54Kz0oXy1mLngpKmIsZi55Kz0ody1mLnkpKmI7aWYocClmb3IoIWZ1bmN0aW9uIHQoZSxyLG4pe3ZhciBpPTAsYT0wO2lmKGUuY2hhcmdlPTAsIWUubGVhZilmb3IodmFyIG8scz1lLm5vZGVzLGw9cy5sZW5ndGgsYz0tMTsrK2M8bDspbnVsbCE9KG89c1tjXSkmJih0KG8scixuKSxlLmNoYXJnZSs9by5jaGFyZ2UsaSs9by5jaGFyZ2Uqby5jeCxhKz1vLmNoYXJnZSpvLmN5KTtpZihlLnBvaW50KXtlLmxlYWZ8fChlLnBvaW50LngrPU1hdGgucmFuZG9tKCktLjUsZS5wb2ludC55Kz1NYXRoLnJhbmRvbSgpLS41KTt2YXIgdT1yKm5bZS5wb2ludC5pbmRleF07ZS5jaGFyZ2UrPWUucG9pbnRDaGFyZ2U9dSxpKz11KmUucG9pbnQueCxhKz11KmUucG9pbnQueX1lLmN4PWkvZS5jaGFyZ2UsZS5jeT1hL2UuY2hhcmdlfShyPXQuZ2VvbS5xdWFkdHJlZSh2KSxuLG8pLHM9LTE7KytzPFQ7KShmPXZbc10pLmZpeGVkfHxyLnZpc2l0KHgoZikpO2ZvcihzPS0xOysrczxUOykoZj12W3NdKS5maXhlZD8oZi54PWYucHgsZi55PWYucHkpOihmLngtPShmLnB4LShmLnB4PWYueCkpKnUsZi55LT0oZi5weS0oZi5weT1mLnkpKSp1KTtsLnRpY2soe3R5cGU6InRpY2siLGFscGhhOm59KX0scy5ub2Rlcz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odj10LHMpOnZ9LHMubGlua3M9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHk9dCxzKTp5fSxzLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9dCxzKTpjfSxzLmxpbmtEaXN0YW5jZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj0iZnVuY3Rpb24iPT10eXBlb2YgdD90Oit0LHMpOmZ9LHMuZGlzdGFuY2U9cy5saW5rRGlzdGFuY2Uscy5saW5rU3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDordCxzKTpofSxzLmZyaWN0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PSt0LHMpOnV9LHMuY2hhcmdlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhwPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6K3Qscyk6cH0scy5jaGFyZ2VEaXN0YW5jZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZD10KnQscyk6TWF0aC5zcXJ0KGQpfSxzLmdyYXZpdHk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG09K3Qscyk6bX0scy50aGV0YT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZz10KnQscyk6TWF0aC5zcXJ0KGcpfSxzLmFscGhhPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSt0LG4/dD4wP249dDooZS5jPW51bGwsZS50PU5hTixlPW51bGwsbC5lbmQoe3R5cGU6ImVuZCIsYWxwaGE6bj0wfSkpOnQ+MCYmKGwuc3RhcnQoe3R5cGU6InN0YXJ0IixhbHBoYTpuPXR9KSxlPXZlKHMudGljaykpLHMpOm59LHMuc3RhcnQ9ZnVuY3Rpb24oKXt2YXIgdCxlLHIsbj12Lmxlbmd0aCxsPXkubGVuZ3RoLHU9Y1swXSxkPWNbMV07Zm9yKHQ9MDt0PG47Kyt0KShyPXZbdF0pLmluZGV4PXQsci53ZWlnaHQ9MDtmb3IodD0wO3Q8bDsrK3QpIm51bWJlciI9PXR5cGVvZihyPXlbdF0pLnNvdXJjZSYmKHIuc291cmNlPXZbci5zb3VyY2VdKSwibnVtYmVyIj09dHlwZW9mIHIudGFyZ2V0JiYoci50YXJnZXQ9dltyLnRhcmdldF0pLCsrci5zb3VyY2Uud2VpZ2h0LCsrci50YXJnZXQud2VpZ2h0O2Zvcih0PTA7dDxuOysrdClyPXZbdF0saXNOYU4oci54KSYmKHIueD1tKCJ4Iix1KSksaXNOYU4oci55KSYmKHIueT1tKCJ5IixkKSksaXNOYU4oci5weCkmJihyLnB4PXIueCksaXNOYU4oci5weSkmJihyLnB5PXIueSk7aWYoaT1bXSwiZnVuY3Rpb24iPT10eXBlb2YgZilmb3IodD0wO3Q8bDsrK3QpaVt0XT0rZi5jYWxsKHRoaXMseVt0XSx0KTtlbHNlIGZvcih0PTA7dDxsOysrdClpW3RdPWY7aWYoYT1bXSwiZnVuY3Rpb24iPT10eXBlb2YgaClmb3IodD0wO3Q8bDsrK3QpYVt0XT0raC5jYWxsKHRoaXMseVt0XSx0KTtlbHNlIGZvcih0PTA7dDxsOysrdClhW3RdPWg7aWYobz1bXSwiZnVuY3Rpb24iPT10eXBlb2YgcClmb3IodD0wO3Q8bjsrK3Qpb1t0XT0rcC5jYWxsKHRoaXMsdlt0XSx0KTtlbHNlIGZvcih0PTA7dDxuOysrdClvW3RdPXA7ZnVuY3Rpb24gbShyLGkpe2lmKCFlKXtmb3IoZT1uZXcgQXJyYXkobiksYz0wO2M8bjsrK2MpZVtjXT1bXTtmb3IoYz0wO2M8bDsrK2Mpe3ZhciBhPXlbY107ZVthLnNvdXJjZS5pbmRleF0ucHVzaChhLnRhcmdldCksZVthLnRhcmdldC5pbmRleF0ucHVzaChhLnNvdXJjZSl9fWZvcih2YXIgbyxzPWVbdF0sYz0tMSx1PXMubGVuZ3RoOysrYzx1OylpZighaXNOYU4obz1zW2NdW3JdKSlyZXR1cm4gbztyZXR1cm4gTWF0aC5yYW5kb20oKSppfXJldHVybiBzLnJlc3VtZSgpfSxzLnJlc3VtZT1mdW5jdGlvbigpe3JldHVybiBzLmFscGhhKC4xKX0scy5zdG9wPWZ1bmN0aW9uKCl7cmV0dXJuIHMuYWxwaGEoMCl9LHMuZHJhZz1mdW5jdGlvbigpe2lmKHJ8fChyPXQuYmVoYXZpb3IuZHJhZygpLm9yaWdpbihDKS5vbigiZHJhZ3N0YXJ0LmZvcmNlIixxcikub24oImRyYWcuZm9yY2UiLGIpLm9uKCJkcmFnZW5kLmZvcmNlIixHcikpLCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiByO3RoaXMub24oIm1vdXNlb3Zlci5mb3JjZSIsWXIpLm9uKCJtb3VzZW91dC5mb3JjZSIsV3IpLmNhbGwocil9LHQucmViaW5kKHMsbCwib24iKX07dmFyIFhyPTIwLFpyPTEsSnI9MS8wO2Z1bmN0aW9uIEtyKGUscil7cmV0dXJuIHQucmViaW5kKGUsciwic29ydCIsImNoaWxkcmVuIiwidmFsdWUiKSxlLm5vZGVzPWUsZS5saW5rcz1ubixlfWZ1bmN0aW9uIFFyKHQsZSl7Zm9yKHZhciByPVt0XTtudWxsIT0odD1yLnBvcCgpKTspaWYoZSh0KSwoaT10LmNoaWxkcmVuKSYmKG49aS5sZW5ndGgpKWZvcih2YXIgbixpOy0tbj49MDspci5wdXNoKGlbbl0pfWZ1bmN0aW9uICRyKHQsZSl7Zm9yKHZhciByPVt0XSxuPVtdO251bGwhPSh0PXIucG9wKCkpOylpZihuLnB1c2godCksKGE9dC5jaGlsZHJlbikmJihpPWEubGVuZ3RoKSlmb3IodmFyIGksYSxvPS0xOysrbzxpOylyLnB1c2goYVtvXSk7Zm9yKDtudWxsIT0odD1uLnBvcCgpKTspZSh0KX1mdW5jdGlvbiB0bih0KXtyZXR1cm4gdC5jaGlsZHJlbn1mdW5jdGlvbiBlbih0KXtyZXR1cm4gdC52YWx1ZX1mdW5jdGlvbiBybih0LGUpe3JldHVybiBlLnZhbHVlLXQudmFsdWV9ZnVuY3Rpb24gbm4oZSl7cmV0dXJuIHQubWVyZ2UoZS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybih0LmNoaWxkcmVufHxbXSkubWFwKChmdW5jdGlvbihlKXtyZXR1cm57c291cmNlOnQsdGFyZ2V0OmV9fSkpfSkpKX10LmxheW91dC5oaWVyYXJjaHk9ZnVuY3Rpb24oKXt2YXIgdD1ybixlPXRuLHI9ZW47ZnVuY3Rpb24gbihpKXt2YXIgYSxvPVtpXSxzPVtdO2ZvcihpLmRlcHRoPTA7bnVsbCE9KGE9by5wb3AoKSk7KWlmKHMucHVzaChhKSwoYz1lLmNhbGwobixhLGEuZGVwdGgpKSYmKGw9Yy5sZW5ndGgpKXtmb3IodmFyIGwsYyx1Oy0tbD49MDspby5wdXNoKHU9Y1tsXSksdS5wYXJlbnQ9YSx1LmRlcHRoPWEuZGVwdGgrMTtyJiYoYS52YWx1ZT0wKSxhLmNoaWxkcmVuPWN9ZWxzZSByJiYoYS52YWx1ZT0rci5jYWxsKG4sYSxhLmRlcHRoKXx8MCksZGVsZXRlIGEuY2hpbGRyZW47cmV0dXJuICRyKGksKGZ1bmN0aW9uKGUpe3ZhciBuLGk7dCYmKG49ZS5jaGlsZHJlbikmJm4uc29ydCh0KSxyJiYoaT1lLnBhcmVudCkmJihpLnZhbHVlKz1lLnZhbHVlKX0pKSxzfXJldHVybiBuLnNvcnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ZSxuKTp0fSxuLmNoaWxkcmVuPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXQsbik6ZX0sbi52YWx1ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10LG4pOnJ9LG4ucmV2YWx1ZT1mdW5jdGlvbih0KXtyZXR1cm4gciYmKFFyKHQsKGZ1bmN0aW9uKHQpe3QuY2hpbGRyZW4mJih0LnZhbHVlPTApfSkpLCRyKHQsKGZ1bmN0aW9uKHQpe3ZhciBlO3QuY2hpbGRyZW58fCh0LnZhbHVlPStyLmNhbGwobix0LHQuZGVwdGgpfHwwKSwoZT10LnBhcmVudCkmJihlLnZhbHVlKz10LnZhbHVlKX0pKSksdH0sbn0sdC5sYXlvdXQucGFydGl0aW9uPWZ1bmN0aW9uKCl7dmFyIGU9dC5sYXlvdXQuaGllcmFyY2h5KCkscj1bMSwxXTtmdW5jdGlvbiBuKHQsbil7dmFyIGk9ZS5jYWxsKHRoaXMsdCxuKTtyZXR1cm4gZnVuY3Rpb24gdChlLHIsbixpKXt2YXIgYT1lLmNoaWxkcmVuO2lmKGUueD1yLGUueT1lLmRlcHRoKmksZS5keD1uLGUuZHk9aSxhJiYobz1hLmxlbmd0aCkpe3ZhciBvLHMsbCxjPS0xO2ZvcihuPWUudmFsdWU/bi9lLnZhbHVlOjA7KytjPG87KXQocz1hW2NdLHIsbD1zLnZhbHVlKm4saSkscis9bH19KGlbMF0sMCxyWzBdLHJbMV0vZnVuY3Rpb24gdChlKXt2YXIgcj1lLmNoaWxkcmVuLG49MDtpZihyJiYoaT1yLmxlbmd0aCkpZm9yKHZhciBpLGE9LTE7KythPGk7KW49TWF0aC5tYXgobix0KHJbYV0pKTtyZXR1cm4gMStufShpWzBdKSksaX1yZXR1cm4gbi5zaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQsbik6cn0sS3IobixlKX0sdC5sYXlvdXQucGllPWZ1bmN0aW9uKCl7dmFyIGU9TnVtYmVyLHI9YW4sbj0wLGk9TXQsYT0wO2Z1bmN0aW9uIG8ocyl7dmFyIGwsYz1zLmxlbmd0aCx1PXMubWFwKChmdW5jdGlvbih0LHIpe3JldHVybitlLmNhbGwobyx0LHIpfSkpLGY9KygiZnVuY3Rpb24iPT10eXBlb2Ygbj9uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTpuKSxoPSgiZnVuY3Rpb24iPT10eXBlb2YgaT9pLmFwcGx5KHRoaXMsYXJndW1lbnRzKTppKS1mLHA9TWF0aC5taW4oTWF0aC5hYnMoaCkvYywrKCJmdW5jdGlvbiI9PXR5cGVvZiBhP2EuYXBwbHkodGhpcyxhcmd1bWVudHMpOmEpKSxkPXAqKGg8MD8tMToxKSxtPXQuc3VtKHUpLGc9bT8oaC1jKmQpL206MCx2PXQucmFuZ2UoYykseT1bXTtyZXR1cm4gbnVsbCE9ciYmdi5zb3J0KHI9PT1hbj9mdW5jdGlvbih0LGUpe3JldHVybiB1W2VdLXVbdF19OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHIoc1t0XSxzW2VdKX0pLHYuZm9yRWFjaCgoZnVuY3Rpb24odCl7eVt0XT17ZGF0YTpzW3RdLHZhbHVlOmw9dVt0XSxzdGFydEFuZ2xlOmYsZW5kQW5nbGU6Zis9bCpnK2QscGFkQW5nbGU6cH19KSkseX1yZXR1cm4gby52YWx1ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10LG8pOmV9LG8uc29ydD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10LG8pOnJ9LG8uc3RhcnRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10LG8pOm59LG8uZW5kQW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9dCxvKTppfSxvLnBhZEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPXQsbyk6YX0sb307dmFyIGFuPXt9O2Z1bmN0aW9uIG9uKHQpe3JldHVybiB0Lnh9ZnVuY3Rpb24gc24odCl7cmV0dXJuIHQueX1mdW5jdGlvbiBsbih0LGUscil7dC55MD1lLHQueT1yfXQubGF5b3V0LnN0YWNrPWZ1bmN0aW9uKCl7dmFyIGU9QyxyPWZuLG49aG4saT1sbixhPW9uLG89c247ZnVuY3Rpb24gcyhsLGMpe2lmKCEocD1sLmxlbmd0aCkpcmV0dXJuIGw7dmFyIHU9bC5tYXAoKGZ1bmN0aW9uKHQscil7cmV0dXJuIGUuY2FsbChzLHQscil9KSksZj11Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQubWFwKChmdW5jdGlvbih0LGUpe3JldHVyblthLmNhbGwocyx0LGUpLG8uY2FsbChzLHQsZSldfSkpfSkpLGg9ci5jYWxsKHMsZixjKTt1PXQucGVybXV0ZSh1LGgpLGY9dC5wZXJtdXRlKGYsaCk7dmFyIHAsZCxtLGcsdj1uLmNhbGwocyxmLGMpLHk9dVswXS5sZW5ndGg7Zm9yKG09MDttPHk7KyttKWZvcihpLmNhbGwocyx1WzBdW21dLGc9dlttXSxmWzBdW21dWzFdKSxkPTE7ZDxwOysrZClpLmNhbGwocyx1W2RdW21dLGcrPWZbZC0xXVttXVsxXSxmW2RdW21dWzFdKTtyZXR1cm4gbH1yZXR1cm4gcy52YWx1ZXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCxzKTplfSxzLm9yZGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6Y24uZ2V0KHQpfHxmbixzKTpyfSxzLm9mZnNldD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OnVuLmdldCh0KXx8aG4scyk6bn0scy54PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPXQscyk6YX0scy55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPXQscyk6b30scy5vdXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9dCxzKTppfSxzfTt2YXIgY249dC5tYXAoeyJpbnNpZGUtb3V0IjpmdW5jdGlvbihlKXt2YXIgcixuLGk9ZS5sZW5ndGgsYT1lLm1hcChwbiksbz1lLm1hcChkbikscz10LnJhbmdlKGkpLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGFbdF0tYVtlXX0pKSxsPTAsYz0wLHU9W10sZj1bXTtmb3Iocj0wO3I8aTsrK3Ipbj1zW3JdLGw8Yz8obCs9b1tuXSx1LnB1c2gobikpOihjKz1vW25dLGYucHVzaChuKSk7cmV0dXJuIGYucmV2ZXJzZSgpLmNvbmNhdCh1KX0scmV2ZXJzZTpmdW5jdGlvbihlKXtyZXR1cm4gdC5yYW5nZShlLmxlbmd0aCkucmV2ZXJzZSgpfSxkZWZhdWx0OmZufSksdW49dC5tYXAoe3NpbGhvdWV0dGU6ZnVuY3Rpb24odCl7dmFyIGUscixuLGk9dC5sZW5ndGgsYT10WzBdLmxlbmd0aCxvPVtdLHM9MCxsPVtdO2ZvcihyPTA7cjxhOysrcil7Zm9yKGU9MCxuPTA7ZTxpO2UrKyluKz10W2VdW3JdWzFdO24+cyYmKHM9biksby5wdXNoKG4pfWZvcihyPTA7cjxhOysrcilsW3JdPShzLW9bcl0pLzI7cmV0dXJuIGx9LHdpZ2dsZTpmdW5jdGlvbih0KXt2YXIgZSxyLG4saSxhLG8scyxsLGMsdT10Lmxlbmd0aCxmPXRbMF0saD1mLmxlbmd0aCxwPVtdO2ZvcihwWzBdPWw9Yz0wLHI9MTtyPGg7KytyKXtmb3IoZT0wLGk9MDtlPHU7KytlKWkrPXRbZV1bcl1bMV07Zm9yKGU9MCxhPTAscz1mW3JdWzBdLWZbci0xXVswXTtlPHU7KytlKXtmb3Iobj0wLG89KHRbZV1bcl1bMV0tdFtlXVtyLTFdWzFdKS8oMipzKTtuPGU7KytuKW8rPSh0W25dW3JdWzFdLXRbbl1bci0xXVsxXSkvczthKz1vKnRbZV1bcl1bMV19cFtyXT1sLT1pP2EvaSpzOjAsbDxjJiYoYz1sKX1mb3Iocj0wO3I8aDsrK3IpcFtyXS09YztyZXR1cm4gcH0sZXhwYW5kOmZ1bmN0aW9uKHQpe3ZhciBlLHIsbixpPXQubGVuZ3RoLGE9dFswXS5sZW5ndGgsbz0xL2kscz1bXTtmb3Iocj0wO3I8YTsrK3Ipe2ZvcihlPTAsbj0wO2U8aTtlKyspbis9dFtlXVtyXVsxXTtpZihuKWZvcihlPTA7ZTxpO2UrKyl0W2VdW3JdWzFdLz1uO2Vsc2UgZm9yKGU9MDtlPGk7ZSsrKXRbZV1bcl1bMV09b31mb3Iocj0wO3I8YTsrK3Ipc1tyXT0wO3JldHVybiBzfSx6ZXJvOmhufSk7ZnVuY3Rpb24gZm4oZSl7cmV0dXJuIHQucmFuZ2UoZS5sZW5ndGgpfWZ1bmN0aW9uIGhuKHQpe2Zvcih2YXIgZT0tMSxyPXRbMF0ubGVuZ3RoLG49W107KytlPHI7KW5bZV09MDtyZXR1cm4gbn1mdW5jdGlvbiBwbih0KXtmb3IodmFyIGUscj0xLG49MCxpPXRbMF1bMV0sYT10Lmxlbmd0aDtyPGE7KytyKShlPXRbcl1bMV0pPmkmJihuPXIsaT1lKTtyZXR1cm4gbn1mdW5jdGlvbiBkbih0KXtyZXR1cm4gdC5yZWR1Y2UobW4sMCl9ZnVuY3Rpb24gbW4odCxlKXtyZXR1cm4gdCtlWzFdfWZ1bmN0aW9uIGduKHQsZSl7cmV0dXJuIHZuKHQsTWF0aC5jZWlsKE1hdGgubG9nKGUubGVuZ3RoKS9NYXRoLkxOMisxKSl9ZnVuY3Rpb24gdm4odCxlKXtmb3IodmFyIHI9LTEsbj0rdFswXSxpPSh0WzFdLW4pL2UsYT1bXTsrK3I8PWU7KWFbcl09aSpyK247cmV0dXJuIGF9ZnVuY3Rpb24geW4oZSl7cmV0dXJuW3QubWluKGUpLHQubWF4KGUpXX1mdW5jdGlvbiB4bih0LGUpe3JldHVybiB0LnZhbHVlLWUudmFsdWV9ZnVuY3Rpb24gYm4odCxlKXt2YXIgcj10Ll9wYWNrX25leHQ7dC5fcGFja19uZXh0PWUsZS5fcGFja19wcmV2PXQsZS5fcGFja19uZXh0PXIsci5fcGFja19wcmV2PWV9ZnVuY3Rpb24gX24odCxlKXt0Ll9wYWNrX25leHQ9ZSxlLl9wYWNrX3ByZXY9dH1mdW5jdGlvbiB3bih0LGUpe3ZhciByPWUueC10Lngsbj1lLnktdC55LGk9dC5yK2UucjtyZXR1cm4uOTk5KmkqaT5yKnIrbipufWZ1bmN0aW9uIFRuKHQpe2lmKChlPXQuY2hpbGRyZW4pJiYobD1lLmxlbmd0aCkpe3ZhciBlLHIsbixpLGEsbyxzLGwsYz0xLzAsdT0tMS8wLGY9MS8wLGg9LTEvMDtpZihlLmZvckVhY2goa24pLChyPWVbMF0pLng9LXIucixyLnk9MCx4KHIpLGw+MSYmKChuPWVbMV0pLng9bi5yLG4ueT0wLHgobiksbD4yKSlmb3IoTW4ocixuLGk9ZVsyXSkseChpKSxibihyLGkpLHIuX3BhY2tfcHJldj1pLGJuKGksbiksbj1yLl9wYWNrX25leHQsYT0zO2E8bDthKyspe01uKHIsbixpPWVbYV0pO3ZhciBwPTAsZD0xLG09MTtmb3Iobz1uLl9wYWNrX25leHQ7byE9PW47bz1vLl9wYWNrX25leHQsZCsrKWlmKHduKG8saSkpe3A9MTticmVha31pZigxPT1wKWZvcihzPXIuX3BhY2tfcHJldjtzIT09by5fcGFja19wcmV2JiYhd24ocyxpKTtzPXMuX3BhY2tfcHJldixtKyspO3A/KGQ8bXx8ZD09bSYmbi5yPHIucj9fbihyLG49byk6X24ocj1zLG4pLGEtLSk6KGJuKHIsaSksbj1pLHgoaSkpfXZhciBnPShjK3UpLzIsdj0oZitoKS8yLHk9MDtmb3IoYT0wO2E8bDthKyspKGk9ZVthXSkueC09ZyxpLnktPXYseT1NYXRoLm1heCh5LGkucitNYXRoLnNxcnQoaS54KmkueCtpLnkqaS55KSk7dC5yPXksZS5mb3JFYWNoKEFuKX1mdW5jdGlvbiB4KHQpe2M9TWF0aC5taW4odC54LXQucixjKSx1PU1hdGgubWF4KHQueCt0LnIsdSksZj1NYXRoLm1pbih0LnktdC5yLGYpLGg9TWF0aC5tYXgodC55K3QucixoKX19ZnVuY3Rpb24ga24odCl7dC5fcGFja19uZXh0PXQuX3BhY2tfcHJldj10fWZ1bmN0aW9uIEFuKHQpe2RlbGV0ZSB0Ll9wYWNrX25leHQsZGVsZXRlIHQuX3BhY2tfcHJldn1mdW5jdGlvbiBNbih0LGUscil7dmFyIG49dC5yK3IucixpPWUueC10LngsYT1lLnktdC55O2lmKG4mJihpfHxhKSl7dmFyIG89ZS5yK3IucixzPWkqaSthKmEsbD0uNSsoKG4qPW4pLShvKj1vKSkvKDIqcyksYz1NYXRoLnNxcnQoTWF0aC5tYXgoMCwyKm8qKG4rcyktKG4tPXMpKm4tbypvKSkvKDIqcyk7ci54PXQueCtsKmkrYyphLHIueT10LnkrbCphLWMqaX1lbHNlIHIueD10LngrbixyLnk9dC55fWZ1bmN0aW9uIFNuKHQsZSl7cmV0dXJuIHQucGFyZW50PT1lLnBhcmVudD8xOjJ9ZnVuY3Rpb24gRW4odCl7dmFyIGU9dC5jaGlsZHJlbjtyZXR1cm4gZS5sZW5ndGg/ZVswXTp0LnR9ZnVuY3Rpb24gTG4odCl7dmFyIGUscj10LmNoaWxkcmVuO3JldHVybihlPXIubGVuZ3RoKT9yW2UtMV06dC50fWZ1bmN0aW9uIENuKHQsZSxyKXt2YXIgbj1yLyhlLmktdC5pKTtlLmMtPW4sZS5zKz1yLHQuYys9bixlLnorPXIsZS5tKz1yfWZ1bmN0aW9uIFBuKHQsZSxyKXtyZXR1cm4gdC5hLnBhcmVudD09PWUucGFyZW50P3QuYTpyfWZ1bmN0aW9uIEluKHQpe3JldHVybnt4OnQueCx5OnQueSxkeDp0LmR4LGR5OnQuZHl9fWZ1bmN0aW9uIE9uKHQsZSl7dmFyIHI9dC54K2VbM10sbj10LnkrZVswXSxpPXQuZHgtZVsxXS1lWzNdLGE9dC5keS1lWzBdLWVbMl07cmV0dXJuIGk8MCYmKHIrPWkvMixpPTApLGE8MCYmKG4rPWEvMixhPTApLHt4OnIseTpuLGR4OmksZHk6YX19ZnVuY3Rpb24gem4odCl7dmFyIGU9dFswXSxyPXRbdC5sZW5ndGgtMV07cmV0dXJuIGU8cj9bZSxyXTpbcixlXX1mdW5jdGlvbiBEbih0KXtyZXR1cm4gdC5yYW5nZUV4dGVudD90LnJhbmdlRXh0ZW50KCk6em4odC5yYW5nZSgpKX1mdW5jdGlvbiBSbih0LGUscixuKXt2YXIgaT1yKHRbMF0sdFsxXSksYT1uKGVbMF0sZVsxXSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBhKGkodCkpfX1mdW5jdGlvbiBGbih0LGUpe3ZhciByLG49MCxpPXQubGVuZ3RoLTEsYT10W25dLG89dFtpXTtyZXR1cm4gbzxhJiYocj1uLG49aSxpPXIscj1hLGE9byxvPXIpLHRbbl09ZS5mbG9vcihhKSx0W2ldPWUuY2VpbChvKSx0fWZ1bmN0aW9uIEJuKHQpe3JldHVybiB0P3tmbG9vcjpmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5mbG9vcihlL3QpKnR9LGNlaWw6ZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGguY2VpbChlL3QpKnR9fTpObn10LmxheW91dC5oaXN0b2dyYW09ZnVuY3Rpb24oKXt2YXIgZT0hMCxyPU51bWJlcixuPXluLGk9Z247ZnVuY3Rpb24gYShhLG8pe2Zvcih2YXIgcyxsLGM9W10sdT1hLm1hcChyLHRoaXMpLGY9bi5jYWxsKHRoaXMsdSxvKSxoPWkuY2FsbCh0aGlzLGYsdSxvKSxwPShvPS0xLHUubGVuZ3RoKSxkPWgubGVuZ3RoLTEsbT1lPzE6MS9wOysrbzxkOykocz1jW29dPVtdKS5keD1oW28rMV0tKHMueD1oW29dKSxzLnk9MDtpZihkPjApZm9yKG89LTE7KytvPHA7KShsPXVbb10pPj1mWzBdJiZsPD1mWzFdJiYoKHM9Y1t0LmJpc2VjdChoLGwsMSxkKS0xXSkueSs9bSxzLnB1c2goYVtvXSkpO3JldHVybiBjfXJldHVybiBhLnZhbHVlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQsYSk6cn0sYS5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1jZSh0KSxhKTpufSxhLmJpbnM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9Im51bWJlciI9PXR5cGVvZiB0P2Z1bmN0aW9uKGUpe3JldHVybiB2bihlLHQpfTpjZSh0KSxhKTppfSxhLmZyZXF1ZW5jeT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0hIXQsYSk6ZX0sYX0sdC5sYXlvdXQucGFjaz1mdW5jdGlvbigpe3ZhciBlLHI9dC5sYXlvdXQuaGllcmFyY2h5KCkuc29ydCh4biksbj0wLGk9WzEsMV07ZnVuY3Rpb24gYSh0LGEpe3ZhciBvPXIuY2FsbCh0aGlzLHQsYSkscz1vWzBdLGw9aVswXSxjPWlbMV0sdT1udWxsPT1lP01hdGguc3FydDoiZnVuY3Rpb24iPT10eXBlb2YgZT9lOmZ1bmN0aW9uKCl7cmV0dXJuIGV9O2lmKHMueD1zLnk9MCwkcihzLChmdW5jdGlvbih0KXt0LnI9K3UodC52YWx1ZSl9KSksJHIocyxUbiksbil7dmFyIGY9biooZT8xOk1hdGgubWF4KDIqcy5yL2wsMipzLnIvYykpLzI7JHIocywoZnVuY3Rpb24odCl7dC5yKz1mfSkpLCRyKHMsVG4pLCRyKHMsKGZ1bmN0aW9uKHQpe3Quci09Zn0pKX1yZXR1cm4gZnVuY3Rpb24gdChlLHIsbixpKXt2YXIgYT1lLmNoaWxkcmVuO2lmKGUueD1yKz1pKmUueCxlLnk9bis9aSplLnksZS5yKj1pLGEpZm9yKHZhciBvPS0xLHM9YS5sZW5ndGg7KytvPHM7KXQoYVtvXSxyLG4saSl9KHMsbC8yLGMvMixlPzE6MS9NYXRoLm1heCgyKnMuci9sLDIqcy5yL2MpKSxvfXJldHVybiBhLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9dCxhKTppfSxhLnJhZGl1cz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1udWxsPT10fHwiZnVuY3Rpb24iPT10eXBlb2YgdD90Oit0LGEpOmV9LGEucGFkZGluZz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0rdCxhKTpufSxLcihhLHIpfSx0LmxheW91dC50cmVlPWZ1bmN0aW9uKCl7dmFyIGU9dC5sYXlvdXQuaGllcmFyY2h5KCkuc29ydChudWxsKS52YWx1ZShudWxsKSxyPVNuLG49WzEsMV0saT1udWxsO2Z1bmN0aW9uIGEodCxhKXt2YXIgYz1lLmNhbGwodGhpcyx0LGEpLHU9Y1swXSxmPWZ1bmN0aW9uKHQpe3ZhciBlLHI9e0E6bnVsbCxjaGlsZHJlbjpbdF19LG49W3JdO2Zvcig7bnVsbCE9KGU9bi5wb3AoKSk7KWZvcih2YXIgaSxhPWUuY2hpbGRyZW4sbz0wLHM9YS5sZW5ndGg7bzxzOysrbyluLnB1c2goKGFbb109aT17XzphW29dLHBhcmVudDplLGNoaWxkcmVuOihpPWFbb10uY2hpbGRyZW4pJiZpLnNsaWNlKCl8fFtdLEE6bnVsbCxhOm51bGwsejowLG06MCxjOjAsczowLHQ6bnVsbCxpOm99KS5hPWkpO3JldHVybiByLmNoaWxkcmVuWzBdfSh1KTtpZigkcihmLG8pLGYucGFyZW50Lm09LWYueixRcihmLHMpLGkpUXIodSxsKTtlbHNle3ZhciBoPXUscD11LGQ9dTtRcih1LChmdW5jdGlvbih0KXt0Lng8aC54JiYoaD10KSx0Lng+cC54JiYocD10KSx0LmRlcHRoPmQuZGVwdGgmJihkPXQpfSkpO3ZhciBtPXIoaCxwKS8yLWgueCxnPW5bMF0vKHAueCtyKHAsaCkvMittKSx2PW5bMV0vKGQuZGVwdGh8fDEpO1FyKHUsKGZ1bmN0aW9uKHQpe3QueD0odC54K20pKmcsdC55PXQuZGVwdGgqdn0pKX1yZXR1cm4gY31mdW5jdGlvbiBvKHQpe3ZhciBlPXQuY2hpbGRyZW4sbj10LnBhcmVudC5jaGlsZHJlbixpPXQuaT9uW3QuaS0xXTpudWxsO2lmKGUubGVuZ3RoKXshZnVuY3Rpb24odCl7dmFyIGUscj0wLG49MCxpPXQuY2hpbGRyZW4sYT1pLmxlbmd0aDtmb3IoOy0tYT49MDspKGU9aVthXSkueis9cixlLm0rPXIscis9ZS5zKyhuKz1lLmMpfSh0KTt2YXIgYT0oZVswXS56K2VbZS5sZW5ndGgtMV0ueikvMjtpPyh0Lno9aS56K3IodC5fLGkuXyksdC5tPXQuei1hKTp0Lno9YX1lbHNlIGkmJih0Lno9aS56K3IodC5fLGkuXykpO3QucGFyZW50LkE9ZnVuY3Rpb24odCxlLG4pe2lmKGUpe2Zvcih2YXIgaSxhPXQsbz10LHM9ZSxsPWEucGFyZW50LmNoaWxkcmVuWzBdLGM9YS5tLHU9by5tLGY9cy5tLGg9bC5tO3M9TG4ocyksYT1FbihhKSxzJiZhOylsPUVuKGwpLChvPUxuKG8pKS5hPXQsKGk9cy56K2YtYS56LWMrcihzLl8sYS5fKSk+MCYmKENuKFBuKHMsdCxuKSx0LGkpLGMrPWksdSs9aSksZis9cy5tLGMrPWEubSxoKz1sLm0sdSs9by5tO3MmJiFMbihvKSYmKG8udD1zLG8ubSs9Zi11KSxhJiYhRW4obCkmJihsLnQ9YSxsLm0rPWMtaCxuPXQpfXJldHVybiBufSh0LGksdC5wYXJlbnQuQXx8blswXSl9ZnVuY3Rpb24gcyh0KXt0Ll8ueD10LnordC5wYXJlbnQubSx0Lm0rPXQucGFyZW50Lm19ZnVuY3Rpb24gbCh0KXt0LngqPW5bMF0sdC55PXQuZGVwdGgqblsxXX1yZXR1cm4gYS5zZXBhcmF0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQsYSk6cn0sYS5zaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPW51bGw9PShuPXQpP2w6bnVsbCxhKTppP251bGw6bn0sYS5ub2RlU2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1udWxsPT0obj10KT9udWxsOmwsYSk6aT9uOm51bGx9LEtyKGEsZSl9LHQubGF5b3V0LmNsdXN0ZXI9ZnVuY3Rpb24oKXt2YXIgZT10LmxheW91dC5oaWVyYXJjaHkoKS5zb3J0KG51bGwpLnZhbHVlKG51bGwpLHI9U24sbj1bMSwxXSxpPSExO2Z1bmN0aW9uIGEoYSxvKXt2YXIgcyxsPWUuY2FsbCh0aGlzLGEsbyksYz1sWzBdLHU9MDskcihjLChmdW5jdGlvbihlKXt2YXIgbj1lLmNoaWxkcmVuO24mJm4ubGVuZ3RoPyhlLng9ZnVuY3Rpb24odCl7cmV0dXJuIHQucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0K2UueH0pLDApL3QubGVuZ3RofShuKSxlLnk9ZnVuY3Rpb24oZSl7cmV0dXJuIDErdC5tYXgoZSwoZnVuY3Rpb24odCl7cmV0dXJuIHQueX0pKX0obikpOihlLng9cz91Kz1yKGUscyk6MCxlLnk9MCxzPWUpfSkpO3ZhciBmPWZ1bmN0aW9uIHQoZSl7dmFyIHI9ZS5jaGlsZHJlbjtyZXR1cm4gciYmci5sZW5ndGg/dChyWzBdKTplfShjKSxoPWZ1bmN0aW9uIHQoZSl7dmFyIHIsbj1lLmNoaWxkcmVuO3JldHVybiBuJiYocj1uLmxlbmd0aCk/dChuW3ItMV0pOmV9KGMpLHA9Zi54LXIoZixoKS8yLGQ9aC54K3IoaCxmKS8yO3JldHVybiAkcihjLGk/ZnVuY3Rpb24odCl7dC54PSh0LngtYy54KSpuWzBdLHQueT0oYy55LXQueSkqblsxXX06ZnVuY3Rpb24odCl7dC54PSh0LngtcCkvKGQtcCkqblswXSx0Lnk9KDEtKGMueT90LnkvYy55OjEpKSpuWzFdfSksbH1yZXR1cm4gYS5zZXBhcmF0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQsYSk6cn0sYS5zaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPW51bGw9PShuPXQpLGEpOmk/bnVsbDpufSxhLm5vZGVTaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPW51bGwhPShuPXQpLGEpOmk/bjpudWxsfSxLcihhLGUpfSx0LmxheW91dC50cmVlbWFwPWZ1bmN0aW9uKCl7dmFyIGUscj10LmxheW91dC5oaWVyYXJjaHkoKSxuPU1hdGgucm91bmQsaT1bMSwxXSxhPW51bGwsbz1JbixzPSExLGw9InNxdWFyaWZ5IixjPS41KigxK01hdGguc3FydCg1KSk7ZnVuY3Rpb24gdSh0LGUpe2Zvcih2YXIgcixuLGk9LTEsYT10Lmxlbmd0aDsrK2k8YTspbj0ocj10W2ldKS52YWx1ZSooZTwwPzA6ZSksci5hcmVhPWlzTmFOKG4pfHxuPD0wPzA6bn1mdW5jdGlvbiBmKHQpe3ZhciBlPXQuY2hpbGRyZW47aWYoZSYmZS5sZW5ndGgpe3ZhciByLG4saSxhPW8odCkscz1bXSxjPWUuc2xpY2UoKSxoPTEvMCxtPSJzbGljZSI9PT1sP2EuZHg6ImRpY2UiPT09bD9hLmR5OiJzbGljZS1kaWNlIj09PWw/MSZ0LmRlcHRoP2EuZHk6YS5keDpNYXRoLm1pbihhLmR4LGEuZHkpO2Zvcih1KGMsYS5keCphLmR5L3QudmFsdWUpLHMuYXJlYT0wOyhpPWMubGVuZ3RoKT4wOylzLnB1c2gocj1jW2ktMV0pLHMuYXJlYSs9ci5hcmVhLCJzcXVhcmlmeSIhPT1sfHwobj1wKHMsbSkpPD1oPyhjLnBvcCgpLGg9bik6KHMuYXJlYS09cy5wb3AoKS5hcmVhLGQocyxtLGEsITEpLG09TWF0aC5taW4oYS5keCxhLmR5KSxzLmxlbmd0aD1zLmFyZWE9MCxoPTEvMCk7cy5sZW5ndGgmJihkKHMsbSxhLCEwKSxzLmxlbmd0aD1zLmFyZWE9MCksZS5mb3JFYWNoKGYpfX1mdW5jdGlvbiBoKHQpe3ZhciBlPXQuY2hpbGRyZW47aWYoZSYmZS5sZW5ndGgpe3ZhciByLG49byh0KSxpPWUuc2xpY2UoKSxhPVtdO2Zvcih1KGksbi5keCpuLmR5L3QudmFsdWUpLGEuYXJlYT0wO3I9aS5wb3AoKTspYS5wdXNoKHIpLGEuYXJlYSs9ci5hcmVhLG51bGwhPXIueiYmKGQoYSxyLno/bi5keDpuLmR5LG4sIWkubGVuZ3RoKSxhLmxlbmd0aD1hLmFyZWE9MCk7ZS5mb3JFYWNoKGgpfX1mdW5jdGlvbiBwKHQsZSl7Zm9yKHZhciByLG49dC5hcmVhLGk9MCxhPTEvMCxvPS0xLHM9dC5sZW5ndGg7KytvPHM7KShyPXRbb10uYXJlYSkmJihyPGEmJihhPXIpLHI+aSYmKGk9cikpO3JldHVybiBlKj1lLChuKj1uKT9NYXRoLm1heChlKmkqYy9uLG4vKGUqYSpjKSk6MS8wfWZ1bmN0aW9uIGQodCxlLHIsaSl7dmFyIGEsbz0tMSxzPXQubGVuZ3RoLGw9ci54LGM9ci55LHU9ZT9uKHQuYXJlYS9lKTowO2lmKGU9PXIuZHgpe2ZvcigoaXx8dT5yLmR5KSYmKHU9ci5keSk7KytvPHM7KShhPXRbb10pLng9bCxhLnk9YyxhLmR5PXUsbCs9YS5keD1NYXRoLm1pbihyLngrci5keC1sLHU/bihhLmFyZWEvdSk6MCk7YS56PSEwLGEuZHgrPXIueCtyLmR4LWwsci55Kz11LHIuZHktPXV9ZWxzZXtmb3IoKGl8fHU+ci5keCkmJih1PXIuZHgpOysrbzxzOykoYT10W29dKS54PWwsYS55PWMsYS5keD11LGMrPWEuZHk9TWF0aC5taW4oci55K3IuZHktYyx1P24oYS5hcmVhL3UpOjApO2Euej0hMSxhLmR5Kz1yLnkrci5keS1jLHIueCs9dSxyLmR4LT11fX1mdW5jdGlvbiBtKHQpe3ZhciBuPWV8fHIodCksYT1uWzBdO3JldHVybiBhLng9YS55PTAsYS52YWx1ZT8oYS5keD1pWzBdLGEuZHk9aVsxXSk6YS5keD1hLmR5PTAsZSYmci5yZXZhbHVlKGEpLHUoW2FdLGEuZHgqYS5keS9hLnZhbHVlKSwoZT9oOmYpKGEpLHMmJihlPW4pLG59cmV0dXJuIG0uc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT10LG0pOml9LG0ucGFkZGluZz1mdW5jdGlvbih0KXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gYTtmdW5jdGlvbiBlKGUpe3ZhciByPXQuY2FsbChtLGUsZS5kZXB0aCk7cmV0dXJuIG51bGw9PXI/SW4oZSk6T24oZSwibnVtYmVyIj09dHlwZW9mIHI/W3IscixyLHJdOnIpfWZ1bmN0aW9uIHIoZSl7cmV0dXJuIE9uKGUsdCl9dmFyIG47cmV0dXJuIG89bnVsbD09KGE9dCk/SW46ImZ1bmN0aW9uIj09KG49dHlwZW9mIHQpP2U6Im51bWJlciI9PT1uPyh0PVt0LHQsdCx0XSxyKTpyLG19LG0ucm91bmQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dD9NYXRoLnJvdW5kOk51bWJlcixtKTpuIT1OdW1iZXJ9LG0uc3RpY2t5PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPXQsZT1udWxsLG0pOnN9LG0ucmF0aW89ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9dCxtKTpjfSxtLm1vZGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGw9dCsiIixtKTpsfSxLcihtLHIpfSx0LnJhbmRvbT17bm9ybWFsOmZ1bmN0aW9uKHQsZSl7dmFyIHI9YXJndW1lbnRzLmxlbmd0aDtyZXR1cm4gcjwyJiYoZT0xKSxyPDEmJih0PTApLGZ1bmN0aW9uKCl7dmFyIHIsbixpO2Rve2k9KHI9MipNYXRoLnJhbmRvbSgpLTEpKnIrKG49MipNYXRoLnJhbmRvbSgpLTEpKm59d2hpbGUoIWl8fGk+MSk7cmV0dXJuIHQrZSpyKk1hdGguc3FydCgtMipNYXRoLmxvZyhpKS9pKX19LGxvZ05vcm1hbDpmdW5jdGlvbigpe3ZhciBlPXQucmFuZG9tLm5vcm1hbC5hcHBseSh0LGFyZ3VtZW50cyk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguZXhwKGUoKSl9fSxiYXRlczpmdW5jdGlvbihlKXt2YXIgcj10LnJhbmRvbS5pcndpbkhhbGwoZSk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHIoKS9lfX0saXJ3aW5IYWxsOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgZT0wLHI9MDtyPHQ7cisrKWUrPU1hdGgucmFuZG9tKCk7cmV0dXJuIGV9fX0sdC5zY2FsZT17fTt2YXIgTm49e2Zsb29yOkMsY2VpbDpDfTtmdW5jdGlvbiBqbihlLHIsbixpKXt2YXIgYT1bXSxvPVtdLHM9MCxsPU1hdGgubWluKGUubGVuZ3RoLHIubGVuZ3RoKS0xO2ZvcihlW2xdPGVbMF0mJihlPWUuc2xpY2UoKS5yZXZlcnNlKCkscj1yLnNsaWNlKCkucmV2ZXJzZSgpKTsrK3M8PWw7KWEucHVzaChuKGVbcy0xXSxlW3NdKSksby5wdXNoKGkocltzLTFdLHJbc10pKTtyZXR1cm4gZnVuY3Rpb24ocil7dmFyIG49dC5iaXNlY3QoZSxyLDEsbCktMTtyZXR1cm4gb1tuXShhW25dKHIpKX19ZnVuY3Rpb24gVW4oZSxyKXtyZXR1cm4gdC5yZWJpbmQoZSxyLCJyYW5nZSIsInJhbmdlUm91bmQiLCJpbnRlcnBvbGF0ZSIsImNsYW1wIil9ZnVuY3Rpb24gVm4odCxlKXtyZXR1cm4gRm4odCxCbihIbih0LGUpWzJdKSksRm4odCxCbihIbih0LGUpWzJdKSksdH1mdW5jdGlvbiBIbih0LGUpe251bGw9PWUmJihlPTEwKTt2YXIgcj16bih0KSxuPXJbMV0tclswXSxpPU1hdGgucG93KDEwLE1hdGguZmxvb3IoTWF0aC5sb2cobi9lKS9NYXRoLkxOMTApKSxhPWUvbippO3JldHVybiBhPD0uMTU/aSo9MTA6YTw9LjM1P2kqPTU6YTw9Ljc1JiYoaSo9MiksclswXT1NYXRoLmNlaWwoclswXS9pKSppLHJbMV09TWF0aC5mbG9vcihyWzFdL2kpKmkrLjUqaSxyWzJdPWkscn1mdW5jdGlvbiBxbihlLHIpe3JldHVybiB0LnJhbmdlLmFwcGx5KHQsSG4oZSxyKSl9dC5zY2FsZS5saW5lYXI9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gdChlLHIsbixpKXt2YXIgYSxvO2Z1bmN0aW9uIHMoKXt2YXIgdD1NYXRoLm1pbihlLmxlbmd0aCxyLmxlbmd0aCk+Mj9qbjpSbixzPWk/VXI6anI7cmV0dXJuIGE9dChlLHIscyxuKSxvPXQocixlLHMseXIpLGx9ZnVuY3Rpb24gbCh0KXtyZXR1cm4gYSh0KX1yZXR1cm4gbC5pbnZlcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIG8odCl9LGwuZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXQubWFwKE51bWJlcikscygpKTplfSxsLnJhbmdlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQscygpKTpyfSxsLnJhbmdlUm91bmQ9ZnVuY3Rpb24odCl7cmV0dXJuIGwucmFuZ2UodCkuaW50ZXJwb2xhdGUoT3IpfSxsLmNsYW1wPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPXQscygpKTppfSxsLmludGVycG9sYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPXQscygpKTpufSxsLnRpY2tzPWZ1bmN0aW9uKHQpe3JldHVybiBxbihlLHQpfSxsLnRpY2tGb3JtYXQ9ZnVuY3Rpb24odCxyKXtyZXR1cm4gZDNfc2NhbGVfbGluZWFyVGlja0Zvcm1hdChlLHQscil9LGwubmljZT1mdW5jdGlvbih0KXtyZXR1cm4gVm4oZSx0KSxzKCl9LGwuY29weT1mdW5jdGlvbigpe3JldHVybiB0KGUscixuLGkpfSxzKCl9KFswLDFdLFswLDFdLHlyLCExKX07dC5zY2FsZS5sb2c9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gdChlLHIsbixpKXtmdW5jdGlvbiBhKHQpe3JldHVybihuP01hdGgubG9nKHQ8MD8wOnQpOi1NYXRoLmxvZyh0PjA/MDotdCkpL01hdGgubG9nKHIpfWZ1bmN0aW9uIG8odCl7cmV0dXJuIG4/TWF0aC5wb3cocix0KTotTWF0aC5wb3cociwtdCl9ZnVuY3Rpb24gcyh0KXtyZXR1cm4gZShhKHQpKX1yZXR1cm4gcy5pbnZlcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIG8oZS5pbnZlcnQodCkpfSxzLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10WzBdPj0wLGUuZG9tYWluKChpPXQubWFwKE51bWJlcikpLm1hcChhKSkscyk6aX0scy5iYXNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSt0LGUuZG9tYWluKGkubWFwKGEpKSxzKTpyfSxzLm5pY2U9ZnVuY3Rpb24oKXt2YXIgdD1GbihpLm1hcChhKSxuP01hdGg6R24pO3JldHVybiBlLmRvbWFpbih0KSxpPXQubWFwKG8pLHN9LHMudGlja3M9ZnVuY3Rpb24oKXt2YXIgdD16bihpKSxlPVtdLHM9dFswXSxsPXRbMV0sYz1NYXRoLmZsb29yKGEocykpLHU9TWF0aC5jZWlsKGEobCkpLGY9ciUxPzI6cjtpZihpc0Zpbml0ZSh1LWMpKXtpZihuKXtmb3IoO2M8dTtjKyspZm9yKHZhciBoPTE7aDxmO2grKyllLnB1c2gobyhjKSpoKTtlLnB1c2gobyhjKSl9ZWxzZSBmb3IoZS5wdXNoKG8oYykpO2MrKzx1Oylmb3IoaD1mLTE7aD4wO2gtLSllLnB1c2gobyhjKSpoKTtmb3IoYz0wO2VbY108cztjKyspO2Zvcih1PWUubGVuZ3RoO2VbdS0xXT5sO3UtLSk7ZT1lLnNsaWNlKGMsdSl9cmV0dXJuIGV9LHMuY29weT1mdW5jdGlvbigpe3JldHVybiB0KGUuY29weSgpLHIsbixpKX0sVW4ocyxlKX0odC5zY2FsZS5saW5lYXIoKS5kb21haW4oWzAsMV0pLDEwLCEwLFsxLDEwXSl9O3ZhciBHbj17Zmxvb3I6ZnVuY3Rpb24odCl7cmV0dXJuLU1hdGguY2VpbCgtdCl9LGNlaWw6ZnVuY3Rpb24odCl7cmV0dXJuLU1hdGguZmxvb3IoLXQpfX07ZnVuY3Rpb24gWW4odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBlPDA/LU1hdGgucG93KC1lLHQpOk1hdGgucG93KGUsdCl9fXQuc2NhbGUucG93PWZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIHQoZSxyLG4pe3ZhciBpPVluKHIpLGE9WW4oMS9yKTtmdW5jdGlvbiBvKHQpe3JldHVybiBlKGkodCkpfXJldHVybiBvLmludmVydD1mdW5jdGlvbih0KXtyZXR1cm4gYShlLmludmVydCh0KSl9LG8uZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlLmRvbWFpbigobj10Lm1hcChOdW1iZXIpKS5tYXAoaSkpLG8pOm59LG8udGlja3M9ZnVuY3Rpb24odCl7cmV0dXJuIHFuKG4sdCl9LG8udGlja0Zvcm1hdD1mdW5jdGlvbih0LGUpe3JldHVybiBkM19zY2FsZV9saW5lYXJUaWNrRm9ybWF0KG4sdCxlKX0sby5uaWNlPWZ1bmN0aW9uKHQpe3JldHVybiBvLmRvbWFpbihWbihuLHQpKX0sby5leHBvbmVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1ZbihyPXQpLGE9WW4oMS9yKSxlLmRvbWFpbihuLm1hcChpKSksbyk6cn0sby5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIHQoZS5jb3B5KCkscixuKX0sVW4obyxlKX0odC5zY2FsZS5saW5lYXIoKSwxLFswLDFdKX0sdC5zY2FsZS5zcXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIHQuc2NhbGUucG93KCkuZXhwb25lbnQoLjUpfSx0LnNjYWxlLm9yZGluYWw9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gZShyLG4pe3ZhciBpLGEsbztmdW5jdGlvbiBzKHQpe3JldHVybiBhWygoaS5nZXQodCl8fCgicmFuZ2UiPT09bi50P2kuc2V0KHQsci5wdXNoKHQpKTpOYU4pKS0xKSVhLmxlbmd0aF19ZnVuY3Rpb24gbChlLG4pe3JldHVybiB0LnJhbmdlKHIubGVuZ3RoKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlK24qdH0pKX1yZXR1cm4gcy5kb21haW49ZnVuY3Rpb24odCl7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHI7cj1bXSxpPW5ldyBfO2Zvcih2YXIgZSxhPS0xLG89dC5sZW5ndGg7KythPG87KWkuaGFzKGU9dFthXSl8fGkuc2V0KGUsci5wdXNoKGUpKTtyZXR1cm4gc1tuLnRdLmFwcGx5KHMsbi5hKX0scy5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT10LG89MCxuPXt0OiJyYW5nZSIsYTphcmd1bWVudHN9LHMpOmF9LHMucmFuZ2VQb2ludHM9ZnVuY3Rpb24odCxlKXthcmd1bWVudHMubGVuZ3RoPDImJihlPTApO3ZhciBpPXRbMF0sYz10WzFdLHU9ci5sZW5ndGg8Mj8oaT0oaStjKS8yLDApOihjLWkpLyhyLmxlbmd0aC0xK2UpO3JldHVybiBhPWwoaSt1KmUvMix1KSxvPTAsbj17dDoicmFuZ2VQb2ludHMiLGE6YXJndW1lbnRzfSxzfSxzLnJhbmdlUm91bmRQb2ludHM9ZnVuY3Rpb24odCxlKXthcmd1bWVudHMubGVuZ3RoPDImJihlPTApO3ZhciBpPXRbMF0sYz10WzFdLHU9ci5sZW5ndGg8Mj8oaT1jPU1hdGgucm91bmQoKGkrYykvMiksMCk6KGMtaSkvKHIubGVuZ3RoLTErZSl8MDtyZXR1cm4gYT1sKGkrTWF0aC5yb3VuZCh1KmUvMisoYy1pLShyLmxlbmd0aC0xK2UpKnUpLzIpLHUpLG89MCxuPXt0OiJyYW5nZVJvdW5kUG9pbnRzIixhOmFyZ3VtZW50c30sc30scy5yYW5nZUJhbmRzPWZ1bmN0aW9uKHQsZSxpKXthcmd1bWVudHMubGVuZ3RoPDImJihlPTApLGFyZ3VtZW50cy5sZW5ndGg8MyYmKGk9ZSk7dmFyIGM9dFsxXTx0WzBdLHU9dFtjLTBdLGY9dFsxLWNdLGg9KGYtdSkvKHIubGVuZ3RoLWUrMippKTtyZXR1cm4gYT1sKHUraCppLGgpLGMmJmEucmV2ZXJzZSgpLG89aCooMS1lKSxuPXt0OiJyYW5nZUJhbmRzIixhOmFyZ3VtZW50c30sc30scy5yYW5nZVJvdW5kQmFuZHM9ZnVuY3Rpb24odCxlLGkpe2FyZ3VtZW50cy5sZW5ndGg8MiYmKGU9MCksYXJndW1lbnRzLmxlbmd0aDwzJiYoaT1lKTt2YXIgYz10WzFdPHRbMF0sdT10W2MtMF0sZj10WzEtY10saD1NYXRoLmZsb29yKChmLXUpLyhyLmxlbmd0aC1lKzIqaSkpO3JldHVybiBhPWwodStNYXRoLnJvdW5kKChmLXUtKHIubGVuZ3RoLWUpKmgpLzIpLGgpLGMmJmEucmV2ZXJzZSgpLG89TWF0aC5yb3VuZChoKigxLWUpKSxuPXt0OiJyYW5nZVJvdW5kQmFuZHMiLGE6YXJndW1lbnRzfSxzfSxzLnJhbmdlQmFuZD1mdW5jdGlvbigpe3JldHVybiBvfSxzLnJhbmdlRXh0ZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHpuKG4uYVswXSl9LHMuY29weT1mdW5jdGlvbigpe3JldHVybiBlKHIsbil9LHMuZG9tYWluKHIpfShbXSx7dDoicmFuZ2UiLGE6W1tdXX0pfSx0LnNjYWxlLmNhdGVnb3J5MTA9ZnVuY3Rpb24oKXtyZXR1cm4gdC5zY2FsZS5vcmRpbmFsKCkucmFuZ2UoV24pfSx0LnNjYWxlLmNhdGVnb3J5MjA9ZnVuY3Rpb24oKXtyZXR1cm4gdC5zY2FsZS5vcmRpbmFsKCkucmFuZ2UoWG4pfSx0LnNjYWxlLmNhdGVnb3J5MjBiPWZ1bmN0aW9uKCl7cmV0dXJuIHQuc2NhbGUub3JkaW5hbCgpLnJhbmdlKFpuKX0sdC5zY2FsZS5jYXRlZ29yeTIwYz1mdW5jdGlvbigpe3JldHVybiB0LnNjYWxlLm9yZGluYWwoKS5yYW5nZShKbil9O3ZhciBXbj1bMjA2MjI2MCwxNjc0NDIwNiwyOTI0NTg4LDE0MDM0NzI4LDk3MjU4ODUsOTE5NzEzMSwxNDkwNzMzMCw4MzU1NzExLDEyMzY5MTg2LDE1NTYxNzVdLm1hcCh0ZSksWG49WzIwNjIyNjAsMTE0NTQ0NDAsMTY3NDQyMDYsMTY3NTk2NzIsMjkyNDU4OCwxMDAxODY5OCwxNDAzNDcyOCwxNjc1MDc0Miw5NzI1ODg1LDEyOTU1ODYxLDkxOTcxMzEsMTI4ODUxNDAsMTQ5MDczMzAsMTYyMzQxOTQsODM1NTcxMSwxMzA5MjgwNywxMjM2OTE4NiwxNDQwODU4OSwxNTU2MTc1LDEwNDEwNzI1XS5tYXAodGUpLFpuPVszNzUwNzc3LDUzOTU2MTksNzA0MDcxOSwxMDI2NDI4Niw2NTE5MDk3LDkyMTY1OTQsMTE5MTUxMTUsMTM1NTY2MzYsOTIwMjk5MywxMjQyNjgwOSwxNTE4NjUxNCwxNTE5MDkzMiw4NjY2MTY5LDExMzU2NDkwLDE0MDQ5NjQzLDE1MTc3MzcyLDgwNzc2ODMsMTA4MzQzMjQsMTM1Mjg1MDksMTQ1ODk2NTRdLm1hcCh0ZSksSm49WzMyNDQ3MzMsNzA1NzExMCwxMDQwNjYyNSwxMzAzMjQzMSwxNTA5NTA1MywxNjYxNjc2NCwxNjYyNTI1OSwxNjYzNDAxOCwzMjUzMDc2LDc2NTI0NzAsMTA2MDcwMDMsMTMxMDE1MDQsNzY5NTI4MSwxMDM5NDMxMiwxMjM2OTM3MiwxNDM0Mjg5MSw2NTEzNTA3LDk4Njg5NTAsMTI0MzQ4NzcsMTQyNzcwODFdLm1hcCh0ZSk7ZnVuY3Rpb24gS24oKXtyZXR1cm4gMH10LnNjYWxlLnF1YW50aWxlPWZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGUocixuKXt2YXIgaTtmdW5jdGlvbiBhKCl7dmFyIGU9MCxhPW4ubGVuZ3RoO2ZvcihpPVtdOysrZTxhOylpW2UtMV09dC5xdWFudGlsZShyLGUvYSk7cmV0dXJuIG99ZnVuY3Rpb24gbyhlKXtpZighaXNOYU4oZT0rZSkpcmV0dXJuIG5bdC5iaXNlY3QoaSxlKV19cmV0dXJuIG8uZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQubWFwKHApLmZpbHRlcihkKS5zb3J0KGgpLGEoKSk6cn0sby5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10LGEoKSk6bn0sby5xdWFudGlsZXM9ZnVuY3Rpb24oKXtyZXR1cm4gaX0sby5pbnZlcnRFeHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuKHQ9bi5pbmRleE9mKHQpKTwwP1tOYU4sTmFOXTpbdD4wP2lbdC0xXTpyWzBdLHQ8aS5sZW5ndGg/aVt0XTpyW3IubGVuZ3RoLTFdXX0sby5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIGUocixuKX0sYSgpfShbXSxbXSl9LHQuc2NhbGUucXVhbnRpemU9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gdChlLHIsbil7dmFyIGksYTtmdW5jdGlvbiBvKHQpe3JldHVybiBuW01hdGgubWF4KDAsTWF0aC5taW4oYSxNYXRoLmZsb29yKGkqKHQtZSkpKSldfWZ1bmN0aW9uIHMoKXtyZXR1cm4gaT1uLmxlbmd0aC8oci1lKSxhPW4ubGVuZ3RoLTEsb31yZXR1cm4gby5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9K3RbMF0scj0rdFt0Lmxlbmd0aC0xXSxzKCkpOltlLHJdfSxvLnJhbmdlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPXQscygpKTpufSxvLmludmVydEV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm5bdD0odD1uLmluZGV4T2YodCkpPDA/TmFOOnQvaStlLHQrMS9pXX0sby5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIHQoZSxyLG4pfSxzKCl9KDAsMSxbMCwxXSl9LHQuc2NhbGUudGhyZXNob2xkPWZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGUocixuKXtmdW5jdGlvbiBpKGUpe2lmKGU8PWUpcmV0dXJuIG5bdC5iaXNlY3QocixlKV19cmV0dXJuIGkuZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQsaSk6cn0saS5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10LGkpOm59LGkuaW52ZXJ0RXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiB0PW4uaW5kZXhPZih0KSxbclt0LTFdLHJbdF1dfSxpLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gZShyLG4pfSxpfShbLjVdLFswLDFdKX0sdC5zY2FsZS5pZGVudGl0eT1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIHIodCl7cmV0dXJuK3R9cmV0dXJuIHIuaW52ZXJ0PXIsci5kb21haW49ci5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10Lm1hcChyKSxyKTplfSxyLnRpY2tzPWZ1bmN0aW9uKHQpe3JldHVybiBxbihlLHQpfSxyLnRpY2tGb3JtYXQ9ZnVuY3Rpb24odCxyKXtyZXR1cm4gZDNfc2NhbGVfbGluZWFyVGlja0Zvcm1hdChlLHQscil9LHIuY29weT1mdW5jdGlvbigpe3JldHVybiB0KGUpfSxyfShbMCwxXSl9LHQuc3ZnPXt9LHQuc3ZnLmFyYz1mdW5jdGlvbigpe3ZhciB0PSRuLGU9dGkscj1LbixuPVFuLGk9ZWksYT1yaSxvPW5pO2Z1bmN0aW9uIHMoKXt2YXIgcz1NYXRoLm1heCgwLCt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKSksYz1NYXRoLm1heCgwLCtlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksdT1pLmFwcGx5KHRoaXMsYXJndW1lbnRzKS1FdCxmPWEuYXBwbHkodGhpcyxhcmd1bWVudHMpLUV0LGg9TWF0aC5hYnMoZi11KSxwPXU+Zj8wOjE7aWYoYzxzJiYoZD1jLGM9cyxzPWQpLGg+PVN0KXJldHVybiBsKGMscCkrKHM/bChzLDEtcCk6IiIpKyJaIjt2YXIgZCxtLGcsdix5LHgsYixfLHcsVCxrLEEsTT0wLFM9MCxFPVtdO2lmKCh2PSgrby5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fDApLzIpJiYoZz1uPT09UW4/TWF0aC5zcXJ0KHMqcytjKmMpOituLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxwfHwoUyo9LTEpLGMmJihTPVB0KGcvYypNYXRoLnNpbih2KSkpLHMmJihNPVB0KGcvcypNYXRoLnNpbih2KSkpKSxjKXt5PWMqTWF0aC5jb3ModStTKSx4PWMqTWF0aC5zaW4odStTKSxiPWMqTWF0aC5jb3MoZi1TKSxfPWMqTWF0aC5zaW4oZi1TKTt2YXIgTD1NYXRoLmFicyhmLXUtMipTKTw9QXQ/MDoxO2lmKFMmJmlpKHkseCxiLF8pPT09cF5MKXt2YXIgQz0odStmKS8yO3k9YypNYXRoLmNvcyhDKSx4PWMqTWF0aC5zaW4oQyksYj1fPW51bGx9fWVsc2UgeT14PTA7aWYocyl7dz1zKk1hdGguY29zKGYtTSksVD1zKk1hdGguc2luKGYtTSksaz1zKk1hdGguY29zKHUrTSksQT1zKk1hdGguc2luKHUrTSk7dmFyIFA9TWF0aC5hYnModS1mKzIqTSk8PUF0PzA6MTtpZihNJiZpaSh3LFQsayxBKT09PTEtcF5QKXt2YXIgST0odStmKS8yO3c9cypNYXRoLmNvcyhJKSxUPXMqTWF0aC5zaW4oSSksaz1BPW51bGx9fWVsc2Ugdz1UPTA7aWYoaD5rdCYmKGQ9TWF0aC5taW4oTWF0aC5hYnMoYy1zKS8yLCtyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSkpPi4wMDEpe209czxjXnA/MDoxO3ZhciBPPWQsej1kO2lmKGg8QXQpe3ZhciBEPW51bGw9PWs/W3csVF06bnVsbD09Yj9beSx4XTpTZShbeSx4XSxbayxBXSxbYixfXSxbdyxUXSksUj15LURbMF0sRj14LURbMV0sQj1iLURbMF0sTj1fLURbMV0saj0xL01hdGguc2luKE1hdGguYWNvcygoUipCK0YqTikvKE1hdGguc3FydChSKlIrRipGKSpNYXRoLnNxcnQoQipCK04qTikpKS8yKSxVPU1hdGguc3FydChEWzBdKkRbMF0rRFsxXSpEWzFdKTt6PU1hdGgubWluKGQsKHMtVSkvKGotMSkpLE89TWF0aC5taW4oZCwoYy1VKS8oaisxKSl9aWYobnVsbCE9Yil7dmFyIFY9YWkobnVsbD09az9bdyxUXTpbayxBXSxbeSx4XSxjLE8scCksSD1haShbYixfXSxbdyxUXSxjLE8scCk7ZD09PU8/RS5wdXNoKCJNIixWWzBdLCJBIixPLCIsIixPLCIgMCAwLCIsbSwiICIsVlsxXSwiQSIsYywiLCIsYywiIDAgIiwxLXBeaWkoVlsxXVswXSxWWzFdWzFdLEhbMV1bMF0sSFsxXVsxXSksIiwiLHAsIiAiLEhbMV0sIkEiLE8sIiwiLE8sIiAwIDAsIixtLCIgIixIWzBdKTpFLnB1c2goIk0iLFZbMF0sIkEiLE8sIiwiLE8sIiAwIDEsIixtLCIgIixIWzBdKX1lbHNlIEUucHVzaCgiTSIseSwiLCIseCk7aWYobnVsbCE9ayl7dmFyIHE9YWkoW3kseF0sW2ssQV0scywteixwKSxHPWFpKFt3LFRdLG51bGw9PWI/W3kseF06W2IsX10scywteixwKTtkPT09ej9FLnB1c2goIkwiLEdbMF0sIkEiLHosIiwiLHosIiAwIDAsIixtLCIgIixHWzFdLCJBIixzLCIsIixzLCIgMCAiLHBeaWkoR1sxXVswXSxHWzFdWzFdLHFbMV1bMF0scVsxXVsxXSksIiwiLDEtcCwiICIscVsxXSwiQSIseiwiLCIseiwiIDAgMCwiLG0sIiAiLHFbMF0pOkUucHVzaCgiTCIsR1swXSwiQSIseiwiLCIseiwiIDAgMCwiLG0sIiAiLHFbMF0pfWVsc2UgRS5wdXNoKCJMIix3LCIsIixUKX1lbHNlIEUucHVzaCgiTSIseSwiLCIseCksbnVsbCE9YiYmRS5wdXNoKCJBIixjLCIsIixjLCIgMCAiLEwsIiwiLHAsIiAiLGIsIiwiLF8pLEUucHVzaCgiTCIsdywiLCIsVCksbnVsbCE9ayYmRS5wdXNoKCJBIixzLCIsIixzLCIgMCAiLFAsIiwiLDEtcCwiICIsaywiLCIsQSk7cmV0dXJuIEUucHVzaCgiWiIpLEUuam9pbigiIil9ZnVuY3Rpb24gbCh0LGUpe3JldHVybiJNMCwiK3QrIkEiK3QrIiwiK3QrIiAwIDEsIitlKyIgMCwiKy10KyJBIit0KyIsIit0KyIgMCAxLCIrZSsiIDAsIit0fXJldHVybiBzLmlubmVyUmFkaXVzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PWNlKGUpLHMpOnR9LHMub3V0ZXJSYWRpdXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9Y2UodCkscyk6ZX0scy5jb3JuZXJSYWRpdXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9Y2UodCkscyk6cn0scy5wYWRSYWRpdXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dD09UW4/UW46Y2UodCkscyk6bn0scy5zdGFydEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPWNlKHQpLHMpOml9LHMuZW5kQW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9Y2UodCkscyk6YX0scy5wYWRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1jZSh0KSxzKTpvfSxzLmNlbnRyb2lkPWZ1bmN0aW9uKCl7dmFyIHI9KCt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKSsgK2UuYXBwbHkodGhpcyxhcmd1bWVudHMpKS8yLG49KCtpLmFwcGx5KHRoaXMsYXJndW1lbnRzKSsgK2EuYXBwbHkodGhpcyxhcmd1bWVudHMpKS8yLUV0O3JldHVybltNYXRoLmNvcyhuKSpyLE1hdGguc2luKG4pKnJdfSxzfTt2YXIgUW49ImF1dG8iO2Z1bmN0aW9uICRuKHQpe3JldHVybiB0LmlubmVyUmFkaXVzfWZ1bmN0aW9uIHRpKHQpe3JldHVybiB0Lm91dGVyUmFkaXVzfWZ1bmN0aW9uIGVpKHQpe3JldHVybiB0LnN0YXJ0QW5nbGV9ZnVuY3Rpb24gcmkodCl7cmV0dXJuIHQuZW5kQW5nbGV9ZnVuY3Rpb24gbmkodCl7cmV0dXJuIHQmJnQucGFkQW5nbGV9ZnVuY3Rpb24gaWkodCxlLHIsbil7cmV0dXJuKHQtcikqZS0oZS1uKSp0PjA/MDoxfWZ1bmN0aW9uIGFpKHQsZSxyLG4saSl7dmFyIGE9dFswXS1lWzBdLG89dFsxXS1lWzFdLHM9KGk/bjotbikvTWF0aC5zcXJ0KGEqYStvKm8pLGw9cypvLGM9LXMqYSx1PXRbMF0rbCxmPXRbMV0rYyxoPWVbMF0rbCxwPWVbMV0rYyxkPSh1K2gpLzIsbT0oZitwKS8yLGc9aC11LHY9cC1mLHk9ZypnK3Yqdix4PXItbixiPXUqcC1oKmYsXz0odjwwPy0xOjEpKk1hdGguc3FydChNYXRoLm1heCgwLHgqeCp5LWIqYikpLHc9KGIqdi1nKl8pL3ksVD0oLWIqZy12Kl8pL3ksaz0oYip2K2cqXykveSxBPSgtYipnK3YqXykveSxNPXctZCxTPVQtbSxFPWstZCxMPUEtbTtyZXR1cm4gTSpNK1MqUz5FKkUrTCpMJiYodz1rLFQ9QSksW1t3LWwsVC1jXSxbdypyL3gsVCpyL3hdXX1mdW5jdGlvbiBvaSgpe3JldHVybiEwfWZ1bmN0aW9uIHNpKHQpe3ZhciBlPV9lLHI9d2Usbj1vaSxpPWNpLGE9aS5rZXksbz0uNztmdW5jdGlvbiBzKGEpe3ZhciBzLGw9W10sYz1bXSx1PS0xLGY9YS5sZW5ndGgsaD1jZShlKSxwPWNlKHIpO2Z1bmN0aW9uIGQoKXtsLnB1c2goIk0iLGkodChjKSxvKSl9Zm9yKDsrK3U8Zjspbi5jYWxsKHRoaXMscz1hW3VdLHUpP2MucHVzaChbK2guY2FsbCh0aGlzLHMsdSksK3AuY2FsbCh0aGlzLHMsdSldKTpjLmxlbmd0aCYmKGQoKSxjPVtdKTtyZXR1cm4gYy5sZW5ndGgmJmQoKSxsLmxlbmd0aD9sLmpvaW4oIiIpOm51bGx9cmV0dXJuIHMueD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10LHMpOmV9LHMueT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10LHMpOnJ9LHMuZGVmaW5lZD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10LHMpOm59LHMuaW50ZXJwb2xhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/aT10OihpPWxpLmdldCh0KXx8Y2kpLmtleSxzKTphfSxzLnRlbnNpb249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89dCxzKTpvfSxzfXQuc3ZnLmxpbmU9ZnVuY3Rpb24oKXtyZXR1cm4gc2koQyl9O3ZhciBsaT10Lm1hcCh7bGluZWFyOmNpLCJsaW5lYXItY2xvc2VkIjp1aSxzdGVwOmZ1bmN0aW9uKHQpe3ZhciBlPTAscj10Lmxlbmd0aCxuPXRbMF0saT1bblswXSwiLCIsblsxXV07Zm9yKDsrK2U8cjspaS5wdXNoKCJIIiwoblswXSsobj10W2VdKVswXSkvMiwiViIsblsxXSk7cj4xJiZpLnB1c2goIkgiLG5bMF0pO3JldHVybiBpLmpvaW4oIiIpfSwic3RlcC1iZWZvcmUiOmZpLCJzdGVwLWFmdGVyIjpoaSxiYXNpczptaSwiYmFzaXMtb3BlbiI6ZnVuY3Rpb24odCl7aWYodC5sZW5ndGg8NClyZXR1cm4gY2kodCk7dmFyIGUscj1bXSxuPS0xLGk9dC5sZW5ndGgsYT1bMF0sbz1bMF07Zm9yKDsrK248MzspZT10W25dLGEucHVzaChlWzBdKSxvLnB1c2goZVsxXSk7ci5wdXNoKGdpKHhpLGEpKyIsIitnaSh4aSxvKSksLS1uO2Zvcig7KytuPGk7KWU9dFtuXSxhLnNoaWZ0KCksYS5wdXNoKGVbMF0pLG8uc2hpZnQoKSxvLnB1c2goZVsxXSksYmkocixhLG8pO3JldHVybiByLmpvaW4oIiIpfSwiYmFzaXMtY2xvc2VkIjpmdW5jdGlvbih0KXt2YXIgZSxyLG49LTEsaT10Lmxlbmd0aCxhPWkrNCxvPVtdLHM9W107Zm9yKDsrK248NDspcj10W24laV0sby5wdXNoKHJbMF0pLHMucHVzaChyWzFdKTtlPVtnaSh4aSxvKSwiLCIsZ2koeGkscyldLC0tbjtmb3IoOysrbjxhOylyPXRbbiVpXSxvLnNoaWZ0KCksby5wdXNoKHJbMF0pLHMuc2hpZnQoKSxzLnB1c2goclsxXSksYmkoZSxvLHMpO3JldHVybiBlLmpvaW4oIiIpfSxidW5kbGU6ZnVuY3Rpb24odCxlKXt2YXIgcj10Lmxlbmd0aC0xO2lmKHIpZm9yKHZhciBuLGksYT10WzBdWzBdLG89dFswXVsxXSxzPXRbcl1bMF0tYSxsPXRbcl1bMV0tbyxjPS0xOysrYzw9cjspbj10W2NdLGk9Yy9yLG5bMF09ZSpuWzBdKygxLWUpKihhK2kqcyksblsxXT1lKm5bMV0rKDEtZSkqKG8raSpsKTtyZXR1cm4gbWkodCl9LGNhcmRpbmFsOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQubGVuZ3RoPDM/Y2kodCk6dFswXStwaSh0LGRpKHQsZSkpfSwiY2FyZGluYWwtb3BlbiI6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5sZW5ndGg8ND9jaSh0KTp0WzFdK3BpKHQuc2xpY2UoMSwtMSksZGkodCxlKSl9LCJjYXJkaW5hbC1jbG9zZWQiOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQubGVuZ3RoPDM/dWkodCk6dFswXStwaSgodC5wdXNoKHRbMF0pLHQpLGRpKFt0W3QubGVuZ3RoLTJdXS5jb25jYXQodCxbdFsxXV0pLGUpKX0sbW9ub3RvbmU6ZnVuY3Rpb24odCl7cmV0dXJuIHQubGVuZ3RoPDM/Y2kodCk6dFswXStwaSh0LGZ1bmN0aW9uKHQpe3ZhciBlLHIsbixpLGE9W10sbz1mdW5jdGlvbih0KXt2YXIgZT0wLHI9dC5sZW5ndGgtMSxuPVtdLGk9dFswXSxhPXRbMV0sbz1uWzBdPV9pKGksYSk7Zm9yKDsrK2U8cjspbltlXT0obysobz1faShpPWEsYT10W2UrMV0pKSkvMjtyZXR1cm4gbltlXT1vLG59KHQpLHM9LTEsbD10Lmxlbmd0aC0xO2Zvcig7KytzPGw7KWU9X2kodFtzXSx0W3MrMV0pLHkoZSk8a3Q/b1tzXT1vW3MrMV09MDoocj1vW3NdL2Usbj1vW3MrMV0vZSwoaT1yKnIrbipuKT45JiYoaT0zKmUvTWF0aC5zcXJ0KGkpLG9bc109aSpyLG9bcysxXT1pKm4pKTtzPS0xO2Zvcig7KytzPD1sOylpPSh0W01hdGgubWluKGwscysxKV1bMF0tdFtNYXRoLm1heCgwLHMtMSldWzBdKS8oNiooMStvW3NdKm9bc10pKSxhLnB1c2goW2l8fDAsb1tzXSppfHwwXSk7cmV0dXJuIGF9KHQpKX19KTtmdW5jdGlvbiBjaSh0KXtyZXR1cm4gdC5sZW5ndGg+MT90LmpvaW4oIkwiKTp0KyJaIn1mdW5jdGlvbiB1aSh0KXtyZXR1cm4gdC5qb2luKCJMIikrIloifWZ1bmN0aW9uIGZpKHQpe2Zvcih2YXIgZT0wLHI9dC5sZW5ndGgsbj10WzBdLGk9W25bMF0sIiwiLG5bMV1dOysrZTxyOylpLnB1c2goIlYiLChuPXRbZV0pWzFdLCJIIixuWzBdKTtyZXR1cm4gaS5qb2luKCIiKX1mdW5jdGlvbiBoaSh0KXtmb3IodmFyIGU9MCxyPXQubGVuZ3RoLG49dFswXSxpPVtuWzBdLCIsIixuWzFdXTsrK2U8cjspaS5wdXNoKCJIIiwobj10W2VdKVswXSwiViIsblsxXSk7cmV0dXJuIGkuam9pbigiIil9ZnVuY3Rpb24gcGkodCxlKXtpZihlLmxlbmd0aDwxfHx0Lmxlbmd0aCE9ZS5sZW5ndGgmJnQubGVuZ3RoIT1lLmxlbmd0aCsyKXJldHVybiBjaSh0KTt2YXIgcj10Lmxlbmd0aCE9ZS5sZW5ndGgsbj0iIixpPXRbMF0sYT10WzFdLG89ZVswXSxzPW8sbD0xO2lmKHImJihuKz0iUSIrKGFbMF0tMipvWzBdLzMpKyIsIisoYVsxXS0yKm9bMV0vMykrIiwiK2FbMF0rIiwiK2FbMV0saT10WzFdLGw9MiksZS5sZW5ndGg+MSl7cz1lWzFdLGE9dFtsXSxsKyssbis9IkMiKyhpWzBdK29bMF0pKyIsIisoaVsxXStvWzFdKSsiLCIrKGFbMF0tc1swXSkrIiwiKyhhWzFdLXNbMV0pKyIsIithWzBdKyIsIithWzFdO2Zvcih2YXIgYz0yO2M8ZS5sZW5ndGg7YysrLGwrKylhPXRbbF0scz1lW2NdLG4rPSJTIisoYVswXS1zWzBdKSsiLCIrKGFbMV0tc1sxXSkrIiwiK2FbMF0rIiwiK2FbMV19aWYocil7dmFyIHU9dFtsXTtuKz0iUSIrKGFbMF0rMipzWzBdLzMpKyIsIisoYVsxXSsyKnNbMV0vMykrIiwiK3VbMF0rIiwiK3VbMV19cmV0dXJuIG59ZnVuY3Rpb24gZGkodCxlKXtmb3IodmFyIHIsbj1bXSxpPSgxLWUpLzIsYT10WzBdLG89dFsxXSxzPTEsbD10Lmxlbmd0aDsrK3M8bDspcj1hLGE9byxvPXRbc10sbi5wdXNoKFtpKihvWzBdLXJbMF0pLGkqKG9bMV0tclsxXSldKTtyZXR1cm4gbn1mdW5jdGlvbiBtaSh0KXtpZih0Lmxlbmd0aDwzKXJldHVybiBjaSh0KTt2YXIgZT0xLHI9dC5sZW5ndGgsbj10WzBdLGk9blswXSxhPW5bMV0sbz1baSxpLGksKG49dFsxXSlbMF1dLHM9W2EsYSxhLG5bMV1dLGw9W2ksIiwiLGEsIkwiLGdpKHhpLG8pLCIsIixnaSh4aSxzKV07Zm9yKHQucHVzaCh0W3ItMV0pOysrZTw9cjspbj10W2VdLG8uc2hpZnQoKSxvLnB1c2goblswXSkscy5zaGlmdCgpLHMucHVzaChuWzFdKSxiaShsLG8scyk7cmV0dXJuIHQucG9wKCksbC5wdXNoKCJMIixuKSxsLmpvaW4oIiIpfWZ1bmN0aW9uIGdpKHQsZSl7cmV0dXJuIHRbMF0qZVswXSt0WzFdKmVbMV0rdFsyXSplWzJdK3RbM10qZVszXX1saS5mb3JFYWNoKChmdW5jdGlvbih0LGUpe2Uua2V5PXQsZS5jbG9zZWQ9Ly1jbG9zZWQkLy50ZXN0KHQpfSkpO3ZhciB2aT1bMCwyLzMsMS8zLDBdLHlpPVswLDEvMywyLzMsMF0seGk9WzAsMS82LDIvMywxLzZdO2Z1bmN0aW9uIGJpKHQsZSxyKXt0LnB1c2goIkMiLGdpKHZpLGUpLCIsIixnaSh2aSxyKSwiLCIsZ2koeWksZSksIiwiLGdpKHlpLHIpLCIsIixnaSh4aSxlKSwiLCIsZ2koeGkscikpfWZ1bmN0aW9uIF9pKHQsZSl7cmV0dXJuKGVbMV0tdFsxXSkvKGVbMF0tdFswXSl9ZnVuY3Rpb24gd2kodCl7Zm9yKHZhciBlLHIsbixpPS0xLGE9dC5sZW5ndGg7KytpPGE7KXI9KGU9dFtpXSlbMF0sbj1lWzFdLUV0LGVbMF09cipNYXRoLmNvcyhuKSxlWzFdPXIqTWF0aC5zaW4obik7cmV0dXJuIHR9ZnVuY3Rpb24gVGkodCl7dmFyIGU9X2Uscj1fZSxuPTAsaT13ZSxhPW9pLG89Y2kscz1vLmtleSxsPW8sYz0iTCIsdT0uNztmdW5jdGlvbiBmKHMpe3ZhciBmLGgscCxkPVtdLG09W10sZz1bXSx2PS0xLHk9cy5sZW5ndGgseD1jZShlKSxiPWNlKG4pLF89ZT09PXI/ZnVuY3Rpb24oKXtyZXR1cm4gaH06Y2Uociksdz1uPT09aT9mdW5jdGlvbigpe3JldHVybiBwfTpjZShpKTtmdW5jdGlvbiBUKCl7ZC5wdXNoKCJNIixvKHQoZyksdSksYyxsKHQobS5yZXZlcnNlKCkpLHUpLCJaIil9Zm9yKDsrK3Y8eTspYS5jYWxsKHRoaXMsZj1zW3ZdLHYpPyhtLnB1c2goW2g9K3guY2FsbCh0aGlzLGYsdikscD0rYi5jYWxsKHRoaXMsZix2KV0pLGcucHVzaChbK18uY2FsbCh0aGlzLGYsdiksK3cuY2FsbCh0aGlzLGYsdildKSk6bS5sZW5ndGgmJihUKCksbT1bXSxnPVtdKTtyZXR1cm4gbS5sZW5ndGgmJlQoKSxkLmxlbmd0aD9kLmpvaW4oIiIpOm51bGx9cmV0dXJuIGYueD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1yPXQsZik6cn0sZi54MD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10LGYpOmV9LGYueDE9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dCxmKTpyfSxmLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49aT10LGYpOml9LGYueTA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dCxmKTpufSxmLnkxPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPXQsZik6aX0sZi5kZWZpbmVkPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPXQsZik6YX0sZi5pbnRlcnBvbGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz0iZnVuY3Rpb24iPT10eXBlb2YgdD9vPXQ6KG89bGkuZ2V0KHQpfHxjaSkua2V5LGw9by5yZXZlcnNlfHxvLGM9by5jbG9zZWQ/Ik0iOiJMIixmKTpzfSxmLnRlbnNpb249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9dCxmKTp1fSxmfWZ1bmN0aW9uIGtpKHQpe3JldHVybiB0LnNvdXJjZX1mdW5jdGlvbiBBaSh0KXtyZXR1cm4gdC50YXJnZXR9ZnVuY3Rpb24gTWkodCl7cmV0dXJuIHQucmFkaXVzfWZ1bmN0aW9uIFNpKHQpe3JldHVyblt0LngsdC55XX1mdW5jdGlvbiBFaSh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKSxyPWVbMF0sbj1lWzFdLUV0O3JldHVybltyKk1hdGguY29zKG4pLHIqTWF0aC5zaW4obildfX1mdW5jdGlvbiBMaSgpe3JldHVybiA2NH1mdW5jdGlvbiBDaSgpe3JldHVybiJjaXJjbGUifWZ1bmN0aW9uIFBpKHQpe3ZhciBlPU1hdGguc3FydCh0L0F0KTtyZXR1cm4iTTAsIitlKyJBIitlKyIsIitlKyIgMCAxLDEgMCwiKy1lKyJBIitlKyIsIitlKyIgMCAxLDEgMCwiK2UrIloifXQuc3ZnLmxpbmUucmFkaWFsPWZ1bmN0aW9uKCl7dmFyIHQ9c2kod2kpO3JldHVybiB0LnJhZGl1cz10LngsZGVsZXRlIHQueCx0LmFuZ2xlPXQueSxkZWxldGUgdC55LHR9LGZpLnJldmVyc2U9aGksaGkucmV2ZXJzZT1maSx0LnN2Zy5hcmVhPWZ1bmN0aW9uKCl7cmV0dXJuIFRpKEMpfSx0LnN2Zy5hcmVhLnJhZGlhbD1mdW5jdGlvbigpe3ZhciB0PVRpKHdpKTtyZXR1cm4gdC5yYWRpdXM9dC54LGRlbGV0ZSB0LngsdC5pbm5lclJhZGl1cz10LngwLGRlbGV0ZSB0LngwLHQub3V0ZXJSYWRpdXM9dC54MSxkZWxldGUgdC54MSx0LmFuZ2xlPXQueSxkZWxldGUgdC55LHQuc3RhcnRBbmdsZT10LnkwLGRlbGV0ZSB0LnkwLHQuZW5kQW5nbGU9dC55MSxkZWxldGUgdC55MSx0fSx0LnN2Zy5jaG9yZD1mdW5jdGlvbigpe3ZhciB0PWtpLGU9QWkscj1NaSxuPWVpLGk9cmk7ZnVuY3Rpb24gYShyLG4pe3ZhciBpLGEsYz1vKHRoaXMsdCxyLG4pLHU9byh0aGlzLGUscixuKTtyZXR1cm4iTSIrYy5wMCtzKGMucixjLnAxLGMuYTEtYy5hMCkrKGE9dSwoKGk9YykuYTA9PWEuYTAmJmkuYTE9PWEuYTE/bChjLnIsYy5wMSxjLnIsYy5wMCk6bChjLnIsYy5wMSx1LnIsdS5wMCkrcyh1LnIsdS5wMSx1LmExLXUuYTApK2wodS5yLHUucDEsYy5yLGMucDApKSsiWiIpfWZ1bmN0aW9uIG8odCxlLGEsbyl7dmFyIHM9ZS5jYWxsKHQsYSxvKSxsPXIuY2FsbCh0LHMsbyksYz1uLmNhbGwodCxzLG8pLUV0LHU9aS5jYWxsKHQscyxvKS1FdDtyZXR1cm57cjpsLGEwOmMsYTE6dSxwMDpbbCpNYXRoLmNvcyhjKSxsKk1hdGguc2luKGMpXSxwMTpbbCpNYXRoLmNvcyh1KSxsKk1hdGguc2luKHUpXX19ZnVuY3Rpb24gcyh0LGUscil7cmV0dXJuIkEiK3QrIiwiK3QrIiAwICIrICsocj5BdCkrIiwxICIrZX1mdW5jdGlvbiBsKHQsZSxyLG4pe3JldHVybiJRIDAsMCAiK259cmV0dXJuIGEucmFkaXVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPWNlKHQpLGEpOnJ9LGEuc291cmNlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PWNlKGUpLGEpOnR9LGEudGFyZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPWNlKHQpLGEpOmV9LGEuc3RhcnRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1jZSh0KSxhKTpufSxhLmVuZEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPWNlKHQpLGEpOml9LGF9LHQuc3ZnLmRpYWdvbmFsPWZ1bmN0aW9uKCl7dmFyIHQ9a2ksZT1BaSxyPVNpO2Z1bmN0aW9uIG4obixpKXt2YXIgYT10LmNhbGwodGhpcyxuLGkpLG89ZS5jYWxsKHRoaXMsbixpKSxzPShhLnkrby55KS8yLGw9W2Ese3g6YS54LHk6c30se3g6by54LHk6c30sb107cmV0dXJuIk0iKyhsPWwubWFwKHIpKVswXSsiQyIrbFsxXSsiICIrbFsyXSsiICIrbFszXX1yZXR1cm4gbi5zb3VyY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9Y2UoZSksbik6dH0sbi50YXJnZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9Y2UodCksbik6ZX0sbi5wcm9qZWN0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQsbik6cn0sbn0sdC5zdmcuZGlhZ29uYWwucmFkaWFsPWZ1bmN0aW9uKCl7dmFyIGU9dC5zdmcuZGlhZ29uYWwoKSxyPVNpLG49ZS5wcm9qZWN0aW9uO3JldHVybiBlLnByb2plY3Rpb249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/bihFaShyPXQpKTpyfSxlfSx0LnN2Zy5zeW1ib2w9ZnVuY3Rpb24oKXt2YXIgdD1DaSxlPUxpO2Z1bmN0aW9uIHIocixuKXtyZXR1cm4oSWkuZ2V0KHQuY2FsbCh0aGlzLHIsbikpfHxQaSkoZS5jYWxsKHRoaXMscixuKSl9cmV0dXJuIHIudHlwZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1jZShlKSxyKTp0fSxyLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9Y2UodCkscik6ZX0scn07dmFyIElpPXQubWFwKHtjaXJjbGU6UGksY3Jvc3M6ZnVuY3Rpb24odCl7dmFyIGU9TWF0aC5zcXJ0KHQvNSkvMjtyZXR1cm4iTSIrLTMqZSsiLCIrLWUrIkgiKy1lKyJWIistMyplKyJIIitlKyJWIistZSsiSCIrMyplKyJWIitlKyJIIitlKyJWIiszKmUrIkgiKy1lKyJWIitlKyJIIistMyplKyJaIn0sZGlhbW9uZDpmdW5jdGlvbih0KXt2YXIgZT1NYXRoLnNxcnQodC8oMip6aSkpLHI9ZSp6aTtyZXR1cm4iTTAsIistZSsiTCIrcisiLDAgMCwiK2UrIiAiKy1yKyIsMFoifSxzcXVhcmU6ZnVuY3Rpb24odCl7dmFyIGU9TWF0aC5zcXJ0KHQpLzI7cmV0dXJuIk0iKy1lKyIsIistZSsiTCIrZSsiLCIrLWUrIiAiK2UrIiwiK2UrIiAiKy1lKyIsIitlKyJaIn0sInRyaWFuZ2xlLWRvd24iOmZ1bmN0aW9uKHQpe3ZhciBlPU1hdGguc3FydCh0L09pKSxyPWUqT2kvMjtyZXR1cm4iTTAsIityKyJMIitlKyIsIistcisiICIrLWUrIiwiKy1yKyJaIn0sInRyaWFuZ2xlLXVwIjpmdW5jdGlvbih0KXt2YXIgZT1NYXRoLnNxcnQodC9PaSkscj1lKk9pLzI7cmV0dXJuIk0wLCIrLXIrIkwiK2UrIiwiK3IrIiAiKy1lKyIsIityKyJaIn19KTt0LnN2Zy5zeW1ib2xUeXBlcz1JaS5rZXlzKCk7dmFyIE9pPU1hdGguc3FydCgzKSx6aT1NYXRoLnRhbigzMCpMdCk7WS50cmFuc2l0aW9uPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyLG49Qml8fCsrVWksaT1xaSh0KSxhPVtdLG89Tml8fHt0aW1lOkRhdGUubm93KCksZWFzZTpFcixkZWxheTowLGR1cmF0aW9uOjI1MH0scz0tMSxsPXRoaXMubGVuZ3RoOysrczxsOyl7YS5wdXNoKGU9W10pO2Zvcih2YXIgYz10aGlzW3NdLHU9LTEsZj1jLmxlbmd0aDsrK3U8ZjspKHI9Y1t1XSkmJkdpKHIsdSxpLG4sbyksZS5wdXNoKHIpfXJldHVybiBGaShhLGksbil9LFkuaW50ZXJydXB0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmVhY2gobnVsbD09dD9EaTpSaShxaSh0KSkpfTt2YXIgRGk9UmkocWkoKSk7ZnVuY3Rpb24gUmkodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGUscixuOyhlPXRoaXNbdF0pJiYobj1lW3I9ZS5hY3RpdmVdKSYmKG4udGltZXIuYz1udWxsLG4udGltZXIudD1OYU4sLS1lLmNvdW50P2RlbGV0ZSBlW3JdOmRlbGV0ZSB0aGlzW3RdLGUuYWN0aXZlKz0uNSxuLmV2ZW50JiZuLmV2ZW50LmludGVycnVwdC5jYWxsKHRoaXMsdGhpcy5fX2RhdGFfXyxuLmluZGV4KSl9fWZ1bmN0aW9uIEZpKHQsZSxyKXtyZXR1cm4gVSh0LGppKSx0Lm5hbWVzcGFjZT1lLHQuaWQ9cix0fXZhciBCaSxOaSxqaT1bXSxVaT0wO2Z1bmN0aW9uIFZpKHQsZSxyLG4pe3ZhciBpPXQuaWQsYT10Lm5hbWVzcGFjZTtyZXR1cm4gdXQodCwiZnVuY3Rpb24iPT10eXBlb2Ygcj9mdW5jdGlvbih0LG8scyl7dFthXVtpXS50d2Vlbi5zZXQoZSxuKHIuY2FsbCh0LHQuX19kYXRhX18sbyxzKSkpfToocj1uKHIpLGZ1bmN0aW9uKHQpe3RbYV1baV0udHdlZW4uc2V0KGUscil9KSl9ZnVuY3Rpb24gSGkodCl7cmV0dXJuIG51bGw9PXQmJih0PSIiKSxmdW5jdGlvbigpe3RoaXMudGV4dENvbnRlbnQ9dH19ZnVuY3Rpb24gcWkodCl7cmV0dXJuIG51bGw9PXQ/Il9fdHJhbnNpdGlvbl9fIjoiX190cmFuc2l0aW9uXyIrdCsiX18ifWZ1bmN0aW9uIEdpKHQsZSxyLG4saSl7dmFyIGEsbyxzLGwsYyx1PXRbcl18fCh0W3JdPXthY3RpdmU6MCxjb3VudDowfSksZj11W25dO2Z1bmN0aW9uIGgocil7dmFyIGk9dS5hY3RpdmUsaD11W2ldO2Zvcih2YXIgZCBpbiBoJiYoaC50aW1lci5jPW51bGwsaC50aW1lci50PU5hTiwtLXUuY291bnQsZGVsZXRlIHVbaV0saC5ldmVudCYmaC5ldmVudC5pbnRlcnJ1cHQuY2FsbCh0LHQuX19kYXRhX18saC5pbmRleCkpLHUpaWYoK2Q8bil7dmFyIG09dVtkXTttLnRpbWVyLmM9bnVsbCxtLnRpbWVyLnQ9TmFOLC0tdS5jb3VudCxkZWxldGUgdVtkXX1vLmM9cCx2ZSgoZnVuY3Rpb24oKXtyZXR1cm4gby5jJiZwKHJ8fDEpJiYoby5jPW51bGwsby50PU5hTiksMX0pLDAsYSksdS5hY3RpdmU9bixmLmV2ZW50JiZmLmV2ZW50LnN0YXJ0LmNhbGwodCx0Ll9fZGF0YV9fLGUpLGM9W10sZi50d2Vlbi5mb3JFYWNoKChmdW5jdGlvbihyLG4peyhuPW4uY2FsbCh0LHQuX19kYXRhX18sZSkpJiZjLnB1c2gobil9KSksbD1mLmVhc2Uscz1mLmR1cmF0aW9ufWZ1bmN0aW9uIHAoaSl7Zm9yKHZhciBhPWkvcyxvPWwoYSksaD1jLmxlbmd0aDtoPjA7KWNbLS1oXS5jYWxsKHQsbyk7aWYoYT49MSlyZXR1cm4gZi5ldmVudCYmZi5ldmVudC5lbmQuY2FsbCh0LHQuX19kYXRhX18sZSksLS11LmNvdW50P2RlbGV0ZSB1W25dOmRlbGV0ZSB0W3JdLDF9Znx8KGE9aS50aW1lLG89dmUoKGZ1bmN0aW9uKHQpe3ZhciBlPWYuZGVsYXk7aWYoby50PWUrYSxlPD10KXJldHVybiBoKHQtZSk7by5jPWh9KSwwLGEpLGY9dVtuXT17dHdlZW46bmV3IF8sdGltZTphLHRpbWVyOm8sZGVsYXk6aS5kZWxheSxkdXJhdGlvbjppLmR1cmF0aW9uLGVhc2U6aS5lYXNlLGluZGV4OmV9LGk9bnVsbCwrK3UuY291bnQpfWppLmNhbGw9WS5jYWxsLGppLmVtcHR5PVkuZW1wdHksamkubm9kZT1ZLm5vZGUsamkuc2l6ZT1ZLnNpemUsdC50cmFuc2l0aW9uPWZ1bmN0aW9uKGUscil7cmV0dXJuIGUmJmUudHJhbnNpdGlvbj9CaT9lLnRyYW5zaXRpb24ocik6ZTp0LnNlbGVjdGlvbigpLnRyYW5zaXRpb24oZSl9LHQudHJhbnNpdGlvbi5wcm90b3R5cGU9amksamkuc2VsZWN0PWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixpPXRoaXMuaWQsYT10aGlzLm5hbWVzcGFjZSxvPVtdO3Q9Vyh0KTtmb3IodmFyIHM9LTEsbD10aGlzLmxlbmd0aDsrK3M8bDspe28ucHVzaChlPVtdKTtmb3IodmFyIGM9dGhpc1tzXSx1PS0xLGY9Yy5sZW5ndGg7Kyt1PGY7KShuPWNbdV0pJiYocj10LmNhbGwobixuLl9fZGF0YV9fLHUscykpPygiX19kYXRhX18iaW4gbiYmKHIuX19kYXRhX189bi5fX2RhdGFfXyksR2kocix1LGEsaSxuW2FdW2ldKSxlLnB1c2gocikpOmUucHVzaChudWxsKX1yZXR1cm4gRmkobyxhLGkpfSxqaS5zZWxlY3RBbGw9ZnVuY3Rpb24odCl7dmFyIGUscixuLGksYSxvPXRoaXMuaWQscz10aGlzLm5hbWVzcGFjZSxsPVtdO3Q9WCh0KTtmb3IodmFyIGM9LTEsdT10aGlzLmxlbmd0aDsrK2M8dTspZm9yKHZhciBmPXRoaXNbY10saD0tMSxwPWYubGVuZ3RoOysraDxwOylpZihuPWZbaF0pe2E9bltzXVtvXSxyPXQuY2FsbChuLG4uX19kYXRhX18saCxjKSxsLnB1c2goZT1bXSk7Zm9yKHZhciBkPS0xLG09ci5sZW5ndGg7KytkPG07KShpPXJbZF0pJiZHaShpLGQscyxvLGEpLGUucHVzaChpKX1yZXR1cm4gRmkobCxzLG8pfSxqaS5maWx0ZXI9ZnVuY3Rpb24odCl7dmFyIGUscixuPVtdOyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD1sdCh0KSk7Zm9yKHZhciBpPTAsYT10aGlzLmxlbmd0aDtpPGE7aSsrKXtuLnB1c2goZT1bXSk7Zm9yKHZhciBvLHM9MCxsPShvPXRoaXNbaV0pLmxlbmd0aDtzPGw7cysrKShyPW9bc10pJiZ0LmNhbGwocixyLl9fZGF0YV9fLHMsaSkmJmUucHVzaChyKX1yZXR1cm4gRmkobix0aGlzLm5hbWVzcGFjZSx0aGlzLmlkKX0samkudHdlZW49ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmlkLG49dGhpcy5uYW1lc3BhY2U7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj90aGlzLm5vZGUoKVtuXVtyXS50d2Vlbi5nZXQodCk6dXQodGhpcyxudWxsPT1lP2Z1bmN0aW9uKGUpe2Vbbl1bcl0udHdlZW4ucmVtb3ZlKHQpfTpmdW5jdGlvbihpKXtpW25dW3JdLnR3ZWVuLnNldCh0LGUpfSl9LGppLmF0dHI9ZnVuY3Rpb24oZSxyKXtpZihhcmd1bWVudHMubGVuZ3RoPDIpe2ZvcihyIGluIGUpdGhpcy5hdHRyKHIsZVtyXSk7cmV0dXJuIHRoaXN9dmFyIG49InRyYW5zZm9ybSI9PWU/TnI6eXIsaT10Lm5zLnF1YWxpZnkoZSk7ZnVuY3Rpb24gYSgpe3RoaXMucmVtb3ZlQXR0cmlidXRlKGkpfWZ1bmN0aW9uIG8oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKGkuc3BhY2UsaS5sb2NhbCl9ZnVuY3Rpb24gcyh0KXtyZXR1cm4gbnVsbD09dD9hOih0Kz0iIixmdW5jdGlvbigpe3ZhciBlLHI9dGhpcy5nZXRBdHRyaWJ1dGUoaSk7cmV0dXJuIHIhPT10JiYoZT1uKHIsdCksZnVuY3Rpb24odCl7dGhpcy5zZXRBdHRyaWJ1dGUoaSxlKHQpKX0pfSl9ZnVuY3Rpb24gbCh0KXtyZXR1cm4gbnVsbD09dD9vOih0Kz0iIixmdW5jdGlvbigpe3ZhciBlLHI9dGhpcy5nZXRBdHRyaWJ1dGVOUyhpLnNwYWNlLGkubG9jYWwpO3JldHVybiByIT09dCYmKGU9bihyLHQpLGZ1bmN0aW9uKHQpe3RoaXMuc2V0QXR0cmlidXRlTlMoaS5zcGFjZSxpLmxvY2FsLGUodCkpfSl9KX1yZXR1cm4gVmkodGhpcywiYXR0ci4iK2UscixpLmxvY2FsP2w6cyl9LGppLmF0dHJUd2Vlbj1mdW5jdGlvbihlLHIpe3ZhciBuPXQubnMucXVhbGlmeShlKTtyZXR1cm4gdGhpcy50d2VlbigiYXR0ci4iK2Usbi5sb2NhbD9mdW5jdGlvbih0LGUpe3ZhciBpPXIuY2FsbCh0aGlzLHQsZSx0aGlzLmdldEF0dHJpYnV0ZU5TKG4uc3BhY2Usbi5sb2NhbCkpO3JldHVybiBpJiZmdW5jdGlvbih0KXt0aGlzLnNldEF0dHJpYnV0ZU5TKG4uc3BhY2Usbi5sb2NhbCxpKHQpKX19OmZ1bmN0aW9uKHQsZSl7dmFyIGk9ci5jYWxsKHRoaXMsdCxlLHRoaXMuZ2V0QXR0cmlidXRlKG4pKTtyZXR1cm4gaSYmZnVuY3Rpb24odCl7dGhpcy5zZXRBdHRyaWJ1dGUobixpKHQpKX19KX0samkuc3R5bGU9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg7aWYobjwzKXtpZigic3RyaW5nIiE9dHlwZW9mIHQpe2ZvcihyIGluIG48MiYmKGU9IiIpLHQpdGhpcy5zdHlsZShyLHRbcl0sZSk7cmV0dXJuIHRoaXN9cj0iIn1mdW5jdGlvbiBpKCl7dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KX1mdW5jdGlvbiBhKGUpe3JldHVybiBudWxsPT1lP2k6KGUrPSIiLGZ1bmN0aW9uKCl7dmFyIG4saT1vKHRoaXMpLmdldENvbXB1dGVkU3R5bGUodGhpcyxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKHQpO3JldHVybiBpIT09ZSYmKG49eXIoaSxlKSxmdW5jdGlvbihlKXt0aGlzLnN0eWxlLnNldFByb3BlcnR5KHQsbihlKSxyKX0pfSl9cmV0dXJuIFZpKHRoaXMsInN0eWxlLiIrdCxlLGEpfSxqaS5zdHlsZVR3ZWVuPWZ1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBuKG4saSl7dmFyIGE9ZS5jYWxsKHRoaXMsbixpLG8odGhpcykuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLG51bGwpLmdldFByb3BlcnR5VmFsdWUodCkpO3JldHVybiBhJiZmdW5jdGlvbihlKXt0aGlzLnN0eWxlLnNldFByb3BlcnR5KHQsYShlKSxyKX19cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8MyYmKHI9IiIpLHRoaXMudHdlZW4oInN0eWxlLiIrdCxuKX0samkudGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gVmkodGhpcywidGV4dCIsdCxIaSl9LGppLnJlbW92ZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMubmFtZXNwYWNlO3JldHVybiB0aGlzLmVhY2goImVuZC50cmFuc2l0aW9uIiwoZnVuY3Rpb24oKXt2YXIgZTt0aGlzW3RdLmNvdW50PDImJihlPXRoaXMucGFyZW50Tm9kZSkmJmUucmVtb3ZlQ2hpbGQodGhpcyl9KSl9LGppLmVhc2U9ZnVuY3Rpb24oZSl7dmFyIHI9dGhpcy5pZCxuPXRoaXMubmFtZXNwYWNlO3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDE/dGhpcy5ub2RlKClbbl1bcl0uZWFzZTooImZ1bmN0aW9uIiE9dHlwZW9mIGUmJihlPXQuZWFzZS5hcHBseSh0LGFyZ3VtZW50cykpLHV0KHRoaXMsKGZ1bmN0aW9uKHQpe3Rbbl1bcl0uZWFzZT1lfSkpKX0samkuZGVsYXk9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5pZCxyPXRoaXMubmFtZXNwYWNlO3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDE/dGhpcy5ub2RlKClbcl1bZV0uZGVsYXk6dXQodGhpcywiZnVuY3Rpb24iPT10eXBlb2YgdD9mdW5jdGlvbihuLGksYSl7bltyXVtlXS5kZWxheT0rdC5jYWxsKG4sbi5fX2RhdGFfXyxpLGEpfToodD0rdCxmdW5jdGlvbihuKXtuW3JdW2VdLmRlbGF5PXR9KSl9LGppLmR1cmF0aW9uPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaWQscj10aGlzLm5hbWVzcGFjZTtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwxP3RoaXMubm9kZSgpW3JdW2VdLmR1cmF0aW9uOnV0KHRoaXMsImZ1bmN0aW9uIj09dHlwZW9mIHQ/ZnVuY3Rpb24obixpLGEpe25bcl1bZV0uZHVyYXRpb249TWF0aC5tYXgoMSx0LmNhbGwobixuLl9fZGF0YV9fLGksYSkpfToodD1NYXRoLm1heCgxLHQpLGZ1bmN0aW9uKG4pe25bcl1bZV0uZHVyYXRpb249dH0pKX0samkuZWFjaD1mdW5jdGlvbihlLHIpe3ZhciBuPXRoaXMuaWQsaT10aGlzLm5hbWVzcGFjZTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe3ZhciBhPU5pLG89Qmk7dHJ5e0JpPW4sdXQodGhpcywoZnVuY3Rpb24odCxyLGEpe05pPXRbaV1bbl0sZS5jYWxsKHQsdC5fX2RhdGFfXyxyLGEpfSkpfWZpbmFsbHl7Tmk9YSxCaT1vfX1lbHNlIHV0KHRoaXMsKGZ1bmN0aW9uKGEpe3ZhciBvPWFbaV1bbl07KG8uZXZlbnR8fChvLmV2ZW50PXQuZGlzcGF0Y2goInN0YXJ0IiwiZW5kIiwiaW50ZXJydXB0IikpKS5vbihlLHIpfSkpO3JldHVybiB0aGlzfSxqaS50cmFuc2l0aW9uPWZ1bmN0aW9uKCl7Zm9yKHZhciB0LGUscixuPXRoaXMuaWQsaT0rK1VpLGE9dGhpcy5uYW1lc3BhY2Usbz1bXSxzPTAsbD10aGlzLmxlbmd0aDtzPGw7cysrKXtvLnB1c2godD1bXSk7Zm9yKHZhciBjLHU9MCxmPShjPXRoaXNbc10pLmxlbmd0aDt1PGY7dSsrKShlPWNbdV0pJiZHaShlLHUsYSxpLHt0aW1lOihyPWVbYV1bbl0pLnRpbWUsZWFzZTpyLmVhc2UsZGVsYXk6ci5kZWxheStyLmR1cmF0aW9uLGR1cmF0aW9uOnIuZHVyYXRpb259KSx0LnB1c2goZSl9cmV0dXJuIEZpKG8sYSxpKX0sdC5zdmcuYXhpcz1mdW5jdGlvbigpe3ZhciBlLHI9dC5zY2FsZS5saW5lYXIoKSxpPVlpLGE9NixvPTYscz0zLGw9WzEwXSxjPW51bGw7ZnVuY3Rpb24gdShuKXtuLmVhY2goKGZ1bmN0aW9uKCl7dmFyIG4sdT10LnNlbGVjdCh0aGlzKSxmPXRoaXMuX19jaGFydF9ffHxyLGg9dGhpcy5fX2NoYXJ0X189ci5jb3B5KCkscD1udWxsPT1jP2gudGlja3M/aC50aWNrcy5hcHBseShoLGwpOmguZG9tYWluKCk6YyxkPW51bGw9PWU/aC50aWNrRm9ybWF0P2gudGlja0Zvcm1hdC5hcHBseShoLGwpOkM6ZSxtPXUuc2VsZWN0QWxsKCIudGljayIpLmRhdGEocCxoKSxnPW0uZW50ZXIoKS5pbnNlcnQoImciLCIuZG9tYWluIikuYXR0cigiY2xhc3MiLCJ0aWNrIikuc3R5bGUoIm9wYWNpdHkiLGt0KSx2PXQudHJhbnNpdGlvbihtLmV4aXQoKSkuc3R5bGUoIm9wYWNpdHkiLGt0KS5yZW1vdmUoKSx5PXQudHJhbnNpdGlvbihtLm9yZGVyKCkpLnN0eWxlKCJvcGFjaXR5IiwxKSx4PU1hdGgubWF4KGEsMCkrcyxiPURuKGgpLF89dS5zZWxlY3RBbGwoIi5kb21haW4iKS5kYXRhKFswXSksdz0oXy5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmF0dHIoImNsYXNzIiwiZG9tYWluIiksdC50cmFuc2l0aW9uKF8pKTtnLmFwcGVuZCgibGluZSIpLGcuYXBwZW5kKCJ0ZXh0Iik7dmFyIFQsayxBLE0sUz1nLnNlbGVjdCgibGluZSIpLEU9eS5zZWxlY3QoImxpbmUiKSxMPW0uc2VsZWN0KCJ0ZXh0IikudGV4dChkKSxQPWcuc2VsZWN0KCJ0ZXh0IiksST15LnNlbGVjdCgidGV4dCIpLE89InRvcCI9PT1pfHwibGVmdCI9PT1pPy0xOjE7aWYoImJvdHRvbSI9PT1pfHwidG9wIj09PWk/KG49WGksVD0ieCIsQT0ieSIsaz0ieDIiLE09InkyIixMLmF0dHIoImR5IixPPDA/IjBlbSI6Ii43MWVtIikuc3R5bGUoInRleHQtYW5jaG9yIiwibWlkZGxlIiksdy5hdHRyKCJkIiwiTSIrYlswXSsiLCIrTypvKyJWMEgiK2JbMV0rIlYiK08qbykpOihuPVppLFQ9InkiLEE9IngiLGs9InkyIixNPSJ4MiIsTC5hdHRyKCJkeSIsIi4zMmVtIikuc3R5bGUoInRleHQtYW5jaG9yIixPPDA/ImVuZCI6InN0YXJ0Iiksdy5hdHRyKCJkIiwiTSIrTypvKyIsIitiWzBdKyJIMFYiK2JbMV0rIkgiK08qbykpLFMuYXR0cihNLE8qYSksUC5hdHRyKEEsTyp4KSxFLmF0dHIoaywwKS5hdHRyKE0sTyphKSxJLmF0dHIoVCwwKS5hdHRyKEEsTyp4KSxoLnJhbmdlQmFuZCl7dmFyIHo9aCxEPXoucmFuZ2VCYW5kKCkvMjtmPWg9ZnVuY3Rpb24odCl7cmV0dXJuIHoodCkrRH19ZWxzZSBmLnJhbmdlQmFuZD9mPWg6di5jYWxsKG4saCxmKTtnLmNhbGwobixmLGgpLHkuY2FsbChuLGgsaCl9KSl9cmV0dXJuIHUuc2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dCx1KTpyfSx1Lm9yaWVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT10IGluIFdpP3QrIiI6WWksdSk6aX0sdS50aWNrcz1mdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPW4oYXJndW1lbnRzKSx1KTpsfSx1LnRpY2tWYWx1ZXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9dCx1KTpjfSx1LnRpY2tGb3JtYXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCx1KTplfSx1LnRpY2tTaXplPWZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg7cmV0dXJuIGU/KGE9K3Qsbz0rYXJndW1lbnRzW2UtMV0sdSk6YX0sdS5pbm5lclRpY2tTaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSt0LHUpOmF9LHUub3V0ZXJUaWNrU2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0rdCx1KTpvfSx1LnRpY2tQYWRkaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPSt0LHUpOnN9LHUudGlja1N1YmRpdmlkZT1mdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoJiZ1fSx1fTt2YXIgWWk9ImJvdHRvbSIsV2k9e3RvcDoxLHJpZ2h0OjEsYm90dG9tOjEsbGVmdDoxfTtmdW5jdGlvbiBYaSh0LGUscil7dC5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbih0KXt2YXIgbj1lKHQpO3JldHVybiJ0cmFuc2xhdGUoIisoaXNGaW5pdGUobik/bjpyKHQpKSsiLDApIn0pKX1mdW5jdGlvbiBaaSh0LGUscil7dC5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbih0KXt2YXIgbj1lKHQpO3JldHVybiJ0cmFuc2xhdGUoMCwiKyhpc0Zpbml0ZShuKT9uOnIodCkpKyIpIn0pKX10LnN2Zy5icnVzaD1mdW5jdGlvbigpe3ZhciBlLHIsbj1OKGgsImJydXNoc3RhcnQiLCJicnVzaCIsImJydXNoZW5kIiksaT1udWxsLGE9bnVsbCxzPVswLDBdLGw9WzAsMF0sYz0hMCx1PSEwLGY9S2lbMF07ZnVuY3Rpb24gaChlKXtlLmVhY2goKGZ1bmN0aW9uKCl7dmFyIGU9dC5zZWxlY3QodGhpcykuc3R5bGUoInBvaW50ZXItZXZlbnRzIiwiYWxsIikuc3R5bGUoIi13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvciIsInJnYmEoMCwwLDAsMCkiKS5vbigibW91c2Vkb3duLmJydXNoIixnKS5vbigidG91Y2hzdGFydC5icnVzaCIsZykscj1lLnNlbGVjdEFsbCgiLmJhY2tncm91bmQiKS5kYXRhKFswXSk7ci5lbnRlcigpLmFwcGVuZCgicmVjdCIpLmF0dHIoImNsYXNzIiwiYmFja2dyb3VuZCIpLnN0eWxlKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIikuc3R5bGUoImN1cnNvciIsImNyb3NzaGFpciIpLGUuc2VsZWN0QWxsKCIuZXh0ZW50IikuZGF0YShbMF0pLmVudGVyKCkuYXBwZW5kKCJyZWN0IikuYXR0cigiY2xhc3MiLCJleHRlbnQiKS5zdHlsZSgiY3Vyc29yIiwibW92ZSIpO3ZhciBuPWUuc2VsZWN0QWxsKCIucmVzaXplIikuZGF0YShmLEMpO24uZXhpdCgpLnJlbW92ZSgpLG4uZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsKGZ1bmN0aW9uKHQpe3JldHVybiJyZXNpemUgIit0fSkpLnN0eWxlKCJjdXJzb3IiLChmdW5jdGlvbih0KXtyZXR1cm4gSmlbdF19KSkuYXBwZW5kKCJyZWN0IikuYXR0cigieCIsKGZ1bmN0aW9uKHQpe3JldHVybi9bZXddJC8udGVzdCh0KT8tMzpudWxsfSkpLmF0dHIoInkiLChmdW5jdGlvbih0KXtyZXR1cm4vXltuc10vLnRlc3QodCk/LTM6bnVsbH0pKS5hdHRyKCJ3aWR0aCIsNikuYXR0cigiaGVpZ2h0Iiw2KS5zdHlsZSgidmlzaWJpbGl0eSIsImhpZGRlbiIpLG4uc3R5bGUoImRpc3BsYXkiLGguZW1wdHkoKT8ibm9uZSI6bnVsbCk7dmFyIG8scz10LnRyYW5zaXRpb24oZSksbD10LnRyYW5zaXRpb24ocik7aSYmKG89RG4oaSksbC5hdHRyKCJ4IixvWzBdKS5hdHRyKCJ3aWR0aCIsb1sxXS1vWzBdKSxkKHMpKSxhJiYobz1EbihhKSxsLmF0dHIoInkiLG9bMF0pLmF0dHIoImhlaWdodCIsb1sxXS1vWzBdKSxtKHMpKSxwKHMpfSkpfWZ1bmN0aW9uIHAodCl7dC5zZWxlY3RBbGwoIi5yZXNpemUiKS5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbih0KXtyZXR1cm4idHJhbnNsYXRlKCIrc1srL2UkLy50ZXN0KHQpXSsiLCIrbFsrL15zLy50ZXN0KHQpXSsiKSJ9KSl9ZnVuY3Rpb24gZCh0KXt0LnNlbGVjdCgiLmV4dGVudCIpLmF0dHIoIngiLHNbMF0pLHQuc2VsZWN0QWxsKCIuZXh0ZW50LC5uPnJlY3QsLnM+cmVjdCIpLmF0dHIoIndpZHRoIixzWzFdLXNbMF0pfWZ1bmN0aW9uIG0odCl7dC5zZWxlY3QoIi5leHRlbnQiKS5hdHRyKCJ5IixsWzBdKSx0LnNlbGVjdEFsbCgiLmV4dGVudCwuZT5yZWN0LC53PnJlY3QiKS5hdHRyKCJoZWlnaHQiLGxbMV0tbFswXSl9ZnVuY3Rpb24gZygpe3ZhciBmLGcsdj10aGlzLHk9dC5zZWxlY3QodC5ldmVudC50YXJnZXQpLHg9bi5vZih2LGFyZ3VtZW50cyksYj10LnNlbGVjdCh2KSxfPXkuZGF0dW0oKSx3PSEvXihufHMpJC8udGVzdChfKSYmaSxUPSEvXihlfHcpJC8udGVzdChfKSYmYSxrPXkuY2xhc3NlZCgiZXh0ZW50IiksQT1idCh2KSxNPXQubW91c2UodiksUz10LnNlbGVjdChvKHYpKS5vbigia2V5ZG93bi5icnVzaCIsQykub24oImtleXVwLmJydXNoIixQKTtpZih0LmV2ZW50LmNoYW5nZWRUb3VjaGVzP1Mub24oInRvdWNobW92ZS5icnVzaCIsSSkub24oInRvdWNoZW5kLmJydXNoIix6KTpTLm9uKCJtb3VzZW1vdmUuYnJ1c2giLEkpLm9uKCJtb3VzZXVwLmJydXNoIix6KSxiLmludGVycnVwdCgpLnNlbGVjdEFsbCgiKiIpLmludGVycnVwdCgpLGspTVswXT1zWzBdLU1bMF0sTVsxXT1sWzBdLU1bMV07ZWxzZSBpZihfKXt2YXIgRT0rL3ckLy50ZXN0KF8pLEw9Ky9ebi8udGVzdChfKTtnPVtzWzEtRV0tTVswXSxsWzEtTF0tTVsxXV0sTVswXT1zW0VdLE1bMV09bFtMXX1lbHNlIHQuZXZlbnQuYWx0S2V5JiYoZj1NLnNsaWNlKCkpO2Z1bmN0aW9uIEMoKXszMj09dC5ldmVudC5rZXlDb2RlJiYoa3x8KGY9bnVsbCxNWzBdLT1zWzFdLE1bMV0tPWxbMV0saz0yKSxGKCkpfWZ1bmN0aW9uIFAoKXszMj09dC5ldmVudC5rZXlDb2RlJiYyPT1rJiYoTVswXSs9c1sxXSxNWzFdKz1sWzFdLGs9MCxGKCkpfWZ1bmN0aW9uIEkoKXt2YXIgZT10Lm1vdXNlKHYpLHI9ITE7ZyYmKGVbMF0rPWdbMF0sZVsxXSs9Z1sxXSksa3x8KHQuZXZlbnQuYWx0S2V5PyhmfHwoZj1bKHNbMF0rc1sxXSkvMiwobFswXStsWzFdKS8yXSksTVswXT1zWysoZVswXTxmWzBdKV0sTVsxXT1sWysoZVsxXTxmWzFdKV0pOmY9bnVsbCksdyYmTyhlLGksMCkmJihkKGIpLHI9ITApLFQmJk8oZSxhLDEpJiYobShiKSxyPSEwKSxyJiYocChiKSx4KHt0eXBlOiJicnVzaCIsbW9kZTprPyJtb3ZlIjoicmVzaXplIn0pKX1mdW5jdGlvbiBPKHQsbixpKXt2YXIgYSxvLGg9RG4obikscD1oWzBdLGQ9aFsxXSxtPU1baV0sZz1pP2w6cyx2PWdbMV0tZ1swXTtpZihrJiYocC09bSxkLT12K20pLGE9KGk/dTpjKT9NYXRoLm1heChwLE1hdGgubWluKGQsdFtpXSkpOnRbaV0saz9vPShhKz1tKSt2OihmJiYobT1NYXRoLm1heChwLE1hdGgubWluKGQsMipmW2ldLWEpKSksbTxhPyhvPWEsYT1tKTpvPW0pLGdbMF0hPWF8fGdbMV0hPW8pcmV0dXJuIGk/cj1udWxsOmU9bnVsbCxnWzBdPWEsZ1sxXT1vLCEwfWZ1bmN0aW9uIHooKXtJKCksYi5zdHlsZSgicG9pbnRlci1ldmVudHMiLCJhbGwiKS5zZWxlY3RBbGwoIi5yZXNpemUiKS5zdHlsZSgiZGlzcGxheSIsaC5lbXB0eSgpPyJub25lIjpudWxsKSx0LnNlbGVjdCgiYm9keSIpLnN0eWxlKCJjdXJzb3IiLG51bGwpLFMub24oIm1vdXNlbW92ZS5icnVzaCIsbnVsbCkub24oIm1vdXNldXAuYnJ1c2giLG51bGwpLm9uKCJ0b3VjaG1vdmUuYnJ1c2giLG51bGwpLm9uKCJ0b3VjaGVuZC5icnVzaCIsbnVsbCkub24oImtleWRvd24uYnJ1c2giLG51bGwpLm9uKCJrZXl1cC5icnVzaCIsbnVsbCksQSgpLHgoe3R5cGU6ImJydXNoZW5kIn0pfWIuc3R5bGUoInBvaW50ZXItZXZlbnRzIiwibm9uZSIpLnNlbGVjdEFsbCgiLnJlc2l6ZSIpLnN0eWxlKCJkaXNwbGF5IixudWxsKSx0LnNlbGVjdCgiYm9keSIpLnN0eWxlKCJjdXJzb3IiLHkuc3R5bGUoImN1cnNvciIpKSx4KHt0eXBlOiJicnVzaHN0YXJ0In0pLEkoKX1yZXR1cm4gaC5ldmVudD1mdW5jdGlvbihpKXtpLmVhY2goKGZ1bmN0aW9uKCl7dmFyIGk9bi5vZih0aGlzLGFyZ3VtZW50cyksYT17eDpzLHk6bCxpOmUsajpyfSxvPXRoaXMuX19jaGFydF9ffHxhO3RoaXMuX19jaGFydF9fPWEsQmk/dC5zZWxlY3QodGhpcykudHJhbnNpdGlvbigpLmVhY2goInN0YXJ0LmJydXNoIiwoZnVuY3Rpb24oKXtlPW8uaSxyPW8uaixzPW8ueCxsPW8ueSxpKHt0eXBlOiJicnVzaHN0YXJ0In0pfSkpLnR3ZWVuKCJicnVzaDpicnVzaCIsKGZ1bmN0aW9uKCl7dmFyIHQ9eHIocyxhLngpLG49eHIobCxhLnkpO3JldHVybiBlPXI9bnVsbCxmdW5jdGlvbihlKXtzPWEueD10KGUpLGw9YS55PW4oZSksaSh7dHlwZToiYnJ1c2giLG1vZGU6InJlc2l6ZSJ9KX19KSkuZWFjaCgiZW5kLmJydXNoIiwoZnVuY3Rpb24oKXtlPWEuaSxyPWEuaixpKHt0eXBlOiJicnVzaCIsbW9kZToicmVzaXplIn0pLGkoe3R5cGU6ImJydXNoZW5kIn0pfSkpOihpKHt0eXBlOiJicnVzaHN0YXJ0In0pLGkoe3R5cGU6ImJydXNoIixtb2RlOiJyZXNpemUifSksaSh7dHlwZToiYnJ1c2hlbmQifSkpfSkpfSxoLng9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9S2lbIShpPXQpPDwxfCFhXSxoKTppfSxoLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9S2lbIWk8PDF8IShhPXQpXSxoKTphfSxoLmNsYW1wPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpJiZhPyhjPSEhdFswXSx1PSEhdFsxXSk6aT9jPSEhdDphJiYodT0hIXQpLGgpOmkmJmE/W2MsdV06aT9jOmE/dTpudWxsfSxoLmV4dGVudD1mdW5jdGlvbih0KXt2YXIgbixvLGMsdSxmO3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpJiYobj10WzBdLG89dFsxXSxhJiYobj1uWzBdLG89b1swXSksZT1bbixvXSxpLmludmVydCYmKG49aShuKSxvPWkobykpLG88biYmKGY9bixuPW8sbz1mKSxuPT1zWzBdJiZvPT1zWzFdfHwocz1bbixvXSkpLGEmJihjPXRbMF0sdT10WzFdLGkmJihjPWNbMV0sdT11WzFdKSxyPVtjLHVdLGEuaW52ZXJ0JiYoYz1hKGMpLHU9YSh1KSksdTxjJiYoZj1jLGM9dSx1PWYpLGM9PWxbMF0mJnU9PWxbMV18fChsPVtjLHVdKSksaCk6KGkmJihlPyhuPWVbMF0sbz1lWzFdKToobj1zWzBdLG89c1sxXSxpLmludmVydCYmKG49aS5pbnZlcnQobiksbz1pLmludmVydChvKSksbzxuJiYoZj1uLG49byxvPWYpKSksYSYmKHI/KGM9clswXSx1PXJbMV0pOihjPWxbMF0sdT1sWzFdLGEuaW52ZXJ0JiYoYz1hLmludmVydChjKSx1PWEuaW52ZXJ0KHUpKSx1PGMmJihmPWMsYz11LHU9ZikpKSxpJiZhP1tbbixjXSxbbyx1XV06aT9bbixvXTphJiZbYyx1XSl9LGguY2xlYXI9ZnVuY3Rpb24oKXtyZXR1cm4gaC5lbXB0eSgpfHwocz1bMCwwXSxsPVswLDBdLGU9cj1udWxsKSxofSxoLmVtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuISFpJiZzWzBdPT1zWzFdfHwhIWEmJmxbMF09PWxbMV19LHQucmViaW5kKGgsbiwib24iKX07dmFyIEppPXtuOiJucy1yZXNpemUiLGU6ImV3LXJlc2l6ZSIsczoibnMtcmVzaXplIix3OiJldy1yZXNpemUiLG53OiJud3NlLXJlc2l6ZSIsbmU6Im5lc3ctcmVzaXplIixzZToibndzZS1yZXNpemUiLHN3OiJuZXN3LXJlc2l6ZSJ9LEtpPVtbIm4iLCJlIiwicyIsInciLCJudyIsIm5lIiwic2UiLCJzdyJdLFsiZSIsInciXSxbIm4iLCJzIl0sW11dO2Z1bmN0aW9uIFFpKHQpe3JldHVybiBKU09OLnBhcnNlKHQucmVzcG9uc2VUZXh0KX1mdW5jdGlvbiAkaSh0KXt2YXIgZT1pLmNyZWF0ZVJhbmdlKCk7cmV0dXJuIGUuc2VsZWN0Tm9kZShpLmJvZHkpLGUuY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KHQucmVzcG9uc2VUZXh0KX10LnRleHQ9dWUoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlc3BvbnNlVGV4dH0pKSx0Lmpzb249ZnVuY3Rpb24odCxlKXtyZXR1cm4gZmUodCwiYXBwbGljYXRpb24vanNvbiIsUWksZSl9LHQuaHRtbD1mdW5jdGlvbih0LGUpe3JldHVybiBmZSh0LCJ0ZXh0L2h0bWwiLCRpLGUpfSx0LnhtbD11ZSgoZnVuY3Rpb24odCl7cmV0dXJuIHQucmVzcG9uc2VYTUx9KSksIm9iamVjdCI9PXR5cGVvZiBlJiZlLmV4cG9ydHM/ZS5leHBvcnRzPXQ6dGhpcy5kMz10fSkuYXBwbHkoc2VsZil9LHt9XSw1OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi9xdWFkIil9LHsiLi9xdWFkIjo2MH1dLDYwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImJpbmFyeS1zZWFyY2gtYm91bmRzIiksaT10KCJjbGFtcCIpLGE9dCgicGFyc2UtcmVjdCIpLG89dCgiYXJyYXktYm91bmRzIikscz10KCJwaWNrLWJ5LWFsaWFzIiksbD10KCJkZWZpbmVkIiksYz10KCJmbGF0dGVuLXZlcnRleC1kYXRhIiksdT10KCJpcy1vYmoiKSxmPXQoImR0eXBlIiksaD10KCJtYXRoLWxvZzIiKTtmdW5jdGlvbiBwKHQsZSl7Zm9yKHZhciByPWVbMF0sbj1lWzFdLGE9MS8oZVsyXS1yKSxvPTEvKGVbM10tbikscz1uZXcgQXJyYXkodC5sZW5ndGgpLGw9MCxjPXQubGVuZ3RoLzI7bDxjO2wrKylzWzIqbF09aSgodFsyKmxdLXIpKmEsMCwxKSxzWzIqbCsxXT1pKCh0WzIqbCsxXS1uKSpvLDAsMSk7cmV0dXJuIHN9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7ZXx8KGU9e30pLHQ9Yyh0LCJmbG9hdDY0IiksZT1zKGUse2JvdW5kczoicmFuZ2UgYm91bmRzIGRhdGFCb3ggZGF0YWJveCIsbWF4RGVwdGg6ImRlcHRoIG1heERlcHRoIG1heGRlcHRoIGxldmVsIG1heExldmVsIG1heGxldmVsIGxldmVscyIsZHR5cGU6InR5cGUgZHR5cGUgZm9ybWF0IG91dCBkc3Qgb3V0cHV0IGRlc3RpbmF0aW9uIn0pO3ZhciByPWwoZS5tYXhEZXB0aCwyNTUpLGk9bChlLmJvdW5kcyxvKHQsMikpO2lbMF09PT1pWzJdJiZpWzJdKyssaVsxXT09PWlbM10mJmlbM10rKzt2YXIgZCxtPXAodCxpKSxnPXQubGVuZ3RoPj4+MTtlLmR0eXBlfHwoZS5kdHlwZT0iYXJyYXkiKSwic3RyaW5nIj09dHlwZW9mIGUuZHR5cGU/ZD1uZXcoZihlLmR0eXBlKSkoZyk6ZS5kdHlwZSYmKGQ9ZS5kdHlwZSxBcnJheS5pc0FycmF5KGQpJiYoZC5sZW5ndGg9ZykpO2Zvcih2YXIgdj0wO3Y8ZzsrK3YpZFt2XT12O3ZhciB5PVtdLHg9W10sYj1bXSxfPVtdOyFmdW5jdGlvbiB0KGUsbixpLGEsbyxzKXtpZighYS5sZW5ndGgpcmV0dXJuIG51bGw7dmFyIGw9eVtvXXx8KHlbb109W10pLGM9YltvXXx8KGJbb109W10pLHU9eFtvXXx8KHhbb109W10pLGY9bC5sZW5ndGg7aWYoKytvPnJ8fHM+MTA3Mzc0MTgyNCl7Zm9yKHZhciBoPTA7aDxhLmxlbmd0aDtoKyspbC5wdXNoKGFbaF0pLGMucHVzaChzKSx1LnB1c2gobnVsbCxudWxsLG51bGwsbnVsbCk7cmV0dXJuIGZ9aWYobC5wdXNoKGFbMF0pLGMucHVzaChzKSxhLmxlbmd0aDw9MSlyZXR1cm4gdS5wdXNoKG51bGwsbnVsbCxudWxsLG51bGwpLGY7Zm9yKHZhciBwPS41KmksZD1lK3AsZz1uK3Asdj1bXSxfPVtdLHc9W10sVD1bXSxrPTEsQT1hLmxlbmd0aDtrPEE7aysrKXt2YXIgTT1hW2tdLFM9bVsyKk1dLEU9bVsyKk0rMV07UzxkP0U8Zz92LnB1c2goTSk6Xy5wdXNoKE0pOkU8Zz93LnB1c2goTSk6VC5wdXNoKE0pfXJldHVybiBzPDw9Mix1LnB1c2godChlLG4scCx2LG8scyksdChlLGcscCxfLG8scysxKSx0KGQsbixwLHcsbyxzKzIpLHQoZCxnLHAsVCxvLHMrMykpLGZ9KDAsMCwxLGQsMCwxKTtmb3IodmFyIHc9MCxUPTA7VDx5Lmxlbmd0aDtUKyspe3ZhciBrPXlbVF07aWYoZC5zZXQpZC5zZXQoayx3KTtlbHNlIGZvcih2YXIgQT0wLE09ay5sZW5ndGg7QTxNO0ErKylkW0Erd109a1tBXTt2YXIgUz13K3lbVF0ubGVuZ3RoO19bVF09W3csU10sdz1TfXJldHVybiBkLnJhbmdlPWZ1bmN0aW9uKCl7dmFyIGUscj1bXSxuPWFyZ3VtZW50cy5sZW5ndGg7Zm9yKDtuLS07KXJbbl09YXJndW1lbnRzW25dO2lmKHUocltyLmxlbmd0aC0xXSkpe3ZhciBvPXIucG9wKCk7ci5sZW5ndGh8fG51bGw9PW8ueCYmbnVsbD09by5sJiZudWxsPT1vLmxlZnR8fChyPVtvXSxlPXt9KSxlPXMobyx7bGV2ZWw6ImxldmVsIG1heExldmVsIixkOiJkIGRpYW0gZGlhbWV0ZXIgciByYWRpdXMgcHggcHhTaXplIHBpeGVsIHBpeGVsU2l6ZSBtYXhEIHNpemUgbWluU2l6ZSIsbG9kOiJsb2QgZGV0YWlscyByYW5nZXMgb2Zmc2V0cyJ9KX1lbHNlIGU9e307ci5sZW5ndGh8fChyPWkpO3ZhciBjPWEuYXBwbHkodm9pZCAwLHIpLGY9W01hdGgubWluKGMueCxjLngrYy53aWR0aCksTWF0aC5taW4oYy55LGMueStjLmhlaWdodCksTWF0aC5tYXgoYy54LGMueCtjLndpZHRoKSxNYXRoLm1heChjLnksYy55K2MuaGVpZ2h0KV0sZD1mWzBdLG09ZlsxXSxnPWZbMl0sdj1mWzNdLGI9cChbZCxtLGcsdl0saSksXz1iWzBdLHc9YlsxXSxUPWJbMl0saz1iWzNdLEE9bChlLmxldmVsLHkubGVuZ3RoKTtpZihudWxsIT1lLmQpe3ZhciBNOyJudW1iZXIiPT10eXBlb2YgZS5kP009W2UuZCxlLmRdOmUuZC5sZW5ndGgmJihNPWUuZCksQT1NYXRoLm1pbihNYXRoLm1heChNYXRoLmNlaWwoLWgoTWF0aC5hYnMoTVswXSkvKGlbMl0taVswXSkpKSxNYXRoLmNlaWwoLWgoTWF0aC5hYnMoTVsxXSkvKGlbM10taVsxXSkpKSksQSl9aWYoQT1NYXRoLm1pbihBLHkubGVuZ3RoKSxlLmxvZClyZXR1cm4gRShfLHcsVCxrLEEpO3ZhciBTPVtdO2Z1bmN0aW9uIEwoZSxyLG4saSxhLG8pe2lmKG51bGwhPT1hJiZudWxsIT09byYmIShfPmUrbnx8dz5yK258fFQ8ZXx8azxyfHxpPj1BfHxhPT09bykpe3ZhciBzPXlbaV07dm9pZCAwPT09byYmKG89cy5sZW5ndGgpO2Zvcih2YXIgbD1hO2w8bztsKyspe3ZhciBjPXNbbF0sdT10WzIqY10sZj10WzIqYysxXTt1Pj1kJiZ1PD1nJiZmPj1tJiZmPD12JiZTLnB1c2goYyl9dmFyIGg9eFtpXSxwPWhbNCphKzBdLGI9aFs0KmErMV0sTT1oWzQqYSsyXSxFPWhbNCphKzNdLFA9QyhoLGErMSksST0uNSpuLE89aSsxO0woZSxyLEksTyxwLGJ8fE18fEV8fFApLEwoZSxyK0ksSSxPLGIsTXx8RXx8UCksTChlK0kscixJLE8sTSxFfHxQKSxMKGUrSSxyK0ksSSxPLEUsUCl9fWZ1bmN0aW9uIEModCxlKXtmb3IodmFyIHI9bnVsbCxuPTA7bnVsbD09PXI7KWlmKHI9dFs0KmUrbl0sKytuPnQubGVuZ3RoKXJldHVybiBudWxsO3JldHVybiByfXJldHVybiBMKDAsMCwxLDAsMCwxKSxTfSxkO2Z1bmN0aW9uIEUodCxlLHIsaSxhKXtmb3IodmFyIG89W10scz0wO3M8YTtzKyspe3ZhciBsPWJbc10sYz1fW3NdWzBdLHU9TCh0LGUscyksZj1MKHIsaSxzKSxoPW4uZ2UobCx1KSxwPW4uZ3QobCxmLGgsbC5sZW5ndGgtMSk7b1tzXT1baCtjLHArY119cmV0dXJuIG99ZnVuY3Rpb24gTCh0LGUscil7Zm9yKHZhciBuPTEsaT0uNSxhPS41LG89LjUscz0wO3M8cjtzKyspbjw8PTIsbis9dDxpP2U8YT8wOjE6ZTxhPzI6MyxvKj0uNSxpKz10PGk/LW86byxhKz1lPGE/LW86bztyZXR1cm4gbn19fSx7ImFycmF5LWJvdW5kcyI6NzEsImJpbmFyeS1zZWFyY2gtYm91bmRzIjo4MCxjbGFtcDo4NixkZWZpbmVkOjEyNCxkdHlwZToxMjcsImZsYXR0ZW4tdmVydGV4LWRhdGEiOjE5MSwiaXMtb2JqIjoyMzUsIm1hdGgtbG9nMiI6MjQwLCJwYXJzZS1yZWN0IjoyNDksInBpY2stYnktYWxpYXMiOjI1M31dLDYxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj10KCJAdHVyZi9tZXRhIik7ZnVuY3Rpb24gaSh0KXt2YXIgZT0wO2lmKHQmJnQubGVuZ3RoPjApe2UrPU1hdGguYWJzKGEodFswXSkpO2Zvcih2YXIgcj0xO3I8dC5sZW5ndGg7cisrKWUtPU1hdGguYWJzKGEodFtyXSkpfXJldHVybiBlfWZ1bmN0aW9uIGEodCl7dmFyIGUscixuLGksYSxzLGw9MCxjPXQubGVuZ3RoO2lmKGM+Mil7Zm9yKHM9MDtzPGM7cysrKXM9PT1jLTI/KG49Yy0yLGk9Yy0xLGE9MCk6cz09PWMtMT8obj1jLTEsaT0wLGE9MSk6KG49cyxpPXMrMSxhPXMrMiksZT10W25dLHI9dFtpXSxsKz0obyh0W2FdWzBdKS1vKGVbMF0pKSpNYXRoLnNpbihvKHJbMV0pKTtsPTYzNzgxMzcqbCo2Mzc4MTM3LzJ9cmV0dXJuIGx9ZnVuY3Rpb24gbyh0KXtyZXR1cm4gdCpNYXRoLlBJLzE4MH1yLmRlZmF1bHQ9ZnVuY3Rpb24odCl7cmV0dXJuIG4uZ2VvbVJlZHVjZSh0LChmdW5jdGlvbih0LGUpe3JldHVybiB0K2Z1bmN0aW9uKHQpe3ZhciBlLHI9MDtzd2l0Y2godC50eXBlKXtjYXNlIlBvbHlnb24iOnJldHVybiBpKHQuY29vcmRpbmF0ZXMpO2Nhc2UiTXVsdGlQb2x5Z29uIjpmb3IoZT0wO2U8dC5jb29yZGluYXRlcy5sZW5ndGg7ZSsrKXIrPWkodC5jb29yZGluYXRlc1tlXSk7cmV0dXJuIHI7Y2FzZSJQb2ludCI6Y2FzZSJNdWx0aVBvaW50IjpjYXNlIkxpbmVTdHJpbmciOmNhc2UiTXVsdGlMaW5lU3RyaW5nIjpyZXR1cm4gMH1yZXR1cm4gMH0oZSl9KSwwKX19LHsiQHR1cmYvbWV0YSI6NjN9XSw2MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyKXt2b2lkIDA9PT1yJiYocj17fSk7dmFyIG49e3R5cGU6IkZlYXR1cmUifTtyZXR1cm4oMD09PXIuaWR8fHIuaWQpJiYobi5pZD1yLmlkKSxyLmJib3gmJihuLmJib3g9ci5iYm94KSxuLnByb3BlcnRpZXM9ZXx8e30sbi5nZW9tZXRyeT10LG59ZnVuY3Rpb24gaSh0LGUscil7aWYodm9pZCAwPT09ciYmKHI9e30pLCF0KXRocm93IG5ldyBFcnJvcigiY29vcmRpbmF0ZXMgaXMgcmVxdWlyZWQiKTtpZighQXJyYXkuaXNBcnJheSh0KSl0aHJvdyBuZXcgRXJyb3IoImNvb3JkaW5hdGVzIG11c3QgYmUgYW4gQXJyYXkiKTtpZih0Lmxlbmd0aDwyKXRocm93IG5ldyBFcnJvcigiY29vcmRpbmF0ZXMgbXVzdCBiZSBhdCBsZWFzdCAyIG51bWJlcnMgbG9uZyIpO2lmKCFkKHRbMF0pfHwhZCh0WzFdKSl0aHJvdyBuZXcgRXJyb3IoImNvb3JkaW5hdGVzIG11c3QgY29udGFpbiBudW1iZXJzIik7cmV0dXJuIG4oe3R5cGU6IlBvaW50Iixjb29yZGluYXRlczp0fSxlLHIpfWZ1bmN0aW9uIGEodCxlLHIpe3ZvaWQgMD09PXImJihyPXt9KTtmb3IodmFyIGk9MCxhPXQ7aTxhLmxlbmd0aDtpKyspe3ZhciBvPWFbaV07aWYoby5sZW5ndGg8NCl0aHJvdyBuZXcgRXJyb3IoIkVhY2ggTGluZWFyUmluZyBvZiBhIFBvbHlnb24gbXVzdCBoYXZlIDQgb3IgbW9yZSBQb3NpdGlvbnMuIik7Zm9yKHZhciBzPTA7czxvW28ubGVuZ3RoLTFdLmxlbmd0aDtzKyspaWYob1tvLmxlbmd0aC0xXVtzXSE9PW9bMF1bc10pdGhyb3cgbmV3IEVycm9yKCJGaXJzdCBhbmQgbGFzdCBQb3NpdGlvbiBhcmUgbm90IGVxdWl2YWxlbnQuIil9cmV0dXJuIG4oe3R5cGU6IlBvbHlnb24iLGNvb3JkaW5hdGVzOnR9LGUscil9ZnVuY3Rpb24gbyh0LGUscil7aWYodm9pZCAwPT09ciYmKHI9e30pLHQubGVuZ3RoPDIpdGhyb3cgbmV3IEVycm9yKCJjb29yZGluYXRlcyBtdXN0IGJlIGFuIGFycmF5IG9mIHR3byBvciBtb3JlIHBvc2l0aW9ucyIpO3JldHVybiBuKHt0eXBlOiJMaW5lU3RyaW5nIixjb29yZGluYXRlczp0fSxlLHIpfWZ1bmN0aW9uIHModCxlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIHI9e3R5cGU6IkZlYXR1cmVDb2xsZWN0aW9uIn07cmV0dXJuIGUuaWQmJihyLmlkPWUuaWQpLGUuYmJveCYmKHIuYmJveD1lLmJib3gpLHIuZmVhdHVyZXM9dCxyfWZ1bmN0aW9uIGwodCxlLHIpe3JldHVybiB2b2lkIDA9PT1yJiYocj17fSksbih7dHlwZToiTXVsdGlMaW5lU3RyaW5nIixjb29yZGluYXRlczp0fSxlLHIpfWZ1bmN0aW9uIGModCxlLHIpe3JldHVybiB2b2lkIDA9PT1yJiYocj17fSksbih7dHlwZToiTXVsdGlQb2ludCIsY29vcmRpbmF0ZXM6dH0sZSxyKX1mdW5jdGlvbiB1KHQsZSxyKXtyZXR1cm4gdm9pZCAwPT09ciYmKHI9e30pLG4oe3R5cGU6Ik11bHRpUG9seWdvbiIsY29vcmRpbmF0ZXM6dH0sZSxyKX1mdW5jdGlvbiBmKHQsZSl7dm9pZCAwPT09ZSYmKGU9ImtpbG9tZXRlcnMiKTt2YXIgbj1yLmZhY3RvcnNbZV07aWYoIW4pdGhyb3cgbmV3IEVycm9yKGUrIiB1bml0cyBpcyBpbnZhbGlkIik7cmV0dXJuIHQqbn1mdW5jdGlvbiBoKHQsZSl7dm9pZCAwPT09ZSYmKGU9ImtpbG9tZXRlcnMiKTt2YXIgbj1yLmZhY3RvcnNbZV07aWYoIW4pdGhyb3cgbmV3IEVycm9yKGUrIiB1bml0cyBpcyBpbnZhbGlkIik7cmV0dXJuIHQvbn1mdW5jdGlvbiBwKHQpe3JldHVybiAxODAqKHQlKDIqTWF0aC5QSSkpL01hdGguUEl9ZnVuY3Rpb24gZCh0KXtyZXR1cm4haXNOYU4odCkmJm51bGwhPT10JiYhQXJyYXkuaXNBcnJheSh0KX1PYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksci5lYXJ0aFJhZGl1cz02MzcxMDA4Ljgsci5mYWN0b3JzPXtjZW50aW1ldGVyczoxMDAqci5lYXJ0aFJhZGl1cyxjZW50aW1ldHJlczoxMDAqci5lYXJ0aFJhZGl1cyxkZWdyZWVzOnIuZWFydGhSYWRpdXMvMTExMzI1LGZlZXQ6My4yODA4NCpyLmVhcnRoUmFkaXVzLGluY2hlczozOS4zNypyLmVhcnRoUmFkaXVzLGtpbG9tZXRlcnM6ci5lYXJ0aFJhZGl1cy8xZTMsa2lsb21ldHJlczpyLmVhcnRoUmFkaXVzLzFlMyxtZXRlcnM6ci5lYXJ0aFJhZGl1cyxtZXRyZXM6ci5lYXJ0aFJhZGl1cyxtaWxlczpyLmVhcnRoUmFkaXVzLzE2MDkuMzQ0LG1pbGxpbWV0ZXJzOjFlMypyLmVhcnRoUmFkaXVzLG1pbGxpbWV0cmVzOjFlMypyLmVhcnRoUmFkaXVzLG5hdXRpY2FsbWlsZXM6ci5lYXJ0aFJhZGl1cy8xODUyLHJhZGlhbnM6MSx5YXJkczoxLjA5MzYqci5lYXJ0aFJhZGl1c30sci51bml0c0ZhY3RvcnM9e2NlbnRpbWV0ZXJzOjEwMCxjZW50aW1ldHJlczoxMDAsZGVncmVlczoxLzExMTMyNSxmZWV0OjMuMjgwODQsaW5jaGVzOjM5LjM3LGtpbG9tZXRlcnM6LjAwMSxraWxvbWV0cmVzOi4wMDEsbWV0ZXJzOjEsbWV0cmVzOjEsbWlsZXM6MS8xNjA5LjM0NCxtaWxsaW1ldGVyczoxZTMsbWlsbGltZXRyZXM6MWUzLG5hdXRpY2FsbWlsZXM6MS8xODUyLHJhZGlhbnM6MS9yLmVhcnRoUmFkaXVzLHlhcmRzOjEuMDkzNjEzM30sci5hcmVhRmFjdG9ycz17YWNyZXM6MjQ3MTA1ZS05LGNlbnRpbWV0ZXJzOjFlNCxjZW50aW1ldHJlczoxZTQsZmVldDoxMC43NjM5MTA0MTcsaGVjdGFyZXM6MWUtNCxpbmNoZXM6MTU1MC4wMDMxMDAwMDYsa2lsb21ldGVyczoxZS02LGtpbG9tZXRyZXM6MWUtNixtZXRlcnM6MSxtZXRyZXM6MSxtaWxlczozODZlLTksbWlsbGltZXRlcnM6MWU2LG1pbGxpbWV0cmVzOjFlNix5YXJkczoxLjE5NTk5MDA0Nn0sci5mZWF0dXJlPW4sci5nZW9tZXRyeT1mdW5jdGlvbih0LGUscil7c3dpdGNoKHZvaWQgMD09PXImJihyPXt9KSx0KXtjYXNlIlBvaW50IjpyZXR1cm4gaShlKS5nZW9tZXRyeTtjYXNlIkxpbmVTdHJpbmciOnJldHVybiBvKGUpLmdlb21ldHJ5O2Nhc2UiUG9seWdvbiI6cmV0dXJuIGEoZSkuZ2VvbWV0cnk7Y2FzZSJNdWx0aVBvaW50IjpyZXR1cm4gYyhlKS5nZW9tZXRyeTtjYXNlIk11bHRpTGluZVN0cmluZyI6cmV0dXJuIGwoZSkuZ2VvbWV0cnk7Y2FzZSJNdWx0aVBvbHlnb24iOnJldHVybiB1KGUpLmdlb21ldHJ5O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKHQrIiBpcyBpbnZhbGlkIil9fSxyLnBvaW50PWksci5wb2ludHM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB2b2lkIDA9PT1yJiYocj17fSkscyh0Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGkodCxlKX0pKSxyKX0sci5wb2x5Z29uPWEsci5wb2x5Z29ucz1mdW5jdGlvbih0LGUscil7cmV0dXJuIHZvaWQgMD09PXImJihyPXt9KSxzKHQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gYSh0LGUpfSkpLHIpfSxyLmxpbmVTdHJpbmc9byxyLmxpbmVTdHJpbmdzPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdm9pZCAwPT09ciYmKHI9e30pLHModC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBvKHQsZSl9KSkscil9LHIuZmVhdHVyZUNvbGxlY3Rpb249cyxyLm11bHRpTGluZVN0cmluZz1sLHIubXVsdGlQb2ludD1jLHIubXVsdGlQb2x5Z29uPXUsci5nZW9tZXRyeUNvbGxlY3Rpb249ZnVuY3Rpb24odCxlLHIpe3JldHVybiB2b2lkIDA9PT1yJiYocj17fSksbih7dHlwZToiR2VvbWV0cnlDb2xsZWN0aW9uIixnZW9tZXRyaWVzOnR9LGUscil9LHIucm91bmQ9ZnVuY3Rpb24odCxlKXtpZih2b2lkIDA9PT1lJiYoZT0wKSxlJiYhKGU+PTApKXRocm93IG5ldyBFcnJvcigicHJlY2lzaW9uIG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXIiKTt2YXIgcj1NYXRoLnBvdygxMCxlfHwwKTtyZXR1cm4gTWF0aC5yb3VuZCh0KnIpL3J9LHIucmFkaWFuc1RvTGVuZ3RoPWYsci5sZW5ndGhUb1JhZGlhbnM9aCxyLmxlbmd0aFRvRGVncmVlcz1mdW5jdGlvbih0LGUpe3JldHVybiBwKGgodCxlKSl9LHIuYmVhcmluZ1RvQXppbXV0aD1mdW5jdGlvbih0KXt2YXIgZT10JTM2MDtyZXR1cm4gZTwwJiYoZSs9MzYwKSxlfSxyLnJhZGlhbnNUb0RlZ3JlZXM9cCxyLmRlZ3JlZXNUb1JhZGlhbnM9ZnVuY3Rpb24odCl7cmV0dXJuIHQlMzYwKk1hdGguUEkvMTgwfSxyLmNvbnZlcnRMZW5ndGg9ZnVuY3Rpb24odCxlLHIpe2lmKHZvaWQgMD09PWUmJihlPSJraWxvbWV0ZXJzIiksdm9pZCAwPT09ciYmKHI9ImtpbG9tZXRlcnMiKSwhKHQ+PTApKXRocm93IG5ldyBFcnJvcigibGVuZ3RoIG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXIiKTtyZXR1cm4gZihoKHQsZSkscil9LHIuY29udmVydEFyZWE9ZnVuY3Rpb24odCxlLG4pe2lmKHZvaWQgMD09PWUmJihlPSJtZXRlcnMiKSx2b2lkIDA9PT1uJiYobj0ia2lsb21ldGVycyIpLCEodD49MCkpdGhyb3cgbmV3IEVycm9yKCJhcmVhIG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXIiKTt2YXIgaT1yLmFyZWFGYWN0b3JzW2VdO2lmKCFpKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBvcmlnaW5hbCB1bml0cyIpO3ZhciBhPXIuYXJlYUZhY3RvcnNbbl07aWYoIWEpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGZpbmFsIHVuaXRzIik7cmV0dXJuIHQvaSphfSxyLmlzTnVtYmVyPWQsci5pc09iamVjdD1mdW5jdGlvbih0KXtyZXR1cm4hIXQmJnQuY29uc3RydWN0b3I9PT1PYmplY3R9LHIudmFsaWRhdGVCQm94PWZ1bmN0aW9uKHQpe2lmKCF0KXRocm93IG5ldyBFcnJvcigiYmJveCBpcyByZXF1aXJlZCIpO2lmKCFBcnJheS5pc0FycmF5KHQpKXRocm93IG5ldyBFcnJvcigiYmJveCBtdXN0IGJlIGFuIEFycmF5Iik7aWYoNCE9PXQubGVuZ3RoJiY2IT09dC5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJiYm94IG11c3QgYmUgYW4gQXJyYXkgb2YgNCBvciA2IG51bWJlcnMiKTt0LmZvckVhY2goKGZ1bmN0aW9uKHQpe2lmKCFkKHQpKXRocm93IG5ldyBFcnJvcigiYmJveCBtdXN0IG9ubHkgY29udGFpbiBudW1iZXJzIil9KSl9LHIudmFsaWRhdGVJZD1mdW5jdGlvbih0KXtpZighdCl0aHJvdyBuZXcgRXJyb3IoImlkIGlzIHJlcXVpcmVkIik7aWYoLTE9PT1bInN0cmluZyIsIm51bWJlciJdLmluZGV4T2YodHlwZW9mIHQpKXRocm93IG5ldyBFcnJvcigiaWQgbXVzdCBiZSBhIG51bWJlciBvciBhIHN0cmluZyIpfX0se31dLDYzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj10KCJAdHVyZi9oZWxwZXJzIik7ZnVuY3Rpb24gaSh0LGUscil7aWYobnVsbCE9PXQpZm9yKHZhciBuLGEsbyxzLGwsYyx1LGYsaD0wLHA9MCxkPXQudHlwZSxtPSJGZWF0dXJlQ29sbGVjdGlvbiI9PT1kLGc9IkZlYXR1cmUiPT09ZCx2PW0/dC5mZWF0dXJlcy5sZW5ndGg6MSx5PTA7eTx2O3krKyl7bD0oZj0hISh1PW0/dC5mZWF0dXJlc1t5XS5nZW9tZXRyeTpnP3QuZ2VvbWV0cnk6dCkmJiJHZW9tZXRyeUNvbGxlY3Rpb24iPT09dS50eXBlKT91Lmdlb21ldHJpZXMubGVuZ3RoOjE7Zm9yKHZhciB4PTA7eDxsO3grKyl7dmFyIGI9MCxfPTA7aWYobnVsbCE9PShzPWY/dS5nZW9tZXRyaWVzW3hdOnUpKXtjPXMuY29vcmRpbmF0ZXM7dmFyIHc9cy50eXBlO3N3aXRjaChoPSFyfHwiUG9seWdvbiIhPT13JiYiTXVsdGlQb2x5Z29uIiE9PXc/MDoxLHcpe2Nhc2UgbnVsbDpicmVhaztjYXNlIlBvaW50IjppZighMT09PWUoYyxwLHksYixfKSlyZXR1cm4hMTtwKyssYisrO2JyZWFrO2Nhc2UiTGluZVN0cmluZyI6Y2FzZSJNdWx0aVBvaW50Ijpmb3Iobj0wO248Yy5sZW5ndGg7bisrKXtpZighMT09PWUoY1tuXSxwLHksYixfKSlyZXR1cm4hMTtwKyssIk11bHRpUG9pbnQiPT09dyYmYisrfSJMaW5lU3RyaW5nIj09PXcmJmIrKzticmVhaztjYXNlIlBvbHlnb24iOmNhc2UiTXVsdGlMaW5lU3RyaW5nIjpmb3Iobj0wO248Yy5sZW5ndGg7bisrKXtmb3IoYT0wO2E8Y1tuXS5sZW5ndGgtaDthKyspe2lmKCExPT09ZShjW25dW2FdLHAseSxiLF8pKXJldHVybiExO3ArK30iTXVsdGlMaW5lU3RyaW5nIj09PXcmJmIrKywiUG9seWdvbiI9PT13JiZfKyt9IlBvbHlnb24iPT09dyYmYisrO2JyZWFrO2Nhc2UiTXVsdGlQb2x5Z29uIjpmb3Iobj0wO248Yy5sZW5ndGg7bisrKXtmb3IoXz0wLGE9MDthPGNbbl0ubGVuZ3RoO2ErKyl7Zm9yKG89MDtvPGNbbl1bYV0ubGVuZ3RoLWg7bysrKXtpZighMT09PWUoY1tuXVthXVtvXSxwLHksYixfKSlyZXR1cm4hMTtwKyt9XysrfWIrK31icmVhaztjYXNlIkdlb21ldHJ5Q29sbGVjdGlvbiI6Zm9yKG49MDtuPHMuZ2VvbWV0cmllcy5sZW5ndGg7bisrKWlmKCExPT09aShzLmdlb21ldHJpZXNbbl0sZSxyKSlyZXR1cm4hMTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5rbm93biBHZW9tZXRyeSBUeXBlIil9fX19fWZ1bmN0aW9uIGEodCxlKXt2YXIgcjtzd2l0Y2godC50eXBlKXtjYXNlIkZlYXR1cmVDb2xsZWN0aW9uIjpmb3Iocj0wO3I8dC5mZWF0dXJlcy5sZW5ndGgmJiExIT09ZSh0LmZlYXR1cmVzW3JdLnByb3BlcnRpZXMscik7cisrKTticmVhaztjYXNlIkZlYXR1cmUiOmUodC5wcm9wZXJ0aWVzLDApfX1mdW5jdGlvbiBvKHQsZSl7aWYoIkZlYXR1cmUiPT09dC50eXBlKWUodCwwKTtlbHNlIGlmKCJGZWF0dXJlQ29sbGVjdGlvbiI9PT10LnR5cGUpZm9yKHZhciByPTA7cjx0LmZlYXR1cmVzLmxlbmd0aCYmITEhPT1lKHQuZmVhdHVyZXNbcl0scik7cisrKTt9ZnVuY3Rpb24gcyh0LGUpe3ZhciByLG4saSxhLG8scyxsLGMsdSxmLGg9MCxwPSJGZWF0dXJlQ29sbGVjdGlvbiI9PT10LnR5cGUsZD0iRmVhdHVyZSI9PT10LnR5cGUsbT1wP3QuZmVhdHVyZXMubGVuZ3RoOjE7Zm9yKHI9MDtyPG07cisrKXtmb3Iocz1wP3QuZmVhdHVyZXNbcl0uZ2VvbWV0cnk6ZD90Lmdlb21ldHJ5OnQsYz1wP3QuZmVhdHVyZXNbcl0ucHJvcGVydGllczpkP3QucHJvcGVydGllczp7fSx1PXA/dC5mZWF0dXJlc1tyXS5iYm94OmQ/dC5iYm94OnZvaWQgMCxmPXA/dC5mZWF0dXJlc1tyXS5pZDpkP3QuaWQ6dm9pZCAwLG89KGw9ISFzJiYiR2VvbWV0cnlDb2xsZWN0aW9uIj09PXMudHlwZSk/cy5nZW9tZXRyaWVzLmxlbmd0aDoxLGk9MDtpPG87aSsrKWlmKG51bGwhPT0oYT1sP3MuZ2VvbWV0cmllc1tpXTpzKSlzd2l0Y2goYS50eXBlKXtjYXNlIlBvaW50IjpjYXNlIkxpbmVTdHJpbmciOmNhc2UiTXVsdGlQb2ludCI6Y2FzZSJQb2x5Z29uIjpjYXNlIk11bHRpTGluZVN0cmluZyI6Y2FzZSJNdWx0aVBvbHlnb24iOmlmKCExPT09ZShhLGgsYyx1LGYpKXJldHVybiExO2JyZWFrO2Nhc2UiR2VvbWV0cnlDb2xsZWN0aW9uIjpmb3Iobj0wO248YS5nZW9tZXRyaWVzLmxlbmd0aDtuKyspaWYoITE9PT1lKGEuZ2VvbWV0cmllc1tuXSxoLGMsdSxmKSlyZXR1cm4hMTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5rbm93biBHZW9tZXRyeSBUeXBlIil9ZWxzZSBpZighMT09PWUobnVsbCxoLGMsdSxmKSlyZXR1cm4hMTtoKyt9fWZ1bmN0aW9uIGwodCxlKXtzKHQsKGZ1bmN0aW9uKHQscixpLGEsbyl7dmFyIHMsbD1udWxsPT09dD9udWxsOnQudHlwZTtzd2l0Y2gobCl7Y2FzZSBudWxsOmNhc2UiUG9pbnQiOmNhc2UiTGluZVN0cmluZyI6Y2FzZSJQb2x5Z29uIjpyZXR1cm4hMSE9PWUobi5mZWF0dXJlKHQsaSx7YmJveDphLGlkOm99KSxyLDApJiZ2b2lkIDB9c3dpdGNoKGwpe2Nhc2UiTXVsdGlQb2ludCI6cz0iUG9pbnQiO2JyZWFrO2Nhc2UiTXVsdGlMaW5lU3RyaW5nIjpzPSJMaW5lU3RyaW5nIjticmVhaztjYXNlIk11bHRpUG9seWdvbiI6cz0iUG9seWdvbiJ9Zm9yKHZhciBjPTA7Yzx0LmNvb3JkaW5hdGVzLmxlbmd0aDtjKyspe3ZhciB1PXt0eXBlOnMsY29vcmRpbmF0ZXM6dC5jb29yZGluYXRlc1tjXX07aWYoITE9PT1lKG4uZmVhdHVyZSh1LGkpLHIsYykpcmV0dXJuITF9fSkpfWZ1bmN0aW9uIGModCxlKXtsKHQsKGZ1bmN0aW9uKHQscixhKXt2YXIgbz0wO2lmKHQuZ2VvbWV0cnkpe3ZhciBzPXQuZ2VvbWV0cnkudHlwZTtpZigiUG9pbnQiIT09cyYmIk11bHRpUG9pbnQiIT09cyl7dmFyIGwsYz0wLHU9MCxmPTA7cmV0dXJuITEhPT1pKHQsKGZ1bmN0aW9uKGkscyxoLHAsZCl7aWYodm9pZCAwPT09bHx8cj5jfHxwPnV8fGQ+ZilyZXR1cm4gbD1pLGM9cix1PXAsZj1kLHZvaWQobz0wKTt2YXIgbT1uLmxpbmVTdHJpbmcoW2wsaV0sdC5wcm9wZXJ0aWVzKTtpZighMT09PWUobSxyLGEsZCxvKSlyZXR1cm4hMTtvKyssbD1pfSkpJiZ2b2lkIDB9fX0pKX1mdW5jdGlvbiB1KHQsZSl7aWYoIXQpdGhyb3cgbmV3IEVycm9yKCJnZW9qc29uIGlzIHJlcXVpcmVkIik7bCh0LChmdW5jdGlvbih0LHIsaSl7aWYobnVsbCE9PXQuZ2VvbWV0cnkpe3ZhciBhPXQuZ2VvbWV0cnkudHlwZSxvPXQuZ2VvbWV0cnkuY29vcmRpbmF0ZXM7c3dpdGNoKGEpe2Nhc2UiTGluZVN0cmluZyI6aWYoITE9PT1lKHQscixpLDAsMCkpcmV0dXJuITE7YnJlYWs7Y2FzZSJQb2x5Z29uIjpmb3IodmFyIHM9MDtzPG8ubGVuZ3RoO3MrKylpZighMT09PWUobi5saW5lU3RyaW5nKG9bc10sdC5wcm9wZXJ0aWVzKSxyLGkscykpcmV0dXJuITF9fX0pKX1yLmNvb3JkRWFjaD1pLHIuY29vcmRSZWR1Y2U9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGE9cjtyZXR1cm4gaSh0LChmdW5jdGlvbih0LG4saSxvLHMpe2E9MD09PW4mJnZvaWQgMD09PXI/dDplKGEsdCxuLGksbyxzKX0pLG4pLGF9LHIucHJvcEVhY2g9YSxyLnByb3BSZWR1Y2U9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXI7cmV0dXJuIGEodCwoZnVuY3Rpb24odCxpKXtuPTA9PT1pJiZ2b2lkIDA9PT1yP3Q6ZShuLHQsaSl9KSksbn0sci5mZWF0dXJlRWFjaD1vLHIuZmVhdHVyZVJlZHVjZT1mdW5jdGlvbih0LGUscil7dmFyIG49cjtyZXR1cm4gbyh0LChmdW5jdGlvbih0LGkpe249MD09PWkmJnZvaWQgMD09PXI/dDplKG4sdCxpKX0pKSxufSxyLmNvb3JkQWxsPWZ1bmN0aW9uKHQpe3ZhciBlPVtdO3JldHVybiBpKHQsKGZ1bmN0aW9uKHQpe2UucHVzaCh0KX0pKSxlfSxyLmdlb21FYWNoPXMsci5nZW9tUmVkdWNlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1yO3JldHVybiBzKHQsKGZ1bmN0aW9uKHQsaSxhLG8scyl7bj0wPT09aSYmdm9pZCAwPT09cj90OmUobix0LGksYSxvLHMpfSkpLG59LHIuZmxhdHRlbkVhY2g9bCxyLmZsYXR0ZW5SZWR1Y2U9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXI7cmV0dXJuIGwodCwoZnVuY3Rpb24odCxpLGEpe249MD09PWkmJjA9PT1hJiZ2b2lkIDA9PT1yP3Q6ZShuLHQsaSxhKX0pKSxufSxyLnNlZ21lbnRFYWNoPWMsci5zZWdtZW50UmVkdWNlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1yLGk9ITE7cmV0dXJuIGModCwoZnVuY3Rpb24odCxhLG8scyxsKXtuPSExPT09aSYmdm9pZCAwPT09cj90OmUobix0LGEsbyxzLGwpLGk9ITB9KSksbn0sci5saW5lRWFjaD11LHIubGluZVJlZHVjZT1mdW5jdGlvbih0LGUscil7dmFyIG49cjtyZXR1cm4gdSh0LChmdW5jdGlvbih0LGksYSxvKXtuPTA9PT1pJiZ2b2lkIDA9PT1yP3Q6ZShuLHQsaSxhLG8pfSkpLG59LHIuZmluZFNlZ21lbnQ9ZnVuY3Rpb24odCxlKXtpZihlPWV8fHt9LCFuLmlzT2JqZWN0KGUpKXRocm93IG5ldyBFcnJvcigib3B0aW9ucyBpcyBpbnZhbGlkIik7dmFyIHIsaT1lLmZlYXR1cmVJbmRleHx8MCxhPWUubXVsdGlGZWF0dXJlSW5kZXh8fDAsbz1lLmdlb21ldHJ5SW5kZXh8fDAscz1lLnNlZ21lbnRJbmRleHx8MCxsPWUucHJvcGVydGllcztzd2l0Y2godC50eXBlKXtjYXNlIkZlYXR1cmVDb2xsZWN0aW9uIjppPDAmJihpPXQuZmVhdHVyZXMubGVuZ3RoK2kpLGw9bHx8dC5mZWF0dXJlc1tpXS5wcm9wZXJ0aWVzLHI9dC5mZWF0dXJlc1tpXS5nZW9tZXRyeTticmVhaztjYXNlIkZlYXR1cmUiOmw9bHx8dC5wcm9wZXJ0aWVzLHI9dC5nZW9tZXRyeTticmVhaztjYXNlIlBvaW50IjpjYXNlIk11bHRpUG9pbnQiOnJldHVybiBudWxsO2Nhc2UiTGluZVN0cmluZyI6Y2FzZSJQb2x5Z29uIjpjYXNlIk11bHRpTGluZVN0cmluZyI6Y2FzZSJNdWx0aVBvbHlnb24iOnI9dDticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiZ2VvanNvbiBpcyBpbnZhbGlkIil9aWYobnVsbD09PXIpcmV0dXJuIG51bGw7dmFyIGM9ci5jb29yZGluYXRlcztzd2l0Y2goci50eXBlKXtjYXNlIlBvaW50IjpjYXNlIk11bHRpUG9pbnQiOnJldHVybiBudWxsO2Nhc2UiTGluZVN0cmluZyI6cmV0dXJuIHM8MCYmKHM9Yy5sZW5ndGgrcy0xKSxuLmxpbmVTdHJpbmcoW2Nbc10sY1tzKzFdXSxsLGUpO2Nhc2UiUG9seWdvbiI6cmV0dXJuIG88MCYmKG89Yy5sZW5ndGgrbyksczwwJiYocz1jW29dLmxlbmd0aCtzLTEpLG4ubGluZVN0cmluZyhbY1tvXVtzXSxjW29dW3MrMV1dLGwsZSk7Y2FzZSJNdWx0aUxpbmVTdHJpbmciOnJldHVybiBhPDAmJihhPWMubGVuZ3RoK2EpLHM8MCYmKHM9Y1thXS5sZW5ndGgrcy0xKSxuLmxpbmVTdHJpbmcoW2NbYV1bc10sY1thXVtzKzFdXSxsLGUpO2Nhc2UiTXVsdGlQb2x5Z29uIjpyZXR1cm4gYTwwJiYoYT1jLmxlbmd0aCthKSxvPDAmJihvPWNbYV0ubGVuZ3RoK28pLHM8MCYmKHM9Y1thXVtvXS5sZW5ndGgtcy0xKSxuLmxpbmVTdHJpbmcoW2NbYV1bb11bc10sY1thXVtvXVtzKzFdXSxsLGUpfXRocm93IG5ldyBFcnJvcigiZ2VvanNvbiBpcyBpbnZhbGlkIil9LHIuZmluZFBvaW50PWZ1bmN0aW9uKHQsZSl7aWYoZT1lfHx7fSwhbi5pc09iamVjdChlKSl0aHJvdyBuZXcgRXJyb3IoIm9wdGlvbnMgaXMgaW52YWxpZCIpO3ZhciByLGk9ZS5mZWF0dXJlSW5kZXh8fDAsYT1lLm11bHRpRmVhdHVyZUluZGV4fHwwLG89ZS5nZW9tZXRyeUluZGV4fHwwLHM9ZS5jb29yZEluZGV4fHwwLGw9ZS5wcm9wZXJ0aWVzO3N3aXRjaCh0LnR5cGUpe2Nhc2UiRmVhdHVyZUNvbGxlY3Rpb24iOmk8MCYmKGk9dC5mZWF0dXJlcy5sZW5ndGgraSksbD1sfHx0LmZlYXR1cmVzW2ldLnByb3BlcnRpZXMscj10LmZlYXR1cmVzW2ldLmdlb21ldHJ5O2JyZWFrO2Nhc2UiRmVhdHVyZSI6bD1sfHx0LnByb3BlcnRpZXMscj10Lmdlb21ldHJ5O2JyZWFrO2Nhc2UiUG9pbnQiOmNhc2UiTXVsdGlQb2ludCI6cmV0dXJuIG51bGw7Y2FzZSJMaW5lU3RyaW5nIjpjYXNlIlBvbHlnb24iOmNhc2UiTXVsdGlMaW5lU3RyaW5nIjpjYXNlIk11bHRpUG9seWdvbiI6cj10O2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJnZW9qc29uIGlzIGludmFsaWQiKX1pZihudWxsPT09cilyZXR1cm4gbnVsbDt2YXIgYz1yLmNvb3JkaW5hdGVzO3N3aXRjaChyLnR5cGUpe2Nhc2UiUG9pbnQiOnJldHVybiBuLnBvaW50KGMsbCxlKTtjYXNlIk11bHRpUG9pbnQiOnJldHVybiBhPDAmJihhPWMubGVuZ3RoK2EpLG4ucG9pbnQoY1thXSxsLGUpO2Nhc2UiTGluZVN0cmluZyI6cmV0dXJuIHM8MCYmKHM9Yy5sZW5ndGgrcyksbi5wb2ludChjW3NdLGwsZSk7Y2FzZSJQb2x5Z29uIjpyZXR1cm4gbzwwJiYobz1jLmxlbmd0aCtvKSxzPDAmJihzPWNbb10ubGVuZ3RoK3MpLG4ucG9pbnQoY1tvXVtzXSxsLGUpO2Nhc2UiTXVsdGlMaW5lU3RyaW5nIjpyZXR1cm4gYTwwJiYoYT1jLmxlbmd0aCthKSxzPDAmJihzPWNbYV0ubGVuZ3RoK3MpLG4ucG9pbnQoY1thXVtzXSxsLGUpO2Nhc2UiTXVsdGlQb2x5Z29uIjpyZXR1cm4gYTwwJiYoYT1jLmxlbmd0aCthKSxvPDAmJihvPWNbYV0ubGVuZ3RoK28pLHM8MCYmKHM9Y1thXVtvXS5sZW5ndGgtcyksbi5wb2ludChjW2FdW29dW3NdLGwsZSl9dGhyb3cgbmV3IEVycm9yKCJnZW9qc29uIGlzIGludmFsaWQiKX19LHsiQHR1cmYvaGVscGVycyI6NjJ9XSw2NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49dCgiQHR1cmYvbWV0YSIpO2Z1bmN0aW9uIGkodCl7dmFyIGU9WzEvMCwxLzAsLTEvMCwtMS8wXTtyZXR1cm4gbi5jb29yZEVhY2godCwoZnVuY3Rpb24odCl7ZVswXT50WzBdJiYoZVswXT10WzBdKSxlWzFdPnRbMV0mJihlWzFdPXRbMV0pLGVbMl08dFswXSYmKGVbMl09dFswXSksZVszXTx0WzFdJiYoZVszXT10WzFdKX0pKSxlfWkuZGVmYXVsdD1pLHIuZGVmYXVsdD1pfSx7IkB0dXJmL21ldGEiOjY2fV0sNjU6W2Z1bmN0aW9uKHQsZSxyKXthcmd1bWVudHNbNF1bNjJdWzBdLmFwcGx5KHIsYXJndW1lbnRzKX0se2R1cDo2Mn1dLDY2OltmdW5jdGlvbih0LGUscil7YXJndW1lbnRzWzRdWzYzXVswXS5hcHBseShyLGFyZ3VtZW50cyl9LHsiQHR1cmYvaGVscGVycyI6NjUsZHVwOjYzfV0sNjc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXQoIkB0dXJmL21ldGEiKSxpPXQoIkB0dXJmL2hlbHBlcnMiKTtyLmRlZmF1bHQ9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIHI9MCxhPTAsbz0wO3JldHVybiBuLmNvb3JkRWFjaCh0LChmdW5jdGlvbih0KXtyKz10WzBdLGErPXRbMV0sbysrfSkpLGkucG9pbnQoW3IvbyxhL29dLGUucHJvcGVydGllcyl9fSx7IkB0dXJmL2hlbHBlcnMiOjY4LCJAdHVyZi9tZXRhIjo2OX1dLDY4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIpe3ZvaWQgMD09PXImJihyPXt9KTt2YXIgbj17dHlwZToiRmVhdHVyZSJ9O3JldHVybigwPT09ci5pZHx8ci5pZCkmJihuLmlkPXIuaWQpLHIuYmJveCYmKG4uYmJveD1yLmJib3gpLG4ucHJvcGVydGllcz1lfHx7fSxuLmdlb21ldHJ5PXQsbn1mdW5jdGlvbiBpKHQsZSxyKXtyZXR1cm4gdm9pZCAwPT09ciYmKHI9e30pLG4oe3R5cGU6IlBvaW50Iixjb29yZGluYXRlczp0fSxlLHIpfWZ1bmN0aW9uIGEodCxlLHIpe3ZvaWQgMD09PXImJihyPXt9KTtmb3IodmFyIGk9MCxhPXQ7aTxhLmxlbmd0aDtpKyspe3ZhciBvPWFbaV07aWYoby5sZW5ndGg8NCl0aHJvdyBuZXcgRXJyb3IoIkVhY2ggTGluZWFyUmluZyBvZiBhIFBvbHlnb24gbXVzdCBoYXZlIDQgb3IgbW9yZSBQb3NpdGlvbnMuIik7Zm9yKHZhciBzPTA7czxvW28ubGVuZ3RoLTFdLmxlbmd0aDtzKyspaWYob1tvLmxlbmd0aC0xXVtzXSE9PW9bMF1bc10pdGhyb3cgbmV3IEVycm9yKCJGaXJzdCBhbmQgbGFzdCBQb3NpdGlvbiBhcmUgbm90IGVxdWl2YWxlbnQuIil9cmV0dXJuIG4oe3R5cGU6IlBvbHlnb24iLGNvb3JkaW5hdGVzOnR9LGUscil9ZnVuY3Rpb24gbyh0LGUscil7aWYodm9pZCAwPT09ciYmKHI9e30pLHQubGVuZ3RoPDIpdGhyb3cgbmV3IEVycm9yKCJjb29yZGluYXRlcyBtdXN0IGJlIGFuIGFycmF5IG9mIHR3byBvciBtb3JlIHBvc2l0aW9ucyIpO3JldHVybiBuKHt0eXBlOiJMaW5lU3RyaW5nIixjb29yZGluYXRlczp0fSxlLHIpfWZ1bmN0aW9uIHModCxlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIHI9e3R5cGU6IkZlYXR1cmVDb2xsZWN0aW9uIn07cmV0dXJuIGUuaWQmJihyLmlkPWUuaWQpLGUuYmJveCYmKHIuYmJveD1lLmJib3gpLHIuZmVhdHVyZXM9dCxyfWZ1bmN0aW9uIGwodCxlLHIpe3JldHVybiB2b2lkIDA9PT1yJiYocj17fSksbih7dHlwZToiTXVsdGlMaW5lU3RyaW5nIixjb29yZGluYXRlczp0fSxlLHIpfWZ1bmN0aW9uIGModCxlLHIpe3JldHVybiB2b2lkIDA9PT1yJiYocj17fSksbih7dHlwZToiTXVsdGlQb2ludCIsY29vcmRpbmF0ZXM6dH0sZSxyKX1mdW5jdGlvbiB1KHQsZSxyKXtyZXR1cm4gdm9pZCAwPT09ciYmKHI9e30pLG4oe3R5cGU6Ik11bHRpUG9seWdvbiIsY29vcmRpbmF0ZXM6dH0sZSxyKX1mdW5jdGlvbiBmKHQsZSl7dm9pZCAwPT09ZSYmKGU9ImtpbG9tZXRlcnMiKTt2YXIgbj1yLmZhY3RvcnNbZV07aWYoIW4pdGhyb3cgbmV3IEVycm9yKGUrIiB1bml0cyBpcyBpbnZhbGlkIik7cmV0dXJuIHQqbn1mdW5jdGlvbiBoKHQsZSl7dm9pZCAwPT09ZSYmKGU9ImtpbG9tZXRlcnMiKTt2YXIgbj1yLmZhY3RvcnNbZV07aWYoIW4pdGhyb3cgbmV3IEVycm9yKGUrIiB1bml0cyBpcyBpbnZhbGlkIik7cmV0dXJuIHQvbn1mdW5jdGlvbiBwKHQpe3JldHVybiAxODAqKHQlKDIqTWF0aC5QSSkpL01hdGguUEl9ZnVuY3Rpb24gZCh0KXtyZXR1cm4haXNOYU4odCkmJm51bGwhPT10JiYhQXJyYXkuaXNBcnJheSh0KSYmIS9eXHMqJC8udGVzdCh0KX1PYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksci5lYXJ0aFJhZGl1cz02MzcxMDA4Ljgsci5mYWN0b3JzPXtjZW50aW1ldGVyczoxMDAqci5lYXJ0aFJhZGl1cyxjZW50aW1ldHJlczoxMDAqci5lYXJ0aFJhZGl1cyxkZWdyZWVzOnIuZWFydGhSYWRpdXMvMTExMzI1LGZlZXQ6My4yODA4NCpyLmVhcnRoUmFkaXVzLGluY2hlczozOS4zNypyLmVhcnRoUmFkaXVzLGtpbG9tZXRlcnM6ci5lYXJ0aFJhZGl1cy8xZTMsa2lsb21ldHJlczpyLmVhcnRoUmFkaXVzLzFlMyxtZXRlcnM6ci5lYXJ0aFJhZGl1cyxtZXRyZXM6ci5lYXJ0aFJhZGl1cyxtaWxlczpyLmVhcnRoUmFkaXVzLzE2MDkuMzQ0LG1pbGxpbWV0ZXJzOjFlMypyLmVhcnRoUmFkaXVzLG1pbGxpbWV0cmVzOjFlMypyLmVhcnRoUmFkaXVzLG5hdXRpY2FsbWlsZXM6ci5lYXJ0aFJhZGl1cy8xODUyLHJhZGlhbnM6MSx5YXJkczpyLmVhcnRoUmFkaXVzLzEuMDkzNn0sci51bml0c0ZhY3RvcnM9e2NlbnRpbWV0ZXJzOjEwMCxjZW50aW1ldHJlczoxMDAsZGVncmVlczoxLzExMTMyNSxmZWV0OjMuMjgwODQsaW5jaGVzOjM5LjM3LGtpbG9tZXRlcnM6LjAwMSxraWxvbWV0cmVzOi4wMDEsbWV0ZXJzOjEsbWV0cmVzOjEsbWlsZXM6MS8xNjA5LjM0NCxtaWxsaW1ldGVyczoxZTMsbWlsbGltZXRyZXM6MWUzLG5hdXRpY2FsbWlsZXM6MS8xODUyLHJhZGlhbnM6MS9yLmVhcnRoUmFkaXVzLHlhcmRzOjEvMS4wOTM2fSxyLmFyZWFGYWN0b3JzPXthY3JlczoyNDcxMDVlLTksY2VudGltZXRlcnM6MWU0LGNlbnRpbWV0cmVzOjFlNCxmZWV0OjEwLjc2MzkxMDQxNyxpbmNoZXM6MTU1MC4wMDMxMDAwMDYsa2lsb21ldGVyczoxZS02LGtpbG9tZXRyZXM6MWUtNixtZXRlcnM6MSxtZXRyZXM6MSxtaWxlczozODZlLTksbWlsbGltZXRlcnM6MWU2LG1pbGxpbWV0cmVzOjFlNix5YXJkczoxLjE5NTk5MDA0Nn0sci5mZWF0dXJlPW4sci5nZW9tZXRyeT1mdW5jdGlvbih0LGUscil7c3dpdGNoKHZvaWQgMD09PXImJihyPXt9KSx0KXtjYXNlIlBvaW50IjpyZXR1cm4gaShlKS5nZW9tZXRyeTtjYXNlIkxpbmVTdHJpbmciOnJldHVybiBvKGUpLmdlb21ldHJ5O2Nhc2UiUG9seWdvbiI6cmV0dXJuIGEoZSkuZ2VvbWV0cnk7Y2FzZSJNdWx0aVBvaW50IjpyZXR1cm4gYyhlKS5nZW9tZXRyeTtjYXNlIk11bHRpTGluZVN0cmluZyI6cmV0dXJuIGwoZSkuZ2VvbWV0cnk7Y2FzZSJNdWx0aVBvbHlnb24iOnJldHVybiB1KGUpLmdlb21ldHJ5O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKHQrIiBpcyBpbnZhbGlkIil9fSxyLnBvaW50PWksci5wb2ludHM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB2b2lkIDA9PT1yJiYocj17fSkscyh0Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGkodCxlKX0pKSxyKX0sci5wb2x5Z29uPWEsci5wb2x5Z29ucz1mdW5jdGlvbih0LGUscil7cmV0dXJuIHZvaWQgMD09PXImJihyPXt9KSxzKHQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gYSh0LGUpfSkpLHIpfSxyLmxpbmVTdHJpbmc9byxyLmxpbmVTdHJpbmdzPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdm9pZCAwPT09ciYmKHI9e30pLHModC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBvKHQsZSl9KSkscil9LHIuZmVhdHVyZUNvbGxlY3Rpb249cyxyLm11bHRpTGluZVN0cmluZz1sLHIubXVsdGlQb2ludD1jLHIubXVsdGlQb2x5Z29uPXUsci5nZW9tZXRyeUNvbGxlY3Rpb249ZnVuY3Rpb24odCxlLHIpe3JldHVybiB2b2lkIDA9PT1yJiYocj17fSksbih7dHlwZToiR2VvbWV0cnlDb2xsZWN0aW9uIixnZW9tZXRyaWVzOnR9LGUscil9LHIucm91bmQ9ZnVuY3Rpb24odCxlKXtpZih2b2lkIDA9PT1lJiYoZT0wKSxlJiYhKGU+PTApKXRocm93IG5ldyBFcnJvcigicHJlY2lzaW9uIG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXIiKTt2YXIgcj1NYXRoLnBvdygxMCxlfHwwKTtyZXR1cm4gTWF0aC5yb3VuZCh0KnIpL3J9LHIucmFkaWFuc1RvTGVuZ3RoPWYsci5sZW5ndGhUb1JhZGlhbnM9aCxyLmxlbmd0aFRvRGVncmVlcz1mdW5jdGlvbih0LGUpe3JldHVybiBwKGgodCxlKSl9LHIuYmVhcmluZ1RvQXppbXV0aD1mdW5jdGlvbih0KXt2YXIgZT10JTM2MDtyZXR1cm4gZTwwJiYoZSs9MzYwKSxlfSxyLnJhZGlhbnNUb0RlZ3JlZXM9cCxyLmRlZ3JlZXNUb1JhZGlhbnM9ZnVuY3Rpb24odCl7cmV0dXJuIHQlMzYwKk1hdGguUEkvMTgwfSxyLmNvbnZlcnRMZW5ndGg9ZnVuY3Rpb24odCxlLHIpe2lmKHZvaWQgMD09PWUmJihlPSJraWxvbWV0ZXJzIiksdm9pZCAwPT09ciYmKHI9ImtpbG9tZXRlcnMiKSwhKHQ+PTApKXRocm93IG5ldyBFcnJvcigibGVuZ3RoIG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXIiKTtyZXR1cm4gZihoKHQsZSkscil9LHIuY29udmVydEFyZWE9ZnVuY3Rpb24odCxlLG4pe2lmKHZvaWQgMD09PWUmJihlPSJtZXRlcnMiKSx2b2lkIDA9PT1uJiYobj0ia2lsb21ldGVycyIpLCEodD49MCkpdGhyb3cgbmV3IEVycm9yKCJhcmVhIG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXIiKTt2YXIgaT1yLmFyZWFGYWN0b3JzW2VdO2lmKCFpKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBvcmlnaW5hbCB1bml0cyIpO3ZhciBhPXIuYXJlYUZhY3RvcnNbbl07aWYoIWEpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGZpbmFsIHVuaXRzIik7cmV0dXJuIHQvaSphfSxyLmlzTnVtYmVyPWQsci5pc09iamVjdD1mdW5jdGlvbih0KXtyZXR1cm4hIXQmJnQuY29uc3RydWN0b3I9PT1PYmplY3R9LHIudmFsaWRhdGVCQm94PWZ1bmN0aW9uKHQpe2lmKCF0KXRocm93IG5ldyBFcnJvcigiYmJveCBpcyByZXF1aXJlZCIpO2lmKCFBcnJheS5pc0FycmF5KHQpKXRocm93IG5ldyBFcnJvcigiYmJveCBtdXN0IGJlIGFuIEFycmF5Iik7aWYoNCE9PXQubGVuZ3RoJiY2IT09dC5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJiYm94IG11c3QgYmUgYW4gQXJyYXkgb2YgNCBvciA2IG51bWJlcnMiKTt0LmZvckVhY2goKGZ1bmN0aW9uKHQpe2lmKCFkKHQpKXRocm93IG5ldyBFcnJvcigiYmJveCBtdXN0IG9ubHkgY29udGFpbiBudW1iZXJzIil9KSl9LHIudmFsaWRhdGVJZD1mdW5jdGlvbih0KXtpZighdCl0aHJvdyBuZXcgRXJyb3IoImlkIGlzIHJlcXVpcmVkIik7aWYoLTE9PT1bInN0cmluZyIsIm51bWJlciJdLmluZGV4T2YodHlwZW9mIHQpKXRocm93IG5ldyBFcnJvcigiaWQgbXVzdCBiZSBhIG51bWJlciBvciBhIHN0cmluZyIpfSxyLnJhZGlhbnMyZGVncmVlcz1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigibWV0aG9kIGhhcyBiZWVuIHJlbmFtZWQgdG8gYHJhZGlhbnNUb0RlZ3JlZXNgIil9LHIuZGVncmVlczJyYWRpYW5zPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJtZXRob2QgaGFzIGJlZW4gcmVuYW1lZCB0byBgZGVncmVlc1RvUmFkaWFuc2AiKX0sci5kaXN0YW5jZVRvRGVncmVlcz1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigibWV0aG9kIGhhcyBiZWVuIHJlbmFtZWQgdG8gYGxlbmd0aFRvRGVncmVlc2AiKX0sci5kaXN0YW5jZVRvUmFkaWFucz1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigibWV0aG9kIGhhcyBiZWVuIHJlbmFtZWQgdG8gYGxlbmd0aFRvUmFkaWFuc2AiKX0sci5yYWRpYW5zVG9EaXN0YW5jZT1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigibWV0aG9kIGhhcyBiZWVuIHJlbmFtZWQgdG8gYHJhZGlhbnNUb0xlbmd0aGAiKX0sci5iZWFyaW5nVG9BbmdsZT1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigibWV0aG9kIGhhcyBiZWVuIHJlbmFtZWQgdG8gYGJlYXJpbmdUb0F6aW11dGhgIil9LHIuY29udmVydERpc3RhbmNlPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJtZXRob2QgaGFzIGJlZW4gcmVuYW1lZCB0byBgY29udmVydExlbmd0aGAiKX19LHt9XSw2OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49dCgiQHR1cmYvaGVscGVycyIpO2Z1bmN0aW9uIGkodCxlLHIpe2lmKG51bGwhPT10KWZvcih2YXIgbixhLG8scyxsLGMsdSxmLGg9MCxwPTAsZD10LnR5cGUsbT0iRmVhdHVyZUNvbGxlY3Rpb24iPT09ZCxnPSJGZWF0dXJlIj09PWQsdj1tP3QuZmVhdHVyZXMubGVuZ3RoOjEseT0wO3k8djt5Kyspe2w9KGY9ISEodT1tP3QuZmVhdHVyZXNbeV0uZ2VvbWV0cnk6Zz90Lmdlb21ldHJ5OnQpJiYiR2VvbWV0cnlDb2xsZWN0aW9uIj09PXUudHlwZSk/dS5nZW9tZXRyaWVzLmxlbmd0aDoxO2Zvcih2YXIgeD0wO3g8bDt4Kyspe3ZhciBiPTAsXz0wO2lmKG51bGwhPT0ocz1mP3UuZ2VvbWV0cmllc1t4XTp1KSl7Yz1zLmNvb3JkaW5hdGVzO3ZhciB3PXMudHlwZTtzd2l0Y2goaD0hcnx8IlBvbHlnb24iIT09dyYmIk11bHRpUG9seWdvbiIhPT13PzA6MSx3KXtjYXNlIG51bGw6YnJlYWs7Y2FzZSJQb2ludCI6aWYoITE9PT1lKGMscCx5LGIsXykpcmV0dXJuITE7cCsrLGIrKzticmVhaztjYXNlIkxpbmVTdHJpbmciOmNhc2UiTXVsdGlQb2ludCI6Zm9yKG49MDtuPGMubGVuZ3RoO24rKyl7aWYoITE9PT1lKGNbbl0scCx5LGIsXykpcmV0dXJuITE7cCsrLCJNdWx0aVBvaW50Ij09PXcmJmIrK30iTGluZVN0cmluZyI9PT13JiZiKys7YnJlYWs7Y2FzZSJQb2x5Z29uIjpjYXNlIk11bHRpTGluZVN0cmluZyI6Zm9yKG49MDtuPGMubGVuZ3RoO24rKyl7Zm9yKGE9MDthPGNbbl0ubGVuZ3RoLWg7YSsrKXtpZighMT09PWUoY1tuXVthXSxwLHksYixfKSlyZXR1cm4hMTtwKyt9Ik11bHRpTGluZVN0cmluZyI9PT13JiZiKyssIlBvbHlnb24iPT09dyYmXysrfSJQb2x5Z29uIj09PXcmJmIrKzticmVhaztjYXNlIk11bHRpUG9seWdvbiI6Zm9yKG49MDtuPGMubGVuZ3RoO24rKyl7Zm9yKF89MCxhPTA7YTxjW25dLmxlbmd0aDthKyspe2ZvcihvPTA7bzxjW25dW2FdLmxlbmd0aC1oO28rKyl7aWYoITE9PT1lKGNbbl1bYV1bb10scCx5LGIsXykpcmV0dXJuITE7cCsrfV8rK31iKyt9YnJlYWs7Y2FzZSJHZW9tZXRyeUNvbGxlY3Rpb24iOmZvcihuPTA7bjxzLmdlb21ldHJpZXMubGVuZ3RoO24rKylpZighMT09PWkocy5nZW9tZXRyaWVzW25dLGUscikpcmV0dXJuITE7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gR2VvbWV0cnkgVHlwZSIpfX19fX1mdW5jdGlvbiBhKHQsZSl7dmFyIHI7c3dpdGNoKHQudHlwZSl7Y2FzZSJGZWF0dXJlQ29sbGVjdGlvbiI6Zm9yKHI9MDtyPHQuZmVhdHVyZXMubGVuZ3RoJiYhMSE9PWUodC5mZWF0dXJlc1tyXS5wcm9wZXJ0aWVzLHIpO3IrKyk7YnJlYWs7Y2FzZSJGZWF0dXJlIjplKHQucHJvcGVydGllcywwKX19ZnVuY3Rpb24gbyh0LGUpe2lmKCJGZWF0dXJlIj09PXQudHlwZSllKHQsMCk7ZWxzZSBpZigiRmVhdHVyZUNvbGxlY3Rpb24iPT09dC50eXBlKWZvcih2YXIgcj0wO3I8dC5mZWF0dXJlcy5sZW5ndGgmJiExIT09ZSh0LmZlYXR1cmVzW3JdLHIpO3IrKyk7fWZ1bmN0aW9uIHModCxlKXt2YXIgcixuLGksYSxvLHMsbCxjLHUsZixoPTAscD0iRmVhdHVyZUNvbGxlY3Rpb24iPT09dC50eXBlLGQ9IkZlYXR1cmUiPT09dC50eXBlLG09cD90LmZlYXR1cmVzLmxlbmd0aDoxO2ZvcihyPTA7cjxtO3IrKyl7Zm9yKHM9cD90LmZlYXR1cmVzW3JdLmdlb21ldHJ5OmQ/dC5nZW9tZXRyeTp0LGM9cD90LmZlYXR1cmVzW3JdLnByb3BlcnRpZXM6ZD90LnByb3BlcnRpZXM6e30sdT1wP3QuZmVhdHVyZXNbcl0uYmJveDpkP3QuYmJveDp2b2lkIDAsZj1wP3QuZmVhdHVyZXNbcl0uaWQ6ZD90LmlkOnZvaWQgMCxvPShsPSEhcyYmIkdlb21ldHJ5Q29sbGVjdGlvbiI9PT1zLnR5cGUpP3MuZ2VvbWV0cmllcy5sZW5ndGg6MSxpPTA7aTxvO2krKylpZihudWxsIT09KGE9bD9zLmdlb21ldHJpZXNbaV06cykpc3dpdGNoKGEudHlwZSl7Y2FzZSJQb2ludCI6Y2FzZSJMaW5lU3RyaW5nIjpjYXNlIk11bHRpUG9pbnQiOmNhc2UiUG9seWdvbiI6Y2FzZSJNdWx0aUxpbmVTdHJpbmciOmNhc2UiTXVsdGlQb2x5Z29uIjppZighMT09PWUoYSxoLGMsdSxmKSlyZXR1cm4hMTticmVhaztjYXNlIkdlb21ldHJ5Q29sbGVjdGlvbiI6Zm9yKG49MDtuPGEuZ2VvbWV0cmllcy5sZW5ndGg7bisrKWlmKCExPT09ZShhLmdlb21ldHJpZXNbbl0saCxjLHUsZikpcmV0dXJuITE7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gR2VvbWV0cnkgVHlwZSIpfWVsc2UgaWYoITE9PT1lKG51bGwsaCxjLHUsZikpcmV0dXJuITE7aCsrfX1mdW5jdGlvbiBsKHQsZSl7cyh0LChmdW5jdGlvbih0LHIsaSxhLG8pe3ZhciBzLGw9bnVsbD09PXQ/bnVsbDp0LnR5cGU7c3dpdGNoKGwpe2Nhc2UgbnVsbDpjYXNlIlBvaW50IjpjYXNlIkxpbmVTdHJpbmciOmNhc2UiUG9seWdvbiI6cmV0dXJuITEhPT1lKG4uZmVhdHVyZSh0LGkse2Jib3g6YSxpZDpvfSksciwwKSYmdm9pZCAwfXN3aXRjaChsKXtjYXNlIk11bHRpUG9pbnQiOnM9IlBvaW50IjticmVhaztjYXNlIk11bHRpTGluZVN0cmluZyI6cz0iTGluZVN0cmluZyI7YnJlYWs7Y2FzZSJNdWx0aVBvbHlnb24iOnM9IlBvbHlnb24ifWZvcih2YXIgYz0wO2M8dC5jb29yZGluYXRlcy5sZW5ndGg7YysrKXt2YXIgdT17dHlwZTpzLGNvb3JkaW5hdGVzOnQuY29vcmRpbmF0ZXNbY119O2lmKCExPT09ZShuLmZlYXR1cmUodSxpKSxyLGMpKXJldHVybiExfX0pKX1mdW5jdGlvbiBjKHQsZSl7bCh0LChmdW5jdGlvbih0LHIsYSl7dmFyIG89MDtpZih0Lmdlb21ldHJ5KXt2YXIgcz10Lmdlb21ldHJ5LnR5cGU7aWYoIlBvaW50IiE9PXMmJiJNdWx0aVBvaW50IiE9PXMpe3ZhciBsLGM9MCx1PTAsZj0wO3JldHVybiExIT09aSh0LChmdW5jdGlvbihpLHMsaCxwLGQpe2lmKHZvaWQgMD09PWx8fHI+Y3x8cD51fHxkPmYpcmV0dXJuIGw9aSxjPXIsdT1wLGY9ZCx2b2lkKG89MCk7dmFyIG09bi5saW5lU3RyaW5nKFtsLGldLHQucHJvcGVydGllcyk7aWYoITE9PT1lKG0scixhLGQsbykpcmV0dXJuITE7bysrLGw9aX0pKSYmdm9pZCAwfX19KSl9ZnVuY3Rpb24gdSh0LGUpe2lmKCF0KXRocm93IG5ldyBFcnJvcigiZ2VvanNvbiBpcyByZXF1aXJlZCIpO2wodCwoZnVuY3Rpb24odCxyLGkpe2lmKG51bGwhPT10Lmdlb21ldHJ5KXt2YXIgYT10Lmdlb21ldHJ5LnR5cGUsbz10Lmdlb21ldHJ5LmNvb3JkaW5hdGVzO3N3aXRjaChhKXtjYXNlIkxpbmVTdHJpbmciOmlmKCExPT09ZSh0LHIsaSwwLDApKXJldHVybiExO2JyZWFrO2Nhc2UiUG9seWdvbiI6Zm9yKHZhciBzPTA7czxvLmxlbmd0aDtzKyspaWYoITE9PT1lKG4ubGluZVN0cmluZyhvW3NdLHQucHJvcGVydGllcykscixpLHMpKXJldHVybiExfX19KSl9ci5jb29yZEVhY2g9aSxyLmNvb3JkUmVkdWNlPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhPXI7cmV0dXJuIGkodCwoZnVuY3Rpb24odCxuLGksbyxzKXthPTA9PT1uJiZ2b2lkIDA9PT1yP3Q6ZShhLHQsbixpLG8scyl9KSxuKSxhfSxyLnByb3BFYWNoPWEsci5wcm9wUmVkdWNlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1yO3JldHVybiBhKHQsKGZ1bmN0aW9uKHQsaSl7bj0wPT09aSYmdm9pZCAwPT09cj90OmUobix0LGkpfSkpLG59LHIuZmVhdHVyZUVhY2g9byxyLmZlYXR1cmVSZWR1Y2U9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXI7cmV0dXJuIG8odCwoZnVuY3Rpb24odCxpKXtuPTA9PT1pJiZ2b2lkIDA9PT1yP3Q6ZShuLHQsaSl9KSksbn0sci5jb29yZEFsbD1mdW5jdGlvbih0KXt2YXIgZT1bXTtyZXR1cm4gaSh0LChmdW5jdGlvbih0KXtlLnB1c2godCl9KSksZX0sci5nZW9tRWFjaD1zLHIuZ2VvbVJlZHVjZT1mdW5jdGlvbih0LGUscil7dmFyIG49cjtyZXR1cm4gcyh0LChmdW5jdGlvbih0LGksYSxvLHMpe249MD09PWkmJnZvaWQgMD09PXI/dDplKG4sdCxpLGEsbyxzKX0pKSxufSxyLmZsYXR0ZW5FYWNoPWwsci5mbGF0dGVuUmVkdWNlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1yO3JldHVybiBsKHQsKGZ1bmN0aW9uKHQsaSxhKXtuPTA9PT1pJiYwPT09YSYmdm9pZCAwPT09cj90OmUobix0LGksYSl9KSksbn0sci5zZWdtZW50RWFjaD1jLHIuc2VnbWVudFJlZHVjZT1mdW5jdGlvbih0LGUscil7dmFyIG49cixpPSExO3JldHVybiBjKHQsKGZ1bmN0aW9uKHQsYSxvLHMsbCl7bj0hMT09PWkmJnZvaWQgMD09PXI/dDplKG4sdCxhLG8scyxsKSxpPSEwfSkpLG59LHIubGluZUVhY2g9dSxyLmxpbmVSZWR1Y2U9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXI7cmV0dXJuIHUodCwoZnVuY3Rpb24odCxpLGEsbyl7bj0wPT09aSYmdm9pZCAwPT09cj90OmUobix0LGksYSxvKX0pKSxufSxyLmZpbmRTZWdtZW50PWZ1bmN0aW9uKHQsZSl7aWYoZT1lfHx7fSwhbi5pc09iamVjdChlKSl0aHJvdyBuZXcgRXJyb3IoIm9wdGlvbnMgaXMgaW52YWxpZCIpO3ZhciByLGk9ZS5mZWF0dXJlSW5kZXh8fDAsYT1lLm11bHRpRmVhdHVyZUluZGV4fHwwLG89ZS5nZW9tZXRyeUluZGV4fHwwLHM9ZS5zZWdtZW50SW5kZXh8fDAsbD1lLnByb3BlcnRpZXM7c3dpdGNoKHQudHlwZSl7Y2FzZSJGZWF0dXJlQ29sbGVjdGlvbiI6aTwwJiYoaT10LmZlYXR1cmVzLmxlbmd0aCtpKSxsPWx8fHQuZmVhdHVyZXNbaV0ucHJvcGVydGllcyxyPXQuZmVhdHVyZXNbaV0uZ2VvbWV0cnk7YnJlYWs7Y2FzZSJGZWF0dXJlIjpsPWx8fHQucHJvcGVydGllcyxyPXQuZ2VvbWV0cnk7YnJlYWs7Y2FzZSJQb2ludCI6Y2FzZSJNdWx0aVBvaW50IjpyZXR1cm4gbnVsbDtjYXNlIkxpbmVTdHJpbmciOmNhc2UiUG9seWdvbiI6Y2FzZSJNdWx0aUxpbmVTdHJpbmciOmNhc2UiTXVsdGlQb2x5Z29uIjpyPXQ7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoImdlb2pzb24gaXMgaW52YWxpZCIpfWlmKG51bGw9PT1yKXJldHVybiBudWxsO3ZhciBjPXIuY29vcmRpbmF0ZXM7c3dpdGNoKHIudHlwZSl7Y2FzZSJQb2ludCI6Y2FzZSJNdWx0aVBvaW50IjpyZXR1cm4gbnVsbDtjYXNlIkxpbmVTdHJpbmciOnJldHVybiBzPDAmJihzPWMubGVuZ3RoK3MtMSksbi5saW5lU3RyaW5nKFtjW3NdLGNbcysxXV0sbCxlKTtjYXNlIlBvbHlnb24iOnJldHVybiBvPDAmJihvPWMubGVuZ3RoK28pLHM8MCYmKHM9Y1tvXS5sZW5ndGgrcy0xKSxuLmxpbmVTdHJpbmcoW2Nbb11bc10sY1tvXVtzKzFdXSxsLGUpO2Nhc2UiTXVsdGlMaW5lU3RyaW5nIjpyZXR1cm4gYTwwJiYoYT1jLmxlbmd0aCthKSxzPDAmJihzPWNbYV0ubGVuZ3RoK3MtMSksbi5saW5lU3RyaW5nKFtjW2FdW3NdLGNbYV1bcysxXV0sbCxlKTtjYXNlIk11bHRpUG9seWdvbiI6cmV0dXJuIGE8MCYmKGE9Yy5sZW5ndGgrYSksbzwwJiYobz1jW2FdLmxlbmd0aCtvKSxzPDAmJihzPWNbYV1bb10ubGVuZ3RoLXMtMSksbi5saW5lU3RyaW5nKFtjW2FdW29dW3NdLGNbYV1bb11bcysxXV0sbCxlKX10aHJvdyBuZXcgRXJyb3IoImdlb2pzb24gaXMgaW52YWxpZCIpfSxyLmZpbmRQb2ludD1mdW5jdGlvbih0LGUpe2lmKGU9ZXx8e30sIW4uaXNPYmplY3QoZSkpdGhyb3cgbmV3IEVycm9yKCJvcHRpb25zIGlzIGludmFsaWQiKTt2YXIgcixpPWUuZmVhdHVyZUluZGV4fHwwLGE9ZS5tdWx0aUZlYXR1cmVJbmRleHx8MCxvPWUuZ2VvbWV0cnlJbmRleHx8MCxzPWUuY29vcmRJbmRleHx8MCxsPWUucHJvcGVydGllcztzd2l0Y2godC50eXBlKXtjYXNlIkZlYXR1cmVDb2xsZWN0aW9uIjppPDAmJihpPXQuZmVhdHVyZXMubGVuZ3RoK2kpLGw9bHx8dC5mZWF0dXJlc1tpXS5wcm9wZXJ0aWVzLHI9dC5mZWF0dXJlc1tpXS5nZW9tZXRyeTticmVhaztjYXNlIkZlYXR1cmUiOmw9bHx8dC5wcm9wZXJ0aWVzLHI9dC5nZW9tZXRyeTticmVhaztjYXNlIlBvaW50IjpjYXNlIk11bHRpUG9pbnQiOnJldHVybiBudWxsO2Nhc2UiTGluZVN0cmluZyI6Y2FzZSJQb2x5Z29uIjpjYXNlIk11bHRpTGluZVN0cmluZyI6Y2FzZSJNdWx0aVBvbHlnb24iOnI9dDticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiZ2VvanNvbiBpcyBpbnZhbGlkIil9aWYobnVsbD09PXIpcmV0dXJuIG51bGw7dmFyIGM9ci5jb29yZGluYXRlcztzd2l0Y2goci50eXBlKXtjYXNlIlBvaW50IjpyZXR1cm4gbi5wb2ludChjLGwsZSk7Y2FzZSJNdWx0aVBvaW50IjpyZXR1cm4gYTwwJiYoYT1jLmxlbmd0aCthKSxuLnBvaW50KGNbYV0sbCxlKTtjYXNlIkxpbmVTdHJpbmciOnJldHVybiBzPDAmJihzPWMubGVuZ3RoK3MpLG4ucG9pbnQoY1tzXSxsLGUpO2Nhc2UiUG9seWdvbiI6cmV0dXJuIG88MCYmKG89Yy5sZW5ndGgrbyksczwwJiYocz1jW29dLmxlbmd0aCtzKSxuLnBvaW50KGNbb11bc10sbCxlKTtjYXNlIk11bHRpTGluZVN0cmluZyI6cmV0dXJuIGE8MCYmKGE9Yy5sZW5ndGgrYSksczwwJiYocz1jW2FdLmxlbmd0aCtzKSxuLnBvaW50KGNbYV1bc10sbCxlKTtjYXNlIk11bHRpUG9seWdvbiI6cmV0dXJuIGE8MCYmKGE9Yy5sZW5ndGgrYSksbzwwJiYobz1jW2FdLmxlbmd0aCtvKSxzPDAmJihzPWNbYV1bb10ubGVuZ3RoLXMpLG4ucG9pbnQoY1thXVtvXVtzXSxsLGUpfXRocm93IG5ldyBFcnJvcigiZ2VvanNvbiBpcyBpbnZhbGlkIil9fSx7IkB0dXJmL2hlbHBlcnMiOjY4fV0sNzA6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9MCxyPTAsbj0wLGk9MDtyZXR1cm4gdC5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBhPSh0PXQuc2xpY2UoKSlbMF0sbz1hLnRvVXBwZXJDYXNlKCk7aWYoYSE9bylzd2l0Y2godFswXT1vLGEpe2Nhc2UiYSI6dFs2XSs9bix0WzddKz1pO2JyZWFrO2Nhc2UidiI6dFsxXSs9aTticmVhaztjYXNlImgiOnRbMV0rPW47YnJlYWs7ZGVmYXVsdDpmb3IodmFyIHM9MTtzPHQubGVuZ3RoOyl0W3MrK10rPW4sdFtzKytdKz1pfXN3aXRjaChvKXtjYXNlIloiOm49ZSxpPXI7YnJlYWs7Y2FzZSJIIjpuPXRbMV07YnJlYWs7Y2FzZSJWIjppPXRbMV07YnJlYWs7Y2FzZSJNIjpuPWU9dFsxXSxpPXI9dFsyXTticmVhaztkZWZhdWx0Om49dFt0Lmxlbmd0aC0yXSxpPXRbdC5sZW5ndGgtMV19cmV0dXJuIHR9KSl9fSx7fV0sNzE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aWYoIXR8fG51bGw9PXQubGVuZ3RoKXRocm93IEVycm9yKCJBcmd1bWVudCBzaG91bGQgYmUgYW4gYXJyYXkiKTtlPW51bGw9PWU/MTpNYXRoLmZsb29yKGUpO2Zvcih2YXIgcj1BcnJheSgyKmUpLG49MDtuPGU7bisrKXtmb3IodmFyIGk9LTEvMCxhPTEvMCxvPW4scz10Lmxlbmd0aDtvPHM7bys9ZSl0W29dPmkmJihpPXRbb10pLHRbb108YSYmKGE9dFtvXSk7cltuXT1hLHJbZStuXT1pfXJldHVybiByfX0se31dLDcyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7aWYoImZ1bmN0aW9uIj09dHlwZW9mIEFycmF5LnByb3RvdHlwZS5maW5kSW5kZXgpcmV0dXJuIHQuZmluZEluZGV4KGUscik7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcigicHJlZGljYXRlIG11c3QgYmUgYSBmdW5jdGlvbiIpO3ZhciBuPU9iamVjdCh0KSxpPW4ubGVuZ3RoO2lmKDA9PT1pKXJldHVybi0xO2Zvcih2YXIgYT0wO2E8aTthKyspaWYoZS5jYWxsKHIsblthXSxhLG4pKXJldHVybiBhO3JldHVybi0xfX0se31dLDczOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImFycmF5LWJvdW5kcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7aWYoIXR8fG51bGw9PXQubGVuZ3RoKXRocm93IEVycm9yKCJBcmd1bWVudCBzaG91bGQgYmUgYW4gYXJyYXkiKTtudWxsPT1lJiYoZT0xKTtudWxsPT1yJiYocj1uKHQsZSkpO2Zvcih2YXIgaT0wO2k8ZTtpKyspe3ZhciBhPXJbZStpXSxvPXJbaV0scz1pLGw9dC5sZW5ndGg7aWYoYT09PTEvMCYmbz09PS0xLzApZm9yKHM9aTtzPGw7cys9ZSl0W3NdPXRbc109PT1hPzE6dFtzXT09PW8/MDouNTtlbHNlIGlmKGE9PT0xLzApZm9yKHM9aTtzPGw7cys9ZSl0W3NdPXRbc109PT1hPzE6MDtlbHNlIGlmKG89PT0tMS8wKWZvcihzPWk7czxsO3MrPWUpdFtzXT10W3NdPT09bz8wOjE7ZWxzZXt2YXIgYz1hLW87Zm9yKHM9aTtzPGw7cys9ZSlpc05hTih0W3NdKXx8KHRbc109MD09PWM/LjU6KHRbc10tbykvYyl9fXJldHVybiB0fX0seyJhcnJheS1ib3VuZHMiOjcxfV0sNzQ6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj0ibnVtYmVyIj09dHlwZW9mIHQsbj0ibnVtYmVyIj09dHlwZW9mIGU7ciYmIW4/KGU9dCx0PTApOnJ8fG58fCh0PTAsZT0wKTt2YXIgaT0oZXw9MCktKHR8PTApO2lmKGk8MCl0aHJvdyBuZXcgRXJyb3IoImFycmF5IGxlbmd0aCBtdXN0IGJlIHBvc2l0aXZlIik7Zm9yKHZhciBhPW5ldyBBcnJheShpKSxvPTAscz10O288aTtvKysscysrKWFbb109cztyZXR1cm4gYX19LHt9XSw3NTpbZnVuY3Rpb24odCxlLHIpeyhmdW5jdGlvbihyKXsoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIG49dCgib2JqZWN0LWFzc2lnbiIpOwovKiEKICogVGhlIGJ1ZmZlciBtb2R1bGUgZnJvbSBub2RlLmpzLCBmb3IgdGhlIGJyb3dzZXIuCiAqCiAqIEBhdXRob3IgICBGZXJvc3MgQWJvdWtoYWRpamVoIDxmZXJvc3NAZmVyb3NzLm9yZz4gPGh0dHA6Ly9mZXJvc3Mub3JnPgogKiBAbGljZW5zZSAgTUlUCiAqL2Z1bmN0aW9uIGkodCxlKXtpZih0PT09ZSlyZXR1cm4gMDtmb3IodmFyIHI9dC5sZW5ndGgsbj1lLmxlbmd0aCxpPTAsYT1NYXRoLm1pbihyLG4pO2k8YTsrK2kpaWYodFtpXSE9PWVbaV0pe3I9dFtpXSxuPWVbaV07YnJlYWt9cmV0dXJuIHI8bj8tMTpuPHI/MTowfWZ1bmN0aW9uIGEodCl7cmV0dXJuIHIuQnVmZmVyJiYiZnVuY3Rpb24iPT10eXBlb2Ygci5CdWZmZXIuaXNCdWZmZXI/ci5CdWZmZXIuaXNCdWZmZXIodCk6IShudWxsPT10fHwhdC5faXNCdWZmZXIpfXZhciBvPXQoInV0aWwvIikscz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGw9QXJyYXkucHJvdG90eXBlLnNsaWNlLGM9ImZvbyI9PT1mdW5jdGlvbigpe30ubmFtZTtmdW5jdGlvbiB1KHQpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9ZnVuY3Rpb24gZih0KXtyZXR1cm4hYSh0KSYmKCJmdW5jdGlvbiI9PXR5cGVvZiByLkFycmF5QnVmZmVyJiYoImZ1bmN0aW9uIj09dHlwZW9mIEFycmF5QnVmZmVyLmlzVmlldz9BcnJheUJ1ZmZlci5pc1ZpZXcodCk6ISF0JiYodCBpbnN0YW5jZW9mIERhdGFWaWV3fHwhISh0LmJ1ZmZlciYmdC5idWZmZXIgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikpKSl9dmFyIGg9ZS5leHBvcnRzPXkscD0vXHMqZnVuY3Rpb25ccysoW15cKFxzXSopXHMqLztmdW5jdGlvbiBkKHQpe2lmKG8uaXNGdW5jdGlvbih0KSl7aWYoYylyZXR1cm4gdC5uYW1lO3ZhciBlPXQudG9TdHJpbmcoKS5tYXRjaChwKTtyZXR1cm4gZSYmZVsxXX19ZnVuY3Rpb24gbSh0LGUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdD90Lmxlbmd0aDxlP3Q6dC5zbGljZSgwLGUpOnR9ZnVuY3Rpb24gZyh0KXtpZihjfHwhby5pc0Z1bmN0aW9uKHQpKXJldHVybiBvLmluc3BlY3QodCk7dmFyIGU9ZCh0KTtyZXR1cm4iW0Z1bmN0aW9uIisoZT8iOiAiK2U6IiIpKyJdIn1mdW5jdGlvbiB2KHQsZSxyLG4saSl7dGhyb3cgbmV3IGguQXNzZXJ0aW9uRXJyb3Ioe21lc3NhZ2U6cixhY3R1YWw6dCxleHBlY3RlZDplLG9wZXJhdG9yOm4sc3RhY2tTdGFydEZ1bmN0aW9uOml9KX1mdW5jdGlvbiB5KHQsZSl7dHx8dih0LCEwLGUsIj09IixoLm9rKX1mdW5jdGlvbiB4KHQsZSxyLG4pe2lmKHQ9PT1lKXJldHVybiEwO2lmKGEodCkmJmEoZSkpcmV0dXJuIDA9PT1pKHQsZSk7aWYoby5pc0RhdGUodCkmJm8uaXNEYXRlKGUpKXJldHVybiB0LmdldFRpbWUoKT09PWUuZ2V0VGltZSgpO2lmKG8uaXNSZWdFeHAodCkmJm8uaXNSZWdFeHAoZSkpcmV0dXJuIHQuc291cmNlPT09ZS5zb3VyY2UmJnQuZ2xvYmFsPT09ZS5nbG9iYWwmJnQubXVsdGlsaW5lPT09ZS5tdWx0aWxpbmUmJnQubGFzdEluZGV4PT09ZS5sYXN0SW5kZXgmJnQuaWdub3JlQ2FzZT09PWUuaWdub3JlQ2FzZTtpZihudWxsIT09dCYmIm9iamVjdCI9PXR5cGVvZiB0fHxudWxsIT09ZSYmIm9iamVjdCI9PXR5cGVvZiBlKXtpZihmKHQpJiZmKGUpJiZ1KHQpPT09dShlKSYmISh0IGluc3RhbmNlb2YgRmxvYXQzMkFycmF5fHx0IGluc3RhbmNlb2YgRmxvYXQ2NEFycmF5KSlyZXR1cm4gMD09PWkobmV3IFVpbnQ4QXJyYXkodC5idWZmZXIpLG5ldyBVaW50OEFycmF5KGUuYnVmZmVyKSk7aWYoYSh0KSE9PWEoZSkpcmV0dXJuITE7dmFyIHM9KG49bnx8e2FjdHVhbDpbXSxleHBlY3RlZDpbXX0pLmFjdHVhbC5pbmRleE9mKHQpO3JldHVybi0xIT09cyYmcz09PW4uZXhwZWN0ZWQuaW5kZXhPZihlKXx8KG4uYWN0dWFsLnB1c2godCksbi5leHBlY3RlZC5wdXNoKGUpLGZ1bmN0aW9uKHQsZSxyLG4pe2lmKG51bGw9PXR8fG51bGw9PWUpcmV0dXJuITE7aWYoby5pc1ByaW1pdGl2ZSh0KXx8by5pc1ByaW1pdGl2ZShlKSlyZXR1cm4gdD09PWU7aWYociYmT2JqZWN0LmdldFByb3RvdHlwZU9mKHQpIT09T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpKXJldHVybiExO3ZhciBpPWIodCksYT1iKGUpO2lmKGkmJiFhfHwhaSYmYSlyZXR1cm4hMTtpZihpKXJldHVybiB0PWwuY2FsbCh0KSxlPWwuY2FsbChlKSx4KHQsZSxyKTt2YXIgcyxjLHU9VCh0KSxmPVQoZSk7aWYodS5sZW5ndGghPT1mLmxlbmd0aClyZXR1cm4hMTtmb3IodS5zb3J0KCksZi5zb3J0KCksYz11Lmxlbmd0aC0xO2M+PTA7Yy0tKWlmKHVbY10hPT1mW2NdKXJldHVybiExO2ZvcihjPXUubGVuZ3RoLTE7Yz49MDtjLS0paWYocz11W2NdLCF4KHRbc10sZVtzXSxyLG4pKXJldHVybiExO3JldHVybiEwfSh0LGUscixuKSl9cmV0dXJuIHI/dD09PWU6dD09ZX1mdW5jdGlvbiBiKHQpe3JldHVybiJbb2JqZWN0IEFyZ3VtZW50c10iPT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9ZnVuY3Rpb24gXyh0LGUpe2lmKCF0fHwhZSlyZXR1cm4hMTtpZigiW29iamVjdCBSZWdFeHBdIj09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpKXJldHVybiBlLnRlc3QodCk7dHJ5e2lmKHQgaW5zdGFuY2VvZiBlKXJldHVybiEwfWNhdGNoKHQpe31yZXR1cm4hRXJyb3IuaXNQcm90b3R5cGVPZihlKSYmITA9PT1lLmNhbGwoe30sdCl9ZnVuY3Rpb24gdyh0LGUscixuKXt2YXIgaTtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKCciYmxvY2siIGFyZ3VtZW50IG11c3QgYmUgYSBmdW5jdGlvbicpOyJzdHJpbmciPT10eXBlb2YgciYmKG49cixyPW51bGwpLGk9ZnVuY3Rpb24odCl7dmFyIGU7dHJ5e3QoKX1jYXRjaCh0KXtlPXR9cmV0dXJuIGV9KGUpLG49KHImJnIubmFtZT8iICgiK3IubmFtZSsiKS4iOiIuIikrKG4/IiAiK246Ii4iKSx0JiYhaSYmdihpLHIsIk1pc3NpbmcgZXhwZWN0ZWQgZXhjZXB0aW9uIituKTt2YXIgYT0ic3RyaW5nIj09dHlwZW9mIG4scz0hdCYmaSYmIXI7aWYoKCF0JiZvLmlzRXJyb3IoaSkmJmEmJl8oaSxyKXx8cykmJnYoaSxyLCJHb3QgdW53YW50ZWQgZXhjZXB0aW9uIituKSx0JiZpJiZyJiYhXyhpLHIpfHwhdCYmaSl0aHJvdyBpfWguQXNzZXJ0aW9uRXJyb3I9ZnVuY3Rpb24odCl7dGhpcy5uYW1lPSJBc3NlcnRpb25FcnJvciIsdGhpcy5hY3R1YWw9dC5hY3R1YWwsdGhpcy5leHBlY3RlZD10LmV4cGVjdGVkLHRoaXMub3BlcmF0b3I9dC5vcGVyYXRvcix0Lm1lc3NhZ2U/KHRoaXMubWVzc2FnZT10Lm1lc3NhZ2UsdGhpcy5nZW5lcmF0ZWRNZXNzYWdlPSExKToodGhpcy5tZXNzYWdlPWZ1bmN0aW9uKHQpe3JldHVybiBtKGcodC5hY3R1YWwpLDEyOCkrIiAiK3Qub3BlcmF0b3IrIiAiK20oZyh0LmV4cGVjdGVkKSwxMjgpfSh0aGlzKSx0aGlzLmdlbmVyYXRlZE1lc3NhZ2U9ITApO3ZhciBlPXQuc3RhY2tTdGFydEZ1bmN0aW9ufHx2O2lmKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKUVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsZSk7ZWxzZXt2YXIgcj1uZXcgRXJyb3I7aWYoci5zdGFjayl7dmFyIG49ci5zdGFjayxpPWQoZSksYT1uLmluZGV4T2YoIlxuIitpKTtpZihhPj0wKXt2YXIgbz1uLmluZGV4T2YoIlxuIixhKzEpO249bi5zdWJzdHJpbmcobysxKX10aGlzLnN0YWNrPW59fX0sby5pbmhlcml0cyhoLkFzc2VydGlvbkVycm9yLEVycm9yKSxoLmZhaWw9dixoLm9rPXksaC5lcXVhbD1mdW5jdGlvbih0LGUscil7dCE9ZSYmdih0LGUsciwiPT0iLGguZXF1YWwpfSxoLm5vdEVxdWFsPWZ1bmN0aW9uKHQsZSxyKXt0PT1lJiZ2KHQsZSxyLCIhPSIsaC5ub3RFcXVhbCl9LGguZGVlcEVxdWFsPWZ1bmN0aW9uKHQsZSxyKXt4KHQsZSwhMSl8fHYodCxlLHIsImRlZXBFcXVhbCIsaC5kZWVwRXF1YWwpfSxoLmRlZXBTdHJpY3RFcXVhbD1mdW5jdGlvbih0LGUscil7eCh0LGUsITApfHx2KHQsZSxyLCJkZWVwU3RyaWN0RXF1YWwiLGguZGVlcFN0cmljdEVxdWFsKX0saC5ub3REZWVwRXF1YWw9ZnVuY3Rpb24odCxlLHIpe3godCxlLCExKSYmdih0LGUsciwibm90RGVlcEVxdWFsIixoLm5vdERlZXBFcXVhbCl9LGgubm90RGVlcFN0cmljdEVxdWFsPWZ1bmN0aW9uIHQoZSxyLG4pe3goZSxyLCEwKSYmdihlLHIsbiwibm90RGVlcFN0cmljdEVxdWFsIix0KX0saC5zdHJpY3RFcXVhbD1mdW5jdGlvbih0LGUscil7dCE9PWUmJnYodCxlLHIsIj09PSIsaC5zdHJpY3RFcXVhbCl9LGgubm90U3RyaWN0RXF1YWw9ZnVuY3Rpb24odCxlLHIpe3Q9PT1lJiZ2KHQsZSxyLCIhPT0iLGgubm90U3RyaWN0RXF1YWwpfSxoLnRocm93cz1mdW5jdGlvbih0LGUscil7dyghMCx0LGUscil9LGguZG9lc05vdFRocm93PWZ1bmN0aW9uKHQsZSxyKXt3KCExLHQsZSxyKX0saC5pZkVycm9yPWZ1bmN0aW9uKHQpe2lmKHQpdGhyb3cgdH0saC5zdHJpY3Q9bigoZnVuY3Rpb24gdChlLHIpe2V8fHYoZSwhMCxyLCI9PSIsdCl9KSxoLHtlcXVhbDpoLnN0cmljdEVxdWFsLGRlZXBFcXVhbDpoLmRlZXBTdHJpY3RFcXVhbCxub3RFcXVhbDpoLm5vdFN0cmljdEVxdWFsLG5vdERlZXBFcXVhbDpoLm5vdERlZXBTdHJpY3RFcXVhbH0pLGguc3RyaWN0LnN0cmljdD1oLnN0cmljdDt2YXIgVD1PYmplY3Qua2V5c3x8ZnVuY3Rpb24odCl7dmFyIGU9W107Zm9yKHZhciByIGluIHQpcy5jYWxsKHQscikmJmUucHVzaChyKTtyZXR1cm4gZX19KS5jYWxsKHRoaXMpfSkuY2FsbCh0aGlzLCJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsP2dsb2JhbDoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6e30pfSx7Im9iamVjdC1hc3NpZ24iOjI0NywidXRpbC8iOjc4fV0sNzY6W2Z1bmN0aW9uKHQsZSxyKXsiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmNyZWF0ZT9lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt0LnN1cGVyXz1lLHQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pfTplLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt0LnN1cGVyXz1lO3ZhciByPWZ1bmN0aW9uKCl7fTtyLnByb3RvdHlwZT1lLnByb3RvdHlwZSx0LnByb3RvdHlwZT1uZXcgcix0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj10fX0se31dLDc3OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiB0JiYib2JqZWN0Ij09dHlwZW9mIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LmNvcHkmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LmZpbGwmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LnJlYWRVSW50OH19LHt9XSw3ODpbZnVuY3Rpb24odCxlLHIpeyhmdW5jdGlvbihlLG4peyhmdW5jdGlvbigpe3ZhciBpPS8lW3NkaiVdL2c7ci5mb3JtYXQ9ZnVuY3Rpb24odCl7aWYoIXYodCkpe2Zvcih2YXIgZT1bXSxyPTA7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyllLnB1c2gocyhhcmd1bWVudHNbcl0pKTtyZXR1cm4gZS5qb2luKCIgIil9cj0xO2Zvcih2YXIgbj1hcmd1bWVudHMsYT1uLmxlbmd0aCxvPVN0cmluZyh0KS5yZXBsYWNlKGksKGZ1bmN0aW9uKHQpe2lmKCIlJSI9PT10KXJldHVybiIlIjtpZihyPj1hKXJldHVybiB0O3N3aXRjaCh0KXtjYXNlIiVzIjpyZXR1cm4gU3RyaW5nKG5bcisrXSk7Y2FzZSIlZCI6cmV0dXJuIE51bWJlcihuW3IrK10pO2Nhc2UiJWoiOnRyeXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkobltyKytdKX1jYXRjaCh0KXtyZXR1cm4iW0NpcmN1bGFyXSJ9ZGVmYXVsdDpyZXR1cm4gdH19KSksbD1uW3JdO3I8YTtsPW5bKytyXSltKGwpfHwhYihsKT9vKz0iICIrbDpvKz0iICIrcyhsKTtyZXR1cm4gb30sci5kZXByZWNhdGU9ZnVuY3Rpb24odCxpKXtpZih5KG4ucHJvY2VzcykpcmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHIuZGVwcmVjYXRlKHQsaSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtpZighMD09PWUubm9EZXByZWNhdGlvbilyZXR1cm4gdDt2YXIgYT0hMTtyZXR1cm4gZnVuY3Rpb24oKXtpZighYSl7aWYoZS50aHJvd0RlcHJlY2F0aW9uKXRocm93IG5ldyBFcnJvcihpKTtlLnRyYWNlRGVwcmVjYXRpb24/Y29uc29sZS50cmFjZShpKTpjb25zb2xlLmVycm9yKGkpLGE9ITB9cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX07dmFyIGEsbz17fTtmdW5jdGlvbiBzKHQsZSl7dmFyIG49e3NlZW46W10sc3R5bGl6ZTpjfTtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD49MyYmKG4uZGVwdGg9YXJndW1lbnRzWzJdKSxhcmd1bWVudHMubGVuZ3RoPj00JiYobi5jb2xvcnM9YXJndW1lbnRzWzNdKSxkKGUpP24uc2hvd0hpZGRlbj1lOmUmJnIuX2V4dGVuZChuLGUpLHkobi5zaG93SGlkZGVuKSYmKG4uc2hvd0hpZGRlbj0hMSkseShuLmRlcHRoKSYmKG4uZGVwdGg9MikseShuLmNvbG9ycykmJihuLmNvbG9ycz0hMSkseShuLmN1c3RvbUluc3BlY3QpJiYobi5jdXN0b21JbnNwZWN0PSEwKSxuLmNvbG9ycyYmKG4uc3R5bGl6ZT1sKSx1KG4sdCxuLmRlcHRoKX1mdW5jdGlvbiBsKHQsZSl7dmFyIHI9cy5zdHlsZXNbZV07cmV0dXJuIHI/Ilx4MWJbIitzLmNvbG9yc1tyXVswXSsibSIrdCsiXHgxYlsiK3MuY29sb3JzW3JdWzFdKyJtIjp0fWZ1bmN0aW9uIGModCxlKXtyZXR1cm4gdH1mdW5jdGlvbiB1KHQsZSxuKXtpZih0LmN1c3RvbUluc3BlY3QmJmUmJlQoZS5pbnNwZWN0KSYmZS5pbnNwZWN0IT09ci5pbnNwZWN0JiYoIWUuY29uc3RydWN0b3J8fGUuY29uc3RydWN0b3IucHJvdG90eXBlIT09ZSkpe3ZhciBpPWUuaW5zcGVjdChuLHQpO3JldHVybiB2KGkpfHwoaT11KHQsaSxuKSksaX12YXIgYT1mdW5jdGlvbih0LGUpe2lmKHkoZSkpcmV0dXJuIHQuc3R5bGl6ZSgidW5kZWZpbmVkIiwidW5kZWZpbmVkIik7aWYodihlKSl7dmFyIHI9IiciK0pTT04uc3RyaW5naWZ5KGUpLnJlcGxhY2UoL14ifCIkL2csIiIpLnJlcGxhY2UoLycvZywiXFwnIikucmVwbGFjZSgvXFwiL2csJyInKSsiJyI7cmV0dXJuIHQuc3R5bGl6ZShyLCJzdHJpbmciKX1pZihnKGUpKXJldHVybiB0LnN0eWxpemUoIiIrZSwibnVtYmVyIik7aWYoZChlKSlyZXR1cm4gdC5zdHlsaXplKCIiK2UsImJvb2xlYW4iKTtpZihtKGUpKXJldHVybiB0LnN0eWxpemUoIm51bGwiLCJudWxsIil9KHQsZSk7aWYoYSlyZXR1cm4gYTt2YXIgbz1PYmplY3Qua2V5cyhlKSxzPWZ1bmN0aW9uKHQpe3ZhciBlPXt9O3JldHVybiB0LmZvckVhY2goKGZ1bmN0aW9uKHQscil7ZVt0XT0hMH0pKSxlfShvKTtpZih0LnNob3dIaWRkZW4mJihvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGUpKSx3KGUpJiYoby5pbmRleE9mKCJtZXNzYWdlIik+PTB8fG8uaW5kZXhPZigiZGVzY3JpcHRpb24iKT49MCkpcmV0dXJuIGYoZSk7aWYoMD09PW8ubGVuZ3RoKXtpZihUKGUpKXt2YXIgbD1lLm5hbWU/IjogIitlLm5hbWU6IiI7cmV0dXJuIHQuc3R5bGl6ZSgiW0Z1bmN0aW9uIitsKyJdIiwic3BlY2lhbCIpfWlmKHgoZSkpcmV0dXJuIHQuc3R5bGl6ZShSZWdFeHAucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSksInJlZ2V4cCIpO2lmKF8oZSkpcmV0dXJuIHQuc3R5bGl6ZShEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLCJkYXRlIik7aWYodyhlKSlyZXR1cm4gZihlKX12YXIgYyxiPSIiLGs9ITEsQT1bInsiLCJ9Il07KHAoZSkmJihrPSEwLEE9WyJbIiwiXSJdKSxUKGUpKSYmKGI9IiBbRnVuY3Rpb24iKyhlLm5hbWU/IjogIitlLm5hbWU6IiIpKyJdIik7cmV0dXJuIHgoZSkmJihiPSIgIitSZWdFeHAucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkpLF8oZSkmJihiPSIgIitEYXRlLnByb3RvdHlwZS50b1VUQ1N0cmluZy5jYWxsKGUpKSx3KGUpJiYoYj0iICIrZihlKSksMCE9PW8ubGVuZ3RofHxrJiYwIT1lLmxlbmd0aD9uPDA/eChlKT90LnN0eWxpemUoUmVnRXhwLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLCJyZWdleHAiKTp0LnN0eWxpemUoIltPYmplY3RdIiwic3BlY2lhbCIpOih0LnNlZW4ucHVzaChlKSxjPWs/ZnVuY3Rpb24odCxlLHIsbixpKXtmb3IodmFyIGE9W10sbz0wLHM9ZS5sZW5ndGg7bzxzOysrbylFKGUsU3RyaW5nKG8pKT9hLnB1c2goaCh0LGUscixuLFN0cmluZyhvKSwhMCkpOmEucHVzaCgiIik7cmV0dXJuIGkuZm9yRWFjaCgoZnVuY3Rpb24oaSl7aS5tYXRjaCgvXlxkKyQvKXx8YS5wdXNoKGgodCxlLHIsbixpLCEwKSl9KSksYX0odCxlLG4scyxvKTpvLm1hcCgoZnVuY3Rpb24ocil7cmV0dXJuIGgodCxlLG4scyxyLGspfSkpLHQuc2Vlbi5wb3AoKSxmdW5jdGlvbih0LGUscil7aWYodC5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuaW5kZXhPZigiXG4iKT49MCYmMCx0K2UucmVwbGFjZSgvXHUwMDFiXFtcZFxkP20vZywiIikubGVuZ3RoKzF9KSwwKT42MClyZXR1cm4gclswXSsoIiI9PT1lPyIiOmUrIlxuICIpKyIgIit0LmpvaW4oIixcbiAgIikrIiAiK3JbMV07cmV0dXJuIHJbMF0rZSsiICIrdC5qb2luKCIsICIpKyIgIityWzFdfShjLGIsQSkpOkFbMF0rYitBWzFdfWZ1bmN0aW9uIGYodCl7cmV0dXJuIlsiK0Vycm9yLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpKyJdIn1mdW5jdGlvbiBoKHQsZSxyLG4saSxhKXt2YXIgbyxzLGw7aWYoKGw9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLGkpfHx7dmFsdWU6ZVtpXX0pLmdldD9zPWwuc2V0P3Quc3R5bGl6ZSgiW0dldHRlci9TZXR0ZXJdIiwic3BlY2lhbCIpOnQuc3R5bGl6ZSgiW0dldHRlcl0iLCJzcGVjaWFsIik6bC5zZXQmJihzPXQuc3R5bGl6ZSgiW1NldHRlcl0iLCJzcGVjaWFsIikpLEUobixpKXx8KG89IlsiK2krIl0iKSxzfHwodC5zZWVuLmluZGV4T2YobC52YWx1ZSk8MD8ocz1tKHIpP3UodCxsLnZhbHVlLG51bGwpOnUodCxsLnZhbHVlLHItMSkpLmluZGV4T2YoIlxuIik+LTEmJihzPWE/cy5zcGxpdCgiXG4iKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiIgICIrdH0pKS5qb2luKCJcbiIpLnN1YnN0cigyKToiXG4iK3Muc3BsaXQoIlxuIikubWFwKChmdW5jdGlvbih0KXtyZXR1cm4iICAgIit0fSkpLmpvaW4oIlxuIikpOnM9dC5zdHlsaXplKCJbQ2lyY3VsYXJdIiwic3BlY2lhbCIpKSx5KG8pKXtpZihhJiZpLm1hdGNoKC9eXGQrJC8pKXJldHVybiBzOyhvPUpTT04uc3RyaW5naWZ5KCIiK2kpKS5tYXRjaCgvXiIoW2EtekEtWl9dW2EtekEtWl8wLTldKikiJC8pPyhvPW8uc3Vic3RyKDEsby5sZW5ndGgtMiksbz10LnN0eWxpemUobywibmFtZSIpKToobz1vLnJlcGxhY2UoLycvZywiXFwnIikucmVwbGFjZSgvXFwiL2csJyInKS5yZXBsYWNlKC8oXiJ8IiQpL2csIiciKSxvPXQuc3R5bGl6ZShvLCJzdHJpbmciKSl9cmV0dXJuIG8rIjogIitzfWZ1bmN0aW9uIHAodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCl9ZnVuY3Rpb24gZCh0KXtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiB0fWZ1bmN0aW9uIG0odCl7cmV0dXJuIG51bGw9PT10fWZ1bmN0aW9uIGcodCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0fWZ1bmN0aW9uIHYodCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0fWZ1bmN0aW9uIHkodCl7cmV0dXJuIHZvaWQgMD09PXR9ZnVuY3Rpb24geCh0KXtyZXR1cm4gYih0KSYmIltvYmplY3QgUmVnRXhwXSI9PT1rKHQpfWZ1bmN0aW9uIGIodCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT09dH1mdW5jdGlvbiBfKHQpe3JldHVybiBiKHQpJiYiW29iamVjdCBEYXRlXSI9PT1rKHQpfWZ1bmN0aW9uIHcodCl7cmV0dXJuIGIodCkmJigiW29iamVjdCBFcnJvcl0iPT09ayh0KXx8dCBpbnN0YW5jZW9mIEVycm9yKX1mdW5jdGlvbiBUKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0fWZ1bmN0aW9uIGsodCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX1mdW5jdGlvbiBBKHQpe3JldHVybiB0PDEwPyIwIit0LnRvU3RyaW5nKDEwKTp0LnRvU3RyaW5nKDEwKX1yLmRlYnVnbG9nPWZ1bmN0aW9uKHQpe2lmKHkoYSkmJihhPWUuZW52Lk5PREVfREVCVUd8fCIiKSx0PXQudG9VcHBlckNhc2UoKSwhb1t0XSlpZihuZXcgUmVnRXhwKCJcXGIiK3QrIlxcYiIsImkiKS50ZXN0KGEpKXt2YXIgbj1lLnBpZDtvW3RdPWZ1bmN0aW9uKCl7dmFyIGU9ci5mb3JtYXQuYXBwbHkocixhcmd1bWVudHMpO2NvbnNvbGUuZXJyb3IoIiVzICVkOiAlcyIsdCxuLGUpfX1lbHNlIG9bdF09ZnVuY3Rpb24oKXt9O3JldHVybiBvW3RdfSxyLmluc3BlY3Q9cyxzLmNvbG9ycz17Ym9sZDpbMSwyMl0saXRhbGljOlszLDIzXSx1bmRlcmxpbmU6WzQsMjRdLGludmVyc2U6WzcsMjddLHdoaXRlOlszNywzOV0sZ3JleTpbOTAsMzldLGJsYWNrOlszMCwzOV0sYmx1ZTpbMzQsMzldLGN5YW46WzM2LDM5XSxncmVlbjpbMzIsMzldLG1hZ2VudGE6WzM1LDM5XSxyZWQ6WzMxLDM5XSx5ZWxsb3c6WzMzLDM5XX0scy5zdHlsZXM9e3NwZWNpYWw6ImN5YW4iLG51bWJlcjoieWVsbG93Iixib29sZWFuOiJ5ZWxsb3ciLHVuZGVmaW5lZDoiZ3JleSIsbnVsbDoiYm9sZCIsc3RyaW5nOiJncmVlbiIsZGF0ZToibWFnZW50YSIscmVnZXhwOiJyZWQifSxyLmlzQXJyYXk9cCxyLmlzQm9vbGVhbj1kLHIuaXNOdWxsPW0sci5pc051bGxPclVuZGVmaW5lZD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dH0sci5pc051bWJlcj1nLHIuaXNTdHJpbmc9dixyLmlzU3ltYm9sPWZ1bmN0aW9uKHQpe3JldHVybiJzeW1ib2wiPT10eXBlb2YgdH0sci5pc1VuZGVmaW5lZD15LHIuaXNSZWdFeHA9eCxyLmlzT2JqZWN0PWIsci5pc0RhdGU9XyxyLmlzRXJyb3I9dyxyLmlzRnVuY3Rpb249VCxyLmlzUHJpbWl0aXZlPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT09dHx8ImJvb2xlYW4iPT10eXBlb2YgdHx8Im51bWJlciI9PXR5cGVvZiB0fHwic3RyaW5nIj09dHlwZW9mIHR8fCJzeW1ib2wiPT10eXBlb2YgdHx8dm9pZCAwPT09dH0sci5pc0J1ZmZlcj10KCIuL3N1cHBvcnQvaXNCdWZmZXIiKTt2YXIgTT1bIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdO2Z1bmN0aW9uIFMoKXt2YXIgdD1uZXcgRGF0ZSxlPVtBKHQuZ2V0SG91cnMoKSksQSh0LmdldE1pbnV0ZXMoKSksQSh0LmdldFNlY29uZHMoKSldLmpvaW4oIjoiKTtyZXR1cm5bdC5nZXREYXRlKCksTVt0LmdldE1vbnRoKCldLGVdLmpvaW4oIiAiKX1mdW5jdGlvbiBFKHQsZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGUpfXIubG9nPWZ1bmN0aW9uKCl7Y29uc29sZS5sb2coIiVzIC0gJXMiLFMoKSxyLmZvcm1hdC5hcHBseShyLGFyZ3VtZW50cykpfSxyLmluaGVyaXRzPXQoImluaGVyaXRzIiksci5fZXh0ZW5kPWZ1bmN0aW9uKHQsZSl7aWYoIWV8fCFiKGUpKXJldHVybiB0O2Zvcih2YXIgcj1PYmplY3Qua2V5cyhlKSxuPXIubGVuZ3RoO24tLTspdFtyW25dXT1lW3Jbbl1dO3JldHVybiB0fX0pLmNhbGwodGhpcyl9KS5jYWxsKHRoaXMsdCgiX3Byb2Nlc3MiKSwidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9KX0seyIuL3N1cHBvcnQvaXNCdWZmZXIiOjc3LF9wcm9jZXNzOjI3OCxpbmhlcml0czo3Nn1dLDc5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3IuYnl0ZUxlbmd0aD1mdW5jdGlvbih0KXt2YXIgZT1jKHQpLHI9ZVswXSxuPWVbMV07cmV0dXJuIDMqKHIrbikvNC1ufSxyLnRvQnl0ZUFycmF5PWZ1bmN0aW9uKHQpe3ZhciBlLHIsbj1jKHQpLG89blswXSxzPW5bMV0sbD1uZXcgYShmdW5jdGlvbih0LGUscil7cmV0dXJuIDMqKGUrcikvNC1yfSgwLG8scykpLHU9MCxmPXM+MD9vLTQ6bztmb3Iocj0wO3I8ZjtyKz00KWU9aVt0LmNoYXJDb2RlQXQocildPDwxOHxpW3QuY2hhckNvZGVBdChyKzEpXTw8MTJ8aVt0LmNoYXJDb2RlQXQocisyKV08PDZ8aVt0LmNoYXJDb2RlQXQociszKV0sbFt1KytdPWU+PjE2JjI1NSxsW3UrK109ZT4+OCYyNTUsbFt1KytdPTI1NSZlOzI9PT1zJiYoZT1pW3QuY2hhckNvZGVBdChyKV08PDJ8aVt0LmNoYXJDb2RlQXQocisxKV0+PjQsbFt1KytdPTI1NSZlKTsxPT09cyYmKGU9aVt0LmNoYXJDb2RlQXQocildPDwxMHxpW3QuY2hhckNvZGVBdChyKzEpXTw8NHxpW3QuY2hhckNvZGVBdChyKzIpXT4+MixsW3UrK109ZT4+OCYyNTUsbFt1KytdPTI1NSZlKTtyZXR1cm4gbH0sci5mcm9tQnl0ZUFycmF5PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyPXQubGVuZ3RoLGk9ciUzLGE9W10sbz0wLHM9ci1pO288cztvKz0xNjM4MylhLnB1c2godSh0LG8sbysxNjM4Mz5zP3M6bysxNjM4MykpOzE9PT1pPyhlPXRbci0xXSxhLnB1c2gobltlPj4yXStuW2U8PDQmNjNdKyI9PSIpKToyPT09aSYmKGU9KHRbci0yXTw8OCkrdFtyLTFdLGEucHVzaChuW2U+PjEwXStuW2U+PjQmNjNdK25bZTw8MiY2M10rIj0iKSk7cmV0dXJuIGEuam9pbigiIil9O2Zvcih2YXIgbj1bXSxpPVtdLGE9InVuZGVmaW5lZCIhPXR5cGVvZiBVaW50OEFycmF5P1VpbnQ4QXJyYXk6QXJyYXksbz0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIscz0wLGw9by5sZW5ndGg7czxsOysrcyluW3NdPW9bc10saVtvLmNoYXJDb2RlQXQocyldPXM7ZnVuY3Rpb24gYyh0KXt2YXIgZT10Lmxlbmd0aDtpZihlJTQ+MCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc3RyaW5nLiBMZW5ndGggbXVzdCBiZSBhIG11bHRpcGxlIG9mIDQiKTt2YXIgcj10LmluZGV4T2YoIj0iKTtyZXR1cm4tMT09PXImJihyPWUpLFtyLHI9PT1lPzA6NC1yJTRdfWZ1bmN0aW9uIHUodCxlLHIpe2Zvcih2YXIgaSxhLG89W10scz1lO3M8cjtzKz0zKWk9KHRbc108PDE2JjE2NzExNjgwKSsodFtzKzFdPDw4JjY1MjgwKSsoMjU1JnRbcysyXSksby5wdXNoKG5bKGE9aSk+PjE4JjYzXStuW2E+PjEyJjYzXStuW2E+PjYmNjNdK25bNjMmYV0pO3JldHVybiBvLmpvaW4oIiIpfWlbIi0iLmNoYXJDb2RlQXQoMCldPTYyLGlbIl8iLmNoYXJDb2RlQXQoMCldPTYzfSx7fV0sODA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscixuLGkpe2Zvcih2YXIgYT1pKzE7bjw9aTspe3ZhciBvPW4raT4+PjEscz10W29dOyh2b2lkIDAhPT1yP3IocyxlKTpzLWUpPj0wPyhhPW8saT1vLTEpOm49bysxfXJldHVybiBhfWZ1bmN0aW9uIGkodCxlLHIsbixpKXtmb3IodmFyIGE9aSsxO248PWk7KXt2YXIgbz1uK2k+Pj4xLHM9dFtvXTsodm9pZCAwIT09cj9yKHMsZSk6cy1lKT4wPyhhPW8saT1vLTEpOm49bysxfXJldHVybiBhfWZ1bmN0aW9uIGEodCxlLHIsbixpKXtmb3IodmFyIGE9bi0xO248PWk7KXt2YXIgbz1uK2k+Pj4xLHM9dFtvXTsodm9pZCAwIT09cj9yKHMsZSk6cy1lKTwwPyhhPW8sbj1vKzEpOmk9by0xfXJldHVybiBhfWZ1bmN0aW9uIG8odCxlLHIsbixpKXtmb3IodmFyIGE9bi0xO248PWk7KXt2YXIgbz1uK2k+Pj4xLHM9dFtvXTsodm9pZCAwIT09cj9yKHMsZSk6cy1lKTw9MD8oYT1vLG49bysxKTppPW8tMX1yZXR1cm4gYX1mdW5jdGlvbiBzKHQsZSxyLG4saSl7Zm9yKDtuPD1pOyl7dmFyIGE9bitpPj4+MSxvPXRbYV0scz12b2lkIDAhPT1yP3IobyxlKTpvLWU7aWYoMD09PXMpcmV0dXJuIGE7czw9MD9uPWErMTppPWEtMX1yZXR1cm4tMX1mdW5jdGlvbiBsKHQsZSxyLG4saSxhKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygcj9hKHQsZSxyLHZvaWQgMD09PW4/MDowfG4sdm9pZCAwPT09aT90Lmxlbmd0aC0xOjB8aSk6YSh0LGUsdm9pZCAwLHZvaWQgMD09PXI/MDowfHIsdm9pZCAwPT09bj90Lmxlbmd0aC0xOjB8bil9ZS5leHBvcnRzPXtnZTpmdW5jdGlvbih0LGUscixpLGEpe3JldHVybiBsKHQsZSxyLGksYSxuKX0sZ3Q6ZnVuY3Rpb24odCxlLHIsbixhKXtyZXR1cm4gbCh0LGUscixuLGEsaSl9LGx0OmZ1bmN0aW9uKHQsZSxyLG4saSl7cmV0dXJuIGwodCxlLHIsbixpLGEpfSxsZTpmdW5jdGlvbih0LGUscixuLGkpe3JldHVybiBsKHQsZSxyLG4saSxvKX0sZXE6ZnVuY3Rpb24odCxlLHIsbixpKXtyZXR1cm4gbCh0LGUscixuLGkscyl9fX0se31dLDgxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7dmFyIGU9MzI7cmV0dXJuKHQmPS10KSYmZS0tLDY1NTM1JnQmJihlLT0xNiksMTY3MTE5MzUmdCYmKGUtPTgpLDI1MjY0NTEzNSZ0JiYoZS09NCksODU4OTkzNDU5JnQmJihlLT0yKSwxNDMxNjU1NzY1JnQmJihlLT0xKSxlfXIuSU5UX0JJVFM9MzIsci5JTlRfTUFYPTIxNDc0ODM2NDcsci5JTlRfTUlOPS0xPDwzMSxyLnNpZ249ZnVuY3Rpb24odCl7cmV0dXJuKHQ+MCktKHQ8MCl9LHIuYWJzPWZ1bmN0aW9uKHQpe3ZhciBlPXQ+PjMxO3JldHVybih0XmUpLWV9LHIubWluPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGVeKHReZSkmLSh0PGUpfSxyLm1heD1mdW5jdGlvbih0LGUpe3JldHVybiB0Xih0XmUpJi0odDxlKX0sci5pc1BvdzI9ZnVuY3Rpb24odCl7cmV0dXJuISh0JnQtMXx8IXQpfSxyLmxvZzI9ZnVuY3Rpb24odCl7dmFyIGUscjtyZXR1cm4gZT0odD42NTUzNSk8PDQsZXw9cj0oKHQ+Pj49ZSk+MjU1KTw8MyxlfD1yPSgodD4+Pj1yKT4xNSk8PDIsKGV8PXI9KCh0Pj4+PXIpPjMpPDwxKXwodD4+Pj1yKT4+MX0sci5sb2cxMD1mdW5jdGlvbih0KXtyZXR1cm4gdD49MWU5Pzk6dD49MWU4Pzg6dD49MWU3Pzc6dD49MWU2PzY6dD49MWU1PzU6dD49MWU0PzQ6dD49MWUzPzM6dD49MTAwPzI6dD49MTA/MTowfSxyLnBvcENvdW50PWZ1bmN0aW9uKHQpe3JldHVybiAxNjg0MzAwOSooKHQ9KDg1ODk5MzQ1OSYodC09dD4+PjEmMTQzMTY1NTc2NSkpKyh0Pj4+MiY4NTg5OTM0NTkpKSsodD4+PjQpJjI1MjY0NTEzNSk+Pj4yNH0sci5jb3VudFRyYWlsaW5nWmVyb3M9bixyLm5leHRQb3cyPWZ1bmN0aW9uKHQpe3JldHVybiB0Kz0wPT09dCwtLXQsdHw9dD4+PjEsdHw9dD4+PjIsdHw9dD4+PjQsdHw9dD4+PjgsKHR8PXQ+Pj4xNikrMX0sci5wcmV2UG93Mj1mdW5jdGlvbih0KXtyZXR1cm4gdHw9dD4+PjEsdHw9dD4+PjIsdHw9dD4+PjQsdHw9dD4+PjgsKHR8PXQ+Pj4xNiktKHQ+Pj4xKX0sci5wYXJpdHk9ZnVuY3Rpb24odCl7cmV0dXJuIHRePXQ+Pj4xNix0Xj10Pj4+OCx0Xj10Pj4+NCwyNzAzMD4+Pih0Jj0xNSkmMX07dmFyIGk9bmV3IEFycmF5KDI1Nik7IWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wO2U8MjU2OysrZSl7dmFyIHI9ZSxuPWUsaT03O2ZvcihyPj4+PTE7cjtyPj4+PTEpbjw8PTEsbnw9MSZyLC0taTt0W2VdPW48PGkmMjU1fX0oaSksci5yZXZlcnNlPWZ1bmN0aW9uKHQpe3JldHVybiBpWzI1NSZ0XTw8MjR8aVt0Pj4+OCYyNTVdPDwxNnxpW3Q+Pj4xNiYyNTVdPDw4fGlbdD4+PjI0JjI1NV19LHIuaW50ZXJsZWF2ZTI9ZnVuY3Rpb24odCxlKXtyZXR1cm4odD0xNDMxNjU1NzY1JigodD04NTg5OTM0NTkmKCh0PTI1MjY0NTEzNSYoKHQ9MTY3MTE5MzUmKCh0Jj02NTUzNSl8dDw8OCkpfHQ8PDQpKXx0PDwyKSl8dDw8MSkpfChlPTE0MzE2NTU3NjUmKChlPTg1ODk5MzQ1OSYoKGU9MjUyNjQ1MTM1JigoZT0xNjcxMTkzNSYoKGUmPTY1NTM1KXxlPDw4KSl8ZTw8NCkpfGU8PDIpKXxlPDwxKSk8PDF9LHIuZGVpbnRlcmxlYXZlMj1mdW5jdGlvbih0LGUpe3JldHVybih0PTY1NTM1JigodD0xNjcxMTkzNSYoKHQ9MjUyNjQ1MTM1JigodD04NTg5OTM0NTkmKCh0PXQ+Pj5lJjE0MzE2NTU3NjUpfHQ+Pj4xKSl8dD4+PjIpKXx0Pj4+NCkpfHQ+Pj4xNikpPDwxNj4+MTZ9LHIuaW50ZXJsZWF2ZTM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PTEyMjcxMzM1MTMmKCh0PTMyNzIzNTYwMzUmKCh0PTI1MTcxOTY5NSYoKHQ9NDI3ODE5MDMzNSYoKHQmPTEwMjMpfHQ8PDE2KSl8dDw8OCkpfHQ8PDQpKXx0PDwyKSwodHw9KGU9MTIyNzEzMzUxMyYoKGU9MzI3MjM1NjAzNSYoKGU9MjUxNzE5Njk1JigoZT00Mjc4MTkwMzM1JigoZSY9MTAyMyl8ZTw8MTYpKXxlPDw4KSl8ZTw8NCkpfGU8PDIpKTw8MSl8KHI9MTIyNzEzMzUxMyYoKHI9MzI3MjM1NjAzNSYoKHI9MjUxNzE5Njk1Jigocj00Mjc4MTkwMzM1JigociY9MTAyMyl8cjw8MTYpKXxyPDw4KSl8cjw8NCkpfHI8PDIpKTw8Mn0sci5kZWludGVybGVhdmUzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuKHQ9MTAyMyYoKHQ9NDI3ODE5MDMzNSYoKHQ9MjUxNzE5Njk1JigodD0zMjcyMzU2MDM1JigodD10Pj4+ZSYxMjI3MTMzNTEzKXx0Pj4+MikpfHQ+Pj40KSl8dD4+PjgpKXx0Pj4+MTYpKTw8MjI+PjIyfSxyLm5leHRDb21iaW5hdGlvbj1mdW5jdGlvbih0KXt2YXIgZT10fHQtMTtyZXR1cm4gZSsxfCh+ZSYtfmUpLTE+Pj5uKHQpKzF9fSx7fV0sODI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiY2xhbXAiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtlfHwoZT17fSk7dmFyIHIsbyxzLGwsYyx1LGYsaCxwLGQsbSxnPW51bGw9PWUuY3V0b2ZmPy4yNTplLmN1dG9mZix2PW51bGw9PWUucmFkaXVzPzg6ZS5yYWRpdXMseT1lLmNoYW5uZWx8fDA7aWYoQXJyYXlCdWZmZXIuaXNWaWV3KHQpfHxBcnJheS5pc0FycmF5KHQpKXtpZighZS53aWR0aHx8IWUuaGVpZ2h0KXRocm93IEVycm9yKCJGb3IgcmF3IGRhdGEgd2lkdGggYW5kIGhlaWdodCBzaG91bGQgYmUgcHJvdmlkZWQgYnkgb3B0aW9ucyIpO3I9ZS53aWR0aCxvPWUuaGVpZ2h0LGw9dCx1PWUuc3RyaWRlP2Uuc3RyaWRlOk1hdGguZmxvb3IodC5sZW5ndGgvci9vKX1lbHNlIHdpbmRvdy5IVE1MQ2FudmFzRWxlbWVudCYmdCBpbnN0YW5jZW9mIHdpbmRvdy5IVE1MQ2FudmFzRWxlbWVudD8oZj0oaD10KS5nZXRDb250ZXh0KCIyZCIpLHI9aC53aWR0aCxvPWguaGVpZ2h0LHA9Zi5nZXRJbWFnZURhdGEoMCwwLHIsbyksbD1wLmRhdGEsdT00KTp3aW5kb3cuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEJiZ0IGluc3RhbmNlb2Ygd2luZG93LkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD8oaD10LmNhbnZhcyxmPXQscj1oLndpZHRoLG89aC5oZWlnaHQscD1mLmdldEltYWdlRGF0YSgwLDAscixvKSxsPXAuZGF0YSx1PTQpOndpbmRvdy5JbWFnZURhdGEmJnQgaW5zdGFuY2VvZiB3aW5kb3cuSW1hZ2VEYXRhJiYocD10LHI9dC53aWR0aCxvPXQuaGVpZ2h0LGw9cC5kYXRhLHU9NCk7aWYocz1NYXRoLm1heChyLG8pLHdpbmRvdy5VaW50OENsYW1wZWRBcnJheSYmbCBpbnN0YW5jZW9mIHdpbmRvdy5VaW50OENsYW1wZWRBcnJheXx8d2luZG93LlVpbnQ4QXJyYXkmJmwgaW5zdGFuY2VvZiB3aW5kb3cuVWludDhBcnJheSlmb3IoYz1sLGw9QXJyYXkocipvKSxkPTAsbT1jLmxlbmd0aDtkPG07ZCsrKWxbZF09Y1tkKnUreV0vMjU1O2Vsc2UgaWYoMSE9PXUpdGhyb3cgRXJyb3IoIlJhdyBkYXRhIGNhbiBoYXZlIG9ubHkgMSB2YWx1ZSBwZXIgcGl4ZWwiKTt2YXIgeD1BcnJheShyKm8pLGI9QXJyYXkocipvKSxfPUFycmF5KHMpLHc9QXJyYXkocyksVD1BcnJheShzKzEpLGs9QXJyYXkocyk7Zm9yKGQ9MCxtPXIqbztkPG07ZCsrKXt2YXIgQT1sW2RdO3hbZF09MT09PUE/MDowPT09QT9pOk1hdGgucG93KE1hdGgubWF4KDAsLjUtQSksMiksYltkXT0xPT09QT9pOjA9PT1BPzA6TWF0aC5wb3coTWF0aC5tYXgoMCxBLS41KSwyKX1hKHgscixvLF8sdyxrLFQpLGEoYixyLG8sXyx3LGssVCk7dmFyIE09d2luZG93LkZsb2F0MzJBcnJheT9uZXcgRmxvYXQzMkFycmF5KHIqbyk6bmV3IEFycmF5KHIqbyk7Zm9yKGQ9MCxtPXIqbztkPG07ZCsrKU1bZF09bigxLSgoeFtkXS1iW2RdKS92K2cpLDAsMSk7cmV0dXJuIE19O3ZhciBpPTFlMjA7ZnVuY3Rpb24gYSh0LGUscixuLGksYSxzKXtmb3IodmFyIGw9MDtsPGU7bCsrKXtmb3IodmFyIGM9MDtjPHI7YysrKW5bY109dFtjKmUrbF07Zm9yKG8obixpLGEscyxyKSxjPTA7YzxyO2MrKyl0W2MqZStsXT1pW2NdfWZvcihjPTA7YzxyO2MrKyl7Zm9yKGw9MDtsPGU7bCsrKW5bbF09dFtjKmUrbF07Zm9yKG8obixpLGEscyxlKSxsPTA7bDxlO2wrKyl0W2MqZStsXT1NYXRoLnNxcnQoaVtsXSl9fWZ1bmN0aW9uIG8odCxlLHIsbixhKXtyWzBdPTAsblswXT0taSxuWzFdPStpO2Zvcih2YXIgbz0xLHM9MDtvPGE7bysrKXtmb3IodmFyIGw9KHRbb10rbypvLSh0W3Jbc11dK3Jbc10qcltzXSkpLygyKm8tMipyW3NdKTtsPD1uW3NdOylzLS0sbD0odFtvXStvKm8tKHRbcltzXV0rcltzXSpyW3NdKSkvKDIqby0yKnJbc10pO3JbKytzXT1vLG5bc109bCxuW3MrMV09K2l9Zm9yKG89MCxzPTA7bzxhO28rKyl7Zm9yKDtuW3MrMV08bzspcysrO2Vbb109KG8tcltzXSkqKG8tcltzXSkrdFtyW3NdXX19fSx7Y2xhbXA6ODZ9XSw4MzpbZnVuY3Rpb24odCxlLHIpe30se31dLDg0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuLGk9Im9iamVjdCI9PXR5cGVvZiBSZWZsZWN0P1JlZmxlY3Q6bnVsbCxhPWkmJiJmdW5jdGlvbiI9PXR5cGVvZiBpLmFwcGx5P2kuYXBwbHk6ZnVuY3Rpb24odCxlLHIpe3JldHVybiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuY2FsbCh0LGUscil9O249aSYmImZ1bmN0aW9uIj09dHlwZW9mIGkub3duS2V5cz9pLm93bktleXM6T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz9mdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModCkuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkpfTpmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModCl9O3ZhciBvPU51bWJlci5pc05hTnx8ZnVuY3Rpb24odCl7cmV0dXJuIHQhPXR9O2Z1bmN0aW9uIHMoKXtzLmluaXQuY2FsbCh0aGlzKX1lLmV4cG9ydHM9cyxlLmV4cG9ydHMub25jZT1mdW5jdGlvbih0LGUpe3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24ocixuKXtmdW5jdGlvbiBpKCl7dm9pZCAwIT09YSYmdC5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLGEpLHIoW10uc2xpY2UuY2FsbChhcmd1bWVudHMpKX12YXIgYTsiZXJyb3IiIT09ZSYmKGE9ZnVuY3Rpb24ocil7dC5yZW1vdmVMaXN0ZW5lcihlLGkpLG4ocil9LHQub25jZSgiZXJyb3IiLGEpKSx0Lm9uY2UoZSxpKX0pKX0scy5FdmVudEVtaXR0ZXI9cyxzLnByb3RvdHlwZS5fZXZlbnRzPXZvaWQgMCxzLnByb3RvdHlwZS5fZXZlbnRzQ291bnQ9MCxzLnByb3RvdHlwZS5fbWF4TGlzdGVuZXJzPXZvaWQgMDt2YXIgbD0xMDtmdW5jdGlvbiBjKHQpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAibGlzdGVuZXIiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBGdW5jdGlvbi4gUmVjZWl2ZWQgdHlwZSAnK3R5cGVvZiB0KX1mdW5jdGlvbiB1KHQpe3JldHVybiB2b2lkIDA9PT10Ll9tYXhMaXN0ZW5lcnM/cy5kZWZhdWx0TWF4TGlzdGVuZXJzOnQuX21heExpc3RlbmVyc31mdW5jdGlvbiBmKHQsZSxyLG4pe3ZhciBpLGEsbyxzO2lmKGMociksdm9pZCAwPT09KGE9dC5fZXZlbnRzKT8oYT10Ll9ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSx0Ll9ldmVudHNDb3VudD0wKToodm9pZCAwIT09YS5uZXdMaXN0ZW5lciYmKHQuZW1pdCgibmV3TGlzdGVuZXIiLGUsci5saXN0ZW5lcj9yLmxpc3RlbmVyOnIpLGE9dC5fZXZlbnRzKSxvPWFbZV0pLHZvaWQgMD09PW8pbz1hW2VdPXIsKyt0Ll9ldmVudHNDb3VudDtlbHNlIGlmKCJmdW5jdGlvbiI9PXR5cGVvZiBvP289YVtlXT1uP1tyLG9dOltvLHJdOm4/by51bnNoaWZ0KHIpOm8ucHVzaChyKSwoaT11KHQpKT4wJiZvLmxlbmd0aD5pJiYhby53YXJuZWQpe28ud2FybmVkPSEwO3ZhciBsPW5ldyBFcnJvcigiUG9zc2libGUgRXZlbnRFbWl0dGVyIG1lbW9yeSBsZWFrIGRldGVjdGVkLiAiK28ubGVuZ3RoKyIgIitTdHJpbmcoZSkrIiBsaXN0ZW5lcnMgYWRkZWQuIFVzZSBlbWl0dGVyLnNldE1heExpc3RlbmVycygpIHRvIGluY3JlYXNlIGxpbWl0Iik7bC5uYW1lPSJNYXhMaXN0ZW5lcnNFeGNlZWRlZFdhcm5pbmciLGwuZW1pdHRlcj10LGwudHlwZT1lLGwuY291bnQ9by5sZW5ndGgscz1sLGNvbnNvbGUmJmNvbnNvbGUud2FybiYmY29uc29sZS53YXJuKHMpfXJldHVybiB0fWZ1bmN0aW9uIGgoKXtpZighdGhpcy5maXJlZClyZXR1cm4gdGhpcy50YXJnZXQucmVtb3ZlTGlzdGVuZXIodGhpcy50eXBlLHRoaXMud3JhcEZuKSx0aGlzLmZpcmVkPSEwLDA9PT1hcmd1bWVudHMubGVuZ3RoP3RoaXMubGlzdGVuZXIuY2FsbCh0aGlzLnRhcmdldCk6dGhpcy5saXN0ZW5lci5hcHBseSh0aGlzLnRhcmdldCxhcmd1bWVudHMpfWZ1bmN0aW9uIHAodCxlLHIpe3ZhciBuPXtmaXJlZDohMSx3cmFwRm46dm9pZCAwLHRhcmdldDp0LHR5cGU6ZSxsaXN0ZW5lcjpyfSxpPWguYmluZChuKTtyZXR1cm4gaS5saXN0ZW5lcj1yLG4ud3JhcEZuPWksaX1mdW5jdGlvbiBkKHQsZSxyKXt2YXIgbj10Ll9ldmVudHM7aWYodm9pZCAwPT09bilyZXR1cm5bXTt2YXIgaT1uW2VdO3JldHVybiB2b2lkIDA9PT1pP1tdOiJmdW5jdGlvbiI9PXR5cGVvZiBpP3I/W2kubGlzdGVuZXJ8fGldOltpXTpyP2Z1bmN0aW9uKHQpe2Zvcih2YXIgZT1uZXcgQXJyYXkodC5sZW5ndGgpLHI9MDtyPGUubGVuZ3RoOysrcillW3JdPXRbcl0ubGlzdGVuZXJ8fHRbcl07cmV0dXJuIGV9KGkpOmcoaSxpLmxlbmd0aCl9ZnVuY3Rpb24gbSh0KXt2YXIgZT10aGlzLl9ldmVudHM7aWYodm9pZCAwIT09ZSl7dmFyIHI9ZVt0XTtpZigiZnVuY3Rpb24iPT10eXBlb2YgcilyZXR1cm4gMTtpZih2b2lkIDAhPT1yKXJldHVybiByLmxlbmd0aH1yZXR1cm4gMH1mdW5jdGlvbiBnKHQsZSl7Zm9yKHZhciByPW5ldyBBcnJheShlKSxuPTA7bjxlOysrbilyW25dPXRbbl07cmV0dXJuIHJ9T2JqZWN0LmRlZmluZVByb3BlcnR5KHMsImRlZmF1bHRNYXhMaXN0ZW5lcnMiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBsfSxzZXQ6ZnVuY3Rpb24odCl7aWYoIm51bWJlciIhPXR5cGVvZiB0fHx0PDB8fG8odCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSBvZiAiZGVmYXVsdE1heExpc3RlbmVycyIgaXMgb3V0IG9mIHJhbmdlLiBJdCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlci4gUmVjZWl2ZWQgJyt0KyIuIik7bD10fX0pLHMuaW5pdD1mdW5jdGlvbigpe3ZvaWQgMCE9PXRoaXMuX2V2ZW50cyYmdGhpcy5fZXZlbnRzIT09T2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLl9ldmVudHN8fCh0aGlzLl9ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLl9ldmVudHNDb3VudD0wKSx0aGlzLl9tYXhMaXN0ZW5lcnM9dGhpcy5fbWF4TGlzdGVuZXJzfHx2b2lkIDB9LHMucHJvdG90eXBlLnNldE1heExpc3RlbmVycz1mdW5jdGlvbih0KXtpZigibnVtYmVyIiE9dHlwZW9mIHR8fHQ8MHx8byh0KSl0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlIG9mICJuIiBpcyBvdXQgb2YgcmFuZ2UuIEl0IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyLiBSZWNlaXZlZCAnK3QrIi4iKTtyZXR1cm4gdGhpcy5fbWF4TGlzdGVuZXJzPXQsdGhpc30scy5wcm90b3R5cGUuZ2V0TWF4TGlzdGVuZXJzPWZ1bmN0aW9uKCl7cmV0dXJuIHUodGhpcyl9LHMucHJvdG90eXBlLmVtaXQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLHI9MTtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKWUucHVzaChhcmd1bWVudHNbcl0pO3ZhciBuPSJlcnJvciI9PT10LGk9dGhpcy5fZXZlbnRzO2lmKHZvaWQgMCE9PWkpbj1uJiZ2b2lkIDA9PT1pLmVycm9yO2Vsc2UgaWYoIW4pcmV0dXJuITE7aWYobil7dmFyIG87aWYoZS5sZW5ndGg+MCYmKG89ZVswXSksbyBpbnN0YW5jZW9mIEVycm9yKXRocm93IG87dmFyIHM9bmV3IEVycm9yKCJVbmhhbmRsZWQgZXJyb3IuIisobz8iICgiK28ubWVzc2FnZSsiKSI6IiIpKTt0aHJvdyBzLmNvbnRleHQ9byxzfXZhciBsPWlbdF07aWYodm9pZCAwPT09bClyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgbClhKGwsdGhpcyxlKTtlbHNle3ZhciBjPWwubGVuZ3RoLHU9ZyhsLGMpO2ZvcihyPTA7cjxjOysrcilhKHVbcl0sdGhpcyxlKX1yZXR1cm4hMH0scy5wcm90b3R5cGUuYWRkTGlzdGVuZXI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZih0aGlzLHQsZSwhMSl9LHMucHJvdG90eXBlLm9uPXMucHJvdG90eXBlLmFkZExpc3RlbmVyLHMucHJvdG90eXBlLnByZXBlbmRMaXN0ZW5lcj1mdW5jdGlvbih0LGUpe3JldHVybiBmKHRoaXMsdCxlLCEwKX0scy5wcm90b3R5cGUub25jZT1mdW5jdGlvbih0LGUpe3JldHVybiBjKGUpLHRoaXMub24odCxwKHRoaXMsdCxlKSksdGhpc30scy5wcm90b3R5cGUucHJlcGVuZE9uY2VMaXN0ZW5lcj1mdW5jdGlvbih0LGUpe3JldHVybiBjKGUpLHRoaXMucHJlcGVuZExpc3RlbmVyKHQscCh0aGlzLHQsZSkpLHRoaXN9LHMucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixpLGEsbztpZihjKGUpLHZvaWQgMD09PShuPXRoaXMuX2V2ZW50cykpcmV0dXJuIHRoaXM7aWYodm9pZCAwPT09KHI9blt0XSkpcmV0dXJuIHRoaXM7aWYocj09PWV8fHIubGlzdGVuZXI9PT1lKTA9PS0tdGhpcy5fZXZlbnRzQ291bnQ/dGhpcy5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCk6KGRlbGV0ZSBuW3RdLG4ucmVtb3ZlTGlzdGVuZXImJnRoaXMuZW1pdCgicmVtb3ZlTGlzdGVuZXIiLHQsci5saXN0ZW5lcnx8ZSkpO2Vsc2UgaWYoImZ1bmN0aW9uIiE9dHlwZW9mIHIpe2ZvcihpPS0xLGE9ci5sZW5ndGgtMTthPj0wO2EtLSlpZihyW2FdPT09ZXx8clthXS5saXN0ZW5lcj09PWUpe289clthXS5saXN0ZW5lcixpPWE7YnJlYWt9aWYoaTwwKXJldHVybiB0aGlzOzA9PT1pP3Iuc2hpZnQoKTpmdW5jdGlvbih0LGUpe2Zvcig7ZSsxPHQubGVuZ3RoO2UrKyl0W2VdPXRbZSsxXTt0LnBvcCgpfShyLGkpLDE9PT1yLmxlbmd0aCYmKG5bdF09clswXSksdm9pZCAwIT09bi5yZW1vdmVMaXN0ZW5lciYmdGhpcy5lbWl0KCJyZW1vdmVMaXN0ZW5lciIsdCxvfHxlKX1yZXR1cm4gdGhpc30scy5wcm90b3R5cGUub2ZmPXMucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyLHMucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycz1mdW5jdGlvbih0KXt2YXIgZSxyLG47aWYodm9pZCAwPT09KHI9dGhpcy5fZXZlbnRzKSlyZXR1cm4gdGhpcztpZih2b2lkIDA9PT1yLnJlbW92ZUxpc3RlbmVyKXJldHVybiAwPT09YXJndW1lbnRzLmxlbmd0aD8odGhpcy5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5fZXZlbnRzQ291bnQ9MCk6dm9pZCAwIT09clt0XSYmKDA9PS0tdGhpcy5fZXZlbnRzQ291bnQ/dGhpcy5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCk6ZGVsZXRlIHJbdF0pLHRoaXM7aWYoMD09PWFyZ3VtZW50cy5sZW5ndGgpe3ZhciBpLGE9T2JqZWN0LmtleXMocik7Zm9yKG49MDtuPGEubGVuZ3RoOysrbikicmVtb3ZlTGlzdGVuZXIiIT09KGk9YVtuXSkmJnRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKGkpO3JldHVybiB0aGlzLnJlbW92ZUFsbExpc3RlbmVycygicmVtb3ZlTGlzdGVuZXIiKSx0aGlzLl9ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLl9ldmVudHNDb3VudD0wLHRoaXN9aWYoImZ1bmN0aW9uIj09dHlwZW9mKGU9clt0XSkpdGhpcy5yZW1vdmVMaXN0ZW5lcih0LGUpO2Vsc2UgaWYodm9pZCAwIT09ZSlmb3Iobj1lLmxlbmd0aC0xO24+PTA7bi0tKXRoaXMucmVtb3ZlTGlzdGVuZXIodCxlW25dKTtyZXR1cm4gdGhpc30scy5wcm90b3R5cGUubGlzdGVuZXJzPWZ1bmN0aW9uKHQpe3JldHVybiBkKHRoaXMsdCwhMCl9LHMucHJvdG90eXBlLnJhd0xpc3RlbmVycz1mdW5jdGlvbih0KXtyZXR1cm4gZCh0aGlzLHQsITEpfSxzLmxpc3RlbmVyQ291bnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdC5saXN0ZW5lckNvdW50P3QubGlzdGVuZXJDb3VudChlKTptLmNhbGwodCxlKX0scy5wcm90b3R5cGUubGlzdGVuZXJDb3VudD1tLHMucHJvdG90eXBlLmV2ZW50TmFtZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZXZlbnRzQ291bnQ+MD9uKHRoaXMuX2V2ZW50cyk6W119fSx7fV0sODU6W2Z1bmN0aW9uKHQsZSxyKXsoZnVuY3Rpb24oZSl7KGZ1bmN0aW9uKCl7Ci8qIQogKiBUaGUgYnVmZmVyIG1vZHVsZSBmcm9tIG5vZGUuanMsIGZvciB0aGUgYnJvd3Nlci4KICoKICogQGF1dGhvciAgIEZlcm9zcyBBYm91a2hhZGlqZWggPGh0dHBzOi8vZmVyb3NzLm9yZz4KICogQGxpY2Vuc2UgIE1JVAogKi8KInVzZSBzdHJpY3QiO3ZhciBlPXQoImJhc2U2NC1qcyIpLG49dCgiaWVlZTc1NCIpO3IuQnVmZmVyPWEsci5TbG93QnVmZmVyPWZ1bmN0aW9uKHQpeyt0IT10JiYodD0wKTtyZXR1cm4gYS5hbGxvYygrdCl9LHIuSU5TUEVDVF9NQVhfQllURVM9NTA7ZnVuY3Rpb24gaSh0KXtpZih0PjIxNDc0ODM2NDcpdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSAiJyt0KyciIGlzIGludmFsaWQgZm9yIG9wdGlvbiAic2l6ZSInKTt2YXIgZT1uZXcgVWludDhBcnJheSh0KTtyZXR1cm4gZS5fX3Byb3RvX189YS5wcm90b3R5cGUsZX1mdW5jdGlvbiBhKHQsZSxyKXtpZigibnVtYmVyIj09dHlwZW9mIHQpe2lmKCJzdHJpbmciPT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInN0cmluZyIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIHN0cmluZy4gUmVjZWl2ZWQgdHlwZSBudW1iZXInKTtyZXR1cm4gbCh0KX1yZXR1cm4gbyh0LGUscil9ZnVuY3Rpb24gbyh0LGUscil7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiBmdW5jdGlvbih0LGUpeyJzdHJpbmciPT10eXBlb2YgZSYmIiIhPT1lfHwoZT0idXRmOCIpO2lmKCFhLmlzRW5jb2RpbmcoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIitlKTt2YXIgcj0wfGYodCxlKSxuPWkociksbz1uLndyaXRlKHQsZSk7byE9PXImJihuPW4uc2xpY2UoMCxvKSk7cmV0dXJuIG59KHQsZSk7aWYoQXJyYXlCdWZmZXIuaXNWaWV3KHQpKXJldHVybiBjKHQpO2lmKG51bGw9PXQpdGhyb3cgVHlwZUVycm9yKCJUaGUgZmlyc3QgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBzdHJpbmcsIEJ1ZmZlciwgQXJyYXlCdWZmZXIsIEFycmF5LCBvciBBcnJheS1saWtlIE9iamVjdC4gUmVjZWl2ZWQgdHlwZSAiK3R5cGVvZiB0KTtpZihCKHQsQXJyYXlCdWZmZXIpfHx0JiZCKHQuYnVmZmVyLEFycmF5QnVmZmVyKSlyZXR1cm4gZnVuY3Rpb24odCxlLHIpe2lmKGU8MHx8dC5ieXRlTGVuZ3RoPGUpdGhyb3cgbmV3IFJhbmdlRXJyb3IoJyJvZmZzZXQiIGlzIG91dHNpZGUgb2YgYnVmZmVyIGJvdW5kcycpO2lmKHQuYnl0ZUxlbmd0aDxlKyhyfHwwKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcignImxlbmd0aCIgaXMgb3V0c2lkZSBvZiBidWZmZXIgYm91bmRzJyk7dmFyIG47bj12b2lkIDA9PT1lJiZ2b2lkIDA9PT1yP25ldyBVaW50OEFycmF5KHQpOnZvaWQgMD09PXI/bmV3IFVpbnQ4QXJyYXkodCxlKTpuZXcgVWludDhBcnJheSh0LGUscik7cmV0dXJuIG4uX19wcm90b19fPWEucHJvdG90eXBlLG59KHQsZSxyKTtpZigibnVtYmVyIj09dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJ2YWx1ZSIgYXJndW1lbnQgbXVzdCBub3QgYmUgb2YgdHlwZSBudW1iZXIuIFJlY2VpdmVkIHR5cGUgbnVtYmVyJyk7dmFyIG49dC52YWx1ZU9mJiZ0LnZhbHVlT2YoKTtpZihudWxsIT1uJiZuIT09dClyZXR1cm4gYS5mcm9tKG4sZSxyKTt2YXIgbz1mdW5jdGlvbih0KXtpZihhLmlzQnVmZmVyKHQpKXt2YXIgZT0wfHUodC5sZW5ndGgpLHI9aShlKTtyZXR1cm4gMD09PXIubGVuZ3RofHx0LmNvcHkociwwLDAsZSkscn1pZih2b2lkIDAhPT10Lmxlbmd0aClyZXR1cm4ibnVtYmVyIiE9dHlwZW9mIHQubGVuZ3RofHxOKHQubGVuZ3RoKT9pKDApOmModCk7aWYoIkJ1ZmZlciI9PT10LnR5cGUmJkFycmF5LmlzQXJyYXkodC5kYXRhKSlyZXR1cm4gYyh0LmRhdGEpfSh0KTtpZihvKXJldHVybiBvO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1TeW1ib2wudG9QcmltaXRpdmUmJiJmdW5jdGlvbiI9PXR5cGVvZiB0W1N5bWJvbC50b1ByaW1pdGl2ZV0pcmV0dXJuIGEuZnJvbSh0W1N5bWJvbC50b1ByaW1pdGl2ZV0oInN0cmluZyIpLGUscik7dGhyb3cgbmV3IFR5cGVFcnJvcigiVGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgb25lIG9mIHR5cGUgc3RyaW5nLCBCdWZmZXIsIEFycmF5QnVmZmVyLCBBcnJheSwgb3IgQXJyYXktbGlrZSBPYmplY3QuIFJlY2VpdmVkIHR5cGUgIit0eXBlb2YgdCl9ZnVuY3Rpb24gcyh0KXtpZigibnVtYmVyIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcignInNpemUiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBudW1iZXInKTtpZih0PDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSAiJyt0KyciIGlzIGludmFsaWQgZm9yIG9wdGlvbiAic2l6ZSInKX1mdW5jdGlvbiBsKHQpe3JldHVybiBzKHQpLGkodDwwPzA6MHx1KHQpKX1mdW5jdGlvbiBjKHQpe2Zvcih2YXIgZT10Lmxlbmd0aDwwPzA6MHx1KHQubGVuZ3RoKSxyPWkoZSksbj0wO248ZTtuKz0xKXJbbl09MjU1JnRbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gdSh0KXtpZih0Pj0yMTQ3NDgzNjQ3KXRocm93IG5ldyBSYW5nZUVycm9yKCJBdHRlbXB0IHRvIGFsbG9jYXRlIEJ1ZmZlciBsYXJnZXIgdGhhbiBtYXhpbXVtIHNpemU6IDB4IisyMTQ3NDgzNjQ3Li50b1N0cmluZygxNikrIiBieXRlcyIpO3JldHVybiAwfHR9ZnVuY3Rpb24gZih0LGUpe2lmKGEuaXNCdWZmZXIodCkpcmV0dXJuIHQubGVuZ3RoO2lmKEFycmF5QnVmZmVyLmlzVmlldyh0KXx8Qih0LEFycmF5QnVmZmVyKSlyZXR1cm4gdC5ieXRlTGVuZ3RoO2lmKCJzdHJpbmciIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInN0cmluZyIgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBzdHJpbmcsIEJ1ZmZlciwgb3IgQXJyYXlCdWZmZXIuIFJlY2VpdmVkIHR5cGUgJyt0eXBlb2YgdCk7dmFyIHI9dC5sZW5ndGgsbj1hcmd1bWVudHMubGVuZ3RoPjImJiEwPT09YXJndW1lbnRzWzJdO2lmKCFuJiYwPT09cilyZXR1cm4gMDtmb3IodmFyIGk9ITE7Oylzd2l0Y2goZSl7Y2FzZSJhc2NpaSI6Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4gcjtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiBEKHQpLmxlbmd0aDtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuIDIqcjtjYXNlImhleCI6cmV0dXJuIHI+Pj4xO2Nhc2UiYmFzZTY0IjpyZXR1cm4gUih0KS5sZW5ndGg7ZGVmYXVsdDppZihpKXJldHVybiBuPy0xOkQodCkubGVuZ3RoO2U9KCIiK2UpLnRvTG93ZXJDYXNlKCksaT0hMH19ZnVuY3Rpb24gaCh0LGUscil7dmFyIG49ITE7aWYoKHZvaWQgMD09PWV8fGU8MCkmJihlPTApLGU+dGhpcy5sZW5ndGgpcmV0dXJuIiI7aWYoKHZvaWQgMD09PXJ8fHI+dGhpcy5sZW5ndGgpJiYocj10aGlzLmxlbmd0aCkscjw9MClyZXR1cm4iIjtpZigocj4+Pj0wKTw9KGU+Pj49MCkpcmV0dXJuIiI7Zm9yKHR8fCh0PSJ1dGY4Iik7Oylzd2l0Y2godCl7Y2FzZSJoZXgiOnJldHVybiBNKHRoaXMsZSxyKTtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiBUKHRoaXMsZSxyKTtjYXNlImFzY2lpIjpyZXR1cm4gayh0aGlzLGUscik7Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4gQSh0aGlzLGUscik7Y2FzZSJiYXNlNjQiOnJldHVybiB3KHRoaXMsZSxyKTtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuIFModGhpcyxlLHIpO2RlZmF1bHQ6aWYobil0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK3QpO3Q9KHQrIiIpLnRvTG93ZXJDYXNlKCksbj0hMH19ZnVuY3Rpb24gcCh0LGUscil7dmFyIG49dFtlXTt0W2VdPXRbcl0sdFtyXT1ufWZ1bmN0aW9uIGQodCxlLHIsbixpKXtpZigwPT09dC5sZW5ndGgpcmV0dXJuLTE7aWYoInN0cmluZyI9PXR5cGVvZiByPyhuPXIscj0wKTpyPjIxNDc0ODM2NDc/cj0yMTQ3NDgzNjQ3OnI8LTIxNDc0ODM2NDgmJihyPS0yMTQ3NDgzNjQ4KSxOKHI9K3IpJiYocj1pPzA6dC5sZW5ndGgtMSkscjwwJiYocj10Lmxlbmd0aCtyKSxyPj10Lmxlbmd0aCl7aWYoaSlyZXR1cm4tMTtyPXQubGVuZ3RoLTF9ZWxzZSBpZihyPDApe2lmKCFpKXJldHVybi0xO3I9MH1pZigic3RyaW5nIj09dHlwZW9mIGUmJihlPWEuZnJvbShlLG4pKSxhLmlzQnVmZmVyKGUpKXJldHVybiAwPT09ZS5sZW5ndGg/LTE6bSh0LGUscixuLGkpO2lmKCJudW1iZXIiPT10eXBlb2YgZSlyZXR1cm4gZSY9MjU1LCJmdW5jdGlvbiI9PXR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mP2k/VWludDhBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKHQsZSxyKTpVaW50OEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKHQsZSxyKTptKHQsW2VdLHIsbixpKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJ2YWwgbXVzdCBiZSBzdHJpbmcsIG51bWJlciBvciBCdWZmZXIiKX1mdW5jdGlvbiBtKHQsZSxyLG4saSl7dmFyIGEsbz0xLHM9dC5sZW5ndGgsbD1lLmxlbmd0aDtpZih2b2lkIDAhPT1uJiYoInVjczIiPT09KG49U3RyaW5nKG4pLnRvTG93ZXJDYXNlKCkpfHwidWNzLTIiPT09bnx8InV0ZjE2bGUiPT09bnx8InV0Zi0xNmxlIj09PW4pKXtpZih0Lmxlbmd0aDwyfHxlLmxlbmd0aDwyKXJldHVybi0xO289MixzLz0yLGwvPTIsci89Mn1mdW5jdGlvbiBjKHQsZSl7cmV0dXJuIDE9PT1vP3RbZV06dC5yZWFkVUludDE2QkUoZSpvKX1pZihpKXt2YXIgdT0tMTtmb3IoYT1yO2E8czthKyspaWYoYyh0LGEpPT09YyhlLC0xPT09dT8wOmEtdSkpe2lmKC0xPT09dSYmKHU9YSksYS11KzE9PT1sKXJldHVybiB1Km99ZWxzZS0xIT09dSYmKGEtPWEtdSksdT0tMX1lbHNlIGZvcihyK2w+cyYmKHI9cy1sKSxhPXI7YT49MDthLS0pe2Zvcih2YXIgZj0hMCxoPTA7aDxsO2grKylpZihjKHQsYStoKSE9PWMoZSxoKSl7Zj0hMTticmVha31pZihmKXJldHVybiBhfXJldHVybi0xfWZ1bmN0aW9uIGcodCxlLHIsbil7cj1OdW1iZXIocil8fDA7dmFyIGk9dC5sZW5ndGgtcjtuPyhuPU51bWJlcihuKSk+aSYmKG49aSk6bj1pO3ZhciBhPWUubGVuZ3RoO24+YS8yJiYobj1hLzIpO2Zvcih2YXIgbz0wO288bjsrK28pe3ZhciBzPXBhcnNlSW50KGUuc3Vic3RyKDIqbywyKSwxNik7aWYoTihzKSlyZXR1cm4gbzt0W3Irb109c31yZXR1cm4gb31mdW5jdGlvbiB2KHQsZSxyLG4pe3JldHVybiBGKEQoZSx0Lmxlbmd0aC1yKSx0LHIsbil9ZnVuY3Rpb24geSh0LGUscixuKXtyZXR1cm4gRihmdW5jdGlvbih0KXtmb3IodmFyIGU9W10scj0wO3I8dC5sZW5ndGg7KytyKWUucHVzaCgyNTUmdC5jaGFyQ29kZUF0KHIpKTtyZXR1cm4gZX0oZSksdCxyLG4pfWZ1bmN0aW9uIHgodCxlLHIsbil7cmV0dXJuIHkodCxlLHIsbil9ZnVuY3Rpb24gYih0LGUscixuKXtyZXR1cm4gRihSKGUpLHQscixuKX1mdW5jdGlvbiBfKHQsZSxyLG4pe3JldHVybiBGKGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByLG4saSxhPVtdLG89MDtvPHQubGVuZ3RoJiYhKChlLT0yKTwwKTsrK28pcj10LmNoYXJDb2RlQXQobyksbj1yPj44LGk9ciUyNTYsYS5wdXNoKGkpLGEucHVzaChuKTtyZXR1cm4gYX0oZSx0Lmxlbmd0aC1yKSx0LHIsbil9ZnVuY3Rpb24gdyh0LHIsbil7cmV0dXJuIDA9PT1yJiZuPT09dC5sZW5ndGg/ZS5mcm9tQnl0ZUFycmF5KHQpOmUuZnJvbUJ5dGVBcnJheSh0LnNsaWNlKHIsbikpfWZ1bmN0aW9uIFQodCxlLHIpe3I9TWF0aC5taW4odC5sZW5ndGgscik7Zm9yKHZhciBuPVtdLGk9ZTtpPHI7KXt2YXIgYSxvLHMsbCxjPXRbaV0sdT1udWxsLGY9Yz4yMzk/NDpjPjIyMz8zOmM+MTkxPzI6MTtpZihpK2Y8PXIpc3dpdGNoKGYpe2Nhc2UgMTpjPDEyOCYmKHU9Yyk7YnJlYWs7Y2FzZSAyOjEyOD09KDE5MiYoYT10W2krMV0pKSYmKGw9KDMxJmMpPDw2fDYzJmEpPjEyNyYmKHU9bCk7YnJlYWs7Y2FzZSAzOmE9dFtpKzFdLG89dFtpKzJdLDEyOD09KDE5MiZhKSYmMTI4PT0oMTkyJm8pJiYobD0oMTUmYyk8PDEyfCg2MyZhKTw8Nnw2MyZvKT4yMDQ3JiYobDw1NTI5Nnx8bD41NzM0MykmJih1PWwpO2JyZWFrO2Nhc2UgNDphPXRbaSsxXSxvPXRbaSsyXSxzPXRbaSszXSwxMjg9PSgxOTImYSkmJjEyOD09KDE5MiZvKSYmMTI4PT0oMTkyJnMpJiYobD0oMTUmYyk8PDE4fCg2MyZhKTw8MTJ8KDYzJm8pPDw2fDYzJnMpPjY1NTM1JiZsPDExMTQxMTImJih1PWwpfW51bGw9PT11Pyh1PTY1NTMzLGY9MSk6dT42NTUzNSYmKHUtPTY1NTM2LG4ucHVzaCh1Pj4+MTAmMTAyM3w1NTI5NiksdT01NjMyMHwxMDIzJnUpLG4ucHVzaCh1KSxpKz1mfXJldHVybiBmdW5jdGlvbih0KXt2YXIgZT10Lmxlbmd0aDtpZihlPD00MDk2KXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyx0KTt2YXIgcj0iIixuPTA7Zm9yKDtuPGU7KXIrPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLHQuc2xpY2UobixuKz00MDk2KSk7cmV0dXJuIHJ9KG4pfXIua01heExlbmd0aD0yMTQ3NDgzNjQ3LGEuVFlQRURfQVJSQVlfU1VQUE9SVD1mdW5jdGlvbigpe3RyeXt2YXIgdD1uZXcgVWludDhBcnJheSgxKTtyZXR1cm4gdC5fX3Byb3RvX189e19fcHJvdG9fXzpVaW50OEFycmF5LnByb3RvdHlwZSxmb286ZnVuY3Rpb24oKXtyZXR1cm4gNDJ9fSw0Mj09PXQuZm9vKCl9Y2F0Y2godCl7cmV0dXJuITF9fSgpLGEuVFlQRURfQVJSQVlfU1VQUE9SVHx8InVuZGVmaW5lZCI9PXR5cGVvZiBjb25zb2xlfHwiZnVuY3Rpb24iIT10eXBlb2YgY29uc29sZS5lcnJvcnx8Y29uc29sZS5lcnJvcigiVGhpcyBicm93c2VyIGxhY2tzIHR5cGVkIGFycmF5IChVaW50OEFycmF5KSBzdXBwb3J0IHdoaWNoIGlzIHJlcXVpcmVkIGJ5IGBidWZmZXJgIHY1LnguIFVzZSBgYnVmZmVyYCB2NC54IGlmIHlvdSByZXF1aXJlIG9sZCBicm93c2VyIHN1cHBvcnQuIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGEucHJvdG90eXBlLCJwYXJlbnQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe2lmKGEuaXNCdWZmZXIodGhpcykpcmV0dXJuIHRoaXMuYnVmZmVyfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLnByb3RvdHlwZSwib2Zmc2V0Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtpZihhLmlzQnVmZmVyKHRoaXMpKXJldHVybiB0aGlzLmJ5dGVPZmZzZXR9fSksInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPVN5bWJvbC5zcGVjaWVzJiZhW1N5bWJvbC5zcGVjaWVzXT09PWEmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5zcGVjaWVzLHt2YWx1ZTpudWxsLGNvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiExfSksYS5wb29sU2l6ZT04MTkyLGEuZnJvbT1mdW5jdGlvbih0LGUscil7cmV0dXJuIG8odCxlLHIpfSxhLnByb3RvdHlwZS5fX3Byb3RvX189VWludDhBcnJheS5wcm90b3R5cGUsYS5fX3Byb3RvX189VWludDhBcnJheSxhLmFsbG9jPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZnVuY3Rpb24odCxlLHIpe3JldHVybiBzKHQpLHQ8PTA/aSh0KTp2b2lkIDAhPT1lPyJzdHJpbmciPT10eXBlb2Ygcj9pKHQpLmZpbGwoZSxyKTppKHQpLmZpbGwoZSk6aSh0KX0odCxlLHIpfSxhLmFsbG9jVW5zYWZlPWZ1bmN0aW9uKHQpe3JldHVybiBsKHQpfSxhLmFsbG9jVW5zYWZlU2xvdz1mdW5jdGlvbih0KXtyZXR1cm4gbCh0KX0sYS5pc0J1ZmZlcj1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dCYmITA9PT10Ll9pc0J1ZmZlciYmdCE9PWEucHJvdG90eXBlfSxhLmNvbXBhcmU9ZnVuY3Rpb24odCxlKXtpZihCKHQsVWludDhBcnJheSkmJih0PWEuZnJvbSh0LHQub2Zmc2V0LHQuYnl0ZUxlbmd0aCkpLEIoZSxVaW50OEFycmF5KSYmKGU9YS5mcm9tKGUsZS5vZmZzZXQsZS5ieXRlTGVuZ3RoKSksIWEuaXNCdWZmZXIodCl8fCFhLmlzQnVmZmVyKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAiYnVmMSIsICJidWYyIiBhcmd1bWVudHMgbXVzdCBiZSBvbmUgb2YgdHlwZSBCdWZmZXIgb3IgVWludDhBcnJheScpO2lmKHQ9PT1lKXJldHVybiAwO2Zvcih2YXIgcj10Lmxlbmd0aCxuPWUubGVuZ3RoLGk9MCxvPU1hdGgubWluKHIsbik7aTxvOysraSlpZih0W2ldIT09ZVtpXSl7cj10W2ldLG49ZVtpXTticmVha31yZXR1cm4gcjxuPy0xOm48cj8xOjB9LGEuaXNFbmNvZGluZz1mdW5jdGlvbih0KXtzd2l0Y2goU3RyaW5nKHQpLnRvTG93ZXJDYXNlKCkpe2Nhc2UiaGV4IjpjYXNlInV0ZjgiOmNhc2UidXRmLTgiOmNhc2UiYXNjaWkiOmNhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6Y2FzZSJiYXNlNjQiOmNhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX0sYS5jb25jYXQ9ZnVuY3Rpb24odCxlKXtpZighQXJyYXkuaXNBcnJheSh0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCcibGlzdCIgYXJndW1lbnQgbXVzdCBiZSBhbiBBcnJheSBvZiBCdWZmZXJzJyk7aWYoMD09PXQubGVuZ3RoKXJldHVybiBhLmFsbG9jKDApO3ZhciByO2lmKHZvaWQgMD09PWUpZm9yKGU9MCxyPTA7cjx0Lmxlbmd0aDsrK3IpZSs9dFtyXS5sZW5ndGg7dmFyIG49YS5hbGxvY1Vuc2FmZShlKSxpPTA7Zm9yKHI9MDtyPHQubGVuZ3RoOysrcil7dmFyIG89dFtyXTtpZihCKG8sVWludDhBcnJheSkmJihvPWEuZnJvbShvKSksIWEuaXNCdWZmZXIobykpdGhyb3cgbmV3IFR5cGVFcnJvcignImxpc3QiIGFyZ3VtZW50IG11c3QgYmUgYW4gQXJyYXkgb2YgQnVmZmVycycpO28uY29weShuLGkpLGkrPW8ubGVuZ3RofXJldHVybiBufSxhLmJ5dGVMZW5ndGg9ZixhLnByb3RvdHlwZS5faXNCdWZmZXI9ITAsYS5wcm90b3R5cGUuc3dhcDE2PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5sZW5ndGg7aWYodCUyIT0wKXRocm93IG5ldyBSYW5nZUVycm9yKCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMTYtYml0cyIpO2Zvcih2YXIgZT0wO2U8dDtlKz0yKXAodGhpcyxlLGUrMSk7cmV0dXJuIHRoaXN9LGEucHJvdG90eXBlLnN3YXAzMj1mdW5jdGlvbigpe3ZhciB0PXRoaXMubGVuZ3RoO2lmKHQlNCE9MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDMyLWJpdHMiKTtmb3IodmFyIGU9MDtlPHQ7ZSs9NClwKHRoaXMsZSxlKzMpLHAodGhpcyxlKzEsZSsyKTtyZXR1cm4gdGhpc30sYS5wcm90b3R5cGUuc3dhcDY0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5sZW5ndGg7aWYodCU4IT0wKXRocm93IG5ldyBSYW5nZUVycm9yKCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNjQtYml0cyIpO2Zvcih2YXIgZT0wO2U8dDtlKz04KXAodGhpcyxlLGUrNykscCh0aGlzLGUrMSxlKzYpLHAodGhpcyxlKzIsZSs1KSxwKHRoaXMsZSszLGUrNCk7cmV0dXJuIHRoaXN9LGEucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5sZW5ndGg7cmV0dXJuIDA9PT10PyIiOjA9PT1hcmd1bWVudHMubGVuZ3RoP1QodGhpcywwLHQpOmguYXBwbHkodGhpcyxhcmd1bWVudHMpfSxhLnByb3RvdHlwZS50b0xvY2FsZVN0cmluZz1hLnByb3RvdHlwZS50b1N0cmluZyxhLnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24odCl7aWYoIWEuaXNCdWZmZXIodCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlciIpO3JldHVybiB0aGlzPT09dHx8MD09PWEuY29tcGFyZSh0aGlzLHQpfSxhLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7dmFyIHQ9IiIsZT1yLklOU1BFQ1RfTUFYX0JZVEVTO3JldHVybiB0PXRoaXMudG9TdHJpbmcoImhleCIsMCxlKS5yZXBsYWNlKC8oLnsyfSkvZywiJDEgIikudHJpbSgpLHRoaXMubGVuZ3RoPmUmJih0Kz0iIC4uLiAiKSwiPEJ1ZmZlciAiK3QrIj4ifSxhLnByb3RvdHlwZS5jb21wYXJlPWZ1bmN0aW9uKHQsZSxyLG4saSl7aWYoQih0LFVpbnQ4QXJyYXkpJiYodD1hLmZyb20odCx0Lm9mZnNldCx0LmJ5dGVMZW5ndGgpKSwhYS5pc0J1ZmZlcih0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInRhcmdldCIgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBCdWZmZXIgb3IgVWludDhBcnJheS4gUmVjZWl2ZWQgdHlwZSAnK3R5cGVvZiB0KTtpZih2b2lkIDA9PT1lJiYoZT0wKSx2b2lkIDA9PT1yJiYocj10P3QubGVuZ3RoOjApLHZvaWQgMD09PW4mJihuPTApLHZvaWQgMD09PWkmJihpPXRoaXMubGVuZ3RoKSxlPDB8fHI+dC5sZW5ndGh8fG48MHx8aT50aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigib3V0IG9mIHJhbmdlIGluZGV4Iik7aWYobj49aSYmZT49cilyZXR1cm4gMDtpZihuPj1pKXJldHVybi0xO2lmKGU+PXIpcmV0dXJuIDE7aWYodGhpcz09PXQpcmV0dXJuIDA7Zm9yKHZhciBvPShpPj4+PTApLShuPj4+PTApLHM9KHI+Pj49MCktKGU+Pj49MCksbD1NYXRoLm1pbihvLHMpLGM9dGhpcy5zbGljZShuLGkpLHU9dC5zbGljZShlLHIpLGY9MDtmPGw7KytmKWlmKGNbZl0hPT11W2ZdKXtvPWNbZl0scz11W2ZdO2JyZWFrfXJldHVybiBvPHM/LTE6czxvPzE6MH0sYS5wcm90b3R5cGUuaW5jbHVkZXM9ZnVuY3Rpb24odCxlLHIpe3JldHVybi0xIT09dGhpcy5pbmRleE9mKHQsZSxyKX0sYS5wcm90b3R5cGUuaW5kZXhPZj1mdW5jdGlvbih0LGUscil7cmV0dXJuIGQodGhpcyx0LGUsciwhMCl9LGEucHJvdG90eXBlLmxhc3RJbmRleE9mPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZCh0aGlzLHQsZSxyLCExKX0sYS5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24odCxlLHIsbil7aWYodm9pZCAwPT09ZSluPSJ1dGY4IixyPXRoaXMubGVuZ3RoLGU9MDtlbHNlIGlmKHZvaWQgMD09PXImJiJzdHJpbmciPT10eXBlb2YgZSluPWUscj10aGlzLmxlbmd0aCxlPTA7ZWxzZXtpZighaXNGaW5pdGUoZSkpdGhyb3cgbmV3IEVycm9yKCJCdWZmZXIud3JpdGUoc3RyaW5nLCBlbmNvZGluZywgb2Zmc2V0WywgbGVuZ3RoXSkgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCIpO2U+Pj49MCxpc0Zpbml0ZShyKT8ocj4+Pj0wLHZvaWQgMD09PW4mJihuPSJ1dGY4IikpOihuPXIscj12b2lkIDApfXZhciBpPXRoaXMubGVuZ3RoLWU7aWYoKHZvaWQgMD09PXJ8fHI+aSkmJihyPWkpLHQubGVuZ3RoPjAmJihyPDB8fGU8MCl8fGU+dGhpcy5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkF0dGVtcHQgdG8gd3JpdGUgb3V0c2lkZSBidWZmZXIgYm91bmRzIik7bnx8KG49InV0ZjgiKTtmb3IodmFyIGE9ITE7Oylzd2l0Y2gobil7Y2FzZSJoZXgiOnJldHVybiBnKHRoaXMsdCxlLHIpO2Nhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6cmV0dXJuIHYodGhpcyx0LGUscik7Y2FzZSJhc2NpaSI6cmV0dXJuIHkodGhpcyx0LGUscik7Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4geCh0aGlzLHQsZSxyKTtjYXNlImJhc2U2NCI6cmV0dXJuIGIodGhpcyx0LGUscik7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiBfKHRoaXMsdCxlLHIpO2RlZmF1bHQ6aWYoYSl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK24pO249KCIiK24pLnRvTG93ZXJDYXNlKCksYT0hMH19LGEucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybnt0eXBlOiJCdWZmZXIiLGRhdGE6QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodGhpcy5fYXJyfHx0aGlzLDApfX07ZnVuY3Rpb24gayh0LGUscil7dmFyIG49IiI7cj1NYXRoLm1pbih0Lmxlbmd0aCxyKTtmb3IodmFyIGk9ZTtpPHI7KytpKW4rPVN0cmluZy5mcm9tQ2hhckNvZGUoMTI3JnRbaV0pO3JldHVybiBufWZ1bmN0aW9uIEEodCxlLHIpe3ZhciBuPSIiO3I9TWF0aC5taW4odC5sZW5ndGgscik7Zm9yKHZhciBpPWU7aTxyOysraSluKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHRbaV0pO3JldHVybiBufWZ1bmN0aW9uIE0odCxlLHIpe3ZhciBuPXQubGVuZ3RoOyghZXx8ZTwwKSYmKGU9MCksKCFyfHxyPDB8fHI+bikmJihyPW4pO2Zvcih2YXIgaT0iIixhPWU7YTxyOysrYSlpKz16KHRbYV0pO3JldHVybiBpfWZ1bmN0aW9uIFModCxlLHIpe2Zvcih2YXIgbj10LnNsaWNlKGUsciksaT0iIixhPTA7YTxuLmxlbmd0aDthKz0yKWkrPVN0cmluZy5mcm9tQ2hhckNvZGUoblthXSsyNTYqblthKzFdKTtyZXR1cm4gaX1mdW5jdGlvbiBFKHQsZSxyKXtpZih0JTEhPTB8fHQ8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigib2Zmc2V0IGlzIG5vdCB1aW50Iik7aWYodCtlPnIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlRyeWluZyB0byBhY2Nlc3MgYmV5b25kIGJ1ZmZlciBsZW5ndGgiKX1mdW5jdGlvbiBMKHQsZSxyLG4saSxvKXtpZighYS5pc0J1ZmZlcih0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCciYnVmZmVyIiBhcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIGluc3RhbmNlJyk7aWYoZT5pfHxlPG8pdGhyb3cgbmV3IFJhbmdlRXJyb3IoJyJ2YWx1ZSIgYXJndW1lbnQgaXMgb3V0IG9mIGJvdW5kcycpO2lmKHIrbj50Lmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gQyh0LGUscixuLGksYSl7aWYocituPnQubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbmRleCBvdXQgb2YgcmFuZ2UiKTtpZihyPDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkluZGV4IG91dCBvZiByYW5nZSIpfWZ1bmN0aW9uIFAodCxlLHIsaSxhKXtyZXR1cm4gZT0rZSxyPj4+PTAsYXx8Qyh0LDAsciw0KSxuLndyaXRlKHQsZSxyLGksMjMsNCkscis0fWZ1bmN0aW9uIEkodCxlLHIsaSxhKXtyZXR1cm4gZT0rZSxyPj4+PTAsYXx8Qyh0LDAsciw4KSxuLndyaXRlKHQsZSxyLGksNTIsOCkscis4fWEucHJvdG90eXBlLnNsaWNlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5sZW5ndGg7KHQ9fn50KTwwPyh0Kz1yKTwwJiYodD0wKTp0PnImJih0PXIpLChlPXZvaWQgMD09PWU/cjp+fmUpPDA/KGUrPXIpPDAmJihlPTApOmU+ciYmKGU9ciksZTx0JiYoZT10KTt2YXIgbj10aGlzLnN1YmFycmF5KHQsZSk7cmV0dXJuIG4uX19wcm90b19fPWEucHJvdG90eXBlLG59LGEucHJvdG90eXBlLnJlYWRVSW50TEU9ZnVuY3Rpb24odCxlLHIpe3Q+Pj49MCxlPj4+PTAscnx8RSh0LGUsdGhpcy5sZW5ndGgpO2Zvcih2YXIgbj10aGlzW3RdLGk9MSxhPTA7KythPGUmJihpKj0yNTYpOyluKz10aGlzW3QrYV0qaTtyZXR1cm4gbn0sYS5wcm90b3R5cGUucmVhZFVJbnRCRT1mdW5jdGlvbih0LGUscil7dD4+Pj0wLGU+Pj49MCxyfHxFKHQsZSx0aGlzLmxlbmd0aCk7Zm9yKHZhciBuPXRoaXNbdCstLWVdLGk9MTtlPjAmJihpKj0yNTYpOyluKz10aGlzW3QrLS1lXSppO3JldHVybiBufSxhLnByb3RvdHlwZS5yZWFkVUludDg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD4+Pj0wLGV8fEUodCwxLHRoaXMubGVuZ3RoKSx0aGlzW3RdfSxhLnByb3RvdHlwZS5yZWFkVUludDE2TEU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD4+Pj0wLGV8fEUodCwyLHRoaXMubGVuZ3RoKSx0aGlzW3RdfHRoaXNbdCsxXTw8OH0sYS5wcm90b3R5cGUucmVhZFVJbnQxNkJFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ+Pj49MCxlfHxFKHQsMix0aGlzLmxlbmd0aCksdGhpc1t0XTw8OHx0aGlzW3QrMV19LGEucHJvdG90eXBlLnJlYWRVSW50MzJMRT1mdW5jdGlvbih0LGUpe3JldHVybiB0Pj4+PTAsZXx8RSh0LDQsdGhpcy5sZW5ndGgpLCh0aGlzW3RdfHRoaXNbdCsxXTw8OHx0aGlzW3QrMl08PDE2KSsxNjc3NzIxNip0aGlzW3QrM119LGEucHJvdG90eXBlLnJlYWRVSW50MzJCRT1mdW5jdGlvbih0LGUpe3JldHVybiB0Pj4+PTAsZXx8RSh0LDQsdGhpcy5sZW5ndGgpLDE2Nzc3MjE2KnRoaXNbdF0rKHRoaXNbdCsxXTw8MTZ8dGhpc1t0KzJdPDw4fHRoaXNbdCszXSl9LGEucHJvdG90eXBlLnJlYWRJbnRMRT1mdW5jdGlvbih0LGUscil7dD4+Pj0wLGU+Pj49MCxyfHxFKHQsZSx0aGlzLmxlbmd0aCk7Zm9yKHZhciBuPXRoaXNbdF0saT0xLGE9MDsrK2E8ZSYmKGkqPTI1Nik7KW4rPXRoaXNbdCthXSppO3JldHVybiBuPj0oaSo9MTI4KSYmKG4tPU1hdGgucG93KDIsOCplKSksbn0sYS5wcm90b3R5cGUucmVhZEludEJFPWZ1bmN0aW9uKHQsZSxyKXt0Pj4+PTAsZT4+Pj0wLHJ8fEUodCxlLHRoaXMubGVuZ3RoKTtmb3IodmFyIG49ZSxpPTEsYT10aGlzW3QrLS1uXTtuPjAmJihpKj0yNTYpOylhKz10aGlzW3QrLS1uXSppO3JldHVybiBhPj0oaSo9MTI4KSYmKGEtPU1hdGgucG93KDIsOCplKSksYX0sYS5wcm90b3R5cGUucmVhZEludDg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD4+Pj0wLGV8fEUodCwxLHRoaXMubGVuZ3RoKSwxMjgmdGhpc1t0XT8tMSooMjU1LXRoaXNbdF0rMSk6dGhpc1t0XX0sYS5wcm90b3R5cGUucmVhZEludDE2TEU9ZnVuY3Rpb24odCxlKXt0Pj4+PTAsZXx8RSh0LDIsdGhpcy5sZW5ndGgpO3ZhciByPXRoaXNbdF18dGhpc1t0KzFdPDw4O3JldHVybiAzMjc2OCZyPzQyOTQ5MDE3NjB8cjpyfSxhLnByb3RvdHlwZS5yZWFkSW50MTZCRT1mdW5jdGlvbih0LGUpe3Q+Pj49MCxlfHxFKHQsMix0aGlzLmxlbmd0aCk7dmFyIHI9dGhpc1t0KzFdfHRoaXNbdF08PDg7cmV0dXJuIDMyNzY4JnI/NDI5NDkwMTc2MHxyOnJ9LGEucHJvdG90eXBlLnJlYWRJbnQzMkxFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ+Pj49MCxlfHxFKHQsNCx0aGlzLmxlbmd0aCksdGhpc1t0XXx0aGlzW3QrMV08PDh8dGhpc1t0KzJdPDwxNnx0aGlzW3QrM108PDI0fSxhLnByb3RvdHlwZS5yZWFkSW50MzJCRT1mdW5jdGlvbih0LGUpe3JldHVybiB0Pj4+PTAsZXx8RSh0LDQsdGhpcy5sZW5ndGgpLHRoaXNbdF08PDI0fHRoaXNbdCsxXTw8MTZ8dGhpc1t0KzJdPDw4fHRoaXNbdCszXX0sYS5wcm90b3R5cGUucmVhZEZsb2F0TEU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD4+Pj0wLGV8fEUodCw0LHRoaXMubGVuZ3RoKSxuLnJlYWQodGhpcyx0LCEwLDIzLDQpfSxhLnByb3RvdHlwZS5yZWFkRmxvYXRCRT1mdW5jdGlvbih0LGUpe3JldHVybiB0Pj4+PTAsZXx8RSh0LDQsdGhpcy5sZW5ndGgpLG4ucmVhZCh0aGlzLHQsITEsMjMsNCl9LGEucHJvdG90eXBlLnJlYWREb3VibGVMRT1mdW5jdGlvbih0LGUpe3JldHVybiB0Pj4+PTAsZXx8RSh0LDgsdGhpcy5sZW5ndGgpLG4ucmVhZCh0aGlzLHQsITAsNTIsOCl9LGEucHJvdG90eXBlLnJlYWREb3VibGVCRT1mdW5jdGlvbih0LGUpe3JldHVybiB0Pj4+PTAsZXx8RSh0LDgsdGhpcy5sZW5ndGgpLG4ucmVhZCh0aGlzLHQsITEsNTIsOCl9LGEucHJvdG90eXBlLndyaXRlVUludExFPWZ1bmN0aW9uKHQsZSxyLG4peyh0PSt0LGU+Pj49MCxyPj4+PTAsbil8fEwodGhpcyx0LGUscixNYXRoLnBvdygyLDgqciktMSwwKTt2YXIgaT0xLGE9MDtmb3IodGhpc1tlXT0yNTUmdDsrK2E8ciYmKGkqPTI1Nik7KXRoaXNbZSthXT10L2kmMjU1O3JldHVybiBlK3J9LGEucHJvdG90eXBlLndyaXRlVUludEJFPWZ1bmN0aW9uKHQsZSxyLG4peyh0PSt0LGU+Pj49MCxyPj4+PTAsbil8fEwodGhpcyx0LGUscixNYXRoLnBvdygyLDgqciktMSwwKTt2YXIgaT1yLTEsYT0xO2Zvcih0aGlzW2UraV09MjU1JnQ7LS1pPj0wJiYoYSo9MjU2KTspdGhpc1tlK2ldPXQvYSYyNTU7cmV0dXJuIGUrcn0sYS5wcm90b3R5cGUud3JpdGVVSW50OD1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQ9K3QsZT4+Pj0wLHJ8fEwodGhpcyx0LGUsMSwyNTUsMCksdGhpc1tlXT0yNTUmdCxlKzF9LGEucHJvdG90eXBlLndyaXRlVUludDE2TEU9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PSt0LGU+Pj49MCxyfHxMKHRoaXMsdCxlLDIsNjU1MzUsMCksdGhpc1tlXT0yNTUmdCx0aGlzW2UrMV09dD4+PjgsZSsyfSxhLnByb3RvdHlwZS53cml0ZVVJbnQxNkJFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0rdCxlPj4+PTAscnx8TCh0aGlzLHQsZSwyLDY1NTM1LDApLHRoaXNbZV09dD4+PjgsdGhpc1tlKzFdPTI1NSZ0LGUrMn0sYS5wcm90b3R5cGUud3JpdGVVSW50MzJMRT1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQ9K3QsZT4+Pj0wLHJ8fEwodGhpcyx0LGUsNCw0Mjk0OTY3Mjk1LDApLHRoaXNbZSszXT10Pj4+MjQsdGhpc1tlKzJdPXQ+Pj4xNix0aGlzW2UrMV09dD4+PjgsdGhpc1tlXT0yNTUmdCxlKzR9LGEucHJvdG90eXBlLndyaXRlVUludDMyQkU9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PSt0LGU+Pj49MCxyfHxMKHRoaXMsdCxlLDQsNDI5NDk2NzI5NSwwKSx0aGlzW2VdPXQ+Pj4yNCx0aGlzW2UrMV09dD4+PjE2LHRoaXNbZSsyXT10Pj4+OCx0aGlzW2UrM109MjU1JnQsZSs0fSxhLnByb3RvdHlwZS53cml0ZUludExFPWZ1bmN0aW9uKHQsZSxyLG4pe2lmKHQ9K3QsZT4+Pj0wLCFuKXt2YXIgaT1NYXRoLnBvdygyLDgqci0xKTtMKHRoaXMsdCxlLHIsaS0xLC1pKX12YXIgYT0wLG89MSxzPTA7Zm9yKHRoaXNbZV09MjU1JnQ7KythPHImJihvKj0yNTYpOyl0PDAmJjA9PT1zJiYwIT09dGhpc1tlK2EtMV0mJihzPTEpLHRoaXNbZSthXT0odC9vPj4wKS1zJjI1NTtyZXR1cm4gZStyfSxhLnByb3RvdHlwZS53cml0ZUludEJFPWZ1bmN0aW9uKHQsZSxyLG4pe2lmKHQ9K3QsZT4+Pj0wLCFuKXt2YXIgaT1NYXRoLnBvdygyLDgqci0xKTtMKHRoaXMsdCxlLHIsaS0xLC1pKX12YXIgYT1yLTEsbz0xLHM9MDtmb3IodGhpc1tlK2FdPTI1NSZ0Oy0tYT49MCYmKG8qPTI1Nik7KXQ8MCYmMD09PXMmJjAhPT10aGlzW2UrYSsxXSYmKHM9MSksdGhpc1tlK2FdPSh0L28+PjApLXMmMjU1O3JldHVybiBlK3J9LGEucHJvdG90eXBlLndyaXRlSW50OD1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQ9K3QsZT4+Pj0wLHJ8fEwodGhpcyx0LGUsMSwxMjcsLTEyOCksdDwwJiYodD0yNTUrdCsxKSx0aGlzW2VdPTI1NSZ0LGUrMX0sYS5wcm90b3R5cGUud3JpdGVJbnQxNkxFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0rdCxlPj4+PTAscnx8TCh0aGlzLHQsZSwyLDMyNzY3LC0zMjc2OCksdGhpc1tlXT0yNTUmdCx0aGlzW2UrMV09dD4+PjgsZSsyfSxhLnByb3RvdHlwZS53cml0ZUludDE2QkU9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PSt0LGU+Pj49MCxyfHxMKHRoaXMsdCxlLDIsMzI3NjcsLTMyNzY4KSx0aGlzW2VdPXQ+Pj44LHRoaXNbZSsxXT0yNTUmdCxlKzJ9LGEucHJvdG90eXBlLndyaXRlSW50MzJMRT1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQ9K3QsZT4+Pj0wLHJ8fEwodGhpcyx0LGUsNCwyMTQ3NDgzNjQ3LC0yMTQ3NDgzNjQ4KSx0aGlzW2VdPTI1NSZ0LHRoaXNbZSsxXT10Pj4+OCx0aGlzW2UrMl09dD4+PjE2LHRoaXNbZSszXT10Pj4+MjQsZSs0fSxhLnByb3RvdHlwZS53cml0ZUludDMyQkU9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PSt0LGU+Pj49MCxyfHxMKHRoaXMsdCxlLDQsMjE0NzQ4MzY0NywtMjE0NzQ4MzY0OCksdDwwJiYodD00Mjk0OTY3Mjk1K3QrMSksdGhpc1tlXT10Pj4+MjQsdGhpc1tlKzFdPXQ+Pj4xNix0aGlzW2UrMl09dD4+PjgsdGhpc1tlKzNdPTI1NSZ0LGUrNH0sYS5wcm90b3R5cGUud3JpdGVGbG9hdExFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gUCh0aGlzLHQsZSwhMCxyKX0sYS5wcm90b3R5cGUud3JpdGVGbG9hdEJFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gUCh0aGlzLHQsZSwhMSxyKX0sYS5wcm90b3R5cGUud3JpdGVEb3VibGVMRT1mdW5jdGlvbih0LGUscil7cmV0dXJuIEkodGhpcyx0LGUsITAscil9LGEucHJvdG90eXBlLndyaXRlRG91YmxlQkU9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBJKHRoaXMsdCxlLCExLHIpfSxhLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKHQsZSxyLG4pe2lmKCFhLmlzQnVmZmVyKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoImFyZ3VtZW50IHNob3VsZCBiZSBhIEJ1ZmZlciIpO2lmKHJ8fChyPTApLG58fDA9PT1ufHwobj10aGlzLmxlbmd0aCksZT49dC5sZW5ndGgmJihlPXQubGVuZ3RoKSxlfHwoZT0wKSxuPjAmJm48ciYmKG49ciksbj09PXIpcmV0dXJuIDA7aWYoMD09PXQubGVuZ3RofHwwPT09dGhpcy5sZW5ndGgpcmV0dXJuIDA7aWYoZTwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJ0YXJnZXRTdGFydCBvdXQgb2YgYm91bmRzIik7aWYocjwwfHxyPj10aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIik7aWYobjwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJzb3VyY2VFbmQgb3V0IG9mIGJvdW5kcyIpO24+dGhpcy5sZW5ndGgmJihuPXRoaXMubGVuZ3RoKSx0Lmxlbmd0aC1lPG4tciYmKG49dC5sZW5ndGgtZStyKTt2YXIgaT1uLXI7aWYodGhpcz09PXQmJiJmdW5jdGlvbiI9PXR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5jb3B5V2l0aGluKXRoaXMuY29weVdpdGhpbihlLHIsbik7ZWxzZSBpZih0aGlzPT09dCYmcjxlJiZlPG4pZm9yKHZhciBvPWktMTtvPj0wOy0tbyl0W28rZV09dGhpc1tvK3JdO2Vsc2UgVWludDhBcnJheS5wcm90b3R5cGUuc2V0LmNhbGwodCx0aGlzLnN1YmFycmF5KHIsbiksZSk7cmV0dXJuIGl9LGEucHJvdG90eXBlLmZpbGw9ZnVuY3Rpb24odCxlLHIsbil7aWYoInN0cmluZyI9PXR5cGVvZiB0KXtpZigic3RyaW5nIj09dHlwZW9mIGU/KG49ZSxlPTAscj10aGlzLmxlbmd0aCk6InN0cmluZyI9PXR5cGVvZiByJiYobj1yLHI9dGhpcy5sZW5ndGgpLHZvaWQgMCE9PW4mJiJzdHJpbmciIT10eXBlb2Ygbil0aHJvdyBuZXcgVHlwZUVycm9yKCJlbmNvZGluZyBtdXN0IGJlIGEgc3RyaW5nIik7aWYoInN0cmluZyI9PXR5cGVvZiBuJiYhYS5pc0VuY29kaW5nKG4pKXRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrbik7aWYoMT09PXQubGVuZ3RoKXt2YXIgaT10LmNoYXJDb2RlQXQoMCk7KCJ1dGY4Ij09PW4mJmk8MTI4fHwibGF0aW4xIj09PW4pJiYodD1pKX19ZWxzZSJudW1iZXIiPT10eXBlb2YgdCYmKHQmPTI1NSk7aWYoZTwwfHx0aGlzLmxlbmd0aDxlfHx0aGlzLmxlbmd0aDxyKXRocm93IG5ldyBSYW5nZUVycm9yKCJPdXQgb2YgcmFuZ2UgaW5kZXgiKTtpZihyPD1lKXJldHVybiB0aGlzO3ZhciBvO2lmKGU+Pj49MCxyPXZvaWQgMD09PXI/dGhpcy5sZW5ndGg6cj4+PjAsdHx8KHQ9MCksIm51bWJlciI9PXR5cGVvZiB0KWZvcihvPWU7bzxyOysrbyl0aGlzW29dPXQ7ZWxzZXt2YXIgcz1hLmlzQnVmZmVyKHQpP3Q6YS5mcm9tKHQsbiksbD1zLmxlbmd0aDtpZigwPT09bCl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgdmFsdWUgIicrdCsnIiBpcyBpbnZhbGlkIGZvciBhcmd1bWVudCAidmFsdWUiJyk7Zm9yKG89MDtvPHItZTsrK28pdGhpc1tvK2VdPXNbbyVsXX1yZXR1cm4gdGhpc307dmFyIE89L1teKy8wLTlBLVphLXotX10vZztmdW5jdGlvbiB6KHQpe3JldHVybiB0PDE2PyIwIit0LnRvU3RyaW5nKDE2KTp0LnRvU3RyaW5nKDE2KX1mdW5jdGlvbiBEKHQsZSl7dmFyIHI7ZT1lfHwxLzA7Zm9yKHZhciBuPXQubGVuZ3RoLGk9bnVsbCxhPVtdLG89MDtvPG47KytvKXtpZigocj10LmNoYXJDb2RlQXQobykpPjU1Mjk1JiZyPDU3MzQ0KXtpZighaSl7aWYocj41NjMxOSl7KGUtPTMpPi0xJiZhLnB1c2goMjM5LDE5MSwxODkpO2NvbnRpbnVlfWlmKG8rMT09PW4peyhlLT0zKT4tMSYmYS5wdXNoKDIzOSwxOTEsMTg5KTtjb250aW51ZX1pPXI7Y29udGludWV9aWYocjw1NjMyMCl7KGUtPTMpPi0xJiZhLnB1c2goMjM5LDE5MSwxODkpLGk9cjtjb250aW51ZX1yPTY1NTM2KyhpLTU1Mjk2PDwxMHxyLTU2MzIwKX1lbHNlIGkmJihlLT0zKT4tMSYmYS5wdXNoKDIzOSwxOTEsMTg5KTtpZihpPW51bGwscjwxMjgpe2lmKChlLT0xKTwwKWJyZWFrO2EucHVzaChyKX1lbHNlIGlmKHI8MjA0OCl7aWYoKGUtPTIpPDApYnJlYWs7YS5wdXNoKHI+PjZ8MTkyLDYzJnJ8MTI4KX1lbHNlIGlmKHI8NjU1MzYpe2lmKChlLT0zKTwwKWJyZWFrO2EucHVzaChyPj4xMnwyMjQscj4+NiY2M3wxMjgsNjMmcnwxMjgpfWVsc2V7aWYoIShyPDExMTQxMTIpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBjb2RlIHBvaW50Iik7aWYoKGUtPTQpPDApYnJlYWs7YS5wdXNoKHI+PjE4fDI0MCxyPj4xMiY2M3wxMjgscj4+NiY2M3wxMjgsNjMmcnwxMjgpfX1yZXR1cm4gYX1mdW5jdGlvbiBSKHQpe3JldHVybiBlLnRvQnl0ZUFycmF5KGZ1bmN0aW9uKHQpe2lmKCh0PSh0PXQuc3BsaXQoIj0iKVswXSkudHJpbSgpLnJlcGxhY2UoTywiIikpLmxlbmd0aDwyKXJldHVybiIiO2Zvcig7dC5sZW5ndGglNCE9MDspdCs9Ij0iO3JldHVybiB0fSh0KSl9ZnVuY3Rpb24gRih0LGUscixuKXtmb3IodmFyIGk9MDtpPG4mJiEoaStyPj1lLmxlbmd0aHx8aT49dC5sZW5ndGgpOysraSllW2krcl09dFtpXTtyZXR1cm4gaX1mdW5jdGlvbiBCKHQsZSl7cmV0dXJuIHQgaW5zdGFuY2VvZiBlfHxudWxsIT10JiZudWxsIT10LmNvbnN0cnVjdG9yJiZudWxsIT10LmNvbnN0cnVjdG9yLm5hbWUmJnQuY29uc3RydWN0b3IubmFtZT09PWUubmFtZX1mdW5jdGlvbiBOKHQpe3JldHVybiB0IT10fX0pLmNhbGwodGhpcyl9KS5jYWxsKHRoaXMsdCgiYnVmZmVyIikuQnVmZmVyKX0seyJiYXNlNjQtanMiOjc5LGJ1ZmZlcjo4NSxpZWVlNzU0OjIzMH1dLDg2OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZTxyP3Q8ZT9lOnQ+cj9yOnQ6dDxyP3I6dD5lP2U6dH19LHt9XSw4NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJjbGFtcCIpO2Z1bmN0aW9uIGkodCxlKXtudWxsPT1lJiYoZT0hMCk7dmFyIHI9dFswXSxpPXRbMV0sYT10WzJdLG89dFszXTtyZXR1cm4gbnVsbD09byYmKG89ZT8xOjI1NSksZSYmKHIqPTI1NSxpKj0yNTUsYSo9MjU1LG8qPTI1NSksMTY3NzcyMTYqKHI9MjU1Jm4ociwwLDI1NSkpKygoaT0yNTUmbihpLDAsMjU1KSk8PDE2KSsoKGE9MjU1Jm4oYSwwLDI1NSkpPDw4KSsobz0yNTUmbihvLDAsMjU1KSl9ZS5leHBvcnRzPWksZS5leHBvcnRzLnRvPWksZS5leHBvcnRzLmZyb209ZnVuY3Rpb24odCxlKXt2YXIgcj0odD0rdCk+Pj4yNCxuPSgxNjcxMTY4MCZ0KT4+PjE2LGk9KDY1MjgwJnQpPj4+OCxhPTI1NSZ0O3JldHVybiExPT09ZT9bcixuLGksYV06W3IvMjU1LG4vMjU1LGkvMjU1LGEvMjU1XX19LHtjbGFtcDo4Nn1dLDg4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YWxpY2VibHVlOlsyNDAsMjQ4LDI1NV0sYW50aXF1ZXdoaXRlOlsyNTAsMjM1LDIxNV0sYXF1YTpbMCwyNTUsMjU1XSxhcXVhbWFyaW5lOlsxMjcsMjU1LDIxMl0sYXp1cmU6WzI0MCwyNTUsMjU1XSxiZWlnZTpbMjQ1LDI0NSwyMjBdLGJpc3F1ZTpbMjU1LDIyOCwxOTZdLGJsYWNrOlswLDAsMF0sYmxhbmNoZWRhbG1vbmQ6WzI1NSwyMzUsMjA1XSxibHVlOlswLDAsMjU1XSxibHVldmlvbGV0OlsxMzgsNDMsMjI2XSxicm93bjpbMTY1LDQyLDQyXSxidXJseXdvb2Q6WzIyMiwxODQsMTM1XSxjYWRldGJsdWU6Wzk1LDE1OCwxNjBdLGNoYXJ0cmV1c2U6WzEyNywyNTUsMF0sY2hvY29sYXRlOlsyMTAsMTA1LDMwXSxjb3JhbDpbMjU1LDEyNyw4MF0sY29ybmZsb3dlcmJsdWU6WzEwMCwxNDksMjM3XSxjb3Juc2lsazpbMjU1LDI0OCwyMjBdLGNyaW1zb246WzIyMCwyMCw2MF0sY3lhbjpbMCwyNTUsMjU1XSxkYXJrYmx1ZTpbMCwwLDEzOV0sZGFya2N5YW46WzAsMTM5LDEzOV0sZGFya2dvbGRlbnJvZDpbMTg0LDEzNCwxMV0sZGFya2dyYXk6WzE2OSwxNjksMTY5XSxkYXJrZ3JlZW46WzAsMTAwLDBdLGRhcmtncmV5OlsxNjksMTY5LDE2OV0sZGFya2toYWtpOlsxODksMTgzLDEwN10sZGFya21hZ2VudGE6WzEzOSwwLDEzOV0sZGFya29saXZlZ3JlZW46Wzg1LDEwNyw0N10sZGFya29yYW5nZTpbMjU1LDE0MCwwXSxkYXJrb3JjaGlkOlsxNTMsNTAsMjA0XSxkYXJrcmVkOlsxMzksMCwwXSxkYXJrc2FsbW9uOlsyMzMsMTUwLDEyMl0sZGFya3NlYWdyZWVuOlsxNDMsMTg4LDE0M10sZGFya3NsYXRlYmx1ZTpbNzIsNjEsMTM5XSxkYXJrc2xhdGVncmF5Ols0Nyw3OSw3OV0sZGFya3NsYXRlZ3JleTpbNDcsNzksNzldLGRhcmt0dXJxdW9pc2U6WzAsMjA2LDIwOV0sZGFya3Zpb2xldDpbMTQ4LDAsMjExXSxkZWVwcGluazpbMjU1LDIwLDE0N10sZGVlcHNreWJsdWU6WzAsMTkxLDI1NV0sZGltZ3JheTpbMTA1LDEwNSwxMDVdLGRpbWdyZXk6WzEwNSwxMDUsMTA1XSxkb2RnZXJibHVlOlszMCwxNDQsMjU1XSxmaXJlYnJpY2s6WzE3OCwzNCwzNF0sZmxvcmFsd2hpdGU6WzI1NSwyNTAsMjQwXSxmb3Jlc3RncmVlbjpbMzQsMTM5LDM0XSxmdWNoc2lhOlsyNTUsMCwyNTVdLGdhaW5zYm9ybzpbMjIwLDIyMCwyMjBdLGdob3N0d2hpdGU6WzI0OCwyNDgsMjU1XSxnb2xkOlsyNTUsMjE1LDBdLGdvbGRlbnJvZDpbMjE4LDE2NSwzMl0sZ3JheTpbMTI4LDEyOCwxMjhdLGdyZWVuOlswLDEyOCwwXSxncmVlbnllbGxvdzpbMTczLDI1NSw0N10sZ3JleTpbMTI4LDEyOCwxMjhdLGhvbmV5ZGV3OlsyNDAsMjU1LDI0MF0saG90cGluazpbMjU1LDEwNSwxODBdLGluZGlhbnJlZDpbMjA1LDkyLDkyXSxpbmRpZ286Wzc1LDAsMTMwXSxpdm9yeTpbMjU1LDI1NSwyNDBdLGtoYWtpOlsyNDAsMjMwLDE0MF0sbGF2ZW5kZXI6WzIzMCwyMzAsMjUwXSxsYXZlbmRlcmJsdXNoOlsyNTUsMjQwLDI0NV0sbGF3bmdyZWVuOlsxMjQsMjUyLDBdLGxlbW9uY2hpZmZvbjpbMjU1LDI1MCwyMDVdLGxpZ2h0Ymx1ZTpbMTczLDIxNiwyMzBdLGxpZ2h0Y29yYWw6WzI0MCwxMjgsMTI4XSxsaWdodGN5YW46WzIyNCwyNTUsMjU1XSxsaWdodGdvbGRlbnJvZHllbGxvdzpbMjUwLDI1MCwyMTBdLGxpZ2h0Z3JheTpbMjExLDIxMSwyMTFdLGxpZ2h0Z3JlZW46WzE0NCwyMzgsMTQ0XSxsaWdodGdyZXk6WzIxMSwyMTEsMjExXSxsaWdodHBpbms6WzI1NSwxODIsMTkzXSxsaWdodHNhbG1vbjpbMjU1LDE2MCwxMjJdLGxpZ2h0c2VhZ3JlZW46WzMyLDE3OCwxNzBdLGxpZ2h0c2t5Ymx1ZTpbMTM1LDIwNiwyNTBdLGxpZ2h0c2xhdGVncmF5OlsxMTksMTM2LDE1M10sbGlnaHRzbGF0ZWdyZXk6WzExOSwxMzYsMTUzXSxsaWdodHN0ZWVsYmx1ZTpbMTc2LDE5NiwyMjJdLGxpZ2h0eWVsbG93OlsyNTUsMjU1LDIyNF0sbGltZTpbMCwyNTUsMF0sbGltZWdyZWVuOls1MCwyMDUsNTBdLGxpbmVuOlsyNTAsMjQwLDIzMF0sbWFnZW50YTpbMjU1LDAsMjU1XSxtYXJvb246WzEyOCwwLDBdLG1lZGl1bWFxdWFtYXJpbmU6WzEwMiwyMDUsMTcwXSxtZWRpdW1ibHVlOlswLDAsMjA1XSxtZWRpdW1vcmNoaWQ6WzE4Niw4NSwyMTFdLG1lZGl1bXB1cnBsZTpbMTQ3LDExMiwyMTldLG1lZGl1bXNlYWdyZWVuOls2MCwxNzksMTEzXSxtZWRpdW1zbGF0ZWJsdWU6WzEyMywxMDQsMjM4XSxtZWRpdW1zcHJpbmdncmVlbjpbMCwyNTAsMTU0XSxtZWRpdW10dXJxdW9pc2U6WzcyLDIwOSwyMDRdLG1lZGl1bXZpb2xldHJlZDpbMTk5LDIxLDEzM10sbWlkbmlnaHRibHVlOlsyNSwyNSwxMTJdLG1pbnRjcmVhbTpbMjQ1LDI1NSwyNTBdLG1pc3R5cm9zZTpbMjU1LDIyOCwyMjVdLG1vY2Nhc2luOlsyNTUsMjI4LDE4MV0sbmF2YWpvd2hpdGU6WzI1NSwyMjIsMTczXSxuYXZ5OlswLDAsMTI4XSxvbGRsYWNlOlsyNTMsMjQ1LDIzMF0sb2xpdmU6WzEyOCwxMjgsMF0sb2xpdmVkcmFiOlsxMDcsMTQyLDM1XSxvcmFuZ2U6WzI1NSwxNjUsMF0sb3JhbmdlcmVkOlsyNTUsNjksMF0sb3JjaGlkOlsyMTgsMTEyLDIxNF0scGFsZWdvbGRlbnJvZDpbMjM4LDIzMiwxNzBdLHBhbGVncmVlbjpbMTUyLDI1MSwxNTJdLHBhbGV0dXJxdW9pc2U6WzE3NSwyMzgsMjM4XSxwYWxldmlvbGV0cmVkOlsyMTksMTEyLDE0N10scGFwYXlhd2hpcDpbMjU1LDIzOSwyMTNdLHBlYWNocHVmZjpbMjU1LDIxOCwxODVdLHBlcnU6WzIwNSwxMzMsNjNdLHBpbms6WzI1NSwxOTIsMjAzXSxwbHVtOlsyMjEsMTYwLDIyMV0scG93ZGVyYmx1ZTpbMTc2LDIyNCwyMzBdLHB1cnBsZTpbMTI4LDAsMTI4XSxyZWJlY2NhcHVycGxlOlsxMDIsNTEsMTUzXSxyZWQ6WzI1NSwwLDBdLHJvc3licm93bjpbMTg4LDE0MywxNDNdLHJveWFsYmx1ZTpbNjUsMTA1LDIyNV0sc2FkZGxlYnJvd246WzEzOSw2OSwxOV0sc2FsbW9uOlsyNTAsMTI4LDExNF0sc2FuZHlicm93bjpbMjQ0LDE2NCw5Nl0sc2VhZ3JlZW46WzQ2LDEzOSw4N10sc2Vhc2hlbGw6WzI1NSwyNDUsMjM4XSxzaWVubmE6WzE2MCw4Miw0NV0sc2lsdmVyOlsxOTIsMTkyLDE5Ml0sc2t5Ymx1ZTpbMTM1LDIwNiwyMzVdLHNsYXRlYmx1ZTpbMTA2LDkwLDIwNV0sc2xhdGVncmF5OlsxMTIsMTI4LDE0NF0sc2xhdGVncmV5OlsxMTIsMTI4LDE0NF0sc25vdzpbMjU1LDI1MCwyNTBdLHNwcmluZ2dyZWVuOlswLDI1NSwxMjddLHN0ZWVsYmx1ZTpbNzAsMTMwLDE4MF0sdGFuOlsyMTAsMTgwLDE0MF0sdGVhbDpbMCwxMjgsMTI4XSx0aGlzdGxlOlsyMTYsMTkxLDIxNl0sdG9tYXRvOlsyNTUsOTksNzFdLHR1cnF1b2lzZTpbNjQsMjI0LDIwOF0sdmlvbGV0OlsyMzgsMTMwLDIzOF0sd2hlYXQ6WzI0NSwyMjIsMTc5XSx3aGl0ZTpbMjU1LDI1NSwyNTVdLHdoaXRlc21va2U6WzI0NSwyNDUsMjQ1XSx5ZWxsb3c6WzI1NSwyNTUsMF0seWVsbG93Z3JlZW46WzE1NCwyMDUsNTBdfX0se31dLDg5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImNvbG9yLXJnYmEiKSxpPXQoImNsYW1wIiksYT10KCJkdHlwZSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpeyJmbG9hdCIhPT1lJiZlfHwoZT0iYXJyYXkiKSwidWludCI9PT1lJiYoZT0idWludDgiKSwidWludF9jbGFtcGVkIj09PWUmJihlPSJ1aW50OF9jbGFtcGVkIik7dmFyIHI9bmV3KGEoZSkpKDQpLG89InVpbnQ4IiE9PWUmJiJ1aW50OF9jbGFtcGVkIiE9PWU7cmV0dXJuIHQubGVuZ3RoJiYic3RyaW5nIiE9dHlwZW9mIHR8fCgodD1uKHQpKVswXS89MjU1LHRbMV0vPTI1NSx0WzJdLz0yNTUpLGZ1bmN0aW9uKHQpe3JldHVybiB0IGluc3RhbmNlb2YgVWludDhBcnJheXx8dCBpbnN0YW5jZW9mIFVpbnQ4Q2xhbXBlZEFycmF5fHwhIShBcnJheS5pc0FycmF5KHQpJiYodFswXT4xfHwwPT09dFswXSkmJih0WzFdPjF8fDA9PT10WzFdKSYmKHRbMl0+MXx8MD09PXRbMl0pJiYoIXRbM118fHRbM10+MSkpfSh0KT8oclswXT10WzBdLHJbMV09dFsxXSxyWzJdPXRbMl0sclszXT1udWxsIT10WzNdP3RbM106MjU1LG8mJihyWzBdLz0yNTUsclsxXS89MjU1LHJbMl0vPTI1NSxyWzNdLz0yNTUpLHIpOihvPyhyWzBdPXRbMF0sclsxXT10WzFdLHJbMl09dFsyXSxyWzNdPW51bGwhPXRbM10/dFszXToxKTooclswXT1pKE1hdGguZmxvb3IoMjU1KnRbMF0pLDAsMjU1KSxyWzFdPWkoTWF0aC5mbG9vcigyNTUqdFsxXSksMCwyNTUpLHJbMl09aShNYXRoLmZsb29yKDI1NSp0WzJdKSwwLDI1NSksclszXT1udWxsPT10WzNdPzI1NTppKE1hdGguZmxvb3IoMjU1KnRbM10pLDAsMjU1KSkscil9fSx7Y2xhbXA6ODYsImNvbG9yLXJnYmEiOjkxLGR0eXBlOjEyN31dLDkwOltmdW5jdGlvbih0LGUscil7KGZ1bmN0aW9uKHIpeyhmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJjb2xvci1uYW1lIiksaT10KCJpcy1wbGFpbi1vYmoiKSxhPXQoImRlZmluZWQiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGUscyxsPVtdLGM9MTtpZigic3RyaW5nIj09dHlwZW9mIHQpaWYoblt0XSlsPW5bdF0uc2xpY2UoKSxzPSJyZ2IiO2Vsc2UgaWYoInRyYW5zcGFyZW50Ij09PXQpYz0wLHM9InJnYiIsbD1bMCwwLDBdO2Vsc2UgaWYoL14jW0EtRmEtZjAtOV0rJC8udGVzdCh0KSl7dmFyIHU9KHA9dC5zbGljZSgxKSkubGVuZ3RoO2M9MSx1PD00PyhsPVtwYXJzZUludChwWzBdK3BbMF0sMTYpLHBhcnNlSW50KHBbMV0rcFsxXSwxNikscGFyc2VJbnQocFsyXStwWzJdLDE2KV0sND09PXUmJihjPXBhcnNlSW50KHBbM10rcFszXSwxNikvMjU1KSk6KGw9W3BhcnNlSW50KHBbMF0rcFsxXSwxNikscGFyc2VJbnQocFsyXStwWzNdLDE2KSxwYXJzZUludChwWzRdK3BbNV0sMTYpXSw4PT09dSYmKGM9cGFyc2VJbnQocFs2XStwWzddLDE2KS8yNTUpKSxsWzBdfHwobFswXT0wKSxsWzFdfHwobFsxXT0wKSxsWzJdfHwobFsyXT0wKSxzPSJyZ2IifWVsc2UgaWYoZT0vXigoPzpyZ2J8aHNbbHZiXXxod2J8Y215az98eHlbenldfGdyYXl8bGFifGxjaHU/dj98W2x5XXV2fGxtcylhPylccypcKChbXlwpXSopXCkvLmV4ZWModCkpe3ZhciBmPWVbMV0saD0icmdiIj09PWYscD1mLnJlcGxhY2UoL2EkLywiIik7cz1wO3U9ImNteWsiPT09cD80OiJncmF5Ij09PXA/MTozO2w9ZVsyXS50cmltKCkuc3BsaXQoL1xzKixccyovKS5tYXAoKGZ1bmN0aW9uKHQsZSl7aWYoLyUkLy50ZXN0KHQpKXJldHVybiBlPT09dT9wYXJzZUZsb2F0KHQpLzEwMDoicmdiIj09PXA/MjU1KnBhcnNlRmxvYXQodCkvMTAwOnBhcnNlRmxvYXQodCk7aWYoImgiPT09cFtlXSl7aWYoL2RlZyQvLnRlc3QodCkpcmV0dXJuIHBhcnNlRmxvYXQodCk7aWYodm9pZCAwIT09b1t0XSlyZXR1cm4gb1t0XX1yZXR1cm4gcGFyc2VGbG9hdCh0KX0pKSxmPT09cCYmbC5wdXNoKDEpLGM9aHx8dm9pZCAwPT09bFt1XT8xOmxbdV0sbD1sLnNsaWNlKDAsdSl9ZWxzZSB0Lmxlbmd0aD4xMCYmL1swLTldKD86XHN8XC8pLy50ZXN0KHQpJiYobD10Lm1hdGNoKC8oWzAtOV0rKS9nKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBwYXJzZUZsb2F0KHQpfSkpLHM9dC5tYXRjaCgvKFthLXpdKS9naSkuam9pbigiIikudG9Mb3dlckNhc2UoKSk7ZWxzZSBpZihpc05hTih0KSlpZihpKHQpKXt2YXIgZD1hKHQucix0LnJlZCx0LlIsbnVsbCk7bnVsbCE9PWQ/KHM9InJnYiIsbD1bZCxhKHQuZyx0LmdyZWVuLHQuRyksYSh0LmIsdC5ibHVlLHQuQildKToocz0iaHNsIixsPVthKHQuaCx0Lmh1ZSx0LkgpLGEodC5zLHQuc2F0dXJhdGlvbix0LlMpLGEodC5sLHQubGlnaHRuZXNzLHQuTCx0LmIsdC5icmlnaHRuZXNzKV0pLGM9YSh0LmEsdC5hbHBoYSx0Lm9wYWNpdHksMSksbnVsbCE9dC5vcGFjaXR5JiYoYy89MTAwKX1lbHNlKEFycmF5LmlzQXJyYXkodCl8fHIuQXJyYXlCdWZmZXImJkFycmF5QnVmZmVyLmlzVmlldyYmQXJyYXlCdWZmZXIuaXNWaWV3KHQpKSYmKGw9W3RbMF0sdFsxXSx0WzJdXSxzPSJyZ2IiLGM9ND09PXQubGVuZ3RoP3RbM106MSk7ZWxzZSBzPSJyZ2IiLGw9W3Q+Pj4xNiwoNjUyODAmdCk+Pj44LDI1NSZ0XTtyZXR1cm57c3BhY2U6cyx2YWx1ZXM6bCxhbHBoYTpjfX07dmFyIG89e3JlZDowLG9yYW5nZTo2MCx5ZWxsb3c6MTIwLGdyZWVuOjE4MCxibHVlOjI0MCxwdXJwbGU6MzAwfX0pLmNhbGwodGhpcyl9KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSl9LHsiY29sb3ItbmFtZSI6ODgsZGVmaW5lZDoxMjQsImlzLXBsYWluLW9iaiI6MjM2fV0sOTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiY29sb3ItcGFyc2UiKSxpPXQoImNvbG9yLXNwYWNlL2hzbCIpLGE9dCgiY2xhbXAiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGUscj1uKHQpO3JldHVybiByLnNwYWNlPygoZT1BcnJheSgzKSlbMF09YShyLnZhbHVlc1swXSwwLDI1NSksZVsxXT1hKHIudmFsdWVzWzFdLDAsMjU1KSxlWzJdPWEoci52YWx1ZXNbMl0sMCwyNTUpLCJoIj09PXIuc3BhY2VbMF0mJihlPWkucmdiKGUpKSxlLnB1c2goYShyLmFscGhhLDAsMSkpLGUpOltdfX0se2NsYW1wOjg2LCJjb2xvci1wYXJzZSI6OTAsImNvbG9yLXNwYWNlL2hzbCI6OTJ9XSw5MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL3JnYiIpO2UuZXhwb3J0cz17bmFtZToiaHNsIixtaW46WzAsMCwwXSxtYXg6WzM2MCwxMDAsMTAwXSxjaGFubmVsOlsiaHVlIiwic2F0dXJhdGlvbiIsImxpZ2h0bmVzcyJdLGFsaWFzOlsiSFNMIl0scmdiOmZ1bmN0aW9uKHQpe3ZhciBlLHIsbixpLGEsbz10WzBdLzM2MCxzPXRbMV0vMTAwLGw9dFsyXS8xMDA7aWYoMD09PXMpcmV0dXJuW2E9MjU1KmwsYSxhXTtlPTIqbC0ocj1sPC41P2wqKDErcyk6bCtzLWwqcyksaT1bMCwwLDBdO2Zvcih2YXIgYz0wO2M8MztjKyspKG49bysxLzMqLShjLTEpKTwwP24rKzpuPjEmJm4tLSxhPTYqbjwxP2UrNiooci1lKSpuOjIqbjwxP3I6MypuPDI/ZSsoci1lKSooMi8zLW4pKjY6ZSxpW2NdPTI1NSphO3JldHVybiBpfX0sbi5oc2w9ZnVuY3Rpb24odCl7dmFyIGUscixuPXRbMF0vMjU1LGk9dFsxXS8yNTUsYT10WzJdLzI1NSxvPU1hdGgubWluKG4saSxhKSxzPU1hdGgubWF4KG4saSxhKSxsPXMtbztyZXR1cm4gcz09PW8/ZT0wOm49PT1zP2U9KGktYSkvbDppPT09cz9lPTIrKGEtbikvbDphPT09cyYmKGU9NCsobi1pKS9sKSwoZT1NYXRoLm1pbig2MCplLDM2MCkpPDAmJihlKz0zNjApLHI9KG8rcykvMixbZSwxMDAqKHM9PT1vPzA6cjw9LjU/bC8ocytvKTpsLygyLXMtbykpLDEwMCpyXX19LHsiLi9yZ2IiOjkzfV0sOTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtuYW1lOiJyZ2IiLG1pbjpbMCwwLDBdLG1heDpbMjU1LDI1NSwyNTVdLGNoYW5uZWw6WyJyZWQiLCJncmVlbiIsImJsdWUiXSxhbGlhczpbIlJHQiJdfX0se31dLDk0OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPXtBRkc6ImFmZ2hhbiIsQUxBOiJcXGJcXHdsYW5kIixBTEI6ImFsYmFuaWEiLERaQToiYWxnZXJpYSIsQVNNOiJeKD89LiphbWVyaWMpLipzYW1vYSIsQU5EOiJhbmRvcnJhIixBR086ImFuZ29sYSIsQUlBOiJhbmd1aWxsP2EiLEFUQToiYW50YXJjdGljYSIsQVRHOiJhbnRpZ3VhIixBUkc6ImFyZ2VudGluIixBUk06ImFybWVuaWEiLEFCVzoiXig/IS4qYm9uYWlyZSkuKlxcYmFydWJhIixBVVM6ImF1c3RyYWxpYSIsQVVUOiJeKD8hLipodW5nYXJ5KS4qYXVzdHJpYXxcXGJhdXN0cmkuKlxcYmVtcCIsQVpFOiJhemVyYmFpamFuIixCSFM6ImJhaGFtYXMiLEJIUjoiYmFocmFpbiIsQkdEOiJiYW5nbGFkZXNofF4oPz0uKmVhc3QpLipwYWtpP3N0YW4iLEJSQjoiYmFyYmFkb3MiLEJMUjoiYmVsYXJ1c3xieWVsbyIsQkVMOiJeKD8hLipsdXhlbSkuKmJlbGdpdW0iLEJMWjoiYmVsaXplfF4oPz0uKmJyaXRpc2gpLipob25kdXJhcyIsQkVOOiJiZW5pbnxkYWhvbWUiLEJNVToiYmVybXVkYSIsQlROOiJiaHV0YW4iLEJPTDoiYm9saXZpYSIsQkVTOiJeKD89Lipib25haXJlKS4qZXVzdGF0aXVzfF4oPz0uKmNhcmliKS4qbmV0aGVybGFuZHN8XFxiYmVzLj9pc2xhbmRzIixCSUg6ImhlcnplZ292aW5hfGJvc25pYSIsQldBOiJib3Rzd2FuYXxiZWNodWFuYSIsQlZUOiJib3V2ZXQiLEJSQToiYnJhemlsIixJT1Q6ImJyaXRpc2guP2luZGlhbi4/b2NlYW4iLEJSTjoiYnJ1bmVpIixCR1I6ImJ1bGdhcmlhIixCRkE6ImJ1cmtpbmF8XFxiZmFzb3x1cHBlci4/dm9sdGEiLEJESToiYnVydW5kaSIsQ1BWOiJ2ZXJkZSIsS0hNOiJjYW1ib2RpYXxrYW1wdWNoZWF8a2htZXIiLENNUjoiY2FtZXJvb24iLENBTjoiY2FuYWRhIixDWU06ImNheW1hbiIsQ0FGOiJcXGJjZW50cmFsLmFmcmljYW4ucmVwdWJsaWMiLFRDRDoiXFxiY2hhZCIsQ0hMOiJcXGJjaGlsZSIsQ0hOOiJeKD8hLipcXGJtYWMpKD8hLipcXGJob25nKSg/IS4qXFxidGFpKSg/IS4qXFxicmVwKS4qY2hpbmF8Xig/PS4qcGVvKSg/PS4qcmVwKS4qY2hpbmEiLENYUjoiY2hyaXN0bWFzIixDQ0s6IlxcYmNvY29zfGtlZWxpbmciLENPTDoiY29sb21iaWEiLENPTToiY29tb3JvIixDT0c6Il4oPyEuKlxcYmRlbSkoPyEuKlxcYmRbXFwuXT9yKSg/IS4qa2luc2hhc2EpKD8hLip6YWlyZSkoPyEuKmJlbGcpKD8hLipsLm9wb2xkdmlsbGUpKD8hLipmcmVlKS4qXFxiY29uZ28iLENPSzoiXFxiY29vayIsQ1JJOiJjb3N0YS4/cmljYSIsQ0lWOiJpdm9pcmV8aXZvcnkiLEhSVjoiY3JvYXRpYSIsQ1VCOiJcXGJjdWJhIixDVVc6Il4oPyEuKmJvbmFpcmUpLipcXGJjdXJhKGN8XHhlNylhbyIsQ1lQOiJjeXBydXMiLENTSzoiY3plY2hvc2xvdmFraWEiLENaRToiXig/PS4qcmVwKS4qY3plY2h8Y3plY2hpYXxib2hlbWlhIixDT0Q6IlxcYmRlbS4qY29uZ298Y29uZ28uKlxcYmRlbXxjb25nby4qXFxiZFtcXC5dP3J8XFxiZFtcXC5dP3IuKmNvbmdvfGJlbGdpYW4uP2NvbmdvfGNvbmdvLj9mcmVlLj9zdGF0ZXxraW5zaGFzYXx6YWlyZXxsLm9wb2xkdmlsbGV8ZHJjfGRyb2N8cmRjIixETks6ImRlbm1hcmsiLERKSToiZGppYm91dGkiLERNQToiZG9taW5pY2EoPyFuKSIsRE9NOiJkb21pbmljYW4ucmVwIixFQ1U6ImVjdWFkb3IiLEVHWToiZWd5cHQiLFNMVjoiZWwuP3NhbHZhZG9yIixHTlE6Imd1aW5lLiplcXxlcS4qZ3VpbmV8Xig/PS4qc3BhbikuKmd1aW5lYSIsRVJJOiJlcml0cmVhIixFU1Q6ImVzdG9uaWEiLEVUSDoiZXRoaW9waWF8YWJ5c3NpbmlhIixGTEs6ImZhbGtsYW5kfG1hbHZpbmFzIixGUk86ImZhcm9lfGZhZXJvZSIsRkpJOiJmaWppIixGSU46ImZpbmxhbmQiLEZSQToiXig/IS4qXFxiZGVwKSg/IS4qbWFydGluaXF1ZSkuKmZyYW5jZXxmcmVuY2guP3JlcHVibGljfFxcYmdhdWwiLEdVRjoiXig/PS4qZnJlbmNoKS4qZ3VpYW5hIixQWUY6ImZyZW5jaC4/cG9seW5lc2lhfHRhaGl0aSIsQVRGOiJmcmVuY2guP3NvdXRoZXJuIixHQUI6ImdhYm9uIixHTUI6ImdhbWJpYSIsR0VPOiJeKD8hLipzb3V0aCkuKmdlb3JnaWEiLEREUjoiZ2VybWFuLj9kZW1vY3JhdGljLj9yZXB1YmxpY3xkZW1vY3JhdGljLj9yZXB1YmxpYy4qZ2VybWFueXxlYXN0Lmdlcm1hbnkiLERFVToiXig/IS4qZWFzdCkuKmdlcm1hbnl8Xig/PS4qXFxiZmVkLipcXGJyZXApLipnZXJtYW4iLEdIQToiZ2hhbmF8Z29sZC4/Y29hc3QiLEdJQjoiZ2licmFsdGFyIixHUkM6ImdyZWVjZXxoZWxsZW5pY3xoZWxsYXMiLEdSTDoiZ3JlZW5sYW5kIixHUkQ6ImdyZW5hZGEiLEdMUDoiZ3VhZGVsb3VwZSIsR1VNOiJcXGJndWFtIixHVE06Imd1YXRlbWFsYSIsR0dZOiJndWVybnNleSIsR0lOOiJeKD8hLiplcSkoPyEuKnNwYW4pKD8hLipiaXNzYXUpKD8hLipwb3J0dSkoPyEuKm5ldykuKmd1aW5lYSIsR05COiJiaXNzYXV8Xig/PS4qcG9ydHUpLipndWluZWEiLEdVWToiZ3V5YW5hfGJyaXRpc2guP2d1aWFuYSIsSFRJOiJoYWl0aSIsSE1EOiJoZWFyZC4qbWNkb25hbGQiLFZBVDoiaG9seS4/c2VlfHZhdGljYW58cGFwYWwuP3N0IixITkQ6Il4oPyEuKmJyaXQpLipob25kdXJhcyIsSEtHOiJob25nLj9rb25nIixIVU46Il4oPyEuKmF1c3RyKS4qaHVuZ2FyeSIsSVNMOiJpY2VsYW5kIixJTkQ6ImluZGlhKD8hLipvY2VhKSIsSUROOiJpbmRvbmVzaWEiLElSTjoiXFxiaXJhbnxwZXJzaWEiLElSUToiXFxiaXJhcXxtZXNvcG90YW1pYSIsSVJMOiIoXmlyZWxhbmQpfChecmVwdWJsaWMuKmlyZWxhbmQpIixJTU46Il4oPz0uKmlzbGUpLipcXGJtYW4iLElTUjoiaXNyYWVsIixJVEE6Iml0YWx5IixKQU06ImphbWFpY2EiLEpQTjoiamFwYW4iLEpFWToiamVyc2V5IixKT1I6ImpvcmRhbiIsS0FaOiJrYXphayIsS0VOOiJrZW55YXxicml0aXNoLj9lYXN0Lj9hZnJpY2F8ZWFzdC4/YWZyaWNhLj9wcm90IixLSVI6ImtpcmliYXRpIixQUks6Il4oPz0uKmRlbW9jcmF0fHBlb3BsZXxub3J0aHxkLipwLioucikuKlxcYmtvcmVhfGRwcmt8a29yZWEuKihkLipwLipyKSIsS1dUOiJrdXdhaXQiLEtHWjoia3lyZ3l6fGtpcmdoaXoiLExBTzoiXFxibGFvcz9cXGIiLExWQToibGF0dmlhIixMQk46ImxlYmFub24iLExTTzoibGVzb3Rob3xiYXN1dG8iLExCUjoibGliZXJpYSIsTEJZOiJsaWJ5YSIsTElFOiJsaWVjaHRlbnN0ZWluIixMVFU6ImxpdGh1YW5pYSIsTFVYOiJeKD8hLipiZWxnKS4qbHV4ZW0iLE1BQzoibWFjYShvfHUpIixNREc6Im1hZGFnYXNjYXJ8bWFsYWdhc3kiLE1XSToibWFsYXdpfG55YXNhIixNWVM6Im1hbGF5c2lhIixNRFY6Im1hbGRpdmUiLE1MSToiXFxibWFsaVxcYiIsTUxUOiJcXGJtYWx0YSIsTUhMOiJtYXJzaGFsbCIsTVRROiJtYXJ0aW5pcXVlIixNUlQ6Im1hdXJpdGFuaWEiLE1VUzoibWF1cml0aXVzIixNWVQ6IlxcYm1heW90dGUiLE1FWDoiXFxibWV4aWMiLEZTTToiZmVkLiptaWNyb25lc2lhfG1pY3JvbmVzaWEuKmZlZCIsTUNPOiJtb25hY28iLE1ORzoibW9uZ29saWEiLE1ORToiXig/IS4qc2VyYmlhKS4qbW9udGVuZWdybyIsTVNSOiJtb250c2VycmF0IixNQVI6Im1vcm9jY298XFxibWFyb2MiLE1PWjoibW96YW1iaXF1ZSIsTU1SOiJteWFubWFyfGJ1cm1hIixOQU06Im5hbWliaWEiLE5SVToibmF1cnUiLE5QTDoibmVwYWwiLE5MRDoiXig/IS4qXFxiYW50KSg/IS4qXFxiY2FyaWIpLipuZXRoZXJsYW5kcyIsQU5UOiJeKD89LipcXGJhbnQpLioobmV0aGVyfGR1dGNoKSIsTkNMOiJuZXcuP2NhbGVkb25pYSIsTlpMOiJuZXcuP3plYWxhbmQiLE5JQzoibmljYXJhZ3VhIixORVI6IlxcYm5pZ2VyKD8haWEpIixOR0E6Im5pZ2VyaWEiLE5JVToibml1ZSIsTkZLOiJub3Jmb2xrIixNTlA6Im1hcmlhbmEiLE5PUjoibm9yd2F5IixPTU46IlxcYm9tYW58dHJ1Y2lhbCIsUEFLOiJeKD8hLiplYXN0KS4qcGFraT9zdGFuIixQTFc6InBhbGF1IixQU0U6InBhbGVzdGlufFxcYmdhemF8d2VzdC4/YmFuayIsUEFOOiJwYW5hbWEiLFBORzoicGFwdWF8bmV3Lj9ndWluZWEiLFBSWToicGFyYWd1YXkiLFBFUjoicGVydSIsUEhMOiJwaGlsaXBwaW5lcyIsUENOOiJwaXRjYWlybiIsUE9MOiJwb2xhbmQiLFBSVDoicG9ydHVnYWwiLFBSSToicHVlcnRvLj9yaWNvIixRQVQ6InFhdGFyIixLT1I6Il4oPyEuKmQuKnAuKnIpKD8hLipkZW1vY3JhdCkoPyEuKnBlb3BsZSkoPyEuKm5vcnRoKS4qXFxia29yZWEoPyEuKmQuKnAuKnIpIixNREE6Im1vbGRvdnxiKGF8ZSlzc2FyYWJpYSIsUkVVOiJyKGV8XHhlOSl1bmlvbiIsUk9VOiJyKG98dXxvdSltYW5pYSIsUlVTOiJcXGJydXNzaWF8c292aWV0Lj91bmlvbnx1XFwuP3NcXC4/c1xcLj9yfHNvY2lhbGlzdC4/cmVwdWJsaWNzIixSV0E6InJ3YW5kYSIsQkxNOiJiYXJ0aChlfFx4ZTkpbGVteSIsU0hOOiJoZWxlbmEiLEtOQToia2l0dHN8XFxibmV2aXMiLExDQToiXFxibHVjaWEiLE1BRjoiXig/PS4qY29sbGVjdGl2aXR5KS4qbWFydGlufF4oPz0uKmZyYW5jZSkuKm1hcnRpbig/IWlxdWUpfF4oPz0uKmZyZW5jaCkuKm1hcnRpbig/IWlxdWUpIixTUE06Im1pcXVlbG9uIixWQ1Q6InZpbmNlbnQiLFdTTToiXig/IS4qYW1lcikuKnNhbW9hIixTTVI6InNhbi4/bWFyaW5vIixTVFA6IlxcYnMoYXxceGUzKW8uP3RvbShlfFx4ZTkpIixTQVU6IlxcYnNhXFx3Ki4/YXJhYmlhIixTRU46InNlbmVnYWwiLFNSQjoiXig/IS4qbW9udGUpLipzZXJiaWEiLFNZQzoic2V5Y2hlbGwiLFNMRToic2llcnJhIixTR1A6InNpbmdhcG9yZSIsU1hNOiJeKD8hLiptYXJ0aW4pKD8hLipzYWJhKS4qbWFhcnRlbiIsU1ZLOiJeKD8hLipjemUpLipzbG92YWsiLFNWTjoic2xvdmVuaWEiLFNMQjoic29sb21vbiIsU09NOiJzb21hbGkiLFpBRjoic291dGguYWZyaWNhfHNcXFxcLi4/YWZyaWNhIixTR1M6InNvdXRoLj9nZW9yZ2lhfHNhbmR3aWNoIixTU0Q6IlxcYnNcXHcqLj9zdWRhbiIsRVNQOiJzcGFpbiIsTEtBOiJzcmkuP2xhbmthfGNleWxvbiIsU0ROOiJeKD8hLipcXGJzKD8hdSkpLipzdWRhbiIsU1VSOiJzdXJpbmFtfGR1dGNoLj9ndWlhbmEiLFNKTToic3ZhbGJhcmQiLFNXWjoic3dhemlsYW5kIixTV0U6InN3ZWRlbiIsQ0hFOiJzd2l0enxzd2lzcyIsU1lSOiJzeXJpYSIsVFdOOiJ0YWl3YW58dGFpcGVpfGZvcm1vc2F8Xig/IS4qcGVvKSg/PS4qcmVwKS4qY2hpbmEiLFRKSzoidGFqaWsiLFRIQToidGhhaWxhbmR8XFxic2lhbSIsTUtEOiJtYWNlZG9uaWF8Znlyb20iLFRMUzoiXig/PS4qbGVzdGUpLip0aW1vcnxeKD89LiplYXN0KS4qdGltb3IiLFRHTzoidG9nbyIsVEtMOiJ0b2tlbGF1IixUT046InRvbmdhIixUVE86InRyaW5pZGFkfHRvYmFnbyIsVFVOOiJ0dW5pc2lhIixUVVI6InR1cmtleSIsVEtNOiJ0dXJrbWVuIixUQ0E6InR1cmtzIixUVVY6InR1dmFsdSIsVUdBOiJ1Z2FuZGEiLFVLUjoidWtyYWluIixBUkU6ImVtaXJhdGVzfF51XFwuP2FcXC4/ZVxcLj8kfHVuaXRlZC4/YXJhYi4/ZW0iLEdCUjoidW5pdGVkLj9raW5nZG9tfGJyaXRhaW58XnVcXC4/a1xcLj8kIixUWkE6InRhbnphbmlhIixVU0E6InVuaXRlZC4/c3RhdGVzXFxiKD8hLippc2xhbmRzKXxcXGJ1XFwuP3NcXC4/YVxcLj9cXGJ8Xlxccyp1XFwuP3NcXC4/XFxiKD8hLippc2xhbmRzKSIsVU1JOiJtaW5vci4/b3V0bHlpbmcuP2lzIixVUlk6InVydWd1YXkiLFVaQjoidXpiZWsiLFZVVDoidmFudWF0dXxuZXcuP2hlYnJpZGVzIixWRU46InZlbmV6dWVsYSIsVk5NOiJeKD8hLipyZXB1YmxpYykuKnZpZXQuP25hbXxeKD89Lipzb2NpYWxpc3QpLip2aWV0Lj9uYW0iLFZHQjoiXig/PS4qXFxidVxcLj9cXHM/aykuKnZpcmdpbnxeKD89Lipicml0KS4qdmlyZ2lufF4oPz0uKmtpbmdkb20pLip2aXJnaW4iLFZJUjoiXig/PS4qXFxidVxcLj9cXHM/cykuKnZpcmdpbnxeKD89LipzdGF0ZXMpLip2aXJnaW4iLFdMRjoiZnV0dW5hfHdhbGxpcyIsRVNIOiJ3ZXN0ZXJuLnNhaGFyYSIsWUVNOiJeKD8hLiphcmFiKSg/IS4qbm9ydGgpKD8hLipzYW5hKSg/IS4qcGVvKSg/IS4qZGVtKSg/IS4qc291dGgpKD8hLiphZGVuKSg/IS4qXFxicFxcLj9kXFwuP3IpLip5ZW1lbiIsWU1EOiJeKD89LipwZW8pLip5ZW1lbnxeKD8hLipyZXApKD89LipkZW0pLip5ZW1lbnxeKD89Lipzb3V0aCkuKnllbWVufF4oPz0uKmFkZW4pLip5ZW1lbnxeKD89LipcXGJwXFwuP2RcXC4/cikuKnllbWVuIixZVUc6Inl1Z29zbGF2aWEiLFpNQjoiemFtYmlhfG5vcnRoZXJuLj9yaG9kZXNpYSIsRUFaOiJ6YW56aWJhciIsWldFOiJ6aW1iYWJ3ZXxeKD8hLipub3J0aGVybikuKnJob2Rlc2lhIn19LHt9XSw5NTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1bInh4LXNtYWxsIiwieC1zbWFsbCIsInNtYWxsIiwibWVkaXVtIiwibGFyZ2UiLCJ4LWxhcmdlIiwieHgtbGFyZ2UiLCJsYXJnZXIiLCJzbWFsbGVyIl19LHt9XSw5NjpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1bIm5vcm1hbCIsImNvbmRlbnNlZCIsInNlbWktY29uZGVuc2VkIiwiZXh0cmEtY29uZGVuc2VkIiwidWx0cmEtY29uZGVuc2VkIiwiZXhwYW5kZWQiLCJzZW1pLWV4cGFuZGVkIiwiZXh0cmEtZXhwYW5kZWQiLCJ1bHRyYS1leHBhbmRlZCJdfSx7fV0sOTc6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9WyJub3JtYWwiLCJpdGFsaWMiLCJvYmxpcXVlIl19LHt9XSw5ODpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1bIm5vcm1hbCIsImJvbGQiLCJib2xkZXIiLCJsaWdodGVyIiwiMTAwIiwiMjAwIiwiMzAwIiwiNDAwIiwiNTAwIiwiNjAwIiwiNzAwIiwiODAwIiwiOTAwIl19LHt9XSw5OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e3BhcnNlOnQoIi4vcGFyc2UiKSxzdHJpbmdpZnk6dCgiLi9zdHJpbmdpZnkiKX19LHsiLi9wYXJzZSI6MTAxLCIuL3N0cmluZ2lmeSI6MTAyfV0sMTAwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImNzcy1mb250LXNpemUta2V5d29yZHMiKTtlLmV4cG9ydHM9e2lzU2l6ZTpmdW5jdGlvbih0KXtyZXR1cm4vXltcZFwuXS8udGVzdCh0KXx8LTEhPT10LmluZGV4T2YoIi8iKXx8LTEhPT1uLmluZGV4T2YodCl9fX0seyJjc3MtZm9udC1zaXplLWtleXdvcmRzIjo5NX1dLDEwMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJ1bnF1b3RlIiksaT10KCJjc3MtZ2xvYmFsLWtleXdvcmRzIiksYT10KCJjc3Mtc3lzdGVtLWZvbnQta2V5d29yZHMiKSxvPXQoImNzcy1mb250LXdlaWdodC1rZXl3b3JkcyIpLHM9dCgiY3NzLWZvbnQtc3R5bGUta2V5d29yZHMiKSxsPXQoImNzcy1mb250LXN0cmV0Y2gta2V5d29yZHMiKSxjPXQoInN0cmluZy1zcGxpdC1ieSIpLHU9dCgiLi9saWIvdXRpbCIpLmlzU2l6ZTtlLmV4cG9ydHM9aDt2YXIgZj1oLmNhY2hlPXt9O2Z1bmN0aW9uIGgodCl7aWYoInN0cmluZyIhPXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcigiRm9udCBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nLiIpO2lmKGZbdF0pcmV0dXJuIGZbdF07aWYoIiI9PT10KXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHBhcnNlIGFuIGVtcHR5IHN0cmluZy4iKTtpZigtMSE9PWEuaW5kZXhPZih0KSlyZXR1cm4gZlt0XT17c3lzdGVtOnR9O2Zvcih2YXIgZSxyPXtzdHlsZToibm9ybWFsIix2YXJpYW50OiJub3JtYWwiLHdlaWdodDoibm9ybWFsIixzdHJldGNoOiJub3JtYWwiLGxpbmVIZWlnaHQ6Im5vcm1hbCIsc2l6ZToiMXJlbSIsZmFtaWx5Olsic2VyaWYiXX0saD1jKHQsL1xzKy8pO2U9aC5zaGlmdCgpOyl7aWYoLTEhPT1pLmluZGV4T2YoZSkpcmV0dXJuWyJzdHlsZSIsInZhcmlhbnQiLCJ3ZWlnaHQiLCJzdHJldGNoIl0uZm9yRWFjaCgoZnVuY3Rpb24odCl7clt0XT1lfSkpLGZbdF09cjtpZigtMT09PXMuaW5kZXhPZihlKSlpZigibm9ybWFsIiE9PWUmJiJzbWFsbC1jYXBzIiE9PWUpaWYoLTE9PT1sLmluZGV4T2YoZSkpe2lmKC0xPT09by5pbmRleE9mKGUpKXtpZih1KGUpKXt2YXIgZD1jKGUsIi8iKTtpZihyLnNpemU9ZFswXSxudWxsIT1kWzFdP3IubGluZUhlaWdodD1wKGRbMV0pOiIvIj09PWhbMF0mJihoLnNoaWZ0KCksci5saW5lSGVpZ2h0PXAoaC5zaGlmdCgpKSksIWgubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiTWlzc2luZyByZXF1aXJlZCBmb250LWZhbWlseS4iKTtyZXR1cm4gci5mYW1pbHk9YyhoLmpvaW4oIiAiKSwvXHMqLFxzKi8pLm1hcChuKSxmW3RdPXJ9dGhyb3cgbmV3IEVycm9yKCJVbmtub3duIG9yIHVuc3VwcG9ydGVkIGZvbnQgdG9rZW46ICIrZSl9ci53ZWlnaHQ9ZX1lbHNlIHIuc3RyZXRjaD1lO2Vsc2Ugci52YXJpYW50PWU7ZWxzZSByLnN0eWxlPWV9dGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIHJlcXVpcmVkIGZvbnQtc2l6ZS4iKX1mdW5jdGlvbiBwKHQpe3ZhciBlPXBhcnNlRmxvYXQodCk7cmV0dXJuIGUudG9TdHJpbmcoKT09PXQ/ZTp0fX0seyIuL2xpYi91dGlsIjoxMDAsImNzcy1mb250LXN0cmV0Y2gta2V5d29yZHMiOjk2LCJjc3MtZm9udC1zdHlsZS1rZXl3b3JkcyI6OTcsImNzcy1mb250LXdlaWdodC1rZXl3b3JkcyI6OTgsImNzcy1nbG9iYWwta2V5d29yZHMiOjEwMywiY3NzLXN5c3RlbS1mb250LWtleXdvcmRzIjoxMDQsInN0cmluZy1zcGxpdC1ieSI6MzA2LHVucXVvdGU6MzI5fV0sMTAyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInBpY2stYnktYWxpYXMiKSxpPXQoIi4vbGliL3V0aWwiKS5pc1NpemUsYT1tKHQoImNzcy1nbG9iYWwta2V5d29yZHMiKSksbz1tKHQoImNzcy1zeXN0ZW0tZm9udC1rZXl3b3JkcyIpKSxzPW0odCgiY3NzLWZvbnQtd2VpZ2h0LWtleXdvcmRzIikpLGw9bSh0KCJjc3MtZm9udC1zdHlsZS1rZXl3b3JkcyIpKSxjPW0odCgiY3NzLWZvbnQtc3RyZXRjaC1rZXl3b3JkcyIpKSx1PXtub3JtYWw6MSwic21hbGwtY2FwcyI6MX0sZj17c2VyaWY6MSwic2Fucy1zZXJpZiI6MSxtb25vc3BhY2U6MSxjdXJzaXZlOjEsZmFudGFzeToxLCJzeXN0ZW0tdWkiOjF9LGg9IjFyZW0iLHA9InNlcmlmIjtmdW5jdGlvbiBkKHQsZSl7aWYodCYmIWVbdF0mJiFhW3RdKXRocm93IEVycm9yKCJVbmtub3duIGtleXdvcmQgYCIrdCsiYCIpO3JldHVybiB0fWZ1bmN0aW9uIG0odCl7Zm9yKHZhciBlPXt9LHI9MDtyPHQubGVuZ3RoO3IrKyllW3Rbcl1dPTE7cmV0dXJuIGV9ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKCh0PW4odCx7c3R5bGU6InN0eWxlIGZvbnRzdHlsZSBmb250U3R5bGUgZm9udC1zdHlsZSBzbG9wZSBkaXN0aW5jdGlvbiIsdmFyaWFudDoidmFyaWFudCBmb250LXZhcmlhbnQgZm9udFZhcmlhbnQgZm9udHZhcmlhbnQgdmFyIGNhcGl0YWxpemF0aW9uIix3ZWlnaHQ6IndlaWdodCB3IGZvbnQtd2VpZ2h0IGZvbnRXZWlnaHQgZm9udHdlaWdodCIsc3RyZXRjaDoic3RyZXRjaCBmb250LXN0cmV0Y2ggZm9udFN0cmV0Y2ggZm9udHN0cmV0Y2ggd2lkdGgiLHNpemU6InNpemUgcyBmb250LXNpemUgZm9udFNpemUgZm9udHNpemUgaGVpZ2h0IGVtIGVtU2l6ZSIsbGluZUhlaWdodDoibGggbGluZS1oZWlnaHQgbGluZUhlaWdodCBsaW5laGVpZ2h0IGxlYWRpbmciLGZhbWlseToiZm9udCBmYW1pbHkgZm9udEZhbWlseSBmb250LWZhbWlseSBmb250ZmFtaWx5IHR5cGUgdHlwZWZhY2UgZmFjZSIsc3lzdGVtOiJzeXN0ZW0gcmVzZXJ2ZWQgZGVmYXVsdCBnbG9iYWwifSkpLnN5c3RlbSlyZXR1cm4gdC5zeXN0ZW0mJmQodC5zeXN0ZW0sbyksdC5zeXN0ZW07aWYoZCh0LnN0eWxlLGwpLGQodC52YXJpYW50LHUpLGQodC53ZWlnaHQscyksZCh0LnN0cmV0Y2gsYyksbnVsbD09dC5zaXplJiYodC5zaXplPWgpLCJudW1iZXIiPT10eXBlb2YgdC5zaXplJiYodC5zaXplKz0icHgiKSwhaSl0aHJvdyBFcnJvcigiQmFkIHNpemUgdmFsdWUgYCIrdC5zaXplKyJgIik7dC5mYW1pbHl8fCh0LmZhbWlseT1wKSxBcnJheS5pc0FycmF5KHQuZmFtaWx5KSYmKHQuZmFtaWx5Lmxlbmd0aHx8KHQuZmFtaWx5PVtwXSksdC5mYW1pbHk9dC5mYW1pbHkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gZlt0XT90OiciJyt0KyciJ30pKS5qb2luKCIsICIpKTt2YXIgZT1bXTtyZXR1cm4gZS5wdXNoKHQuc3R5bGUpLHQudmFyaWFudCE9PXQuc3R5bGUmJmUucHVzaCh0LnZhcmlhbnQpLHQud2VpZ2h0IT09dC52YXJpYW50JiZ0LndlaWdodCE9PXQuc3R5bGUmJmUucHVzaCh0LndlaWdodCksdC5zdHJldGNoIT09dC53ZWlnaHQmJnQuc3RyZXRjaCE9PXQudmFyaWFudCYmdC5zdHJldGNoIT09dC5zdHlsZSYmZS5wdXNoKHQuc3RyZXRjaCksZS5wdXNoKHQuc2l6ZSsobnVsbD09dC5saW5lSGVpZ2h0fHwibm9ybWFsIj09PXQubGluZUhlaWdodHx8dC5saW5lSGVpZ2h0KyIiPT0iMSI/IiI6Ii8iK3QubGluZUhlaWdodCkpLGUucHVzaCh0LmZhbWlseSksZS5maWx0ZXIoQm9vbGVhbikuam9pbigiICIpfX0seyIuL2xpYi91dGlsIjoxMDAsImNzcy1mb250LXN0cmV0Y2gta2V5d29yZHMiOjk2LCJjc3MtZm9udC1zdHlsZS1rZXl3b3JkcyI6OTcsImNzcy1mb250LXdlaWdodC1rZXl3b3JkcyI6OTgsImNzcy1nbG9iYWwta2V5d29yZHMiOjEwMywiY3NzLXN5c3RlbS1mb250LWtleXdvcmRzIjoxMDQsInBpY2stYnktYWxpYXMiOjI1M31dLDEwMzpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1bImluaGVyaXQiLCJpbml0aWFsIiwidW5zZXQiXX0se31dLDEwNDpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1bImNhcHRpb24iLCJpY29uIiwibWVudSIsIm1lc3NhZ2UtYm94Iiwic21hbGwtY2FwdGlvbiIsInN0YXR1cy1iYXIiXX0se31dLDEwNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbixpPXQoInR5cGUvdmFsdWUvaXMiKSxhPXQoInR5cGUvdmFsdWUvZW5zdXJlIiksbz10KCJ0eXBlL3BsYWluLWZ1bmN0aW9uL2Vuc3VyZSIpLHM9dCgiZXM1LWV4dC9vYmplY3QvY29weSIpLGw9dCgiZXM1LWV4dC9vYmplY3Qvbm9ybWFsaXplLW9wdGlvbnMiKSxjPXQoImVzNS1leHQvb2JqZWN0L21hcCIpLHU9RnVuY3Rpb24ucHJvdG90eXBlLmJpbmQsZj1PYmplY3QuZGVmaW5lUHJvcGVydHksaD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O249ZnVuY3Rpb24odCxlLHIpe3ZhciBuLGk9YShlKSYmbyhlLnZhbHVlKTtyZXR1cm4gZGVsZXRlKG49cyhlKSkud3JpdGFibGUsZGVsZXRlIG4udmFsdWUsbi5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4hci5vdmVyd3JpdGVEZWZpbml0aW9uJiZoLmNhbGwodGhpcyx0KT9pOihlLnZhbHVlPXUuY2FsbChpLHIucmVzb2x2ZUNvbnRleHQ/ci5yZXNvbHZlQ29udGV4dCh0aGlzKTp0aGlzKSxmKHRoaXMsdCxlKSx0aGlzW3RdKX0sbn0sZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPWwoYXJndW1lbnRzWzFdKTtyZXR1cm4gaShlLnJlc29sdmVDb250ZXh0KSYmbyhlLnJlc29sdmVDb250ZXh0KSxjKHQsKGZ1bmN0aW9uKHQscil7cmV0dXJuIG4ocix0LGUpfSkpfX0seyJlczUtZXh0L29iamVjdC9jb3B5IjoxNDcsImVzNS1leHQvb2JqZWN0L21hcCI6MTU1LCJlczUtZXh0L29iamVjdC9ub3JtYWxpemUtb3B0aW9ucyI6MTU2LCJ0eXBlL3BsYWluLWZ1bmN0aW9uL2Vuc3VyZSI6MzIyLCJ0eXBlL3ZhbHVlL2Vuc3VyZSI6MzI2LCJ0eXBlL3ZhbHVlL2lzIjozMjd9XSwxMDY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgidHlwZS92YWx1ZS9pcyIpLGk9dCgidHlwZS9wbGFpbi1mdW5jdGlvbi9pcyIpLGE9dCgiZXM1LWV4dC9vYmplY3QvYXNzaWduIiksbz10KCJlczUtZXh0L29iamVjdC9ub3JtYWxpemUtb3B0aW9ucyIpLHM9dCgiZXM1LWV4dC9zdHJpbmcvIy9jb250YWlucyIpOyhlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixpLGwsYyx1O3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDJ8fCJzdHJpbmciIT10eXBlb2YgdD8oYz1lLGU9dCx0PW51bGwpOmM9YXJndW1lbnRzWzJdLG4odCk/KHI9cy5jYWxsKHQsImMiKSxpPXMuY2FsbCh0LCJlIiksbD1zLmNhbGwodCwidyIpKToocj1sPSEwLGk9ITEpLHU9e3ZhbHVlOmUsY29uZmlndXJhYmxlOnIsZW51bWVyYWJsZTppLHdyaXRhYmxlOmx9LGM/YShvKGMpLHUpOnV9KS5ncz1mdW5jdGlvbih0LGUscil7dmFyIGwsYyx1LGY7cmV0dXJuInN0cmluZyIhPXR5cGVvZiB0Pyh1PXIscj1lLGU9dCx0PW51bGwpOnU9YXJndW1lbnRzWzNdLG4oZSk/aShlKT9uKHIpP2kocil8fCh1PXIscj12b2lkIDApOnI9dm9pZCAwOih1PWUsZT1yPXZvaWQgMCk6ZT12b2lkIDAsbih0KT8obD1zLmNhbGwodCwiYyIpLGM9cy5jYWxsKHQsImUiKSk6KGw9ITAsYz0hMSksZj17Z2V0OmUsc2V0OnIsY29uZmlndXJhYmxlOmwsZW51bWVyYWJsZTpjfSx1P2Eobyh1KSxmKTpmfX0seyJlczUtZXh0L29iamVjdC9hc3NpZ24iOjE0NCwiZXM1LWV4dC9vYmplY3Qvbm9ybWFsaXplLW9wdGlvbnMiOjE1NiwiZXM1LWV4dC9zdHJpbmcvIy9jb250YWlucyI6MTYzLCJ0eXBlL3BsYWluLWZ1bmN0aW9uL2lzIjozMjMsInR5cGUvdmFsdWUvaXMiOjMyN31dLDEwNzpbZnVuY3Rpb24odCxlLHIpeyFmdW5jdGlvbih0LG4pe24oIm9iamVjdCI9PXR5cGVvZiByJiZ2b2lkIDAhPT1lP3I6dC5kMz10LmQzfHx7fSl9KHRoaXMsKGZ1bmN0aW9uKHQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBlKHQsZSl7cmV0dXJuIHQ8ZT8tMTp0PmU/MTp0Pj1lPzA6TmFOfWZ1bmN0aW9uIHIodCl7dmFyIHI7cmV0dXJuIDE9PT10Lmxlbmd0aCYmKHI9dCx0PWZ1bmN0aW9uKHQsbil7cmV0dXJuIGUocih0KSxuKX0pLHtsZWZ0OmZ1bmN0aW9uKGUscixuLGkpe2ZvcihudWxsPT1uJiYobj0wKSxudWxsPT1pJiYoaT1lLmxlbmd0aCk7bjxpOyl7dmFyIGE9bitpPj4+MTt0KGVbYV0scik8MD9uPWErMTppPWF9cmV0dXJuIG59LHJpZ2h0OmZ1bmN0aW9uKGUscixuLGkpe2ZvcihudWxsPT1uJiYobj0wKSxudWxsPT1pJiYoaT1lLmxlbmd0aCk7bjxpOyl7dmFyIGE9bitpPj4+MTt0KGVbYV0scik+MD9pPWE6bj1hKzF9cmV0dXJuIG59fX12YXIgbj1yKGUpLGk9bi5yaWdodCxhPW4ubGVmdDtmdW5jdGlvbiBvKHQsZSl7cmV0dXJuW3QsZV19ZnVuY3Rpb24gcyh0KXtyZXR1cm4gbnVsbD09PXQ/TmFOOit0fWZ1bmN0aW9uIGwodCxlKXt2YXIgcixuLGk9dC5sZW5ndGgsYT0wLG89LTEsbD0wLGM9MDtpZihudWxsPT1lKWZvcig7KytvPGk7KWlzTmFOKHI9cyh0W29dKSl8fChjKz0obj1yLWwpKihyLShsKz1uLysrYSkpKTtlbHNlIGZvcig7KytvPGk7KWlzTmFOKHI9cyhlKHRbb10sbyx0KSkpfHwoYys9KG49ci1sKSooci0obCs9bi8rK2EpKSk7aWYoYT4xKXJldHVybiBjLyhhLTEpfWZ1bmN0aW9uIGModCxlKXt2YXIgcj1sKHQsZSk7cmV0dXJuIHI/TWF0aC5zcXJ0KHIpOnJ9ZnVuY3Rpb24gdSh0LGUpe3ZhciByLG4saSxhPXQubGVuZ3RoLG89LTE7aWYobnVsbD09ZSl7Zm9yKDsrK288YTspaWYobnVsbCE9KHI9dFtvXSkmJnI+PXIpZm9yKG49aT1yOysrbzxhOyludWxsIT0ocj10W29dKSYmKG4+ciYmKG49ciksaTxyJiYoaT1yKSl9ZWxzZSBmb3IoOysrbzxhOylpZihudWxsIT0ocj1lKHRbb10sbyx0KSkmJnI+PXIpZm9yKG49aT1yOysrbzxhOyludWxsIT0ocj1lKHRbb10sbyx0KSkmJihuPnImJihuPXIpLGk8ciYmKGk9cikpO3JldHVybltuLGldfXZhciBmPUFycmF5LnByb3RvdHlwZSxoPWYuc2xpY2UscD1mLm1hcDtmdW5jdGlvbiBkKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBtKHQpe3JldHVybiB0fWZ1bmN0aW9uIGcodCxlLHIpe3Q9K3QsZT0rZSxyPShpPWFyZ3VtZW50cy5sZW5ndGgpPDI/KGU9dCx0PTAsMSk6aTwzPzE6K3I7Zm9yKHZhciBuPS0xLGk9MHxNYXRoLm1heCgwLE1hdGguY2VpbCgoZS10KS9yKSksYT1uZXcgQXJyYXkoaSk7KytuPGk7KWFbbl09dCtuKnI7cmV0dXJuIGF9dmFyIHY9TWF0aC5zcXJ0KDUwKSx5PU1hdGguc3FydCgxMCkseD1NYXRoLnNxcnQoMik7ZnVuY3Rpb24gYih0LGUscil7dmFyIG49KGUtdCkvTWF0aC5tYXgoMCxyKSxpPU1hdGguZmxvb3IoTWF0aC5sb2cobikvTWF0aC5MTjEwKSxhPW4vTWF0aC5wb3coMTAsaSk7cmV0dXJuIGk+PTA/KGE+PXY/MTA6YT49eT81OmE+PXg/MjoxKSpNYXRoLnBvdygxMCxpKTotTWF0aC5wb3coMTAsLWkpLyhhPj12PzEwOmE+PXk/NTphPj14PzI6MSl9ZnVuY3Rpb24gXyh0LGUscil7dmFyIG49TWF0aC5hYnMoZS10KS9NYXRoLm1heCgwLHIpLGk9TWF0aC5wb3coMTAsTWF0aC5mbG9vcihNYXRoLmxvZyhuKS9NYXRoLkxOMTApKSxhPW4vaTtyZXR1cm4gYT49dj9pKj0xMDphPj15P2kqPTU6YT49eCYmKGkqPTIpLGU8dD8taTppfWZ1bmN0aW9uIHcodCl7cmV0dXJuIE1hdGguY2VpbChNYXRoLmxvZyh0Lmxlbmd0aCkvTWF0aC5MTjIpKzF9ZnVuY3Rpb24gVCh0LGUscil7aWYobnVsbD09ciYmKHI9cyksbj10Lmxlbmd0aCl7aWYoKGU9K2UpPD0wfHxuPDIpcmV0dXJuK3IodFswXSwwLHQpO2lmKGU+PTEpcmV0dXJuK3IodFtuLTFdLG4tMSx0KTt2YXIgbixpPShuLTEpKmUsYT1NYXRoLmZsb29yKGkpLG89K3IodFthXSxhLHQpO3JldHVybiBvKygrcih0W2ErMV0sYSsxLHQpLW8pKihpLWEpfX1mdW5jdGlvbiBrKHQsZSl7dmFyIHIsbixpPXQubGVuZ3RoLGE9LTE7aWYobnVsbD09ZSl7Zm9yKDsrK2E8aTspaWYobnVsbCE9KHI9dFthXSkmJnI+PXIpZm9yKG49cjsrK2E8aTspbnVsbCE9KHI9dFthXSkmJm4+ciYmKG49cil9ZWxzZSBmb3IoOysrYTxpOylpZihudWxsIT0ocj1lKHRbYV0sYSx0KSkmJnI+PXIpZm9yKG49cjsrK2E8aTspbnVsbCE9KHI9ZSh0W2FdLGEsdCkpJiZuPnImJihuPXIpO3JldHVybiBufWZ1bmN0aW9uIEEodCl7aWYoIShpPXQubGVuZ3RoKSlyZXR1cm5bXTtmb3IodmFyIGU9LTEscj1rKHQsTSksbj1uZXcgQXJyYXkocik7KytlPHI7KWZvcih2YXIgaSxhPS0xLG89bltlXT1uZXcgQXJyYXkoaSk7KythPGk7KW9bYV09dFthXVtlXTtyZXR1cm4gbn1mdW5jdGlvbiBNKHQpe3JldHVybiB0Lmxlbmd0aH10LmJpc2VjdD1pLHQuYmlzZWN0UmlnaHQ9aSx0LmJpc2VjdExlZnQ9YSx0LmFzY2VuZGluZz1lLHQuYmlzZWN0b3I9cix0LmNyb3NzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbixpLGEscyxsPXQubGVuZ3RoLGM9ZS5sZW5ndGgsdT1uZXcgQXJyYXkobCpjKTtmb3IobnVsbD09ciYmKHI9byksbj1hPTA7bjxsOysrbilmb3Iocz10W25dLGk9MDtpPGM7KytpLCsrYSl1W2FdPXIocyxlW2ldKTtyZXR1cm4gdX0sdC5kZXNjZW5kaW5nPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU8dD8tMTplPnQ/MTplPj10PzA6TmFOfSx0LmRldmlhdGlvbj1jLHQuZXh0ZW50PXUsdC5oaXN0b2dyYW09ZnVuY3Rpb24oKXt2YXIgdD1tLGU9dSxyPXc7ZnVuY3Rpb24gbihuKXt2YXIgYSxvLHM9bi5sZW5ndGgsbD1uZXcgQXJyYXkocyk7Zm9yKGE9MDthPHM7KythKWxbYV09dChuW2FdLGEsbik7dmFyIGM9ZShsKSx1PWNbMF0sZj1jWzFdLGg9cihsLHUsZik7QXJyYXkuaXNBcnJheShoKXx8KGg9Xyh1LGYsaCksaD1nKE1hdGguY2VpbCh1L2gpKmgsZixoKSk7Zm9yKHZhciBwPWgubGVuZ3RoO2hbMF08PXU7KWguc2hpZnQoKSwtLXA7Zm9yKDtoW3AtMV0+ZjspaC5wb3AoKSwtLXA7dmFyIGQsbT1uZXcgQXJyYXkocCsxKTtmb3IoYT0wO2E8PXA7KythKShkPW1bYV09W10pLngwPWE+MD9oW2EtMV06dSxkLngxPWE8cD9oW2FdOmY7Zm9yKGE9MDthPHM7KythKXU8PShvPWxbYV0pJiZvPD1mJiZtW2koaCxvLDAscCldLnB1c2goblthXSk7cmV0dXJuIG19cmV0dXJuIG4udmFsdWU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpkKGUpLG4pOnR9LG4uZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6ZChbdFswXSx0WzFdXSksbik6ZX0sbi50aHJlc2hvbGRzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6QXJyYXkuaXNBcnJheSh0KT9kKGguY2FsbCh0KSk6ZCh0KSxuKTpyfSxufSx0LnRocmVzaG9sZEZyZWVkbWFuRGlhY29uaXM9ZnVuY3Rpb24odCxyLG4pe3JldHVybiB0PXAuY2FsbCh0LHMpLnNvcnQoZSksTWF0aC5jZWlsKChuLXIpLygyKihUKHQsLjc1KS1UKHQsLjI1KSkqTWF0aC5wb3codC5sZW5ndGgsLTEvMykpKX0sdC50aHJlc2hvbGRTY290dD1mdW5jdGlvbih0LGUscil7cmV0dXJuIE1hdGguY2VpbCgoci1lKS8oMy41KmModCkqTWF0aC5wb3codC5sZW5ndGgsLTEvMykpKX0sdC50aHJlc2hvbGRTdHVyZ2VzPXcsdC5tYXg9ZnVuY3Rpb24odCxlKXt2YXIgcixuLGk9dC5sZW5ndGgsYT0tMTtpZihudWxsPT1lKXtmb3IoOysrYTxpOylpZihudWxsIT0ocj10W2FdKSYmcj49cilmb3Iobj1yOysrYTxpOyludWxsIT0ocj10W2FdKSYmcj5uJiYobj1yKX1lbHNlIGZvcig7KythPGk7KWlmKG51bGwhPShyPWUodFthXSxhLHQpKSYmcj49cilmb3Iobj1yOysrYTxpOyludWxsIT0ocj1lKHRbYV0sYSx0KSkmJnI+biYmKG49cik7cmV0dXJuIG59LHQubWVhbj1mdW5jdGlvbih0LGUpe3ZhciByLG49dC5sZW5ndGgsaT1uLGE9LTEsbz0wO2lmKG51bGw9PWUpZm9yKDsrK2E8bjspaXNOYU4ocj1zKHRbYV0pKT8tLWk6bys9cjtlbHNlIGZvcig7KythPG47KWlzTmFOKHI9cyhlKHRbYV0sYSx0KSkpPy0taTpvKz1yO2lmKGkpcmV0dXJuIG8vaX0sdC5tZWRpYW49ZnVuY3Rpb24odCxyKXt2YXIgbixpPXQubGVuZ3RoLGE9LTEsbz1bXTtpZihudWxsPT1yKWZvcig7KythPGk7KWlzTmFOKG49cyh0W2FdKSl8fG8ucHVzaChuKTtlbHNlIGZvcig7KythPGk7KWlzTmFOKG49cyhyKHRbYV0sYSx0KSkpfHxvLnB1c2gobik7cmV0dXJuIFQoby5zb3J0KGUpLC41KX0sdC5tZXJnZT1mdW5jdGlvbih0KXtmb3IodmFyIGUscixuLGk9dC5sZW5ndGgsYT0tMSxvPTA7KythPGk7KW8rPXRbYV0ubGVuZ3RoO2ZvcihyPW5ldyBBcnJheShvKTstLWk+PTA7KWZvcihlPShuPXRbaV0pLmxlbmd0aDstLWU+PTA7KXJbLS1vXT1uW2VdO3JldHVybiByfSx0Lm1pbj1rLHQucGFpcnM9ZnVuY3Rpb24odCxlKXtudWxsPT1lJiYoZT1vKTtmb3IodmFyIHI9MCxuPXQubGVuZ3RoLTEsaT10WzBdLGE9bmV3IEFycmF5KG48MD8wOm4pO3I8bjspYVtyXT1lKGksaT10Wysrcl0pO3JldHVybiBhfSx0LnBlcm11dGU9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9ZS5sZW5ndGgsbj1uZXcgQXJyYXkocik7ci0tOyluW3JdPXRbZVtyXV07cmV0dXJuIG59LHQucXVhbnRpbGU9VCx0LnJhbmdlPWcsdC5zY2FuPWZ1bmN0aW9uKHQscil7aWYobj10Lmxlbmd0aCl7dmFyIG4saSxhPTAsbz0wLHM9dFtvXTtmb3IobnVsbD09ciYmKHI9ZSk7KythPG47KShyKGk9dFthXSxzKTwwfHwwIT09cihzLHMpKSYmKHM9aSxvPWEpO3JldHVybiAwPT09cihzLHMpP286dm9pZCAwfX0sdC5zaHVmZmxlPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG4saSxhPShudWxsPT1yP3QubGVuZ3RoOnIpLShlPW51bGw9PWU/MDorZSk7YTspaT1NYXRoLnJhbmRvbSgpKmEtLXwwLG49dFthK2VdLHRbYStlXT10W2krZV0sdFtpK2VdPW47cmV0dXJuIHR9LHQuc3VtPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbj10Lmxlbmd0aCxpPS0xLGE9MDtpZihudWxsPT1lKWZvcig7KytpPG47KShyPSt0W2ldKSYmKGErPXIpO2Vsc2UgZm9yKDsrK2k8bjspKHI9K2UodFtpXSxpLHQpKSYmKGErPXIpO3JldHVybiBhfSx0LnRpY2tzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbixpLGEsbyxzPS0xO2lmKHI9K3IsKHQ9K3QpPT09KGU9K2UpJiZyPjApcmV0dXJuW3RdO2lmKChuPWU8dCkmJihpPXQsdD1lLGU9aSksMD09PShvPWIodCxlLHIpKXx8IWlzRmluaXRlKG8pKXJldHVybltdO2lmKG8+MClmb3IodD1NYXRoLmNlaWwodC9vKSxlPU1hdGguZmxvb3IoZS9vKSxhPW5ldyBBcnJheShpPU1hdGguY2VpbChlLXQrMSkpOysrczxpOylhW3NdPSh0K3MpKm87ZWxzZSBmb3IodD1NYXRoLmZsb29yKHQqbyksZT1NYXRoLmNlaWwoZSpvKSxhPW5ldyBBcnJheShpPU1hdGguY2VpbCh0LWUrMSkpOysrczxpOylhW3NdPSh0LXMpL287cmV0dXJuIG4mJmEucmV2ZXJzZSgpLGF9LHQudGlja0luY3JlbWVudD1iLHQudGlja1N0ZXA9Xyx0LnRyYW5zcG9zZT1BLHQudmFyaWFuY2U9bCx0LnppcD1mdW5jdGlvbigpe3JldHVybiBBKGFyZ3VtZW50cyl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0pKX0se31dLDEwODpbZnVuY3Rpb24odCxlLHIpeyFmdW5jdGlvbih0LG4pe24oIm9iamVjdCI9PXR5cGVvZiByJiZ2b2lkIDAhPT1lP3I6dC5kMz10LmQzfHx7fSl9KHRoaXMsKGZ1bmN0aW9uKHQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBlKCl7fWZ1bmN0aW9uIHIodCxyKXt2YXIgbj1uZXcgZTtpZih0IGluc3RhbmNlb2YgZSl0LmVhY2goKGZ1bmN0aW9uKHQsZSl7bi5zZXQoZSx0KX0pKTtlbHNlIGlmKEFycmF5LmlzQXJyYXkodCkpe3ZhciBpLGE9LTEsbz10Lmxlbmd0aDtpZihudWxsPT1yKWZvcig7KythPG87KW4uc2V0KGEsdFthXSk7ZWxzZSBmb3IoOysrYTxvOyluLnNldChyKGk9dFthXSxhLHQpLGkpfWVsc2UgaWYodClmb3IodmFyIHMgaW4gdCluLnNldChzLHRbc10pO3JldHVybiBufWZ1bmN0aW9uIG4oKXtyZXR1cm57fX1mdW5jdGlvbiBpKHQsZSxyKXt0W2VdPXJ9ZnVuY3Rpb24gYSgpe3JldHVybiByKCl9ZnVuY3Rpb24gbyh0LGUscil7dC5zZXQoZSxyKX1mdW5jdGlvbiBzKCl7fWUucHJvdG90eXBlPXIucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjplLGhhczpmdW5jdGlvbih0KXtyZXR1cm4iJCIrdCBpbiB0aGlzfSxnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXNbIiQiK3RdfSxzZXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpc1siJCIrdF09ZSx0aGlzfSxyZW1vdmU6ZnVuY3Rpb24odCl7dmFyIGU9IiQiK3Q7cmV0dXJuIGUgaW4gdGhpcyYmZGVsZXRlIHRoaXNbZV19LGNsZWFyOmZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMpIiQiPT09dFswXSYmZGVsZXRlIHRoaXNbdF19LGtleXM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtmb3IodmFyIGUgaW4gdGhpcykiJCI9PT1lWzBdJiZ0LnB1c2goZS5zbGljZSgxKSk7cmV0dXJuIHR9LHZhbHVlczpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgZSBpbiB0aGlzKSIkIj09PWVbMF0mJnQucHVzaCh0aGlzW2VdKTtyZXR1cm4gdH0sZW50cmllczpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgZSBpbiB0aGlzKSIkIj09PWVbMF0mJnQucHVzaCh7a2V5OmUuc2xpY2UoMSksdmFsdWU6dGhpc1tlXX0pO3JldHVybiB0fSxzaXplOmZ1bmN0aW9uKCl7dmFyIHQ9MDtmb3IodmFyIGUgaW4gdGhpcykiJCI9PT1lWzBdJiYrK3Q7cmV0dXJuIHR9LGVtcHR5OmZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMpaWYoIiQiPT09dFswXSlyZXR1cm4hMTtyZXR1cm4hMH0sZWFjaDpmdW5jdGlvbih0KXtmb3IodmFyIGUgaW4gdGhpcykiJCI9PT1lWzBdJiZ0KHRoaXNbZV0sZS5zbGljZSgxKSx0aGlzKX19O3ZhciBsPXIucHJvdG90eXBlO2Z1bmN0aW9uIGModCxlKXt2YXIgcj1uZXcgcztpZih0IGluc3RhbmNlb2Ygcyl0LmVhY2goKGZ1bmN0aW9uKHQpe3IuYWRkKHQpfSkpO2Vsc2UgaWYodCl7dmFyIG49LTEsaT10Lmxlbmd0aDtpZihudWxsPT1lKWZvcig7KytuPGk7KXIuYWRkKHRbbl0pO2Vsc2UgZm9yKDsrK248aTspci5hZGQoZSh0W25dLG4sdCkpfXJldHVybiByfXMucHJvdG90eXBlPWMucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpzLGhhczpsLmhhcyxhZGQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXNbIiQiKyh0Kz0iIildPXQsdGhpc30scmVtb3ZlOmwucmVtb3ZlLGNsZWFyOmwuY2xlYXIsdmFsdWVzOmwua2V5cyxzaXplOmwuc2l6ZSxlbXB0eTpsLmVtcHR5LGVhY2g6bC5lYWNofSx0Lm5lc3Q9ZnVuY3Rpb24oKXt2YXIgdCxlLHMsbD1bXSxjPVtdO2Z1bmN0aW9uIHUobixpLGEsbyl7aWYoaT49bC5sZW5ndGgpcmV0dXJuIG51bGwhPXQmJm4uc29ydCh0KSxudWxsIT1lP2Uobik6bjtmb3IodmFyIHMsYyxmLGg9LTEscD1uLmxlbmd0aCxkPWxbaSsrXSxtPXIoKSxnPWEoKTsrK2g8cDspKGY9bS5nZXQocz1kKGM9bltoXSkrIiIpKT9mLnB1c2goYyk6bS5zZXQocyxbY10pO3JldHVybiBtLmVhY2goKGZ1bmN0aW9uKHQsZSl7byhnLGUsdSh0LGksYSxvKSl9KSksZ31yZXR1cm4gcz17b2JqZWN0OmZ1bmN0aW9uKHQpe3JldHVybiB1KHQsMCxuLGkpfSxtYXA6ZnVuY3Rpb24odCl7cmV0dXJuIHUodCwwLGEsbyl9LGVudHJpZXM6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uIHQocixuKXtpZigrK24+bC5sZW5ndGgpcmV0dXJuIHI7dmFyIGksYT1jW24tMV07cmV0dXJuIG51bGwhPWUmJm4+PWwubGVuZ3RoP2k9ci5lbnRyaWVzKCk6KGk9W10sci5lYWNoKChmdW5jdGlvbihlLHIpe2kucHVzaCh7a2V5OnIsdmFsdWVzOnQoZSxuKX0pfSkpKSxudWxsIT1hP2kuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gYSh0LmtleSxlLmtleSl9KSk6aX0odSh0LDAsYSxvKSwwKX0sa2V5OmZ1bmN0aW9uKHQpe3JldHVybiBsLnB1c2godCksc30sc29ydEtleXM6ZnVuY3Rpb24odCl7cmV0dXJuIGNbbC5sZW5ndGgtMV09dCxzfSxzb3J0VmFsdWVzOmZ1bmN0aW9uKGUpe3JldHVybiB0PWUsc30scm9sbHVwOmZ1bmN0aW9uKHQpe3JldHVybiBlPXQsc319fSx0LnNldD1jLHQubWFwPXIsdC5rZXlzPWZ1bmN0aW9uKHQpe3ZhciBlPVtdO2Zvcih2YXIgciBpbiB0KWUucHVzaChyKTtyZXR1cm4gZX0sdC52YWx1ZXM9ZnVuY3Rpb24odCl7dmFyIGU9W107Zm9yKHZhciByIGluIHQpZS5wdXNoKHRbcl0pO3JldHVybiBlfSx0LmVudHJpZXM9ZnVuY3Rpb24odCl7dmFyIGU9W107Zm9yKHZhciByIGluIHQpZS5wdXNoKHtrZXk6cix2YWx1ZTp0W3JdfSk7cmV0dXJuIGV9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0pKX0se31dLDEwOTpbZnVuY3Rpb24odCxlLHIpeyFmdW5jdGlvbih0LG4peyJvYmplY3QiPT10eXBlb2YgciYmdm9pZCAwIT09ZT9uKHIpOm4oKHQ9dHx8c2VsZikuZDM9dC5kM3x8e30pfSh0aGlzLChmdW5jdGlvbih0KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZSh0LGUscil7dC5wcm90b3R5cGU9ZS5wcm90b3R5cGU9cixyLmNvbnN0cnVjdG9yPXR9ZnVuY3Rpb24gcih0LGUpe3ZhciByPU9iamVjdC5jcmVhdGUodC5wcm90b3R5cGUpO2Zvcih2YXIgbiBpbiBlKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiBuKCl7fXZhciBpPSJcXHMqKFsrLV0/XFxkKylcXHMqIixhPSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KVxccyoiLG89IlxccyooWystXT9cXGQqXFwuP1xcZCsoPzpbZUVdWystXT9cXGQrKT8pJVxccyoiLHM9L14jKFswLTlhLWZdezMsOH0pJC8sbD1uZXcgUmVnRXhwKCJecmdiXFwoIitbaSxpLGldKyJcXCkkIiksYz1uZXcgUmVnRXhwKCJecmdiXFwoIitbbyxvLG9dKyJcXCkkIiksdT1uZXcgUmVnRXhwKCJecmdiYVxcKCIrW2ksaSxpLGFdKyJcXCkkIiksZj1uZXcgUmVnRXhwKCJecmdiYVxcKCIrW28sbyxvLGFdKyJcXCkkIiksaD1uZXcgUmVnRXhwKCJeaHNsXFwoIitbYSxvLG9dKyJcXCkkIikscD1uZXcgUmVnRXhwKCJeaHNsYVxcKCIrW2EsbyxvLGFdKyJcXCkkIiksZD17YWxpY2VibHVlOjE1NzkyMzgzLGFudGlxdWV3aGl0ZToxNjQ0NDM3NSxhcXVhOjY1NTM1LGFxdWFtYXJpbmU6ODM4ODU2NCxhenVyZToxNTc5NDE3NSxiZWlnZToxNjExOTI2MCxiaXNxdWU6MTY3NzAyNDQsYmxhY2s6MCxibGFuY2hlZGFsbW9uZDoxNjc3MjA0NSxibHVlOjI1NSxibHVldmlvbGV0OjkwNTUyMDIsYnJvd246MTA4MjQyMzQsYnVybHl3b29kOjE0NTk2MjMxLGNhZGV0Ymx1ZTo2MjY2NTI4LGNoYXJ0cmV1c2U6ODM4ODM1MixjaG9jb2xhdGU6MTM3ODk0NzAsY29yYWw6MTY3NDQyNzIsY29ybmZsb3dlcmJsdWU6NjU5MTk4MSxjb3Juc2lsazoxNjc3NTM4OCxjcmltc29uOjE0NDIzMTAwLGN5YW46NjU1MzUsZGFya2JsdWU6MTM5LGRhcmtjeWFuOjM1NzIzLGRhcmtnb2xkZW5yb2Q6MTIwOTI5MzksZGFya2dyYXk6MTExMTkwMTcsZGFya2dyZWVuOjI1NjAwLGRhcmtncmV5OjExMTE5MDE3LGRhcmtraGFraToxMjQzMzI1OSxkYXJrbWFnZW50YTo5MTA5NjQzLGRhcmtvbGl2ZWdyZWVuOjU1OTc5OTksZGFya29yYW5nZToxNjc0NzUyMCxkYXJrb3JjaGlkOjEwMDQwMDEyLGRhcmtyZWQ6OTEwOTUwNCxkYXJrc2FsbW9uOjE1MzA4NDEwLGRhcmtzZWFncmVlbjo5NDE5OTE5LGRhcmtzbGF0ZWJsdWU6NDczNDM0NyxkYXJrc2xhdGVncmF5OjMxMDA0OTUsZGFya3NsYXRlZ3JleTozMTAwNDk1LGRhcmt0dXJxdW9pc2U6NTI5NDUsZGFya3Zpb2xldDo5Njk5NTM5LGRlZXBwaW5rOjE2NzE2OTQ3LGRlZXBza3libHVlOjQ5MTUxLGRpbWdyYXk6NjkwODI2NSxkaW1ncmV5OjY5MDgyNjUsZG9kZ2VyYmx1ZToyMDAzMTk5LGZpcmVicmljazoxMTY3NDE0NixmbG9yYWx3aGl0ZToxNjc3NTkyMCxmb3Jlc3RncmVlbjoyMjYzODQyLGZ1Y2hzaWE6MTY3MTE5MzUsZ2FpbnNib3JvOjE0NDc0NDYwLGdob3N0d2hpdGU6MTYzMTY2NzEsZ29sZDoxNjc2NjcyMCxnb2xkZW5yb2Q6MTQzMjkxMjAsZ3JheTo4NDIxNTA0LGdyZWVuOjMyNzY4LGdyZWVueWVsbG93OjExNDAzMDU1LGdyZXk6ODQyMTUwNCxob25leWRldzoxNTc5NDE2MCxob3RwaW5rOjE2NzM4NzQwLGluZGlhbnJlZDoxMzQ1ODUyNCxpbmRpZ286NDkxNTMzMCxpdm9yeToxNjc3NzIwMCxraGFraToxNTc4NzY2MCxsYXZlbmRlcjoxNTEzMjQxMCxsYXZlbmRlcmJsdXNoOjE2NzczMzY1LGxhd25ncmVlbjo4MTkwOTc2LGxlbW9uY2hpZmZvbjoxNjc3NTg4NSxsaWdodGJsdWU6MTEzOTMyNTQsbGlnaHRjb3JhbDoxNTc2MTUzNixsaWdodGN5YW46MTQ3NDU1OTksbGlnaHRnb2xkZW5yb2R5ZWxsb3c6MTY0NDgyMTAsbGlnaHRncmF5OjEzODgyMzIzLGxpZ2h0Z3JlZW46OTQ5ODI1NixsaWdodGdyZXk6MTM4ODIzMjMsbGlnaHRwaW5rOjE2NzU4NDY1LGxpZ2h0c2FsbW9uOjE2NzUyNzYyLGxpZ2h0c2VhZ3JlZW46MjE0Mjg5MCxsaWdodHNreWJsdWU6ODkwMDM0NixsaWdodHNsYXRlZ3JheTo3ODMzNzUzLGxpZ2h0c2xhdGVncmV5Ojc4MzM3NTMsbGlnaHRzdGVlbGJsdWU6MTE1ODQ3MzQsbGlnaHR5ZWxsb3c6MTY3NzcxODQsbGltZTo2NTI4MCxsaW1lZ3JlZW46MzMyOTMzMCxsaW5lbjoxNjQ0NTY3MCxtYWdlbnRhOjE2NzExOTM1LG1hcm9vbjo4Mzg4NjA4LG1lZGl1bWFxdWFtYXJpbmU6NjczNzMyMixtZWRpdW1ibHVlOjIwNSxtZWRpdW1vcmNoaWQ6MTIyMTE2NjcsbWVkaXVtcHVycGxlOjk2NjI2ODMsbWVkaXVtc2VhZ3JlZW46Mzk3ODA5NyxtZWRpdW1zbGF0ZWJsdWU6ODA4Nzc5MCxtZWRpdW1zcHJpbmdncmVlbjo2NDE1NCxtZWRpdW10dXJxdW9pc2U6NDc3MjMwMCxtZWRpdW12aW9sZXRyZWQ6MTMwNDcxNzMsbWlkbmlnaHRibHVlOjE2NDQ5MTIsbWludGNyZWFtOjE2MTIxODUwLG1pc3R5cm9zZToxNjc3MDI3Myxtb2NjYXNpbjoxNjc3MDIyOSxuYXZham93aGl0ZToxNjc2ODY4NSxuYXZ5OjEyOCxvbGRsYWNlOjE2NjQzNTU4LG9saXZlOjg0MjEzNzYsb2xpdmVkcmFiOjcwNDg3Mzksb3JhbmdlOjE2NzUzOTIwLG9yYW5nZXJlZDoxNjcyOTM0NCxvcmNoaWQ6MTQzMTU3MzQscGFsZWdvbGRlbnJvZDoxNTY1NzEzMCxwYWxlZ3JlZW46MTAwMjU4ODAscGFsZXR1cnF1b2lzZToxMTUyOTk2NixwYWxldmlvbGV0cmVkOjE0MzgxMjAzLHBhcGF5YXdoaXA6MTY3NzMwNzcscGVhY2hwdWZmOjE2NzY3NjczLHBlcnU6MTM0Njg5OTEscGluazoxNjc2MTAzNSxwbHVtOjE0NTI0NjM3LHBvd2RlcmJsdWU6MTE1OTE5MTAscHVycGxlOjgzODg3MzYscmViZWNjYXB1cnBsZTo2Njk3ODgxLHJlZDoxNjcxMTY4MCxyb3N5YnJvd246MTIzNTc1MTkscm95YWxibHVlOjQyODY5NDUsc2FkZGxlYnJvd246OTEyNzE4NyxzYWxtb246MTY0MTY4ODIsc2FuZHlicm93bjoxNjAzMjg2NCxzZWFncmVlbjozMDUwMzI3LHNlYXNoZWxsOjE2Nzc0NjM4LHNpZW5uYToxMDUwNjc5NyxzaWx2ZXI6MTI2MzIyNTYsc2t5Ymx1ZTo4OTAwMzMxLHNsYXRlYmx1ZTo2OTcwMDYxLHNsYXRlZ3JheTo3MzcyOTQ0LHNsYXRlZ3JleTo3MzcyOTQ0LHNub3c6MTY3NzU5MzAsc3ByaW5nZ3JlZW46NjU0MDcsc3RlZWxibHVlOjQ2MjA5ODAsdGFuOjEzODA4NzgwLHRlYWw6MzI4OTYsdGhpc3RsZToxNDIwNDg4OCx0b21hdG86MTY3MzcwOTUsdHVycXVvaXNlOjQyNTE4NTYsdmlvbGV0OjE1NjMxMDg2LHdoZWF0OjE2MTEzMzMxLHdoaXRlOjE2Nzc3MjE1LHdoaXRlc21va2U6MTYxMTkyODUseWVsbG93OjE2Nzc2OTYwLHllbGxvd2dyZWVuOjEwMTQ1MDc0fTtmdW5jdGlvbiBtKCl7cmV0dXJuIHRoaXMucmdiKCkuZm9ybWF0SGV4KCl9ZnVuY3Rpb24gZygpe3JldHVybiB0aGlzLnJnYigpLmZvcm1hdFJnYigpfWZ1bmN0aW9uIHYodCl7dmFyIGUscjtyZXR1cm4gdD0odCsiIikudHJpbSgpLnRvTG93ZXJDYXNlKCksKGU9cy5leGVjKHQpKT8ocj1lWzFdLmxlbmd0aCxlPXBhcnNlSW50KGVbMV0sMTYpLDY9PT1yP3koZSk6Mz09PXI/bmV3IHcoZT4+OCYxNXxlPj40JjI0MCxlPj40JjE1fDI0MCZlLCgxNSZlKTw8NHwxNSZlLDEpOjg9PT1yP3goZT4+MjQmMjU1LGU+PjE2JjI1NSxlPj44JjI1NSwoMjU1JmUpLzI1NSk6ND09PXI/eChlPj4xMiYxNXxlPj44JjI0MCxlPj44JjE1fGU+PjQmMjQwLGU+PjQmMTV8MjQwJmUsKCgxNSZlKTw8NHwxNSZlKS8yNTUpOm51bGwpOihlPWwuZXhlYyh0KSk/bmV3IHcoZVsxXSxlWzJdLGVbM10sMSk6KGU9Yy5leGVjKHQpKT9uZXcgdygyNTUqZVsxXS8xMDAsMjU1KmVbMl0vMTAwLDI1NSplWzNdLzEwMCwxKTooZT11LmV4ZWModCkpP3goZVsxXSxlWzJdLGVbM10sZVs0XSk6KGU9Zi5leGVjKHQpKT94KDI1NSplWzFdLzEwMCwyNTUqZVsyXS8xMDAsMjU1KmVbM10vMTAwLGVbNF0pOihlPWguZXhlYyh0KSk/TShlWzFdLGVbMl0vMTAwLGVbM10vMTAwLDEpOihlPXAuZXhlYyh0KSk/TShlWzFdLGVbMl0vMTAwLGVbM10vMTAwLGVbNF0pOmQuaGFzT3duUHJvcGVydHkodCk/eShkW3RdKToidHJhbnNwYXJlbnQiPT09dD9uZXcgdyhOYU4sTmFOLE5hTiwwKTpudWxsfWZ1bmN0aW9uIHkodCl7cmV0dXJuIG5ldyB3KHQ+PjE2JjI1NSx0Pj44JjI1NSwyNTUmdCwxKX1mdW5jdGlvbiB4KHQsZSxyLG4pe3JldHVybiBuPD0wJiYodD1lPXI9TmFOKSxuZXcgdyh0LGUscixuKX1mdW5jdGlvbiBiKHQpe3JldHVybiB0IGluc3RhbmNlb2Ygbnx8KHQ9dih0KSksdD9uZXcgdygodD10LnJnYigpKS5yLHQuZyx0LmIsdC5vcGFjaXR5KTpuZXcgd31mdW5jdGlvbiBfKHQsZSxyLG4pe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9iKHQpOm5ldyB3KHQsZSxyLG51bGw9PW4/MTpuKX1mdW5jdGlvbiB3KHQsZSxyLG4pe3RoaXMucj0rdCx0aGlzLmc9K2UsdGhpcy5iPStyLHRoaXMub3BhY2l0eT0rbn1mdW5jdGlvbiBUKCl7cmV0dXJuIiMiK0EodGhpcy5yKStBKHRoaXMuZykrQSh0aGlzLmIpfWZ1bmN0aW9uIGsoKXt2YXIgdD10aGlzLm9wYWNpdHk7cmV0dXJuKDE9PT0odD1pc05hTih0KT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSkpPyJyZ2IoIjoicmdiYSgiKStNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMucil8fDApKSsiLCAiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5nKXx8MCkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLmIpfHwwKSkrKDE9PT10PyIpIjoiLCAiK3QrIikiKX1mdW5jdGlvbiBBKHQpe3JldHVybigodD1NYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHQpfHwwKSkpPDE2PyIwIjoiIikrdC50b1N0cmluZygxNil9ZnVuY3Rpb24gTSh0LGUscixuKXtyZXR1cm4gbjw9MD90PWU9cj1OYU46cjw9MHx8cj49MT90PWU9TmFOOmU8PTAmJih0PU5hTiksbmV3IEwodCxlLHIsbil9ZnVuY3Rpb24gUyh0KXtpZih0IGluc3RhbmNlb2YgTClyZXR1cm4gbmV3IEwodC5oLHQucyx0LmwsdC5vcGFjaXR5KTtpZih0IGluc3RhbmNlb2Ygbnx8KHQ9dih0KSksIXQpcmV0dXJuIG5ldyBMO2lmKHQgaW5zdGFuY2VvZiBMKXJldHVybiB0O3ZhciBlPSh0PXQucmdiKCkpLnIvMjU1LHI9dC5nLzI1NSxpPXQuYi8yNTUsYT1NYXRoLm1pbihlLHIsaSksbz1NYXRoLm1heChlLHIsaSkscz1OYU4sbD1vLWEsYz0obythKS8yO3JldHVybiBsPyhzPWU9PT1vPyhyLWkpL2wrNioocjxpKTpyPT09bz8oaS1lKS9sKzI6KGUtcikvbCs0LGwvPWM8LjU/bythOjItby1hLHMqPTYwKTpsPWM+MCYmYzwxPzA6cyxuZXcgTChzLGwsYyx0Lm9wYWNpdHkpfWZ1bmN0aW9uIEUodCxlLHIsbil7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP1ModCk6bmV3IEwodCxlLHIsbnVsbD09bj8xOm4pfWZ1bmN0aW9uIEwodCxlLHIsbil7dGhpcy5oPSt0LHRoaXMucz0rZSx0aGlzLmw9K3IsdGhpcy5vcGFjaXR5PStufWZ1bmN0aW9uIEModCxlLHIpe3JldHVybiAyNTUqKHQ8NjA/ZSsoci1lKSp0LzYwOnQ8MTgwP3I6dDwyNDA/ZSsoci1lKSooMjQwLXQpLzYwOmUpfWUobix2LHtjb3B5OmZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuYXNzaWduKG5ldyB0aGlzLmNvbnN0cnVjdG9yLHRoaXMsdCl9LGRpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmdiKCkuZGlzcGxheWFibGUoKX0saGV4Om0sZm9ybWF0SGV4Om0sZm9ybWF0SHNsOmZ1bmN0aW9uKCl7cmV0dXJuIFModGhpcykuZm9ybWF0SHNsKCl9LGZvcm1hdFJnYjpnLHRvU3RyaW5nOmd9KSxlKHcsXyxyKG4se2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/MS8uNzpNYXRoLnBvdygxLy43LHQpLG5ldyB3KHRoaXMucip0LHRoaXMuZyp0LHRoaXMuYip0LHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10Py43Ok1hdGgucG93KC43LHQpLG5ldyB3KHRoaXMucip0LHRoaXMuZyp0LHRoaXMuYip0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3JldHVybiB0aGlzfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybi0uNTw9dGhpcy5yJiZ0aGlzLnI8MjU1LjUmJi0uNTw9dGhpcy5nJiZ0aGlzLmc8MjU1LjUmJi0uNTw9dGhpcy5iJiZ0aGlzLmI8MjU1LjUmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSxoZXg6VCxmb3JtYXRIZXg6VCxmb3JtYXRSZ2I6ayx0b1N0cmluZzprfSkpLGUoTCxFLHIobix7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD8xLy43Ok1hdGgucG93KDEvLjcsdCksbmV3IEwodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD8uNzpNYXRoLnBvdyguNyx0KSxuZXcgTCh0aGlzLmgsdGhpcy5zLHRoaXMubCp0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3ZhciB0PXRoaXMuaCUzNjArMzYwKih0aGlzLmg8MCksZT1pc05hTih0KXx8aXNOYU4odGhpcy5zKT8wOnRoaXMucyxyPXRoaXMubCxuPXIrKHI8LjU/cjoxLXIpKmUsaT0yKnItbjtyZXR1cm4gbmV3IHcoQyh0Pj0yNDA/dC0yNDA6dCsxMjAsaSxuKSxDKHQsaSxuKSxDKHQ8MTIwP3QrMjQwOnQtMTIwLGksbiksdGhpcy5vcGFjaXR5KX0sZGlzcGxheWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4oMDw9dGhpcy5zJiZ0aGlzLnM8PTF8fGlzTmFOKHRoaXMucykpJiYwPD10aGlzLmwmJnRoaXMubDw9MSYmMDw9dGhpcy5vcGFjaXR5JiZ0aGlzLm9wYWNpdHk8PTF9LGZvcm1hdEhzbDpmdW5jdGlvbigpe3ZhciB0PXRoaXMub3BhY2l0eTtyZXR1cm4oMT09PSh0PWlzTmFOKHQpPzE6TWF0aC5tYXgoMCxNYXRoLm1pbigxLHQpKSk/ImhzbCgiOiJoc2xhKCIpKyh0aGlzLmh8fDApKyIsICIrMTAwKih0aGlzLnN8fDApKyIlLCAiKzEwMCoodGhpcy5sfHwwKSsiJSIrKDE9PT10PyIpIjoiLCAiK3QrIikiKX19KSk7dmFyIFA9TWF0aC5QSS8xODAsST0xODAvTWF0aC5QSSxPPTYvMjksej0zKk8qTztmdW5jdGlvbiBEKHQpe2lmKHQgaW5zdGFuY2VvZiBGKXJldHVybiBuZXcgRih0LmwsdC5hLHQuYix0Lm9wYWNpdHkpO2lmKHQgaW5zdGFuY2VvZiBxKXJldHVybiBHKHQpO3QgaW5zdGFuY2VvZiB3fHwodD1iKHQpKTt2YXIgZSxyLG49VSh0LnIpLGk9VSh0LmcpLGE9VSh0LmIpLG89QigoLjIyMjUwNDUqbisuNzE2ODc4NippKy4wNjA2MTY5KmEpLzEpO3JldHVybiBuPT09aSYmaT09PWE/ZT1yPW86KGU9QigoLjQzNjA3NDcqbisuMzg1MDY0OSppKy4xNDMwODA0KmEpLy45NjQyMikscj1CKCguMDEzOTMyMipuKy4wOTcxMDQ1KmkrLjcxNDE3MzMqYSkvLjgyNTIxKSksbmV3IEYoMTE2Km8tMTYsNTAwKihlLW8pLDIwMCooby1yKSx0Lm9wYWNpdHkpfWZ1bmN0aW9uIFIodCxlLHIsbil7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP0QodCk6bmV3IEYodCxlLHIsbnVsbD09bj8xOm4pfWZ1bmN0aW9uIEYodCxlLHIsbil7dGhpcy5sPSt0LHRoaXMuYT0rZSx0aGlzLmI9K3IsdGhpcy5vcGFjaXR5PStufWZ1bmN0aW9uIEIodCl7cmV0dXJuIHQ+LjAwODg1NjQ1MTY3OTAzNTYzMT9NYXRoLnBvdyh0LDEvMyk6dC96KzQvMjl9ZnVuY3Rpb24gTih0KXtyZXR1cm4gdD5PP3QqdCp0OnoqKHQtNC8yOSl9ZnVuY3Rpb24gaih0KXtyZXR1cm4gMjU1Kih0PD0uMDAzMTMwOD8xMi45Mip0OjEuMDU1Kk1hdGgucG93KHQsMS8yLjQpLS4wNTUpfWZ1bmN0aW9uIFUodCl7cmV0dXJuKHQvPTI1NSk8PS4wNDA0NT90LzEyLjkyOk1hdGgucG93KCh0Ky4wNTUpLzEuMDU1LDIuNCl9ZnVuY3Rpb24gVih0KXtpZih0IGluc3RhbmNlb2YgcSlyZXR1cm4gbmV3IHEodC5oLHQuYyx0LmwsdC5vcGFjaXR5KTtpZih0IGluc3RhbmNlb2YgRnx8KHQ9RCh0KSksMD09PXQuYSYmMD09PXQuYilyZXR1cm4gbmV3IHEoTmFOLDA8dC5sJiZ0Lmw8MTAwPzA6TmFOLHQubCx0Lm9wYWNpdHkpO3ZhciBlPU1hdGguYXRhbjIodC5iLHQuYSkqSTtyZXR1cm4gbmV3IHEoZTwwP2UrMzYwOmUsTWF0aC5zcXJ0KHQuYSp0LmErdC5iKnQuYiksdC5sLHQub3BhY2l0eSl9ZnVuY3Rpb24gSCh0LGUscixuKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/Vih0KTpuZXcgcSh0LGUscixudWxsPT1uPzE6bil9ZnVuY3Rpb24gcSh0LGUscixuKXt0aGlzLmg9K3QsdGhpcy5jPStlLHRoaXMubD0rcix0aGlzLm9wYWNpdHk9K259ZnVuY3Rpb24gRyh0KXtpZihpc05hTih0LmgpKXJldHVybiBuZXcgRih0LmwsMCwwLHQub3BhY2l0eSk7dmFyIGU9dC5oKlA7cmV0dXJuIG5ldyBGKHQubCxNYXRoLmNvcyhlKSp0LmMsTWF0aC5zaW4oZSkqdC5jLHQub3BhY2l0eSl9ZShGLFIscihuLHticmlnaHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IEYodGhpcy5sKzE4KihudWxsPT10PzE6dCksdGhpcy5hLHRoaXMuYix0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBGKHRoaXMubC0xOCoobnVsbD09dD8xOnQpLHRoaXMuYSx0aGlzLmIsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7dmFyIHQ9KHRoaXMubCsxNikvMTE2LGU9aXNOYU4odGhpcy5hKT90OnQrdGhpcy5hLzUwMCxyPWlzTmFOKHRoaXMuYik/dDp0LXRoaXMuYi8yMDA7cmV0dXJuIG5ldyB3KGooMy4xMzM4NTYxKihlPS45NjQyMipOKGUpKS0xLjYxNjg2NjcqKHQ9MSpOKHQpKS0uNDkwNjE0Nioocj0uODI1MjEqTihyKSkpLGooLS45Nzg3Njg0KmUrMS45MTYxNDE1KnQrLjAzMzQ1NCpyKSxqKC4wNzE5NDUzKmUtLjIyODk5MTQqdCsxLjQwNTI0MjcqciksdGhpcy5vcGFjaXR5KX19KSksZShxLEgscihuLHticmlnaHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IHEodGhpcy5oLHRoaXMuYyx0aGlzLmwrMTgqKG51bGw9PXQ/MTp0KSx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBxKHRoaXMuaCx0aGlzLmMsdGhpcy5sLTE4KihudWxsPT10PzE6dCksdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7cmV0dXJuIEcodGhpcykucmdiKCl9fSkpO3ZhciBZPS0uMTQ4NjEsVz0xLjc4Mjc3LFg9LS4yOTIyNyxaPS0uOTA2NDksSj0xLjk3Mjk0LEs9SipaLFE9SipXLCQ9VypYLVoqWTtmdW5jdGlvbiB0dCh0KXtpZih0IGluc3RhbmNlb2YgcnQpcmV0dXJuIG5ldyBydCh0LmgsdC5zLHQubCx0Lm9wYWNpdHkpO3QgaW5zdGFuY2VvZiB3fHwodD1iKHQpKTt2YXIgZT10LnIvMjU1LHI9dC5nLzI1NSxuPXQuYi8yNTUsaT0oJCpuK0sqZS1RKnIpLygkK0stUSksYT1uLWksbz0oSiooci1pKS1YKmEpL1oscz1NYXRoLnNxcnQobypvK2EqYSkvKEoqaSooMS1pKSksbD1zP01hdGguYXRhbjIobyxhKSpJLTEyMDpOYU47cmV0dXJuIG5ldyBydChsPDA/bCszNjA6bCxzLGksdC5vcGFjaXR5KX1mdW5jdGlvbiBldCh0LGUscixuKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/dHQodCk6bmV3IHJ0KHQsZSxyLG51bGw9PW4/MTpuKX1mdW5jdGlvbiBydCh0LGUscixuKXt0aGlzLmg9K3QsdGhpcy5zPStlLHRoaXMubD0rcix0aGlzLm9wYWNpdHk9K259ZShydCxldCxyKG4se2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/MS8uNzpNYXRoLnBvdygxLy43LHQpLG5ldyBydCh0aGlzLmgsdGhpcy5zLHRoaXMubCp0LHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10Py43Ok1hdGgucG93KC43LHQpLG5ldyBydCh0aGlzLmgsdGhpcy5zLHRoaXMubCp0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3ZhciB0PWlzTmFOKHRoaXMuaCk/MDoodGhpcy5oKzEyMCkqUCxlPSt0aGlzLmwscj1pc05hTih0aGlzLnMpPzA6dGhpcy5zKmUqKDEtZSksbj1NYXRoLmNvcyh0KSxpPU1hdGguc2luKHQpO3JldHVybiBuZXcgdygyNTUqKGUrciooWSpuK1cqaSkpLDI1NSooZStyKihYKm4rWippKSksMjU1KihlK3IqKEoqbikpLHRoaXMub3BhY2l0eSl9fSkpLHQuY29sb3I9dix0LmN1YmVoZWxpeD1ldCx0LmdyYXk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IEYodCwwLDAsbnVsbD09ZT8xOmUpfSx0LmhjbD1ILHQuaHNsPUUsdC5sYWI9Uix0LmxjaD1mdW5jdGlvbih0LGUscixuKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/Vih0KTpuZXcgcShyLGUsdCxudWxsPT1uPzE6bil9LHQucmdiPV8sT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSkpfSx7fV0sMTEwOltmdW5jdGlvbih0LGUscil7IWZ1bmN0aW9uKHQsbil7Im9iamVjdCI9PXR5cGVvZiByJiZ2b2lkIDAhPT1lP24ocik6bigodD10fHxzZWxmKS5kMz10LmQzfHx7fSl9KHRoaXMsKGZ1bmN0aW9uKHQpeyJ1c2Ugc3RyaWN0Ijt2YXIgZT17dmFsdWU6ZnVuY3Rpb24oKXt9fTtmdW5jdGlvbiByKCl7Zm9yKHZhciB0LGU9MCxyPWFyZ3VtZW50cy5sZW5ndGgsaT17fTtlPHI7KytlKXtpZighKHQ9YXJndW1lbnRzW2VdKyIiKXx8dCBpbiBpfHwvW1xzLl0vLnRlc3QodCkpdGhyb3cgbmV3IEVycm9yKCJpbGxlZ2FsIHR5cGU6ICIrdCk7aVt0XT1bXX1yZXR1cm4gbmV3IG4oaSl9ZnVuY3Rpb24gbih0KXt0aGlzLl89dH1mdW5jdGlvbiBpKHQsZSl7cmV0dXJuIHQudHJpbSgpLnNwbGl0KC9efFxzKy8pLm1hcCgoZnVuY3Rpb24odCl7dmFyIHI9IiIsbj10LmluZGV4T2YoIi4iKTtpZihuPj0wJiYocj10LnNsaWNlKG4rMSksdD10LnNsaWNlKDAsbikpLHQmJiFlLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK3QpO3JldHVybnt0eXBlOnQsbmFtZTpyfX0pKX1mdW5jdGlvbiBhKHQsZSl7Zm9yKHZhciByLG49MCxpPXQubGVuZ3RoO248aTsrK24paWYoKHI9dFtuXSkubmFtZT09PWUpcmV0dXJuIHIudmFsdWV9ZnVuY3Rpb24gbyh0LHIsbil7Zm9yKHZhciBpPTAsYT10Lmxlbmd0aDtpPGE7KytpKWlmKHRbaV0ubmFtZT09PXIpe3RbaV09ZSx0PXQuc2xpY2UoMCxpKS5jb25jYXQodC5zbGljZShpKzEpKTticmVha31yZXR1cm4gbnVsbCE9biYmdC5wdXNoKHtuYW1lOnIsdmFsdWU6bn0pLHR9bi5wcm90b3R5cGU9ci5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOm4sb246ZnVuY3Rpb24odCxlKXt2YXIgcixuPXRoaXMuXyxzPWkodCsiIixuKSxsPS0xLGM9cy5sZW5ndGg7aWYoIShhcmd1bWVudHMubGVuZ3RoPDIpKXtpZihudWxsIT1lJiYiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgY2FsbGJhY2s6ICIrZSk7Zm9yKDsrK2w8YzspaWYocj0odD1zW2xdKS50eXBlKW5bcl09byhuW3JdLHQubmFtZSxlKTtlbHNlIGlmKG51bGw9PWUpZm9yKHIgaW4gbiluW3JdPW8obltyXSx0Lm5hbWUsbnVsbCk7cmV0dXJuIHRoaXN9Zm9yKDsrK2w8YzspaWYoKHI9KHQ9c1tsXSkudHlwZSkmJihyPWEobltyXSx0Lm5hbWUpKSlyZXR1cm4gcn0sY29weTpmdW5jdGlvbigpe3ZhciB0PXt9LGU9dGhpcy5fO2Zvcih2YXIgciBpbiBlKXRbcl09ZVtyXS5zbGljZSgpO3JldHVybiBuZXcgbih0KX0sY2FsbDpmdW5jdGlvbih0LGUpe2lmKChyPWFyZ3VtZW50cy5sZW5ndGgtMik+MClmb3IodmFyIHIsbixpPW5ldyBBcnJheShyKSxhPTA7YTxyOysrYSlpW2FdPWFyZ3VtZW50c1thKzJdO2lmKCF0aGlzLl8uaGFzT3duUHJvcGVydHkodCkpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIrdCk7Zm9yKGE9MCxyPShuPXRoaXMuX1t0XSkubGVuZ3RoO2E8cjsrK2EpblthXS52YWx1ZS5hcHBseShlLGkpfSxhcHBseTpmdW5jdGlvbih0LGUscil7aWYoIXRoaXMuXy5oYXNPd25Qcm9wZXJ0eSh0KSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIit0KTtmb3IodmFyIG49dGhpcy5fW3RdLGk9MCxhPW4ubGVuZ3RoO2k8YTsrK2kpbltpXS52YWx1ZS5hcHBseShlLHIpfX0sdC5kaXNwYXRjaD1yLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0pKX0se31dLDExMTpbZnVuY3Rpb24odCxlLHIpeyFmdW5jdGlvbihuLGkpeyJvYmplY3QiPT10eXBlb2YgciYmdm9pZCAwIT09ZT9pKHIsdCgiZDMtcXVhZHRyZWUiKSx0KCJkMy1jb2xsZWN0aW9uIiksdCgiZDMtZGlzcGF0Y2giKSx0KCJkMy10aW1lciIpKTppKG4uZDM9bi5kM3x8e30sbi5kMyxuLmQzLG4uZDMsbi5kMyl9KHRoaXMsKGZ1bmN0aW9uKHQsZSxyLG4saSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGEodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIG8oKXtyZXR1cm4gMWUtNiooTWF0aC5yYW5kb20oKS0uNSl9ZnVuY3Rpb24gcyh0KXtyZXR1cm4gdC54K3Qudnh9ZnVuY3Rpb24gbCh0KXtyZXR1cm4gdC55K3Qudnl9ZnVuY3Rpb24gYyh0KXtyZXR1cm4gdC5pbmRleH1mdW5jdGlvbiB1KHQsZSl7dmFyIHI9dC5nZXQoZSk7aWYoIXIpdGhyb3cgbmV3IEVycm9yKCJtaXNzaW5nOiAiK2UpO3JldHVybiByfWZ1bmN0aW9uIGYodCl7cmV0dXJuIHQueH1mdW5jdGlvbiBoKHQpe3JldHVybiB0Lnl9dmFyIHA9TWF0aC5QSSooMy1NYXRoLnNxcnQoNSkpO3QuZm9yY2VDZW50ZXI9ZnVuY3Rpb24odCxlKXt2YXIgcjtmdW5jdGlvbiBuKCl7dmFyIG4saSxhPXIubGVuZ3RoLG89MCxzPTA7Zm9yKG49MDtuPGE7KytuKW8rPShpPXJbbl0pLngscys9aS55O2ZvcihvPW8vYS10LHM9cy9hLWUsbj0wO248YTsrK24pKGk9cltuXSkueC09byxpLnktPXN9cmV0dXJuIG51bGw9PXQmJih0PTApLG51bGw9PWUmJihlPTApLG4uaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXtyPXR9LG4ueD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0rZSxuKTp0fSxuLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9K3Qsbik6ZX0sbn0sdC5mb3JjZUNvbGxpZGU9ZnVuY3Rpb24odCl7dmFyIHIsbixpPTEsYz0xO2Z1bmN0aW9uIHUoKXtmb3IodmFyIHQsYSx1LGgscCxkLG0sZz1yLmxlbmd0aCx2PTA7djxjOysrdilmb3IoYT1lLnF1YWR0cmVlKHIscyxsKS52aXNpdEFmdGVyKGYpLHQ9MDt0PGc7Kyt0KXU9clt0XSxkPW5bdS5pbmRleF0sbT1kKmQsaD11LngrdS52eCxwPXUueSt1LnZ5LGEudmlzaXQoeSk7ZnVuY3Rpb24geSh0LGUscixuLGEpe3ZhciBzPXQuZGF0YSxsPXQucixjPWQrbDtpZighcylyZXR1cm4gZT5oK2N8fG48aC1jfHxyPnArY3x8YTxwLWM7aWYocy5pbmRleD51LmluZGV4KXt2YXIgZj1oLXMueC1zLnZ4LGc9cC1zLnktcy52eSx2PWYqZitnKmc7djxjKmMmJigwPT09ZiYmKHYrPShmPW8oKSkqZiksMD09PWcmJih2Kz0oZz1vKCkpKmcpLHY9KGMtKHY9TWF0aC5zcXJ0KHYpKSkvdippLHUudngrPShmKj12KSooYz0obCo9bCkvKG0rbCkpLHUudnkrPShnKj12KSpjLHMudngtPWYqKGM9MS1jKSxzLnZ5LT1nKmMpfX19ZnVuY3Rpb24gZih0KXtpZih0LmRhdGEpcmV0dXJuIHQucj1uW3QuZGF0YS5pbmRleF07Zm9yKHZhciBlPXQucj0wO2U8NDsrK2UpdFtlXSYmdFtlXS5yPnQuciYmKHQucj10W2VdLnIpfWZ1bmN0aW9uIGgoKXtpZihyKXt2YXIgZSxpLGE9ci5sZW5ndGg7Zm9yKG49bmV3IEFycmF5KGEpLGU9MDtlPGE7KytlKWk9cltlXSxuW2kuaW5kZXhdPSt0KGksZSxyKX19cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PWEobnVsbD09dD8xOit0KSksdS5pbml0aWFsaXplPWZ1bmN0aW9uKHQpe3I9dCxoKCl9LHUuaXRlcmF0aW9ucz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz0rdCx1KTpjfSx1LnN0cmVuZ3RoPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSt0LHUpOml9LHUucmFkaXVzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6YSgrZSksaCgpLHUpOnR9LHV9LHQuZm9yY2VMaW5rPWZ1bmN0aW9uKHQpe3ZhciBlLG4saSxzLGwsZj1jLGg9ZnVuY3Rpb24odCl7cmV0dXJuIDEvTWF0aC5taW4oc1t0LnNvdXJjZS5pbmRleF0sc1t0LnRhcmdldC5pbmRleF0pfSxwPWEoMzApLGQ9MTtmdW5jdGlvbiBtKHIpe2Zvcih2YXIgaT0wLGE9dC5sZW5ndGg7aTxkOysraSlmb3IodmFyIHMsYyx1LGYsaCxwLG0sZz0wO2c8YTsrK2cpYz0ocz10W2ddKS5zb3VyY2UsZj0odT1zLnRhcmdldCkueCt1LnZ4LWMueC1jLnZ4fHxvKCksaD11LnkrdS52eS1jLnktYy52eXx8bygpLGYqPXA9KChwPU1hdGguc3FydChmKmYraCpoKSktbltnXSkvcCpyKmVbZ10saCo9cCx1LnZ4LT1mKihtPWxbZ10pLHUudnktPWgqbSxjLnZ4Kz1mKihtPTEtbSksYy52eSs9aCptfWZ1bmN0aW9uIGcoKXtpZihpKXt2YXIgYSxvLGM9aS5sZW5ndGgsaD10Lmxlbmd0aCxwPXIubWFwKGksZik7Zm9yKGE9MCxzPW5ldyBBcnJheShjKTthPGg7KythKShvPXRbYV0pLmluZGV4PWEsIm9iamVjdCIhPXR5cGVvZiBvLnNvdXJjZSYmKG8uc291cmNlPXUocCxvLnNvdXJjZSkpLCJvYmplY3QiIT10eXBlb2Ygby50YXJnZXQmJihvLnRhcmdldD11KHAsby50YXJnZXQpKSxzW28uc291cmNlLmluZGV4XT0oc1tvLnNvdXJjZS5pbmRleF18fDApKzEsc1tvLnRhcmdldC5pbmRleF09KHNbby50YXJnZXQuaW5kZXhdfHwwKSsxO2ZvcihhPTAsbD1uZXcgQXJyYXkoaCk7YTxoOysrYSlvPXRbYV0sbFthXT1zW28uc291cmNlLmluZGV4XS8oc1tvLnNvdXJjZS5pbmRleF0rc1tvLnRhcmdldC5pbmRleF0pO2U9bmV3IEFycmF5KGgpLHYoKSxuPW5ldyBBcnJheShoKSx5KCl9fWZ1bmN0aW9uIHYoKXtpZihpKWZvcih2YXIgcj0wLG49dC5sZW5ndGg7cjxuOysrcillW3JdPStoKHRbcl0scix0KX1mdW5jdGlvbiB5KCl7aWYoaSlmb3IodmFyIGU9MCxyPXQubGVuZ3RoO2U8cjsrK2UpbltlXT0rcCh0W2VdLGUsdCl9cmV0dXJuIG51bGw9PXQmJih0PVtdKSxtLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7aT10LGcoKX0sbS5saW5rcz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1lLGcoKSxtKTp0fSxtLmlkPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmPXQsbSk6Zn0sbS5pdGVyYXRpb25zPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhkPSt0LG0pOmR9LG0uc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDphKCt0KSx2KCksbSk6aH0sbS5kaXN0YW5jZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocD0iZnVuY3Rpb24iPT10eXBlb2YgdD90OmEoK3QpLHkoKSxtKTpwfSxtfSx0LmZvcmNlTWFueUJvZHk9ZnVuY3Rpb24oKXt2YXIgdCxyLG4saSxzPWEoLTMwKSxsPTEsYz0xLzAsdT0uODE7ZnVuY3Rpb24gcChpKXt2YXIgYSxvPXQubGVuZ3RoLHM9ZS5xdWFkdHJlZSh0LGYsaCkudmlzaXRBZnRlcihtKTtmb3Iobj1pLGE9MDthPG87KythKXI9dFthXSxzLnZpc2l0KGcpfWZ1bmN0aW9uIGQoKXtpZih0KXt2YXIgZSxyLG49dC5sZW5ndGg7Zm9yKGk9bmV3IEFycmF5KG4pLGU9MDtlPG47KytlKXI9dFtlXSxpW3IuaW5kZXhdPStzKHIsZSx0KX19ZnVuY3Rpb24gbSh0KXt2YXIgZSxyLG4sYSxvLHM9MCxsPTA7aWYodC5sZW5ndGgpe2ZvcihuPWE9bz0wO288NDsrK28pKGU9dFtvXSkmJihyPU1hdGguYWJzKGUudmFsdWUpKSYmKHMrPWUudmFsdWUsbCs9cixuKz1yKmUueCxhKz1yKmUueSk7dC54PW4vbCx0Lnk9YS9sfWVsc2V7KGU9dCkueD1lLmRhdGEueCxlLnk9ZS5kYXRhLnk7ZG97cys9aVtlLmRhdGEuaW5kZXhdfXdoaWxlKGU9ZS5uZXh0KX10LnZhbHVlPXN9ZnVuY3Rpb24gZyh0LGUsYSxzKXtpZighdC52YWx1ZSlyZXR1cm4hMDt2YXIgZj10Lngtci54LGg9dC55LXIueSxwPXMtZSxkPWYqZitoKmg7aWYocCpwL3U8ZClyZXR1cm4gZDxjJiYoMD09PWYmJihkKz0oZj1vKCkpKmYpLDA9PT1oJiYoZCs9KGg9bygpKSpoKSxkPGwmJihkPU1hdGguc3FydChsKmQpKSxyLnZ4Kz1mKnQudmFsdWUqbi9kLHIudnkrPWgqdC52YWx1ZSpuL2QpLCEwO2lmKCEodC5sZW5ndGh8fGQ+PWMpKXsodC5kYXRhIT09cnx8dC5uZXh0KSYmKDA9PT1mJiYoZCs9KGY9bygpKSpmKSwwPT09aCYmKGQrPShoPW8oKSkqaCksZDxsJiYoZD1NYXRoLnNxcnQobCpkKSkpO2Rve3QuZGF0YSE9PXImJihwPWlbdC5kYXRhLmluZGV4XSpuL2Qsci52eCs9ZipwLHIudnkrPWgqcCl9d2hpbGUodD10Lm5leHQpfX1yZXR1cm4gcC5pbml0aWFsaXplPWZ1bmN0aW9uKGUpe3Q9ZSxkKCl9LHAuc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDphKCt0KSxkKCkscCk6c30scC5kaXN0YW5jZU1pbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD10KnQscCk6TWF0aC5zcXJ0KGwpfSxwLmRpc3RhbmNlTWF4PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPXQqdCxwKTpNYXRoLnNxcnQoYyl9LHAudGhldGE9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9dCp0LHApOk1hdGguc3FydCh1KX0scH0sdC5mb3JjZVJhZGlhbD1mdW5jdGlvbih0LGUscil7dmFyIG4saSxvLHM9YSguMSk7ZnVuY3Rpb24gbCh0KXtmb3IodmFyIGE9MCxzPW4ubGVuZ3RoO2E8czsrK2Epe3ZhciBsPW5bYV0sYz1sLngtZXx8MWUtNix1PWwueS1yfHwxZS02LGY9TWF0aC5zcXJ0KGMqYyt1KnUpLGg9KG9bYV0tZikqaVthXSp0L2Y7bC52eCs9YypoLGwudnkrPXUqaH19ZnVuY3Rpb24gYygpe2lmKG4pe3ZhciBlLHI9bi5sZW5ndGg7Zm9yKGk9bmV3IEFycmF5KHIpLG89bmV3IEFycmF5KHIpLGU9MDtlPHI7KytlKW9bZV09K3QobltlXSxlLG4pLGlbZV09aXNOYU4ob1tlXSk/MDorcyhuW2VdLGUsbil9fXJldHVybiJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD1hKCt0KSksbnVsbD09ZSYmKGU9MCksbnVsbD09ciYmKHI9MCksbC5pbml0aWFsaXplPWZ1bmN0aW9uKHQpe249dCxjKCl9LGwuc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDphKCt0KSxjKCksbCk6c30sbC5yYWRpdXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTphKCtlKSxjKCksbCk6dH0sbC54PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSt0LGwpOmV9LGwueT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0rdCxsKTpyfSxsfSx0LmZvcmNlU2ltdWxhdGlvbj1mdW5jdGlvbih0KXt2YXIgZSxhPTEsbz0uMDAxLHM9MS1NYXRoLnBvdyhvLDEvMzAwKSxsPTAsYz0uNix1PXIubWFwKCksZj1pLnRpbWVyKGQpLGg9bi5kaXNwYXRjaCgidGljayIsImVuZCIpO2Z1bmN0aW9uIGQoKXttKCksaC5jYWxsKCJ0aWNrIixlKSxhPG8mJihmLnN0b3AoKSxoLmNhbGwoImVuZCIsZSkpfWZ1bmN0aW9uIG0ocil7dmFyIG4saSxvPXQubGVuZ3RoO3ZvaWQgMD09PXImJihyPTEpO2Zvcih2YXIgZj0wO2Y8cjsrK2YpZm9yKGErPShsLWEpKnMsdS5lYWNoKChmdW5jdGlvbih0KXt0KGEpfSkpLG49MDtuPG87KytuKW51bGw9PShpPXRbbl0pLmZ4P2kueCs9aS52eCo9YzooaS54PWkuZngsaS52eD0wKSxudWxsPT1pLmZ5P2kueSs9aS52eSo9YzooaS55PWkuZnksaS52eT0wKTtyZXR1cm4gZX1mdW5jdGlvbiBnKCl7Zm9yKHZhciBlLHI9MCxuPXQubGVuZ3RoO3I8bjsrK3Ipe2lmKChlPXRbcl0pLmluZGV4PXIsbnVsbCE9ZS5meCYmKGUueD1lLmZ4KSxudWxsIT1lLmZ5JiYoZS55PWUuZnkpLGlzTmFOKGUueCl8fGlzTmFOKGUueSkpe3ZhciBpPTEwKk1hdGguc3FydChyKSxhPXIqcDtlLng9aSpNYXRoLmNvcyhhKSxlLnk9aSpNYXRoLnNpbihhKX0oaXNOYU4oZS52eCl8fGlzTmFOKGUudnkpKSYmKGUudng9ZS52eT0wKX19ZnVuY3Rpb24gdihlKXtyZXR1cm4gZS5pbml0aWFsaXplJiZlLmluaXRpYWxpemUodCksZX1yZXR1cm4gbnVsbD09dCYmKHQ9W10pLGcoKSxlPXt0aWNrOm0scmVzdGFydDpmdW5jdGlvbigpe3JldHVybiBmLnJlc3RhcnQoZCksZX0sc3RvcDpmdW5jdGlvbigpe3JldHVybiBmLnN0b3AoKSxlfSxub2RlczpmdW5jdGlvbihyKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1yLGcoKSx1LmVhY2godiksZSk6dH0sYWxwaGE6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9K3QsZSk6YX0sYWxwaGFNaW46ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89K3QsZSk6b30sYWxwaGFEZWNheTpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz0rdCxlKTorc30sYWxwaGFUYXJnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGw9K3QsZSk6bH0sdmVsb2NpdHlEZWNheTpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz0xLXQsZSk6MS1jfSxmb3JjZTpmdW5jdGlvbih0LHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/KG51bGw9PXI/dS5yZW1vdmUodCk6dS5zZXQodCx2KHIpKSxlKTp1LmdldCh0KX0sZmluZDpmdW5jdGlvbihlLHIsbil7dmFyIGksYSxvLHMsbCxjPTAsdT10Lmxlbmd0aDtmb3IobnVsbD09bj9uPTEvMDpuKj1uLGM9MDtjPHU7KytjKShvPShpPWUtKHM9dFtjXSkueCkqaSsoYT1yLXMueSkqYSk8biYmKGw9cyxuPW8pO3JldHVybiBsfSxvbjpmdW5jdGlvbih0LHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/KGgub24odCxyKSxlKTpoLm9uKHQpfX19LHQuZm9yY2VYPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixpPWEoLjEpO2Z1bmN0aW9uIG8odCl7Zm9yKHZhciBpLGE9MCxvPWUubGVuZ3RoO2E8bzsrK2EpKGk9ZVthXSkudngrPShuW2FdLWkueCkqclthXSp0fWZ1bmN0aW9uIHMoKXtpZihlKXt2YXIgYSxvPWUubGVuZ3RoO2ZvcihyPW5ldyBBcnJheShvKSxuPW5ldyBBcnJheShvKSxhPTA7YTxvOysrYSlyW2FdPWlzTmFOKG5bYV09K3QoZVthXSxhLGUpKT8wOitpKGVbYV0sYSxlKX19cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PWEobnVsbD09dD8wOit0KSksby5pbml0aWFsaXplPWZ1bmN0aW9uKHQpe2U9dCxzKCl9LG8uc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDphKCt0KSxzKCksbyk6aX0sby54PWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6YSgrZSkscygpLG8pOnR9LG99LHQuZm9yY2VZPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixpPWEoLjEpO2Z1bmN0aW9uIG8odCl7Zm9yKHZhciBpLGE9MCxvPWUubGVuZ3RoO2E8bzsrK2EpKGk9ZVthXSkudnkrPShuW2FdLWkueSkqclthXSp0fWZ1bmN0aW9uIHMoKXtpZihlKXt2YXIgYSxvPWUubGVuZ3RoO2ZvcihyPW5ldyBBcnJheShvKSxuPW5ldyBBcnJheShvKSxhPTA7YTxvOysrYSlyW2FdPWlzTmFOKG5bYV09K3QoZVthXSxhLGUpKT8wOitpKGVbYV0sYSxlKX19cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PWEobnVsbD09dD8wOit0KSksby5pbml0aWFsaXplPWZ1bmN0aW9uKHQpe2U9dCxzKCl9LG8uc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDphKCt0KSxzKCksbyk6aX0sby55PWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6YSgrZSkscygpLG8pOnR9LG99LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0pKX0seyJkMy1jb2xsZWN0aW9uIjoxMDgsImQzLWRpc3BhdGNoIjoxMTAsImQzLXF1YWR0cmVlIjoxMTgsImQzLXRpbWVyIjoxMjN9XSwxMTI6W2Z1bmN0aW9uKHQsZSxyKXshZnVuY3Rpb24odCxuKXsib2JqZWN0Ij09dHlwZW9mIHImJnZvaWQgMCE9PWU/bihyKTpuKCh0PSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOnR8fHNlbGYpLmQzPXQuZDN8fHt9KX0odGhpcywoZnVuY3Rpb24odCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGUodCxlKXtpZigocj0odD1lP3QudG9FeHBvbmVudGlhbChlLTEpOnQudG9FeHBvbmVudGlhbCgpKS5pbmRleE9mKCJlIikpPDApcmV0dXJuIG51bGw7dmFyIHIsbj10LnNsaWNlKDAscik7cmV0dXJuW24ubGVuZ3RoPjE/blswXStuLnNsaWNlKDIpOm4sK3Quc2xpY2UocisxKV19ZnVuY3Rpb24gcih0KXtyZXR1cm4odD1lKE1hdGguYWJzKHQpKSk/dFsxXTpOYU59dmFyIG4saT0vXig/OiguKT8oWzw+PV5dKSk/KFsrXC0oIF0pPyhbJCNdKT8oMCk/KFxkKyk/KCwpPyhcLlxkKyk/KH4pPyhbYS16JV0pPyQvaTtmdW5jdGlvbiBhKHQpe2lmKCEoZT1pLmV4ZWModCkpKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBmb3JtYXQ6ICIrdCk7dmFyIGU7cmV0dXJuIG5ldyBvKHtmaWxsOmVbMV0sYWxpZ246ZVsyXSxzaWduOmVbM10sc3ltYm9sOmVbNF0semVybzplWzVdLHdpZHRoOmVbNl0sY29tbWE6ZVs3XSxwcmVjaXNpb246ZVs4XSYmZVs4XS5zbGljZSgxKSx0cmltOmVbOV0sdHlwZTplWzEwXX0pfWZ1bmN0aW9uIG8odCl7dGhpcy5maWxsPXZvaWQgMD09PXQuZmlsbD8iICI6dC5maWxsKyIiLHRoaXMuYWxpZ249dm9pZCAwPT09dC5hbGlnbj8iPiI6dC5hbGlnbisiIix0aGlzLnNpZ249dm9pZCAwPT09dC5zaWduPyItIjp0LnNpZ24rIiIsdGhpcy5zeW1ib2w9dm9pZCAwPT09dC5zeW1ib2w/IiI6dC5zeW1ib2wrIiIsdGhpcy56ZXJvPSEhdC56ZXJvLHRoaXMud2lkdGg9dm9pZCAwPT09dC53aWR0aD92b2lkIDA6K3Qud2lkdGgsdGhpcy5jb21tYT0hIXQuY29tbWEsdGhpcy5wcmVjaXNpb249dm9pZCAwPT09dC5wcmVjaXNpb24/dm9pZCAwOit0LnByZWNpc2lvbix0aGlzLnRyaW09ISF0LnRyaW0sdGhpcy50eXBlPXZvaWQgMD09PXQudHlwZT8iIjp0LnR5cGUrIiJ9ZnVuY3Rpb24gcyh0LHIpe3ZhciBuPWUodCxyKTtpZighbilyZXR1cm4gdCsiIjt2YXIgaT1uWzBdLGE9blsxXTtyZXR1cm4gYTwwPyIwLiIrbmV3IEFycmF5KC1hKS5qb2luKCIwIikraTppLmxlbmd0aD5hKzE/aS5zbGljZSgwLGErMSkrIi4iK2kuc2xpY2UoYSsxKTppK25ldyBBcnJheShhLWkubGVuZ3RoKzIpLmpvaW4oIjAiKX1hLnByb3RvdHlwZT1vLnByb3RvdHlwZSxvLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZpbGwrdGhpcy5hbGlnbit0aGlzLnNpZ24rdGhpcy5zeW1ib2wrKHRoaXMuemVybz8iMCI6IiIpKyh2b2lkIDA9PT10aGlzLndpZHRoPyIiOk1hdGgubWF4KDEsMHx0aGlzLndpZHRoKSkrKHRoaXMuY29tbWE/IiwiOiIiKSsodm9pZCAwPT09dGhpcy5wcmVjaXNpb24/IiI6Ii4iK01hdGgubWF4KDAsMHx0aGlzLnByZWNpc2lvbikpKyh0aGlzLnRyaW0/In4iOiIiKSt0aGlzLnR5cGV9O3ZhciBsPXsiJSI6ZnVuY3Rpb24odCxlKXtyZXR1cm4oMTAwKnQpLnRvRml4ZWQoZSl9LGI6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQodCkudG9TdHJpbmcoMil9LGM6ZnVuY3Rpb24odCl7cmV0dXJuIHQrIiJ9LGQ6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguYWJzKHQ9TWF0aC5yb3VuZCh0KSk+PTFlMjE/dC50b0xvY2FsZVN0cmluZygiZW4iKS5yZXBsYWNlKC8sL2csIiIpOnQudG9TdHJpbmcoMTApfSxlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQudG9FeHBvbmVudGlhbChlKX0sZjpmdW5jdGlvbih0LGUpe3JldHVybiB0LnRvRml4ZWQoZSl9LGc6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC50b1ByZWNpc2lvbihlKX0sbzpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KS50b1N0cmluZyg4KX0scDpmdW5jdGlvbih0LGUpe3JldHVybiBzKDEwMCp0LGUpfSxyOnMsczpmdW5jdGlvbih0LHIpe3ZhciBpPWUodCxyKTtpZighaSlyZXR1cm4gdCsiIjt2YXIgYT1pWzBdLG89aVsxXSxzPW8tKG49MypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3Ioby8zKSkpKSsxLGw9YS5sZW5ndGg7cmV0dXJuIHM9PT1sP2E6cz5sP2ErbmV3IEFycmF5KHMtbCsxKS5qb2luKCIwIik6cz4wP2Euc2xpY2UoMCxzKSsiLiIrYS5zbGljZShzKToiMC4iK25ldyBBcnJheSgxLXMpLmpvaW4oIjAiKStlKHQsTWF0aC5tYXgoMCxyK3MtMSkpWzBdfSxYOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpfSx4OmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDE2KX19O2Z1bmN0aW9uIGModCl7cmV0dXJuIHR9dmFyIHUsZj1BcnJheS5wcm90b3R5cGUubWFwLGg9WyJ5IiwieiIsImEiLCJmIiwicCIsIm4iLCJceGI1IiwibSIsIiIsImsiLCJNIiwiRyIsIlQiLCJQIiwiRSIsIloiLCJZIl07ZnVuY3Rpb24gcCh0KXt2YXIgZSxpLG89dm9pZCAwPT09dC5ncm91cGluZ3x8dm9pZCAwPT09dC50aG91c2FuZHM/YzooZT1mLmNhbGwodC5ncm91cGluZyxOdW1iZXIpLGk9dC50aG91c2FuZHMrIiIsZnVuY3Rpb24odCxyKXtmb3IodmFyIG49dC5sZW5ndGgsYT1bXSxvPTAscz1lWzBdLGw9MDtuPjAmJnM+MCYmKGwrcysxPnImJihzPU1hdGgubWF4KDEsci1sKSksYS5wdXNoKHQuc3Vic3RyaW5nKG4tPXMsbitzKSksISgobCs9cysxKT5yKSk7KXM9ZVtvPShvKzEpJWUubGVuZ3RoXTtyZXR1cm4gYS5yZXZlcnNlKCkuam9pbihpKX0pLHM9dm9pZCAwPT09dC5jdXJyZW5jeT8iIjp0LmN1cnJlbmN5WzBdKyIiLHU9dm9pZCAwPT09dC5jdXJyZW5jeT8iIjp0LmN1cnJlbmN5WzFdKyIiLHA9dm9pZCAwPT09dC5kZWNpbWFsPyIuIjp0LmRlY2ltYWwrIiIsZD12b2lkIDA9PT10Lm51bWVyYWxzP2M6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoL1swLTldL2csKGZ1bmN0aW9uKGUpe3JldHVybiB0WytlXX0pKX19KGYuY2FsbCh0Lm51bWVyYWxzLFN0cmluZykpLG09dm9pZCAwPT09dC5wZXJjZW50PyIlIjp0LnBlcmNlbnQrIiIsZz12b2lkIDA9PT10Lm1pbnVzPyItIjp0Lm1pbnVzKyIiLHY9dm9pZCAwPT09dC5uYW4/Ik5hTiI6dC5uYW4rIiI7ZnVuY3Rpb24geSh0KXt2YXIgZT0odD1hKHQpKS5maWxsLHI9dC5hbGlnbixpPXQuc2lnbixjPXQuc3ltYm9sLGY9dC56ZXJvLHk9dC53aWR0aCx4PXQuY29tbWEsYj10LnByZWNpc2lvbixfPXQudHJpbSx3PXQudHlwZTsibiI9PT13Pyh4PSEwLHc9ImciKTpsW3ddfHwodm9pZCAwPT09YiYmKGI9MTIpLF89ITAsdz0iZyIpLChmfHwiMCI9PT1lJiYiPSI9PT1yKSYmKGY9ITAsZT0iMCIscj0iPSIpO3ZhciBUPSIkIj09PWM/czoiIyI9PT1jJiYvW2JveFhdLy50ZXN0KHcpPyIwIit3LnRvTG93ZXJDYXNlKCk6IiIsaz0iJCI9PT1jP3U6L1slcF0vLnRlc3Qodyk/bToiIixBPWxbd10sTT0vW2RlZmdwcnMlXS8udGVzdCh3KTtmdW5jdGlvbiBTKHQpe3ZhciBhLHMsbCxjPVQsdT1rO2lmKCJjIj09PXcpdT1BKHQpK3UsdD0iIjtlbHNle3ZhciBtPSh0PSt0KTwwfHwxL3Q8MDtpZih0PWlzTmFOKHQpP3Y6QShNYXRoLmFicyh0KSxiKSxfJiYodD1mdW5jdGlvbih0KXt0OmZvcih2YXIgZSxyPXQubGVuZ3RoLG49MSxpPS0xO248cjsrK24pc3dpdGNoKHRbbl0pe2Nhc2UiLiI6aT1lPW47YnJlYWs7Y2FzZSIwIjowPT09aSYmKGk9biksZT1uO2JyZWFrO2RlZmF1bHQ6aWYoISt0W25dKWJyZWFrIHQ7aT4wJiYoaT0wKX1yZXR1cm4gaT4wP3Quc2xpY2UoMCxpKSt0LnNsaWNlKGUrMSk6dH0odCkpLG0mJjA9PSt0JiYiKyIhPT1pJiYobT0hMSksYz0obT8iKCI9PT1pP2k6ZzoiLSI9PT1pfHwiKCI9PT1pPyIiOmkpK2MsdT0oInMiPT09dz9oWzgrbi8zXToiIikrdSsobSYmIigiPT09aT8iKSI6IiIpLE0pZm9yKGE9LTEscz10Lmxlbmd0aDsrK2E8czspaWYoNDg+KGw9dC5jaGFyQ29kZUF0KGEpKXx8bD41Nyl7dT0oNDY9PT1sP3ArdC5zbGljZShhKzEpOnQuc2xpY2UoYSkpK3UsdD10LnNsaWNlKDAsYSk7YnJlYWt9fXgmJiFmJiYodD1vKHQsMS8wKSk7dmFyIFM9Yy5sZW5ndGgrdC5sZW5ndGgrdS5sZW5ndGgsRT1TPHk/bmV3IEFycmF5KHktUysxKS5qb2luKGUpOiIiO3N3aXRjaCh4JiZmJiYodD1vKEUrdCxFLmxlbmd0aD95LXUubGVuZ3RoOjEvMCksRT0iIikscil7Y2FzZSI8Ijp0PWMrdCt1K0U7YnJlYWs7Y2FzZSI9Ijp0PWMrRSt0K3U7YnJlYWs7Y2FzZSJeIjp0PUUuc2xpY2UoMCxTPUUubGVuZ3RoPj4xKStjK3QrdStFLnNsaWNlKFMpO2JyZWFrO2RlZmF1bHQ6dD1FK2MrdCt1fXJldHVybiBkKHQpfXJldHVybiBiPXZvaWQgMD09PWI/NjovW2dwcnNdLy50ZXN0KHcpP01hdGgubWF4KDEsTWF0aC5taW4oMjEsYikpOk1hdGgubWF4KDAsTWF0aC5taW4oMjAsYikpLFMudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdCsiIn0sU31yZXR1cm57Zm9ybWF0OnksZm9ybWF0UHJlZml4OmZ1bmN0aW9uKHQsZSl7dmFyIG49eSgoKHQ9YSh0KSkudHlwZT0iZiIsdCkpLGk9MypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IocihlKS8zKSkpLG89TWF0aC5wb3coMTAsLWkpLHM9aFs4K2kvM107cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBuKG8qdCkrc319fX1mdW5jdGlvbiBkKGUpe3JldHVybiB1PXAoZSksdC5mb3JtYXQ9dS5mb3JtYXQsdC5mb3JtYXRQcmVmaXg9dS5mb3JtYXRQcmVmaXgsdX1kKHtkZWNpbWFsOiIuIix0aG91c2FuZHM6IiwiLGdyb3VwaW5nOlszXSxjdXJyZW5jeTpbIiQiLCIiXSxtaW51czoiLSJ9KSx0LkZvcm1hdFNwZWNpZmllcj1vLHQuZm9ybWF0RGVmYXVsdExvY2FsZT1kLHQuZm9ybWF0TG9jYWxlPXAsdC5mb3JtYXRTcGVjaWZpZXI9YSx0LnByZWNpc2lvbkZpeGVkPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLm1heCgwLC1yKE1hdGguYWJzKHQpKSl9LHQucHJlY2lzaW9uUHJlZml4PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIE1hdGgubWF4KDAsMypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IocihlKS8zKSkpLXIoTWF0aC5hYnModCkpKX0sdC5wcmVjaXNpb25Sb3VuZD1mdW5jdGlvbih0LGUpe3JldHVybiB0PU1hdGguYWJzKHQpLGU9TWF0aC5hYnMoZSktdCxNYXRoLm1heCgwLHIoZSktcih0KSkrMX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSkpfSx7fV0sMTEzOltmdW5jdGlvbih0LGUscil7IWZ1bmN0aW9uKG4saSl7Im9iamVjdCI9PXR5cGVvZiByJiZ2b2lkIDAhPT1lP2kocix0KCJkMy1nZW8iKSx0KCJkMy1hcnJheSIpKTppKG4uZDM9bi5kM3x8e30sbi5kMyxuLmQzKX0odGhpcywoZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1NYXRoLmFicyxpPU1hdGguYXRhbixhPU1hdGguYXRhbjIsbz1NYXRoLmNvcyxzPU1hdGguZXhwLGw9TWF0aC5mbG9vcixjPU1hdGgubG9nLHU9TWF0aC5tYXgsZj1NYXRoLm1pbixoPU1hdGgucG93LHA9TWF0aC5yb3VuZCxkPU1hdGguc2lnbnx8ZnVuY3Rpb24odCl7cmV0dXJuIHQ+MD8xOnQ8MD8tMTowfSxtPU1hdGguc2luLGc9TWF0aC50YW4sdj0xZS02LHk9TWF0aC5QSSx4PXkvMixiPXkvNCxfPU1hdGguU1FSVDFfMix3PUwoMiksVD1MKHkpLGs9Mip5LEE9MTgwL3ksTT15LzE4MDtmdW5jdGlvbiBTKHQpe3JldHVybiB0PjE/eDp0PC0xPy14Ok1hdGguYXNpbih0KX1mdW5jdGlvbiBFKHQpe3JldHVybiB0PjE/MDp0PC0xP3k6TWF0aC5hY29zKHQpfWZ1bmN0aW9uIEwodCl7cmV0dXJuIHQ+MD9NYXRoLnNxcnQodCk6MH1mdW5jdGlvbiBDKHQpe3JldHVybihzKHQpLXMoLXQpKS8yfWZ1bmN0aW9uIFAodCl7cmV0dXJuKHModCkrcygtdCkpLzJ9ZnVuY3Rpb24gSSh0KXt2YXIgZT1nKHQvMikscj0yKmMobyh0LzIpKS8oZSplKTtmdW5jdGlvbiBpKHQsZSl7dmFyIG49byh0KSxpPW8oZSksYT1tKGUpLHM9aSpuLGw9LSgoMS1zP2MoKDErcykvMikvKDEtcyk6LS41KStyLygxK3MpKTtyZXR1cm5bbCppKm0odCksbCphXX1yZXR1cm4gaS5pbnZlcnQ9ZnVuY3Rpb24oZSxpKXt2YXIgcyxsPUwoZSplK2kqaSksdT0tdC8yLGY9NTA7aWYoIWwpcmV0dXJuWzAsMF07ZG97dmFyIGg9dS8yLHA9byhoKSxkPW0oaCksZz1kL3AseT0tYyhuKHApKTt1LT1zPSgyL2cqeS1yKmctbCkvKC15LyhkKmQpKzEtci8oMipwKnApKSoocDwwPy43OjEpfXdoaWxlKG4ocyk+diYmLS1mPjApO3ZhciB4PW0odSk7cmV0dXJuW2EoZSp4LGwqbyh1KSksUyhpKngvbCldfSxpfWZ1bmN0aW9uIE8odCxlKXt2YXIgcj1vKGUpLG49ZnVuY3Rpb24odCl7cmV0dXJuIHQ/dC9NYXRoLnNpbih0KToxfShFKHIqbyh0Lz0yKSkpO3JldHVyblsyKnIqbSh0KSpuLG0oZSkqbl19ZnVuY3Rpb24geih0KXt2YXIgZT1tKHQpLHI9byh0KSxpPXQ+PTA/MTotMSxzPWcoaSp0KSxsPSgxK2UtcikvMjtmdW5jdGlvbiBjKHQsbil7dmFyIGM9byhuKSx1PW8odC89Mik7cmV0dXJuWygxK2MpKm0odCksKGkqbj4tYSh1LHMpLS4wMDE/MDoxMCotaSkrbCttKG4pKnItKDErYykqZSp1XX1yZXR1cm4gYy5pbnZlcnQ9ZnVuY3Rpb24odCxjKXt2YXIgdT0wLGY9MCxoPTUwO2Rve3ZhciBwPW8odSksZD1tKHUpLGc9byhmKSx5PW0oZikseD0xK2csYj14KmQtdCxfPWwreSpyLXgqZSpwLWMsdz14KnAvMixUPS1kKnksaz1lKngqZC8yLEE9cipnK2UqcCp5LE09VCprLUEqdyxTPShfKlQtYipBKS9NLzIsRT0oYiprLV8qdykvTTtuKEUpPjImJihFLz0yKSx1LT1TLGYtPUV9d2hpbGUoKG4oUyk+dnx8bihFKT52KSYmLS1oPjApO3JldHVybiBpKmY+LWEobyh1KSxzKS0uMDAxP1syKnUsZl06bnVsbH0sY31mdW5jdGlvbiBEKHQsZSl7dmFyIHI9ZyhlLzIpLG49TCgxLXIqciksaT0xK24qbyh0Lz0yKSxhPW0odCkqbi9pLHM9ci9pLGw9YSphLGM9cypzO3JldHVybls0LzMqYSooMytsLTMqYyksNC8zKnMqKDMrMypsLWMpXX1PLmludmVydD1mdW5jdGlvbih0LGUpe2lmKCEodCp0KzQqZSplPnkqeSt2KSl7dmFyIHI9dCxpPWUsYT0yNTtkb3t2YXIgcyxsPW0ociksYz1tKHIvMiksdT1vKHIvMiksZj1tKGkpLGg9byhpKSxwPW0oMippKSxkPWYqZixnPWgqaCx4PWMqYyxiPTEtZyp1KnUsXz1iP0UoaCp1KSpMKHM9MS9iKTpzPTAsdz0yKl8qaCpjLXQsVD1fKmYtZSxrPXMqKGcqeCtfKmgqdSpkKSxBPXMqKC41KmwqcC0yKl8qZipjKSxNPS4yNSpzKihwKmMtXypmKmcqbCksUz1zKihkKnUrXyp4KmgpLEM9QSpNLVMqaztpZighQylicmVhazt2YXIgUD0oVCpBLXcqUykvQyxJPSh3Kk0tVCprKS9DO3ItPVAsaS09SX13aGlsZSgobihQKT52fHxuKEkpPnYpJiYtLWE+MCk7cmV0dXJuW3IsaV19fSxELmludmVydD1mdW5jdGlvbih0LGUpe2lmKGUqPTMvOCwhKHQqPTMvOCkmJm4oZSk+MSlyZXR1cm4gbnVsbDt2YXIgcj0xK3QqdCtlKmUsaT1MKChyLUwocipyLTQqZSplKSkvMikscz1TKGkpLzMsbD1pP2Z1bmN0aW9uKHQpe3JldHVybiBjKHQrTCh0KnQtMSkpfShuKGUvaSkpLzM6ZnVuY3Rpb24odCl7cmV0dXJuIGModCtMKHQqdCsxKSl9KG4odCkpLzMsdT1vKHMpLGY9UChsKSxoPWYqZi11KnU7cmV0dXJuWzIqZCh0KSphKEMobCkqdSwuMjUtaCksMipkKGUpKmEoZiptKHMpLC4yNStoKV19O3ZhciBSPUwoOCksRj1jKDErdyk7ZnVuY3Rpb24gQih0LGUpe3ZhciByPW4oZSk7cmV0dXJuIHI8Yj9bdCxjKGcoYitlLzIpKV06W3QqbyhyKSooMip3LTEvbShyKSksZChlKSooMip3KihyLWIpLWMoZyhyLzIpKSldfWZ1bmN0aW9uIE4odCl7dmFyIHI9Mip5L3Q7ZnVuY3Rpb24gcyh0LGkpe3ZhciBzPWUuZ2VvQXppbXV0aGFsRXF1aWRpc3RhbnRSYXcodCxpKTtpZihuKHQpPngpe3ZhciBsPWEoc1sxXSxzWzBdKSxjPUwoc1swXSpzWzBdK3NbMV0qc1sxXSksdT1yKnAoKGwteCkvcikreCxmPWEobShsLT11KSwyLW8obCkpO2w9dStTKHkvYyptKGYpKS1mLHNbMF09YypvKGwpLHNbMV09YyptKGwpfXJldHVybiBzfXJldHVybiBzLmludmVydD1mdW5jdGlvbih0LG4pe3ZhciBzPUwodCp0K24qbik7aWYocz54KXt2YXIgbD1hKG4sdCksYz1yKnAoKGwteCkvcikreCx1PWw+Yz8tMToxLGY9cypvKGMtbCksaD0xL2codSpFKChmLXkpL0woeSooeS0yKmYpK3MqcykpKTtsPWMrMippKChoK3UqTChoKmgtMykpLzMpLHQ9cypvKGwpLG49cyptKGwpfXJldHVybiBlLmdlb0F6aW11dGhhbEVxdWlkaXN0YW50UmF3LmludmVydCh0LG4pfSxzfWZ1bmN0aW9uIGoodCxyKXtpZihhcmd1bWVudHMubGVuZ3RoPDImJihyPXQpLDE9PT1yKXJldHVybiBlLmdlb0F6aW11dGhhbEVxdWFsQXJlYVJhdztpZihyPT09MS8wKXJldHVybiBVO2Z1bmN0aW9uIG4obixpKXt2YXIgYT1lLmdlb0F6aW11dGhhbEVxdWFsQXJlYVJhdyhuL3IsaSk7cmV0dXJuIGFbMF0qPXQsYX1yZXR1cm4gbi5pbnZlcnQ9ZnVuY3Rpb24obixpKXt2YXIgYT1lLmdlb0F6aW11dGhhbEVxdWFsQXJlYVJhdy5pbnZlcnQobi90LGkpO3JldHVybiBhWzBdKj1yLGF9LG59ZnVuY3Rpb24gVSh0LGUpe3JldHVyblt0Km8oZSkvbyhlLz0yKSwyKm0oZSldfWZ1bmN0aW9uIFYodCxlLHIpe3ZhciBpLGEsbyxzPTEwMDtyPXZvaWQgMD09PXI/MDorcixlPStlO2RveyhhPXQocikpPT09KG89dChyK3YpKSYmKG89YSt2KSxyLT1pPS0xKnYqKGEtZSkvKGEtbyl9d2hpbGUocy0tID4wJiZuKGkpPnYpO3JldHVybiBzPDA/TmFOOnJ9ZnVuY3Rpb24gSCh0LGUscil7cmV0dXJuIHZvaWQgMD09PWUmJihlPTQwKSx2b2lkIDA9PT1yJiYocj0xZS0xMiksZnVuY3Rpb24oaSxhLG8scyl7dmFyIGwsYyx1O289dm9pZCAwPT09bz8wOitvLHM9dm9pZCAwPT09cz8wOitzO2Zvcih2YXIgZj0wO2Y8ZTtmKyspe3ZhciBoPXQobyxzKSxwPWhbMF0taSxkPWhbMV0tYTtpZihuKHApPHImJm4oZCk8cilicmVhazt2YXIgbT1wKnArZCpkO2lmKG0+bClvLT1jLz0yLHMtPXUvPTI7ZWxzZXtsPW07dmFyIGc9KG8+MD8tMToxKSpyLHY9KHM+MD8tMToxKSpyLHk9dChvK2cscykseD10KG8scyt2KSxiPSh5WzBdLWhbMF0pL2csXz0oeVsxXS1oWzFdKS9nLHc9KHhbMF0taFswXSkvdixUPSh4WzFdLWhbMV0pL3Ysaz1UKmItXyp3LEE9KG4oayk8LjU/LjU6MSkvaztpZihvKz1jPShkKnctcCpUKSpBLHMrPXU9KHAqXy1kKmIpKkEsbihjKTxyJiZuKHUpPHIpYnJlYWt9fXJldHVybltvLHNdfX1mdW5jdGlvbiBxKCl7dmFyIHQ9aigxLjY4LDIpO2Z1bmN0aW9uIGUoZSxyKXtpZihlK3I8LTEuNCl7dmFyIG49KGUtcisxLjYpKihlK3IrMS40KS84O2UrPW4sci09LjgqbiptKHIreS8yKX12YXIgaT10KGUsciksYT0oMS1vKGUqcikpLzEyO3JldHVybiBpWzFdPDAmJihpWzBdKj0xK2EpLGlbMV0+MCYmKGlbMV0qPTErYS8xLjUqaVswXSppWzBdKSxpfXJldHVybiBlLmludmVydD1IKGUpLGV9ZnVuY3Rpb24gRyh0LGUpe3ZhciByLGk9dCptKGUpLGE9MzA7ZG97ZS09cj0oZSttKGUpLWkpLygxK28oZSkpfXdoaWxlKG4ocik+diYmLS1hPjApO3JldHVybiBlLzJ9ZnVuY3Rpb24gWSh0LGUscil7ZnVuY3Rpb24gbihuLGkpe3JldHVyblt0Km4qbyhpPUcocixpKSksZSptKGkpXX1yZXR1cm4gbi5pbnZlcnQ9ZnVuY3Rpb24obixpKXtyZXR1cm4gaT1TKGkvZSksW24vKHQqbyhpKSksUygoMippK20oMippKSkvcildfSxufUIuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7aWYoKGE9bihlKSk8RilyZXR1cm5bdCwyKmkocyhlKSkteF07dmFyIHIsYSxsPWIsdT0yNTtkb3t2YXIgZj1vKGwvMiksaD1nKGwvMik7bC09cj0oUioobC1iKS1jKGgpLWEpLyhSLWYqZi8oMipoKSl9d2hpbGUobihyKT4xZS0xMiYmLS11PjApO3JldHVyblt0LyhvKGwpKihSLTEvbShsKSkpLGQoZSkqbF19LFUuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9MipTKGUvMik7cmV0dXJuW3QqbyhyLzIpL28ocikscl19O3ZhciBXPVkody94LHcseSk7dmFyIFg9Mi4wMDI3NixaPTEuMTEwNzI7ZnVuY3Rpb24gSih0LGUpe3ZhciByPUcoeSxlKTtyZXR1cm5bWCp0LygxL28oZSkrWi9vKHIpKSwoZSt3Km0ocikpL1hdfWZ1bmN0aW9uIEsodCl7dmFyIHI9MCxuPWUuZ2VvUHJvamVjdGlvbk11dGF0b3IodCksaT1uKHIpO3JldHVybiBpLnBhcmFsbGVsPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP24ocj10Kk0pOnIqQX0saX1mdW5jdGlvbiBRKHQsZSl7cmV0dXJuW3QqbyhlKSxlXX1mdW5jdGlvbiAkKHQpe2lmKCF0KXJldHVybiBRO3ZhciBlPTEvZyh0KTtmdW5jdGlvbiByKHIsbil7dmFyIGk9ZSt0LW4sYT1pP3IqbyhuKS9pOmk7cmV0dXJuW2kqbShhKSxlLWkqbyhhKV19cmV0dXJuIHIuaW52ZXJ0PWZ1bmN0aW9uKHIsbil7dmFyIGk9TChyKnIrKG49ZS1uKSpuKSxzPWUrdC1pO3JldHVybltpL28ocykqYShyLG4pLHNdfSxyfWZ1bmN0aW9uIHR0KHQpe2Z1bmN0aW9uIGUoZSxyKXt2YXIgbj14LXIsaT1uP2UqdCptKG4pL246bjtyZXR1cm5bbiptKGkpL3QseC1uKm8oaSldfXJldHVybiBlLmludmVydD1mdW5jdGlvbihlLHIpe3ZhciBuPWUqdCxpPXgtcixvPUwobipuK2kqaSkscz1hKG4saSk7cmV0dXJuWyhvP28vbShvKToxKSpzL3QseC1vXX0sZX1KLmludmVydD1mdW5jdGlvbih0LGUpe3ZhciByLGksYT1YKmUscz1lPDA/LWI6YixsPTI1O2Rve2k9YS13Km0ocykscy09cj0obSgyKnMpKzIqcy15Km0oaSkpLygyKm8oMipzKSsyK3kqbyhpKSp3Km8ocykpfXdoaWxlKG4ocik+diYmLS1sPjApO3JldHVybiBpPWEtdyptKHMpLFt0KigxL28oaSkrWi9vKHMpKS9YLGldfSxRLmludmVydD1mdW5jdGlvbih0LGUpe3JldHVyblt0L28oZSksZV19O3ZhciBldD1ZKDEsNC95LHkpO2Z1bmN0aW9uIHJ0KHQsZSxyLGkscyxsKXt2YXIgYyx1PW8obCk7aWYobih0KT4xfHxuKGwpPjEpYz1FKHIqcytlKmkqdSk7ZWxzZXt2YXIgZj1tKHQvMiksaD1tKGwvMik7Yz0yKlMoTChmKmYrZSppKmgqaCkpfXJldHVybiBuKGMpPnY/W2MsYShpKm0obCksZSpzLXIqaSp1KV06WzAsMF19ZnVuY3Rpb24gbnQodCxlLHIpe3JldHVybiBFKCh0KnQrZSplLXIqcikvKDIqdCplKSl9ZnVuY3Rpb24gaXQodCl7cmV0dXJuIHQtMip5KmwoKHQreSkvKDIqeSkpfWZ1bmN0aW9uIGF0KHQsZSxyKXtmb3IodmFyIG4saT1bW3RbMF0sdFsxXSxtKHRbMV0pLG8odFsxXSldLFtlWzBdLGVbMV0sbShlWzFdKSxvKGVbMV0pXSxbclswXSxyWzFdLG0oclsxXSksbyhyWzFdKV1dLGE9aVsyXSxzPTA7czwzOysrcyxhPW4pbj1pW3NdLGEudj1ydChuWzFdLWFbMV0sYVszXSxhWzJdLG5bM10sblsyXSxuWzBdLWFbMF0pLGEucG9pbnQ9WzAsMF07dmFyIGw9bnQoaVswXS52WzBdLGlbMl0udlswXSxpWzFdLnZbMF0pLGM9bnQoaVswXS52WzBdLGlbMV0udlswXSxpWzJdLnZbMF0pLHU9eS1sO2lbMl0ucG9pbnRbMV09MCxpWzBdLnBvaW50WzBdPS0oaVsxXS5wb2ludFswXT1pWzBdLnZbMF0vMik7dmFyIGY9W2lbMl0ucG9pbnRbMF09aVswXS5wb2ludFswXStpWzJdLnZbMF0qbyhsKSwyKihpWzBdLnBvaW50WzFdPWlbMV0ucG9pbnRbMV09aVsyXS52WzBdKm0obCkpXTtyZXR1cm4gZnVuY3Rpb24odCxlKXt2YXIgcixuPW0oZSksYT1vKGUpLHM9bmV3IEFycmF5KDMpO2ZvcihyPTA7cjwzOysrcil7dmFyIGw9aVtyXTtpZihzW3JdPXJ0KGUtbFsxXSxsWzNdLGxbMl0sYSxuLHQtbFswXSksIXNbcl1bMF0pcmV0dXJuIGwucG9pbnQ7c1tyXVsxXT1pdChzW3JdWzFdLWwudlsxXSl9dmFyIGg9Zi5zbGljZSgpO2ZvcihyPTA7cjwzOysrcil7dmFyIHA9Mj09cj8wOnIrMSxkPW50KGlbcl0udlswXSxzW3JdWzBdLHNbcF1bMF0pO3Nbcl1bMV08MCYmKGQ9LWQpLHI/MT09cj8oZD1jLWQsaFswXS09c1tyXVswXSpvKGQpLGhbMV0tPXNbcl1bMF0qbShkKSk6KGQ9dS1kLGhbMF0rPXNbcl1bMF0qbyhkKSxoWzFdKz1zW3JdWzBdKm0oZCkpOihoWzBdKz1zW3JdWzBdKm8oZCksaFsxXS09c1tyXVswXSptKGQpKX1yZXR1cm4gaFswXS89MyxoWzFdLz0zLGh9fWZ1bmN0aW9uIG90KHQpe3JldHVybiB0WzBdKj1NLHRbMV0qPU0sdH1mdW5jdGlvbiBzdCh0LHIsbil7dmFyIGk9ZS5nZW9DZW50cm9pZCh7dHlwZToiTXVsdGlQb2ludCIsY29vcmRpbmF0ZXM6W3QscixuXX0pLGE9Wy1pWzBdLC1pWzFdXSxvPWUuZ2VvUm90YXRpb24oYSkscz1hdChvdChvKHQpKSxvdChvKHIpKSxvdChvKG4pKSk7cy5pbnZlcnQ9SChzKTt2YXIgbD1lLmdlb1Byb2plY3Rpb24ocykucm90YXRlKGEpLGM9bC5jZW50ZXI7cmV0dXJuIGRlbGV0ZSBsLnJvdGF0ZSxsLmNlbnRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9jKG8odCkpOm8uaW52ZXJ0KGMoKSl9LGwuY2xpcEFuZ2xlKDkwKX1mdW5jdGlvbiBsdCh0LGUpe3ZhciByPUwoMS1tKGUpKTtyZXR1cm5bMi9UKnQqcixUKigxLXIpXX1mdW5jdGlvbiBjdCh0KXt2YXIgZT1nKHQpO2Z1bmN0aW9uIHIodCxyKXtyZXR1cm5bdCwodD90L20odCk6MSkqKG0ocikqbyh0KS1lKm8ocikpXX1yZXR1cm4gci5pbnZlcnQ9ZT9mdW5jdGlvbih0LHIpe3QmJihyKj1tKHQpL3QpO3ZhciBuPW8odCk7cmV0dXJuW3QsMiphKEwobipuK2UqZS1yKnIpLW4sZS1yKV19OmZ1bmN0aW9uKHQsZSl7cmV0dXJuW3QsUyh0P2UqZyh0KS90OmUpXX0scn1sdC5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj0ocj1lL1QtMSkqcjtyZXR1cm5bcj4wP3QqTCh5L3IpLzI6MCxTKDEtcildfTt2YXIgdXQ9TCgzKTtmdW5jdGlvbiBmdCh0LGUpe3JldHVyblt1dCp0KigyKm8oMiplLzMpLTEpL1QsdXQqVCptKGUvMyldfWZ1bmN0aW9uIGh0KHQpe3ZhciBlPW8odCk7ZnVuY3Rpb24gcih0LHIpe3JldHVyblt0KmUsbShyKS9lXX1yZXR1cm4gci5pbnZlcnQ9ZnVuY3Rpb24odCxyKXtyZXR1cm5bdC9lLFMociplKV19LHJ9ZnVuY3Rpb24gcHQodCl7dmFyIGU9byh0KTtmdW5jdGlvbiByKHQscil7cmV0dXJuW3QqZSwoMStlKSpnKHIvMildfXJldHVybiByLmludmVydD1mdW5jdGlvbih0LHIpe3JldHVyblt0L2UsMippKHIvKDErZSkpXX0scn1mdW5jdGlvbiBkdCh0LGUpe3ZhciByPUwoOC8oMyp5KSk7cmV0dXJuW3IqdCooMS1uKGUpL3kpLHIqZV19ZnVuY3Rpb24gbXQodCxlKXt2YXIgcj1MKDQtMyptKG4oZSkpKTtyZXR1cm5bMi9MKDYqeSkqdCpyLGQoZSkqTCgyKnkvMykqKDItcildfWZ1bmN0aW9uIGd0KHQsZSl7dmFyIHI9TCh5Kig0K3kpKTtyZXR1cm5bMi9yKnQqKDErTCgxLTQqZSplLyh5KnkpKSksNC9yKmVdfWZ1bmN0aW9uIHZ0KHQsZSl7dmFyIHI9KDIreCkqbShlKTtlLz0yO2Zvcih2YXIgaT0wLGE9MS8wO2k8MTAmJm4oYSk+djtpKyspe3ZhciBzPW8oZSk7ZS09YT0oZSttKGUpKihzKzIpLXIpLygyKnMqKDErcykpfXJldHVyblsyL0woeSooNCt5KSkqdCooMStvKGUpKSwyKkwoeS8oNCt5KSkqbShlKV19ZnVuY3Rpb24geXQodCxlKXtyZXR1cm5bdCooMStvKGUpKS9MKDIreSksMiplL0woMit5KV19ZnVuY3Rpb24geHQodCxlKXtmb3IodmFyIHI9KDEreCkqbShlKSxpPTAsYT0xLzA7aTwxMCYmbihhKT52O2krKyllLT1hPShlK20oZSktcikvKDErbyhlKSk7cmV0dXJuIHI9TCgyK3kpLFt0KigxK28oZSkpL3IsMiplL3JdfWZ0LmludmVydD1mdW5jdGlvbih0LGUpe3ZhciByPTMqUyhlLyh1dCpUKSk7cmV0dXJuW1QqdC8odXQqKDIqbygyKnIvMyktMSkpLHJdfSxkdC5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj1MKDgvKDMqeSkpLGk9ZS9yO3JldHVyblt0LyhyKigxLW4oaSkveSkpLGldfSxtdC5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj0yLW4oZSkvTCgyKnkvMyk7cmV0dXJuW3QqTCg2KnkpLygyKnIpLGQoZSkqUygoNC1yKnIpLzMpXX0sZ3QuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9TCh5Kig0K3kpKS8yO3JldHVyblt0KnIvKDErTCgxLWUqZSooNCt5KS8oNCp5KSkpLGUqci8yXX0sdnQuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZSpMKCg0K3kpL3kpLzIsbj1TKHIpLGk9byhuKTtyZXR1cm5bdC8oMi9MKHkqKDQreSkpKigxK2kpKSxTKChuK3IqKGkrMikpLygyK3gpKV19LHl0LmludmVydD1mdW5jdGlvbih0LGUpe3ZhciByPUwoMit5KSxuPWUqci8yO3JldHVybltyKnQvKDErbyhuKSksbl19LHh0LmludmVydD1mdW5jdGlvbih0LGUpe3ZhciByPTEreCxuPUwoci8yKTtyZXR1cm5bMip0Km4vKDErbyhlKj1uKSksUygoZSttKGUpKS9yKV19O3ZhciBidD0zKzIqdztmdW5jdGlvbiBfdCh0LGUpe3ZhciByPW0odC89Miksbj1vKHQpLGE9TChvKGUpKSxzPW8oZS89MiksbD1tKGUpLyhzK3cqbiphKSx1PUwoMi8oMStsKmwpKSxmPUwoKHcqcysobityKSphKS8odypzKyhuLXIpKmEpKTtyZXR1cm5bYnQqKHUqKGYtMS9mKS0yKmMoZikpLGJ0Kih1KmwqKGYrMS9mKS0yKmkobCkpXX1fdC5pbnZlcnQ9ZnVuY3Rpb24odCxlKXtpZighKHI9RC5pbnZlcnQodC8xLjIsMS4wNjUqZSkpKXJldHVybiBudWxsO3ZhciByLGE9clswXSxzPXJbMV0sbD0yMDt0Lz1idCxlLz1idDtkb3t2YXIgaD1hLzIscD1zLzIsZD1tKGgpLGc9byhoKSx5PW0ocCksYj1vKHApLFQ9byhzKSxrPUwoVCksQT15LyhiK3cqZyprKSxNPUEqQSxTPUwoMi8oMStNKSksRT0odypiKyhnK2QpKmspLyh3KmIrKGctZCkqayksQz1MKEUpLFA9Qy0xL0MsST1DKzEvQyxPPVMqUC0yKmMoQyktdCx6PVMqQSpJLTIqaShBKS1lLFI9eSYmXyprKmQqTS95LEY9KHcqZypiK2spLygyKihiK3cqZyprKSooYit3KmcqaykqayksQj0tLjUqQSpTKlMqUyxOPUIqUixqPUIqRixVPShVPTIqYit3KmsqKGctZCkpKlUqQyxWPSh3KmcqYiprK1QpL1UsSD0tdypkKnkvKGsqVSkscT1QKk4tMipWL0MrUyooVitWL0UpLEc9UCpqLTIqSC9DK1MqKEgrSC9FKSxZPUEqSSpOLTIqUi8oMStNKStTKkkqUitTKkEqKFYtVi9FKSxXPUEqSSpqLTIqRi8oMStNKStTKkkqRitTKkEqKEgtSC9FKSxYPUcqWS1XKnE7aWYoIVgpYnJlYWs7dmFyIFo9KHoqRy1PKlcpL1gsSj0oTypZLXoqcSkvWDthLT1aLHM9dSgteCxmKHgscy1KKSl9d2hpbGUoKG4oWik+dnx8bihKKT52KSYmLS1sPjApO3JldHVybiBuKG4ocykteCk8dj9bMCxzXTpsJiZbYSxzXX07dmFyIHd0PW8oMzUqTSk7ZnVuY3Rpb24gVHQodCxlKXt2YXIgcj1nKGUvMik7cmV0dXJuW3Qqd3QqTCgxLXIqciksKDErd3QpKnJdfWZ1bmN0aW9uIGt0KHQsZSl7dmFyIHI9ZS8yLG49byhyKTtyZXR1cm5bMip0L1QqbyhlKSpuKm4sVCpnKHIpXX1mdW5jdGlvbiBBdCh0KXt2YXIgZT0xLXQscj1pKHksMClbMF0taSgteSwwKVswXSxuPUwoMiooaSgwLHgpWzFdLWkoMCwteClbMV0pL3IpO2Z1bmN0aW9uIGkocixuKXt2YXIgaT1vKG4pLGE9bShuKTtyZXR1cm5baS8oZSt0KmkpKnIsZSpuK3QqYV19ZnVuY3Rpb24gYSh0LGUpe3ZhciByPWkodCxlKTtyZXR1cm5bclswXSpuLHJbMV0vbl19ZnVuY3Rpb24gcyh0KXtyZXR1cm4gYSgwLHQpWzFdfXJldHVybiBhLmludmVydD1mdW5jdGlvbihyLGkpe3ZhciBhPVYocyxpKTtyZXR1cm5bci9uKih0K2UvbyhhKSksYV19LGF9ZnVuY3Rpb24gTXQodCl7cmV0dXJuW3RbMF0vMixTKGcodFsxXS8yKk0pKSpBXX1mdW5jdGlvbiBTdCh0KXtyZXR1cm5bMip0WzBdLDIqaShtKHRbMV0qTSkpKkFdfWZ1bmN0aW9uIEV0KHQscil7dmFyIGk9Mip5L3Iscz10KnQ7ZnVuY3Rpb24gbChyLGwpe3ZhciBjPWUuZ2VvQXppbXV0aGFsRXF1aWRpc3RhbnRSYXcocixsKSx1PWNbMF0sZj1jWzFdLGg9dSp1K2YqZjtpZihoPnMpe3ZhciBkPUwoaCksZz1hKGYsdSksYj1pKnAoZy9pKSxfPWctYix3PXQqbyhfKSxUPSh0Km0oXyktXyptKHcpKS8oeC13KSxrPUx0KF8sVCksQT0oeS10KS9DdChrLHcseSk7dT1kO3ZhciBNLFM9NTA7ZG97dS09TT0odCtDdChrLHcsdSkqQS1kKS8oayh1KSpBKX13aGlsZShuKE0pPnYmJi0tUz4wKTtmPV8qbSh1KSx1PHgmJihmLT1UKih1LXgpKTt2YXIgRT1tKGIpLEM9byhiKTtjWzBdPXUqQy1mKkUsY1sxXT11KkUrZipDfXJldHVybiBjfXJldHVybiBsLmludmVydD1mdW5jdGlvbihyLGwpe3ZhciBjPXIqcitsKmw7aWYoYz5zKXt2YXIgdT1MKGMpLGY9YShsLHIpLGg9aSpwKGYvaSksZD1mLWg7cj11Km8oZCksbD11Km0oZCk7Zm9yKHZhciBnPXIteCx2PW0ociksYj1sL3YsXz1yPHg/MS8wOjAsdz0xMDs7KXt2YXIgVD10Km0oYiksaz10Km8oYiksQT1tKGspLE09eC1rLFM9KFQtYipBKS9NLEU9THQoYixTKTtpZihuKF8pPDFlLTEyfHwhLS13KWJyZWFrO2ItPV89KGIqdi1TKmctbCkvKHYtMipnKihNKihrK2IqVCpvKGspLUEpLVQqKFQtYipBKSkvKE0qTSkpfXI9KHU9dCtDdChFLGsscikqKHktdCkvQ3QoRSxrLHkpKSpvKGY9aCtiKSxsPXUqbShmKX1yZXR1cm4gZS5nZW9BemltdXRoYWxFcXVpZGlzdGFudFJhdy5pbnZlcnQocixsKX0sbH1mdW5jdGlvbiBMdCh0LGUpe3JldHVybiBmdW5jdGlvbihyKXt2YXIgbj10Km8ocik7cmV0dXJuIHI8eCYmKG4tPWUpLEwoMStuKm4pfX1mdW5jdGlvbiBDdCh0LGUscil7Zm9yKHZhciBuPShyLWUpLzUwLGk9dChlKSt0KHIpLGE9MSxvPWU7YTw1MDsrK2EpaSs9Mip0KG8rPW4pO3JldHVybi41Kmkqbn1mdW5jdGlvbiBQdCh0LGUscixpLGEscyxsLGMpe2Z1bmN0aW9uIHUobix1KXtpZighdSlyZXR1cm5bdCpuL3ksMF07dmFyIGY9dSp1LGg9dCtmKihlK2YqKHIrZippKSkscD11KihhLTErZioocy1jK2YqbCkpLGQ9KGgqaCtwKnApLygyKnApLGc9bipTKGgvZCkveTtyZXR1cm5bZCptKGcpLHUqKDErZipjKStkKigxLW8oZykpXX1yZXR1cm4gYXJndW1lbnRzLmxlbmd0aDw4JiYoYz0wKSx1LmludmVydD1mdW5jdGlvbih1LGYpe3ZhciBoLHAsZD15KnUvdCxnPWYseD01MDtkb3t2YXIgYj1nKmcsXz10K2IqKGUrYioocitiKmkpKSx3PWcqKGEtMStiKihzLWMrYipsKSksVD1fKl8rdyp3LGs9Mip3LEE9VC9rLE09QSpBLEU9UyhfL0EpL3ksQz1kKkUsUD1fKl8sST0oMiplK2IqKDQqcis2KmIqaSkpKmcsTz1hK2IqKDMqcys1KmIqbCksej0oMiooXypJK3cqKE8tMSkpKmstVCooMiooTy0xKSkpLyhrKmspLEQ9byhDKSxSPW0oQyksRj1BKkQsQj1BKlIsTj1kL3kqKDEvTCgxLVAvTSkpKihJKkEtXyp6KS9NLGo9Qi11LFU9ZyooMStiKmMpK0EtRi1mLFY9eipSK0YqTixIPUYqRSxxPTErei0oeipELUIqTiksRz1CKkUsWT1WKkctcSpIO2lmKCFZKWJyZWFrO2QtPWg9KFUqVi1qKnEpL1ksZy09cD0oaipHLVUqSCkvWX13aGlsZSgobihoKT52fHxuKHApPnYpJiYtLXg+MCk7cmV0dXJuW2QsZ119LHV9VHQuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS8oMSt3dCk7cmV0dXJuW3QmJnQvKHd0KkwoMS1yKnIpKSwyKmkocildfSxrdC5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj1pKGUvVCksbj1vKHIpLGE9MipyO3JldHVyblt0KlQvMi8obyhhKSpuKm4pLGFdfTt2YXIgSXQ9UHQoMi44Mjg0LC0xLjY5ODgsLjc1NDMyLC0uMTgwNzEsMS43NjAwMywtLjM4OTE0LC4wNDI1NTUpO3ZhciBPdD1QdCgyLjU4MzgxOSwtLjgzNTgyNywuMTcwMzU0LC0uMDM4MDk0LDEuNTQzMzEzLC0uNDExNDM1LC4wODI3NDIpO3ZhciB6dD1QdCg1LzYqeSwtLjYyNjM2LC0uMDM0NCwwLDEuMzQ5MywtLjA1NTI0LDAsLjA0NSk7ZnVuY3Rpb24gRHQodCxlKXt2YXIgcj10KnQsbj1lKmU7cmV0dXJuW3QqKDEtLjE2MjM4OCpuKSooLjg3LTk1MjQyNmUtOSpyKnIpLGUqKDErbi8xMildfUR0LmludmVydD1mdW5jdGlvbih0LGUpe3ZhciByLGk9dCxhPWUsbz01MDtkb3t2YXIgcz1hKmE7YS09cj0oYSooMStzLzEyKS1lKS8oMStzLzQpfXdoaWxlKG4ocik+diYmLS1vPjApO289NTAsdC89MS0uMTYyMzg4KnM7ZG97dmFyIGw9KGw9aSppKSpsO2ktPXI9KGkqKC44Ny05NTI0MjZlLTkqbCktdCkvKC44Ny0uMDA0NzYyMTMqbCl9d2hpbGUobihyKT52JiYtLW8+MCk7cmV0dXJuW2ksYV19O3ZhciBSdD1QdCgyLjY1MTYsLS43NjUzNCwuMTkxMjMsLS4wNDcwOTQsMS4zNjI4OSwtLjEzOTY1LC4wMzE3NjIpO2Z1bmN0aW9uIEZ0KHQpe3ZhciBlPXQoeCwwKVswXS10KC14LDApWzBdO2Z1bmN0aW9uIHIocixuKXt2YXIgaT1yPjA/LS41Oi41LGE9dChyK2kqeSxuKTtyZXR1cm4gYVswXS09aSplLGF9cmV0dXJuIHQuaW52ZXJ0JiYoci5pbnZlcnQ9ZnVuY3Rpb24ocixuKXt2YXIgaT1yPjA/LS41Oi41LGE9dC5pbnZlcnQocitpKmUsbiksbz1hWzBdLWkqeTtyZXR1cm4gbzwteT9vKz0yKnk6bz55JiYoby09Mip5KSxhWzBdPW8sYX0pLHJ9ZnVuY3Rpb24gQnQodCxlKXt2YXIgcj1kKHQpLGk9ZChlKSxzPW8oZSksbD1vKHQpKnMsYz1tKHQpKnMsdT1tKGkqZSk7dD1uKGEoYyx1KSksZT1TKGwpLG4odC14KT52JiYodCU9eCk7dmFyIGY9ZnVuY3Rpb24odCxlKXtpZihlPT09eClyZXR1cm5bMCwwXTt2YXIgcixpLGE9bShlKSxzPWEqYSxsPXMqcyxjPTErbCx1PTErMypsLGY9MS1sLGg9UygxL0woYykpLHA9ZitzKmMqaCxkPSgxLWEpL3AsZz1MKGQpLGI9ZCpjLF89TChiKSx3PWcqZjtpZigwPT09dClyZXR1cm5bMCwtKHcrcypfKV07dmFyIFQsaz1vKGUpLEE9MS9rLE09MiphKmssRT0oLXAqay0oLTMqcytoKnUpKk0qKDEtYSkpLyhwKnApLEM9LUEqTSxQPS1BKihzKmMqRStkKnUqTSksST0tMipBKihmKiguNSpFL2cpLTIqcypnKk0pLE89NCp0L3k7aWYodD4uMjIyKnl8fGU8eS80JiZ0Pi4xNzUqeSl7aWYocj0odytzKkwoYiooMStsKS13KncpKS8oMStsKSx0PnkvNClyZXR1cm5bcixyXTt2YXIgej1yLEQ9LjUqcjtyPS41KihEK3opLGk9NTA7ZG97dmFyIFI9TChiLXIqciksRj1yKihJK0MqUikrUCpTKHIvXyktTztpZighRilicmVhaztGPDA/RD1yOno9cixyPS41KihEK3opfXdoaWxlKG4oei1EKT52JiYtLWk+MCl9ZWxzZXtyPXYsaT0yNTtkb3t2YXIgQj1yKnIsTj1MKGItQiksaj1JK0MqTixVPXIqaitQKlMoci9fKS1PLFY9aisoUC1DKkIpL047ci09VD1OP1UvVjowfXdoaWxlKG4oVCk+diYmLS1pPjApfXJldHVybltyLC13LXMqTChiLXIqcildfSh0PnkvND94LXQ6dCxlKTtyZXR1cm4gdD55LzQmJih1PWZbMF0sZlswXT0tZlsxXSxmWzFdPS11KSxmWzBdKj1yLGZbMV0qPS1pLGZ9ZnVuY3Rpb24gTnQodCxlKXt2YXIgcixhLGwsYyx1LGY7aWYoZTx2KXJldHVyblsoYz1tKHQpKS0ocj1lKih0LWMqKGE9byh0KSkpLzQpKmEsYStyKmMsMS1lKmMqYy8yLHQtcl07aWYoZT49MS12KXJldHVybiByPSgxLWUpLzQsbD0xLyhhPVAodCkpLFsoYz0oKGY9cygyKihmPXQpKSktMSkvKGYrMSkpK3IqKCh1PWEqQyh0KSktdCkvKGEqYSksbC1yKmMqbCoodS10KSxsK3IqYypsKih1K3QpLDIqaShzKHQpKS14K3IqKHUtdCkvYV07dmFyIGg9WzEsMCwwLDAsMCwwLDAsMCwwXSxwPVtMKGUpLDAsMCwwLDAsMCwwLDAsMF0sZD0wO2ZvcihhPUwoMS1lKSx1PTE7bihwW2RdL2hbZF0pPnYmJmQ8ODspcj1oW2QrK10scFtkXT0oci1hKS8yLGhbZF09KHIrYSkvMixhPUwociphKSx1Kj0yO2w9dSpoW2RdKnQ7ZG97bD0oUyhjPXBbZF0qbShhPWwpL2hbZF0pK2wpLzJ9d2hpbGUoLS1kKTtyZXR1cm5bbShsKSxjPW8obCksYy9vKGwtYSksbF19ZnVuY3Rpb24ganQodCxlKXtpZighZSlyZXR1cm4gdDtpZigxPT09ZSlyZXR1cm4gYyhnKHQvMitiKSk7Zm9yKHZhciByPTEsYT1MKDEtZSksbz1MKGUpLHM9MDtuKG8pPnY7cysrKXtpZih0JXkpe3ZhciBsPWkoYSpnKHQpL3IpO2w8MCYmKGwrPXkpLHQrPWwrfn4odC95KSp5fWVsc2UgdCs9dDtvPShyK2EpLzIsYT1MKHIqYSksbz0oKHI9byktYSkvMn1yZXR1cm4gdC8oaCgyLHMpKnIpfWZ1bmN0aW9uIFV0KHQsZSl7dmFyIHI9KHctMSkvKHcrMSksbD1MKDEtcipyKSx1PWp0KHgsbCpsKSxmPWMoZyh5LzQrbihlKS8yKSksaD1zKC0xKmYpL0wocikscD1mdW5jdGlvbih0LGUpe3ZhciByPXQqdCxuPWUrMSxpPTEtci1lKmU7cmV0dXJuWy41KigodD49MD94Oi14KS1hKGksMip0KSksLS4yNSpjKGkqaSs0KnIpKy41KmMobipuK3IpXX0oaCpvKC0xKnQpLGgqbSgtMSp0KSksdj1mdW5jdGlvbih0LGUscil7dmFyIGE9bih0KSxvPUMobihlKSk7aWYoYSl7dmFyIHM9MS9tKGEpLGw9MS8oZyhhKSpnKGEpKSxjPS0obCtyKihvKm8qcypzKS0xK3IpLHU9KC1jK0woYypjLTQqKChyLTEpKmwpKSkvMjtyZXR1cm5banQoaSgxL0wodSkpLHIpKmQodCksanQoaShMKCh1L2wtMSkvcikpLDEtcikqZChlKV19cmV0dXJuWzAsanQoaShvKSwxLXIpKmQoZSldfShwWzBdLHBbMV0sbCpsKTtyZXR1cm5bLXZbMV0sKGU+PTA/MTotMSkqKC41KnUtdlswXSldfWZ1bmN0aW9uIFZ0KHQpe3ZhciBlPW0odCkscj1vKHQpLGk9SHQodCk7ZnVuY3Rpb24gcyh0LGEpe3ZhciBzPWkodCxhKTt0PXNbMF0sYT1zWzFdO3ZhciBsPW0oYSksYz1vKGEpLHU9byh0KSxmPUUoZSpsK3IqYyp1KSxoPW0oZikscD1uKGgpPnY/Zi9oOjE7cmV0dXJuW3AqciptKHQpLChuKHQpPng/cDotcCkqKGUqYy1yKmwqdSldfXJldHVybiBpLmludmVydD1IdCgtdCkscy5pbnZlcnQ9ZnVuY3Rpb24odCxyKXt2YXIgbj1MKHQqdCtyKnIpLHM9LW0obiksbD1vKG4pLGM9bipsLHU9LXIqcyxmPW4qZSxoPUwoYypjK3UqdS1mKmYpLHA9YShjKmYrdSpoLHUqZi1jKmgpLGQ9KG4+eD8tMToxKSphKHQqcyxuKm8ocCkqbCtyKm0ocCkqcyk7cmV0dXJuIGkuaW52ZXJ0KGQscCl9LHN9ZnVuY3Rpb24gSHQodCl7dmFyIGU9bSh0KSxyPW8odCk7cmV0dXJuIGZ1bmN0aW9uKHQsbil7dmFyIGk9byhuKSxzPW8odCkqaSxsPW0odCkqaSxjPW0obik7cmV0dXJuW2EobCxzKnItYyplKSxTKGMqcitzKmUpXX19QnQuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7bih0KT4xJiYodD0yKmQodCktdCksbihlKT4xJiYoZT0yKmQoZSktZSk7dmFyIHI9ZCh0KSxpPWQoZSkscz0tcip0LGw9LWkqZSxjPWwvczwxLHU9ZnVuY3Rpb24odCxlKXt2YXIgcj0wLGk9MSxhPS41LHM9NTA7Zm9yKDs7KXt2YXIgbD1hKmEsYz1MKGEpLHU9UygxL0woMStsKSksZj0xLWwrYSooMStsKSp1LGg9KDEtYykvZixwPUwoaCksZD1oKigxK2wpLG09cCooMS1sKSxnPUwoZC10KnQpLHY9ZSttK2EqZztpZihuKGktcik8MWUtMTJ8fDA9PS0tc3x8MD09PXYpYnJlYWs7dj4wP3I9YTppPWEsYT0uNSoocitpKX1pZighcylyZXR1cm4gbnVsbDt2YXIgeD1TKGMpLGI9byh4KSxfPTEvYix3PTIqYypiLFQ9KC1mKmItKC0zKmErdSooMSszKmwpKSp3KigxLWMpKS8oZipmKTtyZXR1cm5beS80Kih0KigtMipfKiguNSpUL3AqKDEtbCktMiphKnAqdykrLV8qdypnKSstXyooYSooMStsKSpUK2gqKDErMypsKSp3KSpTKHQvTChkKSkpLHhdfShjP2w6cyxjP3M6bCksZj11WzBdLGg9dVsxXSxwPW8oaCk7cmV0dXJuIGMmJihmPS14LWYpLFtyKihhKG0oZikqcCwtbShoKSkreSksaSpTKG8oZikqcCldfSxVdC5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcixuLG8sbCx1LGYsaD0ody0xKS8odysxKSxwPUwoMS1oKmgpLGQ9anQoeCxwKnApLG09KG49LXQsbz1wKnAsKHI9LjUqZC1lKT8obD1OdChyLG8pLG4/KGY9KHU9TnQobiwxLW8pKVsxXSp1WzFdK28qbFswXSpsWzBdKnVbMF0qdVswXSxbW2xbMF0qdVsyXS9mLGxbMV0qbFsyXSp1WzBdKnVbMV0vZl0sW2xbMV0qdVsxXS9mLC1sWzBdKmxbMl0qdVswXSp1WzJdL2ZdLFtsWzJdKnVbMV0qdVsyXS9mLC1vKmxbMF0qbFsxXSp1WzBdL2ZdXSk6W1tsWzBdLDBdLFtsWzFdLDBdLFtsWzJdLDBdXSk6W1swLCh1PU50KG4sMS1vKSlbMF0vdVsxXV0sWzEvdVsxXSwwXSxbdVsyXS91WzFdLDBdXSksZz1mdW5jdGlvbih0LGUpe3ZhciByPWVbMF0qZVswXStlWzFdKmVbMV07cmV0dXJuWyh0WzBdKmVbMF0rdFsxXSplWzFdKS9yLCh0WzFdKmVbMF0tdFswXSplWzFdKS9yXX0obVswXSxtWzFdKTtyZXR1cm5bYShnWzFdLGdbMF0pLy0xLDIqaShzKC0uNSpjKGgqZ1swXSpnWzBdK2gqZ1sxXSpnWzFdKSkpLXhdfTt2YXIgcXQ9UygxLTEvMykqQSxHdD1odCgwKTtmdW5jdGlvbiBZdCh0KXt2YXIgZT1xdCpNLHI9bHQoeSxlKVswXS1sdCgteSxlKVswXSxpPUd0KDAsZSlbMV0sYT1sdCgwLGUpWzFdLG89VC1hLHM9ay90LGM9NC9rLGg9aStvKm8qNC9rO2Z1bmN0aW9uIHAocCxkKXt2YXIgbSxnPW4oZCk7aWYoZz5lKXt2YXIgdj1mKHQtMSx1KDAsbCgocCt5KS9zKSkpOyhtPWx0KHArPXkqKHQtMSkvdC12KnMsZykpWzBdPW1bMF0qay9yLWsqKHQtMSkvKDIqdCkrdiprL3QsbVsxXT1pKzQqKG1bMV0tYSkqby9rLGQ8MCYmKG1bMV09LW1bMV0pfWVsc2UgbT1HdChwLGQpO3JldHVybiBtWzBdKj1jLG1bMV0vPWgsbX1yZXR1cm4gcC5pbnZlcnQ9ZnVuY3Rpb24oZSxwKXtlLz1jO3ZhciBkPW4ocCo9aCk7aWYoZD5pKXt2YXIgbT1mKHQtMSx1KDAsbCgoZSt5KS9zKSkpO2U9KGUreSoodC0xKS90LW0qcykqci9rO3ZhciBnPWx0LmludmVydChlLC4yNSooZC1pKSprL28rYSk7cmV0dXJuIGdbMF0tPXkqKHQtMSkvdC1tKnMscDwwJiYoZ1sxXT0tZ1sxXSksZ31yZXR1cm4gR3QuaW52ZXJ0KGUscCl9LHB9ZnVuY3Rpb24gV3QodCxlKXtyZXR1cm5bdCwxJmU/OTAtdjpxdF19ZnVuY3Rpb24gWHQodCxlKXtyZXR1cm5bdCwxJmU/LTkwK3Y6LXF0XX1mdW5jdGlvbiBadCh0KXtyZXR1cm5bdFswXSooMS12KSx0WzFdXX1mdW5jdGlvbiBKdCh0KXt2YXIgZSxyPTErdCxpPVMobSgxL3IpKSxzPTIqTCh5LyhlPXkrNCppKnIpKSxsPS41KnMqKHIrTCh0KigyK3QpKSksYz10KnQsdT1yKnI7ZnVuY3Rpb24gZihmLGgpe3ZhciBwLGQsZz0xLW0oaCk7aWYoZyYmZzwyKXt2YXIgdixiPXgtaCxfPTI1O2Rve3ZhciB3PW0oYiksVD1vKGIpLGs9aSthKHcsci1UKSxBPTErdS0yKnIqVDtiLT12PShiLWMqaS1yKncrQSprLS41KmcqZSkvKDIqcip3KmspfXdoaWxlKG4odik+MWUtMTImJi0tXz4wKTtwPXMqTChBKSxkPWYqay95fWVsc2UgcD1zKih0K2cpLGQ9ZippL3k7cmV0dXJuW3AqbShkKSxsLXAqbyhkKV19cmV0dXJuIGYuaW52ZXJ0PWZ1bmN0aW9uKHQsbil7dmFyIG89dCp0KyhuLT1sKSpuLGY9KDErdS1vLyhzKnMpKS8oMipyKSxoPUUoZikscD1tKGgpLGQ9aSthKHAsci1mKTtyZXR1cm5bUyh0L0wobykpKnkvZCxTKDEtMiooaC1jKmktcipwKygxK3UtMipyKmYpKmQpL2UpXX0sZn1mdW5jdGlvbiBLdCh0LGUpe3JldHVybiBlPi0uNzEwOTg4OTU5NjIwNzU2Nz8oKHQ9Vyh0LGUpKVsxXSs9LjA1MjgwMzUyNzQ1NDIsdCk6USh0LGUpfWZ1bmN0aW9uIFF0KHQsZSl7cmV0dXJuIG4oZSk+LjcxMDk4ODk1OTYyMDc1Njc/KCh0PVcodCxlKSlbMV0tPWU+MD8uMDUyODAzNTI3NDU0MjotLjA1MjgwMzUyNzQ1NDIsdCk6USh0LGUpfWZ1bmN0aW9uICR0KHQsZSxyLG4pe3ZhciBpPUwoNCp5LygyKnIrKDErdC1lLzIpKm0oMipyKSsodCtlKS8yKm0oNCpyKStlLzIqbSg2KnIpKSksYT1MKG4qbShyKSpMKCgxK3QqbygyKnIpK2Uqbyg0KnIpKS8oMSt0K2UpKSkscz1yKmMoMSk7ZnVuY3Rpb24gbChyKXtyZXR1cm4gTCgxK3QqbygyKnIpK2Uqbyg0KnIpKX1mdW5jdGlvbiBjKG4pe3ZhciBpPW4qcjtyZXR1cm4oMippKygxK3QtZS8yKSptKDIqaSkrKHQrZSkvMiptKDQqaSkrZS8yKm0oNippKSkvcn1mdW5jdGlvbiB1KHQpe3JldHVybiBsKHQpKm0odCl9dmFyIGY9ZnVuY3Rpb24odCxlKXt2YXIgbj1yKlYoYyxzKm0oZSkvcixlL3kpO2lzTmFOKG4pJiYobj1yKmQoZSkpO3ZhciB1PWkqbChuKTtyZXR1cm5bdSphKnQveSpvKG4pLHUvYSptKG4pXX07cmV0dXJuIGYuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIG49Vih1LGUqYS9pKTtyZXR1cm5bdCp5LyhvKG4pKmkqYSpsKG4pKSxTKHIqYyhuL3IpL3MpXX0sMD09PXImJihpPUwobi95KSwoZj1mdW5jdGlvbih0LGUpe3JldHVyblt0KmksbShlKS9pXX0pLmludmVydD1mdW5jdGlvbih0LGUpe3JldHVyblt0L2ksUyhlKmkpXX0pLGZ9ZnVuY3Rpb24gdGUodCxlLHIsbixpKXt2b2lkIDA9PT1uJiYobj0xZS04KSx2b2lkIDA9PT1pJiYoaT0yMCk7dmFyIGE9dChlKSxvPXQoLjUqKGUrcikpLHM9dChyKTtyZXR1cm4gZnVuY3Rpb24gdChlLHIsbixpLGEsbyxzLGwsYyx1LGYpe2lmKGYubmFuRW5jb3VudGVyZWQpcmV0dXJuIE5hTjt2YXIgaCxwLGQsbSxnLHYseSx4LGIsXztpZihwPWUocisuMjUqKGg9bi1yKSksZD1lKG4tLjI1KmgpLGlzTmFOKHApKWYubmFuRW5jb3VudGVyZWQ9ITA7ZWxzZXtpZighaXNOYU4oZCkpcmV0dXJuIF89KCh2PShtPWgqKGkrNCpwK2EpLzEyKSsoZz1oKihhKzQqZCtvKS8xMikpLXMpLzE1LHU+Yz8oZi5tYXhEZXB0aENvdW50KyssditfKTpNYXRoLmFicyhfKTxsP3YrXzooeD10KGUscix5PXIrLjUqaCxpLHAsYSxtLC41KmwsYyx1KzEsZiksaXNOYU4oeCk/KGYubmFuRW5jb3VudGVyZWQ9ITAsTmFOKTooYj10KGUseSxuLGEsZCxvLGcsLjUqbCxjLHUrMSxmKSxpc05hTihiKT8oZi5uYW5FbmNvdW50ZXJlZD0hMCxOYU4pOngrYikpO2YubmFuRW5jb3VudGVyZWQ9ITB9fSh0LGUscixhLG8scywoYSs0Km8rcykqKHItZSkvNixuLGksMSx7bWF4RGVwdGhDb3VudDowLG5hbkVuY291bnRlcmVkOiExfSl9ZnVuY3Rpb24gZWUodCxlLHIpe2Z1bmN0aW9uIGkocil7cmV0dXJuIHQrKDEtdCkqaCgxLWgocixlKSwxL2UpfWZ1bmN0aW9uIGEodCl7cmV0dXJuIHRlKGksMCx0LDFlLTQpfWZvcih2YXIgbz0xL2EoMSkscz0xZTMsbD0oMSsxZS04KSpvLGM9W10sdT0wO3U8PXM7dSsrKWMucHVzaChhKHUvcykqbCk7ZnVuY3Rpb24gZih0KXt2YXIgZT0wLHI9cyxuPTUwMDtkb3tjW25dPnQ/cj1uOmU9bixuPWUrcj4+MX13aGlsZShuPmUpO3ZhciBpPWNbbisxXS1jW25dO3JldHVybiBpJiYoaT0odC1jW24rMV0pL2kpLChuKzEraSkvc312YXIgcD0yKmYoMSkveSpvL3IsZz1mdW5jdGlvbih0LGUpe3ZhciByPWYobihtKGUpKSksYT1pKHIpKnQ7cmV0dXJuIHIvPXAsW2EsZT49MD9yOi1yXX07cmV0dXJuIGcuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIHI7cmV0dXJuIG4oZSo9cCk8MSYmKHI9ZChlKSpTKGEobihlKSkqbykpLFt0L2kobihlKSkscl19LGd9ZnVuY3Rpb24gcmUodCxlKXtyZXR1cm4gbih0WzBdLWVbMF0pPHYmJm4odFsxXS1lWzFdKTx2fWZ1bmN0aW9uIG5lKHQsZSl7Zm9yKHZhciByLG4saSxhPS0xLG89dC5sZW5ndGgscz10WzBdLGw9W107KythPG87KXtuPSgocj10W2FdKVswXS1zWzBdKS9lLGk9KHJbMV0tc1sxXSkvZTtmb3IodmFyIGM9MDtjPGU7KytjKWwucHVzaChbc1swXStjKm4sc1sxXStjKmldKTtzPXJ9cmV0dXJuIGwucHVzaChyKSxsfWZ1bmN0aW9uIGllKHQpe3ZhciBlLG4saSxhLG8scyxsLGM9W10sdT10WzBdLmxlbmd0aDtmb3IobD0wO2w8dTsrK2wpbj0oZT10WzBdW2xdKVswXVswXSxpPWVbMF1bMV0sYT1lWzFdWzFdLG89ZVsyXVswXSxzPWVbMl1bMV0sYy5wdXNoKG5lKFtbbit2LGkrdl0sW24rdixhLXZdLFtvLXYsYS12XSxbby12LHMrdl1dLDMwKSk7Zm9yKGw9dFsxXS5sZW5ndGgtMTtsPj0wOy0tbCluPShlPXRbMV1bbF0pWzBdWzBdLGk9ZVswXVsxXSxhPWVbMV1bMV0sbz1lWzJdWzBdLHM9ZVsyXVsxXSxjLnB1c2gobmUoW1tvLXYscy12XSxbby12LGErdl0sW24rdixhK3ZdLFtuK3YsaS12XV0sMzApKTtyZXR1cm57dHlwZToiUG9seWdvbiIsY29vcmRpbmF0ZXM6W3IubWVyZ2UoYyldfX1mdW5jdGlvbiBhZSh0LHIsbil7dmFyIGksYTtmdW5jdGlvbiBvKGUsbil7Zm9yKHZhciBpPW48MD8tMToxLGE9clsrKG48MCldLG89MCxzPWEubGVuZ3RoLTE7bzxzJiZlPmFbb11bMl1bMF07KytvKTt2YXIgbD10KGUtYVtvXVsxXVswXSxuKTtyZXR1cm4gbFswXSs9dChhW29dWzFdWzBdLGkqbj5pKmFbb11bMF1bMV0/YVtvXVswXVsxXTpuKVswXSxsfW4/by5pbnZlcnQ9bihvKTp0LmludmVydCYmKG8uaW52ZXJ0PWZ1bmN0aW9uKGUsbil7Zm9yKHZhciBpPWFbKyhuPDApXSxzPXJbKyhuPDApXSxsPTAsYz1pLmxlbmd0aDtsPGM7KytsKXt2YXIgdT1pW2xdO2lmKHVbMF1bMF08PWUmJmU8dVsxXVswXSYmdVswXVsxXTw9biYmbjx1WzFdWzFdKXt2YXIgZj10LmludmVydChlLXQoc1tsXVsxXVswXSwwKVswXSxuKTtyZXR1cm4gZlswXSs9c1tsXVsxXVswXSxyZShvKGZbMF0sZlsxXSksW2Usbl0pP2Y6bnVsbH19fSk7dmFyIHM9ZS5nZW9Qcm9qZWN0aW9uKG8pLGw9cy5zdHJlYW07cmV0dXJuIHMuc3RyZWFtPWZ1bmN0aW9uKHQpe3ZhciByPXMucm90YXRlKCksbj1sKHQpLGE9KHMucm90YXRlKFswLDBdKSxsKHQpKTtyZXR1cm4gcy5yb3RhdGUociksbi5zcGhlcmU9ZnVuY3Rpb24oKXtlLmdlb1N0cmVhbShpLGEpfSxufSxzLmxvYmVzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPWllKGUpLHI9ZS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuW1t0WzBdWzBdKk0sdFswXVsxXSpNXSxbdFsxXVswXSpNLHRbMV1bMV0qTV0sW3RbMl1bMF0qTSx0WzJdWzFdKk1dXX0pKX0pKSxhPXIubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gZS5tYXAoKGZ1bmN0aW9uKGUpe3ZhciByLG49dChlWzBdWzBdLGVbMF1bMV0pWzBdLGk9dChlWzJdWzBdLGVbMl1bMV0pWzBdLGE9dChlWzFdWzBdLGVbMF1bMV0pWzFdLG89dChlWzFdWzBdLGVbMV1bMV0pWzFdO3JldHVybiBhPm8mJihyPWEsYT1vLG89ciksW1tuLGFdLFtpLG9dXX0pKX0pKSxzKTpyLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQubWFwKChmdW5jdGlvbih0KXtyZXR1cm5bW3RbMF1bMF0qQSx0WzBdWzFdKkFdLFt0WzFdWzBdKkEsdFsxXVsxXSpBXSxbdFsyXVswXSpBLHRbMl1bMV0qQV1dfSkpfSkpfSxudWxsIT1yJiZzLmxvYmVzKHIpLHN9S3QuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU+LS43MTA5ODg5NTk2MjA3NTY3P1cuaW52ZXJ0KHQsZS0uMDUyODAzNTI3NDU0Mik6US5pbnZlcnQodCxlKX0sUXQuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4oZSk+LjcxMDk4ODk1OTYyMDc1Njc/Vy5pbnZlcnQodCxlKyhlPjA/LjA1MjgwMzUyNzQ1NDI6LS4wNTI4MDM1Mjc0NTQyKSk6US5pbnZlcnQodCxlKX07dmFyIG9lPVtbW1stMTgwLDBdLFstMTAwLDkwXSxbLTQwLDBdXSxbWy00MCwwXSxbMzAsOTBdLFsxODAsMF1dXSxbW1stMTgwLDBdLFstMTYwLC05MF0sWy0xMDAsMF1dLFtbLTEwMCwwXSxbLTYwLC05MF0sWy0yMCwwXV0sW1stMjAsMF0sWzIwLC05MF0sWzgwLDBdXSxbWzgwLDBdLFsxNDAsLTkwXSxbMTgwLDBdXV1dO3ZhciBzZT1bW1tbLTE4MCwwXSxbLTEwMCw5MF0sWy00MCwwXV0sW1stNDAsMF0sWzMwLDkwXSxbMTgwLDBdXV0sW1tbLTE4MCwwXSxbLTE2MCwtOTBdLFstMTAwLDBdXSxbWy0xMDAsMF0sWy02MCwtOTBdLFstMjAsMF1dLFtbLTIwLDBdLFsyMCwtOTBdLFs4MCwwXV0sW1s4MCwwXSxbMTQwLC05MF0sWzE4MCwwXV1dXTt2YXIgbGU9W1tbWy0xODAsMF0sWy0xMDAsOTBdLFstNDAsMF1dLFtbLTQwLDBdLFszMCw5MF0sWzE4MCwwXV1dLFtbWy0xODAsMF0sWy0xNjAsLTkwXSxbLTEwMCwwXV0sW1stMTAwLDBdLFstNjAsLTkwXSxbLTIwLDBdXSxbWy0yMCwwXSxbMjAsLTkwXSxbODAsMF1dLFtbODAsMF0sWzE0MCwtOTBdLFsxODAsMF1dXV07dmFyIGNlPVtbW1stMTgwLDBdLFstOTAsOTBdLFswLDBdXSxbWzAsMF0sWzkwLDkwXSxbMTgwLDBdXV0sW1tbLTE4MCwwXSxbLTkwLC05MF0sWzAsMF1dLFtbMCwwXSxbOTAsLTkwXSxbMTgwLDBdXV1dO3ZhciB1ZT1bW1tbLTE4MCwzNV0sWy0zMCw5MF0sWzAsMzVdXSxbWzAsMzVdLFszMCw5MF0sWzE4MCwzNV1dXSxbW1stMTgwLC0xMF0sWy0xMDIsLTkwXSxbLTY1LC0xMF1dLFtbLTY1LC0xMF0sWzUsLTkwXSxbNzcsLTEwXV0sW1s3NywtMTBdLFsxMDMsLTkwXSxbMTgwLC0xMF1dXV07dmFyIGZlPVtbW1stMTgwLDBdLFstMTEwLDkwXSxbLTQwLDBdXSxbWy00MCwwXSxbMCw5MF0sWzQwLDBdXSxbWzQwLDBdLFsxMTAsOTBdLFsxODAsMF1dXSxbW1stMTgwLDBdLFstMTEwLC05MF0sWy00MCwwXV0sW1stNDAsMF0sWzAsLTkwXSxbNDAsMF1dLFtbNDAsMF0sWzExMCwtOTBdLFsxODAsMF1dXV07ZnVuY3Rpb24gaGUodCxlKXtyZXR1cm5bMy9rKnQqTCh5KnkvMy1lKmUpLGVdfWZ1bmN0aW9uIHBlKHQpe2Z1bmN0aW9uIGUoZSxyKXtpZihuKG4ocikteCk8dilyZXR1cm5bMCxyPDA/LTI6Ml07dmFyIGk9bShyKSxhPWgoKDEraSkvKDEtaSksdC8yKSxzPS41KihhKzEvYSkrbyhlKj10KTtyZXR1cm5bMiptKGUpL3MsKGEtMS9hKS9zXX1yZXR1cm4gZS5pbnZlcnQ9ZnVuY3Rpb24oZSxyKXt2YXIgaT1uKHIpO2lmKG4oaS0yKTx2KXJldHVybiBlP251bGw6WzAsZChyKSp4XTtpZihpPjIpcmV0dXJuIG51bGw7dmFyIG89KGUvPTIpKmUscz0oci89MikqcixsPTIqci8oMStvK3MpO3JldHVybiBsPWgoKDErbCkvKDEtbCksMS90KSxbYSgyKmUsMS1vLXMpL3QsUygobC0xKS8obCsxKSldfSxlfWhlLmludmVydD1mdW5jdGlvbih0LGUpe3JldHVybltrLzMqdC9MKHkqeS8zLWUqZSksZV19O3ZhciBkZT15L3c7ZnVuY3Rpb24gbWUodCxlKXtyZXR1cm5bdCooMStMKG8oZSkpKS8yLGUvKG8oZS8yKSpvKHQvNikpXX1mdW5jdGlvbiBnZSh0LGUpe3ZhciByPXQqdCxuPWUqZTtyZXR1cm5bdCooLjk3NTUzNCtuKigtLjAxNDMwNTkqci0uMTE5MTYxKy0uMDU0NzAwOSpuKSksZSooMS4wMDM4NCtyKiguMDgwMjg5NCstLjAyODU1Km4rMTk5MDI1ZS05KnIpK24qKC4wOTk4OTA5Ky0uMDQ5MTAzMipuKSldfWZ1bmN0aW9uIHZlKHQsZSl7cmV0dXJuW20odCkvbyhlKSxnKGUpKm8odCldfWZ1bmN0aW9uIHllKHQpe3ZhciBlPW8odCkscj1nKGIrdC8yKTtmdW5jdGlvbiBpKGksYSl7dmFyIG89YS10LHM9bihvKTx2P2kqZTpuKHM9YithLzIpPHZ8fG4obihzKS14KTx2PzA6aSpvL2MoZyhzKS9yKTtyZXR1cm5bcyxvXX1yZXR1cm4gaS5pbnZlcnQ9ZnVuY3Rpb24oaSxhKXt2YXIgbyxzPWErdDtyZXR1cm5bbihhKTx2P2kvZTpuKG89YitzLzIpPHZ8fG4obihvKS14KTx2PzA6aSpjKGcobykvcikvYSxzXX0saX1mdW5jdGlvbiB4ZSh0LGUpe3JldHVyblt0LDEuMjUqYyhnKGIrLjQqZSkpXX1mdW5jdGlvbiBiZSh0KXt2YXIgZT10Lmxlbmd0aC0xO2Z1bmN0aW9uIHIocixuKXtmb3IodmFyIGksYT1vKG4pLHM9Mi8oMSthKm8ocikpLGw9cyphKm0ociksYz1zKm0obiksdT1lLGY9dFt1XSxoPWZbMF0scD1mWzFdOy0tdT49MDspaD0oZj10W3VdKVswXStsKihpPWgpLWMqcCxwPWZbMV0rbCpwK2MqaTtyZXR1cm5baD1sKihpPWgpLWMqcCxwPWwqcCtjKmldfXJldHVybiByLmludmVydD1mdW5jdGlvbihyLHMpe3ZhciBsPTIwLGM9cix1PXM7ZG97Zm9yKHZhciBmLGg9ZSxwPXRbaF0sZD1wWzBdLGc9cFsxXSx2PTAseT0wOy0taD49MDspdj1kK2MqKGY9diktdSp5LHk9ZytjKnkrdSpmLGQ9KHA9dFtoXSlbMF0rYyooZj1kKS11KmcsZz1wWzFdK2MqZyt1KmY7dmFyIHgsYixfPSh2PWQrYyooZj12KS11KnkpKnYrKHk9ZytjKnkrdSpmKSp5O2MtPXg9KChkPWMqKGY9ZCktdSpnLXIpKnYrKGc9YypnK3UqZi1zKSp5KS9fLHUtPWI9KGcqdi1kKnkpL199d2hpbGUobih4KStuKGIpPjFlLTEyJiYtLWw+MCk7aWYobCl7dmFyIHc9TChjKmMrdSp1KSxUPTIqaSguNSp3KSxrPW0oVCk7cmV0dXJuW2EoYyprLHcqbyhUKSksdz9TKHUqay93KTowXX19LHJ9bWUuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9bih0KSxpPW4oZSksYT12LHM9eDtpPGRlP3MqPWkvZGU6YSs9NipFKGRlL2kpO2Zvcih2YXIgbD0wO2w8MjU7bCsrKXt2YXIgYz1tKHMpLHU9TChvKHMpKSxmPW0ocy8yKSxoPW8ocy8yKSxwPW0oYS82KSxkPW8oYS82KSxnPS41KmEqKDErdSktcix5PXMvKGgqZCktaSxiPXU/LS4yNSphKmMvdTowLF89LjUqKDErdSksdz0oMSsuNSpzKmYvaCkvKGgqZCksVD1zL2gqKHAvNikvKGQqZCksaz1iKlQtdypfLEE9KGcqVC15Kl8pL2ssTT0oeSpiLWcqdykvaztpZihzLT1BLGEtPU0sbihBKTx2JiZuKE0pPHYpYnJlYWt9cmV0dXJuW3Q8MD8tYTphLGU8MD8tczpzXX0sZ2UuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZCh0KSp5LGk9ZS8yLGE9NTA7ZG97dmFyIG89cipyLHM9aSppLGw9cippLGM9ciooLjk3NTUzNCtzKigtLjAxNDMwNTkqby0uMTE5MTYxKy0uMDU0NzAwOSpzKSktdCx1PWkqKDEuMDAzODQrbyooLjA4MDI4OTQrLS4wMjg1NSpzKzE5OTAyNWUtOSpvKStzKiguMDk5ODkwOSstLjA0OTEwMzIqcykpLWUsZj0uOTc1NTM0LXMqKC4xMTkxNjErMypvKi4wMTQzMDU5Ky4wNTQ3MDA5KnMpLGg9LWwqKC4yMzgzMjIrLjIxODgwMzYqcysuMDI4NjExOCpvKSxwPWwqKC4xNjA1Nzg4Kzc5NjFlLTcqbystLjA1NzEqcyksbT0xLjAwMzg0K28qKC4wODAyODk0KzE5OTAyNWUtOSpvKStzKigzKiguMDk5ODkwOS0uMDI4NTUqbyktLjI0NTUxNipzKSxnPWgqcC1tKmYseD0odSpoLWMqbSkvZyxiPShjKnAtdSpmKS9nO3ItPXgsaS09Yn13aGlsZSgobih4KT52fHxuKGIpPnYpJiYtLWE+MCk7cmV0dXJuIGEmJltyLGldfSx2ZS5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj10KnQsbj1lKmUrMSxpPXIrbixhPXQ/XypMKChpLUwoaSppLTQqcikpL3IpOjEvTChuKTtyZXR1cm5bUyh0KmEpLGQoZSkqRShhKV19LHhlLmludmVydD1mdW5jdGlvbih0LGUpe3JldHVyblt0LDIuNSppKHMoLjgqZSkpLS42MjUqeV19O3ZhciBfZT1bWy45OTcyNTIzLDBdLFsuMDA1MjUxMywtLjAwNDExNzVdLFsuMDA3NDYwNiwuMDA0ODEyNV0sWy0uMDE1Mzc4MywtLjE5NjgyNTNdLFsuMDYzNjg3MSwtLjE0MDgwMjddLFsuMzY2MDk3NiwtLjI5MzczODJdXSx3ZT1bWy45ODg3OSwwXSxbMCwwXSxbLS4wNTA5MDksMF0sWzAsMF0sWy4wNzU1MjgsMF1dLFRlPVtbLjk4NDI5OSwwXSxbLjAyMTE2NDIsLjAwMzc2MDhdLFstLjEwMzYwMTgsLS4wNTc1MTAyXSxbLS4wMzI5MDk1LC0uMDMyMDExOV0sWy4wNDk5NDcxLC4xMjIzMzM1XSxbLjAyNjA0NiwuMDg5OTgwNV0sWzczODhlLTcsLS4xNDM1NzkyXSxbLjAwNzU4NDgsLS4xMzM0MTA4XSxbLS4wMjE2NDczLC4wNzc2NjQ1XSxbLS4wMjI1MTYxLC4wODUzNjczXV0sa2U9W1suOTI0NSwwXSxbMCwwXSxbLjAxOTQzLDBdXSxBZT1bWy43MjEzMTYsMF0sWzAsMF0sWy0uMDA4ODE2MjUsLS4wMDYxNzMyNV1dO2Z1bmN0aW9uIE1lKHQscil7dmFyIG49ZS5nZW9Qcm9qZWN0aW9uKGJlKHQpKS5yb3RhdGUocikuY2xpcEFuZ2xlKDkwKSxpPWUuZ2VvUm90YXRpb24ociksYT1uLmNlbnRlcjtyZXR1cm4gZGVsZXRlIG4ucm90YXRlLG4uY2VudGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP2EoaSh0KSk6aS5pbnZlcnQoYSgpKX0sbn12YXIgU2U9TCg2KSxFZT1MKDcpO2Z1bmN0aW9uIExlKHQsZSl7dmFyIHI9Uyg3Km0oZSkvKDMqU2UpKTtyZXR1cm5bU2UqdCooMipvKDIqci8zKS0xKS9FZSw5Km0oci8zKS9FZV19ZnVuY3Rpb24gQ2UodCxlKXtmb3IodmFyIHIsaT0oMStfKSptKGUpLGE9ZSxzPTA7czwyNSYmKGEtPXI9KG0oYS8yKSttKGEpLWkpLyguNSpvKGEvMikrbyhhKSksIShuKHIpPHYpKTtzKyspO3JldHVyblt0KigxKzIqbyhhKS9vKGEvMikpLygzKncpLDIqTCgzKSptKGEvMikvTCgyK3cpXX1mdW5jdGlvbiBQZSh0LGUpe2Zvcih2YXIgcixpPUwoNi8oNCt5KSksYT0oMSt5LzQpKm0oZSkscz1lLzIsbD0wO2w8MjUmJihzLT1yPShzLzIrbShzKS1hKS8oLjUrbyhzKSksIShuKHIpPHYpKTtsKyspO3JldHVybltpKiguNStvKHMpKSp0LzEuNSxpKnNdfWZ1bmN0aW9uIEllKHQsZSl7dmFyIHI9ZSplLG49cipyLGk9cipuO3JldHVyblt0KiguODQ3MTktLjEzMDYzKnIraSppKiguMDU0OTQqci0uMDQ1MTUtLjAyMzI2Km4rLjAwMzMxKmkpKSxlKigxLjAxMTgzK24qbiooLjAxOTI2KnItLjAyNjI1LS4wMDM5NipuKSldfWZ1bmN0aW9uIE9lKHQsZSl7cmV0dXJuW3QqKDErbyhlKSkvMiwyKihlLWcoZS8yKSldfUxlLmludmVydD1mdW5jdGlvbih0LGUpe3ZhciByPTMqUyhlKkVlLzkpO3JldHVyblt0KkVlLyhTZSooMipvKDIqci8zKS0xKSksUygzKm0ocikqU2UvNyldfSxDZS5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj1lKkwoMit3KS8oMipMKDMpKSxuPTIqUyhyKTtyZXR1cm5bMyp3KnQvKDErMipvKG4pL28obi8yKSksUygocittKG4pKS8oMStfKSldfSxQZS5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj1MKDYvKDQreSkpLGk9ZS9yO3JldHVybiBuKG4oaSkteCk8diYmKGk9aTwwPy14OngpLFsxLjUqdC8ociooLjUrbyhpKSkpLFMoKGkvMittKGkpKS8oMSt5LzQpKV19LEllLmludmVydD1mdW5jdGlvbih0LGUpe3ZhciByLGksYSxvLHM9ZSxsPTI1O2Rve3MtPXI9KHMqKDEuMDExODMrKGE9KGk9cypzKSppKSphKiguMDE5MjYqaS0uMDI2MjUtLjAwMzk2KmEpKS1lKS8oMS4wMTE4MythKmEqKC4yMTE4NippLS4yMzYyNSstLjA1MTQ4KmEpKX13aGlsZShuKHIpPjFlLTEyJiYtLWw+MCk7cmV0dXJuW3QvKC44NDcxOS0uMTMwNjMqKGk9cypzKSsobz1pKihhPWkqaSkpKm8qKC4wNTQ5NCppLS4wNDUxNS0uMDIzMjYqYSsuMDAzMzEqbykpLHNdfSxPZS5pbnZlcnQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9ZS8yLGk9MCxhPTEvMDtpPDEwJiZuKGEpPnY7KytpKXt2YXIgcz1vKGUvMik7ZS09YT0oZS1nKGUvMiktcikvKDEtLjUvKHMqcykpfXJldHVyblsyKnQvKDErbyhlKSksZV19O3ZhciB6ZT1bW1tbLTE4MCwwXSxbLTkwLDkwXSxbMCwwXV0sW1swLDBdLFs5MCw5MF0sWzE4MCwwXV1dLFtbWy0xODAsMF0sWy05MCwtOTBdLFswLDBdXSxbWzAsMF0sWzkwLC05MF0sWzE4MCwwXV1dXTtmdW5jdGlvbiBEZSh0LGUpe3ZhciByPW0oZSksaT1vKGUpLGE9ZCh0KTtpZigwPT09dHx8bihlKT09PXgpcmV0dXJuWzAsZV07aWYoMD09PWUpcmV0dXJuW3QsMF07aWYobih0KT09PXgpcmV0dXJuW3QqaSx4KnJdO3ZhciBzPXkvKDIqdCktMip0L3ksbD0yKmUveSxjPSgxLWwqbCkvKHItbCksdT1zKnMsZj1jKmMsaD0xK3UvZixwPTErZi91LGc9KHMqci9jLXMvMikvaCx2PShmKnIvdStjLzIpL3AsYj12KnYtKGYqcipyL3UrYypyLTEpL3A7cmV0dXJuW3gqKGcrTChnKmcraSppL2gpKmEpLHgqKHYrTChiPDA/MDpiKSpkKC1lKnMpKmEpXX1EZS5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj0odC89eCkqdCxuPXIrKGUvPXgpKmUsaT15Knk7cmV0dXJuW3Q/KG4tMStMKCgxLW4pKigxLW4pKzQqcikpLygyKnQpKng6MCxWKChmdW5jdGlvbih0KXtyZXR1cm4gbiooeSptKHQpLTIqdCkqeSs0KnQqdCooZS1tKHQpKSsyKnkqdC1pKmV9KSwwKV19O2Z1bmN0aW9uIFJlKHQsZSl7dmFyIHI9ZSplO3JldHVyblt0LGUqKDEuMDE0OCtyKnIqKC4yMzE4NStyKiguMDI0MDYqci0uMTQ0OTkpKSldfWZ1bmN0aW9uIEZlKHQsZSl7aWYobihlKTx2KXJldHVyblt0LDBdO3ZhciByPWcoZSksaT10Km0oZSk7cmV0dXJuW20oaSkvcixlKygxLW8oaSkpL3JdfWZ1bmN0aW9uIEJlKHQsZSl7dmFyIHI9amUodFsxXSx0WzBdKSxuPWplKGVbMV0sZVswXSksaT1mdW5jdGlvbih0LGUpe3JldHVybiBhKHRbMF0qZVsxXS10WzFdKmVbMF0sdFswXSplWzBdK3RbMV0qZVsxXSl9KHIsbikscz1VZShyKS9VZShuKTtyZXR1cm4gTmUoWzEsMCx0WzBdWzBdLDAsMSx0WzBdWzFdXSxOZShbcywwLDAsMCxzLDBdLE5lKFtvKGkpLG0oaSksMCwtbShpKSxvKGkpLDBdLFsxLDAsLWVbMF1bMF0sMCwxLC1lWzBdWzFdXSkpKX1mdW5jdGlvbiBOZSh0LGUpe3JldHVyblt0WzBdKmVbMF0rdFsxXSplWzNdLHRbMF0qZVsxXSt0WzFdKmVbNF0sdFswXSplWzJdK3RbMV0qZVs1XSt0WzJdLHRbM10qZVswXSt0WzRdKmVbM10sdFszXSplWzFdK3RbNF0qZVs0XSx0WzNdKmVbMl0rdFs0XSplWzVdK3RbNV1dfWZ1bmN0aW9uIGplKHQsZSl7cmV0dXJuW3RbMF0tZVswXSx0WzFdLWVbMV1dfWZ1bmN0aW9uIFVlKHQpe3JldHVybiBMKHRbMF0qdFswXSt0WzFdKnRbMV0pfWZ1bmN0aW9uIFZlKHQscixpKXtmdW5jdGlvbiBhKHQsZSl7dmFyIG4saT1yKHQsZSksYT1pLnByb2plY3QoW3QqQSxlKkFdKTtyZXR1cm4obj1pLnRyYW5zZm9ybSk/W25bMF0qYVswXStuWzFdKmFbMV0rblsyXSwtKG5bM10qYVswXStuWzRdKmFbMV0rbls1XSldOihhWzFdPS1hWzFdLGEpfSFmdW5jdGlvbiB0KGUscil7aWYoZS5lZGdlcz1mdW5jdGlvbih0KXtmb3IodmFyIGU9dC5sZW5ndGgscj1bXSxuPXRbZS0xXSxpPTA7aTxlOysraSlyLnB1c2goW24sbj10W2ldXSk7cmV0dXJuIHJ9KGUuZmFjZSksci5mYWNlKXt2YXIgbj1lLnNoYXJlZD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcixuLGk9dC5sZW5ndGgsYT1udWxsLG89MDtvPGk7KytvKXtyPXRbb107Zm9yKHZhciBzPWUubGVuZ3RoOy0tcz49MDspaWYobj1lW3NdLHJbMF09PT1uWzBdJiZyWzFdPT09blsxXSl7aWYoYSlyZXR1cm5bYSxyXTthPXJ9fX0oZS5mYWNlLHIuZmFjZSksaT1CZShuLm1hcChyLnByb2plY3QpLG4ubWFwKGUucHJvamVjdCkpO2UudHJhbnNmb3JtPXIudHJhbnNmb3JtP05lKHIudHJhbnNmb3JtLGkpOmk7Zm9yKHZhciBhPXIuZWRnZXMsbz0wLHM9YS5sZW5ndGg7bzxzOysrbylIZShuWzBdLGFbb11bMV0pJiZIZShuWzFdLGFbb11bMF0pJiYoYVtvXT1lKSxIZShuWzBdLGFbb11bMF0pJiZIZShuWzFdLGFbb11bMV0pJiYoYVtvXT1lKTtmb3IoYT1lLmVkZ2VzLG89MCxzPWEubGVuZ3RoO288czsrK28pSGUoblswXSxhW29dWzBdKSYmSGUoblsxXSxhW29dWzFdKSYmKGFbb109ciksSGUoblswXSxhW29dWzFdKSYmSGUoblsxXSxhW29dWzBdKSYmKGFbb109cil9ZWxzZSBlLnRyYW5zZm9ybT1yLnRyYW5zZm9ybTtlLmNoaWxkcmVuJiZlLmNoaWxkcmVuLmZvckVhY2goKGZ1bmN0aW9uKHIpe3QocixlKX0pKTtyZXR1cm4gZX0odCx7dHJhbnNmb3JtOm51bGx9KSxxZSh0KSYmKGEuaW52ZXJ0PWZ1bmN0aW9uKGUsbil7dmFyIGk9ZnVuY3Rpb24gdChlLG4pe3ZhciBpPWUucHJvamVjdC5pbnZlcnQsYT1lLnRyYW5zZm9ybSxvPW47YSYmKGE9ZnVuY3Rpb24odCl7dmFyIGU9MS8odFswXSp0WzRdLXRbMV0qdFszXSk7cmV0dXJuW2UqdFs0XSwtZSp0WzFdLGUqKHRbMV0qdFs1XS10WzJdKnRbNF0pLC1lKnRbM10sZSp0WzBdLGUqKHRbMl0qdFszXS10WzBdKnRbNV0pXX0oYSksbz1bYVswXSpvWzBdK2FbMV0qb1sxXSthWzJdLGFbM10qb1swXSthWzRdKm9bMV0rYVs1XV0pO2lmKGkmJmU9PT1mdW5jdGlvbih0KXtyZXR1cm4gcih0WzBdKk0sdFsxXSpNKX0ocz1pKG8pKSlyZXR1cm4gcztmb3IodmFyIHMsbD1lLmNoaWxkcmVuLGM9MCx1PWwmJmwubGVuZ3RoO2M8dTsrK2MpaWYocz10KGxbY10sbikpcmV0dXJuIHN9KHQsW2UsLW5dKTtyZXR1cm4gaSYmKGlbMF0qPU0saVsxXSo9TSxpKX0pO3ZhciBvPWUuZ2VvUHJvamVjdGlvbihhKSxzPW8uc3RyZWFtO3JldHVybiBvLnN0cmVhbT1mdW5jdGlvbihyKXt2YXIgaT1vLnJvdGF0ZSgpLGE9cyhyKSxsPShvLnJvdGF0ZShbMCwwXSkscyhyKSk7cmV0dXJuIG8ucm90YXRlKGkpLGEuc3BoZXJlPWZ1bmN0aW9uKCl7bC5wb2x5Z29uU3RhcnQoKSxsLmxpbmVTdGFydCgpLGZ1bmN0aW9uIHQocixpLGEpe3ZhciBvLHMsbD1pLmVkZ2VzLGM9bC5sZW5ndGgsdT17dHlwZToiTXVsdGlQb2ludCIsY29vcmRpbmF0ZXM6aS5mYWNlfSxmPWkuZmFjZS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiA5MCE9PW4odFsxXSl9KSksaD1lLmdlb0JvdW5kcyh7dHlwZToiTXVsdGlQb2ludCIsY29vcmRpbmF0ZXM6Zn0pLHA9ITEsZD0tMSxtPWhbMV1bMF0taFswXVswXSxnPTE4MD09PW18fDM2MD09PW0/WyhoWzBdWzBdK2hbMV1bMF0pLzIsKGhbMF1bMV0raFsxXVsxXSkvMl06ZS5nZW9DZW50cm9pZCh1KTtpZihhKWZvcig7KytkPGMmJmxbZF0hPT1hOyk7KytkO2Zvcih2YXIgeT0wO3k8YzsrK3kpcz1sWyh5K2QpJWNdLEFycmF5LmlzQXJyYXkocyk/KHB8fChyLnBvaW50KChvPWUuZ2VvSW50ZXJwb2xhdGUoc1swXSxnKSh2KSlbMF0sb1sxXSkscD0hMCksci5wb2ludCgobz1lLmdlb0ludGVycG9sYXRlKHNbMV0sZykodikpWzBdLG9bMV0pKToocD0hMSxzIT09YSYmdChyLHMsaSkpfShsLHQpLGwubGluZUVuZCgpLGwucG9seWdvbkVuZCgpfSxhfSxvLmFuZ2xlKG51bGw9PWk/LTMwOmkqQSl9ZnVuY3Rpb24gSGUodCxlKXtyZXR1cm4gdCYmZSYmdFswXT09PWVbMF0mJnRbMV09PT1lWzFdfWZ1bmN0aW9uIHFlKHQpe3JldHVybiB0LnByb2plY3QuaW52ZXJ0fHx0LmNoaWxkcmVuJiZ0LmNoaWxkcmVuLnNvbWUocWUpfVJlLmludmVydD1mdW5jdGlvbih0LGUpe2U+MS43OTA4NTcxODM/ZT0xLjc5MDg1NzE4MzplPC0xLjc5MDg1NzE4MyYmKGU9LTEuNzkwODU3MTgzKTt2YXIgcixpPWU7ZG97dmFyIGE9aSppO2ktPXI9KGkqKDEuMDE0OCthKmEqKC4yMzE4NSthKiguMDI0MDYqYS0uMTQ0OTkpKSktZSkvKDEuMDE0OCthKmEqKDUqLjIzMTg1K2EqKC4yMTY1NCphLTEuMDE0OTMpKSl9d2hpbGUobihyKT52KTtyZXR1cm5bdCxpXX0sRmUuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7aWYobihlKTx2KXJldHVyblt0LDBdO3ZhciByLGk9dCp0K2UqZSxhPS41KmUscz0xMDtkb3t2YXIgbD1nKGEpLGM9MS9vKGEpLHU9aS0yKmUqYSthKmE7YS09cj0obCp1KzIqKGEtZSkpLygyK3UqYypjKzIqKGEtZSkqbCl9d2hpbGUobihyKT52JiYtLXM+MCk7cmV0dXJuIGw9ZyhhKSxbKG4oZSk8bihhKzEvbCk/Uyh0KmwpOmQoZSkqZCh0KSooRShuKHQqbCkpK3gpKS9tKGEpLGFdfTt2YXIgR2U9W1swLDkwXSxbLTkwLDBdLFswLDBdLFs5MCwwXSxbMTgwLDBdLFswLC05MF1dLFllPVtbMCwyLDFdLFswLDMsMl0sWzUsMSwyXSxbNSwyLDNdLFswLDEsNF0sWzAsNCwzXSxbNSw0LDFdLFs1LDMsNF1dLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gR2VbdF19KSl9KSk7dmFyIFdlPTIvTCgzKTtmdW5jdGlvbiBYZSh0LGUpe3ZhciByPWx0KHQsZSk7cmV0dXJuW3JbMF0qV2UsclsxXV19ZnVuY3Rpb24gWmUodCxlKXtmb3IodmFyIHI9MCxuPXQubGVuZ3RoLGk9MDtyPG47KytyKWkrPXRbcl0qZVtyXTtyZXR1cm4gaX1mdW5jdGlvbiBKZSh0KXtyZXR1cm5bYSh0WzFdLHRbMF0pKkEsUyh1KC0xLGYoMSx0WzJdKSkpKkFdfWZ1bmN0aW9uIEtlKHQpe3ZhciBlPXRbMF0qTSxyPXRbMV0qTSxuPW8ocik7cmV0dXJuW24qbyhlKSxuKm0oZSksbShyKV19ZnVuY3Rpb24gUWUoKXt9ZnVuY3Rpb24gJGUodCxlKXtyZXR1cm57dHlwZToiRmVhdHVyZUNvbGxlY3Rpb24iLGZlYXR1cmVzOnQuZmVhdHVyZXMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdHIodCxlKX0pKX19ZnVuY3Rpb24gdHIodCxlKXtyZXR1cm57dHlwZToiRmVhdHVyZSIsaWQ6dC5pZCxwcm9wZXJ0aWVzOnQucHJvcGVydGllcyxnZW9tZXRyeTplcih0Lmdlb21ldHJ5LGUpfX1mdW5jdGlvbiBlcih0LHIpe2lmKCF0KXJldHVybiBudWxsO2lmKCJHZW9tZXRyeUNvbGxlY3Rpb24iPT09dC50eXBlKXJldHVybiBmdW5jdGlvbih0LGUpe3JldHVybnt0eXBlOiJHZW9tZXRyeUNvbGxlY3Rpb24iLGdlb21ldHJpZXM6dC5nZW9tZXRyaWVzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGVyKHQsZSl9KSl9fSh0LHIpO3ZhciBuO3N3aXRjaCh0LnR5cGUpe2Nhc2UiUG9pbnQiOmNhc2UiTXVsdGlQb2ludCI6bj1pcjticmVhaztjYXNlIkxpbmVTdHJpbmciOmNhc2UiTXVsdGlMaW5lU3RyaW5nIjpuPWFyO2JyZWFrO2Nhc2UiUG9seWdvbiI6Y2FzZSJNdWx0aVBvbHlnb24iOmNhc2UiU3BoZXJlIjpuPW9yO2JyZWFrO2RlZmF1bHQ6cmV0dXJuIG51bGx9cmV0dXJuIGUuZ2VvU3RyZWFtKHQscihuKSksbi5yZXN1bHQoKX1YZS5pbnZlcnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbHQuaW52ZXJ0KHQvV2UsZSl9O3ZhciBycj1bXSxucj1bXSxpcj17cG9pbnQ6ZnVuY3Rpb24odCxlKXtyci5wdXNoKFt0LGVdKX0scmVzdWx0OmZ1bmN0aW9uKCl7dmFyIHQ9cnIubGVuZ3RoP3JyLmxlbmd0aDwyP3t0eXBlOiJQb2ludCIsY29vcmRpbmF0ZXM6cnJbMF19Ont0eXBlOiJNdWx0aVBvaW50Iixjb29yZGluYXRlczpycn06bnVsbDtyZXR1cm4gcnI9W10sdH19LGFyPXtsaW5lU3RhcnQ6UWUscG9pbnQ6ZnVuY3Rpb24odCxlKXtyci5wdXNoKFt0LGVdKX0sbGluZUVuZDpmdW5jdGlvbigpe3JyLmxlbmd0aCYmKG5yLnB1c2gocnIpLHJyPVtdKX0scmVzdWx0OmZ1bmN0aW9uKCl7dmFyIHQ9bnIubGVuZ3RoP25yLmxlbmd0aDwyP3t0eXBlOiJMaW5lU3RyaW5nIixjb29yZGluYXRlczpuclswXX06e3R5cGU6Ik11bHRpTGluZVN0cmluZyIsY29vcmRpbmF0ZXM6bnJ9Om51bGw7cmV0dXJuIG5yPVtdLHR9fSxvcj17cG9seWdvblN0YXJ0OlFlLGxpbmVTdGFydDpRZSxwb2ludDpmdW5jdGlvbih0LGUpe3JyLnB1c2goW3QsZV0pfSxsaW5lRW5kOmZ1bmN0aW9uKCl7dmFyIHQ9cnIubGVuZ3RoO2lmKHQpe2Rve3JyLnB1c2gocnJbMF0uc2xpY2UoKSl9d2hpbGUoKyt0PDQpO25yLnB1c2gocnIpLHJyPVtdfX0scG9seWdvbkVuZDpRZSxyZXN1bHQ6ZnVuY3Rpb24oKXtpZighbnIubGVuZ3RoKXJldHVybiBudWxsO3ZhciB0PVtdLGU9W107cmV0dXJuIG5yLmZvckVhY2goKGZ1bmN0aW9uKHIpeyFmdW5jdGlvbih0KXtpZigoZT10Lmxlbmd0aCk8NClyZXR1cm4hMTtmb3IodmFyIGUscj0wLG49dFtlLTFdWzFdKnRbMF1bMF0tdFtlLTFdWzBdKnRbMF1bMV07KytyPGU7KW4rPXRbci0xXVsxXSp0W3JdWzBdLXRbci0xXVswXSp0W3JdWzFdO3JldHVybiBuPD0wfShyKT9lLnB1c2gocik6dC5wdXNoKFtyXSl9KSksZS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgcj1lWzBdO3Quc29tZSgoZnVuY3Rpb24odCl7aWYoZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9ZVswXSxuPWVbMV0saT0hMSxhPTAsbz10Lmxlbmd0aCxzPW8tMTthPG87cz1hKyspe3ZhciBsPXRbYV0sYz1sWzBdLHU9bFsxXSxmPXRbc10saD1mWzBdLHA9ZlsxXTt1Pm5ecD5uJiZyPChoLWMpKihuLXUpLyhwLXUpK2MmJihpPSFpKX1yZXR1cm4gaX0odFswXSxyKSlyZXR1cm4gdC5wdXNoKGUpLCEwfSkpfHx0LnB1c2goW2VdKX0pKSxucj1bXSx0Lmxlbmd0aD90Lmxlbmd0aD4xP3t0eXBlOiJNdWx0aVBvbHlnb24iLGNvb3JkaW5hdGVzOnR9Ont0eXBlOiJQb2x5Z29uIixjb29yZGluYXRlczp0WzBdfTpudWxsfX07ZnVuY3Rpb24gc3IodCl7dmFyIHI9dCh4LDApWzBdLXQoLXgsMClbMF07ZnVuY3Rpb24gaShlLGkpe3ZhciBhPW4oZSk8eCxvPXQoYT9lOmU+MD9lLXk6ZSt5LGkpLHM9KG9bMF0tb1sxXSkqXyxsPShvWzBdK29bMV0pKl87aWYoYSlyZXR1cm5bcyxsXTt2YXIgYz1yKl8sdT1zPjBebD4wPy0xOjE7cmV0dXJuW3Uqcy1kKGwpKmMsdSpsLWQocykqY119cmV0dXJuIHQuaW52ZXJ0JiYoaS5pbnZlcnQ9ZnVuY3Rpb24oZSxpKXt2YXIgYT0oZStpKSpfLG89KGktZSkqXyxzPW4oYSk8LjUqciYmbihvKTwuNSpyO2lmKCFzKXt2YXIgbD1yKl8sYz1hPjBebz4wPy0xOjEsdT0tYyplKyhvPjA/MTotMSkqbCxmPS1jKmkrKGE+MD8xOi0xKSpsO2E9KC11LWYpKl8sbz0odS1mKSpffXZhciBoPXQuaW52ZXJ0KGEsbyk7cmV0dXJuIHN8fChoWzBdKz1hPjA/eToteSksaH0pLGUuZ2VvUHJvamVjdGlvbihpKS5yb3RhdGUoWy05MCwtOTAsNDVdKS5jbGlwQW5nbGUoMTc5Ljk5OSl9ZnVuY3Rpb24gbHIoKXtyZXR1cm4gc3IoVXQpLnNjYWxlKDExMS40OCl9ZnVuY3Rpb24gY3IodCl7dmFyIGU9bSh0KTtmdW5jdGlvbiByKHIsbil7dmFyIGE9ZT9nKHIqZS8yKS9lOnIvMjtpZighbilyZXR1cm5bMiphLC10XTt2YXIgcz0yKmkoYSptKG4pKSxsPTEvZyhuKTtyZXR1cm5bbShzKSpsLG4rKDEtbyhzKSkqbC10XX1yZXR1cm4gci5pbnZlcnQ9ZnVuY3Rpb24ocixhKXtpZihuKGErPXQpPHYpcmV0dXJuW2U/MippKGUqci8yKS9lOnIsMF07dmFyIHMsbD1yKnIrYSphLGM9MCx1PTEwO2Rve3ZhciBmPWcoYyksaD0xL28oYykscD1sLTIqYSpjK2MqYztjLT1zPShmKnArMiooYy1hKSkvKDIrcCpoKmgrMiooYy1hKSpmKX13aGlsZShuKHMpPnYmJi0tdT4wKTt2YXIgZD1yKihmPWcoYykpLHg9ZyhuKGEpPG4oYysxL2YpPy41KlMoZCk6LjUqRShkKSt5LzQpL20oYyk7cmV0dXJuW2U/MippKGUqeCkvZToyKngsY119LHJ9dmFyIHVyPVtbLjk5ODYsLS4wNjJdLFsxLDBdLFsuOTk4NiwuMDYyXSxbLjk5NTQsLjEyNF0sWy45OSwuMTg2XSxbLjk4MjIsLjI0OF0sWy45NzMsLjMxXSxbLjk2LC4zNzJdLFsuOTQyNywuNDM0XSxbLjkyMTYsLjQ5NThdLFsuODk2MiwuNTU3MV0sWy44Njc5LC42MTc2XSxbLjgzNSwuNjc2OV0sWy43OTg2LC43MzQ2XSxbLjc1OTcsLjc5MDNdLFsuNzE4NiwuODQzNV0sWy42NzMyLC44OTM2XSxbLjYyMTMsLjkzOTRdLFsuNTcyMiwuOTc2MV0sWy41MzIyLDFdXTtmdW5jdGlvbiBmcih0LGUpe3ZhciByLGk9ZigxOCwzNipuKGUpL3kpLGE9bChpKSxvPWktYSxzPShyPXVyW2FdKVswXSxjPXJbMV0sdT0ocj11clsrK2FdKVswXSxoPXJbMV0scD0ocj11cltmKDE5LCsrYSldKVswXSxkPXJbMV07cmV0dXJuW3QqKHUrbyoocC1zKS8yK28qbyoocC0yKnUrcykvMiksKGU+MD94Oi14KSooaCtvKihkLWMpLzIrbypvKihkLTIqaCtjKS8yKV19ZnVuY3Rpb24gaHIodCxlKXt2YXIgcj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUscil7dmFyIG49byhyKSxpPSh0LTEpLyh0LW4qbyhlKSk7cmV0dXJuW2kqbiptKGUpLGkqbShyKV19cmV0dXJuIGUuaW52ZXJ0PWZ1bmN0aW9uKGUscil7dmFyIG49ZSplK3IqcixpPUwobiksbz0odC1MKDEtbioodCsxKS8odC0xKSkpLygodC0xKS9pK2kvKHQtMSkpO3JldHVyblthKGUqbyxpKkwoMS1vKm8pKSxpP1MocipvL2kpOjBdfSxlfSh0KTtpZighZSlyZXR1cm4gcjt2YXIgbj1vKGUpLGk9bShlKTtmdW5jdGlvbiBzKGUsYSl7dmFyIG89cihlLGEpLHM9b1sxXSxsPXMqaS8odC0xKStuO3JldHVybltvWzBdKm4vbCxzL2xdfXJldHVybiBzLmludmVydD1mdW5jdGlvbihlLGEpe3ZhciBvPSh0LTEpLyh0LTEtYSppKTtyZXR1cm4gci5pbnZlcnQobyplLG8qYSpuKX0sc311ci5mb3JFYWNoKChmdW5jdGlvbih0KXt0WzFdKj0xLjAxNDR9KSksZnIuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS94LGk9OTAqcixhPWYoMTgsbihpLzUpKSxvPXUoMCxsKGEpKTtkb3t2YXIgcz11cltvXVsxXSxjPXVyW28rMV1bMV0saD11cltmKDE5LG8rMildWzFdLHA9aC1zLGQ9aC0yKmMrcyxtPTIqKG4ociktYykvcCxnPWQvcCx2PW0qKDEtZyptKigxLTIqZyptKSk7aWYodj49MHx8MT09PW8pe2k9KGU+PTA/NTotNSkqKHYrYSk7dmFyIHksYj01MDtkb3t2PShhPWYoMTgsbihpKS81KSktKG89bChhKSkscz11cltvXVsxXSxjPXVyW28rMV1bMV0saD11cltmKDE5LG8rMildWzFdLGktPSh5PShlPj0wP3g6LXgpKihjK3YqKGgtcykvMit2KnYqKGgtMipjK3MpLzIpLWUpKkF9d2hpbGUobih5KT4xZS0xMiYmLS1iPjApO2JyZWFrfX13aGlsZSgtLW8+PTApO3ZhciBfPXVyW29dWzBdLHc9dXJbbysxXVswXSxUPXVyW2YoMTksbysyKV1bMF07cmV0dXJuW3QvKHcrdiooVC1fKS8yK3YqdiooVC0yKncrXykvMiksaSpNXX07dmFyIHByPS0xNzkuOTk5OSxkcj0xNzkuOTk5OSxtcj0tODkuOTk5OTtmdW5jdGlvbiBncih0KXtyZXR1cm4gdC5sZW5ndGg+MH1mdW5jdGlvbiB2cih0KXtyZXR1cm4tOTA9PT10fHw5MD09PXQ/WzAsdF06Wy0xODAsKGU9dCxNYXRoLmZsb29yKDFlNCplKS8xZTQpXTt2YXIgZX1mdW5jdGlvbiB5cih0KXt2YXIgZT10WzBdLHI9dFsxXSxuPSExO3JldHVybiBlPD1wcj8oZT0tMTgwLG49ITApOmU+PWRyJiYoZT0xODAsbj0hMCkscjw9bXI/KHI9LTkwLG49ITApOnI+PTg5Ljk5OTkmJihyPTkwLG49ITApLG4/W2Uscl06dH1mdW5jdGlvbiB4cih0KXtyZXR1cm4gdC5tYXAoeXIpfWZ1bmN0aW9uIGJyKHQsZSxyKXtmb3IodmFyIG49MCxpPXQubGVuZ3RoO248aTsrK24pe3ZhciBhPXRbbl0uc2xpY2UoKTtyLnB1c2goe2luZGV4Oi0xLHBvbHlnb246ZSxyaW5nOmF9KTtmb3IodmFyIG89MCxzPWEubGVuZ3RoO288czsrK28pe3ZhciBsPWFbb10sYz1sWzBdLHU9bFsxXTtpZihjPD1wcnx8Yz49ZHJ8fHU8PW1yfHx1Pj04OS45OTk5KXthW29dPXlyKGwpO2Zvcih2YXIgZj1vKzE7ZjxzOysrZil7dmFyIGg9YVtmXSxwPWhbMF0sZD1oWzFdO2lmKHA+cHImJnA8ZHImJmQ+bXImJmQ8ODkuOTk5OSlicmVha31pZihmPT09bysxKWNvbnRpbnVlO2lmKG8pe3ZhciBtPXtpbmRleDotMSxwb2x5Z29uOmUscmluZzphLnNsaWNlKDAsbysxKX07bS5yaW5nW20ucmluZy5sZW5ndGgtMV09dnIodSkscltyLmxlbmd0aC0xXT1tfWVsc2Ugci5wb3AoKTtpZihmPj1zKWJyZWFrO3IucHVzaCh7aW5kZXg6LTEscG9seWdvbjplLHJpbmc6YT1hLnNsaWNlKGYtMSl9KSxhWzBdPXZyKGFbMF1bMV0pLG89LTEscz1hLmxlbmd0aH19fX1mdW5jdGlvbiBfcih0KXt2YXIgZSxyLG4saSxhLG8scz10Lmxlbmd0aCxsPXt9LGM9e307Zm9yKGU9MDtlPHM7KytlKW49KHI9dFtlXSkucmluZ1swXSxhPXIucmluZ1tyLnJpbmcubGVuZ3RoLTFdLG5bMF0hPT1hWzBdfHxuWzFdIT09YVsxXT8oci5pbmRleD1lLGxbbl09Y1thXT1yKTooci5wb2x5Z29uLnB1c2goci5yaW5nKSx0W2VdPW51bGwpO2ZvcihlPTA7ZTxzOysrZSlpZihyPXRbZV0pe2lmKG49ci5yaW5nWzBdLGE9ci5yaW5nW3IucmluZy5sZW5ndGgtMV0saT1jW25dLG89bFthXSxkZWxldGUgbFtuXSxkZWxldGUgY1thXSxuWzBdPT09YVswXSYmblsxXT09PWFbMV0pe3IucG9seWdvbi5wdXNoKHIucmluZyk7Y29udGludWV9aT8oZGVsZXRlIGNbbl0sZGVsZXRlIGxbaS5yaW5nWzBdXSxpLnJpbmcucG9wKCksdFtpLmluZGV4XT1udWxsLHI9e2luZGV4Oi0xLHBvbHlnb246aS5wb2x5Z29uLHJpbmc6aS5yaW5nLmNvbmNhdChyLnJpbmcpfSxpPT09bz9yLnBvbHlnb24ucHVzaChyLnJpbmcpOihyLmluZGV4PXMrKyx0LnB1c2gobFtyLnJpbmdbMF1dPWNbci5yaW5nW3IucmluZy5sZW5ndGgtMV1dPXIpKSk6bz8oZGVsZXRlIGxbYV0sZGVsZXRlIGNbby5yaW5nW28ucmluZy5sZW5ndGgtMV1dLHIucmluZy5wb3AoKSxyPXtpbmRleDpzKysscG9seWdvbjpvLnBvbHlnb24scmluZzpyLnJpbmcuY29uY2F0KG8ucmluZyl9LHRbby5pbmRleF09bnVsbCx0LnB1c2gobFtyLnJpbmdbMF1dPWNbci5yaW5nW3IucmluZy5sZW5ndGgtMV1dPXIpKTooci5yaW5nLnB1c2goci5yaW5nWzBdKSxyLnBvbHlnb24ucHVzaChyLnJpbmcpKX19ZnVuY3Rpb24gd3IodCl7dmFyIGU9e3R5cGU6IkZlYXR1cmUiLGdlb21ldHJ5OlRyKHQuZ2VvbWV0cnkpfTtyZXR1cm4gbnVsbCE9dC5pZCYmKGUuaWQ9dC5pZCksbnVsbCE9dC5iYm94JiYoZS5iYm94PXQuYmJveCksbnVsbCE9dC5wcm9wZXJ0aWVzJiYoZS5wcm9wZXJ0aWVzPXQucHJvcGVydGllcyksZX1mdW5jdGlvbiBUcih0KXtpZihudWxsPT10KXJldHVybiB0O3ZhciBlLHIsbixpO3N3aXRjaCh0LnR5cGUpe2Nhc2UiR2VvbWV0cnlDb2xsZWN0aW9uIjplPXt0eXBlOiJHZW9tZXRyeUNvbGxlY3Rpb24iLGdlb21ldHJpZXM6dC5nZW9tZXRyaWVzLm1hcChUcil9O2JyZWFrO2Nhc2UiUG9pbnQiOmU9e3R5cGU6IlBvaW50Iixjb29yZGluYXRlczp5cih0LmNvb3JkaW5hdGVzKX07YnJlYWs7Y2FzZSJNdWx0aVBvaW50IjpjYXNlIkxpbmVTdHJpbmciOmU9e3R5cGU6dC50eXBlLGNvb3JkaW5hdGVzOnhyKHQuY29vcmRpbmF0ZXMpfTticmVhaztjYXNlIk11bHRpTGluZVN0cmluZyI6ZT17dHlwZToiTXVsdGlMaW5lU3RyaW5nIixjb29yZGluYXRlczp0LmNvb3JkaW5hdGVzLm1hcCh4cil9O2JyZWFrO2Nhc2UiUG9seWdvbiI6dmFyIGE9W107YnIodC5jb29yZGluYXRlcyxhLHI9W10pLF9yKHIpLGU9e3R5cGU6IlBvbHlnb24iLGNvb3JkaW5hdGVzOmF9O2JyZWFrO2Nhc2UiTXVsdGlQb2x5Z29uIjpyPVtdLG49LTEsaT10LmNvb3JkaW5hdGVzLmxlbmd0aDtmb3IodmFyIG89bmV3IEFycmF5KGkpOysrbjxpOylicih0LmNvb3JkaW5hdGVzW25dLG9bbl09W10scik7X3IociksZT17dHlwZToiTXVsdGlQb2x5Z29uIixjb29yZGluYXRlczpvLmZpbHRlcihncil9O2JyZWFrO2RlZmF1bHQ6cmV0dXJuIHR9cmV0dXJuIG51bGwhPXQuYmJveCYmKGUuYmJveD10LmJib3gpLGV9ZnVuY3Rpb24ga3IodCxlKXt2YXIgcj1nKGUvMiksbj1tKGIqcik7cmV0dXJuW3QqKC43NDQ4Mi0uMzQ1ODgqbipuKSwxLjcwNzExKnJdfWZ1bmN0aW9uIEFyKHQscixuKXt2YXIgaT1lLmdlb0ludGVycG9sYXRlKHIsbiksYT1pKC41KSxvPWUuZ2VvUm90YXRpb24oWy1hWzBdLC1hWzFdXSkocikscz1pLmRpc3RhbmNlLzIsbD0tUyhtKG9bMV0qTSkvbShzKSksYz1bLWFbMF0sLWFbMV0sLShvWzBdPjA/eS1sOmwpKkFdLHU9ZS5nZW9Qcm9qZWN0aW9uKHQocykpLnJvdGF0ZShjKSxmPWUuZ2VvUm90YXRpb24oYyksaD11LmNlbnRlcjtyZXR1cm4gZGVsZXRlIHUucm90YXRlLHUuY2VudGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP2goZih0KSk6Zi5pbnZlcnQoaCgpKX0sdS5jbGlwQW5nbGUoOTApfWZ1bmN0aW9uIE1yKHQpe3ZhciByPW8odCk7ZnVuY3Rpb24gbih0LG4pe3ZhciBpPWUuZ2VvR25vbW9uaWNSYXcodCxuKTtyZXR1cm4gaVswXSo9cixpfXJldHVybiBuLmludmVydD1mdW5jdGlvbih0LG4pe3JldHVybiBlLmdlb0dub21vbmljUmF3LmludmVydCh0L3Isbil9LG59ZnVuY3Rpb24gU3IodCxlKXtyZXR1cm4gQXIoTXIsdCxlKX1mdW5jdGlvbiBFcih0KXtpZighKHQqPTIpKXJldHVybiBlLmdlb0F6aW11dGhhbEVxdWlkaXN0YW50UmF3O3ZhciByPS10LzIsbj0tcixpPXQqdCxzPWcobiksbD0uNS9tKG4pO2Z1bmN0aW9uIGMoZSxhKXt2YXIgcz1FKG8oYSkqbyhlLXIpKSxsPUUobyhhKSpvKGUtbikpO3JldHVyblsoKHMqPXMpLShsKj1sKSkvKDIqdCksKGE8MD8tMToxKSpMKDQqaSpsLShpLXMrbCkqKGktcytsKSkvKDIqdCldfXJldHVybiBjLmludmVydD1mdW5jdGlvbih0LGUpe3ZhciBpLGMsdT1lKmUsZj1vKEwodSsoaT10K3IpKmkpKSxoPW8oTCh1KyhpPXQrbikqaSkpO3JldHVyblthKGM9Zi1oLGk9KGYraCkqcyksKGU8MD8tMToxKSpFKEwoaSppK2MqYykqbCldfSxjfWZ1bmN0aW9uIExyKHQsZSl7cmV0dXJuIEFyKEVyLHQsZSl9ZnVuY3Rpb24gQ3IodCxlKXtpZihuKGUpPHYpcmV0dXJuW3QsMF07dmFyIHI9bihlL3gpLGk9UyhyKTtpZihuKHQpPHZ8fG4obihlKS14KTx2KXJldHVyblswLGQoZSkqeSpnKGkvMildO3ZhciBhPW8oaSkscz1uKHkvdC10L3kpLzIsbD1zKnMsYz1hLyhyK2EtMSksdT1jKigyL3ItMSksZj11KnUsaD1mK2wscD1jLWYsbT1sK2M7cmV0dXJuW2QodCkqeSoocypwK0wobCpwKnAtaCooYypjLWYpKSkvaCxkKGUpKnkqKHUqbS1zKkwoKGwrMSkqaC1tKm0pKS9oXX1mdW5jdGlvbiBQcih0LGUpe2lmKG4oZSk8dilyZXR1cm5bdCwwXTt2YXIgcj1uKGUveCksaT1TKHIpO2lmKG4odCk8dnx8bihuKGUpLXgpPHYpcmV0dXJuWzAsZChlKSp5KmcoaS8yKV07dmFyIGE9byhpKSxzPW4oeS90LXQveSkvMixsPXMqcyxjPWEqKEwoMStsKS1zKmEpLygxK2wqcipyKTtyZXR1cm5bZCh0KSp5KmMsZChlKSp5KkwoMS1jKigyKnMrYykpXX1mdW5jdGlvbiBJcih0LGUpe2lmKG4oZSk8dilyZXR1cm5bdCwwXTt2YXIgcj1lL3gsaT1TKHIpO2lmKG4odCk8dnx8bihuKGUpLXgpPHYpcmV0dXJuWzAseSpnKGkvMildO3ZhciBhPSh5L3QtdC95KS8yLHM9ci8oMStvKGkpKTtyZXR1cm5beSooZCh0KSpMKGEqYSsxLXMqcyktYSkseSpzXX1mdW5jdGlvbiBPcih0LGUpe2lmKCFlKXJldHVyblt0LDBdO3ZhciByPW4oZSk7aWYoIXR8fHI9PT14KXJldHVyblswLGVdO3ZhciBpPXIveCxhPWkqaSxvPSg4KmktYSooYSsyKS01KS8oMiphKihpLTEpKSxzPW8qbyxsPWkqbyxjPWErcysyKmwsdT1pKzMqbyxmPXQveCxoPWYrMS9mLHA9ZChuKHQpLXgpKkwoaCpoLTQpLG09cCpwLGc9KHAqKGMrcy0xKSsyKkwoYyooYStzKm0tMSkrKDEtYSkqKGEqKHUqdSs0KnMpKzEyKmwqcys0KnMqcykpKS8oNCpjK20pO3JldHVybltkKHQpKngqZyxkKGUpKngqTCgxK3AqbihnKS1nKmcpXX1mdW5jdGlvbiB6cih0LGUscixuKXt2YXIgaT15LzM7dD11KHQsdiksZT11KGUsdiksdD1mKHQseCksZT1mKGUseS12KSxyPXUociwwKSxyPWYociwxMDAtdik7dmFyIHM9KG49dShuLHYpKS8xMDAsbD1FKChyLzEwMCsxKSpvKGkpKS9pLGM9bSh0KS9tKGwqeCksaD1lL3kscD1MKHMqbSh0LzIpL20oZS8yKSk7cmV0dXJuIGZ1bmN0aW9uKHQsZSxyLG4saSl7ZnVuY3Rpb24gcyhhLHMpe3ZhciBsPXIqbShuKnMpLGM9TCgxLWwqbCksdT1MKDIvKDErYypvKGEqPWkpKSk7cmV0dXJuW3QqYyp1Km0oYSksZSpsKnVdfXJldHVybiBzLmludmVydD1mdW5jdGlvbihvLHMpe3ZhciBsPW8vdCxjPXMvZSx1PUwobCpsK2MqYyksZj0yKlModS8yKTtyZXR1cm5bYShvKmcoZiksdCp1KS9pLHUmJlMocyptKGYpLyhlKnIqdSkpL25dfSxzfShwL0woaCpjKmwpLDEvKHAqTChoKmMqbCkpLGMsbCxoKX1mdW5jdGlvbiBEcigpe3ZhciB0PTY1Kk0scj02MCpNLG49MjAsaT0yMDAsYT1lLmdlb1Byb2plY3Rpb25NdXRhdG9yKHpyKSxvPWEodCxyLG4saSk7cmV0dXJuIG8ucG9sZWxpbmU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/YSh0PStlKk0scixuLGkpOnQqQX0sby5wYXJhbGxlbHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/YSh0LHI9K2UqTSxuLGkpOnIqQX0sby5pbmZsYXRpb249ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/YSh0LHIsbj0rZSxpKTpufSxvLnJhdGlvPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP2EodCxyLG4saT0rZSk6aX0sby5zY2FsZSgxNjMuNzc1KX1rci5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj1lLzEuNzA3MTEsbj1tKGIqcik7cmV0dXJuW3QvKC43NDQ4Mi0uMzQ1ODgqbipuKSwyKmkocildfSxDci5pbnZlcnQ9ZnVuY3Rpb24odCxlKXtpZihuKGUpPHYpcmV0dXJuW3QsMF07aWYobih0KTx2KXJldHVyblswLHgqbSgyKmkoZS95KSldO3ZhciByPSh0Lz15KSp0LGE9KGUvPXkpKmUscz1yK2EsbD1zKnMsYz0tbihlKSooMStzKSx1PWMtMiphK3IsZj0tMipjKzErMiphK2wsaD1hL2YrKDIqdSp1KnUvKGYqZipmKS05KmMqdS8oZipmKSkvMjcscD0oYy11KnUvKDMqZikpL2YsZz0yKkwoLXAvMyksYj1FKDMqaC8ocCpnKSkvMztyZXR1cm5beSoocy0xK0woMSsyKihyLWEpK2wpKS8oMip0KSxkKGUpKnkqKC1nKm8oYit5LzMpLXUvKDMqZikpXX0sUHIuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7aWYoIXQpcmV0dXJuWzAseCptKDIqaShlL3kpKV07dmFyIHI9bih0L3kpLG89KDEtcipyLShlLz15KSplKS8oMipyKSxzPUwobypvKzEpO3JldHVybltkKHQpKnkqKHMtbyksZChlKSp4Km0oMiphKEwoKDEtMipvKnIpKihvK3MpLXIpLEwocytvK3IpKSldfSxJci5pbnZlcnQ9ZnVuY3Rpb24odCxlKXtpZighZSlyZXR1cm5bdCwwXTt2YXIgcj1lL3ksbj0oeSp5KigxLXIqciktdCp0KS8oMip5KnQpO3JldHVyblt0P3kqKGQodCkqTChuKm4rMSktbik6MCx4Km0oMippKHIpKV19LE9yLmludmVydD1mdW5jdGlvbih0LGUpe3ZhciByO2lmKCF0fHwhZSlyZXR1cm5bdCxlXTtlLz15O3ZhciBpPWQodCkqdC94LGE9KGkqaS0xKzQqZSplKS9uKGkpLG89YSphLHM9MiplLGw9NTA7ZG97dmFyIGM9cypzLHU9KDgqcy1jKihjKzIpLTUpLygyKmMqKHMtMSkpLGY9KDMqcy1jKnMtMTApLygyKmMqcyksaD11KnUscD1zKnUsbT1zK3UsZz1tKm0sYj1zKzMqdSxfPS0yKm0qKDQqcCpoKygxLTQqYyszKmMqYykqKDErZikraCooMTQqYy02LW8rKDgqYy04LTIqbykqZikrcCooMTIqYy04KygxMCpjLTEwLW8pKmYpKSx3PUwoZyooYytoKm8tMSkrKDEtYykqKGMqKGIqYis0KmgpK2gqKDEyKnArNCpoKSkpO3MtPXI9KGEqKGcraC0xKSsyKnctaSooNCpnK28pKS8oYSooMip1KmYrMiptKigxK2YpKStfL3ctOCptKihhKigtMStoK2cpKzIqdykqKDErZikvKG8rNCpnKSl9d2hpbGUocj52JiYtLWw+MCk7cmV0dXJuW2QodCkqKEwoYSphKzQpK2EpKnkvNCx4KnNdfTt2YXIgUnI9NCp5KzMqTCgzKSxGcj0yKkwoMip5KkwoMykvUnIpLEJyPVkoRnIqTCgzKS95LEZyLFJyLzYpO2Z1bmN0aW9uIE5yKHQsZSl7cmV0dXJuW3QqTCgxLTMqZSplLyh5KnkpKSxlXX1mdW5jdGlvbiBqcih0LGUpe3ZhciByPW8oZSksbj1vKHQpKnIsaT0xLW4scz1vKHQ9YShtKHQpKnIsLW0oZSkpKSxsPW0odCk7cmV0dXJuW2wqKHI9TCgxLW4qbikpLXMqaSwtcypyLWwqaV19ZnVuY3Rpb24gVXIodCxlKXt2YXIgcj1PKHQsZSk7cmV0dXJuWyhyWzBdK3QveCkvMiwoclsxXStlKS8yXX1Oci5pbnZlcnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm5bdC9MKDEtMyplKmUvKHkqeSkpLGVdfSxqci5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj0odCp0K2UqZSkvLTIsbj1MKC1yKigyK3IpKSxpPWUqcit0Km4sbz10KnItZSpuLHM9TChvKm8raSppKTtyZXR1cm5bYShuKmkscyooMStyKSkscz8tUyhuKm8vcyk6MF19LFVyLmludmVydD1mdW5jdGlvbih0LGUpe3ZhciByPXQsaT1lLGE9MjU7ZG97dmFyIHMsbD1vKGkpLGM9bShpKSx1PW0oMippKSxmPWMqYyxoPWwqbCxwPW0ociksZD1vKHIvMiksZz1tKHIvMikseT1nKmcsYj0xLWgqZCpkLF89Yj9FKGwqZCkqTChzPTEvYik6cz0wLHc9LjUqKDIqXypsKmcrci94KS10LFQ9LjUqKF8qYytpKS1lLGs9LjUqcyooaCp5K18qbCpkKmYpKy41L3gsQT1zKihwKnUvNC1fKmMqZyksTT0uMTI1KnMqKHUqZy1fKmMqaCpwKSxTPS41KnMqKGYqZCtfKnkqbCkrLjUsQz1BKk0tUyprLFA9KFQqQS13KlMpL0MsST0odypNLVQqaykvQztyLT1QLGktPUl9d2hpbGUoKG4oUCk+dnx8bihJKT52KSYmLS1hPjApO3JldHVybltyLGldfSx0Lmdlb05hdHVyYWxFYXJ0aD1lLmdlb05hdHVyYWxFYXJ0aDEsdC5nZW9OYXR1cmFsRWFydGhSYXc9ZS5nZW9OYXR1cmFsRWFydGgxUmF3LHQuZ2VvQWlyeT1mdW5jdGlvbigpe3ZhciB0PXgscj1lLmdlb1Byb2plY3Rpb25NdXRhdG9yKEkpLG49cih0KTtyZXR1cm4gbi5yYWRpdXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/cih0PWUqTSk6dCpBfSxuLnNjYWxlKDE3OS45NzYpLmNsaXBBbmdsZSgxNDcpfSx0Lmdlb0FpcnlSYXc9SSx0Lmdlb0FpdG9mZj1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24oTykuc2NhbGUoMTUyLjYzKX0sdC5nZW9BaXRvZmZSYXc9Tyx0Lmdlb0FybWFkaWxsbz1mdW5jdGlvbigpe3ZhciB0PTIwKk0scj10Pj0wPzE6LTEsbj1nKHIqdCksaT1lLmdlb1Byb2plY3Rpb25NdXRhdG9yKHopLHM9aSh0KSxsPXMuc3RyZWFtO3JldHVybiBzLnBhcmFsbGVsPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPWcoKHI9KHQ9ZSpNKT49MD8xOi0xKSp0KSxpKHQpKTp0KkF9LHMuc3RyZWFtPWZ1bmN0aW9uKGUpe3ZhciBpPXMucm90YXRlKCksYz1sKGUpLHU9KHMucm90YXRlKFswLDBdKSxsKGUpKSxmPXMucHJlY2lzaW9uKCk7cmV0dXJuIHMucm90YXRlKGkpLGMuc3BoZXJlPWZ1bmN0aW9uKCl7dS5wb2x5Z29uU3RhcnQoKSx1LmxpbmVTdGFydCgpO2Zvcih2YXIgZT0tMTgwKnI7ciplPDE4MDtlKz05MCpyKXUucG9pbnQoZSw5MCpyKTtpZih0KWZvcig7ciooZS09MypyKmYpPj0tMTgwOyl1LnBvaW50KGUsciotYShvKGUqTS8yKSxuKSpBKTt1LmxpbmVFbmQoKSx1LnBvbHlnb25FbmQoKX0sY30scy5zY2FsZSgyMTguNjk1KS5jZW50ZXIoWzAsMjguMDk3NF0pfSx0Lmdlb0FybWFkaWxsb1Jhdz16LHQuZ2VvQXVndXN0PWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2VvUHJvamVjdGlvbihEKS5zY2FsZSg2Ni4xNjAzKX0sdC5nZW9BdWd1c3RSYXc9RCx0Lmdlb0Jha2VyPWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2VvUHJvamVjdGlvbihCKS5zY2FsZSgxMTIuMzE0KX0sdC5nZW9CYWtlclJhdz1CLHQuZ2VvQmVyZ2hhdXM9ZnVuY3Rpb24oKXt2YXIgdD01LHI9ZS5nZW9Qcm9qZWN0aW9uTXV0YXRvcihOKSxuPXIodCksaT1uLnN0cmVhbSxzPS1vKC4wMSpNKSxsPW0oLjAxKk0pO3JldHVybiBuLmxvYmVzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3IodD0rZSk6dH0sbi5zdHJlYW09ZnVuY3Rpb24oZSl7dmFyIHI9bi5yb3RhdGUoKSxjPWkoZSksdT0obi5yb3RhdGUoWzAsMF0pLGkoZSkpO3JldHVybiBuLnJvdGF0ZShyKSxjLnNwaGVyZT1mdW5jdGlvbigpe3UucG9seWdvblN0YXJ0KCksdS5saW5lU3RhcnQoKTtmb3IodmFyIGU9MCxyPTM2MC90LG49Mip5L3QsaT05MC0xODAvdCxjPXg7ZTx0OysrZSxpLT1yLGMtPW4pdS5wb2ludChhKGwqbyhjKSxzKSpBLFMobCptKGMpKSpBKSxpPC05MD8odS5wb2ludCgtOTAsLTE4MC1pLS4wMSksdS5wb2ludCgtOTAsLTE4MC1pKy4wMSkpOih1LnBvaW50KDkwLGkrLjAxKSx1LnBvaW50KDkwLGktLjAxKSk7dS5saW5lRW5kKCksdS5wb2x5Z29uRW5kKCl9LGN9LG4uc2NhbGUoODcuODA3NikuY2VudGVyKFswLDE3LjE4NzVdKS5jbGlwQW5nbGUoMTc5Ljk5OSl9LHQuZ2VvQmVyZ2hhdXNSYXc9Tix0Lmdlb0JlcnRpbjE5NTM9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZW9Qcm9qZWN0aW9uKHEoKSkucm90YXRlKFstMTYuNSwtNDJdKS5zY2FsZSgxNzYuNTcpLmNlbnRlcihbNy45MywuMDldKX0sdC5nZW9CZXJ0aW4xOTUzUmF3PXEsdC5nZW9Cb2dncz1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24oSikuc2NhbGUoMTYwLjg1Nyl9LHQuZ2VvQm9nZ3NSYXc9Six0Lmdlb0Jvbm5lPWZ1bmN0aW9uKCl7cmV0dXJuIEsoJCkuc2NhbGUoMTIzLjA4MikuY2VudGVyKFswLDI2LjE0NDFdKS5wYXJhbGxlbCg0NSl9LHQuZ2VvQm9ubmVSYXc9JCx0Lmdlb0JvdHRvbWxleT1mdW5jdGlvbigpe3ZhciB0PS41LHI9ZS5nZW9Qcm9qZWN0aW9uTXV0YXRvcih0dCksbj1yKHQpO3JldHVybiBuLmZyYWN0aW9uPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3IodD0rZSk6dH0sbi5zY2FsZSgxNTguODM3KX0sdC5nZW9Cb3R0b21sZXlSYXc9dHQsdC5nZW9Ccm9tbGV5PWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2VvUHJvamVjdGlvbihldCkuc2NhbGUoMTUyLjYzKX0sdC5nZW9Ccm9tbGV5UmF3PWV0LHQuZ2VvQ2hhbWJlcmxpbj1zdCx0Lmdlb0NoYW1iZXJsaW5SYXc9YXQsdC5nZW9DaGFtYmVybGluQWZyaWNhPWZ1bmN0aW9uKCl7cmV0dXJuIHN0KFswLDIyXSxbNDUsMjJdLFsyMi41LC0yMl0pLnNjYWxlKDM4MCkuY2VudGVyKFsyMi41LDJdKX0sdC5nZW9Db2xsaWdub249ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZW9Qcm9qZWN0aW9uKGx0KS5zY2FsZSg5NS42NDY0KS5jZW50ZXIoWzAsMzBdKX0sdC5nZW9Db2xsaWdub25SYXc9bHQsdC5nZW9DcmFpZz1mdW5jdGlvbigpe3JldHVybiBLKGN0KS5zY2FsZSgyNDkuODI4KS5jbGlwQW5nbGUoOTApfSx0Lmdlb0NyYWlnUmF3PWN0LHQuZ2VvQ3Jhc3Rlcj1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24oZnQpLnNjYWxlKDE1Ni4xOSl9LHQuZ2VvQ3Jhc3RlclJhdz1mdCx0Lmdlb0N5bGluZHJpY2FsRXF1YWxBcmVhPWZ1bmN0aW9uKCl7cmV0dXJuIEsoaHQpLnBhcmFsbGVsKDM4LjU4KS5zY2FsZSgxOTUuMDQ0KX0sdC5nZW9DeWxpbmRyaWNhbEVxdWFsQXJlYVJhdz1odCx0Lmdlb0N5bGluZHJpY2FsU3RlcmVvZ3JhcGhpYz1mdW5jdGlvbigpe3JldHVybiBLKHB0KS5zY2FsZSgxMjQuNzUpfSx0Lmdlb0N5bGluZHJpY2FsU3RlcmVvZ3JhcGhpY1Jhdz1wdCx0Lmdlb0Vja2VydDE9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZW9Qcm9qZWN0aW9uKGR0KS5zY2FsZSgxNjUuNjY0KX0sdC5nZW9FY2tlcnQxUmF3PWR0LHQuZ2VvRWNrZXJ0Mj1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24obXQpLnNjYWxlKDE2NS42NjQpfSx0Lmdlb0Vja2VydDJSYXc9bXQsdC5nZW9FY2tlcnQzPWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2VvUHJvamVjdGlvbihndCkuc2NhbGUoMTgwLjczOSl9LHQuZ2VvRWNrZXJ0M1Jhdz1ndCx0Lmdlb0Vja2VydDQ9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZW9Qcm9qZWN0aW9uKHZ0KS5zY2FsZSgxODAuNzM5KX0sdC5nZW9FY2tlcnQ0UmF3PXZ0LHQuZ2VvRWNrZXJ0NT1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24oeXQpLnNjYWxlKDE3My4wNDQpfSx0Lmdlb0Vja2VydDVSYXc9eXQsdC5nZW9FY2tlcnQ2PWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2VvUHJvamVjdGlvbih4dCkuc2NhbGUoMTczLjA0NCl9LHQuZ2VvRWNrZXJ0NlJhdz14dCx0Lmdlb0Vpc2VubG9ocj1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24oX3QpLnNjYWxlKDYyLjUyNzEpfSx0Lmdlb0Vpc2VubG9oclJhdz1fdCx0Lmdlb0ZhaGV5PWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2VvUHJvamVjdGlvbihUdCkuc2NhbGUoMTM3LjE1Mil9LHQuZ2VvRmFoZXlSYXc9VHQsdC5nZW9Gb3VjYXV0PWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2VvUHJvamVjdGlvbihrdCkuc2NhbGUoMTM1LjI2NCl9LHQuZ2VvRm91Y2F1dFJhdz1rdCx0Lmdlb0ZvdWNhdXRTaW51c29pZGFsPWZ1bmN0aW9uKCl7dmFyIHQ9LjUscj1lLmdlb1Byb2plY3Rpb25NdXRhdG9yKEF0KSxuPXIodCk7cmV0dXJuIG4uYWxwaGE9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/cih0PStlKTp0fSxuLnNjYWxlKDE2OC43MjUpfSx0Lmdlb0ZvdWNhdXRTaW51c29pZGFsUmF3PUF0LHQuZ2VvR2lsYmVydD1mdW5jdGlvbih0KXtudWxsPT10JiYodD1lLmdlb09ydGhvZ3JhcGhpYyk7dmFyIHI9dCgpLG49ZS5nZW9FcXVpcmVjdGFuZ3VsYXIoKS5zY2FsZShBKS5wcmVjaXNpb24oMCkuY2xpcEFuZ2xlKG51bGwpLnRyYW5zbGF0ZShbMCwwXSk7ZnVuY3Rpb24gaSh0KXtyZXR1cm4gcihNdCh0KSl9ZnVuY3Rpb24gYSh0KXtpW3RdPWZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHJbdF0uYXBwbHkocixhcmd1bWVudHMpLGkpOnJbdF0oKX19cmV0dXJuIHIuaW52ZXJ0JiYoaS5pbnZlcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIFN0KHIuaW52ZXJ0KHQpKX0pLGkuc3RyZWFtPWZ1bmN0aW9uKHQpe3ZhciBlPXIuc3RyZWFtKHQpLGk9bi5zdHJlYW0oe3BvaW50OmZ1bmN0aW9uKHQscil7ZS5wb2ludCh0LzIsUyhnKC1yLzIqTSkpKkEpfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXtlLmxpbmVTdGFydCgpfSxsaW5lRW5kOmZ1bmN0aW9uKCl7ZS5saW5lRW5kKCl9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe2UucG9seWdvblN0YXJ0KCl9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtlLnBvbHlnb25FbmQoKX19KTtyZXR1cm4gaS5zcGhlcmU9ZS5zcGhlcmUsaX0saS5yb3RhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG4ucm90YXRlKHQpLGkpOm4ucm90YXRlKCl9LGkuY2VudGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyLmNlbnRlcihNdCh0KSksaSk6U3Qoci5jZW50ZXIoKSl9LGEoImFuZ2xlIiksYSgiY2xpcEFuZ2xlIiksYSgiY2xpcEV4dGVudCIpLGEoImZpdEV4dGVudCIpLGEoImZpdEhlaWdodCIpLGEoImZpdFNpemUiKSxhKCJmaXRXaWR0aCIpLGEoInNjYWxlIiksYSgidHJhbnNsYXRlIiksYSgicHJlY2lzaW9uIiksaS5zY2FsZSgyNDkuNSl9LHQuZ2VvR2luZ2VyeT1mdW5jdGlvbigpe3ZhciB0PTYscj0zMCpNLG49byhyKSxpPW0ocikscz1lLmdlb1Byb2plY3Rpb25NdXRhdG9yKEV0KSxsPXMocix0KSxjPWwuc3RyZWFtLHU9LW8oLjAxKk0pLGY9bSguMDEqTSk7cmV0dXJuIGwucmFkaXVzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPW8ocj1lKk0pLGk9bShyKSxzKHIsdCkpOnIqQX0sbC5sb2Jlcz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9zKHIsdD0rZSk6dH0sbC5zdHJlYW09ZnVuY3Rpb24oZSl7dmFyIHI9bC5yb3RhdGUoKSxzPWMoZSksaD0obC5yb3RhdGUoWzAsMF0pLGMoZSkpO3JldHVybiBsLnJvdGF0ZShyKSxzLnNwaGVyZT1mdW5jdGlvbigpe2gucG9seWdvblN0YXJ0KCksaC5saW5lU3RhcnQoKTtmb3IodmFyIGU9MCxyPTIqeS90LHM9MDtlPHQ7KytlLHMtPXIpaC5wb2ludChhKGYqbyhzKSx1KSpBLFMoZiptKHMpKSpBKSxoLnBvaW50KGEoaSpvKHMtci8yKSxuKSpBLFMoaSptKHMtci8yKSkqQSk7aC5saW5lRW5kKCksaC5wb2x5Z29uRW5kKCl9LHN9LGwucm90YXRlKFs5MCwtNDBdKS5zY2FsZSg5MS43MDk1KS5jbGlwQW5nbGUoMTc5Ljk5OSl9LHQuZ2VvR2luZ2VyeVJhdz1FdCx0Lmdlb0dpbnpidXJnND1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24oSXQpLnNjYWxlKDE0OS45OTUpfSx0Lmdlb0dpbnpidXJnNFJhdz1JdCx0Lmdlb0dpbnpidXJnNT1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24oT3QpLnNjYWxlKDE1My45Myl9LHQuZ2VvR2luemJ1cmc1UmF3PU90LHQuZ2VvR2luemJ1cmc2PWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2VvUHJvamVjdGlvbih6dCkuc2NhbGUoMTMwLjk0NSl9LHQuZ2VvR2luemJ1cmc2UmF3PXp0LHQuZ2VvR2luemJ1cmc4PWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2VvUHJvamVjdGlvbihEdCkuc2NhbGUoMTMxLjc0Nyl9LHQuZ2VvR2luemJ1cmc4UmF3PUR0LHQuZ2VvR2luemJ1cmc5PWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2VvUHJvamVjdGlvbihSdCkuc2NhbGUoMTMxLjA4Nyl9LHQuZ2VvR2luemJ1cmc5UmF3PVJ0LHQuZ2VvR3JpbmdvcnRlbj1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24oRnQoQnQpKS5zY2FsZSgyMzkuNzUpfSx0Lmdlb0dyaW5nb3J0ZW5SYXc9QnQsdC5nZW9HdXlvdT1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24oRnQoVXQpKS5zY2FsZSgxNTEuNDk2KX0sdC5nZW9HdXlvdVJhdz1VdCx0Lmdlb0hhbW1lcj1mdW5jdGlvbigpe3ZhciB0PTIscj1lLmdlb1Byb2plY3Rpb25NdXRhdG9yKGopLG49cih0KTtyZXR1cm4gbi5jb2VmZmljaWVudD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9yKHQ9K2UpOnR9LG4uc2NhbGUoMTY5LjUyOSl9LHQuZ2VvSGFtbWVyUmF3PWosdC5nZW9IYW1tZXJSZXRyb2F6aW11dGhhbD1mdW5jdGlvbigpe3ZhciB0PTAscj1lLmdlb1Byb2plY3Rpb25NdXRhdG9yKFZ0KSxuPXIodCksaT1uLnJvdGF0ZSxhPW4uc3RyZWFtLG89ZS5nZW9DaXJjbGUoKTtyZXR1cm4gbi5wYXJhbGxlbD1mdW5jdGlvbihlKXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdCpBO3ZhciBpPW4ucm90YXRlKCk7cmV0dXJuIHIodD1lKk0pLnJvdGF0ZShpKX0sbi5yb3RhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGkuY2FsbChuLFtlWzBdLGVbMV0tdCpBXSksby5jZW50ZXIoWy1lWzBdLC1lWzFdXSksbik6KChlPWkuY2FsbChuKSlbMV0rPXQqQSxlKX0sbi5zdHJlYW09ZnVuY3Rpb24odCl7cmV0dXJuKHQ9YSh0KSkuc3BoZXJlPWZ1bmN0aW9uKCl7dC5wb2x5Z29uU3RhcnQoKTt2YXIgZSxyPW8ucmFkaXVzKDg5Ljk5KSgpLmNvb3JkaW5hdGVzWzBdLG49ci5sZW5ndGgtMSxpPS0xO2Zvcih0LmxpbmVTdGFydCgpOysraTxuOyl0LnBvaW50KChlPXJbaV0pWzBdLGVbMV0pO2Zvcih0LmxpbmVFbmQoKSxuPShyPW8ucmFkaXVzKDkwLjAxKSgpLmNvb3JkaW5hdGVzWzBdKS5sZW5ndGgtMSx0LmxpbmVTdGFydCgpOy0taT49MDspdC5wb2ludCgoZT1yW2ldKVswXSxlWzFdKTt0LmxpbmVFbmQoKSx0LnBvbHlnb25FbmQoKX0sdH0sbi5zY2FsZSg3OS40MTg3KS5wYXJhbGxlbCg0NSkuY2xpcEFuZ2xlKDE3OS45OTkpfSx0Lmdlb0hhbW1lclJldHJvYXppbXV0aGFsUmF3PVZ0LHQuZ2VvSGVhbHBpeD1mdW5jdGlvbigpe3ZhciB0PTQsbj1lLmdlb1Byb2plY3Rpb25NdXRhdG9yKFl0KSxpPW4odCksYT1pLnN0cmVhbTtyZXR1cm4gaS5sb2Jlcz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9uKHQ9K2UpOnR9LGkuc3RyZWFtPWZ1bmN0aW9uKG4pe3ZhciBvPWkucm90YXRlKCkscz1hKG4pLGw9KGkucm90YXRlKFswLDBdKSxhKG4pKTtyZXR1cm4gaS5yb3RhdGUobykscy5zcGhlcmU9ZnVuY3Rpb24oKXt2YXIgbixpO2UuZ2VvU3RyZWFtKChuPTE4MC90LGk9W10uY29uY2F0KHIucmFuZ2UoLTE4MCwxODArbi8yLG4pLm1hcChXdCksci5yYW5nZSgxODAsLTE4MC1uLzIsLW4pLm1hcChYdCkpLHt0eXBlOiJQb2x5Z29uIixjb29yZGluYXRlczpbMTgwPT09bj9pLm1hcChadCk6aV19KSxsKX0sc30saS5zY2FsZSgyMzkuNzUpfSx0Lmdlb0hlYWxwaXhSYXc9WXQsdC5nZW9IaWxsPWZ1bmN0aW9uKCl7dmFyIHQ9MSxyPWUuZ2VvUHJvamVjdGlvbk11dGF0b3IoSnQpLG49cih0KTtyZXR1cm4gbi5yYXRpbz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9yKHQ9K2UpOnR9LG4uc2NhbGUoMTY3Ljc3NCkuY2VudGVyKFswLDE4LjY3XSl9LHQuZ2VvSGlsbFJhdz1KdCx0Lmdlb0hvbW9sb3NpbmU9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZW9Qcm9qZWN0aW9uKFF0KS5zY2FsZSgxNTIuNjMpfSx0Lmdlb0hvbW9sb3NpbmVSYXc9UXQsdC5nZW9IdWZuYWdlbD1mdW5jdGlvbigpe3ZhciB0PTEscj0wLG49NDUqTSxpPTIsYT1lLmdlb1Byb2plY3Rpb25NdXRhdG9yKCR0KSxvPWEodCxyLG4saSk7cmV0dXJuIG8uYT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9hKHQ9K2UscixuLGkpOnR9LG8uYj1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9hKHQscj0rZSxuLGkpOnJ9LG8ucHNpTWF4PWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP2EodCxyLG49K2UqTSxpKTpuKkF9LG8ucmF0aW89ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/YSh0LHIsbixpPStlKTppfSxvLnNjYWxlKDE4MC43MzkpfSx0Lmdlb0h1Zm5hZ2VsUmF3PSR0LHQuZ2VvSHlwZXJlbGxpcHRpY2FsPWZ1bmN0aW9uKCl7dmFyIHQ9MCxyPTIuNSxuPTEuMTgzMTM2LGk9ZS5nZW9Qcm9qZWN0aW9uTXV0YXRvcihlZSksYT1pKHQscixuKTtyZXR1cm4gYS5hbHBoYT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9pKHQ9K2UscixuKTp0fSxhLms9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/aSh0LHI9K2Usbik6cn0sYS5nYW1tYT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9pKHQscixuPStlKTpufSxhLnNjYWxlKDE1Mi42Myl9LHQuZ2VvSHlwZXJlbGxpcHRpY2FsUmF3PWVlLHQuZ2VvSW50ZXJydXB0PWFlLHQuZ2VvSW50ZXJydXB0ZWRCb2dncz1mdW5jdGlvbigpe3JldHVybiBhZShKLG9lKS5zY2FsZSgxNjAuODU3KX0sdC5nZW9JbnRlcnJ1cHRlZEhvbW9sb3NpbmU9ZnVuY3Rpb24oKXtyZXR1cm4gYWUoUXQsc2UpLnNjYWxlKDE1Mi42Myl9LHQuZ2VvSW50ZXJydXB0ZWRNb2xsd2VpZGU9ZnVuY3Rpb24oKXtyZXR1cm4gYWUoVyxsZSkuc2NhbGUoMTY5LjUyOSl9LHQuZ2VvSW50ZXJydXB0ZWRNb2xsd2VpZGVIZW1pc3BoZXJlcz1mdW5jdGlvbigpe3JldHVybiBhZShXLGNlKS5zY2FsZSgxNjkuNTI5KS5yb3RhdGUoWzIwLDBdKX0sdC5nZW9JbnRlcnJ1cHRlZFNpbnVNb2xsd2VpZGU9ZnVuY3Rpb24oKXtyZXR1cm4gYWUoS3QsdWUsSCkucm90YXRlKFstMjAsLTU1XSkuc2NhbGUoMTY0LjI2MykuY2VudGVyKFswLC01LjQwMzZdKX0sdC5nZW9JbnRlcnJ1cHRlZFNpbnVzb2lkYWw9ZnVuY3Rpb24oKXtyZXR1cm4gYWUoUSxmZSkuc2NhbGUoMTUyLjYzKS5yb3RhdGUoWy0yMCwwXSl9LHQuZ2VvS2F2cmF5c2tpeTc9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZW9Qcm9qZWN0aW9uKGhlKS5zY2FsZSgxNTguODM3KX0sdC5nZW9LYXZyYXlza2l5N1Jhdz1oZSx0Lmdlb0xhZ3JhbmdlPWZ1bmN0aW9uKCl7dmFyIHQ9LjUscj1lLmdlb1Byb2plY3Rpb25NdXRhdG9yKHBlKSxuPXIodCk7cmV0dXJuIG4uc3BhY2luZz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9yKHQ9K2UpOnR9LG4uc2NhbGUoMTI0Ljc1KX0sdC5nZW9MYWdyYW5nZVJhdz1wZSx0Lmdlb0xhcnJpdmVlPWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2VvUHJvamVjdGlvbihtZSkuc2NhbGUoOTcuMjY3Mil9LHQuZ2VvTGFycml2ZWVSYXc9bWUsdC5nZW9MYXNrb3dza2k9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZW9Qcm9qZWN0aW9uKGdlKS5zY2FsZSgxMzkuOTgpfSx0Lmdlb0xhc2tvd3NraVJhdz1nZSx0Lmdlb0xpdHRyb3c9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZW9Qcm9qZWN0aW9uKHZlKS5zY2FsZSgxNDQuMDQ5KS5jbGlwQW5nbGUoODkuOTk5KX0sdC5nZW9MaXR0cm93UmF3PXZlLHQuZ2VvTG94aW11dGhhbD1mdW5jdGlvbigpe3JldHVybiBLKHllKS5wYXJhbGxlbCg0MCkuc2NhbGUoMTU4LjgzNyl9LHQuZ2VvTG94aW11dGhhbFJhdz15ZSx0Lmdlb01pbGxlcj1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24oeGUpLnNjYWxlKDEwOC4zMTgpfSx0Lmdlb01pbGxlclJhdz14ZSx0Lmdlb01vZGlmaWVkU3RlcmVvZ3JhcGhpYz1NZSx0Lmdlb01vZGlmaWVkU3RlcmVvZ3JhcGhpY1Jhdz1iZSx0Lmdlb01vZGlmaWVkU3RlcmVvZ3JhcGhpY0FsYXNrYT1mdW5jdGlvbigpe3JldHVybiBNZShfZSxbMTUyLC02NF0pLnNjYWxlKDE0MDApLmNlbnRlcihbLTE2MC45MDgsNjIuNDg2NF0pLmNsaXBBbmdsZSgzMCkuYW5nbGUoNy44KX0sdC5nZW9Nb2RpZmllZFN0ZXJlb2dyYXBoaWNHczQ4PWZ1bmN0aW9uKCl7cmV0dXJuIE1lKHdlLFs5NSwtMzhdKS5zY2FsZSgxZTMpLmNsaXBBbmdsZSg1NSkuY2VudGVyKFstOTYuNTU2MywzOC44Njc1XSl9LHQuZ2VvTW9kaWZpZWRTdGVyZW9ncmFwaGljR3M1MD1mdW5jdGlvbigpe3JldHVybiBNZShUZSxbMTIwLC00NV0pLnNjYWxlKDM1OS41MTMpLmNsaXBBbmdsZSg1NSkuY2VudGVyKFstMTE3LjQ3NCw1My4wNjI4XSl9LHQuZ2VvTW9kaWZpZWRTdGVyZW9ncmFwaGljTWlsbGVyPWZ1bmN0aW9uKCl7cmV0dXJuIE1lKGtlLFstMjAsLTE4XSkuc2NhbGUoMjA5LjA5MSkuY2VudGVyKFsyMCwxNi43MjE0XSkuY2xpcEFuZ2xlKDgyKX0sdC5nZW9Nb2RpZmllZFN0ZXJlb2dyYXBoaWNMZWU9ZnVuY3Rpb24oKXtyZXR1cm4gTWUoQWUsWzE2NSwxMF0pLnNjYWxlKDI1MCkuY2xpcEFuZ2xlKDEzMCkuY2VudGVyKFstMTY1LC0xMF0pfSx0Lmdlb01vbGx3ZWlkZT1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24oVykuc2NhbGUoMTY5LjUyOSl9LHQuZ2VvTW9sbHdlaWRlUmF3PVcsdC5nZW9NdEZsYXRQb2xhclBhcmFib2xpYz1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24oTGUpLnNjYWxlKDE2NC44NTkpfSx0Lmdlb010RmxhdFBvbGFyUGFyYWJvbGljUmF3PUxlLHQuZ2VvTXRGbGF0UG9sYXJRdWFydGljPWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2VvUHJvamVjdGlvbihDZSkuc2NhbGUoMTg4LjIwOSl9LHQuZ2VvTXRGbGF0UG9sYXJRdWFydGljUmF3PUNlLHQuZ2VvTXRGbGF0UG9sYXJTaW51c29pZGFsPWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2VvUHJvamVjdGlvbihQZSkuc2NhbGUoMTY2LjUxOCl9LHQuZ2VvTXRGbGF0UG9sYXJTaW51c29pZGFsUmF3PVBlLHQuZ2VvTmF0dXJhbEVhcnRoMj1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24oSWUpLnNjYWxlKDE3NS4yOTUpfSx0Lmdlb05hdHVyYWxFYXJ0aDJSYXc9SWUsdC5nZW9OZWxsSGFtbWVyPWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2VvUHJvamVjdGlvbihPZSkuc2NhbGUoMTUyLjYzKX0sdC5nZW9OZWxsSGFtbWVyUmF3PU9lLHQuZ2VvSW50ZXJydXB0ZWRRdWFydGljQXV0aGFsaWM9ZnVuY3Rpb24oKXtyZXR1cm4gYWUoaigxLzApLHplKS5yb3RhdGUoWzIwLDBdKS5zY2FsZSgxNTIuNjMpfSx0Lmdlb05pY29sb3NpPWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2VvUHJvamVjdGlvbihEZSkuc2NhbGUoMTI3LjI2Nyl9LHQuZ2VvTmljb2xvc2lSYXc9RGUsdC5nZW9QYXR0ZXJzb249ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZW9Qcm9qZWN0aW9uKFJlKS5zY2FsZSgxMzkuMzE5KX0sdC5nZW9QYXR0ZXJzb25SYXc9UmUsdC5nZW9Qb2x5Y29uaWM9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZW9Qcm9qZWN0aW9uKEZlKS5zY2FsZSgxMDMuNzQpfSx0Lmdlb1BvbHljb25pY1Jhdz1GZSx0Lmdlb1BvbHloZWRyYWw9VmUsdC5nZW9Qb2x5aGVkcmFsQnV0dGVyZmx5PWZ1bmN0aW9uKHQpe3Q9dHx8ZnVuY3Rpb24odCl7dmFyIHI9ZS5nZW9DZW50cm9pZCh7dHlwZToiTXVsdGlQb2ludCIsY29vcmRpbmF0ZXM6dH0pO3JldHVybiBlLmdlb0dub21vbmljKCkuc2NhbGUoMSkudHJhbnNsYXRlKFswLDBdKS5yb3RhdGUoWy1yWzBdLC1yWzFdXSl9O3ZhciByPVllLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJue2ZhY2U6ZSxwcm9qZWN0OnQoZSl9fSkpO3JldHVyblstMSwwLDAsMSwwLDEsNCw1XS5mb3JFYWNoKChmdW5jdGlvbih0LGUpe3ZhciBuPXJbdF07biYmKG4uY2hpbGRyZW58fChuLmNoaWxkcmVuPVtdKSkucHVzaChyW2VdKX0pKSxWZShyWzBdLChmdW5jdGlvbih0LGUpe3JldHVybiByW3Q8LXkvMj9lPDA/Njo0OnQ8MD9lPDA/MjowOnQ8eS8yP2U8MD8zOjE6ZTwwPzc6NV19KSkuYW5nbGUoLTMwKS5zY2FsZSgxMDEuODU4KS5jZW50ZXIoWzAsNDVdKX0sdC5nZW9Qb2x5aGVkcmFsQ29sbGlnbm9uPWZ1bmN0aW9uKHQpe3Q9dHx8ZnVuY3Rpb24odCl7dmFyIHI9ZS5nZW9DZW50cm9pZCh7dHlwZToiTXVsdGlQb2ludCIsY29vcmRpbmF0ZXM6dH0pO3JldHVybiBlLmdlb1Byb2plY3Rpb24oWGUpLnRyYW5zbGF0ZShbMCwwXSkuc2NhbGUoMSkucm90YXRlKHJbMV0+MD9bLXJbMF0sMF06WzE4MC1yWzBdLDE4MF0pfTt2YXIgcj1ZZS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybntmYWNlOmUscHJvamVjdDp0KGUpfX0pKTtyZXR1cm5bLTEsMCwwLDEsMCwxLDQsNV0uZm9yRWFjaCgoZnVuY3Rpb24odCxlKXt2YXIgbj1yW3RdO24mJihuLmNoaWxkcmVufHwobi5jaGlsZHJlbj1bXSkpLnB1c2gocltlXSl9KSksVmUoclswXSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gclt0PC15LzI/ZTwwPzY6NDp0PDA/ZTwwPzI6MDp0PHkvMj9lPDA/MzoxOmU8MD83OjVdfSkpLmFuZ2xlKC0zMCkuc2NhbGUoMTIxLjkwNikuY2VudGVyKFswLDQ4LjU5MDRdKX0sdC5nZW9Qb2x5aGVkcmFsV2F0ZXJtYW49ZnVuY3Rpb24odCl7dD10fHxmdW5jdGlvbih0KXt2YXIgcj02PT09dC5sZW5ndGg/ZS5nZW9DZW50cm9pZCh7dHlwZToiTXVsdGlQb2ludCIsY29vcmRpbmF0ZXM6dH0pOnRbMF07cmV0dXJuIGUuZ2VvR25vbW9uaWMoKS5zY2FsZSgxKS50cmFuc2xhdGUoWzAsMF0pLnJvdGF0ZShbLXJbMF0sLXJbMV1dKX07dmFyIHI9WWUubWFwKChmdW5jdGlvbih0KXtmb3IodmFyIGUscj10Lm1hcChLZSksbj1yLmxlbmd0aCxpPXJbbi0xXSxhPVtdLG89MDtvPG47KytvKWU9cltvXSxhLnB1c2goSmUoWy45NDg2ODMyOTgwNTA1MTM4KmlbMF0rLjMxNjIyNzc2NjAxNjgzNzk0KmVbMF0sLjk0ODY4MzI5ODA1MDUxMzgqaVsxXSsuMzE2MjI3NzY2MDE2ODM3OTQqZVsxXSwuOTQ4NjgzMjk4MDUwNTEzOCppWzJdKy4zMTYyMjc3NjYwMTY4Mzc5NCplWzJdXSksSmUoWy45NDg2ODMyOTgwNTA1MTM4KmVbMF0rLjMxNjIyNzc2NjAxNjgzNzk0KmlbMF0sLjk0ODY4MzI5ODA1MDUxMzgqZVsxXSsuMzE2MjI3NzY2MDE2ODM3OTQqaVsxXSwuOTQ4NjgzMjk4MDUwNTEzOCplWzJdKy4zMTYyMjc3NjYwMTY4Mzc5NCppWzJdXSkpLGk9ZTtyZXR1cm4gYX0pKSxuPVtdLGk9Wy0xLDAsMCwxLDAsMSw0LDVdO3IuZm9yRWFjaCgoZnVuY3Rpb24odCxlKXtmb3IodmFyIGEsbyxzPVllW2VdLGw9cy5sZW5ndGgsYz1uW2VdPVtdLHU9MDt1PGw7Kyt1KXIucHVzaChbc1t1XSx0WygyKnUrMiklKDIqbCldLHRbKDIqdSsxKSUoMipsKV1dKSxpLnB1c2goZSksYy5wdXNoKChhPUtlKHRbKDIqdSsyKSUoMipsKV0pLG89S2UodFsoMip1KzEpJSgyKmwpXSksW2FbMV0qb1syXS1hWzJdKm9bMV0sYVsyXSpvWzBdLWFbMF0qb1syXSxhWzBdKm9bMV0tYVsxXSpvWzBdXSkpfSkpO3ZhciBhPXIubWFwKChmdW5jdGlvbihlKXtyZXR1cm57cHJvamVjdDp0KGUpLGZhY2U6ZX19KSk7cmV0dXJuIGkuZm9yRWFjaCgoZnVuY3Rpb24odCxlKXt2YXIgcj1hW3RdO3ImJihyLmNoaWxkcmVufHwoci5jaGlsZHJlbj1bXSkpLnB1c2goYVtlXSl9KSksVmUoYVswXSwoZnVuY3Rpb24odCxlKXt2YXIgcj1vKGUpLGk9W3Iqbyh0KSxyKm0odCksbShlKV0scz10PC15LzI/ZTwwPzY6NDp0PDA/ZTwwPzI6MDp0PHkvMj9lPDA/MzoxOmU8MD83OjUsbD1uW3NdO3JldHVybiBhW1plKGxbMF0saSk8MD84KzMqczpaZShsWzFdLGkpPDA/OCszKnMrMTpaZShsWzJdLGkpPDA/OCszKnMrMjpzXX0pKS5hbmdsZSgtMzApLnNjYWxlKDExMC42MjUpLmNlbnRlcihbMCw0NV0pfSx0Lmdlb1Byb2plY3Q9ZnVuY3Rpb24odCxlKXt2YXIgcixuPWUuc3RyZWFtO2lmKCFuKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBwcm9qZWN0aW9uIik7c3dpdGNoKHQmJnQudHlwZSl7Y2FzZSJGZWF0dXJlIjpyPXRyO2JyZWFrO2Nhc2UiRmVhdHVyZUNvbGxlY3Rpb24iOnI9JGU7YnJlYWs7ZGVmYXVsdDpyPWVyfXJldHVybiByKHQsbil9LHQuZ2VvR3JpbmdvcnRlblF1aW5jdW5jaWFsPWZ1bmN0aW9uKCl7cmV0dXJuIHNyKEJ0KS5zY2FsZSgxNzYuNDIzKX0sdC5nZW9QZWlyY2VRdWluY3VuY2lhbD1scix0Lmdlb1BpZXJjZVF1aW5jdW5jaWFsPWxyLHQuZ2VvUXVhbnRpemU9ZnVuY3Rpb24odCxlKXtpZighKDA8PShlPStlKSYmZTw9MjApKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBkaWdpdHMiKTtmdW5jdGlvbiByKHQpe3ZhciByPXQubGVuZ3RoLG49MixpPW5ldyBBcnJheShyKTtmb3IoaVswXT0rdFswXS50b0ZpeGVkKGUpLGlbMV09K3RbMV0udG9GaXhlZChlKTtuPHI7KWlbbl09dFtuXSwrK247cmV0dXJuIGl9ZnVuY3Rpb24gbih0KXtyZXR1cm4gdC5tYXAocil9ZnVuY3Rpb24gaSh0KXtmb3IodmFyIGU9cih0WzBdKSxuPVtlXSxpPTE7aTx0Lmxlbmd0aDtpKyspe3ZhciBhPXIodFtpXSk7KGEubGVuZ3RoPjJ8fGFbMF0hPWVbMF18fGFbMV0hPWVbMV0pJiYobi5wdXNoKGEpLGU9YSl9cmV0dXJuIDE9PT1uLmxlbmd0aCYmdC5sZW5ndGg+MSYmbi5wdXNoKHIodFt0Lmxlbmd0aC0xXSkpLG59ZnVuY3Rpb24gYSh0KXtyZXR1cm4gdC5tYXAoaSl9ZnVuY3Rpb24gbyh0KXtpZihudWxsPT10KXJldHVybiB0O3ZhciBlO3N3aXRjaCh0LnR5cGUpe2Nhc2UiR2VvbWV0cnlDb2xsZWN0aW9uIjplPXt0eXBlOiJHZW9tZXRyeUNvbGxlY3Rpb24iLGdlb21ldHJpZXM6dC5nZW9tZXRyaWVzLm1hcChvKX07YnJlYWs7Y2FzZSJQb2ludCI6ZT17dHlwZToiUG9pbnQiLGNvb3JkaW5hdGVzOnIodC5jb29yZGluYXRlcyl9O2JyZWFrO2Nhc2UiTXVsdGlQb2ludCI6ZT17dHlwZTp0LnR5cGUsY29vcmRpbmF0ZXM6bih0LmNvb3JkaW5hdGVzKX07YnJlYWs7Y2FzZSJMaW5lU3RyaW5nIjplPXt0eXBlOnQudHlwZSxjb29yZGluYXRlczppKHQuY29vcmRpbmF0ZXMpfTticmVhaztjYXNlIk11bHRpTGluZVN0cmluZyI6Y2FzZSJQb2x5Z29uIjplPXt0eXBlOnQudHlwZSxjb29yZGluYXRlczphKHQuY29vcmRpbmF0ZXMpfTticmVhaztjYXNlIk11bHRpUG9seWdvbiI6ZT17dHlwZToiTXVsdGlQb2x5Z29uIixjb29yZGluYXRlczp0LmNvb3JkaW5hdGVzLm1hcChhKX07YnJlYWs7ZGVmYXVsdDpyZXR1cm4gdH1yZXR1cm4gbnVsbCE9dC5iYm94JiYoZS5iYm94PXQuYmJveCksZX1mdW5jdGlvbiBzKHQpe3ZhciBlPXt0eXBlOiJGZWF0dXJlIixwcm9wZXJ0aWVzOnQucHJvcGVydGllcyxnZW9tZXRyeTpvKHQuZ2VvbWV0cnkpfTtyZXR1cm4gbnVsbCE9dC5pZCYmKGUuaWQ9dC5pZCksbnVsbCE9dC5iYm94JiYoZS5iYm94PXQuYmJveCksZX1pZihudWxsIT10KXN3aXRjaCh0LnR5cGUpe2Nhc2UiRmVhdHVyZSI6cmV0dXJuIHModCk7Y2FzZSJGZWF0dXJlQ29sbGVjdGlvbiI6dmFyIGw9e3R5cGU6IkZlYXR1cmVDb2xsZWN0aW9uIixmZWF0dXJlczp0LmZlYXR1cmVzLm1hcChzKX07cmV0dXJuIG51bGwhPXQuYmJveCYmKGwuYmJveD10LmJib3gpLGw7ZGVmYXVsdDpyZXR1cm4gbyh0KX1yZXR1cm4gdH0sdC5nZW9RdWluY3VuY2lhbD1zcix0Lmdlb1JlY3Rhbmd1bGFyUG9seWNvbmljPWZ1bmN0aW9uKCl7cmV0dXJuIEsoY3IpLnNjYWxlKDEzMS4yMTUpfSx0Lmdlb1JlY3Rhbmd1bGFyUG9seWNvbmljUmF3PWNyLHQuZ2VvUm9iaW5zb249ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZW9Qcm9qZWN0aW9uKGZyKS5zY2FsZSgxNTIuNjMpfSx0Lmdlb1JvYmluc29uUmF3PWZyLHQuZ2VvU2F0ZWxsaXRlPWZ1bmN0aW9uKCl7dmFyIHQ9MixyPTAsbj1lLmdlb1Byb2plY3Rpb25NdXRhdG9yKGhyKSxpPW4odCxyKTtyZXR1cm4gaS5kaXN0YW5jZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9uKHQ9K2Uscik6dH0saS50aWx0PWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP24odCxyPWUqTSk6cipBfSxpLnNjYWxlKDQzMi4xNDcpLmNsaXBBbmdsZShFKDEvdCkqQS0xZS02KX0sdC5nZW9TYXRlbGxpdGVSYXc9aHIsdC5nZW9TaW51TW9sbHdlaWRlPWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2VvUHJvamVjdGlvbihLdCkucm90YXRlKFstMjAsLTU1XSkuc2NhbGUoMTY0LjI2MykuY2VudGVyKFswLC01LjQwMzZdKX0sdC5nZW9TaW51TW9sbHdlaWRlUmF3PUt0LHQuZ2VvU2ludXNvaWRhbD1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24oUSkuc2NhbGUoMTUyLjYzKX0sdC5nZW9TaW51c29pZGFsUmF3PVEsdC5nZW9TdGl0Y2g9ZnVuY3Rpb24odCl7aWYobnVsbD09dClyZXR1cm4gdDtzd2l0Y2godC50eXBlKXtjYXNlIkZlYXR1cmUiOnJldHVybiB3cih0KTtjYXNlIkZlYXR1cmVDb2xsZWN0aW9uIjp2YXIgZT17dHlwZToiRmVhdHVyZUNvbGxlY3Rpb24iLGZlYXR1cmVzOnQuZmVhdHVyZXMubWFwKHdyKX07cmV0dXJuIG51bGwhPXQuYmJveCYmKGUuYmJveD10LmJib3gpLGU7ZGVmYXVsdDpyZXR1cm4gVHIodCl9fSx0Lmdlb1RpbWVzPWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2VvUHJvamVjdGlvbihrcikuc2NhbGUoMTQ2LjE1Myl9LHQuZ2VvVGltZXNSYXc9a3IsdC5nZW9Ud29Qb2ludEF6aW11dGhhbD1Tcix0Lmdlb1R3b1BvaW50QXppbXV0aGFsUmF3PU1yLHQuZ2VvVHdvUG9pbnRBemltdXRoYWxVc2E9ZnVuY3Rpb24oKXtyZXR1cm4gU3IoWy0xNTgsMjEuNV0sWy03NywzOV0pLmNsaXBBbmdsZSg2MCkuc2NhbGUoNDAwKX0sdC5nZW9Ud29Qb2ludEVxdWlkaXN0YW50PUxyLHQuZ2VvVHdvUG9pbnRFcXVpZGlzdGFudFJhdz1Fcix0Lmdlb1R3b1BvaW50RXF1aWRpc3RhbnRVc2E9ZnVuY3Rpb24oKXtyZXR1cm4gTHIoWy0xNTgsMjEuNV0sWy03NywzOV0pLmNsaXBBbmdsZSgxMzApLnNjYWxlKDEyMi41NzEpfSx0Lmdlb1ZhbkRlckdyaW50ZW49ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZW9Qcm9qZWN0aW9uKENyKS5zY2FsZSg3OS40MTgzKX0sdC5nZW9WYW5EZXJHcmludGVuUmF3PUNyLHQuZ2VvVmFuRGVyR3JpbnRlbjI9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZW9Qcm9qZWN0aW9uKFByKS5zY2FsZSg3OS40MTgzKX0sdC5nZW9WYW5EZXJHcmludGVuMlJhdz1Qcix0Lmdlb1ZhbkRlckdyaW50ZW4zPWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2VvUHJvamVjdGlvbihJcikuc2NhbGUoNzkuNDE4Myl9LHQuZ2VvVmFuRGVyR3JpbnRlbjNSYXc9SXIsdC5nZW9WYW5EZXJHcmludGVuND1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24oT3IpLnNjYWxlKDEyNy4xNil9LHQuZ2VvVmFuRGVyR3JpbnRlbjRSYXc9T3IsdC5nZW9XYWduZXI9RHIsdC5nZW9XYWduZXI3PWZ1bmN0aW9uKCl7cmV0dXJuIERyKCkucG9sZWxpbmUoNjUpLnBhcmFsbGVscyg2MCkuaW5mbGF0aW9uKDApLnJhdGlvKDIwMCkuc2NhbGUoMTcyLjYzMyl9LHQuZ2VvV2FnbmVyUmF3PXpyLHQuZ2VvV2FnbmVyND1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24oQnIpLnNjYWxlKDE3Ni44NCl9LHQuZ2VvV2FnbmVyNFJhdz1Ccix0Lmdlb1dhZ25lcjY9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZW9Qcm9qZWN0aW9uKE5yKS5zY2FsZSgxNTIuNjMpfSx0Lmdlb1dhZ25lcjZSYXc9TnIsdC5nZW9XaWVjaGVsPWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2VvUHJvamVjdGlvbihqcikucm90YXRlKFswLC05MCw0NV0pLnNjYWxlKDEyNC43NSkuY2xpcEFuZ2xlKDE3OS45OTkpfSx0Lmdlb1dpZWNoZWxSYXc9anIsdC5nZW9XaW5rZWwzPWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2VvUHJvamVjdGlvbihVcikuc2NhbGUoMTU4LjgzNyl9LHQuZ2VvV2lua2VsM1Jhdz1VcixPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KSl9LHsiZDMtYXJyYXkiOjEwNywiZDMtZ2VvIjoxMTR9XSwxMTQ6W2Z1bmN0aW9uKHQsZSxyKXshZnVuY3Rpb24obixpKXsib2JqZWN0Ij09dHlwZW9mIHImJnZvaWQgMCE9PWU/aShyLHQoImQzLWFycmF5IikpOmkoKG49bnx8c2VsZikuZDM9bi5kM3x8e30sbi5kMyl9KHRoaXMsKGZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoKXtyZXR1cm4gbmV3IG59ZnVuY3Rpb24gbigpe3RoaXMucmVzZXQoKX1uLnByb3RvdHlwZT17Y29uc3RydWN0b3I6bixyZXNldDpmdW5jdGlvbigpe3RoaXMucz10aGlzLnQ9MH0sYWRkOmZ1bmN0aW9uKHQpe2EoaSx0LHRoaXMudCksYSh0aGlzLGkucyx0aGlzLnMpLHRoaXMucz90aGlzLnQrPWkudDp0aGlzLnM9aS50fSx2YWx1ZU9mOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc319O3ZhciBpPW5ldyBuO2Z1bmN0aW9uIGEodCxlLHIpe3ZhciBuPXQucz1lK3IsaT1uLWUsYT1uLWk7dC50PWUtYSsoci1pKX12YXIgbz0xZS02LHM9TWF0aC5QSSxsPXMvMixjPXMvNCx1PTIqcyxmPTE4MC9zLGg9cy8xODAscD1NYXRoLmFicyxkPU1hdGguYXRhbixtPU1hdGguYXRhbjIsZz1NYXRoLmNvcyx2PU1hdGguY2VpbCx5PU1hdGguZXhwLHg9TWF0aC5sb2csYj1NYXRoLnBvdyxfPU1hdGguc2luLHc9TWF0aC5zaWdufHxmdW5jdGlvbih0KXtyZXR1cm4gdD4wPzE6dDwwPy0xOjB9LFQ9TWF0aC5zcXJ0LGs9TWF0aC50YW47ZnVuY3Rpb24gQSh0KXtyZXR1cm4gdD4xPzA6dDwtMT9zOk1hdGguYWNvcyh0KX1mdW5jdGlvbiBNKHQpe3JldHVybiB0PjE/bDp0PC0xPy1sOk1hdGguYXNpbih0KX1mdW5jdGlvbiBTKHQpe3JldHVybih0PV8odC8yKSkqdH1mdW5jdGlvbiBFKCl7fWZ1bmN0aW9uIEwodCxlKXt0JiZQLmhhc093blByb3BlcnR5KHQudHlwZSkmJlBbdC50eXBlXSh0LGUpfXZhciBDPXtGZWF0dXJlOmZ1bmN0aW9uKHQsZSl7TCh0Lmdlb21ldHJ5LGUpfSxGZWF0dXJlQ29sbGVjdGlvbjpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10LmZlYXR1cmVzLG49LTEsaT1yLmxlbmd0aDsrK248aTspTChyW25dLmdlb21ldHJ5LGUpfX0sUD17U3BoZXJlOmZ1bmN0aW9uKHQsZSl7ZS5zcGhlcmUoKX0sUG9pbnQ6ZnVuY3Rpb24odCxlKXt0PXQuY29vcmRpbmF0ZXMsZS5wb2ludCh0WzBdLHRbMV0sdFsyXSl9LE11bHRpUG9pbnQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5jb29yZGluYXRlcyxuPS0xLGk9ci5sZW5ndGg7KytuPGk7KXQ9cltuXSxlLnBvaW50KHRbMF0sdFsxXSx0WzJdKX0sTGluZVN0cmluZzpmdW5jdGlvbih0LGUpe0kodC5jb29yZGluYXRlcyxlLDApfSxNdWx0aUxpbmVTdHJpbmc6ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5jb29yZGluYXRlcyxuPS0xLGk9ci5sZW5ndGg7KytuPGk7KUkocltuXSxlLDApfSxQb2x5Z29uOmZ1bmN0aW9uKHQsZSl7Tyh0LmNvb3JkaW5hdGVzLGUpfSxNdWx0aVBvbHlnb246ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5jb29yZGluYXRlcyxuPS0xLGk9ci5sZW5ndGg7KytuPGk7KU8ocltuXSxlKX0sR2VvbWV0cnlDb2xsZWN0aW9uOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQuZ2VvbWV0cmllcyxuPS0xLGk9ci5sZW5ndGg7KytuPGk7KUwocltuXSxlKX19O2Z1bmN0aW9uIEkodCxlLHIpe3ZhciBuLGk9LTEsYT10Lmxlbmd0aC1yO2ZvcihlLmxpbmVTdGFydCgpOysraTxhOyluPXRbaV0sZS5wb2ludChuWzBdLG5bMV0sblsyXSk7ZS5saW5lRW5kKCl9ZnVuY3Rpb24gTyh0LGUpe3ZhciByPS0xLG49dC5sZW5ndGg7Zm9yKGUucG9seWdvblN0YXJ0KCk7KytyPG47KUkodFtyXSxlLDEpO2UucG9seWdvbkVuZCgpfWZ1bmN0aW9uIHoodCxlKXt0JiZDLmhhc093blByb3BlcnR5KHQudHlwZSk/Q1t0LnR5cGVdKHQsZSk6TCh0LGUpfXZhciBELFIsRixCLE4saj1yKCksVT1yKCksVj17cG9pbnQ6RSxsaW5lU3RhcnQ6RSxsaW5lRW5kOkUscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7ai5yZXNldCgpLFYubGluZVN0YXJ0PUgsVi5saW5lRW5kPXF9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXt2YXIgdD0rajtVLmFkZCh0PDA/dSt0OnQpLHRoaXMubGluZVN0YXJ0PXRoaXMubGluZUVuZD10aGlzLnBvaW50PUV9LHNwaGVyZTpmdW5jdGlvbigpe1UuYWRkKHUpfX07ZnVuY3Rpb24gSCgpe1YucG9pbnQ9R31mdW5jdGlvbiBxKCl7WShELFIpfWZ1bmN0aW9uIEcodCxlKXtWLnBvaW50PVksRD10LFI9ZSxGPXQqPWgsQj1nKGU9KGUqPWgpLzIrYyksTj1fKGUpfWZ1bmN0aW9uIFkodCxlKXt2YXIgcj0odCo9aCktRixuPXI+PTA/MTotMSxpPW4qcixhPWcoZT0oZSo9aCkvMitjKSxvPV8oZSkscz1OKm8sbD1CKmErcypnKGkpLHU9cypuKl8oaSk7ai5hZGQobSh1LGwpKSxGPXQsQj1hLE49b31mdW5jdGlvbiBXKHQpe3JldHVyblttKHRbMV0sdFswXSksTSh0WzJdKV19ZnVuY3Rpb24gWCh0KXt2YXIgZT10WzBdLHI9dFsxXSxuPWcocik7cmV0dXJuW24qZyhlKSxuKl8oZSksXyhyKV19ZnVuY3Rpb24gWih0LGUpe3JldHVybiB0WzBdKmVbMF0rdFsxXSplWzFdK3RbMl0qZVsyXX1mdW5jdGlvbiBKKHQsZSl7cmV0dXJuW3RbMV0qZVsyXS10WzJdKmVbMV0sdFsyXSplWzBdLXRbMF0qZVsyXSx0WzBdKmVbMV0tdFsxXSplWzBdXX1mdW5jdGlvbiBLKHQsZSl7dFswXSs9ZVswXSx0WzFdKz1lWzFdLHRbMl0rPWVbMl19ZnVuY3Rpb24gUSh0LGUpe3JldHVyblt0WzBdKmUsdFsxXSplLHRbMl0qZV19ZnVuY3Rpb24gJCh0KXt2YXIgZT1UKHRbMF0qdFswXSt0WzFdKnRbMV0rdFsyXSp0WzJdKTt0WzBdLz1lLHRbMV0vPWUsdFsyXS89ZX12YXIgdHQsZXQscnQsbnQsaXQsYXQsb3Qsc3QsbHQsY3QsdXQsZnQsaHQscHQsZHQsbXQsZ3QsdnQseXQseHQsYnQsX3Qsd3QsVHQsa3QsQXQsTXQ9cigpLFN0PXtwb2ludDpFdCxsaW5lU3RhcnQ6Q3QsbGluZUVuZDpQdCxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtTdC5wb2ludD1JdCxTdC5saW5lU3RhcnQ9T3QsU3QubGluZUVuZD16dCxNdC5yZXNldCgpLFYucG9seWdvblN0YXJ0KCl9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtWLnBvbHlnb25FbmQoKSxTdC5wb2ludD1FdCxTdC5saW5lU3RhcnQ9Q3QsU3QubGluZUVuZD1QdCxqPDA/KHR0PS0ocnQ9MTgwKSxldD0tKG50PTkwKSk6TXQ+bz9udD05MDpNdDwtbyYmKGV0PS05MCksY3RbMF09dHQsY3RbMV09cnR9LHNwaGVyZTpmdW5jdGlvbigpe3R0PS0ocnQ9MTgwKSxldD0tKG50PTkwKX19O2Z1bmN0aW9uIEV0KHQsZSl7bHQucHVzaChjdD1bdHQ9dCxydD10XSksZTxldCYmKGV0PWUpLGU+bnQmJihudD1lKX1mdW5jdGlvbiBMdCh0LGUpe3ZhciByPVgoW3QqaCxlKmhdKTtpZihzdCl7dmFyIG49SihzdCxyKSxpPUooW25bMV0sLW5bMF0sMF0sbik7JChpKSxpPVcoaSk7dmFyIGEsbz10LWl0LHM9bz4wPzE6LTEsbD1pWzBdKmYqcyxjPXAobyk+MTgwO2NeKHMqaXQ8bCYmbDxzKnQpPyhhPWlbMV0qZik+bnQmJihudD1hKTpjXihzKml0PChsPShsKzM2MCklMzYwLTE4MCkmJmw8cyp0KT8oYT0taVsxXSpmKTxldCYmKGV0PWEpOihlPGV0JiYoZXQ9ZSksZT5udCYmKG50PWUpKSxjP3Q8aXQ/RHQodHQsdCk+RHQodHQscnQpJiYocnQ9dCk6RHQodCxydCk+RHQodHQscnQpJiYodHQ9dCk6cnQ+PXR0Pyh0PHR0JiYodHQ9dCksdD5ydCYmKHJ0PXQpKTp0Pml0P0R0KHR0LHQpPkR0KHR0LHJ0KSYmKHJ0PXQpOkR0KHQscnQpPkR0KHR0LHJ0KSYmKHR0PXQpfWVsc2UgbHQucHVzaChjdD1bdHQ9dCxydD10XSk7ZTxldCYmKGV0PWUpLGU+bnQmJihudD1lKSxzdD1yLGl0PXR9ZnVuY3Rpb24gQ3QoKXtTdC5wb2ludD1MdH1mdW5jdGlvbiBQdCgpe2N0WzBdPXR0LGN0WzFdPXJ0LFN0LnBvaW50PUV0LHN0PW51bGx9ZnVuY3Rpb24gSXQodCxlKXtpZihzdCl7dmFyIHI9dC1pdDtNdC5hZGQocChyKT4xODA/cisocj4wPzM2MDotMzYwKTpyKX1lbHNlIGF0PXQsb3Q9ZTtWLnBvaW50KHQsZSksTHQodCxlKX1mdW5jdGlvbiBPdCgpe1YubGluZVN0YXJ0KCl9ZnVuY3Rpb24genQoKXtJdChhdCxvdCksVi5saW5lRW5kKCkscChNdCk+byYmKHR0PS0ocnQ9MTgwKSksY3RbMF09dHQsY3RbMV09cnQsc3Q9bnVsbH1mdW5jdGlvbiBEdCh0LGUpe3JldHVybihlLT10KTwwP2UrMzYwOmV9ZnVuY3Rpb24gUnQodCxlKXtyZXR1cm4gdFswXS1lWzBdfWZ1bmN0aW9uIEZ0KHQsZSl7cmV0dXJuIHRbMF08PXRbMV0/dFswXTw9ZSYmZTw9dFsxXTplPHRbMF18fHRbMV08ZX12YXIgQnQ9e3NwaGVyZTpFLHBvaW50Ok50LGxpbmVTdGFydDpVdCxsaW5lRW5kOnF0LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe0J0LmxpbmVTdGFydD1HdCxCdC5saW5lRW5kPVl0fSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7QnQubGluZVN0YXJ0PVV0LEJ0LmxpbmVFbmQ9cXR9fTtmdW5jdGlvbiBOdCh0LGUpe3QqPWg7dmFyIHI9ZyhlKj1oKTtqdChyKmcodCkscipfKHQpLF8oZSkpfWZ1bmN0aW9uIGp0KHQsZSxyKXsrK3V0LGh0Kz0odC1odCkvdXQscHQrPShlLXB0KS91dCxkdCs9KHItZHQpL3V0fWZ1bmN0aW9uIFV0KCl7QnQucG9pbnQ9VnR9ZnVuY3Rpb24gVnQodCxlKXt0Kj1oO3ZhciByPWcoZSo9aCk7VHQ9cipnKHQpLGt0PXIqXyh0KSxBdD1fKGUpLEJ0LnBvaW50PUh0LGp0KFR0LGt0LEF0KX1mdW5jdGlvbiBIdCh0LGUpe3QqPWg7dmFyIHI9ZyhlKj1oKSxuPXIqZyh0KSxpPXIqXyh0KSxhPV8oZSksbz1tKFQoKG89a3QqYS1BdCppKSpvKyhvPUF0Km4tVHQqYSkqbysobz1UdCppLWt0Km4pKm8pLFR0Km4ra3QqaStBdCphKTtmdCs9byxtdCs9byooVHQrKFR0PW4pKSxndCs9byooa3QrKGt0PWkpKSx2dCs9byooQXQrKEF0PWEpKSxqdChUdCxrdCxBdCl9ZnVuY3Rpb24gcXQoKXtCdC5wb2ludD1OdH1mdW5jdGlvbiBHdCgpe0J0LnBvaW50PVd0fWZ1bmN0aW9uIFl0KCl7WHQoX3Qsd3QpLEJ0LnBvaW50PU50fWZ1bmN0aW9uIFd0KHQsZSl7X3Q9dCx3dD1lLHQqPWgsZSo9aCxCdC5wb2ludD1YdDt2YXIgcj1nKGUpO1R0PXIqZyh0KSxrdD1yKl8odCksQXQ9XyhlKSxqdChUdCxrdCxBdCl9ZnVuY3Rpb24gWHQodCxlKXt0Kj1oO3ZhciByPWcoZSo9aCksbj1yKmcodCksaT1yKl8odCksYT1fKGUpLG89a3QqYS1BdCppLHM9QXQqbi1UdCphLGw9VHQqaS1rdCpuLGM9VChvKm8rcypzK2wqbCksdT1NKGMpLGY9YyYmLXUvYzt5dCs9ZipvLHh0Kz1mKnMsYnQrPWYqbCxmdCs9dSxtdCs9dSooVHQrKFR0PW4pKSxndCs9dSooa3QrKGt0PWkpKSx2dCs9dSooQXQrKEF0PWEpKSxqdChUdCxrdCxBdCl9ZnVuY3Rpb24gWnQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIEp0KHQsZSl7ZnVuY3Rpb24gcihyLG4pe3JldHVybiByPXQocixuKSxlKHJbMF0sclsxXSl9cmV0dXJuIHQuaW52ZXJ0JiZlLmludmVydCYmKHIuaW52ZXJ0PWZ1bmN0aW9uKHIsbil7cmV0dXJuKHI9ZS5pbnZlcnQocixuKSkmJnQuaW52ZXJ0KHJbMF0sclsxXSl9KSxyfWZ1bmN0aW9uIEt0KHQsZSl7cmV0dXJuW3AodCk+cz90K01hdGgucm91bmQoLXQvdSkqdTp0LGVdfWZ1bmN0aW9uIFF0KHQsZSxyKXtyZXR1cm4odCU9dSk/ZXx8cj9KdCh0ZSh0KSxlZShlLHIpKTp0ZSh0KTplfHxyP2VlKGUscik6S3R9ZnVuY3Rpb24gJHQodCl7cmV0dXJuIGZ1bmN0aW9uKGUscil7cmV0dXJuWyhlKz10KT5zP2UtdTplPC1zP2UrdTplLHJdfX1mdW5jdGlvbiB0ZSh0KXt2YXIgZT0kdCh0KTtyZXR1cm4gZS5pbnZlcnQ9JHQoLXQpLGV9ZnVuY3Rpb24gZWUodCxlKXt2YXIgcj1nKHQpLG49Xyh0KSxpPWcoZSksYT1fKGUpO2Z1bmN0aW9uIG8odCxlKXt2YXIgbz1nKGUpLHM9Zyh0KSpvLGw9Xyh0KSpvLGM9XyhlKSx1PWMqcitzKm47cmV0dXJuW20obCppLXUqYSxzKnItYypuKSxNKHUqaStsKmEpXX1yZXR1cm4gby5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgbz1nKGUpLHM9Zyh0KSpvLGw9Xyh0KSpvLGM9XyhlKSx1PWMqaS1sKmE7cmV0dXJuW20obCppK2MqYSxzKnIrdSpuKSxNKHUqci1zKm4pXX0sb31mdW5jdGlvbiByZSh0KXtmdW5jdGlvbiBlKGUpe3JldHVybihlPXQoZVswXSpoLGVbMV0qaCkpWzBdKj1mLGVbMV0qPWYsZX1yZXR1cm4gdD1RdCh0WzBdKmgsdFsxXSpoLHQubGVuZ3RoPjI/dFsyXSpoOjApLGUuaW52ZXJ0PWZ1bmN0aW9uKGUpe3JldHVybihlPXQuaW52ZXJ0KGVbMF0qaCxlWzFdKmgpKVswXSo9ZixlWzFdKj1mLGV9LGV9ZnVuY3Rpb24gbmUodCxlLHIsbixpLGEpe2lmKHIpe3ZhciBvPWcoZSkscz1fKGUpLGw9bipyO251bGw9PWk/KGk9ZStuKnUsYT1lLWwvMik6KGk9aWUobyxpKSxhPWllKG8sYSksKG4+MD9pPGE6aT5hKSYmKGkrPW4qdSkpO2Zvcih2YXIgYyxmPWk7bj4wP2Y+YTpmPGE7Zi09bCljPVcoW28sLXMqZyhmKSwtcypfKGYpXSksdC5wb2ludChjWzBdLGNbMV0pfX1mdW5jdGlvbiBpZSh0LGUpeyhlPVgoZSkpWzBdLT10LCQoZSk7dmFyIHI9QSgtZVsxXSk7cmV0dXJuKCgtZVsyXTwwPy1yOnIpK3UtbykldX1mdW5jdGlvbiBhZSgpe3ZhciB0LGU9W107cmV0dXJue3BvaW50OmZ1bmN0aW9uKGUscixuKXt0LnB1c2goW2UscixuXSl9LGxpbmVTdGFydDpmdW5jdGlvbigpe2UucHVzaCh0PVtdKX0sbGluZUVuZDpFLHJlam9pbjpmdW5jdGlvbigpe2UubGVuZ3RoPjEmJmUucHVzaChlLnBvcCgpLmNvbmNhdChlLnNoaWZ0KCkpKX0scmVzdWx0OmZ1bmN0aW9uKCl7dmFyIHI9ZTtyZXR1cm4gZT1bXSx0PW51bGwscn19fWZ1bmN0aW9uIG9lKHQsZSl7cmV0dXJuIHAodFswXS1lWzBdKTxvJiZwKHRbMV0tZVsxXSk8b31mdW5jdGlvbiBzZSh0LGUscixuKXt0aGlzLng9dCx0aGlzLno9ZSx0aGlzLm89cix0aGlzLmU9bix0aGlzLnY9ITEsdGhpcy5uPXRoaXMucD1udWxsfWZ1bmN0aW9uIGxlKHQsZSxyLG4saSl7dmFyIGEscyxsPVtdLGM9W107aWYodC5mb3JFYWNoKChmdW5jdGlvbih0KXtpZighKChlPXQubGVuZ3RoLTEpPD0wKSl7dmFyIGUscixuPXRbMF0scz10W2VdO2lmKG9lKG4scykpe2lmKCFuWzJdJiYhc1syXSl7Zm9yKGkubGluZVN0YXJ0KCksYT0wO2E8ZTsrK2EpaS5wb2ludCgobj10W2FdKVswXSxuWzFdKTtyZXR1cm4gdm9pZCBpLmxpbmVFbmQoKX1zWzBdKz0yKm99bC5wdXNoKHI9bmV3IHNlKG4sdCxudWxsLCEwKSksYy5wdXNoKHIubz1uZXcgc2UobixudWxsLHIsITEpKSxsLnB1c2gocj1uZXcgc2Uocyx0LG51bGwsITEpKSxjLnB1c2goci5vPW5ldyBzZShzLG51bGwsciwhMCkpfX0pKSxsLmxlbmd0aCl7Zm9yKGMuc29ydChlKSxjZShsKSxjZShjKSxhPTAscz1jLmxlbmd0aDthPHM7KythKWNbYV0uZT1yPSFyO2Zvcih2YXIgdSxmLGg9bFswXTs7KXtmb3IodmFyIHA9aCxkPSEwO3AudjspaWYoKHA9cC5uKT09PWgpcmV0dXJuO3U9cC56LGkubGluZVN0YXJ0KCk7ZG97aWYocC52PXAuby52PSEwLHAuZSl7aWYoZClmb3IoYT0wLHM9dS5sZW5ndGg7YTxzOysrYSlpLnBvaW50KChmPXVbYV0pWzBdLGZbMV0pO2Vsc2UgbihwLngscC5uLngsMSxpKTtwPXAubn1lbHNle2lmKGQpZm9yKHU9cC5wLnosYT11Lmxlbmd0aC0xO2E+PTA7LS1hKWkucG9pbnQoKGY9dVthXSlbMF0sZlsxXSk7ZWxzZSBuKHAueCxwLnAueCwtMSxpKTtwPXAucH11PShwPXAubykueixkPSFkfXdoaWxlKCFwLnYpO2kubGluZUVuZCgpfX19ZnVuY3Rpb24gY2UodCl7aWYoZT10Lmxlbmd0aCl7Zm9yKHZhciBlLHIsbj0wLGk9dFswXTsrK248ZTspaS5uPXI9dFtuXSxyLnA9aSxpPXI7aS5uPXI9dFswXSxyLnA9aX19S3QuaW52ZXJ0PUt0O3ZhciB1ZT1yKCk7ZnVuY3Rpb24gZmUodCl7cmV0dXJuIHAodFswXSk8PXM/dFswXTp3KHRbMF0pKigocCh0WzBdKStzKSV1LXMpfWZ1bmN0aW9uIGhlKHQsZSl7dmFyIHI9ZmUoZSksbj1lWzFdLGk9XyhuKSxhPVtfKHIpLC1nKHIpLDBdLGY9MCxoPTA7dWUucmVzZXQoKSwxPT09aT9uPWwrbzotMT09PWkmJihuPS1sLW8pO2Zvcih2YXIgcD0wLGQ9dC5sZW5ndGg7cDxkOysrcClpZih5PSh2PXRbcF0pLmxlbmd0aClmb3IodmFyIHYseSx4PXZbeS0xXSxiPWZlKHgpLHc9eFsxXS8yK2MsVD1fKHcpLGs9Zyh3KSxBPTA7QTx5OysrQSxiPUUsVD1DLGs9UCx4PVMpe3ZhciBTPXZbQV0sRT1mZShTKSxMPVNbMV0vMitjLEM9XyhMKSxQPWcoTCksST1FLWIsTz1JPj0wPzE6LTEsej1PKkksRD16PnMsUj1UKkM7aWYodWUuYWRkKG0oUipPKl8oeiksaypQK1IqZyh6KSkpLGYrPUQ/SStPKnU6SSxEXmI+PXJeRT49cil7dmFyIEY9SihYKHgpLFgoUykpOyQoRik7dmFyIEI9SihhLEYpOyQoQik7dmFyIE49KEReST49MD8tMToxKSpNKEJbMl0pOyhuPk58fG49PT1OJiYoRlswXXx8RlsxXSkpJiYoaCs9RF5JPj0wPzE6LTEpfX1yZXR1cm4oZjwtb3x8ZjxvJiZ1ZTwtbyleMSZofWZ1bmN0aW9uIHBlKHQscixuLGkpe3JldHVybiBmdW5jdGlvbihhKXt2YXIgbyxzLGwsYz1yKGEpLHU9YWUoKSxmPXIodSksaD0hMSxwPXtwb2ludDpkLGxpbmVTdGFydDpnLGxpbmVFbmQ6dixwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtwLnBvaW50PXkscC5saW5lU3RhcnQ9eCxwLmxpbmVFbmQ9YixzPVtdLG89W119LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtwLnBvaW50PWQscC5saW5lU3RhcnQ9ZyxwLmxpbmVFbmQ9dixzPWUubWVyZ2Uocyk7dmFyIHQ9aGUobyxpKTtzLmxlbmd0aD8oaHx8KGEucG9seWdvblN0YXJ0KCksaD0hMCksbGUocyxtZSx0LG4sYSkpOnQmJihofHwoYS5wb2x5Z29uU3RhcnQoKSxoPSEwKSxhLmxpbmVTdGFydCgpLG4obnVsbCxudWxsLDEsYSksYS5saW5lRW5kKCkpLGgmJihhLnBvbHlnb25FbmQoKSxoPSExKSxzPW89bnVsbH0sc3BoZXJlOmZ1bmN0aW9uKCl7YS5wb2x5Z29uU3RhcnQoKSxhLmxpbmVTdGFydCgpLG4obnVsbCxudWxsLDEsYSksYS5saW5lRW5kKCksYS5wb2x5Z29uRW5kKCl9fTtmdW5jdGlvbiBkKGUscil7dChlLHIpJiZhLnBvaW50KGUscil9ZnVuY3Rpb24gbSh0LGUpe2MucG9pbnQodCxlKX1mdW5jdGlvbiBnKCl7cC5wb2ludD1tLGMubGluZVN0YXJ0KCl9ZnVuY3Rpb24gdigpe3AucG9pbnQ9ZCxjLmxpbmVFbmQoKX1mdW5jdGlvbiB5KHQsZSl7bC5wdXNoKFt0LGVdKSxmLnBvaW50KHQsZSl9ZnVuY3Rpb24geCgpe2YubGluZVN0YXJ0KCksbD1bXX1mdW5jdGlvbiBiKCl7eShsWzBdWzBdLGxbMF1bMV0pLGYubGluZUVuZCgpO3ZhciB0LGUscixuLGk9Zi5jbGVhbigpLGM9dS5yZXN1bHQoKSxwPWMubGVuZ3RoO2lmKGwucG9wKCksby5wdXNoKGwpLGw9bnVsbCxwKWlmKDEmaSl7aWYoKGU9KHI9Y1swXSkubGVuZ3RoLTEpPjApe2ZvcihofHwoYS5wb2x5Z29uU3RhcnQoKSxoPSEwKSxhLmxpbmVTdGFydCgpLHQ9MDt0PGU7Kyt0KWEucG9pbnQoKG49clt0XSlbMF0sblsxXSk7YS5saW5lRW5kKCl9fWVsc2UgcD4xJiYyJmkmJmMucHVzaChjLnBvcCgpLmNvbmNhdChjLnNoaWZ0KCkpKSxzLnB1c2goYy5maWx0ZXIoZGUpKX1yZXR1cm4gcH19ZnVuY3Rpb24gZGUodCl7cmV0dXJuIHQubGVuZ3RoPjF9ZnVuY3Rpb24gbWUodCxlKXtyZXR1cm4oKHQ9dC54KVswXTwwP3RbMV0tbC1vOmwtdFsxXSktKChlPWUueClbMF08MD9lWzFdLWwtbzpsLWVbMV0pfXZhciBnZT1wZSgoZnVuY3Rpb24oKXtyZXR1cm4hMH0pLChmdW5jdGlvbih0KXt2YXIgZSxyPU5hTixuPU5hTixpPU5hTjtyZXR1cm57bGluZVN0YXJ0OmZ1bmN0aW9uKCl7dC5saW5lU3RhcnQoKSxlPTF9LHBvaW50OmZ1bmN0aW9uKGEsYyl7dmFyIHU9YT4wP3M6LXMsZj1wKGEtcik7cChmLXMpPG8/KHQucG9pbnQocixuPShuK2MpLzI+MD9sOi1sKSx0LnBvaW50KGksbiksdC5saW5lRW5kKCksdC5saW5lU3RhcnQoKSx0LnBvaW50KHUsbiksdC5wb2ludChhLG4pLGU9MCk6aSE9PXUmJmY+PXMmJihwKHItaSk8byYmKHItPWkqbykscChhLXUpPG8mJihhLT11Km8pLG49ZnVuY3Rpb24odCxlLHIsbil7dmFyIGksYSxzPV8odC1yKTtyZXR1cm4gcChzKT5vP2QoKF8oZSkqKGE9ZyhuKSkqXyhyKS1fKG4pKihpPWcoZSkpKl8odCkpLyhpKmEqcykpOihlK24pLzJ9KHIsbixhLGMpLHQucG9pbnQoaSxuKSx0LmxpbmVFbmQoKSx0LmxpbmVTdGFydCgpLHQucG9pbnQodSxuKSxlPTApLHQucG9pbnQocj1hLG49YyksaT11fSxsaW5lRW5kOmZ1bmN0aW9uKCl7dC5saW5lRW5kKCkscj1uPU5hTn0sY2xlYW46ZnVuY3Rpb24oKXtyZXR1cm4gMi1lfX19KSwoZnVuY3Rpb24odCxlLHIsbil7dmFyIGk7aWYobnVsbD09dClpPXIqbCxuLnBvaW50KC1zLGkpLG4ucG9pbnQoMCxpKSxuLnBvaW50KHMsaSksbi5wb2ludChzLDApLG4ucG9pbnQocywtaSksbi5wb2ludCgwLC1pKSxuLnBvaW50KC1zLC1pKSxuLnBvaW50KC1zLDApLG4ucG9pbnQoLXMsaSk7ZWxzZSBpZihwKHRbMF0tZVswXSk+byl7dmFyIGE9dFswXTxlWzBdP3M6LXM7aT1yKmEvMixuLnBvaW50KC1hLGkpLG4ucG9pbnQoMCxpKSxuLnBvaW50KGEsaSl9ZWxzZSBuLnBvaW50KGVbMF0sZVsxXSl9KSxbLXMsLWxdKTtmdW5jdGlvbiB2ZSh0KXt2YXIgZT1nKHQpLHI9NipoLG49ZT4wLGk9cChlKT5vO2Z1bmN0aW9uIGEodCxyKXtyZXR1cm4gZyh0KSpnKHIpPmV9ZnVuY3Rpb24gbCh0LHIsbil7dmFyIGk9WzEsMCwwXSxhPUooWCh0KSxYKHIpKSxsPVooYSxhKSxjPWFbMF0sdT1sLWMqYztpZighdSlyZXR1cm4hbiYmdDt2YXIgZj1lKmwvdSxoPS1lKmMvdSxkPUooaSxhKSxtPVEoaSxmKTtLKG0sUShhLGgpKTt2YXIgZz1kLHY9WihtLGcpLHk9WihnLGcpLHg9dip2LXkqKFoobSxtKS0xKTtpZighKHg8MCkpe3ZhciBiPVQoeCksXz1RKGcsKC12LWIpL3kpO2lmKEsoXyxtKSxfPVcoXyksIW4pcmV0dXJuIF87dmFyIHcsaz10WzBdLEE9clswXSxNPXRbMV0sUz1yWzFdO0E8ayYmKHc9ayxrPUEsQT13KTt2YXIgRT1BLWssTD1wKEUtcyk8bztpZighTCYmUzxNJiYodz1NLE09UyxTPXcpLEx8fEU8bz9MP00rUz4wXl9bMV08KHAoX1swXS1rKTxvP006Uyk6TTw9X1sxXSYmX1sxXTw9UzpFPnNeKGs8PV9bMF0mJl9bMF08PUEpKXt2YXIgQz1RKGcsKC12K2IpL3kpO3JldHVybiBLKEMsbSksW18sVyhDKV19fX1mdW5jdGlvbiBjKGUscil7dmFyIGk9bj90OnMtdCxhPTA7cmV0dXJuIGU8LWk/YXw9MTplPmkmJihhfD0yKSxyPC1pP2F8PTQ6cj5pJiYoYXw9OCksYX1yZXR1cm4gcGUoYSwoZnVuY3Rpb24odCl7dmFyIGUscixvLHUsZjtyZXR1cm57bGluZVN0YXJ0OmZ1bmN0aW9uKCl7dT1vPSExLGY9MX0scG9pbnQ6ZnVuY3Rpb24oaCxwKXt2YXIgZCxtPVtoLHBdLGc9YShoLHApLHY9bj9nPzA6YyhoLHApOmc/YyhoKyhoPDA/czotcykscCk6MDtpZighZSYmKHU9bz1nKSYmdC5saW5lU3RhcnQoKSxnIT09byYmKCEoZD1sKGUsbSkpfHxvZShlLGQpfHxvZShtLGQpKSYmKG1bMl09MSksZyE9PW8pZj0wLGc/KHQubGluZVN0YXJ0KCksZD1sKG0sZSksdC5wb2ludChkWzBdLGRbMV0pKTooZD1sKGUsbSksdC5wb2ludChkWzBdLGRbMV0sMiksdC5saW5lRW5kKCkpLGU9ZDtlbHNlIGlmKGkmJmUmJm5eZyl7dmFyIHk7diZyfHwhKHk9bChtLGUsITApKXx8KGY9MCxuPyh0LmxpbmVTdGFydCgpLHQucG9pbnQoeVswXVswXSx5WzBdWzFdKSx0LnBvaW50KHlbMV1bMF0seVsxXVsxXSksdC5saW5lRW5kKCkpOih0LnBvaW50KHlbMV1bMF0seVsxXVsxXSksdC5saW5lRW5kKCksdC5saW5lU3RhcnQoKSx0LnBvaW50KHlbMF1bMF0seVswXVsxXSwzKSkpfSFnfHxlJiZvZShlLG0pfHx0LnBvaW50KG1bMF0sbVsxXSksZT1tLG89ZyxyPXZ9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtvJiZ0LmxpbmVFbmQoKSxlPW51bGx9LGNsZWFuOmZ1bmN0aW9uKCl7cmV0dXJuIGZ8KHUmJm8pPDwxfX19KSwoZnVuY3Rpb24oZSxuLGksYSl7bmUoYSx0LHIsaSxlLG4pfSksbj9bMCwtdF06Wy1zLHQtc10pfWZ1bmN0aW9uIHllKHQscixuLGkpe2Z1bmN0aW9uIGEoZSxhKXtyZXR1cm4gdDw9ZSYmZTw9biYmcjw9YSYmYTw9aX1mdW5jdGlvbiBzKGUsYSxvLHMpe3ZhciBjPTAsZj0wO2lmKG51bGw9PWV8fChjPWwoZSxvKSkhPT0oZj1sKGEsbykpfHx1KGUsYSk8MF5vPjApZG97cy5wb2ludCgwPT09Y3x8Mz09PWM/dDpuLGM+MT9pOnIpfXdoaWxlKChjPShjK28rNCklNCkhPT1mKTtlbHNlIHMucG9pbnQoYVswXSxhWzFdKX1mdW5jdGlvbiBsKGUsaSl7cmV0dXJuIHAoZVswXS10KTxvP2k+MD8wOjM6cChlWzBdLW4pPG8/aT4wPzI6MTpwKGVbMV0tcik8bz9pPjA/MTowOmk+MD8zOjJ9ZnVuY3Rpb24gYyh0LGUpe3JldHVybiB1KHQueCxlLngpfWZ1bmN0aW9uIHUodCxlKXt2YXIgcj1sKHQsMSksbj1sKGUsMSk7cmV0dXJuIHIhPT1uP3ItbjowPT09cj9lWzFdLXRbMV06MT09PXI/dFswXS1lWzBdOjI9PT1yP3RbMV0tZVsxXTplWzBdLXRbMF19cmV0dXJuIGZ1bmN0aW9uKG8pe3ZhciBsLHUsZixoLHAsZCxtLGcsdix5LHgsYj1vLF89YWUoKSx3PXtwb2ludDpULGxpbmVTdGFydDpmdW5jdGlvbigpe3cucG9pbnQ9ayx1JiZ1LnB1c2goZj1bXSk7eT0hMCx2PSExLG09Zz1OYU59LGxpbmVFbmQ6ZnVuY3Rpb24oKXtsJiYoayhoLHApLGQmJnYmJl8ucmVqb2luKCksbC5wdXNoKF8ucmVzdWx0KCkpKTt3LnBvaW50PVQsdiYmYi5saW5lRW5kKCl9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe2I9XyxsPVtdLHU9W10seD0hMH0scG9seWdvbkVuZDpmdW5jdGlvbigpe3ZhciByPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPTAscj0wLG49dS5sZW5ndGg7cjxuOysrcilmb3IodmFyIGEsbyxzPXVbcl0sbD0xLGM9cy5sZW5ndGgsZj1zWzBdLGg9ZlswXSxwPWZbMV07bDxjOysrbClhPWgsbz1wLGY9c1tsXSxoPWZbMF0scD1mWzFdLG88PWk/cD5pJiYoaC1hKSooaS1vKT4ocC1vKSoodC1hKSYmKytlOnA8PWkmJihoLWEpKihpLW8pPChwLW8pKih0LWEpJiYtLWU7cmV0dXJuIGV9KCksbj14JiZyLGE9KGw9ZS5tZXJnZShsKSkubGVuZ3RoOyhufHxhKSYmKG8ucG9seWdvblN0YXJ0KCksbiYmKG8ubGluZVN0YXJ0KCkscyhudWxsLG51bGwsMSxvKSxvLmxpbmVFbmQoKSksYSYmbGUobCxjLHIscyxvKSxvLnBvbHlnb25FbmQoKSk7Yj1vLGw9dT1mPW51bGx9fTtmdW5jdGlvbiBUKHQsZSl7YSh0LGUpJiZiLnBvaW50KHQsZSl9ZnVuY3Rpb24gayhlLG8pe3ZhciBzPWEoZSxvKTtpZih1JiZmLnB1c2goW2Usb10pLHkpaD1lLHA9byxkPXMseT0hMSxzJiYoYi5saW5lU3RhcnQoKSxiLnBvaW50KGUsbykpO2Vsc2UgaWYocyYmdiliLnBvaW50KGUsbyk7ZWxzZXt2YXIgbD1bbT1NYXRoLm1heCgtMWU5LE1hdGgubWluKDFlOSxtKSksZz1NYXRoLm1heCgtMWU5LE1hdGgubWluKDFlOSxnKSldLGM9W2U9TWF0aC5tYXgoLTFlOSxNYXRoLm1pbigxZTksZSkpLG89TWF0aC5tYXgoLTFlOSxNYXRoLm1pbigxZTksbykpXTshZnVuY3Rpb24odCxlLHIsbixpLGEpe3ZhciBvLHM9dFswXSxsPXRbMV0sYz0wLHU9MSxmPWVbMF0tcyxoPWVbMV0tbDtpZihvPXItcyxmfHwhKG8+MCkpe2lmKG8vPWYsZjwwKXtpZihvPGMpcmV0dXJuO288dSYmKHU9byl9ZWxzZSBpZihmPjApe2lmKG8+dSlyZXR1cm47bz5jJiYoYz1vKX1pZihvPWktcyxmfHwhKG88MCkpe2lmKG8vPWYsZjwwKXtpZihvPnUpcmV0dXJuO28+YyYmKGM9byl9ZWxzZSBpZihmPjApe2lmKG88YylyZXR1cm47bzx1JiYodT1vKX1pZihvPW4tbCxofHwhKG8+MCkpe2lmKG8vPWgsaDwwKXtpZihvPGMpcmV0dXJuO288dSYmKHU9byl9ZWxzZSBpZihoPjApe2lmKG8+dSlyZXR1cm47bz5jJiYoYz1vKX1pZihvPWEtbCxofHwhKG88MCkpe2lmKG8vPWgsaDwwKXtpZihvPnUpcmV0dXJuO28+YyYmKGM9byl9ZWxzZSBpZihoPjApe2lmKG88YylyZXR1cm47bzx1JiYodT1vKX1yZXR1cm4gYz4wJiYodFswXT1zK2MqZix0WzFdPWwrYypoKSx1PDEmJihlWzBdPXMrdSpmLGVbMV09bCt1KmgpLCEwfX19fX0obCxjLHQscixuLGkpP3MmJihiLmxpbmVTdGFydCgpLGIucG9pbnQoZSxvKSx4PSExKToodnx8KGIubGluZVN0YXJ0KCksYi5wb2ludChsWzBdLGxbMV0pKSxiLnBvaW50KGNbMF0sY1sxXSksc3x8Yi5saW5lRW5kKCkseD0hMSl9bT1lLGc9byx2PXN9cmV0dXJuIHd9fXZhciB4ZSxiZSxfZSx3ZT1yKCksVGU9e3NwaGVyZTpFLHBvaW50OkUsbGluZVN0YXJ0OmZ1bmN0aW9uKCl7VGUucG9pbnQ9QWUsVGUubGluZUVuZD1rZX0sbGluZUVuZDpFLHBvbHlnb25TdGFydDpFLHBvbHlnb25FbmQ6RX07ZnVuY3Rpb24ga2UoKXtUZS5wb2ludD1UZS5saW5lRW5kPUV9ZnVuY3Rpb24gQWUodCxlKXt4ZT10Kj1oLGJlPV8oZSo9aCksX2U9ZyhlKSxUZS5wb2ludD1NZX1mdW5jdGlvbiBNZSh0LGUpe3QqPWg7dmFyIHI9XyhlKj1oKSxuPWcoZSksaT1wKHQteGUpLGE9ZyhpKSxvPW4qXyhpKSxzPV9lKnItYmUqbiphLGw9YmUqcitfZSpuKmE7d2UuYWRkKG0oVChvKm8rcypzKSxsKSkseGU9dCxiZT1yLF9lPW59ZnVuY3Rpb24gU2UodCl7cmV0dXJuIHdlLnJlc2V0KCkseih0LFRlKSwrd2V9dmFyIEVlPVtudWxsLG51bGxdLExlPXt0eXBlOiJMaW5lU3RyaW5nIixjb29yZGluYXRlczpFZX07ZnVuY3Rpb24gQ2UodCxlKXtyZXR1cm4gRWVbMF09dCxFZVsxXT1lLFNlKExlKX12YXIgUGU9e0ZlYXR1cmU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gT2UodC5nZW9tZXRyeSxlKX0sRmVhdHVyZUNvbGxlY3Rpb246ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5mZWF0dXJlcyxuPS0xLGk9ci5sZW5ndGg7KytuPGk7KWlmKE9lKHJbbl0uZ2VvbWV0cnksZSkpcmV0dXJuITA7cmV0dXJuITF9fSxJZT17U3BoZXJlOmZ1bmN0aW9uKCl7cmV0dXJuITB9LFBvaW50OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHplKHQuY29vcmRpbmF0ZXMsZSl9LE11bHRpUG9pbnQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5jb29yZGluYXRlcyxuPS0xLGk9ci5sZW5ndGg7KytuPGk7KWlmKHplKHJbbl0sZSkpcmV0dXJuITA7cmV0dXJuITF9LExpbmVTdHJpbmc6ZnVuY3Rpb24odCxlKXtyZXR1cm4gRGUodC5jb29yZGluYXRlcyxlKX0sTXVsdGlMaW5lU3RyaW5nOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQuY29vcmRpbmF0ZXMsbj0tMSxpPXIubGVuZ3RoOysrbjxpOylpZihEZShyW25dLGUpKXJldHVybiEwO3JldHVybiExfSxQb2x5Z29uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFJlKHQuY29vcmRpbmF0ZXMsZSl9LE11bHRpUG9seWdvbjpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10LmNvb3JkaW5hdGVzLG49LTEsaT1yLmxlbmd0aDsrK248aTspaWYoUmUocltuXSxlKSlyZXR1cm4hMDtyZXR1cm4hMX0sR2VvbWV0cnlDb2xsZWN0aW9uOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQuZ2VvbWV0cmllcyxuPS0xLGk9ci5sZW5ndGg7KytuPGk7KWlmKE9lKHJbbl0sZSkpcmV0dXJuITA7cmV0dXJuITF9fTtmdW5jdGlvbiBPZSh0LGUpe3JldHVybiEoIXR8fCFJZS5oYXNPd25Qcm9wZXJ0eSh0LnR5cGUpKSYmSWVbdC50eXBlXSh0LGUpfWZ1bmN0aW9uIHplKHQsZSl7cmV0dXJuIDA9PT1DZSh0LGUpfWZ1bmN0aW9uIERlKHQsZSl7Zm9yKHZhciByLG4saSxhPTAsbz10Lmxlbmd0aDthPG87YSsrKXtpZigwPT09KG49Q2UodFthXSxlKSkpcmV0dXJuITA7aWYoYT4wJiYoaT1DZSh0W2FdLHRbYS0xXSkpPjAmJnI8PWkmJm48PWkmJihyK24taSkqKDEtTWF0aC5wb3coKHItbikvaSwyKSk8MWUtMTIqaSlyZXR1cm4hMDtyPW59cmV0dXJuITF9ZnVuY3Rpb24gUmUodCxlKXtyZXR1cm4hIWhlKHQubWFwKEZlKSxCZShlKSl9ZnVuY3Rpb24gRmUodCl7cmV0dXJuKHQ9dC5tYXAoQmUpKS5wb3AoKSx0fWZ1bmN0aW9uIEJlKHQpe3JldHVyblt0WzBdKmgsdFsxXSpoXX1mdW5jdGlvbiBOZSh0LHIsbil7dmFyIGk9ZS5yYW5nZSh0LHItbyxuKS5jb25jYXQocik7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuW3QsZV19KSl9fWZ1bmN0aW9uIGplKHQscixuKXt2YXIgaT1lLnJhbmdlKHQsci1vLG4pLmNvbmNhdChyKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGkubWFwKChmdW5jdGlvbihlKXtyZXR1cm5bZSx0XX0pKX19ZnVuY3Rpb24gVWUoKXt2YXIgdCxyLG4saSxhLHMsbCxjLHUsZixoLGQsbT0xMCxnPW0seT05MCx4PTM2MCxiPTIuNTtmdW5jdGlvbiBfKCl7cmV0dXJue3R5cGU6Ik11bHRpTGluZVN0cmluZyIsY29vcmRpbmF0ZXM6dygpfX1mdW5jdGlvbiB3KCl7cmV0dXJuIGUucmFuZ2UodihpL3kpKnksbix5KS5tYXAoaCkuY29uY2F0KGUucmFuZ2UodihjL3gpKngsbCx4KS5tYXAoZCkpLmNvbmNhdChlLnJhbmdlKHYoci9tKSptLHQsbSkuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gcCh0JXkpPm99KSkubWFwKHUpKS5jb25jYXQoZS5yYW5nZSh2KHMvZykqZyxhLGcpLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHAodCV4KT5vfSkpLm1hcChmKSl9cmV0dXJuIF8ubGluZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdygpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJue3R5cGU6IkxpbmVTdHJpbmciLGNvb3JkaW5hdGVzOnR9fSkpfSxfLm91dGxpbmU9ZnVuY3Rpb24oKXtyZXR1cm57dHlwZToiUG9seWdvbiIsY29vcmRpbmF0ZXM6W2goaSkuY29uY2F0KGQobCkuc2xpY2UoMSksaChuKS5yZXZlcnNlKCkuc2xpY2UoMSksZChjKS5yZXZlcnNlKCkuc2xpY2UoMSkpXX19LF8uZXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP18uZXh0ZW50TWFqb3IodCkuZXh0ZW50TWlub3IodCk6Xy5leHRlbnRNaW5vcigpfSxfLmV4dGVudE1ham9yPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSt0WzBdWzBdLG49K3RbMV1bMF0sYz0rdFswXVsxXSxsPSt0WzFdWzFdLGk+biYmKHQ9aSxpPW4sbj10KSxjPmwmJih0PWMsYz1sLGw9dCksXy5wcmVjaXNpb24oYikpOltbaSxjXSxbbixsXV19LF8uZXh0ZW50TWlub3I9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9K2VbMF1bMF0sdD0rZVsxXVswXSxzPStlWzBdWzFdLGE9K2VbMV1bMV0scj50JiYoZT1yLHI9dCx0PWUpLHM+YSYmKGU9cyxzPWEsYT1lKSxfLnByZWNpc2lvbihiKSk6W1tyLHNdLFt0LGFdXX0sXy5zdGVwPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP18uc3RlcE1ham9yKHQpLnN0ZXBNaW5vcih0KTpfLnN0ZXBNaW5vcigpfSxfLnN0ZXBNYWpvcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oeT0rdFswXSx4PSt0WzFdLF8pOlt5LHhdfSxfLnN0ZXBNaW5vcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obT0rdFswXSxnPSt0WzFdLF8pOlttLGddfSxfLnByZWNpc2lvbj1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYj0rZSx1PU5lKHMsYSw5MCksZj1qZShyLHQsYiksaD1OZShjLGwsOTApLGQ9amUoaSxuLGIpLF8pOmJ9LF8uZXh0ZW50TWFqb3IoW1stMTgwLC05MCtvXSxbMTgwLDkwLW9dXSkuZXh0ZW50TWlub3IoW1stMTgwLC04MC1vXSxbMTgwLDgwK29dXSl9ZnVuY3Rpb24gVmUodCl7cmV0dXJuIHR9dmFyIEhlLHFlLEdlLFllLFdlPXIoKSxYZT1yKCksWmU9e3BvaW50OkUsbGluZVN0YXJ0OkUsbGluZUVuZDpFLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe1plLmxpbmVTdGFydD1KZSxaZS5saW5lRW5kPSRlfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7WmUubGluZVN0YXJ0PVplLmxpbmVFbmQ9WmUucG9pbnQ9RSxXZS5hZGQocChYZSkpLFhlLnJlc2V0KCl9LHJlc3VsdDpmdW5jdGlvbigpe3ZhciB0PVdlLzI7cmV0dXJuIFdlLnJlc2V0KCksdH19O2Z1bmN0aW9uIEplKCl7WmUucG9pbnQ9S2V9ZnVuY3Rpb24gS2UodCxlKXtaZS5wb2ludD1RZSxIZT1HZT10LHFlPVllPWV9ZnVuY3Rpb24gUWUodCxlKXtYZS5hZGQoWWUqdC1HZSplKSxHZT10LFllPWV9ZnVuY3Rpb24gJGUoKXtRZShIZSxxZSl9dmFyIHRyPTEvMCxlcj10cixycj0tdHIsbnI9cnIsaXI9e3BvaW50OmZ1bmN0aW9uKHQsZSl7dDx0ciYmKHRyPXQpO3Q+cnImJihycj10KTtlPGVyJiYoZXI9ZSk7ZT5uciYmKG5yPWUpfSxsaW5lU3RhcnQ6RSxsaW5lRW5kOkUscG9seWdvblN0YXJ0OkUscG9seWdvbkVuZDpFLHJlc3VsdDpmdW5jdGlvbigpe3ZhciB0PVtbdHIsZXJdLFtycixucl1dO3JldHVybiBycj1ucj0tKGVyPXRyPTEvMCksdH19O3ZhciBhcixvcixzcixscixjcj0wLHVyPTAsZnI9MCxocj0wLHByPTAsZHI9MCxtcj0wLGdyPTAsdnI9MCx5cj17cG9pbnQ6eHIsbGluZVN0YXJ0OmJyLGxpbmVFbmQ6VHIscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7eXIubGluZVN0YXJ0PWtyLHlyLmxpbmVFbmQ9QXJ9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXt5ci5wb2ludD14cix5ci5saW5lU3RhcnQ9YnIseXIubGluZUVuZD1Ucn0scmVzdWx0OmZ1bmN0aW9uKCl7dmFyIHQ9dnI/W21yL3ZyLGdyL3ZyXTpkcj9baHIvZHIscHIvZHJdOmZyP1tjci9mcix1ci9mcl06W05hTixOYU5dO3JldHVybiBjcj11cj1mcj1ocj1wcj1kcj1tcj1ncj12cj0wLHR9fTtmdW5jdGlvbiB4cih0LGUpe2NyKz10LHVyKz1lLCsrZnJ9ZnVuY3Rpb24gYnIoKXt5ci5wb2ludD1fcn1mdW5jdGlvbiBfcih0LGUpe3lyLnBvaW50PXdyLHhyKHNyPXQsbHI9ZSl9ZnVuY3Rpb24gd3IodCxlKXt2YXIgcj10LXNyLG49ZS1scixpPVQocipyK24qbik7aHIrPWkqKHNyK3QpLzIscHIrPWkqKGxyK2UpLzIsZHIrPWkseHIoc3I9dCxscj1lKX1mdW5jdGlvbiBUcigpe3lyLnBvaW50PXhyfWZ1bmN0aW9uIGtyKCl7eXIucG9pbnQ9TXJ9ZnVuY3Rpb24gQXIoKXtTcihhcixvcil9ZnVuY3Rpb24gTXIodCxlKXt5ci5wb2ludD1Tcix4cihhcj1zcj10LG9yPWxyPWUpfWZ1bmN0aW9uIFNyKHQsZSl7dmFyIHI9dC1zcixuPWUtbHIsaT1UKHIqcituKm4pO2hyKz1pKihzcit0KS8yLHByKz1pKihscitlKS8yLGRyKz1pLG1yKz0oaT1scip0LXNyKmUpKihzcit0KSxncis9aSoobHIrZSksdnIrPTMqaSx4cihzcj10LGxyPWUpfWZ1bmN0aW9uIEVyKHQpe3RoaXMuX2NvbnRleHQ9dH1Fci5wcm90b3R5cGU9e19yYWRpdXM6NC41LHBvaW50UmFkaXVzOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9yYWRpdXM9dCx0aGlzfSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpezA9PT10aGlzLl9saW5lJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX3BvaW50PU5hTn0scG9pbnQ6ZnVuY3Rpb24odCxlKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LGUpLHRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX2NvbnRleHQubGluZVRvKHQsZSk7YnJlYWs7ZGVmYXVsdDp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0K3RoaXMuX3JhZGl1cyxlKSx0aGlzLl9jb250ZXh0LmFyYyh0LGUsdGhpcy5fcmFkaXVzLDAsdSl9fSxyZXN1bHQ6RX07dmFyIExyLENyLFByLElyLE9yLHpyPXIoKSxEcj17cG9pbnQ6RSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXtEci5wb2ludD1Scn0sbGluZUVuZDpmdW5jdGlvbigpe0xyJiZGcihDcixQciksRHIucG9pbnQ9RX0scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7THI9ITB9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtMcj1udWxsfSxyZXN1bHQ6ZnVuY3Rpb24oKXt2YXIgdD0renI7cmV0dXJuIHpyLnJlc2V0KCksdH19O2Z1bmN0aW9uIFJyKHQsZSl7RHIucG9pbnQ9RnIsQ3I9SXI9dCxQcj1Pcj1lfWZ1bmN0aW9uIEZyKHQsZSl7SXItPXQsT3ItPWUsenIuYWRkKFQoSXIqSXIrT3IqT3IpKSxJcj10LE9yPWV9ZnVuY3Rpb24gQnIoKXt0aGlzLl9zdHJpbmc9W119ZnVuY3Rpb24gTnIodCl7cmV0dXJuIm0wLCIrdCsiYSIrdCsiLCIrdCsiIDAgMSwxIDAsIistMip0KyJhIit0KyIsIit0KyIgMCAxLDEgMCwiKzIqdCsieiJ9ZnVuY3Rpb24ganIodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciByPW5ldyBVcjtmb3IodmFyIG4gaW4gdClyW25dPXRbbl07cmV0dXJuIHIuc3RyZWFtPWUscn19ZnVuY3Rpb24gVXIoKXt9ZnVuY3Rpb24gVnIodCxlLHIpe3ZhciBuPXQuY2xpcEV4dGVudCYmdC5jbGlwRXh0ZW50KCk7cmV0dXJuIHQuc2NhbGUoMTUwKS50cmFuc2xhdGUoWzAsMF0pLG51bGwhPW4mJnQuY2xpcEV4dGVudChudWxsKSx6KHIsdC5zdHJlYW0oaXIpKSxlKGlyLnJlc3VsdCgpKSxudWxsIT1uJiZ0LmNsaXBFeHRlbnQobiksdH1mdW5jdGlvbiBIcih0LGUscil7cmV0dXJuIFZyKHQsKGZ1bmN0aW9uKHIpe3ZhciBuPWVbMV1bMF0tZVswXVswXSxpPWVbMV1bMV0tZVswXVsxXSxhPU1hdGgubWluKG4vKHJbMV1bMF0tclswXVswXSksaS8oclsxXVsxXS1yWzBdWzFdKSksbz0rZVswXVswXSsobi1hKihyWzFdWzBdK3JbMF1bMF0pKS8yLHM9K2VbMF1bMV0rKGktYSooclsxXVsxXStyWzBdWzFdKSkvMjt0LnNjYWxlKDE1MCphKS50cmFuc2xhdGUoW28sc10pfSkscil9ZnVuY3Rpb24gcXIodCxlLHIpe3JldHVybiBIcih0LFtbMCwwXSxlXSxyKX1mdW5jdGlvbiBHcih0LGUscil7cmV0dXJuIFZyKHQsKGZ1bmN0aW9uKHIpe3ZhciBuPStlLGk9bi8oclsxXVswXS1yWzBdWzBdKSxhPShuLWkqKHJbMV1bMF0rclswXVswXSkpLzIsbz0taSpyWzBdWzFdO3Quc2NhbGUoMTUwKmkpLnRyYW5zbGF0ZShbYSxvXSl9KSxyKX1mdW5jdGlvbiBZcih0LGUscil7cmV0dXJuIFZyKHQsKGZ1bmN0aW9uKHIpe3ZhciBuPStlLGk9bi8oclsxXVsxXS1yWzBdWzFdKSxhPS1pKnJbMF1bMF0sbz0obi1pKihyWzFdWzFdK3JbMF1bMV0pKS8yO3Quc2NhbGUoMTUwKmkpLnRyYW5zbGF0ZShbYSxvXSl9KSxyKX1Cci5wcm90b3R5cGU9e19yYWRpdXM6NC41LF9jaXJjbGU6TnIoNC41KSxwb2ludFJhZGl1czpmdW5jdGlvbih0KXtyZXR1cm4odD0rdCkhPT10aGlzLl9yYWRpdXMmJih0aGlzLl9yYWRpdXM9dCx0aGlzLl9jaXJjbGU9bnVsbCksdGhpc30scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXswPT09dGhpcy5fbGluZSYmdGhpcy5fc3RyaW5nLnB1c2goIloiKSx0aGlzLl9wb2ludD1OYU59LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fc3RyaW5nLnB1c2goIk0iLHQsIiwiLGUpLHRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX3N0cmluZy5wdXNoKCJMIix0LCIsIixlKTticmVhaztkZWZhdWx0Om51bGw9PXRoaXMuX2NpcmNsZSYmKHRoaXMuX2NpcmNsZT1Ocih0aGlzLl9yYWRpdXMpKSx0aGlzLl9zdHJpbmcucHVzaCgiTSIsdCwiLCIsZSx0aGlzLl9jaXJjbGUpfX0scmVzdWx0OmZ1bmN0aW9uKCl7aWYodGhpcy5fc3RyaW5nLmxlbmd0aCl7dmFyIHQ9dGhpcy5fc3RyaW5nLmpvaW4oIiIpO3JldHVybiB0aGlzLl9zdHJpbmc9W10sdH1yZXR1cm4gbnVsbH19LFVyLnByb3RvdHlwZT17Y29uc3RydWN0b3I6VXIscG9pbnQ6ZnVuY3Rpb24odCxlKXt0aGlzLnN0cmVhbS5wb2ludCh0LGUpfSxzcGhlcmU6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5zcGhlcmUoKX0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0ubGluZVN0YXJ0KCl9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5saW5lRW5kKCl9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLnBvbHlnb25TdGFydCgpfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0ucG9seWdvbkVuZCgpfX07dmFyIFdyPWcoMzAqaCk7ZnVuY3Rpb24gWHIodCxlKXtyZXR1cm4rZT9mdW5jdGlvbih0LGUpe2Z1bmN0aW9uIHIobixpLGEscyxsLGMsdSxmLGgsZCxnLHYseSx4KXt2YXIgYj11LW4sXz1mLWksdz1iKmIrXypfO2lmKHc+NCplJiZ5LS0pe3ZhciBrPXMrZCxBPWwrZyxTPWMrdixFPVQoayprK0EqQStTKlMpLEw9TShTLz1FKSxDPXAocChTKS0xKTxvfHxwKGEtaCk8bz8oYStoKS8yOm0oQSxrKSxQPXQoQyxMKSxJPVBbMF0sTz1QWzFdLHo9SS1uLEQ9Ty1pLFI9Xyp6LWIqRDsoUipSL3c+ZXx8cCgoYip6K18qRCkvdy0uNSk+LjN8fHMqZCtsKmcrYyp2PFdyKSYmKHIobixpLGEscyxsLGMsSSxPLEMsay89RSxBLz1FLFMseSx4KSx4LnBvaW50KEksTykscihJLE8sQyxrLEEsUyx1LGYsaCxkLGcsdix5LHgpKX19cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciBuLGksYSxvLHMsbCxjLHUsZixoLHAsZCxtPXtwb2ludDpnLGxpbmVTdGFydDp2LGxpbmVFbmQ6eCxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtlLnBvbHlnb25TdGFydCgpLG0ubGluZVN0YXJ0PWJ9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtlLnBvbHlnb25FbmQoKSxtLmxpbmVTdGFydD12fX07ZnVuY3Rpb24gZyhyLG4pe3I9dChyLG4pLGUucG9pbnQoclswXSxyWzFdKX1mdW5jdGlvbiB2KCl7dT1OYU4sbS5wb2ludD15LGUubGluZVN0YXJ0KCl9ZnVuY3Rpb24geShuLGkpe3ZhciBhPVgoW24saV0pLG89dChuLGkpO3IodSxmLGMsaCxwLGQsdT1vWzBdLGY9b1sxXSxjPW4saD1hWzBdLHA9YVsxXSxkPWFbMl0sMTYsZSksZS5wb2ludCh1LGYpfWZ1bmN0aW9uIHgoKXttLnBvaW50PWcsZS5saW5lRW5kKCl9ZnVuY3Rpb24gYigpe3YoKSxtLnBvaW50PV8sbS5saW5lRW5kPXd9ZnVuY3Rpb24gXyh0LGUpe3kobj10LGUpLGk9dSxhPWYsbz1oLHM9cCxsPWQsbS5wb2ludD15fWZ1bmN0aW9uIHcoKXtyKHUsZixjLGgscCxkLGksYSxuLG8scyxsLDE2LGUpLG0ubGluZUVuZD14LHgoKX1yZXR1cm4gbX19KHQsZSk6ZnVuY3Rpb24odCl7cmV0dXJuIGpyKHtwb2ludDpmdW5jdGlvbihlLHIpe2U9dChlLHIpLHRoaXMuc3RyZWFtLnBvaW50KGVbMF0sZVsxXSl9fSl9KHQpfXZhciBacj1qcih7cG9pbnQ6ZnVuY3Rpb24odCxlKXt0aGlzLnN0cmVhbS5wb2ludCh0KmgsZSpoKX19KTtmdW5jdGlvbiBKcih0LGUscixuLGkpe2Z1bmN0aW9uIGEoYSxvKXtyZXR1cm5bZSt0KihhKj1uKSxyLXQqKG8qPWkpXX1yZXR1cm4gYS5pbnZlcnQ9ZnVuY3Rpb24oYSxvKXtyZXR1cm5bKGEtZSkvdCpuLChyLW8pL3QqaV19LGF9ZnVuY3Rpb24gS3IodCxlLHIsbixpLGEpe3ZhciBvPWcoYSkscz1fKGEpLGw9byp0LGM9cyp0LHU9by90LGY9cy90LGg9KHMqci1vKmUpL3QscD0ocyplK28qcikvdDtmdW5jdGlvbiBkKHQsYSl7cmV0dXJuW2wqKHQqPW4pLWMqKGEqPWkpK2Usci1jKnQtbCphXX1yZXR1cm4gZC5pbnZlcnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm5bbioodSp0LWYqZStoKSxpKihwLWYqdC11KmUpXX0sZH1mdW5jdGlvbiBRcih0KXtyZXR1cm4gJHIoKGZ1bmN0aW9uKCl7cmV0dXJuIHR9KSkoKX1mdW5jdGlvbiAkcih0KXt2YXIgZSxyLG4saSxhLG8scyxsLGMsdSxwPTE1MCxkPTQ4MCxtPTI1MCxnPTAsdj0wLHk9MCx4PTAsYj0wLF89MCx3PTEsaz0xLEE9bnVsbCxNPWdlLFM9bnVsbCxFPVZlLEw9LjU7ZnVuY3Rpb24gQyh0KXtyZXR1cm4gbCh0WzBdKmgsdFsxXSpoKX1mdW5jdGlvbiBQKHQpe3JldHVybih0PWwuaW52ZXJ0KHRbMF0sdFsxXSkpJiZbdFswXSpmLHRbMV0qZl19ZnVuY3Rpb24gSSgpe3ZhciB0PUtyKHAsMCwwLHcsayxfKS5hcHBseShudWxsLGUoZyx2KSksbj0oXz9LcjpKcikocCxkLXRbMF0sbS10WzFdLHcsayxfKTtyZXR1cm4gcj1RdCh5LHgsYikscz1KdChlLG4pLGw9SnQocixzKSxvPVhyKHMsTCksTygpfWZ1bmN0aW9uIE8oKXtyZXR1cm4gYz11PW51bGwsQ31yZXR1cm4gQy5zdHJlYW09ZnVuY3Rpb24odCl7cmV0dXJuIGMmJnU9PT10P2M6Yz1acihmdW5jdGlvbih0KXtyZXR1cm4ganIoe3BvaW50OmZ1bmN0aW9uKGUscil7dmFyIG49dChlLHIpO3JldHVybiB0aGlzLnN0cmVhbS5wb2ludChuWzBdLG5bMV0pfX0pfShyKShNKG8oRSh1PXQpKSkpKX0sQy5wcmVjbGlwPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhNPXQsQT12b2lkIDAsTygpKTpNfSxDLnBvc3RjbGlwPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhFPXQsUz1uPWk9YT1udWxsLE8oKSk6RX0sQy5jbGlwQW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KE09K3Q/dmUoQT10KmgpOihBPW51bGwsZ2UpLE8oKSk6QSpmfSxDLmNsaXBFeHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KEU9bnVsbD09dD8oUz1uPWk9YT1udWxsLFZlKTp5ZShTPSt0WzBdWzBdLG49K3RbMF1bMV0saT0rdFsxXVswXSxhPSt0WzFdWzFdKSxPKCkpOm51bGw9PVM/bnVsbDpbW1Msbl0sW2ksYV1dfSxDLnNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhwPSt0LEkoKSk6cH0sQy50cmFuc2xhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGQ9K3RbMF0sbT0rdFsxXSxJKCkpOltkLG1dfSxDLmNlbnRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZz10WzBdJTM2MCpoLHY9dFsxXSUzNjAqaCxJKCkpOltnKmYsdipmXX0sQy5yb3RhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHk9dFswXSUzNjAqaCx4PXRbMV0lMzYwKmgsYj10Lmxlbmd0aD4yP3RbMl0lMzYwKmg6MCxJKCkpOlt5KmYseCpmLGIqZl19LEMuYW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KF89dCUzNjAqaCxJKCkpOl8qZn0sQy5yZWZsZWN0WD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odz10Py0xOjEsSSgpKTp3PDB9LEMucmVmbGVjdFk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGs9dD8tMToxLEkoKSk6azwwfSxDLnByZWNpc2lvbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1YcihzLEw9dCp0KSxPKCkpOlQoTCl9LEMuZml0RXh0ZW50PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIEhyKEMsdCxlKX0sQy5maXRTaXplPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHFyKEMsdCxlKX0sQy5maXRXaWR0aD1mdW5jdGlvbih0LGUpe3JldHVybiBHcihDLHQsZSl9LEMuZml0SGVpZ2h0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFlyKEMsdCxlKX0sZnVuY3Rpb24oKXtyZXR1cm4gZT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKSxDLmludmVydD1lLmludmVydCYmUCxJKCl9fWZ1bmN0aW9uIHRuKHQpe3ZhciBlPTAscj1zLzMsbj0kcih0KSxpPW4oZSxyKTtyZXR1cm4gaS5wYXJhbGxlbHM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/bihlPXRbMF0qaCxyPXRbMV0qaCk6W2UqZixyKmZdfSxpfWZ1bmN0aW9uIGVuKHQsZSl7dmFyIHI9Xyh0KSxuPShyK18oZSkpLzI7aWYocChuKTxvKXJldHVybiBmdW5jdGlvbih0KXt2YXIgZT1nKHQpO2Z1bmN0aW9uIHIodCxyKXtyZXR1cm5bdCplLF8ocikvZV19cmV0dXJuIHIuaW52ZXJ0PWZ1bmN0aW9uKHQscil7cmV0dXJuW3QvZSxNKHIqZSldfSxyfSh0KTt2YXIgaT0xK3IqKDIqbi1yKSxhPVQoaSkvbjtmdW5jdGlvbiBsKHQsZSl7dmFyIHI9VChpLTIqbipfKGUpKS9uO3JldHVybltyKl8odCo9biksYS1yKmcodCldfXJldHVybiBsLmludmVydD1mdW5jdGlvbih0LGUpe3ZhciByPWEtZSxvPW0odCxwKHIpKSp3KHIpO3JldHVybiByKm48MCYmKG8tPXMqdyh0KSp3KHIpKSxbby9uLE0oKGktKHQqdCtyKnIpKm4qbikvKDIqbikpXX0sbH1mdW5jdGlvbiBybigpe3JldHVybiB0bihlbikuc2NhbGUoMTU1LjQyNCkuY2VudGVyKFswLDMzLjY0NDJdKX1mdW5jdGlvbiBubigpe3JldHVybiBybigpLnBhcmFsbGVscyhbMjkuNSw0NS41XSkuc2NhbGUoMTA3MCkudHJhbnNsYXRlKFs0ODAsMjUwXSkucm90YXRlKFs5NiwwXSkuY2VudGVyKFstLjYsMzguN10pfWZ1bmN0aW9uIGFuKHQpe3JldHVybiBmdW5jdGlvbihlLHIpe3ZhciBuPWcoZSksaT1nKHIpLGE9dChuKmkpO3JldHVyblthKmkqXyhlKSxhKl8ocildfX1mdW5jdGlvbiBvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxyKXt2YXIgbj1UKGUqZStyKnIpLGk9dChuKSxhPV8oaSksbz1nKGkpO3JldHVyblttKGUqYSxuKm8pLE0obiYmciphL24pXX19dmFyIHNuPWFuKChmdW5jdGlvbih0KXtyZXR1cm4gVCgyLygxK3QpKX0pKTtzbi5pbnZlcnQ9b24oKGZ1bmN0aW9uKHQpe3JldHVybiAyKk0odC8yKX0pKTt2YXIgbG49YW4oKGZ1bmN0aW9uKHQpe3JldHVybih0PUEodCkpJiZ0L18odCl9KSk7ZnVuY3Rpb24gY24odCxlKXtyZXR1cm5bdCx4KGsoKGwrZSkvMikpXX1mdW5jdGlvbiB1bih0KXt2YXIgZSxyLG4saT1Rcih0KSxhPWkuY2VudGVyLG89aS5zY2FsZSxsPWkudHJhbnNsYXRlLGM9aS5jbGlwRXh0ZW50LHU9bnVsbDtmdW5jdGlvbiBmKCl7dmFyIGE9cypvKCksbD1pKHJlKGkucm90YXRlKCkpLmludmVydChbMCwwXSkpO3JldHVybiBjKG51bGw9PXU/W1tsWzBdLWEsbFsxXS1hXSxbbFswXSthLGxbMV0rYV1dOnQ9PT1jbj9bW01hdGgubWF4KGxbMF0tYSx1KSxlXSxbTWF0aC5taW4obFswXSthLHIpLG5dXTpbW3UsTWF0aC5tYXgobFsxXS1hLGUpXSxbcixNYXRoLm1pbihsWzFdK2EsbildXSl9cmV0dXJuIGkuc2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG8odCksZigpKTpvKCl9LGkudHJhbnNsYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsKHQpLGYoKSk6bCgpfSxpLmNlbnRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYSh0KSxmKCkpOmEoKX0saS5jbGlwRXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhudWxsPT10P3U9ZT1yPW49bnVsbDoodT0rdFswXVswXSxlPSt0WzBdWzFdLHI9K3RbMV1bMF0sbj0rdFsxXVsxXSksZigpKTpudWxsPT11P251bGw6W1t1LGVdLFtyLG5dXX0sZigpfWZ1bmN0aW9uIGZuKHQpe3JldHVybiBrKChsK3QpLzIpfWZ1bmN0aW9uIGhuKHQsZSl7dmFyIHI9Zyh0KSxuPXQ9PT1lP18odCk6eChyL2coZSkpL3goZm4oZSkvZm4odCkpLGk9cipiKGZuKHQpLG4pL247aWYoIW4pcmV0dXJuIGNuO2Z1bmN0aW9uIGEodCxlKXtpPjA/ZTwtbCtvJiYoZT0tbCtvKTplPmwtbyYmKGU9bC1vKTt2YXIgcj1pL2IoZm4oZSksbik7cmV0dXJuW3IqXyhuKnQpLGktcipnKG4qdCldfXJldHVybiBhLmludmVydD1mdW5jdGlvbih0LGUpe3ZhciByPWktZSxhPXcobikqVCh0KnQrcipyKSxvPW0odCxwKHIpKSp3KHIpO3JldHVybiByKm48MCYmKG8tPXMqdyh0KSp3KHIpKSxbby9uLDIqZChiKGkvYSwxL24pKS1sXX0sYX1mdW5jdGlvbiBwbih0LGUpe3JldHVyblt0LGVdfWZ1bmN0aW9uIGRuKHQsZSl7dmFyIHI9Zyh0KSxuPXQ9PT1lP18odCk6KHItZyhlKSkvKGUtdCksaT1yL24rdDtpZihwKG4pPG8pcmV0dXJuIHBuO2Z1bmN0aW9uIGEodCxlKXt2YXIgcj1pLWUsYT1uKnQ7cmV0dXJuW3IqXyhhKSxpLXIqZyhhKV19cmV0dXJuIGEuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9aS1lLGE9bSh0LHAocikpKncocik7cmV0dXJuIHIqbjwwJiYoYS09cyp3KHQpKncocikpLFthL24saS13KG4pKlQodCp0K3IqcildfSxhfWxuLmludmVydD1vbigoZnVuY3Rpb24odCl7cmV0dXJuIHR9KSksY24uaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuW3QsMipkKHkoZSkpLWxdfSxwbi5pbnZlcnQ9cG47dmFyIG1uPTEuMzQwMjY0LGduPS0uMDgxMTA2LHZuPTg5M2UtNix5bj0uMDAzNzk2LHhuPVQoMykvMjtmdW5jdGlvbiBibih0LGUpe3ZhciByPU0oeG4qXyhlKSksbj1yKnIsaT1uKm4qbjtyZXR1cm5bdCpnKHIpLyh4bioobW4rMypnbipuK2kqKDcqdm4rOSp5bipuKSkpLHIqKG1uK2duKm4raSoodm4reW4qbikpXX1mdW5jdGlvbiBfbih0LGUpe3ZhciByPWcoZSksbj1nKHQpKnI7cmV0dXJuW3IqXyh0KS9uLF8oZSkvbl19ZnVuY3Rpb24gd24odCxlKXt2YXIgcj1lKmUsbj1yKnI7cmV0dXJuW3QqKC44NzA3LS4xMzE5NzkqcituKihuKiguMDAzOTcxKnItLjAwMTUyOSpuKS0uMDEzNzkxKSksZSooMS4wMDcyMjYrciooLjAxNTA4NStuKiguMDI4ODc0KnItLjA0NDQ3NS0uMDA1OTE2Km4pKSldfWZ1bmN0aW9uIFRuKHQsZSl7cmV0dXJuW2coZSkqXyh0KSxfKGUpXX1mdW5jdGlvbiBrbih0LGUpe3ZhciByPWcoZSksbj0xK2codCkqcjtyZXR1cm5bcipfKHQpL24sXyhlKS9uXX1mdW5jdGlvbiBBbih0LGUpe3JldHVyblt4KGsoKGwrZSkvMikpLC10XX1ibi5pbnZlcnQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHIsbj1lLGk9bipuLGE9aSppKmksbz0wO288MTImJihhPShpPShuLT1yPShuKihtbitnbippK2EqKHZuK3luKmkpKS1lKS8obW4rMypnbippK2EqKDcqdm4rOSp5bippKSkpKm4pKmkqaSwhKHAocik8MWUtMTIpKTsrK28pO3JldHVyblt4bip0KihtbiszKmduKmkrYSooNyp2bis5KnluKmkpKS9nKG4pLE0oXyhuKS94bildfSxfbi5pbnZlcnQ9b24oZCksd24uaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIHIsbj1lLGk9MjU7ZG97dmFyIGE9bipuLHM9YSphO24tPXI9KG4qKDEuMDA3MjI2K2EqKC4wMTUwODUrcyooLjAyODg3NCphLS4wNDQ0NzUtLjAwNTkxNipzKSkpLWUpLygxLjAwNzIyNithKiguMDQ1MjU1K3MqKC4yNTk4NjYqYS0uMzExMzI1LS4wMDU5MTYqMTEqcykpKX13aGlsZShwKHIpPm8mJi0taT4wKTtyZXR1cm5bdC8oLjg3MDcrKGE9bipuKSooYSooYSphKmEqKC4wMDM5NzEtLjAwMTUyOSphKS0uMDEzNzkxKS0uMTMxOTc5KSksbl19LFRuLmludmVydD1vbihNKSxrbi5pbnZlcnQ9b24oKGZ1bmN0aW9uKHQpe3JldHVybiAyKmQodCl9KSksQW4uaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuWy1lLDIqZCh5KHQpKS1sXX0sdC5nZW9BbGJlcnM9bm4sdC5nZW9BbGJlcnNVc2E9ZnVuY3Rpb24oKXt2YXIgdCxlLHIsbixpLGEscz1ubigpLGw9cm4oKS5yb3RhdGUoWzE1NCwwXSkuY2VudGVyKFstMiw1OC41XSkucGFyYWxsZWxzKFs1NSw2NV0pLGM9cm4oKS5yb3RhdGUoWzE1NywwXSkuY2VudGVyKFstMywxOS45XSkucGFyYWxsZWxzKFs4LDE4XSksdT17cG9pbnQ6ZnVuY3Rpb24odCxlKXthPVt0LGVdfX07ZnVuY3Rpb24gZih0KXt2YXIgZT10WzBdLG89dFsxXTtyZXR1cm4gYT1udWxsLHIucG9pbnQoZSxvKSxhfHwobi5wb2ludChlLG8pLGEpfHwoaS5wb2ludChlLG8pLGEpfWZ1bmN0aW9uIGgoKXtyZXR1cm4gdD1lPW51bGwsZn1yZXR1cm4gZi5pbnZlcnQ9ZnVuY3Rpb24odCl7dmFyIGU9cy5zY2FsZSgpLHI9cy50cmFuc2xhdGUoKSxuPSh0WzBdLXJbMF0pL2UsaT0odFsxXS1yWzFdKS9lO3JldHVybihpPj0uMTImJmk8LjIzNCYmbj49LS40MjUmJm48LS4yMTQ/bDppPj0uMTY2JiZpPC4yMzQmJm4+PS0uMjE0JiZuPC0uMTE1P2M6cykuaW52ZXJ0KHQpfSxmLnN0cmVhbT1mdW5jdGlvbihyKXtyZXR1cm4gdCYmZT09PXI/dDoobj1bcy5zdHJlYW0oZT1yKSxsLnN0cmVhbShyKSxjLnN0cmVhbShyKV0saT1uLmxlbmd0aCx0PXtwb2ludDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0tMTsrK3I8aTspbltyXS5wb2ludCh0LGUpfSxzcGhlcmU6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9LTE7Kyt0PGk7KW5bdF0uc3BoZXJlKCl9LGxpbmVTdGFydDpmdW5jdGlvbigpe2Zvcih2YXIgdD0tMTsrK3Q8aTspblt0XS5saW5lU3RhcnQoKX0sbGluZUVuZDpmdW5jdGlvbigpe2Zvcih2YXIgdD0tMTsrK3Q8aTspblt0XS5saW5lRW5kKCl9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe2Zvcih2YXIgdD0tMTsrK3Q8aTspblt0XS5wb2x5Z29uU3RhcnQoKX0scG9seWdvbkVuZDpmdW5jdGlvbigpe2Zvcih2YXIgdD0tMTsrK3Q8aTspblt0XS5wb2x5Z29uRW5kKCl9fSk7dmFyIG4saX0sZi5wcmVjaXNpb249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHMucHJlY2lzaW9uKHQpLGwucHJlY2lzaW9uKHQpLGMucHJlY2lzaW9uKHQpLGgoKSk6cy5wcmVjaXNpb24oKX0sZi5zY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocy5zY2FsZSh0KSxsLnNjYWxlKC4zNSp0KSxjLnNjYWxlKHQpLGYudHJhbnNsYXRlKHMudHJhbnNsYXRlKCkpKTpzLnNjYWxlKCl9LGYudHJhbnNsYXRlPWZ1bmN0aW9uKHQpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiBzLnRyYW5zbGF0ZSgpO3ZhciBlPXMuc2NhbGUoKSxhPSt0WzBdLGY9K3RbMV07cmV0dXJuIHI9cy50cmFuc2xhdGUodCkuY2xpcEV4dGVudChbW2EtLjQ1NSplLGYtLjIzOCplXSxbYSsuNDU1KmUsZisuMjM4KmVdXSkuc3RyZWFtKHUpLG49bC50cmFuc2xhdGUoW2EtLjMwNyplLGYrLjIwMSplXSkuY2xpcEV4dGVudChbW2EtLjQyNSplK28sZisuMTIqZStvXSxbYS0uMjE0KmUtbyxmKy4yMzQqZS1vXV0pLnN0cmVhbSh1KSxpPWMudHJhbnNsYXRlKFthLS4yMDUqZSxmKy4yMTIqZV0pLmNsaXBFeHRlbnQoW1thLS4yMTQqZStvLGYrLjE2NiplK29dLFthLS4xMTUqZS1vLGYrLjIzNCplLW9dXSkuc3RyZWFtKHUpLGgoKX0sZi5maXRFeHRlbnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gSHIoZix0LGUpfSxmLmZpdFNpemU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gcXIoZix0LGUpfSxmLmZpdFdpZHRoPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIEdyKGYsdCxlKX0sZi5maXRIZWlnaHQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gWXIoZix0LGUpfSxmLnNjYWxlKDEwNzApfSx0Lmdlb0FyZWE9ZnVuY3Rpb24odCl7cmV0dXJuIFUucmVzZXQoKSx6KHQsViksMipVfSx0Lmdlb0F6aW11dGhhbEVxdWFsQXJlYT1mdW5jdGlvbigpe3JldHVybiBRcihzbikuc2NhbGUoMTI0Ljc1KS5jbGlwQW5nbGUoMTc5Ljk5OSl9LHQuZ2VvQXppbXV0aGFsRXF1YWxBcmVhUmF3PXNuLHQuZ2VvQXppbXV0aGFsRXF1aWRpc3RhbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gUXIobG4pLnNjYWxlKDc5LjQxODgpLmNsaXBBbmdsZSgxNzkuOTk5KX0sdC5nZW9BemltdXRoYWxFcXVpZGlzdGFudFJhdz1sbix0Lmdlb0JvdW5kcz1mdW5jdGlvbih0KXt2YXIgZSxyLG4saSxhLG8scztpZihudD1ydD0tKHR0PWV0PTEvMCksbHQ9W10seih0LFN0KSxyPWx0Lmxlbmd0aCl7Zm9yKGx0LnNvcnQoUnQpLGU9MSxhPVtuPWx0WzBdXTtlPHI7KytlKUZ0KG4sKGk9bHRbZV0pWzBdKXx8RnQobixpWzFdKT8oRHQoblswXSxpWzFdKT5EdChuWzBdLG5bMV0pJiYoblsxXT1pWzFdKSxEdChpWzBdLG5bMV0pPkR0KG5bMF0sblsxXSkmJihuWzBdPWlbMF0pKTphLnB1c2gobj1pKTtmb3Iobz0tMS8wLGU9MCxuPWFbcj1hLmxlbmd0aC0xXTtlPD1yO249aSwrK2UpaT1hW2VdLChzPUR0KG5bMV0saVswXSkpPm8mJihvPXMsdHQ9aVswXSxydD1uWzFdKX1yZXR1cm4gbHQ9Y3Q9bnVsbCx0dD09PTEvMHx8ZXQ9PT0xLzA/W1tOYU4sTmFOXSxbTmFOLE5hTl1dOltbdHQsZXRdLFtydCxudF1dfSx0Lmdlb0NlbnRyb2lkPWZ1bmN0aW9uKHQpe3V0PWZ0PWh0PXB0PWR0PW10PWd0PXZ0PXl0PXh0PWJ0PTAseih0LEJ0KTt2YXIgZT15dCxyPXh0LG49YnQsaT1lKmUrcipyK24qbjtyZXR1cm4gaTwxZS0xMiYmKGU9bXQscj1ndCxuPXZ0LGZ0PG8mJihlPWh0LHI9cHQsbj1kdCksKGk9ZSplK3IqcituKm4pPDFlLTEyKT9bTmFOLE5hTl06W20ocixlKSpmLE0obi9UKGkpKSpmXX0sdC5nZW9DaXJjbGU9ZnVuY3Rpb24oKXt2YXIgdCxlLHI9WnQoWzAsMF0pLG49WnQoOTApLGk9WnQoNiksYT17cG9pbnQ6ZnVuY3Rpb24ocixuKXt0LnB1c2gocj1lKHIsbikpLHJbMF0qPWYsclsxXSo9Zn19O2Z1bmN0aW9uIG8oKXt2YXIgbz1yLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxzPW4uYXBwbHkodGhpcyxhcmd1bWVudHMpKmgsbD1pLmFwcGx5KHRoaXMsYXJndW1lbnRzKSpoO3JldHVybiB0PVtdLGU9UXQoLW9bMF0qaCwtb1sxXSpoLDApLmludmVydCxuZShhLHMsbCwxKSxvPXt0eXBlOiJQb2x5Z29uIixjb29yZGluYXRlczpbdF19LHQ9ZT1udWxsLG99cmV0dXJuIG8uY2VudGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6WnQoWyt0WzBdLCt0WzFdXSksbyk6cn0sby5yYWRpdXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpadCgrdCksbyk6bn0sby5wcmVjaXNpb249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpadCgrdCksbyk6aX0sb30sdC5nZW9DbGlwQW50aW1lcmlkaWFuPWdlLHQuZ2VvQ2xpcENpcmNsZT12ZSx0Lmdlb0NsaXBFeHRlbnQ9ZnVuY3Rpb24oKXt2YXIgdCxlLHIsbj0wLGk9MCxhPTk2MCxvPTUwMDtyZXR1cm4gcj17c3RyZWFtOmZ1bmN0aW9uKHIpe3JldHVybiB0JiZlPT09cj90OnQ9eWUobixpLGEsbykoZT1yKX0sZXh0ZW50OmZ1bmN0aW9uKHMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPStzWzBdWzBdLGk9K3NbMF1bMV0sYT0rc1sxXVswXSxvPStzWzFdWzFdLHQ9ZT1udWxsLHIpOltbbixpXSxbYSxvXV19fX0sdC5nZW9DbGlwUmVjdGFuZ2xlPXllLHQuZ2VvQ29uaWNDb25mb3JtYWw9ZnVuY3Rpb24oKXtyZXR1cm4gdG4oaG4pLnNjYWxlKDEwOS41KS5wYXJhbGxlbHMoWzMwLDMwXSl9LHQuZ2VvQ29uaWNDb25mb3JtYWxSYXc9aG4sdC5nZW9Db25pY0VxdWFsQXJlYT1ybix0Lmdlb0NvbmljRXF1YWxBcmVhUmF3PWVuLHQuZ2VvQ29uaWNFcXVpZGlzdGFudD1mdW5jdGlvbigpe3JldHVybiB0bihkbikuc2NhbGUoMTMxLjE1NCkuY2VudGVyKFswLDEzLjkzODldKX0sdC5nZW9Db25pY0VxdWlkaXN0YW50UmF3PWRuLHQuZ2VvQ29udGFpbnM9ZnVuY3Rpb24odCxlKXtyZXR1cm4odCYmUGUuaGFzT3duUHJvcGVydHkodC50eXBlKT9QZVt0LnR5cGVdOk9lKSh0LGUpfSx0Lmdlb0Rpc3RhbmNlPUNlLHQuZ2VvRXF1YWxFYXJ0aD1mdW5jdGlvbigpe3JldHVybiBRcihibikuc2NhbGUoMTc3LjE1OCl9LHQuZ2VvRXF1YWxFYXJ0aFJhdz1ibix0Lmdlb0VxdWlyZWN0YW5ndWxhcj1mdW5jdGlvbigpe3JldHVybiBRcihwbikuc2NhbGUoMTUyLjYzKX0sdC5nZW9FcXVpcmVjdGFuZ3VsYXJSYXc9cG4sdC5nZW9Hbm9tb25pYz1mdW5jdGlvbigpe3JldHVybiBRcihfbikuc2NhbGUoMTQ0LjA0OSkuY2xpcEFuZ2xlKDYwKX0sdC5nZW9Hbm9tb25pY1Jhdz1fbix0Lmdlb0dyYXRpY3VsZT1VZSx0Lmdlb0dyYXRpY3VsZTEwPWZ1bmN0aW9uKCl7cmV0dXJuIFVlKCkoKX0sdC5nZW9JZGVudGl0eT1mdW5jdGlvbigpe3ZhciB0LGUscixuLGksYSxvLHM9MSxsPTAsYz0wLHU9MSxwPTEsZD0wLG09bnVsbCx2PTEseT0xLHg9anIoe3BvaW50OmZ1bmN0aW9uKHQsZSl7dmFyIHI9VChbdCxlXSk7dGhpcy5zdHJlYW0ucG9pbnQoclswXSxyWzFdKX19KSxiPVZlO2Z1bmN0aW9uIHcoKXtyZXR1cm4gdj1zKnUseT1zKnAsYT1vPW51bGwsVH1mdW5jdGlvbiBUKHIpe3ZhciBuPXJbMF0qdixpPXJbMV0qeTtpZihkKXt2YXIgYT1pKnQtbiplO249bip0K2kqZSxpPWF9cmV0dXJuW24rbCxpK2NdfXJldHVybiBULmludmVydD1mdW5jdGlvbihyKXt2YXIgbj1yWzBdLWwsaT1yWzFdLWM7aWYoZCl7dmFyIGE9aSp0K24qZTtuPW4qdC1pKmUsaT1hfXJldHVybltuL3YsaS95XX0sVC5zdHJlYW09ZnVuY3Rpb24odCl7cmV0dXJuIGEmJm89PT10P2E6YT14KGIobz10KSl9LFQucG9zdGNsaXA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGI9dCxtPXI9bj1pPW51bGwsdygpKTpifSxULmNsaXBFeHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGI9bnVsbD09dD8obT1yPW49aT1udWxsLFZlKTp5ZShtPSt0WzBdWzBdLHI9K3RbMF1bMV0sbj0rdFsxXVswXSxpPSt0WzFdWzFdKSx3KCkpOm51bGw9PW0/bnVsbDpbW20scl0sW24saV1dfSxULnNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPSt0LHcoKSk6c30sVC50cmFuc2xhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGw9K3RbMF0sYz0rdFsxXSx3KCkpOltsLGNdfSxULmFuZ2xlPWZ1bmN0aW9uKHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPV8oZD1yJTM2MCpoKSx0PWcoZCksdygpKTpkKmZ9LFQucmVmbGVjdFg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9dD8tMToxLHcoKSk6dTwwfSxULnJlZmxlY3RZPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhwPXQ/LTE6MSx3KCkpOnA8MH0sVC5maXRFeHRlbnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gSHIoVCx0LGUpfSxULmZpdFNpemU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gcXIoVCx0LGUpfSxULmZpdFdpZHRoPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIEdyKFQsdCxlKX0sVC5maXRIZWlnaHQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gWXIoVCx0LGUpfSxUfSx0Lmdlb0ludGVycG9sYXRlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dFswXSpoLG49dFsxXSpoLGk9ZVswXSpoLGE9ZVsxXSpoLG89ZyhuKSxzPV8obiksbD1nKGEpLGM9XyhhKSx1PW8qZyhyKSxwPW8qXyhyKSxkPWwqZyhpKSx2PWwqXyhpKSx5PTIqTShUKFMoYS1uKStvKmwqUyhpLXIpKSkseD1fKHkpLGI9eT9mdW5jdGlvbih0KXt2YXIgZT1fKHQqPXkpL3gscj1fKHktdCkveCxuPXIqdStlKmQsaT1yKnArZSp2LGE9cipzK2UqYztyZXR1cm5bbShpLG4pKmYsbShhLFQobipuK2kqaSkpKmZdfTpmdW5jdGlvbigpe3JldHVybltyKmYsbipmXX07cmV0dXJuIGIuZGlzdGFuY2U9eSxifSx0Lmdlb0xlbmd0aD1TZSx0Lmdlb01lcmNhdG9yPWZ1bmN0aW9uKCl7cmV0dXJuIHVuKGNuKS5zY2FsZSg5NjEvdSl9LHQuZ2VvTWVyY2F0b3JSYXc9Y24sdC5nZW9OYXR1cmFsRWFydGgxPWZ1bmN0aW9uKCl7cmV0dXJuIFFyKHduKS5zY2FsZSgxNzUuMjk1KX0sdC5nZW9OYXR1cmFsRWFydGgxUmF3PXduLHQuZ2VvT3J0aG9ncmFwaGljPWZ1bmN0aW9uKCl7cmV0dXJuIFFyKFRuKS5zY2FsZSgyNDkuNSkuY2xpcEFuZ2xlKDkwK28pfSx0Lmdlb09ydGhvZ3JhcGhpY1Jhdz1Ubix0Lmdlb1BhdGg9ZnVuY3Rpb24odCxlKXt2YXIgcixuLGk9NC41O2Z1bmN0aW9uIGEodCl7cmV0dXJuIHQmJigiZnVuY3Rpb24iPT10eXBlb2YgaSYmbi5wb2ludFJhZGl1cygraS5hcHBseSh0aGlzLGFyZ3VtZW50cykpLHoodCxyKG4pKSksbi5yZXN1bHQoKX1yZXR1cm4gYS5hcmVhPWZ1bmN0aW9uKHQpe3JldHVybiB6KHQscihaZSkpLFplLnJlc3VsdCgpfSxhLm1lYXN1cmU9ZnVuY3Rpb24odCl7cmV0dXJuIHoodCxyKERyKSksRHIucmVzdWx0KCl9LGEuYm91bmRzPWZ1bmN0aW9uKHQpe3JldHVybiB6KHQscihpcikpLGlyLnJlc3VsdCgpfSxhLmNlbnRyb2lkPWZ1bmN0aW9uKHQpe3JldHVybiB6KHQscih5cikpLHlyLnJlc3VsdCgpfSxhLnByb2plY3Rpb249ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9bnVsbD09ZT8odD1udWxsLFZlKToodD1lKS5zdHJlYW0sYSk6dH0sYS5jb250ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPW51bGw9PXQ/KGU9bnVsbCxuZXcgQnIpOm5ldyBFcihlPXQpLCJmdW5jdGlvbiIhPXR5cGVvZiBpJiZuLnBvaW50UmFkaXVzKGkpLGEpOmV9LGEucG9pbnRSYWRpdXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDoobi5wb2ludFJhZGl1cygrdCksK3QpLGEpOml9LGEucHJvamVjdGlvbih0KS5jb250ZXh0KGUpfSx0Lmdlb1Byb2plY3Rpb249UXIsdC5nZW9Qcm9qZWN0aW9uTXV0YXRvcj0kcix0Lmdlb1JvdGF0aW9uPXJlLHQuZ2VvU3RlcmVvZ3JhcGhpYz1mdW5jdGlvbigpe3JldHVybiBRcihrbikuc2NhbGUoMjUwKS5jbGlwQW5nbGUoMTQyKX0sdC5nZW9TdGVyZW9ncmFwaGljUmF3PWtuLHQuZ2VvU3RyZWFtPXosdC5nZW9UcmFuc2Zvcm09ZnVuY3Rpb24odCl7cmV0dXJue3N0cmVhbTpqcih0KX19LHQuZ2VvVHJhbnN2ZXJzZU1lcmNhdG9yPWZ1bmN0aW9uKCl7dmFyIHQ9dW4oQW4pLGU9dC5jZW50ZXIscj10LnJvdGF0ZTtyZXR1cm4gdC5jZW50ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/ZShbLXRbMV0sdFswXV0pOlsodD1lKCkpWzFdLC10WzBdXX0sdC5yb3RhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/cihbdFswXSx0WzFdLHQubGVuZ3RoPjI/dFsyXSs5MDo5MF0pOlsodD1yKCkpWzBdLHRbMV0sdFsyXS05MF19LHIoWzAsMCw5MF0pLnNjYWxlKDE1OS4xNTUpfSx0Lmdlb1RyYW5zdmVyc2VNZXJjYXRvclJhdz1BbixPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KSl9LHsiZDMtYXJyYXkiOjEwN31dLDExNTpbZnVuY3Rpb24odCxlLHIpeyFmdW5jdGlvbih0LG4peyJvYmplY3QiPT10eXBlb2YgciYmdm9pZCAwIT09ZT9uKHIpOm4oKHQ9dHx8c2VsZikuZDM9dC5kM3x8e30pfSh0aGlzLChmdW5jdGlvbih0KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZSh0LGUpe3JldHVybiB0LnBhcmVudD09PWUucGFyZW50PzE6Mn1mdW5jdGlvbiByKHQsZSl7cmV0dXJuIHQrZS54fWZ1bmN0aW9uIG4odCxlKXtyZXR1cm4gTWF0aC5tYXgodCxlLnkpfWZ1bmN0aW9uIGkodCl7dmFyIGU9MCxyPXQuY2hpbGRyZW4sbj1yJiZyLmxlbmd0aDtpZihuKWZvcig7LS1uPj0wOyllKz1yW25dLnZhbHVlO2Vsc2UgZT0xO3QudmFsdWU9ZX1mdW5jdGlvbiBhKHQsZSl7dmFyIHIsbixpLGEscyx1PW5ldyBjKHQpLGY9K3QudmFsdWUmJih1LnZhbHVlPXQudmFsdWUpLGg9W3VdO2ZvcihudWxsPT1lJiYoZT1vKTtyPWgucG9wKCk7KWlmKGYmJihyLnZhbHVlPStyLmRhdGEudmFsdWUpLChpPWUoci5kYXRhKSkmJihzPWkubGVuZ3RoKSlmb3Ioci5jaGlsZHJlbj1uZXcgQXJyYXkocyksYT1zLTE7YT49MDstLWEpaC5wdXNoKG49ci5jaGlsZHJlblthXT1uZXcgYyhpW2FdKSksbi5wYXJlbnQ9cixuLmRlcHRoPXIuZGVwdGgrMTtyZXR1cm4gdS5lYWNoQmVmb3JlKGwpfWZ1bmN0aW9uIG8odCl7cmV0dXJuIHQuY2hpbGRyZW59ZnVuY3Rpb24gcyh0KXt0LmRhdGE9dC5kYXRhLmRhdGF9ZnVuY3Rpb24gbCh0KXt2YXIgZT0wO2Rve3QuaGVpZ2h0PWV9d2hpbGUoKHQ9dC5wYXJlbnQpJiZ0LmhlaWdodDwrK2UpfWZ1bmN0aW9uIGModCl7dGhpcy5kYXRhPXQsdGhpcy5kZXB0aD10aGlzLmhlaWdodD0wLHRoaXMucGFyZW50PW51bGx9Yy5wcm90b3R5cGU9YS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmMsY291bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoQWZ0ZXIoaSl9LGVhY2g6ZnVuY3Rpb24odCl7dmFyIGUscixuLGksYT10aGlzLG89W2FdO2Rve2ZvcihlPW8ucmV2ZXJzZSgpLG89W107YT1lLnBvcCgpOylpZih0KGEpLHI9YS5jaGlsZHJlbilmb3Iobj0wLGk9ci5sZW5ndGg7bjxpOysrbilvLnB1c2gocltuXSl9d2hpbGUoby5sZW5ndGgpO3JldHVybiB0aGlzfSxlYWNoQWZ0ZXI6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLHIsbixpPXRoaXMsYT1baV0sbz1bXTtpPWEucG9wKCk7KWlmKG8ucHVzaChpKSxlPWkuY2hpbGRyZW4pZm9yKHI9MCxuPWUubGVuZ3RoO3I8bjsrK3IpYS5wdXNoKGVbcl0pO2Zvcig7aT1vLnBvcCgpOyl0KGkpO3JldHVybiB0aGlzfSxlYWNoQmVmb3JlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyLG49dGhpcyxpPVtuXTtuPWkucG9wKCk7KWlmKHQobiksZT1uLmNoaWxkcmVuKWZvcihyPWUubGVuZ3RoLTE7cj49MDstLXIpaS5wdXNoKGVbcl0pO3JldHVybiB0aGlzfSxzdW06ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZWFjaEFmdGVyKChmdW5jdGlvbihlKXtmb3IodmFyIHI9K3QoZS5kYXRhKXx8MCxuPWUuY2hpbGRyZW4saT1uJiZuLmxlbmd0aDstLWk+PTA7KXIrPW5baV0udmFsdWU7ZS52YWx1ZT1yfSkpfSxzb3J0OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmVhY2hCZWZvcmUoKGZ1bmN0aW9uKGUpe2UuY2hpbGRyZW4mJmUuY2hpbGRyZW4uc29ydCh0KX0pKX0scGF0aDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcyxyPWZ1bmN0aW9uKHQsZSl7aWYodD09PWUpcmV0dXJuIHQ7dmFyIHI9dC5hbmNlc3RvcnMoKSxuPWUuYW5jZXN0b3JzKCksaT1udWxsO3Q9ci5wb3AoKSxlPW4ucG9wKCk7Zm9yKDt0PT09ZTspaT10LHQ9ci5wb3AoKSxlPW4ucG9wKCk7cmV0dXJuIGl9KGUsdCksbj1bZV07ZSE9PXI7KWU9ZS5wYXJlbnQsbi5wdXNoKGUpO2Zvcih2YXIgaT1uLmxlbmd0aDt0IT09cjspbi5zcGxpY2UoaSwwLHQpLHQ9dC5wYXJlbnQ7cmV0dXJuIG59LGFuY2VzdG9yczpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLGU9W3RdO3Q9dC5wYXJlbnQ7KWUucHVzaCh0KTtyZXR1cm4gZX0sZGVzY2VuZGFudHM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbihlKXt0LnB1c2goZSl9KSksdH0sbGVhdmVzOmZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHRoaXMuZWFjaEJlZm9yZSgoZnVuY3Rpb24oZSl7ZS5jaGlsZHJlbnx8dC5wdXNoKGUpfSkpLHR9LGxpbmtzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPVtdO3JldHVybiB0LmVhY2goKGZ1bmN0aW9uKHIpe3IhPT10JiZlLnB1c2goe3NvdXJjZTpyLnBhcmVudCx0YXJnZXQ6cn0pfSkpLGV9LGNvcHk6ZnVuY3Rpb24oKXtyZXR1cm4gYSh0aGlzKS5lYWNoQmVmb3JlKHMpfX07dmFyIHU9QXJyYXkucHJvdG90eXBlLnNsaWNlO2Z1bmN0aW9uIGYodCl7Zm9yKHZhciBlLHIsbj0wLGk9KHQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlLHIsbj10Lmxlbmd0aDtuOylyPU1hdGgucmFuZG9tKCkqbi0tfDAsZT10W25dLHRbbl09dFtyXSx0W3JdPWU7cmV0dXJuIHR9KHUuY2FsbCh0KSkpLmxlbmd0aCxhPVtdO248aTspZT10W25dLHImJmQocixlKT8rK246KHI9ZyhhPWgoYSxlKSksbj0wKTtyZXR1cm4gcn1mdW5jdGlvbiBoKHQsZSl7dmFyIHIsbjtpZihtKGUsdCkpcmV0dXJuW2VdO2ZvcihyPTA7cjx0Lmxlbmd0aDsrK3IpaWYocChlLHRbcl0pJiZtKHYodFtyXSxlKSx0KSlyZXR1cm5bdFtyXSxlXTtmb3Iocj0wO3I8dC5sZW5ndGgtMTsrK3IpZm9yKG49cisxO248dC5sZW5ndGg7KytuKWlmKHAodih0W3JdLHRbbl0pLGUpJiZwKHYodFtyXSxlKSx0W25dKSYmcCh2KHRbbl0sZSksdFtyXSkmJm0oeSh0W3JdLHRbbl0sZSksdCkpcmV0dXJuW3Rbcl0sdFtuXSxlXTt0aHJvdyBuZXcgRXJyb3J9ZnVuY3Rpb24gcCh0LGUpe3ZhciByPXQuci1lLnIsbj1lLngtdC54LGk9ZS55LXQueTtyZXR1cm4gcjwwfHxyKnI8bipuK2kqaX1mdW5jdGlvbiBkKHQsZSl7dmFyIHI9dC5yLWUucisxZS02LG49ZS54LXQueCxpPWUueS10Lnk7cmV0dXJuIHI+MCYmcipyPm4qbitpKml9ZnVuY3Rpb24gbSh0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7KytyKWlmKCFkKHQsZVtyXSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gZyh0KXtzd2l0Y2godC5sZW5ndGgpe2Nhc2UgMTpyZXR1cm57eDooZT10WzBdKS54LHk6ZS55LHI6ZS5yfTtjYXNlIDI6cmV0dXJuIHYodFswXSx0WzFdKTtjYXNlIDM6cmV0dXJuIHkodFswXSx0WzFdLHRbMl0pfXZhciBlfWZ1bmN0aW9uIHYodCxlKXt2YXIgcj10Lngsbj10LnksaT10LnIsYT1lLngsbz1lLnkscz1lLnIsbD1hLXIsYz1vLW4sdT1zLWksZj1NYXRoLnNxcnQobCpsK2MqYyk7cmV0dXJue3g6KHIrYStsL2YqdSkvMix5OihuK28rYy9mKnUpLzIscjooZitpK3MpLzJ9fWZ1bmN0aW9uIHkodCxlLHIpe3ZhciBuPXQueCxpPXQueSxhPXQucixvPWUueCxzPWUueSxsPWUucixjPXIueCx1PXIueSxmPXIucixoPW4tbyxwPW4tYyxkPWktcyxtPWktdSxnPWwtYSx2PWYtYSx5PW4qbitpKmktYSphLHg9eS1vKm8tcypzK2wqbCxiPXktYypjLXUqdStmKmYsXz1wKmQtaCptLHc9KGQqYi1tKngpLygyKl8pLW4sVD0obSpnLWQqdikvXyxrPShwKngtaCpiKS8oMipfKS1pLEE9KGgqdi1wKmcpL18sTT1UKlQrQSpBLTEsUz0yKihhK3cqVCtrKkEpLEU9dyp3K2sqay1hKmEsTD0tKE0/KFMrTWF0aC5zcXJ0KFMqUy00Kk0qRSkpLygyKk0pOkUvUyk7cmV0dXJue3g6bit3K1QqTCx5OmkraytBKkwscjpMfX1mdW5jdGlvbiB4KHQsZSxyKXt2YXIgbixpLGEsbyxzPXQueC1lLngsbD10LnktZS55LGM9cypzK2wqbDtjPyhpPWUucityLnIsaSo9aSxvPXQucityLnIsaT4obyo9byk/KG49KGMrby1pKS8oMipjKSxhPU1hdGguc3FydChNYXRoLm1heCgwLG8vYy1uKm4pKSxyLng9dC54LW4qcy1hKmwsci55PXQueS1uKmwrYSpzKToobj0oYytpLW8pLygyKmMpLGE9TWF0aC5zcXJ0KE1hdGgubWF4KDAsaS9jLW4qbikpLHIueD1lLngrbipzLWEqbCxyLnk9ZS55K24qbCthKnMpKTooci54PWUueCtyLnIsci55PWUueSl9ZnVuY3Rpb24gYih0LGUpe3ZhciByPXQucitlLnItMWUtNixuPWUueC10LngsaT1lLnktdC55O3JldHVybiByPjAmJnIqcj5uKm4raSppfWZ1bmN0aW9uIF8odCl7dmFyIGU9dC5fLHI9dC5uZXh0Ll8sbj1lLnIrci5yLGk9KGUueCpyLnIrci54KmUucikvbixhPShlLnkqci5yK3IueSplLnIpL247cmV0dXJuIGkqaSthKmF9ZnVuY3Rpb24gdyh0KXt0aGlzLl89dCx0aGlzLm5leHQ9bnVsbCx0aGlzLnByZXZpb3VzPW51bGx9ZnVuY3Rpb24gVCh0KXtpZighKGk9dC5sZW5ndGgpKXJldHVybiAwO3ZhciBlLHIsbixpLGEsbyxzLGwsYyx1LGg7aWYoKGU9dFswXSkueD0wLGUueT0wLCEoaT4xKSlyZXR1cm4gZS5yO2lmKHI9dFsxXSxlLng9LXIucixyLng9ZS5yLHIueT0wLCEoaT4yKSlyZXR1cm4gZS5yK3Iucjt4KHIsZSxuPXRbMl0pLGU9bmV3IHcoZSkscj1uZXcgdyhyKSxuPW5ldyB3KG4pLGUubmV4dD1uLnByZXZpb3VzPXIsci5uZXh0PWUucHJldmlvdXM9bixuLm5leHQ9ci5wcmV2aW91cz1lO3Q6Zm9yKHM9MztzPGk7KytzKXt4KGUuXyxyLl8sbj10W3NdKSxuPW5ldyB3KG4pLGw9ci5uZXh0LGM9ZS5wcmV2aW91cyx1PXIuXy5yLGg9ZS5fLnI7ZG97aWYodTw9aCl7aWYoYihsLl8sbi5fKSl7cj1sLGUubmV4dD1yLHIucHJldmlvdXM9ZSwtLXM7Y29udGludWUgdH11Kz1sLl8ucixsPWwubmV4dH1lbHNle2lmKGIoYy5fLG4uXykpeyhlPWMpLm5leHQ9cixyLnByZXZpb3VzPWUsLS1zO2NvbnRpbnVlIHR9aCs9Yy5fLnIsYz1jLnByZXZpb3VzfX13aGlsZShsIT09Yy5uZXh0KTtmb3Iobi5wcmV2aW91cz1lLG4ubmV4dD1yLGUubmV4dD1yLnByZXZpb3VzPXI9bixhPV8oZSk7KG49bi5uZXh0KSE9PXI7KShvPV8obikpPGEmJihlPW4sYT1vKTtyPWUubmV4dH1mb3IoZT1bci5fXSxuPXI7KG49bi5uZXh0KSE9PXI7KWUucHVzaChuLl8pO2ZvcihuPWYoZSkscz0wO3M8aTsrK3MpKGU9dFtzXSkueC09bi54LGUueS09bi55O3JldHVybiBuLnJ9ZnVuY3Rpb24gayh0KXtyZXR1cm4gbnVsbD09dD9udWxsOkEodCl9ZnVuY3Rpb24gQSh0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHR9ZnVuY3Rpb24gTSgpe3JldHVybiAwfWZ1bmN0aW9uIFModCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIEUodCl7cmV0dXJuIE1hdGguc3FydCh0LnZhbHVlKX1mdW5jdGlvbiBMKHQpe3JldHVybiBmdW5jdGlvbihlKXtlLmNoaWxkcmVufHwoZS5yPU1hdGgubWF4KDAsK3QoZSl8fDApKX19ZnVuY3Rpb24gQyh0LGUpe3JldHVybiBmdW5jdGlvbihyKXtpZihuPXIuY2hpbGRyZW4pe3ZhciBuLGksYSxvPW4ubGVuZ3RoLHM9dChyKSplfHwwO2lmKHMpZm9yKGk9MDtpPG87KytpKW5baV0ucis9cztpZihhPVQobikscylmb3IoaT0wO2k8bzsrK2kpbltpXS5yLT1zO3Iucj1hK3N9fX1mdW5jdGlvbiBQKHQpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgcj1lLnBhcmVudDtlLnIqPXQsciYmKGUueD1yLngrdCplLngsZS55PXIueSt0KmUueSl9fWZ1bmN0aW9uIEkodCl7dC54MD1NYXRoLnJvdW5kKHQueDApLHQueTA9TWF0aC5yb3VuZCh0LnkwKSx0LngxPU1hdGgucm91bmQodC54MSksdC55MT1NYXRoLnJvdW5kKHQueTEpfWZ1bmN0aW9uIE8odCxlLHIsbixpKXtmb3IodmFyIGEsbz10LmNoaWxkcmVuLHM9LTEsbD1vLmxlbmd0aCxjPXQudmFsdWUmJihuLWUpL3QudmFsdWU7KytzPGw7KShhPW9bc10pLnkwPXIsYS55MT1pLGEueDA9ZSxhLngxPWUrPWEudmFsdWUqY312YXIgej17ZGVwdGg6LTF9LEQ9e307ZnVuY3Rpb24gUih0KXtyZXR1cm4gdC5pZH1mdW5jdGlvbiBGKHQpe3JldHVybiB0LnBhcmVudElkfWZ1bmN0aW9uIEIodCxlKXtyZXR1cm4gdC5wYXJlbnQ9PT1lLnBhcmVudD8xOjJ9ZnVuY3Rpb24gTih0KXt2YXIgZT10LmNoaWxkcmVuO3JldHVybiBlP2VbMF06dC50fWZ1bmN0aW9uIGoodCl7dmFyIGU9dC5jaGlsZHJlbjtyZXR1cm4gZT9lW2UubGVuZ3RoLTFdOnQudH1mdW5jdGlvbiBVKHQsZSxyKXt2YXIgbj1yLyhlLmktdC5pKTtlLmMtPW4sZS5zKz1yLHQuYys9bixlLnorPXIsZS5tKz1yfWZ1bmN0aW9uIFYodCxlLHIpe3JldHVybiB0LmEucGFyZW50PT09ZS5wYXJlbnQ/dC5hOnJ9ZnVuY3Rpb24gSCh0LGUpe3RoaXMuXz10LHRoaXMucGFyZW50PW51bGwsdGhpcy5jaGlsZHJlbj1udWxsLHRoaXMuQT1udWxsLHRoaXMuYT10aGlzLHRoaXMuej0wLHRoaXMubT0wLHRoaXMuYz0wLHRoaXMucz0wLHRoaXMudD1udWxsLHRoaXMuaT1lfWZ1bmN0aW9uIHEodCxlLHIsbixpKXtmb3IodmFyIGEsbz10LmNoaWxkcmVuLHM9LTEsbD1vLmxlbmd0aCxjPXQudmFsdWUmJihpLXIpL3QudmFsdWU7KytzPGw7KShhPW9bc10pLngwPWUsYS54MT1uLGEueTA9cixhLnkxPXIrPWEudmFsdWUqY31ILnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGMucHJvdG90eXBlKTt2YXIgRz0oMStNYXRoLnNxcnQoNSkpLzI7ZnVuY3Rpb24gWSh0LGUscixuLGksYSl7Zm9yKHZhciBvLHMsbCxjLHUsZixoLHAsZCxtLGcsdj1bXSx5PWUuY2hpbGRyZW4seD0wLGI9MCxfPXkubGVuZ3RoLHc9ZS52YWx1ZTt4PF87KXtsPWktcixjPWEtbjtkb3t1PXlbYisrXS52YWx1ZX13aGlsZSghdSYmYjxfKTtmb3IoZj1oPXUsZz11KnUqKG09TWF0aC5tYXgoYy9sLGwvYykvKHcqdCkpLGQ9TWF0aC5tYXgoaC9nLGcvZik7YjxfOysrYil7aWYodSs9cz15W2JdLnZhbHVlLHM8ZiYmKGY9cykscz5oJiYoaD1zKSxnPXUqdSptLChwPU1hdGgubWF4KGgvZyxnL2YpKT5kKXt1LT1zO2JyZWFrfWQ9cH12LnB1c2gobz17dmFsdWU6dSxkaWNlOmw8YyxjaGlsZHJlbjp5LnNsaWNlKHgsYil9KSxvLmRpY2U/TyhvLHIsbixpLHc/bis9Yyp1L3c6YSk6cShvLHIsbix3P3IrPWwqdS93OmksYSksdy09dSx4PWJ9cmV0dXJuIHZ9dmFyIFc9ZnVuY3Rpb24gdChlKXtmdW5jdGlvbiByKHQscixuLGksYSl7WShlLHQscixuLGksYSl9cmV0dXJuIHIucmF0aW89ZnVuY3Rpb24oZSl7cmV0dXJuIHQoKGU9K2UpPjE/ZToxKX0scn0oRyk7dmFyIFg9ZnVuY3Rpb24gdChlKXtmdW5jdGlvbiByKHQscixuLGksYSl7aWYoKG89dC5fc3F1YXJpZnkpJiZvLnJhdGlvPT09ZSlmb3IodmFyIG8scyxsLGMsdSxmPS0xLGg9by5sZW5ndGgscD10LnZhbHVlOysrZjxoOyl7Zm9yKGw9KHM9b1tmXSkuY2hpbGRyZW4sYz1zLnZhbHVlPTAsdT1sLmxlbmd0aDtjPHU7KytjKXMudmFsdWUrPWxbY10udmFsdWU7cy5kaWNlP08ocyxyLG4saSxuKz0oYS1uKSpzLnZhbHVlL3ApOnEocyxyLG4scis9KGktcikqcy52YWx1ZS9wLGEpLHAtPXMudmFsdWV9ZWxzZSB0Ll9zcXVhcmlmeT1vPVkoZSx0LHIsbixpLGEpLG8ucmF0aW89ZX1yZXR1cm4gci5yYXRpbz1mdW5jdGlvbihlKXtyZXR1cm4gdCgoZT0rZSk+MT9lOjEpfSxyfShHKTt0LmNsdXN0ZXI9ZnVuY3Rpb24oKXt2YXIgdD1lLGk9MSxhPTEsbz0hMTtmdW5jdGlvbiBzKGUpe3ZhciBzLGw9MDtlLmVhY2hBZnRlcigoZnVuY3Rpb24oZSl7dmFyIGk9ZS5jaGlsZHJlbjtpPyhlLng9ZnVuY3Rpb24odCl7cmV0dXJuIHQucmVkdWNlKHIsMCkvdC5sZW5ndGh9KGkpLGUueT1mdW5jdGlvbih0KXtyZXR1cm4gMSt0LnJlZHVjZShuLDApfShpKSk6KGUueD1zP2wrPXQoZSxzKTowLGUueT0wLHM9ZSl9KSk7dmFyIGM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlO2U9dC5jaGlsZHJlbjspdD1lWzBdO3JldHVybiB0fShlKSx1PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZTtlPXQuY2hpbGRyZW47KXQ9ZVtlLmxlbmd0aC0xXTtyZXR1cm4gdH0oZSksZj1jLngtdChjLHUpLzIsaD11LngrdCh1LGMpLzI7cmV0dXJuIGUuZWFjaEFmdGVyKG8/ZnVuY3Rpb24odCl7dC54PSh0LngtZS54KSppLHQueT0oZS55LXQueSkqYX06ZnVuY3Rpb24odCl7dC54PSh0LngtZikvKGgtZikqaSx0Lnk9KDEtKGUueT90LnkvZS55OjEpKSphfSl9cmV0dXJuIHMuc2VwYXJhdGlvbj1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1lLHMpOnR9LHMuc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0hMSxpPSt0WzBdLGE9K3RbMV0scyk6bz9udWxsOltpLGFdfSxzLm5vZGVTaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPSEwLGk9K3RbMF0sYT0rdFsxXSxzKTpvP1tpLGFdOm51bGx9LHN9LHQuaGllcmFyY2h5PWEsdC5wYWNrPWZ1bmN0aW9uKCl7dmFyIHQ9bnVsbCxlPTEscj0xLG49TTtmdW5jdGlvbiBpKGkpe3JldHVybiBpLng9ZS8yLGkueT1yLzIsdD9pLmVhY2hCZWZvcmUoTCh0KSkuZWFjaEFmdGVyKEMobiwuNSkpLmVhY2hCZWZvcmUoUCgxKSk6aS5lYWNoQmVmb3JlKEwoRSkpLmVhY2hBZnRlcihDKE0sMSkpLmVhY2hBZnRlcihDKG4saS5yL01hdGgubWluKGUscikpKS5lYWNoQmVmb3JlKFAoTWF0aC5taW4oZSxyKS8oMippLnIpKSksaX1yZXR1cm4gaS5yYWRpdXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ayhlKSxpKTp0fSxpLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9K3RbMF0scj0rdFsxXSxpKTpbZSxyXX0saS5wYWRkaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6UygrdCksaSk6bn0saX0sdC5wYWNrRW5jbG9zZT1mLHQucGFja1NpYmxpbmdzPWZ1bmN0aW9uKHQpe3JldHVybiBUKHQpLHR9LHQucGFydGl0aW9uPWZ1bmN0aW9uKCl7dmFyIHQ9MSxlPTEscj0wLG49ITE7ZnVuY3Rpb24gaShpKXt2YXIgYT1pLmhlaWdodCsxO3JldHVybiBpLngwPWkueTA9cixpLngxPXQsaS55MT1lL2EsaS5lYWNoQmVmb3JlKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe24uY2hpbGRyZW4mJk8obixuLngwLHQqKG4uZGVwdGgrMSkvZSxuLngxLHQqKG4uZGVwdGgrMikvZSk7dmFyIGk9bi54MCxhPW4ueTAsbz1uLngxLXIscz1uLnkxLXI7bzxpJiYoaT1vPShpK28pLzIpLHM8YSYmKGE9cz0oYStzKS8yKSxuLngwPWksbi55MD1hLG4ueDE9byxuLnkxPXN9fShlLGEpKSxuJiZpLmVhY2hCZWZvcmUoSSksaX1yZXR1cm4gaS5yb3VuZD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0hIXQsaSk6bn0saS5zaXplPWZ1bmN0aW9uKHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PStyWzBdLGU9K3JbMV0saSk6W3QsZV19LGkucGFkZGluZz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0rdCxpKTpyfSxpfSx0LnN0cmF0aWZ5PWZ1bmN0aW9uKCl7dmFyIHQ9UixlPUY7ZnVuY3Rpb24gcihyKXt2YXIgbixpLGEsbyxzLHUsZixoPXIubGVuZ3RoLHA9bmV3IEFycmF5KGgpLGQ9e307Zm9yKGk9MDtpPGg7KytpKW49cltpXSxzPXBbaV09bmV3IGMobiksbnVsbCE9KHU9dChuLGkscikpJiYodSs9IiIpJiYoZFtmPSIkIisocy5pZD11KV09ZiBpbiBkP0Q6cyk7Zm9yKGk9MDtpPGg7KytpKWlmKHM9cFtpXSxudWxsIT0odT1lKHJbaV0saSxyKSkmJih1Kz0iIikpe2lmKCEobz1kWyIkIit1XSkpdGhyb3cgbmV3IEVycm9yKCJtaXNzaW5nOiAiK3UpO2lmKG89PT1EKXRocm93IG5ldyBFcnJvcigiYW1iaWd1b3VzOiAiK3UpO28uY2hpbGRyZW4/by5jaGlsZHJlbi5wdXNoKHMpOm8uY2hpbGRyZW49W3NdLHMucGFyZW50PW99ZWxzZXtpZihhKXRocm93IG5ldyBFcnJvcigibXVsdGlwbGUgcm9vdHMiKTthPXN9aWYoIWEpdGhyb3cgbmV3IEVycm9yKCJubyByb290Iik7aWYoYS5wYXJlbnQ9eixhLmVhY2hCZWZvcmUoKGZ1bmN0aW9uKHQpe3QuZGVwdGg9dC5wYXJlbnQuZGVwdGgrMSwtLWh9KSkuZWFjaEJlZm9yZShsKSxhLnBhcmVudD1udWxsLGg+MCl0aHJvdyBuZXcgRXJyb3IoImN5Y2xlIik7cmV0dXJuIGF9cmV0dXJuIHIuaWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9QShlKSxyKTp0fSxyLnBhcmVudElkPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPUEodCkscik6ZX0scn0sdC50cmVlPWZ1bmN0aW9uKCl7dmFyIHQ9QixlPTEscj0xLG49bnVsbDtmdW5jdGlvbiBpKGkpe3ZhciBsPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyLG4saSxhLG89bmV3IEgodCwwKSxzPVtvXTtlPXMucG9wKCk7KWlmKG49ZS5fLmNoaWxkcmVuKWZvcihlLmNoaWxkcmVuPW5ldyBBcnJheShhPW4ubGVuZ3RoKSxpPWEtMTtpPj0wOy0taSlzLnB1c2gocj1lLmNoaWxkcmVuW2ldPW5ldyBIKG5baV0saSkpLHIucGFyZW50PWU7cmV0dXJuKG8ucGFyZW50PW5ldyBIKG51bGwsMCkpLmNoaWxkcmVuPVtvXSxvfShpKTtpZihsLmVhY2hBZnRlcihhKSxsLnBhcmVudC5tPS1sLnosbC5lYWNoQmVmb3JlKG8pLG4paS5lYWNoQmVmb3JlKHMpO2Vsc2V7dmFyIGM9aSx1PWksZj1pO2kuZWFjaEJlZm9yZSgoZnVuY3Rpb24odCl7dC54PGMueCYmKGM9dCksdC54PnUueCYmKHU9dCksdC5kZXB0aD5mLmRlcHRoJiYoZj10KX0pKTt2YXIgaD1jPT09dT8xOnQoYyx1KS8yLHA9aC1jLngsZD1lLyh1LngraCtwKSxtPXIvKGYuZGVwdGh8fDEpO2kuZWFjaEJlZm9yZSgoZnVuY3Rpb24odCl7dC54PSh0LngrcCkqZCx0Lnk9dC5kZXB0aCptfSkpfXJldHVybiBpfWZ1bmN0aW9uIGEoZSl7dmFyIHI9ZS5jaGlsZHJlbixuPWUucGFyZW50LmNoaWxkcmVuLGk9ZS5pP25bZS5pLTFdOm51bGw7aWYocil7IWZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyPTAsbj0wLGk9dC5jaGlsZHJlbixhPWkubGVuZ3RoOy0tYT49MDspKGU9aVthXSkueis9cixlLm0rPXIscis9ZS5zKyhuKz1lLmMpfShlKTt2YXIgYT0oclswXS56K3Jbci5sZW5ndGgtMV0ueikvMjtpPyhlLno9aS56K3QoZS5fLGkuXyksZS5tPWUuei1hKTplLno9YX1lbHNlIGkmJihlLno9aS56K3QoZS5fLGkuXykpO2UucGFyZW50LkE9ZnVuY3Rpb24oZSxyLG4pe2lmKHIpe2Zvcih2YXIgaSxhPWUsbz1lLHM9cixsPWEucGFyZW50LmNoaWxkcmVuWzBdLGM9YS5tLHU9by5tLGY9cy5tLGg9bC5tO3M9aihzKSxhPU4oYSkscyYmYTspbD1OKGwpLChvPWoobykpLmE9ZSwoaT1zLnorZi1hLnotYyt0KHMuXyxhLl8pKT4wJiYoVShWKHMsZSxuKSxlLGkpLGMrPWksdSs9aSksZis9cy5tLGMrPWEubSxoKz1sLm0sdSs9by5tO3MmJiFqKG8pJiYoby50PXMsby5tKz1mLXUpLGEmJiFOKGwpJiYobC50PWEsbC5tKz1jLWgsbj1lKX1yZXR1cm4gbn0oZSxpLGUucGFyZW50LkF8fG5bMF0pfWZ1bmN0aW9uIG8odCl7dC5fLng9dC56K3QucGFyZW50Lm0sdC5tKz10LnBhcmVudC5tfWZ1bmN0aW9uIHModCl7dC54Kj1lLHQueT10LmRlcHRoKnJ9cmV0dXJuIGkuc2VwYXJhdGlvbj1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1lLGkpOnR9LGkuc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0hMSxlPSt0WzBdLHI9K3RbMV0saSk6bj9udWxsOltlLHJdfSxpLm5vZGVTaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSEwLGU9K3RbMF0scj0rdFsxXSxpKTpuP1tlLHJdOm51bGx9LGl9LHQudHJlZW1hcD1mdW5jdGlvbigpe3ZhciB0PVcsZT0hMSxyPTEsbj0xLGk9WzBdLGE9TSxvPU0scz1NLGw9TSxjPU07ZnVuY3Rpb24gdSh0KXtyZXR1cm4gdC54MD10LnkwPTAsdC54MT1yLHQueTE9bix0LmVhY2hCZWZvcmUoZiksaT1bMF0sZSYmdC5lYWNoQmVmb3JlKEkpLHR9ZnVuY3Rpb24gZihlKXt2YXIgcj1pW2UuZGVwdGhdLG49ZS54MCtyLHU9ZS55MCtyLGY9ZS54MS1yLGg9ZS55MS1yO2Y8biYmKG49Zj0obitmKS8yKSxoPHUmJih1PWg9KHUraCkvMiksZS54MD1uLGUueTA9dSxlLngxPWYsZS55MT1oLGUuY2hpbGRyZW4mJihyPWlbZS5kZXB0aCsxXT1hKGUpLzIsbis9YyhlKS1yLHUrPW8oZSktciwoZi09cyhlKS1yKTxuJiYobj1mPShuK2YpLzIpLChoLT1sKGUpLXIpPHUmJih1PWg9KHUraCkvMiksdChlLG4sdSxmLGgpKX1yZXR1cm4gdS5yb3VuZD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0hIXQsdSk6ZX0sdS5zaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSt0WzBdLG49K3RbMV0sdSk6W3Isbl19LHUudGlsZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1BKGUpLHUpOnR9LHUucGFkZGluZz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD91LnBhZGRpbmdJbm5lcih0KS5wYWRkaW5nT3V0ZXIodCk6dS5wYWRkaW5nSW5uZXIoKX0sdS5wYWRkaW5nSW5uZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpTKCt0KSx1KTphfSx1LnBhZGRpbmdPdXRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD91LnBhZGRpbmdUb3AodCkucGFkZGluZ1JpZ2h0KHQpLnBhZGRpbmdCb3R0b20odCkucGFkZGluZ0xlZnQodCk6dS5wYWRkaW5nVG9wKCl9LHUucGFkZGluZ1RvcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0iZnVuY3Rpb24iPT10eXBlb2YgdD90OlMoK3QpLHUpOm99LHUucGFkZGluZ1JpZ2h0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6UygrdCksdSk6c30sdS5wYWRkaW5nQm90dG9tPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6UygrdCksdSk6bH0sdS5wYWRkaW5nTGVmdD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz0iZnVuY3Rpb24iPT10eXBlb2YgdD90OlMoK3QpLHUpOmN9LHV9LHQudHJlZW1hcEJpbmFyeT1mdW5jdGlvbih0LGUscixuLGkpe3ZhciBhLG8scz10LmNoaWxkcmVuLGw9cy5sZW5ndGgsYz1uZXcgQXJyYXkobCsxKTtmb3IoY1swXT1vPWE9MDthPGw7KythKWNbYSsxXT1vKz1zW2FdLnZhbHVlOyFmdW5jdGlvbiB0KGUscixuLGksYSxvLGwpe2lmKGU+PXItMSl7dmFyIHU9c1tlXTtyZXR1cm4gdS54MD1pLHUueTA9YSx1LngxPW8sdm9pZCh1LnkxPWwpfXZhciBmPWNbZV0saD1uLzIrZixwPWUrMSxkPXItMTtmb3IoO3A8ZDspe3ZhciBtPXArZD4+PjE7Y1ttXTxoP3A9bSsxOmQ9bX1oLWNbcC0xXTxjW3BdLWgmJmUrMTxwJiYtLXA7dmFyIGc9Y1twXS1mLHY9bi1nO2lmKG8taT5sLWEpe3ZhciB5PShpKnYrbypnKS9uO3QoZSxwLGcsaSxhLHksbCksdChwLHIsdix5LGEsbyxsKX1lbHNle3ZhciB4PShhKnYrbCpnKS9uO3QoZSxwLGcsaSxhLG8seCksdChwLHIsdixpLHgsbyxsKX19KDAsbCx0LnZhbHVlLGUscixuLGkpfSx0LnRyZWVtYXBEaWNlPU8sdC50cmVlbWFwUmVzcXVhcmlmeT1YLHQudHJlZW1hcFNsaWNlPXEsdC50cmVlbWFwU2xpY2VEaWNlPWZ1bmN0aW9uKHQsZSxyLG4saSl7KDEmdC5kZXB0aD9xOk8pKHQsZSxyLG4saSl9LHQudHJlZW1hcFNxdWFyaWZ5PVcsT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSkpfSx7fV0sMTE2OltmdW5jdGlvbih0LGUscil7IWZ1bmN0aW9uKG4saSl7Im9iamVjdCI9PXR5cGVvZiByJiZ2b2lkIDAhPT1lP2kocix0KCJkMy1jb2xvciIpKTppKChuPW58fHNlbGYpLmQzPW4uZDN8fHt9LG4uZDMpfSh0aGlzLChmdW5jdGlvbih0LGUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQsZSxyLG4saSl7dmFyIGE9dCp0LG89YSp0O3JldHVybigoMS0zKnQrMyphLW8pKmUrKDQtNiphKzMqbykqcisoMSszKnQrMyphLTMqbykqbitvKmkpLzZ9ZnVuY3Rpb24gbih0KXt2YXIgZT10Lmxlbmd0aC0xO3JldHVybiBmdW5jdGlvbihuKXt2YXIgaT1uPD0wP249MDpuPj0xPyhuPTEsZS0xKTpNYXRoLmZsb29yKG4qZSksYT10W2ldLG89dFtpKzFdLHM9aT4wP3RbaS0xXToyKmEtbyxsPWk8ZS0xP3RbaSsyXToyKm8tYTtyZXR1cm4gcigobi1pL2UpKmUscyxhLG8sbCl9fWZ1bmN0aW9uIGkodCl7dmFyIGU9dC5sZW5ndGg7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciBpPU1hdGguZmxvb3IoKChuJT0xKTwwPysrbjpuKSplKSxhPXRbKGkrZS0xKSVlXSxvPXRbaSVlXSxzPXRbKGkrMSklZV0sbD10WyhpKzIpJWVdO3JldHVybiByKChuLWkvZSkqZSxhLG8scyxsKX19ZnVuY3Rpb24gYSh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gbyh0LGUpe3JldHVybiBmdW5jdGlvbihyKXtyZXR1cm4gdCtyKmV9fWZ1bmN0aW9uIHModCxlKXt2YXIgcj1lLXQ7cmV0dXJuIHI/byh0LHI+MTgwfHxyPC0xODA/ci0zNjAqTWF0aC5yb3VuZChyLzM2MCk6cik6YShpc05hTih0KT9lOnQpfWZ1bmN0aW9uIGwodCl7cmV0dXJuIDE9PSh0PSt0KT9jOmZ1bmN0aW9uKGUscil7cmV0dXJuIHItZT9mdW5jdGlvbih0LGUscil7cmV0dXJuIHQ9TWF0aC5wb3codCxyKSxlPU1hdGgucG93KGUsciktdCxyPTEvcixmdW5jdGlvbihuKXtyZXR1cm4gTWF0aC5wb3codCtuKmUscil9fShlLHIsdCk6YShpc05hTihlKT9yOmUpfX1mdW5jdGlvbiBjKHQsZSl7dmFyIHI9ZS10O3JldHVybiByP28odCxyKTphKGlzTmFOKHQpP2U6dCl9dmFyIHU9ZnVuY3Rpb24gdChyKXt2YXIgbj1sKHIpO2Z1bmN0aW9uIGkodCxyKXt2YXIgaT1uKCh0PWUucmdiKHQpKS5yLChyPWUucmdiKHIpKS5yKSxhPW4odC5nLHIuZyksbz1uKHQuYixyLmIpLHM9Yyh0Lm9wYWNpdHksci5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHQucj1pKGUpLHQuZz1hKGUpLHQuYj1vKGUpLHQub3BhY2l0eT1zKGUpLHQrIiJ9fXJldHVybiBpLmdhbW1hPXQsaX0oMSk7ZnVuY3Rpb24gZih0KXtyZXR1cm4gZnVuY3Rpb24ocil7dmFyIG4saSxhPXIubGVuZ3RoLG89bmV3IEFycmF5KGEpLHM9bmV3IEFycmF5KGEpLGw9bmV3IEFycmF5KGEpO2ZvcihuPTA7bjxhOysrbilpPWUucmdiKHJbbl0pLG9bbl09aS5yfHwwLHNbbl09aS5nfHwwLGxbbl09aS5ifHwwO3JldHVybiBvPXQobykscz10KHMpLGw9dChsKSxpLm9wYWNpdHk9MSxmdW5jdGlvbih0KXtyZXR1cm4gaS5yPW8odCksaS5nPXModCksaS5iPWwodCksaSsiIn19fXZhciBoPWYobikscD1mKGkpO2Z1bmN0aW9uIGQodCxlKXtlfHwoZT1bXSk7dmFyIHIsbj10P01hdGgubWluKGUubGVuZ3RoLHQubGVuZ3RoKTowLGk9ZS5zbGljZSgpO3JldHVybiBmdW5jdGlvbihhKXtmb3Iocj0wO3I8bjsrK3IpaVtyXT10W3JdKigxLWEpK2Vbcl0qYTtyZXR1cm4gaX19ZnVuY3Rpb24gbSh0KXtyZXR1cm4gQXJyYXlCdWZmZXIuaXNWaWV3KHQpJiYhKHQgaW5zdGFuY2VvZiBEYXRhVmlldyl9ZnVuY3Rpb24gZyh0LGUpe3ZhciByLG49ZT9lLmxlbmd0aDowLGk9dD9NYXRoLm1pbihuLHQubGVuZ3RoKTowLGE9bmV3IEFycmF5KGkpLG89bmV3IEFycmF5KG4pO2ZvcihyPTA7cjxpOysrcilhW3JdPVQodFtyXSxlW3JdKTtmb3IoO3I8bjsrK3Ipb1tyXT1lW3JdO3JldHVybiBmdW5jdGlvbih0KXtmb3Iocj0wO3I8aTsrK3Ipb1tyXT1hW3JdKHQpO3JldHVybiBvfX1mdW5jdGlvbiB2KHQsZSl7dmFyIHI9bmV3IERhdGU7cmV0dXJuIHQ9K3QsZT0rZSxmdW5jdGlvbihuKXtyZXR1cm4gci5zZXRUaW1lKHQqKDEtbikrZSpuKSxyfX1mdW5jdGlvbiB5KHQsZSl7cmV0dXJuIHQ9K3QsZT0rZSxmdW5jdGlvbihyKXtyZXR1cm4gdCooMS1yKStlKnJ9fWZ1bmN0aW9uIHgodCxlKXt2YXIgcixuPXt9LGk9e307Zm9yKHIgaW4gbnVsbCE9PXQmJiJvYmplY3QiPT10eXBlb2YgdHx8KHQ9e30pLG51bGwhPT1lJiYib2JqZWN0Ij09dHlwZW9mIGV8fChlPXt9KSxlKXIgaW4gdD9uW3JdPVQodFtyXSxlW3JdKTppW3JdPWVbcl07cmV0dXJuIGZ1bmN0aW9uKHQpe2ZvcihyIGluIG4paVtyXT1uW3JdKHQpO3JldHVybiBpfX12YXIgYj0vWy0rXT8oPzpcZCtcLj9cZCp8XC4/XGQrKSg/OltlRV1bLStdP1xkKyk/L2csXz1uZXcgUmVnRXhwKGIuc291cmNlLCJnIik7ZnVuY3Rpb24gdyh0LGUpe3ZhciByLG4saSxhPWIubGFzdEluZGV4PV8ubGFzdEluZGV4PTAsbz0tMSxzPVtdLGw9W107Zm9yKHQrPSIiLGUrPSIiOyhyPWIuZXhlYyh0KSkmJihuPV8uZXhlYyhlKSk7KShpPW4uaW5kZXgpPmEmJihpPWUuc2xpY2UoYSxpKSxzW29dP3Nbb10rPWk6c1srK29dPWkpLChyPXJbMF0pPT09KG49blswXSk/c1tvXT9zW29dKz1uOnNbKytvXT1uOihzWysrb109bnVsbCxsLnB1c2goe2k6byx4OnkocixuKX0pKSxhPV8ubGFzdEluZGV4O3JldHVybiBhPGUubGVuZ3RoJiYoaT1lLnNsaWNlKGEpLHNbb10/c1tvXSs9aTpzWysrb109aSkscy5sZW5ndGg8Mj9sWzBdP2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdChlKSsiIn19KGxbMF0ueCk6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fShlKTooZT1sLmxlbmd0aCxmdW5jdGlvbih0KXtmb3IodmFyIHIsbj0wO248ZTsrK24pc1socj1sW25dKS5pXT1yLngodCk7cmV0dXJuIHMuam9pbigiIil9KX1mdW5jdGlvbiBUKHQscil7dmFyIG4saT10eXBlb2YgcjtyZXR1cm4gbnVsbD09cnx8ImJvb2xlYW4iPT09aT9hKHIpOigibnVtYmVyIj09PWk/eToic3RyaW5nIj09PWk/KG49ZS5jb2xvcihyKSk/KHI9bix1KTp3OnIgaW5zdGFuY2VvZiBlLmNvbG9yP3U6ciBpbnN0YW5jZW9mIERhdGU/djptKHIpP2Q6QXJyYXkuaXNBcnJheShyKT9nOiJmdW5jdGlvbiIhPXR5cGVvZiByLnZhbHVlT2YmJiJmdW5jdGlvbiIhPXR5cGVvZiByLnRvU3RyaW5nfHxpc05hTihyKT94OnkpKHQscil9dmFyIGssQSxNLFMsRT0xODAvTWF0aC5QSSxMPXt0cmFuc2xhdGVYOjAsdHJhbnNsYXRlWTowLHJvdGF0ZTowLHNrZXdYOjAsc2NhbGVYOjEsc2NhbGVZOjF9O2Z1bmN0aW9uIEModCxlLHIsbixpLGEpe3ZhciBvLHMsbDtyZXR1cm4obz1NYXRoLnNxcnQodCp0K2UqZSkpJiYodC89byxlLz1vKSwobD10KnIrZSpuKSYmKHItPXQqbCxuLT1lKmwpLChzPU1hdGguc3FydChyKnIrbipuKSkmJihyLz1zLG4vPXMsbC89cyksdCpuPGUqciYmKHQ9LXQsZT0tZSxsPS1sLG89LW8pLHt0cmFuc2xhdGVYOmksdHJhbnNsYXRlWTphLHJvdGF0ZTpNYXRoLmF0YW4yKGUsdCkqRSxza2V3WDpNYXRoLmF0YW4obCkqRSxzY2FsZVg6byxzY2FsZVk6c319ZnVuY3Rpb24gUCh0LGUscixuKXtmdW5jdGlvbiBpKHQpe3JldHVybiB0Lmxlbmd0aD90LnBvcCgpKyIgIjoiIn1yZXR1cm4gZnVuY3Rpb24oYSxvKXt2YXIgcz1bXSxsPVtdO3JldHVybiBhPXQoYSksbz10KG8pLGZ1bmN0aW9uKHQsbixpLGEsbyxzKXtpZih0IT09aXx8biE9PWEpe3ZhciBsPW8ucHVzaCgidHJhbnNsYXRlKCIsbnVsbCxlLG51bGwscik7cy5wdXNoKHtpOmwtNCx4OnkodCxpKX0se2k6bC0yLHg6eShuLGEpfSl9ZWxzZShpfHxhKSYmby5wdXNoKCJ0cmFuc2xhdGUoIitpK2UrYStyKX0oYS50cmFuc2xhdGVYLGEudHJhbnNsYXRlWSxvLnRyYW5zbGF0ZVgsby50cmFuc2xhdGVZLHMsbCksZnVuY3Rpb24odCxlLHIsYSl7dCE9PWU/KHQtZT4xODA/ZSs9MzYwOmUtdD4xODAmJih0Kz0zNjApLGEucHVzaCh7aTpyLnB1c2goaShyKSsicm90YXRlKCIsbnVsbCxuKS0yLHg6eSh0LGUpfSkpOmUmJnIucHVzaChpKHIpKyJyb3RhdGUoIitlK24pfShhLnJvdGF0ZSxvLnJvdGF0ZSxzLGwpLGZ1bmN0aW9uKHQsZSxyLGEpe3QhPT1lP2EucHVzaCh7aTpyLnB1c2goaShyKSsic2tld1goIixudWxsLG4pLTIseDp5KHQsZSl9KTplJiZyLnB1c2goaShyKSsic2tld1goIitlK24pfShhLnNrZXdYLG8uc2tld1gscyxsKSxmdW5jdGlvbih0LGUscixuLGEsbyl7aWYodCE9PXJ8fGUhPT1uKXt2YXIgcz1hLnB1c2goaShhKSsic2NhbGUoIixudWxsLCIsIixudWxsLCIpIik7by5wdXNoKHtpOnMtNCx4OnkodCxyKX0se2k6cy0yLHg6eShlLG4pfSl9ZWxzZSAxPT09ciYmMT09PW58fGEucHVzaChpKGEpKyJzY2FsZSgiK3IrIiwiK24rIikiKX0oYS5zY2FsZVgsYS5zY2FsZVksby5zY2FsZVgsby5zY2FsZVkscyxsKSxhPW89bnVsbCxmdW5jdGlvbih0KXtmb3IodmFyIGUscj0tMSxuPWwubGVuZ3RoOysrcjxuOylzWyhlPWxbcl0pLmldPWUueCh0KTtyZXR1cm4gcy5qb2luKCIiKX19fXZhciBJPVAoKGZ1bmN0aW9uKHQpe3JldHVybiJub25lIj09PXQ/TDooa3x8KGs9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIiksQT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsTT1kb2N1bWVudC5kZWZhdWx0Vmlldyksay5zdHlsZS50cmFuc2Zvcm09dCx0PU0uZ2V0Q29tcHV0ZWRTdHlsZShBLmFwcGVuZENoaWxkKGspLG51bGwpLmdldFByb3BlcnR5VmFsdWUoInRyYW5zZm9ybSIpLEEucmVtb3ZlQ2hpbGQoayksQygrKHQ9dC5zbGljZSg3LC0xKS5zcGxpdCgiLCIpKVswXSwrdFsxXSwrdFsyXSwrdFszXSwrdFs0XSwrdFs1XSkpfSksInB4LCAiLCJweCkiLCJkZWcpIiksTz1QKChmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD9MOihTfHwoUz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiZyIpKSxTLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIix0KSwodD1TLnRyYW5zZm9ybS5iYXNlVmFsLmNvbnNvbGlkYXRlKCkpP0MoKHQ9dC5tYXRyaXgpLmEsdC5iLHQuYyx0LmQsdC5lLHQuZik6TCl9KSwiLCAiLCIpIiwiKSIpLHo9TWF0aC5TUVJUMjtmdW5jdGlvbiBEKHQpe3JldHVybigodD1NYXRoLmV4cCh0KSkrMS90KS8yfWZ1bmN0aW9uIFIodCl7cmV0dXJuIGZ1bmN0aW9uKHIsbil7dmFyIGk9dCgocj1lLmhzbChyKSkuaCwobj1lLmhzbChuKSkuaCksYT1jKHIucyxuLnMpLG89YyhyLmwsbi5sKSxzPWMoci5vcGFjaXR5LG4ub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiByLmg9aSh0KSxyLnM9YSh0KSxyLmw9byh0KSxyLm9wYWNpdHk9cyh0KSxyKyIifX19dmFyIEY9UihzKSxCPVIoYyk7ZnVuY3Rpb24gTih0KXtyZXR1cm4gZnVuY3Rpb24ocixuKXt2YXIgaT10KChyPWUuaGNsKHIpKS5oLChuPWUuaGNsKG4pKS5oKSxhPWMoci5jLG4uYyksbz1jKHIubCxuLmwpLHM9YyhyLm9wYWNpdHksbi5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHIuaD1pKHQpLHIuYz1hKHQpLHIubD1vKHQpLHIub3BhY2l0eT1zKHQpLHIrIiJ9fX12YXIgaj1OKHMpLFU9TihjKTtmdW5jdGlvbiBWKHQpe3JldHVybiBmdW5jdGlvbiByKG4pe2Z1bmN0aW9uIGkocixpKXt2YXIgYT10KChyPWUuY3ViZWhlbGl4KHIpKS5oLChpPWUuY3ViZWhlbGl4KGkpKS5oKSxvPWMoci5zLGkucykscz1jKHIubCxpLmwpLGw9YyhyLm9wYWNpdHksaS5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHIuaD1hKHQpLHIucz1vKHQpLHIubD1zKE1hdGgucG93KHQsbikpLHIub3BhY2l0eT1sKHQpLHIrIiJ9fXJldHVybiBuPStuLGkuZ2FtbWE9cixpfSgxKX12YXIgSD1WKHMpLHE9VihjKTt0LmludGVycG9sYXRlPVQsdC5pbnRlcnBvbGF0ZUFycmF5PWZ1bmN0aW9uKHQsZSl7cmV0dXJuKG0oZSk/ZDpnKSh0LGUpfSx0LmludGVycG9sYXRlQmFzaXM9bix0LmludGVycG9sYXRlQmFzaXNDbG9zZWQ9aSx0LmludGVycG9sYXRlQ3ViZWhlbGl4PUgsdC5pbnRlcnBvbGF0ZUN1YmVoZWxpeExvbmc9cSx0LmludGVycG9sYXRlRGF0ZT12LHQuaW50ZXJwb2xhdGVEaXNjcmV0ZT1mdW5jdGlvbih0KXt2YXIgZT10Lmxlbmd0aDtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIHRbTWF0aC5tYXgoMCxNYXRoLm1pbihlLTEsTWF0aC5mbG9vcihyKmUpKSldfX0sdC5pbnRlcnBvbGF0ZUhjbD1qLHQuaW50ZXJwb2xhdGVIY2xMb25nPVUsdC5pbnRlcnBvbGF0ZUhzbD1GLHQuaW50ZXJwb2xhdGVIc2xMb25nPUIsdC5pbnRlcnBvbGF0ZUh1ZT1mdW5jdGlvbih0LGUpe3ZhciByPXMoK3QsK2UpO3JldHVybiBmdW5jdGlvbih0KXt2YXIgZT1yKHQpO3JldHVybiBlLTM2MCpNYXRoLmZsb29yKGUvMzYwKX19LHQuaW50ZXJwb2xhdGVMYWI9ZnVuY3Rpb24odCxyKXt2YXIgbj1jKCh0PWUubGFiKHQpKS5sLChyPWUubGFiKHIpKS5sKSxpPWModC5hLHIuYSksYT1jKHQuYixyLmIpLG89Yyh0Lm9wYWNpdHksci5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHQubD1uKGUpLHQuYT1pKGUpLHQuYj1hKGUpLHQub3BhY2l0eT1vKGUpLHQrIiJ9fSx0LmludGVycG9sYXRlTnVtYmVyPXksdC5pbnRlcnBvbGF0ZU51bWJlckFycmF5PWQsdC5pbnRlcnBvbGF0ZU9iamVjdD14LHQuaW50ZXJwb2xhdGVSZ2I9dSx0LmludGVycG9sYXRlUmdiQmFzaXM9aCx0LmludGVycG9sYXRlUmdiQmFzaXNDbG9zZWQ9cCx0LmludGVycG9sYXRlUm91bmQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD0rdCxlPStlLGZ1bmN0aW9uKHIpe3JldHVybiBNYXRoLnJvdW5kKHQqKDEtcikrZSpyKX19LHQuaW50ZXJwb2xhdGVTdHJpbmc9dyx0LmludGVycG9sYXRlVHJhbnNmb3JtQ3NzPUksdC5pbnRlcnBvbGF0ZVRyYW5zZm9ybVN2Zz1PLHQuaW50ZXJwb2xhdGVab29tPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixpPXRbMF0sYT10WzFdLG89dFsyXSxzPWVbMF0sbD1lWzFdLGM9ZVsyXSx1PXMtaSxmPWwtYSxoPXUqdStmKmY7aWYoaDwxZS0xMiluPU1hdGgubG9nKGMvbykveixyPWZ1bmN0aW9uKHQpe3JldHVybltpK3QqdSxhK3QqZixvKk1hdGguZXhwKHoqdCpuKV19O2Vsc2V7dmFyIHA9TWF0aC5zcXJ0KGgpLGQ9KGMqYy1vKm8rNCpoKS8oMipvKjIqcCksbT0oYypjLW8qby00KmgpLygyKmMqMipwKSxnPU1hdGgubG9nKE1hdGguc3FydChkKmQrMSktZCksdj1NYXRoLmxvZyhNYXRoLnNxcnQobSptKzEpLW0pO249KHYtZykveixyPWZ1bmN0aW9uKHQpe3ZhciBlLHI9dCpuLHM9RChnKSxsPW8vKDIqcCkqKHMqKGU9eipyK2csKChlPU1hdGguZXhwKDIqZSkpLTEpLyhlKzEpKS1mdW5jdGlvbih0KXtyZXR1cm4oKHQ9TWF0aC5leHAodCkpLTEvdCkvMn0oZykpO3JldHVybltpK2wqdSxhK2wqZixvKnMvRCh6KnIrZyldfX1yZXR1cm4gci5kdXJhdGlvbj0xZTMqbixyfSx0LnBpZWNld2lzZT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wLG49ZS5sZW5ndGgtMSxpPWVbMF0sYT1uZXcgQXJyYXkobjwwPzA6bik7cjxuOylhW3JdPXQoaSxpPWVbKytyXSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBlPU1hdGgubWF4KDAsTWF0aC5taW4obi0xLE1hdGguZmxvb3IodCo9bikpKTtyZXR1cm4gYVtlXSh0LWUpfX0sdC5xdWFudGl6ZT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1uZXcgQXJyYXkoZSksbj0wO248ZTsrK24pcltuXT10KG4vKGUtMSkpO3JldHVybiByfSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KSl9LHsiZDMtY29sb3IiOjEwOX1dLDExNzpbZnVuY3Rpb24odCxlLHIpeyFmdW5jdGlvbih0LG4peyJvYmplY3QiPT10eXBlb2YgciYmdm9pZCAwIT09ZT9uKHIpOm4oKHQ9dHx8c2VsZikuZDM9dC5kM3x8e30pfSh0aGlzLChmdW5jdGlvbih0KXsidXNlIHN0cmljdCI7dmFyIGU9TWF0aC5QSSxyPTIqZSxuPXItMWUtNjtmdW5jdGlvbiBpKCl7dGhpcy5feDA9dGhpcy5feTA9dGhpcy5feDE9dGhpcy5feTE9bnVsbCx0aGlzLl89IiJ9ZnVuY3Rpb24gYSgpe3JldHVybiBuZXcgaX1pLnByb3RvdHlwZT1hLnByb3RvdHlwZT17Y29uc3RydWN0b3I6aSxtb3ZlVG86ZnVuY3Rpb24odCxlKXt0aGlzLl8rPSJNIisodGhpcy5feDA9dGhpcy5feDE9K3QpKyIsIisodGhpcy5feTA9dGhpcy5feTE9K2UpfSxjbG9zZVBhdGg6ZnVuY3Rpb24oKXtudWxsIT09dGhpcy5feDEmJih0aGlzLl94MT10aGlzLl94MCx0aGlzLl95MT10aGlzLl95MCx0aGlzLl8rPSJaIil9LGxpbmVUbzpmdW5jdGlvbih0LGUpe3RoaXMuXys9IkwiKyh0aGlzLl94MT0rdCkrIiwiKyh0aGlzLl95MT0rZSl9LHF1YWRyYXRpY0N1cnZlVG86ZnVuY3Rpb24odCxlLHIsbil7dGhpcy5fKz0iUSIrICt0KyIsIisgK2UrIiwiKyh0aGlzLl94MT0rcikrIiwiKyh0aGlzLl95MT0rbil9LGJlemllckN1cnZlVG86ZnVuY3Rpb24odCxlLHIsbixpLGEpe3RoaXMuXys9IkMiKyArdCsiLCIrICtlKyIsIisgK3IrIiwiKyArbisiLCIrKHRoaXMuX3gxPStpKSsiLCIrKHRoaXMuX3kxPSthKX0sYXJjVG86ZnVuY3Rpb24odCxyLG4saSxhKXt0PSt0LHI9K3Isbj0rbixpPStpLGE9K2E7dmFyIG89dGhpcy5feDEscz10aGlzLl95MSxsPW4tdCxjPWktcix1PW8tdCxmPXMtcixoPXUqdStmKmY7aWYoYTwwKXRocm93IG5ldyBFcnJvcigibmVnYXRpdmUgcmFkaXVzOiAiK2EpO2lmKG51bGw9PT10aGlzLl94MSl0aGlzLl8rPSJNIisodGhpcy5feDE9dCkrIiwiKyh0aGlzLl95MT1yKTtlbHNlIGlmKGg+MWUtNilpZihNYXRoLmFicyhmKmwtYyp1KT4xZS02JiZhKXt2YXIgcD1uLW8sZD1pLXMsbT1sKmwrYypjLGc9cCpwK2QqZCx2PU1hdGguc3FydChtKSx5PU1hdGguc3FydChoKSx4PWEqTWF0aC50YW4oKGUtTWF0aC5hY29zKChtK2gtZykvKDIqdip5KSkpLzIpLGI9eC95LF89eC92O01hdGguYWJzKGItMSk+MWUtNiYmKHRoaXMuXys9IkwiKyh0K2IqdSkrIiwiKyhyK2IqZikpLHRoaXMuXys9IkEiK2ErIiwiK2ErIiwwLDAsIisgKyhmKnA+dSpkKSsiLCIrKHRoaXMuX3gxPXQrXypsKSsiLCIrKHRoaXMuX3kxPXIrXypjKX1lbHNlIHRoaXMuXys9IkwiKyh0aGlzLl94MT10KSsiLCIrKHRoaXMuX3kxPXIpO2Vsc2U7fSxhcmM6ZnVuY3Rpb24odCxpLGEsbyxzLGwpe3Q9K3QsaT0raSxsPSEhbDt2YXIgYz0oYT0rYSkqTWF0aC5jb3MobyksdT1hKk1hdGguc2luKG8pLGY9dCtjLGg9aSt1LHA9MV5sLGQ9bD9vLXM6cy1vO2lmKGE8MCl0aHJvdyBuZXcgRXJyb3IoIm5lZ2F0aXZlIHJhZGl1czogIithKTtudWxsPT09dGhpcy5feDE/dGhpcy5fKz0iTSIrZisiLCIraDooTWF0aC5hYnModGhpcy5feDEtZik+MWUtNnx8TWF0aC5hYnModGhpcy5feTEtaCk+MWUtNikmJih0aGlzLl8rPSJMIitmKyIsIitoKSxhJiYoZDwwJiYoZD1kJXIrciksZD5uP3RoaXMuXys9IkEiK2ErIiwiK2ErIiwwLDEsIitwKyIsIisodC1jKSsiLCIrKGktdSkrIkEiK2ErIiwiK2ErIiwwLDEsIitwKyIsIisodGhpcy5feDE9ZikrIiwiKyh0aGlzLl95MT1oKTpkPjFlLTYmJih0aGlzLl8rPSJBIithKyIsIithKyIsMCwiKyArKGQ+PWUpKyIsIitwKyIsIisodGhpcy5feDE9dCthKk1hdGguY29zKHMpKSsiLCIrKHRoaXMuX3kxPWkrYSpNYXRoLnNpbihzKSkpKX0scmVjdDpmdW5jdGlvbih0LGUscixuKXt0aGlzLl8rPSJNIisodGhpcy5feDA9dGhpcy5feDE9K3QpKyIsIisodGhpcy5feTA9dGhpcy5feTE9K2UpKyJoIisgK3IrInYiKyArbisiaCIrLXIrIloifSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLl99fSx0LnBhdGg9YSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KSl9LHt9XSwxMTg6W2Z1bmN0aW9uKHQsZSxyKXshZnVuY3Rpb24odCxuKXsib2JqZWN0Ij09dHlwZW9mIHImJnZvaWQgMCE9PWU/bihyKTpuKCh0PXR8fHNlbGYpLmQzPXQuZDN8fHt9KX0odGhpcywoZnVuY3Rpb24odCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGUodCxlLHIsbil7aWYoaXNOYU4oZSl8fGlzTmFOKHIpKXJldHVybiB0O3ZhciBpLGEsbyxzLGwsYyx1LGYsaCxwPXQuX3Jvb3QsZD17ZGF0YTpufSxtPXQuX3gwLGc9dC5feTAsdj10Ll94MSx5PXQuX3kxO2lmKCFwKXJldHVybiB0Ll9yb290PWQsdDtmb3IoO3AubGVuZ3RoOylpZigoYz1lPj0oYT0obSt2KS8yKSk/bT1hOnY9YSwodT1yPj0obz0oZyt5KS8yKSk/Zz1vOnk9byxpPXAsIShwPXBbZj11PDwxfGNdKSlyZXR1cm4gaVtmXT1kLHQ7aWYocz0rdC5feC5jYWxsKG51bGwscC5kYXRhKSxsPSt0Ll95LmNhbGwobnVsbCxwLmRhdGEpLGU9PT1zJiZyPT09bClyZXR1cm4gZC5uZXh0PXAsaT9pW2ZdPWQ6dC5fcm9vdD1kLHQ7ZG97aT1pP2lbZl09bmV3IEFycmF5KDQpOnQuX3Jvb3Q9bmV3IEFycmF5KDQpLChjPWU+PShhPShtK3YpLzIpKT9tPWE6dj1hLCh1PXI+PShvPShnK3kpLzIpKT9nPW86eT1vfXdoaWxlKChmPXU8PDF8Yyk9PShoPShsPj1vKTw8MXxzPj1hKSk7cmV0dXJuIGlbaF09cCxpW2ZdPWQsdH1mdW5jdGlvbiByKHQsZSxyLG4saSl7dGhpcy5ub2RlPXQsdGhpcy54MD1lLHRoaXMueTA9cix0aGlzLngxPW4sdGhpcy55MT1pfWZ1bmN0aW9uIG4odCl7cmV0dXJuIHRbMF19ZnVuY3Rpb24gaSh0KXtyZXR1cm4gdFsxXX1mdW5jdGlvbiBhKHQsZSxyKXt2YXIgYT1uZXcgbyhudWxsPT1lP246ZSxudWxsPT1yP2k6cixOYU4sTmFOLE5hTixOYU4pO3JldHVybiBudWxsPT10P2E6YS5hZGRBbGwodCl9ZnVuY3Rpb24gbyh0LGUscixuLGksYSl7dGhpcy5feD10LHRoaXMuX3k9ZSx0aGlzLl94MD1yLHRoaXMuX3kwPW4sdGhpcy5feDE9aSx0aGlzLl95MT1hLHRoaXMuX3Jvb3Q9dm9pZCAwfWZ1bmN0aW9uIHModCl7Zm9yKHZhciBlPXtkYXRhOnQuZGF0YX0scj1lO3Q9dC5uZXh0OylyPXIubmV4dD17ZGF0YTp0LmRhdGF9O3JldHVybiBlfXZhciBsPWEucHJvdG90eXBlPW8ucHJvdG90eXBlO2wuY29weT1mdW5jdGlvbigpe3ZhciB0LGUscj1uZXcgbyh0aGlzLl94LHRoaXMuX3ksdGhpcy5feDAsdGhpcy5feTAsdGhpcy5feDEsdGhpcy5feTEpLG49dGhpcy5fcm9vdDtpZighbilyZXR1cm4gcjtpZighbi5sZW5ndGgpcmV0dXJuIHIuX3Jvb3Q9cyhuKSxyO2Zvcih0PVt7c291cmNlOm4sdGFyZ2V0OnIuX3Jvb3Q9bmV3IEFycmF5KDQpfV07bj10LnBvcCgpOylmb3IodmFyIGk9MDtpPDQ7KytpKShlPW4uc291cmNlW2ldKSYmKGUubGVuZ3RoP3QucHVzaCh7c291cmNlOmUsdGFyZ2V0Om4udGFyZ2V0W2ldPW5ldyBBcnJheSg0KX0pOm4udGFyZ2V0W2ldPXMoZSkpO3JldHVybiByfSxsLmFkZD1mdW5jdGlvbih0KXt2YXIgcj0rdGhpcy5feC5jYWxsKG51bGwsdCksbj0rdGhpcy5feS5jYWxsKG51bGwsdCk7cmV0dXJuIGUodGhpcy5jb3ZlcihyLG4pLHIsbix0KX0sbC5hZGRBbGw9ZnVuY3Rpb24odCl7dmFyIHIsbixpLGEsbz10Lmxlbmd0aCxzPW5ldyBBcnJheShvKSxsPW5ldyBBcnJheShvKSxjPTEvMCx1PTEvMCxmPS0xLzAsaD0tMS8wO2ZvcihuPTA7bjxvOysrbilpc05hTihpPSt0aGlzLl94LmNhbGwobnVsbCxyPXRbbl0pKXx8aXNOYU4oYT0rdGhpcy5feS5jYWxsKG51bGwscikpfHwoc1tuXT1pLGxbbl09YSxpPGMmJihjPWkpLGk+ZiYmKGY9aSksYTx1JiYodT1hKSxhPmgmJihoPWEpKTtpZihjPmZ8fHU+aClyZXR1cm4gdGhpcztmb3IodGhpcy5jb3ZlcihjLHUpLmNvdmVyKGYsaCksbj0wO248bzsrK24pZSh0aGlzLHNbbl0sbFtuXSx0W25dKTtyZXR1cm4gdGhpc30sbC5jb3Zlcj1mdW5jdGlvbih0LGUpe2lmKGlzTmFOKHQ9K3QpfHxpc05hTihlPStlKSlyZXR1cm4gdGhpczt2YXIgcj10aGlzLl94MCxuPXRoaXMuX3kwLGk9dGhpcy5feDEsYT10aGlzLl95MTtpZihpc05hTihyKSlpPShyPU1hdGguZmxvb3IodCkpKzEsYT0obj1NYXRoLmZsb29yKGUpKSsxO2Vsc2V7Zm9yKHZhciBvLHMsbD1pLXIsYz10aGlzLl9yb290O3I+dHx8dD49aXx8bj5lfHxlPj1hOylzd2l0Y2gocz0oZTxuKTw8MXx0PHIsKG89bmV3IEFycmF5KDQpKVtzXT1jLGM9byxsKj0yLHMpe2Nhc2UgMDppPXIrbCxhPW4rbDticmVhaztjYXNlIDE6cj1pLWwsYT1uK2w7YnJlYWs7Y2FzZSAyOmk9citsLG49YS1sO2JyZWFrO2Nhc2UgMzpyPWktbCxuPWEtbH10aGlzLl9yb290JiZ0aGlzLl9yb290Lmxlbmd0aCYmKHRoaXMuX3Jvb3Q9Yyl9cmV0dXJuIHRoaXMuX3gwPXIsdGhpcy5feTA9bix0aGlzLl94MT1pLHRoaXMuX3kxPWEsdGhpc30sbC5kYXRhPWZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHRoaXMudmlzaXQoKGZ1bmN0aW9uKGUpe2lmKCFlLmxlbmd0aClkb3t0LnB1c2goZS5kYXRhKX13aGlsZShlPWUubmV4dCl9KSksdH0sbC5leHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5jb3ZlcigrdFswXVswXSwrdFswXVsxXSkuY292ZXIoK3RbMV1bMF0sK3RbMV1bMV0pOmlzTmFOKHRoaXMuX3gwKT92b2lkIDA6W1t0aGlzLl94MCx0aGlzLl95MF0sW3RoaXMuX3gxLHRoaXMuX3kxXV19LGwuZmluZD1mdW5jdGlvbih0LGUsbil7dmFyIGksYSxvLHMsbCxjLHUsZj10aGlzLl94MCxoPXRoaXMuX3kwLHA9dGhpcy5feDEsZD10aGlzLl95MSxtPVtdLGc9dGhpcy5fcm9vdDtmb3IoZyYmbS5wdXNoKG5ldyByKGcsZixoLHAsZCkpLG51bGw9PW4/bj0xLzA6KGY9dC1uLGg9ZS1uLHA9dCtuLGQ9ZStuLG4qPW4pO2M9bS5wb3AoKTspaWYoISghKGc9Yy5ub2RlKXx8KGE9Yy54MCk+cHx8KG89Yy55MCk+ZHx8KHM9Yy54MSk8Znx8KGw9Yy55MSk8aCkpaWYoZy5sZW5ndGgpe3ZhciB2PShhK3MpLzIseT0obytsKS8yO20ucHVzaChuZXcgcihnWzNdLHYseSxzLGwpLG5ldyByKGdbMl0sYSx5LHYsbCksbmV3IHIoZ1sxXSx2LG8scyx5KSxuZXcgcihnWzBdLGEsbyx2LHkpKSwodT0oZT49eSk8PDF8dD49dikmJihjPW1bbS5sZW5ndGgtMV0sbVttLmxlbmd0aC0xXT1tW20ubGVuZ3RoLTEtdV0sbVttLmxlbmd0aC0xLXVdPWMpfWVsc2V7dmFyIHg9dC0rdGhpcy5feC5jYWxsKG51bGwsZy5kYXRhKSxiPWUtK3RoaXMuX3kuY2FsbChudWxsLGcuZGF0YSksXz14KngrYipiO2lmKF88bil7dmFyIHc9TWF0aC5zcXJ0KG49Xyk7Zj10LXcsaD1lLXcscD10K3csZD1lK3csaT1nLmRhdGF9fXJldHVybiBpfSxsLnJlbW92ZT1mdW5jdGlvbih0KXtpZihpc05hTihhPSt0aGlzLl94LmNhbGwobnVsbCx0KSl8fGlzTmFOKG89K3RoaXMuX3kuY2FsbChudWxsLHQpKSlyZXR1cm4gdGhpczt2YXIgZSxyLG4saSxhLG8scyxsLGMsdSxmLGgscD10aGlzLl9yb290LGQ9dGhpcy5feDAsbT10aGlzLl95MCxnPXRoaXMuX3gxLHY9dGhpcy5feTE7aWYoIXApcmV0dXJuIHRoaXM7aWYocC5sZW5ndGgpZm9yKDs7KXtpZigoYz1hPj0ocz0oZCtnKS8yKSk/ZD1zOmc9cywodT1vPj0obD0obSt2KS8yKSk/bT1sOnY9bCxlPXAsIShwPXBbZj11PDwxfGNdKSlyZXR1cm4gdGhpcztpZighcC5sZW5ndGgpYnJlYWs7KGVbZisxJjNdfHxlW2YrMiYzXXx8ZVtmKzMmM10pJiYocj1lLGg9Zil9Zm9yKDtwLmRhdGEhPT10OylpZihuPXAsIShwPXAubmV4dCkpcmV0dXJuIHRoaXM7cmV0dXJuKGk9cC5uZXh0KSYmZGVsZXRlIHAubmV4dCxuPyhpP24ubmV4dD1pOmRlbGV0ZSBuLm5leHQsdGhpcyk6ZT8oaT9lW2ZdPWk6ZGVsZXRlIGVbZl0sKHA9ZVswXXx8ZVsxXXx8ZVsyXXx8ZVszXSkmJnA9PT0oZVszXXx8ZVsyXXx8ZVsxXXx8ZVswXSkmJiFwLmxlbmd0aCYmKHI/cltoXT1wOnRoaXMuX3Jvb3Q9cCksdGhpcyk6KHRoaXMuX3Jvb3Q9aSx0aGlzKX0sbC5yZW1vdmVBbGw9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAscj10Lmxlbmd0aDtlPHI7KytlKXRoaXMucmVtb3ZlKHRbZV0pO3JldHVybiB0aGlzfSxsLnJvb3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcm9vdH0sbC5zaXplPWZ1bmN0aW9uKCl7dmFyIHQ9MDtyZXR1cm4gdGhpcy52aXNpdCgoZnVuY3Rpb24oZSl7aWYoIWUubGVuZ3RoKWRveysrdH13aGlsZShlPWUubmV4dCl9KSksdH0sbC52aXNpdD1mdW5jdGlvbih0KXt2YXIgZSxuLGksYSxvLHMsbD1bXSxjPXRoaXMuX3Jvb3Q7Zm9yKGMmJmwucHVzaChuZXcgcihjLHRoaXMuX3gwLHRoaXMuX3kwLHRoaXMuX3gxLHRoaXMuX3kxKSk7ZT1sLnBvcCgpOylpZighdChjPWUubm9kZSxpPWUueDAsYT1lLnkwLG89ZS54MSxzPWUueTEpJiZjLmxlbmd0aCl7dmFyIHU9KGkrbykvMixmPShhK3MpLzI7KG49Y1szXSkmJmwucHVzaChuZXcgcihuLHUsZixvLHMpKSwobj1jWzJdKSYmbC5wdXNoKG5ldyByKG4saSxmLHUscykpLChuPWNbMV0pJiZsLnB1c2gobmV3IHIobix1LGEsbyxmKSksKG49Y1swXSkmJmwucHVzaChuZXcgcihuLGksYSx1LGYpKX1yZXR1cm4gdGhpc30sbC52aXNpdEFmdGVyPWZ1bmN0aW9uKHQpe3ZhciBlLG49W10saT1bXTtmb3IodGhpcy5fcm9vdCYmbi5wdXNoKG5ldyByKHRoaXMuX3Jvb3QsdGhpcy5feDAsdGhpcy5feTAsdGhpcy5feDEsdGhpcy5feTEpKTtlPW4ucG9wKCk7KXt2YXIgYT1lLm5vZGU7aWYoYS5sZW5ndGgpe3ZhciBvLHM9ZS54MCxsPWUueTAsYz1lLngxLHU9ZS55MSxmPShzK2MpLzIsaD0obCt1KS8yOyhvPWFbMF0pJiZuLnB1c2gobmV3IHIobyxzLGwsZixoKSksKG89YVsxXSkmJm4ucHVzaChuZXcgcihvLGYsbCxjLGgpKSwobz1hWzJdKSYmbi5wdXNoKG5ldyByKG8scyxoLGYsdSkpLChvPWFbM10pJiZuLnB1c2gobmV3IHIobyxmLGgsYyx1KSl9aS5wdXNoKGUpfWZvcig7ZT1pLnBvcCgpOyl0KGUubm9kZSxlLngwLGUueTAsZS54MSxlLnkxKTtyZXR1cm4gdGhpc30sbC54PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0aGlzLl94PXQsdGhpcyk6dGhpcy5feH0sbC55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0aGlzLl95PXQsdGhpcyk6dGhpcy5feX0sdC5xdWFkdHJlZT1hLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0pKX0se31dLDExOTpbZnVuY3Rpb24odCxlLHIpeyFmdW5jdGlvbihuLGkpeyJvYmplY3QiPT10eXBlb2YgciYmdm9pZCAwIT09ZT9pKHIsdCgiZDMtcGF0aCIpKTppKChuPW58fHNlbGYpLmQzPW4uZDN8fHt9LG4uZDMpfSh0aGlzLChmdW5jdGlvbih0LGUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX12YXIgbj1NYXRoLmFicyxpPU1hdGguYXRhbjIsYT1NYXRoLmNvcyxvPU1hdGgubWF4LHM9TWF0aC5taW4sbD1NYXRoLnNpbixjPU1hdGguc3FydCx1PU1hdGguUEksZj11LzIsaD0yKnU7ZnVuY3Rpb24gcCh0KXtyZXR1cm4gdD4xPzA6dDwtMT91Ok1hdGguYWNvcyh0KX1mdW5jdGlvbiBkKHQpe3JldHVybiB0Pj0xP2Y6dDw9LTE/LWY6TWF0aC5hc2luKHQpfWZ1bmN0aW9uIG0odCl7cmV0dXJuIHQuaW5uZXJSYWRpdXN9ZnVuY3Rpb24gZyh0KXtyZXR1cm4gdC5vdXRlclJhZGl1c31mdW5jdGlvbiB2KHQpe3JldHVybiB0LnN0YXJ0QW5nbGV9ZnVuY3Rpb24geSh0KXtyZXR1cm4gdC5lbmRBbmdsZX1mdW5jdGlvbiB4KHQpe3JldHVybiB0JiZ0LnBhZEFuZ2xlfWZ1bmN0aW9uIGIodCxlLHIsbixpLGEsbyxzKXt2YXIgbD1yLXQsYz1uLWUsdT1vLWksZj1zLWEsaD1mKmwtdSpjO2lmKCEoaCpoPDFlLTEyKSlyZXR1cm5bdCsoaD0odSooZS1hKS1mKih0LWkpKS9oKSpsLGUraCpjXX1mdW5jdGlvbiBfKHQsZSxyLG4saSxhLHMpe3ZhciBsPXQtcix1PWUtbixmPShzP2E6LWEpL2MobCpsK3UqdSksaD1mKnUscD0tZipsLGQ9dCtoLG09ZStwLGc9citoLHY9bitwLHk9KGQrZykvMix4PShtK3YpLzIsYj1nLWQsXz12LW0sdz1iKmIrXypfLFQ9aS1hLGs9ZCp2LWcqbSxBPShfPDA/LTE6MSkqYyhvKDAsVCpUKnctayprKSksTT0oaypfLWIqQSkvdyxTPSgtaypiLV8qQSkvdyxFPShrKl8rYipBKS93LEw9KC1rKmIrXypBKS93LEM9TS15LFA9Uy14LEk9RS15LE89TC14O3JldHVybiBDKkMrUCpQPkkqSStPKk8mJihNPUUsUz1MKSx7Y3g6TSxjeTpTLHgwMTotaCx5MDE6LXAseDExOk0qKGkvVC0xKSx5MTE6UyooaS9ULTEpfX1mdW5jdGlvbiB3KHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBUKHQpe3JldHVybiBuZXcgdyh0KX1mdW5jdGlvbiBrKHQpe3JldHVybiB0WzBdfWZ1bmN0aW9uIEEodCl7cmV0dXJuIHRbMV19ZnVuY3Rpb24gTSgpe3ZhciB0PWssbj1BLGk9cighMCksYT1udWxsLG89VCxzPW51bGw7ZnVuY3Rpb24gbChyKXt2YXIgbCxjLHUsZj1yLmxlbmd0aCxoPSExO2ZvcihudWxsPT1hJiYocz1vKHU9ZS5wYXRoKCkpKSxsPTA7bDw9ZjsrK2wpIShsPGYmJmkoYz1yW2xdLGwscikpPT09aCYmKChoPSFoKT9zLmxpbmVTdGFydCgpOnMubGluZUVuZCgpKSxoJiZzLnBvaW50KCt0KGMsbCxyKSwrbihjLGwscikpO2lmKHUpcmV0dXJuIHM9bnVsbCx1KyIifHxudWxsfXJldHVybiBsLng9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpyKCtlKSxsKTp0fSxsLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpyKCt0KSxsKTpufSxsLmRlZmluZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpyKCEhdCksbCk6aX0sbC5jdXJ2ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz10LG51bGwhPWEmJihzPW8oYSkpLGwpOm99LGwuY29udGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obnVsbD09dD9hPXM9bnVsbDpzPW8oYT10KSxsKTphfSxsfWZ1bmN0aW9uIFMoKXt2YXIgdD1rLG49bnVsbCxpPXIoMCksYT1BLG89cighMCkscz1udWxsLGw9VCxjPW51bGw7ZnVuY3Rpb24gdShyKXt2YXIgdSxmLGgscCxkLG09ci5sZW5ndGgsZz0hMSx2PW5ldyBBcnJheShtKSx5PW5ldyBBcnJheShtKTtmb3IobnVsbD09cyYmKGM9bChkPWUucGF0aCgpKSksdT0wO3U8PW07Kyt1KXtpZighKHU8bSYmbyhwPXJbdV0sdSxyKSk9PT1nKWlmKGc9IWcpZj11LGMuYXJlYVN0YXJ0KCksYy5saW5lU3RhcnQoKTtlbHNle2ZvcihjLmxpbmVFbmQoKSxjLmxpbmVTdGFydCgpLGg9dS0xO2g+PWY7LS1oKWMucG9pbnQodltoXSx5W2hdKTtjLmxpbmVFbmQoKSxjLmFyZWFFbmQoKX1nJiYodlt1XT0rdChwLHUscikseVt1XT0raShwLHUsciksYy5wb2ludChuPytuKHAsdSxyKTp2W3VdLGE/K2EocCx1LHIpOnlbdV0pKX1pZihkKXJldHVybiBjPW51bGwsZCsiInx8bnVsbH1mdW5jdGlvbiBmKCl7cmV0dXJuIE0oKS5kZWZpbmVkKG8pLmN1cnZlKGwpLmNvbnRleHQocyl9cmV0dXJuIHUueD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOnIoK2UpLG49bnVsbCx1KTp0fSx1LngwPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6cigrZSksdSk6dH0sdS54MT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1udWxsPT10P251bGw6ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpyKCt0KSx1KTpufSx1Lnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpyKCt0KSxhPW51bGwsdSk6aX0sdS55MD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OnIoK3QpLHUpOml9LHUueTE9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9bnVsbD09dD9udWxsOiJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cigrdCksdSk6YX0sdS5saW5lWDA9dS5saW5lWTA9ZnVuY3Rpb24oKXtyZXR1cm4gZigpLngodCkueShpKX0sdS5saW5lWTE9ZnVuY3Rpb24oKXtyZXR1cm4gZigpLngodCkueShhKX0sdS5saW5lWDE9ZnVuY3Rpb24oKXtyZXR1cm4gZigpLngobikueShpKX0sdS5kZWZpbmVkPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cighIXQpLHUpOm99LHUuY3VydmU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGw9dCxudWxsIT1zJiYoYz1sKHMpKSx1KTpsfSx1LmNvbnRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG51bGw9PXQ/cz1jPW51bGw6Yz1sKHM9dCksdSk6c30sdX1mdW5jdGlvbiBFKHQsZSl7cmV0dXJuIGU8dD8tMTplPnQ/MTplPj10PzA6TmFOfWZ1bmN0aW9uIEwodCl7cmV0dXJuIHR9dy5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LGUpe3N3aXRjaCh0PSt0LGU9K2UsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxlKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LGUpO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2RlZmF1bHQ6dGhpcy5fY29udGV4dC5saW5lVG8odCxlKX19fTt2YXIgQz1JKFQpO2Z1bmN0aW9uIFAodCl7dGhpcy5fY3VydmU9dH1mdW5jdGlvbiBJKHQpe2Z1bmN0aW9uIGUoZSl7cmV0dXJuIG5ldyBQKHQoZSkpfXJldHVybiBlLl9jdXJ2ZT10LGV9ZnVuY3Rpb24gTyh0KXt2YXIgZT10LmN1cnZlO3JldHVybiB0LmFuZ2xlPXQueCxkZWxldGUgdC54LHQucmFkaXVzPXQueSxkZWxldGUgdC55LHQuY3VydmU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/ZShJKHQpKTplKCkuX2N1cnZlfSx0fWZ1bmN0aW9uIHooKXtyZXR1cm4gTyhNKCkuY3VydmUoQykpfWZ1bmN0aW9uIEQoKXt2YXIgdD1TKCkuY3VydmUoQyksZT10LmN1cnZlLHI9dC5saW5lWDAsbj10LmxpbmVYMSxpPXQubGluZVkwLGE9dC5saW5lWTE7cmV0dXJuIHQuYW5nbGU9dC54LGRlbGV0ZSB0LngsdC5zdGFydEFuZ2xlPXQueDAsZGVsZXRlIHQueDAsdC5lbmRBbmdsZT10LngxLGRlbGV0ZSB0LngxLHQucmFkaXVzPXQueSxkZWxldGUgdC55LHQuaW5uZXJSYWRpdXM9dC55MCxkZWxldGUgdC55MCx0Lm91dGVyUmFkaXVzPXQueTEsZGVsZXRlIHQueTEsdC5saW5lU3RhcnRBbmdsZT1mdW5jdGlvbigpe3JldHVybiBPKHIoKSl9LGRlbGV0ZSB0LmxpbmVYMCx0LmxpbmVFbmRBbmdsZT1mdW5jdGlvbigpe3JldHVybiBPKG4oKSl9LGRlbGV0ZSB0LmxpbmVYMSx0LmxpbmVJbm5lclJhZGl1cz1mdW5jdGlvbigpe3JldHVybiBPKGkoKSl9LGRlbGV0ZSB0LmxpbmVZMCx0LmxpbmVPdXRlclJhZGl1cz1mdW5jdGlvbigpe3JldHVybiBPKGEoKSl9LGRlbGV0ZSB0LmxpbmVZMSx0LmN1cnZlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP2UoSSh0KSk6ZSgpLl9jdXJ2ZX0sdH1mdW5jdGlvbiBSKHQsZSl7cmV0dXJuWyhlPStlKSpNYXRoLmNvcyh0LT1NYXRoLlBJLzIpLGUqTWF0aC5zaW4odCldfVAucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9jdXJ2ZS5hcmVhU3RhcnQoKX0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2N1cnZlLmFyZWFFbmQoKX0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fY3VydmUubGluZVN0YXJ0KCl9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9jdXJ2ZS5saW5lRW5kKCl9LHBvaW50OmZ1bmN0aW9uKHQsZSl7dGhpcy5fY3VydmUucG9pbnQoZSpNYXRoLnNpbih0KSxlKi1NYXRoLmNvcyh0KSl9fTt2YXIgRj1BcnJheS5wcm90b3R5cGUuc2xpY2U7ZnVuY3Rpb24gQih0KXtyZXR1cm4gdC5zb3VyY2V9ZnVuY3Rpb24gTih0KXtyZXR1cm4gdC50YXJnZXR9ZnVuY3Rpb24gaih0KXt2YXIgbj1CLGk9TixhPWssbz1BLHM9bnVsbDtmdW5jdGlvbiBsKCl7dmFyIHIsbD1GLmNhbGwoYXJndW1lbnRzKSxjPW4uYXBwbHkodGhpcyxsKSx1PWkuYXBwbHkodGhpcyxsKTtpZihzfHwocz1yPWUucGF0aCgpKSx0KHMsK2EuYXBwbHkodGhpcywobFswXT1jLGwpKSwrby5hcHBseSh0aGlzLGwpLCthLmFwcGx5KHRoaXMsKGxbMF09dSxsKSksK28uYXBwbHkodGhpcyxsKSkscilyZXR1cm4gcz1udWxsLHIrIiJ8fG51bGx9cmV0dXJuIGwuc291cmNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPXQsbCk6bn0sbC50YXJnZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9dCxsKTppfSxsLng9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpyKCt0KSxsKTphfSxsLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpyKCt0KSxsKTpvfSxsLmNvbnRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9bnVsbD09dD9udWxsOnQsbCk6c30sbH1mdW5jdGlvbiBVKHQsZSxyLG4saSl7dC5tb3ZlVG8oZSxyKSx0LmJlemllckN1cnZlVG8oZT0oZStuKS8yLHIsZSxpLG4saSl9ZnVuY3Rpb24gVih0LGUscixuLGkpe3QubW92ZVRvKGUsciksdC5iZXppZXJDdXJ2ZVRvKGUscj0ocitpKS8yLG4scixuLGkpfWZ1bmN0aW9uIEgodCxlLHIsbixpKXt2YXIgYT1SKGUsciksbz1SKGUscj0ocitpKS8yKSxzPVIobixyKSxsPVIobixpKTt0Lm1vdmVUbyhhWzBdLGFbMV0pLHQuYmV6aWVyQ3VydmVUbyhvWzBdLG9bMV0sc1swXSxzWzFdLGxbMF0sbFsxXSl9dmFyIHE9e2RyYXc6ZnVuY3Rpb24odCxlKXt2YXIgcj1NYXRoLnNxcnQoZS91KTt0Lm1vdmVUbyhyLDApLHQuYXJjKDAsMCxyLDAsaCl9fSxHPXtkcmF3OmZ1bmN0aW9uKHQsZSl7dmFyIHI9TWF0aC5zcXJ0KGUvNSkvMjt0Lm1vdmVUbygtMypyLC1yKSx0LmxpbmVUbygtciwtciksdC5saW5lVG8oLXIsLTMqciksdC5saW5lVG8ociwtMypyKSx0LmxpbmVUbyhyLC1yKSx0LmxpbmVUbygzKnIsLXIpLHQubGluZVRvKDMqcixyKSx0LmxpbmVUbyhyLHIpLHQubGluZVRvKHIsMypyKSx0LmxpbmVUbygtciwzKnIpLHQubGluZVRvKC1yLHIpLHQubGluZVRvKC0zKnIsciksdC5jbG9zZVBhdGgoKX19LFk9TWF0aC5zcXJ0KDEvMyksVz0yKlksWD17ZHJhdzpmdW5jdGlvbih0LGUpe3ZhciByPU1hdGguc3FydChlL1cpLG49cipZO3QubW92ZVRvKDAsLXIpLHQubGluZVRvKG4sMCksdC5saW5lVG8oMCxyKSx0LmxpbmVUbygtbiwwKSx0LmNsb3NlUGF0aCgpfX0sWj1NYXRoLnNpbih1LzEwKS9NYXRoLnNpbig3KnUvMTApLEo9TWF0aC5zaW4oaC8xMCkqWixLPS1NYXRoLmNvcyhoLzEwKSpaLFE9e2RyYXc6ZnVuY3Rpb24odCxlKXt2YXIgcj1NYXRoLnNxcnQoLjg5MDgxMzA5MTUyOTI4NTIqZSksbj1KKnIsaT1LKnI7dC5tb3ZlVG8oMCwtciksdC5saW5lVG8obixpKTtmb3IodmFyIGE9MTthPDU7KythKXt2YXIgbz1oKmEvNSxzPU1hdGguY29zKG8pLGw9TWF0aC5zaW4obyk7dC5saW5lVG8obCpyLC1zKnIpLHQubGluZVRvKHMqbi1sKmksbCpuK3MqaSl9dC5jbG9zZVBhdGgoKX19LCQ9e2RyYXc6ZnVuY3Rpb24odCxlKXt2YXIgcj1NYXRoLnNxcnQoZSksbj0tci8yO3QucmVjdChuLG4scixyKX19LHR0PU1hdGguc3FydCgzKSxldD17ZHJhdzpmdW5jdGlvbih0LGUpe3ZhciByPS1NYXRoLnNxcnQoZS8oMyp0dCkpO3QubW92ZVRvKDAsMipyKSx0LmxpbmVUbygtdHQqciwtciksdC5saW5lVG8odHQqciwtciksdC5jbG9zZVBhdGgoKX19LHJ0PS0uNSxudD1NYXRoLnNxcnQoMykvMixpdD0xL01hdGguc3FydCgxMiksYXQ9MyooaXQvMisxKSxvdD17ZHJhdzpmdW5jdGlvbih0LGUpe3ZhciByPU1hdGguc3FydChlL2F0KSxuPXIvMixpPXIqaXQsYT1uLG89cippdCtyLHM9LWEsbD1vO3QubW92ZVRvKG4saSksdC5saW5lVG8oYSxvKSx0LmxpbmVUbyhzLGwpLHQubGluZVRvKHJ0Km4tbnQqaSxudCpuK3J0KmkpLHQubGluZVRvKHJ0KmEtbnQqbyxudCphK3J0Km8pLHQubGluZVRvKHJ0KnMtbnQqbCxudCpzK3J0KmwpLHQubGluZVRvKHJ0Km4rbnQqaSxydCppLW50Km4pLHQubGluZVRvKHJ0KmErbnQqbyxydCpvLW50KmEpLHQubGluZVRvKHJ0KnMrbnQqbCxydCpsLW50KnMpLHQuY2xvc2VQYXRoKCl9fSxzdD1bcSxHLFgsJCxRLGV0LG90XTtmdW5jdGlvbiBsdCgpe31mdW5jdGlvbiBjdCh0LGUscil7dC5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKCgyKnQuX3gwK3QuX3gxKS8zLCgyKnQuX3kwK3QuX3kxKS8zLCh0Ll94MCsyKnQuX3gxKS8zLCh0Ll95MCsyKnQuX3kxKS8zLCh0Ll94MCs0KnQuX3gxK2UpLzYsKHQuX3kwKzQqdC5feTErcikvNil9ZnVuY3Rpb24gdXQodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIGZ0KHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBodCh0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gcHQodCxlKXt0aGlzLl9iYXNpcz1uZXcgdXQodCksdGhpcy5fYmV0YT1lfXV0LnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3kwPXRoaXMuX3kxPU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDM6Y3QodGhpcyx0aGlzLl94MSx0aGlzLl95MSk7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gxLHRoaXMuX3kxKX0odGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0LGUpOnRoaXMuX2NvbnRleHQubW92ZVRvKHQsZSk7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsdGhpcy5fY29udGV4dC5saW5lVG8oKDUqdGhpcy5feDArdGhpcy5feDEpLzYsKDUqdGhpcy5feTArdGhpcy5feTEpLzYpO2RlZmF1bHQ6Y3QodGhpcyx0LGUpfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9ZX19LGZ0LnByb3RvdHlwZT17YXJlYVN0YXJ0Omx0LGFyZWFFbmQ6bHQsbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feDI9dGhpcy5feDM9dGhpcy5feDQ9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5feTI9dGhpcy5feTM9dGhpcy5feTQ9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94Mix0aGlzLl95MiksdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTticmVhaztjYXNlIDI6dGhpcy5fY29udGV4dC5tb3ZlVG8oKHRoaXMuX3gyKzIqdGhpcy5feDMpLzMsKHRoaXMuX3kyKzIqdGhpcy5feTMpLzMpLHRoaXMuX2NvbnRleHQubGluZVRvKCh0aGlzLl94MysyKnRoaXMuX3gyKS8zLCh0aGlzLl95MysyKnRoaXMuX3kyKS8zKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2UgMzp0aGlzLnBvaW50KHRoaXMuX3gyLHRoaXMuX3kyKSx0aGlzLnBvaW50KHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLnBvaW50KHRoaXMuX3g0LHRoaXMuX3k0KX19LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5feDI9dCx0aGlzLl95Mj1lO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yLHRoaXMuX3gzPXQsdGhpcy5feTM9ZTticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9Myx0aGlzLl94ND10LHRoaXMuX3k0PWUsdGhpcy5fY29udGV4dC5tb3ZlVG8oKHRoaXMuX3gwKzQqdGhpcy5feDErdCkvNiwodGhpcy5feTArNCp0aGlzLl95MStlKS82KTticmVhaztkZWZhdWx0OmN0KHRoaXMsdCxlKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPWV9fSxodC5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl95MD10aGlzLl95MT1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpeyh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMz09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxlKXtzd2l0Y2godD0rdCxlPStlLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9Mzt2YXIgcj0odGhpcy5feDArNCp0aGlzLl94MSt0KS82LG49KHRoaXMuX3kwKzQqdGhpcy5feTErZSkvNjt0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHIsbik6dGhpcy5fY29udGV4dC5tb3ZlVG8ocixuKTticmVhaztjYXNlIDM6dGhpcy5fcG9pbnQ9NDtkZWZhdWx0OmN0KHRoaXMsdCxlKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPWV9fSxwdC5wcm90b3R5cGU9e2xpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3g9W10sdGhpcy5feT1bXSx0aGlzLl9iYXNpcy5saW5lU3RhcnQoKX0sbGluZUVuZDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX3gsZT10aGlzLl95LHI9dC5sZW5ndGgtMTtpZihyPjApZm9yKHZhciBuLGk9dFswXSxhPWVbMF0sbz10W3JdLWkscz1lW3JdLWEsbD0tMTsrK2w8PXI7KW49bC9yLHRoaXMuX2Jhc2lzLnBvaW50KHRoaXMuX2JldGEqdFtsXSsoMS10aGlzLl9iZXRhKSooaStuKm8pLHRoaXMuX2JldGEqZVtsXSsoMS10aGlzLl9iZXRhKSooYStuKnMpKTt0aGlzLl94PXRoaXMuX3k9bnVsbCx0aGlzLl9iYXNpcy5saW5lRW5kKCl9LHBvaW50OmZ1bmN0aW9uKHQsZSl7dGhpcy5feC5wdXNoKCt0KSx0aGlzLl95LnB1c2goK2UpfX07dmFyIGR0PWZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gcih0KXtyZXR1cm4gMT09PWU/bmV3IHV0KHQpOm5ldyBwdCh0LGUpfXJldHVybiByLmJldGE9ZnVuY3Rpb24oZSl7cmV0dXJuIHQoK2UpfSxyfSguODUpO2Z1bmN0aW9uIG10KHQsZSxyKXt0Ll9jb250ZXh0LmJlemllckN1cnZlVG8odC5feDErdC5fayoodC5feDItdC5feDApLHQuX3kxK3QuX2sqKHQuX3kyLXQuX3kwKSx0Ll94Mit0Ll9rKih0Ll94MS1lKSx0Ll95Mit0Ll9rKih0Ll95MS1yKSx0Ll94Mix0Ll95Mil9ZnVuY3Rpb24gZ3QodCxlKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5faz0oMS1lKS82fWd0LnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDI6dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDIsdGhpcy5feTIpO2JyZWFrO2Nhc2UgMzptdCh0aGlzLHRoaXMuX3gxLHRoaXMuX3kxKX0odGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0LGUpOnRoaXMuX2NvbnRleHQubW92ZVRvKHQsZSk7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTIsdGhpcy5feDE9dCx0aGlzLl95MT1lO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zO2RlZmF1bHQ6bXQodGhpcyx0LGUpfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9ZX19O3ZhciB2dD1mdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIHIodCl7cmV0dXJuIG5ldyBndCh0LGUpfXJldHVybiByLnRlbnNpb249ZnVuY3Rpb24oZSl7cmV0dXJuIHQoK2UpfSxyfSgwKTtmdW5jdGlvbiB5dCh0LGUpe3RoaXMuX2NvbnRleHQ9dCx0aGlzLl9rPSgxLWUpLzZ9eXQucHJvdG90eXBlPXthcmVhU3RhcnQ6bHQsYXJlYUVuZDpsdCxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl94Mz10aGlzLl94ND10aGlzLl94NT10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj10aGlzLl95Mz10aGlzLl95ND10aGlzLl95NT1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAxOnRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTticmVhaztjYXNlIDM6dGhpcy5wb2ludCh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5wb2ludCh0aGlzLl94NCx0aGlzLl95NCksdGhpcy5wb2ludCh0aGlzLl94NSx0aGlzLl95NSl9fSxwb2ludDpmdW5jdGlvbih0LGUpe3N3aXRjaCh0PSt0LGU9K2UsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX3gzPXQsdGhpcy5feTM9ZTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9Mix0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94ND10LHRoaXMuX3k0PWUpO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX3g1PXQsdGhpcy5feTU9ZTticmVhaztkZWZhdWx0Om10KHRoaXMsdCxlKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPWV9fTt2YXIgeHQ9ZnVuY3Rpb24gdChlKXtmdW5jdGlvbiByKHQpe3JldHVybiBuZXcgeXQodCxlKX1yZXR1cm4gci50ZW5zaW9uPWZ1bmN0aW9uKGUpe3JldHVybiB0KCtlKX0scn0oMCk7ZnVuY3Rpb24gYnQodCxlKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5faz0oMS1lKS82fWJ0LnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYzPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LGUpe3N3aXRjaCh0PSt0LGU9K2UsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDIsdGhpcy5feTIpOnRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6dGhpcy5fcG9pbnQ9NDtkZWZhdWx0Om10KHRoaXMsdCxlKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPWV9fTt2YXIgX3Q9ZnVuY3Rpb24gdChlKXtmdW5jdGlvbiByKHQpe3JldHVybiBuZXcgYnQodCxlKX1yZXR1cm4gci50ZW5zaW9uPWZ1bmN0aW9uKGUpe3JldHVybiB0KCtlKX0scn0oMCk7ZnVuY3Rpb24gd3QodCxlLHIpe3ZhciBuPXQuX3gxLGk9dC5feTEsYT10Ll94MixvPXQuX3kyO2lmKHQuX2wwMV9hPjFlLTEyKXt2YXIgcz0yKnQuX2wwMV8yYSszKnQuX2wwMV9hKnQuX2wxMl9hK3QuX2wxMl8yYSxsPTMqdC5fbDAxX2EqKHQuX2wwMV9hK3QuX2wxMl9hKTtuPShuKnMtdC5feDAqdC5fbDEyXzJhK3QuX3gyKnQuX2wwMV8yYSkvbCxpPShpKnMtdC5feTAqdC5fbDEyXzJhK3QuX3kyKnQuX2wwMV8yYSkvbH1pZih0Ll9sMjNfYT4xZS0xMil7dmFyIGM9Mip0Ll9sMjNfMmErMyp0Ll9sMjNfYSp0Ll9sMTJfYSt0Ll9sMTJfMmEsdT0zKnQuX2wyM19hKih0Ll9sMjNfYSt0Ll9sMTJfYSk7YT0oYSpjK3QuX3gxKnQuX2wyM18yYS1lKnQuX2wxMl8yYSkvdSxvPShvKmMrdC5feTEqdC5fbDIzXzJhLXIqdC5fbDEyXzJhKS91fXQuX2NvbnRleHQuYmV6aWVyQ3VydmVUbyhuLGksYSxvLHQuX3gyLHQuX3kyKX1mdW5jdGlvbiBUdCh0LGUpe3RoaXMuX2NvbnRleHQ9dCx0aGlzLl9hbHBoYT1lfVR0LnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPU5hTix0aGlzLl9sMDFfYT10aGlzLl9sMTJfYT10aGlzLl9sMjNfYT10aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYT10aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDI6dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDIsdGhpcy5feTIpO2JyZWFrO2Nhc2UgMzp0aGlzLnBvaW50KHRoaXMuX3gyLHRoaXMuX3kyKX0odGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsZSl7aWYodD0rdCxlPStlLHRoaXMuX3BvaW50KXt2YXIgcj10aGlzLl94Mi10LG49dGhpcy5feTItZTt0aGlzLl9sMjNfYT1NYXRoLnNxcnQodGhpcy5fbDIzXzJhPU1hdGgucG93KHIqcituKm4sdGhpcy5fYWxwaGEpKX1zd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxlKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LGUpO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zO2RlZmF1bHQ6d3QodGhpcyx0LGUpfXRoaXMuX2wwMV9hPXRoaXMuX2wxMl9hLHRoaXMuX2wxMl9hPXRoaXMuX2wyM19hLHRoaXMuX2wwMV8yYT10aGlzLl9sMTJfMmEsdGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYSx0aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPWV9fTt2YXIga3Q9ZnVuY3Rpb24gdChlKXtmdW5jdGlvbiByKHQpe3JldHVybiBlP25ldyBUdCh0LGUpOm5ldyBndCh0LDApfXJldHVybiByLmFscGhhPWZ1bmN0aW9uKGUpe3JldHVybiB0KCtlKX0scn0oLjUpO2Z1bmN0aW9uIEF0KHQsZSl7dGhpcy5fY29udGV4dD10LHRoaXMuX2FscGhhPWV9QXQucHJvdG90eXBlPXthcmVhU3RhcnQ6bHQsYXJlYUVuZDpsdCxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl94Mz10aGlzLl94ND10aGlzLl94NT10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj10aGlzLl95Mz10aGlzLl95ND10aGlzLl95NT1OYU4sdGhpcy5fbDAxX2E9dGhpcy5fbDEyX2E9dGhpcy5fbDIzX2E9dGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmE9dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAxOnRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTticmVhaztjYXNlIDM6dGhpcy5wb2ludCh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5wb2ludCh0aGlzLl94NCx0aGlzLl95NCksdGhpcy5wb2ludCh0aGlzLl94NSx0aGlzLl95NSl9fSxwb2ludDpmdW5jdGlvbih0LGUpe2lmKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7dmFyIHI9dGhpcy5feDItdCxuPXRoaXMuX3kyLWU7dGhpcy5fbDIzX2E9TWF0aC5zcXJ0KHRoaXMuX2wyM18yYT1NYXRoLnBvdyhyKnIrbipuLHRoaXMuX2FscGhhKSl9c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl94Mz10LHRoaXMuX3kzPWU7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTIsdGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDQ9dCx0aGlzLl95ND1lKTticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9Myx0aGlzLl94NT10LHRoaXMuX3k1PWU7YnJlYWs7ZGVmYXVsdDp3dCh0aGlzLHQsZSl9dGhpcy5fbDAxX2E9dGhpcy5fbDEyX2EsdGhpcy5fbDEyX2E9dGhpcy5fbDIzX2EsdGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYSx0aGlzLl9sMTJfMmE9dGhpcy5fbDIzXzJhLHRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9ZX19O3ZhciBNdD1mdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIHIodCl7cmV0dXJuIGU/bmV3IEF0KHQsZSk6bmV3IHl0KHQsMCl9cmV0dXJuIHIuYWxwaGE9ZnVuY3Rpb24oZSl7cmV0dXJuIHQoK2UpfSxyfSguNSk7ZnVuY3Rpb24gU3QodCxlKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5fYWxwaGE9ZX1TdC5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fbDAxX2E9dGhpcy5fbDEyX2E9dGhpcy5fbDIzX2E9dGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmE9dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpeyh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMz09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxlKXtpZih0PSt0LGU9K2UsdGhpcy5fcG9pbnQpe3ZhciByPXRoaXMuX3gyLXQsbj10aGlzLl95Mi1lO3RoaXMuX2wyM19hPU1hdGguc3FydCh0aGlzLl9sMjNfMmE9TWF0aC5wb3cocipyK24qbix0aGlzLl9hbHBoYSkpfXN3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94Mix0aGlzLl95Mik6dGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDIsdGhpcy5feTIpO2JyZWFrO2Nhc2UgMzp0aGlzLl9wb2ludD00O2RlZmF1bHQ6d3QodGhpcyx0LGUpfXRoaXMuX2wwMV9hPXRoaXMuX2wxMl9hLHRoaXMuX2wxMl9hPXRoaXMuX2wyM19hLHRoaXMuX2wwMV8yYT10aGlzLl9sMTJfMmEsdGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYSx0aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPWV9fTt2YXIgRXQ9ZnVuY3Rpb24gdChlKXtmdW5jdGlvbiByKHQpe3JldHVybiBlP25ldyBTdCh0LGUpOm5ldyBidCh0LDApfXJldHVybiByLmFscGhhPWZ1bmN0aW9uKGUpe3JldHVybiB0KCtlKX0scn0oLjUpO2Z1bmN0aW9uIEx0KHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBDdCh0KXtyZXR1cm4gdDwwPy0xOjF9ZnVuY3Rpb24gUHQodCxlLHIpe3ZhciBuPXQuX3gxLXQuX3gwLGk9ZS10Ll94MSxhPSh0Ll95MS10Ll95MCkvKG58fGk8MCYmLTApLG89KHItdC5feTEpLyhpfHxuPDAmJi0wKSxzPShhKmkrbypuKS8obitpKTtyZXR1cm4oQ3QoYSkrQ3QobykpKk1hdGgubWluKE1hdGguYWJzKGEpLE1hdGguYWJzKG8pLC41Kk1hdGguYWJzKHMpKXx8MH1mdW5jdGlvbiBJdCh0LGUpe3ZhciByPXQuX3gxLXQuX3gwO3JldHVybiByPygzKih0Ll95MS10Ll95MCkvci1lKS8yOmV9ZnVuY3Rpb24gT3QodCxlLHIpe3ZhciBuPXQuX3gwLGk9dC5feTAsYT10Ll94MSxvPXQuX3kxLHM9KGEtbikvMzt0Ll9jb250ZXh0LmJlemllckN1cnZlVG8obitzLGkrcyplLGEtcyxvLXMqcixhLG8pfWZ1bmN0aW9uIHp0KHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBEdCh0KXt0aGlzLl9jb250ZXh0PW5ldyBSdCh0KX1mdW5jdGlvbiBSdCh0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gRnQodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIEJ0KHQpe3ZhciBlLHIsbj10Lmxlbmd0aC0xLGk9bmV3IEFycmF5KG4pLGE9bmV3IEFycmF5KG4pLG89bmV3IEFycmF5KG4pO2ZvcihpWzBdPTAsYVswXT0yLG9bMF09dFswXSsyKnRbMV0sZT0xO2U8bi0xOysrZSlpW2VdPTEsYVtlXT00LG9bZV09NCp0W2VdKzIqdFtlKzFdO2ZvcihpW24tMV09MixhW24tMV09NyxvW24tMV09OCp0W24tMV0rdFtuXSxlPTE7ZTxuOysrZSlyPWlbZV0vYVtlLTFdLGFbZV0tPXIsb1tlXS09cipvW2UtMV07Zm9yKGlbbi0xXT1vW24tMV0vYVtuLTFdLGU9bi0yO2U+PTA7LS1lKWlbZV09KG9bZV0taVtlKzFdKS9hW2VdO2ZvcihhW24tMV09KHRbbl0raVtuLTFdKS8yLGU9MDtlPG4tMTsrK2UpYVtlXT0yKnRbZSsxXS1pW2UrMV07cmV0dXJuW2ksYV19ZnVuY3Rpb24gTnQodCxlKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5fdD1lfWZ1bmN0aW9uIGp0KHQsZSl7aWYoKGk9dC5sZW5ndGgpPjEpZm9yKHZhciByLG4saSxhPTEsbz10W2VbMF1dLHM9by5sZW5ndGg7YTxpOysrYSlmb3Iobj1vLG89dFtlW2FdXSxyPTA7cjxzOysrcilvW3JdWzFdKz1vW3JdWzBdPWlzTmFOKG5bcl1bMV0pP25bcl1bMF06bltyXVsxXX1mdW5jdGlvbiBVdCh0KXtmb3IodmFyIGU9dC5sZW5ndGgscj1uZXcgQXJyYXkoZSk7LS1lPj0wOylyW2VdPWU7cmV0dXJuIHJ9ZnVuY3Rpb24gVnQodCxlKXtyZXR1cm4gdFtlXX1mdW5jdGlvbiBIdCh0KXt2YXIgZT10Lm1hcChxdCk7cmV0dXJuIFV0KHQpLnNvcnQoKGZ1bmN0aW9uKHQscil7cmV0dXJuIGVbdF0tZVtyXX0pKX1mdW5jdGlvbiBxdCh0KXtmb3IodmFyIGUscj0tMSxuPTAsaT10Lmxlbmd0aCxhPS0xLzA7KytyPGk7KShlPSt0W3JdWzFdKT5hJiYoYT1lLG49cik7cmV0dXJuIG59ZnVuY3Rpb24gR3QodCl7dmFyIGU9dC5tYXAoWXQpO3JldHVybiBVdCh0KS5zb3J0KChmdW5jdGlvbih0LHIpe3JldHVybiBlW3RdLWVbcl19KSl9ZnVuY3Rpb24gWXQodCl7Zm9yKHZhciBlLHI9MCxuPS0xLGk9dC5sZW5ndGg7KytuPGk7KShlPSt0W25dWzFdKSYmKHIrPWUpO3JldHVybiByfUx0LnByb3RvdHlwZT17YXJlYVN0YXJ0Omx0LGFyZWFFbmQ6bHQsbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3RoaXMuX3BvaW50JiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpfSxwb2ludDpmdW5jdGlvbih0LGUpe3Q9K3QsZT0rZSx0aGlzLl9wb2ludD90aGlzLl9jb250ZXh0LmxpbmVUbyh0LGUpOih0aGlzLl9wb2ludD0xLHRoaXMuX2NvbnRleHQubW92ZVRvKHQsZSkpfX0senQucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5fdDA9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94MSx0aGlzLl95MSk7YnJlYWs7Y2FzZSAzOk90KHRoaXMsdGhpcy5fdDAsSXQodGhpcyx0aGlzLl90MCkpfSh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxlKXt2YXIgcj1OYU47aWYoZT0rZSwodD0rdCkhPT10aGlzLl94MXx8ZSE9PXRoaXMuX3kxKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxlKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LGUpO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLE90KHRoaXMsSXQodGhpcyxyPVB0KHRoaXMsdCxlKSkscik7YnJlYWs7ZGVmYXVsdDpPdCh0aGlzLHRoaXMuX3QwLHI9UHQodGhpcyx0LGUpKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPWUsdGhpcy5fdDA9cn19fSwoRHQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoenQucHJvdG90eXBlKSkucG9pbnQ9ZnVuY3Rpb24odCxlKXt6dC5wcm90b3R5cGUucG9pbnQuY2FsbCh0aGlzLGUsdCl9LFJ0LnByb3RvdHlwZT17bW92ZVRvOmZ1bmN0aW9uKHQsZSl7dGhpcy5fY29udGV4dC5tb3ZlVG8oZSx0KX0sY2xvc2VQYXRoOmZ1bmN0aW9uKCl7dGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKX0sbGluZVRvOmZ1bmN0aW9uKHQsZSl7dGhpcy5fY29udGV4dC5saW5lVG8oZSx0KX0sYmV6aWVyQ3VydmVUbzpmdW5jdGlvbih0LGUscixuLGksYSl7dGhpcy5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKGUsdCxuLHIsYSxpKX19LEZ0LnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3g9W10sdGhpcy5feT1bXX0sbGluZUVuZDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX3gsZT10aGlzLl95LHI9dC5sZW5ndGg7aWYocilpZih0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHRbMF0sZVswXSk6dGhpcy5fY29udGV4dC5tb3ZlVG8odFswXSxlWzBdKSwyPT09cil0aGlzLl9jb250ZXh0LmxpbmVUbyh0WzFdLGVbMV0pO2Vsc2UgZm9yKHZhciBuPUJ0KHQpLGk9QnQoZSksYT0wLG89MTtvPHI7KythLCsrbyl0aGlzLl9jb250ZXh0LmJlemllckN1cnZlVG8oblswXVthXSxpWzBdW2FdLG5bMV1bYV0saVsxXVthXSx0W29dLGVbb10pOyh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXIpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lLHRoaXMuX3g9dGhpcy5feT1udWxsfSxwb2ludDpmdW5jdGlvbih0LGUpe3RoaXMuX3gucHVzaCgrdCksdGhpcy5feS5wdXNoKCtlKX19LE50LnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3g9dGhpcy5feT1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpezA8dGhpcy5fdCYmdGhpcy5fdDwxJiYyPT09dGhpcy5fcG9pbnQmJnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gsdGhpcy5feSksKHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU+PTAmJih0aGlzLl90PTEtdGhpcy5fdCx0aGlzLl9saW5lPTEtdGhpcy5fbGluZSl9LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0LGUpOnRoaXMuX2NvbnRleHQubW92ZVRvKHQsZSk7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7ZGVmYXVsdDppZih0aGlzLl90PD0wKXRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gsZSksdGhpcy5fY29udGV4dC5saW5lVG8odCxlKTtlbHNle3ZhciByPXRoaXMuX3gqKDEtdGhpcy5fdCkrdCp0aGlzLl90O3RoaXMuX2NvbnRleHQubGluZVRvKHIsdGhpcy5feSksdGhpcy5fY29udGV4dC5saW5lVG8ocixlKX19dGhpcy5feD10LHRoaXMuX3k9ZX19LHQuYXJjPWZ1bmN0aW9uKCl7dmFyIHQ9bSxvPWcsdz1yKDApLFQ9bnVsbCxrPXYsQT15LE09eCxTPW51bGw7ZnVuY3Rpb24gRSgpe3ZhciByLG0sZz0rdC5hcHBseSh0aGlzLGFyZ3VtZW50cyksdj0rby5hcHBseSh0aGlzLGFyZ3VtZW50cykseT1rLmFwcGx5KHRoaXMsYXJndW1lbnRzKS1mLHg9QS5hcHBseSh0aGlzLGFyZ3VtZW50cyktZixFPW4oeC15KSxMPXg+eTtpZihTfHwoUz1yPWUucGF0aCgpKSx2PGcmJihtPXYsdj1nLGc9bSksdj4xZS0xMilpZihFPmgtMWUtMTIpUy5tb3ZlVG8odiphKHkpLHYqbCh5KSksUy5hcmMoMCwwLHYseSx4LCFMKSxnPjFlLTEyJiYoUy5tb3ZlVG8oZyphKHgpLGcqbCh4KSksUy5hcmMoMCwwLGcseCx5LEwpKTtlbHNle3ZhciBDLFAsST15LE89eCx6PXksRD14LFI9RSxGPUUsQj1NLmFwcGx5KHRoaXMsYXJndW1lbnRzKS8yLE49Qj4xZS0xMiYmKFQ/K1QuYXBwbHkodGhpcyxhcmd1bWVudHMpOmMoZypnK3YqdikpLGo9cyhuKHYtZykvMiwrdy5hcHBseSh0aGlzLGFyZ3VtZW50cykpLFU9aixWPWo7aWYoTj4xZS0xMil7dmFyIEg9ZChOL2cqbChCKSkscT1kKE4vdipsKEIpKTsoUi09MipIKT4xZS0xMj8oeis9SCo9TD8xOi0xLEQtPUgpOihSPTAsej1EPSh5K3gpLzIpLChGLT0yKnEpPjFlLTEyPyhJKz1xKj1MPzE6LTEsTy09cSk6KEY9MCxJPU89KHkreCkvMil9dmFyIEc9diphKEkpLFk9dipsKEkpLFc9ZyphKEQpLFg9ZypsKEQpO2lmKGo+MWUtMTIpe3ZhciBaLEo9diphKE8pLEs9dipsKE8pLFE9ZyphKHopLCQ9ZypsKHopO2lmKEU8dSYmKFo9YihHLFksUSwkLEosSyxXLFgpKSl7dmFyIHR0PUctWlswXSxldD1ZLVpbMV0scnQ9Si1aWzBdLG50PUstWlsxXSxpdD0xL2wocCgodHQqcnQrZXQqbnQpLyhjKHR0KnR0K2V0KmV0KSpjKHJ0KnJ0K250Km50KSkpLzIpLGF0PWMoWlswXSpaWzBdK1pbMV0qWlsxXSk7VT1zKGosKGctYXQpLyhpdC0xKSksVj1zKGosKHYtYXQpLyhpdCsxKSl9fUY+MWUtMTI/Vj4xZS0xMj8oQz1fKFEsJCxHLFksdixWLEwpLFA9XyhKLEssVyxYLHYsVixMKSxTLm1vdmVUbyhDLmN4K0MueDAxLEMuY3krQy55MDEpLFY8aj9TLmFyYyhDLmN4LEMuY3ksVixpKEMueTAxLEMueDAxKSxpKFAueTAxLFAueDAxKSwhTCk6KFMuYXJjKEMuY3gsQy5jeSxWLGkoQy55MDEsQy54MDEpLGkoQy55MTEsQy54MTEpLCFMKSxTLmFyYygwLDAsdixpKEMuY3krQy55MTEsQy5jeCtDLngxMSksaShQLmN5K1AueTExLFAuY3grUC54MTEpLCFMKSxTLmFyYyhQLmN4LFAuY3ksVixpKFAueTExLFAueDExKSxpKFAueTAxLFAueDAxKSwhTCkpKTooUy5tb3ZlVG8oRyxZKSxTLmFyYygwLDAsdixJLE8sIUwpKTpTLm1vdmVUbyhHLFkpLGc+MWUtMTImJlI+MWUtMTI/VT4xZS0xMj8oQz1fKFcsWCxKLEssZywtVSxMKSxQPV8oRyxZLFEsJCxnLC1VLEwpLFMubGluZVRvKEMuY3grQy54MDEsQy5jeStDLnkwMSksVTxqP1MuYXJjKEMuY3gsQy5jeSxVLGkoQy55MDEsQy54MDEpLGkoUC55MDEsUC54MDEpLCFMKTooUy5hcmMoQy5jeCxDLmN5LFUsaShDLnkwMSxDLngwMSksaShDLnkxMSxDLngxMSksIUwpLFMuYXJjKDAsMCxnLGkoQy5jeStDLnkxMSxDLmN4K0MueDExKSxpKFAuY3krUC55MTEsUC5jeCtQLngxMSksTCksUy5hcmMoUC5jeCxQLmN5LFUsaShQLnkxMSxQLngxMSksaShQLnkwMSxQLngwMSksIUwpKSk6Uy5hcmMoMCwwLGcsRCx6LEwpOlMubGluZVRvKFcsWCl9ZWxzZSBTLm1vdmVUbygwLDApO2lmKFMuY2xvc2VQYXRoKCkscilyZXR1cm4gUz1udWxsLHIrIiJ8fG51bGx9cmV0dXJuIEUuY2VudHJvaWQ9ZnVuY3Rpb24oKXt2YXIgZT0oK3QuYXBwbHkodGhpcyxhcmd1bWVudHMpKyArby5hcHBseSh0aGlzLGFyZ3VtZW50cykpLzIscj0oK2suYXBwbHkodGhpcyxhcmd1bWVudHMpKyArQS5hcHBseSh0aGlzLGFyZ3VtZW50cykpLzItdS8yO3JldHVyblthKHIpKmUsbChyKSplXX0sRS5pbm5lclJhZGl1cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOnIoK2UpLEUpOnR9LEUub3V0ZXJSYWRpdXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpyKCt0KSxFKTpvfSxFLmNvcm5lclJhZGl1cz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odz0iZnVuY3Rpb24iPT10eXBlb2YgdD90OnIoK3QpLEUpOnd9LEUucGFkUmFkaXVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhUPW51bGw9PXQ/bnVsbDoiZnVuY3Rpb24iPT10eXBlb2YgdD90OnIoK3QpLEUpOlR9LEUuc3RhcnRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaz0iZnVuY3Rpb24iPT10eXBlb2YgdD90OnIoK3QpLEUpOmt9LEUuZW5kQW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KEE9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpyKCt0KSxFKTpBfSxFLnBhZEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhNPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cigrdCksRSk6TX0sRS5jb250ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhTPW51bGw9PXQ/bnVsbDp0LEUpOlN9LEV9LHQuYXJlYT1TLHQuYXJlYVJhZGlhbD1ELHQuY3VydmVCYXNpcz1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHV0KHQpfSx0LmN1cnZlQmFzaXNDbG9zZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBmdCh0KX0sdC5jdXJ2ZUJhc2lzT3Blbj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGh0KHQpfSx0LmN1cnZlQnVuZGxlPWR0LHQuY3VydmVDYXJkaW5hbD12dCx0LmN1cnZlQ2FyZGluYWxDbG9zZWQ9eHQsdC5jdXJ2ZUNhcmRpbmFsT3Blbj1fdCx0LmN1cnZlQ2F0bXVsbFJvbT1rdCx0LmN1cnZlQ2F0bXVsbFJvbUNsb3NlZD1NdCx0LmN1cnZlQ2F0bXVsbFJvbU9wZW49RXQsdC5jdXJ2ZUxpbmVhcj1ULHQuY3VydmVMaW5lYXJDbG9zZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBMdCh0KX0sdC5jdXJ2ZU1vbm90b25lWD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHp0KHQpfSx0LmN1cnZlTW9ub3RvbmVZPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgRHQodCl9LHQuY3VydmVOYXR1cmFsPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgRnQodCl9LHQuY3VydmVTdGVwPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgTnQodCwuNSl9LHQuY3VydmVTdGVwQWZ0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBOdCh0LDEpfSx0LmN1cnZlU3RlcEJlZm9yZT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IE50KHQsMCl9LHQubGluZT1NLHQubGluZVJhZGlhbD16LHQubGlua0hvcml6b250YWw9ZnVuY3Rpb24oKXtyZXR1cm4gaihVKX0sdC5saW5rUmFkaWFsPWZ1bmN0aW9uKCl7dmFyIHQ9aihIKTtyZXR1cm4gdC5hbmdsZT10LngsZGVsZXRlIHQueCx0LnJhZGl1cz10LnksZGVsZXRlIHQueSx0fSx0LmxpbmtWZXJ0aWNhbD1mdW5jdGlvbigpe3JldHVybiBqKFYpfSx0LnBpZT1mdW5jdGlvbigpe3ZhciB0PUwsZT1FLG49bnVsbCxpPXIoMCksYT1yKGgpLG89cigwKTtmdW5jdGlvbiBzKHIpe3ZhciBzLGwsYyx1LGYscD1yLmxlbmd0aCxkPTAsbT1uZXcgQXJyYXkocCksZz1uZXcgQXJyYXkocCksdj0raS5hcHBseSh0aGlzLGFyZ3VtZW50cykseT1NYXRoLm1pbihoLE1hdGgubWF4KC1oLGEuYXBwbHkodGhpcyxhcmd1bWVudHMpLXYpKSx4PU1hdGgubWluKE1hdGguYWJzKHkpL3Asby5hcHBseSh0aGlzLGFyZ3VtZW50cykpLGI9eCooeTwwPy0xOjEpO2ZvcihzPTA7czxwOysrcykoZj1nW21bc109c109K3QocltzXSxzLHIpKT4wJiYoZCs9Zik7Zm9yKG51bGwhPWU/bS5zb3J0KChmdW5jdGlvbih0LHIpe3JldHVybiBlKGdbdF0sZ1tyXSl9KSk6bnVsbCE9biYmbS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiBuKHJbdF0scltlXSl9KSkscz0wLGM9ZD8oeS1wKmIpL2Q6MDtzPHA7KytzLHY9dSlsPW1bc10sdT12KygoZj1nW2xdKT4wP2YqYzowKStiLGdbbF09e2RhdGE6cltsXSxpbmRleDpzLHZhbHVlOmYsc3RhcnRBbmdsZTp2LGVuZEFuZ2xlOnUscGFkQW5nbGU6eH07cmV0dXJuIGd9cmV0dXJuIHMudmFsdWU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpyKCtlKSxzKTp0fSxzLnNvcnRWYWx1ZXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCxuPW51bGwscyk6ZX0scy5zb3J0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPXQsZT1udWxsLHMpOm59LHMuc3RhcnRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OnIoK3QpLHMpOml9LHMuZW5kQW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpyKCt0KSxzKTphfSxzLnBhZEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cigrdCkscyk6b30sc30sdC5wb2ludFJhZGlhbD1SLHQucmFkaWFsQXJlYT1ELHQucmFkaWFsTGluZT16LHQuc3RhY2s9ZnVuY3Rpb24oKXt2YXIgdD1yKFtdKSxlPVV0LG49anQsaT1WdDtmdW5jdGlvbiBhKHIpe3ZhciBhLG8scz10LmFwcGx5KHRoaXMsYXJndW1lbnRzKSxsPXIubGVuZ3RoLGM9cy5sZW5ndGgsdT1uZXcgQXJyYXkoYyk7Zm9yKGE9MDthPGM7KythKXtmb3IodmFyIGYsaD1zW2FdLHA9dVthXT1uZXcgQXJyYXkobCksZD0wO2Q8bDsrK2QpcFtkXT1mPVswLCtpKHJbZF0saCxkLHIpXSxmLmRhdGE9cltkXTtwLmtleT1ofWZvcihhPTAsbz1lKHUpO2E8YzsrK2EpdVtvW2FdXS5pbmRleD1hO3JldHVybiBuKHUsbyksdX1yZXR1cm4gYS5rZXlzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6cihGLmNhbGwoZSkpLGEpOnR9LGEudmFsdWU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpyKCt0KSxhKTppfSxhLm9yZGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPW51bGw9PXQ/VXQ6ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpyKEYuY2FsbCh0KSksYSk6ZX0sYS5vZmZzZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49bnVsbD09dD9qdDp0LGEpOm59LGF9LHQuc3RhY2tPZmZzZXREaXZlcmdpbmc9ZnVuY3Rpb24odCxlKXtpZigocz10Lmxlbmd0aCk+MClmb3IodmFyIHIsbixpLGEsbyxzLGw9MCxjPXRbZVswXV0ubGVuZ3RoO2w8YzsrK2wpZm9yKGE9bz0wLHI9MDtyPHM7KytyKShpPShuPXRbZVtyXV1bbF0pWzFdLW5bMF0pPjA/KG5bMF09YSxuWzFdPWErPWkpOmk8MD8oblsxXT1vLG5bMF09bys9aSk6KG5bMF09MCxuWzFdPWkpfSx0LnN0YWNrT2Zmc2V0RXhwYW5kPWZ1bmN0aW9uKHQsZSl7aWYoKG49dC5sZW5ndGgpPjApe2Zvcih2YXIgcixuLGksYT0wLG89dFswXS5sZW5ndGg7YTxvOysrYSl7Zm9yKGk9cj0wO3I8bjsrK3IpaSs9dFtyXVthXVsxXXx8MDtpZihpKWZvcihyPTA7cjxuOysrcil0W3JdW2FdWzFdLz1pfWp0KHQsZSl9fSx0LnN0YWNrT2Zmc2V0Tm9uZT1qdCx0LnN0YWNrT2Zmc2V0U2lsaG91ZXR0ZT1mdW5jdGlvbih0LGUpe2lmKChyPXQubGVuZ3RoKT4wKXtmb3IodmFyIHIsbj0wLGk9dFtlWzBdXSxhPWkubGVuZ3RoO248YTsrK24pe2Zvcih2YXIgbz0wLHM9MDtvPHI7KytvKXMrPXRbb11bbl1bMV18fDA7aVtuXVsxXSs9aVtuXVswXT0tcy8yfWp0KHQsZSl9fSx0LnN0YWNrT2Zmc2V0V2lnZ2xlPWZ1bmN0aW9uKHQsZSl7aWYoKGk9dC5sZW5ndGgpPjAmJihuPShyPXRbZVswXV0pLmxlbmd0aCk+MCl7Zm9yKHZhciByLG4saSxhPTAsbz0xO288bjsrK28pe2Zvcih2YXIgcz0wLGw9MCxjPTA7czxpOysrcyl7Zm9yKHZhciB1PXRbZVtzXV0sZj11W29dWzFdfHwwLGg9KGYtKHVbby0xXVsxXXx8MCkpLzIscD0wO3A8czsrK3Ape3ZhciBkPXRbZVtwXV07aCs9KGRbb11bMV18fDApLShkW28tMV1bMV18fDApfWwrPWYsYys9aCpmfXJbby0xXVsxXSs9cltvLTFdWzBdPWEsbCYmKGEtPWMvbCl9cltvLTFdWzFdKz1yW28tMV1bMF09YSxqdCh0LGUpfX0sdC5zdGFja09yZGVyQXBwZWFyYW5jZT1IdCx0LnN0YWNrT3JkZXJBc2NlbmRpbmc9R3QsdC5zdGFja09yZGVyRGVzY2VuZGluZz1mdW5jdGlvbih0KXtyZXR1cm4gR3QodCkucmV2ZXJzZSgpfSx0LnN0YWNrT3JkZXJJbnNpZGVPdXQ9ZnVuY3Rpb24odCl7dmFyIGUscixuPXQubGVuZ3RoLGk9dC5tYXAoWXQpLGE9SHQodCksbz0wLHM9MCxsPVtdLGM9W107Zm9yKGU9MDtlPG47KytlKXI9YVtlXSxvPHM/KG8rPWlbcl0sbC5wdXNoKHIpKToocys9aVtyXSxjLnB1c2gocikpO3JldHVybiBjLnJldmVyc2UoKS5jb25jYXQobCl9LHQuc3RhY2tPcmRlck5vbmU9VXQsdC5zdGFja09yZGVyUmV2ZXJzZT1mdW5jdGlvbih0KXtyZXR1cm4gVXQodCkucmV2ZXJzZSgpfSx0LnN5bWJvbD1mdW5jdGlvbigpe3ZhciB0PXIocSksbj1yKDY0KSxpPW51bGw7ZnVuY3Rpb24gYSgpe3ZhciByO2lmKGl8fChpPXI9ZS5wYXRoKCkpLHQuYXBwbHkodGhpcyxhcmd1bWVudHMpLmRyYXcoaSwrbi5hcHBseSh0aGlzLGFyZ3VtZW50cykpLHIpcmV0dXJuIGk9bnVsbCxyKyIifHxudWxsfXJldHVybiBhLnR5cGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpyKGUpLGEpOnR9LGEuc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OnIoK3QpLGEpOm59LGEuY29udGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1udWxsPT10P251bGw6dCxhKTppfSxhfSx0LnN5bWJvbENpcmNsZT1xLHQuc3ltYm9sQ3Jvc3M9Ryx0LnN5bWJvbERpYW1vbmQ9WCx0LnN5bWJvbFNxdWFyZT0kLHQuc3ltYm9sU3Rhcj1RLHQuc3ltYm9sVHJpYW5nbGU9ZXQsdC5zeW1ib2xXeWU9b3QsdC5zeW1ib2xzPXN0LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0pKX0seyJkMy1wYXRoIjoxMTd9XSwxMjA6W2Z1bmN0aW9uKHQsZSxyKXshZnVuY3Rpb24obixpKXsib2JqZWN0Ij09dHlwZW9mIHImJnZvaWQgMCE9PWU/aShyLHQoImQzLXRpbWUiKSk6aSgobj1ufHxzZWxmKS5kMz1uLmQzfHx7fSxuLmQzKX0odGhpcywoZnVuY3Rpb24odCxlKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcih0KXtpZigwPD10LnkmJnQueTwxMDApe3ZhciBlPW5ldyBEYXRlKC0xLHQubSx0LmQsdC5ILHQuTSx0LlMsdC5MKTtyZXR1cm4gZS5zZXRGdWxsWWVhcih0LnkpLGV9cmV0dXJuIG5ldyBEYXRlKHQueSx0Lm0sdC5kLHQuSCx0Lk0sdC5TLHQuTCl9ZnVuY3Rpb24gbih0KXtpZigwPD10LnkmJnQueTwxMDApe3ZhciBlPW5ldyBEYXRlKERhdGUuVVRDKC0xLHQubSx0LmQsdC5ILHQuTSx0LlMsdC5MKSk7cmV0dXJuIGUuc2V0VVRDRnVsbFllYXIodC55KSxlfXJldHVybiBuZXcgRGF0ZShEYXRlLlVUQyh0LnksdC5tLHQuZCx0LkgsdC5NLHQuUyx0LkwpKX1mdW5jdGlvbiBpKHQsZSxyKXtyZXR1cm57eTp0LG06ZSxkOnIsSDowLE06MCxTOjAsTDowfX1mdW5jdGlvbiBhKHQpe3ZhciBhPXQuZGF0ZVRpbWUsbz10LmRhdGUsbD10LnRpbWUsYz10LnBlcmlvZHMsdT10LmRheXMsZj10LnNob3J0RGF5cyxoPXQubW9udGhzLHl0PXQuc2hvcnRNb250aHMseHQ9cChjKSxidD1kKGMpLF90PXAodSksd3Q9ZCh1KSxUdD1wKGYpLGt0PWQoZiksQXQ9cChoKSxNdD1kKGgpLFN0PXAoeXQpLEV0PWQoeXQpLEx0PXthOmZ1bmN0aW9uKHQpe3JldHVybiBmW3QuZ2V0RGF5KCldfSxBOmZ1bmN0aW9uKHQpe3JldHVybiB1W3QuZ2V0RGF5KCldfSxiOmZ1bmN0aW9uKHQpe3JldHVybiB5dFt0LmdldE1vbnRoKCldfSxCOmZ1bmN0aW9uKHQpe3JldHVybiBoW3QuZ2V0TW9udGgoKV19LGM6bnVsbCxkOkQsZTpELGY6aixIOlIsSTpGLGo6QixMOk4sbTpVLE06VixwOmZ1bmN0aW9uKHQpe3JldHVybiBjWysodC5nZXRIb3VycygpPj0xMildfSxxOmZ1bmN0aW9uKHQpe3JldHVybiAxK35+KHQuZ2V0TW9udGgoKS8zKX0sUTpndCxzOnZ0LFM6SCx1OnEsVTpHLFY6WSx3OlcsVzpYLHg6bnVsbCxYOm51bGwseTpaLFk6SixaOkssIiUiOm10fSxDdD17YTpmdW5jdGlvbih0KXtyZXR1cm4gZlt0LmdldFVUQ0RheSgpXX0sQTpmdW5jdGlvbih0KXtyZXR1cm4gdVt0LmdldFVUQ0RheSgpXX0sYjpmdW5jdGlvbih0KXtyZXR1cm4geXRbdC5nZXRVVENNb250aCgpXX0sQjpmdW5jdGlvbih0KXtyZXR1cm4gaFt0LmdldFVUQ01vbnRoKCldfSxjOm51bGwsZDpRLGU6USxmOm50LEg6JCxJOnR0LGo6ZXQsTDpydCxtOml0LE06YXQscDpmdW5jdGlvbih0KXtyZXR1cm4gY1srKHQuZ2V0VVRDSG91cnMoKT49MTIpXX0scTpmdW5jdGlvbih0KXtyZXR1cm4gMSt+fih0LmdldFVUQ01vbnRoKCkvMyl9LFE6Z3Qsczp2dCxTOm90LHU6c3QsVTpsdCxWOmN0LHc6dXQsVzpmdCx4Om51bGwsWDpudWxsLHk6aHQsWTpwdCxaOmR0LCIlIjptdH0sUHQ9e2E6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPVR0LmV4ZWMoZS5zbGljZShyKSk7cmV0dXJuIG4/KHQudz1rdFtuWzBdLnRvTG93ZXJDYXNlKCldLHIrblswXS5sZW5ndGgpOi0xfSxBOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1fdC5leGVjKGUuc2xpY2UocikpO3JldHVybiBuPyh0Lnc9d3RbblswXS50b0xvd2VyQ2FzZSgpXSxyK25bMF0ubGVuZ3RoKTotMX0sYjpmdW5jdGlvbih0LGUscil7dmFyIG49U3QuZXhlYyhlLnNsaWNlKHIpKTtyZXR1cm4gbj8odC5tPUV0W25bMF0udG9Mb3dlckNhc2UoKV0scituWzBdLmxlbmd0aCk6LTF9LEI6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPUF0LmV4ZWMoZS5zbGljZShyKSk7cmV0dXJuIG4/KHQubT1NdFtuWzBdLnRvTG93ZXJDYXNlKCldLHIrblswXS5sZW5ndGgpOi0xfSxjOmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4genQodCxhLGUscil9LGQ6QSxlOkEsZjpQLEg6UyxJOlMsajpNLEw6QyxtOmssTTpFLHA6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXh0LmV4ZWMoZS5zbGljZShyKSk7cmV0dXJuIG4/KHQucD1idFtuWzBdLnRvTG93ZXJDYXNlKCldLHIrblswXS5sZW5ndGgpOi0xfSxxOlQsUTpPLHM6eixTOkwsdTpnLFU6dixWOnksdzptLFc6eCx4OmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4genQodCxvLGUscil9LFg6ZnVuY3Rpb24odCxlLHIpe3JldHVybiB6dCh0LGwsZSxyKX0seTpfLFk6YixaOncsIiUiOkl9O2Z1bmN0aW9uIEl0KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHIpe3ZhciBuLGksYSxvPVtdLGw9LTEsYz0wLHU9dC5sZW5ndGg7Zm9yKHIgaW5zdGFuY2VvZiBEYXRlfHwocj1uZXcgRGF0ZSgrcikpOysrbDx1OykzNz09PXQuY2hhckNvZGVBdChsKSYmKG8ucHVzaCh0LnNsaWNlKGMsbCkpLG51bGwhPShpPXNbbj10LmNoYXJBdCgrK2wpXSk/bj10LmNoYXJBdCgrK2wpOmk9ImUiPT09bj8iICI6IjAiLChhPWVbbl0pJiYobj1hKHIsaSkpLG8ucHVzaChuKSxjPWwrMSk7cmV0dXJuIG8ucHVzaCh0LnNsaWNlKGMsbCkpLG8uam9pbigiIil9fWZ1bmN0aW9uIE90KHQsYSl7cmV0dXJuIGZ1bmN0aW9uKG8pe3ZhciBzLGwsYz1pKDE5MDAsdm9pZCAwLDEpO2lmKHp0KGMsdCxvKz0iIiwwKSE9by5sZW5ndGgpcmV0dXJuIG51bGw7aWYoIlEiaW4gYylyZXR1cm4gbmV3IERhdGUoYy5RKTtpZigicyJpbiBjKXJldHVybiBuZXcgRGF0ZSgxZTMqYy5zKygiTCJpbiBjP2MuTDowKSk7aWYoYSYmISgiWiJpbiBjKSYmKGMuWj0wKSwicCJpbiBjJiYoYy5IPWMuSCUxMisxMipjLnApLHZvaWQgMD09PWMubSYmKGMubT0icSJpbiBjP2MucTowKSwiViJpbiBjKXtpZihjLlY8MXx8Yy5WPjUzKXJldHVybiBudWxsOyJ3ImluIGN8fChjLnc9MSksIloiaW4gYz8obD0ocz1uKGkoYy55LDAsMSkpKS5nZXRVVENEYXkoKSxzPWw+NHx8MD09PWw/ZS51dGNNb25kYXkuY2VpbChzKTplLnV0Y01vbmRheShzKSxzPWUudXRjRGF5Lm9mZnNldChzLDcqKGMuVi0xKSksYy55PXMuZ2V0VVRDRnVsbFllYXIoKSxjLm09cy5nZXRVVENNb250aCgpLGMuZD1zLmdldFVUQ0RhdGUoKSsoYy53KzYpJTcpOihsPShzPXIoaShjLnksMCwxKSkpLmdldERheSgpLHM9bD40fHwwPT09bD9lLnRpbWVNb25kYXkuY2VpbChzKTplLnRpbWVNb25kYXkocykscz1lLnRpbWVEYXkub2Zmc2V0KHMsNyooYy5WLTEpKSxjLnk9cy5nZXRGdWxsWWVhcigpLGMubT1zLmdldE1vbnRoKCksYy5kPXMuZ2V0RGF0ZSgpKyhjLncrNiklNyl9ZWxzZSgiVyJpbiBjfHwiVSJpbiBjKSYmKCJ3ImluIGN8fChjLnc9InUiaW4gYz9jLnUlNzoiVyJpbiBjPzE6MCksbD0iWiJpbiBjP24oaShjLnksMCwxKSkuZ2V0VVRDRGF5KCk6cihpKGMueSwwLDEpKS5nZXREYXkoKSxjLm09MCxjLmQ9IlciaW4gYz8oYy53KzYpJTcrNypjLlctKGwrNSklNzpjLncrNypjLlUtKGwrNiklNyk7cmV0dXJuIloiaW4gYz8oYy5IKz1jLlovMTAwfDAsYy5NKz1jLlolMTAwLG4oYykpOnIoYyl9fWZ1bmN0aW9uIHp0KHQsZSxyLG4pe2Zvcih2YXIgaSxhLG89MCxsPWUubGVuZ3RoLGM9ci5sZW5ndGg7bzxsOyl7aWYobj49YylyZXR1cm4tMTtpZigzNz09PShpPWUuY2hhckNvZGVBdChvKyspKSl7aWYoaT1lLmNoYXJBdChvKyspLCEoYT1QdFtpIGluIHM/ZS5jaGFyQXQobysrKTppXSl8fChuPWEodCxyLG4pKTwwKXJldHVybi0xfWVsc2UgaWYoaSE9ci5jaGFyQ29kZUF0KG4rKykpcmV0dXJuLTF9cmV0dXJuIG59cmV0dXJuIEx0Lng9SXQobyxMdCksTHQuWD1JdChsLEx0KSxMdC5jPUl0KGEsTHQpLEN0Lng9SXQobyxDdCksQ3QuWD1JdChsLEN0KSxDdC5jPUl0KGEsQ3QpLHtmb3JtYXQ6ZnVuY3Rpb24odCl7dmFyIGU9SXQodCs9IiIsTHQpO3JldHVybiBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LGV9LHBhcnNlOmZ1bmN0aW9uKHQpe3ZhciBlPU90KHQrPSIiLCExKTtyZXR1cm4gZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0fSxlfSx1dGNGb3JtYXQ6ZnVuY3Rpb24odCl7dmFyIGU9SXQodCs9IiIsQ3QpO3JldHVybiBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LGV9LHV0Y1BhcnNlOmZ1bmN0aW9uKHQpe3ZhciBlPU90KHQrPSIiLCEwKTtyZXR1cm4gZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0fSxlfX19dmFyIG8scz17Ii0iOiIiLF86IiAiLDA6IjAifSxsPS9eXHMqXGQrLyxjPS9eJS8sdT0vW1xcXiQqKz98W1xdKCkue31dL2c7ZnVuY3Rpb24gZih0LGUscil7dmFyIG49dDwwPyItIjoiIixpPShuPy10OnQpKyIiLGE9aS5sZW5ndGg7cmV0dXJuIG4rKGE8cj9uZXcgQXJyYXkoci1hKzEpLmpvaW4oZSkraTppKX1mdW5jdGlvbiBoKHQpe3JldHVybiB0LnJlcGxhY2UodSwiXFwkJiIpfWZ1bmN0aW9uIHAodCl7cmV0dXJuIG5ldyBSZWdFeHAoIl4oPzoiK3QubWFwKGgpLmpvaW4oInwiKSsiKSIsImkiKX1mdW5jdGlvbiBkKHQpe2Zvcih2YXIgZT17fSxyPS0xLG49dC5sZW5ndGg7KytyPG47KWVbdFtyXS50b0xvd2VyQ2FzZSgpXT1yO3JldHVybiBlfWZ1bmN0aW9uIG0odCxlLHIpe3ZhciBuPWwuZXhlYyhlLnNsaWNlKHIscisxKSk7cmV0dXJuIG4/KHQudz0rblswXSxyK25bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBnKHQsZSxyKXt2YXIgbj1sLmV4ZWMoZS5zbGljZShyLHIrMSkpO3JldHVybiBuPyh0LnU9K25bMF0scituWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gdih0LGUscil7dmFyIG49bC5leGVjKGUuc2xpY2UocixyKzIpKTtyZXR1cm4gbj8odC5VPStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHkodCxlLHIpe3ZhciBuPWwuZXhlYyhlLnNsaWNlKHIscisyKSk7cmV0dXJuIG4/KHQuVj0rblswXSxyK25bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiB4KHQsZSxyKXt2YXIgbj1sLmV4ZWMoZS5zbGljZShyLHIrMikpO3JldHVybiBuPyh0Llc9K25bMF0scituWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gYih0LGUscil7dmFyIG49bC5leGVjKGUuc2xpY2UocixyKzQpKTtyZXR1cm4gbj8odC55PStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIF8odCxlLHIpe3ZhciBuPWwuZXhlYyhlLnNsaWNlKHIscisyKSk7cmV0dXJuIG4/KHQueT0rblswXSsoK25bMF0+Njg/MTkwMDoyZTMpLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHcodCxlLHIpe3ZhciBuPS9eKFopfChbKy1dXGRcZCkoPzo6PyhcZFxkKSk/Ly5leGVjKGUuc2xpY2UocixyKzYpKTtyZXR1cm4gbj8odC5aPW5bMV0/MDotKG5bMl0rKG5bM118fCIwMCIpKSxyK25bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBUKHQsZSxyKXt2YXIgbj1sLmV4ZWMoZS5zbGljZShyLHIrMSkpO3JldHVybiBuPyh0LnE9MypuWzBdLTMscituWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gayh0LGUscil7dmFyIG49bC5leGVjKGUuc2xpY2UocixyKzIpKTtyZXR1cm4gbj8odC5tPW5bMF0tMSxyK25bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBBKHQsZSxyKXt2YXIgbj1sLmV4ZWMoZS5zbGljZShyLHIrMikpO3JldHVybiBuPyh0LmQ9K25bMF0scituWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gTSh0LGUscil7dmFyIG49bC5leGVjKGUuc2xpY2UocixyKzMpKTtyZXR1cm4gbj8odC5tPTAsdC5kPStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIFModCxlLHIpe3ZhciBuPWwuZXhlYyhlLnNsaWNlKHIscisyKSk7cmV0dXJuIG4/KHQuSD0rblswXSxyK25bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBFKHQsZSxyKXt2YXIgbj1sLmV4ZWMoZS5zbGljZShyLHIrMikpO3JldHVybiBuPyh0Lk09K25bMF0scituWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gTCh0LGUscil7dmFyIG49bC5leGVjKGUuc2xpY2UocixyKzIpKTtyZXR1cm4gbj8odC5TPStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIEModCxlLHIpe3ZhciBuPWwuZXhlYyhlLnNsaWNlKHIsciszKSk7cmV0dXJuIG4/KHQuTD0rblswXSxyK25bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBQKHQsZSxyKXt2YXIgbj1sLmV4ZWMoZS5zbGljZShyLHIrNikpO3JldHVybiBuPyh0Lkw9TWF0aC5mbG9vcihuWzBdLzFlMykscituWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gSSh0LGUscil7dmFyIG49Yy5leGVjKGUuc2xpY2UocixyKzEpKTtyZXR1cm4gbj9yK25bMF0ubGVuZ3RoOi0xfWZ1bmN0aW9uIE8odCxlLHIpe3ZhciBuPWwuZXhlYyhlLnNsaWNlKHIpKTtyZXR1cm4gbj8odC5RPStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHoodCxlLHIpe3ZhciBuPWwuZXhlYyhlLnNsaWNlKHIpKTtyZXR1cm4gbj8odC5zPStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIEQodCxlKXtyZXR1cm4gZih0LmdldERhdGUoKSxlLDIpfWZ1bmN0aW9uIFIodCxlKXtyZXR1cm4gZih0LmdldEhvdXJzKCksZSwyKX1mdW5jdGlvbiBGKHQsZSl7cmV0dXJuIGYodC5nZXRIb3VycygpJTEyfHwxMixlLDIpfWZ1bmN0aW9uIEIodCxyKXtyZXR1cm4gZigxK2UudGltZURheS5jb3VudChlLnRpbWVZZWFyKHQpLHQpLHIsMyl9ZnVuY3Rpb24gTih0LGUpe3JldHVybiBmKHQuZ2V0TWlsbGlzZWNvbmRzKCksZSwzKX1mdW5jdGlvbiBqKHQsZSl7cmV0dXJuIE4odCxlKSsiMDAwIn1mdW5jdGlvbiBVKHQsZSl7cmV0dXJuIGYodC5nZXRNb250aCgpKzEsZSwyKX1mdW5jdGlvbiBWKHQsZSl7cmV0dXJuIGYodC5nZXRNaW51dGVzKCksZSwyKX1mdW5jdGlvbiBIKHQsZSl7cmV0dXJuIGYodC5nZXRTZWNvbmRzKCksZSwyKX1mdW5jdGlvbiBxKHQpe3ZhciBlPXQuZ2V0RGF5KCk7cmV0dXJuIDA9PT1lPzc6ZX1mdW5jdGlvbiBHKHQscil7cmV0dXJuIGYoZS50aW1lU3VuZGF5LmNvdW50KGUudGltZVllYXIodCktMSx0KSxyLDIpfWZ1bmN0aW9uIFkodCxyKXt2YXIgbj10LmdldERheSgpO3JldHVybiB0PW4+PTR8fDA9PT1uP2UudGltZVRodXJzZGF5KHQpOmUudGltZVRodXJzZGF5LmNlaWwodCksZihlLnRpbWVUaHVyc2RheS5jb3VudChlLnRpbWVZZWFyKHQpLHQpKyg0PT09ZS50aW1lWWVhcih0KS5nZXREYXkoKSksciwyKX1mdW5jdGlvbiBXKHQpe3JldHVybiB0LmdldERheSgpfWZ1bmN0aW9uIFgodCxyKXtyZXR1cm4gZihlLnRpbWVNb25kYXkuY291bnQoZS50aW1lWWVhcih0KS0xLHQpLHIsMil9ZnVuY3Rpb24gWih0LGUpe3JldHVybiBmKHQuZ2V0RnVsbFllYXIoKSUxMDAsZSwyKX1mdW5jdGlvbiBKKHQsZSl7cmV0dXJuIGYodC5nZXRGdWxsWWVhcigpJTFlNCxlLDQpfWZ1bmN0aW9uIEsodCl7dmFyIGU9dC5nZXRUaW1lem9uZU9mZnNldCgpO3JldHVybihlPjA/Ii0iOihlKj0tMSwiKyIpKStmKGUvNjB8MCwiMCIsMikrZihlJTYwLCIwIiwyKX1mdW5jdGlvbiBRKHQsZSl7cmV0dXJuIGYodC5nZXRVVENEYXRlKCksZSwyKX1mdW5jdGlvbiAkKHQsZSl7cmV0dXJuIGYodC5nZXRVVENIb3VycygpLGUsMil9ZnVuY3Rpb24gdHQodCxlKXtyZXR1cm4gZih0LmdldFVUQ0hvdXJzKCklMTJ8fDEyLGUsMil9ZnVuY3Rpb24gZXQodCxyKXtyZXR1cm4gZigxK2UudXRjRGF5LmNvdW50KGUudXRjWWVhcih0KSx0KSxyLDMpfWZ1bmN0aW9uIHJ0KHQsZSl7cmV0dXJuIGYodC5nZXRVVENNaWxsaXNlY29uZHMoKSxlLDMpfWZ1bmN0aW9uIG50KHQsZSl7cmV0dXJuIHJ0KHQsZSkrIjAwMCJ9ZnVuY3Rpb24gaXQodCxlKXtyZXR1cm4gZih0LmdldFVUQ01vbnRoKCkrMSxlLDIpfWZ1bmN0aW9uIGF0KHQsZSl7cmV0dXJuIGYodC5nZXRVVENNaW51dGVzKCksZSwyKX1mdW5jdGlvbiBvdCh0LGUpe3JldHVybiBmKHQuZ2V0VVRDU2Vjb25kcygpLGUsMil9ZnVuY3Rpb24gc3QodCl7dmFyIGU9dC5nZXRVVENEYXkoKTtyZXR1cm4gMD09PWU/NzplfWZ1bmN0aW9uIGx0KHQscil7cmV0dXJuIGYoZS51dGNTdW5kYXkuY291bnQoZS51dGNZZWFyKHQpLTEsdCksciwyKX1mdW5jdGlvbiBjdCh0LHIpe3ZhciBuPXQuZ2V0VVRDRGF5KCk7cmV0dXJuIHQ9bj49NHx8MD09PW4/ZS51dGNUaHVyc2RheSh0KTplLnV0Y1RodXJzZGF5LmNlaWwodCksZihlLnV0Y1RodXJzZGF5LmNvdW50KGUudXRjWWVhcih0KSx0KSsoND09PWUudXRjWWVhcih0KS5nZXRVVENEYXkoKSksciwyKX1mdW5jdGlvbiB1dCh0KXtyZXR1cm4gdC5nZXRVVENEYXkoKX1mdW5jdGlvbiBmdCh0LHIpe3JldHVybiBmKGUudXRjTW9uZGF5LmNvdW50KGUudXRjWWVhcih0KS0xLHQpLHIsMil9ZnVuY3Rpb24gaHQodCxlKXtyZXR1cm4gZih0LmdldFVUQ0Z1bGxZZWFyKCklMTAwLGUsMil9ZnVuY3Rpb24gcHQodCxlKXtyZXR1cm4gZih0LmdldFVUQ0Z1bGxZZWFyKCklMWU0LGUsNCl9ZnVuY3Rpb24gZHQoKXtyZXR1cm4iKzAwMDAifWZ1bmN0aW9uIG10KCl7cmV0dXJuIiUifWZ1bmN0aW9uIGd0KHQpe3JldHVybit0fWZ1bmN0aW9uIHZ0KHQpe3JldHVybiBNYXRoLmZsb29yKCt0LzFlMyl9ZnVuY3Rpb24geXQoZSl7cmV0dXJuIG89YShlKSx0LnRpbWVGb3JtYXQ9by5mb3JtYXQsdC50aW1lUGFyc2U9by5wYXJzZSx0LnV0Y0Zvcm1hdD1vLnV0Y0Zvcm1hdCx0LnV0Y1BhcnNlPW8udXRjUGFyc2Usb315dCh7ZGF0ZVRpbWU6IiV4LCAlWCIsZGF0ZToiJS1tLyUtZC8lWSIsdGltZToiJS1JOiVNOiVTICVwIixwZXJpb2RzOlsiQU0iLCJQTSJdLGRheXM6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdLHNob3J0RGF5czpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLG1vbnRoczpbIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl0sc2hvcnRNb250aHM6WyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIiLCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXX0pO3ZhciB4dD1EYXRlLnByb3RvdHlwZS50b0lTT1N0cmluZz9mdW5jdGlvbih0KXtyZXR1cm4gdC50b0lTT1N0cmluZygpfTp0LnV0Y0Zvcm1hdCgiJVktJW0tJWRUJUg6JU06JVMuJUxaIik7dmFyIGJ0PStuZXcgRGF0ZSgiMjAwMC0wMS0wMVQwMDowMDowMC4wMDBaIik/ZnVuY3Rpb24odCl7dmFyIGU9bmV3IERhdGUodCk7cmV0dXJuIGlzTmFOKGUpP251bGw6ZX06dC51dGNQYXJzZSgiJVktJW0tJWRUJUg6JU06JVMuJUxaIik7dC5pc29Gb3JtYXQ9eHQsdC5pc29QYXJzZT1idCx0LnRpbWVGb3JtYXREZWZhdWx0TG9jYWxlPXl0LHQudGltZUZvcm1hdExvY2FsZT1hLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0pKX0seyJkMy10aW1lIjoxMjF9XSwxMjE6W2Z1bmN0aW9uKHQsZSxyKXshZnVuY3Rpb24odCxuKXsib2JqZWN0Ij09dHlwZW9mIHImJnZvaWQgMCE9PWU/bihyKTpuKCh0PXR8fHNlbGYpLmQzPXQuZDN8fHt9KX0odGhpcywoZnVuY3Rpb24odCl7InVzZSBzdHJpY3QiO3ZhciBlPW5ldyBEYXRlLHI9bmV3IERhdGU7ZnVuY3Rpb24gbih0LGksYSxvKXtmdW5jdGlvbiBzKGUpe3JldHVybiB0KGU9MD09PWFyZ3VtZW50cy5sZW5ndGg/bmV3IERhdGU6bmV3IERhdGUoK2UpKSxlfXJldHVybiBzLmZsb29yPWZ1bmN0aW9uKGUpe3JldHVybiB0KGU9bmV3IERhdGUoK2UpKSxlfSxzLmNlaWw9ZnVuY3Rpb24oZSl7cmV0dXJuIHQoZT1uZXcgRGF0ZShlLTEpKSxpKGUsMSksdChlKSxlfSxzLnJvdW5kPWZ1bmN0aW9uKHQpe3ZhciBlPXModCkscj1zLmNlaWwodCk7cmV0dXJuIHQtZTxyLXQ/ZTpyfSxzLm9mZnNldD1mdW5jdGlvbih0LGUpe3JldHVybiBpKHQ9bmV3IERhdGUoK3QpLG51bGw9PWU/MTpNYXRoLmZsb29yKGUpKSx0fSxzLnJhbmdlPWZ1bmN0aW9uKGUscixuKXt2YXIgYSxvPVtdO2lmKGU9cy5jZWlsKGUpLG49bnVsbD09bj8xOk1hdGguZmxvb3IobiksIShlPHImJm4+MCkpcmV0dXJuIG87ZG97by5wdXNoKGE9bmV3IERhdGUoK2UpKSxpKGUsbiksdChlKX13aGlsZShhPGUmJmU8cik7cmV0dXJuIG99LHMuZmlsdGVyPWZ1bmN0aW9uKGUpe3JldHVybiBuKChmdW5jdGlvbihyKXtpZihyPj1yKWZvcig7dChyKSwhZShyKTspci5zZXRUaW1lKHItMSl9KSwoZnVuY3Rpb24odCxyKXtpZih0Pj10KWlmKHI8MClmb3IoOysrcjw9MDspZm9yKDtpKHQsLTEpLCFlKHQpOyk7ZWxzZSBmb3IoOy0tcj49MDspZm9yKDtpKHQsMSksIWUodCk7KTt9KSl9LGEmJihzLmNvdW50PWZ1bmN0aW9uKG4saSl7cmV0dXJuIGUuc2V0VGltZSgrbiksci5zZXRUaW1lKCtpKSx0KGUpLHQociksTWF0aC5mbG9vcihhKGUscikpfSxzLmV2ZXJ5PWZ1bmN0aW9uKHQpe3JldHVybiB0PU1hdGguZmxvb3IodCksaXNGaW5pdGUodCkmJnQ+MD90PjE/cy5maWx0ZXIobz9mdW5jdGlvbihlKXtyZXR1cm4gbyhlKSV0PT0wfTpmdW5jdGlvbihlKXtyZXR1cm4gcy5jb3VudCgwLGUpJXQ9PTB9KTpzOm51bGx9KSxzfXZhciBpPW4oKGZ1bmN0aW9uKCl7fSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRUaW1lKCt0K2UpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUtdH0pKTtpLmV2ZXJ5PWZ1bmN0aW9uKHQpe3JldHVybiB0PU1hdGguZmxvb3IodCksaXNGaW5pdGUodCkmJnQ+MD90PjE/bigoZnVuY3Rpb24oZSl7ZS5zZXRUaW1lKE1hdGguZmxvb3IoZS90KSp0KX0pLChmdW5jdGlvbihlLHIpe2Uuc2V0VGltZSgrZStyKnQpfSksKGZ1bmN0aW9uKGUscil7cmV0dXJuKHItZSkvdH0pKTppOm51bGx9O3ZhciBhPWkucmFuZ2Usbz1uKChmdW5jdGlvbih0KXt0LnNldFRpbWUodC10LmdldE1pbGxpc2Vjb25kcygpKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VGltZSgrdCsxZTMqZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10KS8xZTN9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDU2Vjb25kcygpfSkpLHM9by5yYW5nZSxsPW4oKGZ1bmN0aW9uKHQpe3Quc2V0VGltZSh0LXQuZ2V0TWlsbGlzZWNvbmRzKCktMWUzKnQuZ2V0U2Vjb25kcygpKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VGltZSgrdCs2ZTQqZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10KS82ZTR9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0TWludXRlcygpfSkpLGM9bC5yYW5nZSx1PW4oKGZ1bmN0aW9uKHQpe3Quc2V0VGltZSh0LXQuZ2V0TWlsbGlzZWNvbmRzKCktMWUzKnQuZ2V0U2Vjb25kcygpLTZlNCp0LmdldE1pbnV0ZXMoKSl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFRpbWUoK3QrMzZlNSplKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpLzM2ZTV9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0SG91cnMoKX0pKSxmPXUucmFuZ2UsaD1uKChmdW5jdGlvbih0KXt0LnNldEhvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXREYXRlKHQuZ2V0RGF0ZSgpK2UpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdC02ZTQqKGUuZ2V0VGltZXpvbmVPZmZzZXQoKS10LmdldFRpbWV6b25lT2Zmc2V0KCkpKS84NjRlNX0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXREYXRlKCktMX0pKSxwPWgucmFuZ2U7ZnVuY3Rpb24gZCh0KXtyZXR1cm4gbigoZnVuY3Rpb24oZSl7ZS5zZXREYXRlKGUuZ2V0RGF0ZSgpLShlLmdldERheSgpKzctdCklNyksZS5zZXRIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0RGF0ZSh0LmdldERhdGUoKSs3KmUpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdC02ZTQqKGUuZ2V0VGltZXpvbmVPZmZzZXQoKS10LmdldFRpbWV6b25lT2Zmc2V0KCkpKS82MDQ4ZTV9KSl9dmFyIG09ZCgwKSxnPWQoMSksdj1kKDIpLHk9ZCgzKSx4PWQoNCksYj1kKDUpLF89ZCg2KSx3PW0ucmFuZ2UsVD1nLnJhbmdlLGs9di5yYW5nZSxBPXkucmFuZ2UsTT14LnJhbmdlLFM9Yi5yYW5nZSxFPV8ucmFuZ2UsTD1uKChmdW5jdGlvbih0KXt0LnNldERhdGUoMSksdC5zZXRIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0TW9udGgodC5nZXRNb250aCgpK2UpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuZ2V0TW9udGgoKS10LmdldE1vbnRoKCkrMTIqKGUuZ2V0RnVsbFllYXIoKS10LmdldEZ1bGxZZWFyKCkpfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldE1vbnRoKCl9KSksQz1MLnJhbmdlLFA9bigoZnVuY3Rpb24odCl7dC5zZXRNb250aCgwLDEpLHQuc2V0SG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldEZ1bGxZZWFyKHQuZ2V0RnVsbFllYXIoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybiBlLmdldEZ1bGxZZWFyKCktdC5nZXRGdWxsWWVhcigpfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEZ1bGxZZWFyKCl9KSk7UC5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gaXNGaW5pdGUodD1NYXRoLmZsb29yKHQpKSYmdD4wP24oKGZ1bmN0aW9uKGUpe2Uuc2V0RnVsbFllYXIoTWF0aC5mbG9vcihlLmdldEZ1bGxZZWFyKCkvdCkqdCksZS5zZXRNb250aCgwLDEpLGUuc2V0SG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24oZSxyKXtlLnNldEZ1bGxZZWFyKGUuZ2V0RnVsbFllYXIoKStyKnQpfSkpOm51bGx9O3ZhciBJPVAucmFuZ2UsTz1uKChmdW5jdGlvbih0KXt0LnNldFVUQ1NlY29uZHMoMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VGltZSgrdCs2ZTQqZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10KS82ZTR9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDTWludXRlcygpfSkpLHo9Ty5yYW5nZSxEPW4oKGZ1bmN0aW9uKHQpe3Quc2V0VVRDTWludXRlcygwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFRpbWUoK3QrMzZlNSplKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpLzM2ZTV9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDSG91cnMoKX0pKSxSPUQucmFuZ2UsRj1uKChmdW5jdGlvbih0KXt0LnNldFVUQ0hvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRVVENEYXRlKHQuZ2V0VVRDRGF0ZSgpK2UpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdCkvODY0ZTV9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDRGF0ZSgpLTF9KSksQj1GLnJhbmdlO2Z1bmN0aW9uIE4odCl7cmV0dXJuIG4oKGZ1bmN0aW9uKGUpe2Uuc2V0VVRDRGF0ZShlLmdldFVUQ0RhdGUoKS0oZS5nZXRVVENEYXkoKSs3LXQpJTcpLGUuc2V0VVRDSG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFVUQ0RhdGUodC5nZXRVVENEYXRlKCkrNyplKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpLzYwNDhlNX0pKX12YXIgaj1OKDApLFU9TigxKSxWPU4oMiksSD1OKDMpLHE9Tig0KSxHPU4oNSksWT1OKDYpLFc9ai5yYW5nZSxYPVUucmFuZ2UsWj1WLnJhbmdlLEo9SC5yYW5nZSxLPXEucmFuZ2UsUT1HLnJhbmdlLCQ9WS5yYW5nZSx0dD1uKChmdW5jdGlvbih0KXt0LnNldFVUQ0RhdGUoMSksdC5zZXRVVENIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VVRDTW9udGgodC5nZXRVVENNb250aCgpK2UpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuZ2V0VVRDTW9udGgoKS10LmdldFVUQ01vbnRoKCkrMTIqKGUuZ2V0VVRDRnVsbFllYXIoKS10LmdldFVUQ0Z1bGxZZWFyKCkpfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ01vbnRoKCl9KSksZXQ9dHQucmFuZ2UscnQ9bigoZnVuY3Rpb24odCl7dC5zZXRVVENNb250aCgwLDEpLHQuc2V0VVRDSG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFVUQ0Z1bGxZZWFyKHQuZ2V0VVRDRnVsbFllYXIoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybiBlLmdldFVUQ0Z1bGxZZWFyKCktdC5nZXRVVENGdWxsWWVhcigpfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ0Z1bGxZZWFyKCl9KSk7cnQuZXZlcnk9ZnVuY3Rpb24odCl7cmV0dXJuIGlzRmluaXRlKHQ9TWF0aC5mbG9vcih0KSkmJnQ+MD9uKChmdW5jdGlvbihlKXtlLnNldFVUQ0Z1bGxZZWFyKE1hdGguZmxvb3IoZS5nZXRVVENGdWxsWWVhcigpL3QpKnQpLGUuc2V0VVRDTW9udGgoMCwxKSxlLnNldFVUQ0hvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKGUscil7ZS5zZXRVVENGdWxsWWVhcihlLmdldFVUQ0Z1bGxZZWFyKCkrcip0KX0pKTpudWxsfTt2YXIgbnQ9cnQucmFuZ2U7dC50aW1lRGF5PWgsdC50aW1lRGF5cz1wLHQudGltZUZyaWRheT1iLHQudGltZUZyaWRheXM9Uyx0LnRpbWVIb3VyPXUsdC50aW1lSG91cnM9Zix0LnRpbWVJbnRlcnZhbD1uLHQudGltZU1pbGxpc2Vjb25kPWksdC50aW1lTWlsbGlzZWNvbmRzPWEsdC50aW1lTWludXRlPWwsdC50aW1lTWludXRlcz1jLHQudGltZU1vbmRheT1nLHQudGltZU1vbmRheXM9VCx0LnRpbWVNb250aD1MLHQudGltZU1vbnRocz1DLHQudGltZVNhdHVyZGF5PV8sdC50aW1lU2F0dXJkYXlzPUUsdC50aW1lU2Vjb25kPW8sdC50aW1lU2Vjb25kcz1zLHQudGltZVN1bmRheT1tLHQudGltZVN1bmRheXM9dyx0LnRpbWVUaHVyc2RheT14LHQudGltZVRodXJzZGF5cz1NLHQudGltZVR1ZXNkYXk9dix0LnRpbWVUdWVzZGF5cz1rLHQudGltZVdlZG5lc2RheT15LHQudGltZVdlZG5lc2RheXM9QSx0LnRpbWVXZWVrPW0sdC50aW1lV2Vla3M9dyx0LnRpbWVZZWFyPVAsdC50aW1lWWVhcnM9SSx0LnV0Y0RheT1GLHQudXRjRGF5cz1CLHQudXRjRnJpZGF5PUcsdC51dGNGcmlkYXlzPVEsdC51dGNIb3VyPUQsdC51dGNIb3Vycz1SLHQudXRjTWlsbGlzZWNvbmQ9aSx0LnV0Y01pbGxpc2Vjb25kcz1hLHQudXRjTWludXRlPU8sdC51dGNNaW51dGVzPXosdC51dGNNb25kYXk9VSx0LnV0Y01vbmRheXM9WCx0LnV0Y01vbnRoPXR0LHQudXRjTW9udGhzPWV0LHQudXRjU2F0dXJkYXk9WSx0LnV0Y1NhdHVyZGF5cz0kLHQudXRjU2Vjb25kPW8sdC51dGNTZWNvbmRzPXMsdC51dGNTdW5kYXk9aix0LnV0Y1N1bmRheXM9Vyx0LnV0Y1RodXJzZGF5PXEsdC51dGNUaHVyc2RheXM9Syx0LnV0Y1R1ZXNkYXk9Vix0LnV0Y1R1ZXNkYXlzPVosdC51dGNXZWRuZXNkYXk9SCx0LnV0Y1dlZG5lc2RheXM9Six0LnV0Y1dlZWs9aix0LnV0Y1dlZWtzPVcsdC51dGNZZWFyPXJ0LHQudXRjWWVhcnM9bnQsT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSkpfSx7fV0sMTIyOltmdW5jdGlvbih0LGUscil7YXJndW1lbnRzWzRdWzEyMV1bMF0uYXBwbHkocixhcmd1bWVudHMpfSx7ZHVwOjEyMX1dLDEyMzpbZnVuY3Rpb24odCxlLHIpeyFmdW5jdGlvbih0LG4peyJvYmplY3QiPT10eXBlb2YgciYmdm9pZCAwIT09ZT9uKHIpOm4oKHQ9dHx8c2VsZikuZDM9dC5kM3x8e30pfSh0aGlzLChmdW5jdGlvbih0KXsidXNlIHN0cmljdCI7dmFyIGUscixuPTAsaT0wLGE9MCxvPTAscz0wLGw9MCxjPSJvYmplY3QiPT10eXBlb2YgcGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm5vdz9wZXJmb3JtYW5jZTpEYXRlLHU9Im9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU/d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZS5iaW5kKHdpbmRvdyk6ZnVuY3Rpb24odCl7c2V0VGltZW91dCh0LDE3KX07ZnVuY3Rpb24gZigpe3JldHVybiBzfHwodShoKSxzPWMubm93KCkrbCl9ZnVuY3Rpb24gaCgpe3M9MH1mdW5jdGlvbiBwKCl7dGhpcy5fY2FsbD10aGlzLl90aW1lPXRoaXMuX25leHQ9bnVsbH1mdW5jdGlvbiBkKHQsZSxyKXt2YXIgbj1uZXcgcDtyZXR1cm4gbi5yZXN0YXJ0KHQsZSxyKSxufWZ1bmN0aW9uIG0oKXtmKCksKytuO2Zvcih2YXIgdCxyPWU7cjspKHQ9cy1yLl90aW1lKT49MCYmci5fY2FsbC5jYWxsKG51bGwsdCkscj1yLl9uZXh0Oy0tbn1mdW5jdGlvbiBnKCl7cz0obz1jLm5vdygpKStsLG49aT0wO3RyeXttKCl9ZmluYWxseXtuPTAsZnVuY3Rpb24oKXt2YXIgdCxuLGk9ZSxhPTEvMDtmb3IoO2k7KWkuX2NhbGw/KGE+aS5fdGltZSYmKGE9aS5fdGltZSksdD1pLGk9aS5fbmV4dCk6KG49aS5fbmV4dCxpLl9uZXh0PW51bGwsaT10P3QuX25leHQ9bjplPW4pO3I9dCx5KGEpfSgpLHM9MH19ZnVuY3Rpb24gdigpe3ZhciB0PWMubm93KCksZT10LW87ZT4xZTMmJihsLT1lLG89dCl9ZnVuY3Rpb24geSh0KXtufHwoaSYmKGk9Y2xlYXJUaW1lb3V0KGkpKSx0LXM+MjQ/KHQ8MS8wJiYoaT1zZXRUaW1lb3V0KGcsdC1jLm5vdygpLWwpKSxhJiYoYT1jbGVhckludGVydmFsKGEpKSk6KGF8fChvPWMubm93KCksYT1zZXRJbnRlcnZhbCh2LDFlMykpLG49MSx1KGcpKSl9cC5wcm90b3R5cGU9ZC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOnAscmVzdGFydDpmdW5jdGlvbih0LG4saSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiY2FsbGJhY2sgaXMgbm90IGEgZnVuY3Rpb24iKTtpPShudWxsPT1pP2YoKToraSkrKG51bGw9PW4/MDorbiksdGhpcy5fbmV4dHx8cj09PXRoaXN8fChyP3IuX25leHQ9dGhpczplPXRoaXMscj10aGlzKSx0aGlzLl9jYWxsPXQsdGhpcy5fdGltZT1pLHkoKX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuX2NhbGwmJih0aGlzLl9jYWxsPW51bGwsdGhpcy5fdGltZT0xLzAseSgpKX19LHQuaW50ZXJ2YWw9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPW5ldyBwLGk9ZTtyZXR1cm4gbnVsbD09ZT8obi5yZXN0YXJ0KHQsZSxyKSxuKTooZT0rZSxyPW51bGw9PXI/ZigpOityLG4ucmVzdGFydCgoZnVuY3Rpb24gYShvKXtvKz1pLG4ucmVzdGFydChhLGkrPWUsciksdChvKX0pLGUsciksbil9LHQubm93PWYsdC50aW1lb3V0PWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1uZXcgcDtyZXR1cm4gZT1udWxsPT1lPzA6K2Usbi5yZXN0YXJ0KChmdW5jdGlvbihyKXtuLnN0b3AoKSx0KHIrZSl9KSxlLHIpLG59LHQudGltZXI9ZCx0LnRpbWVyRmx1c2g9bSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KSl9LHt9XSwxMjQ6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKWlmKHZvaWQgMCE9PWFyZ3VtZW50c1t0XSlyZXR1cm4gYXJndW1lbnRzW3RdfX0se31dLDEyNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9YTt2YXIgbj0oYS5jYW52YXM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIikpLmdldENvbnRleHQoIjJkIiksaT1vKFszMiwxMjZdKTtmdW5jdGlvbiBhKHQsZSl7QXJyYXkuaXNBcnJheSh0KSYmKHQ9dC5qb2luKCIsICIpKTt2YXIgcixhPXt9LHM9MTYsbD0uMDU7ZSYmKDI9PT1lLmxlbmd0aCYmIm51bWJlciI9PXR5cGVvZiBlWzBdP3I9byhlKTpBcnJheS5pc0FycmF5KGUpP3I9ZTooZS5vP3I9byhlLm8pOmUucGFpcnMmJihyPWUucGFpcnMpLGUuZm9udFNpemUmJihzPWUuZm9udFNpemUpLG51bGwhPWUudGhyZXNob2xkJiYobD1lLnRocmVzaG9sZCkpKSxyfHwocj1pKSxuLmZvbnQ9cysicHggIit0O2Zvcih2YXIgYz0wO2M8ci5sZW5ndGg7YysrKXt2YXIgdT1yW2NdLGY9bi5tZWFzdXJlVGV4dCh1WzBdKS53aWR0aCtuLm1lYXN1cmVUZXh0KHVbMV0pLndpZHRoLGg9bi5tZWFzdXJlVGV4dCh1KS53aWR0aDtpZihNYXRoLmFicyhmLWgpPnMqbCl7dmFyIHA9KGgtZikvczthW3VdPTFlMypwfX1yZXR1cm4gYX1mdW5jdGlvbiBvKHQpe2Zvcih2YXIgZT1bXSxyPXRbMF07cjw9dFsxXTtyKyspZm9yKHZhciBuPVN0cmluZy5mcm9tQ2hhckNvZGUociksaT10WzBdO2k8dFsxXTtpKyspe3ZhciBhPW4rU3RyaW5nLmZyb21DaGFyQ29kZShpKTtlLnB1c2goYSl9cmV0dXJuIGV9YS5jcmVhdGVQYWlycz1vLGEuYXNjaWk9aX0se31dLDEyNjpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoImFicy1zdmctcGF0aCIpLGk9dCgibm9ybWFsaXplLXN2Zy1wYXRoIiksYT17TToibW92ZVRvIixDOiJiZXppZXJDdXJ2ZVRvIn07ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dC5iZWdpblBhdGgoKSxpKG4oZSkpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciByPWVbMF0sbj1lLnNsaWNlKDEpO3RbYVtyXV0uYXBwbHkodCxuKX0pKSx0LmNsb3NlUGF0aCgpfX0seyJhYnMtc3ZnLXBhdGgiOjcwLCJub3JtYWxpemUtc3ZnLXBhdGgiOjI0Nn1dLDEyNzpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0KXtzd2l0Y2godCl7Y2FzZSJpbnQ4IjpyZXR1cm4gSW50OEFycmF5O2Nhc2UiaW50MTYiOnJldHVybiBJbnQxNkFycmF5O2Nhc2UiaW50MzIiOnJldHVybiBJbnQzMkFycmF5O2Nhc2UidWludDgiOnJldHVybiBVaW50OEFycmF5O2Nhc2UidWludDE2IjpyZXR1cm4gVWludDE2QXJyYXk7Y2FzZSJ1aW50MzIiOnJldHVybiBVaW50MzJBcnJheTtjYXNlImZsb2F0MzIiOnJldHVybiBGbG9hdDMyQXJyYXk7Y2FzZSJmbG9hdDY0IjpyZXR1cm4gRmxvYXQ2NEFycmF5O2Nhc2UiYXJyYXkiOnJldHVybiBBcnJheTtjYXNlInVpbnQ4X2NsYW1wZWQiOnJldHVybiBVaW50OENsYW1wZWRBcnJheX19fSx7fV0sMTI4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3N3aXRjaCh2b2lkIDA9PT1lJiYoZT0wKSx0eXBlb2YgdCl7Y2FzZSJudW1iZXIiOmlmKHQ+MClyZXR1cm4gZnVuY3Rpb24odCxlKXt2YXIgcixuO2ZvcihyPW5ldyBBcnJheSh0KSxuPTA7bjx0OysrbilyW25dPWU7cmV0dXJuIHJ9KDB8dCxlKTticmVhaztjYXNlIm9iamVjdCI6aWYoIm51bWJlciI9PXR5cGVvZiB0Lmxlbmd0aClyZXR1cm4gZnVuY3Rpb24gdChlLHIsbil7dmFyIGk9MHxlW25dO2lmKGk8PTApcmV0dXJuW107dmFyIGEsbz1uZXcgQXJyYXkoaSk7aWYobj09PWUubGVuZ3RoLTEpZm9yKGE9MDthPGk7KythKW9bYV09cjtlbHNlIGZvcihhPTA7YTxpOysrYSlvW2FdPXQoZSxyLG4rMSk7cmV0dXJuIG99KHQsZSwwKX1yZXR1cm5bXX19LHt9XSwxMjk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscil7cj1yfHwyO3ZhciBuLHMsbCxjLHUscCxkLGc9ZSYmZS5sZW5ndGgsdj1nP2VbMF0qcjp0Lmxlbmd0aCx5PWkodCwwLHYsciwhMCkseD1bXTtpZigheXx8eS5uZXh0PT09eS5wcmV2KXJldHVybiB4O2lmKGcmJih5PWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBvLHMsbCxjLHUscD1bXTtmb3Iobz0wLHM9ZS5sZW5ndGg7bzxzO28rKylsPWVbb10qbixjPW88cy0xP2VbbysxXSpuOnQubGVuZ3RoLCh1PWkodCxsLGMsbiwhMSkpPT09dS5uZXh0JiYodS5zdGVpbmVyPSEwKSxwLnB1c2gobSh1KSk7Zm9yKHAuc29ydChmKSxvPTA7bzxwLmxlbmd0aDtvKyspaChwW29dLHIpLHI9YShyLHIubmV4dCk7cmV0dXJuIHJ9KHQsZSx5LHIpKSx0Lmxlbmd0aD44MCpyKXtuPWw9dFswXSxzPWM9dFsxXTtmb3IodmFyIGI9cjtiPHY7Yis9cikodT10W2JdKTxuJiYobj11KSwocD10W2IrMV0pPHMmJihzPXApLHU+bCYmKGw9dSkscD5jJiYoYz1wKTtkPTAhPT0oZD1NYXRoLm1heChsLW4sYy1zKSk/MS9kOjB9cmV0dXJuIG8oeSx4LHIsbixzLGQpLHh9ZnVuY3Rpb24gaSh0LGUscixuLGkpe3ZhciBhLG87aWYoaT09PUUodCxlLHIsbik+MClmb3IoYT1lO2E8cjthKz1uKW89QShhLHRbYV0sdFthKzFdLG8pO2Vsc2UgZm9yKGE9ci1uO2E+PWU7YS09bilvPUEoYSx0W2FdLHRbYSsxXSxvKTtyZXR1cm4gbyYmeChvLG8ubmV4dCkmJihNKG8pLG89by5uZXh0KSxvfWZ1bmN0aW9uIGEodCxlKXtpZighdClyZXR1cm4gdDtlfHwoZT10KTt2YXIgcixuPXQ7ZG97aWYocj0hMSxuLnN0ZWluZXJ8fCF4KG4sbi5uZXh0KSYmMCE9PXkobi5wcmV2LG4sbi5uZXh0KSluPW4ubmV4dDtlbHNle2lmKE0obiksKG49ZT1uLnByZXYpPT09bi5uZXh0KWJyZWFrO3I9ITB9fXdoaWxlKHJ8fG4hPT1lKTtyZXR1cm4gZX1mdW5jdGlvbiBvKHQsZSxyLG4saSxmLGgpe2lmKHQpeyFoJiZmJiZmdW5jdGlvbih0LGUscixuKXt2YXIgaT10O2Rve251bGw9PT1pLnomJihpLno9ZChpLngsaS55LGUscixuKSksaS5wcmV2Wj1pLnByZXYsaS5uZXh0Wj1pLm5leHQsaT1pLm5leHR9d2hpbGUoaSE9PXQpO2kucHJldloubmV4dFo9bnVsbCxpLnByZXZaPW51bGwsZnVuY3Rpb24odCl7dmFyIGUscixuLGksYSxvLHMsbCxjPTE7ZG97Zm9yKHI9dCx0PW51bGwsYT1udWxsLG89MDtyOyl7Zm9yKG8rKyxuPXIscz0wLGU9MDtlPGMmJihzKyssbj1uLm5leHRaKTtlKyspO2ZvcihsPWM7cz4wfHxsPjAmJm47KTAhPT1zJiYoMD09PWx8fCFufHxyLno8PW4ueik/KGk9cixyPXIubmV4dFoscy0tKTooaT1uLG49bi5uZXh0WixsLS0pLGE/YS5uZXh0Wj1pOnQ9aSxpLnByZXZaPWEsYT1pO3I9bn1hLm5leHRaPW51bGwsYyo9Mn13aGlsZShvPjEpfShpKX0odCxuLGksZik7Zm9yKHZhciBwLG0sZz10O3QucHJldiE9PXQubmV4dDspaWYocD10LnByZXYsbT10Lm5leHQsZj9sKHQsbixpLGYpOnModCkpZS5wdXNoKHAuaS9yKSxlLnB1c2godC5pL3IpLGUucHVzaChtLmkvciksTSh0KSx0PW0ubmV4dCxnPW0ubmV4dDtlbHNlIGlmKCh0PW0pPT09Zyl7aD8xPT09aD9vKHQ9YyhhKHQpLGUsciksZSxyLG4saSxmLDIpOjI9PT1oJiZ1KHQsZSxyLG4saSxmKTpvKGEodCksZSxyLG4saSxmLDEpO2JyZWFrfX19ZnVuY3Rpb24gcyh0KXt2YXIgZT10LnByZXYscj10LG49dC5uZXh0O2lmKHkoZSxyLG4pPj0wKXJldHVybiExO2Zvcih2YXIgaT10Lm5leHQubmV4dDtpIT09dC5wcmV2Oyl7aWYoZyhlLngsZS55LHIueCxyLnksbi54LG4ueSxpLngsaS55KSYmeShpLnByZXYsaSxpLm5leHQpPj0wKXJldHVybiExO2k9aS5uZXh0fXJldHVybiEwfWZ1bmN0aW9uIGwodCxlLHIsbil7dmFyIGk9dC5wcmV2LGE9dCxvPXQubmV4dDtpZih5KGksYSxvKT49MClyZXR1cm4hMTtmb3IodmFyIHM9aS54PGEueD9pLng8by54P2kueDpvLng6YS54PG8ueD9hLng6by54LGw9aS55PGEueT9pLnk8by55P2kueTpvLnk6YS55PG8ueT9hLnk6by55LGM9aS54PmEueD9pLng+by54P2kueDpvLng6YS54Pm8ueD9hLng6by54LHU9aS55PmEueT9pLnk+by55P2kueTpvLnk6YS55Pm8ueT9hLnk6by55LGY9ZChzLGwsZSxyLG4pLGg9ZChjLHUsZSxyLG4pLHA9dC5wcmV2WixtPXQubmV4dFo7cCYmcC56Pj1mJiZtJiZtLno8PWg7KXtpZihwIT09dC5wcmV2JiZwIT09dC5uZXh0JiZnKGkueCxpLnksYS54LGEueSxvLngsby55LHAueCxwLnkpJiZ5KHAucHJldixwLHAubmV4dCk+PTApcmV0dXJuITE7aWYocD1wLnByZXZaLG0hPT10LnByZXYmJm0hPT10Lm5leHQmJmcoaS54LGkueSxhLngsYS55LG8ueCxvLnksbS54LG0ueSkmJnkobS5wcmV2LG0sbS5uZXh0KT49MClyZXR1cm4hMTttPW0ubmV4dFp9Zm9yKDtwJiZwLno+PWY7KXtpZihwIT09dC5wcmV2JiZwIT09dC5uZXh0JiZnKGkueCxpLnksYS54LGEueSxvLngsby55LHAueCxwLnkpJiZ5KHAucHJldixwLHAubmV4dCk+PTApcmV0dXJuITE7cD1wLnByZXZafWZvcig7bSYmbS56PD1oOyl7aWYobSE9PXQucHJldiYmbSE9PXQubmV4dCYmZyhpLngsaS55LGEueCxhLnksby54LG8ueSxtLngsbS55KSYmeShtLnByZXYsbSxtLm5leHQpPj0wKXJldHVybiExO209bS5uZXh0Wn1yZXR1cm4hMH1mdW5jdGlvbiBjKHQsZSxyKXt2YXIgbj10O2Rve3ZhciBpPW4ucHJldixvPW4ubmV4dC5uZXh0OyF4KGksbykmJmIoaSxuLG4ubmV4dCxvKSYmVChpLG8pJiZUKG8saSkmJihlLnB1c2goaS5pL3IpLGUucHVzaChuLmkvciksZS5wdXNoKG8uaS9yKSxNKG4pLE0obi5uZXh0KSxuPXQ9byksbj1uLm5leHR9d2hpbGUobiE9PXQpO3JldHVybiBhKG4pfWZ1bmN0aW9uIHUodCxlLHIsbixpLHMpe3ZhciBsPXQ7ZG97Zm9yKHZhciBjPWwubmV4dC5uZXh0O2MhPT1sLnByZXY7KXtpZihsLmkhPT1jLmkmJnYobCxjKSl7dmFyIHU9ayhsLGMpO3JldHVybiBsPWEobCxsLm5leHQpLHU9YSh1LHUubmV4dCksbyhsLGUscixuLGkscyksdm9pZCBvKHUsZSxyLG4saSxzKX1jPWMubmV4dH1sPWwubmV4dH13aGlsZShsIT09dCl9ZnVuY3Rpb24gZih0LGUpe3JldHVybiB0LngtZS54fWZ1bmN0aW9uIGgodCxlKXtpZihlPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbj1lLGk9dC54LGE9dC55LG89LTEvMDtkb3tpZihhPD1uLnkmJmE+PW4ubmV4dC55JiZuLm5leHQueSE9PW4ueSl7dmFyIHM9bi54KyhhLW4ueSkqKG4ubmV4dC54LW4ueCkvKG4ubmV4dC55LW4ueSk7aWYoczw9aSYmcz5vKXtpZihvPXMscz09PWkpe2lmKGE9PT1uLnkpcmV0dXJuIG47aWYoYT09PW4ubmV4dC55KXJldHVybiBuLm5leHR9cj1uLng8bi5uZXh0Lng/bjpuLm5leHR9fW49bi5uZXh0fXdoaWxlKG4hPT1lKTtpZighcilyZXR1cm4gbnVsbDtpZihpPT09bylyZXR1cm4gcjt2YXIgbCxjPXIsdT1yLngsZj1yLnksaD0xLzA7bj1yO2Rve2k+PW4ueCYmbi54Pj11JiZpIT09bi54JiZnKGE8Zj9pOm8sYSx1LGYsYTxmP286aSxhLG4ueCxuLnkpJiYobD1NYXRoLmFicyhhLW4ueSkvKGktbi54KSxUKG4sdCkmJihsPGh8fGw9PT1oJiYobi54PnIueHx8bi54PT09ci54JiZwKHIsbikpKSYmKHI9bixoPWwpKSxuPW4ubmV4dH13aGlsZShuIT09Yyk7cmV0dXJuIHJ9KHQsZSkpe3ZhciByPWsoZSx0KTthKGUsZS5uZXh0KSxhKHIsci5uZXh0KX19ZnVuY3Rpb24gcCh0LGUpe3JldHVybiB5KHQucHJldix0LGUucHJldik8MCYmeShlLm5leHQsdCx0Lm5leHQpPDB9ZnVuY3Rpb24gZCh0LGUscixuLGkpe3JldHVybih0PTE0MzE2NTU3NjUmKCh0PTg1ODk5MzQ1OSYoKHQ9MjUyNjQ1MTM1JigodD0xNjcxMTkzNSYoKHQ9MzI3NjcqKHQtcikqaSl8dDw8OCkpfHQ8PDQpKXx0PDwyKSl8dDw8MSkpfChlPTE0MzE2NTU3NjUmKChlPTg1ODk5MzQ1OSYoKGU9MjUyNjQ1MTM1JigoZT0xNjcxMTkzNSYoKGU9MzI3NjcqKGUtbikqaSl8ZTw8OCkpfGU8PDQpKXxlPDwyKSl8ZTw8MSkpPDwxfWZ1bmN0aW9uIG0odCl7dmFyIGU9dCxyPXQ7ZG97KGUueDxyLnh8fGUueD09PXIueCYmZS55PHIueSkmJihyPWUpLGU9ZS5uZXh0fXdoaWxlKGUhPT10KTtyZXR1cm4gcn1mdW5jdGlvbiBnKHQsZSxyLG4saSxhLG8scyl7cmV0dXJuKGktbykqKGUtcyktKHQtbykqKGEtcyk+PTAmJih0LW8pKihuLXMpLShyLW8pKihlLXMpPj0wJiYoci1vKSooYS1zKS0oaS1vKSoobi1zKT49MH1mdW5jdGlvbiB2KHQsZSl7cmV0dXJuIHQubmV4dC5pIT09ZS5pJiZ0LnByZXYuaSE9PWUuaSYmIWZ1bmN0aW9uKHQsZSl7dmFyIHI9dDtkb3tpZihyLmkhPT10LmkmJnIubmV4dC5pIT09dC5pJiZyLmkhPT1lLmkmJnIubmV4dC5pIT09ZS5pJiZiKHIsci5uZXh0LHQsZSkpcmV0dXJuITA7cj1yLm5leHR9d2hpbGUociE9PXQpO3JldHVybiExfSh0LGUpJiYoVCh0LGUpJiZUKGUsdCkmJmZ1bmN0aW9uKHQsZSl7dmFyIHI9dCxuPSExLGk9KHQueCtlLngpLzIsYT0odC55K2UueSkvMjtkb3tyLnk+YSE9ci5uZXh0Lnk+YSYmci5uZXh0LnkhPT1yLnkmJmk8KHIubmV4dC54LXIueCkqKGEtci55KS8oci5uZXh0Lnktci55KStyLngmJihuPSFuKSxyPXIubmV4dH13aGlsZShyIT09dCk7cmV0dXJuIG59KHQsZSkmJih5KHQucHJldix0LGUucHJldil8fHkodCxlLnByZXYsZSkpfHx4KHQsZSkmJnkodC5wcmV2LHQsdC5uZXh0KT4wJiZ5KGUucHJldixlLGUubmV4dCk+MCl9ZnVuY3Rpb24geSh0LGUscil7cmV0dXJuKGUueS10LnkpKihyLngtZS54KS0oZS54LXQueCkqKHIueS1lLnkpfWZ1bmN0aW9uIHgodCxlKXtyZXR1cm4gdC54PT09ZS54JiZ0Lnk9PT1lLnl9ZnVuY3Rpb24gYih0LGUscixuKXt2YXIgaT13KHkodCxlLHIpKSxhPXcoeSh0LGUsbikpLG89dyh5KHIsbix0KSkscz13KHkocixuLGUpKTtyZXR1cm4gaSE9PWEmJm8hPT1zfHwoISgwIT09aXx8IV8odCxyLGUpKXx8KCEoMCE9PWF8fCFfKHQsbixlKSl8fCghKDAhPT1vfHwhXyhyLHQsbikpfHwhKDAhPT1zfHwhXyhyLGUsbikpKSkpfWZ1bmN0aW9uIF8odCxlLHIpe3JldHVybiBlLng8PU1hdGgubWF4KHQueCxyLngpJiZlLng+PU1hdGgubWluKHQueCxyLngpJiZlLnk8PU1hdGgubWF4KHQueSxyLnkpJiZlLnk+PU1hdGgubWluKHQueSxyLnkpfWZ1bmN0aW9uIHcodCl7cmV0dXJuIHQ+MD8xOnQ8MD8tMTowfWZ1bmN0aW9uIFQodCxlKXtyZXR1cm4geSh0LnByZXYsdCx0Lm5leHQpPDA/eSh0LGUsdC5uZXh0KT49MCYmeSh0LHQucHJldixlKT49MDp5KHQsZSx0LnByZXYpPDB8fHkodCx0Lm5leHQsZSk8MH1mdW5jdGlvbiBrKHQsZSl7dmFyIHI9bmV3IFModC5pLHQueCx0LnkpLG49bmV3IFMoZS5pLGUueCxlLnkpLGk9dC5uZXh0LGE9ZS5wcmV2O3JldHVybiB0Lm5leHQ9ZSxlLnByZXY9dCxyLm5leHQ9aSxpLnByZXY9cixuLm5leHQ9cixyLnByZXY9bixhLm5leHQ9bixuLnByZXY9YSxufWZ1bmN0aW9uIEEodCxlLHIsbil7dmFyIGk9bmV3IFModCxlLHIpO3JldHVybiBuPyhpLm5leHQ9bi5uZXh0LGkucHJldj1uLG4ubmV4dC5wcmV2PWksbi5uZXh0PWkpOihpLnByZXY9aSxpLm5leHQ9aSksaX1mdW5jdGlvbiBNKHQpe3QubmV4dC5wcmV2PXQucHJldix0LnByZXYubmV4dD10Lm5leHQsdC5wcmV2WiYmKHQucHJldloubmV4dFo9dC5uZXh0WiksdC5uZXh0WiYmKHQubmV4dFoucHJldlo9dC5wcmV2Wil9ZnVuY3Rpb24gUyh0LGUscil7dGhpcy5pPXQsdGhpcy54PWUsdGhpcy55PXIsdGhpcy5wcmV2PW51bGwsdGhpcy5uZXh0PW51bGwsdGhpcy56PW51bGwsdGhpcy5wcmV2Wj1udWxsLHRoaXMubmV4dFo9bnVsbCx0aGlzLnN0ZWluZXI9ITF9ZnVuY3Rpb24gRSh0LGUscixuKXtmb3IodmFyIGk9MCxhPWUsbz1yLW47YTxyO2ErPW4paSs9KHRbb10tdFthXSkqKHRbYSsxXSt0W28rMV0pLG89YTtyZXR1cm4gaX1lLmV4cG9ydHM9bixlLmV4cG9ydHMuZGVmYXVsdD1uLG4uZGV2aWF0aW9uPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPWUmJmUubGVuZ3RoLGE9aT9lWzBdKnI6dC5sZW5ndGgsbz1NYXRoLmFicyhFKHQsMCxhLHIpKTtpZihpKWZvcih2YXIgcz0wLGw9ZS5sZW5ndGg7czxsO3MrKyl7dmFyIGM9ZVtzXSpyLHU9czxsLTE/ZVtzKzFdKnI6dC5sZW5ndGg7by09TWF0aC5hYnMoRSh0LGMsdSxyKSl9dmFyIGY9MDtmb3Iocz0wO3M8bi5sZW5ndGg7cys9Myl7dmFyIGg9bltzXSpyLHA9bltzKzFdKnIsZD1uW3MrMl0qcjtmKz1NYXRoLmFicygodFtoXS10W2RdKSoodFtwKzFdLXRbaCsxXSktKHRbaF0tdFtwXSkqKHRbZCsxXS10W2grMV0pKX1yZXR1cm4gMD09PW8mJjA9PT1mPzA6TWF0aC5hYnMoKGYtbykvbyl9LG4uZmxhdHRlbj1mdW5jdGlvbih0KXtmb3IodmFyIGU9dFswXVswXS5sZW5ndGgscj17dmVydGljZXM6W10saG9sZXM6W10sZGltZW5zaW9uczplfSxuPTAsaT0wO2k8dC5sZW5ndGg7aSsrKXtmb3IodmFyIGE9MDthPHRbaV0ubGVuZ3RoO2ErKylmb3IodmFyIG89MDtvPGU7bysrKXIudmVydGljZXMucHVzaCh0W2ldW2FdW29dKTtpPjAmJihuKz10W2ktMV0ubGVuZ3RoLHIuaG9sZXMucHVzaChuKSl9cmV0dXJuIHJ9fSx7fV0sMTMwOltmdW5jdGlvbih0LGUscil7dmFyIG49dCgic3Ryb25nbHktY29ubmVjdGVkLWNvbXBvbmVudHMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixpPVtdLGE9W10sbz1bXSxzPXt9LGw9W107ZnVuY3Rpb24gYyh0KXt2YXIgZSxuLGk9ITE7Zm9yKGEucHVzaCh0KSxvW3RdPSEwLGU9MDtlPGxbdF0ubGVuZ3RoO2UrKykobj1sW3RdW2VdKT09PXI/KHUocixhKSxpPSEwKTpvW25dfHwoaT1jKG4pKTtpZihpKSFmdW5jdGlvbiB0KGUpe29bZV09ITEscy5oYXNPd25Qcm9wZXJ0eShlKSYmT2JqZWN0LmtleXMoc1tlXSkuZm9yRWFjaCgoZnVuY3Rpb24ocil7ZGVsZXRlIHNbZV1bcl0sb1tyXSYmdChyKX0pKX0odCk7ZWxzZSBmb3IoZT0wO2U8bFt0XS5sZW5ndGg7ZSsrKXtuPWxbdF1bZV07dmFyIGY9c1tuXTtmfHwoZj17fSxzW25dPWYpLGZbbl09ITB9cmV0dXJuIGEucG9wKCksaX1mdW5jdGlvbiB1KHQscil7dmFyIG49W10uY29uY2F0KHIpLmNvbmNhdCh0KTtlP2UoYyk6aS5wdXNoKG4pfWZ1bmN0aW9uIGYoZSl7IWZ1bmN0aW9uKGUpe2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXI8ZSYmKHRbcl09W10pLHRbcl09dFtyXS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0Pj1lfSkpfShlKTtmb3IodmFyIHIsaT1uKHQpLmNvbXBvbmVudHMuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC5sZW5ndGg+MX0pKSxhPTEvMCxvPTA7bzxpLmxlbmd0aDtvKyspZm9yKHZhciBzPTA7czxpW29dLmxlbmd0aDtzKyspaVtvXVtzXTxhJiYoYT1pW29dW3NdLHI9byk7dmFyIGw9aVtyXTtyZXR1cm4hIWwmJntsZWFzdFZlcnRleDphLGFkakxpc3Q6dC5tYXAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuLTE9PT1sLmluZGV4T2YoZSk/W106dC5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybi0xIT09bC5pbmRleE9mKHQpfSkpfSkpfX1yPTA7Zm9yKHZhciBoPXQubGVuZ3RoO3I8aDspe3ZhciBwPWYocik7aWYocj1wLmxlYXN0VmVydGV4LGw9cC5hZGpMaXN0KXtmb3IodmFyIGQ9MDtkPGwubGVuZ3RoO2QrKylmb3IodmFyIG09MDttPGxbZF0ubGVuZ3RoO20rKyl7dmFyIGc9bFtkXVttXTtvWytnXT0hMSxzW2ddPXt9fWMocikscis9MX1lbHNlIHI9aH1yZXR1cm4gZT92b2lkIDA6aX19LHsic3Ryb25nbHktY29ubmVjdGVkLWNvbXBvbmVudHMiOjMwN31dLDEzMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9vYmplY3QvdmFsaWQtdmFsdWUiKTtlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4gbih0aGlzKS5sZW5ndGg9MCx0aGlzfX0seyIuLi8uLi9vYmplY3QvdmFsaWQtdmFsdWUiOjE2Mn1dLDEzMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi9pcy1pbXBsZW1lbnRlZCIpKCk/QXJyYXkuZnJvbTp0KCIuL3NoaW0iKX0seyIuL2lzLWltcGxlbWVudGVkIjoxMzMsIi4vc2hpbSI6MTM0fV0sMTMzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbigpe3ZhciB0LGUscj1BcnJheS5mcm9tO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiByJiYoZT1yKHQ9WyJyYXoiLCJkd2EiXSksQm9vbGVhbihlJiZlIT09dCYmImR3YSI9PT1lWzFdKSl9fSx7fV0sMTM0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImVzNi1zeW1ib2wiKS5pdGVyYXRvcixpPXQoIi4uLy4uL2Z1bmN0aW9uL2lzLWFyZ3VtZW50cyIpLGE9dCgiLi4vLi4vZnVuY3Rpb24vaXMtZnVuY3Rpb24iKSxvPXQoIi4uLy4uL251bWJlci90by1wb3MtaW50ZWdlciIpLHM9dCgiLi4vLi4vb2JqZWN0L3ZhbGlkLWNhbGxhYmxlIiksbD10KCIuLi8uLi9vYmplY3QvdmFsaWQtdmFsdWUiKSxjPXQoIi4uLy4uL29iamVjdC9pcy12YWx1ZSIpLHU9dCgiLi4vLi4vc3RyaW5nL2lzLXN0cmluZyIpLGY9QXJyYXkuaXNBcnJheSxoPUZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLHA9e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm51bGx9LGQ9T2JqZWN0LmRlZmluZVByb3BlcnR5O2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZSxyLG0sZyx2LHkseCxiLF8sdyxUPWFyZ3VtZW50c1sxXSxrPWFyZ3VtZW50c1syXTtpZih0PU9iamVjdChsKHQpKSxjKFQpJiZzKFQpLHRoaXMmJnRoaXMhPT1BcnJheSYmYSh0aGlzKSllPXRoaXM7ZWxzZXtpZighVCl7aWYoaSh0KSlyZXR1cm4gMSE9PSh2PXQubGVuZ3RoKT9BcnJheS5hcHBseShudWxsLHQpOigoZz1uZXcgQXJyYXkoMSkpWzBdPXRbMF0sZyk7aWYoZih0KSl7Zm9yKGc9bmV3IEFycmF5KHY9dC5sZW5ndGgpLHI9MDtyPHY7KytyKWdbcl09dFtyXTtyZXR1cm4gZ319Zz1bXX1pZighZih0KSlpZih2b2lkIDAhPT0oXz10W25dKSl7Zm9yKHg9cyhfKS5jYWxsKHQpLGUmJihnPW5ldyBlKSxiPXgubmV4dCgpLHI9MDshYi5kb25lOyl3PVQ/aC5jYWxsKFQsayxiLnZhbHVlLHIpOmIudmFsdWUsZT8ocC52YWx1ZT13LGQoZyxyLHApKTpnW3JdPXcsYj14Lm5leHQoKSwrK3I7dj1yfWVsc2UgaWYodSh0KSl7Zm9yKHY9dC5sZW5ndGgsZSYmKGc9bmV3IGUpLHI9MCxtPTA7cjx2Oysrcil3PXRbcl0scisxPHYmJih5PXcuY2hhckNvZGVBdCgwKSk+PTU1Mjk2JiZ5PD01NjMxOSYmKHcrPXRbKytyXSksdz1UP2guY2FsbChULGssdyxtKTp3LGU/KHAudmFsdWU9dyxkKGcsbSxwKSk6Z1ttXT13LCsrbTt2PW19aWYodm9pZCAwPT09dilmb3Iodj1vKHQubGVuZ3RoKSxlJiYoZz1uZXcgZSh2KSkscj0wO3I8djsrK3Ipdz1UP2guY2FsbChULGssdFtyXSxyKTp0W3JdLGU/KHAudmFsdWU9dyxkKGcscixwKSk6Z1tyXT13O3JldHVybiBlJiYocC52YWx1ZT1udWxsLGcubGVuZ3RoPXYpLGd9fSx7Ii4uLy4uL2Z1bmN0aW9uL2lzLWFyZ3VtZW50cyI6MTM1LCIuLi8uLi9mdW5jdGlvbi9pcy1mdW5jdGlvbiI6MTM2LCIuLi8uLi9udW1iZXIvdG8tcG9zLWludGVnZXIiOjE0MiwiLi4vLi4vb2JqZWN0L2lzLXZhbHVlIjoxNTEsIi4uLy4uL29iamVjdC92YWxpZC1jYWxsYWJsZSI6MTYwLCIuLi8uLi9vYmplY3QvdmFsaWQtdmFsdWUiOjE2MiwiLi4vLi4vc3RyaW5nL2lzLXN0cmluZyI6MTY2LCJlczYtc3ltYm9sIjoxNzV9XSwxMzU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxpPW4uY2FsbChmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbi5jYWxsKHQpPT09aX19LHt9XSwxMzY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxpPVJlZ0V4cC5wcm90b3R5cGUudGVzdC5iaW5kKC9eW29iamVjdCBbQS1aYS16MC05XSpGdW5jdGlvbl0kLyk7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0JiZpKG4uY2FsbCh0KSl9fSx7fV0sMTM3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbigpe319LHt9XSwxMzg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4vaXMtaW1wbGVtZW50ZWQiKSgpP01hdGguc2lnbjp0KCIuL3NoaW0iKX0seyIuL2lzLWltcGxlbWVudGVkIjoxMzksIi4vc2hpbSI6MTQwfV0sMTM5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbigpe3ZhciB0PU1hdGguc2lnbjtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdCYmKDE9PT10KDEwKSYmLTE9PT10KC0yMCkpfX0se31dLDE0MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9TnVtYmVyKHQpLGlzTmFOKHQpfHwwPT09dD90OnQ+MD8xOi0xfX0se31dLDE0MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9tYXRoL3NpZ24iKSxpPU1hdGguYWJzLGE9TWF0aC5mbG9vcjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGlzTmFOKHQpPzA6MCE9PSh0PU51bWJlcih0KSkmJmlzRmluaXRlKHQpP24odCkqYShpKHQpKTp0fX0seyIuLi9tYXRoL3NpZ24iOjEzOH1dLDE0MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL3RvLWludGVnZXIiKSxpPU1hdGgubWF4O2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gaSgwLG4odCkpfX0seyIuL3RvLWludGVnZXIiOjE0MX1dLDE0MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL3ZhbGlkLWNhbGxhYmxlIiksaT10KCIuL3ZhbGlkLXZhbHVlIiksYT1GdW5jdGlvbi5wcm90b3R5cGUuYmluZCxvPUZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLHM9T2JqZWN0LmtleXMsbD1PYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiBmdW5jdGlvbihyLGMpe3ZhciB1LGY9YXJndW1lbnRzWzJdLGg9YXJndW1lbnRzWzNdO3JldHVybiByPU9iamVjdChpKHIpKSxuKGMpLHU9cyhyKSxoJiZ1LnNvcnQoImZ1bmN0aW9uIj09dHlwZW9mIGg/YS5jYWxsKGgscik6dm9pZCAwKSwiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9dVt0XSksby5jYWxsKHQsdSwoZnVuY3Rpb24odCxuKXtyZXR1cm4gbC5jYWxsKHIsdCk/by5jYWxsKGMsZixyW3RdLHQscixuKTplfSkpfX19LHsiLi92YWxpZC1jYWxsYWJsZSI6MTYwLCIuL3ZhbGlkLXZhbHVlIjoxNjJ9XSwxNDQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4vaXMtaW1wbGVtZW50ZWQiKSgpP09iamVjdC5hc3NpZ246dCgiLi9zaGltIil9LHsiLi9pcy1pbXBsZW1lbnRlZCI6MTQ1LCIuL3NoaW0iOjE0Nn1dLDE0NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgdCxlPU9iamVjdC5hc3NpZ247cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGUmJihlKHQ9e2ZvbzoicmF6In0se2JhcjoiZHdhIn0se3Ryenk6InRyenkifSksdC5mb28rdC5iYXIrdC50cnp5PT09InJhemR3YXRyenkiKX19LHt9XSwxNDY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4va2V5cyIpLGk9dCgiLi4vdmFsaWQtdmFsdWUiKSxhPU1hdGgubWF4O2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLG8scyxsPWEoYXJndW1lbnRzLmxlbmd0aCwyKTtmb3IodD1PYmplY3QoaSh0KSkscz1mdW5jdGlvbihuKXt0cnl7dFtuXT1lW25dfWNhdGNoKHQpe3J8fChyPXQpfX0sbz0xO288bDsrK28pbihlPWFyZ3VtZW50c1tvXSkuZm9yRWFjaChzKTtpZih2b2lkIDAhPT1yKXRocm93IHI7cmV0dXJuIHR9fSx7Ii4uL2tleXMiOjE1MiwiLi4vdmFsaWQtdmFsdWUiOjE2Mn1dLDE0NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9hcnJheS9mcm9tIiksaT10KCIuL2Fzc2lnbiIpLGE9dCgiLi92YWxpZC12YWx1ZSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1PYmplY3QoYSh0KSkscj1hcmd1bWVudHNbMV0sbz1PYmplY3QoYXJndW1lbnRzWzJdKTtpZihlIT09dCYmIXIpcmV0dXJuIGU7dmFyIHM9e307cmV0dXJuIHI/bihyLChmdW5jdGlvbihlKXsoby5lbnN1cmV8fGUgaW4gdCkmJihzW2VdPXRbZV0pfSkpOmkocyx0KSxzfX0seyIuLi9hcnJheS9mcm9tIjoxMzIsIi4vYXNzaWduIjoxNDQsIi4vdmFsaWQtdmFsdWUiOjE2Mn1dLDE0ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbixpLGEsbyxzPU9iamVjdC5jcmVhdGU7dCgiLi9zZXQtcHJvdG90eXBlLW9mL2lzLWltcGxlbWVudGVkIikoKXx8KG49dCgiLi9zZXQtcHJvdG90eXBlLW9mL3NoaW0iKSksZS5leHBvcnRzPW4/MSE9PW4ubGV2ZWw/czooaT17fSxhPXt9LG89e2NvbmZpZ3VyYWJsZTohMSxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLHZhbHVlOnZvaWQgMH0sT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoT2JqZWN0LnByb3RvdHlwZSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7YVt0XT0iX19wcm90b19fIiE9PXQ/bzp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsdmFsdWU6dm9pZCAwfX0pKSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhpLGEpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJudWxsUG9seWZpbGwiLHtjb25maWd1cmFibGU6ITEsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMSx2YWx1ZTppfSksZnVuY3Rpb24odCxlKXtyZXR1cm4gcyhudWxsPT09dD9pOnQsZSl9KTpzfSx7Ii4vc2V0LXByb3RvdHlwZS1vZi9pcy1pbXBsZW1lbnRlZCI6MTU4LCIuL3NldC1wcm90b3R5cGUtb2Yvc2hpbSI6MTU5fV0sMTQ5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuL19pdGVyYXRlIikoImZvckVhY2giKX0seyIuL19pdGVyYXRlIjoxNDN9XSwxNTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9pcy12YWx1ZSIpLGk9e2Z1bmN0aW9uOiEwLG9iamVjdDohMH07ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBuKHQpJiZpW3R5cGVvZiB0XXx8ITF9fSx7Ii4vaXMtdmFsdWUiOjE1MX1dLDE1MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9mdW5jdGlvbi9ub29wIikoKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHQhPT1uJiZudWxsIT09dH19LHsiLi4vZnVuY3Rpb24vbm9vcCI6MTM3fV0sMTUyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuL2lzLWltcGxlbWVudGVkIikoKT9PYmplY3Qua2V5czp0KCIuL3NoaW0iKX0seyIuL2lzLWltcGxlbWVudGVkIjoxNTMsIi4vc2hpbSI6MTU0fV0sMTUzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbigpe3RyeXtyZXR1cm4gT2JqZWN0LmtleXMoInByaW1pdGl2ZSIpLCEwfWNhdGNoKHQpe3JldHVybiExfX19LHt9XSwxNTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vaXMtdmFsdWUiKSxpPU9iamVjdC5rZXlzO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gaShuKHQpP09iamVjdCh0KTp0KX19LHsiLi4vaXMtdmFsdWUiOjE1MX1dLDE1NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL3ZhbGlkLWNhbGxhYmxlIiksaT10KCIuL2Zvci1lYWNoIiksYT1GdW5jdGlvbi5wcm90b3R5cGUuY2FsbDtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj17fSxvPWFyZ3VtZW50c1syXTtyZXR1cm4gbihlKSxpKHQsKGZ1bmN0aW9uKHQsbixpLHMpe3Jbbl09YS5jYWxsKGUsbyx0LG4saSxzKX0pKSxyfX0seyIuL2Zvci1lYWNoIjoxNDksIi4vdmFsaWQtY2FsbGFibGUiOjE2MH1dLDE1NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2lzLXZhbHVlIiksaT1BcnJheS5wcm90b3R5cGUuZm9yRWFjaCxhPU9iamVjdC5jcmVhdGUsbz1mdW5jdGlvbih0LGUpe3ZhciByO2ZvcihyIGluIHQpZVtyXT10W3JdfTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9YShudWxsKTtyZXR1cm4gaS5jYWxsKGFyZ3VtZW50cywoZnVuY3Rpb24odCl7bih0KSYmbyhPYmplY3QodCksZSl9KSksZX19LHsiLi9pcy12YWx1ZSI6MTUxfV0sMTU3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuL2lzLWltcGxlbWVudGVkIikoKT9PYmplY3Quc2V0UHJvdG90eXBlT2Y6dCgiLi9zaGltIil9LHsiLi9pcy1pbXBsZW1lbnRlZCI6MTU4LCIuL3NoaW0iOjE1OX1dLDE1ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1PYmplY3QuY3JlYXRlLGk9T2JqZWN0LmdldFByb3RvdHlwZU9mLGE9e307ZS5leHBvcnRzPWZ1bmN0aW9uKCl7dmFyIHQ9T2JqZWN0LnNldFByb3RvdHlwZU9mLGU9YXJndW1lbnRzWzBdfHxuO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0JiZpKHQoZShudWxsKSxhKSk9PT1hfX0se31dLDE1OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbixpPXQoIi4uL2lzLW9iamVjdCIpLGE9dCgiLi4vdmFsaWQtdmFsdWUiKSxvPU9iamVjdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZixzPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxsPXtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCx2YWx1ZTp2b2lkIDB9O249ZnVuY3Rpb24odCxlKXtpZihhKHQpLG51bGw9PT1lfHxpKGUpKXJldHVybiB0O3Rocm93IG5ldyBUeXBlRXJyb3IoIlByb3RvdHlwZSBtdXN0IGJlIG51bGwgb3IgYW4gb2JqZWN0Iil9LGUuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZSxyO3JldHVybiB0PygyPT09dC5sZXZlbD90LnNldD8ocj10LnNldCxlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHIuY2FsbChuKHQsZSksZSksdH0pOmU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbih0LGUpLl9fcHJvdG9fXz1lLHR9OmU9ZnVuY3Rpb24gdChlLHIpe3ZhciBpO3JldHVybiBuKGUsciksKGk9by5jYWxsKHQubnVsbFBvbHlmaWxsLGUpKSYmZGVsZXRlIHQubnVsbFBvbHlmaWxsLl9fcHJvdG9fXyxudWxsPT09ciYmKHI9dC5udWxsUG9seWZpbGwpLGUuX19wcm90b19fPXIsaSYmcyh0Lm51bGxQb2x5ZmlsbCwiX19wcm90b19fIixsKSxlfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwibGV2ZWwiLHtjb25maWd1cmFibGU6ITEsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMSx2YWx1ZTp0LmxldmVsfSkpOm51bGx9KGZ1bmN0aW9uKCl7dmFyIHQsZT1PYmplY3QuY3JlYXRlKG51bGwpLHI9e30sbj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE9iamVjdC5wcm90b3R5cGUsIl9fcHJvdG9fXyIpO2lmKG4pe3RyeXsodD1uLnNldCkuY2FsbChlLHIpfWNhdGNoKHQpe31pZihPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk9PT1yKXJldHVybntzZXQ6dCxsZXZlbDoyfX1yZXR1cm4gZS5fX3Byb3RvX189cixPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk9PT1yP3tsZXZlbDoyfTooKGU9e30pLl9fcHJvdG9fXz1yLE9iamVjdC5nZXRQcm90b3R5cGVPZihlKT09PXImJntsZXZlbDoxfSl9KCkpLHQoIi4uL2NyZWF0ZSIpfSx7Ii4uL2NyZWF0ZSI6MTQ4LCIuLi9pcy1vYmplY3QiOjE1MCwiLi4vdmFsaWQtdmFsdWUiOjE2Mn1dLDE2MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcih0KyIgaXMgbm90IGEgZnVuY3Rpb24iKTtyZXR1cm4gdH19LHt9XSwxNjE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9pcy1vYmplY3QiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoIW4odCkpdGhyb3cgbmV3IFR5cGVFcnJvcih0KyIgaXMgbm90IGFuIE9iamVjdCIpO3JldHVybiB0fX0seyIuL2lzLW9iamVjdCI6MTUwfV0sMTYyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vaXMtdmFsdWUiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoIW4odCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IHVzZSBudWxsIG9yIHVuZGVmaW5lZCIpO3JldHVybiB0fX0seyIuL2lzLXZhbHVlIjoxNTF9XSwxNjM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4vaXMtaW1wbGVtZW50ZWQiKSgpP1N0cmluZy5wcm90b3R5cGUuY29udGFpbnM6dCgiLi9zaGltIil9LHsiLi9pcy1pbXBsZW1lbnRlZCI6MTY0LCIuL3NoaW0iOjE2NX1dLDE2NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj0icmF6ZHdhdHJ6eSI7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIG4uY29udGFpbnMmJighMD09PW4uY29udGFpbnMoImR3YSIpJiYhMT09PW4uY29udGFpbnMoImZvbyIpKX19LHt9XSwxNjU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49U3RyaW5nLnByb3RvdHlwZS5pbmRleE9mO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbi5jYWxsKHRoaXMsdCxhcmd1bWVudHNbMV0pPi0xfX0se31dLDE2NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLGk9bi5jYWxsKCIiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0fHx0JiYib2JqZWN0Ij09dHlwZW9mIHQmJih0IGluc3RhbmNlb2YgU3RyaW5nfHxuLmNhbGwodCk9PT1pKXx8ITF9fSx7fV0sMTY3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPU9iamVjdC5jcmVhdGUobnVsbCksaT1NYXRoLnJhbmRvbTtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgdDtkb3t0PWkoKS50b1N0cmluZygzNikuc2xpY2UoMil9d2hpbGUoblt0XSk7cmV0dXJuIHR9fSx7fV0sMTY4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuLGk9dCgiZXM1LWV4dC9vYmplY3Qvc2V0LXByb3RvdHlwZS1vZiIpLGE9dCgiZXM1LWV4dC9zdHJpbmcvIy9jb250YWlucyIpLG89dCgiZCIpLHM9dCgiZXM2LXN5bWJvbCIpLGw9dCgiLi8iKSxjPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTtuPWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2lmKCEodGhpcyBpbnN0YW5jZW9mIG4pKXRocm93IG5ldyBUeXBlRXJyb3IoIkNvbnN0cnVjdG9yIHJlcXVpcmVzICduZXcnIik7bC5jYWxsKHRoaXMsdCksZT1lP2EuY2FsbChlLCJrZXkrdmFsdWUiKT8ia2V5K3ZhbHVlIjphLmNhbGwoZSwia2V5Iik/ImtleSI6InZhbHVlIjoidmFsdWUiLGModGhpcywiX19raW5kX18iLG8oIiIsZSkpfSxpJiZpKG4sbCksZGVsZXRlIG4ucHJvdG90eXBlLmNvbnN0cnVjdG9yLG4ucHJvdG90eXBlPU9iamVjdC5jcmVhdGUobC5wcm90b3R5cGUse19yZXNvbHZlOm8oKGZ1bmN0aW9uKHQpe3JldHVybiJ2YWx1ZSI9PT10aGlzLl9fa2luZF9fP3RoaXMuX19saXN0X19bdF06ImtleSt2YWx1ZSI9PT10aGlzLl9fa2luZF9fP1t0LHRoaXMuX19saXN0X19bdF1dOnR9KSl9KSxjKG4ucHJvdG90eXBlLHMudG9TdHJpbmdUYWcsbygiYyIsIkFycmF5IEl0ZXJhdG9yIikpfSx7Ii4vIjoxNzEsZDoxMDYsImVzNS1leHQvb2JqZWN0L3NldC1wcm90b3R5cGUtb2YiOjE1NywiZXM1LWV4dC9zdHJpbmcvIy9jb250YWlucyI6MTYzLCJlczYtc3ltYm9sIjoxNzV9XSwxNjk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZXM1LWV4dC9mdW5jdGlvbi9pcy1hcmd1bWVudHMiKSxpPXQoImVzNS1leHQvb2JqZWN0L3ZhbGlkLWNhbGxhYmxlIiksYT10KCJlczUtZXh0L3N0cmluZy9pcy1zdHJpbmciKSxvPXQoIi4vZ2V0Iikscz1BcnJheS5pc0FycmF5LGw9RnVuY3Rpb24ucHJvdG90eXBlLmNhbGwsYz1BcnJheS5wcm90b3R5cGUuc29tZTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcix1LGYsaCxwLGQsbSxnLHY9YXJndW1lbnRzWzJdO2lmKHModCl8fG4odCk/cj0iYXJyYXkiOmEodCk/cj0ic3RyaW5nIjp0PW8odCksaShlKSxmPWZ1bmN0aW9uKCl7aD0hMH0sImFycmF5IiE9PXIpaWYoInN0cmluZyIhPT1yKWZvcih1PXQubmV4dCgpOyF1LmRvbmU7KXtpZihsLmNhbGwoZSx2LHUudmFsdWUsZiksaClyZXR1cm47dT10Lm5leHQoKX1lbHNlIGZvcihkPXQubGVuZ3RoLHA9MDtwPGQmJihtPXRbcF0scCsxPGQmJihnPW0uY2hhckNvZGVBdCgwKSk+PTU1Mjk2JiZnPD01NjMxOSYmKG0rPXRbKytwXSksbC5jYWxsKGUsdixtLGYpLCFoKTsrK3ApO2Vsc2UgYy5jYWxsKHQsKGZ1bmN0aW9uKHQpe3JldHVybiBsLmNhbGwoZSx2LHQsZiksaH0pKX19LHsiLi9nZXQiOjE3MCwiZXM1LWV4dC9mdW5jdGlvbi9pcy1hcmd1bWVudHMiOjEzNSwiZXM1LWV4dC9vYmplY3QvdmFsaWQtY2FsbGFibGUiOjE2MCwiZXM1LWV4dC9zdHJpbmcvaXMtc3RyaW5nIjoxNjZ9XSwxNzA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZXM1LWV4dC9mdW5jdGlvbi9pcy1hcmd1bWVudHMiKSxpPXQoImVzNS1leHQvc3RyaW5nL2lzLXN0cmluZyIpLGE9dCgiLi9hcnJheSIpLG89dCgiLi9zdHJpbmciKSxzPXQoIi4vdmFsaWQtaXRlcmFibGUiKSxsPXQoImVzNi1zeW1ib2wiKS5pdGVyYXRvcjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHModClbbF0/dFtsXSgpOm4odCk/bmV3IGEodCk6aSh0KT9uZXcgbyh0KTpuZXcgYSh0KX19LHsiLi9hcnJheSI6MTY4LCIuL3N0cmluZyI6MTczLCIuL3ZhbGlkLWl0ZXJhYmxlIjoxNzQsImVzNS1leHQvZnVuY3Rpb24vaXMtYXJndW1lbnRzIjoxMzUsImVzNS1leHQvc3RyaW5nL2lzLXN0cmluZyI6MTY2LCJlczYtc3ltYm9sIjoxNzV9XSwxNzE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG4saT10KCJlczUtZXh0L2FycmF5LyMvY2xlYXIiKSxhPXQoImVzNS1leHQvb2JqZWN0L2Fzc2lnbiIpLG89dCgiZXM1LWV4dC9vYmplY3QvdmFsaWQtY2FsbGFibGUiKSxzPXQoImVzNS1leHQvb2JqZWN0L3ZhbGlkLXZhbHVlIiksbD10KCJkIiksYz10KCJkL2F1dG8tYmluZCIpLHU9dCgiZXM2LXN5bWJvbCIpLGY9T2JqZWN0LmRlZmluZVByb3BlcnR5LGg9T2JqZWN0LmRlZmluZVByb3BlcnRpZXM7ZS5leHBvcnRzPW49ZnVuY3Rpb24odCxlKXtpZighKHRoaXMgaW5zdGFuY2VvZiBuKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDb25zdHJ1Y3RvciByZXF1aXJlcyAnbmV3JyIpO2godGhpcyx7X19saXN0X186bCgidyIscyh0KSksX19jb250ZXh0X186bCgidyIsZSksX19uZXh0SW5kZXhfXzpsKCJ3IiwwKX0pLGUmJihvKGUub24pLGUub24oIl9hZGQiLHRoaXMuX29uQWRkKSxlLm9uKCJfZGVsZXRlIix0aGlzLl9vbkRlbGV0ZSksZS5vbigiX2NsZWFyIix0aGlzLl9vbkNsZWFyKSl9LGRlbGV0ZSBuLnByb3RvdHlwZS5jb25zdHJ1Y3RvcixoKG4ucHJvdG90eXBlLGEoe19uZXh0OmwoKGZ1bmN0aW9uKCl7dmFyIHQ7aWYodGhpcy5fX2xpc3RfXylyZXR1cm4gdGhpcy5fX3JlZG9fXyYmdm9pZCAwIT09KHQ9dGhpcy5fX3JlZG9fXy5zaGlmdCgpKT90OnRoaXMuX19uZXh0SW5kZXhfXzx0aGlzLl9fbGlzdF9fLmxlbmd0aD90aGlzLl9fbmV4dEluZGV4X18rKzp2b2lkIHRoaXMuX3VuQmluZCgpfSkpLG5leHQ6bCgoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3JlYXRlUmVzdWx0KHRoaXMuX25leHQoKSl9KSksX2NyZWF0ZVJlc3VsdDpsKChmdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwPT09dD97ZG9uZTohMCx2YWx1ZTp2b2lkIDB9Ontkb25lOiExLHZhbHVlOnRoaXMuX3Jlc29sdmUodCl9fSkpLF9yZXNvbHZlOmwoKGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9fbGlzdF9fW3RdfSkpLF91bkJpbmQ6bCgoZnVuY3Rpb24oKXt0aGlzLl9fbGlzdF9fPW51bGwsZGVsZXRlIHRoaXMuX19yZWRvX18sdGhpcy5fX2NvbnRleHRfXyYmKHRoaXMuX19jb250ZXh0X18ub2ZmKCJfYWRkIix0aGlzLl9vbkFkZCksdGhpcy5fX2NvbnRleHRfXy5vZmYoIl9kZWxldGUiLHRoaXMuX29uRGVsZXRlKSx0aGlzLl9fY29udGV4dF9fLm9mZigiX2NsZWFyIix0aGlzLl9vbkNsZWFyKSx0aGlzLl9fY29udGV4dF9fPW51bGwpfSkpLHRvU3RyaW5nOmwoKGZ1bmN0aW9uKCl7cmV0dXJuIltvYmplY3QgIisodGhpc1t1LnRvU3RyaW5nVGFnXXx8Ik9iamVjdCIpKyJdIn0pKX0sYyh7X29uQWRkOmwoKGZ1bmN0aW9uKHQpe3Q+PXRoaXMuX19uZXh0SW5kZXhfX3x8KCsrdGhpcy5fX25leHRJbmRleF9fLHRoaXMuX19yZWRvX18/KHRoaXMuX19yZWRvX18uZm9yRWFjaCgoZnVuY3Rpb24oZSxyKXtlPj10JiYodGhpcy5fX3JlZG9fX1tyXT0rK2UpfSksdGhpcyksdGhpcy5fX3JlZG9fXy5wdXNoKHQpKTpmKHRoaXMsIl9fcmVkb19fIixsKCJjIixbdF0pKSl9KSksX29uRGVsZXRlOmwoKGZ1bmN0aW9uKHQpe3ZhciBlO3Q+PXRoaXMuX19uZXh0SW5kZXhfX3x8KC0tdGhpcy5fX25leHRJbmRleF9fLHRoaXMuX19yZWRvX18mJigtMSE9PShlPXRoaXMuX19yZWRvX18uaW5kZXhPZih0KSkmJnRoaXMuX19yZWRvX18uc3BsaWNlKGUsMSksdGhpcy5fX3JlZG9fXy5mb3JFYWNoKChmdW5jdGlvbihlLHIpe2U+dCYmKHRoaXMuX19yZWRvX19bcl09LS1lKX0pLHRoaXMpKSl9KSksX29uQ2xlYXI6bCgoZnVuY3Rpb24oKXt0aGlzLl9fcmVkb19fJiZpLmNhbGwodGhpcy5fX3JlZG9fXyksdGhpcy5fX25leHRJbmRleF9fPTB9KSl9KSkpLGYobi5wcm90b3R5cGUsdS5pdGVyYXRvcixsKChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpKX0se2Q6MTA2LCJkL2F1dG8tYmluZCI6MTA1LCJlczUtZXh0L2FycmF5LyMvY2xlYXIiOjEzMSwiZXM1LWV4dC9vYmplY3QvYXNzaWduIjoxNDQsImVzNS1leHQvb2JqZWN0L3ZhbGlkLWNhbGxhYmxlIjoxNjAsImVzNS1leHQvb2JqZWN0L3ZhbGlkLXZhbHVlIjoxNjIsImVzNi1zeW1ib2wiOjE3NX1dLDE3MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJlczUtZXh0L2Z1bmN0aW9uL2lzLWFyZ3VtZW50cyIpLGk9dCgiZXM1LWV4dC9vYmplY3QvaXMtdmFsdWUiKSxhPXQoImVzNS1leHQvc3RyaW5nL2lzLXN0cmluZyIpLG89dCgiZXM2LXN5bWJvbCIpLml0ZXJhdG9yLHM9QXJyYXkuaXNBcnJheTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuISFpKHQpJiYoISFzKHQpfHwoISFhKHQpfHwoISFuKHQpfHwiZnVuY3Rpb24iPT10eXBlb2YgdFtvXSkpKX19LHsiZXM1LWV4dC9mdW5jdGlvbi9pcy1hcmd1bWVudHMiOjEzNSwiZXM1LWV4dC9vYmplY3QvaXMtdmFsdWUiOjE1MSwiZXM1LWV4dC9zdHJpbmcvaXMtc3RyaW5nIjoxNjYsImVzNi1zeW1ib2wiOjE3NX1dLDE3MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbixpPXQoImVzNS1leHQvb2JqZWN0L3NldC1wcm90b3R5cGUtb2YiKSxhPXQoImQiKSxvPXQoImVzNi1zeW1ib2wiKSxzPXQoIi4vIiksbD1PYmplY3QuZGVmaW5lUHJvcGVydHk7bj1lLmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoISh0aGlzIGluc3RhbmNlb2YgbikpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ29uc3RydWN0b3IgcmVxdWlyZXMgJ25ldyciKTt0PVN0cmluZyh0KSxzLmNhbGwodGhpcyx0KSxsKHRoaXMsIl9fbGVuZ3RoX18iLGEoIiIsdC5sZW5ndGgpKX0saSYmaShuLHMpLGRlbGV0ZSBuLnByb3RvdHlwZS5jb25zdHJ1Y3RvcixuLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHMucHJvdG90eXBlLHtfbmV4dDphKChmdW5jdGlvbigpe2lmKHRoaXMuX19saXN0X18pcmV0dXJuIHRoaXMuX19uZXh0SW5kZXhfXzx0aGlzLl9fbGVuZ3RoX18/dGhpcy5fX25leHRJbmRleF9fKys6dm9pZCB0aGlzLl91bkJpbmQoKX0pKSxfcmVzb2x2ZTphKChmdW5jdGlvbih0KXt2YXIgZSxyPXRoaXMuX19saXN0X19bdF07cmV0dXJuIHRoaXMuX19uZXh0SW5kZXhfXz09PXRoaXMuX19sZW5ndGhfXz9yOihlPXIuY2hhckNvZGVBdCgwKSk+PTU1Mjk2JiZlPD01NjMxOT9yK3RoaXMuX19saXN0X19bdGhpcy5fX25leHRJbmRleF9fKytdOnJ9KSl9KSxsKG4ucHJvdG90eXBlLG8udG9TdHJpbmdUYWcsYSgiYyIsIlN0cmluZyBJdGVyYXRvciIpKX0seyIuLyI6MTcxLGQ6MTA2LCJlczUtZXh0L29iamVjdC9zZXQtcHJvdG90eXBlLW9mIjoxNTcsImVzNi1zeW1ib2wiOjE3NX1dLDE3NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2lzLWl0ZXJhYmxlIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKCFuKHQpKXRocm93IG5ldyBUeXBlRXJyb3IodCsiIGlzIG5vdCBpdGVyYWJsZSIpO3JldHVybiB0fX0seyIuL2lzLWl0ZXJhYmxlIjoxNzJ9XSwxNzU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4vaXMtaW1wbGVtZW50ZWQiKSgpP3QoImV4dC9nbG9iYWwtdGhpcyIpLlN5bWJvbDp0KCIuL3BvbHlmaWxsIil9LHsiLi9pcy1pbXBsZW1lbnRlZCI6MTc2LCIuL3BvbHlmaWxsIjoxODEsImV4dC9nbG9iYWwtdGhpcyI6MTg4fV0sMTc2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImV4dC9nbG9iYWwtdGhpcyIpLGk9e29iamVjdDohMCxzeW1ib2w6ITB9O2UuZXhwb3J0cz1mdW5jdGlvbigpe3ZhciB0LGU9bi5TeW1ib2w7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpcmV0dXJuITE7dD1lKCJ0ZXN0IHN5bWJvbCIpO3RyeXtTdHJpbmcodCl9Y2F0Y2godCl7cmV0dXJuITF9cmV0dXJuISFpW3R5cGVvZiBlLml0ZXJhdG9yXSYmKCEhaVt0eXBlb2YgZS50b1ByaW1pdGl2ZV0mJiEhaVt0eXBlb2YgZS50b1N0cmluZ1RhZ10pfX0seyJleHQvZ2xvYmFsLXRoaXMiOjE4OH1dLDE3NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuISF0JiYoInN5bWJvbCI9PXR5cGVvZiB0fHwhIXQuY29uc3RydWN0b3ImJigiU3ltYm9sIj09PXQuY29uc3RydWN0b3IubmFtZSYmIlN5bWJvbCI9PT10W3QuY29uc3RydWN0b3IudG9TdHJpbmdUYWddKSl9fSx7fV0sMTc4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQiKSxpPU9iamVjdC5jcmVhdGUsYT1PYmplY3QuZGVmaW5lUHJvcGVydHksbz1PYmplY3QucHJvdG90eXBlLHM9aShudWxsKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlLHIsaT0wO3NbdCsoaXx8IiIpXTspKytpO3JldHVybiBzW3QrPWl8fCIiXT0hMCxhKG8sZT0iQEAiK3Qsbi5ncyhudWxsLChmdW5jdGlvbih0KXtyfHwocj0hMCxhKHRoaXMsZSxuKHQpKSxyPSExKX0pKSksZX19LHtkOjEwNn1dLDE3OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkIiksaT10KCJleHQvZ2xvYmFsLXRoaXMiKS5TeW1ib2w7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0LHtoYXNJbnN0YW5jZTpuKCIiLGkmJmkuaGFzSW5zdGFuY2V8fHQoImhhc0luc3RhbmNlIikpLGlzQ29uY2F0U3ByZWFkYWJsZTpuKCIiLGkmJmkuaXNDb25jYXRTcHJlYWRhYmxlfHx0KCJpc0NvbmNhdFNwcmVhZGFibGUiKSksaXRlcmF0b3I6bigiIixpJiZpLml0ZXJhdG9yfHx0KCJpdGVyYXRvciIpKSxtYXRjaDpuKCIiLGkmJmkubWF0Y2h8fHQoIm1hdGNoIikpLHJlcGxhY2U6bigiIixpJiZpLnJlcGxhY2V8fHQoInJlcGxhY2UiKSksc2VhcmNoOm4oIiIsaSYmaS5zZWFyY2h8fHQoInNlYXJjaCIpKSxzcGVjaWVzOm4oIiIsaSYmaS5zcGVjaWVzfHx0KCJzcGVjaWVzIikpLHNwbGl0Om4oIiIsaSYmaS5zcGxpdHx8dCgic3BsaXQiKSksdG9QcmltaXRpdmU6bigiIixpJiZpLnRvUHJpbWl0aXZlfHx0KCJ0b1ByaW1pdGl2ZSIpKSx0b1N0cmluZ1RhZzpuKCIiLGkmJmkudG9TdHJpbmdUYWd8fHQoInRvU3RyaW5nVGFnIikpLHVuc2NvcGFibGVzOm4oIiIsaSYmaS51bnNjb3BhYmxlc3x8dCgidW5zY29wYWJsZXMiKSl9KX19LHtkOjEwNiwiZXh0L2dsb2JhbC10aGlzIjoxODh9XSwxODA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZCIpLGk9dCgiLi4vLi4vLi4vdmFsaWRhdGUtc3ltYm9sIiksYT1PYmplY3QuY3JlYXRlKG51bGwpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnRpZXModCx7Zm9yOm4oKGZ1bmN0aW9uKGUpe3JldHVybiBhW2VdP2FbZV06YVtlXT10KFN0cmluZyhlKSl9KSksa2V5Rm9yOm4oKGZ1bmN0aW9uKHQpe3ZhciBlO2ZvcihlIGluIGkodCksYSlpZihhW2VdPT09dClyZXR1cm4gZX0pKX0pfX0seyIuLi8uLi8uLi92YWxpZGF0ZS1zeW1ib2wiOjE4MixkOjEwNn1dLDE4MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbixpLGEsbz10KCJkIikscz10KCIuL3ZhbGlkYXRlLXN5bWJvbCIpLGw9dCgiZXh0L2dsb2JhbC10aGlzIikuU3ltYm9sLGM9dCgiLi9saWIvcHJpdmF0ZS9nZW5lcmF0ZS1uYW1lIiksdT10KCIuL2xpYi9wcml2YXRlL3NldHVwL3N0YW5kYXJkLXN5bWJvbHMiKSxmPXQoIi4vbGliL3ByaXZhdGUvc2V0dXAvc3ltYm9sLXJlZ2lzdHJ5IiksaD1PYmplY3QuY3JlYXRlLHA9T2JqZWN0LmRlZmluZVByb3BlcnRpZXMsZD1PYmplY3QuZGVmaW5lUHJvcGVydHk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGwpdHJ5e1N0cmluZyhsKCkpLGE9ITB9Y2F0Y2godCl7fWVsc2UgbD1udWxsO2k9ZnVuY3Rpb24odCl7aWYodGhpcyBpbnN0YW5jZW9mIGkpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sIGlzIG5vdCBhIGNvbnN0cnVjdG9yIik7cmV0dXJuIG4odCl9LGUuZXhwb3J0cz1uPWZ1bmN0aW9uIHQoZSl7dmFyIHI7aWYodGhpcyBpbnN0YW5jZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sIGlzIG5vdCBhIGNvbnN0cnVjdG9yIik7cmV0dXJuIGE/bChlKToocj1oKGkucHJvdG90eXBlKSxlPXZvaWQgMD09PWU/IiI6U3RyaW5nKGUpLHAocix7X19kZXNjcmlwdGlvbl9fOm8oIiIsZSksX19uYW1lX186bygiIixjKGUpKX0pKX0sdShuKSxmKG4pLHAoaS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOm8obiksdG9TdHJpbmc6bygiIiwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fX25hbWVfX30pKX0pLHAobi5wcm90b3R5cGUse3RvU3RyaW5nOm8oKGZ1bmN0aW9uKCl7cmV0dXJuIlN5bWJvbCAoIitzKHRoaXMpLl9fZGVzY3JpcHRpb25fXysiKSJ9KSksdmFsdWVPZjpvKChmdW5jdGlvbigpe3JldHVybiBzKHRoaXMpfSkpfSksZChuLnByb3RvdHlwZSxuLnRvUHJpbWl0aXZlLG8oIiIsKGZ1bmN0aW9uKCl7dmFyIHQ9cyh0aGlzKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHQ/dDp0LnRvU3RyaW5nKCl9KSkpLGQobi5wcm90b3R5cGUsbi50b1N0cmluZ1RhZyxvKCJjIiwiU3ltYm9sIikpLGQoaS5wcm90b3R5cGUsbi50b1N0cmluZ1RhZyxvKCJjIixuLnByb3RvdHlwZVtuLnRvU3RyaW5nVGFnXSkpLGQoaS5wcm90b3R5cGUsbi50b1ByaW1pdGl2ZSxvKCJjIixuLnByb3RvdHlwZVtuLnRvUHJpbWl0aXZlXSkpfSx7Ii4vbGliL3ByaXZhdGUvZ2VuZXJhdGUtbmFtZSI6MTc4LCIuL2xpYi9wcml2YXRlL3NldHVwL3N0YW5kYXJkLXN5bWJvbHMiOjE3OSwiLi9saWIvcHJpdmF0ZS9zZXR1cC9zeW1ib2wtcmVnaXN0cnkiOjE4MCwiLi92YWxpZGF0ZS1zeW1ib2wiOjE4MixkOjEwNiwiZXh0L2dsb2JhbC10aGlzIjoxODh9XSwxODI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9pcy1zeW1ib2wiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoIW4odCkpdGhyb3cgbmV3IFR5cGVFcnJvcih0KyIgaXMgbm90IGEgc3ltYm9sIik7cmV0dXJuIHR9fSx7Ii4vaXMtc3ltYm9sIjoxNzd9XSwxODM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4vaXMtaW1wbGVtZW50ZWQiKSgpP1dlYWtNYXA6dCgiLi9wb2x5ZmlsbCIpfSx7Ii4vaXMtaW1wbGVtZW50ZWQiOjE4NCwiLi9wb2x5ZmlsbCI6MTg2fV0sMTg0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbigpe3ZhciB0LGU7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIFdlYWtNYXApcmV0dXJuITE7dHJ5e3Q9bmV3IFdlYWtNYXAoW1tlPXt9LCJvbmUiXSxbe30sInR3byJdLFt7fSwidGhyZWUiXV0pfWNhdGNoKHQpe3JldHVybiExfXJldHVybiJbb2JqZWN0IFdlYWtNYXBdIj09PVN0cmluZyh0KSYmKCJmdW5jdGlvbiI9PXR5cGVvZiB0LnNldCYmKHQuc2V0KHt9LDEpPT09dCYmKCJmdW5jdGlvbiI9PXR5cGVvZiB0LmRlbGV0ZSYmKCJmdW5jdGlvbiI9PXR5cGVvZiB0LmhhcyYmIm9uZSI9PT10LmdldChlKSkpKSl9fSx7fV0sMTg1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz0iZnVuY3Rpb24iPT10eXBlb2YgV2Vha01hcCYmIltvYmplY3QgV2Vha01hcF0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG5ldyBXZWFrTWFwKX0se31dLDE4NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbixpPXQoImVzNS1leHQvb2JqZWN0L2lzLXZhbHVlIiksYT10KCJlczUtZXh0L29iamVjdC9zZXQtcHJvdG90eXBlLW9mIiksbz10KCJlczUtZXh0L29iamVjdC92YWxpZC1vYmplY3QiKSxzPXQoImVzNS1leHQvb2JqZWN0L3ZhbGlkLXZhbHVlIiksbD10KCJlczUtZXh0L3N0cmluZy9yYW5kb20tdW5pcSIpLGM9dCgiZCIpLHU9dCgiZXM2LWl0ZXJhdG9yL2dldCIpLGY9dCgiZXM2LWl0ZXJhdG9yL2Zvci1vZiIpLGg9dCgiZXM2LXN5bWJvbCIpLnRvU3RyaW5nVGFnLHA9dCgiLi9pcy1uYXRpdmUtaW1wbGVtZW50ZWQiKSxkPUFycmF5LmlzQXJyYXksbT1PYmplY3QuZGVmaW5lUHJvcGVydHksZz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LHY9T2JqZWN0LmdldFByb3RvdHlwZU9mO2UuZXhwb3J0cz1uPWZ1bmN0aW9uKCl7dmFyIHQsZT1hcmd1bWVudHNbMF07aWYoISh0aGlzIGluc3RhbmNlb2YgbikpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ29uc3RydWN0b3IgcmVxdWlyZXMgJ25ldyciKTtyZXR1cm4gdD1wJiZhJiZXZWFrTWFwIT09bj9hKG5ldyBXZWFrTWFwLHYodGhpcykpOnRoaXMsaShlKSYmKGQoZSl8fChlPXUoZSkpKSxtKHQsIl9fd2Vha01hcERhdGFfXyIsYygiYyIsIiR3ZWFrTWFwJCIrbCgpKSksZT8oZihlLChmdW5jdGlvbihlKXtzKGUpLHQuc2V0KGVbMF0sZVsxXSl9KSksdCk6dH0scCYmKGEmJmEobixXZWFrTWFwKSxuLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKFdlYWtNYXAucHJvdG90eXBlLHtjb25zdHJ1Y3RvcjpjKG4pfSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKG4ucHJvdG90eXBlLHtkZWxldGU6YygoZnVuY3Rpb24odCl7cmV0dXJuISFnLmNhbGwobyh0KSx0aGlzLl9fd2Vha01hcERhdGFfXykmJihkZWxldGUgdFt0aGlzLl9fd2Vha01hcERhdGFfX10sITApfSkpLGdldDpjKChmdW5jdGlvbih0KXtpZihnLmNhbGwobyh0KSx0aGlzLl9fd2Vha01hcERhdGFfXykpcmV0dXJuIHRbdGhpcy5fX3dlYWtNYXBEYXRhX19dfSkpLGhhczpjKChmdW5jdGlvbih0KXtyZXR1cm4gZy5jYWxsKG8odCksdGhpcy5fX3dlYWtNYXBEYXRhX18pfSkpLHNldDpjKChmdW5jdGlvbih0LGUpe3JldHVybiBtKG8odCksdGhpcy5fX3dlYWtNYXBEYXRhX18sYygiYyIsZSkpLHRoaXN9KSksdG9TdHJpbmc6YygoZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCBXZWFrTWFwXSJ9KSl9KSxtKG4ucHJvdG90eXBlLGgsYygiYyIsIldlYWtNYXAiKSl9LHsiLi9pcy1uYXRpdmUtaW1wbGVtZW50ZWQiOjE4NSxkOjEwNiwiZXM1LWV4dC9vYmplY3QvaXMtdmFsdWUiOjE1MSwiZXM1LWV4dC9vYmplY3Qvc2V0LXByb3RvdHlwZS1vZiI6MTU3LCJlczUtZXh0L29iamVjdC92YWxpZC1vYmplY3QiOjE2MSwiZXM1LWV4dC9vYmplY3QvdmFsaWQtdmFsdWUiOjE2MiwiZXM1LWV4dC9zdHJpbmcvcmFuZG9tLXVuaXEiOjE2NywiZXM2LWl0ZXJhdG9yL2Zvci1vZiI6MTY5LCJlczYtaXRlcmF0b3IvZ2V0IjoxNzAsImVzNi1zeW1ib2wiOjE3NX1dLDE4NzpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPWZ1bmN0aW9uKCl7aWYoIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmKXJldHVybiBzZWxmO2lmKCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cpcmV0dXJuIHdpbmRvdzt0aHJvdyBuZXcgRXJyb3IoIlVuYWJsZSB0byByZXNvbHZlIGdsb2JhbCBgdGhpc2AiKX07ZS5leHBvcnRzPWZ1bmN0aW9uKCl7aWYodGhpcylyZXR1cm4gdGhpczt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5wcm90b3R5cGUsIl9fZ2xvYmFsX18iLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sY29uZmlndXJhYmxlOiEwfSl9Y2F0Y2godCl7cmV0dXJuIG4oKX10cnl7cmV0dXJuIF9fZ2xvYmFsX198fG4oKX1maW5hbGx5e2RlbGV0ZSBPYmplY3QucHJvdG90eXBlLl9fZ2xvYmFsX199fSgpfSx7fV0sMTg4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuL2lzLWltcGxlbWVudGVkIikoKT9nbG9iYWxUaGlzOnQoIi4vaW1wbGVtZW50YXRpb24iKX0seyIuL2ltcGxlbWVudGF0aW9uIjoxODcsIi4vaXMtaW1wbGVtZW50ZWQiOjE4OX1dLDE4OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJighIWdsb2JhbFRoaXMmJmdsb2JhbFRoaXMuQXJyYXk9PT1BcnJheSl9fSx7fV0sMTkwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImlzLXN0cmluZy1ibGFuayIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10eXBlb2YgdDtpZigic3RyaW5nIj09PWUpe3ZhciByPXQ7aWYoMD09PSh0PSt0KSYmbihyKSlyZXR1cm4hMX1lbHNlIGlmKCJudW1iZXIiIT09ZSlyZXR1cm4hMTtyZXR1cm4gdC10PDF9fSx7ImlzLXN0cmluZy1ibGFuayI6MjM3fV0sMTkxOltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiZHR5cGUiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe2lmKCF0KXRocm93IG5ldyBUeXBlRXJyb3IoIm11c3Qgc3BlY2lmeSBkYXRhIGFzIGZpcnN0IHBhcmFtZXRlciIpO2lmKHI9MHwrKHJ8fDApLEFycmF5LmlzQXJyYXkodCkmJnRbMF0mJiJudW1iZXIiPT10eXBlb2YgdFswXVswXSl7dmFyIGksYSxvLHMsbD10WzBdLmxlbmd0aCxjPXQubGVuZ3RoKmw7ZSYmInN0cmluZyIhPXR5cGVvZiBlfHwoZT1uZXcobihlfHwiZmxvYXQzMiIpKShjK3IpKTt2YXIgdT1lLmxlbmd0aC1yO2lmKGMhPT11KXRocm93IG5ldyBFcnJvcigic291cmNlIGxlbmd0aCAiK2MrIiAoIitsKyJ4Iit0Lmxlbmd0aCsiKSBkb2VzIG5vdCBtYXRjaCBkZXN0aW5hdGlvbiBsZW5ndGggIit1KTtmb3IoaT0wLG89cjtpPHQubGVuZ3RoO2krKylmb3IoYT0wO2E8bDthKyspZVtvKytdPW51bGw9PT10W2ldW2FdP05hTjp0W2ldW2FdfWVsc2UgaWYoZSYmInN0cmluZyIhPXR5cGVvZiBlKWUuc2V0KHQscik7ZWxzZXt2YXIgZj1uKGV8fCJmbG9hdDMyIik7aWYoQXJyYXkuaXNBcnJheSh0KXx8ImFycmF5Ij09PWUpZm9yKGU9bmV3IGYodC5sZW5ndGgrciksaT0wLG89cixzPWUubGVuZ3RoO288cztvKyssaSsrKWVbb109bnVsbD09PXRbaV0/TmFOOnRbaV07ZWxzZSAwPT09cj9lPW5ldyBmKHQpOihlPW5ldyBmKHQubGVuZ3RoK3IpKS5zZXQodCxyKX1yZXR1cm4gZX19LHtkdHlwZToxMjd9XSwxOTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiY3NzLWZvbnQvc3RyaW5naWZ5IiksaT1bMzIsMTI2XTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9KHQ9dHx8e30pLnNoYXBlP3Quc2hhcGU6dC5jYW52YXM/W3QuY2FudmFzLndpZHRoLHQuY2FudmFzLmhlaWdodF06WzUxMiw1MTJdLHI9dC5jYW52YXN8fGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLGE9dC5mb250LG89Im51bWJlciI9PXR5cGVvZiB0LnN0ZXA/W3Quc3RlcCx0LnN0ZXBdOnQuc3RlcHx8WzMyLDMyXSxzPXQuY2hhcnN8fGk7YSYmInN0cmluZyIhPXR5cGVvZiBhJiYoYT1uKGEpKTtpZihBcnJheS5pc0FycmF5KHMpKXtpZigyPT09cy5sZW5ndGgmJiJudW1iZXIiPT10eXBlb2Ygc1swXSYmIm51bWJlciI9PXR5cGVvZiBzWzFdKXtmb3IodmFyIGw9W10sYz1zWzBdLHU9MDtjPD1zWzFdO2MrKylsW3UrK109U3RyaW5nLmZyb21DaGFyQ29kZShjKTtzPWx9fWVsc2Ugcz1TdHJpbmcocykuc3BsaXQoIiIpO2U9ZS5zbGljZSgpLHIud2lkdGg9ZVswXSxyLmhlaWdodD1lWzFdO3ZhciBmPXIuZ2V0Q29udGV4dCgiMmQiKTtmLmZpbGxTdHlsZT0iIzAwMCIsZi5maWxsUmVjdCgwLDAsci53aWR0aCxyLmhlaWdodCksZi5mb250PWEsZi50ZXh0QWxpZ249ImNlbnRlciIsZi50ZXh0QmFzZWxpbmU9Im1pZGRsZSIsZi5maWxsU3R5bGU9IiNmZmYiO3ZhciBoPW9bMF0vMixwPW9bMV0vMjtmb3IoYz0wO2M8cy5sZW5ndGg7YysrKWYuZmlsbFRleHQoc1tjXSxoLHApLChoKz1vWzBdKT5lWzBdLW9bMF0vMiYmKGg9b1swXS8yLHArPW9bMV0pO3JldHVybiByfX0seyJjc3MtZm9udC9zdHJpbmdpZnkiOjEwMn1dLDE5MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7ZXx8KGU9e30pLCgic3RyaW5nIj09dHlwZW9mIHR8fEFycmF5LmlzQXJyYXkodCkpJiYoZS5mYW1pbHk9dCk7dmFyIHI9QXJyYXkuaXNBcnJheShlLmZhbWlseSk/ZS5mYW1pbHkuam9pbigiLCAiKTplLmZhbWlseTtpZighcil0aHJvdyBFcnJvcigiYGZhbWlseWAgbXVzdCBiZSBkZWZpbmVkIik7dmFyIHM9ZS5zaXplfHxlLmZvbnRTaXplfHxlLmVtfHw0OCxsPWUud2VpZ2h0fHxlLmZvbnRXZWlnaHR8fCIiLGM9KHQ9W2Uuc3R5bGV8fGUuZm9udFN0eWxlfHwiIixsLHNdLmpvaW4oIiAiKSsicHggIityLGUub3JpZ2lufHwidG9wIik7aWYobi5jYWNoZVtyXSYmczw9bi5jYWNoZVtyXS5lbSlyZXR1cm4gaShuLmNhY2hlW3JdLGMpO3ZhciB1PWUuY2FudmFzfHxuLmNhbnZhcyxmPXUuZ2V0Q29udGV4dCgiMmQiKSxoPXt1cHBlcjp2b2lkIDAhPT1lLnVwcGVyP2UudXBwZXI6IkgiLGxvd2VyOnZvaWQgMCE9PWUubG93ZXI/ZS5sb3dlcjoieCIsZGVzY2VudDp2b2lkIDAhPT1lLmRlc2NlbnQ/ZS5kZXNjZW50OiJwIixhc2NlbnQ6dm9pZCAwIT09ZS5hc2NlbnQ/ZS5hc2NlbnQ6ImgiLHRpdHRsZTp2b2lkIDAhPT1lLnRpdHRsZT9lLnRpdHRsZToiaSIsb3ZlcnNob290OnZvaWQgMCE9PWUub3ZlcnNob290P2Uub3ZlcnNob290OiJPIn0scD1NYXRoLmNlaWwoMS41KnMpO3UuaGVpZ2h0PXAsdS53aWR0aD0uNSpwLGYuZm9udD10O3ZhciBkPXt0b3A6MH07Zi5jbGVhclJlY3QoMCwwLHAscCksZi50ZXh0QmFzZWxpbmU9InRvcCIsZi5maWxsU3R5bGU9ImJsYWNrIixmLmZpbGxUZXh0KCJIIiwwLDApO3ZhciBtPWEoZi5nZXRJbWFnZURhdGEoMCwwLHAscCkpO2YuY2xlYXJSZWN0KDAsMCxwLHApLGYudGV4dEJhc2VsaW5lPSJib3R0b20iLGYuZmlsbFRleHQoIkgiLDAscCk7dmFyIGc9YShmLmdldEltYWdlRGF0YSgwLDAscCxwKSk7ZC5saW5lSGVpZ2h0PWQuYm90dG9tPXAtZyttLGYuY2xlYXJSZWN0KDAsMCxwLHApLGYudGV4dEJhc2VsaW5lPSJhbHBoYWJldGljIixmLmZpbGxUZXh0KCJIIiwwLHApO3ZhciB2PXAtYShmLmdldEltYWdlRGF0YSgwLDAscCxwKSktMSttO2QuYmFzZWxpbmU9ZC5hbHBoYWJldGljPXYsZi5jbGVhclJlY3QoMCwwLHAscCksZi50ZXh0QmFzZWxpbmU9Im1pZGRsZSIsZi5maWxsVGV4dCgiSCIsMCwuNSpwKTt2YXIgeT1hKGYuZ2V0SW1hZ2VEYXRhKDAsMCxwLHApKTtkLm1lZGlhbj1kLm1pZGRsZT1wLXktMSttLS41KnAsZi5jbGVhclJlY3QoMCwwLHAscCksZi50ZXh0QmFzZWxpbmU9ImhhbmdpbmciLGYuZmlsbFRleHQoIkgiLDAsLjUqcCk7dmFyIHg9YShmLmdldEltYWdlRGF0YSgwLDAscCxwKSk7ZC5oYW5naW5nPXAteC0xK20tLjUqcCxmLmNsZWFyUmVjdCgwLDAscCxwKSxmLnRleHRCYXNlbGluZT0iaWRlb2dyYXBoaWMiLGYuZmlsbFRleHQoIkgiLDAscCk7dmFyIGI9YShmLmdldEltYWdlRGF0YSgwLDAscCxwKSk7aWYoZC5pZGVvZ3JhcGhpYz1wLWItMSttLGgudXBwZXImJihmLmNsZWFyUmVjdCgwLDAscCxwKSxmLnRleHRCYXNlbGluZT0idG9wIixmLmZpbGxUZXh0KGgudXBwZXIsMCwwKSxkLnVwcGVyPWEoZi5nZXRJbWFnZURhdGEoMCwwLHAscCkpLGQuY2FwSGVpZ2h0PWQuYmFzZWxpbmUtZC51cHBlciksaC5sb3dlciYmKGYuY2xlYXJSZWN0KDAsMCxwLHApLGYudGV4dEJhc2VsaW5lPSJ0b3AiLGYuZmlsbFRleHQoaC5sb3dlciwwLDApLGQubG93ZXI9YShmLmdldEltYWdlRGF0YSgwLDAscCxwKSksZC54SGVpZ2h0PWQuYmFzZWxpbmUtZC5sb3dlciksaC50aXR0bGUmJihmLmNsZWFyUmVjdCgwLDAscCxwKSxmLnRleHRCYXNlbGluZT0idG9wIixmLmZpbGxUZXh0KGgudGl0dGxlLDAsMCksZC50aXR0bGU9YShmLmdldEltYWdlRGF0YSgwLDAscCxwKSkpLGguYXNjZW50JiYoZi5jbGVhclJlY3QoMCwwLHAscCksZi50ZXh0QmFzZWxpbmU9InRvcCIsZi5maWxsVGV4dChoLmFzY2VudCwwLDApLGQuYXNjZW50PWEoZi5nZXRJbWFnZURhdGEoMCwwLHAscCkpKSxoLmRlc2NlbnQmJihmLmNsZWFyUmVjdCgwLDAscCxwKSxmLnRleHRCYXNlbGluZT0idG9wIixmLmZpbGxUZXh0KGguZGVzY2VudCwwLDApLGQuZGVzY2VudD1vKGYuZ2V0SW1hZ2VEYXRhKDAsMCxwLHApKSksaC5vdmVyc2hvb3Qpe2YuY2xlYXJSZWN0KDAsMCxwLHApLGYudGV4dEJhc2VsaW5lPSJ0b3AiLGYuZmlsbFRleHQoaC5vdmVyc2hvb3QsMCwwKTt2YXIgXz1vKGYuZ2V0SW1hZ2VEYXRhKDAsMCxwLHApKTtkLm92ZXJzaG9vdD1fLXZ9Zm9yKHZhciB3IGluIGQpZFt3XS89cztyZXR1cm4gZC5lbT1zLG4uY2FjaGVbcl09ZCxpKGQsYyl9ZnVuY3Rpb24gaSh0LGUpe3ZhciByPXt9O2Zvcih2YXIgbiBpbiJzdHJpbmciPT10eXBlb2YgZSYmKGU9dFtlXSksdCkiZW0iIT09biYmKHJbbl09dFtuXS1lKTtyZXR1cm4gcn1mdW5jdGlvbiBhKHQpe2Zvcih2YXIgZT10LmhlaWdodCxyPXQuZGF0YSxuPTM7bjxyLmxlbmd0aDtuKz00KWlmKDAhPT1yW25dKXJldHVybiBNYXRoLmZsb29yKC4yNSoobi0zKS9lKX1mdW5jdGlvbiBvKHQpe2Zvcih2YXIgZT10LmhlaWdodCxyPXQuZGF0YSxuPXIubGVuZ3RoLTE7bj4wO24tPTQpaWYoMCE9PXJbbl0pcmV0dXJuIE1hdGguZmxvb3IoLjI1KihuLTMpL2UpfWUuZXhwb3J0cz1uLG4uY2FudmFzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLG4uY2FjaGU9e319LHt9XSwxOTQ6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZigic3RyaW5nIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcigibXVzdCBzcGVjaWZ5IHR5cGUgc3RyaW5nIik7aWYoZT1lfHx7fSwidW5kZWZpbmVkIj09dHlwZW9mIGRvY3VtZW50JiYhZS5jYW52YXMpcmV0dXJuIG51bGw7dmFyIHI9ZS5jYW52YXN8fGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOyJudW1iZXIiPT10eXBlb2YgZS53aWR0aCYmKHIud2lkdGg9ZS53aWR0aCk7Im51bWJlciI9PXR5cGVvZiBlLmhlaWdodCYmKHIuaGVpZ2h0PWUuaGVpZ2h0KTt2YXIgbixpPWU7dHJ5e3ZhciBhPVt0XTswPT09dC5pbmRleE9mKCJ3ZWJnbCIpJiZhLnB1c2goImV4cGVyaW1lbnRhbC0iK3QpO2Zvcih2YXIgbz0wO288YS5sZW5ndGg7bysrKWlmKG49ci5nZXRDb250ZXh0KGFbb10saSkpcmV0dXJuIG59Y2F0Y2godCl7bj1udWxsfXJldHVybiBufHxudWxsfX0se31dLDE5NTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPWVbMF0sbj1lWzFdLGk9ZVsyXSxhPWVbM10sbz1lWzRdLHM9ZVs1XSxsPWVbNl0sYz1lWzddLHU9ZVs4XSxmPWVbOV0saD1lWzEwXSxwPWVbMTFdLGQ9ZVsxMl0sbT1lWzEzXSxnPWVbMTRdLHY9ZVsxNV07cmV0dXJuIHRbMF09cyooaCp2LXAqZyktZioobCp2LWMqZykrbSoobCpwLWMqaCksdFsxXT0tKG4qKGgqdi1wKmcpLWYqKGkqdi1hKmcpK20qKGkqcC1hKmgpKSx0WzJdPW4qKGwqdi1jKmcpLXMqKGkqdi1hKmcpK20qKGkqYy1hKmwpLHRbM109LShuKihsKnAtYypoKS1zKihpKnAtYSpoKStmKihpKmMtYSpsKSksdFs0XT0tKG8qKGgqdi1wKmcpLXUqKGwqdi1jKmcpK2QqKGwqcC1jKmgpKSx0WzVdPXIqKGgqdi1wKmcpLXUqKGkqdi1hKmcpK2QqKGkqcC1hKmgpLHRbNl09LShyKihsKnYtYypnKS1vKihpKnYtYSpnKStkKihpKmMtYSpsKSksdFs3XT1yKihsKnAtYypoKS1vKihpKnAtYSpoKSt1KihpKmMtYSpsKSx0WzhdPW8qKGYqdi1wKm0pLXUqKHMqdi1jKm0pK2QqKHMqcC1jKmYpLHRbOV09LShyKihmKnYtcCptKS11KihuKnYtYSptKStkKihuKnAtYSpmKSksdFsxMF09cioocyp2LWMqbSktbyoobip2LWEqbSkrZCoobipjLWEqcyksdFsxMV09LShyKihzKnAtYypmKS1vKihuKnAtYSpmKSt1KihuKmMtYSpzKSksdFsxMl09LShvKihmKmctaCptKS11KihzKmctbCptKStkKihzKmgtbCpmKSksdFsxM109ciooZipnLWgqbSktdSoobipnLWkqbSkrZCoobipoLWkqZiksdFsxNF09LShyKihzKmctbCptKS1vKihuKmctaSptKStkKihuKmwtaSpzKSksdFsxNV09cioocypoLWwqZiktbyoobipoLWkqZikrdSoobipsLWkqcyksdH19LHt9XSwxOTY6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IEZsb2F0MzJBcnJheSgxNik7cmV0dXJuIGVbMF09dFswXSxlWzFdPXRbMV0sZVsyXT10WzJdLGVbM109dFszXSxlWzRdPXRbNF0sZVs1XT10WzVdLGVbNl09dFs2XSxlWzddPXRbN10sZVs4XT10WzhdLGVbOV09dFs5XSxlWzEwXT10WzEwXSxlWzExXT10WzExXSxlWzEyXT10WzEyXSxlWzEzXT10WzEzXSxlWzE0XT10WzE0XSxlWzE1XT10WzE1XSxlfX0se31dLDE5NzpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiB0WzBdPWVbMF0sdFsxXT1lWzFdLHRbMl09ZVsyXSx0WzNdPWVbM10sdFs0XT1lWzRdLHRbNV09ZVs1XSx0WzZdPWVbNl0sdFs3XT1lWzddLHRbOF09ZVs4XSx0WzldPWVbOV0sdFsxMF09ZVsxMF0sdFsxMV09ZVsxMV0sdFsxMl09ZVsxMl0sdFsxM109ZVsxM10sdFsxNF09ZVsxNF0sdFsxNV09ZVsxNV0sdH19LHt9XSwxOTg6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgRmxvYXQzMkFycmF5KDE2KTtyZXR1cm4gdFswXT0xLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09MCx0WzVdPTEsdFs2XT0wLHRbN109MCx0WzhdPTAsdFs5XT0wLHRbMTBdPTEsdFsxMV09MCx0WzEyXT0wLHRbMTNdPTAsdFsxNF09MCx0WzE1XT0xLHR9fSx7fV0sMTk5OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0scj10WzFdLG49dFsyXSxpPXRbM10sYT10WzRdLG89dFs1XSxzPXRbNl0sbD10WzddLGM9dFs4XSx1PXRbOV0sZj10WzEwXSxoPXRbMTFdLHA9dFsxMl0sZD10WzEzXSxtPXRbMTRdLGc9dFsxNV07cmV0dXJuKGUqby1yKmEpKihmKmctaCptKS0oZSpzLW4qYSkqKHUqZy1oKmQpKyhlKmwtaSphKSoodSptLWYqZCkrKHIqcy1uKm8pKihjKmctaCpwKS0ocipsLWkqbykqKGMqbS1mKnApKyhuKmwtaSpzKSooYypkLXUqcCl9fSx7fV0sMjAwOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxuPWVbMV0saT1lWzJdLGE9ZVszXSxvPXIrcixzPW4rbixsPWkraSxjPXIqbyx1PW4qbyxmPW4qcyxoPWkqbyxwPWkqcyxkPWkqbCxtPWEqbyxnPWEqcyx2PWEqbDtyZXR1cm4gdFswXT0xLWYtZCx0WzFdPXUrdix0WzJdPWgtZyx0WzNdPTAsdFs0XT11LXYsdFs1XT0xLWMtZCx0WzZdPXArbSx0WzddPTAsdFs4XT1oK2csdFs5XT1wLW0sdFsxMF09MS1jLWYsdFsxMV09MCx0WzEyXT0wLHRbMTNdPTAsdFsxNF09MCx0WzE1XT0xLHR9fSx7fV0sMjAxOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbixpLGEsbz1yWzBdLHM9clsxXSxsPXJbMl0sYz1NYXRoLnNxcnQobypvK3MqcytsKmwpO2lmKE1hdGguYWJzKGMpPDFlLTYpcmV0dXJuIG51bGw7cmV0dXJuIG8qPWM9MS9jLHMqPWMsbCo9YyxuPU1hdGguc2luKGUpLGk9TWF0aC5jb3MoZSksYT0xLWksdFswXT1vKm8qYStpLHRbMV09cypvKmErbCpuLHRbMl09bCpvKmEtcypuLHRbM109MCx0WzRdPW8qcyphLWwqbix0WzVdPXMqcyphK2ksdFs2XT1sKnMqYStvKm4sdFs3XT0wLHRbOF09bypsKmErcypuLHRbOV09cypsKmEtbypuLHRbMTBdPWwqbCphK2ksdFsxMV09MCx0WzEyXT0wLHRbMTNdPTAsdFsxNF09MCx0WzE1XT0xLHR9fSx7fV0sMjAyOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1lWzBdLGk9ZVsxXSxhPWVbMl0sbz1lWzNdLHM9bituLGw9aStpLGM9YSthLHU9bipzLGY9bipsLGg9bipjLHA9aSpsLGQ9aSpjLG09YSpjLGc9bypzLHY9bypsLHk9bypjO3JldHVybiB0WzBdPTEtKHArbSksdFsxXT1mK3ksdFsyXT1oLXYsdFszXT0wLHRbNF09Zi15LHRbNV09MS0odSttKSx0WzZdPWQrZyx0WzddPTAsdFs4XT1oK3YsdFs5XT1kLWcsdFsxMF09MS0odStwKSx0WzExXT0wLHRbMTJdPXJbMF0sdFsxM109clsxXSx0WzE0XT1yWzJdLHRbMTVdPTEsdH19LHt9XSwyMDM6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXT1lWzBdLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09MCx0WzVdPWVbMV0sdFs2XT0wLHRbN109MCx0WzhdPTAsdFs5XT0wLHRbMTBdPWVbMl0sdFsxMV09MCx0WzEyXT0wLHRbMTNdPTAsdFsxNF09MCx0WzE1XT0xLHR9fSx7fV0sMjA0OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMF09MSx0WzFdPTAsdFsyXT0wLHRbM109MCx0WzRdPTAsdFs1XT0xLHRbNl09MCx0WzddPTAsdFs4XT0wLHRbOV09MCx0WzEwXT0xLHRbMTFdPTAsdFsxMl09ZVswXSx0WzEzXT1lWzFdLHRbMTRdPWVbMl0sdFsxNV09MSx0fX0se31dLDIwNTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPU1hdGguc2luKGUpLG49TWF0aC5jb3MoZSk7cmV0dXJuIHRbMF09MSx0WzFdPTAsdFsyXT0wLHRbM109MCx0WzRdPTAsdFs1XT1uLHRbNl09cix0WzddPTAsdFs4XT0wLHRbOV09LXIsdFsxMF09bix0WzExXT0wLHRbMTJdPTAsdFsxM109MCx0WzE0XT0wLHRbMTVdPTEsdH19LHt9XSwyMDY6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1NYXRoLnNpbihlKSxuPU1hdGguY29zKGUpO3JldHVybiB0WzBdPW4sdFsxXT0wLHRbMl09LXIsdFszXT0wLHRbNF09MCx0WzVdPTEsdFs2XT0wLHRbN109MCx0WzhdPXIsdFs5XT0wLHRbMTBdPW4sdFsxMV09MCx0WzEyXT0wLHRbMTNdPTAsdFsxNF09MCx0WzE1XT0xLHR9fSx7fV0sMjA3OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9TWF0aC5zaW4oZSksbj1NYXRoLmNvcyhlKTtyZXR1cm4gdFswXT1uLHRbMV09cix0WzJdPTAsdFszXT0wLHRbNF09LXIsdFs1XT1uLHRbNl09MCx0WzddPTAsdFs4XT0wLHRbOV09MCx0WzEwXT0xLHRbMTFdPTAsdFsxMl09MCx0WzEzXT0wLHRbMTRdPTAsdFsxNV09MSx0fX0se31dLDIwODpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuLGksYSxvKXt2YXIgcz0xLyhyLWUpLGw9MS8oaS1uKSxjPTEvKGEtbyk7cmV0dXJuIHRbMF09MiphKnMsdFsxXT0wLHRbMl09MCx0WzNdPTAsdFs0XT0wLHRbNV09MiphKmwsdFs2XT0wLHRbN109MCx0WzhdPShyK2UpKnMsdFs5XT0oaStuKSpsLHRbMTBdPShvK2EpKmMsdFsxMV09LTEsdFsxMl09MCx0WzEzXT0wLHRbMTRdPW8qYSoyKmMsdFsxNV09MCx0fX0se31dLDIwOTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gdFswXT0xLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09MCx0WzVdPTEsdFs2XT0wLHRbN109MCx0WzhdPTAsdFs5XT0wLHRbMTBdPTEsdFsxMV09MCx0WzEyXT0wLHRbMTNdPTAsdFsxNF09MCx0WzE1XT0xLHR9fSx7fV0sMjEwOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPXtjcmVhdGU6dCgiLi9jcmVhdGUiKSxjbG9uZTp0KCIuL2Nsb25lIiksY29weTp0KCIuL2NvcHkiKSxpZGVudGl0eTp0KCIuL2lkZW50aXR5IiksdHJhbnNwb3NlOnQoIi4vdHJhbnNwb3NlIiksaW52ZXJ0OnQoIi4vaW52ZXJ0IiksYWRqb2ludDp0KCIuL2Fkam9pbnQiKSxkZXRlcm1pbmFudDp0KCIuL2RldGVybWluYW50IiksbXVsdGlwbHk6dCgiLi9tdWx0aXBseSIpLHRyYW5zbGF0ZTp0KCIuL3RyYW5zbGF0ZSIpLHNjYWxlOnQoIi4vc2NhbGUiKSxyb3RhdGU6dCgiLi9yb3RhdGUiKSxyb3RhdGVYOnQoIi4vcm90YXRlWCIpLHJvdGF0ZVk6dCgiLi9yb3RhdGVZIikscm90YXRlWjp0KCIuL3JvdGF0ZVoiKSxmcm9tUm90YXRpb246dCgiLi9mcm9tUm90YXRpb24iKSxmcm9tUm90YXRpb25UcmFuc2xhdGlvbjp0KCIuL2Zyb21Sb3RhdGlvblRyYW5zbGF0aW9uIiksZnJvbVNjYWxpbmc6dCgiLi9mcm9tU2NhbGluZyIpLGZyb21UcmFuc2xhdGlvbjp0KCIuL2Zyb21UcmFuc2xhdGlvbiIpLGZyb21YUm90YXRpb246dCgiLi9mcm9tWFJvdGF0aW9uIiksZnJvbVlSb3RhdGlvbjp0KCIuL2Zyb21ZUm90YXRpb24iKSxmcm9tWlJvdGF0aW9uOnQoIi4vZnJvbVpSb3RhdGlvbiIpLGZyb21RdWF0OnQoIi4vZnJvbVF1YXQiKSxmcnVzdHVtOnQoIi4vZnJ1c3R1bSIpLHBlcnNwZWN0aXZlOnQoIi4vcGVyc3BlY3RpdmUiKSxwZXJzcGVjdGl2ZUZyb21GaWVsZE9mVmlldzp0KCIuL3BlcnNwZWN0aXZlRnJvbUZpZWxkT2ZWaWV3Iiksb3J0aG86dCgiLi9vcnRobyIpLGxvb2tBdDp0KCIuL2xvb2tBdCIpLHN0cjp0KCIuL3N0ciIpfX0seyIuL2Fkam9pbnQiOjE5NSwiLi9jbG9uZSI6MTk2LCIuL2NvcHkiOjE5NywiLi9jcmVhdGUiOjE5OCwiLi9kZXRlcm1pbmFudCI6MTk5LCIuL2Zyb21RdWF0IjoyMDAsIi4vZnJvbVJvdGF0aW9uIjoyMDEsIi4vZnJvbVJvdGF0aW9uVHJhbnNsYXRpb24iOjIwMiwiLi9mcm9tU2NhbGluZyI6MjAzLCIuL2Zyb21UcmFuc2xhdGlvbiI6MjA0LCIuL2Zyb21YUm90YXRpb24iOjIwNSwiLi9mcm9tWVJvdGF0aW9uIjoyMDYsIi4vZnJvbVpSb3RhdGlvbiI6MjA3LCIuL2ZydXN0dW0iOjIwOCwiLi9pZGVudGl0eSI6MjA5LCIuL2ludmVydCI6MjExLCIuL2xvb2tBdCI6MjEyLCIuL211bHRpcGx5IjoyMTMsIi4vb3J0aG8iOjIxNCwiLi9wZXJzcGVjdGl2ZSI6MjE1LCIuL3BlcnNwZWN0aXZlRnJvbUZpZWxkT2ZWaWV3IjoyMTYsIi4vcm90YXRlIjoyMTcsIi4vcm90YXRlWCI6MjE4LCIuL3JvdGF0ZVkiOjIxOSwiLi9yb3RhdGVaIjoyMjAsIi4vc2NhbGUiOjIyMSwiLi9zdHIiOjIyMiwiLi90cmFuc2xhdGUiOjIyMywiLi90cmFuc3Bvc2UiOjIyNH1dLDIxMTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPWVbMF0sbj1lWzFdLGk9ZVsyXSxhPWVbM10sbz1lWzRdLHM9ZVs1XSxsPWVbNl0sYz1lWzddLHU9ZVs4XSxmPWVbOV0saD1lWzEwXSxwPWVbMTFdLGQ9ZVsxMl0sbT1lWzEzXSxnPWVbMTRdLHY9ZVsxNV0seT1yKnMtbipvLHg9cipsLWkqbyxiPXIqYy1hKm8sXz1uKmwtaSpzLHc9bipjLWEqcyxUPWkqYy1hKmwsaz11Km0tZipkLEE9dSpnLWgqZCxNPXUqdi1wKmQsUz1mKmctaCptLEU9Zip2LXAqbSxMPWgqdi1wKmcsQz15KkwteCpFK2IqUytfKk0tdypBK1QqaztpZighQylyZXR1cm4gbnVsbDtyZXR1cm4gQz0xL0MsdFswXT0ocypMLWwqRStjKlMpKkMsdFsxXT0oaSpFLW4qTC1hKlMpKkMsdFsyXT0obSpULWcqdyt2Kl8pKkMsdFszXT0oaCp3LWYqVC1wKl8pKkMsdFs0XT0obCpNLW8qTC1jKkEpKkMsdFs1XT0ocipMLWkqTSthKkEpKkMsdFs2XT0oZypiLWQqVC12KngpKkMsdFs3XT0odSpULWgqYitwKngpKkMsdFs4XT0obypFLXMqTStjKmspKkMsdFs5XT0obipNLXIqRS1hKmspKkMsdFsxMF09KGQqdy1tKmIrdip5KSpDLHRbMTFdPShmKmItdSp3LXAqeSkqQyx0WzEyXT0ocypBLW8qUy1sKmspKkMsdFsxM109KHIqUy1uKkEraSprKSpDLHRbMTRdPShtKngtZCpfLWcqeSkqQyx0WzE1XT0odSpfLWYqeCtoKnkpKkMsdH19LHt9XSwyMTI6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCIuL2lkZW50aXR5Iik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGkpe3ZhciBhLG8scyxsLGMsdSxmLGgscCxkLG09ZVswXSxnPWVbMV0sdj1lWzJdLHk9aVswXSx4PWlbMV0sYj1pWzJdLF89clswXSx3PXJbMV0sVD1yWzJdO2lmKE1hdGguYWJzKG0tXyk8MWUtNiYmTWF0aC5hYnMoZy13KTwxZS02JiZNYXRoLmFicyh2LVQpPDFlLTYpcmV0dXJuIG4odCk7Zj1tLV8saD1nLXcscD12LVQsZD0xL01hdGguc3FydChmKmYraCpoK3AqcCksYT14KihwKj1kKS1iKihoKj1kKSxvPWIqKGYqPWQpLXkqcCxzPXkqaC14KmYsKGQ9TWF0aC5zcXJ0KGEqYStvKm8rcypzKSk/KGEqPWQ9MS9kLG8qPWQscyo9ZCk6KGE9MCxvPTAscz0wKTtsPWgqcy1wKm8sYz1wKmEtZipzLHU9ZipvLWgqYSwoZD1NYXRoLnNxcnQobCpsK2MqYyt1KnUpKT8obCo9ZD0xL2QsYyo9ZCx1Kj1kKToobD0wLGM9MCx1PTApO3JldHVybiB0WzBdPWEsdFsxXT1sLHRbMl09Zix0WzNdPTAsdFs0XT1vLHRbNV09Yyx0WzZdPWgsdFs3XT0wLHRbOF09cyx0WzldPXUsdFsxMF09cCx0WzExXT0wLHRbMTJdPS0oYSptK28qZytzKnYpLHRbMTNdPS0obCptK2MqZyt1KnYpLHRbMTRdPS0oZiptK2gqZytwKnYpLHRbMTVdPTEsdH19LHsiLi9pZGVudGl0eSI6MjA5fV0sMjEzOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1lWzBdLGk9ZVsxXSxhPWVbMl0sbz1lWzNdLHM9ZVs0XSxsPWVbNV0sYz1lWzZdLHU9ZVs3XSxmPWVbOF0saD1lWzldLHA9ZVsxMF0sZD1lWzExXSxtPWVbMTJdLGc9ZVsxM10sdj1lWzE0XSx5PWVbMTVdLHg9clswXSxiPXJbMV0sXz1yWzJdLHc9clszXTtyZXR1cm4gdFswXT14Km4rYipzK18qZit3Km0sdFsxXT14KmkrYipsK18qaCt3KmcsdFsyXT14KmErYipjK18qcCt3KnYsdFszXT14Km8rYip1K18qZCt3KnkseD1yWzRdLGI9cls1XSxfPXJbNl0sdz1yWzddLHRbNF09eCpuK2IqcytfKmYrdyptLHRbNV09eCppK2IqbCtfKmgrdypnLHRbNl09eCphK2IqYytfKnArdyp2LHRbN109eCpvK2IqdStfKmQrdyp5LHg9cls4XSxiPXJbOV0sXz1yWzEwXSx3PXJbMTFdLHRbOF09eCpuK2IqcytfKmYrdyptLHRbOV09eCppK2IqbCtfKmgrdypnLHRbMTBdPXgqYStiKmMrXypwK3cqdix0WzExXT14Km8rYip1K18qZCt3KnkseD1yWzEyXSxiPXJbMTNdLF89clsxNF0sdz1yWzE1XSx0WzEyXT14Km4rYipzK18qZit3Km0sdFsxM109eCppK2IqbCtfKmgrdypnLHRbMTRdPXgqYStiKmMrXypwK3cqdix0WzE1XT14Km8rYip1K18qZCt3KnksdH19LHt9XSwyMTQ6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbixpLGEsbyl7dmFyIHM9MS8oZS1yKSxsPTEvKG4taSksYz0xLyhhLW8pO3JldHVybiB0WzBdPS0yKnMsdFsxXT0wLHRbMl09MCx0WzNdPTAsdFs0XT0wLHRbNV09LTIqbCx0WzZdPTAsdFs3XT0wLHRbOF09MCx0WzldPTAsdFsxMF09MipjLHRbMTFdPTAsdFsxMl09KGUrcikqcyx0WzEzXT0oaStuKSpsLHRbMTRdPShvK2EpKmMsdFsxNV09MSx0fX0se31dLDIxNTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuLGkpe3ZhciBhPTEvTWF0aC50YW4oZS8yKSxvPTEvKG4taSk7cmV0dXJuIHRbMF09YS9yLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09MCx0WzVdPWEsdFs2XT0wLHRbN109MCx0WzhdPTAsdFs5XT0wLHRbMTBdPShpK24pKm8sdFsxMV09LTEsdFsxMl09MCx0WzEzXT0wLHRbMTRdPTIqaSpuKm8sdFsxNV09MCx0fX0se31dLDIxNjpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuKXt2YXIgaT1NYXRoLnRhbihlLnVwRGVncmVlcypNYXRoLlBJLzE4MCksYT1NYXRoLnRhbihlLmRvd25EZWdyZWVzKk1hdGguUEkvMTgwKSxvPU1hdGgudGFuKGUubGVmdERlZ3JlZXMqTWF0aC5QSS8xODApLHM9TWF0aC50YW4oZS5yaWdodERlZ3JlZXMqTWF0aC5QSS8xODApLGw9Mi8obytzKSxjPTIvKGkrYSk7cmV0dXJuIHRbMF09bCx0WzFdPTAsdFsyXT0wLHRbM109MCx0WzRdPTAsdFs1XT1jLHRbNl09MCx0WzddPTAsdFs4XT0tKG8tcykqbCouNSx0WzldPShpLWEpKmMqLjUsdFsxMF09bi8oci1uKSx0WzExXT0tMSx0WzEyXT0wLHRbMTNdPTAsdFsxNF09bipyLyhyLW4pLHRbMTVdPTAsdH19LHt9XSwyMTc6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGksYSxvLHMsbCxjLHUsZixoLHAsZCxtLGcsdix5LHgsYixfLHcsVCxrLEEsTSxTLEU9blswXSxMPW5bMV0sQz1uWzJdLFA9TWF0aC5zcXJ0KEUqRStMKkwrQypDKTtpZihNYXRoLmFicyhQKTwxZS02KXJldHVybiBudWxsO0UqPVA9MS9QLEwqPVAsQyo9UCxpPU1hdGguc2luKHIpLGE9TWF0aC5jb3Mociksbz0xLWEscz1lWzBdLGw9ZVsxXSxjPWVbMl0sdT1lWzNdLGY9ZVs0XSxoPWVbNV0scD1lWzZdLGQ9ZVs3XSxtPWVbOF0sZz1lWzldLHY9ZVsxMF0seT1lWzExXSx4PUUqRSpvK2EsYj1MKkUqbytDKmksXz1DKkUqby1MKmksdz1FKkwqby1DKmksVD1MKkwqbythLGs9QypMKm8rRSppLEE9RSpDKm8rTCppLE09TCpDKm8tRSppLFM9QypDKm8rYSx0WzBdPXMqeCtmKmIrbSpfLHRbMV09bCp4K2gqYitnKl8sdFsyXT1jKngrcCpiK3YqXyx0WzNdPXUqeCtkKmIreSpfLHRbNF09cyp3K2YqVCttKmssdFs1XT1sKncraCpUK2cqayx0WzZdPWMqdytwKlQrdiprLHRbN109dSp3K2QqVCt5KmssdFs4XT1zKkErZipNK20qUyx0WzldPWwqQStoKk0rZypTLHRbMTBdPWMqQStwKk0rdipTLHRbMTFdPXUqQStkKk0reSpTLGUhPT10JiYodFsxMl09ZVsxMl0sdFsxM109ZVsxM10sdFsxNF09ZVsxNF0sdFsxNV09ZVsxNV0pO3JldHVybiB0fX0se31dLDIxODpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG49TWF0aC5zaW4ociksaT1NYXRoLmNvcyhyKSxhPWVbNF0sbz1lWzVdLHM9ZVs2XSxsPWVbN10sYz1lWzhdLHU9ZVs5XSxmPWVbMTBdLGg9ZVsxMV07ZSE9PXQmJih0WzBdPWVbMF0sdFsxXT1lWzFdLHRbMl09ZVsyXSx0WzNdPWVbM10sdFsxMl09ZVsxMl0sdFsxM109ZVsxM10sdFsxNF09ZVsxNF0sdFsxNV09ZVsxNV0pO3JldHVybiB0WzRdPWEqaStjKm4sdFs1XT1vKmkrdSpuLHRbNl09cyppK2Yqbix0WzddPWwqaStoKm4sdFs4XT1jKmktYSpuLHRbOV09dSppLW8qbix0WzEwXT1mKmktcypuLHRbMTFdPWgqaS1sKm4sdH19LHt9XSwyMTk6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPU1hdGguc2luKHIpLGk9TWF0aC5jb3MociksYT1lWzBdLG89ZVsxXSxzPWVbMl0sbD1lWzNdLGM9ZVs4XSx1PWVbOV0sZj1lWzEwXSxoPWVbMTFdO2UhPT10JiYodFs0XT1lWzRdLHRbNV09ZVs1XSx0WzZdPWVbNl0sdFs3XT1lWzddLHRbMTJdPWVbMTJdLHRbMTNdPWVbMTNdLHRbMTRdPWVbMTRdLHRbMTVdPWVbMTVdKTtyZXR1cm4gdFswXT1hKmktYypuLHRbMV09byppLXUqbix0WzJdPXMqaS1mKm4sdFszXT1sKmktaCpuLHRbOF09YSpuK2MqaSx0WzldPW8qbit1KmksdFsxMF09cypuK2YqaSx0WzExXT1sKm4raCppLHR9fSx7fV0sMjIwOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1NYXRoLnNpbihyKSxpPU1hdGguY29zKHIpLGE9ZVswXSxvPWVbMV0scz1lWzJdLGw9ZVszXSxjPWVbNF0sdT1lWzVdLGY9ZVs2XSxoPWVbN107ZSE9PXQmJih0WzhdPWVbOF0sdFs5XT1lWzldLHRbMTBdPWVbMTBdLHRbMTFdPWVbMTFdLHRbMTJdPWVbMTJdLHRbMTNdPWVbMTNdLHRbMTRdPWVbMTRdLHRbMTVdPWVbMTVdKTtyZXR1cm4gdFswXT1hKmkrYypuLHRbMV09byppK3Uqbix0WzJdPXMqaStmKm4sdFszXT1sKmkraCpuLHRbNF09YyppLWEqbix0WzVdPXUqaS1vKm4sdFs2XT1mKmktcypuLHRbN109aCppLWwqbix0fX0se31dLDIyMTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG49clswXSxpPXJbMV0sYT1yWzJdO3JldHVybiB0WzBdPWVbMF0qbix0WzFdPWVbMV0qbix0WzJdPWVbMl0qbix0WzNdPWVbM10qbix0WzRdPWVbNF0qaSx0WzVdPWVbNV0qaSx0WzZdPWVbNl0qaSx0WzddPWVbN10qaSx0WzhdPWVbOF0qYSx0WzldPWVbOV0qYSx0WzEwXT1lWzEwXSphLHRbMTFdPWVbMTFdKmEsdFsxMl09ZVsxMl0sdFsxM109ZVsxM10sdFsxNF09ZVsxNF0sdFsxNV09ZVsxNV0sdH19LHt9XSwyMjI6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIm1hdDQoIit0WzBdKyIsICIrdFsxXSsiLCAiK3RbMl0rIiwgIit0WzNdKyIsICIrdFs0XSsiLCAiK3RbNV0rIiwgIit0WzZdKyIsICIrdFs3XSsiLCAiK3RbOF0rIiwgIit0WzldKyIsICIrdFsxMF0rIiwgIit0WzExXSsiLCAiK3RbMTJdKyIsICIrdFsxM10rIiwgIit0WzE0XSsiLCAiK3RbMTVdKyIpIn19LHt9XSwyMjM6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuLGksYSxvLHMsbCxjLHUsZixoLHAsZCxtPXJbMF0sZz1yWzFdLHY9clsyXTtlPT09dD8odFsxMl09ZVswXSptK2VbNF0qZytlWzhdKnYrZVsxMl0sdFsxM109ZVsxXSptK2VbNV0qZytlWzldKnYrZVsxM10sdFsxNF09ZVsyXSptK2VbNl0qZytlWzEwXSp2K2VbMTRdLHRbMTVdPWVbM10qbStlWzddKmcrZVsxMV0qditlWzE1XSk6KG49ZVswXSxpPWVbMV0sYT1lWzJdLG89ZVszXSxzPWVbNF0sbD1lWzVdLGM9ZVs2XSx1PWVbN10sZj1lWzhdLGg9ZVs5XSxwPWVbMTBdLGQ9ZVsxMV0sdFswXT1uLHRbMV09aSx0WzJdPWEsdFszXT1vLHRbNF09cyx0WzVdPWwsdFs2XT1jLHRbN109dSx0WzhdPWYsdFs5XT1oLHRbMTBdPXAsdFsxMV09ZCx0WzEyXT1uKm0rcypnK2YqditlWzEyXSx0WzEzXT1pKm0rbCpnK2gqditlWzEzXSx0WzE0XT1hKm0rYypnK3AqditlWzE0XSx0WzE1XT1vKm0rdSpnK2QqditlWzE1XSk7cmV0dXJuIHR9fSx7fV0sMjI0OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aWYodD09PWUpe3ZhciByPWVbMV0sbj1lWzJdLGk9ZVszXSxhPWVbNl0sbz1lWzddLHM9ZVsxMV07dFsxXT1lWzRdLHRbMl09ZVs4XSx0WzNdPWVbMTJdLHRbNF09cix0WzZdPWVbOV0sdFs3XT1lWzEzXSx0WzhdPW4sdFs5XT1hLHRbMTFdPWVbMTRdLHRbMTJdPWksdFsxM109byx0WzE0XT1zfWVsc2UgdFswXT1lWzBdLHRbMV09ZVs0XSx0WzJdPWVbOF0sdFszXT1lWzEyXSx0WzRdPWVbMV0sdFs1XT1lWzVdLHRbNl09ZVs5XSx0WzddPWVbMTNdLHRbOF09ZVsyXSx0WzldPWVbNl0sdFsxMF09ZVsxMF0sdFsxMV09ZVsxNF0sdFsxMl09ZVszXSx0WzEzXT1lWzddLHRbMTRdPWVbMTFdLHRbMTVdPWVbMTVdO3JldHVybiB0fX0se31dLDIyNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJjc3MtZm9udCIpLGk9dCgicGljay1ieS1hbGlhcyIpLGE9dCgicmVnbCIpLG89dCgiZ2wtdXRpbC9jb250ZXh0Iikscz10KCJlczYtd2Vhay1tYXAiKSxsPXQoImNvbG9yLW5vcm1hbGl6ZSIpLGM9dCgiZm9udC1hdGxhcyIpLHU9dCgidHlwZWRhcnJheS1wb29sIiksZj10KCJwYXJzZS1yZWN0IiksaD10KCJpcy1wbGFpbi1vYmoiKSxwPXQoInBhcnNlLXVuaXQiKSxkPXQoInRvLXB4IiksbT10KCJkZXRlY3Qta2VybmluZyIpLGc9dCgib2JqZWN0LWFzc2lnbiIpLHY9dCgiZm9udC1tZWFzdXJlIikseT10KCJmbGF0dGVuLXZlcnRleC1kYXRhIikseD10KCJiaXQtdHdpZGRsZSIpLm5leHRQb3cyLGI9bmV3IHMsXz0hMTtpZihkb2N1bWVudC5ib2R5KXt2YXIgdz1kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTt3LnN0eWxlLmZvbnQ9Iml0YWxpYyBzbWFsbC1jYXBzIGJvbGQgY29uZGVuc2VkIDE2cHgvMiBjdXJzaXZlIixnZXRDb21wdXRlZFN0eWxlKHcpLmZvbnRTdHJldGNoJiYoXz0hMCksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh3KX12YXIgVD1mdW5jdGlvbih0KXshZnVuY3Rpb24odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQmJnQuX2dsJiZ0LnByb3AmJnQudGV4dHVyZSYmdC5idWZmZXJ9KHQpP3RoaXMuZ2w9byh0KToodD17cmVnbDp0fSx0aGlzLmdsPXQucmVnbC5fZ2wpLHRoaXMuc2hhZGVyPWIuZ2V0KHRoaXMuZ2wpLHRoaXMuc2hhZGVyP3RoaXMucmVnbD10aGlzLnNoYWRlci5yZWdsOnRoaXMucmVnbD10LnJlZ2x8fGEoe2dsOnRoaXMuZ2x9KSx0aGlzLmNoYXJCdWZmZXI9dGhpcy5yZWdsLmJ1ZmZlcih7dHlwZToidWludDgiLHVzYWdlOiJzdHJlYW0ifSksdGhpcy5zaXplQnVmZmVyPXRoaXMucmVnbC5idWZmZXIoe3R5cGU6ImZsb2F0Iix1c2FnZToic3RyZWFtIn0pLHRoaXMuc2hhZGVyfHwodGhpcy5zaGFkZXI9dGhpcy5jcmVhdGVTaGFkZXIoKSxiLnNldCh0aGlzLmdsLHRoaXMuc2hhZGVyKSksdGhpcy5iYXRjaD1bXSx0aGlzLmZvbnRTaXplPVtdLHRoaXMuZm9udD1bXSx0aGlzLmZvbnRBdGxhcz1bXSx0aGlzLmRyYXc9dGhpcy5zaGFkZXIuZHJhdy5iaW5kKHRoaXMpLHRoaXMucmVuZGVyPWZ1bmN0aW9uKCl7dGhpcy5yZWdsLl9yZWZyZXNoKCksdGhpcy5kcmF3KHRoaXMuYmF0Y2gpfSx0aGlzLmNhbnZhcz10aGlzLmdsLmNhbnZhcyx0aGlzLnVwZGF0ZShoKHQpP3Q6e30pfTtULnByb3RvdHlwZS5jcmVhdGVTaGFkZXI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnJlZ2wsZT10KHtibGVuZDp7ZW5hYmxlOiEwLGNvbG9yOlswLDAsMCwxXSxmdW5jOntzcmNSR0I6InNyYyBhbHBoYSIsZHN0UkdCOiJvbmUgbWludXMgc3JjIGFscGhhIixzcmNBbHBoYToib25lIG1pbnVzIGRzdCBhbHBoYSIsZHN0QWxwaGE6Im9uZSJ9fSxzdGVuY2lsOntlbmFibGU6ITF9LGRlcHRoOntlbmFibGU6ITF9LGNvdW50OnQucHJvcCgiY291bnQiKSxvZmZzZXQ6dC5wcm9wKCJvZmZzZXQiKSxhdHRyaWJ1dGVzOntjaGFyT2Zmc2V0OntvZmZzZXQ6NCxzdHJpZGU6OCxidWZmZXI6dC50aGlzKCJzaXplQnVmZmVyIil9LHdpZHRoOntvZmZzZXQ6MCxzdHJpZGU6OCxidWZmZXI6dC50aGlzKCJzaXplQnVmZmVyIil9LGNoYXI6dC50aGlzKCJjaGFyQnVmZmVyIikscG9zaXRpb246dC50aGlzKCJwb3NpdGlvbiIpfSx1bmlmb3Jtczp7YXRsYXNTaXplOmZ1bmN0aW9uKHQsZSl7cmV0dXJuW2UuYXRsYXMud2lkdGgsZS5hdGxhcy5oZWlnaHRdfSxhdGxhc0RpbTpmdW5jdGlvbih0LGUpe3JldHVybltlLmF0bGFzLmNvbHMsZS5hdGxhcy5yb3dzXX0sYXRsYXM6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5hdGxhcy50ZXh0dXJlfSxjaGFyU3RlcDpmdW5jdGlvbih0LGUpe3JldHVybiBlLmF0bGFzLnN0ZXB9LGVtOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuYXRsYXMuZW19LGNvbG9yOnQucHJvcCgiY29sb3IiKSxvcGFjaXR5OnQucHJvcCgib3BhY2l0eSIpLHZpZXdwb3J0OnQudGhpcygidmlld3BvcnRBcnJheSIpLHNjYWxlOnQudGhpcygic2NhbGUiKSxhbGlnbjp0LnByb3AoImFsaWduIiksYmFzZWxpbmU6dC5wcm9wKCJiYXNlbGluZSIpLHRyYW5zbGF0ZTp0LnRoaXMoInRyYW5zbGF0ZSIpLHBvc2l0aW9uT2Zmc2V0OnQucHJvcCgicG9zaXRpb25PZmZzZXQiKX0scHJpbWl0aXZlOiJwb2ludHMiLHZpZXdwb3J0OnQudGhpcygidmlld3BvcnQiKSx2ZXJ0OiJcblx0XHRcdHByZWNpc2lvbiBoaWdocCBmbG9hdDtcblx0XHRcdGF0dHJpYnV0ZSBmbG9hdCB3aWR0aCwgY2hhck9mZnNldCwgY2hhcjtcblx0XHRcdGF0dHJpYnV0ZSB2ZWMyIHBvc2l0aW9uO1xuXHRcdFx0dW5pZm9ybSBmbG9hdCBmb250U2l6ZSwgY2hhclN0ZXAsIGVtLCBhbGlnbiwgYmFzZWxpbmU7XG5cdFx0XHR1bmlmb3JtIHZlYzQgdmlld3BvcnQ7XG5cdFx0XHR1bmlmb3JtIHZlYzQgY29sb3I7XG5cdFx0XHR1bmlmb3JtIHZlYzIgYXRsYXNTaXplLCBhdGxhc0RpbSwgc2NhbGUsIHRyYW5zbGF0ZSwgcG9zaXRpb25PZmZzZXQ7XG5cdFx0XHR2YXJ5aW5nIHZlYzIgY2hhckNvb3JkLCBjaGFySWQ7XG5cdFx0XHR2YXJ5aW5nIGZsb2F0IGNoYXJXaWR0aDtcblx0XHRcdHZhcnlpbmcgdmVjNCBmb250Q29sb3I7XG5cdFx0XHR2b2lkIG1haW4gKCkge1xuXHRcdFx0XHR2ZWMyIG9mZnNldCA9IGZsb29yKGVtICogKHZlYzIoYWxpZ24gKyBjaGFyT2Zmc2V0LCBiYXNlbGluZSlcblx0XHRcdFx0XHQrIHZlYzIocG9zaXRpb25PZmZzZXQueCwgLXBvc2l0aW9uT2Zmc2V0LnkpKSlcblx0XHRcdFx0XHQvICh2aWV3cG9ydC56dyAqIHNjYWxlLnh5KTtcblxuXHRcdFx0XHR2ZWMyIHBvc2l0aW9uID0gKHBvc2l0aW9uICsgdHJhbnNsYXRlKSAqIHNjYWxlO1xuXHRcdFx0XHRwb3NpdGlvbiArPSBvZmZzZXQgKiBzY2FsZTtcblxuXHRcdFx0XHRjaGFyQ29vcmQgPSBwb3NpdGlvbiAqIHZpZXdwb3J0Lnp3ICsgdmlld3BvcnQueHk7XG5cblx0XHRcdFx0Z2xfUG9zaXRpb24gPSB2ZWM0KHBvc2l0aW9uICogMi4gLSAxLiwgMCwgMSk7XG5cblx0XHRcdFx0Z2xfUG9pbnRTaXplID0gY2hhclN0ZXA7XG5cblx0XHRcdFx0Y2hhcklkLnggPSBtb2QoY2hhciwgYXRsYXNEaW0ueCk7XG5cdFx0XHRcdGNoYXJJZC55ID0gZmxvb3IoY2hhciAvIGF0bGFzRGltLngpO1xuXG5cdFx0XHRcdGNoYXJXaWR0aCA9IHdpZHRoICogZW07XG5cblx0XHRcdFx0Zm9udENvbG9yID0gY29sb3IgLyAyNTUuO1xuXHRcdFx0fSIsZnJhZzoiXG5cdFx0XHRwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG5cdFx0XHR1bmlmb3JtIGZsb2F0IGZvbnRTaXplLCBjaGFyU3RlcCwgb3BhY2l0eTtcblx0XHRcdHVuaWZvcm0gdmVjMiBhdGxhc1NpemU7XG5cdFx0XHR1bmlmb3JtIHZlYzQgdmlld3BvcnQ7XG5cdFx0XHR1bmlmb3JtIHNhbXBsZXIyRCBhdGxhcztcblx0XHRcdHZhcnlpbmcgdmVjNCBmb250Q29sb3I7XG5cdFx0XHR2YXJ5aW5nIHZlYzIgY2hhckNvb3JkLCBjaGFySWQ7XG5cdFx0XHR2YXJ5aW5nIGZsb2F0IGNoYXJXaWR0aDtcblxuXHRcdFx0ZmxvYXQgbGlnaHRuZXNzKHZlYzQgY29sb3IpIHtcblx0XHRcdFx0cmV0dXJuIGNvbG9yLnIgKiAwLjI5OSArIGNvbG9yLmcgKiAwLjU4NyArIGNvbG9yLmIgKiAwLjExNDtcblx0XHRcdH1cblxuXHRcdFx0dm9pZCBtYWluICgpIHtcblx0XHRcdFx0dmVjMiB1diA9IGdsX0ZyYWdDb29yZC54eSAtIGNoYXJDb29yZCArIGNoYXJTdGVwICogLjU7XG5cdFx0XHRcdGZsb2F0IGhhbGZDaGFyU3RlcCA9IGZsb29yKGNoYXJTdGVwICogLjUgKyAuNSk7XG5cblx0XHRcdFx0Ly8gaW52ZXJ0IHkgYW5kIHNoaWZ0IGJ5IDFweCAoRkYgZXhwZWNpYWxseSBuZWVkcyB0aGF0KVxuXHRcdFx0XHR1di55ID0gY2hhclN0ZXAgLSB1di55O1xuXG5cdFx0XHRcdC8vIGlnbm9yZSBwb2ludHMgb3V0c2lkZSBvZiBjaGFyYWN0ZXIgYm91bmRpbmcgYm94XG5cdFx0XHRcdGZsb2F0IGhhbGZDaGFyV2lkdGggPSBjZWlsKGNoYXJXaWR0aCAqIC41KTtcblx0XHRcdFx0aWYgKGZsb29yKHV2LngpID4gaGFsZkNoYXJTdGVwICsgaGFsZkNoYXJXaWR0aCB8fFxuXHRcdFx0XHRcdGZsb29yKHV2LngpIDwgaGFsZkNoYXJTdGVwIC0gaGFsZkNoYXJXaWR0aCkgcmV0dXJuO1xuXG5cdFx0XHRcdHV2ICs9IGNoYXJJZCAqIGNoYXJTdGVwO1xuXHRcdFx0XHR1diA9IHV2IC8gYXRsYXNTaXplO1xuXG5cdFx0XHRcdHZlYzQgY29sb3IgPSBmb250Q29sb3I7XG5cdFx0XHRcdHZlYzQgbWFzayA9IHRleHR1cmUyRChhdGxhcywgdXYpO1xuXG5cdFx0XHRcdGZsb2F0IG1hc2tZID0gbGlnaHRuZXNzKG1hc2spO1xuXHRcdFx0XHQvLyBmbG9hdCBjb2xvclkgPSBsaWdodG5lc3MoY29sb3IpO1xuXHRcdFx0XHRjb2xvci5hICo9IG1hc2tZO1xuXHRcdFx0XHRjb2xvci5hICo9IG9wYWNpdHk7XG5cblx0XHRcdFx0Ly8gY29sb3IuYSArPSAuMTtcblxuXHRcdFx0XHQvLyBhbnRpYWxpYXNpbmcsIHNlZSB5aXEgY29sb3Igc3BhY2UgeS1jaGFubmVsIGZvcm11bGFcblx0XHRcdFx0Ly8gY29sb3IucmdiICs9ICgxLiAtIGNvbG9yLnJnYikgKiAoMS4gLSBtYXNrLnJnYik7XG5cblx0XHRcdFx0Z2xfRnJhZ0NvbG9yID0gY29sb3I7XG5cdFx0XHR9In0pO3JldHVybntyZWdsOnQsZHJhdzplLGF0bGFzOnt9fX0sVC5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYoInN0cmluZyI9PXR5cGVvZiB0KXQ9e3RleHQ6dH07ZWxzZSBpZighdClyZXR1cm47bnVsbCE9KHQ9aSh0LHtwb3NpdGlvbjoicG9zaXRpb24gcG9zaXRpb25zIGNvb3JkIGNvb3JkcyBjb29yZGluYXRlcyIsZm9udDoiZm9udCBmb250RmFjZSBmb250ZmFjZSB0eXBlZmFjZSBjc3NGb250IGNzcy1mb250IGZhbWlseSBmb250RmFtaWx5Iixmb250U2l6ZToiZm9udFNpemUgZm9udHNpemUgc2l6ZSBmb250LXNpemUiLHRleHQ6InRleHQgdGV4dHMgY2hhcnMgY2hhcmFjdGVycyB2YWx1ZSB2YWx1ZXMgc3ltYm9scyIsYWxpZ246ImFsaWduIGFsaWdubWVudCB0ZXh0QWxpZ24gdGV4dGJhc2VsaW5lIixiYXNlbGluZToiYmFzZWxpbmUgdGV4dEJhc2VsaW5lIHRleHRiYXNlbGluZSIsZGlyZWN0aW9uOiJkaXIgZGlyZWN0aW9uIHRleHREaXJlY3Rpb24iLGNvbG9yOiJjb2xvciBjb2xvdXIgZmlsbCBmaWxsLWNvbG9yIGZpbGxDb2xvciB0ZXh0Q29sb3IgdGV4dGNvbG9yIixrZXJuaW5nOiJrZXJuaW5nIGtlcm4iLHJhbmdlOiJyYW5nZSBkYXRhQm94Iix2aWV3cG9ydDoidnAgdmlld3BvcnQgdmlld0JveCB2aWV3Ym94IHZpZXdQb3J0IixvcGFjaXR5OiJvcGFjaXR5IGFscGhhIHRyYW5zcGFyZW5jeSB2aXNpYmxlIHZpc2liaWxpdHkgb3BhcXVlIixvZmZzZXQ6Im9mZnNldCBwb3NpdGlvbk9mZnNldCBwYWRkaW5nIHNoaWZ0IGluZGVudCBpbmRlbnRhdGlvbiJ9LCEwKSkub3BhY2l0eSYmKEFycmF5LmlzQXJyYXkodC5vcGFjaXR5KT90aGlzLm9wYWNpdHk9dC5vcGFjaXR5Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHBhcnNlRmxvYXQodCl9KSk6dGhpcy5vcGFjaXR5PXBhcnNlRmxvYXQodC5vcGFjaXR5KSksbnVsbCE9dC52aWV3cG9ydCYmKHRoaXMudmlld3BvcnQ9Zih0LnZpZXdwb3J0KSx0aGlzLnZpZXdwb3J0QXJyYXk9W3RoaXMudmlld3BvcnQueCx0aGlzLnZpZXdwb3J0LnksdGhpcy52aWV3cG9ydC53aWR0aCx0aGlzLnZpZXdwb3J0LmhlaWdodF0pLG51bGw9PXRoaXMudmlld3BvcnQmJih0aGlzLnZpZXdwb3J0PXt4OjAseTowLHdpZHRoOnRoaXMuZ2wuZHJhd2luZ0J1ZmZlcldpZHRoLGhlaWdodDp0aGlzLmdsLmRyYXdpbmdCdWZmZXJIZWlnaHR9LHRoaXMudmlld3BvcnRBcnJheT1bdGhpcy52aWV3cG9ydC54LHRoaXMudmlld3BvcnQueSx0aGlzLnZpZXdwb3J0LndpZHRoLHRoaXMudmlld3BvcnQuaGVpZ2h0XSksbnVsbCE9dC5rZXJuaW5nJiYodGhpcy5rZXJuaW5nPXQua2VybmluZyksbnVsbCE9dC5vZmZzZXQmJigibnVtYmVyIj09dHlwZW9mIHQub2Zmc2V0JiYodC5vZmZzZXQ9W3Qub2Zmc2V0LDBdKSx0aGlzLnBvc2l0aW9uT2Zmc2V0PXkodC5vZmZzZXQpKSx0LmRpcmVjdGlvbiYmKHRoaXMuZGlyZWN0aW9uPXQuZGlyZWN0aW9uKSx0LnJhbmdlJiYodGhpcy5yYW5nZT10LnJhbmdlLHRoaXMuc2NhbGU9WzEvKHQucmFuZ2VbMl0tdC5yYW5nZVswXSksMS8odC5yYW5nZVszXS10LnJhbmdlWzFdKV0sdGhpcy50cmFuc2xhdGU9Wy10LnJhbmdlWzBdLC10LnJhbmdlWzFdXSksdC5zY2FsZSYmKHRoaXMuc2NhbGU9dC5zY2FsZSksdC50cmFuc2xhdGUmJih0aGlzLnRyYW5zbGF0ZT10LnRyYW5zbGF0ZSksdGhpcy5zY2FsZXx8KHRoaXMuc2NhbGU9WzEvdGhpcy52aWV3cG9ydC53aWR0aCwxL3RoaXMudmlld3BvcnQuaGVpZ2h0XSksdGhpcy50cmFuc2xhdGV8fCh0aGlzLnRyYW5zbGF0ZT1bMCwwXSksdGhpcy5mb250Lmxlbmd0aHx8dC5mb250fHwodC5mb250PVQuYmFzZUZvbnRTaXplKyJweCBzYW5zLXNlcmlmIik7dmFyIHIsYT0hMSxvPSExO2lmKHQuZm9udCYmKEFycmF5LmlzQXJyYXkodC5mb250KT90LmZvbnQ6W3QuZm9udF0pLmZvckVhY2goKGZ1bmN0aW9uKHQscil7aWYoInN0cmluZyI9PXR5cGVvZiB0KXRyeXt0PW4ucGFyc2UodCl9Y2F0Y2goZSl7dD1uLnBhcnNlKFQuYmFzZUZvbnRTaXplKyJweCAiK3QpfWVsc2UgdD1uLnBhcnNlKG4uc3RyaW5naWZ5KHQpKTt2YXIgaT1uLnN0cmluZ2lmeSh7c2l6ZTpULmJhc2VGb250U2l6ZSxmYW1pbHk6dC5mYW1pbHksc3RyZXRjaDpfP3Quc3RyZXRjaDp2b2lkIDAsdmFyaWFudDp0LnZhcmlhbnQsd2VpZ2h0OnQud2VpZ2h0LHN0eWxlOnQuc3R5bGV9KSxzPXAodC5zaXplKSxsPU1hdGgucm91bmQoc1swXSpkKHNbMV0pKTtpZihsIT09ZS5mb250U2l6ZVtyXSYmKG89ITAsZS5mb250U2l6ZVtyXT1sKSwhKGUuZm9udFtyXSYmaT09ZS5mb250W3JdLmJhc2VTdHJpbmd8fChhPSEwLGUuZm9udFtyXT1ULmZvbnRzW2ldLGUuZm9udFtyXSkpKXt2YXIgYz10LmZhbWlseS5qb2luKCIsICIpLHU9W3Quc3R5bGVdO3Quc3R5bGUhPXQudmFyaWFudCYmdS5wdXNoKHQudmFyaWFudCksdC52YXJpYW50IT10LndlaWdodCYmdS5wdXNoKHQud2VpZ2h0KSxfJiZ0LndlaWdodCE9dC5zdHJldGNoJiZ1LnB1c2godC5zdHJldGNoKSxlLmZvbnRbcl09e2Jhc2VTdHJpbmc6aSxmYW1pbHk6Yyx3ZWlnaHQ6dC53ZWlnaHQsc3RyZXRjaDp0LnN0cmV0Y2gsc3R5bGU6dC5zdHlsZSx2YXJpYW50OnQudmFyaWFudCx3aWR0aDp7fSxrZXJuaW5nOnt9LG1ldHJpY3M6dihjLHtvcmlnaW46InRvcCIsZm9udFNpemU6VC5iYXNlRm9udFNpemUsZm9udFN0eWxlOnUuam9pbigiICIpfSl9LFQuZm9udHNbaV09ZS5mb250W3JdfX0pKSwoYXx8bykmJnRoaXMuZm9udC5mb3JFYWNoKChmdW5jdGlvbihyLGkpe3ZhciBhPW4uc3RyaW5naWZ5KHtzaXplOmUuZm9udFNpemVbaV0sZmFtaWx5OnIuZmFtaWx5LHN0cmV0Y2g6Xz9yLnN0cmV0Y2g6dm9pZCAwLHZhcmlhbnQ6ci52YXJpYW50LHdlaWdodDpyLndlaWdodCxzdHlsZTpyLnN0eWxlfSk7aWYoZS5mb250QXRsYXNbaV09ZS5zaGFkZXIuYXRsYXNbYV0sIWUuZm9udEF0bGFzW2ldKXt2YXIgbz1yLm1ldHJpY3M7ZS5zaGFkZXIuYXRsYXNbYV09ZS5mb250QXRsYXNbaV09e2ZvbnRTdHJpbmc6YSxzdGVwOjIqTWF0aC5jZWlsKGUuZm9udFNpemVbaV0qby5ib3R0b20qLjUpLGVtOmUuZm9udFNpemVbaV0sY29sczowLHJvd3M6MCxoZWlnaHQ6MCx3aWR0aDowLGNoYXJzOltdLGlkczp7fSx0ZXh0dXJlOmUucmVnbC50ZXh0dXJlKCl9fW51bGw9PXQudGV4dCYmKHQudGV4dD1lLnRleHQpfSkpLCJzdHJpbmciPT10eXBlb2YgdC50ZXh0JiZ0LnBvc2l0aW9uJiZ0LnBvc2l0aW9uLmxlbmd0aD4yKXtmb3IodmFyIHM9QXJyYXkoLjUqdC5wb3NpdGlvbi5sZW5ndGgpLGg9MDtoPHMubGVuZ3RoO2grKylzW2hdPXQudGV4dDt0LnRleHQ9c31pZihudWxsIT10LnRleHR8fGEpe2lmKHRoaXMudGV4dE9mZnNldHM9WzBdLEFycmF5LmlzQXJyYXkodC50ZXh0KSl7dGhpcy5jb3VudD10LnRleHRbMF0ubGVuZ3RoLHRoaXMuY291bnRzPVt0aGlzLmNvdW50XTtmb3IodmFyIGI9MTtiPHQudGV4dC5sZW5ndGg7YisrKXRoaXMudGV4dE9mZnNldHNbYl09dGhpcy50ZXh0T2Zmc2V0c1tiLTFdK3QudGV4dFtiLTFdLmxlbmd0aCx0aGlzLmNvdW50Kz10LnRleHRbYl0ubGVuZ3RoLHRoaXMuY291bnRzLnB1c2godC50ZXh0W2JdLmxlbmd0aCk7dGhpcy50ZXh0PXQudGV4dC5qb2luKCIiKX1lbHNlIHRoaXMudGV4dD10LnRleHQsdGhpcy5jb3VudD10aGlzLnRleHQubGVuZ3RoLHRoaXMuY291bnRzPVt0aGlzLmNvdW50XTtyPVtdLHRoaXMuZm9udC5mb3JFYWNoKChmdW5jdGlvbih0LG4pe1QuYXRsYXNDb250ZXh0LmZvbnQ9dC5iYXNlU3RyaW5nO2Zvcih2YXIgaT1lLmZvbnRBdGxhc1tuXSxhPTA7YTxlLnRleHQubGVuZ3RoO2ErKyl7dmFyIG89ZS50ZXh0LmNoYXJBdChhKTtpZihudWxsPT1pLmlkc1tvXSYmKGkuaWRzW29dPWkuY2hhcnMubGVuZ3RoLGkuY2hhcnMucHVzaChvKSxyLnB1c2gobykpLG51bGw9PXQud2lkdGhbb10mJih0LndpZHRoW29dPVQuYXRsYXNDb250ZXh0Lm1lYXN1cmVUZXh0KG8pLndpZHRoL1QuYmFzZUZvbnRTaXplLGUua2VybmluZykpe3ZhciBzPVtdO2Zvcih2YXIgbCBpbiB0LndpZHRoKXMucHVzaChsK28sbytsKTtnKHQua2VybmluZyxtKHQuZmFtaWx5LHtwYWlyczpzfSkpfX19KSl9aWYodC5wb3NpdGlvbilpZih0LnBvc2l0aW9uLmxlbmd0aD4yKXtmb3IodmFyIHc9IXQucG9zaXRpb25bMF0ubGVuZ3RoLGs9dS5tYWxsb2NGbG9hdCgyKnRoaXMuY291bnQpLEE9MCxNPTA7QTx0aGlzLmNvdW50cy5sZW5ndGg7QSsrKXt2YXIgUz10aGlzLmNvdW50c1tBXTtpZih3KWZvcih2YXIgRT0wO0U8UztFKyspa1tNKytdPXQucG9zaXRpb25bMipBXSxrW00rK109dC5wb3NpdGlvblsyKkErMV07ZWxzZSBmb3IodmFyIEw9MDtMPFM7TCsrKWtbTSsrXT10LnBvc2l0aW9uW0FdWzBdLGtbTSsrXT10LnBvc2l0aW9uW0FdWzFdfXRoaXMucG9zaXRpb24uY2FsbD90aGlzLnBvc2l0aW9uKHt0eXBlOiJmbG9hdCIsZGF0YTprfSk6dGhpcy5wb3NpdGlvbj10aGlzLnJlZ2wuYnVmZmVyKHt0eXBlOiJmbG9hdCIsZGF0YTprfSksdS5mcmVlRmxvYXQoayl9ZWxzZSB0aGlzLnBvc2l0aW9uLmRlc3Ryb3kmJnRoaXMucG9zaXRpb24uZGVzdHJveSgpLHRoaXMucG9zaXRpb249e2NvbnN0YW50OnQucG9zaXRpb259O2lmKHQudGV4dHx8YSl7dmFyIEM9dS5tYWxsb2NVaW50OCh0aGlzLmNvdW50KSxQPXUubWFsbG9jRmxvYXQoMip0aGlzLmNvdW50KTt0aGlzLnRleHRXaWR0aD1bXTtmb3IodmFyIEk9MCxPPTA7STx0aGlzLmNvdW50cy5sZW5ndGg7SSsrKXtmb3IodmFyIHo9dGhpcy5jb3VudHNbSV0sRD10aGlzLmZvbnRbSV18fHRoaXMuZm9udFswXSxSPXRoaXMuZm9udEF0bGFzW0ldfHx0aGlzLmZvbnRBdGxhc1swXSxGPTA7Rjx6O0YrKyl7dmFyIEI9dGhpcy50ZXh0LmNoYXJBdChPKSxOPXRoaXMudGV4dC5jaGFyQXQoTy0xKTtpZihDW09dPVIuaWRzW0JdLFBbMipPXT1ELndpZHRoW0JdLEYpe3ZhciBqPVBbMipPLTJdLFU9UFsyKk9dLFY9UFsyKk8tMV0rLjUqaisuNSpVO2lmKHRoaXMua2VybmluZyl7dmFyIEg9RC5rZXJuaW5nW04rQl07SCYmKFYrPS4wMDEqSCl9UFsyKk8rMV09Vn1lbHNlIFBbMipPKzFdPS41KlBbMipPXTtPKyt9dGhpcy50ZXh0V2lkdGgucHVzaChQLmxlbmd0aD8uNSpQWzIqTy0yXStQWzIqTy0xXTowKX10LmFsaWdufHwodC5hbGlnbj10aGlzLmFsaWduKSx0aGlzLmNoYXJCdWZmZXIoe2RhdGE6Qyx0eXBlOiJ1aW50OCIsdXNhZ2U6InN0cmVhbSJ9KSx0aGlzLnNpemVCdWZmZXIoe2RhdGE6UCx0eXBlOiJmbG9hdCIsdXNhZ2U6InN0cmVhbSJ9KSx1LmZyZWVVaW50OChDKSx1LmZyZWVGbG9hdChQKSxyLmxlbmd0aCYmdGhpcy5mb250LmZvckVhY2goKGZ1bmN0aW9uKHQscil7dmFyIG49ZS5mb250QXRsYXNbcl0saT1uLnN0ZXAsYT1NYXRoLmZsb29yKFQubWF4QXRsYXNTaXplL2kpLG89TWF0aC5taW4oYSxuLmNoYXJzLmxlbmd0aCkscz1NYXRoLmNlaWwobi5jaGFycy5sZW5ndGgvbyksbD14KG8qaSksdT14KHMqaSk7bi53aWR0aD1sLG4uaGVpZ2h0PXUsbi5yb3dzPXMsbi5jb2xzPW8sbi5lbSYmbi50ZXh0dXJlKHtkYXRhOmMoe2NhbnZhczpULmF0bGFzQ2FudmFzLGZvbnQ6bi5mb250U3RyaW5nLGNoYXJzOm4uY2hhcnMsc2hhcGU6W2wsdV0sc3RlcDpbaSxpXX0pfSl9KSl9aWYodC5hbGlnbiYmKHRoaXMuYWxpZ249dC5hbGlnbix0aGlzLmFsaWduT2Zmc2V0PXRoaXMudGV4dFdpZHRoLm1hcCgoZnVuY3Rpb24odCxyKXt2YXIgbj1BcnJheS5pc0FycmF5KGUuYWxpZ24pP2UuYWxpZ24ubGVuZ3RoPjE/ZS5hbGlnbltyXTplLmFsaWduWzBdOmUuYWxpZ247aWYoIm51bWJlciI9PXR5cGVvZiBuKXJldHVybiBuO3N3aXRjaChuKXtjYXNlInJpZ2h0IjpjYXNlImVuZCI6cmV0dXJuLXQ7Y2FzZSJjZW50ZXIiOmNhc2UiY2VudHJlIjpjYXNlIm1pZGRsZSI6cmV0dXJuLjUqLXR9cmV0dXJuIDB9KSkpLG51bGw9PXRoaXMuYmFzZWxpbmUmJm51bGw9PXQuYmFzZWxpbmUmJih0LmJhc2VsaW5lPTApLG51bGwhPXQuYmFzZWxpbmUmJih0aGlzLmJhc2VsaW5lPXQuYmFzZWxpbmUsQXJyYXkuaXNBcnJheSh0aGlzLmJhc2VsaW5lKXx8KHRoaXMuYmFzZWxpbmU9W3RoaXMuYmFzZWxpbmVdKSx0aGlzLmJhc2VsaW5lT2Zmc2V0PXRoaXMuYmFzZWxpbmUubWFwKChmdW5jdGlvbih0LHIpe3ZhciBuPShlLmZvbnRbcl18fGUuZm9udFswXSkubWV0cmljcyxpPTA7cmV0dXJuIGkrPS41Km4uYm90dG9tLGkrPSJudW1iZXIiPT10eXBlb2YgdD90LW4uYmFzZWxpbmU6LW5bdF0saSo9LTF9KSkpLG51bGwhPXQuY29sb3IpaWYodC5jb2xvcnx8KHQuY29sb3I9InRyYW5zcGFyZW50IiksInN0cmluZyIhPXR5cGVvZiB0LmNvbG9yJiZpc05hTih0LmNvbG9yKSl7dmFyIHE7aWYoIm51bWJlciI9PXR5cGVvZiB0LmNvbG9yWzBdJiZ0LmNvbG9yLmxlbmd0aD50aGlzLmNvdW50cy5sZW5ndGgpe3ZhciBHPXQuY29sb3IubGVuZ3RoO3E9dS5tYWxsb2NVaW50OChHKTtmb3IodmFyIFk9KHQuY29sb3Iuc3ViYXJyYXl8fHQuY29sb3Iuc2xpY2UpLmJpbmQodC5jb2xvciksVz0wO1c8RztXKz00KXEuc2V0KGwoWShXLFcrNCksInVpbnQ4IiksVyl9ZWxzZXt2YXIgWD10LmNvbG9yLmxlbmd0aDtxPXUubWFsbG9jVWludDgoNCpYKTtmb3IodmFyIFo9MDtaPFg7WisrKXEuc2V0KGwodC5jb2xvcltaXXx8MCwidWludDgiKSw0KlopfXRoaXMuY29sb3I9cX1lbHNlIHRoaXMuY29sb3I9bCh0LmNvbG9yLCJ1aW50OCIpO2lmKHQucG9zaXRpb258fHQudGV4dHx8dC5jb2xvcnx8dC5iYXNlbGluZXx8dC5hbGlnbnx8dC5mb250fHx0Lm9mZnNldHx8dC5vcGFjaXR5KWlmKHRoaXMuY29sb3IubGVuZ3RoPjR8fHRoaXMuYmFzZWxpbmVPZmZzZXQubGVuZ3RoPjF8fHRoaXMuYWxpZ24mJnRoaXMuYWxpZ24ubGVuZ3RoPjF8fHRoaXMuZm9udEF0bGFzLmxlbmd0aD4xfHx0aGlzLnBvc2l0aW9uT2Zmc2V0Lmxlbmd0aD4yKXt2YXIgSj1NYXRoLm1heCguNSp0aGlzLnBvc2l0aW9uLmxlbmd0aHx8MCwuMjUqdGhpcy5jb2xvci5sZW5ndGh8fDAsdGhpcy5iYXNlbGluZU9mZnNldC5sZW5ndGh8fDAsdGhpcy5hbGlnbk9mZnNldC5sZW5ndGh8fDAsdGhpcy5mb250Lmxlbmd0aHx8MCx0aGlzLm9wYWNpdHkubGVuZ3RofHwwLC41KnRoaXMucG9zaXRpb25PZmZzZXQubGVuZ3RofHwwKTt0aGlzLmJhdGNoPUFycmF5KEopO2Zvcih2YXIgSz0wO0s8dGhpcy5iYXRjaC5sZW5ndGg7SysrKXRoaXMuYmF0Y2hbS109e2NvdW50OnRoaXMuY291bnRzLmxlbmd0aD4xP3RoaXMuY291bnRzW0tdOnRoaXMuY291bnRzWzBdLG9mZnNldDp0aGlzLnRleHRPZmZzZXRzLmxlbmd0aD4xP3RoaXMudGV4dE9mZnNldHNbS106dGhpcy50ZXh0T2Zmc2V0c1swXSxjb2xvcjp0aGlzLmNvbG9yP3RoaXMuY29sb3IubGVuZ3RoPD00P3RoaXMuY29sb3I6dGhpcy5jb2xvci5zdWJhcnJheSg0KkssNCpLKzQpOlswLDAsMCwyNTVdLG9wYWNpdHk6QXJyYXkuaXNBcnJheSh0aGlzLm9wYWNpdHkpP3RoaXMub3BhY2l0eVtLXTp0aGlzLm9wYWNpdHksYmFzZWxpbmU6bnVsbCE9dGhpcy5iYXNlbGluZU9mZnNldFtLXT90aGlzLmJhc2VsaW5lT2Zmc2V0W0tdOnRoaXMuYmFzZWxpbmVPZmZzZXRbMF0sYWxpZ246dGhpcy5hbGlnbj9udWxsIT10aGlzLmFsaWduT2Zmc2V0W0tdP3RoaXMuYWxpZ25PZmZzZXRbS106dGhpcy5hbGlnbk9mZnNldFswXTowLGF0bGFzOnRoaXMuZm9udEF0bGFzW0tdfHx0aGlzLmZvbnRBdGxhc1swXSxwb3NpdGlvbk9mZnNldDp0aGlzLnBvc2l0aW9uT2Zmc2V0Lmxlbmd0aD4yP3RoaXMucG9zaXRpb25PZmZzZXQuc3ViYXJyYXkoMipLLDIqSysyKTp0aGlzLnBvc2l0aW9uT2Zmc2V0fX1lbHNlIHRoaXMuY291bnQ/dGhpcy5iYXRjaD1be2NvdW50OnRoaXMuY291bnQsb2Zmc2V0OjAsY29sb3I6dGhpcy5jb2xvcnx8WzAsMCwwLDI1NV0sb3BhY2l0eTpBcnJheS5pc0FycmF5KHRoaXMub3BhY2l0eSk/dGhpcy5vcGFjaXR5WzBdOnRoaXMub3BhY2l0eSxiYXNlbGluZTp0aGlzLmJhc2VsaW5lT2Zmc2V0WzBdLGFsaWduOnRoaXMuYWxpZ25PZmZzZXQ/dGhpcy5hbGlnbk9mZnNldFswXTowLGF0bGFzOnRoaXMuZm9udEF0bGFzWzBdLHBvc2l0aW9uT2Zmc2V0OnRoaXMucG9zaXRpb25PZmZzZXR9XTp0aGlzLmJhdGNoPVtdfSxULnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7fSxULnByb3RvdHlwZS5rZXJuaW5nPSEwLFQucHJvdG90eXBlLnBvc2l0aW9uPXtjb25zdGFudDpuZXcgRmxvYXQzMkFycmF5KDIpfSxULnByb3RvdHlwZS50cmFuc2xhdGU9bnVsbCxULnByb3RvdHlwZS5zY2FsZT1udWxsLFQucHJvdG90eXBlLmZvbnQ9bnVsbCxULnByb3RvdHlwZS50ZXh0PSIiLFQucHJvdG90eXBlLnBvc2l0aW9uT2Zmc2V0PVswLDBdLFQucHJvdG90eXBlLm9wYWNpdHk9MSxULnByb3RvdHlwZS5jb2xvcj1uZXcgVWludDhBcnJheShbMCwwLDAsMjU1XSksVC5wcm90b3R5cGUuYWxpZ25PZmZzZXQ9WzAsMF0sVC5tYXhBdGxhc1NpemU9MTAyNCxULmF0bGFzQ2FudmFzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLFQuYXRsYXNDb250ZXh0PVQuYXRsYXNDYW52YXMuZ2V0Q29udGV4dCgiMmQiLHthbHBoYTohMX0pLFQuYmFzZUZvbnRTaXplPTY0LFQuZm9udHM9e30sZS5leHBvcnRzPVR9LHsiYml0LXR3aWRkbGUiOjgxLCJjb2xvci1ub3JtYWxpemUiOjg5LCJjc3MtZm9udCI6OTksImRldGVjdC1rZXJuaW5nIjoxMjUsImVzNi13ZWFrLW1hcCI6MTgzLCJmbGF0dGVuLXZlcnRleC1kYXRhIjoxOTEsImZvbnQtYXRsYXMiOjE5MiwiZm9udC1tZWFzdXJlIjoxOTMsImdsLXV0aWwvY29udGV4dCI6MjI2LCJpcy1wbGFpbi1vYmoiOjIzNiwib2JqZWN0LWFzc2lnbiI6MjQ3LCJwYXJzZS1yZWN0IjoyNDksInBhcnNlLXVuaXQiOjI1MSwicGljay1ieS1hbGlhcyI6MjUzLHJlZ2w6Mjg0LCJ0by1weCI6MzE1LCJ0eXBlZGFycmF5LXBvb2wiOjMyOH1dLDIyNjpbZnVuY3Rpb24odCxlLHIpeyhmdW5jdGlvbihyKXsoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIG49dCgicGljay1ieS1hbGlhcyIpO2Z1bmN0aW9uIGkodCl7aWYodC5jb250YWluZXIpaWYodC5jb250YWluZXI9PWRvY3VtZW50LmJvZHkpZG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aHx8KHQuY2FudmFzLndpZHRoPXQud2lkdGh8fHQucGl4ZWxSYXRpbypyLmlubmVyV2lkdGgpLGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0fHwodC5jYW52YXMuaGVpZ2h0PXQuaGVpZ2h0fHx0LnBpeGVsUmF0aW8qci5pbm5lckhlaWdodCk7ZWxzZXt2YXIgZT10LmNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0LmNhbnZhcy53aWR0aD10LndpZHRofHxlLnJpZ2h0LWUubGVmdCx0LmNhbnZhcy5oZWlnaHQ9dC5oZWlnaHR8fGUuYm90dG9tLWUudG9wfX1mdW5jdGlvbiBhKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0LmdldENvbnRleHQmJiJ3aWR0aCJpbiB0JiYiaGVpZ2h0ImluIHR9ZnVuY3Rpb24gbygpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO3JldHVybiB0LnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsdC5zdHlsZS50b3A9MCx0LnN0eWxlLmxlZnQ9MCx0fWUuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZTtpZih0PyJzdHJpbmciPT10eXBlb2YgdCYmKHQ9e2NvbnRhaW5lcjp0fSk6dD17fSxhKHQpP3Q9e2NvbnRhaW5lcjp0fTp0PSJzdHJpbmciPT10eXBlb2YoZT10KS5ub2RlTmFtZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUuYXBwZW5kQ2hpbGQmJiJmdW5jdGlvbiI9PXR5cGVvZiBlLmdldEJvdW5kaW5nQ2xpZW50UmVjdD97Y29udGFpbmVyOnR9OmZ1bmN0aW9uKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0LmRyYXdBcnJheXN8fCJmdW5jdGlvbiI9PXR5cGVvZiB0LmRyYXdFbGVtZW50c30odCk/e2dsOnR9Om4odCx7Y29udGFpbmVyOiJjb250YWluZXIgdGFyZ2V0IGVsZW1lbnQgZWwgY2FudmFzIGhvbGRlciBwYXJlbnQgcGFyZW50Tm9kZSB3cmFwcGVyIHVzZSByZWYgcm9vdCBub2RlIixnbDoiZ2wgY29udGV4dCB3ZWJnbCBnbENvbnRleHQiLGF0dHJzOiJhdHRyaWJ1dGVzIGF0dHJzIGNvbnRleHRBdHRyaWJ1dGVzIixwaXhlbFJhdGlvOiJwaXhlbFJhdGlvIHB4UmF0aW8gcHggcmF0aW8gcHhyYXRpbyBwaXhlbHJhdGlvIix3aWR0aDoidyB3aWR0aCIsaGVpZ2h0OiJoIGhlaWdodCJ9LCEwKSx0LnBpeGVsUmF0aW98fCh0LnBpeGVsUmF0aW89ci5waXhlbFJhdGlvfHwxKSx0LmdsKXJldHVybiB0LmdsO2lmKHQuY2FudmFzJiYodC5jb250YWluZXI9dC5jYW52YXMucGFyZW50Tm9kZSksdC5jb250YWluZXIpe2lmKCJzdHJpbmciPT10eXBlb2YgdC5jb250YWluZXIpe3ZhciBzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodC5jb250YWluZXIpO2lmKCFzKXRocm93IEVycm9yKCJFbGVtZW50ICIrdC5jb250YWluZXIrIiBpcyBub3QgZm91bmQiKTt0LmNvbnRhaW5lcj1zfWEodC5jb250YWluZXIpPyh0LmNhbnZhcz10LmNvbnRhaW5lcix0LmNvbnRhaW5lcj10LmNhbnZhcy5wYXJlbnROb2RlKTp0LmNhbnZhc3x8KHQuY2FudmFzPW8oKSx0LmNvbnRhaW5lci5hcHBlbmRDaGlsZCh0LmNhbnZhcyksaSh0KSl9ZWxzZSBpZighdC5jYW52YXMpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgZG9jdW1lbnQpdGhyb3cgRXJyb3IoIk5vdCBET00gZW52aXJvbm1lbnQuIFVzZSBoZWFkbGVzcy1nbC4iKTt0LmNvbnRhaW5lcj1kb2N1bWVudC5ib2R5fHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsdC5jYW52YXM9bygpLHQuY29udGFpbmVyLmFwcGVuZENoaWxkKHQuY2FudmFzKSxpKHQpfXJldHVybiB0LmdsfHxbIndlYmdsIiwiZXhwZXJpbWVudGFsLXdlYmdsIiwid2ViZ2wtZXhwZXJpbWVudGFsIl0uc29tZSgoZnVuY3Rpb24oZSl7dHJ5e3QuZ2w9dC5jYW52YXMuZ2V0Q29udGV4dChlLHQuYXR0cnMpfWNhdGNoKHQpe31yZXR1cm4gdC5nbH0pKSx0LmdsfX0pLmNhbGwodGhpcyl9KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSl9LHsicGljay1ieS1hbGlhcyI6MjUzfV0sMjI3OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpeyJzdHJpbmciPT10eXBlb2YgdCYmKHQ9W3RdKTtmb3IodmFyIGU9W10uc2xpY2UuY2FsbChhcmd1bWVudHMsMSkscj1bXSxuPTA7bjx0Lmxlbmd0aC0xO24rKylyLnB1c2godFtuXSxlW25dfHwiIik7cmV0dXJuIHIucHVzaCh0W25dKSxyLmpvaW4oIiIpfX0se31dLDIyODpbZnVuY3Rpb24odCxlLHIpeyhmdW5jdGlvbihyKXsoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIG4saT10KCJpcy1icm93c2VyIik7bj0iZnVuY3Rpb24iPT10eXBlb2Ygci5tYXRjaE1lZGlhPyFyLm1hdGNoTWVkaWEoIihob3Zlcjogbm9uZSkiKS5tYXRjaGVzOmksZS5leHBvcnRzPW59KS5jYWxsKHRoaXMpfSkuY2FsbCh0aGlzLCJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsP2dsb2JhbDoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6e30pfSx7ImlzLWJyb3dzZXIiOjIzMn1dLDIyOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJpcy1icm93c2VyIik7ZS5leHBvcnRzPW4mJmZ1bmN0aW9uKCl7dmFyIHQ9ITE7dHJ5e3ZhciBlPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwicGFzc2l2ZSIse2dldDpmdW5jdGlvbigpe3Q9ITB9fSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLG51bGwsZSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRlc3QiLG51bGwsZSl9Y2F0Y2goZSl7dD0hMX1yZXR1cm4gdH0oKX0seyJpcy1icm93c2VyIjoyMzJ9XSwyMzA6W2Z1bmN0aW9uKHQsZSxyKXtyLnJlYWQ9ZnVuY3Rpb24odCxlLHIsbixpKXt2YXIgYSxvLHM9OCppLW4tMSxsPSgxPDxzKS0xLGM9bD4+MSx1PS03LGY9cj9pLTE6MCxoPXI/LTE6MSxwPXRbZStmXTtmb3IoZis9aCxhPXAmKDE8PC11KS0xLHA+Pj0tdSx1Kz1zO3U+MDthPTI1NiphK3RbZStmXSxmKz1oLHUtPTgpO2ZvcihvPWEmKDE8PC11KS0xLGE+Pj0tdSx1Kz1uO3U+MDtvPTI1NipvK3RbZStmXSxmKz1oLHUtPTgpO2lmKDA9PT1hKWE9MS1jO2Vsc2V7aWYoYT09PWwpcmV0dXJuIG8/TmFOOjEvMCoocD8tMToxKTtvKz1NYXRoLnBvdygyLG4pLGEtPWN9cmV0dXJuKHA/LTE6MSkqbypNYXRoLnBvdygyLGEtbil9LHIud3JpdGU9ZnVuY3Rpb24odCxlLHIsbixpLGEpe3ZhciBvLHMsbCxjPTgqYS1pLTEsdT0oMTw8YyktMSxmPXU+PjEsaD0yMz09PWk/TWF0aC5wb3coMiwtMjQpLU1hdGgucG93KDIsLTc3KTowLHA9bj8wOmEtMSxkPW4/MTotMSxtPWU8MHx8MD09PWUmJjEvZTwwPzE6MDtmb3IoZT1NYXRoLmFicyhlKSxpc05hTihlKXx8ZT09PTEvMD8ocz1pc05hTihlKT8xOjAsbz11KToobz1NYXRoLmZsb29yKE1hdGgubG9nKGUpL01hdGguTE4yKSxlKihsPU1hdGgucG93KDIsLW8pKTwxJiYoby0tLGwqPTIpLChlKz1vK2Y+PTE/aC9sOmgqTWF0aC5wb3coMiwxLWYpKSpsPj0yJiYobysrLGwvPTIpLG8rZj49dT8ocz0wLG89dSk6bytmPj0xPyhzPShlKmwtMSkqTWF0aC5wb3coMixpKSxvKz1mKToocz1lKk1hdGgucG93KDIsZi0xKSpNYXRoLnBvdygyLGkpLG89MCkpO2k+PTg7dFtyK3BdPTI1NSZzLHArPWQscy89MjU2LGktPTgpO2ZvcihvPW88PGl8cyxjKz1pO2M+MDt0W3IrcF09MjU1Jm8scCs9ZCxvLz0yNTYsYy09OCk7dFtyK3AtZF18PTEyOCptfX0se31dLDIzMTpbZnVuY3Rpb24odCxlLHIpeyJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuY3JlYXRlP2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2UmJih0LnN1cGVyXz1lLHQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pKX06ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aWYoZSl7dC5zdXBlcl89ZTt2YXIgcj1mdW5jdGlvbigpe307ci5wcm90b3R5cGU9ZS5wcm90b3R5cGUsdC5wcm90b3R5cGU9bmV3IHIsdC5wcm90b3R5cGUuY29uc3RydWN0b3I9dH19fSx7fV0sMjMyOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPSEwfSx7fV0sMjMzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz0idW5kZWZpbmVkIiE9dHlwZW9mIG5hdmlnYXRvciYmKC9NU0lFLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpfHwvVHJpZGVudFwvLy50ZXN0KG5hdmlnYXRvci5hcHBWZXJzaW9uKSl9LHt9XSwyMzQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWEsZS5leHBvcnRzLmlzTW9iaWxlPWEsZS5leHBvcnRzLmRlZmF1bHQ9YTt2YXIgbj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlyaXN8a2luZGxlfGxnZSB8bWFlbW98bWlkcHxtbXB8bW9iaWxlLitmaXJlZm94fG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXNbNDZdMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2ksaT0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlyaXN8a2luZGxlfGxnZSB8bWFlbW98bWlkcHxtbXB8bW9iaWxlLitmaXJlZm94fG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXNbNDZdMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vfGFuZHJvaWR8aXBhZHxwbGF5Ym9va3xzaWxrL2k7ZnVuY3Rpb24gYSh0KXt0fHwodD17fSk7dmFyIGU9dC51YTtpZihlfHwidW5kZWZpbmVkIj09dHlwZW9mIG5hdmlnYXRvcnx8KGU9bmF2aWdhdG9yLnVzZXJBZ2VudCksZSYmZS5oZWFkZXJzJiYic3RyaW5nIj09dHlwZW9mIGUuaGVhZGVyc1sidXNlci1hZ2VudCJdJiYoZT1lLmhlYWRlcnNbInVzZXItYWdlbnQiXSksInN0cmluZyIhPXR5cGVvZiBlKXJldHVybiExO3ZhciByPXQudGFibGV0P2kudGVzdChlKTpuLnRlc3QoZSk7cmV0dXJuIXImJnQudGFibGV0JiZ0LmZlYXR1cmVEZXRlY3QmJm5hdmlnYXRvciYmbmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzPjEmJi0xIT09ZS5pbmRleE9mKCJNYWNpbnRvc2giKSYmLTEhPT1lLmluZGV4T2YoIlNhZmFyaSIpJiYocj0hMCkscn19LHt9XSwyMzU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXR5cGVvZiB0O3JldHVybiBudWxsIT09dCYmKCJvYmplY3QiPT09ZXx8ImZ1bmN0aW9uIj09PWUpfX0se31dLDIzNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4iW29iamVjdCBPYmplY3RdIj09PW4uY2FsbCh0KSYmKG51bGw9PT0oZT1PYmplY3QuZ2V0UHJvdG90eXBlT2YodCkpfHxlPT09T2JqZWN0LmdldFByb3RvdHlwZU9mKHt9KSl9fSx7fV0sMjM3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtmb3IodmFyIGUscj10Lmxlbmd0aCxuPTA7bjxyO24rKylpZigoKGU9dC5jaGFyQ29kZUF0KG4pKTw5fHxlPjEzKSYmMzIhPT1lJiYxMzMhPT1lJiYxNjAhPT1lJiY1NzYwIT09ZSYmNjE1OCE9PWUmJihlPDgxOTJ8fGU+ODIwNSkmJjgyMzIhPT1lJiY4MjMzIT09ZSYmODIzOSE9PWUmJjgyODchPT1lJiY4Mjg4IT09ZSYmMTIyODghPT1lJiY2NTI3OSE9PWUpcmV0dXJuITE7cmV0dXJuITB9fSx7fV0sMjM4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJih0PXQudHJpbSgpLCEhKC9eW216bGh2Y3NxdGFdXHMqWy0rLjAtOV1bXm1saHZ6Y3NxdGFdKy9pLnRlc3QodCkmJi9bXGR6XSQvaS50ZXN0KHQpJiZ0Lmxlbmd0aD40KSl9fSx7fV0sMjM5OltmdW5jdGlvbih0LGUscil7IWZ1bmN0aW9uKHQsbil7Im9iamVjdCI9PXR5cGVvZiByJiZ2b2lkIDAhPT1lP2UuZXhwb3J0cz1uKCk6KHQ9dHx8c2VsZikubWFwYm94Z2w9bigpfSh0aGlzLChmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgdCxlLHI7ZnVuY3Rpb24gbihuLGkpe2lmKHQpaWYoZSl7dmFyIGE9InZhciBzaGFyZWRDaHVuayA9IHt9OyAoIit0KyIpKHNoYXJlZENodW5rKTsgKCIrZSsiKShzaGFyZWRDaHVuayk7IixvPXt9O3QobyksKHI9aShvKSkud29ya2VyVXJsPXdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKG5ldyBCbG9iKFthXSx7dHlwZToidGV4dC9qYXZhc2NyaXB0In0pKX1lbHNlIGU9aTtlbHNlIHQ9aX1yZXR1cm4gbigwLChmdW5jdGlvbih0KXtmdW5jdGlvbiBlKHQsZSl7cmV0dXJuIHQoZT17ZXhwb3J0czp7fX0sZS5leHBvcnRzKSxlLmV4cG9ydHN9dmFyIHI9bjtmdW5jdGlvbiBuKHQsZSxyLG4pe3RoaXMuY3g9Myp0LHRoaXMuYng9Myooci10KS10aGlzLmN4LHRoaXMuYXg9MS10aGlzLmN4LXRoaXMuYngsdGhpcy5jeT0zKmUsdGhpcy5ieT0zKihuLWUpLXRoaXMuY3ksdGhpcy5heT0xLXRoaXMuY3ktdGhpcy5ieSx0aGlzLnAxeD10LHRoaXMucDF5PW4sdGhpcy5wMng9cix0aGlzLnAyeT1ufW4ucHJvdG90eXBlLnNhbXBsZUN1cnZlWD1mdW5jdGlvbih0KXtyZXR1cm4oKHRoaXMuYXgqdCt0aGlzLmJ4KSp0K3RoaXMuY3gpKnR9LG4ucHJvdG90eXBlLnNhbXBsZUN1cnZlWT1mdW5jdGlvbih0KXtyZXR1cm4oKHRoaXMuYXkqdCt0aGlzLmJ5KSp0K3RoaXMuY3kpKnR9LG4ucHJvdG90eXBlLnNhbXBsZUN1cnZlRGVyaXZhdGl2ZVg9ZnVuY3Rpb24odCl7cmV0dXJuKDMqdGhpcy5heCp0KzIqdGhpcy5ieCkqdCt0aGlzLmN4fSxuLnByb3RvdHlwZS5zb2x2ZUN1cnZlWD1mdW5jdGlvbih0LGUpe3ZhciByLG4saSxhLG87Zm9yKHZvaWQgMD09PWUmJihlPTFlLTYpLGk9dCxvPTA7bzw4O28rKyl7aWYoYT10aGlzLnNhbXBsZUN1cnZlWChpKS10LE1hdGguYWJzKGEpPGUpcmV0dXJuIGk7dmFyIHM9dGhpcy5zYW1wbGVDdXJ2ZURlcml2YXRpdmVYKGkpO2lmKE1hdGguYWJzKHMpPDFlLTYpYnJlYWs7aS09YS9zfWlmKChpPXQpPChyPTApKXJldHVybiByO2lmKGk+KG49MSkpcmV0dXJuIG47Zm9yKDtyPG47KXtpZihhPXRoaXMuc2FtcGxlQ3VydmVYKGkpLE1hdGguYWJzKGEtdCk8ZSlyZXR1cm4gaTt0PmE/cj1pOm49aSxpPS41KihuLXIpK3J9cmV0dXJuIGl9LG4ucHJvdG90eXBlLnNvbHZlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuc2FtcGxlQ3VydmVZKHRoaXMuc29sdmVDdXJ2ZVgodCxlKSl9O3ZhciBpPWE7ZnVuY3Rpb24gYSh0LGUpe3RoaXMueD10LHRoaXMueT1lfWZ1bmN0aW9uIG8odCxlLG4saSl7dmFyIGE9bmV3IHIodCxlLG4saSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBhLnNvbHZlKHQpfX1hLnByb3RvdHlwZT17Y2xvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGEodGhpcy54LHRoaXMueSl9LGFkZDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLl9hZGQodCl9LHN1YjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLl9zdWIodCl9LG11bHRCeVBvaW50OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkuX211bHRCeVBvaW50KHQpfSxkaXZCeVBvaW50OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkuX2RpdkJ5UG9pbnQodCl9LG11bHQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5fbXVsdCh0KX0sZGl2OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkuX2Rpdih0KX0scm90YXRlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkuX3JvdGF0ZSh0KX0scm90YXRlQXJvdW5kOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5fcm90YXRlQXJvdW5kKHQsZSl9LG1hdE11bHQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5fbWF0TXVsdCh0KX0sdW5pdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuX3VuaXQoKX0scGVycDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuX3BlcnAoKX0scm91bmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLl9yb3VuZCgpfSxtYWc6ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5zcXJ0KHRoaXMueCp0aGlzLngrdGhpcy55KnRoaXMueSl9LGVxdWFsczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy54PT09dC54JiZ0aGlzLnk9PT10Lnl9LGRpc3Q6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguc3FydCh0aGlzLmRpc3RTcXIodCkpfSxkaXN0U3FyOmZ1bmN0aW9uKHQpe3ZhciBlPXQueC10aGlzLngscj10LnktdGhpcy55O3JldHVybiBlKmUrcipyfSxhbmdsZTpmdW5jdGlvbigpe3JldHVybiBNYXRoLmF0YW4yKHRoaXMueSx0aGlzLngpfSxhbmdsZVRvOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLmF0YW4yKHRoaXMueS10LnksdGhpcy54LXQueCl9LGFuZ2xlV2l0aDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5hbmdsZVdpdGhTZXAodC54LHQueSl9LGFuZ2xlV2l0aFNlcDpmdW5jdGlvbih0LGUpe3JldHVybiBNYXRoLmF0YW4yKHRoaXMueCplLXRoaXMueSp0LHRoaXMueCp0K3RoaXMueSplKX0sX21hdE11bHQ6ZnVuY3Rpb24odCl7dmFyIGU9dFswXSp0aGlzLngrdFsxXSp0aGlzLnkscj10WzJdKnRoaXMueCt0WzNdKnRoaXMueTtyZXR1cm4gdGhpcy54PWUsdGhpcy55PXIsdGhpc30sX2FkZDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy54Kz10LngsdGhpcy55Kz10LnksdGhpc30sX3N1YjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy54LT10LngsdGhpcy55LT10LnksdGhpc30sX211bHQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMueCo9dCx0aGlzLnkqPXQsdGhpc30sX2RpdjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy54Lz10LHRoaXMueS89dCx0aGlzfSxfbXVsdEJ5UG9pbnQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMueCo9dC54LHRoaXMueSo9dC55LHRoaXN9LF9kaXZCeVBvaW50OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLngvPXQueCx0aGlzLnkvPXQueSx0aGlzfSxfdW5pdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kaXYodGhpcy5tYWcoKSksdGhpc30sX3BlcnA6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnk7cmV0dXJuIHRoaXMueT10aGlzLngsdGhpcy54PS10LHRoaXN9LF9yb3RhdGU6ZnVuY3Rpb24odCl7dmFyIGU9TWF0aC5jb3ModCkscj1NYXRoLnNpbih0KSxuPWUqdGhpcy54LXIqdGhpcy55LGk9cip0aGlzLngrZSp0aGlzLnk7cmV0dXJuIHRoaXMueD1uLHRoaXMueT1pLHRoaXN9LF9yb3RhdGVBcm91bmQ6ZnVuY3Rpb24odCxlKXt2YXIgcj1NYXRoLmNvcyh0KSxuPU1hdGguc2luKHQpLGk9ZS54K3IqKHRoaXMueC1lLngpLW4qKHRoaXMueS1lLnkpLGE9ZS55K24qKHRoaXMueC1lLngpK3IqKHRoaXMueS1lLnkpO3JldHVybiB0aGlzLng9aSx0aGlzLnk9YSx0aGlzfSxfcm91bmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy54PU1hdGgucm91bmQodGhpcy54KSx0aGlzLnk9TWF0aC5yb3VuZCh0aGlzLnkpLHRoaXN9fSxhLmNvbnZlcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBhP3Q6QXJyYXkuaXNBcnJheSh0KT9uZXcgYSh0WzBdLHRbMV0pOnR9O3ZhciBzPW8oLjI1LC4xLC4yNSwxKTtmdW5jdGlvbiBsKHQsZSxyKXtyZXR1cm4gTWF0aC5taW4ocixNYXRoLm1heChlLHQpKX1mdW5jdGlvbiBjKHQsZSxyKXt2YXIgbj1yLWUsaT0oKHQtZSklbituKSVuK2U7cmV0dXJuIGk9PT1lP3I6aX1mdW5jdGlvbiB1KHQpe2Zvcih2YXIgZT1bXSxyPWFyZ3VtZW50cy5sZW5ndGgtMTtyLS0gPjA7KWVbcl09YXJndW1lbnRzW3IrMV07Zm9yKHZhciBuPTAsaT1lO248aS5sZW5ndGg7bis9MSl7dmFyIGE9aVtuXTtmb3IodmFyIG8gaW4gYSl0W29dPWFbb119cmV0dXJuIHR9dmFyIGY9MTtmdW5jdGlvbiBoKCl7cmV0dXJuIGYrK31mdW5jdGlvbiBwKCl7cmV0dXJuIGZ1bmN0aW9uIHQoZSl7cmV0dXJuIGU/KGVeMTYqTWF0aC5yYW5kb20oKT4+ZS80KS50b1N0cmluZygxNik6KFsxZTddKy1bMWUzXSstNGUzKy04ZTMrLTFlMTEpLnJlcGxhY2UoL1swMThdL2csdCl9KCl9ZnVuY3Rpb24gZCh0KXtyZXR1cm4hIXQmJi9eWzAtOWEtZl17OH0tWzAtOWEtZl17NH0tWzRdWzAtOWEtZl17M30tWzg5YWJdWzAtOWEtZl17M30tWzAtOWEtZl17MTJ9JC9pLnRlc3QodCl9ZnVuY3Rpb24gbSh0LGUpe3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7ZVt0XSYmKGVbdF09ZVt0XS5iaW5kKGUpKX0pKX1mdW5jdGlvbiBnKHQsZSl7cmV0dXJuLTEhPT10LmluZGV4T2YoZSx0Lmxlbmd0aC1lLmxlbmd0aCl9ZnVuY3Rpb24gdih0LGUscil7dmFyIG49e307Zm9yKHZhciBpIGluIHQpbltpXT1lLmNhbGwocnx8dGhpcyx0W2ldLGksdCk7cmV0dXJuIG59ZnVuY3Rpb24geSh0LGUscil7dmFyIG49e307Zm9yKHZhciBpIGluIHQpZS5jYWxsKHJ8fHRoaXMsdFtpXSxpLHQpJiYobltpXT10W2ldKTtyZXR1cm4gbn1mdW5jdGlvbiB4KHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP3QubWFwKHgpOiJvYmplY3QiPT10eXBlb2YgdCYmdD92KHQseCk6dH12YXIgYj17fTtmdW5jdGlvbiBfKHQpe2JbdF18fCgidW5kZWZpbmVkIiE9dHlwZW9mIGNvbnNvbGUmJmNvbnNvbGUud2Fybih0KSxiW3RdPSEwKX1mdW5jdGlvbiB3KHQsZSxyKXtyZXR1cm4oci55LXQueSkqKGUueC10LngpPihlLnktdC55KSooci54LXQueCl9ZnVuY3Rpb24gVCh0KXtmb3IodmFyIGU9MCxyPTAsbj10Lmxlbmd0aCxpPW4tMSxhPXZvaWQgMCxvPXZvaWQgMDtyPG47aT1yKyspYT10W3JdLGUrPSgobz10W2ldKS54LWEueCkqKGEueStvLnkpO3JldHVybiBlfWZ1bmN0aW9uIGsoKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlJiYidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGYmJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZX1mdW5jdGlvbiBBKHQpe3ZhciBlPXt9O2lmKHQucmVwbGFjZSgvKD86XnwoPzpccypcLFxzKikpKFteXHgwMC1ceDIwXChcKTw+QFwsO1w6XFwiXC9cW1xdXD9cPVx7XH1ceDdGXSspKD86XD0oPzooW15ceDAwLVx4MjBcKFwpPD5AXCw7XDpcXCJcL1xbXF1cP1w9XHtcfVx4N0ZdKyl8KD86XCIoKD86W14iXFxdfFxcLikqKVwiKSkpPy9nLChmdW5jdGlvbih0LHIsbixpKXt2YXIgYT1ufHxpO3JldHVybiBlW3JdPSFhfHxhLnRvTG93ZXJDYXNlKCksIiJ9KSksZVsibWF4LWFnZSJdKXt2YXIgcj1wYXJzZUludChlWyJtYXgtYWdlIl0sMTApO2lzTmFOKHIpP2RlbGV0ZSBlWyJtYXgtYWdlIl06ZVsibWF4LWFnZSJdPXJ9cmV0dXJuIGV9dmFyIE09bnVsbDtmdW5jdGlvbiBTKHQpe2lmKG51bGw9PU0pe3ZhciBlPXQubmF2aWdhdG9yP3QubmF2aWdhdG9yLnVzZXJBZ2VudDpudWxsO009ISF0LnNhZmFyaXx8ISghZXx8ISgvXGIoaVBhZHxpUGhvbmV8aVBvZClcYi8udGVzdChlKXx8ZS5tYXRjaCgiU2FmYXJpIikmJiFlLm1hdGNoKCJDaHJvbWUiKSkpfXJldHVybiBNfWZ1bmN0aW9uIEUodCl7dHJ5e3ZhciBlPXNlbGZbdF07cmV0dXJuIGUuc2V0SXRlbSgiX21hcGJveF90ZXN0XyIsMSksZS5yZW1vdmVJdGVtKCJfbWFwYm94X3Rlc3RfIiksITB9Y2F0Y2godCl7cmV0dXJuITF9fXZhciBMLEMsUCxJLE89c2VsZi5wZXJmb3JtYW5jZSYmc2VsZi5wZXJmb3JtYW5jZS5ub3c/c2VsZi5wZXJmb3JtYW5jZS5ub3cuYmluZChzZWxmLnBlcmZvcm1hbmNlKTpEYXRlLm5vdy5iaW5kKERhdGUpLHo9c2VsZi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fHNlbGYubW96UmVxdWVzdEFuaW1hdGlvbkZyYW1lfHxzZWxmLndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZXx8c2VsZi5tc1JlcXVlc3RBbmltYXRpb25GcmFtZSxEPXNlbGYuY2FuY2VsQW5pbWF0aW9uRnJhbWV8fHNlbGYubW96Q2FuY2VsQW5pbWF0aW9uRnJhbWV8fHNlbGYud2Via2l0Q2FuY2VsQW5pbWF0aW9uRnJhbWV8fHNlbGYubXNDYW5jZWxBbmltYXRpb25GcmFtZSxSPXtub3c6TyxmcmFtZTpmdW5jdGlvbih0KXt2YXIgZT16KHQpO3JldHVybntjYW5jZWw6ZnVuY3Rpb24oKXtyZXR1cm4gRChlKX19fSxnZXRJbWFnZURhdGE6ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT0wKTt2YXIgcj1zZWxmLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLG49ci5nZXRDb250ZXh0KCIyZCIpO2lmKCFuKXRocm93IG5ldyBFcnJvcigiZmFpbGVkIHRvIGNyZWF0ZSBjYW52YXMgMmQgY29udGV4dCIpO3JldHVybiByLndpZHRoPXQud2lkdGgsci5oZWlnaHQ9dC5oZWlnaHQsbi5kcmF3SW1hZ2UodCwwLDAsdC53aWR0aCx0LmhlaWdodCksbi5nZXRJbWFnZURhdGEoLWUsLWUsdC53aWR0aCsyKmUsdC5oZWlnaHQrMiplKX0scmVzb2x2ZVVSTDpmdW5jdGlvbih0KXtyZXR1cm4gTHx8KEw9c2VsZi5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIikpLEwuaHJlZj10LEwuaHJlZn0saGFyZHdhcmVDb25jdXJyZW5jeTpzZWxmLm5hdmlnYXRvci5oYXJkd2FyZUNvbmN1cnJlbmN5fHw0LGdldCBkZXZpY2VQaXhlbFJhdGlvKCl7cmV0dXJuIHNlbGYuZGV2aWNlUGl4ZWxSYXRpb30sZ2V0IHByZWZlcnNSZWR1Y2VkTW90aW9uKCl7cmV0dXJuISFzZWxmLm1hdGNoTWVkaWEmJihudWxsPT1DJiYoQz1zZWxmLm1hdGNoTWVkaWEoIihwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIikpLEMubWF0Y2hlcyl9fSxGPXtBUElfVVJMOiJodHRwczovL2FwaS5tYXBib3guY29tIixnZXQgRVZFTlRTX1VSTCgpe3JldHVybiB0aGlzLkFQSV9VUkw/MD09PXRoaXMuQVBJX1VSTC5pbmRleE9mKCJodHRwczovL2FwaS5tYXBib3guY24iKT8iaHR0cHM6Ly9ldmVudHMubWFwYm94LmNuL2V2ZW50cy92MiI6MD09PXRoaXMuQVBJX1VSTC5pbmRleE9mKCJodHRwczovL2FwaS5tYXBib3guY29tIik/Imh0dHBzOi8vZXZlbnRzLm1hcGJveC5jb20vZXZlbnRzL3YyIjpudWxsOm51bGx9LEZFRURCQUNLX1VSTDoiaHR0cHM6Ly9hcHBzLm1hcGJveC5jb20vZmVlZGJhY2siLFJFUVVJUkVfQUNDRVNTX1RPS0VOOiEwLEFDQ0VTU19UT0tFTjpudWxsLE1BWF9QQVJBTExFTF9JTUFHRV9SRVFVRVNUUzoxNn0sQj17c3VwcG9ydGVkOiExLHRlc3RTdXBwb3J0OmZ1bmN0aW9uKHQpe2lmKE58fCFJKXJldHVybjtqP1UodCk6UD10fX0sTj0hMSxqPSExO2Z1bmN0aW9uIFUodCl7dmFyIGU9dC5jcmVhdGVUZXh0dXJlKCk7dC5iaW5kVGV4dHVyZSh0LlRFWFRVUkVfMkQsZSk7dHJ5e2lmKHQudGV4SW1hZ2UyRCh0LlRFWFRVUkVfMkQsMCx0LlJHQkEsdC5SR0JBLHQuVU5TSUdORURfQllURSxJKSx0LmlzQ29udGV4dExvc3QoKSlyZXR1cm47Qi5zdXBwb3J0ZWQ9ITB9Y2F0Y2godCl7fXQuZGVsZXRlVGV4dHVyZShlKSxOPSEwfXNlbGYuZG9jdW1lbnQmJigoST1zZWxmLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpKS5vbmxvYWQ9ZnVuY3Rpb24oKXtQJiZVKFApLFA9bnVsbCxqPSEwfSxJLm9uZXJyb3I9ZnVuY3Rpb24oKXtOPSEwLFA9bnVsbH0sSS5zcmM9ImRhdGE6aW1hZ2Uvd2VicDtiYXNlNjQsVWtsR1JoNEFBQUJYUlVKUVZsQTRUQkVBQUFBdkFRQUFBQWZRLy83M3YvK0JpT2gvQUFBPSIpO3ZhciBWPSIwMSI7dmFyIEg9ZnVuY3Rpb24odCxlKXt0aGlzLl90cmFuc2Zvcm1SZXF1ZXN0Rm49dCx0aGlzLl9jdXN0b21BY2Nlc3NUb2tlbj1lLHRoaXMuX2NyZWF0ZVNrdVRva2VuKCl9O2Z1bmN0aW9uIHEodCl7cmV0dXJuIDA9PT10LmluZGV4T2YoIm1hcGJveDoiKX1ILnByb3RvdHlwZS5fY3JlYXRlU2t1VG9rZW49ZnVuY3Rpb24oKXt2YXIgdD1mdW5jdGlvbigpe2Zvcih2YXIgdD0iIixlPTA7ZTwxMDtlKyspdCs9IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIltNYXRoLmZsb29yKDYyKk1hdGgucmFuZG9tKCkpXTtyZXR1cm57dG9rZW46WyIxIixWLHRdLmpvaW4oIiIpLHRva2VuRXhwaXJlc0F0OkRhdGUubm93KCkrNDMyZTV9fSgpO3RoaXMuX3NrdVRva2VuPXQudG9rZW4sdGhpcy5fc2t1VG9rZW5FeHBpcmVzQXQ9dC50b2tlbkV4cGlyZXNBdH0sSC5wcm90b3R5cGUuX2lzU2t1VG9rZW5FeHBpcmVkPWZ1bmN0aW9uKCl7cmV0dXJuIERhdGUubm93KCk+dGhpcy5fc2t1VG9rZW5FeHBpcmVzQXR9LEgucHJvdG90eXBlLnRyYW5zZm9ybVJlcXVlc3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fdHJhbnNmb3JtUmVxdWVzdEZuJiZ0aGlzLl90cmFuc2Zvcm1SZXF1ZXN0Rm4odCxlKXx8e3VybDp0fX0sSC5wcm90b3R5cGUubm9ybWFsaXplU3R5bGVVUkw9ZnVuY3Rpb24odCxlKXtpZighcSh0KSlyZXR1cm4gdDt2YXIgcj1YKHQpO3JldHVybiByLnBhdGg9Ii9zdHlsZXMvdjEiK3IucGF0aCx0aGlzLl9tYWtlQVBJVVJMKHIsdGhpcy5fY3VzdG9tQWNjZXNzVG9rZW58fGUpfSxILnByb3RvdHlwZS5ub3JtYWxpemVHbHlwaHNVUkw9ZnVuY3Rpb24odCxlKXtpZighcSh0KSlyZXR1cm4gdDt2YXIgcj1YKHQpO3JldHVybiByLnBhdGg9Ii9mb250cy92MSIrci5wYXRoLHRoaXMuX21ha2VBUElVUkwocix0aGlzLl9jdXN0b21BY2Nlc3NUb2tlbnx8ZSl9LEgucHJvdG90eXBlLm5vcm1hbGl6ZVNvdXJjZVVSTD1mdW5jdGlvbih0LGUpe2lmKCFxKHQpKXJldHVybiB0O3ZhciByPVgodCk7cmV0dXJuIHIucGF0aD0iL3Y0LyIrci5hdXRob3JpdHkrIi5qc29uIixyLnBhcmFtcy5wdXNoKCJzZWN1cmUiKSx0aGlzLl9tYWtlQVBJVVJMKHIsdGhpcy5fY3VzdG9tQWNjZXNzVG9rZW58fGUpfSxILnByb3RvdHlwZS5ub3JtYWxpemVTcHJpdGVVUkw9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9WCh0KTtyZXR1cm4gcSh0KT8oaS5wYXRoPSIvc3R5bGVzL3YxIitpLnBhdGgrIi9zcHJpdGUiK2Urcix0aGlzLl9tYWtlQVBJVVJMKGksdGhpcy5fY3VzdG9tQWNjZXNzVG9rZW58fG4pKTooaS5wYXRoKz0iIitlK3IsWihpKSl9LEgucHJvdG90eXBlLm5vcm1hbGl6ZVRpbGVVUkw9ZnVuY3Rpb24odCxlKXtpZih0aGlzLl9pc1NrdVRva2VuRXhwaXJlZCgpJiZ0aGlzLl9jcmVhdGVTa3VUb2tlbigpLHQmJiFxKHQpKXJldHVybiB0O3ZhciByPVgodCksbj1SLmRldmljZVBpeGVsUmF0aW8+PTJ8fDUxMj09PWU/IkAyeCI6IiIsaT1CLnN1cHBvcnRlZD8iLndlYnAiOiIkMSI7ci5wYXRoPXIucGF0aC5yZXBsYWNlKC8oXC4ocG5nfGpwZylcZCopKD89JCkvLCIiK24raSksci5wYXRoPXIucGF0aC5yZXBsYWNlKC9eLitcL3Y0XC8vLCIvIiksci5wYXRoPSIvdjQiK3IucGF0aDt2YXIgYT10aGlzLl9jdXN0b21BY2Nlc3NUb2tlbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAscj10O2U8ci5sZW5ndGg7ZSs9MSl7dmFyIG49cltlXS5tYXRjaCgvXmFjY2Vzc190b2tlbj0oLiopJC8pO2lmKG4pcmV0dXJuIG5bMV19cmV0dXJuIG51bGx9KHIucGFyYW1zKXx8Ri5BQ0NFU1NfVE9LRU47cmV0dXJuIEYuUkVRVUlSRV9BQ0NFU1NfVE9LRU4mJmEmJnRoaXMuX3NrdVRva2VuJiZyLnBhcmFtcy5wdXNoKCJza3U9Iit0aGlzLl9za3VUb2tlbiksdGhpcy5fbWFrZUFQSVVSTChyLGEpfSxILnByb3RvdHlwZS5jYW5vbmljYWxpemVUaWxlVVJMPWZ1bmN0aW9uKHQsZSl7dmFyIHI9WCh0KTtpZighci5wYXRoLm1hdGNoKC8oXlwvdjRcLykvKXx8IXIucGF0aC5tYXRjaCgvXC5bXHddKyQvKSlyZXR1cm4gdDt2YXIgbj0ibWFwYm94Oi8vdGlsZXMvIjtuKz1yLnBhdGgucmVwbGFjZSgiL3Y0LyIsIiIpO3ZhciBpPXIucGFyYW1zO3JldHVybiBlJiYoaT1pLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIXQubWF0Y2goL15hY2Nlc3NfdG9rZW49Lyl9KSkpLGkubGVuZ3RoJiYobis9Ij8iK2kuam9pbigiJiIpKSxufSxILnByb3RvdHlwZS5jYW5vbmljYWxpemVUaWxlc2V0PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPSEhZSYmcShlKSxuPVtdLGk9MCxhPXQudGlsZXN8fFtdO2k8YS5sZW5ndGg7aSs9MSl7dmFyIG89YVtpXTtZKG8pP24ucHVzaCh0aGlzLmNhbm9uaWNhbGl6ZVRpbGVVUkwobyxyKSk6bi5wdXNoKG8pfXJldHVybiBufSxILnByb3RvdHlwZS5fbWFrZUFQSVVSTD1mdW5jdGlvbih0LGUpe3ZhciByPSJTZWUgaHR0cHM6Ly93d3cubWFwYm94LmNvbS9hcGktZG9jdW1lbnRhdGlvbi8jYWNjZXNzLXRva2Vucy1hbmQtdG9rZW4tc2NvcGVzIixuPVgoRi5BUElfVVJMKTtpZih0LnByb3RvY29sPW4ucHJvdG9jb2wsdC5hdXRob3JpdHk9bi5hdXRob3JpdHksIi8iIT09bi5wYXRoJiYodC5wYXRoPSIiK24ucGF0aCt0LnBhdGgpLCFGLlJFUVVJUkVfQUNDRVNTX1RPS0VOKXJldHVybiBaKHQpO2lmKCEoZT1lfHxGLkFDQ0VTU19UT0tFTikpdGhyb3cgbmV3IEVycm9yKCJBbiBBUEkgYWNjZXNzIHRva2VuIGlzIHJlcXVpcmVkIHRvIHVzZSBNYXBib3ggR0wuICIrcik7aWYoInMiPT09ZVswXSl0aHJvdyBuZXcgRXJyb3IoIlVzZSBhIHB1YmxpYyBhY2Nlc3MgdG9rZW4gKHBrLiopIHdpdGggTWFwYm94IEdMLCBub3QgYSBzZWNyZXQgYWNjZXNzIHRva2VuIChzay4qKS4gIityKTtyZXR1cm4gdC5wYXJhbXM9dC5wYXJhbXMuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4tMT09PXQuaW5kZXhPZigiYWNjZXNzX3Rva2VuIil9KSksdC5wYXJhbXMucHVzaCgiYWNjZXNzX3Rva2VuPSIrZSksWih0KX07dmFyIEc9L14oKGh0dHBzPzopP1wvXC8pPyhbXlwvXStcLik/bWFwYm94XC5jKG58b20pKFwvfFw/fCQpL2k7ZnVuY3Rpb24gWSh0KXtyZXR1cm4gRy50ZXN0KHQpfXZhciBXPS9eKFx3Kyk6XC9cLyhbXi8/XSopKFwvW14/XSspP1w/PyguKyk/LztmdW5jdGlvbiBYKHQpe3ZhciBlPXQubWF0Y2goVyk7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJVbmFibGUgdG8gcGFyc2UgVVJMIG9iamVjdCIpO3JldHVybntwcm90b2NvbDplWzFdLGF1dGhvcml0eTplWzJdLHBhdGg6ZVszXXx8Ii8iLHBhcmFtczplWzRdP2VbNF0uc3BsaXQoIiYiKTpbXX19ZnVuY3Rpb24gWih0KXt2YXIgZT10LnBhcmFtcy5sZW5ndGg/Ij8iK3QucGFyYW1zLmpvaW4oIiYiKToiIjtyZXR1cm4gdC5wcm90b2NvbCsiOi8vIit0LmF1dGhvcml0eSt0LnBhdGgrZX1mdW5jdGlvbiBKKHQpe2lmKCF0KXJldHVybiBudWxsO3ZhciBlLHI9dC5zcGxpdCgiLiIpO2lmKCFyfHwzIT09ci5sZW5ndGgpcmV0dXJuIG51bGw7dHJ5e3JldHVybiBKU09OLnBhcnNlKChlPXJbMV0sZGVjb2RlVVJJQ29tcG9uZW50KHNlbGYuYXRvYihlKS5zcGxpdCgiIikubWFwKChmdW5jdGlvbih0KXtyZXR1cm4iJSIrKCIwMCIrdC5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTIpfSkpLmpvaW4oIiIpKSkpfWNhdGNoKHQpe3JldHVybiBudWxsfX12YXIgSz1mdW5jdGlvbih0KXt0aGlzLnR5cGU9dCx0aGlzLmFub25JZD1udWxsLHRoaXMuZXZlbnREYXRhPXt9LHRoaXMucXVldWU9W10sdGhpcy5wZW5kaW5nUmVxdWVzdD1udWxsfTtLLnByb3RvdHlwZS5nZXRTdG9yYWdlS2V5PWZ1bmN0aW9uKHQpe3ZhciBlLHI9SihGLkFDQ0VTU19UT0tFTiksbj0iIjtyZXR1cm4gciYmci51PyhlPXIudSxuPXNlbGYuYnRvYShlbmNvZGVVUklDb21wb25lbnQoZSkucmVwbGFjZSgvJShbMC05QS1GXXsyfSkvZywoZnVuY3Rpb24odCxlKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShOdW1iZXIoIjB4IitlKSl9KSkpKTpuPUYuQUNDRVNTX1RPS0VOfHwiIix0PyJtYXBib3guZXZlbnREYXRhLiIrdCsiOiIrbjoibWFwYm94LmV2ZW50RGF0YToiK259LEsucHJvdG90eXBlLmZldGNoRXZlbnREYXRhPWZ1bmN0aW9uKCl7dmFyIHQ9RSgibG9jYWxTdG9yYWdlIiksZT10aGlzLmdldFN0b3JhZ2VLZXkoKSxyPXRoaXMuZ2V0U3RvcmFnZUtleSgidXVpZCIpO2lmKHQpdHJ5e3ZhciBuPXNlbGYubG9jYWxTdG9yYWdlLmdldEl0ZW0oZSk7biYmKHRoaXMuZXZlbnREYXRhPUpTT04ucGFyc2UobikpO3ZhciBpPXNlbGYubG9jYWxTdG9yYWdlLmdldEl0ZW0ocik7aSYmKHRoaXMuYW5vbklkPWkpfWNhdGNoKHQpe18oIlVuYWJsZSB0byByZWFkIGZyb20gTG9jYWxTdG9yYWdlIil9fSxLLnByb3RvdHlwZS5zYXZlRXZlbnREYXRhPWZ1bmN0aW9uKCl7dmFyIHQ9RSgibG9jYWxTdG9yYWdlIiksZT10aGlzLmdldFN0b3JhZ2VLZXkoKSxyPXRoaXMuZ2V0U3RvcmFnZUtleSgidXVpZCIpO2lmKHQpdHJ5e3NlbGYubG9jYWxTdG9yYWdlLnNldEl0ZW0ocix0aGlzLmFub25JZCksT2JqZWN0LmtleXModGhpcy5ldmVudERhdGEpLmxlbmd0aD49MSYmc2VsZi5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShlLEpTT04uc3RyaW5naWZ5KHRoaXMuZXZlbnREYXRhKSl9Y2F0Y2godCl7XygiVW5hYmxlIHRvIHdyaXRlIHRvIExvY2FsU3RvcmFnZSIpfX0sSy5wcm90b3R5cGUucHJvY2Vzc1JlcXVlc3RzPWZ1bmN0aW9uKHQpe30sSy5wcm90b3R5cGUucG9zdEV2ZW50PWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPXRoaXM7aWYoRi5FVkVOVFNfVVJMKXt2YXIgYT1YKEYuRVZFTlRTX1VSTCk7YS5wYXJhbXMucHVzaCgiYWNjZXNzX3Rva2VuPSIrKG58fEYuQUNDRVNTX1RPS0VOfHwiIikpO3ZhciBvPXtldmVudDp0aGlzLnR5cGUsY3JlYXRlZDpuZXcgRGF0ZSh0KS50b0lTT1N0cmluZygpLHNka0lkZW50aWZpZXI6Im1hcGJveC1nbC1qcyIsc2RrVmVyc2lvbjoiMS4xMC4xIixza3VJZDpWLHVzZXJJZDp0aGlzLmFub25JZH0scz1lP3UobyxlKTpvLGw9e3VybDpaKGEpLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJ0ZXh0L3BsYWluIn0sYm9keTpKU09OLnN0cmluZ2lmeShbc10pfTt0aGlzLnBlbmRpbmdSZXF1ZXN0PWJ0KGwsKGZ1bmN0aW9uKHQpe2kucGVuZGluZ1JlcXVlc3Q9bnVsbCxyKHQpLGkuc2F2ZUV2ZW50RGF0YSgpLGkucHJvY2Vzc1JlcXVlc3RzKG4pfSkpfX0sSy5wcm90b3R5cGUucXVldWVSZXF1ZXN0PWZ1bmN0aW9uKHQsZSl7dGhpcy5xdWV1ZS5wdXNoKHQpLHRoaXMucHJvY2Vzc1JlcXVlc3RzKGUpfTt2YXIgUSwkLHR0PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmNhbGwodGhpcywibWFwLmxvYWQiKSx0aGlzLnN1Y2Nlc3M9e30sdGhpcy5za3VUb2tlbj0iIn1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUucG9zdE1hcExvYWRFdmVudD1mdW5jdGlvbih0LGUscixuKXt0aGlzLnNrdVRva2VuPXIsKEYuRVZFTlRTX1VSTCYmbnx8Ri5BQ0NFU1NfVE9LRU4mJkFycmF5LmlzQXJyYXkodCkmJnQuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIHEodCl8fFkodCl9KSkpJiZ0aGlzLnF1ZXVlUmVxdWVzdCh7aWQ6ZSx0aW1lc3RhbXA6RGF0ZS5ub3coKX0sbil9LGUucHJvdG90eXBlLnByb2Nlc3NSZXF1ZXN0cz1mdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKCF0aGlzLnBlbmRpbmdSZXF1ZXN0JiYwIT09dGhpcy5xdWV1ZS5sZW5ndGgpe3ZhciByPXRoaXMucXVldWUuc2hpZnQoKSxuPXIuaWQsaT1yLnRpbWVzdGFtcDtuJiZ0aGlzLnN1Y2Nlc3Nbbl18fCh0aGlzLmFub25JZHx8dGhpcy5mZXRjaEV2ZW50RGF0YSgpLGQodGhpcy5hbm9uSWQpfHwodGhpcy5hbm9uSWQ9cCgpKSx0aGlzLnBvc3RFdmVudChpLHtza3VUb2tlbjp0aGlzLnNrdVRva2VufSwoZnVuY3Rpb24odCl7dHx8biYmKGUuc3VjY2Vzc1tuXT0hMCl9KSx0KSl9fSxlfShLKSxldD1uZXcoZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt0LmNhbGwodGhpcywiYXBwVXNlclR1cm5zdGlsZSIpLHRoaXMuX2N1c3RvbUFjY2Vzc1Rva2VuPWV9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLnBvc3RUdXJuc3RpbGVFdmVudD1mdW5jdGlvbih0LGUpe0YuRVZFTlRTX1VSTCYmRi5BQ0NFU1NfVE9LRU4mJkFycmF5LmlzQXJyYXkodCkmJnQuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIHEodCl8fFkodCl9KSkmJnRoaXMucXVldWVSZXF1ZXN0KERhdGUubm93KCksZSl9LGUucHJvdG90eXBlLnByb2Nlc3NSZXF1ZXN0cz1mdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKCF0aGlzLnBlbmRpbmdSZXF1ZXN0JiYwIT09dGhpcy5xdWV1ZS5sZW5ndGgpe3RoaXMuYW5vbklkJiZ0aGlzLmV2ZW50RGF0YS5sYXN0U3VjY2VzcyYmdGhpcy5ldmVudERhdGEudG9rZW5VfHx0aGlzLmZldGNoRXZlbnREYXRhKCk7dmFyIHI9SihGLkFDQ0VTU19UT0tFTiksbj1yP3IudTpGLkFDQ0VTU19UT0tFTixpPW4hPT10aGlzLmV2ZW50RGF0YS50b2tlblU7ZCh0aGlzLmFub25JZCl8fCh0aGlzLmFub25JZD1wKCksaT0hMCk7dmFyIGE9dGhpcy5xdWV1ZS5zaGlmdCgpO2lmKHRoaXMuZXZlbnREYXRhLmxhc3RTdWNjZXNzKXt2YXIgbz1uZXcgRGF0ZSh0aGlzLmV2ZW50RGF0YS5sYXN0U3VjY2Vzcykscz1uZXcgRGF0ZShhKSxsPShhLXRoaXMuZXZlbnREYXRhLmxhc3RTdWNjZXNzKS84NjRlNTtpPWl8fGw+PTF8fGw8LTF8fG8uZ2V0RGF0ZSgpIT09cy5nZXREYXRlKCl9ZWxzZSBpPSEwO2lmKCFpKXJldHVybiB0aGlzLnByb2Nlc3NSZXF1ZXN0cygpO3RoaXMucG9zdEV2ZW50KGEseyJlbmFibGVkLnRlbGVtZXRyeSI6ITF9LChmdW5jdGlvbih0KXt0fHwoZS5ldmVudERhdGEubGFzdFN1Y2Nlc3M9YSxlLmV2ZW50RGF0YS50b2tlblU9bil9KSx0KX19LGV9KEspKSxydD1ldC5wb3N0VHVybnN0aWxlRXZlbnQuYmluZChldCksbnQ9bmV3IHR0LGl0PW50LnBvc3RNYXBMb2FkRXZlbnQuYmluZChudCksYXQ9NTAwLG90PTUwO2Z1bmN0aW9uIHN0KCl7c2VsZi5jYWNoZXMmJiFRJiYoUT1zZWxmLmNhY2hlcy5vcGVuKCJtYXBib3gtdGlsZXMiKSl9ZnVuY3Rpb24gbHQodCxlLHIpe2lmKHN0KCksUSl7dmFyIG49e3N0YXR1czplLnN0YXR1cyxzdGF0dXNUZXh0OmUuc3RhdHVzVGV4dCxoZWFkZXJzOm5ldyBzZWxmLkhlYWRlcnN9O2UuaGVhZGVycy5mb3JFYWNoKChmdW5jdGlvbih0LGUpe3JldHVybiBuLmhlYWRlcnMuc2V0KGUsdCl9KSk7dmFyIGk9QShlLmhlYWRlcnMuZ2V0KCJDYWNoZS1Db250cm9sIil8fCIiKTtpZighaVsibm8tc3RvcmUiXSlpWyJtYXgtYWdlIl0mJm4uaGVhZGVycy5zZXQoIkV4cGlyZXMiLG5ldyBEYXRlKHIrMWUzKmlbIm1heC1hZ2UiXSkudG9VVENTdHJpbmcoKSksbmV3IERhdGUobi5oZWFkZXJzLmdldCgiRXhwaXJlcyIpKS5nZXRUaW1lKCktcjw0MmU0fHxmdW5jdGlvbih0LGUpe2lmKHZvaWQgMD09PSQpdHJ5e25ldyBSZXNwb25zZShuZXcgUmVhZGFibGVTdHJlYW0pLCQ9ITB9Y2F0Y2godCl7JD0hMX0kP2UodC5ib2R5KTp0LmJsb2IoKS50aGVuKGUpfShlLChmdW5jdGlvbihlKXt2YXIgcj1uZXcgc2VsZi5SZXNwb25zZShlLG4pO3N0KCksUSYmUS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4gZS5wdXQoY3QodC51cmwpLHIpfSkpLmNhdGNoKChmdW5jdGlvbih0KXtyZXR1cm4gXyh0Lm1lc3NhZ2UpfSkpfSkpfX1mdW5jdGlvbiBjdCh0KXt2YXIgZT10LmluZGV4T2YoIj8iKTtyZXR1cm4gZTwwP3Q6dC5zbGljZSgwLGUpfWZ1bmN0aW9uIHV0KHQsZSl7aWYoc3QoKSwhUSlyZXR1cm4gZShudWxsKTt2YXIgcj1jdCh0LnVybCk7US50aGVuKChmdW5jdGlvbih0KXt0Lm1hdGNoKHIpLnRoZW4oKGZ1bmN0aW9uKG4pe3ZhciBpPWZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiExO3ZhciBlPW5ldyBEYXRlKHQuaGVhZGVycy5nZXQoIkV4cGlyZXMiKXx8MCkscj1BKHQuaGVhZGVycy5nZXQoIkNhY2hlLUNvbnRyb2wiKXx8IiIpO3JldHVybiBlPkRhdGUubm93KCkmJiFyWyJuby1jYWNoZSJdfShuKTt0LmRlbGV0ZShyKSxpJiZ0LnB1dChyLG4uY2xvbmUoKSksZShudWxsLG4saSl9KSkuY2F0Y2goZSl9KSkuY2F0Y2goZSl9dmFyIGZ0LGh0PTEvMDtmdW5jdGlvbiBwdCgpe3JldHVybiBudWxsPT1mdCYmKGZ0PXNlbGYuT2Zmc2NyZWVuQ2FudmFzJiZuZXcgc2VsZi5PZmZzY3JlZW5DYW52YXMoMSwxKS5nZXRDb250ZXh0KCIyZCIpJiYiZnVuY3Rpb24iPT10eXBlb2Ygc2VsZi5jcmVhdGVJbWFnZUJpdG1hcCksZnR9dmFyIGR0PXtVbmtub3duOiJVbmtub3duIixTdHlsZToiU3R5bGUiLFNvdXJjZToiU291cmNlIixUaWxlOiJUaWxlIixHbHlwaHM6IkdseXBocyIsU3ByaXRlSW1hZ2U6IlNwcml0ZUltYWdlIixTcHJpdGVKU09OOiJTcHJpdGVKU09OIixJbWFnZToiSW1hZ2UifTsiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmZyZWV6ZSYmT2JqZWN0LmZyZWV6ZShkdCk7dmFyIG10PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSxyLG4pezQwMT09PXImJlkobikmJihlKz0iOiB5b3UgbWF5IGhhdmUgcHJvdmlkZWQgYW4gaW52YWxpZCBNYXBib3ggYWNjZXNzIHRva2VuLiBTZWUgaHR0cHM6Ly93d3cubWFwYm94LmNvbS9hcGktZG9jdW1lbnRhdGlvbi8jYWNjZXNzLXRva2Vucy1hbmQtdG9rZW4tc2NvcGVzIiksdC5jYWxsKHRoaXMsZSksdGhpcy5zdGF0dXM9cix0aGlzLnVybD1uLHRoaXMubmFtZT10aGlzLmNvbnN0cnVjdG9yLm5hbWUsdGhpcy5tZXNzYWdlPWV9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmFtZSsiOiAiK3RoaXMubWVzc2FnZSsiICgiK3RoaXMuc3RhdHVzKyIpOiAiK3RoaXMudXJsfSxlfShFcnJvciksZ3Q9aygpP2Z1bmN0aW9uKCl7cmV0dXJuIHNlbGYud29ya2VyJiZzZWxmLndvcmtlci5yZWZlcnJlcn06ZnVuY3Rpb24oKXtyZXR1cm4oImJsb2I6Ij09PXNlbGYubG9jYXRpb24ucHJvdG9jb2w/c2VsZi5wYXJlbnQ6c2VsZikubG9jYXRpb24uaHJlZn07ZnVuY3Rpb24gdnQodCxlKXt2YXIgcixuPW5ldyBzZWxmLkFib3J0Q29udHJvbGxlcixpPW5ldyBzZWxmLlJlcXVlc3QodC51cmwse21ldGhvZDp0Lm1ldGhvZHx8IkdFVCIsYm9keTp0LmJvZHksY3JlZGVudGlhbHM6dC5jcmVkZW50aWFscyxoZWFkZXJzOnQuaGVhZGVycyxyZWZlcnJlcjpndCgpLHNpZ25hbDpuLnNpZ25hbH0pLGE9ITEsbz0hMSxzPShyPWkudXJsKS5pbmRleE9mKCJza3U9Iik+MCYmWShyKTsianNvbiI9PT10LnR5cGUmJmkuaGVhZGVycy5zZXQoIkFjY2VwdCIsImFwcGxpY2F0aW9uL2pzb24iKTt2YXIgbD1mdW5jdGlvbihyLG4sYSl7aWYoIW8pe2lmKHImJiJTZWN1cml0eUVycm9yIiE9PXIubWVzc2FnZSYmXyhyKSxuJiZhKXJldHVybiBjKG4pO3ZhciBsPURhdGUubm93KCk7c2VsZi5mZXRjaChpKS50aGVuKChmdW5jdGlvbihyKXtpZihyLm9rKXt2YXIgbj1zP3IuY2xvbmUoKTpudWxsO3JldHVybiBjKHIsbixsKX1yZXR1cm4gZShuZXcgbXQoci5zdGF0dXNUZXh0LHIuc3RhdHVzLHQudXJsKSl9KSkuY2F0Y2goKGZ1bmN0aW9uKHQpezIwIT09dC5jb2RlJiZlKG5ldyBFcnJvcih0Lm1lc3NhZ2UpKX0pKX19LGM9ZnVuY3Rpb24ocixuLHMpeygiYXJyYXlCdWZmZXIiPT09dC50eXBlP3IuYXJyYXlCdWZmZXIoKToianNvbiI9PT10LnR5cGU/ci5qc29uKCk6ci50ZXh0KCkpLnRoZW4oKGZ1bmN0aW9uKHQpe298fChuJiZzJiZsdChpLG4scyksYT0hMCxlKG51bGwsdCxyLmhlYWRlcnMuZ2V0KCJDYWNoZS1Db250cm9sIiksci5oZWFkZXJzLmdldCgiRXhwaXJlcyIpKSl9KSkuY2F0Y2goKGZ1bmN0aW9uKHQpe298fGUobmV3IEVycm9yKHQubWVzc2FnZSkpfSkpfTtyZXR1cm4gcz91dChpLGwpOmwobnVsbCxudWxsKSx7Y2FuY2VsOmZ1bmN0aW9uKCl7bz0hMCxhfHxuLmFib3J0KCl9fX12YXIgeXQ9ZnVuY3Rpb24odCxlKXtpZihyPXQudXJsLCEoL15maWxlOi8udGVzdChyKXx8L15maWxlOi8udGVzdChndCgpKSYmIS9eXHcrOi8udGVzdChyKSkpe2lmKHNlbGYuZmV0Y2gmJnNlbGYuUmVxdWVzdCYmc2VsZi5BYm9ydENvbnRyb2xsZXImJnNlbGYuUmVxdWVzdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoInNpZ25hbCIpKXJldHVybiB2dCh0LGUpO2lmKGsoKSYmc2VsZi53b3JrZXImJnNlbGYud29ya2VyLmFjdG9yKXtyZXR1cm4gc2VsZi53b3JrZXIuYWN0b3Iuc2VuZCgiZ2V0UmVzb3VyY2UiLHQsZSx2b2lkIDAsITApfX12YXIgcjtyZXR1cm4gZnVuY3Rpb24odCxlKXt2YXIgcj1uZXcgc2VsZi5YTUxIdHRwUmVxdWVzdDtmb3IodmFyIG4gaW4gci5vcGVuKHQubWV0aG9kfHwiR0VUIix0LnVybCwhMCksImFycmF5QnVmZmVyIj09PXQudHlwZSYmKHIucmVzcG9uc2VUeXBlPSJhcnJheWJ1ZmZlciIpLHQuaGVhZGVycylyLnNldFJlcXVlc3RIZWFkZXIobix0LmhlYWRlcnNbbl0pO3JldHVybiJqc29uIj09PXQudHlwZSYmKHIucmVzcG9uc2VUeXBlPSJ0ZXh0IixyLnNldFJlcXVlc3RIZWFkZXIoIkFjY2VwdCIsImFwcGxpY2F0aW9uL2pzb24iKSksci53aXRoQ3JlZGVudGlhbHM9ImluY2x1ZGUiPT09dC5jcmVkZW50aWFscyxyLm9uZXJyb3I9ZnVuY3Rpb24oKXtlKG5ldyBFcnJvcihyLnN0YXR1c1RleHQpKX0sci5vbmxvYWQ9ZnVuY3Rpb24oKXtpZigoci5zdGF0dXM+PTIwMCYmci5zdGF0dXM8MzAwfHwwPT09ci5zdGF0dXMpJiZudWxsIT09ci5yZXNwb25zZSl7dmFyIG49ci5yZXNwb25zZTtpZigianNvbiI9PT10LnR5cGUpdHJ5e249SlNPTi5wYXJzZShyLnJlc3BvbnNlKX1jYXRjaCh0KXtyZXR1cm4gZSh0KX1lKG51bGwsbixyLmdldFJlc3BvbnNlSGVhZGVyKCJDYWNoZS1Db250cm9sIiksci5nZXRSZXNwb25zZUhlYWRlcigiRXhwaXJlcyIpKX1lbHNlIGUobmV3IG10KHIuc3RhdHVzVGV4dCxyLnN0YXR1cyx0LnVybCkpfSxyLnNlbmQodC5ib2R5KSx7Y2FuY2VsOmZ1bmN0aW9uKCl7cmV0dXJuIHIuYWJvcnQoKX19fSh0LGUpfSx4dD1mdW5jdGlvbih0LGUpe3JldHVybiB5dCh1KHQse3R5cGU6ImFycmF5QnVmZmVyIn0pLGUpfSxidD1mdW5jdGlvbih0LGUpe3JldHVybiB5dCh1KHQse21ldGhvZDoiUE9TVCJ9KSxlKX07dmFyIF90LHd0O190PVtdLHd0PTA7dmFyIFR0PWZ1bmN0aW9uKHQsZSl7aWYoQi5zdXBwb3J0ZWQmJih0LmhlYWRlcnN8fCh0LmhlYWRlcnM9e30pLHQuaGVhZGVycy5hY2NlcHQ9ImltYWdlL3dlYnAsKi8qIiksd3Q+PUYuTUFYX1BBUkFMTEVMX0lNQUdFX1JFUVVFU1RTKXt2YXIgcj17cmVxdWVzdFBhcmFtZXRlcnM6dCxjYWxsYmFjazplLGNhbmNlbGxlZDohMSxjYW5jZWw6ZnVuY3Rpb24oKXt0aGlzLmNhbmNlbGxlZD0hMH19O3JldHVybiBfdC5wdXNoKHIpLHJ9d3QrKzt2YXIgbj0hMSxpPWZ1bmN0aW9uKCl7aWYoIW4pZm9yKG49ITAsd3QtLTtfdC5sZW5ndGgmJnd0PEYuTUFYX1BBUkFMTEVMX0lNQUdFX1JFUVVFU1RTOyl7dmFyIHQ9X3Quc2hpZnQoKSxlPXQucmVxdWVzdFBhcmFtZXRlcnMscj10LmNhbGxiYWNrO3QuY2FuY2VsbGVkfHwodC5jYW5jZWw9VHQoZSxyKS5jYW5jZWwpfX0sYT14dCh0LChmdW5jdGlvbih0LHIsbixhKXtpKCksdD9lKHQpOnImJihwdCgpP2Z1bmN0aW9uKHQsZSl7dmFyIHI9bmV3IHNlbGYuQmxvYihbbmV3IFVpbnQ4QXJyYXkodCldLHt0eXBlOiJpbWFnZS9wbmcifSk7c2VsZi5jcmVhdGVJbWFnZUJpdG1hcChyKS50aGVuKChmdW5jdGlvbih0KXtlKG51bGwsdCl9KSkuY2F0Y2goKGZ1bmN0aW9uKHQpe2UobmV3IEVycm9yKCJDb3VsZCBub3QgbG9hZCBpbWFnZSBiZWNhdXNlIG9mICIrdC5tZXNzYWdlKyIuIFBsZWFzZSBtYWtlIHN1cmUgdG8gdXNlIGEgc3VwcG9ydGVkIGltYWdlIHR5cGUgc3VjaCBhcyBQTkcgb3IgSlBFRy4gTm90ZSB0aGF0IFNWR3MgYXJlIG5vdCBzdXBwb3J0ZWQuIikpfSkpfShyLGUpOmZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPW5ldyBzZWxmLkltYWdlLGE9c2VsZi5VUkw7aS5vbmxvYWQ9ZnVuY3Rpb24oKXtlKG51bGwsaSksYS5yZXZva2VPYmplY3RVUkwoaS5zcmMpfSxpLm9uZXJyb3I9ZnVuY3Rpb24oKXtyZXR1cm4gZShuZXcgRXJyb3IoIkNvdWxkIG5vdCBsb2FkIGltYWdlLiBQbGVhc2UgbWFrZSBzdXJlIHRvIHVzZSBhIHN1cHBvcnRlZCBpbWFnZSB0eXBlIHN1Y2ggYXMgUE5HIG9yIEpQRUcuIE5vdGUgdGhhdCBTVkdzIGFyZSBub3Qgc3VwcG9ydGVkLiIpKX07dmFyIG89bmV3IHNlbGYuQmxvYihbbmV3IFVpbnQ4QXJyYXkodCldLHt0eXBlOiJpbWFnZS9wbmcifSk7aS5jYWNoZUNvbnRyb2w9cixpLmV4cGlyZXM9bixpLnNyYz10LmJ5dGVMZW5ndGg/YS5jcmVhdGVPYmplY3RVUkwobyk6ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQUVBQUFBQkNBWUFBQUFmRmNTSkFBQUFDMGxFUVZRWVYyTmdBQUlBQUFVQUFhclZ5RkVBQUFBQVNVVk9SSzVDWUlJPSJ9KHIsZSxuLGEpKX0pKTtyZXR1cm57Y2FuY2VsOmZ1bmN0aW9uKCl7YS5jYW5jZWwoKSxpKCl9fX07ZnVuY3Rpb24ga3QodCxlLHIpe3JbdF0mJi0xIT09clt0XS5pbmRleE9mKGUpfHwoclt0XT1yW3RdfHxbXSxyW3RdLnB1c2goZSkpfWZ1bmN0aW9uIEF0KHQsZSxyKXtpZihyJiZyW3RdKXt2YXIgbj1yW3RdLmluZGV4T2YoZSk7LTEhPT1uJiZyW3RdLnNwbGljZShuLDEpfX12YXIgTXQ9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT17fSksdSh0aGlzLGUpLHRoaXMudHlwZT10fSxTdD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUscil7dm9pZCAwPT09ciYmKHI9e30pLHQuY2FsbCh0aGlzLCJlcnJvciIsdSh7ZXJyb3I6ZX0scikpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlfShNdCksRXQ9ZnVuY3Rpb24oKXt9O0V0LnByb3RvdHlwZS5vbj1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9saXN0ZW5lcnM9dGhpcy5fbGlzdGVuZXJzfHx7fSxrdCh0LGUsdGhpcy5fbGlzdGVuZXJzKSx0aGlzfSxFdC5wcm90b3R5cGUub2ZmPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIEF0KHQsZSx0aGlzLl9saXN0ZW5lcnMpLEF0KHQsZSx0aGlzLl9vbmVUaW1lTGlzdGVuZXJzKSx0aGlzfSxFdC5wcm90b3R5cGUub25jZT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9vbmVUaW1lTGlzdGVuZXJzPXRoaXMuX29uZVRpbWVMaXN0ZW5lcnN8fHt9LGt0KHQsZSx0aGlzLl9vbmVUaW1lTGlzdGVuZXJzKSx0aGlzfSxFdC5wcm90b3R5cGUuZmlyZT1mdW5jdGlvbih0LGUpeyJzdHJpbmciPT10eXBlb2YgdCYmKHQ9bmV3IE10KHQsZXx8e30pKTt2YXIgcj10LnR5cGU7aWYodGhpcy5saXN0ZW5zKHIpKXt0LnRhcmdldD10aGlzO2Zvcih2YXIgbj0wLGk9dGhpcy5fbGlzdGVuZXJzJiZ0aGlzLl9saXN0ZW5lcnNbcl0/dGhpcy5fbGlzdGVuZXJzW3JdLnNsaWNlKCk6W107bjxpLmxlbmd0aDtuKz0xKXtpW25dLmNhbGwodGhpcyx0KX1mb3IodmFyIGE9MCxvPXRoaXMuX29uZVRpbWVMaXN0ZW5lcnMmJnRoaXMuX29uZVRpbWVMaXN0ZW5lcnNbcl0/dGhpcy5fb25lVGltZUxpc3RlbmVyc1tyXS5zbGljZSgpOltdO2E8by5sZW5ndGg7YSs9MSl7dmFyIHM9b1thXTtBdChyLHMsdGhpcy5fb25lVGltZUxpc3RlbmVycykscy5jYWxsKHRoaXMsdCl9dmFyIGw9dGhpcy5fZXZlbnRlZFBhcmVudDtsJiYodSh0LCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLl9ldmVudGVkUGFyZW50RGF0YT90aGlzLl9ldmVudGVkUGFyZW50RGF0YSgpOnRoaXMuX2V2ZW50ZWRQYXJlbnREYXRhKSxsLmZpcmUodCkpfWVsc2UgdCBpbnN0YW5jZW9mIFN0JiZjb25zb2xlLmVycm9yKHQuZXJyb3IpO3JldHVybiB0aGlzfSxFdC5wcm90b3R5cGUubGlzdGVucz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fbGlzdGVuZXJzJiZ0aGlzLl9saXN0ZW5lcnNbdF0mJnRoaXMuX2xpc3RlbmVyc1t0XS5sZW5ndGg+MHx8dGhpcy5fb25lVGltZUxpc3RlbmVycyYmdGhpcy5fb25lVGltZUxpc3RlbmVyc1t0XSYmdGhpcy5fb25lVGltZUxpc3RlbmVyc1t0XS5sZW5ndGg+MHx8dGhpcy5fZXZlbnRlZFBhcmVudCYmdGhpcy5fZXZlbnRlZFBhcmVudC5saXN0ZW5zKHQpfSxFdC5wcm90b3R5cGUuc2V0RXZlbnRlZFBhcmVudD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9ldmVudGVkUGFyZW50PXQsdGhpcy5fZXZlbnRlZFBhcmVudERhdGE9ZSx0aGlzfTt2YXIgTHQ9eyR2ZXJzaW9uOjgsJHJvb3Q6e3ZlcnNpb246e3JlcXVpcmVkOiEwLHR5cGU6ImVudW0iLHZhbHVlczpbOF19LG5hbWU6e3R5cGU6InN0cmluZyJ9LG1ldGFkYXRhOnt0eXBlOiIqIn0sY2VudGVyOnt0eXBlOiJhcnJheSIsdmFsdWU6Im51bWJlciJ9LHpvb206e3R5cGU6Im51bWJlciJ9LGJlYXJpbmc6e3R5cGU6Im51bWJlciIsZGVmYXVsdDowLHBlcmlvZDozNjAsdW5pdHM6ImRlZ3JlZXMifSxwaXRjaDp7dHlwZToibnVtYmVyIixkZWZhdWx0OjAsdW5pdHM6ImRlZ3JlZXMifSxsaWdodDp7dHlwZToibGlnaHQifSxzb3VyY2VzOntyZXF1aXJlZDohMCx0eXBlOiJzb3VyY2VzIn0sc3ByaXRlOnt0eXBlOiJzdHJpbmcifSxnbHlwaHM6e3R5cGU6InN0cmluZyJ9LHRyYW5zaXRpb246e3R5cGU6InRyYW5zaXRpb24ifSxsYXllcnM6e3JlcXVpcmVkOiEwLHR5cGU6ImFycmF5Iix2YWx1ZToibGF5ZXIifX0sc291cmNlczp7IioiOnt0eXBlOiJzb3VyY2UifX0sc291cmNlOlsic291cmNlX3ZlY3RvciIsInNvdXJjZV9yYXN0ZXIiLCJzb3VyY2VfcmFzdGVyX2RlbSIsInNvdXJjZV9nZW9qc29uIiwic291cmNlX3ZpZGVvIiwic291cmNlX2ltYWdlIl0sc291cmNlX3ZlY3Rvcjp7dHlwZTp7cmVxdWlyZWQ6ITAsdHlwZToiZW51bSIsdmFsdWVzOnt2ZWN0b3I6e319fSx1cmw6e3R5cGU6InN0cmluZyJ9LHRpbGVzOnt0eXBlOiJhcnJheSIsdmFsdWU6InN0cmluZyJ9LGJvdW5kczp7dHlwZToiYXJyYXkiLHZhbHVlOiJudW1iZXIiLGxlbmd0aDo0LGRlZmF1bHQ6Wy0xODAsLTg1LjA1MTEyOSwxODAsODUuMDUxMTI5XX0sc2NoZW1lOnt0eXBlOiJlbnVtIix2YWx1ZXM6e3h5ejp7fSx0bXM6e319LGRlZmF1bHQ6Inh5eiJ9LG1pbnpvb206e3R5cGU6Im51bWJlciIsZGVmYXVsdDowfSxtYXh6b29tOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MjJ9LGF0dHJpYnV0aW9uOnt0eXBlOiJzdHJpbmcifSxwcm9tb3RlSWQ6e3R5cGU6InByb21vdGVJZCJ9LCIqIjp7dHlwZToiKiJ9fSxzb3VyY2VfcmFzdGVyOnt0eXBlOntyZXF1aXJlZDohMCx0eXBlOiJlbnVtIix2YWx1ZXM6e3Jhc3Rlcjp7fX19LHVybDp7dHlwZToic3RyaW5nIn0sdGlsZXM6e3R5cGU6ImFycmF5Iix2YWx1ZToic3RyaW5nIn0sYm91bmRzOnt0eXBlOiJhcnJheSIsdmFsdWU6Im51bWJlciIsbGVuZ3RoOjQsZGVmYXVsdDpbLTE4MCwtODUuMDUxMTI5LDE4MCw4NS4wNTExMjldfSxtaW56b29tOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MH0sbWF4em9vbTp7dHlwZToibnVtYmVyIixkZWZhdWx0OjIyfSx0aWxlU2l6ZTp7dHlwZToibnVtYmVyIixkZWZhdWx0OjUxMix1bml0czoicGl4ZWxzIn0sc2NoZW1lOnt0eXBlOiJlbnVtIix2YWx1ZXM6e3h5ejp7fSx0bXM6e319LGRlZmF1bHQ6Inh5eiJ9LGF0dHJpYnV0aW9uOnt0eXBlOiJzdHJpbmcifSwiKiI6e3R5cGU6IioifX0sc291cmNlX3Jhc3Rlcl9kZW06e3R5cGU6e3JlcXVpcmVkOiEwLHR5cGU6ImVudW0iLHZhbHVlczp7InJhc3Rlci1kZW0iOnt9fX0sdXJsOnt0eXBlOiJzdHJpbmcifSx0aWxlczp7dHlwZToiYXJyYXkiLHZhbHVlOiJzdHJpbmcifSxib3VuZHM6e3R5cGU6ImFycmF5Iix2YWx1ZToibnVtYmVyIixsZW5ndGg6NCxkZWZhdWx0OlstMTgwLC04NS4wNTExMjksMTgwLDg1LjA1MTEyOV19LG1pbnpvb206e3R5cGU6Im51bWJlciIsZGVmYXVsdDowfSxtYXh6b29tOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MjJ9LHRpbGVTaXplOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6NTEyLHVuaXRzOiJwaXhlbHMifSxhdHRyaWJ1dGlvbjp7dHlwZToic3RyaW5nIn0sZW5jb2Rpbmc6e3R5cGU6ImVudW0iLHZhbHVlczp7dGVycmFyaXVtOnt9LG1hcGJveDp7fX0sZGVmYXVsdDoibWFwYm94In0sIioiOnt0eXBlOiIqIn19LHNvdXJjZV9nZW9qc29uOnt0eXBlOntyZXF1aXJlZDohMCx0eXBlOiJlbnVtIix2YWx1ZXM6e2dlb2pzb246e319fSxkYXRhOnt0eXBlOiIqIn0sbWF4em9vbTp7dHlwZToibnVtYmVyIixkZWZhdWx0OjE4fSxhdHRyaWJ1dGlvbjp7dHlwZToic3RyaW5nIn0sYnVmZmVyOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MTI4LG1heGltdW06NTEyLG1pbmltdW06MH0sdG9sZXJhbmNlOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6LjM3NX0sY2x1c3Rlcjp7dHlwZToiYm9vbGVhbiIsZGVmYXVsdDohMX0sY2x1c3RlclJhZGl1czp7dHlwZToibnVtYmVyIixkZWZhdWx0OjUwLG1pbmltdW06MH0sY2x1c3Rlck1heFpvb206e3R5cGU6Im51bWJlciJ9LGNsdXN0ZXJQcm9wZXJ0aWVzOnt0eXBlOiIqIn0sbGluZU1ldHJpY3M6e3R5cGU6ImJvb2xlYW4iLGRlZmF1bHQ6ITF9LGdlbmVyYXRlSWQ6e3R5cGU6ImJvb2xlYW4iLGRlZmF1bHQ6ITF9LHByb21vdGVJZDp7dHlwZToicHJvbW90ZUlkIn19LHNvdXJjZV92aWRlbzp7dHlwZTp7cmVxdWlyZWQ6ITAsdHlwZToiZW51bSIsdmFsdWVzOnt2aWRlbzp7fX19LHVybHM6e3JlcXVpcmVkOiEwLHR5cGU6ImFycmF5Iix2YWx1ZToic3RyaW5nIn0sY29vcmRpbmF0ZXM6e3JlcXVpcmVkOiEwLHR5cGU6ImFycmF5IixsZW5ndGg6NCx2YWx1ZTp7dHlwZToiYXJyYXkiLGxlbmd0aDoyLHZhbHVlOiJudW1iZXIifX19LHNvdXJjZV9pbWFnZTp7dHlwZTp7cmVxdWlyZWQ6ITAsdHlwZToiZW51bSIsdmFsdWVzOntpbWFnZTp7fX19LHVybDp7cmVxdWlyZWQ6ITAsdHlwZToic3RyaW5nIn0sY29vcmRpbmF0ZXM6e3JlcXVpcmVkOiEwLHR5cGU6ImFycmF5IixsZW5ndGg6NCx2YWx1ZTp7dHlwZToiYXJyYXkiLGxlbmd0aDoyLHZhbHVlOiJudW1iZXIifX19LGxheWVyOntpZDp7dHlwZToic3RyaW5nIixyZXF1aXJlZDohMH0sdHlwZTp7dHlwZToiZW51bSIsdmFsdWVzOntmaWxsOnt9LGxpbmU6e30sc3ltYm9sOnt9LGNpcmNsZTp7fSxoZWF0bWFwOnt9LCJmaWxsLWV4dHJ1c2lvbiI6e30scmFzdGVyOnt9LGhpbGxzaGFkZTp7fSxiYWNrZ3JvdW5kOnt9fSxyZXF1aXJlZDohMH0sbWV0YWRhdGE6e3R5cGU6IioifSxzb3VyY2U6e3R5cGU6InN0cmluZyJ9LCJzb3VyY2UtbGF5ZXIiOnt0eXBlOiJzdHJpbmcifSxtaW56b29tOnt0eXBlOiJudW1iZXIiLG1pbmltdW06MCxtYXhpbXVtOjI0fSxtYXh6b29tOnt0eXBlOiJudW1iZXIiLG1pbmltdW06MCxtYXhpbXVtOjI0fSxmaWx0ZXI6e3R5cGU6ImZpbHRlciJ9LGxheW91dDp7dHlwZToibGF5b3V0In0scGFpbnQ6e3R5cGU6InBhaW50In19LGxheW91dDpbImxheW91dF9maWxsIiwibGF5b3V0X2xpbmUiLCJsYXlvdXRfY2lyY2xlIiwibGF5b3V0X2hlYXRtYXAiLCJsYXlvdXRfZmlsbC1leHRydXNpb24iLCJsYXlvdXRfc3ltYm9sIiwibGF5b3V0X3Jhc3RlciIsImxheW91dF9oaWxsc2hhZGUiLCJsYXlvdXRfYmFja2dyb3VuZCJdLGxheW91dF9iYWNrZ3JvdW5kOnt2aXNpYmlsaXR5Ont0eXBlOiJlbnVtIix2YWx1ZXM6e3Zpc2libGU6e30sbm9uZTp7fX0sZGVmYXVsdDoidmlzaWJsZSIsInByb3BlcnR5LXR5cGUiOiJjb25zdGFudCJ9fSxsYXlvdXRfZmlsbDp7ImZpbGwtc29ydC1rZXkiOnt0eXBlOiJudW1iZXIiLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LHZpc2liaWxpdHk6e3R5cGU6ImVudW0iLHZhbHVlczp7dmlzaWJsZTp7fSxub25lOnt9fSxkZWZhdWx0OiJ2aXNpYmxlIiwicHJvcGVydHktdHlwZSI6ImNvbnN0YW50In19LGxheW91dF9jaXJjbGU6eyJjaXJjbGUtc29ydC1rZXkiOnt0eXBlOiJudW1iZXIiLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LHZpc2liaWxpdHk6e3R5cGU6ImVudW0iLHZhbHVlczp7dmlzaWJsZTp7fSxub25lOnt9fSxkZWZhdWx0OiJ2aXNpYmxlIiwicHJvcGVydHktdHlwZSI6ImNvbnN0YW50In19LGxheW91dF9oZWF0bWFwOnt2aXNpYmlsaXR5Ont0eXBlOiJlbnVtIix2YWx1ZXM6e3Zpc2libGU6e30sbm9uZTp7fX0sZGVmYXVsdDoidmlzaWJsZSIsInByb3BlcnR5LXR5cGUiOiJjb25zdGFudCJ9fSwibGF5b3V0X2ZpbGwtZXh0cnVzaW9uIjp7dmlzaWJpbGl0eTp7dHlwZToiZW51bSIsdmFsdWVzOnt2aXNpYmxlOnt9LG5vbmU6e319LGRlZmF1bHQ6InZpc2libGUiLCJwcm9wZXJ0eS10eXBlIjoiY29uc3RhbnQifX0sbGF5b3V0X2xpbmU6eyJsaW5lLWNhcCI6e3R5cGU6ImVudW0iLHZhbHVlczp7YnV0dDp7fSxyb3VuZDp7fSxzcXVhcmU6e319LGRlZmF1bHQ6ImJ1dHQiLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwibGluZS1qb2luIjp7dHlwZToiZW51bSIsdmFsdWVzOntiZXZlbDp7fSxyb3VuZDp7fSxtaXRlcjp7fX0sZGVmYXVsdDoibWl0ZXIiLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJsaW5lLW1pdGVyLWxpbWl0Ijp7dHlwZToibnVtYmVyIixkZWZhdWx0OjIscmVxdWlyZXM6W3sibGluZS1qb2luIjoibWl0ZXIifV0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJsaW5lLXJvdW5kLWxpbWl0Ijp7dHlwZToibnVtYmVyIixkZWZhdWx0OjEuMDUscmVxdWlyZXM6W3sibGluZS1qb2luIjoicm91bmQifV0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJsaW5lLXNvcnQta2V5Ijp7dHlwZToibnVtYmVyIixleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSx2aXNpYmlsaXR5Ont0eXBlOiJlbnVtIix2YWx1ZXM6e3Zpc2libGU6e30sbm9uZTp7fX0sZGVmYXVsdDoidmlzaWJsZSIsInByb3BlcnR5LXR5cGUiOiJjb25zdGFudCJ9fSxsYXlvdXRfc3ltYm9sOnsic3ltYm9sLXBsYWNlbWVudCI6e3R5cGU6ImVudW0iLHZhbHVlczp7cG9pbnQ6e30sbGluZTp7fSwibGluZS1jZW50ZXIiOnt9fSxkZWZhdWx0OiJwb2ludCIsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJzeW1ib2wtc3BhY2luZyI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDoyNTAsbWluaW11bToxLHVuaXRzOiJwaXhlbHMiLHJlcXVpcmVzOlt7InN5bWJvbC1wbGFjZW1lbnQiOiJsaW5lIn1dLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwic3ltYm9sLWF2b2lkLWVkZ2VzIjp7dHlwZToiYm9vbGVhbiIsZGVmYXVsdDohMSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInN5bWJvbC1zb3J0LWtleSI6e3R5cGU6Im51bWJlciIsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sInN5bWJvbC16LW9yZGVyIjp7dHlwZToiZW51bSIsdmFsdWVzOnthdXRvOnt9LCJ2aWV3cG9ydC15Ijp7fSxzb3VyY2U6e319LGRlZmF1bHQ6ImF1dG8iLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwiaWNvbi1hbGxvdy1vdmVybGFwIjp7dHlwZToiYm9vbGVhbiIsZGVmYXVsdDohMSxyZXF1aXJlczpbImljb24taW1hZ2UiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImljb24taWdub3JlLXBsYWNlbWVudCI6e3R5cGU6ImJvb2xlYW4iLGRlZmF1bHQ6ITEscmVxdWlyZXM6WyJpY29uLWltYWdlIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJpY29uLW9wdGlvbmFsIjp7dHlwZToiYm9vbGVhbiIsZGVmYXVsdDohMSxyZXF1aXJlczpbImljb24taW1hZ2UiLCJ0ZXh0LWZpZWxkIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJpY29uLXJvdGF0aW9uLWFsaWdubWVudCI6e3R5cGU6ImVudW0iLHZhbHVlczp7bWFwOnt9LHZpZXdwb3J0Ont9LGF1dG86e319LGRlZmF1bHQ6ImF1dG8iLHJlcXVpcmVzOlsiaWNvbi1pbWFnZSJdLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwiaWNvbi1zaXplIjp7dHlwZToibnVtYmVyIixkZWZhdWx0OjEsbWluaW11bTowLHVuaXRzOiJmYWN0b3Igb2YgdGhlIG9yaWdpbmFsIGljb24gc2l6ZSIscmVxdWlyZXM6WyJpY29uLWltYWdlIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sImljb24tdGV4dC1maXQiOnt0eXBlOiJlbnVtIix2YWx1ZXM6e25vbmU6e30sd2lkdGg6e30saGVpZ2h0Ont9LGJvdGg6e319LGRlZmF1bHQ6Im5vbmUiLHJlcXVpcmVzOlsiaWNvbi1pbWFnZSIsInRleHQtZmllbGQiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImljb24tdGV4dC1maXQtcGFkZGluZyI6e3R5cGU6ImFycmF5Iix2YWx1ZToibnVtYmVyIixsZW5ndGg6NCxkZWZhdWx0OlswLDAsMCwwXSx1bml0czoicGl4ZWxzIixyZXF1aXJlczpbImljb24taW1hZ2UiLCJ0ZXh0LWZpZWxkIix7Imljb24tdGV4dC1maXQiOlsiYm90aCIsIndpZHRoIiwiaGVpZ2h0Il19XSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImljb24taW1hZ2UiOnt0eXBlOiJyZXNvbHZlZEltYWdlIix0b2tlbnM6ITAsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sImljb24tcm90YXRlIjp7dHlwZToibnVtYmVyIixkZWZhdWx0OjAscGVyaW9kOjM2MCx1bml0czoiZGVncmVlcyIscmVxdWlyZXM6WyJpY29uLWltYWdlIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sImljb24tcGFkZGluZyI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDoyLG1pbmltdW06MCx1bml0czoicGl4ZWxzIixyZXF1aXJlczpbImljb24taW1hZ2UiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImljb24ta2VlcC11cHJpZ2h0Ijp7dHlwZToiYm9vbGVhbiIsZGVmYXVsdDohMSxyZXF1aXJlczpbImljb24taW1hZ2UiLHsiaWNvbi1yb3RhdGlvbi1hbGlnbm1lbnQiOiJtYXAifSx7InN5bWJvbC1wbGFjZW1lbnQiOlsibGluZSIsImxpbmUtY2VudGVyIl19XSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImljb24tb2Zmc2V0Ijp7dHlwZToiYXJyYXkiLHZhbHVlOiJudW1iZXIiLGxlbmd0aDoyLGRlZmF1bHQ6WzAsMF0scmVxdWlyZXM6WyJpY29uLWltYWdlIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sImljb24tYW5jaG9yIjp7dHlwZToiZW51bSIsdmFsdWVzOntjZW50ZXI6e30sbGVmdDp7fSxyaWdodDp7fSx0b3A6e30sYm90dG9tOnt9LCJ0b3AtbGVmdCI6e30sInRvcC1yaWdodCI6e30sImJvdHRvbS1sZWZ0Ijp7fSwiYm90dG9tLXJpZ2h0Ijp7fX0sZGVmYXVsdDoiY2VudGVyIixyZXF1aXJlczpbImljb24taW1hZ2UiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwiaWNvbi1waXRjaC1hbGlnbm1lbnQiOnt0eXBlOiJlbnVtIix2YWx1ZXM6e21hcDp7fSx2aWV3cG9ydDp7fSxhdXRvOnt9fSxkZWZhdWx0OiJhdXRvIixyZXF1aXJlczpbImljb24taW1hZ2UiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInRleHQtcGl0Y2gtYWxpZ25tZW50Ijp7dHlwZToiZW51bSIsdmFsdWVzOnttYXA6e30sdmlld3BvcnQ6e30sYXV0bzp7fX0sZGVmYXVsdDoiYXV0byIscmVxdWlyZXM6WyJ0ZXh0LWZpZWxkIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJ0ZXh0LXJvdGF0aW9uLWFsaWdubWVudCI6e3R5cGU6ImVudW0iLHZhbHVlczp7bWFwOnt9LHZpZXdwb3J0Ont9LGF1dG86e319LGRlZmF1bHQ6ImF1dG8iLHJlcXVpcmVzOlsidGV4dC1maWVsZCJdLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwidGV4dC1maWVsZCI6e3R5cGU6ImZvcm1hdHRlZCIsZGVmYXVsdDoiIix0b2tlbnM6ITAsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sInRleHQtZm9udCI6e3R5cGU6ImFycmF5Iix2YWx1ZToic3RyaW5nIixkZWZhdWx0OlsiT3BlbiBTYW5zIFJlZ3VsYXIiLCJBcmlhbCBVbmljb2RlIE1TIFJlZ3VsYXIiXSxyZXF1aXJlczpbInRleHQtZmllbGQiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwidGV4dC1zaXplIjp7dHlwZToibnVtYmVyIixkZWZhdWx0OjE2LG1pbmltdW06MCx1bml0czoicGl4ZWxzIixyZXF1aXJlczpbInRleHQtZmllbGQiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwidGV4dC1tYXgtd2lkdGgiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MTAsbWluaW11bTowLHVuaXRzOiJlbXMiLHJlcXVpcmVzOlsidGV4dC1maWVsZCJdLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJ0ZXh0LWxpbmUtaGVpZ2h0Ijp7dHlwZToibnVtYmVyIixkZWZhdWx0OjEuMix1bml0czoiZW1zIixyZXF1aXJlczpbInRleHQtZmllbGQiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInRleHQtbGV0dGVyLXNwYWNpbmciOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MCx1bml0czoiZW1zIixyZXF1aXJlczpbInRleHQtZmllbGQiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwidGV4dC1qdXN0aWZ5Ijp7dHlwZToiZW51bSIsdmFsdWVzOnthdXRvOnt9LGxlZnQ6e30sY2VudGVyOnt9LHJpZ2h0Ont9fSxkZWZhdWx0OiJjZW50ZXIiLHJlcXVpcmVzOlsidGV4dC1maWVsZCJdLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJ0ZXh0LXJhZGlhbC1vZmZzZXQiOnt0eXBlOiJudW1iZXIiLHVuaXRzOiJlbXMiLGRlZmF1bHQ6MCxyZXF1aXJlczpbInRleHQtZmllbGQiXSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIixleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIl19fSwidGV4dC12YXJpYWJsZS1hbmNob3IiOnt0eXBlOiJhcnJheSIsdmFsdWU6ImVudW0iLHZhbHVlczp7Y2VudGVyOnt9LGxlZnQ6e30scmlnaHQ6e30sdG9wOnt9LGJvdHRvbTp7fSwidG9wLWxlZnQiOnt9LCJ0b3AtcmlnaHQiOnt9LCJib3R0b20tbGVmdCI6e30sImJvdHRvbS1yaWdodCI6e319LHJlcXVpcmVzOlsidGV4dC1maWVsZCIseyJzeW1ib2wtcGxhY2VtZW50IjpbInBvaW50Il19XSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInRleHQtYW5jaG9yIjp7dHlwZToiZW51bSIsdmFsdWVzOntjZW50ZXI6e30sbGVmdDp7fSxyaWdodDp7fSx0b3A6e30sYm90dG9tOnt9LCJ0b3AtbGVmdCI6e30sInRvcC1yaWdodCI6e30sImJvdHRvbS1sZWZ0Ijp7fSwiYm90dG9tLXJpZ2h0Ijp7fX0sZGVmYXVsdDoiY2VudGVyIixyZXF1aXJlczpbInRleHQtZmllbGQiLHsiISI6InRleHQtdmFyaWFibGUtYW5jaG9yIn1dLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJ0ZXh0LW1heC1hbmdsZSI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDo0NSx1bml0czoiZGVncmVlcyIscmVxdWlyZXM6WyJ0ZXh0LWZpZWxkIix7InN5bWJvbC1wbGFjZW1lbnQiOlsibGluZSIsImxpbmUtY2VudGVyIl19XSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInRleHQtd3JpdGluZy1tb2RlIjp7dHlwZToiYXJyYXkiLHZhbHVlOiJlbnVtIix2YWx1ZXM6e2hvcml6b250YWw6e30sdmVydGljYWw6e319LHJlcXVpcmVzOlsidGV4dC1maWVsZCIseyJzeW1ib2wtcGxhY2VtZW50IjpbInBvaW50Il19XSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInRleHQtcm90YXRlIjp7dHlwZToibnVtYmVyIixkZWZhdWx0OjAscGVyaW9kOjM2MCx1bml0czoiZGVncmVlcyIscmVxdWlyZXM6WyJ0ZXh0LWZpZWxkIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sInRleHQtcGFkZGluZyI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDoyLG1pbmltdW06MCx1bml0czoicGl4ZWxzIixyZXF1aXJlczpbInRleHQtZmllbGQiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInRleHQta2VlcC11cHJpZ2h0Ijp7dHlwZToiYm9vbGVhbiIsZGVmYXVsdDohMCxyZXF1aXJlczpbInRleHQtZmllbGQiLHsidGV4dC1yb3RhdGlvbi1hbGlnbm1lbnQiOiJtYXAifSx7InN5bWJvbC1wbGFjZW1lbnQiOlsibGluZSIsImxpbmUtY2VudGVyIl19XSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInRleHQtdHJhbnNmb3JtIjp7dHlwZToiZW51bSIsdmFsdWVzOntub25lOnt9LHVwcGVyY2FzZTp7fSxsb3dlcmNhc2U6e319LGRlZmF1bHQ6Im5vbmUiLHJlcXVpcmVzOlsidGV4dC1maWVsZCJdLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJ0ZXh0LW9mZnNldCI6e3R5cGU6ImFycmF5Iix2YWx1ZToibnVtYmVyIix1bml0czoiZW1zIixsZW5ndGg6MixkZWZhdWx0OlswLDBdLHJlcXVpcmVzOlsidGV4dC1maWVsZCIseyIhIjoidGV4dC1yYWRpYWwtb2Zmc2V0In1dLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJ0ZXh0LWFsbG93LW92ZXJsYXAiOnt0eXBlOiJib29sZWFuIixkZWZhdWx0OiExLHJlcXVpcmVzOlsidGV4dC1maWVsZCJdLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwidGV4dC1pZ25vcmUtcGxhY2VtZW50Ijp7dHlwZToiYm9vbGVhbiIsZGVmYXVsdDohMSxyZXF1aXJlczpbInRleHQtZmllbGQiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInRleHQtb3B0aW9uYWwiOnt0eXBlOiJib29sZWFuIixkZWZhdWx0OiExLHJlcXVpcmVzOlsidGV4dC1maWVsZCIsImljb24taW1hZ2UiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sdmlzaWJpbGl0eTp7dHlwZToiZW51bSIsdmFsdWVzOnt2aXNpYmxlOnt9LG5vbmU6e319LGRlZmF1bHQ6InZpc2libGUiLCJwcm9wZXJ0eS10eXBlIjoiY29uc3RhbnQifX0sbGF5b3V0X3Jhc3Rlcjp7dmlzaWJpbGl0eTp7dHlwZToiZW51bSIsdmFsdWVzOnt2aXNpYmxlOnt9LG5vbmU6e319LGRlZmF1bHQ6InZpc2libGUiLCJwcm9wZXJ0eS10eXBlIjoiY29uc3RhbnQifX0sbGF5b3V0X2hpbGxzaGFkZTp7dmlzaWJpbGl0eTp7dHlwZToiZW51bSIsdmFsdWVzOnt2aXNpYmxlOnt9LG5vbmU6e319LGRlZmF1bHQ6InZpc2libGUiLCJwcm9wZXJ0eS10eXBlIjoiY29uc3RhbnQifX0sZmlsdGVyOnt0eXBlOiJhcnJheSIsdmFsdWU6IioifSxmaWx0ZXJfb3BlcmF0b3I6e3R5cGU6ImVudW0iLHZhbHVlczp7Ij09Ijp7fSwiIT0iOnt9LCI+Ijp7fSwiPj0iOnt9LCI8Ijp7fSwiPD0iOnt9LGluOnt9LCIhaW4iOnt9LGFsbDp7fSxhbnk6e30sbm9uZTp7fSxoYXM6e30sIiFoYXMiOnt9LHdpdGhpbjp7fX19LGdlb21ldHJ5X3R5cGU6e3R5cGU6ImVudW0iLHZhbHVlczp7UG9pbnQ6e30sTGluZVN0cmluZzp7fSxQb2x5Z29uOnt9fX0sZnVuY3Rpb246e2V4cHJlc3Npb246e3R5cGU6ImV4cHJlc3Npb24ifSxzdG9wczp7dHlwZToiYXJyYXkiLHZhbHVlOiJmdW5jdGlvbl9zdG9wIn0sYmFzZTp7dHlwZToibnVtYmVyIixkZWZhdWx0OjEsbWluaW11bTowfSxwcm9wZXJ0eTp7dHlwZToic3RyaW5nIixkZWZhdWx0OiIkem9vbSJ9LHR5cGU6e3R5cGU6ImVudW0iLHZhbHVlczp7aWRlbnRpdHk6e30sZXhwb25lbnRpYWw6e30saW50ZXJ2YWw6e30sY2F0ZWdvcmljYWw6e319LGRlZmF1bHQ6ImV4cG9uZW50aWFsIn0sY29sb3JTcGFjZTp7dHlwZToiZW51bSIsdmFsdWVzOntyZ2I6e30sbGFiOnt9LGhjbDp7fX0sZGVmYXVsdDoicmdiIn0sZGVmYXVsdDp7dHlwZToiKiIscmVxdWlyZWQ6ITF9fSxmdW5jdGlvbl9zdG9wOnt0eXBlOiJhcnJheSIsbWluaW11bTowLG1heGltdW06MjQsdmFsdWU6WyJudW1iZXIiLCJjb2xvciJdLGxlbmd0aDoyfSxleHByZXNzaW9uOnt0eXBlOiJhcnJheSIsdmFsdWU6IioiLG1pbmltdW06MX0sZXhwcmVzc2lvbl9uYW1lOnt0eXBlOiJlbnVtIix2YWx1ZXM6e2xldDp7Z3JvdXA6IlZhcmlhYmxlIGJpbmRpbmcifSx2YXI6e2dyb3VwOiJWYXJpYWJsZSBiaW5kaW5nIn0sbGl0ZXJhbDp7Z3JvdXA6IlR5cGVzIn0sYXJyYXk6e2dyb3VwOiJUeXBlcyJ9LGF0Ontncm91cDoiTG9va3VwIn0saW46e2dyb3VwOiJMb29rdXAifSwiaW5kZXgtb2YiOntncm91cDoiTG9va3VwIn0sc2xpY2U6e2dyb3VwOiJMb29rdXAifSxjYXNlOntncm91cDoiRGVjaXNpb24ifSxtYXRjaDp7Z3JvdXA6IkRlY2lzaW9uIn0sY29hbGVzY2U6e2dyb3VwOiJEZWNpc2lvbiJ9LHN0ZXA6e2dyb3VwOiJSYW1wcywgc2NhbGVzLCBjdXJ2ZXMifSxpbnRlcnBvbGF0ZTp7Z3JvdXA6IlJhbXBzLCBzY2FsZXMsIGN1cnZlcyJ9LCJpbnRlcnBvbGF0ZS1oY2wiOntncm91cDoiUmFtcHMsIHNjYWxlcywgY3VydmVzIn0sImludGVycG9sYXRlLWxhYiI6e2dyb3VwOiJSYW1wcywgc2NhbGVzLCBjdXJ2ZXMifSxsbjI6e2dyb3VwOiJNYXRoIn0scGk6e2dyb3VwOiJNYXRoIn0sZTp7Z3JvdXA6Ik1hdGgifSx0eXBlb2Y6e2dyb3VwOiJUeXBlcyJ9LHN0cmluZzp7Z3JvdXA6IlR5cGVzIn0sbnVtYmVyOntncm91cDoiVHlwZXMifSxib29sZWFuOntncm91cDoiVHlwZXMifSxvYmplY3Q6e2dyb3VwOiJUeXBlcyJ9LGNvbGxhdG9yOntncm91cDoiVHlwZXMifSxmb3JtYXQ6e2dyb3VwOiJUeXBlcyJ9LGltYWdlOntncm91cDoiVHlwZXMifSwibnVtYmVyLWZvcm1hdCI6e2dyb3VwOiJUeXBlcyJ9LCJ0by1zdHJpbmciOntncm91cDoiVHlwZXMifSwidG8tbnVtYmVyIjp7Z3JvdXA6IlR5cGVzIn0sInRvLWJvb2xlYW4iOntncm91cDoiVHlwZXMifSwidG8tcmdiYSI6e2dyb3VwOiJDb2xvciJ9LCJ0by1jb2xvciI6e2dyb3VwOiJUeXBlcyJ9LHJnYjp7Z3JvdXA6IkNvbG9yIn0scmdiYTp7Z3JvdXA6IkNvbG9yIn0sZ2V0Ontncm91cDoiTG9va3VwIn0saGFzOntncm91cDoiTG9va3VwIn0sbGVuZ3RoOntncm91cDoiTG9va3VwIn0scHJvcGVydGllczp7Z3JvdXA6IkZlYXR1cmUgZGF0YSJ9LCJmZWF0dXJlLXN0YXRlIjp7Z3JvdXA6IkZlYXR1cmUgZGF0YSJ9LCJnZW9tZXRyeS10eXBlIjp7Z3JvdXA6IkZlYXR1cmUgZGF0YSJ9LGlkOntncm91cDoiRmVhdHVyZSBkYXRhIn0sem9vbTp7Z3JvdXA6Ilpvb20ifSwiaGVhdG1hcC1kZW5zaXR5Ijp7Z3JvdXA6IkhlYXRtYXAifSwibGluZS1wcm9ncmVzcyI6e2dyb3VwOiJGZWF0dXJlIGRhdGEifSxhY2N1bXVsYXRlZDp7Z3JvdXA6IkZlYXR1cmUgZGF0YSJ9LCIrIjp7Z3JvdXA6Ik1hdGgifSwiKiI6e2dyb3VwOiJNYXRoIn0sIi0iOntncm91cDoiTWF0aCJ9LCIvIjp7Z3JvdXA6Ik1hdGgifSwiJSI6e2dyb3VwOiJNYXRoIn0sIl4iOntncm91cDoiTWF0aCJ9LHNxcnQ6e2dyb3VwOiJNYXRoIn0sbG9nMTA6e2dyb3VwOiJNYXRoIn0sbG46e2dyb3VwOiJNYXRoIn0sbG9nMjp7Z3JvdXA6Ik1hdGgifSxzaW46e2dyb3VwOiJNYXRoIn0sY29zOntncm91cDoiTWF0aCJ9LHRhbjp7Z3JvdXA6Ik1hdGgifSxhc2luOntncm91cDoiTWF0aCJ9LGFjb3M6e2dyb3VwOiJNYXRoIn0sYXRhbjp7Z3JvdXA6Ik1hdGgifSxtaW46e2dyb3VwOiJNYXRoIn0sbWF4Ontncm91cDoiTWF0aCJ9LHJvdW5kOntncm91cDoiTWF0aCJ9LGFiczp7Z3JvdXA6Ik1hdGgifSxjZWlsOntncm91cDoiTWF0aCJ9LGZsb29yOntncm91cDoiTWF0aCJ9LGRpc3RhbmNlOntncm91cDoiTWF0aCJ9LCI9PSI6e2dyb3VwOiJEZWNpc2lvbiJ9LCIhPSI6e2dyb3VwOiJEZWNpc2lvbiJ9LCI+Ijp7Z3JvdXA6IkRlY2lzaW9uIn0sIjwiOntncm91cDoiRGVjaXNpb24ifSwiPj0iOntncm91cDoiRGVjaXNpb24ifSwiPD0iOntncm91cDoiRGVjaXNpb24ifSxhbGw6e2dyb3VwOiJEZWNpc2lvbiJ9LGFueTp7Z3JvdXA6IkRlY2lzaW9uIn0sIiEiOntncm91cDoiRGVjaXNpb24ifSx3aXRoaW46e2dyb3VwOiJEZWNpc2lvbiJ9LCJpcy1zdXBwb3J0ZWQtc2NyaXB0Ijp7Z3JvdXA6IlN0cmluZyJ9LHVwY2FzZTp7Z3JvdXA6IlN0cmluZyJ9LGRvd25jYXNlOntncm91cDoiU3RyaW5nIn0sY29uY2F0Ontncm91cDoiU3RyaW5nIn0sInJlc29sdmVkLWxvY2FsZSI6e2dyb3VwOiJTdHJpbmcifX19LGxpZ2h0OnthbmNob3I6e3R5cGU6ImVudW0iLGRlZmF1bHQ6InZpZXdwb3J0Iix2YWx1ZXM6e21hcDp7fSx2aWV3cG9ydDp7fX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50Iix0cmFuc2l0aW9uOiExLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSJdfX0scG9zaXRpb246e3R5cGU6ImFycmF5IixkZWZhdWx0OlsxLjE1LDIxMCwzMF0sbGVuZ3RoOjMsdmFsdWU6Im51bWJlciIsInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50Iix0cmFuc2l0aW9uOiEwLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSJdfX0sY29sb3I6e3R5cGU6ImNvbG9yIiwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQiLGRlZmF1bHQ6IiNmZmZmZmYiLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSJdfSx0cmFuc2l0aW9uOiEwfSxpbnRlbnNpdHk6e3R5cGU6Im51bWJlciIsInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50IixkZWZhdWx0Oi41LG1pbmltdW06MCxtYXhpbXVtOjEsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIl19LHRyYW5zaXRpb246ITB9fSxwYWludDpbInBhaW50X2ZpbGwiLCJwYWludF9saW5lIiwicGFpbnRfY2lyY2xlIiwicGFpbnRfaGVhdG1hcCIsInBhaW50X2ZpbGwtZXh0cnVzaW9uIiwicGFpbnRfc3ltYm9sIiwicGFpbnRfcmFzdGVyIiwicGFpbnRfaGlsbHNoYWRlIiwicGFpbnRfYmFja2dyb3VuZCJdLHBhaW50X2ZpbGw6eyJmaWxsLWFudGlhbGlhcyI6e3R5cGU6ImJvb2xlYW4iLGRlZmF1bHQ6ITAsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJmaWxsLW9wYWNpdHkiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MSxtaW5pbXVtOjAsbWF4aW11bToxLHRyYW5zaXRpb246ITAsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSIsImZlYXR1cmUtc3RhdGUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJmaWxsLWNvbG9yIjp7dHlwZToiY29sb3IiLGRlZmF1bHQ6IiMwMDAwMDAiLHRyYW5zaXRpb246ITAscmVxdWlyZXM6W3siISI6ImZpbGwtcGF0dGVybiJ9XSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIiwiZmVhdHVyZS1zdGF0ZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sImZpbGwtb3V0bGluZS1jb2xvciI6e3R5cGU6ImNvbG9yIix0cmFuc2l0aW9uOiEwLHJlcXVpcmVzOlt7IiEiOiJmaWxsLXBhdHRlcm4ifSx7ImZpbGwtYW50aWFsaWFzIjohMH1dLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiLCJmZWF0dXJlLXN0YXRlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwiZmlsbC10cmFuc2xhdGUiOnt0eXBlOiJhcnJheSIsdmFsdWU6Im51bWJlciIsbGVuZ3RoOjIsZGVmYXVsdDpbMCwwXSx0cmFuc2l0aW9uOiEwLHVuaXRzOiJwaXhlbHMiLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwiZmlsbC10cmFuc2xhdGUtYW5jaG9yIjp7dHlwZToiZW51bSIsdmFsdWVzOnttYXA6e30sdmlld3BvcnQ6e319LGRlZmF1bHQ6Im1hcCIscmVxdWlyZXM6WyJmaWxsLXRyYW5zbGF0ZSJdLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwiZmlsbC1wYXR0ZXJuIjp7dHlwZToicmVzb2x2ZWRJbWFnZSIsdHJhbnNpdGlvbjohMCxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIl19LCJwcm9wZXJ0eS10eXBlIjoiY3Jvc3MtZmFkZWQtZGF0YS1kcml2ZW4ifX0sInBhaW50X2ZpbGwtZXh0cnVzaW9uIjp7ImZpbGwtZXh0cnVzaW9uLW9wYWNpdHkiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MSxtaW5pbXVtOjAsbWF4aW11bToxLHRyYW5zaXRpb246ITAsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJmaWxsLWV4dHJ1c2lvbi1jb2xvciI6e3R5cGU6ImNvbG9yIixkZWZhdWx0OiIjMDAwMDAwIix0cmFuc2l0aW9uOiEwLHJlcXVpcmVzOlt7IiEiOiJmaWxsLWV4dHJ1c2lvbi1wYXR0ZXJuIn1dLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiLCJmZWF0dXJlLXN0YXRlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwiZmlsbC1leHRydXNpb24tdHJhbnNsYXRlIjp7dHlwZToiYXJyYXkiLHZhbHVlOiJudW1iZXIiLGxlbmd0aDoyLGRlZmF1bHQ6WzAsMF0sdHJhbnNpdGlvbjohMCx1bml0czoicGl4ZWxzIixleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImZpbGwtZXh0cnVzaW9uLXRyYW5zbGF0ZS1hbmNob3IiOnt0eXBlOiJlbnVtIix2YWx1ZXM6e21hcDp7fSx2aWV3cG9ydDp7fX0sZGVmYXVsdDoibWFwIixyZXF1aXJlczpbImZpbGwtZXh0cnVzaW9uLXRyYW5zbGF0ZSJdLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwiZmlsbC1leHRydXNpb24tcGF0dGVybiI6e3R5cGU6InJlc29sdmVkSW1hZ2UiLHRyYW5zaXRpb246ITAsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSJdfSwicHJvcGVydHktdHlwZSI6ImNyb3NzLWZhZGVkLWRhdGEtZHJpdmVuIn0sImZpbGwtZXh0cnVzaW9uLWhlaWdodCI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDowLG1pbmltdW06MCx1bml0czoibWV0ZXJzIix0cmFuc2l0aW9uOiEwLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiLCJmZWF0dXJlLXN0YXRlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwiZmlsbC1leHRydXNpb24tYmFzZSI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDowLG1pbmltdW06MCx1bml0czoibWV0ZXJzIix0cmFuc2l0aW9uOiEwLHJlcXVpcmVzOlsiZmlsbC1leHRydXNpb24taGVpZ2h0Il0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSIsImZlYXR1cmUtc3RhdGUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJmaWxsLWV4dHJ1c2lvbi12ZXJ0aWNhbC1ncmFkaWVudCI6e3R5cGU6ImJvb2xlYW4iLGRlZmF1bHQ6ITAsdHJhbnNpdGlvbjohMSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In19LHBhaW50X2xpbmU6eyJsaW5lLW9wYWNpdHkiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MSxtaW5pbXVtOjAsbWF4aW11bToxLHRyYW5zaXRpb246ITAsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSIsImZlYXR1cmUtc3RhdGUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJsaW5lLWNvbG9yIjp7dHlwZToiY29sb3IiLGRlZmF1bHQ6IiMwMDAwMDAiLHRyYW5zaXRpb246ITAscmVxdWlyZXM6W3siISI6ImxpbmUtcGF0dGVybiJ9XSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIiwiZmVhdHVyZS1zdGF0ZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sImxpbmUtdHJhbnNsYXRlIjp7dHlwZToiYXJyYXkiLHZhbHVlOiJudW1iZXIiLGxlbmd0aDoyLGRlZmF1bHQ6WzAsMF0sdHJhbnNpdGlvbjohMCx1bml0czoicGl4ZWxzIixleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImxpbmUtdHJhbnNsYXRlLWFuY2hvciI6e3R5cGU6ImVudW0iLHZhbHVlczp7bWFwOnt9LHZpZXdwb3J0Ont9fSxkZWZhdWx0OiJtYXAiLHJlcXVpcmVzOlsibGluZS10cmFuc2xhdGUiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImxpbmUtd2lkdGgiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MSxtaW5pbXVtOjAsdHJhbnNpdGlvbjohMCx1bml0czoicGl4ZWxzIixleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIiwiZmVhdHVyZS1zdGF0ZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sImxpbmUtZ2FwLXdpZHRoIjp7dHlwZToibnVtYmVyIixkZWZhdWx0OjAsbWluaW11bTowLHRyYW5zaXRpb246ITAsdW5pdHM6InBpeGVscyIsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSIsImZlYXR1cmUtc3RhdGUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJsaW5lLW9mZnNldCI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDowLHRyYW5zaXRpb246ITAsdW5pdHM6InBpeGVscyIsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSIsImZlYXR1cmUtc3RhdGUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJsaW5lLWJsdXIiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MCxtaW5pbXVtOjAsdHJhbnNpdGlvbjohMCx1bml0czoicGl4ZWxzIixleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIiwiZmVhdHVyZS1zdGF0ZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sImxpbmUtZGFzaGFycmF5Ijp7dHlwZToiYXJyYXkiLHZhbHVlOiJudW1iZXIiLG1pbmltdW06MCx0cmFuc2l0aW9uOiEwLHVuaXRzOiJsaW5lIHdpZHRocyIscmVxdWlyZXM6W3siISI6ImxpbmUtcGF0dGVybiJ9XSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJjcm9zcy1mYWRlZCJ9LCJsaW5lLXBhdHRlcm4iOnt0eXBlOiJyZXNvbHZlZEltYWdlIix0cmFuc2l0aW9uOiEwLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiXX0sInByb3BlcnR5LXR5cGUiOiJjcm9zcy1mYWRlZC1kYXRhLWRyaXZlbiJ9LCJsaW5lLWdyYWRpZW50Ijp7dHlwZToiY29sb3IiLHRyYW5zaXRpb246ITEscmVxdWlyZXM6W3siISI6ImxpbmUtZGFzaGFycmF5In0seyIhIjoibGluZS1wYXR0ZXJuIn0se3NvdXJjZToiZ2VvanNvbiIsaGFzOntsaW5lTWV0cmljczohMH19XSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbImxpbmUtcHJvZ3Jlc3MiXX0sInByb3BlcnR5LXR5cGUiOiJjb2xvci1yYW1wIn19LHBhaW50X2NpcmNsZTp7ImNpcmNsZS1yYWRpdXMiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6NSxtaW5pbXVtOjAsdHJhbnNpdGlvbjohMCx1bml0czoicGl4ZWxzIixleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIiwiZmVhdHVyZS1zdGF0ZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sImNpcmNsZS1jb2xvciI6e3R5cGU6ImNvbG9yIixkZWZhdWx0OiIjMDAwMDAwIix0cmFuc2l0aW9uOiEwLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiLCJmZWF0dXJlLXN0YXRlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwiY2lyY2xlLWJsdXIiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MCx0cmFuc2l0aW9uOiEwLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiLCJmZWF0dXJlLXN0YXRlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwiY2lyY2xlLW9wYWNpdHkiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MSxtaW5pbXVtOjAsbWF4aW11bToxLHRyYW5zaXRpb246ITAsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSIsImZlYXR1cmUtc3RhdGUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJjaXJjbGUtdHJhbnNsYXRlIjp7dHlwZToiYXJyYXkiLHZhbHVlOiJudW1iZXIiLGxlbmd0aDoyLGRlZmF1bHQ6WzAsMF0sdHJhbnNpdGlvbjohMCx1bml0czoicGl4ZWxzIixleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImNpcmNsZS10cmFuc2xhdGUtYW5jaG9yIjp7dHlwZToiZW51bSIsdmFsdWVzOnttYXA6e30sdmlld3BvcnQ6e319LGRlZmF1bHQ6Im1hcCIscmVxdWlyZXM6WyJjaXJjbGUtdHJhbnNsYXRlIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJjaXJjbGUtcGl0Y2gtc2NhbGUiOnt0eXBlOiJlbnVtIix2YWx1ZXM6e21hcDp7fSx2aWV3cG9ydDp7fX0sZGVmYXVsdDoibWFwIixleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImNpcmNsZS1waXRjaC1hbGlnbm1lbnQiOnt0eXBlOiJlbnVtIix2YWx1ZXM6e21hcDp7fSx2aWV3cG9ydDp7fX0sZGVmYXVsdDoidmlld3BvcnQiLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwiY2lyY2xlLXN0cm9rZS13aWR0aCI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDowLG1pbmltdW06MCx0cmFuc2l0aW9uOiEwLHVuaXRzOiJwaXhlbHMiLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiLCJmZWF0dXJlLXN0YXRlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwiY2lyY2xlLXN0cm9rZS1jb2xvciI6e3R5cGU6ImNvbG9yIixkZWZhdWx0OiIjMDAwMDAwIix0cmFuc2l0aW9uOiEwLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiLCJmZWF0dXJlLXN0YXRlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwiY2lyY2xlLXN0cm9rZS1vcGFjaXR5Ijp7dHlwZToibnVtYmVyIixkZWZhdWx0OjEsbWluaW11bTowLG1heGltdW06MSx0cmFuc2l0aW9uOiEwLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiLCJmZWF0dXJlLXN0YXRlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifX0scGFpbnRfaGVhdG1hcDp7ImhlYXRtYXAtcmFkaXVzIjp7dHlwZToibnVtYmVyIixkZWZhdWx0OjMwLG1pbmltdW06MSx0cmFuc2l0aW9uOiEwLHVuaXRzOiJwaXhlbHMiLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiLCJmZWF0dXJlLXN0YXRlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwiaGVhdG1hcC13ZWlnaHQiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MSxtaW5pbXVtOjAsdHJhbnNpdGlvbjohMSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIiwiZmVhdHVyZS1zdGF0ZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sImhlYXRtYXAtaW50ZW5zaXR5Ijp7dHlwZToibnVtYmVyIixkZWZhdWx0OjEsbWluaW11bTowLHRyYW5zaXRpb246ITAsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJoZWF0bWFwLWNvbG9yIjp7dHlwZToiY29sb3IiLGRlZmF1bHQ6WyJpbnRlcnBvbGF0ZSIsWyJsaW5lYXIiXSxbImhlYXRtYXAtZGVuc2l0eSJdLDAsInJnYmEoMCwgMCwgMjU1LCAwKSIsLjEsInJveWFsYmx1ZSIsLjMsImN5YW4iLC41LCJsaW1lIiwuNywieWVsbG93IiwxLCJyZWQiXSx0cmFuc2l0aW9uOiExLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiaGVhdG1hcC1kZW5zaXR5Il19LCJwcm9wZXJ0eS10eXBlIjoiY29sb3ItcmFtcCJ9LCJoZWF0bWFwLW9wYWNpdHkiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MSxtaW5pbXVtOjAsbWF4aW11bToxLHRyYW5zaXRpb246ITAsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9fSxwYWludF9zeW1ib2w6eyJpY29uLW9wYWNpdHkiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MSxtaW5pbXVtOjAsbWF4aW11bToxLHRyYW5zaXRpb246ITAscmVxdWlyZXM6WyJpY29uLWltYWdlIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSIsImZlYXR1cmUtc3RhdGUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJpY29uLWNvbG9yIjp7dHlwZToiY29sb3IiLGRlZmF1bHQ6IiMwMDAwMDAiLHRyYW5zaXRpb246ITAscmVxdWlyZXM6WyJpY29uLWltYWdlIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSIsImZlYXR1cmUtc3RhdGUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJpY29uLWhhbG8tY29sb3IiOnt0eXBlOiJjb2xvciIsZGVmYXVsdDoicmdiYSgwLCAwLCAwLCAwKSIsdHJhbnNpdGlvbjohMCxyZXF1aXJlczpbImljb24taW1hZ2UiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIiwiZmVhdHVyZS1zdGF0ZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sImljb24taGFsby13aWR0aCI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDowLG1pbmltdW06MCx0cmFuc2l0aW9uOiEwLHVuaXRzOiJwaXhlbHMiLHJlcXVpcmVzOlsiaWNvbi1pbWFnZSJdLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiLCJmZWF0dXJlLXN0YXRlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwiaWNvbi1oYWxvLWJsdXIiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MCxtaW5pbXVtOjAsdHJhbnNpdGlvbjohMCx1bml0czoicGl4ZWxzIixyZXF1aXJlczpbImljb24taW1hZ2UiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIiwiZmVhdHVyZS1zdGF0ZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sImljb24tdHJhbnNsYXRlIjp7dHlwZToiYXJyYXkiLHZhbHVlOiJudW1iZXIiLGxlbmd0aDoyLGRlZmF1bHQ6WzAsMF0sdHJhbnNpdGlvbjohMCx1bml0czoicGl4ZWxzIixyZXF1aXJlczpbImljb24taW1hZ2UiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImljb24tdHJhbnNsYXRlLWFuY2hvciI6e3R5cGU6ImVudW0iLHZhbHVlczp7bWFwOnt9LHZpZXdwb3J0Ont9fSxkZWZhdWx0OiJtYXAiLHJlcXVpcmVzOlsiaWNvbi1pbWFnZSIsImljb24tdHJhbnNsYXRlIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJ0ZXh0LW9wYWNpdHkiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MSxtaW5pbXVtOjAsbWF4aW11bToxLHRyYW5zaXRpb246ITAscmVxdWlyZXM6WyJ0ZXh0LWZpZWxkIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSIsImZlYXR1cmUtc3RhdGUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJ0ZXh0LWNvbG9yIjp7dHlwZToiY29sb3IiLGRlZmF1bHQ6IiMwMDAwMDAiLHRyYW5zaXRpb246ITAsb3ZlcnJpZGFibGU6ITAscmVxdWlyZXM6WyJ0ZXh0LWZpZWxkIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSIsImZlYXR1cmUtc3RhdGUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJ0ZXh0LWhhbG8tY29sb3IiOnt0eXBlOiJjb2xvciIsZGVmYXVsdDoicmdiYSgwLCAwLCAwLCAwKSIsdHJhbnNpdGlvbjohMCxyZXF1aXJlczpbInRleHQtZmllbGQiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIiwiZmVhdHVyZS1zdGF0ZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sInRleHQtaGFsby13aWR0aCI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDowLG1pbmltdW06MCx0cmFuc2l0aW9uOiEwLHVuaXRzOiJwaXhlbHMiLHJlcXVpcmVzOlsidGV4dC1maWVsZCJdLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiLCJmZWF0dXJlLXN0YXRlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwidGV4dC1oYWxvLWJsdXIiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MCxtaW5pbXVtOjAsdHJhbnNpdGlvbjohMCx1bml0czoicGl4ZWxzIixyZXF1aXJlczpbInRleHQtZmllbGQiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIiwiZmVhdHVyZS1zdGF0ZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sInRleHQtdHJhbnNsYXRlIjp7dHlwZToiYXJyYXkiLHZhbHVlOiJudW1iZXIiLGxlbmd0aDoyLGRlZmF1bHQ6WzAsMF0sdHJhbnNpdGlvbjohMCx1bml0czoicGl4ZWxzIixyZXF1aXJlczpbInRleHQtZmllbGQiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInRleHQtdHJhbnNsYXRlLWFuY2hvciI6e3R5cGU6ImVudW0iLHZhbHVlczp7bWFwOnt9LHZpZXdwb3J0Ont9fSxkZWZhdWx0OiJtYXAiLHJlcXVpcmVzOlsidGV4dC1maWVsZCIsInRleHQtdHJhbnNsYXRlIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9fSxwYWludF9yYXN0ZXI6eyJyYXN0ZXItb3BhY2l0eSI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDoxLG1pbmltdW06MCxtYXhpbXVtOjEsdHJhbnNpdGlvbjohMCxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInJhc3Rlci1odWUtcm90YXRlIjp7dHlwZToibnVtYmVyIixkZWZhdWx0OjAscGVyaW9kOjM2MCx0cmFuc2l0aW9uOiEwLHVuaXRzOiJkZWdyZWVzIixleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInJhc3Rlci1icmlnaHRuZXNzLW1pbiI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDowLG1pbmltdW06MCxtYXhpbXVtOjEsdHJhbnNpdGlvbjohMCxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInJhc3Rlci1icmlnaHRuZXNzLW1heCI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDoxLG1pbmltdW06MCxtYXhpbXVtOjEsdHJhbnNpdGlvbjohMCxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInJhc3Rlci1zYXR1cmF0aW9uIjp7dHlwZToibnVtYmVyIixkZWZhdWx0OjAsbWluaW11bTotMSxtYXhpbXVtOjEsdHJhbnNpdGlvbjohMCxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInJhc3Rlci1jb250cmFzdCI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDowLG1pbmltdW06LTEsbWF4aW11bToxLHRyYW5zaXRpb246ITAsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJyYXN0ZXItcmVzYW1wbGluZyI6e3R5cGU6ImVudW0iLHZhbHVlczp7bGluZWFyOnt9LG5lYXJlc3Q6e319LGRlZmF1bHQ6ImxpbmVhciIsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJyYXN0ZXItZmFkZS1kdXJhdGlvbiI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDozMDAsbWluaW11bTowLHRyYW5zaXRpb246ITEsdW5pdHM6Im1pbGxpc2Vjb25kcyIsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9fSxwYWludF9oaWxsc2hhZGU6eyJoaWxsc2hhZGUtaWxsdW1pbmF0aW9uLWRpcmVjdGlvbiI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDozMzUsbWluaW11bTowLG1heGltdW06MzU5LHRyYW5zaXRpb246ITEsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJoaWxsc2hhZGUtaWxsdW1pbmF0aW9uLWFuY2hvciI6e3R5cGU6ImVudW0iLHZhbHVlczp7bWFwOnt9LHZpZXdwb3J0Ont9fSxkZWZhdWx0OiJ2aWV3cG9ydCIsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJoaWxsc2hhZGUtZXhhZ2dlcmF0aW9uIjp7dHlwZToibnVtYmVyIixkZWZhdWx0Oi41LG1pbmltdW06MCxtYXhpbXVtOjEsdHJhbnNpdGlvbjohMCxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImhpbGxzaGFkZS1zaGFkb3ctY29sb3IiOnt0eXBlOiJjb2xvciIsZGVmYXVsdDoiIzAwMDAwMCIsdHJhbnNpdGlvbjohMCxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImhpbGxzaGFkZS1oaWdobGlnaHQtY29sb3IiOnt0eXBlOiJjb2xvciIsZGVmYXVsdDoiI0ZGRkZGRiIsdHJhbnNpdGlvbjohMCxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImhpbGxzaGFkZS1hY2NlbnQtY29sb3IiOnt0eXBlOiJjb2xvciIsZGVmYXVsdDoiIzAwMDAwMCIsdHJhbnNpdGlvbjohMCxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In19LHBhaW50X2JhY2tncm91bmQ6eyJiYWNrZ3JvdW5kLWNvbG9yIjp7dHlwZToiY29sb3IiLGRlZmF1bHQ6IiMwMDAwMDAiLHRyYW5zaXRpb246ITAscmVxdWlyZXM6W3siISI6ImJhY2tncm91bmQtcGF0dGVybiJ9XSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImJhY2tncm91bmQtcGF0dGVybiI6e3R5cGU6InJlc29sdmVkSW1hZ2UiLHRyYW5zaXRpb246ITAsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiY3Jvc3MtZmFkZWQifSwiYmFja2dyb3VuZC1vcGFjaXR5Ijp7dHlwZToibnVtYmVyIixkZWZhdWx0OjEsbWluaW11bTowLG1heGltdW06MSx0cmFuc2l0aW9uOiEwLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifX0sdHJhbnNpdGlvbjp7ZHVyYXRpb246e3R5cGU6Im51bWJlciIsZGVmYXVsdDozMDAsbWluaW11bTowLHVuaXRzOiJtaWxsaXNlY29uZHMifSxkZWxheTp7dHlwZToibnVtYmVyIixkZWZhdWx0OjAsbWluaW11bTowLHVuaXRzOiJtaWxsaXNlY29uZHMifX0sInByb3BlcnR5LXR5cGUiOnsiZGF0YS1kcml2ZW4iOnt0eXBlOiJwcm9wZXJ0eS10eXBlIn0sImNyb3NzLWZhZGVkIjp7dHlwZToicHJvcGVydHktdHlwZSJ9LCJjcm9zcy1mYWRlZC1kYXRhLWRyaXZlbiI6e3R5cGU6InByb3BlcnR5LXR5cGUifSwiY29sb3ItcmFtcCI6e3R5cGU6InByb3BlcnR5LXR5cGUifSwiZGF0YS1jb25zdGFudCI6e3R5cGU6InByb3BlcnR5LXR5cGUifSxjb25zdGFudDp7dHlwZToicHJvcGVydHktdHlwZSJ9fSxwcm9tb3RlSWQ6eyIqIjp7dHlwZToic3RyaW5nIn19fSxDdD1mdW5jdGlvbih0LGUscixuKXt0aGlzLm1lc3NhZ2U9KHQ/dCsiOiAiOiIiKStyLG4mJih0aGlzLmlkZW50aWZpZXI9biksbnVsbCE9ZSYmZS5fX2xpbmVfXyYmKHRoaXMubGluZT1lLl9fbGluZV9fKX07ZnVuY3Rpb24gUHQodCl7dmFyIGU9dC5rZXkscj10LnZhbHVlO3JldHVybiByP1tuZXcgQ3QoZSxyLCJjb25zdGFudHMgaGF2ZSBiZWVuIGRlcHJlY2F0ZWQgYXMgb2YgdjgiKV06W119ZnVuY3Rpb24gSXQodCl7Zm9yKHZhciBlPVtdLHI9YXJndW1lbnRzLmxlbmd0aC0xO3ItLSA+MDspZVtyXT1hcmd1bWVudHNbcisxXTtmb3IodmFyIG49MCxpPWU7bjxpLmxlbmd0aDtuKz0xKXt2YXIgYT1pW25dO2Zvcih2YXIgbyBpbiBhKXRbb109YVtvXX1yZXR1cm4gdH1mdW5jdGlvbiBPdCh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIE51bWJlcnx8dCBpbnN0YW5jZW9mIFN0cmluZ3x8dCBpbnN0YW5jZW9mIEJvb2xlYW4/dC52YWx1ZU9mKCk6dH1mdW5jdGlvbiB6dCh0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiB0Lm1hcCh6dCk7aWYodCBpbnN0YW5jZW9mIE9iamVjdCYmISh0IGluc3RhbmNlb2YgTnVtYmVyfHx0IGluc3RhbmNlb2YgU3RyaW5nfHx0IGluc3RhbmNlb2YgQm9vbGVhbikpe3ZhciBlPXt9O2Zvcih2YXIgciBpbiB0KWVbcl09enQodFtyXSk7cmV0dXJuIGV9cmV0dXJuIE90KHQpfXZhciBEdD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUscil7dC5jYWxsKHRoaXMsciksdGhpcy5tZXNzYWdlPXIsdGhpcy5rZXk9ZX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZX0oRXJyb3IpLFJ0PWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9W10pLHRoaXMucGFyZW50PXQsdGhpcy5iaW5kaW5ncz17fTtmb3IodmFyIHI9MCxuPWU7cjxuLmxlbmd0aDtyKz0xKXt2YXIgaT1uW3JdLGE9aVswXSxvPWlbMV07dGhpcy5iaW5kaW5nc1thXT1vfX07UnQucHJvdG90eXBlLmNvbmNhdD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IFJ0KHRoaXMsdCl9LFJ0LnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7aWYodGhpcy5iaW5kaW5nc1t0XSlyZXR1cm4gdGhpcy5iaW5kaW5nc1t0XTtpZih0aGlzLnBhcmVudClyZXR1cm4gdGhpcy5wYXJlbnQuZ2V0KHQpO3Rocm93IG5ldyBFcnJvcih0KyIgbm90IGZvdW5kIGluIHNjb3BlLiIpfSxSdC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3JldHVybiEhdGhpcy5iaW5kaW5nc1t0XXx8ISF0aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQuaGFzKHQpfTt2YXIgRnQ9e2tpbmQ6Im51bGwifSxCdD17a2luZDoibnVtYmVyIn0sTnQ9e2tpbmQ6InN0cmluZyJ9LGp0PXtraW5kOiJib29sZWFuIn0sVXQ9e2tpbmQ6ImNvbG9yIn0sVnQ9e2tpbmQ6Im9iamVjdCJ9LEh0PXtraW5kOiJ2YWx1ZSJ9LHF0PXtraW5kOiJjb2xsYXRvciJ9LEd0PXtraW5kOiJmb3JtYXR0ZWQifSxZdD17a2luZDoicmVzb2x2ZWRJbWFnZSJ9O2Z1bmN0aW9uIFd0KHQsZSl7cmV0dXJue2tpbmQ6ImFycmF5IixpdGVtVHlwZTp0LE46ZX19ZnVuY3Rpb24gWHQodCl7aWYoImFycmF5Ij09PXQua2luZCl7dmFyIGU9WHQodC5pdGVtVHlwZSk7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0Lk4/ImFycmF5PCIrZSsiLCAiK3QuTisiPiI6InZhbHVlIj09PXQuaXRlbVR5cGUua2luZD8iYXJyYXkiOiJhcnJheTwiK2UrIj4ifXJldHVybiB0LmtpbmR9dmFyIFp0PVtGdCxCdCxOdCxqdCxVdCxHdCxWdCxXdChIdCksWXRdO2Z1bmN0aW9uIEp0KHQsZSl7aWYoImVycm9yIj09PWUua2luZClyZXR1cm4gbnVsbDtpZigiYXJyYXkiPT09dC5raW5kKXtpZigiYXJyYXkiPT09ZS5raW5kJiYoMD09PWUuTiYmInZhbHVlIj09PWUuaXRlbVR5cGUua2luZHx8IUp0KHQuaXRlbVR5cGUsZS5pdGVtVHlwZSkpJiYoIm51bWJlciIhPXR5cGVvZiB0Lk58fHQuTj09PWUuTikpcmV0dXJuIG51bGx9ZWxzZXtpZih0LmtpbmQ9PT1lLmtpbmQpcmV0dXJuIG51bGw7aWYoInZhbHVlIj09PXQua2luZClmb3IodmFyIHI9MCxuPVp0O3I8bi5sZW5ndGg7cis9MSl7aWYoIUp0KG5bcl0sZSkpcmV0dXJuIG51bGx9fXJldHVybiJFeHBlY3RlZCAiK1h0KHQpKyIgYnV0IGZvdW5kICIrWHQoZSkrIiBpbnN0ZWFkLiJ9ZnVuY3Rpb24gS3QodCxlKXtyZXR1cm4gZS5zb21lKChmdW5jdGlvbihlKXtyZXR1cm4gZS5raW5kPT09dC5raW5kfSkpfWZ1bmN0aW9uIFF0KHQsZSl7cmV0dXJuIGUuc29tZSgoZnVuY3Rpb24oZSl7cmV0dXJuIm51bGwiPT09ZT9udWxsPT09dDoiYXJyYXkiPT09ZT9BcnJheS5pc0FycmF5KHQpOiJvYmplY3QiPT09ZT90JiYhQXJyYXkuaXNBcnJheSh0KSYmIm9iamVjdCI9PXR5cGVvZiB0OmU9PT10eXBlb2YgdH0pKX12YXIgJHQ9ZSgoZnVuY3Rpb24odCxlKXt2YXIgcj17dHJhbnNwYXJlbnQ6WzAsMCwwLDBdLGFsaWNlYmx1ZTpbMjQwLDI0OCwyNTUsMV0sYW50aXF1ZXdoaXRlOlsyNTAsMjM1LDIxNSwxXSxhcXVhOlswLDI1NSwyNTUsMV0sYXF1YW1hcmluZTpbMTI3LDI1NSwyMTIsMV0sYXp1cmU6WzI0MCwyNTUsMjU1LDFdLGJlaWdlOlsyNDUsMjQ1LDIyMCwxXSxiaXNxdWU6WzI1NSwyMjgsMTk2LDFdLGJsYWNrOlswLDAsMCwxXSxibGFuY2hlZGFsbW9uZDpbMjU1LDIzNSwyMDUsMV0sYmx1ZTpbMCwwLDI1NSwxXSxibHVldmlvbGV0OlsxMzgsNDMsMjI2LDFdLGJyb3duOlsxNjUsNDIsNDIsMV0sYnVybHl3b29kOlsyMjIsMTg0LDEzNSwxXSxjYWRldGJsdWU6Wzk1LDE1OCwxNjAsMV0sY2hhcnRyZXVzZTpbMTI3LDI1NSwwLDFdLGNob2NvbGF0ZTpbMjEwLDEwNSwzMCwxXSxjb3JhbDpbMjU1LDEyNyw4MCwxXSxjb3JuZmxvd2VyYmx1ZTpbMTAwLDE0OSwyMzcsMV0sY29ybnNpbGs6WzI1NSwyNDgsMjIwLDFdLGNyaW1zb246WzIyMCwyMCw2MCwxXSxjeWFuOlswLDI1NSwyNTUsMV0sZGFya2JsdWU6WzAsMCwxMzksMV0sZGFya2N5YW46WzAsMTM5LDEzOSwxXSxkYXJrZ29sZGVucm9kOlsxODQsMTM0LDExLDFdLGRhcmtncmF5OlsxNjksMTY5LDE2OSwxXSxkYXJrZ3JlZW46WzAsMTAwLDAsMV0sZGFya2dyZXk6WzE2OSwxNjksMTY5LDFdLGRhcmtraGFraTpbMTg5LDE4MywxMDcsMV0sZGFya21hZ2VudGE6WzEzOSwwLDEzOSwxXSxkYXJrb2xpdmVncmVlbjpbODUsMTA3LDQ3LDFdLGRhcmtvcmFuZ2U6WzI1NSwxNDAsMCwxXSxkYXJrb3JjaGlkOlsxNTMsNTAsMjA0LDFdLGRhcmtyZWQ6WzEzOSwwLDAsMV0sZGFya3NhbG1vbjpbMjMzLDE1MCwxMjIsMV0sZGFya3NlYWdyZWVuOlsxNDMsMTg4LDE0MywxXSxkYXJrc2xhdGVibHVlOls3Miw2MSwxMzksMV0sZGFya3NsYXRlZ3JheTpbNDcsNzksNzksMV0sZGFya3NsYXRlZ3JleTpbNDcsNzksNzksMV0sZGFya3R1cnF1b2lzZTpbMCwyMDYsMjA5LDFdLGRhcmt2aW9sZXQ6WzE0OCwwLDIxMSwxXSxkZWVwcGluazpbMjU1LDIwLDE0NywxXSxkZWVwc2t5Ymx1ZTpbMCwxOTEsMjU1LDFdLGRpbWdyYXk6WzEwNSwxMDUsMTA1LDFdLGRpbWdyZXk6WzEwNSwxMDUsMTA1LDFdLGRvZGdlcmJsdWU6WzMwLDE0NCwyNTUsMV0sZmlyZWJyaWNrOlsxNzgsMzQsMzQsMV0sZmxvcmFsd2hpdGU6WzI1NSwyNTAsMjQwLDFdLGZvcmVzdGdyZWVuOlszNCwxMzksMzQsMV0sZnVjaHNpYTpbMjU1LDAsMjU1LDFdLGdhaW5zYm9ybzpbMjIwLDIyMCwyMjAsMV0sZ2hvc3R3aGl0ZTpbMjQ4LDI0OCwyNTUsMV0sZ29sZDpbMjU1LDIxNSwwLDFdLGdvbGRlbnJvZDpbMjE4LDE2NSwzMiwxXSxncmF5OlsxMjgsMTI4LDEyOCwxXSxncmVlbjpbMCwxMjgsMCwxXSxncmVlbnllbGxvdzpbMTczLDI1NSw0NywxXSxncmV5OlsxMjgsMTI4LDEyOCwxXSxob25leWRldzpbMjQwLDI1NSwyNDAsMV0saG90cGluazpbMjU1LDEwNSwxODAsMV0saW5kaWFucmVkOlsyMDUsOTIsOTIsMV0saW5kaWdvOls3NSwwLDEzMCwxXSxpdm9yeTpbMjU1LDI1NSwyNDAsMV0sa2hha2k6WzI0MCwyMzAsMTQwLDFdLGxhdmVuZGVyOlsyMzAsMjMwLDI1MCwxXSxsYXZlbmRlcmJsdXNoOlsyNTUsMjQwLDI0NSwxXSxsYXduZ3JlZW46WzEyNCwyNTIsMCwxXSxsZW1vbmNoaWZmb246WzI1NSwyNTAsMjA1LDFdLGxpZ2h0Ymx1ZTpbMTczLDIxNiwyMzAsMV0sbGlnaHRjb3JhbDpbMjQwLDEyOCwxMjgsMV0sbGlnaHRjeWFuOlsyMjQsMjU1LDI1NSwxXSxsaWdodGdvbGRlbnJvZHllbGxvdzpbMjUwLDI1MCwyMTAsMV0sbGlnaHRncmF5OlsyMTEsMjExLDIxMSwxXSxsaWdodGdyZWVuOlsxNDQsMjM4LDE0NCwxXSxsaWdodGdyZXk6WzIxMSwyMTEsMjExLDFdLGxpZ2h0cGluazpbMjU1LDE4MiwxOTMsMV0sbGlnaHRzYWxtb246WzI1NSwxNjAsMTIyLDFdLGxpZ2h0c2VhZ3JlZW46WzMyLDE3OCwxNzAsMV0sbGlnaHRza3libHVlOlsxMzUsMjA2LDI1MCwxXSxsaWdodHNsYXRlZ3JheTpbMTE5LDEzNiwxNTMsMV0sbGlnaHRzbGF0ZWdyZXk6WzExOSwxMzYsMTUzLDFdLGxpZ2h0c3RlZWxibHVlOlsxNzYsMTk2LDIyMiwxXSxsaWdodHllbGxvdzpbMjU1LDI1NSwyMjQsMV0sbGltZTpbMCwyNTUsMCwxXSxsaW1lZ3JlZW46WzUwLDIwNSw1MCwxXSxsaW5lbjpbMjUwLDI0MCwyMzAsMV0sbWFnZW50YTpbMjU1LDAsMjU1LDFdLG1hcm9vbjpbMTI4LDAsMCwxXSxtZWRpdW1hcXVhbWFyaW5lOlsxMDIsMjA1LDE3MCwxXSxtZWRpdW1ibHVlOlswLDAsMjA1LDFdLG1lZGl1bW9yY2hpZDpbMTg2LDg1LDIxMSwxXSxtZWRpdW1wdXJwbGU6WzE0NywxMTIsMjE5LDFdLG1lZGl1bXNlYWdyZWVuOls2MCwxNzksMTEzLDFdLG1lZGl1bXNsYXRlYmx1ZTpbMTIzLDEwNCwyMzgsMV0sbWVkaXVtc3ByaW5nZ3JlZW46WzAsMjUwLDE1NCwxXSxtZWRpdW10dXJxdW9pc2U6WzcyLDIwOSwyMDQsMV0sbWVkaXVtdmlvbGV0cmVkOlsxOTksMjEsMTMzLDFdLG1pZG5pZ2h0Ymx1ZTpbMjUsMjUsMTEyLDFdLG1pbnRjcmVhbTpbMjQ1LDI1NSwyNTAsMV0sbWlzdHlyb3NlOlsyNTUsMjI4LDIyNSwxXSxtb2NjYXNpbjpbMjU1LDIyOCwxODEsMV0sbmF2YWpvd2hpdGU6WzI1NSwyMjIsMTczLDFdLG5hdnk6WzAsMCwxMjgsMV0sb2xkbGFjZTpbMjUzLDI0NSwyMzAsMV0sb2xpdmU6WzEyOCwxMjgsMCwxXSxvbGl2ZWRyYWI6WzEwNywxNDIsMzUsMV0sb3JhbmdlOlsyNTUsMTY1LDAsMV0sb3JhbmdlcmVkOlsyNTUsNjksMCwxXSxvcmNoaWQ6WzIxOCwxMTIsMjE0LDFdLHBhbGVnb2xkZW5yb2Q6WzIzOCwyMzIsMTcwLDFdLHBhbGVncmVlbjpbMTUyLDI1MSwxNTIsMV0scGFsZXR1cnF1b2lzZTpbMTc1LDIzOCwyMzgsMV0scGFsZXZpb2xldHJlZDpbMjE5LDExMiwxNDcsMV0scGFwYXlhd2hpcDpbMjU1LDIzOSwyMTMsMV0scGVhY2hwdWZmOlsyNTUsMjE4LDE4NSwxXSxwZXJ1OlsyMDUsMTMzLDYzLDFdLHBpbms6WzI1NSwxOTIsMjAzLDFdLHBsdW06WzIyMSwxNjAsMjIxLDFdLHBvd2RlcmJsdWU6WzE3NiwyMjQsMjMwLDFdLHB1cnBsZTpbMTI4LDAsMTI4LDFdLHJlYmVjY2FwdXJwbGU6WzEwMiw1MSwxNTMsMV0scmVkOlsyNTUsMCwwLDFdLHJvc3licm93bjpbMTg4LDE0MywxNDMsMV0scm95YWxibHVlOls2NSwxMDUsMjI1LDFdLHNhZGRsZWJyb3duOlsxMzksNjksMTksMV0sc2FsbW9uOlsyNTAsMTI4LDExNCwxXSxzYW5keWJyb3duOlsyNDQsMTY0LDk2LDFdLHNlYWdyZWVuOls0NiwxMzksODcsMV0sc2Vhc2hlbGw6WzI1NSwyNDUsMjM4LDFdLHNpZW5uYTpbMTYwLDgyLDQ1LDFdLHNpbHZlcjpbMTkyLDE5MiwxOTIsMV0sc2t5Ymx1ZTpbMTM1LDIwNiwyMzUsMV0sc2xhdGVibHVlOlsxMDYsOTAsMjA1LDFdLHNsYXRlZ3JheTpbMTEyLDEyOCwxNDQsMV0sc2xhdGVncmV5OlsxMTIsMTI4LDE0NCwxXSxzbm93OlsyNTUsMjUwLDI1MCwxXSxzcHJpbmdncmVlbjpbMCwyNTUsMTI3LDFdLHN0ZWVsYmx1ZTpbNzAsMTMwLDE4MCwxXSx0YW46WzIxMCwxODAsMTQwLDFdLHRlYWw6WzAsMTI4LDEyOCwxXSx0aGlzdGxlOlsyMTYsMTkxLDIxNiwxXSx0b21hdG86WzI1NSw5OSw3MSwxXSx0dXJxdW9pc2U6WzY0LDIyNCwyMDgsMV0sdmlvbGV0OlsyMzgsMTMwLDIzOCwxXSx3aGVhdDpbMjQ1LDIyMiwxNzksMV0sd2hpdGU6WzI1NSwyNTUsMjU1LDFdLHdoaXRlc21va2U6WzI0NSwyNDUsMjQ1LDFdLHllbGxvdzpbMjU1LDI1NSwwLDFdLHllbGxvd2dyZWVuOlsxNTQsMjA1LDUwLDFdfTtmdW5jdGlvbiBuKHQpe3JldHVybih0PU1hdGgucm91bmQodCkpPDA/MDp0PjI1NT8yNTU6dH1mdW5jdGlvbiBpKHQpe3JldHVybiB0PDA/MDp0PjE/MTp0fWZ1bmN0aW9uIGEodCl7cmV0dXJuIiUiPT09dFt0Lmxlbmd0aC0xXT9uKHBhcnNlRmxvYXQodCkvMTAwKjI1NSk6bihwYXJzZUludCh0KSl9ZnVuY3Rpb24gbyh0KXtyZXR1cm4iJSI9PT10W3QubGVuZ3RoLTFdP2kocGFyc2VGbG9hdCh0KS8xMDApOmkocGFyc2VGbG9hdCh0KSl9ZnVuY3Rpb24gcyh0LGUscil7cmV0dXJuIHI8MD9yKz0xOnI+MSYmKHItPTEpLDYqcjwxP3QrKGUtdCkqcio2OjIqcjwxP2U6MypyPDI/dCsoZS10KSooMi8zLXIpKjY6dH10cnl7ZS5wYXJzZUNTU0NvbG9yPWZ1bmN0aW9uKHQpe3ZhciBlLGk9dC5yZXBsYWNlKC8gL2csIiIpLnRvTG93ZXJDYXNlKCk7aWYoaSBpbiByKXJldHVybiByW2ldLnNsaWNlKCk7aWYoIiMiPT09aVswXSlyZXR1cm4gND09PWkubGVuZ3RoPyhlPXBhcnNlSW50KGkuc3Vic3RyKDEpLDE2KSk+PTAmJmU8PTQwOTU/WygzODQwJmUpPj40fCgzODQwJmUpPj44LDI0MCZlfCgyNDAmZSk+PjQsMTUmZXwoMTUmZSk8PDQsMV06bnVsbDo3PT09aS5sZW5ndGgmJihlPXBhcnNlSW50KGkuc3Vic3RyKDEpLDE2KSk+PTAmJmU8PTE2Nzc3MjE1P1soMTY3MTE2ODAmZSk+PjE2LCg2NTI4MCZlKT4+OCwyNTUmZSwxXTpudWxsO3ZhciBsPWkuaW5kZXhPZigiKCIpLGM9aS5pbmRleE9mKCIpIik7aWYoLTEhPT1sJiZjKzE9PT1pLmxlbmd0aCl7dmFyIHU9aS5zdWJzdHIoMCxsKSxmPWkuc3Vic3RyKGwrMSxjLShsKzEpKS5zcGxpdCgiLCIpLGg9MTtzd2l0Y2godSl7Y2FzZSJyZ2JhIjppZig0IT09Zi5sZW5ndGgpcmV0dXJuIG51bGw7aD1vKGYucG9wKCkpO2Nhc2UicmdiIjpyZXR1cm4gMyE9PWYubGVuZ3RoP251bGw6W2EoZlswXSksYShmWzFdKSxhKGZbMl0pLGhdO2Nhc2UiaHNsYSI6aWYoNCE9PWYubGVuZ3RoKXJldHVybiBudWxsO2g9byhmLnBvcCgpKTtjYXNlImhzbCI6aWYoMyE9PWYubGVuZ3RoKXJldHVybiBudWxsO3ZhciBwPShwYXJzZUZsb2F0KGZbMF0pJTM2MCszNjApJTM2MC8zNjAsZD1vKGZbMV0pLG09byhmWzJdKSxnPW08PS41P20qKGQrMSk6bStkLW0qZCx2PTIqbS1nO3JldHVybltuKDI1NSpzKHYsZyxwKzEvMykpLG4oMjU1KnModixnLHApKSxuKDI1NSpzKHYsZyxwLTEvMykpLGhdO2RlZmF1bHQ6cmV0dXJuIG51bGx9fXJldHVybiBudWxsfX1jYXRjaCh0KXt9fSkpLnBhcnNlQ1NTQ29sb3IsdGU9ZnVuY3Rpb24odCxlLHIsbil7dm9pZCAwPT09biYmKG49MSksdGhpcy5yPXQsdGhpcy5nPWUsdGhpcy5iPXIsdGhpcy5hPW59O3RlLnBhcnNlPWZ1bmN0aW9uKHQpe2lmKHQpe2lmKHQgaW5zdGFuY2VvZiB0ZSlyZXR1cm4gdDtpZigic3RyaW5nIj09dHlwZW9mIHQpe3ZhciBlPSR0KHQpO2lmKGUpcmV0dXJuIG5ldyB0ZShlWzBdLzI1NSplWzNdLGVbMV0vMjU1KmVbM10sZVsyXS8yNTUqZVszXSxlWzNdKX19fSx0ZS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnRvQXJyYXkoKSxlPXRbMF0scj10WzFdLG49dFsyXSxpPXRbM107cmV0dXJuInJnYmEoIitNYXRoLnJvdW5kKGUpKyIsIitNYXRoLnJvdW5kKHIpKyIsIitNYXRoLnJvdW5kKG4pKyIsIitpKyIpIn0sdGUucHJvdG90eXBlLnRvQXJyYXk9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnIsZT10aGlzLmcscj10aGlzLmIsbj10aGlzLmE7cmV0dXJuIDA9PT1uP1swLDAsMCwwXTpbMjU1KnQvbiwyNTUqZS9uLDI1NSpyL24sbl19LHRlLmJsYWNrPW5ldyB0ZSgwLDAsMCwxKSx0ZS53aGl0ZT1uZXcgdGUoMSwxLDEsMSksdGUudHJhbnNwYXJlbnQ9bmV3IHRlKDAsMCwwLDApLHRlLnJlZD1uZXcgdGUoMSwwLDAsMSk7dmFyIGVlPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLnNlbnNpdGl2aXR5PXQ/ZT8idmFyaWFudCI6ImNhc2UiOmU/ImFjY2VudCI6ImJhc2UiLHRoaXMubG9jYWxlPXIsdGhpcy5jb2xsYXRvcj1uZXcgSW50bC5Db2xsYXRvcih0aGlzLmxvY2FsZT90aGlzLmxvY2FsZTpbXSx7c2Vuc2l0aXZpdHk6dGhpcy5zZW5zaXRpdml0eSx1c2FnZToic2VhcmNoIn0pfTtlZS5wcm90b3R5cGUuY29tcGFyZT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmNvbGxhdG9yLmNvbXBhcmUodCxlKX0sZWUucHJvdG90eXBlLnJlc29sdmVkTG9jYWxlPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBJbnRsLkNvbGxhdG9yKHRoaXMubG9jYWxlP3RoaXMubG9jYWxlOltdKS5yZXNvbHZlZE9wdGlvbnMoKS5sb2NhbGV9O3ZhciByZT1mdW5jdGlvbih0LGUscixuLGkpe3RoaXMudGV4dD10LHRoaXMuaW1hZ2U9ZSx0aGlzLnNjYWxlPXIsdGhpcy5mb250U3RhY2s9bix0aGlzLnRleHRDb2xvcj1pfSxuZT1mdW5jdGlvbih0KXt0aGlzLnNlY3Rpb25zPXR9O25lLmZyb21TdHJpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBuZShbbmV3IHJlKHQsbnVsbCxudWxsLG51bGwsbnVsbCldKX0sbmUucHJvdG90eXBlLmlzRW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuc2VjdGlvbnMubGVuZ3RofHwhdGhpcy5zZWN0aW9ucy5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gMCE9PXQudGV4dC5sZW5ndGh8fHQuaW1hZ2UmJjAhPT10LmltYWdlLm5hbWUubGVuZ3RofSkpfSxuZS5mYWN0b3J5PWZ1bmN0aW9uKHQpe3JldHVybiB0IGluc3RhbmNlb2YgbmU/dDpuZS5mcm9tU3RyaW5nKHQpfSxuZS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuc2VjdGlvbnMubGVuZ3RoPyIiOnRoaXMuc2VjdGlvbnMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC50ZXh0fSkpLmpvaW4oIiIpfSxuZS5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVsiZm9ybWF0Il0sZT0wLHI9dGhpcy5zZWN0aW9ucztlPHIubGVuZ3RoO2UrPTEpe3ZhciBuPXJbZV07aWYobi5pbWFnZSl0LnB1c2goWyJpbWFnZSIsbi5pbWFnZS5uYW1lXSk7ZWxzZXt0LnB1c2gobi50ZXh0KTt2YXIgaT17fTtuLmZvbnRTdGFjayYmKGlbInRleHQtZm9udCJdPVsibGl0ZXJhbCIsbi5mb250U3RhY2suc3BsaXQoIiwiKV0pLG4uc2NhbGUmJihpWyJmb250LXNjYWxlIl09bi5zY2FsZSksbi50ZXh0Q29sb3ImJihpWyJ0ZXh0LWNvbG9yIl09WyJyZ2JhIl0uY29uY2F0KG4udGV4dENvbG9yLnRvQXJyYXkoKSkpLHQucHVzaChpKX19cmV0dXJuIHR9O3ZhciBpZT1mdW5jdGlvbih0KXt0aGlzLm5hbWU9dC5uYW1lLHRoaXMuYXZhaWxhYmxlPXQuYXZhaWxhYmxlfTtmdW5jdGlvbiBhZSh0LGUscixuKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQmJnQ+PTAmJnQ8PTI1NSYmIm51bWJlciI9PXR5cGVvZiBlJiZlPj0wJiZlPD0yNTUmJiJudW1iZXIiPT10eXBlb2YgciYmcj49MCYmcjw9MjU1P3ZvaWQgMD09PW58fCJudW1iZXIiPT10eXBlb2YgbiYmbj49MCYmbjw9MT9udWxsOiJJbnZhbGlkIHJnYmEgdmFsdWUgWyIrW3QsZSxyLG5dLmpvaW4oIiwgIikrIl06ICdhJyBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMS4iOiJJbnZhbGlkIHJnYmEgdmFsdWUgWyIrKCJudW1iZXIiPT10eXBlb2Ygbj9bdCxlLHIsbl06W3QsZSxyXSkuam9pbigiLCAiKSsiXTogJ3InLCAnZycsIGFuZCAnYicgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDI1NS4ifWZ1bmN0aW9uIG9lKHQpe2lmKG51bGw9PT10KXJldHVybiEwO2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4hMDtpZigiYm9vbGVhbiI9PXR5cGVvZiB0KXJldHVybiEwO2lmKCJudW1iZXIiPT10eXBlb2YgdClyZXR1cm4hMDtpZih0IGluc3RhbmNlb2YgdGUpcmV0dXJuITA7aWYodCBpbnN0YW5jZW9mIGVlKXJldHVybiEwO2lmKHQgaW5zdGFuY2VvZiBuZSlyZXR1cm4hMDtpZih0IGluc3RhbmNlb2YgaWUpcmV0dXJuITA7aWYoQXJyYXkuaXNBcnJheSh0KSl7Zm9yKHZhciBlPTAscj10O2U8ci5sZW5ndGg7ZSs9MSl7aWYoIW9lKHJbZV0pKXJldHVybiExfXJldHVybiEwfWlmKCJvYmplY3QiPT10eXBlb2YgdCl7Zm9yKHZhciBuIGluIHQpaWYoIW9lKHRbbl0pKXJldHVybiExO3JldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIHNlKHQpe2lmKG51bGw9PT10KXJldHVybiBGdDtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIE50O2lmKCJib29sZWFuIj09dHlwZW9mIHQpcmV0dXJuIGp0O2lmKCJudW1iZXIiPT10eXBlb2YgdClyZXR1cm4gQnQ7aWYodCBpbnN0YW5jZW9mIHRlKXJldHVybiBVdDtpZih0IGluc3RhbmNlb2YgZWUpcmV0dXJuIHF0O2lmKHQgaW5zdGFuY2VvZiBuZSlyZXR1cm4gR3Q7aWYodCBpbnN0YW5jZW9mIGllKXJldHVybiBZdDtpZihBcnJheS5pc0FycmF5KHQpKXtmb3IodmFyIGUscj10Lmxlbmd0aCxuPTAsaT10O248aS5sZW5ndGg7bis9MSl7dmFyIGE9c2UoaVtuXSk7aWYoZSl7aWYoZT09PWEpY29udGludWU7ZT1IdDticmVha31lPWF9cmV0dXJuIFd0KGV8fEh0LHIpfXJldHVybiBWdH1mdW5jdGlvbiBsZSh0KXt2YXIgZT10eXBlb2YgdDtyZXR1cm4gbnVsbD09PXQ/IiI6InN0cmluZyI9PT1lfHwibnVtYmVyIj09PWV8fCJib29sZWFuIj09PWU/U3RyaW5nKHQpOnQgaW5zdGFuY2VvZiB0ZXx8dCBpbnN0YW5jZW9mIG5lfHx0IGluc3RhbmNlb2YgaWU/dC50b1N0cmluZygpOkpTT04uc3RyaW5naWZ5KHQpfWllLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5hbWV9LGllLmZyb21TdHJpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIHQ/bmV3IGllKHtuYW1lOnQsYXZhaWxhYmxlOiExfSk6bnVsbH0saWUucHJvdG90eXBlLnNlcmlhbGl6ZT1mdW5jdGlvbigpe3JldHVyblsiaW1hZ2UiLHRoaXMubmFtZV19O3ZhciBjZT1mdW5jdGlvbih0LGUpe3RoaXMudHlwZT10LHRoaXMudmFsdWU9ZX07Y2UucGFyc2U9ZnVuY3Rpb24odCxlKXtpZigyIT09dC5sZW5ndGgpcmV0dXJuIGUuZXJyb3IoIidsaXRlcmFsJyBleHByZXNzaW9uIHJlcXVpcmVzIGV4YWN0bHkgb25lIGFyZ3VtZW50LCBidXQgZm91bmQgIisodC5sZW5ndGgtMSkrIiBpbnN0ZWFkLiIpO2lmKCFvZSh0WzFdKSlyZXR1cm4gZS5lcnJvcigiaW52YWxpZCB2YWx1ZSIpO3ZhciByPXRbMV0sbj1zZShyKSxpPWUuZXhwZWN0ZWRUeXBlO3JldHVybiJhcnJheSIhPT1uLmtpbmR8fDAhPT1uLk58fCFpfHwiYXJyYXkiIT09aS5raW5kfHwibnVtYmVyIj09dHlwZW9mIGkuTiYmMCE9PWkuTnx8KG49aSksbmV3IGNlKG4scil9LGNlLnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlfSxjZS5wcm90b3R5cGUuZWFjaENoaWxkPWZ1bmN0aW9uKCl7fSxjZS5wcm90b3R5cGUub3V0cHV0RGVmaW5lZD1mdW5jdGlvbigpe3JldHVybiEwfSxjZS5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7cmV0dXJuImFycmF5Ij09PXRoaXMudHlwZS5raW5kfHwib2JqZWN0Ij09PXRoaXMudHlwZS5raW5kP1sibGl0ZXJhbCIsdGhpcy52YWx1ZV06dGhpcy52YWx1ZSBpbnN0YW5jZW9mIHRlP1sicmdiYSJdLmNvbmNhdCh0aGlzLnZhbHVlLnRvQXJyYXkoKSk6dGhpcy52YWx1ZSBpbnN0YW5jZW9mIG5lP3RoaXMudmFsdWUuc2VyaWFsaXplKCk6dGhpcy52YWx1ZX07dmFyIHVlPWZ1bmN0aW9uKHQpe3RoaXMubmFtZT0iRXhwcmVzc2lvbkV2YWx1YXRpb25FcnJvciIsdGhpcy5tZXNzYWdlPXR9O3VlLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tZXNzYWdlfTt2YXIgZmU9e3N0cmluZzpOdCxudW1iZXI6QnQsYm9vbGVhbjpqdCxvYmplY3Q6VnR9LGhlPWZ1bmN0aW9uKHQsZSl7dGhpcy50eXBlPXQsdGhpcy5hcmdzPWV9O2hlLnBhcnNlPWZ1bmN0aW9uKHQsZSl7aWYodC5sZW5ndGg8MilyZXR1cm4gZS5lcnJvcigiRXhwZWN0ZWQgYXQgbGVhc3Qgb25lIGFyZ3VtZW50LiIpO3ZhciByLG49MSxpPXRbMF07aWYoImFycmF5Ij09PWkpe3ZhciBhLG87aWYodC5sZW5ndGg+Mil7dmFyIHM9dFsxXTtpZigic3RyaW5nIiE9dHlwZW9mIHN8fCEocyBpbiBmZSl8fCJvYmplY3QiPT09cylyZXR1cm4gZS5lcnJvcignVGhlIGl0ZW0gdHlwZSBhcmd1bWVudCBvZiAiYXJyYXkiIG11c3QgYmUgb25lIG9mIHN0cmluZywgbnVtYmVyLCBib29sZWFuJywxKTthPWZlW3NdLG4rK31lbHNlIGE9SHQ7aWYodC5sZW5ndGg+Myl7aWYobnVsbCE9PXRbMl0mJigibnVtYmVyIiE9dHlwZW9mIHRbMl18fHRbMl08MHx8dFsyXSE9PU1hdGguZmxvb3IodFsyXSkpKXJldHVybiBlLmVycm9yKCdUaGUgbGVuZ3RoIGFyZ3VtZW50IHRvICJhcnJheSIgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIgbGl0ZXJhbCcsMik7bz10WzJdLG4rK31yPVd0KGEsbyl9ZWxzZSByPWZlW2ldO2Zvcih2YXIgbD1bXTtuPHQubGVuZ3RoO24rKyl7dmFyIGM9ZS5wYXJzZSh0W25dLG4sSHQpO2lmKCFjKXJldHVybiBudWxsO2wucHVzaChjKX1yZXR1cm4gbmV3IGhlKHIsbCl9LGhlLnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPHRoaXMuYXJncy5sZW5ndGg7ZSsrKXt2YXIgcj10aGlzLmFyZ3NbZV0uZXZhbHVhdGUodCk7aWYoIUp0KHRoaXMudHlwZSxzZShyKSkpcmV0dXJuIHI7aWYoZT09PXRoaXMuYXJncy5sZW5ndGgtMSl0aHJvdyBuZXcgdWUoIkV4cGVjdGVkIHZhbHVlIHRvIGJlIG9mIHR5cGUgIitYdCh0aGlzLnR5cGUpKyIsIGJ1dCBmb3VuZCAiK1h0KHNlKHIpKSsiIGluc3RlYWQuIil9cmV0dXJuIG51bGx9LGhlLnByb3RvdHlwZS5lYWNoQ2hpbGQ9ZnVuY3Rpb24odCl7dGhpcy5hcmdzLmZvckVhY2godCl9LGhlLnByb3RvdHlwZS5vdXRwdXREZWZpbmVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXJncy5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIHQub3V0cHV0RGVmaW5lZCgpfSkpfSxoZS5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy50eXBlLGU9W3Qua2luZF07aWYoImFycmF5Ij09PXQua2luZCl7dmFyIHI9dC5pdGVtVHlwZTtpZigic3RyaW5nIj09PXIua2luZHx8Im51bWJlciI9PT1yLmtpbmR8fCJib29sZWFuIj09PXIua2luZCl7ZS5wdXNoKHIua2luZCk7dmFyIG49dC5OOygibnVtYmVyIj09dHlwZW9mIG58fHRoaXMuYXJncy5sZW5ndGg+MSkmJmUucHVzaChuKX19cmV0dXJuIGUuY29uY2F0KHRoaXMuYXJncy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnNlcmlhbGl6ZSgpfSkpKX07dmFyIHBlPWZ1bmN0aW9uKHQpe3RoaXMudHlwZT1HdCx0aGlzLnNlY3Rpb25zPXR9O3BlLnBhcnNlPWZ1bmN0aW9uKHQsZSl7aWYodC5sZW5ndGg8MilyZXR1cm4gZS5lcnJvcigiRXhwZWN0ZWQgYXQgbGVhc3Qgb25lIGFyZ3VtZW50LiIpO3ZhciByPXRbMV07aWYoIUFycmF5LmlzQXJyYXkocikmJiJvYmplY3QiPT10eXBlb2YgcilyZXR1cm4gZS5lcnJvcigiRmlyc3QgYXJndW1lbnQgbXVzdCBiZSBhbiBpbWFnZSBvciB0ZXh0IHNlY3Rpb24uIik7Zm9yKHZhciBuPVtdLGk9ITEsYT0xO2E8PXQubGVuZ3RoLTE7KythKXt2YXIgbz10W2FdO2lmKGkmJiJvYmplY3QiPT10eXBlb2YgbyYmIUFycmF5LmlzQXJyYXkobykpe2k9ITE7dmFyIHM9bnVsbDtpZihvWyJmb250LXNjYWxlIl0mJiEocz1lLnBhcnNlKG9bImZvbnQtc2NhbGUiXSwxLEJ0KSkpcmV0dXJuIG51bGw7dmFyIGw9bnVsbDtpZihvWyJ0ZXh0LWZvbnQiXSYmIShsPWUucGFyc2Uob1sidGV4dC1mb250Il0sMSxXdChOdCkpKSlyZXR1cm4gbnVsbDt2YXIgYz1udWxsO2lmKG9bInRleHQtY29sb3IiXSYmIShjPWUucGFyc2Uob1sidGV4dC1jb2xvciJdLDEsVXQpKSlyZXR1cm4gbnVsbDt2YXIgdT1uW24ubGVuZ3RoLTFdO3Uuc2NhbGU9cyx1LmZvbnQ9bCx1LnRleHRDb2xvcj1jfWVsc2V7dmFyIGY9ZS5wYXJzZSh0W2FdLDEsSHQpO2lmKCFmKXJldHVybiBudWxsO3ZhciBoPWYudHlwZS5raW5kO2lmKCJzdHJpbmciIT09aCYmInZhbHVlIiE9PWgmJiJudWxsIiE9PWgmJiJyZXNvbHZlZEltYWdlIiE9PWgpcmV0dXJuIGUuZXJyb3IoIkZvcm1hdHRlZCB0ZXh0IHR5cGUgbXVzdCBiZSAnc3RyaW5nJywgJ3ZhbHVlJywgJ2ltYWdlJyBvciAnbnVsbCcuIik7aT0hMCxuLnB1c2goe2NvbnRlbnQ6ZixzY2FsZTpudWxsLGZvbnQ6bnVsbCx0ZXh0Q29sb3I6bnVsbH0pfX1yZXR1cm4gbmV3IHBlKG4pfSxwZS5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBuZSh0aGlzLnNlY3Rpb25zLm1hcCgoZnVuY3Rpb24oZSl7dmFyIHI9ZS5jb250ZW50LmV2YWx1YXRlKHQpO3JldHVybiBzZShyKT09PVl0P25ldyByZSgiIixyLG51bGwsbnVsbCxudWxsKTpuZXcgcmUobGUociksbnVsbCxlLnNjYWxlP2Uuc2NhbGUuZXZhbHVhdGUodCk6bnVsbCxlLmZvbnQ/ZS5mb250LmV2YWx1YXRlKHQpLmpvaW4oIiwiKTpudWxsLGUudGV4dENvbG9yP2UudGV4dENvbG9yLmV2YWx1YXRlKHQpOm51bGwpfSkpKX0scGUucHJvdG90eXBlLmVhY2hDaGlsZD1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxyPXRoaXMuc2VjdGlvbnM7ZTxyLmxlbmd0aDtlKz0xKXt2YXIgbj1yW2VdO3Qobi5jb250ZW50KSxuLnNjYWxlJiZ0KG4uc2NhbGUpLG4uZm9udCYmdChuLmZvbnQpLG4udGV4dENvbG9yJiZ0KG4udGV4dENvbG9yKX19LHBlLnByb3RvdHlwZS5vdXRwdXREZWZpbmVkPWZ1bmN0aW9uKCl7cmV0dXJuITF9LHBlLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9WyJmb3JtYXQiXSxlPTAscj10aGlzLnNlY3Rpb25zO2U8ci5sZW5ndGg7ZSs9MSl7dmFyIG49cltlXTt0LnB1c2gobi5jb250ZW50LnNlcmlhbGl6ZSgpKTt2YXIgaT17fTtuLnNjYWxlJiYoaVsiZm9udC1zY2FsZSJdPW4uc2NhbGUuc2VyaWFsaXplKCkpLG4uZm9udCYmKGlbInRleHQtZm9udCJdPW4uZm9udC5zZXJpYWxpemUoKSksbi50ZXh0Q29sb3ImJihpWyJ0ZXh0LWNvbG9yIl09bi50ZXh0Q29sb3Iuc2VyaWFsaXplKCkpLHQucHVzaChpKX1yZXR1cm4gdH07dmFyIGRlPWZ1bmN0aW9uKHQpe3RoaXMudHlwZT1ZdCx0aGlzLmlucHV0PXR9O2RlLnBhcnNlPWZ1bmN0aW9uKHQsZSl7aWYoMiE9PXQubGVuZ3RoKXJldHVybiBlLmVycm9yKCJFeHBlY3RlZCB0d28gYXJndW1lbnRzLiIpO3ZhciByPWUucGFyc2UodFsxXSwxLE50KTtyZXR1cm4gcj9uZXcgZGUocik6ZS5lcnJvcigiTm8gaW1hZ2UgbmFtZSBwcm92aWRlZC4iKX0sZGUucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaW5wdXQuZXZhbHVhdGUodCkscj1pZS5mcm9tU3RyaW5nKGUpO3JldHVybiByJiZ0LmF2YWlsYWJsZUltYWdlcyYmKHIuYXZhaWxhYmxlPXQuYXZhaWxhYmxlSW1hZ2VzLmluZGV4T2YoZSk+LTEpLHJ9LGRlLnByb3RvdHlwZS5lYWNoQ2hpbGQ9ZnVuY3Rpb24odCl7dCh0aGlzLmlucHV0KX0sZGUucHJvdG90eXBlLm91dHB1dERlZmluZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMX0sZGUucHJvdG90eXBlLnNlcmlhbGl6ZT1mdW5jdGlvbigpe3JldHVyblsiaW1hZ2UiLHRoaXMuaW5wdXQuc2VyaWFsaXplKCldfTt2YXIgbWU9eyJ0by1ib29sZWFuIjpqdCwidG8tY29sb3IiOlV0LCJ0by1udW1iZXIiOkJ0LCJ0by1zdHJpbmciOk50fSxnZT1mdW5jdGlvbih0LGUpe3RoaXMudHlwZT10LHRoaXMuYXJncz1lfTtnZS5wYXJzZT1mdW5jdGlvbih0LGUpe2lmKHQubGVuZ3RoPDIpcmV0dXJuIGUuZXJyb3IoIkV4cGVjdGVkIGF0IGxlYXN0IG9uZSBhcmd1bWVudC4iKTt2YXIgcj10WzBdO2lmKCgidG8tYm9vbGVhbiI9PT1yfHwidG8tc3RyaW5nIj09PXIpJiYyIT09dC5sZW5ndGgpcmV0dXJuIGUuZXJyb3IoIkV4cGVjdGVkIG9uZSBhcmd1bWVudC4iKTtmb3IodmFyIG49bWVbcl0saT1bXSxhPTE7YTx0Lmxlbmd0aDthKyspe3ZhciBvPWUucGFyc2UodFthXSxhLEh0KTtpZighbylyZXR1cm4gbnVsbDtpLnB1c2gobyl9cmV0dXJuIG5ldyBnZShuLGkpfSxnZS5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24odCl7aWYoImJvb2xlYW4iPT09dGhpcy50eXBlLmtpbmQpcmV0dXJuIEJvb2xlYW4odGhpcy5hcmdzWzBdLmV2YWx1YXRlKHQpKTtpZigiY29sb3IiPT09dGhpcy50eXBlLmtpbmQpe2Zvcih2YXIgZSxyLG49MCxpPXRoaXMuYXJncztuPGkubGVuZ3RoO24rPTEpe2lmKHI9bnVsbCwoZT1pW25dLmV2YWx1YXRlKHQpKWluc3RhbmNlb2YgdGUpcmV0dXJuIGU7aWYoInN0cmluZyI9PXR5cGVvZiBlKXt2YXIgYT10LnBhcnNlQ29sb3IoZSk7aWYoYSlyZXR1cm4gYX1lbHNlIGlmKEFycmF5LmlzQXJyYXkoZSkmJiEocj1lLmxlbmd0aDwzfHxlLmxlbmd0aD40PyJJbnZhbGlkIHJiZ2EgdmFsdWUgIitKU09OLnN0cmluZ2lmeShlKSsiOiBleHBlY3RlZCBhbiBhcnJheSBjb250YWluaW5nIGVpdGhlciB0aHJlZSBvciBmb3VyIG51bWVyaWMgdmFsdWVzLiI6YWUoZVswXSxlWzFdLGVbMl0sZVszXSkpKXJldHVybiBuZXcgdGUoZVswXS8yNTUsZVsxXS8yNTUsZVsyXS8yNTUsZVszXSl9dGhyb3cgbmV3IHVlKHJ8fCJDb3VsZCBub3QgcGFyc2UgY29sb3IgZnJvbSB2YWx1ZSAnIisoInN0cmluZyI9PXR5cGVvZiBlP2U6U3RyaW5nKEpTT04uc3RyaW5naWZ5KGUpKSkrIiciKX1pZigibnVtYmVyIj09PXRoaXMudHlwZS5raW5kKXtmb3IodmFyIG89bnVsbCxzPTAsbD10aGlzLmFyZ3M7czxsLmxlbmd0aDtzKz0xKXtpZihudWxsPT09KG89bFtzXS5ldmFsdWF0ZSh0KSkpcmV0dXJuIDA7dmFyIGM9TnVtYmVyKG8pO2lmKCFpc05hTihjKSlyZXR1cm4gY310aHJvdyBuZXcgdWUoIkNvdWxkIG5vdCBjb252ZXJ0ICIrSlNPTi5zdHJpbmdpZnkobykrIiB0byBudW1iZXIuIil9cmV0dXJuImZvcm1hdHRlZCI9PT10aGlzLnR5cGUua2luZD9uZS5mcm9tU3RyaW5nKGxlKHRoaXMuYXJnc1swXS5ldmFsdWF0ZSh0KSkpOiJyZXNvbHZlZEltYWdlIj09PXRoaXMudHlwZS5raW5kP2llLmZyb21TdHJpbmcobGUodGhpcy5hcmdzWzBdLmV2YWx1YXRlKHQpKSk6bGUodGhpcy5hcmdzWzBdLmV2YWx1YXRlKHQpKX0sZ2UucHJvdG90eXBlLmVhY2hDaGlsZD1mdW5jdGlvbih0KXt0aGlzLmFyZ3MuZm9yRWFjaCh0KX0sZ2UucHJvdG90eXBlLm91dHB1dERlZmluZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hcmdzLmV2ZXJ5KChmdW5jdGlvbih0KXtyZXR1cm4gdC5vdXRwdXREZWZpbmVkKCl9KSl9LGdlLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXtpZigiZm9ybWF0dGVkIj09PXRoaXMudHlwZS5raW5kKXJldHVybiBuZXcgcGUoW3tjb250ZW50OnRoaXMuYXJnc1swXSxzY2FsZTpudWxsLGZvbnQ6bnVsbCx0ZXh0Q29sb3I6bnVsbH1dKS5zZXJpYWxpemUoKTtpZigicmVzb2x2ZWRJbWFnZSI9PT10aGlzLnR5cGUua2luZClyZXR1cm4gbmV3IGRlKHRoaXMuYXJnc1swXSkuc2VyaWFsaXplKCk7dmFyIHQ9WyJ0by0iK3RoaXMudHlwZS5raW5kXTtyZXR1cm4gdGhpcy5lYWNoQ2hpbGQoKGZ1bmN0aW9uKGUpe3QucHVzaChlLnNlcmlhbGl6ZSgpKX0pKSx0fTt2YXIgdmU9WyJVbmtub3duIiwiUG9pbnQiLCJMaW5lU3RyaW5nIiwiUG9seWdvbiJdLHllPWZ1bmN0aW9uKCl7dGhpcy5nbG9iYWxzPW51bGwsdGhpcy5mZWF0dXJlPW51bGwsdGhpcy5mZWF0dXJlU3RhdGU9bnVsbCx0aGlzLmZvcm1hdHRlZFNlY3Rpb249bnVsbCx0aGlzLl9wYXJzZUNvbG9yQ2FjaGU9e30sdGhpcy5hdmFpbGFibGVJbWFnZXM9bnVsbCx0aGlzLmNhbm9uaWNhbD1udWxsfTt5ZS5wcm90b3R5cGUuaWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5mZWF0dXJlJiYiaWQiaW4gdGhpcy5mZWF0dXJlP3RoaXMuZmVhdHVyZS5pZDpudWxsfSx5ZS5wcm90b3R5cGUuZ2VvbWV0cnlUeXBlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmVhdHVyZT8ibnVtYmVyIj09dHlwZW9mIHRoaXMuZmVhdHVyZS50eXBlP3ZlW3RoaXMuZmVhdHVyZS50eXBlXTp0aGlzLmZlYXR1cmUudHlwZTpudWxsfSx5ZS5wcm90b3R5cGUuZ2VvbWV0cnk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5mZWF0dXJlJiYiZ2VvbWV0cnkiaW4gdGhpcy5mZWF0dXJlP3RoaXMuZmVhdHVyZS5nZW9tZXRyeTpudWxsfSx5ZS5wcm90b3R5cGUuY2Fub25pY2FsSUQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jYW5vbmljYWx9LHllLnByb3RvdHlwZS5wcm9wZXJ0aWVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmVhdHVyZSYmdGhpcy5mZWF0dXJlLnByb3BlcnRpZXN8fHt9fSx5ZS5wcm90b3R5cGUucGFyc2VDb2xvcj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9wYXJzZUNvbG9yQ2FjaGVbdF07cmV0dXJuIGV8fChlPXRoaXMuX3BhcnNlQ29sb3JDYWNoZVt0XT10ZS5wYXJzZSh0KSksZX07dmFyIHhlPWZ1bmN0aW9uKHQsZSxyLG4pe3RoaXMubmFtZT10LHRoaXMudHlwZT1lLHRoaXMuX2V2YWx1YXRlPXIsdGhpcy5hcmdzPW59O3hlLnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZXZhbHVhdGUodCx0aGlzLmFyZ3MpfSx4ZS5wcm90b3R5cGUuZWFjaENoaWxkPWZ1bmN0aW9uKHQpe3RoaXMuYXJncy5mb3JFYWNoKHQpfSx4ZS5wcm90b3R5cGUub3V0cHV0RGVmaW5lZD1mdW5jdGlvbigpe3JldHVybiExfSx4ZS5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7cmV0dXJuW3RoaXMubmFtZV0uY29uY2F0KHRoaXMuYXJncy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnNlcmlhbGl6ZSgpfSkpKX0seGUucGFyc2U9ZnVuY3Rpb24odCxlKXt2YXIgcixuPXRbMF0saT14ZS5kZWZpbml0aW9uc1tuXTtpZighaSlyZXR1cm4gZS5lcnJvcignVW5rbm93biBleHByZXNzaW9uICInK24rJyIuIElmIHlvdSB3YW50ZWQgYSBsaXRlcmFsIGFycmF5LCB1c2UgWyJsaXRlcmFsIiwgWy4uLl1dLicsMCk7Zm9yKHZhciBhPUFycmF5LmlzQXJyYXkoaSk/aVswXTppLnR5cGUsbz1BcnJheS5pc0FycmF5KGkpP1tbaVsxXSxpWzJdXV06aS5vdmVybG9hZHMscz1vLmZpbHRlcigoZnVuY3Rpb24oZSl7dmFyIHI9ZVswXTtyZXR1cm4hQXJyYXkuaXNBcnJheShyKXx8ci5sZW5ndGg9PT10Lmxlbmd0aC0xfSkpLGw9bnVsbCxjPTAsdT1zO2M8dS5sZW5ndGg7Yys9MSl7dmFyIGY9dVtjXSxoPWZbMF0scD1mWzFdO2w9bmV3IFVlKGUucmVnaXN0cnksZS5wYXRoLG51bGwsZS5zY29wZSk7Zm9yKHZhciBkPVtdLG09ITEsZz0xO2c8dC5sZW5ndGg7ZysrKXt2YXIgdj10W2ddLHk9QXJyYXkuaXNBcnJheShoKT9oW2ctMV06aC50eXBlLHg9bC5wYXJzZSh2LDErZC5sZW5ndGgseSk7aWYoIXgpe209ITA7YnJlYWt9ZC5wdXNoKHgpfWlmKCFtKWlmKEFycmF5LmlzQXJyYXkoaCkmJmgubGVuZ3RoIT09ZC5sZW5ndGgpbC5lcnJvcigiRXhwZWN0ZWQgIitoLmxlbmd0aCsiIGFyZ3VtZW50cywgYnV0IGZvdW5kICIrZC5sZW5ndGgrIiBpbnN0ZWFkLiIpO2Vsc2V7Zm9yKHZhciBiPTA7YjxkLmxlbmd0aDtiKyspe3ZhciBfPUFycmF5LmlzQXJyYXkoaCk/aFtiXTpoLnR5cGUsdz1kW2JdO2wuY29uY2F0KGIrMSkuY2hlY2tTdWJ0eXBlKF8sdy50eXBlKX1pZigwPT09bC5lcnJvcnMubGVuZ3RoKXJldHVybiBuZXcgeGUobixhLHAsZCl9fWlmKDE9PT1zLmxlbmd0aCkocj1lLmVycm9ycykucHVzaC5hcHBseShyLGwuZXJyb3JzKTtlbHNle2Zvcih2YXIgVD0ocy5sZW5ndGg/czpvKS5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBlLHI9dFswXTtyZXR1cm4gZT1yLEFycmF5LmlzQXJyYXkoZSk/IigiK2UubWFwKFh0KS5qb2luKCIsICIpKyIpIjoiKCIrWHQoZS50eXBlKSsiLi4uKSJ9KSkuam9pbigiIHwgIiksaz1bXSxBPTE7QTx0Lmxlbmd0aDtBKyspe3ZhciBNPWUucGFyc2UodFtBXSwxK2subGVuZ3RoKTtpZighTSlyZXR1cm4gbnVsbDtrLnB1c2goWHQoTS50eXBlKSl9ZS5lcnJvcigiRXhwZWN0ZWQgYXJndW1lbnRzIG9mIHR5cGUgIitUKyIsIGJ1dCBmb3VuZCAoIitrLmpvaW4oIiwgIikrIikgaW5zdGVhZC4iKX1yZXR1cm4gbnVsbH0seGUucmVnaXN0ZXI9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHIgaW4geGUuZGVmaW5pdGlvbnM9ZSxlKXRbcl09eGV9O3ZhciBiZT1mdW5jdGlvbih0LGUscil7dGhpcy50eXBlPXF0LHRoaXMubG9jYWxlPXIsdGhpcy5jYXNlU2Vuc2l0aXZlPXQsdGhpcy5kaWFjcml0aWNTZW5zaXRpdmU9ZX07YmUucGFyc2U9ZnVuY3Rpb24odCxlKXtpZigyIT09dC5sZW5ndGgpcmV0dXJuIGUuZXJyb3IoIkV4cGVjdGVkIG9uZSBhcmd1bWVudC4iKTt2YXIgcj10WzFdO2lmKCJvYmplY3QiIT10eXBlb2Ygcnx8QXJyYXkuaXNBcnJheShyKSlyZXR1cm4gZS5lcnJvcigiQ29sbGF0b3Igb3B0aW9ucyBhcmd1bWVudCBtdXN0IGJlIGFuIG9iamVjdC4iKTt2YXIgbj1lLnBhcnNlKHZvaWQgMCE9PXJbImNhc2Utc2Vuc2l0aXZlIl0mJnJbImNhc2Utc2Vuc2l0aXZlIl0sMSxqdCk7aWYoIW4pcmV0dXJuIG51bGw7dmFyIGk9ZS5wYXJzZSh2b2lkIDAhPT1yWyJkaWFjcml0aWMtc2Vuc2l0aXZlIl0mJnJbImRpYWNyaXRpYy1zZW5zaXRpdmUiXSwxLGp0KTtpZighaSlyZXR1cm4gbnVsbDt2YXIgYT1udWxsO3JldHVybiByLmxvY2FsZSYmIShhPWUucGFyc2Uoci5sb2NhbGUsMSxOdCkpP251bGw6bmV3IGJlKG4saSxhKX0sYmUucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgZWUodGhpcy5jYXNlU2Vuc2l0aXZlLmV2YWx1YXRlKHQpLHRoaXMuZGlhY3JpdGljU2Vuc2l0aXZlLmV2YWx1YXRlKHQpLHRoaXMubG9jYWxlP3RoaXMubG9jYWxlLmV2YWx1YXRlKHQpOm51bGwpfSxiZS5wcm90b3R5cGUuZWFjaENoaWxkPWZ1bmN0aW9uKHQpe3QodGhpcy5jYXNlU2Vuc2l0aXZlKSx0KHRoaXMuZGlhY3JpdGljU2Vuc2l0aXZlKSx0aGlzLmxvY2FsZSYmdCh0aGlzLmxvY2FsZSl9LGJlLnByb3RvdHlwZS5vdXRwdXREZWZpbmVkPWZ1bmN0aW9uKCl7cmV0dXJuITF9LGJlLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXt2YXIgdD17fTtyZXR1cm4gdFsiY2FzZS1zZW5zaXRpdmUiXT10aGlzLmNhc2VTZW5zaXRpdmUuc2VyaWFsaXplKCksdFsiZGlhY3JpdGljLXNlbnNpdGl2ZSJdPXRoaXMuZGlhY3JpdGljU2Vuc2l0aXZlLnNlcmlhbGl6ZSgpLHRoaXMubG9jYWxlJiYodC5sb2NhbGU9dGhpcy5sb2NhbGUuc2VyaWFsaXplKCkpLFsiY29sbGF0b3IiLHRdfTtmdW5jdGlvbiBfZSh0LGUpe3RbMF09TWF0aC5taW4odFswXSxlWzBdKSx0WzFdPU1hdGgubWluKHRbMV0sZVsxXSksdFsyXT1NYXRoLm1heCh0WzJdLGVbMF0pLHRbM109TWF0aC5tYXgodFszXSxlWzFdKX1mdW5jdGlvbiB3ZSh0LGUpe3JldHVybiEodFswXTw9ZVswXSkmJighKHRbMl0+PWVbMl0pJiYoISh0WzFdPD1lWzFdKSYmISh0WzNdPj1lWzNdKSkpfWZ1bmN0aW9uIFRlKHQsZSl7dmFyIHIsbj0oMTgwK3RbMF0pLzM2MCxpPShyPXRbMV0sKDE4MC0xODAvTWF0aC5QSSpNYXRoLmxvZyhNYXRoLnRhbihNYXRoLlBJLzQrcipNYXRoLlBJLzM2MCkpKS8zNjApLGE9TWF0aC5wb3coMixlLnopO3JldHVybltNYXRoLnJvdW5kKG4qYSo4MTkyKSxNYXRoLnJvdW5kKGkqYSo4MTkyKV19ZnVuY3Rpb24ga2UodCxlLHIpe3JldHVybiBlWzFdPnRbMV0hPXJbMV0+dFsxXSYmdFswXTwoclswXS1lWzBdKSoodFsxXS1lWzFdKS8oclsxXS1lWzFdKStlWzBdfWZ1bmN0aW9uIEFlKHQsZSl7Zm9yKHZhciByLG4saSxhLG8scyxsLGM9ITEsdT0wLGY9ZS5sZW5ndGg7dTxmO3UrKylmb3IodmFyIGg9ZVt1XSxwPTAsZD1oLmxlbmd0aDtwPGQtMTtwKyspe2lmKHI9dCxuPWhbcF0saT1oW3ArMV0sYT12b2lkIDAsbz12b2lkIDAscz12b2lkIDAsbD12b2lkIDAsYT1yWzBdLW5bMF0sbz1yWzFdLW5bMV0scz1yWzBdLWlbMF0sbD1yWzFdLWlbMV0sYSpsLXMqbz09MCYmYSpzPD0wJiZvKmw8PTApcmV0dXJuITE7a2UodCxoW3BdLGhbcCsxXSkmJihjPSFjKX1yZXR1cm4gY31mdW5jdGlvbiBNZSh0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKWlmKEFlKHQsZVtyXSkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gU2UodCxlLHIsbil7dmFyIGk9dFswXS1yWzBdLGE9dFsxXS1yWzFdLG89ZVswXS1yWzBdLHM9ZVsxXS1yWzFdLGw9blswXS1yWzBdLGM9blsxXS1yWzFdLHU9aSpjLWwqYSxmPW8qYy1sKnM7cmV0dXJuIHU+MCYmZjwwfHx1PDAmJmY+MH1mdW5jdGlvbiBFZSh0LGUscil7Zm9yKHZhciBuPTAsaT1yO248aS5sZW5ndGg7bis9MSlmb3IodmFyIGE9aVtuXSxvPTA7bzxhLmxlbmd0aC0xOysrbylpZihzPXQsbD1lLGM9YVtvXSx1PWFbbysxXSxmPXZvaWQgMCxoPXZvaWQgMCxwPXZvaWQgMCxkPXZvaWQgMCxwPVtsWzBdLXNbMF0sbFsxXS1zWzFdXSxkPVt1WzBdLWNbMF0sdVsxXS1jWzFdXSwwIT0oZj1kKVswXSooaD1wKVsxXS1mWzFdKmhbMF0mJlNlKHMsbCxjLHUpJiZTZShjLHUscyxsKSlyZXR1cm4hMDt2YXIgcyxsLGMsdSxmLGgscCxkO3JldHVybiExfWZ1bmN0aW9uIExlKHQsZSl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDsrK3IpaWYoIUFlKHRbcl0sZSkpcmV0dXJuITE7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aC0xOysrbilpZihFZSh0W25dLHRbbisxXSxlKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBDZSh0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKWlmKExlKHQsZVtyXSkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gUGUodCxlLHIpe2Zvcih2YXIgbj1bXSxpPTA7aTx0Lmxlbmd0aDtpKyspe2Zvcih2YXIgYT1bXSxvPTA7bzx0W2ldLmxlbmd0aDtvKyspe3ZhciBzPVRlKHRbaV1bb10scik7X2UoZSxzKSxhLnB1c2gocyl9bi5wdXNoKGEpfXJldHVybiBufWZ1bmN0aW9uIEllKHQsZSxyKXtmb3IodmFyIG49W10saT0wO2k8dC5sZW5ndGg7aSsrKXt2YXIgYT1QZSh0W2ldLGUscik7bi5wdXNoKGEpfXJldHVybiBufWZ1bmN0aW9uIE9lKHQsZSxyLG4pe2lmKHRbMF08clswXXx8dFswXT5yWzJdKXt2YXIgaT0uNSpuLGE9dFswXS1yWzBdPmk/LW46clswXS10WzBdPmk/bjowOzA9PT1hJiYoYT10WzBdLXJbMl0+aT8tbjpyWzJdLXRbMF0+aT9uOjApLHRbMF0rPWF9X2UoZSx0KX1mdW5jdGlvbiB6ZSh0LGUscixuKXtmb3IodmFyIGk9ODE5MipNYXRoLnBvdygyLG4ueiksYT1bODE5MipuLngsODE5MipuLnldLG89W10scz0wLGw9dDtzPGwubGVuZ3RoO3MrPTEpZm9yKHZhciBjPTAsdT1sW3NdO2M8dS5sZW5ndGg7Yys9MSl7dmFyIGY9dVtjXSxoPVtmLngrYVswXSxmLnkrYVsxXV07T2UoaCxlLHIsaSksby5wdXNoKGgpfXJldHVybiBvfWZ1bmN0aW9uIERlKHQsZSxyLG4pe2Zvcih2YXIgaSxhPTgxOTIqTWF0aC5wb3coMixuLnopLG89WzgxOTIqbi54LDgxOTIqbi55XSxzPVtdLGw9MCxjPXQ7bDxjLmxlbmd0aDtsKz0xKXtmb3IodmFyIHU9W10sZj0wLGg9Y1tsXTtmPGgubGVuZ3RoO2YrPTEpe3ZhciBwPWhbZl0sZD1bcC54K29bMF0scC55K29bMV1dO19lKGUsZCksdS5wdXNoKGQpfXMucHVzaCh1KX1pZihlWzJdLWVbMF08PWEvMil7KGk9ZSlbMF09aVsxXT0xLzAsaVsyXT1pWzNdPS0xLzA7Zm9yKHZhciBtPTAsZz1zO208Zy5sZW5ndGg7bSs9MSlmb3IodmFyIHY9MCx5PWdbbV07djx5Lmxlbmd0aDt2Kz0xKXtPZSh5W3ZdLGUscixhKX19cmV0dXJuIHN9dmFyIFJlPWZ1bmN0aW9uKHQsZSl7dGhpcy50eXBlPWp0LHRoaXMuZ2VvanNvbj10LHRoaXMuZ2VvbWV0cmllcz1lfTtmdW5jdGlvbiBGZSh0KXtpZih0IGluc3RhbmNlb2YgeGUpe2lmKCJnZXQiPT09dC5uYW1lJiYxPT09dC5hcmdzLmxlbmd0aClyZXR1cm4hMTtpZigiZmVhdHVyZS1zdGF0ZSI9PT10Lm5hbWUpcmV0dXJuITE7aWYoImhhcyI9PT10Lm5hbWUmJjE9PT10LmFyZ3MubGVuZ3RoKXJldHVybiExO2lmKCJwcm9wZXJ0aWVzIj09PXQubmFtZXx8Imdlb21ldHJ5LXR5cGUiPT09dC5uYW1lfHwiaWQiPT09dC5uYW1lKXJldHVybiExO2lmKC9eZmlsdGVyLS8udGVzdCh0Lm5hbWUpKXJldHVybiExfWlmKHQgaW5zdGFuY2VvZiBSZSlyZXR1cm4hMTt2YXIgZT0hMDtyZXR1cm4gdC5lYWNoQ2hpbGQoKGZ1bmN0aW9uKHQpe2UmJiFGZSh0KSYmKGU9ITEpfSkpLGV9ZnVuY3Rpb24gQmUodCl7aWYodCBpbnN0YW5jZW9mIHhlJiYiZmVhdHVyZS1zdGF0ZSI9PT10Lm5hbWUpcmV0dXJuITE7dmFyIGU9ITA7cmV0dXJuIHQuZWFjaENoaWxkKChmdW5jdGlvbih0KXtlJiYhQmUodCkmJihlPSExKX0pKSxlfWZ1bmN0aW9uIE5lKHQsZSl7aWYodCBpbnN0YW5jZW9mIHhlJiZlLmluZGV4T2YodC5uYW1lKT49MClyZXR1cm4hMTt2YXIgcj0hMDtyZXR1cm4gdC5lYWNoQ2hpbGQoKGZ1bmN0aW9uKHQpe3ImJiFOZSh0LGUpJiYocj0hMSl9KSkscn1SZS5wYXJzZT1mdW5jdGlvbih0LGUpe2lmKDIhPT10Lmxlbmd0aClyZXR1cm4gZS5lcnJvcigiJ3dpdGhpbicgZXhwcmVzc2lvbiByZXF1aXJlcyBleGFjdGx5IG9uZSBhcmd1bWVudCwgYnV0IGZvdW5kICIrKHQubGVuZ3RoLTEpKyIgaW5zdGVhZC4iKTtpZihvZSh0WzFdKSl7dmFyIHI9dFsxXTtpZigiRmVhdHVyZUNvbGxlY3Rpb24iPT09ci50eXBlKWZvcih2YXIgbj0wO248ci5mZWF0dXJlcy5sZW5ndGg7KytuKXt2YXIgaT1yLmZlYXR1cmVzW25dLmdlb21ldHJ5LnR5cGU7aWYoIlBvbHlnb24iPT09aXx8Ik11bHRpUG9seWdvbiI9PT1pKXJldHVybiBuZXcgUmUocixyLmZlYXR1cmVzW25dLmdlb21ldHJ5KX1lbHNlIGlmKCJGZWF0dXJlIj09PXIudHlwZSl7dmFyIGE9ci5nZW9tZXRyeS50eXBlO2lmKCJQb2x5Z29uIj09PWF8fCJNdWx0aVBvbHlnb24iPT09YSlyZXR1cm4gbmV3IFJlKHIsci5nZW9tZXRyeSl9ZWxzZSBpZigiUG9seWdvbiI9PT1yLnR5cGV8fCJNdWx0aVBvbHlnb24iPT09ci50eXBlKXJldHVybiBuZXcgUmUocixyKX1yZXR1cm4gZS5lcnJvcigiJ3dpdGhpbicgZXhwcmVzc2lvbiByZXF1aXJlcyB2YWxpZCBnZW9qc29uIG9iamVjdCB0aGF0IGNvbnRhaW5zIHBvbHlnb24gZ2VvbWV0cnkgdHlwZS4iKX0sUmUucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKHQpe2lmKG51bGwhPXQuZ2VvbWV0cnkoKSYmbnVsbCE9dC5jYW5vbmljYWxJRCgpKXtpZigiUG9pbnQiPT09dC5nZW9tZXRyeVR5cGUoKSlyZXR1cm4gZnVuY3Rpb24odCxlKXt2YXIgcj1bMS8wLDEvMCwtMS8wLC0xLzBdLG49WzEvMCwxLzAsLTEvMCwtMS8wXSxpPXQuY2Fub25pY2FsSUQoKTtpZigiUG9seWdvbiI9PT1lLnR5cGUpe3ZhciBhPVBlKGUuY29vcmRpbmF0ZXMsbixpKSxvPXplKHQuZ2VvbWV0cnkoKSxyLG4saSk7aWYoIXdlKHIsbikpcmV0dXJuITE7Zm9yKHZhciBzPTAsbD1vO3M8bC5sZW5ndGg7cys9MSl7aWYoIUFlKGxbc10sYSkpcmV0dXJuITF9fWlmKCJNdWx0aVBvbHlnb24iPT09ZS50eXBlKXt2YXIgYz1JZShlLmNvb3JkaW5hdGVzLG4saSksdT16ZSh0Lmdlb21ldHJ5KCkscixuLGkpO2lmKCF3ZShyLG4pKXJldHVybiExO2Zvcih2YXIgZj0wLGg9dTtmPGgubGVuZ3RoO2YrPTEpe2lmKCFNZShoW2ZdLGMpKXJldHVybiExfX1yZXR1cm4hMH0odCx0aGlzLmdlb21ldHJpZXMpO2lmKCJMaW5lU3RyaW5nIj09PXQuZ2VvbWV0cnlUeXBlKCkpcmV0dXJuIGZ1bmN0aW9uKHQsZSl7dmFyIHI9WzEvMCwxLzAsLTEvMCwtMS8wXSxuPVsxLzAsMS8wLC0xLzAsLTEvMF0saT10LmNhbm9uaWNhbElEKCk7aWYoIlBvbHlnb24iPT09ZS50eXBlKXt2YXIgYT1QZShlLmNvb3JkaW5hdGVzLG4saSksbz1EZSh0Lmdlb21ldHJ5KCkscixuLGkpO2lmKCF3ZShyLG4pKXJldHVybiExO2Zvcih2YXIgcz0wLGw9bztzPGwubGVuZ3RoO3MrPTEpe2lmKCFMZShsW3NdLGEpKXJldHVybiExfX1pZigiTXVsdGlQb2x5Z29uIj09PWUudHlwZSl7dmFyIGM9SWUoZS5jb29yZGluYXRlcyxuLGkpLHU9RGUodC5nZW9tZXRyeSgpLHIsbixpKTtpZighd2UocixuKSlyZXR1cm4hMTtmb3IodmFyIGY9MCxoPXU7ZjxoLmxlbmd0aDtmKz0xKXtpZighQ2UoaFtmXSxjKSlyZXR1cm4hMX19cmV0dXJuITB9KHQsdGhpcy5nZW9tZXRyaWVzKX1yZXR1cm4hMX0sUmUucHJvdG90eXBlLmVhY2hDaGlsZD1mdW5jdGlvbigpe30sUmUucHJvdG90eXBlLm91dHB1dERlZmluZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sUmUucHJvdG90eXBlLnNlcmlhbGl6ZT1mdW5jdGlvbigpe3JldHVyblsid2l0aGluIix0aGlzLmdlb2pzb25dfTt2YXIgamU9ZnVuY3Rpb24odCxlKXt0aGlzLnR5cGU9ZS50eXBlLHRoaXMubmFtZT10LHRoaXMuYm91bmRFeHByZXNzaW9uPWV9O2plLnBhcnNlPWZ1bmN0aW9uKHQsZSl7aWYoMiE9PXQubGVuZ3RofHwic3RyaW5nIiE9dHlwZW9mIHRbMV0pcmV0dXJuIGUuZXJyb3IoIid2YXInIGV4cHJlc3Npb24gcmVxdWlyZXMgZXhhY3RseSBvbmUgc3RyaW5nIGxpdGVyYWwgYXJndW1lbnQuIik7dmFyIHI9dFsxXTtyZXR1cm4gZS5zY29wZS5oYXMocik/bmV3IGplKHIsZS5zY29wZS5nZXQocikpOmUuZXJyb3IoJ1Vua25vd24gdmFyaWFibGUgIicrcisnIi4gTWFrZSBzdXJlICInK3IrJyIgaGFzIGJlZW4gYm91bmQgaW4gYW4gZW5jbG9zaW5nICJsZXQiIGV4cHJlc3Npb24gYmVmb3JlIHVzaW5nIGl0LicsMSl9LGplLnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5ib3VuZEV4cHJlc3Npb24uZXZhbHVhdGUodCl9LGplLnByb3RvdHlwZS5lYWNoQ2hpbGQ9ZnVuY3Rpb24oKXt9LGplLnByb3RvdHlwZS5vdXRwdXREZWZpbmVkPWZ1bmN0aW9uKCl7cmV0dXJuITF9LGplLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXtyZXR1cm5bInZhciIsdGhpcy5uYW1lXX07dmFyIFVlPWZ1bmN0aW9uKHQsZSxyLG4saSl7dm9pZCAwPT09ZSYmKGU9W10pLHZvaWQgMD09PW4mJihuPW5ldyBSdCksdm9pZCAwPT09aSYmKGk9W10pLHRoaXMucmVnaXN0cnk9dCx0aGlzLnBhdGg9ZSx0aGlzLmtleT1lLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIlsiK3QrIl0ifSkpLmpvaW4oIiIpLHRoaXMuc2NvcGU9bix0aGlzLmVycm9ycz1pLHRoaXMuZXhwZWN0ZWRUeXBlPXJ9O2Z1bmN0aW9uIFZlKHQsZSl7Zm9yKHZhciByLG4saT10Lmxlbmd0aC0xLGE9MCxvPWkscz0wO2E8PW87KWlmKHI9dFtzPU1hdGguZmxvb3IoKGErbykvMildLG49dFtzKzFdLHI8PWUpe2lmKHM9PT1pfHxlPG4pcmV0dXJuIHM7YT1zKzF9ZWxzZXtpZighKHI+ZSkpdGhyb3cgbmV3IHVlKCJJbnB1dCBpcyBub3QgYSBudW1iZXIuIik7bz1zLTF9cmV0dXJuIDB9VWUucHJvdG90eXBlLnBhcnNlPWZ1bmN0aW9uKHQsZSxyLG4saSl7cmV0dXJuIHZvaWQgMD09PWkmJihpPXt9KSxlP3RoaXMuY29uY2F0KGUscixuKS5fcGFyc2UodCxpKTp0aGlzLl9wYXJzZSh0LGkpfSxVZS5wcm90b3R5cGUuX3BhcnNlPWZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gcih0LGUscil7cmV0dXJuImFzc2VydCI9PT1yP25ldyBoZShlLFt0XSk6ImNvZXJjZSI9PT1yP25ldyBnZShlLFt0XSk6dH1pZihudWxsIT09dCYmInN0cmluZyIhPXR5cGVvZiB0JiYiYm9vbGVhbiIhPXR5cGVvZiB0JiYibnVtYmVyIiE9dHlwZW9mIHR8fCh0PVsibGl0ZXJhbCIsdF0pLEFycmF5LmlzQXJyYXkodCkpe2lmKDA9PT10Lmxlbmd0aClyZXR1cm4gdGhpcy5lcnJvcignRXhwZWN0ZWQgYW4gYXJyYXkgd2l0aCBhdCBsZWFzdCBvbmUgZWxlbWVudC4gSWYgeW91IHdhbnRlZCBhIGxpdGVyYWwgYXJyYXksIHVzZSBbImxpdGVyYWwiLCBbXV0uJyk7dmFyIG49dFswXTtpZigic3RyaW5nIiE9dHlwZW9mIG4pcmV0dXJuIHRoaXMuZXJyb3IoIkV4cHJlc3Npb24gbmFtZSBtdXN0IGJlIGEgc3RyaW5nLCBidXQgZm91bmQgIit0eXBlb2YgbisnIGluc3RlYWQuIElmIHlvdSB3YW50ZWQgYSBsaXRlcmFsIGFycmF5LCB1c2UgWyJsaXRlcmFsIiwgWy4uLl1dLicsMCksbnVsbDt2YXIgaT10aGlzLnJlZ2lzdHJ5W25dO2lmKGkpe3ZhciBhPWkucGFyc2UodCx0aGlzKTtpZighYSlyZXR1cm4gbnVsbDtpZih0aGlzLmV4cGVjdGVkVHlwZSl7dmFyIG89dGhpcy5leHBlY3RlZFR5cGUscz1hLnR5cGU7aWYoInN0cmluZyIhPT1vLmtpbmQmJiJudW1iZXIiIT09by5raW5kJiYiYm9vbGVhbiIhPT1vLmtpbmQmJiJvYmplY3QiIT09by5raW5kJiYiYXJyYXkiIT09by5raW5kfHwidmFsdWUiIT09cy5raW5kKWlmKCJjb2xvciIhPT1vLmtpbmQmJiJmb3JtYXR0ZWQiIT09by5raW5kJiYicmVzb2x2ZWRJbWFnZSIhPT1vLmtpbmR8fCJ2YWx1ZSIhPT1zLmtpbmQmJiJzdHJpbmciIT09cy5raW5kKXtpZih0aGlzLmNoZWNrU3VidHlwZShvLHMpKXJldHVybiBudWxsfWVsc2UgYT1yKGEsbyxlLnR5cGVBbm5vdGF0aW9ufHwiY29lcmNlIik7ZWxzZSBhPXIoYSxvLGUudHlwZUFubm90YXRpb258fCJhc3NlcnQiKX1pZighKGEgaW5zdGFuY2VvZiBjZSkmJiJyZXNvbHZlZEltYWdlIiE9PWEudHlwZS5raW5kJiZmdW5jdGlvbiB0KGUpe2lmKGUgaW5zdGFuY2VvZiBqZSlyZXR1cm4gdChlLmJvdW5kRXhwcmVzc2lvbik7aWYoZSBpbnN0YW5jZW9mIHhlJiYiZXJyb3IiPT09ZS5uYW1lKXJldHVybiExO2lmKGUgaW5zdGFuY2VvZiBiZSlyZXR1cm4hMTtpZihlIGluc3RhbmNlb2YgUmUpcmV0dXJuITE7dmFyIHI9ZSBpbnN0YW5jZW9mIGdlfHxlIGluc3RhbmNlb2YgaGUsbj0hMDtpZihlLmVhY2hDaGlsZCgoZnVuY3Rpb24oZSl7bj1yP24mJnQoZSk6biYmZSBpbnN0YW5jZW9mIGNlfSkpLCFuKXJldHVybiExO3JldHVybiBGZShlKSYmTmUoZSxbInpvb20iLCJoZWF0bWFwLWRlbnNpdHkiLCJsaW5lLXByb2dyZXNzIiwiYWNjdW11bGF0ZWQiLCJpcy1zdXBwb3J0ZWQtc2NyaXB0Il0pfShhKSl7dmFyIGw9bmV3IHllO3RyeXthPW5ldyBjZShhLnR5cGUsYS5ldmFsdWF0ZShsKSl9Y2F0Y2godCl7cmV0dXJuIHRoaXMuZXJyb3IodC5tZXNzYWdlKSxudWxsfX1yZXR1cm4gYX1yZXR1cm4gdGhpcy5lcnJvcignVW5rbm93biBleHByZXNzaW9uICInK24rJyIuIElmIHlvdSB3YW50ZWQgYSBsaXRlcmFsIGFycmF5LCB1c2UgWyJsaXRlcmFsIiwgWy4uLl1dLicsMCl9cmV0dXJuIHZvaWQgMD09PXQ/dGhpcy5lcnJvcigiJ3VuZGVmaW5lZCcgdmFsdWUgaW52YWxpZC4gVXNlIG51bGwgaW5zdGVhZC4iKToib2JqZWN0Ij09dHlwZW9mIHQ/dGhpcy5lcnJvcignQmFyZSBvYmplY3RzIGludmFsaWQuIFVzZSBbImxpdGVyYWwiLCB7Li4ufV0gaW5zdGVhZC4nKTp0aGlzLmVycm9yKCJFeHBlY3RlZCBhbiBhcnJheSwgYnV0IGZvdW5kICIrdHlwZW9mIHQrIiBpbnN0ZWFkLiIpfSxVZS5wcm90b3R5cGUuY29uY2F0PWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj0ibnVtYmVyIj09dHlwZW9mIHQ/dGhpcy5wYXRoLmNvbmNhdCh0KTp0aGlzLnBhdGgsaT1yP3RoaXMuc2NvcGUuY29uY2F0KHIpOnRoaXMuc2NvcGU7cmV0dXJuIG5ldyBVZSh0aGlzLnJlZ2lzdHJ5LG4sZXx8bnVsbCxpLHRoaXMuZXJyb3JzKX0sVWUucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxyPWFyZ3VtZW50cy5sZW5ndGgtMTtyLS0gPjA7KWVbcl09YXJndW1lbnRzW3IrMV07dmFyIG49IiIrdGhpcy5rZXkrZS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiJbIit0KyJdIn0pKS5qb2luKCIiKTt0aGlzLmVycm9ycy5wdXNoKG5ldyBEdChuLHQpKX0sVWUucHJvdG90eXBlLmNoZWNrU3VidHlwZT1mdW5jdGlvbih0LGUpe3ZhciByPUp0KHQsZSk7cmV0dXJuIHImJnRoaXMuZXJyb3Iocikscn07dmFyIEhlPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLnR5cGU9dCx0aGlzLmlucHV0PWUsdGhpcy5sYWJlbHM9W10sdGhpcy5vdXRwdXRzPVtdO2Zvcih2YXIgbj0wLGk9cjtuPGkubGVuZ3RoO24rPTEpe3ZhciBhPWlbbl0sbz1hWzBdLHM9YVsxXTt0aGlzLmxhYmVscy5wdXNoKG8pLHRoaXMub3V0cHV0cy5wdXNoKHMpfX07ZnVuY3Rpb24gcWUodCxlLHIpe3JldHVybiB0KigxLXIpK2Uqcn1IZS5wYXJzZT1mdW5jdGlvbih0LGUpe2lmKHQubGVuZ3RoLTE8NClyZXR1cm4gZS5lcnJvcigiRXhwZWN0ZWQgYXQgbGVhc3QgNCBhcmd1bWVudHMsIGJ1dCBmb3VuZCBvbmx5ICIrKHQubGVuZ3RoLTEpKyIuIik7aWYoKHQubGVuZ3RoLTEpJTIhPTApcmV0dXJuIGUuZXJyb3IoIkV4cGVjdGVkIGFuIGV2ZW4gbnVtYmVyIG9mIGFyZ3VtZW50cy4iKTt2YXIgcj1lLnBhcnNlKHRbMV0sMSxCdCk7aWYoIXIpcmV0dXJuIG51bGw7dmFyIG49W10saT1udWxsO2UuZXhwZWN0ZWRUeXBlJiYidmFsdWUiIT09ZS5leHBlY3RlZFR5cGUua2luZCYmKGk9ZS5leHBlY3RlZFR5cGUpO2Zvcih2YXIgYT0xO2E8dC5sZW5ndGg7YSs9Mil7dmFyIG89MT09PWE/LTEvMDp0W2FdLHM9dFthKzFdLGw9YSxjPWErMTtpZigibnVtYmVyIiE9dHlwZW9mIG8pcmV0dXJuIGUuZXJyb3IoJ0lucHV0L291dHB1dCBwYWlycyBmb3IgInN0ZXAiIGV4cHJlc3Npb25zIG11c3QgYmUgZGVmaW5lZCB1c2luZyBsaXRlcmFsIG51bWVyaWMgdmFsdWVzIChub3QgY29tcHV0ZWQgZXhwcmVzc2lvbnMpIGZvciB0aGUgaW5wdXQgdmFsdWVzLicsbCk7aWYobi5sZW5ndGgmJm5bbi5sZW5ndGgtMV1bMF0+PW8pcmV0dXJuIGUuZXJyb3IoJ0lucHV0L291dHB1dCBwYWlycyBmb3IgInN0ZXAiIGV4cHJlc3Npb25zIG11c3QgYmUgYXJyYW5nZWQgd2l0aCBpbnB1dCB2YWx1ZXMgaW4gc3RyaWN0bHkgYXNjZW5kaW5nIG9yZGVyLicsbCk7dmFyIHU9ZS5wYXJzZShzLGMsaSk7aWYoIXUpcmV0dXJuIG51bGw7aT1pfHx1LnR5cGUsbi5wdXNoKFtvLHVdKX1yZXR1cm4gbmV3IEhlKGkscixuKX0sSGUucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubGFiZWxzLHI9dGhpcy5vdXRwdXRzO2lmKDE9PT1lLmxlbmd0aClyZXR1cm4gclswXS5ldmFsdWF0ZSh0KTt2YXIgbj10aGlzLmlucHV0LmV2YWx1YXRlKHQpO2lmKG48PWVbMF0pcmV0dXJuIHJbMF0uZXZhbHVhdGUodCk7dmFyIGk9ZS5sZW5ndGg7cmV0dXJuIG4+PWVbaS0xXT9yW2ktMV0uZXZhbHVhdGUodCk6cltWZShlLG4pXS5ldmFsdWF0ZSh0KX0sSGUucHJvdG90eXBlLmVhY2hDaGlsZD1mdW5jdGlvbih0KXt0KHRoaXMuaW5wdXQpO2Zvcih2YXIgZT0wLHI9dGhpcy5vdXRwdXRzO2U8ci5sZW5ndGg7ZSs9MSl7dChyW2VdKX19LEhlLnByb3RvdHlwZS5vdXRwdXREZWZpbmVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3V0cHV0cy5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIHQub3V0cHV0RGVmaW5lZCgpfSkpfSxIZS5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVsic3RlcCIsdGhpcy5pbnB1dC5zZXJpYWxpemUoKV0sZT0wO2U8dGhpcy5sYWJlbHMubGVuZ3RoO2UrKyllPjAmJnQucHVzaCh0aGlzLmxhYmVsc1tlXSksdC5wdXNoKHRoaXMub3V0cHV0c1tlXS5zZXJpYWxpemUoKSk7cmV0dXJuIHR9O3ZhciBHZT1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxudW1iZXI6cWUsY29sb3I6ZnVuY3Rpb24odCxlLHIpe3JldHVybiBuZXcgdGUocWUodC5yLGUucixyKSxxZSh0LmcsZS5nLHIpLHFlKHQuYixlLmIscikscWUodC5hLGUuYSxyKSl9LGFycmF5OmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdC5tYXAoKGZ1bmN0aW9uKHQsbil7cmV0dXJuIHFlKHQsZVtuXSxyKX0pKX19KSxZZT02LzI5LFdlPTMqWWUqWWUsWGU9TWF0aC5QSS8xODAsWmU9MTgwL01hdGguUEk7ZnVuY3Rpb24gSmUodCl7cmV0dXJuIHQ+LjAwODg1NjQ1MTY3OTAzNTYzMT9NYXRoLnBvdyh0LDEvMyk6dC9XZSs0LzI5fWZ1bmN0aW9uIEtlKHQpe3JldHVybiB0PlllP3QqdCp0OldlKih0LTQvMjkpfWZ1bmN0aW9uIFFlKHQpe3JldHVybiAyNTUqKHQ8PS4wMDMxMzA4PzEyLjkyKnQ6MS4wNTUqTWF0aC5wb3codCwxLzIuNCktLjA1NSl9ZnVuY3Rpb24gJGUodCl7cmV0dXJuKHQvPTI1NSk8PS4wNDA0NT90LzEyLjkyOk1hdGgucG93KCh0Ky4wNTUpLzEuMDU1LDIuNCl9ZnVuY3Rpb24gdHIodCl7dmFyIGU9JGUodC5yKSxyPSRlKHQuZyksbj0kZSh0LmIpLGk9SmUoKC40MTI0NTY0KmUrLjM1NzU3NjEqcisuMTgwNDM3NSpuKS8uOTUwNDcpLGE9SmUoKC4yMTI2NzI5KmUrLjcxNTE1MjIqcisuMDcyMTc1Km4pLzEpO3JldHVybntsOjExNiphLTE2LGE6NTAwKihpLWEpLGI6MjAwKihhLUplKCguMDE5MzMzOSplKy4xMTkxOTIqcisuOTUwMzA0MSpuKS8xLjA4ODgzKSksYWxwaGE6dC5hfX1mdW5jdGlvbiBlcih0KXt2YXIgZT0odC5sKzE2KS8xMTYscj1pc05hTih0LmEpP2U6ZSt0LmEvNTAwLG49aXNOYU4odC5iKT9lOmUtdC5iLzIwMDtyZXR1cm4gZT0xKktlKGUpLHI9Ljk1MDQ3KktlKHIpLG49MS4wODg4MypLZShuKSxuZXcgdGUoUWUoMy4yNDA0NTQyKnItMS41MzcxMzg1KmUtLjQ5ODUzMTQqbiksUWUoLS45NjkyNjYqcisxLjg3NjAxMDgqZSsuMDQxNTU2Km4pLFFlKC4wNTU2NDM0KnItLjIwNDAyNTkqZSsxLjA1NzIyNTIqbiksdC5hbHBoYSl9ZnVuY3Rpb24gcnIodCxlLHIpe3ZhciBuPWUtdDtyZXR1cm4gdCtyKihuPjE4MHx8bjwtMTgwP24tMzYwKk1hdGgucm91bmQobi8zNjApOm4pfXZhciBucj17Zm9yd2FyZDp0cixyZXZlcnNlOmVyLGludGVycG9sYXRlOmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm57bDpxZSh0LmwsZS5sLHIpLGE6cWUodC5hLGUuYSxyKSxiOnFlKHQuYixlLmIsciksYWxwaGE6cWUodC5hbHBoYSxlLmFscGhhLHIpfX19LGlyPXtmb3J3YXJkOmZ1bmN0aW9uKHQpe3ZhciBlPXRyKHQpLHI9ZS5sLG49ZS5hLGk9ZS5iLGE9TWF0aC5hdGFuMihpLG4pKlplO3JldHVybntoOmE8MD9hKzM2MDphLGM6TWF0aC5zcXJ0KG4qbitpKmkpLGw6cixhbHBoYTp0LmF9fSxyZXZlcnNlOmZ1bmN0aW9uKHQpe3ZhciBlPXQuaCpYZSxyPXQuYztyZXR1cm4gZXIoe2w6dC5sLGE6TWF0aC5jb3MoZSkqcixiOk1hdGguc2luKGUpKnIsYWxwaGE6dC5hbHBoYX0pfSxpbnRlcnBvbGF0ZTpmdW5jdGlvbih0LGUscil7cmV0dXJue2g6cnIodC5oLGUuaCxyKSxjOnFlKHQuYyxlLmMsciksbDpxZSh0LmwsZS5sLHIpLGFscGhhOnFlKHQuYWxwaGEsZS5hbHBoYSxyKX19fSxhcj1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxsYWI6bnIsaGNsOmlyfSksb3I9ZnVuY3Rpb24odCxlLHIsbixpKXt0aGlzLnR5cGU9dCx0aGlzLm9wZXJhdG9yPWUsdGhpcy5pbnRlcnBvbGF0aW9uPXIsdGhpcy5pbnB1dD1uLHRoaXMubGFiZWxzPVtdLHRoaXMub3V0cHV0cz1bXTtmb3IodmFyIGE9MCxvPWk7YTxvLmxlbmd0aDthKz0xKXt2YXIgcz1vW2FdLGw9c1swXSxjPXNbMV07dGhpcy5sYWJlbHMucHVzaChsKSx0aGlzLm91dHB1dHMucHVzaChjKX19O2Z1bmN0aW9uIHNyKHQsZSxyLG4pe3ZhciBpPW4tcixhPXQtcjtyZXR1cm4gMD09PWk/MDoxPT09ZT9hL2k6KE1hdGgucG93KGUsYSktMSkvKE1hdGgucG93KGUsaSktMSl9b3IuaW50ZXJwb2xhdGlvbkZhY3Rvcj1mdW5jdGlvbih0LGUsbixpKXt2YXIgYT0wO2lmKCJleHBvbmVudGlhbCI9PT10Lm5hbWUpYT1zcihlLHQuYmFzZSxuLGkpO2Vsc2UgaWYoImxpbmVhciI9PT10Lm5hbWUpYT1zcihlLDEsbixpKTtlbHNlIGlmKCJjdWJpYy1iZXppZXIiPT09dC5uYW1lKXt2YXIgbz10LmNvbnRyb2xQb2ludHM7YT1uZXcgcihvWzBdLG9bMV0sb1syXSxvWzNdKS5zb2x2ZShzcihlLDEsbixpKSl9cmV0dXJuIGF9LG9yLnBhcnNlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dFswXSxuPXRbMV0saT10WzJdLGE9dC5zbGljZSgzKTtpZighQXJyYXkuaXNBcnJheShuKXx8MD09PW4ubGVuZ3RoKXJldHVybiBlLmVycm9yKCJFeHBlY3RlZCBhbiBpbnRlcnBvbGF0aW9uIHR5cGUgZXhwcmVzc2lvbi4iLDEpO2lmKCJsaW5lYXIiPT09blswXSluPXtuYW1lOiJsaW5lYXIifTtlbHNlIGlmKCJleHBvbmVudGlhbCI9PT1uWzBdKXt2YXIgbz1uWzFdO2lmKCJudW1iZXIiIT10eXBlb2YgbylyZXR1cm4gZS5lcnJvcigiRXhwb25lbnRpYWwgaW50ZXJwb2xhdGlvbiByZXF1aXJlcyBhIG51bWVyaWMgYmFzZS4iLDEsMSk7bj17bmFtZToiZXhwb25lbnRpYWwiLGJhc2U6b319ZWxzZXtpZigiY3ViaWMtYmV6aWVyIiE9PW5bMF0pcmV0dXJuIGUuZXJyb3IoIlVua25vd24gaW50ZXJwb2xhdGlvbiB0eXBlICIrU3RyaW5nKG5bMF0pLDEsMCk7dmFyIHM9bi5zbGljZSgxKTtpZig0IT09cy5sZW5ndGh8fHMuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIm51bWJlciIhPXR5cGVvZiB0fHx0PDB8fHQ+MX0pKSlyZXR1cm4gZS5lcnJvcigiQ3ViaWMgYmV6aWVyIGludGVycG9sYXRpb24gcmVxdWlyZXMgZm91ciBudW1lcmljIGFyZ3VtZW50cyB3aXRoIHZhbHVlcyBiZXR3ZWVuIDAgYW5kIDEuIiwxKTtuPXtuYW1lOiJjdWJpYy1iZXppZXIiLGNvbnRyb2xQb2ludHM6c319aWYodC5sZW5ndGgtMTw0KXJldHVybiBlLmVycm9yKCJFeHBlY3RlZCBhdCBsZWFzdCA0IGFyZ3VtZW50cywgYnV0IGZvdW5kIG9ubHkgIisodC5sZW5ndGgtMSkrIi4iKTtpZigodC5sZW5ndGgtMSklMiE9MClyZXR1cm4gZS5lcnJvcigiRXhwZWN0ZWQgYW4gZXZlbiBudW1iZXIgb2YgYXJndW1lbnRzLiIpO2lmKCEoaT1lLnBhcnNlKGksMixCdCkpKXJldHVybiBudWxsO3ZhciBsPVtdLGM9bnVsbDsiaW50ZXJwb2xhdGUtaGNsIj09PXJ8fCJpbnRlcnBvbGF0ZS1sYWIiPT09cj9jPVV0OmUuZXhwZWN0ZWRUeXBlJiYidmFsdWUiIT09ZS5leHBlY3RlZFR5cGUua2luZCYmKGM9ZS5leHBlY3RlZFR5cGUpO2Zvcih2YXIgdT0wO3U8YS5sZW5ndGg7dSs9Mil7dmFyIGY9YVt1XSxoPWFbdSsxXSxwPXUrMyxkPXUrNDtpZigibnVtYmVyIiE9dHlwZW9mIGYpcmV0dXJuIGUuZXJyb3IoJ0lucHV0L291dHB1dCBwYWlycyBmb3IgImludGVycG9sYXRlIiBleHByZXNzaW9ucyBtdXN0IGJlIGRlZmluZWQgdXNpbmcgbGl0ZXJhbCBudW1lcmljIHZhbHVlcyAobm90IGNvbXB1dGVkIGV4cHJlc3Npb25zKSBmb3IgdGhlIGlucHV0IHZhbHVlcy4nLHApO2lmKGwubGVuZ3RoJiZsW2wubGVuZ3RoLTFdWzBdPj1mKXJldHVybiBlLmVycm9yKCdJbnB1dC9vdXRwdXQgcGFpcnMgZm9yICJpbnRlcnBvbGF0ZSIgZXhwcmVzc2lvbnMgbXVzdCBiZSBhcnJhbmdlZCB3aXRoIGlucHV0IHZhbHVlcyBpbiBzdHJpY3RseSBhc2NlbmRpbmcgb3JkZXIuJyxwKTt2YXIgbT1lLnBhcnNlKGgsZCxjKTtpZighbSlyZXR1cm4gbnVsbDtjPWN8fG0udHlwZSxsLnB1c2goW2YsbV0pfXJldHVybiJudW1iZXIiPT09Yy5raW5kfHwiY29sb3IiPT09Yy5raW5kfHwiYXJyYXkiPT09Yy5raW5kJiYibnVtYmVyIj09PWMuaXRlbVR5cGUua2luZCYmIm51bWJlciI9PXR5cGVvZiBjLk4/bmV3IG9yKGMscixuLGksbCk6ZS5lcnJvcigiVHlwZSAiK1h0KGMpKyIgaXMgbm90IGludGVycG9sYXRhYmxlLiIpfSxvci5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5sYWJlbHMscj10aGlzLm91dHB1dHM7aWYoMT09PWUubGVuZ3RoKXJldHVybiByWzBdLmV2YWx1YXRlKHQpO3ZhciBuPXRoaXMuaW5wdXQuZXZhbHVhdGUodCk7aWYobjw9ZVswXSlyZXR1cm4gclswXS5ldmFsdWF0ZSh0KTt2YXIgaT1lLmxlbmd0aDtpZihuPj1lW2ktMV0pcmV0dXJuIHJbaS0xXS5ldmFsdWF0ZSh0KTt2YXIgYT1WZShlLG4pLG89ZVthXSxzPWVbYSsxXSxsPW9yLmludGVycG9sYXRpb25GYWN0b3IodGhpcy5pbnRlcnBvbGF0aW9uLG4sbyxzKSxjPXJbYV0uZXZhbHVhdGUodCksdT1yW2ErMV0uZXZhbHVhdGUodCk7cmV0dXJuImludGVycG9sYXRlIj09PXRoaXMub3BlcmF0b3I/R2VbdGhpcy50eXBlLmtpbmQudG9Mb3dlckNhc2UoKV0oYyx1LGwpOiJpbnRlcnBvbGF0ZS1oY2wiPT09dGhpcy5vcGVyYXRvcj9pci5yZXZlcnNlKGlyLmludGVycG9sYXRlKGlyLmZvcndhcmQoYyksaXIuZm9yd2FyZCh1KSxsKSk6bnIucmV2ZXJzZShuci5pbnRlcnBvbGF0ZShuci5mb3J3YXJkKGMpLG5yLmZvcndhcmQodSksbCkpfSxvci5wcm90b3R5cGUuZWFjaENoaWxkPWZ1bmN0aW9uKHQpe3QodGhpcy5pbnB1dCk7Zm9yKHZhciBlPTAscj10aGlzLm91dHB1dHM7ZTxyLmxlbmd0aDtlKz0xKXt0KHJbZV0pfX0sb3IucHJvdG90eXBlLm91dHB1dERlZmluZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vdXRwdXRzLmV2ZXJ5KChmdW5jdGlvbih0KXtyZXR1cm4gdC5vdXRwdXREZWZpbmVkKCl9KSl9LG9yLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXt2YXIgdDt0PSJsaW5lYXIiPT09dGhpcy5pbnRlcnBvbGF0aW9uLm5hbWU/WyJsaW5lYXIiXToiZXhwb25lbnRpYWwiPT09dGhpcy5pbnRlcnBvbGF0aW9uLm5hbWU/MT09PXRoaXMuaW50ZXJwb2xhdGlvbi5iYXNlP1sibGluZWFyIl06WyJleHBvbmVudGlhbCIsdGhpcy5pbnRlcnBvbGF0aW9uLmJhc2VdOlsiY3ViaWMtYmV6aWVyIl0uY29uY2F0KHRoaXMuaW50ZXJwb2xhdGlvbi5jb250cm9sUG9pbnRzKTtmb3IodmFyIGU9W3RoaXMub3BlcmF0b3IsdCx0aGlzLmlucHV0LnNlcmlhbGl6ZSgpXSxyPTA7cjx0aGlzLmxhYmVscy5sZW5ndGg7cisrKWUucHVzaCh0aGlzLmxhYmVsc1tyXSx0aGlzLm91dHB1dHNbcl0uc2VyaWFsaXplKCkpO3JldHVybiBlfTt2YXIgbHI9ZnVuY3Rpb24odCxlKXt0aGlzLnR5cGU9dCx0aGlzLmFyZ3M9ZX07bHIucGFyc2U9ZnVuY3Rpb24odCxlKXtpZih0Lmxlbmd0aDwyKXJldHVybiBlLmVycm9yKCJFeHBlY3RlY3RlZCBhdCBsZWFzdCBvbmUgYXJndW1lbnQuIik7dmFyIHI9bnVsbCxuPWUuZXhwZWN0ZWRUeXBlO24mJiJ2YWx1ZSIhPT1uLmtpbmQmJihyPW4pO2Zvcih2YXIgaT1bXSxhPTAsbz10LnNsaWNlKDEpO2E8by5sZW5ndGg7YSs9MSl7dmFyIHM9b1thXSxsPWUucGFyc2UocywxK2kubGVuZ3RoLHIsdm9pZCAwLHt0eXBlQW5ub3RhdGlvbjoib21pdCJ9KTtpZighbClyZXR1cm4gbnVsbDtyPXJ8fGwudHlwZSxpLnB1c2gobCl9dmFyIGM9biYmaS5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gSnQobix0LnR5cGUpfSkpO3JldHVybiBuZXcgbHIoYz9IdDpyLGkpfSxsci5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlLHI9bnVsbCxuPTAsaT0wLGE9dGhpcy5hcmdzO2k8YS5sZW5ndGg7aSs9MSl7aWYobisrLChyPWFbaV0uZXZhbHVhdGUodCkpJiZyIGluc3RhbmNlb2YgaWUmJiFyLmF2YWlsYWJsZSYmKGV8fChlPXIubmFtZSkscj1udWxsLG49PT10aGlzLmFyZ3MubGVuZ3RoJiYocj1lKSksbnVsbCE9PXIpYnJlYWt9cmV0dXJuIHJ9LGxyLnByb3RvdHlwZS5lYWNoQ2hpbGQ9ZnVuY3Rpb24odCl7dGhpcy5hcmdzLmZvckVhY2godCl9LGxyLnByb3RvdHlwZS5vdXRwdXREZWZpbmVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXJncy5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIHQub3V0cHV0RGVmaW5lZCgpfSkpfSxsci5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7dmFyIHQ9WyJjb2FsZXNjZSJdO3JldHVybiB0aGlzLmVhY2hDaGlsZCgoZnVuY3Rpb24oZSl7dC5wdXNoKGUuc2VyaWFsaXplKCkpfSkpLHR9O3ZhciBjcj1mdW5jdGlvbih0LGUpe3RoaXMudHlwZT1lLnR5cGUsdGhpcy5iaW5kaW5ncz1bXS5jb25jYXQodCksdGhpcy5yZXN1bHQ9ZX07Y3IucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJlc3VsdC5ldmFsdWF0ZSh0KX0sY3IucHJvdG90eXBlLmVhY2hDaGlsZD1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxyPXRoaXMuYmluZGluZ3M7ZTxyLmxlbmd0aDtlKz0xKXt0KHJbZV1bMV0pfXQodGhpcy5yZXN1bHQpfSxjci5wYXJzZT1mdW5jdGlvbih0LGUpe2lmKHQubGVuZ3RoPDQpcmV0dXJuIGUuZXJyb3IoIkV4cGVjdGVkIGF0IGxlYXN0IDMgYXJndW1lbnRzLCBidXQgZm91bmQgIisodC5sZW5ndGgtMSkrIiBpbnN0ZWFkLiIpO2Zvcih2YXIgcj1bXSxuPTE7bjx0Lmxlbmd0aC0xO24rPTIpe3ZhciBpPXRbbl07aWYoInN0cmluZyIhPXR5cGVvZiBpKXJldHVybiBlLmVycm9yKCJFeHBlY3RlZCBzdHJpbmcsIGJ1dCBmb3VuZCAiK3R5cGVvZiBpKyIgaW5zdGVhZC4iLG4pO2lmKC9bXmEtekEtWjAtOV9dLy50ZXN0KGkpKXJldHVybiBlLmVycm9yKCJWYXJpYWJsZSBuYW1lcyBtdXN0IGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyBvciAnXycuIixuKTt2YXIgYT1lLnBhcnNlKHRbbisxXSxuKzEpO2lmKCFhKXJldHVybiBudWxsO3IucHVzaChbaSxhXSl9dmFyIG89ZS5wYXJzZSh0W3QubGVuZ3RoLTFdLHQubGVuZ3RoLTEsZS5leHBlY3RlZFR5cGUscik7cmV0dXJuIG8/bmV3IGNyKHIsbyk6bnVsbH0sY3IucHJvdG90eXBlLm91dHB1dERlZmluZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXN1bHQub3V0cHV0RGVmaW5lZCgpfSxjci5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVsibGV0Il0sZT0wLHI9dGhpcy5iaW5kaW5ncztlPHIubGVuZ3RoO2UrPTEpe3ZhciBuPXJbZV0saT1uWzBdLGE9blsxXTt0LnB1c2goaSxhLnNlcmlhbGl6ZSgpKX1yZXR1cm4gdC5wdXNoKHRoaXMucmVzdWx0LnNlcmlhbGl6ZSgpKSx0fTt2YXIgdXI9ZnVuY3Rpb24odCxlLHIpe3RoaXMudHlwZT10LHRoaXMuaW5kZXg9ZSx0aGlzLmlucHV0PXJ9O3VyLnBhcnNlPWZ1bmN0aW9uKHQsZSl7aWYoMyE9PXQubGVuZ3RoKXJldHVybiBlLmVycm9yKCJFeHBlY3RlZCAyIGFyZ3VtZW50cywgYnV0IGZvdW5kICIrKHQubGVuZ3RoLTEpKyIgaW5zdGVhZC4iKTt2YXIgcj1lLnBhcnNlKHRbMV0sMSxCdCksbj1lLnBhcnNlKHRbMl0sMixXdChlLmV4cGVjdGVkVHlwZXx8SHQpKTtpZighcnx8IW4pcmV0dXJuIG51bGw7dmFyIGk9bi50eXBlO3JldHVybiBuZXcgdXIoaS5pdGVtVHlwZSxyLG4pfSx1ci5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5pbmRleC5ldmFsdWF0ZSh0KSxyPXRoaXMuaW5wdXQuZXZhbHVhdGUodCk7aWYoZTwwKXRocm93IG5ldyB1ZSgiQXJyYXkgaW5kZXggb3V0IG9mIGJvdW5kczogIitlKyIgPCAwLiIpO2lmKGU+PXIubGVuZ3RoKXRocm93IG5ldyB1ZSgiQXJyYXkgaW5kZXggb3V0IG9mIGJvdW5kczogIitlKyIgPiAiKyhyLmxlbmd0aC0xKSsiLiIpO2lmKGUhPT1NYXRoLmZsb29yKGUpKXRocm93IG5ldyB1ZSgiQXJyYXkgaW5kZXggbXVzdCBiZSBhbiBpbnRlZ2VyLCBidXQgZm91bmQgIitlKyIgaW5zdGVhZC4iKTtyZXR1cm4gcltlXX0sdXIucHJvdG90eXBlLmVhY2hDaGlsZD1mdW5jdGlvbih0KXt0KHRoaXMuaW5kZXgpLHQodGhpcy5pbnB1dCl9LHVyLnByb3RvdHlwZS5vdXRwdXREZWZpbmVkPWZ1bmN0aW9uKCl7cmV0dXJuITF9LHVyLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXtyZXR1cm5bImF0Iix0aGlzLmluZGV4LnNlcmlhbGl6ZSgpLHRoaXMuaW5wdXQuc2VyaWFsaXplKCldfTt2YXIgZnI9ZnVuY3Rpb24odCxlKXt0aGlzLnR5cGU9anQsdGhpcy5uZWVkbGU9dCx0aGlzLmhheXN0YWNrPWV9O2ZyLnBhcnNlPWZ1bmN0aW9uKHQsZSl7aWYoMyE9PXQubGVuZ3RoKXJldHVybiBlLmVycm9yKCJFeHBlY3RlZCAyIGFyZ3VtZW50cywgYnV0IGZvdW5kICIrKHQubGVuZ3RoLTEpKyIgaW5zdGVhZC4iKTt2YXIgcj1lLnBhcnNlKHRbMV0sMSxIdCksbj1lLnBhcnNlKHRbMl0sMixIdCk7cmV0dXJuIHImJm4/S3Qoci50eXBlLFtqdCxOdCxCdCxGdCxIdF0pP25ldyBmcihyLG4pOmUuZXJyb3IoIkV4cGVjdGVkIGZpcnN0IGFyZ3VtZW50IHRvIGJlIG9mIHR5cGUgYm9vbGVhbiwgc3RyaW5nLCBudW1iZXIgb3IgbnVsbCwgYnV0IGZvdW5kICIrWHQoci50eXBlKSsiIGluc3RlYWQiKTpudWxsfSxmci5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5uZWVkbGUuZXZhbHVhdGUodCkscj10aGlzLmhheXN0YWNrLmV2YWx1YXRlKHQpO2lmKCFyKXJldHVybiExO2lmKCFRdChlLFsiYm9vbGVhbiIsInN0cmluZyIsIm51bWJlciIsIm51bGwiXSkpdGhyb3cgbmV3IHVlKCJFeHBlY3RlZCBmaXJzdCBhcmd1bWVudCB0byBiZSBvZiB0eXBlIGJvb2xlYW4sIHN0cmluZywgbnVtYmVyIG9yIG51bGwsIGJ1dCBmb3VuZCAiK1h0KHNlKGUpKSsiIGluc3RlYWQuIik7aWYoIVF0KHIsWyJzdHJpbmciLCJhcnJheSJdKSl0aHJvdyBuZXcgdWUoIkV4cGVjdGVkIHNlY29uZCBhcmd1bWVudCB0byBiZSBvZiB0eXBlIGFycmF5IG9yIHN0cmluZywgYnV0IGZvdW5kICIrWHQoc2UocikpKyIgaW5zdGVhZC4iKTtyZXR1cm4gci5pbmRleE9mKGUpPj0wfSxmci5wcm90b3R5cGUuZWFjaENoaWxkPWZ1bmN0aW9uKHQpe3QodGhpcy5uZWVkbGUpLHQodGhpcy5oYXlzdGFjayl9LGZyLnByb3RvdHlwZS5vdXRwdXREZWZpbmVkPWZ1bmN0aW9uKCl7cmV0dXJuITB9LGZyLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXtyZXR1cm5bImluIix0aGlzLm5lZWRsZS5zZXJpYWxpemUoKSx0aGlzLmhheXN0YWNrLnNlcmlhbGl6ZSgpXX07dmFyIGhyPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLnR5cGU9QnQsdGhpcy5uZWVkbGU9dCx0aGlzLmhheXN0YWNrPWUsdGhpcy5mcm9tSW5kZXg9cn07aHIucGFyc2U9ZnVuY3Rpb24odCxlKXtpZih0Lmxlbmd0aDw9Mnx8dC5sZW5ndGg+PTUpcmV0dXJuIGUuZXJyb3IoIkV4cGVjdGVkIDMgb3IgNCBhcmd1bWVudHMsIGJ1dCBmb3VuZCAiKyh0Lmxlbmd0aC0xKSsiIGluc3RlYWQuIik7dmFyIHI9ZS5wYXJzZSh0WzFdLDEsSHQpLG49ZS5wYXJzZSh0WzJdLDIsSHQpO2lmKCFyfHwhbilyZXR1cm4gbnVsbDtpZighS3Qoci50eXBlLFtqdCxOdCxCdCxGdCxIdF0pKXJldHVybiBlLmVycm9yKCJFeHBlY3RlZCBmaXJzdCBhcmd1bWVudCB0byBiZSBvZiB0eXBlIGJvb2xlYW4sIHN0cmluZywgbnVtYmVyIG9yIG51bGwsIGJ1dCBmb3VuZCAiK1h0KHIudHlwZSkrIiBpbnN0ZWFkIik7aWYoND09PXQubGVuZ3RoKXt2YXIgaT1lLnBhcnNlKHRbM10sMyxCdCk7cmV0dXJuIGk/bmV3IGhyKHIsbixpKTpudWxsfXJldHVybiBuZXcgaHIocixuKX0saHIucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubmVlZGxlLmV2YWx1YXRlKHQpLHI9dGhpcy5oYXlzdGFjay5ldmFsdWF0ZSh0KTtpZighUXQoZSxbImJvb2xlYW4iLCJzdHJpbmciLCJudW1iZXIiLCJudWxsIl0pKXRocm93IG5ldyB1ZSgiRXhwZWN0ZWQgZmlyc3QgYXJndW1lbnQgdG8gYmUgb2YgdHlwZSBib29sZWFuLCBzdHJpbmcsIG51bWJlciBvciBudWxsLCBidXQgZm91bmQgIitYdChzZShlKSkrIiBpbnN0ZWFkLiIpO2lmKCFRdChyLFsic3RyaW5nIiwiYXJyYXkiXSkpdGhyb3cgbmV3IHVlKCJFeHBlY3RlZCBzZWNvbmQgYXJndW1lbnQgdG8gYmUgb2YgdHlwZSBhcnJheSBvciBzdHJpbmcsIGJ1dCBmb3VuZCAiK1h0KHNlKHIpKSsiIGluc3RlYWQuIik7aWYodGhpcy5mcm9tSW5kZXgpe3ZhciBuPXRoaXMuZnJvbUluZGV4LmV2YWx1YXRlKHQpO3JldHVybiByLmluZGV4T2YoZSxuKX1yZXR1cm4gci5pbmRleE9mKGUpfSxoci5wcm90b3R5cGUuZWFjaENoaWxkPWZ1bmN0aW9uKHQpe3QodGhpcy5uZWVkbGUpLHQodGhpcy5oYXlzdGFjayksdGhpcy5mcm9tSW5kZXgmJnQodGhpcy5mcm9tSW5kZXgpfSxoci5wcm90b3R5cGUub3V0cHV0RGVmaW5lZD1mdW5jdGlvbigpe3JldHVybiExfSxoci5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7aWYobnVsbCE9dGhpcy5mcm9tSW5kZXgmJnZvaWQgMCE9PXRoaXMuZnJvbUluZGV4KXt2YXIgdD10aGlzLmZyb21JbmRleC5zZXJpYWxpemUoKTtyZXR1cm5bImluZGV4LW9mIix0aGlzLm5lZWRsZS5zZXJpYWxpemUoKSx0aGlzLmhheXN0YWNrLnNlcmlhbGl6ZSgpLHRdfXJldHVyblsiaW5kZXgtb2YiLHRoaXMubmVlZGxlLnNlcmlhbGl6ZSgpLHRoaXMuaGF5c3RhY2suc2VyaWFsaXplKCldfTt2YXIgcHI9ZnVuY3Rpb24odCxlLHIsbixpLGEpe3RoaXMuaW5wdXRUeXBlPXQsdGhpcy50eXBlPWUsdGhpcy5pbnB1dD1yLHRoaXMuY2FzZXM9bix0aGlzLm91dHB1dHM9aSx0aGlzLm90aGVyd2lzZT1hfTtwci5wYXJzZT1mdW5jdGlvbih0LGUpe2lmKHQubGVuZ3RoPDUpcmV0dXJuIGUuZXJyb3IoIkV4cGVjdGVkIGF0IGxlYXN0IDQgYXJndW1lbnRzLCBidXQgZm91bmQgb25seSAiKyh0Lmxlbmd0aC0xKSsiLiIpO2lmKHQubGVuZ3RoJTIhPTEpcmV0dXJuIGUuZXJyb3IoIkV4cGVjdGVkIGFuIGV2ZW4gbnVtYmVyIG9mIGFyZ3VtZW50cy4iKTt2YXIgcixuO2UuZXhwZWN0ZWRUeXBlJiYidmFsdWUiIT09ZS5leHBlY3RlZFR5cGUua2luZCYmKG49ZS5leHBlY3RlZFR5cGUpO2Zvcih2YXIgaT17fSxhPVtdLG89MjtvPHQubGVuZ3RoLTE7bys9Mil7dmFyIHM9dFtvXSxsPXRbbysxXTtBcnJheS5pc0FycmF5KHMpfHwocz1bc10pO3ZhciBjPWUuY29uY2F0KG8pO2lmKDA9PT1zLmxlbmd0aClyZXR1cm4gYy5lcnJvcigiRXhwZWN0ZWQgYXQgbGVhc3Qgb25lIGJyYW5jaCBsYWJlbC4iKTtmb3IodmFyIHU9MCxmPXM7dTxmLmxlbmd0aDt1Kz0xKXt2YXIgaD1mW3VdO2lmKCJudW1iZXIiIT10eXBlb2YgaCYmInN0cmluZyIhPXR5cGVvZiBoKXJldHVybiBjLmVycm9yKCJCcmFuY2ggbGFiZWxzIG11c3QgYmUgbnVtYmVycyBvciBzdHJpbmdzLiIpO2lmKCJudW1iZXIiPT10eXBlb2YgaCYmTWF0aC5hYnMoaCk+TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpcmV0dXJuIGMuZXJyb3IoIkJyYW5jaCBsYWJlbHMgbXVzdCBiZSBpbnRlZ2VycyBubyBsYXJnZXIgdGhhbiAiK051bWJlci5NQVhfU0FGRV9JTlRFR0VSKyIuIik7aWYoIm51bWJlciI9PXR5cGVvZiBoJiZNYXRoLmZsb29yKGgpIT09aClyZXR1cm4gYy5lcnJvcigiTnVtZXJpYyBicmFuY2ggbGFiZWxzIG11c3QgYmUgaW50ZWdlciB2YWx1ZXMuIik7aWYocil7aWYoYy5jaGVja1N1YnR5cGUocixzZShoKSkpcmV0dXJuIG51bGx9ZWxzZSByPXNlKGgpO2lmKHZvaWQgMCE9PWlbU3RyaW5nKGgpXSlyZXR1cm4gYy5lcnJvcigiQnJhbmNoIGxhYmVscyBtdXN0IGJlIHVuaXF1ZS4iKTtpW1N0cmluZyhoKV09YS5sZW5ndGh9dmFyIHA9ZS5wYXJzZShsLG8sbik7aWYoIXApcmV0dXJuIG51bGw7bj1ufHxwLnR5cGUsYS5wdXNoKHApfXZhciBkPWUucGFyc2UodFsxXSwxLEh0KTtpZighZClyZXR1cm4gbnVsbDt2YXIgbT1lLnBhcnNlKHRbdC5sZW5ndGgtMV0sdC5sZW5ndGgtMSxuKTtyZXR1cm4gbT8idmFsdWUiIT09ZC50eXBlLmtpbmQmJmUuY29uY2F0KDEpLmNoZWNrU3VidHlwZShyLGQudHlwZSk/bnVsbDpuZXcgcHIocixuLGQsaSxhLG0pOm51bGx9LHByLnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmlucHV0LmV2YWx1YXRlKHQpO3JldHVybihzZShlKT09PXRoaXMuaW5wdXRUeXBlJiZ0aGlzLm91dHB1dHNbdGhpcy5jYXNlc1tlXV18fHRoaXMub3RoZXJ3aXNlKS5ldmFsdWF0ZSh0KX0scHIucHJvdG90eXBlLmVhY2hDaGlsZD1mdW5jdGlvbih0KXt0KHRoaXMuaW5wdXQpLHRoaXMub3V0cHV0cy5mb3JFYWNoKHQpLHQodGhpcy5vdGhlcndpc2UpfSxwci5wcm90b3R5cGUub3V0cHV0RGVmaW5lZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLm91dHB1dHMuZXZlcnkoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm91dHB1dERlZmluZWQoKX0pKSYmdGhpcy5vdGhlcndpc2Uub3V0cHV0RGVmaW5lZCgpfSxwci5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMsZT1bIm1hdGNoIix0aGlzLmlucHV0LnNlcmlhbGl6ZSgpXSxyPVtdLG49e30saT0wLGE9T2JqZWN0LmtleXModGhpcy5jYXNlcykuc29ydCgpO2k8YS5sZW5ndGg7aSs9MSl7dmFyIG89YVtpXTt2b2lkIDA9PT0oZj1uW3RoaXMuY2FzZXNbb11dKT8oblt0aGlzLmNhc2VzW29dXT1yLmxlbmd0aCxyLnB1c2goW3RoaXMuY2FzZXNbb10sW29dXSkpOnJbZl1bMV0ucHVzaChvKX1mb3IodmFyIHM9ZnVuY3Rpb24oZSl7cmV0dXJuIm51bWJlciI9PT10LmlucHV0VHlwZS5raW5kP051bWJlcihlKTplfSxsPTAsYz1yO2w8Yy5sZW5ndGg7bCs9MSl7dmFyIHU9Y1tsXSxmPXVbMF0saD11WzFdOzE9PT1oLmxlbmd0aD9lLnB1c2gocyhoWzBdKSk6ZS5wdXNoKGgubWFwKHMpKSxlLnB1c2godGhpcy5vdXRwdXRzW291dHB1dEluZGV4JDFdLnNlcmlhbGl6ZSgpKX1yZXR1cm4gZS5wdXNoKHRoaXMub3RoZXJ3aXNlLnNlcmlhbGl6ZSgpKSxlfTt2YXIgZHI9ZnVuY3Rpb24odCxlLHIpe3RoaXMudHlwZT10LHRoaXMuYnJhbmNoZXM9ZSx0aGlzLm90aGVyd2lzZT1yfTtkci5wYXJzZT1mdW5jdGlvbih0LGUpe2lmKHQubGVuZ3RoPDQpcmV0dXJuIGUuZXJyb3IoIkV4cGVjdGVkIGF0IGxlYXN0IDMgYXJndW1lbnRzLCBidXQgZm91bmQgb25seSAiKyh0Lmxlbmd0aC0xKSsiLiIpO2lmKHQubGVuZ3RoJTIhPTApcmV0dXJuIGUuZXJyb3IoIkV4cGVjdGVkIGFuIG9kZCBudW1iZXIgb2YgYXJndW1lbnRzLiIpO3ZhciByO2UuZXhwZWN0ZWRUeXBlJiYidmFsdWUiIT09ZS5leHBlY3RlZFR5cGUua2luZCYmKHI9ZS5leHBlY3RlZFR5cGUpO2Zvcih2YXIgbj1bXSxpPTE7aTx0Lmxlbmd0aC0xO2krPTIpe3ZhciBhPWUucGFyc2UodFtpXSxpLGp0KTtpZighYSlyZXR1cm4gbnVsbDt2YXIgbz1lLnBhcnNlKHRbaSsxXSxpKzEscik7aWYoIW8pcmV0dXJuIG51bGw7bi5wdXNoKFthLG9dKSxyPXJ8fG8udHlwZX12YXIgcz1lLnBhcnNlKHRbdC5sZW5ndGgtMV0sdC5sZW5ndGgtMSxyKTtyZXR1cm4gcz9uZXcgZHIocixuLHMpOm51bGx9LGRyLnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxyPXRoaXMuYnJhbmNoZXM7ZTxyLmxlbmd0aDtlKz0xKXt2YXIgbj1yW2VdLGk9blswXSxhPW5bMV07aWYoaS5ldmFsdWF0ZSh0KSlyZXR1cm4gYS5ldmFsdWF0ZSh0KX1yZXR1cm4gdGhpcy5vdGhlcndpc2UuZXZhbHVhdGUodCl9LGRyLnByb3RvdHlwZS5lYWNoQ2hpbGQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAscj10aGlzLmJyYW5jaGVzO2U8ci5sZW5ndGg7ZSs9MSl7dmFyIG49cltlXSxpPW5bMF0sYT1uWzFdO3QoaSksdChhKX10KHRoaXMub3RoZXJ3aXNlKX0sZHIucHJvdG90eXBlLm91dHB1dERlZmluZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5icmFuY2hlcy5ldmVyeSgoZnVuY3Rpb24odCl7dFswXTtyZXR1cm4gdFsxXS5vdXRwdXREZWZpbmVkKCl9KSkmJnRoaXMub3RoZXJ3aXNlLm91dHB1dERlZmluZWQoKX0sZHIucHJvdG90eXBlLnNlcmlhbGl6ZT1mdW5jdGlvbigpe3ZhciB0PVsiY2FzZSJdO3JldHVybiB0aGlzLmVhY2hDaGlsZCgoZnVuY3Rpb24oZSl7dC5wdXNoKGUuc2VyaWFsaXplKCkpfSkpLHR9O3ZhciBtcj1mdW5jdGlvbih0LGUscixuKXt0aGlzLnR5cGU9dCx0aGlzLmlucHV0PWUsdGhpcy5iZWdpbkluZGV4PXIsdGhpcy5lbmRJbmRleD1ufTtmdW5jdGlvbiBncih0LGUpe3JldHVybiI9PSI9PT10fHwiIT0iPT09dD8iYm9vbGVhbiI9PT1lLmtpbmR8fCJzdHJpbmciPT09ZS5raW5kfHwibnVtYmVyIj09PWUua2luZHx8Im51bGwiPT09ZS5raW5kfHwidmFsdWUiPT09ZS5raW5kOiJzdHJpbmciPT09ZS5raW5kfHwibnVtYmVyIj09PWUua2luZHx8InZhbHVlIj09PWUua2luZH1mdW5jdGlvbiB2cih0LGUscixuKXtyZXR1cm4gMD09PW4uY29tcGFyZShlLHIpfWZ1bmN0aW9uIHlyKHQsZSxyKXt2YXIgbj0iPT0iIT09dCYmIiE9IiE9PXQ7cmV0dXJuIGZ1bmN0aW9uKCl7ZnVuY3Rpb24gaSh0LGUscil7dGhpcy50eXBlPWp0LHRoaXMubGhzPXQsdGhpcy5yaHM9ZSx0aGlzLmNvbGxhdG9yPXIsdGhpcy5oYXNVbnR5cGVkQXJndW1lbnQ9InZhbHVlIj09PXQudHlwZS5raW5kfHwidmFsdWUiPT09ZS50eXBlLmtpbmR9cmV0dXJuIGkucGFyc2U9ZnVuY3Rpb24odCxlKXtpZigzIT09dC5sZW5ndGgmJjQhPT10Lmxlbmd0aClyZXR1cm4gZS5lcnJvcigiRXhwZWN0ZWQgdHdvIG9yIHRocmVlIGFyZ3VtZW50cy4iKTt2YXIgcj10WzBdLGE9ZS5wYXJzZSh0WzFdLDEsSHQpO2lmKCFhKXJldHVybiBudWxsO2lmKCFncihyLGEudHlwZSkpcmV0dXJuIGUuY29uY2F0KDEpLmVycm9yKCciJytyKyJcIiBjb21wYXJpc29ucyBhcmUgbm90IHN1cHBvcnRlZCBmb3IgdHlwZSAnIitYdChhLnR5cGUpKyInLiIpO3ZhciBvPWUucGFyc2UodFsyXSwyLEh0KTtpZighbylyZXR1cm4gbnVsbDtpZighZ3IocixvLnR5cGUpKXJldHVybiBlLmNvbmNhdCgyKS5lcnJvcignIicrcisiXCIgY29tcGFyaXNvbnMgYXJlIG5vdCBzdXBwb3J0ZWQgZm9yIHR5cGUgJyIrWHQoby50eXBlKSsiJy4iKTtpZihhLnR5cGUua2luZCE9PW8udHlwZS5raW5kJiYidmFsdWUiIT09YS50eXBlLmtpbmQmJiJ2YWx1ZSIhPT1vLnR5cGUua2luZClyZXR1cm4gZS5lcnJvcigiQ2Fubm90IGNvbXBhcmUgdHlwZXMgJyIrWHQoYS50eXBlKSsiJyBhbmQgJyIrWHQoby50eXBlKSsiJy4iKTtuJiYoInZhbHVlIj09PWEudHlwZS5raW5kJiYidmFsdWUiIT09by50eXBlLmtpbmQ/YT1uZXcgaGUoby50eXBlLFthXSk6InZhbHVlIiE9PWEudHlwZS5raW5kJiYidmFsdWUiPT09by50eXBlLmtpbmQmJihvPW5ldyBoZShhLnR5cGUsW29dKSkpO3ZhciBzPW51bGw7aWYoND09PXQubGVuZ3RoKXtpZigic3RyaW5nIiE9PWEudHlwZS5raW5kJiYic3RyaW5nIiE9PW8udHlwZS5raW5kJiYidmFsdWUiIT09YS50eXBlLmtpbmQmJiJ2YWx1ZSIhPT1vLnR5cGUua2luZClyZXR1cm4gZS5lcnJvcigiQ2Fubm90IHVzZSBjb2xsYXRvciB0byBjb21wYXJlIG5vbi1zdHJpbmcgdHlwZXMuIik7aWYoIShzPWUucGFyc2UodFszXSwzLHF0KSkpcmV0dXJuIG51bGx9cmV0dXJuIG5ldyBpKGEsbyxzKX0saS5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24oaSl7dmFyIGE9dGhpcy5saHMuZXZhbHVhdGUoaSksbz10aGlzLnJocy5ldmFsdWF0ZShpKTtpZihuJiZ0aGlzLmhhc1VudHlwZWRBcmd1bWVudCl7dmFyIHM9c2UoYSksbD1zZShvKTtpZihzLmtpbmQhPT1sLmtpbmR8fCJzdHJpbmciIT09cy5raW5kJiYibnVtYmVyIiE9PXMua2luZCl0aHJvdyBuZXcgdWUoJ0V4cGVjdGVkIGFyZ3VtZW50cyBmb3IgIicrdCsnIiB0byBiZSAoc3RyaW5nLCBzdHJpbmcpIG9yIChudW1iZXIsIG51bWJlciksIGJ1dCBmb3VuZCAoJytzLmtpbmQrIiwgIitsLmtpbmQrIikgaW5zdGVhZC4iKX1pZih0aGlzLmNvbGxhdG9yJiYhbiYmdGhpcy5oYXNVbnR5cGVkQXJndW1lbnQpe3ZhciBjPXNlKGEpLHU9c2Uobyk7aWYoInN0cmluZyIhPT1jLmtpbmR8fCJzdHJpbmciIT09dS5raW5kKXJldHVybiBlKGksYSxvKX1yZXR1cm4gdGhpcy5jb2xsYXRvcj9yKGksYSxvLHRoaXMuY29sbGF0b3IuZXZhbHVhdGUoaSkpOmUoaSxhLG8pfSxpLnByb3RvdHlwZS5lYWNoQ2hpbGQ9ZnVuY3Rpb24odCl7dCh0aGlzLmxocyksdCh0aGlzLnJocyksdGhpcy5jb2xsYXRvciYmdCh0aGlzLmNvbGxhdG9yKX0saS5wcm90b3R5cGUub3V0cHV0RGVmaW5lZD1mdW5jdGlvbigpe3JldHVybiEwfSxpLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXt2YXIgZT1bdF07cmV0dXJuIHRoaXMuZWFjaENoaWxkKChmdW5jdGlvbih0KXtlLnB1c2godC5zZXJpYWxpemUoKSl9KSksZX0saX0oKX1tci5wYXJzZT1mdW5jdGlvbih0LGUpe2lmKHQubGVuZ3RoPD0yfHx0Lmxlbmd0aD49NSlyZXR1cm4gZS5lcnJvcigiRXhwZWN0ZWQgMyBvciA0IGFyZ3VtZW50cywgYnV0IGZvdW5kICIrKHQubGVuZ3RoLTEpKyIgaW5zdGVhZC4iKTt2YXIgcj1lLnBhcnNlKHRbMV0sMSxIdCksbj1lLnBhcnNlKHRbMl0sMixCdCk7aWYoIXJ8fCFuKXJldHVybiBudWxsO2lmKCFLdChyLnR5cGUsW1d0KEh0KSxOdCxIdF0pKXJldHVybiBlLmVycm9yKCJFeHBlY3RlZCBmaXJzdCBhcmd1bWVudCB0byBiZSBvZiB0eXBlIGFycmF5IG9yIHN0cmluZywgYnV0IGZvdW5kICIrWHQoci50eXBlKSsiIGluc3RlYWQiKTtpZig0PT09dC5sZW5ndGgpe3ZhciBpPWUucGFyc2UodFszXSwzLEJ0KTtyZXR1cm4gaT9uZXcgbXIoci50eXBlLHIsbixpKTpudWxsfXJldHVybiBuZXcgbXIoci50eXBlLHIsbil9LG1yLnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmlucHV0LmV2YWx1YXRlKHQpLHI9dGhpcy5iZWdpbkluZGV4LmV2YWx1YXRlKHQpO2lmKCFRdChlLFsic3RyaW5nIiwiYXJyYXkiXSkpdGhyb3cgbmV3IHVlKCJFeHBlY3RlZCBmaXJzdCBhcmd1bWVudCB0byBiZSBvZiB0eXBlIGFycmF5IG9yIHN0cmluZywgYnV0IGZvdW5kICIrWHQoc2UoZSkpKyIgaW5zdGVhZC4iKTtpZih0aGlzLmVuZEluZGV4KXt2YXIgbj10aGlzLmVuZEluZGV4LmV2YWx1YXRlKHQpO3JldHVybiBlLnNsaWNlKHIsbil9cmV0dXJuIGUuc2xpY2Uocil9LG1yLnByb3RvdHlwZS5lYWNoQ2hpbGQ9ZnVuY3Rpb24odCl7dCh0aGlzLmlucHV0KSx0KHRoaXMuYmVnaW5JbmRleCksdGhpcy5lbmRJbmRleCYmdCh0aGlzLmVuZEluZGV4KX0sbXIucHJvdG90eXBlLm91dHB1dERlZmluZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMX0sbXIucHJvdG90eXBlLnNlcmlhbGl6ZT1mdW5jdGlvbigpe2lmKG51bGwhPXRoaXMuZW5kSW5kZXgmJnZvaWQgMCE9PXRoaXMuZW5kSW5kZXgpe3ZhciB0PXRoaXMuZW5kSW5kZXguc2VyaWFsaXplKCk7cmV0dXJuWyJzbGljZSIsdGhpcy5pbnB1dC5zZXJpYWxpemUoKSx0aGlzLmJlZ2luSW5kZXguc2VyaWFsaXplKCksdF19cmV0dXJuWyJzbGljZSIsdGhpcy5pbnB1dC5zZXJpYWxpemUoKSx0aGlzLmJlZ2luSW5kZXguc2VyaWFsaXplKCldfTt2YXIgeHI9eXIoIj09IiwoZnVuY3Rpb24odCxlLHIpe3JldHVybiBlPT09cn0pLHZyKSxicj15cigiIT0iLChmdW5jdGlvbih0LGUscil7cmV0dXJuIGUhPT1yfSksKGZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiF2cigwLGUscixuKX0pKSxfcj15cigiPCIsKGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZTxyfSksKGZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiBuLmNvbXBhcmUoZSxyKTwwfSkpLHdyPXlyKCI+IiwoZnVuY3Rpb24odCxlLHIpe3JldHVybiBlPnJ9KSwoZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIG4uY29tcGFyZShlLHIpPjB9KSksVHI9eXIoIjw9IiwoZnVuY3Rpb24odCxlLHIpe3JldHVybiBlPD1yfSksKGZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiBuLmNvbXBhcmUoZSxyKTw9MH0pKSxrcj15cigiPj0iLChmdW5jdGlvbih0LGUscil7cmV0dXJuIGU+PXJ9KSwoZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIG4uY29tcGFyZShlLHIpPj0wfSkpLEFyPWZ1bmN0aW9uKHQsZSxyLG4saSl7dGhpcy50eXBlPU50LHRoaXMubnVtYmVyPXQsdGhpcy5sb2NhbGU9ZSx0aGlzLmN1cnJlbmN5PXIsdGhpcy5taW5GcmFjdGlvbkRpZ2l0cz1uLHRoaXMubWF4RnJhY3Rpb25EaWdpdHM9aX07QXIucGFyc2U9ZnVuY3Rpb24odCxlKXtpZigzIT09dC5sZW5ndGgpcmV0dXJuIGUuZXJyb3IoIkV4cGVjdGVkIHR3byBhcmd1bWVudHMuIik7dmFyIHI9ZS5wYXJzZSh0WzFdLDEsQnQpO2lmKCFyKXJldHVybiBudWxsO3ZhciBuPXRbMl07aWYoIm9iamVjdCIhPXR5cGVvZiBufHxBcnJheS5pc0FycmF5KG4pKXJldHVybiBlLmVycm9yKCJOdW1iZXJGb3JtYXQgb3B0aW9ucyBhcmd1bWVudCBtdXN0IGJlIGFuIG9iamVjdC4iKTt2YXIgaT1udWxsO2lmKG4ubG9jYWxlJiYhKGk9ZS5wYXJzZShuLmxvY2FsZSwxLE50KSkpcmV0dXJuIG51bGw7dmFyIGE9bnVsbDtpZihuLmN1cnJlbmN5JiYhKGE9ZS5wYXJzZShuLmN1cnJlbmN5LDEsTnQpKSlyZXR1cm4gbnVsbDt2YXIgbz1udWxsO2lmKG5bIm1pbi1mcmFjdGlvbi1kaWdpdHMiXSYmIShvPWUucGFyc2UoblsibWluLWZyYWN0aW9uLWRpZ2l0cyJdLDEsQnQpKSlyZXR1cm4gbnVsbDt2YXIgcz1udWxsO3JldHVybiBuWyJtYXgtZnJhY3Rpb24tZGlnaXRzIl0mJiEocz1lLnBhcnNlKG5bIm1heC1mcmFjdGlvbi1kaWdpdHMiXSwxLEJ0KSk/bnVsbDpuZXcgQXIocixpLGEsbyxzKX0sQXIucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgSW50bC5OdW1iZXJGb3JtYXQodGhpcy5sb2NhbGU/dGhpcy5sb2NhbGUuZXZhbHVhdGUodCk6W10se3N0eWxlOnRoaXMuY3VycmVuY3k/ImN1cnJlbmN5IjoiZGVjaW1hbCIsY3VycmVuY3k6dGhpcy5jdXJyZW5jeT90aGlzLmN1cnJlbmN5LmV2YWx1YXRlKHQpOnZvaWQgMCxtaW5pbXVtRnJhY3Rpb25EaWdpdHM6dGhpcy5taW5GcmFjdGlvbkRpZ2l0cz90aGlzLm1pbkZyYWN0aW9uRGlnaXRzLmV2YWx1YXRlKHQpOnZvaWQgMCxtYXhpbXVtRnJhY3Rpb25EaWdpdHM6dGhpcy5tYXhGcmFjdGlvbkRpZ2l0cz90aGlzLm1heEZyYWN0aW9uRGlnaXRzLmV2YWx1YXRlKHQpOnZvaWQgMH0pLmZvcm1hdCh0aGlzLm51bWJlci5ldmFsdWF0ZSh0KSl9LEFyLnByb3RvdHlwZS5lYWNoQ2hpbGQ9ZnVuY3Rpb24odCl7dCh0aGlzLm51bWJlciksdGhpcy5sb2NhbGUmJnQodGhpcy5sb2NhbGUpLHRoaXMuY3VycmVuY3kmJnQodGhpcy5jdXJyZW5jeSksdGhpcy5taW5GcmFjdGlvbkRpZ2l0cyYmdCh0aGlzLm1pbkZyYWN0aW9uRGlnaXRzKSx0aGlzLm1heEZyYWN0aW9uRGlnaXRzJiZ0KHRoaXMubWF4RnJhY3Rpb25EaWdpdHMpfSxBci5wcm90b3R5cGUub3V0cHV0RGVmaW5lZD1mdW5jdGlvbigpe3JldHVybiExfSxBci5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7dmFyIHQ9e307cmV0dXJuIHRoaXMubG9jYWxlJiYodC5sb2NhbGU9dGhpcy5sb2NhbGUuc2VyaWFsaXplKCkpLHRoaXMuY3VycmVuY3kmJih0LmN1cnJlbmN5PXRoaXMuY3VycmVuY3kuc2VyaWFsaXplKCkpLHRoaXMubWluRnJhY3Rpb25EaWdpdHMmJih0WyJtaW4tZnJhY3Rpb24tZGlnaXRzIl09dGhpcy5taW5GcmFjdGlvbkRpZ2l0cy5zZXJpYWxpemUoKSksdGhpcy5tYXhGcmFjdGlvbkRpZ2l0cyYmKHRbIm1heC1mcmFjdGlvbi1kaWdpdHMiXT10aGlzLm1heEZyYWN0aW9uRGlnaXRzLnNlcmlhbGl6ZSgpKSxbIm51bWJlci1mb3JtYXQiLHRoaXMubnVtYmVyLnNlcmlhbGl6ZSgpLHRdfTt2YXIgTXI9ZnVuY3Rpb24odCl7dGhpcy50eXBlPUJ0LHRoaXMuaW5wdXQ9dH07TXIucGFyc2U9ZnVuY3Rpb24odCxlKXtpZigyIT09dC5sZW5ndGgpcmV0dXJuIGUuZXJyb3IoIkV4cGVjdGVkIDEgYXJndW1lbnQsIGJ1dCBmb3VuZCAiKyh0Lmxlbmd0aC0xKSsiIGluc3RlYWQuIik7dmFyIHI9ZS5wYXJzZSh0WzFdLDEpO3JldHVybiByPyJhcnJheSIhPT1yLnR5cGUua2luZCYmInN0cmluZyIhPT1yLnR5cGUua2luZCYmInZhbHVlIiE9PXIudHlwZS5raW5kP2UuZXJyb3IoIkV4cGVjdGVkIGFyZ3VtZW50IG9mIHR5cGUgc3RyaW5nIG9yIGFycmF5LCBidXQgZm91bmQgIitYdChyLnR5cGUpKyIgaW5zdGVhZC4iKTpuZXcgTXIocik6bnVsbH0sTXIucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaW5wdXQuZXZhbHVhdGUodCk7aWYoInN0cmluZyI9PXR5cGVvZiBlKXJldHVybiBlLmxlbmd0aDtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlLmxlbmd0aDt0aHJvdyBuZXcgdWUoIkV4cGVjdGVkIHZhbHVlIHRvIGJlIG9mIHR5cGUgc3RyaW5nIG9yIGFycmF5LCBidXQgZm91bmQgIitYdChzZShlKSkrIiBpbnN0ZWFkLiIpfSxNci5wcm90b3R5cGUuZWFjaENoaWxkPWZ1bmN0aW9uKHQpe3QodGhpcy5pbnB1dCl9LE1yLnByb3RvdHlwZS5vdXRwdXREZWZpbmVkPWZ1bmN0aW9uKCl7cmV0dXJuITF9LE1yLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXt2YXIgdD1bImxlbmd0aCJdO3JldHVybiB0aGlzLmVhY2hDaGlsZCgoZnVuY3Rpb24oZSl7dC5wdXNoKGUuc2VyaWFsaXplKCkpfSkpLHR9O3ZhciBTcj17Ij09Ijp4ciwiIT0iOmJyLCI+Ijp3ciwiPCI6X3IsIj49IjprciwiPD0iOlRyLGFycmF5OmhlLGF0OnVyLGJvb2xlYW46aGUsY2FzZTpkcixjb2FsZXNjZTpscixjb2xsYXRvcjpiZSxmb3JtYXQ6cGUsaW1hZ2U6ZGUsaW46ZnIsImluZGV4LW9mIjpocixpbnRlcnBvbGF0ZTpvciwiaW50ZXJwb2xhdGUtaGNsIjpvciwiaW50ZXJwb2xhdGUtbGFiIjpvcixsZW5ndGg6TXIsbGV0OmNyLGxpdGVyYWw6Y2UsbWF0Y2g6cHIsbnVtYmVyOmhlLCJudW1iZXItZm9ybWF0IjpBcixvYmplY3Q6aGUsc2xpY2U6bXIsc3RlcDpIZSxzdHJpbmc6aGUsInRvLWJvb2xlYW4iOmdlLCJ0by1jb2xvciI6Z2UsInRvLW51bWJlciI6Z2UsInRvLXN0cmluZyI6Z2UsdmFyOmplLHdpdGhpbjpSZX07ZnVuY3Rpb24gRXIodCxlKXt2YXIgcj1lWzBdLG49ZVsxXSxpPWVbMl0sYT1lWzNdO3I9ci5ldmFsdWF0ZSh0KSxuPW4uZXZhbHVhdGUodCksaT1pLmV2YWx1YXRlKHQpO3ZhciBvPWE/YS5ldmFsdWF0ZSh0KToxLHM9YWUocixuLGksbyk7aWYocyl0aHJvdyBuZXcgdWUocyk7cmV0dXJuIG5ldyB0ZShyLzI1NSpvLG4vMjU1Km8saS8yNTUqbyxvKX1mdW5jdGlvbiBMcih0LGUpe3JldHVybiB0IGluIGV9ZnVuY3Rpb24gQ3IodCxlKXt2YXIgcj1lW3RdO3JldHVybiB2b2lkIDA9PT1yP251bGw6cn1mdW5jdGlvbiBQcih0KXtyZXR1cm57dHlwZTp0fX1mdW5jdGlvbiBJcih0KXtyZXR1cm57cmVzdWx0OiJzdWNjZXNzIix2YWx1ZTp0fX1mdW5jdGlvbiBPcih0KXtyZXR1cm57cmVzdWx0OiJlcnJvciIsdmFsdWU6dH19ZnVuY3Rpb24genIodCl7cmV0dXJuImRhdGEtZHJpdmVuIj09PXRbInByb3BlcnR5LXR5cGUiXXx8ImNyb3NzLWZhZGVkLWRhdGEtZHJpdmVuIj09PXRbInByb3BlcnR5LXR5cGUiXX1mdW5jdGlvbiBEcih0KXtyZXR1cm4hIXQuZXhwcmVzc2lvbiYmdC5leHByZXNzaW9uLnBhcmFtZXRlcnMuaW5kZXhPZigiem9vbSIpPi0xfWZ1bmN0aW9uIFJyKHQpe3JldHVybiEhdC5leHByZXNzaW9uJiZ0LmV4cHJlc3Npb24uaW50ZXJwb2xhdGVkfWZ1bmN0aW9uIEZyKHQpe3JldHVybiB0IGluc3RhbmNlb2YgTnVtYmVyPyJudW1iZXIiOnQgaW5zdGFuY2VvZiBTdHJpbmc/InN0cmluZyI6dCBpbnN0YW5jZW9mIEJvb2xlYW4/ImJvb2xlYW4iOkFycmF5LmlzQXJyYXkodCk/ImFycmF5IjpudWxsPT09dD8ibnVsbCI6dHlwZW9mIHR9ZnVuY3Rpb24gQnIodCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT09dCYmIUFycmF5LmlzQXJyYXkodCl9ZnVuY3Rpb24gTnIodCl7cmV0dXJuIHR9ZnVuY3Rpb24ganIodCxlLHIpe3JldHVybiB2b2lkIDAhPT10P3Q6dm9pZCAwIT09ZT9lOnZvaWQgMCE9PXI/cjp2b2lkIDB9ZnVuY3Rpb24gVXIodCxlLHIsbixpKXtyZXR1cm4ganIodHlwZW9mIHI9PT1pP25bcl06dm9pZCAwLHQuZGVmYXVsdCxlLmRlZmF1bHQpfWZ1bmN0aW9uIFZyKHQsZSxyKXtpZigibnVtYmVyIiE9PUZyKHIpKXJldHVybiBqcih0LmRlZmF1bHQsZS5kZWZhdWx0KTt2YXIgbj10LnN0b3BzLmxlbmd0aDtpZigxPT09bilyZXR1cm4gdC5zdG9wc1swXVsxXTtpZihyPD10LnN0b3BzWzBdWzBdKXJldHVybiB0LnN0b3BzWzBdWzFdO2lmKHI+PXQuc3RvcHNbbi0xXVswXSlyZXR1cm4gdC5zdG9wc1tuLTFdWzFdO3ZhciBpPVZlKHQuc3RvcHMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdFswXX0pKSxyKTtyZXR1cm4gdC5zdG9wc1tpXVsxXX1mdW5jdGlvbiBIcih0LGUscil7dmFyIG49dm9pZCAwIT09dC5iYXNlP3QuYmFzZToxO2lmKCJudW1iZXIiIT09RnIocikpcmV0dXJuIGpyKHQuZGVmYXVsdCxlLmRlZmF1bHQpO3ZhciBpPXQuc3RvcHMubGVuZ3RoO2lmKDE9PT1pKXJldHVybiB0LnN0b3BzWzBdWzFdO2lmKHI8PXQuc3RvcHNbMF1bMF0pcmV0dXJuIHQuc3RvcHNbMF1bMV07aWYocj49dC5zdG9wc1tpLTFdWzBdKXJldHVybiB0LnN0b3BzW2ktMV1bMV07dmFyIGE9VmUodC5zdG9wcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0WzBdfSkpLHIpLG89ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9bi1yLGE9dC1yO3JldHVybiAwPT09aT8wOjE9PT1lP2EvaTooTWF0aC5wb3coZSxhKS0xKS8oTWF0aC5wb3coZSxpKS0xKX0ocixuLHQuc3RvcHNbYV1bMF0sdC5zdG9wc1thKzFdWzBdKSxzPXQuc3RvcHNbYV1bMV0sbD10LnN0b3BzW2ErMV1bMV0sYz1HZVtlLnR5cGVdfHxOcjtpZih0LmNvbG9yU3BhY2UmJiJyZ2IiIT09dC5jb2xvclNwYWNlKXt2YXIgdT1hclt0LmNvbG9yU3BhY2VdO2M9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdS5yZXZlcnNlKHUuaW50ZXJwb2xhdGUodS5mb3J3YXJkKHQpLHUuZm9yd2FyZChlKSxvKSl9fXJldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBzLmV2YWx1YXRlP3tldmFsdWF0ZTpmdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxlPWFyZ3VtZW50cy5sZW5ndGg7ZS0tOyl0W2VdPWFyZ3VtZW50c1tlXTt2YXIgcj1zLmV2YWx1YXRlLmFwcGx5KHZvaWQgMCx0KSxuPWwuZXZhbHVhdGUuYXBwbHkodm9pZCAwLHQpO2lmKHZvaWQgMCE9PXImJnZvaWQgMCE9PW4pcmV0dXJuIGMocixuLG8pfX06YyhzLGwsbyl9ZnVuY3Rpb24gcXIodCxlLHIpe3JldHVybiJjb2xvciI9PT1lLnR5cGU/cj10ZS5wYXJzZShyKToiZm9ybWF0dGVkIj09PWUudHlwZT9yPW5lLmZyb21TdHJpbmcoci50b1N0cmluZygpKToicmVzb2x2ZWRJbWFnZSI9PT1lLnR5cGU/cj1pZS5mcm9tU3RyaW5nKHIudG9TdHJpbmcoKSk6RnIocik9PT1lLnR5cGV8fCJlbnVtIj09PWUudHlwZSYmZS52YWx1ZXNbcl18fChyPXZvaWQgMCksanIocix0LmRlZmF1bHQsZS5kZWZhdWx0KX14ZS5yZWdpc3RlcihTcix7ZXJyb3I6W3traW5kOiJlcnJvciJ9LFtOdF0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdO3Rocm93IG5ldyB1ZShyLmV2YWx1YXRlKHQpKX1dLHR5cGVvZjpbTnQsW0h0XSxmdW5jdGlvbih0LGUpe3JldHVybiBYdChzZShlWzBdLmV2YWx1YXRlKHQpKSl9XSwidG8tcmdiYSI6W1d0KEJ0LDQpLFtVdF0sZnVuY3Rpb24odCxlKXtyZXR1cm4gZVswXS5ldmFsdWF0ZSh0KS50b0FycmF5KCl9XSxyZ2I6W1V0LFtCdCxCdCxCdF0sRXJdLHJnYmE6W1V0LFtCdCxCdCxCdCxCdF0sRXJdLGhhczp7dHlwZTpqdCxvdmVybG9hZHM6W1tbTnRdLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIExyKGVbMF0uZXZhbHVhdGUodCksdC5wcm9wZXJ0aWVzKCkpfV0sW1tOdCxWdF0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLG49ZVsxXTtyZXR1cm4gTHIoci5ldmFsdWF0ZSh0KSxuLmV2YWx1YXRlKHQpKX1dXX0sZ2V0Ont0eXBlOkh0LG92ZXJsb2FkczpbW1tOdF0sZnVuY3Rpb24odCxlKXtyZXR1cm4gQ3IoZVswXS5ldmFsdWF0ZSh0KSx0LnByb3BlcnRpZXMoKSl9XSxbW050LFZ0XSxmdW5jdGlvbih0LGUpe3ZhciByPWVbMF0sbj1lWzFdO3JldHVybiBDcihyLmV2YWx1YXRlKHQpLG4uZXZhbHVhdGUodCkpfV1dfSwiZmVhdHVyZS1zdGF0ZSI6W0h0LFtOdF0sZnVuY3Rpb24odCxlKXtyZXR1cm4gQ3IoZVswXS5ldmFsdWF0ZSh0KSx0LmZlYXR1cmVTdGF0ZXx8e30pfV0scHJvcGVydGllczpbVnQsW10sZnVuY3Rpb24odCl7cmV0dXJuIHQucHJvcGVydGllcygpfV0sImdlb21ldHJ5LXR5cGUiOltOdCxbXSxmdW5jdGlvbih0KXtyZXR1cm4gdC5nZW9tZXRyeVR5cGUoKX1dLGlkOltIdCxbXSxmdW5jdGlvbih0KXtyZXR1cm4gdC5pZCgpfV0sem9vbTpbQnQsW10sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2xvYmFscy56b29tfV0sImhlYXRtYXAtZGVuc2l0eSI6W0J0LFtdLGZ1bmN0aW9uKHQpe3JldHVybiB0Lmdsb2JhbHMuaGVhdG1hcERlbnNpdHl8fDB9XSwibGluZS1wcm9ncmVzcyI6W0J0LFtdLGZ1bmN0aW9uKHQpe3JldHVybiB0Lmdsb2JhbHMubGluZVByb2dyZXNzfHwwfV0sYWNjdW11bGF0ZWQ6W0h0LFtdLGZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDA9PT10Lmdsb2JhbHMuYWNjdW11bGF0ZWQ/bnVsbDp0Lmdsb2JhbHMuYWNjdW11bGF0ZWR9XSwiKyI6W0J0LFByKEJ0KSxmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wLG49MCxpPWU7bjxpLmxlbmd0aDtuKz0xKXtyKz1pW25dLmV2YWx1YXRlKHQpfXJldHVybiByfV0sIioiOltCdCxQcihCdCksZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9MSxuPTAsaT1lO248aS5sZW5ndGg7bis9MSl7cio9aVtuXS5ldmFsdWF0ZSh0KX1yZXR1cm4gcn1dLCItIjp7dHlwZTpCdCxvdmVybG9hZHM6W1tbQnQsQnRdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxuPWVbMV07cmV0dXJuIHIuZXZhbHVhdGUodCktbi5ldmFsdWF0ZSh0KX1dLFtbQnRdLGZ1bmN0aW9uKHQsZSl7cmV0dXJuLWVbMF0uZXZhbHVhdGUodCl9XV19LCIvIjpbQnQsW0J0LEJ0XSxmdW5jdGlvbih0LGUpe3ZhciByPWVbMF0sbj1lWzFdO3JldHVybiByLmV2YWx1YXRlKHQpL24uZXZhbHVhdGUodCl9XSwiJSI6W0J0LFtCdCxCdF0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLG49ZVsxXTtyZXR1cm4gci5ldmFsdWF0ZSh0KSVuLmV2YWx1YXRlKHQpfV0sbG4yOltCdCxbXSxmdW5jdGlvbigpe3JldHVybiBNYXRoLkxOMn1dLHBpOltCdCxbXSxmdW5jdGlvbigpe3JldHVybiBNYXRoLlBJfV0sZTpbQnQsW10sZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5FfV0sIl4iOltCdCxbQnQsQnRdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxuPWVbMV07cmV0dXJuIE1hdGgucG93KHIuZXZhbHVhdGUodCksbi5ldmFsdWF0ZSh0KSl9XSxzcXJ0OltCdCxbQnRdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXTtyZXR1cm4gTWF0aC5zcXJ0KHIuZXZhbHVhdGUodCkpfV0sbG9nMTA6W0J0LFtCdF0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdO3JldHVybiBNYXRoLmxvZyhyLmV2YWx1YXRlKHQpKS9NYXRoLkxOMTB9XSxsbjpbQnQsW0J0XSxmdW5jdGlvbih0LGUpe3ZhciByPWVbMF07cmV0dXJuIE1hdGgubG9nKHIuZXZhbHVhdGUodCkpfV0sbG9nMjpbQnQsW0J0XSxmdW5jdGlvbih0LGUpe3ZhciByPWVbMF07cmV0dXJuIE1hdGgubG9nKHIuZXZhbHVhdGUodCkpL01hdGguTE4yfV0sc2luOltCdCxbQnRdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXTtyZXR1cm4gTWF0aC5zaW4oci5ldmFsdWF0ZSh0KSl9XSxjb3M6W0J0LFtCdF0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdO3JldHVybiBNYXRoLmNvcyhyLmV2YWx1YXRlKHQpKX1dLHRhbjpbQnQsW0J0XSxmdW5jdGlvbih0LGUpe3ZhciByPWVbMF07cmV0dXJuIE1hdGgudGFuKHIuZXZhbHVhdGUodCkpfV0sYXNpbjpbQnQsW0J0XSxmdW5jdGlvbih0LGUpe3ZhciByPWVbMF07cmV0dXJuIE1hdGguYXNpbihyLmV2YWx1YXRlKHQpKX1dLGFjb3M6W0J0LFtCdF0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdO3JldHVybiBNYXRoLmFjb3Moci5ldmFsdWF0ZSh0KSl9XSxhdGFuOltCdCxbQnRdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXTtyZXR1cm4gTWF0aC5hdGFuKHIuZXZhbHVhdGUodCkpfV0sbWluOltCdCxQcihCdCksZnVuY3Rpb24odCxlKXtyZXR1cm4gTWF0aC5taW4uYXBwbHkoTWF0aCxlLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZXZhbHVhdGUodCl9KSkpfV0sbWF4OltCdCxQcihCdCksZnVuY3Rpb24odCxlKXtyZXR1cm4gTWF0aC5tYXguYXBwbHkoTWF0aCxlLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZXZhbHVhdGUodCl9KSkpfV0sYWJzOltCdCxbQnRdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXTtyZXR1cm4gTWF0aC5hYnMoci5ldmFsdWF0ZSh0KSl9XSxyb3VuZDpbQnQsW0J0XSxmdW5jdGlvbih0LGUpe3ZhciByPWVbMF0uZXZhbHVhdGUodCk7cmV0dXJuIHI8MD8tTWF0aC5yb3VuZCgtcik6TWF0aC5yb3VuZChyKX1dLGZsb29yOltCdCxbQnRdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXTtyZXR1cm4gTWF0aC5mbG9vcihyLmV2YWx1YXRlKHQpKX1dLGNlaWw6W0J0LFtCdF0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdO3JldHVybiBNYXRoLmNlaWwoci5ldmFsdWF0ZSh0KSl9XSwiZmlsdGVyLT09IjpbanQsW050LEh0XSxmdW5jdGlvbih0LGUpe3ZhciByPWVbMF0sbj1lWzFdO3JldHVybiB0LnByb3BlcnRpZXMoKVtyLnZhbHVlXT09PW4udmFsdWV9XSwiZmlsdGVyLWlkLT09IjpbanQsW0h0XSxmdW5jdGlvbih0LGUpe3ZhciByPWVbMF07cmV0dXJuIHQuaWQoKT09PXIudmFsdWV9XSwiZmlsdGVyLXR5cGUtPT0iOltqdCxbTnRdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXTtyZXR1cm4gdC5nZW9tZXRyeVR5cGUoKT09PXIudmFsdWV9XSwiZmlsdGVyLTwiOltqdCxbTnQsSHRdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxuPWVbMV0saT10LnByb3BlcnRpZXMoKVtyLnZhbHVlXSxhPW4udmFsdWU7cmV0dXJuIHR5cGVvZiBpPT10eXBlb2YgYSYmaTxhfV0sImZpbHRlci1pZC08IjpbanQsW0h0XSxmdW5jdGlvbih0LGUpe3ZhciByPWVbMF0sbj10LmlkKCksaT1yLnZhbHVlO3JldHVybiB0eXBlb2Ygbj09dHlwZW9mIGkmJm48aX1dLCJmaWx0ZXItPiI6W2p0LFtOdCxIdF0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLG49ZVsxXSxpPXQucHJvcGVydGllcygpW3IudmFsdWVdLGE9bi52YWx1ZTtyZXR1cm4gdHlwZW9mIGk9PXR5cGVvZiBhJiZpPmF9XSwiZmlsdGVyLWlkLT4iOltqdCxbSHRdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxuPXQuaWQoKSxpPXIudmFsdWU7cmV0dXJuIHR5cGVvZiBuPT10eXBlb2YgaSYmbj5pfV0sImZpbHRlci08PSI6W2p0LFtOdCxIdF0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLG49ZVsxXSxpPXQucHJvcGVydGllcygpW3IudmFsdWVdLGE9bi52YWx1ZTtyZXR1cm4gdHlwZW9mIGk9PXR5cGVvZiBhJiZpPD1hfV0sImZpbHRlci1pZC08PSI6W2p0LFtIdF0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLG49dC5pZCgpLGk9ci52YWx1ZTtyZXR1cm4gdHlwZW9mIG49PXR5cGVvZiBpJiZuPD1pfV0sImZpbHRlci0+PSI6W2p0LFtOdCxIdF0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLG49ZVsxXSxpPXQucHJvcGVydGllcygpW3IudmFsdWVdLGE9bi52YWx1ZTtyZXR1cm4gdHlwZW9mIGk9PXR5cGVvZiBhJiZpPj1hfV0sImZpbHRlci1pZC0+PSI6W2p0LFtIdF0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLG49dC5pZCgpLGk9ci52YWx1ZTtyZXR1cm4gdHlwZW9mIG49PXR5cGVvZiBpJiZuPj1pfV0sImZpbHRlci1oYXMiOltqdCxbSHRdLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGVbMF0udmFsdWUgaW4gdC5wcm9wZXJ0aWVzKCl9XSwiZmlsdGVyLWhhcy1pZCI6W2p0LFtdLGZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT09dC5pZCgpJiZ2b2lkIDAhPT10LmlkKCl9XSwiZmlsdGVyLXR5cGUtaW4iOltqdCxbV3QoTnQpXSxmdW5jdGlvbih0LGUpe3JldHVybiBlWzBdLnZhbHVlLmluZGV4T2YodC5nZW9tZXRyeVR5cGUoKSk+PTB9XSwiZmlsdGVyLWlkLWluIjpbanQsW1d0KEh0KV0sZnVuY3Rpb24odCxlKXtyZXR1cm4gZVswXS52YWx1ZS5pbmRleE9mKHQuaWQoKSk+PTB9XSwiZmlsdGVyLWluLXNtYWxsIjpbanQsW050LFd0KEh0KV0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdO3JldHVybiBlWzFdLnZhbHVlLmluZGV4T2YodC5wcm9wZXJ0aWVzKClbci52YWx1ZV0pPj0wfV0sImZpbHRlci1pbi1sYXJnZSI6W2p0LFtOdCxXdChIdCldLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxuPWVbMV07cmV0dXJuIGZ1bmN0aW9uKHQsZSxyLG4pe2Zvcig7cjw9bjspe3ZhciBpPXIrbj4+MTtpZihlW2ldPT09dClyZXR1cm4hMDtlW2ldPnQ/bj1pLTE6cj1pKzF9cmV0dXJuITF9KHQucHJvcGVydGllcygpW3IudmFsdWVdLG4udmFsdWUsMCxuLnZhbHVlLmxlbmd0aC0xKX1dLGFsbDp7dHlwZTpqdCxvdmVybG9hZHM6W1tbanQsanRdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxuPWVbMV07cmV0dXJuIHIuZXZhbHVhdGUodCkmJm4uZXZhbHVhdGUodCl9XSxbUHIoanQpLGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTAsbj1lO3I8bi5sZW5ndGg7cis9MSl7aWYoIW5bcl0uZXZhbHVhdGUodCkpcmV0dXJuITF9cmV0dXJuITB9XV19LGFueTp7dHlwZTpqdCxvdmVybG9hZHM6W1tbanQsanRdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxuPWVbMV07cmV0dXJuIHIuZXZhbHVhdGUodCl8fG4uZXZhbHVhdGUodCl9XSxbUHIoanQpLGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTAsbj1lO3I8bi5sZW5ndGg7cis9MSl7aWYobltyXS5ldmFsdWF0ZSh0KSlyZXR1cm4hMH1yZXR1cm4hMX1dXX0sIiEiOltqdCxbanRdLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIWVbMF0uZXZhbHVhdGUodCl9XSwiaXMtc3VwcG9ydGVkLXNjcmlwdCI6W2p0LFtOdF0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLG49dC5nbG9iYWxzJiZ0Lmdsb2JhbHMuaXNTdXBwb3J0ZWRTY3JpcHQ7cmV0dXJuIW58fG4oci5ldmFsdWF0ZSh0KSl9XSx1cGNhc2U6W050LFtOdF0sZnVuY3Rpb24odCxlKXtyZXR1cm4gZVswXS5ldmFsdWF0ZSh0KS50b1VwcGVyQ2FzZSgpfV0sZG93bmNhc2U6W050LFtOdF0sZnVuY3Rpb24odCxlKXtyZXR1cm4gZVswXS5ldmFsdWF0ZSh0KS50b0xvd2VyQ2FzZSgpfV0sY29uY2F0OltOdCxQcihIdCksZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBsZShlLmV2YWx1YXRlKHQpKX0pKS5qb2luKCIiKX1dLCJyZXNvbHZlZC1sb2NhbGUiOltOdCxbcXRdLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGVbMF0uZXZhbHVhdGUodCkucmVzb2x2ZWRMb2NhbGUoKX1dfSk7dmFyIEdyPWZ1bmN0aW9uKHQsZSl7dGhpcy5leHByZXNzaW9uPXQsdGhpcy5fd2FybmluZ0hpc3Rvcnk9e30sdGhpcy5fZXZhbHVhdG9yPW5ldyB5ZSx0aGlzLl9kZWZhdWx0VmFsdWU9ZT9mdW5jdGlvbih0KXtyZXR1cm4iY29sb3IiPT09dC50eXBlJiZCcih0LmRlZmF1bHQpP25ldyB0ZSgwLDAsMCwwKToiY29sb3IiPT09dC50eXBlP3RlLnBhcnNlKHQuZGVmYXVsdCl8fG51bGw6dm9pZCAwPT09dC5kZWZhdWx0P251bGw6dC5kZWZhdWx0fShlKTpudWxsLHRoaXMuX2VudW1WYWx1ZXM9ZSYmImVudW0iPT09ZS50eXBlP2UudmFsdWVzOm51bGx9O2Z1bmN0aW9uIFlyKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpJiZ0Lmxlbmd0aD4wJiYic3RyaW5nIj09dHlwZW9mIHRbMF0mJnRbMF1pbiBTcn1mdW5jdGlvbiBXcih0LGUpe3ZhciByPW5ldyBVZShTcixbXSxlP2Z1bmN0aW9uKHQpe3ZhciBlPXtjb2xvcjpVdCxzdHJpbmc6TnQsbnVtYmVyOkJ0LGVudW06TnQsYm9vbGVhbjpqdCxmb3JtYXR0ZWQ6R3QscmVzb2x2ZWRJbWFnZTpZdH07aWYoImFycmF5Ij09PXQudHlwZSlyZXR1cm4gV3QoZVt0LnZhbHVlXXx8SHQsdC5sZW5ndGgpO3JldHVybiBlW3QudHlwZV19KGUpOnZvaWQgMCksbj1yLnBhcnNlKHQsdm9pZCAwLHZvaWQgMCx2b2lkIDAsZSYmInN0cmluZyI9PT1lLnR5cGU/e3R5cGVBbm5vdGF0aW9uOiJjb2VyY2UifTp2b2lkIDApO3JldHVybiBuP0lyKG5ldyBHcihuLGUpKTpPcihyLmVycm9ycyl9R3IucHJvdG90eXBlLmV2YWx1YXRlV2l0aG91dEVycm9ySGFuZGxpbmc9ZnVuY3Rpb24odCxlLHIsbixpLGEpe3JldHVybiB0aGlzLl9ldmFsdWF0b3IuZ2xvYmFscz10LHRoaXMuX2V2YWx1YXRvci5mZWF0dXJlPWUsdGhpcy5fZXZhbHVhdG9yLmZlYXR1cmVTdGF0ZT1yLHRoaXMuX2V2YWx1YXRvci5jYW5vbmljYWw9bix0aGlzLl9ldmFsdWF0b3IuYXZhaWxhYmxlSW1hZ2VzPWl8fG51bGwsdGhpcy5fZXZhbHVhdG9yLmZvcm1hdHRlZFNlY3Rpb249YSx0aGlzLmV4cHJlc3Npb24uZXZhbHVhdGUodGhpcy5fZXZhbHVhdG9yKX0sR3IucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKHQsZSxyLG4saSxhKXt0aGlzLl9ldmFsdWF0b3IuZ2xvYmFscz10LHRoaXMuX2V2YWx1YXRvci5mZWF0dXJlPWV8fG51bGwsdGhpcy5fZXZhbHVhdG9yLmZlYXR1cmVTdGF0ZT1yfHxudWxsLHRoaXMuX2V2YWx1YXRvci5jYW5vbmljYWw9bix0aGlzLl9ldmFsdWF0b3IuYXZhaWxhYmxlSW1hZ2VzPWl8fG51bGwsdGhpcy5fZXZhbHVhdG9yLmZvcm1hdHRlZFNlY3Rpb249YXx8bnVsbDt0cnl7dmFyIG89dGhpcy5leHByZXNzaW9uLmV2YWx1YXRlKHRoaXMuX2V2YWx1YXRvcik7aWYobnVsbD09b3x8Im51bWJlciI9PXR5cGVvZiBvJiZvIT1vKXJldHVybiB0aGlzLl9kZWZhdWx0VmFsdWU7aWYodGhpcy5fZW51bVZhbHVlcyYmIShvIGluIHRoaXMuX2VudW1WYWx1ZXMpKXRocm93IG5ldyB1ZSgiRXhwZWN0ZWQgdmFsdWUgdG8gYmUgb25lIG9mICIrT2JqZWN0LmtleXModGhpcy5fZW51bVZhbHVlcykubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCl9KSkuam9pbigiLCAiKSsiLCBidXQgZm91bmQgIitKU09OLnN0cmluZ2lmeShvKSsiIGluc3RlYWQuIik7cmV0dXJuIG99Y2F0Y2godCl7cmV0dXJuIHRoaXMuX3dhcm5pbmdIaXN0b3J5W3QubWVzc2FnZV18fCh0aGlzLl93YXJuaW5nSGlzdG9yeVt0Lm1lc3NhZ2VdPSEwLCJ1bmRlZmluZWQiIT10eXBlb2YgY29uc29sZSYmY29uc29sZS53YXJuKHQubWVzc2FnZSkpLHRoaXMuX2RlZmF1bHRWYWx1ZX19O3ZhciBYcj1mdW5jdGlvbih0LGUpe3RoaXMua2luZD10LHRoaXMuX3N0eWxlRXhwcmVzc2lvbj1lLHRoaXMuaXNTdGF0ZURlcGVuZGVudD0iY29uc3RhbnQiIT09dCYmIUJlKGUuZXhwcmVzc2lvbil9O1hyLnByb3RvdHlwZS5ldmFsdWF0ZVdpdGhvdXRFcnJvckhhbmRsaW5nPWZ1bmN0aW9uKHQsZSxyLG4saSxhKXtyZXR1cm4gdGhpcy5fc3R5bGVFeHByZXNzaW9uLmV2YWx1YXRlV2l0aG91dEVycm9ySGFuZGxpbmcodCxlLHIsbixpLGEpfSxYci5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24odCxlLHIsbixpLGEpe3JldHVybiB0aGlzLl9zdHlsZUV4cHJlc3Npb24uZXZhbHVhdGUodCxlLHIsbixpLGEpfTt2YXIgWnI9ZnVuY3Rpb24odCxlLHIsbil7dGhpcy5raW5kPXQsdGhpcy56b29tU3RvcHM9cix0aGlzLl9zdHlsZUV4cHJlc3Npb249ZSx0aGlzLmlzU3RhdGVEZXBlbmRlbnQ9ImNhbWVyYSIhPT10JiYhQmUoZS5leHByZXNzaW9uKSx0aGlzLmludGVycG9sYXRpb25UeXBlPW59O2Z1bmN0aW9uIEpyKHQsZSl7aWYoImVycm9yIj09PSh0PVdyKHQsZSkpLnJlc3VsdClyZXR1cm4gdDt2YXIgcj10LnZhbHVlLmV4cHJlc3Npb24sbj1GZShyKTtpZighbiYmIXpyKGUpKXJldHVybiBPcihbbmV3IER0KCIiLCJkYXRhIGV4cHJlc3Npb25zIG5vdCBzdXBwb3J0ZWQiKV0pO3ZhciBpPU5lKHIsWyJ6b29tIl0pO2lmKCFpJiYhRHIoZSkpcmV0dXJuIE9yKFtuZXcgRHQoIiIsInpvb20gZXhwcmVzc2lvbnMgbm90IHN1cHBvcnRlZCIpXSk7dmFyIGE9ZnVuY3Rpb24gdChlKXt2YXIgcj1udWxsO2lmKGUgaW5zdGFuY2VvZiBjcilyPXQoZS5yZXN1bHQpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIGxyKWZvcih2YXIgbj0wLGk9ZS5hcmdzO248aS5sZW5ndGg7bis9MSl7dmFyIGE9aVtuXTtpZihyPXQoYSkpYnJlYWt9ZWxzZShlIGluc3RhbmNlb2YgSGV8fGUgaW5zdGFuY2VvZiBvcikmJmUuaW5wdXQgaW5zdGFuY2VvZiB4ZSYmInpvb20iPT09ZS5pbnB1dC5uYW1lJiYocj1lKTtpZihyIGluc3RhbmNlb2YgRHQpcmV0dXJuIHI7cmV0dXJuIGUuZWFjaENoaWxkKChmdW5jdGlvbihlKXt2YXIgbj10KGUpO24gaW5zdGFuY2VvZiBEdD9yPW46IXImJm4/cj1uZXcgRHQoIiIsJyJ6b29tIiBleHByZXNzaW9uIG1heSBvbmx5IGJlIHVzZWQgYXMgaW5wdXQgdG8gYSB0b3AtbGV2ZWwgInN0ZXAiIG9yICJpbnRlcnBvbGF0ZSIgZXhwcmVzc2lvbi4nKTpyJiZuJiZyIT09biYmKHI9bmV3IER0KCIiLCdPbmx5IG9uZSB6b29tLWJhc2VkICJzdGVwIiBvciAiaW50ZXJwb2xhdGUiIHN1YmV4cHJlc3Npb24gbWF5IGJlIHVzZWQgaW4gYW4gZXhwcmVzc2lvbi4nKSl9KSkscn0ocik7aWYoIWEmJiFpKXJldHVybiBPcihbbmV3IER0KCIiLCciem9vbSIgZXhwcmVzc2lvbiBtYXkgb25seSBiZSB1c2VkIGFzIGlucHV0IHRvIGEgdG9wLWxldmVsICJzdGVwIiBvciAiaW50ZXJwb2xhdGUiIGV4cHJlc3Npb24uJyldKTtpZihhIGluc3RhbmNlb2YgRHQpcmV0dXJuIE9yKFthXSk7aWYoYSBpbnN0YW5jZW9mIG9yJiYhUnIoZSkpcmV0dXJuIE9yKFtuZXcgRHQoIiIsJyJpbnRlcnBvbGF0ZSIgZXhwcmVzc2lvbnMgY2Fubm90IGJlIHVzZWQgd2l0aCB0aGlzIHByb3BlcnR5JyldKTtpZighYSlyZXR1cm4gSXIobmV3IFhyKG4/ImNvbnN0YW50Ijoic291cmNlIix0LnZhbHVlKSk7dmFyIG89YSBpbnN0YW5jZW9mIG9yP2EuaW50ZXJwb2xhdGlvbjp2b2lkIDA7cmV0dXJuIElyKG5ldyBacihuPyJjYW1lcmEiOiJjb21wb3NpdGUiLHQudmFsdWUsYS5sYWJlbHMsbykpfVpyLnByb3RvdHlwZS5ldmFsdWF0ZVdpdGhvdXRFcnJvckhhbmRsaW5nPWZ1bmN0aW9uKHQsZSxyLG4saSxhKXtyZXR1cm4gdGhpcy5fc3R5bGVFeHByZXNzaW9uLmV2YWx1YXRlV2l0aG91dEVycm9ySGFuZGxpbmcodCxlLHIsbixpLGEpfSxaci5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24odCxlLHIsbixpLGEpe3JldHVybiB0aGlzLl9zdHlsZUV4cHJlc3Npb24uZXZhbHVhdGUodCxlLHIsbixpLGEpfSxaci5wcm90b3R5cGUuaW50ZXJwb2xhdGlvbkZhY3Rvcj1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRoaXMuaW50ZXJwb2xhdGlvblR5cGU/b3IuaW50ZXJwb2xhdGlvbkZhY3Rvcih0aGlzLmludGVycG9sYXRpb25UeXBlLHQsZSxyKTowfTt2YXIgS3I9ZnVuY3Rpb24odCxlKXt0aGlzLl9wYXJhbWV0ZXJzPXQsdGhpcy5fc3BlY2lmaWNhdGlvbj1lLEl0KHRoaXMsZnVuY3Rpb24gdChlLHIpe3ZhciBuLGksYSxvPSJjb2xvciI9PT1yLnR5cGUscz1lLnN0b3BzJiYib2JqZWN0Ij09dHlwZW9mIGUuc3RvcHNbMF1bMF0sbD1zfHx2b2lkIDAhPT1lLnByb3BlcnR5LGM9c3x8IWwsdT1lLnR5cGV8fChScihyKT8iZXhwb25lbnRpYWwiOiJpbnRlcnZhbCIpO2lmKG8mJigoZT1JdCh7fSxlKSkuc3RvcHMmJihlLnN0b3BzPWUuc3RvcHMubWFwKChmdW5jdGlvbih0KXtyZXR1cm5bdFswXSx0ZS5wYXJzZSh0WzFdKV19KSkpLGUuZGVmYXVsdD9lLmRlZmF1bHQ9dGUucGFyc2UoZS5kZWZhdWx0KTplLmRlZmF1bHQ9dGUucGFyc2Uoci5kZWZhdWx0KSksZS5jb2xvclNwYWNlJiYicmdiIiE9PWUuY29sb3JTcGFjZSYmIWFyW2UuY29sb3JTcGFjZV0pdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGNvbG9yIHNwYWNlOiAiK2UuY29sb3JTcGFjZSk7aWYoImV4cG9uZW50aWFsIj09PXUpbj1IcjtlbHNlIGlmKCJpbnRlcnZhbCI9PT11KW49VnI7ZWxzZSBpZigiY2F0ZWdvcmljYWwiPT09dSl7bj1VcixpPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKHZhciBmPTAsaD1lLnN0b3BzO2Y8aC5sZW5ndGg7Zis9MSl7dmFyIHA9aFtmXTtpW3BbMF1dPXBbMV19YT10eXBlb2YgZS5zdG9wc1swXVswXX1lbHNle2lmKCJpZGVudGl0eSIhPT11KXRocm93IG5ldyBFcnJvcignVW5rbm93biBmdW5jdGlvbiB0eXBlICInK3UrJyInKTtuPXFyfWlmKHMpe2Zvcih2YXIgZD17fSxtPVtdLGc9MDtnPGUuc3RvcHMubGVuZ3RoO2crKyl7dmFyIHY9ZS5zdG9wc1tnXSx5PXZbMF0uem9vbTt2b2lkIDA9PT1kW3ldJiYoZFt5XT17em9vbTp5LHR5cGU6ZS50eXBlLHByb3BlcnR5OmUucHJvcGVydHksZGVmYXVsdDplLmRlZmF1bHQsc3RvcHM6W119LG0ucHVzaCh5KSksZFt5XS5zdG9wcy5wdXNoKFt2WzBdLnZhbHVlLHZbMV1dKX1mb3IodmFyIHg9W10sYj0wLF89bTtiPF8ubGVuZ3RoO2IrPTEpe3ZhciB3PV9bYl07eC5wdXNoKFtkW3ddLnpvb20sdChkW3ddLHIpXSl9dmFyIFQ9e25hbWU6ImxpbmVhciJ9O3JldHVybntraW5kOiJjb21wb3NpdGUiLGludGVycG9sYXRpb25UeXBlOlQsaW50ZXJwb2xhdGlvbkZhY3Rvcjpvci5pbnRlcnBvbGF0aW9uRmFjdG9yLmJpbmQodm9pZCAwLFQpLHpvb21TdG9wczp4Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHRbMF19KSksZXZhbHVhdGU6ZnVuY3Rpb24odCxuKXt2YXIgaT10Lnpvb207cmV0dXJuIEhyKHtzdG9wczp4LGJhc2U6ZS5iYXNlfSxyLGkpLmV2YWx1YXRlKGksbil9fX1pZihjKXt2YXIgaz0iZXhwb25lbnRpYWwiPT09dT97bmFtZToiZXhwb25lbnRpYWwiLGJhc2U6dm9pZCAwIT09ZS5iYXNlP2UuYmFzZToxfTpudWxsO3JldHVybntraW5kOiJjYW1lcmEiLGludGVycG9sYXRpb25UeXBlOmssaW50ZXJwb2xhdGlvbkZhY3Rvcjpvci5pbnRlcnBvbGF0aW9uRmFjdG9yLmJpbmQodm9pZCAwLGspLHpvb21TdG9wczplLnN0b3BzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHRbMF19KSksZXZhbHVhdGU6ZnVuY3Rpb24odCl7dmFyIG89dC56b29tO3JldHVybiBuKGUscixvLGksYSl9fX1yZXR1cm57a2luZDoic291cmNlIixldmFsdWF0ZTpmdW5jdGlvbih0LG8pe3ZhciBzPW8mJm8ucHJvcGVydGllcz9vLnByb3BlcnRpZXNbZS5wcm9wZXJ0eV06dm9pZCAwO3JldHVybiB2b2lkIDA9PT1zP2pyKGUuZGVmYXVsdCxyLmRlZmF1bHQpOm4oZSxyLHMsaSxhKX19fSh0aGlzLl9wYXJhbWV0ZXJzLHRoaXMuX3NwZWNpZmljYXRpb24pKX07ZnVuY3Rpb24gUXIodCl7dmFyIGU9dC5rZXkscj10LnZhbHVlLG49dC52YWx1ZVNwZWN8fHt9LGk9dC5vYmplY3RFbGVtZW50VmFsaWRhdG9yc3x8e30sYT10LnN0eWxlLG89dC5zdHlsZVNwZWMscz1bXSxsPUZyKHIpO2lmKCJvYmplY3QiIT09bClyZXR1cm5bbmV3IEN0KGUsciwib2JqZWN0IGV4cGVjdGVkLCAiK2wrIiBmb3VuZCIpXTtmb3IodmFyIGMgaW4gcil7dmFyIHU9Yy5zcGxpdCgiLiIpWzBdLGY9blt1XXx8blsiKiJdLGg9dm9pZCAwO2lmKGlbdV0paD1pW3VdO2Vsc2UgaWYoblt1XSloPWtuO2Vsc2UgaWYoaVsiKiJdKWg9aVsiKiJdO2Vsc2V7aWYoIW5bIioiXSl7cy5wdXNoKG5ldyBDdChlLHJbY10sJ3Vua25vd24gcHJvcGVydHkgIicrYysnIicpKTtjb250aW51ZX1oPWtufXM9cy5jb25jYXQoaCh7a2V5OihlP2UrIi4iOmUpK2MsdmFsdWU6cltjXSx2YWx1ZVNwZWM6ZixzdHlsZTphLHN0eWxlU3BlYzpvLG9iamVjdDpyLG9iamVjdEtleTpjfSxyKSl9Zm9yKHZhciBwIGluIG4paVtwXXx8bltwXS5yZXF1aXJlZCYmdm9pZCAwPT09bltwXS5kZWZhdWx0JiZ2b2lkIDA9PT1yW3BdJiZzLnB1c2gobmV3IEN0KGUsciwnbWlzc2luZyByZXF1aXJlZCBwcm9wZXJ0eSAiJytwKyciJykpO3JldHVybiBzfWZ1bmN0aW9uICRyKHQpe3ZhciBlPXQudmFsdWUscj10LnZhbHVlU3BlYyxuPXQuc3R5bGUsaT10LnN0eWxlU3BlYyxhPXQua2V5LG89dC5hcnJheUVsZW1lbnRWYWxpZGF0b3J8fGtuO2lmKCJhcnJheSIhPT1GcihlKSlyZXR1cm5bbmV3IEN0KGEsZSwiYXJyYXkgZXhwZWN0ZWQsICIrRnIoZSkrIiBmb3VuZCIpXTtpZihyLmxlbmd0aCYmZS5sZW5ndGghPT1yLmxlbmd0aClyZXR1cm5bbmV3IEN0KGEsZSwiYXJyYXkgbGVuZ3RoICIrci5sZW5ndGgrIiBleHBlY3RlZCwgbGVuZ3RoICIrZS5sZW5ndGgrIiBmb3VuZCIpXTtpZihyWyJtaW4tbGVuZ3RoIl0mJmUubGVuZ3RoPHJbIm1pbi1sZW5ndGgiXSlyZXR1cm5bbmV3IEN0KGEsZSwiYXJyYXkgbGVuZ3RoIGF0IGxlYXN0ICIrclsibWluLWxlbmd0aCJdKyIgZXhwZWN0ZWQsIGxlbmd0aCAiK2UubGVuZ3RoKyIgZm91bmQiKV07dmFyIHM9e3R5cGU6ci52YWx1ZSx2YWx1ZXM6ci52YWx1ZXN9O2kuJHZlcnNpb248NyYmKHMuZnVuY3Rpb249ci5mdW5jdGlvbiksIm9iamVjdCI9PT1GcihyLnZhbHVlKSYmKHM9ci52YWx1ZSk7Zm9yKHZhciBsPVtdLGM9MDtjPGUubGVuZ3RoO2MrKylsPWwuY29uY2F0KG8oe2FycmF5OmUsYXJyYXlJbmRleDpjLHZhbHVlOmVbY10sdmFsdWVTcGVjOnMsc3R5bGU6bixzdHlsZVNwZWM6aSxrZXk6YSsiWyIrYysiXSJ9KSk7cmV0dXJuIGx9ZnVuY3Rpb24gdG4odCl7dmFyIGU9dC5rZXkscj10LnZhbHVlLG49dC52YWx1ZVNwZWMsaT1GcihyKTtyZXR1cm4ibnVtYmVyIj09PWkmJnIhPXImJihpPSJOYU4iKSwibnVtYmVyIiE9PWk/W25ldyBDdChlLHIsIm51bWJlciBleHBlY3RlZCwgIitpKyIgZm91bmQiKV06Im1pbmltdW0iaW4gbiYmcjxuLm1pbmltdW0/W25ldyBDdChlLHIscisiIGlzIGxlc3MgdGhhbiB0aGUgbWluaW11bSB2YWx1ZSAiK24ubWluaW11bSldOiJtYXhpbXVtImluIG4mJnI+bi5tYXhpbXVtP1tuZXcgQ3QoZSxyLHIrIiBpcyBncmVhdGVyIHRoYW4gdGhlIG1heGltdW0gdmFsdWUgIituLm1heGltdW0pXTpbXX1mdW5jdGlvbiBlbih0KXt2YXIgZSxyLG4saT10LnZhbHVlU3BlYyxhPU90KHQudmFsdWUudHlwZSksbz17fSxzPSJjYXRlZ29yaWNhbCIhPT1hJiZ2b2lkIDA9PT10LnZhbHVlLnByb3BlcnR5LGw9IXMsYz0iYXJyYXkiPT09RnIodC52YWx1ZS5zdG9wcykmJiJhcnJheSI9PT1Gcih0LnZhbHVlLnN0b3BzWzBdKSYmIm9iamVjdCI9PT1Gcih0LnZhbHVlLnN0b3BzWzBdWzBdKSx1PVFyKHtrZXk6dC5rZXksdmFsdWU6dC52YWx1ZSx2YWx1ZVNwZWM6dC5zdHlsZVNwZWMuZnVuY3Rpb24sc3R5bGU6dC5zdHlsZSxzdHlsZVNwZWM6dC5zdHlsZVNwZWMsb2JqZWN0RWxlbWVudFZhbGlkYXRvcnM6e3N0b3BzOmZ1bmN0aW9uKHQpe2lmKCJpZGVudGl0eSI9PT1hKXJldHVybltuZXcgQ3QodC5rZXksdC52YWx1ZSwnaWRlbnRpdHkgZnVuY3Rpb24gbWF5IG5vdCBoYXZlIGEgInN0b3BzIiBwcm9wZXJ0eScpXTt2YXIgZT1bXSxyPXQudmFsdWU7ZT1lLmNvbmNhdCgkcih7a2V5OnQua2V5LHZhbHVlOnIsdmFsdWVTcGVjOnQudmFsdWVTcGVjLHN0eWxlOnQuc3R5bGUsc3R5bGVTcGVjOnQuc3R5bGVTcGVjLGFycmF5RWxlbWVudFZhbGlkYXRvcjpmfSkpLCJhcnJheSI9PT1GcihyKSYmMD09PXIubGVuZ3RoJiZlLnB1c2gobmV3IEN0KHQua2V5LHIsImFycmF5IG11c3QgaGF2ZSBhdCBsZWFzdCBvbmUgc3RvcCIpKTtyZXR1cm4gZX0sZGVmYXVsdDpmdW5jdGlvbih0KXtyZXR1cm4ga24oe2tleTp0LmtleSx2YWx1ZTp0LnZhbHVlLHZhbHVlU3BlYzppLHN0eWxlOnQuc3R5bGUsc3R5bGVTcGVjOnQuc3R5bGVTcGVjfSl9fX0pO3JldHVybiJpZGVudGl0eSI9PT1hJiZzJiZ1LnB1c2gobmV3IEN0KHQua2V5LHQudmFsdWUsJ21pc3NpbmcgcmVxdWlyZWQgcHJvcGVydHkgInByb3BlcnR5IicpKSwiaWRlbnRpdHkiPT09YXx8dC52YWx1ZS5zdG9wc3x8dS5wdXNoKG5ldyBDdCh0LmtleSx0LnZhbHVlLCdtaXNzaW5nIHJlcXVpcmVkIHByb3BlcnR5ICJzdG9wcyInKSksImV4cG9uZW50aWFsIj09PWEmJnQudmFsdWVTcGVjLmV4cHJlc3Npb24mJiFScih0LnZhbHVlU3BlYykmJnUucHVzaChuZXcgQ3QodC5rZXksdC52YWx1ZSwiZXhwb25lbnRpYWwgZnVuY3Rpb25zIG5vdCBzdXBwb3J0ZWQiKSksdC5zdHlsZVNwZWMuJHZlcnNpb24+PTgmJihsJiYhenIodC52YWx1ZVNwZWMpP3UucHVzaChuZXcgQ3QodC5rZXksdC52YWx1ZSwicHJvcGVydHkgZnVuY3Rpb25zIG5vdCBzdXBwb3J0ZWQiKSk6cyYmIURyKHQudmFsdWVTcGVjKSYmdS5wdXNoKG5ldyBDdCh0LmtleSx0LnZhbHVlLCJ6b29tIGZ1bmN0aW9ucyBub3Qgc3VwcG9ydGVkIikpKSwiY2F0ZWdvcmljYWwiIT09YSYmIWN8fHZvaWQgMCE9PXQudmFsdWUucHJvcGVydHl8fHUucHVzaChuZXcgQ3QodC5rZXksdC52YWx1ZSwnInByb3BlcnR5IiBwcm9wZXJ0eSBpcyByZXF1aXJlZCcpKSx1O2Z1bmN0aW9uIGYodCl7dmFyIGU9W10sYT10LnZhbHVlLHM9dC5rZXk7aWYoImFycmF5IiE9PUZyKGEpKXJldHVybltuZXcgQ3QocyxhLCJhcnJheSBleHBlY3RlZCwgIitGcihhKSsiIGZvdW5kIildO2lmKDIhPT1hLmxlbmd0aClyZXR1cm5bbmV3IEN0KHMsYSwiYXJyYXkgbGVuZ3RoIDIgZXhwZWN0ZWQsIGxlbmd0aCAiK2EubGVuZ3RoKyIgZm91bmQiKV07aWYoYyl7aWYoIm9iamVjdCIhPT1GcihhWzBdKSlyZXR1cm5bbmV3IEN0KHMsYSwib2JqZWN0IGV4cGVjdGVkLCAiK0ZyKGFbMF0pKyIgZm91bmQiKV07aWYodm9pZCAwPT09YVswXS56b29tKXJldHVybltuZXcgQ3QocyxhLCJvYmplY3Qgc3RvcCBrZXkgbXVzdCBoYXZlIHpvb20iKV07aWYodm9pZCAwPT09YVswXS52YWx1ZSlyZXR1cm5bbmV3IEN0KHMsYSwib2JqZWN0IHN0b3Aga2V5IG11c3QgaGF2ZSB2YWx1ZSIpXTtpZihuJiZuPk90KGFbMF0uem9vbSkpcmV0dXJuW25ldyBDdChzLGFbMF0uem9vbSwic3RvcCB6b29tIHZhbHVlcyBtdXN0IGFwcGVhciBpbiBhc2NlbmRpbmcgb3JkZXIiKV07T3QoYVswXS56b29tKSE9PW4mJihuPU90KGFbMF0uem9vbSkscj12b2lkIDAsbz17fSksZT1lLmNvbmNhdChRcih7a2V5OnMrIlswXSIsdmFsdWU6YVswXSx2YWx1ZVNwZWM6e3pvb206e319LHN0eWxlOnQuc3R5bGUsc3R5bGVTcGVjOnQuc3R5bGVTcGVjLG9iamVjdEVsZW1lbnRWYWxpZGF0b3JzOnt6b29tOnRuLHZhbHVlOmh9fSkpfWVsc2UgZT1lLmNvbmNhdChoKHtrZXk6cysiWzBdIix2YWx1ZTphWzBdLHZhbHVlU3BlYzp7fSxzdHlsZTp0LnN0eWxlLHN0eWxlU3BlYzp0LnN0eWxlU3BlY30sYSkpO3JldHVybiBZcih6dChhWzFdKSk/ZS5jb25jYXQoW25ldyBDdChzKyJbMV0iLGFbMV0sImV4cHJlc3Npb25zIGFyZSBub3QgYWxsb3dlZCBpbiBmdW5jdGlvbiBzdG9wcy4iKV0pOmUuY29uY2F0KGtuKHtrZXk6cysiWzFdIix2YWx1ZTphWzFdLHZhbHVlU3BlYzppLHN0eWxlOnQuc3R5bGUsc3R5bGVTcGVjOnQuc3R5bGVTcGVjfSkpfWZ1bmN0aW9uIGgodCxuKXt2YXIgcz1Gcih0LnZhbHVlKSxsPU90KHQudmFsdWUpLGM9bnVsbCE9PXQudmFsdWU/dC52YWx1ZTpuO2lmKGUpe2lmKHMhPT1lKXJldHVybltuZXcgQ3QodC5rZXksYyxzKyIgc3RvcCBkb21haW4gdHlwZSBtdXN0IG1hdGNoIHByZXZpb3VzIHN0b3AgZG9tYWluIHR5cGUgIitlKV19ZWxzZSBlPXM7aWYoIm51bWJlciIhPT1zJiYic3RyaW5nIiE9PXMmJiJib29sZWFuIiE9PXMpcmV0dXJuW25ldyBDdCh0LmtleSxjLCJzdG9wIGRvbWFpbiB2YWx1ZSBtdXN0IGJlIGEgbnVtYmVyLCBzdHJpbmcsIG9yIGJvb2xlYW4iKV07aWYoIm51bWJlciIhPT1zJiYiY2F0ZWdvcmljYWwiIT09YSl7dmFyIHU9Im51bWJlciBleHBlY3RlZCwgIitzKyIgZm91bmQiO3JldHVybiB6cihpKSYmdm9pZCAwPT09YSYmKHUrPSdcbklmIHlvdSBpbnRlbmRlZCB0byB1c2UgYSBjYXRlZ29yaWNhbCBmdW5jdGlvbiwgc3BlY2lmeSBgInR5cGUiOiAiY2F0ZWdvcmljYWwiYC4nKSxbbmV3IEN0KHQua2V5LGMsdSldfXJldHVybiJjYXRlZ29yaWNhbCIhPT1hfHwibnVtYmVyIiE9PXN8fGlzRmluaXRlKGwpJiZNYXRoLmZsb29yKGwpPT09bD8iY2F0ZWdvcmljYWwiIT09YSYmIm51bWJlciI9PT1zJiZ2b2lkIDAhPT1yJiZsPHI/W25ldyBDdCh0LmtleSxjLCJzdG9wIGRvbWFpbiB2YWx1ZXMgbXVzdCBhcHBlYXIgaW4gYXNjZW5kaW5nIG9yZGVyIildOihyPWwsImNhdGVnb3JpY2FsIj09PWEmJmwgaW4gbz9bbmV3IEN0KHQua2V5LGMsInN0b3AgZG9tYWluIHZhbHVlcyBtdXN0IGJlIHVuaXF1ZSIpXToob1tsXT0hMCxbXSkpOltuZXcgQ3QodC5rZXksYywiaW50ZWdlciBleHBlY3RlZCwgZm91bmQgIitsKV19fWZ1bmN0aW9uIHJuKHQpe3ZhciBlPSgicHJvcGVydHkiPT09dC5leHByZXNzaW9uQ29udGV4dD9KcjpXcikoenQodC52YWx1ZSksdC52YWx1ZVNwZWMpO2lmKCJlcnJvciI9PT1lLnJlc3VsdClyZXR1cm4gZS52YWx1ZS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBuZXcgQ3QoIiIrdC5rZXkrZS5rZXksdC52YWx1ZSxlLm1lc3NhZ2UpfSkpO3ZhciByPWUudmFsdWUuZXhwcmVzc2lvbnx8ZS52YWx1ZS5fc3R5bGVFeHByZXNzaW9uLmV4cHJlc3Npb247aWYoInByb3BlcnR5Ij09PXQuZXhwcmVzc2lvbkNvbnRleHQmJiJ0ZXh0LWZvbnQiPT09dC5wcm9wZXJ0eUtleSYmIXIub3V0cHV0RGVmaW5lZCgpKXJldHVybltuZXcgQ3QodC5rZXksdC52YWx1ZSwnSW52YWxpZCBkYXRhIGV4cHJlc3Npb24gZm9yICInK3QucHJvcGVydHlLZXkrJyIuIE91dHB1dCB2YWx1ZXMgbXVzdCBiZSBjb250YWluZWQgYXMgbGl0ZXJhbHMgd2l0aGluIHRoZSBleHByZXNzaW9uLicpXTtpZigicHJvcGVydHkiPT09dC5leHByZXNzaW9uQ29udGV4dCYmImxheW91dCI9PT10LnByb3BlcnR5VHlwZSYmIUJlKHIpKXJldHVybltuZXcgQ3QodC5rZXksdC52YWx1ZSwnImZlYXR1cmUtc3RhdGUiIGRhdGEgZXhwcmVzc2lvbnMgYXJlIG5vdCBzdXBwb3J0ZWQgd2l0aCBsYXlvdXQgcHJvcGVydGllcy4nKV07aWYoImZpbHRlciI9PT10LmV4cHJlc3Npb25Db250ZXh0JiYhQmUocikpcmV0dXJuW25ldyBDdCh0LmtleSx0LnZhbHVlLCciZmVhdHVyZS1zdGF0ZSIgZGF0YSBleHByZXNzaW9ucyBhcmUgbm90IHN1cHBvcnRlZCB3aXRoIGZpbHRlcnMuJyldO2lmKHQuZXhwcmVzc2lvbkNvbnRleHQmJjA9PT10LmV4cHJlc3Npb25Db250ZXh0LmluZGV4T2YoImNsdXN0ZXIiKSl7aWYoIU5lKHIsWyJ6b29tIiwiZmVhdHVyZS1zdGF0ZSJdKSlyZXR1cm5bbmV3IEN0KHQua2V5LHQudmFsdWUsJyJ6b29tIiBhbmQgImZlYXR1cmUtc3RhdGUiIGV4cHJlc3Npb25zIGFyZSBub3Qgc3VwcG9ydGVkIHdpdGggY2x1c3RlciBwcm9wZXJ0aWVzLicpXTtpZigiY2x1c3Rlci1pbml0aWFsIj09PXQuZXhwcmVzc2lvbkNvbnRleHQmJiFGZShyKSlyZXR1cm5bbmV3IEN0KHQua2V5LHQudmFsdWUsIkZlYXR1cmUgZGF0YSBleHByZXNzaW9ucyBhcmUgbm90IHN1cHBvcnRlZCB3aXRoIGluaXRpYWwgZXhwcmVzc2lvbiBwYXJ0IG9mIGNsdXN0ZXIgcHJvcGVydGllcy4iKV19cmV0dXJuW119ZnVuY3Rpb24gbm4odCl7dmFyIGU9dC5rZXkscj10LnZhbHVlLG49dC52YWx1ZVNwZWMsaT1bXTtyZXR1cm4gQXJyYXkuaXNBcnJheShuLnZhbHVlcyk/LTE9PT1uLnZhbHVlcy5pbmRleE9mKE90KHIpKSYmaS5wdXNoKG5ldyBDdChlLHIsImV4cGVjdGVkIG9uZSBvZiBbIituLnZhbHVlcy5qb2luKCIsICIpKyJdLCAiK0pTT04uc3RyaW5naWZ5KHIpKyIgZm91bmQiKSk6LTE9PT1PYmplY3Qua2V5cyhuLnZhbHVlcykuaW5kZXhPZihPdChyKSkmJmkucHVzaChuZXcgQ3QoZSxyLCJleHBlY3RlZCBvbmUgb2YgWyIrT2JqZWN0LmtleXMobi52YWx1ZXMpLmpvaW4oIiwgIikrIl0sICIrSlNPTi5zdHJpbmdpZnkocikrIiBmb3VuZCIpKSxpfWZ1bmN0aW9uIGFuKHQpe2lmKCEwPT09dHx8ITE9PT10KXJldHVybiEwO2lmKCFBcnJheS5pc0FycmF5KHQpfHwwPT09dC5sZW5ndGgpcmV0dXJuITE7c3dpdGNoKHRbMF0pe2Nhc2UiaGFzIjpyZXR1cm4gdC5sZW5ndGg+PTImJiIkaWQiIT09dFsxXSYmIiR0eXBlIiE9PXRbMV07Y2FzZSJpbiI6cmV0dXJuIHQubGVuZ3RoPj0zJiYoInN0cmluZyIhPXR5cGVvZiB0WzFdfHxBcnJheS5pc0FycmF5KHRbMl0pKTtjYXNlIiFpbiI6Y2FzZSIhaGFzIjpjYXNlIm5vbmUiOnJldHVybiExO2Nhc2UiPT0iOmNhc2UiIT0iOmNhc2UiPiI6Y2FzZSI+PSI6Y2FzZSI8IjpjYXNlIjw9IjpyZXR1cm4gMyE9PXQubGVuZ3RofHxBcnJheS5pc0FycmF5KHRbMV0pfHxBcnJheS5pc0FycmF5KHRbMl0pO2Nhc2UiYW55IjpjYXNlImFsbCI6Zm9yKHZhciBlPTAscj10LnNsaWNlKDEpO2U8ci5sZW5ndGg7ZSs9MSl7dmFyIG49cltlXTtpZighYW4obikmJiJib29sZWFuIiE9dHlwZW9mIG4pcmV0dXJuITF9cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMH19S3IuZGVzZXJpYWxpemU9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBLcih0Ll9wYXJhbWV0ZXJzLHQuX3NwZWNpZmljYXRpb24pfSxLci5zZXJpYWxpemU9ZnVuY3Rpb24odCl7cmV0dXJue19wYXJhbWV0ZXJzOnQuX3BhcmFtZXRlcnMsX3NwZWNpZmljYXRpb246dC5fc3BlY2lmaWNhdGlvbn19O3ZhciBvbj17dHlwZToiYm9vbGVhbiIsZGVmYXVsdDohMSx0cmFuc2l0aW9uOiExLCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4iLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiXX19O2Z1bmN0aW9uIHNuKHQpe2lmKG51bGw9PXQpcmV0dXJue2ZpbHRlcjpmdW5jdGlvbigpe3JldHVybiEwfSxuZWVkR2VvbWV0cnk6ITF9O2FuKHQpfHwodD1jbih0KSk7dmFyIGU9V3IodCxvbik7aWYoImVycm9yIj09PWUucmVzdWx0KXRocm93IG5ldyBFcnJvcihlLnZhbHVlLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQua2V5KyI6ICIrdC5tZXNzYWdlfSkpLmpvaW4oIiwgIikpO3JldHVybntmaWx0ZXI6ZnVuY3Rpb24odCxyLG4pe3JldHVybiBlLnZhbHVlLmV2YWx1YXRlKHQscix7fSxuKX0sbmVlZEdlb21ldHJ5OmZ1bmN0aW9uIHQoZSl7aWYoIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuITE7aWYoIndpdGhpbiI9PT1lWzBdKXJldHVybiEwO2Zvcih2YXIgcj0xO3I8ZS5sZW5ndGg7cisrKWlmKHQoZVtyXSkpcmV0dXJuITA7cmV0dXJuITF9KHQpfX1mdW5jdGlvbiBsbih0LGUpe3JldHVybiB0PGU/LTE6dD5lPzE6MH1mdW5jdGlvbiBjbih0KXtpZighdClyZXR1cm4hMDt2YXIgZSxyPXRbMF07cmV0dXJuIHQubGVuZ3RoPD0xPyJhbnkiIT09cjoiPT0iPT09cj91bih0WzFdLHRbMl0sIj09Iik6IiE9Ij09PXI/cG4odW4odFsxXSx0WzJdLCI9PSIpKToiPCI9PT1yfHwiPiI9PT1yfHwiPD0iPT09cnx8Ij49Ij09PXI/dW4odFsxXSx0WzJdLHIpOiJhbnkiPT09cj8oZT10LnNsaWNlKDEpLFsiYW55Il0uY29uY2F0KGUubWFwKGNuKSkpOiJhbGwiPT09cj9bImFsbCJdLmNvbmNhdCh0LnNsaWNlKDEpLm1hcChjbikpOiJub25lIj09PXI/WyJhbGwiXS5jb25jYXQodC5zbGljZSgxKS5tYXAoY24pLm1hcChwbikpOiJpbiI9PT1yP2ZuKHRbMV0sdC5zbGljZSgyKSk6IiFpbiI9PT1yP3BuKGZuKHRbMV0sdC5zbGljZSgyKSkpOiJoYXMiPT09cj9obih0WzFdKToiIWhhcyI9PT1yP3BuKGhuKHRbMV0pKToid2l0aGluIiE9PXJ8fHR9ZnVuY3Rpb24gdW4odCxlLHIpe3N3aXRjaCh0KXtjYXNlIiR0eXBlIjpyZXR1cm5bImZpbHRlci10eXBlLSIrcixlXTtjYXNlIiRpZCI6cmV0dXJuWyJmaWx0ZXItaWQtIityLGVdO2RlZmF1bHQ6cmV0dXJuWyJmaWx0ZXItIityLHQsZV19fWZ1bmN0aW9uIGZuKHQsZSl7aWYoMD09PWUubGVuZ3RoKXJldHVybiExO3N3aXRjaCh0KXtjYXNlIiR0eXBlIjpyZXR1cm5bImZpbHRlci10eXBlLWluIixbImxpdGVyYWwiLGVdXTtjYXNlIiRpZCI6cmV0dXJuWyJmaWx0ZXItaWQtaW4iLFsibGl0ZXJhbCIsZV1dO2RlZmF1bHQ6cmV0dXJuIGUubGVuZ3RoPjIwMCYmIWUuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0IT10eXBlb2YgZVswXX0pKT9bImZpbHRlci1pbi1sYXJnZSIsdCxbImxpdGVyYWwiLGUuc29ydChsbildXTpbImZpbHRlci1pbi1zbWFsbCIsdCxbImxpdGVyYWwiLGVdXX19ZnVuY3Rpb24gaG4odCl7c3dpdGNoKHQpe2Nhc2UiJHR5cGUiOnJldHVybiEwO2Nhc2UiJGlkIjpyZXR1cm5bImZpbHRlci1oYXMtaWQiXTtkZWZhdWx0OnJldHVyblsiZmlsdGVyLWhhcyIsdF19fWZ1bmN0aW9uIHBuKHQpe3JldHVyblsiISIsdF19ZnVuY3Rpb24gZG4odCl7cmV0dXJuIGFuKHp0KHQudmFsdWUpKT9ybihJdCh7fSx0LHtleHByZXNzaW9uQ29udGV4dDoiZmlsdGVyIix2YWx1ZVNwZWM6e3ZhbHVlOiJib29sZWFuIn19KSk6ZnVuY3Rpb24gdChlKXt2YXIgcj1lLnZhbHVlLG49ZS5rZXk7aWYoImFycmF5IiE9PUZyKHIpKXJldHVybltuZXcgQ3QobixyLCJhcnJheSBleHBlY3RlZCwgIitGcihyKSsiIGZvdW5kIildO3ZhciBpLGE9ZS5zdHlsZVNwZWMsbz1bXTtpZihyLmxlbmd0aDwxKXJldHVybltuZXcgQ3QobixyLCJmaWx0ZXIgYXJyYXkgbXVzdCBoYXZlIGF0IGxlYXN0IDEgZWxlbWVudCIpXTtzd2l0Y2gobz1vLmNvbmNhdChubih7a2V5Om4rIlswXSIsdmFsdWU6clswXSx2YWx1ZVNwZWM6YS5maWx0ZXJfb3BlcmF0b3Isc3R5bGU6ZS5zdHlsZSxzdHlsZVNwZWM6ZS5zdHlsZVNwZWN9KSksT3QoclswXSkpe2Nhc2UiPCI6Y2FzZSI8PSI6Y2FzZSI+IjpjYXNlIj49IjpyLmxlbmd0aD49MiYmIiR0eXBlIj09PU90KHJbMV0pJiZvLnB1c2gobmV3IEN0KG4sciwnIiR0eXBlIiBjYW5ub3QgYmUgdXNlIHdpdGggb3BlcmF0b3IgIicrclswXSsnIicpKTtjYXNlIj09IjpjYXNlIiE9IjozIT09ci5sZW5ndGgmJm8ucHVzaChuZXcgQ3QobixyLCdmaWx0ZXIgYXJyYXkgZm9yIG9wZXJhdG9yICInK3JbMF0rJyIgbXVzdCBoYXZlIDMgZWxlbWVudHMnKSk7Y2FzZSJpbiI6Y2FzZSIhaW4iOnIubGVuZ3RoPj0yJiYic3RyaW5nIiE9PShpPUZyKHJbMV0pKSYmby5wdXNoKG5ldyBDdChuKyJbMV0iLHJbMV0sInN0cmluZyBleHBlY3RlZCwgIitpKyIgZm91bmQiKSk7Zm9yKHZhciBzPTI7czxyLmxlbmd0aDtzKyspaT1GcihyW3NdKSwiJHR5cGUiPT09T3QoclsxXSk/bz1vLmNvbmNhdChubih7a2V5Om4rIlsiK3MrIl0iLHZhbHVlOnJbc10sdmFsdWVTcGVjOmEuZ2VvbWV0cnlfdHlwZSxzdHlsZTplLnN0eWxlLHN0eWxlU3BlYzplLnN0eWxlU3BlY30pKToic3RyaW5nIiE9PWkmJiJudW1iZXIiIT09aSYmImJvb2xlYW4iIT09aSYmby5wdXNoKG5ldyBDdChuKyJbIitzKyJdIixyW3NdLCJzdHJpbmcsIG51bWJlciwgb3IgYm9vbGVhbiBleHBlY3RlZCwgIitpKyIgZm91bmQiKSk7YnJlYWs7Y2FzZSJhbnkiOmNhc2UiYWxsIjpjYXNlIm5vbmUiOmZvcih2YXIgbD0xO2w8ci5sZW5ndGg7bCsrKW89by5jb25jYXQodCh7a2V5Om4rIlsiK2wrIl0iLHZhbHVlOnJbbF0sc3R5bGU6ZS5zdHlsZSxzdHlsZVNwZWM6ZS5zdHlsZVNwZWN9KSk7YnJlYWs7Y2FzZSJoYXMiOmNhc2UiIWhhcyI6aT1GcihyWzFdKSwyIT09ci5sZW5ndGg/by5wdXNoKG5ldyBDdChuLHIsJ2ZpbHRlciBhcnJheSBmb3IgIicrclswXSsnIiBvcGVyYXRvciBtdXN0IGhhdmUgMiBlbGVtZW50cycpKToic3RyaW5nIiE9PWkmJm8ucHVzaChuZXcgQ3QobisiWzFdIixyWzFdLCJzdHJpbmcgZXhwZWN0ZWQsICIraSsiIGZvdW5kIikpO2JyZWFrO2Nhc2Uid2l0aGluIjppPUZyKHJbMV0pLDIhPT1yLmxlbmd0aD9vLnB1c2gobmV3IEN0KG4sciwnZmlsdGVyIGFycmF5IGZvciAiJytyWzBdKyciIG9wZXJhdG9yIG11c3QgaGF2ZSAyIGVsZW1lbnRzJykpOiJvYmplY3QiIT09aSYmby5wdXNoKG5ldyBDdChuKyJbMV0iLHJbMV0sIm9iamVjdCBleHBlY3RlZCwgIitpKyIgZm91bmQiKSl9cmV0dXJuIG99KHQpfWZ1bmN0aW9uIG1uKHQsZSl7dmFyIHI9dC5rZXksbj10LnN0eWxlLGk9dC5zdHlsZVNwZWMsYT10LnZhbHVlLG89dC5vYmplY3RLZXkscz1pW2UrIl8iK3QubGF5ZXJUeXBlXTtpZighcylyZXR1cm5bXTt2YXIgbD1vLm1hdGNoKC9eKC4qKS10cmFuc2l0aW9uJC8pO2lmKCJwYWludCI9PT1lJiZsJiZzW2xbMV1dJiZzW2xbMV1dLnRyYW5zaXRpb24pcmV0dXJuIGtuKHtrZXk6cix2YWx1ZTphLHZhbHVlU3BlYzppLnRyYW5zaXRpb24sc3R5bGU6bixzdHlsZVNwZWM6aX0pO3ZhciBjLHU9dC52YWx1ZVNwZWN8fHNbb107aWYoIXUpcmV0dXJuW25ldyBDdChyLGEsJ3Vua25vd24gcHJvcGVydHkgIicrbysnIicpXTtpZigic3RyaW5nIj09PUZyKGEpJiZ6cih1KSYmIXUudG9rZW5zJiYoYz0vXnsoW159XSspfSQvLmV4ZWMoYSkpKXJldHVybltuZXcgQ3QocixhLCciJytvKyciIGRvZXMgbm90IHN1cHBvcnQgaW50ZXJwb2xhdGlvbiBzeW50YXhcblVzZSBhbiBpZGVudGl0eSBwcm9wZXJ0eSBmdW5jdGlvbiBpbnN0ZWFkOiBgeyAidHlwZSI6ICJpZGVudGl0eSIsICJwcm9wZXJ0eSI6ICcrSlNPTi5zdHJpbmdpZnkoY1sxXSkrIiB9YC4iKV07dmFyIGY9W107cmV0dXJuInN5bWJvbCI9PT10LmxheWVyVHlwZSYmKCJ0ZXh0LWZpZWxkIj09PW8mJm4mJiFuLmdseXBocyYmZi5wdXNoKG5ldyBDdChyLGEsJ3VzZSBvZiAidGV4dC1maWVsZCIgcmVxdWlyZXMgYSBzdHlsZSAiZ2x5cGhzIiBwcm9wZXJ0eScpKSwidGV4dC1mb250Ij09PW8mJkJyKHp0KGEpKSYmImlkZW50aXR5Ij09PU90KGEudHlwZSkmJmYucHVzaChuZXcgQ3QocixhLCcidGV4dC1mb250IiBkb2VzIG5vdCBzdXBwb3J0IGlkZW50aXR5IGZ1bmN0aW9ucycpKSksZi5jb25jYXQoa24oe2tleTp0LmtleSx2YWx1ZTphLHZhbHVlU3BlYzp1LHN0eWxlOm4sc3R5bGVTcGVjOmksZXhwcmVzc2lvbkNvbnRleHQ6InByb3BlcnR5Iixwcm9wZXJ0eVR5cGU6ZSxwcm9wZXJ0eUtleTpvfSkpfWZ1bmN0aW9uIGduKHQpe3JldHVybiBtbih0LCJwYWludCIpfWZ1bmN0aW9uIHZuKHQpe3JldHVybiBtbih0LCJsYXlvdXQiKX1mdW5jdGlvbiB5bih0KXt2YXIgZT1bXSxyPXQudmFsdWUsbj10LmtleSxpPXQuc3R5bGUsYT10LnN0eWxlU3BlYztyLnR5cGV8fHIucmVmfHxlLnB1c2gobmV3IEN0KG4sciwnZWl0aGVyICJ0eXBlIiBvciAicmVmIiBpcyByZXF1aXJlZCcpKTt2YXIgbyxzPU90KHIudHlwZSksbD1PdChyLnJlZik7aWYoci5pZClmb3IodmFyIGM9T3Qoci5pZCksdT0wO3U8dC5hcnJheUluZGV4O3UrKyl7dmFyIGY9aS5sYXllcnNbdV07T3QoZi5pZCk9PT1jJiZlLnB1c2gobmV3IEN0KG4sci5pZCwnZHVwbGljYXRlIGxheWVyIGlkICInK3IuaWQrJyIsIHByZXZpb3VzbHkgdXNlZCBhdCBsaW5lICcrZi5pZC5fX2xpbmVfXykpfWlmKCJyZWYiaW4gcilbInR5cGUiLCJzb3VyY2UiLCJzb3VyY2UtbGF5ZXIiLCJmaWx0ZXIiLCJsYXlvdXQiXS5mb3JFYWNoKChmdW5jdGlvbih0KXt0IGluIHImJmUucHVzaChuZXcgQ3QobixyW3RdLCciJyt0KyciIGlzIHByb2hpYml0ZWQgZm9yIHJlZiBsYXllcnMnKSl9KSksaS5sYXllcnMuZm9yRWFjaCgoZnVuY3Rpb24odCl7T3QodC5pZCk9PT1sJiYobz10KX0pKSxvP28ucmVmP2UucHVzaChuZXcgQ3QobixyLnJlZiwicmVmIGNhbm5vdCByZWZlcmVuY2UgYW5vdGhlciByZWYgbGF5ZXIiKSk6cz1PdChvLnR5cGUpOmUucHVzaChuZXcgQ3QobixyLnJlZiwncmVmIGxheWVyICInK2wrJyIgbm90IGZvdW5kJykpO2Vsc2UgaWYoImJhY2tncm91bmQiIT09cylpZihyLnNvdXJjZSl7dmFyIGg9aS5zb3VyY2VzJiZpLnNvdXJjZXNbci5zb3VyY2VdLHA9aCYmT3QoaC50eXBlKTtoPyJ2ZWN0b3IiPT09cCYmInJhc3RlciI9PT1zP2UucHVzaChuZXcgQ3QobixyLnNvdXJjZSwnbGF5ZXIgIicrci5pZCsnIiByZXF1aXJlcyBhIHJhc3RlciBzb3VyY2UnKSk6InJhc3RlciI9PT1wJiYicmFzdGVyIiE9PXM/ZS5wdXNoKG5ldyBDdChuLHIuc291cmNlLCdsYXllciAiJytyLmlkKyciIHJlcXVpcmVzIGEgdmVjdG9yIHNvdXJjZScpKToidmVjdG9yIiE9PXB8fHJbInNvdXJjZS1sYXllciJdPyJyYXN0ZXItZGVtIj09PXAmJiJoaWxsc2hhZGUiIT09cz9lLnB1c2gobmV3IEN0KG4sci5zb3VyY2UsInJhc3Rlci1kZW0gc291cmNlIGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBsYXllciB0eXBlICdoaWxsc2hhZGUnLiIpKToibGluZSIhPT1zfHwhci5wYWludHx8IXIucGFpbnRbImxpbmUtZ3JhZGllbnQiXXx8Imdlb2pzb24iPT09cCYmaC5saW5lTWV0cmljc3x8ZS5wdXNoKG5ldyBDdChuLHIsJ2xheWVyICInK3IuaWQrJyIgc3BlY2lmaWVzIGEgbGluZS1ncmFkaWVudCwgd2hpY2ggcmVxdWlyZXMgYSBHZW9KU09OIHNvdXJjZSB3aXRoIGBsaW5lTWV0cmljc2AgZW5hYmxlZC4nKSk6ZS5wdXNoKG5ldyBDdChuLHIsJ2xheWVyICInK3IuaWQrJyIgbXVzdCBzcGVjaWZ5IGEgInNvdXJjZS1sYXllciInKSk6ZS5wdXNoKG5ldyBDdChuLHIuc291cmNlLCdzb3VyY2UgIicrci5zb3VyY2UrJyIgbm90IGZvdW5kJykpfWVsc2UgZS5wdXNoKG5ldyBDdChuLHIsJ21pc3NpbmcgcmVxdWlyZWQgcHJvcGVydHkgInNvdXJjZSInKSk7cmV0dXJuIGU9ZS5jb25jYXQoUXIoe2tleTpuLHZhbHVlOnIsdmFsdWVTcGVjOmEubGF5ZXIsc3R5bGU6dC5zdHlsZSxzdHlsZVNwZWM6dC5zdHlsZVNwZWMsb2JqZWN0RWxlbWVudFZhbGlkYXRvcnM6eyIqIjpmdW5jdGlvbigpe3JldHVybltdfSx0eXBlOmZ1bmN0aW9uKCl7cmV0dXJuIGtuKHtrZXk6bisiLnR5cGUiLHZhbHVlOnIudHlwZSx2YWx1ZVNwZWM6YS5sYXllci50eXBlLHN0eWxlOnQuc3R5bGUsc3R5bGVTcGVjOnQuc3R5bGVTcGVjLG9iamVjdDpyLG9iamVjdEtleToidHlwZSJ9KX0sZmlsdGVyOmRuLGxheW91dDpmdW5jdGlvbih0KXtyZXR1cm4gUXIoe2xheWVyOnIsa2V5OnQua2V5LHZhbHVlOnQudmFsdWUsc3R5bGU6dC5zdHlsZSxzdHlsZVNwZWM6dC5zdHlsZVNwZWMsb2JqZWN0RWxlbWVudFZhbGlkYXRvcnM6eyIqIjpmdW5jdGlvbih0KXtyZXR1cm4gdm4oSXQoe2xheWVyVHlwZTpzfSx0KSl9fX0pfSxwYWludDpmdW5jdGlvbih0KXtyZXR1cm4gUXIoe2xheWVyOnIsa2V5OnQua2V5LHZhbHVlOnQudmFsdWUsc3R5bGU6dC5zdHlsZSxzdHlsZVNwZWM6dC5zdHlsZVNwZWMsb2JqZWN0RWxlbWVudFZhbGlkYXRvcnM6eyIqIjpmdW5jdGlvbih0KXtyZXR1cm4gZ24oSXQoe2xheWVyVHlwZTpzfSx0KSl9fX0pfX19KSl9ZnVuY3Rpb24geG4odCl7dmFyIGU9dC52YWx1ZSxyPXQua2V5LG49RnIoZSk7cmV0dXJuInN0cmluZyIhPT1uP1tuZXcgQ3QocixlLCJzdHJpbmcgZXhwZWN0ZWQsICIrbisiIGZvdW5kIildOltdfXZhciBibj17cHJvbW90ZUlkOmZ1bmN0aW9uKHQpe3ZhciBlPXQua2V5LHI9dC52YWx1ZTtpZigic3RyaW5nIj09PUZyKHIpKXJldHVybiB4bih7a2V5OmUsdmFsdWU6cn0pO3ZhciBuPVtdO2Zvcih2YXIgaSBpbiByKW4ucHVzaC5hcHBseShuLHhuKHtrZXk6ZSsiLiIraSx2YWx1ZTpyW2ldfSkpO3JldHVybiBufX07ZnVuY3Rpb24gX24odCl7dmFyIGU9dC52YWx1ZSxyPXQua2V5LG49dC5zdHlsZVNwZWMsaT10LnN0eWxlO2lmKCFlLnR5cGUpcmV0dXJuW25ldyBDdChyLGUsJyJ0eXBlIiBpcyByZXF1aXJlZCcpXTt2YXIgYSxvPU90KGUudHlwZSk7c3dpdGNoKG8pe2Nhc2UidmVjdG9yIjpjYXNlInJhc3RlciI6Y2FzZSJyYXN0ZXItZGVtIjpyZXR1cm4gYT1Rcih7a2V5OnIsdmFsdWU6ZSx2YWx1ZVNwZWM6blsic291cmNlXyIrby5yZXBsYWNlKCItIiwiXyIpXSxzdHlsZTp0LnN0eWxlLHN0eWxlU3BlYzpuLG9iamVjdEVsZW1lbnRWYWxpZGF0b3JzOmJufSk7Y2FzZSJnZW9qc29uIjppZihhPVFyKHtrZXk6cix2YWx1ZTplLHZhbHVlU3BlYzpuLnNvdXJjZV9nZW9qc29uLHN0eWxlOmksc3R5bGVTcGVjOm4sb2JqZWN0RWxlbWVudFZhbGlkYXRvcnM6Ym59KSxlLmNsdXN0ZXIpZm9yKHZhciBzIGluIGUuY2x1c3RlclByb3BlcnRpZXMpe3ZhciBsPWUuY2x1c3RlclByb3BlcnRpZXNbc10sYz1sWzBdLHU9bFsxXSxmPSJzdHJpbmciPT10eXBlb2YgYz9bYyxbImFjY3VtdWxhdGVkIl0sWyJnZXQiLHNdXTpjO2EucHVzaC5hcHBseShhLHJuKHtrZXk6cisiLiIrcysiLm1hcCIsdmFsdWU6dSxleHByZXNzaW9uQ29udGV4dDoiY2x1c3Rlci1tYXAifSkpLGEucHVzaC5hcHBseShhLHJuKHtrZXk6cisiLiIrcysiLnJlZHVjZSIsdmFsdWU6ZixleHByZXNzaW9uQ29udGV4dDoiY2x1c3Rlci1yZWR1Y2UifSkpfXJldHVybiBhO2Nhc2UidmlkZW8iOnJldHVybiBRcih7a2V5OnIsdmFsdWU6ZSx2YWx1ZVNwZWM6bi5zb3VyY2VfdmlkZW8sc3R5bGU6aSxzdHlsZVNwZWM6bn0pO2Nhc2UiaW1hZ2UiOnJldHVybiBRcih7a2V5OnIsdmFsdWU6ZSx2YWx1ZVNwZWM6bi5zb3VyY2VfaW1hZ2Usc3R5bGU6aSxzdHlsZVNwZWM6bn0pO2Nhc2UiY2FudmFzIjpyZXR1cm5bbmV3IEN0KHIsbnVsbCwiUGxlYXNlIHVzZSBydW50aW1lIEFQSXMgdG8gYWRkIGNhbnZhcyBzb3VyY2VzLCByYXRoZXIgdGhhbiBpbmNsdWRpbmcgdGhlbSBpbiBzdHlsZXNoZWV0cy4iLCJzb3VyY2UuY2FudmFzIildO2RlZmF1bHQ6cmV0dXJuIG5uKHtrZXk6cisiLnR5cGUiLHZhbHVlOmUudHlwZSx2YWx1ZVNwZWM6e3ZhbHVlczpbInZlY3RvciIsInJhc3RlciIsInJhc3Rlci1kZW0iLCJnZW9qc29uIiwidmlkZW8iLCJpbWFnZSJdfSxzdHlsZTppLHN0eWxlU3BlYzpufSl9fWZ1bmN0aW9uIHduKHQpe3ZhciBlPXQudmFsdWUscj10LnN0eWxlU3BlYyxuPXIubGlnaHQsaT10LnN0eWxlLGE9W10sbz1GcihlKTtpZih2b2lkIDA9PT1lKXJldHVybiBhO2lmKCJvYmplY3QiIT09bylyZXR1cm4gYT1hLmNvbmNhdChbbmV3IEN0KCJsaWdodCIsZSwib2JqZWN0IGV4cGVjdGVkLCAiK28rIiBmb3VuZCIpXSk7Zm9yKHZhciBzIGluIGUpe3ZhciBsPXMubWF0Y2goL14oLiopLXRyYW5zaXRpb24kLyk7YT1sJiZuW2xbMV1dJiZuW2xbMV1dLnRyYW5zaXRpb24/YS5jb25jYXQoa24oe2tleTpzLHZhbHVlOmVbc10sdmFsdWVTcGVjOnIudHJhbnNpdGlvbixzdHlsZTppLHN0eWxlU3BlYzpyfSkpOm5bc10/YS5jb25jYXQoa24oe2tleTpzLHZhbHVlOmVbc10sdmFsdWVTcGVjOm5bc10sc3R5bGU6aSxzdHlsZVNwZWM6cn0pKTphLmNvbmNhdChbbmV3IEN0KHMsZVtzXSwndW5rbm93biBwcm9wZXJ0eSAiJytzKyciJyldKX1yZXR1cm4gYX12YXIgVG49eyIqIjpmdW5jdGlvbigpe3JldHVybltdfSxhcnJheTokcixib29sZWFuOmZ1bmN0aW9uKHQpe3ZhciBlPXQudmFsdWUscj10LmtleSxuPUZyKGUpO3JldHVybiJib29sZWFuIiE9PW4/W25ldyBDdChyLGUsImJvb2xlYW4gZXhwZWN0ZWQsICIrbisiIGZvdW5kIildOltdfSxudW1iZXI6dG4sY29sb3I6ZnVuY3Rpb24odCl7dmFyIGU9dC5rZXkscj10LnZhbHVlLG49RnIocik7cmV0dXJuInN0cmluZyIhPT1uP1tuZXcgQ3QoZSxyLCJjb2xvciBleHBlY3RlZCwgIituKyIgZm91bmQiKV06bnVsbD09PSR0KHIpP1tuZXcgQ3QoZSxyLCdjb2xvciBleHBlY3RlZCwgIicrcisnIiBmb3VuZCcpXTpbXX0sY29uc3RhbnRzOlB0LGVudW06bm4sZmlsdGVyOmRuLGZ1bmN0aW9uOmVuLGxheWVyOnluLG9iamVjdDpRcixzb3VyY2U6X24sbGlnaHQ6d24sc3RyaW5nOnhuLGZvcm1hdHRlZDpmdW5jdGlvbih0KXtyZXR1cm4gMD09PXhuKHQpLmxlbmd0aD9bXTpybih0KX0scmVzb2x2ZWRJbWFnZTpmdW5jdGlvbih0KXtyZXR1cm4gMD09PXhuKHQpLmxlbmd0aD9bXTpybih0KX19O2Z1bmN0aW9uIGtuKHQpe3ZhciBlPXQudmFsdWUscj10LnZhbHVlU3BlYyxuPXQuc3R5bGVTcGVjO3JldHVybiByLmV4cHJlc3Npb24mJkJyKE90KGUpKT9lbih0KTpyLmV4cHJlc3Npb24mJllyKHp0KGUpKT9ybih0KTpyLnR5cGUmJlRuW3IudHlwZV0/VG5bci50eXBlXSh0KTpRcihJdCh7fSx0LHt2YWx1ZVNwZWM6ci50eXBlP25bci50eXBlXTpyfSkpfWZ1bmN0aW9uIEFuKHQpe3ZhciBlPXQudmFsdWUscj10LmtleSxuPXhuKHQpO3JldHVybiBuLmxlbmd0aHx8KC0xPT09ZS5pbmRleE9mKCJ7Zm9udHN0YWNrfSIpJiZuLnB1c2gobmV3IEN0KHIsZSwnImdseXBocyIgdXJsIG11c3QgaW5jbHVkZSBhICJ7Zm9udHN0YWNrfSIgdG9rZW4nKSksLTE9PT1lLmluZGV4T2YoIntyYW5nZX0iKSYmbi5wdXNoKG5ldyBDdChyLGUsJyJnbHlwaHMiIHVybCBtdXN0IGluY2x1ZGUgYSAie3JhbmdlfSIgdG9rZW4nKSkpLG59ZnVuY3Rpb24gTW4odCxlKXt2b2lkIDA9PT1lJiYoZT1MdCk7dmFyIHI9W107cmV0dXJuIHI9ci5jb25jYXQoa24oe2tleToiIix2YWx1ZTp0LHZhbHVlU3BlYzplLiRyb290LHN0eWxlU3BlYzplLHN0eWxlOnQsb2JqZWN0RWxlbWVudFZhbGlkYXRvcnM6e2dseXBoczpBbiwiKiI6ZnVuY3Rpb24oKXtyZXR1cm5bXX19fSkpLHQuY29uc3RhbnRzJiYocj1yLmNvbmNhdChQdCh7a2V5OiJjb25zdGFudHMiLHZhbHVlOnQuY29uc3RhbnRzLHN0eWxlOnQsc3R5bGVTcGVjOmV9KSkpLFNuKHIpfWZ1bmN0aW9uIFNuKHQpe3JldHVybltdLmNvbmNhdCh0KS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0LmxpbmUtZS5saW5lfSkpfWZ1bmN0aW9uIEVuKHQpe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgZT1bXSxyPWFyZ3VtZW50cy5sZW5ndGg7ci0tOyllW3JdPWFyZ3VtZW50c1tyXTtyZXR1cm4gU24odC5hcHBseSh0aGlzLGUpKX19TW4uc291cmNlPUVuKF9uKSxNbi5saWdodD1Fbih3biksTW4ubGF5ZXI9RW4oeW4pLE1uLmZpbHRlcj1FbihkbiksTW4ucGFpbnRQcm9wZXJ0eT1FbihnbiksTW4ubGF5b3V0UHJvcGVydHk9RW4odm4pO3ZhciBMbj1NbixDbj1Mbi5saWdodCxQbj1Mbi5wYWludFByb3BlcnR5LEluPUxuLmxheW91dFByb3BlcnR5O2Z1bmN0aW9uIE9uKHQsZSl7dmFyIHI9ITE7aWYoZSYmZS5sZW5ndGgpZm9yKHZhciBuPTAsaT1lO248aS5sZW5ndGg7bis9MSl7dmFyIGE9aVtuXTt0LmZpcmUobmV3IFN0KG5ldyBFcnJvcihhLm1lc3NhZ2UpKSkscj0hMH1yZXR1cm4gcn12YXIgem49RG47ZnVuY3Rpb24gRG4odCxlLHIpe3ZhciBuPXRoaXMuY2VsbHM9W107aWYodCBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKXt0aGlzLmFycmF5QnVmZmVyPXQ7dmFyIGk9bmV3IEludDMyQXJyYXkodGhpcy5hcnJheUJ1ZmZlcik7dD1pWzBdLGU9aVsxXSxyPWlbMl0sdGhpcy5kPWUrMipyO2Zvcih2YXIgYT0wO2E8dGhpcy5kKnRoaXMuZDthKyspe3ZhciBvPWlbMythXSxzPWlbMythKzFdO24ucHVzaChvPT09cz9udWxsOmkuc3ViYXJyYXkobyxzKSl9dmFyIGw9aVszK24ubGVuZ3RoXSxjPWlbMytuLmxlbmd0aCsxXTt0aGlzLmtleXM9aS5zdWJhcnJheShsLGMpLHRoaXMuYmJveGVzPWkuc3ViYXJyYXkoYyksdGhpcy5pbnNlcnQ9dGhpcy5faW5zZXJ0UmVhZG9ubHl9ZWxzZXt0aGlzLmQ9ZSsyKnI7Zm9yKHZhciB1PTA7dTx0aGlzLmQqdGhpcy5kO3UrKyluLnB1c2goW10pO3RoaXMua2V5cz1bXSx0aGlzLmJib3hlcz1bXX10aGlzLm49ZSx0aGlzLmV4dGVudD10LHRoaXMucGFkZGluZz1yLHRoaXMuc2NhbGU9ZS90LHRoaXMudWlkPTA7dmFyIGY9ci9lKnQ7dGhpcy5taW49LWYsdGhpcy5tYXg9dCtmfURuLnByb3RvdHlwZS5pbnNlcnQ9ZnVuY3Rpb24odCxlLHIsbixpKXt0aGlzLl9mb3JFYWNoQ2VsbChlLHIsbixpLHRoaXMuX2luc2VydENlbGwsdGhpcy51aWQrKyksdGhpcy5rZXlzLnB1c2godCksdGhpcy5iYm94ZXMucHVzaChlKSx0aGlzLmJib3hlcy5wdXNoKHIpLHRoaXMuYmJveGVzLnB1c2gobiksdGhpcy5iYm94ZXMucHVzaChpKX0sRG4ucHJvdG90eXBlLl9pbnNlcnRSZWFkb25seT1mdW5jdGlvbigpe3Rocm93IkNhbm5vdCBpbnNlcnQgaW50byBhIEdyaWRJbmRleCBjcmVhdGVkIGZyb20gYW4gQXJyYXlCdWZmZXIuIn0sRG4ucHJvdG90eXBlLl9pbnNlcnRDZWxsPWZ1bmN0aW9uKHQsZSxyLG4saSxhKXt0aGlzLmNlbGxzW2ldLnB1c2goYSl9LERuLnByb3RvdHlwZS5xdWVyeT1mdW5jdGlvbih0LGUscixuLGkpe3ZhciBhPXRoaXMubWluLG89dGhpcy5tYXg7aWYodDw9YSYmZTw9YSYmbzw9ciYmbzw9biYmIWkpcmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHRoaXMua2V5cyk7dmFyIHM9W107cmV0dXJuIHRoaXMuX2ZvckVhY2hDZWxsKHQsZSxyLG4sdGhpcy5fcXVlcnlDZWxsLHMse30saSksc30sRG4ucHJvdG90eXBlLl9xdWVyeUNlbGw9ZnVuY3Rpb24odCxlLHIsbixpLGEsbyxzKXt2YXIgbD10aGlzLmNlbGxzW2ldO2lmKG51bGwhPT1sKWZvcih2YXIgYz10aGlzLmtleXMsdT10aGlzLmJib3hlcyxmPTA7ZjxsLmxlbmd0aDtmKyspe3ZhciBoPWxbZl07aWYodm9pZCAwPT09b1toXSl7dmFyIHA9NCpoOyhzP3ModVtwKzBdLHVbcCsxXSx1W3ArMl0sdVtwKzNdKTp0PD11W3ArMl0mJmU8PXVbcCszXSYmcj49dVtwKzBdJiZuPj11W3ArMV0pPyhvW2hdPSEwLGEucHVzaChjW2hdKSk6b1toXT0hMX19fSxEbi5wcm90b3R5cGUuX2ZvckVhY2hDZWxsPWZ1bmN0aW9uKHQsZSxyLG4saSxhLG8scyl7Zm9yKHZhciBsPXRoaXMuX2NvbnZlcnRUb0NlbGxDb29yZCh0KSxjPXRoaXMuX2NvbnZlcnRUb0NlbGxDb29yZChlKSx1PXRoaXMuX2NvbnZlcnRUb0NlbGxDb29yZChyKSxmPXRoaXMuX2NvbnZlcnRUb0NlbGxDb29yZChuKSxoPWw7aDw9dTtoKyspZm9yKHZhciBwPWM7cDw9ZjtwKyspe3ZhciBkPXRoaXMuZCpwK2g7aWYoKCFzfHxzKHRoaXMuX2NvbnZlcnRGcm9tQ2VsbENvb3JkKGgpLHRoaXMuX2NvbnZlcnRGcm9tQ2VsbENvb3JkKHApLHRoaXMuX2NvbnZlcnRGcm9tQ2VsbENvb3JkKGgrMSksdGhpcy5fY29udmVydEZyb21DZWxsQ29vcmQocCsxKSkpJiZpLmNhbGwodGhpcyx0LGUscixuLGQsYSxvLHMpKXJldHVybn19LERuLnByb3RvdHlwZS5fY29udmVydEZyb21DZWxsQ29vcmQ9ZnVuY3Rpb24odCl7cmV0dXJuKHQtdGhpcy5wYWRkaW5nKS90aGlzLnNjYWxlfSxEbi5wcm90b3R5cGUuX2NvbnZlcnRUb0NlbGxDb29yZD1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5tYXgoMCxNYXRoLm1pbih0aGlzLmQtMSxNYXRoLmZsb29yKHQqdGhpcy5zY2FsZSkrdGhpcy5wYWRkaW5nKSl9LERuLnByb3RvdHlwZS50b0FycmF5QnVmZmVyPWZ1bmN0aW9uKCl7aWYodGhpcy5hcnJheUJ1ZmZlcilyZXR1cm4gdGhpcy5hcnJheUJ1ZmZlcjtmb3IodmFyIHQ9dGhpcy5jZWxscyxlPTMrdGhpcy5jZWxscy5sZW5ndGgrMSsxLHI9MCxuPTA7bjx0aGlzLmNlbGxzLmxlbmd0aDtuKyspcis9dGhpcy5jZWxsc1tuXS5sZW5ndGg7dmFyIGk9bmV3IEludDMyQXJyYXkoZStyK3RoaXMua2V5cy5sZW5ndGgrdGhpcy5iYm94ZXMubGVuZ3RoKTtpWzBdPXRoaXMuZXh0ZW50LGlbMV09dGhpcy5uLGlbMl09dGhpcy5wYWRkaW5nO2Zvcih2YXIgYT1lLG89MDtvPHQubGVuZ3RoO28rKyl7dmFyIHM9dFtvXTtpWzMrb109YSxpLnNldChzLGEpLGErPXMubGVuZ3RofXJldHVybiBpWzMrdC5sZW5ndGhdPWEsaS5zZXQodGhpcy5rZXlzLGEpLGErPXRoaXMua2V5cy5sZW5ndGgsaVszK3QubGVuZ3RoKzFdPWEsaS5zZXQodGhpcy5iYm94ZXMsYSksYSs9dGhpcy5iYm94ZXMubGVuZ3RoLGkuYnVmZmVyfTt2YXIgUm49c2VsZi5JbWFnZURhdGEsRm49c2VsZi5JbWFnZUJpdG1hcCxCbj17fTtmdW5jdGlvbiBObih0LGUscil7dm9pZCAwPT09ciYmKHI9e30pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfY2xhc3NSZWdpc3RyeUtleSIse3ZhbHVlOnQsd3JpdGVhYmxlOiExfSksQm5bdF09e2tsYXNzOmUsb21pdDpyLm9taXR8fFtdLHNoYWxsb3c6ci5zaGFsbG93fHxbXX19Zm9yKHZhciBqbiBpbiBObigiT2JqZWN0IixPYmplY3QpLHpuLnNlcmlhbGl6ZT1mdW5jdGlvbih0LGUpe3ZhciByPXQudG9BcnJheUJ1ZmZlcigpO3JldHVybiBlJiZlLnB1c2gocikse2J1ZmZlcjpyfX0sem4uZGVzZXJpYWxpemU9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyB6bih0LmJ1ZmZlcil9LE5uKCJHcmlkIix6biksTm4oIkNvbG9yIix0ZSksTm4oIkVycm9yIixFcnJvciksTm4oIlJlc29sdmVkSW1hZ2UiLGllKSxObigiU3R5bGVQcm9wZXJ0eUZ1bmN0aW9uIixLciksTm4oIlN0eWxlRXhwcmVzc2lvbiIsR3Ise29taXQ6WyJfZXZhbHVhdG9yIl19KSxObigiWm9vbURlcGVuZGVudEV4cHJlc3Npb24iLFpyKSxObigiWm9vbUNvbnN0YW50RXhwcmVzc2lvbiIsWHIpLE5uKCJDb21wb3VuZEV4cHJlc3Npb24iLHhlLHtvbWl0OlsiX2V2YWx1YXRlIl19KSxTcilTcltqbl0uX2NsYXNzUmVnaXN0cnlLZXl8fE5uKCJFeHByZXNzaW9uXyIram4sU3Jbam5dKTtmdW5jdGlvbiBVbih0KXtyZXR1cm4gdCYmInVuZGVmaW5lZCIhPXR5cGVvZiBBcnJheUJ1ZmZlciYmKHQgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcnx8dC5jb25zdHJ1Y3RvciYmIkFycmF5QnVmZmVyIj09PXQuY29uc3RydWN0b3IubmFtZSl9ZnVuY3Rpb24gVm4odCl7cmV0dXJuIEZuJiZ0IGluc3RhbmNlb2YgRm59ZnVuY3Rpb24gSG4odCxlKXtpZihudWxsPT10fHwiYm9vbGVhbiI9PXR5cGVvZiB0fHwibnVtYmVyIj09dHlwZW9mIHR8fCJzdHJpbmciPT10eXBlb2YgdHx8dCBpbnN0YW5jZW9mIEJvb2xlYW58fHQgaW5zdGFuY2VvZiBOdW1iZXJ8fHQgaW5zdGFuY2VvZiBTdHJpbmd8fHQgaW5zdGFuY2VvZiBEYXRlfHx0IGluc3RhbmNlb2YgUmVnRXhwKXJldHVybiB0O2lmKFVuKHQpfHxWbih0KSlyZXR1cm4gZSYmZS5wdXNoKHQpLHQ7aWYoQXJyYXlCdWZmZXIuaXNWaWV3KHQpKXt2YXIgcj10O3JldHVybiBlJiZlLnB1c2goci5idWZmZXIpLHJ9aWYodCBpbnN0YW5jZW9mIFJuKXJldHVybiBlJiZlLnB1c2godC5kYXRhLmJ1ZmZlciksdDtpZihBcnJheS5pc0FycmF5KHQpKXtmb3IodmFyIG49W10saT0wLGE9dDtpPGEubGVuZ3RoO2krPTEpe3ZhciBvPWFbaV07bi5wdXNoKEhuKG8sZSkpfXJldHVybiBufWlmKCJvYmplY3QiPT10eXBlb2YgdCl7dmFyIHM9dC5jb25zdHJ1Y3RvcixsPXMuX2NsYXNzUmVnaXN0cnlLZXk7aWYoIWwpdGhyb3cgbmV3IEVycm9yKCJjYW4ndCBzZXJpYWxpemUgb2JqZWN0IG9mIHVucmVnaXN0ZXJlZCBjbGFzcyIpO3ZhciBjPXMuc2VyaWFsaXplP3Muc2VyaWFsaXplKHQsZSk6e307aWYoIXMuc2VyaWFsaXplKXtmb3IodmFyIHUgaW4gdClpZih0Lmhhc093blByb3BlcnR5KHUpJiYhKEJuW2xdLm9taXQuaW5kZXhPZih1KT49MCkpe3ZhciBmPXRbdV07Y1t1XT1CbltsXS5zaGFsbG93LmluZGV4T2YodSk+PTA/ZjpIbihmLGUpfXQgaW5zdGFuY2VvZiBFcnJvciYmKGMubWVzc2FnZT10Lm1lc3NhZ2UpfWlmKGMuJG5hbWUpdGhyb3cgbmV3IEVycm9yKCIkbmFtZSBwcm9wZXJ0eSBpcyByZXNlcnZlZCBmb3Igd29ya2VyIHNlcmlhbGl6YXRpb24gbG9naWMuIik7cmV0dXJuIk9iamVjdCIhPT1sJiYoYy4kbmFtZT1sKSxjfXRocm93IG5ldyBFcnJvcigiY2FuJ3Qgc2VyaWFsaXplIG9iamVjdCBvZiB0eXBlICIrdHlwZW9mIHQpfWZ1bmN0aW9uIHFuKHQpe2lmKG51bGw9PXR8fCJib29sZWFuIj09dHlwZW9mIHR8fCJudW1iZXIiPT10eXBlb2YgdHx8InN0cmluZyI9PXR5cGVvZiB0fHx0IGluc3RhbmNlb2YgQm9vbGVhbnx8dCBpbnN0YW5jZW9mIE51bWJlcnx8dCBpbnN0YW5jZW9mIFN0cmluZ3x8dCBpbnN0YW5jZW9mIERhdGV8fHQgaW5zdGFuY2VvZiBSZWdFeHB8fFVuKHQpfHxWbih0KXx8QXJyYXlCdWZmZXIuaXNWaWV3KHQpfHx0IGluc3RhbmNlb2YgUm4pcmV0dXJuIHQ7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gdC5tYXAocW4pO2lmKCJvYmplY3QiPT10eXBlb2YgdCl7dmFyIGU9dC4kbmFtZXx8Ik9iamVjdCIscj1CbltlXS5rbGFzcztpZighcil0aHJvdyBuZXcgRXJyb3IoImNhbid0IGRlc2VyaWFsaXplIHVucmVnaXN0ZXJlZCBjbGFzcyAiK2UpO2lmKHIuZGVzZXJpYWxpemUpcmV0dXJuIHIuZGVzZXJpYWxpemUodCk7Zm9yKHZhciBuPU9iamVjdC5jcmVhdGUoci5wcm90b3R5cGUpLGk9MCxhPU9iamVjdC5rZXlzKHQpO2k8YS5sZW5ndGg7aSs9MSl7dmFyIG89YVtpXTtpZigiJG5hbWUiIT09byl7dmFyIHM9dFtvXTtuW29dPUJuW2VdLnNoYWxsb3cuaW5kZXhPZihvKT49MD9zOnFuKHMpfX1yZXR1cm4gbn10aHJvdyBuZXcgRXJyb3IoImNhbid0IGRlc2VyaWFsaXplIG9iamVjdCBvZiB0eXBlICIrdHlwZW9mIHQpfXZhciBHbj1mdW5jdGlvbigpe3RoaXMuZmlyc3Q9ITB9O0duLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlKXt2YXIgcj1NYXRoLmZsb29yKHQpO3JldHVybiB0aGlzLmZpcnN0Pyh0aGlzLmZpcnN0PSExLHRoaXMubGFzdEludGVnZXJab29tPXIsdGhpcy5sYXN0SW50ZWdlclpvb21UaW1lPTAsdGhpcy5sYXN0Wm9vbT10LHRoaXMubGFzdEZsb29yWm9vbT1yLCEwKToodGhpcy5sYXN0Rmxvb3Jab29tPnI/KHRoaXMubGFzdEludGVnZXJab29tPXIrMSx0aGlzLmxhc3RJbnRlZ2VyWm9vbVRpbWU9ZSk6dGhpcy5sYXN0Rmxvb3Jab29tPHImJih0aGlzLmxhc3RJbnRlZ2VyWm9vbT1yLHRoaXMubGFzdEludGVnZXJab29tVGltZT1lKSx0IT09dGhpcy5sYXN0Wm9vbSYmKHRoaXMubGFzdFpvb209dCx0aGlzLmxhc3RGbG9vclpvb209ciwhMCkpfTt2YXIgWW49eyJMYXRpbi0xIFN1cHBsZW1lbnQiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0xMjgmJnQ8PTI1NX0sQXJhYmljOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0xNTM2JiZ0PD0xNzkxfSwiQXJhYmljIFN1cHBsZW1lbnQiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0xODcyJiZ0PD0xOTE5fSwiQXJhYmljIEV4dGVuZGVkLUEiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0yMjA4JiZ0PD0yMzAzfSwiSGFuZ3VsIEphbW8iOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj00MzUyJiZ0PD00NjA3fSwiVW5pZmllZCBDYW5hZGlhbiBBYm9yaWdpbmFsIFN5bGxhYmljcyI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTUxMjAmJnQ8PTU3NTl9LEtobWVyOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj02MDE2JiZ0PD02MTQzfSwiVW5pZmllZCBDYW5hZGlhbiBBYm9yaWdpbmFsIFN5bGxhYmljcyBFeHRlbmRlZCI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTYzMjAmJnQ8PTYzOTl9LCJHZW5lcmFsIFB1bmN0dWF0aW9uIjpmdW5jdGlvbih0KXtyZXR1cm4gdD49ODE5MiYmdDw9ODMwM30sIkxldHRlcmxpa2UgU3ltYm9scyI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTg0NDgmJnQ8PTg1Mjd9LCJOdW1iZXIgRm9ybXMiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj04NTI4JiZ0PD04NTkxfSwiTWlzY2VsbGFuZW91cyBUZWNobmljYWwiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj04OTYwJiZ0PD05MjE1fSwiQ29udHJvbCBQaWN0dXJlcyI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTkyMTYmJnQ8PTkyNzl9LCJPcHRpY2FsIENoYXJhY3RlciBSZWNvZ25pdGlvbiI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTkyODAmJnQ8PTkzMTF9LCJFbmNsb3NlZCBBbHBoYW51bWVyaWNzIjpmdW5jdGlvbih0KXtyZXR1cm4gdD49OTMxMiYmdDw9OTQ3MX0sIkdlb21ldHJpYyBTaGFwZXMiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj05NjMyJiZ0PD05NzI3fSwiTWlzY2VsbGFuZW91cyBTeW1ib2xzIjpmdW5jdGlvbih0KXtyZXR1cm4gdD49OTcyOCYmdDw9OTk4M30sIk1pc2NlbGxhbmVvdXMgU3ltYm9scyBhbmQgQXJyb3dzIjpmdW5jdGlvbih0KXtyZXR1cm4gdD49MTEwMDgmJnQ8PTExMjYzfSwiQ0pLIFJhZGljYWxzIFN1cHBsZW1lbnQiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0xMTkwNCYmdDw9MTIwMzF9LCJLYW5neGkgUmFkaWNhbHMiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0xMjAzMiYmdDw9MTIyNTV9LCJJZGVvZ3JhcGhpYyBEZXNjcmlwdGlvbiBDaGFyYWN0ZXJzIjpmdW5jdGlvbih0KXtyZXR1cm4gdD49MTIyNzImJnQ8PTEyMjg3fSwiQ0pLIFN5bWJvbHMgYW5kIFB1bmN0dWF0aW9uIjpmdW5jdGlvbih0KXtyZXR1cm4gdD49MTIyODgmJnQ8PTEyMzUxfSxIaXJhZ2FuYTpmdW5jdGlvbih0KXtyZXR1cm4gdD49MTIzNTImJnQ8PTEyNDQ3fSxLYXRha2FuYTpmdW5jdGlvbih0KXtyZXR1cm4gdD49MTI0NDgmJnQ8PTEyNTQzfSxCb3BvbW9mbzpmdW5jdGlvbih0KXtyZXR1cm4gdD49MTI1NDQmJnQ8PTEyNTkxfSwiSGFuZ3VsIENvbXBhdGliaWxpdHkgSmFtbyI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTEyNTkyJiZ0PD0xMjY4N30sS2FuYnVuOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0xMjY4OCYmdDw9MTI3MDN9LCJCb3BvbW9mbyBFeHRlbmRlZCI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTEyNzA0JiZ0PD0xMjczNX0sIkNKSyBTdHJva2VzIjpmdW5jdGlvbih0KXtyZXR1cm4gdD49MTI3MzYmJnQ8PTEyNzgzfSwiS2F0YWthbmEgUGhvbmV0aWMgRXh0ZW5zaW9ucyI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTEyNzg0JiZ0PD0xMjc5OX0sIkVuY2xvc2VkIENKSyBMZXR0ZXJzIGFuZCBNb250aHMiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0xMjgwMCYmdDw9MTMwNTV9LCJDSksgQ29tcGF0aWJpbGl0eSI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTEzMDU2JiZ0PD0xMzMxMX0sIkNKSyBVbmlmaWVkIElkZW9ncmFwaHMgRXh0ZW5zaW9uIEEiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0xMzMxMiYmdDw9MTk5MDN9LCJZaWppbmcgSGV4YWdyYW0gU3ltYm9scyI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTE5OTA0JiZ0PD0xOTk2N30sIkNKSyBVbmlmaWVkIElkZW9ncmFwaHMiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0xOTk2OCYmdDw9NDA5NTl9LCJZaSBTeWxsYWJsZXMiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj00MDk2MCYmdDw9NDIxMjd9LCJZaSBSYWRpY2FscyI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTQyMTI4JiZ0PD00MjE5MX0sIkhhbmd1bCBKYW1vIEV4dGVuZGVkLUEiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj00MzM2MCYmdDw9NDMzOTF9LCJIYW5ndWwgU3lsbGFibGVzIjpmdW5jdGlvbih0KXtyZXR1cm4gdD49NDQwMzImJnQ8PTU1MjE1fSwiSGFuZ3VsIEphbW8gRXh0ZW5kZWQtQiI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTU1MjE2JiZ0PD01NTI5NX0sIlByaXZhdGUgVXNlIEFyZWEiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj01NzM0NCYmdDw9NjM3NDN9LCJDSksgQ29tcGF0aWJpbGl0eSBJZGVvZ3JhcGhzIjpmdW5jdGlvbih0KXtyZXR1cm4gdD49NjM3NDQmJnQ8PTY0MjU1fSwiQXJhYmljIFByZXNlbnRhdGlvbiBGb3Jtcy1BIjpmdW5jdGlvbih0KXtyZXR1cm4gdD49NjQzMzYmJnQ8PTY1MDIzfSwiVmVydGljYWwgRm9ybXMiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj02NTA0MCYmdDw9NjUwNTV9LCJDSksgQ29tcGF0aWJpbGl0eSBGb3JtcyI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTY1MDcyJiZ0PD02NTEwM30sIlNtYWxsIEZvcm0gVmFyaWFudHMiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj02NTEwNCYmdDw9NjUxMzV9LCJBcmFiaWMgUHJlc2VudGF0aW9uIEZvcm1zLUIiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj02NTEzNiYmdDw9NjUyNzl9LCJIYWxmd2lkdGggYW5kIEZ1bGx3aWR0aCBGb3JtcyI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTY1MjgwJiZ0PD02NTUxOX19O2Z1bmN0aW9uIFduKHQpe2Zvcih2YXIgZT0wLHI9dDtlPHIubGVuZ3RoO2UrPTEpe2lmKFpuKHJbZV0uY2hhckNvZGVBdCgwKSkpcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gWG4odCl7cmV0dXJuIVluLkFyYWJpYyh0KSYmKCFZblsiQXJhYmljIFN1cHBsZW1lbnQiXSh0KSYmKCFZblsiQXJhYmljIEV4dGVuZGVkLUEiXSh0KSYmKCFZblsiQXJhYmljIFByZXNlbnRhdGlvbiBGb3Jtcy1BIl0odCkmJiFZblsiQXJhYmljIFByZXNlbnRhdGlvbiBGb3Jtcy1CIl0odCkpKSl9ZnVuY3Rpb24gWm4odCl7cmV0dXJuIDc0Nj09PXR8fDc0Nz09PXR8fCEodDw0MzUyKSYmKCEhWW5bIkJvcG9tb2ZvIEV4dGVuZGVkIl0odCl8fCghIVluLkJvcG9tb2ZvKHQpfHwoISghWW5bIkNKSyBDb21wYXRpYmlsaXR5IEZvcm1zIl0odCl8fHQ+PTY1MDk3JiZ0PD02NTEwMyl8fCghIVluWyJDSksgQ29tcGF0aWJpbGl0eSBJZGVvZ3JhcGhzIl0odCl8fCghIVluWyJDSksgQ29tcGF0aWJpbGl0eSJdKHQpfHwoISFZblsiQ0pLIFJhZGljYWxzIFN1cHBsZW1lbnQiXSh0KXx8KCEhWW5bIkNKSyBTdHJva2VzIl0odCl8fCghKCFZblsiQ0pLIFN5bWJvbHMgYW5kIFB1bmN0dWF0aW9uIl0odCl8fHQ+PTEyMjk2JiZ0PD0xMjMwNXx8dD49MTIzMDgmJnQ8PTEyMzE5fHwxMjMzNj09PXQpfHwoISFZblsiQ0pLIFVuaWZpZWQgSWRlb2dyYXBocyBFeHRlbnNpb24gQSJdKHQpfHwoISFZblsiQ0pLIFVuaWZpZWQgSWRlb2dyYXBocyJdKHQpfHwoISFZblsiRW5jbG9zZWQgQ0pLIExldHRlcnMgYW5kIE1vbnRocyJdKHQpfHwoISFZblsiSGFuZ3VsIENvbXBhdGliaWxpdHkgSmFtbyJdKHQpfHwoISFZblsiSGFuZ3VsIEphbW8gRXh0ZW5kZWQtQSJdKHQpfHwoISFZblsiSGFuZ3VsIEphbW8gRXh0ZW5kZWQtQiJdKHQpfHwoISFZblsiSGFuZ3VsIEphbW8iXSh0KXx8KCEhWW5bIkhhbmd1bCBTeWxsYWJsZXMiXSh0KXx8KCEhWW4uSGlyYWdhbmEodCl8fCghIVluWyJJZGVvZ3JhcGhpYyBEZXNjcmlwdGlvbiBDaGFyYWN0ZXJzIl0odCl8fCghIVluLkthbmJ1bih0KXx8KCEhWW5bIkthbmd4aSBSYWRpY2FscyJdKHQpfHwoISFZblsiS2F0YWthbmEgUGhvbmV0aWMgRXh0ZW5zaW9ucyJdKHQpfHwoISghWW4uS2F0YWthbmEodCl8fDEyNTQwPT09dCl8fCghKCFZblsiSGFsZndpZHRoIGFuZCBGdWxsd2lkdGggRm9ybXMiXSh0KXx8NjUyODg9PT10fHw2NTI4OT09PXR8fDY1MjkzPT09dHx8dD49NjUzMDYmJnQ8PTY1MzEwfHw2NTMzOT09PXR8fDY1MzQxPT09dHx8NjUzNDM9PT10fHx0Pj02NTM3MSYmdDw9NjU1MDN8fDY1NTA3PT09dHx8dD49NjU1MTImJnQ8PTY1NTE5KXx8KCEoIVluWyJTbWFsbCBGb3JtIFZhcmlhbnRzIl0odCl8fHQ+PTY1MTEyJiZ0PD02NTExOHx8dD49NjUxMjMmJnQ8PTY1MTI2KXx8KCEhWW5bIlVuaWZpZWQgQ2FuYWRpYW4gQWJvcmlnaW5hbCBTeWxsYWJpY3MiXSh0KXx8KCEhWW5bIlVuaWZpZWQgQ2FuYWRpYW4gQWJvcmlnaW5hbCBTeWxsYWJpY3MgRXh0ZW5kZWQiXSh0KXx8KCEhWW5bIlZlcnRpY2FsIEZvcm1zIl0odCl8fCghIVluWyJZaWppbmcgSGV4YWdyYW0gU3ltYm9scyJdKHQpfHwoISFZblsiWWkgU3lsbGFibGVzIl0odCl8fCEhWW5bIllpIFJhZGljYWxzIl0odCkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKX1mdW5jdGlvbiBKbih0KXtyZXR1cm4hKFpuKHQpfHxmdW5jdGlvbih0KXtyZXR1cm4hKCFZblsiTGF0aW4tMSBTdXBwbGVtZW50Il0odCl8fDE2NyE9PXQmJjE2OSE9PXQmJjE3NCE9PXQmJjE3NyE9PXQmJjE4OCE9PXQmJjE4OSE9PXQmJjE5MCE9PXQmJjIxNSE9PXQmJjI0NyE9PXQpfHwoISghWW5bIkdlbmVyYWwgUHVuY3R1YXRpb24iXSh0KXx8ODIxNCE9PXQmJjgyMjQhPT10JiY4MjI1IT09dCYmODI0MCE9PXQmJjgyNDEhPT10JiY4MjUxIT09dCYmODI1MiE9PXQmJjgyNTghPT10JiY4MjYzIT09dCYmODI2NCE9PXQmJjgyNjUhPT10JiY4MjczIT09dCl8fCghIVluWyJMZXR0ZXJsaWtlIFN5bWJvbHMiXSh0KXx8KCEhWW5bIk51bWJlciBGb3JtcyJdKHQpfHwoISghWW5bIk1pc2NlbGxhbmVvdXMgVGVjaG5pY2FsIl0odCl8fCEodD49ODk2MCYmdDw9ODk2N3x8dD49ODk3MiYmdDw9ODk5MXx8dD49ODk5NiYmdDw9OWUzfHw5MDAzPT09dHx8dD49OTA4NSYmdDw9OTExNHx8dD49OTE1MCYmdDw9OTE2NXx8OTE2Nz09PXR8fHQ+PTkxNjkmJnQ8PTkxNzl8fHQ+PTkxODYmJnQ8PTkyMTUpKXx8KCEoIVluWyJDb250cm9sIFBpY3R1cmVzIl0odCl8fDkyNTE9PT10KXx8KCEhWW5bIk9wdGljYWwgQ2hhcmFjdGVyIFJlY29nbml0aW9uIl0odCl8fCghIVluWyJFbmNsb3NlZCBBbHBoYW51bWVyaWNzIl0odCl8fCghIVluWyJHZW9tZXRyaWMgU2hhcGVzIl0odCl8fCghKCFZblsiTWlzY2VsbGFuZW91cyBTeW1ib2xzIl0odCl8fHQ+PTk3NTQmJnQ8PTk3NTkpfHwoISghWW5bIk1pc2NlbGxhbmVvdXMgU3ltYm9scyBhbmQgQXJyb3dzIl0odCl8fCEodD49MTEwMjYmJnQ8PTExMDU1fHx0Pj0xMTA4OCYmdDw9MTEwOTd8fHQ+PTExMTkyJiZ0PD0xMTI0MykpfHwoISFZblsiQ0pLIFN5bWJvbHMgYW5kIFB1bmN0dWF0aW9uIl0odCl8fCghIVluLkthdGFrYW5hKHQpfHwoISFZblsiUHJpdmF0ZSBVc2UgQXJlYSJdKHQpfHwoISFZblsiQ0pLIENvbXBhdGliaWxpdHkgRm9ybXMiXSh0KXx8KCEhWW5bIlNtYWxsIEZvcm0gVmFyaWFudHMiXSh0KXx8KCEhWW5bIkhhbGZ3aWR0aCBhbmQgRnVsbHdpZHRoIEZvcm1zIl0odCl8fCg4NzM0PT09dHx8ODc1Nj09PXR8fDg3NTc9PT10fHx0Pj05OTg0JiZ0PD0xMDA4N3x8dD49MTAxMDImJnQ8PTEwMTMxfHw2NTUzMj09PXR8fDY1NTMzPT09dCkpKSkpKSkpKSkpKSkpKSkpfSh0KSl9ZnVuY3Rpb24gS24odCl7cmV0dXJuIHQ+PTE0MjQmJnQ8PTIzMDN8fFluWyJBcmFiaWMgUHJlc2VudGF0aW9uIEZvcm1zLUEiXSh0KXx8WW5bIkFyYWJpYyBQcmVzZW50YXRpb24gRm9ybXMtQiJdKHQpfWZ1bmN0aW9uIFFuKHQsZSl7cmV0dXJuISghZSYmS24odCkpJiYhKHQ+PTIzMDQmJnQ8PTM1ODN8fHQ+PTM4NDAmJnQ8PTQyNTV8fFluLktobWVyKHQpKX1mdW5jdGlvbiAkbih0KXtmb3IodmFyIGU9MCxyPXQ7ZTxyLmxlbmd0aDtlKz0xKXtpZihLbihyW2VdLmNoYXJDb2RlQXQoMCkpKXJldHVybiEwfXJldHVybiExfXZhciB0aT0iZGVmZXJyZWQiLGVpPSJsb2FkaW5nIixyaT0ibG9hZGVkIixuaT0iZXJyb3IiLGlpPW51bGwsYWk9InVuYXZhaWxhYmxlIixvaT1udWxsLHNpPWZ1bmN0aW9uKHQpe3QmJiJzdHJpbmciPT10eXBlb2YgdCYmdC5pbmRleE9mKCJOZXR3b3JrRXJyb3IiKT4tMSYmKGFpPW5pKSxpaSYmaWkodCl9O2Z1bmN0aW9uIGxpKCl7Y2kuZmlyZShuZXcgTXQoInBsdWdpblN0YXRlQ2hhbmdlIix7cGx1Z2luU3RhdHVzOmFpLHBsdWdpblVSTDpvaX0pKX12YXIgY2k9bmV3IEV0LHVpPWZ1bmN0aW9uKCl7cmV0dXJuIGFpfSxmaT1mdW5jdGlvbigpe2lmKGFpIT09dGl8fCFvaSl0aHJvdyBuZXcgRXJyb3IoInJ0bC10ZXh0LXBsdWdpbiBjYW5ub3QgYmUgZG93bmxvYWRlZCB1bmxlc3MgYSBwbHVnaW5VUkwgaXMgc3BlY2lmaWVkIik7YWk9ZWksbGkoKSxvaSYmeHQoe3VybDpvaX0sKGZ1bmN0aW9uKHQpe3Q/c2kodCk6KGFpPXJpLGxpKCkpfSkpfSxoaT17YXBwbHlBcmFiaWNTaGFwaW5nOm51bGwscHJvY2Vzc0JpZGlyZWN0aW9uYWxUZXh0Om51bGwscHJvY2Vzc1N0eWxlZEJpZGlyZWN0aW9uYWxUZXh0Om51bGwsaXNMb2FkZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gYWk9PT1yaXx8bnVsbCE9aGkuYXBwbHlBcmFiaWNTaGFwaW5nfSxpc0xvYWRpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gYWk9PT1laX0sc2V0U3RhdGU6ZnVuY3Rpb24odCl7YWk9dC5wbHVnaW5TdGF0dXMsb2k9dC5wbHVnaW5VUkx9LGlzUGFyc2VkOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPWhpLmFwcGx5QXJhYmljU2hhcGluZyYmbnVsbCE9aGkucHJvY2Vzc0JpZGlyZWN0aW9uYWxUZXh0JiZudWxsIT1oaS5wcm9jZXNzU3R5bGVkQmlkaXJlY3Rpb25hbFRleHR9LGdldFBsdWdpblVSTDpmdW5jdGlvbigpe3JldHVybiBvaX19LHBpPWZ1bmN0aW9uKHQsZSl7dGhpcy56b29tPXQsZT8odGhpcy5ub3c9ZS5ub3csdGhpcy5mYWRlRHVyYXRpb249ZS5mYWRlRHVyYXRpb24sdGhpcy56b29tSGlzdG9yeT1lLnpvb21IaXN0b3J5LHRoaXMudHJhbnNpdGlvbj1lLnRyYW5zaXRpb24pOih0aGlzLm5vdz0wLHRoaXMuZmFkZUR1cmF0aW9uPTAsdGhpcy56b29tSGlzdG9yeT1uZXcgR24sdGhpcy50cmFuc2l0aW9uPXt9KX07cGkucHJvdG90eXBlLmlzU3VwcG9ydGVkU2NyaXB0PWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wLG49dDtyPG4ubGVuZ3RoO3IrPTEpe2lmKCFRbihuW3JdLmNoYXJDb2RlQXQoMCksZSkpcmV0dXJuITF9cmV0dXJuITB9KHQsaGkuaXNMb2FkZWQoKSl9LHBpLnByb3RvdHlwZS5jcm9zc0ZhZGluZ0ZhY3Rvcj1mdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5mYWRlRHVyYXRpb24/MTpNYXRoLm1pbigodGhpcy5ub3ctdGhpcy56b29tSGlzdG9yeS5sYXN0SW50ZWdlclpvb21UaW1lKS90aGlzLmZhZGVEdXJhdGlvbiwxKX0scGkucHJvdG90eXBlLmdldENyb3NzZmFkZVBhcmFtZXRlcnM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnpvb20sZT10LU1hdGguZmxvb3IodCkscj10aGlzLmNyb3NzRmFkaW5nRmFjdG9yKCk7cmV0dXJuIHQ+dGhpcy56b29tSGlzdG9yeS5sYXN0SW50ZWdlclpvb20/e2Zyb21TY2FsZToyLHRvU2NhbGU6MSx0OmUrKDEtZSkqcn06e2Zyb21TY2FsZTouNSx0b1NjYWxlOjEsdDoxLSgxLXIpKmV9fTt2YXIgZGk9ZnVuY3Rpb24odCxlKXt0aGlzLnByb3BlcnR5PXQsdGhpcy52YWx1ZT1lLHRoaXMuZXhwcmVzc2lvbj1mdW5jdGlvbih0LGUpe2lmKEJyKHQpKXJldHVybiBuZXcgS3IodCxlKTtpZihZcih0KSl7dmFyIHI9SnIodCxlKTtpZigiZXJyb3IiPT09ci5yZXN1bHQpdGhyb3cgbmV3IEVycm9yKHIudmFsdWUubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5rZXkrIjogIit0Lm1lc3NhZ2V9KSkuam9pbigiLCAiKSk7cmV0dXJuIHIudmFsdWV9dmFyIG49dDtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJiJjb2xvciI9PT1lLnR5cGUmJihuPXRlLnBhcnNlKHQpKSx7a2luZDoiY29uc3RhbnQiLGV2YWx1YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIG59fX0odm9pZCAwPT09ZT90LnNwZWNpZmljYXRpb24uZGVmYXVsdDplLHQuc3BlY2lmaWNhdGlvbil9O2RpLnByb3RvdHlwZS5pc0RhdGFEcml2ZW49ZnVuY3Rpb24oKXtyZXR1cm4ic291cmNlIj09PXRoaXMuZXhwcmVzc2lvbi5raW5kfHwiY29tcG9zaXRlIj09PXRoaXMuZXhwcmVzc2lvbi5raW5kfSxkaS5wcm90b3R5cGUucG9zc2libHlFdmFsdWF0ZT1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRoaXMucHJvcGVydHkucG9zc2libHlFdmFsdWF0ZSh0aGlzLHQsZSxyKX07dmFyIG1pPWZ1bmN0aW9uKHQpe3RoaXMucHJvcGVydHk9dCx0aGlzLnZhbHVlPW5ldyBkaSh0LHZvaWQgMCl9O21pLnByb3RvdHlwZS50cmFuc2l0aW9uZWQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IHZpKHRoaXMucHJvcGVydHksdGhpcy52YWx1ZSxlLHUoe30sdC50cmFuc2l0aW9uLHRoaXMudHJhbnNpdGlvbiksdC5ub3cpfSxtaS5wcm90b3R5cGUudW50cmFuc2l0aW9uZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHZpKHRoaXMucHJvcGVydHksdGhpcy52YWx1ZSxudWxsLHt9LDApfTt2YXIgZ2k9ZnVuY3Rpb24odCl7dGhpcy5fcHJvcGVydGllcz10LHRoaXMuX3ZhbHVlcz1PYmplY3QuY3JlYXRlKHQuZGVmYXVsdFRyYW5zaXRpb25hYmxlUHJvcGVydHlWYWx1ZXMpfTtnaS5wcm90b3R5cGUuZ2V0VmFsdWU9ZnVuY3Rpb24odCl7cmV0dXJuIHgodGhpcy5fdmFsdWVzW3RdLnZhbHVlLnZhbHVlKX0sZ2kucHJvdG90eXBlLnNldFZhbHVlPWZ1bmN0aW9uKHQsZSl7dGhpcy5fdmFsdWVzLmhhc093blByb3BlcnR5KHQpfHwodGhpcy5fdmFsdWVzW3RdPW5ldyBtaSh0aGlzLl92YWx1ZXNbdF0ucHJvcGVydHkpKSx0aGlzLl92YWx1ZXNbdF0udmFsdWU9bmV3IGRpKHRoaXMuX3ZhbHVlc1t0XS5wcm9wZXJ0eSxudWxsPT09ZT92b2lkIDA6eChlKSl9LGdpLnByb3RvdHlwZS5nZXRUcmFuc2l0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiB4KHRoaXMuX3ZhbHVlc1t0XS50cmFuc2l0aW9uKX0sZ2kucHJvdG90eXBlLnNldFRyYW5zaXRpb249ZnVuY3Rpb24odCxlKXt0aGlzLl92YWx1ZXMuaGFzT3duUHJvcGVydHkodCl8fCh0aGlzLl92YWx1ZXNbdF09bmV3IG1pKHRoaXMuX3ZhbHVlc1t0XS5wcm9wZXJ0eSkpLHRoaXMuX3ZhbHVlc1t0XS50cmFuc2l0aW9uPXgoZSl8fHZvaWQgMH0sZ2kucHJvdG90eXBlLnNlcmlhbGl6ZT1mdW5jdGlvbigpe2Zvcih2YXIgdD17fSxlPTAscj1PYmplY3Qua2V5cyh0aGlzLl92YWx1ZXMpO2U8ci5sZW5ndGg7ZSs9MSl7dmFyIG49cltlXSxpPXRoaXMuZ2V0VmFsdWUobik7dm9pZCAwIT09aSYmKHRbbl09aSk7dmFyIGE9dGhpcy5nZXRUcmFuc2l0aW9uKG4pO3ZvaWQgMCE9PWEmJih0W24rIi10cmFuc2l0aW9uIl09YSl9cmV0dXJuIHR9LGdpLnByb3RvdHlwZS50cmFuc2l0aW9uZWQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9bmV3IHlpKHRoaXMuX3Byb3BlcnRpZXMpLG49MCxpPU9iamVjdC5rZXlzKHRoaXMuX3ZhbHVlcyk7bjxpLmxlbmd0aDtuKz0xKXt2YXIgYT1pW25dO3IuX3ZhbHVlc1thXT10aGlzLl92YWx1ZXNbYV0udHJhbnNpdGlvbmVkKHQsZS5fdmFsdWVzW2FdKX1yZXR1cm4gcn0sZ2kucHJvdG90eXBlLnVudHJhbnNpdGlvbmVkPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PW5ldyB5aSh0aGlzLl9wcm9wZXJ0aWVzKSxlPTAscj1PYmplY3Qua2V5cyh0aGlzLl92YWx1ZXMpO2U8ci5sZW5ndGg7ZSs9MSl7dmFyIG49cltlXTt0Ll92YWx1ZXNbbl09dGhpcy5fdmFsdWVzW25dLnVudHJhbnNpdGlvbmVkKCl9cmV0dXJuIHR9O3ZhciB2aT1mdW5jdGlvbih0LGUscixuLGkpe3RoaXMucHJvcGVydHk9dCx0aGlzLnZhbHVlPWUsdGhpcy5iZWdpbj1pK24uZGVsYXl8fDAsdGhpcy5lbmQ9dGhpcy5iZWdpbituLmR1cmF0aW9ufHwwLHQuc3BlY2lmaWNhdGlvbi50cmFuc2l0aW9uJiYobi5kZWxheXx8bi5kdXJhdGlvbikmJih0aGlzLnByaW9yPXIpfTt2aS5wcm90b3R5cGUucG9zc2libHlFdmFsdWF0ZT1mdW5jdGlvbih0LGUscil7dmFyIG49dC5ub3d8fDAsaT10aGlzLnZhbHVlLnBvc3NpYmx5RXZhbHVhdGUodCxlLHIpLGE9dGhpcy5wcmlvcjtpZihhKXtpZihuPnRoaXMuZW5kKXJldHVybiB0aGlzLnByaW9yPW51bGwsaTtpZih0aGlzLnZhbHVlLmlzRGF0YURyaXZlbigpKXJldHVybiB0aGlzLnByaW9yPW51bGwsaTtpZihuPHRoaXMuYmVnaW4pcmV0dXJuIGEucG9zc2libHlFdmFsdWF0ZSh0LGUscik7dmFyIG89KG4tdGhpcy5iZWdpbikvKHRoaXMuZW5kLXRoaXMuYmVnaW4pO3JldHVybiB0aGlzLnByb3BlcnR5LmludGVycG9sYXRlKGEucG9zc2libHlFdmFsdWF0ZSh0LGUsciksaSxmdW5jdGlvbih0KXtpZih0PD0wKXJldHVybiAwO2lmKHQ+PTEpcmV0dXJuIDE7dmFyIGU9dCp0LHI9ZSp0O3JldHVybiA0Kih0PC41P3I6MyoodC1lKStyLS43NSl9KG8pKX1yZXR1cm4gaX07dmFyIHlpPWZ1bmN0aW9uKHQpe3RoaXMuX3Byb3BlcnRpZXM9dCx0aGlzLl92YWx1ZXM9T2JqZWN0LmNyZWF0ZSh0LmRlZmF1bHRUcmFuc2l0aW9uaW5nUHJvcGVydHlWYWx1ZXMpfTt5aS5wcm90b3R5cGUucG9zc2libHlFdmFsdWF0ZT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuPW5ldyBfaSh0aGlzLl9wcm9wZXJ0aWVzKSxpPTAsYT1PYmplY3Qua2V5cyh0aGlzLl92YWx1ZXMpO2k8YS5sZW5ndGg7aSs9MSl7dmFyIG89YVtpXTtuLl92YWx1ZXNbb109dGhpcy5fdmFsdWVzW29dLnBvc3NpYmx5RXZhbHVhdGUodCxlLHIpfXJldHVybiBufSx5aS5wcm90b3R5cGUuaGFzVHJhbnNpdGlvbj1mdW5jdGlvbigpe2Zvcih2YXIgdD0wLGU9T2JqZWN0LmtleXModGhpcy5fdmFsdWVzKTt0PGUubGVuZ3RoO3QrPTEpe3ZhciByPWVbdF07aWYodGhpcy5fdmFsdWVzW3JdLnByaW9yKXJldHVybiEwfXJldHVybiExfTt2YXIgeGk9ZnVuY3Rpb24odCl7dGhpcy5fcHJvcGVydGllcz10LHRoaXMuX3ZhbHVlcz1PYmplY3QuY3JlYXRlKHQuZGVmYXVsdFByb3BlcnR5VmFsdWVzKX07eGkucHJvdG90eXBlLmdldFZhbHVlPWZ1bmN0aW9uKHQpe3JldHVybiB4KHRoaXMuX3ZhbHVlc1t0XS52YWx1ZSl9LHhpLnByb3RvdHlwZS5zZXRWYWx1ZT1mdW5jdGlvbih0LGUpe3RoaXMuX3ZhbHVlc1t0XT1uZXcgZGkodGhpcy5fdmFsdWVzW3RdLnByb3BlcnR5LG51bGw9PT1lP3ZvaWQgMDp4KGUpKX0seGkucHJvdG90eXBlLnNlcmlhbGl6ZT1mdW5jdGlvbigpe2Zvcih2YXIgdD17fSxlPTAscj1PYmplY3Qua2V5cyh0aGlzLl92YWx1ZXMpO2U8ci5sZW5ndGg7ZSs9MSl7dmFyIG49cltlXSxpPXRoaXMuZ2V0VmFsdWUobik7dm9pZCAwIT09aSYmKHRbbl09aSl9cmV0dXJuIHR9LHhpLnByb3RvdHlwZS5wb3NzaWJseUV2YWx1YXRlPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG49bmV3IF9pKHRoaXMuX3Byb3BlcnRpZXMpLGk9MCxhPU9iamVjdC5rZXlzKHRoaXMuX3ZhbHVlcyk7aTxhLmxlbmd0aDtpKz0xKXt2YXIgbz1hW2ldO24uX3ZhbHVlc1tvXT10aGlzLl92YWx1ZXNbb10ucG9zc2libHlFdmFsdWF0ZSh0LGUscil9cmV0dXJuIG59O3ZhciBiaT1mdW5jdGlvbih0LGUscil7dGhpcy5wcm9wZXJ0eT10LHRoaXMudmFsdWU9ZSx0aGlzLnBhcmFtZXRlcnM9cn07YmkucHJvdG90eXBlLmlzQ29uc3RhbnQ9ZnVuY3Rpb24oKXtyZXR1cm4iY29uc3RhbnQiPT09dGhpcy52YWx1ZS5raW5kfSxiaS5wcm90b3R5cGUuY29uc3RhbnRPcj1mdW5jdGlvbih0KXtyZXR1cm4iY29uc3RhbnQiPT09dGhpcy52YWx1ZS5raW5kP3RoaXMudmFsdWUudmFsdWU6dH0sYmkucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiB0aGlzLnByb3BlcnR5LmV2YWx1YXRlKHRoaXMudmFsdWUsdGhpcy5wYXJhbWV0ZXJzLHQsZSxyLG4pfTt2YXIgX2k9ZnVuY3Rpb24odCl7dGhpcy5fcHJvcGVydGllcz10LHRoaXMuX3ZhbHVlcz1PYmplY3QuY3JlYXRlKHQuZGVmYXVsdFBvc3NpYmx5RXZhbHVhdGVkVmFsdWVzKX07X2kucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fdmFsdWVzW3RdfTt2YXIgd2k9ZnVuY3Rpb24odCl7dGhpcy5zcGVjaWZpY2F0aW9uPXR9O3dpLnByb3RvdHlwZS5wb3NzaWJseUV2YWx1YXRlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuZXhwcmVzc2lvbi5ldmFsdWF0ZShlKX0sd2kucHJvdG90eXBlLmludGVycG9sYXRlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1HZVt0aGlzLnNwZWNpZmljYXRpb24udHlwZV07cmV0dXJuIG4/bih0LGUscik6dH07dmFyIFRpPWZ1bmN0aW9uKHQsZSl7dGhpcy5zcGVjaWZpY2F0aW9uPXQsdGhpcy5vdmVycmlkZXM9ZX07VGkucHJvdG90eXBlLnBvc3NpYmx5RXZhbHVhdGU9ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuImNvbnN0YW50Ij09PXQuZXhwcmVzc2lvbi5raW5kfHwiY2FtZXJhIj09PXQuZXhwcmVzc2lvbi5raW5kP25ldyBiaSh0aGlzLHtraW5kOiJjb25zdGFudCIsdmFsdWU6dC5leHByZXNzaW9uLmV2YWx1YXRlKGUsbnVsbCx7fSxyLG4pfSxlKTpuZXcgYmkodGhpcyx0LmV4cHJlc3Npb24sZSl9LFRpLnByb3RvdHlwZS5pbnRlcnBvbGF0ZT1mdW5jdGlvbih0LGUscil7aWYoImNvbnN0YW50IiE9PXQudmFsdWUua2luZHx8ImNvbnN0YW50IiE9PWUudmFsdWUua2luZClyZXR1cm4gdDtpZih2b2lkIDA9PT10LnZhbHVlLnZhbHVlfHx2b2lkIDA9PT1lLnZhbHVlLnZhbHVlKXJldHVybiBuZXcgYmkodGhpcyx7a2luZDoiY29uc3RhbnQiLHZhbHVlOnZvaWQgMH0sdC5wYXJhbWV0ZXJzKTt2YXIgbj1HZVt0aGlzLnNwZWNpZmljYXRpb24udHlwZV07cmV0dXJuIG4/bmV3IGJpKHRoaXMse2tpbmQ6ImNvbnN0YW50Iix2YWx1ZTpuKHQudmFsdWUudmFsdWUsZS52YWx1ZS52YWx1ZSxyKX0sdC5wYXJhbWV0ZXJzKTp0fSxUaS5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24odCxlLHIsbixpLGEpe3JldHVybiJjb25zdGFudCI9PT10LmtpbmQ/dC52YWx1ZTp0LmV2YWx1YXRlKGUscixuLGksYSl9O3ZhciBraT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLnBvc3NpYmx5RXZhbHVhdGU9ZnVuY3Rpb24odCxlLHIsbil7aWYodm9pZCAwPT09dC52YWx1ZSlyZXR1cm4gbmV3IGJpKHRoaXMse2tpbmQ6ImNvbnN0YW50Iix2YWx1ZTp2b2lkIDB9LGUpO2lmKCJjb25zdGFudCI9PT10LmV4cHJlc3Npb24ua2luZCl7dmFyIGk9dC5leHByZXNzaW9uLmV2YWx1YXRlKGUsbnVsbCx7fSxyLG4pLGE9InJlc29sdmVkSW1hZ2UiPT09dC5wcm9wZXJ0eS5zcGVjaWZpY2F0aW9uLnR5cGUmJiJzdHJpbmciIT10eXBlb2YgaT9pLm5hbWU6aSxvPXRoaXMuX2NhbGN1bGF0ZShhLGEsYSxlKTtyZXR1cm4gbmV3IGJpKHRoaXMse2tpbmQ6ImNvbnN0YW50Iix2YWx1ZTpvfSxlKX1pZigiY2FtZXJhIj09PXQuZXhwcmVzc2lvbi5raW5kKXt2YXIgcz10aGlzLl9jYWxjdWxhdGUodC5leHByZXNzaW9uLmV2YWx1YXRlKHt6b29tOmUuem9vbS0xfSksdC5leHByZXNzaW9uLmV2YWx1YXRlKHt6b29tOmUuem9vbX0pLHQuZXhwcmVzc2lvbi5ldmFsdWF0ZSh7em9vbTplLnpvb20rMX0pLGUpO3JldHVybiBuZXcgYmkodGhpcyx7a2luZDoiY29uc3RhbnQiLHZhbHVlOnN9LGUpfXJldHVybiBuZXcgYmkodGhpcyx0LmV4cHJlc3Npb24sZSl9LGUucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKHQsZSxyLG4saSxhKXtpZigic291cmNlIj09PXQua2luZCl7dmFyIG89dC5ldmFsdWF0ZShlLHIsbixpLGEpO3JldHVybiB0aGlzLl9jYWxjdWxhdGUobyxvLG8sZSl9cmV0dXJuImNvbXBvc2l0ZSI9PT10LmtpbmQ/dGhpcy5fY2FsY3VsYXRlKHQuZXZhbHVhdGUoe3pvb206TWF0aC5mbG9vcihlLnpvb20pLTF9LHIsbiksdC5ldmFsdWF0ZSh7em9vbTpNYXRoLmZsb29yKGUuem9vbSl9LHIsbiksdC5ldmFsdWF0ZSh7em9vbTpNYXRoLmZsb29yKGUuem9vbSkrMX0scixuKSxlKTp0LnZhbHVlfSxlLnByb3RvdHlwZS5fY2FsY3VsYXRlPWZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiBuLnpvb20+bi56b29tSGlzdG9yeS5sYXN0SW50ZWdlclpvb20/e2Zyb206dCx0bzplfTp7ZnJvbTpyLHRvOmV9fSxlLnByb3RvdHlwZS5pbnRlcnBvbGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdH0sZX0oVGkpLEFpPWZ1bmN0aW9uKHQpe3RoaXMuc3BlY2lmaWNhdGlvbj10fTtBaS5wcm90b3R5cGUucG9zc2libHlFdmFsdWF0ZT1mdW5jdGlvbih0LGUscixuKXtpZih2b2lkIDAhPT10LnZhbHVlKXtpZigiY29uc3RhbnQiPT09dC5leHByZXNzaW9uLmtpbmQpe3ZhciBpPXQuZXhwcmVzc2lvbi5ldmFsdWF0ZShlLG51bGwse30scixuKTtyZXR1cm4gdGhpcy5fY2FsY3VsYXRlKGksaSxpLGUpfXJldHVybiB0aGlzLl9jYWxjdWxhdGUodC5leHByZXNzaW9uLmV2YWx1YXRlKG5ldyBwaShNYXRoLmZsb29yKGUuem9vbS0xKSxlKSksdC5leHByZXNzaW9uLmV2YWx1YXRlKG5ldyBwaShNYXRoLmZsb29yKGUuem9vbSksZSkpLHQuZXhwcmVzc2lvbi5ldmFsdWF0ZShuZXcgcGkoTWF0aC5mbG9vcihlLnpvb20rMSksZSkpLGUpfX0sQWkucHJvdG90eXBlLl9jYWxjdWxhdGU9ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIG4uem9vbT5uLnpvb21IaXN0b3J5Lmxhc3RJbnRlZ2VyWm9vbT97ZnJvbTp0LHRvOmV9Ontmcm9tOnIsdG86ZX19LEFpLnByb3RvdHlwZS5pbnRlcnBvbGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdH07dmFyIE1pPWZ1bmN0aW9uKHQpe3RoaXMuc3BlY2lmaWNhdGlvbj10fTtNaS5wcm90b3R5cGUucG9zc2libHlFdmFsdWF0ZT1mdW5jdGlvbih0LGUscixuKXtyZXR1cm4hIXQuZXhwcmVzc2lvbi5ldmFsdWF0ZShlLG51bGwse30scixuKX0sTWkucHJvdG90eXBlLmludGVycG9sYXRlPWZ1bmN0aW9uKCl7cmV0dXJuITF9O3ZhciBTaT1mdW5jdGlvbih0KXtmb3IodmFyIGUgaW4gdGhpcy5wcm9wZXJ0aWVzPXQsdGhpcy5kZWZhdWx0UHJvcGVydHlWYWx1ZXM9e30sdGhpcy5kZWZhdWx0VHJhbnNpdGlvbmFibGVQcm9wZXJ0eVZhbHVlcz17fSx0aGlzLmRlZmF1bHRUcmFuc2l0aW9uaW5nUHJvcGVydHlWYWx1ZXM9e30sdGhpcy5kZWZhdWx0UG9zc2libHlFdmFsdWF0ZWRWYWx1ZXM9e30sdGhpcy5vdmVycmlkYWJsZVByb3BlcnRpZXM9W10sdCl7dmFyIHI9dFtlXTtyLnNwZWNpZmljYXRpb24ub3ZlcnJpZGFibGUmJnRoaXMub3ZlcnJpZGFibGVQcm9wZXJ0aWVzLnB1c2goZSk7dmFyIG49dGhpcy5kZWZhdWx0UHJvcGVydHlWYWx1ZXNbZV09bmV3IGRpKHIsdm9pZCAwKSxpPXRoaXMuZGVmYXVsdFRyYW5zaXRpb25hYmxlUHJvcGVydHlWYWx1ZXNbZV09bmV3IG1pKHIpO3RoaXMuZGVmYXVsdFRyYW5zaXRpb25pbmdQcm9wZXJ0eVZhbHVlc1tlXT1pLnVudHJhbnNpdGlvbmVkKCksdGhpcy5kZWZhdWx0UG9zc2libHlFdmFsdWF0ZWRWYWx1ZXNbZV09bi5wb3NzaWJseUV2YWx1YXRlKHt9KX19O05uKCJEYXRhRHJpdmVuUHJvcGVydHkiLFRpKSxObigiRGF0YUNvbnN0YW50UHJvcGVydHkiLHdpKSxObigiQ3Jvc3NGYWRlZERhdGFEcml2ZW5Qcm9wZXJ0eSIsa2kpLE5uKCJDcm9zc0ZhZGVkUHJvcGVydHkiLEFpKSxObigiQ29sb3JSYW1wUHJvcGVydHkiLE1pKTt2YXIgRWk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlLHIpe2lmKHQuY2FsbCh0aGlzKSx0aGlzLmlkPWUuaWQsdGhpcy50eXBlPWUudHlwZSx0aGlzLl9mZWF0dXJlRmlsdGVyPXtmaWx0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sbmVlZEdlb21ldHJ5OiExfSwiY3VzdG9tIiE9PWUudHlwZSYmKGU9ZSx0aGlzLm1ldGFkYXRhPWUubWV0YWRhdGEsdGhpcy5taW56b29tPWUubWluem9vbSx0aGlzLm1heHpvb209ZS5tYXh6b29tLCJiYWNrZ3JvdW5kIiE9PWUudHlwZSYmKHRoaXMuc291cmNlPWUuc291cmNlLHRoaXMuc291cmNlTGF5ZXI9ZVsic291cmNlLWxheWVyIl0sdGhpcy5maWx0ZXI9ZS5maWx0ZXIpLHIubGF5b3V0JiYodGhpcy5fdW5ldmFsdWF0ZWRMYXlvdXQ9bmV3IHhpKHIubGF5b3V0KSksci5wYWludCkpe2Zvcih2YXIgbiBpbiB0aGlzLl90cmFuc2l0aW9uYWJsZVBhaW50PW5ldyBnaShyLnBhaW50KSxlLnBhaW50KXRoaXMuc2V0UGFpbnRQcm9wZXJ0eShuLGUucGFpbnRbbl0se3ZhbGlkYXRlOiExfSk7Zm9yKHZhciBpIGluIGUubGF5b3V0KXRoaXMuc2V0TGF5b3V0UHJvcGVydHkoaSxlLmxheW91dFtpXSx7dmFsaWRhdGU6ITF9KTt0aGlzLl90cmFuc2l0aW9uaW5nUGFpbnQ9dGhpcy5fdHJhbnNpdGlvbmFibGVQYWludC51bnRyYW5zaXRpb25lZCgpLHRoaXMucGFpbnQ9bmV3IF9pKHIucGFpbnQpfX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0Q3Jvc3NmYWRlUGFyYW1ldGVycz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9jcm9zc2ZhZGVQYXJhbWV0ZXJzfSxlLnByb3RvdHlwZS5nZXRMYXlvdXRQcm9wZXJ0eT1mdW5jdGlvbih0KXtyZXR1cm4idmlzaWJpbGl0eSI9PT10P3RoaXMudmlzaWJpbGl0eTp0aGlzLl91bmV2YWx1YXRlZExheW91dC5nZXRWYWx1ZSh0KX0sZS5wcm90b3R5cGUuc2V0TGF5b3V0UHJvcGVydHk9ZnVuY3Rpb24odCxlLHIpe2lmKHZvaWQgMD09PXImJihyPXt9KSxudWxsIT1lKXt2YXIgbj0ibGF5ZXJzLiIrdGhpcy5pZCsiLmxheW91dC4iK3Q7aWYodGhpcy5fdmFsaWRhdGUoSW4sbix0LGUscikpcmV0dXJufSJ2aXNpYmlsaXR5IiE9PXQ/dGhpcy5fdW5ldmFsdWF0ZWRMYXlvdXQuc2V0VmFsdWUodCxlKTp0aGlzLnZpc2liaWxpdHk9ZX0sZS5wcm90b3R5cGUuZ2V0UGFpbnRQcm9wZXJ0eT1mdW5jdGlvbih0KXtyZXR1cm4gZyh0LCItdHJhbnNpdGlvbiIpP3RoaXMuX3RyYW5zaXRpb25hYmxlUGFpbnQuZ2V0VHJhbnNpdGlvbih0LnNsaWNlKDAsLSItdHJhbnNpdGlvbiIubGVuZ3RoKSk6dGhpcy5fdHJhbnNpdGlvbmFibGVQYWludC5nZXRWYWx1ZSh0KX0sZS5wcm90b3R5cGUuc2V0UGFpbnRQcm9wZXJ0eT1mdW5jdGlvbih0LGUscil7aWYodm9pZCAwPT09ciYmKHI9e30pLG51bGwhPWUpe3ZhciBuPSJsYXllcnMuIit0aGlzLmlkKyIucGFpbnQuIit0O2lmKHRoaXMuX3ZhbGlkYXRlKFBuLG4sdCxlLHIpKXJldHVybiExfWlmKGcodCwiLXRyYW5zaXRpb24iKSlyZXR1cm4gdGhpcy5fdHJhbnNpdGlvbmFibGVQYWludC5zZXRUcmFuc2l0aW9uKHQuc2xpY2UoMCwtIi10cmFuc2l0aW9uIi5sZW5ndGgpLGV8fHZvaWQgMCksITE7dmFyIGk9dGhpcy5fdHJhbnNpdGlvbmFibGVQYWludC5fdmFsdWVzW3RdLGE9ImNyb3NzLWZhZGVkLWRhdGEtZHJpdmVuIj09PWkucHJvcGVydHkuc3BlY2lmaWNhdGlvblsicHJvcGVydHktdHlwZSJdLG89aS52YWx1ZS5pc0RhdGFEcml2ZW4oKSxzPWkudmFsdWU7dGhpcy5fdHJhbnNpdGlvbmFibGVQYWludC5zZXRWYWx1ZSh0LGUpLHRoaXMuX2hhbmRsZVNwZWNpYWxQYWludFByb3BlcnR5VXBkYXRlKHQpO3ZhciBsPXRoaXMuX3RyYW5zaXRpb25hYmxlUGFpbnQuX3ZhbHVlc1t0XS52YWx1ZTtyZXR1cm4gbC5pc0RhdGFEcml2ZW4oKXx8b3x8YXx8dGhpcy5faGFuZGxlT3ZlcnJpZGFibGVQYWludFByb3BlcnR5VXBkYXRlKHQscyxsKX0sZS5wcm90b3R5cGUuX2hhbmRsZVNwZWNpYWxQYWludFByb3BlcnR5VXBkYXRlPWZ1bmN0aW9uKHQpe30sZS5wcm90b3R5cGUuX2hhbmRsZU92ZXJyaWRhYmxlUGFpbnRQcm9wZXJ0eVVwZGF0ZT1mdW5jdGlvbih0LGUscil7cmV0dXJuITF9LGUucHJvdG90eXBlLmlzSGlkZGVuPWZ1bmN0aW9uKHQpe3JldHVybiEhKHRoaXMubWluem9vbSYmdDx0aGlzLm1pbnpvb20pfHwoISEodGhpcy5tYXh6b29tJiZ0Pj10aGlzLm1heHpvb20pfHwibm9uZSI9PT10aGlzLnZpc2liaWxpdHkpfSxlLnByb3RvdHlwZS51cGRhdGVUcmFuc2l0aW9ucz1mdW5jdGlvbih0KXt0aGlzLl90cmFuc2l0aW9uaW5nUGFpbnQ9dGhpcy5fdHJhbnNpdGlvbmFibGVQYWludC50cmFuc2l0aW9uZWQodCx0aGlzLl90cmFuc2l0aW9uaW5nUGFpbnQpfSxlLnByb3RvdHlwZS5oYXNUcmFuc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3RyYW5zaXRpb25pbmdQYWludC5oYXNUcmFuc2l0aW9uKCl9LGUucHJvdG90eXBlLnJlY2FsY3VsYXRlPWZ1bmN0aW9uKHQsZSl7dC5nZXRDcm9zc2ZhZGVQYXJhbWV0ZXJzJiYodGhpcy5fY3Jvc3NmYWRlUGFyYW1ldGVycz10LmdldENyb3NzZmFkZVBhcmFtZXRlcnMoKSksdGhpcy5fdW5ldmFsdWF0ZWRMYXlvdXQmJih0aGlzLmxheW91dD10aGlzLl91bmV2YWx1YXRlZExheW91dC5wb3NzaWJseUV2YWx1YXRlKHQsdm9pZCAwLGUpKSx0aGlzLnBhaW50PXRoaXMuX3RyYW5zaXRpb25pbmdQYWludC5wb3NzaWJseUV2YWx1YXRlKHQsdm9pZCAwLGUpfSxlLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXt2YXIgdD17aWQ6dGhpcy5pZCx0eXBlOnRoaXMudHlwZSxzb3VyY2U6dGhpcy5zb3VyY2UsInNvdXJjZS1sYXllciI6dGhpcy5zb3VyY2VMYXllcixtZXRhZGF0YTp0aGlzLm1ldGFkYXRhLG1pbnpvb206dGhpcy5taW56b29tLG1heHpvb206dGhpcy5tYXh6b29tLGZpbHRlcjp0aGlzLmZpbHRlcixsYXlvdXQ6dGhpcy5fdW5ldmFsdWF0ZWRMYXlvdXQmJnRoaXMuX3VuZXZhbHVhdGVkTGF5b3V0LnNlcmlhbGl6ZSgpLHBhaW50OnRoaXMuX3RyYW5zaXRpb25hYmxlUGFpbnQmJnRoaXMuX3RyYW5zaXRpb25hYmxlUGFpbnQuc2VyaWFsaXplKCl9O3JldHVybiB0aGlzLnZpc2liaWxpdHkmJih0LmxheW91dD10LmxheW91dHx8e30sdC5sYXlvdXQudmlzaWJpbGl0eT10aGlzLnZpc2liaWxpdHkpLHkodCwoZnVuY3Rpb24odCxlKXtyZXR1cm4hKHZvaWQgMD09PXR8fCJsYXlvdXQiPT09ZSYmIU9iamVjdC5rZXlzKHQpLmxlbmd0aHx8InBhaW50Ij09PWUmJiFPYmplY3Qua2V5cyh0KS5sZW5ndGgpfSkpfSxlLnByb3RvdHlwZS5fdmFsaWRhdGU9ZnVuY3Rpb24odCxlLHIsbixpKXtyZXR1cm4gdm9pZCAwPT09aSYmKGk9e30pLCghaXx8ITEhPT1pLnZhbGlkYXRlKSYmT24odGhpcyx0LmNhbGwoTG4se2tleTplLGxheWVyVHlwZTp0aGlzLnR5cGUsb2JqZWN0S2V5OnIsdmFsdWU6bixzdHlsZVNwZWM6THQsc3R5bGU6e2dseXBoczohMCxzcHJpdGU6ITB9fSkpfSxlLnByb3RvdHlwZS5pczNEPWZ1bmN0aW9uKCl7cmV0dXJuITF9LGUucHJvdG90eXBlLmlzVGlsZUNsaXBwZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMX0sZS5wcm90b3R5cGUuaGFzT2Zmc2NyZWVuUGFzcz1mdW5jdGlvbigpe3JldHVybiExfSxlLnByb3RvdHlwZS5yZXNpemU9ZnVuY3Rpb24oKXt9LGUucHJvdG90eXBlLmlzU3RhdGVEZXBlbmRlbnQ9ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcy5wYWludC5fdmFsdWVzKXt2YXIgZT10aGlzLnBhaW50LmdldCh0KTtpZihlIGluc3RhbmNlb2YgYmkmJnpyKGUucHJvcGVydHkuc3BlY2lmaWNhdGlvbikmJigoInNvdXJjZSI9PT1lLnZhbHVlLmtpbmR8fCJjb21wb3NpdGUiPT09ZS52YWx1ZS5raW5kKSYmZS52YWx1ZS5pc1N0YXRlRGVwZW5kZW50KSlyZXR1cm4hMH1yZXR1cm4hMX0sZX0oRXQpLExpPXtJbnQ4OkludDhBcnJheSxVaW50ODpVaW50OEFycmF5LEludDE2OkludDE2QXJyYXksVWludDE2OlVpbnQxNkFycmF5LEludDMyOkludDMyQXJyYXksVWludDMyOlVpbnQzMkFycmF5LEZsb2F0MzI6RmxvYXQzMkFycmF5fSxDaT1mdW5jdGlvbih0LGUpe3RoaXMuX3N0cnVjdEFycmF5PXQsdGhpcy5fcG9zMT1lKnRoaXMuc2l6ZSx0aGlzLl9wb3MyPXRoaXMuX3BvczEvMix0aGlzLl9wb3M0PXRoaXMuX3BvczEvNCx0aGlzLl9wb3M4PXRoaXMuX3BvczEvOH0sUGk9ZnVuY3Rpb24oKXt0aGlzLmlzVHJhbnNmZXJyZWQ9ITEsdGhpcy5jYXBhY2l0eT0tMSx0aGlzLnJlc2l6ZSgwKX07ZnVuY3Rpb24gSWkodCxlKXt2b2lkIDA9PT1lJiYoZT0xKTt2YXIgcj0wLG49MDtyZXR1cm57bWVtYmVyczp0Lm1hcCgoZnVuY3Rpb24odCl7dmFyIGksYT0oaT10LnR5cGUsTGlbaV0uQllURVNfUEVSX0VMRU1FTlQpLG89cj1PaShyLE1hdGgubWF4KGUsYSkpLHM9dC5jb21wb25lbnRzfHwxO3JldHVybiBuPU1hdGgubWF4KG4sYSkscis9YSpzLHtuYW1lOnQubmFtZSx0eXBlOnQudHlwZSxjb21wb25lbnRzOnMsb2Zmc2V0Om99fSkpLHNpemU6T2kocixNYXRoLm1heChuLGUpKSxhbGlnbm1lbnQ6ZX19ZnVuY3Rpb24gT2kodCxlKXtyZXR1cm4gTWF0aC5jZWlsKHQvZSkqZX1QaS5zZXJpYWxpemU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5fdHJpbSgpLGUmJih0LmlzVHJhbnNmZXJyZWQ9ITAsZS5wdXNoKHQuYXJyYXlCdWZmZXIpKSx7bGVuZ3RoOnQubGVuZ3RoLGFycmF5QnVmZmVyOnQuYXJyYXlCdWZmZXJ9fSxQaS5kZXNlcmlhbGl6ZT1mdW5jdGlvbih0KXt2YXIgZT1PYmplY3QuY3JlYXRlKHRoaXMucHJvdG90eXBlKTtyZXR1cm4gZS5hcnJheUJ1ZmZlcj10LmFycmF5QnVmZmVyLGUubGVuZ3RoPXQubGVuZ3RoLGUuY2FwYWNpdHk9dC5hcnJheUJ1ZmZlci5ieXRlTGVuZ3RoL2UuYnl0ZXNQZXJFbGVtZW50LGUuX3JlZnJlc2hWaWV3cygpLGV9LFBpLnByb3RvdHlwZS5fdHJpbT1mdW5jdGlvbigpe3RoaXMubGVuZ3RoIT09dGhpcy5jYXBhY2l0eSYmKHRoaXMuY2FwYWNpdHk9dGhpcy5sZW5ndGgsdGhpcy5hcnJheUJ1ZmZlcj10aGlzLmFycmF5QnVmZmVyLnNsaWNlKDAsdGhpcy5sZW5ndGgqdGhpcy5ieXRlc1BlckVsZW1lbnQpLHRoaXMuX3JlZnJlc2hWaWV3cygpKX0sUGkucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5sZW5ndGg9MH0sUGkucHJvdG90eXBlLnJlc2l6ZT1mdW5jdGlvbih0KXt0aGlzLnJlc2VydmUodCksdGhpcy5sZW5ndGg9dH0sUGkucHJvdG90eXBlLnJlc2VydmU9ZnVuY3Rpb24odCl7aWYodD50aGlzLmNhcGFjaXR5KXt0aGlzLmNhcGFjaXR5PU1hdGgubWF4KHQsTWF0aC5mbG9vcig1KnRoaXMuY2FwYWNpdHkpLDEyOCksdGhpcy5hcnJheUJ1ZmZlcj1uZXcgQXJyYXlCdWZmZXIodGhpcy5jYXBhY2l0eSp0aGlzLmJ5dGVzUGVyRWxlbWVudCk7dmFyIGU9dGhpcy51aW50ODt0aGlzLl9yZWZyZXNoVmlld3MoKSxlJiZ0aGlzLnVpbnQ4LnNldChlKX19LFBpLnByb3RvdHlwZS5fcmVmcmVzaFZpZXdzPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJfcmVmcmVzaFZpZXdzKCkgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBlYWNoIGNvbmNyZXRlIFN0cnVjdEFycmF5IGxheW91dCIpfTt2YXIgemk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5fcmVmcmVzaFZpZXdzPWZ1bmN0aW9uKCl7dGhpcy51aW50OD1uZXcgVWludDhBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLmludDE2PW5ldyBJbnQxNkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpfSxlLnByb3RvdHlwZS5lbXBsYWNlQmFjaz1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMubGVuZ3RoO3JldHVybiB0aGlzLnJlc2l6ZShyKzEpLHRoaXMuZW1wbGFjZShyLHQsZSl9LGUucHJvdG90eXBlLmVtcGxhY2U9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPTIqdDtyZXR1cm4gdGhpcy5pbnQxNltuKzBdPWUsdGhpcy5pbnQxNltuKzFdPXIsdH0sZX0oUGkpO3ppLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9NCxObigiU3RydWN0QXJyYXlMYXlvdXQyaTQiLHppKTt2YXIgRGk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5fcmVmcmVzaFZpZXdzPWZ1bmN0aW9uKCl7dGhpcy51aW50OD1uZXcgVWludDhBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLmludDE2PW5ldyBJbnQxNkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpfSxlLnByb3RvdHlwZS5lbXBsYWNlQmFjaz1mdW5jdGlvbih0LGUscixuKXt2YXIgaT10aGlzLmxlbmd0aDtyZXR1cm4gdGhpcy5yZXNpemUoaSsxKSx0aGlzLmVtcGxhY2UoaSx0LGUscixuKX0sZS5wcm90b3R5cGUuZW1wbGFjZT1mdW5jdGlvbih0LGUscixuLGkpe3ZhciBhPTQqdDtyZXR1cm4gdGhpcy5pbnQxNlthKzBdPWUsdGhpcy5pbnQxNlthKzFdPXIsdGhpcy5pbnQxNlthKzJdPW4sdGhpcy5pbnQxNlthKzNdPWksdH0sZX0oUGkpO0RpLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9OCxObigiU3RydWN0QXJyYXlMYXlvdXQ0aTgiLERpKTt2YXIgUmk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5fcmVmcmVzaFZpZXdzPWZ1bmN0aW9uKCl7dGhpcy51aW50OD1uZXcgVWludDhBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLmludDE2PW5ldyBJbnQxNkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpfSxlLnByb3RvdHlwZS5lbXBsYWNlQmFjaz1mdW5jdGlvbih0LGUscixuLGksYSl7dmFyIG89dGhpcy5sZW5ndGg7cmV0dXJuIHRoaXMucmVzaXplKG8rMSksdGhpcy5lbXBsYWNlKG8sdCxlLHIsbixpLGEpfSxlLnByb3RvdHlwZS5lbXBsYWNlPWZ1bmN0aW9uKHQsZSxyLG4saSxhLG8pe3ZhciBzPTYqdDtyZXR1cm4gdGhpcy5pbnQxNltzKzBdPWUsdGhpcy5pbnQxNltzKzFdPXIsdGhpcy5pbnQxNltzKzJdPW4sdGhpcy5pbnQxNltzKzNdPWksdGhpcy5pbnQxNltzKzRdPWEsdGhpcy5pbnQxNltzKzVdPW8sdH0sZX0oUGkpO1JpLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9MTIsTm4oIlN0cnVjdEFycmF5TGF5b3V0Mmk0aTEyIixSaSk7dmFyIEZpPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuX3JlZnJlc2hWaWV3cz1mdW5jdGlvbigpe3RoaXMudWludDg9bmV3IFVpbnQ4QXJyYXkodGhpcy5hcnJheUJ1ZmZlciksdGhpcy5pbnQxNj1uZXcgSW50MTZBcnJheSh0aGlzLmFycmF5QnVmZmVyKX0sZS5wcm90b3R5cGUuZW1wbGFjZUJhY2s9ZnVuY3Rpb24odCxlLHIsbixpLGEpe3ZhciBvPXRoaXMubGVuZ3RoO3JldHVybiB0aGlzLnJlc2l6ZShvKzEpLHRoaXMuZW1wbGFjZShvLHQsZSxyLG4saSxhKX0sZS5wcm90b3R5cGUuZW1wbGFjZT1mdW5jdGlvbih0LGUscixuLGksYSxvKXt2YXIgcz00KnQsbD04KnQ7cmV0dXJuIHRoaXMuaW50MTZbcyswXT1lLHRoaXMuaW50MTZbcysxXT1yLHRoaXMudWludDhbbCs0XT1uLHRoaXMudWludDhbbCs1XT1pLHRoaXMudWludDhbbCs2XT1hLHRoaXMudWludDhbbCs3XT1vLHR9LGV9KFBpKTtGaS5wcm90b3R5cGUuYnl0ZXNQZXJFbGVtZW50PTgsTm4oIlN0cnVjdEFycmF5TGF5b3V0Mmk0dWI4IixGaSk7dmFyIEJpPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuX3JlZnJlc2hWaWV3cz1mdW5jdGlvbigpe3RoaXMudWludDg9bmV3IFVpbnQ4QXJyYXkodGhpcy5hcnJheUJ1ZmZlciksdGhpcy51aW50MTY9bmV3IFVpbnQxNkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpfSxlLnByb3RvdHlwZS5lbXBsYWNlQmFjaz1mdW5jdGlvbih0LGUscixuLGksYSxvLHMsbCxjKXt2YXIgdT10aGlzLmxlbmd0aDtyZXR1cm4gdGhpcy5yZXNpemUodSsxKSx0aGlzLmVtcGxhY2UodSx0LGUscixuLGksYSxvLHMsbCxjKX0sZS5wcm90b3R5cGUuZW1wbGFjZT1mdW5jdGlvbih0LGUscixuLGksYSxvLHMsbCxjLHUpe3ZhciBmPTkqdCxoPTE4KnQ7cmV0dXJuIHRoaXMudWludDE2W2YrMF09ZSx0aGlzLnVpbnQxNltmKzFdPXIsdGhpcy51aW50MTZbZisyXT1uLHRoaXMudWludDE2W2YrM109aSx0aGlzLnVpbnQxNltmKzRdPWEsdGhpcy51aW50MTZbZis1XT1vLHRoaXMudWludDE2W2YrNl09cyx0aGlzLnVpbnQxNltmKzddPWwsdGhpcy51aW50OFtoKzE2XT1jLHRoaXMudWludDhbaCsxN109dSx0fSxlfShQaSk7QmkucHJvdG90eXBlLmJ5dGVzUGVyRWxlbWVudD0xOCxObigiU3RydWN0QXJyYXlMYXlvdXQ4dWkydWIxOCIsQmkpO3ZhciBOaT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLl9yZWZyZXNoVmlld3M9ZnVuY3Rpb24oKXt0aGlzLnVpbnQ4PW5ldyBVaW50OEFycmF5KHRoaXMuYXJyYXlCdWZmZXIpLHRoaXMuaW50MTY9bmV3IEludDE2QXJyYXkodGhpcy5hcnJheUJ1ZmZlciksdGhpcy51aW50MTY9bmV3IFVpbnQxNkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpfSxlLnByb3RvdHlwZS5lbXBsYWNlQmFjaz1mdW5jdGlvbih0LGUscixuLGksYSxvLHMsbCxjLHUsZil7dmFyIGg9dGhpcy5sZW5ndGg7cmV0dXJuIHRoaXMucmVzaXplKGgrMSksdGhpcy5lbXBsYWNlKGgsdCxlLHIsbixpLGEsbyxzLGwsYyx1LGYpfSxlLnByb3RvdHlwZS5lbXBsYWNlPWZ1bmN0aW9uKHQsZSxyLG4saSxhLG8scyxsLGMsdSxmLGgpe3ZhciBwPTEyKnQ7cmV0dXJuIHRoaXMuaW50MTZbcCswXT1lLHRoaXMuaW50MTZbcCsxXT1yLHRoaXMuaW50MTZbcCsyXT1uLHRoaXMuaW50MTZbcCszXT1pLHRoaXMudWludDE2W3ArNF09YSx0aGlzLnVpbnQxNltwKzVdPW8sdGhpcy51aW50MTZbcCs2XT1zLHRoaXMudWludDE2W3ArN109bCx0aGlzLmludDE2W3ArOF09Yyx0aGlzLmludDE2W3ArOV09dSx0aGlzLmludDE2W3ArMTBdPWYsdGhpcy5pbnQxNltwKzExXT1oLHR9LGV9KFBpKTtOaS5wcm90b3R5cGUuYnl0ZXNQZXJFbGVtZW50PTI0LE5uKCJTdHJ1Y3RBcnJheUxheW91dDRpNHVpNGkyNCIsTmkpO3ZhciBqaT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLl9yZWZyZXNoVmlld3M9ZnVuY3Rpb24oKXt0aGlzLnVpbnQ4PW5ldyBVaW50OEFycmF5KHRoaXMuYXJyYXlCdWZmZXIpLHRoaXMuZmxvYXQzMj1uZXcgRmxvYXQzMkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpfSxlLnByb3RvdHlwZS5lbXBsYWNlQmFjaz1mdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5sZW5ndGg7cmV0dXJuIHRoaXMucmVzaXplKG4rMSksdGhpcy5lbXBsYWNlKG4sdCxlLHIpfSxlLnByb3RvdHlwZS5lbXBsYWNlPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPTMqdDtyZXR1cm4gdGhpcy5mbG9hdDMyW2krMF09ZSx0aGlzLmZsb2F0MzJbaSsxXT1yLHRoaXMuZmxvYXQzMltpKzJdPW4sdH0sZX0oUGkpO2ppLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9MTIsTm4oIlN0cnVjdEFycmF5TGF5b3V0M2YxMiIsamkpO3ZhciBVaT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLl9yZWZyZXNoVmlld3M9ZnVuY3Rpb24oKXt0aGlzLnVpbnQ4PW5ldyBVaW50OEFycmF5KHRoaXMuYXJyYXlCdWZmZXIpLHRoaXMudWludDMyPW5ldyBVaW50MzJBcnJheSh0aGlzLmFycmF5QnVmZmVyKX0sZS5wcm90b3R5cGUuZW1wbGFjZUJhY2s9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5sZW5ndGg7cmV0dXJuIHRoaXMucmVzaXplKGUrMSksdGhpcy5lbXBsYWNlKGUsdCl9LGUucHJvdG90eXBlLmVtcGxhY2U9ZnVuY3Rpb24odCxlKXt2YXIgcj0xKnQ7cmV0dXJuIHRoaXMudWludDMyW3IrMF09ZSx0fSxlfShQaSk7VWkucHJvdG90eXBlLmJ5dGVzUGVyRWxlbWVudD00LE5uKCJTdHJ1Y3RBcnJheUxheW91dDF1bDQiLFVpKTt2YXIgVmk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5fcmVmcmVzaFZpZXdzPWZ1bmN0aW9uKCl7dGhpcy51aW50OD1uZXcgVWludDhBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLmludDE2PW5ldyBJbnQxNkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpLHRoaXMudWludDMyPW5ldyBVaW50MzJBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLnVpbnQxNj1uZXcgVWludDE2QXJyYXkodGhpcy5hcnJheUJ1ZmZlcil9LGUucHJvdG90eXBlLmVtcGxhY2VCYWNrPWZ1bmN0aW9uKHQsZSxyLG4saSxhLG8scyxsKXt2YXIgYz10aGlzLmxlbmd0aDtyZXR1cm4gdGhpcy5yZXNpemUoYysxKSx0aGlzLmVtcGxhY2UoYyx0LGUscixuLGksYSxvLHMsbCl9LGUucHJvdG90eXBlLmVtcGxhY2U9ZnVuY3Rpb24odCxlLHIsbixpLGEsbyxzLGwsYyl7dmFyIHU9MTAqdCxmPTUqdDtyZXR1cm4gdGhpcy5pbnQxNlt1KzBdPWUsdGhpcy5pbnQxNlt1KzFdPXIsdGhpcy5pbnQxNlt1KzJdPW4sdGhpcy5pbnQxNlt1KzNdPWksdGhpcy5pbnQxNlt1KzRdPWEsdGhpcy5pbnQxNlt1KzVdPW8sdGhpcy51aW50MzJbZiszXT1zLHRoaXMudWludDE2W3UrOF09bCx0aGlzLnVpbnQxNlt1KzldPWMsdH0sZX0oUGkpO1ZpLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9MjAsTm4oIlN0cnVjdEFycmF5TGF5b3V0NmkxdWwydWkyMCIsVmkpO3ZhciBIaT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLl9yZWZyZXNoVmlld3M9ZnVuY3Rpb24oKXt0aGlzLnVpbnQ4PW5ldyBVaW50OEFycmF5KHRoaXMuYXJyYXlCdWZmZXIpLHRoaXMuaW50MTY9bmV3IEludDE2QXJyYXkodGhpcy5hcnJheUJ1ZmZlcil9LGUucHJvdG90eXBlLmVtcGxhY2VCYWNrPWZ1bmN0aW9uKHQsZSxyLG4saSxhKXt2YXIgbz10aGlzLmxlbmd0aDtyZXR1cm4gdGhpcy5yZXNpemUobysxKSx0aGlzLmVtcGxhY2Uobyx0LGUscixuLGksYSl9LGUucHJvdG90eXBlLmVtcGxhY2U9ZnVuY3Rpb24odCxlLHIsbixpLGEsbyl7dmFyIHM9Nip0O3JldHVybiB0aGlzLmludDE2W3MrMF09ZSx0aGlzLmludDE2W3MrMV09cix0aGlzLmludDE2W3MrMl09bix0aGlzLmludDE2W3MrM109aSx0aGlzLmludDE2W3MrNF09YSx0aGlzLmludDE2W3MrNV09byx0fSxlfShQaSk7SGkucHJvdG90eXBlLmJ5dGVzUGVyRWxlbWVudD0xMixObigiU3RydWN0QXJyYXlMYXlvdXQyaTJpMmkxMiIsSGkpO3ZhciBxaT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLl9yZWZyZXNoVmlld3M9ZnVuY3Rpb24oKXt0aGlzLnVpbnQ4PW5ldyBVaW50OEFycmF5KHRoaXMuYXJyYXlCdWZmZXIpLHRoaXMuZmxvYXQzMj1uZXcgRmxvYXQzMkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpLHRoaXMuaW50MTY9bmV3IEludDE2QXJyYXkodGhpcy5hcnJheUJ1ZmZlcil9LGUucHJvdG90eXBlLmVtcGxhY2VCYWNrPWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGE9dGhpcy5sZW5ndGg7cmV0dXJuIHRoaXMucmVzaXplKGErMSksdGhpcy5lbXBsYWNlKGEsdCxlLHIsbixpKX0sZS5wcm90b3R5cGUuZW1wbGFjZT1mdW5jdGlvbih0LGUscixuLGksYSl7dmFyIG89NCp0LHM9OCp0O3JldHVybiB0aGlzLmZsb2F0MzJbbyswXT1lLHRoaXMuZmxvYXQzMltvKzFdPXIsdGhpcy5mbG9hdDMyW28rMl09bix0aGlzLmludDE2W3MrNl09aSx0aGlzLmludDE2W3MrN109YSx0fSxlfShQaSk7cWkucHJvdG90eXBlLmJ5dGVzUGVyRWxlbWVudD0xNixObigiU3RydWN0QXJyYXlMYXlvdXQyZjFmMmkxNiIscWkpO3ZhciBHaT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLl9yZWZyZXNoVmlld3M9ZnVuY3Rpb24oKXt0aGlzLnVpbnQ4PW5ldyBVaW50OEFycmF5KHRoaXMuYXJyYXlCdWZmZXIpLHRoaXMuZmxvYXQzMj1uZXcgRmxvYXQzMkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpfSxlLnByb3RvdHlwZS5lbXBsYWNlQmFjaz1mdW5jdGlvbih0LGUscixuKXt2YXIgaT10aGlzLmxlbmd0aDtyZXR1cm4gdGhpcy5yZXNpemUoaSsxKSx0aGlzLmVtcGxhY2UoaSx0LGUscixuKX0sZS5wcm90b3R5cGUuZW1wbGFjZT1mdW5jdGlvbih0LGUscixuLGkpe3ZhciBhPTEyKnQsbz0zKnQ7cmV0dXJuIHRoaXMudWludDhbYSswXT1lLHRoaXMudWludDhbYSsxXT1yLHRoaXMuZmxvYXQzMltvKzFdPW4sdGhpcy5mbG9hdDMyW28rMl09aSx0fSxlfShQaSk7R2kucHJvdG90eXBlLmJ5dGVzUGVyRWxlbWVudD0xMixObigiU3RydWN0QXJyYXlMYXlvdXQydWIyZjEyIixHaSk7dmFyIFlpPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuX3JlZnJlc2hWaWV3cz1mdW5jdGlvbigpe3RoaXMudWludDg9bmV3IFVpbnQ4QXJyYXkodGhpcy5hcnJheUJ1ZmZlciksdGhpcy51aW50MTY9bmV3IFVpbnQxNkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpfSxlLnByb3RvdHlwZS5lbXBsYWNlQmFjaz1mdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5sZW5ndGg7cmV0dXJuIHRoaXMucmVzaXplKG4rMSksdGhpcy5lbXBsYWNlKG4sdCxlLHIpfSxlLnByb3RvdHlwZS5lbXBsYWNlPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPTMqdDtyZXR1cm4gdGhpcy51aW50MTZbaSswXT1lLHRoaXMudWludDE2W2krMV09cix0aGlzLnVpbnQxNltpKzJdPW4sdH0sZX0oUGkpO1lpLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9NixObigiU3RydWN0QXJyYXlMYXlvdXQzdWk2IixZaSk7dmFyIFdpPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuX3JlZnJlc2hWaWV3cz1mdW5jdGlvbigpe3RoaXMudWludDg9bmV3IFVpbnQ4QXJyYXkodGhpcy5hcnJheUJ1ZmZlciksdGhpcy5pbnQxNj1uZXcgSW50MTZBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLnVpbnQxNj1uZXcgVWludDE2QXJyYXkodGhpcy5hcnJheUJ1ZmZlciksdGhpcy51aW50MzI9bmV3IFVpbnQzMkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpLHRoaXMuZmxvYXQzMj1uZXcgRmxvYXQzMkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpfSxlLnByb3RvdHlwZS5lbXBsYWNlQmFjaz1mdW5jdGlvbih0LGUscixuLGksYSxvLHMsbCxjLHUsZixoLHAsZCxtLGcpe3ZhciB2PXRoaXMubGVuZ3RoO3JldHVybiB0aGlzLnJlc2l6ZSh2KzEpLHRoaXMuZW1wbGFjZSh2LHQsZSxyLG4saSxhLG8scyxsLGMsdSxmLGgscCxkLG0sZyl9LGUucHJvdG90eXBlLmVtcGxhY2U9ZnVuY3Rpb24odCxlLHIsbixpLGEsbyxzLGwsYyx1LGYsaCxwLGQsbSxnLHYpe3ZhciB5PTI0KnQseD0xMip0LGI9NDgqdDtyZXR1cm4gdGhpcy5pbnQxNlt5KzBdPWUsdGhpcy5pbnQxNlt5KzFdPXIsdGhpcy51aW50MTZbeSsyXT1uLHRoaXMudWludDE2W3krM109aSx0aGlzLnVpbnQzMlt4KzJdPWEsdGhpcy51aW50MzJbeCszXT1vLHRoaXMudWludDMyW3grNF09cyx0aGlzLnVpbnQxNlt5KzEwXT1sLHRoaXMudWludDE2W3krMTFdPWMsdGhpcy51aW50MTZbeSsxMl09dSx0aGlzLmZsb2F0MzJbeCs3XT1mLHRoaXMuZmxvYXQzMlt4KzhdPWgsdGhpcy51aW50OFtiKzM2XT1wLHRoaXMudWludDhbYiszN109ZCx0aGlzLnVpbnQ4W2IrMzhdPW0sdGhpcy51aW50MzJbeCsxMF09Zyx0aGlzLmludDE2W3krMjJdPXYsdH0sZX0oUGkpO1dpLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9NDgsTm4oIlN0cnVjdEFycmF5TGF5b3V0MmkydWkzdWwzdWkyZjN1YjF1bDFpNDgiLFdpKTt2YXIgWGk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5fcmVmcmVzaFZpZXdzPWZ1bmN0aW9uKCl7dGhpcy51aW50OD1uZXcgVWludDhBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLmludDE2PW5ldyBJbnQxNkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpLHRoaXMudWludDE2PW5ldyBVaW50MTZBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLnVpbnQzMj1uZXcgVWludDMyQXJyYXkodGhpcy5hcnJheUJ1ZmZlciksdGhpcy5mbG9hdDMyPW5ldyBGbG9hdDMyQXJyYXkodGhpcy5hcnJheUJ1ZmZlcil9LGUucHJvdG90eXBlLmVtcGxhY2VCYWNrPWZ1bmN0aW9uKHQsZSxyLG4saSxhLG8scyxsLGMsdSxmLGgscCxkLG0sZyx2LHkseCxiLF8sdyxULGssQSxNLFMpe3ZhciBFPXRoaXMubGVuZ3RoO3JldHVybiB0aGlzLnJlc2l6ZShFKzEpLHRoaXMuZW1wbGFjZShFLHQsZSxyLG4saSxhLG8scyxsLGMsdSxmLGgscCxkLG0sZyx2LHkseCxiLF8sdyxULGssQSxNLFMpfSxlLnByb3RvdHlwZS5lbXBsYWNlPWZ1bmN0aW9uKHQsZSxyLG4saSxhLG8scyxsLGMsdSxmLGgscCxkLG0sZyx2LHkseCxiLF8sdyxULGssQSxNLFMsRSl7dmFyIEw9MzQqdCxDPTE3KnQ7cmV0dXJuIHRoaXMuaW50MTZbTCswXT1lLHRoaXMuaW50MTZbTCsxXT1yLHRoaXMuaW50MTZbTCsyXT1uLHRoaXMuaW50MTZbTCszXT1pLHRoaXMuaW50MTZbTCs0XT1hLHRoaXMuaW50MTZbTCs1XT1vLHRoaXMuaW50MTZbTCs2XT1zLHRoaXMuaW50MTZbTCs3XT1sLHRoaXMudWludDE2W0wrOF09Yyx0aGlzLnVpbnQxNltMKzldPXUsdGhpcy51aW50MTZbTCsxMF09Zix0aGlzLnVpbnQxNltMKzExXT1oLHRoaXMudWludDE2W0wrMTJdPXAsdGhpcy51aW50MTZbTCsxM109ZCx0aGlzLnVpbnQxNltMKzE0XT1tLHRoaXMudWludDE2W0wrMTVdPWcsdGhpcy51aW50MTZbTCsxNl09dix0aGlzLnVpbnQxNltMKzE3XT15LHRoaXMudWludDE2W0wrMThdPXgsdGhpcy51aW50MTZbTCsxOV09Yix0aGlzLnVpbnQxNltMKzIwXT1fLHRoaXMudWludDE2W0wrMjFdPXcsdGhpcy51aW50MTZbTCsyMl09VCx0aGlzLnVpbnQzMltDKzEyXT1rLHRoaXMuZmxvYXQzMltDKzEzXT1BLHRoaXMuZmxvYXQzMltDKzE0XT1NLHRoaXMuZmxvYXQzMltDKzE1XT1TLHRoaXMuZmxvYXQzMltDKzE2XT1FLHR9LGV9KFBpKTtYaS5wcm90b3R5cGUuYnl0ZXNQZXJFbGVtZW50PTY4LE5uKCJTdHJ1Y3RBcnJheUxheW91dDhpMTV1aTF1bDRmNjgiLFhpKTt2YXIgWmk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5fcmVmcmVzaFZpZXdzPWZ1bmN0aW9uKCl7dGhpcy51aW50OD1uZXcgVWludDhBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLmZsb2F0MzI9bmV3IEZsb2F0MzJBcnJheSh0aGlzLmFycmF5QnVmZmVyKX0sZS5wcm90b3R5cGUuZW1wbGFjZUJhY2s9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5sZW5ndGg7cmV0dXJuIHRoaXMucmVzaXplKGUrMSksdGhpcy5lbXBsYWNlKGUsdCl9LGUucHJvdG90eXBlLmVtcGxhY2U9ZnVuY3Rpb24odCxlKXt2YXIgcj0xKnQ7cmV0dXJuIHRoaXMuZmxvYXQzMltyKzBdPWUsdH0sZX0oUGkpO1ppLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9NCxObigiU3RydWN0QXJyYXlMYXlvdXQxZjQiLFppKTt2YXIgSmk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5fcmVmcmVzaFZpZXdzPWZ1bmN0aW9uKCl7dGhpcy51aW50OD1uZXcgVWludDhBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLmludDE2PW5ldyBJbnQxNkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpfSxlLnByb3RvdHlwZS5lbXBsYWNlQmFjaz1mdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5sZW5ndGg7cmV0dXJuIHRoaXMucmVzaXplKG4rMSksdGhpcy5lbXBsYWNlKG4sdCxlLHIpfSxlLnByb3RvdHlwZS5lbXBsYWNlPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPTMqdDtyZXR1cm4gdGhpcy5pbnQxNltpKzBdPWUsdGhpcy5pbnQxNltpKzFdPXIsdGhpcy5pbnQxNltpKzJdPW4sdH0sZX0oUGkpO0ppLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9NixObigiU3RydWN0QXJyYXlMYXlvdXQzaTYiLEppKTt2YXIgS2k9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5fcmVmcmVzaFZpZXdzPWZ1bmN0aW9uKCl7dGhpcy51aW50OD1uZXcgVWludDhBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLnVpbnQzMj1uZXcgVWludDMyQXJyYXkodGhpcy5hcnJheUJ1ZmZlciksdGhpcy51aW50MTY9bmV3IFVpbnQxNkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpfSxlLnByb3RvdHlwZS5lbXBsYWNlQmFjaz1mdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5sZW5ndGg7cmV0dXJuIHRoaXMucmVzaXplKG4rMSksdGhpcy5lbXBsYWNlKG4sdCxlLHIpfSxlLnByb3RvdHlwZS5lbXBsYWNlPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPTIqdCxhPTQqdDtyZXR1cm4gdGhpcy51aW50MzJbaSswXT1lLHRoaXMudWludDE2W2ErMl09cix0aGlzLnVpbnQxNlthKzNdPW4sdH0sZX0oUGkpO0tpLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9OCxObigiU3RydWN0QXJyYXlMYXlvdXQxdWwydWk4IixLaSk7dmFyIFFpPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuX3JlZnJlc2hWaWV3cz1mdW5jdGlvbigpe3RoaXMudWludDg9bmV3IFVpbnQ4QXJyYXkodGhpcy5hcnJheUJ1ZmZlciksdGhpcy51aW50MTY9bmV3IFVpbnQxNkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpfSxlLnByb3RvdHlwZS5lbXBsYWNlQmFjaz1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMubGVuZ3RoO3JldHVybiB0aGlzLnJlc2l6ZShyKzEpLHRoaXMuZW1wbGFjZShyLHQsZSl9LGUucHJvdG90eXBlLmVtcGxhY2U9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPTIqdDtyZXR1cm4gdGhpcy51aW50MTZbbiswXT1lLHRoaXMudWludDE2W24rMV09cix0fSxlfShQaSk7UWkucHJvdG90eXBlLmJ5dGVzUGVyRWxlbWVudD00LE5uKCJTdHJ1Y3RBcnJheUxheW91dDJ1aTQiLFFpKTt2YXIgJGk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5fcmVmcmVzaFZpZXdzPWZ1bmN0aW9uKCl7dGhpcy51aW50OD1uZXcgVWludDhBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLnVpbnQxNj1uZXcgVWludDE2QXJyYXkodGhpcy5hcnJheUJ1ZmZlcil9LGUucHJvdG90eXBlLmVtcGxhY2VCYWNrPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubGVuZ3RoO3JldHVybiB0aGlzLnJlc2l6ZShlKzEpLHRoaXMuZW1wbGFjZShlLHQpfSxlLnByb3RvdHlwZS5lbXBsYWNlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9MSp0O3JldHVybiB0aGlzLnVpbnQxNltyKzBdPWUsdH0sZX0oUGkpOyRpLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9MixObigiU3RydWN0QXJyYXlMYXlvdXQxdWkyIiwkaSk7dmFyIHRhPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuX3JlZnJlc2hWaWV3cz1mdW5jdGlvbigpe3RoaXMudWludDg9bmV3IFVpbnQ4QXJyYXkodGhpcy5hcnJheUJ1ZmZlciksdGhpcy5mbG9hdDMyPW5ldyBGbG9hdDMyQXJyYXkodGhpcy5hcnJheUJ1ZmZlcil9LGUucHJvdG90eXBlLmVtcGxhY2VCYWNrPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5sZW5ndGg7cmV0dXJuIHRoaXMucmVzaXplKHIrMSksdGhpcy5lbXBsYWNlKHIsdCxlKX0sZS5wcm90b3R5cGUuZW1wbGFjZT1mdW5jdGlvbih0LGUscil7dmFyIG49Mip0O3JldHVybiB0aGlzLmZsb2F0MzJbbiswXT1lLHRoaXMuZmxvYXQzMltuKzFdPXIsdH0sZX0oUGkpO3RhLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9OCxObigiU3RydWN0QXJyYXlMYXlvdXQyZjgiLHRhKTt2YXIgZWE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5fcmVmcmVzaFZpZXdzPWZ1bmN0aW9uKCl7dGhpcy51aW50OD1uZXcgVWludDhBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLmZsb2F0MzI9bmV3IEZsb2F0MzJBcnJheSh0aGlzLmFycmF5QnVmZmVyKX0sZS5wcm90b3R5cGUuZW1wbGFjZUJhY2s9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9dGhpcy5sZW5ndGg7cmV0dXJuIHRoaXMucmVzaXplKGkrMSksdGhpcy5lbXBsYWNlKGksdCxlLHIsbil9LGUucHJvdG90eXBlLmVtcGxhY2U9ZnVuY3Rpb24odCxlLHIsbixpKXt2YXIgYT00KnQ7cmV0dXJuIHRoaXMuZmxvYXQzMlthKzBdPWUsdGhpcy5mbG9hdDMyW2ErMV09cix0aGlzLmZsb2F0MzJbYSsyXT1uLHRoaXMuZmxvYXQzMlthKzNdPWksdH0sZX0oUGkpO2VhLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9MTYsTm4oIlN0cnVjdEFycmF5TGF5b3V0NGYxNiIsZWEpO3ZhciByYT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWU7dmFyIHI9e2FuY2hvclBvaW50WDp7Y29uZmlndXJhYmxlOiEwfSxhbmNob3JQb2ludFk6e2NvbmZpZ3VyYWJsZTohMH0seDE6e2NvbmZpZ3VyYWJsZTohMH0seTE6e2NvbmZpZ3VyYWJsZTohMH0seDI6e2NvbmZpZ3VyYWJsZTohMH0seTI6e2NvbmZpZ3VyYWJsZTohMH0sZmVhdHVyZUluZGV4Ontjb25maWd1cmFibGU6ITB9LHNvdXJjZUxheWVySW5kZXg6e2NvbmZpZ3VyYWJsZTohMH0sYnVja2V0SW5kZXg6e2NvbmZpZ3VyYWJsZTohMH0sYW5jaG9yUG9pbnQ6e2NvbmZpZ3VyYWJsZTohMH19O3JldHVybiByLmFuY2hvclBvaW50WC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkuaW50MTZbdGhpcy5fcG9zMiswXX0sci5hbmNob3JQb2ludFkuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LmludDE2W3RoaXMuX3BvczIrMV19LHIueDEuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LmludDE2W3RoaXMuX3BvczIrMl19LHIueTEuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LmludDE2W3RoaXMuX3BvczIrM119LHIueDIuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LmludDE2W3RoaXMuX3BvczIrNF19LHIueTIuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LmludDE2W3RoaXMuX3BvczIrNV19LHIuZmVhdHVyZUluZGV4LmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50MzJbdGhpcy5fcG9zNCszXX0sci5zb3VyY2VMYXllckluZGV4LmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50MTZbdGhpcy5fcG9zMis4XX0sci5idWNrZXRJbmRleC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkudWludDE2W3RoaXMuX3BvczIrOV19LHIuYW5jaG9yUG9pbnQuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBpKHRoaXMuYW5jaG9yUG9pbnRYLHRoaXMuYW5jaG9yUG9pbnRZKX0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZS5wcm90b3R5cGUsciksZX0oQ2kpO3JhLnByb3RvdHlwZS5zaXplPTIwO3ZhciBuYT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHJhKHRoaXMsdCl9LGV9KFZpKTtObigiQ29sbGlzaW9uQm94QXJyYXkiLG5hKTt2YXIgaWE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lO3ZhciByPXthbmNob3JYOntjb25maWd1cmFibGU6ITB9LGFuY2hvclk6e2NvbmZpZ3VyYWJsZTohMH0sZ2x5cGhTdGFydEluZGV4Ontjb25maWd1cmFibGU6ITB9LG51bUdseXBoczp7Y29uZmlndXJhYmxlOiEwfSx2ZXJ0ZXhTdGFydEluZGV4Ontjb25maWd1cmFibGU6ITB9LGxpbmVTdGFydEluZGV4Ontjb25maWd1cmFibGU6ITB9LGxpbmVMZW5ndGg6e2NvbmZpZ3VyYWJsZTohMH0sc2VnbWVudDp7Y29uZmlndXJhYmxlOiEwfSxsb3dlclNpemU6e2NvbmZpZ3VyYWJsZTohMH0sdXBwZXJTaXplOntjb25maWd1cmFibGU6ITB9LGxpbmVPZmZzZXRYOntjb25maWd1cmFibGU6ITB9LGxpbmVPZmZzZXRZOntjb25maWd1cmFibGU6ITB9LHdyaXRpbmdNb2RlOntjb25maWd1cmFibGU6ITB9LHBsYWNlZE9yaWVudGF0aW9uOntjb25maWd1cmFibGU6ITB9LGhpZGRlbjp7Y29uZmlndXJhYmxlOiEwfSxjcm9zc1RpbGVJRDp7Y29uZmlndXJhYmxlOiEwfSxhc3NvY2lhdGVkSWNvbkluZGV4Ontjb25maWd1cmFibGU6ITB9fTtyZXR1cm4gci5hbmNob3JYLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS5pbnQxNlt0aGlzLl9wb3MyKzBdfSxyLmFuY2hvclkuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LmludDE2W3RoaXMuX3BvczIrMV19LHIuZ2x5cGhTdGFydEluZGV4LmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50MTZbdGhpcy5fcG9zMisyXX0sci5udW1HbHlwaHMuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LnVpbnQxNlt0aGlzLl9wb3MyKzNdfSxyLnZlcnRleFN0YXJ0SW5kZXguZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LnVpbnQzMlt0aGlzLl9wb3M0KzJdfSxyLmxpbmVTdGFydEluZGV4LmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50MzJbdGhpcy5fcG9zNCszXX0sci5saW5lTGVuZ3RoLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50MzJbdGhpcy5fcG9zNCs0XX0sci5zZWdtZW50LmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50MTZbdGhpcy5fcG9zMisxMF19LHIubG93ZXJTaXplLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50MTZbdGhpcy5fcG9zMisxMV19LHIudXBwZXJTaXplLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50MTZbdGhpcy5fcG9zMisxMl19LHIubGluZU9mZnNldFguZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LmZsb2F0MzJbdGhpcy5fcG9zNCs3XX0sci5saW5lT2Zmc2V0WS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkuZmxvYXQzMlt0aGlzLl9wb3M0KzhdfSxyLndyaXRpbmdNb2RlLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50OFt0aGlzLl9wb3MxKzM2XX0sci5wbGFjZWRPcmllbnRhdGlvbi5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkudWludDhbdGhpcy5fcG9zMSszN119LHIucGxhY2VkT3JpZW50YXRpb24uc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3N0cnVjdEFycmF5LnVpbnQ4W3RoaXMuX3BvczErMzddPXR9LHIuaGlkZGVuLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50OFt0aGlzLl9wb3MxKzM4XX0sci5oaWRkZW4uc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3N0cnVjdEFycmF5LnVpbnQ4W3RoaXMuX3BvczErMzhdPXR9LHIuY3Jvc3NUaWxlSUQuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LnVpbnQzMlt0aGlzLl9wb3M0KzEwXX0sci5jcm9zc1RpbGVJRC5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fc3RydWN0QXJyYXkudWludDMyW3RoaXMuX3BvczQrMTBdPXR9LHIuYXNzb2NpYXRlZEljb25JbmRleC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkuaW50MTZbdGhpcy5fcG9zMisyMl19LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUucHJvdG90eXBlLHIpLGV9KENpKTtpYS5wcm90b3R5cGUuc2l6ZT00ODt2YXIgYWE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBpYSh0aGlzLHQpfSxlfShXaSk7Tm4oIlBsYWNlZFN5bWJvbEFycmF5IixhYSk7dmFyIG9hPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX10JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZTt2YXIgcj17YW5jaG9yWDp7Y29uZmlndXJhYmxlOiEwfSxhbmNob3JZOntjb25maWd1cmFibGU6ITB9LHJpZ2h0SnVzdGlmaWVkVGV4dFN5bWJvbEluZGV4Ontjb25maWd1cmFibGU6ITB9LGNlbnRlckp1c3RpZmllZFRleHRTeW1ib2xJbmRleDp7Y29uZmlndXJhYmxlOiEwfSxsZWZ0SnVzdGlmaWVkVGV4dFN5bWJvbEluZGV4Ontjb25maWd1cmFibGU6ITB9LHZlcnRpY2FsUGxhY2VkVGV4dFN5bWJvbEluZGV4Ontjb25maWd1cmFibGU6ITB9LHBsYWNlZEljb25TeW1ib2xJbmRleDp7Y29uZmlndXJhYmxlOiEwfSx2ZXJ0aWNhbFBsYWNlZEljb25TeW1ib2xJbmRleDp7Y29uZmlndXJhYmxlOiEwfSxrZXk6e2NvbmZpZ3VyYWJsZTohMH0sdGV4dEJveFN0YXJ0SW5kZXg6e2NvbmZpZ3VyYWJsZTohMH0sdGV4dEJveEVuZEluZGV4Ontjb25maWd1cmFibGU6ITB9LHZlcnRpY2FsVGV4dEJveFN0YXJ0SW5kZXg6e2NvbmZpZ3VyYWJsZTohMH0sdmVydGljYWxUZXh0Qm94RW5kSW5kZXg6e2NvbmZpZ3VyYWJsZTohMH0saWNvbkJveFN0YXJ0SW5kZXg6e2NvbmZpZ3VyYWJsZTohMH0saWNvbkJveEVuZEluZGV4Ontjb25maWd1cmFibGU6ITB9LHZlcnRpY2FsSWNvbkJveFN0YXJ0SW5kZXg6e2NvbmZpZ3VyYWJsZTohMH0sdmVydGljYWxJY29uQm94RW5kSW5kZXg6e2NvbmZpZ3VyYWJsZTohMH0sZmVhdHVyZUluZGV4Ontjb25maWd1cmFibGU6ITB9LG51bUhvcml6b250YWxHbHlwaFZlcnRpY2VzOntjb25maWd1cmFibGU6ITB9LG51bVZlcnRpY2FsR2x5cGhWZXJ0aWNlczp7Y29uZmlndXJhYmxlOiEwfSxudW1JY29uVmVydGljZXM6e2NvbmZpZ3VyYWJsZTohMH0sbnVtVmVydGljYWxJY29uVmVydGljZXM6e2NvbmZpZ3VyYWJsZTohMH0sdXNlUnVudGltZUNvbGxpc2lvbkNpcmNsZXM6e2NvbmZpZ3VyYWJsZTohMH0sY3Jvc3NUaWxlSUQ6e2NvbmZpZ3VyYWJsZTohMH0sdGV4dEJveFNjYWxlOntjb25maWd1cmFibGU6ITB9LHRleHRPZmZzZXQwOntjb25maWd1cmFibGU6ITB9LHRleHRPZmZzZXQxOntjb25maWd1cmFibGU6ITB9LGNvbGxpc2lvbkNpcmNsZURpYW1ldGVyOntjb25maWd1cmFibGU6ITB9fTtyZXR1cm4gci5hbmNob3JYLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS5pbnQxNlt0aGlzLl9wb3MyKzBdfSxyLmFuY2hvclkuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LmludDE2W3RoaXMuX3BvczIrMV19LHIucmlnaHRKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXguZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LmludDE2W3RoaXMuX3BvczIrMl19LHIuY2VudGVySnVzdGlmaWVkVGV4dFN5bWJvbEluZGV4LmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS5pbnQxNlt0aGlzLl9wb3MyKzNdfSxyLmxlZnRKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXguZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LmludDE2W3RoaXMuX3BvczIrNF19LHIudmVydGljYWxQbGFjZWRUZXh0U3ltYm9sSW5kZXguZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LmludDE2W3RoaXMuX3BvczIrNV19LHIucGxhY2VkSWNvblN5bWJvbEluZGV4LmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS5pbnQxNlt0aGlzLl9wb3MyKzZdfSxyLnZlcnRpY2FsUGxhY2VkSWNvblN5bWJvbEluZGV4LmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS5pbnQxNlt0aGlzLl9wb3MyKzddfSxyLmtleS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkudWludDE2W3RoaXMuX3BvczIrOF19LHIudGV4dEJveFN0YXJ0SW5kZXguZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LnVpbnQxNlt0aGlzLl9wb3MyKzldfSxyLnRleHRCb3hFbmRJbmRleC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkudWludDE2W3RoaXMuX3BvczIrMTBdfSxyLnZlcnRpY2FsVGV4dEJveFN0YXJ0SW5kZXguZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LnVpbnQxNlt0aGlzLl9wb3MyKzExXX0sci52ZXJ0aWNhbFRleHRCb3hFbmRJbmRleC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkudWludDE2W3RoaXMuX3BvczIrMTJdfSxyLmljb25Cb3hTdGFydEluZGV4LmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50MTZbdGhpcy5fcG9zMisxM119LHIuaWNvbkJveEVuZEluZGV4LmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50MTZbdGhpcy5fcG9zMisxNF19LHIudmVydGljYWxJY29uQm94U3RhcnRJbmRleC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkudWludDE2W3RoaXMuX3BvczIrMTVdfSxyLnZlcnRpY2FsSWNvbkJveEVuZEluZGV4LmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50MTZbdGhpcy5fcG9zMisxNl19LHIuZmVhdHVyZUluZGV4LmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50MTZbdGhpcy5fcG9zMisxN119LHIubnVtSG9yaXpvbnRhbEdseXBoVmVydGljZXMuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LnVpbnQxNlt0aGlzLl9wb3MyKzE4XX0sci5udW1WZXJ0aWNhbEdseXBoVmVydGljZXMuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LnVpbnQxNlt0aGlzLl9wb3MyKzE5XX0sci5udW1JY29uVmVydGljZXMuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LnVpbnQxNlt0aGlzLl9wb3MyKzIwXX0sci5udW1WZXJ0aWNhbEljb25WZXJ0aWNlcy5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkudWludDE2W3RoaXMuX3BvczIrMjFdfSxyLnVzZVJ1bnRpbWVDb2xsaXNpb25DaXJjbGVzLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50MTZbdGhpcy5fcG9zMisyMl19LHIuY3Jvc3NUaWxlSUQuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LnVpbnQzMlt0aGlzLl9wb3M0KzEyXX0sci5jcm9zc1RpbGVJRC5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fc3RydWN0QXJyYXkudWludDMyW3RoaXMuX3BvczQrMTJdPXR9LHIudGV4dEJveFNjYWxlLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS5mbG9hdDMyW3RoaXMuX3BvczQrMTNdfSxyLnRleHRPZmZzZXQwLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS5mbG9hdDMyW3RoaXMuX3BvczQrMTRdfSxyLnRleHRPZmZzZXQxLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS5mbG9hdDMyW3RoaXMuX3BvczQrMTVdfSxyLmNvbGxpc2lvbkNpcmNsZURpYW1ldGVyLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS5mbG9hdDMyW3RoaXMuX3BvczQrMTZdfSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLnByb3RvdHlwZSxyKSxlfShDaSk7b2EucHJvdG90eXBlLnNpemU9Njg7dmFyIHNhPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgb2EodGhpcyx0KX0sZX0oWGkpO05uKCJTeW1ib2xJbnN0YW5jZUFycmF5IixzYSk7dmFyIGxhPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0b2Zmc2V0WD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5mbG9hdDMyWzEqdCswXX0sZX0oWmkpO05uKCJHbHlwaE9mZnNldEFycmF5IixsYSk7dmFyIGNhPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0eD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pbnQxNlszKnQrMF19LGUucHJvdG90eXBlLmdldHk9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaW50MTZbMyp0KzFdfSxlLnByb3RvdHlwZS5nZXR0aWxlVW5pdERpc3RhbmNlRnJvbUFuY2hvcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pbnQxNlszKnQrMl19LGV9KEppKTtObigiU3ltYm9sTGluZVZlcnRleEFycmF5IixjYSk7dmFyIHVhPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX10JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZTt2YXIgcj17ZmVhdHVyZUluZGV4Ontjb25maWd1cmFibGU6ITB9LHNvdXJjZUxheWVySW5kZXg6e2NvbmZpZ3VyYWJsZTohMH0sYnVja2V0SW5kZXg6e2NvbmZpZ3VyYWJsZTohMH19O3JldHVybiByLmZlYXR1cmVJbmRleC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkudWludDMyW3RoaXMuX3BvczQrMF19LHIuc291cmNlTGF5ZXJJbmRleC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkudWludDE2W3RoaXMuX3BvczIrMl19LHIuYnVja2V0SW5kZXguZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LnVpbnQxNlt0aGlzLl9wb3MyKzNdfSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLnByb3RvdHlwZSxyKSxlfShDaSk7dWEucHJvdG90eXBlLnNpemU9ODt2YXIgZmE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyB1YSh0aGlzLHQpfSxlfShLaSk7Tm4oIkZlYXR1cmVJbmRleEFycmF5IixmYSk7dmFyIGhhPUlpKFt7bmFtZToiYV9wb3MiLGNvbXBvbmVudHM6Mix0eXBlOiJJbnQxNiJ9XSw0KS5tZW1iZXJzLHBhPWZ1bmN0aW9uKHQpe3ZvaWQgMD09PXQmJih0PVtdKSx0aGlzLnNlZ21lbnRzPXR9O2Z1bmN0aW9uIGRhKHQsZSl7cmV0dXJuIDI1NioodD1sKE1hdGguZmxvb3IodCksMCwyNTUpKSsoZT1sKE1hdGguZmxvb3IoZSksMCwyNTUpKX1wYS5wcm90b3R5cGUucHJlcGFyZVNlZ21lbnQ9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9dGhpcy5zZWdtZW50c1t0aGlzLnNlZ21lbnRzLmxlbmd0aC0xXTtyZXR1cm4gdD5wYS5NQVhfVkVSVEVYX0FSUkFZX0xFTkdUSCYmXygiTWF4IHZlcnRpY2VzIHBlciBzZWdtZW50IGlzICIrcGEuTUFYX1ZFUlRFWF9BUlJBWV9MRU5HVEgrIjogYnVja2V0IHJlcXVlc3RlZCAiK3QpLCghaXx8aS52ZXJ0ZXhMZW5ndGgrdD5wYS5NQVhfVkVSVEVYX0FSUkFZX0xFTkdUSHx8aS5zb3J0S2V5IT09bikmJihpPXt2ZXJ0ZXhPZmZzZXQ6ZS5sZW5ndGgscHJpbWl0aXZlT2Zmc2V0OnIubGVuZ3RoLHZlcnRleExlbmd0aDowLHByaW1pdGl2ZUxlbmd0aDowfSx2b2lkIDAhPT1uJiYoaS5zb3J0S2V5PW4pLHRoaXMuc2VnbWVudHMucHVzaChpKSksaX0scGEucHJvdG90eXBlLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnNlZ21lbnRzfSxwYS5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe2Zvcih2YXIgdD0wLGU9dGhpcy5zZWdtZW50czt0PGUubGVuZ3RoO3QrPTEpe3ZhciByPWVbdF07Zm9yKHZhciBuIGluIHIudmFvcylyLnZhb3Nbbl0uZGVzdHJveSgpfX0scGEuc2ltcGxlU2VnbWVudD1mdW5jdGlvbih0LGUscixuKXtyZXR1cm4gbmV3IHBhKFt7dmVydGV4T2Zmc2V0OnQscHJpbWl0aXZlT2Zmc2V0OmUsdmVydGV4TGVuZ3RoOnIscHJpbWl0aXZlTGVuZ3RoOm4sdmFvczp7fSxzb3J0S2V5OjB9XSl9LHBhLk1BWF9WRVJURVhfQVJSQVlfTEVOR1RIPU1hdGgucG93KDIsMTYpLTEsTm4oIlNlZ21lbnRWZWN0b3IiLHBhKTt2YXIgbWE9SWkoW3tuYW1lOiJhX3BhdHRlcm5fZnJvbSIsY29tcG9uZW50czo0LHR5cGU6IlVpbnQxNiJ9LHtuYW1lOiJhX3BhdHRlcm5fdG8iLGNvbXBvbmVudHM6NCx0eXBlOiJVaW50MTYifSx7bmFtZToiYV9waXhlbF9yYXRpb19mcm9tIixjb21wb25lbnRzOjEsdHlwZToiVWludDgifSx7bmFtZToiYV9waXhlbF9yYXRpb190byIsY29tcG9uZW50czoxLHR5cGU6IlVpbnQ4In1dKSxnYT1lKChmdW5jdGlvbih0KXt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixuLGksYSxvLHMsbCxjO2ZvcihyPTMmdC5sZW5ndGgsbj10Lmxlbmd0aC1yLGk9ZSxvPTM0MzI5MTgzNTMscz00NjE4NDU5MDcsYz0wO2M8bjspbD0yNTUmdC5jaGFyQ29kZUF0KGMpfCgyNTUmdC5jaGFyQ29kZUF0KCsrYykpPDw4fCgyNTUmdC5jaGFyQ29kZUF0KCsrYykpPDwxNnwoMjU1JnQuY2hhckNvZGVBdCgrK2MpKTw8MjQsKytjLGk9Mjc0OTIrKDY1NTM1JihhPTUqKDY1NTM1JihpPShpXj1sPSg2NTUzNSYobD0obD0oNjU1MzUmbCkqbysoKChsPj4+MTYpKm8mNjU1MzUpPDwxNikmNDI5NDk2NzI5NSk8PDE1fGw+Pj4xNykpKnMrKCgobD4+PjE2KSpzJjY1NTM1KTw8MTYpJjQyOTQ5NjcyOTUpPDwxM3xpPj4+MTkpKSsoKDUqKGk+Pj4xNikmNjU1MzUpPDwxNikmNDI5NDk2NzI5NSkpKygoNTg5NjQrKGE+Pj4xNikmNjU1MzUpPDwxNik7c3dpdGNoKGw9MCxyKXtjYXNlIDM6bF49KDI1NSZ0LmNoYXJDb2RlQXQoYysyKSk8PDE2O2Nhc2UgMjpsXj0oMjU1JnQuY2hhckNvZGVBdChjKzEpKTw8ODtjYXNlIDE6aV49bD0oNjU1MzUmKGw9KGw9KDY1NTM1JihsXj0yNTUmdC5jaGFyQ29kZUF0KGMpKSkqbysoKChsPj4+MTYpKm8mNjU1MzUpPDwxNikmNDI5NDk2NzI5NSk8PDE1fGw+Pj4xNykpKnMrKCgobD4+PjE2KSpzJjY1NTM1KTw8MTYpJjQyOTQ5NjcyOTV9cmV0dXJuIGlePXQubGVuZ3RoLGk9MjI0NjgyMjUwNyooNjU1MzUmKGlePWk+Pj4xNikpKygoMjI0NjgyMjUwNyooaT4+PjE2KSY2NTUzNSk8PDE2KSY0Mjk0OTY3Mjk1LGk9MzI2NjQ4OTkwOSooNjU1MzUmKGlePWk+Pj4xMykpKygoMzI2NjQ4OTkwOSooaT4+PjE2KSY2NTUzNSk8PDE2KSY0Mjk0OTY3Mjk1LChpXj1pPj4+MTYpPj4+MH19KSksdmE9ZSgoZnVuY3Rpb24odCl7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByLG49dC5sZW5ndGgsaT1lXm4sYT0wO24+PTQ7KXI9MTU0MDQ4MzQ3NyooNjU1MzUmKHI9MjU1JnQuY2hhckNvZGVBdChhKXwoMjU1JnQuY2hhckNvZGVBdCgrK2EpKTw8OHwoMjU1JnQuY2hhckNvZGVBdCgrK2EpKTw8MTZ8KDI1NSZ0LmNoYXJDb2RlQXQoKythKSk8PDI0KSkrKCgxNTQwNDgzNDc3KihyPj4+MTYpJjY1NTM1KTw8MTYpLGk9MTU0MDQ4MzQ3NyooNjU1MzUmaSkrKCgxNTQwNDgzNDc3KihpPj4+MTYpJjY1NTM1KTw8MTYpXihyPTE1NDA0ODM0NzcqKDY1NTM1JihyXj1yPj4+MjQpKSsoKDE1NDA0ODM0NzcqKHI+Pj4xNikmNjU1MzUpPDwxNikpLG4tPTQsKythO3N3aXRjaChuKXtjYXNlIDM6aV49KDI1NSZ0LmNoYXJDb2RlQXQoYSsyKSk8PDE2O2Nhc2UgMjppXj0oMjU1JnQuY2hhckNvZGVBdChhKzEpKTw8ODtjYXNlIDE6aT0xNTQwNDgzNDc3Kig2NTUzNSYoaV49MjU1JnQuY2hhckNvZGVBdChhKSkpKygoMTU0MDQ4MzQ3NyooaT4+PjE2KSY2NTUzNSk8PDE2KX1yZXR1cm4gaT0xNTQwNDgzNDc3Kig2NTUzNSYoaV49aT4+PjEzKSkrKCgxNTQwNDgzNDc3KihpPj4+MTYpJjY1NTM1KTw8MTYpLChpXj1pPj4+MTUpPj4+MH19KSkseWE9Z2EseGE9Z2EsYmE9dmE7eWEubXVybXVyMz14YSx5YS5tdXJtdXIyPWJhO3ZhciBfYT1mdW5jdGlvbigpe3RoaXMuaWRzPVtdLHRoaXMucG9zaXRpb25zPVtdLHRoaXMuaW5kZXhlZD0hMX07X2EucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0LGUscixuKXt0aGlzLmlkcy5wdXNoKFRhKHQpKSx0aGlzLnBvc2l0aW9ucy5wdXNoKGUscixuKX0sX2EucHJvdG90eXBlLmdldFBvc2l0aW9ucz1mdW5jdGlvbih0KXtmb3IodmFyIGU9VGEodCkscj0wLG49dGhpcy5pZHMubGVuZ3RoLTE7cjxuOyl7dmFyIGk9cituPj4xO3RoaXMuaWRzW2ldPj1lP249aTpyPWkrMX1mb3IodmFyIGE9W107dGhpcy5pZHNbcl09PT1lOyl7dmFyIG89dGhpcy5wb3NpdGlvbnNbMypyXSxzPXRoaXMucG9zaXRpb25zWzMqcisxXSxsPXRoaXMucG9zaXRpb25zWzMqcisyXTthLnB1c2goe2luZGV4Om8sc3RhcnQ6cyxlbmQ6bH0pLHIrK31yZXR1cm4gYX0sX2Euc2VyaWFsaXplPWZ1bmN0aW9uKHQsZSl7dmFyIHI9bmV3IEZsb2F0NjRBcnJheSh0Lmlkcyksbj1uZXcgVWludDMyQXJyYXkodC5wb3NpdGlvbnMpO3JldHVybiBmdW5jdGlvbiB0KGUscixuLGkpe2Zvcig7bjxpOyl7Zm9yKHZhciBhPWVbbitpPj4xXSxvPW4tMSxzPWkrMTs7KXtkb3tvKyt9d2hpbGUoZVtvXTxhKTtkb3tzLS19d2hpbGUoZVtzXT5hKTtpZihvPj1zKWJyZWFrO2thKGUsbyxzKSxrYShyLDMqbywzKnMpLGthKHIsMypvKzEsMypzKzEpLGthKHIsMypvKzIsMypzKzIpfXMtbjxpLXM/KHQoZSxyLG4scyksbj1zKzEpOih0KGUscixzKzEsaSksaT1zKX19KHIsbiwwLHIubGVuZ3RoLTEpLGUmJmUucHVzaChyLmJ1ZmZlcixuLmJ1ZmZlcikse2lkczpyLHBvc2l0aW9uczpufX0sX2EuZGVzZXJpYWxpemU9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IF9hO3JldHVybiBlLmlkcz10LmlkcyxlLnBvc2l0aW9ucz10LnBvc2l0aW9ucyxlLmluZGV4ZWQ9ITAsZX07dmFyIHdhPU1hdGgucG93KDIsNTMpLTE7ZnVuY3Rpb24gVGEodCl7dmFyIGU9K3Q7cmV0dXJuIWlzTmFOKGUpJiZlPD13YT9lOnlhKFN0cmluZyh0KSl9ZnVuY3Rpb24ga2EodCxlLHIpe3ZhciBuPXRbZV07dFtlXT10W3JdLHRbcl09bn1ObigiRmVhdHVyZVBvc2l0aW9uTWFwIixfYSk7dmFyIEFhPWZ1bmN0aW9uKHQsZSl7dGhpcy5nbD10LmdsLHRoaXMubG9jYXRpb249ZX0sTWE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlLHIpe3QuY2FsbCh0aGlzLGUsciksdGhpcy5jdXJyZW50PTB9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXt0aGlzLmN1cnJlbnQhPT10JiYodGhpcy5jdXJyZW50PXQsdGhpcy5nbC51bmlmb3JtMWkodGhpcy5sb2NhdGlvbix0KSl9LGV9KEFhKSxTYT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUscil7dC5jYWxsKHRoaXMsZSxyKSx0aGlzLmN1cnJlbnQ9MH1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpe3RoaXMuY3VycmVudCE9PXQmJih0aGlzLmN1cnJlbnQ9dCx0aGlzLmdsLnVuaWZvcm0xZih0aGlzLmxvY2F0aW9uLHQpKX0sZX0oQWEpLEVhPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSxyKXt0LmNhbGwodGhpcyxlLHIpLHRoaXMuY3VycmVudD1bMCwwXX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpe3RbMF09PT10aGlzLmN1cnJlbnRbMF0mJnRbMV09PT10aGlzLmN1cnJlbnRbMV18fCh0aGlzLmN1cnJlbnQ9dCx0aGlzLmdsLnVuaWZvcm0yZih0aGlzLmxvY2F0aW9uLHRbMF0sdFsxXSkpfSxlfShBYSksTGE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlLHIpe3QuY2FsbCh0aGlzLGUsciksdGhpcy5jdXJyZW50PVswLDAsMF19cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXt0WzBdPT09dGhpcy5jdXJyZW50WzBdJiZ0WzFdPT09dGhpcy5jdXJyZW50WzFdJiZ0WzJdPT09dGhpcy5jdXJyZW50WzJdfHwodGhpcy5jdXJyZW50PXQsdGhpcy5nbC51bmlmb3JtM2YodGhpcy5sb2NhdGlvbix0WzBdLHRbMV0sdFsyXSkpfSxlfShBYSksQ2E9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlLHIpe3QuY2FsbCh0aGlzLGUsciksdGhpcy5jdXJyZW50PVswLDAsMCwwXX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpe3RbMF09PT10aGlzLmN1cnJlbnRbMF0mJnRbMV09PT10aGlzLmN1cnJlbnRbMV0mJnRbMl09PT10aGlzLmN1cnJlbnRbMl0mJnRbM109PT10aGlzLmN1cnJlbnRbM118fCh0aGlzLmN1cnJlbnQ9dCx0aGlzLmdsLnVuaWZvcm00Zih0aGlzLmxvY2F0aW9uLHRbMF0sdFsxXSx0WzJdLHRbM10pKX0sZX0oQWEpLFBhPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSxyKXt0LmNhbGwodGhpcyxlLHIpLHRoaXMuY3VycmVudD10ZS50cmFuc3BhcmVudH1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpe3Qucj09PXRoaXMuY3VycmVudC5yJiZ0Lmc9PT10aGlzLmN1cnJlbnQuZyYmdC5iPT09dGhpcy5jdXJyZW50LmImJnQuYT09PXRoaXMuY3VycmVudC5hfHwodGhpcy5jdXJyZW50PXQsdGhpcy5nbC51bmlmb3JtNGYodGhpcy5sb2NhdGlvbix0LnIsdC5nLHQuYix0LmEpKX0sZX0oQWEpLElhPW5ldyBGbG9hdDMyQXJyYXkoMTYpLE9hPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSxyKXt0LmNhbGwodGhpcyxlLHIpLHRoaXMuY3VycmVudD1JYX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpe2lmKHRbMTJdIT09dGhpcy5jdXJyZW50WzEyXXx8dFswXSE9PXRoaXMuY3VycmVudFswXSlyZXR1cm4gdGhpcy5jdXJyZW50PXQsdm9pZCB0aGlzLmdsLnVuaWZvcm1NYXRyaXg0ZnYodGhpcy5sb2NhdGlvbiwhMSx0KTtmb3IodmFyIGU9MTtlPDE2O2UrKylpZih0W2VdIT09dGhpcy5jdXJyZW50W2VdKXt0aGlzLmN1cnJlbnQ9dCx0aGlzLmdsLnVuaWZvcm1NYXRyaXg0ZnYodGhpcy5sb2NhdGlvbiwhMSx0KTticmVha319LGV9KEFhKTtmdW5jdGlvbiB6YSh0KXtyZXR1cm5bZGEoMjU1KnQuciwyNTUqdC5nKSxkYSgyNTUqdC5iLDI1NSp0LmEpXX12YXIgRGE9ZnVuY3Rpb24odCxlLHIpe3RoaXMudmFsdWU9dCx0aGlzLnVuaWZvcm1OYW1lcz1lLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuInVfIit0fSkpLHRoaXMudHlwZT1yfTtEYS5wcm90b3R5cGUuc2V0VW5pZm9ybT1mdW5jdGlvbih0LGUscil7dC5zZXQoci5jb25zdGFudE9yKHRoaXMudmFsdWUpKX0sRGEucHJvdG90eXBlLmdldEJpbmRpbmc9ZnVuY3Rpb24odCxlLHIpe3JldHVybiJjb2xvciI9PT10aGlzLnR5cGU/bmV3IFBhKHQsZSk6bmV3IFNhKHQsZSl9O3ZhciBSYT1mdW5jdGlvbih0LGUpe3RoaXMudW5pZm9ybU5hbWVzPWUubWFwKChmdW5jdGlvbih0KXtyZXR1cm4idV8iK3R9KSksdGhpcy5wYXR0ZXJuRnJvbT1udWxsLHRoaXMucGF0dGVyblRvPW51bGwsdGhpcy5waXhlbFJhdGlvRnJvbT0xLHRoaXMucGl4ZWxSYXRpb1RvPTF9O1JhLnByb3RvdHlwZS5zZXRDb25zdGFudFBhdHRlcm5Qb3NpdGlvbnM9ZnVuY3Rpb24odCxlKXt0aGlzLnBpeGVsUmF0aW9Gcm9tPWUucGl4ZWxSYXRpbyx0aGlzLnBpeGVsUmF0aW9Ubz10LnBpeGVsUmF0aW8sdGhpcy5wYXR0ZXJuRnJvbT1lLnRsYnIsdGhpcy5wYXR0ZXJuVG89dC50bGJyfSxSYS5wcm90b3R5cGUuc2V0VW5pZm9ybT1mdW5jdGlvbih0LGUscixuKXt2YXIgaT0idV9wYXR0ZXJuX3RvIj09PW4/dGhpcy5wYXR0ZXJuVG86InVfcGF0dGVybl9mcm9tIj09PW4/dGhpcy5wYXR0ZXJuRnJvbToidV9waXhlbF9yYXRpb190byI9PT1uP3RoaXMucGl4ZWxSYXRpb1RvOiJ1X3BpeGVsX3JhdGlvX2Zyb20iPT09bj90aGlzLnBpeGVsUmF0aW9Gcm9tOm51bGw7aSYmdC5zZXQoaSl9LFJhLnByb3RvdHlwZS5nZXRCaW5kaW5nPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4idV9wYXR0ZXJuIj09PXIuc3Vic3RyKDAsOSk/bmV3IENhKHQsZSk6bmV3IFNhKHQsZSl9O3ZhciBGYT1mdW5jdGlvbih0LGUscixuKXt0aGlzLmV4cHJlc3Npb249dCx0aGlzLnR5cGU9cix0aGlzLm1heFZhbHVlPTAsdGhpcy5wYWludFZlcnRleEF0dHJpYnV0ZXM9ZS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybntuYW1lOiJhXyIrdCx0eXBlOiJGbG9hdDMyIixjb21wb25lbnRzOiJjb2xvciI9PT1yPzI6MSxvZmZzZXQ6MH19KSksdGhpcy5wYWludFZlcnRleEFycmF5PW5ldyBufTtGYS5wcm90b3R5cGUucG9wdWxhdGVQYWludEFycmF5PWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGE9dGhpcy5wYWludFZlcnRleEFycmF5Lmxlbmd0aCxvPXRoaXMuZXhwcmVzc2lvbi5ldmFsdWF0ZShuZXcgcGkoMCksZSx7fSxuLFtdLGkpO3RoaXMucGFpbnRWZXJ0ZXhBcnJheS5yZXNpemUodCksdGhpcy5fc2V0UGFpbnRWYWx1ZShhLHQsbyl9LEZhLnByb3RvdHlwZS51cGRhdGVQYWludEFycmF5PWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPXRoaXMuZXhwcmVzc2lvbi5ldmFsdWF0ZSh7em9vbTowfSxyLG4pO3RoaXMuX3NldFBhaW50VmFsdWUodCxlLGkpfSxGYS5wcm90b3R5cGUuX3NldFBhaW50VmFsdWU9ZnVuY3Rpb24odCxlLHIpe2lmKCJjb2xvciI9PT10aGlzLnR5cGUpZm9yKHZhciBuPXphKHIpLGk9dDtpPGU7aSsrKXRoaXMucGFpbnRWZXJ0ZXhBcnJheS5lbXBsYWNlKGksblswXSxuWzFdKTtlbHNle2Zvcih2YXIgYT10O2E8ZTthKyspdGhpcy5wYWludFZlcnRleEFycmF5LmVtcGxhY2UoYSxyKTt0aGlzLm1heFZhbHVlPU1hdGgubWF4KHRoaXMubWF4VmFsdWUsTWF0aC5hYnMocikpfX0sRmEucHJvdG90eXBlLnVwbG9hZD1mdW5jdGlvbih0KXt0aGlzLnBhaW50VmVydGV4QXJyYXkmJnRoaXMucGFpbnRWZXJ0ZXhBcnJheS5hcnJheUJ1ZmZlciYmKHRoaXMucGFpbnRWZXJ0ZXhCdWZmZXImJnRoaXMucGFpbnRWZXJ0ZXhCdWZmZXIuYnVmZmVyP3RoaXMucGFpbnRWZXJ0ZXhCdWZmZXIudXBkYXRlRGF0YSh0aGlzLnBhaW50VmVydGV4QXJyYXkpOnRoaXMucGFpbnRWZXJ0ZXhCdWZmZXI9dC5jcmVhdGVWZXJ0ZXhCdWZmZXIodGhpcy5wYWludFZlcnRleEFycmF5LHRoaXMucGFpbnRWZXJ0ZXhBdHRyaWJ1dGVzLHRoaXMuZXhwcmVzc2lvbi5pc1N0YXRlRGVwZW5kZW50KSl9LEZhLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy5wYWludFZlcnRleEJ1ZmZlciYmdGhpcy5wYWludFZlcnRleEJ1ZmZlci5kZXN0cm95KCl9O3ZhciBCYT1mdW5jdGlvbih0LGUscixuLGksYSl7dGhpcy5leHByZXNzaW9uPXQsdGhpcy51bmlmb3JtTmFtZXM9ZS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiJ1XyIrdCsiX3QifSkpLHRoaXMudHlwZT1yLHRoaXMudXNlSW50ZWdlclpvb209bix0aGlzLnpvb209aSx0aGlzLm1heFZhbHVlPTAsdGhpcy5wYWludFZlcnRleEF0dHJpYnV0ZXM9ZS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybntuYW1lOiJhXyIrdCx0eXBlOiJGbG9hdDMyIixjb21wb25lbnRzOiJjb2xvciI9PT1yPzQ6MixvZmZzZXQ6MH19KSksdGhpcy5wYWludFZlcnRleEFycmF5PW5ldyBhfTtCYS5wcm90b3R5cGUucG9wdWxhdGVQYWludEFycmF5PWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGE9dGhpcy5leHByZXNzaW9uLmV2YWx1YXRlKG5ldyBwaSh0aGlzLnpvb20pLGUse30sbixbXSxpKSxvPXRoaXMuZXhwcmVzc2lvbi5ldmFsdWF0ZShuZXcgcGkodGhpcy56b29tKzEpLGUse30sbixbXSxpKSxzPXRoaXMucGFpbnRWZXJ0ZXhBcnJheS5sZW5ndGg7dGhpcy5wYWludFZlcnRleEFycmF5LnJlc2l6ZSh0KSx0aGlzLl9zZXRQYWludFZhbHVlKHMsdCxhLG8pfSxCYS5wcm90b3R5cGUudXBkYXRlUGFpbnRBcnJheT1mdW5jdGlvbih0LGUscixuKXt2YXIgaT10aGlzLmV4cHJlc3Npb24uZXZhbHVhdGUoe3pvb206dGhpcy56b29tfSxyLG4pLGE9dGhpcy5leHByZXNzaW9uLmV2YWx1YXRlKHt6b29tOnRoaXMuem9vbSsxfSxyLG4pO3RoaXMuX3NldFBhaW50VmFsdWUodCxlLGksYSl9LEJhLnByb3RvdHlwZS5fc2V0UGFpbnRWYWx1ZT1mdW5jdGlvbih0LGUscixuKXtpZigiY29sb3IiPT09dGhpcy50eXBlKWZvcih2YXIgaT16YShyKSxhPXphKG4pLG89dDtvPGU7bysrKXRoaXMucGFpbnRWZXJ0ZXhBcnJheS5lbXBsYWNlKG8saVswXSxpWzFdLGFbMF0sYVsxXSk7ZWxzZXtmb3IodmFyIHM9dDtzPGU7cysrKXRoaXMucGFpbnRWZXJ0ZXhBcnJheS5lbXBsYWNlKHMscixuKTt0aGlzLm1heFZhbHVlPU1hdGgubWF4KHRoaXMubWF4VmFsdWUsTWF0aC5hYnMociksTWF0aC5hYnMobikpfX0sQmEucHJvdG90eXBlLnVwbG9hZD1mdW5jdGlvbih0KXt0aGlzLnBhaW50VmVydGV4QXJyYXkmJnRoaXMucGFpbnRWZXJ0ZXhBcnJheS5hcnJheUJ1ZmZlciYmKHRoaXMucGFpbnRWZXJ0ZXhCdWZmZXImJnRoaXMucGFpbnRWZXJ0ZXhCdWZmZXIuYnVmZmVyP3RoaXMucGFpbnRWZXJ0ZXhCdWZmZXIudXBkYXRlRGF0YSh0aGlzLnBhaW50VmVydGV4QXJyYXkpOnRoaXMucGFpbnRWZXJ0ZXhCdWZmZXI9dC5jcmVhdGVWZXJ0ZXhCdWZmZXIodGhpcy5wYWludFZlcnRleEFycmF5LHRoaXMucGFpbnRWZXJ0ZXhBdHRyaWJ1dGVzLHRoaXMuZXhwcmVzc2lvbi5pc1N0YXRlRGVwZW5kZW50KSl9LEJhLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy5wYWludFZlcnRleEJ1ZmZlciYmdGhpcy5wYWludFZlcnRleEJ1ZmZlci5kZXN0cm95KCl9LEJhLnByb3RvdHlwZS5zZXRVbmlmb3JtPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy51c2VJbnRlZ2VyWm9vbT9NYXRoLmZsb29yKGUuem9vbSk6ZS56b29tLG49bCh0aGlzLmV4cHJlc3Npb24uaW50ZXJwb2xhdGlvbkZhY3RvcihyLHRoaXMuem9vbSx0aGlzLnpvb20rMSksMCwxKTt0LnNldChuKX0sQmEucHJvdG90eXBlLmdldEJpbmRpbmc9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBuZXcgU2EodCxlKX07dmFyIE5hPWZ1bmN0aW9uKHQsZSxyLG4saSxhKXt0aGlzLmV4cHJlc3Npb249dCx0aGlzLnR5cGU9ZSx0aGlzLnVzZUludGVnZXJab29tPXIsdGhpcy56b29tPW4sdGhpcy5sYXllcklkPWEsdGhpcy56b29tSW5QYWludFZlcnRleEFycmF5PW5ldyBpLHRoaXMuem9vbU91dFBhaW50VmVydGV4QXJyYXk9bmV3IGl9O05hLnByb3RvdHlwZS5wb3B1bGF0ZVBhaW50QXJyYXk9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMuem9vbUluUGFpbnRWZXJ0ZXhBcnJheS5sZW5ndGg7dGhpcy56b29tSW5QYWludFZlcnRleEFycmF5LnJlc2l6ZSh0KSx0aGlzLnpvb21PdXRQYWludFZlcnRleEFycmF5LnJlc2l6ZSh0KSx0aGlzLl9zZXRQYWludFZhbHVlcyhuLHQsZS5wYXR0ZXJucyYmZS5wYXR0ZXJuc1t0aGlzLmxheWVySWRdLHIpfSxOYS5wcm90b3R5cGUudXBkYXRlUGFpbnRBcnJheT1mdW5jdGlvbih0LGUscixuLGkpe3RoaXMuX3NldFBhaW50VmFsdWVzKHQsZSxyLnBhdHRlcm5zJiZyLnBhdHRlcm5zW3RoaXMubGF5ZXJJZF0saSl9LE5hLnByb3RvdHlwZS5fc2V0UGFpbnRWYWx1ZXM9ZnVuY3Rpb24odCxlLHIsbil7aWYobiYmcil7dmFyIGk9ci5taW4sYT1yLm1pZCxvPXIubWF4LHM9bltpXSxsPW5bYV0sYz1uW29dO2lmKHMmJmwmJmMpZm9yKHZhciB1PXQ7dTxlO3UrKyl0aGlzLnpvb21JblBhaW50VmVydGV4QXJyYXkuZW1wbGFjZSh1LGwudGxbMF0sbC50bFsxXSxsLmJyWzBdLGwuYnJbMV0scy50bFswXSxzLnRsWzFdLHMuYnJbMF0scy5iclsxXSxsLnBpeGVsUmF0aW8scy5waXhlbFJhdGlvKSx0aGlzLnpvb21PdXRQYWludFZlcnRleEFycmF5LmVtcGxhY2UodSxsLnRsWzBdLGwudGxbMV0sbC5iclswXSxsLmJyWzFdLGMudGxbMF0sYy50bFsxXSxjLmJyWzBdLGMuYnJbMV0sbC5waXhlbFJhdGlvLGMucGl4ZWxSYXRpbyl9fSxOYS5wcm90b3R5cGUudXBsb2FkPWZ1bmN0aW9uKHQpe3RoaXMuem9vbUluUGFpbnRWZXJ0ZXhBcnJheSYmdGhpcy56b29tSW5QYWludFZlcnRleEFycmF5LmFycmF5QnVmZmVyJiZ0aGlzLnpvb21PdXRQYWludFZlcnRleEFycmF5JiZ0aGlzLnpvb21PdXRQYWludFZlcnRleEFycmF5LmFycmF5QnVmZmVyJiYodGhpcy56b29tSW5QYWludFZlcnRleEJ1ZmZlcj10LmNyZWF0ZVZlcnRleEJ1ZmZlcih0aGlzLnpvb21JblBhaW50VmVydGV4QXJyYXksbWEubWVtYmVycyx0aGlzLmV4cHJlc3Npb24uaXNTdGF0ZURlcGVuZGVudCksdGhpcy56b29tT3V0UGFpbnRWZXJ0ZXhCdWZmZXI9dC5jcmVhdGVWZXJ0ZXhCdWZmZXIodGhpcy56b29tT3V0UGFpbnRWZXJ0ZXhBcnJheSxtYS5tZW1iZXJzLHRoaXMuZXhwcmVzc2lvbi5pc1N0YXRlRGVwZW5kZW50KSl9LE5hLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy56b29tT3V0UGFpbnRWZXJ0ZXhCdWZmZXImJnRoaXMuem9vbU91dFBhaW50VmVydGV4QnVmZmVyLmRlc3Ryb3koKSx0aGlzLnpvb21JblBhaW50VmVydGV4QnVmZmVyJiZ0aGlzLnpvb21JblBhaW50VmVydGV4QnVmZmVyLmRlc3Ryb3koKX07dmFyIGphPWZ1bmN0aW9uKHQsZSxyLG4pe3RoaXMuYmluZGVycz17fSx0aGlzLmxheW91dEF0dHJpYnV0ZXM9bix0aGlzLl9idWZmZXJzPVtdO3ZhciBpPVtdO2Zvcih2YXIgYSBpbiB0LnBhaW50Ll92YWx1ZXMpaWYocihhKSl7dmFyIG89dC5wYWludC5nZXQoYSk7aWYobyBpbnN0YW5jZW9mIGJpJiZ6cihvLnByb3BlcnR5LnNwZWNpZmljYXRpb24pKXt2YXIgcz1WYShhLHQudHlwZSksbD1vLnZhbHVlLGM9by5wcm9wZXJ0eS5zcGVjaWZpY2F0aW9uLnR5cGUsdT1vLnByb3BlcnR5LnVzZUludGVnZXJab29tLGY9by5wcm9wZXJ0eS5zcGVjaWZpY2F0aW9uWyJwcm9wZXJ0eS10eXBlIl0saD0iY3Jvc3MtZmFkZWQiPT09Znx8ImNyb3NzLWZhZGVkLWRhdGEtZHJpdmVuIj09PWY7aWYoImNvbnN0YW50Ij09PWwua2luZCl0aGlzLmJpbmRlcnNbYV09aD9uZXcgUmEobC52YWx1ZSxzKTpuZXcgRGEobC52YWx1ZSxzLGMpLGkucHVzaCgiL3VfIithKTtlbHNlIGlmKCJzb3VyY2UiPT09bC5raW5kfHxoKXt2YXIgcD1IYShhLGMsInNvdXJjZSIpO3RoaXMuYmluZGVyc1thXT1oP25ldyBOYShsLGMsdSxlLHAsdC5pZCk6bmV3IEZhKGwscyxjLHApLGkucHVzaCgiL2FfIithKX1lbHNle3ZhciBkPUhhKGEsYywiY29tcG9zaXRlIik7dGhpcy5iaW5kZXJzW2FdPW5ldyBCYShsLHMsYyx1LGUsZCksaS5wdXNoKCIvel8iK2EpfX19dGhpcy5jYWNoZUtleT1pLnNvcnQoKS5qb2luKCIiKX07amEucHJvdG90eXBlLmdldE1heFZhbHVlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuYmluZGVyc1t0XTtyZXR1cm4gZSBpbnN0YW5jZW9mIEZhfHxlIGluc3RhbmNlb2YgQmE/ZS5tYXhWYWx1ZTowfSxqYS5wcm90b3R5cGUucG9wdWxhdGVQYWludEFycmF5cz1mdW5jdGlvbih0LGUscixuLGkpe2Zvcih2YXIgYSBpbiB0aGlzLmJpbmRlcnMpe3ZhciBvPXRoaXMuYmluZGVyc1thXTsobyBpbnN0YW5jZW9mIEZhfHxvIGluc3RhbmNlb2YgQmF8fG8gaW5zdGFuY2VvZiBOYSkmJm8ucG9wdWxhdGVQYWludEFycmF5KHQsZSxyLG4saSl9fSxqYS5wcm90b3R5cGUuc2V0Q29uc3RhbnRQYXR0ZXJuUG9zaXRpb25zPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByIGluIHRoaXMuYmluZGVycyl7dmFyIG49dGhpcy5iaW5kZXJzW3JdO24gaW5zdGFuY2VvZiBSYSYmbi5zZXRDb25zdGFudFBhdHRlcm5Qb3NpdGlvbnModCxlKX19LGphLnByb3RvdHlwZS51cGRhdGVQYWludEFycmF5cz1mdW5jdGlvbih0LGUscixuLGkpe3ZhciBhPSExO2Zvcih2YXIgbyBpbiB0KWZvcih2YXIgcz0wLGw9ZS5nZXRQb3NpdGlvbnMobyk7czxsLmxlbmd0aDtzKz0xKXt2YXIgYz1sW3NdLHU9ci5mZWF0dXJlKGMuaW5kZXgpO2Zvcih2YXIgZiBpbiB0aGlzLmJpbmRlcnMpe3ZhciBoPXRoaXMuYmluZGVyc1tmXTtpZigoaCBpbnN0YW5jZW9mIEZhfHxoIGluc3RhbmNlb2YgQmF8fGggaW5zdGFuY2VvZiBOYSkmJiEwPT09aC5leHByZXNzaW9uLmlzU3RhdGVEZXBlbmRlbnQpe3ZhciBwPW4ucGFpbnQuZ2V0KGYpO2guZXhwcmVzc2lvbj1wLnZhbHVlLGgudXBkYXRlUGFpbnRBcnJheShjLnN0YXJ0LGMuZW5kLHUsdFtvXSxpKSxhPSEwfX19cmV0dXJuIGF9LGphLnByb3RvdHlwZS5kZWZpbmVzPWZ1bmN0aW9uKCl7dmFyIHQ9W107Zm9yKHZhciBlIGluIHRoaXMuYmluZGVycyl7dmFyIHI9dGhpcy5iaW5kZXJzW2VdOyhyIGluc3RhbmNlb2YgRGF8fHIgaW5zdGFuY2VvZiBSYSkmJnQucHVzaC5hcHBseSh0LHIudW5pZm9ybU5hbWVzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIiNkZWZpbmUgSEFTX1VOSUZPUk1fIit0fSkpKX1yZXR1cm4gdH0samEucHJvdG90eXBlLmdldFBhaW50VmVydGV4QnVmZmVycz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9idWZmZXJzfSxqYS5wcm90b3R5cGUuZ2V0VW5pZm9ybXM9ZnVuY3Rpb24odCxlKXt2YXIgcj1bXTtmb3IodmFyIG4gaW4gdGhpcy5iaW5kZXJzKXt2YXIgaT10aGlzLmJpbmRlcnNbbl07aWYoaSBpbnN0YW5jZW9mIERhfHxpIGluc3RhbmNlb2YgUmF8fGkgaW5zdGFuY2VvZiBCYSlmb3IodmFyIGE9MCxvPWkudW5pZm9ybU5hbWVzO2E8by5sZW5ndGg7YSs9MSl7dmFyIHM9b1thXTtpZihlW3NdKXt2YXIgbD1pLmdldEJpbmRpbmcodCxlW3NdLHMpO3IucHVzaCh7bmFtZTpzLHByb3BlcnR5Om4sYmluZGluZzpsfSl9fX1yZXR1cm4gcn0samEucHJvdG90eXBlLnNldFVuaWZvcm1zPWZ1bmN0aW9uKHQsZSxyLG4pe2Zvcih2YXIgaT0wLGE9ZTtpPGEubGVuZ3RoO2krPTEpe3ZhciBvPWFbaV0scz1vLm5hbWUsbD1vLnByb3BlcnR5LGM9by5iaW5kaW5nO3RoaXMuYmluZGVyc1tsXS5zZXRVbmlmb3JtKGMsbixyLmdldChsKSxzKX19LGphLnByb3RvdHlwZS51cGRhdGVQYWludEJ1ZmZlcnM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlIGluIHRoaXMuX2J1ZmZlcnM9W10sdGhpcy5iaW5kZXJzKXt2YXIgcj10aGlzLmJpbmRlcnNbZV07aWYodCYmciBpbnN0YW5jZW9mIE5hKXt2YXIgbj0yPT09dC5mcm9tU2NhbGU/ci56b29tSW5QYWludFZlcnRleEJ1ZmZlcjpyLnpvb21PdXRQYWludFZlcnRleEJ1ZmZlcjtuJiZ0aGlzLl9idWZmZXJzLnB1c2gobil9ZWxzZShyIGluc3RhbmNlb2YgRmF8fHIgaW5zdGFuY2VvZiBCYSkmJnIucGFpbnRWZXJ0ZXhCdWZmZXImJnRoaXMuX2J1ZmZlcnMucHVzaChyLnBhaW50VmVydGV4QnVmZmVyKX19LGphLnByb3RvdHlwZS51cGxvYWQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlIGluIHRoaXMuYmluZGVycyl7dmFyIHI9dGhpcy5iaW5kZXJzW2VdOyhyIGluc3RhbmNlb2YgRmF8fHIgaW5zdGFuY2VvZiBCYXx8ciBpbnN0YW5jZW9mIE5hKSYmci51cGxvYWQodCl9dGhpcy51cGRhdGVQYWludEJ1ZmZlcnMoKX0samEucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcy5iaW5kZXJzKXt2YXIgZT10aGlzLmJpbmRlcnNbdF07KGUgaW5zdGFuY2VvZiBGYXx8ZSBpbnN0YW5jZW9mIEJhfHxlIGluc3RhbmNlb2YgTmEpJiZlLmRlc3Ryb3koKX19O3ZhciBVYT1mdW5jdGlvbih0LGUscixuKXt2b2lkIDA9PT1uJiYobj1mdW5jdGlvbigpe3JldHVybiEwfSksdGhpcy5wcm9ncmFtQ29uZmlndXJhdGlvbnM9e307Zm9yKHZhciBpPTAsYT1lO2k8YS5sZW5ndGg7aSs9MSl7dmFyIG89YVtpXTt0aGlzLnByb2dyYW1Db25maWd1cmF0aW9uc1tvLmlkXT1uZXcgamEobyxyLG4sdCl9dGhpcy5uZWVkc1VwbG9hZD0hMSx0aGlzLl9mZWF0dXJlTWFwPW5ldyBfYSx0aGlzLl9idWZmZXJPZmZzZXQ9MH07ZnVuY3Rpb24gVmEodCxlKXtyZXR1cm57InRleHQtb3BhY2l0eSI6WyJvcGFjaXR5Il0sImljb24tb3BhY2l0eSI6WyJvcGFjaXR5Il0sInRleHQtY29sb3IiOlsiZmlsbF9jb2xvciJdLCJpY29uLWNvbG9yIjpbImZpbGxfY29sb3IiXSwidGV4dC1oYWxvLWNvbG9yIjpbImhhbG9fY29sb3IiXSwiaWNvbi1oYWxvLWNvbG9yIjpbImhhbG9fY29sb3IiXSwidGV4dC1oYWxvLWJsdXIiOlsiaGFsb19ibHVyIl0sImljb24taGFsby1ibHVyIjpbImhhbG9fYmx1ciJdLCJ0ZXh0LWhhbG8td2lkdGgiOlsiaGFsb193aWR0aCJdLCJpY29uLWhhbG8td2lkdGgiOlsiaGFsb193aWR0aCJdLCJsaW5lLWdhcC13aWR0aCI6WyJnYXB3aWR0aCJdLCJsaW5lLXBhdHRlcm4iOlsicGF0dGVybl90byIsInBhdHRlcm5fZnJvbSIsInBpeGVsX3JhdGlvX3RvIiwicGl4ZWxfcmF0aW9fZnJvbSJdLCJmaWxsLXBhdHRlcm4iOlsicGF0dGVybl90byIsInBhdHRlcm5fZnJvbSIsInBpeGVsX3JhdGlvX3RvIiwicGl4ZWxfcmF0aW9fZnJvbSJdLCJmaWxsLWV4dHJ1c2lvbi1wYXR0ZXJuIjpbInBhdHRlcm5fdG8iLCJwYXR0ZXJuX2Zyb20iLCJwaXhlbF9yYXRpb190byIsInBpeGVsX3JhdGlvX2Zyb20iXX1bdF18fFt0LnJlcGxhY2UoZSsiLSIsIiIpLnJlcGxhY2UoLy0vZywiXyIpXX1mdW5jdGlvbiBIYSh0LGUscil7dmFyIG49e2NvbG9yOntzb3VyY2U6dGEsY29tcG9zaXRlOmVhfSxudW1iZXI6e3NvdXJjZTpaaSxjb21wb3NpdGU6dGF9fSxpPWZ1bmN0aW9uKHQpe3JldHVybnsibGluZS1wYXR0ZXJuIjp7c291cmNlOkJpLGNvbXBvc2l0ZTpCaX0sImZpbGwtcGF0dGVybiI6e3NvdXJjZTpCaSxjb21wb3NpdGU6Qml9LCJmaWxsLWV4dHJ1c2lvbi1wYXR0ZXJuIjp7c291cmNlOkJpLGNvbXBvc2l0ZTpCaX19W3RdfSh0KTtyZXR1cm4gaSYmaVtyXXx8bltlXVtyXX1VYS5wcm90b3R5cGUucG9wdWxhdGVQYWludEFycmF5cz1mdW5jdGlvbih0LGUscixuLGksYSl7Zm9yKHZhciBvIGluIHRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zKXRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zW29dLnBvcHVsYXRlUGFpbnRBcnJheXModCxlLG4saSxhKTt2b2lkIDAhPT1lLmlkJiZ0aGlzLl9mZWF0dXJlTWFwLmFkZChlLmlkLHIsdGhpcy5fYnVmZmVyT2Zmc2V0LHQpLHRoaXMuX2J1ZmZlck9mZnNldD10LHRoaXMubmVlZHNVcGxvYWQ9ITB9LFVhLnByb3RvdHlwZS51cGRhdGVQYWludEFycmF5cz1mdW5jdGlvbih0LGUscixuKXtmb3IodmFyIGk9MCxhPXI7aTxhLmxlbmd0aDtpKz0xKXt2YXIgbz1hW2ldO3RoaXMubmVlZHNVcGxvYWQ9dGhpcy5wcm9ncmFtQ29uZmlndXJhdGlvbnNbby5pZF0udXBkYXRlUGFpbnRBcnJheXModCx0aGlzLl9mZWF0dXJlTWFwLGUsbyxuKXx8dGhpcy5uZWVkc1VwbG9hZH19LFVhLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zW3RdfSxVYS5wcm90b3R5cGUudXBsb2FkPWZ1bmN0aW9uKHQpe2lmKHRoaXMubmVlZHNVcGxvYWQpe2Zvcih2YXIgZSBpbiB0aGlzLnByb2dyYW1Db25maWd1cmF0aW9ucyl0aGlzLnByb2dyYW1Db25maWd1cmF0aW9uc1tlXS51cGxvYWQodCk7dGhpcy5uZWVkc1VwbG9hZD0hMX19LFVhLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zKXRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zW3RdLmRlc3Ryb3koKX0sTm4oIkNvbnN0YW50QmluZGVyIixEYSksTm4oIkNyb3NzRmFkZWRDb25zdGFudEJpbmRlciIsUmEpLE5uKCJTb3VyY2VFeHByZXNzaW9uQmluZGVyIixGYSksTm4oIkNyb3NzRmFkZWRDb21wb3NpdGVCaW5kZXIiLE5hKSxObigiQ29tcG9zaXRlRXhwcmVzc2lvbkJpbmRlciIsQmEpLE5uKCJQcm9ncmFtQ29uZmlndXJhdGlvbiIsamEse29taXQ6WyJfYnVmZmVycyJdfSksTm4oIlByb2dyYW1Db25maWd1cmF0aW9uU2V0IixVYSk7dmFyIHFhLEdhPShxYT0xNSx7bWluOi0xKk1hdGgucG93KDIscWEtMSksbWF4Ok1hdGgucG93KDIscWEtMSktMX0pO2Z1bmN0aW9uIFlhKHQpe2Zvcih2YXIgZT04MTkyL3QuZXh0ZW50LHI9dC5sb2FkR2VvbWV0cnkoKSxuPTA7bjxyLmxlbmd0aDtuKyspZm9yKHZhciBpPXJbbl0sYT0wO2E8aS5sZW5ndGg7YSsrKXt2YXIgbz1pW2FdO28ueD1NYXRoLnJvdW5kKG8ueCplKSxvLnk9TWF0aC5yb3VuZChvLnkqZSksKG8ueDxHYS5taW58fG8ueD5HYS5tYXh8fG8ueTxHYS5taW58fG8ueT5HYS5tYXgpJiYoXygiR2VvbWV0cnkgZXhjZWVkcyBhbGxvd2VkIGV4dGVudCwgcmVkdWNlIHlvdXIgdmVjdG9yIHRpbGUgYnVmZmVyIHNpemUiKSxvLng9bChvLngsR2EubWluLEdhLm1heCksby55PWwoby55LEdhLm1pbixHYS5tYXgpKX1yZXR1cm4gcn1mdW5jdGlvbiBXYSh0LGUscixuLGkpe3QuZW1wbGFjZUJhY2soMiplKyhuKzEpLzIsMipyKyhpKzEpLzIpfXZhciBYYT1mdW5jdGlvbih0KXt0aGlzLnpvb209dC56b29tLHRoaXMub3ZlcnNjYWxpbmc9dC5vdmVyc2NhbGluZyx0aGlzLmxheWVycz10LmxheWVycyx0aGlzLmxheWVySWRzPXRoaXMubGF5ZXJzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWR9KSksdGhpcy5pbmRleD10LmluZGV4LHRoaXMuaGFzUGF0dGVybj0hMSx0aGlzLmxheW91dFZlcnRleEFycmF5PW5ldyB6aSx0aGlzLmluZGV4QXJyYXk9bmV3IFlpLHRoaXMuc2VnbWVudHM9bmV3IHBhLHRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zPW5ldyBVYShoYSx0LmxheWVycyx0Lnpvb20pLHRoaXMuc3RhdGVEZXBlbmRlbnRMYXllcklkcz10aGlzLmxheWVycy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlzU3RhdGVEZXBlbmRlbnQoKX0pKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkfSkpfTtmdW5jdGlvbiBaYSh0LGUpe2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKWlmKGlvKGUsdFtyXSkpcmV0dXJuITA7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspaWYoaW8odCxlW25dKSlyZXR1cm4hMDtyZXR1cm4hISRhKHQsZSl9ZnVuY3Rpb24gSmEodCxlLHIpe3JldHVybiEhaW8odCxlKXx8ISFlbyhlLHQscil9ZnVuY3Rpb24gS2EodCxlKXtpZigxPT09dC5sZW5ndGgpcmV0dXJuIG5vKGUsdFswXSk7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspZm9yKHZhciBuPWVbcl0saT0wO2k8bi5sZW5ndGg7aSsrKWlmKGlvKHQsbltpXSkpcmV0dXJuITA7Zm9yKHZhciBhPTA7YTx0Lmxlbmd0aDthKyspaWYobm8oZSx0W2FdKSlyZXR1cm4hMDtmb3IodmFyIG89MDtvPGUubGVuZ3RoO28rKylpZigkYSh0LGVbb10pKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIFFhKHQsZSxyKXtpZih0Lmxlbmd0aD4xKXtpZigkYSh0LGUpKXJldHVybiEwO2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKWlmKGVvKGVbbl0sdCxyKSlyZXR1cm4hMH1mb3IodmFyIGk9MDtpPHQubGVuZ3RoO2krKylpZihlbyh0W2ldLGUscikpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gJGEodCxlKXtpZigwPT09dC5sZW5ndGh8fDA9PT1lLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIHI9MDtyPHQubGVuZ3RoLTE7cisrKWZvcih2YXIgbj10W3JdLGk9dFtyKzFdLGE9MDthPGUubGVuZ3RoLTE7YSsrKXtpZih0byhuLGksZVthXSxlW2ErMV0pKXJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIHRvKHQsZSxyLG4pe3JldHVybiB3KHQscixuKSE9PXcoZSxyLG4pJiZ3KHQsZSxyKSE9PXcodCxlLG4pfWZ1bmN0aW9uIGVvKHQsZSxyKXt2YXIgbj1yKnI7aWYoMT09PWUubGVuZ3RoKXJldHVybiB0LmRpc3RTcXIoZVswXSk8bjtmb3IodmFyIGk9MTtpPGUubGVuZ3RoO2krKyl7aWYocm8odCxlW2ktMV0sZVtpXSk8bilyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBybyh0LGUscil7dmFyIG49ZS5kaXN0U3FyKHIpO2lmKDA9PT1uKXJldHVybiB0LmRpc3RTcXIoZSk7dmFyIGk9KCh0LngtZS54KSooci54LWUueCkrKHQueS1lLnkpKihyLnktZS55KSkvbjtyZXR1cm4gaTwwP3QuZGlzdFNxcihlKTppPjE/dC5kaXN0U3FyKHIpOnQuZGlzdFNxcihyLnN1YihlKS5fbXVsdChpKS5fYWRkKGUpKX1mdW5jdGlvbiBubyh0LGUpe2Zvcih2YXIgcixuLGksYT0hMSxvPTA7bzx0Lmxlbmd0aDtvKyspZm9yKHZhciBzPTAsbD0ocj10W29dKS5sZW5ndGgtMTtzPHIubGVuZ3RoO2w9cysrKW49cltzXSxpPXJbbF0sbi55PmUueSE9aS55PmUueSYmZS54PChpLngtbi54KSooZS55LW4ueSkvKGkueS1uLnkpK24ueCYmKGE9IWEpO3JldHVybiBhfWZ1bmN0aW9uIGlvKHQsZSl7Zm9yKHZhciByPSExLG49MCxpPXQubGVuZ3RoLTE7bjx0Lmxlbmd0aDtpPW4rKyl7dmFyIGE9dFtuXSxvPXRbaV07YS55PmUueSE9by55PmUueSYmZS54PChvLngtYS54KSooZS55LWEueSkvKG8ueS1hLnkpK2EueCYmKHI9IXIpfXJldHVybiByfWZ1bmN0aW9uIGFvKHQsZSxyKXt2YXIgbj1yWzBdLGk9clsyXTtpZih0Lng8bi54JiZlLng8bi54fHx0Lng+aS54JiZlLng+aS54fHx0Lnk8bi55JiZlLnk8bi55fHx0Lnk+aS55JiZlLnk+aS55KXJldHVybiExO3ZhciBhPXcodCxlLHJbMF0pO3JldHVybiBhIT09dyh0LGUsclsxXSl8fGEhPT13KHQsZSxyWzJdKXx8YSE9PXcodCxlLHJbM10pfWZ1bmN0aW9uIG9vKHQsZSxyKXt2YXIgbj1lLnBhaW50LmdldCh0KS52YWx1ZTtyZXR1cm4iY29uc3RhbnQiPT09bi5raW5kP24udmFsdWU6ci5wcm9ncmFtQ29uZmlndXJhdGlvbnMuZ2V0KGUuaWQpLmdldE1heFZhbHVlKHQpfWZ1bmN0aW9uIHNvKHQpe3JldHVybiBNYXRoLnNxcnQodFswXSp0WzBdK3RbMV0qdFsxXSl9ZnVuY3Rpb24gbG8odCxlLHIsbixhKXtpZighZVswXSYmIWVbMV0pcmV0dXJuIHQ7dmFyIG89aS5jb252ZXJ0KGUpLl9tdWx0KGEpOyJ2aWV3cG9ydCI9PT1yJiZvLl9yb3RhdGUoLW4pO2Zvcih2YXIgcz1bXSxsPTA7bDx0Lmxlbmd0aDtsKyspe3ZhciBjPXRbbF07cy5wdXNoKGMuc3ViKG8pKX1yZXR1cm4gc31YYS5wcm90b3R5cGUucG9wdWxhdGU9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMubGF5ZXJzWzBdLGk9W10sYT1udWxsOyJjaXJjbGUiPT09bi50eXBlJiYoYT1uLmxheW91dC5nZXQoImNpcmNsZS1zb3J0LWtleSIpKTtmb3IodmFyIG89MCxzPXQ7bzxzLmxlbmd0aDtvKz0xKXt2YXIgbD1zW29dLGM9bC5mZWF0dXJlLHU9bC5pZCxmPWwuaW5kZXgsaD1sLnNvdXJjZUxheWVySW5kZXgscD10aGlzLmxheWVyc1swXS5fZmVhdHVyZUZpbHRlci5uZWVkR2VvbWV0cnksZD17dHlwZTpjLnR5cGUsaWQ6dSxwcm9wZXJ0aWVzOmMucHJvcGVydGllcyxnZW9tZXRyeTpwP1lhKGMpOltdfTtpZih0aGlzLmxheWVyc1swXS5fZmVhdHVyZUZpbHRlci5maWx0ZXIobmV3IHBpKHRoaXMuem9vbSksZCxyKSl7cHx8KGQuZ2VvbWV0cnk9WWEoYykpO3ZhciBtPWE/YS5ldmFsdWF0ZShkLHt9LHIpOnZvaWQgMCxnPXtpZDp1LHByb3BlcnRpZXM6Yy5wcm9wZXJ0aWVzLHR5cGU6Yy50eXBlLHNvdXJjZUxheWVySW5kZXg6aCxpbmRleDpmLGdlb21ldHJ5OmQuZ2VvbWV0cnkscGF0dGVybnM6e30sc29ydEtleTptfTtpLnB1c2goZyl9fWEmJmkuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5zb3J0S2V5LWUuc29ydEtleX0pKTtmb3IodmFyIHY9MCx5PWk7djx5Lmxlbmd0aDt2Kz0xKXt2YXIgeD15W3ZdLGI9eCxfPWIuZ2VvbWV0cnksdz1iLmluZGV4LFQ9Yi5zb3VyY2VMYXllckluZGV4LGs9dFt3XS5mZWF0dXJlO3RoaXMuYWRkRmVhdHVyZSh4LF8sdyxyKSxlLmZlYXR1cmVJbmRleC5pbnNlcnQoayxfLHcsVCx0aGlzLmluZGV4KX19LFhhLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlLHIpe3RoaXMuc3RhdGVEZXBlbmRlbnRMYXllcnMubGVuZ3RoJiZ0aGlzLnByb2dyYW1Db25maWd1cmF0aW9ucy51cGRhdGVQYWludEFycmF5cyh0LGUsdGhpcy5zdGF0ZURlcGVuZGVudExheWVycyxyKX0sWGEucHJvdG90eXBlLmlzRW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMubGF5b3V0VmVydGV4QXJyYXkubGVuZ3RofSxYYS5wcm90b3R5cGUudXBsb2FkUGVuZGluZz1mdW5jdGlvbigpe3JldHVybiF0aGlzLnVwbG9hZGVkfHx0aGlzLnByb2dyYW1Db25maWd1cmF0aW9ucy5uZWVkc1VwbG9hZH0sWGEucHJvdG90eXBlLnVwbG9hZD1mdW5jdGlvbih0KXt0aGlzLnVwbG9hZGVkfHwodGhpcy5sYXlvdXRWZXJ0ZXhCdWZmZXI9dC5jcmVhdGVWZXJ0ZXhCdWZmZXIodGhpcy5sYXlvdXRWZXJ0ZXhBcnJheSxoYSksdGhpcy5pbmRleEJ1ZmZlcj10LmNyZWF0ZUluZGV4QnVmZmVyKHRoaXMuaW5kZXhBcnJheSkpLHRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLnVwbG9hZCh0KSx0aGlzLnVwbG9hZGVkPSEwfSxYYS5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMubGF5b3V0VmVydGV4QnVmZmVyJiYodGhpcy5sYXlvdXRWZXJ0ZXhCdWZmZXIuZGVzdHJveSgpLHRoaXMuaW5kZXhCdWZmZXIuZGVzdHJveSgpLHRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLmRlc3Ryb3koKSx0aGlzLnNlZ21lbnRzLmRlc3Ryb3koKSl9LFhhLnByb3RvdHlwZS5hZGRGZWF0dXJlPWZ1bmN0aW9uKHQsZSxyLG4pe2Zvcih2YXIgaT0wLGE9ZTtpPGEubGVuZ3RoO2krPTEpZm9yKHZhciBvPTAscz1hW2ldO288cy5sZW5ndGg7bys9MSl7dmFyIGw9c1tvXSxjPWwueCx1PWwueTtpZighKGM8MHx8Yz49ODE5Mnx8dTwwfHx1Pj04MTkyKSl7dmFyIGY9dGhpcy5zZWdtZW50cy5wcmVwYXJlU2VnbWVudCg0LHRoaXMubGF5b3V0VmVydGV4QXJyYXksdGhpcy5pbmRleEFycmF5LHQuc29ydEtleSksaD1mLnZlcnRleExlbmd0aDtXYSh0aGlzLmxheW91dFZlcnRleEFycmF5LGMsdSwtMSwtMSksV2EodGhpcy5sYXlvdXRWZXJ0ZXhBcnJheSxjLHUsMSwtMSksV2EodGhpcy5sYXlvdXRWZXJ0ZXhBcnJheSxjLHUsMSwxKSxXYSh0aGlzLmxheW91dFZlcnRleEFycmF5LGMsdSwtMSwxKSx0aGlzLmluZGV4QXJyYXkuZW1wbGFjZUJhY2soaCxoKzEsaCsyKSx0aGlzLmluZGV4QXJyYXkuZW1wbGFjZUJhY2soaCxoKzMsaCsyKSxmLnZlcnRleExlbmd0aCs9NCxmLnByaW1pdGl2ZUxlbmd0aCs9Mn19dGhpcy5wcm9ncmFtQ29uZmlndXJhdGlvbnMucG9wdWxhdGVQYWludEFycmF5cyh0aGlzLmxheW91dFZlcnRleEFycmF5Lmxlbmd0aCx0LHIse30sbil9LE5uKCJDaXJjbGVCdWNrZXQiLFhhLHtvbWl0OlsibGF5ZXJzIl19KTt2YXIgY289bmV3IFNpKHsiY2lyY2xlLXNvcnQta2V5IjpuZXcgVGkoTHQubGF5b3V0X2NpcmNsZVsiY2lyY2xlLXNvcnQta2V5Il0pfSksdW89e3BhaW50Om5ldyBTaSh7ImNpcmNsZS1yYWRpdXMiOm5ldyBUaShMdC5wYWludF9jaXJjbGVbImNpcmNsZS1yYWRpdXMiXSksImNpcmNsZS1jb2xvciI6bmV3IFRpKEx0LnBhaW50X2NpcmNsZVsiY2lyY2xlLWNvbG9yIl0pLCJjaXJjbGUtYmx1ciI6bmV3IFRpKEx0LnBhaW50X2NpcmNsZVsiY2lyY2xlLWJsdXIiXSksImNpcmNsZS1vcGFjaXR5IjpuZXcgVGkoTHQucGFpbnRfY2lyY2xlWyJjaXJjbGUtb3BhY2l0eSJdKSwiY2lyY2xlLXRyYW5zbGF0ZSI6bmV3IHdpKEx0LnBhaW50X2NpcmNsZVsiY2lyY2xlLXRyYW5zbGF0ZSJdKSwiY2lyY2xlLXRyYW5zbGF0ZS1hbmNob3IiOm5ldyB3aShMdC5wYWludF9jaXJjbGVbImNpcmNsZS10cmFuc2xhdGUtYW5jaG9yIl0pLCJjaXJjbGUtcGl0Y2gtc2NhbGUiOm5ldyB3aShMdC5wYWludF9jaXJjbGVbImNpcmNsZS1waXRjaC1zY2FsZSJdKSwiY2lyY2xlLXBpdGNoLWFsaWdubWVudCI6bmV3IHdpKEx0LnBhaW50X2NpcmNsZVsiY2lyY2xlLXBpdGNoLWFsaWdubWVudCJdKSwiY2lyY2xlLXN0cm9rZS13aWR0aCI6bmV3IFRpKEx0LnBhaW50X2NpcmNsZVsiY2lyY2xlLXN0cm9rZS13aWR0aCJdKSwiY2lyY2xlLXN0cm9rZS1jb2xvciI6bmV3IFRpKEx0LnBhaW50X2NpcmNsZVsiY2lyY2xlLXN0cm9rZS1jb2xvciJdKSwiY2lyY2xlLXN0cm9rZS1vcGFjaXR5IjpuZXcgVGkoTHQucGFpbnRfY2lyY2xlWyJjaXJjbGUtc3Ryb2tlLW9wYWNpdHkiXSl9KSxsYXlvdXQ6Y299LGZvPSJ1bmRlZmluZWQiIT10eXBlb2YgRmxvYXQzMkFycmF5P0Zsb2F0MzJBcnJheTpBcnJheTtmdW5jdGlvbiBobyh0KXtyZXR1cm4gdFswXT0xLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09MCx0WzVdPTEsdFs2XT0wLHRbN109MCx0WzhdPTAsdFs5XT0wLHRbMTBdPTEsdFsxMV09MCx0WzEyXT0wLHRbMTNdPTAsdFsxNF09MCx0WzE1XT0xLHR9ZnVuY3Rpb24gcG8odCxlLHIpe3ZhciBuPWVbMF0saT1lWzFdLGE9ZVsyXSxvPWVbM10scz1lWzRdLGw9ZVs1XSxjPWVbNl0sdT1lWzddLGY9ZVs4XSxoPWVbOV0scD1lWzEwXSxkPWVbMTFdLG09ZVsxMl0sZz1lWzEzXSx2PWVbMTRdLHk9ZVsxNV0seD1yWzBdLGI9clsxXSxfPXJbMl0sdz1yWzNdO3JldHVybiB0WzBdPXgqbitiKnMrXypmK3cqbSx0WzFdPXgqaStiKmwrXypoK3cqZyx0WzJdPXgqYStiKmMrXypwK3cqdix0WzNdPXgqbytiKnUrXypkK3cqeSx4PXJbNF0sYj1yWzVdLF89cls2XSx3PXJbN10sdFs0XT14Km4rYipzK18qZit3Km0sdFs1XT14KmkrYipsK18qaCt3KmcsdFs2XT14KmErYipjK18qcCt3KnYsdFs3XT14Km8rYip1K18qZCt3KnkseD1yWzhdLGI9cls5XSxfPXJbMTBdLHc9clsxMV0sdFs4XT14Km4rYipzK18qZit3Km0sdFs5XT14KmkrYipsK18qaCt3KmcsdFsxMF09eCphK2IqYytfKnArdyp2LHRbMTFdPXgqbytiKnUrXypkK3cqeSx4PXJbMTJdLGI9clsxM10sXz1yWzE0XSx3PXJbMTVdLHRbMTJdPXgqbitiKnMrXypmK3cqbSx0WzEzXT14KmkrYipsK18qaCt3KmcsdFsxNF09eCphK2IqYytfKnArdyp2LHRbMTVdPXgqbytiKnUrXypkK3cqeSx0fU1hdGguaHlwb3R8fChNYXRoLmh5cG90PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PWFyZ3VtZW50cyxlPTAscj1hcmd1bWVudHMubGVuZ3RoO3ItLTspZSs9dFtyXSp0W3JdO3JldHVybiBNYXRoLnNxcnQoZSl9KTt2YXIgbW89cG87dmFyIGdvLHZvLHlvPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdFswXT1lWzBdLXJbMF0sdFsxXT1lWzFdLXJbMV0sdFsyXT1lWzJdLXJbMl0sdH07Z289bmV3IGZvKDMpLGZvIT1GbG9hdDMyQXJyYXkmJihnb1swXT0wLGdvWzFdPTAsZ29bMl09MCksdm89Z287ZnVuY3Rpb24geG8odCxlLHIpe3ZhciBuPWVbMF0saT1lWzFdLGE9ZVsyXSxvPWVbM107cmV0dXJuIHRbMF09clswXSpuK3JbNF0qaStyWzhdKmErclsxMl0qbyx0WzFdPXJbMV0qbityWzVdKmkrcls5XSphK3JbMTNdKm8sdFsyXT1yWzJdKm4rcls2XSppK3JbMTBdKmErclsxNF0qbyx0WzNdPXJbM10qbityWzddKmkrclsxMV0qYStyWzE1XSpvLHR9IWZ1bmN0aW9uKCl7dmFyIHQ9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgZm8oNCk7cmV0dXJuIGZvIT1GbG9hdDMyQXJyYXkmJih0WzBdPTAsdFsxXT0wLHRbMl09MCx0WzNdPTApLHR9KCl9KCk7dmFyIGJvPWZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0scj10WzFdO3JldHVybiBlKmUrcipyfSxfbz0oZnVuY3Rpb24oKXt2YXIgdD1mdW5jdGlvbigpe3ZhciB0PW5ldyBmbygyKTtyZXR1cm4gZm8hPUZsb2F0MzJBcnJheSYmKHRbMF09MCx0WzFdPTApLHR9KCl9KCksZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt0LmNhbGwodGhpcyxlLHVvKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuY3JlYXRlQnVja2V0PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgWGEodCl9LGUucHJvdG90eXBlLnF1ZXJ5UmFkaXVzPWZ1bmN0aW9uKHQpe3ZhciBlPXQ7cmV0dXJuIG9vKCJjaXJjbGUtcmFkaXVzIix0aGlzLGUpK29vKCJjaXJjbGUtc3Ryb2tlLXdpZHRoIix0aGlzLGUpK3NvKHRoaXMucGFpbnQuZ2V0KCJjaXJjbGUtdHJhbnNsYXRlIikpfSxlLnByb3RvdHlwZS5xdWVyeUludGVyc2VjdHNGZWF0dXJlPWZ1bmN0aW9uKHQsZSxyLG4saSxhLG8scyl7Zm9yKHZhciBsPWxvKHQsdGhpcy5wYWludC5nZXQoImNpcmNsZS10cmFuc2xhdGUiKSx0aGlzLnBhaW50LmdldCgiY2lyY2xlLXRyYW5zbGF0ZS1hbmNob3IiKSxhLmFuZ2xlLG8pLGM9dGhpcy5wYWludC5nZXQoImNpcmNsZS1yYWRpdXMiKS5ldmFsdWF0ZShlLHIpK3RoaXMucGFpbnQuZ2V0KCJjaXJjbGUtc3Ryb2tlLXdpZHRoIikuZXZhbHVhdGUoZSxyKSx1PSJtYXAiPT09dGhpcy5wYWludC5nZXQoImNpcmNsZS1waXRjaC1hbGlnbm1lbnQiKSxmPXU/bDpmdW5jdGlvbih0LGUpe3JldHVybiB0Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHdvKHQsZSl9KSl9KGwscyksaD11P2MqbzpjLHA9MCxkPW47cDxkLmxlbmd0aDtwKz0xKWZvcih2YXIgbT0wLGc9ZFtwXTttPGcubGVuZ3RoO20rPTEpe3ZhciB2PWdbbV0seT11P3Y6d28odixzKSx4PWgsYj14byhbXSxbdi54LHYueSwwLDFdLHMpO2lmKCJ2aWV3cG9ydCI9PT10aGlzLnBhaW50LmdldCgiY2lyY2xlLXBpdGNoLXNjYWxlIikmJiJtYXAiPT09dGhpcy5wYWludC5nZXQoImNpcmNsZS1waXRjaC1hbGlnbm1lbnQiKT94Kj1iWzNdL2EuY2FtZXJhVG9DZW50ZXJEaXN0YW5jZToibWFwIj09PXRoaXMucGFpbnQuZ2V0KCJjaXJjbGUtcGl0Y2gtc2NhbGUiKSYmInZpZXdwb3J0Ij09PXRoaXMucGFpbnQuZ2V0KCJjaXJjbGUtcGl0Y2gtYWxpZ25tZW50IikmJih4Kj1hLmNhbWVyYVRvQ2VudGVyRGlzdGFuY2UvYlszXSksSmEoZix5LHgpKXJldHVybiEwfXJldHVybiExfSxlfShFaSkpO2Z1bmN0aW9uIHdvKHQsZSl7dmFyIHI9eG8oW10sW3QueCx0LnksMCwxXSxlKTtyZXR1cm4gbmV3IGkoclswXS9yWzNdLHJbMV0vclszXSl9dmFyIFRvPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZX0oWGEpO2Z1bmN0aW9uIGtvKHQsZSxyLG4pe3ZhciBpPWUud2lkdGgsYT1lLmhlaWdodDtpZihuKXtpZihuIGluc3RhbmNlb2YgVWludDhDbGFtcGVkQXJyYXkpbj1uZXcgVWludDhBcnJheShuLmJ1ZmZlcik7ZWxzZSBpZihuLmxlbmd0aCE9PWkqYSpyKXRocm93IG5ldyBSYW5nZUVycm9yKCJtaXNtYXRjaGVkIGltYWdlIHNpemUiKX1lbHNlIG49bmV3IFVpbnQ4QXJyYXkoaSphKnIpO3JldHVybiB0LndpZHRoPWksdC5oZWlnaHQ9YSx0LmRhdGE9bix0fWZ1bmN0aW9uIEFvKHQsZSxyKXt2YXIgbj1lLndpZHRoLGk9ZS5oZWlnaHQ7aWYobiE9PXQud2lkdGh8fGkhPT10LmhlaWdodCl7dmFyIGE9a28oe30se3dpZHRoOm4saGVpZ2h0Oml9LHIpO01vKHQsYSx7eDowLHk6MH0se3g6MCx5OjB9LHt3aWR0aDpNYXRoLm1pbih0LndpZHRoLG4pLGhlaWdodDpNYXRoLm1pbih0LmhlaWdodCxpKX0sciksdC53aWR0aD1uLHQuaGVpZ2h0PWksdC5kYXRhPWEuZGF0YX19ZnVuY3Rpb24gTW8odCxlLHIsbixpLGEpe2lmKDA9PT1pLndpZHRofHwwPT09aS5oZWlnaHQpcmV0dXJuIGU7aWYoaS53aWR0aD50LndpZHRofHxpLmhlaWdodD50LmhlaWdodHx8ci54PnQud2lkdGgtaS53aWR0aHx8ci55PnQuaGVpZ2h0LWkuaGVpZ2h0KXRocm93IG5ldyBSYW5nZUVycm9yKCJvdXQgb2YgcmFuZ2Ugc291cmNlIGNvb3JkaW5hdGVzIGZvciBpbWFnZSBjb3B5Iik7aWYoaS53aWR0aD5lLndpZHRofHxpLmhlaWdodD5lLmhlaWdodHx8bi54PmUud2lkdGgtaS53aWR0aHx8bi55PmUuaGVpZ2h0LWkuaGVpZ2h0KXRocm93IG5ldyBSYW5nZUVycm9yKCJvdXQgb2YgcmFuZ2UgZGVzdGluYXRpb24gY29vcmRpbmF0ZXMgZm9yIGltYWdlIGNvcHkiKTtmb3IodmFyIG89dC5kYXRhLHM9ZS5kYXRhLGw9MDtsPGkuaGVpZ2h0O2wrKylmb3IodmFyIGM9KChyLnkrbCkqdC53aWR0aCtyLngpKmEsdT0oKG4ueStsKSplLndpZHRoK24ueCkqYSxmPTA7ZjxpLndpZHRoKmE7ZisrKXNbdStmXT1vW2MrZl07cmV0dXJuIGV9Tm4oIkhlYXRtYXBCdWNrZXQiLFRvLHtvbWl0OlsibGF5ZXJzIl19KTt2YXIgU289ZnVuY3Rpb24odCxlKXtrbyh0aGlzLHQsMSxlKX07U28ucHJvdG90eXBlLnJlc2l6ZT1mdW5jdGlvbih0KXtBbyh0aGlzLHQsMSl9LFNvLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgU28oe3dpZHRoOnRoaXMud2lkdGgsaGVpZ2h0OnRoaXMuaGVpZ2h0fSxuZXcgVWludDhBcnJheSh0aGlzLmRhdGEpKX0sU28uY29weT1mdW5jdGlvbih0LGUscixuLGkpe01vKHQsZSxyLG4saSwxKX07dmFyIEVvPWZ1bmN0aW9uKHQsZSl7a28odGhpcyx0LDQsZSl9O0VvLnByb3RvdHlwZS5yZXNpemU9ZnVuY3Rpb24odCl7QW8odGhpcyx0LDQpfSxFby5wcm90b3R5cGUucmVwbGFjZT1mdW5jdGlvbih0LGUpe2U/dGhpcy5kYXRhLnNldCh0KTp0IGluc3RhbmNlb2YgVWludDhDbGFtcGVkQXJyYXk/dGhpcy5kYXRhPW5ldyBVaW50OEFycmF5KHQuYnVmZmVyKTp0aGlzLmRhdGE9dH0sRW8ucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBFbyh7d2lkdGg6dGhpcy53aWR0aCxoZWlnaHQ6dGhpcy5oZWlnaHR9LG5ldyBVaW50OEFycmF5KHRoaXMuZGF0YSkpfSxFby5jb3B5PWZ1bmN0aW9uKHQsZSxyLG4saSl7TW8odCxlLHIsbixpLDQpfSxObigiQWxwaGFJbWFnZSIsU28pLE5uKCJSR0JBSW1hZ2UiLEVvKTt2YXIgTG89e3BhaW50Om5ldyBTaSh7ImhlYXRtYXAtcmFkaXVzIjpuZXcgVGkoTHQucGFpbnRfaGVhdG1hcFsiaGVhdG1hcC1yYWRpdXMiXSksImhlYXRtYXAtd2VpZ2h0IjpuZXcgVGkoTHQucGFpbnRfaGVhdG1hcFsiaGVhdG1hcC13ZWlnaHQiXSksImhlYXRtYXAtaW50ZW5zaXR5IjpuZXcgd2koTHQucGFpbnRfaGVhdG1hcFsiaGVhdG1hcC1pbnRlbnNpdHkiXSksImhlYXRtYXAtY29sb3IiOm5ldyBNaShMdC5wYWludF9oZWF0bWFwWyJoZWF0bWFwLWNvbG9yIl0pLCJoZWF0bWFwLW9wYWNpdHkiOm5ldyB3aShMdC5wYWludF9oZWF0bWFwWyJoZWF0bWFwLW9wYWNpdHkiXSl9KX07ZnVuY3Rpb24gQ28odCxlKXtmb3IodmFyIHI9bmV3IFVpbnQ4QXJyYXkoMTAyNCksbj17fSxpPTAsYT0wO2k8MjU2O2krKyxhKz00KXtuW2VdPWkvMjU1O3ZhciBvPXQuZXZhbHVhdGUobik7clthKzBdPU1hdGguZmxvb3IoMjU1Km8uci9vLmEpLHJbYSsxXT1NYXRoLmZsb29yKDI1NSpvLmcvby5hKSxyW2ErMl09TWF0aC5mbG9vcigyNTUqby5iL28uYSksclthKzNdPU1hdGguZmxvb3IoMjU1Km8uYSl9cmV0dXJuIG5ldyBFbyh7d2lkdGg6MjU2LGhlaWdodDoxfSxyKX12YXIgUG89ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt0LmNhbGwodGhpcyxlLExvKSx0aGlzLl91cGRhdGVDb2xvclJhbXAoKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuY3JlYXRlQnVja2V0PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgVG8odCl9LGUucHJvdG90eXBlLl9oYW5kbGVTcGVjaWFsUGFpbnRQcm9wZXJ0eVVwZGF0ZT1mdW5jdGlvbih0KXsiaGVhdG1hcC1jb2xvciI9PT10JiZ0aGlzLl91cGRhdGVDb2xvclJhbXAoKX0sZS5wcm90b3R5cGUuX3VwZGF0ZUNvbG9yUmFtcD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX3RyYW5zaXRpb25hYmxlUGFpbnQuX3ZhbHVlc1siaGVhdG1hcC1jb2xvciJdLnZhbHVlLmV4cHJlc3Npb247dGhpcy5jb2xvclJhbXA9Q28odCwiaGVhdG1hcERlbnNpdHkiKSx0aGlzLmNvbG9yUmFtcFRleHR1cmU9bnVsbH0sZS5wcm90b3R5cGUucmVzaXplPWZ1bmN0aW9uKCl7dGhpcy5oZWF0bWFwRmJvJiYodGhpcy5oZWF0bWFwRmJvLmRlc3Ryb3koKSx0aGlzLmhlYXRtYXBGYm89bnVsbCl9LGUucHJvdG90eXBlLnF1ZXJ5UmFkaXVzPWZ1bmN0aW9uKCl7cmV0dXJuIDB9LGUucHJvdG90eXBlLnF1ZXJ5SW50ZXJzZWN0c0ZlYXR1cmU9ZnVuY3Rpb24oKXtyZXR1cm4hMX0sZS5wcm90b3R5cGUuaGFzT2Zmc2NyZWVuUGFzcz1mdW5jdGlvbigpe3JldHVybiAwIT09dGhpcy5wYWludC5nZXQoImhlYXRtYXAtb3BhY2l0eSIpJiYibm9uZSIhPT10aGlzLnZpc2liaWxpdHl9LGV9KEVpKSxJbz17cGFpbnQ6bmV3IFNpKHsiaGlsbHNoYWRlLWlsbHVtaW5hdGlvbi1kaXJlY3Rpb24iOm5ldyB3aShMdC5wYWludF9oaWxsc2hhZGVbImhpbGxzaGFkZS1pbGx1bWluYXRpb24tZGlyZWN0aW9uIl0pLCJoaWxsc2hhZGUtaWxsdW1pbmF0aW9uLWFuY2hvciI6bmV3IHdpKEx0LnBhaW50X2hpbGxzaGFkZVsiaGlsbHNoYWRlLWlsbHVtaW5hdGlvbi1hbmNob3IiXSksImhpbGxzaGFkZS1leGFnZ2VyYXRpb24iOm5ldyB3aShMdC5wYWludF9oaWxsc2hhZGVbImhpbGxzaGFkZS1leGFnZ2VyYXRpb24iXSksImhpbGxzaGFkZS1zaGFkb3ctY29sb3IiOm5ldyB3aShMdC5wYWludF9oaWxsc2hhZGVbImhpbGxzaGFkZS1zaGFkb3ctY29sb3IiXSksImhpbGxzaGFkZS1oaWdobGlnaHQtY29sb3IiOm5ldyB3aShMdC5wYWludF9oaWxsc2hhZGVbImhpbGxzaGFkZS1oaWdobGlnaHQtY29sb3IiXSksImhpbGxzaGFkZS1hY2NlbnQtY29sb3IiOm5ldyB3aShMdC5wYWludF9oaWxsc2hhZGVbImhpbGxzaGFkZS1hY2NlbnQtY29sb3IiXSl9KX0sT289ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt0LmNhbGwodGhpcyxlLElvKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuaGFzT2Zmc2NyZWVuUGFzcz1mdW5jdGlvbigpe3JldHVybiAwIT09dGhpcy5wYWludC5nZXQoImhpbGxzaGFkZS1leGFnZ2VyYXRpb24iKSYmIm5vbmUiIT09dGhpcy52aXNpYmlsaXR5fSxlfShFaSksem89SWkoW3tuYW1lOiJhX3BvcyIsY29tcG9uZW50czoyLHR5cGU6IkludDE2In1dLDQpLm1lbWJlcnMsRG89Rm8sUm89Rm87ZnVuY3Rpb24gRm8odCxlLHIpe3I9cnx8Mjt2YXIgbixpLGEsbyxzLGwsYyx1PWUmJmUubGVuZ3RoLGY9dT9lWzBdKnI6dC5sZW5ndGgsaD1Cbyh0LDAsZixyLCEwKSxwPVtdO2lmKCFofHxoLm5leHQ9PT1oLnByZXYpcmV0dXJuIHA7aWYodSYmKGg9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGksYSxvLHMsbCxjPVtdO2ZvcihpPTAsYT1lLmxlbmd0aDtpPGE7aSsrKW89ZVtpXSpuLHM9aTxhLTE/ZVtpKzFdKm46dC5sZW5ndGgsKGw9Qm8odCxvLHMsbiwhMSkpPT09bC5uZXh0JiYobC5zdGVpbmVyPSEwKSxjLnB1c2goWm8obCkpO2ZvcihjLnNvcnQoR28pLGk9MDtpPGMubGVuZ3RoO2krKylZbyhjW2ldLHIpLHI9Tm8ocixyLm5leHQpO3JldHVybiByfSh0LGUsaCxyKSksdC5sZW5ndGg+ODAqcil7bj1hPXRbMF0saT1vPXRbMV07Zm9yKHZhciBkPXI7ZDxmO2QrPXIpKHM9dFtkXSk8biYmKG49cyksKGw9dFtkKzFdKTxpJiYoaT1sKSxzPmEmJihhPXMpLGw+byYmKG89bCk7Yz0wIT09KGM9TWF0aC5tYXgoYS1uLG8taSkpPzEvYzowfXJldHVybiBqbyhoLHAscixuLGksYykscH1mdW5jdGlvbiBCbyh0LGUscixuLGkpe3ZhciBhLG87aWYoaT09PWxzKHQsZSxyLG4pPjApZm9yKGE9ZTthPHI7YSs9bilvPWFzKGEsdFthXSx0W2ErMV0sbyk7ZWxzZSBmb3IoYT1yLW47YT49ZTthLT1uKW89YXMoYSx0W2FdLHRbYSsxXSxvKTtyZXR1cm4gbyYmJG8obyxvLm5leHQpJiYob3Mobyksbz1vLm5leHQpLG99ZnVuY3Rpb24gTm8odCxlKXtpZighdClyZXR1cm4gdDtlfHwoZT10KTt2YXIgcixuPXQ7ZG97aWYocj0hMSxuLnN0ZWluZXJ8fCEkbyhuLG4ubmV4dCkmJjAhPT1RbyhuLnByZXYsbixuLm5leHQpKW49bi5uZXh0O2Vsc2V7aWYob3MobiksKG49ZT1uLnByZXYpPT09bi5uZXh0KWJyZWFrO3I9ITB9fXdoaWxlKHJ8fG4hPT1lKTtyZXR1cm4gZX1mdW5jdGlvbiBqbyh0LGUscixuLGksYSxvKXtpZih0KXshbyYmYSYmZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9dDtkb3tudWxsPT09aS56JiYoaS56PVhvKGkueCxpLnksZSxyLG4pKSxpLnByZXZaPWkucHJldixpLm5leHRaPWkubmV4dCxpPWkubmV4dH13aGlsZShpIT09dCk7aS5wcmV2Wi5uZXh0Wj1udWxsLGkucHJldlo9bnVsbCxmdW5jdGlvbih0KXt2YXIgZSxyLG4saSxhLG8scyxsLGM9MTtkb3tmb3Iocj10LHQ9bnVsbCxhPW51bGwsbz0wO3I7KXtmb3IobysrLG49cixzPTAsZT0wO2U8YyYmKHMrKyxuPW4ubmV4dFopO2UrKyk7Zm9yKGw9YztzPjB8fGw+MCYmbjspMCE9PXMmJigwPT09bHx8IW58fHIuejw9bi56KT8oaT1yLHI9ci5uZXh0WixzLS0pOihpPW4sbj1uLm5leHRaLGwtLSksYT9hLm5leHRaPWk6dD1pLGkucHJldlo9YSxhPWk7cj1ufWEubmV4dFo9bnVsbCxjKj0yfXdoaWxlKG8+MSl9KGkpfSh0LG4saSxhKTtmb3IodmFyIHMsbCxjPXQ7dC5wcmV2IT09dC5uZXh0OylpZihzPXQucHJldixsPXQubmV4dCxhP1ZvKHQsbixpLGEpOlVvKHQpKWUucHVzaChzLmkvciksZS5wdXNoKHQuaS9yKSxlLnB1c2gobC5pL3IpLG9zKHQpLHQ9bC5uZXh0LGM9bC5uZXh0O2Vsc2UgaWYoKHQ9bCk9PT1jKXtvPzE9PT1vP2pvKHQ9SG8oTm8odCksZSxyKSxlLHIsbixpLGEsMik6Mj09PW8mJnFvKHQsZSxyLG4saSxhKTpqbyhObyh0KSxlLHIsbixpLGEsMSk7YnJlYWt9fX1mdW5jdGlvbiBVbyh0KXt2YXIgZT10LnByZXYscj10LG49dC5uZXh0O2lmKFFvKGUscixuKT49MClyZXR1cm4hMTtmb3IodmFyIGk9dC5uZXh0Lm5leHQ7aSE9PXQucHJldjspe2lmKEpvKGUueCxlLnksci54LHIueSxuLngsbi55LGkueCxpLnkpJiZRbyhpLnByZXYsaSxpLm5leHQpPj0wKXJldHVybiExO2k9aS5uZXh0fXJldHVybiEwfWZ1bmN0aW9uIFZvKHQsZSxyLG4pe3ZhciBpPXQucHJldixhPXQsbz10Lm5leHQ7aWYoUW8oaSxhLG8pPj0wKXJldHVybiExO2Zvcih2YXIgcz1pLng8YS54P2kueDxvLng/aS54Om8ueDphLng8by54P2EueDpvLngsbD1pLnk8YS55P2kueTxvLnk/aS55Om8ueTphLnk8by55P2EueTpvLnksYz1pLng+YS54P2kueD5vLng/aS54Om8ueDphLng+by54P2EueDpvLngsdT1pLnk+YS55P2kueT5vLnk/aS55Om8ueTphLnk+by55P2EueTpvLnksZj1YbyhzLGwsZSxyLG4pLGg9WG8oYyx1LGUscixuKSxwPXQucHJldlosZD10Lm5leHRaO3AmJnAuej49ZiYmZCYmZC56PD1oOyl7aWYocCE9PXQucHJldiYmcCE9PXQubmV4dCYmSm8oaS54LGkueSxhLngsYS55LG8ueCxvLnkscC54LHAueSkmJlFvKHAucHJldixwLHAubmV4dCk+PTApcmV0dXJuITE7aWYocD1wLnByZXZaLGQhPT10LnByZXYmJmQhPT10Lm5leHQmJkpvKGkueCxpLnksYS54LGEueSxvLngsby55LGQueCxkLnkpJiZRbyhkLnByZXYsZCxkLm5leHQpPj0wKXJldHVybiExO2Q9ZC5uZXh0Wn1mb3IoO3AmJnAuej49Zjspe2lmKHAhPT10LnByZXYmJnAhPT10Lm5leHQmJkpvKGkueCxpLnksYS54LGEueSxvLngsby55LHAueCxwLnkpJiZRbyhwLnByZXYscCxwLm5leHQpPj0wKXJldHVybiExO3A9cC5wcmV2Wn1mb3IoO2QmJmQuejw9aDspe2lmKGQhPT10LnByZXYmJmQhPT10Lm5leHQmJkpvKGkueCxpLnksYS54LGEueSxvLngsby55LGQueCxkLnkpJiZRbyhkLnByZXYsZCxkLm5leHQpPj0wKXJldHVybiExO2Q9ZC5uZXh0Wn1yZXR1cm4hMH1mdW5jdGlvbiBIbyh0LGUscil7dmFyIG49dDtkb3t2YXIgaT1uLnByZXYsYT1uLm5leHQubmV4dDshJG8oaSxhKSYmdHMoaSxuLG4ubmV4dCxhKSYmbnMoaSxhKSYmbnMoYSxpKSYmKGUucHVzaChpLmkvciksZS5wdXNoKG4uaS9yKSxlLnB1c2goYS5pL3IpLG9zKG4pLG9zKG4ubmV4dCksbj10PWEpLG49bi5uZXh0fXdoaWxlKG4hPT10KTtyZXR1cm4gTm8obil9ZnVuY3Rpb24gcW8odCxlLHIsbixpLGEpe3ZhciBvPXQ7ZG97Zm9yKHZhciBzPW8ubmV4dC5uZXh0O3MhPT1vLnByZXY7KXtpZihvLmkhPT1zLmkmJktvKG8scykpe3ZhciBsPWlzKG8scyk7cmV0dXJuIG89Tm8obyxvLm5leHQpLGw9Tm8obCxsLm5leHQpLGpvKG8sZSxyLG4saSxhKSx2b2lkIGpvKGwsZSxyLG4saSxhKX1zPXMubmV4dH1vPW8ubmV4dH13aGlsZShvIT09dCl9ZnVuY3Rpb24gR28odCxlKXtyZXR1cm4gdC54LWUueH1mdW5jdGlvbiBZbyh0LGUpe2lmKGU9ZnVuY3Rpb24odCxlKXt2YXIgcixuPWUsaT10LngsYT10Lnksbz0tMS8wO2Rve2lmKGE8PW4ueSYmYT49bi5uZXh0LnkmJm4ubmV4dC55IT09bi55KXt2YXIgcz1uLngrKGEtbi55KSoobi5uZXh0Lngtbi54KS8obi5uZXh0Lnktbi55KTtpZihzPD1pJiZzPm8pe2lmKG89cyxzPT09aSl7aWYoYT09PW4ueSlyZXR1cm4gbjtpZihhPT09bi5uZXh0LnkpcmV0dXJuIG4ubmV4dH1yPW4ueDxuLm5leHQueD9uOm4ubmV4dH19bj1uLm5leHR9d2hpbGUobiE9PWUpO2lmKCFyKXJldHVybiBudWxsO2lmKGk9PT1vKXJldHVybiByO3ZhciBsLGM9cix1PXIueCxmPXIueSxoPTEvMDtuPXI7ZG97aT49bi54JiZuLng+PXUmJmkhPT1uLngmJkpvKGE8Zj9pOm8sYSx1LGYsYTxmP286aSxhLG4ueCxuLnkpJiYobD1NYXRoLmFicyhhLW4ueSkvKGktbi54KSxucyhuLHQpJiYobDxofHxsPT09aCYmKG4ueD5yLnh8fG4ueD09PXIueCYmV28ocixuKSkpJiYocj1uLGg9bCkpLG49bi5uZXh0fXdoaWxlKG4hPT1jKTtyZXR1cm4gcn0odCxlKSl7dmFyIHI9aXMoZSx0KTtObyhlLGUubmV4dCksTm8ocixyLm5leHQpfX1mdW5jdGlvbiBXbyh0LGUpe3JldHVybiBRbyh0LnByZXYsdCxlLnByZXYpPDAmJlFvKGUubmV4dCx0LHQubmV4dCk8MH1mdW5jdGlvbiBYbyh0LGUscixuLGkpe3JldHVybih0PTE0MzE2NTU3NjUmKCh0PTg1ODk5MzQ1OSYoKHQ9MjUyNjQ1MTM1JigodD0xNjcxMTkzNSYoKHQ9MzI3NjcqKHQtcikqaSl8dDw8OCkpfHQ8PDQpKXx0PDwyKSl8dDw8MSkpfChlPTE0MzE2NTU3NjUmKChlPTg1ODk5MzQ1OSYoKGU9MjUyNjQ1MTM1JigoZT0xNjcxMTkzNSYoKGU9MzI3NjcqKGUtbikqaSl8ZTw8OCkpfGU8PDQpKXxlPDwyKSl8ZTw8MSkpPDwxfWZ1bmN0aW9uIFpvKHQpe3ZhciBlPXQscj10O2RveyhlLng8ci54fHxlLng9PT1yLngmJmUueTxyLnkpJiYocj1lKSxlPWUubmV4dH13aGlsZShlIT09dCk7cmV0dXJuIHJ9ZnVuY3Rpb24gSm8odCxlLHIsbixpLGEsbyxzKXtyZXR1cm4oaS1vKSooZS1zKS0odC1vKSooYS1zKT49MCYmKHQtbykqKG4tcyktKHItbykqKGUtcyk+PTAmJihyLW8pKihhLXMpLShpLW8pKihuLXMpPj0wfWZ1bmN0aW9uIEtvKHQsZSl7cmV0dXJuIHQubmV4dC5pIT09ZS5pJiZ0LnByZXYuaSE9PWUuaSYmIWZ1bmN0aW9uKHQsZSl7dmFyIHI9dDtkb3tpZihyLmkhPT10LmkmJnIubmV4dC5pIT09dC5pJiZyLmkhPT1lLmkmJnIubmV4dC5pIT09ZS5pJiZ0cyhyLHIubmV4dCx0LGUpKXJldHVybiEwO3I9ci5uZXh0fXdoaWxlKHIhPT10KTtyZXR1cm4hMX0odCxlKSYmKG5zKHQsZSkmJm5zKGUsdCkmJmZ1bmN0aW9uKHQsZSl7dmFyIHI9dCxuPSExLGk9KHQueCtlLngpLzIsYT0odC55K2UueSkvMjtkb3tyLnk+YSE9ci5uZXh0Lnk+YSYmci5uZXh0LnkhPT1yLnkmJmk8KHIubmV4dC54LXIueCkqKGEtci55KS8oci5uZXh0Lnktci55KStyLngmJihuPSFuKSxyPXIubmV4dH13aGlsZShyIT09dCk7cmV0dXJuIG59KHQsZSkmJihRbyh0LnByZXYsdCxlLnByZXYpfHxRbyh0LGUucHJldixlKSl8fCRvKHQsZSkmJlFvKHQucHJldix0LHQubmV4dCk+MCYmUW8oZS5wcmV2LGUsZS5uZXh0KT4wKX1mdW5jdGlvbiBRbyh0LGUscil7cmV0dXJuKGUueS10LnkpKihyLngtZS54KS0oZS54LXQueCkqKHIueS1lLnkpfWZ1bmN0aW9uICRvKHQsZSl7cmV0dXJuIHQueD09PWUueCYmdC55PT09ZS55fWZ1bmN0aW9uIHRzKHQsZSxyLG4pe3ZhciBpPXJzKFFvKHQsZSxyKSksYT1ycyhRbyh0LGUsbikpLG89cnMoUW8ocixuLHQpKSxzPXJzKFFvKHIsbixlKSk7cmV0dXJuIGkhPT1hJiZvIT09c3x8KCEoMCE9PWl8fCFlcyh0LHIsZSkpfHwoISgwIT09YXx8IWVzKHQsbixlKSl8fCghKDAhPT1vfHwhZXMocix0LG4pKXx8ISgwIT09c3x8IWVzKHIsZSxuKSkpKSl9ZnVuY3Rpb24gZXModCxlLHIpe3JldHVybiBlLng8PU1hdGgubWF4KHQueCxyLngpJiZlLng+PU1hdGgubWluKHQueCxyLngpJiZlLnk8PU1hdGgubWF4KHQueSxyLnkpJiZlLnk+PU1hdGgubWluKHQueSxyLnkpfWZ1bmN0aW9uIHJzKHQpe3JldHVybiB0PjA/MTp0PDA/LTE6MH1mdW5jdGlvbiBucyh0LGUpe3JldHVybiBRbyh0LnByZXYsdCx0Lm5leHQpPDA/UW8odCxlLHQubmV4dCk+PTAmJlFvKHQsdC5wcmV2LGUpPj0wOlFvKHQsZSx0LnByZXYpPDB8fFFvKHQsdC5uZXh0LGUpPDB9ZnVuY3Rpb24gaXModCxlKXt2YXIgcj1uZXcgc3ModC5pLHQueCx0LnkpLG49bmV3IHNzKGUuaSxlLngsZS55KSxpPXQubmV4dCxhPWUucHJldjtyZXR1cm4gdC5uZXh0PWUsZS5wcmV2PXQsci5uZXh0PWksaS5wcmV2PXIsbi5uZXh0PXIsci5wcmV2PW4sYS5uZXh0PW4sbi5wcmV2PWEsbn1mdW5jdGlvbiBhcyh0LGUscixuKXt2YXIgaT1uZXcgc3ModCxlLHIpO3JldHVybiBuPyhpLm5leHQ9bi5uZXh0LGkucHJldj1uLG4ubmV4dC5wcmV2PWksbi5uZXh0PWkpOihpLnByZXY9aSxpLm5leHQ9aSksaX1mdW5jdGlvbiBvcyh0KXt0Lm5leHQucHJldj10LnByZXYsdC5wcmV2Lm5leHQ9dC5uZXh0LHQucHJldlomJih0LnByZXZaLm5leHRaPXQubmV4dFopLHQubmV4dFomJih0Lm5leHRaLnByZXZaPXQucHJldlopfWZ1bmN0aW9uIHNzKHQsZSxyKXt0aGlzLmk9dCx0aGlzLng9ZSx0aGlzLnk9cix0aGlzLnByZXY9bnVsbCx0aGlzLm5leHQ9bnVsbCx0aGlzLno9bnVsbCx0aGlzLnByZXZaPW51bGwsdGhpcy5uZXh0Wj1udWxsLHRoaXMuc3RlaW5lcj0hMX1mdW5jdGlvbiBscyh0LGUscixuKXtmb3IodmFyIGk9MCxhPWUsbz1yLW47YTxyO2ErPW4paSs9KHRbb10tdFthXSkqKHRbYSsxXSt0W28rMV0pLG89YTtyZXR1cm4gaX1mdW5jdGlvbiBjcyh0LGUscixuLGkpeyFmdW5jdGlvbiB0KGUscixuLGksYSl7Zm9yKDtpPm47KXtpZihpLW4+NjAwKXt2YXIgbz1pLW4rMSxzPXItbisxLGw9TWF0aC5sb2cobyksYz0uNSpNYXRoLmV4cCgyKmwvMyksdT0uNSpNYXRoLnNxcnQobCpjKihvLWMpL28pKihzLW8vMjwwPy0xOjEpLGY9TWF0aC5tYXgobixNYXRoLmZsb29yKHItcypjL28rdSkpLGg9TWF0aC5taW4oaSxNYXRoLmZsb29yKHIrKG8tcykqYy9vK3UpKTt0KGUscixmLGgsYSl9dmFyIHA9ZVtyXSxkPW4sbT1pO2Zvcih1cyhlLG4sciksYShlW2ldLHApPjAmJnVzKGUsbixpKTtkPG07KXtmb3IodXMoZSxkLG0pLGQrKyxtLS07YShlW2RdLHApPDA7KWQrKztmb3IoO2EoZVttXSxwKT4wOyltLS19MD09PWEoZVtuXSxwKT91cyhlLG4sbSk6KG0rKyx1cyhlLG0saSkpLG08PXImJihuPW0rMSkscjw9bSYmKGk9bS0xKX19KHQsZSxyfHwwLG58fHQubGVuZ3RoLTEsaXx8ZnMpfWZ1bmN0aW9uIHVzKHQsZSxyKXt2YXIgbj10W2VdO3RbZV09dFtyXSx0W3JdPW59ZnVuY3Rpb24gZnModCxlKXtyZXR1cm4gdDxlPy0xOnQ+ZT8xOjB9ZnVuY3Rpb24gaHModCxlKXt2YXIgcj10Lmxlbmd0aDtpZihyPD0xKXJldHVyblt0XTtmb3IodmFyIG4saSxhPVtdLG89MDtvPHI7bysrKXt2YXIgcz1UKHRbb10pOzAhPT1zJiYodFtvXS5hcmVhPU1hdGguYWJzKHMpLHZvaWQgMD09PWkmJihpPXM8MCksaT09PXM8MD8obiYmYS5wdXNoKG4pLG49W3Rbb11dKTpuLnB1c2godFtvXSkpfWlmKG4mJmEucHVzaChuKSxlPjEpZm9yKHZhciBsPTA7bDxhLmxlbmd0aDtsKyspYVtsXS5sZW5ndGg8PWV8fChjcyhhW2xdLGUsMSxhW2xdLmxlbmd0aC0xLHBzKSxhW2xdPWFbbF0uc2xpY2UoMCxlKSk7cmV0dXJuIGF9ZnVuY3Rpb24gcHModCxlKXtyZXR1cm4gZS5hcmVhLXQuYXJlYX1mdW5jdGlvbiBkcyh0LGUscil7Zm9yKHZhciBuPXIucGF0dGVybkRlcGVuZGVuY2llcyxpPSExLGE9MCxvPWU7YTxvLmxlbmd0aDthKz0xKXt2YXIgcz1vW2FdLnBhaW50LmdldCh0KyItcGF0dGVybiIpO3MuaXNDb25zdGFudCgpfHwoaT0hMCk7dmFyIGw9cy5jb25zdGFudE9yKG51bGwpO2wmJihpPSEwLG5bbC50b109ITAsbltsLmZyb21dPSEwKX1yZXR1cm4gaX1mdW5jdGlvbiBtcyh0LGUscixuLGkpe2Zvcih2YXIgYT1pLnBhdHRlcm5EZXBlbmRlbmNpZXMsbz0wLHM9ZTtvPHMubGVuZ3RoO28rPTEpe3ZhciBsPXNbb10sYz1sLnBhaW50LmdldCh0KyItcGF0dGVybiIpLnZhbHVlO2lmKCJjb25zdGFudCIhPT1jLmtpbmQpe3ZhciB1PWMuZXZhbHVhdGUoe3pvb206bi0xfSxyLHt9LGkuYXZhaWxhYmxlSW1hZ2VzKSxmPWMuZXZhbHVhdGUoe3pvb206bn0scix7fSxpLmF2YWlsYWJsZUltYWdlcyksaD1jLmV2YWx1YXRlKHt6b29tOm4rMX0scix7fSxpLmF2YWlsYWJsZUltYWdlcyk7dT11JiZ1Lm5hbWU/dS5uYW1lOnUsZj1mJiZmLm5hbWU/Zi5uYW1lOmYsaD1oJiZoLm5hbWU/aC5uYW1lOmgsYVt1XT0hMCxhW2ZdPSEwLGFbaF09ITAsci5wYXR0ZXJuc1tsLmlkXT17bWluOnUsbWlkOmYsbWF4Omh9fX1yZXR1cm4gcn1Gby5kZXZpYXRpb249ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9ZSYmZS5sZW5ndGgsYT1pP2VbMF0qcjp0Lmxlbmd0aCxvPU1hdGguYWJzKGxzKHQsMCxhLHIpKTtpZihpKWZvcih2YXIgcz0wLGw9ZS5sZW5ndGg7czxsO3MrKyl7dmFyIGM9ZVtzXSpyLHU9czxsLTE/ZVtzKzFdKnI6dC5sZW5ndGg7by09TWF0aC5hYnMobHModCxjLHUscikpfXZhciBmPTA7Zm9yKHM9MDtzPG4ubGVuZ3RoO3MrPTMpe3ZhciBoPW5bc10qcixwPW5bcysxXSpyLGQ9bltzKzJdKnI7Zis9TWF0aC5hYnMoKHRbaF0tdFtkXSkqKHRbcCsxXS10W2grMV0pLSh0W2hdLXRbcF0pKih0W2QrMV0tdFtoKzFdKSl9cmV0dXJuIDA9PT1vJiYwPT09Zj8wOk1hdGguYWJzKChmLW8pL28pfSxGby5mbGF0dGVuPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10WzBdWzBdLmxlbmd0aCxyPXt2ZXJ0aWNlczpbXSxob2xlczpbXSxkaW1lbnNpb25zOmV9LG49MCxpPTA7aTx0Lmxlbmd0aDtpKyspe2Zvcih2YXIgYT0wO2E8dFtpXS5sZW5ndGg7YSsrKWZvcih2YXIgbz0wO288ZTtvKyspci52ZXJ0aWNlcy5wdXNoKHRbaV1bYV1bb10pO2k+MCYmKG4rPXRbaS0xXS5sZW5ndGgsci5ob2xlcy5wdXNoKG4pKX1yZXR1cm4gcn0sRG8uZGVmYXVsdD1Sbzt2YXIgZ3M9ZnVuY3Rpb24odCl7dGhpcy56b29tPXQuem9vbSx0aGlzLm92ZXJzY2FsaW5nPXQub3ZlcnNjYWxpbmcsdGhpcy5sYXllcnM9dC5sYXllcnMsdGhpcy5sYXllcklkcz10aGlzLmxheWVycy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkfSkpLHRoaXMuaW5kZXg9dC5pbmRleCx0aGlzLmhhc1BhdHRlcm49ITEsdGhpcy5wYXR0ZXJuRmVhdHVyZXM9W10sdGhpcy5sYXlvdXRWZXJ0ZXhBcnJheT1uZXcgemksdGhpcy5pbmRleEFycmF5PW5ldyBZaSx0aGlzLmluZGV4QXJyYXkyPW5ldyBRaSx0aGlzLnByb2dyYW1Db25maWd1cmF0aW9ucz1uZXcgVWEoem8sdC5sYXllcnMsdC56b29tKSx0aGlzLnNlZ21lbnRzPW5ldyBwYSx0aGlzLnNlZ21lbnRzMj1uZXcgcGEsdGhpcy5zdGF0ZURlcGVuZGVudExheWVySWRzPXRoaXMubGF5ZXJzLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQuaXNTdGF0ZURlcGVuZGVudCgpfSkpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWR9KSl9O2dzLnByb3RvdHlwZS5wb3B1bGF0ZT1mdW5jdGlvbih0LGUscil7dGhpcy5oYXNQYXR0ZXJuPWRzKCJmaWxsIix0aGlzLmxheWVycyxlKTtmb3IodmFyIG49dGhpcy5sYXllcnNbMF0ubGF5b3V0LmdldCgiZmlsbC1zb3J0LWtleSIpLGk9W10sYT0wLG89dDthPG8ubGVuZ3RoO2ErPTEpe3ZhciBzPW9bYV0sbD1zLmZlYXR1cmUsYz1zLmlkLHU9cy5pbmRleCxmPXMuc291cmNlTGF5ZXJJbmRleCxoPXRoaXMubGF5ZXJzWzBdLl9mZWF0dXJlRmlsdGVyLm5lZWRHZW9tZXRyeSxwPXt0eXBlOmwudHlwZSxpZDpjLHByb3BlcnRpZXM6bC5wcm9wZXJ0aWVzLGdlb21ldHJ5Omg/WWEobCk6W119O2lmKHRoaXMubGF5ZXJzWzBdLl9mZWF0dXJlRmlsdGVyLmZpbHRlcihuZXcgcGkodGhpcy56b29tKSxwLHIpKXtofHwocC5nZW9tZXRyeT1ZYShsKSk7dmFyIGQ9bj9uLmV2YWx1YXRlKHAse30scixlLmF2YWlsYWJsZUltYWdlcyk6dm9pZCAwLG09e2lkOmMscHJvcGVydGllczpsLnByb3BlcnRpZXMsdHlwZTpsLnR5cGUsc291cmNlTGF5ZXJJbmRleDpmLGluZGV4OnUsZ2VvbWV0cnk6cC5nZW9tZXRyeSxwYXR0ZXJuczp7fSxzb3J0S2V5OmR9O2kucHVzaChtKX19biYmaS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0LnNvcnRLZXktZS5zb3J0S2V5fSkpO2Zvcih2YXIgZz0wLHY9aTtnPHYubGVuZ3RoO2crPTEpe3ZhciB5PXZbZ10seD15LGI9eC5nZW9tZXRyeSxfPXguaW5kZXgsdz14LnNvdXJjZUxheWVySW5kZXg7aWYodGhpcy5oYXNQYXR0ZXJuKXt2YXIgVD1tcygiZmlsbCIsdGhpcy5sYXllcnMseSx0aGlzLnpvb20sZSk7dGhpcy5wYXR0ZXJuRmVhdHVyZXMucHVzaChUKX1lbHNlIHRoaXMuYWRkRmVhdHVyZSh5LGIsXyxyLHt9KTt2YXIgaz10W19dLmZlYXR1cmU7ZS5mZWF0dXJlSW5kZXguaW5zZXJ0KGssYixfLHcsdGhpcy5pbmRleCl9fSxncy5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLnN0YXRlRGVwZW5kZW50TGF5ZXJzLmxlbmd0aCYmdGhpcy5wcm9ncmFtQ29uZmlndXJhdGlvbnMudXBkYXRlUGFpbnRBcnJheXModCxlLHRoaXMuc3RhdGVEZXBlbmRlbnRMYXllcnMscil9LGdzLnByb3RvdHlwZS5hZGRGZWF0dXJlcz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuPTAsaT10aGlzLnBhdHRlcm5GZWF0dXJlcztuPGkubGVuZ3RoO24rPTEpe3ZhciBhPWlbbl07dGhpcy5hZGRGZWF0dXJlKGEsYS5nZW9tZXRyeSxhLmluZGV4LGUscil9fSxncy5wcm90b3R5cGUuaXNFbXB0eT1mdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5sYXlvdXRWZXJ0ZXhBcnJheS5sZW5ndGh9LGdzLnByb3RvdHlwZS51cGxvYWRQZW5kaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMudXBsb2FkZWR8fHRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLm5lZWRzVXBsb2FkfSxncy5wcm90b3R5cGUudXBsb2FkPWZ1bmN0aW9uKHQpe3RoaXMudXBsb2FkZWR8fCh0aGlzLmxheW91dFZlcnRleEJ1ZmZlcj10LmNyZWF0ZVZlcnRleEJ1ZmZlcih0aGlzLmxheW91dFZlcnRleEFycmF5LHpvKSx0aGlzLmluZGV4QnVmZmVyPXQuY3JlYXRlSW5kZXhCdWZmZXIodGhpcy5pbmRleEFycmF5KSx0aGlzLmluZGV4QnVmZmVyMj10LmNyZWF0ZUluZGV4QnVmZmVyKHRoaXMuaW5kZXhBcnJheTIpKSx0aGlzLnByb2dyYW1Db25maWd1cmF0aW9ucy51cGxvYWQodCksdGhpcy51cGxvYWRlZD0hMH0sZ3MucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt0aGlzLmxheW91dFZlcnRleEJ1ZmZlciYmKHRoaXMubGF5b3V0VmVydGV4QnVmZmVyLmRlc3Ryb3koKSx0aGlzLmluZGV4QnVmZmVyLmRlc3Ryb3koKSx0aGlzLmluZGV4QnVmZmVyMi5kZXN0cm95KCksdGhpcy5wcm9ncmFtQ29uZmlndXJhdGlvbnMuZGVzdHJveSgpLHRoaXMuc2VnbWVudHMuZGVzdHJveSgpLHRoaXMuc2VnbWVudHMyLmRlc3Ryb3koKSl9LGdzLnByb3RvdHlwZS5hZGRGZWF0dXJlPWZ1bmN0aW9uKHQsZSxyLG4saSl7Zm9yKHZhciBhPTAsbz1ocyhlLDUwMCk7YTxvLmxlbmd0aDthKz0xKXtmb3IodmFyIHM9b1thXSxsPTAsYz0wLHU9cztjPHUubGVuZ3RoO2MrPTEpe2wrPXVbY10ubGVuZ3RofWZvcih2YXIgZj10aGlzLnNlZ21lbnRzLnByZXBhcmVTZWdtZW50KGwsdGhpcy5sYXlvdXRWZXJ0ZXhBcnJheSx0aGlzLmluZGV4QXJyYXkpLGg9Zi52ZXJ0ZXhMZW5ndGgscD1bXSxkPVtdLG09MCxnPXM7bTxnLmxlbmd0aDttKz0xKXt2YXIgdj1nW21dO2lmKDAhPT12Lmxlbmd0aCl7diE9PXNbMF0mJmQucHVzaChwLmxlbmd0aC8yKTt2YXIgeT10aGlzLnNlZ21lbnRzMi5wcmVwYXJlU2VnbWVudCh2Lmxlbmd0aCx0aGlzLmxheW91dFZlcnRleEFycmF5LHRoaXMuaW5kZXhBcnJheTIpLHg9eS52ZXJ0ZXhMZW5ndGg7dGhpcy5sYXlvdXRWZXJ0ZXhBcnJheS5lbXBsYWNlQmFjayh2WzBdLngsdlswXS55KSx0aGlzLmluZGV4QXJyYXkyLmVtcGxhY2VCYWNrKHgrdi5sZW5ndGgtMSx4KSxwLnB1c2godlswXS54KSxwLnB1c2godlswXS55KTtmb3IodmFyIGI9MTtiPHYubGVuZ3RoO2IrKyl0aGlzLmxheW91dFZlcnRleEFycmF5LmVtcGxhY2VCYWNrKHZbYl0ueCx2W2JdLnkpLHRoaXMuaW5kZXhBcnJheTIuZW1wbGFjZUJhY2soeCtiLTEseCtiKSxwLnB1c2godltiXS54KSxwLnB1c2godltiXS55KTt5LnZlcnRleExlbmd0aCs9di5sZW5ndGgseS5wcmltaXRpdmVMZW5ndGgrPXYubGVuZ3RofX1mb3IodmFyIF89RG8ocCxkKSx3PTA7dzxfLmxlbmd0aDt3Kz0zKXRoaXMuaW5kZXhBcnJheS5lbXBsYWNlQmFjayhoK19bd10saCtfW3crMV0saCtfW3crMl0pO2YudmVydGV4TGVuZ3RoKz1sLGYucHJpbWl0aXZlTGVuZ3RoKz1fLmxlbmd0aC8zfXRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLnBvcHVsYXRlUGFpbnRBcnJheXModGhpcy5sYXlvdXRWZXJ0ZXhBcnJheS5sZW5ndGgsdCxyLGksbil9LE5uKCJGaWxsQnVja2V0Iixncyx7b21pdDpbImxheWVycyIsInBhdHRlcm5GZWF0dXJlcyJdfSk7dmFyIHZzPW5ldyBTaSh7ImZpbGwtc29ydC1rZXkiOm5ldyBUaShMdC5sYXlvdXRfZmlsbFsiZmlsbC1zb3J0LWtleSJdKX0pLHlzPXtwYWludDpuZXcgU2koeyJmaWxsLWFudGlhbGlhcyI6bmV3IHdpKEx0LnBhaW50X2ZpbGxbImZpbGwtYW50aWFsaWFzIl0pLCJmaWxsLW9wYWNpdHkiOm5ldyBUaShMdC5wYWludF9maWxsWyJmaWxsLW9wYWNpdHkiXSksImZpbGwtY29sb3IiOm5ldyBUaShMdC5wYWludF9maWxsWyJmaWxsLWNvbG9yIl0pLCJmaWxsLW91dGxpbmUtY29sb3IiOm5ldyBUaShMdC5wYWludF9maWxsWyJmaWxsLW91dGxpbmUtY29sb3IiXSksImZpbGwtdHJhbnNsYXRlIjpuZXcgd2koTHQucGFpbnRfZmlsbFsiZmlsbC10cmFuc2xhdGUiXSksImZpbGwtdHJhbnNsYXRlLWFuY2hvciI6bmV3IHdpKEx0LnBhaW50X2ZpbGxbImZpbGwtdHJhbnNsYXRlLWFuY2hvciJdKSwiZmlsbC1wYXR0ZXJuIjpuZXcga2koTHQucGFpbnRfZmlsbFsiZmlsbC1wYXR0ZXJuIl0pfSksbGF5b3V0OnZzfSx4cz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3QuY2FsbCh0aGlzLGUseXMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5yZWNhbGN1bGF0ZT1mdW5jdGlvbihlLHIpe3QucHJvdG90eXBlLnJlY2FsY3VsYXRlLmNhbGwodGhpcyxlLHIpO3ZhciBuPXRoaXMucGFpbnQuX3ZhbHVlc1siZmlsbC1vdXRsaW5lLWNvbG9yIl07ImNvbnN0YW50Ij09PW4udmFsdWUua2luZCYmdm9pZCAwPT09bi52YWx1ZS52YWx1ZSYmKHRoaXMucGFpbnQuX3ZhbHVlc1siZmlsbC1vdXRsaW5lLWNvbG9yIl09dGhpcy5wYWludC5fdmFsdWVzWyJmaWxsLWNvbG9yIl0pfSxlLnByb3RvdHlwZS5jcmVhdGVCdWNrZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBncyh0KX0sZS5wcm90b3R5cGUucXVlcnlSYWRpdXM9ZnVuY3Rpb24oKXtyZXR1cm4gc28odGhpcy5wYWludC5nZXQoImZpbGwtdHJhbnNsYXRlIikpfSxlLnByb3RvdHlwZS5xdWVyeUludGVyc2VjdHNGZWF0dXJlPWZ1bmN0aW9uKHQsZSxyLG4saSxhLG8pe3JldHVybiBLYShsbyh0LHRoaXMucGFpbnQuZ2V0KCJmaWxsLXRyYW5zbGF0ZSIpLHRoaXMucGFpbnQuZ2V0KCJmaWxsLXRyYW5zbGF0ZS1hbmNob3IiKSxhLmFuZ2xlLG8pLG4pfSxlLnByb3RvdHlwZS5pc1RpbGVDbGlwcGVkPWZ1bmN0aW9uKCl7cmV0dXJuITB9LGV9KEVpKSxicz1JaShbe25hbWU6ImFfcG9zIixjb21wb25lbnRzOjIsdHlwZToiSW50MTYifSx7bmFtZToiYV9ub3JtYWxfZWQiLGNvbXBvbmVudHM6NCx0eXBlOiJJbnQxNiJ9XSw0KS5tZW1iZXJzLF9zPXdzO2Z1bmN0aW9uIHdzKHQsZSxyLG4saSl7dGhpcy5wcm9wZXJ0aWVzPXt9LHRoaXMuZXh0ZW50PXIsdGhpcy50eXBlPTAsdGhpcy5fcGJmPXQsdGhpcy5fZ2VvbWV0cnk9LTEsdGhpcy5fa2V5cz1uLHRoaXMuX3ZhbHVlcz1pLHQucmVhZEZpZWxkcyhUcyx0aGlzLGUpfWZ1bmN0aW9uIFRzKHQsZSxyKXsxPT10P2UuaWQ9ci5yZWFkVmFyaW50KCk6Mj09dD9mdW5jdGlvbih0LGUpe3ZhciByPXQucmVhZFZhcmludCgpK3QucG9zO2Zvcig7dC5wb3M8cjspe3ZhciBuPWUuX2tleXNbdC5yZWFkVmFyaW50KCldLGk9ZS5fdmFsdWVzW3QucmVhZFZhcmludCgpXTtlLnByb3BlcnRpZXNbbl09aX19KHIsZSk6Mz09dD9lLnR5cGU9ci5yZWFkVmFyaW50KCk6ND09dCYmKGUuX2dlb21ldHJ5PXIucG9zKX1mdW5jdGlvbiBrcyh0KXtmb3IodmFyIGUscixuPTAsaT0wLGE9dC5sZW5ndGgsbz1hLTE7aTxhO289aSsrKWU9dFtpXSxuKz0oKHI9dFtvXSkueC1lLngpKihlLnkrci55KTtyZXR1cm4gbn13cy50eXBlcz1bIlVua25vd24iLCJQb2ludCIsIkxpbmVTdHJpbmciLCJQb2x5Z29uIl0sd3MucHJvdG90eXBlLmxvYWRHZW9tZXRyeT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX3BiZjt0LnBvcz10aGlzLl9nZW9tZXRyeTtmb3IodmFyIGUscj10LnJlYWRWYXJpbnQoKSt0LnBvcyxuPTEsYT0wLG89MCxzPTAsbD1bXTt0LnBvczxyOyl7aWYoYTw9MCl7dmFyIGM9dC5yZWFkVmFyaW50KCk7bj03JmMsYT1jPj4zfWlmKGEtLSwxPT09bnx8Mj09PW4pbys9dC5yZWFkU1ZhcmludCgpLHMrPXQucmVhZFNWYXJpbnQoKSwxPT09biYmKGUmJmwucHVzaChlKSxlPVtdKSxlLnB1c2gobmV3IGkobyxzKSk7ZWxzZXtpZig3IT09bil0aHJvdyBuZXcgRXJyb3IoInVua25vd24gY29tbWFuZCAiK24pO2UmJmUucHVzaChlWzBdLmNsb25lKCkpfX1yZXR1cm4gZSYmbC5wdXNoKGUpLGx9LHdzLnByb3RvdHlwZS5iYm94PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fcGJmO3QucG9zPXRoaXMuX2dlb21ldHJ5O2Zvcih2YXIgZT10LnJlYWRWYXJpbnQoKSt0LnBvcyxyPTEsbj0wLGk9MCxhPTAsbz0xLzAscz0tMS8wLGw9MS8wLGM9LTEvMDt0LnBvczxlOyl7aWYobjw9MCl7dmFyIHU9dC5yZWFkVmFyaW50KCk7cj03JnUsbj11Pj4zfWlmKG4tLSwxPT09cnx8Mj09PXIpKGkrPXQucmVhZFNWYXJpbnQoKSk8byYmKG89aSksaT5zJiYocz1pKSwoYSs9dC5yZWFkU1ZhcmludCgpKTxsJiYobD1hKSxhPmMmJihjPWEpO2Vsc2UgaWYoNyE9PXIpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIGNvbW1hbmQgIityKX1yZXR1cm5bbyxsLHMsY119LHdzLnByb3RvdHlwZS50b0dlb0pTT049ZnVuY3Rpb24odCxlLHIpe3ZhciBuLGksYT10aGlzLmV4dGVudCpNYXRoLnBvdygyLHIpLG89dGhpcy5leHRlbnQqdCxzPXRoaXMuZXh0ZW50KmUsbD10aGlzLmxvYWRHZW9tZXRyeSgpLGM9d3MudHlwZXNbdGhpcy50eXBlXTtmdW5jdGlvbiB1KHQpe2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXt2YXIgcj10W2VdLG49MTgwLTM2MCooci55K3MpL2E7dFtlXT1bMzYwKihyLngrbykvYS0xODAsMzYwL01hdGguUEkqTWF0aC5hdGFuKE1hdGguZXhwKG4qTWF0aC5QSS8xODApKS05MF19fXN3aXRjaCh0aGlzLnR5cGUpe2Nhc2UgMTp2YXIgZj1bXTtmb3Iobj0wO248bC5sZW5ndGg7bisrKWZbbl09bFtuXVswXTt1KGw9Zik7YnJlYWs7Y2FzZSAyOmZvcihuPTA7bjxsLmxlbmd0aDtuKyspdShsW25dKTticmVhaztjYXNlIDM6Zm9yKGw9ZnVuY3Rpb24odCl7dmFyIGU9dC5sZW5ndGg7aWYoZTw9MSlyZXR1cm5bdF07Zm9yKHZhciByLG4saT1bXSxhPTA7YTxlO2ErKyl7dmFyIG89a3ModFthXSk7MCE9PW8mJih2b2lkIDA9PT1uJiYobj1vPDApLG49PT1vPDA/KHImJmkucHVzaChyKSxyPVt0W2FdXSk6ci5wdXNoKHRbYV0pKX1yJiZpLnB1c2gocik7cmV0dXJuIGl9KGwpLG49MDtuPGwubGVuZ3RoO24rKylmb3IoaT0wO2k8bFtuXS5sZW5ndGg7aSsrKXUobFtuXVtpXSl9MT09PWwubGVuZ3RoP2w9bFswXTpjPSJNdWx0aSIrYzt2YXIgaD17dHlwZToiRmVhdHVyZSIsZ2VvbWV0cnk6e3R5cGU6Yyxjb29yZGluYXRlczpsfSxwcm9wZXJ0aWVzOnRoaXMucHJvcGVydGllc307cmV0dXJuImlkImluIHRoaXMmJihoLmlkPXRoaXMuaWQpLGh9O3ZhciBBcz1NcztmdW5jdGlvbiBNcyh0LGUpe3RoaXMudmVyc2lvbj0xLHRoaXMubmFtZT1udWxsLHRoaXMuZXh0ZW50PTQwOTYsdGhpcy5sZW5ndGg9MCx0aGlzLl9wYmY9dCx0aGlzLl9rZXlzPVtdLHRoaXMuX3ZhbHVlcz1bXSx0aGlzLl9mZWF0dXJlcz1bXSx0LnJlYWRGaWVsZHMoU3MsdGhpcyxlKSx0aGlzLmxlbmd0aD10aGlzLl9mZWF0dXJlcy5sZW5ndGh9ZnVuY3Rpb24gU3ModCxlLHIpezE1PT09dD9lLnZlcnNpb249ci5yZWFkVmFyaW50KCk6MT09PXQ/ZS5uYW1lPXIucmVhZFN0cmluZygpOjU9PT10P2UuZXh0ZW50PXIucmVhZFZhcmludCgpOjI9PT10P2UuX2ZlYXR1cmVzLnB1c2goci5wb3MpOjM9PT10P2UuX2tleXMucHVzaChyLnJlYWRTdHJpbmcoKSk6ND09PXQmJmUuX3ZhbHVlcy5wdXNoKGZ1bmN0aW9uKHQpe3ZhciBlPW51bGwscj10LnJlYWRWYXJpbnQoKSt0LnBvcztmb3IoO3QucG9zPHI7KXt2YXIgbj10LnJlYWRWYXJpbnQoKT4+MztlPTE9PT1uP3QucmVhZFN0cmluZygpOjI9PT1uP3QucmVhZEZsb2F0KCk6Mz09PW4/dC5yZWFkRG91YmxlKCk6ND09PW4/dC5yZWFkVmFyaW50NjQoKTo1PT09bj90LnJlYWRWYXJpbnQoKTo2PT09bj90LnJlYWRTVmFyaW50KCk6Nz09PW4/dC5yZWFkQm9vbGVhbigpOm51bGx9cmV0dXJuIGV9KHIpKX1mdW5jdGlvbiBFcyh0LGUscil7aWYoMz09PXQpe3ZhciBuPW5ldyBBcyhyLHIucmVhZFZhcmludCgpK3IucG9zKTtuLmxlbmd0aCYmKGVbbi5uYW1lXT1uKX19TXMucHJvdG90eXBlLmZlYXR1cmU9ZnVuY3Rpb24odCl7aWYodDwwfHx0Pj10aGlzLl9mZWF0dXJlcy5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJmZWF0dXJlIGluZGV4IG91dCBvZiBib3VuZHMiKTt0aGlzLl9wYmYucG9zPXRoaXMuX2ZlYXR1cmVzW3RdO3ZhciBlPXRoaXMuX3BiZi5yZWFkVmFyaW50KCkrdGhpcy5fcGJmLnBvcztyZXR1cm4gbmV3IF9zKHRoaXMuX3BiZixlLHRoaXMuZXh0ZW50LHRoaXMuX2tleXMsdGhpcy5fdmFsdWVzKX07dmFyIExzPXtWZWN0b3JUaWxlOmZ1bmN0aW9uKHQsZSl7dGhpcy5sYXllcnM9dC5yZWFkRmllbGRzKEVzLHt9LGUpfSxWZWN0b3JUaWxlRmVhdHVyZTpfcyxWZWN0b3JUaWxlTGF5ZXI6QXN9LENzPUxzLlZlY3RvclRpbGVGZWF0dXJlLnR5cGVzLFBzPU1hdGgucG93KDIsMTMpO2Z1bmN0aW9uIElzKHQsZSxyLG4saSxhLG8scyl7dC5lbXBsYWNlQmFjayhlLHIsMipNYXRoLmZsb29yKG4qUHMpK28saSpQcyoyLGEqUHMqMixNYXRoLnJvdW5kKHMpKX12YXIgT3M9ZnVuY3Rpb24odCl7dGhpcy56b29tPXQuem9vbSx0aGlzLm92ZXJzY2FsaW5nPXQub3ZlcnNjYWxpbmcsdGhpcy5sYXllcnM9dC5sYXllcnMsdGhpcy5sYXllcklkcz10aGlzLmxheWVycy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkfSkpLHRoaXMuaW5kZXg9dC5pbmRleCx0aGlzLmhhc1BhdHRlcm49ITEsdGhpcy5sYXlvdXRWZXJ0ZXhBcnJheT1uZXcgUmksdGhpcy5pbmRleEFycmF5PW5ldyBZaSx0aGlzLnByb2dyYW1Db25maWd1cmF0aW9ucz1uZXcgVWEoYnMsdC5sYXllcnMsdC56b29tKSx0aGlzLnNlZ21lbnRzPW5ldyBwYSx0aGlzLnN0YXRlRGVwZW5kZW50TGF5ZXJJZHM9dGhpcy5sYXllcnMuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC5pc1N0YXRlRGVwZW5kZW50KCl9KSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZH0pKX07ZnVuY3Rpb24genModCxlKXtyZXR1cm4gdC54PT09ZS54JiYodC54PDB8fHQueD44MTkyKXx8dC55PT09ZS55JiYodC55PDB8fHQueT44MTkyKX1mdW5jdGlvbiBEcyh0KXtyZXR1cm4gdC5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIHQueDwwfSkpfHx0LmV2ZXJ5KChmdW5jdGlvbih0KXtyZXR1cm4gdC54PjgxOTJ9KSl8fHQuZXZlcnkoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lnk8MH0pKXx8dC5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIHQueT44MTkyfSkpfU9zLnByb3RvdHlwZS5wb3B1bGF0ZT1mdW5jdGlvbih0LGUscil7dGhpcy5mZWF0dXJlcz1bXSx0aGlzLmhhc1BhdHRlcm49ZHMoImZpbGwtZXh0cnVzaW9uIix0aGlzLmxheWVycyxlKTtmb3IodmFyIG49MCxpPXQ7bjxpLmxlbmd0aDtuKz0xKXt2YXIgYT1pW25dLG89YS5mZWF0dXJlLHM9YS5pZCxsPWEuaW5kZXgsYz1hLnNvdXJjZUxheWVySW5kZXgsdT10aGlzLmxheWVyc1swXS5fZmVhdHVyZUZpbHRlci5uZWVkR2VvbWV0cnksZj17dHlwZTpvLnR5cGUsaWQ6cyxwcm9wZXJ0aWVzOm8ucHJvcGVydGllcyxnZW9tZXRyeTp1P1lhKG8pOltdfTtpZih0aGlzLmxheWVyc1swXS5fZmVhdHVyZUZpbHRlci5maWx0ZXIobmV3IHBpKHRoaXMuem9vbSksZixyKSl7dmFyIGg9e2lkOnMsc291cmNlTGF5ZXJJbmRleDpjLGluZGV4OmwsZ2VvbWV0cnk6dT9mLmdlb21ldHJ5OllhKG8pLHByb3BlcnRpZXM6by5wcm9wZXJ0aWVzLHR5cGU6by50eXBlLHBhdHRlcm5zOnt9fTt2b2lkIDAhPT1vLmlkJiYoaC5pZD1vLmlkKSx0aGlzLmhhc1BhdHRlcm4/dGhpcy5mZWF0dXJlcy5wdXNoKG1zKCJmaWxsLWV4dHJ1c2lvbiIsdGhpcy5sYXllcnMsaCx0aGlzLnpvb20sZSkpOnRoaXMuYWRkRmVhdHVyZShoLGguZ2VvbWV0cnksbCxyLHt9KSxlLmZlYXR1cmVJbmRleC5pbnNlcnQobyxoLmdlb21ldHJ5LGwsYyx0aGlzLmluZGV4LCEwKX19fSxPcy5wcm90b3R5cGUuYWRkRmVhdHVyZXM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj0wLGk9dGhpcy5mZWF0dXJlcztuPGkubGVuZ3RoO24rPTEpe3ZhciBhPWlbbl0sbz1hLmdlb21ldHJ5O3RoaXMuYWRkRmVhdHVyZShhLG8sYS5pbmRleCxlLHIpfX0sT3MucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbih0LGUscil7dGhpcy5zdGF0ZURlcGVuZGVudExheWVycy5sZW5ndGgmJnRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLnVwZGF0ZVBhaW50QXJyYXlzKHQsZSx0aGlzLnN0YXRlRGVwZW5kZW50TGF5ZXJzLHIpfSxPcy5wcm90b3R5cGUuaXNFbXB0eT1mdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5sYXlvdXRWZXJ0ZXhBcnJheS5sZW5ndGh9LE9zLnByb3RvdHlwZS51cGxvYWRQZW5kaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMudXBsb2FkZWR8fHRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLm5lZWRzVXBsb2FkfSxPcy5wcm90b3R5cGUudXBsb2FkPWZ1bmN0aW9uKHQpe3RoaXMudXBsb2FkZWR8fCh0aGlzLmxheW91dFZlcnRleEJ1ZmZlcj10LmNyZWF0ZVZlcnRleEJ1ZmZlcih0aGlzLmxheW91dFZlcnRleEFycmF5LGJzKSx0aGlzLmluZGV4QnVmZmVyPXQuY3JlYXRlSW5kZXhCdWZmZXIodGhpcy5pbmRleEFycmF5KSksdGhpcy5wcm9ncmFtQ29uZmlndXJhdGlvbnMudXBsb2FkKHQpLHRoaXMudXBsb2FkZWQ9ITB9LE9zLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy5sYXlvdXRWZXJ0ZXhCdWZmZXImJih0aGlzLmxheW91dFZlcnRleEJ1ZmZlci5kZXN0cm95KCksdGhpcy5pbmRleEJ1ZmZlci5kZXN0cm95KCksdGhpcy5wcm9ncmFtQ29uZmlndXJhdGlvbnMuZGVzdHJveSgpLHRoaXMuc2VnbWVudHMuZGVzdHJveSgpKX0sT3MucHJvdG90eXBlLmFkZEZlYXR1cmU9ZnVuY3Rpb24odCxlLHIsbixpKXtmb3IodmFyIGE9MCxvPWhzKGUsNTAwKTthPG8ubGVuZ3RoO2ErPTEpe2Zvcih2YXIgcz1vW2FdLGw9MCxjPTAsdT1zO2M8dS5sZW5ndGg7Yys9MSl7bCs9dVtjXS5sZW5ndGh9Zm9yKHZhciBmPXRoaXMuc2VnbWVudHMucHJlcGFyZVNlZ21lbnQoNCx0aGlzLmxheW91dFZlcnRleEFycmF5LHRoaXMuaW5kZXhBcnJheSksaD0wLHA9cztoPHAubGVuZ3RoO2grPTEpe3ZhciBkPXBbaF07aWYoMCE9PWQubGVuZ3RoJiYhRHMoZCkpZm9yKHZhciBtPTAsZz0wO2c8ZC5sZW5ndGg7ZysrKXt2YXIgdj1kW2ddO2lmKGc+PTEpe3ZhciB5PWRbZy0xXTtpZighenModix5KSl7Zi52ZXJ0ZXhMZW5ndGgrND5wYS5NQVhfVkVSVEVYX0FSUkFZX0xFTkdUSCYmKGY9dGhpcy5zZWdtZW50cy5wcmVwYXJlU2VnbWVudCg0LHRoaXMubGF5b3V0VmVydGV4QXJyYXksdGhpcy5pbmRleEFycmF5KSk7dmFyIHg9di5zdWIoeSkuX3BlcnAoKS5fdW5pdCgpLGI9eS5kaXN0KHYpO20rYj4zMjc2OCYmKG09MCksSXModGhpcy5sYXlvdXRWZXJ0ZXhBcnJheSx2Lngsdi55LHgueCx4LnksMCwwLG0pLElzKHRoaXMubGF5b3V0VmVydGV4QXJyYXksdi54LHYueSx4LngseC55LDAsMSxtKSxtKz1iLElzKHRoaXMubGF5b3V0VmVydGV4QXJyYXkseS54LHkueSx4LngseC55LDAsMCxtKSxJcyh0aGlzLmxheW91dFZlcnRleEFycmF5LHkueCx5LnkseC54LHgueSwwLDEsbSk7dmFyIF89Zi52ZXJ0ZXhMZW5ndGg7dGhpcy5pbmRleEFycmF5LmVtcGxhY2VCYWNrKF8sXysyLF8rMSksdGhpcy5pbmRleEFycmF5LmVtcGxhY2VCYWNrKF8rMSxfKzIsXyszKSxmLnZlcnRleExlbmd0aCs9NCxmLnByaW1pdGl2ZUxlbmd0aCs9Mn19fX1pZihmLnZlcnRleExlbmd0aCtsPnBhLk1BWF9WRVJURVhfQVJSQVlfTEVOR1RIJiYoZj10aGlzLnNlZ21lbnRzLnByZXBhcmVTZWdtZW50KGwsdGhpcy5sYXlvdXRWZXJ0ZXhBcnJheSx0aGlzLmluZGV4QXJyYXkpKSwiUG9seWdvbiI9PT1Dc1t0LnR5cGVdKXtmb3IodmFyIHc9W10sVD1bXSxrPWYudmVydGV4TGVuZ3RoLEE9MCxNPXM7QTxNLmxlbmd0aDtBKz0xKXt2YXIgUz1NW0FdO2lmKDAhPT1TLmxlbmd0aCl7UyE9PXNbMF0mJlQucHVzaCh3Lmxlbmd0aC8yKTtmb3IodmFyIEU9MDtFPFMubGVuZ3RoO0UrKyl7dmFyIEw9U1tFXTtJcyh0aGlzLmxheW91dFZlcnRleEFycmF5LEwueCxMLnksMCwwLDEsMSwwKSx3LnB1c2goTC54KSx3LnB1c2goTC55KX19fWZvcih2YXIgQz1Ebyh3LFQpLFA9MDtQPEMubGVuZ3RoO1ArPTMpdGhpcy5pbmRleEFycmF5LmVtcGxhY2VCYWNrKGsrQ1tQXSxrK0NbUCsyXSxrK0NbUCsxXSk7Zi5wcmltaXRpdmVMZW5ndGgrPUMubGVuZ3RoLzMsZi52ZXJ0ZXhMZW5ndGgrPWx9fXRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLnBvcHVsYXRlUGFpbnRBcnJheXModGhpcy5sYXlvdXRWZXJ0ZXhBcnJheS5sZW5ndGgsdCxyLGksbil9LE5uKCJGaWxsRXh0cnVzaW9uQnVja2V0IixPcyx7b21pdDpbImxheWVycyIsImZlYXR1cmVzIl19KTt2YXIgUnM9e3BhaW50Om5ldyBTaSh7ImZpbGwtZXh0cnVzaW9uLW9wYWNpdHkiOm5ldyB3aShMdFsicGFpbnRfZmlsbC1leHRydXNpb24iXVsiZmlsbC1leHRydXNpb24tb3BhY2l0eSJdKSwiZmlsbC1leHRydXNpb24tY29sb3IiOm5ldyBUaShMdFsicGFpbnRfZmlsbC1leHRydXNpb24iXVsiZmlsbC1leHRydXNpb24tY29sb3IiXSksImZpbGwtZXh0cnVzaW9uLXRyYW5zbGF0ZSI6bmV3IHdpKEx0WyJwYWludF9maWxsLWV4dHJ1c2lvbiJdWyJmaWxsLWV4dHJ1c2lvbi10cmFuc2xhdGUiXSksImZpbGwtZXh0cnVzaW9uLXRyYW5zbGF0ZS1hbmNob3IiOm5ldyB3aShMdFsicGFpbnRfZmlsbC1leHRydXNpb24iXVsiZmlsbC1leHRydXNpb24tdHJhbnNsYXRlLWFuY2hvciJdKSwiZmlsbC1leHRydXNpb24tcGF0dGVybiI6bmV3IGtpKEx0WyJwYWludF9maWxsLWV4dHJ1c2lvbiJdWyJmaWxsLWV4dHJ1c2lvbi1wYXR0ZXJuIl0pLCJmaWxsLWV4dHJ1c2lvbi1oZWlnaHQiOm5ldyBUaShMdFsicGFpbnRfZmlsbC1leHRydXNpb24iXVsiZmlsbC1leHRydXNpb24taGVpZ2h0Il0pLCJmaWxsLWV4dHJ1c2lvbi1iYXNlIjpuZXcgVGkoTHRbInBhaW50X2ZpbGwtZXh0cnVzaW9uIl1bImZpbGwtZXh0cnVzaW9uLWJhc2UiXSksImZpbGwtZXh0cnVzaW9uLXZlcnRpY2FsLWdyYWRpZW50IjpuZXcgd2koTHRbInBhaW50X2ZpbGwtZXh0cnVzaW9uIl1bImZpbGwtZXh0cnVzaW9uLXZlcnRpY2FsLWdyYWRpZW50Il0pfSl9LEZzPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7dC5jYWxsKHRoaXMsZSxScyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmNyZWF0ZUJ1Y2tldD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IE9zKHQpfSxlLnByb3RvdHlwZS5xdWVyeVJhZGl1cz1mdW5jdGlvbigpe3JldHVybiBzbyh0aGlzLnBhaW50LmdldCgiZmlsbC1leHRydXNpb24tdHJhbnNsYXRlIikpfSxlLnByb3RvdHlwZS5pczNEPWZ1bmN0aW9uKCl7cmV0dXJuITB9LGUucHJvdG90eXBlLnF1ZXJ5SW50ZXJzZWN0c0ZlYXR1cmU9ZnVuY3Rpb24odCxlLHIsbixhLG8scyxsKXt2YXIgYz1sbyh0LHRoaXMucGFpbnQuZ2V0KCJmaWxsLWV4dHJ1c2lvbi10cmFuc2xhdGUiKSx0aGlzLnBhaW50LmdldCgiZmlsbC1leHRydXNpb24tdHJhbnNsYXRlLWFuY2hvciIpLG8uYW5nbGUscyksdT10aGlzLnBhaW50LmdldCgiZmlsbC1leHRydXNpb24taGVpZ2h0IikuZXZhbHVhdGUoZSxyKSxmPXRoaXMucGFpbnQuZ2V0KCJmaWxsLWV4dHJ1c2lvbi1iYXNlIikuZXZhbHVhdGUoZSxyKSxoPWZ1bmN0aW9uKHQsZSxyLG4pe2Zvcih2YXIgYT1bXSxvPTAscz10O288cy5sZW5ndGg7bys9MSl7dmFyIGw9c1tvXSxjPVtsLngsbC55LG4sMV07eG8oYyxjLGUpLGEucHVzaChuZXcgaShjWzBdL2NbM10sY1sxXS9jWzNdKSl9cmV0dXJuIGF9KGMsbCwwLDApLHA9ZnVuY3Rpb24odCxlLHIsbil7Zm9yKHZhciBhPVtdLG89W10scz1uWzhdKmUsbD1uWzldKmUsYz1uWzEwXSplLHU9blsxMV0qZSxmPW5bOF0qcixoPW5bOV0qcixwPW5bMTBdKnIsZD1uWzExXSpyLG09MCxnPXQ7bTxnLmxlbmd0aDttKz0xKXtmb3IodmFyIHY9Z1ttXSx5PVtdLHg9W10sYj0wLF89djtiPF8ubGVuZ3RoO2IrPTEpe3ZhciB3PV9bYl0sVD13Lngsaz13LnksQT1uWzBdKlQrbls0XSprK25bMTJdLE09blsxXSpUK25bNV0qaytuWzEzXSxTPW5bMl0qVCtuWzZdKmsrblsxNF0sRT1uWzNdKlQrbls3XSprK25bMTVdLEw9UytjLEM9RSt1LFA9QStmLEk9TStoLE89UytwLHo9RStkLEQ9bmV3IGkoKEErcykvQywoTStsKS9DKTtELno9TC9DLHkucHVzaChEKTt2YXIgUj1uZXcgaShQL3osSS96KTtSLno9Ty96LHgucHVzaChSKX1hLnB1c2goeSksby5wdXNoKHgpfXJldHVyblthLG9dfShuLGYsdSxsKTtyZXR1cm4gZnVuY3Rpb24odCxlLHIpe3ZhciBuPTEvMDtLYShyLGUpJiYobj1OcyhyLGVbMF0pKTtmb3IodmFyIGk9MDtpPGUubGVuZ3RoO2krKylmb3IodmFyIGE9ZVtpXSxvPXRbaV0scz0wO3M8YS5sZW5ndGgtMTtzKyspe3ZhciBsPWFbc10sYz1hW3MrMV0sdT1vW3NdLGY9b1tzKzFdLGg9W2wsYyxmLHUsbF07WmEocixoKSYmKG49TWF0aC5taW4obixOcyhyLGgpKSl9cmV0dXJuIG4hPT0xLzAmJm59KHBbMF0scFsxXSxoKX0sZX0oRWkpO2Z1bmN0aW9uIEJzKHQsZSl7cmV0dXJuIHQueCplLngrdC55KmUueX1mdW5jdGlvbiBOcyh0LGUpe2lmKDE9PT10Lmxlbmd0aCl7Zm9yKHZhciByLG49MCxpPWVbbisrXTshcnx8aS5lcXVhbHMocik7KWlmKCEocj1lW24rK10pKXJldHVybiAxLzA7Zm9yKDtuPGUubGVuZ3RoO24rKyl7dmFyIGE9ZVtuXSxvPXRbMF0scz1yLnN1YihpKSxsPWEuc3ViKGkpLGM9by5zdWIoaSksdT1CcyhzLHMpLGY9QnMocyxsKSxoPUJzKGwsbCkscD1CcyhjLHMpLGQ9QnMoYyxsKSxtPXUqaC1mKmYsZz0oaCpwLWYqZCkvbSx2PSh1KmQtZipwKS9tLHk9MS1nLXYseD1pLnoqeStyLnoqZythLnoqdjtpZihpc0Zpbml0ZSh4KSlyZXR1cm4geH1yZXR1cm4gMS8wfWZvcih2YXIgYj0xLzAsXz0wLHc9ZTtfPHcubGVuZ3RoO18rPTEpe3ZhciBUPXdbX107Yj1NYXRoLm1pbihiLFQueil9cmV0dXJuIGJ9dmFyIGpzPUlpKFt7bmFtZToiYV9wb3Nfbm9ybWFsIixjb21wb25lbnRzOjIsdHlwZToiSW50MTYifSx7bmFtZToiYV9kYXRhIixjb21wb25lbnRzOjQsdHlwZToiVWludDgifV0sNCkubWVtYmVycyxVcz1Mcy5WZWN0b3JUaWxlRmVhdHVyZS50eXBlcyxWcz1NYXRoLmNvcyhNYXRoLlBJLzE4MCozNy41KSxIcz1NYXRoLnBvdygyLDE0KS8uNSxxcz1mdW5jdGlvbih0KXt0aGlzLnpvb209dC56b29tLHRoaXMub3ZlcnNjYWxpbmc9dC5vdmVyc2NhbGluZyx0aGlzLmxheWVycz10LmxheWVycyx0aGlzLmxheWVySWRzPXRoaXMubGF5ZXJzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWR9KSksdGhpcy5pbmRleD10LmluZGV4LHRoaXMuaGFzUGF0dGVybj0hMSx0aGlzLnBhdHRlcm5GZWF0dXJlcz1bXSx0aGlzLmxheW91dFZlcnRleEFycmF5PW5ldyBGaSx0aGlzLmluZGV4QXJyYXk9bmV3IFlpLHRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zPW5ldyBVYShqcyx0LmxheWVycyx0Lnpvb20pLHRoaXMuc2VnbWVudHM9bmV3IHBhLHRoaXMuc3RhdGVEZXBlbmRlbnRMYXllcklkcz10aGlzLmxheWVycy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlzU3RhdGVEZXBlbmRlbnQoKX0pKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkfSkpfTtxcy5wcm90b3R5cGUucG9wdWxhdGU9ZnVuY3Rpb24odCxlLHIpe3RoaXMuaGFzUGF0dGVybj1kcygibGluZSIsdGhpcy5sYXllcnMsZSk7Zm9yKHZhciBuPXRoaXMubGF5ZXJzWzBdLmxheW91dC5nZXQoImxpbmUtc29ydC1rZXkiKSxpPVtdLGE9MCxvPXQ7YTxvLmxlbmd0aDthKz0xKXt2YXIgcz1vW2FdLGw9cy5mZWF0dXJlLGM9cy5pZCx1PXMuaW5kZXgsZj1zLnNvdXJjZUxheWVySW5kZXgsaD10aGlzLmxheWVyc1swXS5fZmVhdHVyZUZpbHRlci5uZWVkR2VvbWV0cnkscD17dHlwZTpsLnR5cGUsaWQ6Yyxwcm9wZXJ0aWVzOmwucHJvcGVydGllcyxnZW9tZXRyeTpoP1lhKGwpOltdfTtpZih0aGlzLmxheWVyc1swXS5fZmVhdHVyZUZpbHRlci5maWx0ZXIobmV3IHBpKHRoaXMuem9vbSkscCxyKSl7aHx8KHAuZ2VvbWV0cnk9WWEobCkpO3ZhciBkPW4/bi5ldmFsdWF0ZShwLHt9LHIpOnZvaWQgMCxtPXtpZDpjLHByb3BlcnRpZXM6bC5wcm9wZXJ0aWVzLHR5cGU6bC50eXBlLHNvdXJjZUxheWVySW5kZXg6ZixpbmRleDp1LGdlb21ldHJ5OnAuZ2VvbWV0cnkscGF0dGVybnM6e30sc29ydEtleTpkfTtpLnB1c2gobSl9fW4mJmkuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5zb3J0S2V5LWUuc29ydEtleX0pKTtmb3IodmFyIGc9MCx2PWk7Zzx2Lmxlbmd0aDtnKz0xKXt2YXIgeT12W2ddLHg9eSxiPXguZ2VvbWV0cnksXz14LmluZGV4LHc9eC5zb3VyY2VMYXllckluZGV4O2lmKHRoaXMuaGFzUGF0dGVybil7dmFyIFQ9bXMoImxpbmUiLHRoaXMubGF5ZXJzLHksdGhpcy56b29tLGUpO3RoaXMucGF0dGVybkZlYXR1cmVzLnB1c2goVCl9ZWxzZSB0aGlzLmFkZEZlYXR1cmUoeSxiLF8scix7fSk7dmFyIGs9dFtfXS5mZWF0dXJlO2UuZmVhdHVyZUluZGV4Lmluc2VydChrLGIsXyx3LHRoaXMuaW5kZXgpfX0scXMucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbih0LGUscil7dGhpcy5zdGF0ZURlcGVuZGVudExheWVycy5sZW5ndGgmJnRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLnVwZGF0ZVBhaW50QXJyYXlzKHQsZSx0aGlzLnN0YXRlRGVwZW5kZW50TGF5ZXJzLHIpfSxxcy5wcm90b3R5cGUuYWRkRmVhdHVyZXM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj0wLGk9dGhpcy5wYXR0ZXJuRmVhdHVyZXM7bjxpLmxlbmd0aDtuKz0xKXt2YXIgYT1pW25dO3RoaXMuYWRkRmVhdHVyZShhLGEuZ2VvbWV0cnksYS5pbmRleCxlLHIpfX0scXMucHJvdG90eXBlLmlzRW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMubGF5b3V0VmVydGV4QXJyYXkubGVuZ3RofSxxcy5wcm90b3R5cGUudXBsb2FkUGVuZGluZz1mdW5jdGlvbigpe3JldHVybiF0aGlzLnVwbG9hZGVkfHx0aGlzLnByb2dyYW1Db25maWd1cmF0aW9ucy5uZWVkc1VwbG9hZH0scXMucHJvdG90eXBlLnVwbG9hZD1mdW5jdGlvbih0KXt0aGlzLnVwbG9hZGVkfHwodGhpcy5sYXlvdXRWZXJ0ZXhCdWZmZXI9dC5jcmVhdGVWZXJ0ZXhCdWZmZXIodGhpcy5sYXlvdXRWZXJ0ZXhBcnJheSxqcyksdGhpcy5pbmRleEJ1ZmZlcj10LmNyZWF0ZUluZGV4QnVmZmVyKHRoaXMuaW5kZXhBcnJheSkpLHRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLnVwbG9hZCh0KSx0aGlzLnVwbG9hZGVkPSEwfSxxcy5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMubGF5b3V0VmVydGV4QnVmZmVyJiYodGhpcy5sYXlvdXRWZXJ0ZXhCdWZmZXIuZGVzdHJveSgpLHRoaXMuaW5kZXhCdWZmZXIuZGVzdHJveSgpLHRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLmRlc3Ryb3koKSx0aGlzLnNlZ21lbnRzLmRlc3Ryb3koKSl9LHFzLnByb3RvdHlwZS5hZGRGZWF0dXJlPWZ1bmN0aW9uKHQsZSxyLG4saSl7Zm9yKHZhciBhPXRoaXMubGF5ZXJzWzBdLmxheW91dCxvPWEuZ2V0KCJsaW5lLWpvaW4iKS5ldmFsdWF0ZSh0LHt9KSxzPWEuZ2V0KCJsaW5lLWNhcCIpLGw9YS5nZXQoImxpbmUtbWl0ZXItbGltaXQiKSxjPWEuZ2V0KCJsaW5lLXJvdW5kLWxpbWl0IiksdT0wLGY9ZTt1PGYubGVuZ3RoO3UrPTEpe3ZhciBoPWZbdV07dGhpcy5hZGRMaW5lKGgsdCxvLHMsbCxjKX10aGlzLnByb2dyYW1Db25maWd1cmF0aW9ucy5wb3B1bGF0ZVBhaW50QXJyYXlzKHRoaXMubGF5b3V0VmVydGV4QXJyYXkubGVuZ3RoLHQscixpLG4pfSxxcy5wcm90b3R5cGUuYWRkTGluZT1mdW5jdGlvbih0LGUscixuLGksYSl7aWYodGhpcy5kaXN0YW5jZT0wLHRoaXMuc2NhbGVkRGlzdGFuY2U9MCx0aGlzLnRvdGFsRGlzdGFuY2U9MCxlLnByb3BlcnRpZXMmJmUucHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eSgibWFwYm94X2NsaXBfc3RhcnQiKSYmZS5wcm9wZXJ0aWVzLmhhc093blByb3BlcnR5KCJtYXBib3hfY2xpcF9lbmQiKSl7dGhpcy5jbGlwU3RhcnQ9K2UucHJvcGVydGllcy5tYXBib3hfY2xpcF9zdGFydCx0aGlzLmNsaXBFbmQ9K2UucHJvcGVydGllcy5tYXBib3hfY2xpcF9lbmQ7Zm9yKHZhciBvPTA7bzx0Lmxlbmd0aC0xO28rKyl0aGlzLnRvdGFsRGlzdGFuY2UrPXRbb10uZGlzdCh0W28rMV0pO3RoaXMudXBkYXRlU2NhbGVkRGlzdGFuY2UoKX1mb3IodmFyIHM9IlBvbHlnb24iPT09VXNbZS50eXBlXSxsPXQubGVuZ3RoO2w+PTImJnRbbC0xXS5lcXVhbHModFtsLTJdKTspbC0tO2Zvcih2YXIgYz0wO2M8bC0xJiZ0W2NdLmVxdWFscyh0W2MrMV0pOyljKys7aWYoIShsPChzPzM6MikpKXsiYmV2ZWwiPT09ciYmKGk9MS4wNSk7dmFyIHUsZj10aGlzLm92ZXJzY2FsaW5nPD0xNj8xMjI4ODAvKDUxMip0aGlzLm92ZXJzY2FsaW5nKTowLGg9dGhpcy5zZWdtZW50cy5wcmVwYXJlU2VnbWVudCgxMCpsLHRoaXMubGF5b3V0VmVydGV4QXJyYXksdGhpcy5pbmRleEFycmF5KSxwPXZvaWQgMCxkPXZvaWQgMCxtPXZvaWQgMCxnPXZvaWQgMDt0aGlzLmUxPXRoaXMuZTI9LTEscyYmKHU9dFtsLTJdLGc9dFtjXS5zdWIodSkuX3VuaXQoKS5fcGVycCgpKTtmb3IodmFyIHY9Yzt2PGw7disrKWlmKCEoZD12PT09bC0xP3M/dFtjKzFdOnZvaWQgMDp0W3YrMV0pfHwhdFt2XS5lcXVhbHMoZCkpe2cmJihtPWcpLHUmJihwPXUpLHU9dFt2XSxnPWQ/ZC5zdWIodSkuX3VuaXQoKS5fcGVycCgpOm07dmFyIHk9KG09bXx8ZykuYWRkKGcpOzA9PT15LngmJjA9PT15Lnl8fHkuX3VuaXQoKTt2YXIgeD1tLngqZy54K20ueSpnLnksYj15LngqZy54K3kueSpnLnksXz0wIT09Yj8xL2I6MS8wLHc9MipNYXRoLnNxcnQoMi0yKmIpLFQ9YjxWcyYmcCYmZCxrPW0ueCpnLnktbS55KmcueD4wO2lmKFQmJnY+Yyl7dmFyIEE9dS5kaXN0KHApO2lmKEE+MipmKXt2YXIgTT11LnN1Yih1LnN1YihwKS5fbXVsdChmL0EpLl9yb3VuZCgpKTt0aGlzLnVwZGF0ZURpc3RhbmNlKHAsTSksdGhpcy5hZGRDdXJyZW50VmVydGV4KE0sbSwwLDAsaCkscD1NfX12YXIgUz1wJiZkLEU9Uz9yOnM/ImJ1dHQiOm47aWYoUyYmInJvdW5kIj09PUUmJihfPGE/RT0ibWl0ZXIiOl88PTImJihFPSJmYWtlcm91bmQiKSksIm1pdGVyIj09PUUmJl8+aSYmKEU9ImJldmVsIiksImJldmVsIj09PUUmJihfPjImJihFPSJmbGlwYmV2ZWwiKSxfPGkmJihFPSJtaXRlciIpKSxwJiZ0aGlzLnVwZGF0ZURpc3RhbmNlKHAsdSksIm1pdGVyIj09PUUpeS5fbXVsdChfKSx0aGlzLmFkZEN1cnJlbnRWZXJ0ZXgodSx5LDAsMCxoKTtlbHNlIGlmKCJmbGlwYmV2ZWwiPT09RSl7aWYoXz4xMDApeT1nLm11bHQoLTEpO2Vsc2V7dmFyIEw9XyptLmFkZChnKS5tYWcoKS9tLnN1YihnKS5tYWcoKTt5Ll9wZXJwKCkuX211bHQoTCooaz8tMToxKSl9dGhpcy5hZGRDdXJyZW50VmVydGV4KHUseSwwLDAsaCksdGhpcy5hZGRDdXJyZW50VmVydGV4KHUseS5tdWx0KC0xKSwwLDAsaCl9ZWxzZSBpZigiYmV2ZWwiPT09RXx8ImZha2Vyb3VuZCI9PT1FKXt2YXIgQz0tTWF0aC5zcXJ0KF8qXy0xKSxQPWs/QzowLEk9az8wOkM7aWYocCYmdGhpcy5hZGRDdXJyZW50VmVydGV4KHUsbSxQLEksaCksImZha2Vyb3VuZCI9PT1FKWZvcih2YXIgTz1NYXRoLnJvdW5kKDE4MCp3L01hdGguUEkvMjApLHo9MTt6PE87eisrKXt2YXIgRD16L087aWYoLjUhPT1EKXt2YXIgUj1ELS41O0QrPUQqUiooRC0xKSooKDEuMDkwNCt4Kih4KigzLjU1NjQ1LTEuNDM1MTkqeCktMy4yNDUyKSkqUipSKyguODQ4MDEzK3gqKC4yMTU2MzgqeC0xLjA2MDIxKSkpfXZhciBGPWcuc3ViKG0pLl9tdWx0KEQpLl9hZGQobSkuX3VuaXQoKS5fbXVsdChrPy0xOjEpO3RoaXMuYWRkSGFsZlZlcnRleCh1LEYueCxGLnksITEsaywwLGgpfWQmJnRoaXMuYWRkQ3VycmVudFZlcnRleCh1LGcsLVAsLUksaCl9ZWxzZSBpZigiYnV0dCI9PT1FKXRoaXMuYWRkQ3VycmVudFZlcnRleCh1LHksMCwwLGgpO2Vsc2UgaWYoInNxdWFyZSI9PT1FKXt2YXIgQj1wPzE6LTE7dGhpcy5hZGRDdXJyZW50VmVydGV4KHUseSxCLEIsaCl9ZWxzZSJyb3VuZCI9PT1FJiYocCYmKHRoaXMuYWRkQ3VycmVudFZlcnRleCh1LG0sMCwwLGgpLHRoaXMuYWRkQ3VycmVudFZlcnRleCh1LG0sMSwxLGgsITApKSxkJiYodGhpcy5hZGRDdXJyZW50VmVydGV4KHUsZywtMSwtMSxoLCEwKSx0aGlzLmFkZEN1cnJlbnRWZXJ0ZXgodSxnLDAsMCxoKSkpO2lmKFQmJnY8bC0xKXt2YXIgTj11LmRpc3QoZCk7aWYoTj4yKmYpe3ZhciBqPXUuYWRkKGQuc3ViKHUpLl9tdWx0KGYvTikuX3JvdW5kKCkpO3RoaXMudXBkYXRlRGlzdGFuY2UodSxqKSx0aGlzLmFkZEN1cnJlbnRWZXJ0ZXgoaixnLDAsMCxoKSx1PWp9fX19fSxxcy5wcm90b3R5cGUuYWRkQ3VycmVudFZlcnRleD1mdW5jdGlvbih0LGUscixuLGksYSl7dm9pZCAwPT09YSYmKGE9ITEpO3ZhciBvPWUueCtlLnkqcixzPWUueS1lLngqcixsPS1lLngrZS55Km4sYz0tZS55LWUueCpuO3RoaXMuYWRkSGFsZlZlcnRleCh0LG8scyxhLCExLHIsaSksdGhpcy5hZGRIYWxmVmVydGV4KHQsbCxjLGEsITAsLW4saSksdGhpcy5kaXN0YW5jZT5Icy8yJiYwPT09dGhpcy50b3RhbERpc3RhbmNlJiYodGhpcy5kaXN0YW5jZT0wLHRoaXMuYWRkQ3VycmVudFZlcnRleCh0LGUscixuLGksYSkpfSxxcy5wcm90b3R5cGUuYWRkSGFsZlZlcnRleD1mdW5jdGlvbih0LGUscixuLGksYSxvKXt2YXIgcz10LngsbD10LnksYz0uNSp0aGlzLnNjYWxlZERpc3RhbmNlO3RoaXMubGF5b3V0VmVydGV4QXJyYXkuZW1wbGFjZUJhY2soKHM8PDEpKyhuPzE6MCksKGw8PDEpKyhpPzE6MCksTWF0aC5yb3VuZCg2MyplKSsxMjgsTWF0aC5yb3VuZCg2MypyKSsxMjgsMSsoMD09PWE/MDphPDA/LTE6MSl8KDYzJmMpPDwyLGM+PjYpO3ZhciB1PW8udmVydGV4TGVuZ3RoKys7dGhpcy5lMT49MCYmdGhpcy5lMj49MCYmKHRoaXMuaW5kZXhBcnJheS5lbXBsYWNlQmFjayh0aGlzLmUxLHRoaXMuZTIsdSksby5wcmltaXRpdmVMZW5ndGgrKyksaT90aGlzLmUyPXU6dGhpcy5lMT11fSxxcy5wcm90b3R5cGUudXBkYXRlU2NhbGVkRGlzdGFuY2U9ZnVuY3Rpb24oKXt0aGlzLnNjYWxlZERpc3RhbmNlPXRoaXMudG90YWxEaXN0YW5jZT4wPyh0aGlzLmNsaXBTdGFydCsodGhpcy5jbGlwRW5kLXRoaXMuY2xpcFN0YXJ0KSp0aGlzLmRpc3RhbmNlL3RoaXMudG90YWxEaXN0YW5jZSkqKEhzLTEpOnRoaXMuZGlzdGFuY2V9LHFzLnByb3RvdHlwZS51cGRhdGVEaXN0YW5jZT1mdW5jdGlvbih0LGUpe3RoaXMuZGlzdGFuY2UrPXQuZGlzdChlKSx0aGlzLnVwZGF0ZVNjYWxlZERpc3RhbmNlKCl9LE5uKCJMaW5lQnVja2V0Iixxcyx7b21pdDpbImxheWVycyIsInBhdHRlcm5GZWF0dXJlcyJdfSk7dmFyIEdzPW5ldyBTaSh7ImxpbmUtY2FwIjpuZXcgd2koTHQubGF5b3V0X2xpbmVbImxpbmUtY2FwIl0pLCJsaW5lLWpvaW4iOm5ldyBUaShMdC5sYXlvdXRfbGluZVsibGluZS1qb2luIl0pLCJsaW5lLW1pdGVyLWxpbWl0IjpuZXcgd2koTHQubGF5b3V0X2xpbmVbImxpbmUtbWl0ZXItbGltaXQiXSksImxpbmUtcm91bmQtbGltaXQiOm5ldyB3aShMdC5sYXlvdXRfbGluZVsibGluZS1yb3VuZC1saW1pdCJdKSwibGluZS1zb3J0LWtleSI6bmV3IFRpKEx0LmxheW91dF9saW5lWyJsaW5lLXNvcnQta2V5Il0pfSksWXM9e3BhaW50Om5ldyBTaSh7ImxpbmUtb3BhY2l0eSI6bmV3IFRpKEx0LnBhaW50X2xpbmVbImxpbmUtb3BhY2l0eSJdKSwibGluZS1jb2xvciI6bmV3IFRpKEx0LnBhaW50X2xpbmVbImxpbmUtY29sb3IiXSksImxpbmUtdHJhbnNsYXRlIjpuZXcgd2koTHQucGFpbnRfbGluZVsibGluZS10cmFuc2xhdGUiXSksImxpbmUtdHJhbnNsYXRlLWFuY2hvciI6bmV3IHdpKEx0LnBhaW50X2xpbmVbImxpbmUtdHJhbnNsYXRlLWFuY2hvciJdKSwibGluZS13aWR0aCI6bmV3IFRpKEx0LnBhaW50X2xpbmVbImxpbmUtd2lkdGgiXSksImxpbmUtZ2FwLXdpZHRoIjpuZXcgVGkoTHQucGFpbnRfbGluZVsibGluZS1nYXAtd2lkdGgiXSksImxpbmUtb2Zmc2V0IjpuZXcgVGkoTHQucGFpbnRfbGluZVsibGluZS1vZmZzZXQiXSksImxpbmUtYmx1ciI6bmV3IFRpKEx0LnBhaW50X2xpbmVbImxpbmUtYmx1ciJdKSwibGluZS1kYXNoYXJyYXkiOm5ldyBBaShMdC5wYWludF9saW5lWyJsaW5lLWRhc2hhcnJheSJdKSwibGluZS1wYXR0ZXJuIjpuZXcga2koTHQucGFpbnRfbGluZVsibGluZS1wYXR0ZXJuIl0pLCJsaW5lLWdyYWRpZW50IjpuZXcgTWkoTHQucGFpbnRfbGluZVsibGluZS1ncmFkaWVudCJdKX0pLGxheW91dDpHc30sV3M9bmV3KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUucG9zc2libHlFdmFsdWF0ZT1mdW5jdGlvbihlLHIpe3JldHVybiByPW5ldyBwaShNYXRoLmZsb29yKHIuem9vbSkse25vdzpyLm5vdyxmYWRlRHVyYXRpb246ci5mYWRlRHVyYXRpb24sem9vbUhpc3Rvcnk6ci56b29tSGlzdG9yeSx0cmFuc2l0aW9uOnIudHJhbnNpdGlvbn0pLHQucHJvdG90eXBlLnBvc3NpYmx5RXZhbHVhdGUuY2FsbCh0aGlzLGUscil9LGUucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKGUscixuLGkpe3JldHVybiByPXUoe30scix7em9vbTpNYXRoLmZsb29yKHIuem9vbSl9KSx0LnByb3RvdHlwZS5ldmFsdWF0ZS5jYWxsKHRoaXMsZSxyLG4saSl9LGV9KFRpKSkoWXMucGFpbnQucHJvcGVydGllc1sibGluZS13aWR0aCJdLnNwZWNpZmljYXRpb24pO1dzLnVzZUludGVnZXJab29tPSEwO3ZhciBYcz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3QuY2FsbCh0aGlzLGUsWXMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5faGFuZGxlU3BlY2lhbFBhaW50UHJvcGVydHlVcGRhdGU9ZnVuY3Rpb24odCl7ImxpbmUtZ3JhZGllbnQiPT09dCYmdGhpcy5fdXBkYXRlR3JhZGllbnQoKX0sZS5wcm90b3R5cGUuX3VwZGF0ZUdyYWRpZW50PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fdHJhbnNpdGlvbmFibGVQYWludC5fdmFsdWVzWyJsaW5lLWdyYWRpZW50Il0udmFsdWUuZXhwcmVzc2lvbjt0aGlzLmdyYWRpZW50PUNvKHQsImxpbmVQcm9ncmVzcyIpLHRoaXMuZ3JhZGllbnRUZXh0dXJlPW51bGx9LGUucHJvdG90eXBlLnJlY2FsY3VsYXRlPWZ1bmN0aW9uKGUscil7dC5wcm90b3R5cGUucmVjYWxjdWxhdGUuY2FsbCh0aGlzLGUsciksdGhpcy5wYWludC5fdmFsdWVzWyJsaW5lLWZsb29yd2lkdGgiXT1Xcy5wb3NzaWJseUV2YWx1YXRlKHRoaXMuX3RyYW5zaXRpb25pbmdQYWludC5fdmFsdWVzWyJsaW5lLXdpZHRoIl0udmFsdWUsZSl9LGUucHJvdG90eXBlLmNyZWF0ZUJ1Y2tldD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHFzKHQpfSxlLnByb3RvdHlwZS5xdWVyeVJhZGl1cz1mdW5jdGlvbih0KXt2YXIgZT10LHI9WnMob28oImxpbmUtd2lkdGgiLHRoaXMsZSksb28oImxpbmUtZ2FwLXdpZHRoIix0aGlzLGUpKSxuPW9vKCJsaW5lLW9mZnNldCIsdGhpcyxlKTtyZXR1cm4gci8yK01hdGguYWJzKG4pK3NvKHRoaXMucGFpbnQuZ2V0KCJsaW5lLXRyYW5zbGF0ZSIpKX0sZS5wcm90b3R5cGUucXVlcnlJbnRlcnNlY3RzRmVhdHVyZT1mdW5jdGlvbih0LGUscixuLGEsbyxzKXt2YXIgbD1sbyh0LHRoaXMucGFpbnQuZ2V0KCJsaW5lLXRyYW5zbGF0ZSIpLHRoaXMucGFpbnQuZ2V0KCJsaW5lLXRyYW5zbGF0ZS1hbmNob3IiKSxvLmFuZ2xlLHMpLGM9cy8yKlpzKHRoaXMucGFpbnQuZ2V0KCJsaW5lLXdpZHRoIikuZXZhbHVhdGUoZSxyKSx0aGlzLnBhaW50LmdldCgibGluZS1nYXAtd2lkdGgiKS5ldmFsdWF0ZShlLHIpKSx1PXRoaXMucGFpbnQuZ2V0KCJsaW5lLW9mZnNldCIpLmV2YWx1YXRlKGUscik7cmV0dXJuIHUmJihuPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPVtdLG49bmV3IGkoMCwwKSxhPTA7YTx0Lmxlbmd0aDthKyspe2Zvcih2YXIgbz10W2FdLHM9W10sbD0wO2w8by5sZW5ndGg7bCsrKXt2YXIgYz1vW2wtMV0sdT1vW2xdLGY9b1tsKzFdLGg9MD09PWw/bjp1LnN1YihjKS5fdW5pdCgpLl9wZXJwKCkscD1sPT09by5sZW5ndGgtMT9uOmYuc3ViKHUpLl91bml0KCkuX3BlcnAoKSxkPWguX2FkZChwKS5fdW5pdCgpLG09ZC54KnAueCtkLnkqcC55O2QuX211bHQoMS9tKSxzLnB1c2goZC5fbXVsdChlKS5fYWRkKHUpKX1yLnB1c2gocyl9cmV0dXJuIHJ9KG4sdSpzKSksZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgaT1lW25dO2lmKHQubGVuZ3RoPj0zKWZvcih2YXIgYT0wO2E8aS5sZW5ndGg7YSsrKWlmKGlvKHQsaVthXSkpcmV0dXJuITA7aWYoUWEodCxpLHIpKXJldHVybiEwfXJldHVybiExfShsLG4sYyl9LGUucHJvdG90eXBlLmlzVGlsZUNsaXBwZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sZX0oRWkpO2Z1bmN0aW9uIFpzKHQsZSl7cmV0dXJuIGU+MD9lKzIqdDp0fXZhciBKcz1JaShbe25hbWU6ImFfcG9zX29mZnNldCIsY29tcG9uZW50czo0LHR5cGU6IkludDE2In0se25hbWU6ImFfZGF0YSIsY29tcG9uZW50czo0LHR5cGU6IlVpbnQxNiJ9LHtuYW1lOiJhX3BpeGVsb2Zmc2V0Iixjb21wb25lbnRzOjQsdHlwZToiSW50MTYifV0sNCksS3M9SWkoW3tuYW1lOiJhX3Byb2plY3RlZF9wb3MiLGNvbXBvbmVudHM6Myx0eXBlOiJGbG9hdDMyIn1dLDQpLFFzPShJaShbe25hbWU6ImFfZmFkZV9vcGFjaXR5Iixjb21wb25lbnRzOjEsdHlwZToiVWludDMyIn1dLDQpLElpKFt7bmFtZToiYV9wbGFjZWQiLGNvbXBvbmVudHM6Mix0eXBlOiJVaW50OCJ9LHtuYW1lOiJhX3NoaWZ0Iixjb21wb25lbnRzOjIsdHlwZToiRmxvYXQzMiJ9XSkpLCRzPShJaShbe3R5cGU6IkludDE2IixuYW1lOiJhbmNob3JQb2ludFgifSx7dHlwZToiSW50MTYiLG5hbWU6ImFuY2hvclBvaW50WSJ9LHt0eXBlOiJJbnQxNiIsbmFtZToieDEifSx7dHlwZToiSW50MTYiLG5hbWU6InkxIn0se3R5cGU6IkludDE2IixuYW1lOiJ4MiJ9LHt0eXBlOiJJbnQxNiIsbmFtZToieTIifSx7dHlwZToiVWludDMyIixuYW1lOiJmZWF0dXJlSW5kZXgifSx7dHlwZToiVWludDE2IixuYW1lOiJzb3VyY2VMYXllckluZGV4In0se3R5cGU6IlVpbnQxNiIsbmFtZToiYnVja2V0SW5kZXgifV0pLElpKFt7bmFtZToiYV9wb3MiLGNvbXBvbmVudHM6Mix0eXBlOiJJbnQxNiJ9LHtuYW1lOiJhX2FuY2hvcl9wb3MiLGNvbXBvbmVudHM6Mix0eXBlOiJJbnQxNiJ9LHtuYW1lOiJhX2V4dHJ1ZGUiLGNvbXBvbmVudHM6Mix0eXBlOiJJbnQxNiJ9XSw0KSksdGw9SWkoW3tuYW1lOiJhX3BvcyIsY29tcG9uZW50czoyLHR5cGU6IkZsb2F0MzIifSx7bmFtZToiYV9yYWRpdXMiLGNvbXBvbmVudHM6MSx0eXBlOiJGbG9hdDMyIn0se25hbWU6ImFfZmxhZ3MiLGNvbXBvbmVudHM6Mix0eXBlOiJJbnQxNiJ9XSw0KTtJaShbe25hbWU6InRyaWFuZ2xlIixjb21wb25lbnRzOjMsdHlwZToiVWludDE2In1dKSxJaShbe3R5cGU6IkludDE2IixuYW1lOiJhbmNob3JYIn0se3R5cGU6IkludDE2IixuYW1lOiJhbmNob3JZIn0se3R5cGU6IlVpbnQxNiIsbmFtZToiZ2x5cGhTdGFydEluZGV4In0se3R5cGU6IlVpbnQxNiIsbmFtZToibnVtR2x5cGhzIn0se3R5cGU6IlVpbnQzMiIsbmFtZToidmVydGV4U3RhcnRJbmRleCJ9LHt0eXBlOiJVaW50MzIiLG5hbWU6ImxpbmVTdGFydEluZGV4In0se3R5cGU6IlVpbnQzMiIsbmFtZToibGluZUxlbmd0aCJ9LHt0eXBlOiJVaW50MTYiLG5hbWU6InNlZ21lbnQifSx7dHlwZToiVWludDE2IixuYW1lOiJsb3dlclNpemUifSx7dHlwZToiVWludDE2IixuYW1lOiJ1cHBlclNpemUifSx7dHlwZToiRmxvYXQzMiIsbmFtZToibGluZU9mZnNldFgifSx7dHlwZToiRmxvYXQzMiIsbmFtZToibGluZU9mZnNldFkifSx7dHlwZToiVWludDgiLG5hbWU6IndyaXRpbmdNb2RlIn0se3R5cGU6IlVpbnQ4IixuYW1lOiJwbGFjZWRPcmllbnRhdGlvbiJ9LHt0eXBlOiJVaW50OCIsbmFtZToiaGlkZGVuIn0se3R5cGU6IlVpbnQzMiIsbmFtZToiY3Jvc3NUaWxlSUQifSx7dHlwZToiSW50MTYiLG5hbWU6ImFzc29jaWF0ZWRJY29uSW5kZXgifV0pLElpKFt7dHlwZToiSW50MTYiLG5hbWU6ImFuY2hvclgifSx7dHlwZToiSW50MTYiLG5hbWU6ImFuY2hvclkifSx7dHlwZToiSW50MTYiLG5hbWU6InJpZ2h0SnVzdGlmaWVkVGV4dFN5bWJvbEluZGV4In0se3R5cGU6IkludDE2IixuYW1lOiJjZW50ZXJKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXgifSx7dHlwZToiSW50MTYiLG5hbWU6ImxlZnRKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXgifSx7dHlwZToiSW50MTYiLG5hbWU6InZlcnRpY2FsUGxhY2VkVGV4dFN5bWJvbEluZGV4In0se3R5cGU6IkludDE2IixuYW1lOiJwbGFjZWRJY29uU3ltYm9sSW5kZXgifSx7dHlwZToiSW50MTYiLG5hbWU6InZlcnRpY2FsUGxhY2VkSWNvblN5bWJvbEluZGV4In0se3R5cGU6IlVpbnQxNiIsbmFtZToia2V5In0se3R5cGU6IlVpbnQxNiIsbmFtZToidGV4dEJveFN0YXJ0SW5kZXgifSx7dHlwZToiVWludDE2IixuYW1lOiJ0ZXh0Qm94RW5kSW5kZXgifSx7dHlwZToiVWludDE2IixuYW1lOiJ2ZXJ0aWNhbFRleHRCb3hTdGFydEluZGV4In0se3R5cGU6IlVpbnQxNiIsbmFtZToidmVydGljYWxUZXh0Qm94RW5kSW5kZXgifSx7dHlwZToiVWludDE2IixuYW1lOiJpY29uQm94U3RhcnRJbmRleCJ9LHt0eXBlOiJVaW50MTYiLG5hbWU6Imljb25Cb3hFbmRJbmRleCJ9LHt0eXBlOiJVaW50MTYiLG5hbWU6InZlcnRpY2FsSWNvbkJveFN0YXJ0SW5kZXgifSx7dHlwZToiVWludDE2IixuYW1lOiJ2ZXJ0aWNhbEljb25Cb3hFbmRJbmRleCJ9LHt0eXBlOiJVaW50MTYiLG5hbWU6ImZlYXR1cmVJbmRleCJ9LHt0eXBlOiJVaW50MTYiLG5hbWU6Im51bUhvcml6b250YWxHbHlwaFZlcnRpY2VzIn0se3R5cGU6IlVpbnQxNiIsbmFtZToibnVtVmVydGljYWxHbHlwaFZlcnRpY2VzIn0se3R5cGU6IlVpbnQxNiIsbmFtZToibnVtSWNvblZlcnRpY2VzIn0se3R5cGU6IlVpbnQxNiIsbmFtZToibnVtVmVydGljYWxJY29uVmVydGljZXMifSx7dHlwZToiVWludDE2IixuYW1lOiJ1c2VSdW50aW1lQ29sbGlzaW9uQ2lyY2xlcyJ9LHt0eXBlOiJVaW50MzIiLG5hbWU6ImNyb3NzVGlsZUlEIn0se3R5cGU6IkZsb2F0MzIiLG5hbWU6InRleHRCb3hTY2FsZSJ9LHt0eXBlOiJGbG9hdDMyIixjb21wb25lbnRzOjIsbmFtZToidGV4dE9mZnNldCJ9LHt0eXBlOiJGbG9hdDMyIixuYW1lOiJjb2xsaXNpb25DaXJjbGVEaWFtZXRlciJ9XSksSWkoW3t0eXBlOiJGbG9hdDMyIixuYW1lOiJvZmZzZXRYIn1dKSxJaShbe3R5cGU6IkludDE2IixuYW1lOiJ4In0se3R5cGU6IkludDE2IixuYW1lOiJ5In0se3R5cGU6IkludDE2IixuYW1lOiJ0aWxlVW5pdERpc3RhbmNlRnJvbUFuY2hvciJ9XSk7ZnVuY3Rpb24gZWwodCxlLHIpe3JldHVybiB0LnNlY3Rpb25zLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QudGV4dD1mdW5jdGlvbih0LGUscil7dmFyIG49ZS5sYXlvdXQuZ2V0KCJ0ZXh0LXRyYW5zZm9ybSIpLmV2YWx1YXRlKHIse30pO3JldHVybiJ1cHBlcmNhc2UiPT09bj90PXQudG9Mb2NhbGVVcHBlckNhc2UoKToibG93ZXJjYXNlIj09PW4mJih0PXQudG9Mb2NhbGVMb3dlckNhc2UoKSksaGkuYXBwbHlBcmFiaWNTaGFwaW5nJiYodD1oaS5hcHBseUFyYWJpY1NoYXBpbmcodCkpLHR9KHQudGV4dCxlLHIpfSkpLHR9dmFyIHJsPXsiISI6Ilx1ZmUxNSIsIiMiOiJcdWZmMDMiLCQ6Ilx1ZmYwNCIsIiUiOiJcdWZmMDUiLCImIjoiXHVmZjA2IiwiKCI6Ilx1ZmUzNSIsIikiOiJcdWZlMzYiLCIqIjoiXHVmZjBhIiwiKyI6Ilx1ZmYwYiIsIiwiOiJcdWZlMTAiLCItIjoiXHVmZTMyIiwiLiI6Ilx1MzBmYiIsIi8iOiJcdWZmMGYiLCI6IjoiXHVmZTEzIiwiOyI6Ilx1ZmUxNCIsIjwiOiJcdWZlM2YiLCI9IjoiXHVmZjFkIiwiPiI6Ilx1ZmU0MCIsIj8iOiJcdWZlMTYiLCJAIjoiXHVmZjIwIiwiWyI6Ilx1ZmU0NyIsIlxcIjoiXHVmZjNjIiwiXSI6Ilx1ZmU0OCIsIl4iOiJcdWZmM2UiLF86Ilx1ZmUzMyIsImAiOiJcdWZmNDAiLCJ7IjoiXHVmZTM3IiwifCI6Ilx1MjAxNSIsIn0iOiJcdWZlMzgiLCJ+IjoiXHVmZjVlIiwiXHhhMiI6Ilx1ZmZlMCIsIlx4YTMiOiJcdWZmZTEiLCJceGE1IjoiXHVmZmU1IiwiXHhhNiI6Ilx1ZmZlNCIsIlx4YWMiOiJcdWZmZTIiLCJceGFmIjoiXHVmZmUzIiwiXHUyMDEzIjoiXHVmZTMyIiwiXHUyMDE0IjoiXHVmZTMxIiwiXHUyMDE4IjoiXHVmZTQzIiwiXHUyMDE5IjoiXHVmZTQ0IiwiXHUyMDFjIjoiXHVmZTQxIiwiXHUyMDFkIjoiXHVmZTQyIiwiXHUyMDI2IjoiXHVmZTE5IiwiXHUyMDI3IjoiXHUzMGZiIiwiXHUyMGE5IjoiXHVmZmU2IiwiXHUzMDAxIjoiXHVmZTExIiwiXHUzMDAyIjoiXHVmZTEyIiwiXHUzMDA4IjoiXHVmZTNmIiwiXHUzMDA5IjoiXHVmZTQwIiwiXHUzMDBhIjoiXHVmZTNkIiwiXHUzMDBiIjoiXHVmZTNlIiwiXHUzMDBjIjoiXHVmZTQxIiwiXHUzMDBkIjoiXHVmZTQyIiwiXHUzMDBlIjoiXHVmZTQzIiwiXHUzMDBmIjoiXHVmZTQ0IiwiXHUzMDEwIjoiXHVmZTNiIiwiXHUzMDExIjoiXHVmZTNjIiwiXHUzMDE0IjoiXHVmZTM5IiwiXHUzMDE1IjoiXHVmZTNhIiwiXHUzMDE2IjoiXHVmZTE3IiwiXHUzMDE3IjoiXHVmZTE4IiwiXHVmZjAxIjoiXHVmZTE1IiwiXHVmZjA4IjoiXHVmZTM1IiwiXHVmZjA5IjoiXHVmZTM2IiwiXHVmZjBjIjoiXHVmZTEwIiwiXHVmZjBkIjoiXHVmZTMyIiwiXHVmZjBlIjoiXHUzMGZiIiwiXHVmZjFhIjoiXHVmZTEzIiwiXHVmZjFiIjoiXHVmZTE0IiwiXHVmZjFjIjoiXHVmZTNmIiwiXHVmZjFlIjoiXHVmZTQwIiwiXHVmZjFmIjoiXHVmZTE2IiwiXHVmZjNiIjoiXHVmZTQ3IiwiXHVmZjNkIjoiXHVmZTQ4IiwiXHVmZjNmIjoiXHVmZTMzIiwiXHVmZjViIjoiXHVmZTM3IiwiXHVmZjVjIjoiXHUyMDE1IiwiXHVmZjVkIjoiXHVmZTM4IiwiXHVmZjVmIjoiXHVmZTM1IiwiXHVmZjYwIjoiXHVmZTM2IiwiXHVmZjYxIjoiXHVmZTEyIiwiXHVmZjYyIjoiXHVmZTQxIiwiXHVmZjYzIjoiXHVmZTQyIn07dmFyIG5sPWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGEsbyxzPTgqaS1uLTEsbD0oMTw8cyktMSxjPWw+PjEsdT0tNyxmPXI/aS0xOjAsaD1yPy0xOjEscD10W2UrZl07Zm9yKGYrPWgsYT1wJigxPDwtdSktMSxwPj49LXUsdSs9czt1PjA7YT0yNTYqYSt0W2UrZl0sZis9aCx1LT04KTtmb3Iobz1hJigxPDwtdSktMSxhPj49LXUsdSs9bjt1PjA7bz0yNTYqbyt0W2UrZl0sZis9aCx1LT04KTtpZigwPT09YSlhPTEtYztlbHNle2lmKGE9PT1sKXJldHVybiBvP05hTjoxLzAqKHA/LTE6MSk7bys9TWF0aC5wb3coMixuKSxhLT1jfXJldHVybihwPy0xOjEpKm8qTWF0aC5wb3coMixhLW4pfSxpbD1mdW5jdGlvbih0LGUscixuLGksYSl7dmFyIG8scyxsLGM9OCphLWktMSx1PSgxPDxjKS0xLGY9dT4+MSxoPTIzPT09aT9NYXRoLnBvdygyLC0yNCktTWF0aC5wb3coMiwtNzcpOjAscD1uPzA6YS0xLGQ9bj8xOi0xLG09ZTwwfHwwPT09ZSYmMS9lPDA/MTowO2ZvcihlPU1hdGguYWJzKGUpLGlzTmFOKGUpfHxlPT09MS8wPyhzPWlzTmFOKGUpPzE6MCxvPXUpOihvPU1hdGguZmxvb3IoTWF0aC5sb2coZSkvTWF0aC5MTjIpLGUqKGw9TWF0aC5wb3coMiwtbykpPDEmJihvLS0sbCo9MiksKGUrPW8rZj49MT9oL2w6aCpNYXRoLnBvdygyLDEtZikpKmw+PTImJihvKyssbC89MiksbytmPj11PyhzPTAsbz11KTpvK2Y+PTE/KHM9KGUqbC0xKSpNYXRoLnBvdygyLGkpLG8rPWYpOihzPWUqTWF0aC5wb3coMixmLTEpKk1hdGgucG93KDIsaSksbz0wKSk7aT49ODt0W3IrcF09MjU1JnMscCs9ZCxzLz0yNTYsaS09OCk7Zm9yKG89bzw8aXxzLGMrPWk7Yz4wO3RbcitwXT0yNTUmbyxwKz1kLG8vPTI1NixjLT04KTt0W3IrcC1kXXw9MTI4Km19LGFsPW9sO2Z1bmN0aW9uIG9sKHQpe3RoaXMuYnVmPUFycmF5QnVmZmVyLmlzVmlldyYmQXJyYXlCdWZmZXIuaXNWaWV3KHQpP3Q6bmV3IFVpbnQ4QXJyYXkodHx8MCksdGhpcy5wb3M9MCx0aGlzLnR5cGU9MCx0aGlzLmxlbmd0aD10aGlzLmJ1Zi5sZW5ndGh9b2wuVmFyaW50PTAsb2wuRml4ZWQ2ND0xLG9sLkJ5dGVzPTIsb2wuRml4ZWQzMj01O3ZhciBzbD0idW5kZWZpbmVkIj09dHlwZW9mIFRleHREZWNvZGVyP251bGw6bmV3IFRleHREZWNvZGVyKCJ1dGY4Iik7ZnVuY3Rpb24gbGwodCl7cmV0dXJuIHQudHlwZT09PW9sLkJ5dGVzP3QucmVhZFZhcmludCgpK3QucG9zOnQucG9zKzF9ZnVuY3Rpb24gY2wodCxlLHIpe3JldHVybiByPzQyOTQ5NjcyOTYqZSsodD4+PjApOjQyOTQ5NjcyOTYqKGU+Pj4wKSsodD4+PjApfWZ1bmN0aW9uIHVsKHQsZSxyKXt2YXIgbj1lPD0xNjM4Mz8xOmU8PTIwOTcxNTE/MjplPD0yNjg0MzU0NTU/MzpNYXRoLmZsb29yKE1hdGgubG9nKGUpLyg3Kk1hdGguTE4yKSk7ci5yZWFsbG9jKG4pO2Zvcih2YXIgaT1yLnBvcy0xO2k+PXQ7aS0tKXIuYnVmW2krbl09ci5idWZbaV19ZnVuY3Rpb24gZmwodCxlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyllLndyaXRlVmFyaW50KHRbcl0pfWZ1bmN0aW9uIGhsKHQsZSl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspZS53cml0ZVNWYXJpbnQodFtyXSl9ZnVuY3Rpb24gcGwodCxlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyllLndyaXRlRmxvYXQodFtyXSl9ZnVuY3Rpb24gZGwodCxlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyllLndyaXRlRG91YmxlKHRbcl0pfWZ1bmN0aW9uIG1sKHQsZSl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspZS53cml0ZUJvb2xlYW4odFtyXSl9ZnVuY3Rpb24gZ2wodCxlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyllLndyaXRlRml4ZWQzMih0W3JdKX1mdW5jdGlvbiB2bCh0LGUpe2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKWUud3JpdGVTRml4ZWQzMih0W3JdKX1mdW5jdGlvbiB5bCh0LGUpe2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKWUud3JpdGVGaXhlZDY0KHRbcl0pfWZ1bmN0aW9uIHhsKHQsZSl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspZS53cml0ZVNGaXhlZDY0KHRbcl0pfWZ1bmN0aW9uIGJsKHQsZSl7cmV0dXJuKHRbZV18dFtlKzFdPDw4fHRbZSsyXTw8MTYpKzE2Nzc3MjE2KnRbZSszXX1mdW5jdGlvbiBfbCh0LGUscil7dFtyXT1lLHRbcisxXT1lPj4+OCx0W3IrMl09ZT4+PjE2LHRbciszXT1lPj4+MjR9ZnVuY3Rpb24gd2wodCxlKXtyZXR1cm4odFtlXXx0W2UrMV08PDh8dFtlKzJdPDwxNikrKHRbZSszXTw8MjQpfW9sLnByb3RvdHlwZT17ZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuYnVmPW51bGx9LHJlYWRGaWVsZHM6ZnVuY3Rpb24odCxlLHIpe2ZvcihyPXJ8fHRoaXMubGVuZ3RoO3RoaXMucG9zPHI7KXt2YXIgbj10aGlzLnJlYWRWYXJpbnQoKSxpPW4+PjMsYT10aGlzLnBvczt0aGlzLnR5cGU9NyZuLHQoaSxlLHRoaXMpLHRoaXMucG9zPT09YSYmdGhpcy5za2lwKG4pfXJldHVybiBlfSxyZWFkTWVzc2FnZTpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnJlYWRGaWVsZHModCxlLHRoaXMucmVhZFZhcmludCgpK3RoaXMucG9zKX0scmVhZEZpeGVkMzI6ZnVuY3Rpb24oKXt2YXIgdD1ibCh0aGlzLmJ1Zix0aGlzLnBvcyk7cmV0dXJuIHRoaXMucG9zKz00LHR9LHJlYWRTRml4ZWQzMjpmdW5jdGlvbigpe3ZhciB0PXdsKHRoaXMuYnVmLHRoaXMucG9zKTtyZXR1cm4gdGhpcy5wb3MrPTQsdH0scmVhZEZpeGVkNjQ6ZnVuY3Rpb24oKXt2YXIgdD1ibCh0aGlzLmJ1Zix0aGlzLnBvcykrNDI5NDk2NzI5NipibCh0aGlzLmJ1Zix0aGlzLnBvcys0KTtyZXR1cm4gdGhpcy5wb3MrPTgsdH0scmVhZFNGaXhlZDY0OmZ1bmN0aW9uKCl7dmFyIHQ9YmwodGhpcy5idWYsdGhpcy5wb3MpKzQyOTQ5NjcyOTYqd2wodGhpcy5idWYsdGhpcy5wb3MrNCk7cmV0dXJuIHRoaXMucG9zKz04LHR9LHJlYWRGbG9hdDpmdW5jdGlvbigpe3ZhciB0PW5sKHRoaXMuYnVmLHRoaXMucG9zLCEwLDIzLDQpO3JldHVybiB0aGlzLnBvcys9NCx0fSxyZWFkRG91YmxlOmZ1bmN0aW9uKCl7dmFyIHQ9bmwodGhpcy5idWYsdGhpcy5wb3MsITAsNTIsOCk7cmV0dXJuIHRoaXMucG9zKz04LHR9LHJlYWRWYXJpbnQ6ZnVuY3Rpb24odCl7dmFyIGUscixuPXRoaXMuYnVmO3JldHVybiBlPTEyNyYocj1uW3RoaXMucG9zKytdKSxyPDEyOD9lOihlfD0oMTI3JihyPW5bdGhpcy5wb3MrK10pKTw8NyxyPDEyOD9lOihlfD0oMTI3JihyPW5bdGhpcy5wb3MrK10pKTw8MTQscjwxMjg/ZTooZXw9KDEyNyYocj1uW3RoaXMucG9zKytdKSk8PDIxLHI8MTI4P2U6ZnVuY3Rpb24odCxlLHIpe3ZhciBuLGksYT1yLmJ1ZjtpZihpPWFbci5wb3MrK10sbj0oMTEyJmkpPj40LGk8MTI4KXJldHVybiBjbCh0LG4sZSk7aWYoaT1hW3IucG9zKytdLG58PSgxMjcmaSk8PDMsaTwxMjgpcmV0dXJuIGNsKHQsbixlKTtpZihpPWFbci5wb3MrK10sbnw9KDEyNyZpKTw8MTAsaTwxMjgpcmV0dXJuIGNsKHQsbixlKTtpZihpPWFbci5wb3MrK10sbnw9KDEyNyZpKTw8MTcsaTwxMjgpcmV0dXJuIGNsKHQsbixlKTtpZihpPWFbci5wb3MrK10sbnw9KDEyNyZpKTw8MjQsaTwxMjgpcmV0dXJuIGNsKHQsbixlKTtpZihpPWFbci5wb3MrK10sbnw9KDEmaSk8PDMxLGk8MTI4KXJldHVybiBjbCh0LG4sZSk7dGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCB2YXJpbnQgbm90IG1vcmUgdGhhbiAxMCBieXRlcyIpfShlfD0oMTUmKHI9blt0aGlzLnBvc10pKTw8MjgsdCx0aGlzKSkpKX0scmVhZFZhcmludDY0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVhZFZhcmludCghMCl9LHJlYWRTVmFyaW50OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5yZWFkVmFyaW50KCk7cmV0dXJuIHQlMj09MT8odCsxKS8tMjp0LzJ9LHJlYWRCb29sZWFuOmZ1bmN0aW9uKCl7cmV0dXJuIEJvb2xlYW4odGhpcy5yZWFkVmFyaW50KCkpfSxyZWFkU3RyaW5nOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5yZWFkVmFyaW50KCkrdGhpcy5wb3MsZT10aGlzLnBvcztyZXR1cm4gdGhpcy5wb3M9dCx0LWU+PTEyJiZzbD9mdW5jdGlvbih0LGUscil7cmV0dXJuIHNsLmRlY29kZSh0LnN1YmFycmF5KGUscikpfSh0aGlzLmJ1ZixlLHQpOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj0iIixpPWU7Zm9yKDtpPHI7KXt2YXIgYSxvLHMsbD10W2ldLGM9bnVsbCx1PWw+MjM5PzQ6bD4yMjM/MzpsPjE5MT8yOjE7aWYoaSt1PnIpYnJlYWs7MT09PXU/bDwxMjgmJihjPWwpOjI9PT11PzEyOD09KDE5MiYoYT10W2krMV0pKSYmKGM9KDMxJmwpPDw2fDYzJmEpPD0xMjcmJihjPW51bGwpOjM9PT11PyhhPXRbaSsxXSxvPXRbaSsyXSwxMjg9PSgxOTImYSkmJjEyOD09KDE5MiZvKSYmKChjPSgxNSZsKTw8MTJ8KDYzJmEpPDw2fDYzJm8pPD0yMDQ3fHxjPj01NTI5NiYmYzw9NTczNDMpJiYoYz1udWxsKSk6ND09PXUmJihhPXRbaSsxXSxvPXRbaSsyXSxzPXRbaSszXSwxMjg9PSgxOTImYSkmJjEyOD09KDE5MiZvKSYmMTI4PT0oMTkyJnMpJiYoKGM9KDE1JmwpPDwxOHwoNjMmYSk8PDEyfCg2MyZvKTw8Nnw2MyZzKTw9NjU1MzV8fGM+PTExMTQxMTIpJiYoYz1udWxsKSksbnVsbD09PWM/KGM9NjU1MzMsdT0xKTpjPjY1NTM1JiYoYy09NjU1MzYsbis9U3RyaW5nLmZyb21DaGFyQ29kZShjPj4+MTAmMTAyM3w1NTI5NiksYz01NjMyMHwxMDIzJmMpLG4rPVN0cmluZy5mcm9tQ2hhckNvZGUoYyksaSs9dX1yZXR1cm4gbn0odGhpcy5idWYsZSx0KX0scmVhZEJ5dGVzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5yZWFkVmFyaW50KCkrdGhpcy5wb3MsZT10aGlzLmJ1Zi5zdWJhcnJheSh0aGlzLnBvcyx0KTtyZXR1cm4gdGhpcy5wb3M9dCxlfSxyZWFkUGFja2VkVmFyaW50OmZ1bmN0aW9uKHQsZSl7aWYodGhpcy50eXBlIT09b2wuQnl0ZXMpcmV0dXJuIHQucHVzaCh0aGlzLnJlYWRWYXJpbnQoZSkpO3ZhciByPWxsKHRoaXMpO2Zvcih0PXR8fFtdO3RoaXMucG9zPHI7KXQucHVzaCh0aGlzLnJlYWRWYXJpbnQoZSkpO3JldHVybiB0fSxyZWFkUGFja2VkU1ZhcmludDpmdW5jdGlvbih0KXtpZih0aGlzLnR5cGUhPT1vbC5CeXRlcylyZXR1cm4gdC5wdXNoKHRoaXMucmVhZFNWYXJpbnQoKSk7dmFyIGU9bGwodGhpcyk7Zm9yKHQ9dHx8W107dGhpcy5wb3M8ZTspdC5wdXNoKHRoaXMucmVhZFNWYXJpbnQoKSk7cmV0dXJuIHR9LHJlYWRQYWNrZWRCb29sZWFuOmZ1bmN0aW9uKHQpe2lmKHRoaXMudHlwZSE9PW9sLkJ5dGVzKXJldHVybiB0LnB1c2godGhpcy5yZWFkQm9vbGVhbigpKTt2YXIgZT1sbCh0aGlzKTtmb3IodD10fHxbXTt0aGlzLnBvczxlOyl0LnB1c2godGhpcy5yZWFkQm9vbGVhbigpKTtyZXR1cm4gdH0scmVhZFBhY2tlZEZsb2F0OmZ1bmN0aW9uKHQpe2lmKHRoaXMudHlwZSE9PW9sLkJ5dGVzKXJldHVybiB0LnB1c2godGhpcy5yZWFkRmxvYXQoKSk7dmFyIGU9bGwodGhpcyk7Zm9yKHQ9dHx8W107dGhpcy5wb3M8ZTspdC5wdXNoKHRoaXMucmVhZEZsb2F0KCkpO3JldHVybiB0fSxyZWFkUGFja2VkRG91YmxlOmZ1bmN0aW9uKHQpe2lmKHRoaXMudHlwZSE9PW9sLkJ5dGVzKXJldHVybiB0LnB1c2godGhpcy5yZWFkRG91YmxlKCkpO3ZhciBlPWxsKHRoaXMpO2Zvcih0PXR8fFtdO3RoaXMucG9zPGU7KXQucHVzaCh0aGlzLnJlYWREb3VibGUoKSk7cmV0dXJuIHR9LHJlYWRQYWNrZWRGaXhlZDMyOmZ1bmN0aW9uKHQpe2lmKHRoaXMudHlwZSE9PW9sLkJ5dGVzKXJldHVybiB0LnB1c2godGhpcy5yZWFkRml4ZWQzMigpKTt2YXIgZT1sbCh0aGlzKTtmb3IodD10fHxbXTt0aGlzLnBvczxlOyl0LnB1c2godGhpcy5yZWFkRml4ZWQzMigpKTtyZXR1cm4gdH0scmVhZFBhY2tlZFNGaXhlZDMyOmZ1bmN0aW9uKHQpe2lmKHRoaXMudHlwZSE9PW9sLkJ5dGVzKXJldHVybiB0LnB1c2godGhpcy5yZWFkU0ZpeGVkMzIoKSk7dmFyIGU9bGwodGhpcyk7Zm9yKHQ9dHx8W107dGhpcy5wb3M8ZTspdC5wdXNoKHRoaXMucmVhZFNGaXhlZDMyKCkpO3JldHVybiB0fSxyZWFkUGFja2VkRml4ZWQ2NDpmdW5jdGlvbih0KXtpZih0aGlzLnR5cGUhPT1vbC5CeXRlcylyZXR1cm4gdC5wdXNoKHRoaXMucmVhZEZpeGVkNjQoKSk7dmFyIGU9bGwodGhpcyk7Zm9yKHQ9dHx8W107dGhpcy5wb3M8ZTspdC5wdXNoKHRoaXMucmVhZEZpeGVkNjQoKSk7cmV0dXJuIHR9LHJlYWRQYWNrZWRTRml4ZWQ2NDpmdW5jdGlvbih0KXtpZih0aGlzLnR5cGUhPT1vbC5CeXRlcylyZXR1cm4gdC5wdXNoKHRoaXMucmVhZFNGaXhlZDY0KCkpO3ZhciBlPWxsKHRoaXMpO2Zvcih0PXR8fFtdO3RoaXMucG9zPGU7KXQucHVzaCh0aGlzLnJlYWRTRml4ZWQ2NCgpKTtyZXR1cm4gdH0sc2tpcDpmdW5jdGlvbih0KXt2YXIgZT03JnQ7aWYoZT09PW9sLlZhcmludClmb3IoO3RoaXMuYnVmW3RoaXMucG9zKytdPjEyNzspO2Vsc2UgaWYoZT09PW9sLkJ5dGVzKXRoaXMucG9zPXRoaXMucmVhZFZhcmludCgpK3RoaXMucG9zO2Vsc2UgaWYoZT09PW9sLkZpeGVkMzIpdGhpcy5wb3MrPTQ7ZWxzZXtpZihlIT09b2wuRml4ZWQ2NCl0aHJvdyBuZXcgRXJyb3IoIlVuaW1wbGVtZW50ZWQgdHlwZTogIitlKTt0aGlzLnBvcys9OH19LHdyaXRlVGFnOmZ1bmN0aW9uKHQsZSl7dGhpcy53cml0ZVZhcmludCh0PDwzfGUpfSxyZWFsbG9jOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLmxlbmd0aHx8MTY7ZTx0aGlzLnBvcyt0OyllKj0yO2lmKGUhPT10aGlzLmxlbmd0aCl7dmFyIHI9bmV3IFVpbnQ4QXJyYXkoZSk7ci5zZXQodGhpcy5idWYpLHRoaXMuYnVmPXIsdGhpcy5sZW5ndGg9ZX19LGZpbmlzaDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxlbmd0aD10aGlzLnBvcyx0aGlzLnBvcz0wLHRoaXMuYnVmLnN1YmFycmF5KDAsdGhpcy5sZW5ndGgpfSx3cml0ZUZpeGVkMzI6ZnVuY3Rpb24odCl7dGhpcy5yZWFsbG9jKDQpLF9sKHRoaXMuYnVmLHQsdGhpcy5wb3MpLHRoaXMucG9zKz00fSx3cml0ZVNGaXhlZDMyOmZ1bmN0aW9uKHQpe3RoaXMucmVhbGxvYyg0KSxfbCh0aGlzLmJ1Zix0LHRoaXMucG9zKSx0aGlzLnBvcys9NH0sd3JpdGVGaXhlZDY0OmZ1bmN0aW9uKHQpe3RoaXMucmVhbGxvYyg4KSxfbCh0aGlzLmJ1ZiwtMSZ0LHRoaXMucG9zKSxfbCh0aGlzLmJ1ZixNYXRoLmZsb29yKHQqKDEvNDI5NDk2NzI5NikpLHRoaXMucG9zKzQpLHRoaXMucG9zKz04fSx3cml0ZVNGaXhlZDY0OmZ1bmN0aW9uKHQpe3RoaXMucmVhbGxvYyg4KSxfbCh0aGlzLmJ1ZiwtMSZ0LHRoaXMucG9zKSxfbCh0aGlzLmJ1ZixNYXRoLmZsb29yKHQqKDEvNDI5NDk2NzI5NikpLHRoaXMucG9zKzQpLHRoaXMucG9zKz04fSx3cml0ZVZhcmludDpmdW5jdGlvbih0KXsodD0rdHx8MCk+MjY4NDM1NDU1fHx0PDA/ZnVuY3Rpb24odCxlKXt2YXIgcixuO3Q+PTA/KHI9dCU0Mjk0OTY3Mjk2fDAsbj10LzQyOTQ5NjcyOTZ8MCk6KG49figtdC80Mjk0OTY3Mjk2KSw0Mjk0OTY3Mjk1XihyPX4oLXQlNDI5NDk2NzI5NikpP3I9cisxfDA6KHI9MCxuPW4rMXwwKSk7aWYodD49MHgxMDAwMDAwMDAwMDAwMDAwMHx8dDwtMHgxMDAwMDAwMDAwMDAwMDAwMCl0aHJvdyBuZXcgRXJyb3IoIkdpdmVuIHZhcmludCBkb2Vzbid0IGZpdCBpbnRvIDEwIGJ5dGVzIik7ZS5yZWFsbG9jKDEwKSxmdW5jdGlvbih0LGUscil7ci5idWZbci5wb3MrK109MTI3JnR8MTI4LHQ+Pj49NyxyLmJ1ZltyLnBvcysrXT0xMjcmdHwxMjgsdD4+Pj03LHIuYnVmW3IucG9zKytdPTEyNyZ0fDEyOCx0Pj4+PTcsci5idWZbci5wb3MrK109MTI3JnR8MTI4LHQ+Pj49NyxyLmJ1ZltyLnBvc109MTI3JnR9KHIsMCxlKSxmdW5jdGlvbih0LGUpe3ZhciByPSg3JnQpPDw0O2lmKGUuYnVmW2UucG9zKytdfD1yfCgodD4+Pj0zKT8xMjg6MCksIXQpcmV0dXJuO2lmKGUuYnVmW2UucG9zKytdPTEyNyZ0fCgodD4+Pj03KT8xMjg6MCksIXQpcmV0dXJuO2lmKGUuYnVmW2UucG9zKytdPTEyNyZ0fCgodD4+Pj03KT8xMjg6MCksIXQpcmV0dXJuO2lmKGUuYnVmW2UucG9zKytdPTEyNyZ0fCgodD4+Pj03KT8xMjg6MCksIXQpcmV0dXJuO2lmKGUuYnVmW2UucG9zKytdPTEyNyZ0fCgodD4+Pj03KT8xMjg6MCksIXQpcmV0dXJuO2UuYnVmW2UucG9zKytdPTEyNyZ0fShuLGUpfSh0LHRoaXMpOih0aGlzLnJlYWxsb2MoNCksdGhpcy5idWZbdGhpcy5wb3MrK109MTI3JnR8KHQ+MTI3PzEyODowKSx0PD0xMjd8fCh0aGlzLmJ1Zlt0aGlzLnBvcysrXT0xMjcmKHQ+Pj49Nyl8KHQ+MTI3PzEyODowKSx0PD0xMjd8fCh0aGlzLmJ1Zlt0aGlzLnBvcysrXT0xMjcmKHQ+Pj49Nyl8KHQ+MTI3PzEyODowKSx0PD0xMjd8fCh0aGlzLmJ1Zlt0aGlzLnBvcysrXT10Pj4+NyYxMjcpKSkpfSx3cml0ZVNWYXJpbnQ6ZnVuY3Rpb24odCl7dGhpcy53cml0ZVZhcmludCh0PDA/MiotdC0xOjIqdCl9LHdyaXRlQm9vbGVhbjpmdW5jdGlvbih0KXt0aGlzLndyaXRlVmFyaW50KEJvb2xlYW4odCkpfSx3cml0ZVN0cmluZzpmdW5jdGlvbih0KXt0PVN0cmluZyh0KSx0aGlzLnJlYWxsb2MoNCp0Lmxlbmd0aCksdGhpcy5wb3MrKzt2YXIgZT10aGlzLnBvczt0aGlzLnBvcz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuLGksYT0wO2E8ZS5sZW5ndGg7YSsrKXtpZigobj1lLmNoYXJDb2RlQXQoYSkpPjU1Mjk1JiZuPDU3MzQ0KXtpZighaSl7bj41NjMxOXx8YSsxPT09ZS5sZW5ndGg/KHRbcisrXT0yMzksdFtyKytdPTE5MSx0W3IrK109MTg5KTppPW47Y29udGludWV9aWYobjw1NjMyMCl7dFtyKytdPTIzOSx0W3IrK109MTkxLHRbcisrXT0xODksaT1uO2NvbnRpbnVlfW49aS01NTI5Njw8MTB8bi01NjMyMHw2NTUzNixpPW51bGx9ZWxzZSBpJiYodFtyKytdPTIzOSx0W3IrK109MTkxLHRbcisrXT0xODksaT1udWxsKTtuPDEyOD90W3IrK109bjoobjwyMDQ4P3RbcisrXT1uPj42fDE5Mjoobjw2NTUzNj90W3IrK109bj4+MTJ8MjI0Oih0W3IrK109bj4+MTh8MjQwLHRbcisrXT1uPj4xMiY2M3wxMjgpLHRbcisrXT1uPj42JjYzfDEyOCksdFtyKytdPTYzJm58MTI4KX1yZXR1cm4gcn0odGhpcy5idWYsdCx0aGlzLnBvcyk7dmFyIHI9dGhpcy5wb3MtZTtyPj0xMjgmJnVsKGUscix0aGlzKSx0aGlzLnBvcz1lLTEsdGhpcy53cml0ZVZhcmludChyKSx0aGlzLnBvcys9cn0sd3JpdGVGbG9hdDpmdW5jdGlvbih0KXt0aGlzLnJlYWxsb2MoNCksaWwodGhpcy5idWYsdCx0aGlzLnBvcywhMCwyMyw0KSx0aGlzLnBvcys9NH0sd3JpdGVEb3VibGU6ZnVuY3Rpb24odCl7dGhpcy5yZWFsbG9jKDgpLGlsKHRoaXMuYnVmLHQsdGhpcy5wb3MsITAsNTIsOCksdGhpcy5wb3MrPTh9LHdyaXRlQnl0ZXM6ZnVuY3Rpb24odCl7dmFyIGU9dC5sZW5ndGg7dGhpcy53cml0ZVZhcmludChlKSx0aGlzLnJlYWxsb2MoZSk7Zm9yKHZhciByPTA7cjxlO3IrKyl0aGlzLmJ1Zlt0aGlzLnBvcysrXT10W3JdfSx3cml0ZVJhd01lc3NhZ2U6ZnVuY3Rpb24odCxlKXt0aGlzLnBvcysrO3ZhciByPXRoaXMucG9zO3QoZSx0aGlzKTt2YXIgbj10aGlzLnBvcy1yO24+PTEyOCYmdWwocixuLHRoaXMpLHRoaXMucG9zPXItMSx0aGlzLndyaXRlVmFyaW50KG4pLHRoaXMucG9zKz1ufSx3cml0ZU1lc3NhZ2U6ZnVuY3Rpb24odCxlLHIpe3RoaXMud3JpdGVUYWcodCxvbC5CeXRlcyksdGhpcy53cml0ZVJhd01lc3NhZ2UoZSxyKX0sd3JpdGVQYWNrZWRWYXJpbnQ6ZnVuY3Rpb24odCxlKXtlLmxlbmd0aCYmdGhpcy53cml0ZU1lc3NhZ2UodCxmbCxlKX0sd3JpdGVQYWNrZWRTVmFyaW50OmZ1bmN0aW9uKHQsZSl7ZS5sZW5ndGgmJnRoaXMud3JpdGVNZXNzYWdlKHQsaGwsZSl9LHdyaXRlUGFja2VkQm9vbGVhbjpmdW5jdGlvbih0LGUpe2UubGVuZ3RoJiZ0aGlzLndyaXRlTWVzc2FnZSh0LG1sLGUpfSx3cml0ZVBhY2tlZEZsb2F0OmZ1bmN0aW9uKHQsZSl7ZS5sZW5ndGgmJnRoaXMud3JpdGVNZXNzYWdlKHQscGwsZSl9LHdyaXRlUGFja2VkRG91YmxlOmZ1bmN0aW9uKHQsZSl7ZS5sZW5ndGgmJnRoaXMud3JpdGVNZXNzYWdlKHQsZGwsZSl9LHdyaXRlUGFja2VkRml4ZWQzMjpmdW5jdGlvbih0LGUpe2UubGVuZ3RoJiZ0aGlzLndyaXRlTWVzc2FnZSh0LGdsLGUpfSx3cml0ZVBhY2tlZFNGaXhlZDMyOmZ1bmN0aW9uKHQsZSl7ZS5sZW5ndGgmJnRoaXMud3JpdGVNZXNzYWdlKHQsdmwsZSl9LHdyaXRlUGFja2VkRml4ZWQ2NDpmdW5jdGlvbih0LGUpe2UubGVuZ3RoJiZ0aGlzLndyaXRlTWVzc2FnZSh0LHlsLGUpfSx3cml0ZVBhY2tlZFNGaXhlZDY0OmZ1bmN0aW9uKHQsZSl7ZS5sZW5ndGgmJnRoaXMud3JpdGVNZXNzYWdlKHQseGwsZSl9LHdyaXRlQnl0ZXNGaWVsZDpmdW5jdGlvbih0LGUpe3RoaXMud3JpdGVUYWcodCxvbC5CeXRlcyksdGhpcy53cml0ZUJ5dGVzKGUpfSx3cml0ZUZpeGVkMzJGaWVsZDpmdW5jdGlvbih0LGUpe3RoaXMud3JpdGVUYWcodCxvbC5GaXhlZDMyKSx0aGlzLndyaXRlRml4ZWQzMihlKX0sd3JpdGVTRml4ZWQzMkZpZWxkOmZ1bmN0aW9uKHQsZSl7dGhpcy53cml0ZVRhZyh0LG9sLkZpeGVkMzIpLHRoaXMud3JpdGVTRml4ZWQzMihlKX0sd3JpdGVGaXhlZDY0RmllbGQ6ZnVuY3Rpb24odCxlKXt0aGlzLndyaXRlVGFnKHQsb2wuRml4ZWQ2NCksdGhpcy53cml0ZUZpeGVkNjQoZSl9LHdyaXRlU0ZpeGVkNjRGaWVsZDpmdW5jdGlvbih0LGUpe3RoaXMud3JpdGVUYWcodCxvbC5GaXhlZDY0KSx0aGlzLndyaXRlU0ZpeGVkNjQoZSl9LHdyaXRlVmFyaW50RmllbGQ6ZnVuY3Rpb24odCxlKXt0aGlzLndyaXRlVGFnKHQsb2wuVmFyaW50KSx0aGlzLndyaXRlVmFyaW50KGUpfSx3cml0ZVNWYXJpbnRGaWVsZDpmdW5jdGlvbih0LGUpe3RoaXMud3JpdGVUYWcodCxvbC5WYXJpbnQpLHRoaXMud3JpdGVTVmFyaW50KGUpfSx3cml0ZVN0cmluZ0ZpZWxkOmZ1bmN0aW9uKHQsZSl7dGhpcy53cml0ZVRhZyh0LG9sLkJ5dGVzKSx0aGlzLndyaXRlU3RyaW5nKGUpfSx3cml0ZUZsb2F0RmllbGQ6ZnVuY3Rpb24odCxlKXt0aGlzLndyaXRlVGFnKHQsb2wuRml4ZWQzMiksdGhpcy53cml0ZUZsb2F0KGUpfSx3cml0ZURvdWJsZUZpZWxkOmZ1bmN0aW9uKHQsZSl7dGhpcy53cml0ZVRhZyh0LG9sLkZpeGVkNjQpLHRoaXMud3JpdGVEb3VibGUoZSl9LHdyaXRlQm9vbGVhbkZpZWxkOmZ1bmN0aW9uKHQsZSl7dGhpcy53cml0ZVZhcmludEZpZWxkKHQsQm9vbGVhbihlKSl9fTtmdW5jdGlvbiBUbCh0LGUscil7MT09PXQmJnIucmVhZE1lc3NhZ2Uoa2wsZSl9ZnVuY3Rpb24ga2wodCxlLHIpe2lmKDM9PT10KXt2YXIgbj1yLnJlYWRNZXNzYWdlKEFsLHt9KSxpPW4uaWQsYT1uLmJpdG1hcCxvPW4ud2lkdGgscz1uLmhlaWdodCxsPW4ubGVmdCxjPW4udG9wLHU9bi5hZHZhbmNlO2UucHVzaCh7aWQ6aSxiaXRtYXA6bmV3IFNvKHt3aWR0aDpvKzYsaGVpZ2h0OnMrNn0sYSksbWV0cmljczp7d2lkdGg6byxoZWlnaHQ6cyxsZWZ0OmwsdG9wOmMsYWR2YW5jZTp1fX0pfX1mdW5jdGlvbiBBbCh0LGUscil7MT09PXQ/ZS5pZD1yLnJlYWRWYXJpbnQoKToyPT09dD9lLmJpdG1hcD1yLnJlYWRCeXRlcygpOjM9PT10P2Uud2lkdGg9ci5yZWFkVmFyaW50KCk6ND09PXQ/ZS5oZWlnaHQ9ci5yZWFkVmFyaW50KCk6NT09PXQ/ZS5sZWZ0PXIucmVhZFNWYXJpbnQoKTo2PT09dD9lLnRvcD1yLnJlYWRTVmFyaW50KCk6Nz09PXQmJihlLmFkdmFuY2U9ci5yZWFkVmFyaW50KCkpfWZ1bmN0aW9uIE1sKHQpe2Zvcih2YXIgZT0wLHI9MCxuPTAsaT10O248aS5sZW5ndGg7bis9MSl7dmFyIGE9aVtuXTtlKz1hLncqYS5oLHI9TWF0aC5tYXgocixhLncpfXQuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5oLXQuaH0pKTtmb3IodmFyIG89W3t4OjAseTowLHc6TWF0aC5tYXgoTWF0aC5jZWlsKE1hdGguc3FydChlLy45NSkpLHIpLGg6MS8wfV0scz0wLGw9MCxjPTAsdT10O2M8dS5sZW5ndGg7Yys9MSlmb3IodmFyIGY9dVtjXSxoPW8ubGVuZ3RoLTE7aD49MDtoLS0pe3ZhciBwPW9baF07aWYoIShmLnc+cC53fHxmLmg+cC5oKSl7aWYoZi54PXAueCxmLnk9cC55LGw9TWF0aC5tYXgobCxmLnkrZi5oKSxzPU1hdGgubWF4KHMsZi54K2YudyksZi53PT09cC53JiZmLmg9PT1wLmgpe3ZhciBkPW8ucG9wKCk7aDxvLmxlbmd0aCYmKG9baF09ZCl9ZWxzZSBmLmg9PT1wLmg/KHAueCs9Zi53LHAudy09Zi53KTpmLnc9PT1wLnc/KHAueSs9Zi5oLHAuaC09Zi5oKTooby5wdXNoKHt4OnAueCtmLncseTpwLnksdzpwLnctZi53LGg6Zi5ofSkscC55Kz1mLmgscC5oLT1mLmgpO2JyZWFrfX1yZXR1cm57dzpzLGg6bCxmaWxsOmUvKHMqbCl8fDB9fXZhciBTbD1mdW5jdGlvbih0LGUpe3ZhciByPWUucGl4ZWxSYXRpbyxuPWUudmVyc2lvbixpPWUuc3RyZXRjaFgsYT1lLnN0cmV0Y2hZLG89ZS5jb250ZW50O3RoaXMucGFkZGVkUmVjdD10LHRoaXMucGl4ZWxSYXRpbz1yLHRoaXMuc3RyZXRjaFg9aSx0aGlzLnN0cmV0Y2hZPWEsdGhpcy5jb250ZW50PW8sdGhpcy52ZXJzaW9uPW59LEVsPXt0bDp7Y29uZmlndXJhYmxlOiEwfSxicjp7Y29uZmlndXJhYmxlOiEwfSx0bGJyOntjb25maWd1cmFibGU6ITB9LGRpc3BsYXlTaXplOntjb25maWd1cmFibGU6ITB9fTtFbC50bC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm5bdGhpcy5wYWRkZWRSZWN0LngrMSx0aGlzLnBhZGRlZFJlY3QueSsxXX0sRWwuYnIuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuW3RoaXMucGFkZGVkUmVjdC54K3RoaXMucGFkZGVkUmVjdC53LTEsdGhpcy5wYWRkZWRSZWN0LnkrdGhpcy5wYWRkZWRSZWN0LmgtMV19LEVsLnRsYnIuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGwuY29uY2F0KHRoaXMuYnIpfSxFbC5kaXNwbGF5U2l6ZS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm5bKHRoaXMucGFkZGVkUmVjdC53LTIpL3RoaXMucGl4ZWxSYXRpbywodGhpcy5wYWRkZWRSZWN0LmgtMikvdGhpcy5waXhlbFJhdGlvXX0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoU2wucHJvdG90eXBlLEVsKTt2YXIgTGw9ZnVuY3Rpb24odCxlKXt2YXIgcj17fSxuPXt9O3RoaXMuaGF2ZVJlbmRlckNhbGxiYWNrcz1bXTt2YXIgaT1bXTt0aGlzLmFkZEltYWdlcyh0LHIsaSksdGhpcy5hZGRJbWFnZXMoZSxuLGkpO3ZhciBhPU1sKGkpLG89YS53LHM9YS5oLGw9bmV3IEVvKHt3aWR0aDpvfHwxLGhlaWdodDpzfHwxfSk7Zm9yKHZhciBjIGluIHQpe3ZhciB1PXRbY10sZj1yW2NdLnBhZGRlZFJlY3Q7RW8uY29weSh1LmRhdGEsbCx7eDowLHk6MH0se3g6Zi54KzEseTpmLnkrMX0sdS5kYXRhKX1mb3IodmFyIGggaW4gZSl7dmFyIHA9ZVtoXSxkPW5baF0ucGFkZGVkUmVjdCxtPWQueCsxLGc9ZC55KzEsdj1wLmRhdGEud2lkdGgseT1wLmRhdGEuaGVpZ2h0O0VvLmNvcHkocC5kYXRhLGwse3g6MCx5OjB9LHt4Om0seTpnfSxwLmRhdGEpLEVvLmNvcHkocC5kYXRhLGwse3g6MCx5OnktMX0se3g6bSx5OmctMX0se3dpZHRoOnYsaGVpZ2h0OjF9KSxFby5jb3B5KHAuZGF0YSxsLHt4OjAseTowfSx7eDptLHk6Zyt5fSx7d2lkdGg6dixoZWlnaHQ6MX0pLEVvLmNvcHkocC5kYXRhLGwse3g6di0xLHk6MH0se3g6bS0xLHk6Z30se3dpZHRoOjEsaGVpZ2h0Onl9KSxFby5jb3B5KHAuZGF0YSxsLHt4OjAseTowfSx7eDptK3YseTpnfSx7d2lkdGg6MSxoZWlnaHQ6eX0pfXRoaXMuaW1hZ2U9bCx0aGlzLmljb25Qb3NpdGlvbnM9cix0aGlzLnBhdHRlcm5Qb3NpdGlvbnM9bn07TGwucHJvdG90eXBlLmFkZEltYWdlcz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuIGluIHQpe3ZhciBpPXRbbl0sYT17eDowLHk6MCx3OmkuZGF0YS53aWR0aCsyLGg6aS5kYXRhLmhlaWdodCsyfTtyLnB1c2goYSksZVtuXT1uZXcgU2woYSxpKSxpLmhhc1JlbmRlckNhbGxiYWNrJiZ0aGlzLmhhdmVSZW5kZXJDYWxsYmFja3MucHVzaChuKX19LExsLnByb3RvdHlwZS5wYXRjaFVwZGF0ZWRJbWFnZXM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHIgaW4gdC5kaXNwYXRjaFJlbmRlckNhbGxiYWNrcyh0aGlzLmhhdmVSZW5kZXJDYWxsYmFja3MpLHQudXBkYXRlZEltYWdlcyl0aGlzLnBhdGNoVXBkYXRlZEltYWdlKHRoaXMuaWNvblBvc2l0aW9uc1tyXSx0LmdldEltYWdlKHIpLGUpLHRoaXMucGF0Y2hVcGRhdGVkSW1hZ2UodGhpcy5wYXR0ZXJuUG9zaXRpb25zW3JdLHQuZ2V0SW1hZ2UociksZSl9LExsLnByb3RvdHlwZS5wYXRjaFVwZGF0ZWRJbWFnZT1mdW5jdGlvbih0LGUscil7aWYodCYmZSYmdC52ZXJzaW9uIT09ZS52ZXJzaW9uKXt0LnZlcnNpb249ZS52ZXJzaW9uO3ZhciBuPXQudGwsaT1uWzBdLGE9blsxXTtyLnVwZGF0ZShlLmRhdGEsdm9pZCAwLHt4OmkseTphfSl9fSxObigiSW1hZ2VQb3NpdGlvbiIsU2wpLE5uKCJJbWFnZUF0bGFzIixMbCk7dmFyIENsPXtob3Jpem9udGFsOjEsdmVydGljYWw6Mixob3Jpem9udGFsT25seTozfTt2YXIgUGw9ZnVuY3Rpb24oKXt0aGlzLnNjYWxlPTEsdGhpcy5mb250U3RhY2s9IiIsdGhpcy5pbWFnZU5hbWU9bnVsbH07UGwuZm9yVGV4dD1mdW5jdGlvbih0LGUpe3ZhciByPW5ldyBQbDtyZXR1cm4gci5zY2FsZT10fHwxLHIuZm9udFN0YWNrPWUscn0sUGwuZm9ySW1hZ2U9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IFBsO3JldHVybiBlLmltYWdlTmFtZT10LGV9O3ZhciBJbD1mdW5jdGlvbigpe3RoaXMudGV4dD0iIix0aGlzLnNlY3Rpb25JbmRleD1bXSx0aGlzLnNlY3Rpb25zPVtdLHRoaXMuaW1hZ2VTZWN0aW9uSUQ9bnVsbH07ZnVuY3Rpb24gT2wodCxlLHIsbixpLGEsbyxzLGwsYyx1LGYsaCxwLGQsbSl7dmFyIGcsdj1JbC5mcm9tRmVhdHVyZSh0LGkpO2Y9PT1DbC52ZXJ0aWNhbCYmdi52ZXJ0aWNhbGl6ZVB1bmN0dWF0aW9uKCk7dmFyIHk9aGkucHJvY2Vzc0JpZGlyZWN0aW9uYWxUZXh0LHg9aGkucHJvY2Vzc1N0eWxlZEJpZGlyZWN0aW9uYWxUZXh0O2lmKHkmJjE9PT12LnNlY3Rpb25zLmxlbmd0aCl7Zz1bXTtmb3IodmFyIGI9MCxfPXkodi50b1N0cmluZygpLGpsKHYsYyxhLGUsbixwLGQpKTtiPF8ubGVuZ3RoO2IrPTEpe3ZhciB3PV9bYl0sVD1uZXcgSWw7VC50ZXh0PXcsVC5zZWN0aW9ucz12LnNlY3Rpb25zO2Zvcih2YXIgaz0wO2s8dy5sZW5ndGg7aysrKVQuc2VjdGlvbkluZGV4LnB1c2goMCk7Zy5wdXNoKFQpfX1lbHNlIGlmKHgpe2c9W107Zm9yKHZhciBBPTAsTT14KHYudGV4dCx2LnNlY3Rpb25JbmRleCxqbCh2LGMsYSxlLG4scCxkKSk7QTxNLmxlbmd0aDtBKz0xKXt2YXIgUz1NW0FdLEU9bmV3IElsO0UudGV4dD1TWzBdLEUuc2VjdGlvbkluZGV4PVNbMV0sRS5zZWN0aW9ucz12LnNlY3Rpb25zLGcucHVzaChFKX19ZWxzZSBnPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPVtdLG49dC50ZXh0LGk9MCxhPTAsbz1lO2E8by5sZW5ndGg7YSs9MSl7dmFyIHM9b1thXTtyLnB1c2godC5zdWJzdHJpbmcoaSxzKSksaT1zfXJldHVybiBpPG4ubGVuZ3RoJiZyLnB1c2godC5zdWJzdHJpbmcoaSxuLmxlbmd0aCkpLHJ9KHYsamwodixjLGEsZSxuLHAsZCkpO3ZhciBMPVtdLEM9e3Bvc2l0aW9uZWRMaW5lczpMLHRleHQ6di50b1N0cmluZygpLHRvcDp1WzFdLGJvdHRvbTp1WzFdLGxlZnQ6dVswXSxyaWdodDp1WzBdLHdyaXRpbmdNb2RlOmYsaWNvbnNJblRleHQ6ITEsdmVydGljYWxpemFibGU6ITF9O3JldHVybiBmdW5jdGlvbih0LGUscixuLGksYSxvLHMsbCxjLHUsZil7Zm9yKHZhciBoPTAscD0tMTcsZD0wLG09MCxnPSJyaWdodCI9PT1zPzE6ImxlZnQiPT09cz8wOi41LHY9MCx5PTAseD1pO3k8eC5sZW5ndGg7eSs9MSl7dmFyIGI9eFt5XTtiLnRyaW0oKTt2YXIgXz1iLmdldE1heFNjYWxlKCksdz0yNCooXy0xKSxUPXtwb3NpdGlvbmVkR2x5cGhzOltdLGxpbmVPZmZzZXQ6MH07dC5wb3NpdGlvbmVkTGluZXNbdl09VDt2YXIgaz1ULnBvc2l0aW9uZWRHbHlwaHMsQT0wO2lmKGIubGVuZ3RoKCkpe2Zvcih2YXIgTT0wO008Yi5sZW5ndGgoKTtNKyspe3ZhciBTPWIuZ2V0U2VjdGlvbihNKSxFPWIuZ2V0U2VjdGlvbkluZGV4KE0pLEw9Yi5nZXRDaGFyQ29kZShNKSxDPTAsUD1udWxsLEk9bnVsbCxPPW51bGwsej0yNCxEPSEobD09PUNsLmhvcml6b250YWx8fCF1JiYhWm4oTCl8fHUmJih6bFtMXXx8KFk9TCxZbi5BcmFiaWMoWSl8fFluWyJBcmFiaWMgU3VwcGxlbWVudCJdKFkpfHxZblsiQXJhYmljIEV4dGVuZGVkLUEiXShZKXx8WW5bIkFyYWJpYyBQcmVzZW50YXRpb24gRm9ybXMtQSJdKFkpfHxZblsiQXJhYmljIFByZXNlbnRhdGlvbiBGb3Jtcy1CIl0oWSkpKSk7aWYoUy5pbWFnZU5hbWUpe3ZhciBSPW5bUy5pbWFnZU5hbWVdO2lmKCFSKWNvbnRpbnVlO089Uy5pbWFnZU5hbWUsdC5pY29uc0luVGV4dD10Lmljb25zSW5UZXh0fHwhMCxJPVIucGFkZGVkUmVjdDt2YXIgRj1SLmRpc3BsYXlTaXplO1Muc2NhbGU9MjQqUy5zY2FsZS9mLFA9e3dpZHRoOkZbMF0saGVpZ2h0OkZbMV0sbGVmdDoxLHRvcDotMyxhZHZhbmNlOkQ/RlsxXTpGWzBdfTt2YXIgQj0yNC1GWzFdKlMuc2NhbGU7Qz13K0Isej1QLmFkdmFuY2U7dmFyIE49RD9GWzBdKlMuc2NhbGUtMjQqXzpGWzFdKlMuc2NhbGUtMjQqXztOPjAmJk4+QSYmKEE9Til9ZWxzZXt2YXIgaj1yW1MuZm9udFN0YWNrXSxVPWomJmpbTF07aWYoVSYmVS5yZWN0KUk9VS5yZWN0LFA9VS5tZXRyaWNzO2Vsc2V7dmFyIFY9ZVtTLmZvbnRTdGFja10sSD1WJiZWW0xdO2lmKCFIKWNvbnRpbnVlO1A9SC5tZXRyaWNzfUM9MjQqKF8tUy5zY2FsZSl9RD8odC52ZXJ0aWNhbGl6YWJsZT0hMCxrLnB1c2goe2dseXBoOkwsaW1hZ2VOYW1lOk8seDpoLHk6cCtDLHZlcnRpY2FsOkQsc2NhbGU6Uy5zY2FsZSxmb250U3RhY2s6Uy5mb250U3RhY2ssc2VjdGlvbkluZGV4OkUsbWV0cmljczpQLHJlY3Q6SX0pLGgrPXoqUy5zY2FsZStjKTooay5wdXNoKHtnbHlwaDpMLGltYWdlTmFtZTpPLHg6aCx5OnArQyx2ZXJ0aWNhbDpELHNjYWxlOlMuc2NhbGUsZm9udFN0YWNrOlMuZm9udFN0YWNrLHNlY3Rpb25JbmRleDpFLG1ldHJpY3M6UCxyZWN0Okl9KSxoKz1QLmFkdmFuY2UqUy5zY2FsZStjKX1pZigwIT09ay5sZW5ndGgpe3ZhciBxPWgtYztkPU1hdGgubWF4KHEsZCksVmwoaywwLGsubGVuZ3RoLTEsZyxBKX1oPTA7dmFyIEc9YSpfK0E7VC5saW5lT2Zmc2V0PU1hdGgubWF4KEEsdykscCs9RyxtPU1hdGgubWF4KEcsbSksKyt2fWVsc2UgcCs9YSwrK3Z9dmFyIFk7dmFyIFc9cC0gLTE3LFg9VWwobyksWj1YLmhvcml6b250YWxBbGlnbixKPVgudmVydGljYWxBbGlnbjsoZnVuY3Rpb24odCxlLHIsbixpLGEsbyxzLGwpe3ZhciBjPShlLXIpKmksdT0wO3U9YSE9PW8/LXMqbi0gLTE3OigtbipsKy41KSpvO2Zvcih2YXIgZj0wLGg9dDtmPGgubGVuZ3RoO2YrPTEpZm9yKHZhciBwPWhbZl0sZD0wLG09cC5wb3NpdGlvbmVkR2x5cGhzO2Q8bS5sZW5ndGg7ZCs9MSl7dmFyIGc9bVtkXTtnLngrPWMsZy55Kz11fX0pKHQucG9zaXRpb25lZExpbmVzLGcsWixKLGQsbSxhLFcsaS5sZW5ndGgpLHQudG9wKz0tSipXLHQuYm90dG9tPXQudG9wK1csdC5sZWZ0Kz0tWipkLHQucmlnaHQ9dC5sZWZ0K2R9KEMsZSxyLG4sZyxvLHMsbCxmLGMsaCxtKSwhZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAscj10O2U8ci5sZW5ndGg7ZSs9MSl7aWYoMCE9PXJbZV0ucG9zaXRpb25lZEdseXBocy5sZW5ndGgpcmV0dXJuITF9cmV0dXJuITB9KEwpJiZDfUlsLmZyb21GZWF0dXJlPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPW5ldyBJbCxuPTA7bjx0LnNlY3Rpb25zLmxlbmd0aDtuKyspe3ZhciBpPXQuc2VjdGlvbnNbbl07aS5pbWFnZT9yLmFkZEltYWdlU2VjdGlvbihpKTpyLmFkZFRleHRTZWN0aW9uKGksZSl9cmV0dXJuIHJ9LElsLnByb3RvdHlwZS5sZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50ZXh0Lmxlbmd0aH0sSWwucHJvdG90eXBlLmdldFNlY3Rpb249ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc2VjdGlvbnNbdGhpcy5zZWN0aW9uSW5kZXhbdF1dfSxJbC5wcm90b3R5cGUuZ2V0U2VjdGlvbkluZGV4PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNlY3Rpb25JbmRleFt0XX0sSWwucHJvdG90eXBlLmdldENoYXJDb2RlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnRleHQuY2hhckNvZGVBdCh0KX0sSWwucHJvdG90eXBlLnZlcnRpY2FsaXplUHVuY3R1YXRpb249ZnVuY3Rpb24oKXt0aGlzLnRleHQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPSIiLHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIG49dC5jaGFyQ29kZUF0KHIrMSl8fG51bGwsaT10LmNoYXJDb2RlQXQoci0xKXx8bnVsbDsoIW58fCFKbihuKXx8cmxbdFtyKzFdXSkmJighaXx8IUpuKGkpfHxybFt0W3ItMV1dKSYmcmxbdFtyXV0/ZSs9cmxbdFtyXV06ZSs9dFtyXX1yZXR1cm4gZX0odGhpcy50ZXh0KX0sSWwucHJvdG90eXBlLnRyaW09ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MCxlPTA7ZTx0aGlzLnRleHQubGVuZ3RoJiZ6bFt0aGlzLnRleHQuY2hhckNvZGVBdChlKV07ZSsrKXQrKztmb3IodmFyIHI9dGhpcy50ZXh0Lmxlbmd0aCxuPXRoaXMudGV4dC5sZW5ndGgtMTtuPj0wJiZuPj10JiZ6bFt0aGlzLnRleHQuY2hhckNvZGVBdChuKV07bi0tKXItLTt0aGlzLnRleHQ9dGhpcy50ZXh0LnN1YnN0cmluZyh0LHIpLHRoaXMuc2VjdGlvbkluZGV4PXRoaXMuc2VjdGlvbkluZGV4LnNsaWNlKHQscil9LElsLnByb3RvdHlwZS5zdWJzdHJpbmc9ZnVuY3Rpb24odCxlKXt2YXIgcj1uZXcgSWw7cmV0dXJuIHIudGV4dD10aGlzLnRleHQuc3Vic3RyaW5nKHQsZSksci5zZWN0aW9uSW5kZXg9dGhpcy5zZWN0aW9uSW5kZXguc2xpY2UodCxlKSxyLnNlY3Rpb25zPXRoaXMuc2VjdGlvbnMscn0sSWwucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGV4dH0sSWwucHJvdG90eXBlLmdldE1heFNjYWxlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5zZWN0aW9uSW5kZXgucmVkdWNlKChmdW5jdGlvbihlLHIpe3JldHVybiBNYXRoLm1heChlLHQuc2VjdGlvbnNbcl0uc2NhbGUpfSksMCl9LElsLnByb3RvdHlwZS5hZGRUZXh0U2VjdGlvbj1mdW5jdGlvbih0LGUpe3RoaXMudGV4dCs9dC50ZXh0LHRoaXMuc2VjdGlvbnMucHVzaChQbC5mb3JUZXh0KHQuc2NhbGUsdC5mb250U3RhY2t8fGUpKTtmb3IodmFyIHI9dGhpcy5zZWN0aW9ucy5sZW5ndGgtMSxuPTA7bjx0LnRleHQubGVuZ3RoOysrbil0aGlzLnNlY3Rpb25JbmRleC5wdXNoKHIpfSxJbC5wcm90b3R5cGUuYWRkSW1hZ2VTZWN0aW9uPWZ1bmN0aW9uKHQpe3ZhciBlPXQuaW1hZ2U/dC5pbWFnZS5uYW1lOiIiO2lmKDAhPT1lLmxlbmd0aCl7dmFyIHI9dGhpcy5nZXROZXh0SW1hZ2VTZWN0aW9uQ2hhckNvZGUoKTtyPyh0aGlzLnRleHQrPVN0cmluZy5mcm9tQ2hhckNvZGUociksdGhpcy5zZWN0aW9ucy5wdXNoKFBsLmZvckltYWdlKGUpKSx0aGlzLnNlY3Rpb25JbmRleC5wdXNoKHRoaXMuc2VjdGlvbnMubGVuZ3RoLTEpKTpfKCJSZWFjaGVkIG1heGltdW0gbnVtYmVyIG9mIGltYWdlcyA2NDAxIil9ZWxzZSBfKCJDYW4ndCBhZGQgRm9ybWF0dGVkU2VjdGlvbiB3aXRoIGFuIGVtcHR5IGltYWdlLiIpfSxJbC5wcm90b3R5cGUuZ2V0TmV4dEltYWdlU2VjdGlvbkNoYXJDb2RlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW1hZ2VTZWN0aW9uSUQ/dGhpcy5pbWFnZVNlY3Rpb25JRD49NjM3NDM/bnVsbDorK3RoaXMuaW1hZ2VTZWN0aW9uSUQ6KHRoaXMuaW1hZ2VTZWN0aW9uSUQ9NTczNDQsdGhpcy5pbWFnZVNlY3Rpb25JRCl9O3ZhciB6bD17OTohMCwxMDohMCwxMTohMCwxMjohMCwxMzohMCwzMjohMH0sRGw9e307ZnVuY3Rpb24gUmwodCxlLHIsbixpLGEpe2lmKGUuaW1hZ2VOYW1lKXt2YXIgbz1uW2UuaW1hZ2VOYW1lXTtyZXR1cm4gbz9vLmRpc3BsYXlTaXplWzBdKmUuc2NhbGUqMjQvYStpOjB9dmFyIHM9cltlLmZvbnRTdGFja10sbD1zJiZzW3RdO3JldHVybiBsP2wubWV0cmljcy5hZHZhbmNlKmUuc2NhbGUraTowfWZ1bmN0aW9uIEZsKHQsZSxyLG4pe3ZhciBpPU1hdGgucG93KHQtZSwyKTtyZXR1cm4gbj90PGU/aS8yOjIqaTppK01hdGguYWJzKHIpKnJ9ZnVuY3Rpb24gQmwodCxlLHIpe3ZhciBuPTA7cmV0dXJuIDEwPT09dCYmKG4tPTFlNCksciYmKG4rPTE1MCksNDAhPT10JiY2NTI4OCE9PXR8fChuKz01MCksNDEhPT1lJiY2NTI4OSE9PWV8fChuKz01MCksbn1mdW5jdGlvbiBObCh0LGUscixuLGksYSl7Zm9yKHZhciBvPW51bGwscz1GbChlLHIsaSxhKSxsPTAsYz1uO2w8Yy5sZW5ndGg7bCs9MSl7dmFyIHU9Y1tsXSxmPUZsKGUtdS54LHIsaSxhKSt1LmJhZG5lc3M7Zjw9cyYmKG89dSxzPWYpfXJldHVybntpbmRleDp0LHg6ZSxwcmlvckJyZWFrOm8sYmFkbmVzczpzfX1mdW5jdGlvbiBqbCh0LGUscixuLGksYSxvKXtpZigicG9pbnQiIT09YSlyZXR1cm5bXTtpZighdClyZXR1cm5bXTtmb3IodmFyIHMsbD1bXSxjPWZ1bmN0aW9uKHQsZSxyLG4saSxhKXtmb3IodmFyIG89MCxzPTA7czx0Lmxlbmd0aCgpO3MrKyl7dmFyIGw9dC5nZXRTZWN0aW9uKHMpO28rPVJsKHQuZ2V0Q2hhckNvZGUocyksbCxuLGksZSxhKX1yZXR1cm4gby9NYXRoLm1heCgxLE1hdGguY2VpbChvL3IpKX0odCxlLHIsbixpLG8pLHU9dC50ZXh0LmluZGV4T2YoIlx1MjAwYiIpPj0wLGY9MCxoPTA7aDx0Lmxlbmd0aCgpO2grKyl7dmFyIHA9dC5nZXRTZWN0aW9uKGgpLGQ9dC5nZXRDaGFyQ29kZShoKTtpZih6bFtkXXx8KGYrPVJsKGQscCxuLGksZSxvKSksaDx0Lmxlbmd0aCgpLTEpe3ZhciBtPSEhKCEoKHM9ZCk8MTE5MDQpJiYoWW5bIkJvcG9tb2ZvIEV4dGVuZGVkIl0ocyl8fFluLkJvcG9tb2ZvKHMpfHxZblsiQ0pLIENvbXBhdGliaWxpdHkgRm9ybXMiXShzKXx8WW5bIkNKSyBDb21wYXRpYmlsaXR5IElkZW9ncmFwaHMiXShzKXx8WW5bIkNKSyBDb21wYXRpYmlsaXR5Il0ocyl8fFluWyJDSksgUmFkaWNhbHMgU3VwcGxlbWVudCJdKHMpfHxZblsiQ0pLIFN0cm9rZXMiXShzKXx8WW5bIkNKSyBTeW1ib2xzIGFuZCBQdW5jdHVhdGlvbiJdKHMpfHxZblsiQ0pLIFVuaWZpZWQgSWRlb2dyYXBocyBFeHRlbnNpb24gQSJdKHMpfHxZblsiQ0pLIFVuaWZpZWQgSWRlb2dyYXBocyJdKHMpfHxZblsiRW5jbG9zZWQgQ0pLIExldHRlcnMgYW5kIE1vbnRocyJdKHMpfHxZblsiSGFsZndpZHRoIGFuZCBGdWxsd2lkdGggRm9ybXMiXShzKXx8WW4uSGlyYWdhbmEocyl8fFluWyJJZGVvZ3JhcGhpYyBEZXNjcmlwdGlvbiBDaGFyYWN0ZXJzIl0ocyl8fFluWyJLYW5neGkgUmFkaWNhbHMiXShzKXx8WW5bIkthdGFrYW5hIFBob25ldGljIEV4dGVuc2lvbnMiXShzKXx8WW4uS2F0YWthbmEocyl8fFluWyJWZXJ0aWNhbCBGb3JtcyJdKHMpfHxZblsiWWkgUmFkaWNhbHMiXShzKXx8WW5bIllpIFN5bGxhYmxlcyJdKHMpKSk7KERsW2RdfHxtfHxwLmltYWdlTmFtZSkmJmwucHVzaChObChoKzEsZixjLGwsQmwoZCx0LmdldENoYXJDb2RlKGgrMSksbSYmdSksITEpKX19cmV0dXJuIGZ1bmN0aW9uIHQoZSl7cmV0dXJuIGU/dChlLnByaW9yQnJlYWspLmNvbmNhdChlLmluZGV4KTpbXX0oTmwodC5sZW5ndGgoKSxmLGMsbCwwLCEwKSl9ZnVuY3Rpb24gVWwodCl7dmFyIGU9LjUscj0uNTtzd2l0Y2godCl7Y2FzZSJyaWdodCI6Y2FzZSJ0b3AtcmlnaHQiOmNhc2UiYm90dG9tLXJpZ2h0IjplPTE7YnJlYWs7Y2FzZSJsZWZ0IjpjYXNlInRvcC1sZWZ0IjpjYXNlImJvdHRvbS1sZWZ0IjplPTB9c3dpdGNoKHQpe2Nhc2UiYm90dG9tIjpjYXNlImJvdHRvbS1yaWdodCI6Y2FzZSJib3R0b20tbGVmdCI6cj0xO2JyZWFrO2Nhc2UidG9wIjpjYXNlInRvcC1yaWdodCI6Y2FzZSJ0b3AtbGVmdCI6cj0wfXJldHVybntob3Jpem9udGFsQWxpZ246ZSx2ZXJ0aWNhbEFsaWduOnJ9fWZ1bmN0aW9uIFZsKHQsZSxyLG4saSl7aWYobnx8aSlmb3IodmFyIGE9dFtyXSxvPWEubWV0cmljcy5hZHZhbmNlKmEuc2NhbGUscz0odFtyXS54K28pKm4sbD1lO2w8PXI7bCsrKXRbbF0ueC09cyx0W2xdLnkrPWl9ZnVuY3Rpb24gSGwodCxlLHIsbixpLGEpe3ZhciBvLHM9dC5pbWFnZTtpZihzLmNvbnRlbnQpe3ZhciBsPXMuY29udGVudCxjPXMucGl4ZWxSYXRpb3x8MTtvPVtsWzBdL2MsbFsxXS9jLHMuZGlzcGxheVNpemVbMF0tbFsyXS9jLHMuZGlzcGxheVNpemVbMV0tbFszXS9jXX12YXIgdSxmLGgscCxkPWUubGVmdCphLG09ZS5yaWdodCphOyJ3aWR0aCI9PT1yfHwiYm90aCI9PT1yPyhwPWlbMF0rZC1uWzNdLGY9aVswXSttK25bMV0pOmY9KHA9aVswXSsoZCttLXMuZGlzcGxheVNpemVbMF0pLzIpK3MuZGlzcGxheVNpemVbMF07dmFyIGc9ZS50b3AqYSx2PWUuYm90dG9tKmE7cmV0dXJuImhlaWdodCI9PT1yfHwiYm90aCI9PT1yPyh1PWlbMV0rZy1uWzBdLGg9aVsxXSt2K25bMl0pOmg9KHU9aVsxXSsoZyt2LXMuZGlzcGxheVNpemVbMV0pLzIpK3MuZGlzcGxheVNpemVbMV0se2ltYWdlOnMsdG9wOnUscmlnaHQ6Zixib3R0b206aCxsZWZ0OnAsY29sbGlzaW9uUGFkZGluZzpvfX1EbFsxMF09ITAsRGxbMzJdPSEwLERsWzM4XT0hMCxEbFs0MF09ITAsRGxbNDFdPSEwLERsWzQzXT0hMCxEbFs0NV09ITAsRGxbNDddPSEwLERsWzE3M109ITAsRGxbMTgzXT0hMCxEbFs4MjAzXT0hMCxEbFs4MjA4XT0hMCxEbFs4MjExXT0hMCxEbFs4MjMxXT0hMDt2YXIgcWw9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlLHIsbixpKXt0LmNhbGwodGhpcyxlLHIpLHRoaXMuYW5nbGU9bix2b2lkIDAhPT1pJiYodGhpcy5zZWdtZW50PWkpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgZSh0aGlzLngsdGhpcy55LHRoaXMuYW5nbGUsdGhpcy5zZWdtZW50KX0sZX0oaSk7Tm4oIkFuY2hvciIscWwpO2Z1bmN0aW9uIEdsKHQsZSl7dmFyIHI9ZS5leHByZXNzaW9uO2lmKCJjb25zdGFudCI9PT1yLmtpbmQpcmV0dXJue2tpbmQ6ImNvbnN0YW50IixsYXlvdXRTaXplOnIuZXZhbHVhdGUobmV3IHBpKHQrMSkpfTtpZigic291cmNlIj09PXIua2luZClyZXR1cm57a2luZDoic291cmNlIn07Zm9yKHZhciBuPXIuem9vbVN0b3BzLGk9ci5pbnRlcnBvbGF0aW9uVHlwZSxhPTA7YTxuLmxlbmd0aCYmblthXTw9dDspYSsrO2Zvcih2YXIgbz1hPU1hdGgubWF4KDAsYS0xKTtvPG4ubGVuZ3RoJiZuW29dPHQrMTspbysrO289TWF0aC5taW4obi5sZW5ndGgtMSxvKTt2YXIgcz1uW2FdLGw9bltvXTtyZXR1cm4iY29tcG9zaXRlIj09PXIua2luZD97a2luZDoiY29tcG9zaXRlIixtaW5ab29tOnMsbWF4Wm9vbTpsLGludGVycG9sYXRpb25UeXBlOml9OntraW5kOiJjYW1lcmEiLG1pblpvb206cyxtYXhab29tOmwsbWluU2l6ZTpyLmV2YWx1YXRlKG5ldyBwaShzKSksbWF4U2l6ZTpyLmV2YWx1YXRlKG5ldyBwaShsKSksaW50ZXJwb2xhdGlvblR5cGU6aX19ZnVuY3Rpb24gWWwodCxlLHIpe3ZhciBuPWUudVNpemUsaT1lLnVTaXplVCxhPXIubG93ZXJTaXplLG89ci51cHBlclNpemU7cmV0dXJuInNvdXJjZSI9PT10LmtpbmQ/YS8xMjg6ImNvbXBvc2l0ZSI9PT10LmtpbmQ/cWUoYS8xMjgsby8xMjgsaSk6bn1mdW5jdGlvbiBXbCh0LGUpe3ZhciByPTAsbj0wO2lmKCJjb25zdGFudCI9PT10LmtpbmQpbj10LmxheW91dFNpemU7ZWxzZSBpZigic291cmNlIiE9PXQua2luZCl7dmFyIGk9dC5pbnRlcnBvbGF0aW9uVHlwZSxhPXQubWluWm9vbSxvPXQubWF4Wm9vbSxzPWk/bChvci5pbnRlcnBvbGF0aW9uRmFjdG9yKGksZSxhLG8pLDAsMSk6MDsiY2FtZXJhIj09PXQua2luZD9uPXFlKHQubWluU2l6ZSx0Lm1heFNpemUscyk6cj1zfXJldHVybnt1U2l6ZVQ6cix1U2l6ZTpufX12YXIgWGw9T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsZ2V0U2l6ZURhdGE6R2wsZXZhbHVhdGVTaXplRm9yRmVhdHVyZTpZbCxldmFsdWF0ZVNpemVGb3Jab29tOldsLFNJWkVfUEFDS19GQUNUT1I6MTI4fSk7ZnVuY3Rpb24gWmwodCxlLHIsbixpKXtpZih2b2lkIDA9PT1lLnNlZ21lbnQpcmV0dXJuITA7Zm9yKHZhciBhPWUsbz1lLnNlZ21lbnQrMSxzPTA7cz4tci8yOyl7aWYoLS1vPDApcmV0dXJuITE7cy09dFtvXS5kaXN0KGEpLGE9dFtvXX1zKz10W29dLmRpc3QodFtvKzFdKSxvKys7Zm9yKHZhciBsPVtdLGM9MDtzPHIvMjspe3ZhciB1PXRbby0xXSxmPXRbb10saD10W28rMV07aWYoIWgpcmV0dXJuITE7dmFyIHA9dS5hbmdsZVRvKGYpLWYuYW5nbGVUbyhoKTtmb3IocD1NYXRoLmFicygocCszKk1hdGguUEkpJSgyKk1hdGguUEkpLU1hdGguUEkpLGwucHVzaCh7ZGlzdGFuY2U6cyxhbmdsZURlbHRhOnB9KSxjKz1wO3MtbFswXS5kaXN0YW5jZT5uOyljLT1sLnNoaWZ0KCkuYW5nbGVEZWx0YTtpZihjPmkpcmV0dXJuITE7bysrLHMrPWYuZGlzdChoKX1yZXR1cm4hMH1mdW5jdGlvbiBKbCh0KXtmb3IodmFyIGU9MCxyPTA7cjx0Lmxlbmd0aC0xO3IrKyllKz10W3JdLmRpc3QodFtyKzFdKTtyZXR1cm4gZX1mdW5jdGlvbiBLbCh0LGUscil7cmV0dXJuIHQ/LjYqZSpyOjB9ZnVuY3Rpb24gUWwodCxlKXtyZXR1cm4gTWF0aC5tYXgodD90LnJpZ2h0LXQubGVmdDowLGU/ZS5yaWdodC1lLmxlZnQ6MCl9ZnVuY3Rpb24gJGwodCxlLHIsbixpLGEpe2Zvcih2YXIgbz1LbChyLGksYSkscz1RbChyLG4pKmEsbD0wLGM9SmwodCkvMix1PTA7dTx0Lmxlbmd0aC0xO3UrKyl7dmFyIGY9dFt1XSxoPXRbdSsxXSxwPWYuZGlzdChoKTtpZihsK3A+Yyl7dmFyIGQ9KGMtbCkvcCxtPXFlKGYueCxoLngsZCksZz1xZShmLnksaC55LGQpLHY9bmV3IHFsKG0sZyxoLmFuZ2xlVG8oZiksdSk7cmV0dXJuIHYuX3JvdW5kKCksIW98fFpsKHQsdixzLG8sZSk/djp2b2lkIDB9bCs9cH19ZnVuY3Rpb24gdGModCxlLHIsbixpLGEsbyxzLGwpe3ZhciBjPUtsKG4sYSxvKSx1PVFsKG4saSksZj11Km8saD0wPT09dFswXS54fHx0WzBdLng9PT1sfHwwPT09dFswXS55fHx0WzBdLnk9PT1sO3JldHVybiBlLWY8ZS80JiYoZT1mK2UvNCksZnVuY3Rpb24gdChlLHIsbixpLGEsbyxzLGwsYyl7Zm9yKHZhciB1PW8vMixmPUpsKGUpLGg9MCxwPXItbixkPVtdLG09MDttPGUubGVuZ3RoLTE7bSsrKXtmb3IodmFyIGc9ZVttXSx2PWVbbSsxXSx5PWcuZGlzdCh2KSx4PXYuYW5nbGVUbyhnKTtwK248aCt5Oyl7dmFyIGI9KChwKz1uKS1oKS95LF89cWUoZy54LHYueCxiKSx3PXFlKGcueSx2LnksYik7aWYoXz49MCYmXzxjJiZ3Pj0wJiZ3PGMmJnAtdT49MCYmcCt1PD1mKXt2YXIgVD1uZXcgcWwoXyx3LHgsbSk7VC5fcm91bmQoKSxpJiYhWmwoZSxULG8saSxhKXx8ZC5wdXNoKFQpfX1oKz15fWx8fGQubGVuZ3RofHxzfHwoZD10KGUsaC8yLG4saSxhLG8scywhMCxjKSk7cmV0dXJuIGR9KHQsaD9lLzIqcyVlOih1LzIrMiphKSpvKnMlZSxlLGMscixmLGgsITEsbCl9ZnVuY3Rpb24gZWModCxlLHIsbixhKXtmb3IodmFyIG89W10scz0wO3M8dC5sZW5ndGg7cysrKWZvcih2YXIgbD10W3NdLGM9dm9pZCAwLHU9MDt1PGwubGVuZ3RoLTE7dSsrKXt2YXIgZj1sW3VdLGg9bFt1KzFdO2YueDxlJiZoLng8ZXx8KGYueDxlP2Y9bmV3IGkoZSxmLnkrKGgueS1mLnkpKigoZS1mLngpLyhoLngtZi54KSkpLl9yb3VuZCgpOmgueDxlJiYoaD1uZXcgaShlLGYueSsoaC55LWYueSkqKChlLWYueCkvKGgueC1mLngpKSkuX3JvdW5kKCkpLGYueTxyJiZoLnk8cnx8KGYueTxyP2Y9bmV3IGkoZi54KyhoLngtZi54KSooKHItZi55KS8oaC55LWYueSkpLHIpLl9yb3VuZCgpOmgueTxyJiYoaD1uZXcgaShmLngrKGgueC1mLngpKigoci1mLnkpLyhoLnktZi55KSkscikuX3JvdW5kKCkpLGYueD49biYmaC54Pj1ufHwoZi54Pj1uP2Y9bmV3IGkobixmLnkrKGgueS1mLnkpKigobi1mLngpLyhoLngtZi54KSkpLl9yb3VuZCgpOmgueD49biYmKGg9bmV3IGkobixmLnkrKGgueS1mLnkpKigobi1mLngpLyhoLngtZi54KSkpLl9yb3VuZCgpKSxmLnk+PWEmJmgueT49YXx8KGYueT49YT9mPW5ldyBpKGYueCsoaC54LWYueCkqKChhLWYueSkvKGgueS1mLnkpKSxhKS5fcm91bmQoKTpoLnk+PWEmJihoPW5ldyBpKGYueCsoaC54LWYueCkqKChhLWYueSkvKGgueS1mLnkpKSxhKS5fcm91bmQoKSksYyYmZi5lcXVhbHMoY1tjLmxlbmd0aC0xXSl8fChjPVtmXSxvLnB1c2goYykpLGMucHVzaChoKSkpKSl9cmV0dXJuIG99ZnVuY3Rpb24gcmModCxlLHIsbil7dmFyIGE9W10sbz10LmltYWdlLHM9by5waXhlbFJhdGlvLGw9by5wYWRkZWRSZWN0LnctMixjPW8ucGFkZGVkUmVjdC5oLTIsdT10LnJpZ2h0LXQubGVmdCxmPXQuYm90dG9tLXQudG9wLGg9by5zdHJldGNoWHx8W1swLGxdXSxwPW8uc3RyZXRjaFl8fFtbMCxjXV0sZD1mdW5jdGlvbih0LGUpe3JldHVybiB0K2VbMV0tZVswXX0sbT1oLnJlZHVjZShkLDApLGc9cC5yZWR1Y2UoZCwwKSx2PWwtbSx5PWMtZyx4PTAsYj1tLF89MCx3PWcsVD0wLGs9dixBPTAsTT15O2lmKG8uY29udGVudCYmbil7dmFyIFM9by5jb250ZW50O3g9bmMoaCwwLFNbMF0pLF89bmMocCwwLFNbMV0pLGI9bmMoaCxTWzBdLFNbMl0pLHc9bmMocCxTWzFdLFNbM10pLFQ9U1swXS14LEE9U1sxXS1fLGs9U1syXS1TWzBdLWIsTT1TWzNdLVNbMV0td312YXIgRT1mdW5jdGlvbihuLGEsbCxjKXt2YXIgaD1hYyhuLnN0cmV0Y2gteCxiLHUsdC5sZWZ0KSxwPW9jKG4uZml4ZWQtVCxrLG4uc3RyZXRjaCxtKSxkPWFjKGEuc3RyZXRjaC1fLHcsZix0LnRvcCksdj1vYyhhLmZpeGVkLUEsTSxhLnN0cmV0Y2gsZykseT1hYyhsLnN0cmV0Y2gteCxiLHUsdC5sZWZ0KSxTPW9jKGwuZml4ZWQtVCxrLGwuc3RyZXRjaCxtKSxFPWFjKGMuc3RyZXRjaC1fLHcsZix0LnRvcCksTD1vYyhjLmZpeGVkLUEsTSxjLnN0cmV0Y2gsZyksQz1uZXcgaShoLGQpLFA9bmV3IGkoeSxkKSxJPW5ldyBpKHksRSksTz1uZXcgaShoLEUpLHo9bmV3IGkocC9zLHYvcyksRD1uZXcgaShTL3MsTC9zKSxSPWUqTWF0aC5QSS8xODA7aWYoUil7dmFyIEY9TWF0aC5zaW4oUiksQj1NYXRoLmNvcyhSKSxOPVtCLC1GLEYsQl07Qy5fbWF0TXVsdChOKSxQLl9tYXRNdWx0KE4pLE8uX21hdE11bHQoTiksSS5fbWF0TXVsdChOKX12YXIgaj1uLnN0cmV0Y2grbi5maXhlZCxVPWwuc3RyZXRjaCtsLmZpeGVkLFY9YS5zdHJldGNoK2EuZml4ZWQsSD1jLnN0cmV0Y2grYy5maXhlZDtyZXR1cm57dGw6Qyx0cjpQLGJsOk8sYnI6SSx0ZXg6e3g6by5wYWRkZWRSZWN0LngrMStqLHk6by5wYWRkZWRSZWN0LnkrMStWLHc6VS1qLGg6SC1WfSx3cml0aW5nTW9kZTp2b2lkIDAsZ2x5cGhPZmZzZXQ6WzAsMF0sc2VjdGlvbkluZGV4OjAscGl4ZWxPZmZzZXRUTDp6LHBpeGVsT2Zmc2V0QlI6RCxtaW5Gb250U2NhbGVYOmsvcy91LG1pbkZvbnRTY2FsZVk6TS9zL2YsaXNTREY6cn19O2lmKG4mJihvLnN0cmV0Y2hYfHxvLnN0cmV0Y2hZKSlmb3IodmFyIEw9aWMoaCx2LG0pLEM9aWMocCx5LGcpLFA9MDtQPEwubGVuZ3RoLTE7UCsrKWZvcih2YXIgST1MW1BdLE89TFtQKzFdLHo9MDt6PEMubGVuZ3RoLTE7eisrKXt2YXIgRD1DW3pdLFI9Q1t6KzFdO2EucHVzaChFKEksRCxPLFIpKX1lbHNlIGEucHVzaChFKHtmaXhlZDowLHN0cmV0Y2g6LTF9LHtmaXhlZDowLHN0cmV0Y2g6LTF9LHtmaXhlZDowLHN0cmV0Y2g6bCsxfSx7Zml4ZWQ6MCxzdHJldGNoOmMrMX0pKTtyZXR1cm4gYX1mdW5jdGlvbiBuYyh0LGUscil7Zm9yKHZhciBuPTAsaT0wLGE9dDtpPGEubGVuZ3RoO2krPTEpe3ZhciBvPWFbaV07bis9TWF0aC5tYXgoZSxNYXRoLm1pbihyLG9bMV0pKS1NYXRoLm1heChlLE1hdGgubWluKHIsb1swXSkpfXJldHVybiBufWZ1bmN0aW9uIGljKHQsZSxyKXtmb3IodmFyIG49W3tmaXhlZDotMSxzdHJldGNoOjB9XSxpPTAsYT10O2k8YS5sZW5ndGg7aSs9MSl7dmFyIG89YVtpXSxzPW9bMF0sbD1vWzFdLGM9bltuLmxlbmd0aC0xXTtuLnB1c2goe2ZpeGVkOnMtYy5zdHJldGNoLHN0cmV0Y2g6Yy5zdHJldGNofSksbi5wdXNoKHtmaXhlZDpzLWMuc3RyZXRjaCxzdHJldGNoOmMuc3RyZXRjaCsobC1zKX0pfXJldHVybiBuLnB1c2goe2ZpeGVkOmUrMSxzdHJldGNoOnJ9KSxufWZ1bmN0aW9uIGFjKHQsZSxyLG4pe3JldHVybiB0L2UqcitufWZ1bmN0aW9uIG9jKHQsZSxyLG4pe3JldHVybiB0LWUqci9ufXZhciBzYz1mdW5jdGlvbih0LGUscixuLGEsbyxzLGwsYyx1KXtpZih0aGlzLmJveFN0YXJ0SW5kZXg9dC5sZW5ndGgsYyl7dmFyIGY9by50b3AsaD1vLmJvdHRvbSxwPW8uY29sbGlzaW9uUGFkZGluZztwJiYoZi09cFsxXSxoKz1wWzNdKTt2YXIgZD1oLWY7ZD4wJiYoZD1NYXRoLm1heCgxMCxkKSx0aGlzLmNpcmNsZURpYW1ldGVyPWQpfWVsc2V7dmFyIG09by50b3Aqcy1sLGc9by5ib3R0b20qcytsLHY9by5sZWZ0KnMtbCx5PW8ucmlnaHQqcytsLHg9by5jb2xsaXNpb25QYWRkaW5nO2lmKHgmJih2LT14WzBdKnMsbS09eFsxXSpzLHkrPXhbMl0qcyxnKz14WzNdKnMpLHUpe3ZhciBiPW5ldyBpKHYsbSksXz1uZXcgaSh5LG0pLHc9bmV3IGkodixnKSxUPW5ldyBpKHksZyksaz11Kk1hdGguUEkvMTgwO2IuX3JvdGF0ZShrKSxfLl9yb3RhdGUoayksdy5fcm90YXRlKGspLFQuX3JvdGF0ZShrKSx2PU1hdGgubWluKGIueCxfLngsdy54LFQueCkseT1NYXRoLm1heChiLngsXy54LHcueCxULngpLG09TWF0aC5taW4oYi55LF8ueSx3LnksVC55KSxnPU1hdGgubWF4KGIueSxfLnksdy55LFQueSl9dC5lbXBsYWNlQmFjayhlLngsZS55LHYsbSx5LGcscixuLGEpfXRoaXMuYm94RW5kSW5kZXg9dC5sZW5ndGh9LGxjPWZ1bmN0aW9uKHQsZSl7aWYodm9pZCAwPT09dCYmKHQ9W10pLHZvaWQgMD09PWUmJihlPWNjKSx0aGlzLmRhdGE9dCx0aGlzLmxlbmd0aD10aGlzLmRhdGEubGVuZ3RoLHRoaXMuY29tcGFyZT1lLHRoaXMubGVuZ3RoPjApZm9yKHZhciByPSh0aGlzLmxlbmd0aD4+MSktMTtyPj0wO3ItLSl0aGlzLl9kb3duKHIpfTtmdW5jdGlvbiBjYyh0LGUpe3JldHVybiB0PGU/LTE6dD5lPzE6MH1mdW5jdGlvbiB1Yyh0LGUscil7dm9pZCAwPT09ZSYmKGU9MSksdm9pZCAwPT09ciYmKHI9ITEpO2Zvcih2YXIgbj0xLzAsYT0xLzAsbz0tMS8wLHM9LTEvMCxsPXRbMF0sYz0wO2M8bC5sZW5ndGg7YysrKXt2YXIgdT1sW2NdOyghY3x8dS54PG4pJiYobj11LngpLCghY3x8dS55PGEpJiYoYT11LnkpLCghY3x8dS54Pm8pJiYobz11LngpLCghY3x8dS55PnMpJiYocz11LnkpfXZhciBmPW8tbixoPXMtYSxwPU1hdGgubWluKGYsaCksZD1wLzIsbT1uZXcgbGMoW10sZmMpO2lmKDA9PT1wKXJldHVybiBuZXcgaShuLGEpO2Zvcih2YXIgZz1uO2c8bztnKz1wKWZvcih2YXIgdj1hO3Y8czt2Kz1wKW0ucHVzaChuZXcgaGMoZytkLHYrZCxkLHQpKTtmb3IodmFyIHk9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAscj0wLG49MCxpPXRbMF0sYT0wLG89aS5sZW5ndGgscz1vLTE7YTxvO3M9YSsrKXt2YXIgbD1pW2FdLGM9aVtzXSx1PWwueCpjLnktYy54KmwueTtyKz0obC54K2MueCkqdSxuKz0obC55K2MueSkqdSxlKz0zKnV9cmV0dXJuIG5ldyBoYyhyL2Usbi9lLDAsdCl9KHQpLHg9bS5sZW5ndGg7bS5sZW5ndGg7KXt2YXIgYj1tLnBvcCgpOyhiLmQ+eS5kfHwheS5kKSYmKHk9YixyJiZjb25zb2xlLmxvZygiZm91bmQgYmVzdCAlZCBhZnRlciAlZCBwcm9iZXMiLE1hdGgucm91bmQoMWU0KmIuZCkvMWU0LHgpKSxiLm1heC15LmQ8PWV8fChkPWIuaC8yLG0ucHVzaChuZXcgaGMoYi5wLngtZCxiLnAueS1kLGQsdCkpLG0ucHVzaChuZXcgaGMoYi5wLngrZCxiLnAueS1kLGQsdCkpLG0ucHVzaChuZXcgaGMoYi5wLngtZCxiLnAueStkLGQsdCkpLG0ucHVzaChuZXcgaGMoYi5wLngrZCxiLnAueStkLGQsdCkpLHgrPTQpfXJldHVybiByJiYoY29uc29sZS5sb2coIm51bSBwcm9iZXM6ICIreCksY29uc29sZS5sb2coImJlc3QgZGlzdGFuY2U6ICIreS5kKSkseS5wfWZ1bmN0aW9uIGZjKHQsZSl7cmV0dXJuIGUubWF4LXQubWF4fWZ1bmN0aW9uIGhjKHQsZSxyLG4pe3RoaXMucD1uZXcgaSh0LGUpLHRoaXMuaD1yLHRoaXMuZD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0hMSxuPTEvMCxpPTA7aTxlLmxlbmd0aDtpKyspZm9yKHZhciBhPWVbaV0sbz0wLHM9YS5sZW5ndGgsbD1zLTE7bzxzO2w9bysrKXt2YXIgYz1hW29dLHU9YVtsXTtjLnk+dC55IT11Lnk+dC55JiZ0Lng8KHUueC1jLngpKih0LnktYy55KS8odS55LWMueSkrYy54JiYocj0hciksbj1NYXRoLm1pbihuLHJvKHQsYyx1KSl9cmV0dXJuKHI/MTotMSkqTWF0aC5zcXJ0KG4pfSh0aGlzLnAsbiksdGhpcy5tYXg9dGhpcy5kK3RoaXMuaCpNYXRoLlNRUlQyfWxjLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKHQpe3RoaXMuZGF0YS5wdXNoKHQpLHRoaXMubGVuZ3RoKyssdGhpcy5fdXAodGhpcy5sZW5ndGgtMSl9LGxjLnByb3RvdHlwZS5wb3A9ZnVuY3Rpb24oKXtpZigwIT09dGhpcy5sZW5ndGgpe3ZhciB0PXRoaXMuZGF0YVswXSxlPXRoaXMuZGF0YS5wb3AoKTtyZXR1cm4gdGhpcy5sZW5ndGgtLSx0aGlzLmxlbmd0aD4wJiYodGhpcy5kYXRhWzBdPWUsdGhpcy5fZG93bigwKSksdH19LGxjLnByb3RvdHlwZS5wZWVrPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGF0YVswXX0sbGMucHJvdG90eXBlLl91cD1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy5kYXRhLHI9dGhpcy5jb21wYXJlLG49ZVt0XTt0PjA7KXt2YXIgaT10LTE+PjEsYT1lW2ldO2lmKHIobixhKT49MClicmVhaztlW3RdPWEsdD1pfWVbdF09bn0sbGMucHJvdG90eXBlLl9kb3duPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLmRhdGEscj10aGlzLmNvbXBhcmUsbj10aGlzLmxlbmd0aD4+MSxpPWVbdF07dDxuOyl7dmFyIGE9MSsodDw8MSksbz1lW2FdLHM9YSsxO2lmKHM8dGhpcy5sZW5ndGgmJnIoZVtzXSxvKTwwJiYoYT1zLG89ZVtzXSkscihvLGkpPj0wKWJyZWFrO2VbdF09byx0PWF9ZVt0XT1pfTt2YXIgcGM9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO2Z1bmN0aW9uIGRjKHQsZSl7cmV0dXJuIGVbMV0hPT1wYz9mdW5jdGlvbih0LGUscil7dmFyIG49MCxpPTA7c3dpdGNoKGU9TWF0aC5hYnMoZSkscj1NYXRoLmFicyhyKSx0KXtjYXNlInRvcC1yaWdodCI6Y2FzZSJ0b3AtbGVmdCI6Y2FzZSJ0b3AiOmk9ci03O2JyZWFrO2Nhc2UiYm90dG9tLXJpZ2h0IjpjYXNlImJvdHRvbS1sZWZ0IjpjYXNlImJvdHRvbSI6aT03LXJ9c3dpdGNoKHQpe2Nhc2UidG9wLXJpZ2h0IjpjYXNlImJvdHRvbS1yaWdodCI6Y2FzZSJyaWdodCI6bj0tZTticmVhaztjYXNlInRvcC1sZWZ0IjpjYXNlImJvdHRvbS1sZWZ0IjpjYXNlImxlZnQiOm49ZX1yZXR1cm5bbixpXX0odCxlWzBdLGVbMV0pOmZ1bmN0aW9uKHQsZSl7dmFyIHI9MCxuPTA7ZTwwJiYoZT0wKTt2YXIgaT1lL01hdGguc3FydCgyKTtzd2l0Y2godCl7Y2FzZSJ0b3AtcmlnaHQiOmNhc2UidG9wLWxlZnQiOm49aS03O2JyZWFrO2Nhc2UiYm90dG9tLXJpZ2h0IjpjYXNlImJvdHRvbS1sZWZ0IjpuPTctaTticmVhaztjYXNlImJvdHRvbSI6bj03LWU7YnJlYWs7Y2FzZSJ0b3AiOm49ZS03fXN3aXRjaCh0KXtjYXNlInRvcC1yaWdodCI6Y2FzZSJib3R0b20tcmlnaHQiOnI9LWk7YnJlYWs7Y2FzZSJ0b3AtbGVmdCI6Y2FzZSJib3R0b20tbGVmdCI6cj1pO2JyZWFrO2Nhc2UibGVmdCI6cj1lO2JyZWFrO2Nhc2UicmlnaHQiOnI9LWV9cmV0dXJuW3Isbl19KHQsZVswXSl9ZnVuY3Rpb24gbWModCl7c3dpdGNoKHQpe2Nhc2UicmlnaHQiOmNhc2UidG9wLXJpZ2h0IjpjYXNlImJvdHRvbS1yaWdodCI6cmV0dXJuInJpZ2h0IjtjYXNlImxlZnQiOmNhc2UidG9wLWxlZnQiOmNhc2UiYm90dG9tLWxlZnQiOnJldHVybiJsZWZ0In1yZXR1cm4iY2VudGVyIn1mdW5jdGlvbiBnYyh0LGUscixuLGEsbyxzLGwsYyx1LGYsaCxwLGQsbSl7dmFyIGc9ZnVuY3Rpb24odCxlLHIsbixhLG8scyxsKXtmb3IodmFyIGM9bi5sYXlvdXQuZ2V0KCJ0ZXh0LXJvdGF0ZSIpLmV2YWx1YXRlKG8se30pKk1hdGguUEkvMTgwLHU9W10sZj0wLGg9ZS5wb3NpdGlvbmVkTGluZXM7ZjxoLmxlbmd0aDtmKz0xKWZvcih2YXIgcD1oW2ZdLGQ9MCxtPXAucG9zaXRpb25lZEdseXBocztkPG0ubGVuZ3RoO2QrPTEpe3ZhciBnPW1bZF07aWYoZy5yZWN0KXt2YXIgdj1nLnJlY3R8fHt9LHk9NCx4PSEwLGI9MSxfPTAsdz0oYXx8bCkmJmcudmVydGljYWwsVD1nLm1ldHJpY3MuYWR2YW5jZSpnLnNjYWxlLzI7aWYobCYmZS52ZXJ0aWNhbGl6YWJsZSl7dmFyIGs9MjQqKGcuc2NhbGUtMSksQT0oMjQtZy5tZXRyaWNzLndpZHRoKmcuc2NhbGUpLzI7Xz1wLmxpbmVPZmZzZXQvMi0oZy5pbWFnZU5hbWU/LUE6ayl9aWYoZy5pbWFnZU5hbWUpe3ZhciBNPXNbZy5pbWFnZU5hbWVdO3g9TS5zZGYseT0xLyhiPU0ucGl4ZWxSYXRpbyl9dmFyIFM9YT9bZy54K1QsZy55XTpbMCwwXSxFPWE/WzAsMF06W2cueCtUK3JbMF0sZy55K3JbMV0tX10sTD1bMCwwXTt3JiYoTD1FLEU9WzAsMF0pO3ZhciBDPShnLm1ldHJpY3MubGVmdC15KSpnLnNjYWxlLVQrRVswXSxQPSgtZy5tZXRyaWNzLnRvcC15KSpnLnNjYWxlK0VbMV0sST1DK3YudypnLnNjYWxlL2IsTz1QK3YuaCpnLnNjYWxlL2Isej1uZXcgaShDLFApLEQ9bmV3IGkoSSxQKSxSPW5ldyBpKEMsTyksRj1uZXcgaShJLE8pO2lmKHcpe3ZhciBCPW5ldyBpKC1ULFQtIC0xNyksTj0tTWF0aC5QSS8yLGo9MTItVCxVPWcuaW1hZ2VOYW1lP2o6MCxWPW5ldyBpKDIyLWosLVUpLEg9bmV3KEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kLmFwcGx5KGksW251bGxdLmNvbmNhdChMKSkpO3ouX3JvdGF0ZUFyb3VuZChOLEIpLl9hZGQoVikuX2FkZChIKSxELl9yb3RhdGVBcm91bmQoTixCKS5fYWRkKFYpLl9hZGQoSCksUi5fcm90YXRlQXJvdW5kKE4sQikuX2FkZChWKS5fYWRkKEgpLEYuX3JvdGF0ZUFyb3VuZChOLEIpLl9hZGQoVikuX2FkZChIKX1pZihjKXt2YXIgcT1NYXRoLnNpbihjKSxHPU1hdGguY29zKGMpLFk9W0csLXEscSxHXTt6Ll9tYXRNdWx0KFkpLEQuX21hdE11bHQoWSksUi5fbWF0TXVsdChZKSxGLl9tYXRNdWx0KFkpfXZhciBXPW5ldyBpKDAsMCksWD1uZXcgaSgwLDApO3UucHVzaCh7dGw6eix0cjpELGJsOlIsYnI6Rix0ZXg6dix3cml0aW5nTW9kZTplLndyaXRpbmdNb2RlLGdseXBoT2Zmc2V0OlMsc2VjdGlvbkluZGV4Omcuc2VjdGlvbkluZGV4LGlzU0RGOngscGl4ZWxPZmZzZXRUTDpXLHBpeGVsT2Zmc2V0QlI6WCxtaW5Gb250U2NhbGVYOjAsbWluRm9udFNjYWxlWTowfSl9fXJldHVybiB1fSgwLHIsbCxhLG8scyxuLHQuYWxsb3dWZXJ0aWNhbFBsYWNlbWVudCksdj10LnRleHRTaXplRGF0YSx5PW51bGw7InNvdXJjZSI9PT12LmtpbmQ/KHk9WzEyOCphLmxheW91dC5nZXQoInRleHQtc2l6ZSIpLmV2YWx1YXRlKHMse30pXSlbMF0+MzI2NDAmJl8odC5sYXllcklkc1swXSsnOiBWYWx1ZSBmb3IgInRleHQtc2l6ZSIgaXMgPj0gMjU1LiBSZWR1Y2UgeW91ciAidGV4dC1zaXplIi4nKToiY29tcG9zaXRlIj09PXYua2luZCYmKCh5PVsxMjgqZC5jb21wb3NpdGVUZXh0U2l6ZXNbMF0uZXZhbHVhdGUocyx7fSxtKSwxMjgqZC5jb21wb3NpdGVUZXh0U2l6ZXNbMV0uZXZhbHVhdGUocyx7fSxtKV0pWzBdPjMyNjQwfHx5WzFdPjMyNjQwKSYmXyh0LmxheWVySWRzWzBdKyc6IFZhbHVlIGZvciAidGV4dC1zaXplIiBpcyA+PSAyNTUuIFJlZHVjZSB5b3VyICJ0ZXh0LXNpemUiLicpLHQuYWRkU3ltYm9scyh0LnRleHQsZyx5LGwsbyxzLHUsZSxjLmxpbmVTdGFydEluZGV4LGMubGluZUxlbmd0aCxwLG0pO2Zvcih2YXIgeD0wLGI9Zjt4PGIubGVuZ3RoO3grPTEpe2hbYlt4XV09dC50ZXh0LnBsYWNlZFN5bWJvbEFycmF5Lmxlbmd0aC0xfXJldHVybiA0KmcubGVuZ3RofWZ1bmN0aW9uIHZjKHQpe2Zvcih2YXIgZSBpbiB0KXJldHVybiB0W2VdO3JldHVybiBudWxsfWZ1bmN0aW9uIHljKHQsZSxyLG4pe3ZhciBpPXQuY29tcGFyZVRleHQ7aWYoZSBpbiBpKXtmb3IodmFyIGE9aVtlXSxvPWEubGVuZ3RoLTE7bz49MDtvLS0paWYobi5kaXN0KGFbb10pPHIpcmV0dXJuITB9ZWxzZSBpW2VdPVtdO3JldHVybiBpW2VdLnB1c2gobiksITF9dmFyIHhjPUxzLlZlY3RvclRpbGVGZWF0dXJlLnR5cGVzLGJjPVt7bmFtZToiYV9mYWRlX29wYWNpdHkiLGNvbXBvbmVudHM6MSx0eXBlOiJVaW50OCIsb2Zmc2V0OjB9XTtmdW5jdGlvbiBfYyh0LGUscixuLGksYSxvLHMsbCxjLHUsZixoKXt2YXIgcD1zP01hdGgubWluKDMyNjQwLE1hdGgucm91bmQoc1swXSkpOjAsZD1zP01hdGgubWluKDMyNjQwLE1hdGgucm91bmQoc1sxXSkpOjA7dC5lbXBsYWNlQmFjayhlLHIsTWF0aC5yb3VuZCgzMipuKSxNYXRoLnJvdW5kKDMyKmkpLGEsbywocDw8MSkrKGw/MTowKSxkLDE2KmMsMTYqdSwyNTYqZiwyNTYqaCl9ZnVuY3Rpb24gd2ModCxlLHIpe3QuZW1wbGFjZUJhY2soZS54LGUueSxyKSx0LmVtcGxhY2VCYWNrKGUueCxlLnksciksdC5lbXBsYWNlQmFjayhlLngsZS55LHIpLHQuZW1wbGFjZUJhY2soZS54LGUueSxyKX1mdW5jdGlvbiBUYyh0KXtmb3IodmFyIGU9MCxyPXQuc2VjdGlvbnM7ZTxyLmxlbmd0aDtlKz0xKXtpZigkbihyW2VdLnRleHQpKXJldHVybiEwfXJldHVybiExfXZhciBrYz1mdW5jdGlvbih0KXt0aGlzLmxheW91dFZlcnRleEFycmF5PW5ldyBOaSx0aGlzLmluZGV4QXJyYXk9bmV3IFlpLHRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zPXQsdGhpcy5zZWdtZW50cz1uZXcgcGEsdGhpcy5keW5hbWljTGF5b3V0VmVydGV4QXJyYXk9bmV3IGppLHRoaXMub3BhY2l0eVZlcnRleEFycmF5PW5ldyBVaSx0aGlzLnBsYWNlZFN5bWJvbEFycmF5PW5ldyBhYX07a2MucHJvdG90eXBlLmlzRW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMubGF5b3V0VmVydGV4QXJyYXkubGVuZ3RoJiYwPT09dGhpcy5pbmRleEFycmF5Lmxlbmd0aCYmMD09PXRoaXMuZHluYW1pY0xheW91dFZlcnRleEFycmF5Lmxlbmd0aCYmMD09PXRoaXMub3BhY2l0eVZlcnRleEFycmF5Lmxlbmd0aH0sa2MucHJvdG90eXBlLnVwbG9hZD1mdW5jdGlvbih0LGUscixuKXt0aGlzLmlzRW1wdHkoKXx8KHImJih0aGlzLmxheW91dFZlcnRleEJ1ZmZlcj10LmNyZWF0ZVZlcnRleEJ1ZmZlcih0aGlzLmxheW91dFZlcnRleEFycmF5LEpzLm1lbWJlcnMpLHRoaXMuaW5kZXhCdWZmZXI9dC5jcmVhdGVJbmRleEJ1ZmZlcih0aGlzLmluZGV4QXJyYXksZSksdGhpcy5keW5hbWljTGF5b3V0VmVydGV4QnVmZmVyPXQuY3JlYXRlVmVydGV4QnVmZmVyKHRoaXMuZHluYW1pY0xheW91dFZlcnRleEFycmF5LEtzLm1lbWJlcnMsITApLHRoaXMub3BhY2l0eVZlcnRleEJ1ZmZlcj10LmNyZWF0ZVZlcnRleEJ1ZmZlcih0aGlzLm9wYWNpdHlWZXJ0ZXhBcnJheSxiYywhMCksdGhpcy5vcGFjaXR5VmVydGV4QnVmZmVyLml0ZW1TaXplPTEpLChyfHxuKSYmdGhpcy5wcm9ncmFtQ29uZmlndXJhdGlvbnMudXBsb2FkKHQpKX0sa2MucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt0aGlzLmxheW91dFZlcnRleEJ1ZmZlciYmKHRoaXMubGF5b3V0VmVydGV4QnVmZmVyLmRlc3Ryb3koKSx0aGlzLmluZGV4QnVmZmVyLmRlc3Ryb3koKSx0aGlzLnByb2dyYW1Db25maWd1cmF0aW9ucy5kZXN0cm95KCksdGhpcy5zZWdtZW50cy5kZXN0cm95KCksdGhpcy5keW5hbWljTGF5b3V0VmVydGV4QnVmZmVyLmRlc3Ryb3koKSx0aGlzLm9wYWNpdHlWZXJ0ZXhCdWZmZXIuZGVzdHJveSgpKX0sTm4oIlN5bWJvbEJ1ZmZlcnMiLGtjKTt2YXIgQWM9ZnVuY3Rpb24odCxlLHIpe3RoaXMubGF5b3V0VmVydGV4QXJyYXk9bmV3IHQsdGhpcy5sYXlvdXRBdHRyaWJ1dGVzPWUsdGhpcy5pbmRleEFycmF5PW5ldyByLHRoaXMuc2VnbWVudHM9bmV3IHBhLHRoaXMuY29sbGlzaW9uVmVydGV4QXJyYXk9bmV3IEdpfTtBYy5wcm90b3R5cGUudXBsb2FkPWZ1bmN0aW9uKHQpe3RoaXMubGF5b3V0VmVydGV4QnVmZmVyPXQuY3JlYXRlVmVydGV4QnVmZmVyKHRoaXMubGF5b3V0VmVydGV4QXJyYXksdGhpcy5sYXlvdXRBdHRyaWJ1dGVzKSx0aGlzLmluZGV4QnVmZmVyPXQuY3JlYXRlSW5kZXhCdWZmZXIodGhpcy5pbmRleEFycmF5KSx0aGlzLmNvbGxpc2lvblZlcnRleEJ1ZmZlcj10LmNyZWF0ZVZlcnRleEJ1ZmZlcih0aGlzLmNvbGxpc2lvblZlcnRleEFycmF5LFFzLm1lbWJlcnMsITApfSxBYy5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMubGF5b3V0VmVydGV4QnVmZmVyJiYodGhpcy5sYXlvdXRWZXJ0ZXhCdWZmZXIuZGVzdHJveSgpLHRoaXMuaW5kZXhCdWZmZXIuZGVzdHJveSgpLHRoaXMuc2VnbWVudHMuZGVzdHJveSgpLHRoaXMuY29sbGlzaW9uVmVydGV4QnVmZmVyLmRlc3Ryb3koKSl9LE5uKCJDb2xsaXNpb25CdWZmZXJzIixBYyk7dmFyIE1jPWZ1bmN0aW9uKHQpe3RoaXMuY29sbGlzaW9uQm94QXJyYXk9dC5jb2xsaXNpb25Cb3hBcnJheSx0aGlzLnpvb209dC56b29tLHRoaXMub3ZlcnNjYWxpbmc9dC5vdmVyc2NhbGluZyx0aGlzLmxheWVycz10LmxheWVycyx0aGlzLmxheWVySWRzPXRoaXMubGF5ZXJzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWR9KSksdGhpcy5pbmRleD10LmluZGV4LHRoaXMucGl4ZWxSYXRpbz10LnBpeGVsUmF0aW8sdGhpcy5zb3VyY2VMYXllckluZGV4PXQuc291cmNlTGF5ZXJJbmRleCx0aGlzLmhhc1BhdHRlcm49ITEsdGhpcy5oYXNSVExUZXh0PSExLHRoaXMuc29ydEtleVJhbmdlcz1bXSx0aGlzLmNvbGxpc2lvbkNpcmNsZUFycmF5PVtdLHRoaXMucGxhY2VtZW50SW52UHJvak1hdHJpeD1obyhbXSksdGhpcy5wbGFjZW1lbnRWaWV3cG9ydE1hdHJpeD1obyhbXSk7dmFyIGU9dGhpcy5sYXllcnNbMF0uX3VuZXZhbHVhdGVkTGF5b3V0Ll92YWx1ZXM7dGhpcy50ZXh0U2l6ZURhdGE9R2wodGhpcy56b29tLGVbInRleHQtc2l6ZSJdKSx0aGlzLmljb25TaXplRGF0YT1HbCh0aGlzLnpvb20sZVsiaWNvbi1zaXplIl0pO3ZhciByPXRoaXMubGF5ZXJzWzBdLmxheW91dCxuPXIuZ2V0KCJzeW1ib2wtc29ydC1rZXkiKSxpPXIuZ2V0KCJzeW1ib2wtei1vcmRlciIpO3RoaXMuc29ydEZlYXR1cmVzQnlLZXk9InZpZXdwb3J0LXkiIT09aSYmdm9pZCAwIT09bi5jb25zdGFudE9yKDEpO3ZhciBhPSJ2aWV3cG9ydC15Ij09PWl8fCJhdXRvIj09PWkmJiF0aGlzLnNvcnRGZWF0dXJlc0J5S2V5O3RoaXMuc29ydEZlYXR1cmVzQnlZPWEmJihyLmdldCgidGV4dC1hbGxvdy1vdmVybGFwIil8fHIuZ2V0KCJpY29uLWFsbG93LW92ZXJsYXAiKXx8ci5nZXQoInRleHQtaWdub3JlLXBsYWNlbWVudCIpfHxyLmdldCgiaWNvbi1pZ25vcmUtcGxhY2VtZW50IikpLCJwb2ludCI9PT1yLmdldCgic3ltYm9sLXBsYWNlbWVudCIpJiYodGhpcy53cml0aW5nTW9kZXM9ci5nZXQoInRleHQtd3JpdGluZy1tb2RlIikubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gQ2xbdF19KSkpLHRoaXMuc3RhdGVEZXBlbmRlbnRMYXllcklkcz10aGlzLmxheWVycy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlzU3RhdGVEZXBlbmRlbnQoKX0pKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkfSkpLHRoaXMuc291cmNlSUQ9dC5zb3VyY2VJRH07TWMucHJvdG90eXBlLmNyZWF0ZUFycmF5cz1mdW5jdGlvbigpe3RoaXMudGV4dD1uZXcga2MobmV3IFVhKEpzLm1lbWJlcnMsdGhpcy5sYXllcnMsdGhpcy56b29tLChmdW5jdGlvbih0KXtyZXR1cm4vXnRleHQvLnRlc3QodCl9KSkpLHRoaXMuaWNvbj1uZXcga2MobmV3IFVhKEpzLm1lbWJlcnMsdGhpcy5sYXllcnMsdGhpcy56b29tLChmdW5jdGlvbih0KXtyZXR1cm4vXmljb24vLnRlc3QodCl9KSkpLHRoaXMuZ2x5cGhPZmZzZXRBcnJheT1uZXcgbGEsdGhpcy5saW5lVmVydGV4QXJyYXk9bmV3IGNhLHRoaXMuc3ltYm9sSW5zdGFuY2VzPW5ldyBzYX0sTWMucHJvdG90eXBlLmNhbGN1bGF0ZUdseXBoRGVwZW5kZW5jaWVzPWZ1bmN0aW9uKHQsZSxyLG4saSl7Zm9yKHZhciBhPTA7YTx0Lmxlbmd0aDthKyspaWYoZVt0LmNoYXJDb2RlQXQoYSldPSEwLChyfHxuKSYmaSl7dmFyIG89cmxbdC5jaGFyQXQoYSldO28mJihlW28uY2hhckNvZGVBdCgwKV09ITApfX0sTWMucHJvdG90eXBlLnBvcHVsYXRlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLmxheWVyc1swXSxpPW4ubGF5b3V0LGE9aS5nZXQoInRleHQtZm9udCIpLG89aS5nZXQoInRleHQtZmllbGQiKSxzPWkuZ2V0KCJpY29uLWltYWdlIiksbD0oImNvbnN0YW50IiE9PW8udmFsdWUua2luZHx8by52YWx1ZS52YWx1ZSBpbnN0YW5jZW9mIG5lJiYhby52YWx1ZS52YWx1ZS5pc0VtcHR5KCl8fG8udmFsdWUudmFsdWUudG9TdHJpbmcoKS5sZW5ndGg+MCkmJigiY29uc3RhbnQiIT09YS52YWx1ZS5raW5kfHxhLnZhbHVlLnZhbHVlLmxlbmd0aD4wKSxjPSJjb25zdGFudCIhPT1zLnZhbHVlLmtpbmR8fCEhcy52YWx1ZS52YWx1ZXx8T2JqZWN0LmtleXMocy5wYXJhbWV0ZXJzKS5sZW5ndGg+MCx1PWkuZ2V0KCJzeW1ib2wtc29ydC1rZXkiKTtpZih0aGlzLmZlYXR1cmVzPVtdLGx8fGMpe2Zvcih2YXIgZj1lLmljb25EZXBlbmRlbmNpZXMsaD1lLmdseXBoRGVwZW5kZW5jaWVzLHA9ZS5hdmFpbGFibGVJbWFnZXMsZD1uZXcgcGkodGhpcy56b29tKSxtPTAsZz10O208Zy5sZW5ndGg7bSs9MSl7dmFyIHY9Z1ttXSx5PXYuZmVhdHVyZSx4PXYuaWQsYj12LmluZGV4LF89di5zb3VyY2VMYXllckluZGV4LHc9bi5fZmVhdHVyZUZpbHRlci5uZWVkR2VvbWV0cnksVD17dHlwZTp5LnR5cGUsaWQ6eCxwcm9wZXJ0aWVzOnkucHJvcGVydGllcyxnZW9tZXRyeTp3P1lhKHkpOltdfTtpZihuLl9mZWF0dXJlRmlsdGVyLmZpbHRlcihkLFQscikpe3d8fChULmdlb21ldHJ5PVlhKHkpKTt2YXIgaz12b2lkIDA7aWYobCl7dmFyIEE9bi5nZXRWYWx1ZUFuZFJlc29sdmVUb2tlbnMoInRleHQtZmllbGQiLFQscixwKSxNPW5lLmZhY3RvcnkoQSk7VGMoTSkmJih0aGlzLmhhc1JUTFRleHQ9ITApLCghdGhpcy5oYXNSVExUZXh0fHwidW5hdmFpbGFibGUiPT09dWkoKXx8dGhpcy5oYXNSVExUZXh0JiZoaS5pc1BhcnNlZCgpKSYmKGs9ZWwoTSxuLFQpKX12YXIgUz12b2lkIDA7aWYoYyl7dmFyIEU9bi5nZXRWYWx1ZUFuZFJlc29sdmVUb2tlbnMoImljb24taW1hZ2UiLFQscixwKTtTPUUgaW5zdGFuY2VvZiBpZT9FOmllLmZyb21TdHJpbmcoRSl9aWYoa3x8Uyl7dmFyIEw9dGhpcy5zb3J0RmVhdHVyZXNCeUtleT91LmV2YWx1YXRlKFQse30scik6dm9pZCAwLEM9e2lkOngsdGV4dDprLGljb246UyxpbmRleDpiLHNvdXJjZUxheWVySW5kZXg6XyxnZW9tZXRyeTpZYSh5KSxwcm9wZXJ0aWVzOnkucHJvcGVydGllcyx0eXBlOnhjW3kudHlwZV0sc29ydEtleTpMfTtpZih0aGlzLmZlYXR1cmVzLnB1c2goQyksUyYmKGZbUy5uYW1lXT0hMCksayl7dmFyIFA9YS5ldmFsdWF0ZShULHt9LHIpLmpvaW4oIiwiKSxJPSJtYXAiPT09aS5nZXQoInRleHQtcm90YXRpb24tYWxpZ25tZW50IikmJiJwb2ludCIhPT1pLmdldCgic3ltYm9sLXBsYWNlbWVudCIpO3RoaXMuYWxsb3dWZXJ0aWNhbFBsYWNlbWVudD10aGlzLndyaXRpbmdNb2RlcyYmdGhpcy53cml0aW5nTW9kZXMuaW5kZXhPZihDbC52ZXJ0aWNhbCk+PTA7Zm9yKHZhciBPPTAsej1rLnNlY3Rpb25zO088ei5sZW5ndGg7Tys9MSl7dmFyIEQ9eltPXTtpZihELmltYWdlKWZbRC5pbWFnZS5uYW1lXT0hMDtlbHNle3ZhciBSPVduKGsudG9TdHJpbmcoKSksRj1ELmZvbnRTdGFja3x8UCxCPWhbRl09aFtGXXx8e307dGhpcy5jYWxjdWxhdGVHbHlwaERlcGVuZGVuY2llcyhELnRleHQsQixJLHRoaXMuYWxsb3dWZXJ0aWNhbFBsYWNlbWVudCxSKX19fX19fSJsaW5lIj09PWkuZ2V0KCJzeW1ib2wtcGxhY2VtZW50IikmJih0aGlzLmZlYXR1cmVzPWZ1bmN0aW9uKHQpe3ZhciBlPXt9LHI9e30sbj1bXSxpPTA7ZnVuY3Rpb24gYShlKXtuLnB1c2godFtlXSksaSsrfWZ1bmN0aW9uIG8odCxlLGkpe3ZhciBhPXJbdF07cmV0dXJuIGRlbGV0ZSByW3RdLHJbZV09YSxuW2FdLmdlb21ldHJ5WzBdLnBvcCgpLG5bYV0uZ2VvbWV0cnlbMF09blthXS5nZW9tZXRyeVswXS5jb25jYXQoaVswXSksYX1mdW5jdGlvbiBzKHQscixpKXt2YXIgYT1lW3JdO3JldHVybiBkZWxldGUgZVtyXSxlW3RdPWEsblthXS5nZW9tZXRyeVswXS5zaGlmdCgpLG5bYV0uZ2VvbWV0cnlbMF09aVswXS5jb25jYXQoblthXS5nZW9tZXRyeVswXSksYX1mdW5jdGlvbiBsKHQsZSxyKXt2YXIgbj1yP2VbMF1bZVswXS5sZW5ndGgtMV06ZVswXVswXTtyZXR1cm4gdCsiOiIrbi54KyI6IituLnl9Zm9yKHZhciBjPTA7Yzx0Lmxlbmd0aDtjKyspe3ZhciB1PXRbY10sZj11Lmdlb21ldHJ5LGg9dS50ZXh0P3UudGV4dC50b1N0cmluZygpOm51bGw7aWYoaCl7dmFyIHA9bChoLGYpLGQ9bChoLGYsITApO2lmKHAgaW4gciYmZCBpbiBlJiZyW3BdIT09ZVtkXSl7dmFyIG09cyhwLGQsZiksZz1vKHAsZCxuW21dLmdlb21ldHJ5KTtkZWxldGUgZVtwXSxkZWxldGUgcltkXSxyW2woaCxuW2ddLmdlb21ldHJ5LCEwKV09ZyxuW21dLmdlb21ldHJ5PW51bGx9ZWxzZSBwIGluIHI/byhwLGQsZik6ZCBpbiBlP3MocCxkLGYpOihhKGMpLGVbcF09aS0xLHJbZF09aS0xKX1lbHNlIGEoYyl9cmV0dXJuIG4uZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZW9tZXRyeX0pKX0odGhpcy5mZWF0dXJlcykpLHRoaXMuc29ydEZlYXR1cmVzQnlLZXkmJnRoaXMuZmVhdHVyZXMuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5zb3J0S2V5LWUuc29ydEtleX0pKX19LE1jLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlLHIpe3RoaXMuc3RhdGVEZXBlbmRlbnRMYXllcnMubGVuZ3RoJiYodGhpcy50ZXh0LnByb2dyYW1Db25maWd1cmF0aW9ucy51cGRhdGVQYWludEFycmF5cyh0LGUsdGhpcy5sYXllcnMsciksdGhpcy5pY29uLnByb2dyYW1Db25maWd1cmF0aW9ucy51cGRhdGVQYWludEFycmF5cyh0LGUsdGhpcy5sYXllcnMscikpfSxNYy5wcm90b3R5cGUuaXNFbXB0eT1mdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5zeW1ib2xJbnN0YW5jZXMubGVuZ3RoJiYhdGhpcy5oYXNSVExUZXh0fSxNYy5wcm90b3R5cGUudXBsb2FkUGVuZGluZz1mdW5jdGlvbigpe3JldHVybiF0aGlzLnVwbG9hZGVkfHx0aGlzLnRleHQucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLm5lZWRzVXBsb2FkfHx0aGlzLmljb24ucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLm5lZWRzVXBsb2FkfSxNYy5wcm90b3R5cGUudXBsb2FkPWZ1bmN0aW9uKHQpeyF0aGlzLnVwbG9hZGVkJiZ0aGlzLmhhc0RlYnVnRGF0YSgpJiYodGhpcy50ZXh0Q29sbGlzaW9uQm94LnVwbG9hZCh0KSx0aGlzLmljb25Db2xsaXNpb25Cb3gudXBsb2FkKHQpKSx0aGlzLnRleHQudXBsb2FkKHQsdGhpcy5zb3J0RmVhdHVyZXNCeVksIXRoaXMudXBsb2FkZWQsdGhpcy50ZXh0LnByb2dyYW1Db25maWd1cmF0aW9ucy5uZWVkc1VwbG9hZCksdGhpcy5pY29uLnVwbG9hZCh0LHRoaXMuc29ydEZlYXR1cmVzQnlZLCF0aGlzLnVwbG9hZGVkLHRoaXMuaWNvbi5wcm9ncmFtQ29uZmlndXJhdGlvbnMubmVlZHNVcGxvYWQpLHRoaXMudXBsb2FkZWQ9ITB9LE1jLnByb3RvdHlwZS5kZXN0cm95RGVidWdEYXRhPWZ1bmN0aW9uKCl7dGhpcy50ZXh0Q29sbGlzaW9uQm94LmRlc3Ryb3koKSx0aGlzLmljb25Db2xsaXNpb25Cb3guZGVzdHJveSgpfSxNYy5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMudGV4dC5kZXN0cm95KCksdGhpcy5pY29uLmRlc3Ryb3koKSx0aGlzLmhhc0RlYnVnRGF0YSgpJiZ0aGlzLmRlc3Ryb3lEZWJ1Z0RhdGEoKX0sTWMucHJvdG90eXBlLmFkZFRvTGluZVZlcnRleEFycmF5PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5saW5lVmVydGV4QXJyYXkubGVuZ3RoO2lmKHZvaWQgMCE9PXQuc2VnbWVudCl7Zm9yKHZhciBuPXQuZGlzdChlW3Quc2VnbWVudCsxXSksaT10LmRpc3QoZVt0LnNlZ21lbnRdKSxhPXt9LG89dC5zZWdtZW50KzE7bzxlLmxlbmd0aDtvKyspYVtvXT17eDplW29dLngseTplW29dLnksdGlsZVVuaXREaXN0YW5jZUZyb21BbmNob3I6bn0sbzxlLmxlbmd0aC0xJiYobis9ZVtvKzFdLmRpc3QoZVtvXSkpO2Zvcih2YXIgcz10LnNlZ21lbnR8fDA7cz49MDtzLS0pYVtzXT17eDplW3NdLngseTplW3NdLnksdGlsZVVuaXREaXN0YW5jZUZyb21BbmNob3I6aX0scz4wJiYoaSs9ZVtzLTFdLmRpc3QoZVtzXSkpO2Zvcih2YXIgbD0wO2w8ZS5sZW5ndGg7bCsrKXt2YXIgYz1hW2xdO3RoaXMubGluZVZlcnRleEFycmF5LmVtcGxhY2VCYWNrKGMueCxjLnksYy50aWxlVW5pdERpc3RhbmNlRnJvbUFuY2hvcil9fXJldHVybntsaW5lU3RhcnRJbmRleDpyLGxpbmVMZW5ndGg6dGhpcy5saW5lVmVydGV4QXJyYXkubGVuZ3RoLXJ9fSxNYy5wcm90b3R5cGUuYWRkU3ltYm9scz1mdW5jdGlvbih0LGUscixuLGksYSxvLHMsbCxjLHUsZil7Zm9yKHZhciBoPXQuaW5kZXhBcnJheSxwPXQubGF5b3V0VmVydGV4QXJyYXksZD10LnNlZ21lbnRzLnByZXBhcmVTZWdtZW50KDQqZS5sZW5ndGgscCxoLGEuc29ydEtleSksbT10aGlzLmdseXBoT2Zmc2V0QXJyYXkubGVuZ3RoLGc9ZC52ZXJ0ZXhMZW5ndGgsdj10aGlzLmFsbG93VmVydGljYWxQbGFjZW1lbnQmJm89PT1DbC52ZXJ0aWNhbD9NYXRoLlBJLzI6MCx5PWEudGV4dCYmYS50ZXh0LnNlY3Rpb25zLHg9MDt4PGUubGVuZ3RoO3grKyl7dmFyIGI9ZVt4XSxfPWIudGwsdz1iLnRyLFQ9Yi5ibCxrPWIuYnIsQT1iLnRleCxNPWIucGl4ZWxPZmZzZXRUTCxTPWIucGl4ZWxPZmZzZXRCUixFPWIubWluRm9udFNjYWxlWCxMPWIubWluRm9udFNjYWxlWSxDPWIuZ2x5cGhPZmZzZXQsUD1iLmlzU0RGLEk9Yi5zZWN0aW9uSW5kZXgsTz1kLnZlcnRleExlbmd0aCx6PUNbMV07X2MocCxzLngscy55LF8ueCx6K18ueSxBLngsQS55LHIsUCxNLngsTS55LEUsTCksX2MocCxzLngscy55LHcueCx6K3cueSxBLngrQS53LEEueSxyLFAsUy54LE0ueSxFLEwpLF9jKHAscy54LHMueSxULngseitULnksQS54LEEueStBLmgscixQLE0ueCxTLnksRSxMKSxfYyhwLHMueCxzLnksay54LHoray55LEEueCtBLncsQS55K0EuaCxyLFAsUy54LFMueSxFLEwpLHdjKHQuZHluYW1pY0xheW91dFZlcnRleEFycmF5LHMsdiksaC5lbXBsYWNlQmFjayhPLE8rMSxPKzIpLGguZW1wbGFjZUJhY2soTysxLE8rMixPKzMpLGQudmVydGV4TGVuZ3RoKz00LGQucHJpbWl0aXZlTGVuZ3RoKz0yLHRoaXMuZ2x5cGhPZmZzZXRBcnJheS5lbXBsYWNlQmFjayhDWzBdKSx4IT09ZS5sZW5ndGgtMSYmST09PWVbeCsxXS5zZWN0aW9uSW5kZXh8fHQucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLnBvcHVsYXRlUGFpbnRBcnJheXMocC5sZW5ndGgsYSxhLmluZGV4LHt9LGYseSYmeVtJXSl9dC5wbGFjZWRTeW1ib2xBcnJheS5lbXBsYWNlQmFjayhzLngscy55LG0sdGhpcy5nbHlwaE9mZnNldEFycmF5Lmxlbmd0aC1tLGcsbCxjLHMuc2VnbWVudCxyP3JbMF06MCxyP3JbMV06MCxuWzBdLG5bMV0sbywwLCExLDAsdSl9LE1jLnByb3RvdHlwZS5fYWRkQ29sbGlzaW9uRGVidWdWZXJ0ZXg9ZnVuY3Rpb24odCxlLHIsbixpLGEpe3JldHVybiBlLmVtcGxhY2VCYWNrKDAsMCksdC5lbXBsYWNlQmFjayhyLngsci55LG4saSxNYXRoLnJvdW5kKGEueCksTWF0aC5yb3VuZChhLnkpKX0sTWMucHJvdG90eXBlLmFkZENvbGxpc2lvbkRlYnVnVmVydGljZXM9ZnVuY3Rpb24odCxlLHIsbixhLG8scyl7dmFyIGw9YS5zZWdtZW50cy5wcmVwYXJlU2VnbWVudCg0LGEubGF5b3V0VmVydGV4QXJyYXksYS5pbmRleEFycmF5KSxjPWwudmVydGV4TGVuZ3RoLHU9YS5sYXlvdXRWZXJ0ZXhBcnJheSxmPWEuY29sbGlzaW9uVmVydGV4QXJyYXksaD1zLmFuY2hvclgscD1zLmFuY2hvclk7dGhpcy5fYWRkQ29sbGlzaW9uRGVidWdWZXJ0ZXgodSxmLG8saCxwLG5ldyBpKHQsZSkpLHRoaXMuX2FkZENvbGxpc2lvbkRlYnVnVmVydGV4KHUsZixvLGgscCxuZXcgaShyLGUpKSx0aGlzLl9hZGRDb2xsaXNpb25EZWJ1Z1ZlcnRleCh1LGYsbyxoLHAsbmV3IGkocixuKSksdGhpcy5fYWRkQ29sbGlzaW9uRGVidWdWZXJ0ZXgodSxmLG8saCxwLG5ldyBpKHQsbikpLGwudmVydGV4TGVuZ3RoKz00O3ZhciBkPWEuaW5kZXhBcnJheTtkLmVtcGxhY2VCYWNrKGMsYysxKSxkLmVtcGxhY2VCYWNrKGMrMSxjKzIpLGQuZW1wbGFjZUJhY2soYysyLGMrMyksZC5lbXBsYWNlQmFjayhjKzMsYyksbC5wcmltaXRpdmVMZW5ndGgrPTR9LE1jLnByb3RvdHlwZS5hZGREZWJ1Z0NvbGxpc2lvbkJveGVzPWZ1bmN0aW9uKHQsZSxyLG4pe2Zvcih2YXIgaT10O2k8ZTtpKyspe3ZhciBhPXRoaXMuY29sbGlzaW9uQm94QXJyYXkuZ2V0KGkpLG89YS54MSxzPWEueTEsbD1hLngyLGM9YS55Mjt0aGlzLmFkZENvbGxpc2lvbkRlYnVnVmVydGljZXMobyxzLGwsYyxuP3RoaXMudGV4dENvbGxpc2lvbkJveDp0aGlzLmljb25Db2xsaXNpb25Cb3gsYS5hbmNob3JQb2ludCxyKX19LE1jLnByb3RvdHlwZS5nZW5lcmF0ZUNvbGxpc2lvbkRlYnVnQnVmZmVycz1mdW5jdGlvbigpe3RoaXMuaGFzRGVidWdEYXRhKCkmJnRoaXMuZGVzdHJveURlYnVnRGF0YSgpLHRoaXMudGV4dENvbGxpc2lvbkJveD1uZXcgQWMoSGksJHMubWVtYmVycyxRaSksdGhpcy5pY29uQ29sbGlzaW9uQm94PW5ldyBBYyhIaSwkcy5tZW1iZXJzLFFpKTtmb3IodmFyIHQ9MDt0PHRoaXMuc3ltYm9sSW5zdGFuY2VzLmxlbmd0aDt0Kyspe3ZhciBlPXRoaXMuc3ltYm9sSW5zdGFuY2VzLmdldCh0KTt0aGlzLmFkZERlYnVnQ29sbGlzaW9uQm94ZXMoZS50ZXh0Qm94U3RhcnRJbmRleCxlLnRleHRCb3hFbmRJbmRleCxlLCEwKSx0aGlzLmFkZERlYnVnQ29sbGlzaW9uQm94ZXMoZS52ZXJ0aWNhbFRleHRCb3hTdGFydEluZGV4LGUudmVydGljYWxUZXh0Qm94RW5kSW5kZXgsZSwhMCksdGhpcy5hZGREZWJ1Z0NvbGxpc2lvbkJveGVzKGUuaWNvbkJveFN0YXJ0SW5kZXgsZS5pY29uQm94RW5kSW5kZXgsZSwhMSksdGhpcy5hZGREZWJ1Z0NvbGxpc2lvbkJveGVzKGUudmVydGljYWxJY29uQm94U3RhcnRJbmRleCxlLnZlcnRpY2FsSWNvbkJveEVuZEluZGV4LGUsITEpfX0sTWMucHJvdG90eXBlLl9kZXNlcmlhbGl6ZUNvbGxpc2lvbkJveGVzRm9yU3ltYm9sPWZ1bmN0aW9uKHQsZSxyLG4saSxhLG8scyxsKXtmb3IodmFyIGM9e30sdT1lO3U8cjt1Kyspe3ZhciBmPXQuZ2V0KHUpO2MudGV4dEJveD17eDE6Zi54MSx5MTpmLnkxLHgyOmYueDIseTI6Zi55MixhbmNob3JQb2ludFg6Zi5hbmNob3JQb2ludFgsYW5jaG9yUG9pbnRZOmYuYW5jaG9yUG9pbnRZfSxjLnRleHRGZWF0dXJlSW5kZXg9Zi5mZWF0dXJlSW5kZXg7YnJlYWt9Zm9yKHZhciBoPW47aDxpO2grKyl7dmFyIHA9dC5nZXQoaCk7Yy52ZXJ0aWNhbFRleHRCb3g9e3gxOnAueDEseTE6cC55MSx4MjpwLngyLHkyOnAueTIsYW5jaG9yUG9pbnRYOnAuYW5jaG9yUG9pbnRYLGFuY2hvclBvaW50WTpwLmFuY2hvclBvaW50WX0sYy52ZXJ0aWNhbFRleHRGZWF0dXJlSW5kZXg9cC5mZWF0dXJlSW5kZXg7YnJlYWt9Zm9yKHZhciBkPWE7ZDxvO2QrKyl7dmFyIG09dC5nZXQoZCk7Yy5pY29uQm94PXt4MTptLngxLHkxOm0ueTEseDI6bS54Mix5MjptLnkyLGFuY2hvclBvaW50WDptLmFuY2hvclBvaW50WCxhbmNob3JQb2ludFk6bS5hbmNob3JQb2ludFl9LGMuaWNvbkZlYXR1cmVJbmRleD1tLmZlYXR1cmVJbmRleDticmVha31mb3IodmFyIGc9cztnPGw7ZysrKXt2YXIgdj10LmdldChnKTtjLnZlcnRpY2FsSWNvbkJveD17eDE6di54MSx5MTp2LnkxLHgyOnYueDIseTI6di55MixhbmNob3JQb2ludFg6di5hbmNob3JQb2ludFgsYW5jaG9yUG9pbnRZOnYuYW5jaG9yUG9pbnRZfSxjLnZlcnRpY2FsSWNvbkZlYXR1cmVJbmRleD12LmZlYXR1cmVJbmRleDticmVha31yZXR1cm4gY30sTWMucHJvdG90eXBlLmRlc2VyaWFsaXplQ29sbGlzaW9uQm94ZXM9ZnVuY3Rpb24odCl7dGhpcy5jb2xsaXNpb25BcnJheXM9W107Zm9yKHZhciBlPTA7ZTx0aGlzLnN5bWJvbEluc3RhbmNlcy5sZW5ndGg7ZSsrKXt2YXIgcj10aGlzLnN5bWJvbEluc3RhbmNlcy5nZXQoZSk7dGhpcy5jb2xsaXNpb25BcnJheXMucHVzaCh0aGlzLl9kZXNlcmlhbGl6ZUNvbGxpc2lvbkJveGVzRm9yU3ltYm9sKHQsci50ZXh0Qm94U3RhcnRJbmRleCxyLnRleHRCb3hFbmRJbmRleCxyLnZlcnRpY2FsVGV4dEJveFN0YXJ0SW5kZXgsci52ZXJ0aWNhbFRleHRCb3hFbmRJbmRleCxyLmljb25Cb3hTdGFydEluZGV4LHIuaWNvbkJveEVuZEluZGV4LHIudmVydGljYWxJY29uQm94U3RhcnRJbmRleCxyLnZlcnRpY2FsSWNvbkJveEVuZEluZGV4KSl9fSxNYy5wcm90b3R5cGUuaGFzVGV4dERhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50ZXh0LnNlZ21lbnRzLmdldCgpLmxlbmd0aD4wfSxNYy5wcm90b3R5cGUuaGFzSWNvbkRhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pY29uLnNlZ21lbnRzLmdldCgpLmxlbmd0aD4wfSxNYy5wcm90b3R5cGUuaGFzRGVidWdEYXRhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGV4dENvbGxpc2lvbkJveCYmdGhpcy5pY29uQ29sbGlzaW9uQm94fSxNYy5wcm90b3R5cGUuaGFzVGV4dENvbGxpc2lvbkJveERhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oYXNEZWJ1Z0RhdGEoKSYmdGhpcy50ZXh0Q29sbGlzaW9uQm94LnNlZ21lbnRzLmdldCgpLmxlbmd0aD4wfSxNYy5wcm90b3R5cGUuaGFzSWNvbkNvbGxpc2lvbkJveERhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oYXNEZWJ1Z0RhdGEoKSYmdGhpcy5pY29uQ29sbGlzaW9uQm94LnNlZ21lbnRzLmdldCgpLmxlbmd0aD4wfSxNYy5wcm90b3R5cGUuYWRkSW5kaWNlc0ZvclBsYWNlZFN5bWJvbD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10LnBsYWNlZFN5bWJvbEFycmF5LmdldChlKSxuPXIudmVydGV4U3RhcnRJbmRleCs0KnIubnVtR2x5cGhzLGk9ci52ZXJ0ZXhTdGFydEluZGV4O2k8bjtpKz00KXQuaW5kZXhBcnJheS5lbXBsYWNlQmFjayhpLGkrMSxpKzIpLHQuaW5kZXhBcnJheS5lbXBsYWNlQmFjayhpKzEsaSsyLGkrMyl9LE1jLnByb3RvdHlwZS5nZXRTb3J0ZWRTeW1ib2xJbmRleGVzPWZ1bmN0aW9uKHQpe2lmKHRoaXMuc29ydGVkQW5nbGU9PT10JiZ2b2lkIDAhPT10aGlzLnN5bWJvbEluc3RhbmNlSW5kZXhlcylyZXR1cm4gdGhpcy5zeW1ib2xJbnN0YW5jZUluZGV4ZXM7Zm9yKHZhciBlPU1hdGguc2luKHQpLHI9TWF0aC5jb3ModCksbj1bXSxpPVtdLGE9W10sbz0wO288dGhpcy5zeW1ib2xJbnN0YW5jZXMubGVuZ3RoOysrbyl7YS5wdXNoKG8pO3ZhciBzPXRoaXMuc3ltYm9sSW5zdGFuY2VzLmdldChvKTtuLnB1c2goMHxNYXRoLnJvdW5kKGUqcy5hbmNob3JYK3Iqcy5hbmNob3JZKSksaS5wdXNoKHMuZmVhdHVyZUluZGV4KX1yZXR1cm4gYS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiBuW3RdLW5bZV18fGlbZV0taVt0XX0pKSxhfSxNYy5wcm90b3R5cGUuYWRkVG9Tb3J0S2V5UmFuZ2VzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5zb3J0S2V5UmFuZ2VzW3RoaXMuc29ydEtleVJhbmdlcy5sZW5ndGgtMV07ciYmci5zb3J0S2V5PT09ZT9yLnN5bWJvbEluc3RhbmNlRW5kPXQrMTp0aGlzLnNvcnRLZXlSYW5nZXMucHVzaCh7c29ydEtleTplLHN5bWJvbEluc3RhbmNlU3RhcnQ6dCxzeW1ib2xJbnN0YW5jZUVuZDp0KzF9KX0sTWMucHJvdG90eXBlLnNvcnRGZWF0dXJlcz1mdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKHRoaXMuc29ydEZlYXR1cmVzQnlZJiZ0aGlzLnNvcnRlZEFuZ2xlIT09dCYmISh0aGlzLnRleHQuc2VnbWVudHMuZ2V0KCkubGVuZ3RoPjF8fHRoaXMuaWNvbi5zZWdtZW50cy5nZXQoKS5sZW5ndGg+MSkpe3RoaXMuc3ltYm9sSW5zdGFuY2VJbmRleGVzPXRoaXMuZ2V0U29ydGVkU3ltYm9sSW5kZXhlcyh0KSx0aGlzLnNvcnRlZEFuZ2xlPXQsdGhpcy50ZXh0LmluZGV4QXJyYXkuY2xlYXIoKSx0aGlzLmljb24uaW5kZXhBcnJheS5jbGVhcigpLHRoaXMuZmVhdHVyZVNvcnRPcmRlcj1bXTtmb3IodmFyIHI9MCxuPXRoaXMuc3ltYm9sSW5zdGFuY2VJbmRleGVzO3I8bi5sZW5ndGg7cis9MSl7dmFyIGk9bltyXSxhPXRoaXMuc3ltYm9sSW5zdGFuY2VzLmdldChpKTt0aGlzLmZlYXR1cmVTb3J0T3JkZXIucHVzaChhLmZlYXR1cmVJbmRleCksW2EucmlnaHRKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXgsYS5jZW50ZXJKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXgsYS5sZWZ0SnVzdGlmaWVkVGV4dFN5bWJvbEluZGV4XS5mb3JFYWNoKChmdW5jdGlvbih0LHIsbil7dD49MCYmbi5pbmRleE9mKHQpPT09ciYmZS5hZGRJbmRpY2VzRm9yUGxhY2VkU3ltYm9sKGUudGV4dCx0KX0pKSxhLnZlcnRpY2FsUGxhY2VkVGV4dFN5bWJvbEluZGV4Pj0wJiZ0aGlzLmFkZEluZGljZXNGb3JQbGFjZWRTeW1ib2wodGhpcy50ZXh0LGEudmVydGljYWxQbGFjZWRUZXh0U3ltYm9sSW5kZXgpLGEucGxhY2VkSWNvblN5bWJvbEluZGV4Pj0wJiZ0aGlzLmFkZEluZGljZXNGb3JQbGFjZWRTeW1ib2wodGhpcy5pY29uLGEucGxhY2VkSWNvblN5bWJvbEluZGV4KSxhLnZlcnRpY2FsUGxhY2VkSWNvblN5bWJvbEluZGV4Pj0wJiZ0aGlzLmFkZEluZGljZXNGb3JQbGFjZWRTeW1ib2wodGhpcy5pY29uLGEudmVydGljYWxQbGFjZWRJY29uU3ltYm9sSW5kZXgpfXRoaXMudGV4dC5pbmRleEJ1ZmZlciYmdGhpcy50ZXh0LmluZGV4QnVmZmVyLnVwZGF0ZURhdGEodGhpcy50ZXh0LmluZGV4QXJyYXkpLHRoaXMuaWNvbi5pbmRleEJ1ZmZlciYmdGhpcy5pY29uLmluZGV4QnVmZmVyLnVwZGF0ZURhdGEodGhpcy5pY29uLmluZGV4QXJyYXkpfX0sTm4oIlN5bWJvbEJ1Y2tldCIsTWMse29taXQ6WyJsYXllcnMiLCJjb2xsaXNpb25Cb3hBcnJheSIsImZlYXR1cmVzIiwiY29tcGFyZVRleHQiXX0pLE1jLk1BWF9HTFlQSFM9NjU1MzUsTWMuYWRkRHluYW1pY0F0dHJpYnV0ZXM9d2M7dmFyIFNjPW5ldyBTaSh7InN5bWJvbC1wbGFjZW1lbnQiOm5ldyB3aShMdC5sYXlvdXRfc3ltYm9sWyJzeW1ib2wtcGxhY2VtZW50Il0pLCJzeW1ib2wtc3BhY2luZyI6bmV3IHdpKEx0LmxheW91dF9zeW1ib2xbInN5bWJvbC1zcGFjaW5nIl0pLCJzeW1ib2wtYXZvaWQtZWRnZXMiOm5ldyB3aShMdC5sYXlvdXRfc3ltYm9sWyJzeW1ib2wtYXZvaWQtZWRnZXMiXSksInN5bWJvbC1zb3J0LWtleSI6bmV3IFRpKEx0LmxheW91dF9zeW1ib2xbInN5bWJvbC1zb3J0LWtleSJdKSwic3ltYm9sLXotb3JkZXIiOm5ldyB3aShMdC5sYXlvdXRfc3ltYm9sWyJzeW1ib2wtei1vcmRlciJdKSwiaWNvbi1hbGxvdy1vdmVybGFwIjpuZXcgd2koTHQubGF5b3V0X3N5bWJvbFsiaWNvbi1hbGxvdy1vdmVybGFwIl0pLCJpY29uLWlnbm9yZS1wbGFjZW1lbnQiOm5ldyB3aShMdC5sYXlvdXRfc3ltYm9sWyJpY29uLWlnbm9yZS1wbGFjZW1lbnQiXSksImljb24tb3B0aW9uYWwiOm5ldyB3aShMdC5sYXlvdXRfc3ltYm9sWyJpY29uLW9wdGlvbmFsIl0pLCJpY29uLXJvdGF0aW9uLWFsaWdubWVudCI6bmV3IHdpKEx0LmxheW91dF9zeW1ib2xbImljb24tcm90YXRpb24tYWxpZ25tZW50Il0pLCJpY29uLXNpemUiOm5ldyBUaShMdC5sYXlvdXRfc3ltYm9sWyJpY29uLXNpemUiXSksImljb24tdGV4dC1maXQiOm5ldyB3aShMdC5sYXlvdXRfc3ltYm9sWyJpY29uLXRleHQtZml0Il0pLCJpY29uLXRleHQtZml0LXBhZGRpbmciOm5ldyB3aShMdC5sYXlvdXRfc3ltYm9sWyJpY29uLXRleHQtZml0LXBhZGRpbmciXSksImljb24taW1hZ2UiOm5ldyBUaShMdC5sYXlvdXRfc3ltYm9sWyJpY29uLWltYWdlIl0pLCJpY29uLXJvdGF0ZSI6bmV3IFRpKEx0LmxheW91dF9zeW1ib2xbImljb24tcm90YXRlIl0pLCJpY29uLXBhZGRpbmciOm5ldyB3aShMdC5sYXlvdXRfc3ltYm9sWyJpY29uLXBhZGRpbmciXSksImljb24ta2VlcC11cHJpZ2h0IjpuZXcgd2koTHQubGF5b3V0X3N5bWJvbFsiaWNvbi1rZWVwLXVwcmlnaHQiXSksImljb24tb2Zmc2V0IjpuZXcgVGkoTHQubGF5b3V0X3N5bWJvbFsiaWNvbi1vZmZzZXQiXSksImljb24tYW5jaG9yIjpuZXcgVGkoTHQubGF5b3V0X3N5bWJvbFsiaWNvbi1hbmNob3IiXSksImljb24tcGl0Y2gtYWxpZ25tZW50IjpuZXcgd2koTHQubGF5b3V0X3N5bWJvbFsiaWNvbi1waXRjaC1hbGlnbm1lbnQiXSksInRleHQtcGl0Y2gtYWxpZ25tZW50IjpuZXcgd2koTHQubGF5b3V0X3N5bWJvbFsidGV4dC1waXRjaC1hbGlnbm1lbnQiXSksInRleHQtcm90YXRpb24tYWxpZ25tZW50IjpuZXcgd2koTHQubGF5b3V0X3N5bWJvbFsidGV4dC1yb3RhdGlvbi1hbGlnbm1lbnQiXSksInRleHQtZmllbGQiOm5ldyBUaShMdC5sYXlvdXRfc3ltYm9sWyJ0ZXh0LWZpZWxkIl0pLCJ0ZXh0LWZvbnQiOm5ldyBUaShMdC5sYXlvdXRfc3ltYm9sWyJ0ZXh0LWZvbnQiXSksInRleHQtc2l6ZSI6bmV3IFRpKEx0LmxheW91dF9zeW1ib2xbInRleHQtc2l6ZSJdKSwidGV4dC1tYXgtd2lkdGgiOm5ldyBUaShMdC5sYXlvdXRfc3ltYm9sWyJ0ZXh0LW1heC13aWR0aCJdKSwidGV4dC1saW5lLWhlaWdodCI6bmV3IHdpKEx0LmxheW91dF9zeW1ib2xbInRleHQtbGluZS1oZWlnaHQiXSksInRleHQtbGV0dGVyLXNwYWNpbmciOm5ldyBUaShMdC5sYXlvdXRfc3ltYm9sWyJ0ZXh0LWxldHRlci1zcGFjaW5nIl0pLCJ0ZXh0LWp1c3RpZnkiOm5ldyBUaShMdC5sYXlvdXRfc3ltYm9sWyJ0ZXh0LWp1c3RpZnkiXSksInRleHQtcmFkaWFsLW9mZnNldCI6bmV3IFRpKEx0LmxheW91dF9zeW1ib2xbInRleHQtcmFkaWFsLW9mZnNldCJdKSwidGV4dC12YXJpYWJsZS1hbmNob3IiOm5ldyB3aShMdC5sYXlvdXRfc3ltYm9sWyJ0ZXh0LXZhcmlhYmxlLWFuY2hvciJdKSwidGV4dC1hbmNob3IiOm5ldyBUaShMdC5sYXlvdXRfc3ltYm9sWyJ0ZXh0LWFuY2hvciJdKSwidGV4dC1tYXgtYW5nbGUiOm5ldyB3aShMdC5sYXlvdXRfc3ltYm9sWyJ0ZXh0LW1heC1hbmdsZSJdKSwidGV4dC13cml0aW5nLW1vZGUiOm5ldyB3aShMdC5sYXlvdXRfc3ltYm9sWyJ0ZXh0LXdyaXRpbmctbW9kZSJdKSwidGV4dC1yb3RhdGUiOm5ldyBUaShMdC5sYXlvdXRfc3ltYm9sWyJ0ZXh0LXJvdGF0ZSJdKSwidGV4dC1wYWRkaW5nIjpuZXcgd2koTHQubGF5b3V0X3N5bWJvbFsidGV4dC1wYWRkaW5nIl0pLCJ0ZXh0LWtlZXAtdXByaWdodCI6bmV3IHdpKEx0LmxheW91dF9zeW1ib2xbInRleHQta2VlcC11cHJpZ2h0Il0pLCJ0ZXh0LXRyYW5zZm9ybSI6bmV3IFRpKEx0LmxheW91dF9zeW1ib2xbInRleHQtdHJhbnNmb3JtIl0pLCJ0ZXh0LW9mZnNldCI6bmV3IFRpKEx0LmxheW91dF9zeW1ib2xbInRleHQtb2Zmc2V0Il0pLCJ0ZXh0LWFsbG93LW92ZXJsYXAiOm5ldyB3aShMdC5sYXlvdXRfc3ltYm9sWyJ0ZXh0LWFsbG93LW92ZXJsYXAiXSksInRleHQtaWdub3JlLXBsYWNlbWVudCI6bmV3IHdpKEx0LmxheW91dF9zeW1ib2xbInRleHQtaWdub3JlLXBsYWNlbWVudCJdKSwidGV4dC1vcHRpb25hbCI6bmV3IHdpKEx0LmxheW91dF9zeW1ib2xbInRleHQtb3B0aW9uYWwiXSl9KSxFYz17cGFpbnQ6bmV3IFNpKHsiaWNvbi1vcGFjaXR5IjpuZXcgVGkoTHQucGFpbnRfc3ltYm9sWyJpY29uLW9wYWNpdHkiXSksImljb24tY29sb3IiOm5ldyBUaShMdC5wYWludF9zeW1ib2xbImljb24tY29sb3IiXSksImljb24taGFsby1jb2xvciI6bmV3IFRpKEx0LnBhaW50X3N5bWJvbFsiaWNvbi1oYWxvLWNvbG9yIl0pLCJpY29uLWhhbG8td2lkdGgiOm5ldyBUaShMdC5wYWludF9zeW1ib2xbImljb24taGFsby13aWR0aCJdKSwiaWNvbi1oYWxvLWJsdXIiOm5ldyBUaShMdC5wYWludF9zeW1ib2xbImljb24taGFsby1ibHVyIl0pLCJpY29uLXRyYW5zbGF0ZSI6bmV3IHdpKEx0LnBhaW50X3N5bWJvbFsiaWNvbi10cmFuc2xhdGUiXSksImljb24tdHJhbnNsYXRlLWFuY2hvciI6bmV3IHdpKEx0LnBhaW50X3N5bWJvbFsiaWNvbi10cmFuc2xhdGUtYW5jaG9yIl0pLCJ0ZXh0LW9wYWNpdHkiOm5ldyBUaShMdC5wYWludF9zeW1ib2xbInRleHQtb3BhY2l0eSJdKSwidGV4dC1jb2xvciI6bmV3IFRpKEx0LnBhaW50X3N5bWJvbFsidGV4dC1jb2xvciJdLHtydW50aW1lVHlwZTpVdCxnZXRPdmVycmlkZTpmdW5jdGlvbih0KXtyZXR1cm4gdC50ZXh0Q29sb3J9LGhhc092ZXJyaWRlOmZ1bmN0aW9uKHQpe3JldHVybiEhdC50ZXh0Q29sb3J9fSksInRleHQtaGFsby1jb2xvciI6bmV3IFRpKEx0LnBhaW50X3N5bWJvbFsidGV4dC1oYWxvLWNvbG9yIl0pLCJ0ZXh0LWhhbG8td2lkdGgiOm5ldyBUaShMdC5wYWludF9zeW1ib2xbInRleHQtaGFsby13aWR0aCJdKSwidGV4dC1oYWxvLWJsdXIiOm5ldyBUaShMdC5wYWludF9zeW1ib2xbInRleHQtaGFsby1ibHVyIl0pLCJ0ZXh0LXRyYW5zbGF0ZSI6bmV3IHdpKEx0LnBhaW50X3N5bWJvbFsidGV4dC10cmFuc2xhdGUiXSksInRleHQtdHJhbnNsYXRlLWFuY2hvciI6bmV3IHdpKEx0LnBhaW50X3N5bWJvbFsidGV4dC10cmFuc2xhdGUtYW5jaG9yIl0pfSksbGF5b3V0OlNjfSxMYz1mdW5jdGlvbih0KXt0aGlzLnR5cGU9dC5wcm9wZXJ0eS5vdmVycmlkZXM/dC5wcm9wZXJ0eS5vdmVycmlkZXMucnVudGltZVR5cGU6RnQsdGhpcy5kZWZhdWx0VmFsdWU9dH07TGMucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKHQpe2lmKHQuZm9ybWF0dGVkU2VjdGlvbil7dmFyIGU9dGhpcy5kZWZhdWx0VmFsdWUucHJvcGVydHkub3ZlcnJpZGVzO2lmKGUmJmUuaGFzT3ZlcnJpZGUodC5mb3JtYXR0ZWRTZWN0aW9uKSlyZXR1cm4gZS5nZXRPdmVycmlkZSh0LmZvcm1hdHRlZFNlY3Rpb24pfXJldHVybiB0LmZlYXR1cmUmJnQuZmVhdHVyZVN0YXRlP3RoaXMuZGVmYXVsdFZhbHVlLmV2YWx1YXRlKHQuZmVhdHVyZSx0LmZlYXR1cmVTdGF0ZSk6dGhpcy5kZWZhdWx0VmFsdWUucHJvcGVydHkuc3BlY2lmaWNhdGlvbi5kZWZhdWx0fSxMYy5wcm90b3R5cGUuZWFjaENoaWxkPWZ1bmN0aW9uKHQpe3RoaXMuZGVmYXVsdFZhbHVlLmlzQ29uc3RhbnQoKXx8dCh0aGlzLmRlZmF1bHRWYWx1ZS52YWx1ZS5fc3R5bGVFeHByZXNzaW9uLmV4cHJlc3Npb24pfSxMYy5wcm90b3R5cGUub3V0cHV0RGVmaW5lZD1mdW5jdGlvbigpe3JldHVybiExfSxMYy5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LE5uKCJGb3JtYXRTZWN0aW9uT3ZlcnJpZGUiLExjLHtvbWl0OlsiZGVmYXVsdFZhbHVlIl19KTt2YXIgQ2M9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt0LmNhbGwodGhpcyxlLEVjKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUucmVjYWxjdWxhdGU9ZnVuY3Rpb24oZSxyKXtpZih0LnByb3RvdHlwZS5yZWNhbGN1bGF0ZS5jYWxsKHRoaXMsZSxyKSwiYXV0byI9PT10aGlzLmxheW91dC5nZXQoImljb24tcm90YXRpb24tYWxpZ25tZW50IikmJigicG9pbnQiIT09dGhpcy5sYXlvdXQuZ2V0KCJzeW1ib2wtcGxhY2VtZW50Iik/dGhpcy5sYXlvdXQuX3ZhbHVlc1siaWNvbi1yb3RhdGlvbi1hbGlnbm1lbnQiXT0ibWFwIjp0aGlzLmxheW91dC5fdmFsdWVzWyJpY29uLXJvdGF0aW9uLWFsaWdubWVudCJdPSJ2aWV3cG9ydCIpLCJhdXRvIj09PXRoaXMubGF5b3V0LmdldCgidGV4dC1yb3RhdGlvbi1hbGlnbm1lbnQiKSYmKCJwb2ludCIhPT10aGlzLmxheW91dC5nZXQoInN5bWJvbC1wbGFjZW1lbnQiKT90aGlzLmxheW91dC5fdmFsdWVzWyJ0ZXh0LXJvdGF0aW9uLWFsaWdubWVudCJdPSJtYXAiOnRoaXMubGF5b3V0Ll92YWx1ZXNbInRleHQtcm90YXRpb24tYWxpZ25tZW50Il09InZpZXdwb3J0IiksImF1dG8iPT09dGhpcy5sYXlvdXQuZ2V0KCJ0ZXh0LXBpdGNoLWFsaWdubWVudCIpJiYodGhpcy5sYXlvdXQuX3ZhbHVlc1sidGV4dC1waXRjaC1hbGlnbm1lbnQiXT10aGlzLmxheW91dC5nZXQoInRleHQtcm90YXRpb24tYWxpZ25tZW50IikpLCJhdXRvIj09PXRoaXMubGF5b3V0LmdldCgiaWNvbi1waXRjaC1hbGlnbm1lbnQiKSYmKHRoaXMubGF5b3V0Ll92YWx1ZXNbImljb24tcGl0Y2gtYWxpZ25tZW50Il09dGhpcy5sYXlvdXQuZ2V0KCJpY29uLXJvdGF0aW9uLWFsaWdubWVudCIpKSwicG9pbnQiPT09dGhpcy5sYXlvdXQuZ2V0KCJzeW1ib2wtcGxhY2VtZW50Iikpe3ZhciBuPXRoaXMubGF5b3V0LmdldCgidGV4dC13cml0aW5nLW1vZGUiKTtpZihuKXtmb3IodmFyIGk9W10sYT0wLG89bjthPG8ubGVuZ3RoO2ErPTEpe3ZhciBzPW9bYV07aS5pbmRleE9mKHMpPDAmJmkucHVzaChzKX10aGlzLmxheW91dC5fdmFsdWVzWyJ0ZXh0LXdyaXRpbmctbW9kZSJdPWl9ZWxzZSB0aGlzLmxheW91dC5fdmFsdWVzWyJ0ZXh0LXdyaXRpbmctbW9kZSJdPVsiaG9yaXpvbnRhbCJdfXRoaXMuX3NldFBhaW50T3ZlcnJpZGVzKCl9LGUucHJvdG90eXBlLmdldFZhbHVlQW5kUmVzb2x2ZVRva2Vucz1mdW5jdGlvbih0LGUscixuKXt2YXIgaT10aGlzLmxheW91dC5nZXQodCkuZXZhbHVhdGUoZSx7fSxyLG4pLGE9dGhpcy5fdW5ldmFsdWF0ZWRMYXlvdXQuX3ZhbHVlc1t0XTtyZXR1cm4gYS5pc0RhdGFEcml2ZW4oKXx8WXIoYS52YWx1ZSl8fCFpP2k6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5yZXBsYWNlKC97KFtee31dKyl9L2csKGZ1bmN0aW9uKGUscil7cmV0dXJuIHIgaW4gdD9TdHJpbmcodFtyXSk6IiJ9KSl9KGUucHJvcGVydGllcyxpKX0sZS5wcm90b3R5cGUuY3JlYXRlQnVja2V0PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgTWModCl9LGUucHJvdG90eXBlLnF1ZXJ5UmFkaXVzPWZ1bmN0aW9uKCl7cmV0dXJuIDB9LGUucHJvdG90eXBlLnF1ZXJ5SW50ZXJzZWN0c0ZlYXR1cmU9ZnVuY3Rpb24oKXtyZXR1cm4hMX0sZS5wcm90b3R5cGUuX3NldFBhaW50T3ZlcnJpZGVzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTAscj1FYy5wYWludC5vdmVycmlkYWJsZVByb3BlcnRpZXM7dDxyLmxlbmd0aDt0Kz0xKXt2YXIgbj1yW3RdO2lmKGUuaGFzUGFpbnRPdmVycmlkZSh0aGlzLmxheW91dCxuKSl7dmFyIGk9dGhpcy5wYWludC5nZXQobiksYT1uZXcgTGMoaSksbz1uZXcgR3IoYSxpLnByb3BlcnR5LnNwZWNpZmljYXRpb24pLHM9bnVsbDtzPSJjb25zdGFudCI9PT1pLnZhbHVlLmtpbmR8fCJzb3VyY2UiPT09aS52YWx1ZS5raW5kP25ldyBYcigic291cmNlIixvKTpuZXcgWnIoImNvbXBvc2l0ZSIsbyxpLnZhbHVlLnpvb21TdG9wcyxpLnZhbHVlLl9pbnRlcnBvbGF0aW9uVHlwZSksdGhpcy5wYWludC5fdmFsdWVzW25dPW5ldyBiaShpLnByb3BlcnR5LHMsaS5wYXJhbWV0ZXJzKX19fSxlLnByb3RvdHlwZS5faGFuZGxlT3ZlcnJpZGFibGVQYWludFByb3BlcnR5VXBkYXRlPWZ1bmN0aW9uKHQscixuKXtyZXR1cm4hKCF0aGlzLmxheW91dHx8ci5pc0RhdGFEcml2ZW4oKXx8bi5pc0RhdGFEcml2ZW4oKSkmJmUuaGFzUGFpbnRPdmVycmlkZSh0aGlzLmxheW91dCx0KX0sZS5oYXNQYWludE92ZXJyaWRlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5nZXQoInRleHQtZmllbGQiKSxuPUVjLnBhaW50LnByb3BlcnRpZXNbZV0saT0hMSxhPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLHI9dDtlPHIubGVuZ3RoO2UrPTEpe3ZhciBhPXJbZV07aWYobi5vdmVycmlkZXMmJm4ub3ZlcnJpZGVzLmhhc092ZXJyaWRlKGEpKXJldHVybiB2b2lkKGk9ITApfX07aWYoImNvbnN0YW50Ij09PXIudmFsdWUua2luZCYmci52YWx1ZS52YWx1ZSBpbnN0YW5jZW9mIG5lKWEoci52YWx1ZS52YWx1ZS5zZWN0aW9ucyk7ZWxzZSBpZigic291cmNlIj09PXIudmFsdWUua2luZCl7dmFyIG89ZnVuY3Rpb24odCl7aWYoIWkpaWYodCBpbnN0YW5jZW9mIGNlJiZzZSh0LnZhbHVlKT09PUd0KXt2YXIgZT10LnZhbHVlO2EoZS5zZWN0aW9ucyl9ZWxzZSB0IGluc3RhbmNlb2YgcGU/YSh0LnNlY3Rpb25zKTp0LmVhY2hDaGlsZChvKX0scz1yLnZhbHVlO3MuX3N0eWxlRXhwcmVzc2lvbiYmbyhzLl9zdHlsZUV4cHJlc3Npb24uZXhwcmVzc2lvbil9cmV0dXJuIGl9LGV9KEVpKSxQYz17cGFpbnQ6bmV3IFNpKHsiYmFja2dyb3VuZC1jb2xvciI6bmV3IHdpKEx0LnBhaW50X2JhY2tncm91bmRbImJhY2tncm91bmQtY29sb3IiXSksImJhY2tncm91bmQtcGF0dGVybiI6bmV3IEFpKEx0LnBhaW50X2JhY2tncm91bmRbImJhY2tncm91bmQtcGF0dGVybiJdKSwiYmFja2dyb3VuZC1vcGFjaXR5IjpuZXcgd2koTHQucGFpbnRfYmFja2dyb3VuZFsiYmFja2dyb3VuZC1vcGFjaXR5Il0pfSl9LEljPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7dC5jYWxsKHRoaXMsZSxQYyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGV9KEVpKSxPYz17cGFpbnQ6bmV3IFNpKHsicmFzdGVyLW9wYWNpdHkiOm5ldyB3aShMdC5wYWludF9yYXN0ZXJbInJhc3Rlci1vcGFjaXR5Il0pLCJyYXN0ZXItaHVlLXJvdGF0ZSI6bmV3IHdpKEx0LnBhaW50X3Jhc3RlclsicmFzdGVyLWh1ZS1yb3RhdGUiXSksInJhc3Rlci1icmlnaHRuZXNzLW1pbiI6bmV3IHdpKEx0LnBhaW50X3Jhc3RlclsicmFzdGVyLWJyaWdodG5lc3MtbWluIl0pLCJyYXN0ZXItYnJpZ2h0bmVzcy1tYXgiOm5ldyB3aShMdC5wYWludF9yYXN0ZXJbInJhc3Rlci1icmlnaHRuZXNzLW1heCJdKSwicmFzdGVyLXNhdHVyYXRpb24iOm5ldyB3aShMdC5wYWludF9yYXN0ZXJbInJhc3Rlci1zYXR1cmF0aW9uIl0pLCJyYXN0ZXItY29udHJhc3QiOm5ldyB3aShMdC5wYWludF9yYXN0ZXJbInJhc3Rlci1jb250cmFzdCJdKSwicmFzdGVyLXJlc2FtcGxpbmciOm5ldyB3aShMdC5wYWludF9yYXN0ZXJbInJhc3Rlci1yZXNhbXBsaW5nIl0pLCJyYXN0ZXItZmFkZS1kdXJhdGlvbiI6bmV3IHdpKEx0LnBhaW50X3Jhc3RlclsicmFzdGVyLWZhZGUtZHVyYXRpb24iXSl9KX0semM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt0LmNhbGwodGhpcyxlLE9jKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZX0oRWkpO3ZhciBEYz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3QuY2FsbCh0aGlzLGUse30pLHRoaXMuaW1wbGVtZW50YXRpb249ZX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuaXMzRD1mdW5jdGlvbigpe3JldHVybiIzZCI9PT10aGlzLmltcGxlbWVudGF0aW9uLnJlbmRlcmluZ01vZGV9LGUucHJvdG90eXBlLmhhc09mZnNjcmVlblBhc3M9ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5pbXBsZW1lbnRhdGlvbi5wcmVyZW5kZXJ9LGUucHJvdG90eXBlLnJlY2FsY3VsYXRlPWZ1bmN0aW9uKCl7fSxlLnByb3RvdHlwZS51cGRhdGVUcmFuc2l0aW9ucz1mdW5jdGlvbigpe30sZS5wcm90b3R5cGUuaGFzVHJhbnNpdGlvbj1mdW5jdGlvbigpe30sZS5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7fSxlLnByb3RvdHlwZS5vbkFkZD1mdW5jdGlvbih0KXt0aGlzLmltcGxlbWVudGF0aW9uLm9uQWRkJiZ0aGlzLmltcGxlbWVudGF0aW9uLm9uQWRkKHQsdC5wYWludGVyLmNvbnRleHQuZ2wpfSxlLnByb3RvdHlwZS5vblJlbW92ZT1mdW5jdGlvbih0KXt0aGlzLmltcGxlbWVudGF0aW9uLm9uUmVtb3ZlJiZ0aGlzLmltcGxlbWVudGF0aW9uLm9uUmVtb3ZlKHQsdC5wYWludGVyLmNvbnRleHQuZ2wpfSxlfShFaSksUmM9e2NpcmNsZTpfbyxoZWF0bWFwOlBvLGhpbGxzaGFkZTpPbyxmaWxsOnhzLCJmaWxsLWV4dHJ1c2lvbiI6RnMsbGluZTpYcyxzeW1ib2w6Q2MsYmFja2dyb3VuZDpJYyxyYXN0ZXI6emN9O3ZhciBGYz1zZWxmLkhUTUxJbWFnZUVsZW1lbnQsQmM9c2VsZi5IVE1MQ2FudmFzRWxlbWVudCxOYz1zZWxmLkhUTUxWaWRlb0VsZW1lbnQsamM9c2VsZi5JbWFnZURhdGEsVWM9c2VsZi5JbWFnZUJpdG1hcCxWYz1mdW5jdGlvbih0LGUscixuKXt0aGlzLmNvbnRleHQ9dCx0aGlzLmZvcm1hdD1yLHRoaXMudGV4dHVyZT10LmdsLmNyZWF0ZVRleHR1cmUoKSx0aGlzLnVwZGF0ZShlLG4pfTtWYy5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10LndpZHRoLGk9dC5oZWlnaHQsYT0hKHRoaXMuc2l6ZSYmdGhpcy5zaXplWzBdPT09biYmdGhpcy5zaXplWzFdPT09aXx8ciksbz10aGlzLmNvbnRleHQscz1vLmdsO2lmKHRoaXMudXNlTWlwbWFwPUJvb2xlYW4oZSYmZS51c2VNaXBtYXApLHMuYmluZFRleHR1cmUocy5URVhUVVJFXzJELHRoaXMudGV4dHVyZSksby5waXhlbFN0b3JlVW5wYWNrRmxpcFkuc2V0KCExKSxvLnBpeGVsU3RvcmVVbnBhY2suc2V0KDEpLG8ucGl4ZWxTdG9yZVVucGFja1ByZW11bHRpcGx5QWxwaGEuc2V0KHRoaXMuZm9ybWF0PT09cy5SR0JBJiYoIWV8fCExIT09ZS5wcmVtdWx0aXBseSkpLGEpdGhpcy5zaXplPVtuLGldLHQgaW5zdGFuY2VvZiBGY3x8dCBpbnN0YW5jZW9mIEJjfHx0IGluc3RhbmNlb2YgTmN8fHQgaW5zdGFuY2VvZiBqY3x8VWMmJnQgaW5zdGFuY2VvZiBVYz9zLnRleEltYWdlMkQocy5URVhUVVJFXzJELDAsdGhpcy5mb3JtYXQsdGhpcy5mb3JtYXQscy5VTlNJR05FRF9CWVRFLHQpOnMudGV4SW1hZ2UyRChzLlRFWFRVUkVfMkQsMCx0aGlzLmZvcm1hdCxuLGksMCx0aGlzLmZvcm1hdCxzLlVOU0lHTkVEX0JZVEUsdC5kYXRhKTtlbHNle3ZhciBsPXJ8fHt4OjAseTowfSxjPWwueCx1PWwueTt0IGluc3RhbmNlb2YgRmN8fHQgaW5zdGFuY2VvZiBCY3x8dCBpbnN0YW5jZW9mIE5jfHx0IGluc3RhbmNlb2YgamN8fFVjJiZ0IGluc3RhbmNlb2YgVWM/cy50ZXhTdWJJbWFnZTJEKHMuVEVYVFVSRV8yRCwwLGMsdSxzLlJHQkEscy5VTlNJR05FRF9CWVRFLHQpOnMudGV4U3ViSW1hZ2UyRChzLlRFWFRVUkVfMkQsMCxjLHUsbixpLHMuUkdCQSxzLlVOU0lHTkVEX0JZVEUsdC5kYXRhKX10aGlzLnVzZU1pcG1hcCYmdGhpcy5pc1NpemVQb3dlck9mVHdvKCkmJnMuZ2VuZXJhdGVNaXBtYXAocy5URVhUVVJFXzJEKX0sVmMucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMuY29udGV4dC5nbDtuLmJpbmRUZXh0dXJlKG4uVEVYVFVSRV8yRCx0aGlzLnRleHR1cmUpLHIhPT1uLkxJTkVBUl9NSVBNQVBfTkVBUkVTVHx8dGhpcy5pc1NpemVQb3dlck9mVHdvKCl8fChyPW4uTElORUFSKSx0IT09dGhpcy5maWx0ZXImJihuLnRleFBhcmFtZXRlcmkobi5URVhUVVJFXzJELG4uVEVYVFVSRV9NQUdfRklMVEVSLHQpLG4udGV4UGFyYW1ldGVyaShuLlRFWFRVUkVfMkQsbi5URVhUVVJFX01JTl9GSUxURVIscnx8dCksdGhpcy5maWx0ZXI9dCksZSE9PXRoaXMud3JhcCYmKG4udGV4UGFyYW1ldGVyaShuLlRFWFRVUkVfMkQsbi5URVhUVVJFX1dSQVBfUyxlKSxuLnRleFBhcmFtZXRlcmkobi5URVhUVVJFXzJELG4uVEVYVFVSRV9XUkFQX1QsZSksdGhpcy53cmFwPWUpfSxWYy5wcm90b3R5cGUuaXNTaXplUG93ZXJPZlR3bz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnNpemVbMF09PT10aGlzLnNpemVbMV0mJk1hdGgubG9nKHRoaXMuc2l6ZVswXSkvTWF0aC5MTjIlMT09MH0sVmMucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt0aGlzLmNvbnRleHQuZ2wuZGVsZXRlVGV4dHVyZSh0aGlzLnRleHR1cmUpLHRoaXMudGV4dHVyZT1udWxsfTt2YXIgSGM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLl9jYWxsYmFjaz10LHRoaXMuX3RyaWdnZXJlZD0hMSwidW5kZWZpbmVkIiE9dHlwZW9mIE1lc3NhZ2VDaGFubmVsJiYodGhpcy5fY2hhbm5lbD1uZXcgTWVzc2FnZUNoYW5uZWwsdGhpcy5fY2hhbm5lbC5wb3J0Mi5vbm1lc3NhZ2U9ZnVuY3Rpb24oKXtlLl90cmlnZ2VyZWQ9ITEsZS5fY2FsbGJhY2soKX0pfTtIYy5wcm90b3R5cGUudHJpZ2dlcj1mdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5fdHJpZ2dlcmVkfHwodGhpcy5fdHJpZ2dlcmVkPSEwLHRoaXMuX2NoYW5uZWw/dGhpcy5fY2hhbm5lbC5wb3J0MS5wb3N0TWVzc2FnZSghMCk6c2V0VGltZW91dCgoZnVuY3Rpb24oKXt0Ll90cmlnZ2VyZWQ9ITEsdC5fY2FsbGJhY2soKX0pLDApKX0sSGMucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbigpe2RlbGV0ZSB0aGlzLl9jaGFubmVsLHRoaXMuX2NhbGxiYWNrPWZ1bmN0aW9uKCl7fX07dmFyIHFjPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLnRhcmdldD10LHRoaXMucGFyZW50PWUsdGhpcy5tYXBJZD1yLHRoaXMuY2FsbGJhY2tzPXt9LHRoaXMudGFza3M9e30sdGhpcy50YXNrUXVldWU9W10sdGhpcy5jYW5jZWxDYWxsYmFja3M9e30sbShbInJlY2VpdmUiLCJwcm9jZXNzIl0sdGhpcyksdGhpcy5pbnZva2VyPW5ldyBIYyh0aGlzLnByb2Nlc3MpLHRoaXMudGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHRoaXMucmVjZWl2ZSwhMSksdGhpcy5nbG9iYWxTY29wZT1rKCk/dDpzZWxmfTtmdW5jdGlvbiBHYyh0LGUscil7dmFyIG49MipNYXRoLlBJKjYzNzgxMzcvMjU2L01hdGgucG93KDIscik7cmV0dXJuW3Qqbi0yKk1hdGguUEkqNjM3ODEzNy8yLGUqbi0yKk1hdGguUEkqNjM3ODEzNy8yXX1xYy5wcm90b3R5cGUuc2VuZD1mdW5jdGlvbih0LGUscixuLGkpe3ZhciBhPXRoaXM7dm9pZCAwPT09aSYmKGk9ITEpO3ZhciBvPU1hdGgucm91bmQoMWUxOCpNYXRoLnJhbmRvbSgpKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDAsMTApO3ImJih0aGlzLmNhbGxiYWNrc1tvXT1yKTt2YXIgcz1TKHRoaXMuZ2xvYmFsU2NvcGUpP3ZvaWQgMDpbXTtyZXR1cm4gdGhpcy50YXJnZXQucG9zdE1lc3NhZ2Uoe2lkOm8sdHlwZTp0LGhhc0NhbGxiYWNrOiEhcix0YXJnZXRNYXBJZDpuLG11c3RRdWV1ZTppLHNvdXJjZU1hcElkOnRoaXMubWFwSWQsZGF0YTpIbihlLHMpfSxzKSx7Y2FuY2VsOmZ1bmN0aW9uKCl7ciYmZGVsZXRlIGEuY2FsbGJhY2tzW29dLGEudGFyZ2V0LnBvc3RNZXNzYWdlKHtpZDpvLHR5cGU6IjxjYW5jZWw+Iix0YXJnZXRNYXBJZDpuLHNvdXJjZU1hcElkOmEubWFwSWR9KX19fSxxYy5wcm90b3R5cGUucmVjZWl2ZT1mdW5jdGlvbih0KXt2YXIgZT10LmRhdGEscj1lLmlkO2lmKHImJighZS50YXJnZXRNYXBJZHx8dGhpcy5tYXBJZD09PWUudGFyZ2V0TWFwSWQpKWlmKCI8Y2FuY2VsPiI9PT1lLnR5cGUpe2RlbGV0ZSB0aGlzLnRhc2tzW3JdO3ZhciBuPXRoaXMuY2FuY2VsQ2FsbGJhY2tzW3JdO2RlbGV0ZSB0aGlzLmNhbmNlbENhbGxiYWNrc1tyXSxuJiZuKCl9ZWxzZSBrKCl8fGUubXVzdFF1ZXVlPyh0aGlzLnRhc2tzW3JdPWUsdGhpcy50YXNrUXVldWUucHVzaChyKSx0aGlzLmludm9rZXIudHJpZ2dlcigpKTp0aGlzLnByb2Nlc3NUYXNrKHIsZSl9LHFjLnByb3RvdHlwZS5wcm9jZXNzPWZ1bmN0aW9uKCl7aWYodGhpcy50YXNrUXVldWUubGVuZ3RoKXt2YXIgdD10aGlzLnRhc2tRdWV1ZS5zaGlmdCgpLGU9dGhpcy50YXNrc1t0XTtkZWxldGUgdGhpcy50YXNrc1t0XSx0aGlzLnRhc2tRdWV1ZS5sZW5ndGgmJnRoaXMuaW52b2tlci50cmlnZ2VyKCksZSYmdGhpcy5wcm9jZXNzVGFzayh0LGUpfX0scWMucHJvdG90eXBlLnByb2Nlc3NUYXNrPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcztpZigiPHJlc3BvbnNlPiI9PT1lLnR5cGUpe3ZhciBuPXRoaXMuY2FsbGJhY2tzW3RdO2RlbGV0ZSB0aGlzLmNhbGxiYWNrc1t0XSxuJiYoZS5lcnJvcj9uKHFuKGUuZXJyb3IpKTpuKG51bGwscW4oZS5kYXRhKSkpfWVsc2V7dmFyIGk9ITEsYT1TKHRoaXMuZ2xvYmFsU2NvcGUpP3ZvaWQgMDpbXSxvPWUuaGFzQ2FsbGJhY2s/ZnVuY3Rpb24oZSxuKXtpPSEwLGRlbGV0ZSByLmNhbmNlbENhbGxiYWNrc1t0XSxyLnRhcmdldC5wb3N0TWVzc2FnZSh7aWQ6dCx0eXBlOiI8cmVzcG9uc2U+Iixzb3VyY2VNYXBJZDpyLm1hcElkLGVycm9yOmU/SG4oZSk6bnVsbCxkYXRhOkhuKG4sYSl9LGEpfTpmdW5jdGlvbih0KXtpPSEwfSxzPW51bGwsbD1xbihlLmRhdGEpO2lmKHRoaXMucGFyZW50W2UudHlwZV0pcz10aGlzLnBhcmVudFtlLnR5cGVdKGUuc291cmNlTWFwSWQsbCxvKTtlbHNlIGlmKHRoaXMucGFyZW50LmdldFdvcmtlclNvdXJjZSl7dmFyIGM9ZS50eXBlLnNwbGl0KCIuIik7cz10aGlzLnBhcmVudC5nZXRXb3JrZXJTb3VyY2UoZS5zb3VyY2VNYXBJZCxjWzBdLGwuc291cmNlKVtjWzFdXShsLG8pfWVsc2UgbyhuZXcgRXJyb3IoIkNvdWxkIG5vdCBmaW5kIGZ1bmN0aW9uICIrZS50eXBlKSk7IWkmJnMmJnMuY2FuY2VsJiYodGhpcy5jYW5jZWxDYWxsYmFja3NbdF09cy5jYW5jZWwpfX0scWMucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbigpe3RoaXMuaW52b2tlci5yZW1vdmUoKSx0aGlzLnRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIix0aGlzLnJlY2VpdmUsITEpfTt2YXIgWWM9ZnVuY3Rpb24odCxlKXt0JiYoZT90aGlzLnNldFNvdXRoV2VzdCh0KS5zZXROb3J0aEVhc3QoZSk6ND09PXQubGVuZ3RoP3RoaXMuc2V0U291dGhXZXN0KFt0WzBdLHRbMV1dKS5zZXROb3J0aEVhc3QoW3RbMl0sdFszXV0pOnRoaXMuc2V0U291dGhXZXN0KHRbMF0pLnNldE5vcnRoRWFzdCh0WzFdKSl9O1ljLnByb3RvdHlwZS5zZXROb3J0aEVhc3Q9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX25lPXQgaW5zdGFuY2VvZiBXYz9uZXcgV2ModC5sbmcsdC5sYXQpOldjLmNvbnZlcnQodCksdGhpc30sWWMucHJvdG90eXBlLnNldFNvdXRoV2VzdD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fc3c9dCBpbnN0YW5jZW9mIFdjP25ldyBXYyh0LmxuZyx0LmxhdCk6V2MuY29udmVydCh0KSx0aGlzfSxZYy5wcm90b3R5cGUuZXh0ZW5kPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbj10aGlzLl9zdyxpPXRoaXMuX25lO2lmKHQgaW5zdGFuY2VvZiBXYyllPXQscj10O2Vsc2V7aWYoISh0IGluc3RhbmNlb2YgWWMpKXtpZihBcnJheS5pc0FycmF5KHQpKXtpZig0PT09dC5sZW5ndGh8fHQuZXZlcnkoQXJyYXkuaXNBcnJheSkpe3ZhciBhPXQ7cmV0dXJuIHRoaXMuZXh0ZW5kKFljLmNvbnZlcnQoYSkpfXZhciBvPXQ7cmV0dXJuIHRoaXMuZXh0ZW5kKFdjLmNvbnZlcnQobykpfXJldHVybiB0aGlzfWlmKGU9dC5fc3cscj10Ll9uZSwhZXx8IXIpcmV0dXJuIHRoaXN9cmV0dXJuIG58fGk/KG4ubG5nPU1hdGgubWluKGUubG5nLG4ubG5nKSxuLmxhdD1NYXRoLm1pbihlLmxhdCxuLmxhdCksaS5sbmc9TWF0aC5tYXgoci5sbmcsaS5sbmcpLGkubGF0PU1hdGgubWF4KHIubGF0LGkubGF0KSk6KHRoaXMuX3N3PW5ldyBXYyhlLmxuZyxlLmxhdCksdGhpcy5fbmU9bmV3IFdjKHIubG5nLHIubGF0KSksdGhpc30sWWMucHJvdG90eXBlLmdldENlbnRlcj1mdW5jdGlvbigpe3JldHVybiBuZXcgV2MoKHRoaXMuX3N3LmxuZyt0aGlzLl9uZS5sbmcpLzIsKHRoaXMuX3N3LmxhdCt0aGlzLl9uZS5sYXQpLzIpfSxZYy5wcm90b3R5cGUuZ2V0U291dGhXZXN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N3fSxZYy5wcm90b3R5cGUuZ2V0Tm9ydGhFYXN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX25lfSxZYy5wcm90b3R5cGUuZ2V0Tm9ydGhXZXN0PWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBXYyh0aGlzLmdldFdlc3QoKSx0aGlzLmdldE5vcnRoKCkpfSxZYy5wcm90b3R5cGUuZ2V0U291dGhFYXN0PWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBXYyh0aGlzLmdldEVhc3QoKSx0aGlzLmdldFNvdXRoKCkpfSxZYy5wcm90b3R5cGUuZ2V0V2VzdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdy5sbmd9LFljLnByb3RvdHlwZS5nZXRTb3V0aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdy5sYXR9LFljLnByb3RvdHlwZS5nZXRFYXN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX25lLmxuZ30sWWMucHJvdG90eXBlLmdldE5vcnRoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX25lLmxhdH0sWWMucHJvdG90eXBlLnRvQXJyYXk9ZnVuY3Rpb24oKXtyZXR1cm5bdGhpcy5fc3cudG9BcnJheSgpLHRoaXMuX25lLnRvQXJyYXkoKV19LFljLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJMbmdMYXRCb3VuZHMoIit0aGlzLl9zdy50b1N0cmluZygpKyIsICIrdGhpcy5fbmUudG9TdHJpbmcoKSsiKSJ9LFljLnByb3RvdHlwZS5pc0VtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuISh0aGlzLl9zdyYmdGhpcy5fbmUpfSxZYy5wcm90b3R5cGUuY29udGFpbnM9ZnVuY3Rpb24odCl7dmFyIGU9V2MuY29udmVydCh0KSxyPWUubG5nLG49ZS5sYXQsaT10aGlzLl9zdy5sYXQ8PW4mJm48PXRoaXMuX25lLmxhdCxhPXRoaXMuX3N3LmxuZzw9ciYmcjw9dGhpcy5fbmUubG5nO3JldHVybiB0aGlzLl9zdy5sbmc+dGhpcy5fbmUubG5nJiYoYT10aGlzLl9zdy5sbmc+PXImJnI+PXRoaXMuX25lLmxuZyksaSYmYX0sWWMuY29udmVydD1mdW5jdGlvbih0KXtyZXR1cm4hdHx8dCBpbnN0YW5jZW9mIFljP3Q6bmV3IFljKHQpfTt2YXIgV2M9ZnVuY3Rpb24odCxlKXtpZihpc05hTih0KXx8aXNOYU4oZSkpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIExuZ0xhdCBvYmplY3Q6ICgiK3QrIiwgIitlKyIpIik7aWYodGhpcy5sbmc9K3QsdGhpcy5sYXQ9K2UsdGhpcy5sYXQ+OTB8fHRoaXMubGF0PC05MCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgTG5nTGF0IGxhdGl0dWRlIHZhbHVlOiBtdXN0IGJlIGJldHdlZW4gLTkwIGFuZCA5MCIpfTtXYy5wcm90b3R5cGUud3JhcD1mdW5jdGlvbigpe3JldHVybiBuZXcgV2MoYyh0aGlzLmxuZywtMTgwLDE4MCksdGhpcy5sYXQpfSxXYy5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbigpe3JldHVyblt0aGlzLmxuZyx0aGlzLmxhdF19LFdjLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJMbmdMYXQoIit0aGlzLmxuZysiLCAiK3RoaXMubGF0KyIpIn0sV2MucHJvdG90eXBlLmRpc3RhbmNlVG89ZnVuY3Rpb24odCl7dmFyIGU9TWF0aC5QSS8xODAscj10aGlzLmxhdCplLG49dC5sYXQqZSxpPU1hdGguc2luKHIpKk1hdGguc2luKG4pK01hdGguY29zKHIpKk1hdGguY29zKG4pKk1hdGguY29zKCh0LmxuZy10aGlzLmxuZykqZSk7cmV0dXJuIDYzNzEwMDguOCpNYXRoLmFjb3MoTWF0aC5taW4oaSwxKSl9LFdjLnByb3RvdHlwZS50b0JvdW5kcz1mdW5jdGlvbih0KXt2b2lkIDA9PT10JiYodD0wKTt2YXIgZT0zNjAqdC80MDA3NTAxNyxyPWUvTWF0aC5jb3MoTWF0aC5QSS8xODAqdGhpcy5sYXQpO3JldHVybiBuZXcgWWMobmV3IFdjKHRoaXMubG5nLXIsdGhpcy5sYXQtZSksbmV3IFdjKHRoaXMubG5nK3IsdGhpcy5sYXQrZSkpfSxXYy5jb252ZXJ0PWZ1bmN0aW9uKHQpe2lmKHQgaW5zdGFuY2VvZiBXYylyZXR1cm4gdDtpZihBcnJheS5pc0FycmF5KHQpJiYoMj09PXQubGVuZ3RofHwzPT09dC5sZW5ndGgpKXJldHVybiBuZXcgV2MoTnVtYmVyKHRbMF0pLE51bWJlcih0WzFdKSk7aWYoIUFycmF5LmlzQXJyYXkodCkmJiJvYmplY3QiPT10eXBlb2YgdCYmbnVsbCE9PXQpcmV0dXJuIG5ldyBXYyhOdW1iZXIoImxuZyJpbiB0P3QubG5nOnQubG9uKSxOdW1iZXIodC5sYXQpKTt0aHJvdyBuZXcgRXJyb3IoImBMbmdMYXRMaWtlYCBhcmd1bWVudCBtdXN0IGJlIHNwZWNpZmllZCBhcyBhIExuZ0xhdCBpbnN0YW5jZSwgYW4gb2JqZWN0IHtsbmc6IDxsbmc+LCBsYXQ6IDxsYXQ+fSwgYW4gb2JqZWN0IHtsb246IDxsbmc+LCBsYXQ6IDxsYXQ+fSwgb3IgYW4gYXJyYXkgb2YgWzxsbmc+LCA8bGF0Pl0iKX07dmFyIFhjPTIqTWF0aC5QSSo2MzcxMDA4Ljg7ZnVuY3Rpb24gWmModCl7cmV0dXJuIFhjKk1hdGguY29zKHQqTWF0aC5QSS8xODApfWZ1bmN0aW9uIEpjKHQpe3JldHVybigxODArdCkvMzYwfWZ1bmN0aW9uIEtjKHQpe3JldHVybigxODAtMTgwL01hdGguUEkqTWF0aC5sb2coTWF0aC50YW4oTWF0aC5QSS80K3QqTWF0aC5QSS8zNjApKSkvMzYwfWZ1bmN0aW9uIFFjKHQsZSl7cmV0dXJuIHQvWmMoZSl9ZnVuY3Rpb24gJGModCl7dmFyIGU9MTgwLTM2MCp0O3JldHVybiAzNjAvTWF0aC5QSSpNYXRoLmF0YW4oTWF0aC5leHAoZSpNYXRoLlBJLzE4MCkpLTkwfXZhciB0dT1mdW5jdGlvbih0LGUscil7dm9pZCAwPT09ciYmKHI9MCksdGhpcy54PSt0LHRoaXMueT0rZSx0aGlzLno9K3J9O3R1LmZyb21MbmdMYXQ9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT0wKTt2YXIgcj1XYy5jb252ZXJ0KHQpO3JldHVybiBuZXcgdHUoSmMoci5sbmcpLEtjKHIubGF0KSxRYyhlLHIubGF0KSl9LHR1LnByb3RvdHlwZS50b0xuZ0xhdD1mdW5jdGlvbigpe3JldHVybiBuZXcgV2MoMzYwKnRoaXMueC0xODAsJGModGhpcy55KSl9LHR1LnByb3RvdHlwZS50b0FsdGl0dWRlPWZ1bmN0aW9uKCl7cmV0dXJuIHQ9dGhpcy56LGU9dGhpcy55LHQqWmMoJGMoZSkpO3ZhciB0LGV9LHR1LnByb3RvdHlwZS5tZXRlckluTWVyY2F0b3JDb29yZGluYXRlVW5pdHM9ZnVuY3Rpb24oKXtyZXR1cm4gMS9YYyoodD0kYyh0aGlzLnkpLDEvTWF0aC5jb3ModCpNYXRoLlBJLzE4MCkpO3ZhciB0fTt2YXIgZXU9ZnVuY3Rpb24odCxlLHIpe3RoaXMuej10LHRoaXMueD1lLHRoaXMueT1yLHRoaXMua2V5PWl1KDAsdCx0LGUscil9O2V1LnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuej09PXQueiYmdGhpcy54PT09dC54JiZ0aGlzLnk9PT10Lnl9LGV1LnByb3RvdHlwZS51cmw9ZnVuY3Rpb24odCxlKXt2YXIgcixuLGksYSxvLHM9KHI9dGhpcy54LG49dGhpcy55LGk9dGhpcy56LGE9R2MoMjU2KnIsMjU2KihuPU1hdGgucG93KDIsaSktbi0xKSxpKSxvPUdjKDI1NioocisxKSwyNTYqKG4rMSksaSksYVswXSsiLCIrYVsxXSsiLCIrb1swXSsiLCIrb1sxXSksbD1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuLGk9IiIsYT10O2E+MDthLS0paSs9KGUmKG49MTw8YS0xKT8xOjApKyhyJm4/MjowKTtyZXR1cm4gaX0odGhpcy56LHRoaXMueCx0aGlzLnkpO3JldHVybiB0Wyh0aGlzLngrdGhpcy55KSV0Lmxlbmd0aF0ucmVwbGFjZSgie3ByZWZpeH0iLCh0aGlzLnglMTYpLnRvU3RyaW5nKDE2KSsodGhpcy55JTE2KS50b1N0cmluZygxNikpLnJlcGxhY2UoInt6fSIsU3RyaW5nKHRoaXMueikpLnJlcGxhY2UoInt4fSIsU3RyaW5nKHRoaXMueCkpLnJlcGxhY2UoInt5fSIsU3RyaW5nKCJ0bXMiPT09ZT9NYXRoLnBvdygyLHRoaXMueiktdGhpcy55LTE6dGhpcy55KSkucmVwbGFjZSgie3F1YWRrZXl9IixsKS5yZXBsYWNlKCJ7YmJveC1lcHNnLTM4NTd9IixzKX0sZXUucHJvdG90eXBlLmdldFRpbGVQb2ludD1mdW5jdGlvbih0KXt2YXIgZT1NYXRoLnBvdygyLHRoaXMueik7cmV0dXJuIG5ldyBpKDgxOTIqKHQueCplLXRoaXMueCksODE5MioodC55KmUtdGhpcy55KSl9LGV1LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnorIi8iK3RoaXMueCsiLyIrdGhpcy55fTt2YXIgcnU9ZnVuY3Rpb24odCxlKXt0aGlzLndyYXA9dCx0aGlzLmNhbm9uaWNhbD1lLHRoaXMua2V5PWl1KHQsZS56LGUueixlLngsZS55KX0sbnU9ZnVuY3Rpb24odCxlLHIsbixpKXt0aGlzLm92ZXJzY2FsZWRaPXQsdGhpcy53cmFwPWUsdGhpcy5jYW5vbmljYWw9bmV3IGV1KHIsK24sK2kpLHRoaXMua2V5PWl1KGUsdCxyLG4saSl9O2Z1bmN0aW9uIGl1KHQsZSxyLG4saSl7KHQqPTIpPDAmJih0PS0xKnQtMSk7dmFyIGE9MTw8cjtyZXR1cm4oYSphKnQrYSppK24pLnRvU3RyaW5nKDM2KStyLnRvU3RyaW5nKDM2KStlLnRvU3RyaW5nKDM2KX1udS5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm92ZXJzY2FsZWRaPT09dC5vdmVyc2NhbGVkWiYmdGhpcy53cmFwPT09dC53cmFwJiZ0aGlzLmNhbm9uaWNhbC5lcXVhbHModC5jYW5vbmljYWwpfSxudS5wcm90b3R5cGUuc2NhbGVkVG89ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jYW5vbmljYWwuei10O3JldHVybiB0PnRoaXMuY2Fub25pY2FsLno/bmV3IG51KHQsdGhpcy53cmFwLHRoaXMuY2Fub25pY2FsLnosdGhpcy5jYW5vbmljYWwueCx0aGlzLmNhbm9uaWNhbC55KTpuZXcgbnUodCx0aGlzLndyYXAsdCx0aGlzLmNhbm9uaWNhbC54Pj5lLHRoaXMuY2Fub25pY2FsLnk+PmUpfSxudS5wcm90b3R5cGUuY2FsY3VsYXRlU2NhbGVkS2V5PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5jYW5vbmljYWwuei10O3JldHVybiB0PnRoaXMuY2Fub25pY2FsLno/aXUodGhpcy53cmFwKitlLHQsdGhpcy5jYW5vbmljYWwueix0aGlzLmNhbm9uaWNhbC54LHRoaXMuY2Fub25pY2FsLnkpOml1KHRoaXMud3JhcCorZSx0LHQsdGhpcy5jYW5vbmljYWwueD4+cix0aGlzLmNhbm9uaWNhbC55Pj5yKX0sbnUucHJvdG90eXBlLmlzQ2hpbGRPZj1mdW5jdGlvbih0KXtpZih0LndyYXAhPT10aGlzLndyYXApcmV0dXJuITE7dmFyIGU9dGhpcy5jYW5vbmljYWwuei10LmNhbm9uaWNhbC56O3JldHVybiAwPT09dC5vdmVyc2NhbGVkWnx8dC5vdmVyc2NhbGVkWjx0aGlzLm92ZXJzY2FsZWRaJiZ0LmNhbm9uaWNhbC54PT09dGhpcy5jYW5vbmljYWwueD4+ZSYmdC5jYW5vbmljYWwueT09PXRoaXMuY2Fub25pY2FsLnk+PmV9LG51LnByb3RvdHlwZS5jaGlsZHJlbj1mdW5jdGlvbih0KXtpZih0aGlzLm92ZXJzY2FsZWRaPj10KXJldHVybltuZXcgbnUodGhpcy5vdmVyc2NhbGVkWisxLHRoaXMud3JhcCx0aGlzLmNhbm9uaWNhbC56LHRoaXMuY2Fub25pY2FsLngsdGhpcy5jYW5vbmljYWwueSldO3ZhciBlPXRoaXMuY2Fub25pY2FsLnorMSxyPTIqdGhpcy5jYW5vbmljYWwueCxuPTIqdGhpcy5jYW5vbmljYWwueTtyZXR1cm5bbmV3IG51KGUsdGhpcy53cmFwLGUscixuKSxuZXcgbnUoZSx0aGlzLndyYXAsZSxyKzEsbiksbmV3IG51KGUsdGhpcy53cmFwLGUscixuKzEpLG5ldyBudShlLHRoaXMud3JhcCxlLHIrMSxuKzEpXX0sbnUucHJvdG90eXBlLmlzTGVzc1RoYW49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMud3JhcDx0LndyYXB8fCEodGhpcy53cmFwPnQud3JhcCkmJih0aGlzLm92ZXJzY2FsZWRaPHQub3ZlcnNjYWxlZFp8fCEodGhpcy5vdmVyc2NhbGVkWj50Lm92ZXJzY2FsZWRaKSYmKHRoaXMuY2Fub25pY2FsLng8dC5jYW5vbmljYWwueHx8ISh0aGlzLmNhbm9uaWNhbC54PnQuY2Fub25pY2FsLngpJiZ0aGlzLmNhbm9uaWNhbC55PHQuY2Fub25pY2FsLnkpKX0sbnUucHJvdG90eXBlLndyYXBwZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG51KHRoaXMub3ZlcnNjYWxlZFosMCx0aGlzLmNhbm9uaWNhbC56LHRoaXMuY2Fub25pY2FsLngsdGhpcy5jYW5vbmljYWwueSl9LG51LnByb3RvdHlwZS51bndyYXBUbz1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IG51KHRoaXMub3ZlcnNjYWxlZFosdCx0aGlzLmNhbm9uaWNhbC56LHRoaXMuY2Fub25pY2FsLngsdGhpcy5jYW5vbmljYWwueSl9LG51LnByb3RvdHlwZS5vdmVyc2NhbGVGYWN0b3I9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5wb3coMix0aGlzLm92ZXJzY2FsZWRaLXRoaXMuY2Fub25pY2FsLnopfSxudS5wcm90b3R5cGUudG9VbndyYXBwZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHJ1KHRoaXMud3JhcCx0aGlzLmNhbm9uaWNhbCl9LG51LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm92ZXJzY2FsZWRaKyIvIit0aGlzLmNhbm9uaWNhbC54KyIvIit0aGlzLmNhbm9uaWNhbC55fSxudS5wcm90b3R5cGUuZ2V0VGlsZVBvaW50PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNhbm9uaWNhbC5nZXRUaWxlUG9pbnQobmV3IHR1KHQueC10aGlzLndyYXAsdC55KSl9LE5uKCJDYW5vbmljYWxUaWxlSUQiLGV1KSxObigiT3ZlcnNjYWxlZFRpbGVJRCIsbnUse29taXQ6WyJwb3NNYXRyaXgiXX0pO3ZhciBhdT1mdW5jdGlvbih0LGUscil7aWYodGhpcy51aWQ9dCxlLmhlaWdodCE9PWUud2lkdGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkRFTSB0aWxlcyBtdXN0IGJlIHNxdWFyZSIpO2lmKHImJiJtYXBib3giIT09ciYmInRlcnJhcml1bSIhPT1yKXJldHVybiBfKCciJytyKyciIGlzIG5vdCBhIHZhbGlkIGVuY29kaW5nIHR5cGUuIFZhbGlkIHR5cGVzIGluY2x1ZGUgIm1hcGJveCIgYW5kICJ0ZXJyYXJpdW0iLicpO3RoaXMuc3RyaWRlPWUuaGVpZ2h0O3ZhciBuPXRoaXMuZGltPWUuaGVpZ2h0LTI7dGhpcy5kYXRhPW5ldyBVaW50MzJBcnJheShlLmRhdGEuYnVmZmVyKSx0aGlzLmVuY29kaW5nPXJ8fCJtYXBib3giO2Zvcih2YXIgaT0wO2k8bjtpKyspdGhpcy5kYXRhW3RoaXMuX2lkeCgtMSxpKV09dGhpcy5kYXRhW3RoaXMuX2lkeCgwLGkpXSx0aGlzLmRhdGFbdGhpcy5faWR4KG4saSldPXRoaXMuZGF0YVt0aGlzLl9pZHgobi0xLGkpXSx0aGlzLmRhdGFbdGhpcy5faWR4KGksLTEpXT10aGlzLmRhdGFbdGhpcy5faWR4KGksMCldLHRoaXMuZGF0YVt0aGlzLl9pZHgoaSxuKV09dGhpcy5kYXRhW3RoaXMuX2lkeChpLG4tMSldO3RoaXMuZGF0YVt0aGlzLl9pZHgoLTEsLTEpXT10aGlzLmRhdGFbdGhpcy5faWR4KDAsMCldLHRoaXMuZGF0YVt0aGlzLl9pZHgobiwtMSldPXRoaXMuZGF0YVt0aGlzLl9pZHgobi0xLDApXSx0aGlzLmRhdGFbdGhpcy5faWR4KC0xLG4pXT10aGlzLmRhdGFbdGhpcy5faWR4KDAsbi0xKV0sdGhpcy5kYXRhW3RoaXMuX2lkeChuLG4pXT10aGlzLmRhdGFbdGhpcy5faWR4KG4tMSxuLTEpXX07YXUucHJvdG90eXBlLmdldD1mdW5jdGlvbih0LGUpe3ZhciByPW5ldyBVaW50OEFycmF5KHRoaXMuZGF0YS5idWZmZXIpLG49NCp0aGlzLl9pZHgodCxlKTtyZXR1cm4oInRlcnJhcml1bSI9PT10aGlzLmVuY29kaW5nP3RoaXMuX3VucGFja1RlcnJhcml1bTp0aGlzLl91bnBhY2tNYXBib3gpKHJbbl0scltuKzFdLHJbbisyXSl9LGF1LnByb3RvdHlwZS5nZXRVbnBhY2tWZWN0b3I9ZnVuY3Rpb24oKXtyZXR1cm4idGVycmFyaXVtIj09PXRoaXMuZW5jb2Rpbmc/WzI1NiwxLDEvMjU2LDMyNzY4XTpbNjU1My42LDI1LjYsLjEsMWU0XX0sYXUucHJvdG90eXBlLl9pZHg9ZnVuY3Rpb24odCxlKXtpZih0PC0xfHx0Pj10aGlzLmRpbSsxfHxlPC0xfHxlPj10aGlzLmRpbSsxKXRocm93IG5ldyBSYW5nZUVycm9yKCJvdXQgb2YgcmFuZ2Ugc291cmNlIGNvb3JkaW5hdGVzIGZvciBERU0gZGF0YSIpO3JldHVybihlKzEpKnRoaXMuc3RyaWRlKyh0KzEpfSxhdS5wcm90b3R5cGUuX3VucGFja01hcGJveD1mdW5jdGlvbih0LGUscil7cmV0dXJuKDI1Nip0KjI1NisyNTYqZStyKS8xMC0xZTR9LGF1LnByb3RvdHlwZS5fdW5wYWNrVGVycmFyaXVtPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gMjU2KnQrZStyLzI1Ni0zMjc2OH0sYXUucHJvdG90eXBlLmdldFBpeGVscz1mdW5jdGlvbigpe3JldHVybiBuZXcgRW8oe3dpZHRoOnRoaXMuc3RyaWRlLGhlaWdodDp0aGlzLnN0cmlkZX0sbmV3IFVpbnQ4QXJyYXkodGhpcy5kYXRhLmJ1ZmZlcikpfSxhdS5wcm90b3R5cGUuYmFja2ZpbGxCb3JkZXI9ZnVuY3Rpb24odCxlLHIpe2lmKHRoaXMuZGltIT09dC5kaW0pdGhyb3cgbmV3IEVycm9yKCJkZW0gZGltZW5zaW9uIG1pc21hdGNoIik7dmFyIG49ZSp0aGlzLmRpbSxpPWUqdGhpcy5kaW0rdGhpcy5kaW0sYT1yKnRoaXMuZGltLG89cip0aGlzLmRpbSt0aGlzLmRpbTtzd2l0Y2goZSl7Y2FzZS0xOm49aS0xO2JyZWFrO2Nhc2UgMTppPW4rMX1zd2l0Y2gocil7Y2FzZS0xOmE9by0xO2JyZWFrO2Nhc2UgMTpvPWErMX1mb3IodmFyIHM9LWUqdGhpcy5kaW0sbD0tcip0aGlzLmRpbSxjPWE7YzxvO2MrKylmb3IodmFyIHU9bjt1PGk7dSsrKXRoaXMuZGF0YVt0aGlzLl9pZHgodSxjKV09dC5kYXRhW3RoaXMuX2lkeCh1K3MsYytsKV19LE5uKCJERU1EYXRhIixhdSk7dmFyIG91PWZ1bmN0aW9uKHQpe3RoaXMuX3N0cmluZ1RvTnVtYmVyPXt9LHRoaXMuX251bWJlclRvU3RyaW5nPVtdO2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXt2YXIgcj10W2VdO3RoaXMuX3N0cmluZ1RvTnVtYmVyW3JdPWUsdGhpcy5fbnVtYmVyVG9TdHJpbmdbZV09cn19O291LnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3N0cmluZ1RvTnVtYmVyW3RdfSxvdS5wcm90b3R5cGUuZGVjb2RlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9udW1iZXJUb1N0cmluZ1t0XX07dmFyIHN1PWZ1bmN0aW9uKHQsZSxyLG4saSl7dGhpcy50eXBlPSJGZWF0dXJlIix0aGlzLl92ZWN0b3JUaWxlRmVhdHVyZT10LHQuX3o9ZSx0Ll94PXIsdC5feT1uLHRoaXMucHJvcGVydGllcz10LnByb3BlcnRpZXMsdGhpcy5pZD1pfSxsdT17Z2VvbWV0cnk6e2NvbmZpZ3VyYWJsZTohMH19O2x1Lmdlb21ldHJ5LmdldD1mdW5jdGlvbigpe3JldHVybiB2b2lkIDA9PT10aGlzLl9nZW9tZXRyeSYmKHRoaXMuX2dlb21ldHJ5PXRoaXMuX3ZlY3RvclRpbGVGZWF0dXJlLnRvR2VvSlNPTih0aGlzLl92ZWN0b3JUaWxlRmVhdHVyZS5feCx0aGlzLl92ZWN0b3JUaWxlRmVhdHVyZS5feSx0aGlzLl92ZWN0b3JUaWxlRmVhdHVyZS5feikuZ2VvbWV0cnkpLHRoaXMuX2dlb21ldHJ5fSxsdS5nZW9tZXRyeS5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fZ2VvbWV0cnk9dH0sc3UucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3ZhciB0PXtnZW9tZXRyeTp0aGlzLmdlb21ldHJ5fTtmb3IodmFyIGUgaW4gdGhpcykiX2dlb21ldHJ5IiE9PWUmJiJfdmVjdG9yVGlsZUZlYXR1cmUiIT09ZSYmKHRbZV09dGhpc1tlXSk7cmV0dXJuIHR9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHN1LnByb3RvdHlwZSxsdSk7dmFyIGN1PWZ1bmN0aW9uKCl7dGhpcy5zdGF0ZT17fSx0aGlzLnN0YXRlQ2hhbmdlcz17fSx0aGlzLmRlbGV0ZWRTdGF0ZXM9e319O2N1LnByb3RvdHlwZS51cGRhdGVTdGF0ZT1mdW5jdGlvbih0LGUscil7dmFyIG49U3RyaW5nKGUpO2lmKHRoaXMuc3RhdGVDaGFuZ2VzW3RdPXRoaXMuc3RhdGVDaGFuZ2VzW3RdfHx7fSx0aGlzLnN0YXRlQ2hhbmdlc1t0XVtuXT10aGlzLnN0YXRlQ2hhbmdlc1t0XVtuXXx8e30sdSh0aGlzLnN0YXRlQ2hhbmdlc1t0XVtuXSxyKSxudWxsPT09dGhpcy5kZWxldGVkU3RhdGVzW3RdKWZvcih2YXIgaSBpbiB0aGlzLmRlbGV0ZWRTdGF0ZXNbdF09e30sdGhpcy5zdGF0ZVt0XSlpIT09biYmKHRoaXMuZGVsZXRlZFN0YXRlc1t0XVtpXT1udWxsKTtlbHNlIGlmKHRoaXMuZGVsZXRlZFN0YXRlc1t0XSYmbnVsbD09PXRoaXMuZGVsZXRlZFN0YXRlc1t0XVtuXSlmb3IodmFyIGEgaW4gdGhpcy5kZWxldGVkU3RhdGVzW3RdW25dPXt9LHRoaXMuc3RhdGVbdF1bbl0pclthXXx8KHRoaXMuZGVsZXRlZFN0YXRlc1t0XVtuXVthXT1udWxsKTtlbHNlIGZvcih2YXIgbyBpbiByKXt0aGlzLmRlbGV0ZWRTdGF0ZXNbdF0mJnRoaXMuZGVsZXRlZFN0YXRlc1t0XVtuXSYmbnVsbD09PXRoaXMuZGVsZXRlZFN0YXRlc1t0XVtuXVtvXSYmZGVsZXRlIHRoaXMuZGVsZXRlZFN0YXRlc1t0XVtuXVtvXX19LGN1LnByb3RvdHlwZS5yZW1vdmVGZWF0dXJlU3RhdGU9ZnVuY3Rpb24odCxlLHIpe2lmKCEobnVsbD09PXRoaXMuZGVsZXRlZFN0YXRlc1t0XSkpe3ZhciBuPVN0cmluZyhlKTtpZih0aGlzLmRlbGV0ZWRTdGF0ZXNbdF09dGhpcy5kZWxldGVkU3RhdGVzW3RdfHx7fSxyJiZ2b2lkIDAhPT1lKW51bGwhPT10aGlzLmRlbGV0ZWRTdGF0ZXNbdF1bbl0mJih0aGlzLmRlbGV0ZWRTdGF0ZXNbdF1bbl09dGhpcy5kZWxldGVkU3RhdGVzW3RdW25dfHx7fSx0aGlzLmRlbGV0ZWRTdGF0ZXNbdF1bbl1bcl09bnVsbCk7ZWxzZSBpZih2b2lkIDAhPT1lKXtpZih0aGlzLnN0YXRlQ2hhbmdlc1t0XSYmdGhpcy5zdGF0ZUNoYW5nZXNbdF1bbl0pZm9yKHIgaW4gdGhpcy5kZWxldGVkU3RhdGVzW3RdW25dPXt9LHRoaXMuc3RhdGVDaGFuZ2VzW3RdW25dKXRoaXMuZGVsZXRlZFN0YXRlc1t0XVtuXVtyXT1udWxsO2Vsc2UgdGhpcy5kZWxldGVkU3RhdGVzW3RdW25dPW51bGx9ZWxzZSB0aGlzLmRlbGV0ZWRTdGF0ZXNbdF09bnVsbH19LGN1LnByb3RvdHlwZS5nZXRTdGF0ZT1mdW5jdGlvbih0LGUpe3ZhciByPVN0cmluZyhlKSxuPXRoaXMuc3RhdGVbdF18fHt9LGk9dGhpcy5zdGF0ZUNoYW5nZXNbdF18fHt9LGE9dSh7fSxuW3JdLGlbcl0pO2lmKG51bGw9PT10aGlzLmRlbGV0ZWRTdGF0ZXNbdF0pcmV0dXJue307aWYodGhpcy5kZWxldGVkU3RhdGVzW3RdKXt2YXIgbz10aGlzLmRlbGV0ZWRTdGF0ZXNbdF1bZV07aWYobnVsbD09PW8pcmV0dXJue307Zm9yKHZhciBzIGluIG8pZGVsZXRlIGFbc119cmV0dXJuIGF9LGN1LnByb3RvdHlwZS5pbml0aWFsaXplVGlsZVN0YXRlPWZ1bmN0aW9uKHQsZSl7dC5zZXRGZWF0dXJlU3RhdGUodGhpcy5zdGF0ZSxlKX0sY3UucHJvdG90eXBlLmNvYWxlc2NlQ2hhbmdlcz1mdW5jdGlvbih0LGUpe3ZhciByPXt9O2Zvcih2YXIgbiBpbiB0aGlzLnN0YXRlQ2hhbmdlcyl7dGhpcy5zdGF0ZVtuXT10aGlzLnN0YXRlW25dfHx7fTt2YXIgaT17fTtmb3IodmFyIGEgaW4gdGhpcy5zdGF0ZUNoYW5nZXNbbl0pdGhpcy5zdGF0ZVtuXVthXXx8KHRoaXMuc3RhdGVbbl1bYV09e30pLHUodGhpcy5zdGF0ZVtuXVthXSx0aGlzLnN0YXRlQ2hhbmdlc1tuXVthXSksaVthXT10aGlzLnN0YXRlW25dW2FdO3Jbbl09aX1mb3IodmFyIG8gaW4gdGhpcy5kZWxldGVkU3RhdGVzKXt0aGlzLnN0YXRlW29dPXRoaXMuc3RhdGVbb118fHt9O3ZhciBzPXt9O2lmKG51bGw9PT10aGlzLmRlbGV0ZWRTdGF0ZXNbb10pZm9yKHZhciBsIGluIHRoaXMuc3RhdGVbb10pc1tsXT17fSx0aGlzLnN0YXRlW29dW2xdPXt9O2Vsc2UgZm9yKHZhciBjIGluIHRoaXMuZGVsZXRlZFN0YXRlc1tvXSl7aWYobnVsbD09PXRoaXMuZGVsZXRlZFN0YXRlc1tvXVtjXSl0aGlzLnN0YXRlW29dW2NdPXt9O2Vsc2UgZm9yKHZhciBmPTAsaD1PYmplY3Qua2V5cyh0aGlzLmRlbGV0ZWRTdGF0ZXNbb11bY10pO2Y8aC5sZW5ndGg7Zis9MSl7dmFyIHA9aFtmXTtkZWxldGUgdGhpcy5zdGF0ZVtvXVtjXVtwXX1zW2NdPXRoaXMuc3RhdGVbb11bY119cltvXT1yW29dfHx7fSx1KHJbb10scyl9aWYodGhpcy5zdGF0ZUNoYW5nZXM9e30sdGhpcy5kZWxldGVkU3RhdGVzPXt9LDAhPT1PYmplY3Qua2V5cyhyKS5sZW5ndGgpZm9yKHZhciBkIGluIHQpe3RbZF0uc2V0RmVhdHVyZVN0YXRlKHIsZSl9fTt2YXIgdXU9ZnVuY3Rpb24odCxlKXt0aGlzLnRpbGVJRD10LHRoaXMueD10LmNhbm9uaWNhbC54LHRoaXMueT10LmNhbm9uaWNhbC55LHRoaXMuej10LmNhbm9uaWNhbC56LHRoaXMuZ3JpZD1uZXcgem4oODE5MiwxNiwwKSx0aGlzLmdyaWQzRD1uZXcgem4oODE5MiwxNiwwKSx0aGlzLmZlYXR1cmVJbmRleEFycmF5PW5ldyBmYSx0aGlzLnByb21vdGVJZD1lfTtmdW5jdGlvbiBmdSh0LGUscixuLGkpe3JldHVybiB2KHQsKGZ1bmN0aW9uKHQsYSl7dmFyIG89ZSBpbnN0YW5jZW9mIF9pP2UuZ2V0KGEpOm51bGw7cmV0dXJuIG8mJm8uZXZhbHVhdGU/by5ldmFsdWF0ZShyLG4saSk6b30pKX1mdW5jdGlvbiBodSh0KXtmb3IodmFyIGU9MS8wLHI9MS8wLG49LTEvMCxpPS0xLzAsYT0wLG89dDthPG8ubGVuZ3RoO2ErPTEpe3ZhciBzPW9bYV07ZT1NYXRoLm1pbihlLHMueCkscj1NYXRoLm1pbihyLHMueSksbj1NYXRoLm1heChuLHMueCksaT1NYXRoLm1heChpLHMueSl9cmV0dXJue21pblg6ZSxtaW5ZOnIsbWF4WDpuLG1heFk6aX19ZnVuY3Rpb24gcHUodCxlKXtyZXR1cm4gZS10fXV1LnByb3RvdHlwZS5pbnNlcnQ9ZnVuY3Rpb24odCxlLHIsbixpLGEpe3ZhciBvPXRoaXMuZmVhdHVyZUluZGV4QXJyYXkubGVuZ3RoO3RoaXMuZmVhdHVyZUluZGV4QXJyYXkuZW1wbGFjZUJhY2socixuLGkpO2Zvcih2YXIgcz1hP3RoaXMuZ3JpZDNEOnRoaXMuZ3JpZCxsPTA7bDxlLmxlbmd0aDtsKyspe2Zvcih2YXIgYz1lW2xdLHU9WzEvMCwxLzAsLTEvMCwtMS8wXSxmPTA7ZjxjLmxlbmd0aDtmKyspe3ZhciBoPWNbZl07dVswXT1NYXRoLm1pbih1WzBdLGgueCksdVsxXT1NYXRoLm1pbih1WzFdLGgueSksdVsyXT1NYXRoLm1heCh1WzJdLGgueCksdVszXT1NYXRoLm1heCh1WzNdLGgueSl9dVswXTw4MTkyJiZ1WzFdPDgxOTImJnVbMl0+PTAmJnVbM10+PTAmJnMuaW5zZXJ0KG8sdVswXSx1WzFdLHVbMl0sdVszXSl9fSx1dS5wcm90b3R5cGUubG9hZFZUTGF5ZXJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudnRMYXllcnN8fCh0aGlzLnZ0TGF5ZXJzPW5ldyBMcy5WZWN0b3JUaWxlKG5ldyBhbCh0aGlzLnJhd1RpbGVEYXRhKSkubGF5ZXJzLHRoaXMuc291cmNlTGF5ZXJDb2Rlcj1uZXcgb3UodGhpcy52dExheWVycz9PYmplY3Qua2V5cyh0aGlzLnZ0TGF5ZXJzKS5zb3J0KCk6WyJfZ2VvanNvblRpbGVMYXllciJdKSksdGhpcy52dExheWVyc30sdXUucHJvdG90eXBlLnF1ZXJ5PWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhPXRoaXM7dGhpcy5sb2FkVlRMYXllcnMoKTtmb3IodmFyIG89dC5wYXJhbXN8fHt9LHM9ODE5Mi90LnRpbGVTaXplL3Quc2NhbGUsbD1zbihvLmZpbHRlciksYz10LnF1ZXJ5R2VvbWV0cnksdT10LnF1ZXJ5UGFkZGluZypzLGY9aHUoYyksaD10aGlzLmdyaWQucXVlcnkoZi5taW5YLXUsZi5taW5ZLXUsZi5tYXhYK3UsZi5tYXhZK3UpLHA9aHUodC5jYW1lcmFRdWVyeUdlb21ldHJ5KSxkPXRoaXMuZ3JpZDNELnF1ZXJ5KHAubWluWC11LHAubWluWS11LHAubWF4WCt1LHAubWF4WSt1LChmdW5jdGlvbihlLHIsbixhKXtyZXR1cm4gZnVuY3Rpb24odCxlLHIsbixhKXtmb3IodmFyIG89MCxzPXQ7bzxzLmxlbmd0aDtvKz0xKXt2YXIgbD1zW29dO2lmKGU8PWwueCYmcjw9bC55JiZuPj1sLngmJmE+PWwueSlyZXR1cm4hMH12YXIgYz1bbmV3IGkoZSxyKSxuZXcgaShlLGEpLG5ldyBpKG4sYSksbmV3IGkobixyKV07aWYodC5sZW5ndGg+Milmb3IodmFyIHU9MCxmPWM7dTxmLmxlbmd0aDt1Kz0xKXtpZihpbyh0LGZbdV0pKXJldHVybiEwfWZvcih2YXIgaD0wO2g8dC5sZW5ndGgtMTtoKyspe2lmKGFvKHRbaF0sdFtoKzFdLGMpKXJldHVybiEwfXJldHVybiExfSh0LmNhbWVyYVF1ZXJ5R2VvbWV0cnksZS11LHItdSxuK3UsYSt1KX0pKSxtPTAsZz1kO208Zy5sZW5ndGg7bSs9MSl7dmFyIHY9Z1ttXTtoLnB1c2godil9aC5zb3J0KHB1KTtmb3IodmFyIHkseD17fSxiPWZ1bmN0aW9uKGkpe3ZhciB1PWhbaV07aWYodSE9PXkpe3k9dTt2YXIgZj1hLmZlYXR1cmVJbmRleEFycmF5LmdldCh1KSxwPW51bGw7YS5sb2FkTWF0Y2hpbmdGZWF0dXJlKHgsZi5idWNrZXRJbmRleCxmLnNvdXJjZUxheWVySW5kZXgsZi5mZWF0dXJlSW5kZXgsbCxvLmxheWVycyxvLmF2YWlsYWJsZUltYWdlcyxlLHIsbiwoZnVuY3Rpb24oZSxyLG4pe3JldHVybiBwfHwocD1ZYShlKSksci5xdWVyeUludGVyc2VjdHNGZWF0dXJlKGMsZSxuLHAsYS56LHQudHJhbnNmb3JtLHMsdC5waXhlbFBvc01hdHJpeCl9KSl9fSxfPTA7XzxoLmxlbmd0aDtfKyspYihfKTtyZXR1cm4geH0sdXUucHJvdG90eXBlLmxvYWRNYXRjaGluZ0ZlYXR1cmU9ZnVuY3Rpb24odCxlLHIsbixpLGEsbyxzLGwsYyx1KXt2YXIgZj10aGlzLmJ1Y2tldExheWVySURzW2VdO2lmKCFhfHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKWlmKGUuaW5kZXhPZih0W3JdKT49MClyZXR1cm4hMDtyZXR1cm4hMX0oYSxmKSl7dmFyIGg9dGhpcy5zb3VyY2VMYXllckNvZGVyLmRlY29kZShyKSxwPXRoaXMudnRMYXllcnNbaF0uZmVhdHVyZShuKTtpZihpLmZpbHRlcihuZXcgcGkodGhpcy50aWxlSUQub3ZlcnNjYWxlZFopLHApKWZvcih2YXIgZD10aGlzLmdldElkKHAsaCksbT0wO208Zi5sZW5ndGg7bSsrKXt2YXIgZz1mW21dO2lmKCEoYSYmYS5pbmRleE9mKGcpPDApKXt2YXIgdj1zW2ddO2lmKHYpe3ZhciB5PXt9O3ZvaWQgMCE9PWQmJmMmJih5PWMuZ2V0U3RhdGUodi5zb3VyY2VMYXllcnx8Il9nZW9qc29uVGlsZUxheWVyIixkKSk7dmFyIHg9bFtnXTt4LnBhaW50PWZ1KHgucGFpbnQsdi5wYWludCxwLHksbykseC5sYXlvdXQ9ZnUoeC5sYXlvdXQsdi5sYXlvdXQscCx5LG8pO3ZhciBiPSF1fHx1KHAsdix5KTtpZihiKXt2YXIgXz1uZXcgc3UocCx0aGlzLnosdGhpcy54LHRoaXMueSxkKTtfLmxheWVyPXg7dmFyIHc9dFtnXTt2b2lkIDA9PT13JiYodz10W2ddPVtdKSx3LnB1c2goe2ZlYXR1cmVJbmRleDpuLGZlYXR1cmU6XyxpbnRlcnNlY3Rpb25aOmJ9KX19fX19fSx1dS5wcm90b3R5cGUubG9va3VwU3ltYm9sRmVhdHVyZXM9ZnVuY3Rpb24odCxlLHIsbixpLGEsbyxzKXt2YXIgbD17fTt0aGlzLmxvYWRWVExheWVycygpO2Zvcih2YXIgYz1zbihpKSx1PTAsZj10O3U8Zi5sZW5ndGg7dSs9MSl7dmFyIGg9Zlt1XTt0aGlzLmxvYWRNYXRjaGluZ0ZlYXR1cmUobCxyLG4saCxjLGEsbyxzLGUpfXJldHVybiBsfSx1dS5wcm90b3R5cGUuaGFzTGF5ZXI9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAscj10aGlzLmJ1Y2tldExheWVySURzO2U8ci5sZW5ndGg7ZSs9MSlmb3IodmFyIG49MCxpPXJbZV07bjxpLmxlbmd0aDtuKz0xKXtpZih0PT09aVtuXSlyZXR1cm4hMH1yZXR1cm4hMX0sdXUucHJvdG90eXBlLmdldElkPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5pZDtpZih0aGlzLnByb21vdGVJZCl7dmFyIG49InN0cmluZyI9PXR5cGVvZiB0aGlzLnByb21vdGVJZD90aGlzLnByb21vdGVJZDp0aGlzLnByb21vdGVJZFtlXTsiYm9vbGVhbiI9PXR5cGVvZihyPXQucHJvcGVydGllc1tuXSkmJihyPU51bWJlcihyKSl9cmV0dXJuIHJ9LE5uKCJGZWF0dXJlSW5kZXgiLHV1LHtvbWl0OlsicmF3VGlsZURhdGEiLCJzb3VyY2VMYXllckNvZGVyIl19KTt2YXIgZHU9ZnVuY3Rpb24odCxlKXt0aGlzLnRpbGVJRD10LHRoaXMudWlkPWgoKSx0aGlzLnVzZXM9MCx0aGlzLnRpbGVTaXplPWUsdGhpcy5idWNrZXRzPXt9LHRoaXMuZXhwaXJhdGlvblRpbWU9bnVsbCx0aGlzLnF1ZXJ5UGFkZGluZz0wLHRoaXMuaGFzU3ltYm9sQnVja2V0cz0hMSx0aGlzLmhhc1JUTFRleHQ9ITEsdGhpcy5kZXBlbmRlbmNpZXM9e30sdGhpcy5leHBpcmVkUmVxdWVzdENvdW50PTAsdGhpcy5zdGF0ZT0ibG9hZGluZyJ9O2R1LnByb3RvdHlwZS5yZWdpc3RlckZhZGVEdXJhdGlvbj1mdW5jdGlvbih0KXt2YXIgZT10K3RoaXMudGltZUFkZGVkO2U8Ui5ub3coKXx8dGhpcy5mYWRlRW5kVGltZSYmZTx0aGlzLmZhZGVFbmRUaW1lfHwodGhpcy5mYWRlRW5kVGltZT1lKX0sZHUucHJvdG90eXBlLndhc1JlcXVlc3RlZD1mdW5jdGlvbigpe3JldHVybiJlcnJvcmVkIj09PXRoaXMuc3RhdGV8fCJsb2FkZWQiPT09dGhpcy5zdGF0ZXx8InJlbG9hZGluZyI9PT10aGlzLnN0YXRlfSxkdS5wcm90b3R5cGUubG9hZFZlY3RvckRhdGE9ZnVuY3Rpb24odCxlLHIpe2lmKHRoaXMuaGFzRGF0YSgpJiZ0aGlzLnVubG9hZFZlY3RvckRhdGEoKSx0aGlzLnN0YXRlPSJsb2FkZWQiLHQpe2Zvcih2YXIgbiBpbiB0LmZlYXR1cmVJbmRleCYmKHRoaXMubGF0ZXN0RmVhdHVyZUluZGV4PXQuZmVhdHVyZUluZGV4LHQucmF3VGlsZURhdGE/KHRoaXMubGF0ZXN0UmF3VGlsZURhdGE9dC5yYXdUaWxlRGF0YSx0aGlzLmxhdGVzdEZlYXR1cmVJbmRleC5yYXdUaWxlRGF0YT10LnJhd1RpbGVEYXRhKTp0aGlzLmxhdGVzdFJhd1RpbGVEYXRhJiYodGhpcy5sYXRlc3RGZWF0dXJlSW5kZXgucmF3VGlsZURhdGE9dGhpcy5sYXRlc3RSYXdUaWxlRGF0YSkpLHRoaXMuY29sbGlzaW9uQm94QXJyYXk9dC5jb2xsaXNpb25Cb3hBcnJheSx0aGlzLmJ1Y2tldHM9ZnVuY3Rpb24odCxlKXt2YXIgcj17fTtpZighZSlyZXR1cm4gcjtmb3IodmFyIG49ZnVuY3Rpb24oKXt2YXIgdD1hW2ldLG49dC5sYXllcklkcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlLmdldExheWVyKHQpfSkpLmZpbHRlcihCb29sZWFuKTtpZigwIT09bi5sZW5ndGgpe3QubGF5ZXJzPW4sdC5zdGF0ZURlcGVuZGVudExheWVySWRzJiYodC5zdGF0ZURlcGVuZGVudExheWVycz10LnN0YXRlRGVwZW5kZW50TGF5ZXJJZHMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gbi5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlkPT09dH0pKVswXX0pKSk7Zm9yKHZhciBvPTAscz1uO288cy5sZW5ndGg7bys9MSl7dmFyIGw9c1tvXTtyW2wuaWRdPXR9fX0saT0wLGE9dDtpPGEubGVuZ3RoO2krPTEpbigpO3JldHVybiByfSh0LmJ1Y2tldHMsZS5zdHlsZSksdGhpcy5oYXNTeW1ib2xCdWNrZXRzPSExLHRoaXMuYnVja2V0cyl7dmFyIGk9dGhpcy5idWNrZXRzW25dO2lmKGkgaW5zdGFuY2VvZiBNYyl7aWYodGhpcy5oYXNTeW1ib2xCdWNrZXRzPSEwLCFyKWJyZWFrO2kuanVzdFJlbG9hZGVkPSEwfX1pZih0aGlzLmhhc1JUTFRleHQ9ITEsdGhpcy5oYXNTeW1ib2xCdWNrZXRzKWZvcih2YXIgYSBpbiB0aGlzLmJ1Y2tldHMpe3ZhciBvPXRoaXMuYnVja2V0c1thXTtpZihvIGluc3RhbmNlb2YgTWMmJm8uaGFzUlRMVGV4dCl7dGhpcy5oYXNSVExUZXh0PSEwLGhpLmlzTG9hZGluZygpfHxoaS5pc0xvYWRlZCgpfHwiZGVmZXJyZWQiIT09dWkoKXx8ZmkoKTticmVha319Zm9yKHZhciBzIGluIHRoaXMucXVlcnlQYWRkaW5nPTAsdGhpcy5idWNrZXRzKXt2YXIgbD10aGlzLmJ1Y2tldHNbc107dGhpcy5xdWVyeVBhZGRpbmc9TWF0aC5tYXgodGhpcy5xdWVyeVBhZGRpbmcsZS5zdHlsZS5nZXRMYXllcihzKS5xdWVyeVJhZGl1cyhsKSl9dC5pbWFnZUF0bGFzJiYodGhpcy5pbWFnZUF0bGFzPXQuaW1hZ2VBdGxhcyksdC5nbHlwaEF0bGFzSW1hZ2UmJih0aGlzLmdseXBoQXRsYXNJbWFnZT10LmdseXBoQXRsYXNJbWFnZSl9ZWxzZSB0aGlzLmNvbGxpc2lvbkJveEFycmF5PW5ldyBuYX0sZHUucHJvdG90eXBlLnVubG9hZFZlY3RvckRhdGE9ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcy5idWNrZXRzKXRoaXMuYnVja2V0c1t0XS5kZXN0cm95KCk7dGhpcy5idWNrZXRzPXt9LHRoaXMuaW1hZ2VBdGxhc1RleHR1cmUmJnRoaXMuaW1hZ2VBdGxhc1RleHR1cmUuZGVzdHJveSgpLHRoaXMuaW1hZ2VBdGxhcyYmKHRoaXMuaW1hZ2VBdGxhcz1udWxsKSx0aGlzLmdseXBoQXRsYXNUZXh0dXJlJiZ0aGlzLmdseXBoQXRsYXNUZXh0dXJlLmRlc3Ryb3koKSx0aGlzLmxhdGVzdEZlYXR1cmVJbmRleD1udWxsLHRoaXMuc3RhdGU9InVubG9hZGVkIn0sZHUucHJvdG90eXBlLmdldEJ1Y2tldD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5idWNrZXRzW3QuaWRdfSxkdS5wcm90b3R5cGUudXBsb2FkPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZSBpbiB0aGlzLmJ1Y2tldHMpe3ZhciByPXRoaXMuYnVja2V0c1tlXTtyLnVwbG9hZFBlbmRpbmcoKSYmci51cGxvYWQodCl9dmFyIG49dC5nbDt0aGlzLmltYWdlQXRsYXMmJiF0aGlzLmltYWdlQXRsYXMudXBsb2FkZWQmJih0aGlzLmltYWdlQXRsYXNUZXh0dXJlPW5ldyBWYyh0LHRoaXMuaW1hZ2VBdGxhcy5pbWFnZSxuLlJHQkEpLHRoaXMuaW1hZ2VBdGxhcy51cGxvYWRlZD0hMCksdGhpcy5nbHlwaEF0bGFzSW1hZ2UmJih0aGlzLmdseXBoQXRsYXNUZXh0dXJlPW5ldyBWYyh0LHRoaXMuZ2x5cGhBdGxhc0ltYWdlLG4uQUxQSEEpLHRoaXMuZ2x5cGhBdGxhc0ltYWdlPW51bGwpfSxkdS5wcm90b3R5cGUucHJlcGFyZT1mdW5jdGlvbih0KXt0aGlzLmltYWdlQXRsYXMmJnRoaXMuaW1hZ2VBdGxhcy5wYXRjaFVwZGF0ZWRJbWFnZXModCx0aGlzLmltYWdlQXRsYXNUZXh0dXJlKX0sZHUucHJvdG90eXBlLnF1ZXJ5UmVuZGVyZWRGZWF0dXJlcz1mdW5jdGlvbih0LGUscixuLGksYSxvLHMsbCxjKXtyZXR1cm4gdGhpcy5sYXRlc3RGZWF0dXJlSW5kZXgmJnRoaXMubGF0ZXN0RmVhdHVyZUluZGV4LnJhd1RpbGVEYXRhP3RoaXMubGF0ZXN0RmVhdHVyZUluZGV4LnF1ZXJ5KHtxdWVyeUdlb21ldHJ5Om4sY2FtZXJhUXVlcnlHZW9tZXRyeTppLHNjYWxlOmEsdGlsZVNpemU6dGhpcy50aWxlU2l6ZSxwaXhlbFBvc01hdHJpeDpjLHRyYW5zZm9ybTpzLHBhcmFtczpvLHF1ZXJ5UGFkZGluZzp0aGlzLnF1ZXJ5UGFkZGluZypsfSx0LGUscik6e319LGR1LnByb3RvdHlwZS5xdWVyeVNvdXJjZUZlYXR1cmVzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5sYXRlc3RGZWF0dXJlSW5kZXg7aWYociYmci5yYXdUaWxlRGF0YSl7dmFyIG49ci5sb2FkVlRMYXllcnMoKSxpPWU/ZS5zb3VyY2VMYXllcjoiIixhPW4uX2dlb2pzb25UaWxlTGF5ZXJ8fG5baV07aWYoYSlmb3IodmFyIG89c24oZSYmZS5maWx0ZXIpLHM9dGhpcy50aWxlSUQuY2Fub25pY2FsLGw9cy56LGM9cy54LHU9cy55LGY9e3o6bCx4OmMseTp1fSxoPTA7aDxhLmxlbmd0aDtoKyspe3ZhciBwPWEuZmVhdHVyZShoKTtpZihvLmZpbHRlcihuZXcgcGkodGhpcy50aWxlSUQub3ZlcnNjYWxlZFopLHApKXt2YXIgZD1yLmdldElkKHAsaSksbT1uZXcgc3UocCxsLGMsdSxkKTttLnRpbGU9Zix0LnB1c2gobSl9fX19LGR1LnByb3RvdHlwZS5oYXNEYXRhPWZ1bmN0aW9uKCl7cmV0dXJuImxvYWRlZCI9PT10aGlzLnN0YXRlfHwicmVsb2FkaW5nIj09PXRoaXMuc3RhdGV8fCJleHBpcmVkIj09PXRoaXMuc3RhdGV9LGR1LnByb3RvdHlwZS5wYXR0ZXJuc0xvYWRlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmltYWdlQXRsYXMmJiEhT2JqZWN0LmtleXModGhpcy5pbWFnZUF0bGFzLnBhdHRlcm5Qb3NpdGlvbnMpLmxlbmd0aH0sZHUucHJvdG90eXBlLnNldEV4cGlyeURhdGE9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5leHBpcmF0aW9uVGltZTtpZih0LmNhY2hlQ29udHJvbCl7dmFyIHI9QSh0LmNhY2hlQ29udHJvbCk7clsibWF4LWFnZSJdJiYodGhpcy5leHBpcmF0aW9uVGltZT1EYXRlLm5vdygpKzFlMypyWyJtYXgtYWdlIl0pfWVsc2UgdC5leHBpcmVzJiYodGhpcy5leHBpcmF0aW9uVGltZT1uZXcgRGF0ZSh0LmV4cGlyZXMpLmdldFRpbWUoKSk7aWYodGhpcy5leHBpcmF0aW9uVGltZSl7dmFyIG49RGF0ZS5ub3coKSxpPSExO2lmKHRoaXMuZXhwaXJhdGlvblRpbWU+bilpPSExO2Vsc2UgaWYoZSlpZih0aGlzLmV4cGlyYXRpb25UaW1lPGUpaT0hMDtlbHNle3ZhciBhPXRoaXMuZXhwaXJhdGlvblRpbWUtZTthP3RoaXMuZXhwaXJhdGlvblRpbWU9bitNYXRoLm1heChhLDNlNCk6aT0hMH1lbHNlIGk9ITA7aT8odGhpcy5leHBpcmVkUmVxdWVzdENvdW50KyssdGhpcy5zdGF0ZT0iZXhwaXJlZCIpOnRoaXMuZXhwaXJlZFJlcXVlc3RDb3VudD0wfX0sZHUucHJvdG90eXBlLmdldEV4cGlyeVRpbWVvdXQ9ZnVuY3Rpb24oKXtpZih0aGlzLmV4cGlyYXRpb25UaW1lKXJldHVybiB0aGlzLmV4cGlyZWRSZXF1ZXN0Q291bnQ/MWUzKigxPDxNYXRoLm1pbih0aGlzLmV4cGlyZWRSZXF1ZXN0Q291bnQtMSwzMSkpOk1hdGgubWluKHRoaXMuZXhwaXJhdGlvblRpbWUtKG5ldyBEYXRlKS5nZXRUaW1lKCksTWF0aC5wb3coMiwzMSktMSl9LGR1LnByb3RvdHlwZS5zZXRGZWF0dXJlU3RhdGU9ZnVuY3Rpb24odCxlKXtpZih0aGlzLmxhdGVzdEZlYXR1cmVJbmRleCYmdGhpcy5sYXRlc3RGZWF0dXJlSW5kZXgucmF3VGlsZURhdGEmJjAhPT1PYmplY3Qua2V5cyh0KS5sZW5ndGgpe3ZhciByPXRoaXMubGF0ZXN0RmVhdHVyZUluZGV4LmxvYWRWVExheWVycygpO2Zvcih2YXIgbiBpbiB0aGlzLmJ1Y2tldHMpaWYoZS5zdHlsZS5oYXNMYXllcihuKSl7dmFyIGk9dGhpcy5idWNrZXRzW25dLGE9aS5sYXllcnNbMF0uc291cmNlTGF5ZXJ8fCJfZ2VvanNvblRpbGVMYXllciIsbz1yW2FdLHM9dFthXTtpZihvJiZzJiYwIT09T2JqZWN0LmtleXMocykubGVuZ3RoKXtpLnVwZGF0ZShzLG8sdGhpcy5pbWFnZUF0bGFzJiZ0aGlzLmltYWdlQXRsYXMucGF0dGVyblBvc2l0aW9uc3x8e30pO3ZhciBsPWUmJmUuc3R5bGUmJmUuc3R5bGUuZ2V0TGF5ZXIobik7bCYmKHRoaXMucXVlcnlQYWRkaW5nPU1hdGgubWF4KHRoaXMucXVlcnlQYWRkaW5nLGwucXVlcnlSYWRpdXMoaSkpKX19fX0sZHUucHJvdG90eXBlLmhvbGRpbmdGb3JGYWRlPWZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuc3ltYm9sRmFkZUhvbGRVbnRpbH0sZHUucHJvdG90eXBlLnN5bWJvbEZhZGVGaW5pc2hlZD1mdW5jdGlvbigpe3JldHVybiF0aGlzLnN5bWJvbEZhZGVIb2xkVW50aWx8fHRoaXMuc3ltYm9sRmFkZUhvbGRVbnRpbDxSLm5vdygpfSxkdS5wcm90b3R5cGUuY2xlYXJGYWRlSG9sZD1mdW5jdGlvbigpe3RoaXMuc3ltYm9sRmFkZUhvbGRVbnRpbD12b2lkIDB9LGR1LnByb3RvdHlwZS5zZXRIb2xkRHVyYXRpb249ZnVuY3Rpb24odCl7dGhpcy5zeW1ib2xGYWRlSG9sZFVudGlsPVIubm93KCkrdH0sZHUucHJvdG90eXBlLnNldERlcGVuZGVuY2llcz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj17fSxuPTAsaT1lO248aS5sZW5ndGg7bis9MSl7cltpW25dXT0hMH10aGlzLmRlcGVuZGVuY2llc1t0XT1yfSxkdS5wcm90b3R5cGUuaGFzRGVwZW5kZW5jeT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wLG49dDtyPG4ubGVuZ3RoO3IrPTEpe3ZhciBpPW5bcl0sYT10aGlzLmRlcGVuZGVuY2llc1tpXTtpZihhKWZvcih2YXIgbz0wLHM9ZTtvPHMubGVuZ3RoO28rPTEpe2lmKGFbc1tvXV0pcmV0dXJuITB9fXJldHVybiExfTt2YXIgbXU9c2VsZi5wZXJmb3JtYW5jZSxndT1mdW5jdGlvbih0KXt0aGlzLl9tYXJrcz17c3RhcnQ6W3QudXJsLCJzdGFydCJdLmpvaW4oIiMiKSxlbmQ6W3QudXJsLCJlbmQiXS5qb2luKCIjIiksbWVhc3VyZTp0LnVybC50b1N0cmluZygpfSxtdS5tYXJrKHRoaXMuX21hcmtzLnN0YXJ0KX07Z3UucHJvdG90eXBlLmZpbmlzaD1mdW5jdGlvbigpe211Lm1hcmsodGhpcy5fbWFya3MuZW5kKTt2YXIgdD1tdS5nZXRFbnRyaWVzQnlOYW1lKHRoaXMuX21hcmtzLm1lYXN1cmUpO3JldHVybiAwPT09dC5sZW5ndGgmJihtdS5tZWFzdXJlKHRoaXMuX21hcmtzLm1lYXN1cmUsdGhpcy5fbWFya3Muc3RhcnQsdGhpcy5fbWFya3MuZW5kKSx0PW11LmdldEVudHJpZXNCeU5hbWUodGhpcy5fbWFya3MubWVhc3VyZSksbXUuY2xlYXJNYXJrcyh0aGlzLl9tYXJrcy5zdGFydCksbXUuY2xlYXJNYXJrcyh0aGlzLl9tYXJrcy5lbmQpLG11LmNsZWFyTWVhc3VyZXModGhpcy5fbWFya3MubWVhc3VyZSkpLHR9LHQuQWN0b3I9cWMsdC5BbHBoYUltYWdlPVNvLHQuQ2Fub25pY2FsVGlsZUlEPWV1LHQuQ29sbGlzaW9uQm94QXJyYXk9bmEsdC5Db2xvcj10ZSx0LkRFTURhdGE9YXUsdC5EYXRhQ29uc3RhbnRQcm9wZXJ0eT13aSx0LkRpY3Rpb25hcnlDb2Rlcj1vdSx0LkVYVEVOVD04MTkyLHQuRXJyb3JFdmVudD1TdCx0LkV2YWx1YXRpb25QYXJhbWV0ZXJzPXBpLHQuRXZlbnQ9TXQsdC5FdmVudGVkPUV0LHQuRmVhdHVyZUluZGV4PXV1LHQuRmlsbEJ1Y2tldD1ncyx0LkZpbGxFeHRydXNpb25CdWNrZXQ9T3MsdC5JbWFnZUF0bGFzPUxsLHQuSW1hZ2VQb3NpdGlvbj1TbCx0LkxpbmVCdWNrZXQ9cXMsdC5MbmdMYXQ9V2MsdC5MbmdMYXRCb3VuZHM9WWMsdC5NZXJjYXRvckNvb3JkaW5hdGU9dHUsdC5PTkVfRU09MjQsdC5PdmVyc2NhbGVkVGlsZUlEPW51LHQuUG9pbnQ9aSx0LlBvaW50JDE9aSx0LlByb3BlcnRpZXM9U2ksdC5Qcm90b2J1Zj1hbCx0LlJHQkFJbWFnZT1Fbyx0LlJlcXVlc3RNYW5hZ2VyPUgsdC5SZXF1ZXN0UGVyZm9ybWFuY2U9Z3UsdC5SZXNvdXJjZVR5cGU9ZHQsdC5TZWdtZW50VmVjdG9yPXBhLHQuU291cmNlRmVhdHVyZVN0YXRlPWN1LHQuU3RydWN0QXJyYXlMYXlvdXQxdWkyPSRpLHQuU3RydWN0QXJyYXlMYXlvdXQyZjFmMmkxNj1xaSx0LlN0cnVjdEFycmF5TGF5b3V0Mmk0PXppLHQuU3RydWN0QXJyYXlMYXlvdXQzdWk2PVlpLHQuU3RydWN0QXJyYXlMYXlvdXQ0aTg9RGksdC5TeW1ib2xCdWNrZXQ9TWMsdC5UZXh0dXJlPVZjLHQuVGlsZT1kdSx0LlRyYW5zaXRpb25hYmxlPWdpLHQuVW5pZm9ybTFmPVNhLHQuVW5pZm9ybTFpPU1hLHQuVW5pZm9ybTJmPUVhLHQuVW5pZm9ybTNmPUxhLHQuVW5pZm9ybTRmPUNhLHQuVW5pZm9ybUNvbG9yPVBhLHQuVW5pZm9ybU1hdHJpeDRmPU9hLHQuVW53cmFwcGVkVGlsZUlEPXJ1LHQuVmFsaWRhdGlvbkVycm9yPUN0LHQuV3JpdGluZ01vZGU9Q2wsdC5ab29tSGlzdG9yeT1Hbix0LmFkZD1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRbMF09ZVswXStyWzBdLHRbMV09ZVsxXStyWzFdLHRbMl09ZVsyXStyWzJdLHR9LHQuYWRkRHluYW1pY0F0dHJpYnV0ZXM9d2MsdC5hc3luY0FsbD1mdW5jdGlvbih0LGUscil7aWYoIXQubGVuZ3RoKXJldHVybiByKG51bGwsW10pO3ZhciBuPXQubGVuZ3RoLGk9bmV3IEFycmF5KHQubGVuZ3RoKSxhPW51bGw7dC5mb3JFYWNoKChmdW5jdGlvbih0LG8pe2UodCwoZnVuY3Rpb24odCxlKXt0JiYoYT10KSxpW29dPWUsMD09LS1uJiZyKGEsaSl9KSl9KSl9LHQuYmV6aWVyPW8sdC5iaW5kQWxsPW0sdC5icm93c2VyPVIsdC5jYWNoZUVudHJ5UG9zc2libHlBZGRlZD1mdW5jdGlvbih0KXsrK2h0Pm90JiYodC5nZXRBY3RvcigpLnNlbmQoImVuZm9yY2VDYWNoZVNpemVMaW1pdCIsYXQpLGh0PTApfSx0LmNsYW1wPWwsdC5jbGVhclRpbGVDYWNoZT1mdW5jdGlvbih0KXt2YXIgZT1zZWxmLmNhY2hlcy5kZWxldGUoIm1hcGJveC10aWxlcyIpO3QmJmUuY2F0Y2godCkudGhlbigoZnVuY3Rpb24oKXtyZXR1cm4gdCgpfSkpfSx0LmNsaXBMaW5lPWVjLHQuY2xvbmU9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IGZvKDE2KTtyZXR1cm4gZVswXT10WzBdLGVbMV09dFsxXSxlWzJdPXRbMl0sZVszXT10WzNdLGVbNF09dFs0XSxlWzVdPXRbNV0sZVs2XT10WzZdLGVbN109dFs3XSxlWzhdPXRbOF0sZVs5XT10WzldLGVbMTBdPXRbMTBdLGVbMTFdPXRbMTFdLGVbMTJdPXRbMTJdLGVbMTNdPXRbMTNdLGVbMTRdPXRbMTRdLGVbMTVdPXRbMTVdLGV9LHQuY2xvbmUkMT14LHQuY2xvbmUkMj1mdW5jdGlvbih0KXt2YXIgZT1uZXcgZm8oMyk7cmV0dXJuIGVbMF09dFswXSxlWzFdPXRbMV0sZVsyXT10WzJdLGV9LHQuY29sbGlzaW9uQ2lyY2xlTGF5b3V0PXRsLHQuY29uZmlnPUYsdC5jcmVhdGU9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgZm8oMTYpO3JldHVybiBmbyE9RmxvYXQzMkFycmF5JiYodFsxXT0wLHRbMl09MCx0WzNdPTAsdFs0XT0wLHRbNl09MCx0WzddPTAsdFs4XT0wLHRbOV09MCx0WzExXT0wLHRbMTJdPTAsdFsxM109MCx0WzE0XT0wKSx0WzBdPTEsdFs1XT0xLHRbMTBdPTEsdFsxNV09MSx0fSx0LmNyZWF0ZSQxPWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IGZvKDkpO3JldHVybiBmbyE9RmxvYXQzMkFycmF5JiYodFsxXT0wLHRbMl09MCx0WzNdPTAsdFs1XT0wLHRbNl09MCx0WzddPTApLHRbMF09MSx0WzRdPTEsdFs4XT0xLHR9LHQuY3JlYXRlJDI9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgZm8oNCk7cmV0dXJuIGZvIT1GbG9hdDMyQXJyYXkmJih0WzFdPTAsdFsyXT0wKSx0WzBdPTEsdFszXT0xLHR9LHQuY3JlYXRlQ29tbW9uanNNb2R1bGU9ZSx0LmNyZWF0ZUV4cHJlc3Npb249V3IsdC5jcmVhdGVMYXlvdXQ9SWksdC5jcmVhdGVTdHlsZUxheWVyPWZ1bmN0aW9uKHQpe3JldHVybiJjdXN0b20iPT09dC50eXBlP25ldyBEYyh0KTpuZXcgUmNbdC50eXBlXSh0KX0sdC5jcm9zcz1mdW5jdGlvbih0LGUscil7dmFyIG49ZVswXSxpPWVbMV0sYT1lWzJdLG89clswXSxzPXJbMV0sbD1yWzJdO3JldHVybiB0WzBdPWkqbC1hKnMsdFsxXT1hKm8tbipsLHRbMl09bipzLWkqbyx0fSx0LmRlZXBFcXVhbD1mdW5jdGlvbiB0KGUscil7aWYoQXJyYXkuaXNBcnJheShlKSl7aWYoIUFycmF5LmlzQXJyYXkocil8fGUubGVuZ3RoIT09ci5sZW5ndGgpcmV0dXJuITE7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspaWYoIXQoZVtuXSxyW25dKSlyZXR1cm4hMTtyZXR1cm4hMH1pZigib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPT1lJiZudWxsIT09cil7aWYoIm9iamVjdCIhPXR5cGVvZiByKXJldHVybiExO2lmKE9iamVjdC5rZXlzKGUpLmxlbmd0aCE9PU9iamVjdC5rZXlzKHIpLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIGkgaW4gZSlpZighdChlW2ldLHJbaV0pKXJldHVybiExO3JldHVybiEwfXJldHVybiBlPT09cn0sdC5kb3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXSplWzBdK3RbMV0qZVsxXSt0WzJdKmVbMl19LHQuZG90JDE9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXSplWzBdK3RbMV0qZVsxXSt0WzJdKmVbMl0rdFszXSplWzNdfSx0LmVhc2U9cyx0LmVtaXRWYWxpZGF0aW9uRXJyb3JzPU9uLHQuZW5kc1dpdGg9Zyx0LmVuZm9yY2VDYWNoZVNpemVMaW1pdD1mdW5jdGlvbih0KXtzdCgpLFEmJlEudGhlbigoZnVuY3Rpb24oZSl7ZS5rZXlzKCkudGhlbigoZnVuY3Rpb24ocil7Zm9yKHZhciBuPTA7bjxyLmxlbmd0aC10O24rKyllLmRlbGV0ZShyW25dKX0pKX0pKX0sdC5ldmFsdWF0ZVNpemVGb3JGZWF0dXJlPVlsLHQuZXZhbHVhdGVTaXplRm9yWm9vbT1XbCx0LmV2YWx1YXRlVmFyaWFibGVPZmZzZXQ9ZGMsdC5ldmVudGVkPWNpLHQuZXh0ZW5kPXUsdC5mZWF0dXJlRmlsdGVyPXNuLHQuZmlsdGVyT2JqZWN0PXksdC5mcm9tUm90YXRpb249ZnVuY3Rpb24odCxlKXt2YXIgcj1NYXRoLnNpbihlKSxuPU1hdGguY29zKGUpO3JldHVybiB0WzBdPW4sdFsxXT1yLHRbMl09MCx0WzNdPS1yLHRbNF09bix0WzVdPTAsdFs2XT0wLHRbN109MCx0WzhdPTEsdH0sdC5nZXRBbmNob3JBbGlnbm1lbnQ9VWwsdC5nZXRBbmNob3JKdXN0aWZpY2F0aW9uPW1jLHQuZ2V0QXJyYXlCdWZmZXI9eHQsdC5nZXRJbWFnZT1UdCx0LmdldEpTT049ZnVuY3Rpb24odCxlKXtyZXR1cm4geXQodSh0LHt0eXBlOiJqc29uIn0pLGUpfSx0LmdldFJUTFRleHRQbHVnaW5TdGF0dXM9dWksdC5nZXRSZWZlcnJlcj1ndCx0LmdldFZpZGVvPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixpPXNlbGYuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidmlkZW8iKTtpLm11dGVkPSEwLGkub25sb2Fkc3RhcnQ9ZnVuY3Rpb24oKXtlKG51bGwsaSl9O2Zvcih2YXIgYT0wO2E8dC5sZW5ndGg7YSsrKXt2YXIgbz1zZWxmLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNvdXJjZSIpO3I9dFthXSxuPXZvaWQgMCwobj1zZWxmLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSkuaHJlZj1yLChuLnByb3RvY29sIT09c2VsZi5kb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbHx8bi5ob3N0IT09c2VsZi5kb2N1bWVudC5sb2NhdGlvbi5ob3N0KSYmKGkuY3Jvc3NPcmlnaW49IkFub255bW91cyIpLG8uc3JjPXRbYV0saS5hcHBlbmRDaGlsZChvKX1yZXR1cm57Y2FuY2VsOmZ1bmN0aW9uKCl7fX19LHQuaWRlbnRpdHk9aG8sdC5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLG49ZVsxXSxpPWVbMl0sYT1lWzNdLG89ZVs0XSxzPWVbNV0sbD1lWzZdLGM9ZVs3XSx1PWVbOF0sZj1lWzldLGg9ZVsxMF0scD1lWzExXSxkPWVbMTJdLG09ZVsxM10sZz1lWzE0XSx2PWVbMTVdLHk9cipzLW4qbyx4PXIqbC1pKm8sYj1yKmMtYSpvLF89bipsLWkqcyx3PW4qYy1hKnMsVD1pKmMtYSpsLGs9dSptLWYqZCxBPXUqZy1oKmQsTT11KnYtcCpkLFM9ZipnLWgqbSxFPWYqdi1wKm0sTD1oKnYtcCpnLEM9eSpMLXgqRStiKlMrXypNLXcqQStUKms7cmV0dXJuIEM/KEM9MS9DLHRbMF09KHMqTC1sKkUrYypTKSpDLHRbMV09KGkqRS1uKkwtYSpTKSpDLHRbMl09KG0qVC1nKncrdipfKSpDLHRbM109KGgqdy1mKlQtcCpfKSpDLHRbNF09KGwqTS1vKkwtYypBKSpDLHRbNV09KHIqTC1pKk0rYSpBKSpDLHRbNl09KGcqYi1kKlQtdip4KSpDLHRbN109KHUqVC1oKmIrcCp4KSpDLHRbOF09KG8qRS1zKk0rYyprKSpDLHRbOV09KG4qTS1yKkUtYSprKSpDLHRbMTBdPShkKnctbSpiK3YqeSkqQyx0WzExXT0oZipiLXUqdy1wKnkpKkMsdFsxMl09KHMqQS1vKlMtbCprKSpDLHRbMTNdPShyKlMtbipBK2kqaykqQyx0WzE0XT0obSp4LWQqXy1nKnkpKkMsdFsxNV09KHUqXy1mKngraCp5KSpDLHQpOm51bGx9LHQuaXNDaGFyPVluLHQuaXNNYXBib3hVUkw9cSx0LmtleXNEaWZmZXJlbmNlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9W107Zm9yKHZhciBuIGluIHQpbiBpbiBlfHxyLnB1c2gobik7cmV0dXJuIHJ9LHQubWFrZVJlcXVlc3Q9eXQsdC5tYXBPYmplY3Q9dix0Lm1lcmNhdG9yWGZyb21Mbmc9SmMsdC5tZXJjYXRvcllmcm9tTGF0PUtjLHQubWVyY2F0b3JaZnJvbUFsdGl0dWRlPVFjLHQubXVsPW1vLHQubXVsdGlwbHk9cG8sdC5tdnQ9THMsdC5ub3JtYWxpemU9ZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLG49ZVsxXSxpPWVbMl0sYT1yKnIrbipuK2kqaTtyZXR1cm4gYT4wJiYoYT0xL01hdGguc3FydChhKSksdFswXT1lWzBdKmEsdFsxXT1lWzFdKmEsdFsyXT1lWzJdKmEsdH0sdC5udW1iZXI9cWUsdC5vZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQ9cHQsdC5vcnRobz1mdW5jdGlvbih0LGUscixuLGksYSxvKXt2YXIgcz0xLyhlLXIpLGw9MS8obi1pKSxjPTEvKGEtbyk7cmV0dXJuIHRbMF09LTIqcyx0WzFdPTAsdFsyXT0wLHRbM109MCx0WzRdPTAsdFs1XT0tMipsLHRbNl09MCx0WzddPTAsdFs4XT0wLHRbOV09MCx0WzEwXT0yKmMsdFsxMV09MCx0WzEyXT0oZStyKSpzLHRbMTNdPShpK24pKmwsdFsxNF09KG8rYSkqYyx0WzE1XT0xLHR9LHQucGFyc2VHbHlwaFBCRj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGFsKHQpLnJlYWRGaWVsZHMoVGwsW10pfSx0LnBiZj1hbCx0LnBlcmZvcm1TeW1ib2xMYXlvdXQ9ZnVuY3Rpb24odCxlLHIsbixpLGEsbyl7dC5jcmVhdGVBcnJheXMoKTt2YXIgcz01MTIqdC5vdmVyc2NhbGluZzt0LnRpbGVQaXhlbFJhdGlvPTgxOTIvcyx0LmNvbXBhcmVUZXh0PXt9LHQuaWNvbnNOZWVkTGluZWFyPSExO3ZhciBsPXQubGF5ZXJzWzBdLmxheW91dCxjPXQubGF5ZXJzWzBdLl91bmV2YWx1YXRlZExheW91dC5fdmFsdWVzLHU9e307aWYoImNvbXBvc2l0ZSI9PT10LnRleHRTaXplRGF0YS5raW5kKXt2YXIgZj10LnRleHRTaXplRGF0YSxoPWYubWluWm9vbSxwPWYubWF4Wm9vbTt1LmNvbXBvc2l0ZVRleHRTaXplcz1bY1sidGV4dC1zaXplIl0ucG9zc2libHlFdmFsdWF0ZShuZXcgcGkoaCksbyksY1sidGV4dC1zaXplIl0ucG9zc2libHlFdmFsdWF0ZShuZXcgcGkocCksbyldfWlmKCJjb21wb3NpdGUiPT09dC5pY29uU2l6ZURhdGEua2luZCl7dmFyIGQ9dC5pY29uU2l6ZURhdGEsbT1kLm1pblpvb20sZz1kLm1heFpvb207dS5jb21wb3NpdGVJY29uU2l6ZXM9W2NbImljb24tc2l6ZSJdLnBvc3NpYmx5RXZhbHVhdGUobmV3IHBpKG0pLG8pLGNbImljb24tc2l6ZSJdLnBvc3NpYmx5RXZhbHVhdGUobmV3IHBpKGcpLG8pXX11LmxheW91dFRleHRTaXplPWNbInRleHQtc2l6ZSJdLnBvc3NpYmx5RXZhbHVhdGUobmV3IHBpKHQuem9vbSsxKSxvKSx1LmxheW91dEljb25TaXplPWNbImljb24tc2l6ZSJdLnBvc3NpYmx5RXZhbHVhdGUobmV3IHBpKHQuem9vbSsxKSxvKSx1LnRleHRNYXhTaXplPWNbInRleHQtc2l6ZSJdLnBvc3NpYmx5RXZhbHVhdGUobmV3IHBpKDE4KSk7Zm9yKHZhciB2PTI0KmwuZ2V0KCJ0ZXh0LWxpbmUtaGVpZ2h0IikseT0ibWFwIj09PWwuZ2V0KCJ0ZXh0LXJvdGF0aW9uLWFsaWdubWVudCIpJiYicG9pbnQiIT09bC5nZXQoInN5bWJvbC1wbGFjZW1lbnQiKSx4PWwuZ2V0KCJ0ZXh0LWtlZXAtdXByaWdodCIpLGI9bC5nZXQoInRleHQtc2l6ZSIpLHc9ZnVuY3Rpb24oKXt2YXIgYT1rW1RdLHM9bC5nZXQoInRleHQtZm9udCIpLmV2YWx1YXRlKGEse30sbykuam9pbigiLCIpLGM9Yi5ldmFsdWF0ZShhLHt9LG8pLGY9dS5sYXlvdXRUZXh0U2l6ZS5ldmFsdWF0ZShhLHt9LG8pLGg9dS5sYXlvdXRJY29uU2l6ZS5ldmFsdWF0ZShhLHt9LG8pLHA9e2hvcml6b250YWw6e30sdmVydGljYWw6dm9pZCAwfSxkPWEudGV4dCxtPVswLDBdO2lmKGQpe3ZhciBnPWQudG9TdHJpbmcoKSx3PTI0KmwuZ2V0KCJ0ZXh0LWxldHRlci1zcGFjaW5nIikuZXZhbHVhdGUoYSx7fSxvKSxBPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLHI9dDtlPHIubGVuZ3RoO2UrPTEpe2lmKCFYbihyW2VdLmNoYXJDb2RlQXQoMCkpKXJldHVybiExfXJldHVybiEwfShnKT93OjAsTT1sLmdldCgidGV4dC1hbmNob3IiKS5ldmFsdWF0ZShhLHt9LG8pLFM9bC5nZXQoInRleHQtdmFyaWFibGUtYW5jaG9yIik7aWYoIVMpe3ZhciBFPWwuZ2V0KCJ0ZXh0LXJhZGlhbC1vZmZzZXQiKS5ldmFsdWF0ZShhLHt9LG8pO209RT9kYyhNLFsyNCpFLHBjXSk6bC5nZXQoInRleHQtb2Zmc2V0IikuZXZhbHVhdGUoYSx7fSxvKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiAyNCp0fSkpfXZhciBMPXk/ImNlbnRlciI6bC5nZXQoInRleHQtanVzdGlmeSIpLmV2YWx1YXRlKGEse30sbyksQz1sLmdldCgic3ltYm9sLXBsYWNlbWVudCIpLFA9InBvaW50Ij09PUM/MjQqbC5nZXQoInRleHQtbWF4LXdpZHRoIikuZXZhbHVhdGUoYSx7fSxvKTowLEk9ZnVuY3Rpb24oKXt0LmFsbG93VmVydGljYWxQbGFjZW1lbnQmJlduKGcpJiYocC52ZXJ0aWNhbD1PbChkLGUscixpLHMsUCx2LE0sImxlZnQiLEEsbSxDbC52ZXJ0aWNhbCwhMCxDLGYsYykpfTtpZigheSYmUyl7Zm9yKHZhciBPPSJhdXRvIj09PUw/Uy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBtYyh0KX0pKTpbTF0sej0hMSxEPTA7RDxPLmxlbmd0aDtEKyspe3ZhciBSPU9bRF07aWYoIXAuaG9yaXpvbnRhbFtSXSlpZih6KXAuaG9yaXpvbnRhbFtSXT1wLmhvcml6b250YWxbMF07ZWxzZXt2YXIgRj1PbChkLGUscixpLHMsUCx2LCJjZW50ZXIiLFIsQSxtLENsLmhvcml6b250YWwsITEsQyxmLGMpO0YmJihwLmhvcml6b250YWxbUl09Rix6PTE9PT1GLnBvc2l0aW9uZWRMaW5lcy5sZW5ndGgpfX1JKCl9ZWxzZXsiYXV0byI9PT1MJiYoTD1tYyhNKSk7dmFyIEI9T2woZCxlLHIsaSxzLFAsdixNLEwsQSxtLENsLmhvcml6b250YWwsITEsQyxmLGMpO0ImJihwLmhvcml6b250YWxbTF09QiksSSgpLFduKGcpJiZ5JiZ4JiYocC52ZXJ0aWNhbD1PbChkLGUscixpLHMsUCx2LE0sTCxBLG0sQ2wudmVydGljYWwsITEsQyxmLGMpKX19dmFyIE49dm9pZCAwLGo9ITE7aWYoYS5pY29uJiZhLmljb24ubmFtZSl7dmFyIFU9blthLmljb24ubmFtZV07VSYmKE49ZnVuY3Rpb24odCxlLHIpe3ZhciBuPVVsKHIpLGk9bi5ob3Jpem9udGFsQWxpZ24sYT1uLnZlcnRpY2FsQWxpZ24sbz1lWzBdLHM9ZVsxXSxsPW8tdC5kaXNwbGF5U2l6ZVswXSppLGM9bCt0LmRpc3BsYXlTaXplWzBdLHU9cy10LmRpc3BsYXlTaXplWzFdKmE7cmV0dXJue2ltYWdlOnQsdG9wOnUsYm90dG9tOnUrdC5kaXNwbGF5U2l6ZVsxXSxsZWZ0OmwscmlnaHQ6Y319KGlbYS5pY29uLm5hbWVdLGwuZ2V0KCJpY29uLW9mZnNldCIpLmV2YWx1YXRlKGEse30sbyksbC5nZXQoImljb24tYW5jaG9yIikuZXZhbHVhdGUoYSx7fSxvKSksaj1VLnNkZix2b2lkIDA9PT10LnNkZkljb25zP3Quc2RmSWNvbnM9VS5zZGY6dC5zZGZJY29ucyE9PVUuc2RmJiZfKCJTdHlsZSBzaGVldCB3YXJuaW5nOiBDYW5ub3QgbWl4IFNERiBhbmQgbm9uLVNERiBpY29ucyBpbiBvbmUgYnVmZmVyIiksKFUucGl4ZWxSYXRpbyE9PXQucGl4ZWxSYXRpb3x8MCE9PWwuZ2V0KCJpY29uLXJvdGF0ZSIpLmNvbnN0YW50T3IoMSkpJiYodC5pY29uc05lZWRMaW5lYXI9ITApKX12YXIgVj12YyhwLmhvcml6b250YWwpfHxwLnZlcnRpY2FsO3QuaWNvbnNJblRleHQ9ISFWJiZWLmljb25zSW5UZXh0LChWfHxOKSYmZnVuY3Rpb24odCxlLHIsbixpLGEsbyxzLGwsYyx1KXt2YXIgZj1hLnRleHRNYXhTaXplLmV2YWx1YXRlKGUse30pO3ZvaWQgMD09PWYmJihmPW8pO3ZhciBoLHA9dC5sYXllcnNbMF0ubGF5b3V0LGQ9cC5nZXQoImljb24tb2Zmc2V0IikuZXZhbHVhdGUoZSx7fSx1KSxtPXZjKHIuaG9yaXpvbnRhbCksZz1vLzI0LHY9dC50aWxlUGl4ZWxSYXRpbypnLHk9dC50aWxlUGl4ZWxSYXRpbypmLzI0LHg9dC50aWxlUGl4ZWxSYXRpbypzLGI9dC50aWxlUGl4ZWxSYXRpbypwLmdldCgic3ltYm9sLXNwYWNpbmciKSx3PXAuZ2V0KCJ0ZXh0LXBhZGRpbmciKSp0LnRpbGVQaXhlbFJhdGlvLFQ9cC5nZXQoImljb24tcGFkZGluZyIpKnQudGlsZVBpeGVsUmF0aW8saz1wLmdldCgidGV4dC1tYXgtYW5nbGUiKS8xODAqTWF0aC5QSSxBPSJtYXAiPT09cC5nZXQoInRleHQtcm90YXRpb24tYWxpZ25tZW50IikmJiJwb2ludCIhPT1wLmdldCgic3ltYm9sLXBsYWNlbWVudCIpLE09Im1hcCI9PT1wLmdldCgiaWNvbi1yb3RhdGlvbi1hbGlnbm1lbnQiKSYmInBvaW50IiE9PXAuZ2V0KCJzeW1ib2wtcGxhY2VtZW50IiksUz1wLmdldCgic3ltYm9sLXBsYWNlbWVudCIpLEU9Yi8yLEw9cC5nZXQoImljb24tdGV4dC1maXQiKTtuJiYibm9uZSIhPT1MJiYodC5hbGxvd1ZlcnRpY2FsUGxhY2VtZW50JiZyLnZlcnRpY2FsJiYoaD1IbChuLHIudmVydGljYWwsTCxwLmdldCgiaWNvbi10ZXh0LWZpdC1wYWRkaW5nIiksZCxnKSksbSYmKG49SGwobixtLEwscC5nZXQoImljb24tdGV4dC1maXQtcGFkZGluZyIpLGQsZykpKTt2YXIgQz1mdW5jdGlvbihzLGYpe2YueDwwfHxmLng+PTgxOTJ8fGYueTwwfHxmLnk+PTgxOTJ8fGZ1bmN0aW9uKHQsZSxyLG4saSxhLG8scyxsLGMsdSxmLGgscCxkLG0sZyx2LHkseCxiLHcsVCxrLEEpe3ZhciBNLFMsRSxMLEMsUD10LmFkZFRvTGluZVZlcnRleEFycmF5KGUsciksST0wLE89MCx6PTAsRD0wLFI9LTEsRj0tMSxCPXt9LE49eWEoIiIpLGo9MCxVPTA7dm9pZCAwPT09cy5fdW5ldmFsdWF0ZWRMYXlvdXQuZ2V0VmFsdWUoInRleHQtcmFkaWFsLW9mZnNldCIpPyhNPXMubGF5b3V0LmdldCgidGV4dC1vZmZzZXQiKS5ldmFsdWF0ZShiLHt9LGspLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIDI0KnR9KSksaj1NWzBdLFU9TVsxXSk6KGo9MjQqcy5sYXlvdXQuZ2V0KCJ0ZXh0LXJhZGlhbC1vZmZzZXQiKS5ldmFsdWF0ZShiLHt9LGspLFU9cGMpO2lmKHQuYWxsb3dWZXJ0aWNhbFBsYWNlbWVudCYmbi52ZXJ0aWNhbCl7dmFyIFY9cy5sYXlvdXQuZ2V0KCJ0ZXh0LXJvdGF0ZSIpLmV2YWx1YXRlKGIse30saykrOTAsSD1uLnZlcnRpY2FsO0w9bmV3IHNjKGwsZSxjLHUsZixILGgscCxkLFYpLG8mJihDPW5ldyBzYyhsLGUsYyx1LGYsbyxnLHYsZCxWKSl9aWYoaSl7dmFyIHE9cy5sYXlvdXQuZ2V0KCJpY29uLXJvdGF0ZSIpLmV2YWx1YXRlKGIse30pLEc9Im5vbmUiIT09cy5sYXlvdXQuZ2V0KCJpY29uLXRleHQtZml0IiksWT1yYyhpLHEsVCxHKSxXPW8/cmMobyxxLFQsRyk6dm9pZCAwO0U9bmV3IHNjKGwsZSxjLHUsZixpLGcsdiwhMSxxKSxJPTQqWS5sZW5ndGg7dmFyIFg9dC5pY29uU2l6ZURhdGEsWj1udWxsOyJzb3VyY2UiPT09WC5raW5kPyhaPVsxMjgqcy5sYXlvdXQuZ2V0KCJpY29uLXNpemUiKS5ldmFsdWF0ZShiLHt9KV0pWzBdPjMyNjQwJiZfKHQubGF5ZXJJZHNbMF0rJzogVmFsdWUgZm9yICJpY29uLXNpemUiIGlzID49IDI1NS4gUmVkdWNlIHlvdXIgImljb24tc2l6ZSIuJyk6ImNvbXBvc2l0ZSI9PT1YLmtpbmQmJigoWj1bMTI4KncuY29tcG9zaXRlSWNvblNpemVzWzBdLmV2YWx1YXRlKGIse30sayksMTI4KncuY29tcG9zaXRlSWNvblNpemVzWzFdLmV2YWx1YXRlKGIse30sayldKVswXT4zMjY0MHx8WlsxXT4zMjY0MCkmJl8odC5sYXllcklkc1swXSsnOiBWYWx1ZSBmb3IgImljb24tc2l6ZSIgaXMgPj0gMjU1LiBSZWR1Y2UgeW91ciAiaWNvbi1zaXplIi4nKSx0LmFkZFN5bWJvbHModC5pY29uLFksWix4LHksYiwhMSxlLFAubGluZVN0YXJ0SW5kZXgsUC5saW5lTGVuZ3RoLC0xLGspLFI9dC5pY29uLnBsYWNlZFN5bWJvbEFycmF5Lmxlbmd0aC0xLFcmJihPPTQqVy5sZW5ndGgsdC5hZGRTeW1ib2xzKHQuaWNvbixXLFoseCx5LGIsQ2wudmVydGljYWwsZSxQLmxpbmVTdGFydEluZGV4LFAubGluZUxlbmd0aCwtMSxrKSxGPXQuaWNvbi5wbGFjZWRTeW1ib2xBcnJheS5sZW5ndGgtMSl9Zm9yKHZhciBKIGluIG4uaG9yaXpvbnRhbCl7dmFyIEs9bi5ob3Jpem9udGFsW0pdO2lmKCFTKXtOPXlhKEsudGV4dCk7dmFyIFE9cy5sYXlvdXQuZ2V0KCJ0ZXh0LXJvdGF0ZSIpLmV2YWx1YXRlKGIse30sayk7Uz1uZXcgc2MobCxlLGMsdSxmLEssaCxwLGQsUSl9dmFyICQ9MT09PUsucG9zaXRpb25lZExpbmVzLmxlbmd0aDtpZih6Kz1nYyh0LGUsSyxhLHMsZCxiLG0sUCxuLnZlcnRpY2FsP0NsLmhvcml6b250YWw6Q2wuaG9yaXpvbnRhbE9ubHksJD9PYmplY3Qua2V5cyhuLmhvcml6b250YWwpOltKXSxCLFIsdyxrKSwkKWJyZWFrfW4udmVydGljYWwmJihEKz1nYyh0LGUsbi52ZXJ0aWNhbCxhLHMsZCxiLG0sUCxDbC52ZXJ0aWNhbCxbInZlcnRpY2FsIl0sQixGLHcsaykpO3ZhciB0dD1TP1MuYm94U3RhcnRJbmRleDp0LmNvbGxpc2lvbkJveEFycmF5Lmxlbmd0aCxldD1TP1MuYm94RW5kSW5kZXg6dC5jb2xsaXNpb25Cb3hBcnJheS5sZW5ndGgscnQ9TD9MLmJveFN0YXJ0SW5kZXg6dC5jb2xsaXNpb25Cb3hBcnJheS5sZW5ndGgsbnQ9TD9MLmJveEVuZEluZGV4OnQuY29sbGlzaW9uQm94QXJyYXkubGVuZ3RoLGl0PUU/RS5ib3hTdGFydEluZGV4OnQuY29sbGlzaW9uQm94QXJyYXkubGVuZ3RoLGF0PUU/RS5ib3hFbmRJbmRleDp0LmNvbGxpc2lvbkJveEFycmF5Lmxlbmd0aCxvdD1DP0MuYm94U3RhcnRJbmRleDp0LmNvbGxpc2lvbkJveEFycmF5Lmxlbmd0aCxzdD1DP0MuYm94RW5kSW5kZXg6dC5jb2xsaXNpb25Cb3hBcnJheS5sZW5ndGgsbHQ9LTEsY3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCYmdC5jaXJjbGVEaWFtZXRlcj9NYXRoLm1heCh0LmNpcmNsZURpYW1ldGVyLGUpOmV9O2x0PWN0KFMsbHQpLGx0PWN0KEwsbHQpLGx0PWN0KEUsbHQpO3ZhciB1dD0obHQ9Y3QoQyxsdCkpPi0xPzE6MDt1dCYmKGx0Kj1BLzI0KTt0LmdseXBoT2Zmc2V0QXJyYXkubGVuZ3RoPj1NYy5NQVhfR0xZUEhTJiZfKCJUb28gbWFueSBnbHlwaHMgYmVpbmcgcmVuZGVyZWQgaW4gYSB0aWxlLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL21hcGJveC9tYXBib3gtZ2wtanMvaXNzdWVzLzI5MDciKTt2b2lkIDAhPT1iLnNvcnRLZXkmJnQuYWRkVG9Tb3J0S2V5UmFuZ2VzKHQuc3ltYm9sSW5zdGFuY2VzLmxlbmd0aCxiLnNvcnRLZXkpO3Quc3ltYm9sSW5zdGFuY2VzLmVtcGxhY2VCYWNrKGUueCxlLnksQi5yaWdodD49MD9CLnJpZ2h0Oi0xLEIuY2VudGVyPj0wP0IuY2VudGVyOi0xLEIubGVmdD49MD9CLmxlZnQ6LTEsQi52ZXJ0aWNhbHx8LTEsUixGLE4sdHQsZXQscnQsbnQsaXQsYXQsb3Qsc3QsYyx6LEQsSSxPLHV0LDAsaCxqLFUsbHQpfSh0LGYscyxyLG4saSxoLHQubGF5ZXJzWzBdLHQuY29sbGlzaW9uQm94QXJyYXksZS5pbmRleCxlLnNvdXJjZUxheWVySW5kZXgsdC5pbmRleCx2LHcsQSxsLHgsVCxNLGQsZSxhLGMsdSxvKX07aWYoImxpbmUiPT09Uylmb3IodmFyIFA9MCxJPWVjKGUuZ2VvbWV0cnksMCwwLDgxOTIsODE5Mik7UDxJLmxlbmd0aDtQKz0xKWZvcih2YXIgTz1JW1BdLHo9dGMoTyxiLGssci52ZXJ0aWNhbHx8bSxuLDI0LHksdC5vdmVyc2NhbGluZyw4MTkyKSxEPTAsUj16O0Q8Ui5sZW5ndGg7RCs9MSl7dmFyIEY9UltEXSxCPW07QiYmeWModCxCLnRleHQsRSxGKXx8QyhPLEYpfWVsc2UgaWYoImxpbmUtY2VudGVyIj09PVMpZm9yKHZhciBOPTAsaj1lLmdlb21ldHJ5O048ai5sZW5ndGg7Tis9MSl7dmFyIFU9altOXTtpZihVLmxlbmd0aD4xKXt2YXIgVj0kbChVLGssci52ZXJ0aWNhbHx8bSxuLDI0LHkpO1YmJkMoVSxWKX19ZWxzZSBpZigiUG9seWdvbiI9PT1lLnR5cGUpZm9yKHZhciBIPTAscT1ocyhlLmdlb21ldHJ5LDApO0g8cS5sZW5ndGg7SCs9MSl7dmFyIEc9cVtIXSxZPXVjKEcsMTYpO0MoR1swXSxuZXcgcWwoWS54LFkueSwwKSl9ZWxzZSBpZigiTGluZVN0cmluZyI9PT1lLnR5cGUpZm9yKHZhciBXPTAsWD1lLmdlb21ldHJ5O1c8WC5sZW5ndGg7Vys9MSl7dmFyIFo9WFtXXTtDKFosbmV3IHFsKFpbMF0ueCxaWzBdLnksMCkpfWVsc2UgaWYoIlBvaW50Ij09PWUudHlwZSlmb3IodmFyIEo9MCxLPWUuZ2VvbWV0cnk7SjxLLmxlbmd0aDtKKz0xKWZvcih2YXIgUT1LW0pdLCQ9MCx0dD1ROyQ8dHQubGVuZ3RoOyQrPTEpe3ZhciBldD10dFskXTtDKFtldF0sbmV3IHFsKGV0LngsZXQueSwwKSl9fSh0LGEscCxOLG4sdSxmLGgsbSxqLG8pfSxUPTAsaz10LmZlYXR1cmVzO1Q8ay5sZW5ndGg7VCs9MSl3KCk7YSYmdC5nZW5lcmF0ZUNvbGxpc2lvbkRlYnVnQnVmZmVycygpfSx0LnBlcnNwZWN0aXZlPWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGEsbz0xL01hdGgudGFuKGUvMik7cmV0dXJuIHRbMF09by9yLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09MCx0WzVdPW8sdFs2XT0wLHRbN109MCx0WzhdPTAsdFs5XT0wLHRbMTFdPS0xLHRbMTJdPTAsdFsxM109MCx0WzE1XT0wLG51bGwhPWkmJmkhPT0xLzA/KGE9MS8obi1pKSx0WzEwXT0oaStuKSphLHRbMTRdPTIqaSpuKmEpOih0WzEwXT0tMSx0WzE0XT0tMipuKSx0fSx0LnBpY2s9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9e30sbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgaT1lW25dO2kgaW4gdCYmKHJbaV09dFtpXSl9cmV0dXJuIHJ9LHQucGx1Z2luPWhpLHQucG9seWdvbkludGVyc2VjdHNQb2x5Z29uPVphLHQucG9zdE1hcExvYWRFdmVudD1pdCx0LnBvc3RUdXJuc3RpbGVFdmVudD1ydCx0LnBvdHBhY2s9TWwsdC5yZWZQcm9wZXJ0aWVzPVsidHlwZSIsInNvdXJjZSIsInNvdXJjZS1sYXllciIsIm1pbnpvb20iLCJtYXh6b29tIiwiZmlsdGVyIiwibGF5b3V0Il0sdC5yZWdpc3Rlcj1Obix0LnJlZ2lzdGVyRm9yUGx1Z2luU3RhdGVDaGFuZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIHQoe3BsdWdpblN0YXR1czphaSxwbHVnaW5VUkw6b2l9KSxjaS5vbigicGx1Z2luU3RhdGVDaGFuZ2UiLHQpLHR9LHQucm90YXRlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1lWzBdLGk9ZVsxXSxhPWVbMl0sbz1lWzNdLHM9TWF0aC5zaW4ociksbD1NYXRoLmNvcyhyKTtyZXR1cm4gdFswXT1uKmwrYSpzLHRbMV09aSpsK28qcyx0WzJdPW4qLXMrYSpsLHRbM109aSotcytvKmwsdH0sdC5yb3RhdGVYPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1NYXRoLnNpbihyKSxpPU1hdGguY29zKHIpLGE9ZVs0XSxvPWVbNV0scz1lWzZdLGw9ZVs3XSxjPWVbOF0sdT1lWzldLGY9ZVsxMF0saD1lWzExXTtyZXR1cm4gZSE9PXQmJih0WzBdPWVbMF0sdFsxXT1lWzFdLHRbMl09ZVsyXSx0WzNdPWVbM10sdFsxMl09ZVsxMl0sdFsxM109ZVsxM10sdFsxNF09ZVsxNF0sdFsxNV09ZVsxNV0pLHRbNF09YSppK2Mqbix0WzVdPW8qaSt1Km4sdFs2XT1zKmkrZipuLHRbN109bCppK2gqbix0WzhdPWMqaS1hKm4sdFs5XT11KmktbypuLHRbMTBdPWYqaS1zKm4sdFsxMV09aCppLWwqbix0fSx0LnJvdGF0ZVo9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPU1hdGguc2luKHIpLGk9TWF0aC5jb3MociksYT1lWzBdLG89ZVsxXSxzPWVbMl0sbD1lWzNdLGM9ZVs0XSx1PWVbNV0sZj1lWzZdLGg9ZVs3XTtyZXR1cm4gZSE9PXQmJih0WzhdPWVbOF0sdFs5XT1lWzldLHRbMTBdPWVbMTBdLHRbMTFdPWVbMTFdLHRbMTJdPWVbMTJdLHRbMTNdPWVbMTNdLHRbMTRdPWVbMTRdLHRbMTVdPWVbMTVdKSx0WzBdPWEqaStjKm4sdFsxXT1vKmkrdSpuLHRbMl09cyppK2Yqbix0WzNdPWwqaStoKm4sdFs0XT1jKmktYSpuLHRbNV09dSppLW8qbix0WzZdPWYqaS1zKm4sdFs3XT1oKmktbCpuLHR9LHQuc2NhbGU9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXJbMF0saT1yWzFdLGE9clsyXTtyZXR1cm4gdFswXT1lWzBdKm4sdFsxXT1lWzFdKm4sdFsyXT1lWzJdKm4sdFszXT1lWzNdKm4sdFs0XT1lWzRdKmksdFs1XT1lWzVdKmksdFs2XT1lWzZdKmksdFs3XT1lWzddKmksdFs4XT1lWzhdKmEsdFs5XT1lWzldKmEsdFsxMF09ZVsxMF0qYSx0WzExXT1lWzExXSphLHRbMTJdPWVbMTJdLHRbMTNdPWVbMTNdLHRbMTRdPWVbMTRdLHRbMTVdPWVbMTVdLHR9LHQuc2NhbGUkMT1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRbMF09ZVswXSpyLHRbMV09ZVsxXSpyLHRbMl09ZVsyXSpyLHRbM109ZVszXSpyLHR9LHQuc2NhbGUkMj1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRbMF09ZVswXSpyLHRbMV09ZVsxXSpyLHRbMl09ZVsyXSpyLHR9LHQuc2V0Q2FjaGVMaW1pdHM9ZnVuY3Rpb24odCxlKXthdD10LG90PWV9LHQuc2V0UlRMVGV4dFBsdWdpbj1mdW5jdGlvbih0LGUscil7aWYodm9pZCAwPT09ciYmKHI9ITEpLGFpPT09dGl8fGFpPT09ZWl8fGFpPT09cmkpdGhyb3cgbmV3IEVycm9yKCJzZXRSVExUZXh0UGx1Z2luIGNhbm5vdCBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMuIik7b2k9Ui5yZXNvbHZlVVJMKHQpLGFpPXRpLGlpPWUsbGkoKSxyfHxmaSgpfSx0LnNwaGVyaWNhbFRvQ2FydGVzaWFuPWZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0scj10WzFdLG49dFsyXTtyZXR1cm4gcis9OTAscio9TWF0aC5QSS8xODAsbio9TWF0aC5QSS8xODAse3g6ZSpNYXRoLmNvcyhyKSpNYXRoLnNpbihuKSx5OmUqTWF0aC5zaW4ocikqTWF0aC5zaW4obiksejplKk1hdGguY29zKG4pfX0sdC5zcXJMZW49Ym8sdC5zdHlsZVNwZWM9THQsdC5zdWI9eW8sdC5zeW1ib2xTaXplPVhsLHQudHJhbnNmb3JtTWF0Mz1mdW5jdGlvbih0LGUscil7dmFyIG49ZVswXSxpPWVbMV0sYT1lWzJdO3JldHVybiB0WzBdPW4qclswXStpKnJbM10rYSpyWzZdLHRbMV09bipyWzFdK2kqcls0XSthKnJbN10sdFsyXT1uKnJbMl0raSpyWzVdK2Eqcls4XSx0fSx0LnRyYW5zZm9ybU1hdDQ9eG8sdC50cmFuc2xhdGU9ZnVuY3Rpb24odCxlLHIpe3ZhciBuLGksYSxvLHMsbCxjLHUsZixoLHAsZCxtPXJbMF0sZz1yWzFdLHY9clsyXTtyZXR1cm4gZT09PXQ/KHRbMTJdPWVbMF0qbStlWzRdKmcrZVs4XSp2K2VbMTJdLHRbMTNdPWVbMV0qbStlWzVdKmcrZVs5XSp2K2VbMTNdLHRbMTRdPWVbMl0qbStlWzZdKmcrZVsxMF0qditlWzE0XSx0WzE1XT1lWzNdKm0rZVs3XSpnK2VbMTFdKnYrZVsxNV0pOihuPWVbMF0saT1lWzFdLGE9ZVsyXSxvPWVbM10scz1lWzRdLGw9ZVs1XSxjPWVbNl0sdT1lWzddLGY9ZVs4XSxoPWVbOV0scD1lWzEwXSxkPWVbMTFdLHRbMF09bix0WzFdPWksdFsyXT1hLHRbM109byx0WzRdPXMsdFs1XT1sLHRbNl09Yyx0WzddPXUsdFs4XT1mLHRbOV09aCx0WzEwXT1wLHRbMTFdPWQsdFsxMl09biptK3MqZytmKnYrZVsxMl0sdFsxM109aSptK2wqZytoKnYrZVsxM10sdFsxNF09YSptK2MqZytwKnYrZVsxNF0sdFsxNV09byptK3UqZytkKnYrZVsxNV0pLHR9LHQudHJpZ2dlclBsdWdpbkNvbXBsZXRpb25FdmVudD1zaSx0LnVuaXF1ZUlkPWgsdC52YWxpZGF0ZUN1c3RvbVN0eWxlTGF5ZXI9ZnVuY3Rpb24odCl7dmFyIGU9W10scj10LmlkO3JldHVybiB2b2lkIDA9PT1yJiZlLnB1c2goe21lc3NhZ2U6ImxheWVycy4iK3IrJzogbWlzc2luZyByZXF1aXJlZCBwcm9wZXJ0eSAiaWQiJ30pLHZvaWQgMD09PXQucmVuZGVyJiZlLnB1c2goe21lc3NhZ2U6ImxheWVycy4iK3IrJzogbWlzc2luZyByZXF1aXJlZCBtZXRob2QgInJlbmRlciInfSksdC5yZW5kZXJpbmdNb2RlJiYiMmQiIT09dC5yZW5kZXJpbmdNb2RlJiYiM2QiIT09dC5yZW5kZXJpbmdNb2RlJiZlLnB1c2goe21lc3NhZ2U6ImxheWVycy4iK3IrJzogcHJvcGVydHkgInJlbmRlcmluZ01vZGUiIG11c3QgYmUgZWl0aGVyICIyZCIgb3IgIjNkIid9KSxlfSx0LnZhbGlkYXRlTGlnaHQ9Q24sdC52YWxpZGF0ZVN0eWxlPUxuLHQudmFsdWVzPWZ1bmN0aW9uKHQpe3ZhciBlPVtdO2Zvcih2YXIgciBpbiB0KWUucHVzaCh0W3JdKTtyZXR1cm4gZX0sdC52ZWN0b3JUaWxlPUxzLHQudmVyc2lvbj0iMS4xMC4xIix0Lndhcm5PbmNlPV8sdC53ZWJwU3VwcG9ydGVkPUIsdC53aW5kb3c9c2VsZix0LndyYXA9Y30pKSxuKDAsKGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUodCl7dmFyIHI9dHlwZW9mIHQ7aWYoIm51bWJlciI9PT1yfHwiYm9vbGVhbiI9PT1yfHwic3RyaW5nIj09PXJ8fG51bGw9PXQpcmV0dXJuIEpTT04uc3RyaW5naWZ5KHQpO2lmKEFycmF5LmlzQXJyYXkodCkpe2Zvcih2YXIgbj0iWyIsaT0wLGE9dDtpPGEubGVuZ3RoO2krPTEpe24rPWUoYVtpXSkrIiwifXJldHVybiBuKyJdIn1mb3IodmFyIG89T2JqZWN0LmtleXModCkuc29ydCgpLHM9InsiLGw9MDtsPG8ubGVuZ3RoO2wrKylzKz1KU09OLnN0cmluZ2lmeShvW2xdKSsiOiIrZSh0W29bbF1dKSsiLCI7cmV0dXJuIHMrIn0ifWZ1bmN0aW9uIHIocil7Zm9yKHZhciBuPSIiLGk9MCxhPXQucmVmUHJvcGVydGllcztpPGEubGVuZ3RoO2krPTEpe24rPSIvIitlKHJbYVtpXV0pfXJldHVybiBufXZhciBuPWZ1bmN0aW9uKHQpe3RoaXMua2V5Q2FjaGU9e30sdCYmdGhpcy5yZXBsYWNlKHQpfTtuLnByb3RvdHlwZS5yZXBsYWNlPWZ1bmN0aW9uKHQpe3RoaXMuX2xheWVyQ29uZmlncz17fSx0aGlzLl9sYXllcnM9e30sdGhpcy51cGRhdGUodCxbXSl9LG4ucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihlLG4pe2Zvcih2YXIgaT10aGlzLGE9MCxvPWU7YTxvLmxlbmd0aDthKz0xKXt2YXIgcz1vW2FdO3RoaXMuX2xheWVyQ29uZmlnc1tzLmlkXT1zO3ZhciBsPXRoaXMuX2xheWVyc1tzLmlkXT10LmNyZWF0ZVN0eWxlTGF5ZXIocyk7bC5fZmVhdHVyZUZpbHRlcj10LmZlYXR1cmVGaWx0ZXIobC5maWx0ZXIpLHRoaXMua2V5Q2FjaGVbcy5pZF0mJmRlbGV0ZSB0aGlzLmtleUNhY2hlW3MuaWRdfWZvcih2YXIgYz0wLHU9bjtjPHUubGVuZ3RoO2MrPTEpe3ZhciBmPXVbY107ZGVsZXRlIHRoaXMua2V5Q2FjaGVbZl0sZGVsZXRlIHRoaXMuX2xheWVyQ29uZmlnc1tmXSxkZWxldGUgdGhpcy5fbGF5ZXJzW2ZdfXRoaXMuZmFtaWxpZXNCeVNvdXJjZT17fTtmb3IodmFyIGg9MCxwPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXt9LGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIGE9ZSYmZVt0W2ldLmlkXXx8cih0W2ldKTtlJiYoZVt0W2ldLmlkXT1hKTt2YXIgbz1uW2FdO298fChvPW5bYV09W10pLG8ucHVzaCh0W2ldKX12YXIgcz1bXTtmb3IodmFyIGwgaW4gbilzLnB1c2gobltsXSk7cmV0dXJuIHN9KHQudmFsdWVzKHRoaXMuX2xheWVyQ29uZmlncyksdGhpcy5rZXlDYWNoZSk7aDxwLmxlbmd0aDtoKz0xKXt2YXIgZD1wW2hdLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGkuX2xheWVyc1t0LmlkXX0pKSxtPWRbMF07aWYoIm5vbmUiIT09bS52aXNpYmlsaXR5KXt2YXIgZz1tLnNvdXJjZXx8IiIsdj10aGlzLmZhbWlsaWVzQnlTb3VyY2VbZ107dnx8KHY9dGhpcy5mYW1pbGllc0J5U291cmNlW2ddPXt9KTt2YXIgeT1tLnNvdXJjZUxheWVyfHwiX2dlb2pzb25UaWxlTGF5ZXIiLHg9dlt5XTt4fHwoeD12W3ldPVtdKSx4LnB1c2goZCl9fX07dmFyIGk9ZnVuY3Rpb24oZSl7dmFyIHI9e30sbj1bXTtmb3IodmFyIGkgaW4gZSl7dmFyIGE9ZVtpXSxvPXJbaV09e307Zm9yKHZhciBzIGluIGEpe3ZhciBsPWFbK3NdO2lmKGwmJjAhPT1sLmJpdG1hcC53aWR0aCYmMCE9PWwuYml0bWFwLmhlaWdodCl7dmFyIGM9e3g6MCx5OjAsdzpsLmJpdG1hcC53aWR0aCsyLGg6bC5iaXRtYXAuaGVpZ2h0KzJ9O24ucHVzaChjKSxvW3NdPXtyZWN0OmMsbWV0cmljczpsLm1ldHJpY3N9fX19dmFyIHU9dC5wb3RwYWNrKG4pLGY9dS53LGg9dS5oLHA9bmV3IHQuQWxwaGFJbWFnZSh7d2lkdGg6Znx8MSxoZWlnaHQ6aHx8MX0pO2Zvcih2YXIgZCBpbiBlKXt2YXIgbT1lW2RdO2Zvcih2YXIgZyBpbiBtKXt2YXIgdj1tWytnXTtpZih2JiYwIT09di5iaXRtYXAud2lkdGgmJjAhPT12LmJpdG1hcC5oZWlnaHQpe3ZhciB5PXJbZF1bZ10ucmVjdDt0LkFscGhhSW1hZ2UuY29weSh2LmJpdG1hcCxwLHt4OjAseTowfSx7eDp5LngrMSx5OnkueSsxfSx2LmJpdG1hcCl9fX10aGlzLmltYWdlPXAsdGhpcy5wb3NpdGlvbnM9cn07dC5yZWdpc3RlcigiR2x5cGhBdGxhcyIsaSk7dmFyIGE9ZnVuY3Rpb24oZSl7dGhpcy50aWxlSUQ9bmV3IHQuT3ZlcnNjYWxlZFRpbGVJRChlLnRpbGVJRC5vdmVyc2NhbGVkWixlLnRpbGVJRC53cmFwLGUudGlsZUlELmNhbm9uaWNhbC56LGUudGlsZUlELmNhbm9uaWNhbC54LGUudGlsZUlELmNhbm9uaWNhbC55KSx0aGlzLnVpZD1lLnVpZCx0aGlzLnpvb209ZS56b29tLHRoaXMucGl4ZWxSYXRpbz1lLnBpeGVsUmF0aW8sdGhpcy50aWxlU2l6ZT1lLnRpbGVTaXplLHRoaXMuc291cmNlPWUuc291cmNlLHRoaXMub3ZlcnNjYWxpbmc9dGhpcy50aWxlSUQub3ZlcnNjYWxlRmFjdG9yKCksdGhpcy5zaG93Q29sbGlzaW9uQm94ZXM9ZS5zaG93Q29sbGlzaW9uQm94ZXMsdGhpcy5jb2xsZWN0UmVzb3VyY2VUaW1pbmc9ISFlLmNvbGxlY3RSZXNvdXJjZVRpbWluZyx0aGlzLnJldHVybkRlcGVuZGVuY2llcz0hIWUucmV0dXJuRGVwZW5kZW5jaWVzLHRoaXMucHJvbW90ZUlkPWUucHJvbW90ZUlkfTtmdW5jdGlvbiBvKGUscixuKXtmb3IodmFyIGk9bmV3IHQuRXZhbHVhdGlvblBhcmFtZXRlcnMociksYT0wLG89ZTthPG8ubGVuZ3RoO2ErPTEpe29bYV0ucmVjYWxjdWxhdGUoaSxuKX19ZnVuY3Rpb24gcyhlLHIpe3ZhciBuPXQuZ2V0QXJyYXlCdWZmZXIoZS5yZXF1ZXN0LChmdW5jdGlvbihlLG4saSxhKXtlP3IoZSk6biYmcihudWxsLHt2ZWN0b3JUaWxlOm5ldyB0LnZlY3RvclRpbGUuVmVjdG9yVGlsZShuZXcgdC5wYmYobikpLHJhd0RhdGE6bixjYWNoZUNvbnRyb2w6aSxleHBpcmVzOmF9KX0pKTtyZXR1cm4gZnVuY3Rpb24oKXtuLmNhbmNlbCgpLHIoKX19YS5wcm90b3R5cGUucGFyc2U9ZnVuY3Rpb24oZSxyLG4sYSxzKXt2YXIgbD10aGlzO3RoaXMuc3RhdHVzPSJwYXJzaW5nIix0aGlzLmRhdGE9ZSx0aGlzLmNvbGxpc2lvbkJveEFycmF5PW5ldyB0LkNvbGxpc2lvbkJveEFycmF5O3ZhciBjPW5ldyB0LkRpY3Rpb25hcnlDb2RlcihPYmplY3Qua2V5cyhlLmxheWVycykuc29ydCgpKSx1PW5ldyB0LkZlYXR1cmVJbmRleCh0aGlzLnRpbGVJRCx0aGlzLnByb21vdGVJZCk7dS5idWNrZXRMYXllcklEcz1bXTt2YXIgZixoLHAsZCxtPXt9LGc9e2ZlYXR1cmVJbmRleDp1LGljb25EZXBlbmRlbmNpZXM6e30scGF0dGVybkRlcGVuZGVuY2llczp7fSxnbHlwaERlcGVuZGVuY2llczp7fSxhdmFpbGFibGVJbWFnZXM6bn0sdj1yLmZhbWlsaWVzQnlTb3VyY2VbdGhpcy5zb3VyY2VdO2Zvcih2YXIgeSBpbiB2KXt2YXIgeD1lLmxheWVyc1t5XTtpZih4KXsxPT09eC52ZXJzaW9uJiZ0Lndhcm5PbmNlKCdWZWN0b3IgdGlsZSBzb3VyY2UgIicrdGhpcy5zb3VyY2UrJyIgbGF5ZXIgIicreSsnIiBkb2VzIG5vdCB1c2UgdmVjdG9yIHRpbGUgc3BlYyB2MiBhbmQgdGhlcmVmb3JlIG1heSBoYXZlIHNvbWUgcmVuZGVyaW5nIGVycm9ycy4nKTtmb3IodmFyIGI9Yy5lbmNvZGUoeSksXz1bXSx3PTA7dzx4Lmxlbmd0aDt3Kyspe3ZhciBUPXguZmVhdHVyZSh3KSxrPXUuZ2V0SWQoVCx5KTtfLnB1c2goe2ZlYXR1cmU6VCxpZDprLGluZGV4Oncsc291cmNlTGF5ZXJJbmRleDpifSl9Zm9yKHZhciBBPTAsTT12W3ldO0E8TS5sZW5ndGg7QSs9MSl7dmFyIFM9TVtBXSxFPVNbMF07aWYoIShFLm1pbnpvb20mJnRoaXMuem9vbTxNYXRoLmZsb29yKEUubWluem9vbSkpKWlmKCEoRS5tYXh6b29tJiZ0aGlzLnpvb20+PUUubWF4em9vbSkpaWYoIm5vbmUiIT09RS52aXNpYmlsaXR5KW8oUyx0aGlzLnpvb20sbiksKG1bRS5pZF09RS5jcmVhdGVCdWNrZXQoe2luZGV4OnUuYnVja2V0TGF5ZXJJRHMubGVuZ3RoLGxheWVyczpTLHpvb206dGhpcy56b29tLHBpeGVsUmF0aW86dGhpcy5waXhlbFJhdGlvLG92ZXJzY2FsaW5nOnRoaXMub3ZlcnNjYWxpbmcsY29sbGlzaW9uQm94QXJyYXk6dGhpcy5jb2xsaXNpb25Cb3hBcnJheSxzb3VyY2VMYXllckluZGV4OmIsc291cmNlSUQ6dGhpcy5zb3VyY2V9KSkucG9wdWxhdGUoXyxnLHRoaXMudGlsZUlELmNhbm9uaWNhbCksdS5idWNrZXRMYXllcklEcy5wdXNoKFMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZH0pKSl9fX12YXIgTD10Lm1hcE9iamVjdChnLmdseXBoRGVwZW5kZW5jaWVzLChmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmtleXModCkubWFwKE51bWJlcil9KSk7T2JqZWN0LmtleXMoTCkubGVuZ3RoP2Euc2VuZCgiZ2V0R2x5cGhzIix7dWlkOnRoaXMudWlkLHN0YWNrczpMfSwoZnVuY3Rpb24odCxlKXtmfHwoZj10LGg9ZSxJLmNhbGwobCkpfSkpOmg9e307dmFyIEM9T2JqZWN0LmtleXMoZy5pY29uRGVwZW5kZW5jaWVzKTtDLmxlbmd0aD9hLnNlbmQoImdldEltYWdlcyIse2ljb25zOkMsc291cmNlOnRoaXMuc291cmNlLHRpbGVJRDp0aGlzLnRpbGVJRCx0eXBlOiJpY29ucyJ9LChmdW5jdGlvbih0LGUpe2Z8fChmPXQscD1lLEkuY2FsbChsKSl9KSk6cD17fTt2YXIgUD1PYmplY3Qua2V5cyhnLnBhdHRlcm5EZXBlbmRlbmNpZXMpO2Z1bmN0aW9uIEkoKXtpZihmKXJldHVybiBzKGYpO2lmKGgmJnAmJmQpe3ZhciBlPW5ldyBpKGgpLHI9bmV3IHQuSW1hZ2VBdGxhcyhwLGQpO2Zvcih2YXIgYSBpbiBtKXt2YXIgbD1tW2FdO2wgaW5zdGFuY2VvZiB0LlN5bWJvbEJ1Y2tldD8obyhsLmxheWVycyx0aGlzLnpvb20sbiksdC5wZXJmb3JtU3ltYm9sTGF5b3V0KGwsaCxlLnBvc2l0aW9ucyxwLHIuaWNvblBvc2l0aW9ucyx0aGlzLnNob3dDb2xsaXNpb25Cb3hlcyx0aGlzLnRpbGVJRC5jYW5vbmljYWwpKTpsLmhhc1BhdHRlcm4mJihsIGluc3RhbmNlb2YgdC5MaW5lQnVja2V0fHxsIGluc3RhbmNlb2YgdC5GaWxsQnVja2V0fHxsIGluc3RhbmNlb2YgdC5GaWxsRXh0cnVzaW9uQnVja2V0KSYmKG8obC5sYXllcnMsdGhpcy56b29tLG4pLGwuYWRkRmVhdHVyZXMoZyx0aGlzLnRpbGVJRC5jYW5vbmljYWwsci5wYXR0ZXJuUG9zaXRpb25zKSl9dGhpcy5zdGF0dXM9ImRvbmUiLHMobnVsbCx7YnVja2V0czp0LnZhbHVlcyhtKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiF0LmlzRW1wdHkoKX0pKSxmZWF0dXJlSW5kZXg6dSxjb2xsaXNpb25Cb3hBcnJheTp0aGlzLmNvbGxpc2lvbkJveEFycmF5LGdseXBoQXRsYXNJbWFnZTplLmltYWdlLGltYWdlQXRsYXM6cixnbHlwaE1hcDp0aGlzLnJldHVybkRlcGVuZGVuY2llcz9oOm51bGwsaWNvbk1hcDp0aGlzLnJldHVybkRlcGVuZGVuY2llcz9wOm51bGwsZ2x5cGhQb3NpdGlvbnM6dGhpcy5yZXR1cm5EZXBlbmRlbmNpZXM/ZS5wb3NpdGlvbnM6bnVsbH0pfX1QLmxlbmd0aD9hLnNlbmQoImdldEltYWdlcyIse2ljb25zOlAsc291cmNlOnRoaXMuc291cmNlLHRpbGVJRDp0aGlzLnRpbGVJRCx0eXBlOiJwYXR0ZXJucyJ9LChmdW5jdGlvbih0LGUpe2Z8fChmPXQsZD1lLEkuY2FsbChsKSl9KSk6ZD17fSxJLmNhbGwodGhpcyl9O3ZhciBsPWZ1bmN0aW9uKHQsZSxyLG4pe3RoaXMuYWN0b3I9dCx0aGlzLmxheWVySW5kZXg9ZSx0aGlzLmF2YWlsYWJsZUltYWdlcz1yLHRoaXMubG9hZFZlY3RvckRhdGE9bnx8cyx0aGlzLmxvYWRpbmc9e30sdGhpcy5sb2FkZWQ9e319O2wucHJvdG90eXBlLmxvYWRUaWxlPWZ1bmN0aW9uKGUscil7dmFyIG49dGhpcyxpPWUudWlkO3RoaXMubG9hZGluZ3x8KHRoaXMubG9hZGluZz17fSk7dmFyIG89ISEoZSYmZS5yZXF1ZXN0JiZlLnJlcXVlc3QuY29sbGVjdFJlc291cmNlVGltaW5nKSYmbmV3IHQuUmVxdWVzdFBlcmZvcm1hbmNlKGUucmVxdWVzdCkscz10aGlzLmxvYWRpbmdbaV09bmV3IGEoZSk7cy5hYm9ydD10aGlzLmxvYWRWZWN0b3JEYXRhKGUsKGZ1bmN0aW9uKGUsYSl7aWYoZGVsZXRlIG4ubG9hZGluZ1tpXSxlfHwhYSlyZXR1cm4gcy5zdGF0dXM9ImRvbmUiLG4ubG9hZGVkW2ldPXMscihlKTt2YXIgbD1hLnJhd0RhdGEsYz17fTthLmV4cGlyZXMmJihjLmV4cGlyZXM9YS5leHBpcmVzKSxhLmNhY2hlQ29udHJvbCYmKGMuY2FjaGVDb250cm9sPWEuY2FjaGVDb250cm9sKTt2YXIgdT17fTtpZihvKXt2YXIgZj1vLmZpbmlzaCgpO2YmJih1LnJlc291cmNlVGltaW5nPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZikpKX1zLnZlY3RvclRpbGU9YS52ZWN0b3JUaWxlLHMucGFyc2UoYS52ZWN0b3JUaWxlLG4ubGF5ZXJJbmRleCxuLmF2YWlsYWJsZUltYWdlcyxuLmFjdG9yLChmdW5jdGlvbihlLG4pe2lmKGV8fCFuKXJldHVybiByKGUpO3IobnVsbCx0LmV4dGVuZCh7cmF3VGlsZURhdGE6bC5zbGljZSgwKX0sbixjLHUpKX0pKSxuLmxvYWRlZD1uLmxvYWRlZHx8e30sbi5sb2FkZWRbaV09c30pKX0sbC5wcm90b3R5cGUucmVsb2FkVGlsZT1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMsbj10aGlzLmxvYWRlZCxpPXQudWlkLGE9dGhpcztpZihuJiZuW2ldKXt2YXIgbz1uW2ldO28uc2hvd0NvbGxpc2lvbkJveGVzPXQuc2hvd0NvbGxpc2lvbkJveGVzO3ZhciBzPWZ1bmN0aW9uKHQsbil7dmFyIGk9by5yZWxvYWRDYWxsYmFjaztpJiYoZGVsZXRlIG8ucmVsb2FkQ2FsbGJhY2ssby5wYXJzZShvLnZlY3RvclRpbGUsYS5sYXllckluZGV4LHIuYXZhaWxhYmxlSW1hZ2VzLGEuYWN0b3IsaSkpLGUodCxuKX07InBhcnNpbmciPT09by5zdGF0dXM/by5yZWxvYWRDYWxsYmFjaz1zOiJkb25lIj09PW8uc3RhdHVzJiYoby52ZWN0b3JUaWxlP28ucGFyc2Uoby52ZWN0b3JUaWxlLHRoaXMubGF5ZXJJbmRleCx0aGlzLmF2YWlsYWJsZUltYWdlcyx0aGlzLmFjdG9yLHMpOnMoKSl9fSxsLnByb3RvdHlwZS5hYm9ydFRpbGU9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmxvYWRpbmcsbj10LnVpZDtyJiZyW25dJiZyW25dLmFib3J0JiYocltuXS5hYm9ydCgpLGRlbGV0ZSByW25dKSxlKCl9LGwucHJvdG90eXBlLnJlbW92ZVRpbGU9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmxvYWRlZCxuPXQudWlkO3ImJnJbbl0mJmRlbGV0ZSByW25dLGUoKX07dmFyIGM9dC53aW5kb3cuSW1hZ2VCaXRtYXAsdT1mdW5jdGlvbigpe3RoaXMubG9hZGVkPXt9fTt1LnByb3RvdHlwZS5sb2FkVGlsZT1mdW5jdGlvbihlLHIpe3ZhciBuPWUudWlkLGk9ZS5lbmNvZGluZyxhPWUucmF3SW1hZ2VEYXRhLG89YyYmYSBpbnN0YW5jZW9mIGM/dGhpcy5nZXRJbWFnZURhdGEoYSk6YSxzPW5ldyB0LkRFTURhdGEobixvLGkpO3RoaXMubG9hZGVkPXRoaXMubG9hZGVkfHx7fSx0aGlzLmxvYWRlZFtuXT1zLHIobnVsbCxzKX0sdS5wcm90b3R5cGUuZ2V0SW1hZ2VEYXRhPWZ1bmN0aW9uKGUpe3RoaXMub2Zmc2NyZWVuQ2FudmFzJiZ0aGlzLm9mZnNjcmVlbkNhbnZhc0NvbnRleHR8fCh0aGlzLm9mZnNjcmVlbkNhbnZhcz1uZXcgT2Zmc2NyZWVuQ2FudmFzKGUud2lkdGgsZS5oZWlnaHQpLHRoaXMub2Zmc2NyZWVuQ2FudmFzQ29udGV4dD10aGlzLm9mZnNjcmVlbkNhbnZhcy5nZXRDb250ZXh0KCIyZCIpKSx0aGlzLm9mZnNjcmVlbkNhbnZhcy53aWR0aD1lLndpZHRoLHRoaXMub2Zmc2NyZWVuQ2FudmFzLmhlaWdodD1lLmhlaWdodCx0aGlzLm9mZnNjcmVlbkNhbnZhc0NvbnRleHQuZHJhd0ltYWdlKGUsMCwwLGUud2lkdGgsZS5oZWlnaHQpO3ZhciByPXRoaXMub2Zmc2NyZWVuQ2FudmFzQ29udGV4dC5nZXRJbWFnZURhdGEoLTEsLTEsZS53aWR0aCsyLGUuaGVpZ2h0KzIpO3JldHVybiB0aGlzLm9mZnNjcmVlbkNhbnZhc0NvbnRleHQuY2xlYXJSZWN0KDAsMCx0aGlzLm9mZnNjcmVlbkNhbnZhcy53aWR0aCx0aGlzLm9mZnNjcmVlbkNhbnZhcy5oZWlnaHQpLG5ldyB0LlJHQkFJbWFnZSh7d2lkdGg6ci53aWR0aCxoZWlnaHQ6ci5oZWlnaHR9LHIuZGF0YSl9LHUucHJvdG90eXBlLnJlbW92ZVRpbGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5sb2FkZWQscj10LnVpZDtlJiZlW3JdJiZkZWxldGUgZVtyXX07dmFyIGY9ZnVuY3Rpb24gdChlLHIpe3ZhciBuLGk9ZSYmZS50eXBlO2lmKCJGZWF0dXJlQ29sbGVjdGlvbiI9PT1pKWZvcihuPTA7bjxlLmZlYXR1cmVzLmxlbmd0aDtuKyspdChlLmZlYXR1cmVzW25dLHIpO2Vsc2UgaWYoIkdlb21ldHJ5Q29sbGVjdGlvbiI9PT1pKWZvcihuPTA7bjxlLmdlb21ldHJpZXMubGVuZ3RoO24rKyl0KGUuZ2VvbWV0cmllc1tuXSxyKTtlbHNlIGlmKCJGZWF0dXJlIj09PWkpdChlLmdlb21ldHJ5LHIpO2Vsc2UgaWYoIlBvbHlnb24iPT09aSloKGUuY29vcmRpbmF0ZXMscik7ZWxzZSBpZigiTXVsdGlQb2x5Z29uIj09PWkpZm9yKG49MDtuPGUuY29vcmRpbmF0ZXMubGVuZ3RoO24rKyloKGUuY29vcmRpbmF0ZXNbbl0scik7cmV0dXJuIGV9O2Z1bmN0aW9uIGgodCxlKXtpZigwIT09dC5sZW5ndGgpe3AodFswXSxlKTtmb3IodmFyIHI9MTtyPHQubGVuZ3RoO3IrKylwKHRbcl0sIWUpfX1mdW5jdGlvbiBwKHQsZSl7Zm9yKHZhciByPTAsbj0wLGk9dC5sZW5ndGgsYT1pLTE7bjxpO2E9bisrKXIrPSh0W25dWzBdLXRbYV1bMF0pKih0W2FdWzFdK3Rbbl1bMV0pO3I+PTAhPSEhZSYmdC5yZXZlcnNlKCl9dmFyIGQ9dC52ZWN0b3JUaWxlLlZlY3RvclRpbGVGZWF0dXJlLnByb3RvdHlwZS50b0dlb0pTT04sbT1mdW5jdGlvbihlKXt0aGlzLl9mZWF0dXJlPWUsdGhpcy5leHRlbnQ9dC5FWFRFTlQsdGhpcy50eXBlPWUudHlwZSx0aGlzLnByb3BlcnRpZXM9ZS50YWdzLCJpZCJpbiBlJiYhaXNOYU4oZS5pZCkmJih0aGlzLmlkPXBhcnNlSW50KGUuaWQsMTApKX07bS5wcm90b3R5cGUubG9hZEdlb21ldHJ5PWZ1bmN0aW9uKCl7aWYoMT09PXRoaXMuX2ZlYXR1cmUudHlwZSl7Zm9yKHZhciBlPVtdLHI9MCxuPXRoaXMuX2ZlYXR1cmUuZ2VvbWV0cnk7cjxuLmxlbmd0aDtyKz0xKXt2YXIgaT1uW3JdO2UucHVzaChbbmV3IHQuUG9pbnQkMShpWzBdLGlbMV0pXSl9cmV0dXJuIGV9Zm9yKHZhciBhPVtdLG89MCxzPXRoaXMuX2ZlYXR1cmUuZ2VvbWV0cnk7bzxzLmxlbmd0aDtvKz0xKXtmb3IodmFyIGw9W10sYz0wLHU9c1tvXTtjPHUubGVuZ3RoO2MrPTEpe3ZhciBmPXVbY107bC5wdXNoKG5ldyB0LlBvaW50JDEoZlswXSxmWzFdKSl9YS5wdXNoKGwpfXJldHVybiBhfSxtLnByb3RvdHlwZS50b0dlb0pTT049ZnVuY3Rpb24odCxlLHIpe3JldHVybiBkLmNhbGwodGhpcyx0LGUscil9O3ZhciBnPWZ1bmN0aW9uKGUpe3RoaXMubGF5ZXJzPXtfZ2VvanNvblRpbGVMYXllcjp0aGlzfSx0aGlzLm5hbWU9Il9nZW9qc29uVGlsZUxheWVyIix0aGlzLmV4dGVudD10LkVYVEVOVCx0aGlzLmxlbmd0aD1lLmxlbmd0aCx0aGlzLl9mZWF0dXJlcz1lfTtnLnByb3RvdHlwZS5mZWF0dXJlPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgbSh0aGlzLl9mZWF0dXJlc1t0XSl9O3ZhciB2PXQudmVjdG9yVGlsZS5WZWN0b3JUaWxlRmVhdHVyZSx5PXg7ZnVuY3Rpb24geCh0LGUpe3RoaXMub3B0aW9ucz1lfHx7fSx0aGlzLmZlYXR1cmVzPXQsdGhpcy5sZW5ndGg9dC5sZW5ndGh9ZnVuY3Rpb24gYih0LGUpe3RoaXMuaWQ9Im51bWJlciI9PXR5cGVvZiB0LmlkP3QuaWQ6dm9pZCAwLHRoaXMudHlwZT10LnR5cGUsdGhpcy5yYXdHZW9tZXRyeT0xPT09dC50eXBlP1t0Lmdlb21ldHJ5XTp0Lmdlb21ldHJ5LHRoaXMucHJvcGVydGllcz10LnRhZ3MsdGhpcy5leHRlbnQ9ZXx8NDA5Nn14LnByb3RvdHlwZS5mZWF0dXJlPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgYih0aGlzLmZlYXR1cmVzW3RdLHRoaXMub3B0aW9ucy5leHRlbnQpfSxiLnByb3RvdHlwZS5sb2FkR2VvbWV0cnk9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnJhd0dlb21ldHJ5O3RoaXMuZ2VvbWV0cnk9W107Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspe2Zvcih2YXIgbj1lW3JdLGk9W10sYT0wO2E8bi5sZW5ndGg7YSsrKWkucHVzaChuZXcgdC5Qb2ludCQxKG5bYV1bMF0sblthXVsxXSkpO3RoaXMuZ2VvbWV0cnkucHVzaChpKX1yZXR1cm4gdGhpcy5nZW9tZXRyeX0sYi5wcm90b3R5cGUuYmJveD1mdW5jdGlvbigpe3RoaXMuZ2VvbWV0cnl8fHRoaXMubG9hZEdlb21ldHJ5KCk7Zm9yKHZhciB0PXRoaXMuZ2VvbWV0cnksZT0xLzAscj0tMS8wLG49MS8wLGk9LTEvMCxhPTA7YTx0Lmxlbmd0aDthKyspZm9yKHZhciBvPXRbYV0scz0wO3M8by5sZW5ndGg7cysrKXt2YXIgbD1vW3NdO2U9TWF0aC5taW4oZSxsLngpLHI9TWF0aC5tYXgocixsLngpLG49TWF0aC5taW4obixsLnkpLGk9TWF0aC5tYXgoaSxsLnkpfXJldHVybltlLG4scixpXX0sYi5wcm90b3R5cGUudG9HZW9KU09OPXYucHJvdG90eXBlLnRvR2VvSlNPTjt2YXIgXz1BLHc9QSxUPWZ1bmN0aW9uKHQsZSl7ZT1lfHx7fTt2YXIgcj17fTtmb3IodmFyIG4gaW4gdClyW25dPW5ldyB5KHRbbl0uZmVhdHVyZXMsZSkscltuXS5uYW1lPW4scltuXS52ZXJzaW9uPWUudmVyc2lvbixyW25dLmV4dGVudD1lLmV4dGVudDtyZXR1cm4gQSh7bGF5ZXJzOnJ9KX0saz15O2Z1bmN0aW9uIEEoZSl7dmFyIHI9bmV3IHQucGJmO3JldHVybiBmdW5jdGlvbih0LGUpe2Zvcih2YXIgciBpbiB0LmxheWVycyllLndyaXRlTWVzc2FnZSgzLE0sdC5sYXllcnNbcl0pfShlLHIpLHIuZmluaXNoKCl9ZnVuY3Rpb24gTSh0LGUpe3ZhciByO2Uud3JpdGVWYXJpbnRGaWVsZCgxNSx0LnZlcnNpb258fDEpLGUud3JpdGVTdHJpbmdGaWVsZCgxLHQubmFtZXx8IiIpLGUud3JpdGVWYXJpbnRGaWVsZCg1LHQuZXh0ZW50fHw0MDk2KTt2YXIgbj17a2V5czpbXSx2YWx1ZXM6W10sa2V5Y2FjaGU6e30sdmFsdWVjYWNoZTp7fX07Zm9yKHI9MDtyPHQubGVuZ3RoO3IrKyluLmZlYXR1cmU9dC5mZWF0dXJlKHIpLGUud3JpdGVNZXNzYWdlKDIsUyxuKTt2YXIgaT1uLmtleXM7Zm9yKHI9MDtyPGkubGVuZ3RoO3IrKyllLndyaXRlU3RyaW5nRmllbGQoMyxpW3JdKTt2YXIgYT1uLnZhbHVlcztmb3Iocj0wO3I8YS5sZW5ndGg7cisrKWUud3JpdGVNZXNzYWdlKDQsSSxhW3JdKX1mdW5jdGlvbiBTKHQsZSl7dmFyIHI9dC5mZWF0dXJlO3ZvaWQgMCE9PXIuaWQmJmUud3JpdGVWYXJpbnRGaWVsZCgxLHIuaWQpLGUud3JpdGVNZXNzYWdlKDIsRSx0KSxlLndyaXRlVmFyaW50RmllbGQoMyxyLnR5cGUpLGUud3JpdGVNZXNzYWdlKDQsUCxyKX1mdW5jdGlvbiBFKHQsZSl7dmFyIHI9dC5mZWF0dXJlLG49dC5rZXlzLGk9dC52YWx1ZXMsYT10LmtleWNhY2hlLG89dC52YWx1ZWNhY2hlO2Zvcih2YXIgcyBpbiByLnByb3BlcnRpZXMpe3ZhciBsPWFbc107dm9pZCAwPT09bCYmKG4ucHVzaChzKSxsPW4ubGVuZ3RoLTEsYVtzXT1sKSxlLndyaXRlVmFyaW50KGwpO3ZhciBjPXIucHJvcGVydGllc1tzXSx1PXR5cGVvZiBjOyJzdHJpbmciIT09dSYmImJvb2xlYW4iIT09dSYmIm51bWJlciIhPT11JiYoYz1KU09OLnN0cmluZ2lmeShjKSk7dmFyIGY9dSsiOiIrYyxoPW9bZl07dm9pZCAwPT09aCYmKGkucHVzaChjKSxoPWkubGVuZ3RoLTEsb1tmXT1oKSxlLndyaXRlVmFyaW50KGgpfX1mdW5jdGlvbiBMKHQsZSl7cmV0dXJuKGU8PDMpKyg3JnQpfWZ1bmN0aW9uIEModCl7cmV0dXJuIHQ8PDFedD4+MzF9ZnVuY3Rpb24gUCh0LGUpe2Zvcih2YXIgcj10LmxvYWRHZW9tZXRyeSgpLG49dC50eXBlLGk9MCxhPTAsbz1yLmxlbmd0aCxzPTA7czxvO3MrKyl7dmFyIGw9cltzXSxjPTE7MT09PW4mJihjPWwubGVuZ3RoKSxlLndyaXRlVmFyaW50KEwoMSxjKSk7Zm9yKHZhciB1PTM9PT1uP2wubGVuZ3RoLTE6bC5sZW5ndGgsZj0wO2Y8dTtmKyspezE9PT1mJiYxIT09biYmZS53cml0ZVZhcmludChMKDIsdS0xKSk7dmFyIGg9bFtmXS54LWkscD1sW2ZdLnktYTtlLndyaXRlVmFyaW50KEMoaCkpLGUud3JpdGVWYXJpbnQoQyhwKSksaSs9aCxhKz1wfTM9PT1uJiZlLndyaXRlVmFyaW50KEwoNywxKSl9fWZ1bmN0aW9uIEkodCxlKXt2YXIgcj10eXBlb2YgdDsic3RyaW5nIj09PXI/ZS53cml0ZVN0cmluZ0ZpZWxkKDEsdCk6ImJvb2xlYW4iPT09cj9lLndyaXRlQm9vbGVhbkZpZWxkKDcsdCk6Im51bWJlciI9PT1yJiYodCUxIT0wP2Uud3JpdGVEb3VibGVGaWVsZCgzLHQpOnQ8MD9lLndyaXRlU1ZhcmludEZpZWxkKDYsdCk6ZS53cml0ZVZhcmludEZpZWxkKDUsdCkpfWZ1bmN0aW9uIE8odCxlLHIsbixpLGEpe2lmKCEoaS1uPD1yKSl7dmFyIG89bitpPj4xOyFmdW5jdGlvbiB0KGUscixuLGksYSxvKXtmb3IoO2E+aTspe2lmKGEtaT42MDApe3ZhciBzPWEtaSsxLGw9bi1pKzEsYz1NYXRoLmxvZyhzKSx1PS41Kk1hdGguZXhwKDIqYy8zKSxmPS41Kk1hdGguc3FydChjKnUqKHMtdSkvcykqKGwtcy8yPDA/LTE6MSksaD1NYXRoLm1heChpLE1hdGguZmxvb3Iobi1sKnUvcytmKSkscD1NYXRoLm1pbihhLE1hdGguZmxvb3Iobisocy1sKSp1L3MrZikpO3QoZSxyLG4saCxwLG8pfXZhciBkPXJbMipuK29dLG09aSxnPWE7Zm9yKHooZSxyLGksbiksclsyKmErb10+ZCYmeihlLHIsaSxhKTttPGc7KXtmb3IoeihlLHIsbSxnKSxtKyssZy0tO3JbMiptK29dPGQ7KW0rKztmb3IoO3JbMipnK29dPmQ7KWctLX1yWzIqaStvXT09PWQ/eihlLHIsaSxnKTooZysrLHooZSxyLGcsYSkpLGc8PW4mJihpPWcrMSksbjw9ZyYmKGE9Zy0xKX19KHQsZSxvLG4saSxhJTIpLE8odCxlLHIsbixvLTEsYSsxKSxPKHQsZSxyLG8rMSxpLGErMSl9fWZ1bmN0aW9uIHoodCxlLHIsbil7RCh0LHIsbiksRChlLDIqciwyKm4pLEQoZSwyKnIrMSwyKm4rMSl9ZnVuY3Rpb24gRCh0LGUscil7dmFyIG49dFtlXTt0W2VdPXRbcl0sdFtyXT1ufWZ1bmN0aW9uIFIodCxlLHIsbil7dmFyIGk9dC1yLGE9ZS1uO3JldHVybiBpKmkrYSphfV8uZnJvbVZlY3RvclRpbGVKcz13LF8uZnJvbUdlb2pzb25WdD1ULF8uR2VvSlNPTldyYXBwZXI9azt2YXIgRj1mdW5jdGlvbih0KXtyZXR1cm4gdFswXX0sQj1mdW5jdGlvbih0KXtyZXR1cm4gdFsxXX0sTj1mdW5jdGlvbih0LGUscixuLGkpe3ZvaWQgMD09PWUmJihlPUYpLHZvaWQgMD09PXImJihyPUIpLHZvaWQgMD09PW4mJihuPTY0KSx2b2lkIDA9PT1pJiYoaT1GbG9hdDY0QXJyYXkpLHRoaXMubm9kZVNpemU9bix0aGlzLnBvaW50cz10O2Zvcih2YXIgYT10Lmxlbmd0aDw2NTUzNj9VaW50MTZBcnJheTpVaW50MzJBcnJheSxvPXRoaXMuaWRzPW5ldyBhKHQubGVuZ3RoKSxzPXRoaXMuY29vcmRzPW5ldyBpKDIqdC5sZW5ndGgpLGw9MDtsPHQubGVuZ3RoO2wrKylvW2xdPWwsc1syKmxdPWUodFtsXSksc1syKmwrMV09cih0W2xdKTtPKG8scyxuLDAsby5sZW5ndGgtMSwwKX07Ti5wcm90b3R5cGUucmFuZ2U9ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIGZ1bmN0aW9uKHQsZSxyLG4saSxhLG8pe2Zvcih2YXIgcyxsLGM9WzAsdC5sZW5ndGgtMSwwXSx1PVtdO2MubGVuZ3RoOyl7dmFyIGY9Yy5wb3AoKSxoPWMucG9wKCkscD1jLnBvcCgpO2lmKGgtcDw9bylmb3IodmFyIGQ9cDtkPD1oO2QrKylzPWVbMipkXSxsPWVbMipkKzFdLHM+PXImJnM8PWkmJmw+PW4mJmw8PWEmJnUucHVzaCh0W2RdKTtlbHNle3ZhciBtPU1hdGguZmxvb3IoKHAraCkvMik7cz1lWzIqbV0sbD1lWzIqbSsxXSxzPj1yJiZzPD1pJiZsPj1uJiZsPD1hJiZ1LnB1c2godFttXSk7dmFyIGc9KGYrMSklMjsoMD09PWY/cjw9czpuPD1sKSYmKGMucHVzaChwKSxjLnB1c2gobS0xKSxjLnB1c2goZykpLCgwPT09Zj9pPj1zOmE+PWwpJiYoYy5wdXNoKG0rMSksYy5wdXNoKGgpLGMucHVzaChnKSl9fXJldHVybiB1fSh0aGlzLmlkcyx0aGlzLmNvb3Jkcyx0LGUscixuLHRoaXMubm9kZVNpemUpfSxOLnByb3RvdHlwZS53aXRoaW49ZnVuY3Rpb24odCxlLHIpe3JldHVybiBmdW5jdGlvbih0LGUscixuLGksYSl7Zm9yKHZhciBvPVswLHQubGVuZ3RoLTEsMF0scz1bXSxsPWkqaTtvLmxlbmd0aDspe3ZhciBjPW8ucG9wKCksdT1vLnBvcCgpLGY9by5wb3AoKTtpZih1LWY8PWEpZm9yKHZhciBoPWY7aDw9dTtoKyspUihlWzIqaF0sZVsyKmgrMV0scixuKTw9bCYmcy5wdXNoKHRbaF0pO2Vsc2V7dmFyIHA9TWF0aC5mbG9vcigoZit1KS8yKSxkPWVbMipwXSxtPWVbMipwKzFdO1IoZCxtLHIsbik8PWwmJnMucHVzaCh0W3BdKTt2YXIgZz0oYysxKSUyOygwPT09Yz9yLWk8PWQ6bi1pPD1tKSYmKG8ucHVzaChmKSxvLnB1c2gocC0xKSxvLnB1c2goZykpLCgwPT09Yz9yK2k+PWQ6bitpPj1tKSYmKG8ucHVzaChwKzEpLG8ucHVzaCh1KSxvLnB1c2goZykpfX1yZXR1cm4gc30odGhpcy5pZHMsdGhpcy5jb29yZHMsdCxlLHIsdGhpcy5ub2RlU2l6ZSl9O3ZhciBqPXttaW5ab29tOjAsbWF4Wm9vbToxNixyYWRpdXM6NDAsZXh0ZW50OjUxMixub2RlU2l6ZTo2NCxsb2c6ITEsZ2VuZXJhdGVJZDohMSxyZWR1Y2U6bnVsbCxtYXA6ZnVuY3Rpb24odCl7cmV0dXJuIHR9fSxVPWZ1bmN0aW9uKHQpe3RoaXMub3B0aW9ucz1YKE9iamVjdC5jcmVhdGUoaiksdCksdGhpcy50cmVlcz1uZXcgQXJyYXkodGhpcy5vcHRpb25zLm1heFpvb20rMSl9O2Z1bmN0aW9uIFYodCxlLHIsbixpKXtyZXR1cm57eDp0LHk6ZSx6b29tOjEvMCxpZDpyLHBhcmVudElkOi0xLG51bVBvaW50czpuLHByb3BlcnRpZXM6aX19ZnVuY3Rpb24gSCh0LGUpe3ZhciByPXQuZ2VvbWV0cnkuY29vcmRpbmF0ZXMsbj1yWzBdLGk9clsxXTtyZXR1cm57eDpZKG4pLHk6VyhpKSx6b29tOjEvMCxpbmRleDplLHBhcmVudElkOi0xfX1mdW5jdGlvbiBxKHQpe3JldHVybnt0eXBlOiJGZWF0dXJlIixpZDp0LmlkLHByb3BlcnRpZXM6Ryh0KSxnZW9tZXRyeTp7dHlwZToiUG9pbnQiLGNvb3JkaW5hdGVzOlsobj10LngsMzYwKihuLS41KSksKGU9dC55LHI9KDE4MC0zNjAqZSkqTWF0aC5QSS8xODAsMzYwKk1hdGguYXRhbihNYXRoLmV4cChyKSkvTWF0aC5QSS05MCldfX07dmFyIGUscixufWZ1bmN0aW9uIEcodCl7dmFyIGU9dC5udW1Qb2ludHMscj1lPj0xZTQ/TWF0aC5yb3VuZChlLzFlMykrImsiOmU+PTFlMz9NYXRoLnJvdW5kKGUvMTAwKS8xMCsiayI6ZTtyZXR1cm4gWChYKHt9LHQucHJvcGVydGllcykse2NsdXN0ZXI6ITAsY2x1c3Rlcl9pZDp0LmlkLHBvaW50X2NvdW50OmUscG9pbnRfY291bnRfYWJicmV2aWF0ZWQ6cn0pfWZ1bmN0aW9uIFkodCl7cmV0dXJuIHQvMzYwKy41fWZ1bmN0aW9uIFcodCl7dmFyIGU9TWF0aC5zaW4odCpNYXRoLlBJLzE4MCkscj0uNS0uMjUqTWF0aC5sb2coKDErZSkvKDEtZSkpL01hdGguUEk7cmV0dXJuIHI8MD8wOnI+MT8xOnJ9ZnVuY3Rpb24gWCh0LGUpe2Zvcih2YXIgciBpbiBlKXRbcl09ZVtyXTtyZXR1cm4gdH1mdW5jdGlvbiBaKHQpe3JldHVybiB0Lnh9ZnVuY3Rpb24gSih0KXtyZXR1cm4gdC55fWZ1bmN0aW9uIEsodCxlLHIsbixpLGEpe3ZhciBvPWktcixzPWEtbjtpZigwIT09b3x8MCE9PXMpe3ZhciBsPSgodC1yKSpvKyhlLW4pKnMpLyhvKm8rcypzKTtsPjE/KHI9aSxuPWEpOmw+MCYmKHIrPW8qbCxuKz1zKmwpfXJldHVybihvPXQtcikqbysocz1lLW4pKnN9ZnVuY3Rpb24gUSh0LGUscixuKXt2YXIgaT17aWQ6dm9pZCAwPT09dD9udWxsOnQsdHlwZTplLGdlb21ldHJ5OnIsdGFnczpuLG1pblg6MS8wLG1pblk6MS8wLG1heFg6LTEvMCxtYXhZOi0xLzB9O3JldHVybiBmdW5jdGlvbih0KXt2YXIgZT10Lmdlb21ldHJ5LHI9dC50eXBlO2lmKCJQb2ludCI9PT1yfHwiTXVsdGlQb2ludCI9PT1yfHwiTGluZVN0cmluZyI9PT1yKSQodCxlKTtlbHNlIGlmKCJQb2x5Z29uIj09PXJ8fCJNdWx0aUxpbmVTdHJpbmciPT09cilmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKykkKHQsZVtuXSk7ZWxzZSBpZigiTXVsdGlQb2x5Z29uIj09PXIpZm9yKG49MDtuPGUubGVuZ3RoO24rKylmb3IodmFyIGk9MDtpPGVbbl0ubGVuZ3RoO2krKykkKHQsZVtuXVtpXSl9KGkpLGl9ZnVuY3Rpb24gJCh0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cis9Myl0Lm1pblg9TWF0aC5taW4odC5taW5YLGVbcl0pLHQubWluWT1NYXRoLm1pbih0Lm1pblksZVtyKzFdKSx0Lm1heFg9TWF0aC5tYXgodC5tYXhYLGVbcl0pLHQubWF4WT1NYXRoLm1heCh0Lm1heFksZVtyKzFdKX1mdW5jdGlvbiB0dCh0LGUscixuKXtpZihlLmdlb21ldHJ5KXt2YXIgaT1lLmdlb21ldHJ5LmNvb3JkaW5hdGVzLGE9ZS5nZW9tZXRyeS50eXBlLG89TWF0aC5wb3coci50b2xlcmFuY2UvKCgxPDxyLm1heFpvb20pKnIuZXh0ZW50KSwyKSxzPVtdLGw9ZS5pZDtpZihyLnByb21vdGVJZD9sPWUucHJvcGVydGllc1tyLnByb21vdGVJZF06ci5nZW5lcmF0ZUlkJiYobD1ufHwwKSwiUG9pbnQiPT09YSlldChpLHMpO2Vsc2UgaWYoIk11bHRpUG9pbnQiPT09YSlmb3IodmFyIGM9MDtjPGkubGVuZ3RoO2MrKylldChpW2NdLHMpO2Vsc2UgaWYoIkxpbmVTdHJpbmciPT09YSlydChpLHMsbywhMSk7ZWxzZSBpZigiTXVsdGlMaW5lU3RyaW5nIj09PWEpe2lmKHIubGluZU1ldHJpY3Mpe2ZvcihjPTA7YzxpLmxlbmd0aDtjKyspcz1bXSxydChpW2NdLHMsbywhMSksdC5wdXNoKFEobCwiTGluZVN0cmluZyIscyxlLnByb3BlcnRpZXMpKTtyZXR1cm59bnQoaSxzLG8sITEpfWVsc2UgaWYoIlBvbHlnb24iPT09YSludChpLHMsbywhMCk7ZWxzZXtpZigiTXVsdGlQb2x5Z29uIiE9PWEpe2lmKCJHZW9tZXRyeUNvbGxlY3Rpb24iPT09YSl7Zm9yKGM9MDtjPGUuZ2VvbWV0cnkuZ2VvbWV0cmllcy5sZW5ndGg7YysrKXR0KHQse2lkOmwsZ2VvbWV0cnk6ZS5nZW9tZXRyeS5nZW9tZXRyaWVzW2NdLHByb3BlcnRpZXM6ZS5wcm9wZXJ0aWVzfSxyLG4pO3JldHVybn10aHJvdyBuZXcgRXJyb3IoIklucHV0IGRhdGEgaXMgbm90IGEgdmFsaWQgR2VvSlNPTiBvYmplY3QuIil9Zm9yKGM9MDtjPGkubGVuZ3RoO2MrKyl7dmFyIHU9W107bnQoaVtjXSx1LG8sITApLHMucHVzaCh1KX19dC5wdXNoKFEobCxhLHMsZS5wcm9wZXJ0aWVzKSl9fWZ1bmN0aW9uIGV0KHQsZSl7ZS5wdXNoKGl0KHRbMF0pKSxlLnB1c2goYXQodFsxXSkpLGUucHVzaCgwKX1mdW5jdGlvbiBydCh0LGUscixuKXtmb3IodmFyIGksYSxvPTAscz0wO3M8dC5sZW5ndGg7cysrKXt2YXIgbD1pdCh0W3NdWzBdKSxjPWF0KHRbc11bMV0pO2UucHVzaChsKSxlLnB1c2goYyksZS5wdXNoKDApLHM+MCYmKG8rPW4/KGkqYy1sKmEpLzI6TWF0aC5zcXJ0KE1hdGgucG93KGwtaSwyKStNYXRoLnBvdyhjLWEsMikpKSxpPWwsYT1jfXZhciB1PWUubGVuZ3RoLTM7ZVsyXT0xLGZ1bmN0aW9uIHQoZSxyLG4saSl7Zm9yKHZhciBhLG89aSxzPW4tcj4+MSxsPW4tcixjPWVbcl0sdT1lW3IrMV0sZj1lW25dLGg9ZVtuKzFdLHA9ciszO3A8bjtwKz0zKXt2YXIgZD1LKGVbcF0sZVtwKzFdLGMsdSxmLGgpO2lmKGQ+bylhPXAsbz1kO2Vsc2UgaWYoZD09PW8pe3ZhciBtPU1hdGguYWJzKHAtcyk7bTxsJiYoYT1wLGw9bSl9fW8+aSYmKGEtcj4zJiZ0KGUscixhLGkpLGVbYSsyXT1vLG4tYT4zJiZ0KGUsYSxuLGkpKX0oZSwwLHUsciksZVt1KzJdPTEsZS5zaXplPU1hdGguYWJzKG8pLGUuc3RhcnQ9MCxlLmVuZD1lLnNpemV9ZnVuY3Rpb24gbnQodCxlLHIsbil7Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBhPVtdO3J0KHRbaV0sYSxyLG4pLGUucHVzaChhKX19ZnVuY3Rpb24gaXQodCl7cmV0dXJuIHQvMzYwKy41fWZ1bmN0aW9uIGF0KHQpe3ZhciBlPU1hdGguc2luKHQqTWF0aC5QSS8xODApLHI9LjUtLjI1Kk1hdGgubG9nKCgxK2UpLygxLWUpKS9NYXRoLlBJO3JldHVybiByPDA/MDpyPjE/MTpyfWZ1bmN0aW9uIG90KHQsZSxyLG4saSxhLG8scyl7aWYobi89ZSxhPj0oci89ZSkmJm88bilyZXR1cm4gdDtpZihvPHJ8fGE+PW4pcmV0dXJuIG51bGw7Zm9yKHZhciBsPVtdLGM9MDtjPHQubGVuZ3RoO2MrKyl7dmFyIHU9dFtjXSxmPXUuZ2VvbWV0cnksaD11LnR5cGUscD0wPT09aT91Lm1pblg6dS5taW5ZLGQ9MD09PWk/dS5tYXhYOnUubWF4WTtpZihwPj1yJiZkPG4pbC5wdXNoKHUpO2Vsc2UgaWYoIShkPHJ8fHA+PW4pKXt2YXIgbT1bXTtpZigiUG9pbnQiPT09aHx8Ik11bHRpUG9pbnQiPT09aClzdChmLG0scixuLGkpO2Vsc2UgaWYoIkxpbmVTdHJpbmciPT09aClsdChmLG0scixuLGksITEscy5saW5lTWV0cmljcyk7ZWxzZSBpZigiTXVsdGlMaW5lU3RyaW5nIj09PWgpdXQoZixtLHIsbixpLCExKTtlbHNlIGlmKCJQb2x5Z29uIj09PWgpdXQoZixtLHIsbixpLCEwKTtlbHNlIGlmKCJNdWx0aVBvbHlnb24iPT09aClmb3IodmFyIGc9MDtnPGYubGVuZ3RoO2crKyl7dmFyIHY9W107dXQoZltnXSx2LHIsbixpLCEwKSx2Lmxlbmd0aCYmbS5wdXNoKHYpfWlmKG0ubGVuZ3RoKXtpZihzLmxpbmVNZXRyaWNzJiYiTGluZVN0cmluZyI9PT1oKXtmb3IoZz0wO2c8bS5sZW5ndGg7ZysrKWwucHVzaChRKHUuaWQsaCxtW2ddLHUudGFncykpO2NvbnRpbnVlfSJMaW5lU3RyaW5nIiE9PWgmJiJNdWx0aUxpbmVTdHJpbmciIT09aHx8KDE9PT1tLmxlbmd0aD8oaD0iTGluZVN0cmluZyIsbT1tWzBdKTpoPSJNdWx0aUxpbmVTdHJpbmciKSwiUG9pbnQiIT09aCYmIk11bHRpUG9pbnQiIT09aHx8KGg9Mz09PW0ubGVuZ3RoPyJQb2ludCI6Ik11bHRpUG9pbnQiKSxsLnB1c2goUSh1LmlkLGgsbSx1LnRhZ3MpKX19fXJldHVybiBsLmxlbmd0aD9sOm51bGx9ZnVuY3Rpb24gc3QodCxlLHIsbixpKXtmb3IodmFyIGE9MDthPHQubGVuZ3RoO2ErPTMpe3ZhciBvPXRbYStpXTtvPj1yJiZvPD1uJiYoZS5wdXNoKHRbYV0pLGUucHVzaCh0W2ErMV0pLGUucHVzaCh0W2ErMl0pKX19ZnVuY3Rpb24gbHQodCxlLHIsbixpLGEsbyl7Zm9yKHZhciBzLGwsYz1jdCh0KSx1PTA9PT1pP2h0OnB0LGY9dC5zdGFydCxoPTA7aDx0Lmxlbmd0aC0zO2grPTMpe3ZhciBwPXRbaF0sZD10W2grMV0sbT10W2grMl0sZz10W2grM10sdj10W2grNF0seT0wPT09aT9wOmQseD0wPT09aT9nOnYsYj0hMTtvJiYocz1NYXRoLnNxcnQoTWF0aC5wb3cocC1nLDIpK01hdGgucG93KGQtdiwyKSkpLHk8cj94PnImJihsPXUoYyxwLGQsZyx2LHIpLG8mJihjLnN0YXJ0PWYrcypsKSk6eT5uP3g8biYmKGw9dShjLHAsZCxnLHYsbiksbyYmKGMuc3RhcnQ9ZitzKmwpKTpmdChjLHAsZCxtKSx4PHImJnk+PXImJihsPXUoYyxwLGQsZyx2LHIpLGI9ITApLHg+biYmeTw9biYmKGw9dShjLHAsZCxnLHYsbiksYj0hMCksIWEmJmImJihvJiYoYy5lbmQ9ZitzKmwpLGUucHVzaChjKSxjPWN0KHQpKSxvJiYoZis9cyl9dmFyIF89dC5sZW5ndGgtMztwPXRbX10sZD10W18rMV0sbT10W18rMl0sKHk9MD09PWk/cDpkKT49ciYmeTw9biYmZnQoYyxwLGQsbSksXz1jLmxlbmd0aC0zLGEmJl8+PTMmJihjW19dIT09Y1swXXx8Y1tfKzFdIT09Y1sxXSkmJmZ0KGMsY1swXSxjWzFdLGNbMl0pLGMubGVuZ3RoJiZlLnB1c2goYyl9ZnVuY3Rpb24gY3QodCl7dmFyIGU9W107cmV0dXJuIGUuc2l6ZT10LnNpemUsZS5zdGFydD10LnN0YXJ0LGUuZW5kPXQuZW5kLGV9ZnVuY3Rpb24gdXQodCxlLHIsbixpLGEpe2Zvcih2YXIgbz0wO288dC5sZW5ndGg7bysrKWx0KHRbb10sZSxyLG4saSxhLCExKX1mdW5jdGlvbiBmdCh0LGUscixuKXt0LnB1c2goZSksdC5wdXNoKHIpLHQucHVzaChuKX1mdW5jdGlvbiBodCh0LGUscixuLGksYSl7dmFyIG89KGEtZSkvKG4tZSk7cmV0dXJuIHQucHVzaChhKSx0LnB1c2gocisoaS1yKSpvKSx0LnB1c2goMSksb31mdW5jdGlvbiBwdCh0LGUscixuLGksYSl7dmFyIG89KGEtcikvKGktcik7cmV0dXJuIHQucHVzaChlKyhuLWUpKm8pLHQucHVzaChhKSx0LnB1c2goMSksb31mdW5jdGlvbiBkdCh0LGUpe2Zvcih2YXIgcj1bXSxuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBpLGE9dFtuXSxvPWEudHlwZTtpZigiUG9pbnQiPT09b3x8Ik11bHRpUG9pbnQiPT09b3x8IkxpbmVTdHJpbmciPT09bylpPW10KGEuZ2VvbWV0cnksZSk7ZWxzZSBpZigiTXVsdGlMaW5lU3RyaW5nIj09PW98fCJQb2x5Z29uIj09PW8pe2k9W107Zm9yKHZhciBzPTA7czxhLmdlb21ldHJ5Lmxlbmd0aDtzKyspaS5wdXNoKG10KGEuZ2VvbWV0cnlbc10sZSkpfWVsc2UgaWYoIk11bHRpUG9seWdvbiI9PT1vKWZvcihpPVtdLHM9MDtzPGEuZ2VvbWV0cnkubGVuZ3RoO3MrKyl7Zm9yKHZhciBsPVtdLGM9MDtjPGEuZ2VvbWV0cnlbc10ubGVuZ3RoO2MrKylsLnB1c2gobXQoYS5nZW9tZXRyeVtzXVtjXSxlKSk7aS5wdXNoKGwpfXIucHVzaChRKGEuaWQsbyxpLGEudGFncykpfXJldHVybiByfWZ1bmN0aW9uIG10KHQsZSl7dmFyIHI9W107ci5zaXplPXQuc2l6ZSx2b2lkIDAhPT10LnN0YXJ0JiYoci5zdGFydD10LnN0YXJ0LHIuZW5kPXQuZW5kKTtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rPTMpci5wdXNoKHRbbl0rZSx0W24rMV0sdFtuKzJdKTtyZXR1cm4gcn1mdW5jdGlvbiBndCh0LGUpe2lmKHQudHJhbnNmb3JtZWQpcmV0dXJuIHQ7dmFyIHIsbixpLGE9MTw8dC56LG89dC54LHM9dC55O2ZvcihyPTA7cjx0LmZlYXR1cmVzLmxlbmd0aDtyKyspe3ZhciBsPXQuZmVhdHVyZXNbcl0sYz1sLmdlb21ldHJ5LHU9bC50eXBlO2lmKGwuZ2VvbWV0cnk9W10sMT09PXUpZm9yKG49MDtuPGMubGVuZ3RoO24rPTIpbC5nZW9tZXRyeS5wdXNoKHZ0KGNbbl0sY1tuKzFdLGUsYSxvLHMpKTtlbHNlIGZvcihuPTA7bjxjLmxlbmd0aDtuKyspe3ZhciBmPVtdO2ZvcihpPTA7aTxjW25dLmxlbmd0aDtpKz0yKWYucHVzaCh2dChjW25dW2ldLGNbbl1baSsxXSxlLGEsbyxzKSk7bC5nZW9tZXRyeS5wdXNoKGYpfX1yZXR1cm4gdC50cmFuc2Zvcm1lZD0hMCx0fWZ1bmN0aW9uIHZ0KHQsZSxyLG4saSxhKXtyZXR1cm5bTWF0aC5yb3VuZChyKih0Km4taSkpLE1hdGgucm91bmQociooZSpuLWEpKV19ZnVuY3Rpb24geXQodCxlLHIsbixpKXtmb3IodmFyIGE9ZT09PWkubWF4Wm9vbT8wOmkudG9sZXJhbmNlLygoMTw8ZSkqaS5leHRlbnQpLG89e2ZlYXR1cmVzOltdLG51bVBvaW50czowLG51bVNpbXBsaWZpZWQ6MCxudW1GZWF0dXJlczowLHNvdXJjZTpudWxsLHg6cix5Om4sejplLHRyYW5zZm9ybWVkOiExLG1pblg6MixtaW5ZOjEsbWF4WDotMSxtYXhZOjB9LHM9MDtzPHQubGVuZ3RoO3MrKyl7by5udW1GZWF0dXJlcysrLHh0KG8sdFtzXSxhLGkpO3ZhciBsPXRbc10ubWluWCxjPXRbc10ubWluWSx1PXRbc10ubWF4WCxmPXRbc10ubWF4WTtsPG8ubWluWCYmKG8ubWluWD1sKSxjPG8ubWluWSYmKG8ubWluWT1jKSx1Pm8ubWF4WCYmKG8ubWF4WD11KSxmPm8ubWF4WSYmKG8ubWF4WT1mKX1yZXR1cm4gb31mdW5jdGlvbiB4dCh0LGUscixuKXt2YXIgaT1lLmdlb21ldHJ5LGE9ZS50eXBlLG89W107aWYoIlBvaW50Ij09PWF8fCJNdWx0aVBvaW50Ij09PWEpZm9yKHZhciBzPTA7czxpLmxlbmd0aDtzKz0zKW8ucHVzaChpW3NdKSxvLnB1c2goaVtzKzFdKSx0Lm51bVBvaW50cysrLHQubnVtU2ltcGxpZmllZCsrO2Vsc2UgaWYoIkxpbmVTdHJpbmciPT09YSlidChvLGksdCxyLCExLCExKTtlbHNlIGlmKCJNdWx0aUxpbmVTdHJpbmciPT09YXx8IlBvbHlnb24iPT09YSlmb3Iocz0wO3M8aS5sZW5ndGg7cysrKWJ0KG8saVtzXSx0LHIsIlBvbHlnb24iPT09YSwwPT09cyk7ZWxzZSBpZigiTXVsdGlQb2x5Z29uIj09PWEpZm9yKHZhciBsPTA7bDxpLmxlbmd0aDtsKyspe3ZhciBjPWlbbF07Zm9yKHM9MDtzPGMubGVuZ3RoO3MrKylidChvLGNbc10sdCxyLCEwLDA9PT1zKX1pZihvLmxlbmd0aCl7dmFyIHU9ZS50YWdzfHxudWxsO2lmKCJMaW5lU3RyaW5nIj09PWEmJm4ubGluZU1ldHJpY3Mpe2Zvcih2YXIgZiBpbiB1PXt9LGUudGFncyl1W2ZdPWUudGFnc1tmXTt1Lm1hcGJveF9jbGlwX3N0YXJ0PWkuc3RhcnQvaS5zaXplLHUubWFwYm94X2NsaXBfZW5kPWkuZW5kL2kuc2l6ZX12YXIgaD17Z2VvbWV0cnk6byx0eXBlOiJQb2x5Z29uIj09PWF8fCJNdWx0aVBvbHlnb24iPT09YT8zOiJMaW5lU3RyaW5nIj09PWF8fCJNdWx0aUxpbmVTdHJpbmciPT09YT8yOjEsdGFnczp1fTtudWxsIT09ZS5pZCYmKGguaWQ9ZS5pZCksdC5mZWF0dXJlcy5wdXNoKGgpfX1mdW5jdGlvbiBidCh0LGUscixuLGksYSl7dmFyIG89bipuO2lmKG4+MCYmZS5zaXplPChpP286bikpci5udW1Qb2ludHMrPWUubGVuZ3RoLzM7ZWxzZXtmb3IodmFyIHM9W10sbD0wO2w8ZS5sZW5ndGg7bCs9MykoMD09PW58fGVbbCsyXT5vKSYmKHIubnVtU2ltcGxpZmllZCsrLHMucHVzaChlW2xdKSxzLnB1c2goZVtsKzFdKSksci5udW1Qb2ludHMrKztpJiZmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wLG49MCxpPXQubGVuZ3RoLGE9aS0yO248aTthPW4sbis9MilyKz0odFtuXS10W2FdKSoodFtuKzFdK3RbYSsxXSk7aWYocj4wPT09ZSlmb3Iobj0wLGk9dC5sZW5ndGg7bjxpLzI7bis9Mil7dmFyIG89dFtuXSxzPXRbbisxXTt0W25dPXRbaS0yLW5dLHRbbisxXT10W2ktMS1uXSx0W2ktMi1uXT1vLHRbaS0xLW5dPXN9fShzLGEpLHQucHVzaChzKX19ZnVuY3Rpb24gX3QodCxlKXt2YXIgcj0oZT10aGlzLm9wdGlvbnM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHIgaW4gZSl0W3JdPWVbcl07cmV0dXJuIHR9KE9iamVjdC5jcmVhdGUodGhpcy5vcHRpb25zKSxlKSkuZGVidWc7aWYociYmY29uc29sZS50aW1lKCJwcmVwcm9jZXNzIGRhdGEiKSxlLm1heFpvb208MHx8ZS5tYXhab29tPjI0KXRocm93IG5ldyBFcnJvcigibWF4Wm9vbSBzaG91bGQgYmUgaW4gdGhlIDAtMjQgcmFuZ2UiKTtpZihlLnByb21vdGVJZCYmZS5nZW5lcmF0ZUlkKXRocm93IG5ldyBFcnJvcigicHJvbW90ZUlkIGFuZCBnZW5lcmF0ZUlkIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyLiIpO3ZhciBuPWZ1bmN0aW9uKHQsZSl7dmFyIHI9W107aWYoIkZlYXR1cmVDb2xsZWN0aW9uIj09PXQudHlwZSlmb3IodmFyIG49MDtuPHQuZmVhdHVyZXMubGVuZ3RoO24rKyl0dChyLHQuZmVhdHVyZXNbbl0sZSxuKTtlbHNlIkZlYXR1cmUiPT09dC50eXBlP3R0KHIsdCxlKTp0dChyLHtnZW9tZXRyeTp0fSxlKTtyZXR1cm4gcn0odCxlKTt0aGlzLnRpbGVzPXt9LHRoaXMudGlsZUNvb3Jkcz1bXSxyJiYoY29uc29sZS50aW1lRW5kKCJwcmVwcm9jZXNzIGRhdGEiKSxjb25zb2xlLmxvZygiaW5kZXg6IG1heFpvb206ICVkLCBtYXhQb2ludHM6ICVkIixlLmluZGV4TWF4Wm9vbSxlLmluZGV4TWF4UG9pbnRzKSxjb25zb2xlLnRpbWUoImdlbmVyYXRlIHRpbGVzIiksdGhpcy5zdGF0cz17fSx0aGlzLnRvdGFsPTApLChuPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS5idWZmZXIvZS5leHRlbnQsbj10LGk9b3QodCwxLC0xLXIsciwwLC0xLDIsZSksYT1vdCh0LDEsMS1yLDIrciwwLC0xLDIsZSk7cmV0dXJuKGl8fGEpJiYobj1vdCh0LDEsLXIsMStyLDAsLTEsMixlKXx8W10saSYmKG49ZHQoaSwxKS5jb25jYXQobikpLGEmJihuPW4uY29uY2F0KGR0KGEsLTEpKSkpLG59KG4sZSkpLmxlbmd0aCYmdGhpcy5zcGxpdFRpbGUobiwwLDAsMCksciYmKG4ubGVuZ3RoJiZjb25zb2xlLmxvZygiZmVhdHVyZXM6ICVkLCBwb2ludHM6ICVkIix0aGlzLnRpbGVzWzBdLm51bUZlYXR1cmVzLHRoaXMudGlsZXNbMF0ubnVtUG9pbnRzKSxjb25zb2xlLnRpbWVFbmQoImdlbmVyYXRlIHRpbGVzIiksY29uc29sZS5sb2coInRpbGVzIGdlbmVyYXRlZDoiLHRoaXMudG90YWwsSlNPTi5zdHJpbmdpZnkodGhpcy5zdGF0cykpKX1mdW5jdGlvbiB3dCh0LGUscil7cmV0dXJuIDMyKigoMTw8dCkqcitlKSt0fWZ1bmN0aW9uIFR0KHQsZSl7dmFyIHI9dC50aWxlSUQuY2Fub25pY2FsO2lmKCF0aGlzLl9nZW9KU09OSW5kZXgpcmV0dXJuIGUobnVsbCxudWxsKTt2YXIgbj10aGlzLl9nZW9KU09OSW5kZXguZ2V0VGlsZShyLnosci54LHIueSk7aWYoIW4pcmV0dXJuIGUobnVsbCxudWxsKTt2YXIgaT1uZXcgZyhuLmZlYXR1cmVzKSxhPV8oaSk7MD09PWEuYnl0ZU9mZnNldCYmYS5ieXRlTGVuZ3RoPT09YS5idWZmZXIuYnl0ZUxlbmd0aHx8KGE9bmV3IFVpbnQ4QXJyYXkoYSkpLGUobnVsbCx7dmVjdG9yVGlsZTppLHJhd0RhdGE6YS5idWZmZXJ9KX1VLnByb3RvdHlwZS5sb2FkPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMub3B0aW9ucyxyPWUubG9nLG49ZS5taW5ab29tLGk9ZS5tYXhab29tLGE9ZS5ub2RlU2l6ZTtyJiZjb25zb2xlLnRpbWUoInRvdGFsIHRpbWUiKTt2YXIgbz0icHJlcGFyZSAiK3QubGVuZ3RoKyIgcG9pbnRzIjtyJiZjb25zb2xlLnRpbWUobyksdGhpcy5wb2ludHM9dDtmb3IodmFyIHM9W10sbD0wO2w8dC5sZW5ndGg7bCsrKXRbbF0uZ2VvbWV0cnkmJnMucHVzaChIKHRbbF0sbCkpO3RoaXMudHJlZXNbaSsxXT1uZXcgTihzLFosSixhLEZsb2F0MzJBcnJheSksciYmY29uc29sZS50aW1lRW5kKG8pO2Zvcih2YXIgYz1pO2M+PW47Yy0tKXt2YXIgdT0rRGF0ZS5ub3coKTtzPXRoaXMuX2NsdXN0ZXIocyxjKSx0aGlzLnRyZWVzW2NdPW5ldyBOKHMsWixKLGEsRmxvYXQzMkFycmF5KSxyJiZjb25zb2xlLmxvZygieiVkOiAlZCBjbHVzdGVycyBpbiAlZG1zIixjLHMubGVuZ3RoLCtEYXRlLm5vdygpLXUpfXJldHVybiByJiZjb25zb2xlLnRpbWVFbmQoInRvdGFsIHRpbWUiKSx0aGlzfSxVLnByb3RvdHlwZS5nZXRDbHVzdGVycz1mdW5jdGlvbih0LGUpe3ZhciByPSgodFswXSsxODApJTM2MCszNjApJTM2MC0xODAsbj1NYXRoLm1heCgtOTAsTWF0aC5taW4oOTAsdFsxXSkpLGk9MTgwPT09dFsyXT8xODA6KCh0WzJdKzE4MCklMzYwKzM2MCklMzYwLTE4MCxhPU1hdGgubWF4KC05MCxNYXRoLm1pbig5MCx0WzNdKSk7aWYodFsyXS10WzBdPj0zNjApcj0tMTgwLGk9MTgwO2Vsc2UgaWYocj5pKXt2YXIgbz10aGlzLmdldENsdXN0ZXJzKFtyLG4sMTgwLGFdLGUpLHM9dGhpcy5nZXRDbHVzdGVycyhbLTE4MCxuLGksYV0sZSk7cmV0dXJuIG8uY29uY2F0KHMpfWZvcih2YXIgbD10aGlzLnRyZWVzW3RoaXMuX2xpbWl0Wm9vbShlKV0sYz1bXSx1PTAsZj1sLnJhbmdlKFkociksVyhhKSxZKGkpLFcobikpO3U8Zi5sZW5ndGg7dSs9MSl7dmFyIGg9Zlt1XSxwPWwucG9pbnRzW2hdO2MucHVzaChwLm51bVBvaW50cz9xKHApOnRoaXMucG9pbnRzW3AuaW5kZXhdKX1yZXR1cm4gY30sVS5wcm90b3R5cGUuZ2V0Q2hpbGRyZW49ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fZ2V0T3JpZ2luSWQodCkscj10aGlzLl9nZXRPcmlnaW5ab29tKHQpLG49Ik5vIGNsdXN0ZXIgd2l0aCB0aGUgc3BlY2lmaWVkIGlkLiIsaT10aGlzLnRyZWVzW3JdO2lmKCFpKXRocm93IG5ldyBFcnJvcihuKTt2YXIgYT1pLnBvaW50c1tlXTtpZighYSl0aHJvdyBuZXcgRXJyb3Iobik7Zm9yKHZhciBvPXRoaXMub3B0aW9ucy5yYWRpdXMvKHRoaXMub3B0aW9ucy5leHRlbnQqTWF0aC5wb3coMixyLTEpKSxzPVtdLGw9MCxjPWkud2l0aGluKGEueCxhLnksbyk7bDxjLmxlbmd0aDtsKz0xKXt2YXIgdT1jW2xdLGY9aS5wb2ludHNbdV07Zi5wYXJlbnRJZD09PXQmJnMucHVzaChmLm51bVBvaW50cz9xKGYpOnRoaXMucG9pbnRzW2YuaW5kZXhdKX1pZigwPT09cy5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKG4pO3JldHVybiBzfSxVLnByb3RvdHlwZS5nZXRMZWF2ZXM9ZnVuY3Rpb24odCxlLHIpe2U9ZXx8MTAscj1yfHwwO3ZhciBuPVtdO3JldHVybiB0aGlzLl9hcHBlbmRMZWF2ZXMobix0LGUsciwwKSxufSxVLnByb3RvdHlwZS5nZXRUaWxlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLnRyZWVzW3RoaXMuX2xpbWl0Wm9vbSh0KV0saT1NYXRoLnBvdygyLHQpLGE9dGhpcy5vcHRpb25zLG89YS5leHRlbnQscz1hLnJhZGl1cy9vLGw9KHItcykvaSxjPShyKzErcykvaSx1PXtmZWF0dXJlczpbXX07cmV0dXJuIHRoaXMuX2FkZFRpbGVGZWF0dXJlcyhuLnJhbmdlKChlLXMpL2ksbCwoZSsxK3MpL2ksYyksbi5wb2ludHMsZSxyLGksdSksMD09PWUmJnRoaXMuX2FkZFRpbGVGZWF0dXJlcyhuLnJhbmdlKDEtcy9pLGwsMSxjKSxuLnBvaW50cyxpLHIsaSx1KSxlPT09aS0xJiZ0aGlzLl9hZGRUaWxlRmVhdHVyZXMobi5yYW5nZSgwLGwscy9pLGMpLG4ucG9pbnRzLC0xLHIsaSx1KSx1LmZlYXR1cmVzLmxlbmd0aD91Om51bGx9LFUucHJvdG90eXBlLmdldENsdXN0ZXJFeHBhbnNpb25ab29tPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLl9nZXRPcmlnaW5ab29tKHQpLTE7ZTw9dGhpcy5vcHRpb25zLm1heFpvb207KXt2YXIgcj10aGlzLmdldENoaWxkcmVuKHQpO2lmKGUrKywxIT09ci5sZW5ndGgpYnJlYWs7dD1yWzBdLnByb3BlcnRpZXMuY2x1c3Rlcl9pZH1yZXR1cm4gZX0sVS5wcm90b3R5cGUuX2FwcGVuZExlYXZlcz1mdW5jdGlvbih0LGUscixuLGkpe2Zvcih2YXIgYT0wLG89dGhpcy5nZXRDaGlsZHJlbihlKTthPG8ubGVuZ3RoO2ErPTEpe3ZhciBzPW9bYV0sbD1zLnByb3BlcnRpZXM7aWYobCYmbC5jbHVzdGVyP2krbC5wb2ludF9jb3VudDw9bj9pKz1sLnBvaW50X2NvdW50Omk9dGhpcy5fYXBwZW5kTGVhdmVzKHQsbC5jbHVzdGVyX2lkLHIsbixpKTppPG4/aSsrOnQucHVzaChzKSx0Lmxlbmd0aD09PXIpYnJlYWt9cmV0dXJuIGl9LFUucHJvdG90eXBlLl9hZGRUaWxlRmVhdHVyZXM9ZnVuY3Rpb24odCxlLHIsbixpLGEpe2Zvcih2YXIgbz0wLHM9dDtvPHMubGVuZ3RoO28rPTEpe3ZhciBsPWVbc1tvXV0sYz1sLm51bVBvaW50cyx1PXt0eXBlOjEsZ2VvbWV0cnk6W1tNYXRoLnJvdW5kKHRoaXMub3B0aW9ucy5leHRlbnQqKGwueCppLXIpKSxNYXRoLnJvdW5kKHRoaXMub3B0aW9ucy5leHRlbnQqKGwueSppLW4pKV1dLHRhZ3M6Yz9HKGwpOnRoaXMucG9pbnRzW2wuaW5kZXhdLnByb3BlcnRpZXN9LGY9dm9pZCAwO2M/Zj1sLmlkOnRoaXMub3B0aW9ucy5nZW5lcmF0ZUlkP2Y9bC5pbmRleDp0aGlzLnBvaW50c1tsLmluZGV4XS5pZCYmKGY9dGhpcy5wb2ludHNbbC5pbmRleF0uaWQpLHZvaWQgMCE9PWYmJih1LmlkPWYpLGEuZmVhdHVyZXMucHVzaCh1KX19LFUucHJvdG90eXBlLl9saW1pdFpvb209ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgubWF4KHRoaXMub3B0aW9ucy5taW5ab29tLE1hdGgubWluKHQsdGhpcy5vcHRpb25zLm1heFpvb20rMSkpfSxVLnByb3RvdHlwZS5fY2x1c3Rlcj1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1bXSxuPXRoaXMub3B0aW9ucyxpPW4ucmFkaXVzLGE9bi5leHRlbnQsbz1uLnJlZHVjZSxzPWkvKGEqTWF0aC5wb3coMixlKSksbD0wO2w8dC5sZW5ndGg7bCsrKXt2YXIgYz10W2xdO2lmKCEoYy56b29tPD1lKSl7Yy56b29tPWU7Zm9yKHZhciB1PXRoaXMudHJlZXNbZSsxXSxmPXUud2l0aGluKGMueCxjLnkscyksaD1jLm51bVBvaW50c3x8MSxwPWMueCpoLGQ9Yy55KmgsbT1vJiZoPjE/dGhpcy5fbWFwKGMsITApOm51bGwsZz0obDw8NSkrKGUrMSkrdGhpcy5wb2ludHMubGVuZ3RoLHY9MCx5PWY7djx5Lmxlbmd0aDt2Kz0xKXt2YXIgeD15W3ZdLGI9dS5wb2ludHNbeF07aWYoIShiLnpvb208PWUpKXtiLnpvb209ZTt2YXIgXz1iLm51bVBvaW50c3x8MTtwKz1iLngqXyxkKz1iLnkqXyxoKz1fLGIucGFyZW50SWQ9ZyxvJiYobXx8KG09dGhpcy5fbWFwKGMsITApKSxvKG0sdGhpcy5fbWFwKGIpKSl9fTE9PT1oP3IucHVzaChjKTooYy5wYXJlbnRJZD1nLHIucHVzaChWKHAvaCxkL2gsZyxoLG0pKSl9fXJldHVybiByfSxVLnByb3RvdHlwZS5fZ2V0T3JpZ2luSWQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQtdGhpcy5wb2ludHMubGVuZ3RoPj41fSxVLnByb3RvdHlwZS5fZ2V0T3JpZ2luWm9vbT1mdW5jdGlvbih0KXtyZXR1cm4odC10aGlzLnBvaW50cy5sZW5ndGgpJTMyfSxVLnByb3RvdHlwZS5fbWFwPWZ1bmN0aW9uKHQsZSl7aWYodC5udW1Qb2ludHMpcmV0dXJuIGU/WCh7fSx0LnByb3BlcnRpZXMpOnQucHJvcGVydGllczt2YXIgcj10aGlzLnBvaW50c1t0LmluZGV4XS5wcm9wZXJ0aWVzLG49dGhpcy5vcHRpb25zLm1hcChyKTtyZXR1cm4gZSYmbj09PXI/WCh7fSxuKTpufSxfdC5wcm90b3R5cGUub3B0aW9ucz17bWF4Wm9vbToxNCxpbmRleE1heFpvb206NSxpbmRleE1heFBvaW50czoxZTUsdG9sZXJhbmNlOjMsZXh0ZW50OjQwOTYsYnVmZmVyOjY0LGxpbmVNZXRyaWNzOiExLHByb21vdGVJZDpudWxsLGdlbmVyYXRlSWQ6ITEsZGVidWc6MH0sX3QucHJvdG90eXBlLnNwbGl0VGlsZT1mdW5jdGlvbih0LGUscixuLGksYSxvKXtmb3IodmFyIHM9W3QsZSxyLG5dLGw9dGhpcy5vcHRpb25zLGM9bC5kZWJ1ZztzLmxlbmd0aDspe249cy5wb3AoKSxyPXMucG9wKCksZT1zLnBvcCgpLHQ9cy5wb3AoKTt2YXIgdT0xPDxlLGY9d3QoZSxyLG4pLGg9dGhpcy50aWxlc1tmXTtpZighaCYmKGM+MSYmY29uc29sZS50aW1lKCJjcmVhdGlvbiIpLGg9dGhpcy50aWxlc1tmXT15dCh0LGUscixuLGwpLHRoaXMudGlsZUNvb3Jkcy5wdXNoKHt6OmUseDpyLHk6bn0pLGMpKXtjPjEmJihjb25zb2xlLmxvZygidGlsZSB6JWQtJWQtJWQgKGZlYXR1cmVzOiAlZCwgcG9pbnRzOiAlZCwgc2ltcGxpZmllZDogJWQpIixlLHIsbixoLm51bUZlYXR1cmVzLGgubnVtUG9pbnRzLGgubnVtU2ltcGxpZmllZCksY29uc29sZS50aW1lRW5kKCJjcmVhdGlvbiIpKTt2YXIgcD0ieiIrZTt0aGlzLnN0YXRzW3BdPSh0aGlzLnN0YXRzW3BdfHwwKSsxLHRoaXMudG90YWwrK31pZihoLnNvdXJjZT10LGkpe2lmKGU9PT1sLm1heFpvb218fGU9PT1pKWNvbnRpbnVlO3ZhciBkPTE8PGktZTtpZihyIT09TWF0aC5mbG9vcihhL2QpfHxuIT09TWF0aC5mbG9vcihvL2QpKWNvbnRpbnVlfWVsc2UgaWYoZT09PWwuaW5kZXhNYXhab29tfHxoLm51bVBvaW50czw9bC5pbmRleE1heFBvaW50cyljb250aW51ZTtpZihoLnNvdXJjZT1udWxsLDAhPT10Lmxlbmd0aCl7Yz4xJiZjb25zb2xlLnRpbWUoImNsaXBwaW5nIik7dmFyIG0sZyx2LHkseCxiLF89LjUqbC5idWZmZXIvbC5leHRlbnQsdz0uNS1fLFQ9LjUrXyxrPTErXzttPWc9dj15PW51bGwseD1vdCh0LHUsci1fLHIrVCwwLGgubWluWCxoLm1heFgsbCksYj1vdCh0LHUscit3LHIraywwLGgubWluWCxoLm1heFgsbCksdD1udWxsLHgmJihtPW90KHgsdSxuLV8sbitULDEsaC5taW5ZLGgubWF4WSxsKSxnPW90KHgsdSxuK3csbitrLDEsaC5taW5ZLGgubWF4WSxsKSx4PW51bGwpLGImJih2PW90KGIsdSxuLV8sbitULDEsaC5taW5ZLGgubWF4WSxsKSx5PW90KGIsdSxuK3csbitrLDEsaC5taW5ZLGgubWF4WSxsKSxiPW51bGwpLGM+MSYmY29uc29sZS50aW1lRW5kKCJjbGlwcGluZyIpLHMucHVzaChtfHxbXSxlKzEsMipyLDIqbikscy5wdXNoKGd8fFtdLGUrMSwyKnIsMipuKzEpLHMucHVzaCh2fHxbXSxlKzEsMipyKzEsMipuKSxzLnB1c2goeXx8W10sZSsxLDIqcisxLDIqbisxKX19fSxfdC5wcm90b3R5cGUuZ2V0VGlsZT1mdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5vcHRpb25zLGk9bi5leHRlbnQsYT1uLmRlYnVnO2lmKHQ8MHx8dD4yNClyZXR1cm4gbnVsbDt2YXIgbz0xPDx0LHM9d3QodCxlPShlJW8rbyklbyxyKTtpZih0aGlzLnRpbGVzW3NdKXJldHVybiBndCh0aGlzLnRpbGVzW3NdLGkpO2E+MSYmY29uc29sZS5sb2coImRyaWxsaW5nIGRvd24gdG8geiVkLSVkLSVkIix0LGUscik7Zm9yKHZhciBsLGM9dCx1PWUsZj1yOyFsJiZjPjA7KWMtLSx1PU1hdGguZmxvb3IodS8yKSxmPU1hdGguZmxvb3IoZi8yKSxsPXRoaXMudGlsZXNbd3QoYyx1LGYpXTtyZXR1cm4gbCYmbC5zb3VyY2U/KGE+MSYmY29uc29sZS5sb2coImZvdW5kIHBhcmVudCB0aWxlIHolZC0lZC0lZCIsYyx1LGYpLGE+MSYmY29uc29sZS50aW1lKCJkcmlsbGluZyBkb3duIiksdGhpcy5zcGxpdFRpbGUobC5zb3VyY2UsYyx1LGYsdCxlLHIpLGE+MSYmY29uc29sZS50aW1lRW5kKCJkcmlsbGluZyBkb3duIiksdGhpcy50aWxlc1tzXT9ndCh0aGlzLnRpbGVzW3NdLGkpOm51bGwpOm51bGx9O3ZhciBrdD1mdW5jdGlvbihlKXtmdW5jdGlvbiByKHQscixuLGkpe2UuY2FsbCh0aGlzLHQscixuLFR0KSxpJiYodGhpcy5sb2FkR2VvSlNPTj1pKX1yZXR1cm4gZSYmKHIuX19wcm90b19fPWUpLHIucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUpLHIucHJvdG90eXBlLmNvbnN0cnVjdG9yPXIsci5wcm90b3R5cGUubG9hZERhdGE9ZnVuY3Rpb24odCxlKXt0aGlzLl9wZW5kaW5nQ2FsbGJhY2smJnRoaXMuX3BlbmRpbmdDYWxsYmFjayhudWxsLHthYmFuZG9uZWQ6ITB9KSx0aGlzLl9wZW5kaW5nQ2FsbGJhY2s9ZSx0aGlzLl9wZW5kaW5nTG9hZERhdGFQYXJhbXM9dCx0aGlzLl9zdGF0ZSYmIklkbGUiIT09dGhpcy5fc3RhdGU/dGhpcy5fc3RhdGU9Ik5lZWRzTG9hZERhdGEiOih0aGlzLl9zdGF0ZT0iQ29hbGVzY2luZyIsdGhpcy5fbG9hZERhdGEoKSl9LHIucHJvdG90eXBlLl9sb2FkRGF0YT1mdW5jdGlvbigpe3ZhciBlPXRoaXM7aWYodGhpcy5fcGVuZGluZ0NhbGxiYWNrJiZ0aGlzLl9wZW5kaW5nTG9hZERhdGFQYXJhbXMpe3ZhciByPXRoaXMuX3BlbmRpbmdDYWxsYmFjayxuPXRoaXMuX3BlbmRpbmdMb2FkRGF0YVBhcmFtcztkZWxldGUgdGhpcy5fcGVuZGluZ0NhbGxiYWNrLGRlbGV0ZSB0aGlzLl9wZW5kaW5nTG9hZERhdGFQYXJhbXM7dmFyIGk9ISEobiYmbi5yZXF1ZXN0JiZuLnJlcXVlc3QuY29sbGVjdFJlc291cmNlVGltaW5nKSYmbmV3IHQuUmVxdWVzdFBlcmZvcm1hbmNlKG4ucmVxdWVzdCk7dGhpcy5sb2FkR2VvSlNPTihuLChmdW5jdGlvbihhLG8pe2lmKGF8fCFvKXJldHVybiByKGEpO2lmKCJvYmplY3QiIT10eXBlb2YgbylyZXR1cm4gcihuZXcgRXJyb3IoIklucHV0IGRhdGEgZ2l2ZW4gdG8gJyIrbi5zb3VyY2UrIicgaXMgbm90IGEgdmFsaWQgR2VvSlNPTiBvYmplY3QuIikpO2YobywhMCk7dHJ5e2UuX2dlb0pTT05JbmRleD1uLmNsdXN0ZXI/bmV3IFUoZnVuY3Rpb24oZSl7dmFyIHI9ZS5zdXBlcmNsdXN0ZXJPcHRpb25zLG49ZS5jbHVzdGVyUHJvcGVydGllcztpZighbnx8IXIpcmV0dXJuIHI7Zm9yKHZhciBpPXt9LGE9e30sbz17YWNjdW11bGF0ZWQ6bnVsbCx6b29tOjB9LHM9e3Byb3BlcnRpZXM6bnVsbH0sbD1PYmplY3Qua2V5cyhuKSxjPTAsdT1sO2M8dS5sZW5ndGg7Yys9MSl7dmFyIGY9dVtjXSxoPW5bZl0scD1oWzBdLGQ9aFsxXSxtPXQuY3JlYXRlRXhwcmVzc2lvbihkKSxnPXQuY3JlYXRlRXhwcmVzc2lvbigic3RyaW5nIj09dHlwZW9mIHA/W3AsWyJhY2N1bXVsYXRlZCJdLFsiZ2V0IixmXV06cCk7aVtmXT1tLnZhbHVlLGFbZl09Zy52YWx1ZX1yZXR1cm4gci5tYXA9ZnVuY3Rpb24odCl7cy5wcm9wZXJ0aWVzPXQ7Zm9yKHZhciBlPXt9LHI9MCxuPWw7cjxuLmxlbmd0aDtyKz0xKXt2YXIgYT1uW3JdO2VbYV09aVthXS5ldmFsdWF0ZShvLHMpfXJldHVybiBlfSxyLnJlZHVjZT1mdW5jdGlvbih0LGUpe3MucHJvcGVydGllcz1lO2Zvcih2YXIgcj0wLG49bDtyPG4ubGVuZ3RoO3IrPTEpe3ZhciBpPW5bcl07by5hY2N1bXVsYXRlZD10W2ldLHRbaV09YVtpXS5ldmFsdWF0ZShvLHMpfX0scn0obikpLmxvYWQoby5mZWF0dXJlcyk6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IF90KHQsZSl9KG8sbi5nZW9qc29uVnRPcHRpb25zKX1jYXRjaChhKXtyZXR1cm4gcihhKX1lLmxvYWRlZD17fTt2YXIgcz17fTtpZihpKXt2YXIgbD1pLmZpbmlzaCgpO2wmJihzLnJlc291cmNlVGltaW5nPXt9LHMucmVzb3VyY2VUaW1pbmdbbi5zb3VyY2VdPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobCkpKX1yKG51bGwscyl9KSl9fSxyLnByb3RvdHlwZS5jb2FsZXNjZT1mdW5jdGlvbigpeyJDb2FsZXNjaW5nIj09PXRoaXMuX3N0YXRlP3RoaXMuX3N0YXRlPSJJZGxlIjoiTmVlZHNMb2FkRGF0YSI9PT10aGlzLl9zdGF0ZSYmKHRoaXMuX3N0YXRlPSJDb2FsZXNjaW5nIix0aGlzLl9sb2FkRGF0YSgpKX0sci5wcm90b3R5cGUucmVsb2FkVGlsZT1mdW5jdGlvbih0LHIpe3ZhciBuPXRoaXMubG9hZGVkLGk9dC51aWQ7cmV0dXJuIG4mJm5baV0/ZS5wcm90b3R5cGUucmVsb2FkVGlsZS5jYWxsKHRoaXMsdCxyKTp0aGlzLmxvYWRUaWxlKHQscil9LHIucHJvdG90eXBlLmxvYWRHZW9KU09OPWZ1bmN0aW9uKGUscil7aWYoZS5yZXF1ZXN0KXQuZ2V0SlNPTihlLnJlcXVlc3Qscik7ZWxzZXtpZigic3RyaW5nIiE9dHlwZW9mIGUuZGF0YSlyZXR1cm4gcihuZXcgRXJyb3IoIklucHV0IGRhdGEgZ2l2ZW4gdG8gJyIrZS5zb3VyY2UrIicgaXMgbm90IGEgdmFsaWQgR2VvSlNPTiBvYmplY3QuIikpO3RyeXtyZXR1cm4gcihudWxsLEpTT04ucGFyc2UoZS5kYXRhKSl9Y2F0Y2godCl7cmV0dXJuIHIobmV3IEVycm9yKCJJbnB1dCBkYXRhIGdpdmVuIHRvICciK2Uuc291cmNlKyInIGlzIG5vdCBhIHZhbGlkIEdlb0pTT04gb2JqZWN0LiIpKX19fSxyLnByb3RvdHlwZS5yZW1vdmVTb3VyY2U9ZnVuY3Rpb24odCxlKXt0aGlzLl9wZW5kaW5nQ2FsbGJhY2smJnRoaXMuX3BlbmRpbmdDYWxsYmFjayhudWxsLHthYmFuZG9uZWQ6ITB9KSxlKCl9LHIucHJvdG90eXBlLmdldENsdXN0ZXJFeHBhbnNpb25ab29tPWZ1bmN0aW9uKHQsZSl7dHJ5e2UobnVsbCx0aGlzLl9nZW9KU09OSW5kZXguZ2V0Q2x1c3RlckV4cGFuc2lvblpvb20odC5jbHVzdGVySWQpKX1jYXRjaCh0KXtlKHQpfX0sci5wcm90b3R5cGUuZ2V0Q2x1c3RlckNoaWxkcmVuPWZ1bmN0aW9uKHQsZSl7dHJ5e2UobnVsbCx0aGlzLl9nZW9KU09OSW5kZXguZ2V0Q2hpbGRyZW4odC5jbHVzdGVySWQpKX1jYXRjaCh0KXtlKHQpfX0sci5wcm90b3R5cGUuZ2V0Q2x1c3RlckxlYXZlcz1mdW5jdGlvbih0LGUpe3RyeXtlKG51bGwsdGhpcy5fZ2VvSlNPTkluZGV4LmdldExlYXZlcyh0LmNsdXN0ZXJJZCx0LmxpbWl0LHQub2Zmc2V0KSl9Y2F0Y2godCl7ZSh0KX19LHJ9KGwpO3ZhciBBdD1mdW5jdGlvbihlKXt2YXIgcj10aGlzO3RoaXMuc2VsZj1lLHRoaXMuYWN0b3I9bmV3IHQuQWN0b3IoZSx0aGlzKSx0aGlzLmxheWVySW5kZXhlcz17fSx0aGlzLmF2YWlsYWJsZUltYWdlcz17fSx0aGlzLndvcmtlclNvdXJjZVR5cGVzPXt2ZWN0b3I6bCxnZW9qc29uOmt0fSx0aGlzLndvcmtlclNvdXJjZXM9e30sdGhpcy5kZW1Xb3JrZXJTb3VyY2VzPXt9LHRoaXMuc2VsZi5yZWdpc3RlcldvcmtlclNvdXJjZT1mdW5jdGlvbih0LGUpe2lmKHIud29ya2VyU291cmNlVHlwZXNbdF0pdGhyb3cgbmV3IEVycm9yKCdXb3JrZXIgc291cmNlIHdpdGggbmFtZSAiJyt0KyciIGFscmVhZHkgcmVnaXN0ZXJlZC4nKTtyLndvcmtlclNvdXJjZVR5cGVzW3RdPWV9LHRoaXMuc2VsZi5yZWdpc3RlclJUTFRleHRQbHVnaW49ZnVuY3Rpb24oZSl7aWYodC5wbHVnaW4uaXNQYXJzZWQoKSl0aHJvdyBuZXcgRXJyb3IoIlJUTCB0ZXh0IHBsdWdpbiBhbHJlYWR5IHJlZ2lzdGVyZWQuIik7dC5wbHVnaW4uYXBwbHlBcmFiaWNTaGFwaW5nPWUuYXBwbHlBcmFiaWNTaGFwaW5nLHQucGx1Z2luLnByb2Nlc3NCaWRpcmVjdGlvbmFsVGV4dD1lLnByb2Nlc3NCaWRpcmVjdGlvbmFsVGV4dCx0LnBsdWdpbi5wcm9jZXNzU3R5bGVkQmlkaXJlY3Rpb25hbFRleHQ9ZS5wcm9jZXNzU3R5bGVkQmlkaXJlY3Rpb25hbFRleHR9fTtyZXR1cm4gQXQucHJvdG90eXBlLnNldFJlZmVycmVyPWZ1bmN0aW9uKHQsZSl7dGhpcy5yZWZlcnJlcj1lfSxBdC5wcm90b3R5cGUuc2V0SW1hZ2VzPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG4gaW4gdGhpcy5hdmFpbGFibGVJbWFnZXNbdF09ZSx0aGlzLndvcmtlclNvdXJjZXNbdF0pe3ZhciBpPXRoaXMud29ya2VyU291cmNlc1t0XVtuXTtmb3IodmFyIGEgaW4gaSlpW2FdLmF2YWlsYWJsZUltYWdlcz1lfXIoKX0sQXQucHJvdG90eXBlLnNldExheWVycz1mdW5jdGlvbih0LGUscil7dGhpcy5nZXRMYXllckluZGV4KHQpLnJlcGxhY2UoZSkscigpfSxBdC5wcm90b3R5cGUudXBkYXRlTGF5ZXJzPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLmdldExheWVySW5kZXgodCkudXBkYXRlKGUubGF5ZXJzLGUucmVtb3ZlZElkcykscigpfSxBdC5wcm90b3R5cGUubG9hZFRpbGU9ZnVuY3Rpb24odCxlLHIpe3RoaXMuZ2V0V29ya2VyU291cmNlKHQsZS50eXBlLGUuc291cmNlKS5sb2FkVGlsZShlLHIpfSxBdC5wcm90b3R5cGUubG9hZERFTVRpbGU9ZnVuY3Rpb24odCxlLHIpe3RoaXMuZ2V0REVNV29ya2VyU291cmNlKHQsZS5zb3VyY2UpLmxvYWRUaWxlKGUscil9LEF0LnByb3RvdHlwZS5yZWxvYWRUaWxlPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLmdldFdvcmtlclNvdXJjZSh0LGUudHlwZSxlLnNvdXJjZSkucmVsb2FkVGlsZShlLHIpfSxBdC5wcm90b3R5cGUuYWJvcnRUaWxlPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLmdldFdvcmtlclNvdXJjZSh0LGUudHlwZSxlLnNvdXJjZSkuYWJvcnRUaWxlKGUscil9LEF0LnByb3RvdHlwZS5yZW1vdmVUaWxlPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLmdldFdvcmtlclNvdXJjZSh0LGUudHlwZSxlLnNvdXJjZSkucmVtb3ZlVGlsZShlLHIpfSxBdC5wcm90b3R5cGUucmVtb3ZlREVNVGlsZT1mdW5jdGlvbih0LGUpe3RoaXMuZ2V0REVNV29ya2VyU291cmNlKHQsZS5zb3VyY2UpLnJlbW92ZVRpbGUoZSl9LEF0LnByb3RvdHlwZS5yZW1vdmVTb3VyY2U9ZnVuY3Rpb24odCxlLHIpe2lmKHRoaXMud29ya2VyU291cmNlc1t0XSYmdGhpcy53b3JrZXJTb3VyY2VzW3RdW2UudHlwZV0mJnRoaXMud29ya2VyU291cmNlc1t0XVtlLnR5cGVdW2Uuc291cmNlXSl7dmFyIG49dGhpcy53b3JrZXJTb3VyY2VzW3RdW2UudHlwZV1bZS5zb3VyY2VdO2RlbGV0ZSB0aGlzLndvcmtlclNvdXJjZXNbdF1bZS50eXBlXVtlLnNvdXJjZV0sdm9pZCAwIT09bi5yZW1vdmVTb3VyY2U/bi5yZW1vdmVTb3VyY2UoZSxyKTpyKCl9fSxBdC5wcm90b3R5cGUubG9hZFdvcmtlclNvdXJjZT1mdW5jdGlvbih0LGUscil7dHJ5e3RoaXMuc2VsZi5pbXBvcnRTY3JpcHRzKGUudXJsKSxyKCl9Y2F0Y2godCl7cih0LnRvU3RyaW5nKCkpfX0sQXQucHJvdG90eXBlLnN5bmNSVExQbHVnaW5TdGF0ZT1mdW5jdGlvbihlLHIsbil7dHJ5e3QucGx1Z2luLnNldFN0YXRlKHIpO3ZhciBpPXQucGx1Z2luLmdldFBsdWdpblVSTCgpO2lmKHQucGx1Z2luLmlzTG9hZGVkKCkmJiF0LnBsdWdpbi5pc1BhcnNlZCgpJiZudWxsIT1pKXt0aGlzLnNlbGYuaW1wb3J0U2NyaXB0cyhpKTt2YXIgYT10LnBsdWdpbi5pc1BhcnNlZCgpO24oYT92b2lkIDA6bmV3IEVycm9yKCJSVEwgVGV4dCBQbHVnaW4gZmFpbGVkIHRvIGltcG9ydCBzY3JpcHRzIGZyb20gIitpKSxhKX19Y2F0Y2godCl7bih0LnRvU3RyaW5nKCkpfX0sQXQucHJvdG90eXBlLmdldEF2YWlsYWJsZUltYWdlcz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmF2YWlsYWJsZUltYWdlc1t0XTtyZXR1cm4gZXx8KGU9W10pLGV9LEF0LnByb3RvdHlwZS5nZXRMYXllckluZGV4PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubGF5ZXJJbmRleGVzW3RdO3JldHVybiBlfHwoZT10aGlzLmxheWVySW5kZXhlc1t0XT1uZXcgbiksZX0sQXQucHJvdG90eXBlLmdldFdvcmtlclNvdXJjZT1mdW5jdGlvbih0LGUscil7dmFyIG49dGhpcztpZih0aGlzLndvcmtlclNvdXJjZXNbdF18fCh0aGlzLndvcmtlclNvdXJjZXNbdF09e30pLHRoaXMud29ya2VyU291cmNlc1t0XVtlXXx8KHRoaXMud29ya2VyU291cmNlc1t0XVtlXT17fSksIXRoaXMud29ya2VyU291cmNlc1t0XVtlXVtyXSl7dmFyIGk9e3NlbmQ6ZnVuY3Rpb24oZSxyLGkpe24uYWN0b3Iuc2VuZChlLHIsaSx0KX19O3RoaXMud29ya2VyU291cmNlc1t0XVtlXVtyXT1uZXcgdGhpcy53b3JrZXJTb3VyY2VUeXBlc1tlXShpLHRoaXMuZ2V0TGF5ZXJJbmRleCh0KSx0aGlzLmdldEF2YWlsYWJsZUltYWdlcyh0KSl9cmV0dXJuIHRoaXMud29ya2VyU291cmNlc1t0XVtlXVtyXX0sQXQucHJvdG90eXBlLmdldERFTVdvcmtlclNvdXJjZT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmRlbVdvcmtlclNvdXJjZXNbdF18fCh0aGlzLmRlbVdvcmtlclNvdXJjZXNbdF09e30pLHRoaXMuZGVtV29ya2VyU291cmNlc1t0XVtlXXx8KHRoaXMuZGVtV29ya2VyU291cmNlc1t0XVtlXT1uZXcgdSksdGhpcy5kZW1Xb3JrZXJTb3VyY2VzW3RdW2VdfSxBdC5wcm90b3R5cGUuZW5mb3JjZUNhY2hlU2l6ZUxpbWl0PWZ1bmN0aW9uKGUscil7dC5lbmZvcmNlQ2FjaGVTaXplTGltaXQocil9LCJ1bmRlZmluZWQiIT10eXBlb2YgV29ya2VyR2xvYmFsU2NvcGUmJnZvaWQgMCE9PXQud2luZG93JiZ0LndpbmRvdyBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlJiYodC53aW5kb3cud29ya2VyPW5ldyBBdCh0LndpbmRvdykpLEF0fSkpLG4oMCwoZnVuY3Rpb24odCl7dmFyIGU9dC5jcmVhdGVDb21tb25qc01vZHVsZSgoZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0KXtyZXR1cm4hcih0KX1mdW5jdGlvbiByKHQpe3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93fHwidW5kZWZpbmVkIj09dHlwZW9mIGRvY3VtZW50PyJub3QgYSBicm93c2VyIjpBcnJheS5wcm90b3R5cGUmJkFycmF5LnByb3RvdHlwZS5ldmVyeSYmQXJyYXkucHJvdG90eXBlLmZpbHRlciYmQXJyYXkucHJvdG90eXBlLmZvckVhY2gmJkFycmF5LnByb3RvdHlwZS5pbmRleE9mJiZBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YmJkFycmF5LnByb3RvdHlwZS5tYXAmJkFycmF5LnByb3RvdHlwZS5zb21lJiZBcnJheS5wcm90b3R5cGUucmVkdWNlJiZBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQmJkFycmF5LmlzQXJyYXk/RnVuY3Rpb24ucHJvdG90eXBlJiZGdW5jdGlvbi5wcm90b3R5cGUuYmluZD9PYmplY3Qua2V5cyYmT2JqZWN0LmNyZWF0ZSYmT2JqZWN0LmdldFByb3RvdHlwZU9mJiZPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyYmT2JqZWN0LmlzU2VhbGVkJiZPYmplY3QuaXNGcm96ZW4mJk9iamVjdC5pc0V4dGVuc2libGUmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3ImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSYmT2JqZWN0LmRlZmluZVByb3BlcnRpZXMmJk9iamVjdC5zZWFsJiZPYmplY3QuZnJlZXplJiZPYmplY3QucHJldmVudEV4dGVuc2lvbnM/IkpTT04iaW4gd2luZG93JiYicGFyc2UiaW4gSlNPTiYmInN0cmluZ2lmeSJpbiBKU09OP2Z1bmN0aW9uKCl7aWYoISgiV29ya2VyImluIHdpbmRvdyYmIkJsb2IiaW4gd2luZG93JiYiVVJMImluIHdpbmRvdykpcmV0dXJuITE7dmFyIHQsZSxyPW5ldyBCbG9iKFsiIl0se3R5cGU6InRleHQvamF2YXNjcmlwdCJ9KSxuPVVSTC5jcmVhdGVPYmplY3RVUkwocik7dHJ5e2U9bmV3IFdvcmtlcihuKSx0PSEwfWNhdGNoKGUpe3Q9ITF9ZSYmZS50ZXJtaW5hdGUoKTtyZXR1cm4gVVJMLnJldm9rZU9iamVjdFVSTChuKSx0fSgpPyJVaW50OENsYW1wZWRBcnJheSJpbiB3aW5kb3c/QXJyYXlCdWZmZXIuaXNWaWV3P2Z1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7dC53aWR0aD10LmhlaWdodD0xO3ZhciBlPXQuZ2V0Q29udGV4dCgiMmQiKTtpZighZSlyZXR1cm4hMTt2YXIgcj1lLmdldEltYWdlRGF0YSgwLDAsMSwxKTtyZXR1cm4gciYmci53aWR0aD09PXQud2lkdGh9KCk/ZnVuY3Rpb24odCl7dm9pZCAwPT09blt0XSYmKG5bdF09ZnVuY3Rpb24odCl7dmFyIHI9ZnVuY3Rpb24odCl7dmFyIHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksbj1PYmplY3QuY3JlYXRlKGUud2ViR0xDb250ZXh0QXR0cmlidXRlcyk7cmV0dXJuIG4uZmFpbElmTWFqb3JQZXJmb3JtYW5jZUNhdmVhdD10LHIucHJvYmFibHlTdXBwb3J0c0NvbnRleHQ/ci5wcm9iYWJseVN1cHBvcnRzQ29udGV4dCgid2ViZ2wiLG4pfHxyLnByb2JhYmx5U3VwcG9ydHNDb250ZXh0KCJleHBlcmltZW50YWwtd2ViZ2wiLG4pOnIuc3VwcG9ydHNDb250ZXh0P3Iuc3VwcG9ydHNDb250ZXh0KCJ3ZWJnbCIsbil8fHIuc3VwcG9ydHNDb250ZXh0KCJleHBlcmltZW50YWwtd2ViZ2wiLG4pOnIuZ2V0Q29udGV4dCgid2ViZ2wiLG4pfHxyLmdldENvbnRleHQoImV4cGVyaW1lbnRhbC13ZWJnbCIsbil9KHQpO2lmKCFyKXJldHVybiExO3ZhciBuPXIuY3JlYXRlU2hhZGVyKHIuVkVSVEVYX1NIQURFUik7aWYoIW58fHIuaXNDb250ZXh0TG9zdCgpKXJldHVybiExO3JldHVybiByLnNoYWRlclNvdXJjZShuLCJ2b2lkIG1haW4oKSB7fSIpLHIuY29tcGlsZVNoYWRlcihuKSwhMD09PXIuZ2V0U2hhZGVyUGFyYW1ldGVyKG4sci5DT01QSUxFX1NUQVRVUyl9KHQpKTtyZXR1cm4gblt0XX0odCYmdC5mYWlsSWZNYWpvclBlcmZvcm1hbmNlQ2F2ZWF0KT92b2lkIDA6Imluc3VmZmljaWVudCBXZWJHTCBzdXBwb3J0IjoiaW5zdWZmaWNpZW50IENhbnZhcy9nZXRJbWFnZURhdGEgc3VwcG9ydCI6Imluc3VmZmljaWVudCBBcnJheUJ1ZmZlciBzdXBwb3J0IjoiaW5zdWZmaWNpZW50IFVpbnQ4Q2xhbXBlZEFycmF5IHN1cHBvcnQiOiJpbnN1ZmZpY2llbnQgd29ya2VyIHN1cHBvcnQiOiJpbnN1ZmZpY2llbnQgSlNPTiBzdXBwb3J0IjoiaW5zdWZmaWNpZW50IE9iamVjdCBzdXBwb3J0IjoiaW5zdWZmaWNpZW50IEZ1bmN0aW9uIHN1cHBvcnQiOiJpbnN1ZmZpY2VudCBBcnJheSBzdXBwb3J0In10LmV4cG9ydHM/dC5leHBvcnRzPWU6d2luZG93JiYod2luZG93Lm1hcGJveGdsPXdpbmRvdy5tYXBib3hnbHx8e30sd2luZG93Lm1hcGJveGdsLnN1cHBvcnRlZD1lLHdpbmRvdy5tYXBib3hnbC5ub3RTdXBwb3J0ZWRSZWFzb249cik7dmFyIG49e307ZS53ZWJHTENvbnRleHRBdHRyaWJ1dGVzPXthbnRpYWxpYXM6ITEsYWxwaGE6ITAsc3RlbmNpbDohMCxkZXB0aDohMH19KSkscj17Y3JlYXRlOmZ1bmN0aW9uKGUscixuKXt2YXIgaT10LndpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KGUpO3JldHVybiB2b2lkIDAhPT1yJiYoaS5jbGFzc05hbWU9ciksbiYmbi5hcHBlbmRDaGlsZChpKSxpfSxjcmVhdGVOUzpmdW5jdGlvbihlLHIpe3JldHVybiB0LndpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoZSxyKX19LG49dC53aW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlO2Z1bmN0aW9uIGkodCl7aWYoIW4pcmV0dXJuIHRbMF07Zm9yKHZhciBlPTA7ZTx0Lmxlbmd0aDtlKyspaWYodFtlXWluIG4pcmV0dXJuIHRbZV07cmV0dXJuIHRbMF19dmFyIGEsbz1pKFsidXNlclNlbGVjdCIsIk1velVzZXJTZWxlY3QiLCJXZWJraXRVc2VyU2VsZWN0IiwibXNVc2VyU2VsZWN0Il0pO3IuZGlzYWJsZURyYWc9ZnVuY3Rpb24oKXtuJiZvJiYoYT1uW29dLG5bb109Im5vbmUiKX0sci5lbmFibGVEcmFnPWZ1bmN0aW9uKCl7biYmbyYmKG5bb109YSl9O3ZhciBzPWkoWyJ0cmFuc2Zvcm0iLCJXZWJraXRUcmFuc2Zvcm0iXSk7ci5zZXRUcmFuc2Zvcm09ZnVuY3Rpb24odCxlKXt0LnN0eWxlW3NdPWV9O3ZhciBsPSExO3RyeXt2YXIgYz1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXtsPSEwfX0pO3Qud2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLGMsYyksdC53aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigidGVzdCIsYyxjKX1jYXRjaCh0KXtsPSExfXIuYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbih0LGUscixuKXt2b2lkIDA9PT1uJiYobj17fSksInBhc3NpdmUiaW4gbiYmbD90LmFkZEV2ZW50TGlzdGVuZXIoZSxyLG4pOnQuYWRkRXZlbnRMaXN0ZW5lcihlLHIsbi5jYXB0dXJlKX0sci5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKHQsZSxyLG4pe3ZvaWQgMD09PW4mJihuPXt9KSwicGFzc2l2ZSJpbiBuJiZsP3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLHIsbik6dC5yZW1vdmVFdmVudExpc3RlbmVyKGUscixuLmNhcHR1cmUpfTt2YXIgdT1mdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSx0LndpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdSwhMCl9O2Z1bmN0aW9uIGYodCl7dmFyIGU9dC51c2VySW1hZ2U7aWYoZSYmZS5yZW5kZXImJmUucmVuZGVyKCkpcmV0dXJuIHQuZGF0YS5yZXBsYWNlKG5ldyBVaW50OEFycmF5KGUuZGF0YS5idWZmZXIpKSwhMDtyZXR1cm4hMX1yLnN1cHByZXNzQ2xpY2s9ZnVuY3Rpb24oKXt0LndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdSwhMCksdC53aW5kb3cuc2V0VGltZW91dCgoZnVuY3Rpb24oKXt0LndpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdSwhMCl9KSwwKX0sci5tb3VzZVBvcz1mdW5jdGlvbihlLHIpe3ZhciBuPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuIG5ldyB0LlBvaW50KHIuY2xpZW50WC1uLmxlZnQtZS5jbGllbnRMZWZ0LHIuY2xpZW50WS1uLnRvcC1lLmNsaWVudFRvcCl9LHIudG91Y2hQb3M9ZnVuY3Rpb24oZSxyKXtmb3IodmFyIG49ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxpPVtdLGE9MDthPHIubGVuZ3RoO2ErKylpLnB1c2gobmV3IHQuUG9pbnQoclthXS5jbGllbnRYLW4ubGVmdC1lLmNsaWVudExlZnQsclthXS5jbGllbnRZLW4udG9wLWUuY2xpZW50VG9wKSk7cmV0dXJuIGl9LHIubW91c2VCdXR0b249ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMCE9PXQud2luZG93Lkluc3RhbGxUcmlnZ2VyJiYyPT09ZS5idXR0b24mJmUuY3RybEtleSYmdC53aW5kb3cubmF2aWdhdG9yLnBsYXRmb3JtLnRvVXBwZXJDYXNlKCkuaW5kZXhPZigiTUFDIik+PTA/MDplLmJ1dHRvbn0sci5yZW1vdmU9ZnVuY3Rpb24odCl7dC5wYXJlbnROb2RlJiZ0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCl9O3ZhciBoPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHIoKXtlLmNhbGwodGhpcyksdGhpcy5pbWFnZXM9e30sdGhpcy51cGRhdGVkSW1hZ2VzPXt9LHRoaXMuY2FsbGJhY2tEaXNwYXRjaGVkVGhpc0ZyYW1lPXt9LHRoaXMubG9hZGVkPSExLHRoaXMucmVxdWVzdG9ycz1bXSx0aGlzLnBhdHRlcm5zPXt9LHRoaXMuYXRsYXNJbWFnZT1uZXcgdC5SR0JBSW1hZ2Uoe3dpZHRoOjEsaGVpZ2h0OjF9KSx0aGlzLmRpcnR5PSEwfXJldHVybiBlJiYoci5fX3Byb3RvX189ZSksci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixyLnByb3RvdHlwZS5pc0xvYWRlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxvYWRlZH0sci5wcm90b3R5cGUuc2V0TG9hZGVkPWZ1bmN0aW9uKHQpe2lmKHRoaXMubG9hZGVkIT09dCYmKHRoaXMubG9hZGVkPXQsdCkpe2Zvcih2YXIgZT0wLHI9dGhpcy5yZXF1ZXN0b3JzO2U8ci5sZW5ndGg7ZSs9MSl7dmFyIG49cltlXSxpPW4uaWRzLGE9bi5jYWxsYmFjazt0aGlzLl9ub3RpZnkoaSxhKX10aGlzLnJlcXVlc3RvcnM9W119fSxyLnByb3RvdHlwZS5nZXRJbWFnZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pbWFnZXNbdF19LHIucHJvdG90eXBlLmFkZEltYWdlPWZ1bmN0aW9uKHQsZSl7dGhpcy5fdmFsaWRhdGUodCxlKSYmKHRoaXMuaW1hZ2VzW3RdPWUpfSxyLnByb3RvdHlwZS5fdmFsaWRhdGU9ZnVuY3Rpb24oZSxyKXt2YXIgbj0hMDtyZXR1cm4gdGhpcy5fdmFsaWRhdGVTdHJldGNoKHIuc3RyZXRjaFgsci5kYXRhJiZyLmRhdGEud2lkdGgpfHwodGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCdJbWFnZSAiJytlKyciIGhhcyBpbnZhbGlkICJzdHJldGNoWCIgdmFsdWUnKSkpLG49ITEpLHRoaXMuX3ZhbGlkYXRlU3RyZXRjaChyLnN0cmV0Y2hZLHIuZGF0YSYmci5kYXRhLmhlaWdodCl8fCh0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoJ0ltYWdlICInK2UrJyIgaGFzIGludmFsaWQgInN0cmV0Y2hZIiB2YWx1ZScpKSksbj0hMSksdGhpcy5fdmFsaWRhdGVDb250ZW50KHIuY29udGVudCxyKXx8KHRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcignSW1hZ2UgIicrZSsnIiBoYXMgaW52YWxpZCAiY29udGVudCIgdmFsdWUnKSkpLG49ITEpLG59LHIucHJvdG90eXBlLl92YWxpZGF0ZVN0cmV0Y2g9ZnVuY3Rpb24odCxlKXtpZighdClyZXR1cm4hMDtmb3IodmFyIHI9MCxuPTAsaT10O248aS5sZW5ndGg7bis9MSl7dmFyIGE9aVtuXTtpZihhWzBdPHJ8fGFbMV08YVswXXx8ZTxhWzFdKXJldHVybiExO3I9YVsxXX1yZXR1cm4hMH0sci5wcm90b3R5cGUuX3ZhbGlkYXRlQ29udGVudD1mdW5jdGlvbih0LGUpe3JldHVybiF0fHw0PT09dC5sZW5ndGgmJighKHRbMF08MHx8ZS5kYXRhLndpZHRoPHRbMF0pJiYoISh0WzFdPDB8fGUuZGF0YS5oZWlnaHQ8dFsxXSkmJighKHRbMl08MHx8ZS5kYXRhLndpZHRoPHRbMl0pJiYoISh0WzNdPDB8fGUuZGF0YS5oZWlnaHQ8dFszXSkmJighKHRbMl08dFswXSkmJiEodFszXTx0WzFdKSkpKSkpfSxyLnByb3RvdHlwZS51cGRhdGVJbWFnZT1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuaW1hZ2VzW3RdO2UudmVyc2lvbj1yLnZlcnNpb24rMSx0aGlzLmltYWdlc1t0XT1lLHRoaXMudXBkYXRlZEltYWdlc1t0XT0hMH0sci5wcm90b3R5cGUucmVtb3ZlSW1hZ2U9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5pbWFnZXNbdF07ZGVsZXRlIHRoaXMuaW1hZ2VzW3RdLGRlbGV0ZSB0aGlzLnBhdHRlcm5zW3RdLGUudXNlckltYWdlJiZlLnVzZXJJbWFnZS5vblJlbW92ZSYmZS51c2VySW1hZ2Uub25SZW1vdmUoKX0sci5wcm90b3R5cGUubGlzdEltYWdlcz1mdW5jdGlvbigpe3JldHVybiBPYmplY3Qua2V5cyh0aGlzLmltYWdlcyl9LHIucHJvdG90eXBlLmdldEltYWdlcz1mdW5jdGlvbih0LGUpe3ZhciByPSEwO2lmKCF0aGlzLmlzTG9hZGVkKCkpZm9yKHZhciBuPTAsaT10O248aS5sZW5ndGg7bis9MSl7dmFyIGE9aVtuXTt0aGlzLmltYWdlc1thXXx8KHI9ITEpfXRoaXMuaXNMb2FkZWQoKXx8cj90aGlzLl9ub3RpZnkodCxlKTp0aGlzLnJlcXVlc3RvcnMucHVzaCh7aWRzOnQsY2FsbGJhY2s6ZX0pfSxyLnByb3RvdHlwZS5fbm90aWZ5PWZ1bmN0aW9uKGUscil7Zm9yKHZhciBuPXt9LGk9MCxhPWU7aTxhLmxlbmd0aDtpKz0xKXt2YXIgbz1hW2ldO3RoaXMuaW1hZ2VzW29dfHx0aGlzLmZpcmUobmV3IHQuRXZlbnQoInN0eWxlaW1hZ2VtaXNzaW5nIix7aWQ6b30pKTt2YXIgcz10aGlzLmltYWdlc1tvXTtzP25bb109e2RhdGE6cy5kYXRhLmNsb25lKCkscGl4ZWxSYXRpbzpzLnBpeGVsUmF0aW8sc2RmOnMuc2RmLHZlcnNpb246cy52ZXJzaW9uLHN0cmV0Y2hYOnMuc3RyZXRjaFgsc3RyZXRjaFk6cy5zdHJldGNoWSxjb250ZW50OnMuY29udGVudCxoYXNSZW5kZXJDYWxsYmFjazpCb29sZWFuKHMudXNlckltYWdlJiZzLnVzZXJJbWFnZS5yZW5kZXIpfTp0Lndhcm5PbmNlKCdJbWFnZSAiJytvKyciIGNvdWxkIG5vdCBiZSBsb2FkZWQuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGhhdmUgYWRkZWQgdGhlIGltYWdlIHdpdGggbWFwLmFkZEltYWdlKCkgb3IgYSAic3ByaXRlIiBwcm9wZXJ0eSBpbiB5b3VyIHN0eWxlLiBZb3UgY2FuIHByb3ZpZGUgbWlzc2luZyBpbWFnZXMgYnkgbGlzdGVuaW5nIGZvciB0aGUgInN0eWxlaW1hZ2VtaXNzaW5nIiBtYXAgZXZlbnQuJyl9cihudWxsLG4pfSxyLnByb3RvdHlwZS5nZXRQaXhlbFNpemU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmF0bGFzSW1hZ2U7cmV0dXJue3dpZHRoOnQud2lkdGgsaGVpZ2h0OnQuaGVpZ2h0fX0sci5wcm90b3R5cGUuZ2V0UGF0dGVybj1mdW5jdGlvbihlKXt2YXIgcj10aGlzLnBhdHRlcm5zW2VdLG49dGhpcy5nZXRJbWFnZShlKTtpZighbilyZXR1cm4gbnVsbDtpZihyJiZyLnBvc2l0aW9uLnZlcnNpb249PT1uLnZlcnNpb24pcmV0dXJuIHIucG9zaXRpb247aWYocilyLnBvc2l0aW9uLnZlcnNpb249bi52ZXJzaW9uO2Vsc2V7dmFyIGk9e3c6bi5kYXRhLndpZHRoKzIsaDpuLmRhdGEuaGVpZ2h0KzIseDowLHk6MH0sYT1uZXcgdC5JbWFnZVBvc2l0aW9uKGksbik7dGhpcy5wYXR0ZXJuc1tlXT17YmluOmkscG9zaXRpb246YX19cmV0dXJuIHRoaXMuX3VwZGF0ZVBhdHRlcm5BdGxhcygpLHRoaXMucGF0dGVybnNbZV0ucG9zaXRpb259LHIucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oZSl7dmFyIHI9ZS5nbDt0aGlzLmF0bGFzVGV4dHVyZT90aGlzLmRpcnR5JiYodGhpcy5hdGxhc1RleHR1cmUudXBkYXRlKHRoaXMuYXRsYXNJbWFnZSksdGhpcy5kaXJ0eT0hMSk6dGhpcy5hdGxhc1RleHR1cmU9bmV3IHQuVGV4dHVyZShlLHRoaXMuYXRsYXNJbWFnZSxyLlJHQkEpLHRoaXMuYXRsYXNUZXh0dXJlLmJpbmQoci5MSU5FQVIsci5DTEFNUF9UT19FREdFKX0sci5wcm90b3R5cGUuX3VwZGF0ZVBhdHRlcm5BdGxhcz1mdW5jdGlvbigpe3ZhciBlPVtdO2Zvcih2YXIgciBpbiB0aGlzLnBhdHRlcm5zKWUucHVzaCh0aGlzLnBhdHRlcm5zW3JdLmJpbik7dmFyIG49dC5wb3RwYWNrKGUpLGk9bi53LGE9bi5oLG89dGhpcy5hdGxhc0ltYWdlO2Zvcih2YXIgcyBpbiBvLnJlc2l6ZSh7d2lkdGg6aXx8MSxoZWlnaHQ6YXx8MX0pLHRoaXMucGF0dGVybnMpe3ZhciBsPXRoaXMucGF0dGVybnNbc10uYmluLGM9bC54KzEsdT1sLnkrMSxmPXRoaXMuaW1hZ2VzW3NdLmRhdGEsaD1mLndpZHRoLHA9Zi5oZWlnaHQ7dC5SR0JBSW1hZ2UuY29weShmLG8se3g6MCx5OjB9LHt4OmMseTp1fSx7d2lkdGg6aCxoZWlnaHQ6cH0pLHQuUkdCQUltYWdlLmNvcHkoZixvLHt4OjAseTpwLTF9LHt4OmMseTp1LTF9LHt3aWR0aDpoLGhlaWdodDoxfSksdC5SR0JBSW1hZ2UuY29weShmLG8se3g6MCx5OjB9LHt4OmMseTp1K3B9LHt3aWR0aDpoLGhlaWdodDoxfSksdC5SR0JBSW1hZ2UuY29weShmLG8se3g6aC0xLHk6MH0se3g6Yy0xLHk6dX0se3dpZHRoOjEsaGVpZ2h0OnB9KSx0LlJHQkFJbWFnZS5jb3B5KGYsbyx7eDowLHk6MH0se3g6YytoLHk6dX0se3dpZHRoOjEsaGVpZ2h0OnB9KX10aGlzLmRpcnR5PSEwfSxyLnByb3RvdHlwZS5iZWdpbkZyYW1lPWZ1bmN0aW9uKCl7dGhpcy5jYWxsYmFja0Rpc3BhdGNoZWRUaGlzRnJhbWU9e319LHIucHJvdG90eXBlLmRpc3BhdGNoUmVuZGVyQ2FsbGJhY2tzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLHI9dDtlPHIubGVuZ3RoO2UrPTEpe3ZhciBuPXJbZV07aWYoIXRoaXMuY2FsbGJhY2tEaXNwYXRjaGVkVGhpc0ZyYW1lW25dKXt0aGlzLmNhbGxiYWNrRGlzcGF0Y2hlZFRoaXNGcmFtZVtuXT0hMDt2YXIgaT10aGlzLmltYWdlc1tuXTtmKGkpJiZ0aGlzLnVwZGF0ZUltYWdlKG4saSl9fX0scn0odC5FdmVudGVkKTt2YXIgcD1nLGQ9ZyxtPTFlMjA7ZnVuY3Rpb24gZyh0LGUscixuLGksYSl7dGhpcy5mb250U2l6ZT10fHwyNCx0aGlzLmJ1ZmZlcj12b2lkIDA9PT1lPzM6ZSx0aGlzLmN1dG9mZj1ufHwuMjUsdGhpcy5mb250RmFtaWx5PWl8fCJzYW5zLXNlcmlmIix0aGlzLmZvbnRXZWlnaHQ9YXx8Im5vcm1hbCIsdGhpcy5yYWRpdXM9cnx8ODt2YXIgbz10aGlzLnNpemU9dGhpcy5mb250U2l6ZSsyKnRoaXMuYnVmZmVyO3RoaXMuY2FudmFzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLHRoaXMuY2FudmFzLndpZHRoPXRoaXMuY2FudmFzLmhlaWdodD1vLHRoaXMuY3R4PXRoaXMuY2FudmFzLmdldENvbnRleHQoIjJkIiksdGhpcy5jdHguZm9udD10aGlzLmZvbnRXZWlnaHQrIiAiK3RoaXMuZm9udFNpemUrInB4ICIrdGhpcy5mb250RmFtaWx5LHRoaXMuY3R4LnRleHRCYXNlbGluZT0ibWlkZGxlIix0aGlzLmN0eC5maWxsU3R5bGU9ImJsYWNrIix0aGlzLmdyaWRPdXRlcj1uZXcgRmxvYXQ2NEFycmF5KG8qbyksdGhpcy5ncmlkSW5uZXI9bmV3IEZsb2F0NjRBcnJheShvKm8pLHRoaXMuZj1uZXcgRmxvYXQ2NEFycmF5KG8pLHRoaXMuZD1uZXcgRmxvYXQ2NEFycmF5KG8pLHRoaXMuej1uZXcgRmxvYXQ2NEFycmF5KG8rMSksdGhpcy52PW5ldyBJbnQxNkFycmF5KG8pLHRoaXMubWlkZGxlPU1hdGgucm91bmQoby8yKihuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIkdlY2tvLyIpPj0wPzEuMjoxKSl9ZnVuY3Rpb24gdih0LGUscixuLGksYSxvKXtmb3IodmFyIHM9MDtzPGU7cysrKXtmb3IodmFyIGw9MDtsPHI7bCsrKW5bbF09dFtsKmUrc107Zm9yKHkobixpLGEsbyxyKSxsPTA7bDxyO2wrKyl0W2wqZStzXT1pW2xdfWZvcihsPTA7bDxyO2wrKyl7Zm9yKHM9MDtzPGU7cysrKW5bc109dFtsKmUrc107Zm9yKHkobixpLGEsbyxlKSxzPTA7czxlO3MrKyl0W2wqZStzXT1NYXRoLnNxcnQoaVtzXSl9fWZ1bmN0aW9uIHkodCxlLHIsbixpKXtyWzBdPTAsblswXT0tbSxuWzFdPSttO2Zvcih2YXIgYT0xLG89MDthPGk7YSsrKXtmb3IodmFyIHM9KHRbYV0rYSphLSh0W3Jbb11dK3Jbb10qcltvXSkpLygyKmEtMipyW29dKTtzPD1uW29dOylvLS0scz0odFthXSthKmEtKHRbcltvXV0rcltvXSpyW29dKSkvKDIqYS0yKnJbb10pO3JbKytvXT1hLG5bb109cyxuW28rMV09K219Zm9yKGE9MCxvPTA7YTxpO2ErKyl7Zm9yKDtuW28rMV08YTspbysrO2VbYV09KGEtcltvXSkqKGEtcltvXSkrdFtyW29dXX19Zy5wcm90b3R5cGUuZHJhdz1mdW5jdGlvbih0KXt0aGlzLmN0eC5jbGVhclJlY3QoMCwwLHRoaXMuc2l6ZSx0aGlzLnNpemUpLHRoaXMuY3R4LmZpbGxUZXh0KHQsdGhpcy5idWZmZXIsdGhpcy5taWRkbGUpO2Zvcih2YXIgZT10aGlzLmN0eC5nZXRJbWFnZURhdGEoMCwwLHRoaXMuc2l6ZSx0aGlzLnNpemUpLHI9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KHRoaXMuc2l6ZSp0aGlzLnNpemUpLG49MDtuPHRoaXMuc2l6ZSp0aGlzLnNpemU7bisrKXt2YXIgaT1lLmRhdGFbNCpuKzNdLzI1NTt0aGlzLmdyaWRPdXRlcltuXT0xPT09aT8wOjA9PT1pP206TWF0aC5wb3coTWF0aC5tYXgoMCwuNS1pKSwyKSx0aGlzLmdyaWRJbm5lcltuXT0xPT09aT9tOjA9PT1pPzA6TWF0aC5wb3coTWF0aC5tYXgoMCxpLS41KSwyKX1mb3Iodih0aGlzLmdyaWRPdXRlcix0aGlzLnNpemUsdGhpcy5zaXplLHRoaXMuZix0aGlzLmQsdGhpcy52LHRoaXMueiksdih0aGlzLmdyaWRJbm5lcix0aGlzLnNpemUsdGhpcy5zaXplLHRoaXMuZix0aGlzLmQsdGhpcy52LHRoaXMueiksbj0wO248dGhpcy5zaXplKnRoaXMuc2l6ZTtuKyspe3ZhciBhPXRoaXMuZ3JpZE91dGVyW25dLXRoaXMuZ3JpZElubmVyW25dO3Jbbl09TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCgyNTUtMjU1KihhL3RoaXMucmFkaXVzK3RoaXMuY3V0b2ZmKSkpKX1yZXR1cm4gcn0scC5kZWZhdWx0PWQ7dmFyIHg9ZnVuY3Rpb24odCxlKXt0aGlzLnJlcXVlc3RNYW5hZ2VyPXQsdGhpcy5sb2NhbElkZW9ncmFwaEZvbnRGYW1pbHk9ZSx0aGlzLmVudHJpZXM9e319O3gucHJvdG90eXBlLnNldFVSTD1mdW5jdGlvbih0KXt0aGlzLnVybD10fSx4LnByb3RvdHlwZS5nZXRHbHlwaHM9ZnVuY3Rpb24oZSxyKXt2YXIgbj10aGlzLGk9W107Zm9yKHZhciBhIGluIGUpZm9yKHZhciBvPTAscz1lW2FdO288cy5sZW5ndGg7bys9MSl7dmFyIGw9c1tvXTtpLnB1c2goe3N0YWNrOmEsaWQ6bH0pfXQuYXN5bmNBbGwoaSwoZnVuY3Rpb24odCxlKXt2YXIgcj10LnN0YWNrLGk9dC5pZCxhPW4uZW50cmllc1tyXTthfHwoYT1uLmVudHJpZXNbcl09e2dseXBoczp7fSxyZXF1ZXN0czp7fSxyYW5nZXM6e319KTt2YXIgbz1hLmdseXBoc1tpXTtpZih2b2lkIDA9PT1vKXtpZihvPW4uX3RpbnlTREYoYSxyLGkpKXJldHVybiBhLmdseXBoc1tpXT1vLHZvaWQgZShudWxsLHtzdGFjazpyLGlkOmksZ2x5cGg6b30pO3ZhciBzPU1hdGguZmxvb3IoaS8yNTYpO2lmKDI1NipzPjY1NTM1KWUobmV3IEVycm9yKCJnbHlwaHMgPiA2NTUzNSBub3Qgc3VwcG9ydGVkIikpO2Vsc2UgaWYoYS5yYW5nZXNbc10pZShudWxsLHtzdGFjazpyLGlkOmksZ2x5cGg6b30pO2Vsc2V7dmFyIGw9YS5yZXF1ZXN0c1tzXTtsfHwobD1hLnJlcXVlc3RzW3NdPVtdLHgubG9hZEdseXBoUmFuZ2UocixzLG4udXJsLG4ucmVxdWVzdE1hbmFnZXIsKGZ1bmN0aW9uKHQsZSl7aWYoZSl7Zm9yKHZhciByIGluIGUpbi5fZG9lc0NoYXJTdXBwb3J0TG9jYWxHbHlwaCgrcil8fChhLmdseXBoc1srcl09ZVsrcl0pO2EucmFuZ2VzW3NdPSEwfWZvcih2YXIgaT0wLG89bDtpPG8ubGVuZ3RoO2krPTEpeygwLG9baV0pKHQsZSl9ZGVsZXRlIGEucmVxdWVzdHNbc119KSkpLGwucHVzaCgoZnVuY3Rpb24odCxuKXt0P2UodCk6biYmZShudWxsLHtzdGFjazpyLGlkOmksZ2x5cGg6bltpXXx8bnVsbH0pfSkpfX1lbHNlIGUobnVsbCx7c3RhY2s6cixpZDppLGdseXBoOm99KX0pLChmdW5jdGlvbih0LGUpe2lmKHQpcih0KTtlbHNlIGlmKGUpe2Zvcih2YXIgbj17fSxpPTAsYT1lO2k8YS5sZW5ndGg7aSs9MSl7dmFyIG89YVtpXSxzPW8uc3RhY2ssbD1vLmlkLGM9by5nbHlwaDsobltzXXx8KG5bc109e30pKVtsXT1jJiZ7aWQ6Yy5pZCxiaXRtYXA6Yy5iaXRtYXAuY2xvbmUoKSxtZXRyaWNzOmMubWV0cmljc319cihudWxsLG4pfX0pKX0seC5wcm90b3R5cGUuX2RvZXNDaGFyU3VwcG9ydExvY2FsR2x5cGg9ZnVuY3Rpb24oZSl7cmV0dXJuISF0aGlzLmxvY2FsSWRlb2dyYXBoRm9udEZhbWlseSYmKHQuaXNDaGFyWyJDSksgVW5pZmllZCBJZGVvZ3JhcGhzIl0oZSl8fHQuaXNDaGFyWyJIYW5ndWwgU3lsbGFibGVzIl0oZSl8fHQuaXNDaGFyLkhpcmFnYW5hKGUpfHx0LmlzQ2hhci5LYXRha2FuYShlKSl9LHgucHJvdG90eXBlLl90aW55U0RGPWZ1bmN0aW9uKGUscixuKXt2YXIgaT10aGlzLmxvY2FsSWRlb2dyYXBoRm9udEZhbWlseTtpZihpJiZ0aGlzLl9kb2VzQ2hhclN1cHBvcnRMb2NhbEdseXBoKG4pKXt2YXIgYT1lLnRpbnlTREY7aWYoIWEpe3ZhciBvPSI0MDAiOy9ib2xkL2kudGVzdChyKT9vPSI5MDAiOi9tZWRpdW0vaS50ZXN0KHIpP289IjUwMCI6L2xpZ2h0L2kudGVzdChyKSYmKG89IjIwMCIpLGE9ZS50aW55U0RGPW5ldyB4LlRpbnlTREYoMjQsMyw4LC4yNSxpLG8pfXJldHVybntpZDpuLGJpdG1hcDpuZXcgdC5BbHBoYUltYWdlKHt3aWR0aDozMCxoZWlnaHQ6MzB9LGEuZHJhdyhTdHJpbmcuZnJvbUNoYXJDb2RlKG4pKSksbWV0cmljczp7d2lkdGg6MjQsaGVpZ2h0OjI0LGxlZnQ6MCx0b3A6LTgsYWR2YW5jZToyNH19fX0seC5sb2FkR2x5cGhSYW5nZT1mdW5jdGlvbihlLHIsbixpLGEpe3ZhciBvPTI1NipyLHM9bysyNTUsbD1pLnRyYW5zZm9ybVJlcXVlc3QoaS5ub3JtYWxpemVHbHlwaHNVUkwobikucmVwbGFjZSgie2ZvbnRzdGFja30iLGUpLnJlcGxhY2UoIntyYW5nZX0iLG8rIi0iK3MpLHQuUmVzb3VyY2VUeXBlLkdseXBocyk7dC5nZXRBcnJheUJ1ZmZlcihsLChmdW5jdGlvbihlLHIpe2lmKGUpYShlKTtlbHNlIGlmKHIpe2Zvcih2YXIgbj17fSxpPTAsbz10LnBhcnNlR2x5cGhQQkYocik7aTxvLmxlbmd0aDtpKz0xKXt2YXIgcz1vW2ldO25bcy5pZF09c31hKG51bGwsbil9fSkpfSx4LlRpbnlTREY9cDt2YXIgYj1mdW5jdGlvbigpe3RoaXMuc3BlY2lmaWNhdGlvbj10LnN0eWxlU3BlYy5saWdodC5wb3NpdGlvbn07Yi5wcm90b3R5cGUucG9zc2libHlFdmFsdWF0ZT1mdW5jdGlvbihlLHIpe3JldHVybiB0LnNwaGVyaWNhbFRvQ2FydGVzaWFuKGUuZXhwcmVzc2lvbi5ldmFsdWF0ZShyKSl9LGIucHJvdG90eXBlLmludGVycG9sYXRlPWZ1bmN0aW9uKGUscixuKXtyZXR1cm57eDp0Lm51bWJlcihlLngsci54LG4pLHk6dC5udW1iZXIoZS55LHIueSxuKSx6OnQubnVtYmVyKGUueixyLnosbil9fTt2YXIgXz1uZXcgdC5Qcm9wZXJ0aWVzKHthbmNob3I6bmV3IHQuRGF0YUNvbnN0YW50UHJvcGVydHkodC5zdHlsZVNwZWMubGlnaHQuYW5jaG9yKSxwb3NpdGlvbjpuZXcgYixjb2xvcjpuZXcgdC5EYXRhQ29uc3RhbnRQcm9wZXJ0eSh0LnN0eWxlU3BlYy5saWdodC5jb2xvciksaW50ZW5zaXR5Om5ldyB0LkRhdGFDb25zdGFudFByb3BlcnR5KHQuc3R5bGVTcGVjLmxpZ2h0LmludGVuc2l0eSl9KSx3PWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHIocil7ZS5jYWxsKHRoaXMpLHRoaXMuX3RyYW5zaXRpb25hYmxlPW5ldyB0LlRyYW5zaXRpb25hYmxlKF8pLHRoaXMuc2V0TGlnaHQociksdGhpcy5fdHJhbnNpdGlvbmluZz10aGlzLl90cmFuc2l0aW9uYWJsZS51bnRyYW5zaXRpb25lZCgpfXJldHVybiBlJiYoci5fX3Byb3RvX189ZSksci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixyLnByb3RvdHlwZS5nZXRMaWdodD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl90cmFuc2l0aW9uYWJsZS5zZXJpYWxpemUoKX0sci5wcm90b3R5cGUuc2V0TGlnaHQ9ZnVuY3Rpb24oZSxyKXtpZih2b2lkIDA9PT1yJiYocj17fSksIXRoaXMuX3ZhbGlkYXRlKHQudmFsaWRhdGVMaWdodCxlLHIpKWZvcih2YXIgbiBpbiBlKXt2YXIgaT1lW25dO3QuZW5kc1dpdGgobiwiLXRyYW5zaXRpb24iKT90aGlzLl90cmFuc2l0aW9uYWJsZS5zZXRUcmFuc2l0aW9uKG4uc2xpY2UoMCwtIi10cmFuc2l0aW9uIi5sZW5ndGgpLGkpOnRoaXMuX3RyYW5zaXRpb25hYmxlLnNldFZhbHVlKG4saSl9fSxyLnByb3RvdHlwZS51cGRhdGVUcmFuc2l0aW9ucz1mdW5jdGlvbih0KXt0aGlzLl90cmFuc2l0aW9uaW5nPXRoaXMuX3RyYW5zaXRpb25hYmxlLnRyYW5zaXRpb25lZCh0LHRoaXMuX3RyYW5zaXRpb25pbmcpfSxyLnByb3RvdHlwZS5oYXNUcmFuc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3RyYW5zaXRpb25pbmcuaGFzVHJhbnNpdGlvbigpfSxyLnByb3RvdHlwZS5yZWNhbGN1bGF0ZT1mdW5jdGlvbih0KXt0aGlzLnByb3BlcnRpZXM9dGhpcy5fdHJhbnNpdGlvbmluZy5wb3NzaWJseUV2YWx1YXRlKHQpfSxyLnByb3RvdHlwZS5fdmFsaWRhdGU9ZnVuY3Rpb24oZSxyLG4pe3JldHVybighbnx8ITEhPT1uLnZhbGlkYXRlKSYmdC5lbWl0VmFsaWRhdGlvbkVycm9ycyh0aGlzLGUuY2FsbCh0LnZhbGlkYXRlU3R5bGUsdC5leHRlbmQoe3ZhbHVlOnIsc3R5bGU6e2dseXBoczohMCxzcHJpdGU6ITB9LHN0eWxlU3BlYzp0LnN0eWxlU3BlY30pKSl9LHJ9KHQuRXZlbnRlZCksVD1mdW5jdGlvbih0LGUpe3RoaXMud2lkdGg9dCx0aGlzLmhlaWdodD1lLHRoaXMubmV4dFJvdz0wLHRoaXMuZGF0YT1uZXcgVWludDhBcnJheSh0aGlzLndpZHRoKnRoaXMuaGVpZ2h0KSx0aGlzLmRhc2hFbnRyeT17fX07VC5wcm90b3R5cGUuZ2V0RGFzaD1mdW5jdGlvbih0LGUpe3ZhciByPXQuam9pbigiLCIpK1N0cmluZyhlKTtyZXR1cm4gdGhpcy5kYXNoRW50cnlbcl18fCh0aGlzLmRhc2hFbnRyeVtyXT10aGlzLmFkZERhc2godCxlKSksdGhpcy5kYXNoRW50cnlbcl19LFQucHJvdG90eXBlLmdldERhc2hSYW5nZXM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPVtdLGk9dC5sZW5ndGglMj09MT8tdFt0Lmxlbmd0aC0xXSpyOjAsYT10WzBdKnIsbz0hMDtuLnB1c2goe2xlZnQ6aSxyaWdodDphLGlzRGFzaDpvLHplcm9MZW5ndGg6MD09PXRbMF19KTtmb3IodmFyIHM9dFswXSxsPTE7bDx0Lmxlbmd0aDtsKyspe289IW87dmFyIGM9dFtsXTtpPXMqcixhPShzKz1jKSpyLG4ucHVzaCh7bGVmdDppLHJpZ2h0OmEsaXNEYXNoOm8semVyb0xlbmd0aDowPT09Y30pfXJldHVybiBufSxULnByb3RvdHlwZS5hZGRSb3VuZERhc2g9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj1lLzIsaT0tcjtpPD1yO2krKylmb3IodmFyIGE9dGhpcy5uZXh0Um93K3IraSxvPXRoaXMud2lkdGgqYSxzPTAsbD10W3NdLGM9MDtjPHRoaXMud2lkdGg7YysrKXtjL2wucmlnaHQ+MSYmKGw9dFsrK3NdKTt2YXIgdT1NYXRoLmFicyhjLWwubGVmdCksZj1NYXRoLmFicyhjLWwucmlnaHQpLGg9TWF0aC5taW4odSxmKSxwPXZvaWQgMCxkPWkvcioobisxKTtpZihsLmlzRGFzaCl7dmFyIG09bi1NYXRoLmFicyhkKTtwPU1hdGguc3FydChoKmgrbSptKX1lbHNlIHA9bi1NYXRoLnNxcnQoaCpoK2QqZCk7dGhpcy5kYXRhW28rY109TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUscCsxMjgpKX19LFQucHJvdG90eXBlLmFkZFJlZ3VsYXJEYXNoPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Lmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgcj10W2VdLG49dFtlKzFdO3IuemVyb0xlbmd0aD90LnNwbGljZShlLDEpOm4mJm4uaXNEYXNoPT09ci5pc0Rhc2gmJihuLmxlZnQ9ci5sZWZ0LHQuc3BsaWNlKGUsMSkpfXZhciBpPXRbMF0sYT10W3QubGVuZ3RoLTFdO2kuaXNEYXNoPT09YS5pc0Rhc2gmJihpLmxlZnQ9YS5sZWZ0LXRoaXMud2lkdGgsYS5yaWdodD1pLnJpZ2h0K3RoaXMud2lkdGgpO2Zvcih2YXIgbz10aGlzLndpZHRoKnRoaXMubmV4dFJvdyxzPTAsbD10W3NdLGM9MDtjPHRoaXMud2lkdGg7YysrKXtjL2wucmlnaHQ+MSYmKGw9dFsrK3NdKTt2YXIgdT1NYXRoLmFicyhjLWwubGVmdCksZj1NYXRoLmFicyhjLWwucmlnaHQpLGg9TWF0aC5taW4odSxmKSxwPWwuaXNEYXNoP2g6LWg7dGhpcy5kYXRhW28rY109TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUscCsxMjgpKX19LFQucHJvdG90eXBlLmFkZERhc2g9ZnVuY3Rpb24oZSxyKXt2YXIgbj1yPzc6MCxpPTIqbisxO2lmKHRoaXMubmV4dFJvdytpPnRoaXMuaGVpZ2h0KXJldHVybiB0Lndhcm5PbmNlKCJMaW5lQXRsYXMgb3V0IG9mIHNwYWNlIiksbnVsbDtmb3IodmFyIGE9MCxvPTA7bzxlLmxlbmd0aDtvKyspYSs9ZVtvXTtpZigwIT09YSl7dmFyIHM9dGhpcy53aWR0aC9hLGw9dGhpcy5nZXREYXNoUmFuZ2VzKGUsdGhpcy53aWR0aCxzKTtyP3RoaXMuYWRkUm91bmREYXNoKGwscyxuKTp0aGlzLmFkZFJlZ3VsYXJEYXNoKGwpfXZhciBjPXt5Oih0aGlzLm5leHRSb3crbisuNSkvdGhpcy5oZWlnaHQsaGVpZ2h0OjIqbi90aGlzLmhlaWdodCx3aWR0aDphfTtyZXR1cm4gdGhpcy5uZXh0Um93Kz1pLHRoaXMuZGlydHk9ITAsY30sVC5wcm90b3R5cGUuYmluZD1mdW5jdGlvbih0KXt2YXIgZT10LmdsO3RoaXMudGV4dHVyZT8oZS5iaW5kVGV4dHVyZShlLlRFWFRVUkVfMkQsdGhpcy50ZXh0dXJlKSx0aGlzLmRpcnR5JiYodGhpcy5kaXJ0eT0hMSxlLnRleFN1YkltYWdlMkQoZS5URVhUVVJFXzJELDAsMCwwLHRoaXMud2lkdGgsdGhpcy5oZWlnaHQsZS5BTFBIQSxlLlVOU0lHTkVEX0JZVEUsdGhpcy5kYXRhKSkpOih0aGlzLnRleHR1cmU9ZS5jcmVhdGVUZXh0dXJlKCksZS5iaW5kVGV4dHVyZShlLlRFWFRVUkVfMkQsdGhpcy50ZXh0dXJlKSxlLnRleFBhcmFtZXRlcmkoZS5URVhUVVJFXzJELGUuVEVYVFVSRV9XUkFQX1MsZS5SRVBFQVQpLGUudGV4UGFyYW1ldGVyaShlLlRFWFRVUkVfMkQsZS5URVhUVVJFX1dSQVBfVCxlLlJFUEVBVCksZS50ZXhQYXJhbWV0ZXJpKGUuVEVYVFVSRV8yRCxlLlRFWFRVUkVfTUlOX0ZJTFRFUixlLkxJTkVBUiksZS50ZXhQYXJhbWV0ZXJpKGUuVEVYVFVSRV8yRCxlLlRFWFRVUkVfTUFHX0ZJTFRFUixlLkxJTkVBUiksZS50ZXhJbWFnZTJEKGUuVEVYVFVSRV8yRCwwLGUuQUxQSEEsdGhpcy53aWR0aCx0aGlzLmhlaWdodCwwLGUuQUxQSEEsZS5VTlNJR05FRF9CWVRFLHRoaXMuZGF0YSkpfTt2YXIgaz1mdW5jdGlvbiBlKHIsbil7dGhpcy53b3JrZXJQb29sPXIsdGhpcy5hY3RvcnM9W10sdGhpcy5jdXJyZW50QWN0b3I9MCx0aGlzLmlkPXQudW5pcXVlSWQoKTtmb3IodmFyIGk9dGhpcy53b3JrZXJQb29sLmFjcXVpcmUodGhpcy5pZCksYT0wO2E8aS5sZW5ndGg7YSsrKXt2YXIgbz1pW2FdLHM9bmV3IGUuQWN0b3IobyxuLHRoaXMuaWQpO3MubmFtZT0iV29ya2VyICIrYSx0aGlzLmFjdG9ycy5wdXNoKHMpfX07ZnVuY3Rpb24gQShlLHIsbil7dmFyIGk9ZnVuY3Rpb24oaSxhKXtpZihpKXJldHVybiBuKGkpO2lmKGEpe3ZhciBvPXQucGljayh0LmV4dGVuZChhLGUpLFsidGlsZXMiLCJtaW56b29tIiwibWF4em9vbSIsImF0dHJpYnV0aW9uIiwibWFwYm94X2xvZ28iLCJib3VuZHMiLCJzY2hlbWUiLCJ0aWxlU2l6ZSIsImVuY29kaW5nIl0pO2EudmVjdG9yX2xheWVycyYmKG8udmVjdG9yTGF5ZXJzPWEudmVjdG9yX2xheWVycyxvLnZlY3RvckxheWVySWRzPW8udmVjdG9yTGF5ZXJzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWR9KSkpLG8udGlsZXM9ci5jYW5vbmljYWxpemVUaWxlc2V0KG8sZS51cmwpLG4obnVsbCxvKX19O3JldHVybiBlLnVybD90LmdldEpTT04oci50cmFuc2Zvcm1SZXF1ZXN0KHIubm9ybWFsaXplU291cmNlVVJMKGUudXJsKSx0LlJlc291cmNlVHlwZS5Tb3VyY2UpLGkpOnQuYnJvd3Nlci5mcmFtZSgoZnVuY3Rpb24oKXtyZXR1cm4gaShudWxsLGUpfSkpfWsucHJvdG90eXBlLmJyb2FkY2FzdD1mdW5jdGlvbihlLHIsbil7bj1ufHxmdW5jdGlvbigpe30sdC5hc3luY0FsbCh0aGlzLmFjdG9ycywoZnVuY3Rpb24odCxuKXt0LnNlbmQoZSxyLG4pfSksbil9LGsucHJvdG90eXBlLmdldEFjdG9yPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudEFjdG9yPSh0aGlzLmN1cnJlbnRBY3RvcisxKSV0aGlzLmFjdG9ycy5sZW5ndGgsdGhpcy5hY3RvcnNbdGhpcy5jdXJyZW50QWN0b3JdfSxrLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oKXt0aGlzLmFjdG9ycy5mb3JFYWNoKChmdW5jdGlvbih0KXt0LnJlbW92ZSgpfSkpLHRoaXMuYWN0b3JzPVtdLHRoaXMud29ya2VyUG9vbC5yZWxlYXNlKHRoaXMuaWQpfSxrLkFjdG9yPXQuQWN0b3I7dmFyIE09ZnVuY3Rpb24oZSxyLG4pe3RoaXMuYm91bmRzPXQuTG5nTGF0Qm91bmRzLmNvbnZlcnQodGhpcy52YWxpZGF0ZUJvdW5kcyhlKSksdGhpcy5taW56b29tPXJ8fDAsdGhpcy5tYXh6b29tPW58fDI0fTtNLnByb3RvdHlwZS52YWxpZGF0ZUJvdW5kcz1mdW5jdGlvbih0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KSYmND09PXQubGVuZ3RoP1tNYXRoLm1heCgtMTgwLHRbMF0pLE1hdGgubWF4KC05MCx0WzFdKSxNYXRoLm1pbigxODAsdFsyXSksTWF0aC5taW4oOTAsdFszXSldOlstMTgwLC05MCwxODAsOTBdfSxNLnByb3RvdHlwZS5jb250YWlucz1mdW5jdGlvbihlKXt2YXIgcj1NYXRoLnBvdygyLGUueiksbj1NYXRoLmZsb29yKHQubWVyY2F0b3JYZnJvbUxuZyh0aGlzLmJvdW5kcy5nZXRXZXN0KCkpKnIpLGk9TWF0aC5mbG9vcih0Lm1lcmNhdG9yWWZyb21MYXQodGhpcy5ib3VuZHMuZ2V0Tm9ydGgoKSkqciksYT1NYXRoLmNlaWwodC5tZXJjYXRvclhmcm9tTG5nKHRoaXMuYm91bmRzLmdldEVhc3QoKSkqciksbz1NYXRoLmNlaWwodC5tZXJjYXRvcllmcm9tTGF0KHRoaXMuYm91bmRzLmdldFNvdXRoKCkpKnIpO3JldHVybiBlLng+PW4mJmUueDxhJiZlLnk+PWkmJmUueTxvfTt2YXIgUz1mdW5jdGlvbihlKXtmdW5jdGlvbiByKHIsbixpLGEpe2lmKGUuY2FsbCh0aGlzKSx0aGlzLmlkPXIsdGhpcy5kaXNwYXRjaGVyPWksdGhpcy50eXBlPSJ2ZWN0b3IiLHRoaXMubWluem9vbT0wLHRoaXMubWF4em9vbT0yMix0aGlzLnNjaGVtZT0ieHl6Iix0aGlzLnRpbGVTaXplPTUxMix0aGlzLnJlcGFyc2VPdmVyc2NhbGVkPSEwLHRoaXMuaXNUaWxlQ2xpcHBlZD0hMCx0aGlzLl9sb2FkZWQ9ITEsdC5leHRlbmQodGhpcyx0LnBpY2sobixbInVybCIsInNjaGVtZSIsInRpbGVTaXplIiwicHJvbW90ZUlkIl0pKSx0aGlzLl9vcHRpb25zPXQuZXh0ZW5kKHt0eXBlOiJ2ZWN0b3IifSxuKSx0aGlzLl9jb2xsZWN0UmVzb3VyY2VUaW1pbmc9bi5jb2xsZWN0UmVzb3VyY2VUaW1pbmcsNTEyIT09dGhpcy50aWxlU2l6ZSl0aHJvdyBuZXcgRXJyb3IoInZlY3RvciB0aWxlIHNvdXJjZXMgbXVzdCBoYXZlIGEgdGlsZVNpemUgb2YgNTEyIik7dGhpcy5zZXRFdmVudGVkUGFyZW50KGEpfXJldHVybiBlJiYoci5fX3Byb3RvX189ZSksci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixyLnByb3RvdHlwZS5sb2FkPWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLl9sb2FkZWQ9ITEsdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJkYXRhbG9hZGluZyIse2RhdGFUeXBlOiJzb3VyY2UifSkpLHRoaXMuX3RpbGVKU09OUmVxdWVzdD1BKHRoaXMuX29wdGlvbnMsdGhpcy5tYXAuX3JlcXVlc3RNYW5hZ2VyLChmdW5jdGlvbihyLG4pe2UuX3RpbGVKU09OUmVxdWVzdD1udWxsLGUuX2xvYWRlZD0hMCxyP2UuZmlyZShuZXcgdC5FcnJvckV2ZW50KHIpKTpuJiYodC5leHRlbmQoZSxuKSxuLmJvdW5kcyYmKGUudGlsZUJvdW5kcz1uZXcgTShuLmJvdW5kcyxlLm1pbnpvb20sZS5tYXh6b29tKSksdC5wb3N0VHVybnN0aWxlRXZlbnQobi50aWxlcyxlLm1hcC5fcmVxdWVzdE1hbmFnZXIuX2N1c3RvbUFjY2Vzc1Rva2VuKSx0LnBvc3RNYXBMb2FkRXZlbnQobi50aWxlcyxlLm1hcC5fZ2V0TWFwSWQoKSxlLm1hcC5fcmVxdWVzdE1hbmFnZXIuX3NrdVRva2VuLGUubWFwLl9yZXF1ZXN0TWFuYWdlci5fY3VzdG9tQWNjZXNzVG9rZW4pLGUuZmlyZShuZXcgdC5FdmVudCgiZGF0YSIse2RhdGFUeXBlOiJzb3VyY2UiLHNvdXJjZURhdGFUeXBlOiJtZXRhZGF0YSJ9KSksZS5maXJlKG5ldyB0LkV2ZW50KCJkYXRhIix7ZGF0YVR5cGU6InNvdXJjZSIsc291cmNlRGF0YVR5cGU6ImNvbnRlbnQifSkpKX0pKX0sci5wcm90b3R5cGUubG9hZGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xvYWRlZH0sci5wcm90b3R5cGUuaGFzVGlsZT1mdW5jdGlvbih0KXtyZXR1cm4hdGhpcy50aWxlQm91bmRzfHx0aGlzLnRpbGVCb3VuZHMuY29udGFpbnModC5jYW5vbmljYWwpfSxyLnByb3RvdHlwZS5vbkFkZD1mdW5jdGlvbih0KXt0aGlzLm1hcD10LHRoaXMubG9hZCgpfSxyLnByb3RvdHlwZS5vblJlbW92ZT1mdW5jdGlvbigpe3RoaXMuX3RpbGVKU09OUmVxdWVzdCYmKHRoaXMuX3RpbGVKU09OUmVxdWVzdC5jYW5jZWwoKSx0aGlzLl90aWxlSlNPTlJlcXVlc3Q9bnVsbCl9LHIucHJvdG90eXBlLnNlcmlhbGl6ZT1mdW5jdGlvbigpe3JldHVybiB0LmV4dGVuZCh7fSx0aGlzLl9vcHRpb25zKX0sci5wcm90b3R5cGUubG9hZFRpbGU9ZnVuY3Rpb24oZSxyKXt2YXIgbj10aGlzLm1hcC5fcmVxdWVzdE1hbmFnZXIubm9ybWFsaXplVGlsZVVSTChlLnRpbGVJRC5jYW5vbmljYWwudXJsKHRoaXMudGlsZXMsdGhpcy5zY2hlbWUpKSxpPXtyZXF1ZXN0OnRoaXMubWFwLl9yZXF1ZXN0TWFuYWdlci50cmFuc2Zvcm1SZXF1ZXN0KG4sdC5SZXNvdXJjZVR5cGUuVGlsZSksdWlkOmUudWlkLHRpbGVJRDplLnRpbGVJRCx6b29tOmUudGlsZUlELm92ZXJzY2FsZWRaLHRpbGVTaXplOnRoaXMudGlsZVNpemUqZS50aWxlSUQub3ZlcnNjYWxlRmFjdG9yKCksdHlwZTp0aGlzLnR5cGUsc291cmNlOnRoaXMuaWQscGl4ZWxSYXRpbzp0LmJyb3dzZXIuZGV2aWNlUGl4ZWxSYXRpbyxzaG93Q29sbGlzaW9uQm94ZXM6dGhpcy5tYXAuc2hvd0NvbGxpc2lvbkJveGVzLHByb21vdGVJZDp0aGlzLnByb21vdGVJZH07ZnVuY3Rpb24gYShuLGkpe3JldHVybiBkZWxldGUgZS5yZXF1ZXN0LGUuYWJvcnRlZD9yKG51bGwpOm4mJjQwNCE9PW4uc3RhdHVzP3Iobik6KGkmJmkucmVzb3VyY2VUaW1pbmcmJihlLnJlc291cmNlVGltaW5nPWkucmVzb3VyY2VUaW1pbmcpLHRoaXMubWFwLl9yZWZyZXNoRXhwaXJlZFRpbGVzJiZpJiZlLnNldEV4cGlyeURhdGEoaSksZS5sb2FkVmVjdG9yRGF0YShpLHRoaXMubWFwLnBhaW50ZXIpLHQuY2FjaGVFbnRyeVBvc3NpYmx5QWRkZWQodGhpcy5kaXNwYXRjaGVyKSxyKG51bGwpLHZvaWQoZS5yZWxvYWRDYWxsYmFjayYmKHRoaXMubG9hZFRpbGUoZSxlLnJlbG9hZENhbGxiYWNrKSxlLnJlbG9hZENhbGxiYWNrPW51bGwpKSl9aS5yZXF1ZXN0LmNvbGxlY3RSZXNvdXJjZVRpbWluZz10aGlzLl9jb2xsZWN0UmVzb3VyY2VUaW1pbmcsZS5hY3RvciYmImV4cGlyZWQiIT09ZS5zdGF0ZT8ibG9hZGluZyI9PT1lLnN0YXRlP2UucmVsb2FkQ2FsbGJhY2s9cjplLnJlcXVlc3Q9ZS5hY3Rvci5zZW5kKCJyZWxvYWRUaWxlIixpLGEuYmluZCh0aGlzKSk6KGUuYWN0b3I9dGhpcy5kaXNwYXRjaGVyLmdldEFjdG9yKCksZS5yZXF1ZXN0PWUuYWN0b3Iuc2VuZCgibG9hZFRpbGUiLGksYS5iaW5kKHRoaXMpKSl9LHIucHJvdG90eXBlLmFib3J0VGlsZT1mdW5jdGlvbih0KXt0LnJlcXVlc3QmJih0LnJlcXVlc3QuY2FuY2VsKCksZGVsZXRlIHQucmVxdWVzdCksdC5hY3RvciYmdC5hY3Rvci5zZW5kKCJhYm9ydFRpbGUiLHt1aWQ6dC51aWQsdHlwZTp0aGlzLnR5cGUsc291cmNlOnRoaXMuaWR9LHZvaWQgMCl9LHIucHJvdG90eXBlLnVubG9hZFRpbGU9ZnVuY3Rpb24odCl7dC51bmxvYWRWZWN0b3JEYXRhKCksdC5hY3RvciYmdC5hY3Rvci5zZW5kKCJyZW1vdmVUaWxlIix7dWlkOnQudWlkLHR5cGU6dGhpcy50eXBlLHNvdXJjZTp0aGlzLmlkfSx2b2lkIDApfSxyLnByb3RvdHlwZS5oYXNUcmFuc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuITF9LHJ9KHQuRXZlbnRlZCksRT1mdW5jdGlvbihlKXtmdW5jdGlvbiByKHIsbixpLGEpe2UuY2FsbCh0aGlzKSx0aGlzLmlkPXIsdGhpcy5kaXNwYXRjaGVyPWksdGhpcy5zZXRFdmVudGVkUGFyZW50KGEpLHRoaXMudHlwZT0icmFzdGVyIix0aGlzLm1pbnpvb209MCx0aGlzLm1heHpvb209MjIsdGhpcy5yb3VuZFpvb209ITAsdGhpcy5zY2hlbWU9Inh5eiIsdGhpcy50aWxlU2l6ZT01MTIsdGhpcy5fbG9hZGVkPSExLHRoaXMuX29wdGlvbnM9dC5leHRlbmQoe3R5cGU6InJhc3RlciJ9LG4pLHQuZXh0ZW5kKHRoaXMsdC5waWNrKG4sWyJ1cmwiLCJzY2hlbWUiLCJ0aWxlU2l6ZSJdKSl9cmV0dXJuIGUmJihyLl9fcHJvdG9fXz1lKSxyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlKSxyLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1yLHIucHJvdG90eXBlLmxvYWQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuX2xvYWRlZD0hMSx0aGlzLmZpcmUobmV3IHQuRXZlbnQoImRhdGFsb2FkaW5nIix7ZGF0YVR5cGU6InNvdXJjZSJ9KSksdGhpcy5fdGlsZUpTT05SZXF1ZXN0PUEodGhpcy5fb3B0aW9ucyx0aGlzLm1hcC5fcmVxdWVzdE1hbmFnZXIsKGZ1bmN0aW9uKHIsbil7ZS5fdGlsZUpTT05SZXF1ZXN0PW51bGwsZS5fbG9hZGVkPSEwLHI/ZS5maXJlKG5ldyB0LkVycm9yRXZlbnQocikpOm4mJih0LmV4dGVuZChlLG4pLG4uYm91bmRzJiYoZS50aWxlQm91bmRzPW5ldyBNKG4uYm91bmRzLGUubWluem9vbSxlLm1heHpvb20pKSx0LnBvc3RUdXJuc3RpbGVFdmVudChuLnRpbGVzKSx0LnBvc3RNYXBMb2FkRXZlbnQobi50aWxlcyxlLm1hcC5fZ2V0TWFwSWQoKSxlLm1hcC5fcmVxdWVzdE1hbmFnZXIuX3NrdVRva2VuKSxlLmZpcmUobmV3IHQuRXZlbnQoImRhdGEiLHtkYXRhVHlwZToic291cmNlIixzb3VyY2VEYXRhVHlwZToibWV0YWRhdGEifSkpLGUuZmlyZShuZXcgdC5FdmVudCgiZGF0YSIse2RhdGFUeXBlOiJzb3VyY2UiLHNvdXJjZURhdGFUeXBlOiJjb250ZW50In0pKSl9KSl9LHIucHJvdG90eXBlLmxvYWRlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9sb2FkZWR9LHIucHJvdG90eXBlLm9uQWRkPWZ1bmN0aW9uKHQpe3RoaXMubWFwPXQsdGhpcy5sb2FkKCl9LHIucHJvdG90eXBlLm9uUmVtb3ZlPWZ1bmN0aW9uKCl7dGhpcy5fdGlsZUpTT05SZXF1ZXN0JiYodGhpcy5fdGlsZUpTT05SZXF1ZXN0LmNhbmNlbCgpLHRoaXMuX3RpbGVKU09OUmVxdWVzdD1udWxsKX0sci5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7cmV0dXJuIHQuZXh0ZW5kKHt9LHRoaXMuX29wdGlvbnMpfSxyLnByb3RvdHlwZS5oYXNUaWxlPWZ1bmN0aW9uKHQpe3JldHVybiF0aGlzLnRpbGVCb3VuZHN8fHRoaXMudGlsZUJvdW5kcy5jb250YWlucyh0LmNhbm9uaWNhbCl9LHIucHJvdG90eXBlLmxvYWRUaWxlPWZ1bmN0aW9uKGUscil7dmFyIG49dGhpcyxpPXRoaXMubWFwLl9yZXF1ZXN0TWFuYWdlci5ub3JtYWxpemVUaWxlVVJMKGUudGlsZUlELmNhbm9uaWNhbC51cmwodGhpcy50aWxlcyx0aGlzLnNjaGVtZSksdGhpcy50aWxlU2l6ZSk7ZS5yZXF1ZXN0PXQuZ2V0SW1hZ2UodGhpcy5tYXAuX3JlcXVlc3RNYW5hZ2VyLnRyYW5zZm9ybVJlcXVlc3QoaSx0LlJlc291cmNlVHlwZS5UaWxlKSwoZnVuY3Rpb24oaSxhKXtpZihkZWxldGUgZS5yZXF1ZXN0LGUuYWJvcnRlZCllLnN0YXRlPSJ1bmxvYWRlZCIscihudWxsKTtlbHNlIGlmKGkpZS5zdGF0ZT0iZXJyb3JlZCIscihpKTtlbHNlIGlmKGEpe24ubWFwLl9yZWZyZXNoRXhwaXJlZFRpbGVzJiZlLnNldEV4cGlyeURhdGEoYSksZGVsZXRlIGEuY2FjaGVDb250cm9sLGRlbGV0ZSBhLmV4cGlyZXM7dmFyIG89bi5tYXAucGFpbnRlci5jb250ZXh0LHM9by5nbDtlLnRleHR1cmU9bi5tYXAucGFpbnRlci5nZXRUaWxlVGV4dHVyZShhLndpZHRoKSxlLnRleHR1cmU/ZS50ZXh0dXJlLnVwZGF0ZShhLHt1c2VNaXBtYXA6ITB9KTooZS50ZXh0dXJlPW5ldyB0LlRleHR1cmUobyxhLHMuUkdCQSx7dXNlTWlwbWFwOiEwfSksZS50ZXh0dXJlLmJpbmQocy5MSU5FQVIscy5DTEFNUF9UT19FREdFLHMuTElORUFSX01JUE1BUF9ORUFSRVNUKSxvLmV4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyYmcy50ZXhQYXJhbWV0ZXJmKHMuVEVYVFVSRV8yRCxvLmV4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5URVhUVVJFX01BWF9BTklTT1RST1BZX0VYVCxvLmV4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpY01heCkpLGUuc3RhdGU9ImxvYWRlZCIsdC5jYWNoZUVudHJ5UG9zc2libHlBZGRlZChuLmRpc3BhdGNoZXIpLHIobnVsbCl9fSkpfSxyLnByb3RvdHlwZS5hYm9ydFRpbGU9ZnVuY3Rpb24odCxlKXt0LnJlcXVlc3QmJih0LnJlcXVlc3QuY2FuY2VsKCksZGVsZXRlIHQucmVxdWVzdCksZSgpfSxyLnByb3RvdHlwZS51bmxvYWRUaWxlPWZ1bmN0aW9uKHQsZSl7dC50ZXh0dXJlJiZ0aGlzLm1hcC5wYWludGVyLnNhdmVUaWxlVGV4dHVyZSh0LnRleHR1cmUpLGUoKX0sci5wcm90b3R5cGUuaGFzVHJhbnNpdGlvbj1mdW5jdGlvbigpe3JldHVybiExfSxyfSh0LkV2ZW50ZWQpLEw9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gcihyLG4saSxhKXtlLmNhbGwodGhpcyxyLG4saSxhKSx0aGlzLnR5cGU9InJhc3Rlci1kZW0iLHRoaXMubWF4em9vbT0yMix0aGlzLl9vcHRpb25zPXQuZXh0ZW5kKHt0eXBlOiJyYXN0ZXItZGVtIn0sbiksdGhpcy5lbmNvZGluZz1uLmVuY29kaW5nfHwibWFwYm94In1yZXR1cm4gZSYmKHIuX19wcm90b19fPWUpLHIucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUpLHIucHJvdG90eXBlLmNvbnN0cnVjdG9yPXIsci5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6InJhc3Rlci1kZW0iLHVybDp0aGlzLnVybCx0aWxlU2l6ZTp0aGlzLnRpbGVTaXplLHRpbGVzOnRoaXMudGlsZXMsYm91bmRzOnRoaXMuYm91bmRzLGVuY29kaW5nOnRoaXMuZW5jb2Rpbmd9fSxyLnByb3RvdHlwZS5sb2FkVGlsZT1mdW5jdGlvbihlLHIpe3ZhciBuPXRoaXMubWFwLl9yZXF1ZXN0TWFuYWdlci5ub3JtYWxpemVUaWxlVVJMKGUudGlsZUlELmNhbm9uaWNhbC51cmwodGhpcy50aWxlcyx0aGlzLnNjaGVtZSksdGhpcy50aWxlU2l6ZSk7ZnVuY3Rpb24gaSh0LG4pe3QmJihlLnN0YXRlPSJlcnJvcmVkIixyKHQpKSxuJiYoZS5kZW09bixlLm5lZWRzSGlsbHNoYWRlUHJlcGFyZT0hMCxlLnN0YXRlPSJsb2FkZWQiLHIobnVsbCkpfWUucmVxdWVzdD10LmdldEltYWdlKHRoaXMubWFwLl9yZXF1ZXN0TWFuYWdlci50cmFuc2Zvcm1SZXF1ZXN0KG4sdC5SZXNvdXJjZVR5cGUuVGlsZSksZnVuY3Rpb24obixhKXtpZihkZWxldGUgZS5yZXF1ZXN0LGUuYWJvcnRlZCllLnN0YXRlPSJ1bmxvYWRlZCIscihudWxsKTtlbHNlIGlmKG4pZS5zdGF0ZT0iZXJyb3JlZCIscihuKTtlbHNlIGlmKGEpe3RoaXMubWFwLl9yZWZyZXNoRXhwaXJlZFRpbGVzJiZlLnNldEV4cGlyeURhdGEoYSksZGVsZXRlIGEuY2FjaGVDb250cm9sLGRlbGV0ZSBhLmV4cGlyZXM7dmFyIG89dC53aW5kb3cuSW1hZ2VCaXRtYXAmJmEgaW5zdGFuY2VvZiB0LndpbmRvdy5JbWFnZUJpdG1hcCYmdC5vZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQoKT9hOnQuYnJvd3Nlci5nZXRJbWFnZURhdGEoYSwxKSxzPXt1aWQ6ZS51aWQsY29vcmQ6ZS50aWxlSUQsc291cmNlOnRoaXMuaWQscmF3SW1hZ2VEYXRhOm8sZW5jb2Rpbmc6dGhpcy5lbmNvZGluZ307ZS5hY3RvciYmImV4cGlyZWQiIT09ZS5zdGF0ZXx8KGUuYWN0b3I9dGhpcy5kaXNwYXRjaGVyLmdldEFjdG9yKCksZS5hY3Rvci5zZW5kKCJsb2FkREVNVGlsZSIscyxpLmJpbmQodGhpcykpKX19LmJpbmQodGhpcykpLGUubmVpZ2hib3JpbmdUaWxlcz10aGlzLl9nZXROZWlnaGJvcmluZ1RpbGVzKGUudGlsZUlEKX0sci5wcm90b3R5cGUuX2dldE5laWdoYm9yaW5nVGlsZXM9ZnVuY3Rpb24oZSl7dmFyIHI9ZS5jYW5vbmljYWwsbj1NYXRoLnBvdygyLHIueiksaT0oci54LTErbiklbixhPTA9PT1yLng/ZS53cmFwLTE6ZS53cmFwLG89KHIueCsxK24pJW4scz1yLngrMT09PW4/ZS53cmFwKzE6ZS53cmFwLGw9e307cmV0dXJuIGxbbmV3IHQuT3ZlcnNjYWxlZFRpbGVJRChlLm92ZXJzY2FsZWRaLGEsci56LGksci55KS5rZXldPXtiYWNrZmlsbGVkOiExfSxsW25ldyB0Lk92ZXJzY2FsZWRUaWxlSUQoZS5vdmVyc2NhbGVkWixzLHIueixvLHIueSkua2V5XT17YmFja2ZpbGxlZDohMX0sci55PjAmJihsW25ldyB0Lk92ZXJzY2FsZWRUaWxlSUQoZS5vdmVyc2NhbGVkWixhLHIueixpLHIueS0xKS5rZXldPXtiYWNrZmlsbGVkOiExfSxsW25ldyB0Lk92ZXJzY2FsZWRUaWxlSUQoZS5vdmVyc2NhbGVkWixlLndyYXAsci56LHIueCxyLnktMSkua2V5XT17YmFja2ZpbGxlZDohMX0sbFtuZXcgdC5PdmVyc2NhbGVkVGlsZUlEKGUub3ZlcnNjYWxlZFoscyxyLnosbyxyLnktMSkua2V5XT17YmFja2ZpbGxlZDohMX0pLHIueSsxPG4mJihsW25ldyB0Lk92ZXJzY2FsZWRUaWxlSUQoZS5vdmVyc2NhbGVkWixhLHIueixpLHIueSsxKS5rZXldPXtiYWNrZmlsbGVkOiExfSxsW25ldyB0Lk92ZXJzY2FsZWRUaWxlSUQoZS5vdmVyc2NhbGVkWixlLndyYXAsci56LHIueCxyLnkrMSkua2V5XT17YmFja2ZpbGxlZDohMX0sbFtuZXcgdC5PdmVyc2NhbGVkVGlsZUlEKGUub3ZlcnNjYWxlZFoscyxyLnosbyxyLnkrMSkua2V5XT17YmFja2ZpbGxlZDohMX0pLGx9LHIucHJvdG90eXBlLnVubG9hZFRpbGU9ZnVuY3Rpb24odCl7dC5kZW1UZXh0dXJlJiZ0aGlzLm1hcC5wYWludGVyLnNhdmVUaWxlVGV4dHVyZSh0LmRlbVRleHR1cmUpLHQuZmJvJiYodC5mYm8uZGVzdHJveSgpLGRlbGV0ZSB0LmZibyksdC5kZW0mJmRlbGV0ZSB0LmRlbSxkZWxldGUgdC5uZWlnaGJvcmluZ1RpbGVzLHQuc3RhdGU9InVubG9hZGVkIix0LmFjdG9yJiZ0LmFjdG9yLnNlbmQoInJlbW92ZURFTVRpbGUiLHt1aWQ6dC51aWQsc291cmNlOnRoaXMuaWR9KX0scn0oRSksQz1mdW5jdGlvbihlKXtmdW5jdGlvbiByKHIsbixpLGEpe2UuY2FsbCh0aGlzKSx0aGlzLmlkPXIsdGhpcy50eXBlPSJnZW9qc29uIix0aGlzLm1pbnpvb209MCx0aGlzLm1heHpvb209MTgsdGhpcy50aWxlU2l6ZT01MTIsdGhpcy5pc1RpbGVDbGlwcGVkPSEwLHRoaXMucmVwYXJzZU92ZXJzY2FsZWQ9ITAsdGhpcy5fcmVtb3ZlZD0hMSx0aGlzLl9sb2FkZWQ9ITEsdGhpcy5hY3Rvcj1pLmdldEFjdG9yKCksdGhpcy5zZXRFdmVudGVkUGFyZW50KGEpLHRoaXMuX2RhdGE9bi5kYXRhLHRoaXMuX29wdGlvbnM9dC5leHRlbmQoe30sbiksdGhpcy5fY29sbGVjdFJlc291cmNlVGltaW5nPW4uY29sbGVjdFJlc291cmNlVGltaW5nLHRoaXMuX3Jlc291cmNlVGltaW5nPVtdLHZvaWQgMCE9PW4ubWF4em9vbSYmKHRoaXMubWF4em9vbT1uLm1heHpvb20pLG4udHlwZSYmKHRoaXMudHlwZT1uLnR5cGUpLG4uYXR0cmlidXRpb24mJih0aGlzLmF0dHJpYnV0aW9uPW4uYXR0cmlidXRpb24pLHRoaXMucHJvbW90ZUlkPW4ucHJvbW90ZUlkO3ZhciBvPXQuRVhURU5UL3RoaXMudGlsZVNpemU7dGhpcy53b3JrZXJPcHRpb25zPXQuZXh0ZW5kKHtzb3VyY2U6dGhpcy5pZCxjbHVzdGVyOm4uY2x1c3Rlcnx8ITEsZ2VvanNvblZ0T3B0aW9uczp7YnVmZmVyOih2b2lkIDAhPT1uLmJ1ZmZlcj9uLmJ1ZmZlcjoxMjgpKm8sdG9sZXJhbmNlOih2b2lkIDAhPT1uLnRvbGVyYW5jZT9uLnRvbGVyYW5jZTouMzc1KSpvLGV4dGVudDp0LkVYVEVOVCxtYXhab29tOnRoaXMubWF4em9vbSxsaW5lTWV0cmljczpuLmxpbmVNZXRyaWNzfHwhMSxnZW5lcmF0ZUlkOm4uZ2VuZXJhdGVJZHx8ITF9LHN1cGVyY2x1c3Rlck9wdGlvbnM6e21heFpvb206dm9pZCAwIT09bi5jbHVzdGVyTWF4Wm9vbT9NYXRoLm1pbihuLmNsdXN0ZXJNYXhab29tLHRoaXMubWF4em9vbS0xKTp0aGlzLm1heHpvb20tMSxleHRlbnQ6dC5FWFRFTlQscmFkaXVzOihuLmNsdXN0ZXJSYWRpdXN8fDUwKSpvLGxvZzohMSxnZW5lcmF0ZUlkOm4uZ2VuZXJhdGVJZHx8ITF9LGNsdXN0ZXJQcm9wZXJ0aWVzOm4uY2x1c3RlclByb3BlcnRpZXN9LG4ud29ya2VyT3B0aW9ucyl9cmV0dXJuIGUmJihyLl9fcHJvdG9fXz1lKSxyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlKSxyLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1yLHIucHJvdG90eXBlLmxvYWQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuZmlyZShuZXcgdC5FdmVudCgiZGF0YWxvYWRpbmciLHtkYXRhVHlwZToic291cmNlIn0pKSx0aGlzLl91cGRhdGVXb3JrZXJEYXRhKChmdW5jdGlvbihyKXtpZihyKWUuZmlyZShuZXcgdC5FcnJvckV2ZW50KHIpKTtlbHNle3ZhciBuPXtkYXRhVHlwZToic291cmNlIixzb3VyY2VEYXRhVHlwZToibWV0YWRhdGEifTtlLl9jb2xsZWN0UmVzb3VyY2VUaW1pbmcmJmUuX3Jlc291cmNlVGltaW5nJiZlLl9yZXNvdXJjZVRpbWluZy5sZW5ndGg+MCYmKG4ucmVzb3VyY2VUaW1pbmc9ZS5fcmVzb3VyY2VUaW1pbmcsZS5fcmVzb3VyY2VUaW1pbmc9W10pLGUuZmlyZShuZXcgdC5FdmVudCgiZGF0YSIsbikpfX0pKX0sci5wcm90b3R5cGUub25BZGQ9ZnVuY3Rpb24odCl7dGhpcy5tYXA9dCx0aGlzLmxvYWQoKX0sci5wcm90b3R5cGUuc2V0RGF0YT1mdW5jdGlvbihlKXt2YXIgcj10aGlzO3JldHVybiB0aGlzLl9kYXRhPWUsdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJkYXRhbG9hZGluZyIse2RhdGFUeXBlOiJzb3VyY2UifSkpLHRoaXMuX3VwZGF0ZVdvcmtlckRhdGEoKGZ1bmN0aW9uKGUpe2lmKGUpci5maXJlKG5ldyB0LkVycm9yRXZlbnQoZSkpO2Vsc2V7dmFyIG49e2RhdGFUeXBlOiJzb3VyY2UiLHNvdXJjZURhdGFUeXBlOiJjb250ZW50In07ci5fY29sbGVjdFJlc291cmNlVGltaW5nJiZyLl9yZXNvdXJjZVRpbWluZyYmci5fcmVzb3VyY2VUaW1pbmcubGVuZ3RoPjAmJihuLnJlc291cmNlVGltaW5nPXIuX3Jlc291cmNlVGltaW5nLHIuX3Jlc291cmNlVGltaW5nPVtdKSxyLmZpcmUobmV3IHQuRXZlbnQoImRhdGEiLG4pKX19KSksdGhpc30sci5wcm90b3R5cGUuZ2V0Q2x1c3RlckV4cGFuc2lvblpvb209ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5hY3Rvci5zZW5kKCJnZW9qc29uLmdldENsdXN0ZXJFeHBhbnNpb25ab29tIix7Y2x1c3RlcklkOnQsc291cmNlOnRoaXMuaWR9LGUpLHRoaXN9LHIucHJvdG90eXBlLmdldENsdXN0ZXJDaGlsZHJlbj1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmFjdG9yLnNlbmQoImdlb2pzb24uZ2V0Q2x1c3RlckNoaWxkcmVuIix7Y2x1c3RlcklkOnQsc291cmNlOnRoaXMuaWR9LGUpLHRoaXN9LHIucHJvdG90eXBlLmdldENsdXN0ZXJMZWF2ZXM9ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIHRoaXMuYWN0b3Iuc2VuZCgiZ2VvanNvbi5nZXRDbHVzdGVyTGVhdmVzIix7c291cmNlOnRoaXMuaWQsY2x1c3RlcklkOnQsbGltaXQ6ZSxvZmZzZXQ6cn0sbiksdGhpc30sci5wcm90b3R5cGUuX3VwZGF0ZVdvcmtlckRhdGE9ZnVuY3Rpb24oZSl7dmFyIHI9dGhpczt0aGlzLl9sb2FkZWQ9ITE7dmFyIG49dC5leHRlbmQoe30sdGhpcy53b3JrZXJPcHRpb25zKSxpPXRoaXMuX2RhdGE7InN0cmluZyI9PXR5cGVvZiBpPyhuLnJlcXVlc3Q9dGhpcy5tYXAuX3JlcXVlc3RNYW5hZ2VyLnRyYW5zZm9ybVJlcXVlc3QodC5icm93c2VyLnJlc29sdmVVUkwoaSksdC5SZXNvdXJjZVR5cGUuU291cmNlKSxuLnJlcXVlc3QuY29sbGVjdFJlc291cmNlVGltaW5nPXRoaXMuX2NvbGxlY3RSZXNvdXJjZVRpbWluZyk6bi5kYXRhPUpTT04uc3RyaW5naWZ5KGkpLHRoaXMuYWN0b3Iuc2VuZCh0aGlzLnR5cGUrIi5sb2FkRGF0YSIsbiwoZnVuY3Rpb24odCxpKXtyLl9yZW1vdmVkfHxpJiZpLmFiYW5kb25lZHx8KHIuX2xvYWRlZD0hMCxpJiZpLnJlc291cmNlVGltaW5nJiZpLnJlc291cmNlVGltaW5nW3IuaWRdJiYoci5fcmVzb3VyY2VUaW1pbmc9aS5yZXNvdXJjZVRpbWluZ1tyLmlkXS5zbGljZSgwKSksci5hY3Rvci5zZW5kKHIudHlwZSsiLmNvYWxlc2NlIix7c291cmNlOm4uc291cmNlfSxudWxsKSxlKHQpKX0pKX0sci5wcm90b3R5cGUubG9hZGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xvYWRlZH0sci5wcm90b3R5cGUubG9hZFRpbGU9ZnVuY3Rpb24oZSxyKXt2YXIgbj10aGlzLGk9ZS5hY3Rvcj8icmVsb2FkVGlsZSI6ImxvYWRUaWxlIjtlLmFjdG9yPXRoaXMuYWN0b3I7dmFyIGE9e3R5cGU6dGhpcy50eXBlLHVpZDplLnVpZCx0aWxlSUQ6ZS50aWxlSUQsem9vbTplLnRpbGVJRC5vdmVyc2NhbGVkWixtYXhab29tOnRoaXMubWF4em9vbSx0aWxlU2l6ZTp0aGlzLnRpbGVTaXplLHNvdXJjZTp0aGlzLmlkLHBpeGVsUmF0aW86dC5icm93c2VyLmRldmljZVBpeGVsUmF0aW8sc2hvd0NvbGxpc2lvbkJveGVzOnRoaXMubWFwLnNob3dDb2xsaXNpb25Cb3hlcyxwcm9tb3RlSWQ6dGhpcy5wcm9tb3RlSWR9O2UucmVxdWVzdD10aGlzLmFjdG9yLnNlbmQoaSxhLChmdW5jdGlvbih0LGEpe3JldHVybiBkZWxldGUgZS5yZXF1ZXN0LGUudW5sb2FkVmVjdG9yRGF0YSgpLGUuYWJvcnRlZD9yKG51bGwpOnQ/cih0KTooZS5sb2FkVmVjdG9yRGF0YShhLG4ubWFwLnBhaW50ZXIsInJlbG9hZFRpbGUiPT09aSkscihudWxsKSl9KSl9LHIucHJvdG90eXBlLmFib3J0VGlsZT1mdW5jdGlvbih0KXt0LnJlcXVlc3QmJih0LnJlcXVlc3QuY2FuY2VsKCksZGVsZXRlIHQucmVxdWVzdCksdC5hYm9ydGVkPSEwfSxyLnByb3RvdHlwZS51bmxvYWRUaWxlPWZ1bmN0aW9uKHQpe3QudW5sb2FkVmVjdG9yRGF0YSgpLHRoaXMuYWN0b3Iuc2VuZCgicmVtb3ZlVGlsZSIse3VpZDp0LnVpZCx0eXBlOnRoaXMudHlwZSxzb3VyY2U6dGhpcy5pZH0pfSxyLnByb3RvdHlwZS5vblJlbW92ZT1mdW5jdGlvbigpe3RoaXMuX3JlbW92ZWQ9ITAsdGhpcy5hY3Rvci5zZW5kKCJyZW1vdmVTb3VyY2UiLHt0eXBlOnRoaXMudHlwZSxzb3VyY2U6dGhpcy5pZH0pfSxyLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXtyZXR1cm4gdC5leHRlbmQoe30sdGhpcy5fb3B0aW9ucyx7dHlwZTp0aGlzLnR5cGUsZGF0YTp0aGlzLl9kYXRhfSl9LHIucHJvdG90eXBlLmhhc1RyYW5zaXRpb249ZnVuY3Rpb24oKXtyZXR1cm4hMX0scn0odC5FdmVudGVkKSxQPXQuY3JlYXRlTGF5b3V0KFt7bmFtZToiYV9wb3MiLHR5cGU6IkludDE2Iixjb21wb25lbnRzOjJ9LHtuYW1lOiJhX3RleHR1cmVfcG9zIix0eXBlOiJJbnQxNiIsY29tcG9uZW50czoyfV0pLEk9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gcih0LHIsbixpKXtlLmNhbGwodGhpcyksdGhpcy5pZD10LHRoaXMuZGlzcGF0Y2hlcj1uLHRoaXMuY29vcmRpbmF0ZXM9ci5jb29yZGluYXRlcyx0aGlzLnR5cGU9ImltYWdlIix0aGlzLm1pbnpvb209MCx0aGlzLm1heHpvb209MjIsdGhpcy50aWxlU2l6ZT01MTIsdGhpcy50aWxlcz17fSx0aGlzLl9sb2FkZWQ9ITEsdGhpcy5zZXRFdmVudGVkUGFyZW50KGkpLHRoaXMub3B0aW9ucz1yfXJldHVybiBlJiYoci5fX3Byb3RvX189ZSksci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixyLnByb3RvdHlwZS5sb2FkPWZ1bmN0aW9uKGUscil7dmFyIG49dGhpczt0aGlzLl9sb2FkZWQ9ITEsdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJkYXRhbG9hZGluZyIse2RhdGFUeXBlOiJzb3VyY2UifSkpLHRoaXMudXJsPXRoaXMub3B0aW9ucy51cmwsdC5nZXRJbWFnZSh0aGlzLm1hcC5fcmVxdWVzdE1hbmFnZXIudHJhbnNmb3JtUmVxdWVzdCh0aGlzLnVybCx0LlJlc291cmNlVHlwZS5JbWFnZSksKGZ1bmN0aW9uKGksYSl7bi5fbG9hZGVkPSEwLGk/bi5maXJlKG5ldyB0LkVycm9yRXZlbnQoaSkpOmEmJihuLmltYWdlPWEsZSYmKG4uY29vcmRpbmF0ZXM9ZSksciYmcigpLG4uX2ZpbmlzaExvYWRpbmcoKSl9KSl9LHIucHJvdG90eXBlLmxvYWRlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9sb2FkZWR9LHIucHJvdG90eXBlLnVwZGF0ZUltYWdlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuaW1hZ2UmJnQudXJsPyh0aGlzLm9wdGlvbnMudXJsPXQudXJsLHRoaXMubG9hZCh0LmNvb3JkaW5hdGVzLChmdW5jdGlvbigpe2UudGV4dHVyZT1udWxsfSkpLHRoaXMpOnRoaXN9LHIucHJvdG90eXBlLl9maW5pc2hMb2FkaW5nPWZ1bmN0aW9uKCl7dGhpcy5tYXAmJih0aGlzLnNldENvb3JkaW5hdGVzKHRoaXMuY29vcmRpbmF0ZXMpLHRoaXMuZmlyZShuZXcgdC5FdmVudCgiZGF0YSIse2RhdGFUeXBlOiJzb3VyY2UiLHNvdXJjZURhdGFUeXBlOiJtZXRhZGF0YSJ9KSkpfSxyLnByb3RvdHlwZS5vbkFkZD1mdW5jdGlvbih0KXt0aGlzLm1hcD10LHRoaXMubG9hZCgpfSxyLnByb3RvdHlwZS5zZXRDb29yZGluYXRlcz1mdW5jdGlvbihlKXt2YXIgcj10aGlzO3RoaXMuY29vcmRpbmF0ZXM9ZTt2YXIgbj1lLm1hcCh0Lk1lcmNhdG9yQ29vcmRpbmF0ZS5mcm9tTG5nTGF0KTt0aGlzLnRpbGVJRD1mdW5jdGlvbihlKXtmb3IodmFyIHI9MS8wLG49MS8wLGk9LTEvMCxhPS0xLzAsbz0wLHM9ZTtvPHMubGVuZ3RoO28rPTEpe3ZhciBsPXNbb107cj1NYXRoLm1pbihyLGwueCksbj1NYXRoLm1pbihuLGwueSksaT1NYXRoLm1heChpLGwueCksYT1NYXRoLm1heChhLGwueSl9dmFyIGM9aS1yLHU9YS1uLGY9TWF0aC5tYXgoYyx1KSxoPU1hdGgubWF4KDAsTWF0aC5mbG9vcigtTWF0aC5sb2coZikvTWF0aC5MTjIpKSxwPU1hdGgucG93KDIsaCk7cmV0dXJuIG5ldyB0LkNhbm9uaWNhbFRpbGVJRChoLE1hdGguZmxvb3IoKHIraSkvMipwKSxNYXRoLmZsb29yKChuK2EpLzIqcCkpfShuKSx0aGlzLm1pbnpvb209dGhpcy5tYXh6b29tPXRoaXMudGlsZUlELno7dmFyIGk9bi5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiByLnRpbGVJRC5nZXRUaWxlUG9pbnQodCkuX3JvdW5kKCl9KSk7cmV0dXJuIHRoaXMuX2JvdW5kc0FycmF5PW5ldyB0LlN0cnVjdEFycmF5TGF5b3V0NGk4LHRoaXMuX2JvdW5kc0FycmF5LmVtcGxhY2VCYWNrKGlbMF0ueCxpWzBdLnksMCwwKSx0aGlzLl9ib3VuZHNBcnJheS5lbXBsYWNlQmFjayhpWzFdLngsaVsxXS55LHQuRVhURU5ULDApLHRoaXMuX2JvdW5kc0FycmF5LmVtcGxhY2VCYWNrKGlbM10ueCxpWzNdLnksMCx0LkVYVEVOVCksdGhpcy5fYm91bmRzQXJyYXkuZW1wbGFjZUJhY2soaVsyXS54LGlbMl0ueSx0LkVYVEVOVCx0LkVYVEVOVCksdGhpcy5ib3VuZHNCdWZmZXImJih0aGlzLmJvdW5kc0J1ZmZlci5kZXN0cm95KCksZGVsZXRlIHRoaXMuYm91bmRzQnVmZmVyKSx0aGlzLmZpcmUobmV3IHQuRXZlbnQoImRhdGEiLHtkYXRhVHlwZToic291cmNlIixzb3VyY2VEYXRhVHlwZToiY29udGVudCJ9KSksdGhpc30sci5wcm90b3R5cGUucHJlcGFyZT1mdW5jdGlvbigpe2lmKDAhPT1PYmplY3Qua2V5cyh0aGlzLnRpbGVzKS5sZW5ndGgmJnRoaXMuaW1hZ2Upe3ZhciBlPXRoaXMubWFwLnBhaW50ZXIuY29udGV4dCxyPWUuZ2w7Zm9yKHZhciBuIGluIHRoaXMuYm91bmRzQnVmZmVyfHwodGhpcy5ib3VuZHNCdWZmZXI9ZS5jcmVhdGVWZXJ0ZXhCdWZmZXIodGhpcy5fYm91bmRzQXJyYXksUC5tZW1iZXJzKSksdGhpcy5ib3VuZHNTZWdtZW50c3x8KHRoaXMuYm91bmRzU2VnbWVudHM9dC5TZWdtZW50VmVjdG9yLnNpbXBsZVNlZ21lbnQoMCwwLDQsMikpLHRoaXMudGV4dHVyZXx8KHRoaXMudGV4dHVyZT1uZXcgdC5UZXh0dXJlKGUsdGhpcy5pbWFnZSxyLlJHQkEpLHRoaXMudGV4dHVyZS5iaW5kKHIuTElORUFSLHIuQ0xBTVBfVE9fRURHRSkpLHRoaXMudGlsZXMpe3ZhciBpPXRoaXMudGlsZXNbbl07ImxvYWRlZCIhPT1pLnN0YXRlJiYoaS5zdGF0ZT0ibG9hZGVkIixpLnRleHR1cmU9dGhpcy50ZXh0dXJlKX19fSxyLnByb3RvdHlwZS5sb2FkVGlsZT1mdW5jdGlvbih0LGUpe3RoaXMudGlsZUlEJiZ0aGlzLnRpbGVJRC5lcXVhbHModC50aWxlSUQuY2Fub25pY2FsKT8odGhpcy50aWxlc1tTdHJpbmcodC50aWxlSUQud3JhcCldPXQsdC5idWNrZXRzPXt9LGUobnVsbCkpOih0LnN0YXRlPSJlcnJvcmVkIixlKG51bGwpKX0sci5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6ImltYWdlIix1cmw6dGhpcy5vcHRpb25zLnVybCxjb29yZGluYXRlczp0aGlzLmNvb3JkaW5hdGVzfX0sci5wcm90b3R5cGUuaGFzVHJhbnNpdGlvbj1mdW5jdGlvbigpe3JldHVybiExfSxyfSh0LkV2ZW50ZWQpO3ZhciBPPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHIodCxyLG4saSl7ZS5jYWxsKHRoaXMsdCxyLG4saSksdGhpcy5yb3VuZFpvb209ITAsdGhpcy50eXBlPSJ2aWRlbyIsdGhpcy5vcHRpb25zPXJ9cmV0dXJuIGUmJihyLl9fcHJvdG9fXz1lKSxyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlKSxyLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1yLHIucHJvdG90eXBlLmxvYWQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuX2xvYWRlZD0hMTt2YXIgcj10aGlzLm9wdGlvbnM7dGhpcy51cmxzPVtdO2Zvcih2YXIgbj0wLGk9ci51cmxzO248aS5sZW5ndGg7bis9MSl7dmFyIGE9aVtuXTt0aGlzLnVybHMucHVzaCh0aGlzLm1hcC5fcmVxdWVzdE1hbmFnZXIudHJhbnNmb3JtUmVxdWVzdChhLHQuUmVzb3VyY2VUeXBlLlNvdXJjZSkudXJsKX10LmdldFZpZGVvKHRoaXMudXJscywoZnVuY3Rpb24ocixuKXtlLl9sb2FkZWQ9ITAscj9lLmZpcmUobmV3IHQuRXJyb3JFdmVudChyKSk6biYmKGUudmlkZW89bixlLnZpZGVvLmxvb3A9ITAsZS52aWRlby5hZGRFdmVudExpc3RlbmVyKCJwbGF5aW5nIiwoZnVuY3Rpb24oKXtlLm1hcC50cmlnZ2VyUmVwYWludCgpfSkpLGUubWFwJiZlLnZpZGVvLnBsYXkoKSxlLl9maW5pc2hMb2FkaW5nKCkpfSkpfSxyLnByb3RvdHlwZS5wYXVzZT1mdW5jdGlvbigpe3RoaXMudmlkZW8mJnRoaXMudmlkZW8ucGF1c2UoKX0sci5wcm90b3R5cGUucGxheT1mdW5jdGlvbigpe3RoaXMudmlkZW8mJnRoaXMudmlkZW8ucGxheSgpfSxyLnByb3RvdHlwZS5zZWVrPWZ1bmN0aW9uKGUpe2lmKHRoaXMudmlkZW8pe3ZhciByPXRoaXMudmlkZW8uc2Vla2FibGU7ZTxyLnN0YXJ0KDApfHxlPnIuZW5kKDApP3RoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyB0LlZhbGlkYXRpb25FcnJvcigic291cmNlcy4iK3RoaXMuaWQsbnVsbCwiUGxheWJhY2sgZm9yIHRoaXMgdmlkZW8gY2FuIGJlIHNldCBvbmx5IGJldHdlZW4gdGhlICIrci5zdGFydCgwKSsiIGFuZCAiK3IuZW5kKDApKyItc2Vjb25kIG1hcmsuIikpKTp0aGlzLnZpZGVvLmN1cnJlbnRUaW1lPWV9fSxyLnByb3RvdHlwZS5nZXRWaWRlbz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZpZGVvfSxyLnByb3RvdHlwZS5vbkFkZD1mdW5jdGlvbih0KXt0aGlzLm1hcHx8KHRoaXMubWFwPXQsdGhpcy5sb2FkKCksdGhpcy52aWRlbyYmKHRoaXMudmlkZW8ucGxheSgpLHRoaXMuc2V0Q29vcmRpbmF0ZXModGhpcy5jb29yZGluYXRlcykpKX0sci5wcm90b3R5cGUucHJlcGFyZT1mdW5jdGlvbigpe2lmKCEoMD09PU9iamVjdC5rZXlzKHRoaXMudGlsZXMpLmxlbmd0aHx8dGhpcy52aWRlby5yZWFkeVN0YXRlPDIpKXt2YXIgZT10aGlzLm1hcC5wYWludGVyLmNvbnRleHQscj1lLmdsO2Zvcih2YXIgbiBpbiB0aGlzLmJvdW5kc0J1ZmZlcnx8KHRoaXMuYm91bmRzQnVmZmVyPWUuY3JlYXRlVmVydGV4QnVmZmVyKHRoaXMuX2JvdW5kc0FycmF5LFAubWVtYmVycykpLHRoaXMuYm91bmRzU2VnbWVudHN8fCh0aGlzLmJvdW5kc1NlZ21lbnRzPXQuU2VnbWVudFZlY3Rvci5zaW1wbGVTZWdtZW50KDAsMCw0LDIpKSx0aGlzLnRleHR1cmU/dGhpcy52aWRlby5wYXVzZWR8fCh0aGlzLnRleHR1cmUuYmluZChyLkxJTkVBUixyLkNMQU1QX1RPX0VER0UpLHIudGV4U3ViSW1hZ2UyRChyLlRFWFRVUkVfMkQsMCwwLDAsci5SR0JBLHIuVU5TSUdORURfQllURSx0aGlzLnZpZGVvKSk6KHRoaXMudGV4dHVyZT1uZXcgdC5UZXh0dXJlKGUsdGhpcy52aWRlbyxyLlJHQkEpLHRoaXMudGV4dHVyZS5iaW5kKHIuTElORUFSLHIuQ0xBTVBfVE9fRURHRSkpLHRoaXMudGlsZXMpe3ZhciBpPXRoaXMudGlsZXNbbl07ImxvYWRlZCIhPT1pLnN0YXRlJiYoaS5zdGF0ZT0ibG9hZGVkIixpLnRleHR1cmU9dGhpcy50ZXh0dXJlKX19fSxyLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXtyZXR1cm57dHlwZToidmlkZW8iLHVybHM6dGhpcy51cmxzLGNvb3JkaW5hdGVzOnRoaXMuY29vcmRpbmF0ZXN9fSxyLnByb3RvdHlwZS5oYXNUcmFuc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmlkZW8mJiF0aGlzLnZpZGVvLnBhdXNlZH0scn0oSSksej1mdW5jdGlvbihlKXtmdW5jdGlvbiByKHIsbixpLGEpe2UuY2FsbCh0aGlzLHIsbixpLGEpLG4uY29vcmRpbmF0ZXM/QXJyYXkuaXNBcnJheShuLmNvb3JkaW5hdGVzKSYmND09PW4uY29vcmRpbmF0ZXMubGVuZ3RoJiYhbi5jb29yZGluYXRlcy5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4hQXJyYXkuaXNBcnJheSh0KXx8MiE9PXQubGVuZ3RofHx0LnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiJudW1iZXIiIT10eXBlb2YgdH0pKX0pKXx8dGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IHQuVmFsaWRhdGlvbkVycm9yKCJzb3VyY2VzLiIrcixudWxsLCciY29vcmRpbmF0ZXMiIHByb3BlcnR5IG11c3QgYmUgYW4gYXJyYXkgb2YgNCBsb25naXR1ZGUvbGF0aXR1ZGUgYXJyYXkgcGFpcnMnKSkpOnRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyB0LlZhbGlkYXRpb25FcnJvcigic291cmNlcy4iK3IsbnVsbCwnbWlzc2luZyByZXF1aXJlZCBwcm9wZXJ0eSAiY29vcmRpbmF0ZXMiJykpKSxuLmFuaW1hdGUmJiJib29sZWFuIiE9dHlwZW9mIG4uYW5pbWF0ZSYmdGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IHQuVmFsaWRhdGlvbkVycm9yKCJzb3VyY2VzLiIrcixudWxsLCdvcHRpb25hbCAiYW5pbWF0ZSIgcHJvcGVydHkgbXVzdCBiZSBhIGJvb2xlYW4gdmFsdWUnKSkpLG4uY2FudmFzPyJzdHJpbmciPT10eXBlb2Ygbi5jYW52YXN8fG4uY2FudmFzIGluc3RhbmNlb2YgdC53aW5kb3cuSFRNTENhbnZhc0VsZW1lbnR8fHRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyB0LlZhbGlkYXRpb25FcnJvcigic291cmNlcy4iK3IsbnVsbCwnImNhbnZhcyIgbXVzdCBiZSBlaXRoZXIgYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBJRCBvZiB0aGUgY2FudmFzIGVsZW1lbnQgZnJvbSB3aGljaCB0byByZWFkLCBvciBhbiBIVE1MQ2FudmFzRWxlbWVudCBpbnN0YW5jZScpKSk6dGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IHQuVmFsaWRhdGlvbkVycm9yKCJzb3VyY2VzLiIrcixudWxsLCdtaXNzaW5nIHJlcXVpcmVkIHByb3BlcnR5ICJjYW52YXMiJykpKSx0aGlzLm9wdGlvbnM9bix0aGlzLmFuaW1hdGU9dm9pZCAwPT09bi5hbmltYXRlfHxuLmFuaW1hdGV9cmV0dXJuIGUmJihyLl9fcHJvdG9fXz1lKSxyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlKSxyLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1yLHIucHJvdG90eXBlLmxvYWQ9ZnVuY3Rpb24oKXt0aGlzLl9sb2FkZWQ9ITAsdGhpcy5jYW52YXN8fCh0aGlzLmNhbnZhcz10aGlzLm9wdGlvbnMuY2FudmFzIGluc3RhbmNlb2YgdC53aW5kb3cuSFRNTENhbnZhc0VsZW1lbnQ/dGhpcy5vcHRpb25zLmNhbnZhczp0LndpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLm9wdGlvbnMuY2FudmFzKSksdGhpcy53aWR0aD10aGlzLmNhbnZhcy53aWR0aCx0aGlzLmhlaWdodD10aGlzLmNhbnZhcy5oZWlnaHQsdGhpcy5faGFzSW52YWxpZERpbWVuc2lvbnMoKT90aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoIkNhbnZhcyBkaW1lbnNpb25zIGNhbm5vdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gemVyby4iKSkpOih0aGlzLnBsYXk9ZnVuY3Rpb24oKXt0aGlzLl9wbGF5aW5nPSEwLHRoaXMubWFwLnRyaWdnZXJSZXBhaW50KCl9LHRoaXMucGF1c2U9ZnVuY3Rpb24oKXt0aGlzLl9wbGF5aW5nJiYodGhpcy5wcmVwYXJlKCksdGhpcy5fcGxheWluZz0hMSl9LHRoaXMuX2ZpbmlzaExvYWRpbmcoKSl9LHIucHJvdG90eXBlLmdldENhbnZhcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNhbnZhc30sci5wcm90b3R5cGUub25BZGQ9ZnVuY3Rpb24odCl7dGhpcy5tYXA9dCx0aGlzLmxvYWQoKSx0aGlzLmNhbnZhcyYmdGhpcy5hbmltYXRlJiZ0aGlzLnBsYXkoKX0sci5wcm90b3R5cGUub25SZW1vdmU9ZnVuY3Rpb24oKXt0aGlzLnBhdXNlKCl9LHIucHJvdG90eXBlLnByZXBhcmU9ZnVuY3Rpb24oKXt2YXIgZT0hMTtpZih0aGlzLmNhbnZhcy53aWR0aCE9PXRoaXMud2lkdGgmJih0aGlzLndpZHRoPXRoaXMuY2FudmFzLndpZHRoLGU9ITApLHRoaXMuY2FudmFzLmhlaWdodCE9PXRoaXMuaGVpZ2h0JiYodGhpcy5oZWlnaHQ9dGhpcy5jYW52YXMuaGVpZ2h0LGU9ITApLCF0aGlzLl9oYXNJbnZhbGlkRGltZW5zaW9ucygpJiYwIT09T2JqZWN0LmtleXModGhpcy50aWxlcykubGVuZ3RoKXt2YXIgcj10aGlzLm1hcC5wYWludGVyLmNvbnRleHQsbj1yLmdsO2Zvcih2YXIgaSBpbiB0aGlzLmJvdW5kc0J1ZmZlcnx8KHRoaXMuYm91bmRzQnVmZmVyPXIuY3JlYXRlVmVydGV4QnVmZmVyKHRoaXMuX2JvdW5kc0FycmF5LFAubWVtYmVycykpLHRoaXMuYm91bmRzU2VnbWVudHN8fCh0aGlzLmJvdW5kc1NlZ21lbnRzPXQuU2VnbWVudFZlY3Rvci5zaW1wbGVTZWdtZW50KDAsMCw0LDIpKSx0aGlzLnRleHR1cmU/KGV8fHRoaXMuX3BsYXlpbmcpJiZ0aGlzLnRleHR1cmUudXBkYXRlKHRoaXMuY2FudmFzLHtwcmVtdWx0aXBseTohMH0pOnRoaXMudGV4dHVyZT1uZXcgdC5UZXh0dXJlKHIsdGhpcy5jYW52YXMsbi5SR0JBLHtwcmVtdWx0aXBseTohMH0pLHRoaXMudGlsZXMpe3ZhciBhPXRoaXMudGlsZXNbaV07ImxvYWRlZCIhPT1hLnN0YXRlJiYoYS5zdGF0ZT0ibG9hZGVkIixhLnRleHR1cmU9dGhpcy50ZXh0dXJlKX19fSxyLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXtyZXR1cm57dHlwZToiY2FudmFzIixjb29yZGluYXRlczp0aGlzLmNvb3JkaW5hdGVzfX0sci5wcm90b3R5cGUuaGFzVHJhbnNpdGlvbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9wbGF5aW5nfSxyLnByb3RvdHlwZS5faGFzSW52YWxpZERpbWVuc2lvbnM9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MCxlPVt0aGlzLmNhbnZhcy53aWR0aCx0aGlzLmNhbnZhcy5oZWlnaHRdO3Q8ZS5sZW5ndGg7dCs9MSl7dmFyIHI9ZVt0XTtpZihpc05hTihyKXx8cjw9MClyZXR1cm4hMH1yZXR1cm4hMX0scn0oSSksRD17dmVjdG9yOlMscmFzdGVyOkUsInJhc3Rlci1kZW0iOkwsZ2VvanNvbjpDLHZpZGVvOk8saW1hZ2U6SSxjYW52YXM6en07ZnVuY3Rpb24gUihlLHIpe3ZhciBuPXQuaWRlbnRpdHkoW10pO3JldHVybiB0LnRyYW5zbGF0ZShuLG4sWzEsMSwwXSksdC5zY2FsZShuLG4sWy41KmUud2lkdGgsLjUqZS5oZWlnaHQsMV0pLHQubXVsdGlwbHkobixuLGUuY2FsY3VsYXRlUG9zTWF0cml4KHIudG9VbndyYXBwZWQoKSkpfWZ1bmN0aW9uIEYodCxlLHIsbixpLGEpe3ZhciBvPWZ1bmN0aW9uKHQsZSxyKXtpZih0KWZvcih2YXIgbj0wLGk9dDtuPGkubGVuZ3RoO24rPTEpe3ZhciBhPWVbaVtuXV07aWYoYSYmYS5zb3VyY2U9PT1yJiYiZmlsbC1leHRydXNpb24iPT09YS50eXBlKXJldHVybiEwfWVsc2UgZm9yKHZhciBvIGluIGUpe3ZhciBzPWVbb107aWYocy5zb3VyY2U9PT1yJiYiZmlsbC1leHRydXNpb24iPT09cy50eXBlKXJldHVybiEwfXJldHVybiExfShpJiZpLmxheWVycyxlLHQuaWQpLHM9YS5tYXhQaXRjaFNjYWxlRmFjdG9yKCksbD10LnRpbGVzSW4obixzLG8pO2wuc29ydChCKTtmb3IodmFyIGM9W10sdT0wLGY9bDt1PGYubGVuZ3RoO3UrPTEpe3ZhciBoPWZbdV07Yy5wdXNoKHt3cmFwcGVkVGlsZUlEOmgudGlsZUlELndyYXBwZWQoKS5rZXkscXVlcnlSZXN1bHRzOmgudGlsZS5xdWVyeVJlbmRlcmVkRmVhdHVyZXMoZSxyLHQuX3N0YXRlLGgucXVlcnlHZW9tZXRyeSxoLmNhbWVyYVF1ZXJ5R2VvbWV0cnksaC5zY2FsZSxpLGEscyxSKHQudHJhbnNmb3JtLGgudGlsZUlEKSl9KX12YXIgcD1mdW5jdGlvbih0KXtmb3IodmFyIGU9e30scj17fSxuPTAsaT10O248aS5sZW5ndGg7bis9MSl7dmFyIGE9aVtuXSxvPWEucXVlcnlSZXN1bHRzLHM9YS53cmFwcGVkVGlsZUlELGw9cltzXT1yW3NdfHx7fTtmb3IodmFyIGMgaW4gbylmb3IodmFyIHU9b1tjXSxmPWxbY109bFtjXXx8e30saD1lW2NdPWVbY118fFtdLHA9MCxkPXU7cDxkLmxlbmd0aDtwKz0xKXt2YXIgbT1kW3BdO2ZbbS5mZWF0dXJlSW5kZXhdfHwoZlttLmZlYXR1cmVJbmRleF09ITAsaC5wdXNoKG0pKX19cmV0dXJuIGV9KGMpO2Zvcih2YXIgZCBpbiBwKXBbZF0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIHI9ZS5mZWF0dXJlLG49dC5nZXRGZWF0dXJlU3RhdGUoci5sYXllclsic291cmNlLWxheWVyIl0sci5pZCk7ci5zb3VyY2U9ci5sYXllci5zb3VyY2Usci5sYXllclsic291cmNlLWxheWVyIl0mJihyLnNvdXJjZUxheWVyPXIubGF5ZXJbInNvdXJjZS1sYXllciJdKSxyLnN0YXRlPW59KSk7cmV0dXJuIHB9ZnVuY3Rpb24gQih0LGUpe3ZhciByPXQudGlsZUlELG49ZS50aWxlSUQ7cmV0dXJuIHIub3ZlcnNjYWxlZFotbi5vdmVyc2NhbGVkWnx8ci5jYW5vbmljYWwueS1uLmNhbm9uaWNhbC55fHxyLndyYXAtbi53cmFwfHxyLmNhbm9uaWNhbC54LW4uY2Fub25pY2FsLnh9dmFyIE49ZnVuY3Rpb24odCxlKXt0aGlzLm1heD10LHRoaXMub25SZW1vdmU9ZSx0aGlzLnJlc2V0KCl9O04ucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMuZGF0YSlmb3IodmFyIGU9MCxyPXRoaXMuZGF0YVt0XTtlPHIubGVuZ3RoO2UrPTEpe3ZhciBuPXJbZV07bi50aW1lb3V0JiZjbGVhclRpbWVvdXQobi50aW1lb3V0KSx0aGlzLm9uUmVtb3ZlKG4udmFsdWUpfXJldHVybiB0aGlzLmRhdGE9e30sdGhpcy5vcmRlcj1bXSx0aGlzfSxOLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMsaT10LndyYXBwZWQoKS5rZXk7dm9pZCAwPT09dGhpcy5kYXRhW2ldJiYodGhpcy5kYXRhW2ldPVtdKTt2YXIgYT17dmFsdWU6ZSx0aW1lb3V0OnZvaWQgMH07aWYodm9pZCAwIT09ciYmKGEudGltZW91dD1zZXRUaW1lb3V0KChmdW5jdGlvbigpe24ucmVtb3ZlKHQsYSl9KSxyKSksdGhpcy5kYXRhW2ldLnB1c2goYSksdGhpcy5vcmRlci5wdXNoKGkpLHRoaXMub3JkZXIubGVuZ3RoPnRoaXMubWF4KXt2YXIgbz10aGlzLl9nZXRBbmRSZW1vdmVCeUtleSh0aGlzLm9yZGVyWzBdKTtvJiZ0aGlzLm9uUmVtb3ZlKG8pfXJldHVybiB0aGlzfSxOLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIHQud3JhcHBlZCgpLmtleSBpbiB0aGlzLmRhdGF9LE4ucHJvdG90eXBlLmdldEFuZFJlbW92ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5oYXModCk/dGhpcy5fZ2V0QW5kUmVtb3ZlQnlLZXkodC53cmFwcGVkKCkua2V5KTpudWxsfSxOLnByb3RvdHlwZS5fZ2V0QW5kUmVtb3ZlQnlLZXk9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5kYXRhW3RdLnNoaWZ0KCk7cmV0dXJuIGUudGltZW91dCYmY2xlYXJUaW1lb3V0KGUudGltZW91dCksMD09PXRoaXMuZGF0YVt0XS5sZW5ndGgmJmRlbGV0ZSB0aGlzLmRhdGFbdF0sdGhpcy5vcmRlci5zcGxpY2UodGhpcy5vcmRlci5pbmRleE9mKHQpLDEpLGUudmFsdWV9LE4ucHJvdG90eXBlLmdldEJ5S2V5PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZGF0YVt0XTtyZXR1cm4gZT9lWzBdLnZhbHVlOm51bGx9LE4ucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5oYXModCk/dGhpcy5kYXRhW3Qud3JhcHBlZCgpLmtleV1bMF0udmFsdWU6bnVsbH0sTi5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKHQsZSl7aWYoIXRoaXMuaGFzKHQpKXJldHVybiB0aGlzO3ZhciByPXQud3JhcHBlZCgpLmtleSxuPXZvaWQgMD09PWU/MDp0aGlzLmRhdGFbcl0uaW5kZXhPZihlKSxpPXRoaXMuZGF0YVtyXVtuXTtyZXR1cm4gdGhpcy5kYXRhW3JdLnNwbGljZShuLDEpLGkudGltZW91dCYmY2xlYXJUaW1lb3V0KGkudGltZW91dCksMD09PXRoaXMuZGF0YVtyXS5sZW5ndGgmJmRlbGV0ZSB0aGlzLmRhdGFbcl0sdGhpcy5vblJlbW92ZShpLnZhbHVlKSx0aGlzLm9yZGVyLnNwbGljZSh0aGlzLm9yZGVyLmluZGV4T2YociksMSksdGhpc30sTi5wcm90b3R5cGUuc2V0TWF4U2l6ZT1mdW5jdGlvbih0KXtmb3IodGhpcy5tYXg9dDt0aGlzLm9yZGVyLmxlbmd0aD50aGlzLm1heDspe3ZhciBlPXRoaXMuX2dldEFuZFJlbW92ZUJ5S2V5KHRoaXMub3JkZXJbMF0pO2UmJnRoaXMub25SZW1vdmUoZSl9cmV0dXJuIHRoaXN9LE4ucHJvdG90eXBlLmZpbHRlcj1mdW5jdGlvbih0KXt2YXIgZT1bXTtmb3IodmFyIHIgaW4gdGhpcy5kYXRhKWZvcih2YXIgbj0wLGk9dGhpcy5kYXRhW3JdO248aS5sZW5ndGg7bis9MSl7dmFyIGE9aVtuXTt0KGEudmFsdWUpfHxlLnB1c2goYSl9Zm9yKHZhciBvPTAscz1lO288cy5sZW5ndGg7bys9MSl7dmFyIGw9c1tvXTt0aGlzLnJlbW92ZShsLnZhbHVlLnRpbGVJRCxsKX19O3ZhciBqPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLmNvbnRleHQ9dDt2YXIgbj10LmdsO3RoaXMuYnVmZmVyPW4uY3JlYXRlQnVmZmVyKCksdGhpcy5keW5hbWljRHJhdz1Cb29sZWFuKHIpLHRoaXMuY29udGV4dC51bmJpbmRWQU8oKSx0LmJpbmRFbGVtZW50QnVmZmVyLnNldCh0aGlzLmJ1ZmZlciksbi5idWZmZXJEYXRhKG4uRUxFTUVOVF9BUlJBWV9CVUZGRVIsZS5hcnJheUJ1ZmZlcix0aGlzLmR5bmFtaWNEcmF3P24uRFlOQU1JQ19EUkFXOm4uU1RBVElDX0RSQVcpLHRoaXMuZHluYW1pY0RyYXd8fGRlbGV0ZSBlLmFycmF5QnVmZmVyfTtqLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKCl7dGhpcy5jb250ZXh0LmJpbmRFbGVtZW50QnVmZmVyLnNldCh0aGlzLmJ1ZmZlcil9LGoucHJvdG90eXBlLnVwZGF0ZURhdGE9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jb250ZXh0LmdsO3RoaXMuY29udGV4dC51bmJpbmRWQU8oKSx0aGlzLmJpbmQoKSxlLmJ1ZmZlclN1YkRhdGEoZS5FTEVNRU5UX0FSUkFZX0JVRkZFUiwwLHQuYXJyYXlCdWZmZXIpfSxqLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jb250ZXh0LmdsO3RoaXMuYnVmZmVyJiYodC5kZWxldGVCdWZmZXIodGhpcy5idWZmZXIpLGRlbGV0ZSB0aGlzLmJ1ZmZlcil9O3ZhciBVPXtJbnQ4OiJCWVRFIixVaW50ODoiVU5TSUdORURfQllURSIsSW50MTY6IlNIT1JUIixVaW50MTY6IlVOU0lHTkVEX1NIT1JUIixJbnQzMjoiSU5UIixVaW50MzI6IlVOU0lHTkVEX0lOVCIsRmxvYXQzMjoiRkxPQVQifSxWPWZ1bmN0aW9uKHQsZSxyLG4pe3RoaXMubGVuZ3RoPWUubGVuZ3RoLHRoaXMuYXR0cmlidXRlcz1yLHRoaXMuaXRlbVNpemU9ZS5ieXRlc1BlckVsZW1lbnQsdGhpcy5keW5hbWljRHJhdz1uLHRoaXMuY29udGV4dD10O3ZhciBpPXQuZ2w7dGhpcy5idWZmZXI9aS5jcmVhdGVCdWZmZXIoKSx0LmJpbmRWZXJ0ZXhCdWZmZXIuc2V0KHRoaXMuYnVmZmVyKSxpLmJ1ZmZlckRhdGEoaS5BUlJBWV9CVUZGRVIsZS5hcnJheUJ1ZmZlcix0aGlzLmR5bmFtaWNEcmF3P2kuRFlOQU1JQ19EUkFXOmkuU1RBVElDX0RSQVcpLHRoaXMuZHluYW1pY0RyYXd8fGRlbGV0ZSBlLmFycmF5QnVmZmVyfTtWLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKCl7dGhpcy5jb250ZXh0LmJpbmRWZXJ0ZXhCdWZmZXIuc2V0KHRoaXMuYnVmZmVyKX0sVi5wcm90b3R5cGUudXBkYXRlRGF0YT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmNvbnRleHQuZ2w7dGhpcy5iaW5kKCksZS5idWZmZXJTdWJEYXRhKGUuQVJSQVlfQlVGRkVSLDAsdC5hcnJheUJ1ZmZlcil9LFYucHJvdG90eXBlLmVuYWJsZUF0dHJpYnV0ZXM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9MDtyPHRoaXMuYXR0cmlidXRlcy5sZW5ndGg7cisrKXt2YXIgbj10aGlzLmF0dHJpYnV0ZXNbcl0saT1lLmF0dHJpYnV0ZXNbbi5uYW1lXTt2b2lkIDAhPT1pJiZ0LmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KGkpfX0sVi5wcm90b3R5cGUuc2V0VmVydGV4QXR0cmliUG9pbnRlcnM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj0wO248dGhpcy5hdHRyaWJ1dGVzLmxlbmd0aDtuKyspe3ZhciBpPXRoaXMuYXR0cmlidXRlc1tuXSxhPWUuYXR0cmlidXRlc1tpLm5hbWVdO3ZvaWQgMCE9PWEmJnQudmVydGV4QXR0cmliUG9pbnRlcihhLGkuY29tcG9uZW50cyx0W1VbaS50eXBlXV0sITEsdGhpcy5pdGVtU2l6ZSxpLm9mZnNldCt0aGlzLml0ZW1TaXplKihyfHwwKSl9fSxWLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jb250ZXh0LmdsO3RoaXMuYnVmZmVyJiYodC5kZWxldGVCdWZmZXIodGhpcy5idWZmZXIpLGRlbGV0ZSB0aGlzLmJ1ZmZlcil9O3ZhciBIPWZ1bmN0aW9uKHQpe3RoaXMuZ2w9dC5nbCx0aGlzLmRlZmF1bHQ9dGhpcy5nZXREZWZhdWx0KCksdGhpcy5jdXJyZW50PXRoaXMuZGVmYXVsdCx0aGlzLmRpcnR5PSExfTtILnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50fSxILnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7fSxILnByb3RvdHlwZS5nZXREZWZhdWx0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGVmYXVsdH0sSC5wcm90b3R5cGUuc2V0RGVmYXVsdD1mdW5jdGlvbigpe3RoaXMuc2V0KHRoaXMuZGVmYXVsdCl9O3ZhciBxPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHIoKXtlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gZSYmKHIuX19wcm90b19fPWUpLHIucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUpLHIucHJvdG90eXBlLmNvbnN0cnVjdG9yPXIsci5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiB0LkNvbG9yLnRyYW5zcGFyZW50fSxyLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jdXJyZW50Oyh0LnIhPT1lLnJ8fHQuZyE9PWUuZ3x8dC5iIT09ZS5ifHx0LmEhPT1lLmF8fHRoaXMuZGlydHkpJiYodGhpcy5nbC5jbGVhckNvbG9yKHQucix0LmcsdC5iLHQuYSksdGhpcy5jdXJyZW50PXQsdGhpcy5kaXJ0eT0hMSl9LHJ9KEgpLEc9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5nZXREZWZhdWx0PWZ1bmN0aW9uKCl7cmV0dXJuIDF9LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXsodCE9PXRoaXMuY3VycmVudHx8dGhpcy5kaXJ0eSkmJih0aGlzLmdsLmNsZWFyRGVwdGgodCksdGhpcy5jdXJyZW50PXQsdGhpcy5kaXJ0eT0hMSl9LGV9KEgpLFk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5nZXREZWZhdWx0PWZ1bmN0aW9uKCl7cmV0dXJuIDB9LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXsodCE9PXRoaXMuY3VycmVudHx8dGhpcy5kaXJ0eSkmJih0aGlzLmdsLmNsZWFyU3RlbmNpbCh0KSx0aGlzLmN1cnJlbnQ9dCx0aGlzLmRpcnR5PSExKX0sZX0oSCksVz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmdldERlZmF1bHQ9ZnVuY3Rpb24oKXtyZXR1cm5bITAsITAsITAsITBdfSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jdXJyZW50Oyh0WzBdIT09ZVswXXx8dFsxXSE9PWVbMV18fHRbMl0hPT1lWzJdfHx0WzNdIT09ZVszXXx8dGhpcy5kaXJ0eSkmJih0aGlzLmdsLmNvbG9yTWFzayh0WzBdLHRbMV0sdFsyXSx0WzNdKSx0aGlzLmN1cnJlbnQ9dCx0aGlzLmRpcnR5PSExKX0sZX0oSCksWD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmdldERlZmF1bHQ9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpeyh0IT09dGhpcy5jdXJyZW50fHx0aGlzLmRpcnR5KSYmKHRoaXMuZ2wuZGVwdGhNYXNrKHQpLHRoaXMuY3VycmVudD10LHRoaXMuZGlydHk9ITEpfSxlfShIKSxaPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiAyNTV9LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXsodCE9PXRoaXMuY3VycmVudHx8dGhpcy5kaXJ0eSkmJih0aGlzLmdsLnN0ZW5jaWxNYXNrKHQpLHRoaXMuY3VycmVudD10LHRoaXMuZGlydHk9ITEpfSxlfShIKSxKPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3JldHVybntmdW5jOnRoaXMuZ2wuQUxXQVlTLHJlZjowLG1hc2s6MjU1fX0sZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY3VycmVudDsodC5mdW5jIT09ZS5mdW5jfHx0LnJlZiE9PWUucmVmfHx0Lm1hc2shPT1lLm1hc2t8fHRoaXMuZGlydHkpJiYodGhpcy5nbC5zdGVuY2lsRnVuYyh0LmZ1bmMsdC5yZWYsdC5tYXNrKSx0aGlzLmN1cnJlbnQ9dCx0aGlzLmRpcnR5PSExKX0sZX0oSCksSz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmdldERlZmF1bHQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmdsO3JldHVyblt0LktFRVAsdC5LRUVQLHQuS0VFUF19LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmN1cnJlbnQ7KHRbMF0hPT1lWzBdfHx0WzFdIT09ZVsxXXx8dFsyXSE9PWVbMl18fHRoaXMuZGlydHkpJiYodGhpcy5nbC5zdGVuY2lsT3AodFswXSx0WzFdLHRbMl0pLHRoaXMuY3VycmVudD10LHRoaXMuZGlydHk9ITEpfSxlfShIKSxRPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiExfSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7aWYodCE9PXRoaXMuY3VycmVudHx8dGhpcy5kaXJ0eSl7dmFyIGU9dGhpcy5nbDt0P2UuZW5hYmxlKGUuU1RFTkNJTF9URVNUKTplLmRpc2FibGUoZS5TVEVOQ0lMX1RFU1QpLHRoaXMuY3VycmVudD10LHRoaXMuZGlydHk9ITF9fSxlfShIKSwkPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3JldHVyblswLDFdfSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jdXJyZW50Oyh0WzBdIT09ZVswXXx8dFsxXSE9PWVbMV18fHRoaXMuZGlydHkpJiYodGhpcy5nbC5kZXB0aFJhbmdlKHRbMF0sdFsxXSksdGhpcy5jdXJyZW50PXQsdGhpcy5kaXJ0eT0hMSl9LGV9KEgpLHR0PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiExfSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7aWYodCE9PXRoaXMuY3VycmVudHx8dGhpcy5kaXJ0eSl7dmFyIGU9dGhpcy5nbDt0P2UuZW5hYmxlKGUuREVQVEhfVEVTVCk6ZS5kaXNhYmxlKGUuREVQVEhfVEVTVCksdGhpcy5jdXJyZW50PXQsdGhpcy5kaXJ0eT0hMX19LGV9KEgpLGV0PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdsLkxFU1N9LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXsodCE9PXRoaXMuY3VycmVudHx8dGhpcy5kaXJ0eSkmJih0aGlzLmdsLmRlcHRoRnVuYyh0KSx0aGlzLmN1cnJlbnQ9dCx0aGlzLmRpcnR5PSExKX0sZX0oSCkscnQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5nZXREZWZhdWx0PWZ1bmN0aW9uKCl7cmV0dXJuITF9LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXtpZih0IT09dGhpcy5jdXJyZW50fHx0aGlzLmRpcnR5KXt2YXIgZT10aGlzLmdsO3Q/ZS5lbmFibGUoZS5CTEVORCk6ZS5kaXNhYmxlKGUuQkxFTkQpLHRoaXMuY3VycmVudD10LHRoaXMuZGlydHk9ITF9fSxlfShIKSxudD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmdldERlZmF1bHQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmdsO3JldHVyblt0Lk9ORSx0LlpFUk9dfSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jdXJyZW50Oyh0WzBdIT09ZVswXXx8dFsxXSE9PWVbMV18fHRoaXMuZGlydHkpJiYodGhpcy5nbC5ibGVuZEZ1bmModFswXSx0WzFdKSx0aGlzLmN1cnJlbnQ9dCx0aGlzLmRpcnR5PSExKX0sZX0oSCksaXQ9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gcigpe2UuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBlJiYoci5fX3Byb3RvX189ZSksci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixyLnByb3RvdHlwZS5nZXREZWZhdWx0PWZ1bmN0aW9uKCl7cmV0dXJuIHQuQ29sb3IudHJhbnNwYXJlbnR9LHIucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmN1cnJlbnQ7KHQuciE9PWUucnx8dC5nIT09ZS5nfHx0LmIhPT1lLmJ8fHQuYSE9PWUuYXx8dGhpcy5kaXJ0eSkmJih0aGlzLmdsLmJsZW5kQ29sb3IodC5yLHQuZyx0LmIsdC5hKSx0aGlzLmN1cnJlbnQ9dCx0aGlzLmRpcnR5PSExKX0scn0oSCksYXQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5nZXREZWZhdWx0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2wuRlVOQ19BRER9LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXsodCE9PXRoaXMuY3VycmVudHx8dGhpcy5kaXJ0eSkmJih0aGlzLmdsLmJsZW5kRXF1YXRpb24odCksdGhpcy5jdXJyZW50PXQsdGhpcy5kaXJ0eT0hMSl9LGV9KEgpLG90PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiExfSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7aWYodCE9PXRoaXMuY3VycmVudHx8dGhpcy5kaXJ0eSl7dmFyIGU9dGhpcy5nbDt0P2UuZW5hYmxlKGUuQ1VMTF9GQUNFKTplLmRpc2FibGUoZS5DVUxMX0ZBQ0UpLHRoaXMuY3VycmVudD10LHRoaXMuZGlydHk9ITF9fSxlfShIKSxzdD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmdldERlZmF1bHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nbC5CQUNLfSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7KHQhPT10aGlzLmN1cnJlbnR8fHRoaXMuZGlydHkpJiYodGhpcy5nbC5jdWxsRmFjZSh0KSx0aGlzLmN1cnJlbnQ9dCx0aGlzLmRpcnR5PSExKX0sZX0oSCksbHQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5nZXREZWZhdWx0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2wuQ0NXfSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7KHQhPT10aGlzLmN1cnJlbnR8fHRoaXMuZGlydHkpJiYodGhpcy5nbC5mcm9udEZhY2UodCksdGhpcy5jdXJyZW50PXQsdGhpcy5kaXJ0eT0hMSl9LGV9KEgpLGN0PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiBudWxsfSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7KHQhPT10aGlzLmN1cnJlbnR8fHRoaXMuZGlydHkpJiYodGhpcy5nbC51c2VQcm9ncmFtKHQpLHRoaXMuY3VycmVudD10LHRoaXMuZGlydHk9ITEpfSxlfShIKSx1dD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmdldERlZmF1bHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nbC5URVhUVVJFMH0sZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpeyh0IT09dGhpcy5jdXJyZW50fHx0aGlzLmRpcnR5KSYmKHRoaXMuZ2wuYWN0aXZlVGV4dHVyZSh0KSx0aGlzLmN1cnJlbnQ9dCx0aGlzLmRpcnR5PSExKX0sZX0oSCksZnQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5nZXREZWZhdWx0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5nbDtyZXR1cm5bMCwwLHQuZHJhd2luZ0J1ZmZlcldpZHRoLHQuZHJhd2luZ0J1ZmZlckhlaWdodF19LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmN1cnJlbnQ7KHRbMF0hPT1lWzBdfHx0WzFdIT09ZVsxXXx8dFsyXSE9PWVbMl18fHRbM10hPT1lWzNdfHx0aGlzLmRpcnR5KSYmKHRoaXMuZ2wudmlld3BvcnQodFswXSx0WzFdLHRbMl0sdFszXSksdGhpcy5jdXJyZW50PXQsdGhpcy5kaXJ0eT0hMSl9LGV9KEgpLGh0PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiBudWxsfSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7aWYodCE9PXRoaXMuY3VycmVudHx8dGhpcy5kaXJ0eSl7dmFyIGU9dGhpcy5nbDtlLmJpbmRGcmFtZWJ1ZmZlcihlLkZSQU1FQlVGRkVSLHQpLHRoaXMuY3VycmVudD10LHRoaXMuZGlydHk9ITF9fSxlfShIKSxwdD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmdldERlZmF1bHQ9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0sZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpe2lmKHQhPT10aGlzLmN1cnJlbnR8fHRoaXMuZGlydHkpe3ZhciBlPXRoaXMuZ2w7ZS5iaW5kUmVuZGVyYnVmZmVyKGUuUkVOREVSQlVGRkVSLHQpLHRoaXMuY3VycmVudD10LHRoaXMuZGlydHk9ITF9fSxlfShIKSxkdD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmdldERlZmF1bHQ9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0sZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpe2lmKHQhPT10aGlzLmN1cnJlbnR8fHRoaXMuZGlydHkpe3ZhciBlPXRoaXMuZ2w7ZS5iaW5kVGV4dHVyZShlLlRFWFRVUkVfMkQsdCksdGhpcy5jdXJyZW50PXQsdGhpcy5kaXJ0eT0hMX19LGV9KEgpLG10PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiBudWxsfSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7aWYodCE9PXRoaXMuY3VycmVudHx8dGhpcy5kaXJ0eSl7dmFyIGU9dGhpcy5nbDtlLmJpbmRCdWZmZXIoZS5BUlJBWV9CVUZGRVIsdCksdGhpcy5jdXJyZW50PXQsdGhpcy5kaXJ0eT0hMX19LGV9KEgpLGd0PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiBudWxsfSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5nbDtlLmJpbmRCdWZmZXIoZS5FTEVNRU5UX0FSUkFZX0JVRkZFUix0KSx0aGlzLmN1cnJlbnQ9dCx0aGlzLmRpcnR5PSExfSxlfShIKSx2dD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3QuY2FsbCh0aGlzLGUpLHRoaXMudmFvPWUuZXh0VmVydGV4QXJyYXlPYmplY3R9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmdldERlZmF1bHQ9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0sZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpe3RoaXMudmFvJiYodCE9PXRoaXMuY3VycmVudHx8dGhpcy5kaXJ0eSkmJih0aGlzLnZhby5iaW5kVmVydGV4QXJyYXlPRVModCksdGhpcy5jdXJyZW50PXQsdGhpcy5kaXJ0eT0hMSl9LGV9KEgpLHl0PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiA0fSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7aWYodCE9PXRoaXMuY3VycmVudHx8dGhpcy5kaXJ0eSl7dmFyIGU9dGhpcy5nbDtlLnBpeGVsU3RvcmVpKGUuVU5QQUNLX0FMSUdOTUVOVCx0KSx0aGlzLmN1cnJlbnQ9dCx0aGlzLmRpcnR5PSExfX0sZX0oSCkseHQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5nZXREZWZhdWx0PWZ1bmN0aW9uKCl7cmV0dXJuITF9LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXtpZih0IT09dGhpcy5jdXJyZW50fHx0aGlzLmRpcnR5KXt2YXIgZT10aGlzLmdsO2UucGl4ZWxTdG9yZWkoZS5VTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wsdCksdGhpcy5jdXJyZW50PXQsdGhpcy5kaXJ0eT0hMX19LGV9KEgpLGJ0PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiExfSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7aWYodCE9PXRoaXMuY3VycmVudHx8dGhpcy5kaXJ0eSl7dmFyIGU9dGhpcy5nbDtlLnBpeGVsU3RvcmVpKGUuVU5QQUNLX0ZMSVBfWV9XRUJHTCx0KSx0aGlzLmN1cnJlbnQ9dCx0aGlzLmRpcnR5PSExfX0sZX0oSCksX3Q9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlLHIpe3QuY2FsbCh0aGlzLGUpLHRoaXMuY29udGV4dD1lLHRoaXMucGFyZW50PXJ9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmdldERlZmF1bHQ9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0sZX0oSCksd3Q9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5zZXREaXJ0eT1mdW5jdGlvbigpe3RoaXMuZGlydHk9ITB9LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXtpZih0IT09dGhpcy5jdXJyZW50fHx0aGlzLmRpcnR5KXt0aGlzLmNvbnRleHQuYmluZEZyYW1lYnVmZmVyLnNldCh0aGlzLnBhcmVudCk7dmFyIGU9dGhpcy5nbDtlLmZyYW1lYnVmZmVyVGV4dHVyZTJEKGUuRlJBTUVCVUZGRVIsZS5DT0xPUl9BVFRBQ0hNRU5UMCxlLlRFWFRVUkVfMkQsdCwwKSx0aGlzLmN1cnJlbnQ9dCx0aGlzLmRpcnR5PSExfX0sZX0oX3QpLFR0PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpe2lmKHQhPT10aGlzLmN1cnJlbnR8fHRoaXMuZGlydHkpe3RoaXMuY29udGV4dC5iaW5kRnJhbWVidWZmZXIuc2V0KHRoaXMucGFyZW50KTt2YXIgZT10aGlzLmdsO2UuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoZS5GUkFNRUJVRkZFUixlLkRFUFRIX0FUVEFDSE1FTlQsZS5SRU5ERVJCVUZGRVIsdCksdGhpcy5jdXJyZW50PXQsdGhpcy5kaXJ0eT0hMX19LGV9KF90KSxrdD1mdW5jdGlvbih0LGUscixuKXt0aGlzLmNvbnRleHQ9dCx0aGlzLndpZHRoPWUsdGhpcy5oZWlnaHQ9cjt2YXIgaT10LmdsLGE9dGhpcy5mcmFtZWJ1ZmZlcj1pLmNyZWF0ZUZyYW1lYnVmZmVyKCk7dGhpcy5jb2xvckF0dGFjaG1lbnQ9bmV3IHd0KHQsYSksbiYmKHRoaXMuZGVwdGhBdHRhY2htZW50PW5ldyBUdCh0LGEpKX07a3QucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmNvbnRleHQuZ2wsZT10aGlzLmNvbG9yQXR0YWNobWVudC5nZXQoKTtpZihlJiZ0LmRlbGV0ZVRleHR1cmUoZSksdGhpcy5kZXB0aEF0dGFjaG1lbnQpe3ZhciByPXRoaXMuZGVwdGhBdHRhY2htZW50LmdldCgpO3ImJnQuZGVsZXRlUmVuZGVyYnVmZmVyKHIpfXQuZGVsZXRlRnJhbWVidWZmZXIodGhpcy5mcmFtZWJ1ZmZlcil9O3ZhciBBdD1mdW5jdGlvbih0LGUscil7dGhpcy5mdW5jPXQsdGhpcy5tYXNrPWUsdGhpcy5yYW5nZT1yfTtBdC5SZWFkT25seT0hMSxBdC5SZWFkV3JpdGU9ITAsQXQuZGlzYWJsZWQ9bmV3IEF0KDUxOSxBdC5SZWFkT25seSxbMCwxXSk7dmFyIE10PWZ1bmN0aW9uKHQsZSxyLG4saSxhKXt0aGlzLnRlc3Q9dCx0aGlzLnJlZj1lLHRoaXMubWFzaz1yLHRoaXMuZmFpbD1uLHRoaXMuZGVwdGhGYWlsPWksdGhpcy5wYXNzPWF9O010LmRpc2FibGVkPW5ldyBNdCh7ZnVuYzo1MTksbWFzazowfSwwLDAsNzY4MCw3NjgwLDc2ODApO3ZhciBTdD1mdW5jdGlvbih0LGUscil7dGhpcy5ibGVuZEZ1bmN0aW9uPXQsdGhpcy5ibGVuZENvbG9yPWUsdGhpcy5tYXNrPXJ9O1N0LmRpc2FibGVkPW5ldyBTdChTdC5SZXBsYWNlPVsxLDBdLHQuQ29sb3IudHJhbnNwYXJlbnQsWyExLCExLCExLCExXSksU3QudW5ibGVuZGVkPW5ldyBTdChTdC5SZXBsYWNlLHQuQ29sb3IudHJhbnNwYXJlbnQsWyEwLCEwLCEwLCEwXSksU3QuYWxwaGFCbGVuZGVkPW5ldyBTdChbMSw3NzFdLHQuQ29sb3IudHJhbnNwYXJlbnQsWyEwLCEwLCEwLCEwXSk7dmFyIEV0PWZ1bmN0aW9uKHQsZSxyKXt0aGlzLmVuYWJsZT10LHRoaXMubW9kZT1lLHRoaXMuZnJvbnRGYWNlPXJ9O0V0LmRpc2FibGVkPW5ldyBFdCghMSwxMDI5LDIzMDUpLEV0LmJhY2tDQ1c9bmV3IEV0KCEwLDEwMjksMjMwNSk7dmFyIEx0PWZ1bmN0aW9uKHQpe3RoaXMuZ2w9dCx0aGlzLmV4dFZlcnRleEFycmF5T2JqZWN0PXRoaXMuZ2wuZ2V0RXh0ZW5zaW9uKCJPRVNfdmVydGV4X2FycmF5X29iamVjdCIpLHRoaXMuY2xlYXJDb2xvcj1uZXcgcSh0aGlzKSx0aGlzLmNsZWFyRGVwdGg9bmV3IEcodGhpcyksdGhpcy5jbGVhclN0ZW5jaWw9bmV3IFkodGhpcyksdGhpcy5jb2xvck1hc2s9bmV3IFcodGhpcyksdGhpcy5kZXB0aE1hc2s9bmV3IFgodGhpcyksdGhpcy5zdGVuY2lsTWFzaz1uZXcgWih0aGlzKSx0aGlzLnN0ZW5jaWxGdW5jPW5ldyBKKHRoaXMpLHRoaXMuc3RlbmNpbE9wPW5ldyBLKHRoaXMpLHRoaXMuc3RlbmNpbFRlc3Q9bmV3IFEodGhpcyksdGhpcy5kZXB0aFJhbmdlPW5ldyAkKHRoaXMpLHRoaXMuZGVwdGhUZXN0PW5ldyB0dCh0aGlzKSx0aGlzLmRlcHRoRnVuYz1uZXcgZXQodGhpcyksdGhpcy5ibGVuZD1uZXcgcnQodGhpcyksdGhpcy5ibGVuZEZ1bmM9bmV3IG50KHRoaXMpLHRoaXMuYmxlbmRDb2xvcj1uZXcgaXQodGhpcyksdGhpcy5ibGVuZEVxdWF0aW9uPW5ldyBhdCh0aGlzKSx0aGlzLmN1bGxGYWNlPW5ldyBvdCh0aGlzKSx0aGlzLmN1bGxGYWNlU2lkZT1uZXcgc3QodGhpcyksdGhpcy5mcm9udEZhY2U9bmV3IGx0KHRoaXMpLHRoaXMucHJvZ3JhbT1uZXcgY3QodGhpcyksdGhpcy5hY3RpdmVUZXh0dXJlPW5ldyB1dCh0aGlzKSx0aGlzLnZpZXdwb3J0PW5ldyBmdCh0aGlzKSx0aGlzLmJpbmRGcmFtZWJ1ZmZlcj1uZXcgaHQodGhpcyksdGhpcy5iaW5kUmVuZGVyYnVmZmVyPW5ldyBwdCh0aGlzKSx0aGlzLmJpbmRUZXh0dXJlPW5ldyBkdCh0aGlzKSx0aGlzLmJpbmRWZXJ0ZXhCdWZmZXI9bmV3IG10KHRoaXMpLHRoaXMuYmluZEVsZW1lbnRCdWZmZXI9bmV3IGd0KHRoaXMpLHRoaXMuYmluZFZlcnRleEFycmF5T0VTPXRoaXMuZXh0VmVydGV4QXJyYXlPYmplY3QmJm5ldyB2dCh0aGlzKSx0aGlzLnBpeGVsU3RvcmVVbnBhY2s9bmV3IHl0KHRoaXMpLHRoaXMucGl4ZWxTdG9yZVVucGFja1ByZW11bHRpcGx5QWxwaGE9bmV3IHh0KHRoaXMpLHRoaXMucGl4ZWxTdG9yZVVucGFja0ZsaXBZPW5ldyBidCh0aGlzKSx0aGlzLmV4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYz10LmdldEV4dGVuc2lvbigiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIil8fHQuZ2V0RXh0ZW5zaW9uKCJNT1pfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIil8fHQuZ2V0RXh0ZW5zaW9uKCJXRUJLSVRfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIiksdGhpcy5leHRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMmJih0aGlzLmV4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpY01heD10LmdldFBhcmFtZXRlcih0aGlzLmV4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5NQVhfVEVYVFVSRV9NQVhfQU5JU09UUk9QWV9FWFQpKSx0aGlzLmV4dFRleHR1cmVIYWxmRmxvYXQ9dC5nZXRFeHRlbnNpb24oIk9FU190ZXh0dXJlX2hhbGZfZmxvYXQiKSx0aGlzLmV4dFRleHR1cmVIYWxmRmxvYXQmJih0LmdldEV4dGVuc2lvbigiT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKSx0aGlzLmV4dFJlbmRlclRvVGV4dHVyZUhhbGZGbG9hdD10LmdldEV4dGVuc2lvbigiRVhUX2NvbG9yX2J1ZmZlcl9oYWxmX2Zsb2F0IikpLHRoaXMuZXh0VGltZXJRdWVyeT10LmdldEV4dGVuc2lvbigiRVhUX2Rpc2pvaW50X3RpbWVyX3F1ZXJ5Iil9O0x0LnByb3RvdHlwZS5zZXREZWZhdWx0PWZ1bmN0aW9uKCl7dGhpcy51bmJpbmRWQU8oKSx0aGlzLmNsZWFyQ29sb3Iuc2V0RGVmYXVsdCgpLHRoaXMuY2xlYXJEZXB0aC5zZXREZWZhdWx0KCksdGhpcy5jbGVhclN0ZW5jaWwuc2V0RGVmYXVsdCgpLHRoaXMuY29sb3JNYXNrLnNldERlZmF1bHQoKSx0aGlzLmRlcHRoTWFzay5zZXREZWZhdWx0KCksdGhpcy5zdGVuY2lsTWFzay5zZXREZWZhdWx0KCksdGhpcy5zdGVuY2lsRnVuYy5zZXREZWZhdWx0KCksdGhpcy5zdGVuY2lsT3Auc2V0RGVmYXVsdCgpLHRoaXMuc3RlbmNpbFRlc3Quc2V0RGVmYXVsdCgpLHRoaXMuZGVwdGhSYW5nZS5zZXREZWZhdWx0KCksdGhpcy5kZXB0aFRlc3Quc2V0RGVmYXVsdCgpLHRoaXMuZGVwdGhGdW5jLnNldERlZmF1bHQoKSx0aGlzLmJsZW5kLnNldERlZmF1bHQoKSx0aGlzLmJsZW5kRnVuYy5zZXREZWZhdWx0KCksdGhpcy5ibGVuZENvbG9yLnNldERlZmF1bHQoKSx0aGlzLmJsZW5kRXF1YXRpb24uc2V0RGVmYXVsdCgpLHRoaXMuY3VsbEZhY2Uuc2V0RGVmYXVsdCgpLHRoaXMuY3VsbEZhY2VTaWRlLnNldERlZmF1bHQoKSx0aGlzLmZyb250RmFjZS5zZXREZWZhdWx0KCksdGhpcy5wcm9ncmFtLnNldERlZmF1bHQoKSx0aGlzLmFjdGl2ZVRleHR1cmUuc2V0RGVmYXVsdCgpLHRoaXMuYmluZEZyYW1lYnVmZmVyLnNldERlZmF1bHQoKSx0aGlzLnBpeGVsU3RvcmVVbnBhY2suc2V0RGVmYXVsdCgpLHRoaXMucGl4ZWxTdG9yZVVucGFja1ByZW11bHRpcGx5QWxwaGEuc2V0RGVmYXVsdCgpLHRoaXMucGl4ZWxTdG9yZVVucGFja0ZsaXBZLnNldERlZmF1bHQoKX0sTHQucHJvdG90eXBlLnNldERpcnR5PWZ1bmN0aW9uKCl7dGhpcy5jbGVhckNvbG9yLmRpcnR5PSEwLHRoaXMuY2xlYXJEZXB0aC5kaXJ0eT0hMCx0aGlzLmNsZWFyU3RlbmNpbC5kaXJ0eT0hMCx0aGlzLmNvbG9yTWFzay5kaXJ0eT0hMCx0aGlzLmRlcHRoTWFzay5kaXJ0eT0hMCx0aGlzLnN0ZW5jaWxNYXNrLmRpcnR5PSEwLHRoaXMuc3RlbmNpbEZ1bmMuZGlydHk9ITAsdGhpcy5zdGVuY2lsT3AuZGlydHk9ITAsdGhpcy5zdGVuY2lsVGVzdC5kaXJ0eT0hMCx0aGlzLmRlcHRoUmFuZ2UuZGlydHk9ITAsdGhpcy5kZXB0aFRlc3QuZGlydHk9ITAsdGhpcy5kZXB0aEZ1bmMuZGlydHk9ITAsdGhpcy5ibGVuZC5kaXJ0eT0hMCx0aGlzLmJsZW5kRnVuYy5kaXJ0eT0hMCx0aGlzLmJsZW5kQ29sb3IuZGlydHk9ITAsdGhpcy5ibGVuZEVxdWF0aW9uLmRpcnR5PSEwLHRoaXMuY3VsbEZhY2UuZGlydHk9ITAsdGhpcy5jdWxsRmFjZVNpZGUuZGlydHk9ITAsdGhpcy5mcm9udEZhY2UuZGlydHk9ITAsdGhpcy5wcm9ncmFtLmRpcnR5PSEwLHRoaXMuYWN0aXZlVGV4dHVyZS5kaXJ0eT0hMCx0aGlzLnZpZXdwb3J0LmRpcnR5PSEwLHRoaXMuYmluZEZyYW1lYnVmZmVyLmRpcnR5PSEwLHRoaXMuYmluZFJlbmRlcmJ1ZmZlci5kaXJ0eT0hMCx0aGlzLmJpbmRUZXh0dXJlLmRpcnR5PSEwLHRoaXMuYmluZFZlcnRleEJ1ZmZlci5kaXJ0eT0hMCx0aGlzLmJpbmRFbGVtZW50QnVmZmVyLmRpcnR5PSEwLHRoaXMuZXh0VmVydGV4QXJyYXlPYmplY3QmJih0aGlzLmJpbmRWZXJ0ZXhBcnJheU9FUy5kaXJ0eT0hMCksdGhpcy5waXhlbFN0b3JlVW5wYWNrLmRpcnR5PSEwLHRoaXMucGl4ZWxTdG9yZVVucGFja1ByZW11bHRpcGx5QWxwaGEuZGlydHk9ITAsdGhpcy5waXhlbFN0b3JlVW5wYWNrRmxpcFkuZGlydHk9ITB9LEx0LnByb3RvdHlwZS5jcmVhdGVJbmRleEJ1ZmZlcj1mdW5jdGlvbih0LGUpe3JldHVybiBuZXcgaih0aGlzLHQsZSl9LEx0LnByb3RvdHlwZS5jcmVhdGVWZXJ0ZXhCdWZmZXI9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBuZXcgVih0aGlzLHQsZSxyKX0sTHQucHJvdG90eXBlLmNyZWF0ZVJlbmRlcmJ1ZmZlcj1mdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5nbCxpPW4uY3JlYXRlUmVuZGVyYnVmZmVyKCk7cmV0dXJuIHRoaXMuYmluZFJlbmRlcmJ1ZmZlci5zZXQoaSksbi5yZW5kZXJidWZmZXJTdG9yYWdlKG4uUkVOREVSQlVGRkVSLHQsZSxyKSx0aGlzLmJpbmRSZW5kZXJidWZmZXIuc2V0KG51bGwpLGl9LEx0LnByb3RvdHlwZS5jcmVhdGVGcmFtZWJ1ZmZlcj1mdW5jdGlvbih0LGUscil7cmV0dXJuIG5ldyBrdCh0aGlzLHQsZSxyKX0sTHQucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKHQpe3ZhciBlPXQuY29sb3Iscj10LmRlcHRoLG49dGhpcy5nbCxpPTA7ZSYmKGl8PW4uQ09MT1JfQlVGRkVSX0JJVCx0aGlzLmNsZWFyQ29sb3Iuc2V0KGUpLHRoaXMuY29sb3JNYXNrLnNldChbITAsITAsITAsITBdKSksdm9pZCAwIT09ciYmKGl8PW4uREVQVEhfQlVGRkVSX0JJVCx0aGlzLmRlcHRoUmFuZ2Uuc2V0KFswLDFdKSx0aGlzLmNsZWFyRGVwdGguc2V0KHIpLHRoaXMuZGVwdGhNYXNrLnNldCghMCkpLG4uY2xlYXIoaSl9LEx0LnByb3RvdHlwZS5zZXRDdWxsRmFjZT1mdW5jdGlvbih0KXshMT09PXQuZW5hYmxlP3RoaXMuY3VsbEZhY2Uuc2V0KCExKToodGhpcy5jdWxsRmFjZS5zZXQoITApLHRoaXMuY3VsbEZhY2VTaWRlLnNldCh0Lm1vZGUpLHRoaXMuZnJvbnRGYWNlLnNldCh0LmZyb250RmFjZSkpfSxMdC5wcm90b3R5cGUuc2V0RGVwdGhNb2RlPWZ1bmN0aW9uKHQpe3QuZnVuYyE9PXRoaXMuZ2wuQUxXQVlTfHx0Lm1hc2s/KHRoaXMuZGVwdGhUZXN0LnNldCghMCksdGhpcy5kZXB0aEZ1bmMuc2V0KHQuZnVuYyksdGhpcy5kZXB0aE1hc2suc2V0KHQubWFzayksdGhpcy5kZXB0aFJhbmdlLnNldCh0LnJhbmdlKSk6dGhpcy5kZXB0aFRlc3Quc2V0KCExKX0sTHQucHJvdG90eXBlLnNldFN0ZW5jaWxNb2RlPWZ1bmN0aW9uKHQpe3QudGVzdC5mdW5jIT09dGhpcy5nbC5BTFdBWVN8fHQubWFzaz8odGhpcy5zdGVuY2lsVGVzdC5zZXQoITApLHRoaXMuc3RlbmNpbE1hc2suc2V0KHQubWFzayksdGhpcy5zdGVuY2lsT3Auc2V0KFt0LmZhaWwsdC5kZXB0aEZhaWwsdC5wYXNzXSksdGhpcy5zdGVuY2lsRnVuYy5zZXQoe2Z1bmM6dC50ZXN0LmZ1bmMscmVmOnQucmVmLG1hc2s6dC50ZXN0Lm1hc2t9KSk6dGhpcy5zdGVuY2lsVGVzdC5zZXQoITEpfSxMdC5wcm90b3R5cGUuc2V0Q29sb3JNb2RlPWZ1bmN0aW9uKGUpe3QuZGVlcEVxdWFsKGUuYmxlbmRGdW5jdGlvbixTdC5SZXBsYWNlKT90aGlzLmJsZW5kLnNldCghMSk6KHRoaXMuYmxlbmQuc2V0KCEwKSx0aGlzLmJsZW5kRnVuYy5zZXQoZS5ibGVuZEZ1bmN0aW9uKSx0aGlzLmJsZW5kQ29sb3Iuc2V0KGUuYmxlbmRDb2xvcikpLHRoaXMuY29sb3JNYXNrLnNldChlLm1hc2spfSxMdC5wcm90b3R5cGUudW5iaW5kVkFPPWZ1bmN0aW9uKCl7dGhpcy5leHRWZXJ0ZXhBcnJheU9iamVjdCYmdGhpcy5iaW5kVmVydGV4QXJyYXlPRVMuc2V0KG51bGwpfTt2YXIgQ3Q9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gcihyLG4saSl7dmFyIGE9dGhpcztlLmNhbGwodGhpcyksdGhpcy5pZD1yLHRoaXMuZGlzcGF0Y2hlcj1pLHRoaXMub24oImRhdGEiLChmdW5jdGlvbih0KXsic291cmNlIj09PXQuZGF0YVR5cGUmJiJtZXRhZGF0YSI9PT10LnNvdXJjZURhdGFUeXBlJiYoYS5fc291cmNlTG9hZGVkPSEwKSxhLl9zb3VyY2VMb2FkZWQmJiFhLl9wYXVzZWQmJiJzb3VyY2UiPT09dC5kYXRhVHlwZSYmImNvbnRlbnQiPT09dC5zb3VyY2VEYXRhVHlwZSYmKGEucmVsb2FkKCksYS50cmFuc2Zvcm0mJmEudXBkYXRlKGEudHJhbnNmb3JtKSl9KSksdGhpcy5vbigiZXJyb3IiLChmdW5jdGlvbigpe2EuX3NvdXJjZUVycm9yZWQ9ITB9KSksdGhpcy5fc291cmNlPWZ1bmN0aW9uKGUscixuLGkpe3ZhciBhPW5ldyBEW3IudHlwZV0oZSxyLG4saSk7aWYoYS5pZCE9PWUpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBTb3VyY2UgaWQgdG8gYmUgIitlKyIgaW5zdGVhZCBvZiAiK2EuaWQpO3JldHVybiB0LmJpbmRBbGwoWyJsb2FkIiwiYWJvcnQiLCJ1bmxvYWQiLCJzZXJpYWxpemUiLCJwcmVwYXJlIl0sYSksYX0ocixuLGksdGhpcyksdGhpcy5fdGlsZXM9e30sdGhpcy5fY2FjaGU9bmV3IE4oMCx0aGlzLl91bmxvYWRUaWxlLmJpbmQodGhpcykpLHRoaXMuX3RpbWVycz17fSx0aGlzLl9jYWNoZVRpbWVycz17fSx0aGlzLl9tYXhUaWxlQ2FjaGVTaXplPW51bGwsdGhpcy5fbG9hZGVkUGFyZW50VGlsZXM9e30sdGhpcy5fY292ZXJlZFRpbGVzPXt9LHRoaXMuX3N0YXRlPW5ldyB0LlNvdXJjZUZlYXR1cmVTdGF0ZX1yZXR1cm4gZSYmKHIuX19wcm90b19fPWUpLHIucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUpLHIucHJvdG90eXBlLmNvbnN0cnVjdG9yPXIsci5wcm90b3R5cGUub25BZGQ9ZnVuY3Rpb24odCl7dGhpcy5tYXA9dCx0aGlzLl9tYXhUaWxlQ2FjaGVTaXplPXQ/dC5fbWF4VGlsZUNhY2hlU2l6ZTpudWxsLHRoaXMuX3NvdXJjZSYmdGhpcy5fc291cmNlLm9uQWRkJiZ0aGlzLl9zb3VyY2Uub25BZGQodCl9LHIucHJvdG90eXBlLm9uUmVtb3ZlPWZ1bmN0aW9uKHQpe3RoaXMuX3NvdXJjZSYmdGhpcy5fc291cmNlLm9uUmVtb3ZlJiZ0aGlzLl9zb3VyY2Uub25SZW1vdmUodCl9LHIucHJvdG90eXBlLmxvYWRlZD1mdW5jdGlvbigpe2lmKHRoaXMuX3NvdXJjZUVycm9yZWQpcmV0dXJuITA7aWYoIXRoaXMuX3NvdXJjZUxvYWRlZClyZXR1cm4hMTtpZighdGhpcy5fc291cmNlLmxvYWRlZCgpKXJldHVybiExO2Zvcih2YXIgdCBpbiB0aGlzLl90aWxlcyl7dmFyIGU9dGhpcy5fdGlsZXNbdF07aWYoImxvYWRlZCIhPT1lLnN0YXRlJiYiZXJyb3JlZCIhPT1lLnN0YXRlKXJldHVybiExfXJldHVybiEwfSxyLnByb3RvdHlwZS5nZXRTb3VyY2U9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc291cmNlfSxyLnByb3RvdHlwZS5wYXVzZT1mdW5jdGlvbigpe3RoaXMuX3BhdXNlZD0hMH0sci5wcm90b3R5cGUucmVzdW1lPWZ1bmN0aW9uKCl7aWYodGhpcy5fcGF1c2VkKXt2YXIgdD10aGlzLl9zaG91bGRSZWxvYWRPblJlc3VtZTt0aGlzLl9wYXVzZWQ9ITEsdGhpcy5fc2hvdWxkUmVsb2FkT25SZXN1bWU9ITEsdCYmdGhpcy5yZWxvYWQoKSx0aGlzLnRyYW5zZm9ybSYmdGhpcy51cGRhdGUodGhpcy50cmFuc2Zvcm0pfX0sci5wcm90b3R5cGUuX2xvYWRUaWxlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX3NvdXJjZS5sb2FkVGlsZSh0LGUpfSxyLnByb3RvdHlwZS5fdW5sb2FkVGlsZT1mdW5jdGlvbih0KXtpZih0aGlzLl9zb3VyY2UudW5sb2FkVGlsZSlyZXR1cm4gdGhpcy5fc291cmNlLnVubG9hZFRpbGUodCwoZnVuY3Rpb24oKXt9KSl9LHIucHJvdG90eXBlLl9hYm9ydFRpbGU9ZnVuY3Rpb24odCl7aWYodGhpcy5fc291cmNlLmFib3J0VGlsZSlyZXR1cm4gdGhpcy5fc291cmNlLmFib3J0VGlsZSh0LChmdW5jdGlvbigpe30pKX0sci5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NvdXJjZS5zZXJpYWxpemUoKX0sci5wcm90b3R5cGUucHJlcGFyZT1mdW5jdGlvbih0KXtmb3IodmFyIGUgaW4gdGhpcy5fc291cmNlLnByZXBhcmUmJnRoaXMuX3NvdXJjZS5wcmVwYXJlKCksdGhpcy5fc3RhdGUuY29hbGVzY2VDaGFuZ2VzKHRoaXMuX3RpbGVzLHRoaXMubWFwP3RoaXMubWFwLnBhaW50ZXI6bnVsbCksdGhpcy5fdGlsZXMpe3ZhciByPXRoaXMuX3RpbGVzW2VdO3IudXBsb2FkKHQpLHIucHJlcGFyZSh0aGlzLm1hcC5zdHlsZS5pbWFnZU1hbmFnZXIpfX0sci5wcm90b3R5cGUuZ2V0SWRzPWZ1bmN0aW9uKCl7cmV0dXJuIHQudmFsdWVzKHRoaXMuX3RpbGVzKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRpbGVJRH0pKS5zb3J0KFB0KS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmtleX0pKX0sci5wcm90b3R5cGUuZ2V0UmVuZGVyYWJsZUlkcz1mdW5jdGlvbihlKXt2YXIgcj10aGlzLG49W107Zm9yKHZhciBpIGluIHRoaXMuX3RpbGVzKXRoaXMuX2lzSWRSZW5kZXJhYmxlKGksZSkmJm4ucHVzaCh0aGlzLl90aWxlc1tpXSk7cmV0dXJuIGU/bi5zb3J0KChmdW5jdGlvbihlLG4pe3ZhciBpPWUudGlsZUlELGE9bi50aWxlSUQsbz1uZXcgdC5Qb2ludChpLmNhbm9uaWNhbC54LGkuY2Fub25pY2FsLnkpLl9yb3RhdGUoci50cmFuc2Zvcm0uYW5nbGUpLHM9bmV3IHQuUG9pbnQoYS5jYW5vbmljYWwueCxhLmNhbm9uaWNhbC55KS5fcm90YXRlKHIudHJhbnNmb3JtLmFuZ2xlKTtyZXR1cm4gaS5vdmVyc2NhbGVkWi1hLm92ZXJzY2FsZWRafHxzLnktby55fHxzLngtby54fSkpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQudGlsZUlELmtleX0pKTpuLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQudGlsZUlEfSkpLnNvcnQoUHQpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQua2V5fSkpfSxyLnByb3RvdHlwZS5oYXNSZW5kZXJhYmxlUGFyZW50PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZmluZExvYWRlZFBhcmVudCh0LDApO3JldHVybiEhZSYmdGhpcy5faXNJZFJlbmRlcmFibGUoZS50aWxlSUQua2V5KX0sci5wcm90b3R5cGUuX2lzSWRSZW5kZXJhYmxlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX3RpbGVzW3RdJiZ0aGlzLl90aWxlc1t0XS5oYXNEYXRhKCkmJiF0aGlzLl9jb3ZlcmVkVGlsZXNbdF0mJihlfHwhdGhpcy5fdGlsZXNbdF0uaG9sZGluZ0ZvckZhZGUoKSl9LHIucHJvdG90eXBlLnJlbG9hZD1mdW5jdGlvbigpe2lmKHRoaXMuX3BhdXNlZCl0aGlzLl9zaG91bGRSZWxvYWRPblJlc3VtZT0hMDtlbHNlIGZvcih2YXIgdCBpbiB0aGlzLl9jYWNoZS5yZXNldCgpLHRoaXMuX3RpbGVzKSJlcnJvcmVkIiE9PXRoaXMuX3RpbGVzW3RdLnN0YXRlJiZ0aGlzLl9yZWxvYWRUaWxlKHQsInJlbG9hZGluZyIpfSxyLnByb3RvdHlwZS5fcmVsb2FkVGlsZT1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuX3RpbGVzW3RdO3ImJigibG9hZGluZyIhPT1yLnN0YXRlJiYoci5zdGF0ZT1lKSx0aGlzLl9sb2FkVGlsZShyLHRoaXMuX3RpbGVMb2FkZWQuYmluZCh0aGlzLHIsdCxlKSkpfSxyLnByb3RvdHlwZS5fdGlsZUxvYWRlZD1mdW5jdGlvbihlLHIsbixpKXtpZihpKXJldHVybiBlLnN0YXRlPSJlcnJvcmVkIix2b2lkKDQwNCE9PWkuc3RhdHVzP3RoaXMuX3NvdXJjZS5maXJlKG5ldyB0LkVycm9yRXZlbnQoaSx7dGlsZTplfSkpOnRoaXMudXBkYXRlKHRoaXMudHJhbnNmb3JtKSk7ZS50aW1lQWRkZWQ9dC5icm93c2VyLm5vdygpLCJleHBpcmVkIj09PW4mJihlLnJlZnJlc2hlZFVwb25FeHBpcmF0aW9uPSEwKSx0aGlzLl9zZXRUaWxlUmVsb2FkVGltZXIocixlKSwicmFzdGVyLWRlbSI9PT10aGlzLmdldFNvdXJjZSgpLnR5cGUmJmUuZGVtJiZ0aGlzLl9iYWNrZmlsbERFTShlKSx0aGlzLl9zdGF0ZS5pbml0aWFsaXplVGlsZVN0YXRlKGUsdGhpcy5tYXA/dGhpcy5tYXAucGFpbnRlcjpudWxsKSx0aGlzLl9zb3VyY2UuZmlyZShuZXcgdC5FdmVudCgiZGF0YSIse2RhdGFUeXBlOiJzb3VyY2UiLHRpbGU6ZSxjb29yZDplLnRpbGVJRH0pKX0sci5wcm90b3R5cGUuX2JhY2tmaWxsREVNPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLmdldFJlbmRlcmFibGVJZHMoKSxyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBuPWVbcl07aWYodC5uZWlnaGJvcmluZ1RpbGVzJiZ0Lm5laWdoYm9yaW5nVGlsZXNbbl0pe3ZhciBpPXRoaXMuZ2V0VGlsZUJ5SUQobik7YSh0LGkpLGEoaSx0KX19ZnVuY3Rpb24gYSh0LGUpe3QubmVlZHNIaWxsc2hhZGVQcmVwYXJlPSEwO3ZhciByPWUudGlsZUlELmNhbm9uaWNhbC54LXQudGlsZUlELmNhbm9uaWNhbC54LG49ZS50aWxlSUQuY2Fub25pY2FsLnktdC50aWxlSUQuY2Fub25pY2FsLnksaT1NYXRoLnBvdygyLHQudGlsZUlELmNhbm9uaWNhbC56KSxhPWUudGlsZUlELmtleTswPT09ciYmMD09PW58fE1hdGguYWJzKG4pPjF8fChNYXRoLmFicyhyKT4xJiYoMT09PU1hdGguYWJzKHIraSk/cis9aToxPT09TWF0aC5hYnMoci1pKSYmKHItPWkpKSxlLmRlbSYmdC5kZW0mJih0LmRlbS5iYWNrZmlsbEJvcmRlcihlLmRlbSxyLG4pLHQubmVpZ2hib3JpbmdUaWxlcyYmdC5uZWlnaGJvcmluZ1RpbGVzW2FdJiYodC5uZWlnaGJvcmluZ1RpbGVzW2FdLmJhY2tmaWxsZWQ9ITApKSl9fSxyLnByb3RvdHlwZS5nZXRUaWxlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmdldFRpbGVCeUlEKHQua2V5KX0sci5wcm90b3R5cGUuZ2V0VGlsZUJ5SUQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3RpbGVzW3RdfSxyLnByb3RvdHlwZS5fcmV0YWluTG9hZGVkQ2hpbGRyZW49ZnVuY3Rpb24odCxlLHIsbil7Zm9yKHZhciBpIGluIHRoaXMuX3RpbGVzKXt2YXIgYT10aGlzLl90aWxlc1tpXTtpZighKG5baV18fCFhLmhhc0RhdGEoKXx8YS50aWxlSUQub3ZlcnNjYWxlZFo8PWV8fGEudGlsZUlELm92ZXJzY2FsZWRaPnIpKXtmb3IodmFyIG89YS50aWxlSUQ7YSYmYS50aWxlSUQub3ZlcnNjYWxlZFo+ZSsxOyl7dmFyIHM9YS50aWxlSUQuc2NhbGVkVG8oYS50aWxlSUQub3ZlcnNjYWxlZFotMSk7KGE9dGhpcy5fdGlsZXNbcy5rZXldKSYmYS5oYXNEYXRhKCkmJihvPXMpfWZvcih2YXIgbD1vO2wub3ZlcnNjYWxlZFo+ZTspaWYodFsobD1sLnNjYWxlZFRvKGwub3ZlcnNjYWxlZFotMSkpLmtleV0pe25bby5rZXldPW87YnJlYWt9fX19LHIucHJvdG90eXBlLmZpbmRMb2FkZWRQYXJlbnQ9ZnVuY3Rpb24odCxlKXtpZih0LmtleSBpbiB0aGlzLl9sb2FkZWRQYXJlbnRUaWxlcyl7dmFyIHI9dGhpcy5fbG9hZGVkUGFyZW50VGlsZXNbdC5rZXldO3JldHVybiByJiZyLnRpbGVJRC5vdmVyc2NhbGVkWj49ZT9yOm51bGx9Zm9yKHZhciBuPXQub3ZlcnNjYWxlZFotMTtuPj1lO24tLSl7dmFyIGk9dC5zY2FsZWRUbyhuKSxhPXRoaXMuX2dldExvYWRlZFRpbGUoaSk7aWYoYSlyZXR1cm4gYX19LHIucHJvdG90eXBlLl9nZXRMb2FkZWRUaWxlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3RpbGVzW3Qua2V5XTtyZXR1cm4gZSYmZS5oYXNEYXRhKCk/ZTp0aGlzLl9jYWNoZS5nZXRCeUtleSh0LndyYXBwZWQoKS5rZXkpfSxyLnByb3RvdHlwZS51cGRhdGVDYWNoZVNpemU9ZnVuY3Rpb24odCl7dmFyIGU9KE1hdGguY2VpbCh0LndpZHRoL3RoaXMuX3NvdXJjZS50aWxlU2l6ZSkrMSkqKE1hdGguY2VpbCh0LmhlaWdodC90aGlzLl9zb3VyY2UudGlsZVNpemUpKzEpLHI9TWF0aC5mbG9vcig1KmUpLG49Im51bWJlciI9PXR5cGVvZiB0aGlzLl9tYXhUaWxlQ2FjaGVTaXplP01hdGgubWluKHRoaXMuX21heFRpbGVDYWNoZVNpemUscik6cjt0aGlzLl9jYWNoZS5zZXRNYXhTaXplKG4pfSxyLnByb3RvdHlwZS5oYW5kbGVXcmFwSnVtcD1mdW5jdGlvbih0KXt2YXIgZT0odC0odm9pZCAwPT09dGhpcy5fcHJldkxuZz90OnRoaXMuX3ByZXZMbmcpKS8zNjAscj1NYXRoLnJvdW5kKGUpO2lmKHRoaXMuX3ByZXZMbmc9dCxyKXt2YXIgbj17fTtmb3IodmFyIGkgaW4gdGhpcy5fdGlsZXMpe3ZhciBhPXRoaXMuX3RpbGVzW2ldO2EudGlsZUlEPWEudGlsZUlELnVud3JhcFRvKGEudGlsZUlELndyYXArciksblthLnRpbGVJRC5rZXldPWF9Zm9yKHZhciBvIGluIHRoaXMuX3RpbGVzPW4sdGhpcy5fdGltZXJzKWNsZWFyVGltZW91dCh0aGlzLl90aW1lcnNbb10pLGRlbGV0ZSB0aGlzLl90aW1lcnNbb107Zm9yKHZhciBzIGluIHRoaXMuX3RpbGVzKXt2YXIgbD10aGlzLl90aWxlc1tzXTt0aGlzLl9zZXRUaWxlUmVsb2FkVGltZXIocyxsKX19fSxyLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcztpZih0aGlzLnRyYW5zZm9ybT1lLHRoaXMuX3NvdXJjZUxvYWRlZCYmIXRoaXMuX3BhdXNlZCl7dmFyIGk7dGhpcy51cGRhdGVDYWNoZVNpemUoZSksdGhpcy5oYW5kbGVXcmFwSnVtcCh0aGlzLnRyYW5zZm9ybS5jZW50ZXIubG5nKSx0aGlzLl9jb3ZlcmVkVGlsZXM9e30sdGhpcy51c2VkP3RoaXMuX3NvdXJjZS50aWxlSUQ/aT1lLmdldFZpc2libGVVbndyYXBwZWRDb29yZGluYXRlcyh0aGlzLl9zb3VyY2UudGlsZUlEKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBuZXcgdC5PdmVyc2NhbGVkVGlsZUlEKGUuY2Fub25pY2FsLnosZS53cmFwLGUuY2Fub25pY2FsLnosZS5jYW5vbmljYWwueCxlLmNhbm9uaWNhbC55KX0pKTooaT1lLmNvdmVyaW5nVGlsZXMoe3RpbGVTaXplOnRoaXMuX3NvdXJjZS50aWxlU2l6ZSxtaW56b29tOnRoaXMuX3NvdXJjZS5taW56b29tLG1heHpvb206dGhpcy5fc291cmNlLm1heHpvb20scm91bmRab29tOnRoaXMuX3NvdXJjZS5yb3VuZFpvb20scmVwYXJzZU92ZXJzY2FsZWQ6dGhpcy5fc291cmNlLnJlcGFyc2VPdmVyc2NhbGVkfSksdGhpcy5fc291cmNlLmhhc1RpbGUmJihpPWkuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gbi5fc291cmNlLmhhc1RpbGUodCl9KSkpKTppPVtdO3ZhciBhPWUuY292ZXJpbmdab29tTGV2ZWwodGhpcy5fc291cmNlKSxvPU1hdGgubWF4KGEtci5tYXhPdmVyem9vbWluZyx0aGlzLl9zb3VyY2UubWluem9vbSkscz1NYXRoLm1heChhK3IubWF4VW5kZXJ6b29taW5nLHRoaXMuX3NvdXJjZS5taW56b29tKSxsPXRoaXMuX3VwZGF0ZVJldGFpbmVkVGlsZXMoaSxhKTtpZihJdCh0aGlzLl9zb3VyY2UudHlwZSkpe2Zvcih2YXIgYz17fSx1PXt9LGY9MCxoPU9iamVjdC5rZXlzKGwpO2Y8aC5sZW5ndGg7Zis9MSl7dmFyIHA9aFtmXSxkPWxbcF0sbT10aGlzLl90aWxlc1twXTtpZihtJiYhKG0uZmFkZUVuZFRpbWUmJm0uZmFkZUVuZFRpbWU8PXQuYnJvd3Nlci5ub3coKSkpe3ZhciBnPXRoaXMuZmluZExvYWRlZFBhcmVudChkLG8pO2cmJih0aGlzLl9hZGRUaWxlKGcudGlsZUlEKSxjW2cudGlsZUlELmtleV09Zy50aWxlSUQpLHVbcF09ZH19Zm9yKHZhciB2IGluIHRoaXMuX3JldGFpbkxvYWRlZENoaWxkcmVuKHUsYSxzLGwpLGMpbFt2XXx8KHRoaXMuX2NvdmVyZWRUaWxlc1t2XT0hMCxsW3ZdPWNbdl0pfWZvcih2YXIgeSBpbiBsKXRoaXMuX3RpbGVzW3ldLmNsZWFyRmFkZUhvbGQoKTtmb3IodmFyIHg9MCxiPXQua2V5c0RpZmZlcmVuY2UodGhpcy5fdGlsZXMsbCk7eDxiLmxlbmd0aDt4Kz0xKXt2YXIgXz1iW3hdLHc9dGhpcy5fdGlsZXNbX107dy5oYXNTeW1ib2xCdWNrZXRzJiYhdy5ob2xkaW5nRm9yRmFkZSgpP3cuc2V0SG9sZER1cmF0aW9uKHRoaXMubWFwLl9mYWRlRHVyYXRpb24pOncuaGFzU3ltYm9sQnVja2V0cyYmIXcuc3ltYm9sRmFkZUZpbmlzaGVkKCl8fHRoaXMuX3JlbW92ZVRpbGUoXyl9dGhpcy5fdXBkYXRlTG9hZGVkUGFyZW50VGlsZUNhY2hlKCl9fSxyLnByb3RvdHlwZS5yZWxlYXNlU3ltYm9sRmFkZVRpbGVzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMuX3RpbGVzKXRoaXMuX3RpbGVzW3RdLmhvbGRpbmdGb3JGYWRlKCkmJnRoaXMuX3JlbW92ZVRpbGUodCl9LHIucHJvdG90eXBlLl91cGRhdGVSZXRhaW5lZFRpbGVzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXt9LGk9e30sYT1NYXRoLm1heChlLXIubWF4T3Zlcnpvb21pbmcsdGhpcy5fc291cmNlLm1pbnpvb20pLG89TWF0aC5tYXgoZStyLm1heFVuZGVyem9vbWluZyx0aGlzLl9zb3VyY2UubWluem9vbSkscz17fSxsPTAsYz10O2w8Yy5sZW5ndGg7bCs9MSl7dmFyIHU9Y1tsXSxmPXRoaXMuX2FkZFRpbGUodSk7blt1LmtleV09dSxmLmhhc0RhdGEoKXx8ZTx0aGlzLl9zb3VyY2UubWF4em9vbSYmKHNbdS5rZXldPXUpfXRoaXMuX3JldGFpbkxvYWRlZENoaWxkcmVuKHMsZSxvLG4pO2Zvcih2YXIgaD0wLHA9dDtoPHAubGVuZ3RoO2grPTEpe3ZhciBkPXBbaF0sbT10aGlzLl90aWxlc1tkLmtleV07aWYoIW0uaGFzRGF0YSgpKXtpZihlKzE+dGhpcy5fc291cmNlLm1heHpvb20pe3ZhciBnPWQuY2hpbGRyZW4odGhpcy5fc291cmNlLm1heHpvb20pWzBdLHY9dGhpcy5nZXRUaWxlKGcpO2lmKHYmJnYuaGFzRGF0YSgpKXtuW2cua2V5XT1nO2NvbnRpbnVlfX1lbHNle3ZhciB5PWQuY2hpbGRyZW4odGhpcy5fc291cmNlLm1heHpvb20pO2lmKG5beVswXS5rZXldJiZuW3lbMV0ua2V5XSYmblt5WzJdLmtleV0mJm5beVszXS5rZXldKWNvbnRpbnVlfWZvcih2YXIgeD1tLndhc1JlcXVlc3RlZCgpLGI9ZC5vdmVyc2NhbGVkWi0xO2I+PWE7LS1iKXt2YXIgXz1kLnNjYWxlZFRvKGIpO2lmKGlbXy5rZXldKWJyZWFrO2lmKGlbXy5rZXldPSEwLCEobT10aGlzLmdldFRpbGUoXykpJiZ4JiYobT10aGlzLl9hZGRUaWxlKF8pKSxtJiYobltfLmtleV09Xyx4PW0ud2FzUmVxdWVzdGVkKCksbS5oYXNEYXRhKCkpKWJyZWFrfX19cmV0dXJuIG59LHIucHJvdG90eXBlLl91cGRhdGVMb2FkZWRQYXJlbnRUaWxlQ2FjaGU9ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcy5fbG9hZGVkUGFyZW50VGlsZXM9e30sdGhpcy5fdGlsZXMpe2Zvcih2YXIgZT1bXSxyPXZvaWQgMCxuPXRoaXMuX3RpbGVzW3RdLnRpbGVJRDtuLm92ZXJzY2FsZWRaPjA7KXtpZihuLmtleSBpbiB0aGlzLl9sb2FkZWRQYXJlbnRUaWxlcyl7cj10aGlzLl9sb2FkZWRQYXJlbnRUaWxlc1tuLmtleV07YnJlYWt9ZS5wdXNoKG4ua2V5KTt2YXIgaT1uLnNjYWxlZFRvKG4ub3ZlcnNjYWxlZFotMSk7aWYocj10aGlzLl9nZXRMb2FkZWRUaWxlKGkpKWJyZWFrO249aX1mb3IodmFyIGE9MCxvPWU7YTxvLmxlbmd0aDthKz0xKXt2YXIgcz1vW2FdO3RoaXMuX2xvYWRlZFBhcmVudFRpbGVzW3NdPXJ9fX0sci5wcm90b3R5cGUuX2FkZFRpbGU9ZnVuY3Rpb24oZSl7dmFyIHI9dGhpcy5fdGlsZXNbZS5rZXldO2lmKHIpcmV0dXJuIHI7KHI9dGhpcy5fY2FjaGUuZ2V0QW5kUmVtb3ZlKGUpKSYmKHRoaXMuX3NldFRpbGVSZWxvYWRUaW1lcihlLmtleSxyKSxyLnRpbGVJRD1lLHRoaXMuX3N0YXRlLmluaXRpYWxpemVUaWxlU3RhdGUocix0aGlzLm1hcD90aGlzLm1hcC5wYWludGVyOm51bGwpLHRoaXMuX2NhY2hlVGltZXJzW2Uua2V5XSYmKGNsZWFyVGltZW91dCh0aGlzLl9jYWNoZVRpbWVyc1tlLmtleV0pLGRlbGV0ZSB0aGlzLl9jYWNoZVRpbWVyc1tlLmtleV0sdGhpcy5fc2V0VGlsZVJlbG9hZFRpbWVyKGUua2V5LHIpKSk7dmFyIG49Qm9vbGVhbihyKTtyZXR1cm4gbnx8KHI9bmV3IHQuVGlsZShlLHRoaXMuX3NvdXJjZS50aWxlU2l6ZSplLm92ZXJzY2FsZUZhY3RvcigpKSx0aGlzLl9sb2FkVGlsZShyLHRoaXMuX3RpbGVMb2FkZWQuYmluZCh0aGlzLHIsZS5rZXksci5zdGF0ZSkpKSxyPyhyLnVzZXMrKyx0aGlzLl90aWxlc1tlLmtleV09cixufHx0aGlzLl9zb3VyY2UuZmlyZShuZXcgdC5FdmVudCgiZGF0YWxvYWRpbmciLHt0aWxlOnIsY29vcmQ6ci50aWxlSUQsZGF0YVR5cGU6InNvdXJjZSJ9KSkscik6bnVsbH0sci5wcm90b3R5cGUuX3NldFRpbGVSZWxvYWRUaW1lcj1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXM7dCBpbiB0aGlzLl90aW1lcnMmJihjbGVhclRpbWVvdXQodGhpcy5fdGltZXJzW3RdKSxkZWxldGUgdGhpcy5fdGltZXJzW3RdKTt2YXIgbj1lLmdldEV4cGlyeVRpbWVvdXQoKTtuJiYodGhpcy5fdGltZXJzW3RdPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ci5fcmVsb2FkVGlsZSh0LCJleHBpcmVkIiksZGVsZXRlIHIuX3RpbWVyc1t0XX0pLG4pKX0sci5wcm90b3R5cGUuX3JlbW92ZVRpbGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdGlsZXNbdF07ZSYmKGUudXNlcy0tLGRlbGV0ZSB0aGlzLl90aWxlc1t0XSx0aGlzLl90aW1lcnNbdF0mJihjbGVhclRpbWVvdXQodGhpcy5fdGltZXJzW3RdKSxkZWxldGUgdGhpcy5fdGltZXJzW3RdKSxlLnVzZXM+MHx8KGUuaGFzRGF0YSgpJiYicmVsb2FkaW5nIiE9PWUuc3RhdGU/dGhpcy5fY2FjaGUuYWRkKGUudGlsZUlELGUsZS5nZXRFeHBpcnlUaW1lb3V0KCkpOihlLmFib3J0ZWQ9ITAsdGhpcy5fYWJvcnRUaWxlKGUpLHRoaXMuX3VubG9hZFRpbGUoZSkpKSl9LHIucHJvdG90eXBlLmNsZWFyVGlsZXM9ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcy5fc2hvdWxkUmVsb2FkT25SZXN1bWU9ITEsdGhpcy5fcGF1c2VkPSExLHRoaXMuX3RpbGVzKXRoaXMuX3JlbW92ZVRpbGUodCk7dGhpcy5fY2FjaGUucmVzZXQoKX0sci5wcm90b3R5cGUudGlsZXNJbj1mdW5jdGlvbihlLHIsbil7dmFyIGk9dGhpcyxhPVtdLG89dGhpcy50cmFuc2Zvcm07aWYoIW8pcmV0dXJuIGE7Zm9yKHZhciBzPW4/by5nZXRDYW1lcmFRdWVyeUdlb21ldHJ5KGUpOmUsbD1lLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIG8ucG9pbnRDb29yZGluYXRlKHQpfSkpLGM9cy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBvLnBvaW50Q29vcmRpbmF0ZSh0KX0pKSx1PXRoaXMuZ2V0SWRzKCksZj0xLzAsaD0xLzAscD0tMS8wLGQ9LTEvMCxtPTAsZz1jO208Zy5sZW5ndGg7bSs9MSl7dmFyIHY9Z1ttXTtmPU1hdGgubWluKGYsdi54KSxoPU1hdGgubWluKGgsdi55KSxwPU1hdGgubWF4KHAsdi54KSxkPU1hdGgubWF4KGQsdi55KX1mb3IodmFyIHk9ZnVuY3Rpb24oZSl7dmFyIG49aS5fdGlsZXNbdVtlXV07aWYoIW4uaG9sZGluZ0ZvckZhZGUoKSl7dmFyIHM9bi50aWxlSUQsbT1NYXRoLnBvdygyLG8uem9vbS1uLnRpbGVJRC5vdmVyc2NhbGVkWiksZz1yKm4ucXVlcnlQYWRkaW5nKnQuRVhURU5UL24udGlsZVNpemUvbSx2PVtzLmdldFRpbGVQb2ludChuZXcgdC5NZXJjYXRvckNvb3JkaW5hdGUoZixoKSkscy5nZXRUaWxlUG9pbnQobmV3IHQuTWVyY2F0b3JDb29yZGluYXRlKHAsZCkpXTtpZih2WzBdLngtZzx0LkVYVEVOVCYmdlswXS55LWc8dC5FWFRFTlQmJnZbMV0ueCtnPj0wJiZ2WzFdLnkrZz49MCl7dmFyIHk9bC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBzLmdldFRpbGVQb2ludCh0KX0pKSx4PWMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gcy5nZXRUaWxlUG9pbnQodCl9KSk7YS5wdXNoKHt0aWxlOm4sdGlsZUlEOnMscXVlcnlHZW9tZXRyeTp5LGNhbWVyYVF1ZXJ5R2VvbWV0cnk6eCxzY2FsZTptfSl9fX0seD0wO3g8dS5sZW5ndGg7eCsrKXkoeCk7cmV0dXJuIGF9LHIucHJvdG90eXBlLmdldFZpc2libGVDb29yZGluYXRlcz1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcyxyPXRoaXMuZ2V0UmVuZGVyYWJsZUlkcyh0KS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlLl90aWxlc1t0XS50aWxlSUR9KSksbj0wLGk9cjtuPGkubGVuZ3RoO24rPTEpe3ZhciBhPWlbbl07YS5wb3NNYXRyaXg9dGhpcy50cmFuc2Zvcm0uY2FsY3VsYXRlUG9zTWF0cml4KGEudG9VbndyYXBwZWQoKSl9cmV0dXJuIHJ9LHIucHJvdG90eXBlLmhhc1RyYW5zaXRpb249ZnVuY3Rpb24oKXtpZih0aGlzLl9zb3VyY2UuaGFzVHJhbnNpdGlvbigpKXJldHVybiEwO2lmKEl0KHRoaXMuX3NvdXJjZS50eXBlKSlmb3IodmFyIGUgaW4gdGhpcy5fdGlsZXMpe3ZhciByPXRoaXMuX3RpbGVzW2VdO2lmKHZvaWQgMCE9PXIuZmFkZUVuZFRpbWUmJnIuZmFkZUVuZFRpbWU+PXQuYnJvd3Nlci5ub3coKSlyZXR1cm4hMH1yZXR1cm4hMX0sci5wcm90b3R5cGUuc2V0RmVhdHVyZVN0YXRlPWZ1bmN0aW9uKHQsZSxyKXt0PXR8fCJfZ2VvanNvblRpbGVMYXllciIsdGhpcy5fc3RhdGUudXBkYXRlU3RhdGUodCxlLHIpfSxyLnByb3RvdHlwZS5yZW1vdmVGZWF0dXJlU3RhdGU9ZnVuY3Rpb24odCxlLHIpe3Q9dHx8Il9nZW9qc29uVGlsZUxheWVyIix0aGlzLl9zdGF0ZS5yZW1vdmVGZWF0dXJlU3RhdGUodCxlLHIpfSxyLnByb3RvdHlwZS5nZXRGZWF0dXJlU3RhdGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD10fHwiX2dlb2pzb25UaWxlTGF5ZXIiLHRoaXMuX3N0YXRlLmdldFN0YXRlKHQsZSl9LHIucHJvdG90eXBlLnNldERlcGVuZGVuY2llcz1mdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5fdGlsZXNbdF07biYmbi5zZXREZXBlbmRlbmNpZXMoZSxyKX0sci5wcm90b3R5cGUucmVsb2FkVGlsZXNGb3JEZXBlbmRlbmNpZXM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHIgaW4gdGhpcy5fdGlsZXMpe3RoaXMuX3RpbGVzW3JdLmhhc0RlcGVuZGVuY3kodCxlKSYmdGhpcy5fcmVsb2FkVGlsZShyLCJyZWxvYWRpbmciKX10aGlzLl9jYWNoZS5maWx0ZXIoKGZ1bmN0aW9uKHIpe3JldHVybiFyLmhhc0RlcGVuZGVuY3kodCxlKX0pKX0scn0odC5FdmVudGVkKTtmdW5jdGlvbiBQdCh0LGUpe3ZhciByPU1hdGguYWJzKDIqdC53cmFwKS0rKHQud3JhcDwwKSxuPU1hdGguYWJzKDIqZS53cmFwKS0rKGUud3JhcDwwKTtyZXR1cm4gdC5vdmVyc2NhbGVkWi1lLm92ZXJzY2FsZWRafHxuLXJ8fGUuY2Fub25pY2FsLnktdC5jYW5vbmljYWwueXx8ZS5jYW5vbmljYWwueC10LmNhbm9uaWNhbC54fWZ1bmN0aW9uIEl0KHQpe3JldHVybiJyYXN0ZXIiPT09dHx8ImltYWdlIj09PXR8fCJ2aWRlbyI9PT10fWZ1bmN0aW9uIE90KCl7cmV0dXJuIG5ldyB0LndpbmRvdy5Xb3JrZXIoWmkud29ya2VyVXJsKX1DdC5tYXhPdmVyem9vbWluZz0xMCxDdC5tYXhVbmRlcnpvb21pbmc9Mzt2YXIgenQ9Im1hcGJveGdsX3ByZWxvYWRlZF93b3JrZXJfcG9vbCIsRHQ9ZnVuY3Rpb24oKXt0aGlzLmFjdGl2ZT17fX07RHQucHJvdG90eXBlLmFjcXVpcmU9ZnVuY3Rpb24odCl7aWYoIXRoaXMud29ya2Vycylmb3IodGhpcy53b3JrZXJzPVtdO3RoaXMud29ya2Vycy5sZW5ndGg8RHQud29ya2VyQ291bnQ7KXRoaXMud29ya2Vycy5wdXNoKG5ldyBPdCk7cmV0dXJuIHRoaXMuYWN0aXZlW3RdPSEwLHRoaXMud29ya2Vycy5zbGljZSgpfSxEdC5wcm90b3R5cGUucmVsZWFzZT1mdW5jdGlvbih0KXtkZWxldGUgdGhpcy5hY3RpdmVbdF0sMD09PXRoaXMubnVtQWN0aXZlKCkmJih0aGlzLndvcmtlcnMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC50ZXJtaW5hdGUoKX0pKSx0aGlzLndvcmtlcnM9bnVsbCl9LER0LnByb3RvdHlwZS5pc1ByZWxvYWRlZD1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5hY3RpdmVbenRdfSxEdC5wcm90b3R5cGUubnVtQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuYWN0aXZlKS5sZW5ndGh9O3ZhciBSdCxGdD1NYXRoLmZsb29yKHQuYnJvd3Nlci5oYXJkd2FyZUNvbmN1cnJlbmN5LzIpO2Z1bmN0aW9uIEJ0KCl7cmV0dXJuIFJ0fHwoUnQ9bmV3IER0KSxSdH1mdW5jdGlvbiBOdChlLHIpe3ZhciBuPXt9O2Zvcih2YXIgaSBpbiBlKSJyZWYiIT09aSYmKG5baV09ZVtpXSk7cmV0dXJuIHQucmVmUHJvcGVydGllcy5mb3JFYWNoKChmdW5jdGlvbih0KXt0IGluIHImJihuW3RdPXJbdF0pfSkpLG59ZnVuY3Rpb24ganQodCl7dD10LnNsaWNlKCk7Zm9yKHZhciBlPU9iamVjdC5jcmVhdGUobnVsbCkscj0wO3I8dC5sZW5ndGg7cisrKWVbdFtyXS5pZF09dFtyXTtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKykicmVmImluIHRbbl0mJih0W25dPU50KHRbbl0sZVt0W25dLnJlZl0pKTtyZXR1cm4gdH1EdC53b3JrZXJDb3VudD1NYXRoLm1heChNYXRoLm1pbihGdCw2KSwxKTt2YXIgVXQ9e3NldFN0eWxlOiJzZXRTdHlsZSIsYWRkTGF5ZXI6ImFkZExheWVyIixyZW1vdmVMYXllcjoicmVtb3ZlTGF5ZXIiLHNldFBhaW50UHJvcGVydHk6InNldFBhaW50UHJvcGVydHkiLHNldExheW91dFByb3BlcnR5OiJzZXRMYXlvdXRQcm9wZXJ0eSIsc2V0RmlsdGVyOiJzZXRGaWx0ZXIiLGFkZFNvdXJjZToiYWRkU291cmNlIixyZW1vdmVTb3VyY2U6InJlbW92ZVNvdXJjZSIsc2V0R2VvSlNPTlNvdXJjZURhdGE6InNldEdlb0pTT05Tb3VyY2VEYXRhIixzZXRMYXllclpvb21SYW5nZToic2V0TGF5ZXJab29tUmFuZ2UiLHNldExheWVyUHJvcGVydHk6InNldExheWVyUHJvcGVydHkiLHNldENlbnRlcjoic2V0Q2VudGVyIixzZXRab29tOiJzZXRab29tIixzZXRCZWFyaW5nOiJzZXRCZWFyaW5nIixzZXRQaXRjaDoic2V0UGl0Y2giLHNldFNwcml0ZToic2V0U3ByaXRlIixzZXRHbHlwaHM6InNldEdseXBocyIsc2V0VHJhbnNpdGlvbjoic2V0VHJhbnNpdGlvbiIsc2V0TGlnaHQ6InNldExpZ2h0In07ZnVuY3Rpb24gVnQodCxlLHIpe3IucHVzaCh7Y29tbWFuZDpVdC5hZGRTb3VyY2UsYXJnczpbdCxlW3RdXX0pfWZ1bmN0aW9uIEh0KHQsZSxyKXtlLnB1c2goe2NvbW1hbmQ6VXQucmVtb3ZlU291cmNlLGFyZ3M6W3RdfSksclt0XT0hMH1mdW5jdGlvbiBxdCh0LGUscixuKXtIdCh0LHIsbiksVnQodCxlLHIpfWZ1bmN0aW9uIEd0KGUscixuKXt2YXIgaTtmb3IoaSBpbiBlW25dKWlmKGVbbl0uaGFzT3duUHJvcGVydHkoaSkmJiJkYXRhIiE9PWkmJiF0LmRlZXBFcXVhbChlW25dW2ldLHJbbl1baV0pKXJldHVybiExO2ZvcihpIGluIHJbbl0paWYocltuXS5oYXNPd25Qcm9wZXJ0eShpKSYmImRhdGEiIT09aSYmIXQuZGVlcEVxdWFsKGVbbl1baV0scltuXVtpXSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gWXQoZSxyLG4saSxhLG8pe3ZhciBzO2ZvcihzIGluIHI9cnx8e30sZT1lfHx7fSllLmhhc093blByb3BlcnR5KHMpJiYodC5kZWVwRXF1YWwoZVtzXSxyW3NdKXx8bi5wdXNoKHtjb21tYW5kOm8sYXJnczpbaSxzLHJbc10sYV19KSk7Zm9yKHMgaW4gcilyLmhhc093blByb3BlcnR5KHMpJiYhZS5oYXNPd25Qcm9wZXJ0eShzKSYmKHQuZGVlcEVxdWFsKGVbc10scltzXSl8fG4ucHVzaCh7Y29tbWFuZDpvLGFyZ3M6W2kscyxyW3NdLGFdfSkpfWZ1bmN0aW9uIFd0KHQpe3JldHVybiB0LmlkfWZ1bmN0aW9uIFh0KHQsZSl7cmV0dXJuIHRbZS5pZF09ZSx0fWZ1bmN0aW9uIFp0KGUscil7aWYoIWUpcmV0dXJuW3tjb21tYW5kOlV0LnNldFN0eWxlLGFyZ3M6W3JdfV07dmFyIG49W107dHJ5e2lmKCF0LmRlZXBFcXVhbChlLnZlcnNpb24sci52ZXJzaW9uKSlyZXR1cm5be2NvbW1hbmQ6VXQuc2V0U3R5bGUsYXJnczpbcl19XTt0LmRlZXBFcXVhbChlLmNlbnRlcixyLmNlbnRlcil8fG4ucHVzaCh7Y29tbWFuZDpVdC5zZXRDZW50ZXIsYXJnczpbci5jZW50ZXJdfSksdC5kZWVwRXF1YWwoZS56b29tLHIuem9vbSl8fG4ucHVzaCh7Y29tbWFuZDpVdC5zZXRab29tLGFyZ3M6W3Iuem9vbV19KSx0LmRlZXBFcXVhbChlLmJlYXJpbmcsci5iZWFyaW5nKXx8bi5wdXNoKHtjb21tYW5kOlV0LnNldEJlYXJpbmcsYXJnczpbci5iZWFyaW5nXX0pLHQuZGVlcEVxdWFsKGUucGl0Y2gsci5waXRjaCl8fG4ucHVzaCh7Y29tbWFuZDpVdC5zZXRQaXRjaCxhcmdzOltyLnBpdGNoXX0pLHQuZGVlcEVxdWFsKGUuc3ByaXRlLHIuc3ByaXRlKXx8bi5wdXNoKHtjb21tYW5kOlV0LnNldFNwcml0ZSxhcmdzOltyLnNwcml0ZV19KSx0LmRlZXBFcXVhbChlLmdseXBocyxyLmdseXBocyl8fG4ucHVzaCh7Y29tbWFuZDpVdC5zZXRHbHlwaHMsYXJnczpbci5nbHlwaHNdfSksdC5kZWVwRXF1YWwoZS50cmFuc2l0aW9uLHIudHJhbnNpdGlvbil8fG4ucHVzaCh7Y29tbWFuZDpVdC5zZXRUcmFuc2l0aW9uLGFyZ3M6W3IudHJhbnNpdGlvbl19KSx0LmRlZXBFcXVhbChlLmxpZ2h0LHIubGlnaHQpfHxuLnB1c2goe2NvbW1hbmQ6VXQuc2V0TGlnaHQsYXJnczpbci5saWdodF19KTt2YXIgaT17fSxhPVtdOyFmdW5jdGlvbihlLHIsbixpKXt2YXIgYTtmb3IoYSBpbiByPXJ8fHt9LGU9ZXx8e30pZS5oYXNPd25Qcm9wZXJ0eShhKSYmKHIuaGFzT3duUHJvcGVydHkoYSl8fEh0KGEsbixpKSk7Zm9yKGEgaW4gcilyLmhhc093blByb3BlcnR5KGEpJiYoZS5oYXNPd25Qcm9wZXJ0eShhKT90LmRlZXBFcXVhbChlW2FdLHJbYV0pfHwoImdlb2pzb24iPT09ZVthXS50eXBlJiYiZ2VvanNvbiI9PT1yW2FdLnR5cGUmJkd0KGUscixhKT9uLnB1c2goe2NvbW1hbmQ6VXQuc2V0R2VvSlNPTlNvdXJjZURhdGEsYXJnczpbYSxyW2FdLmRhdGFdfSk6cXQoYSxyLG4saSkpOlZ0KGEscixuKSl9KGUuc291cmNlcyxyLnNvdXJjZXMsYSxpKTt2YXIgbz1bXTtlLmxheWVycyYmZS5sYXllcnMuZm9yRWFjaCgoZnVuY3Rpb24odCl7aVt0LnNvdXJjZV0/bi5wdXNoKHtjb21tYW5kOlV0LnJlbW92ZUxheWVyLGFyZ3M6W3QuaWRdfSk6by5wdXNoKHQpfSkpLG49bi5jb25jYXQoYSksZnVuY3Rpb24oZSxyLG4pe3I9cnx8W107dmFyIGksYSxvLHMsbCxjLHUsZj0oZT1lfHxbXSkubWFwKFd0KSxoPXIubWFwKFd0KSxwPWUucmVkdWNlKFh0LHt9KSxkPXIucmVkdWNlKFh0LHt9KSxtPWYuc2xpY2UoKSxnPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGk9MCxhPTA7aTxmLmxlbmd0aDtpKyspbz1mW2ldLGQuaGFzT3duUHJvcGVydHkobyk/YSsrOihuLnB1c2goe2NvbW1hbmQ6VXQucmVtb3ZlTGF5ZXIsYXJnczpbb119KSxtLnNwbGljZShtLmluZGV4T2YobyxhKSwxKSk7Zm9yKGk9MCxhPTA7aTxoLmxlbmd0aDtpKyspbz1oW2gubGVuZ3RoLTEtaV0sbVttLmxlbmd0aC0xLWldIT09byYmKHAuaGFzT3duUHJvcGVydHkobyk/KG4ucHVzaCh7Y29tbWFuZDpVdC5yZW1vdmVMYXllcixhcmdzOltvXX0pLG0uc3BsaWNlKG0ubGFzdEluZGV4T2YobyxtLmxlbmd0aC1hKSwxKSk6YSsrLGM9bVttLmxlbmd0aC1pXSxuLnB1c2goe2NvbW1hbmQ6VXQuYWRkTGF5ZXIsYXJnczpbZFtvXSxjXX0pLG0uc3BsaWNlKG0ubGVuZ3RoLWksMCxvKSxnW29dPSEwKTtmb3IoaT0wO2k8aC5sZW5ndGg7aSsrKWlmKHM9cFtvPWhbaV1dLGw9ZFtvXSwhZ1tvXSYmIXQuZGVlcEVxdWFsKHMsbCkpaWYodC5kZWVwRXF1YWwocy5zb3VyY2UsbC5zb3VyY2UpJiZ0LmRlZXBFcXVhbChzWyJzb3VyY2UtbGF5ZXIiXSxsWyJzb3VyY2UtbGF5ZXIiXSkmJnQuZGVlcEVxdWFsKHMudHlwZSxsLnR5cGUpKXtmb3IodSBpbiBZdChzLmxheW91dCxsLmxheW91dCxuLG8sbnVsbCxVdC5zZXRMYXlvdXRQcm9wZXJ0eSksWXQocy5wYWludCxsLnBhaW50LG4sbyxudWxsLFV0LnNldFBhaW50UHJvcGVydHkpLHQuZGVlcEVxdWFsKHMuZmlsdGVyLGwuZmlsdGVyKXx8bi5wdXNoKHtjb21tYW5kOlV0LnNldEZpbHRlcixhcmdzOltvLGwuZmlsdGVyXX0pLHQuZGVlcEVxdWFsKHMubWluem9vbSxsLm1pbnpvb20pJiZ0LmRlZXBFcXVhbChzLm1heHpvb20sbC5tYXh6b29tKXx8bi5wdXNoKHtjb21tYW5kOlV0LnNldExheWVyWm9vbVJhbmdlLGFyZ3M6W28sbC5taW56b29tLGwubWF4em9vbV19KSxzKXMuaGFzT3duUHJvcGVydHkodSkmJiJsYXlvdXQiIT09dSYmInBhaW50IiE9PXUmJiJmaWx0ZXIiIT09dSYmIm1ldGFkYXRhIiE9PXUmJiJtaW56b29tIiE9PXUmJiJtYXh6b29tIiE9PXUmJigwPT09dS5pbmRleE9mKCJwYWludC4iKT9ZdChzW3VdLGxbdV0sbixvLHUuc2xpY2UoNiksVXQuc2V0UGFpbnRQcm9wZXJ0eSk6dC5kZWVwRXF1YWwoc1t1XSxsW3VdKXx8bi5wdXNoKHtjb21tYW5kOlV0LnNldExheWVyUHJvcGVydHksYXJnczpbbyx1LGxbdV1dfSkpO2Zvcih1IGluIGwpbC5oYXNPd25Qcm9wZXJ0eSh1KSYmIXMuaGFzT3duUHJvcGVydHkodSkmJiJsYXlvdXQiIT09dSYmInBhaW50IiE9PXUmJiJmaWx0ZXIiIT09dSYmIm1ldGFkYXRhIiE9PXUmJiJtaW56b29tIiE9PXUmJiJtYXh6b29tIiE9PXUmJigwPT09dS5pbmRleE9mKCJwYWludC4iKT9ZdChzW3VdLGxbdV0sbixvLHUuc2xpY2UoNiksVXQuc2V0UGFpbnRQcm9wZXJ0eSk6dC5kZWVwRXF1YWwoc1t1XSxsW3VdKXx8bi5wdXNoKHtjb21tYW5kOlV0LnNldExheWVyUHJvcGVydHksYXJnczpbbyx1LGxbdV1dfSkpfWVsc2Ugbi5wdXNoKHtjb21tYW5kOlV0LnJlbW92ZUxheWVyLGFyZ3M6W29dfSksYz1tW20ubGFzdEluZGV4T2YobykrMV0sbi5wdXNoKHtjb21tYW5kOlV0LmFkZExheWVyLGFyZ3M6W2wsY119KX0obyxyLmxheWVycyxuKX1jYXRjaCh0KXtjb25zb2xlLndhcm4oIlVuYWJsZSB0byBjb21wdXRlIHN0eWxlIGRpZmY6Iix0KSxuPVt7Y29tbWFuZDpVdC5zZXRTdHlsZSxhcmdzOltyXX1dfXJldHVybiBufXZhciBKdD1mdW5jdGlvbih0LGUpe3RoaXMucmVzZXQodCxlKX07SnQucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKHQsZSl7dGhpcy5wb2ludHM9dHx8W10sdGhpcy5fZGlzdGFuY2VzPVswXTtmb3IodmFyIHI9MTtyPHRoaXMucG9pbnRzLmxlbmd0aDtyKyspdGhpcy5fZGlzdGFuY2VzW3JdPXRoaXMuX2Rpc3RhbmNlc1tyLTFdK3RoaXMucG9pbnRzW3JdLmRpc3QodGhpcy5wb2ludHNbci0xXSk7dGhpcy5sZW5ndGg9dGhpcy5fZGlzdGFuY2VzW3RoaXMuX2Rpc3RhbmNlcy5sZW5ndGgtMV0sdGhpcy5wYWRkaW5nPU1hdGgubWluKGV8fDAsLjUqdGhpcy5sZW5ndGgpLHRoaXMucGFkZGVkTGVuZ3RoPXRoaXMubGVuZ3RoLTIqdGhpcy5wYWRkaW5nfSxKdC5wcm90b3R5cGUubGVycD1mdW5jdGlvbihlKXtpZigxPT09dGhpcy5wb2ludHMubGVuZ3RoKXJldHVybiB0aGlzLnBvaW50c1swXTtlPXQuY2xhbXAoZSwwLDEpO2Zvcih2YXIgcj0xLG49dGhpcy5fZGlzdGFuY2VzW3JdLGk9ZSp0aGlzLnBhZGRlZExlbmd0aCt0aGlzLnBhZGRpbmc7bjxpJiZyPHRoaXMuX2Rpc3RhbmNlcy5sZW5ndGg7KW49dGhpcy5fZGlzdGFuY2VzWysrcl07dmFyIGE9ci0xLG89dGhpcy5fZGlzdGFuY2VzW2FdLHM9bi1vLGw9cz4wPyhpLW8pL3M6MDtyZXR1cm4gdGhpcy5wb2ludHNbYV0ubXVsdCgxLWwpLmFkZCh0aGlzLnBvaW50c1tyXS5tdWx0KGwpKX07dmFyIEt0PWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLmJveENlbGxzPVtdLGk9dGhpcy5jaXJjbGVDZWxscz1bXTt0aGlzLnhDZWxsQ291bnQ9TWF0aC5jZWlsKHQvciksdGhpcy55Q2VsbENvdW50PU1hdGguY2VpbChlL3IpO2Zvcih2YXIgYT0wO2E8dGhpcy54Q2VsbENvdW50KnRoaXMueUNlbGxDb3VudDthKyspbi5wdXNoKFtdKSxpLnB1c2goW10pO3RoaXMuY2lyY2xlS2V5cz1bXSx0aGlzLmJveEtleXM9W10sdGhpcy5iYm94ZXM9W10sdGhpcy5jaXJjbGVzPVtdLHRoaXMud2lkdGg9dCx0aGlzLmhlaWdodD1lLHRoaXMueFNjYWxlPXRoaXMueENlbGxDb3VudC90LHRoaXMueVNjYWxlPXRoaXMueUNlbGxDb3VudC9lLHRoaXMuYm94VWlkPTAsdGhpcy5jaXJjbGVVaWQ9MH07ZnVuY3Rpb24gUXQoZSxyLG4saSxhKXt2YXIgbz10LmNyZWF0ZSgpO3JldHVybiByPyh0LnNjYWxlKG8sbyxbMS9hLDEvYSwxXSksbnx8dC5yb3RhdGVaKG8sbyxpLmFuZ2xlKSk6dC5tdWx0aXBseShvLGkubGFiZWxQbGFuZU1hdHJpeCxlKSxvfWZ1bmN0aW9uICR0KGUscixuLGksYSl7aWYocil7dmFyIG89dC5jbG9uZShlKTtyZXR1cm4gdC5zY2FsZShvLG8sW2EsYSwxXSksbnx8dC5yb3RhdGVaKG8sbywtaS5hbmdsZSksb31yZXR1cm4gaS5nbENvb3JkTWF0cml4fWZ1bmN0aW9uIHRlKGUscil7dmFyIG49W2UueCxlLnksMCwxXTtmZShuLG4scik7dmFyIGk9blszXTtyZXR1cm57cG9pbnQ6bmV3IHQuUG9pbnQoblswXS9pLG5bMV0vaSksc2lnbmVkRGlzdGFuY2VGcm9tQ2FtZXJhOml9fWZ1bmN0aW9uIGVlKHQsZSl7cmV0dXJuLjUrdC9lKi41fWZ1bmN0aW9uIHJlKHQsZSl7dmFyIHI9dFswXS90WzNdLG49dFsxXS90WzNdO3JldHVybiByPj0tZVswXSYmcjw9ZVswXSYmbj49LWVbMV0mJm48PWVbMV19ZnVuY3Rpb24gbmUoZSxyLG4saSxhLG8scyxsKXt2YXIgYz1pP2UudGV4dFNpemVEYXRhOmUuaWNvblNpemVEYXRhLHU9dC5ldmFsdWF0ZVNpemVGb3Jab29tKGMsbi50cmFuc2Zvcm0uem9vbSksZj1bMjU2L24ud2lkdGgqMisxLDI1Ni9uLmhlaWdodCoyKzFdLGg9aT9lLnRleHQuZHluYW1pY0xheW91dFZlcnRleEFycmF5OmUuaWNvbi5keW5hbWljTGF5b3V0VmVydGV4QXJyYXk7aC5jbGVhcigpO2Zvcih2YXIgcD1lLmxpbmVWZXJ0ZXhBcnJheSxkPWk/ZS50ZXh0LnBsYWNlZFN5bWJvbEFycmF5OmUuaWNvbi5wbGFjZWRTeW1ib2xBcnJheSxtPW4udHJhbnNmb3JtLndpZHRoL24udHJhbnNmb3JtLmhlaWdodCxnPSExLHY9MDt2PGQubGVuZ3RoO3YrKyl7dmFyIHk9ZC5nZXQodik7aWYoeS5oaWRkZW58fHkud3JpdGluZ01vZGU9PT10LldyaXRpbmdNb2RlLnZlcnRpY2FsJiYhZyl1ZSh5Lm51bUdseXBocyxoKTtlbHNle2c9ITE7dmFyIHg9W3kuYW5jaG9yWCx5LmFuY2hvclksMCwxXTtpZih0LnRyYW5zZm9ybU1hdDQoeCx4LHIpLHJlKHgsZikpe3ZhciBiPXhbM10sXz1lZShuLnRyYW5zZm9ybS5jYW1lcmFUb0NlbnRlckRpc3RhbmNlLGIpLHc9dC5ldmFsdWF0ZVNpemVGb3JGZWF0dXJlKGMsdSx5KSxUPXM/dy9fOncqXyxrPW5ldyB0LlBvaW50KHkuYW5jaG9yWCx5LmFuY2hvclkpLEE9dGUoayxhKS5wb2ludCxNPXt9LFM9b2UoeSxULCExLGwscixhLG8sZS5nbHlwaE9mZnNldEFycmF5LHAsaCxBLGssTSxtKTtnPVMudXNlVmVydGljYWwsKFMubm90RW5vdWdoUm9vbXx8Z3x8Uy5uZWVkc0ZsaXBwaW5nJiZvZSh5LFQsITAsbCxyLGEsbyxlLmdseXBoT2Zmc2V0QXJyYXkscCxoLEEsayxNLG0pLm5vdEVub3VnaFJvb20pJiZ1ZSh5Lm51bUdseXBocyxoKX1lbHNlIHVlKHkubnVtR2x5cGhzLGgpfX1pP2UudGV4dC5keW5hbWljTGF5b3V0VmVydGV4QnVmZmVyLnVwZGF0ZURhdGEoaCk6ZS5pY29uLmR5bmFtaWNMYXlvdXRWZXJ0ZXhCdWZmZXIudXBkYXRlRGF0YShoKX1mdW5jdGlvbiBpZSh0LGUscixuLGksYSxvLHMsbCxjLHUpe3ZhciBmPXMuZ2x5cGhTdGFydEluZGV4K3MubnVtR2x5cGhzLGg9cy5saW5lU3RhcnRJbmRleCxwPXMubGluZVN0YXJ0SW5kZXgrcy5saW5lTGVuZ3RoLGQ9ZS5nZXRvZmZzZXRYKHMuZ2x5cGhTdGFydEluZGV4KSxtPWUuZ2V0b2Zmc2V0WChmLTEpLGc9bGUodCpkLHIsbixpLGEsbyxzLnNlZ21lbnQsaCxwLGwsYyx1KTtpZighZylyZXR1cm4gbnVsbDt2YXIgdj1sZSh0Km0scixuLGksYSxvLHMuc2VnbWVudCxoLHAsbCxjLHUpO3JldHVybiB2P3tmaXJzdDpnLGxhc3Q6dn06bnVsbH1mdW5jdGlvbiBhZShlLHIsbixpKXtpZihlPT09dC5Xcml0aW5nTW9kZS5ob3Jpem9udGFsJiZNYXRoLmFicyhuLnktci55KT5NYXRoLmFicyhuLngtci54KSppKXJldHVybnt1c2VWZXJ0aWNhbDohMH07cmV0dXJuKGU9PT10LldyaXRpbmdNb2RlLnZlcnRpY2FsP3IueTxuLnk6ci54Pm4ueCk/e25lZWRzRmxpcHBpbmc6ITB9Om51bGx9ZnVuY3Rpb24gb2UoZSxyLG4saSxhLG8scyxsLGMsdSxmLGgscCxkKXt2YXIgbSxnPXIvMjQsdj1lLmxpbmVPZmZzZXRYKmcseT1lLmxpbmVPZmZzZXRZKmc7aWYoZS5udW1HbHlwaHM+MSl7dmFyIHg9ZS5nbHlwaFN0YXJ0SW5kZXgrZS5udW1HbHlwaHMsYj1lLmxpbmVTdGFydEluZGV4LF89ZS5saW5lU3RhcnRJbmRleCtlLmxpbmVMZW5ndGgsdz1pZShnLGwsdix5LG4sZixoLGUsYyxvLHApO2lmKCF3KXJldHVybntub3RFbm91Z2hSb29tOiEwfTt2YXIgVD10ZSh3LmZpcnN0LnBvaW50LHMpLnBvaW50LGs9dGUody5sYXN0LnBvaW50LHMpLnBvaW50O2lmKGkmJiFuKXt2YXIgQT1hZShlLndyaXRpbmdNb2RlLFQsayxkKTtpZihBKXJldHVybiBBfW09W3cuZmlyc3RdO2Zvcih2YXIgTT1lLmdseXBoU3RhcnRJbmRleCsxO008eC0xO00rKyltLnB1c2gobGUoZypsLmdldG9mZnNldFgoTSksdix5LG4sZixoLGUuc2VnbWVudCxiLF8sYyxvLHApKTttLnB1c2gody5sYXN0KX1lbHNle2lmKGkmJiFuKXt2YXIgUz10ZShoLGEpLnBvaW50LEU9ZS5saW5lU3RhcnRJbmRleCtlLnNlZ21lbnQrMSxMPW5ldyB0LlBvaW50KGMuZ2V0eChFKSxjLmdldHkoRSkpLEM9dGUoTCxhKSxQPUMuc2lnbmVkRGlzdGFuY2VGcm9tQ2FtZXJhPjA/Qy5wb2ludDpzZShoLEwsUywxLGEpLEk9YWUoZS53cml0aW5nTW9kZSxTLFAsZCk7aWYoSSlyZXR1cm4gSX12YXIgTz1sZShnKmwuZ2V0b2Zmc2V0WChlLmdseXBoU3RhcnRJbmRleCksdix5LG4sZixoLGUuc2VnbWVudCxlLmxpbmVTdGFydEluZGV4LGUubGluZVN0YXJ0SW5kZXgrZS5saW5lTGVuZ3RoLGMsbyxwKTtpZighTylyZXR1cm57bm90RW5vdWdoUm9vbTohMH07bT1bT119Zm9yKHZhciB6PTAsRD1tO3o8RC5sZW5ndGg7eis9MSl7dmFyIFI9RFt6XTt0LmFkZER5bmFtaWNBdHRyaWJ1dGVzKHUsUi5wb2ludCxSLmFuZ2xlKX1yZXR1cm57fX1mdW5jdGlvbiBzZSh0LGUscixuLGkpe3ZhciBhPXRlKHQuYWRkKHQuc3ViKGUpLl91bml0KCkpLGkpLnBvaW50LG89ci5zdWIoYSk7cmV0dXJuIHIuYWRkKG8uX211bHQobi9vLm1hZygpKSl9ZnVuY3Rpb24gbGUoZSxyLG4saSxhLG8scyxsLGMsdSxmLGgpe3ZhciBwPWk/ZS1yOmUrcixkPXA+MD8xOi0xLG09MDtpJiYoZCo9LTEsbT1NYXRoLlBJKSxkPDAmJihtKz1NYXRoLlBJKTtmb3IodmFyIGc9ZD4wP2wrczpsK3MrMSx2PWEseT1hLHg9MCxiPTAsXz1NYXRoLmFicyhwKSx3PVtdO3grYjw9Xzspe2lmKChnKz1kKTxsfHxnPj1jKXJldHVybiBudWxsO2lmKHk9dix3LnB1c2godiksdm9pZCAwPT09KHY9aFtnXSkpe3ZhciBUPW5ldyB0LlBvaW50KHUuZ2V0eChnKSx1LmdldHkoZykpLGs9dGUoVCxmKTtpZihrLnNpZ25lZERpc3RhbmNlRnJvbUNhbWVyYT4wKXY9aFtnXT1rLnBvaW50O2Vsc2V7dmFyIEE9Zy1kO3Y9c2UoMD09PXg/bzpuZXcgdC5Qb2ludCh1LmdldHgoQSksdS5nZXR5KEEpKSxULHksXy14KzEsZil9fXgrPWIsYj15LmRpc3Qodil9dmFyIE09KF8teCkvYixTPXYuc3ViKHkpLEU9Uy5tdWx0KE0pLl9hZGQoeSk7RS5fYWRkKFMuX3VuaXQoKS5fcGVycCgpLl9tdWx0KG4qZCkpO3ZhciBMPW0rTWF0aC5hdGFuMih2LnkteS55LHYueC15LngpO3JldHVybiB3LnB1c2goRSkse3BvaW50OkUsYW5nbGU6TCxwYXRoOnd9fUt0LnByb3RvdHlwZS5rZXlzTGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYm94S2V5cy5sZW5ndGgrdGhpcy5jaXJjbGVLZXlzLmxlbmd0aH0sS3QucHJvdG90eXBlLmluc2VydD1mdW5jdGlvbih0LGUscixuLGkpe3RoaXMuX2ZvckVhY2hDZWxsKGUscixuLGksdGhpcy5faW5zZXJ0Qm94Q2VsbCx0aGlzLmJveFVpZCsrKSx0aGlzLmJveEtleXMucHVzaCh0KSx0aGlzLmJib3hlcy5wdXNoKGUpLHRoaXMuYmJveGVzLnB1c2gociksdGhpcy5iYm94ZXMucHVzaChuKSx0aGlzLmJib3hlcy5wdXNoKGkpfSxLdC5wcm90b3R5cGUuaW5zZXJ0Q2lyY2xlPWZ1bmN0aW9uKHQsZSxyLG4pe3RoaXMuX2ZvckVhY2hDZWxsKGUtbixyLW4sZStuLHIrbix0aGlzLl9pbnNlcnRDaXJjbGVDZWxsLHRoaXMuY2lyY2xlVWlkKyspLHRoaXMuY2lyY2xlS2V5cy5wdXNoKHQpLHRoaXMuY2lyY2xlcy5wdXNoKGUpLHRoaXMuY2lyY2xlcy5wdXNoKHIpLHRoaXMuY2lyY2xlcy5wdXNoKG4pfSxLdC5wcm90b3R5cGUuX2luc2VydEJveENlbGw9ZnVuY3Rpb24odCxlLHIsbixpLGEpe3RoaXMuYm94Q2VsbHNbaV0ucHVzaChhKX0sS3QucHJvdG90eXBlLl9pbnNlcnRDaXJjbGVDZWxsPWZ1bmN0aW9uKHQsZSxyLG4saSxhKXt0aGlzLmNpcmNsZUNlbGxzW2ldLnB1c2goYSl9LEt0LnByb3RvdHlwZS5fcXVlcnk9ZnVuY3Rpb24odCxlLHIsbixpLGEpe2lmKHI8MHx8dD50aGlzLndpZHRofHxuPDB8fGU+dGhpcy5oZWlnaHQpcmV0dXJuIWkmJltdO3ZhciBvPVtdO2lmKHQ8PTAmJmU8PTAmJnRoaXMud2lkdGg8PXImJnRoaXMuaGVpZ2h0PD1uKXtpZihpKXJldHVybiEwO2Zvcih2YXIgcz0wO3M8dGhpcy5ib3hLZXlzLmxlbmd0aDtzKyspby5wdXNoKHtrZXk6dGhpcy5ib3hLZXlzW3NdLHgxOnRoaXMuYmJveGVzWzQqc10seTE6dGhpcy5iYm94ZXNbNCpzKzFdLHgyOnRoaXMuYmJveGVzWzQqcysyXSx5Mjp0aGlzLmJib3hlc1s0KnMrM119KTtmb3IodmFyIGw9MDtsPHRoaXMuY2lyY2xlS2V5cy5sZW5ndGg7bCsrKXt2YXIgYz10aGlzLmNpcmNsZXNbMypsXSx1PXRoaXMuY2lyY2xlc1szKmwrMV0sZj10aGlzLmNpcmNsZXNbMypsKzJdO28ucHVzaCh7a2V5OnRoaXMuY2lyY2xlS2V5c1tsXSx4MTpjLWYseTE6dS1mLHgyOmMrZix5Mjp1K2Z9KX1yZXR1cm4gYT9vLmZpbHRlcihhKTpvfXZhciBoPXtoaXRUZXN0Omksc2VlblVpZHM6e2JveDp7fSxjaXJjbGU6e319fTtyZXR1cm4gdGhpcy5fZm9yRWFjaENlbGwodCxlLHIsbix0aGlzLl9xdWVyeUNlbGwsbyxoLGEpLGk/by5sZW5ndGg+MDpvfSxLdC5wcm90b3R5cGUuX3F1ZXJ5Q2lyY2xlPWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGE9dC1yLG89dCtyLHM9ZS1yLGw9ZStyO2lmKG88MHx8YT50aGlzLndpZHRofHxsPDB8fHM+dGhpcy5oZWlnaHQpcmV0dXJuIW4mJltdO3ZhciBjPVtdLHU9e2hpdFRlc3Q6bixjaXJjbGU6e3g6dCx5OmUscmFkaXVzOnJ9LHNlZW5VaWRzOntib3g6e30sY2lyY2xlOnt9fX07cmV0dXJuIHRoaXMuX2ZvckVhY2hDZWxsKGEscyxvLGwsdGhpcy5fcXVlcnlDZWxsQ2lyY2xlLGMsdSxpKSxuP2MubGVuZ3RoPjA6Y30sS3QucHJvdG90eXBlLnF1ZXJ5PWZ1bmN0aW9uKHQsZSxyLG4saSl7cmV0dXJuIHRoaXMuX3F1ZXJ5KHQsZSxyLG4sITEsaSl9LEt0LnByb3RvdHlwZS5oaXRUZXN0PWZ1bmN0aW9uKHQsZSxyLG4saSl7cmV0dXJuIHRoaXMuX3F1ZXJ5KHQsZSxyLG4sITAsaSl9LEt0LnByb3RvdHlwZS5oaXRUZXN0Q2lyY2xlPWZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiB0aGlzLl9xdWVyeUNpcmNsZSh0LGUsciwhMCxuKX0sS3QucHJvdG90eXBlLl9xdWVyeUNlbGw9ZnVuY3Rpb24odCxlLHIsbixpLGEsbyxzKXt2YXIgbD1vLnNlZW5VaWRzLGM9dGhpcy5ib3hDZWxsc1tpXTtpZihudWxsIT09Yylmb3IodmFyIHU9dGhpcy5iYm94ZXMsZj0wLGg9YztmPGgubGVuZ3RoO2YrPTEpe3ZhciBwPWhbZl07aWYoIWwuYm94W3BdKXtsLmJveFtwXT0hMDt2YXIgZD00KnA7aWYodDw9dVtkKzJdJiZlPD11W2QrM10mJnI+PXVbZCswXSYmbj49dVtkKzFdJiYoIXN8fHModGhpcy5ib3hLZXlzW3BdKSkpe2lmKG8uaGl0VGVzdClyZXR1cm4gYS5wdXNoKCEwKSwhMDthLnB1c2goe2tleTp0aGlzLmJveEtleXNbcF0seDE6dVtkXSx5MTp1W2QrMV0seDI6dVtkKzJdLHkyOnVbZCszXX0pfX19dmFyIG09dGhpcy5jaXJjbGVDZWxsc1tpXTtpZihudWxsIT09bSlmb3IodmFyIGc9dGhpcy5jaXJjbGVzLHY9MCx5PW07djx5Lmxlbmd0aDt2Kz0xKXt2YXIgeD15W3ZdO2lmKCFsLmNpcmNsZVt4XSl7bC5jaXJjbGVbeF09ITA7dmFyIGI9Myp4O2lmKHRoaXMuX2NpcmNsZUFuZFJlY3RDb2xsaWRlKGdbYl0sZ1tiKzFdLGdbYisyXSx0LGUscixuKSYmKCFzfHxzKHRoaXMuY2lyY2xlS2V5c1t4XSkpKXtpZihvLmhpdFRlc3QpcmV0dXJuIGEucHVzaCghMCksITA7dmFyIF89Z1tiXSx3PWdbYisxXSxUPWdbYisyXTthLnB1c2goe2tleTp0aGlzLmNpcmNsZUtleXNbeF0seDE6Xy1ULHkxOnctVCx4MjpfK1QseTI6dytUfSl9fX19LEt0LnByb3RvdHlwZS5fcXVlcnlDZWxsQ2lyY2xlPWZ1bmN0aW9uKHQsZSxyLG4saSxhLG8scyl7dmFyIGw9by5jaXJjbGUsYz1vLnNlZW5VaWRzLHU9dGhpcy5ib3hDZWxsc1tpXTtpZihudWxsIT09dSlmb3IodmFyIGY9dGhpcy5iYm94ZXMsaD0wLHA9dTtoPHAubGVuZ3RoO2grPTEpe3ZhciBkPXBbaF07aWYoIWMuYm94W2RdKXtjLmJveFtkXT0hMDt2YXIgbT00KmQ7aWYodGhpcy5fY2lyY2xlQW5kUmVjdENvbGxpZGUobC54LGwueSxsLnJhZGl1cyxmW20rMF0sZlttKzFdLGZbbSsyXSxmW20rM10pJiYoIXN8fHModGhpcy5ib3hLZXlzW2RdKSkpcmV0dXJuIGEucHVzaCghMCksITB9fXZhciBnPXRoaXMuY2lyY2xlQ2VsbHNbaV07aWYobnVsbCE9PWcpZm9yKHZhciB2PXRoaXMuY2lyY2xlcyx5PTAseD1nO3k8eC5sZW5ndGg7eSs9MSl7dmFyIGI9eFt5XTtpZighYy5jaXJjbGVbYl0pe2MuY2lyY2xlW2JdPSEwO3ZhciBfPTMqYjtpZih0aGlzLl9jaXJjbGVzQ29sbGlkZSh2W19dLHZbXysxXSx2W18rMl0sbC54LGwueSxsLnJhZGl1cykmJighc3x8cyh0aGlzLmNpcmNsZUtleXNbYl0pKSlyZXR1cm4gYS5wdXNoKCEwKSwhMH19fSxLdC5wcm90b3R5cGUuX2ZvckVhY2hDZWxsPWZ1bmN0aW9uKHQsZSxyLG4saSxhLG8scyl7Zm9yKHZhciBsPXRoaXMuX2NvbnZlcnRUb1hDZWxsQ29vcmQodCksYz10aGlzLl9jb252ZXJ0VG9ZQ2VsbENvb3JkKGUpLHU9dGhpcy5fY29udmVydFRvWENlbGxDb29yZChyKSxmPXRoaXMuX2NvbnZlcnRUb1lDZWxsQ29vcmQobiksaD1sO2g8PXU7aCsrKWZvcih2YXIgcD1jO3A8PWY7cCsrKXt2YXIgZD10aGlzLnhDZWxsQ291bnQqcCtoO2lmKGkuY2FsbCh0aGlzLHQsZSxyLG4sZCxhLG8scykpcmV0dXJufX0sS3QucHJvdG90eXBlLl9jb252ZXJ0VG9YQ2VsbENvb3JkPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLm1heCgwLE1hdGgubWluKHRoaXMueENlbGxDb3VudC0xLE1hdGguZmxvb3IodCp0aGlzLnhTY2FsZSkpKX0sS3QucHJvdG90eXBlLl9jb252ZXJ0VG9ZQ2VsbENvb3JkPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLm1heCgwLE1hdGgubWluKHRoaXMueUNlbGxDb3VudC0xLE1hdGguZmxvb3IodCp0aGlzLnlTY2FsZSkpKX0sS3QucHJvdG90eXBlLl9jaXJjbGVzQ29sbGlkZT1mdW5jdGlvbih0LGUscixuLGksYSl7dmFyIG89bi10LHM9aS1lLGw9cithO3JldHVybiBsKmw+bypvK3Mqc30sS3QucHJvdG90eXBlLl9jaXJjbGVBbmRSZWN0Q29sbGlkZT1mdW5jdGlvbih0LGUscixuLGksYSxvKXt2YXIgcz0oYS1uKS8yLGw9TWF0aC5hYnModC0obitzKSk7aWYobD5zK3IpcmV0dXJuITE7dmFyIGM9KG8taSkvMix1PU1hdGguYWJzKGUtKGkrYykpO2lmKHU+YytyKXJldHVybiExO2lmKGw8PXN8fHU8PWMpcmV0dXJuITA7dmFyIGY9bC1zLGg9dS1jO3JldHVybiBmKmYraCpoPD1yKnJ9O3ZhciBjZT1uZXcgRmxvYXQzMkFycmF5KFstMS8wLC0xLzAsMCwtMS8wLC0xLzAsMCwtMS8wLC0xLzAsMCwtMS8wLC0xLzAsMF0pO2Z1bmN0aW9uIHVlKHQsZSl7Zm9yKHZhciByPTA7cjx0O3IrKyl7dmFyIG49ZS5sZW5ndGg7ZS5yZXNpemUobis0KSxlLmZsb2F0MzIuc2V0KGNlLDMqbil9fWZ1bmN0aW9uIGZlKHQsZSxyKXt2YXIgbj1lWzBdLGk9ZVsxXTtyZXR1cm4gdFswXT1yWzBdKm4rcls0XSppK3JbMTJdLHRbMV09clsxXSpuK3JbNV0qaStyWzEzXSx0WzNdPXJbM10qbityWzddKmkrclsxNV0sdH12YXIgaGU9ZnVuY3Rpb24odCxlLHIpe3ZvaWQgMD09PWUmJihlPW5ldyBLdCh0LndpZHRoKzIwMCx0LmhlaWdodCsyMDAsMjUpKSx2b2lkIDA9PT1yJiYocj1uZXcgS3QodC53aWR0aCsyMDAsdC5oZWlnaHQrMjAwLDI1KSksdGhpcy50cmFuc2Zvcm09dCx0aGlzLmdyaWQ9ZSx0aGlzLmlnbm9yZWRHcmlkPXIsdGhpcy5waXRjaGZhY3Rvcj1NYXRoLmNvcyh0Ll9waXRjaCkqdC5jYW1lcmFUb0NlbnRlckRpc3RhbmNlLHRoaXMuc2NyZWVuUmlnaHRCb3VuZGFyeT10LndpZHRoKzEwMCx0aGlzLnNjcmVlbkJvdHRvbUJvdW5kYXJ5PXQuaGVpZ2h0KzEwMCx0aGlzLmdyaWRSaWdodEJvdW5kYXJ5PXQud2lkdGgrMjAwLHRoaXMuZ3JpZEJvdHRvbUJvdW5kYXJ5PXQuaGVpZ2h0KzIwMH07ZnVuY3Rpb24gcGUoZSxyLG4pe3JldHVybiByKih0LkVYVEVOVC8oZS50aWxlU2l6ZSpNYXRoLnBvdygyLG4tZS50aWxlSUQub3ZlcnNjYWxlZFopKSl9aGUucHJvdG90eXBlLnBsYWNlQ29sbGlzaW9uQm94PWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGE9dGhpcy5wcm9qZWN0QW5kR2V0UGVyc3BlY3RpdmVSYXRpbyhuLHQuYW5jaG9yUG9pbnRYLHQuYW5jaG9yUG9pbnRZKSxvPXIqYS5wZXJzcGVjdGl2ZVJhdGlvLHM9dC54MSpvK2EucG9pbnQueCxsPXQueTEqbythLnBvaW50LnksYz10LngyKm8rYS5wb2ludC54LHU9dC55MipvK2EucG9pbnQueTtyZXR1cm4hdGhpcy5pc0luc2lkZUdyaWQocyxsLGMsdSl8fCFlJiZ0aGlzLmdyaWQuaGl0VGVzdChzLGwsYyx1LGkpP3tib3g6W10sb2Zmc2NyZWVuOiExfTp7Ym94OltzLGwsYyx1XSxvZmZzY3JlZW46dGhpcy5pc09mZnNjcmVlbihzLGwsYyx1KX19LGhlLnByb3RvdHlwZS5wbGFjZUNvbGxpc2lvbkNpcmNsZXM9ZnVuY3Rpb24oZSxyLG4saSxhLG8scyxsLGMsdSxmLGgscCl7dmFyIGQ9W10sbT1uZXcgdC5Qb2ludChyLmFuY2hvclgsci5hbmNob3JZKSxnPXRlKG0sbyksdj1lZSh0aGlzLnRyYW5zZm9ybS5jYW1lcmFUb0NlbnRlckRpc3RhbmNlLGcuc2lnbmVkRGlzdGFuY2VGcm9tQ2FtZXJhKSx5PSh1P2EvdjphKnYpL3QuT05FX0VNLHg9dGUobSxzKS5wb2ludCxiPWllKHksaSxyLmxpbmVPZmZzZXRYKnksci5saW5lT2Zmc2V0WSp5LCExLHgsbSxyLG4scyx7fSksXz0hMSx3PSExLFQ9ITA7aWYoYil7Zm9yKHZhciBrPS41KmgqditwLEE9bmV3IHQuUG9pbnQoLTEwMCwtMTAwKSxNPW5ldyB0LlBvaW50KHRoaXMuc2NyZWVuUmlnaHRCb3VuZGFyeSx0aGlzLnNjcmVlbkJvdHRvbUJvdW5kYXJ5KSxTPW5ldyBKdCxFPWIuZmlyc3QsTD1iLmxhc3QsQz1bXSxQPUUucGF0aC5sZW5ndGgtMTtQPj0xO1AtLSlDLnB1c2goRS5wYXRoW1BdKTtmb3IodmFyIEk9MTtJPEwucGF0aC5sZW5ndGg7SSsrKUMucHVzaChMLnBhdGhbSV0pO3ZhciBPPTIuNSprO2lmKGwpe3ZhciB6PUMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdGUodCxsKX0pKTtDPXouc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIHQuc2lnbmVkRGlzdGFuY2VGcm9tQ2FtZXJhPD0wfSkpP1tdOnoubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5wb2ludH0pKX12YXIgRD1bXTtpZihDLmxlbmd0aD4wKXtmb3IodmFyIFI9Q1swXS5jbG9uZSgpLEY9Q1swXS5jbG9uZSgpLEI9MTtCPEMubGVuZ3RoO0IrKylSLng9TWF0aC5taW4oUi54LENbQl0ueCksUi55PU1hdGgubWluKFIueSxDW0JdLnkpLEYueD1NYXRoLm1heChGLngsQ1tCXS54KSxGLnk9TWF0aC5tYXgoRi55LENbQl0ueSk7RD1SLng+PUEueCYmRi54PD1NLngmJlIueT49QS55JiZGLnk8PU0ueT9bQ106Ri54PEEueHx8Ui54Pk0ueHx8Ri55PEEueXx8Ui55Pk0ueT9bXTp0LmNsaXBMaW5lKFtDXSxBLngsQS55LE0ueCxNLnkpfWZvcih2YXIgTj0wLGo9RDtOPGoubGVuZ3RoO04rPTEpe3ZhciBVPWpbTl07Uy5yZXNldChVLC4yNSprKTt2YXIgVj0wO1Y9Uy5sZW5ndGg8PS41Kms/MTpNYXRoLmNlaWwoUy5wYWRkZWRMZW5ndGgvTykrMTtmb3IodmFyIEg9MDtIPFY7SCsrKXt2YXIgcT1IL01hdGgubWF4KFYtMSwxKSxHPVMubGVycChxKSxZPUcueCsxMDAsVz1HLnkrMTAwO2QucHVzaChZLFcsaywwKTt2YXIgWD1ZLWssWj1XLWssSj1ZK2ssSz1XK2s7aWYoVD1UJiZ0aGlzLmlzT2Zmc2NyZWVuKFgsWixKLEspLHc9d3x8dGhpcy5pc0luc2lkZUdyaWQoWCxaLEosSyksIWUmJnRoaXMuZ3JpZC5oaXRUZXN0Q2lyY2xlKFksVyxrLGYpJiYoXz0hMCwhYykpcmV0dXJue2NpcmNsZXM6W10sb2Zmc2NyZWVuOiExLGNvbGxpc2lvbkRldGVjdGVkOl99fX19cmV0dXJue2NpcmNsZXM6IWMmJl98fCF3P1tdOmQsb2Zmc2NyZWVuOlQsY29sbGlzaW9uRGV0ZWN0ZWQ6X319LGhlLnByb3RvdHlwZS5xdWVyeVJlbmRlcmVkU3ltYm9scz1mdW5jdGlvbihlKXtpZigwPT09ZS5sZW5ndGh8fDA9PT10aGlzLmdyaWQua2V5c0xlbmd0aCgpJiYwPT09dGhpcy5pZ25vcmVkR3JpZC5rZXlzTGVuZ3RoKCkpcmV0dXJue307Zm9yKHZhciByPVtdLG49MS8wLGk9MS8wLGE9LTEvMCxvPS0xLzAscz0wLGw9ZTtzPGwubGVuZ3RoO3MrPTEpe3ZhciBjPWxbc10sdT1uZXcgdC5Qb2ludChjLngrMTAwLGMueSsxMDApO249TWF0aC5taW4obix1LngpLGk9TWF0aC5taW4oaSx1LnkpLGE9TWF0aC5tYXgoYSx1LngpLG89TWF0aC5tYXgobyx1LnkpLHIucHVzaCh1KX1mb3IodmFyIGY9e30saD17fSxwPTAsZD10aGlzLmdyaWQucXVlcnkobixpLGEsbykuY29uY2F0KHRoaXMuaWdub3JlZEdyaWQucXVlcnkobixpLGEsbykpO3A8ZC5sZW5ndGg7cCs9MSl7dmFyIG09ZFtwXSxnPW0ua2V5O2lmKHZvaWQgMD09PWZbZy5idWNrZXRJbnN0YW5jZUlkXSYmKGZbZy5idWNrZXRJbnN0YW5jZUlkXT17fSksIWZbZy5idWNrZXRJbnN0YW5jZUlkXVtnLmZlYXR1cmVJbmRleF0pe3ZhciB2PVtuZXcgdC5Qb2ludChtLngxLG0ueTEpLG5ldyB0LlBvaW50KG0ueDIsbS55MSksbmV3IHQuUG9pbnQobS54MixtLnkyKSxuZXcgdC5Qb2ludChtLngxLG0ueTIpXTt0LnBvbHlnb25JbnRlcnNlY3RzUG9seWdvbihyLHYpJiYoZltnLmJ1Y2tldEluc3RhbmNlSWRdW2cuZmVhdHVyZUluZGV4XT0hMCx2b2lkIDA9PT1oW2cuYnVja2V0SW5zdGFuY2VJZF0mJihoW2cuYnVja2V0SW5zdGFuY2VJZF09W10pLGhbZy5idWNrZXRJbnN0YW5jZUlkXS5wdXNoKGcuZmVhdHVyZUluZGV4KSl9fXJldHVybiBofSxoZS5wcm90b3R5cGUuaW5zZXJ0Q29sbGlzaW9uQm94PWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGE9e2J1Y2tldEluc3RhbmNlSWQ6cixmZWF0dXJlSW5kZXg6bixjb2xsaXNpb25Hcm91cElEOml9OyhlP3RoaXMuaWdub3JlZEdyaWQ6dGhpcy5ncmlkKS5pbnNlcnQoYSx0WzBdLHRbMV0sdFsyXSx0WzNdKX0saGUucHJvdG90eXBlLmluc2VydENvbGxpc2lvbkNpcmNsZXM9ZnVuY3Rpb24odCxlLHIsbixpKXtmb3IodmFyIGE9ZT90aGlzLmlnbm9yZWRHcmlkOnRoaXMuZ3JpZCxvPXtidWNrZXRJbnN0YW5jZUlkOnIsZmVhdHVyZUluZGV4Om4sY29sbGlzaW9uR3JvdXBJRDppfSxzPTA7czx0Lmxlbmd0aDtzKz00KWEuaW5zZXJ0Q2lyY2xlKG8sdFtzXSx0W3MrMV0sdFtzKzJdKX0saGUucHJvdG90eXBlLnByb2plY3RBbmRHZXRQZXJzcGVjdGl2ZVJhdGlvPWZ1bmN0aW9uKGUscixuKXt2YXIgaT1bcixuLDAsMV07cmV0dXJuIGZlKGksaSxlKSx7cG9pbnQ6bmV3IHQuUG9pbnQoKGlbMF0vaVszXSsxKS8yKnRoaXMudHJhbnNmb3JtLndpZHRoKzEwMCwoLWlbMV0vaVszXSsxKS8yKnRoaXMudHJhbnNmb3JtLmhlaWdodCsxMDApLHBlcnNwZWN0aXZlUmF0aW86LjUrdGhpcy50cmFuc2Zvcm0uY2FtZXJhVG9DZW50ZXJEaXN0YW5jZS9pWzNdKi41fX0saGUucHJvdG90eXBlLmlzT2Zmc2NyZWVuPWZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiByPDEwMHx8dD49dGhpcy5zY3JlZW5SaWdodEJvdW5kYXJ5fHxuPDEwMHx8ZT50aGlzLnNjcmVlbkJvdHRvbUJvdW5kYXJ5fSxoZS5wcm90b3R5cGUuaXNJbnNpZGVHcmlkPWZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiByPj0wJiZ0PHRoaXMuZ3JpZFJpZ2h0Qm91bmRhcnkmJm4+PTAmJmU8dGhpcy5ncmlkQm90dG9tQm91bmRhcnl9LGhlLnByb3RvdHlwZS5nZXRWaWV3cG9ydE1hdHJpeD1mdW5jdGlvbigpe3ZhciBlPXQuaWRlbnRpdHkoW10pO3JldHVybiB0LnRyYW5zbGF0ZShlLGUsWy0xMDAsLTEwMCwwXSksZX07dmFyIGRlPWZ1bmN0aW9uKHQsZSxyLG4pe3RoaXMub3BhY2l0eT10P01hdGgubWF4KDAsTWF0aC5taW4oMSx0Lm9wYWNpdHkrKHQucGxhY2VkP2U6LWUpKSk6biYmcj8xOjAsdGhpcy5wbGFjZWQ9cn07ZGUucHJvdG90eXBlLmlzSGlkZGVuPWZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLm9wYWNpdHkmJiF0aGlzLnBsYWNlZH07dmFyIG1lPWZ1bmN0aW9uKHQsZSxyLG4saSl7dGhpcy50ZXh0PW5ldyBkZSh0P3QudGV4dDpudWxsLGUscixpKSx0aGlzLmljb249bmV3IGRlKHQ/dC5pY29uOm51bGwsZSxuLGkpfTttZS5wcm90b3R5cGUuaXNIaWRkZW49ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50ZXh0LmlzSGlkZGVuKCkmJnRoaXMuaWNvbi5pc0hpZGRlbigpfTt2YXIgZ2U9ZnVuY3Rpb24odCxlLHIpe3RoaXMudGV4dD10LHRoaXMuaWNvbj1lLHRoaXMuc2tpcEZhZGU9cn0sdmU9ZnVuY3Rpb24oKXt0aGlzLmludlByb2pNYXRyaXg9dC5jcmVhdGUoKSx0aGlzLnZpZXdwb3J0TWF0cml4PXQuY3JlYXRlKCksdGhpcy5jaXJjbGVzPVtdfSx5ZT1mdW5jdGlvbih0LGUscixuLGkpe3RoaXMuYnVja2V0SW5zdGFuY2VJZD10LHRoaXMuZmVhdHVyZUluZGV4PWUsdGhpcy5zb3VyY2VMYXllckluZGV4PXIsdGhpcy5idWNrZXRJbmRleD1uLHRoaXMudGlsZUlEPWl9LHhlPWZ1bmN0aW9uKHQpe3RoaXMuY3Jvc3NTb3VyY2VDb2xsaXNpb25zPXQsdGhpcy5tYXhHcm91cElEPTAsdGhpcy5jb2xsaXNpb25Hcm91cHM9e319O2Z1bmN0aW9uIGJlKGUscixuLGksYSl7dmFyIG89dC5nZXRBbmNob3JBbGlnbm1lbnQoZSkscz0tKG8uaG9yaXpvbnRhbEFsaWduLS41KSpyLGw9LShvLnZlcnRpY2FsQWxpZ24tLjUpKm4sYz10LmV2YWx1YXRlVmFyaWFibGVPZmZzZXQoZSxpKTtyZXR1cm4gbmV3IHQuUG9pbnQocytjWzBdKmEsbCtjWzFdKmEpfWZ1bmN0aW9uIF9lKGUscixuLGksYSxvKXt2YXIgcz1lLngxLGw9ZS54MixjPWUueTEsdT1lLnkyLGY9ZS5hbmNob3JQb2ludFgsaD1lLmFuY2hvclBvaW50WSxwPW5ldyB0LlBvaW50KHIsbik7cmV0dXJuIGkmJnAuX3JvdGF0ZShhP286LW8pLHt4MTpzK3AueCx5MTpjK3AueSx4MjpsK3AueCx5Mjp1K3AueSxhbmNob3JQb2ludFg6ZixhbmNob3JQb2ludFk6aH19eGUucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtpZih0aGlzLmNyb3NzU291cmNlQ29sbGlzaW9ucylyZXR1cm57SUQ6MCxwcmVkaWNhdGU6bnVsbH07aWYoIXRoaXMuY29sbGlzaW9uR3JvdXBzW3RdKXt2YXIgZT0rK3RoaXMubWF4R3JvdXBJRDt0aGlzLmNvbGxpc2lvbkdyb3Vwc1t0XT17SUQ6ZSxwcmVkaWNhdGU6ZnVuY3Rpb24odCl7cmV0dXJuIHQuY29sbGlzaW9uR3JvdXBJRD09PWV9fX1yZXR1cm4gdGhpcy5jb2xsaXNpb25Hcm91cHNbdF19O3ZhciB3ZT1mdW5jdGlvbih0LGUscixuKXt0aGlzLnRyYW5zZm9ybT10LmNsb25lKCksdGhpcy5jb2xsaXNpb25JbmRleD1uZXcgaGUodGhpcy50cmFuc2Zvcm0pLHRoaXMucGxhY2VtZW50cz17fSx0aGlzLm9wYWNpdGllcz17fSx0aGlzLnZhcmlhYmxlT2Zmc2V0cz17fSx0aGlzLnN0YWxlPSExLHRoaXMuY29tbWl0VGltZT0wLHRoaXMuZmFkZUR1cmF0aW9uPWUsdGhpcy5yZXRhaW5lZFF1ZXJ5RGF0YT17fSx0aGlzLmNvbGxpc2lvbkdyb3Vwcz1uZXcgeGUociksdGhpcy5jb2xsaXNpb25DaXJjbGVBcnJheXM9e30sdGhpcy5wcmV2UGxhY2VtZW50PW4sbiYmKG4ucHJldlBsYWNlbWVudD12b2lkIDApLHRoaXMucGxhY2VkT3JpZW50YXRpb25zPXt9fTtmdW5jdGlvbiBUZSh0LGUscixuLGkpe3QuZW1wbGFjZUJhY2soZT8xOjAscj8xOjAsbnx8MCxpfHwwKSx0LmVtcGxhY2VCYWNrKGU/MTowLHI/MTowLG58fDAsaXx8MCksdC5lbXBsYWNlQmFjayhlPzE6MCxyPzE6MCxufHwwLGl8fDApLHQuZW1wbGFjZUJhY2soZT8xOjAscj8xOjAsbnx8MCxpfHwwKX13ZS5wcm90b3R5cGUuZ2V0QnVja2V0UGFydHM9ZnVuY3Rpb24oZSxyLG4saSl7dmFyIGE9bi5nZXRCdWNrZXQociksbz1uLmxhdGVzdEZlYXR1cmVJbmRleDtpZihhJiZvJiZyLmlkPT09YS5sYXllcklkc1swXSl7dmFyIHM9bi5jb2xsaXNpb25Cb3hBcnJheSxsPWEubGF5ZXJzWzBdLmxheW91dCxjPU1hdGgucG93KDIsdGhpcy50cmFuc2Zvcm0uem9vbS1uLnRpbGVJRC5vdmVyc2NhbGVkWiksdT1uLnRpbGVTaXplL3QuRVhURU5ULGY9dGhpcy50cmFuc2Zvcm0uY2FsY3VsYXRlUG9zTWF0cml4KG4udGlsZUlELnRvVW53cmFwcGVkKCkpLGg9Im1hcCI9PT1sLmdldCgidGV4dC1waXRjaC1hbGlnbm1lbnQiKSxwPSJtYXAiPT09bC5nZXQoInRleHQtcm90YXRpb24tYWxpZ25tZW50IiksZD1wZShuLDEsdGhpcy50cmFuc2Zvcm0uem9vbSksbT1RdChmLGgscCx0aGlzLnRyYW5zZm9ybSxkKSxnPW51bGw7aWYoaCl7dmFyIHY9JHQoZixoLHAsdGhpcy50cmFuc2Zvcm0sZCk7Zz10Lm11bHRpcGx5KFtdLHRoaXMudHJhbnNmb3JtLmxhYmVsUGxhbmVNYXRyaXgsdil9dGhpcy5yZXRhaW5lZFF1ZXJ5RGF0YVthLmJ1Y2tldEluc3RhbmNlSWRdPW5ldyB5ZShhLmJ1Y2tldEluc3RhbmNlSWQsbyxhLnNvdXJjZUxheWVySW5kZXgsYS5pbmRleCxuLnRpbGVJRCk7dmFyIHk9e2J1Y2tldDphLGxheW91dDpsLHBvc01hdHJpeDpmLHRleHRMYWJlbFBsYW5lTWF0cml4Om0sbGFiZWxUb1NjcmVlbk1hdHJpeDpnLHNjYWxlOmMsdGV4dFBpeGVsUmF0aW86dSxob2xkaW5nRm9yRmFkZTpuLmhvbGRpbmdGb3JGYWRlKCksY29sbGlzaW9uQm94QXJyYXk6cyxwYXJ0aWFsbHlFdmFsdWF0ZWRUZXh0U2l6ZTp0LmV2YWx1YXRlU2l6ZUZvclpvb20oYS50ZXh0U2l6ZURhdGEsdGhpcy50cmFuc2Zvcm0uem9vbSksY29sbGlzaW9uR3JvdXA6dGhpcy5jb2xsaXNpb25Hcm91cHMuZ2V0KGEuc291cmNlSUQpfTtpZihpKWZvcih2YXIgeD0wLGI9YS5zb3J0S2V5UmFuZ2VzO3g8Yi5sZW5ndGg7eCs9MSl7dmFyIF89Ylt4XSx3PV8uc29ydEtleSxUPV8uc3ltYm9sSW5zdGFuY2VTdGFydCxrPV8uc3ltYm9sSW5zdGFuY2VFbmQ7ZS5wdXNoKHtzb3J0S2V5Oncsc3ltYm9sSW5zdGFuY2VTdGFydDpULHN5bWJvbEluc3RhbmNlRW5kOmsscGFyYW1ldGVyczp5fSl9ZWxzZSBlLnB1c2goe3N5bWJvbEluc3RhbmNlU3RhcnQ6MCxzeW1ib2xJbnN0YW5jZUVuZDphLnN5bWJvbEluc3RhbmNlcy5sZW5ndGgscGFyYW1ldGVyczp5fSl9fSx3ZS5wcm90b3R5cGUuYXR0ZW1wdEFuY2hvclBsYWNlbWVudD1mdW5jdGlvbih0LGUscixuLGksYSxvLHMsbCxjLHUsZixoLHAsZCl7dmFyIG0sZz1bZi50ZXh0T2Zmc2V0MCxmLnRleHRPZmZzZXQxXSx2PWJlKHQscixuLGcsaSkseT10aGlzLmNvbGxpc2lvbkluZGV4LnBsYWNlQ29sbGlzaW9uQm94KF9lKGUsdi54LHYueSxhLG8sdGhpcy50cmFuc2Zvcm0uYW5nbGUpLHUscyxsLGMucHJlZGljYXRlKTtpZihkJiYwPT09dGhpcy5jb2xsaXNpb25JbmRleC5wbGFjZUNvbGxpc2lvbkJveChfZShkLHYueCx2LnksYSxvLHRoaXMudHJhbnNmb3JtLmFuZ2xlKSx1LHMsbCxjLnByZWRpY2F0ZSkuYm94Lmxlbmd0aClyZXR1cm47aWYoeS5ib3gubGVuZ3RoPjApcmV0dXJuIHRoaXMucHJldlBsYWNlbWVudCYmdGhpcy5wcmV2UGxhY2VtZW50LnZhcmlhYmxlT2Zmc2V0c1tmLmNyb3NzVGlsZUlEXSYmdGhpcy5wcmV2UGxhY2VtZW50LnBsYWNlbWVudHNbZi5jcm9zc1RpbGVJRF0mJnRoaXMucHJldlBsYWNlbWVudC5wbGFjZW1lbnRzW2YuY3Jvc3NUaWxlSURdLnRleHQmJihtPXRoaXMucHJldlBsYWNlbWVudC52YXJpYWJsZU9mZnNldHNbZi5jcm9zc1RpbGVJRF0uYW5jaG9yKSx0aGlzLnZhcmlhYmxlT2Zmc2V0c1tmLmNyb3NzVGlsZUlEXT17dGV4dE9mZnNldDpnLHdpZHRoOnIsaGVpZ2h0Om4sYW5jaG9yOnQsdGV4dEJveFNjYWxlOmkscHJldkFuY2hvcjptfSx0aGlzLm1hcmtVc2VkSnVzdGlmaWNhdGlvbihoLHQsZixwKSxoLmFsbG93VmVydGljYWxQbGFjZW1lbnQmJih0aGlzLm1hcmtVc2VkT3JpZW50YXRpb24oaCxwLGYpLHRoaXMucGxhY2VkT3JpZW50YXRpb25zW2YuY3Jvc3NUaWxlSURdPXApLHtzaGlmdDp2LHBsYWNlZEdseXBoQm94ZXM6eX19LHdlLnByb3RvdHlwZS5wbGFjZUxheWVyQnVja2V0UGFydD1mdW5jdGlvbihlLHIsbil7dmFyIGk9dGhpcyxhPWUucGFyYW1ldGVycyxvPWEuYnVja2V0LHM9YS5sYXlvdXQsbD1hLnBvc01hdHJpeCxjPWEudGV4dExhYmVsUGxhbmVNYXRyaXgsdT1hLmxhYmVsVG9TY3JlZW5NYXRyaXgsZj1hLnRleHRQaXhlbFJhdGlvLGg9YS5ob2xkaW5nRm9yRmFkZSxwPWEuY29sbGlzaW9uQm94QXJyYXksZD1hLnBhcnRpYWxseUV2YWx1YXRlZFRleHRTaXplLG09YS5jb2xsaXNpb25Hcm91cCxnPXMuZ2V0KCJ0ZXh0LW9wdGlvbmFsIiksdj1zLmdldCgiaWNvbi1vcHRpb25hbCIpLHk9cy5nZXQoInRleHQtYWxsb3ctb3ZlcmxhcCIpLHg9cy5nZXQoImljb24tYWxsb3ctb3ZlcmxhcCIpLGI9Im1hcCI9PT1zLmdldCgidGV4dC1yb3RhdGlvbi1hbGlnbm1lbnQiKSxfPSJtYXAiPT09cy5nZXQoInRleHQtcGl0Y2gtYWxpZ25tZW50Iiksdz0ibm9uZSIhPT1zLmdldCgiaWNvbi10ZXh0LWZpdCIpLFQ9InZpZXdwb3J0LXkiPT09cy5nZXQoInN5bWJvbC16LW9yZGVyIiksaz15JiYoeHx8IW8uaGFzSWNvbkRhdGEoKXx8diksQT14JiYoeXx8IW8uaGFzVGV4dERhdGEoKXx8Zyk7IW8uY29sbGlzaW9uQXJyYXlzJiZwJiZvLmRlc2VyaWFsaXplQ29sbGlzaW9uQm94ZXMocCk7dmFyIE09ZnVuY3Rpb24oZSxhKXtpZighcltlLmNyb3NzVGlsZUlEXSlpZihoKWkucGxhY2VtZW50c1tlLmNyb3NzVGlsZUlEXT1uZXcgZ2UoITEsITEsITEpO2Vsc2V7dmFyIHAsVD0hMSxNPSExLFM9ITAsRT1udWxsLEw9e2JveDpudWxsLG9mZnNjcmVlbjpudWxsfSxDPXtib3g6bnVsbCxvZmZzY3JlZW46bnVsbH0sUD1udWxsLEk9bnVsbCxPPTAsej0wLEQ9MDthLnRleHRGZWF0dXJlSW5kZXg/Tz1hLnRleHRGZWF0dXJlSW5kZXg6ZS51c2VSdW50aW1lQ29sbGlzaW9uQ2lyY2xlcyYmKE89ZS5mZWF0dXJlSW5kZXgpLGEudmVydGljYWxUZXh0RmVhdHVyZUluZGV4JiYoej1hLnZlcnRpY2FsVGV4dEZlYXR1cmVJbmRleCk7dmFyIFI9YS50ZXh0Qm94O2lmKFIpe3ZhciBGPWZ1bmN0aW9uKHIpe3ZhciBuPXQuV3JpdGluZ01vZGUuaG9yaXpvbnRhbDtpZihvLmFsbG93VmVydGljYWxQbGFjZW1lbnQmJiFyJiZpLnByZXZQbGFjZW1lbnQpe3ZhciBhPWkucHJldlBsYWNlbWVudC5wbGFjZWRPcmllbnRhdGlvbnNbZS5jcm9zc1RpbGVJRF07YSYmKGkucGxhY2VkT3JpZW50YXRpb25zW2UuY3Jvc3NUaWxlSURdPWEsbj1hLGkubWFya1VzZWRPcmllbnRhdGlvbihvLG4sZSkpfXJldHVybiBufSxCPWZ1bmN0aW9uKHIsbil7aWYoby5hbGxvd1ZlcnRpY2FsUGxhY2VtZW50JiZlLm51bVZlcnRpY2FsR2x5cGhWZXJ0aWNlcz4wJiZhLnZlcnRpY2FsVGV4dEJveClmb3IodmFyIGk9MCxzPW8ud3JpdGluZ01vZGVzO2k8cy5sZW5ndGg7aSs9MSl7aWYoc1tpXT09PXQuV3JpdGluZ01vZGUudmVydGljYWw/KEw9bigpLEM9TCk6TD1yKCksTCYmTC5ib3gmJkwuYm94Lmxlbmd0aClicmVha31lbHNlIEw9cigpfTtpZihzLmdldCgidGV4dC12YXJpYWJsZS1hbmNob3IiKSl7dmFyIE49cy5nZXQoInRleHQtdmFyaWFibGUtYW5jaG9yIik7aWYoaS5wcmV2UGxhY2VtZW50JiZpLnByZXZQbGFjZW1lbnQudmFyaWFibGVPZmZzZXRzW2UuY3Jvc3NUaWxlSURdKXt2YXIgaj1pLnByZXZQbGFjZW1lbnQudmFyaWFibGVPZmZzZXRzW2UuY3Jvc3NUaWxlSURdO04uaW5kZXhPZihqLmFuY2hvcik+MCYmKE49Ti5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0IT09ai5hbmNob3J9KSkpLnVuc2hpZnQoai5hbmNob3IpfXZhciBVPWZ1bmN0aW9uKHQscixuKXtmb3IodmFyIGE9dC54Mi10LngxLHM9dC55Mi10LnkxLGM9ZS50ZXh0Qm94U2NhbGUsdT13JiYheD9yOm51bGwsaD17Ym94OltdLG9mZnNjcmVlbjohMX0scD15PzIqTi5sZW5ndGg6Ti5sZW5ndGgsZD0wO2Q8cDsrK2Qpe3ZhciBnPU5bZCVOLmxlbmd0aF0sdj1kPj1OLmxlbmd0aCxrPWkuYXR0ZW1wdEFuY2hvclBsYWNlbWVudChnLHQsYSxzLGMsYixfLGYsbCxtLHYsZSxvLG4sdSk7aWYoayYmKGg9ay5wbGFjZWRHbHlwaEJveGVzKSYmaC5ib3gmJmguYm94Lmxlbmd0aCl7VD0hMCxFPWsuc2hpZnQ7YnJlYWt9fXJldHVybiBofTtCKChmdW5jdGlvbigpe3JldHVybiBVKFIsYS5pY29uQm94LHQuV3JpdGluZ01vZGUuaG9yaXpvbnRhbCl9KSwoZnVuY3Rpb24oKXt2YXIgcj1hLnZlcnRpY2FsVGV4dEJveCxuPUwmJkwuYm94JiZMLmJveC5sZW5ndGg7cmV0dXJuIG8uYWxsb3dWZXJ0aWNhbFBsYWNlbWVudCYmIW4mJmUubnVtVmVydGljYWxHbHlwaFZlcnRpY2VzPjAmJnI/VShyLGEudmVydGljYWxJY29uQm94LHQuV3JpdGluZ01vZGUudmVydGljYWwpOntib3g6bnVsbCxvZmZzY3JlZW46bnVsbH19KSksTCYmKFQ9TC5ib3gsUz1MLm9mZnNjcmVlbik7dmFyIFY9RihMJiZMLmJveCk7aWYoIVQmJmkucHJldlBsYWNlbWVudCl7dmFyIEg9aS5wcmV2UGxhY2VtZW50LnZhcmlhYmxlT2Zmc2V0c1tlLmNyb3NzVGlsZUlEXTtIJiYoaS52YXJpYWJsZU9mZnNldHNbZS5jcm9zc1RpbGVJRF09SCxpLm1hcmtVc2VkSnVzdGlmaWNhdGlvbihvLEguYW5jaG9yLGUsVikpfX1lbHNle3ZhciBxPWZ1bmN0aW9uKHQscil7dmFyIG49aS5jb2xsaXNpb25JbmRleC5wbGFjZUNvbGxpc2lvbkJveCh0LHksZixsLG0ucHJlZGljYXRlKTtyZXR1cm4gbiYmbi5ib3gmJm4uYm94Lmxlbmd0aCYmKGkubWFya1VzZWRPcmllbnRhdGlvbihvLHIsZSksaS5wbGFjZWRPcmllbnRhdGlvbnNbZS5jcm9zc1RpbGVJRF09ciksbn07QigoZnVuY3Rpb24oKXtyZXR1cm4gcShSLHQuV3JpdGluZ01vZGUuaG9yaXpvbnRhbCl9KSwoZnVuY3Rpb24oKXt2YXIgcj1hLnZlcnRpY2FsVGV4dEJveDtyZXR1cm4gby5hbGxvd1ZlcnRpY2FsUGxhY2VtZW50JiZlLm51bVZlcnRpY2FsR2x5cGhWZXJ0aWNlcz4wJiZyP3Eocix0LldyaXRpbmdNb2RlLnZlcnRpY2FsKTp7Ym94Om51bGwsb2Zmc2NyZWVuOm51bGx9fSkpLEYoTCYmTC5ib3gmJkwuYm94Lmxlbmd0aCl9fWlmKFQ9KHA9TCkmJnAuYm94JiZwLmJveC5sZW5ndGg+MCxTPXAmJnAub2Zmc2NyZWVuLGUudXNlUnVudGltZUNvbGxpc2lvbkNpcmNsZXMpe3ZhciBHPW8udGV4dC5wbGFjZWRTeW1ib2xBcnJheS5nZXQoZS5jZW50ZXJKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXgpLFk9dC5ldmFsdWF0ZVNpemVGb3JGZWF0dXJlKG8udGV4dFNpemVEYXRhLGQsRyksVz1zLmdldCgidGV4dC1wYWRkaW5nIiksWD1lLmNvbGxpc2lvbkNpcmNsZURpYW1ldGVyO1A9aS5jb2xsaXNpb25JbmRleC5wbGFjZUNvbGxpc2lvbkNpcmNsZXMoeSxHLG8ubGluZVZlcnRleEFycmF5LG8uZ2x5cGhPZmZzZXRBcnJheSxZLGwsYyx1LG4sXyxtLnByZWRpY2F0ZSxYLFcpLFQ9eXx8UC5jaXJjbGVzLmxlbmd0aD4wJiYhUC5jb2xsaXNpb25EZXRlY3RlZCxTPVMmJlAub2Zmc2NyZWVufWlmKGEuaWNvbkZlYXR1cmVJbmRleCYmKEQ9YS5pY29uRmVhdHVyZUluZGV4KSxhLmljb25Cb3gpe3ZhciBaPWZ1bmN0aW9uKHQpe3ZhciBlPXcmJkU/X2UodCxFLngsRS55LGIsXyxpLnRyYW5zZm9ybS5hbmdsZSk6dDtyZXR1cm4gaS5jb2xsaXNpb25JbmRleC5wbGFjZUNvbGxpc2lvbkJveChlLHgsZixsLG0ucHJlZGljYXRlKX07TT1DJiZDLmJveCYmQy5ib3gubGVuZ3RoJiZhLnZlcnRpY2FsSWNvbkJveD8oST1aKGEudmVydGljYWxJY29uQm94KSkuYm94Lmxlbmd0aD4wOihJPVooYS5pY29uQm94KSkuYm94Lmxlbmd0aD4wLFM9UyYmSS5vZmZzY3JlZW59dmFyIEo9Z3x8MD09PWUubnVtSG9yaXpvbnRhbEdseXBoVmVydGljZXMmJjA9PT1lLm51bVZlcnRpY2FsR2x5cGhWZXJ0aWNlcyxLPXZ8fDA9PT1lLm51bUljb25WZXJ0aWNlcztpZihKfHxLP0s/Snx8KE09TSYmVCk6VD1NJiZUOk09VD1NJiZULFQmJnAmJnAuYm94JiYoQyYmQy5ib3gmJno/aS5jb2xsaXNpb25JbmRleC5pbnNlcnRDb2xsaXNpb25Cb3gocC5ib3gscy5nZXQoInRleHQtaWdub3JlLXBsYWNlbWVudCIpLG8uYnVja2V0SW5zdGFuY2VJZCx6LG0uSUQpOmkuY29sbGlzaW9uSW5kZXguaW5zZXJ0Q29sbGlzaW9uQm94KHAuYm94LHMuZ2V0KCJ0ZXh0LWlnbm9yZS1wbGFjZW1lbnQiKSxvLmJ1Y2tldEluc3RhbmNlSWQsTyxtLklEKSksTSYmSSYmaS5jb2xsaXNpb25JbmRleC5pbnNlcnRDb2xsaXNpb25Cb3goSS5ib3gscy5nZXQoImljb24taWdub3JlLXBsYWNlbWVudCIpLG8uYnVja2V0SW5zdGFuY2VJZCxELG0uSUQpLFAmJihUJiZpLmNvbGxpc2lvbkluZGV4Lmluc2VydENvbGxpc2lvbkNpcmNsZXMoUC5jaXJjbGVzLHMuZ2V0KCJ0ZXh0LWlnbm9yZS1wbGFjZW1lbnQiKSxvLmJ1Y2tldEluc3RhbmNlSWQsTyxtLklEKSxuKSl7dmFyIFE9by5idWNrZXRJbnN0YW5jZUlkLCQ9aS5jb2xsaXNpb25DaXJjbGVBcnJheXNbUV07dm9pZCAwPT09JCYmKCQ9aS5jb2xsaXNpb25DaXJjbGVBcnJheXNbUV09bmV3IHZlKTtmb3IodmFyIHR0PTA7dHQ8UC5jaXJjbGVzLmxlbmd0aDt0dCs9NCkkLmNpcmNsZXMucHVzaChQLmNpcmNsZXNbdHQrMF0pLCQuY2lyY2xlcy5wdXNoKFAuY2lyY2xlc1t0dCsxXSksJC5jaXJjbGVzLnB1c2goUC5jaXJjbGVzW3R0KzJdKSwkLmNpcmNsZXMucHVzaChQLmNvbGxpc2lvbkRldGVjdGVkPzE6MCl9aS5wbGFjZW1lbnRzW2UuY3Jvc3NUaWxlSURdPW5ldyBnZShUfHxrLE18fEEsU3x8by5qdXN0UmVsb2FkZWQpLHJbZS5jcm9zc1RpbGVJRF09ITB9fTtpZihUKWZvcih2YXIgUz1vLmdldFNvcnRlZFN5bWJvbEluZGV4ZXModGhpcy50cmFuc2Zvcm0uYW5nbGUpLEU9Uy5sZW5ndGgtMTtFPj0wOy0tRSl7dmFyIEw9U1tFXTtNKG8uc3ltYm9sSW5zdGFuY2VzLmdldChMKSxvLmNvbGxpc2lvbkFycmF5c1tMXSl9ZWxzZSBmb3IodmFyIEM9ZS5zeW1ib2xJbnN0YW5jZVN0YXJ0O0M8ZS5zeW1ib2xJbnN0YW5jZUVuZDtDKyspTShvLnN5bWJvbEluc3RhbmNlcy5nZXQoQyksby5jb2xsaXNpb25BcnJheXNbQ10pO2lmKG4mJm8uYnVja2V0SW5zdGFuY2VJZCBpbiB0aGlzLmNvbGxpc2lvbkNpcmNsZUFycmF5cyl7dmFyIFA9dGhpcy5jb2xsaXNpb25DaXJjbGVBcnJheXNbby5idWNrZXRJbnN0YW5jZUlkXTt0LmludmVydChQLmludlByb2pNYXRyaXgsbCksUC52aWV3cG9ydE1hdHJpeD10aGlzLmNvbGxpc2lvbkluZGV4LmdldFZpZXdwb3J0TWF0cml4KCl9by5qdXN0UmVsb2FkZWQ9ITF9LHdlLnByb3RvdHlwZS5tYXJrVXNlZEp1c3RpZmljYXRpb249ZnVuY3Rpb24oZSxyLG4saSl7dmFyIGEsbz17bGVmdDpuLmxlZnRKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXgsY2VudGVyOm4uY2VudGVySnVzdGlmaWVkVGV4dFN5bWJvbEluZGV4LHJpZ2h0Om4ucmlnaHRKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXh9O2E9aT09PXQuV3JpdGluZ01vZGUudmVydGljYWw/bi52ZXJ0aWNhbFBsYWNlZFRleHRTeW1ib2xJbmRleDpvW3QuZ2V0QW5jaG9ySnVzdGlmaWNhdGlvbihyKV07Zm9yKHZhciBzPTAsbD1bbi5sZWZ0SnVzdGlmaWVkVGV4dFN5bWJvbEluZGV4LG4uY2VudGVySnVzdGlmaWVkVGV4dFN5bWJvbEluZGV4LG4ucmlnaHRKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXgsbi52ZXJ0aWNhbFBsYWNlZFRleHRTeW1ib2xJbmRleF07czxsLmxlbmd0aDtzKz0xKXt2YXIgYz1sW3NdO2M+PTAmJihlLnRleHQucGxhY2VkU3ltYm9sQXJyYXkuZ2V0KGMpLmNyb3NzVGlsZUlEPWE+PTAmJmMhPT1hPzA6bi5jcm9zc1RpbGVJRCl9fSx3ZS5wcm90b3R5cGUubWFya1VzZWRPcmllbnRhdGlvbj1mdW5jdGlvbihlLHIsbil7Zm9yKHZhciBpPXI9PT10LldyaXRpbmdNb2RlLmhvcml6b250YWx8fHI9PT10LldyaXRpbmdNb2RlLmhvcml6b250YWxPbmx5P3I6MCxhPXI9PT10LldyaXRpbmdNb2RlLnZlcnRpY2FsP3I6MCxvPTAscz1bbi5sZWZ0SnVzdGlmaWVkVGV4dFN5bWJvbEluZGV4LG4uY2VudGVySnVzdGlmaWVkVGV4dFN5bWJvbEluZGV4LG4ucmlnaHRKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXhdO288cy5sZW5ndGg7bys9MSl7dmFyIGw9c1tvXTtlLnRleHQucGxhY2VkU3ltYm9sQXJyYXkuZ2V0KGwpLnBsYWNlZE9yaWVudGF0aW9uPWl9bi52ZXJ0aWNhbFBsYWNlZFRleHRTeW1ib2xJbmRleCYmKGUudGV4dC5wbGFjZWRTeW1ib2xBcnJheS5nZXQobi52ZXJ0aWNhbFBsYWNlZFRleHRTeW1ib2xJbmRleCkucGxhY2VkT3JpZW50YXRpb249YSl9LHdlLnByb3RvdHlwZS5jb21taXQ9ZnVuY3Rpb24odCl7dGhpcy5jb21taXRUaW1lPXQsdGhpcy56b29tQXRMYXN0UmVjZW5jeUNoZWNrPXRoaXMudHJhbnNmb3JtLnpvb207dmFyIGU9dGhpcy5wcmV2UGxhY2VtZW50LHI9ITE7dGhpcy5wcmV2Wm9vbUFkanVzdG1lbnQ9ZT9lLnpvb21BZGp1c3RtZW50KHRoaXMudHJhbnNmb3JtLnpvb20pOjA7dmFyIG49ZT9lLnN5bWJvbEZhZGVDaGFuZ2UodCk6MSxpPWU/ZS5vcGFjaXRpZXM6e30sYT1lP2UudmFyaWFibGVPZmZzZXRzOnt9LG89ZT9lLnBsYWNlZE9yaWVudGF0aW9uczp7fTtmb3IodmFyIHMgaW4gdGhpcy5wbGFjZW1lbnRzKXt2YXIgbD10aGlzLnBsYWNlbWVudHNbc10sYz1pW3NdO2M/KHRoaXMub3BhY2l0aWVzW3NdPW5ldyBtZShjLG4sbC50ZXh0LGwuaWNvbikscj1yfHxsLnRleHQhPT1jLnRleHQucGxhY2VkfHxsLmljb24hPT1jLmljb24ucGxhY2VkKToodGhpcy5vcGFjaXRpZXNbc109bmV3IG1lKG51bGwsbixsLnRleHQsbC5pY29uLGwuc2tpcEZhZGUpLHI9cnx8bC50ZXh0fHxsLmljb24pfWZvcih2YXIgdSBpbiBpKXt2YXIgZj1pW3VdO2lmKCF0aGlzLm9wYWNpdGllc1t1XSl7dmFyIGg9bmV3IG1lKGYsbiwhMSwhMSk7aC5pc0hpZGRlbigpfHwodGhpcy5vcGFjaXRpZXNbdV09aCxyPXJ8fGYudGV4dC5wbGFjZWR8fGYuaWNvbi5wbGFjZWQpfX1mb3IodmFyIHAgaW4gYSl0aGlzLnZhcmlhYmxlT2Zmc2V0c1twXXx8IXRoaXMub3BhY2l0aWVzW3BdfHx0aGlzLm9wYWNpdGllc1twXS5pc0hpZGRlbigpfHwodGhpcy52YXJpYWJsZU9mZnNldHNbcF09YVtwXSk7Zm9yKHZhciBkIGluIG8pdGhpcy5wbGFjZWRPcmllbnRhdGlvbnNbZF18fCF0aGlzLm9wYWNpdGllc1tkXXx8dGhpcy5vcGFjaXRpZXNbZF0uaXNIaWRkZW4oKXx8KHRoaXMucGxhY2VkT3JpZW50YXRpb25zW2RdPW9bZF0pO3I/dGhpcy5sYXN0UGxhY2VtZW50Q2hhbmdlVGltZT10OiJudW1iZXIiIT10eXBlb2YgdGhpcy5sYXN0UGxhY2VtZW50Q2hhbmdlVGltZSYmKHRoaXMubGFzdFBsYWNlbWVudENoYW5nZVRpbWU9ZT9lLmxhc3RQbGFjZW1lbnRDaGFuZ2VUaW1lOnQpfSx3ZS5wcm90b3R5cGUudXBkYXRlTGF5ZXJPcGFjaXRpZXM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9e30sbj0wLGk9ZTtuPGkubGVuZ3RoO24rPTEpe3ZhciBhPWlbbl0sbz1hLmdldEJ1Y2tldCh0KTtvJiZhLmxhdGVzdEZlYXR1cmVJbmRleCYmdC5pZD09PW8ubGF5ZXJJZHNbMF0mJnRoaXMudXBkYXRlQnVja2V0T3BhY2l0aWVzKG8scixhLmNvbGxpc2lvbkJveEFycmF5KX19LHdlLnByb3RvdHlwZS51cGRhdGVCdWNrZXRPcGFjaXRpZXM9ZnVuY3Rpb24oZSxyLG4pe3ZhciBpPXRoaXM7ZS5oYXNUZXh0RGF0YSgpJiZlLnRleHQub3BhY2l0eVZlcnRleEFycmF5LmNsZWFyKCksZS5oYXNJY29uRGF0YSgpJiZlLmljb24ub3BhY2l0eVZlcnRleEFycmF5LmNsZWFyKCksZS5oYXNJY29uQ29sbGlzaW9uQm94RGF0YSgpJiZlLmljb25Db2xsaXNpb25Cb3guY29sbGlzaW9uVmVydGV4QXJyYXkuY2xlYXIoKSxlLmhhc1RleHRDb2xsaXNpb25Cb3hEYXRhKCkmJmUudGV4dENvbGxpc2lvbkJveC5jb2xsaXNpb25WZXJ0ZXhBcnJheS5jbGVhcigpO3ZhciBhPWUubGF5ZXJzWzBdLmxheW91dCxvPW5ldyBtZShudWxsLDAsITEsITEsITApLHM9YS5nZXQoInRleHQtYWxsb3ctb3ZlcmxhcCIpLGw9YS5nZXQoImljb24tYWxsb3ctb3ZlcmxhcCIpLGM9YS5nZXQoInRleHQtdmFyaWFibGUtYW5jaG9yIiksdT0ibWFwIj09PWEuZ2V0KCJ0ZXh0LXJvdGF0aW9uLWFsaWdubWVudCIpLGY9Im1hcCI9PT1hLmdldCgidGV4dC1waXRjaC1hbGlnbm1lbnQiKSxoPSJub25lIiE9PWEuZ2V0KCJpY29uLXRleHQtZml0IikscD1uZXcgbWUobnVsbCwwLHMmJihsfHwhZS5oYXNJY29uRGF0YSgpfHxhLmdldCgiaWNvbi1vcHRpb25hbCIpKSxsJiYoc3x8IWUuaGFzVGV4dERhdGEoKXx8YS5nZXQoInRleHQtb3B0aW9uYWwiKSksITApOyFlLmNvbGxpc2lvbkFycmF5cyYmbiYmKGUuaGFzSWNvbkNvbGxpc2lvbkJveERhdGEoKXx8ZS5oYXNUZXh0Q29sbGlzaW9uQm94RGF0YSgpKSYmZS5kZXNlcmlhbGl6ZUNvbGxpc2lvbkJveGVzKG4pO2Zvcih2YXIgZD1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuPTA7bjxlLzQ7bisrKXQub3BhY2l0eVZlcnRleEFycmF5LmVtcGxhY2VCYWNrKHIpfSxtPWZ1bmN0aW9uKG4pe3ZhciBhPWUuc3ltYm9sSW5zdGFuY2VzLmdldChuKSxzPWEubnVtSG9yaXpvbnRhbEdseXBoVmVydGljZXMsbD1hLm51bVZlcnRpY2FsR2x5cGhWZXJ0aWNlcyxtPWEuY3Jvc3NUaWxlSUQsZz1yW21dLHY9aS5vcGFjaXRpZXNbbV07Zz92PW86dnx8KHY9cCxpLm9wYWNpdGllc1ttXT12KSxyW21dPSEwO3ZhciB5PXM+MHx8bD4wLHg9YS5udW1JY29uVmVydGljZXM+MCxiPWkucGxhY2VkT3JpZW50YXRpb25zW2EuY3Jvc3NUaWxlSURdLF89Yj09PXQuV3JpdGluZ01vZGUudmVydGljYWwsdz1iPT09dC5Xcml0aW5nTW9kZS5ob3Jpem9udGFsfHxiPT09dC5Xcml0aW5nTW9kZS5ob3Jpem9udGFsT25seTtpZih5KXt2YXIgVD1QZSh2LnRleHQpLGs9Xz9JZTpUO2QoZS50ZXh0LHMsayk7dmFyIEE9dz9JZTpUO2QoZS50ZXh0LGwsQSk7dmFyIE09di50ZXh0LmlzSGlkZGVuKCk7W2EucmlnaHRKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXgsYS5jZW50ZXJKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXgsYS5sZWZ0SnVzdGlmaWVkVGV4dFN5bWJvbEluZGV4XS5mb3JFYWNoKChmdW5jdGlvbih0KXt0Pj0wJiYoZS50ZXh0LnBsYWNlZFN5bWJvbEFycmF5LmdldCh0KS5oaWRkZW49TXx8Xz8xOjApfSkpLGEudmVydGljYWxQbGFjZWRUZXh0U3ltYm9sSW5kZXg+PTAmJihlLnRleHQucGxhY2VkU3ltYm9sQXJyYXkuZ2V0KGEudmVydGljYWxQbGFjZWRUZXh0U3ltYm9sSW5kZXgpLmhpZGRlbj1NfHx3PzE6MCk7dmFyIFM9aS52YXJpYWJsZU9mZnNldHNbYS5jcm9zc1RpbGVJRF07UyYmaS5tYXJrVXNlZEp1c3RpZmljYXRpb24oZSxTLmFuY2hvcixhLGIpO3ZhciBFPWkucGxhY2VkT3JpZW50YXRpb25zW2EuY3Jvc3NUaWxlSURdO0UmJihpLm1hcmtVc2VkSnVzdGlmaWNhdGlvbihlLCJsZWZ0IixhLEUpLGkubWFya1VzZWRPcmllbnRhdGlvbihlLEUsYSkpfWlmKHgpe3ZhciBMPVBlKHYuaWNvbiksQz0hKGgmJmEudmVydGljYWxQbGFjZWRJY29uU3ltYm9sSW5kZXgmJl8pO2lmKGEucGxhY2VkSWNvblN5bWJvbEluZGV4Pj0wKXt2YXIgUD1DP0w6SWU7ZChlLmljb24sYS5udW1JY29uVmVydGljZXMsUCksZS5pY29uLnBsYWNlZFN5bWJvbEFycmF5LmdldChhLnBsYWNlZEljb25TeW1ib2xJbmRleCkuaGlkZGVuPXYuaWNvbi5pc0hpZGRlbigpfWlmKGEudmVydGljYWxQbGFjZWRJY29uU3ltYm9sSW5kZXg+PTApe3ZhciBJPUM/SWU6TDtkKGUuaWNvbixhLm51bVZlcnRpY2FsSWNvblZlcnRpY2VzLEkpLGUuaWNvbi5wbGFjZWRTeW1ib2xBcnJheS5nZXQoYS52ZXJ0aWNhbFBsYWNlZEljb25TeW1ib2xJbmRleCkuaGlkZGVuPXYuaWNvbi5pc0hpZGRlbigpfX1pZihlLmhhc0ljb25Db2xsaXNpb25Cb3hEYXRhKCl8fGUuaGFzVGV4dENvbGxpc2lvbkJveERhdGEoKSl7dmFyIE89ZS5jb2xsaXNpb25BcnJheXNbbl07aWYoTyl7dmFyIHo9bmV3IHQuUG9pbnQoMCwwKTtpZihPLnRleHRCb3h8fE8udmVydGljYWxUZXh0Qm94KXt2YXIgRD0hMDtpZihjKXt2YXIgUj1pLnZhcmlhYmxlT2Zmc2V0c1ttXTtSPyh6PWJlKFIuYW5jaG9yLFIud2lkdGgsUi5oZWlnaHQsUi50ZXh0T2Zmc2V0LFIudGV4dEJveFNjYWxlKSx1JiZ6Ll9yb3RhdGUoZj9pLnRyYW5zZm9ybS5hbmdsZTotaS50cmFuc2Zvcm0uYW5nbGUpKTpEPSExfU8udGV4dEJveCYmVGUoZS50ZXh0Q29sbGlzaW9uQm94LmNvbGxpc2lvblZlcnRleEFycmF5LHYudGV4dC5wbGFjZWQsIUR8fF8sei54LHoueSksTy52ZXJ0aWNhbFRleHRCb3gmJlRlKGUudGV4dENvbGxpc2lvbkJveC5jb2xsaXNpb25WZXJ0ZXhBcnJheSx2LnRleHQucGxhY2VkLCFEfHx3LHoueCx6LnkpfXZhciBGPUJvb2xlYW4oIXcmJk8udmVydGljYWxJY29uQm94KTtPLmljb25Cb3gmJlRlKGUuaWNvbkNvbGxpc2lvbkJveC5jb2xsaXNpb25WZXJ0ZXhBcnJheSx2Lmljb24ucGxhY2VkLEYsaD96Lng6MCxoP3oueTowKSxPLnZlcnRpY2FsSWNvbkJveCYmVGUoZS5pY29uQ29sbGlzaW9uQm94LmNvbGxpc2lvblZlcnRleEFycmF5LHYuaWNvbi5wbGFjZWQsIUYsaD96Lng6MCxoP3oueTowKX19fSxnPTA7ZzxlLnN5bWJvbEluc3RhbmNlcy5sZW5ndGg7ZysrKW0oZyk7aWYoZS5zb3J0RmVhdHVyZXModGhpcy50cmFuc2Zvcm0uYW5nbGUpLHRoaXMucmV0YWluZWRRdWVyeURhdGFbZS5idWNrZXRJbnN0YW5jZUlkXSYmKHRoaXMucmV0YWluZWRRdWVyeURhdGFbZS5idWNrZXRJbnN0YW5jZUlkXS5mZWF0dXJlU29ydE9yZGVyPWUuZmVhdHVyZVNvcnRPcmRlciksZS5oYXNUZXh0RGF0YSgpJiZlLnRleHQub3BhY2l0eVZlcnRleEJ1ZmZlciYmZS50ZXh0Lm9wYWNpdHlWZXJ0ZXhCdWZmZXIudXBkYXRlRGF0YShlLnRleHQub3BhY2l0eVZlcnRleEFycmF5KSxlLmhhc0ljb25EYXRhKCkmJmUuaWNvbi5vcGFjaXR5VmVydGV4QnVmZmVyJiZlLmljb24ub3BhY2l0eVZlcnRleEJ1ZmZlci51cGRhdGVEYXRhKGUuaWNvbi5vcGFjaXR5VmVydGV4QXJyYXkpLGUuaGFzSWNvbkNvbGxpc2lvbkJveERhdGEoKSYmZS5pY29uQ29sbGlzaW9uQm94LmNvbGxpc2lvblZlcnRleEJ1ZmZlciYmZS5pY29uQ29sbGlzaW9uQm94LmNvbGxpc2lvblZlcnRleEJ1ZmZlci51cGRhdGVEYXRhKGUuaWNvbkNvbGxpc2lvbkJveC5jb2xsaXNpb25WZXJ0ZXhBcnJheSksZS5oYXNUZXh0Q29sbGlzaW9uQm94RGF0YSgpJiZlLnRleHRDb2xsaXNpb25Cb3guY29sbGlzaW9uVmVydGV4QnVmZmVyJiZlLnRleHRDb2xsaXNpb25Cb3guY29sbGlzaW9uVmVydGV4QnVmZmVyLnVwZGF0ZURhdGEoZS50ZXh0Q29sbGlzaW9uQm94LmNvbGxpc2lvblZlcnRleEFycmF5KSxlLmJ1Y2tldEluc3RhbmNlSWQgaW4gdGhpcy5jb2xsaXNpb25DaXJjbGVBcnJheXMpe3ZhciB2PXRoaXMuY29sbGlzaW9uQ2lyY2xlQXJyYXlzW2UuYnVja2V0SW5zdGFuY2VJZF07ZS5wbGFjZW1lbnRJbnZQcm9qTWF0cml4PXYuaW52UHJvak1hdHJpeCxlLnBsYWNlbWVudFZpZXdwb3J0TWF0cml4PXYudmlld3BvcnRNYXRyaXgsZS5jb2xsaXNpb25DaXJjbGVBcnJheT12LmNpcmNsZXMsZGVsZXRlIHRoaXMuY29sbGlzaW9uQ2lyY2xlQXJyYXlzW2UuYnVja2V0SW5zdGFuY2VJZF19fSx3ZS5wcm90b3R5cGUuc3ltYm9sRmFkZUNoYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gMD09PXRoaXMuZmFkZUR1cmF0aW9uPzE6KHQtdGhpcy5jb21taXRUaW1lKS90aGlzLmZhZGVEdXJhdGlvbit0aGlzLnByZXZab29tQWRqdXN0bWVudH0sd2UucHJvdG90eXBlLnpvb21BZGp1c3RtZW50PWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLm1heCgwLCh0aGlzLnRyYW5zZm9ybS56b29tLXQpLzEuNSl9LHdlLnByb3RvdHlwZS5oYXNUcmFuc2l0aW9ucz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5zdGFsZXx8dC10aGlzLmxhc3RQbGFjZW1lbnRDaGFuZ2VUaW1lPHRoaXMuZmFkZUR1cmF0aW9ufSx3ZS5wcm90b3R5cGUuc3RpbGxSZWNlbnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLnpvb21BdExhc3RSZWNlbmN5Q2hlY2s9PT1lPzEtdGhpcy56b29tQWRqdXN0bWVudChlKToxO3JldHVybiB0aGlzLnpvb21BdExhc3RSZWNlbmN5Q2hlY2s9ZSx0aGlzLmNvbW1pdFRpbWUrdGhpcy5mYWRlRHVyYXRpb24qcj50fSx3ZS5wcm90b3R5cGUuc2V0U3RhbGU9ZnVuY3Rpb24oKXt0aGlzLnN0YWxlPSEwfTt2YXIga2U9TWF0aC5wb3coMiwyNSksQWU9TWF0aC5wb3coMiwyNCksTWU9TWF0aC5wb3coMiwxNyksU2U9TWF0aC5wb3coMiwxNiksRWU9TWF0aC5wb3coMiw5KSxMZT1NYXRoLnBvdygyLDgpLENlPU1hdGgucG93KDIsMSk7ZnVuY3Rpb24gUGUodCl7aWYoMD09PXQub3BhY2l0eSYmIXQucGxhY2VkKXJldHVybiAwO2lmKDE9PT10Lm9wYWNpdHkmJnQucGxhY2VkKXJldHVybiA0Mjk0OTY3Mjk1O3ZhciBlPXQucGxhY2VkPzE6MCxyPU1hdGguZmxvb3IoMTI3KnQub3BhY2l0eSk7cmV0dXJuIHIqa2UrZSpBZStyKk1lK2UqU2UrcipFZStlKkxlK3IqQ2UrZX12YXIgSWU9MCxPZT1mdW5jdGlvbih0KXt0aGlzLl9zb3J0QWNyb3NzVGlsZXM9InZpZXdwb3J0LXkiIT09dC5sYXlvdXQuZ2V0KCJzeW1ib2wtei1vcmRlciIpJiZ2b2lkIDAhPT10LmxheW91dC5nZXQoInN5bWJvbC1zb3J0LWtleSIpLmNvbnN0YW50T3IoMSksdGhpcy5fY3VycmVudFRpbGVJbmRleD0wLHRoaXMuX2N1cnJlbnRQYXJ0SW5kZXg9MCx0aGlzLl9zZWVuQ3Jvc3NUaWxlSURzPXt9LHRoaXMuX2J1Y2tldFBhcnRzPVtdfTtPZS5wcm90b3R5cGUuY29udGludWVQbGFjZW1lbnQ9ZnVuY3Rpb24odCxlLHIsbixpKXtmb3IodmFyIGE9dGhpcy5fYnVja2V0UGFydHM7dGhpcy5fY3VycmVudFRpbGVJbmRleDx0Lmxlbmd0aDspe3ZhciBvPXRbdGhpcy5fY3VycmVudFRpbGVJbmRleF07aWYoZS5nZXRCdWNrZXRQYXJ0cyhhLG4sbyx0aGlzLl9zb3J0QWNyb3NzVGlsZXMpLHRoaXMuX2N1cnJlbnRUaWxlSW5kZXgrKyxpKCkpcmV0dXJuITB9Zm9yKHRoaXMuX3NvcnRBY3Jvc3NUaWxlcyYmKHRoaXMuX3NvcnRBY3Jvc3NUaWxlcz0hMSxhLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuc29ydEtleS1lLnNvcnRLZXl9KSkpO3RoaXMuX2N1cnJlbnRQYXJ0SW5kZXg8YS5sZW5ndGg7KXt2YXIgcz1hW3RoaXMuX2N1cnJlbnRQYXJ0SW5kZXhdO2lmKGUucGxhY2VMYXllckJ1Y2tldFBhcnQocyx0aGlzLl9zZWVuQ3Jvc3NUaWxlSURzLHIpLHRoaXMuX2N1cnJlbnRQYXJ0SW5kZXgrKyxpKCkpcmV0dXJuITB9cmV0dXJuITF9O3ZhciB6ZT1mdW5jdGlvbih0LGUscixuLGksYSxvKXt0aGlzLnBsYWNlbWVudD1uZXcgd2UodCxpLGEsbyksdGhpcy5fY3VycmVudFBsYWNlbWVudEluZGV4PWUubGVuZ3RoLTEsdGhpcy5fZm9yY2VGdWxsUGxhY2VtZW50PXIsdGhpcy5fc2hvd0NvbGxpc2lvbkJveGVzPW4sdGhpcy5fZG9uZT0hMX07emUucHJvdG90eXBlLmlzRG9uZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9kb25lfSx6ZS5wcm90b3R5cGUuY29udGludWVQbGFjZW1lbnQ9ZnVuY3Rpb24oZSxyLG4pe2Zvcih2YXIgaT10aGlzLGE9dC5icm93c2VyLm5vdygpLG89ZnVuY3Rpb24oKXt2YXIgZT10LmJyb3dzZXIubm93KCktYTtyZXR1cm4haS5fZm9yY2VGdWxsUGxhY2VtZW50JiZlPjJ9O3RoaXMuX2N1cnJlbnRQbGFjZW1lbnRJbmRleD49MDspe3ZhciBzPXJbZVt0aGlzLl9jdXJyZW50UGxhY2VtZW50SW5kZXhdXSxsPXRoaXMucGxhY2VtZW50LmNvbGxpc2lvbkluZGV4LnRyYW5zZm9ybS56b29tO2lmKCJzeW1ib2wiPT09cy50eXBlJiYoIXMubWluem9vbXx8cy5taW56b29tPD1sKSYmKCFzLm1heHpvb218fHMubWF4em9vbT5sKSl7aWYodGhpcy5faW5Qcm9ncmVzc0xheWVyfHwodGhpcy5faW5Qcm9ncmVzc0xheWVyPW5ldyBPZShzKSksdGhpcy5faW5Qcm9ncmVzc0xheWVyLmNvbnRpbnVlUGxhY2VtZW50KG5bcy5zb3VyY2VdLHRoaXMucGxhY2VtZW50LHRoaXMuX3Nob3dDb2xsaXNpb25Cb3hlcyxzLG8pKXJldHVybjtkZWxldGUgdGhpcy5faW5Qcm9ncmVzc0xheWVyfXRoaXMuX2N1cnJlbnRQbGFjZW1lbnRJbmRleC0tfXRoaXMuX2RvbmU9ITB9LHplLnByb3RvdHlwZS5jb21taXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucGxhY2VtZW50LmNvbW1pdCh0KSx0aGlzLnBsYWNlbWVudH07dmFyIERlPTUxMi90LkVYVEVOVC8yLFJlPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLnRpbGVJRD10LHRoaXMuaW5kZXhlZFN5bWJvbEluc3RhbmNlcz17fSx0aGlzLmJ1Y2tldEluc3RhbmNlSWQ9cjtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIGk9ZS5nZXQobiksYT1pLmtleTt0aGlzLmluZGV4ZWRTeW1ib2xJbnN0YW5jZXNbYV18fCh0aGlzLmluZGV4ZWRTeW1ib2xJbnN0YW5jZXNbYV09W10pLHRoaXMuaW5kZXhlZFN5bWJvbEluc3RhbmNlc1thXS5wdXNoKHtjcm9zc1RpbGVJRDppLmNyb3NzVGlsZUlELGNvb3JkOnRoaXMuZ2V0U2NhbGVkQ29vcmRpbmF0ZXMoaSx0KX0pfX07UmUucHJvdG90eXBlLmdldFNjYWxlZENvb3JkaW5hdGVzPWZ1bmN0aW9uKGUscil7dmFyIG49ci5jYW5vbmljYWwuei10aGlzLnRpbGVJRC5jYW5vbmljYWwueixpPURlL01hdGgucG93KDIsbik7cmV0dXJue3g6TWF0aC5mbG9vcigoci5jYW5vbmljYWwueCp0LkVYVEVOVCtlLmFuY2hvclgpKmkpLHk6TWF0aC5mbG9vcigoci5jYW5vbmljYWwueSp0LkVYVEVOVCtlLmFuY2hvclkpKmkpfX0sUmUucHJvdG90eXBlLmZpbmRNYXRjaGVzPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG49dGhpcy50aWxlSUQuY2Fub25pY2FsLno8ZS5jYW5vbmljYWwuej8xOk1hdGgucG93KDIsdGhpcy50aWxlSUQuY2Fub25pY2FsLnotZS5jYW5vbmljYWwueiksaT0wO2k8dC5sZW5ndGg7aSsrKXt2YXIgYT10LmdldChpKTtpZighYS5jcm9zc1RpbGVJRCl7dmFyIG89dGhpcy5pbmRleGVkU3ltYm9sSW5zdGFuY2VzW2Eua2V5XTtpZihvKWZvcih2YXIgcz10aGlzLmdldFNjYWxlZENvb3JkaW5hdGVzKGEsZSksbD0wLGM9bztsPGMubGVuZ3RoO2wrPTEpe3ZhciB1PWNbbF07aWYoTWF0aC5hYnModS5jb29yZC54LXMueCk8PW4mJk1hdGguYWJzKHUuY29vcmQueS1zLnkpPD1uJiYhclt1LmNyb3NzVGlsZUlEXSl7clt1LmNyb3NzVGlsZUlEXT0hMCxhLmNyb3NzVGlsZUlEPXUuY3Jvc3NUaWxlSUQ7YnJlYWt9fX19fTt2YXIgRmU9ZnVuY3Rpb24oKXt0aGlzLm1heENyb3NzVGlsZUlEPTB9O0ZlLnByb3RvdHlwZS5nZW5lcmF0ZT1mdW5jdGlvbigpe3JldHVybisrdGhpcy5tYXhDcm9zc1RpbGVJRH07dmFyIEJlPWZ1bmN0aW9uKCl7dGhpcy5pbmRleGVzPXt9LHRoaXMudXNlZENyb3NzVGlsZUlEcz17fSx0aGlzLmxuZz0wfTtCZS5wcm90b3R5cGUuaGFuZGxlV3JhcEp1bXA9ZnVuY3Rpb24odCl7dmFyIGU9TWF0aC5yb3VuZCgodC10aGlzLmxuZykvMzYwKTtpZigwIT09ZSlmb3IodmFyIHIgaW4gdGhpcy5pbmRleGVzKXt2YXIgbj10aGlzLmluZGV4ZXNbcl0saT17fTtmb3IodmFyIGEgaW4gbil7dmFyIG89blthXTtvLnRpbGVJRD1vLnRpbGVJRC51bndyYXBUbyhvLnRpbGVJRC53cmFwK2UpLGlbby50aWxlSUQua2V5XT1vfXRoaXMuaW5kZXhlc1tyXT1pfXRoaXMubG5nPXR9LEJlLnByb3RvdHlwZS5hZGRCdWNrZXQ9ZnVuY3Rpb24odCxlLHIpe2lmKHRoaXMuaW5kZXhlc1t0Lm92ZXJzY2FsZWRaXSYmdGhpcy5pbmRleGVzW3Qub3ZlcnNjYWxlZFpdW3Qua2V5XSl7aWYodGhpcy5pbmRleGVzW3Qub3ZlcnNjYWxlZFpdW3Qua2V5XS5idWNrZXRJbnN0YW5jZUlkPT09ZS5idWNrZXRJbnN0YW5jZUlkKXJldHVybiExO3RoaXMucmVtb3ZlQnVja2V0Q3Jvc3NUaWxlSURzKHQub3ZlcnNjYWxlZFosdGhpcy5pbmRleGVzW3Qub3ZlcnNjYWxlZFpdW3Qua2V5XSl9Zm9yKHZhciBuPTA7bjxlLnN5bWJvbEluc3RhbmNlcy5sZW5ndGg7bisrKXtlLnN5bWJvbEluc3RhbmNlcy5nZXQobikuY3Jvc3NUaWxlSUQ9MH10aGlzLnVzZWRDcm9zc1RpbGVJRHNbdC5vdmVyc2NhbGVkWl18fCh0aGlzLnVzZWRDcm9zc1RpbGVJRHNbdC5vdmVyc2NhbGVkWl09e30pO3ZhciBpPXRoaXMudXNlZENyb3NzVGlsZUlEc1t0Lm92ZXJzY2FsZWRaXTtmb3IodmFyIGEgaW4gdGhpcy5pbmRleGVzKXt2YXIgbz10aGlzLmluZGV4ZXNbYV07aWYoTnVtYmVyKGEpPnQub3ZlcnNjYWxlZFopZm9yKHZhciBzIGluIG8pe3ZhciBsPW9bc107bC50aWxlSUQuaXNDaGlsZE9mKHQpJiZsLmZpbmRNYXRjaGVzKGUuc3ltYm9sSW5zdGFuY2VzLHQsaSl9ZWxzZXt2YXIgYz1vW3Quc2NhbGVkVG8oTnVtYmVyKGEpKS5rZXldO2MmJmMuZmluZE1hdGNoZXMoZS5zeW1ib2xJbnN0YW5jZXMsdCxpKX19Zm9yKHZhciB1PTA7dTxlLnN5bWJvbEluc3RhbmNlcy5sZW5ndGg7dSsrKXt2YXIgZj1lLnN5bWJvbEluc3RhbmNlcy5nZXQodSk7Zi5jcm9zc1RpbGVJRHx8KGYuY3Jvc3NUaWxlSUQ9ci5nZW5lcmF0ZSgpLGlbZi5jcm9zc1RpbGVJRF09ITApfXJldHVybiB2b2lkIDA9PT10aGlzLmluZGV4ZXNbdC5vdmVyc2NhbGVkWl0mJih0aGlzLmluZGV4ZXNbdC5vdmVyc2NhbGVkWl09e30pLHRoaXMuaW5kZXhlc1t0Lm92ZXJzY2FsZWRaXVt0LmtleV09bmV3IFJlKHQsZS5zeW1ib2xJbnN0YW5jZXMsZS5idWNrZXRJbnN0YW5jZUlkKSwhMH0sQmUucHJvdG90eXBlLnJlbW92ZUJ1Y2tldENyb3NzVGlsZUlEcz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgciBpbiBlLmluZGV4ZWRTeW1ib2xJbnN0YW5jZXMpZm9yKHZhciBuPTAsaT1lLmluZGV4ZWRTeW1ib2xJbnN0YW5jZXNbcl07bjxpLmxlbmd0aDtuKz0xKXt2YXIgYT1pW25dO2RlbGV0ZSB0aGlzLnVzZWRDcm9zc1RpbGVJRHNbdF1bYS5jcm9zc1RpbGVJRF19fSxCZS5wcm90b3R5cGUucmVtb3ZlU3RhbGVCdWNrZXRzPWZ1bmN0aW9uKHQpe3ZhciBlPSExO2Zvcih2YXIgciBpbiB0aGlzLmluZGV4ZXMpe3ZhciBuPXRoaXMuaW5kZXhlc1tyXTtmb3IodmFyIGkgaW4gbil0W25baV0uYnVja2V0SW5zdGFuY2VJZF18fCh0aGlzLnJlbW92ZUJ1Y2tldENyb3NzVGlsZUlEcyhyLG5baV0pLGRlbGV0ZSBuW2ldLGU9ITApfXJldHVybiBlfTt2YXIgTmU9ZnVuY3Rpb24oKXt0aGlzLmxheWVySW5kZXhlcz17fSx0aGlzLmNyb3NzVGlsZUlEcz1uZXcgRmUsdGhpcy5tYXhCdWNrZXRJbnN0YW5jZUlkPTAsdGhpcy5idWNrZXRzSW5DdXJyZW50UGxhY2VtZW50PXt9fTtOZS5wcm90b3R5cGUuYWRkTGF5ZXI9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMubGF5ZXJJbmRleGVzW3QuaWRdO3ZvaWQgMD09PW4mJihuPXRoaXMubGF5ZXJJbmRleGVzW3QuaWRdPW5ldyBCZSk7dmFyIGk9ITEsYT17fTtuLmhhbmRsZVdyYXBKdW1wKHIpO2Zvcih2YXIgbz0wLHM9ZTtvPHMubGVuZ3RoO28rPTEpe3ZhciBsPXNbb10sYz1sLmdldEJ1Y2tldCh0KTtjJiZ0LmlkPT09Yy5sYXllcklkc1swXSYmKGMuYnVja2V0SW5zdGFuY2VJZHx8KGMuYnVja2V0SW5zdGFuY2VJZD0rK3RoaXMubWF4QnVja2V0SW5zdGFuY2VJZCksbi5hZGRCdWNrZXQobC50aWxlSUQsYyx0aGlzLmNyb3NzVGlsZUlEcykmJihpPSEwKSxhW2MuYnVja2V0SW5zdGFuY2VJZF09ITApfXJldHVybiBuLnJlbW92ZVN0YWxlQnVja2V0cyhhKSYmKGk9ITApLGl9LE5lLnByb3RvdHlwZS5wcnVuZVVudXNlZExheWVycz1mdW5jdGlvbih0KXt2YXIgZT17fTtmb3IodmFyIHIgaW4gdC5mb3JFYWNoKChmdW5jdGlvbih0KXtlW3RdPSEwfSkpLHRoaXMubGF5ZXJJbmRleGVzKWVbcl18fGRlbGV0ZSB0aGlzLmxheWVySW5kZXhlc1tyXX07dmFyIGplPWZ1bmN0aW9uKGUscil7cmV0dXJuIHQuZW1pdFZhbGlkYXRpb25FcnJvcnMoZSxyJiZyLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuInNvdXJjZS5jYW52YXMiIT09dC5pZGVudGlmaWVyfSkpKX0sVWU9dC5waWNrKFV0LFsiYWRkTGF5ZXIiLCJyZW1vdmVMYXllciIsInNldFBhaW50UHJvcGVydHkiLCJzZXRMYXlvdXRQcm9wZXJ0eSIsInNldEZpbHRlciIsImFkZFNvdXJjZSIsInJlbW92ZVNvdXJjZSIsInNldExheWVyWm9vbVJhbmdlIiwic2V0TGlnaHQiLCJzZXRUcmFuc2l0aW9uIiwic2V0R2VvSlNPTlNvdXJjZURhdGEiXSksVmU9dC5waWNrKFV0LFsic2V0Q2VudGVyIiwic2V0Wm9vbSIsInNldEJlYXJpbmciLCJzZXRQaXRjaCJdKSxIZT1mdW5jdGlvbigpe3ZhciBlPXt9LHI9dC5zdHlsZVNwZWMuJHZlcnNpb247Zm9yKHZhciBuIGluIHQuc3R5bGVTcGVjLiRyb290KXt2YXIgaT10LnN0eWxlU3BlYy4kcm9vdFtuXTtpZihpLnJlcXVpcmVkKXt2YXIgYT1udWxsO251bGwhPShhPSJ2ZXJzaW9uIj09PW4/cjoiYXJyYXkiPT09aS50eXBlP1tdOnt9KSYmKGVbbl09YSl9fXJldHVybiBlfSgpLHFlPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHIobixpKXt2YXIgYT10aGlzO3ZvaWQgMD09PWkmJihpPXt9KSxlLmNhbGwodGhpcyksdGhpcy5tYXA9bix0aGlzLmRpc3BhdGNoZXI9bmV3IGsoQnQoKSx0aGlzKSx0aGlzLmltYWdlTWFuYWdlcj1uZXcgaCx0aGlzLmltYWdlTWFuYWdlci5zZXRFdmVudGVkUGFyZW50KHRoaXMpLHRoaXMuZ2x5cGhNYW5hZ2VyPW5ldyB4KG4uX3JlcXVlc3RNYW5hZ2VyLGkubG9jYWxJZGVvZ3JhcGhGb250RmFtaWx5KSx0aGlzLmxpbmVBdGxhcz1uZXcgVCgyNTYsNTEyKSx0aGlzLmNyb3NzVGlsZVN5bWJvbEluZGV4PW5ldyBOZSx0aGlzLl9sYXllcnM9e30sdGhpcy5fc2VyaWFsaXplZExheWVycz17fSx0aGlzLl9vcmRlcj1bXSx0aGlzLnNvdXJjZUNhY2hlcz17fSx0aGlzLnpvb21IaXN0b3J5PW5ldyB0Llpvb21IaXN0b3J5LHRoaXMuX2xvYWRlZD0hMSx0aGlzLl9hdmFpbGFibGVJbWFnZXM9W10sdGhpcy5fcmVzZXRVcGRhdGVzKCksdGhpcy5kaXNwYXRjaGVyLmJyb2FkY2FzdCgic2V0UmVmZXJyZXIiLHQuZ2V0UmVmZXJyZXIoKSk7dmFyIG89dGhpczt0aGlzLl9ydGxUZXh0UGx1Z2luQ2FsbGJhY2s9ci5yZWdpc3RlckZvclBsdWdpblN0YXRlQ2hhbmdlKChmdW5jdGlvbihlKXt2YXIgcj17cGx1Z2luU3RhdHVzOmUucGx1Z2luU3RhdHVzLHBsdWdpblVSTDplLnBsdWdpblVSTH07by5kaXNwYXRjaGVyLmJyb2FkY2FzdCgic3luY1JUTFBsdWdpblN0YXRlIixyLChmdW5jdGlvbihlLHIpe2lmKCh0LnRyaWdnZXJQbHVnaW5Db21wbGV0aW9uRXZlbnQoZSkscikmJnIuZXZlcnkoKGZ1bmN0aW9uKHQpe3JldHVybiB0fSkpKWZvcih2YXIgbiBpbiBvLnNvdXJjZUNhY2hlcylvLnNvdXJjZUNhY2hlc1tuXS5yZWxvYWQoKX0pKX0pKSx0aGlzLm9uKCJkYXRhIiwoZnVuY3Rpb24odCl7aWYoInNvdXJjZSI9PT10LmRhdGFUeXBlJiYibWV0YWRhdGEiPT09dC5zb3VyY2VEYXRhVHlwZSl7dmFyIGU9YS5zb3VyY2VDYWNoZXNbdC5zb3VyY2VJZF07aWYoZSl7dmFyIHI9ZS5nZXRTb3VyY2UoKTtpZihyJiZyLnZlY3RvckxheWVySWRzKWZvcih2YXIgbiBpbiBhLl9sYXllcnMpe3ZhciBpPWEuX2xheWVyc1tuXTtpLnNvdXJjZT09PXIuaWQmJmEuX3ZhbGlkYXRlTGF5ZXIoaSl9fX19KSl9cmV0dXJuIGUmJihyLl9fcHJvdG9fXz1lKSxyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlKSxyLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1yLHIucHJvdG90eXBlLmxvYWRVUkw9ZnVuY3Rpb24oZSxyKXt2YXIgbj10aGlzO3ZvaWQgMD09PXImJihyPXt9KSx0aGlzLmZpcmUobmV3IHQuRXZlbnQoImRhdGFsb2FkaW5nIix7ZGF0YVR5cGU6InN0eWxlIn0pKTt2YXIgaT0iYm9vbGVhbiI9PXR5cGVvZiByLnZhbGlkYXRlP3IudmFsaWRhdGU6IXQuaXNNYXBib3hVUkwoZSk7ZT10aGlzLm1hcC5fcmVxdWVzdE1hbmFnZXIubm9ybWFsaXplU3R5bGVVUkwoZSxyLmFjY2Vzc1Rva2VuKTt2YXIgYT10aGlzLm1hcC5fcmVxdWVzdE1hbmFnZXIudHJhbnNmb3JtUmVxdWVzdChlLHQuUmVzb3VyY2VUeXBlLlN0eWxlKTt0aGlzLl9yZXF1ZXN0PXQuZ2V0SlNPTihhLChmdW5jdGlvbihlLHIpe24uX3JlcXVlc3Q9bnVsbCxlP24uZmlyZShuZXcgdC5FcnJvckV2ZW50KGUpKTpyJiZuLl9sb2FkKHIsaSl9KSl9LHIucHJvdG90eXBlLmxvYWRKU09OPWZ1bmN0aW9uKGUscil7dmFyIG49dGhpczt2b2lkIDA9PT1yJiYocj17fSksdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJkYXRhbG9hZGluZyIse2RhdGFUeXBlOiJzdHlsZSJ9KSksdGhpcy5fcmVxdWVzdD10LmJyb3dzZXIuZnJhbWUoKGZ1bmN0aW9uKCl7bi5fcmVxdWVzdD1udWxsLG4uX2xvYWQoZSwhMSE9PXIudmFsaWRhdGUpfSkpfSxyLnByb3RvdHlwZS5sb2FkRW1wdHk9ZnVuY3Rpb24oKXt0aGlzLmZpcmUobmV3IHQuRXZlbnQoImRhdGFsb2FkaW5nIix7ZGF0YVR5cGU6InN0eWxlIn0pKSx0aGlzLl9sb2FkKEhlLCExKX0sci5wcm90b3R5cGUuX2xvYWQ9ZnVuY3Rpb24oZSxyKXtpZighcnx8IWplKHRoaXMsdC52YWxpZGF0ZVN0eWxlKGUpKSl7Zm9yKHZhciBuIGluIHRoaXMuX2xvYWRlZD0hMCx0aGlzLnN0eWxlc2hlZXQ9ZSxlLnNvdXJjZXMpdGhpcy5hZGRTb3VyY2UobixlLnNvdXJjZXNbbl0se3ZhbGlkYXRlOiExfSk7ZS5zcHJpdGU/dGhpcy5fbG9hZFNwcml0ZShlLnNwcml0ZSk6dGhpcy5pbWFnZU1hbmFnZXIuc2V0TG9hZGVkKCEwKSx0aGlzLmdseXBoTWFuYWdlci5zZXRVUkwoZS5nbHlwaHMpO3ZhciBpPWp0KHRoaXMuc3R5bGVzaGVldC5sYXllcnMpO3RoaXMuX29yZGVyPWkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZH0pKSx0aGlzLl9sYXllcnM9e30sdGhpcy5fc2VyaWFsaXplZExheWVycz17fTtmb3IodmFyIGE9MCxvPWk7YTxvLmxlbmd0aDthKz0xKXt2YXIgcz1vW2FdOyhzPXQuY3JlYXRlU3R5bGVMYXllcihzKSkuc2V0RXZlbnRlZFBhcmVudCh0aGlzLHtsYXllcjp7aWQ6cy5pZH19KSx0aGlzLl9sYXllcnNbcy5pZF09cyx0aGlzLl9zZXJpYWxpemVkTGF5ZXJzW3MuaWRdPXMuc2VyaWFsaXplKCl9dGhpcy5kaXNwYXRjaGVyLmJyb2FkY2FzdCgic2V0TGF5ZXJzIix0aGlzLl9zZXJpYWxpemVMYXllcnModGhpcy5fb3JkZXIpKSx0aGlzLmxpZ2h0PW5ldyB3KHRoaXMuc3R5bGVzaGVldC5saWdodCksdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJkYXRhIix7ZGF0YVR5cGU6InN0eWxlIn0pKSx0aGlzLmZpcmUobmV3IHQuRXZlbnQoInN0eWxlLmxvYWQiKSl9fSxyLnByb3RvdHlwZS5fbG9hZFNwcml0ZT1mdW5jdGlvbihlKXt2YXIgcj10aGlzO3RoaXMuX3Nwcml0ZVJlcXVlc3Q9ZnVuY3Rpb24oZSxyLG4pe3ZhciBpLGEsbyxzPXQuYnJvd3Nlci5kZXZpY2VQaXhlbFJhdGlvPjE/IkAyeCI6IiIsbD10LmdldEpTT04oci50cmFuc2Zvcm1SZXF1ZXN0KHIubm9ybWFsaXplU3ByaXRlVVJMKGUscywiLmpzb24iKSx0LlJlc291cmNlVHlwZS5TcHJpdGVKU09OKSwoZnVuY3Rpb24odCxlKXtsPW51bGwsb3x8KG89dCxpPWUsdSgpKX0pKSxjPXQuZ2V0SW1hZ2Uoci50cmFuc2Zvcm1SZXF1ZXN0KHIubm9ybWFsaXplU3ByaXRlVVJMKGUscywiLnBuZyIpLHQuUmVzb3VyY2VUeXBlLlNwcml0ZUltYWdlKSwoZnVuY3Rpb24odCxlKXtjPW51bGwsb3x8KG89dCxhPWUsdSgpKX0pKTtmdW5jdGlvbiB1KCl7aWYobyluKG8pO2Vsc2UgaWYoaSYmYSl7dmFyIGU9dC5icm93c2VyLmdldEltYWdlRGF0YShhKSxyPXt9O2Zvcih2YXIgcyBpbiBpKXt2YXIgbD1pW3NdLGM9bC53aWR0aCx1PWwuaGVpZ2h0LGY9bC54LGg9bC55LHA9bC5zZGYsZD1sLnBpeGVsUmF0aW8sbT1sLnN0cmV0Y2hYLGc9bC5zdHJldGNoWSx2PWwuY29udGVudCx5PW5ldyB0LlJHQkFJbWFnZSh7d2lkdGg6YyxoZWlnaHQ6dX0pO3QuUkdCQUltYWdlLmNvcHkoZSx5LHt4OmYseTpofSx7eDowLHk6MH0se3dpZHRoOmMsaGVpZ2h0OnV9KSxyW3NdPXtkYXRhOnkscGl4ZWxSYXRpbzpkLHNkZjpwLHN0cmV0Y2hYOm0sc3RyZXRjaFk6Zyxjb250ZW50OnZ9fW4obnVsbCxyKX19cmV0dXJue2NhbmNlbDpmdW5jdGlvbigpe2wmJihsLmNhbmNlbCgpLGw9bnVsbCksYyYmKGMuY2FuY2VsKCksYz1udWxsKX19fShlLHRoaXMubWFwLl9yZXF1ZXN0TWFuYWdlciwoZnVuY3Rpb24oZSxuKXtpZihyLl9zcHJpdGVSZXF1ZXN0PW51bGwsZSlyLmZpcmUobmV3IHQuRXJyb3JFdmVudChlKSk7ZWxzZSBpZihuKWZvcih2YXIgaSBpbiBuKXIuaW1hZ2VNYW5hZ2VyLmFkZEltYWdlKGksbltpXSk7ci5pbWFnZU1hbmFnZXIuc2V0TG9hZGVkKCEwKSxyLl9hdmFpbGFibGVJbWFnZXM9ci5pbWFnZU1hbmFnZXIubGlzdEltYWdlcygpLHIuZGlzcGF0Y2hlci5icm9hZGNhc3QoInNldEltYWdlcyIsci5fYXZhaWxhYmxlSW1hZ2VzKSxyLmZpcmUobmV3IHQuRXZlbnQoImRhdGEiLHtkYXRhVHlwZToic3R5bGUifSkpfSkpfSxyLnByb3RvdHlwZS5fdmFsaWRhdGVMYXllcj1mdW5jdGlvbihlKXt2YXIgcj10aGlzLnNvdXJjZUNhY2hlc1tlLnNvdXJjZV07aWYocil7dmFyIG49ZS5zb3VyY2VMYXllcjtpZihuKXt2YXIgaT1yLmdldFNvdXJjZSgpOygiZ2VvanNvbiI9PT1pLnR5cGV8fGkudmVjdG9yTGF5ZXJJZHMmJi0xPT09aS52ZWN0b3JMYXllcklkcy5pbmRleE9mKG4pKSYmdGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCdTb3VyY2UgbGF5ZXIgIicrbisnIiBkb2VzIG5vdCBleGlzdCBvbiBzb3VyY2UgIicraS5pZCsnIiBhcyBzcGVjaWZpZWQgYnkgc3R5bGUgbGF5ZXIgIicrZS5pZCsnIicpKSl9fX0sci5wcm90b3R5cGUubG9hZGVkPWZ1bmN0aW9uKCl7aWYoIXRoaXMuX2xvYWRlZClyZXR1cm4hMTtpZihPYmplY3Qua2V5cyh0aGlzLl91cGRhdGVkU291cmNlcykubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgdCBpbiB0aGlzLnNvdXJjZUNhY2hlcylpZighdGhpcy5zb3VyY2VDYWNoZXNbdF0ubG9hZGVkKCkpcmV0dXJuITE7cmV0dXJuISF0aGlzLmltYWdlTWFuYWdlci5pc0xvYWRlZCgpfSxyLnByb3RvdHlwZS5fc2VyaWFsaXplTGF5ZXJzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxyPTAsbj10O3I8bi5sZW5ndGg7cis9MSl7dmFyIGk9bltyXSxhPXRoaXMuX2xheWVyc1tpXTsiY3VzdG9tIiE9PWEudHlwZSYmZS5wdXNoKGEuc2VyaWFsaXplKCkpfXJldHVybiBlfSxyLnByb3RvdHlwZS5oYXNUcmFuc2l0aW9ucz1mdW5jdGlvbigpe2lmKHRoaXMubGlnaHQmJnRoaXMubGlnaHQuaGFzVHJhbnNpdGlvbigpKXJldHVybiEwO2Zvcih2YXIgdCBpbiB0aGlzLnNvdXJjZUNhY2hlcylpZih0aGlzLnNvdXJjZUNhY2hlc1t0XS5oYXNUcmFuc2l0aW9uKCkpcmV0dXJuITA7Zm9yKHZhciBlIGluIHRoaXMuX2xheWVycylpZih0aGlzLl9sYXllcnNbZV0uaGFzVHJhbnNpdGlvbigpKXJldHVybiEwO3JldHVybiExfSxyLnByb3RvdHlwZS5fY2hlY2tMb2FkZWQ9ZnVuY3Rpb24oKXtpZighdGhpcy5fbG9hZGVkKXRocm93IG5ldyBFcnJvcigiU3R5bGUgaXMgbm90IGRvbmUgbG9hZGluZyIpfSxyLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZSl7aWYodGhpcy5fbG9hZGVkKXt2YXIgcj10aGlzLl9jaGFuZ2VkO2lmKHRoaXMuX2NoYW5nZWQpe3ZhciBuPU9iamVjdC5rZXlzKHRoaXMuX3VwZGF0ZWRMYXllcnMpLGk9T2JqZWN0LmtleXModGhpcy5fcmVtb3ZlZExheWVycyk7Zm9yKHZhciBhIGluKG4ubGVuZ3RofHxpLmxlbmd0aCkmJnRoaXMuX3VwZGF0ZVdvcmtlckxheWVycyhuLGkpLHRoaXMuX3VwZGF0ZWRTb3VyY2VzKXt2YXIgbz10aGlzLl91cGRhdGVkU291cmNlc1thXTsicmVsb2FkIj09PW8/dGhpcy5fcmVsb2FkU291cmNlKGEpOiJjbGVhciI9PT1vJiZ0aGlzLl9jbGVhclNvdXJjZShhKX1mb3IodmFyIHMgaW4gdGhpcy5fdXBkYXRlVGlsZXNGb3JDaGFuZ2VkSW1hZ2VzKCksdGhpcy5fdXBkYXRlZFBhaW50UHJvcHMpdGhpcy5fbGF5ZXJzW3NdLnVwZGF0ZVRyYW5zaXRpb25zKGUpO3RoaXMubGlnaHQudXBkYXRlVHJhbnNpdGlvbnMoZSksdGhpcy5fcmVzZXRVcGRhdGVzKCl9Zm9yKHZhciBsIGluIHRoaXMuc291cmNlQ2FjaGVzKXRoaXMuc291cmNlQ2FjaGVzW2xdLnVzZWQ9ITE7Zm9yKHZhciBjPTAsdT10aGlzLl9vcmRlcjtjPHUubGVuZ3RoO2MrPTEpe3ZhciBmPXVbY10saD10aGlzLl9sYXllcnNbZl07aC5yZWNhbGN1bGF0ZShlLHRoaXMuX2F2YWlsYWJsZUltYWdlcyksIWguaXNIaWRkZW4oZS56b29tKSYmaC5zb3VyY2UmJih0aGlzLnNvdXJjZUNhY2hlc1toLnNvdXJjZV0udXNlZD0hMCl9dGhpcy5saWdodC5yZWNhbGN1bGF0ZShlKSx0aGlzLno9ZS56b29tLHImJnRoaXMuZmlyZShuZXcgdC5FdmVudCgiZGF0YSIse2RhdGFUeXBlOiJzdHlsZSJ9KSl9fSxyLnByb3RvdHlwZS5fdXBkYXRlVGlsZXNGb3JDaGFuZ2VkSW1hZ2VzPWZ1bmN0aW9uKCl7dmFyIHQ9T2JqZWN0LmtleXModGhpcy5fY2hhbmdlZEltYWdlcyk7aWYodC5sZW5ndGgpe2Zvcih2YXIgZSBpbiB0aGlzLnNvdXJjZUNhY2hlcyl0aGlzLnNvdXJjZUNhY2hlc1tlXS5yZWxvYWRUaWxlc0ZvckRlcGVuZGVuY2llcyhbImljb25zIiwicGF0dGVybnMiXSx0KTt0aGlzLl9jaGFuZ2VkSW1hZ2VzPXt9fX0sci5wcm90b3R5cGUuX3VwZGF0ZVdvcmtlckxheWVycz1mdW5jdGlvbih0LGUpe3RoaXMuZGlzcGF0Y2hlci5icm9hZGNhc3QoInVwZGF0ZUxheWVycyIse2xheWVyczp0aGlzLl9zZXJpYWxpemVMYXllcnModCkscmVtb3ZlZElkczplfSl9LHIucHJvdG90eXBlLl9yZXNldFVwZGF0ZXM9ZnVuY3Rpb24oKXt0aGlzLl9jaGFuZ2VkPSExLHRoaXMuX3VwZGF0ZWRMYXllcnM9e30sdGhpcy5fcmVtb3ZlZExheWVycz17fSx0aGlzLl91cGRhdGVkU291cmNlcz17fSx0aGlzLl91cGRhdGVkUGFpbnRQcm9wcz17fSx0aGlzLl9jaGFuZ2VkSW1hZ2VzPXt9fSxyLnByb3RvdHlwZS5zZXRTdGF0ZT1mdW5jdGlvbihlKXt2YXIgcj10aGlzO2lmKHRoaXMuX2NoZWNrTG9hZGVkKCksamUodGhpcyx0LnZhbGlkYXRlU3R5bGUoZSkpKXJldHVybiExOyhlPXQuY2xvbmUkMShlKSkubGF5ZXJzPWp0KGUubGF5ZXJzKTt2YXIgbj1adCh0aGlzLnNlcmlhbGl6ZSgpLGUpLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuISh0LmNvbW1hbmQgaW4gVmUpfSkpO2lmKDA9PT1uLmxlbmd0aClyZXR1cm4hMTt2YXIgaT1uLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuISh0LmNvbW1hbmQgaW4gVWUpfSkpO2lmKGkubGVuZ3RoPjApdGhyb3cgbmV3IEVycm9yKCJVbmltcGxlbWVudGVkOiAiK2kubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5jb21tYW5kfSkpLmpvaW4oIiwgIikrIi4iKTtyZXR1cm4gbi5mb3JFYWNoKChmdW5jdGlvbih0KXsic2V0VHJhbnNpdGlvbiIhPT10LmNvbW1hbmQmJnJbdC5jb21tYW5kXS5hcHBseShyLHQuYXJncyl9KSksdGhpcy5zdHlsZXNoZWV0PWUsITB9LHIucHJvdG90eXBlLmFkZEltYWdlPWZ1bmN0aW9uKGUscil7aWYodGhpcy5nZXRJbWFnZShlKSlyZXR1cm4gdGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCJBbiBpbWFnZSB3aXRoIHRoaXMgbmFtZSBhbHJlYWR5IGV4aXN0cy4iKSkpO3RoaXMuaW1hZ2VNYW5hZ2VyLmFkZEltYWdlKGUsciksdGhpcy5fYXZhaWxhYmxlSW1hZ2VzPXRoaXMuaW1hZ2VNYW5hZ2VyLmxpc3RJbWFnZXMoKSx0aGlzLl9jaGFuZ2VkSW1hZ2VzW2VdPSEwLHRoaXMuX2NoYW5nZWQ9ITAsdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJkYXRhIix7ZGF0YVR5cGU6InN0eWxlIn0pKX0sci5wcm90b3R5cGUudXBkYXRlSW1hZ2U9ZnVuY3Rpb24odCxlKXt0aGlzLmltYWdlTWFuYWdlci51cGRhdGVJbWFnZSh0LGUpfSxyLnByb3RvdHlwZS5nZXRJbWFnZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pbWFnZU1hbmFnZXIuZ2V0SW1hZ2UodCl9LHIucHJvdG90eXBlLnJlbW92ZUltYWdlPWZ1bmN0aW9uKGUpe2lmKCF0aGlzLmdldEltYWdlKGUpKXJldHVybiB0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoIk5vIGltYWdlIHdpdGggdGhpcyBuYW1lIGV4aXN0cy4iKSkpO3RoaXMuaW1hZ2VNYW5hZ2VyLnJlbW92ZUltYWdlKGUpLHRoaXMuX2F2YWlsYWJsZUltYWdlcz10aGlzLmltYWdlTWFuYWdlci5saXN0SW1hZ2VzKCksdGhpcy5fY2hhbmdlZEltYWdlc1tlXT0hMCx0aGlzLl9jaGFuZ2VkPSEwLHRoaXMuZmlyZShuZXcgdC5FdmVudCgiZGF0YSIse2RhdGFUeXBlOiJzdHlsZSJ9KSl9LHIucHJvdG90eXBlLmxpc3RJbWFnZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2hlY2tMb2FkZWQoKSx0aGlzLmltYWdlTWFuYWdlci5saXN0SW1hZ2VzKCl9LHIucHJvdG90eXBlLmFkZFNvdXJjZT1mdW5jdGlvbihlLHIsbil7dmFyIGk9dGhpcztpZih2b2lkIDA9PT1uJiYobj17fSksdGhpcy5fY2hlY2tMb2FkZWQoKSx2b2lkIDAhPT10aGlzLnNvdXJjZUNhY2hlc1tlXSl0aHJvdyBuZXcgRXJyb3IoIlRoZXJlIGlzIGFscmVhZHkgYSBzb3VyY2Ugd2l0aCB0aGlzIElEIik7aWYoIXIudHlwZSl0aHJvdyBuZXcgRXJyb3IoIlRoZSB0eXBlIHByb3BlcnR5IG11c3QgYmUgZGVmaW5lZCwgYnV0IHRoZSBvbmx5IHRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyB3ZXJlIGdpdmVuOiAiK09iamVjdC5rZXlzKHIpLmpvaW4oIiwgIikrIi4iKTtpZighKFsidmVjdG9yIiwicmFzdGVyIiwiZ2VvanNvbiIsInZpZGVvIiwiaW1hZ2UiXS5pbmRleE9mKHIudHlwZSk+PTApfHwhdGhpcy5fdmFsaWRhdGUodC52YWxpZGF0ZVN0eWxlLnNvdXJjZSwic291cmNlcy4iK2UscixudWxsLG4pKXt0aGlzLm1hcCYmdGhpcy5tYXAuX2NvbGxlY3RSZXNvdXJjZVRpbWluZyYmKHIuY29sbGVjdFJlc291cmNlVGltaW5nPSEwKTt2YXIgYT10aGlzLnNvdXJjZUNhY2hlc1tlXT1uZXcgQ3QoZSxyLHRoaXMuZGlzcGF0Y2hlcik7YS5zdHlsZT10aGlzLGEuc2V0RXZlbnRlZFBhcmVudCh0aGlzLChmdW5jdGlvbigpe3JldHVybntpc1NvdXJjZUxvYWRlZDppLmxvYWRlZCgpLHNvdXJjZTphLnNlcmlhbGl6ZSgpLHNvdXJjZUlkOmV9fSkpLGEub25BZGQodGhpcy5tYXApLHRoaXMuX2NoYW5nZWQ9ITB9fSxyLnByb3RvdHlwZS5yZW1vdmVTb3VyY2U9ZnVuY3Rpb24oZSl7aWYodGhpcy5fY2hlY2tMb2FkZWQoKSx2b2lkIDA9PT10aGlzLnNvdXJjZUNhY2hlc1tlXSl0aHJvdyBuZXcgRXJyb3IoIlRoZXJlIGlzIG5vIHNvdXJjZSB3aXRoIHRoaXMgSUQiKTtmb3IodmFyIHIgaW4gdGhpcy5fbGF5ZXJzKWlmKHRoaXMuX2xheWVyc1tyXS5zb3VyY2U9PT1lKXJldHVybiB0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoJ1NvdXJjZSAiJytlKyciIGNhbm5vdCBiZSByZW1vdmVkIHdoaWxlIGxheWVyICInK3IrJyIgaXMgdXNpbmcgaXQuJykpKTt2YXIgbj10aGlzLnNvdXJjZUNhY2hlc1tlXTtkZWxldGUgdGhpcy5zb3VyY2VDYWNoZXNbZV0sZGVsZXRlIHRoaXMuX3VwZGF0ZWRTb3VyY2VzW2VdLG4uZmlyZShuZXcgdC5FdmVudCgiZGF0YSIse3NvdXJjZURhdGFUeXBlOiJtZXRhZGF0YSIsZGF0YVR5cGU6InNvdXJjZSIsc291cmNlSWQ6ZX0pKSxuLnNldEV2ZW50ZWRQYXJlbnQobnVsbCksbi5jbGVhclRpbGVzKCksbi5vblJlbW92ZSYmbi5vblJlbW92ZSh0aGlzLm1hcCksdGhpcy5fY2hhbmdlZD0hMH0sci5wcm90b3R5cGUuc2V0R2VvSlNPTlNvdXJjZURhdGE9ZnVuY3Rpb24odCxlKXt0aGlzLl9jaGVja0xvYWRlZCgpLHRoaXMuc291cmNlQ2FjaGVzW3RdLmdldFNvdXJjZSgpLnNldERhdGEoZSksdGhpcy5fY2hhbmdlZD0hMH0sci5wcm90b3R5cGUuZ2V0U291cmNlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNvdXJjZUNhY2hlc1t0XSYmdGhpcy5zb3VyY2VDYWNoZXNbdF0uZ2V0U291cmNlKCl9LHIucHJvdG90eXBlLmFkZExheWVyPWZ1bmN0aW9uKGUscixuKXt2b2lkIDA9PT1uJiYobj17fSksdGhpcy5fY2hlY2tMb2FkZWQoKTt2YXIgaT1lLmlkO2lmKHRoaXMuZ2V0TGF5ZXIoaSkpdGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCdMYXllciB3aXRoIGlkICInK2krJyIgYWxyZWFkeSBleGlzdHMgb24gdGhpcyBtYXAnKSkpO2Vsc2V7dmFyIGE7aWYoImN1c3RvbSI9PT1lLnR5cGUpe2lmKGplKHRoaXMsdC52YWxpZGF0ZUN1c3RvbVN0eWxlTGF5ZXIoZSkpKXJldHVybjthPXQuY3JlYXRlU3R5bGVMYXllcihlKX1lbHNle2lmKCJvYmplY3QiPT10eXBlb2YgZS5zb3VyY2UmJih0aGlzLmFkZFNvdXJjZShpLGUuc291cmNlKSxlPXQuY2xvbmUkMShlKSxlPXQuZXh0ZW5kKGUse3NvdXJjZTppfSkpLHRoaXMuX3ZhbGlkYXRlKHQudmFsaWRhdGVTdHlsZS5sYXllciwibGF5ZXJzLiIraSxlLHthcnJheUluZGV4Oi0xfSxuKSlyZXR1cm47YT10LmNyZWF0ZVN0eWxlTGF5ZXIoZSksdGhpcy5fdmFsaWRhdGVMYXllcihhKSxhLnNldEV2ZW50ZWRQYXJlbnQodGhpcyx7bGF5ZXI6e2lkOml9fSksdGhpcy5fc2VyaWFsaXplZExheWVyc1thLmlkXT1hLnNlcmlhbGl6ZSgpfXZhciBvPXI/dGhpcy5fb3JkZXIuaW5kZXhPZihyKTp0aGlzLl9vcmRlci5sZW5ndGg7aWYociYmLTE9PT1vKXRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcignTGF5ZXIgd2l0aCBpZCAiJytyKyciIGRvZXMgbm90IGV4aXN0IG9uIHRoaXMgbWFwLicpKSk7ZWxzZXtpZih0aGlzLl9vcmRlci5zcGxpY2UobywwLGkpLHRoaXMuX2xheWVyT3JkZXJDaGFuZ2VkPSEwLHRoaXMuX2xheWVyc1tpXT1hLHRoaXMuX3JlbW92ZWRMYXllcnNbaV0mJmEuc291cmNlJiYiY3VzdG9tIiE9PWEudHlwZSl7dmFyIHM9dGhpcy5fcmVtb3ZlZExheWVyc1tpXTtkZWxldGUgdGhpcy5fcmVtb3ZlZExheWVyc1tpXSxzLnR5cGUhPT1hLnR5cGU/dGhpcy5fdXBkYXRlZFNvdXJjZXNbYS5zb3VyY2VdPSJjbGVhciI6KHRoaXMuX3VwZGF0ZWRTb3VyY2VzW2Euc291cmNlXT0icmVsb2FkIix0aGlzLnNvdXJjZUNhY2hlc1thLnNvdXJjZV0ucGF1c2UoKSl9dGhpcy5fdXBkYXRlTGF5ZXIoYSksYS5vbkFkZCYmYS5vbkFkZCh0aGlzLm1hcCl9fX0sci5wcm90b3R5cGUubW92ZUxheWVyPWZ1bmN0aW9uKGUscil7aWYodGhpcy5fY2hlY2tMb2FkZWQoKSx0aGlzLl9jaGFuZ2VkPSEwLHRoaXMuX2xheWVyc1tlXSl7aWYoZSE9PXIpe3ZhciBuPXRoaXMuX29yZGVyLmluZGV4T2YoZSk7dGhpcy5fb3JkZXIuc3BsaWNlKG4sMSk7dmFyIGk9cj90aGlzLl9vcmRlci5pbmRleE9mKHIpOnRoaXMuX29yZGVyLmxlbmd0aDtyJiYtMT09PWk/dGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCdMYXllciB3aXRoIGlkICInK3IrJyIgZG9lcyBub3QgZXhpc3Qgb24gdGhpcyBtYXAuJykpKToodGhpcy5fb3JkZXIuc3BsaWNlKGksMCxlKSx0aGlzLl9sYXllck9yZGVyQ2hhbmdlZD0hMCl9fWVsc2UgdGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCJUaGUgbGF5ZXIgJyIrZSsiJyBkb2VzIG5vdCBleGlzdCBpbiB0aGUgbWFwJ3Mgc3R5bGUgYW5kIGNhbm5vdCBiZSBtb3ZlZC4iKSkpfSxyLnByb3RvdHlwZS5yZW1vdmVMYXllcj1mdW5jdGlvbihlKXt0aGlzLl9jaGVja0xvYWRlZCgpO3ZhciByPXRoaXMuX2xheWVyc1tlXTtpZihyKXtyLnNldEV2ZW50ZWRQYXJlbnQobnVsbCk7dmFyIG49dGhpcy5fb3JkZXIuaW5kZXhPZihlKTt0aGlzLl9vcmRlci5zcGxpY2UobiwxKSx0aGlzLl9sYXllck9yZGVyQ2hhbmdlZD0hMCx0aGlzLl9jaGFuZ2VkPSEwLHRoaXMuX3JlbW92ZWRMYXllcnNbZV09cixkZWxldGUgdGhpcy5fbGF5ZXJzW2VdLGRlbGV0ZSB0aGlzLl9zZXJpYWxpemVkTGF5ZXJzW2VdLGRlbGV0ZSB0aGlzLl91cGRhdGVkTGF5ZXJzW2VdLGRlbGV0ZSB0aGlzLl91cGRhdGVkUGFpbnRQcm9wc1tlXSxyLm9uUmVtb3ZlJiZyLm9uUmVtb3ZlKHRoaXMubWFwKX1lbHNlIHRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcigiVGhlIGxheWVyICciK2UrIicgZG9lcyBub3QgZXhpc3QgaW4gdGhlIG1hcCdzIHN0eWxlIGFuZCBjYW5ub3QgYmUgcmVtb3ZlZC4iKSkpfSxyLnByb3RvdHlwZS5nZXRMYXllcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fbGF5ZXJzW3RdfSxyLnByb3RvdHlwZS5oYXNMYXllcj1mdW5jdGlvbih0KXtyZXR1cm4gdCBpbiB0aGlzLl9sYXllcnN9LHIucHJvdG90eXBlLnNldExheWVyWm9vbVJhbmdlPWZ1bmN0aW9uKGUscixuKXt0aGlzLl9jaGVja0xvYWRlZCgpO3ZhciBpPXRoaXMuZ2V0TGF5ZXIoZSk7aT9pLm1pbnpvb209PT1yJiZpLm1heHpvb209PT1ufHwobnVsbCE9ciYmKGkubWluem9vbT1yKSxudWxsIT1uJiYoaS5tYXh6b29tPW4pLHRoaXMuX3VwZGF0ZUxheWVyKGkpKTp0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoIlRoZSBsYXllciAnIitlKyInIGRvZXMgbm90IGV4aXN0IGluIHRoZSBtYXAncyBzdHlsZSBhbmQgY2Fubm90IGhhdmUgem9vbSBleHRlbnQuIikpKX0sci5wcm90b3R5cGUuc2V0RmlsdGVyPWZ1bmN0aW9uKGUscixuKXt2b2lkIDA9PT1uJiYobj17fSksdGhpcy5fY2hlY2tMb2FkZWQoKTt2YXIgaT10aGlzLmdldExheWVyKGUpO2lmKGkpe2lmKCF0LmRlZXBFcXVhbChpLmZpbHRlcixyKSlyZXR1cm4gbnVsbD09cj8oaS5maWx0ZXI9dm9pZCAwLHZvaWQgdGhpcy5fdXBkYXRlTGF5ZXIoaSkpOnZvaWQodGhpcy5fdmFsaWRhdGUodC52YWxpZGF0ZVN0eWxlLmZpbHRlciwibGF5ZXJzLiIraS5pZCsiLmZpbHRlciIscixudWxsLG4pfHwoaS5maWx0ZXI9dC5jbG9uZSQxKHIpLHRoaXMuX3VwZGF0ZUxheWVyKGkpKSl9ZWxzZSB0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoIlRoZSBsYXllciAnIitlKyInIGRvZXMgbm90IGV4aXN0IGluIHRoZSBtYXAncyBzdHlsZSBhbmQgY2Fubm90IGJlIGZpbHRlcmVkLiIpKSl9LHIucHJvdG90eXBlLmdldEZpbHRlcj1mdW5jdGlvbihlKXtyZXR1cm4gdC5jbG9uZSQxKHRoaXMuZ2V0TGF5ZXIoZSkuZmlsdGVyKX0sci5wcm90b3R5cGUuc2V0TGF5b3V0UHJvcGVydHk9ZnVuY3Rpb24oZSxyLG4saSl7dm9pZCAwPT09aSYmKGk9e30pLHRoaXMuX2NoZWNrTG9hZGVkKCk7dmFyIGE9dGhpcy5nZXRMYXllcihlKTthP3QuZGVlcEVxdWFsKGEuZ2V0TGF5b3V0UHJvcGVydHkociksbil8fChhLnNldExheW91dFByb3BlcnR5KHIsbixpKSx0aGlzLl91cGRhdGVMYXllcihhKSk6dGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCJUaGUgbGF5ZXIgJyIrZSsiJyBkb2VzIG5vdCBleGlzdCBpbiB0aGUgbWFwJ3Mgc3R5bGUgYW5kIGNhbm5vdCBiZSBzdHlsZWQuIikpKX0sci5wcm90b3R5cGUuZ2V0TGF5b3V0UHJvcGVydHk9ZnVuY3Rpb24oZSxyKXt2YXIgbj10aGlzLmdldExheWVyKGUpO2lmKG4pcmV0dXJuIG4uZ2V0TGF5b3V0UHJvcGVydHkocik7dGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCJUaGUgbGF5ZXIgJyIrZSsiJyBkb2VzIG5vdCBleGlzdCBpbiB0aGUgbWFwJ3Mgc3R5bGUuIikpKX0sci5wcm90b3R5cGUuc2V0UGFpbnRQcm9wZXJ0eT1mdW5jdGlvbihlLHIsbixpKXt2b2lkIDA9PT1pJiYoaT17fSksdGhpcy5fY2hlY2tMb2FkZWQoKTt2YXIgYT10aGlzLmdldExheWVyKGUpO2E/dC5kZWVwRXF1YWwoYS5nZXRQYWludFByb3BlcnR5KHIpLG4pfHwoYS5zZXRQYWludFByb3BlcnR5KHIsbixpKSYmdGhpcy5fdXBkYXRlTGF5ZXIoYSksdGhpcy5fY2hhbmdlZD0hMCx0aGlzLl91cGRhdGVkUGFpbnRQcm9wc1tlXT0hMCk6dGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCJUaGUgbGF5ZXIgJyIrZSsiJyBkb2VzIG5vdCBleGlzdCBpbiB0aGUgbWFwJ3Mgc3R5bGUgYW5kIGNhbm5vdCBiZSBzdHlsZWQuIikpKX0sci5wcm90b3R5cGUuZ2V0UGFpbnRQcm9wZXJ0eT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmdldExheWVyKHQpLmdldFBhaW50UHJvcGVydHkoZSl9LHIucHJvdG90eXBlLnNldEZlYXR1cmVTdGF0ZT1mdW5jdGlvbihlLHIpe3RoaXMuX2NoZWNrTG9hZGVkKCk7dmFyIG49ZS5zb3VyY2UsaT1lLnNvdXJjZUxheWVyLGE9dGhpcy5zb3VyY2VDYWNoZXNbbl07aWYodm9pZCAwIT09YSl7dmFyIG89YS5nZXRTb3VyY2UoKS50eXBlOyJnZW9qc29uIj09PW8mJmk/dGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCJHZW9KU09OIHNvdXJjZXMgY2Fubm90IGhhdmUgYSBzb3VyY2VMYXllciBwYXJhbWV0ZXIuIikpKToidmVjdG9yIiE9PW98fGk/KHZvaWQgMD09PWUuaWQmJnRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcigiVGhlIGZlYXR1cmUgaWQgcGFyYW1ldGVyIG11c3QgYmUgcHJvdmlkZWQuIikpKSxhLnNldEZlYXR1cmVTdGF0ZShpLGUuaWQscikpOnRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcigiVGhlIHNvdXJjZUxheWVyIHBhcmFtZXRlciBtdXN0IGJlIHByb3ZpZGVkIGZvciB2ZWN0b3Igc291cmNlIHR5cGVzLiIpKSl9ZWxzZSB0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoIlRoZSBzb3VyY2UgJyIrbisiJyBkb2VzIG5vdCBleGlzdCBpbiB0aGUgbWFwJ3Mgc3R5bGUuIikpKX0sci5wcm90b3R5cGUucmVtb3ZlRmVhdHVyZVN0YXRlPWZ1bmN0aW9uKGUscil7dGhpcy5fY2hlY2tMb2FkZWQoKTt2YXIgbj1lLnNvdXJjZSxpPXRoaXMuc291cmNlQ2FjaGVzW25dO2lmKHZvaWQgMCE9PWkpe3ZhciBhPWkuZ2V0U291cmNlKCkudHlwZSxvPSJ2ZWN0b3IiPT09YT9lLnNvdXJjZUxheWVyOnZvaWQgMDsidmVjdG9yIiE9PWF8fG8/ciYmInN0cmluZyIhPXR5cGVvZiBlLmlkJiYibnVtYmVyIiE9dHlwZW9mIGUuaWQ/dGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCJBIGZlYXR1cmUgaWQgaXMgcmVxdXJlZCB0byByZW1vdmUgaXRzIHNwZWNpZmljIHN0YXRlIHByb3BlcnR5LiIpKSk6aS5yZW1vdmVGZWF0dXJlU3RhdGUobyxlLmlkLHIpOnRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcigiVGhlIHNvdXJjZUxheWVyIHBhcmFtZXRlciBtdXN0IGJlIHByb3ZpZGVkIGZvciB2ZWN0b3Igc291cmNlIHR5cGVzLiIpKSl9ZWxzZSB0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoIlRoZSBzb3VyY2UgJyIrbisiJyBkb2VzIG5vdCBleGlzdCBpbiB0aGUgbWFwJ3Mgc3R5bGUuIikpKX0sci5wcm90b3R5cGUuZ2V0RmVhdHVyZVN0YXRlPWZ1bmN0aW9uKGUpe3RoaXMuX2NoZWNrTG9hZGVkKCk7dmFyIHI9ZS5zb3VyY2Usbj1lLnNvdXJjZUxheWVyLGk9dGhpcy5zb3VyY2VDYWNoZXNbcl07aWYodm9pZCAwIT09aSl7aWYoInZlY3RvciIhPT1pLmdldFNvdXJjZSgpLnR5cGV8fG4pcmV0dXJuIHZvaWQgMD09PWUuaWQmJnRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcigiVGhlIGZlYXR1cmUgaWQgcGFyYW1ldGVyIG11c3QgYmUgcHJvdmlkZWQuIikpKSxpLmdldEZlYXR1cmVTdGF0ZShuLGUuaWQpO3RoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcigiVGhlIHNvdXJjZUxheWVyIHBhcmFtZXRlciBtdXN0IGJlIHByb3ZpZGVkIGZvciB2ZWN0b3Igc291cmNlIHR5cGVzLiIpKSl9ZWxzZSB0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoIlRoZSBzb3VyY2UgJyIrcisiJyBkb2VzIG5vdCBleGlzdCBpbiB0aGUgbWFwJ3Mgc3R5bGUuIikpKX0sci5wcm90b3R5cGUuZ2V0VHJhbnNpdGlvbj1mdW5jdGlvbigpe3JldHVybiB0LmV4dGVuZCh7ZHVyYXRpb246MzAwLGRlbGF5OjB9LHRoaXMuc3R5bGVzaGVldCYmdGhpcy5zdHlsZXNoZWV0LnRyYW5zaXRpb24pfSxyLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXtyZXR1cm4gdC5maWx0ZXJPYmplY3Qoe3ZlcnNpb246dGhpcy5zdHlsZXNoZWV0LnZlcnNpb24sbmFtZTp0aGlzLnN0eWxlc2hlZXQubmFtZSxtZXRhZGF0YTp0aGlzLnN0eWxlc2hlZXQubWV0YWRhdGEsbGlnaHQ6dGhpcy5zdHlsZXNoZWV0LmxpZ2h0LGNlbnRlcjp0aGlzLnN0eWxlc2hlZXQuY2VudGVyLHpvb206dGhpcy5zdHlsZXNoZWV0Lnpvb20sYmVhcmluZzp0aGlzLnN0eWxlc2hlZXQuYmVhcmluZyxwaXRjaDp0aGlzLnN0eWxlc2hlZXQucGl0Y2gsc3ByaXRlOnRoaXMuc3R5bGVzaGVldC5zcHJpdGUsZ2x5cGhzOnRoaXMuc3R5bGVzaGVldC5nbHlwaHMsdHJhbnNpdGlvbjp0aGlzLnN0eWxlc2hlZXQudHJhbnNpdGlvbixzb3VyY2VzOnQubWFwT2JqZWN0KHRoaXMuc291cmNlQ2FjaGVzLChmdW5jdGlvbih0KXtyZXR1cm4gdC5zZXJpYWxpemUoKX0pKSxsYXllcnM6dGhpcy5fc2VyaWFsaXplTGF5ZXJzKHRoaXMuX29yZGVyKX0sKGZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDAhPT10fSkpfSxyLnByb3RvdHlwZS5fdXBkYXRlTGF5ZXI9ZnVuY3Rpb24odCl7dGhpcy5fdXBkYXRlZExheWVyc1t0LmlkXT0hMCx0LnNvdXJjZSYmIXRoaXMuX3VwZGF0ZWRTb3VyY2VzW3Quc291cmNlXSYmInJhc3RlciIhPT10aGlzLnNvdXJjZUNhY2hlc1t0LnNvdXJjZV0uZ2V0U291cmNlKCkudHlwZSYmKHRoaXMuX3VwZGF0ZWRTb3VyY2VzW3Quc291cmNlXT0icmVsb2FkIix0aGlzLnNvdXJjZUNhY2hlc1t0LnNvdXJjZV0ucGF1c2UoKSksdGhpcy5fY2hhbmdlZD0hMH0sci5wcm90b3R5cGUuX2ZsYXR0ZW5BbmRTb3J0UmVuZGVyZWRGZWF0dXJlcz1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcyxyPWZ1bmN0aW9uKHQpe3JldHVybiJmaWxsLWV4dHJ1c2lvbiI9PT1lLl9sYXllcnNbdF0udHlwZX0sbj17fSxpPVtdLGE9dGhpcy5fb3JkZXIubGVuZ3RoLTE7YT49MDthLS0pe3ZhciBvPXRoaXMuX29yZGVyW2FdO2lmKHIobykpe25bb109YTtmb3IodmFyIHM9MCxsPXQ7czxsLmxlbmd0aDtzKz0xKXt2YXIgYz1sW3NdW29dO2lmKGMpZm9yKHZhciB1PTAsZj1jO3U8Zi5sZW5ndGg7dSs9MSl7dmFyIGg9Zlt1XTtpLnB1c2goaCl9fX19aS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiBlLmludGVyc2VjdGlvblotdC5pbnRlcnNlY3Rpb25afSkpO2Zvcih2YXIgcD1bXSxkPXRoaXMuX29yZGVyLmxlbmd0aC0xO2Q+PTA7ZC0tKXt2YXIgbT10aGlzLl9vcmRlcltkXTtpZihyKG0pKWZvcih2YXIgZz1pLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgdj1pW2ddLmZlYXR1cmU7aWYoblt2LmxheWVyLmlkXTxkKWJyZWFrO3AucHVzaCh2KSxpLnBvcCgpfWVsc2UgZm9yKHZhciB5PTAseD10O3k8eC5sZW5ndGg7eSs9MSl7dmFyIGI9eFt5XVttXTtpZihiKWZvcih2YXIgXz0wLHc9YjtfPHcubGVuZ3RoO18rPTEpe3ZhciBUPXdbX107cC5wdXNoKFQuZmVhdHVyZSl9fX1yZXR1cm4gcH0sci5wcm90b3R5cGUucXVlcnlSZW5kZXJlZEZlYXR1cmVzPWZ1bmN0aW9uKGUscixuKXtyJiZyLmZpbHRlciYmdGhpcy5fdmFsaWRhdGUodC52YWxpZGF0ZVN0eWxlLmZpbHRlciwicXVlcnlSZW5kZXJlZEZlYXR1cmVzLmZpbHRlciIsci5maWx0ZXIsbnVsbCxyKTt2YXIgaT17fTtpZihyJiZyLmxheWVycyl7aWYoIUFycmF5LmlzQXJyYXkoci5sYXllcnMpKXJldHVybiB0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoInBhcmFtZXRlcnMubGF5ZXJzIG11c3QgYmUgYW4gQXJyYXkuIikpKSxbXTtmb3IodmFyIGE9MCxvPXIubGF5ZXJzO2E8by5sZW5ndGg7YSs9MSl7dmFyIHM9b1thXSxsPXRoaXMuX2xheWVyc1tzXTtpZighbClyZXR1cm4gdGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCJUaGUgbGF5ZXIgJyIrcysiJyBkb2VzIG5vdCBleGlzdCBpbiB0aGUgbWFwJ3Mgc3R5bGUgYW5kIGNhbm5vdCBiZSBxdWVyaWVkIGZvciBmZWF0dXJlcy4iKSkpLFtdO2lbbC5zb3VyY2VdPSEwfX12YXIgYz1bXTtmb3IodmFyIHUgaW4gci5hdmFpbGFibGVJbWFnZXM9dGhpcy5fYXZhaWxhYmxlSW1hZ2VzLHRoaXMuc291cmNlQ2FjaGVzKXIubGF5ZXJzJiYhaVt1XXx8Yy5wdXNoKEYodGhpcy5zb3VyY2VDYWNoZXNbdV0sdGhpcy5fbGF5ZXJzLHRoaXMuX3NlcmlhbGl6ZWRMYXllcnMsZSxyLG4pKTtyZXR1cm4gdGhpcy5wbGFjZW1lbnQmJmMucHVzaChmdW5jdGlvbih0LGUscixuLGksYSxvKXtmb3IodmFyIHM9e30sbD1hLnF1ZXJ5UmVuZGVyZWRTeW1ib2xzKG4pLGM9W10sdT0wLGY9T2JqZWN0LmtleXMobCkubWFwKE51bWJlcik7dTxmLmxlbmd0aDt1Kz0xKXt2YXIgaD1mW3VdO2MucHVzaChvW2hdKX1jLnNvcnQoQik7Zm9yKHZhciBwPWZ1bmN0aW9uKCl7dmFyIHI9bVtkXSxuPXIuZmVhdHVyZUluZGV4Lmxvb2t1cFN5bWJvbEZlYXR1cmVzKGxbci5idWNrZXRJbnN0YW5jZUlkXSxlLHIuYnVja2V0SW5kZXgsci5zb3VyY2VMYXllckluZGV4LGkuZmlsdGVyLGkubGF5ZXJzLGkuYXZhaWxhYmxlSW1hZ2VzLHQpO2Zvcih2YXIgYSBpbiBuKXt2YXIgbz1zW2FdPXNbYV18fFtdLGM9blthXTtjLnNvcnQoKGZ1bmN0aW9uKHQsZSl7dmFyIG49ci5mZWF0dXJlU29ydE9yZGVyO2lmKG4pe3ZhciBpPW4uaW5kZXhPZih0LmZlYXR1cmVJbmRleCk7cmV0dXJuIG4uaW5kZXhPZihlLmZlYXR1cmVJbmRleCktaX1yZXR1cm4gZS5mZWF0dXJlSW5kZXgtdC5mZWF0dXJlSW5kZXh9KSk7Zm9yKHZhciB1PTAsZj1jO3U8Zi5sZW5ndGg7dSs9MSl7dmFyIGg9Zlt1XTtvLnB1c2goaCl9fX0sZD0wLG09YztkPG0ubGVuZ3RoO2QrPTEpcCgpO3ZhciBnPWZ1bmN0aW9uKGUpe3NbZV0uZm9yRWFjaCgoZnVuY3Rpb24obil7dmFyIGk9bi5mZWF0dXJlLGE9dFtlXSxvPXJbYS5zb3VyY2VdLmdldEZlYXR1cmVTdGF0ZShpLmxheWVyWyJzb3VyY2UtbGF5ZXIiXSxpLmlkKTtpLnNvdXJjZT1pLmxheWVyLnNvdXJjZSxpLmxheWVyWyJzb3VyY2UtbGF5ZXIiXSYmKGkuc291cmNlTGF5ZXI9aS5sYXllclsic291cmNlLWxheWVyIl0pLGkuc3RhdGU9b30pKX07Zm9yKHZhciB2IGluIHMpZyh2KTtyZXR1cm4gc30odGhpcy5fbGF5ZXJzLHRoaXMuX3NlcmlhbGl6ZWRMYXllcnMsdGhpcy5zb3VyY2VDYWNoZXMsZSxyLHRoaXMucGxhY2VtZW50LmNvbGxpc2lvbkluZGV4LHRoaXMucGxhY2VtZW50LnJldGFpbmVkUXVlcnlEYXRhKSksdGhpcy5fZmxhdHRlbkFuZFNvcnRSZW5kZXJlZEZlYXR1cmVzKGMpfSxyLnByb3RvdHlwZS5xdWVyeVNvdXJjZUZlYXR1cmVzPWZ1bmN0aW9uKGUscil7ciYmci5maWx0ZXImJnRoaXMuX3ZhbGlkYXRlKHQudmFsaWRhdGVTdHlsZS5maWx0ZXIsInF1ZXJ5U291cmNlRmVhdHVyZXMuZmlsdGVyIixyLmZpbHRlcixudWxsLHIpO3ZhciBuPXRoaXMuc291cmNlQ2FjaGVzW2VdO3JldHVybiBuP2Z1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQuZ2V0UmVuZGVyYWJsZUlkcygpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQuZ2V0VGlsZUJ5SUQoZSl9KSksbj1bXSxpPXt9LGE9MDthPHIubGVuZ3RoO2ErKyl7dmFyIG89clthXSxzPW8udGlsZUlELmNhbm9uaWNhbC5rZXk7aVtzXXx8KGlbc109ITAsby5xdWVyeVNvdXJjZUZlYXR1cmVzKG4sZSkpfXJldHVybiBufShuLHIpOltdfSxyLnByb3RvdHlwZS5hZGRTb3VyY2VUeXBlPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gci5nZXRTb3VyY2VUeXBlKHQpP24obmV3IEVycm9yKCdBIHNvdXJjZSB0eXBlIGNhbGxlZCAiJyt0KyciIGFscmVhZHkgZXhpc3RzLicpKTooci5zZXRTb3VyY2VUeXBlKHQsZSksZS53b3JrZXJTb3VyY2VVUkw/dm9pZCB0aGlzLmRpc3BhdGNoZXIuYnJvYWRjYXN0KCJsb2FkV29ya2VyU291cmNlIix7bmFtZTp0LHVybDplLndvcmtlclNvdXJjZVVSTH0sbik6bihudWxsLG51bGwpKX0sci5wcm90b3R5cGUuZ2V0TGlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5saWdodC5nZXRMaWdodCgpfSxyLnByb3RvdHlwZS5zZXRMaWdodD1mdW5jdGlvbihlLHIpe3ZvaWQgMD09PXImJihyPXt9KSx0aGlzLl9jaGVja0xvYWRlZCgpO3ZhciBuPXRoaXMubGlnaHQuZ2V0TGlnaHQoKSxpPSExO2Zvcih2YXIgYSBpbiBlKWlmKCF0LmRlZXBFcXVhbChlW2FdLG5bYV0pKXtpPSEwO2JyZWFrfWlmKGkpe3ZhciBvPXtub3c6dC5icm93c2VyLm5vdygpLHRyYW5zaXRpb246dC5leHRlbmQoe2R1cmF0aW9uOjMwMCxkZWxheTowfSx0aGlzLnN0eWxlc2hlZXQudHJhbnNpdGlvbil9O3RoaXMubGlnaHQuc2V0TGlnaHQoZSxyKSx0aGlzLmxpZ2h0LnVwZGF0ZVRyYW5zaXRpb25zKG8pfX0sci5wcm90b3R5cGUuX3ZhbGlkYXRlPWZ1bmN0aW9uKGUscixuLGksYSl7cmV0dXJuIHZvaWQgMD09PWEmJihhPXt9KSwoIWF8fCExIT09YS52YWxpZGF0ZSkmJmplKHRoaXMsZS5jYWxsKHQudmFsaWRhdGVTdHlsZSx0LmV4dGVuZCh7a2V5OnIsc3R5bGU6dGhpcy5zZXJpYWxpemUoKSx2YWx1ZTpuLHN0eWxlU3BlYzp0LnN0eWxlU3BlY30saSkpKX0sci5wcm90b3R5cGUuX3JlbW92ZT1mdW5jdGlvbigpe2Zvcih2YXIgZSBpbiB0aGlzLl9yZXF1ZXN0JiYodGhpcy5fcmVxdWVzdC5jYW5jZWwoKSx0aGlzLl9yZXF1ZXN0PW51bGwpLHRoaXMuX3Nwcml0ZVJlcXVlc3QmJih0aGlzLl9zcHJpdGVSZXF1ZXN0LmNhbmNlbCgpLHRoaXMuX3Nwcml0ZVJlcXVlc3Q9bnVsbCksdC5ldmVudGVkLm9mZigicGx1Z2luU3RhdGVDaGFuZ2UiLHRoaXMuX3J0bFRleHRQbHVnaW5DYWxsYmFjayksdGhpcy5fbGF5ZXJzKXt0aGlzLl9sYXllcnNbZV0uc2V0RXZlbnRlZFBhcmVudChudWxsKX1mb3IodmFyIHIgaW4gdGhpcy5zb3VyY2VDYWNoZXMpdGhpcy5zb3VyY2VDYWNoZXNbcl0uY2xlYXJUaWxlcygpLHRoaXMuc291cmNlQ2FjaGVzW3JdLnNldEV2ZW50ZWRQYXJlbnQobnVsbCk7dGhpcy5pbWFnZU1hbmFnZXIuc2V0RXZlbnRlZFBhcmVudChudWxsKSx0aGlzLnNldEV2ZW50ZWRQYXJlbnQobnVsbCksdGhpcy5kaXNwYXRjaGVyLnJlbW92ZSgpfSxyLnByb3RvdHlwZS5fY2xlYXJTb3VyY2U9ZnVuY3Rpb24odCl7dGhpcy5zb3VyY2VDYWNoZXNbdF0uY2xlYXJUaWxlcygpfSxyLnByb3RvdHlwZS5fcmVsb2FkU291cmNlPWZ1bmN0aW9uKHQpe3RoaXMuc291cmNlQ2FjaGVzW3RdLnJlc3VtZSgpLHRoaXMuc291cmNlQ2FjaGVzW3RdLnJlbG9hZCgpfSxyLnByb3RvdHlwZS5fdXBkYXRlU291cmNlcz1mdW5jdGlvbih0KXtmb3IodmFyIGUgaW4gdGhpcy5zb3VyY2VDYWNoZXMpdGhpcy5zb3VyY2VDYWNoZXNbZV0udXBkYXRlKHQpfSxyLnByb3RvdHlwZS5fZ2VuZXJhdGVDb2xsaXNpb25Cb3hlcz1mdW5jdGlvbigpe2Zvcih2YXIgdCBpbiB0aGlzLnNvdXJjZUNhY2hlcyl0aGlzLl9yZWxvYWRTb3VyY2UodCl9LHIucHJvdG90eXBlLl91cGRhdGVQbGFjZW1lbnQ9ZnVuY3Rpb24oZSxyLG4saSxhKXt2b2lkIDA9PT1hJiYoYT0hMSk7Zm9yKHZhciBvPSExLHM9ITEsbD17fSxjPTAsdT10aGlzLl9vcmRlcjtjPHUubGVuZ3RoO2MrPTEpe3ZhciBmPXVbY10saD10aGlzLl9sYXllcnNbZl07aWYoInN5bWJvbCI9PT1oLnR5cGUpe2lmKCFsW2guc291cmNlXSl7dmFyIHA9dGhpcy5zb3VyY2VDYWNoZXNbaC5zb3VyY2VdO2xbaC5zb3VyY2VdPXAuZ2V0UmVuZGVyYWJsZUlkcyghMCkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gcC5nZXRUaWxlQnlJRCh0KX0pKS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiBlLnRpbGVJRC5vdmVyc2NhbGVkWi10LnRpbGVJRC5vdmVyc2NhbGVkWnx8KHQudGlsZUlELmlzTGVzc1RoYW4oZS50aWxlSUQpPy0xOjEpfSkpfXZhciBkPXRoaXMuY3Jvc3NUaWxlU3ltYm9sSW5kZXguYWRkTGF5ZXIoaCxsW2guc291cmNlXSxlLmNlbnRlci5sbmcpO289b3x8ZH19aWYodGhpcy5jcm9zc1RpbGVTeW1ib2xJbmRleC5wcnVuZVVudXNlZExheWVycyh0aGlzLl9vcmRlciksKChhPWF8fHRoaXMuX2xheWVyT3JkZXJDaGFuZ2VkfHwwPT09bil8fCF0aGlzLnBhdXNlYWJsZVBsYWNlbWVudHx8dGhpcy5wYXVzZWFibGVQbGFjZW1lbnQuaXNEb25lKCkmJiF0aGlzLnBsYWNlbWVudC5zdGlsbFJlY2VudCh0LmJyb3dzZXIubm93KCksZS56b29tKSkmJih0aGlzLnBhdXNlYWJsZVBsYWNlbWVudD1uZXcgemUoZSx0aGlzLl9vcmRlcixhLHIsbixpLHRoaXMucGxhY2VtZW50KSx0aGlzLl9sYXllck9yZGVyQ2hhbmdlZD0hMSksdGhpcy5wYXVzZWFibGVQbGFjZW1lbnQuaXNEb25lKCk/dGhpcy5wbGFjZW1lbnQuc2V0U3RhbGUoKToodGhpcy5wYXVzZWFibGVQbGFjZW1lbnQuY29udGludWVQbGFjZW1lbnQodGhpcy5fb3JkZXIsdGhpcy5fbGF5ZXJzLGwpLHRoaXMucGF1c2VhYmxlUGxhY2VtZW50LmlzRG9uZSgpJiYodGhpcy5wbGFjZW1lbnQ9dGhpcy5wYXVzZWFibGVQbGFjZW1lbnQuY29tbWl0KHQuYnJvd3Nlci5ub3coKSkscz0hMCksbyYmdGhpcy5wYXVzZWFibGVQbGFjZW1lbnQucGxhY2VtZW50LnNldFN0YWxlKCkpLHN8fG8pZm9yKHZhciBtPTAsZz10aGlzLl9vcmRlcjttPGcubGVuZ3RoO20rPTEpe3ZhciB2PWdbbV0seT10aGlzLl9sYXllcnNbdl07InN5bWJvbCI9PT15LnR5cGUmJnRoaXMucGxhY2VtZW50LnVwZGF0ZUxheWVyT3BhY2l0aWVzKHksbFt5LnNvdXJjZV0pfXJldHVybiF0aGlzLnBhdXNlYWJsZVBsYWNlbWVudC5pc0RvbmUoKXx8dGhpcy5wbGFjZW1lbnQuaGFzVHJhbnNpdGlvbnModC5icm93c2VyLm5vdygpKX0sci5wcm90b3R5cGUuX3JlbGVhc2VTeW1ib2xGYWRlVGlsZXM9ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcy5zb3VyY2VDYWNoZXMpdGhpcy5zb3VyY2VDYWNoZXNbdF0ucmVsZWFzZVN5bWJvbEZhZGVUaWxlcygpfSxyLnByb3RvdHlwZS5nZXRJbWFnZXM9ZnVuY3Rpb24odCxlLHIpe3RoaXMuaW1hZ2VNYW5hZ2VyLmdldEltYWdlcyhlLmljb25zLHIpLHRoaXMuX3VwZGF0ZVRpbGVzRm9yQ2hhbmdlZEltYWdlcygpO3ZhciBuPXRoaXMuc291cmNlQ2FjaGVzW2Uuc291cmNlXTtuJiZuLnNldERlcGVuZGVuY2llcyhlLnRpbGVJRC5rZXksZS50eXBlLGUuaWNvbnMpfSxyLnByb3RvdHlwZS5nZXRHbHlwaHM9ZnVuY3Rpb24odCxlLHIpe3RoaXMuZ2x5cGhNYW5hZ2VyLmdldEdseXBocyhlLnN0YWNrcyxyKX0sci5wcm90b3R5cGUuZ2V0UmVzb3VyY2U9ZnVuY3Rpb24oZSxyLG4pe3JldHVybiB0Lm1ha2VSZXF1ZXN0KHIsbil9LHJ9KHQuRXZlbnRlZCk7cWUuZ2V0U291cmNlVHlwZT1mdW5jdGlvbih0KXtyZXR1cm4gRFt0XX0scWUuc2V0U291cmNlVHlwZT1mdW5jdGlvbih0LGUpe0RbdF09ZX0scWUucmVnaXN0ZXJGb3JQbHVnaW5TdGF0ZUNoYW5nZT10LnJlZ2lzdGVyRm9yUGx1Z2luU3RhdGVDaGFuZ2U7dmFyIEdlPXQuY3JlYXRlTGF5b3V0KFt7bmFtZToiYV9wb3MiLHR5cGU6IkludDE2Iixjb21wb25lbnRzOjJ9XSksWWU9eXIoIiNpZmRlZiBHTF9FU1xucHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZWxzZVxuI2lmICFkZWZpbmVkKGxvd3ApXG4jZGVmaW5lIGxvd3BcbiNlbmRpZlxuI2lmICFkZWZpbmVkKG1lZGl1bXApXG4jZGVmaW5lIG1lZGl1bXBcbiNlbmRpZlxuI2lmICFkZWZpbmVkKGhpZ2hwKVxuI2RlZmluZSBoaWdocFxuI2VuZGlmXG4jZW5kaWYiLCIjaWZkZWYgR0xfRVNcbnByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNlbHNlXG4jaWYgIWRlZmluZWQobG93cClcbiNkZWZpbmUgbG93cFxuI2VuZGlmXG4jaWYgIWRlZmluZWQobWVkaXVtcClcbiNkZWZpbmUgbWVkaXVtcFxuI2VuZGlmXG4jaWYgIWRlZmluZWQoaGlnaHApXG4jZGVmaW5lIGhpZ2hwXG4jZW5kaWZcbiNlbmRpZlxudmVjMiB1bnBhY2tfZmxvYXQoY29uc3QgZmxvYXQgcGFja2VkVmFsdWUpIHtpbnQgcGFja2VkSW50VmFsdWU9aW50KHBhY2tlZFZhbHVlKTtpbnQgdjA9cGFja2VkSW50VmFsdWUvMjU2O3JldHVybiB2ZWMyKHYwLHBhY2tlZEludFZhbHVlLXYwKjI1Nik7fXZlYzIgdW5wYWNrX29wYWNpdHkoY29uc3QgZmxvYXQgcGFja2VkT3BhY2l0eSkge2ludCBpbnRPcGFjaXR5PWludChwYWNrZWRPcGFjaXR5KS8yO3JldHVybiB2ZWMyKGZsb2F0KGludE9wYWNpdHkpLzEyNy4wLG1vZChwYWNrZWRPcGFjaXR5LDIuMCkpO312ZWM0IGRlY29kZV9jb2xvcihjb25zdCB2ZWMyIGVuY29kZWRDb2xvcikge3JldHVybiB2ZWM0KHVucGFja19mbG9hdChlbmNvZGVkQ29sb3JbMF0pLzI1NS4wLHVucGFja19mbG9hdChlbmNvZGVkQ29sb3JbMV0pLzI1NS4wXG4pO31mbG9hdCB1bnBhY2tfbWl4X3ZlYzIoY29uc3QgdmVjMiBwYWNrZWRWYWx1ZSxjb25zdCBmbG9hdCB0KSB7cmV0dXJuIG1peChwYWNrZWRWYWx1ZVswXSxwYWNrZWRWYWx1ZVsxXSx0KTt9dmVjNCB1bnBhY2tfbWl4X2NvbG9yKGNvbnN0IHZlYzQgcGFja2VkQ29sb3JzLGNvbnN0IGZsb2F0IHQpIHt2ZWM0IG1pbkNvbG9yPWRlY29kZV9jb2xvcih2ZWMyKHBhY2tlZENvbG9yc1swXSxwYWNrZWRDb2xvcnNbMV0pKTt2ZWM0IG1heENvbG9yPWRlY29kZV9jb2xvcih2ZWMyKHBhY2tlZENvbG9yc1syXSxwYWNrZWRDb2xvcnNbM10pKTtyZXR1cm4gbWl4KG1pbkNvbG9yLG1heENvbG9yLHQpO312ZWMyIGdldF9wYXR0ZXJuX3Bvcyhjb25zdCB2ZWMyIHBpeGVsX2Nvb3JkX3VwcGVyLGNvbnN0IHZlYzIgcGl4ZWxfY29vcmRfbG93ZXIsY29uc3QgdmVjMiBwYXR0ZXJuX3NpemUsY29uc3QgZmxvYXQgdGlsZV91bml0c190b19waXhlbHMsY29uc3QgdmVjMiBwb3MpIHt2ZWMyIG9mZnNldD1tb2QobW9kKG1vZChwaXhlbF9jb29yZF91cHBlcixwYXR0ZXJuX3NpemUpKjI1Ni4wLHBhdHRlcm5fc2l6ZSkqMjU2LjArcGl4ZWxfY29vcmRfbG93ZXIscGF0dGVybl9zaXplKTtyZXR1cm4gKHRpbGVfdW5pdHNfdG9fcGl4ZWxzKnBvcytvZmZzZXQpL3BhdHRlcm5fc2l6ZTt9IiksV2U9eXIoInVuaWZvcm0gdmVjNCB1X2NvbG9yO3VuaWZvcm0gZmxvYXQgdV9vcGFjaXR5O3ZvaWQgbWFpbigpIHtnbF9GcmFnQ29sb3I9dV9jb2xvcip1X29wYWNpdHk7XG4jaWZkZWYgT1ZFUkRSQVdfSU5TUEVDVE9SXG5nbF9GcmFnQ29sb3I9dmVjNCgxLjApO1xuI2VuZGlmXG59IiwiYXR0cmlidXRlIHZlYzIgYV9wb3M7dW5pZm9ybSBtYXQ0IHVfbWF0cml4O3ZvaWQgbWFpbigpIHtnbF9Qb3NpdGlvbj11X21hdHJpeCp2ZWM0KGFfcG9zLDAsMSk7fSIpLFhlPXlyKCJ1bmlmb3JtIHZlYzIgdV9wYXR0ZXJuX3RsX2E7dW5pZm9ybSB2ZWMyIHVfcGF0dGVybl9icl9hO3VuaWZvcm0gdmVjMiB1X3BhdHRlcm5fdGxfYjt1bmlmb3JtIHZlYzIgdV9wYXR0ZXJuX2JyX2I7dW5pZm9ybSB2ZWMyIHVfdGV4c2l6ZTt1bmlmb3JtIGZsb2F0IHVfbWl4O3VuaWZvcm0gZmxvYXQgdV9vcGFjaXR5O3VuaWZvcm0gc2FtcGxlcjJEIHVfaW1hZ2U7dmFyeWluZyB2ZWMyIHZfcG9zX2E7dmFyeWluZyB2ZWMyIHZfcG9zX2I7dm9pZCBtYWluKCkge3ZlYzIgaW1hZ2Vjb29yZD1tb2Qodl9wb3NfYSwxLjApO3ZlYzIgcG9zPW1peCh1X3BhdHRlcm5fdGxfYS91X3RleHNpemUsdV9wYXR0ZXJuX2JyX2EvdV90ZXhzaXplLGltYWdlY29vcmQpO3ZlYzQgY29sb3IxPXRleHR1cmUyRCh1X2ltYWdlLHBvcyk7dmVjMiBpbWFnZWNvb3JkX2I9bW9kKHZfcG9zX2IsMS4wKTt2ZWMyIHBvczI9bWl4KHVfcGF0dGVybl90bF9iL3VfdGV4c2l6ZSx1X3BhdHRlcm5fYnJfYi91X3RleHNpemUsaW1hZ2Vjb29yZF9iKTt2ZWM0IGNvbG9yMj10ZXh0dXJlMkQodV9pbWFnZSxwb3MyKTtnbF9GcmFnQ29sb3I9bWl4KGNvbG9yMSxjb2xvcjIsdV9taXgpKnVfb3BhY2l0eTtcbiNpZmRlZiBPVkVSRFJBV19JTlNQRUNUT1JcbmdsX0ZyYWdDb2xvcj12ZWM0KDEuMCk7XG4jZW5kaWZcbn0iLCJ1bmlmb3JtIG1hdDQgdV9tYXRyaXg7dW5pZm9ybSB2ZWMyIHVfcGF0dGVybl9zaXplX2E7dW5pZm9ybSB2ZWMyIHVfcGF0dGVybl9zaXplX2I7dW5pZm9ybSB2ZWMyIHVfcGl4ZWxfY29vcmRfdXBwZXI7dW5pZm9ybSB2ZWMyIHVfcGl4ZWxfY29vcmRfbG93ZXI7dW5pZm9ybSBmbG9hdCB1X3NjYWxlX2E7dW5pZm9ybSBmbG9hdCB1X3NjYWxlX2I7dW5pZm9ybSBmbG9hdCB1X3RpbGVfdW5pdHNfdG9fcGl4ZWxzO2F0dHJpYnV0ZSB2ZWMyIGFfcG9zO3ZhcnlpbmcgdmVjMiB2X3Bvc19hO3ZhcnlpbmcgdmVjMiB2X3Bvc19iO3ZvaWQgbWFpbigpIHtnbF9Qb3NpdGlvbj11X21hdHJpeCp2ZWM0KGFfcG9zLDAsMSk7dl9wb3NfYT1nZXRfcGF0dGVybl9wb3ModV9waXhlbF9jb29yZF91cHBlcix1X3BpeGVsX2Nvb3JkX2xvd2VyLHVfc2NhbGVfYSp1X3BhdHRlcm5fc2l6ZV9hLHVfdGlsZV91bml0c190b19waXhlbHMsYV9wb3MpO3ZfcG9zX2I9Z2V0X3BhdHRlcm5fcG9zKHVfcGl4ZWxfY29vcmRfdXBwZXIsdV9waXhlbF9jb29yZF9sb3dlcix1X3NjYWxlX2IqdV9wYXR0ZXJuX3NpemVfYix1X3RpbGVfdW5pdHNfdG9fcGl4ZWxzLGFfcG9zKTt9IiksWmU9eXIoInZhcnlpbmcgdmVjMyB2X2RhdGE7XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGhpZ2hwIHZlYzQgY29sb3JcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbWVkaXVtcCBmbG9hdCByYWRpdXNcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBibHVyXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgb3BhY2l0eVxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBoaWdocCB2ZWM0IHN0cm9rZV9jb2xvclxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBtZWRpdW1wIGZsb2F0IHN0cm9rZV93aWR0aFxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IHN0cm9rZV9vcGFjaXR5XG52b2lkIG1haW4oKSB7XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBoaWdocCB2ZWM0IGNvbG9yXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBtZWRpdW1wIGZsb2F0IHJhZGl1c1xuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBibHVyXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IG9wYWNpdHlcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGhpZ2hwIHZlYzQgc3Ryb2tlX2NvbG9yXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBtZWRpdW1wIGZsb2F0IHN0cm9rZV93aWR0aFxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBzdHJva2Vfb3BhY2l0eVxudmVjMiBleHRydWRlPXZfZGF0YS54eTtmbG9hdCBleHRydWRlX2xlbmd0aD1sZW5ndGgoZXh0cnVkZSk7bG93cCBmbG9hdCBhbnRpYWxpYXNibHVyPXZfZGF0YS56O2Zsb2F0IGFudGlhbGlhc2VkX2JsdXI9LW1heChibHVyLGFudGlhbGlhc2JsdXIpO2Zsb2F0IG9wYWNpdHlfdD1zbW9vdGhzdGVwKDAuMCxhbnRpYWxpYXNlZF9ibHVyLGV4dHJ1ZGVfbGVuZ3RoLTEuMCk7ZmxvYXQgY29sb3JfdD1zdHJva2Vfd2lkdGggPCAwLjAxID8gMC4wIDogc21vb3Roc3RlcChhbnRpYWxpYXNlZF9ibHVyLDAuMCxleHRydWRlX2xlbmd0aC1yYWRpdXMvKHJhZGl1cytzdHJva2Vfd2lkdGgpKTtnbF9GcmFnQ29sb3I9b3BhY2l0eV90Km1peChjb2xvcipvcGFjaXR5LHN0cm9rZV9jb2xvcipzdHJva2Vfb3BhY2l0eSxjb2xvcl90KTtcbiNpZmRlZiBPVkVSRFJBV19JTlNQRUNUT1JcbmdsX0ZyYWdDb2xvcj12ZWM0KDEuMCk7XG4jZW5kaWZcbn0iLCJ1bmlmb3JtIG1hdDQgdV9tYXRyaXg7dW5pZm9ybSBib29sIHVfc2NhbGVfd2l0aF9tYXA7dW5pZm9ybSBib29sIHVfcGl0Y2hfd2l0aF9tYXA7dW5pZm9ybSB2ZWMyIHVfZXh0cnVkZV9zY2FsZTt1bmlmb3JtIGxvd3AgZmxvYXQgdV9kZXZpY2VfcGl4ZWxfcmF0aW87dW5pZm9ybSBoaWdocCBmbG9hdCB1X2NhbWVyYV90b19jZW50ZXJfZGlzdGFuY2U7YXR0cmlidXRlIHZlYzIgYV9wb3M7dmFyeWluZyB2ZWMzIHZfZGF0YTtcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgaGlnaHAgdmVjNCBjb2xvclxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBtZWRpdW1wIGZsb2F0IHJhZGl1c1xuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IGJsdXJcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBvcGFjaXR5XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGhpZ2hwIHZlYzQgc3Ryb2tlX2NvbG9yXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIG1lZGl1bXAgZmxvYXQgc3Ryb2tlX3dpZHRoXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgc3Ryb2tlX29wYWNpdHlcbnZvaWQgbWFpbih2b2lkKSB7XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBoaWdocCB2ZWM0IGNvbG9yXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBtZWRpdW1wIGZsb2F0IHJhZGl1c1xuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBibHVyXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IG9wYWNpdHlcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGhpZ2hwIHZlYzQgc3Ryb2tlX2NvbG9yXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBtZWRpdW1wIGZsb2F0IHN0cm9rZV93aWR0aFxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBzdHJva2Vfb3BhY2l0eVxudmVjMiBleHRydWRlPXZlYzIobW9kKGFfcG9zLDIuMCkqMi4wLTEuMCk7dmVjMiBjaXJjbGVfY2VudGVyPWZsb29yKGFfcG9zKjAuNSk7aWYgKHVfcGl0Y2hfd2l0aF9tYXApIHt2ZWMyIGNvcm5lcl9wb3NpdGlvbj1jaXJjbGVfY2VudGVyO2lmICh1X3NjYWxlX3dpdGhfbWFwKSB7Y29ybmVyX3Bvc2l0aW9uKz1leHRydWRlKihyYWRpdXMrc3Ryb2tlX3dpZHRoKSp1X2V4dHJ1ZGVfc2NhbGU7fSBlbHNlIHt2ZWM0IHByb2plY3RlZF9jZW50ZXI9dV9tYXRyaXgqdmVjNChjaXJjbGVfY2VudGVyLDAsMSk7Y29ybmVyX3Bvc2l0aW9uKz1leHRydWRlKihyYWRpdXMrc3Ryb2tlX3dpZHRoKSp1X2V4dHJ1ZGVfc2NhbGUqKHByb2plY3RlZF9jZW50ZXIudy91X2NhbWVyYV90b19jZW50ZXJfZGlzdGFuY2UpO31nbF9Qb3NpdGlvbj11X21hdHJpeCp2ZWM0KGNvcm5lcl9wb3NpdGlvbiwwLDEpO30gZWxzZSB7Z2xfUG9zaXRpb249dV9tYXRyaXgqdmVjNChjaXJjbGVfY2VudGVyLDAsMSk7aWYgKHVfc2NhbGVfd2l0aF9tYXApIHtnbF9Qb3NpdGlvbi54eSs9ZXh0cnVkZSoocmFkaXVzK3N0cm9rZV93aWR0aCkqdV9leHRydWRlX3NjYWxlKnVfY2FtZXJhX3RvX2NlbnRlcl9kaXN0YW5jZTt9IGVsc2Uge2dsX1Bvc2l0aW9uLnh5Kz1leHRydWRlKihyYWRpdXMrc3Ryb2tlX3dpZHRoKSp1X2V4dHJ1ZGVfc2NhbGUqZ2xfUG9zaXRpb24udzt9fWxvd3AgZmxvYXQgYW50aWFsaWFzYmx1cj0xLjAvdV9kZXZpY2VfcGl4ZWxfcmF0aW8vKHJhZGl1cytzdHJva2Vfd2lkdGgpO3ZfZGF0YT12ZWMzKGV4dHJ1ZGUueCxleHRydWRlLnksYW50aWFsaWFzYmx1cik7fSIpLEplPXlyKCJ2b2lkIG1haW4oKSB7Z2xfRnJhZ0NvbG9yPXZlYzQoMS4wKTt9IiwiYXR0cmlidXRlIHZlYzIgYV9wb3M7dW5pZm9ybSBtYXQ0IHVfbWF0cml4O3ZvaWQgbWFpbigpIHtnbF9Qb3NpdGlvbj11X21hdHJpeCp2ZWM0KGFfcG9zLDAsMSk7fSIpLEtlPXlyKCJ1bmlmb3JtIGhpZ2hwIGZsb2F0IHVfaW50ZW5zaXR5O3ZhcnlpbmcgdmVjMiB2X2V4dHJ1ZGU7XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGhpZ2hwIGZsb2F0IHdlaWdodFxuI2RlZmluZSBHQVVTU19DT0VGIDAuMzk4OTQyMjgwNDAxNDMyN1xudm9pZCBtYWluKCkge1xuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgaGlnaHAgZmxvYXQgd2VpZ2h0XG5mbG9hdCBkPS0wLjUqMy4wKjMuMCpkb3Qodl9leHRydWRlLHZfZXh0cnVkZSk7ZmxvYXQgdmFsPXdlaWdodCp1X2ludGVuc2l0eSpHQVVTU19DT0VGKmV4cChkKTtnbF9GcmFnQ29sb3I9dmVjNCh2YWwsMS4wLDEuMCwxLjApO1xuI2lmZGVmIE9WRVJEUkFXX0lOU1BFQ1RPUlxuZ2xfRnJhZ0NvbG9yPXZlYzQoMS4wKTtcbiNlbmRpZlxufSIsInVuaWZvcm0gbWF0NCB1X21hdHJpeDt1bmlmb3JtIGZsb2F0IHVfZXh0cnVkZV9zY2FsZTt1bmlmb3JtIGZsb2F0IHVfb3BhY2l0eTt1bmlmb3JtIGZsb2F0IHVfaW50ZW5zaXR5O2F0dHJpYnV0ZSB2ZWMyIGFfcG9zO3ZhcnlpbmcgdmVjMiB2X2V4dHJ1ZGU7XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGhpZ2hwIGZsb2F0IHdlaWdodFxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBtZWRpdW1wIGZsb2F0IHJhZGl1c1xuY29uc3QgaGlnaHAgZmxvYXQgWkVSTz0xLjAvMjU1LjAvMTYuMDtcbiNkZWZpbmUgR0FVU1NfQ09FRiAwLjM5ODk0MjI4MDQwMTQzMjdcbnZvaWQgbWFpbih2b2lkKSB7XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBoaWdocCBmbG9hdCB3ZWlnaHRcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIG1lZGl1bXAgZmxvYXQgcmFkaXVzXG52ZWMyIHVuc2NhbGVkX2V4dHJ1ZGU9dmVjMihtb2QoYV9wb3MsMi4wKSoyLjAtMS4wKTtmbG9hdCBTPXNxcnQoLTIuMCpsb2coWkVSTy93ZWlnaHQvdV9pbnRlbnNpdHkvR0FVU1NfQ09FRikpLzMuMDt2X2V4dHJ1ZGU9Uyp1bnNjYWxlZF9leHRydWRlO3ZlYzIgZXh0cnVkZT12X2V4dHJ1ZGUqcmFkaXVzKnVfZXh0cnVkZV9zY2FsZTt2ZWM0IHBvcz12ZWM0KGZsb29yKGFfcG9zKjAuNSkrZXh0cnVkZSwwLDEpO2dsX1Bvc2l0aW9uPXVfbWF0cml4KnBvczt9IiksUWU9eXIoInVuaWZvcm0gc2FtcGxlcjJEIHVfaW1hZ2U7dW5pZm9ybSBzYW1wbGVyMkQgdV9jb2xvcl9yYW1wO3VuaWZvcm0gZmxvYXQgdV9vcGFjaXR5O3ZhcnlpbmcgdmVjMiB2X3Bvczt2b2lkIG1haW4oKSB7ZmxvYXQgdD10ZXh0dXJlMkQodV9pbWFnZSx2X3Bvcykucjt2ZWM0IGNvbG9yPXRleHR1cmUyRCh1X2NvbG9yX3JhbXAsdmVjMih0LDAuNSkpO2dsX0ZyYWdDb2xvcj1jb2xvcip1X29wYWNpdHk7XG4jaWZkZWYgT1ZFUkRSQVdfSU5TUEVDVE9SXG5nbF9GcmFnQ29sb3I9dmVjNCgwLjApO1xuI2VuZGlmXG59IiwidW5pZm9ybSBtYXQ0IHVfbWF0cml4O3VuaWZvcm0gdmVjMiB1X3dvcmxkO2F0dHJpYnV0ZSB2ZWMyIGFfcG9zO3ZhcnlpbmcgdmVjMiB2X3Bvczt2b2lkIG1haW4oKSB7Z2xfUG9zaXRpb249dV9tYXRyaXgqdmVjNChhX3Bvcyp1X3dvcmxkLDAsMSk7dl9wb3MueD1hX3Bvcy54O3ZfcG9zLnk9MS4wLWFfcG9zLnk7fSIpLCRlPXlyKCJ2YXJ5aW5nIGZsb2F0IHZfcGxhY2VkO3ZhcnlpbmcgZmxvYXQgdl9ub3RVc2VkO3ZvaWQgbWFpbigpIHtmbG9hdCBhbHBoYT0wLjU7Z2xfRnJhZ0NvbG9yPXZlYzQoMS4wLDAuMCwwLjAsMS4wKSphbHBoYTtpZiAodl9wbGFjZWQgPiAwLjUpIHtnbF9GcmFnQ29sb3I9dmVjNCgwLjAsMC4wLDEuMCwwLjUpKmFscGhhO31pZiAodl9ub3RVc2VkID4gMC41KSB7Z2xfRnJhZ0NvbG9yKj0uMTt9fSIsImF0dHJpYnV0ZSB2ZWMyIGFfcG9zO2F0dHJpYnV0ZSB2ZWMyIGFfYW5jaG9yX3BvczthdHRyaWJ1dGUgdmVjMiBhX2V4dHJ1ZGU7YXR0cmlidXRlIHZlYzIgYV9wbGFjZWQ7YXR0cmlidXRlIHZlYzIgYV9zaGlmdDt1bmlmb3JtIG1hdDQgdV9tYXRyaXg7dW5pZm9ybSB2ZWMyIHVfZXh0cnVkZV9zY2FsZTt1bmlmb3JtIGZsb2F0IHVfY2FtZXJhX3RvX2NlbnRlcl9kaXN0YW5jZTt2YXJ5aW5nIGZsb2F0IHZfcGxhY2VkO3ZhcnlpbmcgZmxvYXQgdl9ub3RVc2VkO3ZvaWQgbWFpbigpIHt2ZWM0IHByb2plY3RlZFBvaW50PXVfbWF0cml4KnZlYzQoYV9hbmNob3JfcG9zLDAsMSk7aGlnaHAgZmxvYXQgY2FtZXJhX3RvX2FuY2hvcl9kaXN0YW5jZT1wcm9qZWN0ZWRQb2ludC53O2hpZ2hwIGZsb2F0IGNvbGxpc2lvbl9wZXJzcGVjdGl2ZV9yYXRpbz1jbGFtcCgwLjUrMC41Kih1X2NhbWVyYV90b19jZW50ZXJfZGlzdGFuY2UvY2FtZXJhX3RvX2FuY2hvcl9kaXN0YW5jZSksMC4wLDQuMCk7Z2xfUG9zaXRpb249dV9tYXRyaXgqdmVjNChhX3BvcywwLjAsMS4wKTtnbF9Qb3NpdGlvbi54eSs9KGFfZXh0cnVkZSthX3NoaWZ0KSp1X2V4dHJ1ZGVfc2NhbGUqZ2xfUG9zaXRpb24udypjb2xsaXNpb25fcGVyc3BlY3RpdmVfcmF0aW87dl9wbGFjZWQ9YV9wbGFjZWQueDt2X25vdFVzZWQ9YV9wbGFjZWQueTt9IiksdHI9eXIoInZhcnlpbmcgZmxvYXQgdl9yYWRpdXM7dmFyeWluZyB2ZWMyIHZfZXh0cnVkZTt2YXJ5aW5nIGZsb2F0IHZfcGVyc3BlY3RpdmVfcmF0aW87dmFyeWluZyBmbG9hdCB2X2NvbGxpc2lvbjt2b2lkIG1haW4oKSB7ZmxvYXQgYWxwaGE9MC41Km1pbih2X3BlcnNwZWN0aXZlX3JhdGlvLDEuMCk7ZmxvYXQgc3Ryb2tlX3JhZGl1cz0wLjkqbWF4KHZfcGVyc3BlY3RpdmVfcmF0aW8sMS4wKTtmbG9hdCBkaXN0YW5jZV90b19jZW50ZXI9bGVuZ3RoKHZfZXh0cnVkZSk7ZmxvYXQgZGlzdGFuY2VfdG9fZWRnZT1hYnMoZGlzdGFuY2VfdG9fY2VudGVyLXZfcmFkaXVzKTtmbG9hdCBvcGFjaXR5X3Q9c21vb3Roc3RlcCgtc3Ryb2tlX3JhZGl1cywwLjAsLWRpc3RhbmNlX3RvX2VkZ2UpO3ZlYzQgY29sb3I9bWl4KHZlYzQoMC4wLDAuMCwxLjAsMC41KSx2ZWM0KDEuMCwwLjAsMC4wLDEuMCksdl9jb2xsaXNpb24pO2dsX0ZyYWdDb2xvcj1jb2xvciphbHBoYSpvcGFjaXR5X3Q7fSIsImF0dHJpYnV0ZSB2ZWMyIGFfcG9zO2F0dHJpYnV0ZSBmbG9hdCBhX3JhZGl1czthdHRyaWJ1dGUgdmVjMiBhX2ZsYWdzO3VuaWZvcm0gbWF0NCB1X21hdHJpeDt1bmlmb3JtIG1hdDQgdV9pbnZfbWF0cml4O3VuaWZvcm0gdmVjMiB1X3ZpZXdwb3J0X3NpemU7dW5pZm9ybSBmbG9hdCB1X2NhbWVyYV90b19jZW50ZXJfZGlzdGFuY2U7dmFyeWluZyBmbG9hdCB2X3JhZGl1czt2YXJ5aW5nIHZlYzIgdl9leHRydWRlO3ZhcnlpbmcgZmxvYXQgdl9wZXJzcGVjdGl2ZV9yYXRpbzt2YXJ5aW5nIGZsb2F0IHZfY29sbGlzaW9uO3ZlYzMgdG9UaWxlUG9zaXRpb24odmVjMiBzY3JlZW5Qb3MpIHt2ZWM0IHJheVN0YXJ0PXVfaW52X21hdHJpeCp2ZWM0KHNjcmVlblBvcywtMS4wLDEuMCk7dmVjNCByYXlFbmQgID11X2ludl9tYXRyaXgqdmVjNChzY3JlZW5Qb3MsIDEuMCwxLjApO3JheVN0YXJ0Lnh5ei89cmF5U3RhcnQudztyYXlFbmQueHl6ICAvPXJheUVuZC53O2hpZ2hwIGZsb2F0IHQ9KDAuMC1yYXlTdGFydC56KS8ocmF5RW5kLnotcmF5U3RhcnQueik7cmV0dXJuIG1peChyYXlTdGFydC54eXoscmF5RW5kLnh5eix0KTt9dm9pZCBtYWluKCkge3ZlYzIgcXVhZENlbnRlclBvcz1hX3BvcztmbG9hdCByYWRpdXM9YV9yYWRpdXM7ZmxvYXQgY29sbGlzaW9uPWFfZmxhZ3MueDtmbG9hdCB2ZXJ0ZXhJZHg9YV9mbGFncy55O3ZlYzIgcXVhZFZlcnRleE9mZnNldD12ZWMyKG1peCgtMS4wLDEuMCxmbG9hdCh2ZXJ0ZXhJZHggPj0yLjApKSxtaXgoLTEuMCwxLjAsZmxvYXQodmVydGV4SWR4ID49MS4wICYmIHZlcnRleElkeCA8PTIuMCkpKTt2ZWMyIHF1YWRWZXJ0ZXhFeHRlbnQ9cXVhZFZlcnRleE9mZnNldCpyYWRpdXM7dmVjMyB0aWxlUG9zPXRvVGlsZVBvc2l0aW9uKHF1YWRDZW50ZXJQb3MpO3ZlYzQgY2xpcFBvcz11X21hdHJpeCp2ZWM0KHRpbGVQb3MsMS4wKTtoaWdocCBmbG9hdCBjYW1lcmFfdG9fYW5jaG9yX2Rpc3RhbmNlPWNsaXBQb3MudztoaWdocCBmbG9hdCBjb2xsaXNpb25fcGVyc3BlY3RpdmVfcmF0aW89Y2xhbXAoMC41KzAuNSoodV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlL2NhbWVyYV90b19hbmNob3JfZGlzdGFuY2UpLDAuMCw0LjApO2Zsb2F0IHBhZGRpbmdfZmFjdG9yPTEuMjt2X3JhZGl1cz1yYWRpdXM7dl9leHRydWRlPXF1YWRWZXJ0ZXhFeHRlbnQqcGFkZGluZ19mYWN0b3I7dl9wZXJzcGVjdGl2ZV9yYXRpbz1jb2xsaXNpb25fcGVyc3BlY3RpdmVfcmF0aW87dl9jb2xsaXNpb249Y29sbGlzaW9uO2dsX1Bvc2l0aW9uPXZlYzQoY2xpcFBvcy54eXovY2xpcFBvcy53LDEuMCkrdmVjNChxdWFkVmVydGV4RXh0ZW50KnBhZGRpbmdfZmFjdG9yL3Vfdmlld3BvcnRfc2l6ZSoyLjAsMC4wLDAuMCk7fSIpLGVyPXlyKCJ1bmlmb3JtIGhpZ2hwIHZlYzQgdV9jb2xvcjt1bmlmb3JtIHNhbXBsZXIyRCB1X292ZXJsYXk7dmFyeWluZyB2ZWMyIHZfdXY7dm9pZCBtYWluKCkge3ZlYzQgb3ZlcmxheV9jb2xvcj10ZXh0dXJlMkQodV9vdmVybGF5LHZfdXYpO2dsX0ZyYWdDb2xvcj1taXgodV9jb2xvcixvdmVybGF5X2NvbG9yLG92ZXJsYXlfY29sb3IuYSk7fSIsImF0dHJpYnV0ZSB2ZWMyIGFfcG9zO3ZhcnlpbmcgdmVjMiB2X3V2O3VuaWZvcm0gbWF0NCB1X21hdHJpeDt1bmlmb3JtIGZsb2F0IHVfb3ZlcmxheV9zY2FsZTt2b2lkIG1haW4oKSB7dl91dj1hX3Bvcy84MTkyLjA7Z2xfUG9zaXRpb249dV9tYXRyaXgqdmVjNChhX3Bvcyp1X292ZXJsYXlfc2NhbGUsMCwxKTt9IikscnI9eXIoIiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgaGlnaHAgdmVjNCBjb2xvclxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IG9wYWNpdHlcbnZvaWQgbWFpbigpIHtcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGhpZ2hwIHZlYzQgY29sb3JcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgb3BhY2l0eVxuZ2xfRnJhZ0NvbG9yPWNvbG9yKm9wYWNpdHk7XG4jaWZkZWYgT1ZFUkRSQVdfSU5TUEVDVE9SXG5nbF9GcmFnQ29sb3I9dmVjNCgxLjApO1xuI2VuZGlmXG59IiwiYXR0cmlidXRlIHZlYzIgYV9wb3M7dW5pZm9ybSBtYXQ0IHVfbWF0cml4O1xuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBoaWdocCB2ZWM0IGNvbG9yXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgb3BhY2l0eVxudm9pZCBtYWluKCkge1xuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgaGlnaHAgdmVjNCBjb2xvclxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBvcGFjaXR5XG5nbF9Qb3NpdGlvbj11X21hdHJpeCp2ZWM0KGFfcG9zLDAsMSk7fSIpLG5yPXlyKCJ2YXJ5aW5nIHZlYzIgdl9wb3M7XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGhpZ2hwIHZlYzQgb3V0bGluZV9jb2xvclxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IG9wYWNpdHlcbnZvaWQgbWFpbigpIHtcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGhpZ2hwIHZlYzQgb3V0bGluZV9jb2xvclxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBvcGFjaXR5XG5mbG9hdCBkaXN0PWxlbmd0aCh2X3Bvcy1nbF9GcmFnQ29vcmQueHkpO2Zsb2F0IGFscGhhPTEuMC1zbW9vdGhzdGVwKDAuMCwxLjAsZGlzdCk7Z2xfRnJhZ0NvbG9yPW91dGxpbmVfY29sb3IqKGFscGhhKm9wYWNpdHkpO1xuI2lmZGVmIE9WRVJEUkFXX0lOU1BFQ1RPUlxuZ2xfRnJhZ0NvbG9yPXZlYzQoMS4wKTtcbiNlbmRpZlxufSIsImF0dHJpYnV0ZSB2ZWMyIGFfcG9zO3VuaWZvcm0gbWF0NCB1X21hdHJpeDt1bmlmb3JtIHZlYzIgdV93b3JsZDt2YXJ5aW5nIHZlYzIgdl9wb3M7XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGhpZ2hwIHZlYzQgb3V0bGluZV9jb2xvclxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IG9wYWNpdHlcbnZvaWQgbWFpbigpIHtcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGhpZ2hwIHZlYzQgb3V0bGluZV9jb2xvclxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBvcGFjaXR5XG5nbF9Qb3NpdGlvbj11X21hdHJpeCp2ZWM0KGFfcG9zLDAsMSk7dl9wb3M9KGdsX1Bvc2l0aW9uLnh5L2dsX1Bvc2l0aW9uLncrMS4wKS8yLjAqdV93b3JsZDt9IiksaXI9eXIoInVuaWZvcm0gdmVjMiB1X3RleHNpemU7dW5pZm9ybSBzYW1wbGVyMkQgdV9pbWFnZTt1bmlmb3JtIGZsb2F0IHVfZmFkZTt2YXJ5aW5nIHZlYzIgdl9wb3NfYTt2YXJ5aW5nIHZlYzIgdl9wb3NfYjt2YXJ5aW5nIHZlYzIgdl9wb3M7XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgb3BhY2l0eVxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIHZlYzQgcGF0dGVybl9mcm9tXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgdmVjNCBwYXR0ZXJuX3RvXG52b2lkIG1haW4oKSB7XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IG9wYWNpdHlcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIG1lZGl1bXAgdmVjNCBwYXR0ZXJuX2Zyb21cbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIG1lZGl1bXAgdmVjNCBwYXR0ZXJuX3RvXG52ZWMyIHBhdHRlcm5fdGxfYT1wYXR0ZXJuX2Zyb20ueHk7dmVjMiBwYXR0ZXJuX2JyX2E9cGF0dGVybl9mcm9tLnp3O3ZlYzIgcGF0dGVybl90bF9iPXBhdHRlcm5fdG8ueHk7dmVjMiBwYXR0ZXJuX2JyX2I9cGF0dGVybl90by56dzt2ZWMyIGltYWdlY29vcmQ9bW9kKHZfcG9zX2EsMS4wKTt2ZWMyIHBvcz1taXgocGF0dGVybl90bF9hL3VfdGV4c2l6ZSxwYXR0ZXJuX2JyX2EvdV90ZXhzaXplLGltYWdlY29vcmQpO3ZlYzQgY29sb3IxPXRleHR1cmUyRCh1X2ltYWdlLHBvcyk7dmVjMiBpbWFnZWNvb3JkX2I9bW9kKHZfcG9zX2IsMS4wKTt2ZWMyIHBvczI9bWl4KHBhdHRlcm5fdGxfYi91X3RleHNpemUscGF0dGVybl9icl9iL3VfdGV4c2l6ZSxpbWFnZWNvb3JkX2IpO3ZlYzQgY29sb3IyPXRleHR1cmUyRCh1X2ltYWdlLHBvczIpO2Zsb2F0IGRpc3Q9bGVuZ3RoKHZfcG9zLWdsX0ZyYWdDb29yZC54eSk7ZmxvYXQgYWxwaGE9MS4wLXNtb290aHN0ZXAoMC4wLDEuMCxkaXN0KTtnbF9GcmFnQ29sb3I9bWl4KGNvbG9yMSxjb2xvcjIsdV9mYWRlKSphbHBoYSpvcGFjaXR5O1xuI2lmZGVmIE9WRVJEUkFXX0lOU1BFQ1RPUlxuZ2xfRnJhZ0NvbG9yPXZlYzQoMS4wKTtcbiNlbmRpZlxufSIsInVuaWZvcm0gbWF0NCB1X21hdHJpeDt1bmlmb3JtIHZlYzIgdV93b3JsZDt1bmlmb3JtIHZlYzIgdV9waXhlbF9jb29yZF91cHBlcjt1bmlmb3JtIHZlYzIgdV9waXhlbF9jb29yZF9sb3dlcjt1bmlmb3JtIHZlYzMgdV9zY2FsZTthdHRyaWJ1dGUgdmVjMiBhX3Bvczt2YXJ5aW5nIHZlYzIgdl9wb3NfYTt2YXJ5aW5nIHZlYzIgdl9wb3NfYjt2YXJ5aW5nIHZlYzIgdl9wb3M7XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgb3BhY2l0eVxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIHZlYzQgcGF0dGVybl9mcm9tXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgdmVjNCBwYXR0ZXJuX3RvXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgcGl4ZWxfcmF0aW9fZnJvbVxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IHBpeGVsX3JhdGlvX3RvXG52b2lkIG1haW4oKSB7XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IG9wYWNpdHlcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIG1lZGl1bXAgdmVjNCBwYXR0ZXJuX2Zyb21cbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIG1lZGl1bXAgdmVjNCBwYXR0ZXJuX3RvXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IHBpeGVsX3JhdGlvX2Zyb21cbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgcGl4ZWxfcmF0aW9fdG9cbnZlYzIgcGF0dGVybl90bF9hPXBhdHRlcm5fZnJvbS54eTt2ZWMyIHBhdHRlcm5fYnJfYT1wYXR0ZXJuX2Zyb20uenc7dmVjMiBwYXR0ZXJuX3RsX2I9cGF0dGVybl90by54eTt2ZWMyIHBhdHRlcm5fYnJfYj1wYXR0ZXJuX3RvLnp3O2Zsb2F0IHRpbGVSYXRpbz11X3NjYWxlLng7ZmxvYXQgZnJvbVNjYWxlPXVfc2NhbGUueTtmbG9hdCB0b1NjYWxlPXVfc2NhbGUuejtnbF9Qb3NpdGlvbj11X21hdHJpeCp2ZWM0KGFfcG9zLDAsMSk7dmVjMiBkaXNwbGF5X3NpemVfYT0ocGF0dGVybl9icl9hLXBhdHRlcm5fdGxfYSkvcGl4ZWxfcmF0aW9fZnJvbTt2ZWMyIGRpc3BsYXlfc2l6ZV9iPShwYXR0ZXJuX2JyX2ItcGF0dGVybl90bF9iKS9waXhlbF9yYXRpb190bzt2X3Bvc19hPWdldF9wYXR0ZXJuX3Bvcyh1X3BpeGVsX2Nvb3JkX3VwcGVyLHVfcGl4ZWxfY29vcmRfbG93ZXIsZnJvbVNjYWxlKmRpc3BsYXlfc2l6ZV9hLHRpbGVSYXRpbyxhX3Bvcyk7dl9wb3NfYj1nZXRfcGF0dGVybl9wb3ModV9waXhlbF9jb29yZF91cHBlcix1X3BpeGVsX2Nvb3JkX2xvd2VyLHRvU2NhbGUqZGlzcGxheV9zaXplX2IsdGlsZVJhdGlvLGFfcG9zKTt2X3Bvcz0oZ2xfUG9zaXRpb24ueHkvZ2xfUG9zaXRpb24udysxLjApLzIuMCp1X3dvcmxkO30iKSxhcj15cigidW5pZm9ybSB2ZWMyIHVfdGV4c2l6ZTt1bmlmb3JtIGZsb2F0IHVfZmFkZTt1bmlmb3JtIHNhbXBsZXIyRCB1X2ltYWdlO3ZhcnlpbmcgdmVjMiB2X3Bvc19hO3ZhcnlpbmcgdmVjMiB2X3Bvc19iO1xuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IG9wYWNpdHlcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCB2ZWM0IHBhdHRlcm5fZnJvbVxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIHZlYzQgcGF0dGVybl90b1xudm9pZCBtYWluKCkge1xuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBvcGFjaXR5XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBtZWRpdW1wIHZlYzQgcGF0dGVybl9mcm9tXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBtZWRpdW1wIHZlYzQgcGF0dGVybl90b1xudmVjMiBwYXR0ZXJuX3RsX2E9cGF0dGVybl9mcm9tLnh5O3ZlYzIgcGF0dGVybl9icl9hPXBhdHRlcm5fZnJvbS56dzt2ZWMyIHBhdHRlcm5fdGxfYj1wYXR0ZXJuX3RvLnh5O3ZlYzIgcGF0dGVybl9icl9iPXBhdHRlcm5fdG8uenc7dmVjMiBpbWFnZWNvb3JkPW1vZCh2X3Bvc19hLDEuMCk7dmVjMiBwb3M9bWl4KHBhdHRlcm5fdGxfYS91X3RleHNpemUscGF0dGVybl9icl9hL3VfdGV4c2l6ZSxpbWFnZWNvb3JkKTt2ZWM0IGNvbG9yMT10ZXh0dXJlMkQodV9pbWFnZSxwb3MpO3ZlYzIgaW1hZ2Vjb29yZF9iPW1vZCh2X3Bvc19iLDEuMCk7dmVjMiBwb3MyPW1peChwYXR0ZXJuX3RsX2IvdV90ZXhzaXplLHBhdHRlcm5fYnJfYi91X3RleHNpemUsaW1hZ2Vjb29yZF9iKTt2ZWM0IGNvbG9yMj10ZXh0dXJlMkQodV9pbWFnZSxwb3MyKTtnbF9GcmFnQ29sb3I9bWl4KGNvbG9yMSxjb2xvcjIsdV9mYWRlKSpvcGFjaXR5O1xuI2lmZGVmIE9WRVJEUkFXX0lOU1BFQ1RPUlxuZ2xfRnJhZ0NvbG9yPXZlYzQoMS4wKTtcbiNlbmRpZlxufSIsInVuaWZvcm0gbWF0NCB1X21hdHJpeDt1bmlmb3JtIHZlYzIgdV9waXhlbF9jb29yZF91cHBlcjt1bmlmb3JtIHZlYzIgdV9waXhlbF9jb29yZF9sb3dlcjt1bmlmb3JtIHZlYzMgdV9zY2FsZTthdHRyaWJ1dGUgdmVjMiBhX3Bvczt2YXJ5aW5nIHZlYzIgdl9wb3NfYTt2YXJ5aW5nIHZlYzIgdl9wb3NfYjtcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBvcGFjaXR5XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgdmVjNCBwYXR0ZXJuX2Zyb21cbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCB2ZWM0IHBhdHRlcm5fdG9cbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBwaXhlbF9yYXRpb19mcm9tXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgcGl4ZWxfcmF0aW9fdG9cbnZvaWQgbWFpbigpIHtcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgb3BhY2l0eVxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbWVkaXVtcCB2ZWM0IHBhdHRlcm5fZnJvbVxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbWVkaXVtcCB2ZWM0IHBhdHRlcm5fdG9cbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgcGl4ZWxfcmF0aW9fZnJvbVxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBwaXhlbF9yYXRpb190b1xudmVjMiBwYXR0ZXJuX3RsX2E9cGF0dGVybl9mcm9tLnh5O3ZlYzIgcGF0dGVybl9icl9hPXBhdHRlcm5fZnJvbS56dzt2ZWMyIHBhdHRlcm5fdGxfYj1wYXR0ZXJuX3RvLnh5O3ZlYzIgcGF0dGVybl9icl9iPXBhdHRlcm5fdG8uenc7ZmxvYXQgdGlsZVpvb21SYXRpbz11X3NjYWxlLng7ZmxvYXQgZnJvbVNjYWxlPXVfc2NhbGUueTtmbG9hdCB0b1NjYWxlPXVfc2NhbGUuejt2ZWMyIGRpc3BsYXlfc2l6ZV9hPShwYXR0ZXJuX2JyX2EtcGF0dGVybl90bF9hKS9waXhlbF9yYXRpb19mcm9tO3ZlYzIgZGlzcGxheV9zaXplX2I9KHBhdHRlcm5fYnJfYi1wYXR0ZXJuX3RsX2IpL3BpeGVsX3JhdGlvX3RvO2dsX1Bvc2l0aW9uPXVfbWF0cml4KnZlYzQoYV9wb3MsMCwxKTt2X3Bvc19hPWdldF9wYXR0ZXJuX3Bvcyh1X3BpeGVsX2Nvb3JkX3VwcGVyLHVfcGl4ZWxfY29vcmRfbG93ZXIsZnJvbVNjYWxlKmRpc3BsYXlfc2l6ZV9hLHRpbGVab29tUmF0aW8sYV9wb3MpO3ZfcG9zX2I9Z2V0X3BhdHRlcm5fcG9zKHVfcGl4ZWxfY29vcmRfdXBwZXIsdV9waXhlbF9jb29yZF9sb3dlcix0b1NjYWxlKmRpc3BsYXlfc2l6ZV9iLHRpbGVab29tUmF0aW8sYV9wb3MpO30iKSxvcj15cigidmFyeWluZyB2ZWM0IHZfY29sb3I7dm9pZCBtYWluKCkge2dsX0ZyYWdDb2xvcj12X2NvbG9yO1xuI2lmZGVmIE9WRVJEUkFXX0lOU1BFQ1RPUlxuZ2xfRnJhZ0NvbG9yPXZlYzQoMS4wKTtcbiNlbmRpZlxufSIsInVuaWZvcm0gbWF0NCB1X21hdHJpeDt1bmlmb3JtIHZlYzMgdV9saWdodGNvbG9yO3VuaWZvcm0gbG93cCB2ZWMzIHVfbGlnaHRwb3M7dW5pZm9ybSBsb3dwIGZsb2F0IHVfbGlnaHRpbnRlbnNpdHk7dW5pZm9ybSBmbG9hdCB1X3ZlcnRpY2FsX2dyYWRpZW50O3VuaWZvcm0gbG93cCBmbG9hdCB1X29wYWNpdHk7YXR0cmlidXRlIHZlYzIgYV9wb3M7YXR0cmlidXRlIHZlYzQgYV9ub3JtYWxfZWQ7dmFyeWluZyB2ZWM0IHZfY29sb3I7XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGhpZ2hwIGZsb2F0IGJhc2VcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgaGlnaHAgZmxvYXQgaGVpZ2h0XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGhpZ2hwIHZlYzQgY29sb3JcbnZvaWQgbWFpbigpIHtcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGhpZ2hwIGZsb2F0IGJhc2VcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGhpZ2hwIGZsb2F0IGhlaWdodFxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgaGlnaHAgdmVjNCBjb2xvclxudmVjMyBub3JtYWw9YV9ub3JtYWxfZWQueHl6O2Jhc2U9bWF4KDAuMCxiYXNlKTtoZWlnaHQ9bWF4KDAuMCxoZWlnaHQpO2Zsb2F0IHQ9bW9kKG5vcm1hbC54LDIuMCk7Z2xfUG9zaXRpb249dV9tYXRyaXgqdmVjNChhX3Bvcyx0ID4gMC4wID8gaGVpZ2h0IDogYmFzZSwxKTtmbG9hdCBjb2xvcnZhbHVlPWNvbG9yLnIqMC4yMTI2K2NvbG9yLmcqMC43MTUyK2NvbG9yLmIqMC4wNzIyO3ZfY29sb3I9dmVjNCgwLjAsMC4wLDAuMCwxLjApO3ZlYzQgYW1iaWVudGxpZ2h0PXZlYzQoMC4wMywwLjAzLDAuMDMsMS4wKTtjb2xvcis9YW1iaWVudGxpZ2h0O2Zsb2F0IGRpcmVjdGlvbmFsPWNsYW1wKGRvdChub3JtYWwvMTYzODQuMCx1X2xpZ2h0cG9zKSwwLjAsMS4wKTtkaXJlY3Rpb25hbD1taXgoKDEuMC11X2xpZ2h0aW50ZW5zaXR5KSxtYXgoKDEuMC1jb2xvcnZhbHVlK3VfbGlnaHRpbnRlbnNpdHkpLDEuMCksZGlyZWN0aW9uYWwpO2lmIChub3JtYWwueSAhPTAuMCkge2RpcmVjdGlvbmFsKj0oKDEuMC11X3ZlcnRpY2FsX2dyYWRpZW50KSsodV92ZXJ0aWNhbF9ncmFkaWVudCpjbGFtcCgodCtiYXNlKSpwb3coaGVpZ2h0LzE1MC4wLDAuNSksbWl4KDAuNywwLjk4LDEuMC11X2xpZ2h0aW50ZW5zaXR5KSwxLjApKSk7fXZfY29sb3Iucis9Y2xhbXAoY29sb3IucipkaXJlY3Rpb25hbCp1X2xpZ2h0Y29sb3IucixtaXgoMC4wLDAuMywxLjAtdV9saWdodGNvbG9yLnIpLDEuMCk7dl9jb2xvci5nKz1jbGFtcChjb2xvci5nKmRpcmVjdGlvbmFsKnVfbGlnaHRjb2xvci5nLG1peCgwLjAsMC4zLDEuMC11X2xpZ2h0Y29sb3IuZyksMS4wKTt2X2NvbG9yLmIrPWNsYW1wKGNvbG9yLmIqZGlyZWN0aW9uYWwqdV9saWdodGNvbG9yLmIsbWl4KDAuMCwwLjMsMS4wLXVfbGlnaHRjb2xvci5iKSwxLjApO3ZfY29sb3IqPXVfb3BhY2l0eTt9Iiksc3I9eXIoInVuaWZvcm0gdmVjMiB1X3RleHNpemU7dW5pZm9ybSBmbG9hdCB1X2ZhZGU7dW5pZm9ybSBzYW1wbGVyMkQgdV9pbWFnZTt2YXJ5aW5nIHZlYzIgdl9wb3NfYTt2YXJ5aW5nIHZlYzIgdl9wb3NfYjt2YXJ5aW5nIHZlYzQgdl9saWdodGluZztcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBiYXNlXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgaGVpZ2h0XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgdmVjNCBwYXR0ZXJuX2Zyb21cbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCB2ZWM0IHBhdHRlcm5fdG9cbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBwaXhlbF9yYXRpb19mcm9tXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgcGl4ZWxfcmF0aW9fdG9cbnZvaWQgbWFpbigpIHtcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgYmFzZVxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBoZWlnaHRcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIG1lZGl1bXAgdmVjNCBwYXR0ZXJuX2Zyb21cbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIG1lZGl1bXAgdmVjNCBwYXR0ZXJuX3RvXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IHBpeGVsX3JhdGlvX2Zyb21cbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgcGl4ZWxfcmF0aW9fdG9cbnZlYzIgcGF0dGVybl90bF9hPXBhdHRlcm5fZnJvbS54eTt2ZWMyIHBhdHRlcm5fYnJfYT1wYXR0ZXJuX2Zyb20uenc7dmVjMiBwYXR0ZXJuX3RsX2I9cGF0dGVybl90by54eTt2ZWMyIHBhdHRlcm5fYnJfYj1wYXR0ZXJuX3RvLnp3O3ZlYzIgaW1hZ2Vjb29yZD1tb2Qodl9wb3NfYSwxLjApO3ZlYzIgcG9zPW1peChwYXR0ZXJuX3RsX2EvdV90ZXhzaXplLHBhdHRlcm5fYnJfYS91X3RleHNpemUsaW1hZ2Vjb29yZCk7dmVjNCBjb2xvcjE9dGV4dHVyZTJEKHVfaW1hZ2UscG9zKTt2ZWMyIGltYWdlY29vcmRfYj1tb2Qodl9wb3NfYiwxLjApO3ZlYzIgcG9zMj1taXgocGF0dGVybl90bF9iL3VfdGV4c2l6ZSxwYXR0ZXJuX2JyX2IvdV90ZXhzaXplLGltYWdlY29vcmRfYik7dmVjNCBjb2xvcjI9dGV4dHVyZTJEKHVfaW1hZ2UscG9zMik7dmVjNCBtaXhlZENvbG9yPW1peChjb2xvcjEsY29sb3IyLHVfZmFkZSk7Z2xfRnJhZ0NvbG9yPW1peGVkQ29sb3Iqdl9saWdodGluZztcbiNpZmRlZiBPVkVSRFJBV19JTlNQRUNUT1JcbmdsX0ZyYWdDb2xvcj12ZWM0KDEuMCk7XG4jZW5kaWZcbn0iLCJ1bmlmb3JtIG1hdDQgdV9tYXRyaXg7dW5pZm9ybSB2ZWMyIHVfcGl4ZWxfY29vcmRfdXBwZXI7dW5pZm9ybSB2ZWMyIHVfcGl4ZWxfY29vcmRfbG93ZXI7dW5pZm9ybSBmbG9hdCB1X2hlaWdodF9mYWN0b3I7dW5pZm9ybSB2ZWMzIHVfc2NhbGU7dW5pZm9ybSBmbG9hdCB1X3ZlcnRpY2FsX2dyYWRpZW50O3VuaWZvcm0gbG93cCBmbG9hdCB1X29wYWNpdHk7dW5pZm9ybSB2ZWMzIHVfbGlnaHRjb2xvcjt1bmlmb3JtIGxvd3AgdmVjMyB1X2xpZ2h0cG9zO3VuaWZvcm0gbG93cCBmbG9hdCB1X2xpZ2h0aW50ZW5zaXR5O2F0dHJpYnV0ZSB2ZWMyIGFfcG9zO2F0dHJpYnV0ZSB2ZWM0IGFfbm9ybWFsX2VkO3ZhcnlpbmcgdmVjMiB2X3Bvc19hO3ZhcnlpbmcgdmVjMiB2X3Bvc19iO3ZhcnlpbmcgdmVjNCB2X2xpZ2h0aW5nO1xuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IGJhc2VcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBoZWlnaHRcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCB2ZWM0IHBhdHRlcm5fZnJvbVxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIHZlYzQgcGF0dGVybl90b1xuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IHBpeGVsX3JhdGlvX2Zyb21cbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBwaXhlbF9yYXRpb190b1xudm9pZCBtYWluKCkge1xuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBiYXNlXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IGhlaWdodFxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbWVkaXVtcCB2ZWM0IHBhdHRlcm5fZnJvbVxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbWVkaXVtcCB2ZWM0IHBhdHRlcm5fdG9cbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgcGl4ZWxfcmF0aW9fZnJvbVxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBwaXhlbF9yYXRpb190b1xudmVjMiBwYXR0ZXJuX3RsX2E9cGF0dGVybl9mcm9tLnh5O3ZlYzIgcGF0dGVybl9icl9hPXBhdHRlcm5fZnJvbS56dzt2ZWMyIHBhdHRlcm5fdGxfYj1wYXR0ZXJuX3RvLnh5O3ZlYzIgcGF0dGVybl9icl9iPXBhdHRlcm5fdG8uenc7ZmxvYXQgdGlsZVJhdGlvPXVfc2NhbGUueDtmbG9hdCBmcm9tU2NhbGU9dV9zY2FsZS55O2Zsb2F0IHRvU2NhbGU9dV9zY2FsZS56O3ZlYzMgbm9ybWFsPWFfbm9ybWFsX2VkLnh5ejtmbG9hdCBlZGdlZGlzdGFuY2U9YV9ub3JtYWxfZWQudzt2ZWMyIGRpc3BsYXlfc2l6ZV9hPShwYXR0ZXJuX2JyX2EtcGF0dGVybl90bF9hKS9waXhlbF9yYXRpb19mcm9tO3ZlYzIgZGlzcGxheV9zaXplX2I9KHBhdHRlcm5fYnJfYi1wYXR0ZXJuX3RsX2IpL3BpeGVsX3JhdGlvX3RvO2Jhc2U9bWF4KDAuMCxiYXNlKTtoZWlnaHQ9bWF4KDAuMCxoZWlnaHQpO2Zsb2F0IHQ9bW9kKG5vcm1hbC54LDIuMCk7ZmxvYXQgej10ID4gMC4wID8gaGVpZ2h0IDogYmFzZTtnbF9Qb3NpdGlvbj11X21hdHJpeCp2ZWM0KGFfcG9zLHosMSk7dmVjMiBwb3M9bm9ybWFsLng9PTEuMCAmJiBub3JtYWwueT09MC4wICYmIG5vcm1hbC56PT0xNjM4NC4wXG4/IGFfcG9zXG46IHZlYzIoZWRnZWRpc3RhbmNlLHoqdV9oZWlnaHRfZmFjdG9yKTt2X3Bvc19hPWdldF9wYXR0ZXJuX3Bvcyh1X3BpeGVsX2Nvb3JkX3VwcGVyLHVfcGl4ZWxfY29vcmRfbG93ZXIsZnJvbVNjYWxlKmRpc3BsYXlfc2l6ZV9hLHRpbGVSYXRpbyxwb3MpO3ZfcG9zX2I9Z2V0X3BhdHRlcm5fcG9zKHVfcGl4ZWxfY29vcmRfdXBwZXIsdV9waXhlbF9jb29yZF9sb3dlcix0b1NjYWxlKmRpc3BsYXlfc2l6ZV9iLHRpbGVSYXRpbyxwb3MpO3ZfbGlnaHRpbmc9dmVjNCgwLjAsMC4wLDAuMCwxLjApO2Zsb2F0IGRpcmVjdGlvbmFsPWNsYW1wKGRvdChub3JtYWwvMTYzODMuMCx1X2xpZ2h0cG9zKSwwLjAsMS4wKTtkaXJlY3Rpb25hbD1taXgoKDEuMC11X2xpZ2h0aW50ZW5zaXR5KSxtYXgoKDAuNSt1X2xpZ2h0aW50ZW5zaXR5KSwxLjApLGRpcmVjdGlvbmFsKTtpZiAobm9ybWFsLnkgIT0wLjApIHtkaXJlY3Rpb25hbCo9KCgxLjAtdV92ZXJ0aWNhbF9ncmFkaWVudCkrKHVfdmVydGljYWxfZ3JhZGllbnQqY2xhbXAoKHQrYmFzZSkqcG93KGhlaWdodC8xNTAuMCwwLjUpLG1peCgwLjcsMC45OCwxLjAtdV9saWdodGludGVuc2l0eSksMS4wKSkpO312X2xpZ2h0aW5nLnJnYis9Y2xhbXAoZGlyZWN0aW9uYWwqdV9saWdodGNvbG9yLG1peCh2ZWMzKDAuMCksdmVjMygwLjMpLDEuMC11X2xpZ2h0Y29sb3IpLHZlYzMoMS4wKSk7dl9saWdodGluZyo9dV9vcGFjaXR5O30iKSxscj15cigiI2lmZGVmIEdMX0VTXG5wcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZW5kaWZcbnVuaWZvcm0gc2FtcGxlcjJEIHVfaW1hZ2U7dmFyeWluZyB2ZWMyIHZfcG9zO3VuaWZvcm0gdmVjMiB1X2RpbWVuc2lvbjt1bmlmb3JtIGZsb2F0IHVfem9vbTt1bmlmb3JtIGZsb2F0IHVfbWF4em9vbTt1bmlmb3JtIHZlYzQgdV91bnBhY2s7ZmxvYXQgZ2V0RWxldmF0aW9uKHZlYzIgY29vcmQsZmxvYXQgYmlhcykge3ZlYzQgZGF0YT10ZXh0dXJlMkQodV9pbWFnZSxjb29yZCkqMjU1LjA7ZGF0YS5hPS0xLjA7cmV0dXJuIGRvdChkYXRhLHVfdW5wYWNrKS80LjA7fXZvaWQgbWFpbigpIHt2ZWMyIGVwc2lsb249MS4wL3VfZGltZW5zaW9uO2Zsb2F0IGE9Z2V0RWxldmF0aW9uKHZfcG9zK3ZlYzIoLWVwc2lsb24ueCwtZXBzaWxvbi55KSwwLjApO2Zsb2F0IGI9Z2V0RWxldmF0aW9uKHZfcG9zK3ZlYzIoMCwtZXBzaWxvbi55KSwwLjApO2Zsb2F0IGM9Z2V0RWxldmF0aW9uKHZfcG9zK3ZlYzIoZXBzaWxvbi54LC1lcHNpbG9uLnkpLDAuMCk7ZmxvYXQgZD1nZXRFbGV2YXRpb24odl9wb3MrdmVjMigtZXBzaWxvbi54LDApLDAuMCk7ZmxvYXQgZT1nZXRFbGV2YXRpb24odl9wb3MsMC4wKTtmbG9hdCBmPWdldEVsZXZhdGlvbih2X3Bvcyt2ZWMyKGVwc2lsb24ueCwwKSwwLjApO2Zsb2F0IGc9Z2V0RWxldmF0aW9uKHZfcG9zK3ZlYzIoLWVwc2lsb24ueCxlcHNpbG9uLnkpLDAuMCk7ZmxvYXQgaD1nZXRFbGV2YXRpb24odl9wb3MrdmVjMigwLGVwc2lsb24ueSksMC4wKTtmbG9hdCBpPWdldEVsZXZhdGlvbih2X3Bvcyt2ZWMyKGVwc2lsb24ueCxlcHNpbG9uLnkpLDAuMCk7ZmxvYXQgZXhhZ2dlcmF0aW9uPXVfem9vbSA8IDIuMCA/IDAuNCA6IHVfem9vbSA8IDQuNSA/IDAuMzUgOiAwLjM7dmVjMiBkZXJpdj12ZWMyKChjK2YrZitpKS0oYStkK2QrZyksKGcraCtoK2kpLShhK2IrYitjKSkvIHBvdygyLjAsKHVfem9vbS11X21heHpvb20pKmV4YWdnZXJhdGlvbisxOS4yNTYyLXVfem9vbSk7Z2xfRnJhZ0NvbG9yPWNsYW1wKHZlYzQoZGVyaXYueC8yLjArMC41LGRlcml2LnkvMi4wKzAuNSwxLjAsMS4wKSwwLjAsMS4wKTtcbiNpZmRlZiBPVkVSRFJBV19JTlNQRUNUT1JcbmdsX0ZyYWdDb2xvcj12ZWM0KDEuMCk7XG4jZW5kaWZcbn0iLCJ1bmlmb3JtIG1hdDQgdV9tYXRyaXg7dW5pZm9ybSB2ZWMyIHVfZGltZW5zaW9uO2F0dHJpYnV0ZSB2ZWMyIGFfcG9zO2F0dHJpYnV0ZSB2ZWMyIGFfdGV4dHVyZV9wb3M7dmFyeWluZyB2ZWMyIHZfcG9zO3ZvaWQgbWFpbigpIHtnbF9Qb3NpdGlvbj11X21hdHJpeCp2ZWM0KGFfcG9zLDAsMSk7aGlnaHAgdmVjMiBlcHNpbG9uPTEuMC91X2RpbWVuc2lvbjtmbG9hdCBzY2FsZT0odV9kaW1lbnNpb24ueC0yLjApL3VfZGltZW5zaW9uLng7dl9wb3M9KGFfdGV4dHVyZV9wb3MvODE5Mi4wKSpzY2FsZStlcHNpbG9uO30iKSxjcj15cigidW5pZm9ybSBzYW1wbGVyMkQgdV9pbWFnZTt2YXJ5aW5nIHZlYzIgdl9wb3M7dW5pZm9ybSB2ZWMyIHVfbGF0cmFuZ2U7dW5pZm9ybSB2ZWMyIHVfbGlnaHQ7dW5pZm9ybSB2ZWM0IHVfc2hhZG93O3VuaWZvcm0gdmVjNCB1X2hpZ2hsaWdodDt1bmlmb3JtIHZlYzQgdV9hY2NlbnQ7XG4jZGVmaW5lIFBJIDMuMTQxNTkyNjUzNTg5NzkzXG52b2lkIG1haW4oKSB7dmVjNCBwaXhlbD10ZXh0dXJlMkQodV9pbWFnZSx2X3Bvcyk7dmVjMiBkZXJpdj0oKHBpeGVsLnJnKjIuMCktMS4wKTtmbG9hdCBzY2FsZUZhY3Rvcj1jb3MocmFkaWFucygodV9sYXRyYW5nZVswXS11X2xhdHJhbmdlWzFdKSooMS4wLXZfcG9zLnkpK3VfbGF0cmFuZ2VbMV0pKTtmbG9hdCBzbG9wZT1hdGFuKDEuMjUqbGVuZ3RoKGRlcml2KS9zY2FsZUZhY3Rvcik7ZmxvYXQgYXNwZWN0PWRlcml2LnggIT0wLjAgPyBhdGFuKGRlcml2LnksLWRlcml2LngpIDogUEkvMi4wKihkZXJpdi55ID4gMC4wID8gMS4wIDotMS4wKTtmbG9hdCBpbnRlbnNpdHk9dV9saWdodC54O2Zsb2F0IGF6aW11dGg9dV9saWdodC55K1BJO2Zsb2F0IGJhc2U9MS44NzUtaW50ZW5zaXR5KjEuNzU7ZmxvYXQgbWF4VmFsdWU9MC41KlBJO2Zsb2F0IHNjYWxlZFNsb3BlPWludGVuc2l0eSAhPTAuNSA/ICgocG93KGJhc2Usc2xvcGUpLTEuMCkvKHBvdyhiYXNlLG1heFZhbHVlKS0xLjApKSptYXhWYWx1ZSA6IHNsb3BlO2Zsb2F0IGFjY2VudD1jb3Moc2NhbGVkU2xvcGUpO3ZlYzQgYWNjZW50X2NvbG9yPSgxLjAtYWNjZW50KSp1X2FjY2VudCpjbGFtcChpbnRlbnNpdHkqMi4wLDAuMCwxLjApO2Zsb2F0IHNoYWRlPWFicyhtb2QoKGFzcGVjdCthemltdXRoKS9QSSswLjUsMi4wKS0xLjApO3ZlYzQgc2hhZGVfY29sb3I9bWl4KHVfc2hhZG93LHVfaGlnaGxpZ2h0LHNoYWRlKSpzaW4oc2NhbGVkU2xvcGUpKmNsYW1wKGludGVuc2l0eSoyLjAsMC4wLDEuMCk7Z2xfRnJhZ0NvbG9yPWFjY2VudF9jb2xvciooMS4wLXNoYWRlX2NvbG9yLmEpK3NoYWRlX2NvbG9yO1xuI2lmZGVmIE9WRVJEUkFXX0lOU1BFQ1RPUlxuZ2xfRnJhZ0NvbG9yPXZlYzQoMS4wKTtcbiNlbmRpZlxufSIsInVuaWZvcm0gbWF0NCB1X21hdHJpeDthdHRyaWJ1dGUgdmVjMiBhX3BvczthdHRyaWJ1dGUgdmVjMiBhX3RleHR1cmVfcG9zO3ZhcnlpbmcgdmVjMiB2X3Bvczt2b2lkIG1haW4oKSB7Z2xfUG9zaXRpb249dV9tYXRyaXgqdmVjNChhX3BvcywwLDEpO3ZfcG9zPWFfdGV4dHVyZV9wb3MvODE5Mi4wO30iKSx1cj15cigidW5pZm9ybSBsb3dwIGZsb2F0IHVfZGV2aWNlX3BpeGVsX3JhdGlvO3ZhcnlpbmcgdmVjMiB2X3dpZHRoMjt2YXJ5aW5nIHZlYzIgdl9ub3JtYWw7dmFyeWluZyBmbG9hdCB2X2dhbW1hX3NjYWxlO1xuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBoaWdocCB2ZWM0IGNvbG9yXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgYmx1clxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IG9wYWNpdHlcbnZvaWQgbWFpbigpIHtcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGhpZ2hwIHZlYzQgY29sb3JcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgYmx1clxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBvcGFjaXR5XG5mbG9hdCBkaXN0PWxlbmd0aCh2X25vcm1hbCkqdl93aWR0aDIucztmbG9hdCBibHVyMj0oYmx1cisxLjAvdV9kZXZpY2VfcGl4ZWxfcmF0aW8pKnZfZ2FtbWFfc2NhbGU7ZmxvYXQgYWxwaGE9Y2xhbXAobWluKGRpc3QtKHZfd2lkdGgyLnQtYmx1cjIpLHZfd2lkdGgyLnMtZGlzdCkvYmx1cjIsMC4wLDEuMCk7Z2xfRnJhZ0NvbG9yPWNvbG9yKihhbHBoYSpvcGFjaXR5KTtcbiNpZmRlZiBPVkVSRFJBV19JTlNQRUNUT1JcbmdsX0ZyYWdDb2xvcj12ZWM0KDEuMCk7XG4jZW5kaWZcbn0iLCJcbiNkZWZpbmUgc2NhbGUgMC4wMTU4NzMwMTZcbmF0dHJpYnV0ZSB2ZWMyIGFfcG9zX25vcm1hbDthdHRyaWJ1dGUgdmVjNCBhX2RhdGE7dW5pZm9ybSBtYXQ0IHVfbWF0cml4O3VuaWZvcm0gbWVkaXVtcCBmbG9hdCB1X3JhdGlvO3VuaWZvcm0gdmVjMiB1X3VuaXRzX3RvX3BpeGVsczt1bmlmb3JtIGxvd3AgZmxvYXQgdV9kZXZpY2VfcGl4ZWxfcmF0aW87dmFyeWluZyB2ZWMyIHZfbm9ybWFsO3ZhcnlpbmcgdmVjMiB2X3dpZHRoMjt2YXJ5aW5nIGZsb2F0IHZfZ2FtbWFfc2NhbGU7dmFyeWluZyBoaWdocCBmbG9hdCB2X2xpbmVzb2ZhcjtcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgaGlnaHAgdmVjNCBjb2xvclxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IGJsdXJcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBvcGFjaXR5XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIG1lZGl1bXAgZmxvYXQgZ2Fwd2lkdGhcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBvZmZzZXRcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbWVkaXVtcCBmbG9hdCB3aWR0aFxudm9pZCBtYWluKCkge1xuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgaGlnaHAgdmVjNCBjb2xvclxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBibHVyXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IG9wYWNpdHlcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIG1lZGl1bXAgZmxvYXQgZ2Fwd2lkdGhcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgb2Zmc2V0XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBtZWRpdW1wIGZsb2F0IHdpZHRoXG5mbG9hdCBBTlRJQUxJQVNJTkc9MS4wL3VfZGV2aWNlX3BpeGVsX3JhdGlvLzIuMDt2ZWMyIGFfZXh0cnVkZT1hX2RhdGEueHktMTI4LjA7ZmxvYXQgYV9kaXJlY3Rpb249bW9kKGFfZGF0YS56LDQuMCktMS4wO3ZfbGluZXNvZmFyPShmbG9vcihhX2RhdGEuei80LjApK2FfZGF0YS53KjY0LjApKjIuMDt2ZWMyIHBvcz1mbG9vcihhX3Bvc19ub3JtYWwqMC41KTttZWRpdW1wIHZlYzIgbm9ybWFsPWFfcG9zX25vcm1hbC0yLjAqcG9zO25vcm1hbC55PW5vcm1hbC55KjIuMC0xLjA7dl9ub3JtYWw9bm9ybWFsO2dhcHdpZHRoPWdhcHdpZHRoLzIuMDtmbG9hdCBoYWxmd2lkdGg9d2lkdGgvMi4wO29mZnNldD0tMS4wKm9mZnNldDtmbG9hdCBpbnNldD1nYXB3aWR0aCsoZ2Fwd2lkdGggPiAwLjAgPyBBTlRJQUxJQVNJTkcgOiAwLjApO2Zsb2F0IG91dHNldD1nYXB3aWR0aCtoYWxmd2lkdGgqKGdhcHdpZHRoID4gMC4wID8gMi4wIDogMS4wKSsoaGFsZndpZHRoPT0wLjAgPyAwLjAgOiBBTlRJQUxJQVNJTkcpO21lZGl1bXAgdmVjMiBkaXN0PW91dHNldCphX2V4dHJ1ZGUqc2NhbGU7bWVkaXVtcCBmbG9hdCB1PTAuNSphX2RpcmVjdGlvbjttZWRpdW1wIGZsb2F0IHQ9MS4wLWFicyh1KTttZWRpdW1wIHZlYzIgb2Zmc2V0Mj1vZmZzZXQqYV9leHRydWRlKnNjYWxlKm5vcm1hbC55Km1hdDIodCwtdSx1LHQpO3ZlYzQgcHJvamVjdGVkX2V4dHJ1ZGU9dV9tYXRyaXgqdmVjNChkaXN0L3VfcmF0aW8sMC4wLDAuMCk7Z2xfUG9zaXRpb249dV9tYXRyaXgqdmVjNChwb3Mrb2Zmc2V0Mi91X3JhdGlvLDAuMCwxLjApK3Byb2plY3RlZF9leHRydWRlO2Zsb2F0IGV4dHJ1ZGVfbGVuZ3RoX3dpdGhvdXRfcGVyc3BlY3RpdmU9bGVuZ3RoKGRpc3QpO2Zsb2F0IGV4dHJ1ZGVfbGVuZ3RoX3dpdGhfcGVyc3BlY3RpdmU9bGVuZ3RoKHByb2plY3RlZF9leHRydWRlLnh5L2dsX1Bvc2l0aW9uLncqdV91bml0c190b19waXhlbHMpO3ZfZ2FtbWFfc2NhbGU9ZXh0cnVkZV9sZW5ndGhfd2l0aG91dF9wZXJzcGVjdGl2ZS9leHRydWRlX2xlbmd0aF93aXRoX3BlcnNwZWN0aXZlO3Zfd2lkdGgyPXZlYzIob3V0c2V0LGluc2V0KTt9IiksZnI9eXIoInVuaWZvcm0gbG93cCBmbG9hdCB1X2RldmljZV9waXhlbF9yYXRpbzt1bmlmb3JtIHNhbXBsZXIyRCB1X2ltYWdlO3ZhcnlpbmcgdmVjMiB2X3dpZHRoMjt2YXJ5aW5nIHZlYzIgdl9ub3JtYWw7dmFyeWluZyBmbG9hdCB2X2dhbW1hX3NjYWxlO3ZhcnlpbmcgaGlnaHAgZmxvYXQgdl9saW5lcHJvZ3Jlc3M7XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgYmx1clxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IG9wYWNpdHlcbnZvaWQgbWFpbigpIHtcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgYmx1clxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBvcGFjaXR5XG5mbG9hdCBkaXN0PWxlbmd0aCh2X25vcm1hbCkqdl93aWR0aDIucztmbG9hdCBibHVyMj0oYmx1cisxLjAvdV9kZXZpY2VfcGl4ZWxfcmF0aW8pKnZfZ2FtbWFfc2NhbGU7ZmxvYXQgYWxwaGE9Y2xhbXAobWluKGRpc3QtKHZfd2lkdGgyLnQtYmx1cjIpLHZfd2lkdGgyLnMtZGlzdCkvYmx1cjIsMC4wLDEuMCk7dmVjNCBjb2xvcj10ZXh0dXJlMkQodV9pbWFnZSx2ZWMyKHZfbGluZXByb2dyZXNzLDAuNSkpO2dsX0ZyYWdDb2xvcj1jb2xvciooYWxwaGEqb3BhY2l0eSk7XG4jaWZkZWYgT1ZFUkRSQVdfSU5TUEVDVE9SXG5nbF9GcmFnQ29sb3I9dmVjNCgxLjApO1xuI2VuZGlmXG59IiwiXG4jZGVmaW5lIE1BWF9MSU5FX0RJU1RBTkNFIDMyNzY3LjBcbiNkZWZpbmUgc2NhbGUgMC4wMTU4NzMwMTZcbmF0dHJpYnV0ZSB2ZWMyIGFfcG9zX25vcm1hbDthdHRyaWJ1dGUgdmVjNCBhX2RhdGE7dW5pZm9ybSBtYXQ0IHVfbWF0cml4O3VuaWZvcm0gbWVkaXVtcCBmbG9hdCB1X3JhdGlvO3VuaWZvcm0gbG93cCBmbG9hdCB1X2RldmljZV9waXhlbF9yYXRpbzt1bmlmb3JtIHZlYzIgdV91bml0c190b19waXhlbHM7dmFyeWluZyB2ZWMyIHZfbm9ybWFsO3ZhcnlpbmcgdmVjMiB2X3dpZHRoMjt2YXJ5aW5nIGZsb2F0IHZfZ2FtbWFfc2NhbGU7dmFyeWluZyBoaWdocCBmbG9hdCB2X2xpbmVwcm9ncmVzcztcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBibHVyXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgb3BhY2l0eVxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBtZWRpdW1wIGZsb2F0IGdhcHdpZHRoXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgb2Zmc2V0XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIG1lZGl1bXAgZmxvYXQgd2lkdGhcbnZvaWQgbWFpbigpIHtcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgYmx1clxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBvcGFjaXR5XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBtZWRpdW1wIGZsb2F0IGdhcHdpZHRoXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IG9mZnNldFxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbWVkaXVtcCBmbG9hdCB3aWR0aFxuZmxvYXQgQU5USUFMSUFTSU5HPTEuMC91X2RldmljZV9waXhlbF9yYXRpby8yLjA7dmVjMiBhX2V4dHJ1ZGU9YV9kYXRhLnh5LTEyOC4wO2Zsb2F0IGFfZGlyZWN0aW9uPW1vZChhX2RhdGEueiw0LjApLTEuMDt2X2xpbmVwcm9ncmVzcz0oZmxvb3IoYV9kYXRhLnovNC4wKSthX2RhdGEudyo2NC4wKSoyLjAvTUFYX0xJTkVfRElTVEFOQ0U7dmVjMiBwb3M9Zmxvb3IoYV9wb3Nfbm9ybWFsKjAuNSk7bWVkaXVtcCB2ZWMyIG5vcm1hbD1hX3Bvc19ub3JtYWwtMi4wKnBvcztub3JtYWwueT1ub3JtYWwueSoyLjAtMS4wO3Zfbm9ybWFsPW5vcm1hbDtnYXB3aWR0aD1nYXB3aWR0aC8yLjA7ZmxvYXQgaGFsZndpZHRoPXdpZHRoLzIuMDtvZmZzZXQ9LTEuMCpvZmZzZXQ7ZmxvYXQgaW5zZXQ9Z2Fwd2lkdGgrKGdhcHdpZHRoID4gMC4wID8gQU5USUFMSUFTSU5HIDogMC4wKTtmbG9hdCBvdXRzZXQ9Z2Fwd2lkdGgraGFsZndpZHRoKihnYXB3aWR0aCA+IDAuMCA/IDIuMCA6IDEuMCkrKGhhbGZ3aWR0aD09MC4wID8gMC4wIDogQU5USUFMSUFTSU5HKTttZWRpdW1wIHZlYzIgZGlzdD1vdXRzZXQqYV9leHRydWRlKnNjYWxlO21lZGl1bXAgZmxvYXQgdT0wLjUqYV9kaXJlY3Rpb247bWVkaXVtcCBmbG9hdCB0PTEuMC1hYnModSk7bWVkaXVtcCB2ZWMyIG9mZnNldDI9b2Zmc2V0KmFfZXh0cnVkZSpzY2FsZSpub3JtYWwueSptYXQyKHQsLXUsdSx0KTt2ZWM0IHByb2plY3RlZF9leHRydWRlPXVfbWF0cml4KnZlYzQoZGlzdC91X3JhdGlvLDAuMCwwLjApO2dsX1Bvc2l0aW9uPXVfbWF0cml4KnZlYzQocG9zK29mZnNldDIvdV9yYXRpbywwLjAsMS4wKStwcm9qZWN0ZWRfZXh0cnVkZTtmbG9hdCBleHRydWRlX2xlbmd0aF93aXRob3V0X3BlcnNwZWN0aXZlPWxlbmd0aChkaXN0KTtmbG9hdCBleHRydWRlX2xlbmd0aF93aXRoX3BlcnNwZWN0aXZlPWxlbmd0aChwcm9qZWN0ZWRfZXh0cnVkZS54eS9nbF9Qb3NpdGlvbi53KnVfdW5pdHNfdG9fcGl4ZWxzKTt2X2dhbW1hX3NjYWxlPWV4dHJ1ZGVfbGVuZ3RoX3dpdGhvdXRfcGVyc3BlY3RpdmUvZXh0cnVkZV9sZW5ndGhfd2l0aF9wZXJzcGVjdGl2ZTt2X3dpZHRoMj12ZWMyKG91dHNldCxpbnNldCk7fSIpLGhyPXlyKCJ1bmlmb3JtIGxvd3AgZmxvYXQgdV9kZXZpY2VfcGl4ZWxfcmF0aW87dW5pZm9ybSB2ZWMyIHVfdGV4c2l6ZTt1bmlmb3JtIGZsb2F0IHVfZmFkZTt1bmlmb3JtIG1lZGl1bXAgdmVjMyB1X3NjYWxlO3VuaWZvcm0gc2FtcGxlcjJEIHVfaW1hZ2U7dmFyeWluZyB2ZWMyIHZfbm9ybWFsO3ZhcnlpbmcgdmVjMiB2X3dpZHRoMjt2YXJ5aW5nIGZsb2F0IHZfbGluZXNvZmFyO3ZhcnlpbmcgZmxvYXQgdl9nYW1tYV9zY2FsZTt2YXJ5aW5nIGZsb2F0IHZfd2lkdGg7XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgdmVjNCBwYXR0ZXJuX2Zyb21cbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCB2ZWM0IHBhdHRlcm5fdG9cbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBwaXhlbF9yYXRpb19mcm9tXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgcGl4ZWxfcmF0aW9fdG9cbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBibHVyXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgb3BhY2l0eVxudm9pZCBtYWluKCkge1xuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbWVkaXVtcCB2ZWM0IHBhdHRlcm5fZnJvbVxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbWVkaXVtcCB2ZWM0IHBhdHRlcm5fdG9cbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgcGl4ZWxfcmF0aW9fZnJvbVxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBwaXhlbF9yYXRpb190b1xuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBibHVyXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IG9wYWNpdHlcbnZlYzIgcGF0dGVybl90bF9hPXBhdHRlcm5fZnJvbS54eTt2ZWMyIHBhdHRlcm5fYnJfYT1wYXR0ZXJuX2Zyb20uenc7dmVjMiBwYXR0ZXJuX3RsX2I9cGF0dGVybl90by54eTt2ZWMyIHBhdHRlcm5fYnJfYj1wYXR0ZXJuX3RvLnp3O2Zsb2F0IHRpbGVab29tUmF0aW89dV9zY2FsZS54O2Zsb2F0IGZyb21TY2FsZT11X3NjYWxlLnk7ZmxvYXQgdG9TY2FsZT11X3NjYWxlLno7dmVjMiBkaXNwbGF5X3NpemVfYT0ocGF0dGVybl9icl9hLXBhdHRlcm5fdGxfYSkvcGl4ZWxfcmF0aW9fZnJvbTt2ZWMyIGRpc3BsYXlfc2l6ZV9iPShwYXR0ZXJuX2JyX2ItcGF0dGVybl90bF9iKS9waXhlbF9yYXRpb190bzt2ZWMyIHBhdHRlcm5fc2l6ZV9hPXZlYzIoZGlzcGxheV9zaXplX2EueCpmcm9tU2NhbGUvdGlsZVpvb21SYXRpbyxkaXNwbGF5X3NpemVfYS55KTt2ZWMyIHBhdHRlcm5fc2l6ZV9iPXZlYzIoZGlzcGxheV9zaXplX2IueCp0b1NjYWxlL3RpbGVab29tUmF0aW8sZGlzcGxheV9zaXplX2IueSk7ZmxvYXQgYXNwZWN0X2E9ZGlzcGxheV9zaXplX2EueS92X3dpZHRoO2Zsb2F0IGFzcGVjdF9iPWRpc3BsYXlfc2l6ZV9iLnkvdl93aWR0aDtmbG9hdCBkaXN0PWxlbmd0aCh2X25vcm1hbCkqdl93aWR0aDIucztmbG9hdCBibHVyMj0oYmx1cisxLjAvdV9kZXZpY2VfcGl4ZWxfcmF0aW8pKnZfZ2FtbWFfc2NhbGU7ZmxvYXQgYWxwaGE9Y2xhbXAobWluKGRpc3QtKHZfd2lkdGgyLnQtYmx1cjIpLHZfd2lkdGgyLnMtZGlzdCkvYmx1cjIsMC4wLDEuMCk7ZmxvYXQgeF9hPW1vZCh2X2xpbmVzb2Zhci9wYXR0ZXJuX3NpemVfYS54KmFzcGVjdF9hLDEuMCk7ZmxvYXQgeF9iPW1vZCh2X2xpbmVzb2Zhci9wYXR0ZXJuX3NpemVfYi54KmFzcGVjdF9iLDEuMCk7ZmxvYXQgeT0wLjUqdl9ub3JtYWwueSswLjU7dmVjMiB0ZXhlbF9zaXplPTEuMC91X3RleHNpemU7dmVjMiBwb3NfYT1taXgocGF0dGVybl90bF9hKnRleGVsX3NpemUtdGV4ZWxfc2l6ZSxwYXR0ZXJuX2JyX2EqdGV4ZWxfc2l6ZSt0ZXhlbF9zaXplLHZlYzIoeF9hLHkpKTt2ZWMyIHBvc19iPW1peChwYXR0ZXJuX3RsX2IqdGV4ZWxfc2l6ZS10ZXhlbF9zaXplLHBhdHRlcm5fYnJfYip0ZXhlbF9zaXplK3RleGVsX3NpemUsdmVjMih4X2IseSkpO3ZlYzQgY29sb3I9bWl4KHRleHR1cmUyRCh1X2ltYWdlLHBvc19hKSx0ZXh0dXJlMkQodV9pbWFnZSxwb3NfYiksdV9mYWRlKTtnbF9GcmFnQ29sb3I9Y29sb3IqYWxwaGEqb3BhY2l0eTtcbiNpZmRlZiBPVkVSRFJBV19JTlNQRUNUT1JcbmdsX0ZyYWdDb2xvcj12ZWM0KDEuMCk7XG4jZW5kaWZcbn0iLCJcbiNkZWZpbmUgc2NhbGUgMC4wMTU4NzMwMTZcbiNkZWZpbmUgTElORV9ESVNUQU5DRV9TQ0FMRSAyLjBcbmF0dHJpYnV0ZSB2ZWMyIGFfcG9zX25vcm1hbDthdHRyaWJ1dGUgdmVjNCBhX2RhdGE7dW5pZm9ybSBtYXQ0IHVfbWF0cml4O3VuaWZvcm0gdmVjMiB1X3VuaXRzX3RvX3BpeGVsczt1bmlmb3JtIG1lZGl1bXAgZmxvYXQgdV9yYXRpbzt1bmlmb3JtIGxvd3AgZmxvYXQgdV9kZXZpY2VfcGl4ZWxfcmF0aW87dmFyeWluZyB2ZWMyIHZfbm9ybWFsO3ZhcnlpbmcgdmVjMiB2X3dpZHRoMjt2YXJ5aW5nIGZsb2F0IHZfbGluZXNvZmFyO3ZhcnlpbmcgZmxvYXQgdl9nYW1tYV9zY2FsZTt2YXJ5aW5nIGZsb2F0IHZfd2lkdGg7XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgYmx1clxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IG9wYWNpdHlcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBvZmZzZXRcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbWVkaXVtcCBmbG9hdCBnYXB3aWR0aFxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBtZWRpdW1wIGZsb2F0IHdpZHRoXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgZmxvb3J3aWR0aFxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIHZlYzQgcGF0dGVybl9mcm9tXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgdmVjNCBwYXR0ZXJuX3RvXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgcGl4ZWxfcmF0aW9fZnJvbVxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IHBpeGVsX3JhdGlvX3RvXG52b2lkIG1haW4oKSB7XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IGJsdXJcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgb3BhY2l0eVxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBvZmZzZXRcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIG1lZGl1bXAgZmxvYXQgZ2Fwd2lkdGhcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIG1lZGl1bXAgZmxvYXQgd2lkdGhcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgZmxvb3J3aWR0aFxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbWVkaXVtcCB2ZWM0IHBhdHRlcm5fZnJvbVxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbWVkaXVtcCB2ZWM0IHBhdHRlcm5fdG9cbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgcGl4ZWxfcmF0aW9fZnJvbVxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBwaXhlbF9yYXRpb190b1xuZmxvYXQgQU5USUFMSUFTSU5HPTEuMC91X2RldmljZV9waXhlbF9yYXRpby8yLjA7dmVjMiBhX2V4dHJ1ZGU9YV9kYXRhLnh5LTEyOC4wO2Zsb2F0IGFfZGlyZWN0aW9uPW1vZChhX2RhdGEueiw0LjApLTEuMDtmbG9hdCBhX2xpbmVzb2Zhcj0oZmxvb3IoYV9kYXRhLnovNC4wKSthX2RhdGEudyo2NC4wKSpMSU5FX0RJU1RBTkNFX1NDQUxFO3ZlYzIgcG9zPWZsb29yKGFfcG9zX25vcm1hbCowLjUpO21lZGl1bXAgdmVjMiBub3JtYWw9YV9wb3Nfbm9ybWFsLTIuMCpwb3M7bm9ybWFsLnk9bm9ybWFsLnkqMi4wLTEuMDt2X25vcm1hbD1ub3JtYWw7Z2Fwd2lkdGg9Z2Fwd2lkdGgvMi4wO2Zsb2F0IGhhbGZ3aWR0aD13aWR0aC8yLjA7b2Zmc2V0PS0xLjAqb2Zmc2V0O2Zsb2F0IGluc2V0PWdhcHdpZHRoKyhnYXB3aWR0aCA+IDAuMCA/IEFOVElBTElBU0lORyA6IDAuMCk7ZmxvYXQgb3V0c2V0PWdhcHdpZHRoK2hhbGZ3aWR0aCooZ2Fwd2lkdGggPiAwLjAgPyAyLjAgOiAxLjApKyhoYWxmd2lkdGg9PTAuMCA/IDAuMCA6IEFOVElBTElBU0lORyk7bWVkaXVtcCB2ZWMyIGRpc3Q9b3V0c2V0KmFfZXh0cnVkZSpzY2FsZTttZWRpdW1wIGZsb2F0IHU9MC41KmFfZGlyZWN0aW9uO21lZGl1bXAgZmxvYXQgdD0xLjAtYWJzKHUpO21lZGl1bXAgdmVjMiBvZmZzZXQyPW9mZnNldCphX2V4dHJ1ZGUqc2NhbGUqbm9ybWFsLnkqbWF0Mih0LC11LHUsdCk7dmVjNCBwcm9qZWN0ZWRfZXh0cnVkZT11X21hdHJpeCp2ZWM0KGRpc3QvdV9yYXRpbywwLjAsMC4wKTtnbF9Qb3NpdGlvbj11X21hdHJpeCp2ZWM0KHBvcytvZmZzZXQyL3VfcmF0aW8sMC4wLDEuMCkrcHJvamVjdGVkX2V4dHJ1ZGU7ZmxvYXQgZXh0cnVkZV9sZW5ndGhfd2l0aG91dF9wZXJzcGVjdGl2ZT1sZW5ndGgoZGlzdCk7ZmxvYXQgZXh0cnVkZV9sZW5ndGhfd2l0aF9wZXJzcGVjdGl2ZT1sZW5ndGgocHJvamVjdGVkX2V4dHJ1ZGUueHkvZ2xfUG9zaXRpb24udyp1X3VuaXRzX3RvX3BpeGVscyk7dl9nYW1tYV9zY2FsZT1leHRydWRlX2xlbmd0aF93aXRob3V0X3BlcnNwZWN0aXZlL2V4dHJ1ZGVfbGVuZ3RoX3dpdGhfcGVyc3BlY3RpdmU7dl9saW5lc29mYXI9YV9saW5lc29mYXI7dl93aWR0aDI9dmVjMihvdXRzZXQsaW5zZXQpO3Zfd2lkdGg9Zmxvb3J3aWR0aDt9IikscHI9eXIoInVuaWZvcm0gbG93cCBmbG9hdCB1X2RldmljZV9waXhlbF9yYXRpbzt1bmlmb3JtIHNhbXBsZXIyRCB1X2ltYWdlO3VuaWZvcm0gZmxvYXQgdV9zZGZnYW1tYTt1bmlmb3JtIGZsb2F0IHVfbWl4O3ZhcnlpbmcgdmVjMiB2X25vcm1hbDt2YXJ5aW5nIHZlYzIgdl93aWR0aDI7dmFyeWluZyB2ZWMyIHZfdGV4X2E7dmFyeWluZyB2ZWMyIHZfdGV4X2I7dmFyeWluZyBmbG9hdCB2X2dhbW1hX3NjYWxlO1xuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBoaWdocCB2ZWM0IGNvbG9yXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgYmx1clxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IG9wYWNpdHlcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbWVkaXVtcCBmbG9hdCB3aWR0aFxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IGZsb29yd2lkdGhcbnZvaWQgbWFpbigpIHtcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGhpZ2hwIHZlYzQgY29sb3JcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgYmx1clxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBvcGFjaXR5XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBtZWRpdW1wIGZsb2F0IHdpZHRoXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IGZsb29yd2lkdGhcbmZsb2F0IGRpc3Q9bGVuZ3RoKHZfbm9ybWFsKSp2X3dpZHRoMi5zO2Zsb2F0IGJsdXIyPShibHVyKzEuMC91X2RldmljZV9waXhlbF9yYXRpbykqdl9nYW1tYV9zY2FsZTtmbG9hdCBhbHBoYT1jbGFtcChtaW4oZGlzdC0odl93aWR0aDIudC1ibHVyMiksdl93aWR0aDIucy1kaXN0KS9ibHVyMiwwLjAsMS4wKTtmbG9hdCBzZGZkaXN0X2E9dGV4dHVyZTJEKHVfaW1hZ2Usdl90ZXhfYSkuYTtmbG9hdCBzZGZkaXN0X2I9dGV4dHVyZTJEKHVfaW1hZ2Usdl90ZXhfYikuYTtmbG9hdCBzZGZkaXN0PW1peChzZGZkaXN0X2Esc2RmZGlzdF9iLHVfbWl4KTthbHBoYSo9c21vb3Roc3RlcCgwLjUtdV9zZGZnYW1tYS9mbG9vcndpZHRoLDAuNSt1X3NkZmdhbW1hL2Zsb29yd2lkdGgsc2RmZGlzdCk7Z2xfRnJhZ0NvbG9yPWNvbG9yKihhbHBoYSpvcGFjaXR5KTtcbiNpZmRlZiBPVkVSRFJBV19JTlNQRUNUT1JcbmdsX0ZyYWdDb2xvcj12ZWM0KDEuMCk7XG4jZW5kaWZcbn0iLCJcbiNkZWZpbmUgc2NhbGUgMC4wMTU4NzMwMTZcbiNkZWZpbmUgTElORV9ESVNUQU5DRV9TQ0FMRSAyLjBcbmF0dHJpYnV0ZSB2ZWMyIGFfcG9zX25vcm1hbDthdHRyaWJ1dGUgdmVjNCBhX2RhdGE7dW5pZm9ybSBtYXQ0IHVfbWF0cml4O3VuaWZvcm0gbWVkaXVtcCBmbG9hdCB1X3JhdGlvO3VuaWZvcm0gbG93cCBmbG9hdCB1X2RldmljZV9waXhlbF9yYXRpbzt1bmlmb3JtIHZlYzIgdV9wYXR0ZXJuc2NhbGVfYTt1bmlmb3JtIGZsb2F0IHVfdGV4X3lfYTt1bmlmb3JtIHZlYzIgdV9wYXR0ZXJuc2NhbGVfYjt1bmlmb3JtIGZsb2F0IHVfdGV4X3lfYjt1bmlmb3JtIHZlYzIgdV91bml0c190b19waXhlbHM7dmFyeWluZyB2ZWMyIHZfbm9ybWFsO3ZhcnlpbmcgdmVjMiB2X3dpZHRoMjt2YXJ5aW5nIHZlYzIgdl90ZXhfYTt2YXJ5aW5nIHZlYzIgdl90ZXhfYjt2YXJ5aW5nIGZsb2F0IHZfZ2FtbWFfc2NhbGU7XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGhpZ2hwIHZlYzQgY29sb3JcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBibHVyXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgb3BhY2l0eVxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBtZWRpdW1wIGZsb2F0IGdhcHdpZHRoXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgb2Zmc2V0XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIG1lZGl1bXAgZmxvYXQgd2lkdGhcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBmbG9vcndpZHRoXG52b2lkIG1haW4oKSB7XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBoaWdocCB2ZWM0IGNvbG9yXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IGJsdXJcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgb3BhY2l0eVxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbWVkaXVtcCBmbG9hdCBnYXB3aWR0aFxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBvZmZzZXRcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIG1lZGl1bXAgZmxvYXQgd2lkdGhcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgZmxvb3J3aWR0aFxuZmxvYXQgQU5USUFMSUFTSU5HPTEuMC91X2RldmljZV9waXhlbF9yYXRpby8yLjA7dmVjMiBhX2V4dHJ1ZGU9YV9kYXRhLnh5LTEyOC4wO2Zsb2F0IGFfZGlyZWN0aW9uPW1vZChhX2RhdGEueiw0LjApLTEuMDtmbG9hdCBhX2xpbmVzb2Zhcj0oZmxvb3IoYV9kYXRhLnovNC4wKSthX2RhdGEudyo2NC4wKSpMSU5FX0RJU1RBTkNFX1NDQUxFO3ZlYzIgcG9zPWZsb29yKGFfcG9zX25vcm1hbCowLjUpO21lZGl1bXAgdmVjMiBub3JtYWw9YV9wb3Nfbm9ybWFsLTIuMCpwb3M7bm9ybWFsLnk9bm9ybWFsLnkqMi4wLTEuMDt2X25vcm1hbD1ub3JtYWw7Z2Fwd2lkdGg9Z2Fwd2lkdGgvMi4wO2Zsb2F0IGhhbGZ3aWR0aD13aWR0aC8yLjA7b2Zmc2V0PS0xLjAqb2Zmc2V0O2Zsb2F0IGluc2V0PWdhcHdpZHRoKyhnYXB3aWR0aCA+IDAuMCA/IEFOVElBTElBU0lORyA6IDAuMCk7ZmxvYXQgb3V0c2V0PWdhcHdpZHRoK2hhbGZ3aWR0aCooZ2Fwd2lkdGggPiAwLjAgPyAyLjAgOiAxLjApKyhoYWxmd2lkdGg9PTAuMCA/IDAuMCA6IEFOVElBTElBU0lORyk7bWVkaXVtcCB2ZWMyIGRpc3Q9b3V0c2V0KmFfZXh0cnVkZSpzY2FsZTttZWRpdW1wIGZsb2F0IHU9MC41KmFfZGlyZWN0aW9uO21lZGl1bXAgZmxvYXQgdD0xLjAtYWJzKHUpO21lZGl1bXAgdmVjMiBvZmZzZXQyPW9mZnNldCphX2V4dHJ1ZGUqc2NhbGUqbm9ybWFsLnkqbWF0Mih0LC11LHUsdCk7dmVjNCBwcm9qZWN0ZWRfZXh0cnVkZT11X21hdHJpeCp2ZWM0KGRpc3QvdV9yYXRpbywwLjAsMC4wKTtnbF9Qb3NpdGlvbj11X21hdHJpeCp2ZWM0KHBvcytvZmZzZXQyL3VfcmF0aW8sMC4wLDEuMCkrcHJvamVjdGVkX2V4dHJ1ZGU7ZmxvYXQgZXh0cnVkZV9sZW5ndGhfd2l0aG91dF9wZXJzcGVjdGl2ZT1sZW5ndGgoZGlzdCk7ZmxvYXQgZXh0cnVkZV9sZW5ndGhfd2l0aF9wZXJzcGVjdGl2ZT1sZW5ndGgocHJvamVjdGVkX2V4dHJ1ZGUueHkvZ2xfUG9zaXRpb24udyp1X3VuaXRzX3RvX3BpeGVscyk7dl9nYW1tYV9zY2FsZT1leHRydWRlX2xlbmd0aF93aXRob3V0X3BlcnNwZWN0aXZlL2V4dHJ1ZGVfbGVuZ3RoX3dpdGhfcGVyc3BlY3RpdmU7dl90ZXhfYT12ZWMyKGFfbGluZXNvZmFyKnVfcGF0dGVybnNjYWxlX2EueC9mbG9vcndpZHRoLG5vcm1hbC55KnVfcGF0dGVybnNjYWxlX2EueSt1X3RleF95X2EpO3ZfdGV4X2I9dmVjMihhX2xpbmVzb2Zhcip1X3BhdHRlcm5zY2FsZV9iLngvZmxvb3J3aWR0aCxub3JtYWwueSp1X3BhdHRlcm5zY2FsZV9iLnkrdV90ZXhfeV9iKTt2X3dpZHRoMj12ZWMyKG91dHNldCxpbnNldCk7fSIpLGRyPXlyKCJ1bmlmb3JtIGZsb2F0IHVfZmFkZV90O3VuaWZvcm0gZmxvYXQgdV9vcGFjaXR5O3VuaWZvcm0gc2FtcGxlcjJEIHVfaW1hZ2UwO3VuaWZvcm0gc2FtcGxlcjJEIHVfaW1hZ2UxO3ZhcnlpbmcgdmVjMiB2X3BvczA7dmFyeWluZyB2ZWMyIHZfcG9zMTt1bmlmb3JtIGZsb2F0IHVfYnJpZ2h0bmVzc19sb3c7dW5pZm9ybSBmbG9hdCB1X2JyaWdodG5lc3NfaGlnaDt1bmlmb3JtIGZsb2F0IHVfc2F0dXJhdGlvbl9mYWN0b3I7dW5pZm9ybSBmbG9hdCB1X2NvbnRyYXN0X2ZhY3Rvcjt1bmlmb3JtIHZlYzMgdV9zcGluX3dlaWdodHM7dm9pZCBtYWluKCkge3ZlYzQgY29sb3IwPXRleHR1cmUyRCh1X2ltYWdlMCx2X3BvczApO3ZlYzQgY29sb3IxPXRleHR1cmUyRCh1X2ltYWdlMSx2X3BvczEpO2lmIChjb2xvcjAuYSA+IDAuMCkge2NvbG9yMC5yZ2I9Y29sb3IwLnJnYi9jb2xvcjAuYTt9aWYgKGNvbG9yMS5hID4gMC4wKSB7Y29sb3IxLnJnYj1jb2xvcjEucmdiL2NvbG9yMS5hO312ZWM0IGNvbG9yPW1peChjb2xvcjAsY29sb3IxLHVfZmFkZV90KTtjb2xvci5hKj11X29wYWNpdHk7dmVjMyByZ2I9Y29sb3IucmdiO3JnYj12ZWMzKGRvdChyZ2IsdV9zcGluX3dlaWdodHMueHl6KSxkb3QocmdiLHVfc3Bpbl93ZWlnaHRzLnp4eSksZG90KHJnYix1X3NwaW5fd2VpZ2h0cy55engpKTtmbG9hdCBhdmVyYWdlPShjb2xvci5yK2NvbG9yLmcrY29sb3IuYikvMy4wO3JnYis9KGF2ZXJhZ2UtcmdiKSp1X3NhdHVyYXRpb25fZmFjdG9yO3JnYj0ocmdiLTAuNSkqdV9jb250cmFzdF9mYWN0b3IrMC41O3ZlYzMgdV9oaWdoX3ZlYz12ZWMzKHVfYnJpZ2h0bmVzc19sb3csdV9icmlnaHRuZXNzX2xvdyx1X2JyaWdodG5lc3NfbG93KTt2ZWMzIHVfbG93X3ZlYz12ZWMzKHVfYnJpZ2h0bmVzc19oaWdoLHVfYnJpZ2h0bmVzc19oaWdoLHVfYnJpZ2h0bmVzc19oaWdoKTtnbF9GcmFnQ29sb3I9dmVjNChtaXgodV9oaWdoX3ZlYyx1X2xvd192ZWMscmdiKSpjb2xvci5hLGNvbG9yLmEpO1xuI2lmZGVmIE9WRVJEUkFXX0lOU1BFQ1RPUlxuZ2xfRnJhZ0NvbG9yPXZlYzQoMS4wKTtcbiNlbmRpZlxufSIsInVuaWZvcm0gbWF0NCB1X21hdHJpeDt1bmlmb3JtIHZlYzIgdV90bF9wYXJlbnQ7dW5pZm9ybSBmbG9hdCB1X3NjYWxlX3BhcmVudDt1bmlmb3JtIGZsb2F0IHVfYnVmZmVyX3NjYWxlO2F0dHJpYnV0ZSB2ZWMyIGFfcG9zO2F0dHJpYnV0ZSB2ZWMyIGFfdGV4dHVyZV9wb3M7dmFyeWluZyB2ZWMyIHZfcG9zMDt2YXJ5aW5nIHZlYzIgdl9wb3MxO3ZvaWQgbWFpbigpIHtnbF9Qb3NpdGlvbj11X21hdHJpeCp2ZWM0KGFfcG9zLDAsMSk7dl9wb3MwPSgoKGFfdGV4dHVyZV9wb3MvODE5Mi4wKS0wLjUpL3VfYnVmZmVyX3NjYWxlICkrMC41O3ZfcG9zMT0odl9wb3MwKnVfc2NhbGVfcGFyZW50KSt1X3RsX3BhcmVudDt9IiksbXI9eXIoInVuaWZvcm0gc2FtcGxlcjJEIHVfdGV4dHVyZTt2YXJ5aW5nIHZlYzIgdl90ZXg7dmFyeWluZyBmbG9hdCB2X2ZhZGVfb3BhY2l0eTtcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBvcGFjaXR5XG52b2lkIG1haW4oKSB7XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IG9wYWNpdHlcbmxvd3AgZmxvYXQgYWxwaGE9b3BhY2l0eSp2X2ZhZGVfb3BhY2l0eTtnbF9GcmFnQ29sb3I9dGV4dHVyZTJEKHVfdGV4dHVyZSx2X3RleCkqYWxwaGE7XG4jaWZkZWYgT1ZFUkRSQVdfSU5TUEVDVE9SXG5nbF9GcmFnQ29sb3I9dmVjNCgxLjApO1xuI2VuZGlmXG59IiwiY29uc3QgZmxvYXQgUEk9My4xNDE1OTI2NTM1ODk3OTM7YXR0cmlidXRlIHZlYzQgYV9wb3Nfb2Zmc2V0O2F0dHJpYnV0ZSB2ZWM0IGFfZGF0YTthdHRyaWJ1dGUgdmVjNCBhX3BpeGVsb2Zmc2V0O2F0dHJpYnV0ZSB2ZWMzIGFfcHJvamVjdGVkX3BvczthdHRyaWJ1dGUgZmxvYXQgYV9mYWRlX29wYWNpdHk7dW5pZm9ybSBib29sIHVfaXNfc2l6ZV96b29tX2NvbnN0YW50O3VuaWZvcm0gYm9vbCB1X2lzX3NpemVfZmVhdHVyZV9jb25zdGFudDt1bmlmb3JtIGhpZ2hwIGZsb2F0IHVfc2l6ZV90O3VuaWZvcm0gaGlnaHAgZmxvYXQgdV9zaXplO3VuaWZvcm0gaGlnaHAgZmxvYXQgdV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlO3VuaWZvcm0gaGlnaHAgZmxvYXQgdV9waXRjaDt1bmlmb3JtIGJvb2wgdV9yb3RhdGVfc3ltYm9sO3VuaWZvcm0gaGlnaHAgZmxvYXQgdV9hc3BlY3RfcmF0aW87dW5pZm9ybSBmbG9hdCB1X2ZhZGVfY2hhbmdlO3VuaWZvcm0gbWF0NCB1X21hdHJpeDt1bmlmb3JtIG1hdDQgdV9sYWJlbF9wbGFuZV9tYXRyaXg7dW5pZm9ybSBtYXQ0IHVfY29vcmRfbWF0cml4O3VuaWZvcm0gYm9vbCB1X2lzX3RleHQ7dW5pZm9ybSBib29sIHVfcGl0Y2hfd2l0aF9tYXA7dW5pZm9ybSB2ZWMyIHVfdGV4c2l6ZTt2YXJ5aW5nIHZlYzIgdl90ZXg7dmFyeWluZyBmbG9hdCB2X2ZhZGVfb3BhY2l0eTtcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBvcGFjaXR5XG52b2lkIG1haW4oKSB7XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IG9wYWNpdHlcbnZlYzIgYV9wb3M9YV9wb3Nfb2Zmc2V0Lnh5O3ZlYzIgYV9vZmZzZXQ9YV9wb3Nfb2Zmc2V0Lnp3O3ZlYzIgYV90ZXg9YV9kYXRhLnh5O3ZlYzIgYV9zaXplPWFfZGF0YS56dztmbG9hdCBhX3NpemVfbWluPWZsb29yKGFfc2l6ZVswXSowLjUpO3ZlYzIgYV9weG9mZnNldD1hX3BpeGVsb2Zmc2V0Lnh5O3ZlYzIgYV9taW5Gb250U2NhbGU9YV9waXhlbG9mZnNldC56dy8yNTYuMDtoaWdocCBmbG9hdCBzZWdtZW50X2FuZ2xlPS1hX3Byb2plY3RlZF9wb3NbMl07ZmxvYXQgc2l6ZTtpZiAoIXVfaXNfc2l6ZV96b29tX2NvbnN0YW50ICYmICF1X2lzX3NpemVfZmVhdHVyZV9jb25zdGFudCkge3NpemU9bWl4KGFfc2l6ZV9taW4sYV9zaXplWzFdLHVfc2l6ZV90KS8xMjguMDt9IGVsc2UgaWYgKHVfaXNfc2l6ZV96b29tX2NvbnN0YW50ICYmICF1X2lzX3NpemVfZmVhdHVyZV9jb25zdGFudCkge3NpemU9YV9zaXplX21pbi8xMjguMDt9IGVsc2Uge3NpemU9dV9zaXplO312ZWM0IHByb2plY3RlZFBvaW50PXVfbWF0cml4KnZlYzQoYV9wb3MsMCwxKTtoaWdocCBmbG9hdCBjYW1lcmFfdG9fYW5jaG9yX2Rpc3RhbmNlPXByb2plY3RlZFBvaW50Lnc7aGlnaHAgZmxvYXQgZGlzdGFuY2VfcmF0aW89dV9waXRjaF93aXRoX21hcCA/XG5jYW1lcmFfdG9fYW5jaG9yX2Rpc3RhbmNlL3VfY2FtZXJhX3RvX2NlbnRlcl9kaXN0YW5jZSA6XG51X2NhbWVyYV90b19jZW50ZXJfZGlzdGFuY2UvY2FtZXJhX3RvX2FuY2hvcl9kaXN0YW5jZTtoaWdocCBmbG9hdCBwZXJzcGVjdGl2ZV9yYXRpbz1jbGFtcCgwLjUrMC41KmRpc3RhbmNlX3JhdGlvLDAuMCw0LjApO3NpemUqPXBlcnNwZWN0aXZlX3JhdGlvO2Zsb2F0IGZvbnRTY2FsZT11X2lzX3RleHQgPyBzaXplLzI0LjAgOiBzaXplO2hpZ2hwIGZsb2F0IHN5bWJvbF9yb3RhdGlvbj0wLjA7aWYgKHVfcm90YXRlX3N5bWJvbCkge3ZlYzQgb2Zmc2V0UHJvamVjdGVkUG9pbnQ9dV9tYXRyaXgqdmVjNChhX3Bvcyt2ZWMyKDEsMCksMCwxKTt2ZWMyIGE9cHJvamVjdGVkUG9pbnQueHkvcHJvamVjdGVkUG9pbnQudzt2ZWMyIGI9b2Zmc2V0UHJvamVjdGVkUG9pbnQueHkvb2Zmc2V0UHJvamVjdGVkUG9pbnQudztzeW1ib2xfcm90YXRpb249YXRhbigoYi55LWEueSkvdV9hc3BlY3RfcmF0aW8sYi54LWEueCk7fWhpZ2hwIGZsb2F0IGFuZ2xlX3Npbj1zaW4oc2VnbWVudF9hbmdsZStzeW1ib2xfcm90YXRpb24pO2hpZ2hwIGZsb2F0IGFuZ2xlX2Nvcz1jb3Moc2VnbWVudF9hbmdsZStzeW1ib2xfcm90YXRpb24pO21hdDIgcm90YXRpb25fbWF0cml4PW1hdDIoYW5nbGVfY29zLC0xLjAqYW5nbGVfc2luLGFuZ2xlX3NpbixhbmdsZV9jb3MpO3ZlYzQgcHJvamVjdGVkX3Bvcz11X2xhYmVsX3BsYW5lX21hdHJpeCp2ZWM0KGFfcHJvamVjdGVkX3Bvcy54eSwwLjAsMS4wKTtnbF9Qb3NpdGlvbj11X2Nvb3JkX21hdHJpeCp2ZWM0KHByb2plY3RlZF9wb3MueHkvcHJvamVjdGVkX3Bvcy53K3JvdGF0aW9uX21hdHJpeCooYV9vZmZzZXQvMzIuMCptYXgoYV9taW5Gb250U2NhbGUsZm9udFNjYWxlKSthX3B4b2Zmc2V0LzE2LjApLDAuMCwxLjApO3ZfdGV4PWFfdGV4L3VfdGV4c2l6ZTt2ZWMyIGZhZGVfb3BhY2l0eT11bnBhY2tfb3BhY2l0eShhX2ZhZGVfb3BhY2l0eSk7ZmxvYXQgZmFkZV9jaGFuZ2U9ZmFkZV9vcGFjaXR5WzFdID4gMC41ID8gdV9mYWRlX2NoYW5nZSA6LXVfZmFkZV9jaGFuZ2U7dl9mYWRlX29wYWNpdHk9bWF4KDAuMCxtaW4oMS4wLGZhZGVfb3BhY2l0eVswXStmYWRlX2NoYW5nZSkpO30iKSxncj15cigiI2RlZmluZSBTREZfUFggOC4wXG51bmlmb3JtIGJvb2wgdV9pc19oYWxvO3VuaWZvcm0gc2FtcGxlcjJEIHVfdGV4dHVyZTt1bmlmb3JtIGhpZ2hwIGZsb2F0IHVfZ2FtbWFfc2NhbGU7dW5pZm9ybSBsb3dwIGZsb2F0IHVfZGV2aWNlX3BpeGVsX3JhdGlvO3VuaWZvcm0gYm9vbCB1X2lzX3RleHQ7dmFyeWluZyB2ZWMyIHZfZGF0YTA7dmFyeWluZyB2ZWMzIHZfZGF0YTE7XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGhpZ2hwIHZlYzQgZmlsbF9jb2xvclxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBoaWdocCB2ZWM0IGhhbG9fY29sb3JcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBvcGFjaXR5XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgaGFsb193aWR0aFxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IGhhbG9fYmx1clxudm9pZCBtYWluKCkge1xuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgaGlnaHAgdmVjNCBmaWxsX2NvbG9yXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBoaWdocCB2ZWM0IGhhbG9fY29sb3JcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgb3BhY2l0eVxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBoYWxvX3dpZHRoXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IGhhbG9fYmx1clxuZmxvYXQgRURHRV9HQU1NQT0wLjEwNS91X2RldmljZV9waXhlbF9yYXRpbzt2ZWMyIHRleD12X2RhdGEwLnh5O2Zsb2F0IGdhbW1hX3NjYWxlPXZfZGF0YTEueDtmbG9hdCBzaXplPXZfZGF0YTEueTtmbG9hdCBmYWRlX29wYWNpdHk9dl9kYXRhMVsyXTtmbG9hdCBmb250U2NhbGU9dV9pc190ZXh0ID8gc2l6ZS8yNC4wIDogc2l6ZTtsb3dwIHZlYzQgY29sb3I9ZmlsbF9jb2xvcjtoaWdocCBmbG9hdCBnYW1tYT1FREdFX0dBTU1BLyhmb250U2NhbGUqdV9nYW1tYV9zY2FsZSk7bG93cCBmbG9hdCBidWZmPSgyNTYuMC02NC4wKS8yNTYuMDtpZiAodV9pc19oYWxvKSB7Y29sb3I9aGFsb19jb2xvcjtnYW1tYT0oaGFsb19ibHVyKjEuMTkvU0RGX1BYK0VER0VfR0FNTUEpLyhmb250U2NhbGUqdV9nYW1tYV9zY2FsZSk7YnVmZj0oNi4wLWhhbG9fd2lkdGgvZm9udFNjYWxlKS9TREZfUFg7fWxvd3AgZmxvYXQgZGlzdD10ZXh0dXJlMkQodV90ZXh0dXJlLHRleCkuYTtoaWdocCBmbG9hdCBnYW1tYV9zY2FsZWQ9Z2FtbWEqZ2FtbWFfc2NhbGU7aGlnaHAgZmxvYXQgYWxwaGE9c21vb3Roc3RlcChidWZmLWdhbW1hX3NjYWxlZCxidWZmK2dhbW1hX3NjYWxlZCxkaXN0KTtnbF9GcmFnQ29sb3I9Y29sb3IqKGFscGhhKm9wYWNpdHkqZmFkZV9vcGFjaXR5KTtcbiNpZmRlZiBPVkVSRFJBV19JTlNQRUNUT1JcbmdsX0ZyYWdDb2xvcj12ZWM0KDEuMCk7XG4jZW5kaWZcbn0iLCJjb25zdCBmbG9hdCBQST0zLjE0MTU5MjY1MzU4OTc5MzthdHRyaWJ1dGUgdmVjNCBhX3Bvc19vZmZzZXQ7YXR0cmlidXRlIHZlYzQgYV9kYXRhO2F0dHJpYnV0ZSB2ZWM0IGFfcGl4ZWxvZmZzZXQ7YXR0cmlidXRlIHZlYzMgYV9wcm9qZWN0ZWRfcG9zO2F0dHJpYnV0ZSBmbG9hdCBhX2ZhZGVfb3BhY2l0eTt1bmlmb3JtIGJvb2wgdV9pc19zaXplX3pvb21fY29uc3RhbnQ7dW5pZm9ybSBib29sIHVfaXNfc2l6ZV9mZWF0dXJlX2NvbnN0YW50O3VuaWZvcm0gaGlnaHAgZmxvYXQgdV9zaXplX3Q7dW5pZm9ybSBoaWdocCBmbG9hdCB1X3NpemU7dW5pZm9ybSBtYXQ0IHVfbWF0cml4O3VuaWZvcm0gbWF0NCB1X2xhYmVsX3BsYW5lX21hdHJpeDt1bmlmb3JtIG1hdDQgdV9jb29yZF9tYXRyaXg7dW5pZm9ybSBib29sIHVfaXNfdGV4dDt1bmlmb3JtIGJvb2wgdV9waXRjaF93aXRoX21hcDt1bmlmb3JtIGhpZ2hwIGZsb2F0IHVfcGl0Y2g7dW5pZm9ybSBib29sIHVfcm90YXRlX3N5bWJvbDt1bmlmb3JtIGhpZ2hwIGZsb2F0IHVfYXNwZWN0X3JhdGlvO3VuaWZvcm0gaGlnaHAgZmxvYXQgdV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlO3VuaWZvcm0gZmxvYXQgdV9mYWRlX2NoYW5nZTt1bmlmb3JtIHZlYzIgdV90ZXhzaXplO3ZhcnlpbmcgdmVjMiB2X2RhdGEwO3ZhcnlpbmcgdmVjMyB2X2RhdGExO1xuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBoaWdocCB2ZWM0IGZpbGxfY29sb3JcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgaGlnaHAgdmVjNCBoYWxvX2NvbG9yXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgb3BhY2l0eVxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IGhhbG9fd2lkdGhcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBoYWxvX2JsdXJcbnZvaWQgbWFpbigpIHtcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGhpZ2hwIHZlYzQgZmlsbF9jb2xvclxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgaGlnaHAgdmVjNCBoYWxvX2NvbG9yXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IG9wYWNpdHlcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgaGFsb193aWR0aFxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBoYWxvX2JsdXJcbnZlYzIgYV9wb3M9YV9wb3Nfb2Zmc2V0Lnh5O3ZlYzIgYV9vZmZzZXQ9YV9wb3Nfb2Zmc2V0Lnp3O3ZlYzIgYV90ZXg9YV9kYXRhLnh5O3ZlYzIgYV9zaXplPWFfZGF0YS56dztmbG9hdCBhX3NpemVfbWluPWZsb29yKGFfc2l6ZVswXSowLjUpO3ZlYzIgYV9weG9mZnNldD1hX3BpeGVsb2Zmc2V0Lnh5O2hpZ2hwIGZsb2F0IHNlZ21lbnRfYW5nbGU9LWFfcHJvamVjdGVkX3Bvc1syXTtmbG9hdCBzaXplO2lmICghdV9pc19zaXplX3pvb21fY29uc3RhbnQgJiYgIXVfaXNfc2l6ZV9mZWF0dXJlX2NvbnN0YW50KSB7c2l6ZT1taXgoYV9zaXplX21pbixhX3NpemVbMV0sdV9zaXplX3QpLzEyOC4wO30gZWxzZSBpZiAodV9pc19zaXplX3pvb21fY29uc3RhbnQgJiYgIXVfaXNfc2l6ZV9mZWF0dXJlX2NvbnN0YW50KSB7c2l6ZT1hX3NpemVfbWluLzEyOC4wO30gZWxzZSB7c2l6ZT11X3NpemU7fXZlYzQgcHJvamVjdGVkUG9pbnQ9dV9tYXRyaXgqdmVjNChhX3BvcywwLDEpO2hpZ2hwIGZsb2F0IGNhbWVyYV90b19hbmNob3JfZGlzdGFuY2U9cHJvamVjdGVkUG9pbnQudztoaWdocCBmbG9hdCBkaXN0YW5jZV9yYXRpbz11X3BpdGNoX3dpdGhfbWFwID9cbmNhbWVyYV90b19hbmNob3JfZGlzdGFuY2UvdV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlIDpcbnVfY2FtZXJhX3RvX2NlbnRlcl9kaXN0YW5jZS9jYW1lcmFfdG9fYW5jaG9yX2Rpc3RhbmNlO2hpZ2hwIGZsb2F0IHBlcnNwZWN0aXZlX3JhdGlvPWNsYW1wKDAuNSswLjUqZGlzdGFuY2VfcmF0aW8sMC4wLDQuMCk7c2l6ZSo9cGVyc3BlY3RpdmVfcmF0aW87ZmxvYXQgZm9udFNjYWxlPXVfaXNfdGV4dCA/IHNpemUvMjQuMCA6IHNpemU7aGlnaHAgZmxvYXQgc3ltYm9sX3JvdGF0aW9uPTAuMDtpZiAodV9yb3RhdGVfc3ltYm9sKSB7dmVjNCBvZmZzZXRQcm9qZWN0ZWRQb2ludD11X21hdHJpeCp2ZWM0KGFfcG9zK3ZlYzIoMSwwKSwwLDEpO3ZlYzIgYT1wcm9qZWN0ZWRQb2ludC54eS9wcm9qZWN0ZWRQb2ludC53O3ZlYzIgYj1vZmZzZXRQcm9qZWN0ZWRQb2ludC54eS9vZmZzZXRQcm9qZWN0ZWRQb2ludC53O3N5bWJvbF9yb3RhdGlvbj1hdGFuKChiLnktYS55KS91X2FzcGVjdF9yYXRpbyxiLngtYS54KTt9aGlnaHAgZmxvYXQgYW5nbGVfc2luPXNpbihzZWdtZW50X2FuZ2xlK3N5bWJvbF9yb3RhdGlvbik7aGlnaHAgZmxvYXQgYW5nbGVfY29zPWNvcyhzZWdtZW50X2FuZ2xlK3N5bWJvbF9yb3RhdGlvbik7bWF0MiByb3RhdGlvbl9tYXRyaXg9bWF0MihhbmdsZV9jb3MsLTEuMCphbmdsZV9zaW4sYW5nbGVfc2luLGFuZ2xlX2Nvcyk7dmVjNCBwcm9qZWN0ZWRfcG9zPXVfbGFiZWxfcGxhbmVfbWF0cml4KnZlYzQoYV9wcm9qZWN0ZWRfcG9zLnh5LDAuMCwxLjApO2dsX1Bvc2l0aW9uPXVfY29vcmRfbWF0cml4KnZlYzQocHJvamVjdGVkX3Bvcy54eS9wcm9qZWN0ZWRfcG9zLncrcm90YXRpb25fbWF0cml4KihhX29mZnNldC8zMi4wKmZvbnRTY2FsZSthX3B4b2Zmc2V0KSwwLjAsMS4wKTtmbG9hdCBnYW1tYV9zY2FsZT1nbF9Qb3NpdGlvbi53O3ZlYzIgZmFkZV9vcGFjaXR5PXVucGFja19vcGFjaXR5KGFfZmFkZV9vcGFjaXR5KTtmbG9hdCBmYWRlX2NoYW5nZT1mYWRlX29wYWNpdHlbMV0gPiAwLjUgPyB1X2ZhZGVfY2hhbmdlIDotdV9mYWRlX2NoYW5nZTtmbG9hdCBpbnRlcnBvbGF0ZWRfZmFkZV9vcGFjaXR5PW1heCgwLjAsbWluKDEuMCxmYWRlX29wYWNpdHlbMF0rZmFkZV9jaGFuZ2UpKTt2X2RhdGEwPWFfdGV4L3VfdGV4c2l6ZTt2X2RhdGExPXZlYzMoZ2FtbWFfc2NhbGUsc2l6ZSxpbnRlcnBvbGF0ZWRfZmFkZV9vcGFjaXR5KTt9IiksdnI9eXIoIiNkZWZpbmUgU0RGX1BYIDguMFxuI2RlZmluZSBTREYgMS4wXG4jZGVmaW5lIElDT04gMC4wXG51bmlmb3JtIGJvb2wgdV9pc19oYWxvO3VuaWZvcm0gc2FtcGxlcjJEIHVfdGV4dHVyZTt1bmlmb3JtIHNhbXBsZXIyRCB1X3RleHR1cmVfaWNvbjt1bmlmb3JtIGhpZ2hwIGZsb2F0IHVfZ2FtbWFfc2NhbGU7dW5pZm9ybSBsb3dwIGZsb2F0IHVfZGV2aWNlX3BpeGVsX3JhdGlvO3ZhcnlpbmcgdmVjNCB2X2RhdGEwO3ZhcnlpbmcgdmVjNCB2X2RhdGExO1xuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBoaWdocCB2ZWM0IGZpbGxfY29sb3JcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgaGlnaHAgdmVjNCBoYWxvX2NvbG9yXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgb3BhY2l0eVxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IGhhbG9fd2lkdGhcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBoYWxvX2JsdXJcbnZvaWQgbWFpbigpIHtcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGhpZ2hwIHZlYzQgZmlsbF9jb2xvclxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgaGlnaHAgdmVjNCBoYWxvX2NvbG9yXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IG9wYWNpdHlcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgaGFsb193aWR0aFxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBoYWxvX2JsdXJcbmZsb2F0IGZhZGVfb3BhY2l0eT12X2RhdGExWzJdO2lmICh2X2RhdGExLnc9PUlDT04pIHt2ZWMyIHRleF9pY29uPXZfZGF0YTAuenc7bG93cCBmbG9hdCBhbHBoYT1vcGFjaXR5KmZhZGVfb3BhY2l0eTtnbF9GcmFnQ29sb3I9dGV4dHVyZTJEKHVfdGV4dHVyZV9pY29uLHRleF9pY29uKSphbHBoYTtcbiNpZmRlZiBPVkVSRFJBV19JTlNQRUNUT1JcbmdsX0ZyYWdDb2xvcj12ZWM0KDEuMCk7XG4jZW5kaWZcbnJldHVybjt9dmVjMiB0ZXg9dl9kYXRhMC54eTtmbG9hdCBFREdFX0dBTU1BPTAuMTA1L3VfZGV2aWNlX3BpeGVsX3JhdGlvO2Zsb2F0IGdhbW1hX3NjYWxlPXZfZGF0YTEueDtmbG9hdCBzaXplPXZfZGF0YTEueTtmbG9hdCBmb250U2NhbGU9c2l6ZS8yNC4wO2xvd3AgdmVjNCBjb2xvcj1maWxsX2NvbG9yO2hpZ2hwIGZsb2F0IGdhbW1hPUVER0VfR0FNTUEvKGZvbnRTY2FsZSp1X2dhbW1hX3NjYWxlKTtsb3dwIGZsb2F0IGJ1ZmY9KDI1Ni4wLTY0LjApLzI1Ni4wO2lmICh1X2lzX2hhbG8pIHtjb2xvcj1oYWxvX2NvbG9yO2dhbW1hPShoYWxvX2JsdXIqMS4xOS9TREZfUFgrRURHRV9HQU1NQSkvKGZvbnRTY2FsZSp1X2dhbW1hX3NjYWxlKTtidWZmPSg2LjAtaGFsb193aWR0aC9mb250U2NhbGUpL1NERl9QWDt9bG93cCBmbG9hdCBkaXN0PXRleHR1cmUyRCh1X3RleHR1cmUsdGV4KS5hO2hpZ2hwIGZsb2F0IGdhbW1hX3NjYWxlZD1nYW1tYSpnYW1tYV9zY2FsZTtoaWdocCBmbG9hdCBhbHBoYT1zbW9vdGhzdGVwKGJ1ZmYtZ2FtbWFfc2NhbGVkLGJ1ZmYrZ2FtbWFfc2NhbGVkLGRpc3QpO2dsX0ZyYWdDb2xvcj1jb2xvciooYWxwaGEqb3BhY2l0eSpmYWRlX29wYWNpdHkpO1xuI2lmZGVmIE9WRVJEUkFXX0lOU1BFQ1RPUlxuZ2xfRnJhZ0NvbG9yPXZlYzQoMS4wKTtcbiNlbmRpZlxufSIsImNvbnN0IGZsb2F0IFBJPTMuMTQxNTkyNjUzNTg5NzkzO2F0dHJpYnV0ZSB2ZWM0IGFfcG9zX29mZnNldDthdHRyaWJ1dGUgdmVjNCBhX2RhdGE7YXR0cmlidXRlIHZlYzMgYV9wcm9qZWN0ZWRfcG9zO2F0dHJpYnV0ZSBmbG9hdCBhX2ZhZGVfb3BhY2l0eTt1bmlmb3JtIGJvb2wgdV9pc19zaXplX3pvb21fY29uc3RhbnQ7dW5pZm9ybSBib29sIHVfaXNfc2l6ZV9mZWF0dXJlX2NvbnN0YW50O3VuaWZvcm0gaGlnaHAgZmxvYXQgdV9zaXplX3Q7dW5pZm9ybSBoaWdocCBmbG9hdCB1X3NpemU7dW5pZm9ybSBtYXQ0IHVfbWF0cml4O3VuaWZvcm0gbWF0NCB1X2xhYmVsX3BsYW5lX21hdHJpeDt1bmlmb3JtIG1hdDQgdV9jb29yZF9tYXRyaXg7dW5pZm9ybSBib29sIHVfaXNfdGV4dDt1bmlmb3JtIGJvb2wgdV9waXRjaF93aXRoX21hcDt1bmlmb3JtIGhpZ2hwIGZsb2F0IHVfcGl0Y2g7dW5pZm9ybSBib29sIHVfcm90YXRlX3N5bWJvbDt1bmlmb3JtIGhpZ2hwIGZsb2F0IHVfYXNwZWN0X3JhdGlvO3VuaWZvcm0gaGlnaHAgZmxvYXQgdV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlO3VuaWZvcm0gZmxvYXQgdV9mYWRlX2NoYW5nZTt1bmlmb3JtIHZlYzIgdV90ZXhzaXplO3VuaWZvcm0gdmVjMiB1X3RleHNpemVfaWNvbjt2YXJ5aW5nIHZlYzQgdl9kYXRhMDt2YXJ5aW5nIHZlYzQgdl9kYXRhMTtcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgaGlnaHAgdmVjNCBmaWxsX2NvbG9yXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGhpZ2hwIHZlYzQgaGFsb19jb2xvclxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IG9wYWNpdHlcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBoYWxvX3dpZHRoXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgaGFsb19ibHVyXG52b2lkIG1haW4oKSB7XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBoaWdocCB2ZWM0IGZpbGxfY29sb3JcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGhpZ2hwIHZlYzQgaGFsb19jb2xvclxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBvcGFjaXR5XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IGhhbG9fd2lkdGhcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgaGFsb19ibHVyXG52ZWMyIGFfcG9zPWFfcG9zX29mZnNldC54eTt2ZWMyIGFfb2Zmc2V0PWFfcG9zX29mZnNldC56dzt2ZWMyIGFfdGV4PWFfZGF0YS54eTt2ZWMyIGFfc2l6ZT1hX2RhdGEuenc7ZmxvYXQgYV9zaXplX21pbj1mbG9vcihhX3NpemVbMF0qMC41KTtmbG9hdCBpc19zZGY9YV9zaXplWzBdLTIuMCphX3NpemVfbWluO2hpZ2hwIGZsb2F0IHNlZ21lbnRfYW5nbGU9LWFfcHJvamVjdGVkX3Bvc1syXTtmbG9hdCBzaXplO2lmICghdV9pc19zaXplX3pvb21fY29uc3RhbnQgJiYgIXVfaXNfc2l6ZV9mZWF0dXJlX2NvbnN0YW50KSB7c2l6ZT1taXgoYV9zaXplX21pbixhX3NpemVbMV0sdV9zaXplX3QpLzEyOC4wO30gZWxzZSBpZiAodV9pc19zaXplX3pvb21fY29uc3RhbnQgJiYgIXVfaXNfc2l6ZV9mZWF0dXJlX2NvbnN0YW50KSB7c2l6ZT1hX3NpemVfbWluLzEyOC4wO30gZWxzZSB7c2l6ZT11X3NpemU7fXZlYzQgcHJvamVjdGVkUG9pbnQ9dV9tYXRyaXgqdmVjNChhX3BvcywwLDEpO2hpZ2hwIGZsb2F0IGNhbWVyYV90b19hbmNob3JfZGlzdGFuY2U9cHJvamVjdGVkUG9pbnQudztoaWdocCBmbG9hdCBkaXN0YW5jZV9yYXRpbz11X3BpdGNoX3dpdGhfbWFwID9cbmNhbWVyYV90b19hbmNob3JfZGlzdGFuY2UvdV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlIDpcbnVfY2FtZXJhX3RvX2NlbnRlcl9kaXN0YW5jZS9jYW1lcmFfdG9fYW5jaG9yX2Rpc3RhbmNlO2hpZ2hwIGZsb2F0IHBlcnNwZWN0aXZlX3JhdGlvPWNsYW1wKDAuNSswLjUqZGlzdGFuY2VfcmF0aW8sMC4wLDQuMCk7c2l6ZSo9cGVyc3BlY3RpdmVfcmF0aW87ZmxvYXQgZm9udFNjYWxlPXNpemUvMjQuMDtoaWdocCBmbG9hdCBzeW1ib2xfcm90YXRpb249MC4wO2lmICh1X3JvdGF0ZV9zeW1ib2wpIHt2ZWM0IG9mZnNldFByb2plY3RlZFBvaW50PXVfbWF0cml4KnZlYzQoYV9wb3MrdmVjMigxLDApLDAsMSk7dmVjMiBhPXByb2plY3RlZFBvaW50Lnh5L3Byb2plY3RlZFBvaW50Lnc7dmVjMiBiPW9mZnNldFByb2plY3RlZFBvaW50Lnh5L29mZnNldFByb2plY3RlZFBvaW50Lnc7c3ltYm9sX3JvdGF0aW9uPWF0YW4oKGIueS1hLnkpL3VfYXNwZWN0X3JhdGlvLGIueC1hLngpO31oaWdocCBmbG9hdCBhbmdsZV9zaW49c2luKHNlZ21lbnRfYW5nbGUrc3ltYm9sX3JvdGF0aW9uKTtoaWdocCBmbG9hdCBhbmdsZV9jb3M9Y29zKHNlZ21lbnRfYW5nbGUrc3ltYm9sX3JvdGF0aW9uKTttYXQyIHJvdGF0aW9uX21hdHJpeD1tYXQyKGFuZ2xlX2NvcywtMS4wKmFuZ2xlX3NpbixhbmdsZV9zaW4sYW5nbGVfY29zKTt2ZWM0IHByb2plY3RlZF9wb3M9dV9sYWJlbF9wbGFuZV9tYXRyaXgqdmVjNChhX3Byb2plY3RlZF9wb3MueHksMC4wLDEuMCk7Z2xfUG9zaXRpb249dV9jb29yZF9tYXRyaXgqdmVjNChwcm9qZWN0ZWRfcG9zLnh5L3Byb2plY3RlZF9wb3Mudytyb3RhdGlvbl9tYXRyaXgqKGFfb2Zmc2V0LzMyLjAqZm9udFNjYWxlKSwwLjAsMS4wKTtmbG9hdCBnYW1tYV9zY2FsZT1nbF9Qb3NpdGlvbi53O3ZlYzIgZmFkZV9vcGFjaXR5PXVucGFja19vcGFjaXR5KGFfZmFkZV9vcGFjaXR5KTtmbG9hdCBmYWRlX2NoYW5nZT1mYWRlX29wYWNpdHlbMV0gPiAwLjUgPyB1X2ZhZGVfY2hhbmdlIDotdV9mYWRlX2NoYW5nZTtmbG9hdCBpbnRlcnBvbGF0ZWRfZmFkZV9vcGFjaXR5PW1heCgwLjAsbWluKDEuMCxmYWRlX29wYWNpdHlbMF0rZmFkZV9jaGFuZ2UpKTt2X2RhdGEwLnh5PWFfdGV4L3VfdGV4c2l6ZTt2X2RhdGEwLnp3PWFfdGV4L3VfdGV4c2l6ZV9pY29uO3ZfZGF0YTE9dmVjNChnYW1tYV9zY2FsZSxzaXplLGludGVycG9sYXRlZF9mYWRlX29wYWNpdHksaXNfc2RmKTt9Iik7ZnVuY3Rpb24geXIodCxlKXt2YXIgcj0vI3ByYWdtYSBtYXBib3g6IChbXHddKykgKFtcd10rKSAoW1x3XSspIChbXHddKykvZyxuPXt9O3JldHVybntmcmFnbWVudFNvdXJjZTp0PXQucmVwbGFjZShyLChmdW5jdGlvbih0LGUscixpLGEpe3JldHVybiBuW2FdPSEwLCJkZWZpbmUiPT09ZT8iXG4jaWZuZGVmIEhBU19VTklGT1JNX3VfIithKyJcbnZhcnlpbmcgIityKyIgIitpKyIgIithKyI7XG4jZWxzZVxudW5pZm9ybSAiK3IrIiAiK2krIiB1XyIrYSsiO1xuI2VuZGlmXG4iOiJcbiNpZmRlZiBIQVNfVU5JRk9STV91XyIrYSsiXG4gICAgIityKyIgIitpKyIgIithKyIgPSB1XyIrYSsiO1xuI2VuZGlmXG4ifSkpLHZlcnRleFNvdXJjZTplPWUucmVwbGFjZShyLChmdW5jdGlvbih0LGUscixpLGEpe3ZhciBvPSJmbG9hdCI9PT1pPyJ2ZWMyIjoidmVjNCIscz1hLm1hdGNoKC9jb2xvci8pPyJjb2xvciI6bztyZXR1cm4gblthXT8iZGVmaW5lIj09PWU/IlxuI2lmbmRlZiBIQVNfVU5JRk9STV91XyIrYSsiXG51bmlmb3JtIGxvd3AgZmxvYXQgdV8iK2ErIl90O1xuYXR0cmlidXRlICIrcisiICIrbysiIGFfIithKyI7XG52YXJ5aW5nICIrcisiICIraSsiICIrYSsiO1xuI2Vsc2VcbnVuaWZvcm0gIityKyIgIitpKyIgdV8iK2ErIjtcbiNlbmRpZlxuIjoidmVjNCI9PT1zPyJcbiNpZm5kZWYgSEFTX1VOSUZPUk1fdV8iK2ErIlxuICAgICIrYSsiID0gYV8iK2ErIjtcbiNlbHNlXG4gICAgIityKyIgIitpKyIgIithKyIgPSB1XyIrYSsiO1xuI2VuZGlmXG4iOiJcbiNpZm5kZWYgSEFTX1VOSUZPUk1fdV8iK2ErIlxuICAgICIrYSsiID0gdW5wYWNrX21peF8iK3MrIihhXyIrYSsiLCB1XyIrYSsiX3QpO1xuI2Vsc2VcbiAgICAiK3IrIiAiK2krIiAiK2ErIiA9IHVfIithKyI7XG4jZW5kaWZcbiI6ImRlZmluZSI9PT1lPyJcbiNpZm5kZWYgSEFTX1VOSUZPUk1fdV8iK2ErIlxudW5pZm9ybSBsb3dwIGZsb2F0IHVfIithKyJfdDtcbmF0dHJpYnV0ZSAiK3IrIiAiK28rIiBhXyIrYSsiO1xuI2Vsc2VcbnVuaWZvcm0gIityKyIgIitpKyIgdV8iK2ErIjtcbiNlbmRpZlxuIjoidmVjNCI9PT1zPyJcbiNpZm5kZWYgSEFTX1VOSUZPUk1fdV8iK2ErIlxuICAgICIrcisiICIraSsiICIrYSsiID0gYV8iK2ErIjtcbiNlbHNlXG4gICAgIityKyIgIitpKyIgIithKyIgPSB1XyIrYSsiO1xuI2VuZGlmXG4iOiJcbiNpZm5kZWYgSEFTX1VOSUZPUk1fdV8iK2ErIlxuICAgICIrcisiICIraSsiICIrYSsiID0gdW5wYWNrX21peF8iK3MrIihhXyIrYSsiLCB1XyIrYSsiX3QpO1xuI2Vsc2VcbiAgICAiK3IrIiAiK2krIiAiK2ErIiA9IHVfIithKyI7XG4jZW5kaWZcbiJ9KSl9fXZhciB4cj1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxwcmVsdWRlOlllLGJhY2tncm91bmQ6V2UsYmFja2dyb3VuZFBhdHRlcm46WGUsY2lyY2xlOlplLGNsaXBwaW5nTWFzazpKZSxoZWF0bWFwOktlLGhlYXRtYXBUZXh0dXJlOlFlLGNvbGxpc2lvbkJveDokZSxjb2xsaXNpb25DaXJjbGU6dHIsZGVidWc6ZXIsZmlsbDpycixmaWxsT3V0bGluZTpucixmaWxsT3V0bGluZVBhdHRlcm46aXIsZmlsbFBhdHRlcm46YXIsZmlsbEV4dHJ1c2lvbjpvcixmaWxsRXh0cnVzaW9uUGF0dGVybjpzcixoaWxsc2hhZGVQcmVwYXJlOmxyLGhpbGxzaGFkZTpjcixsaW5lOnVyLGxpbmVHcmFkaWVudDpmcixsaW5lUGF0dGVybjpocixsaW5lU0RGOnByLHJhc3RlcjpkcixzeW1ib2xJY29uOm1yLHN5bWJvbFNERjpncixzeW1ib2xUZXh0QW5kSWNvbjp2cn0pLGJyPWZ1bmN0aW9uKCl7dGhpcy5ib3VuZFByb2dyYW09bnVsbCx0aGlzLmJvdW5kTGF5b3V0VmVydGV4QnVmZmVyPW51bGwsdGhpcy5ib3VuZFBhaW50VmVydGV4QnVmZmVycz1bXSx0aGlzLmJvdW5kSW5kZXhCdWZmZXI9bnVsbCx0aGlzLmJvdW5kVmVydGV4T2Zmc2V0PW51bGwsdGhpcy5ib3VuZER5bmFtaWNWZXJ0ZXhCdWZmZXI9bnVsbCx0aGlzLnZhbz1udWxsfTtici5wcm90b3R5cGUuYmluZD1mdW5jdGlvbih0LGUscixuLGksYSxvLHMpe3RoaXMuY29udGV4dD10O2Zvcih2YXIgbD10aGlzLmJvdW5kUGFpbnRWZXJ0ZXhCdWZmZXJzLmxlbmd0aCE9PW4ubGVuZ3RoLGM9MDshbCYmYzxuLmxlbmd0aDtjKyspdGhpcy5ib3VuZFBhaW50VmVydGV4QnVmZmVyc1tjXSE9PW5bY10mJihsPSEwKTt2YXIgdT0hdGhpcy52YW98fHRoaXMuYm91bmRQcm9ncmFtIT09ZXx8dGhpcy5ib3VuZExheW91dFZlcnRleEJ1ZmZlciE9PXJ8fGx8fHRoaXMuYm91bmRJbmRleEJ1ZmZlciE9PWl8fHRoaXMuYm91bmRWZXJ0ZXhPZmZzZXQhPT1hfHx0aGlzLmJvdW5kRHluYW1pY1ZlcnRleEJ1ZmZlciE9PW98fHRoaXMuYm91bmREeW5hbWljVmVydGV4QnVmZmVyMiE9PXM7IXQuZXh0VmVydGV4QXJyYXlPYmplY3R8fHU/dGhpcy5mcmVzaEJpbmQoZSxyLG4saSxhLG8scyk6KHQuYmluZFZlcnRleEFycmF5T0VTLnNldCh0aGlzLnZhbyksbyYmby5iaW5kKCksaSYmaS5keW5hbWljRHJhdyYmaS5iaW5kKCkscyYmcy5iaW5kKCkpfSxici5wcm90b3R5cGUuZnJlc2hCaW5kPWZ1bmN0aW9uKHQsZSxyLG4saSxhLG8pe3ZhciBzLGw9dC5udW1BdHRyaWJ1dGVzLGM9dGhpcy5jb250ZXh0LHU9Yy5nbDtpZihjLmV4dFZlcnRleEFycmF5T2JqZWN0KXRoaXMudmFvJiZ0aGlzLmRlc3Ryb3koKSx0aGlzLnZhbz1jLmV4dFZlcnRleEFycmF5T2JqZWN0LmNyZWF0ZVZlcnRleEFycmF5T0VTKCksYy5iaW5kVmVydGV4QXJyYXlPRVMuc2V0KHRoaXMudmFvKSxzPTAsdGhpcy5ib3VuZFByb2dyYW09dCx0aGlzLmJvdW5kTGF5b3V0VmVydGV4QnVmZmVyPWUsdGhpcy5ib3VuZFBhaW50VmVydGV4QnVmZmVycz1yLHRoaXMuYm91bmRJbmRleEJ1ZmZlcj1uLHRoaXMuYm91bmRWZXJ0ZXhPZmZzZXQ9aSx0aGlzLmJvdW5kRHluYW1pY1ZlcnRleEJ1ZmZlcj1hLHRoaXMuYm91bmREeW5hbWljVmVydGV4QnVmZmVyMj1vO2Vsc2V7cz1jLmN1cnJlbnROdW1BdHRyaWJ1dGVzfHwwO2Zvcih2YXIgZj1sO2Y8cztmKyspdS5kaXNhYmxlVmVydGV4QXR0cmliQXJyYXkoZil9ZS5lbmFibGVBdHRyaWJ1dGVzKHUsdCk7Zm9yKHZhciBoPTAscD1yO2g8cC5sZW5ndGg7aCs9MSl7cFtoXS5lbmFibGVBdHRyaWJ1dGVzKHUsdCl9YSYmYS5lbmFibGVBdHRyaWJ1dGVzKHUsdCksbyYmby5lbmFibGVBdHRyaWJ1dGVzKHUsdCksZS5iaW5kKCksZS5zZXRWZXJ0ZXhBdHRyaWJQb2ludGVycyh1LHQsaSk7Zm9yKHZhciBkPTAsbT1yO2Q8bS5sZW5ndGg7ZCs9MSl7dmFyIGc9bVtkXTtnLmJpbmQoKSxnLnNldFZlcnRleEF0dHJpYlBvaW50ZXJzKHUsdCxpKX1hJiYoYS5iaW5kKCksYS5zZXRWZXJ0ZXhBdHRyaWJQb2ludGVycyh1LHQsaSkpLG4mJm4uYmluZCgpLG8mJihvLmJpbmQoKSxvLnNldFZlcnRleEF0dHJpYlBvaW50ZXJzKHUsdCxpKSksYy5jdXJyZW50TnVtQXR0cmlidXRlcz1sfSxici5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMudmFvJiYodGhpcy5jb250ZXh0LmV4dFZlcnRleEFycmF5T2JqZWN0LmRlbGV0ZVZlcnRleEFycmF5T0VTKHRoaXMudmFvKSx0aGlzLnZhbz1udWxsKX07dmFyIF9yPWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGE9dC5nbDt0aGlzLnByb2dyYW09YS5jcmVhdGVQcm9ncmFtKCk7dmFyIG89cj9yLmRlZmluZXMoKTpbXTtpJiZvLnB1c2goIiNkZWZpbmUgT1ZFUkRSQVdfSU5TUEVDVE9SOyIpO3ZhciBzPW8uY29uY2F0KFllLmZyYWdtZW50U291cmNlLGUuZnJhZ21lbnRTb3VyY2UpLmpvaW4oIlxuIiksbD1vLmNvbmNhdChZZS52ZXJ0ZXhTb3VyY2UsZS52ZXJ0ZXhTb3VyY2UpLmpvaW4oIlxuIiksYz1hLmNyZWF0ZVNoYWRlcihhLkZSQUdNRU5UX1NIQURFUik7aWYoYS5pc0NvbnRleHRMb3N0KCkpdGhpcy5mYWlsZWRUb0NyZWF0ZT0hMDtlbHNle2Euc2hhZGVyU291cmNlKGMscyksYS5jb21waWxlU2hhZGVyKGMpLGEuYXR0YWNoU2hhZGVyKHRoaXMucHJvZ3JhbSxjKTt2YXIgdT1hLmNyZWF0ZVNoYWRlcihhLlZFUlRFWF9TSEFERVIpO2lmKGEuaXNDb250ZXh0TG9zdCgpKXRoaXMuZmFpbGVkVG9DcmVhdGU9ITA7ZWxzZXthLnNoYWRlclNvdXJjZSh1LGwpLGEuY29tcGlsZVNoYWRlcih1KSxhLmF0dGFjaFNoYWRlcih0aGlzLnByb2dyYW0sdSk7Zm9yKHZhciBmPXI/ci5sYXlvdXRBdHRyaWJ1dGVzOltdLGg9MDtoPGYubGVuZ3RoO2grKylhLmJpbmRBdHRyaWJMb2NhdGlvbih0aGlzLnByb2dyYW0saCxmW2hdLm5hbWUpO2EubGlua1Byb2dyYW0odGhpcy5wcm9ncmFtKSxhLmRlbGV0ZVNoYWRlcih1KSxhLmRlbGV0ZVNoYWRlcihjKSx0aGlzLm51bUF0dHJpYnV0ZXM9YS5nZXRQcm9ncmFtUGFyYW1ldGVyKHRoaXMucHJvZ3JhbSxhLkFDVElWRV9BVFRSSUJVVEVTKSx0aGlzLmF0dHJpYnV0ZXM9e307Zm9yKHZhciBwPXt9LGQ9MDtkPHRoaXMubnVtQXR0cmlidXRlcztkKyspe3ZhciBtPWEuZ2V0QWN0aXZlQXR0cmliKHRoaXMucHJvZ3JhbSxkKTttJiYodGhpcy5hdHRyaWJ1dGVzW20ubmFtZV09YS5nZXRBdHRyaWJMb2NhdGlvbih0aGlzLnByb2dyYW0sbS5uYW1lKSl9Zm9yKHZhciBnPWEuZ2V0UHJvZ3JhbVBhcmFtZXRlcih0aGlzLnByb2dyYW0sYS5BQ1RJVkVfVU5JRk9STVMpLHY9MDt2PGc7disrKXt2YXIgeT1hLmdldEFjdGl2ZVVuaWZvcm0odGhpcy5wcm9ncmFtLHYpO3kmJihwW3kubmFtZV09YS5nZXRVbmlmb3JtTG9jYXRpb24odGhpcy5wcm9ncmFtLHkubmFtZSkpfXRoaXMuZml4ZWRVbmlmb3Jtcz1uKHQscCksdGhpcy5iaW5kZXJVbmlmb3Jtcz1yP3IuZ2V0VW5pZm9ybXModCxwKTpbXX19fTtmdW5jdGlvbiB3cih0LGUscil7dmFyIG49MS9wZShyLDEsZS50cmFuc2Zvcm0udGlsZVpvb20pLGk9TWF0aC5wb3coMixyLnRpbGVJRC5vdmVyc2NhbGVkWiksYT1yLnRpbGVTaXplKk1hdGgucG93KDIsZS50cmFuc2Zvcm0udGlsZVpvb20pL2ksbz1hKihyLnRpbGVJRC5jYW5vbmljYWwueCtyLnRpbGVJRC53cmFwKmkpLHM9YSpyLnRpbGVJRC5jYW5vbmljYWwueTtyZXR1cm57dV9pbWFnZTowLHVfdGV4c2l6ZTpyLmltYWdlQXRsYXNUZXh0dXJlLnNpemUsdV9zY2FsZTpbbix0LmZyb21TY2FsZSx0LnRvU2NhbGVdLHVfZmFkZTp0LnQsdV9waXhlbF9jb29yZF91cHBlcjpbbz4+MTYscz4+MTZdLHVfcGl4ZWxfY29vcmRfbG93ZXI6WzY1NTM1Jm8sNjU1MzUmc119fV9yLnByb3RvdHlwZS5kcmF3PWZ1bmN0aW9uKHQsZSxyLG4saSxhLG8scyxsLGMsdSxmLGgscCxkLG0pe3ZhciBnLHY9dC5nbDtpZighdGhpcy5mYWlsZWRUb0NyZWF0ZSl7Zm9yKHZhciB5IGluIHQucHJvZ3JhbS5zZXQodGhpcy5wcm9ncmFtKSx0LnNldERlcHRoTW9kZShyKSx0LnNldFN0ZW5jaWxNb2RlKG4pLHQuc2V0Q29sb3JNb2RlKGkpLHQuc2V0Q3VsbEZhY2UoYSksdGhpcy5maXhlZFVuaWZvcm1zKXRoaXMuZml4ZWRVbmlmb3Jtc1t5XS5zZXQob1t5XSk7cCYmcC5zZXRVbmlmb3Jtcyh0LHRoaXMuYmluZGVyVW5pZm9ybXMsZix7em9vbTpofSk7Zm9yKHZhciB4PShnPXt9LGdbdi5MSU5FU109MixnW3YuVFJJQU5HTEVTXT0zLGdbdi5MSU5FX1NUUklQXT0xLGcpW2VdLGI9MCxfPXUuZ2V0KCk7YjxfLmxlbmd0aDtiKz0xKXt2YXIgdz1fW2JdLFQ9dy52YW9zfHwody52YW9zPXt9KTsoVFtzXXx8KFRbc109bmV3IGJyKSkuYmluZCh0LHRoaXMsbCxwP3AuZ2V0UGFpbnRWZXJ0ZXhCdWZmZXJzKCk6W10sYyx3LnZlcnRleE9mZnNldCxkLG0pLHYuZHJhd0VsZW1lbnRzKGUsdy5wcmltaXRpdmVMZW5ndGgqeCx2LlVOU0lHTkVEX1NIT1JULHcucHJpbWl0aXZlT2Zmc2V0KngqMil9fX07dmFyIFRyPWZ1bmN0aW9uKGUscixuLGkpe3ZhciBhPXIuc3R5bGUubGlnaHQsbz1hLnByb3BlcnRpZXMuZ2V0KCJwb3NpdGlvbiIpLHM9W28ueCxvLnksby56XSxsPXQuY3JlYXRlJDEoKTsidmlld3BvcnQiPT09YS5wcm9wZXJ0aWVzLmdldCgiYW5jaG9yIikmJnQuZnJvbVJvdGF0aW9uKGwsLXIudHJhbnNmb3JtLmFuZ2xlKSx0LnRyYW5zZm9ybU1hdDMocyxzLGwpO3ZhciBjPWEucHJvcGVydGllcy5nZXQoImNvbG9yIik7cmV0dXJue3VfbWF0cml4OmUsdV9saWdodHBvczpzLHVfbGlnaHRpbnRlbnNpdHk6YS5wcm9wZXJ0aWVzLmdldCgiaW50ZW5zaXR5IiksdV9saWdodGNvbG9yOltjLnIsYy5nLGMuYl0sdV92ZXJ0aWNhbF9ncmFkaWVudDorbix1X29wYWNpdHk6aX19LGtyPWZ1bmN0aW9uKGUscixuLGksYSxvLHMpe3JldHVybiB0LmV4dGVuZChUcihlLHIsbixpKSx3cihvLHIscykse3VfaGVpZ2h0X2ZhY3RvcjotTWF0aC5wb3coMixhLm92ZXJzY2FsZWRaKS9zLnRpbGVTaXplLzh9KX0sQXI9ZnVuY3Rpb24odCl7cmV0dXJue3VfbWF0cml4OnR9fSxNcj1mdW5jdGlvbihlLHIsbixpKXtyZXR1cm4gdC5leHRlbmQoQXIoZSksd3IobixyLGkpKX0sU3I9ZnVuY3Rpb24odCxlKXtyZXR1cm57dV9tYXRyaXg6dCx1X3dvcmxkOmV9fSxFcj1mdW5jdGlvbihlLHIsbixpLGEpe3JldHVybiB0LmV4dGVuZChNcihlLHIsbixpKSx7dV93b3JsZDphfSl9LExyPWZ1bmN0aW9uKGUscixuLGkpe3ZhciBhLG8scz1lLnRyYW5zZm9ybTtpZigibWFwIj09PWkucGFpbnQuZ2V0KCJjaXJjbGUtcGl0Y2gtYWxpZ25tZW50Iikpe3ZhciBsPXBlKG4sMSxzLnpvb20pO2E9ITAsbz1bbCxsXX1lbHNlIGE9ITEsbz1zLnBpeGVsc1RvR0xVbml0cztyZXR1cm57dV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlOnMuY2FtZXJhVG9DZW50ZXJEaXN0YW5jZSx1X3NjYWxlX3dpdGhfbWFwOisoIm1hcCI9PT1pLnBhaW50LmdldCgiY2lyY2xlLXBpdGNoLXNjYWxlIikpLHVfbWF0cml4OmUudHJhbnNsYXRlUG9zTWF0cml4KHIucG9zTWF0cml4LG4saS5wYWludC5nZXQoImNpcmNsZS10cmFuc2xhdGUiKSxpLnBhaW50LmdldCgiY2lyY2xlLXRyYW5zbGF0ZS1hbmNob3IiKSksdV9waXRjaF93aXRoX21hcDorYSx1X2RldmljZV9waXhlbF9yYXRpbzp0LmJyb3dzZXIuZGV2aWNlUGl4ZWxSYXRpbyx1X2V4dHJ1ZGVfc2NhbGU6b319LENyPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1wZShyLDEsZS56b29tKSxpPU1hdGgucG93KDIsZS56b29tLXIudGlsZUlELm92ZXJzY2FsZWRaKSxhPXIudGlsZUlELm92ZXJzY2FsZUZhY3RvcigpO3JldHVybnt1X21hdHJpeDp0LHVfY2FtZXJhX3RvX2NlbnRlcl9kaXN0YW5jZTplLmNhbWVyYVRvQ2VudGVyRGlzdGFuY2UsdV9waXhlbHNfdG9fdGlsZV91bml0czpuLHVfZXh0cnVkZV9zY2FsZTpbZS5waXhlbHNUb0dMVW5pdHNbMF0vKG4qaSksZS5waXhlbHNUb0dMVW5pdHNbMV0vKG4qaSldLHVfb3ZlcnNjYWxlX2ZhY3RvcjphfX0sUHI9ZnVuY3Rpb24odCxlLHIpe3JldHVybnt1X21hdHJpeDp0LHVfaW52X21hdHJpeDplLHVfY2FtZXJhX3RvX2NlbnRlcl9kaXN0YW5jZTpyLmNhbWVyYVRvQ2VudGVyRGlzdGFuY2UsdV92aWV3cG9ydF9zaXplOltyLndpZHRoLHIuaGVpZ2h0XX19LElyPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdm9pZCAwPT09ciYmKHI9MSkse3VfbWF0cml4OnQsdV9jb2xvcjplLHVfb3ZlcmxheTowLHVfb3ZlcmxheV9zY2FsZTpyfX0sT3I9ZnVuY3Rpb24odCl7cmV0dXJue3VfbWF0cml4OnR9fSx6cj1mdW5jdGlvbih0LGUscixuKXtyZXR1cm57dV9tYXRyaXg6dCx1X2V4dHJ1ZGVfc2NhbGU6cGUoZSwxLHIpLHVfaW50ZW5zaXR5Om59fTtmdW5jdGlvbiBEcihlLHIpe3ZhciBuPU1hdGgucG93KDIsci5jYW5vbmljYWwueiksaT1yLmNhbm9uaWNhbC55O3JldHVybltuZXcgdC5NZXJjYXRvckNvb3JkaW5hdGUoMCxpL24pLnRvTG5nTGF0KCkubGF0LG5ldyB0Lk1lcmNhdG9yQ29vcmRpbmF0ZSgwLChpKzEpL24pLnRvTG5nTGF0KCkubGF0XX12YXIgUnI9ZnVuY3Rpb24oZSxyLG4pe3ZhciBpPWUudHJhbnNmb3JtO3JldHVybnt1X21hdHJpeDpVcihlLHIsbiksdV9yYXRpbzoxL3BlKHIsMSxpLnpvb20pLHVfZGV2aWNlX3BpeGVsX3JhdGlvOnQuYnJvd3Nlci5kZXZpY2VQaXhlbFJhdGlvLHVfdW5pdHNfdG9fcGl4ZWxzOlsxL2kucGl4ZWxzVG9HTFVuaXRzWzBdLDEvaS5waXhlbHNUb0dMVW5pdHNbMV1dfX0sRnI9ZnVuY3Rpb24oZSxyLG4pe3JldHVybiB0LmV4dGVuZChScihlLHIsbikse3VfaW1hZ2U6MH0pfSxCcj1mdW5jdGlvbihlLHIsbixpKXt2YXIgYT1lLnRyYW5zZm9ybSxvPWpyKHIsYSk7cmV0dXJue3VfbWF0cml4OlVyKGUscixuKSx1X3RleHNpemU6ci5pbWFnZUF0bGFzVGV4dHVyZS5zaXplLHVfcmF0aW86MS9wZShyLDEsYS56b29tKSx1X2RldmljZV9waXhlbF9yYXRpbzp0LmJyb3dzZXIuZGV2aWNlUGl4ZWxSYXRpbyx1X2ltYWdlOjAsdV9zY2FsZTpbbyxpLmZyb21TY2FsZSxpLnRvU2NhbGVdLHVfZmFkZTppLnQsdV91bml0c190b19waXhlbHM6WzEvYS5waXhlbHNUb0dMVW5pdHNbMF0sMS9hLnBpeGVsc1RvR0xVbml0c1sxXV19fSxOcj1mdW5jdGlvbihlLHIsbixpLGEpe3ZhciBvPWUudHJhbnNmb3JtLHM9ZS5saW5lQXRsYXMsbD1qcihyLG8pLGM9InJvdW5kIj09PW4ubGF5b3V0LmdldCgibGluZS1jYXAiKSx1PXMuZ2V0RGFzaChpLmZyb20sYyksZj1zLmdldERhc2goaS50byxjKSxoPXUud2lkdGgqYS5mcm9tU2NhbGUscD1mLndpZHRoKmEudG9TY2FsZTtyZXR1cm4gdC5leHRlbmQoUnIoZSxyLG4pLHt1X3BhdHRlcm5zY2FsZV9hOltsL2gsLXUuaGVpZ2h0LzJdLHVfcGF0dGVybnNjYWxlX2I6W2wvcCwtZi5oZWlnaHQvMl0sdV9zZGZnYW1tYTpzLndpZHRoLygyNTYqTWF0aC5taW4oaCxwKSp0LmJyb3dzZXIuZGV2aWNlUGl4ZWxSYXRpbykvMix1X2ltYWdlOjAsdV90ZXhfeV9hOnUueSx1X3RleF95X2I6Zi55LHVfbWl4OmEudH0pfTtmdW5jdGlvbiBqcih0LGUpe3JldHVybiAxL3BlKHQsMSxlLnRpbGVab29tKX1mdW5jdGlvbiBVcih0LGUscil7cmV0dXJuIHQudHJhbnNsYXRlUG9zTWF0cml4KGUudGlsZUlELnBvc01hdHJpeCxlLHIucGFpbnQuZ2V0KCJsaW5lLXRyYW5zbGF0ZSIpLHIucGFpbnQuZ2V0KCJsaW5lLXRyYW5zbGF0ZS1hbmNob3IiKSl9dmFyIFZyPWZ1bmN0aW9uKHQsZSxyLG4saSl7cmV0dXJue3VfbWF0cml4OnQsdV90bF9wYXJlbnQ6ZSx1X3NjYWxlX3BhcmVudDpyLHVfYnVmZmVyX3NjYWxlOjEsdV9mYWRlX3Q6bi5taXgsdV9vcGFjaXR5Om4ub3BhY2l0eSppLnBhaW50LmdldCgicmFzdGVyLW9wYWNpdHkiKSx1X2ltYWdlMDowLHVfaW1hZ2UxOjEsdV9icmlnaHRuZXNzX2xvdzppLnBhaW50LmdldCgicmFzdGVyLWJyaWdodG5lc3MtbWluIiksdV9icmlnaHRuZXNzX2hpZ2g6aS5wYWludC5nZXQoInJhc3Rlci1icmlnaHRuZXNzLW1heCIpLHVfc2F0dXJhdGlvbl9mYWN0b3I6KG89aS5wYWludC5nZXQoInJhc3Rlci1zYXR1cmF0aW9uIiksbz4wPzEtMS8oMS4wMDEtbyk6LW8pLHVfY29udHJhc3RfZmFjdG9yOihhPWkucGFpbnQuZ2V0KCJyYXN0ZXItY29udHJhc3QiKSxhPjA/MS8oMS1hKToxK2EpLHVfc3Bpbl93ZWlnaHRzOkhyKGkucGFpbnQuZ2V0KCJyYXN0ZXItaHVlLXJvdGF0ZSIpKX07dmFyIGEsb307ZnVuY3Rpb24gSHIodCl7dCo9TWF0aC5QSS8xODA7dmFyIGU9TWF0aC5zaW4odCkscj1NYXRoLmNvcyh0KTtyZXR1cm5bKDIqcisxKS8zLCgtTWF0aC5zcXJ0KDMpKmUtcisxKS8zLChNYXRoLnNxcnQoMykqZS1yKzEpLzNdfXZhciBxcixHcj1mdW5jdGlvbih0LGUscixuLGksYSxvLHMsbCxjKXt2YXIgdT1pLnRyYW5zZm9ybTtyZXR1cm57dV9pc19zaXplX3pvb21fY29uc3RhbnQ6KygiY29uc3RhbnQiPT09dHx8InNvdXJjZSI9PT10KSx1X2lzX3NpemVfZmVhdHVyZV9jb25zdGFudDorKCJjb25zdGFudCI9PT10fHwiY2FtZXJhIj09PXQpLHVfc2l6ZV90OmU/ZS51U2l6ZVQ6MCx1X3NpemU6ZT9lLnVTaXplOjAsdV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlOnUuY2FtZXJhVG9DZW50ZXJEaXN0YW5jZSx1X3BpdGNoOnUucGl0Y2gvMzYwKjIqTWF0aC5QSSx1X3JvdGF0ZV9zeW1ib2w6K3IsdV9hc3BlY3RfcmF0aW86dS53aWR0aC91LmhlaWdodCx1X2ZhZGVfY2hhbmdlOmkub3B0aW9ucy5mYWRlRHVyYXRpb24/aS5zeW1ib2xGYWRlQ2hhbmdlOjEsdV9tYXRyaXg6YSx1X2xhYmVsX3BsYW5lX21hdHJpeDpvLHVfY29vcmRfbWF0cml4OnMsdV9pc190ZXh0OitsLHVfcGl0Y2hfd2l0aF9tYXA6K24sdV90ZXhzaXplOmMsdV90ZXh0dXJlOjB9fSxZcj1mdW5jdGlvbihlLHIsbixpLGEsbyxzLGwsYyx1LGYpe3ZhciBoPWEudHJhbnNmb3JtO3JldHVybiB0LmV4dGVuZChHcihlLHIsbixpLGEsbyxzLGwsYyx1KSx7dV9nYW1tYV9zY2FsZTppP01hdGguY29zKGguX3BpdGNoKSpoLmNhbWVyYVRvQ2VudGVyRGlzdGFuY2U6MSx1X2RldmljZV9waXhlbF9yYXRpbzp0LmJyb3dzZXIuZGV2aWNlUGl4ZWxSYXRpbyx1X2lzX2hhbG86K2Z9KX0sV3I9ZnVuY3Rpb24oZSxyLG4saSxhLG8scyxsLGMsdSl7cmV0dXJuIHQuZXh0ZW5kKFlyKGUscixuLGksYSxvLHMsbCwhMCxjLCEwKSx7dV90ZXhzaXplX2ljb246dSx1X3RleHR1cmVfaWNvbjoxfSl9LFhyPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm57dV9tYXRyaXg6dCx1X29wYWNpdHk6ZSx1X2NvbG9yOnJ9fSxacj1mdW5jdGlvbihlLHIsbixpLGEsbyl7cmV0dXJuIHQuZXh0ZW5kKGZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPXIuaW1hZ2VNYW5hZ2VyLmdldFBhdHRlcm4odC5mcm9tLnRvU3RyaW5nKCkpLGE9ci5pbWFnZU1hbmFnZXIuZ2V0UGF0dGVybih0LnRvLnRvU3RyaW5nKCkpLG89ci5pbWFnZU1hbmFnZXIuZ2V0UGl4ZWxTaXplKCkscz1vLndpZHRoLGw9by5oZWlnaHQsYz1NYXRoLnBvdygyLG4udGlsZUlELm92ZXJzY2FsZWRaKSx1PW4udGlsZVNpemUqTWF0aC5wb3coMixyLnRyYW5zZm9ybS50aWxlWm9vbSkvYyxmPXUqKG4udGlsZUlELmNhbm9uaWNhbC54K24udGlsZUlELndyYXAqYyksaD11Km4udGlsZUlELmNhbm9uaWNhbC55O3JldHVybnt1X2ltYWdlOjAsdV9wYXR0ZXJuX3RsX2E6aS50bCx1X3BhdHRlcm5fYnJfYTppLmJyLHVfcGF0dGVybl90bF9iOmEudGwsdV9wYXR0ZXJuX2JyX2I6YS5icix1X3RleHNpemU6W3MsbF0sdV9taXg6ZS50LHVfcGF0dGVybl9zaXplX2E6aS5kaXNwbGF5U2l6ZSx1X3BhdHRlcm5fc2l6ZV9iOmEuZGlzcGxheVNpemUsdV9zY2FsZV9hOmUuZnJvbVNjYWxlLHVfc2NhbGVfYjplLnRvU2NhbGUsdV90aWxlX3VuaXRzX3RvX3BpeGVsczoxL3BlKG4sMSxyLnRyYW5zZm9ybS50aWxlWm9vbSksdV9waXhlbF9jb29yZF91cHBlcjpbZj4+MTYsaD4+MTZdLHVfcGl4ZWxfY29vcmRfbG93ZXI6WzY1NTM1JmYsNjU1MzUmaF19fShpLG8sbixhKSx7dV9tYXRyaXg6ZSx1X29wYWNpdHk6cn0pfSxKcj17ZmlsbEV4dHJ1c2lvbjpmdW5jdGlvbihlLHIpe3JldHVybnt1X21hdHJpeDpuZXcgdC5Vbmlmb3JtTWF0cml4NGYoZSxyLnVfbWF0cml4KSx1X2xpZ2h0cG9zOm5ldyB0LlVuaWZvcm0zZihlLHIudV9saWdodHBvcyksdV9saWdodGludGVuc2l0eTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfbGlnaHRpbnRlbnNpdHkpLHVfbGlnaHRjb2xvcjpuZXcgdC5Vbmlmb3JtM2YoZSxyLnVfbGlnaHRjb2xvciksdV92ZXJ0aWNhbF9ncmFkaWVudDpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfdmVydGljYWxfZ3JhZGllbnQpLHVfb3BhY2l0eTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfb3BhY2l0eSl9fSxmaWxsRXh0cnVzaW9uUGF0dGVybjpmdW5jdGlvbihlLHIpe3JldHVybnt1X21hdHJpeDpuZXcgdC5Vbmlmb3JtTWF0cml4NGYoZSxyLnVfbWF0cml4KSx1X2xpZ2h0cG9zOm5ldyB0LlVuaWZvcm0zZihlLHIudV9saWdodHBvcyksdV9saWdodGludGVuc2l0eTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfbGlnaHRpbnRlbnNpdHkpLHVfbGlnaHRjb2xvcjpuZXcgdC5Vbmlmb3JtM2YoZSxyLnVfbGlnaHRjb2xvciksdV92ZXJ0aWNhbF9ncmFkaWVudDpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfdmVydGljYWxfZ3JhZGllbnQpLHVfaGVpZ2h0X2ZhY3RvcjpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfaGVpZ2h0X2ZhY3RvciksdV9pbWFnZTpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfaW1hZ2UpLHVfdGV4c2l6ZTpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfdGV4c2l6ZSksdV9waXhlbF9jb29yZF91cHBlcjpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfcGl4ZWxfY29vcmRfdXBwZXIpLHVfcGl4ZWxfY29vcmRfbG93ZXI6bmV3IHQuVW5pZm9ybTJmKGUsci51X3BpeGVsX2Nvb3JkX2xvd2VyKSx1X3NjYWxlOm5ldyB0LlVuaWZvcm0zZihlLHIudV9zY2FsZSksdV9mYWRlOm5ldyB0LlVuaWZvcm0xZihlLHIudV9mYWRlKSx1X29wYWNpdHk6bmV3IHQuVW5pZm9ybTFmKGUsci51X29wYWNpdHkpfX0sZmlsbDpmdW5jdGlvbihlLHIpe3JldHVybnt1X21hdHJpeDpuZXcgdC5Vbmlmb3JtTWF0cml4NGYoZSxyLnVfbWF0cml4KX19LGZpbGxQYXR0ZXJuOmZ1bmN0aW9uKGUscil7cmV0dXJue3VfbWF0cml4Om5ldyB0LlVuaWZvcm1NYXRyaXg0ZihlLHIudV9tYXRyaXgpLHVfaW1hZ2U6bmV3IHQuVW5pZm9ybTFpKGUsci51X2ltYWdlKSx1X3RleHNpemU6bmV3IHQuVW5pZm9ybTJmKGUsci51X3RleHNpemUpLHVfcGl4ZWxfY29vcmRfdXBwZXI6bmV3IHQuVW5pZm9ybTJmKGUsci51X3BpeGVsX2Nvb3JkX3VwcGVyKSx1X3BpeGVsX2Nvb3JkX2xvd2VyOm5ldyB0LlVuaWZvcm0yZihlLHIudV9waXhlbF9jb29yZF9sb3dlciksdV9zY2FsZTpuZXcgdC5Vbmlmb3JtM2YoZSxyLnVfc2NhbGUpLHVfZmFkZTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfZmFkZSl9fSxmaWxsT3V0bGluZTpmdW5jdGlvbihlLHIpe3JldHVybnt1X21hdHJpeDpuZXcgdC5Vbmlmb3JtTWF0cml4NGYoZSxyLnVfbWF0cml4KSx1X3dvcmxkOm5ldyB0LlVuaWZvcm0yZihlLHIudV93b3JsZCl9fSxmaWxsT3V0bGluZVBhdHRlcm46ZnVuY3Rpb24oZSxyKXtyZXR1cm57dV9tYXRyaXg6bmV3IHQuVW5pZm9ybU1hdHJpeDRmKGUsci51X21hdHJpeCksdV93b3JsZDpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfd29ybGQpLHVfaW1hZ2U6bmV3IHQuVW5pZm9ybTFpKGUsci51X2ltYWdlKSx1X3RleHNpemU6bmV3IHQuVW5pZm9ybTJmKGUsci51X3RleHNpemUpLHVfcGl4ZWxfY29vcmRfdXBwZXI6bmV3IHQuVW5pZm9ybTJmKGUsci51X3BpeGVsX2Nvb3JkX3VwcGVyKSx1X3BpeGVsX2Nvb3JkX2xvd2VyOm5ldyB0LlVuaWZvcm0yZihlLHIudV9waXhlbF9jb29yZF9sb3dlciksdV9zY2FsZTpuZXcgdC5Vbmlmb3JtM2YoZSxyLnVfc2NhbGUpLHVfZmFkZTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfZmFkZSl9fSxjaXJjbGU6ZnVuY3Rpb24oZSxyKXtyZXR1cm57dV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlOm5ldyB0LlVuaWZvcm0xZihlLHIudV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlKSx1X3NjYWxlX3dpdGhfbWFwOm5ldyB0LlVuaWZvcm0xaShlLHIudV9zY2FsZV93aXRoX21hcCksdV9waXRjaF93aXRoX21hcDpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfcGl0Y2hfd2l0aF9tYXApLHVfZXh0cnVkZV9zY2FsZTpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfZXh0cnVkZV9zY2FsZSksdV9kZXZpY2VfcGl4ZWxfcmF0aW86bmV3IHQuVW5pZm9ybTFmKGUsci51X2RldmljZV9waXhlbF9yYXRpbyksdV9tYXRyaXg6bmV3IHQuVW5pZm9ybU1hdHJpeDRmKGUsci51X21hdHJpeCl9fSxjb2xsaXNpb25Cb3g6ZnVuY3Rpb24oZSxyKXtyZXR1cm57dV9tYXRyaXg6bmV3IHQuVW5pZm9ybU1hdHJpeDRmKGUsci51X21hdHJpeCksdV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlOm5ldyB0LlVuaWZvcm0xZihlLHIudV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlKSx1X3BpeGVsc190b190aWxlX3VuaXRzOm5ldyB0LlVuaWZvcm0xZihlLHIudV9waXhlbHNfdG9fdGlsZV91bml0cyksdV9leHRydWRlX3NjYWxlOm5ldyB0LlVuaWZvcm0yZihlLHIudV9leHRydWRlX3NjYWxlKSx1X292ZXJzY2FsZV9mYWN0b3I6bmV3IHQuVW5pZm9ybTFmKGUsci51X292ZXJzY2FsZV9mYWN0b3IpfX0sY29sbGlzaW9uQ2lyY2xlOmZ1bmN0aW9uKGUscil7cmV0dXJue3VfbWF0cml4Om5ldyB0LlVuaWZvcm1NYXRyaXg0ZihlLHIudV9tYXRyaXgpLHVfaW52X21hdHJpeDpuZXcgdC5Vbmlmb3JtTWF0cml4NGYoZSxyLnVfaW52X21hdHJpeCksdV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlOm5ldyB0LlVuaWZvcm0xZihlLHIudV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlKSx1X3ZpZXdwb3J0X3NpemU6bmV3IHQuVW5pZm9ybTJmKGUsci51X3ZpZXdwb3J0X3NpemUpfX0sZGVidWc6ZnVuY3Rpb24oZSxyKXtyZXR1cm57dV9jb2xvcjpuZXcgdC5Vbmlmb3JtQ29sb3IoZSxyLnVfY29sb3IpLHVfbWF0cml4Om5ldyB0LlVuaWZvcm1NYXRyaXg0ZihlLHIudV9tYXRyaXgpLHVfb3ZlcmxheTpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfb3ZlcmxheSksdV9vdmVybGF5X3NjYWxlOm5ldyB0LlVuaWZvcm0xZihlLHIudV9vdmVybGF5X3NjYWxlKX19LGNsaXBwaW5nTWFzazpmdW5jdGlvbihlLHIpe3JldHVybnt1X21hdHJpeDpuZXcgdC5Vbmlmb3JtTWF0cml4NGYoZSxyLnVfbWF0cml4KX19LGhlYXRtYXA6ZnVuY3Rpb24oZSxyKXtyZXR1cm57dV9leHRydWRlX3NjYWxlOm5ldyB0LlVuaWZvcm0xZihlLHIudV9leHRydWRlX3NjYWxlKSx1X2ludGVuc2l0eTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfaW50ZW5zaXR5KSx1X21hdHJpeDpuZXcgdC5Vbmlmb3JtTWF0cml4NGYoZSxyLnVfbWF0cml4KX19LGhlYXRtYXBUZXh0dXJlOmZ1bmN0aW9uKGUscil7cmV0dXJue3VfbWF0cml4Om5ldyB0LlVuaWZvcm1NYXRyaXg0ZihlLHIudV9tYXRyaXgpLHVfd29ybGQ6bmV3IHQuVW5pZm9ybTJmKGUsci51X3dvcmxkKSx1X2ltYWdlOm5ldyB0LlVuaWZvcm0xaShlLHIudV9pbWFnZSksdV9jb2xvcl9yYW1wOm5ldyB0LlVuaWZvcm0xaShlLHIudV9jb2xvcl9yYW1wKSx1X29wYWNpdHk6bmV3IHQuVW5pZm9ybTFmKGUsci51X29wYWNpdHkpfX0saGlsbHNoYWRlOmZ1bmN0aW9uKGUscil7cmV0dXJue3VfbWF0cml4Om5ldyB0LlVuaWZvcm1NYXRyaXg0ZihlLHIudV9tYXRyaXgpLHVfaW1hZ2U6bmV3IHQuVW5pZm9ybTFpKGUsci51X2ltYWdlKSx1X2xhdHJhbmdlOm5ldyB0LlVuaWZvcm0yZihlLHIudV9sYXRyYW5nZSksdV9saWdodDpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfbGlnaHQpLHVfc2hhZG93Om5ldyB0LlVuaWZvcm1Db2xvcihlLHIudV9zaGFkb3cpLHVfaGlnaGxpZ2h0Om5ldyB0LlVuaWZvcm1Db2xvcihlLHIudV9oaWdobGlnaHQpLHVfYWNjZW50Om5ldyB0LlVuaWZvcm1Db2xvcihlLHIudV9hY2NlbnQpfX0saGlsbHNoYWRlUHJlcGFyZTpmdW5jdGlvbihlLHIpe3JldHVybnt1X21hdHJpeDpuZXcgdC5Vbmlmb3JtTWF0cml4NGYoZSxyLnVfbWF0cml4KSx1X2ltYWdlOm5ldyB0LlVuaWZvcm0xaShlLHIudV9pbWFnZSksdV9kaW1lbnNpb246bmV3IHQuVW5pZm9ybTJmKGUsci51X2RpbWVuc2lvbiksdV96b29tOm5ldyB0LlVuaWZvcm0xZihlLHIudV96b29tKSx1X21heHpvb206bmV3IHQuVW5pZm9ybTFmKGUsci51X21heHpvb20pLHVfdW5wYWNrOm5ldyB0LlVuaWZvcm00ZihlLHIudV91bnBhY2spfX0sbGluZTpmdW5jdGlvbihlLHIpe3JldHVybnt1X21hdHJpeDpuZXcgdC5Vbmlmb3JtTWF0cml4NGYoZSxyLnVfbWF0cml4KSx1X3JhdGlvOm5ldyB0LlVuaWZvcm0xZihlLHIudV9yYXRpbyksdV9kZXZpY2VfcGl4ZWxfcmF0aW86bmV3IHQuVW5pZm9ybTFmKGUsci51X2RldmljZV9waXhlbF9yYXRpbyksdV91bml0c190b19waXhlbHM6bmV3IHQuVW5pZm9ybTJmKGUsci51X3VuaXRzX3RvX3BpeGVscyl9fSxsaW5lR3JhZGllbnQ6ZnVuY3Rpb24oZSxyKXtyZXR1cm57dV9tYXRyaXg6bmV3IHQuVW5pZm9ybU1hdHJpeDRmKGUsci51X21hdHJpeCksdV9yYXRpbzpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfcmF0aW8pLHVfZGV2aWNlX3BpeGVsX3JhdGlvOm5ldyB0LlVuaWZvcm0xZihlLHIudV9kZXZpY2VfcGl4ZWxfcmF0aW8pLHVfdW5pdHNfdG9fcGl4ZWxzOm5ldyB0LlVuaWZvcm0yZihlLHIudV91bml0c190b19waXhlbHMpLHVfaW1hZ2U6bmV3IHQuVW5pZm9ybTFpKGUsci51X2ltYWdlKX19LGxpbmVQYXR0ZXJuOmZ1bmN0aW9uKGUscil7cmV0dXJue3VfbWF0cml4Om5ldyB0LlVuaWZvcm1NYXRyaXg0ZihlLHIudV9tYXRyaXgpLHVfdGV4c2l6ZTpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfdGV4c2l6ZSksdV9yYXRpbzpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfcmF0aW8pLHVfZGV2aWNlX3BpeGVsX3JhdGlvOm5ldyB0LlVuaWZvcm0xZihlLHIudV9kZXZpY2VfcGl4ZWxfcmF0aW8pLHVfaW1hZ2U6bmV3IHQuVW5pZm9ybTFpKGUsci51X2ltYWdlKSx1X3VuaXRzX3RvX3BpeGVsczpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfdW5pdHNfdG9fcGl4ZWxzKSx1X3NjYWxlOm5ldyB0LlVuaWZvcm0zZihlLHIudV9zY2FsZSksdV9mYWRlOm5ldyB0LlVuaWZvcm0xZihlLHIudV9mYWRlKX19LGxpbmVTREY6ZnVuY3Rpb24oZSxyKXtyZXR1cm57dV9tYXRyaXg6bmV3IHQuVW5pZm9ybU1hdHJpeDRmKGUsci51X21hdHJpeCksdV9yYXRpbzpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfcmF0aW8pLHVfZGV2aWNlX3BpeGVsX3JhdGlvOm5ldyB0LlVuaWZvcm0xZihlLHIudV9kZXZpY2VfcGl4ZWxfcmF0aW8pLHVfdW5pdHNfdG9fcGl4ZWxzOm5ldyB0LlVuaWZvcm0yZihlLHIudV91bml0c190b19waXhlbHMpLHVfcGF0dGVybnNjYWxlX2E6bmV3IHQuVW5pZm9ybTJmKGUsci51X3BhdHRlcm5zY2FsZV9hKSx1X3BhdHRlcm5zY2FsZV9iOm5ldyB0LlVuaWZvcm0yZihlLHIudV9wYXR0ZXJuc2NhbGVfYiksdV9zZGZnYW1tYTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfc2RmZ2FtbWEpLHVfaW1hZ2U6bmV3IHQuVW5pZm9ybTFpKGUsci51X2ltYWdlKSx1X3RleF95X2E6bmV3IHQuVW5pZm9ybTFmKGUsci51X3RleF95X2EpLHVfdGV4X3lfYjpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfdGV4X3lfYiksdV9taXg6bmV3IHQuVW5pZm9ybTFmKGUsci51X21peCl9fSxyYXN0ZXI6ZnVuY3Rpb24oZSxyKXtyZXR1cm57dV9tYXRyaXg6bmV3IHQuVW5pZm9ybU1hdHJpeDRmKGUsci51X21hdHJpeCksdV90bF9wYXJlbnQ6bmV3IHQuVW5pZm9ybTJmKGUsci51X3RsX3BhcmVudCksdV9zY2FsZV9wYXJlbnQ6bmV3IHQuVW5pZm9ybTFmKGUsci51X3NjYWxlX3BhcmVudCksdV9idWZmZXJfc2NhbGU6bmV3IHQuVW5pZm9ybTFmKGUsci51X2J1ZmZlcl9zY2FsZSksdV9mYWRlX3Q6bmV3IHQuVW5pZm9ybTFmKGUsci51X2ZhZGVfdCksdV9vcGFjaXR5Om5ldyB0LlVuaWZvcm0xZihlLHIudV9vcGFjaXR5KSx1X2ltYWdlMDpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfaW1hZ2UwKSx1X2ltYWdlMTpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfaW1hZ2UxKSx1X2JyaWdodG5lc3NfbG93Om5ldyB0LlVuaWZvcm0xZihlLHIudV9icmlnaHRuZXNzX2xvdyksdV9icmlnaHRuZXNzX2hpZ2g6bmV3IHQuVW5pZm9ybTFmKGUsci51X2JyaWdodG5lc3NfaGlnaCksdV9zYXR1cmF0aW9uX2ZhY3RvcjpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfc2F0dXJhdGlvbl9mYWN0b3IpLHVfY29udHJhc3RfZmFjdG9yOm5ldyB0LlVuaWZvcm0xZihlLHIudV9jb250cmFzdF9mYWN0b3IpLHVfc3Bpbl93ZWlnaHRzOm5ldyB0LlVuaWZvcm0zZihlLHIudV9zcGluX3dlaWdodHMpfX0sc3ltYm9sSWNvbjpmdW5jdGlvbihlLHIpe3JldHVybnt1X2lzX3NpemVfem9vbV9jb25zdGFudDpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfaXNfc2l6ZV96b29tX2NvbnN0YW50KSx1X2lzX3NpemVfZmVhdHVyZV9jb25zdGFudDpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfaXNfc2l6ZV9mZWF0dXJlX2NvbnN0YW50KSx1X3NpemVfdDpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfc2l6ZV90KSx1X3NpemU6bmV3IHQuVW5pZm9ybTFmKGUsci51X3NpemUpLHVfY2FtZXJhX3RvX2NlbnRlcl9kaXN0YW5jZTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfY2FtZXJhX3RvX2NlbnRlcl9kaXN0YW5jZSksdV9waXRjaDpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfcGl0Y2gpLHVfcm90YXRlX3N5bWJvbDpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfcm90YXRlX3N5bWJvbCksdV9hc3BlY3RfcmF0aW86bmV3IHQuVW5pZm9ybTFmKGUsci51X2FzcGVjdF9yYXRpbyksdV9mYWRlX2NoYW5nZTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfZmFkZV9jaGFuZ2UpLHVfbWF0cml4Om5ldyB0LlVuaWZvcm1NYXRyaXg0ZihlLHIudV9tYXRyaXgpLHVfbGFiZWxfcGxhbmVfbWF0cml4Om5ldyB0LlVuaWZvcm1NYXRyaXg0ZihlLHIudV9sYWJlbF9wbGFuZV9tYXRyaXgpLHVfY29vcmRfbWF0cml4Om5ldyB0LlVuaWZvcm1NYXRyaXg0ZihlLHIudV9jb29yZF9tYXRyaXgpLHVfaXNfdGV4dDpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfaXNfdGV4dCksdV9waXRjaF93aXRoX21hcDpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfcGl0Y2hfd2l0aF9tYXApLHVfdGV4c2l6ZTpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfdGV4c2l6ZSksdV90ZXh0dXJlOm5ldyB0LlVuaWZvcm0xaShlLHIudV90ZXh0dXJlKX19LHN5bWJvbFNERjpmdW5jdGlvbihlLHIpe3JldHVybnt1X2lzX3NpemVfem9vbV9jb25zdGFudDpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfaXNfc2l6ZV96b29tX2NvbnN0YW50KSx1X2lzX3NpemVfZmVhdHVyZV9jb25zdGFudDpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfaXNfc2l6ZV9mZWF0dXJlX2NvbnN0YW50KSx1X3NpemVfdDpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfc2l6ZV90KSx1X3NpemU6bmV3IHQuVW5pZm9ybTFmKGUsci51X3NpemUpLHVfY2FtZXJhX3RvX2NlbnRlcl9kaXN0YW5jZTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfY2FtZXJhX3RvX2NlbnRlcl9kaXN0YW5jZSksdV9waXRjaDpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfcGl0Y2gpLHVfcm90YXRlX3N5bWJvbDpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfcm90YXRlX3N5bWJvbCksdV9hc3BlY3RfcmF0aW86bmV3IHQuVW5pZm9ybTFmKGUsci51X2FzcGVjdF9yYXRpbyksdV9mYWRlX2NoYW5nZTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfZmFkZV9jaGFuZ2UpLHVfbWF0cml4Om5ldyB0LlVuaWZvcm1NYXRyaXg0ZihlLHIudV9tYXRyaXgpLHVfbGFiZWxfcGxhbmVfbWF0cml4Om5ldyB0LlVuaWZvcm1NYXRyaXg0ZihlLHIudV9sYWJlbF9wbGFuZV9tYXRyaXgpLHVfY29vcmRfbWF0cml4Om5ldyB0LlVuaWZvcm1NYXRyaXg0ZihlLHIudV9jb29yZF9tYXRyaXgpLHVfaXNfdGV4dDpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfaXNfdGV4dCksdV9waXRjaF93aXRoX21hcDpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfcGl0Y2hfd2l0aF9tYXApLHVfdGV4c2l6ZTpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfdGV4c2l6ZSksdV90ZXh0dXJlOm5ldyB0LlVuaWZvcm0xaShlLHIudV90ZXh0dXJlKSx1X2dhbW1hX3NjYWxlOm5ldyB0LlVuaWZvcm0xZihlLHIudV9nYW1tYV9zY2FsZSksdV9kZXZpY2VfcGl4ZWxfcmF0aW86bmV3IHQuVW5pZm9ybTFmKGUsci51X2RldmljZV9waXhlbF9yYXRpbyksdV9pc19oYWxvOm5ldyB0LlVuaWZvcm0xaShlLHIudV9pc19oYWxvKX19LHN5bWJvbFRleHRBbmRJY29uOmZ1bmN0aW9uKGUscil7cmV0dXJue3VfaXNfc2l6ZV96b29tX2NvbnN0YW50Om5ldyB0LlVuaWZvcm0xaShlLHIudV9pc19zaXplX3pvb21fY29uc3RhbnQpLHVfaXNfc2l6ZV9mZWF0dXJlX2NvbnN0YW50Om5ldyB0LlVuaWZvcm0xaShlLHIudV9pc19zaXplX2ZlYXR1cmVfY29uc3RhbnQpLHVfc2l6ZV90Om5ldyB0LlVuaWZvcm0xZihlLHIudV9zaXplX3QpLHVfc2l6ZTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfc2l6ZSksdV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlOm5ldyB0LlVuaWZvcm0xZihlLHIudV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlKSx1X3BpdGNoOm5ldyB0LlVuaWZvcm0xZihlLHIudV9waXRjaCksdV9yb3RhdGVfc3ltYm9sOm5ldyB0LlVuaWZvcm0xaShlLHIudV9yb3RhdGVfc3ltYm9sKSx1X2FzcGVjdF9yYXRpbzpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfYXNwZWN0X3JhdGlvKSx1X2ZhZGVfY2hhbmdlOm5ldyB0LlVuaWZvcm0xZihlLHIudV9mYWRlX2NoYW5nZSksdV9tYXRyaXg6bmV3IHQuVW5pZm9ybU1hdHJpeDRmKGUsci51X21hdHJpeCksdV9sYWJlbF9wbGFuZV9tYXRyaXg6bmV3IHQuVW5pZm9ybU1hdHJpeDRmKGUsci51X2xhYmVsX3BsYW5lX21hdHJpeCksdV9jb29yZF9tYXRyaXg6bmV3IHQuVW5pZm9ybU1hdHJpeDRmKGUsci51X2Nvb3JkX21hdHJpeCksdV9pc190ZXh0Om5ldyB0LlVuaWZvcm0xaShlLHIudV9pc190ZXh0KSx1X3BpdGNoX3dpdGhfbWFwOm5ldyB0LlVuaWZvcm0xaShlLHIudV9waXRjaF93aXRoX21hcCksdV90ZXhzaXplOm5ldyB0LlVuaWZvcm0yZihlLHIudV90ZXhzaXplKSx1X3RleHNpemVfaWNvbjpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfdGV4c2l6ZV9pY29uKSx1X3RleHR1cmU6bmV3IHQuVW5pZm9ybTFpKGUsci51X3RleHR1cmUpLHVfdGV4dHVyZV9pY29uOm5ldyB0LlVuaWZvcm0xaShlLHIudV90ZXh0dXJlX2ljb24pLHVfZ2FtbWFfc2NhbGU6bmV3IHQuVW5pZm9ybTFmKGUsci51X2dhbW1hX3NjYWxlKSx1X2RldmljZV9waXhlbF9yYXRpbzpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfZGV2aWNlX3BpeGVsX3JhdGlvKSx1X2lzX2hhbG86bmV3IHQuVW5pZm9ybTFpKGUsci51X2lzX2hhbG8pfX0sYmFja2dyb3VuZDpmdW5jdGlvbihlLHIpe3JldHVybnt1X21hdHJpeDpuZXcgdC5Vbmlmb3JtTWF0cml4NGYoZSxyLnVfbWF0cml4KSx1X29wYWNpdHk6bmV3IHQuVW5pZm9ybTFmKGUsci51X29wYWNpdHkpLHVfY29sb3I6bmV3IHQuVW5pZm9ybUNvbG9yKGUsci51X2NvbG9yKX19LGJhY2tncm91bmRQYXR0ZXJuOmZ1bmN0aW9uKGUscil7cmV0dXJue3VfbWF0cml4Om5ldyB0LlVuaWZvcm1NYXRyaXg0ZihlLHIudV9tYXRyaXgpLHVfb3BhY2l0eTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfb3BhY2l0eSksdV9pbWFnZTpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfaW1hZ2UpLHVfcGF0dGVybl90bF9hOm5ldyB0LlVuaWZvcm0yZihlLHIudV9wYXR0ZXJuX3RsX2EpLHVfcGF0dGVybl9icl9hOm5ldyB0LlVuaWZvcm0yZihlLHIudV9wYXR0ZXJuX2JyX2EpLHVfcGF0dGVybl90bF9iOm5ldyB0LlVuaWZvcm0yZihlLHIudV9wYXR0ZXJuX3RsX2IpLHVfcGF0dGVybl9icl9iOm5ldyB0LlVuaWZvcm0yZihlLHIudV9wYXR0ZXJuX2JyX2IpLHVfdGV4c2l6ZTpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfdGV4c2l6ZSksdV9taXg6bmV3IHQuVW5pZm9ybTFmKGUsci51X21peCksdV9wYXR0ZXJuX3NpemVfYTpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfcGF0dGVybl9zaXplX2EpLHVfcGF0dGVybl9zaXplX2I6bmV3IHQuVW5pZm9ybTJmKGUsci51X3BhdHRlcm5fc2l6ZV9iKSx1X3NjYWxlX2E6bmV3IHQuVW5pZm9ybTFmKGUsci51X3NjYWxlX2EpLHVfc2NhbGVfYjpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfc2NhbGVfYiksdV9waXhlbF9jb29yZF91cHBlcjpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfcGl4ZWxfY29vcmRfdXBwZXIpLHVfcGl4ZWxfY29vcmRfbG93ZXI6bmV3IHQuVW5pZm9ybTJmKGUsci51X3BpeGVsX2Nvb3JkX2xvd2VyKSx1X3RpbGVfdW5pdHNfdG9fcGl4ZWxzOm5ldyB0LlVuaWZvcm0xZihlLHIudV90aWxlX3VuaXRzX3RvX3BpeGVscyl9fX07ZnVuY3Rpb24gS3IoZSxyLG4saSxhLG8scyl7Zm9yKHZhciBsPWUuY29udGV4dCxjPWwuZ2wsdT1lLnVzZVByb2dyYW0oImNvbGxpc2lvbkJveCIpLGY9W10saD0wLHA9MCxkPTA7ZDxpLmxlbmd0aDtkKyspe3ZhciBtPWlbZF0sZz1yLmdldFRpbGUobSksdj1nLmdldEJ1Y2tldChuKTtpZih2KXt2YXIgeT1tLnBvc01hdHJpeDswPT09YVswXSYmMD09PWFbMV18fCh5PWUudHJhbnNsYXRlUG9zTWF0cml4KG0ucG9zTWF0cml4LGcsYSxvKSk7dmFyIHg9cz92LnRleHRDb2xsaXNpb25Cb3g6di5pY29uQ29sbGlzaW9uQm94LGI9di5jb2xsaXNpb25DaXJjbGVBcnJheTtpZihiLmxlbmd0aD4wKXt2YXIgXz10LmNyZWF0ZSgpLHc9eTt0Lm11bChfLHYucGxhY2VtZW50SW52UHJvak1hdHJpeCxlLnRyYW5zZm9ybS5nbENvb3JkTWF0cml4KSx0Lm11bChfLF8sdi5wbGFjZW1lbnRWaWV3cG9ydE1hdHJpeCksZi5wdXNoKHtjaXJjbGVBcnJheTpiLGNpcmNsZU9mZnNldDpwLHRyYW5zZm9ybTp3LGludlRyYW5zZm9ybTpffSkscD1oKz1iLmxlbmd0aC80fXgmJnUuZHJhdyhsLGMuTElORVMsQXQuZGlzYWJsZWQsTXQuZGlzYWJsZWQsZS5jb2xvck1vZGVGb3JSZW5kZXJQYXNzKCksRXQuZGlzYWJsZWQsQ3IoeSxlLnRyYW5zZm9ybSxnKSxuLmlkLHgubGF5b3V0VmVydGV4QnVmZmVyLHguaW5kZXhCdWZmZXIseC5zZWdtZW50cyxudWxsLGUudHJhbnNmb3JtLnpvb20sbnVsbCxudWxsLHguY29sbGlzaW9uVmVydGV4QnVmZmVyKX19aWYocyYmZi5sZW5ndGgpe3ZhciBUPWUudXNlUHJvZ3JhbSgiY29sbGlzaW9uQ2lyY2xlIiksaz1uZXcgdC5TdHJ1Y3RBcnJheUxheW91dDJmMWYyaTE2O2sucmVzaXplKDQqaCksay5fdHJpbSgpO2Zvcih2YXIgQT0wLE09MCxTPWY7TTxTLmxlbmd0aDtNKz0xKWZvcih2YXIgRT1TW01dLEw9MDtMPEUuY2lyY2xlQXJyYXkubGVuZ3RoLzQ7TCsrKXt2YXIgQz00KkwsUD1FLmNpcmNsZUFycmF5W0MrMF0sST1FLmNpcmNsZUFycmF5W0MrMV0sTz1FLmNpcmNsZUFycmF5W0MrMl0sej1FLmNpcmNsZUFycmF5W0MrM107ay5lbXBsYWNlKEErKyxQLEksTyx6LDApLGsuZW1wbGFjZShBKyssUCxJLE8seiwxKSxrLmVtcGxhY2UoQSsrLFAsSSxPLHosMiksay5lbXBsYWNlKEErKyxQLEksTyx6LDMpfSghcXJ8fHFyLmxlbmd0aDwyKmgpJiYocXI9ZnVuY3Rpb24oZSl7dmFyIHI9MiplLG49bmV3IHQuU3RydWN0QXJyYXlMYXlvdXQzdWk2O24ucmVzaXplKHIpLG4uX3RyaW0oKTtmb3IodmFyIGk9MDtpPHI7aSsrKXt2YXIgYT02Kmk7bi51aW50MTZbYSswXT00KmkrMCxuLnVpbnQxNlthKzFdPTQqaSsxLG4udWludDE2W2ErMl09NCppKzIsbi51aW50MTZbYSszXT00KmkrMixuLnVpbnQxNlthKzRdPTQqaSszLG4udWludDE2W2ErNV09NCppKzB9cmV0dXJuIG59KGgpKTtmb3IodmFyIEQ9bC5jcmVhdGVJbmRleEJ1ZmZlcihxciwhMCksUj1sLmNyZWF0ZVZlcnRleEJ1ZmZlcihrLHQuY29sbGlzaW9uQ2lyY2xlTGF5b3V0Lm1lbWJlcnMsITApLEY9MCxCPWY7RjxCLmxlbmd0aDtGKz0xKXt2YXIgTj1CW0ZdLGo9UHIoTi50cmFuc2Zvcm0sTi5pbnZUcmFuc2Zvcm0sZS50cmFuc2Zvcm0pO1QuZHJhdyhsLGMuVFJJQU5HTEVTLEF0LmRpc2FibGVkLE10LmRpc2FibGVkLGUuY29sb3JNb2RlRm9yUmVuZGVyUGFzcygpLEV0LmRpc2FibGVkLGosbi5pZCxSLEQsdC5TZWdtZW50VmVjdG9yLnNpbXBsZVNlZ21lbnQoMCwyKk4uY2lyY2xlT2Zmc2V0LE4uY2lyY2xlQXJyYXkubGVuZ3RoLE4uY2lyY2xlQXJyYXkubGVuZ3RoLzIpLG51bGwsZS50cmFuc2Zvcm0uem9vbSxudWxsLG51bGwsbnVsbCl9Ui5kZXN0cm95KCksRC5kZXN0cm95KCl9fXZhciBRcj10LmlkZW50aXR5KG5ldyBGbG9hdDMyQXJyYXkoMTYpKTtmdW5jdGlvbiAkcihlLHIsbixpLGEsbyl7dmFyIHM9dC5nZXRBbmNob3JBbGlnbm1lbnQoZSksbD0tKHMuaG9yaXpvbnRhbEFsaWduLS41KSpyLGM9LShzLnZlcnRpY2FsQWxpZ24tLjUpKm4sdT10LmV2YWx1YXRlVmFyaWFibGVPZmZzZXQoZSxpKTtyZXR1cm4gbmV3IHQuUG9pbnQoKGwvYSt1WzBdKSpvLChjL2ErdVsxXSkqbyl9ZnVuY3Rpb24gdG4oZSxyLG4saSxhLG8scyxsLGMsdSxmKXt2YXIgaD1lLnRleHQucGxhY2VkU3ltYm9sQXJyYXkscD1lLnRleHQuZHluYW1pY0xheW91dFZlcnRleEFycmF5LGQ9ZS5pY29uLmR5bmFtaWNMYXlvdXRWZXJ0ZXhBcnJheSxtPXt9O3AuY2xlYXIoKTtmb3IodmFyIGc9MDtnPGgubGVuZ3RoO2crKyl7dmFyIHY9aC5nZXQoZykseT1lLmFsbG93VmVydGljYWxQbGFjZW1lbnQmJiF2LnBsYWNlZE9yaWVudGF0aW9uLHg9di5oaWRkZW58fCF2LmNyb3NzVGlsZUlEfHx5P251bGw6aVt2LmNyb3NzVGlsZUlEXTtpZih4KXt2YXIgYj1uZXcgdC5Qb2ludCh2LmFuY2hvclgsdi5hbmNob3JZKSxfPXRlKGIsbj9sOnMpLHc9ZWUoby5jYW1lcmFUb0NlbnRlckRpc3RhbmNlLF8uc2lnbmVkRGlzdGFuY2VGcm9tQ2FtZXJhKSxUPWEuZXZhbHVhdGVTaXplRm9yRmVhdHVyZShlLnRleHRTaXplRGF0YSx1LHYpKncvdC5PTkVfRU07biYmKFQqPWUudGlsZVBpeGVsUmF0aW8vYyk7Zm9yKHZhciBrPXgud2lkdGgsQT14LmhlaWdodCxNPSRyKHguYW5jaG9yLGssQSx4LnRleHRPZmZzZXQseC50ZXh0Qm94U2NhbGUsVCksUz1uP3RlKGIuYWRkKE0pLHMpLnBvaW50Ol8ucG9pbnQuYWRkKHI/TS5yb3RhdGUoLW8uYW5nbGUpOk0pLEU9ZS5hbGxvd1ZlcnRpY2FsUGxhY2VtZW50JiZ2LnBsYWNlZE9yaWVudGF0aW9uPT09dC5Xcml0aW5nTW9kZS52ZXJ0aWNhbD9NYXRoLlBJLzI6MCxMPTA7TDx2Lm51bUdseXBocztMKyspdC5hZGREeW5hbWljQXR0cmlidXRlcyhwLFMsRSk7ZiYmdi5hc3NvY2lhdGVkSWNvbkluZGV4Pj0wJiYobVt2LmFzc29jaWF0ZWRJY29uSW5kZXhdPXtzaGlmdGVkQW5jaG9yOlMsYW5nbGU6RX0pfWVsc2UgdWUodi5udW1HbHlwaHMscCl9aWYoZil7ZC5jbGVhcigpO2Zvcih2YXIgQz1lLmljb24ucGxhY2VkU3ltYm9sQXJyYXksUD0wO1A8Qy5sZW5ndGg7UCsrKXt2YXIgST1DLmdldChQKTtpZihJLmhpZGRlbil1ZShJLm51bUdseXBocyxkKTtlbHNle3ZhciBPPW1bUF07aWYoTylmb3IodmFyIHo9MDt6PEkubnVtR2x5cGhzO3orKyl0LmFkZER5bmFtaWNBdHRyaWJ1dGVzKGQsTy5zaGlmdGVkQW5jaG9yLE8uYW5nbGUpO2Vsc2UgdWUoSS5udW1HbHlwaHMsZCl9fWUuaWNvbi5keW5hbWljTGF5b3V0VmVydGV4QnVmZmVyLnVwZGF0ZURhdGEoZCl9ZS50ZXh0LmR5bmFtaWNMYXlvdXRWZXJ0ZXhCdWZmZXIudXBkYXRlRGF0YShwKX1mdW5jdGlvbiBlbih0LGUscil7cmV0dXJuIHIuaWNvbnNJblRleHQmJmU/InN5bWJvbFRleHRBbmRJY29uIjp0PyJzeW1ib2xTREYiOiJzeW1ib2xJY29uIn1mdW5jdGlvbiBybihlLHIsbixpLGEsbyxzLGwsYyx1LGYsaCl7Zm9yKHZhciBwPWUuY29udGV4dCxkPXAuZ2wsbT1lLnRyYW5zZm9ybSxnPSJtYXAiPT09bCx2PSJtYXAiPT09Yyx5PWcmJiJwb2ludCIhPT1uLmxheW91dC5nZXQoInN5bWJvbC1wbGFjZW1lbnQiKSx4PWcmJiF2JiYheSxiPXZvaWQgMCE9PW4ubGF5b3V0LmdldCgic3ltYm9sLXNvcnQta2V5IikuY29uc3RhbnRPcigxKSxfPWUuZGVwdGhNb2RlRm9yU3VibGF5ZXIoMCxBdC5SZWFkT25seSksdz1uLmxheW91dC5nZXQoInRleHQtdmFyaWFibGUtYW5jaG9yIiksVD1bXSxrPTAsQT1pO2s8QS5sZW5ndGg7ays9MSl7dmFyIE09QVtrXSxTPXIuZ2V0VGlsZShNKSxFPVMuZ2V0QnVja2V0KG4pO2lmKEUpe3ZhciBMPWE/RS50ZXh0OkUuaWNvbjtpZihMJiZMLnNlZ21lbnRzLmdldCgpLmxlbmd0aCl7dmFyIEM9TC5wcm9ncmFtQ29uZmlndXJhdGlvbnMuZ2V0KG4uaWQpLFA9YXx8RS5zZGZJY29ucyxJPWE/RS50ZXh0U2l6ZURhdGE6RS5pY29uU2l6ZURhdGEsTz12fHwwIT09bS5waXRjaCx6PWUudXNlUHJvZ3JhbShlbihQLGEsRSksQyksRD10LmV2YWx1YXRlU2l6ZUZvclpvb20oSSxtLnpvb20pLFI9dm9pZCAwLEY9WzAsMF0sQj12b2lkIDAsTj12b2lkIDAsaj1udWxsLFU9dm9pZCAwO2lmKGEpe2lmKEI9Uy5nbHlwaEF0bGFzVGV4dHVyZSxOPWQuTElORUFSLFI9Uy5nbHlwaEF0bGFzVGV4dHVyZS5zaXplLEUuaWNvbnNJblRleHQpe0Y9Uy5pbWFnZUF0bGFzVGV4dHVyZS5zaXplLGo9Uy5pbWFnZUF0bGFzVGV4dHVyZTt2YXIgVj0iY29tcG9zaXRlIj09PUkua2luZHx8ImNhbWVyYSI9PT1JLmtpbmQ7VT1PfHxlLm9wdGlvbnMucm90YXRpbmd8fGUub3B0aW9ucy56b29taW5nfHxWP2QuTElORUFSOmQuTkVBUkVTVH19ZWxzZXt2YXIgSD0xIT09bi5sYXlvdXQuZ2V0KCJpY29uLXNpemUiKS5jb25zdGFudE9yKDApfHxFLmljb25zTmVlZExpbmVhcjtCPVMuaW1hZ2VBdGxhc1RleHR1cmUsTj1QfHxlLm9wdGlvbnMucm90YXRpbmd8fGUub3B0aW9ucy56b29taW5nfHxIfHxPP2QuTElORUFSOmQuTkVBUkVTVCxSPVMuaW1hZ2VBdGxhc1RleHR1cmUuc2l6ZX12YXIgcT1wZShTLDEsZS50cmFuc2Zvcm0uem9vbSksRz1RdChNLnBvc01hdHJpeCx2LGcsZS50cmFuc2Zvcm0scSksWT0kdChNLnBvc01hdHJpeCx2LGcsZS50cmFuc2Zvcm0scSksVz13JiZFLmhhc1RleHREYXRhKCksWD0ibm9uZSIhPT1uLmxheW91dC5nZXQoImljb24tdGV4dC1maXQiKSYmVyYmRS5oYXNJY29uRGF0YSgpO3kmJm5lKEUsTS5wb3NNYXRyaXgsZSxhLEcsWSx2LHUpO3ZhciBaPWUudHJhbnNsYXRlUG9zTWF0cml4KE0ucG9zTWF0cml4LFMsbyxzKSxKPXl8fGEmJnd8fFg/UXI6RyxLPWUudHJhbnNsYXRlUG9zTWF0cml4KFksUyxvLHMsITApLFE9UCYmMCE9PW4ucGFpbnQuZ2V0KGE/InRleHQtaGFsby13aWR0aCI6Imljb24taGFsby13aWR0aCIpLmNvbnN0YW50T3IoMSksJD17cHJvZ3JhbTp6LGJ1ZmZlcnM6TCx1bmlmb3JtVmFsdWVzOlA/RS5pY29uc0luVGV4dD9XcihJLmtpbmQsRCx4LHYsZSxaLEosSyxSLEYpOllyKEkua2luZCxELHgsdixlLFosSixLLGEsUiwhMCk6R3IoSS5raW5kLEQseCx2LGUsWixKLEssYSxSKSxhdGxhc1RleHR1cmU6QixhdGxhc1RleHR1cmVJY29uOmosYXRsYXNJbnRlcnBvbGF0aW9uOk4sYXRsYXNJbnRlcnBvbGF0aW9uSWNvbjpVLGlzU0RGOlAsaGFzSGFsbzpRfTtpZihiKWZvcih2YXIgdHQ9MCxldD1MLnNlZ21lbnRzLmdldCgpO3R0PGV0Lmxlbmd0aDt0dCs9MSl7dmFyIHJ0PWV0W3R0XTtULnB1c2goe3NlZ21lbnRzOm5ldyB0LlNlZ21lbnRWZWN0b3IoW3J0XSksc29ydEtleTpydC5zb3J0S2V5LHN0YXRlOiR9KX1lbHNlIFQucHVzaCh7c2VnbWVudHM6TC5zZWdtZW50cyxzb3J0S2V5OjAsc3RhdGU6JH0pfX19YiYmVC5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0LnNvcnRLZXktZS5zb3J0S2V5fSkpO2Zvcih2YXIgbnQ9MCxpdD1UO250PGl0Lmxlbmd0aDtudCs9MSl7dmFyIGF0PWl0W250XSxvdD1hdC5zdGF0ZTtpZihwLmFjdGl2ZVRleHR1cmUuc2V0KGQuVEVYVFVSRTApLG90LmF0bGFzVGV4dHVyZS5iaW5kKG90LmF0bGFzSW50ZXJwb2xhdGlvbixkLkNMQU1QX1RPX0VER0UpLG90LmF0bGFzVGV4dHVyZUljb24mJihwLmFjdGl2ZVRleHR1cmUuc2V0KGQuVEVYVFVSRTEpLG90LmF0bGFzVGV4dHVyZUljb24mJm90LmF0bGFzVGV4dHVyZUljb24uYmluZChvdC5hdGxhc0ludGVycG9sYXRpb25JY29uLGQuQ0xBTVBfVE9fRURHRSkpLG90LmlzU0RGKXt2YXIgc3Q9b3QudW5pZm9ybVZhbHVlcztvdC5oYXNIYWxvJiYoc3QudV9pc19oYWxvPTEsbm4ob3QuYnVmZmVycyxhdC5zZWdtZW50cyxuLGUsb3QucHJvZ3JhbSxfLGYsaCxzdCkpLHN0LnVfaXNfaGFsbz0wfW5uKG90LmJ1ZmZlcnMsYXQuc2VnbWVudHMsbixlLG90LnByb2dyYW0sXyxmLGgsb3QudW5pZm9ybVZhbHVlcyl9fWZ1bmN0aW9uIG5uKHQsZSxyLG4saSxhLG8scyxsKXt2YXIgYz1uLmNvbnRleHQsdT1jLmdsO2kuZHJhdyhjLHUuVFJJQU5HTEVTLGEsbyxzLEV0LmRpc2FibGVkLGwsci5pZCx0LmxheW91dFZlcnRleEJ1ZmZlcix0LmluZGV4QnVmZmVyLGUsci5wYWludCxuLnRyYW5zZm9ybS56b29tLHQucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLmdldChyLmlkKSx0LmR5bmFtaWNMYXlvdXRWZXJ0ZXhCdWZmZXIsdC5vcGFjaXR5VmVydGV4QnVmZmVyKX1mdW5jdGlvbiBhbih0LGUscixuLGksYSxvKXt2YXIgcyxsLGMsdSxmLGg9dC5jb250ZXh0LmdsLHA9ci5wYWludC5nZXQoImZpbGwtcGF0dGVybiIpLGQ9cCYmcC5jb25zdGFudE9yKDEpLG09ci5nZXRDcm9zc2ZhZGVQYXJhbWV0ZXJzKCk7bz8obD1kJiYhci5nZXRQYWludFByb3BlcnR5KCJmaWxsLW91dGxpbmUtY29sb3IiKT8iZmlsbE91dGxpbmVQYXR0ZXJuIjoiZmlsbE91dGxpbmUiLHM9aC5MSU5FUyk6KGw9ZD8iZmlsbFBhdHRlcm4iOiJmaWxsIixzPWguVFJJQU5HTEVTKTtmb3IodmFyIGc9MCx2PW47Zzx2Lmxlbmd0aDtnKz0xKXt2YXIgeT12W2ddLHg9ZS5nZXRUaWxlKHkpO2lmKCFkfHx4LnBhdHRlcm5zTG9hZGVkKCkpe3ZhciBiPXguZ2V0QnVja2V0KHIpO2lmKGIpe3ZhciBfPWIucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLmdldChyLmlkKSx3PXQudXNlUHJvZ3JhbShsLF8pO2QmJih0LmNvbnRleHQuYWN0aXZlVGV4dHVyZS5zZXQoaC5URVhUVVJFMCkseC5pbWFnZUF0bGFzVGV4dHVyZS5iaW5kKGguTElORUFSLGguQ0xBTVBfVE9fRURHRSksXy51cGRhdGVQYWludEJ1ZmZlcnMobSkpO3ZhciBUPXAuY29uc3RhbnRPcihudWxsKTtpZihUJiZ4LmltYWdlQXRsYXMpe3ZhciBrPXguaW1hZ2VBdGxhcyxBPWsucGF0dGVyblBvc2l0aW9uc1tULnRvLnRvU3RyaW5nKCldLE09ay5wYXR0ZXJuUG9zaXRpb25zW1QuZnJvbS50b1N0cmluZygpXTtBJiZNJiZfLnNldENvbnN0YW50UGF0dGVyblBvc2l0aW9ucyhBLE0pfXZhciBTPXQudHJhbnNsYXRlUG9zTWF0cml4KHkucG9zTWF0cml4LHgsci5wYWludC5nZXQoImZpbGwtdHJhbnNsYXRlIiksci5wYWludC5nZXQoImZpbGwtdHJhbnNsYXRlLWFuY2hvciIpKTtpZihvKXt1PWIuaW5kZXhCdWZmZXIyLGY9Yi5zZWdtZW50czI7dmFyIEU9W2guZHJhd2luZ0J1ZmZlcldpZHRoLGguZHJhd2luZ0J1ZmZlckhlaWdodF07Yz0iZmlsbE91dGxpbmVQYXR0ZXJuIj09PWwmJmQ/RXIoUyx0LG0seCxFKTpTcihTLEUpfWVsc2UgdT1iLmluZGV4QnVmZmVyLGY9Yi5zZWdtZW50cyxjPWQ/TXIoUyx0LG0seCk6QXIoUyk7dy5kcmF3KHQuY29udGV4dCxzLGksdC5zdGVuY2lsTW9kZUZvckNsaXBwaW5nKHkpLGEsRXQuZGlzYWJsZWQsYyxyLmlkLGIubGF5b3V0VmVydGV4QnVmZmVyLHUsZixyLnBhaW50LHQudHJhbnNmb3JtLnpvb20sXyl9fX19ZnVuY3Rpb24gb24odCxlLHIsbixpLGEsbyl7Zm9yKHZhciBzPXQuY29udGV4dCxsPXMuZ2wsYz1yLnBhaW50LmdldCgiZmlsbC1leHRydXNpb24tcGF0dGVybiIpLHU9Yy5jb25zdGFudE9yKDEpLGY9ci5nZXRDcm9zc2ZhZGVQYXJhbWV0ZXJzKCksaD1yLnBhaW50LmdldCgiZmlsbC1leHRydXNpb24tb3BhY2l0eSIpLHA9MCxkPW47cDxkLmxlbmd0aDtwKz0xKXt2YXIgbT1kW3BdLGc9ZS5nZXRUaWxlKG0pLHY9Zy5nZXRCdWNrZXQocik7aWYodil7dmFyIHk9di5wcm9ncmFtQ29uZmlndXJhdGlvbnMuZ2V0KHIuaWQpLHg9dC51c2VQcm9ncmFtKHU/ImZpbGxFeHRydXNpb25QYXR0ZXJuIjoiZmlsbEV4dHJ1c2lvbiIseSk7dSYmKHQuY29udGV4dC5hY3RpdmVUZXh0dXJlLnNldChsLlRFWFRVUkUwKSxnLmltYWdlQXRsYXNUZXh0dXJlLmJpbmQobC5MSU5FQVIsbC5DTEFNUF9UT19FREdFKSx5LnVwZGF0ZVBhaW50QnVmZmVycyhmKSk7dmFyIGI9Yy5jb25zdGFudE9yKG51bGwpO2lmKGImJmcuaW1hZ2VBdGxhcyl7dmFyIF89Zy5pbWFnZUF0bGFzLHc9Xy5wYXR0ZXJuUG9zaXRpb25zW2IudG8udG9TdHJpbmcoKV0sVD1fLnBhdHRlcm5Qb3NpdGlvbnNbYi5mcm9tLnRvU3RyaW5nKCldO3cmJlQmJnkuc2V0Q29uc3RhbnRQYXR0ZXJuUG9zaXRpb25zKHcsVCl9dmFyIGs9dC50cmFuc2xhdGVQb3NNYXRyaXgobS5wb3NNYXRyaXgsZyxyLnBhaW50LmdldCgiZmlsbC1leHRydXNpb24tdHJhbnNsYXRlIiksci5wYWludC5nZXQoImZpbGwtZXh0cnVzaW9uLXRyYW5zbGF0ZS1hbmNob3IiKSksQT1yLnBhaW50LmdldCgiZmlsbC1leHRydXNpb24tdmVydGljYWwtZ3JhZGllbnQiKSxNPXU/a3Ioayx0LEEsaCxtLGYsZyk6VHIoayx0LEEsaCk7eC5kcmF3KHMscy5nbC5UUklBTkdMRVMsaSxhLG8sRXQuYmFja0NDVyxNLHIuaWQsdi5sYXlvdXRWZXJ0ZXhCdWZmZXIsdi5pbmRleEJ1ZmZlcix2LnNlZ21lbnRzLHIucGFpbnQsdC50cmFuc2Zvcm0uem9vbSx5KX19fWZ1bmN0aW9uIHNuKHQsZSxyLG4saSxhKXt2YXIgbz10LmNvbnRleHQscz1vLmdsLGw9ZS5mYm87aWYobCl7dmFyIGM9dC51c2VQcm9ncmFtKCJoaWxsc2hhZGUiKTtvLmFjdGl2ZVRleHR1cmUuc2V0KHMuVEVYVFVSRTApLHMuYmluZFRleHR1cmUocy5URVhUVVJFXzJELGwuY29sb3JBdHRhY2htZW50LmdldCgpKTt2YXIgdT1mdW5jdGlvbih0LGUscil7dmFyIG49ci5wYWludC5nZXQoImhpbGxzaGFkZS1zaGFkb3ctY29sb3IiKSxpPXIucGFpbnQuZ2V0KCJoaWxsc2hhZGUtaGlnaGxpZ2h0LWNvbG9yIiksYT1yLnBhaW50LmdldCgiaGlsbHNoYWRlLWFjY2VudC1jb2xvciIpLG89ci5wYWludC5nZXQoImhpbGxzaGFkZS1pbGx1bWluYXRpb24tZGlyZWN0aW9uIikqKE1hdGguUEkvMTgwKTsidmlld3BvcnQiPT09ci5wYWludC5nZXQoImhpbGxzaGFkZS1pbGx1bWluYXRpb24tYW5jaG9yIikmJihvLT10LnRyYW5zZm9ybS5hbmdsZSk7dmFyIHM9IXQub3B0aW9ucy5tb3Zpbmc7cmV0dXJue3VfbWF0cml4OnQudHJhbnNmb3JtLmNhbGN1bGF0ZVBvc01hdHJpeChlLnRpbGVJRC50b1Vud3JhcHBlZCgpLHMpLHVfaW1hZ2U6MCx1X2xhdHJhbmdlOkRyKHQsZS50aWxlSUQpLHVfbGlnaHQ6W3IucGFpbnQuZ2V0KCJoaWxsc2hhZGUtZXhhZ2dlcmF0aW9uIiksb10sdV9zaGFkb3c6bix1X2hpZ2hsaWdodDppLHVfYWNjZW50OmF9fSh0LGUscik7Yy5kcmF3KG8scy5UUklBTkdMRVMsbixpLGEsRXQuZGlzYWJsZWQsdSxyLmlkLHQucmFzdGVyQm91bmRzQnVmZmVyLHQucXVhZFRyaWFuZ2xlSW5kZXhCdWZmZXIsdC5yYXN0ZXJCb3VuZHNTZWdtZW50cyl9fWZ1bmN0aW9uIGxuKGUscixuLGksYSxvLHMpe3ZhciBsPWUuY29udGV4dCxjPWwuZ2wsdT1yLmRlbTtpZih1JiZ1LmRhdGEpe3ZhciBmPXUuZGltLGg9dS5zdHJpZGUscD11LmdldFBpeGVscygpO2lmKGwuYWN0aXZlVGV4dHVyZS5zZXQoYy5URVhUVVJFMSksbC5waXhlbFN0b3JlVW5wYWNrUHJlbXVsdGlwbHlBbHBoYS5zZXQoITEpLHIuZGVtVGV4dHVyZT1yLmRlbVRleHR1cmV8fGUuZ2V0VGlsZVRleHR1cmUoaCksci5kZW1UZXh0dXJlKXt2YXIgZD1yLmRlbVRleHR1cmU7ZC51cGRhdGUocCx7cHJlbXVsdGlwbHk6ITF9KSxkLmJpbmQoYy5ORUFSRVNULGMuQ0xBTVBfVE9fRURHRSl9ZWxzZSByLmRlbVRleHR1cmU9bmV3IHQuVGV4dHVyZShsLHAsYy5SR0JBLHtwcmVtdWx0aXBseTohMX0pLHIuZGVtVGV4dHVyZS5iaW5kKGMuTkVBUkVTVCxjLkNMQU1QX1RPX0VER0UpO2wuYWN0aXZlVGV4dHVyZS5zZXQoYy5URVhUVVJFMCk7dmFyIG09ci5mYm87aWYoIW0pe3ZhciBnPW5ldyB0LlRleHR1cmUobCx7d2lkdGg6ZixoZWlnaHQ6ZixkYXRhOm51bGx9LGMuUkdCQSk7Zy5iaW5kKGMuTElORUFSLGMuQ0xBTVBfVE9fRURHRSksKG09ci5mYm89bC5jcmVhdGVGcmFtZWJ1ZmZlcihmLGYsITApKS5jb2xvckF0dGFjaG1lbnQuc2V0KGcudGV4dHVyZSl9bC5iaW5kRnJhbWVidWZmZXIuc2V0KG0uZnJhbWVidWZmZXIpLGwudmlld3BvcnQuc2V0KFswLDAsZixmXSksZS51c2VQcm9ncmFtKCJoaWxsc2hhZGVQcmVwYXJlIikuZHJhdyhsLGMuVFJJQU5HTEVTLGEsbyxzLEV0LmRpc2FibGVkLGZ1bmN0aW9uKGUscixuKXt2YXIgaT1yLnN0cmlkZSxhPXQuY3JlYXRlKCk7cmV0dXJuIHQub3J0aG8oYSwwLHQuRVhURU5ULC10LkVYVEVOVCwwLDAsMSksdC50cmFuc2xhdGUoYSxhLFswLC10LkVYVEVOVCwwXSkse3VfbWF0cml4OmEsdV9pbWFnZToxLHVfZGltZW5zaW9uOltpLGldLHVfem9vbTplLm92ZXJzY2FsZWRaLHVfbWF4em9vbTpuLHVfdW5wYWNrOnIuZ2V0VW5wYWNrVmVjdG9yKCl9fShyLnRpbGVJRCx1LGkpLG4uaWQsZS5yYXN0ZXJCb3VuZHNCdWZmZXIsZS5xdWFkVHJpYW5nbGVJbmRleEJ1ZmZlcixlLnJhc3RlckJvdW5kc1NlZ21lbnRzKSxyLm5lZWRzSGlsbHNoYWRlUHJlcGFyZT0hMX19ZnVuY3Rpb24gY24oZSxyLG4saSxhKXt2YXIgbz1pLnBhaW50LmdldCgicmFzdGVyLWZhZGUtZHVyYXRpb24iKTtpZihvPjApe3ZhciBzPXQuYnJvd3Nlci5ub3coKSxsPShzLWUudGltZUFkZGVkKS9vLGM9cj8ocy1yLnRpbWVBZGRlZCkvbzotMSx1PW4uZ2V0U291cmNlKCksZj1hLmNvdmVyaW5nWm9vbUxldmVsKHt0aWxlU2l6ZTp1LnRpbGVTaXplLHJvdW5kWm9vbTp1LnJvdW5kWm9vbX0pLGg9IXJ8fE1hdGguYWJzKHIudGlsZUlELm92ZXJzY2FsZWRaLWYpPk1hdGguYWJzKGUudGlsZUlELm92ZXJzY2FsZWRaLWYpLHA9aCYmZS5yZWZyZXNoZWRVcG9uRXhwaXJhdGlvbj8xOnQuY2xhbXAoaD9sOjEtYywwLDEpO3JldHVybiBlLnJlZnJlc2hlZFVwb25FeHBpcmF0aW9uJiZsPj0xJiYoZS5yZWZyZXNoZWRVcG9uRXhwaXJhdGlvbj0hMSkscj97b3BhY2l0eToxLG1peDoxLXB9OntvcGFjaXR5OnAsbWl4OjB9fXJldHVybntvcGFjaXR5OjEsbWl4OjB9fXZhciB1bj1uZXcgdC5Db2xvcigxLDAsMCwxKSxmbj1uZXcgdC5Db2xvcigwLDEsMCwxKSxobj1uZXcgdC5Db2xvcigwLDAsMSwxKSxwbj1uZXcgdC5Db2xvcigxLDAsMSwxKSxkbj1uZXcgdC5Db2xvcigwLDEsMSwxKTtmdW5jdGlvbiBtbih0KXt2YXIgZT10LnRyYW5zZm9ybS5wYWRkaW5nO2duKHQsdC50cmFuc2Zvcm0uaGVpZ2h0LShlLnRvcHx8MCksMyx1biksZ24odCxlLmJvdHRvbXx8MCwzLGZuKSx2bih0LGUubGVmdHx8MCwzLGhuKSx2bih0LHQudHJhbnNmb3JtLndpZHRoLShlLnJpZ2h0fHwwKSwzLHBuKTt2YXIgcj10LnRyYW5zZm9ybS5jZW50ZXJQb2ludDshZnVuY3Rpb24odCxlLHIsbil7eW4odCxlLTEsci0xMCwyLDIwLG4pLHluKHQsZS0xMCxyLTEsMjAsMixuKX0odCxyLngsdC50cmFuc2Zvcm0uaGVpZ2h0LXIueSxkbil9ZnVuY3Rpb24gZ24odCxlLHIsbil7eW4odCwwLGUrci8yLHQudHJhbnNmb3JtLndpZHRoLHIsbil9ZnVuY3Rpb24gdm4odCxlLHIsbil7eW4odCxlLXIvMiwwLHIsdC50cmFuc2Zvcm0uaGVpZ2h0LG4pfWZ1bmN0aW9uIHluKGUscixuLGksYSxvKXt2YXIgcz1lLmNvbnRleHQsbD1zLmdsO2wuZW5hYmxlKGwuU0NJU1NPUl9URVNUKSxsLnNjaXNzb3Iocip0LmJyb3dzZXIuZGV2aWNlUGl4ZWxSYXRpbyxuKnQuYnJvd3Nlci5kZXZpY2VQaXhlbFJhdGlvLGkqdC5icm93c2VyLmRldmljZVBpeGVsUmF0aW8sYSp0LmJyb3dzZXIuZGV2aWNlUGl4ZWxSYXRpbykscy5jbGVhcih7Y29sb3I6b30pLGwuZGlzYWJsZShsLlNDSVNTT1JfVEVTVCl9ZnVuY3Rpb24geG4oZSxyLG4pe3ZhciBpPWUuY29udGV4dCxhPWkuZ2wsbz1uLnBvc01hdHJpeCxzPWUudXNlUHJvZ3JhbSgiZGVidWciKSxsPUF0LmRpc2FibGVkLGM9TXQuZGlzYWJsZWQsdT1lLmNvbG9yTW9kZUZvclJlbmRlclBhc3MoKTtpLmFjdGl2ZVRleHR1cmUuc2V0KGEuVEVYVFVSRTApLGUuZW1wdHlUZXh0dXJlLmJpbmQoYS5MSU5FQVIsYS5DTEFNUF9UT19FREdFKSxzLmRyYXcoaSxhLkxJTkVfU1RSSVAsbCxjLHUsRXQuZGlzYWJsZWQsSXIobyx0LkNvbG9yLnJlZCksIiRkZWJ1ZyIsZS5kZWJ1Z0J1ZmZlcixlLnRpbGVCb3JkZXJJbmRleEJ1ZmZlcixlLmRlYnVnU2VnbWVudHMpO3ZhciBmPXIuZ2V0VGlsZUJ5SUQobi5rZXkpLmxhdGVzdFJhd1RpbGVEYXRhLGg9ZiYmZi5ieXRlTGVuZ3RofHwwLHA9TWF0aC5mbG9vcihoLzEwMjQpLGQ9ci5nZXRUaWxlKG4pLnRpbGVTaXplLG09NTEyL01hdGgubWluKGQsNTEyKSoobi5vdmVyc2NhbGVkWi9lLnRyYW5zZm9ybS56b29tKSouNSxnPW4uY2Fub25pY2FsLnRvU3RyaW5nKCk7bi5vdmVyc2NhbGVkWiE9PW4uY2Fub25pY2FsLnomJihnKz0iID0+ICIrbi5vdmVyc2NhbGVkWiksZnVuY3Rpb24odCxlKXt0LmluaXREZWJ1Z092ZXJsYXlDYW52YXMoKTt2YXIgcj10LmRlYnVnT3ZlcmxheUNhbnZhcyxuPXQuY29udGV4dC5nbCxpPXQuZGVidWdPdmVybGF5Q2FudmFzLmdldENvbnRleHQoIjJkIik7aS5jbGVhclJlY3QoMCwwLHIud2lkdGgsci5oZWlnaHQpLGkuc2hhZG93Q29sb3I9IndoaXRlIixpLnNoYWRvd0JsdXI9MixpLmxpbmVXaWR0aD0xLjUsaS5zdHJva2VTdHlsZT0id2hpdGUiLGkudGV4dEJhc2VsaW5lPSJ0b3AiLGkuZm9udD0iYm9sZCAzNnB4IE9wZW4gU2Fucywgc2Fucy1zZXJpZiIsaS5maWxsVGV4dChlLDUsNSksaS5zdHJva2VUZXh0KGUsNSw1KSx0LmRlYnVnT3ZlcmxheVRleHR1cmUudXBkYXRlKHIpLHQuZGVidWdPdmVybGF5VGV4dHVyZS5iaW5kKG4uTElORUFSLG4uQ0xBTVBfVE9fRURHRSl9KGUsZysiICIrcCsia2IiKSxzLmRyYXcoaSxhLlRSSUFOR0xFUyxsLGMsU3QuYWxwaGFCbGVuZGVkLEV0LmRpc2FibGVkLElyKG8sdC5Db2xvci50cmFuc3BhcmVudCxtKSwiJGRlYnVnIixlLmRlYnVnQnVmZmVyLGUucXVhZFRyaWFuZ2xlSW5kZXhCdWZmZXIsZS5kZWJ1Z1NlZ21lbnRzKX12YXIgYm49e3N5bWJvbDpmdW5jdGlvbihlLHIsbixpLGEpe2lmKCJ0cmFuc2x1Y2VudCI9PT1lLnJlbmRlclBhc3Mpe3ZhciBvPU10LmRpc2FibGVkLHM9ZS5jb2xvck1vZGVGb3JSZW5kZXJQYXNzKCk7bi5sYXlvdXQuZ2V0KCJ0ZXh0LXZhcmlhYmxlLWFuY2hvciIpJiZmdW5jdGlvbihlLHIsbixpLGEsbyxzKXtmb3IodmFyIGw9ci50cmFuc2Zvcm0sYz0ibWFwIj09PWEsdT0ibWFwIj09PW8sZj0wLGg9ZTtmPGgubGVuZ3RoO2YrPTEpe3ZhciBwPWhbZl0sZD1pLmdldFRpbGUocCksbT1kLmdldEJ1Y2tldChuKTtpZihtJiZtLnRleHQmJm0udGV4dC5zZWdtZW50cy5nZXQoKS5sZW5ndGgpe3ZhciBnPW0udGV4dFNpemVEYXRhLHY9dC5ldmFsdWF0ZVNpemVGb3Jab29tKGcsbC56b29tKSx5PXBlKGQsMSxyLnRyYW5zZm9ybS56b29tKSx4PVF0KHAucG9zTWF0cml4LHUsYyxyLnRyYW5zZm9ybSx5KSxiPSJub25lIiE9PW4ubGF5b3V0LmdldCgiaWNvbi10ZXh0LWZpdCIpJiZtLmhhc0ljb25EYXRhKCk7aWYodil7dmFyIF89TWF0aC5wb3coMixsLnpvb20tZC50aWxlSUQub3ZlcnNjYWxlZFopO3RuKG0sYyx1LHMsdC5zeW1ib2xTaXplLGwseCxwLnBvc01hdHJpeCxfLHYsYil9fX19KGksZSxuLHIsbi5sYXlvdXQuZ2V0KCJ0ZXh0LXJvdGF0aW9uLWFsaWdubWVudCIpLG4ubGF5b3V0LmdldCgidGV4dC1waXRjaC1hbGlnbm1lbnQiKSxhKSwwIT09bi5wYWludC5nZXQoImljb24tb3BhY2l0eSIpLmNvbnN0YW50T3IoMSkmJnJuKGUscixuLGksITEsbi5wYWludC5nZXQoImljb24tdHJhbnNsYXRlIiksbi5wYWludC5nZXQoImljb24tdHJhbnNsYXRlLWFuY2hvciIpLG4ubGF5b3V0LmdldCgiaWNvbi1yb3RhdGlvbi1hbGlnbm1lbnQiKSxuLmxheW91dC5nZXQoImljb24tcGl0Y2gtYWxpZ25tZW50Iiksbi5sYXlvdXQuZ2V0KCJpY29uLWtlZXAtdXByaWdodCIpLG8scyksMCE9PW4ucGFpbnQuZ2V0KCJ0ZXh0LW9wYWNpdHkiKS5jb25zdGFudE9yKDEpJiZybihlLHIsbixpLCEwLG4ucGFpbnQuZ2V0KCJ0ZXh0LXRyYW5zbGF0ZSIpLG4ucGFpbnQuZ2V0KCJ0ZXh0LXRyYW5zbGF0ZS1hbmNob3IiKSxuLmxheW91dC5nZXQoInRleHQtcm90YXRpb24tYWxpZ25tZW50Iiksbi5sYXlvdXQuZ2V0KCJ0ZXh0LXBpdGNoLWFsaWdubWVudCIpLG4ubGF5b3V0LmdldCgidGV4dC1rZWVwLXVwcmlnaHQiKSxvLHMpLHIubWFwLnNob3dDb2xsaXNpb25Cb3hlcyYmKEtyKGUscixuLGksbi5wYWludC5nZXQoInRleHQtdHJhbnNsYXRlIiksbi5wYWludC5nZXQoInRleHQtdHJhbnNsYXRlLWFuY2hvciIpLCEwKSxLcihlLHIsbixpLG4ucGFpbnQuZ2V0KCJpY29uLXRyYW5zbGF0ZSIpLG4ucGFpbnQuZ2V0KCJpY29uLXRyYW5zbGF0ZS1hbmNob3IiKSwhMSkpfX0sY2lyY2xlOmZ1bmN0aW9uKGUscixuLGkpe2lmKCJ0cmFuc2x1Y2VudCI9PT1lLnJlbmRlclBhc3Mpe3ZhciBhPW4ucGFpbnQuZ2V0KCJjaXJjbGUtb3BhY2l0eSIpLG89bi5wYWludC5nZXQoImNpcmNsZS1zdHJva2Utd2lkdGgiKSxzPW4ucGFpbnQuZ2V0KCJjaXJjbGUtc3Ryb2tlLW9wYWNpdHkiKSxsPXZvaWQgMCE9PW4ubGF5b3V0LmdldCgiY2lyY2xlLXNvcnQta2V5IikuY29uc3RhbnRPcigxKTtpZigwIT09YS5jb25zdGFudE9yKDEpfHwwIT09by5jb25zdGFudE9yKDEpJiYwIT09cy5jb25zdGFudE9yKDEpKXtmb3IodmFyIGM9ZS5jb250ZXh0LHU9Yy5nbCxmPWUuZGVwdGhNb2RlRm9yU3VibGF5ZXIoMCxBdC5SZWFkT25seSksaD1NdC5kaXNhYmxlZCxwPWUuY29sb3JNb2RlRm9yUmVuZGVyUGFzcygpLGQ9W10sbT0wO208aS5sZW5ndGg7bSsrKXt2YXIgZz1pW21dLHY9ci5nZXRUaWxlKGcpLHk9di5nZXRCdWNrZXQobik7aWYoeSl7dmFyIHg9eS5wcm9ncmFtQ29uZmlndXJhdGlvbnMuZ2V0KG4uaWQpLGI9e3Byb2dyYW1Db25maWd1cmF0aW9uOngscHJvZ3JhbTplLnVzZVByb2dyYW0oImNpcmNsZSIseCksbGF5b3V0VmVydGV4QnVmZmVyOnkubGF5b3V0VmVydGV4QnVmZmVyLGluZGV4QnVmZmVyOnkuaW5kZXhCdWZmZXIsdW5pZm9ybVZhbHVlczpMcihlLGcsdixuKX07aWYobClmb3IodmFyIF89MCx3PXkuc2VnbWVudHMuZ2V0KCk7Xzx3Lmxlbmd0aDtfKz0xKXt2YXIgVD13W19dO2QucHVzaCh7c2VnbWVudHM6bmV3IHQuU2VnbWVudFZlY3RvcihbVF0pLHNvcnRLZXk6VC5zb3J0S2V5LHN0YXRlOmJ9KX1lbHNlIGQucHVzaCh7c2VnbWVudHM6eS5zZWdtZW50cyxzb3J0S2V5OjAsc3RhdGU6Yn0pfX1sJiZkLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuc29ydEtleS1lLnNvcnRLZXl9KSk7Zm9yKHZhciBrPTAsQT1kO2s8QS5sZW5ndGg7ays9MSl7dmFyIE09QVtrXSxTPU0uc3RhdGUsRT1TLnByb2dyYW1Db25maWd1cmF0aW9uLEw9Uy5wcm9ncmFtLEM9Uy5sYXlvdXRWZXJ0ZXhCdWZmZXIsUD1TLmluZGV4QnVmZmVyLEk9Uy51bmlmb3JtVmFsdWVzLE89TS5zZWdtZW50cztMLmRyYXcoYyx1LlRSSUFOR0xFUyxmLGgscCxFdC5kaXNhYmxlZCxJLG4uaWQsQyxQLE8sbi5wYWludCxlLnRyYW5zZm9ybS56b29tLEUpfX19fSxoZWF0bWFwOmZ1bmN0aW9uKGUscixuLGkpe2lmKDAhPT1uLnBhaW50LmdldCgiaGVhdG1hcC1vcGFjaXR5IikpaWYoIm9mZnNjcmVlbiI9PT1lLnJlbmRlclBhc3Mpe3ZhciBhPWUuY29udGV4dCxvPWEuZ2wscz1NdC5kaXNhYmxlZCxsPW5ldyBTdChbby5PTkUsby5PTkVdLHQuQ29sb3IudHJhbnNwYXJlbnQsWyEwLCEwLCEwLCEwXSk7IWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10LmdsO3QuYWN0aXZlVGV4dHVyZS5zZXQobi5URVhUVVJFMSksdC52aWV3cG9ydC5zZXQoWzAsMCxlLndpZHRoLzQsZS5oZWlnaHQvNF0pO3ZhciBpPXIuaGVhdG1hcEZibztpZihpKW4uYmluZFRleHR1cmUobi5URVhUVVJFXzJELGkuY29sb3JBdHRhY2htZW50LmdldCgpKSx0LmJpbmRGcmFtZWJ1ZmZlci5zZXQoaS5mcmFtZWJ1ZmZlcik7ZWxzZXt2YXIgYT1uLmNyZWF0ZVRleHR1cmUoKTtuLmJpbmRUZXh0dXJlKG4uVEVYVFVSRV8yRCxhKSxuLnRleFBhcmFtZXRlcmkobi5URVhUVVJFXzJELG4uVEVYVFVSRV9XUkFQX1Msbi5DTEFNUF9UT19FREdFKSxuLnRleFBhcmFtZXRlcmkobi5URVhUVVJFXzJELG4uVEVYVFVSRV9XUkFQX1Qsbi5DTEFNUF9UT19FREdFKSxuLnRleFBhcmFtZXRlcmkobi5URVhUVVJFXzJELG4uVEVYVFVSRV9NSU5fRklMVEVSLG4uTElORUFSKSxuLnRleFBhcmFtZXRlcmkobi5URVhUVVJFXzJELG4uVEVYVFVSRV9NQUdfRklMVEVSLG4uTElORUFSKSxpPXIuaGVhdG1hcEZibz10LmNyZWF0ZUZyYW1lYnVmZmVyKGUud2lkdGgvNCxlLmhlaWdodC80LCExKSxmdW5jdGlvbih0LGUscixuKXt2YXIgaT10LmdsLGE9dC5leHRSZW5kZXJUb1RleHR1cmVIYWxmRmxvYXQ/dC5leHRUZXh0dXJlSGFsZkZsb2F0LkhBTEZfRkxPQVRfT0VTOmkuVU5TSUdORURfQllURTtpLnRleEltYWdlMkQoaS5URVhUVVJFXzJELDAsaS5SR0JBLGUud2lkdGgvNCxlLmhlaWdodC80LDAsaS5SR0JBLGEsbnVsbCksbi5jb2xvckF0dGFjaG1lbnQuc2V0KHIpfSh0LGUsYSxpKX19KGEsZSxuKSxhLmNsZWFyKHtjb2xvcjp0LkNvbG9yLnRyYW5zcGFyZW50fSk7Zm9yKHZhciBjPTA7YzxpLmxlbmd0aDtjKyspe3ZhciB1PWlbY107aWYoIXIuaGFzUmVuZGVyYWJsZVBhcmVudCh1KSl7dmFyIGY9ci5nZXRUaWxlKHUpLGg9Zi5nZXRCdWNrZXQobik7aWYoaCl7dmFyIHA9aC5wcm9ncmFtQ29uZmlndXJhdGlvbnMuZ2V0KG4uaWQpLGQ9ZS51c2VQcm9ncmFtKCJoZWF0bWFwIixwKSxtPWUudHJhbnNmb3JtLnpvb207ZC5kcmF3KGEsby5UUklBTkdMRVMsQXQuZGlzYWJsZWQscyxsLEV0LmRpc2FibGVkLHpyKHUucG9zTWF0cml4LGYsbSxuLnBhaW50LmdldCgiaGVhdG1hcC1pbnRlbnNpdHkiKSksbi5pZCxoLmxheW91dFZlcnRleEJ1ZmZlcixoLmluZGV4QnVmZmVyLGguc2VnbWVudHMsbi5wYWludCxlLnRyYW5zZm9ybS56b29tLHApfX19YS52aWV3cG9ydC5zZXQoWzAsMCxlLndpZHRoLGUuaGVpZ2h0XSl9ZWxzZSJ0cmFuc2x1Y2VudCI9PT1lLnJlbmRlclBhc3MmJihlLmNvbnRleHQuc2V0Q29sb3JNb2RlKGUuY29sb3JNb2RlRm9yUmVuZGVyUGFzcygpKSxmdW5jdGlvbihlLHIpe3ZhciBuPWUuY29udGV4dCxpPW4uZ2wsYT1yLmhlYXRtYXBGYm87aWYoIWEpcmV0dXJuO24uYWN0aXZlVGV4dHVyZS5zZXQoaS5URVhUVVJFMCksaS5iaW5kVGV4dHVyZShpLlRFWFRVUkVfMkQsYS5jb2xvckF0dGFjaG1lbnQuZ2V0KCkpLG4uYWN0aXZlVGV4dHVyZS5zZXQoaS5URVhUVVJFMSk7dmFyIG89ci5jb2xvclJhbXBUZXh0dXJlO298fChvPXIuY29sb3JSYW1wVGV4dHVyZT1uZXcgdC5UZXh0dXJlKG4sci5jb2xvclJhbXAsaS5SR0JBKSk7by5iaW5kKGkuTElORUFSLGkuQ0xBTVBfVE9fRURHRSksZS51c2VQcm9ncmFtKCJoZWF0bWFwVGV4dHVyZSIpLmRyYXcobixpLlRSSUFOR0xFUyxBdC5kaXNhYmxlZCxNdC5kaXNhYmxlZCxlLmNvbG9yTW9kZUZvclJlbmRlclBhc3MoKSxFdC5kaXNhYmxlZCxmdW5jdGlvbihlLHIsbixpKXt2YXIgYT10LmNyZWF0ZSgpO3Qub3J0aG8oYSwwLGUud2lkdGgsZS5oZWlnaHQsMCwwLDEpO3ZhciBvPWUuY29udGV4dC5nbDtyZXR1cm57dV9tYXRyaXg6YSx1X3dvcmxkOltvLmRyYXdpbmdCdWZmZXJXaWR0aCxvLmRyYXdpbmdCdWZmZXJIZWlnaHRdLHVfaW1hZ2U6bix1X2NvbG9yX3JhbXA6aSx1X29wYWNpdHk6ci5wYWludC5nZXQoImhlYXRtYXAtb3BhY2l0eSIpfX0oZSxyLDAsMSksci5pZCxlLnZpZXdwb3J0QnVmZmVyLGUucXVhZFRyaWFuZ2xlSW5kZXhCdWZmZXIsZS52aWV3cG9ydFNlZ21lbnRzLHIucGFpbnQsZS50cmFuc2Zvcm0uem9vbSl9KGUsbikpfSxsaW5lOmZ1bmN0aW9uKGUscixuLGkpe2lmKCJ0cmFuc2x1Y2VudCI9PT1lLnJlbmRlclBhc3Mpe3ZhciBhPW4ucGFpbnQuZ2V0KCJsaW5lLW9wYWNpdHkiKSxvPW4ucGFpbnQuZ2V0KCJsaW5lLXdpZHRoIik7aWYoMCE9PWEuY29uc3RhbnRPcigxKSYmMCE9PW8uY29uc3RhbnRPcigxKSl7dmFyIHM9ZS5kZXB0aE1vZGVGb3JTdWJsYXllcigwLEF0LlJlYWRPbmx5KSxsPWUuY29sb3JNb2RlRm9yUmVuZGVyUGFzcygpLGM9bi5wYWludC5nZXQoImxpbmUtZGFzaGFycmF5IiksdT1uLnBhaW50LmdldCgibGluZS1wYXR0ZXJuIiksZj11LmNvbnN0YW50T3IoMSksaD1uLnBhaW50LmdldCgibGluZS1ncmFkaWVudCIpLHA9bi5nZXRDcm9zc2ZhZGVQYXJhbWV0ZXJzKCksZD1mPyJsaW5lUGF0dGVybiI6Yz8ibGluZVNERiI6aD8ibGluZUdyYWRpZW50IjoibGluZSIsbT1lLmNvbnRleHQsZz1tLmdsLHY9ITA7aWYoaCl7bS5hY3RpdmVUZXh0dXJlLnNldChnLlRFWFRVUkUwKTt2YXIgeT1uLmdyYWRpZW50VGV4dHVyZTtpZighbi5ncmFkaWVudClyZXR1cm47eXx8KHk9bi5ncmFkaWVudFRleHR1cmU9bmV3IHQuVGV4dHVyZShtLG4uZ3JhZGllbnQsZy5SR0JBKSkseS5iaW5kKGcuTElORUFSLGcuQ0xBTVBfVE9fRURHRSl9Zm9yKHZhciB4PTAsYj1pO3g8Yi5sZW5ndGg7eCs9MSl7dmFyIF89Ylt4XSx3PXIuZ2V0VGlsZShfKTtpZighZnx8dy5wYXR0ZXJuc0xvYWRlZCgpKXt2YXIgVD13LmdldEJ1Y2tldChuKTtpZihUKXt2YXIgaz1ULnByb2dyYW1Db25maWd1cmF0aW9ucy5nZXQobi5pZCksQT1lLmNvbnRleHQucHJvZ3JhbS5nZXQoKSxNPWUudXNlUHJvZ3JhbShkLGspLFM9dnx8TS5wcm9ncmFtIT09QSxFPXUuY29uc3RhbnRPcihudWxsKTtpZihFJiZ3LmltYWdlQXRsYXMpe3ZhciBMPXcuaW1hZ2VBdGxhcyxDPUwucGF0dGVyblBvc2l0aW9uc1tFLnRvLnRvU3RyaW5nKCldLFA9TC5wYXR0ZXJuUG9zaXRpb25zW0UuZnJvbS50b1N0cmluZygpXTtDJiZQJiZrLnNldENvbnN0YW50UGF0dGVyblBvc2l0aW9ucyhDLFApfXZhciBJPWY/QnIoZSx3LG4scCk6Yz9OcihlLHcsbixjLHApOmg/RnIoZSx3LG4pOlJyKGUsdyxuKTtmPyhtLmFjdGl2ZVRleHR1cmUuc2V0KGcuVEVYVFVSRTApLHcuaW1hZ2VBdGxhc1RleHR1cmUuYmluZChnLkxJTkVBUixnLkNMQU1QX1RPX0VER0UpLGsudXBkYXRlUGFpbnRCdWZmZXJzKHApKTpjJiYoU3x8ZS5saW5lQXRsYXMuZGlydHkpJiYobS5hY3RpdmVUZXh0dXJlLnNldChnLlRFWFRVUkUwKSxlLmxpbmVBdGxhcy5iaW5kKG0pKSxNLmRyYXcobSxnLlRSSUFOR0xFUyxzLGUuc3RlbmNpbE1vZGVGb3JDbGlwcGluZyhfKSxsLEV0LmRpc2FibGVkLEksbi5pZCxULmxheW91dFZlcnRleEJ1ZmZlcixULmluZGV4QnVmZmVyLFQuc2VnbWVudHMsbi5wYWludCxlLnRyYW5zZm9ybS56b29tLGspLHY9ITF9fX19fX0sZmlsbDpmdW5jdGlvbihlLHIsbixpKXt2YXIgYT1uLnBhaW50LmdldCgiZmlsbC1jb2xvciIpLG89bi5wYWludC5nZXQoImZpbGwtb3BhY2l0eSIpO2lmKDAhPT1vLmNvbnN0YW50T3IoMSkpe3ZhciBzPWUuY29sb3JNb2RlRm9yUmVuZGVyUGFzcygpLGw9bi5wYWludC5nZXQoImZpbGwtcGF0dGVybiIpLGM9ZS5vcGFxdWVQYXNzRW5hYmxlZEZvckxheWVyKCkmJiFsLmNvbnN0YW50T3IoMSkmJjE9PT1hLmNvbnN0YW50T3IodC5Db2xvci50cmFuc3BhcmVudCkuYSYmMT09PW8uY29uc3RhbnRPcigwKT8ib3BhcXVlIjoidHJhbnNsdWNlbnQiO2lmKGUucmVuZGVyUGFzcz09PWMpe3ZhciB1PWUuZGVwdGhNb2RlRm9yU3VibGF5ZXIoMSwib3BhcXVlIj09PWUucmVuZGVyUGFzcz9BdC5SZWFkV3JpdGU6QXQuUmVhZE9ubHkpO2FuKGUscixuLGksdSxzLCExKX1pZigidHJhbnNsdWNlbnQiPT09ZS5yZW5kZXJQYXNzJiZuLnBhaW50LmdldCgiZmlsbC1hbnRpYWxpYXMiKSl7dmFyIGY9ZS5kZXB0aE1vZGVGb3JTdWJsYXllcihuLmdldFBhaW50UHJvcGVydHkoImZpbGwtb3V0bGluZS1jb2xvciIpPzI6MCxBdC5SZWFkT25seSk7YW4oZSxyLG4saSxmLHMsITApfX19LCJmaWxsLWV4dHJ1c2lvbiI6ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9ci5wYWludC5nZXQoImZpbGwtZXh0cnVzaW9uLW9wYWNpdHkiKTtpZigwIT09aSYmInRyYW5zbHVjZW50Ij09PXQucmVuZGVyUGFzcyl7dmFyIGE9bmV3IEF0KHQuY29udGV4dC5nbC5MRVFVQUwsQXQuUmVhZFdyaXRlLHQuZGVwdGhSYW5nZUZvcjNEKTtpZigxIT09aXx8ci5wYWludC5nZXQoImZpbGwtZXh0cnVzaW9uLXBhdHRlcm4iKS5jb25zdGFudE9yKDEpKW9uKHQsZSxyLG4sYSxNdC5kaXNhYmxlZCxTdC5kaXNhYmxlZCksb24odCxlLHIsbixhLHQuc3RlbmNpbE1vZGVGb3IzRCgpLHQuY29sb3JNb2RlRm9yUmVuZGVyUGFzcygpKTtlbHNle3ZhciBvPXQuY29sb3JNb2RlRm9yUmVuZGVyUGFzcygpO29uKHQsZSxyLG4sYSxNdC5kaXNhYmxlZCxvKX19fSxoaWxsc2hhZGU6ZnVuY3Rpb24odCxlLHIsbil7aWYoIm9mZnNjcmVlbiI9PT10LnJlbmRlclBhc3N8fCJ0cmFuc2x1Y2VudCI9PT10LnJlbmRlclBhc3Mpe2Zvcih2YXIgaT10LmNvbnRleHQsYT1lLmdldFNvdXJjZSgpLm1heHpvb20sbz10LmRlcHRoTW9kZUZvclN1YmxheWVyKDAsQXQuUmVhZE9ubHkpLHM9dC5jb2xvck1vZGVGb3JSZW5kZXJQYXNzKCksbD0idHJhbnNsdWNlbnQiPT09dC5yZW5kZXJQYXNzP3Quc3RlbmNpbENvbmZpZ0Zvck92ZXJsYXAobik6W3t9LG5dLGM9bFswXSx1PTAsZj1sWzFdO3U8Zi5sZW5ndGg7dSs9MSl7dmFyIGg9Zlt1XSxwPWUuZ2V0VGlsZShoKTtwLm5lZWRzSGlsbHNoYWRlUHJlcGFyZSYmIm9mZnNjcmVlbiI9PT10LnJlbmRlclBhc3M/bG4odCxwLHIsYSxvLE10LmRpc2FibGVkLHMpOiJ0cmFuc2x1Y2VudCI9PT10LnJlbmRlclBhc3MmJnNuKHQscCxyLG8sY1toLm92ZXJzY2FsZWRaXSxzKX1pLnZpZXdwb3J0LnNldChbMCwwLHQud2lkdGgsdC5oZWlnaHRdKX19LHJhc3RlcjpmdW5jdGlvbih0LGUscixuKXtpZigidHJhbnNsdWNlbnQiPT09dC5yZW5kZXJQYXNzJiYwIT09ci5wYWludC5nZXQoInJhc3Rlci1vcGFjaXR5IikmJm4ubGVuZ3RoKWZvcih2YXIgaT10LmNvbnRleHQsYT1pLmdsLG89ZS5nZXRTb3VyY2UoKSxzPXQudXNlUHJvZ3JhbSgicmFzdGVyIiksbD10LmNvbG9yTW9kZUZvclJlbmRlclBhc3MoKSxjPW8gaW5zdGFuY2VvZiBJP1t7fSxuXTp0LnN0ZW5jaWxDb25maWdGb3JPdmVybGFwKG4pLHU9Y1swXSxmPWNbMV0saD1mW2YubGVuZ3RoLTFdLm92ZXJzY2FsZWRaLHA9IXQub3B0aW9ucy5tb3ZpbmcsZD0wLG09ZjtkPG0ubGVuZ3RoO2QrPTEpe3ZhciBnPW1bZF0sdj10LmRlcHRoTW9kZUZvclN1YmxheWVyKGcub3ZlcnNjYWxlZFotaCwxPT09ci5wYWludC5nZXQoInJhc3Rlci1vcGFjaXR5Iik/QXQuUmVhZFdyaXRlOkF0LlJlYWRPbmx5LGEuTEVTUykseT1lLmdldFRpbGUoZykseD10LnRyYW5zZm9ybS5jYWxjdWxhdGVQb3NNYXRyaXgoZy50b1Vud3JhcHBlZCgpLHApO3kucmVnaXN0ZXJGYWRlRHVyYXRpb24oci5wYWludC5nZXQoInJhc3Rlci1mYWRlLWR1cmF0aW9uIikpO3ZhciBiPWUuZmluZExvYWRlZFBhcmVudChnLDApLF89Y24oeSxiLGUscix0LnRyYW5zZm9ybSksdz12b2lkIDAsVD12b2lkIDAsaz0ibmVhcmVzdCI9PT1yLnBhaW50LmdldCgicmFzdGVyLXJlc2FtcGxpbmciKT9hLk5FQVJFU1Q6YS5MSU5FQVI7aS5hY3RpdmVUZXh0dXJlLnNldChhLlRFWFRVUkUwKSx5LnRleHR1cmUuYmluZChrLGEuQ0xBTVBfVE9fRURHRSxhLkxJTkVBUl9NSVBNQVBfTkVBUkVTVCksaS5hY3RpdmVUZXh0dXJlLnNldChhLlRFWFRVUkUxKSxiPyhiLnRleHR1cmUuYmluZChrLGEuQ0xBTVBfVE9fRURHRSxhLkxJTkVBUl9NSVBNQVBfTkVBUkVTVCksdz1NYXRoLnBvdygyLGIudGlsZUlELm92ZXJzY2FsZWRaLXkudGlsZUlELm92ZXJzY2FsZWRaKSxUPVt5LnRpbGVJRC5jYW5vbmljYWwueCp3JTEseS50aWxlSUQuY2Fub25pY2FsLnkqdyUxXSk6eS50ZXh0dXJlLmJpbmQoayxhLkNMQU1QX1RPX0VER0UsYS5MSU5FQVJfTUlQTUFQX05FQVJFU1QpO3ZhciBBPVZyKHgsVHx8WzAsMF0sd3x8MSxfLHIpO28gaW5zdGFuY2VvZiBJP3MuZHJhdyhpLGEuVFJJQU5HTEVTLHYsTXQuZGlzYWJsZWQsbCxFdC5kaXNhYmxlZCxBLHIuaWQsby5ib3VuZHNCdWZmZXIsdC5xdWFkVHJpYW5nbGVJbmRleEJ1ZmZlcixvLmJvdW5kc1NlZ21lbnRzKTpzLmRyYXcoaSxhLlRSSUFOR0xFUyx2LHVbZy5vdmVyc2NhbGVkWl0sbCxFdC5kaXNhYmxlZCxBLHIuaWQsdC5yYXN0ZXJCb3VuZHNCdWZmZXIsdC5xdWFkVHJpYW5nbGVJbmRleEJ1ZmZlcix0LnJhc3RlckJvdW5kc1NlZ21lbnRzKX19LGJhY2tncm91bmQ6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXIucGFpbnQuZ2V0KCJiYWNrZ3JvdW5kLWNvbG9yIiksaT1yLnBhaW50LmdldCgiYmFja2dyb3VuZC1vcGFjaXR5Iik7aWYoMCE9PWkpe3ZhciBhPXQuY29udGV4dCxvPWEuZ2wscz10LnRyYW5zZm9ybSxsPXMudGlsZVNpemUsYz1yLnBhaW50LmdldCgiYmFja2dyb3VuZC1wYXR0ZXJuIik7aWYoIXQuaXNQYXR0ZXJuTWlzc2luZyhjKSl7dmFyIHU9IWMmJjE9PT1uLmEmJjE9PT1pJiZ0Lm9wYXF1ZVBhc3NFbmFibGVkRm9yTGF5ZXIoKT8ib3BhcXVlIjoidHJhbnNsdWNlbnQiO2lmKHQucmVuZGVyUGFzcz09PXUpe3ZhciBmPU10LmRpc2FibGVkLGg9dC5kZXB0aE1vZGVGb3JTdWJsYXllcigwLCJvcGFxdWUiPT09dT9BdC5SZWFkV3JpdGU6QXQuUmVhZE9ubHkpLHA9dC5jb2xvck1vZGVGb3JSZW5kZXJQYXNzKCksZD10LnVzZVByb2dyYW0oYz8iYmFja2dyb3VuZFBhdHRlcm4iOiJiYWNrZ3JvdW5kIiksbT1zLmNvdmVyaW5nVGlsZXMoe3RpbGVTaXplOmx9KTtjJiYoYS5hY3RpdmVUZXh0dXJlLnNldChvLlRFWFRVUkUwKSx0LmltYWdlTWFuYWdlci5iaW5kKHQuY29udGV4dCkpO2Zvcih2YXIgZz1yLmdldENyb3NzZmFkZVBhcmFtZXRlcnMoKSx2PTAseT1tO3Y8eS5sZW5ndGg7dis9MSl7dmFyIHg9eVt2XSxiPXQudHJhbnNmb3JtLmNhbGN1bGF0ZVBvc01hdHJpeCh4LnRvVW53cmFwcGVkKCkpLF89Yz9acihiLGksdCxjLHt0aWxlSUQ6eCx0aWxlU2l6ZTpsfSxnKTpYcihiLGksbik7ZC5kcmF3KGEsby5UUklBTkdMRVMsaCxmLHAsRXQuZGlzYWJsZWQsXyxyLmlkLHQudGlsZUV4dGVudEJ1ZmZlcix0LnF1YWRUcmlhbmdsZUluZGV4QnVmZmVyLHQudGlsZUV4dGVudFNlZ21lbnRzKX19fX19LGRlYnVnOmZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG49MDtuPHIubGVuZ3RoO24rKyl4bih0LGUscltuXSl9LGN1c3RvbTpmdW5jdGlvbih0LGUscil7dmFyIG49dC5jb250ZXh0LGk9ci5pbXBsZW1lbnRhdGlvbjtpZigib2Zmc2NyZWVuIj09PXQucmVuZGVyUGFzcyl7dmFyIGE9aS5wcmVyZW5kZXI7YSYmKHQuc2V0Q3VzdG9tTGF5ZXJEZWZhdWx0cygpLG4uc2V0Q29sb3JNb2RlKHQuY29sb3JNb2RlRm9yUmVuZGVyUGFzcygpKSxhLmNhbGwoaSxuLmdsLHQudHJhbnNmb3JtLmN1c3RvbUxheWVyTWF0cml4KCkpLG4uc2V0RGlydHkoKSx0LnNldEJhc2VTdGF0ZSgpKX1lbHNlIGlmKCJ0cmFuc2x1Y2VudCI9PT10LnJlbmRlclBhc3Mpe3Quc2V0Q3VzdG9tTGF5ZXJEZWZhdWx0cygpLG4uc2V0Q29sb3JNb2RlKHQuY29sb3JNb2RlRm9yUmVuZGVyUGFzcygpKSxuLnNldFN0ZW5jaWxNb2RlKE10LmRpc2FibGVkKTt2YXIgbz0iM2QiPT09aS5yZW5kZXJpbmdNb2RlP25ldyBBdCh0LmNvbnRleHQuZ2wuTEVRVUFMLEF0LlJlYWRXcml0ZSx0LmRlcHRoUmFuZ2VGb3IzRCk6dC5kZXB0aE1vZGVGb3JTdWJsYXllcigwLEF0LlJlYWRPbmx5KTtuLnNldERlcHRoTW9kZShvKSxpLnJlbmRlcihuLmdsLHQudHJhbnNmb3JtLmN1c3RvbUxheWVyTWF0cml4KCkpLG4uc2V0RGlydHkoKSx0LnNldEJhc2VTdGF0ZSgpLG4uYmluZEZyYW1lYnVmZmVyLnNldChudWxsKX19fSxfbj1mdW5jdGlvbih0LGUpe3RoaXMuY29udGV4dD1uZXcgTHQodCksdGhpcy50cmFuc2Zvcm09ZSx0aGlzLl90aWxlVGV4dHVyZXM9e30sdGhpcy5zZXR1cCgpLHRoaXMubnVtU3VibGF5ZXJzPUN0Lm1heFVuZGVyem9vbWluZytDdC5tYXhPdmVyem9vbWluZysxLHRoaXMuZGVwdGhFcHNpbG9uPTEvTWF0aC5wb3coMiwxNiksdGhpcy5jcm9zc1RpbGVTeW1ib2xJbmRleD1uZXcgTmUsdGhpcy5ncHVUaW1lcnM9e319O19uLnByb3RvdHlwZS5yZXNpemU9ZnVuY3Rpb24oZSxyKXtpZih0aGlzLndpZHRoPWUqdC5icm93c2VyLmRldmljZVBpeGVsUmF0aW8sdGhpcy5oZWlnaHQ9cip0LmJyb3dzZXIuZGV2aWNlUGl4ZWxSYXRpbyx0aGlzLmNvbnRleHQudmlld3BvcnQuc2V0KFswLDAsdGhpcy53aWR0aCx0aGlzLmhlaWdodF0pLHRoaXMuc3R5bGUpZm9yKHZhciBuPTAsaT10aGlzLnN0eWxlLl9vcmRlcjtuPGkubGVuZ3RoO24rPTEpe3ZhciBhPWlbbl07dGhpcy5zdHlsZS5fbGF5ZXJzW2FdLnJlc2l6ZSgpfX0sX24ucHJvdG90eXBlLnNldHVwPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5jb250ZXh0LHI9bmV3IHQuU3RydWN0QXJyYXlMYXlvdXQyaTQ7ci5lbXBsYWNlQmFjaygwLDApLHIuZW1wbGFjZUJhY2sodC5FWFRFTlQsMCksci5lbXBsYWNlQmFjaygwLHQuRVhURU5UKSxyLmVtcGxhY2VCYWNrKHQuRVhURU5ULHQuRVhURU5UKSx0aGlzLnRpbGVFeHRlbnRCdWZmZXI9ZS5jcmVhdGVWZXJ0ZXhCdWZmZXIocixHZS5tZW1iZXJzKSx0aGlzLnRpbGVFeHRlbnRTZWdtZW50cz10LlNlZ21lbnRWZWN0b3Iuc2ltcGxlU2VnbWVudCgwLDAsNCwyKTt2YXIgbj1uZXcgdC5TdHJ1Y3RBcnJheUxheW91dDJpNDtuLmVtcGxhY2VCYWNrKDAsMCksbi5lbXBsYWNlQmFjayh0LkVYVEVOVCwwKSxuLmVtcGxhY2VCYWNrKDAsdC5FWFRFTlQpLG4uZW1wbGFjZUJhY2sodC5FWFRFTlQsdC5FWFRFTlQpLHRoaXMuZGVidWdCdWZmZXI9ZS5jcmVhdGVWZXJ0ZXhCdWZmZXIobixHZS5tZW1iZXJzKSx0aGlzLmRlYnVnU2VnbWVudHM9dC5TZWdtZW50VmVjdG9yLnNpbXBsZVNlZ21lbnQoMCwwLDQsNSk7dmFyIGk9bmV3IHQuU3RydWN0QXJyYXlMYXlvdXQ0aTg7aS5lbXBsYWNlQmFjaygwLDAsMCwwKSxpLmVtcGxhY2VCYWNrKHQuRVhURU5ULDAsdC5FWFRFTlQsMCksaS5lbXBsYWNlQmFjaygwLHQuRVhURU5ULDAsdC5FWFRFTlQpLGkuZW1wbGFjZUJhY2sodC5FWFRFTlQsdC5FWFRFTlQsdC5FWFRFTlQsdC5FWFRFTlQpLHRoaXMucmFzdGVyQm91bmRzQnVmZmVyPWUuY3JlYXRlVmVydGV4QnVmZmVyKGksUC5tZW1iZXJzKSx0aGlzLnJhc3RlckJvdW5kc1NlZ21lbnRzPXQuU2VnbWVudFZlY3Rvci5zaW1wbGVTZWdtZW50KDAsMCw0LDIpO3ZhciBhPW5ldyB0LlN0cnVjdEFycmF5TGF5b3V0Mmk0O2EuZW1wbGFjZUJhY2soMCwwKSxhLmVtcGxhY2VCYWNrKDEsMCksYS5lbXBsYWNlQmFjaygwLDEpLGEuZW1wbGFjZUJhY2soMSwxKSx0aGlzLnZpZXdwb3J0QnVmZmVyPWUuY3JlYXRlVmVydGV4QnVmZmVyKGEsR2UubWVtYmVycyksdGhpcy52aWV3cG9ydFNlZ21lbnRzPXQuU2VnbWVudFZlY3Rvci5zaW1wbGVTZWdtZW50KDAsMCw0LDIpO3ZhciBvPW5ldyB0LlN0cnVjdEFycmF5TGF5b3V0MXVpMjtvLmVtcGxhY2VCYWNrKDApLG8uZW1wbGFjZUJhY2soMSksby5lbXBsYWNlQmFjaygzKSxvLmVtcGxhY2VCYWNrKDIpLG8uZW1wbGFjZUJhY2soMCksdGhpcy50aWxlQm9yZGVySW5kZXhCdWZmZXI9ZS5jcmVhdGVJbmRleEJ1ZmZlcihvKTt2YXIgcz1uZXcgdC5TdHJ1Y3RBcnJheUxheW91dDN1aTY7cy5lbXBsYWNlQmFjaygwLDEsMikscy5lbXBsYWNlQmFjaygyLDEsMyksdGhpcy5xdWFkVHJpYW5nbGVJbmRleEJ1ZmZlcj1lLmNyZWF0ZUluZGV4QnVmZmVyKHMpLHRoaXMuZW1wdHlUZXh0dXJlPW5ldyB0LlRleHR1cmUoZSx7d2lkdGg6MSxoZWlnaHQ6MSxkYXRhOm5ldyBVaW50OEFycmF5KFswLDAsMCwwXSl9LGUuZ2wuUkdCQSk7dmFyIGw9dGhpcy5jb250ZXh0LmdsO3RoaXMuc3RlbmNpbENsZWFyTW9kZT1uZXcgTXQoe2Z1bmM6bC5BTFdBWVMsbWFzazowfSwwLDI1NSxsLlpFUk8sbC5aRVJPLGwuWkVSTyl9LF9uLnByb3RvdHlwZS5jbGVhclN0ZW5jaWw9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmNvbnRleHQscj1lLmdsO3RoaXMubmV4dFN0ZW5jaWxJRD0xLHRoaXMuY3VycmVudFN0ZW5jaWxTb3VyY2U9dm9pZCAwO3ZhciBuPXQuY3JlYXRlKCk7dC5vcnRobyhuLDAsdGhpcy53aWR0aCx0aGlzLmhlaWdodCwwLDAsMSksdC5zY2FsZShuLG4sW3IuZHJhd2luZ0J1ZmZlcldpZHRoLHIuZHJhd2luZ0J1ZmZlckhlaWdodCwwXSksdGhpcy51c2VQcm9ncmFtKCJjbGlwcGluZ01hc2siKS5kcmF3KGUsci5UUklBTkdMRVMsQXQuZGlzYWJsZWQsdGhpcy5zdGVuY2lsQ2xlYXJNb2RlLFN0LmRpc2FibGVkLEV0LmRpc2FibGVkLE9yKG4pLCIkY2xpcHBpbmciLHRoaXMudmlld3BvcnRCdWZmZXIsdGhpcy5xdWFkVHJpYW5nbGVJbmRleEJ1ZmZlcix0aGlzLnZpZXdwb3J0U2VnbWVudHMpfSxfbi5wcm90b3R5cGUuX3JlbmRlclRpbGVDbGlwcGluZ01hc2tzPWZ1bmN0aW9uKHQsZSl7aWYodGhpcy5jdXJyZW50U3RlbmNpbFNvdXJjZSE9PXQuc291cmNlJiZ0LmlzVGlsZUNsaXBwZWQoKSYmZSYmZS5sZW5ndGgpe3RoaXMuY3VycmVudFN0ZW5jaWxTb3VyY2U9dC5zb3VyY2U7dmFyIHI9dGhpcy5jb250ZXh0LG49ci5nbDt0aGlzLm5leHRTdGVuY2lsSUQrZS5sZW5ndGg+MjU2JiZ0aGlzLmNsZWFyU3RlbmNpbCgpLHIuc2V0Q29sb3JNb2RlKFN0LmRpc2FibGVkKSxyLnNldERlcHRoTW9kZShBdC5kaXNhYmxlZCk7dmFyIGk9dGhpcy51c2VQcm9ncmFtKCJjbGlwcGluZ01hc2siKTt0aGlzLl90aWxlQ2xpcHBpbmdNYXNrSURzPXt9O2Zvcih2YXIgYT0wLG89ZTthPG8ubGVuZ3RoO2ErPTEpe3ZhciBzPW9bYV0sbD10aGlzLl90aWxlQ2xpcHBpbmdNYXNrSURzW3Mua2V5XT10aGlzLm5leHRTdGVuY2lsSUQrKztpLmRyYXcocixuLlRSSUFOR0xFUyxBdC5kaXNhYmxlZCxuZXcgTXQoe2Z1bmM6bi5BTFdBWVMsbWFzazowfSxsLDI1NSxuLktFRVAsbi5LRUVQLG4uUkVQTEFDRSksU3QuZGlzYWJsZWQsRXQuZGlzYWJsZWQsT3Iocy5wb3NNYXRyaXgpLCIkY2xpcHBpbmciLHRoaXMudGlsZUV4dGVudEJ1ZmZlcix0aGlzLnF1YWRUcmlhbmdsZUluZGV4QnVmZmVyLHRoaXMudGlsZUV4dGVudFNlZ21lbnRzKX19fSxfbi5wcm90b3R5cGUuc3RlbmNpbE1vZGVGb3IzRD1mdW5jdGlvbigpe3RoaXMuY3VycmVudFN0ZW5jaWxTb3VyY2U9dm9pZCAwLHRoaXMubmV4dFN0ZW5jaWxJRCsxPjI1NiYmdGhpcy5jbGVhclN0ZW5jaWwoKTt2YXIgdD10aGlzLm5leHRTdGVuY2lsSUQrKyxlPXRoaXMuY29udGV4dC5nbDtyZXR1cm4gbmV3IE10KHtmdW5jOmUuTk9URVFVQUwsbWFzazoyNTV9LHQsMjU1LGUuS0VFUCxlLktFRVAsZS5SRVBMQUNFKX0sX24ucHJvdG90eXBlLnN0ZW5jaWxNb2RlRm9yQ2xpcHBpbmc9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jb250ZXh0LmdsO3JldHVybiBuZXcgTXQoe2Z1bmM6ZS5FUVVBTCxtYXNrOjI1NX0sdGhpcy5fdGlsZUNsaXBwaW5nTWFza0lEc1t0LmtleV0sMCxlLktFRVAsZS5LRUVQLGUuUkVQTEFDRSl9LF9uLnByb3RvdHlwZS5zdGVuY2lsQ29uZmlnRm9yT3ZlcmxhcD1mdW5jdGlvbih0KXt2YXIgZSxyPXRoaXMuY29udGV4dC5nbCxuPXQuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5vdmVyc2NhbGVkWi10Lm92ZXJzY2FsZWRafSkpLGk9bltuLmxlbmd0aC0xXS5vdmVyc2NhbGVkWixhPW5bMF0ub3ZlcnNjYWxlZFotaSsxO2lmKGE+MSl7dGhpcy5jdXJyZW50U3RlbmNpbFNvdXJjZT12b2lkIDAsdGhpcy5uZXh0U3RlbmNpbElEK2E+MjU2JiZ0aGlzLmNsZWFyU3RlbmNpbCgpO2Zvcih2YXIgbz17fSxzPTA7czxhO3MrKylvW3MraV09bmV3IE10KHtmdW5jOnIuR0VRVUFMLG1hc2s6MjU1fSxzK3RoaXMubmV4dFN0ZW5jaWxJRCwyNTUsci5LRUVQLHIuS0VFUCxyLlJFUExBQ0UpO3JldHVybiB0aGlzLm5leHRTdGVuY2lsSUQrPWEsW28sbl19cmV0dXJuWyhlPXt9LGVbaV09TXQuZGlzYWJsZWQsZSksbl19LF9uLnByb3RvdHlwZS5jb2xvck1vZGVGb3JSZW5kZXJQYXNzPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5jb250ZXh0LmdsO2lmKHRoaXMuX3Nob3dPdmVyZHJhd0luc3BlY3Rvcil7cmV0dXJuIG5ldyBTdChbZS5DT05TVEFOVF9DT0xPUixlLk9ORV0sbmV3IHQuQ29sb3IoMS84LDEvOCwxLzgsMCksWyEwLCEwLCEwLCEwXSl9cmV0dXJuIm9wYXF1ZSI9PT10aGlzLnJlbmRlclBhc3M/U3QudW5ibGVuZGVkOlN0LmFscGhhQmxlbmRlZH0sX24ucHJvdG90eXBlLmRlcHRoTW9kZUZvclN1YmxheWVyPWZ1bmN0aW9uKHQsZSxyKXtpZighdGhpcy5vcGFxdWVQYXNzRW5hYmxlZEZvckxheWVyKCkpcmV0dXJuIEF0LmRpc2FibGVkO3ZhciBuPTEtKCgxK3RoaXMuY3VycmVudExheWVyKSp0aGlzLm51bVN1YmxheWVycyt0KSp0aGlzLmRlcHRoRXBzaWxvbjtyZXR1cm4gbmV3IEF0KHJ8fHRoaXMuY29udGV4dC5nbC5MRVFVQUwsZSxbbixuXSl9LF9uLnByb3RvdHlwZS5vcGFxdWVQYXNzRW5hYmxlZEZvckxheWVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudExheWVyPHRoaXMub3BhcXVlUGFzc0N1dG9mZn0sX24ucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbihlLHIpe3ZhciBuPXRoaXM7dGhpcy5zdHlsZT1lLHRoaXMub3B0aW9ucz1yLHRoaXMubGluZUF0bGFzPWUubGluZUF0bGFzLHRoaXMuaW1hZ2VNYW5hZ2VyPWUuaW1hZ2VNYW5hZ2VyLHRoaXMuZ2x5cGhNYW5hZ2VyPWUuZ2x5cGhNYW5hZ2VyLHRoaXMuc3ltYm9sRmFkZUNoYW5nZT1lLnBsYWNlbWVudC5zeW1ib2xGYWRlQ2hhbmdlKHQuYnJvd3Nlci5ub3coKSksdGhpcy5pbWFnZU1hbmFnZXIuYmVnaW5GcmFtZSgpO3ZhciBpPXRoaXMuc3R5bGUuX29yZGVyLGE9dGhpcy5zdHlsZS5zb3VyY2VDYWNoZXM7Zm9yKHZhciBvIGluIGEpe3ZhciBzPWFbb107cy51c2VkJiZzLnByZXBhcmUodGhpcy5jb250ZXh0KX12YXIgbCxjLHU9e30sZj17fSxoPXt9O2Zvcih2YXIgcCBpbiBhKXt2YXIgZD1hW3BdO3VbcF09ZC5nZXRWaXNpYmxlQ29vcmRpbmF0ZXMoKSxmW3BdPXVbcF0uc2xpY2UoKS5yZXZlcnNlKCksaFtwXT1kLmdldFZpc2libGVDb29yZGluYXRlcyghMCkucmV2ZXJzZSgpfXRoaXMub3BhcXVlUGFzc0N1dG9mZj0xLzA7Zm9yKHZhciBtPTA7bTxpLmxlbmd0aDttKyspe3ZhciBnPWlbbV07aWYodGhpcy5zdHlsZS5fbGF5ZXJzW2ddLmlzM0QoKSl7dGhpcy5vcGFxdWVQYXNzQ3V0b2ZmPW07YnJlYWt9fXRoaXMucmVuZGVyUGFzcz0ib2Zmc2NyZWVuIjtmb3IodmFyIHY9MCx5PWk7djx5Lmxlbmd0aDt2Kz0xKXt2YXIgeD15W3ZdLGI9dGhpcy5zdHlsZS5fbGF5ZXJzW3hdO2lmKGIuaGFzT2Zmc2NyZWVuUGFzcygpJiYhYi5pc0hpZGRlbih0aGlzLnRyYW5zZm9ybS56b29tKSl7dmFyIF89ZltiLnNvdXJjZV07KCJjdXN0b20iPT09Yi50eXBlfHxfLmxlbmd0aCkmJnRoaXMucmVuZGVyTGF5ZXIodGhpcyxhW2Iuc291cmNlXSxiLF8pfX1mb3IodGhpcy5jb250ZXh0LmJpbmRGcmFtZWJ1ZmZlci5zZXQobnVsbCksdGhpcy5jb250ZXh0LmNsZWFyKHtjb2xvcjpyLnNob3dPdmVyZHJhd0luc3BlY3Rvcj90LkNvbG9yLmJsYWNrOnQuQ29sb3IudHJhbnNwYXJlbnQsZGVwdGg6MX0pLHRoaXMuY2xlYXJTdGVuY2lsKCksdGhpcy5fc2hvd092ZXJkcmF3SW5zcGVjdG9yPXIuc2hvd092ZXJkcmF3SW5zcGVjdG9yLHRoaXMuZGVwdGhSYW5nZUZvcjNEPVswLDEtKGUuX29yZGVyLmxlbmd0aCsyKSp0aGlzLm51bVN1YmxheWVycyp0aGlzLmRlcHRoRXBzaWxvbl0sdGhpcy5yZW5kZXJQYXNzPSJvcGFxdWUiLHRoaXMuY3VycmVudExheWVyPWkubGVuZ3RoLTE7dGhpcy5jdXJyZW50TGF5ZXI+PTA7dGhpcy5jdXJyZW50TGF5ZXItLSl7dmFyIHc9dGhpcy5zdHlsZS5fbGF5ZXJzW2lbdGhpcy5jdXJyZW50TGF5ZXJdXSxUPWFbdy5zb3VyY2VdLGs9dVt3LnNvdXJjZV07dGhpcy5fcmVuZGVyVGlsZUNsaXBwaW5nTWFza3ModyxrKSx0aGlzLnJlbmRlckxheWVyKHRoaXMsVCx3LGspfWZvcih0aGlzLnJlbmRlclBhc3M9InRyYW5zbHVjZW50Iix0aGlzLmN1cnJlbnRMYXllcj0wO3RoaXMuY3VycmVudExheWVyPGkubGVuZ3RoO3RoaXMuY3VycmVudExheWVyKyspe3ZhciBBPXRoaXMuc3R5bGUuX2xheWVyc1tpW3RoaXMuY3VycmVudExheWVyXV0sTT1hW0Euc291cmNlXSxTPSgic3ltYm9sIj09PUEudHlwZT9oOmYpW0Euc291cmNlXTt0aGlzLl9yZW5kZXJUaWxlQ2xpcHBpbmdNYXNrcyhBLHVbQS5zb3VyY2VdKSx0aGlzLnJlbmRlckxheWVyKHRoaXMsTSxBLFMpfXRoaXMub3B0aW9ucy5zaG93VGlsZUJvdW5kYXJpZXMmJih0LnZhbHVlcyh0aGlzLnN0eWxlLl9sYXllcnMpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3Quc291cmNlJiYhdC5pc0hpZGRlbihuLnRyYW5zZm9ybS56b29tKSYmKHQuc291cmNlIT09KGMmJmMuaWQpJiYoYz1uLnN0eWxlLnNvdXJjZUNhY2hlc1t0LnNvdXJjZV0pLCghbHx8bC5nZXRTb3VyY2UoKS5tYXh6b29tPGMuZ2V0U291cmNlKCkubWF4em9vbSkmJihsPWMpKX0pKSxsJiZibi5kZWJ1Zyh0aGlzLGwsbC5nZXRWaXNpYmxlQ29vcmRpbmF0ZXMoKSkpO3RoaXMub3B0aW9ucy5zaG93UGFkZGluZyYmbW4odGhpcyksdGhpcy5jb250ZXh0LnNldERlZmF1bHQoKX0sX24ucHJvdG90eXBlLnJlbmRlckxheWVyPWZ1bmN0aW9uKHQsZSxyLG4pe3IuaXNIaWRkZW4odGhpcy50cmFuc2Zvcm0uem9vbSl8fCgiYmFja2dyb3VuZCI9PT1yLnR5cGV8fCJjdXN0b20iPT09ci50eXBlfHxuLmxlbmd0aCkmJih0aGlzLmlkPXIuaWQsdGhpcy5ncHVUaW1pbmdTdGFydChyKSxibltyLnR5cGVdKHQsZSxyLG4sdGhpcy5zdHlsZS5wbGFjZW1lbnQudmFyaWFibGVPZmZzZXRzKSx0aGlzLmdwdVRpbWluZ0VuZCgpKX0sX24ucHJvdG90eXBlLmdwdVRpbWluZ1N0YXJ0PWZ1bmN0aW9uKHQpe2lmKHRoaXMub3B0aW9ucy5ncHVUaW1pbmcpe3ZhciBlPXRoaXMuY29udGV4dC5leHRUaW1lclF1ZXJ5LHI9dGhpcy5ncHVUaW1lcnNbdC5pZF07cnx8KHI9dGhpcy5ncHVUaW1lcnNbdC5pZF09e2NhbGxzOjAsY3B1VGltZTowLHF1ZXJ5OmUuY3JlYXRlUXVlcnlFWFQoKX0pLHIuY2FsbHMrKyxlLmJlZ2luUXVlcnlFWFQoZS5USU1FX0VMQVBTRURfRVhULHIucXVlcnkpfX0sX24ucHJvdG90eXBlLmdwdVRpbWluZ0VuZD1mdW5jdGlvbigpe2lmKHRoaXMub3B0aW9ucy5ncHVUaW1pbmcpe3ZhciB0PXRoaXMuY29udGV4dC5leHRUaW1lclF1ZXJ5O3QuZW5kUXVlcnlFWFQodC5USU1FX0VMQVBTRURfRVhUKX19LF9uLnByb3RvdHlwZS5jb2xsZWN0R3B1VGltZXJzPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5ncHVUaW1lcnM7cmV0dXJuIHRoaXMuZ3B1VGltZXJzPXt9LHR9LF9uLnByb3RvdHlwZS5xdWVyeUdwdVRpbWVycz1mdW5jdGlvbih0KXt2YXIgZT17fTtmb3IodmFyIHIgaW4gdCl7dmFyIG49dFtyXSxpPXRoaXMuY29udGV4dC5leHRUaW1lclF1ZXJ5LGE9aS5nZXRRdWVyeU9iamVjdEVYVChuLnF1ZXJ5LGkuUVVFUllfUkVTVUxUX0VYVCkvMWU2O2kuZGVsZXRlUXVlcnlFWFQobi5xdWVyeSksZVtyXT1hfXJldHVybiBlfSxfbi5wcm90b3R5cGUudHJhbnNsYXRlUG9zTWF0cml4PWZ1bmN0aW9uKGUscixuLGksYSl7aWYoIW5bMF0mJiFuWzFdKXJldHVybiBlO3ZhciBvPWE/Im1hcCI9PT1pP3RoaXMudHJhbnNmb3JtLmFuZ2xlOjA6InZpZXdwb3J0Ij09PWk/LXRoaXMudHJhbnNmb3JtLmFuZ2xlOjA7aWYobyl7dmFyIHM9TWF0aC5zaW4obyksbD1NYXRoLmNvcyhvKTtuPVtuWzBdKmwtblsxXSpzLG5bMF0qcytuWzFdKmxdfXZhciBjPVthP25bMF06cGUocixuWzBdLHRoaXMudHJhbnNmb3JtLnpvb20pLGE/blsxXTpwZShyLG5bMV0sdGhpcy50cmFuc2Zvcm0uem9vbSksMF0sdT1uZXcgRmxvYXQzMkFycmF5KDE2KTtyZXR1cm4gdC50cmFuc2xhdGUodSxlLGMpLHV9LF9uLnByb3RvdHlwZS5zYXZlVGlsZVRleHR1cmU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdGlsZVRleHR1cmVzW3Quc2l6ZVswXV07ZT9lLnB1c2godCk6dGhpcy5fdGlsZVRleHR1cmVzW3Quc2l6ZVswXV09W3RdfSxfbi5wcm90b3R5cGUuZ2V0VGlsZVRleHR1cmU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdGlsZVRleHR1cmVzW3RdO3JldHVybiBlJiZlLmxlbmd0aD4wP2UucG9wKCk6bnVsbH0sX24ucHJvdG90eXBlLmlzUGF0dGVybk1pc3Npbmc9ZnVuY3Rpb24odCl7aWYoIXQpcmV0dXJuITE7aWYoIXQuZnJvbXx8IXQudG8pcmV0dXJuITA7dmFyIGU9dGhpcy5pbWFnZU1hbmFnZXIuZ2V0UGF0dGVybih0LmZyb20udG9TdHJpbmcoKSkscj10aGlzLmltYWdlTWFuYWdlci5nZXRQYXR0ZXJuKHQudG8udG9TdHJpbmcoKSk7cmV0dXJuIWV8fCFyfSxfbi5wcm90b3R5cGUudXNlUHJvZ3JhbT1mdW5jdGlvbih0LGUpe3RoaXMuY2FjaGU9dGhpcy5jYWNoZXx8e307dmFyIHI9IiIrdCsoZT9lLmNhY2hlS2V5OiIiKSsodGhpcy5fc2hvd092ZXJkcmF3SW5zcGVjdG9yPyIvb3ZlcmRyYXciOiIiKTtyZXR1cm4gdGhpcy5jYWNoZVtyXXx8KHRoaXMuY2FjaGVbcl09bmV3IF9yKHRoaXMuY29udGV4dCx4clt0XSxlLEpyW3RdLHRoaXMuX3Nob3dPdmVyZHJhd0luc3BlY3RvcikpLHRoaXMuY2FjaGVbcl19LF9uLnByb3RvdHlwZS5zZXRDdXN0b21MYXllckRlZmF1bHRzPWZ1bmN0aW9uKCl7dGhpcy5jb250ZXh0LnVuYmluZFZBTygpLHRoaXMuY29udGV4dC5jdWxsRmFjZS5zZXREZWZhdWx0KCksdGhpcy5jb250ZXh0LmFjdGl2ZVRleHR1cmUuc2V0RGVmYXVsdCgpLHRoaXMuY29udGV4dC5waXhlbFN0b3JlVW5wYWNrLnNldERlZmF1bHQoKSx0aGlzLmNvbnRleHQucGl4ZWxTdG9yZVVucGFja1ByZW11bHRpcGx5QWxwaGEuc2V0RGVmYXVsdCgpLHRoaXMuY29udGV4dC5waXhlbFN0b3JlVW5wYWNrRmxpcFkuc2V0RGVmYXVsdCgpfSxfbi5wcm90b3R5cGUuc2V0QmFzZVN0YXRlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jb250ZXh0LmdsO3RoaXMuY29udGV4dC5jdWxsRmFjZS5zZXQoITEpLHRoaXMuY29udGV4dC52aWV3cG9ydC5zZXQoWzAsMCx0aGlzLndpZHRoLHRoaXMuaGVpZ2h0XSksdGhpcy5jb250ZXh0LmJsZW5kRXF1YXRpb24uc2V0KHQuRlVOQ19BREQpfSxfbi5wcm90b3R5cGUuaW5pdERlYnVnT3ZlcmxheUNhbnZhcz1mdW5jdGlvbigpe2lmKG51bGw9PXRoaXMuZGVidWdPdmVybGF5Q2FudmFzKXt0aGlzLmRlYnVnT3ZlcmxheUNhbnZhcz10LndpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSx0aGlzLmRlYnVnT3ZlcmxheUNhbnZhcy53aWR0aD01MTIsdGhpcy5kZWJ1Z092ZXJsYXlDYW52YXMuaGVpZ2h0PTUxMjt2YXIgZT10aGlzLmNvbnRleHQuZ2w7dGhpcy5kZWJ1Z092ZXJsYXlUZXh0dXJlPW5ldyB0LlRleHR1cmUodGhpcy5jb250ZXh0LHRoaXMuZGVidWdPdmVybGF5Q2FudmFzLGUuUkdCQSl9fSxfbi5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMuZW1wdHlUZXh0dXJlLmRlc3Ryb3koKSx0aGlzLmRlYnVnT3ZlcmxheVRleHR1cmUmJnRoaXMuZGVidWdPdmVybGF5VGV4dHVyZS5kZXN0cm95KCl9O3ZhciB3bj1mdW5jdGlvbih0LGUpe3RoaXMucG9pbnRzPXQsdGhpcy5wbGFuZXM9ZX07d24uZnJvbUludlByb2plY3Rpb25NYXRyaXg9ZnVuY3Rpb24oZSxyLG4pe3ZhciBpPU1hdGgucG93KDIsbiksYT1bWy0xLDEsLTEsMV0sWzEsMSwtMSwxXSxbMSwtMSwtMSwxXSxbLTEsLTEsLTEsMV0sWy0xLDEsMSwxXSxbMSwxLDEsMV0sWzEsLTEsMSwxXSxbLTEsLTEsMSwxXV0ubWFwKChmdW5jdGlvbihyKXtyZXR1cm4gdC50cmFuc2Zvcm1NYXQ0KFtdLHIsZSl9KSkubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gdC5zY2FsZSQxKFtdLGUsMS9lWzNdL3IqaSl9KSksbz1bWzAsMSwyXSxbNiw1LDRdLFswLDMsN10sWzIsMSw1XSxbMywyLDZdLFswLDQsNV1dLm1hcCgoZnVuY3Rpb24oZSl7dmFyIHI9dC5zdWIoW10sYVtlWzBdXSxhW2VbMV1dKSxuPXQuc3ViKFtdLGFbZVsyXV0sYVtlWzFdXSksaT10Lm5vcm1hbGl6ZShbXSx0LmNyb3NzKFtdLHIsbikpLG89LXQuZG90KGksYVtlWzFdXSk7cmV0dXJuIGkuY29uY2F0KG8pfSkpO3JldHVybiBuZXcgd24oYSxvKX07dmFyIFRuPWZ1bmN0aW9uKGUscil7dGhpcy5taW49ZSx0aGlzLm1heD1yLHRoaXMuY2VudGVyPXQuc2NhbGUkMihbXSx0LmFkZChbXSx0aGlzLm1pbix0aGlzLm1heCksLjUpfTtUbi5wcm90b3R5cGUucXVhZHJhbnQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciByPVtlJTI9PTAsZTwyXSxuPXQuY2xvbmUkMih0aGlzLm1pbiksaT10LmNsb25lJDIodGhpcy5tYXgpLGE9MDthPHIubGVuZ3RoO2ErKyluW2FdPXJbYV0/dGhpcy5taW5bYV06dGhpcy5jZW50ZXJbYV0saVthXT1yW2FdP3RoaXMuY2VudGVyW2FdOnRoaXMubWF4W2FdO3JldHVybiBpWzJdPXRoaXMubWF4WzJdLG5ldyBUbihuLGkpfSxUbi5wcm90b3R5cGUuZGlzdGFuY2VYPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLm1heChNYXRoLm1pbih0aGlzLm1heFswXSx0WzBdKSx0aGlzLm1pblswXSktdFswXX0sVG4ucHJvdG90eXBlLmRpc3RhbmNlWT1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5tYXgoTWF0aC5taW4odGhpcy5tYXhbMV0sdFsxXSksdGhpcy5taW5bMV0pLXRbMV19LFRuLnByb3RvdHlwZS5pbnRlcnNlY3RzPWZ1bmN0aW9uKGUpe2Zvcih2YXIgcj1bW3RoaXMubWluWzBdLHRoaXMubWluWzFdLDAsMV0sW3RoaXMubWF4WzBdLHRoaXMubWluWzFdLDAsMV0sW3RoaXMubWF4WzBdLHRoaXMubWF4WzFdLDAsMV0sW3RoaXMubWluWzBdLHRoaXMubWF4WzFdLDAsMV1dLG49ITAsaT0wO2k8ZS5wbGFuZXMubGVuZ3RoO2krKyl7Zm9yKHZhciBhPWUucGxhbmVzW2ldLG89MCxzPTA7czxyLmxlbmd0aDtzKyspbys9dC5kb3QkMShhLHJbc10pPj0wO2lmKDA9PT1vKXJldHVybiAwO28hPT1yLmxlbmd0aCYmKG49ITEpfWlmKG4pcmV0dXJuIDI7Zm9yKHZhciBsPTA7bDwzO2wrKyl7Zm9yKHZhciBjPU51bWJlci5NQVhfVkFMVUUsdT0tTnVtYmVyLk1BWF9WQUxVRSxmPTA7ZjxlLnBvaW50cy5sZW5ndGg7ZisrKXt2YXIgaD1lLnBvaW50c1tmXVtsXS10aGlzLm1pbltsXTtjPU1hdGgubWluKGMsaCksdT1NYXRoLm1heCh1LGgpfWlmKHU8MHx8Yz50aGlzLm1heFtsXS10aGlzLm1pbltsXSlyZXR1cm4gMH1yZXR1cm4gMX07dmFyIGtuPWZ1bmN0aW9uKHQsZSxyLG4pe2lmKHZvaWQgMD09PXQmJih0PTApLHZvaWQgMD09PWUmJihlPTApLHZvaWQgMD09PXImJihyPTApLHZvaWQgMD09PW4mJihuPTApLGlzTmFOKHQpfHx0PDB8fGlzTmFOKGUpfHxlPDB8fGlzTmFOKHIpfHxyPDB8fGlzTmFOKG4pfHxuPDApdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHZhbHVlIGZvciBlZGdlLWluc2V0cywgdG9wLCBib3R0b20sIGxlZnQgYW5kIHJpZ2h0IG11c3QgYWxsIGJlIG51bWJlcnMiKTt0aGlzLnRvcD10LHRoaXMuYm90dG9tPWUsdGhpcy5sZWZ0PXIsdGhpcy5yaWdodD1ufTtrbi5wcm90b3R5cGUuaW50ZXJwb2xhdGU9ZnVuY3Rpb24oZSxyLG4pe3JldHVybiBudWxsIT1yLnRvcCYmbnVsbCE9ZS50b3AmJih0aGlzLnRvcD10Lm51bWJlcihlLnRvcCxyLnRvcCxuKSksbnVsbCE9ci5ib3R0b20mJm51bGwhPWUuYm90dG9tJiYodGhpcy5ib3R0b209dC5udW1iZXIoZS5ib3R0b20sci5ib3R0b20sbikpLG51bGwhPXIubGVmdCYmbnVsbCE9ZS5sZWZ0JiYodGhpcy5sZWZ0PXQubnVtYmVyKGUubGVmdCxyLmxlZnQsbikpLG51bGwhPXIucmlnaHQmJm51bGwhPWUucmlnaHQmJih0aGlzLnJpZ2h0PXQubnVtYmVyKGUucmlnaHQsci5yaWdodCxuKSksdGhpc30sa24ucHJvdG90eXBlLmdldENlbnRlcj1mdW5jdGlvbihlLHIpe3ZhciBuPXQuY2xhbXAoKHRoaXMubGVmdCtlLXRoaXMucmlnaHQpLzIsMCxlKSxpPXQuY2xhbXAoKHRoaXMudG9wK3ItdGhpcy5ib3R0b20pLzIsMCxyKTtyZXR1cm4gbmV3IHQuUG9pbnQobixpKX0sa24ucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy50b3A9PT10LnRvcCYmdGhpcy5ib3R0b209PT10LmJvdHRvbSYmdGhpcy5sZWZ0PT09dC5sZWZ0JiZ0aGlzLnJpZ2h0PT09dC5yaWdodH0sa24ucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBrbih0aGlzLnRvcCx0aGlzLmJvdHRvbSx0aGlzLmxlZnQsdGhpcy5yaWdodCl9LGtuLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm57dG9wOnRoaXMudG9wLGJvdHRvbTp0aGlzLmJvdHRvbSxsZWZ0OnRoaXMubGVmdCxyaWdodDp0aGlzLnJpZ2h0fX07dmFyIEFuPWZ1bmN0aW9uKGUscixuLGksYSl7dGhpcy50aWxlU2l6ZT01MTIsdGhpcy5tYXhWYWxpZExhdGl0dWRlPTg1LjA1MTEyOSx0aGlzLl9yZW5kZXJXb3JsZENvcGllcz12b2lkIDA9PT1hfHxhLHRoaXMuX21pblpvb209ZXx8MCx0aGlzLl9tYXhab29tPXJ8fDIyLHRoaXMuX21pblBpdGNoPW51bGw9PW4/MDpuLHRoaXMuX21heFBpdGNoPW51bGw9PWk/NjA6aSx0aGlzLnNldE1heEJvdW5kcygpLHRoaXMud2lkdGg9MCx0aGlzLmhlaWdodD0wLHRoaXMuX2NlbnRlcj1uZXcgdC5MbmdMYXQoMCwwKSx0aGlzLnpvb209MCx0aGlzLmFuZ2xlPTAsdGhpcy5fZm92PS42NDM1MDExMDg3OTMyODQ0LHRoaXMuX3BpdGNoPTAsdGhpcy5fdW5tb2RpZmllZD0hMCx0aGlzLl9lZGdlSW5zZXRzPW5ldyBrbix0aGlzLl9wb3NNYXRyaXhDYWNoZT17fSx0aGlzLl9hbGlnbmVkUG9zTWF0cml4Q2FjaGU9e319LE1uPXttaW5ab29tOntjb25maWd1cmFibGU6ITB9LG1heFpvb206e2NvbmZpZ3VyYWJsZTohMH0sbWluUGl0Y2g6e2NvbmZpZ3VyYWJsZTohMH0sbWF4UGl0Y2g6e2NvbmZpZ3VyYWJsZTohMH0scmVuZGVyV29ybGRDb3BpZXM6e2NvbmZpZ3VyYWJsZTohMH0sd29ybGRTaXplOntjb25maWd1cmFibGU6ITB9LGNlbnRlck9mZnNldDp7Y29uZmlndXJhYmxlOiEwfSxzaXplOntjb25maWd1cmFibGU6ITB9LGJlYXJpbmc6e2NvbmZpZ3VyYWJsZTohMH0scGl0Y2g6e2NvbmZpZ3VyYWJsZTohMH0sZm92Ontjb25maWd1cmFibGU6ITB9LHpvb206e2NvbmZpZ3VyYWJsZTohMH0sY2VudGVyOntjb25maWd1cmFibGU6ITB9LHBhZGRpbmc6e2NvbmZpZ3VyYWJsZTohMH0sY2VudGVyUG9pbnQ6e2NvbmZpZ3VyYWJsZTohMH0sdW5tb2RpZmllZDp7Y29uZmlndXJhYmxlOiEwfSxwb2ludDp7Y29uZmlndXJhYmxlOiEwfX07QW4ucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IEFuKHRoaXMuX21pblpvb20sdGhpcy5fbWF4Wm9vbSx0aGlzLl9taW5QaXRjaCx0aGlzLm1heFBpdGNoLHRoaXMuX3JlbmRlcldvcmxkQ29waWVzKTtyZXR1cm4gdC50aWxlU2l6ZT10aGlzLnRpbGVTaXplLHQubGF0UmFuZ2U9dGhpcy5sYXRSYW5nZSx0LndpZHRoPXRoaXMud2lkdGgsdC5oZWlnaHQ9dGhpcy5oZWlnaHQsdC5fY2VudGVyPXRoaXMuX2NlbnRlcix0Lnpvb209dGhpcy56b29tLHQuYW5nbGU9dGhpcy5hbmdsZSx0Ll9mb3Y9dGhpcy5fZm92LHQuX3BpdGNoPXRoaXMuX3BpdGNoLHQuX3VubW9kaWZpZWQ9dGhpcy5fdW5tb2RpZmllZCx0Ll9lZGdlSW5zZXRzPXRoaXMuX2VkZ2VJbnNldHMuY2xvbmUoKSx0Ll9jYWxjTWF0cmljZXMoKSx0fSxNbi5taW5ab29tLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9taW5ab29tfSxNbi5taW5ab29tLnNldD1mdW5jdGlvbih0KXt0aGlzLl9taW5ab29tIT09dCYmKHRoaXMuX21pblpvb209dCx0aGlzLnpvb209TWF0aC5tYXgodGhpcy56b29tLHQpKX0sTW4ubWF4Wm9vbS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbWF4Wm9vbX0sTW4ubWF4Wm9vbS5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fbWF4Wm9vbSE9PXQmJih0aGlzLl9tYXhab29tPXQsdGhpcy56b29tPU1hdGgubWluKHRoaXMuem9vbSx0KSl9LE1uLm1pblBpdGNoLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9taW5QaXRjaH0sTW4ubWluUGl0Y2guc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX21pblBpdGNoIT09dCYmKHRoaXMuX21pblBpdGNoPXQsdGhpcy5waXRjaD1NYXRoLm1heCh0aGlzLnBpdGNoLHQpKX0sTW4ubWF4UGl0Y2guZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21heFBpdGNofSxNbi5tYXhQaXRjaC5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fbWF4UGl0Y2ghPT10JiYodGhpcy5fbWF4UGl0Y2g9dCx0aGlzLnBpdGNoPU1hdGgubWluKHRoaXMucGl0Y2gsdCkpfSxNbi5yZW5kZXJXb3JsZENvcGllcy5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVuZGVyV29ybGRDb3BpZXN9LE1uLnJlbmRlcldvcmxkQ29waWVzLnNldD1mdW5jdGlvbih0KXt2b2lkIDA9PT10P3Q9ITA6bnVsbD09PXQmJih0PSExKSx0aGlzLl9yZW5kZXJXb3JsZENvcGllcz10fSxNbi53b3JsZFNpemUuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGlsZVNpemUqdGhpcy5zY2FsZX0sTW4uY2VudGVyT2Zmc2V0LmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNlbnRlclBvaW50Ll9zdWIodGhpcy5zaXplLl9kaXYoMikpfSxNbi5zaXplLmdldD1mdW5jdGlvbigpe3JldHVybiBuZXcgdC5Qb2ludCh0aGlzLndpZHRoLHRoaXMuaGVpZ2h0KX0sTW4uYmVhcmluZy5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4tdGhpcy5hbmdsZS9NYXRoLlBJKjE4MH0sTW4uYmVhcmluZy5zZXQ9ZnVuY3Rpb24oZSl7dmFyIHI9LXQud3JhcChlLC0xODAsMTgwKSpNYXRoLlBJLzE4MDt0aGlzLmFuZ2xlIT09ciYmKHRoaXMuX3VubW9kaWZpZWQ9ITEsdGhpcy5hbmdsZT1yLHRoaXMuX2NhbGNNYXRyaWNlcygpLHRoaXMucm90YXRpb25NYXRyaXg9dC5jcmVhdGUkMigpLHQucm90YXRlKHRoaXMucm90YXRpb25NYXRyaXgsdGhpcy5yb3RhdGlvbk1hdHJpeCx0aGlzLmFuZ2xlKSl9LE1uLnBpdGNoLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9waXRjaC9NYXRoLlBJKjE4MH0sTW4ucGl0Y2guc2V0PWZ1bmN0aW9uKGUpe3ZhciByPXQuY2xhbXAoZSx0aGlzLm1pblBpdGNoLHRoaXMubWF4UGl0Y2gpLzE4MCpNYXRoLlBJO3RoaXMuX3BpdGNoIT09ciYmKHRoaXMuX3VubW9kaWZpZWQ9ITEsdGhpcy5fcGl0Y2g9cix0aGlzLl9jYWxjTWF0cmljZXMoKSl9LE1uLmZvdi5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZm92L01hdGguUEkqMTgwfSxNbi5mb3Yuc2V0PWZ1bmN0aW9uKHQpe3Q9TWF0aC5tYXgoLjAxLE1hdGgubWluKDYwLHQpKSx0aGlzLl9mb3YhPT10JiYodGhpcy5fdW5tb2RpZmllZD0hMSx0aGlzLl9mb3Y9dC8xODAqTWF0aC5QSSx0aGlzLl9jYWxjTWF0cmljZXMoKSl9LE1uLnpvb20uZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3pvb219LE1uLnpvb20uc2V0PWZ1bmN0aW9uKHQpe3ZhciBlPU1hdGgubWluKE1hdGgubWF4KHQsdGhpcy5taW5ab29tKSx0aGlzLm1heFpvb20pO3RoaXMuX3pvb20hPT1lJiYodGhpcy5fdW5tb2RpZmllZD0hMSx0aGlzLl96b29tPWUsdGhpcy5zY2FsZT10aGlzLnpvb21TY2FsZShlKSx0aGlzLnRpbGVab29tPU1hdGguZmxvb3IoZSksdGhpcy56b29tRnJhY3Rpb249ZS10aGlzLnRpbGVab29tLHRoaXMuX2NvbnN0cmFpbigpLHRoaXMuX2NhbGNNYXRyaWNlcygpKX0sTW4uY2VudGVyLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9jZW50ZXJ9LE1uLmNlbnRlci5zZXQ9ZnVuY3Rpb24odCl7dC5sYXQ9PT10aGlzLl9jZW50ZXIubGF0JiZ0LmxuZz09PXRoaXMuX2NlbnRlci5sbmd8fCh0aGlzLl91bm1vZGlmaWVkPSExLHRoaXMuX2NlbnRlcj10LHRoaXMuX2NvbnN0cmFpbigpLHRoaXMuX2NhbGNNYXRyaWNlcygpKX0sTW4ucGFkZGluZy5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZWRnZUluc2V0cy50b0pTT04oKX0sTW4ucGFkZGluZy5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fZWRnZUluc2V0cy5lcXVhbHModCl8fCh0aGlzLl91bm1vZGlmaWVkPSExLHRoaXMuX2VkZ2VJbnNldHMuaW50ZXJwb2xhdGUodGhpcy5fZWRnZUluc2V0cyx0LDEpLHRoaXMuX2NhbGNNYXRyaWNlcygpKX0sTW4uY2VudGVyUG9pbnQuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2VkZ2VJbnNldHMuZ2V0Q2VudGVyKHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpfSxBbi5wcm90b3R5cGUuaXNQYWRkaW5nRXF1YWw9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2VkZ2VJbnNldHMuZXF1YWxzKHQpfSxBbi5wcm90b3R5cGUuaW50ZXJwb2xhdGVQYWRkaW5nPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLl91bm1vZGlmaWVkPSExLHRoaXMuX2VkZ2VJbnNldHMuaW50ZXJwb2xhdGUodCxlLHIpLHRoaXMuX2NvbnN0cmFpbigpLHRoaXMuX2NhbGNNYXRyaWNlcygpfSxBbi5wcm90b3R5cGUuY292ZXJpbmdab29tTGV2ZWw9ZnVuY3Rpb24odCl7dmFyIGU9KHQucm91bmRab29tP01hdGgucm91bmQ6TWF0aC5mbG9vcikodGhpcy56b29tK3RoaXMuc2NhbGVab29tKHRoaXMudGlsZVNpemUvdC50aWxlU2l6ZSkpO3JldHVybiBNYXRoLm1heCgwLGUpfSxBbi5wcm90b3R5cGUuZ2V0VmlzaWJsZVVud3JhcHBlZENvb3JkaW5hdGVzPWZ1bmN0aW9uKGUpe3ZhciByPVtuZXcgdC5VbndyYXBwZWRUaWxlSUQoMCxlKV07aWYodGhpcy5fcmVuZGVyV29ybGRDb3BpZXMpZm9yKHZhciBuPXRoaXMucG9pbnRDb29yZGluYXRlKG5ldyB0LlBvaW50KDAsMCkpLGk9dGhpcy5wb2ludENvb3JkaW5hdGUobmV3IHQuUG9pbnQodGhpcy53aWR0aCwwKSksYT10aGlzLnBvaW50Q29vcmRpbmF0ZShuZXcgdC5Qb2ludCh0aGlzLndpZHRoLHRoaXMuaGVpZ2h0KSksbz10aGlzLnBvaW50Q29vcmRpbmF0ZShuZXcgdC5Qb2ludCgwLHRoaXMuaGVpZ2h0KSkscz1NYXRoLmZsb29yKE1hdGgubWluKG4ueCxpLngsYS54LG8ueCkpLGw9TWF0aC5mbG9vcihNYXRoLm1heChuLngsaS54LGEueCxvLngpKSxjPXMtMTtjPD1sKzE7YysrKTAhPT1jJiZyLnB1c2gobmV3IHQuVW53cmFwcGVkVGlsZUlEKGMsZSkpO3JldHVybiByfSxBbi5wcm90b3R5cGUuY292ZXJpbmdUaWxlcz1mdW5jdGlvbihlKXt2YXIgcj10aGlzLmNvdmVyaW5nWm9vbUxldmVsKGUpLG49cjtpZih2b2lkIDAhPT1lLm1pbnpvb20mJnI8ZS5taW56b29tKXJldHVybltdO3ZvaWQgMCE9PWUubWF4em9vbSYmcj5lLm1heHpvb20mJihyPWUubWF4em9vbSk7dmFyIGk9dC5NZXJjYXRvckNvb3JkaW5hdGUuZnJvbUxuZ0xhdCh0aGlzLmNlbnRlciksYT1NYXRoLnBvdygyLHIpLG89W2EqaS54LGEqaS55LDBdLHM9d24uZnJvbUludlByb2plY3Rpb25NYXRyaXgodGhpcy5pbnZQcm9qTWF0cml4LHRoaXMud29ybGRTaXplLHIpLGw9ZS5taW56b29tfHwwO3RoaXMucGl0Y2g8PTYwJiZ0aGlzLl9lZGdlSW5zZXRzLnRvcDwuMSYmKGw9cik7dmFyIGM9ZnVuY3Rpb24odCl7cmV0dXJue2FhYmI6bmV3IFRuKFt0KmEsMCwwXSxbKHQrMSkqYSxhLDBdKSx6b29tOjAseDowLHk6MCx3cmFwOnQsZnVsbHlWaXNpYmxlOiExfX0sdT1bXSxmPVtdLGg9cixwPWUucmVwYXJzZU92ZXJzY2FsZWQ/bjpyO2lmKHRoaXMuX3JlbmRlcldvcmxkQ29waWVzKWZvcih2YXIgZD0xO2Q8PTM7ZCsrKXUucHVzaChjKC1kKSksdS5wdXNoKGMoZCkpO2Zvcih1LnB1c2goYygwKSk7dS5sZW5ndGg+MDspe3ZhciBtPXUucG9wKCksZz1tLngsdj1tLnkseT1tLmZ1bGx5VmlzaWJsZTtpZigheSl7dmFyIHg9bS5hYWJiLmludGVyc2VjdHMocyk7aWYoMD09PXgpY29udGludWU7eT0yPT09eH12YXIgYj1tLmFhYmIuZGlzdGFuY2VYKG8pLF89bS5hYWJiLmRpc3RhbmNlWShvKSx3PU1hdGgubWF4KE1hdGguYWJzKGIpLE1hdGguYWJzKF8pKSxUPTMrKDE8PGgtbS56b29tKS0yO2lmKG0uem9vbT09PWh8fHc+VCYmbS56b29tPj1sKWYucHVzaCh7dGlsZUlEOm5ldyB0Lk92ZXJzY2FsZWRUaWxlSUQobS56b29tPT09aD9wOm0uem9vbSxtLndyYXAsbS56b29tLGcsdiksZGlzdGFuY2VTcTp0LnNxckxlbihbb1swXS0uNS1nLG9bMV0tLjUtdl0pfSk7ZWxzZSBmb3IodmFyIGs9MDtrPDQ7aysrKXt2YXIgQT0oZzw8MSkrayUyLE09KHY8PDEpKyhrPj4xKTt1LnB1c2goe2FhYmI6bS5hYWJiLnF1YWRyYW50KGspLHpvb206bS56b29tKzEseDpBLHk6TSx3cmFwOm0ud3JhcCxmdWxseVZpc2libGU6eX0pfX1yZXR1cm4gZi5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0LmRpc3RhbmNlU3EtZS5kaXN0YW5jZVNxfSkpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQudGlsZUlEfSkpfSxBbi5wcm90b3R5cGUucmVzaXplPWZ1bmN0aW9uKHQsZSl7dGhpcy53aWR0aD10LHRoaXMuaGVpZ2h0PWUsdGhpcy5waXhlbHNUb0dMVW5pdHM9WzIvdCwtMi9lXSx0aGlzLl9jb25zdHJhaW4oKSx0aGlzLl9jYWxjTWF0cmljZXMoKX0sTW4udW5tb2RpZmllZC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdW5tb2RpZmllZH0sQW4ucHJvdG90eXBlLnpvb21TY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5wb3coMix0KX0sQW4ucHJvdG90eXBlLnNjYWxlWm9vbT1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5sb2codCkvTWF0aC5MTjJ9LEFuLnByb3RvdHlwZS5wcm9qZWN0PWZ1bmN0aW9uKGUpe3ZhciByPXQuY2xhbXAoZS5sYXQsLXRoaXMubWF4VmFsaWRMYXRpdHVkZSx0aGlzLm1heFZhbGlkTGF0aXR1ZGUpO3JldHVybiBuZXcgdC5Qb2ludCh0Lm1lcmNhdG9yWGZyb21MbmcoZS5sbmcpKnRoaXMud29ybGRTaXplLHQubWVyY2F0b3JZZnJvbUxhdChyKSp0aGlzLndvcmxkU2l6ZSl9LEFuLnByb3RvdHlwZS51bnByb2plY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyB0Lk1lcmNhdG9yQ29vcmRpbmF0ZShlLngvdGhpcy53b3JsZFNpemUsZS55L3RoaXMud29ybGRTaXplKS50b0xuZ0xhdCgpfSxNbi5wb2ludC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcm9qZWN0KHRoaXMuY2VudGVyKX0sQW4ucHJvdG90eXBlLnNldExvY2F0aW9uQXRQb2ludD1mdW5jdGlvbihlLHIpe3ZhciBuPXRoaXMucG9pbnRDb29yZGluYXRlKHIpLGk9dGhpcy5wb2ludENvb3JkaW5hdGUodGhpcy5jZW50ZXJQb2ludCksYT10aGlzLmxvY2F0aW9uQ29vcmRpbmF0ZShlKSxvPW5ldyB0Lk1lcmNhdG9yQ29vcmRpbmF0ZShhLngtKG4ueC1pLngpLGEueS0obi55LWkueSkpO3RoaXMuY2VudGVyPXRoaXMuY29vcmRpbmF0ZUxvY2F0aW9uKG8pLHRoaXMuX3JlbmRlcldvcmxkQ29waWVzJiYodGhpcy5jZW50ZXI9dGhpcy5jZW50ZXIud3JhcCgpKX0sQW4ucHJvdG90eXBlLmxvY2F0aW9uUG9pbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY29vcmRpbmF0ZVBvaW50KHRoaXMubG9jYXRpb25Db29yZGluYXRlKHQpKX0sQW4ucHJvdG90eXBlLnBvaW50TG9jYXRpb249ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY29vcmRpbmF0ZUxvY2F0aW9uKHRoaXMucG9pbnRDb29yZGluYXRlKHQpKX0sQW4ucHJvdG90eXBlLmxvY2F0aW9uQ29vcmRpbmF0ZT1mdW5jdGlvbihlKXtyZXR1cm4gdC5NZXJjYXRvckNvb3JkaW5hdGUuZnJvbUxuZ0xhdChlKX0sQW4ucHJvdG90eXBlLmNvb3JkaW5hdGVMb2NhdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gdC50b0xuZ0xhdCgpfSxBbi5wcm90b3R5cGUucG9pbnRDb29yZGluYXRlPWZ1bmN0aW9uKGUpe3ZhciByPVtlLngsZS55LDAsMV0sbj1bZS54LGUueSwxLDFdO3QudHJhbnNmb3JtTWF0NChyLHIsdGhpcy5waXhlbE1hdHJpeEludmVyc2UpLHQudHJhbnNmb3JtTWF0NChuLG4sdGhpcy5waXhlbE1hdHJpeEludmVyc2UpO3ZhciBpPXJbM10sYT1uWzNdLG89clswXS9pLHM9blswXS9hLGw9clsxXS9pLGM9blsxXS9hLHU9clsyXS9pLGY9blsyXS9hLGg9dT09PWY/MDooMC11KS8oZi11KTtyZXR1cm4gbmV3IHQuTWVyY2F0b3JDb29yZGluYXRlKHQubnVtYmVyKG8scyxoKS90aGlzLndvcmxkU2l6ZSx0Lm51bWJlcihsLGMsaCkvdGhpcy53b3JsZFNpemUpfSxBbi5wcm90b3R5cGUuY29vcmRpbmF0ZVBvaW50PWZ1bmN0aW9uKGUpe3ZhciByPVtlLngqdGhpcy53b3JsZFNpemUsZS55KnRoaXMud29ybGRTaXplLDAsMV07cmV0dXJuIHQudHJhbnNmb3JtTWF0NChyLHIsdGhpcy5waXhlbE1hdHJpeCksbmV3IHQuUG9pbnQoclswXS9yWzNdLHJbMV0vclszXSl9LEFuLnByb3RvdHlwZS5nZXRCb3VuZHM9ZnVuY3Rpb24oKXtyZXR1cm4obmV3IHQuTG5nTGF0Qm91bmRzKS5leHRlbmQodGhpcy5wb2ludExvY2F0aW9uKG5ldyB0LlBvaW50KDAsMCkpKS5leHRlbmQodGhpcy5wb2ludExvY2F0aW9uKG5ldyB0LlBvaW50KHRoaXMud2lkdGgsMCkpKS5leHRlbmQodGhpcy5wb2ludExvY2F0aW9uKG5ldyB0LlBvaW50KHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpKSkuZXh0ZW5kKHRoaXMucG9pbnRMb2NhdGlvbihuZXcgdC5Qb2ludCgwLHRoaXMuaGVpZ2h0KSkpfSxBbi5wcm90b3R5cGUuZ2V0TWF4Qm91bmRzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGF0UmFuZ2UmJjI9PT10aGlzLmxhdFJhbmdlLmxlbmd0aCYmdGhpcy5sbmdSYW5nZSYmMj09PXRoaXMubG5nUmFuZ2UubGVuZ3RoP25ldyB0LkxuZ0xhdEJvdW5kcyhbdGhpcy5sbmdSYW5nZVswXSx0aGlzLmxhdFJhbmdlWzBdXSxbdGhpcy5sbmdSYW5nZVsxXSx0aGlzLmxhdFJhbmdlWzFdXSk6bnVsbH0sQW4ucHJvdG90eXBlLnNldE1heEJvdW5kcz1mdW5jdGlvbih0KXt0Pyh0aGlzLmxuZ1JhbmdlPVt0LmdldFdlc3QoKSx0LmdldEVhc3QoKV0sdGhpcy5sYXRSYW5nZT1bdC5nZXRTb3V0aCgpLHQuZ2V0Tm9ydGgoKV0sdGhpcy5fY29uc3RyYWluKCkpOih0aGlzLmxuZ1JhbmdlPW51bGwsdGhpcy5sYXRSYW5nZT1bLXRoaXMubWF4VmFsaWRMYXRpdHVkZSx0aGlzLm1heFZhbGlkTGF0aXR1ZGVdKX0sQW4ucHJvdG90eXBlLmNhbGN1bGF0ZVBvc01hdHJpeD1mdW5jdGlvbihlLHIpe3ZvaWQgMD09PXImJihyPSExKTt2YXIgbj1lLmtleSxpPXI/dGhpcy5fYWxpZ25lZFBvc01hdHJpeENhY2hlOnRoaXMuX3Bvc01hdHJpeENhY2hlO2lmKGlbbl0pcmV0dXJuIGlbbl07dmFyIGE9ZS5jYW5vbmljYWwsbz10aGlzLndvcmxkU2l6ZS90aGlzLnpvb21TY2FsZShhLnopLHM9YS54K01hdGgucG93KDIsYS56KSplLndyYXAsbD10LmlkZW50aXR5KG5ldyBGbG9hdDY0QXJyYXkoMTYpKTtyZXR1cm4gdC50cmFuc2xhdGUobCxsLFtzKm8sYS55Km8sMF0pLHQuc2NhbGUobCxsLFtvL3QuRVhURU5ULG8vdC5FWFRFTlQsMV0pLHQubXVsdGlwbHkobCxyP3RoaXMuYWxpZ25lZFByb2pNYXRyaXg6dGhpcy5wcm9qTWF0cml4LGwpLGlbbl09bmV3IEZsb2F0MzJBcnJheShsKSxpW25dfSxBbi5wcm90b3R5cGUuY3VzdG9tTGF5ZXJNYXRyaXg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tZXJjYXRvck1hdHJpeC5zbGljZSgpfSxBbi5wcm90b3R5cGUuX2NvbnN0cmFpbj1mdW5jdGlvbigpe2lmKHRoaXMuY2VudGVyJiZ0aGlzLndpZHRoJiZ0aGlzLmhlaWdodCYmIXRoaXMuX2NvbnN0cmFpbmluZyl7dGhpcy5fY29uc3RyYWluaW5nPSEwO3ZhciBlLHIsbixpLGE9LTkwLG89OTAscz0tMTgwLGw9MTgwLGM9dGhpcy5zaXplLHU9dGhpcy5fdW5tb2RpZmllZDtpZih0aGlzLmxhdFJhbmdlKXt2YXIgZj10aGlzLmxhdFJhbmdlO2E9dC5tZXJjYXRvcllmcm9tTGF0KGZbMV0pKnRoaXMud29ybGRTaXplLGU9KG89dC5tZXJjYXRvcllmcm9tTGF0KGZbMF0pKnRoaXMud29ybGRTaXplKS1hPGMueT9jLnkvKG8tYSk6MH1pZih0aGlzLmxuZ1JhbmdlKXt2YXIgaD10aGlzLmxuZ1JhbmdlO3M9dC5tZXJjYXRvclhmcm9tTG5nKGhbMF0pKnRoaXMud29ybGRTaXplLHI9KGw9dC5tZXJjYXRvclhmcm9tTG5nKGhbMV0pKnRoaXMud29ybGRTaXplKS1zPGMueD9jLngvKGwtcyk6MH12YXIgcD10aGlzLnBvaW50LGQ9TWF0aC5tYXgocnx8MCxlfHwwKTtpZihkKXJldHVybiB0aGlzLmNlbnRlcj10aGlzLnVucHJvamVjdChuZXcgdC5Qb2ludChyPyhsK3MpLzI6cC54LGU/KG8rYSkvMjpwLnkpKSx0aGlzLnpvb20rPXRoaXMuc2NhbGVab29tKGQpLHRoaXMuX3VubW9kaWZpZWQ9dSx2b2lkKHRoaXMuX2NvbnN0cmFpbmluZz0hMSk7aWYodGhpcy5sYXRSYW5nZSl7dmFyIG09cC55LGc9Yy55LzI7bS1nPGEmJihpPWErZyksbStnPm8mJihpPW8tZyl9aWYodGhpcy5sbmdSYW5nZSl7dmFyIHY9cC54LHk9Yy54LzI7di15PHMmJihuPXMreSksdit5PmwmJihuPWwteSl9dm9pZCAwPT09biYmdm9pZCAwPT09aXx8KHRoaXMuY2VudGVyPXRoaXMudW5wcm9qZWN0KG5ldyB0LlBvaW50KHZvaWQgMCE9PW4/bjpwLngsdm9pZCAwIT09aT9pOnAueSkpKSx0aGlzLl91bm1vZGlmaWVkPXUsdGhpcy5fY29uc3RyYWluaW5nPSExfX0sQW4ucHJvdG90eXBlLl9jYWxjTWF0cmljZXM9ZnVuY3Rpb24oKXtpZih0aGlzLmhlaWdodCl7dmFyIGU9dGhpcy5fZm92LzIscj10aGlzLmNlbnRlck9mZnNldDt0aGlzLmNhbWVyYVRvQ2VudGVyRGlzdGFuY2U9LjUvTWF0aC50YW4oZSkqdGhpcy5oZWlnaHQ7dmFyIG49TWF0aC5QSS8yK3RoaXMuX3BpdGNoLGk9dGhpcy5fZm92KiguNStyLnkvdGhpcy5oZWlnaHQpLGE9TWF0aC5zaW4oaSkqdGhpcy5jYW1lcmFUb0NlbnRlckRpc3RhbmNlL01hdGguc2luKHQuY2xhbXAoTWF0aC5QSS1uLWksLjAxLE1hdGguUEktLjAxKSksbz10aGlzLnBvaW50LHM9by54LGw9by55LGM9MS4wMSooTWF0aC5jb3MoTWF0aC5QSS8yLXRoaXMuX3BpdGNoKSphK3RoaXMuY2FtZXJhVG9DZW50ZXJEaXN0YW5jZSksdT10aGlzLmhlaWdodC81MCxmPW5ldyBGbG9hdDY0QXJyYXkoMTYpO3QucGVyc3BlY3RpdmUoZix0aGlzLl9mb3YsdGhpcy53aWR0aC90aGlzLmhlaWdodCx1LGMpLGZbOF09Miotci54L3RoaXMud2lkdGgsZls5XT0yKnIueS90aGlzLmhlaWdodCx0LnNjYWxlKGYsZixbMSwtMSwxXSksdC50cmFuc2xhdGUoZixmLFswLDAsLXRoaXMuY2FtZXJhVG9DZW50ZXJEaXN0YW5jZV0pLHQucm90YXRlWChmLGYsdGhpcy5fcGl0Y2gpLHQucm90YXRlWihmLGYsdGhpcy5hbmdsZSksdC50cmFuc2xhdGUoZixmLFstcywtbCwwXSksdGhpcy5tZXJjYXRvck1hdHJpeD10LnNjYWxlKFtdLGYsW3RoaXMud29ybGRTaXplLHRoaXMud29ybGRTaXplLHRoaXMud29ybGRTaXplXSksdC5zY2FsZShmLGYsWzEsMSx0Lm1lcmNhdG9yWmZyb21BbHRpdHVkZSgxLHRoaXMuY2VudGVyLmxhdCkqdGhpcy53b3JsZFNpemUsMV0pLHRoaXMucHJvak1hdHJpeD1mLHRoaXMuaW52UHJvak1hdHJpeD10LmludmVydChbXSx0aGlzLnByb2pNYXRyaXgpO3ZhciBoPXRoaXMud2lkdGglMi8yLHA9dGhpcy5oZWlnaHQlMi8yLGQ9TWF0aC5jb3ModGhpcy5hbmdsZSksbT1NYXRoLnNpbih0aGlzLmFuZ2xlKSxnPXMtTWF0aC5yb3VuZChzKStkKmgrbSpwLHY9bC1NYXRoLnJvdW5kKGwpK2QqcCttKmgseT1uZXcgRmxvYXQ2NEFycmF5KGYpO2lmKHQudHJhbnNsYXRlKHkseSxbZz4uNT9nLTE6Zyx2Pi41P3YtMTp2LDBdKSx0aGlzLmFsaWduZWRQcm9qTWF0cml4PXksZj10LmNyZWF0ZSgpLHQuc2NhbGUoZixmLFt0aGlzLndpZHRoLzIsLXRoaXMuaGVpZ2h0LzIsMV0pLHQudHJhbnNsYXRlKGYsZixbMSwtMSwwXSksdGhpcy5sYWJlbFBsYW5lTWF0cml4PWYsZj10LmNyZWF0ZSgpLHQuc2NhbGUoZixmLFsxLC0xLDFdKSx0LnRyYW5zbGF0ZShmLGYsWy0xLC0xLDBdKSx0LnNjYWxlKGYsZixbMi90aGlzLndpZHRoLDIvdGhpcy5oZWlnaHQsMV0pLHRoaXMuZ2xDb29yZE1hdHJpeD1mLHRoaXMucGl4ZWxNYXRyaXg9dC5tdWx0aXBseShuZXcgRmxvYXQ2NEFycmF5KDE2KSx0aGlzLmxhYmVsUGxhbmVNYXRyaXgsdGhpcy5wcm9qTWF0cml4KSwhKGY9dC5pbnZlcnQobmV3IEZsb2F0NjRBcnJheSgxNiksdGhpcy5waXhlbE1hdHJpeCkpKXRocm93IG5ldyBFcnJvcigiZmFpbGVkIHRvIGludmVydCBtYXRyaXgiKTt0aGlzLnBpeGVsTWF0cml4SW52ZXJzZT1mLHRoaXMuX3Bvc01hdHJpeENhY2hlPXt9LHRoaXMuX2FsaWduZWRQb3NNYXRyaXhDYWNoZT17fX19LEFuLnByb3RvdHlwZS5tYXhQaXRjaFNjYWxlRmFjdG9yPWZ1bmN0aW9uKCl7aWYoIXRoaXMucGl4ZWxNYXRyaXhJbnZlcnNlKXJldHVybiAxO3ZhciBlPXRoaXMucG9pbnRDb29yZGluYXRlKG5ldyB0LlBvaW50KDAsMCkpLHI9W2UueCp0aGlzLndvcmxkU2l6ZSxlLnkqdGhpcy53b3JsZFNpemUsMCwxXTtyZXR1cm4gdC50cmFuc2Zvcm1NYXQ0KHIscix0aGlzLnBpeGVsTWF0cml4KVszXS90aGlzLmNhbWVyYVRvQ2VudGVyRGlzdGFuY2V9LEFuLnByb3RvdHlwZS5nZXRDYW1lcmFQb2ludD1mdW5jdGlvbigpe3ZhciBlPXRoaXMuX3BpdGNoLHI9TWF0aC50YW4oZSkqKHRoaXMuY2FtZXJhVG9DZW50ZXJEaXN0YW5jZXx8MSk7cmV0dXJuIHRoaXMuY2VudGVyUG9pbnQuYWRkKG5ldyB0LlBvaW50KDAscikpfSxBbi5wcm90b3R5cGUuZ2V0Q2FtZXJhUXVlcnlHZW9tZXRyeT1mdW5jdGlvbihlKXt2YXIgcj10aGlzLmdldENhbWVyYVBvaW50KCk7aWYoMT09PWUubGVuZ3RoKXJldHVybltlWzBdLHJdO2Zvcih2YXIgbj1yLngsaT1yLnksYT1yLngsbz1yLnkscz0wLGw9ZTtzPGwubGVuZ3RoO3MrPTEpe3ZhciBjPWxbc107bj1NYXRoLm1pbihuLGMueCksaT1NYXRoLm1pbihpLGMueSksYT1NYXRoLm1heChhLGMueCksbz1NYXRoLm1heChvLGMueSl9cmV0dXJuW25ldyB0LlBvaW50KG4saSksbmV3IHQuUG9pbnQoYSxpKSxuZXcgdC5Qb2ludChhLG8pLG5ldyB0LlBvaW50KG4sbyksbmV3IHQuUG9pbnQobixpKV19LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEFuLnByb3RvdHlwZSxNbik7dmFyIFNuPWZ1bmN0aW9uKGUpe3ZhciByLG4saSxhLG87dGhpcy5faGFzaE5hbWU9ZSYmZW5jb2RlVVJJQ29tcG9uZW50KGUpLHQuYmluZEFsbChbIl9nZXRDdXJyZW50SGFzaCIsIl9vbkhhc2hDaGFuZ2UiLCJfdXBkYXRlSGFzaCJdLHRoaXMpLHRoaXMuX3VwZGF0ZUhhc2g9KHI9dGhpcy5fdXBkYXRlSGFzaFVudGhyb3R0bGVkLmJpbmQodGhpcyksbj0zMDAsaT0hMSxhPW51bGwsbz1mdW5jdGlvbigpe2E9bnVsbCxpJiYocigpLGE9c2V0VGltZW91dChvLG4pLGk9ITEpfSxmdW5jdGlvbigpe3JldHVybiBpPSEwLGF8fG8oKSxhfSl9O1NuLnByb3RvdHlwZS5hZGRUbz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fbWFwPWUsdC53aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiaGFzaGNoYW5nZSIsdGhpcy5fb25IYXNoQ2hhbmdlLCExKSx0aGlzLl9tYXAub24oIm1vdmVlbmQiLHRoaXMuX3VwZGF0ZUhhc2gpLHRoaXN9LFNuLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oKXtyZXR1cm4gdC53aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaGFzaGNoYW5nZSIsdGhpcy5fb25IYXNoQ2hhbmdlLCExKSx0aGlzLl9tYXAub2ZmKCJtb3ZlZW5kIix0aGlzLl91cGRhdGVIYXNoKSxjbGVhclRpbWVvdXQodGhpcy5fdXBkYXRlSGFzaCgpKSxkZWxldGUgdGhpcy5fbWFwLHRoaXN9LFNuLnByb3RvdHlwZS5nZXRIYXNoU3RyaW5nPWZ1bmN0aW9uKGUpe3ZhciByPXRoaXMuX21hcC5nZXRDZW50ZXIoKSxuPU1hdGgucm91bmQoMTAwKnRoaXMuX21hcC5nZXRab29tKCkpLzEwMCxpPU1hdGguY2VpbCgobipNYXRoLkxOMitNYXRoLmxvZyg1MTIvMzYwLy41KSkvTWF0aC5MTjEwKSxhPU1hdGgucG93KDEwLGkpLG89TWF0aC5yb3VuZChyLmxuZyphKS9hLHM9TWF0aC5yb3VuZChyLmxhdCphKS9hLGw9dGhpcy5fbWFwLmdldEJlYXJpbmcoKSxjPXRoaXMuX21hcC5nZXRQaXRjaCgpLHU9IiI7aWYodSs9ZT8iLyIrbysiLyIrcysiLyIrbjpuKyIvIitzKyIvIitvLChsfHxjKSYmKHUrPSIvIitNYXRoLnJvdW5kKDEwKmwpLzEwKSxjJiYodSs9Ii8iK01hdGgucm91bmQoYykpLHRoaXMuX2hhc2hOYW1lKXt2YXIgZj10aGlzLl9oYXNoTmFtZSxoPSExLHA9dC53aW5kb3cubG9jYXRpb24uaGFzaC5zbGljZSgxKS5zcGxpdCgiJiIpLm1hcCgoZnVuY3Rpb24odCl7dmFyIGU9dC5zcGxpdCgiPSIpWzBdO3JldHVybiBlPT09Zj8oaD0hMCxlKyI9Iit1KTp0fSkpLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHR9KSk7cmV0dXJuIGh8fHAucHVzaChmKyI9Iit1KSwiIyIrcC5qb2luKCImIil9cmV0dXJuIiMiK3V9LFNuLnByb3RvdHlwZS5fZ2V0Q3VycmVudEhhc2g9ZnVuY3Rpb24oKXt2YXIgZSxyPXRoaXMsbj10LndpbmRvdy5sb2NhdGlvbi5oYXNoLnJlcGxhY2UoIiMiLCIiKTtyZXR1cm4gdGhpcy5faGFzaE5hbWU/KG4uc3BsaXQoIiYiKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnNwbGl0KCI9Iil9KSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7dFswXT09PXIuX2hhc2hOYW1lJiYoZT10KX0pKSwoZSYmZVsxXXx8IiIpLnNwbGl0KCIvIikpOm4uc3BsaXQoIi8iKX0sU24ucHJvdG90eXBlLl9vbkhhc2hDaGFuZ2U9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9nZXRDdXJyZW50SGFzaCgpO2lmKHQubGVuZ3RoPj0zJiYhdC5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gaXNOYU4odCl9KSkpe3ZhciBlPXRoaXMuX21hcC5kcmFnUm90YXRlLmlzRW5hYmxlZCgpJiZ0aGlzLl9tYXAudG91Y2hab29tUm90YXRlLmlzRW5hYmxlZCgpPysodFszXXx8MCk6dGhpcy5fbWFwLmdldEJlYXJpbmcoKTtyZXR1cm4gdGhpcy5fbWFwLmp1bXBUbyh7Y2VudGVyOlsrdFsyXSwrdFsxXV0sem9vbTordFswXSxiZWFyaW5nOmUscGl0Y2g6Kyh0WzRdfHwwKX0pLCEwfXJldHVybiExfSxTbi5wcm90b3R5cGUuX3VwZGF0ZUhhc2hVbnRocm90dGxlZD1mdW5jdGlvbigpe3ZhciBlPXRoaXMuZ2V0SGFzaFN0cmluZygpO3RyeXt0LndpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSh0LndpbmRvdy5oaXN0b3J5LnN0YXRlLCIiLGUpfWNhdGNoKHQpe319O3ZhciBFbj17bGluZWFyaXR5Oi4zLGVhc2luZzp0LmJlemllcigwLDAsLjMsMSl9LExuPXQuZXh0ZW5kKHtkZWNlbGVyYXRpb246MjUwMCxtYXhTcGVlZDoxNDAwfSxFbiksQ249dC5leHRlbmQoe2RlY2VsZXJhdGlvbjoyMCxtYXhTcGVlZDoxNDAwfSxFbiksUG49dC5leHRlbmQoe2RlY2VsZXJhdGlvbjoxZTMsbWF4U3BlZWQ6MzYwfSxFbiksSW49dC5leHRlbmQoe2RlY2VsZXJhdGlvbjoxZTMsbWF4U3BlZWQ6OTB9LEVuKSxPbj1mdW5jdGlvbih0KXt0aGlzLl9tYXA9dCx0aGlzLmNsZWFyKCl9O2Z1bmN0aW9uIHpuKHQsZSl7KCF0LmR1cmF0aW9ufHx0LmR1cmF0aW9uPGUuZHVyYXRpb24pJiYodC5kdXJhdGlvbj1lLmR1cmF0aW9uLHQuZWFzaW5nPWUuZWFzaW5nKX1mdW5jdGlvbiBEbihlLHIsbil7dmFyIGk9bi5tYXhTcGVlZCxhPW4ubGluZWFyaXR5LG89bi5kZWNlbGVyYXRpb24scz10LmNsYW1wKGUqYS8oci8xZTMpLC1pLGkpLGw9TWF0aC5hYnMocykvKG8qYSk7cmV0dXJue2Vhc2luZzpuLmVhc2luZyxkdXJhdGlvbjoxZTMqbCxhbW91bnQ6cyoobC8yKX19T24ucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5faW5lcnRpYUJ1ZmZlcj1bXX0sT24ucHJvdG90eXBlLnJlY29yZD1mdW5jdGlvbihlKXt0aGlzLl9kcmFpbkluZXJ0aWFCdWZmZXIoKSx0aGlzLl9pbmVydGlhQnVmZmVyLnB1c2goe3RpbWU6dC5icm93c2VyLm5vdygpLHNldHRpbmdzOmV9KX0sT24ucHJvdG90eXBlLl9kcmFpbkluZXJ0aWFCdWZmZXI9ZnVuY3Rpb24oKXtmb3IodmFyIGU9dGhpcy5faW5lcnRpYUJ1ZmZlcixyPXQuYnJvd3Nlci5ub3coKTtlLmxlbmd0aD4wJiZyLWVbMF0udGltZT4xNjA7KWUuc2hpZnQoKX0sT24ucHJvdG90eXBlLl9vbk1vdmVFbmQ9ZnVuY3Rpb24oZSl7aWYodGhpcy5fZHJhaW5JbmVydGlhQnVmZmVyKCksISh0aGlzLl9pbmVydGlhQnVmZmVyLmxlbmd0aDwyKSl7Zm9yKHZhciByPXt6b29tOjAsYmVhcmluZzowLHBpdGNoOjAscGFuOm5ldyB0LlBvaW50KDAsMCkscGluY2hBcm91bmQ6dm9pZCAwLGFyb3VuZDp2b2lkIDB9LG49MCxpPXRoaXMuX2luZXJ0aWFCdWZmZXI7bjxpLmxlbmd0aDtuKz0xKXt2YXIgYT1pW25dLnNldHRpbmdzO3Iuem9vbSs9YS56b29tRGVsdGF8fDAsci5iZWFyaW5nKz1hLmJlYXJpbmdEZWx0YXx8MCxyLnBpdGNoKz1hLnBpdGNoRGVsdGF8fDAsYS5wYW5EZWx0YSYmci5wYW4uX2FkZChhLnBhbkRlbHRhKSxhLmFyb3VuZCYmKHIuYXJvdW5kPWEuYXJvdW5kKSxhLnBpbmNoQXJvdW5kJiYoci5waW5jaEFyb3VuZD1hLnBpbmNoQXJvdW5kKX12YXIgbz10aGlzLl9pbmVydGlhQnVmZmVyW3RoaXMuX2luZXJ0aWFCdWZmZXIubGVuZ3RoLTFdLnRpbWUtdGhpcy5faW5lcnRpYUJ1ZmZlclswXS50aW1lLHM9e307aWYoci5wYW4ubWFnKCkpe3ZhciBsPURuKHIucGFuLm1hZygpLG8sdC5leHRlbmQoe30sTG4sZXx8e30pKTtzLm9mZnNldD1yLnBhbi5tdWx0KGwuYW1vdW50L3IucGFuLm1hZygpKSxzLmNlbnRlcj10aGlzLl9tYXAudHJhbnNmb3JtLmNlbnRlcix6bihzLGwpfWlmKHIuem9vbSl7dmFyIGM9RG4oci56b29tLG8sQ24pO3Muem9vbT10aGlzLl9tYXAudHJhbnNmb3JtLnpvb20rYy5hbW91bnQsem4ocyxjKX1pZihyLmJlYXJpbmcpe3ZhciB1PURuKHIuYmVhcmluZyxvLFBuKTtzLmJlYXJpbmc9dGhpcy5fbWFwLnRyYW5zZm9ybS5iZWFyaW5nK3QuY2xhbXAodS5hbW91bnQsLTE3OSwxNzkpLHpuKHMsdSl9aWYoci5waXRjaCl7dmFyIGY9RG4oci5waXRjaCxvLEluKTtzLnBpdGNoPXRoaXMuX21hcC50cmFuc2Zvcm0ucGl0Y2grZi5hbW91bnQsem4ocyxmKX1pZihzLnpvb218fHMuYmVhcmluZyl7dmFyIGg9dm9pZCAwPT09ci5waW5jaEFyb3VuZD9yLmFyb3VuZDpyLnBpbmNoQXJvdW5kO3MuYXJvdW5kPWg/dGhpcy5fbWFwLnVucHJvamVjdChoKTp0aGlzLl9tYXAuZ2V0Q2VudGVyKCl9cmV0dXJuIHRoaXMuY2xlYXIoKSx0LmV4dGVuZChzLHtub01vdmVTdGFydDohMH0pfX07dmFyIFJuPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIG4obixpLGEsbyl7dm9pZCAwPT09byYmKG89e30pO3ZhciBzPXIubW91c2VQb3MoaS5nZXRDYW52YXNDb250YWluZXIoKSxhKSxsPWkudW5wcm9qZWN0KHMpO2UuY2FsbCh0aGlzLG4sdC5leHRlbmQoe3BvaW50OnMsbG5nTGF0Omwsb3JpZ2luYWxFdmVudDphfSxvKSksdGhpcy5fZGVmYXVsdFByZXZlbnRlZD0hMSx0aGlzLnRhcmdldD1pfWUmJihuLl9fcHJvdG9fXz1lKSxuLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlKSxuLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1uO3ZhciBpPXtkZWZhdWx0UHJldmVudGVkOntjb25maWd1cmFibGU6ITB9fTtyZXR1cm4gbi5wcm90b3R5cGUucHJldmVudERlZmF1bHQ9ZnVuY3Rpb24oKXt0aGlzLl9kZWZhdWx0UHJldmVudGVkPSEwfSxpLmRlZmF1bHRQcmV2ZW50ZWQuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RlZmF1bHRQcmV2ZW50ZWR9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKG4ucHJvdG90eXBlLGkpLG59KHQuRXZlbnQpLEZuPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIG4obixpLGEpe3ZhciBvPSJ0b3VjaGVuZCI9PT1uP2EuY2hhbmdlZFRvdWNoZXM6YS50b3VjaGVzLHM9ci50b3VjaFBvcyhpLmdldENhbnZhc0NvbnRhaW5lcigpLG8pLGw9cy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBpLnVucHJvamVjdCh0KX0pKSxjPXMucmVkdWNlKChmdW5jdGlvbih0LGUscixuKXtyZXR1cm4gdC5hZGQoZS5kaXYobi5sZW5ndGgpKX0pLG5ldyB0LlBvaW50KDAsMCkpLHU9aS51bnByb2plY3QoYyk7ZS5jYWxsKHRoaXMsbix7cG9pbnRzOnMscG9pbnQ6YyxsbmdMYXRzOmwsbG5nTGF0OnUsb3JpZ2luYWxFdmVudDphfSksdGhpcy5fZGVmYXVsdFByZXZlbnRlZD0hMX1lJiYobi5fX3Byb3RvX189ZSksbi5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSksbi5wcm90b3R5cGUuY29uc3RydWN0b3I9bjt2YXIgaT17ZGVmYXVsdFByZXZlbnRlZDp7Y29uZmlndXJhYmxlOiEwfX07cmV0dXJuIG4ucHJvdG90eXBlLnByZXZlbnREZWZhdWx0PWZ1bmN0aW9uKCl7dGhpcy5fZGVmYXVsdFByZXZlbnRlZD0hMH0saS5kZWZhdWx0UHJldmVudGVkLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZWZhdWx0UHJldmVudGVkfSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhuLnByb3RvdHlwZSxpKSxufSh0LkV2ZW50KSxCbj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUscixuKXt0LmNhbGwodGhpcyxlLHtvcmlnaW5hbEV2ZW50Om59KSx0aGlzLl9kZWZhdWx0UHJldmVudGVkPSExfXQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lO3ZhciByPXtkZWZhdWx0UHJldmVudGVkOntjb25maWd1cmFibGU6ITB9fTtyZXR1cm4gZS5wcm90b3R5cGUucHJldmVudERlZmF1bHQ9ZnVuY3Rpb24oKXt0aGlzLl9kZWZhdWx0UHJldmVudGVkPSEwfSxyLmRlZmF1bHRQcmV2ZW50ZWQuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RlZmF1bHRQcmV2ZW50ZWR9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUucHJvdG90eXBlLHIpLGV9KHQuRXZlbnQpLE5uPWZ1bmN0aW9uKHQsZSl7dGhpcy5fbWFwPXQsdGhpcy5fY2xpY2tUb2xlcmFuY2U9ZS5jbGlja1RvbGVyYW5jZX07Tm4ucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXMuX21vdXNlZG93blBvc30sTm4ucHJvdG90eXBlLndoZWVsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9maXJlUHJldmVudGFibGUobmV3IEJuKHQudHlwZSx0aGlzLl9tYXAsdCkpfSxObi5wcm90b3R5cGUubW91c2Vkb3duPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX21vdXNlZG93blBvcz1lLHRoaXMuX2ZpcmVQcmV2ZW50YWJsZShuZXcgUm4odC50eXBlLHRoaXMuX21hcCx0KSl9LE5uLnByb3RvdHlwZS5tb3VzZXVwPWZ1bmN0aW9uKHQpe3RoaXMuX21hcC5maXJlKG5ldyBSbih0LnR5cGUsdGhpcy5fbWFwLHQpKX0sTm4ucHJvdG90eXBlLmNsaWNrPWZ1bmN0aW9uKHQsZSl7dGhpcy5fbW91c2Vkb3duUG9zJiZ0aGlzLl9tb3VzZWRvd25Qb3MuZGlzdChlKT49dGhpcy5fY2xpY2tUb2xlcmFuY2V8fHRoaXMuX21hcC5maXJlKG5ldyBSbih0LnR5cGUsdGhpcy5fbWFwLHQpKX0sTm4ucHJvdG90eXBlLmRibGNsaWNrPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9maXJlUHJldmVudGFibGUobmV3IFJuKHQudHlwZSx0aGlzLl9tYXAsdCkpfSxObi5wcm90b3R5cGUubW91c2VvdmVyPWZ1bmN0aW9uKHQpe3RoaXMuX21hcC5maXJlKG5ldyBSbih0LnR5cGUsdGhpcy5fbWFwLHQpKX0sTm4ucHJvdG90eXBlLm1vdXNlb3V0PWZ1bmN0aW9uKHQpe3RoaXMuX21hcC5maXJlKG5ldyBSbih0LnR5cGUsdGhpcy5fbWFwLHQpKX0sTm4ucHJvdG90eXBlLnRvdWNoc3RhcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2ZpcmVQcmV2ZW50YWJsZShuZXcgRm4odC50eXBlLHRoaXMuX21hcCx0KSl9LE5uLnByb3RvdHlwZS50b3VjaG1vdmU9ZnVuY3Rpb24odCl7dGhpcy5fbWFwLmZpcmUobmV3IEZuKHQudHlwZSx0aGlzLl9tYXAsdCkpfSxObi5wcm90b3R5cGUudG91Y2hlbmQ9ZnVuY3Rpb24odCl7dGhpcy5fbWFwLmZpcmUobmV3IEZuKHQudHlwZSx0aGlzLl9tYXAsdCkpfSxObi5wcm90b3R5cGUudG91Y2hjYW5jZWw9ZnVuY3Rpb24odCl7dGhpcy5fbWFwLmZpcmUobmV3IEZuKHQudHlwZSx0aGlzLl9tYXAsdCkpfSxObi5wcm90b3R5cGUuX2ZpcmVQcmV2ZW50YWJsZT1mdW5jdGlvbih0KXtpZih0aGlzLl9tYXAuZmlyZSh0KSx0LmRlZmF1bHRQcmV2ZW50ZWQpcmV0dXJue319LE5uLnByb3RvdHlwZS5pc0VuYWJsZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sTm4ucHJvdG90eXBlLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuITF9LE5uLnByb3RvdHlwZS5lbmFibGU9ZnVuY3Rpb24oKXt9LE5uLnByb3RvdHlwZS5kaXNhYmxlPWZ1bmN0aW9uKCl7fTt2YXIgam49ZnVuY3Rpb24odCl7dGhpcy5fbWFwPXR9O2puLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuX2RlbGF5Q29udGV4dE1lbnU9ITEsZGVsZXRlIHRoaXMuX2NvbnRleHRNZW51RXZlbnR9LGpuLnByb3RvdHlwZS5tb3VzZW1vdmU9ZnVuY3Rpb24odCl7dGhpcy5fbWFwLmZpcmUobmV3IFJuKHQudHlwZSx0aGlzLl9tYXAsdCkpfSxqbi5wcm90b3R5cGUubW91c2Vkb3duPWZ1bmN0aW9uKCl7dGhpcy5fZGVsYXlDb250ZXh0TWVudT0hMH0sam4ucHJvdG90eXBlLm1vdXNldXA9ZnVuY3Rpb24oKXt0aGlzLl9kZWxheUNvbnRleHRNZW51PSExLHRoaXMuX2NvbnRleHRNZW51RXZlbnQmJih0aGlzLl9tYXAuZmlyZShuZXcgUm4oImNvbnRleHRtZW51Iix0aGlzLl9tYXAsdGhpcy5fY29udGV4dE1lbnVFdmVudCkpLGRlbGV0ZSB0aGlzLl9jb250ZXh0TWVudUV2ZW50KX0sam4ucHJvdG90eXBlLmNvbnRleHRtZW51PWZ1bmN0aW9uKHQpe3RoaXMuX2RlbGF5Q29udGV4dE1lbnU/dGhpcy5fY29udGV4dE1lbnVFdmVudD10OnRoaXMuX21hcC5maXJlKG5ldyBSbih0LnR5cGUsdGhpcy5fbWFwLHQpKSx0aGlzLl9tYXAubGlzdGVucygiY29udGV4dG1lbnUiKSYmdC5wcmV2ZW50RGVmYXVsdCgpfSxqbi5wcm90b3R5cGUuaXNFbmFibGVkPWZ1bmN0aW9uKCl7cmV0dXJuITB9LGpuLnByb3RvdHlwZS5pc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiExfSxqbi5wcm90b3R5cGUuZW5hYmxlPWZ1bmN0aW9uKCl7fSxqbi5wcm90b3R5cGUuZGlzYWJsZT1mdW5jdGlvbigpe307dmFyIFVuPWZ1bmN0aW9uKHQsZSl7dGhpcy5fbWFwPXQsdGhpcy5fZWw9dC5nZXRDYW52YXNDb250YWluZXIoKSx0aGlzLl9jb250YWluZXI9dC5nZXRDb250YWluZXIoKSx0aGlzLl9jbGlja1RvbGVyYW5jZT1lLmNsaWNrVG9sZXJhbmNlfHwxfTtmdW5jdGlvbiBWbih0LGUpe2Zvcih2YXIgcj17fSxuPTA7bjx0Lmxlbmd0aDtuKyspclt0W25dLmlkZW50aWZpZXJdPWVbbl07cmV0dXJuIHJ9VW4ucHJvdG90eXBlLmlzRW5hYmxlZD1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5fZW5hYmxlZH0sVW4ucHJvdG90eXBlLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLl9hY3RpdmV9LFVuLnByb3RvdHlwZS5lbmFibGU9ZnVuY3Rpb24oKXt0aGlzLmlzRW5hYmxlZCgpfHwodGhpcy5fZW5hYmxlZD0hMCl9LFVuLnByb3RvdHlwZS5kaXNhYmxlPWZ1bmN0aW9uKCl7dGhpcy5pc0VuYWJsZWQoKSYmKHRoaXMuX2VuYWJsZWQ9ITEpfSxVbi5wcm90b3R5cGUubW91c2Vkb3duPWZ1bmN0aW9uKHQsZSl7dGhpcy5pc0VuYWJsZWQoKSYmdC5zaGlmdEtleSYmMD09PXQuYnV0dG9uJiYoci5kaXNhYmxlRHJhZygpLHRoaXMuX3N0YXJ0UG9zPXRoaXMuX2xhc3RQb3M9ZSx0aGlzLl9hY3RpdmU9ITApfSxVbi5wcm90b3R5cGUubW91c2Vtb3ZlV2luZG93PWZ1bmN0aW9uKHQsZSl7aWYodGhpcy5fYWN0aXZlKXt2YXIgbj1lO2lmKCEodGhpcy5fbGFzdFBvcy5lcXVhbHMobil8fCF0aGlzLl9ib3gmJm4uZGlzdCh0aGlzLl9zdGFydFBvcyk8dGhpcy5fY2xpY2tUb2xlcmFuY2UpKXt2YXIgaT10aGlzLl9zdGFydFBvczt0aGlzLl9sYXN0UG9zPW4sdGhpcy5fYm94fHwodGhpcy5fYm94PXIuY3JlYXRlKCJkaXYiLCJtYXBib3hnbC1ib3h6b29tIix0aGlzLl9jb250YWluZXIpLHRoaXMuX2NvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJtYXBib3hnbC1jcm9zc2hhaXIiKSx0aGlzLl9maXJlRXZlbnQoImJveHpvb21zdGFydCIsdCkpO3ZhciBhPU1hdGgubWluKGkueCxuLngpLG89TWF0aC5tYXgoaS54LG4ueCkscz1NYXRoLm1pbihpLnksbi55KSxsPU1hdGgubWF4KGkueSxuLnkpO3Iuc2V0VHJhbnNmb3JtKHRoaXMuX2JveCwidHJhbnNsYXRlKCIrYSsicHgsIitzKyJweCkiKSx0aGlzLl9ib3guc3R5bGUud2lkdGg9by1hKyJweCIsdGhpcy5fYm94LnN0eWxlLmhlaWdodD1sLXMrInB4In19fSxVbi5wcm90b3R5cGUubW91c2V1cFdpbmRvdz1mdW5jdGlvbihlLG4pe3ZhciBpPXRoaXM7aWYodGhpcy5fYWN0aXZlJiYwPT09ZS5idXR0b24pe3ZhciBhPXRoaXMuX3N0YXJ0UG9zLG89bjtpZih0aGlzLnJlc2V0KCksci5zdXBwcmVzc0NsaWNrKCksYS54IT09by54fHxhLnkhPT1vLnkpcmV0dXJuIHRoaXMuX21hcC5maXJlKG5ldyB0LkV2ZW50KCJib3h6b29tZW5kIix7b3JpZ2luYWxFdmVudDplfSkpLHtjYW1lcmFBbmltYXRpb246ZnVuY3Rpb24odCl7cmV0dXJuIHQuZml0U2NyZWVuQ29vcmRpbmF0ZXMoYSxvLGkuX21hcC5nZXRCZWFyaW5nKCkse2xpbmVhcjohMH0pfX07dGhpcy5fZmlyZUV2ZW50KCJib3h6b29tY2FuY2VsIixlKX19LFVuLnByb3RvdHlwZS5rZXlkb3duPWZ1bmN0aW9uKHQpe3RoaXMuX2FjdGl2ZSYmMjc9PT10LmtleUNvZGUmJih0aGlzLnJlc2V0KCksdGhpcy5fZmlyZUV2ZW50KCJib3h6b29tY2FuY2VsIix0KSl9LFVuLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuX2FjdGl2ZT0hMSx0aGlzLl9jb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSgibWFwYm94Z2wtY3Jvc3NoYWlyIiksdGhpcy5fYm94JiYoci5yZW1vdmUodGhpcy5fYm94KSx0aGlzLl9ib3g9bnVsbCksci5lbmFibGVEcmFnKCksZGVsZXRlIHRoaXMuX3N0YXJ0UG9zLGRlbGV0ZSB0aGlzLl9sYXN0UG9zfSxVbi5wcm90b3R5cGUuX2ZpcmVFdmVudD1mdW5jdGlvbihlLHIpe3JldHVybiB0aGlzLl9tYXAuZmlyZShuZXcgdC5FdmVudChlLHtvcmlnaW5hbEV2ZW50OnJ9KSl9O3ZhciBIbj1mdW5jdGlvbih0KXt0aGlzLnJlc2V0KCksdGhpcy5udW1Ub3VjaGVzPXQubnVtVG91Y2hlc307SG4ucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXMuY2VudHJvaWQsZGVsZXRlIHRoaXMuc3RhcnRUaW1lLGRlbGV0ZSB0aGlzLnRvdWNoZXMsdGhpcy5hYm9ydGVkPSExfSxIbi5wcm90b3R5cGUudG91Y2hzdGFydD1mdW5jdGlvbihlLHIsbil7KHRoaXMuY2VudHJvaWR8fG4ubGVuZ3RoPnRoaXMubnVtVG91Y2hlcykmJih0aGlzLmFib3J0ZWQ9ITApLHRoaXMuYWJvcnRlZHx8KHZvaWQgMD09PXRoaXMuc3RhcnRUaW1lJiYodGhpcy5zdGFydFRpbWU9ZS50aW1lU3RhbXApLG4ubGVuZ3RoPT09dGhpcy5udW1Ub3VjaGVzJiYodGhpcy5jZW50cm9pZD1mdW5jdGlvbihlKXtmb3IodmFyIHI9bmV3IHQuUG9pbnQoMCwwKSxuPTAsaT1lO248aS5sZW5ndGg7bis9MSl7dmFyIGE9aVtuXTtyLl9hZGQoYSl9cmV0dXJuIHIuZGl2KGUubGVuZ3RoKX0ociksdGhpcy50b3VjaGVzPVZuKG4scikpKX0sSG4ucHJvdG90eXBlLnRvdWNobW92ZT1mdW5jdGlvbih0LGUscil7aWYoIXRoaXMuYWJvcnRlZCYmdGhpcy5jZW50cm9pZCl7dmFyIG49Vm4ocixlKTtmb3IodmFyIGkgaW4gdGhpcy50b3VjaGVzKXt2YXIgYT10aGlzLnRvdWNoZXNbaV0sbz1uW2ldOyghb3x8by5kaXN0KGEpPjMwKSYmKHRoaXMuYWJvcnRlZD0hMCl9fX0sSG4ucHJvdG90eXBlLnRvdWNoZW5kPWZ1bmN0aW9uKHQsZSxyKXtpZigoIXRoaXMuY2VudHJvaWR8fHQudGltZVN0YW1wLXRoaXMuc3RhcnRUaW1lPjUwMCkmJih0aGlzLmFib3J0ZWQ9ITApLDA9PT1yLmxlbmd0aCl7dmFyIG49IXRoaXMuYWJvcnRlZCYmdGhpcy5jZW50cm9pZDtpZih0aGlzLnJlc2V0KCksbilyZXR1cm4gbn19O3ZhciBxbj1mdW5jdGlvbih0KXt0aGlzLnNpbmdsZVRhcD1uZXcgSG4odCksdGhpcy5udW1UYXBzPXQubnVtVGFwcyx0aGlzLnJlc2V0KCl9O3FuLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMubGFzdFRpbWU9MS8wLGRlbGV0ZSB0aGlzLmxhc3RUYXAsdGhpcy5jb3VudD0wLHRoaXMuc2luZ2xlVGFwLnJlc2V0KCl9LHFuLnByb3RvdHlwZS50b3VjaHN0YXJ0PWZ1bmN0aW9uKHQsZSxyKXt0aGlzLnNpbmdsZVRhcC50b3VjaHN0YXJ0KHQsZSxyKX0scW4ucHJvdG90eXBlLnRvdWNobW92ZT1mdW5jdGlvbih0LGUscil7dGhpcy5zaW5nbGVUYXAudG91Y2htb3ZlKHQsZSxyKX0scW4ucHJvdG90eXBlLnRvdWNoZW5kPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLnNpbmdsZVRhcC50b3VjaGVuZCh0LGUscik7aWYobil7dmFyIGk9dC50aW1lU3RhbXAtdGhpcy5sYXN0VGltZTw1MDAsYT0hdGhpcy5sYXN0VGFwfHx0aGlzLmxhc3RUYXAuZGlzdChuKTwzMDtpZihpJiZhfHx0aGlzLnJlc2V0KCksdGhpcy5jb3VudCsrLHRoaXMubGFzdFRpbWU9dC50aW1lU3RhbXAsdGhpcy5sYXN0VGFwPW4sdGhpcy5jb3VudD09PXRoaXMubnVtVGFwcylyZXR1cm4gdGhpcy5yZXNldCgpLG59fTt2YXIgR249ZnVuY3Rpb24oKXt0aGlzLl96b29tSW49bmV3IHFuKHtudW1Ub3VjaGVzOjEsbnVtVGFwczoyfSksdGhpcy5fem9vbU91dD1uZXcgcW4oe251bVRvdWNoZXM6MixudW1UYXBzOjF9KSx0aGlzLnJlc2V0KCl9O0duLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuX2FjdGl2ZT0hMSx0aGlzLl96b29tSW4ucmVzZXQoKSx0aGlzLl96b29tT3V0LnJlc2V0KCl9LEduLnByb3RvdHlwZS50b3VjaHN0YXJ0PWZ1bmN0aW9uKHQsZSxyKXt0aGlzLl96b29tSW4udG91Y2hzdGFydCh0LGUsciksdGhpcy5fem9vbU91dC50b3VjaHN0YXJ0KHQsZSxyKX0sR24ucHJvdG90eXBlLnRvdWNobW92ZT1mdW5jdGlvbih0LGUscil7dGhpcy5fem9vbUluLnRvdWNobW92ZSh0LGUsciksdGhpcy5fem9vbU91dC50b3VjaG1vdmUodCxlLHIpfSxHbi5wcm90b3R5cGUudG91Y2hlbmQ9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMsaT10aGlzLl96b29tSW4udG91Y2hlbmQodCxlLHIpLGE9dGhpcy5fem9vbU91dC50b3VjaGVuZCh0LGUscik7cmV0dXJuIGk/KHRoaXMuX2FjdGl2ZT0hMCx0LnByZXZlbnREZWZhdWx0KCksc2V0VGltZW91dCgoZnVuY3Rpb24oKXtyZXR1cm4gbi5yZXNldCgpfSksMCkse2NhbWVyYUFuaW1hdGlvbjpmdW5jdGlvbihlKXtyZXR1cm4gZS5lYXNlVG8oe2R1cmF0aW9uOjMwMCx6b29tOmUuZ2V0Wm9vbSgpKzEsYXJvdW5kOmUudW5wcm9qZWN0KGkpfSx7b3JpZ2luYWxFdmVudDp0fSl9fSk6YT8odGhpcy5fYWN0aXZlPSEwLHQucHJldmVudERlZmF1bHQoKSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe3JldHVybiBuLnJlc2V0KCl9KSwwKSx7Y2FtZXJhQW5pbWF0aW9uOmZ1bmN0aW9uKGUpe3JldHVybiBlLmVhc2VUbyh7ZHVyYXRpb246MzAwLHpvb206ZS5nZXRab29tKCktMSxhcm91bmQ6ZS51bnByb2plY3QoYSl9LHtvcmlnaW5hbEV2ZW50OnR9KX19KTp2b2lkIDB9LEduLnByb3RvdHlwZS50b3VjaGNhbmNlbD1mdW5jdGlvbigpe3RoaXMucmVzZXQoKX0sR24ucHJvdG90eXBlLmVuYWJsZT1mdW5jdGlvbigpe3RoaXMuX2VuYWJsZWQ9ITB9LEduLnByb3RvdHlwZS5kaXNhYmxlPWZ1bmN0aW9uKCl7dGhpcy5fZW5hYmxlZD0hMSx0aGlzLnJlc2V0KCl9LEduLnByb3RvdHlwZS5pc0VuYWJsZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZW5hYmxlZH0sR24ucHJvdG90eXBlLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FjdGl2ZX07dmFyIFluPWZ1bmN0aW9uKHQpe3RoaXMucmVzZXQoKSx0aGlzLl9jbGlja1RvbGVyYW5jZT10LmNsaWNrVG9sZXJhbmNlfHwxfTtZbi5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLl9hY3RpdmU9ITEsdGhpcy5fbW92ZWQ9ITEsZGVsZXRlIHRoaXMuX2xhc3RQb2ludCxkZWxldGUgdGhpcy5fZXZlbnRCdXR0b259LFluLnByb3RvdHlwZS5fY29ycmVjdEJ1dHRvbj1mdW5jdGlvbih0LGUpe3JldHVybiExfSxZbi5wcm90b3R5cGUuX21vdmU9ZnVuY3Rpb24odCxlKXtyZXR1cm57fX0sWW4ucHJvdG90eXBlLm1vdXNlZG93bj1mdW5jdGlvbih0LGUpe2lmKCF0aGlzLl9sYXN0UG9pbnQpe3ZhciBuPXIubW91c2VCdXR0b24odCk7dGhpcy5fY29ycmVjdEJ1dHRvbih0LG4pJiYodGhpcy5fbGFzdFBvaW50PWUsdGhpcy5fZXZlbnRCdXR0b249bil9fSxZbi5wcm90b3R5cGUubW91c2Vtb3ZlV2luZG93PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fbGFzdFBvaW50O2lmKHImJih0LnByZXZlbnREZWZhdWx0KCksdGhpcy5fbW92ZWR8fCEoZS5kaXN0KHIpPHRoaXMuX2NsaWNrVG9sZXJhbmNlKSkpcmV0dXJuIHRoaXMuX21vdmVkPSEwLHRoaXMuX2xhc3RQb2ludD1lLHRoaXMuX21vdmUocixlKX0sWW4ucHJvdG90eXBlLm1vdXNldXBXaW5kb3c9ZnVuY3Rpb24odCl7ci5tb3VzZUJ1dHRvbih0KT09PXRoaXMuX2V2ZW50QnV0dG9uJiYodGhpcy5fbW92ZWQmJnIuc3VwcHJlc3NDbGljaygpLHRoaXMucmVzZXQoKSl9LFluLnByb3RvdHlwZS5lbmFibGU9ZnVuY3Rpb24oKXt0aGlzLl9lbmFibGVkPSEwfSxZbi5wcm90b3R5cGUuZGlzYWJsZT1mdW5jdGlvbigpe3RoaXMuX2VuYWJsZWQ9ITEsdGhpcy5yZXNldCgpfSxZbi5wcm90b3R5cGUuaXNFbmFibGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2VuYWJsZWR9LFluLnByb3RvdHlwZS5pc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hY3RpdmV9O3ZhciBXbj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLm1vdXNlZG93bj1mdW5jdGlvbihlLHIpe3QucHJvdG90eXBlLm1vdXNlZG93bi5jYWxsKHRoaXMsZSxyKSx0aGlzLl9sYXN0UG9pbnQmJih0aGlzLl9hY3RpdmU9ITApfSxlLnByb3RvdHlwZS5fY29ycmVjdEJ1dHRvbj1mdW5jdGlvbih0LGUpe3JldHVybiAwPT09ZSYmIXQuY3RybEtleX0sZS5wcm90b3R5cGUuX21vdmU9ZnVuY3Rpb24odCxlKXtyZXR1cm57YXJvdW5kOmUscGFuRGVsdGE6ZS5zdWIodCl9fSxlfShZbiksWG49ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5fY29ycmVjdEJ1dHRvbj1mdW5jdGlvbih0LGUpe3JldHVybiAwPT09ZSYmdC5jdHJsS2V5fHwyPT09ZX0sZS5wcm90b3R5cGUuX21vdmU9ZnVuY3Rpb24odCxlKXt2YXIgcj0uOCooZS54LXQueCk7aWYocilyZXR1cm4gdGhpcy5fYWN0aXZlPSEwLHtiZWFyaW5nRGVsdGE6cn19LGUucHJvdG90eXBlLmNvbnRleHRtZW51PWZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKX0sZX0oWW4pLFpuPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuX2NvcnJlY3RCdXR0b249ZnVuY3Rpb24odCxlKXtyZXR1cm4gMD09PWUmJnQuY3RybEtleXx8Mj09PWV9LGUucHJvdG90eXBlLl9tb3ZlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9LS41KihlLnktdC55KTtpZihyKXJldHVybiB0aGlzLl9hY3RpdmU9ITAse3BpdGNoRGVsdGE6cn19LGUucHJvdG90eXBlLmNvbnRleHRtZW51PWZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKX0sZX0oWW4pLEpuPWZ1bmN0aW9uKHQpe3RoaXMuX21pblRvdWNoZXM9MSx0aGlzLl9jbGlja1RvbGVyYW5jZT10LmNsaWNrVG9sZXJhbmNlfHwxLHRoaXMucmVzZXQoKX07Sm4ucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5fYWN0aXZlPSExLHRoaXMuX3RvdWNoZXM9e30sdGhpcy5fc3VtPW5ldyB0LlBvaW50KDAsMCl9LEpuLnByb3RvdHlwZS50b3VjaHN0YXJ0PWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdGhpcy5fY2FsY3VsYXRlVHJhbnNmb3JtKHQsZSxyKX0sSm4ucHJvdG90eXBlLnRvdWNobW92ZT1mdW5jdGlvbih0LGUscil7aWYodGhpcy5fYWN0aXZlKXJldHVybiB0LnByZXZlbnREZWZhdWx0KCksdGhpcy5fY2FsY3VsYXRlVHJhbnNmb3JtKHQsZSxyKX0sSm4ucHJvdG90eXBlLnRvdWNoZW5kPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLl9jYWxjdWxhdGVUcmFuc2Zvcm0odCxlLHIpLHRoaXMuX2FjdGl2ZSYmci5sZW5ndGg8dGhpcy5fbWluVG91Y2hlcyYmdGhpcy5yZXNldCgpfSxKbi5wcm90b3R5cGUudG91Y2hjYW5jZWw9ZnVuY3Rpb24oKXt0aGlzLnJlc2V0KCl9LEpuLnByb3RvdHlwZS5fY2FsY3VsYXRlVHJhbnNmb3JtPWZ1bmN0aW9uKGUscixuKXtuLmxlbmd0aD4wJiYodGhpcy5fYWN0aXZlPSEwKTt2YXIgaT1WbihuLHIpLGE9bmV3IHQuUG9pbnQoMCwwKSxvPW5ldyB0LlBvaW50KDAsMCkscz0wO2Zvcih2YXIgbCBpbiBpKXt2YXIgYz1pW2xdLHU9dGhpcy5fdG91Y2hlc1tsXTt1JiYoYS5fYWRkKGMpLG8uX2FkZChjLnN1Yih1KSkscysrLGlbbF09Yyl9aWYodGhpcy5fdG91Y2hlcz1pLCEoczx0aGlzLl9taW5Ub3VjaGVzKSYmby5tYWcoKSl7dmFyIGY9by5kaXYocyk7aWYodGhpcy5fc3VtLl9hZGQoZiksISh0aGlzLl9zdW0ubWFnKCk8dGhpcy5fY2xpY2tUb2xlcmFuY2UpKXJldHVybnthcm91bmQ6YS5kaXYocykscGFuRGVsdGE6Zn19fSxKbi5wcm90b3R5cGUuZW5hYmxlPWZ1bmN0aW9uKCl7dGhpcy5fZW5hYmxlZD0hMH0sSm4ucHJvdG90eXBlLmRpc2FibGU9ZnVuY3Rpb24oKXt0aGlzLl9lbmFibGVkPSExLHRoaXMucmVzZXQoKX0sSm4ucHJvdG90eXBlLmlzRW5hYmxlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9lbmFibGVkfSxKbi5wcm90b3R5cGUuaXNBY3RpdmU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYWN0aXZlfTt2YXIgS249ZnVuY3Rpb24oKXt0aGlzLnJlc2V0KCl9O2Z1bmN0aW9uIFFuKHQsZSxyKXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKylpZih0W25dLmlkZW50aWZpZXI9PT1yKXJldHVybiBlW25dfUtuLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuX2FjdGl2ZT0hMSxkZWxldGUgdGhpcy5fZmlyc3RUd29Ub3VjaGVzfSxLbi5wcm90b3R5cGUuX3N0YXJ0PWZ1bmN0aW9uKHQpe30sS24ucHJvdG90eXBlLl9tb3ZlPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm57fX0sS24ucHJvdG90eXBlLnRvdWNoc3RhcnQ9ZnVuY3Rpb24odCxlLHIpe3RoaXMuX2ZpcnN0VHdvVG91Y2hlc3x8ci5sZW5ndGg8Mnx8KHRoaXMuX2ZpcnN0VHdvVG91Y2hlcz1bclswXS5pZGVudGlmaWVyLHJbMV0uaWRlbnRpZmllcl0sdGhpcy5fc3RhcnQoW2VbMF0sZVsxXV0pKX0sS24ucHJvdG90eXBlLnRvdWNobW92ZT1mdW5jdGlvbih0LGUscil7aWYodGhpcy5fZmlyc3RUd29Ub3VjaGVzKXt0LnByZXZlbnREZWZhdWx0KCk7dmFyIG49dGhpcy5fZmlyc3RUd29Ub3VjaGVzLGk9blswXSxhPW5bMV0sbz1RbihyLGUsaSkscz1RbihyLGUsYSk7aWYobyYmcyl7dmFyIGw9dGhpcy5fYXJvdW5kQ2VudGVyP251bGw6by5hZGQocykuZGl2KDIpO3JldHVybiB0aGlzLl9tb3ZlKFtvLHNdLGwsdCl9fX0sS24ucHJvdG90eXBlLnRvdWNoZW5kPWZ1bmN0aW9uKHQsZSxuKXtpZih0aGlzLl9maXJzdFR3b1RvdWNoZXMpe3ZhciBpPXRoaXMuX2ZpcnN0VHdvVG91Y2hlcyxhPWlbMF0sbz1pWzFdLHM9UW4obixlLGEpLGw9UW4obixlLG8pO3MmJmx8fCh0aGlzLl9hY3RpdmUmJnIuc3VwcHJlc3NDbGljaygpLHRoaXMucmVzZXQoKSl9fSxLbi5wcm90b3R5cGUudG91Y2hjYW5jZWw9ZnVuY3Rpb24oKXt0aGlzLnJlc2V0KCl9LEtuLnByb3RvdHlwZS5lbmFibGU9ZnVuY3Rpb24odCl7dGhpcy5fZW5hYmxlZD0hMCx0aGlzLl9hcm91bmRDZW50ZXI9ISF0JiYiY2VudGVyIj09PXQuYXJvdW5kfSxLbi5wcm90b3R5cGUuZGlzYWJsZT1mdW5jdGlvbigpe3RoaXMuX2VuYWJsZWQ9ITEsdGhpcy5yZXNldCgpfSxLbi5wcm90b3R5cGUuaXNFbmFibGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2VuYWJsZWR9LEtuLnByb3RvdHlwZS5pc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hY3RpdmV9O2Z1bmN0aW9uICRuKHQsZSl7cmV0dXJuIE1hdGgubG9nKHQvZSkvTWF0aC5MTjJ9dmFyIHRpPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5yZXNldC5jYWxsKHRoaXMpLGRlbGV0ZSB0aGlzLl9kaXN0YW5jZSxkZWxldGUgdGhpcy5fc3RhcnREaXN0YW5jZX0sZS5wcm90b3R5cGUuX3N0YXJ0PWZ1bmN0aW9uKHQpe3RoaXMuX3N0YXJ0RGlzdGFuY2U9dGhpcy5fZGlzdGFuY2U9dFswXS5kaXN0KHRbMV0pfSxlLnByb3RvdHlwZS5fbW92ZT1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuX2Rpc3RhbmNlO2lmKHRoaXMuX2Rpc3RhbmNlPXRbMF0uZGlzdCh0WzFdKSx0aGlzLl9hY3RpdmV8fCEoTWF0aC5hYnMoJG4odGhpcy5fZGlzdGFuY2UsdGhpcy5fc3RhcnREaXN0YW5jZSkpPC4xKSlyZXR1cm4gdGhpcy5fYWN0aXZlPSEwLHt6b29tRGVsdGE6JG4odGhpcy5fZGlzdGFuY2UscikscGluY2hBcm91bmQ6ZX19LGV9KEtuKTtmdW5jdGlvbiBlaSh0LGUpe3JldHVybiAxODAqdC5hbmdsZVdpdGgoZSkvTWF0aC5QSX12YXIgcmk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlc2V0LmNhbGwodGhpcyksZGVsZXRlIHRoaXMuX21pbkRpYW1ldGVyLGRlbGV0ZSB0aGlzLl9zdGFydFZlY3RvcixkZWxldGUgdGhpcy5fdmVjdG9yfSxlLnByb3RvdHlwZS5fc3RhcnQ9ZnVuY3Rpb24odCl7dGhpcy5fc3RhcnRWZWN0b3I9dGhpcy5fdmVjdG9yPXRbMF0uc3ViKHRbMV0pLHRoaXMuX21pbkRpYW1ldGVyPXRbMF0uZGlzdCh0WzFdKX0sZS5wcm90b3R5cGUuX21vdmU9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLl92ZWN0b3I7aWYodGhpcy5fdmVjdG9yPXRbMF0uc3ViKHRbMV0pLHRoaXMuX2FjdGl2ZXx8IXRoaXMuX2lzQmVsb3dUaHJlc2hvbGQodGhpcy5fdmVjdG9yKSlyZXR1cm4gdGhpcy5fYWN0aXZlPSEwLHtiZWFyaW5nRGVsdGE6ZWkodGhpcy5fdmVjdG9yLHIpLHBpbmNoQXJvdW5kOmV9fSxlLnByb3RvdHlwZS5faXNCZWxvd1RocmVzaG9sZD1mdW5jdGlvbih0KXt0aGlzLl9taW5EaWFtZXRlcj1NYXRoLm1pbih0aGlzLl9taW5EaWFtZXRlcix0Lm1hZygpKTt2YXIgZT0yNS8oTWF0aC5QSSp0aGlzLl9taW5EaWFtZXRlcikqMzYwLHI9ZWkodCx0aGlzLl9zdGFydFZlY3Rvcik7cmV0dXJuIE1hdGguYWJzKHIpPGV9LGV9KEtuKTtmdW5jdGlvbiBuaSh0KXtyZXR1cm4gTWF0aC5hYnModC55KT5NYXRoLmFicyh0LngpfXZhciBpaT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUucmVzZXQuY2FsbCh0aGlzKSx0aGlzLl92YWxpZD12b2lkIDAsZGVsZXRlIHRoaXMuX2ZpcnN0TW92ZSxkZWxldGUgdGhpcy5fbGFzdFBvaW50c30sZS5wcm90b3R5cGUuX3N0YXJ0PWZ1bmN0aW9uKHQpe3RoaXMuX2xhc3RQb2ludHM9dCxuaSh0WzBdLnN1Yih0WzFdKSkmJih0aGlzLl92YWxpZD0hMSl9LGUucHJvdG90eXBlLl9tb3ZlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10WzBdLnN1Yih0aGlzLl9sYXN0UG9pbnRzWzBdKSxpPXRbMV0uc3ViKHRoaXMuX2xhc3RQb2ludHNbMV0pO2lmKHRoaXMuX3ZhbGlkPXRoaXMuZ2VzdHVyZUJlZ2luc1ZlcnRpY2FsbHkobixpLHIudGltZVN0YW1wKSx0aGlzLl92YWxpZCl7dGhpcy5fbGFzdFBvaW50cz10LHRoaXMuX2FjdGl2ZT0hMDtyZXR1cm57cGl0Y2hEZWx0YTotLjUqKChuLnkraS55KS8yKX19fSxlLnByb3RvdHlwZS5nZXN0dXJlQmVnaW5zVmVydGljYWxseT1mdW5jdGlvbih0LGUscil7aWYodm9pZCAwIT09dGhpcy5fdmFsaWQpcmV0dXJuIHRoaXMuX3ZhbGlkO3ZhciBuPXQubWFnKCk+PTIsaT1lLm1hZygpPj0yO2lmKG58fGkpe2lmKCFufHwhaSlyZXR1cm4gdm9pZCAwPT09dGhpcy5fZmlyc3RNb3ZlJiYodGhpcy5fZmlyc3RNb3ZlPXIpLHItdGhpcy5fZmlyc3RNb3ZlPDEwMCYmdm9pZCAwO3ZhciBhPXQueT4wPT1lLnk+MDtyZXR1cm4gbmkodCkmJm5pKGUpJiZhfX0sZX0oS24pLGFpPXtwYW5TdGVwOjEwMCxiZWFyaW5nU3RlcDoxNSxwaXRjaFN0ZXA6MTB9LG9pPWZ1bmN0aW9uKCl7dmFyIHQ9YWk7dGhpcy5fcGFuU3RlcD10LnBhblN0ZXAsdGhpcy5fYmVhcmluZ1N0ZXA9dC5iZWFyaW5nU3RlcCx0aGlzLl9waXRjaFN0ZXA9dC5waXRjaFN0ZXB9O2Z1bmN0aW9uIHNpKHQpe3JldHVybiB0KigyLXQpfW9pLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuX2FjdGl2ZT0hMX0sb2kucHJvdG90eXBlLmtleWRvd249ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZighKHQuYWx0S2V5fHx0LmN0cmxLZXl8fHQubWV0YUtleSkpe3ZhciByPTAsbj0wLGk9MCxhPTAsbz0wO3N3aXRjaCh0LmtleUNvZGUpe2Nhc2UgNjE6Y2FzZSAxMDc6Y2FzZSAxNzE6Y2FzZSAxODc6cj0xO2JyZWFrO2Nhc2UgMTg5OmNhc2UgMTA5OmNhc2UgMTczOnI9LTE7YnJlYWs7Y2FzZSAzNzp0LnNoaWZ0S2V5P249LTE6KHQucHJldmVudERlZmF1bHQoKSxhPS0xKTticmVhaztjYXNlIDM5OnQuc2hpZnRLZXk/bj0xOih0LnByZXZlbnREZWZhdWx0KCksYT0xKTticmVhaztjYXNlIDM4OnQuc2hpZnRLZXk/aT0xOih0LnByZXZlbnREZWZhdWx0KCksbz0tMSk7YnJlYWs7Y2FzZSA0MDp0LnNoaWZ0S2V5P2k9LTE6KHQucHJldmVudERlZmF1bHQoKSxvPTEpO2JyZWFrO2RlZmF1bHQ6cmV0dXJufXJldHVybntjYW1lcmFBbmltYXRpb246ZnVuY3Rpb24ocyl7dmFyIGw9cy5nZXRab29tKCk7cy5lYXNlVG8oe2R1cmF0aW9uOjMwMCxlYXNlSWQ6ImtleWJvYXJkSGFuZGxlciIsZWFzaW5nOnNpLHpvb206cj9NYXRoLnJvdW5kKGwpK3IqKHQuc2hpZnRLZXk/MjoxKTpsLGJlYXJpbmc6cy5nZXRCZWFyaW5nKCkrbiplLl9iZWFyaW5nU3RlcCxwaXRjaDpzLmdldFBpdGNoKCkraSplLl9waXRjaFN0ZXAsb2Zmc2V0OlstYSplLl9wYW5TdGVwLC1vKmUuX3BhblN0ZXBdLGNlbnRlcjpzLmdldENlbnRlcigpfSx7b3JpZ2luYWxFdmVudDp0fSl9fX19LG9pLnByb3RvdHlwZS5lbmFibGU9ZnVuY3Rpb24oKXt0aGlzLl9lbmFibGVkPSEwfSxvaS5wcm90b3R5cGUuZGlzYWJsZT1mdW5jdGlvbigpe3RoaXMuX2VuYWJsZWQ9ITEsdGhpcy5yZXNldCgpfSxvaS5wcm90b3R5cGUuaXNFbmFibGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2VuYWJsZWR9LG9pLnByb3RvdHlwZS5pc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hY3RpdmV9O3ZhciBsaT1mdW5jdGlvbihlLHIpe3RoaXMuX21hcD1lLHRoaXMuX2VsPWUuZ2V0Q2FudmFzQ29udGFpbmVyKCksdGhpcy5faGFuZGxlcj1yLHRoaXMuX2RlbHRhPTAsdGhpcy5fZGVmYXVsdFpvb21SYXRlPS4wMSx0aGlzLl93aGVlbFpvb21SYXRlPTEvNDUwLHQuYmluZEFsbChbIl9vbldoZWVsIiwiX29uVGltZW91dCIsIl9vblNjcm9sbEZyYW1lIiwiX29uU2Nyb2xsRmluaXNoZWQiXSx0aGlzKX07bGkucHJvdG90eXBlLnNldFpvb21SYXRlPWZ1bmN0aW9uKHQpe3RoaXMuX2RlZmF1bHRab29tUmF0ZT10fSxsaS5wcm90b3R5cGUuc2V0V2hlZWxab29tUmF0ZT1mdW5jdGlvbih0KXt0aGlzLl93aGVlbFpvb21SYXRlPXR9LGxpLnByb3RvdHlwZS5pc0VuYWJsZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuX2VuYWJsZWR9LGxpLnByb3RvdHlwZS5pc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5fYWN0aXZlfHx2b2lkIDAhPT10aGlzLl9maW5pc2hUaW1lb3V0fSxsaS5wcm90b3R5cGUuaXNab29taW5nPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLl96b29taW5nfSxsaS5wcm90b3R5cGUuZW5hYmxlPWZ1bmN0aW9uKHQpe3RoaXMuaXNFbmFibGVkKCl8fCh0aGlzLl9lbmFibGVkPSEwLHRoaXMuX2Fyb3VuZENlbnRlcj10JiYiY2VudGVyIj09PXQuYXJvdW5kKX0sbGkucHJvdG90eXBlLmRpc2FibGU9ZnVuY3Rpb24oKXt0aGlzLmlzRW5hYmxlZCgpJiYodGhpcy5fZW5hYmxlZD0hMSl9LGxpLnByb3RvdHlwZS53aGVlbD1mdW5jdGlvbihlKXtpZih0aGlzLmlzRW5hYmxlZCgpKXt2YXIgcj1lLmRlbHRhTW9kZT09PXQud2luZG93LldoZWVsRXZlbnQuRE9NX0RFTFRBX0xJTkU/NDAqZS5kZWx0YVk6ZS5kZWx0YVksbj10LmJyb3dzZXIubm93KCksaT1uLSh0aGlzLl9sYXN0V2hlZWxFdmVudFRpbWV8fDApO3RoaXMuX2xhc3RXaGVlbEV2ZW50VGltZT1uLDAhPT1yJiZyJTQuMDAwMjQ0MTQwNjI1PT0wP3RoaXMuX3R5cGU9IndoZWVsIjowIT09ciYmTWF0aC5hYnMocik8ND90aGlzLl90eXBlPSJ0cmFja3BhZCI6aT40MDA/KHRoaXMuX3R5cGU9bnVsbCx0aGlzLl9sYXN0VmFsdWU9cix0aGlzLl90aW1lb3V0PXNldFRpbWVvdXQodGhpcy5fb25UaW1lb3V0LDQwLGUpKTp0aGlzLl90eXBlfHwodGhpcy5fdHlwZT1NYXRoLmFicyhpKnIpPDIwMD8idHJhY2twYWQiOiJ3aGVlbCIsdGhpcy5fdGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLl90aW1lb3V0KSx0aGlzLl90aW1lb3V0PW51bGwscis9dGhpcy5fbGFzdFZhbHVlKSksZS5zaGlmdEtleSYmciYmKHIvPTQpLHRoaXMuX3R5cGUmJih0aGlzLl9sYXN0V2hlZWxFdmVudD1lLHRoaXMuX2RlbHRhLT1yLHRoaXMuX2FjdGl2ZXx8dGhpcy5fc3RhcnQoZSkpLGUucHJldmVudERlZmF1bHQoKX19LGxpLnByb3RvdHlwZS5fb25UaW1lb3V0PWZ1bmN0aW9uKHQpe3RoaXMuX3R5cGU9IndoZWVsIix0aGlzLl9kZWx0YS09dGhpcy5fbGFzdFZhbHVlLHRoaXMuX2FjdGl2ZXx8dGhpcy5fc3RhcnQodCl9LGxpLnByb3RvdHlwZS5fc3RhcnQ9ZnVuY3Rpb24oZSl7aWYodGhpcy5fZGVsdGEpe3RoaXMuX2ZyYW1lSWQmJih0aGlzLl9mcmFtZUlkPW51bGwpLHRoaXMuX2FjdGl2ZT0hMCx0aGlzLmlzWm9vbWluZygpfHwodGhpcy5fem9vbWluZz0hMCksdGhpcy5fZmluaXNoVGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLl9maW5pc2hUaW1lb3V0KSxkZWxldGUgdGhpcy5fZmluaXNoVGltZW91dCk7dmFyIG49ci5tb3VzZVBvcyh0aGlzLl9lbCxlKTt0aGlzLl9hcm91bmQ9dC5MbmdMYXQuY29udmVydCh0aGlzLl9hcm91bmRDZW50ZXI/dGhpcy5fbWFwLmdldENlbnRlcigpOnRoaXMuX21hcC51bnByb2plY3QobikpLHRoaXMuX2Fyb3VuZFBvaW50PXRoaXMuX21hcC50cmFuc2Zvcm0ubG9jYXRpb25Qb2ludCh0aGlzLl9hcm91bmQpLHRoaXMuX2ZyYW1lSWR8fCh0aGlzLl9mcmFtZUlkPSEwLHRoaXMuX2hhbmRsZXIuX3RyaWdnZXJSZW5kZXJGcmFtZSgpKX19LGxpLnByb3RvdHlwZS5yZW5kZXJGcmFtZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9vblNjcm9sbEZyYW1lKCl9LGxpLnByb3RvdHlwZS5fb25TY3JvbGxGcmFtZT1mdW5jdGlvbigpe3ZhciBlPXRoaXM7aWYodGhpcy5fZnJhbWVJZCYmKHRoaXMuX2ZyYW1lSWQ9bnVsbCx0aGlzLmlzQWN0aXZlKCkpKXt2YXIgcj10aGlzLl9tYXAudHJhbnNmb3JtO2lmKDAhPT10aGlzLl9kZWx0YSl7dmFyIG49IndoZWVsIj09PXRoaXMuX3R5cGUmJk1hdGguYWJzKHRoaXMuX2RlbHRhKT40LjAwMDI0NDE0MDYyNT90aGlzLl93aGVlbFpvb21SYXRlOnRoaXMuX2RlZmF1bHRab29tUmF0ZSxpPTIvKDErTWF0aC5leHAoLU1hdGguYWJzKHRoaXMuX2RlbHRhKm4pKSk7dGhpcy5fZGVsdGE8MCYmMCE9PWkmJihpPTEvaSk7dmFyIGE9Im51bWJlciI9PXR5cGVvZiB0aGlzLl90YXJnZXRab29tP3Iuem9vbVNjYWxlKHRoaXMuX3RhcmdldFpvb20pOnIuc2NhbGU7dGhpcy5fdGFyZ2V0Wm9vbT1NYXRoLm1pbihyLm1heFpvb20sTWF0aC5tYXgoci5taW5ab29tLHIuc2NhbGVab29tKGEqaSkpKSwid2hlZWwiPT09dGhpcy5fdHlwZSYmKHRoaXMuX3N0YXJ0Wm9vbT1yLnpvb20sdGhpcy5fZWFzaW5nPXRoaXMuX3Ntb290aE91dEVhc2luZygyMDApKSx0aGlzLl9kZWx0YT0wfXZhciBvLHM9Im51bWJlciI9PXR5cGVvZiB0aGlzLl90YXJnZXRab29tP3RoaXMuX3RhcmdldFpvb206ci56b29tLGw9dGhpcy5fc3RhcnRab29tLGM9dGhpcy5fZWFzaW5nLHU9ITE7aWYoIndoZWVsIj09PXRoaXMuX3R5cGUmJmwmJmMpe3ZhciBmPU1hdGgubWluKCh0LmJyb3dzZXIubm93KCktdGhpcy5fbGFzdFdoZWVsRXZlbnRUaW1lKS8yMDAsMSksaD1jKGYpO289dC5udW1iZXIobCxzLGgpLGY8MT90aGlzLl9mcmFtZUlkfHwodGhpcy5fZnJhbWVJZD0hMCk6dT0hMH1lbHNlIG89cyx1PSEwO3JldHVybiB0aGlzLl9hY3RpdmU9ITAsdSYmKHRoaXMuX2FjdGl2ZT0hMSx0aGlzLl9maW5pc2hUaW1lb3V0PXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZS5fem9vbWluZz0hMSxlLl9oYW5kbGVyLl90cmlnZ2VyUmVuZGVyRnJhbWUoKSxkZWxldGUgZS5fdGFyZ2V0Wm9vbSxkZWxldGUgZS5fZmluaXNoVGltZW91dH0pLDIwMCkpLHtub0luZXJ0aWE6ITAsbmVlZHNSZW5kZXJGcmFtZTohdSx6b29tRGVsdGE6by1yLnpvb20sYXJvdW5kOnRoaXMuX2Fyb3VuZFBvaW50LG9yaWdpbmFsRXZlbnQ6dGhpcy5fbGFzdFdoZWVsRXZlbnR9fX0sbGkucHJvdG90eXBlLl9zbW9vdGhPdXRFYXNpbmc9ZnVuY3Rpb24oZSl7dmFyIHI9dC5lYXNlO2lmKHRoaXMuX3ByZXZFYXNlKXt2YXIgbj10aGlzLl9wcmV2RWFzZSxpPSh0LmJyb3dzZXIubm93KCktbi5zdGFydCkvbi5kdXJhdGlvbixhPW4uZWFzaW5nKGkrLjAxKS1uLmVhc2luZyhpKSxvPS4yNy9NYXRoLnNxcnQoYSphKzFlLTQpKi4wMSxzPU1hdGguc3FydCguMDcyOS1vKm8pO3I9dC5iZXppZXIobyxzLC4yNSwxKX1yZXR1cm4gdGhpcy5fcHJldkVhc2U9e3N0YXJ0OnQuYnJvd3Nlci5ub3coKSxkdXJhdGlvbjplLGVhc2luZzpyfSxyfSxsaS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLl9hY3RpdmU9ITF9O3ZhciBjaT1mdW5jdGlvbih0LGUpe3RoaXMuX2NsaWNrWm9vbT10LHRoaXMuX3RhcFpvb209ZX07Y2kucHJvdG90eXBlLmVuYWJsZT1mdW5jdGlvbigpe3RoaXMuX2NsaWNrWm9vbS5lbmFibGUoKSx0aGlzLl90YXBab29tLmVuYWJsZSgpfSxjaS5wcm90b3R5cGUuZGlzYWJsZT1mdW5jdGlvbigpe3RoaXMuX2NsaWNrWm9vbS5kaXNhYmxlKCksdGhpcy5fdGFwWm9vbS5kaXNhYmxlKCl9LGNpLnByb3RvdHlwZS5pc0VuYWJsZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2xpY2tab29tLmlzRW5hYmxlZCgpJiZ0aGlzLl90YXBab29tLmlzRW5hYmxlZCgpfSxjaS5wcm90b3R5cGUuaXNBY3RpdmU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2xpY2tab29tLmlzQWN0aXZlKCl8fHRoaXMuX3RhcFpvb20uaXNBY3RpdmUoKX07dmFyIHVpPWZ1bmN0aW9uKCl7dGhpcy5yZXNldCgpfTt1aS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLl9hY3RpdmU9ITF9LHVpLnByb3RvdHlwZS5kYmxjbGljaz1mdW5jdGlvbih0LGUpe3JldHVybiB0LnByZXZlbnREZWZhdWx0KCkse2NhbWVyYUFuaW1hdGlvbjpmdW5jdGlvbihyKXtyLmVhc2VUbyh7ZHVyYXRpb246MzAwLHpvb206ci5nZXRab29tKCkrKHQuc2hpZnRLZXk/LTE6MSksYXJvdW5kOnIudW5wcm9qZWN0KGUpfSx7b3JpZ2luYWxFdmVudDp0fSl9fX0sdWkucHJvdG90eXBlLmVuYWJsZT1mdW5jdGlvbigpe3RoaXMuX2VuYWJsZWQ9ITB9LHVpLnByb3RvdHlwZS5kaXNhYmxlPWZ1bmN0aW9uKCl7dGhpcy5fZW5hYmxlZD0hMSx0aGlzLnJlc2V0KCl9LHVpLnByb3RvdHlwZS5pc0VuYWJsZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZW5hYmxlZH0sdWkucHJvdG90eXBlLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FjdGl2ZX07dmFyIGZpPWZ1bmN0aW9uKCl7dGhpcy5fdGFwPW5ldyBxbih7bnVtVG91Y2hlczoxLG51bVRhcHM6MX0pLHRoaXMucmVzZXQoKX07ZmkucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5fYWN0aXZlPSExLGRlbGV0ZSB0aGlzLl9zd2lwZVBvaW50LGRlbGV0ZSB0aGlzLl9zd2lwZVRvdWNoLGRlbGV0ZSB0aGlzLl90YXBUaW1lLHRoaXMuX3RhcC5yZXNldCgpfSxmaS5wcm90b3R5cGUudG91Y2hzdGFydD1mdW5jdGlvbih0LGUscil7dGhpcy5fc3dpcGVQb2ludHx8KHRoaXMuX3RhcFRpbWUmJnQudGltZVN0YW1wLXRoaXMuX3RhcFRpbWU+NTAwJiZ0aGlzLnJlc2V0KCksdGhpcy5fdGFwVGltZT9yLmxlbmd0aD4wJiYodGhpcy5fc3dpcGVQb2ludD1lWzBdLHRoaXMuX3N3aXBlVG91Y2g9clswXS5pZGVudGlmaWVyKTp0aGlzLl90YXAudG91Y2hzdGFydCh0LGUscikpfSxmaS5wcm90b3R5cGUudG91Y2htb3ZlPWZ1bmN0aW9uKHQsZSxyKXtpZih0aGlzLl90YXBUaW1lKXtpZih0aGlzLl9zd2lwZVBvaW50KXtpZihyWzBdLmlkZW50aWZpZXIhPT10aGlzLl9zd2lwZVRvdWNoKXJldHVybjt2YXIgbj1lWzBdLGk9bi55LXRoaXMuX3N3aXBlUG9pbnQueTtyZXR1cm4gdGhpcy5fc3dpcGVQb2ludD1uLHQucHJldmVudERlZmF1bHQoKSx0aGlzLl9hY3RpdmU9ITAse3pvb21EZWx0YTppLzEyOH19fWVsc2UgdGhpcy5fdGFwLnRvdWNobW92ZSh0LGUscil9LGZpLnByb3RvdHlwZS50b3VjaGVuZD1mdW5jdGlvbih0LGUscil7dGhpcy5fdGFwVGltZT90aGlzLl9zd2lwZVBvaW50JiYwPT09ci5sZW5ndGgmJnRoaXMucmVzZXQoKTp0aGlzLl90YXAudG91Y2hlbmQodCxlLHIpJiYodGhpcy5fdGFwVGltZT10LnRpbWVTdGFtcCl9LGZpLnByb3RvdHlwZS50b3VjaGNhbmNlbD1mdW5jdGlvbigpe3RoaXMucmVzZXQoKX0sZmkucHJvdG90eXBlLmVuYWJsZT1mdW5jdGlvbigpe3RoaXMuX2VuYWJsZWQ9ITB9LGZpLnByb3RvdHlwZS5kaXNhYmxlPWZ1bmN0aW9uKCl7dGhpcy5fZW5hYmxlZD0hMSx0aGlzLnJlc2V0KCl9LGZpLnByb3RvdHlwZS5pc0VuYWJsZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZW5hYmxlZH0sZmkucHJvdG90eXBlLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FjdGl2ZX07dmFyIGhpPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLl9lbD10LHRoaXMuX21vdXNlUGFuPWUsdGhpcy5fdG91Y2hQYW49cn07aGkucHJvdG90eXBlLmVuYWJsZT1mdW5jdGlvbih0KXt0aGlzLl9pbmVydGlhT3B0aW9ucz10fHx7fSx0aGlzLl9tb3VzZVBhbi5lbmFibGUoKSx0aGlzLl90b3VjaFBhbi5lbmFibGUoKSx0aGlzLl9lbC5jbGFzc0xpc3QuYWRkKCJtYXBib3hnbC10b3VjaC1kcmFnLXBhbiIpfSxoaS5wcm90b3R5cGUuZGlzYWJsZT1mdW5jdGlvbigpe3RoaXMuX21vdXNlUGFuLmRpc2FibGUoKSx0aGlzLl90b3VjaFBhbi5kaXNhYmxlKCksdGhpcy5fZWwuY2xhc3NMaXN0LnJlbW92ZSgibWFwYm94Z2wtdG91Y2gtZHJhZy1wYW4iKX0saGkucHJvdG90eXBlLmlzRW5hYmxlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9tb3VzZVBhbi5pc0VuYWJsZWQoKSYmdGhpcy5fdG91Y2hQYW4uaXNFbmFibGVkKCl9LGhpLnByb3RvdHlwZS5pc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9tb3VzZVBhbi5pc0FjdGl2ZSgpfHx0aGlzLl90b3VjaFBhbi5pc0FjdGl2ZSgpfTt2YXIgcGk9ZnVuY3Rpb24odCxlLHIpe3RoaXMuX3BpdGNoV2l0aFJvdGF0ZT10LnBpdGNoV2l0aFJvdGF0ZSx0aGlzLl9tb3VzZVJvdGF0ZT1lLHRoaXMuX21vdXNlUGl0Y2g9cn07cGkucHJvdG90eXBlLmVuYWJsZT1mdW5jdGlvbigpe3RoaXMuX21vdXNlUm90YXRlLmVuYWJsZSgpLHRoaXMuX3BpdGNoV2l0aFJvdGF0ZSYmdGhpcy5fbW91c2VQaXRjaC5lbmFibGUoKX0scGkucHJvdG90eXBlLmRpc2FibGU9ZnVuY3Rpb24oKXt0aGlzLl9tb3VzZVJvdGF0ZS5kaXNhYmxlKCksdGhpcy5fbW91c2VQaXRjaC5kaXNhYmxlKCl9LHBpLnByb3RvdHlwZS5pc0VuYWJsZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbW91c2VSb3RhdGUuaXNFbmFibGVkKCkmJighdGhpcy5fcGl0Y2hXaXRoUm90YXRlfHx0aGlzLl9tb3VzZVBpdGNoLmlzRW5hYmxlZCgpKX0scGkucHJvdG90eXBlLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21vdXNlUm90YXRlLmlzQWN0aXZlKCl8fHRoaXMuX21vdXNlUGl0Y2guaXNBY3RpdmUoKX07dmFyIGRpPWZ1bmN0aW9uKHQsZSxyLG4pe3RoaXMuX2VsPXQsdGhpcy5fdG91Y2hab29tPWUsdGhpcy5fdG91Y2hSb3RhdGU9cix0aGlzLl90YXBEcmFnWm9vbT1uLHRoaXMuX3JvdGF0aW9uRGlzYWJsZWQ9ITEsdGhpcy5fZW5hYmxlZD0hMH07ZGkucHJvdG90eXBlLmVuYWJsZT1mdW5jdGlvbih0KXt0aGlzLl90b3VjaFpvb20uZW5hYmxlKHQpLHRoaXMuX3JvdGF0aW9uRGlzYWJsZWR8fHRoaXMuX3RvdWNoUm90YXRlLmVuYWJsZSh0KSx0aGlzLl90YXBEcmFnWm9vbS5lbmFibGUoKSx0aGlzLl9lbC5jbGFzc0xpc3QuYWRkKCJtYXBib3hnbC10b3VjaC16b29tLXJvdGF0ZSIpfSxkaS5wcm90b3R5cGUuZGlzYWJsZT1mdW5jdGlvbigpe3RoaXMuX3RvdWNoWm9vbS5kaXNhYmxlKCksdGhpcy5fdG91Y2hSb3RhdGUuZGlzYWJsZSgpLHRoaXMuX3RhcERyYWdab29tLmRpc2FibGUoKSx0aGlzLl9lbC5jbGFzc0xpc3QucmVtb3ZlKCJtYXBib3hnbC10b3VjaC16b29tLXJvdGF0ZSIpfSxkaS5wcm90b3R5cGUuaXNFbmFibGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3RvdWNoWm9vbS5pc0VuYWJsZWQoKSYmKHRoaXMuX3JvdGF0aW9uRGlzYWJsZWR8fHRoaXMuX3RvdWNoUm90YXRlLmlzRW5hYmxlZCgpKSYmdGhpcy5fdGFwRHJhZ1pvb20uaXNFbmFibGVkKCl9LGRpLnByb3RvdHlwZS5pc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl90b3VjaFpvb20uaXNBY3RpdmUoKXx8dGhpcy5fdG91Y2hSb3RhdGUuaXNBY3RpdmUoKXx8dGhpcy5fdGFwRHJhZ1pvb20uaXNBY3RpdmUoKX0sZGkucHJvdG90eXBlLmRpc2FibGVSb3RhdGlvbj1mdW5jdGlvbigpe3RoaXMuX3JvdGF0aW9uRGlzYWJsZWQ9ITAsdGhpcy5fdG91Y2hSb3RhdGUuZGlzYWJsZSgpfSxkaS5wcm90b3R5cGUuZW5hYmxlUm90YXRpb249ZnVuY3Rpb24oKXt0aGlzLl9yb3RhdGlvbkRpc2FibGVkPSExLHRoaXMuX3RvdWNoWm9vbS5pc0VuYWJsZWQoKSYmdGhpcy5fdG91Y2hSb3RhdGUuZW5hYmxlKCl9O3ZhciBtaT1mdW5jdGlvbih0KXtyZXR1cm4gdC56b29tfHx0LmRyYWd8fHQucGl0Y2h8fHQucm90YXRlfSxnaT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGV9KHQuRXZlbnQpO2Z1bmN0aW9uIHZpKHQpe3JldHVybiB0LnBhbkRlbHRhJiZ0LnBhbkRlbHRhLm1hZygpfHx0Lnpvb21EZWx0YXx8dC5iZWFyaW5nRGVsdGF8fHQucGl0Y2hEZWx0YX12YXIgeWk9ZnVuY3Rpb24oZSxuKXt0aGlzLl9tYXA9ZSx0aGlzLl9lbD10aGlzLl9tYXAuZ2V0Q2FudmFzQ29udGFpbmVyKCksdGhpcy5faGFuZGxlcnM9W10sdGhpcy5faGFuZGxlcnNCeUlkPXt9LHRoaXMuX2NoYW5nZXM9W10sdGhpcy5faW5lcnRpYT1uZXcgT24oZSksdGhpcy5fYmVhcmluZ1NuYXA9bi5iZWFyaW5nU25hcCx0aGlzLl9wcmV2aW91c0FjdGl2ZUhhbmRsZXJzPXt9LHRoaXMuX2V2ZW50c0luUHJvZ3Jlc3M9e30sdGhpcy5fYWRkRGVmYXVsdEhhbmRsZXJzKG4pLHQuYmluZEFsbChbImhhbmRsZUV2ZW50IiwiaGFuZGxlV2luZG93RXZlbnQiXSx0aGlzKTt2YXIgaT10aGlzLl9lbDt0aGlzLl9saXN0ZW5lcnM9W1tpLCJ0b3VjaHN0YXJ0Iix7cGFzc2l2ZTohMX1dLFtpLCJ0b3VjaG1vdmUiLHtwYXNzaXZlOiExfV0sW2ksInRvdWNoZW5kIix2b2lkIDBdLFtpLCJ0b3VjaGNhbmNlbCIsdm9pZCAwXSxbaSwibW91c2Vkb3duIix2b2lkIDBdLFtpLCJtb3VzZW1vdmUiLHZvaWQgMF0sW2ksIm1vdXNldXAiLHZvaWQgMF0sW3Qud2luZG93LmRvY3VtZW50LCJtb3VzZW1vdmUiLHtjYXB0dXJlOiEwfV0sW3Qud2luZG93LmRvY3VtZW50LCJtb3VzZXVwIix2b2lkIDBdLFtpLCJtb3VzZW92ZXIiLHZvaWQgMF0sW2ksIm1vdXNlb3V0Iix2b2lkIDBdLFtpLCJkYmxjbGljayIsdm9pZCAwXSxbaSwiY2xpY2siLHZvaWQgMF0sW2ksImtleWRvd24iLHtjYXB0dXJlOiExfV0sW2ksImtleXVwIix2b2lkIDBdLFtpLCJ3aGVlbCIse3Bhc3NpdmU6ITF9XSxbaSwiY29udGV4dG1lbnUiLHZvaWQgMF0sW3Qud2luZG93LCJibHVyIix2b2lkIDBdXTtmb3IodmFyIGE9MCxvPXRoaXMuX2xpc3RlbmVyczthPG8ubGVuZ3RoO2ErPTEpe3ZhciBzPW9bYV0sbD1zWzBdLGM9c1sxXSx1PXNbMl07ci5hZGRFdmVudExpc3RlbmVyKGwsYyxsPT09dC53aW5kb3cuZG9jdW1lbnQ/dGhpcy5oYW5kbGVXaW5kb3dFdmVudDp0aGlzLmhhbmRsZUV2ZW50LHUpfX07eWkucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXtmb3IodmFyIGU9MCxuPXRoaXMuX2xpc3RlbmVycztlPG4ubGVuZ3RoO2UrPTEpe3ZhciBpPW5bZV0sYT1pWzBdLG89aVsxXSxzPWlbMl07ci5yZW1vdmVFdmVudExpc3RlbmVyKGEsbyxhPT09dC53aW5kb3cuZG9jdW1lbnQ/dGhpcy5oYW5kbGVXaW5kb3dFdmVudDp0aGlzLmhhbmRsZUV2ZW50LHMpfX0seWkucHJvdG90eXBlLl9hZGREZWZhdWx0SGFuZGxlcnM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fbWFwLHI9ZS5nZXRDYW52YXNDb250YWluZXIoKTt0aGlzLl9hZGQoIm1hcEV2ZW50IixuZXcgTm4oZSx0KSk7dmFyIG49ZS5ib3hab29tPW5ldyBVbihlLHQpO3RoaXMuX2FkZCgiYm94Wm9vbSIsbik7dmFyIGk9bmV3IEduLGE9bmV3IHVpO2UuZG91YmxlQ2xpY2tab29tPW5ldyBjaShhLGkpLHRoaXMuX2FkZCgidGFwWm9vbSIsaSksdGhpcy5fYWRkKCJjbGlja1pvb20iLGEpO3ZhciBvPW5ldyBmaTt0aGlzLl9hZGQoInRhcERyYWdab29tIixvKTt2YXIgcz1lLnRvdWNoUGl0Y2g9bmV3IGlpO3RoaXMuX2FkZCgidG91Y2hQaXRjaCIscyk7dmFyIGw9bmV3IFhuKHQpLGM9bmV3IFpuKHQpO2UuZHJhZ1JvdGF0ZT1uZXcgcGkodCxsLGMpLHRoaXMuX2FkZCgibW91c2VSb3RhdGUiLGwsWyJtb3VzZVBpdGNoIl0pLHRoaXMuX2FkZCgibW91c2VQaXRjaCIsYyxbIm1vdXNlUm90YXRlIl0pO3ZhciB1PW5ldyBXbih0KSxmPW5ldyBKbih0KTtlLmRyYWdQYW49bmV3IGhpKHIsdSxmKSx0aGlzLl9hZGQoIm1vdXNlUGFuIix1KSx0aGlzLl9hZGQoInRvdWNoUGFuIixmLFsidG91Y2hab29tIiwidG91Y2hSb3RhdGUiXSk7dmFyIGg9bmV3IHJpLHA9bmV3IHRpO2UudG91Y2hab29tUm90YXRlPW5ldyBkaShyLHAsaCxvKSx0aGlzLl9hZGQoInRvdWNoUm90YXRlIixoLFsidG91Y2hQYW4iLCJ0b3VjaFpvb20iXSksdGhpcy5fYWRkKCJ0b3VjaFpvb20iLHAsWyJ0b3VjaFBhbiIsInRvdWNoUm90YXRlIl0pO3ZhciBkPWUuc2Nyb2xsWm9vbT1uZXcgbGkoZSx0aGlzKTt0aGlzLl9hZGQoInNjcm9sbFpvb20iLGQsWyJtb3VzZVBhbiJdKTt2YXIgbT1lLmtleWJvYXJkPW5ldyBvaTt0aGlzLl9hZGQoImtleWJvYXJkIixtKSx0aGlzLl9hZGQoImJsb2NrYWJsZU1hcEV2ZW50IixuZXcgam4oZSkpO2Zvcih2YXIgZz0wLHY9WyJib3hab29tIiwiZG91YmxlQ2xpY2tab29tIiwidGFwRHJhZ1pvb20iLCJ0b3VjaFBpdGNoIiwiZHJhZ1JvdGF0ZSIsImRyYWdQYW4iLCJ0b3VjaFpvb21Sb3RhdGUiLCJzY3JvbGxab29tIiwia2V5Ym9hcmQiXTtnPHYubGVuZ3RoO2crPTEpe3ZhciB5PXZbZ107dC5pbnRlcmFjdGl2ZSYmdFt5XSYmZVt5XS5lbmFibGUodFt5XSl9fSx5aS5wcm90b3R5cGUuX2FkZD1mdW5jdGlvbih0LGUscil7dGhpcy5faGFuZGxlcnMucHVzaCh7aGFuZGxlck5hbWU6dCxoYW5kbGVyOmUsYWxsb3dlZDpyfSksdGhpcy5faGFuZGxlcnNCeUlkW3RdPWV9LHlpLnByb3RvdHlwZS5zdG9wPWZ1bmN0aW9uKCl7aWYoIXRoaXMuX3VwZGF0aW5nQ2FtZXJhKXtmb3IodmFyIHQ9MCxlPXRoaXMuX2hhbmRsZXJzO3Q8ZS5sZW5ndGg7dCs9MSl7ZVt0XS5oYW5kbGVyLnJlc2V0KCl9dGhpcy5faW5lcnRpYS5jbGVhcigpLHRoaXMuX2ZpcmVFdmVudHMoe30se30pLHRoaXMuX2NoYW5nZXM9W119fSx5aS5wcm90b3R5cGUuaXNBY3RpdmU9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MCxlPXRoaXMuX2hhbmRsZXJzO3Q8ZS5sZW5ndGg7dCs9MSl7aWYoZVt0XS5oYW5kbGVyLmlzQWN0aXZlKCkpcmV0dXJuITB9cmV0dXJuITF9LHlpLnByb3RvdHlwZS5pc1pvb21pbmc9ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuX2V2ZW50c0luUHJvZ3Jlc3Muem9vbXx8dGhpcy5fbWFwLnNjcm9sbFpvb20uaXNab29taW5nKCl9LHlpLnByb3RvdHlwZS5pc1JvdGF0aW5nPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLl9ldmVudHNJblByb2dyZXNzLnJvdGF0ZX0seWkucHJvdG90eXBlLmlzTW92aW5nPWZ1bmN0aW9uKCl7cmV0dXJuIEJvb2xlYW4obWkodGhpcy5fZXZlbnRzSW5Qcm9ncmVzcykpfHx0aGlzLmlzWm9vbWluZygpfSx5aS5wcm90b3R5cGUuX2Jsb2NrZWRCeUFjdGl2ZT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuIGluIHQpaWYobiE9PXImJighZXx8ZS5pbmRleE9mKG4pPDApKXJldHVybiEwO3JldHVybiExfSx5aS5wcm90b3R5cGUuaGFuZGxlV2luZG93RXZlbnQ9ZnVuY3Rpb24odCl7dGhpcy5oYW5kbGVFdmVudCh0LHQudHlwZSsiV2luZG93Iil9LHlpLnByb3RvdHlwZS5fZ2V0TWFwVG91Y2hlcz1mdW5jdGlvbih0KXtmb3IodmFyIGU9W10scj0wLG49dDtyPG4ubGVuZ3RoO3IrPTEpe3ZhciBpPW5bcl0sYT1pLnRhcmdldDt0aGlzLl9lbC5jb250YWlucyhhKSYmZS5wdXNoKGkpfXJldHVybiBlfSx5aS5wcm90b3R5cGUuaGFuZGxlRXZlbnQ9ZnVuY3Rpb24odCxlKXtpZigiYmx1ciIhPT10LnR5cGUpe3RoaXMuX3VwZGF0aW5nQ2FtZXJhPSEwO2Zvcih2YXIgbj0icmVuZGVyRnJhbWUiPT09dC50eXBlP3ZvaWQgMDp0LGk9e25lZWRzUmVuZGVyRnJhbWU6ITF9LGE9e30sbz17fSxzPXQudG91Y2hlcz90aGlzLl9nZXRNYXBUb3VjaGVzKHQudG91Y2hlcyk6dm9pZCAwLGw9cz9yLnRvdWNoUG9zKHRoaXMuX2VsLHMpOnIubW91c2VQb3ModGhpcy5fZWwsdCksYz0wLHU9dGhpcy5faGFuZGxlcnM7Yzx1Lmxlbmd0aDtjKz0xKXt2YXIgZj11W2NdLGg9Zi5oYW5kbGVyTmFtZSxwPWYuaGFuZGxlcixkPWYuYWxsb3dlZDtpZihwLmlzRW5hYmxlZCgpKXt2YXIgbT12b2lkIDA7dGhpcy5fYmxvY2tlZEJ5QWN0aXZlKG8sZCxoKT9wLnJlc2V0KCk6cFtlfHx0LnR5cGVdJiYobT1wW2V8fHQudHlwZV0odCxsLHMpLHRoaXMubWVyZ2VIYW5kbGVyUmVzdWx0KGksYSxtLGgsbiksbSYmbS5uZWVkc1JlbmRlckZyYW1lJiZ0aGlzLl90cmlnZ2VyUmVuZGVyRnJhbWUoKSksKG18fHAuaXNBY3RpdmUoKSkmJihvW2hdPXApfX12YXIgZz17fTtmb3IodmFyIHYgaW4gdGhpcy5fcHJldmlvdXNBY3RpdmVIYW5kbGVycylvW3ZdfHwoZ1t2XT1uKTt0aGlzLl9wcmV2aW91c0FjdGl2ZUhhbmRsZXJzPW8sKE9iamVjdC5rZXlzKGcpLmxlbmd0aHx8dmkoaSkpJiYodGhpcy5fY2hhbmdlcy5wdXNoKFtpLGEsZ10pLHRoaXMuX3RyaWdnZXJSZW5kZXJGcmFtZSgpKSwoT2JqZWN0LmtleXMobykubGVuZ3RofHx2aShpKSkmJnRoaXMuX21hcC5fc3RvcCghMCksdGhpcy5fdXBkYXRpbmdDYW1lcmE9ITE7dmFyIHk9aS5jYW1lcmFBbmltYXRpb247eSYmKHRoaXMuX2luZXJ0aWEuY2xlYXIoKSx0aGlzLl9maXJlRXZlbnRzKHt9LHt9KSx0aGlzLl9jaGFuZ2VzPVtdLHkodGhpcy5fbWFwKSl9ZWxzZSB0aGlzLnN0b3AoKX0seWkucHJvdG90eXBlLm1lcmdlSGFuZGxlclJlc3VsdD1mdW5jdGlvbihlLHIsbixpLGEpe2lmKG4pe3QuZXh0ZW5kKGUsbik7dmFyIG89e2hhbmRsZXJOYW1lOmksb3JpZ2luYWxFdmVudDpuLm9yaWdpbmFsRXZlbnR8fGF9O3ZvaWQgMCE9PW4uem9vbURlbHRhJiYoci56b29tPW8pLHZvaWQgMCE9PW4ucGFuRGVsdGEmJihyLmRyYWc9byksdm9pZCAwIT09bi5waXRjaERlbHRhJiYoci5waXRjaD1vKSx2b2lkIDAhPT1uLmJlYXJpbmdEZWx0YSYmKHIucm90YXRlPW8pfX0seWkucHJvdG90eXBlLl9hcHBseUNoYW5nZXM9ZnVuY3Rpb24oKXtmb3IodmFyIGU9e30scj17fSxuPXt9LGk9MCxhPXRoaXMuX2NoYW5nZXM7aTxhLmxlbmd0aDtpKz0xKXt2YXIgbz1hW2ldLHM9b1swXSxsPW9bMV0sYz1vWzJdO3MucGFuRGVsdGEmJihlLnBhbkRlbHRhPShlLnBhbkRlbHRhfHxuZXcgdC5Qb2ludCgwLDApKS5fYWRkKHMucGFuRGVsdGEpKSxzLnpvb21EZWx0YSYmKGUuem9vbURlbHRhPShlLnpvb21EZWx0YXx8MCkrcy56b29tRGVsdGEpLHMuYmVhcmluZ0RlbHRhJiYoZS5iZWFyaW5nRGVsdGE9KGUuYmVhcmluZ0RlbHRhfHwwKStzLmJlYXJpbmdEZWx0YSkscy5waXRjaERlbHRhJiYoZS5waXRjaERlbHRhPShlLnBpdGNoRGVsdGF8fDApK3MucGl0Y2hEZWx0YSksdm9pZCAwIT09cy5hcm91bmQmJihlLmFyb3VuZD1zLmFyb3VuZCksdm9pZCAwIT09cy5waW5jaEFyb3VuZCYmKGUucGluY2hBcm91bmQ9cy5waW5jaEFyb3VuZCkscy5ub0luZXJ0aWEmJihlLm5vSW5lcnRpYT1zLm5vSW5lcnRpYSksdC5leHRlbmQocixsKSx0LmV4dGVuZChuLGMpfXRoaXMuX3VwZGF0ZU1hcFRyYW5zZm9ybShlLHIsbiksdGhpcy5fY2hhbmdlcz1bXX0seWkucHJvdG90eXBlLl91cGRhdGVNYXBUcmFuc2Zvcm09ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMuX21hcCxpPW4udHJhbnNmb3JtO2lmKCF2aSh0KSlyZXR1cm4gdGhpcy5fZmlyZUV2ZW50cyhlLHIpO3ZhciBhPXQucGFuRGVsdGEsbz10Lnpvb21EZWx0YSxzPXQuYmVhcmluZ0RlbHRhLGw9dC5waXRjaERlbHRhLGM9dC5hcm91bmQsdT10LnBpbmNoQXJvdW5kO3ZvaWQgMCE9PXUmJihjPXUpLG4uX3N0b3AoITApLGM9Y3x8bi50cmFuc2Zvcm0uY2VudGVyUG9pbnQ7dmFyIGY9aS5wb2ludExvY2F0aW9uKGE/Yy5zdWIoYSk6Yyk7cyYmKGkuYmVhcmluZys9cyksbCYmKGkucGl0Y2grPWwpLG8mJihpLnpvb20rPW8pLGkuc2V0TG9jYXRpb25BdFBvaW50KGYsYyksdGhpcy5fbWFwLl91cGRhdGUoKSx0Lm5vSW5lcnRpYXx8dGhpcy5faW5lcnRpYS5yZWNvcmQodCksdGhpcy5fZmlyZUV2ZW50cyhlLHIpfSx5aS5wcm90b3R5cGUuX2ZpcmVFdmVudHM9ZnVuY3Rpb24oZSxyKXt2YXIgbj10aGlzLGk9bWkodGhpcy5fZXZlbnRzSW5Qcm9ncmVzcyksYT1taShlKSxvPXt9O2Zvcih2YXIgcyBpbiBlKXt2YXIgbD1lW3NdLm9yaWdpbmFsRXZlbnQ7dGhpcy5fZXZlbnRzSW5Qcm9ncmVzc1tzXXx8KG9bcysic3RhcnQiXT1sKSx0aGlzLl9ldmVudHNJblByb2dyZXNzW3NdPWVbc119Zm9yKHZhciBjIGluIWkmJmEmJnRoaXMuX2ZpcmVFdmVudCgibW92ZXN0YXJ0IixhLm9yaWdpbmFsRXZlbnQpLG8pdGhpcy5fZmlyZUV2ZW50KGMsb1tjXSk7Zm9yKHZhciB1IGluIGUucm90YXRlJiYodGhpcy5fYmVhcmluZ0NoYW5nZWQ9ITApLGEmJnRoaXMuX2ZpcmVFdmVudCgibW92ZSIsYS5vcmlnaW5hbEV2ZW50KSxlKXt2YXIgZj1lW3VdLm9yaWdpbmFsRXZlbnQ7dGhpcy5fZmlyZUV2ZW50KHUsZil9dmFyIGgscD17fTtmb3IodmFyIGQgaW4gdGhpcy5fZXZlbnRzSW5Qcm9ncmVzcyl7dmFyIG09dGhpcy5fZXZlbnRzSW5Qcm9ncmVzc1tkXSxnPW0uaGFuZGxlck5hbWUsdj1tLm9yaWdpbmFsRXZlbnQ7dGhpcy5faGFuZGxlcnNCeUlkW2ddLmlzQWN0aXZlKCl8fChkZWxldGUgdGhpcy5fZXZlbnRzSW5Qcm9ncmVzc1tkXSxoPXJbZ118fHYscFtkKyJlbmQiXT1oKX1mb3IodmFyIHkgaW4gcCl0aGlzLl9maXJlRXZlbnQoeSxwW3ldKTt2YXIgeD1taSh0aGlzLl9ldmVudHNJblByb2dyZXNzKTtpZigoaXx8YSkmJiF4KXt0aGlzLl91cGRhdGluZ0NhbWVyYT0hMDt2YXIgYj10aGlzLl9pbmVydGlhLl9vbk1vdmVFbmQodGhpcy5fbWFwLmRyYWdQYW4uX2luZXJ0aWFPcHRpb25zKSxfPWZ1bmN0aW9uKHQpe3JldHVybiAwIT09dCYmLW4uX2JlYXJpbmdTbmFwPHQmJnQ8bi5fYmVhcmluZ1NuYXB9O2I/KF8oYi5iZWFyaW5nfHx0aGlzLl9tYXAuZ2V0QmVhcmluZygpKSYmKGIuYmVhcmluZz0wKSx0aGlzLl9tYXAuZWFzZVRvKGIse29yaWdpbmFsRXZlbnQ6aH0pKToodGhpcy5fbWFwLmZpcmUobmV3IHQuRXZlbnQoIm1vdmVlbmQiLHtvcmlnaW5hbEV2ZW50Omh9KSksXyh0aGlzLl9tYXAuZ2V0QmVhcmluZygpKSYmdGhpcy5fbWFwLnJlc2V0Tm9ydGgoKSksdGhpcy5fYmVhcmluZ0NoYW5nZWQ9ITEsdGhpcy5fdXBkYXRpbmdDYW1lcmE9ITF9fSx5aS5wcm90b3R5cGUuX2ZpcmVFdmVudD1mdW5jdGlvbihlLHIpe3RoaXMuX21hcC5maXJlKG5ldyB0LkV2ZW50KGUscj97b3JpZ2luYWxFdmVudDpyfTp7fSkpfSx5aS5wcm90b3R5cGUuX3RyaWdnZXJSZW5kZXJGcmFtZT1mdW5jdGlvbigpe3ZhciB0PXRoaXM7dm9pZCAwPT09dGhpcy5fZnJhbWVJZCYmKHRoaXMuX2ZyYW1lSWQ9dGhpcy5fbWFwLl9yZXF1ZXN0UmVuZGVyRnJhbWUoKGZ1bmN0aW9uKGUpe2RlbGV0ZSB0Ll9mcmFtZUlkLHQuaGFuZGxlRXZlbnQobmV3IGdpKCJyZW5kZXJGcmFtZSIse3RpbWVTdGFtcDplfSkpLHQuX2FwcGx5Q2hhbmdlcygpfSkpKX07dmFyIHhpPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHIocixuKXtlLmNhbGwodGhpcyksdGhpcy5fbW92aW5nPSExLHRoaXMuX3pvb21pbmc9ITEsdGhpcy50cmFuc2Zvcm09cix0aGlzLl9iZWFyaW5nU25hcD1uLmJlYXJpbmdTbmFwLHQuYmluZEFsbChbIl9yZW5kZXJGcmFtZUNhbGxiYWNrIl0sdGhpcyl9cmV0dXJuIGUmJihyLl9fcHJvdG9fXz1lKSxyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlKSxyLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1yLHIucHJvdG90eXBlLmdldENlbnRlcj1mdW5jdGlvbigpe3JldHVybiBuZXcgdC5MbmdMYXQodGhpcy50cmFuc2Zvcm0uY2VudGVyLmxuZyx0aGlzLnRyYW5zZm9ybS5jZW50ZXIubGF0KX0sci5wcm90b3R5cGUuc2V0Q2VudGVyPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuanVtcFRvKHtjZW50ZXI6dH0sZSl9LHIucHJvdG90eXBlLnBhbkJ5PWZ1bmN0aW9uKGUscixuKXtyZXR1cm4gZT10LlBvaW50LmNvbnZlcnQoZSkubXVsdCgtMSksdGhpcy5wYW5Ubyh0aGlzLnRyYW5zZm9ybS5jZW50ZXIsdC5leHRlbmQoe29mZnNldDplfSxyKSxuKX0sci5wcm90b3R5cGUucGFuVG89ZnVuY3Rpb24oZSxyLG4pe3JldHVybiB0aGlzLmVhc2VUbyh0LmV4dGVuZCh7Y2VudGVyOmV9LHIpLG4pfSxyLnByb3RvdHlwZS5nZXRab29tPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudHJhbnNmb3JtLnpvb219LHIucHJvdG90eXBlLnNldFpvb209ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5qdW1wVG8oe3pvb206dH0sZSksdGhpc30sci5wcm90b3R5cGUuem9vbVRvPWZ1bmN0aW9uKGUscixuKXtyZXR1cm4gdGhpcy5lYXNlVG8odC5leHRlbmQoe3pvb206ZX0sciksbil9LHIucHJvdG90eXBlLnpvb21Jbj1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnpvb21Ubyh0aGlzLmdldFpvb20oKSsxLHQsZSksdGhpc30sci5wcm90b3R5cGUuem9vbU91dD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnpvb21Ubyh0aGlzLmdldFpvb20oKS0xLHQsZSksdGhpc30sci5wcm90b3R5cGUuZ2V0QmVhcmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRyYW5zZm9ybS5iZWFyaW5nfSxyLnByb3RvdHlwZS5zZXRCZWFyaW5nPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuanVtcFRvKHtiZWFyaW5nOnR9LGUpLHRoaXN9LHIucHJvdG90eXBlLmdldFBhZGRpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50cmFuc2Zvcm0ucGFkZGluZ30sci5wcm90b3R5cGUuc2V0UGFkZGluZz1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmp1bXBUbyh7cGFkZGluZzp0fSxlKSx0aGlzfSxyLnByb3RvdHlwZS5yb3RhdGVUbz1mdW5jdGlvbihlLHIsbil7cmV0dXJuIHRoaXMuZWFzZVRvKHQuZXh0ZW5kKHtiZWFyaW5nOmV9LHIpLG4pfSxyLnByb3RvdHlwZS5yZXNldE5vcnRoPWZ1bmN0aW9uKGUscil7cmV0dXJuIHRoaXMucm90YXRlVG8oMCx0LmV4dGVuZCh7ZHVyYXRpb246MWUzfSxlKSxyKSx0aGlzfSxyLnByb3RvdHlwZS5yZXNldE5vcnRoUGl0Y2g9ZnVuY3Rpb24oZSxyKXtyZXR1cm4gdGhpcy5lYXNlVG8odC5leHRlbmQoe2JlYXJpbmc6MCxwaXRjaDowLGR1cmF0aW9uOjFlM30sZSksciksdGhpc30sci5wcm90b3R5cGUuc25hcFRvTm9ydGg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gTWF0aC5hYnModGhpcy5nZXRCZWFyaW5nKCkpPHRoaXMuX2JlYXJpbmdTbmFwP3RoaXMucmVzZXROb3J0aCh0LGUpOnRoaXN9LHIucHJvdG90eXBlLmdldFBpdGNoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudHJhbnNmb3JtLnBpdGNofSxyLnByb3RvdHlwZS5zZXRQaXRjaD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmp1bXBUbyh7cGl0Y2g6dH0sZSksdGhpc30sci5wcm90b3R5cGUuY2FtZXJhRm9yQm91bmRzPWZ1bmN0aW9uKGUscil7cmV0dXJuIGU9dC5MbmdMYXRCb3VuZHMuY29udmVydChlKSx0aGlzLl9jYW1lcmFGb3JCb3hBbmRCZWFyaW5nKGUuZ2V0Tm9ydGhXZXN0KCksZS5nZXRTb3V0aEVhc3QoKSwwLHIpfSxyLnByb3RvdHlwZS5fY2FtZXJhRm9yQm94QW5kQmVhcmluZz1mdW5jdGlvbihlLHIsbixpKXt2YXIgYT17dG9wOjAsYm90dG9tOjAscmlnaHQ6MCxsZWZ0OjB9O2lmKCJudW1iZXIiPT10eXBlb2YoaT10LmV4dGVuZCh7cGFkZGluZzphLG9mZnNldDpbMCwwXSxtYXhab29tOnRoaXMudHJhbnNmb3JtLm1heFpvb219LGkpKS5wYWRkaW5nKXt2YXIgbz1pLnBhZGRpbmc7aS5wYWRkaW5nPXt0b3A6byxib3R0b206byxyaWdodDpvLGxlZnQ6b319aS5wYWRkaW5nPXQuZXh0ZW5kKGEsaS5wYWRkaW5nKTt2YXIgcz10aGlzLnRyYW5zZm9ybSxsPXMucGFkZGluZyxjPXMucHJvamVjdCh0LkxuZ0xhdC5jb252ZXJ0KGUpKSx1PXMucHJvamVjdCh0LkxuZ0xhdC5jb252ZXJ0KHIpKSxmPWMucm90YXRlKC1uKk1hdGguUEkvMTgwKSxoPXUucm90YXRlKC1uKk1hdGguUEkvMTgwKSxwPW5ldyB0LlBvaW50KE1hdGgubWF4KGYueCxoLngpLE1hdGgubWF4KGYueSxoLnkpKSxkPW5ldyB0LlBvaW50KE1hdGgubWluKGYueCxoLngpLE1hdGgubWluKGYueSxoLnkpKSxtPXAuc3ViKGQpLGc9KHMud2lkdGgtKGwubGVmdCtsLnJpZ2h0K2kucGFkZGluZy5sZWZ0K2kucGFkZGluZy5yaWdodCkpL20ueCx2PShzLmhlaWdodC0obC50b3ArbC5ib3R0b20raS5wYWRkaW5nLnRvcCtpLnBhZGRpbmcuYm90dG9tKSkvbS55O2lmKCEodjwwfHxnPDApKXt2YXIgeT1NYXRoLm1pbihzLnNjYWxlWm9vbShzLnNjYWxlKk1hdGgubWluKGcsdikpLGkubWF4Wm9vbSkseD10LlBvaW50LmNvbnZlcnQoaS5vZmZzZXQpLGI9KGkucGFkZGluZy5sZWZ0LWkucGFkZGluZy5yaWdodCkvMixfPShpLnBhZGRpbmcudG9wLWkucGFkZGluZy5ib3R0b20pLzIsdz1uZXcgdC5Qb2ludCh4LngrYix4LnkrXykubXVsdChzLnNjYWxlL3Muem9vbVNjYWxlKHkpKTtyZXR1cm57Y2VudGVyOnMudW5wcm9qZWN0KGMuYWRkKHUpLmRpdigyKS5zdWIodykpLHpvb206eSxiZWFyaW5nOm59fXQud2Fybk9uY2UoIk1hcCBjYW5ub3QgZml0IHdpdGhpbiBjYW52YXMgd2l0aCB0aGUgZ2l2ZW4gYm91bmRzLCBwYWRkaW5nLCBhbmQvb3Igb2Zmc2V0LiIpfSxyLnByb3RvdHlwZS5maXRCb3VuZHM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0aGlzLl9maXRJbnRlcm5hbCh0aGlzLmNhbWVyYUZvckJvdW5kcyh0LGUpLGUscil9LHIucHJvdG90eXBlLmZpdFNjcmVlbkNvb3JkaW5hdGVzPWZ1bmN0aW9uKGUscixuLGksYSl7cmV0dXJuIHRoaXMuX2ZpdEludGVybmFsKHRoaXMuX2NhbWVyYUZvckJveEFuZEJlYXJpbmcodGhpcy50cmFuc2Zvcm0ucG9pbnRMb2NhdGlvbih0LlBvaW50LmNvbnZlcnQoZSkpLHRoaXMudHJhbnNmb3JtLnBvaW50TG9jYXRpb24odC5Qb2ludC5jb252ZXJ0KHIpKSxuLGkpLGksYSl9LHIucHJvdG90eXBlLl9maXRJbnRlcm5hbD1mdW5jdGlvbihlLHIsbil7cmV0dXJuIGU/KGRlbGV0ZShyPXQuZXh0ZW5kKGUscikpLnBhZGRpbmcsci5saW5lYXI/dGhpcy5lYXNlVG8ocixuKTp0aGlzLmZseVRvKHIsbikpOnRoaXN9LHIucHJvdG90eXBlLmp1bXBUbz1mdW5jdGlvbihlLHIpe3RoaXMuc3RvcCgpO3ZhciBuPXRoaXMudHJhbnNmb3JtLGk9ITEsYT0hMSxvPSExO3JldHVybiJ6b29tImluIGUmJm4uem9vbSE9PStlLnpvb20mJihpPSEwLG4uem9vbT0rZS56b29tKSx2b2lkIDAhPT1lLmNlbnRlciYmKG4uY2VudGVyPXQuTG5nTGF0LmNvbnZlcnQoZS5jZW50ZXIpKSwiYmVhcmluZyJpbiBlJiZuLmJlYXJpbmchPT0rZS5iZWFyaW5nJiYoYT0hMCxuLmJlYXJpbmc9K2UuYmVhcmluZyksInBpdGNoImluIGUmJm4ucGl0Y2ghPT0rZS5waXRjaCYmKG89ITAsbi5waXRjaD0rZS5waXRjaCksbnVsbD09ZS5wYWRkaW5nfHxuLmlzUGFkZGluZ0VxdWFsKGUucGFkZGluZyl8fChuLnBhZGRpbmc9ZS5wYWRkaW5nKSx0aGlzLmZpcmUobmV3IHQuRXZlbnQoIm1vdmVzdGFydCIscikpLmZpcmUobmV3IHQuRXZlbnQoIm1vdmUiLHIpKSxpJiZ0aGlzLmZpcmUobmV3IHQuRXZlbnQoInpvb21zdGFydCIscikpLmZpcmUobmV3IHQuRXZlbnQoInpvb20iLHIpKS5maXJlKG5ldyB0LkV2ZW50KCJ6b29tZW5kIixyKSksYSYmdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJyb3RhdGVzdGFydCIscikpLmZpcmUobmV3IHQuRXZlbnQoInJvdGF0ZSIscikpLmZpcmUobmV3IHQuRXZlbnQoInJvdGF0ZWVuZCIscikpLG8mJnRoaXMuZmlyZShuZXcgdC5FdmVudCgicGl0Y2hzdGFydCIscikpLmZpcmUobmV3IHQuRXZlbnQoInBpdGNoIixyKSkuZmlyZShuZXcgdC5FdmVudCgicGl0Y2hlbmQiLHIpKSx0aGlzLmZpcmUobmV3IHQuRXZlbnQoIm1vdmVlbmQiLHIpKX0sci5wcm90b3R5cGUuZWFzZVRvPWZ1bmN0aW9uKGUscil7dmFyIG49dGhpczt0aGlzLl9zdG9wKCExLGUuZWFzZUlkKSwoITE9PT0oZT10LmV4dGVuZCh7b2Zmc2V0OlswLDBdLGR1cmF0aW9uOjUwMCxlYXNpbmc6dC5lYXNlfSxlKSkuYW5pbWF0ZXx8IWUuZXNzZW50aWFsJiZ0LmJyb3dzZXIucHJlZmVyc1JlZHVjZWRNb3Rpb24pJiYoZS5kdXJhdGlvbj0wKTt2YXIgaT10aGlzLnRyYW5zZm9ybSxhPXRoaXMuZ2V0Wm9vbSgpLG89dGhpcy5nZXRCZWFyaW5nKCkscz10aGlzLmdldFBpdGNoKCksbD10aGlzLmdldFBhZGRpbmcoKSxjPSJ6b29tImluIGU/K2Uuem9vbTphLHU9ImJlYXJpbmciaW4gZT90aGlzLl9ub3JtYWxpemVCZWFyaW5nKGUuYmVhcmluZyxvKTpvLGY9InBpdGNoImluIGU/K2UucGl0Y2g6cyxoPSJwYWRkaW5nImluIGU/ZS5wYWRkaW5nOmkucGFkZGluZyxwPXQuUG9pbnQuY29udmVydChlLm9mZnNldCksZD1pLmNlbnRlclBvaW50LmFkZChwKSxtPWkucG9pbnRMb2NhdGlvbihkKSxnPXQuTG5nTGF0LmNvbnZlcnQoZS5jZW50ZXJ8fG0pO3RoaXMuX25vcm1hbGl6ZUNlbnRlcihnKTt2YXIgdix5LHg9aS5wcm9qZWN0KG0pLGI9aS5wcm9qZWN0KGcpLnN1Yih4KSxfPWkuem9vbVNjYWxlKGMtYSk7ZS5hcm91bmQmJih2PXQuTG5nTGF0LmNvbnZlcnQoZS5hcm91bmQpLHk9aS5sb2NhdGlvblBvaW50KHYpKTt2YXIgdz17bW92aW5nOnRoaXMuX21vdmluZyx6b29taW5nOnRoaXMuX3pvb21pbmcscm90YXRpbmc6dGhpcy5fcm90YXRpbmcscGl0Y2hpbmc6dGhpcy5fcGl0Y2hpbmd9O3JldHVybiB0aGlzLl96b29taW5nPXRoaXMuX3pvb21pbmd8fGMhPT1hLHRoaXMuX3JvdGF0aW5nPXRoaXMuX3JvdGF0aW5nfHxvIT09dSx0aGlzLl9waXRjaGluZz10aGlzLl9waXRjaGluZ3x8ZiE9PXMsdGhpcy5fcGFkZGluZz0haS5pc1BhZGRpbmdFcXVhbChoKSx0aGlzLl9lYXNlSWQ9ZS5lYXNlSWQsdGhpcy5fcHJlcGFyZUVhc2UocixlLm5vTW92ZVN0YXJ0LHcpLGNsZWFyVGltZW91dCh0aGlzLl9lYXNlRW5kVGltZW91dElEKSx0aGlzLl9lYXNlKChmdW5jdGlvbihlKXtpZihuLl96b29taW5nJiYoaS56b29tPXQubnVtYmVyKGEsYyxlKSksbi5fcm90YXRpbmcmJihpLmJlYXJpbmc9dC5udW1iZXIobyx1LGUpKSxuLl9waXRjaGluZyYmKGkucGl0Y2g9dC5udW1iZXIocyxmLGUpKSxuLl9wYWRkaW5nJiYoaS5pbnRlcnBvbGF0ZVBhZGRpbmcobCxoLGUpLGQ9aS5jZW50ZXJQb2ludC5hZGQocCkpLHYpaS5zZXRMb2NhdGlvbkF0UG9pbnQodix5KTtlbHNle3ZhciBtPWkuem9vbVNjYWxlKGkuem9vbS1hKSxnPWM+YT9NYXRoLm1pbigyLF8pOk1hdGgubWF4KC41LF8pLHc9TWF0aC5wb3coZywxLWUpLFQ9aS51bnByb2plY3QoeC5hZGQoYi5tdWx0KGUqdykpLm11bHQobSkpO2kuc2V0TG9jYXRpb25BdFBvaW50KGkucmVuZGVyV29ybGRDb3BpZXM/VC53cmFwKCk6VCxkKX1uLl9maXJlTW92ZUV2ZW50cyhyKX0pLChmdW5jdGlvbih0KXtuLl9hZnRlckVhc2Uocix0KX0pLGUpLHRoaXN9LHIucHJvdG90eXBlLl9wcmVwYXJlRWFzZT1mdW5jdGlvbihlLHIsbil7dm9pZCAwPT09biYmKG49e30pLHRoaXMuX21vdmluZz0hMCxyfHxuLm1vdmluZ3x8dGhpcy5maXJlKG5ldyB0LkV2ZW50KCJtb3Zlc3RhcnQiLGUpKSx0aGlzLl96b29taW5nJiYhbi56b29taW5nJiZ0aGlzLmZpcmUobmV3IHQuRXZlbnQoInpvb21zdGFydCIsZSkpLHRoaXMuX3JvdGF0aW5nJiYhbi5yb3RhdGluZyYmdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJyb3RhdGVzdGFydCIsZSkpLHRoaXMuX3BpdGNoaW5nJiYhbi5waXRjaGluZyYmdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJwaXRjaHN0YXJ0IixlKSl9LHIucHJvdG90eXBlLl9maXJlTW92ZUV2ZW50cz1mdW5jdGlvbihlKXt0aGlzLmZpcmUobmV3IHQuRXZlbnQoIm1vdmUiLGUpKSx0aGlzLl96b29taW5nJiZ0aGlzLmZpcmUobmV3IHQuRXZlbnQoInpvb20iLGUpKSx0aGlzLl9yb3RhdGluZyYmdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJyb3RhdGUiLGUpKSx0aGlzLl9waXRjaGluZyYmdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJwaXRjaCIsZSkpfSxyLnByb3RvdHlwZS5fYWZ0ZXJFYXNlPWZ1bmN0aW9uKGUscil7aWYoIXRoaXMuX2Vhc2VJZHx8IXJ8fHRoaXMuX2Vhc2VJZCE9PXIpe2RlbGV0ZSB0aGlzLl9lYXNlSWQ7dmFyIG49dGhpcy5fem9vbWluZyxpPXRoaXMuX3JvdGF0aW5nLGE9dGhpcy5fcGl0Y2hpbmc7dGhpcy5fbW92aW5nPSExLHRoaXMuX3pvb21pbmc9ITEsdGhpcy5fcm90YXRpbmc9ITEsdGhpcy5fcGl0Y2hpbmc9ITEsdGhpcy5fcGFkZGluZz0hMSxuJiZ0aGlzLmZpcmUobmV3IHQuRXZlbnQoInpvb21lbmQiLGUpKSxpJiZ0aGlzLmZpcmUobmV3IHQuRXZlbnQoInJvdGF0ZWVuZCIsZSkpLGEmJnRoaXMuZmlyZShuZXcgdC5FdmVudCgicGl0Y2hlbmQiLGUpKSx0aGlzLmZpcmUobmV3IHQuRXZlbnQoIm1vdmVlbmQiLGUpKX19LHIucHJvdG90eXBlLmZseVRvPWZ1bmN0aW9uKGUscil7dmFyIG49dGhpcztpZighZS5lc3NlbnRpYWwmJnQuYnJvd3Nlci5wcmVmZXJzUmVkdWNlZE1vdGlvbil7dmFyIGk9dC5waWNrKGUsWyJjZW50ZXIiLCJ6b29tIiwiYmVhcmluZyIsInBpdGNoIiwiYXJvdW5kIl0pO3JldHVybiB0aGlzLmp1bXBUbyhpLHIpfXRoaXMuc3RvcCgpLGU9dC5leHRlbmQoe29mZnNldDpbMCwwXSxzcGVlZDoxLjIsY3VydmU6MS40MixlYXNpbmc6dC5lYXNlfSxlKTt2YXIgYT10aGlzLnRyYW5zZm9ybSxvPXRoaXMuZ2V0Wm9vbSgpLHM9dGhpcy5nZXRCZWFyaW5nKCksbD10aGlzLmdldFBpdGNoKCksYz10aGlzLmdldFBhZGRpbmcoKSx1PSJ6b29tImluIGU/dC5jbGFtcCgrZS56b29tLGEubWluWm9vbSxhLm1heFpvb20pOm8sZj0iYmVhcmluZyJpbiBlP3RoaXMuX25vcm1hbGl6ZUJlYXJpbmcoZS5iZWFyaW5nLHMpOnMsaD0icGl0Y2giaW4gZT8rZS5waXRjaDpsLHA9InBhZGRpbmciaW4gZT9lLnBhZGRpbmc6YS5wYWRkaW5nLGQ9YS56b29tU2NhbGUodS1vKSxtPXQuUG9pbnQuY29udmVydChlLm9mZnNldCksZz1hLmNlbnRlclBvaW50LmFkZChtKSx2PWEucG9pbnRMb2NhdGlvbihnKSx5PXQuTG5nTGF0LmNvbnZlcnQoZS5jZW50ZXJ8fHYpO3RoaXMuX25vcm1hbGl6ZUNlbnRlcih5KTt2YXIgeD1hLnByb2plY3QodiksYj1hLnByb2plY3QoeSkuc3ViKHgpLF89ZS5jdXJ2ZSx3PU1hdGgubWF4KGEud2lkdGgsYS5oZWlnaHQpLFQ9dy9kLGs9Yi5tYWcoKTtpZigibWluWm9vbSJpbiBlKXt2YXIgQT10LmNsYW1wKE1hdGgubWluKGUubWluWm9vbSxvLHUpLGEubWluWm9vbSxhLm1heFpvb20pLE09dy9hLnpvb21TY2FsZShBLW8pO189TWF0aC5zcXJ0KE0vayoyKX12YXIgUz1fKl87ZnVuY3Rpb24gRSh0KXt2YXIgZT0oVCpULXcqdysodD8tMToxKSpTKlMqayprKS8oMioodD9UOncpKlMqayk7cmV0dXJuIE1hdGgubG9nKE1hdGguc3FydChlKmUrMSktZSl9ZnVuY3Rpb24gTCh0KXtyZXR1cm4oTWF0aC5leHAodCktTWF0aC5leHAoLXQpKS8yfWZ1bmN0aW9uIEModCl7cmV0dXJuKE1hdGguZXhwKHQpK01hdGguZXhwKC10KSkvMn12YXIgUD1FKDApLEk9ZnVuY3Rpb24odCl7cmV0dXJuIEMoUCkvQyhQK18qdCl9LE89ZnVuY3Rpb24odCl7cmV0dXJuIHcqKChDKFApKihMKGU9UCtfKnQpL0MoZSkpLUwoUCkpL1MpL2s7dmFyIGV9LHo9KEUoMSktUCkvXztpZihNYXRoLmFicyhrKTwxZS02fHwhaXNGaW5pdGUoeikpe2lmKE1hdGguYWJzKHctVCk8MWUtNilyZXR1cm4gdGhpcy5lYXNlVG8oZSxyKTt2YXIgRD1UPHc/LTE6MTt6PU1hdGguYWJzKE1hdGgubG9nKFQvdykpL18sTz1mdW5jdGlvbigpe3JldHVybiAwfSxJPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLmV4cChEKl8qdCl9fWlmKCJkdXJhdGlvbiJpbiBlKWUuZHVyYXRpb249K2UuZHVyYXRpb247ZWxzZXt2YXIgUj0ic2NyZWVuU3BlZWQiaW4gZT8rZS5zY3JlZW5TcGVlZC9fOitlLnNwZWVkO2UuZHVyYXRpb249MWUzKnovUn1yZXR1cm4gZS5tYXhEdXJhdGlvbiYmZS5kdXJhdGlvbj5lLm1heER1cmF0aW9uJiYoZS5kdXJhdGlvbj0wKSx0aGlzLl96b29taW5nPSEwLHRoaXMuX3JvdGF0aW5nPXMhPT1mLHRoaXMuX3BpdGNoaW5nPWghPT1sLHRoaXMuX3BhZGRpbmc9IWEuaXNQYWRkaW5nRXF1YWwocCksdGhpcy5fcHJlcGFyZUVhc2UociwhMSksdGhpcy5fZWFzZSgoZnVuY3Rpb24oZSl7dmFyIGk9ZSp6LGQ9MS9JKGkpO2Euem9vbT0xPT09ZT91Om8rYS5zY2FsZVpvb20oZCksbi5fcm90YXRpbmcmJihhLmJlYXJpbmc9dC5udW1iZXIocyxmLGUpKSxuLl9waXRjaGluZyYmKGEucGl0Y2g9dC5udW1iZXIobCxoLGUpKSxuLl9wYWRkaW5nJiYoYS5pbnRlcnBvbGF0ZVBhZGRpbmcoYyxwLGUpLGc9YS5jZW50ZXJQb2ludC5hZGQobSkpO3ZhciB2PTE9PT1lP3k6YS51bnByb2plY3QoeC5hZGQoYi5tdWx0KE8oaSkpKS5tdWx0KGQpKTthLnNldExvY2F0aW9uQXRQb2ludChhLnJlbmRlcldvcmxkQ29waWVzP3Yud3JhcCgpOnYsZyksbi5fZmlyZU1vdmVFdmVudHMocil9KSwoZnVuY3Rpb24oKXtyZXR1cm4gbi5fYWZ0ZXJFYXNlKHIpfSksZSksdGhpc30sci5wcm90b3R5cGUuaXNFYXNpbmc9ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuX2Vhc2VGcmFtZUlkfSxyLnByb3RvdHlwZS5zdG9wPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0b3AoKX0sci5wcm90b3R5cGUuX3N0b3A9ZnVuY3Rpb24odCxlKXtpZih0aGlzLl9lYXNlRnJhbWVJZCYmKHRoaXMuX2NhbmNlbFJlbmRlckZyYW1lKHRoaXMuX2Vhc2VGcmFtZUlkKSxkZWxldGUgdGhpcy5fZWFzZUZyYW1lSWQsZGVsZXRlIHRoaXMuX29uRWFzZUZyYW1lKSx0aGlzLl9vbkVhc2VFbmQpe3ZhciByPXRoaXMuX29uRWFzZUVuZDtkZWxldGUgdGhpcy5fb25FYXNlRW5kLHIuY2FsbCh0aGlzLGUpfWlmKCF0KXt2YXIgbj10aGlzLmhhbmRsZXJzO24mJm4uc3RvcCgpfXJldHVybiB0aGlzfSxyLnByb3RvdHlwZS5fZWFzZT1mdW5jdGlvbihlLHIsbil7ITE9PT1uLmFuaW1hdGV8fDA9PT1uLmR1cmF0aW9uPyhlKDEpLHIoKSk6KHRoaXMuX2Vhc2VTdGFydD10LmJyb3dzZXIubm93KCksdGhpcy5fZWFzZU9wdGlvbnM9bix0aGlzLl9vbkVhc2VGcmFtZT1lLHRoaXMuX29uRWFzZUVuZD1yLHRoaXMuX2Vhc2VGcmFtZUlkPXRoaXMuX3JlcXVlc3RSZW5kZXJGcmFtZSh0aGlzLl9yZW5kZXJGcmFtZUNhbGxiYWNrKSl9LHIucHJvdG90eXBlLl9yZW5kZXJGcmFtZUNhbGxiYWNrPWZ1bmN0aW9uKCl7dmFyIGU9TWF0aC5taW4oKHQuYnJvd3Nlci5ub3coKS10aGlzLl9lYXNlU3RhcnQpL3RoaXMuX2Vhc2VPcHRpb25zLmR1cmF0aW9uLDEpO3RoaXMuX29uRWFzZUZyYW1lKHRoaXMuX2Vhc2VPcHRpb25zLmVhc2luZyhlKSksZTwxP3RoaXMuX2Vhc2VGcmFtZUlkPXRoaXMuX3JlcXVlc3RSZW5kZXJGcmFtZSh0aGlzLl9yZW5kZXJGcmFtZUNhbGxiYWNrKTp0aGlzLnN0b3AoKX0sci5wcm90b3R5cGUuX25vcm1hbGl6ZUJlYXJpbmc9ZnVuY3Rpb24oZSxyKXtlPXQud3JhcChlLC0xODAsMTgwKTt2YXIgbj1NYXRoLmFicyhlLXIpO3JldHVybiBNYXRoLmFicyhlLTM2MC1yKTxuJiYoZS09MzYwKSxNYXRoLmFicyhlKzM2MC1yKTxuJiYoZSs9MzYwKSxlfSxyLnByb3RvdHlwZS5fbm9ybWFsaXplQ2VudGVyPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMudHJhbnNmb3JtO2lmKGUucmVuZGVyV29ybGRDb3BpZXMmJiFlLmxuZ1JhbmdlKXt2YXIgcj10LmxuZy1lLmNlbnRlci5sbmc7dC5sbmcrPXI+MTgwPy0zNjA6cjwtMTgwPzM2MDowfX0scn0odC5FdmVudGVkKSxiaT1mdW5jdGlvbihlKXt2b2lkIDA9PT1lJiYoZT17fSksdGhpcy5vcHRpb25zPWUsdC5iaW5kQWxsKFsiX3VwZGF0ZUVkaXRMaW5rIiwiX3VwZGF0ZURhdGEiLCJfdXBkYXRlQ29tcGFjdCJdLHRoaXMpfTtiaS5wcm90b3R5cGUuZ2V0RGVmYXVsdFBvc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuImJvdHRvbS1yaWdodCJ9LGJpLnByb3RvdHlwZS5vbkFkZD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLm9wdGlvbnMmJnRoaXMub3B0aW9ucy5jb21wYWN0O3JldHVybiB0aGlzLl9tYXA9dCx0aGlzLl9jb250YWluZXI9ci5jcmVhdGUoImRpdiIsIm1hcGJveGdsLWN0cmwgbWFwYm94Z2wtY3RybC1hdHRyaWIiKSx0aGlzLl9pbm5lckNvbnRhaW5lcj1yLmNyZWF0ZSgiZGl2IiwibWFwYm94Z2wtY3RybC1hdHRyaWItaW5uZXIiLHRoaXMuX2NvbnRhaW5lciksZSYmdGhpcy5fY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLWNvbXBhY3QiKSx0aGlzLl91cGRhdGVBdHRyaWJ1dGlvbnMoKSx0aGlzLl91cGRhdGVFZGl0TGluaygpLHRoaXMuX21hcC5vbigic3R5bGVkYXRhIix0aGlzLl91cGRhdGVEYXRhKSx0aGlzLl9tYXAub24oInNvdXJjZWRhdGEiLHRoaXMuX3VwZGF0ZURhdGEpLHRoaXMuX21hcC5vbigibW92ZWVuZCIsdGhpcy5fdXBkYXRlRWRpdExpbmspLHZvaWQgMD09PWUmJih0aGlzLl9tYXAub24oInJlc2l6ZSIsdGhpcy5fdXBkYXRlQ29tcGFjdCksdGhpcy5fdXBkYXRlQ29tcGFjdCgpKSx0aGlzLl9jb250YWluZXJ9LGJpLnByb3RvdHlwZS5vblJlbW92ZT1mdW5jdGlvbigpe3IucmVtb3ZlKHRoaXMuX2NvbnRhaW5lciksdGhpcy5fbWFwLm9mZigic3R5bGVkYXRhIix0aGlzLl91cGRhdGVEYXRhKSx0aGlzLl9tYXAub2ZmKCJzb3VyY2VkYXRhIix0aGlzLl91cGRhdGVEYXRhKSx0aGlzLl9tYXAub2ZmKCJtb3ZlZW5kIix0aGlzLl91cGRhdGVFZGl0TGluayksdGhpcy5fbWFwLm9mZigicmVzaXplIix0aGlzLl91cGRhdGVDb21wYWN0KSx0aGlzLl9tYXA9dm9pZCAwLHRoaXMuX2F0dHJpYkhUTUw9dm9pZCAwfSxiaS5wcm90b3R5cGUuX3VwZGF0ZUVkaXRMaW5rPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fZWRpdExpbms7ZXx8KGU9dGhpcy5fZWRpdExpbms9dGhpcy5fY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoIi5tYXBib3gtaW1wcm92ZS1tYXAiKSk7dmFyIHI9W3trZXk6Im93bmVyIix2YWx1ZTp0aGlzLnN0eWxlT3duZXJ9LHtrZXk6ImlkIix2YWx1ZTp0aGlzLnN0eWxlSWR9LHtrZXk6ImFjY2Vzc190b2tlbiIsdmFsdWU6dGhpcy5fbWFwLl9yZXF1ZXN0TWFuYWdlci5fY3VzdG9tQWNjZXNzVG9rZW58fHQuY29uZmlnLkFDQ0VTU19UT0tFTn1dO2lmKGUpe3ZhciBuPXIucmVkdWNlKChmdW5jdGlvbih0LGUsbil7cmV0dXJuIGUudmFsdWUmJih0Kz1lLmtleSsiPSIrZS52YWx1ZSsobjxyLmxlbmd0aC0xPyImIjoiIikpLHR9KSwiPyIpO2UuaHJlZj10LmNvbmZpZy5GRUVEQkFDS19VUkwrIi8iK24rKHRoaXMuX21hcC5faGFzaD90aGlzLl9tYXAuX2hhc2guZ2V0SGFzaFN0cmluZyghMCk6IiIpLGUucmVsPSJub29wZW5lciBub2ZvbGxvdyJ9fSxiaS5wcm90b3R5cGUuX3VwZGF0ZURhdGE9ZnVuY3Rpb24odCl7IXR8fCJtZXRhZGF0YSIhPT10LnNvdXJjZURhdGFUeXBlJiYic3R5bGUiIT09dC5kYXRhVHlwZXx8KHRoaXMuX3VwZGF0ZUF0dHJpYnV0aW9ucygpLHRoaXMuX3VwZGF0ZUVkaXRMaW5rKCkpfSxiaS5wcm90b3R5cGUuX3VwZGF0ZUF0dHJpYnV0aW9ucz1mdW5jdGlvbigpe2lmKHRoaXMuX21hcC5zdHlsZSl7dmFyIHQ9W107aWYodGhpcy5vcHRpb25zLmN1c3RvbUF0dHJpYnV0aW9uJiYoQXJyYXkuaXNBcnJheSh0aGlzLm9wdGlvbnMuY3VzdG9tQXR0cmlidXRpb24pP3Q9dC5jb25jYXQodGhpcy5vcHRpb25zLmN1c3RvbUF0dHJpYnV0aW9uLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuInN0cmluZyIhPXR5cGVvZiB0PyIiOnR9KSkpOiJzdHJpbmciPT10eXBlb2YgdGhpcy5vcHRpb25zLmN1c3RvbUF0dHJpYnV0aW9uJiZ0LnB1c2godGhpcy5vcHRpb25zLmN1c3RvbUF0dHJpYnV0aW9uKSksdGhpcy5fbWFwLnN0eWxlLnN0eWxlc2hlZXQpe3ZhciBlPXRoaXMuX21hcC5zdHlsZS5zdHlsZXNoZWV0O3RoaXMuc3R5bGVPd25lcj1lLm93bmVyLHRoaXMuc3R5bGVJZD1lLmlkfXZhciByPXRoaXMuX21hcC5zdHlsZS5zb3VyY2VDYWNoZXM7Zm9yKHZhciBuIGluIHIpe3ZhciBpPXJbbl07aWYoaS51c2VkKXt2YXIgYT1pLmdldFNvdXJjZSgpO2EuYXR0cmlidXRpb24mJnQuaW5kZXhPZihhLmF0dHJpYnV0aW9uKTwwJiZ0LnB1c2goYS5hdHRyaWJ1dGlvbil9fXQuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5sZW5ndGgtZS5sZW5ndGh9KSk7dmFyIG89KHQ9dC5maWx0ZXIoKGZ1bmN0aW9uKGUscil7Zm9yKHZhciBuPXIrMTtuPHQubGVuZ3RoO24rKylpZih0W25dLmluZGV4T2YoZSk+PTApcmV0dXJuITE7cmV0dXJuITB9KSkpLmpvaW4oIiB8ICIpO28hPT10aGlzLl9hdHRyaWJIVE1MJiYodGhpcy5fYXR0cmliSFRNTD1vLHQubGVuZ3RoPyh0aGlzLl9pbm5lckNvbnRhaW5lci5pbm5lckhUTUw9byx0aGlzLl9jb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSgibWFwYm94Z2wtYXR0cmliLWVtcHR5IikpOnRoaXMuX2NvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJtYXBib3hnbC1hdHRyaWItZW1wdHkiKSx0aGlzLl9lZGl0TGluaz1udWxsKX19LGJpLnByb3RvdHlwZS5fdXBkYXRlQ29tcGFjdD1mdW5jdGlvbigpe3RoaXMuX21hcC5nZXRDYW52YXNDb250YWluZXIoKS5vZmZzZXRXaWR0aDw9NjQwP3RoaXMuX2NvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJtYXBib3hnbC1jb21wYWN0Iik6dGhpcy5fY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoIm1hcGJveGdsLWNvbXBhY3QiKX07dmFyIF9pPWZ1bmN0aW9uKCl7dC5iaW5kQWxsKFsiX3VwZGF0ZUxvZ28iXSx0aGlzKSx0LmJpbmRBbGwoWyJfdXBkYXRlQ29tcGFjdCJdLHRoaXMpfTtfaS5wcm90b3R5cGUub25BZGQ9ZnVuY3Rpb24odCl7dGhpcy5fbWFwPXQsdGhpcy5fY29udGFpbmVyPXIuY3JlYXRlKCJkaXYiLCJtYXBib3hnbC1jdHJsIik7dmFyIGU9ci5jcmVhdGUoImEiLCJtYXBib3hnbC1jdHJsLWxvZ28iKTtyZXR1cm4gZS50YXJnZXQ9Il9ibGFuayIsZS5yZWw9Im5vb3BlbmVyIG5vZm9sbG93IixlLmhyZWY9Imh0dHBzOi8vd3d3Lm1hcGJveC5jb20vIixlLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsdGhpcy5fbWFwLl9nZXRVSVN0cmluZygiTG9nb0NvbnRyb2wuVGl0bGUiKSksZS5zZXRBdHRyaWJ1dGUoInJlbCIsIm5vb3BlbmVyIG5vZm9sbG93IiksdGhpcy5fY29udGFpbmVyLmFwcGVuZENoaWxkKGUpLHRoaXMuX2NvbnRhaW5lci5zdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLl9tYXAub24oInNvdXJjZWRhdGEiLHRoaXMuX3VwZGF0ZUxvZ28pLHRoaXMuX3VwZGF0ZUxvZ28oKSx0aGlzLl9tYXAub24oInJlc2l6ZSIsdGhpcy5fdXBkYXRlQ29tcGFjdCksdGhpcy5fdXBkYXRlQ29tcGFjdCgpLHRoaXMuX2NvbnRhaW5lcn0sX2kucHJvdG90eXBlLm9uUmVtb3ZlPWZ1bmN0aW9uKCl7ci5yZW1vdmUodGhpcy5fY29udGFpbmVyKSx0aGlzLl9tYXAub2ZmKCJzb3VyY2VkYXRhIix0aGlzLl91cGRhdGVMb2dvKSx0aGlzLl9tYXAub2ZmKCJyZXNpemUiLHRoaXMuX3VwZGF0ZUNvbXBhY3QpfSxfaS5wcm90b3R5cGUuZ2V0RGVmYXVsdFBvc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuImJvdHRvbS1sZWZ0In0sX2kucHJvdG90eXBlLl91cGRhdGVMb2dvPWZ1bmN0aW9uKHQpe3QmJiJtZXRhZGF0YSIhPT10LnNvdXJjZURhdGFUeXBlfHwodGhpcy5fY29udGFpbmVyLnN0eWxlLmRpc3BsYXk9dGhpcy5fbG9nb1JlcXVpcmVkKCk/ImJsb2NrIjoibm9uZSIpfSxfaS5wcm90b3R5cGUuX2xvZ29SZXF1aXJlZD1mdW5jdGlvbigpe2lmKHRoaXMuX21hcC5zdHlsZSl7dmFyIHQ9dGhpcy5fbWFwLnN0eWxlLnNvdXJjZUNhY2hlcztmb3IodmFyIGUgaW4gdCl7aWYodFtlXS5nZXRTb3VyY2UoKS5tYXBib3hfbG9nbylyZXR1cm4hMH1yZXR1cm4hMX19LF9pLnByb3RvdHlwZS5fdXBkYXRlQ29tcGFjdD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2NvbnRhaW5lci5jaGlsZHJlbjtpZih0Lmxlbmd0aCl7dmFyIGU9dFswXTt0aGlzLl9tYXAuZ2V0Q2FudmFzQ29udGFpbmVyKCkub2Zmc2V0V2lkdGg8MjUwP2UuY2xhc3NMaXN0LmFkZCgibWFwYm94Z2wtY29tcGFjdCIpOmUuY2xhc3NMaXN0LnJlbW92ZSgibWFwYm94Z2wtY29tcGFjdCIpfX07dmFyIHdpPWZ1bmN0aW9uKCl7dGhpcy5fcXVldWU9W10sdGhpcy5faWQ9MCx0aGlzLl9jbGVhcmVkPSExLHRoaXMuX2N1cnJlbnRseVJ1bm5pbmc9ITF9O3dpLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24odCl7dmFyIGU9Kyt0aGlzLl9pZDtyZXR1cm4gdGhpcy5fcXVldWUucHVzaCh7Y2FsbGJhY2s6dCxpZDplLGNhbmNlbGxlZDohMX0pLGV9LHdpLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMuX2N1cnJlbnRseVJ1bm5pbmcscj0wLG49ZT90aGlzLl9xdWV1ZS5jb25jYXQoZSk6dGhpcy5fcXVldWU7cjxuLmxlbmd0aDtyKz0xKXt2YXIgaT1uW3JdO2lmKGkuaWQ9PT10KXJldHVybiB2b2lkKGkuY2FuY2VsbGVkPSEwKX19LHdpLnByb3RvdHlwZS5ydW49ZnVuY3Rpb24odCl7dm9pZCAwPT09dCYmKHQ9MCk7dmFyIGU9dGhpcy5fY3VycmVudGx5UnVubmluZz10aGlzLl9xdWV1ZTt0aGlzLl9xdWV1ZT1bXTtmb3IodmFyIHI9MCxuPWU7cjxuLmxlbmd0aDtyKz0xKXt2YXIgaT1uW3JdO2lmKCFpLmNhbmNlbGxlZCYmKGkuY2FsbGJhY2sodCksdGhpcy5fY2xlYXJlZCkpYnJlYWt9dGhpcy5fY2xlYXJlZD0hMSx0aGlzLl9jdXJyZW50bHlSdW5uaW5nPSExfSx3aS5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9jdXJyZW50bHlSdW5uaW5nJiYodGhpcy5fY2xlYXJlZD0hMCksdGhpcy5fcXVldWU9W119O3ZhciBUaT17IkZ1bGxzY3JlZW5Db250cm9sLkVudGVyIjoiRW50ZXIgZnVsbHNjcmVlbiIsIkZ1bGxzY3JlZW5Db250cm9sLkV4aXQiOiJFeGl0IGZ1bGxzY3JlZW4iLCJHZW9sb2NhdGVDb250cm9sLkZpbmRNeUxvY2F0aW9uIjoiRmluZCBteSBsb2NhdGlvbiIsIkdlb2xvY2F0ZUNvbnRyb2wuTG9jYXRpb25Ob3RBdmFpbGFibGUiOiJMb2NhdGlvbiBub3QgYXZhaWxhYmxlIiwiTG9nb0NvbnRyb2wuVGl0bGUiOiJNYXBib3ggbG9nbyIsIk5hdmlnYXRpb25Db250cm9sLlJlc2V0QmVhcmluZyI6IlJlc2V0IGJlYXJpbmcgdG8gbm9ydGgiLCJOYXZpZ2F0aW9uQ29udHJvbC5ab29tSW4iOiJab29tIGluIiwiTmF2aWdhdGlvbkNvbnRyb2wuWm9vbU91dCI6Ilpvb20gb3V0IiwiU2NhbGVDb250cm9sLkZlZXQiOiJmdCIsIlNjYWxlQ29udHJvbC5NZXRlcnMiOiJtIiwiU2NhbGVDb250cm9sLktpbG9tZXRlcnMiOiJrbSIsIlNjYWxlQ29udHJvbC5NaWxlcyI6Im1pIiwiU2NhbGVDb250cm9sLk5hdXRpY2FsTWlsZXMiOiJubSJ9LGtpPXQud2luZG93LkhUTUxJbWFnZUVsZW1lbnQsQWk9dC53aW5kb3cuSFRNTEVsZW1lbnQsTWk9dC53aW5kb3cuSW1hZ2VCaXRtYXAsU2k9e2NlbnRlcjpbMCwwXSx6b29tOjAsYmVhcmluZzowLHBpdGNoOjAsbWluWm9vbTotMixtYXhab29tOjIyLG1pblBpdGNoOjAsbWF4UGl0Y2g6NjAsaW50ZXJhY3RpdmU6ITAsc2Nyb2xsWm9vbTohMCxib3hab29tOiEwLGRyYWdSb3RhdGU6ITAsZHJhZ1BhbjohMCxrZXlib2FyZDohMCxkb3VibGVDbGlja1pvb206ITAsdG91Y2hab29tUm90YXRlOiEwLHRvdWNoUGl0Y2g6ITAsYmVhcmluZ1NuYXA6NyxjbGlja1RvbGVyYW5jZTozLHBpdGNoV2l0aFJvdGF0ZTohMCxoYXNoOiExLGF0dHJpYnV0aW9uQ29udHJvbDohMCxmYWlsSWZNYWpvclBlcmZvcm1hbmNlQ2F2ZWF0OiExLHByZXNlcnZlRHJhd2luZ0J1ZmZlcjohMSx0cmFja1Jlc2l6ZTohMCxyZW5kZXJXb3JsZENvcGllczohMCxyZWZyZXNoRXhwaXJlZFRpbGVzOiEwLG1heFRpbGVDYWNoZVNpemU6bnVsbCxsb2NhbElkZW9ncmFwaEZvbnRGYW1pbHk6InNhbnMtc2VyaWYiLHRyYW5zZm9ybVJlcXVlc3Q6bnVsbCxhY2Nlc3NUb2tlbjpudWxsLGZhZGVEdXJhdGlvbjozMDAsY3Jvc3NTb3VyY2VDb2xsaXNpb25zOiEwfSxFaT1mdW5jdGlvbihuKXtmdW5jdGlvbiBpKGUpe3ZhciByPXRoaXM7aWYobnVsbCE9KGU9dC5leHRlbmQoe30sU2ksZSkpLm1pblpvb20mJm51bGwhPWUubWF4Wm9vbSYmZS5taW5ab29tPmUubWF4Wm9vbSl0aHJvdyBuZXcgRXJyb3IoIm1heFpvb20gbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gbWluWm9vbSIpO2lmKG51bGwhPWUubWluUGl0Y2gmJm51bGwhPWUubWF4UGl0Y2gmJmUubWluUGl0Y2g+ZS5tYXhQaXRjaCl0aHJvdyBuZXcgRXJyb3IoIm1heFBpdGNoIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIG1pblBpdGNoIik7aWYobnVsbCE9ZS5taW5QaXRjaCYmZS5taW5QaXRjaDwwKXRocm93IG5ldyBFcnJvcigibWluUGl0Y2ggbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMCIpO2lmKG51bGwhPWUubWF4UGl0Y2gmJmUubWF4UGl0Y2g+NjApdGhyb3cgbmV3IEVycm9yKCJtYXhQaXRjaCBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byA2MCIpO3ZhciBpPW5ldyBBbihlLm1pblpvb20sZS5tYXhab29tLGUubWluUGl0Y2gsZS5tYXhQaXRjaCxlLnJlbmRlcldvcmxkQ29waWVzKTtpZihuLmNhbGwodGhpcyxpLGUpLHRoaXMuX2ludGVyYWN0aXZlPWUuaW50ZXJhY3RpdmUsdGhpcy5fbWF4VGlsZUNhY2hlU2l6ZT1lLm1heFRpbGVDYWNoZVNpemUsdGhpcy5fZmFpbElmTWFqb3JQZXJmb3JtYW5jZUNhdmVhdD1lLmZhaWxJZk1ham9yUGVyZm9ybWFuY2VDYXZlYXQsdGhpcy5fcHJlc2VydmVEcmF3aW5nQnVmZmVyPWUucHJlc2VydmVEcmF3aW5nQnVmZmVyLHRoaXMuX2FudGlhbGlhcz1lLmFudGlhbGlhcyx0aGlzLl90cmFja1Jlc2l6ZT1lLnRyYWNrUmVzaXplLHRoaXMuX2JlYXJpbmdTbmFwPWUuYmVhcmluZ1NuYXAsdGhpcy5fcmVmcmVzaEV4cGlyZWRUaWxlcz1lLnJlZnJlc2hFeHBpcmVkVGlsZXMsdGhpcy5fZmFkZUR1cmF0aW9uPWUuZmFkZUR1cmF0aW9uLHRoaXMuX2Nyb3NzU291cmNlQ29sbGlzaW9ucz1lLmNyb3NzU291cmNlQ29sbGlzaW9ucyx0aGlzLl9jcm9zc0ZhZGluZ0ZhY3Rvcj0xLHRoaXMuX2NvbGxlY3RSZXNvdXJjZVRpbWluZz1lLmNvbGxlY3RSZXNvdXJjZVRpbWluZyx0aGlzLl9yZW5kZXJUYXNrUXVldWU9bmV3IHdpLHRoaXMuX2NvbnRyb2xzPVtdLHRoaXMuX21hcElkPXQudW5pcXVlSWQoKSx0aGlzLl9sb2NhbGU9dC5leHRlbmQoe30sVGksZS5sb2NhbGUpLHRoaXMuX3JlcXVlc3RNYW5hZ2VyPW5ldyB0LlJlcXVlc3RNYW5hZ2VyKGUudHJhbnNmb3JtUmVxdWVzdCxlLmFjY2Vzc1Rva2VuKSwic3RyaW5nIj09dHlwZW9mIGUuY29udGFpbmVyKXtpZih0aGlzLl9jb250YWluZXI9dC53aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZS5jb250YWluZXIpLCF0aGlzLl9jb250YWluZXIpdGhyb3cgbmV3IEVycm9yKCJDb250YWluZXIgJyIrZS5jb250YWluZXIrIicgbm90IGZvdW5kLiIpfWVsc2V7aWYoIShlLmNvbnRhaW5lciBpbnN0YW5jZW9mIEFpKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgdHlwZTogJ2NvbnRhaW5lcicgbXVzdCBiZSBhIFN0cmluZyBvciBIVE1MRWxlbWVudC4iKTt0aGlzLl9jb250YWluZXI9ZS5jb250YWluZXJ9aWYoZS5tYXhCb3VuZHMmJnRoaXMuc2V0TWF4Qm91bmRzKGUubWF4Qm91bmRzKSx0LmJpbmRBbGwoWyJfb25XaW5kb3dPbmxpbmUiLCJfb25XaW5kb3dSZXNpemUiLCJfY29udGV4dExvc3QiLCJfY29udGV4dFJlc3RvcmVkIl0sdGhpcyksdGhpcy5fc2V0dXBDb250YWluZXIoKSx0aGlzLl9zZXR1cFBhaW50ZXIoKSx2b2lkIDA9PT10aGlzLnBhaW50ZXIpdGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBXZWJHTC4iKTt0aGlzLm9uKCJtb3ZlIiwoZnVuY3Rpb24oKXtyZXR1cm4gci5fdXBkYXRlKCExKX0pKSx0aGlzLm9uKCJtb3ZlZW5kIiwoZnVuY3Rpb24oKXtyZXR1cm4gci5fdXBkYXRlKCExKX0pKSx0aGlzLm9uKCJ6b29tIiwoZnVuY3Rpb24oKXtyZXR1cm4gci5fdXBkYXRlKCEwKX0pKSx2b2lkIDAhPT10LndpbmRvdyYmKHQud2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9ubGluZSIsdGhpcy5fb25XaW5kb3dPbmxpbmUsITEpLHQud2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5fb25XaW5kb3dSZXNpemUsITEpKSx0aGlzLmhhbmRsZXJzPW5ldyB5aSh0aGlzLGUpO3ZhciBhPSJzdHJpbmciPT10eXBlb2YgZS5oYXNoJiZlLmhhc2h8fHZvaWQgMDt0aGlzLl9oYXNoPWUuaGFzaCYmbmV3IFNuKGEpLmFkZFRvKHRoaXMpLHRoaXMuX2hhc2gmJnRoaXMuX2hhc2guX29uSGFzaENoYW5nZSgpfHwodGhpcy5qdW1wVG8oe2NlbnRlcjplLmNlbnRlcix6b29tOmUuem9vbSxiZWFyaW5nOmUuYmVhcmluZyxwaXRjaDplLnBpdGNofSksZS5ib3VuZHMmJih0aGlzLnJlc2l6ZSgpLHRoaXMuZml0Qm91bmRzKGUuYm91bmRzLHQuZXh0ZW5kKHt9LGUuZml0Qm91bmRzT3B0aW9ucyx7ZHVyYXRpb246MH0pKSkpLHRoaXMucmVzaXplKCksdGhpcy5fbG9jYWxJZGVvZ3JhcGhGb250RmFtaWx5PWUubG9jYWxJZGVvZ3JhcGhGb250RmFtaWx5LGUuc3R5bGUmJnRoaXMuc2V0U3R5bGUoZS5zdHlsZSx7bG9jYWxJZGVvZ3JhcGhGb250RmFtaWx5OmUubG9jYWxJZGVvZ3JhcGhGb250RmFtaWx5fSksZS5hdHRyaWJ1dGlvbkNvbnRyb2wmJnRoaXMuYWRkQ29udHJvbChuZXcgYmkoe2N1c3RvbUF0dHJpYnV0aW9uOmUuY3VzdG9tQXR0cmlidXRpb259KSksdGhpcy5hZGRDb250cm9sKG5ldyBfaSxlLmxvZ29Qb3NpdGlvbiksdGhpcy5vbigic3R5bGUubG9hZCIsKGZ1bmN0aW9uKCl7ci50cmFuc2Zvcm0udW5tb2RpZmllZCYmci5qdW1wVG8oci5zdHlsZS5zdHlsZXNoZWV0KX0pKSx0aGlzLm9uKCJkYXRhIiwoZnVuY3Rpb24oZSl7ci5fdXBkYXRlKCJzdHlsZSI9PT1lLmRhdGFUeXBlKSxyLmZpcmUobmV3IHQuRXZlbnQoZS5kYXRhVHlwZSsiZGF0YSIsZSkpfSkpLHRoaXMub24oImRhdGFsb2FkaW5nIiwoZnVuY3Rpb24oZSl7ci5maXJlKG5ldyB0LkV2ZW50KGUuZGF0YVR5cGUrImRhdGFsb2FkaW5nIixlKSl9KSl9biYmKGkuX19wcm90b19fPW4pLGkucHJvdG90eXBlPU9iamVjdC5jcmVhdGUobiYmbi5wcm90b3R5cGUpLGkucHJvdG90eXBlLmNvbnN0cnVjdG9yPWk7dmFyIGE9e3Nob3dUaWxlQm91bmRhcmllczp7Y29uZmlndXJhYmxlOiEwfSxzaG93UGFkZGluZzp7Y29uZmlndXJhYmxlOiEwfSxzaG93Q29sbGlzaW9uQm94ZXM6e2NvbmZpZ3VyYWJsZTohMH0sc2hvd092ZXJkcmF3SW5zcGVjdG9yOntjb25maWd1cmFibGU6ITB9LHJlcGFpbnQ6e2NvbmZpZ3VyYWJsZTohMH0sdmVydGljZXM6e2NvbmZpZ3VyYWJsZTohMH0sdmVyc2lvbjp7Y29uZmlndXJhYmxlOiEwfX07cmV0dXJuIGkucHJvdG90eXBlLl9nZXRNYXBJZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9tYXBJZH0saS5wcm90b3R5cGUuYWRkQ29udHJvbD1mdW5jdGlvbihlLHIpe2lmKHZvaWQgMD09PXImJmUuZ2V0RGVmYXVsdFBvc2l0aW9uJiYocj1lLmdldERlZmF1bHRQb3NpdGlvbigpKSx2b2lkIDA9PT1yJiYocj0idG9wLXJpZ2h0IiksIWV8fCFlLm9uQWRkKXJldHVybiB0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoIkludmFsaWQgYXJndW1lbnQgdG8gbWFwLmFkZENvbnRyb2woKS4gQXJndW1lbnQgbXVzdCBiZSBhIGNvbnRyb2wgd2l0aCBvbkFkZCBhbmQgb25SZW1vdmUgbWV0aG9kcy4iKSkpO3ZhciBuPWUub25BZGQodGhpcyk7dGhpcy5fY29udHJvbHMucHVzaChlKTt2YXIgaT10aGlzLl9jb250cm9sUG9zaXRpb25zW3JdO3JldHVybi0xIT09ci5pbmRleE9mKCJib3R0b20iKT9pLmluc2VydEJlZm9yZShuLGkuZmlyc3RDaGlsZCk6aS5hcHBlbmRDaGlsZChuKSx0aGlzfSxpLnByb3RvdHlwZS5yZW1vdmVDb250cm9sPWZ1bmN0aW9uKGUpe2lmKCFlfHwhZS5vblJlbW92ZSlyZXR1cm4gdGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCJJbnZhbGlkIGFyZ3VtZW50IHRvIG1hcC5yZW1vdmVDb250cm9sKCkuIEFyZ3VtZW50IG11c3QgYmUgYSBjb250cm9sIHdpdGggb25BZGQgYW5kIG9uUmVtb3ZlIG1ldGhvZHMuIikpKTt2YXIgcj10aGlzLl9jb250cm9scy5pbmRleE9mKGUpO3JldHVybiByPi0xJiZ0aGlzLl9jb250cm9scy5zcGxpY2UociwxKSxlLm9uUmVtb3ZlKHRoaXMpLHRoaXN9LGkucHJvdG90eXBlLnJlc2l6ZT1mdW5jdGlvbihlKXt2YXIgcj10aGlzLl9jb250YWluZXJEaW1lbnNpb25zKCksbj1yWzBdLGk9clsxXTt0aGlzLl9yZXNpemVDYW52YXMobixpKSx0aGlzLnRyYW5zZm9ybS5yZXNpemUobixpKSx0aGlzLnBhaW50ZXIucmVzaXplKG4saSk7dmFyIGE9IXRoaXMuX21vdmluZztyZXR1cm4gYSYmKHRoaXMuc3RvcCgpLHRoaXMuZmlyZShuZXcgdC5FdmVudCgibW92ZXN0YXJ0IixlKSkuZmlyZShuZXcgdC5FdmVudCgibW92ZSIsZSkpKSx0aGlzLmZpcmUobmV3IHQuRXZlbnQoInJlc2l6ZSIsZSkpLGEmJnRoaXMuZmlyZShuZXcgdC5FdmVudCgibW92ZWVuZCIsZSkpLHRoaXN9LGkucHJvdG90eXBlLmdldEJvdW5kcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRyYW5zZm9ybS5nZXRCb3VuZHMoKX0saS5wcm90b3R5cGUuZ2V0TWF4Qm91bmRzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudHJhbnNmb3JtLmdldE1heEJvdW5kcygpfSxpLnByb3RvdHlwZS5zZXRNYXhCb3VuZHM9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMudHJhbnNmb3JtLnNldE1heEJvdW5kcyh0LkxuZ0xhdEJvdW5kcy5jb252ZXJ0KGUpKSx0aGlzLl91cGRhdGUoKX0saS5wcm90b3R5cGUuc2V0TWluWm9vbT1mdW5jdGlvbih0KXtpZigodD1udWxsPT10Py0yOnQpPj0tMiYmdDw9dGhpcy50cmFuc2Zvcm0ubWF4Wm9vbSlyZXR1cm4gdGhpcy50cmFuc2Zvcm0ubWluWm9vbT10LHRoaXMuX3VwZGF0ZSgpLHRoaXMuZ2V0Wm9vbSgpPHQmJnRoaXMuc2V0Wm9vbSh0KSx0aGlzO3Rocm93IG5ldyBFcnJvcigibWluWm9vbSBtdXN0IGJlIGJldHdlZW4gLTIgYW5kIHRoZSBjdXJyZW50IG1heFpvb20sIGluY2x1c2l2ZSIpfSxpLnByb3RvdHlwZS5nZXRNaW5ab29tPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudHJhbnNmb3JtLm1pblpvb219LGkucHJvdG90eXBlLnNldE1heFpvb209ZnVuY3Rpb24odCl7aWYoKHQ9bnVsbD09dD8yMjp0KT49dGhpcy50cmFuc2Zvcm0ubWluWm9vbSlyZXR1cm4gdGhpcy50cmFuc2Zvcm0ubWF4Wm9vbT10LHRoaXMuX3VwZGF0ZSgpLHRoaXMuZ2V0Wm9vbSgpPnQmJnRoaXMuc2V0Wm9vbSh0KSx0aGlzO3Rocm93IG5ldyBFcnJvcigibWF4Wm9vbSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB0aGUgY3VycmVudCBtaW5ab29tIil9LGkucHJvdG90eXBlLmdldE1heFpvb209ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50cmFuc2Zvcm0ubWF4Wm9vbX0saS5wcm90b3R5cGUuc2V0TWluUGl0Y2g9ZnVuY3Rpb24odCl7aWYoKHQ9bnVsbD09dD8wOnQpPDApdGhyb3cgbmV3IEVycm9yKCJtaW5QaXRjaCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAwIik7aWYodD49MCYmdDw9dGhpcy50cmFuc2Zvcm0ubWF4UGl0Y2gpcmV0dXJuIHRoaXMudHJhbnNmb3JtLm1pblBpdGNoPXQsdGhpcy5fdXBkYXRlKCksdGhpcy5nZXRQaXRjaCgpPHQmJnRoaXMuc2V0UGl0Y2godCksdGhpczt0aHJvdyBuZXcgRXJyb3IoIm1pblBpdGNoIG11c3QgYmUgYmV0d2VlbiAwIGFuZCB0aGUgY3VycmVudCBtYXhQaXRjaCwgaW5jbHVzaXZlIil9LGkucHJvdG90eXBlLmdldE1pblBpdGNoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudHJhbnNmb3JtLm1pblBpdGNofSxpLnByb3RvdHlwZS5zZXRNYXhQaXRjaD1mdW5jdGlvbih0KXtpZigodD1udWxsPT10PzYwOnQpPjYwKXRocm93IG5ldyBFcnJvcigibWF4UGl0Y2ggbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gNjAiKTtpZih0Pj10aGlzLnRyYW5zZm9ybS5taW5QaXRjaClyZXR1cm4gdGhpcy50cmFuc2Zvcm0ubWF4UGl0Y2g9dCx0aGlzLl91cGRhdGUoKSx0aGlzLmdldFBpdGNoKCk+dCYmdGhpcy5zZXRQaXRjaCh0KSx0aGlzO3Rocm93IG5ldyBFcnJvcigibWF4UGl0Y2ggbXVzdCBiZSBncmVhdGVyIHRoYW4gdGhlIGN1cnJlbnQgbWluUGl0Y2giKX0saS5wcm90b3R5cGUuZ2V0TWF4UGl0Y2g9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50cmFuc2Zvcm0ubWF4UGl0Y2h9LGkucHJvdG90eXBlLmdldFJlbmRlcldvcmxkQ29waWVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudHJhbnNmb3JtLnJlbmRlcldvcmxkQ29waWVzfSxpLnByb3RvdHlwZS5zZXRSZW5kZXJXb3JsZENvcGllcz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy50cmFuc2Zvcm0ucmVuZGVyV29ybGRDb3BpZXM9dCx0aGlzLl91cGRhdGUoKX0saS5wcm90b3R5cGUucHJvamVjdD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy50cmFuc2Zvcm0ubG9jYXRpb25Qb2ludCh0LkxuZ0xhdC5jb252ZXJ0KGUpKX0saS5wcm90b3R5cGUudW5wcm9qZWN0PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnRyYW5zZm9ybS5wb2ludExvY2F0aW9uKHQuUG9pbnQuY29udmVydChlKSl9LGkucHJvdG90eXBlLmlzTW92aW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21vdmluZ3x8dGhpcy5oYW5kbGVycy5pc01vdmluZygpfSxpLnByb3RvdHlwZS5pc1pvb21pbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fem9vbWluZ3x8dGhpcy5oYW5kbGVycy5pc1pvb21pbmcoKX0saS5wcm90b3R5cGUuaXNSb3RhdGluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9yb3RhdGluZ3x8dGhpcy5oYW5kbGVycy5pc1JvdGF0aW5nKCl9LGkucHJvdG90eXBlLl9jcmVhdGVEZWxlZ2F0ZWRMaXN0ZW5lcj1mdW5jdGlvbih0LGUscil7dmFyIG4saT10aGlzO2lmKCJtb3VzZWVudGVyIj09PXR8fCJtb3VzZW92ZXIiPT09dCl7dmFyIGE9ITE7cmV0dXJue2xheWVyOmUsbGlzdGVuZXI6cixkZWxlZ2F0ZXM6e21vdXNlbW92ZTpmdW5jdGlvbihuKXt2YXIgbz1pLmdldExheWVyKGUpP2kucXVlcnlSZW5kZXJlZEZlYXR1cmVzKG4ucG9pbnQse2xheWVyczpbZV19KTpbXTtvLmxlbmd0aD9hfHwoYT0hMCxyLmNhbGwoaSxuZXcgUm4odCxpLG4ub3JpZ2luYWxFdmVudCx7ZmVhdHVyZXM6b30pKSk6YT0hMX0sbW91c2VvdXQ6ZnVuY3Rpb24oKXthPSExfX19fWlmKCJtb3VzZWxlYXZlIj09PXR8fCJtb3VzZW91dCI9PT10KXt2YXIgbz0hMTtyZXR1cm57bGF5ZXI6ZSxsaXN0ZW5lcjpyLGRlbGVnYXRlczp7bW91c2Vtb3ZlOmZ1bmN0aW9uKG4peyhpLmdldExheWVyKGUpP2kucXVlcnlSZW5kZXJlZEZlYXR1cmVzKG4ucG9pbnQse2xheWVyczpbZV19KTpbXSkubGVuZ3RoP289ITA6byYmKG89ITEsci5jYWxsKGksbmV3IFJuKHQsaSxuLm9yaWdpbmFsRXZlbnQpKSl9LG1vdXNlb3V0OmZ1bmN0aW9uKGUpe28mJihvPSExLHIuY2FsbChpLG5ldyBSbih0LGksZS5vcmlnaW5hbEV2ZW50KSkpfX19fXJldHVybntsYXllcjplLGxpc3RlbmVyOnIsZGVsZWdhdGVzOihuPXt9LG5bdF09ZnVuY3Rpb24odCl7dmFyIG49aS5nZXRMYXllcihlKT9pLnF1ZXJ5UmVuZGVyZWRGZWF0dXJlcyh0LnBvaW50LHtsYXllcnM6W2VdfSk6W107bi5sZW5ndGgmJih0LmZlYXR1cmVzPW4sci5jYWxsKGksdCksZGVsZXRlIHQuZmVhdHVyZXMpfSxuKX19LGkucHJvdG90eXBlLm9uPWZ1bmN0aW9uKHQsZSxyKXtpZih2b2lkIDA9PT1yKXJldHVybiBuLnByb3RvdHlwZS5vbi5jYWxsKHRoaXMsdCxlKTt2YXIgaT10aGlzLl9jcmVhdGVEZWxlZ2F0ZWRMaXN0ZW5lcih0LGUscik7Zm9yKHZhciBhIGluIHRoaXMuX2RlbGVnYXRlZExpc3RlbmVycz10aGlzLl9kZWxlZ2F0ZWRMaXN0ZW5lcnN8fHt9LHRoaXMuX2RlbGVnYXRlZExpc3RlbmVyc1t0XT10aGlzLl9kZWxlZ2F0ZWRMaXN0ZW5lcnNbdF18fFtdLHRoaXMuX2RlbGVnYXRlZExpc3RlbmVyc1t0XS5wdXNoKGkpLGkuZGVsZWdhdGVzKXRoaXMub24oYSxpLmRlbGVnYXRlc1thXSk7cmV0dXJuIHRoaXN9LGkucHJvdG90eXBlLm9uY2U9ZnVuY3Rpb24odCxlLHIpe2lmKHZvaWQgMD09PXIpcmV0dXJuIG4ucHJvdG90eXBlLm9uY2UuY2FsbCh0aGlzLHQsZSk7dmFyIGk9dGhpcy5fY3JlYXRlRGVsZWdhdGVkTGlzdGVuZXIodCxlLHIpO2Zvcih2YXIgYSBpbiBpLmRlbGVnYXRlcyl0aGlzLm9uY2UoYSxpLmRlbGVnYXRlc1thXSk7cmV0dXJuIHRoaXN9LGkucHJvdG90eXBlLm9mZj1mdW5jdGlvbih0LGUscil7dmFyIGk9dGhpcztpZih2b2lkIDA9PT1yKXJldHVybiBuLnByb3RvdHlwZS5vZmYuY2FsbCh0aGlzLHQsZSk7cmV0dXJuIHRoaXMuX2RlbGVnYXRlZExpc3RlbmVycyYmdGhpcy5fZGVsZWdhdGVkTGlzdGVuZXJzW3RdJiZmdW5jdGlvbihuKXtmb3IodmFyIGE9blt0XSxvPTA7bzxhLmxlbmd0aDtvKyspe3ZhciBzPWFbb107aWYocy5sYXllcj09PWUmJnMubGlzdGVuZXI9PT1yKXtmb3IodmFyIGwgaW4gcy5kZWxlZ2F0ZXMpaS5vZmYobCxzLmRlbGVnYXRlc1tsXSk7cmV0dXJuIGEuc3BsaWNlKG8sMSksaX19fSh0aGlzLl9kZWxlZ2F0ZWRMaXN0ZW5lcnMpLHRoaXN9LGkucHJvdG90eXBlLnF1ZXJ5UmVuZGVyZWRGZWF0dXJlcz1mdW5jdGlvbihlLHIpe2lmKCF0aGlzLnN0eWxlKXJldHVybltdO3ZhciBuO2lmKHZvaWQgMCE9PXJ8fHZvaWQgMD09PWV8fGUgaW5zdGFuY2VvZiB0LlBvaW50fHxBcnJheS5pc0FycmF5KGUpfHwocj1lLGU9dm9pZCAwKSxyPXJ8fHt9LChlPWV8fFtbMCwwXSxbdGhpcy50cmFuc2Zvcm0ud2lkdGgsdGhpcy50cmFuc2Zvcm0uaGVpZ2h0XV0paW5zdGFuY2VvZiB0LlBvaW50fHwibnVtYmVyIj09dHlwZW9mIGVbMF0pbj1bdC5Qb2ludC5jb252ZXJ0KGUpXTtlbHNle3ZhciBpPXQuUG9pbnQuY29udmVydChlWzBdKSxhPXQuUG9pbnQuY29udmVydChlWzFdKTtuPVtpLG5ldyB0LlBvaW50KGEueCxpLnkpLGEsbmV3IHQuUG9pbnQoaS54LGEueSksaV19cmV0dXJuIHRoaXMuc3R5bGUucXVlcnlSZW5kZXJlZEZlYXR1cmVzKG4scix0aGlzLnRyYW5zZm9ybSl9LGkucHJvdG90eXBlLnF1ZXJ5U291cmNlRmVhdHVyZXM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5zdHlsZS5xdWVyeVNvdXJjZUZlYXR1cmVzKHQsZSl9LGkucHJvdG90eXBlLnNldFN0eWxlPWZ1bmN0aW9uKGUscil7cmV0dXJuITEhPT0ocj10LmV4dGVuZCh7fSx7bG9jYWxJZGVvZ3JhcGhGb250RmFtaWx5OnRoaXMuX2xvY2FsSWRlb2dyYXBoRm9udEZhbWlseX0scikpLmRpZmYmJnIubG9jYWxJZGVvZ3JhcGhGb250RmFtaWx5PT09dGhpcy5fbG9jYWxJZGVvZ3JhcGhGb250RmFtaWx5JiZ0aGlzLnN0eWxlJiZlPyh0aGlzLl9kaWZmU3R5bGUoZSxyKSx0aGlzKToodGhpcy5fbG9jYWxJZGVvZ3JhcGhGb250RmFtaWx5PXIubG9jYWxJZGVvZ3JhcGhGb250RmFtaWx5LHRoaXMuX3VwZGF0ZVN0eWxlKGUscikpfSxpLnByb3RvdHlwZS5fZ2V0VUlTdHJpbmc9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fbG9jYWxlW3RdO2lmKG51bGw9PWUpdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIFVJIHN0cmluZyAnIit0KyInIik7cmV0dXJuIGV9LGkucHJvdG90eXBlLl91cGRhdGVTdHlsZT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnN0eWxlJiYodGhpcy5zdHlsZS5zZXRFdmVudGVkUGFyZW50KG51bGwpLHRoaXMuc3R5bGUuX3JlbW92ZSgpKSx0Pyh0aGlzLnN0eWxlPW5ldyBxZSh0aGlzLGV8fHt9KSx0aGlzLnN0eWxlLnNldEV2ZW50ZWRQYXJlbnQodGhpcyx7c3R5bGU6dGhpcy5zdHlsZX0pLCJzdHJpbmciPT10eXBlb2YgdD90aGlzLnN0eWxlLmxvYWRVUkwodCk6dGhpcy5zdHlsZS5sb2FkSlNPTih0KSx0aGlzKTooZGVsZXRlIHRoaXMuc3R5bGUsdGhpcyl9LGkucHJvdG90eXBlLl9sYXp5SW5pdEVtcHR5U3R5bGU9ZnVuY3Rpb24oKXt0aGlzLnN0eWxlfHwodGhpcy5zdHlsZT1uZXcgcWUodGhpcyx7fSksdGhpcy5zdHlsZS5zZXRFdmVudGVkUGFyZW50KHRoaXMse3N0eWxlOnRoaXMuc3R5bGV9KSx0aGlzLnN0eWxlLmxvYWRFbXB0eSgpKX0saS5wcm90b3R5cGUuX2RpZmZTdHlsZT1mdW5jdGlvbihlLHIpe3ZhciBuPXRoaXM7aWYoInN0cmluZyI9PXR5cGVvZiBlKXt2YXIgaT10aGlzLl9yZXF1ZXN0TWFuYWdlci5ub3JtYWxpemVTdHlsZVVSTChlKSxhPXRoaXMuX3JlcXVlc3RNYW5hZ2VyLnRyYW5zZm9ybVJlcXVlc3QoaSx0LlJlc291cmNlVHlwZS5TdHlsZSk7dC5nZXRKU09OKGEsKGZ1bmN0aW9uKGUsaSl7ZT9uLmZpcmUobmV3IHQuRXJyb3JFdmVudChlKSk6aSYmbi5fdXBkYXRlRGlmZihpLHIpfSkpfWVsc2Uib2JqZWN0Ij09dHlwZW9mIGUmJnRoaXMuX3VwZGF0ZURpZmYoZSxyKX0saS5wcm90b3R5cGUuX3VwZGF0ZURpZmY9ZnVuY3Rpb24oZSxyKXt0cnl7dGhpcy5zdHlsZS5zZXRTdGF0ZShlKSYmdGhpcy5fdXBkYXRlKCEwKX1jYXRjaChuKXt0Lndhcm5PbmNlKCJVbmFibGUgdG8gcGVyZm9ybSBzdHlsZSBkaWZmOiAiKyhuLm1lc3NhZ2V8fG4uZXJyb3J8fG4pKyIuICBSZWJ1aWxkaW5nIHRoZSBzdHlsZSBmcm9tIHNjcmF0Y2guIiksdGhpcy5fdXBkYXRlU3R5bGUoZSxyKX19LGkucHJvdG90eXBlLmdldFN0eWxlPWZ1bmN0aW9uKCl7aWYodGhpcy5zdHlsZSlyZXR1cm4gdGhpcy5zdHlsZS5zZXJpYWxpemUoKX0saS5wcm90b3R5cGUuaXNTdHlsZUxvYWRlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnN0eWxlP3RoaXMuc3R5bGUubG9hZGVkKCk6dC53YXJuT25jZSgiVGhlcmUgaXMgbm8gc3R5bGUgYWRkZWQgdG8gdGhlIG1hcC4iKX0saS5wcm90b3R5cGUuYWRkU291cmNlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX2xhenlJbml0RW1wdHlTdHlsZSgpLHRoaXMuc3R5bGUuYWRkU291cmNlKHQsZSksdGhpcy5fdXBkYXRlKCEwKX0saS5wcm90b3R5cGUuaXNTb3VyY2VMb2FkZWQ9ZnVuY3Rpb24oZSl7dmFyIHI9dGhpcy5zdHlsZSYmdGhpcy5zdHlsZS5zb3VyY2VDYWNoZXNbZV07aWYodm9pZCAwIT09cilyZXR1cm4gci5sb2FkZWQoKTt0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoIlRoZXJlIGlzIG5vIHNvdXJjZSB3aXRoIElEICciK2UrIiciKSkpfSxpLnByb3RvdHlwZS5hcmVUaWxlc0xvYWRlZD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuc3R5bGUmJnRoaXMuc3R5bGUuc291cmNlQ2FjaGVzO2Zvcih2YXIgZSBpbiB0KXt2YXIgcj10W2VdLl90aWxlcztmb3IodmFyIG4gaW4gcil7dmFyIGk9cltuXTtpZigibG9hZGVkIiE9PWkuc3RhdGUmJiJlcnJvcmVkIiE9PWkuc3RhdGUpcmV0dXJuITF9fXJldHVybiEwfSxpLnByb3RvdHlwZS5hZGRTb3VyY2VUeXBlPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdGhpcy5fbGF6eUluaXRFbXB0eVN0eWxlKCksdGhpcy5zdHlsZS5hZGRTb3VyY2VUeXBlKHQsZSxyKX0saS5wcm90b3R5cGUucmVtb3ZlU291cmNlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnN0eWxlLnJlbW92ZVNvdXJjZSh0KSx0aGlzLl91cGRhdGUoITApfSxpLnByb3RvdHlwZS5nZXRTb3VyY2U9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc3R5bGUuZ2V0U291cmNlKHQpfSxpLnByb3RvdHlwZS5hZGRJbWFnZT1mdW5jdGlvbihlLHIsbil7dm9pZCAwPT09biYmKG49e30pO3ZhciBpPW4ucGl4ZWxSYXRpbzt2b2lkIDA9PT1pJiYoaT0xKTt2YXIgYT1uLnNkZjt2b2lkIDA9PT1hJiYoYT0hMSk7dmFyIG89bi5zdHJldGNoWCxzPW4uc3RyZXRjaFksbD1uLmNvbnRlbnQ7dGhpcy5fbGF6eUluaXRFbXB0eVN0eWxlKCk7aWYociBpbnN0YW5jZW9mIGtpfHxNaSYmciBpbnN0YW5jZW9mIE1pKXt2YXIgYz10LmJyb3dzZXIuZ2V0SW1hZ2VEYXRhKHIpLHU9Yy53aWR0aCxmPWMuaGVpZ2h0LGg9Yy5kYXRhO3RoaXMuc3R5bGUuYWRkSW1hZ2UoZSx7ZGF0YTpuZXcgdC5SR0JBSW1hZ2Uoe3dpZHRoOnUsaGVpZ2h0OmZ9LGgpLHBpeGVsUmF0aW86aSxzdHJldGNoWDpvLHN0cmV0Y2hZOnMsY29udGVudDpsLHNkZjphLHZlcnNpb246MH0pfWVsc2V7aWYodm9pZCAwPT09ci53aWR0aHx8dm9pZCAwPT09ci5oZWlnaHQpcmV0dXJuIHRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcigiSW52YWxpZCBhcmd1bWVudHMgdG8gbWFwLmFkZEltYWdlKCkuIFRoZSBzZWNvbmQgYXJndW1lbnQgbXVzdCBiZSBhbiBgSFRNTEltYWdlRWxlbWVudGAsIGBJbWFnZURhdGFgLCBgSW1hZ2VCaXRtYXBgLCBvciBvYmplY3Qgd2l0aCBgd2lkdGhgLCBgaGVpZ2h0YCwgYW5kIGBkYXRhYCBwcm9wZXJ0aWVzIHdpdGggdGhlIHNhbWUgZm9ybWF0IGFzIGBJbWFnZURhdGFgIikpKTt2YXIgcD1yLndpZHRoLGQ9ci5oZWlnaHQsbT1yLmRhdGEsZz1yO3RoaXMuc3R5bGUuYWRkSW1hZ2UoZSx7ZGF0YTpuZXcgdC5SR0JBSW1hZ2Uoe3dpZHRoOnAsaGVpZ2h0OmR9LG5ldyBVaW50OEFycmF5KG0pKSxwaXhlbFJhdGlvOmksc3RyZXRjaFg6byxzdHJldGNoWTpzLGNvbnRlbnQ6bCxzZGY6YSx2ZXJzaW9uOjAsdXNlckltYWdlOmd9KSxnLm9uQWRkJiZnLm9uQWRkKHRoaXMsZSl9fSxpLnByb3RvdHlwZS51cGRhdGVJbWFnZT1mdW5jdGlvbihlLHIpe3ZhciBuPXRoaXMuc3R5bGUuZ2V0SW1hZ2UoZSk7aWYoIW4pcmV0dXJuIHRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcigiVGhlIG1hcCBoYXMgbm8gaW1hZ2Ugd2l0aCB0aGF0IGlkLiBJZiB5b3UgYXJlIGFkZGluZyBhIG5ldyBpbWFnZSB1c2UgYG1hcC5hZGRJbWFnZSguLi4pYCBpbnN0ZWFkLiIpKSk7dmFyIGk9ciBpbnN0YW5jZW9mIGtpfHxNaSYmciBpbnN0YW5jZW9mIE1pP3QuYnJvd3Nlci5nZXRJbWFnZURhdGEocik6cixhPWkud2lkdGgsbz1pLmhlaWdodCxzPWkuZGF0YTtpZih2b2lkIDA9PT1hfHx2b2lkIDA9PT1vKXJldHVybiB0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoIkludmFsaWQgYXJndW1lbnRzIHRvIG1hcC51cGRhdGVJbWFnZSgpLiBUaGUgc2Vjb25kIGFyZ3VtZW50IG11c3QgYmUgYW4gYEhUTUxJbWFnZUVsZW1lbnRgLCBgSW1hZ2VEYXRhYCwgYEltYWdlQml0bWFwYCwgb3Igb2JqZWN0IHdpdGggYHdpZHRoYCwgYGhlaWdodGAsIGFuZCBgZGF0YWAgcHJvcGVydGllcyB3aXRoIHRoZSBzYW1lIGZvcm1hdCBhcyBgSW1hZ2VEYXRhYCIpKSk7aWYoYSE9PW4uZGF0YS53aWR0aHx8byE9PW4uZGF0YS5oZWlnaHQpcmV0dXJuIHRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcigiVGhlIHdpZHRoIGFuZCBoZWlnaHQgb2YgdGhlIHVwZGF0ZWQgaW1hZ2UgbXVzdCBiZSB0aGF0IHNhbWUgYXMgdGhlIHByZXZpb3VzIHZlcnNpb24gb2YgdGhlIGltYWdlIikpKTt2YXIgbD0hKHIgaW5zdGFuY2VvZiBraXx8TWkmJnIgaW5zdGFuY2VvZiBNaSk7bi5kYXRhLnJlcGxhY2UocyxsKSx0aGlzLnN0eWxlLnVwZGF0ZUltYWdlKGUsbil9LGkucHJvdG90eXBlLmhhc0ltYWdlPWZ1bmN0aW9uKGUpe3JldHVybiBlPyEhdGhpcy5zdHlsZS5nZXRJbWFnZShlKToodGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCJNaXNzaW5nIHJlcXVpcmVkIGltYWdlIGlkIikpKSwhMSl9LGkucHJvdG90eXBlLnJlbW92ZUltYWdlPWZ1bmN0aW9uKHQpe3RoaXMuc3R5bGUucmVtb3ZlSW1hZ2UodCl9LGkucHJvdG90eXBlLmxvYWRJbWFnZT1mdW5jdGlvbihlLHIpe3QuZ2V0SW1hZ2UodGhpcy5fcmVxdWVzdE1hbmFnZXIudHJhbnNmb3JtUmVxdWVzdChlLHQuUmVzb3VyY2VUeXBlLkltYWdlKSxyKX0saS5wcm90b3R5cGUubGlzdEltYWdlcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnN0eWxlLmxpc3RJbWFnZXMoKX0saS5wcm90b3R5cGUuYWRkTGF5ZXI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fbGF6eUluaXRFbXB0eVN0eWxlKCksdGhpcy5zdHlsZS5hZGRMYXllcih0LGUpLHRoaXMuX3VwZGF0ZSghMCl9LGkucHJvdG90eXBlLm1vdmVMYXllcj1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnN0eWxlLm1vdmVMYXllcih0LGUpLHRoaXMuX3VwZGF0ZSghMCl9LGkucHJvdG90eXBlLnJlbW92ZUxheWVyPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnN0eWxlLnJlbW92ZUxheWVyKHQpLHRoaXMuX3VwZGF0ZSghMCl9LGkucHJvdG90eXBlLmdldExheWVyPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnN0eWxlLmdldExheWVyKHQpfSxpLnByb3RvdHlwZS5zZXRMYXllclpvb21SYW5nZT1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRoaXMuc3R5bGUuc2V0TGF5ZXJab29tUmFuZ2UodCxlLHIpLHRoaXMuX3VwZGF0ZSghMCl9LGkucHJvdG90eXBlLnNldEZpbHRlcj1mdW5jdGlvbih0LGUscil7cmV0dXJuIHZvaWQgMD09PXImJihyPXt9KSx0aGlzLnN0eWxlLnNldEZpbHRlcih0LGUsciksdGhpcy5fdXBkYXRlKCEwKX0saS5wcm90b3R5cGUuZ2V0RmlsdGVyPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnN0eWxlLmdldEZpbHRlcih0KX0saS5wcm90b3R5cGUuc2V0UGFpbnRQcm9wZXJ0eT1mdW5jdGlvbih0LGUscixuKXtyZXR1cm4gdm9pZCAwPT09biYmKG49e30pLHRoaXMuc3R5bGUuc2V0UGFpbnRQcm9wZXJ0eSh0LGUscixuKSx0aGlzLl91cGRhdGUoITApfSxpLnByb3RvdHlwZS5nZXRQYWludFByb3BlcnR5PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuc3R5bGUuZ2V0UGFpbnRQcm9wZXJ0eSh0LGUpfSxpLnByb3RvdHlwZS5zZXRMYXlvdXRQcm9wZXJ0eT1mdW5jdGlvbih0LGUscixuKXtyZXR1cm4gdm9pZCAwPT09biYmKG49e30pLHRoaXMuc3R5bGUuc2V0TGF5b3V0UHJvcGVydHkodCxlLHIsbiksdGhpcy5fdXBkYXRlKCEwKX0saS5wcm90b3R5cGUuZ2V0TGF5b3V0UHJvcGVydHk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5zdHlsZS5nZXRMYXlvdXRQcm9wZXJ0eSh0LGUpfSxpLnByb3RvdHlwZS5zZXRMaWdodD1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT17fSksdGhpcy5fbGF6eUluaXRFbXB0eVN0eWxlKCksdGhpcy5zdHlsZS5zZXRMaWdodCh0LGUpLHRoaXMuX3VwZGF0ZSghMCl9LGkucHJvdG90eXBlLmdldExpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3R5bGUuZ2V0TGlnaHQoKX0saS5wcm90b3R5cGUuc2V0RmVhdHVyZVN0YXRlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuc3R5bGUuc2V0RmVhdHVyZVN0YXRlKHQsZSksdGhpcy5fdXBkYXRlKCl9LGkucHJvdG90eXBlLnJlbW92ZUZlYXR1cmVTdGF0ZT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnN0eWxlLnJlbW92ZUZlYXR1cmVTdGF0ZSh0LGUpLHRoaXMuX3VwZGF0ZSgpfSxpLnByb3RvdHlwZS5nZXRGZWF0dXJlU3RhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc3R5bGUuZ2V0RmVhdHVyZVN0YXRlKHQpfSxpLnByb3RvdHlwZS5nZXRDb250YWluZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29udGFpbmVyfSxpLnByb3RvdHlwZS5nZXRDYW52YXNDb250YWluZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2FudmFzQ29udGFpbmVyfSxpLnByb3RvdHlwZS5nZXRDYW52YXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2FudmFzfSxpLnByb3RvdHlwZS5fY29udGFpbmVyRGltZW5zaW9ucz1mdW5jdGlvbigpe3ZhciB0PTAsZT0wO3JldHVybiB0aGlzLl9jb250YWluZXImJih0PXRoaXMuX2NvbnRhaW5lci5jbGllbnRXaWR0aHx8NDAwLGU9dGhpcy5fY29udGFpbmVyLmNsaWVudEhlaWdodHx8MzAwKSxbdCxlXX0saS5wcm90b3R5cGUuX2RldGVjdE1pc3NpbmdDU1M9ZnVuY3Rpb24oKXsicmdiKDI1MCwgMTI4LCAxMTQpIiE9PXQud2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5fbWlzc2luZ0NTU0NhbmFyeSkuZ2V0UHJvcGVydHlWYWx1ZSgiYmFja2dyb3VuZC1jb2xvciIpJiZ0Lndhcm5PbmNlKCJUaGlzIHBhZ2UgYXBwZWFycyB0byBiZSBtaXNzaW5nIENTUyBkZWNsYXJhdGlvbnMgZm9yIE1hcGJveCBHTCBKUywgd2hpY2ggbWF5IGNhdXNlIHRoZSBtYXAgdG8gZGlzcGxheSBpbmNvcnJlY3RseS4gUGxlYXNlIGVuc3VyZSB5b3VyIHBhZ2UgaW5jbHVkZXMgbWFwYm94LWdsLmNzcywgYXMgZGVzY3JpYmVkIGluIGh0dHBzOi8vd3d3Lm1hcGJveC5jb20vbWFwYm94LWdsLWpzL2FwaS8uIil9LGkucHJvdG90eXBlLl9zZXR1cENvbnRhaW5lcj1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2NvbnRhaW5lcjt0LmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLW1hcCIpLCh0aGlzLl9taXNzaW5nQ1NTQ2FuYXJ5PXIuY3JlYXRlKCJkaXYiLCJtYXBib3hnbC1jYW5hcnkiLHQpKS5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iLHRoaXMuX2RldGVjdE1pc3NpbmdDU1MoKTt2YXIgZT10aGlzLl9jYW52YXNDb250YWluZXI9ci5jcmVhdGUoImRpdiIsIm1hcGJveGdsLWNhbnZhcy1jb250YWluZXIiLHQpO3RoaXMuX2ludGVyYWN0aXZlJiZlLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLWludGVyYWN0aXZlIiksdGhpcy5fY2FudmFzPXIuY3JlYXRlKCJjYW52YXMiLCJtYXBib3hnbC1jYW52YXMiLGUpLHRoaXMuX2NhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJ3ZWJnbGNvbnRleHRsb3N0Iix0aGlzLl9jb250ZXh0TG9zdCwhMSksdGhpcy5fY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoIndlYmdsY29udGV4dHJlc3RvcmVkIix0aGlzLl9jb250ZXh0UmVzdG9yZWQsITEpLHRoaXMuX2NhbnZhcy5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiMCIpLHRoaXMuX2NhbnZhcy5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLCJNYXAiKTt2YXIgbj10aGlzLl9jb250YWluZXJEaW1lbnNpb25zKCk7dGhpcy5fcmVzaXplQ2FudmFzKG5bMF0sblsxXSk7dmFyIGk9dGhpcy5fY29udHJvbENvbnRhaW5lcj1yLmNyZWF0ZSgiZGl2IiwibWFwYm94Z2wtY29udHJvbC1jb250YWluZXIiLHQpLGE9dGhpcy5fY29udHJvbFBvc2l0aW9ucz17fTtbInRvcC1sZWZ0IiwidG9wLXJpZ2h0IiwiYm90dG9tLWxlZnQiLCJib3R0b20tcmlnaHQiXS5mb3JFYWNoKChmdW5jdGlvbih0KXthW3RdPXIuY3JlYXRlKCJkaXYiLCJtYXBib3hnbC1jdHJsLSIrdCxpKX0pKX0saS5wcm90b3R5cGUuX3Jlc2l6ZUNhbnZhcz1mdW5jdGlvbihlLHIpe3ZhciBuPXQuYnJvd3Nlci5kZXZpY2VQaXhlbFJhdGlvfHwxO3RoaXMuX2NhbnZhcy53aWR0aD1uKmUsdGhpcy5fY2FudmFzLmhlaWdodD1uKnIsdGhpcy5fY2FudmFzLnN0eWxlLndpZHRoPWUrInB4Iix0aGlzLl9jYW52YXMuc3R5bGUuaGVpZ2h0PXIrInB4In0saS5wcm90b3R5cGUuX3NldHVwUGFpbnRlcj1mdW5jdGlvbigpe3ZhciByPXQuZXh0ZW5kKHt9LGUud2ViR0xDb250ZXh0QXR0cmlidXRlcyx7ZmFpbElmTWFqb3JQZXJmb3JtYW5jZUNhdmVhdDp0aGlzLl9mYWlsSWZNYWpvclBlcmZvcm1hbmNlQ2F2ZWF0LHByZXNlcnZlRHJhd2luZ0J1ZmZlcjp0aGlzLl9wcmVzZXJ2ZURyYXdpbmdCdWZmZXIsYW50aWFsaWFzOnRoaXMuX2FudGlhbGlhc3x8ITF9KSxuPXRoaXMuX2NhbnZhcy5nZXRDb250ZXh0KCJ3ZWJnbCIscil8fHRoaXMuX2NhbnZhcy5nZXRDb250ZXh0KCJleHBlcmltZW50YWwtd2ViZ2wiLHIpO24/KHRoaXMucGFpbnRlcj1uZXcgX24obix0aGlzLnRyYW5zZm9ybSksdC53ZWJwU3VwcG9ydGVkLnRlc3RTdXBwb3J0KG4pKTp0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoIkZhaWxlZCB0byBpbml0aWFsaXplIFdlYkdMIikpKX0saS5wcm90b3R5cGUuX2NvbnRleHRMb3N0PWZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKSx0aGlzLl9mcmFtZSYmKHRoaXMuX2ZyYW1lLmNhbmNlbCgpLHRoaXMuX2ZyYW1lPW51bGwpLHRoaXMuZmlyZShuZXcgdC5FdmVudCgid2ViZ2xjb250ZXh0bG9zdCIse29yaWdpbmFsRXZlbnQ6ZX0pKX0saS5wcm90b3R5cGUuX2NvbnRleHRSZXN0b3JlZD1mdW5jdGlvbihlKXt0aGlzLl9zZXR1cFBhaW50ZXIoKSx0aGlzLnJlc2l6ZSgpLHRoaXMuX3VwZGF0ZSgpLHRoaXMuZmlyZShuZXcgdC5FdmVudCgid2ViZ2xjb250ZXh0cmVzdG9yZWQiLHtvcmlnaW5hbEV2ZW50OmV9KSl9LGkucHJvdG90eXBlLmxvYWRlZD1mdW5jdGlvbigpe3JldHVybiF0aGlzLl9zdHlsZURpcnR5JiYhdGhpcy5fc291cmNlc0RpcnR5JiYhIXRoaXMuc3R5bGUmJnRoaXMuc3R5bGUubG9hZGVkKCl9LGkucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc3R5bGU/KHRoaXMuX3N0eWxlRGlydHk9dGhpcy5fc3R5bGVEaXJ0eXx8dCx0aGlzLl9zb3VyY2VzRGlydHk9ITAsdGhpcy50cmlnZ2VyUmVwYWludCgpLHRoaXMpOnRoaXN9LGkucHJvdG90eXBlLl9yZXF1ZXN0UmVuZGVyRnJhbWU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3VwZGF0ZSgpLHRoaXMuX3JlbmRlclRhc2tRdWV1ZS5hZGQodCl9LGkucHJvdG90eXBlLl9jYW5jZWxSZW5kZXJGcmFtZT1mdW5jdGlvbih0KXt0aGlzLl9yZW5kZXJUYXNrUXVldWUucmVtb3ZlKHQpfSxpLnByb3RvdHlwZS5fcmVuZGVyPWZ1bmN0aW9uKGUpe3ZhciByLG49dGhpcyxpPTAsYT10aGlzLnBhaW50ZXIuY29udGV4dC5leHRUaW1lclF1ZXJ5O2lmKHRoaXMubGlzdGVucygiZ3B1LXRpbWluZy1mcmFtZSIpJiYocj1hLmNyZWF0ZVF1ZXJ5RVhUKCksYS5iZWdpblF1ZXJ5RVhUKGEuVElNRV9FTEFQU0VEX0VYVCxyKSxpPXQuYnJvd3Nlci5ub3coKSksdGhpcy5wYWludGVyLmNvbnRleHQuc2V0RGlydHkoKSx0aGlzLnBhaW50ZXIuc2V0QmFzZVN0YXRlKCksdGhpcy5fcmVuZGVyVGFza1F1ZXVlLnJ1bihlKSwhdGhpcy5fcmVtb3ZlZCl7dmFyIG89ITE7aWYodGhpcy5zdHlsZSYmdGhpcy5fc3R5bGVEaXJ0eSl7dGhpcy5fc3R5bGVEaXJ0eT0hMTt2YXIgcz10aGlzLnRyYW5zZm9ybS56b29tLGw9dC5icm93c2VyLm5vdygpO3RoaXMuc3R5bGUuem9vbUhpc3RvcnkudXBkYXRlKHMsbCk7dmFyIGM9bmV3IHQuRXZhbHVhdGlvblBhcmFtZXRlcnMocyx7bm93OmwsZmFkZUR1cmF0aW9uOnRoaXMuX2ZhZGVEdXJhdGlvbix6b29tSGlzdG9yeTp0aGlzLnN0eWxlLnpvb21IaXN0b3J5LHRyYW5zaXRpb246dGhpcy5zdHlsZS5nZXRUcmFuc2l0aW9uKCl9KSx1PWMuY3Jvc3NGYWRpbmdGYWN0b3IoKTsxPT09dSYmdT09PXRoaXMuX2Nyb3NzRmFkaW5nRmFjdG9yfHwobz0hMCx0aGlzLl9jcm9zc0ZhZGluZ0ZhY3Rvcj11KSx0aGlzLnN0eWxlLnVwZGF0ZShjKX1pZih0aGlzLnN0eWxlJiZ0aGlzLl9zb3VyY2VzRGlydHkmJih0aGlzLl9zb3VyY2VzRGlydHk9ITEsdGhpcy5zdHlsZS5fdXBkYXRlU291cmNlcyh0aGlzLnRyYW5zZm9ybSkpLHRoaXMuX3BsYWNlbWVudERpcnR5PXRoaXMuc3R5bGUmJnRoaXMuc3R5bGUuX3VwZGF0ZVBsYWNlbWVudCh0aGlzLnBhaW50ZXIudHJhbnNmb3JtLHRoaXMuc2hvd0NvbGxpc2lvbkJveGVzLHRoaXMuX2ZhZGVEdXJhdGlvbix0aGlzLl9jcm9zc1NvdXJjZUNvbGxpc2lvbnMpLHRoaXMucGFpbnRlci5yZW5kZXIodGhpcy5zdHlsZSx7c2hvd1RpbGVCb3VuZGFyaWVzOnRoaXMuc2hvd1RpbGVCb3VuZGFyaWVzLHNob3dPdmVyZHJhd0luc3BlY3Rvcjp0aGlzLl9zaG93T3ZlcmRyYXdJbnNwZWN0b3Iscm90YXRpbmc6dGhpcy5pc1JvdGF0aW5nKCksem9vbWluZzp0aGlzLmlzWm9vbWluZygpLG1vdmluZzp0aGlzLmlzTW92aW5nKCksZmFkZUR1cmF0aW9uOnRoaXMuX2ZhZGVEdXJhdGlvbixzaG93UGFkZGluZzp0aGlzLnNob3dQYWRkaW5nLGdwdVRpbWluZzohIXRoaXMubGlzdGVucygiZ3B1LXRpbWluZy1sYXllciIpfSksdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJyZW5kZXIiKSksdGhpcy5sb2FkZWQoKSYmIXRoaXMuX2xvYWRlZCYmKHRoaXMuX2xvYWRlZD0hMCx0aGlzLmZpcmUobmV3IHQuRXZlbnQoImxvYWQiKSkpLHRoaXMuc3R5bGUmJih0aGlzLnN0eWxlLmhhc1RyYW5zaXRpb25zKCl8fG8pJiYodGhpcy5fc3R5bGVEaXJ0eT0hMCksdGhpcy5zdHlsZSYmIXRoaXMuX3BsYWNlbWVudERpcnR5JiZ0aGlzLnN0eWxlLl9yZWxlYXNlU3ltYm9sRmFkZVRpbGVzKCksdGhpcy5saXN0ZW5zKCJncHUtdGltaW5nLWZyYW1lIikpe3ZhciBmPXQuYnJvd3Nlci5ub3coKS1pO2EuZW5kUXVlcnlFWFQoYS5USU1FX0VMQVBTRURfRVhULHIpLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dmFyIGU9YS5nZXRRdWVyeU9iamVjdEVYVChyLGEuUVVFUllfUkVTVUxUX0VYVCkvMWU2O2EuZGVsZXRlUXVlcnlFWFQociksbi5maXJlKG5ldyB0LkV2ZW50KCJncHUtdGltaW5nLWZyYW1lIix7Y3B1VGltZTpmLGdwdVRpbWU6ZX0pKX0pLDUwKX1pZih0aGlzLmxpc3RlbnMoImdwdS10aW1pbmctbGF5ZXIiKSl7dmFyIGg9dGhpcy5wYWludGVyLmNvbGxlY3RHcHVUaW1lcnMoKTtzZXRUaW1lb3V0KChmdW5jdGlvbigpe3ZhciBlPW4ucGFpbnRlci5xdWVyeUdwdVRpbWVycyhoKTtuLmZpcmUobmV3IHQuRXZlbnQoImdwdS10aW1pbmctbGF5ZXIiLHtsYXllclRpbWVzOmV9KSl9KSw1MCl9cmV0dXJuIHRoaXMuX3NvdXJjZXNEaXJ0eXx8dGhpcy5fc3R5bGVEaXJ0eXx8dGhpcy5fcGxhY2VtZW50RGlydHl8fHRoaXMuX3JlcGFpbnQ/dGhpcy50cmlnZ2VyUmVwYWludCgpOiF0aGlzLmlzTW92aW5nKCkmJnRoaXMubG9hZGVkKCkmJih0aGlzLl9mdWxseUxvYWRlZHx8KHRoaXMuX2Z1bGx5TG9hZGVkPSEwKSx0aGlzLmZpcmUobmV3IHQuRXZlbnQoImlkbGUiKSkpLHRoaXN9fSxpLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oKXt0aGlzLl9oYXNoJiZ0aGlzLl9oYXNoLnJlbW92ZSgpO2Zvcih2YXIgZT0wLHI9dGhpcy5fY29udHJvbHM7ZTxyLmxlbmd0aDtlKz0xKXtyW2VdLm9uUmVtb3ZlKHRoaXMpfXRoaXMuX2NvbnRyb2xzPVtdLHRoaXMuX2ZyYW1lJiYodGhpcy5fZnJhbWUuY2FuY2VsKCksdGhpcy5fZnJhbWU9bnVsbCksdGhpcy5fcmVuZGVyVGFza1F1ZXVlLmNsZWFyKCksdGhpcy5wYWludGVyLmRlc3Ryb3koKSx0aGlzLmhhbmRsZXJzLmRlc3Ryb3koKSxkZWxldGUgdGhpcy5oYW5kbGVycyx0aGlzLnNldFN0eWxlKG51bGwpLHZvaWQgMCE9PXQud2luZG93JiYodC53aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLl9vbldpbmRvd1Jlc2l6ZSwhMSksdC53aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigib25saW5lIix0aGlzLl9vbldpbmRvd09ubGluZSwhMSkpO3ZhciBuPXRoaXMucGFpbnRlci5jb250ZXh0LmdsLmdldEV4dGVuc2lvbigiV0VCR0xfbG9zZV9jb250ZXh0Iik7biYmbi5sb3NlQ29udGV4dCgpLExpKHRoaXMuX2NhbnZhc0NvbnRhaW5lciksTGkodGhpcy5fY29udHJvbENvbnRhaW5lciksTGkodGhpcy5fbWlzc2luZ0NTU0NhbmFyeSksdGhpcy5fY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoIm1hcGJveGdsLW1hcCIpLHRoaXMuX3JlbW92ZWQ9ITAsdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJyZW1vdmUiKSl9LGkucHJvdG90eXBlLnRyaWdnZXJSZXBhaW50PWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLnN0eWxlJiYhdGhpcy5fZnJhbWUmJih0aGlzLl9mcmFtZT10LmJyb3dzZXIuZnJhbWUoKGZ1bmN0aW9uKHQpe2UuX2ZyYW1lPW51bGwsZS5fcmVuZGVyKHQpfSkpKX0saS5wcm90b3R5cGUuX29uV2luZG93T25saW5lPWZ1bmN0aW9uKCl7dGhpcy5fdXBkYXRlKCl9LGkucHJvdG90eXBlLl9vbldpbmRvd1Jlc2l6ZT1mdW5jdGlvbih0KXt0aGlzLl90cmFja1Jlc2l6ZSYmdGhpcy5yZXNpemUoe29yaWdpbmFsRXZlbnQ6dH0pLl91cGRhdGUoKX0sYS5zaG93VGlsZUJvdW5kYXJpZXMuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLl9zaG93VGlsZUJvdW5kYXJpZXN9LGEuc2hvd1RpbGVCb3VuZGFyaWVzLnNldD1mdW5jdGlvbih0KXt0aGlzLl9zaG93VGlsZUJvdW5kYXJpZXMhPT10JiYodGhpcy5fc2hvd1RpbGVCb3VuZGFyaWVzPXQsdGhpcy5fdXBkYXRlKCkpfSxhLnNob3dQYWRkaW5nLmdldD1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5fc2hvd1BhZGRpbmd9LGEuc2hvd1BhZGRpbmcuc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3Nob3dQYWRkaW5nIT09dCYmKHRoaXMuX3Nob3dQYWRkaW5nPXQsdGhpcy5fdXBkYXRlKCkpfSxhLnNob3dDb2xsaXNpb25Cb3hlcy5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuX3Nob3dDb2xsaXNpb25Cb3hlc30sYS5zaG93Q29sbGlzaW9uQm94ZXMuc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3Nob3dDb2xsaXNpb25Cb3hlcyE9PXQmJih0aGlzLl9zaG93Q29sbGlzaW9uQm94ZXM9dCx0P3RoaXMuc3R5bGUuX2dlbmVyYXRlQ29sbGlzaW9uQm94ZXMoKTp0aGlzLl91cGRhdGUoKSl9LGEuc2hvd092ZXJkcmF3SW5zcGVjdG9yLmdldD1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5fc2hvd092ZXJkcmF3SW5zcGVjdG9yfSxhLnNob3dPdmVyZHJhd0luc3BlY3Rvci5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fc2hvd092ZXJkcmF3SW5zcGVjdG9yIT09dCYmKHRoaXMuX3Nob3dPdmVyZHJhd0luc3BlY3Rvcj10LHRoaXMuX3VwZGF0ZSgpKX0sYS5yZXBhaW50LmdldD1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5fcmVwYWludH0sYS5yZXBhaW50LnNldD1mdW5jdGlvbih0KXt0aGlzLl9yZXBhaW50IT09dCYmKHRoaXMuX3JlcGFpbnQ9dCx0aGlzLnRyaWdnZXJSZXBhaW50KCkpfSxhLnZlcnRpY2VzLmdldD1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5fdmVydGljZXN9LGEudmVydGljZXMuc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3ZlcnRpY2VzPXQsdGhpcy5fdXBkYXRlKCl9LGkucHJvdG90eXBlLl9zZXRDYWNoZUxpbWl0cz1mdW5jdGlvbihlLHIpe3Quc2V0Q2FjaGVMaW1pdHMoZSxyKX0sYS52ZXJzaW9uLmdldD1mdW5jdGlvbigpe3JldHVybiB0LnZlcnNpb259LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGkucHJvdG90eXBlLGEpLGl9KHhpKTtmdW5jdGlvbiBMaSh0KXt0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KX12YXIgQ2k9e3Nob3dDb21wYXNzOiEwLHNob3dab29tOiEwLHZpc3VhbGl6ZVBpdGNoOiExfSxQaT1mdW5jdGlvbihlKXt2YXIgbj10aGlzO3RoaXMub3B0aW9ucz10LmV4dGVuZCh7fSxDaSxlKSx0aGlzLl9jb250YWluZXI9ci5jcmVhdGUoImRpdiIsIm1hcGJveGdsLWN0cmwgbWFwYm94Z2wtY3RybC1ncm91cCIpLHRoaXMuX2NvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LnByZXZlbnREZWZhdWx0KCl9KSksdGhpcy5vcHRpb25zLnNob3dab29tJiYodC5iaW5kQWxsKFsiX3NldEJ1dHRvblRpdGxlIiwiX3VwZGF0ZVpvb21CdXR0b25zIl0sdGhpcyksdGhpcy5fem9vbUluQnV0dG9uPXRoaXMuX2NyZWF0ZUJ1dHRvbigibWFwYm94Z2wtY3RybC16b29tLWluIiwoZnVuY3Rpb24odCl7cmV0dXJuIG4uX21hcC56b29tSW4oe30se29yaWdpbmFsRXZlbnQ6dH0pfSkpLHIuY3JlYXRlKCJzcGFuIiwibWFwYm94Z2wtY3RybC1pY29uIix0aGlzLl96b29tSW5CdXR0b24pLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCEwKSx0aGlzLl96b29tT3V0QnV0dG9uPXRoaXMuX2NyZWF0ZUJ1dHRvbigibWFwYm94Z2wtY3RybC16b29tLW91dCIsKGZ1bmN0aW9uKHQpe3JldHVybiBuLl9tYXAuem9vbU91dCh7fSx7b3JpZ2luYWxFdmVudDp0fSl9KSksci5jcmVhdGUoInNwYW4iLCJtYXBib3hnbC1jdHJsLWljb24iLHRoaXMuX3pvb21PdXRCdXR0b24pLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCEwKSksdGhpcy5vcHRpb25zLnNob3dDb21wYXNzJiYodC5iaW5kQWxsKFsiX3JvdGF0ZUNvbXBhc3NBcnJvdyJdLHRoaXMpLHRoaXMuX2NvbXBhc3M9dGhpcy5fY3JlYXRlQnV0dG9uKCJtYXBib3hnbC1jdHJsLWNvbXBhc3MiLChmdW5jdGlvbih0KXtuLm9wdGlvbnMudmlzdWFsaXplUGl0Y2g/bi5fbWFwLnJlc2V0Tm9ydGhQaXRjaCh7fSx7b3JpZ2luYWxFdmVudDp0fSk6bi5fbWFwLnJlc2V0Tm9ydGgoe30se29yaWdpbmFsRXZlbnQ6dH0pfSkpLHRoaXMuX2NvbXBhc3NJY29uPXIuY3JlYXRlKCJzcGFuIiwibWFwYm94Z2wtY3RybC1pY29uIix0aGlzLl9jb21wYXNzKSx0aGlzLl9jb21wYXNzSWNvbi5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwhMCkpfTtQaS5wcm90b3R5cGUuX3VwZGF0ZVpvb21CdXR0b25zPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fbWFwLmdldFpvb20oKTt0aGlzLl96b29tSW5CdXR0b24uZGlzYWJsZWQ9dD09PXRoaXMuX21hcC5nZXRNYXhab29tKCksdGhpcy5fem9vbU91dEJ1dHRvbi5kaXNhYmxlZD10PT09dGhpcy5fbWFwLmdldE1pblpvb20oKX0sUGkucHJvdG90eXBlLl9yb3RhdGVDb21wYXNzQXJyb3c9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMudmlzdWFsaXplUGl0Y2g/InNjYWxlKCIrMS9NYXRoLnBvdyhNYXRoLmNvcyh0aGlzLl9tYXAudHJhbnNmb3JtLnBpdGNoKihNYXRoLlBJLzE4MCkpLC41KSsiKSByb3RhdGVYKCIrdGhpcy5fbWFwLnRyYW5zZm9ybS5waXRjaCsiZGVnKSByb3RhdGVaKCIrdGhpcy5fbWFwLnRyYW5zZm9ybS5hbmdsZSooMTgwL01hdGguUEkpKyJkZWcpIjoicm90YXRlKCIrdGhpcy5fbWFwLnRyYW5zZm9ybS5hbmdsZSooMTgwL01hdGguUEkpKyJkZWcpIjt0aGlzLl9jb21wYXNzSWNvbi5zdHlsZS50cmFuc2Zvcm09dH0sUGkucHJvdG90eXBlLm9uQWRkPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9tYXA9dCx0aGlzLm9wdGlvbnMuc2hvd1pvb20mJih0aGlzLl9zZXRCdXR0b25UaXRsZSh0aGlzLl96b29tSW5CdXR0b24sIlpvb21JbiIpLHRoaXMuX3NldEJ1dHRvblRpdGxlKHRoaXMuX3pvb21PdXRCdXR0b24sIlpvb21PdXQiKSx0aGlzLl9tYXAub24oInpvb20iLHRoaXMuX3VwZGF0ZVpvb21CdXR0b25zKSx0aGlzLl91cGRhdGVab29tQnV0dG9ucygpKSx0aGlzLm9wdGlvbnMuc2hvd0NvbXBhc3MmJih0aGlzLl9zZXRCdXR0b25UaXRsZSh0aGlzLl9jb21wYXNzLCJSZXNldEJlYXJpbmciKSx0aGlzLm9wdGlvbnMudmlzdWFsaXplUGl0Y2gmJnRoaXMuX21hcC5vbigicGl0Y2giLHRoaXMuX3JvdGF0ZUNvbXBhc3NBcnJvdyksdGhpcy5fbWFwLm9uKCJyb3RhdGUiLHRoaXMuX3JvdGF0ZUNvbXBhc3NBcnJvdyksdGhpcy5fcm90YXRlQ29tcGFzc0Fycm93KCksdGhpcy5faGFuZGxlcj1uZXcgSWkodGhpcy5fbWFwLHRoaXMuX2NvbXBhc3MsdGhpcy5vcHRpb25zLnZpc3VhbGl6ZVBpdGNoKSksdGhpcy5fY29udGFpbmVyfSxQaS5wcm90b3R5cGUub25SZW1vdmU9ZnVuY3Rpb24oKXtyLnJlbW92ZSh0aGlzLl9jb250YWluZXIpLHRoaXMub3B0aW9ucy5zaG93Wm9vbSYmdGhpcy5fbWFwLm9mZigiem9vbSIsdGhpcy5fdXBkYXRlWm9vbUJ1dHRvbnMpLHRoaXMub3B0aW9ucy5zaG93Q29tcGFzcyYmKHRoaXMub3B0aW9ucy52aXN1YWxpemVQaXRjaCYmdGhpcy5fbWFwLm9mZigicGl0Y2giLHRoaXMuX3JvdGF0ZUNvbXBhc3NBcnJvdyksdGhpcy5fbWFwLm9mZigicm90YXRlIix0aGlzLl9yb3RhdGVDb21wYXNzQXJyb3cpLHRoaXMuX2hhbmRsZXIub2ZmKCksZGVsZXRlIHRoaXMuX2hhbmRsZXIpLGRlbGV0ZSB0aGlzLl9tYXB9LFBpLnByb3RvdHlwZS5fY3JlYXRlQnV0dG9uPWZ1bmN0aW9uKHQsZSl7dmFyIG49ci5jcmVhdGUoImJ1dHRvbiIsdCx0aGlzLl9jb250YWluZXIpO3JldHVybiBuLnR5cGU9ImJ1dHRvbiIsbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZSksbn0sUGkucHJvdG90eXBlLl9zZXRCdXR0b25UaXRsZT1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuX21hcC5fZ2V0VUlTdHJpbmcoIk5hdmlnYXRpb25Db250cm9sLiIrZSk7dC50aXRsZT1yLHQuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixyKX07dmFyIElpPWZ1bmN0aW9uKGUsbixpKXt2b2lkIDA9PT1pJiYoaT0hMSksdGhpcy5fY2xpY2tUb2xlcmFuY2U9MTAsdGhpcy5lbGVtZW50PW4sdGhpcy5tb3VzZVJvdGF0ZT1uZXcgWG4oe2NsaWNrVG9sZXJhbmNlOmUuZHJhZ1JvdGF0ZS5fbW91c2VSb3RhdGUuX2NsaWNrVG9sZXJhbmNlfSksdGhpcy5tYXA9ZSxpJiYodGhpcy5tb3VzZVBpdGNoPW5ldyBabih7Y2xpY2tUb2xlcmFuY2U6ZS5kcmFnUm90YXRlLl9tb3VzZVBpdGNoLl9jbGlja1RvbGVyYW5jZX0pKSx0LmJpbmRBbGwoWyJtb3VzZWRvd24iLCJtb3VzZW1vdmUiLCJtb3VzZXVwIiwidG91Y2hzdGFydCIsInRvdWNobW92ZSIsInRvdWNoZW5kIiwicmVzZXQiXSx0aGlzKSxyLmFkZEV2ZW50TGlzdGVuZXIobiwibW91c2Vkb3duIix0aGlzLm1vdXNlZG93biksci5hZGRFdmVudExpc3RlbmVyKG4sInRvdWNoc3RhcnQiLHRoaXMudG91Y2hzdGFydCx7cGFzc2l2ZTohMX0pLHIuYWRkRXZlbnRMaXN0ZW5lcihuLCJ0b3VjaG1vdmUiLHRoaXMudG91Y2htb3ZlKSxyLmFkZEV2ZW50TGlzdGVuZXIobiwidG91Y2hlbmQiLHRoaXMudG91Y2hlbmQpLHIuYWRkRXZlbnRMaXN0ZW5lcihuLCJ0b3VjaGNhbmNlbCIsdGhpcy5yZXNldCl9O2Z1bmN0aW9uIE9pKGUscixuKXtpZihlPW5ldyB0LkxuZ0xhdChlLmxuZyxlLmxhdCkscil7dmFyIGk9bmV3IHQuTG5nTGF0KGUubG5nLTM2MCxlLmxhdCksYT1uZXcgdC5MbmdMYXQoZS5sbmcrMzYwLGUubGF0KSxvPW4ubG9jYXRpb25Qb2ludChlKS5kaXN0U3FyKHIpO24ubG9jYXRpb25Qb2ludChpKS5kaXN0U3FyKHIpPG8/ZT1pOm4ubG9jYXRpb25Qb2ludChhKS5kaXN0U3FyKHIpPG8mJihlPWEpfWZvcig7TWF0aC5hYnMoZS5sbmctbi5jZW50ZXIubG5nKT4xODA7KXt2YXIgcz1uLmxvY2F0aW9uUG9pbnQoZSk7aWYocy54Pj0wJiZzLnk+PTAmJnMueDw9bi53aWR0aCYmcy55PD1uLmhlaWdodClicmVhaztlLmxuZz5uLmNlbnRlci5sbmc/ZS5sbmctPTM2MDplLmxuZys9MzYwfXJldHVybiBlfUlpLnByb3RvdHlwZS5kb3duPWZ1bmN0aW9uKHQsZSl7dGhpcy5tb3VzZVJvdGF0ZS5tb3VzZWRvd24odCxlKSx0aGlzLm1vdXNlUGl0Y2gmJnRoaXMubW91c2VQaXRjaC5tb3VzZWRvd24odCxlKSxyLmRpc2FibGVEcmFnKCl9LElpLnByb3RvdHlwZS5tb3ZlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5tYXAsbj10aGlzLm1vdXNlUm90YXRlLm1vdXNlbW92ZVdpbmRvdyh0LGUpO2lmKG4mJm4uYmVhcmluZ0RlbHRhJiZyLnNldEJlYXJpbmcoci5nZXRCZWFyaW5nKCkrbi5iZWFyaW5nRGVsdGEpLHRoaXMubW91c2VQaXRjaCl7dmFyIGk9dGhpcy5tb3VzZVBpdGNoLm1vdXNlbW92ZVdpbmRvdyh0LGUpO2kmJmkucGl0Y2hEZWx0YSYmci5zZXRQaXRjaChyLmdldFBpdGNoKCkraS5waXRjaERlbHRhKX19LElpLnByb3RvdHlwZS5vZmY9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmVsZW1lbnQ7ci5yZW1vdmVFdmVudExpc3RlbmVyKHQsIm1vdXNlZG93biIsdGhpcy5tb3VzZWRvd24pLHIucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LCJ0b3VjaHN0YXJ0Iix0aGlzLnRvdWNoc3RhcnQse3Bhc3NpdmU6ITF9KSxyLnJlbW92ZUV2ZW50TGlzdGVuZXIodCwidG91Y2htb3ZlIix0aGlzLnRvdWNobW92ZSksci5yZW1vdmVFdmVudExpc3RlbmVyKHQsInRvdWNoZW5kIix0aGlzLnRvdWNoZW5kKSxyLnJlbW92ZUV2ZW50TGlzdGVuZXIodCwidG91Y2hjYW5jZWwiLHRoaXMucmVzZXQpLHRoaXMub2ZmVGVtcCgpfSxJaS5wcm90b3R5cGUub2ZmVGVtcD1mdW5jdGlvbigpe3IuZW5hYmxlRHJhZygpLHIucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LndpbmRvdywibW91c2Vtb3ZlIix0aGlzLm1vdXNlbW92ZSksci5yZW1vdmVFdmVudExpc3RlbmVyKHQud2luZG93LCJtb3VzZXVwIix0aGlzLm1vdXNldXApfSxJaS5wcm90b3R5cGUubW91c2Vkb3duPWZ1bmN0aW9uKGUpe3RoaXMuZG93bih0LmV4dGVuZCh7fSxlLHtjdHJsS2V5OiEwLHByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIGUucHJldmVudERlZmF1bHQoKX19KSxyLm1vdXNlUG9zKHRoaXMuZWxlbWVudCxlKSksci5hZGRFdmVudExpc3RlbmVyKHQud2luZG93LCJtb3VzZW1vdmUiLHRoaXMubW91c2Vtb3ZlKSxyLmFkZEV2ZW50TGlzdGVuZXIodC53aW5kb3csIm1vdXNldXAiLHRoaXMubW91c2V1cCl9LElpLnByb3RvdHlwZS5tb3VzZW1vdmU9ZnVuY3Rpb24odCl7dGhpcy5tb3ZlKHQsci5tb3VzZVBvcyh0aGlzLmVsZW1lbnQsdCkpfSxJaS5wcm90b3R5cGUubW91c2V1cD1mdW5jdGlvbih0KXt0aGlzLm1vdXNlUm90YXRlLm1vdXNldXBXaW5kb3codCksdGhpcy5tb3VzZVBpdGNoJiZ0aGlzLm1vdXNlUGl0Y2gubW91c2V1cFdpbmRvdyh0KSx0aGlzLm9mZlRlbXAoKX0sSWkucHJvdG90eXBlLnRvdWNoc3RhcnQ9ZnVuY3Rpb24odCl7MSE9PXQudGFyZ2V0VG91Y2hlcy5sZW5ndGg/dGhpcy5yZXNldCgpOih0aGlzLl9zdGFydFBvcz10aGlzLl9sYXN0UG9zPXIudG91Y2hQb3ModGhpcy5lbGVtZW50LHQudGFyZ2V0VG91Y2hlcylbMF0sdGhpcy5kb3duKHt0eXBlOiJtb3VzZWRvd24iLGJ1dHRvbjowLGN0cmxLZXk6ITAscHJldmVudERlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdC5wcmV2ZW50RGVmYXVsdCgpfX0sdGhpcy5fc3RhcnRQb3MpKX0sSWkucHJvdG90eXBlLnRvdWNobW92ZT1mdW5jdGlvbih0KXsxIT09dC50YXJnZXRUb3VjaGVzLmxlbmd0aD90aGlzLnJlc2V0KCk6KHRoaXMuX2xhc3RQb3M9ci50b3VjaFBvcyh0aGlzLmVsZW1lbnQsdC50YXJnZXRUb3VjaGVzKVswXSx0aGlzLm1vdmUoe3ByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIHQucHJldmVudERlZmF1bHQoKX19LHRoaXMuX2xhc3RQb3MpKX0sSWkucHJvdG90eXBlLnRvdWNoZW5kPWZ1bmN0aW9uKHQpezA9PT10LnRhcmdldFRvdWNoZXMubGVuZ3RoJiZ0aGlzLl9zdGFydFBvcyYmdGhpcy5fbGFzdFBvcyYmdGhpcy5fc3RhcnRQb3MuZGlzdCh0aGlzLl9sYXN0UG9zKTx0aGlzLl9jbGlja1RvbGVyYW5jZSYmdGhpcy5lbGVtZW50LmNsaWNrKCksdGhpcy5yZXNldCgpfSxJaS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLm1vdXNlUm90YXRlLnJlc2V0KCksdGhpcy5tb3VzZVBpdGNoJiZ0aGlzLm1vdXNlUGl0Y2gucmVzZXQoKSxkZWxldGUgdGhpcy5fc3RhcnRQb3MsZGVsZXRlIHRoaXMuX2xhc3RQb3MsdGhpcy5vZmZUZW1wKCl9O3ZhciB6aT17Y2VudGVyOiJ0cmFuc2xhdGUoLTUwJSwtNTAlKSIsdG9wOiJ0cmFuc2xhdGUoLTUwJSwwKSIsInRvcC1sZWZ0IjoidHJhbnNsYXRlKDAsMCkiLCJ0b3AtcmlnaHQiOiJ0cmFuc2xhdGUoLTEwMCUsMCkiLGJvdHRvbToidHJhbnNsYXRlKC01MCUsLTEwMCUpIiwiYm90dG9tLWxlZnQiOiJ0cmFuc2xhdGUoMCwtMTAwJSkiLCJib3R0b20tcmlnaHQiOiJ0cmFuc2xhdGUoLTEwMCUsLTEwMCUpIixsZWZ0OiJ0cmFuc2xhdGUoMCwtNTAlKSIscmlnaHQ6InRyYW5zbGF0ZSgtMTAwJSwtNTAlKSJ9O2Z1bmN0aW9uIERpKHQsZSxyKXt2YXIgbj10LmNsYXNzTGlzdDtmb3IodmFyIGkgaW4gemkpbi5yZW1vdmUoIm1hcGJveGdsLSIrcisiLWFuY2hvci0iK2kpO24uYWRkKCJtYXBib3hnbC0iK3IrIi1hbmNob3ItIitlKX12YXIgUmksRmk9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gbihuLGkpe3ZhciBhPXRoaXM7aWYoZS5jYWxsKHRoaXMpLChuIGluc3RhbmNlb2YgdC53aW5kb3cuSFRNTEVsZW1lbnR8fGkpJiYobj10LmV4dGVuZCh7ZWxlbWVudDpufSxpKSksdC5iaW5kQWxsKFsiX3VwZGF0ZSIsIl9vbk1vdmUiLCJfb25VcCIsIl9hZGREcmFnSGFuZGxlciIsIl9vbk1hcENsaWNrIiwiX29uS2V5UHJlc3MiXSx0aGlzKSx0aGlzLl9hbmNob3I9biYmbi5hbmNob3J8fCJjZW50ZXIiLHRoaXMuX2NvbG9yPW4mJm4uY29sb3J8fCIjM0ZCMUNFIix0aGlzLl9kcmFnZ2FibGU9biYmbi5kcmFnZ2FibGV8fCExLHRoaXMuX3N0YXRlPSJpbmFjdGl2ZSIsdGhpcy5fcm90YXRpb249biYmbi5yb3RhdGlvbnx8MCx0aGlzLl9yb3RhdGlvbkFsaWdubWVudD1uJiZuLnJvdGF0aW9uQWxpZ25tZW50fHwiYXV0byIsdGhpcy5fcGl0Y2hBbGlnbm1lbnQ9biYmbi5waXRjaEFsaWdubWVudCYmImF1dG8iIT09bi5waXRjaEFsaWdubWVudD9uLnBpdGNoQWxpZ25tZW50OnRoaXMuX3JvdGF0aW9uQWxpZ25tZW50LG4mJm4uZWxlbWVudCl0aGlzLl9lbGVtZW50PW4uZWxlbWVudCx0aGlzLl9vZmZzZXQ9dC5Qb2ludC5jb252ZXJ0KG4mJm4ub2Zmc2V0fHxbMCwwXSk7ZWxzZXt0aGlzLl9kZWZhdWx0TWFya2VyPSEwLHRoaXMuX2VsZW1lbnQ9ci5jcmVhdGUoImRpdiIpLHRoaXMuX2VsZW1lbnQuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIiwiTWFwIG1hcmtlciIpO3ZhciBvPXIuY3JlYXRlTlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwic3ZnIik7by5zZXRBdHRyaWJ1dGVOUyhudWxsLCJkaXNwbGF5IiwiYmxvY2siKSxvLnNldEF0dHJpYnV0ZU5TKG51bGwsImhlaWdodCIsIjQxcHgiKSxvLnNldEF0dHJpYnV0ZU5TKG51bGwsIndpZHRoIiwiMjdweCIpLG8uc2V0QXR0cmlidXRlTlMobnVsbCwidmlld0JveCIsIjAgMCAyNyA0MSIpO3ZhciBzPXIuY3JlYXRlTlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiZyIpO3Muc2V0QXR0cmlidXRlTlMobnVsbCwic3Ryb2tlIiwibm9uZSIpLHMuc2V0QXR0cmlidXRlTlMobnVsbCwic3Ryb2tlLXdpZHRoIiwiMSIpLHMuc2V0QXR0cmlidXRlTlMobnVsbCwiZmlsbCIsIm5vbmUiKSxzLnNldEF0dHJpYnV0ZU5TKG51bGwsImZpbGwtcnVsZSIsImV2ZW5vZGQiKTt2YXIgbD1yLmNyZWF0ZU5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImciKTtsLnNldEF0dHJpYnV0ZU5TKG51bGwsImZpbGwtcnVsZSIsIm5vbnplcm8iKTt2YXIgYz1yLmNyZWF0ZU5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImciKTtjLnNldEF0dHJpYnV0ZU5TKG51bGwsInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgzLjAsIDI5LjApIiksYy5zZXRBdHRyaWJ1dGVOUyhudWxsLCJmaWxsIiwiIzAwMDAwMCIpO2Zvcih2YXIgdT0wLGY9W3tyeDoiMTAuNSIscnk6IjUuMjUwMDIyNzMifSx7cng6IjEwLjUiLHJ5OiI1LjI1MDAyMjczIn0se3J4OiI5LjUiLHJ5OiI0Ljc3Mjc1MDA3In0se3J4OiI4LjUiLHJ5OiI0LjI5NTQ5OTM2In0se3J4OiI3LjUiLHJ5OiIzLjgxODIyMzA4In0se3J4OiI2LjUiLHJ5OiIzLjM0MDk0Njc5In0se3J4OiI1LjUiLHJ5OiIyLjg2MzY3MDUxIn0se3J4OiI0LjUiLHJ5OiIyLjM4NjM2ODY0In1dO3U8Zi5sZW5ndGg7dSs9MSl7dmFyIGg9Zlt1XSxwPXIuY3JlYXRlTlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiZWxsaXBzZSIpO3Auc2V0QXR0cmlidXRlTlMobnVsbCwib3BhY2l0eSIsIjAuMDQiKSxwLnNldEF0dHJpYnV0ZU5TKG51bGwsImN4IiwiMTAuNSIpLHAuc2V0QXR0cmlidXRlTlMobnVsbCwiY3kiLCI1LjgwMDI5MDA4IikscC5zZXRBdHRyaWJ1dGVOUyhudWxsLCJyeCIsaC5yeCkscC5zZXRBdHRyaWJ1dGVOUyhudWxsLCJyeSIsaC5yeSksYy5hcHBlbmRDaGlsZChwKX12YXIgZD1yLmNyZWF0ZU5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImciKTtkLnNldEF0dHJpYnV0ZU5TKG51bGwsImZpbGwiLHRoaXMuX2NvbG9yKTt2YXIgbT1yLmNyZWF0ZU5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsInBhdGgiKTttLnNldEF0dHJpYnV0ZU5TKG51bGwsImQiLCJNMjcsMTMuNSBDMjcsMTkuMDc0NjQ0IDIwLjI1MDAwMSwyNy4wMDAwMDIgMTQuNzUsMzQuNTAwMDAyIEMxNC4wMTY2NjUsMzUuNTAwMDA0IDEyLjk4MzMzNSwzNS41MDAwMDQgMTIuMjUsMzQuNTAwMDAyIEM2Ljc0OTk5OTMsMjcuMDAwMDAyIDAsMTkuMjIyNTYyIDAsMTMuNSBDMCw2LjA0NDE1NTkgNi4wNDQxNTU5LDAgMTMuNSwwIEMyMC45NTU4NDQsMCAyNyw2LjA0NDE1NTkgMjcsMTMuNSBaIiksZC5hcHBlbmRDaGlsZChtKTt2YXIgZz1yLmNyZWF0ZU5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImciKTtnLnNldEF0dHJpYnV0ZU5TKG51bGwsIm9wYWNpdHkiLCIwLjI1IiksZy5zZXRBdHRyaWJ1dGVOUyhudWxsLCJmaWxsIiwiIzAwMDAwMCIpO3ZhciB2PXIuY3JlYXRlTlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwicGF0aCIpO3Yuc2V0QXR0cmlidXRlTlMobnVsbCwiZCIsIk0xMy41LDAgQzYuMDQ0MTU1OSwwIDAsNi4wNDQxNTU5IDAsMTMuNSBDMCwxOS4yMjI1NjIgNi43NDk5OTkzLDI3IDEyLjI1LDM0LjUgQzEzLDM1LjUyMjcyNyAxNC4wMTY2NjQsMzUuNTAwMDA0IDE0Ljc1LDM0LjUgQzIwLjI1MDAwMSwyNyAyNywxOS4wNzQ2NDQgMjcsMTMuNSBDMjcsNi4wNDQxNTU5IDIwLjk1NTg0NCwwIDEzLjUsMCBaIE0xMy41LDEgQzIwLjQxNTQwNCwxIDI2LDYuNTg0NTk2IDI2LDEzLjUgQzI2LDE1Ljg5ODY1NyAyNC40OTU1ODQsMTkuMTgxNDMxIDIyLjIyMDcwMywyMi43MzgyODEgQzE5Ljk0NTgyMywyNi4yOTUxMzIgMTYuNzA1MTE5LDMwLjE0MjE2NyAxMy45NDMzNTksMzMuOTA4MjAzIEMxMy43NDM0NDUsMzQuMTgwODE0IDEzLjYxMjcxNSwzNC4zMjI3MzggMTMuNSwzNC40NDE0MDYgQzEzLjM4NzI4NSwzNC4zMjI3MzggMTMuMjU2NTU1LDM0LjE4MDgxNCAxMy4wNTY2NDEsMzMuOTA4MjAzIEMxMC4yODQ0ODEsMzAuMTI3OTg1IDcuNDE0ODY4NCwyNi4zMTQxNTkgNS4wMTU2MjUsMjIuNzczNDM4IEMyLjYxNjM4MTYsMTkuMjMyNzE1IDEsMTUuOTUzNTM4IDEsMTMuNSBDMSw2LjU4NDU5NiA2LjU4NDU5NiwxIDEzLjUsMSBaIiksZy5hcHBlbmRDaGlsZCh2KTt2YXIgeT1yLmNyZWF0ZU5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImciKTt5LnNldEF0dHJpYnV0ZU5TKG51bGwsInRyYW5zZm9ybSIsInRyYW5zbGF0ZSg2LjAsIDcuMCkiKSx5LnNldEF0dHJpYnV0ZU5TKG51bGwsImZpbGwiLCIjRkZGRkZGIik7dmFyIHg9ci5jcmVhdGVOUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJnIik7eC5zZXRBdHRyaWJ1dGVOUyhudWxsLCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoOC4wLCA4LjApIik7dmFyIGI9ci5jcmVhdGVOUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJjaXJjbGUiKTtiLnNldEF0dHJpYnV0ZU5TKG51bGwsImZpbGwiLCIjMDAwMDAwIiksYi5zZXRBdHRyaWJ1dGVOUyhudWxsLCJvcGFjaXR5IiwiMC4yNSIpLGIuc2V0QXR0cmlidXRlTlMobnVsbCwiY3giLCI1LjUiKSxiLnNldEF0dHJpYnV0ZU5TKG51bGwsImN5IiwiNS41IiksYi5zZXRBdHRyaWJ1dGVOUyhudWxsLCJyIiwiNS40OTk5OTYyIik7dmFyIF89ci5jcmVhdGVOUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJjaXJjbGUiKTtfLnNldEF0dHJpYnV0ZU5TKG51bGwsImZpbGwiLCIjRkZGRkZGIiksXy5zZXRBdHRyaWJ1dGVOUyhudWxsLCJjeCIsIjUuNSIpLF8uc2V0QXR0cmlidXRlTlMobnVsbCwiY3kiLCI1LjUiKSxfLnNldEF0dHJpYnV0ZU5TKG51bGwsInIiLCI1LjQ5OTk5NjIiKSx4LmFwcGVuZENoaWxkKGIpLHguYXBwZW5kQ2hpbGQoXyksbC5hcHBlbmRDaGlsZChjKSxsLmFwcGVuZENoaWxkKGQpLGwuYXBwZW5kQ2hpbGQoZyksbC5hcHBlbmRDaGlsZCh5KSxsLmFwcGVuZENoaWxkKHgpLG8uYXBwZW5kQ2hpbGQobCksdGhpcy5fZWxlbWVudC5hcHBlbmRDaGlsZChvKSx0aGlzLl9vZmZzZXQ9dC5Qb2ludC5jb252ZXJ0KG4mJm4ub2Zmc2V0fHxbMCwtMTRdKX10aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLW1hcmtlciIpLHRoaXMuX2VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ3N0YXJ0IiwoZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpfSkpLHRoaXMuX2VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwoZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpfSkpLHRoaXMuX2VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLChmdW5jdGlvbigpe3ZhciB0PWEuX21hcC5nZXRDb250YWluZXIoKTt0LnNjcm9sbFRvcD0wLHQuc2Nyb2xsTGVmdD0wfSkpLERpKHRoaXMuX2VsZW1lbnQsdGhpcy5fYW5jaG9yLCJtYXJrZXIiKSx0aGlzLl9wb3B1cD1udWxsfXJldHVybiBlJiYobi5fX3Byb3RvX189ZSksbi5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSksbi5wcm90b3R5cGUuY29uc3RydWN0b3I9bixuLnByb3RvdHlwZS5hZGRUbz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yZW1vdmUoKSx0aGlzLl9tYXA9dCx0LmdldENhbnZhc0NvbnRhaW5lcigpLmFwcGVuZENoaWxkKHRoaXMuX2VsZW1lbnQpLHQub24oIm1vdmUiLHRoaXMuX3VwZGF0ZSksdC5vbigibW92ZWVuZCIsdGhpcy5fdXBkYXRlKSx0aGlzLnNldERyYWdnYWJsZSh0aGlzLl9kcmFnZ2FibGUpLHRoaXMuX3VwZGF0ZSgpLHRoaXMuX21hcC5vbigiY2xpY2siLHRoaXMuX29uTWFwQ2xpY2spLHRoaXN9LG4ucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9tYXAmJih0aGlzLl9tYXAub2ZmKCJjbGljayIsdGhpcy5fb25NYXBDbGljayksdGhpcy5fbWFwLm9mZigibW92ZSIsdGhpcy5fdXBkYXRlKSx0aGlzLl9tYXAub2ZmKCJtb3ZlZW5kIix0aGlzLl91cGRhdGUpLHRoaXMuX21hcC5vZmYoIm1vdXNlZG93biIsdGhpcy5fYWRkRHJhZ0hhbmRsZXIpLHRoaXMuX21hcC5vZmYoInRvdWNoc3RhcnQiLHRoaXMuX2FkZERyYWdIYW5kbGVyKSx0aGlzLl9tYXAub2ZmKCJtb3VzZXVwIix0aGlzLl9vblVwKSx0aGlzLl9tYXAub2ZmKCJ0b3VjaGVuZCIsdGhpcy5fb25VcCksdGhpcy5fbWFwLm9mZigibW91c2Vtb3ZlIix0aGlzLl9vbk1vdmUpLHRoaXMuX21hcC5vZmYoInRvdWNobW92ZSIsdGhpcy5fb25Nb3ZlKSxkZWxldGUgdGhpcy5fbWFwKSxyLnJlbW92ZSh0aGlzLl9lbGVtZW50KSx0aGlzLl9wb3B1cCYmdGhpcy5fcG9wdXAucmVtb3ZlKCksdGhpc30sbi5wcm90b3R5cGUuZ2V0TG5nTGF0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xuZ0xhdH0sbi5wcm90b3R5cGUuc2V0TG5nTGF0PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9sbmdMYXQ9dC5MbmdMYXQuY29udmVydChlKSx0aGlzLl9wb3M9bnVsbCx0aGlzLl9wb3B1cCYmdGhpcy5fcG9wdXAuc2V0TG5nTGF0KHRoaXMuX2xuZ0xhdCksdGhpcy5fdXBkYXRlKCksdGhpc30sbi5wcm90b3R5cGUuZ2V0RWxlbWVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9lbGVtZW50fSxuLnByb3RvdHlwZS5zZXRQb3B1cD1mdW5jdGlvbih0KXtpZih0aGlzLl9wb3B1cCYmKHRoaXMuX3BvcHVwLnJlbW92ZSgpLHRoaXMuX3BvcHVwPW51bGwsdGhpcy5fZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlwcmVzcyIsdGhpcy5fb25LZXlQcmVzcyksdGhpcy5fb3JpZ2luYWxUYWJJbmRleHx8dGhpcy5fZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoInRhYmluZGV4IikpLHQpe2lmKCEoIm9mZnNldCJpbiB0Lm9wdGlvbnMpKXt2YXIgZT1NYXRoLnNxcnQoTWF0aC5wb3coMTMuNSwyKS8yKTt0Lm9wdGlvbnMub2Zmc2V0PXRoaXMuX2RlZmF1bHRNYXJrZXI/e3RvcDpbMCwwXSwidG9wLWxlZnQiOlswLDBdLCJ0b3AtcmlnaHQiOlswLDBdLGJvdHRvbTpbMCwtMzguMV0sImJvdHRvbS1sZWZ0IjpbZSwtMSooMjQuNitlKV0sImJvdHRvbS1yaWdodCI6Wy1lLC0xKigyNC42K2UpXSxsZWZ0OlsxMy41LC0yNC42XSxyaWdodDpbLTEzLjUsLTI0LjZdfTp0aGlzLl9vZmZzZXR9dGhpcy5fcG9wdXA9dCx0aGlzLl9sbmdMYXQmJnRoaXMuX3BvcHVwLnNldExuZ0xhdCh0aGlzLl9sbmdMYXQpLHRoaXMuX29yaWdpbmFsVGFiSW5kZXg9dGhpcy5fZWxlbWVudC5nZXRBdHRyaWJ1dGUoInRhYmluZGV4IiksdGhpcy5fb3JpZ2luYWxUYWJJbmRleHx8dGhpcy5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiMCIpLHRoaXMuX2VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5cHJlc3MiLHRoaXMuX29uS2V5UHJlc3MpfXJldHVybiB0aGlzfSxuLnByb3RvdHlwZS5fb25LZXlQcmVzcz1mdW5jdGlvbih0KXt2YXIgZT10LmNvZGUscj10LmNoYXJDb2RlfHx0LmtleUNvZGU7IlNwYWNlIiE9PWUmJiJFbnRlciIhPT1lJiYzMiE9PXImJjEzIT09cnx8dGhpcy50b2dnbGVQb3B1cCgpfSxuLnByb3RvdHlwZS5fb25NYXBDbGljaz1mdW5jdGlvbih0KXt2YXIgZT10Lm9yaWdpbmFsRXZlbnQudGFyZ2V0LHI9dGhpcy5fZWxlbWVudDt0aGlzLl9wb3B1cCYmKGU9PT1yfHxyLmNvbnRhaW5zKGUpKSYmdGhpcy50b2dnbGVQb3B1cCgpfSxuLnByb3RvdHlwZS5nZXRQb3B1cD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9wb3B1cH0sbi5wcm90b3R5cGUudG9nZ2xlUG9wdXA9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9wb3B1cDtyZXR1cm4gdD8odC5pc09wZW4oKT90LnJlbW92ZSgpOnQuYWRkVG8odGhpcy5fbWFwKSx0aGlzKTp0aGlzfSxuLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKHQpe2lmKHRoaXMuX21hcCl7dGhpcy5fbWFwLnRyYW5zZm9ybS5yZW5kZXJXb3JsZENvcGllcyYmKHRoaXMuX2xuZ0xhdD1PaSh0aGlzLl9sbmdMYXQsdGhpcy5fcG9zLHRoaXMuX21hcC50cmFuc2Zvcm0pKSx0aGlzLl9wb3M9dGhpcy5fbWFwLnByb2plY3QodGhpcy5fbG5nTGF0KS5fYWRkKHRoaXMuX29mZnNldCk7dmFyIGU9IiI7InZpZXdwb3J0Ij09PXRoaXMuX3JvdGF0aW9uQWxpZ25tZW50fHwiYXV0byI9PT10aGlzLl9yb3RhdGlvbkFsaWdubWVudD9lPSJyb3RhdGVaKCIrdGhpcy5fcm90YXRpb24rImRlZykiOiJtYXAiPT09dGhpcy5fcm90YXRpb25BbGlnbm1lbnQmJihlPSJyb3RhdGVaKCIrKHRoaXMuX3JvdGF0aW9uLXRoaXMuX21hcC5nZXRCZWFyaW5nKCkpKyJkZWcpIik7dmFyIG49IiI7InZpZXdwb3J0Ij09PXRoaXMuX3BpdGNoQWxpZ25tZW50fHwiYXV0byI9PT10aGlzLl9waXRjaEFsaWdubWVudD9uPSJyb3RhdGVYKDBkZWcpIjoibWFwIj09PXRoaXMuX3BpdGNoQWxpZ25tZW50JiYobj0icm90YXRlWCgiK3RoaXMuX21hcC5nZXRQaXRjaCgpKyJkZWcpIiksdCYmIm1vdmVlbmQiIT09dC50eXBlfHwodGhpcy5fcG9zPXRoaXMuX3Bvcy5yb3VuZCgpKSxyLnNldFRyYW5zZm9ybSh0aGlzLl9lbGVtZW50LHppW3RoaXMuX2FuY2hvcl0rIiB0cmFuc2xhdGUoIit0aGlzLl9wb3MueCsicHgsICIrdGhpcy5fcG9zLnkrInB4KSAiK24rIiAiK2UpfX0sbi5wcm90b3R5cGUuZ2V0T2Zmc2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29mZnNldH0sbi5wcm90b3R5cGUuc2V0T2Zmc2V0PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9vZmZzZXQ9dC5Qb2ludC5jb252ZXJ0KGUpLHRoaXMuX3VwZGF0ZSgpLHRoaXN9LG4ucHJvdG90eXBlLl9vbk1vdmU9ZnVuY3Rpb24oZSl7dGhpcy5fcG9zPWUucG9pbnQuc3ViKHRoaXMuX3Bvc2l0aW9uRGVsdGEpLHRoaXMuX2xuZ0xhdD10aGlzLl9tYXAudW5wcm9qZWN0KHRoaXMuX3BvcyksdGhpcy5zZXRMbmdMYXQodGhpcy5fbG5nTGF0KSx0aGlzLl9lbGVtZW50LnN0eWxlLnBvaW50ZXJFdmVudHM9Im5vbmUiLCJwZW5kaW5nIj09PXRoaXMuX3N0YXRlJiYodGhpcy5fc3RhdGU9ImFjdGl2ZSIsdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJkcmFnc3RhcnQiKSkpLHRoaXMuZmlyZShuZXcgdC5FdmVudCgiZHJhZyIpKX0sbi5wcm90b3R5cGUuX29uVXA9ZnVuY3Rpb24oKXt0aGlzLl9lbGVtZW50LnN0eWxlLnBvaW50ZXJFdmVudHM9ImF1dG8iLHRoaXMuX3Bvc2l0aW9uRGVsdGE9bnVsbCx0aGlzLl9tYXAub2ZmKCJtb3VzZW1vdmUiLHRoaXMuX29uTW92ZSksdGhpcy5fbWFwLm9mZigidG91Y2htb3ZlIix0aGlzLl9vbk1vdmUpLCJhY3RpdmUiPT09dGhpcy5fc3RhdGUmJnRoaXMuZmlyZShuZXcgdC5FdmVudCgiZHJhZ2VuZCIpKSx0aGlzLl9zdGF0ZT0iaW5hY3RpdmUifSxuLnByb3RvdHlwZS5fYWRkRHJhZ0hhbmRsZXI9ZnVuY3Rpb24odCl7dGhpcy5fZWxlbWVudC5jb250YWlucyh0Lm9yaWdpbmFsRXZlbnQudGFyZ2V0KSYmKHQucHJldmVudERlZmF1bHQoKSx0aGlzLl9wb3NpdGlvbkRlbHRhPXQucG9pbnQuc3ViKHRoaXMuX3BvcykuYWRkKHRoaXMuX29mZnNldCksdGhpcy5fc3RhdGU9InBlbmRpbmciLHRoaXMuX21hcC5vbigibW91c2Vtb3ZlIix0aGlzLl9vbk1vdmUpLHRoaXMuX21hcC5vbigidG91Y2htb3ZlIix0aGlzLl9vbk1vdmUpLHRoaXMuX21hcC5vbmNlKCJtb3VzZXVwIix0aGlzLl9vblVwKSx0aGlzLl9tYXAub25jZSgidG91Y2hlbmQiLHRoaXMuX29uVXApKX0sbi5wcm90b3R5cGUuc2V0RHJhZ2dhYmxlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9kcmFnZ2FibGU9ISF0LHRoaXMuX21hcCYmKHQ/KHRoaXMuX21hcC5vbigibW91c2Vkb3duIix0aGlzLl9hZGREcmFnSGFuZGxlciksdGhpcy5fbWFwLm9uKCJ0b3VjaHN0YXJ0Iix0aGlzLl9hZGREcmFnSGFuZGxlcikpOih0aGlzLl9tYXAub2ZmKCJtb3VzZWRvd24iLHRoaXMuX2FkZERyYWdIYW5kbGVyKSx0aGlzLl9tYXAub2ZmKCJ0b3VjaHN0YXJ0Iix0aGlzLl9hZGREcmFnSGFuZGxlcikpKSx0aGlzfSxuLnByb3RvdHlwZS5pc0RyYWdnYWJsZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9kcmFnZ2FibGV9LG4ucHJvdG90eXBlLnNldFJvdGF0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9yb3RhdGlvbj10fHwwLHRoaXMuX3VwZGF0ZSgpLHRoaXN9LG4ucHJvdG90eXBlLmdldFJvdGF0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JvdGF0aW9ufSxuLnByb3RvdHlwZS5zZXRSb3RhdGlvbkFsaWdubWVudD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcm90YXRpb25BbGlnbm1lbnQ9dHx8ImF1dG8iLHRoaXMuX3VwZGF0ZSgpLHRoaXN9LG4ucHJvdG90eXBlLmdldFJvdGF0aW9uQWxpZ25tZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JvdGF0aW9uQWxpZ25tZW50fSxuLnByb3RvdHlwZS5zZXRQaXRjaEFsaWdubWVudD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGl0Y2hBbGlnbm1lbnQ9dCYmImF1dG8iIT09dD90OnRoaXMuX3JvdGF0aW9uQWxpZ25tZW50LHRoaXMuX3VwZGF0ZSgpLHRoaXN9LG4ucHJvdG90eXBlLmdldFBpdGNoQWxpZ25tZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3BpdGNoQWxpZ25tZW50fSxufSh0LkV2ZW50ZWQpLEJpPXtwb3NpdGlvbk9wdGlvbnM6e2VuYWJsZUhpZ2hBY2N1cmFjeTohMSxtYXhpbXVtQWdlOjAsdGltZW91dDo2ZTN9LGZpdEJvdW5kc09wdGlvbnM6e21heFpvb206MTV9LHRyYWNrVXNlckxvY2F0aW9uOiExLHNob3dBY2N1cmFjeUNpcmNsZTohMCxzaG93VXNlckxvY2F0aW9uOiEwfTt2YXIgTmk9MCxqaT0hMSxVaT1mdW5jdGlvbihlKXtmdW5jdGlvbiBuKHIpe2UuY2FsbCh0aGlzKSx0aGlzLm9wdGlvbnM9dC5leHRlbmQoe30sQmksciksdC5iaW5kQWxsKFsiX29uU3VjY2VzcyIsIl9vbkVycm9yIiwiX29uWm9vbSIsIl9maW5pc2giLCJfc2V0dXBVSSIsIl91cGRhdGVDYW1lcmEiLCJfdXBkYXRlTWFya2VyIl0sdGhpcyl9cmV0dXJuIGUmJihuLl9fcHJvdG9fXz1lKSxuLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlKSxuLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1uLG4ucHJvdG90eXBlLm9uQWRkPWZ1bmN0aW9uKGUpe3ZhciBuO3JldHVybiB0aGlzLl9tYXA9ZSx0aGlzLl9jb250YWluZXI9ci5jcmVhdGUoImRpdiIsIm1hcGJveGdsLWN0cmwgbWFwYm94Z2wtY3RybC1ncm91cCIpLG49dGhpcy5fc2V0dXBVSSx2b2lkIDAhPT1SaT9uKFJpKTp2b2lkIDAhPT10LndpbmRvdy5uYXZpZ2F0b3IucGVybWlzc2lvbnM/dC53aW5kb3cubmF2aWdhdG9yLnBlcm1pc3Npb25zLnF1ZXJ5KHtuYW1lOiJnZW9sb2NhdGlvbiJ9KS50aGVuKChmdW5jdGlvbih0KXtSaT0iZGVuaWVkIiE9PXQuc3RhdGUsbihSaSl9KSk6KFJpPSEhdC53aW5kb3cubmF2aWdhdG9yLmdlb2xvY2F0aW9uLG4oUmkpKSx0aGlzLl9jb250YWluZXJ9LG4ucHJvdG90eXBlLm9uUmVtb3ZlPWZ1bmN0aW9uKCl7dm9pZCAwIT09dGhpcy5fZ2VvbG9jYXRpb25XYXRjaElEJiYodC53aW5kb3cubmF2aWdhdG9yLmdlb2xvY2F0aW9uLmNsZWFyV2F0Y2godGhpcy5fZ2VvbG9jYXRpb25XYXRjaElEKSx0aGlzLl9nZW9sb2NhdGlvbldhdGNoSUQ9dm9pZCAwKSx0aGlzLm9wdGlvbnMuc2hvd1VzZXJMb2NhdGlvbiYmdGhpcy5fdXNlckxvY2F0aW9uRG90TWFya2VyJiZ0aGlzLl91c2VyTG9jYXRpb25Eb3RNYXJrZXIucmVtb3ZlKCksdGhpcy5vcHRpb25zLnNob3dBY2N1cmFjeUNpcmNsZSYmdGhpcy5fYWNjdXJhY3lDaXJjbGVNYXJrZXImJnRoaXMuX2FjY3VyYWN5Q2lyY2xlTWFya2VyLnJlbW92ZSgpLHIucmVtb3ZlKHRoaXMuX2NvbnRhaW5lciksdGhpcy5fbWFwLm9mZigiem9vbSIsdGhpcy5fb25ab29tKSx0aGlzLl9tYXA9dm9pZCAwLE5pPTAsamk9ITF9LG4ucHJvdG90eXBlLl9pc091dE9mTWFwTWF4Qm91bmRzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX21hcC5nZXRNYXhCb3VuZHMoKSxyPXQuY29vcmRzO3JldHVybiBlJiYoci5sb25naXR1ZGU8ZS5nZXRXZXN0KCl8fHIubG9uZ2l0dWRlPmUuZ2V0RWFzdCgpfHxyLmxhdGl0dWRlPGUuZ2V0U291dGgoKXx8ci5sYXRpdHVkZT5lLmdldE5vcnRoKCkpfSxuLnByb3RvdHlwZS5fc2V0RXJyb3JTdGF0ZT1mdW5jdGlvbigpe3N3aXRjaCh0aGlzLl93YXRjaFN0YXRlKXtjYXNlIldBSVRJTkdfQUNUSVZFIjp0aGlzLl93YXRjaFN0YXRlPSJBQ1RJVkVfRVJST1IiLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCJtYXBib3hnbC1jdHJsLWdlb2xvY2F0ZS1hY3RpdmUiKSx0aGlzLl9nZW9sb2NhdGVCdXR0b24uY2xhc3NMaXN0LmFkZCgibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUtYWN0aXZlLWVycm9yIik7YnJlYWs7Y2FzZSJBQ1RJVkVfTE9DSyI6dGhpcy5fd2F0Y2hTdGF0ZT0iQUNUSVZFX0VSUk9SIix0aGlzLl9nZW9sb2NhdGVCdXR0b24uY2xhc3NMaXN0LnJlbW92ZSgibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUtYWN0aXZlIiksdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLWFjdGl2ZS1lcnJvciIpLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5jbGFzc0xpc3QuYWRkKCJtYXBib3hnbC1jdHJsLWdlb2xvY2F0ZS13YWl0aW5nIik7YnJlYWs7Y2FzZSJCQUNLR1JPVU5EIjp0aGlzLl93YXRjaFN0YXRlPSJCQUNLR1JPVU5EX0VSUk9SIix0aGlzLl9nZW9sb2NhdGVCdXR0b24uY2xhc3NMaXN0LnJlbW92ZSgibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUtYmFja2dyb3VuZCIpLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5jbGFzc0xpc3QuYWRkKCJtYXBib3hnbC1jdHJsLWdlb2xvY2F0ZS1iYWNrZ3JvdW5kLWVycm9yIiksdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLXdhaXRpbmciKX19LG4ucHJvdG90eXBlLl9vblN1Y2Nlc3M9ZnVuY3Rpb24oZSl7aWYodGhpcy5fbWFwKXtpZih0aGlzLl9pc091dE9mTWFwTWF4Qm91bmRzKGUpKXJldHVybiB0aGlzLl9zZXRFcnJvclN0YXRlKCksdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJvdXRvZm1heGJvdW5kcyIsZSkpLHRoaXMuX3VwZGF0ZU1hcmtlcigpLHZvaWQgdGhpcy5fZmluaXNoKCk7aWYodGhpcy5vcHRpb25zLnRyYWNrVXNlckxvY2F0aW9uKXN3aXRjaCh0aGlzLl9sYXN0S25vd25Qb3NpdGlvbj1lLHRoaXMuX3dhdGNoU3RhdGUpe2Nhc2UiV0FJVElOR19BQ1RJVkUiOmNhc2UiQUNUSVZFX0xPQ0siOmNhc2UiQUNUSVZFX0VSUk9SIjp0aGlzLl93YXRjaFN0YXRlPSJBQ1RJVkVfTE9DSyIsdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLXdhaXRpbmciKSx0aGlzLl9nZW9sb2NhdGVCdXR0b24uY2xhc3NMaXN0LnJlbW92ZSgibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUtYWN0aXZlLWVycm9yIiksdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLWFjdGl2ZSIpO2JyZWFrO2Nhc2UiQkFDS0dST1VORCI6Y2FzZSJCQUNLR1JPVU5EX0VSUk9SIjp0aGlzLl93YXRjaFN0YXRlPSJCQUNLR1JPVU5EIix0aGlzLl9nZW9sb2NhdGVCdXR0b24uY2xhc3NMaXN0LnJlbW92ZSgibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUtd2FpdGluZyIpLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCJtYXBib3hnbC1jdHJsLWdlb2xvY2F0ZS1iYWNrZ3JvdW5kLWVycm9yIiksdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLWJhY2tncm91bmQiKX10aGlzLm9wdGlvbnMuc2hvd1VzZXJMb2NhdGlvbiYmIk9GRiIhPT10aGlzLl93YXRjaFN0YXRlJiZ0aGlzLl91cGRhdGVNYXJrZXIoZSksdGhpcy5vcHRpb25zLnRyYWNrVXNlckxvY2F0aW9uJiYiQUNUSVZFX0xPQ0siIT09dGhpcy5fd2F0Y2hTdGF0ZXx8dGhpcy5fdXBkYXRlQ2FtZXJhKGUpLHRoaXMub3B0aW9ucy5zaG93VXNlckxvY2F0aW9uJiZ0aGlzLl9kb3RFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoIm1hcGJveGdsLXVzZXItbG9jYXRpb24tZG90LXN0YWxlIiksdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJnZW9sb2NhdGUiLGUpKSx0aGlzLl9maW5pc2goKX19LG4ucHJvdG90eXBlLl91cGRhdGVDYW1lcmE9ZnVuY3Rpb24oZSl7dmFyIHI9bmV3IHQuTG5nTGF0KGUuY29vcmRzLmxvbmdpdHVkZSxlLmNvb3Jkcy5sYXRpdHVkZSksbj1lLmNvb3Jkcy5hY2N1cmFjeSxpPXRoaXMuX21hcC5nZXRCZWFyaW5nKCksYT10LmV4dGVuZCh7YmVhcmluZzppfSx0aGlzLm9wdGlvbnMuZml0Qm91bmRzT3B0aW9ucyk7dGhpcy5fbWFwLmZpdEJvdW5kcyhyLnRvQm91bmRzKG4pLGEse2dlb2xvY2F0ZVNvdXJjZTohMH0pfSxuLnByb3RvdHlwZS5fdXBkYXRlTWFya2VyPWZ1bmN0aW9uKGUpe2lmKGUpe3ZhciByPW5ldyB0LkxuZ0xhdChlLmNvb3Jkcy5sb25naXR1ZGUsZS5jb29yZHMubGF0aXR1ZGUpO3RoaXMuX2FjY3VyYWN5Q2lyY2xlTWFya2VyLnNldExuZ0xhdChyKS5hZGRUbyh0aGlzLl9tYXApLHRoaXMuX3VzZXJMb2NhdGlvbkRvdE1hcmtlci5zZXRMbmdMYXQocikuYWRkVG8odGhpcy5fbWFwKSx0aGlzLl9hY2N1cmFjeT1lLmNvb3Jkcy5hY2N1cmFjeSx0aGlzLm9wdGlvbnMuc2hvd1VzZXJMb2NhdGlvbiYmdGhpcy5vcHRpb25zLnNob3dBY2N1cmFjeUNpcmNsZSYmdGhpcy5fdXBkYXRlQ2lyY2xlUmFkaXVzKCl9ZWxzZSB0aGlzLl91c2VyTG9jYXRpb25Eb3RNYXJrZXIucmVtb3ZlKCksdGhpcy5fYWNjdXJhY3lDaXJjbGVNYXJrZXIucmVtb3ZlKCl9LG4ucHJvdG90eXBlLl91cGRhdGVDaXJjbGVSYWRpdXM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9tYXAuX2NvbnRhaW5lci5jbGllbnRIZWlnaHQvMixlPXRoaXMuX21hcC51bnByb2plY3QoWzAsdF0pLHI9dGhpcy5fbWFwLnVucHJvamVjdChbMSx0XSksbj1lLmRpc3RhbmNlVG8ociksaT1NYXRoLmNlaWwoMip0aGlzLl9hY2N1cmFjeS9uKTt0aGlzLl9jaXJjbGVFbGVtZW50LnN0eWxlLndpZHRoPWkrInB4Iix0aGlzLl9jaXJjbGVFbGVtZW50LnN0eWxlLmhlaWdodD1pKyJweCJ9LG4ucHJvdG90eXBlLl9vblpvb209ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMuc2hvd1VzZXJMb2NhdGlvbiYmdGhpcy5vcHRpb25zLnNob3dBY2N1cmFjeUNpcmNsZSYmdGhpcy5fdXBkYXRlQ2lyY2xlUmFkaXVzKCl9LG4ucHJvdG90eXBlLl9vbkVycm9yPWZ1bmN0aW9uKGUpe2lmKHRoaXMuX21hcCl7aWYodGhpcy5vcHRpb25zLnRyYWNrVXNlckxvY2F0aW9uKWlmKDE9PT1lLmNvZGUpe3RoaXMuX3dhdGNoU3RhdGU9Ik9GRiIsdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLXdhaXRpbmciKSx0aGlzLl9nZW9sb2NhdGVCdXR0b24uY2xhc3NMaXN0LnJlbW92ZSgibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUtYWN0aXZlIiksdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLWFjdGl2ZS1lcnJvciIpLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCJtYXBib3hnbC1jdHJsLWdlb2xvY2F0ZS1iYWNrZ3JvdW5kIiksdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLWJhY2tncm91bmQtZXJyb3IiKSx0aGlzLl9nZW9sb2NhdGVCdXR0b24uZGlzYWJsZWQ9ITA7dmFyIHI9dGhpcy5fbWFwLl9nZXRVSVN0cmluZygiR2VvbG9jYXRlQ29udHJvbC5Mb2NhdGlvbk5vdEF2YWlsYWJsZSIpO3RoaXMuX2dlb2xvY2F0ZUJ1dHRvbi50aXRsZT1yLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLHIpLHZvaWQgMCE9PXRoaXMuX2dlb2xvY2F0aW9uV2F0Y2hJRCYmdGhpcy5fY2xlYXJXYXRjaCgpfWVsc2V7aWYoMz09PWUuY29kZSYmamkpcmV0dXJuO3RoaXMuX3NldEVycm9yU3RhdGUoKX0iT0ZGIiE9PXRoaXMuX3dhdGNoU3RhdGUmJnRoaXMub3B0aW9ucy5zaG93VXNlckxvY2F0aW9uJiZ0aGlzLl9kb3RFbGVtZW50LmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLXVzZXItbG9jYXRpb24tZG90LXN0YWxlIiksdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJlcnJvciIsZSkpLHRoaXMuX2ZpbmlzaCgpfX0sbi5wcm90b3R5cGUuX2ZpbmlzaD1mdW5jdGlvbigpe3RoaXMuX3RpbWVvdXRJZCYmY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVvdXRJZCksdGhpcy5fdGltZW91dElkPXZvaWQgMH0sbi5wcm90b3R5cGUuX3NldHVwVUk9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcztpZih0aGlzLl9jb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLChmdW5jdGlvbih0KXtyZXR1cm4gdC5wcmV2ZW50RGVmYXVsdCgpfSkpLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbj1yLmNyZWF0ZSgiYnV0dG9uIiwibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUiLHRoaXMuX2NvbnRhaW5lciksci5jcmVhdGUoInNwYW4iLCJtYXBib3hnbC1jdHJsLWljb24iLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbikuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsITApLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi50eXBlPSJidXR0b24iLCExPT09ZSl7dC53YXJuT25jZSgiR2VvbG9jYXRpb24gc3VwcG9ydCBpcyBub3QgYXZhaWxhYmxlIHNvIHRoZSBHZW9sb2NhdGVDb250cm9sIHdpbGwgYmUgZGlzYWJsZWQuIik7dmFyIGk9dGhpcy5fbWFwLl9nZXRVSVN0cmluZygiR2VvbG9jYXRlQ29udHJvbC5Mb2NhdGlvbk5vdEF2YWlsYWJsZSIpO3RoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5kaXNhYmxlZD0hMCx0aGlzLl9nZW9sb2NhdGVCdXR0b24udGl0bGU9aSx0aGlzLl9nZW9sb2NhdGVCdXR0b24uc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixpKX1lbHNle3ZhciBhPXRoaXMuX21hcC5fZ2V0VUlTdHJpbmcoIkdlb2xvY2F0ZUNvbnRyb2wuRmluZE15TG9jYXRpb24iKTt0aGlzLl9nZW9sb2NhdGVCdXR0b24udGl0bGU9YSx0aGlzLl9nZW9sb2NhdGVCdXR0b24uc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixhKX10aGlzLm9wdGlvbnMudHJhY2tVc2VyTG9jYXRpb24mJih0aGlzLl9nZW9sb2NhdGVCdXR0b24uc2V0QXR0cmlidXRlKCJhcmlhLXByZXNzZWQiLCJmYWxzZSIpLHRoaXMuX3dhdGNoU3RhdGU9Ik9GRiIpLHRoaXMub3B0aW9ucy5zaG93VXNlckxvY2F0aW9uJiYodGhpcy5fZG90RWxlbWVudD1yLmNyZWF0ZSgiZGl2IiwibWFwYm94Z2wtdXNlci1sb2NhdGlvbi1kb3QiKSx0aGlzLl91c2VyTG9jYXRpb25Eb3RNYXJrZXI9bmV3IEZpKHRoaXMuX2RvdEVsZW1lbnQpLHRoaXMuX2NpcmNsZUVsZW1lbnQ9ci5jcmVhdGUoImRpdiIsIm1hcGJveGdsLXVzZXItbG9jYXRpb24tYWNjdXJhY3ktY2lyY2xlIiksdGhpcy5fYWNjdXJhY3lDaXJjbGVNYXJrZXI9bmV3IEZpKHtlbGVtZW50OnRoaXMuX2NpcmNsZUVsZW1lbnQscGl0Y2hBbGlnbm1lbnQ6Im1hcCJ9KSx0aGlzLm9wdGlvbnMudHJhY2tVc2VyTG9jYXRpb24mJih0aGlzLl93YXRjaFN0YXRlPSJPRkYiKSx0aGlzLl9tYXAub24oInpvb20iLHRoaXMuX29uWm9vbSkpLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy50cmlnZ2VyLmJpbmQodGhpcykpLHRoaXMuX3NldHVwPSEwLHRoaXMub3B0aW9ucy50cmFja1VzZXJMb2NhdGlvbiYmdGhpcy5fbWFwLm9uKCJtb3Zlc3RhcnQiLChmdW5jdGlvbihlKXt2YXIgcj1lLm9yaWdpbmFsRXZlbnQmJiJyZXNpemUiPT09ZS5vcmlnaW5hbEV2ZW50LnR5cGU7ZS5nZW9sb2NhdGVTb3VyY2V8fCJBQ1RJVkVfTE9DSyIhPT1uLl93YXRjaFN0YXRlfHxyfHwobi5fd2F0Y2hTdGF0ZT0iQkFDS0dST1VORCIsbi5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLWJhY2tncm91bmQiKSxuLl9nZW9sb2NhdGVCdXR0b24uY2xhc3NMaXN0LnJlbW92ZSgibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUtYWN0aXZlIiksbi5maXJlKG5ldyB0LkV2ZW50KCJ0cmFja3VzZXJsb2NhdGlvbmVuZCIpKSl9KSl9LG4ucHJvdG90eXBlLnRyaWdnZXI9ZnVuY3Rpb24oKXtpZighdGhpcy5fc2V0dXApcmV0dXJuIHQud2Fybk9uY2UoIkdlb2xvY2F0ZSBjb250cm9sIHRyaWdnZXJlZCBiZWZvcmUgYWRkZWQgdG8gYSBtYXAiKSwhMTtpZih0aGlzLm9wdGlvbnMudHJhY2tVc2VyTG9jYXRpb24pe3N3aXRjaCh0aGlzLl93YXRjaFN0YXRlKXtjYXNlIk9GRiI6dGhpcy5fd2F0Y2hTdGF0ZT0iV0FJVElOR19BQ1RJVkUiLHRoaXMuZmlyZShuZXcgdC5FdmVudCgidHJhY2t1c2VybG9jYXRpb25zdGFydCIpKTticmVhaztjYXNlIldBSVRJTkdfQUNUSVZFIjpjYXNlIkFDVElWRV9MT0NLIjpjYXNlIkFDVElWRV9FUlJPUiI6Y2FzZSJCQUNLR1JPVU5EX0VSUk9SIjpOaS0tLGppPSExLHRoaXMuX3dhdGNoU3RhdGU9Ik9GRiIsdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLXdhaXRpbmciKSx0aGlzLl9nZW9sb2NhdGVCdXR0b24uY2xhc3NMaXN0LnJlbW92ZSgibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUtYWN0aXZlIiksdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLWFjdGl2ZS1lcnJvciIpLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCJtYXBib3hnbC1jdHJsLWdlb2xvY2F0ZS1iYWNrZ3JvdW5kIiksdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLWJhY2tncm91bmQtZXJyb3IiKSx0aGlzLmZpcmUobmV3IHQuRXZlbnQoInRyYWNrdXNlcmxvY2F0aW9uZW5kIikpO2JyZWFrO2Nhc2UiQkFDS0dST1VORCI6dGhpcy5fd2F0Y2hTdGF0ZT0iQUNUSVZFX0xPQ0siLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCJtYXBib3hnbC1jdHJsLWdlb2xvY2F0ZS1iYWNrZ3JvdW5kIiksdGhpcy5fbGFzdEtub3duUG9zaXRpb24mJnRoaXMuX3VwZGF0ZUNhbWVyYSh0aGlzLl9sYXN0S25vd25Qb3NpdGlvbiksdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJ0cmFja3VzZXJsb2NhdGlvbnN0YXJ0IikpfXN3aXRjaCh0aGlzLl93YXRjaFN0YXRlKXtjYXNlIldBSVRJTkdfQUNUSVZFIjp0aGlzLl9nZW9sb2NhdGVCdXR0b24uY2xhc3NMaXN0LmFkZCgibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUtd2FpdGluZyIpLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5jbGFzc0xpc3QuYWRkKCJtYXBib3hnbC1jdHJsLWdlb2xvY2F0ZS1hY3RpdmUiKTticmVhaztjYXNlIkFDVElWRV9MT0NLIjp0aGlzLl9nZW9sb2NhdGVCdXR0b24uY2xhc3NMaXN0LmFkZCgibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUtYWN0aXZlIik7YnJlYWs7Y2FzZSJBQ1RJVkVfRVJST1IiOnRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5jbGFzc0xpc3QuYWRkKCJtYXBib3hnbC1jdHJsLWdlb2xvY2F0ZS13YWl0aW5nIiksdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLWFjdGl2ZS1lcnJvciIpO2JyZWFrO2Nhc2UiQkFDS0dST1VORCI6dGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLWJhY2tncm91bmQiKTticmVhaztjYXNlIkJBQ0tHUk9VTkRfRVJST1IiOnRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5jbGFzc0xpc3QuYWRkKCJtYXBib3hnbC1jdHJsLWdlb2xvY2F0ZS13YWl0aW5nIiksdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLWJhY2tncm91bmQtZXJyb3IiKX1pZigiT0ZGIj09PXRoaXMuX3dhdGNoU3RhdGUmJnZvaWQgMCE9PXRoaXMuX2dlb2xvY2F0aW9uV2F0Y2hJRCl0aGlzLl9jbGVhcldhdGNoKCk7ZWxzZSBpZih2b2lkIDA9PT10aGlzLl9nZW9sb2NhdGlvbldhdGNoSUQpe3ZhciBlO3RoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5jbGFzc0xpc3QuYWRkKCJtYXBib3hnbC1jdHJsLWdlb2xvY2F0ZS13YWl0aW5nIiksdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLnNldEF0dHJpYnV0ZSgiYXJpYS1wcmVzc2VkIiwidHJ1ZSIpLCsrTmk+MT8oZT17bWF4aW11bUFnZTo2ZTUsdGltZW91dDowfSxqaT0hMCk6KGU9dGhpcy5vcHRpb25zLnBvc2l0aW9uT3B0aW9ucyxqaT0hMSksdGhpcy5fZ2VvbG9jYXRpb25XYXRjaElEPXQud2luZG93Lm5hdmlnYXRvci5nZW9sb2NhdGlvbi53YXRjaFBvc2l0aW9uKHRoaXMuX29uU3VjY2Vzcyx0aGlzLl9vbkVycm9yLGUpfX1lbHNlIHQud2luZG93Lm5hdmlnYXRvci5nZW9sb2NhdGlvbi5nZXRDdXJyZW50UG9zaXRpb24odGhpcy5fb25TdWNjZXNzLHRoaXMuX29uRXJyb3IsdGhpcy5vcHRpb25zLnBvc2l0aW9uT3B0aW9ucyksdGhpcy5fdGltZW91dElkPXNldFRpbWVvdXQodGhpcy5fZmluaXNoLDFlNCk7cmV0dXJuITB9LG4ucHJvdG90eXBlLl9jbGVhcldhdGNoPWZ1bmN0aW9uKCl7dC53aW5kb3cubmF2aWdhdG9yLmdlb2xvY2F0aW9uLmNsZWFyV2F0Y2godGhpcy5fZ2VvbG9jYXRpb25XYXRjaElEKSx0aGlzLl9nZW9sb2NhdGlvbldhdGNoSUQ9dm9pZCAwLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCJtYXBib3hnbC1jdHJsLWdlb2xvY2F0ZS13YWl0aW5nIiksdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLnNldEF0dHJpYnV0ZSgiYXJpYS1wcmVzc2VkIiwiZmFsc2UiKSx0aGlzLm9wdGlvbnMuc2hvd1VzZXJMb2NhdGlvbiYmdGhpcy5fdXBkYXRlTWFya2VyKG51bGwpfSxufSh0LkV2ZW50ZWQpLFZpPXttYXhXaWR0aDoxMDAsdW5pdDoibWV0cmljIn0sSGk9ZnVuY3Rpb24oZSl7dGhpcy5vcHRpb25zPXQuZXh0ZW5kKHt9LFZpLGUpLHQuYmluZEFsbChbIl9vbk1vdmUiLCJzZXRVbml0Il0sdGhpcyl9O2Z1bmN0aW9uIHFpKHQsZSxyKXt2YXIgbj1yJiZyLm1heFdpZHRofHwxMDAsaT10Ll9jb250YWluZXIuY2xpZW50SGVpZ2h0LzIsYT10LnVucHJvamVjdChbMCxpXSksbz10LnVucHJvamVjdChbbixpXSkscz1hLmRpc3RhbmNlVG8obyk7aWYociYmImltcGVyaWFsIj09PXIudW5pdCl7dmFyIGw9My4yODA4KnM7aWYobD41MjgwKUdpKGUsbixsLzUyODAsdC5fZ2V0VUlTdHJpbmcoIlNjYWxlQ29udHJvbC5NaWxlcyIpKTtlbHNlIEdpKGUsbixsLHQuX2dldFVJU3RyaW5nKCJTY2FsZUNvbnRyb2wuRmVldCIpKX1lbHNlIGlmKHImJiJuYXV0aWNhbCI9PT1yLnVuaXQpe0dpKGUsbixzLzE4NTIsdC5fZ2V0VUlTdHJpbmcoIlNjYWxlQ29udHJvbC5OYXV0aWNhbE1pbGVzIikpfWVsc2Ugcz49MWUzP0dpKGUsbixzLzFlMyx0Ll9nZXRVSVN0cmluZygiU2NhbGVDb250cm9sLktpbG9tZXRlcnMiKSk6R2koZSxuLHMsdC5fZ2V0VUlTdHJpbmcoIlNjYWxlQ29udHJvbC5NZXRlcnMiKSl9ZnVuY3Rpb24gR2kodCxlLHIsbil7dmFyIGksYSxvLHM9KGk9cixhPU1hdGgucG93KDEwLCgiIitNYXRoLmZsb29yKGkpKS5sZW5ndGgtMSksbz0obz1pL2EpPj0xMD8xMDpvPj01PzU6bz49Mz8zOm8+PTI/MjpvPj0xPzE6ZnVuY3Rpb24odCl7dmFyIGU9TWF0aC5wb3coMTAsTWF0aC5jZWlsKC1NYXRoLmxvZyh0KS9NYXRoLkxOMTApKTtyZXR1cm4gTWF0aC5yb3VuZCh0KmUpL2V9KG8pLGEqbyksbD1zL3I7dC5zdHlsZS53aWR0aD1lKmwrInB4Iix0LmlubmVySFRNTD1zKyImbmJzcDsiK259SGkucHJvdG90eXBlLmdldERlZmF1bHRQb3NpdGlvbj1mdW5jdGlvbigpe3JldHVybiJib3R0b20tbGVmdCJ9LEhpLnByb3RvdHlwZS5fb25Nb3ZlPWZ1bmN0aW9uKCl7cWkodGhpcy5fbWFwLHRoaXMuX2NvbnRhaW5lcix0aGlzLm9wdGlvbnMpfSxIaS5wcm90b3R5cGUub25BZGQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX21hcD10LHRoaXMuX2NvbnRhaW5lcj1yLmNyZWF0ZSgiZGl2IiwibWFwYm94Z2wtY3RybCBtYXBib3hnbC1jdHJsLXNjYWxlIix0LmdldENvbnRhaW5lcigpKSx0aGlzLl9tYXAub24oIm1vdmUiLHRoaXMuX29uTW92ZSksdGhpcy5fb25Nb3ZlKCksdGhpcy5fY29udGFpbmVyfSxIaS5wcm90b3R5cGUub25SZW1vdmU9ZnVuY3Rpb24oKXtyLnJlbW92ZSh0aGlzLl9jb250YWluZXIpLHRoaXMuX21hcC5vZmYoIm1vdmUiLHRoaXMuX29uTW92ZSksdGhpcy5fbWFwPXZvaWQgMH0sSGkucHJvdG90eXBlLnNldFVuaXQ9ZnVuY3Rpb24odCl7dGhpcy5vcHRpb25zLnVuaXQ9dCxxaSh0aGlzLl9tYXAsdGhpcy5fY29udGFpbmVyLHRoaXMub3B0aW9ucyl9O3ZhciBZaT1mdW5jdGlvbihlKXt0aGlzLl9mdWxsc2NyZWVuPSExLGUmJmUuY29udGFpbmVyJiYoZS5jb250YWluZXIgaW5zdGFuY2VvZiB0LndpbmRvdy5IVE1MRWxlbWVudD90aGlzLl9jb250YWluZXI9ZS5jb250YWluZXI6dC53YXJuT25jZSgiRnVsbCBzY3JlZW4gY29udHJvbCAnY29udGFpbmVyJyBtdXN0IGJlIGEgRE9NIGVsZW1lbnQuIikpLHQuYmluZEFsbChbIl9vbkNsaWNrRnVsbHNjcmVlbiIsIl9jaGFuZ2VJY29uIl0sdGhpcyksIm9uZnVsbHNjcmVlbmNoYW5nZSJpbiB0LndpbmRvdy5kb2N1bWVudD90aGlzLl9mdWxsc2NyZWVuY2hhbmdlPSJmdWxsc2NyZWVuY2hhbmdlIjoib25tb3pmdWxsc2NyZWVuY2hhbmdlImluIHQud2luZG93LmRvY3VtZW50P3RoaXMuX2Z1bGxzY3JlZW5jaGFuZ2U9Im1vemZ1bGxzY3JlZW5jaGFuZ2UiOiJvbndlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UiaW4gdC53aW5kb3cuZG9jdW1lbnQ/dGhpcy5fZnVsbHNjcmVlbmNoYW5nZT0id2Via2l0ZnVsbHNjcmVlbmNoYW5nZSI6Im9ubXNmdWxsc2NyZWVuY2hhbmdlImluIHQud2luZG93LmRvY3VtZW50JiYodGhpcy5fZnVsbHNjcmVlbmNoYW5nZT0iTVNGdWxsc2NyZWVuQ2hhbmdlIil9O1lpLnByb3RvdHlwZS5vbkFkZD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fbWFwPWUsdGhpcy5fY29udGFpbmVyfHwodGhpcy5fY29udGFpbmVyPXRoaXMuX21hcC5nZXRDb250YWluZXIoKSksdGhpcy5fY29udHJvbENvbnRhaW5lcj1yLmNyZWF0ZSgiZGl2IiwibWFwYm94Z2wtY3RybCBtYXBib3hnbC1jdHJsLWdyb3VwIiksdGhpcy5fY2hlY2tGdWxsc2NyZWVuU3VwcG9ydCgpP3RoaXMuX3NldHVwVUkoKToodGhpcy5fY29udHJvbENvbnRhaW5lci5zdHlsZS5kaXNwbGF5PSJub25lIix0Lndhcm5PbmNlKCJUaGlzIGRldmljZSBkb2VzIG5vdCBzdXBwb3J0IGZ1bGxzY3JlZW4gbW9kZS4iKSksdGhpcy5fY29udHJvbENvbnRhaW5lcn0sWWkucHJvdG90eXBlLm9uUmVtb3ZlPWZ1bmN0aW9uKCl7ci5yZW1vdmUodGhpcy5fY29udHJvbENvbnRhaW5lciksdGhpcy5fbWFwPW51bGwsdC53aW5kb3cuZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcih0aGlzLl9mdWxsc2NyZWVuY2hhbmdlLHRoaXMuX2NoYW5nZUljb24pfSxZaS5wcm90b3R5cGUuX2NoZWNrRnVsbHNjcmVlblN1cHBvcnQ9ZnVuY3Rpb24oKXtyZXR1cm4hISh0LndpbmRvdy5kb2N1bWVudC5mdWxsc2NyZWVuRW5hYmxlZHx8dC53aW5kb3cuZG9jdW1lbnQubW96RnVsbFNjcmVlbkVuYWJsZWR8fHQud2luZG93LmRvY3VtZW50Lm1zRnVsbHNjcmVlbkVuYWJsZWR8fHQud2luZG93LmRvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbmFibGVkKX0sWWkucHJvdG90eXBlLl9zZXR1cFVJPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fZnVsbHNjcmVlbkJ1dHRvbj1yLmNyZWF0ZSgiYnV0dG9uIiwibWFwYm94Z2wtY3RybC1mdWxsc2NyZWVuIix0aGlzLl9jb250cm9sQ29udGFpbmVyKTtyLmNyZWF0ZSgic3BhbiIsIm1hcGJveGdsLWN0cmwtaWNvbiIsZSkuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsITApLGUudHlwZT0iYnV0dG9uIix0aGlzLl91cGRhdGVUaXRsZSgpLHRoaXMuX2Z1bGxzY3JlZW5CdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuX29uQ2xpY2tGdWxsc2NyZWVuKSx0LndpbmRvdy5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKHRoaXMuX2Z1bGxzY3JlZW5jaGFuZ2UsdGhpcy5fY2hhbmdlSWNvbil9LFlpLnByb3RvdHlwZS5fdXBkYXRlVGl0bGU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9nZXRUaXRsZSgpO3RoaXMuX2Z1bGxzY3JlZW5CdXR0b24uc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIix0KSx0aGlzLl9mdWxsc2NyZWVuQnV0dG9uLnRpdGxlPXR9LFlpLnByb3RvdHlwZS5fZ2V0VGl0bGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbWFwLl9nZXRVSVN0cmluZyh0aGlzLl9pc0Z1bGxzY3JlZW4oKT8iRnVsbHNjcmVlbkNvbnRyb2wuRXhpdCI6IkZ1bGxzY3JlZW5Db250cm9sLkVudGVyIil9LFlpLnByb3RvdHlwZS5faXNGdWxsc2NyZWVuPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Z1bGxzY3JlZW59LFlpLnByb3RvdHlwZS5fY2hhbmdlSWNvbj1mdW5jdGlvbigpeyh0LndpbmRvdy5kb2N1bWVudC5mdWxsc2NyZWVuRWxlbWVudHx8dC53aW5kb3cuZG9jdW1lbnQubW96RnVsbFNjcmVlbkVsZW1lbnR8fHQud2luZG93LmRvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbGVtZW50fHx0LndpbmRvdy5kb2N1bWVudC5tc0Z1bGxzY3JlZW5FbGVtZW50KT09PXRoaXMuX2NvbnRhaW5lciE9PXRoaXMuX2Z1bGxzY3JlZW4mJih0aGlzLl9mdWxsc2NyZWVuPSF0aGlzLl9mdWxsc2NyZWVuLHRoaXMuX2Z1bGxzY3JlZW5CdXR0b24uY2xhc3NMaXN0LnRvZ2dsZSgibWFwYm94Z2wtY3RybC1zaHJpbmsiKSx0aGlzLl9mdWxsc2NyZWVuQnV0dG9uLmNsYXNzTGlzdC50b2dnbGUoIm1hcGJveGdsLWN0cmwtZnVsbHNjcmVlbiIpLHRoaXMuX3VwZGF0ZVRpdGxlKCkpfSxZaS5wcm90b3R5cGUuX29uQ2xpY2tGdWxsc2NyZWVuPWZ1bmN0aW9uKCl7dGhpcy5faXNGdWxsc2NyZWVuKCk/dC53aW5kb3cuZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4/dC53aW5kb3cuZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4oKTp0LndpbmRvdy5kb2N1bWVudC5tb3pDYW5jZWxGdWxsU2NyZWVuP3Qud2luZG93LmRvY3VtZW50Lm1vekNhbmNlbEZ1bGxTY3JlZW4oKTp0LndpbmRvdy5kb2N1bWVudC5tc0V4aXRGdWxsc2NyZWVuP3Qud2luZG93LmRvY3VtZW50Lm1zRXhpdEZ1bGxzY3JlZW4oKTp0LndpbmRvdy5kb2N1bWVudC53ZWJraXRDYW5jZWxGdWxsU2NyZWVuJiZ0LndpbmRvdy5kb2N1bWVudC53ZWJraXRDYW5jZWxGdWxsU2NyZWVuKCk6dGhpcy5fY29udGFpbmVyLnJlcXVlc3RGdWxsc2NyZWVuP3RoaXMuX2NvbnRhaW5lci5yZXF1ZXN0RnVsbHNjcmVlbigpOnRoaXMuX2NvbnRhaW5lci5tb3pSZXF1ZXN0RnVsbFNjcmVlbj90aGlzLl9jb250YWluZXIubW96UmVxdWVzdEZ1bGxTY3JlZW4oKTp0aGlzLl9jb250YWluZXIubXNSZXF1ZXN0RnVsbHNjcmVlbj90aGlzLl9jb250YWluZXIubXNSZXF1ZXN0RnVsbHNjcmVlbigpOnRoaXMuX2NvbnRhaW5lci53ZWJraXRSZXF1ZXN0RnVsbHNjcmVlbiYmdGhpcy5fY29udGFpbmVyLndlYmtpdFJlcXVlc3RGdWxsc2NyZWVuKCl9O3ZhciBXaT17Y2xvc2VCdXR0b246ITAsY2xvc2VPbkNsaWNrOiEwLGNsYXNzTmFtZToiIixtYXhXaWR0aDoiMjQwcHgifSxYaT1mdW5jdGlvbihlKXtmdW5jdGlvbiBuKHIpe2UuY2FsbCh0aGlzKSx0aGlzLm9wdGlvbnM9dC5leHRlbmQoT2JqZWN0LmNyZWF0ZShXaSksciksdC5iaW5kQWxsKFsiX3VwZGF0ZSIsIl9vbkNsb3NlIiwicmVtb3ZlIiwiX29uTW91c2VNb3ZlIiwiX29uTW91c2VVcCIsIl9vbkRyYWciXSx0aGlzKX1yZXR1cm4gZSYmKG4uX19wcm90b19fPWUpLG4ucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUpLG4ucHJvdG90eXBlLmNvbnN0cnVjdG9yPW4sbi5wcm90b3R5cGUuYWRkVG89ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX21hcCYmdGhpcy5yZW1vdmUoKSx0aGlzLl9tYXA9ZSx0aGlzLm9wdGlvbnMuY2xvc2VPbkNsaWNrJiZ0aGlzLl9tYXAub24oImNsaWNrIix0aGlzLl9vbkNsb3NlKSx0aGlzLm9wdGlvbnMuY2xvc2VPbk1vdmUmJnRoaXMuX21hcC5vbigibW92ZSIsdGhpcy5fb25DbG9zZSksdGhpcy5fbWFwLm9uKCJyZW1vdmUiLHRoaXMucmVtb3ZlKSx0aGlzLl91cGRhdGUoKSx0aGlzLl90cmFja1BvaW50ZXI/KHRoaXMuX21hcC5vbigibW91c2Vtb3ZlIix0aGlzLl9vbk1vdXNlTW92ZSksdGhpcy5fbWFwLm9uKCJtb3VzZXVwIix0aGlzLl9vbk1vdXNlVXApLHRoaXMuX2NvbnRhaW5lciYmdGhpcy5fY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLXBvcHVwLXRyYWNrLXBvaW50ZXIiKSx0aGlzLl9tYXAuX2NhbnZhc0NvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJtYXBib3hnbC10cmFjay1wb2ludGVyIikpOnRoaXMuX21hcC5vbigibW92ZSIsdGhpcy5fdXBkYXRlKSx0aGlzLmZpcmUobmV3IHQuRXZlbnQoIm9wZW4iKSksdGhpc30sbi5wcm90b3R5cGUuaXNPcGVuPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLl9tYXB9LG4ucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb250ZW50JiZyLnJlbW92ZSh0aGlzLl9jb250ZW50KSx0aGlzLl9jb250YWluZXImJihyLnJlbW92ZSh0aGlzLl9jb250YWluZXIpLGRlbGV0ZSB0aGlzLl9jb250YWluZXIpLHRoaXMuX21hcCYmKHRoaXMuX21hcC5vZmYoIm1vdmUiLHRoaXMuX3VwZGF0ZSksdGhpcy5fbWFwLm9mZigibW92ZSIsdGhpcy5fb25DbG9zZSksdGhpcy5fbWFwLm9mZigiY2xpY2siLHRoaXMuX29uQ2xvc2UpLHRoaXMuX21hcC5vZmYoInJlbW92ZSIsdGhpcy5yZW1vdmUpLHRoaXMuX21hcC5vZmYoIm1vdXNlbW92ZSIsdGhpcy5fb25Nb3VzZU1vdmUpLHRoaXMuX21hcC5vZmYoIm1vdXNldXAiLHRoaXMuX29uTW91c2VVcCksdGhpcy5fbWFwLm9mZigiZHJhZyIsdGhpcy5fb25EcmFnKSxkZWxldGUgdGhpcy5fbWFwKSx0aGlzLmZpcmUobmV3IHQuRXZlbnQoImNsb3NlIikpLHRoaXN9LG4ucHJvdG90eXBlLmdldExuZ0xhdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9sbmdMYXR9LG4ucHJvdG90eXBlLnNldExuZ0xhdD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fbG5nTGF0PXQuTG5nTGF0LmNvbnZlcnQoZSksdGhpcy5fcG9zPW51bGwsdGhpcy5fdHJhY2tQb2ludGVyPSExLHRoaXMuX3VwZGF0ZSgpLHRoaXMuX21hcCYmKHRoaXMuX21hcC5vbigibW92ZSIsdGhpcy5fdXBkYXRlKSx0aGlzLl9tYXAub2ZmKCJtb3VzZW1vdmUiLHRoaXMuX29uTW91c2VNb3ZlKSx0aGlzLl9jb250YWluZXImJnRoaXMuX2NvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKCJtYXBib3hnbC1wb3B1cC10cmFjay1wb2ludGVyIiksdGhpcy5fbWFwLl9jYW52YXNDb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSgibWFwYm94Z2wtdHJhY2stcG9pbnRlciIpKSx0aGlzfSxuLnByb3RvdHlwZS50cmFja1BvaW50ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdHJhY2tQb2ludGVyPSEwLHRoaXMuX3Bvcz1udWxsLHRoaXMuX3VwZGF0ZSgpLHRoaXMuX21hcCYmKHRoaXMuX21hcC5vZmYoIm1vdmUiLHRoaXMuX3VwZGF0ZSksdGhpcy5fbWFwLm9uKCJtb3VzZW1vdmUiLHRoaXMuX29uTW91c2VNb3ZlKSx0aGlzLl9tYXAub24oImRyYWciLHRoaXMuX29uRHJhZyksdGhpcy5fY29udGFpbmVyJiZ0aGlzLl9jb250YWluZXIuY2xhc3NMaXN0LmFkZCgibWFwYm94Z2wtcG9wdXAtdHJhY2stcG9pbnRlciIpLHRoaXMuX21hcC5fY2FudmFzQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLXRyYWNrLXBvaW50ZXIiKSksdGhpc30sbi5wcm90b3R5cGUuZ2V0RWxlbWVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb250YWluZXJ9LG4ucHJvdG90eXBlLnNldFRleHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuc2V0RE9NQ29udGVudCh0LndpbmRvdy5kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShlKSl9LG4ucHJvdG90eXBlLnNldEhUTUw9ZnVuY3Rpb24oZSl7dmFyIHIsbj10LndpbmRvdy5kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksaT10LndpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJib2R5Iik7Zm9yKGkuaW5uZXJIVE1MPWU7cj1pLmZpcnN0Q2hpbGQ7KW4uYXBwZW5kQ2hpbGQocik7cmV0dXJuIHRoaXMuc2V0RE9NQ29udGVudChuKX0sbi5wcm90b3R5cGUuZ2V0TWF4V2lkdGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29udGFpbmVyJiZ0aGlzLl9jb250YWluZXIuc3R5bGUubWF4V2lkdGh9LG4ucHJvdG90eXBlLnNldE1heFdpZHRoPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm9wdGlvbnMubWF4V2lkdGg9dCx0aGlzLl91cGRhdGUoKSx0aGlzfSxuLnByb3RvdHlwZS5zZXRET01Db250ZW50PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9jcmVhdGVDb250ZW50KCksdGhpcy5fY29udGVudC5hcHBlbmRDaGlsZCh0KSx0aGlzLl91cGRhdGUoKSx0aGlzfSxuLnByb3RvdHlwZS5hZGRDbGFzc05hbWU9ZnVuY3Rpb24odCl7dGhpcy5fY29udGFpbmVyJiZ0aGlzLl9jb250YWluZXIuY2xhc3NMaXN0LmFkZCh0KX0sbi5wcm90b3R5cGUucmVtb3ZlQ2xhc3NOYW1lPWZ1bmN0aW9uKHQpe3RoaXMuX2NvbnRhaW5lciYmdGhpcy5fY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUodCl9LG4ucHJvdG90eXBlLnRvZ2dsZUNsYXNzTmFtZT1mdW5jdGlvbih0KXtpZih0aGlzLl9jb250YWluZXIpcmV0dXJuIHRoaXMuX2NvbnRhaW5lci5jbGFzc0xpc3QudG9nZ2xlKHQpfSxuLnByb3RvdHlwZS5fY3JlYXRlQ29udGVudD1mdW5jdGlvbigpe3RoaXMuX2NvbnRlbnQmJnIucmVtb3ZlKHRoaXMuX2NvbnRlbnQpLHRoaXMuX2NvbnRlbnQ9ci5jcmVhdGUoImRpdiIsIm1hcGJveGdsLXBvcHVwLWNvbnRlbnQiLHRoaXMuX2NvbnRhaW5lciksdGhpcy5vcHRpb25zLmNsb3NlQnV0dG9uJiYodGhpcy5fY2xvc2VCdXR0b249ci5jcmVhdGUoImJ1dHRvbiIsIm1hcGJveGdsLXBvcHVwLWNsb3NlLWJ1dHRvbiIsdGhpcy5fY29udGVudCksdGhpcy5fY2xvc2VCdXR0b24udHlwZT0iYnV0dG9uIix0aGlzLl9jbG9zZUJ1dHRvbi5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLCJDbG9zZSBwb3B1cCIpLHRoaXMuX2Nsb3NlQnV0dG9uLmlubmVySFRNTD0iJiMyMTU7Iix0aGlzLl9jbG9zZUJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5fb25DbG9zZSkpfSxuLnByb3RvdHlwZS5fb25Nb3VzZVVwPWZ1bmN0aW9uKHQpe3RoaXMuX3VwZGF0ZSh0LnBvaW50KX0sbi5wcm90b3R5cGUuX29uTW91c2VNb3ZlPWZ1bmN0aW9uKHQpe3RoaXMuX3VwZGF0ZSh0LnBvaW50KX0sbi5wcm90b3R5cGUuX29uRHJhZz1mdW5jdGlvbih0KXt0aGlzLl91cGRhdGUodC5wb2ludCl9LG4ucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcyxpPXRoaXMuX2xuZ0xhdHx8dGhpcy5fdHJhY2tQb2ludGVyO2lmKHRoaXMuX21hcCYmaSYmdGhpcy5fY29udGVudCYmKHRoaXMuX2NvbnRhaW5lcnx8KHRoaXMuX2NvbnRhaW5lcj1yLmNyZWF0ZSgiZGl2IiwibWFwYm94Z2wtcG9wdXAiLHRoaXMuX21hcC5nZXRDb250YWluZXIoKSksdGhpcy5fdGlwPXIuY3JlYXRlKCJkaXYiLCJtYXBib3hnbC1wb3B1cC10aXAiLHRoaXMuX2NvbnRhaW5lciksdGhpcy5fY29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuX2NvbnRlbnQpLHRoaXMub3B0aW9ucy5jbGFzc05hbWUmJnRoaXMub3B0aW9ucy5jbGFzc05hbWUuc3BsaXQoIiAiKS5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gbi5fY29udGFpbmVyLmNsYXNzTGlzdC5hZGQodCl9KSksdGhpcy5fdHJhY2tQb2ludGVyJiZ0aGlzLl9jb250YWluZXIuY2xhc3NMaXN0LmFkZCgibWFwYm94Z2wtcG9wdXAtdHJhY2stcG9pbnRlciIpKSx0aGlzLm9wdGlvbnMubWF4V2lkdGgmJnRoaXMuX2NvbnRhaW5lci5zdHlsZS5tYXhXaWR0aCE9PXRoaXMub3B0aW9ucy5tYXhXaWR0aCYmKHRoaXMuX2NvbnRhaW5lci5zdHlsZS5tYXhXaWR0aD10aGlzLm9wdGlvbnMubWF4V2lkdGgpLHRoaXMuX21hcC50cmFuc2Zvcm0ucmVuZGVyV29ybGRDb3BpZXMmJiF0aGlzLl90cmFja1BvaW50ZXImJih0aGlzLl9sbmdMYXQ9T2kodGhpcy5fbG5nTGF0LHRoaXMuX3Bvcyx0aGlzLl9tYXAudHJhbnNmb3JtKSksIXRoaXMuX3RyYWNrUG9pbnRlcnx8ZSkpe3ZhciBhPXRoaXMuX3Bvcz10aGlzLl90cmFja1BvaW50ZXImJmU/ZTp0aGlzLl9tYXAucHJvamVjdCh0aGlzLl9sbmdMYXQpLG89dGhpcy5vcHRpb25zLmFuY2hvcixzPWZ1bmN0aW9uIGUocil7aWYocil7aWYoIm51bWJlciI9PXR5cGVvZiByKXt2YXIgbj1NYXRoLnJvdW5kKE1hdGguc3FydCguNSpNYXRoLnBvdyhyLDIpKSk7cmV0dXJue2NlbnRlcjpuZXcgdC5Qb2ludCgwLDApLHRvcDpuZXcgdC5Qb2ludCgwLHIpLCJ0b3AtbGVmdCI6bmV3IHQuUG9pbnQobixuKSwidG9wLXJpZ2h0IjpuZXcgdC5Qb2ludCgtbixuKSxib3R0b206bmV3IHQuUG9pbnQoMCwtciksImJvdHRvbS1sZWZ0IjpuZXcgdC5Qb2ludChuLC1uKSwiYm90dG9tLXJpZ2h0IjpuZXcgdC5Qb2ludCgtbiwtbiksbGVmdDpuZXcgdC5Qb2ludChyLDApLHJpZ2h0Om5ldyB0LlBvaW50KC1yLDApfX1pZihyIGluc3RhbmNlb2YgdC5Qb2ludHx8QXJyYXkuaXNBcnJheShyKSl7dmFyIGk9dC5Qb2ludC5jb252ZXJ0KHIpO3JldHVybntjZW50ZXI6aSx0b3A6aSwidG9wLWxlZnQiOmksInRvcC1yaWdodCI6aSxib3R0b206aSwiYm90dG9tLWxlZnQiOmksImJvdHRvbS1yaWdodCI6aSxsZWZ0OmkscmlnaHQ6aX19cmV0dXJue2NlbnRlcjp0LlBvaW50LmNvbnZlcnQoci5jZW50ZXJ8fFswLDBdKSx0b3A6dC5Qb2ludC5jb252ZXJ0KHIudG9wfHxbMCwwXSksInRvcC1sZWZ0Ijp0LlBvaW50LmNvbnZlcnQoclsidG9wLWxlZnQiXXx8WzAsMF0pLCJ0b3AtcmlnaHQiOnQuUG9pbnQuY29udmVydChyWyJ0b3AtcmlnaHQiXXx8WzAsMF0pLGJvdHRvbTp0LlBvaW50LmNvbnZlcnQoci5ib3R0b218fFswLDBdKSwiYm90dG9tLWxlZnQiOnQuUG9pbnQuY29udmVydChyWyJib3R0b20tbGVmdCJdfHxbMCwwXSksImJvdHRvbS1yaWdodCI6dC5Qb2ludC5jb252ZXJ0KHJbImJvdHRvbS1yaWdodCJdfHxbMCwwXSksbGVmdDp0LlBvaW50LmNvbnZlcnQoci5sZWZ0fHxbMCwwXSkscmlnaHQ6dC5Qb2ludC5jb252ZXJ0KHIucmlnaHR8fFswLDBdKX19cmV0dXJuIGUobmV3IHQuUG9pbnQoMCwwKSl9KHRoaXMub3B0aW9ucy5vZmZzZXQpO2lmKCFvKXt2YXIgbCxjPXRoaXMuX2NvbnRhaW5lci5vZmZzZXRXaWR0aCx1PXRoaXMuX2NvbnRhaW5lci5vZmZzZXRIZWlnaHQ7bD1hLnkrcy5ib3R0b20ueTx1P1sidG9wIl06YS55PnRoaXMuX21hcC50cmFuc2Zvcm0uaGVpZ2h0LXU/WyJib3R0b20iXTpbXSxhLng8Yy8yP2wucHVzaCgibGVmdCIpOmEueD50aGlzLl9tYXAudHJhbnNmb3JtLndpZHRoLWMvMiYmbC5wdXNoKCJyaWdodCIpLG89MD09PWwubGVuZ3RoPyJib3R0b20iOmwuam9pbigiLSIpfXZhciBmPWEuYWRkKHNbb10pLnJvdW5kKCk7ci5zZXRUcmFuc2Zvcm0odGhpcy5fY29udGFpbmVyLHppW29dKyIgdHJhbnNsYXRlKCIrZi54KyJweCwiK2YueSsicHgpIiksRGkodGhpcy5fY29udGFpbmVyLG8sInBvcHVwIil9fSxuLnByb3RvdHlwZS5fb25DbG9zZT1mdW5jdGlvbigpe3RoaXMucmVtb3ZlKCl9LG59KHQuRXZlbnRlZCk7dmFyIFppPXt2ZXJzaW9uOnQudmVyc2lvbixzdXBwb3J0ZWQ6ZSxzZXRSVExUZXh0UGx1Z2luOnQuc2V0UlRMVGV4dFBsdWdpbixnZXRSVExUZXh0UGx1Z2luU3RhdHVzOnQuZ2V0UlRMVGV4dFBsdWdpblN0YXR1cyxNYXA6RWksTmF2aWdhdGlvbkNvbnRyb2w6UGksR2VvbG9jYXRlQ29udHJvbDpVaSxBdHRyaWJ1dGlvbkNvbnRyb2w6YmksU2NhbGVDb250cm9sOkhpLEZ1bGxzY3JlZW5Db250cm9sOllpLFBvcHVwOlhpLE1hcmtlcjpGaSxTdHlsZTpxZSxMbmdMYXQ6dC5MbmdMYXQsTG5nTGF0Qm91bmRzOnQuTG5nTGF0Qm91bmRzLFBvaW50OnQuUG9pbnQsTWVyY2F0b3JDb29yZGluYXRlOnQuTWVyY2F0b3JDb29yZGluYXRlLEV2ZW50ZWQ6dC5FdmVudGVkLGNvbmZpZzp0LmNvbmZpZyxwcmV3YXJtOmZ1bmN0aW9uKCl7QnQoKS5hY3F1aXJlKHp0KX0sY2xlYXJQcmV3YXJtZWRSZXNvdXJjZXM6ZnVuY3Rpb24oKXt2YXIgdD1SdDt0JiYodC5pc1ByZWxvYWRlZCgpJiYxPT09dC5udW1BY3RpdmUoKT8odC5yZWxlYXNlKHp0KSxSdD1udWxsKTpjb25zb2xlLndhcm4oIkNvdWxkIG5vdCBjbGVhciBXZWJXb3JrZXJzIHNpbmNlIHRoZXJlIGFyZSBhY3RpdmUgTWFwIGluc3RhbmNlcyB0aGF0IHN0aWxsIHJlZmVyZW5jZSBpdC4gVGhlIHByZS13YXJtZWQgV2ViV29ya2VyIHBvb2wgY2FuIG9ubHkgYmUgY2xlYXJlZCB3aGVuIGFsbCBtYXAgaW5zdGFuY2VzIGhhdmUgYmVlbiByZW1vdmVkIHdpdGggbWFwLnJlbW92ZSgpIikpfSxnZXQgYWNjZXNzVG9rZW4oKXtyZXR1cm4gdC5jb25maWcuQUNDRVNTX1RPS0VOfSxzZXQgYWNjZXNzVG9rZW4oZSl7dC5jb25maWcuQUNDRVNTX1RPS0VOPWV9LGdldCBiYXNlQXBpVXJsKCl7cmV0dXJuIHQuY29uZmlnLkFQSV9VUkx9LHNldCBiYXNlQXBpVXJsKGUpe3QuY29uZmlnLkFQSV9VUkw9ZX0sZ2V0IHdvcmtlckNvdW50KCl7cmV0dXJuIER0LndvcmtlckNvdW50fSxzZXQgd29ya2VyQ291bnQodCl7RHQud29ya2VyQ291bnQ9dH0sZ2V0IG1heFBhcmFsbGVsSW1hZ2VSZXF1ZXN0cygpe3JldHVybiB0LmNvbmZpZy5NQVhfUEFSQUxMRUxfSU1BR0VfUkVRVUVTVFN9LHNldCBtYXhQYXJhbGxlbEltYWdlUmVxdWVzdHMoZSl7dC5jb25maWcuTUFYX1BBUkFMTEVMX0lNQUdFX1JFUVVFU1RTPWV9LGNsZWFyU3RvcmFnZTpmdW5jdGlvbihlKXt0LmNsZWFyVGlsZUNhY2hlKGUpfSx3b3JrZXJVcmw6IiJ9O3JldHVybiBaaX0pKSxyfSkpfSx7fV0sMjQwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1NYXRoLmxvZzJ8fGZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLmxvZyh0KSpNYXRoLkxPRzJFfX0se31dLDI0MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtlfHwoZT10LHQ9d2luZG93KTt2YXIgcj0wLGk9MCxhPTAsbz17c2hpZnQ6ITEsYWx0OiExLGNvbnRyb2w6ITEsbWV0YTohMX0scz0hMTtmdW5jdGlvbiBsKHQpe3ZhciBlPSExO3JldHVybiJhbHRLZXkiaW4gdCYmKGU9ZXx8dC5hbHRLZXkhPT1vLmFsdCxvLmFsdD0hIXQuYWx0S2V5KSwic2hpZnRLZXkiaW4gdCYmKGU9ZXx8dC5zaGlmdEtleSE9PW8uc2hpZnQsby5zaGlmdD0hIXQuc2hpZnRLZXkpLCJjdHJsS2V5ImluIHQmJihlPWV8fHQuY3RybEtleSE9PW8uY29udHJvbCxvLmNvbnRyb2w9ISF0LmN0cmxLZXkpLCJtZXRhS2V5ImluIHQmJihlPWV8fHQubWV0YUtleSE9PW8ubWV0YSxvLm1ldGE9ISF0Lm1ldGFLZXkpLGV9ZnVuY3Rpb24gYyh0LHMpe3ZhciBjPW4ueChzKSx1PW4ueShzKTsiYnV0dG9ucyJpbiBzJiYodD0wfHMuYnV0dG9ucyksKHQhPT1yfHxjIT09aXx8dSE9PWF8fGwocykpJiYocj0wfHQsaT1jfHwwLGE9dXx8MCxlJiZlKHIsaSxhLG8pKX1mdW5jdGlvbiB1KHQpe2MoMCx0KX1mdW5jdGlvbiBmKCl7KHJ8fGl8fGF8fG8uc2hpZnR8fG8uYWx0fHxvLm1ldGF8fG8uY29udHJvbCkmJihpPWE9MCxyPTAsby5zaGlmdD1vLmFsdD1vLmNvbnRyb2w9by5tZXRhPSExLGUmJmUoMCwwLDAsbykpfWZ1bmN0aW9uIGgodCl7bCh0KSYmZSYmZShyLGksYSxvKX1mdW5jdGlvbiBwKHQpezA9PT1uLmJ1dHRvbnModCk/YygwLHQpOmMocix0KX1mdW5jdGlvbiBkKHQpe2MocnxuLmJ1dHRvbnModCksdCl9ZnVuY3Rpb24gbSh0KXtjKHImfm4uYnV0dG9ucyh0KSx0KX1mdW5jdGlvbiBnKCl7c3x8KHM9ITAsdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHApLHQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixkKSx0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLG0pLHQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsdSksdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIix1KSx0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0Iix1KSx0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3ZlciIsdSksdC5hZGRFdmVudExpc3RlbmVyKCJibHVyIixmKSx0LmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixoKSx0LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGgpLHQuYWRkRXZlbnRMaXN0ZW5lcigia2V5cHJlc3MiLGgpLHQhPT13aW5kb3cmJih3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsZiksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixoKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsaCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImtleXByZXNzIixoKSkpfWcoKTt2YXIgdj17ZWxlbWVudDp0fTtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnRpZXModix7ZW5hYmxlZDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHN9LHNldDpmdW5jdGlvbihlKXtlP2coKTpmdW5jdGlvbigpe2lmKCFzKXJldHVybjtzPSExLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixwKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsZCksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIixtKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHUpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsdSksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW91dCIsdSksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLHUpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYmx1ciIsZiksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXl1cCIsaCksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIixoKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleXByZXNzIixoKSx0IT09d2luZG93JiYod2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImJsdXIiLGYpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXl1cCIsaCksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLGgpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlwcmVzcyIsaCkpfSgpfSxlbnVtZXJhYmxlOiEwfSxidXR0b25zOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcn0sZW51bWVyYWJsZTohMH0seDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGl9LGVudW1lcmFibGU6ITB9LHk6e2dldDpmdW5jdGlvbigpe3JldHVybiBhfSxlbnVtZXJhYmxlOiEwfSxtb2RzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gb30sZW51bWVyYWJsZTohMH19KSx2fTt2YXIgbj10KCJtb3VzZS1ldmVudCIpfSx7Im1vdXNlLWV2ZW50IjoyNDN9XSwyNDI6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj17bGVmdDowLHRvcDowfTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe2U9ZXx8dC5jdXJyZW50VGFyZ2V0fHx0LnNyY0VsZW1lbnQsQXJyYXkuaXNBcnJheShyKXx8KHI9WzAsMF0pO3ZhciBpPXQuY2xpZW50WHx8MCxhPXQuY2xpZW50WXx8MCxvPShzPWUscz09PXdpbmRvd3x8cz09PWRvY3VtZW50fHxzPT09ZG9jdW1lbnQuYm9keT9uOnMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpO3ZhciBzO3JldHVybiByWzBdPWktby5sZWZ0LHJbMV09YS1vLnRvcCxyfX0se31dLDI0MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3JldHVybiB0LnRhcmdldHx8dC5zcmNFbGVtZW50fHx3aW5kb3d9ci5idXR0b25zPWZ1bmN0aW9uKHQpe2lmKCJvYmplY3QiPT10eXBlb2YgdCl7aWYoImJ1dHRvbnMiaW4gdClyZXR1cm4gdC5idXR0b25zO2lmKCJ3aGljaCJpbiB0KXtpZigyPT09KGU9dC53aGljaCkpcmV0dXJuIDQ7aWYoMz09PWUpcmV0dXJuIDI7aWYoZT4wKXJldHVybiAxPDxlLTF9ZWxzZSBpZigiYnV0dG9uImluIHQpe3ZhciBlO2lmKDE9PT0oZT10LmJ1dHRvbikpcmV0dXJuIDQ7aWYoMj09PWUpcmV0dXJuIDI7aWYoZT49MClyZXR1cm4gMTw8ZX19cmV0dXJuIDB9LHIuZWxlbWVudD1uLHIueD1mdW5jdGlvbih0KXtpZigib2JqZWN0Ij09dHlwZW9mIHQpe2lmKCJvZmZzZXRYImluIHQpcmV0dXJuIHQub2Zmc2V0WDt2YXIgZT1uKHQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiB0LmNsaWVudFgtZS5sZWZ0fXJldHVybiAwfSxyLnk9ZnVuY3Rpb24odCl7aWYoIm9iamVjdCI9PXR5cGVvZiB0KXtpZigib2Zmc2V0WSJpbiB0KXJldHVybiB0Lm9mZnNldFk7dmFyIGU9bih0KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gdC5jbGllbnRZLWUudG9wfXJldHVybiAwfX0se31dLDI0NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJ0by1weCIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7ImZ1bmN0aW9uIj09dHlwZW9mIHQmJihyPSEhZSxlPXQsdD13aW5kb3cpO3ZhciBpPW4oImV4Iix0KSxhPWZ1bmN0aW9uKHQpe3ImJnQucHJldmVudERlZmF1bHQoKTt2YXIgbj10LmRlbHRhWHx8MCxhPXQuZGVsdGFZfHwwLG89dC5kZWx0YVp8fDAscz0xO3N3aXRjaCh0LmRlbHRhTW9kZSl7Y2FzZSAxOnM9aTticmVhaztjYXNlIDI6cz13aW5kb3cuaW5uZXJIZWlnaHR9aWYoYSo9cyxvKj1zLChuKj1zKXx8YXx8bylyZXR1cm4gZShuLGEsbyx0KX07cmV0dXJuIHQuYWRkRXZlbnRMaXN0ZW5lcigid2hlZWwiLGEpLGF9fSx7InRvLXB4IjozMTV9XSwyNDU6W2Z1bmN0aW9uKHQsZSxyKXsoZnVuY3Rpb24odCxyKXsoZnVuY3Rpb24oKXsKLyohIE5hdGl2ZSBQcm9taXNlIE9ubHkKICAgIHYwLjguMSAoYykgS3lsZSBTaW1wc29uCiAgICBNSVQgTGljZW5zZTogaHR0cDovL2dldGlmeS5taXQtbGljZW5zZS5vcmcKKi8KIWZ1bmN0aW9uKHQscixuKXtyW3RdPXJbdF18fG4oKSx2b2lkIDAhPT1lJiZlLmV4cG9ydHMmJihlLmV4cG9ydHM9clt0XSl9KCJQcm9taXNlIix2b2lkIDAhPT10P3Q6dGhpcywoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIHQsZSxuLGk9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxhPXZvaWQgMCE9PXI/ZnVuY3Rpb24odCl7cmV0dXJuIHIodCl9OnNldFRpbWVvdXQ7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwieCIse30pLHQ9ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOnIsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiExIT09bn0pfX1jYXRjaChlKXt0PWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdFtlXT1yLHR9fWZ1bmN0aW9uIG8odCxyKXtuLmFkZCh0LHIpLGV8fChlPWEobi5kcmFpbikpfWZ1bmN0aW9uIHModCl7dmFyIGUscj10eXBlb2YgdDtyZXR1cm4gbnVsbD09dHx8Im9iamVjdCIhPXImJiJmdW5jdGlvbiIhPXJ8fChlPXQudGhlbiksImZ1bmN0aW9uIj09dHlwZW9mIGUmJmV9ZnVuY3Rpb24gbCgpe2Zvcih2YXIgdD0wO3Q8dGhpcy5jaGFpbi5sZW5ndGg7dCsrKWModGhpcywxPT09dGhpcy5zdGF0ZT90aGlzLmNoYWluW3RdLnN1Y2Nlc3M6dGhpcy5jaGFpblt0XS5mYWlsdXJlLHRoaXMuY2hhaW5bdF0pO3RoaXMuY2hhaW4ubGVuZ3RoPTB9ZnVuY3Rpb24gYyh0LGUscil7dmFyIG4saTt0cnl7ITE9PT1lP3IucmVqZWN0KHQubXNnKToobj0hMD09PWU/dC5tc2c6ZS5jYWxsKHZvaWQgMCx0Lm1zZykpPT09ci5wcm9taXNlP3IucmVqZWN0KFR5cGVFcnJvcigiUHJvbWlzZS1jaGFpbiBjeWNsZSIpKTooaT1zKG4pKT9pLmNhbGwobixyLnJlc29sdmUsci5yZWplY3QpOnIucmVzb2x2ZShuKX1jYXRjaCh0KXtyLnJlamVjdCh0KX19ZnVuY3Rpb24gdSh0KXt2YXIgZSxyPXRoaXM7aWYoIXIudHJpZ2dlcmVkKXtyLnRyaWdnZXJlZD0hMCxyLmRlZiYmKHI9ci5kZWYpO3RyeXsoZT1zKHQpKT9vKChmdW5jdGlvbigpe3ZhciBuPW5ldyBwKHIpO3RyeXtlLmNhbGwodCwoZnVuY3Rpb24oKXt1LmFwcGx5KG4sYXJndW1lbnRzKX0pLChmdW5jdGlvbigpe2YuYXBwbHkobixhcmd1bWVudHMpfSkpfWNhdGNoKHQpe2YuY2FsbChuLHQpfX0pKTooci5tc2c9dCxyLnN0YXRlPTEsci5jaGFpbi5sZW5ndGg+MCYmbyhsLHIpKX1jYXRjaCh0KXtmLmNhbGwobmV3IHAociksdCl9fX1mdW5jdGlvbiBmKHQpe3ZhciBlPXRoaXM7ZS50cmlnZ2VyZWR8fChlLnRyaWdnZXJlZD0hMCxlLmRlZiYmKGU9ZS5kZWYpLGUubXNnPXQsZS5zdGF0ZT0yLGUuY2hhaW4ubGVuZ3RoPjAmJm8obCxlKSl9ZnVuY3Rpb24gaCh0LGUscixuKXtmb3IodmFyIGk9MDtpPGUubGVuZ3RoO2krKykhZnVuY3Rpb24oaSl7dC5yZXNvbHZlKGVbaV0pLnRoZW4oKGZ1bmN0aW9uKHQpe3IoaSx0KX0pLG4pfShpKX1mdW5jdGlvbiBwKHQpe3RoaXMuZGVmPXQsdGhpcy50cmlnZ2VyZWQ9ITF9ZnVuY3Rpb24gZCh0KXt0aGlzLnByb21pc2U9dCx0aGlzLnN0YXRlPTAsdGhpcy50cmlnZ2VyZWQ9ITEsdGhpcy5jaGFpbj1bXSx0aGlzLm1zZz12b2lkIDB9ZnVuY3Rpb24gbSh0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBUeXBlRXJyb3IoIk5vdCBhIGZ1bmN0aW9uIik7aWYoMCE9PXRoaXMuX19OUE9fXyl0aHJvdyBUeXBlRXJyb3IoIk5vdCBhIHByb21pc2UiKTt0aGlzLl9fTlBPX189MTt2YXIgZT1uZXcgZCh0aGlzKTt0aGlzLnRoZW49ZnVuY3Rpb24odCxyKXt2YXIgbj17c3VjY2VzczoiZnVuY3Rpb24iIT10eXBlb2YgdHx8dCxmYWlsdXJlOiJmdW5jdGlvbiI9PXR5cGVvZiByJiZyfTtyZXR1cm4gbi5wcm9taXNlPW5ldyB0aGlzLmNvbnN0cnVjdG9yKChmdW5jdGlvbih0LGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0fHwiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBUeXBlRXJyb3IoIk5vdCBhIGZ1bmN0aW9uIik7bi5yZXNvbHZlPXQsbi5yZWplY3Q9ZX0pKSxlLmNoYWluLnB1c2gobiksMCE9PWUuc3RhdGUmJm8obCxlKSxuLnByb21pc2V9LHRoaXMuY2F0Y2g9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMudGhlbih2b2lkIDAsdCl9O3RyeXt0LmNhbGwodm9pZCAwLChmdW5jdGlvbih0KXt1LmNhbGwoZSx0KX0pLChmdW5jdGlvbih0KXtmLmNhbGwoZSx0KX0pKX1jYXRjaCh0KXtmLmNhbGwoZSx0KX19bj1mdW5jdGlvbigpe3ZhciB0LHIsbjtmdW5jdGlvbiBpKHQsZSl7dGhpcy5mbj10LHRoaXMuc2VsZj1lLHRoaXMubmV4dD12b2lkIDB9cmV0dXJue2FkZDpmdW5jdGlvbihlLGEpe249bmV3IGkoZSxhKSxyP3IubmV4dD1uOnQ9bixyPW4sbj12b2lkIDB9LGRyYWluOmZ1bmN0aW9uKCl7dmFyIG49dDtmb3IodD1yPWU9dm9pZCAwO247KW4uZm4uY2FsbChuLnNlbGYpLG49bi5uZXh0fX19KCk7dmFyIGc9dCh7fSwiY29uc3RydWN0b3IiLG0sITEpO3JldHVybiBtLnByb3RvdHlwZT1nLHQoZywiX19OUE9fXyIsMCwhMSksdChtLCJyZXNvbHZlIiwoZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJvYmplY3QiPT10eXBlb2YgdCYmMT09PXQuX19OUE9fXz90Om5ldyB0aGlzKChmdW5jdGlvbihlLHIpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlfHwiZnVuY3Rpb24iIT10eXBlb2Ygcil0aHJvdyBUeXBlRXJyb3IoIk5vdCBhIGZ1bmN0aW9uIik7ZSh0KX0pKX0pKSx0KG0sInJlamVjdCIsKGZ1bmN0aW9uKHQpe3JldHVybiBuZXcgdGhpcygoZnVuY3Rpb24oZSxyKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZXx8ImZ1bmN0aW9uIiE9dHlwZW9mIHIpdGhyb3cgVHlwZUVycm9yKCJOb3QgYSBmdW5jdGlvbiIpO3IodCl9KSl9KSksdChtLCJhbGwiLChmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiJbb2JqZWN0IEFycmF5XSIhPWkuY2FsbCh0KT9lLnJlamVjdChUeXBlRXJyb3IoIk5vdCBhbiBhcnJheSIpKTowPT09dC5sZW5ndGg/ZS5yZXNvbHZlKFtdKTpuZXcgZSgoZnVuY3Rpb24ocixuKXtpZigiZnVuY3Rpb24iIT10eXBlb2Ygcnx8ImZ1bmN0aW9uIiE9dHlwZW9mIG4pdGhyb3cgVHlwZUVycm9yKCJOb3QgYSBmdW5jdGlvbiIpO3ZhciBpPXQubGVuZ3RoLGE9QXJyYXkoaSksbz0wO2goZSx0LChmdW5jdGlvbih0LGUpe2FbdF09ZSwrK289PT1pJiZyKGEpfSksbil9KSl9KSksdChtLCJyYWNlIiwoZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4iW29iamVjdCBBcnJheV0iIT1pLmNhbGwodCk/ZS5yZWplY3QoVHlwZUVycm9yKCJOb3QgYW4gYXJyYXkiKSk6bmV3IGUoKGZ1bmN0aW9uKHIsbil7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHJ8fCJmdW5jdGlvbiIhPXR5cGVvZiBuKXRocm93IFR5cGVFcnJvcigiTm90IGEgZnVuY3Rpb24iKTtoKGUsdCwoZnVuY3Rpb24odCxlKXtyKGUpfSksbil9KSl9KSksbX0pKX0pLmNhbGwodGhpcyl9KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSx0KCJ0aW1lcnMiKS5zZXRJbW1lZGlhdGUpfSx7dGltZXJzOjMxMn1dLDI0NjpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPU1hdGguUEksaT1jKDEyMCk7ZnVuY3Rpb24gYSh0LGUscixuKXtyZXR1cm5bIkMiLHQsZSxyLG4scixuXX1mdW5jdGlvbiBvKHQsZSxyLG4saSxhKXtyZXR1cm5bIkMiLHQvMysyLzMqcixlLzMrMi8zKm4saS8zKzIvMypyLGEvMysyLzMqbixpLGFdfWZ1bmN0aW9uIHModCxlLHIsYSxvLGMsdSxmLGgscCl7aWYocClUPXBbMF0saz1wWzFdLF89cFsyXSx3PXBbM107ZWxzZXt2YXIgZD1sKHQsZSwtbyk7dD1kLngsZT1kLnk7dmFyIG09KHQtKGY9KGQ9bChmLGgsLW8pKS54KSkvMixnPShlLShoPWQueSkpLzIsdj1tKm0vKHIqcikrZypnLyhhKmEpO3Y+MSYmKHIqPXY9TWF0aC5zcXJ0KHYpLGEqPXYpO3ZhciB5PXIqcix4PWEqYSxiPShjPT11Py0xOjEpKk1hdGguc3FydChNYXRoLmFicygoeSp4LXkqZypnLXgqbSptKS8oeSpnKmcreCptKm0pKSk7Yj09MS8wJiYoYj0xKTt2YXIgXz1iKnIqZy9hKyh0K2YpLzIsdz1iKi1hKm0vcisoZStoKS8yLFQ9TWF0aC5hc2luKCgoZS13KS9hKS50b0ZpeGVkKDkpKSxrPU1hdGguYXNpbigoKGgtdykvYSkudG9GaXhlZCg5KSk7KFQ9dDxfP24tVDpUKTwwJiYoVD0yKm4rVCksKGs9ZjxfP24tazprKTwwJiYoaz0yKm4rayksdSYmVD5rJiYoVC09MipuKSwhdSYmaz5UJiYoay09MipuKX1pZihNYXRoLmFicyhrLVQpPmkpe3ZhciBBPWssTT1mLFM9aDtrPVQraSoodSYmaz5UPzE6LTEpO3ZhciBFPXMoZj1fK3IqTWF0aC5jb3MoayksaD13K2EqTWF0aC5zaW4oaykscixhLG8sMCx1LE0sUyxbayxBLF8sd10pfXZhciBMPU1hdGgudGFuKChrLVQpLzQpLEM9NC8zKnIqTCxQPTQvMyphKkwsST1bMip0LSh0K0MqTWF0aC5zaW4oVCkpLDIqZS0oZS1QKk1hdGguY29zKFQpKSxmK0MqTWF0aC5zaW4oayksaC1QKk1hdGguY29zKGspLGYsaF07aWYocClyZXR1cm4gSTtFJiYoST1JLmNvbmNhdChFKSk7Zm9yKHZhciBPPTA7TzxJLmxlbmd0aDspe3ZhciB6PWwoSVtPXSxJW08rMV0sbyk7SVtPKytdPXoueCxJW08rK109ei55fXJldHVybiBJfWZ1bmN0aW9uIGwodCxlLHIpe3JldHVybnt4OnQqTWF0aC5jb3MociktZSpNYXRoLnNpbihyKSx5OnQqTWF0aC5zaW4ocikrZSpNYXRoLmNvcyhyKX19ZnVuY3Rpb24gYyh0KXtyZXR1cm4gdCoobi8xODApfWUuZXhwb3J0cz1mdW5jdGlvbih0KXtmb3IodmFyIGUscj1bXSxuPTAsaT0wLGw9MCx1PTAsZj1udWxsLGg9bnVsbCxwPTAsZD0wLG09MCxnPXQubGVuZ3RoO208ZzttKyspe3ZhciB2PXRbbV0seT12WzBdO3N3aXRjaCh5KXtjYXNlIk0iOmw9dlsxXSx1PXZbMl07YnJlYWs7Y2FzZSJBIjoodj1zKHAsZCx2WzFdLHZbMl0sYyh2WzNdKSx2WzRdLHZbNV0sdls2XSx2WzddKSkudW5zaGlmdCgiQyIpLHYubGVuZ3RoPjcmJihyLnB1c2godi5zcGxpY2UoMCw3KSksdi51bnNoaWZ0KCJDIikpO2JyZWFrO2Nhc2UiUyI6dmFyIHg9cCxiPWQ7IkMiIT1lJiYiUyIhPWV8fCh4Kz14LW4sYis9Yi1pKSx2PVsiQyIseCxiLHZbMV0sdlsyXSx2WzNdLHZbNF1dO2JyZWFrO2Nhc2UiVCI6IlEiPT1lfHwiVCI9PWU/KGY9MipwLWYsaD0yKmQtaCk6KGY9cCxoPWQpLHY9byhwLGQsZixoLHZbMV0sdlsyXSk7YnJlYWs7Y2FzZSJRIjpmPXZbMV0saD12WzJdLHY9byhwLGQsdlsxXSx2WzJdLHZbM10sdls0XSk7YnJlYWs7Y2FzZSJMIjp2PWEocCxkLHZbMV0sdlsyXSk7YnJlYWs7Y2FzZSJIIjp2PWEocCxkLHZbMV0sZCk7YnJlYWs7Y2FzZSJWIjp2PWEocCxkLHAsdlsxXSk7YnJlYWs7Y2FzZSJaIjp2PWEocCxkLGwsdSl9ZT15LHA9dlt2Lmxlbmd0aC0yXSxkPXZbdi5sZW5ndGgtMV0sdi5sZW5ndGg+ND8obj12W3YubGVuZ3RoLTRdLGk9dlt2Lmxlbmd0aC0zXSk6KG49cCxpPWQpLHIucHVzaCh2KX1yZXR1cm4gcn19LHt9XSwyNDc6W2Z1bmN0aW9uKHQsZSxyKXsKLyoKb2JqZWN0LWFzc2lnbgooYykgU2luZHJlIFNvcmh1cwpAbGljZW5zZSBNSVQKKi8KInVzZSBzdHJpY3QiO3ZhciBuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMsaT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGE9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtmdW5jdGlvbiBvKHQpe2lmKG51bGw9PXQpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0LmFzc2lnbiBjYW5ub3QgYmUgY2FsbGVkIHdpdGggbnVsbCBvciB1bmRlZmluZWQiKTtyZXR1cm4gT2JqZWN0KHQpfWUuZXhwb3J0cz1mdW5jdGlvbigpe3RyeXtpZighT2JqZWN0LmFzc2lnbilyZXR1cm4hMTt2YXIgdD1uZXcgU3RyaW5nKCJhYmMiKTtpZih0WzVdPSJkZSIsIjUiPT09T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModClbMF0pcmV0dXJuITE7Zm9yKHZhciBlPXt9LHI9MDtyPDEwO3IrKyllWyJfIitTdHJpbmcuZnJvbUNoYXJDb2RlKHIpXT1yO2lmKCIwMTIzNDU2Nzg5IiE9PU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGUpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGVbdF19KSkuam9pbigiIikpcmV0dXJuITE7dmFyIG49e307cmV0dXJuImFiY2RlZmdoaWprbG1ub3BxcnN0Ii5zcGxpdCgiIikuZm9yRWFjaCgoZnVuY3Rpb24odCl7blt0XT10fSkpLCJhYmNkZWZnaGlqa2xtbm9wcXJzdCI9PT1PYmplY3Qua2V5cyhPYmplY3QuYXNzaWduKHt9LG4pKS5qb2luKCIiKX1jYXRjaCh0KXtyZXR1cm4hMX19KCk/T2JqZWN0LmFzc2lnbjpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcixzLGw9byh0KSxjPTE7Yzxhcmd1bWVudHMubGVuZ3RoO2MrKyl7Zm9yKHZhciB1IGluIHI9T2JqZWN0KGFyZ3VtZW50c1tjXSkpaS5jYWxsKHIsdSkmJihsW3VdPXJbdV0pO2lmKG4pe3M9bihyKTtmb3IodmFyIGY9MDtmPHMubGVuZ3RoO2YrKylhLmNhbGwocixzW2ZdKSYmKGxbc1tmXV09cltzW2ZdXSl9fXJldHVybiBsfX0se31dLDI0ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7aWYoInN0cmluZyIhPXR5cGVvZiB0KXJldHVyblt0XTt2YXIgcj1bdF07InN0cmluZyI9PXR5cGVvZiBlfHxBcnJheS5pc0FycmF5KGUpP2U9e2JyYWNrZXRzOmV9OmV8fChlPXt9KTt2YXIgbj1lLmJyYWNrZXRzP0FycmF5LmlzQXJyYXkoZS5icmFja2V0cyk/ZS5icmFja2V0czpbZS5icmFja2V0c106WyJ7fSIsIltdIiwiKCkiXSxpPWUuZXNjYXBlfHwiX19fIixhPSEhZS5mbGF0O24uZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9bmV3IFJlZ0V4cChbIlxcIix0WzBdLCJbXlxcIix0WzBdLCJcXCIsdFsxXSwiXSpcXCIsdFsxXV0uam9pbigiIikpLG49W107ZnVuY3Rpb24gYShlLGEsbyl7dmFyIHM9ci5wdXNoKGUuc2xpY2UodFswXS5sZW5ndGgsLXRbMV0ubGVuZ3RoKSktMTtyZXR1cm4gbi5wdXNoKHMpLGkrcytpfXIuZm9yRWFjaCgoZnVuY3Rpb24odCxuKXtmb3IodmFyIGksbz0wO3QhPWk7KWlmKGk9dCx0PXQucmVwbGFjZShlLGEpLG8rKz4xZTQpdGhyb3cgRXJyb3IoIlJlZmVyZW5jZXMgaGF2ZSBjaXJjdWxhciBkZXBlbmRlbmN5LiBQbGVhc2UsIGNoZWNrIHRoZW0uIik7cltuXT10fSkpLG49bi5yZXZlcnNlKCkscj1yLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIG4uZm9yRWFjaCgoZnVuY3Rpb24ocil7ZT1lLnJlcGxhY2UobmV3IFJlZ0V4cCgiKFxcIitpK3IrIlxcIitpKyIpIiwiZyIpLHRbMF0rIiQxIit0WzFdKX0pKSxlfSkpfSkpO3ZhciBvPW5ldyBSZWdFeHAoIlxcIitpKyIoWzAtOV0rKVxcIitpKTtyZXR1cm4gYT9yOmZ1bmN0aW9uIHQoZSxyLG4pe2Zvcih2YXIgaSxhPVtdLHM9MDtpPW8uZXhlYyhlKTspe2lmKHMrKz4xZTQpdGhyb3cgRXJyb3IoIkNpcmN1bGFyIHJlZmVyZW5jZXMgaW4gcGFyZW50aGVzaXMiKTthLnB1c2goZS5zbGljZSgwLGkuaW5kZXgpKSxhLnB1c2godChyW2lbMV1dLHIpKSxlPWUuc2xpY2UoaS5pbmRleCtpWzBdLmxlbmd0aCl9cmV0dXJuIGEucHVzaChlKSxhfShyWzBdLHIpfWZ1bmN0aW9uIGkodCxlKXtpZihlJiZlLmZsYXQpe3ZhciByLG49ZSYmZS5lc2NhcGV8fCJfX18iLGk9dFswXTtpZighaSlyZXR1cm4iIjtmb3IodmFyIGE9bmV3IFJlZ0V4cCgiXFwiK24rIihbMC05XSspXFwiK24pLG89MDtpIT1yOyl7aWYobysrPjFlNCl0aHJvdyBFcnJvcigiQ2lyY3VsYXIgcmVmZXJlbmNlcyBpbiAiK3QpO3I9aSxpPWkucmVwbGFjZShhLHMpfXJldHVybiBpfXJldHVybiB0LnJlZHVjZSgoZnVuY3Rpb24gdChlLHIpe3JldHVybiBBcnJheS5pc0FycmF5KHIpJiYocj1yLnJlZHVjZSh0LCIiKSksZStyfSksIiIpO2Z1bmN0aW9uIHMoZSxyKXtpZihudWxsPT10W3JdKXRocm93IEVycm9yKCJSZWZlcmVuY2UgIityKyJpcyB1bmRlZmluZWQiKTtyZXR1cm4gdFtyXX19ZnVuY3Rpb24gYSh0LGUpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP2kodCxlKTpuKHQsZSl9YS5wYXJzZT1uLGEuc3RyaW5naWZ5PWksZS5leHBvcnRzPWF9LHt9XSwyNDk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgicGljay1ieS1hbGlhcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZTthcmd1bWVudHMubGVuZ3RoPjEmJih0PWFyZ3VtZW50cyk7InN0cmluZyI9PXR5cGVvZiB0P3Q9dC5zcGxpdCgvXHMvKS5tYXAocGFyc2VGbG9hdCk6Im51bWJlciI9PXR5cGVvZiB0JiYodD1bdF0pO3QubGVuZ3RoJiYibnVtYmVyIj09dHlwZW9mIHRbMF0/ZT0xPT09dC5sZW5ndGg/e3dpZHRoOnRbMF0saGVpZ2h0OnRbMF0seDowLHk6MH06Mj09PXQubGVuZ3RoP3t3aWR0aDp0WzBdLGhlaWdodDp0WzFdLHg6MCx5OjB9Ont4OnRbMF0seTp0WzFdLHdpZHRoOnRbMl0tdFswXXx8MCxoZWlnaHQ6dFszXS10WzFdfHwwfTp0JiYodD1uKHQse2xlZnQ6InggbCBsZWZ0IExlZnQiLHRvcDoieSB0IHRvcCBUb3AiLHdpZHRoOiJ3IHdpZHRoIFcgV2lkdGgiLGhlaWdodDoiaCBoZWlnaHQgVyBXaWR0aCIsYm90dG9tOiJiIGJvdHRvbSBCb3R0b20iLHJpZ2h0OiJyIHJpZ2h0IFJpZ2h0In0pLGU9e3g6dC5sZWZ0fHwwLHk6dC50b3B8fDB9LG51bGw9PXQud2lkdGg/dC5yaWdodD9lLndpZHRoPXQucmlnaHQtZS54OmUud2lkdGg9MDplLndpZHRoPXQud2lkdGgsbnVsbD09dC5oZWlnaHQ/dC5ib3R0b20/ZS5oZWlnaHQ9dC5ib3R0b20tZS55OmUuaGVpZ2h0PTA6ZS5oZWlnaHQ9dC5oZWlnaHQpO3JldHVybiBlfX0seyJwaWNrLWJ5LWFsaWFzIjoyNTN9XSwyNTA6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9W107cmV0dXJuIHQucmVwbGFjZShpLChmdW5jdGlvbih0LHIsaSl7dmFyIG89ci50b0xvd2VyQ2FzZSgpO2ZvcihpPWZ1bmN0aW9uKHQpe3ZhciBlPXQubWF0Y2goYSk7cmV0dXJuIGU/ZS5tYXAoTnVtYmVyKTpbXX0oaSksIm0iPT1vJiZpLmxlbmd0aD4yJiYoZS5wdXNoKFtyXS5jb25jYXQoaS5zcGxpY2UoMCwyKSkpLG89ImwiLHI9Im0iPT1yPyJsIjoiTCIpOzspe2lmKGkubGVuZ3RoPT1uW29dKXJldHVybiBpLnVuc2hpZnQociksZS5wdXNoKGkpO2lmKGkubGVuZ3RoPG5bb10pdGhyb3cgbmV3IEVycm9yKCJtYWxmb3JtZWQgcGF0aCBkYXRhIik7ZS5wdXNoKFtyXS5jb25jYXQoaS5zcGxpY2UoMCxuW29dKSkpfX0pKSxlfTt2YXIgbj17YTo3LGM6NixoOjEsbDoyLG06MixxOjQsczo0LHQ6Mix2OjEsejowfSxpPS8oW2FzdHZ6cW1obGNdKShbXmFzdHZ6cW1obGNdKikvZ2k7dmFyIGE9Ly0/WzAtOV0qXC4/WzAtOV0rKD86ZVstK10/XGQrKT8vZ2l9LHt9XSwyNTE6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtlfHwoZT1bMCwiIl0pLHQ9U3RyaW5nKHQpO3ZhciByPXBhcnNlRmxvYXQodCwxMCk7cmV0dXJuIGVbMF09cixlWzFdPXQubWF0Y2goL1tcZC5cLVwrXSpccyooLiopLylbMV18fCIiLGV9fSx7fV0sMjUyOltmdW5jdGlvbih0LGUscil7KGZ1bmN0aW9uKHQpeyhmdW5jdGlvbigpeyhmdW5jdGlvbigpe3ZhciByLG4saSxhLG8sczsidW5kZWZpbmVkIiE9dHlwZW9mIHBlcmZvcm1hbmNlJiZudWxsIT09cGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm5vdz9lLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4gcGVyZm9ybWFuY2Uubm93KCl9Om51bGwhPXQmJnQuaHJ0aW1lPyhlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4ocigpLW8pLzFlNn0sbj10LmhydGltZSxhPShyPWZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuIDFlOSoodD1uKCkpWzBdK3RbMV19KSgpLHM9MWU5KnQudXB0aW1lKCksbz1hLXMpOkRhdGUubm93PyhlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4gRGF0ZS5ub3coKS1pfSxpPURhdGUubm93KCkpOihlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4obmV3IERhdGUpLmdldFRpbWUoKS1pfSxpPShuZXcgRGF0ZSkuZ2V0VGltZSgpKX0pLmNhbGwodGhpcyl9KS5jYWxsKHRoaXMpfSkuY2FsbCh0aGlzLHQoIl9wcm9jZXNzIikpfSx7X3Byb2Nlc3M6Mjc4fV0sMjUzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG4sYSxvPXt9O2lmKCJzdHJpbmciPT10eXBlb2YgZSYmKGU9aShlKSksQXJyYXkuaXNBcnJheShlKSl7dmFyIHM9e307Zm9yKGE9MDthPGUubGVuZ3RoO2ErKylzW2VbYV1dPSEwO2U9c31mb3IobiBpbiBlKWVbbl09aShlW25dKTt2YXIgbD17fTtmb3IobiBpbiBlKXt2YXIgYz1lW25dO2lmKEFycmF5LmlzQXJyYXkoYykpZm9yKGE9MDthPGMubGVuZ3RoO2ErKyl7dmFyIHU9Y1thXTtpZihyJiYobFt1XT0hMCksdSBpbiB0KXtpZihvW25dPXRbdV0scilmb3IodmFyIGY9YTtmPGMubGVuZ3RoO2YrKylsW2NbZl1dPSEwO2JyZWFrfX1lbHNlIG4gaW4gdCYmKGVbbl0mJihvW25dPXRbbl0pLHImJihsW25dPSEwKSl9aWYocilmb3IobiBpbiB0KWxbbl18fChvW25dPXRbbl0pO3JldHVybiBvfTt2YXIgbj17fTtmdW5jdGlvbiBpKHQpe3JldHVybiBuW3RdP25bdF06KCJzdHJpbmciPT10eXBlb2YgdCYmKHQ9blt0XT10LnNwbGl0KC9ccyosXHMqfFxzKy8pKSx0KX19LHt9XSwyNTQ6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9dFswXSxhPXRbMV0sbz0hMTt2b2lkIDA9PT1yJiYocj0wKSx2b2lkIDA9PT1uJiYobj1lLmxlbmd0aCk7Zm9yKHZhciBzPW4tcixsPTAsYz1zLTE7bDxzO2M9bCsrKXt2YXIgdT1lW2wrcl1bMF0sZj1lW2wrcl1bMV0saD1lW2Mrcl1bMF0scD1lW2Mrcl1bMV07Zj5hIT1wPmEmJmk8KGgtdSkqKGEtZikvKHAtZikrdSYmKG89IW8pfXJldHVybiBvfX0se31dLDI1NTpbZnVuY3Rpb24odCxlLHIpewovKgogKiBAY29weXJpZ2h0IDIwMTYgU2VhbiBDb25uZWxseSAoQHZvaWRxayksIGh0dHA6Ly9zeW50aGV0aS5jYwogKiBAbGljZW5zZSBNSVQKICogQHByZXNlcnZlIFByb2plY3QgSG9tZTogaHR0cHM6Ly9naXRodWIuY29tL3ZvaWRxay9wb2x5Ym9vbGpzCiAqLwp2YXIgbixpPXQoIi4vbGliL2J1aWxkLWxvZyIpLGE9dCgiLi9saWIvZXBzaWxvbiIpLG89dCgiLi9saWIvaW50ZXJzZWN0ZXIiKSxzPXQoIi4vbGliL3NlZ21lbnQtY2hhaW5lciIpLGw9dCgiLi9saWIvc2VnbWVudC1zZWxlY3RvciIpLGM9dCgiLi9saWIvZ2VvanNvbiIpLHU9ITEsZj1hKCk7ZnVuY3Rpb24gaCh0LGUscil7dmFyIGk9bi5zZWdtZW50cyh0KSxhPW4uc2VnbWVudHMoZSksbz1yKG4uY29tYmluZShpLGEpKTtyZXR1cm4gbi5wb2x5Z29uKG8pfW49e2J1aWxkTG9nOmZ1bmN0aW9uKHQpe3JldHVybiEwPT09dD91PWkoKTohMT09PXQmJih1PSExKSwhMSE9PXUmJnUubGlzdH0sZXBzaWxvbjpmdW5jdGlvbih0KXtyZXR1cm4gZi5lcHNpbG9uKHQpfSxzZWdtZW50czpmdW5jdGlvbih0KXt2YXIgZT1vKCEwLGYsdSk7cmV0dXJuIHQucmVnaW9ucy5mb3JFYWNoKGUuYWRkUmVnaW9uKSx7c2VnbWVudHM6ZS5jYWxjdWxhdGUodC5pbnZlcnRlZCksaW52ZXJ0ZWQ6dC5pbnZlcnRlZH19LGNvbWJpbmU6ZnVuY3Rpb24odCxlKXtyZXR1cm57Y29tYmluZWQ6byghMSxmLHUpLmNhbGN1bGF0ZSh0LnNlZ21lbnRzLHQuaW52ZXJ0ZWQsZS5zZWdtZW50cyxlLmludmVydGVkKSxpbnZlcnRlZDE6dC5pbnZlcnRlZCxpbnZlcnRlZDI6ZS5pbnZlcnRlZH19LHNlbGVjdFVuaW9uOmZ1bmN0aW9uKHQpe3JldHVybntzZWdtZW50czpsLnVuaW9uKHQuY29tYmluZWQsdSksaW52ZXJ0ZWQ6dC5pbnZlcnRlZDF8fHQuaW52ZXJ0ZWQyfX0sc2VsZWN0SW50ZXJzZWN0OmZ1bmN0aW9uKHQpe3JldHVybntzZWdtZW50czpsLmludGVyc2VjdCh0LmNvbWJpbmVkLHUpLGludmVydGVkOnQuaW52ZXJ0ZWQxJiZ0LmludmVydGVkMn19LHNlbGVjdERpZmZlcmVuY2U6ZnVuY3Rpb24odCl7cmV0dXJue3NlZ21lbnRzOmwuZGlmZmVyZW5jZSh0LmNvbWJpbmVkLHUpLGludmVydGVkOnQuaW52ZXJ0ZWQxJiYhdC5pbnZlcnRlZDJ9fSxzZWxlY3REaWZmZXJlbmNlUmV2OmZ1bmN0aW9uKHQpe3JldHVybntzZWdtZW50czpsLmRpZmZlcmVuY2VSZXYodC5jb21iaW5lZCx1KSxpbnZlcnRlZDohdC5pbnZlcnRlZDEmJnQuaW52ZXJ0ZWQyfX0sc2VsZWN0WG9yOmZ1bmN0aW9uKHQpe3JldHVybntzZWdtZW50czpsLnhvcih0LmNvbWJpbmVkLHUpLGludmVydGVkOnQuaW52ZXJ0ZWQxIT09dC5pbnZlcnRlZDJ9fSxwb2x5Z29uOmZ1bmN0aW9uKHQpe3JldHVybntyZWdpb25zOnModC5zZWdtZW50cyxmLHUpLGludmVydGVkOnQuaW52ZXJ0ZWR9fSxwb2x5Z29uRnJvbUdlb0pTT046ZnVuY3Rpb24odCl7cmV0dXJuIGMudG9Qb2x5Z29uKG4sdCl9LHBvbHlnb25Ub0dlb0pTT046ZnVuY3Rpb24odCl7cmV0dXJuIGMuZnJvbVBvbHlnb24obixmLHQpfSx1bmlvbjpmdW5jdGlvbih0LGUpe3JldHVybiBoKHQsZSxuLnNlbGVjdFVuaW9uKX0saW50ZXJzZWN0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGgodCxlLG4uc2VsZWN0SW50ZXJzZWN0KX0sZGlmZmVyZW5jZTpmdW5jdGlvbih0LGUpe3JldHVybiBoKHQsZSxuLnNlbGVjdERpZmZlcmVuY2UpfSxkaWZmZXJlbmNlUmV2OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGgodCxlLG4uc2VsZWN0RGlmZmVyZW5jZVJldil9LHhvcjpmdW5jdGlvbih0LGUpe3JldHVybiBoKHQsZSxuLnNlbGVjdFhvcil9fSwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmKHdpbmRvdy5Qb2x5Qm9vbD1uKSxlLmV4cG9ydHM9bn0seyIuL2xpYi9idWlsZC1sb2ciOjI1NiwiLi9saWIvZXBzaWxvbiI6MjU3LCIuL2xpYi9nZW9qc29uIjoyNTgsIi4vbGliL2ludGVyc2VjdGVyIjoyNTksIi4vbGliL3NlZ21lbnQtY2hhaW5lciI6MjYxLCIuL2xpYi9zZWdtZW50LXNlbGVjdG9yIjoyNjJ9XSwyNTY6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgdCxlPTAscj0hMTtmdW5jdGlvbiBuKGUscil7cmV0dXJuIHQubGlzdC5wdXNoKHt0eXBlOmUsZGF0YTpyP0pTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkocikpOnZvaWQgMH0pLHR9cmV0dXJuIHQ9e2xpc3Q6W10sc2VnbWVudElkOmZ1bmN0aW9uKCl7cmV0dXJuIGUrK30sY2hlY2tJbnRlcnNlY3Rpb246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbigiY2hlY2siLHtzZWcxOnQsc2VnMjplfSl9LHNlZ21lbnRDaG9wOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4oImRpdl9zZWciLHtzZWc6dCxwdDplfSksbigiY2hvcCIse3NlZzp0LHB0OmV9KX0sc3RhdHVzUmVtb3ZlOmZ1bmN0aW9uKHQpe3JldHVybiBuKCJwb3Bfc2VnIix7c2VnOnR9KX0sc2VnbWVudFVwZGF0ZTpmdW5jdGlvbih0KXtyZXR1cm4gbigic2VnX3VwZGF0ZSIse3NlZzp0fSl9LHNlZ21lbnROZXc6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbigibmV3X3NlZyIse3NlZzp0LHByaW1hcnk6ZX0pfSxzZWdtZW50UmVtb3ZlOmZ1bmN0aW9uKHQpe3JldHVybiBuKCJyZW1fc2VnIix7c2VnOnR9KX0sdGVtcFN0YXR1czpmdW5jdGlvbih0LGUscil7cmV0dXJuIG4oInRlbXBfc3RhdHVzIix7c2VnOnQsYWJvdmU6ZSxiZWxvdzpyfSl9LHJld2luZDpmdW5jdGlvbih0KXtyZXR1cm4gbigicmV3aW5kIix7c2VnOnR9KX0sc3RhdHVzOmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gbigic3RhdHVzIix7c2VnOnQsYWJvdmU6ZSxiZWxvdzpyfSl9LHZlcnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT1yP3Q6KHI9ZSxuKCJ2ZXJ0Iix7eDplfSkpfSxsb2c6ZnVuY3Rpb24odCl7cmV0dXJuInN0cmluZyIhPXR5cGVvZiB0JiYodD1KU09OLnN0cmluZ2lmeSh0LCExLCIgICIpKSxuKCJsb2ciLHt0eHQ6dH0pfSxyZXNldDpmdW5jdGlvbigpe3JldHVybiBuKCJyZXNldCIpfSxzZWxlY3RlZDpmdW5jdGlvbih0KXtyZXR1cm4gbigic2VsZWN0ZWQiLHtzZWdzOnR9KX0sY2hhaW5TdGFydDpmdW5jdGlvbih0KXtyZXR1cm4gbigiY2hhaW5fc3RhcnQiLHtzZWc6dH0pfSxjaGFpblJlbW92ZUhlYWQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbigiY2hhaW5fcmVtX2hlYWQiLHtpbmRleDp0LHB0OmV9KX0sY2hhaW5SZW1vdmVUYWlsOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4oImNoYWluX3JlbV90YWlsIix7aW5kZXg6dCxwdDplfSl9LGNoYWluTmV3OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4oImNoYWluX25ldyIse3B0MTp0LHB0MjplfSl9LGNoYWluTWF0Y2g6ZnVuY3Rpb24odCl7cmV0dXJuIG4oImNoYWluX21hdGNoIix7aW5kZXg6dH0pfSxjaGFpbkNsb3NlOmZ1bmN0aW9uKHQpe3JldHVybiBuKCJjaGFpbl9jbG9zZSIse2luZGV4OnR9KX0sY2hhaW5BZGRIZWFkOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4oImNoYWluX2FkZF9oZWFkIix7aW5kZXg6dCxwdDplfSl9LGNoYWluQWRkVGFpbDpmdW5jdGlvbih0LGUpe3JldHVybiBuKCJjaGFpbl9hZGRfdGFpbCIse2luZGV4OnQscHQ6ZX0pfSxjaGFpbkNvbm5lY3Q6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbigiY2hhaW5fY29uIix7aW5kZXgxOnQsaW5kZXgyOmV9KX0sY2hhaW5SZXZlcnNlOmZ1bmN0aW9uKHQpe3JldHVybiBuKCJjaGFpbl9yZXYiLHtpbmRleDp0fSl9LGNoYWluSm9pbjpmdW5jdGlvbih0LGUpe3JldHVybiBuKCJjaGFpbl9qb2luIix7aW5kZXgxOnQsaW5kZXgyOmV9KX0sZG9uZTpmdW5jdGlvbigpe3JldHVybiBuKCJkb25lIil9fX19LHt9XSwyNTc6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7Im51bWJlciIhPXR5cGVvZiB0JiYodD0xZS0xMCk7dmFyIGU9e2Vwc2lsb246ZnVuY3Rpb24oZSl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBlJiYodD1lKSx0fSxwb2ludEFib3ZlT3JPbkxpbmU6ZnVuY3Rpb24oZSxyLG4pe3ZhciBpPXJbMF0sYT1yWzFdLG89blswXSxzPW5bMV0sbD1lWzBdO3JldHVybihvLWkpKihlWzFdLWEpLShzLWEpKihsLWkpPj0tdH0scG9pbnRCZXR3ZWVuOmZ1bmN0aW9uKGUscixuKXt2YXIgaT1lWzFdLXJbMV0sYT1uWzBdLXJbMF0sbz1lWzBdLXJbMF0scz1uWzFdLXJbMV0sbD1vKmEraSpzO3JldHVybiEobDx0KSYmIShsLShhKmErcypzKT4tdCl9LHBvaW50c1NhbWVYOmZ1bmN0aW9uKGUscil7cmV0dXJuIE1hdGguYWJzKGVbMF0tclswXSk8dH0scG9pbnRzU2FtZVk6ZnVuY3Rpb24oZSxyKXtyZXR1cm4gTWF0aC5hYnMoZVsxXS1yWzFdKTx0fSxwb2ludHNTYW1lOmZ1bmN0aW9uKHQscil7cmV0dXJuIGUucG9pbnRzU2FtZVgodCxyKSYmZS5wb2ludHNTYW1lWSh0LHIpfSxwb2ludHNDb21wYXJlOmZ1bmN0aW9uKHQscil7cmV0dXJuIGUucG9pbnRzU2FtZVgodCxyKT9lLnBvaW50c1NhbWVZKHQscik/MDp0WzFdPHJbMV0/LTE6MTp0WzBdPHJbMF0/LTE6MX0scG9pbnRzQ29sbGluZWFyOmZ1bmN0aW9uKGUscixuKXt2YXIgaT1lWzBdLXJbMF0sYT1lWzFdLXJbMV0sbz1yWzBdLW5bMF0scz1yWzFdLW5bMV07cmV0dXJuIE1hdGguYWJzKGkqcy1vKmEpPHR9LGxpbmVzSW50ZXJzZWN0OmZ1bmN0aW9uKGUscixuLGkpe3ZhciBhPXJbMF0tZVswXSxvPXJbMV0tZVsxXSxzPWlbMF0tblswXSxsPWlbMV0tblsxXSxjPWEqbC1vKnM7aWYoTWF0aC5hYnMoYyk8dClyZXR1cm4hMTt2YXIgdT1lWzBdLW5bMF0sZj1lWzFdLW5bMV0saD0ocypmLWwqdSkvYyxwPShhKmYtbyp1KS9jLGQ9e2Fsb25nQTowLGFsb25nQjowLHB0OltlWzBdK2gqYSxlWzFdK2gqb119O3JldHVybiBkLmFsb25nQT1oPD0tdD8tMjpoPHQ/LTE6aC0xPD0tdD8wOmgtMTx0PzE6MixkLmFsb25nQj1wPD0tdD8tMjpwPHQ/LTE6cC0xPD0tdD8wOnAtMTx0PzE6MixkfSxwb2ludEluc2lkZVJlZ2lvbjpmdW5jdGlvbihlLHIpe2Zvcih2YXIgbj1lWzBdLGk9ZVsxXSxhPXJbci5sZW5ndGgtMV1bMF0sbz1yW3IubGVuZ3RoLTFdWzFdLHM9ITEsbD0wO2w8ci5sZW5ndGg7bCsrKXt2YXIgYz1yW2xdWzBdLHU9cltsXVsxXTt1LWk+dCE9by1pPnQmJihhLWMpKihpLXUpLyhvLXUpK2Mtbj50JiYocz0hcyksYT1jLG89dX1yZXR1cm4gc319O3JldHVybiBlfX0se31dLDI1ODpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXt0b1BvbHlnb246ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiByKGUpe2lmKGUubGVuZ3RoPD0wKXJldHVybiB0LnNlZ21lbnRzKHtpbnZlcnRlZDohMSxyZWdpb25zOltdfSk7ZnVuY3Rpb24gcihlKXt2YXIgcj1lLnNsaWNlKDAsZS5sZW5ndGgtMSk7cmV0dXJuIHQuc2VnbWVudHMoe2ludmVydGVkOiExLHJlZ2lvbnM6W3JdfSl9Zm9yKHZhciBuPXIoZVswXSksaT0xO2k8ZS5sZW5ndGg7aSsrKW49dC5zZWxlY3REaWZmZXJlbmNlKHQuY29tYmluZShuLHIoZVtpXSkpKTtyZXR1cm4gbn1pZigiUG9seWdvbiI9PT1lLnR5cGUpcmV0dXJuIHQucG9seWdvbihyKGUuY29vcmRpbmF0ZXMpKTtpZigiTXVsdGlQb2x5Z29uIj09PWUudHlwZSl7Zm9yKHZhciBuPXQuc2VnbWVudHMoe2ludmVydGVkOiExLHJlZ2lvbnM6W119KSxpPTA7aTxlLmNvb3JkaW5hdGVzLmxlbmd0aDtpKyspbj10LnNlbGVjdFVuaW9uKHQuY29tYmluZShuLHIoZS5jb29yZGluYXRlc1tpXSkpKTtyZXR1cm4gdC5wb2x5Z29uKG4pfXRocm93IG5ldyBFcnJvcigiUG9seUJvb2w6IENhbm5vdCBjb252ZXJ0IEdlb0pTT04gb2JqZWN0IHRvIFBvbHlCb29sIHBvbHlnb24iKX0sZnJvbVBvbHlnb246ZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4odCxyKXtyZXR1cm4gZS5wb2ludEluc2lkZVJlZ2lvbihbLjUqKHRbMF1bMF0rdFsxXVswXSksLjUqKHRbMF1bMV0rdFsxXVsxXSldLHIpfWZ1bmN0aW9uIGkodCl7cmV0dXJue3JlZ2lvbjp0LGNoaWxkcmVuOltdfX1yPXQucG9seWdvbih0LnNlZ21lbnRzKHIpKTt2YXIgYT1pKG51bGwpO2Z1bmN0aW9uIG8odCxlKXtmb3IodmFyIHI9MDtyPHQuY2hpbGRyZW4ubGVuZ3RoO3IrKyl7aWYobihlLChzPXQuY2hpbGRyZW5bcl0pLnJlZ2lvbikpcmV0dXJuIHZvaWQgbyhzLGUpfXZhciBhPWkoZSk7Zm9yKHI9MDtyPHQuY2hpbGRyZW4ubGVuZ3RoO3IrKyl7dmFyIHM7bigocz10LmNoaWxkcmVuW3JdKS5yZWdpb24sZSkmJihhLmNoaWxkcmVuLnB1c2gocyksdC5jaGlsZHJlbi5zcGxpY2UociwxKSxyLS0pfXQuY2hpbGRyZW4ucHVzaChhKX1mb3IodmFyIHM9MDtzPHIucmVnaW9ucy5sZW5ndGg7cysrKXt2YXIgbD1yLnJlZ2lvbnNbc107bC5sZW5ndGg8M3x8byhhLGwpfWZ1bmN0aW9uIGModCxlKXtmb3IodmFyIHI9MCxuPXRbdC5sZW5ndGgtMV1bMF0saT10W3QubGVuZ3RoLTFdWzFdLGE9W10sbz0wO288dC5sZW5ndGg7bysrKXt2YXIgcz10W29dWzBdLGw9dFtvXVsxXTthLnB1c2goW3MsbF0pLHIrPWwqbi1zKmksbj1zLGk9bH1yZXR1cm4gcjwwIT09ZSYmYS5yZXZlcnNlKCksYS5wdXNoKFthWzBdWzBdLGFbMF1bMV1dKSxhfXZhciB1PVtdO2Z1bmN0aW9uIGYodCl7dmFyIGU9W2ModC5yZWdpb24sITEpXTt1LnB1c2goZSk7Zm9yKHZhciByPTA7cjx0LmNoaWxkcmVuLmxlbmd0aDtyKyspZS5wdXNoKGgodC5jaGlsZHJlbltyXSkpfWZ1bmN0aW9uIGgodCl7Zm9yKHZhciBlPTA7ZTx0LmNoaWxkcmVuLmxlbmd0aDtlKyspZih0LmNoaWxkcmVuW2VdKTtyZXR1cm4gYyh0LnJlZ2lvbiwhMCl9Zm9yKHM9MDtzPGEuY2hpbGRyZW4ubGVuZ3RoO3MrKylmKGEuY2hpbGRyZW5bc10pO3JldHVybiB1Lmxlbmd0aDw9MD97dHlwZToiUG9seWdvbiIsY29vcmRpbmF0ZXM6W119OjE9PXUubGVuZ3RoP3t0eXBlOiJQb2x5Z29uIixjb29yZGluYXRlczp1WzBdfTp7dHlwZToiTXVsdGlQb2x5Z29uIixjb29yZGluYXRlczp1fX19O2UuZXhwb3J0cz1ufSx7fV0sMjU5OltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiLi9saW5rZWQtbGlzdCIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gaSh0LGUsbil7cmV0dXJue2lkOnI/ci5zZWdtZW50SWQoKTotMSxzdGFydDp0LGVuZDplLG15RmlsbDp7YWJvdmU6bi5teUZpbGwuYWJvdmUsYmVsb3c6bi5teUZpbGwuYmVsb3d9LG90aGVyRmlsbDpudWxsfX12YXIgYT1uLmNyZWF0ZSgpO2Z1bmN0aW9uIG8odCxyKXthLmluc2VydEJlZm9yZSh0LChmdW5jdGlvbihuKXtyZXR1cm4gZnVuY3Rpb24odCxyLG4saSxhLG8pe3ZhciBzPWUucG9pbnRzQ29tcGFyZShyLGEpO3JldHVybiAwIT09cz9zOmUucG9pbnRzU2FtZShuLG8pPzA6dCE9PWk/dD8xOi0xOmUucG9pbnRBYm92ZU9yT25MaW5lKG4saT9hOm8saT9vOmEpPzE6LTF9KHQuaXNTdGFydCx0LnB0LHIsbi5pc1N0YXJ0LG4ucHQsbi5vdGhlci5wdCk8MH0pKX1mdW5jdGlvbiBzKHQsZSl7dmFyIHI9ZnVuY3Rpb24odCxlKXt2YXIgcj1uLm5vZGUoe2lzU3RhcnQ6ITAscHQ6dC5zdGFydCxzZWc6dCxwcmltYXJ5OmUsb3RoZXI6bnVsbCxzdGF0dXM6bnVsbH0pO3JldHVybiBvKHIsdC5lbmQpLHJ9KHQsZSk7cmV0dXJuIGZ1bmN0aW9uKHQsZSxyKXt2YXIgaT1uLm5vZGUoe2lzU3RhcnQ6ITEscHQ6ZS5lbmQsc2VnOmUscHJpbWFyeTpyLG90aGVyOnQsc3RhdHVzOm51bGx9KTt0Lm90aGVyPWksbyhpLHQucHQpfShyLHQsZSkscn1mdW5jdGlvbiBsKHQsZSl7dmFyIG49aShlLHQuc2VnLmVuZCx0LnNlZyk7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7ciYmci5zZWdtZW50Q2hvcCh0LnNlZyxlKSx0Lm90aGVyLnJlbW92ZSgpLHQuc2VnLmVuZD1lLHQub3RoZXIucHQ9ZSxvKHQub3RoZXIsdC5wdCl9KHQsZSkscyhuLHQucHJpbWFyeSl9ZnVuY3Rpb24gYyhpLG8pe3ZhciBzPW4uY3JlYXRlKCk7ZnVuY3Rpb24gYyh0KXtyZXR1cm4gcy5maW5kVHJhbnNpdGlvbigoZnVuY3Rpb24ocil7dmFyIG4saSxhLG8scyxsO3JldHVybihuPXQsaT1yLmV2LGE9bi5zZWcuc3RhcnQsbz1uLnNlZy5lbmQscz1pLnNlZy5zdGFydCxsPWkuc2VnLmVuZCxlLnBvaW50c0NvbGxpbmVhcihhLHMsbCk/ZS5wb2ludHNDb2xsaW5lYXIobyxzLGwpfHxlLnBvaW50QWJvdmVPck9uTGluZShvLHMsbCk/MTotMTplLnBvaW50QWJvdmVPck9uTGluZShhLHMsbCk/MTotMSk+MH0pKX1mdW5jdGlvbiB1KHQsbil7dmFyIGk9dC5zZWcsYT1uLnNlZyxvPWkuc3RhcnQscz1pLmVuZCxjPWEuc3RhcnQsdT1hLmVuZDtyJiZyLmNoZWNrSW50ZXJzZWN0aW9uKGksYSk7dmFyIGY9ZS5saW5lc0ludGVyc2VjdChvLHMsYyx1KTtpZighMT09PWYpe2lmKCFlLnBvaW50c0NvbGxpbmVhcihvLHMsYykpcmV0dXJuITE7aWYoZS5wb2ludHNTYW1lKG8sdSl8fGUucG9pbnRzU2FtZShzLGMpKXJldHVybiExO3ZhciBoPWUucG9pbnRzU2FtZShvLGMpLHA9ZS5wb2ludHNTYW1lKHMsdSk7aWYoaCYmcClyZXR1cm4gbjt2YXIgZD0haCYmZS5wb2ludEJldHdlZW4obyxjLHUpLG09IXAmJmUucG9pbnRCZXR3ZWVuKHMsYyx1KTtpZihoKXJldHVybiBtP2wobixzKTpsKHQsdSksbjtkJiYocHx8KG0/bChuLHMpOmwodCx1KSksbChuLG8pKX1lbHNlIDA9PT1mLmFsb25nQSYmKC0xPT09Zi5hbG9uZ0I/bCh0LGMpOjA9PT1mLmFsb25nQj9sKHQsZi5wdCk6MT09PWYuYWxvbmdCJiZsKHQsdSkpLDA9PT1mLmFsb25nQiYmKC0xPT09Zi5hbG9uZ0E/bChuLG8pOjA9PT1mLmFsb25nQT9sKG4sZi5wdCk6MT09PWYuYWxvbmdBJiZsKG4scykpO3JldHVybiExfWZvcih2YXIgZj1bXTshYS5pc0VtcHR5KCk7KXt2YXIgaD1hLmdldEhlYWQoKTtpZihyJiZyLnZlcnQoaC5wdFswXSksaC5pc1N0YXJ0KXtyJiZyLnNlZ21lbnROZXcoaC5zZWcsaC5wcmltYXJ5KTt2YXIgcD1jKGgpLGQ9cC5iZWZvcmU/cC5iZWZvcmUuZXY6bnVsbCxtPXAuYWZ0ZXI/cC5hZnRlci5ldjpudWxsO2Z1bmN0aW9uIGcoKXtpZihkKXt2YXIgdD11KGgsZCk7aWYodClyZXR1cm4gdH1yZXR1cm4hIW0mJnUoaCxtKX1yJiZyLnRlbXBTdGF0dXMoaC5zZWcsISFkJiZkLnNlZywhIW0mJm0uc2VnKTt2YXIgdix5PWcoKTtpZih5KXt2YXIgeDtpZih0KSh4PW51bGw9PT1oLnNlZy5teUZpbGwuYmVsb3d8fGguc2VnLm15RmlsbC5hYm92ZSE9PWguc2VnLm15RmlsbC5iZWxvdykmJih5LnNlZy5teUZpbGwuYWJvdmU9IXkuc2VnLm15RmlsbC5hYm92ZSk7ZWxzZSB5LnNlZy5vdGhlckZpbGw9aC5zZWcubXlGaWxsO3ImJnIuc2VnbWVudFVwZGF0ZSh5LnNlZyksaC5vdGhlci5yZW1vdmUoKSxoLnJlbW92ZSgpfWlmKGEuZ2V0SGVhZCgpIT09aCl7ciYmci5yZXdpbmQoaC5zZWcpO2NvbnRpbnVlfWlmKHQpeD1udWxsPT09aC5zZWcubXlGaWxsLmJlbG93fHxoLnNlZy5teUZpbGwuYWJvdmUhPT1oLnNlZy5teUZpbGwuYmVsb3csaC5zZWcubXlGaWxsLmJlbG93PW0/bS5zZWcubXlGaWxsLmFib3ZlOmksaC5zZWcubXlGaWxsLmFib3ZlPXg/IWguc2VnLm15RmlsbC5iZWxvdzpoLnNlZy5teUZpbGwuYmVsb3c7ZWxzZSBpZihudWxsPT09aC5zZWcub3RoZXJGaWxsKXY9bT9oLnByaW1hcnk9PT1tLnByaW1hcnk/bS5zZWcub3RoZXJGaWxsLmFib3ZlOm0uc2VnLm15RmlsbC5hYm92ZTpoLnByaW1hcnk/bzppLGguc2VnLm90aGVyRmlsbD17YWJvdmU6dixiZWxvdzp2fTtyJiZyLnN0YXR1cyhoLnNlZywhIWQmJmQuc2VnLCEhbSYmbS5zZWcpLGgub3RoZXIuc3RhdHVzPXAuaW5zZXJ0KG4ubm9kZSh7ZXY6aH0pKX1lbHNle3ZhciBiPWguc3RhdHVzO2lmKG51bGw9PT1iKXRocm93IG5ldyBFcnJvcigiUG9seUJvb2w6IFplcm8tbGVuZ3RoIHNlZ21lbnQgZGV0ZWN0ZWQ7IHlvdXIgZXBzaWxvbiBpcyBwcm9iYWJseSB0b28gc21hbGwgb3IgdG9vIGxhcmdlIik7aWYocy5leGlzdHMoYi5wcmV2KSYmcy5leGlzdHMoYi5uZXh0KSYmdShiLnByZXYuZXYsYi5uZXh0LmV2KSxyJiZyLnN0YXR1c1JlbW92ZShiLmV2LnNlZyksYi5yZW1vdmUoKSwhaC5wcmltYXJ5KXt2YXIgXz1oLnNlZy5teUZpbGw7aC5zZWcubXlGaWxsPWguc2VnLm90aGVyRmlsbCxoLnNlZy5vdGhlckZpbGw9X31mLnB1c2goaC5zZWcpfWEuZ2V0SGVhZCgpLnJlbW92ZSgpfXJldHVybiByJiZyLmRvbmUoKSxmfXJldHVybiB0P3thZGRSZWdpb246ZnVuY3Rpb24odCl7Zm9yKHZhciBuLGksYSxvPXRbdC5sZW5ndGgtMV0sbD0wO2w8dC5sZW5ndGg7bCsrKXtuPW8sbz10W2xdO3ZhciBjPWUucG9pbnRzQ29tcGFyZShuLG8pOzAhPT1jJiZzKChpPWM8MD9uOm8sYT1jPDA/bzpuLHtpZDpyP3Iuc2VnbWVudElkKCk6LTEsc3RhcnQ6aSxlbmQ6YSxteUZpbGw6e2Fib3ZlOm51bGwsYmVsb3c6bnVsbH0sb3RoZXJGaWxsOm51bGx9KSwhMCl9fSxjYWxjdWxhdGU6ZnVuY3Rpb24odCl7cmV0dXJuIGModCwhMSl9fTp7Y2FsY3VsYXRlOmZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiB0LmZvckVhY2goKGZ1bmN0aW9uKHQpe3MoaSh0LnN0YXJ0LHQuZW5kLHQpLCEwKX0pKSxyLmZvckVhY2goKGZ1bmN0aW9uKHQpe3MoaSh0LnN0YXJ0LHQuZW5kLHQpLCExKX0pKSxjKGUsbil9fX19LHsiLi9saW5rZWQtbGlzdCI6MjYwfV0sMjYwOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPXtjcmVhdGU6ZnVuY3Rpb24oKXt2YXIgdD17cm9vdDp7cm9vdDohMCxuZXh0Om51bGx9LGV4aXN0czpmdW5jdGlvbihlKXtyZXR1cm4gbnVsbCE9PWUmJmUhPT10LnJvb3R9LGlzRW1wdHk6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbD09PXQucm9vdC5uZXh0fSxnZXRIZWFkOmZ1bmN0aW9uKCl7cmV0dXJuIHQucm9vdC5uZXh0fSxpbnNlcnRCZWZvcmU6ZnVuY3Rpb24oZSxyKXtmb3IodmFyIG49dC5yb290LGk9dC5yb290Lm5leHQ7bnVsbCE9PWk7KXtpZihyKGkpKXJldHVybiBlLnByZXY9aS5wcmV2LGUubmV4dD1pLGkucHJldi5uZXh0PWUsdm9pZChpLnByZXY9ZSk7bj1pLGk9aS5uZXh0fW4ubmV4dD1lLGUucHJldj1uLGUubmV4dD1udWxsfSxmaW5kVHJhbnNpdGlvbjpmdW5jdGlvbihlKXtmb3IodmFyIHI9dC5yb290LG49dC5yb290Lm5leHQ7bnVsbCE9PW4mJiFlKG4pOylyPW4sbj1uLm5leHQ7cmV0dXJue2JlZm9yZTpyPT09dC5yb290P251bGw6cixhZnRlcjpuLGluc2VydDpmdW5jdGlvbih0KXtyZXR1cm4gdC5wcmV2PXIsdC5uZXh0PW4sci5uZXh0PXQsbnVsbCE9PW4mJihuLnByZXY9dCksdH19fX07cmV0dXJuIHR9LG5vZGU6ZnVuY3Rpb24odCl7cmV0dXJuIHQucHJldj1udWxsLHQubmV4dD1udWxsLHQucmVtb3ZlPWZ1bmN0aW9uKCl7dC5wcmV2Lm5leHQ9dC5uZXh0LHQubmV4dCYmKHQubmV4dC5wcmV2PXQucHJldiksdC5wcmV2PW51bGwsdC5uZXh0PW51bGx9LHR9fX0se31dLDI2MTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG49W10saT1bXTtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgYT10LnN0YXJ0LG89dC5lbmQ7aWYoZS5wb2ludHNTYW1lKGEsbykpY29uc29sZS53YXJuKCJQb2x5Qm9vbDogV2FybmluZzogWmVyby1sZW5ndGggc2VnbWVudCBkZXRlY3RlZDsgeW91ciBlcHNpbG9uIGlzIHByb2JhYmx5IHRvbyBzbWFsbCBvciB0b28gbGFyZ2UiKTtlbHNle3ImJnIuY2hhaW5TdGFydCh0KTtmb3IodmFyIHM9e2luZGV4OjAsbWF0Y2hlc19oZWFkOiExLG1hdGNoZXNfcHQxOiExfSxsPXtpbmRleDowLG1hdGNoZXNfaGVhZDohMSxtYXRjaGVzX3B0MTohMX0sYz1zLHU9MDt1PG4ubGVuZ3RoO3UrKyl7dmFyIGY9KGc9blt1XSlbMF0saD0oZ1sxXSxnW2cubGVuZ3RoLTFdKTtnW2cubGVuZ3RoLTJdO2lmKGUucG9pbnRzU2FtZShmLGEpKXtpZihrKHUsITAsITApKWJyZWFrfWVsc2UgaWYoZS5wb2ludHNTYW1lKGYsbykpe2lmKGsodSwhMCwhMSkpYnJlYWt9ZWxzZSBpZihlLnBvaW50c1NhbWUoaCxhKSl7aWYoayh1LCExLCEwKSlicmVha31lbHNlIGlmKGUucG9pbnRzU2FtZShoLG8pJiZrKHUsITEsITEpKWJyZWFrfWlmKGM9PT1zKXJldHVybiBuLnB1c2goW2Esb10pLHZvaWQociYmci5jaGFpbk5ldyhhLG8pKTtpZihjPT09bCl7ciYmci5jaGFpbk1hdGNoKHMuaW5kZXgpO3ZhciBwPXMuaW5kZXgsZD1zLm1hdGNoZXNfcHQxP286YSxtPXMubWF0Y2hlc19oZWFkLGc9bltwXSx2PW0/Z1swXTpnW2cubGVuZ3RoLTFdLHk9bT9nWzFdOmdbZy5sZW5ndGgtMl0seD1tP2dbZy5sZW5ndGgtMV06Z1swXSxiPW0/Z1tnLmxlbmd0aC0yXTpnWzFdO3JldHVybiBlLnBvaW50c0NvbGxpbmVhcih5LHYsZCkmJihtPyhyJiZyLmNoYWluUmVtb3ZlSGVhZChzLmluZGV4LGQpLGcuc2hpZnQoKSk6KHImJnIuY2hhaW5SZW1vdmVUYWlsKHMuaW5kZXgsZCksZy5wb3AoKSksdj15KSxlLnBvaW50c1NhbWUoeCxkKT8obi5zcGxpY2UocCwxKSxlLnBvaW50c0NvbGxpbmVhcihiLHgsdikmJihtPyhyJiZyLmNoYWluUmVtb3ZlVGFpbChzLmluZGV4LHYpLGcucG9wKCkpOihyJiZyLmNoYWluUmVtb3ZlSGVhZChzLmluZGV4LHYpLGcuc2hpZnQoKSkpLHImJnIuY2hhaW5DbG9zZShzLmluZGV4KSx2b2lkIGkucHVzaChnKSk6dm9pZChtPyhyJiZyLmNoYWluQWRkSGVhZChzLmluZGV4LGQpLGcudW5zaGlmdChkKSk6KHImJnIuY2hhaW5BZGRUYWlsKHMuaW5kZXgsZCksZy5wdXNoKGQpKSl9dmFyIF89cy5pbmRleCx3PWwuaW5kZXg7ciYmci5jaGFpbkNvbm5lY3QoXyx3KTt2YXIgVD1uW19dLmxlbmd0aDxuW3ddLmxlbmd0aDtzLm1hdGNoZXNfaGVhZD9sLm1hdGNoZXNfaGVhZD9UPyhBKF8pLE0oXyx3KSk6KEEodyksTSh3LF8pKTpNKHcsXyk6bC5tYXRjaGVzX2hlYWQ/TShfLHcpOlQ/KEEoXyksTSh3LF8pKTooQSh3KSxNKF8sdykpfWZ1bmN0aW9uIGsodCxlLHIpe3JldHVybiBjLmluZGV4PXQsYy5tYXRjaGVzX2hlYWQ9ZSxjLm1hdGNoZXNfcHQxPXIsYz09PXM/KGM9bCwhMSk6KGM9bnVsbCwhMCl9ZnVuY3Rpb24gQSh0KXtyJiZyLmNoYWluUmV2ZXJzZSh0KSxuW3RdLnJldmVyc2UoKX1mdW5jdGlvbiBNKHQsaSl7dmFyIGE9blt0XSxvPW5baV0scz1hW2EubGVuZ3RoLTFdLGw9YVthLmxlbmd0aC0yXSxjPW9bMF0sdT1vWzFdO2UucG9pbnRzQ29sbGluZWFyKGwscyxjKSYmKHImJnIuY2hhaW5SZW1vdmVUYWlsKHQscyksYS5wb3AoKSxzPWwpLGUucG9pbnRzQ29sbGluZWFyKHMsYyx1KSYmKHImJnIuY2hhaW5SZW1vdmVIZWFkKGksYyksby5zaGlmdCgpKSxyJiZyLmNoYWluSm9pbih0LGkpLG5bdF09YS5jb25jYXQobyksbi5zcGxpY2UoaSwxKX19KSksaX19LHt9XSwyNjI6W2Z1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBuKHQsZSxyKXt2YXIgbj1bXTtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgaT0odC5teUZpbGwuYWJvdmU/ODowKSsodC5teUZpbGwuYmVsb3c/NDowKSsodC5vdGhlckZpbGwmJnQub3RoZXJGaWxsLmFib3ZlPzI6MCkrKHQub3RoZXJGaWxsJiZ0Lm90aGVyRmlsbC5iZWxvdz8xOjApOzAhPT1lW2ldJiZuLnB1c2goe2lkOnI/ci5zZWdtZW50SWQoKTotMSxzdGFydDp0LnN0YXJ0LGVuZDp0LmVuZCxteUZpbGw6e2Fib3ZlOjE9PT1lW2ldLGJlbG93OjI9PT1lW2ldfSxvdGhlckZpbGw6bnVsbH0pfSkpLHImJnIuc2VsZWN0ZWQobiksbn12YXIgaT17dW5pb246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbih0LFswLDIsMSwwLDIsMiwwLDAsMSwwLDEsMCwwLDAsMCwwXSxlKX0saW50ZXJzZWN0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4odCxbMCwwLDAsMCwwLDIsMCwyLDAsMCwxLDEsMCwyLDEsMF0sZSl9LGRpZmZlcmVuY2U6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbih0LFswLDAsMCwwLDIsMCwyLDAsMSwxLDAsMCwwLDEsMiwwXSxlKX0sZGlmZmVyZW5jZVJldjpmdW5jdGlvbih0LGUpe3JldHVybiBuKHQsWzAsMiwxLDAsMCwwLDEsMSwwLDIsMCwyLDAsMCwwLDBdLGUpfSx4b3I6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbih0LFswLDIsMSwwLDIsMCwwLDEsMSwwLDAsMiwwLDEsMiwwXSxlKX19O2UuZXhwb3J0cz1pfSx7fV0sMjYzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInN0cmVhbSIpLlRyYW5zZm9ybSxpPXQoInN0cmVhbS1wYXJzZXIiKTtmdW5jdGlvbiBhKCl7bi5jYWxsKHRoaXMse3JlYWRhYmxlT2JqZWN0TW9kZTohMH0pfWZ1bmN0aW9uIG8odCxlLHIpe0Vycm9yLmNhbGwodGhpcyksRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyx0aGlzLmNvbnN0cnVjdG9yKTp0aGlzLnN0YWNrPShuZXcgRXJyb3IpLnN0YWNrfHwiIix0aGlzLm5hbWU9dGhpcy5jb25zdHJ1Y3Rvci5uYW1lLHRoaXMubWVzc2FnZT10LGUmJih0aGlzLmNvZGU9ZSksciYmKHRoaXMuc3RhdHVzQ29kZT1yKX1hLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKG4ucHJvdG90eXBlKSxhLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1hLGkoYS5wcm90b3R5cGUpLHIuUGFyc2VyU3RyZWFtPWEsci5zbGljZUVxPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG49ZSxpPTA7aTxyLmxlbmd0aDspaWYodFtuKytdIT09cltpKytdKXJldHVybiExO3JldHVybiEwfSxyLnN0cjJhcnI9ZnVuY3Rpb24odCxlKXt2YXIgcj1bXSxuPTA7aWYoZSYmImhleCI9PT1lKWZvcig7bjx0Lmxlbmd0aDspci5wdXNoKHBhcnNlSW50KHQuc2xpY2UobixuKzIpLDE2KSksbis9MjtlbHNlIGZvcig7bjx0Lmxlbmd0aDtuKyspci5wdXNoKDI1NSZ0LmNoYXJDb2RlQXQobikpO3JldHVybiByfSxyLnJlYWRVSW50MTZMRT1mdW5jdGlvbih0LGUpe3JldHVybiB0W2VdfHRbZSsxXTw8OH0sci5yZWFkVUludDE2QkU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFtlKzFdfHRbZV08PDh9LHIucmVhZFVJbnQzMkxFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbZV18dFtlKzFdPDw4fHRbZSsyXTw8MTZ8MTY3NzcyMTYqdFtlKzNdfSxyLnJlYWRVSW50MzJCRT1mdW5jdGlvbih0LGUpe3JldHVybiB0W2UrM118dFtlKzJdPDw4fHRbZSsxXTw8MTZ8MTY3NzcyMTYqdFtlXX0sby5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShFcnJvci5wcm90b3R5cGUpLG8ucHJvdG90eXBlLmNvbnN0cnVjdG9yPW8sci5Qcm9iZUVycm9yPW99LHtzdHJlYW06Mjg2LCJzdHJlYW0tcGFyc2VyIjozMDJ9XSwyNjQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3ZhciByPW5ldyBFcnJvcih0KTtyZXR1cm4gci5jb2RlPWUscn1mdW5jdGlvbiBpKHQpe3RyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGVzY2FwZSh0KSl9Y2F0Y2goZSl7cmV0dXJuIHR9fWZ1bmN0aW9uIGEodCxlLHIpe3RoaXMuaW5wdXQ9dC5zdWJhcnJheShlLHIpLHRoaXMuc3RhcnQ9ZTt2YXIgaT1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsdGhpcy5pbnB1dC5zdWJhcnJheSgwLDQpKTtpZigiSUkqXDAiIT09aSYmIk1NXDAqIiE9PWkpdGhyb3cgbigiaW52YWxpZCBUSUZGIHNpZ25hdHVyZSIsIkVCQUREQVRBIik7dGhpcy5iaWdfZW5kaWFuPSJNIj09PWlbMF19YS5wcm90b3R5cGUuZWFjaD1mdW5jdGlvbih0KXt0aGlzLmFib3J0ZWQ9ITE7dmFyIGU9dGhpcy5yZWFkX3VpbnQzMig0KTtmb3IodGhpcy5pZmRzX3RvX3JlYWQ9W3tpZDowLG9mZnNldDplfV07dGhpcy5pZmRzX3RvX3JlYWQubGVuZ3RoPjAmJiF0aGlzLmFib3J0ZWQ7KXt2YXIgcj10aGlzLmlmZHNfdG9fcmVhZC5zaGlmdCgpO3Iub2Zmc2V0JiZ0aGlzLnNjYW5faWZkKHIuaWQsci5vZmZzZXQsdCl9fSxhLnByb3RvdHlwZS5yZWFkX3VpbnQxNj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmlucHV0O2lmKHQrMj5lLmxlbmd0aCl0aHJvdyBuKCJ1bmV4cGVjdGVkIEVPRiIsIkVCQUREQVRBIik7cmV0dXJuIHRoaXMuYmlnX2VuZGlhbj8yNTYqZVt0XStlW3QrMV06ZVt0XSsyNTYqZVt0KzFdfSxhLnByb3RvdHlwZS5yZWFkX3VpbnQzMj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmlucHV0O2lmKHQrND5lLmxlbmd0aCl0aHJvdyBuKCJ1bmV4cGVjdGVkIEVPRiIsIkVCQUREQVRBIik7cmV0dXJuIHRoaXMuYmlnX2VuZGlhbj8xNjc3NzIxNiplW3RdKzY1NTM2KmVbdCsxXSsyNTYqZVt0KzJdK2VbdCszXTplW3RdKzI1NiplW3QrMV0rNjU1MzYqZVt0KzJdKzE2Nzc3MjE2KmVbdCszXX0sYS5wcm90b3R5cGUuaXNfc3ViaWZkX2xpbms9ZnVuY3Rpb24odCxlKXtyZXR1cm4gMD09PXQmJjM0NjY1PT09ZXx8MD09PXQmJjM0ODUzPT09ZXx8MzQ2NjU9PT10JiY0MDk2NT09PWV9LGEucHJvdG90eXBlLmV4aWZfZm9ybWF0X2xlbmd0aD1mdW5jdGlvbih0KXtzd2l0Y2godCl7Y2FzZSAxOmNhc2UgMjpjYXNlIDY6Y2FzZSA3OnJldHVybiAxO2Nhc2UgMzpjYXNlIDg6cmV0dXJuIDI7Y2FzZSA0OmNhc2UgOTpjYXNlIDExOnJldHVybiA0O2Nhc2UgNTpjYXNlIDEwOmNhc2UgMTI6cmV0dXJuIDg7ZGVmYXVsdDpyZXR1cm4gMH19LGEucHJvdG90eXBlLmV4aWZfZm9ybWF0X3JlYWQ9ZnVuY3Rpb24odCxlKXt2YXIgcjtzd2l0Y2godCl7Y2FzZSAxOmNhc2UgMjpyZXR1cm4gcj10aGlzLmlucHV0W2VdO2Nhc2UgNjpyZXR1cm4ocj10aGlzLmlucHV0W2VdKXwzMzU1NDQzMCooMTI4JnIpO2Nhc2UgMzpyZXR1cm4gcj10aGlzLnJlYWRfdWludDE2KGUpO2Nhc2UgODpyZXR1cm4ocj10aGlzLnJlYWRfdWludDE2KGUpKXwxMzEwNzAqKDMyNzY4JnIpO2Nhc2UgNDpyZXR1cm4gcj10aGlzLnJlYWRfdWludDMyKGUpO2Nhc2UgOTpyZXR1cm4gMHwocj10aGlzLnJlYWRfdWludDMyKGUpKTtjYXNlIDU6Y2FzZSAxMDpjYXNlIDExOmNhc2UgMTI6Y2FzZSA3OmRlZmF1bHQ6cmV0dXJuIG51bGx9fSxhLnByb3RvdHlwZS5zY2FuX2lmZD1mdW5jdGlvbih0LGUscil7dmFyIGE9dGhpcy5yZWFkX3VpbnQxNihlKTtlKz0yO2Zvcih2YXIgbz0wO288YTtvKyspe3ZhciBzPXRoaXMucmVhZF91aW50MTYoZSksbD10aGlzLnJlYWRfdWludDE2KGUrMiksYz10aGlzLnJlYWRfdWludDMyKGUrNCksdT10aGlzLmV4aWZfZm9ybWF0X2xlbmd0aChsKSxmPWMqdSxoPWY8PTQ/ZSs4OnRoaXMucmVhZF91aW50MzIoZSs4KSxwPSExO2lmKGgrZj50aGlzLmlucHV0Lmxlbmd0aCl0aHJvdyBuKCJ1bmV4cGVjdGVkIEVPRiIsIkVCQUREQVRBIik7Zm9yKHZhciBkPVtdLG09aCxnPTA7ZzxjO2crKyxtKz11KXt2YXIgdj10aGlzLmV4aWZfZm9ybWF0X3JlYWQobCxtKTtpZihudWxsPT09dil7ZD1udWxsO2JyZWFrfWQucHVzaCh2KX1pZihBcnJheS5pc0FycmF5KGQpJiYyPT09bCYmKGQ9aShTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsZCkpKSYmIlwwIj09PWRbZC5sZW5ndGgtMV0mJihkPWQuc2xpY2UoMCwtMSkpLHRoaXMuaXNfc3ViaWZkX2xpbmsodCxzKSYmQXJyYXkuaXNBcnJheShkKSYmTnVtYmVyLmlzSW50ZWdlcihkWzBdKSYmZFswXT4wJiYodGhpcy5pZmRzX3RvX3JlYWQucHVzaCh7aWQ6cyxvZmZzZXQ6ZFswXX0pLHA9ITApLCExPT09cih7aXNfYmlnX2VuZGlhbjp0aGlzLmJpZ19lbmRpYW4saWZkOnQsdGFnOnMsZm9ybWF0OmwsY291bnQ6YyxlbnRyeV9vZmZzZXQ6ZSt0aGlzLnN0YXJ0LGRhdGFfbGVuZ3RoOmYsZGF0YV9vZmZzZXQ6aCt0aGlzLnN0YXJ0LHZhbHVlOmQsaXNfc3ViaWZkX2xpbms6cH0pKXJldHVybiB2b2lkKHRoaXMuYWJvcnRlZD0hMCk7ZSs9MTJ9MD09PXQmJnRoaXMuaWZkc190b19yZWFkLnB1c2goe2lkOjEsb2Zmc2V0OnRoaXMucmVhZF91aW50MzIoZSl9KX0sZS5leHBvcnRzLkV4aWZQYXJzZXI9YSxlLmV4cG9ydHMuZ2V0X29yaWVudGF0aW9uPWZ1bmN0aW9uKHQpe3ZhciBlPTA7dHJ5e3JldHVybiBuZXcgYSh0LDAsdC5sZW5ndGgpLmVhY2goKGZ1bmN0aW9uKHQpe2lmKDA9PT10LmlmZCYmMjc0PT09dC50YWcmJkFycmF5LmlzQXJyYXkodC52YWx1ZSkpcmV0dXJuIGU9dC52YWx1ZVswXSwhMX0pKSxlfWNhdGNoKHQpe3JldHVybi0xfX19LHt9XSwyNjU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9jb21tb24iKS5yZWFkVUludDE2QkUsaT10KCIuL2NvbW1vbiIpLnJlYWRVSW50MzJCRTtmdW5jdGlvbiBhKHQsZSl7aWYodC5sZW5ndGg8NCtlKXJldHVybiBudWxsO3ZhciByPWkodCxlKTtyZXR1cm4gdC5sZW5ndGg8citlfHxyPDg/bnVsbDp7Ym94dHlwZTpTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsdC5zbGljZShlKzQsZSs4KSksZGF0YTp0LnNsaWNlKGUrOCxlK3IpLGVuZDplK3J9fWZ1bmN0aW9uIG8odCxlKXtmb3IodmFyIHI9MDs7KXt2YXIgbj1hKHQscik7aWYoIW4pYnJlYWs7c3dpdGNoKG4uYm94dHlwZSl7Y2FzZSJpc3BlIjplLnNpemVzLnB1c2goe3dpZHRoOmkobi5kYXRhLDQpLGhlaWdodDppKG4uZGF0YSw4KX0pO2JyZWFrO2Nhc2UiaXJvdCI6ZS50cmFuc2Zvcm1zLnB1c2goe3R5cGU6Imlyb3QiLHZhbHVlOjMmbi5kYXRhWzBdfSk7YnJlYWs7Y2FzZSJpbWlyIjplLnRyYW5zZm9ybXMucHVzaCh7dHlwZToiaW1pciIsdmFsdWU6MSZuLmRhdGFbMF19KX1yPW4uZW5kfX1mdW5jdGlvbiBzKHQsZSxyKXtmb3IodmFyIG49MCxpPTA7aTxyO2krKyluPTI1NipuKyh0W2UraV18fDApO3JldHVybiBufWZ1bmN0aW9uIGwodCxlKXtmb3IodmFyIHI9dFs0XT4+NCYxNSxpPTE1JnRbNF0sYT10WzVdPj40JjE1LG89bih0LDYpLGw9OCxjPTA7YzxvO2MrKyl7dmFyIHU9bih0LGwpLGY9bih0LGwrPTIpLGg9cyh0LGwrPTIsYSkscD1uKHQsbCs9YSk7aWYobCs9MiwwPT09ZiYmMT09PXApe3ZhciBkPXModCxsLHIpLG09cyh0LGwrcixpKTtlLml0ZW1fbG9jW3VdPXtsZW5ndGg6bSxvZmZzZXQ6ZCtofX1sKz1wKihyK2kpfX1mdW5jdGlvbiBjKHQsZSl7Zm9yKHZhciByPW4odCw0KSxpPTYsbz0wO288cjtvKyspe3ZhciBzPWEodCxpKTtpZighcylicmVhaztpZigiaW5mZSI9PT1zLmJveHR5cGUpe2Zvcih2YXIgbD1uKHMuZGF0YSw0KSxjPSIiLHU9ODt1PHMuZGF0YS5sZW5ndGgmJnMuZGF0YVt1XTt1KyspYys9U3RyaW5nLmZyb21DaGFyQ29kZShzLmRhdGFbdV0pO2UuaXRlbV9pbmZbY109bH1pPXMuZW5kfX1mdW5jdGlvbiB1KHQsZSl7Zm9yKHZhciByPTA7Oyl7dmFyIG49YSh0LHIpO2lmKCFuKWJyZWFrOyJpcGNvIj09PW4uYm94dHlwZSYmbyhuLmRhdGEsZSkscj1uLmVuZH19ZS5leHBvcnRzLnVuYm94PWEsZS5leHBvcnRzLnJlYWRTaXplRnJvbU1ldGE9ZnVuY3Rpb24odCl7dmFyIGU9e3NpemVzOltdLHRyYW5zZm9ybXM6W10saXRlbV9pbmY6e30saXRlbV9sb2M6e319O2lmKGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTQ7Oyl7dmFyIG49YSh0LHIpO2lmKCFuKWJyZWFrOyJpcHJwIj09PW4uYm94dHlwZSYmdShuLmRhdGEsZSksImlsb2MiPT09bi5ib3h0eXBlJiZsKG4uZGF0YSxlKSwiaWluZiI9PT1uLmJveHR5cGUmJmMobi5kYXRhLGUpLHI9bi5lbmR9fSh0LGUpLGUuc2l6ZXMubGVuZ3RoKXt2YXIgcixuLGksbz0ocj1lLnNpemVzLG49ci5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQud2lkdGg+ZS53aWR0aHx8dC53aWR0aD09PWUud2lkdGgmJnQuaGVpZ2h0PmUuaGVpZ2h0P3Q6ZX0pKSxpPXIucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0LmhlaWdodD5lLmhlaWdodHx8dC5oZWlnaHQ9PT1lLmhlaWdodCYmdC53aWR0aD5lLndpZHRoP3Q6ZX0pKSxuLndpZHRoPmkuaGVpZ2h0fHxuLndpZHRoPT09aS5oZWlnaHQmJm4uaGVpZ2h0Pmkud2lkdGg/bjppKSxzPTE7ZS50cmFuc2Zvcm1zLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPXsxOjYsMjo1LDM6OCw0OjcsNTo0LDY6Myw3OjIsODoxfSxyPXsxOjQsMjozLDM6Miw0OjEsNTo2LDY6NSw3OjgsODo3fTtpZigiaW1pciI9PT10LnR5cGUmJihzPTA9PT10LnZhbHVlP3Jbc106ZVtzPWVbcz1yW3NdXV0pLCJpcm90Ij09PXQudHlwZSlmb3IodmFyIG49MDtuPHQudmFsdWU7bisrKXM9ZVtzXX0pKTt2YXIgZj1udWxsO3JldHVybiBlLml0ZW1faW5mLkV4aWYmJihmPWUuaXRlbV9sb2NbZS5pdGVtX2luZi5FeGlmXSkse3dpZHRoOm8ud2lkdGgsaGVpZ2h0Om8uaGVpZ2h0LG9yaWVudGF0aW9uOmUudHJhbnNmb3Jtcy5sZW5ndGg/czpudWxsLHZhcmlhbnRzOmUuc2l6ZXMsZXhpZl9sb2NhdGlvbjpmfX19LGUuZXhwb3J0cy5nZXRNaW1lVHlwZT1mdW5jdGlvbih0KXt2YXIgZT1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsdC5zbGljZSgwLDQpKSxyPXt9O3JbZV09ITA7Zm9yKHZhciBuPTg7bjx0Lmxlbmd0aDtuKz00KXJbU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLHQuc2xpY2UobixuKzQpKV09ITA7aWYoci5taWYxfHxyLm1zZjF8fHIubWlhZilyZXR1cm4iYXZpZiI9PT1lfHwiYXZpcyI9PT1lfHwiYXZpbyI9PT1lP3t0eXBlOiJhdmlmIixtaW1lOiJpbWFnZS9hdmlmIn06ImhlaWMiPT09ZXx8ImhlaXgiPT09ZT97dHlwZToiaGVpYyIsbWltZToiaW1hZ2UvaGVpYyJ9OiJoZXZjIj09PWV8fCJoZXZ4Ij09PWU/e3R5cGU6ImhlaWMiLG1pbWU6ImltYWdlL2hlaWMtc2VxdWVuY2UifTpyLmF2aWZ8fHIuYXZpcz97dHlwZToiYXZpZiIsbWltZToiaW1hZ2UvYXZpZiJ9OnIuaGVpY3x8ci5oZWl4fHxyLmhldmN8fHIuaGV2eHx8ci5oZWlzP3IubXNmMT97dHlwZToiaGVpZiIsbWltZToiaW1hZ2UvaGVpZi1zZXF1ZW5jZSJ9Ont0eXBlOiJoZWlmIixtaW1lOiJpbWFnZS9oZWlmIn06e3R5cGU6ImF2aWYiLG1pbWU6ImltYWdlL2F2aWYifX19LHsiLi9jb21tb24iOjI2M31dLDI2NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9jb21tb24iKS5zdHIyYXJyLGk9dCgiLi4vY29tbW9uIikuc2xpY2VFcSxhPXQoIi4uL2NvbW1vbiIpLnJlYWRVSW50MzJCRSxvPXQoIi4uL21pYWZfdXRpbHMiKSxzPXQoIi4uL2V4aWZfdXRpbHMiKSxsPW4oImZ0eXAiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoaSh0LDQsbCkpe3ZhciBlPW8udW5ib3godCwwKTtpZihlKXt2YXIgcj1vLmdldE1pbWVUeXBlKGUuZGF0YSk7aWYocil7Zm9yKHZhciBuLGM9ZS5lbmQ7Oyl7dmFyIHU9by51bmJveCh0LGMpO2lmKCF1KWJyZWFrO2lmKGM9dS5lbmQsIm1kYXQiPT09dS5ib3h0eXBlKXJldHVybjtpZigibWV0YSI9PT11LmJveHR5cGUpe249dS5kYXRhO2JyZWFrfX1pZihuKXt2YXIgZj1vLnJlYWRTaXplRnJvbU1ldGEobik7aWYoZil7dmFyIGg9e3dpZHRoOmYud2lkdGgsaGVpZ2h0OmYuaGVpZ2h0LHR5cGU6ci50eXBlLG1pbWU6ci5taW1lLHdVbml0czoicHgiLGhVbml0czoicHgifTtpZihmLnZhcmlhbnRzLmxlbmd0aD4xJiYoaC52YXJpYW50cz1mLnZhcmlhbnRzKSxmLm9yaWVudGF0aW9uJiYoaC5vcmllbnRhdGlvbj1mLm9yaWVudGF0aW9uKSxmLmV4aWZfbG9jYXRpb24mJmYuZXhpZl9sb2NhdGlvbi5vZmZzZXQrZi5leGlmX2xvY2F0aW9uLmxlbmd0aDw9dC5sZW5ndGgpe3ZhciBwPWEodCxmLmV4aWZfbG9jYXRpb24ub2Zmc2V0KSxkPXQuc2xpY2UoZi5leGlmX2xvY2F0aW9uLm9mZnNldCtwKzQsZi5leGlmX2xvY2F0aW9uLm9mZnNldCtmLmV4aWZfbG9jYXRpb24ubGVuZ3RoKSxtPXMuZ2V0X29yaWVudGF0aW9uKGQpO20+MCYmKGgub3JpZW50YXRpb249bSl9cmV0dXJuIGh9fX19fX19LHsiLi4vY29tbW9uIjoyNjMsIi4uL2V4aWZfdXRpbHMiOjI2NCwiLi4vbWlhZl91dGlscyI6MjY1fV0sMjY3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2NvbW1vbiIpLnN0cjJhcnIsaT10KCIuLi9jb21tb24iKS5zbGljZUVxLGE9dCgiLi4vY29tbW9uIikucmVhZFVJbnQxNkxFLG89bigiQk0iKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoISh0Lmxlbmd0aDwyNikmJmkodCwwLG8pKXJldHVybnt3aWR0aDphKHQsMTgpLGhlaWdodDphKHQsMjIpLHR5cGU6ImJtcCIsbWltZToiaW1hZ2UvYm1wIix3VW5pdHM6InB4IixoVW5pdHM6InB4In19fSx7Ii4uL2NvbW1vbiI6MjYzfV0sMjY4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2NvbW1vbiIpLnN0cjJhcnIsaT10KCIuLi9jb21tb24iKS5zbGljZUVxLGE9dCgiLi4vY29tbW9uIikucmVhZFVJbnQxNkxFLG89bigiR0lGODdhIikscz1uKCJHSUY4OWEiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoISh0Lmxlbmd0aDwxMCkmJihpKHQsMCxvKXx8aSh0LDAscykpKXJldHVybnt3aWR0aDphKHQsNiksaGVpZ2h0OmEodCw4KSx0eXBlOiJnaWYiLG1pbWU6ImltYWdlL2dpZiIsd1VuaXRzOiJweCIsaFVuaXRzOiJweCJ9fX0seyIuLi9jb21tb24iOjI2M31dLDI2OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9jb21tb24iKS5yZWFkVUludDE2TEU7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPW4odCwwKSxyPW4odCwyKSxpPW4odCw0KTtpZigwPT09ZSYmMT09PXImJmkpe2Zvcih2YXIgYT1bXSxvPXt3aWR0aDowLGhlaWdodDowfSxzPTA7czxpO3MrKyl7dmFyIGw9dFs2KzE2KnNdfHwyNTYsYz10WzYrMTYqcysxXXx8MjU2LHU9e3dpZHRoOmwsaGVpZ2h0OmN9O2EucHVzaCh1KSwobD5vLndpZHRofHxjPm8uaGVpZ2h0KSYmKG89dSl9cmV0dXJue3dpZHRoOm8ud2lkdGgsaGVpZ2h0Om8uaGVpZ2h0LHZhcmlhbnRzOmEsdHlwZToiaWNvIixtaW1lOiJpbWFnZS94LWljb24iLHdVbml0czoicHgiLGhVbml0czoicHgifX19fSx7Ii4uL2NvbW1vbiI6MjYzfV0sMjcwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2NvbW1vbiIpLnJlYWRVSW50MTZCRSxpPXQoIi4uL2NvbW1vbiIpLnN0cjJhcnIsYT10KCIuLi9jb21tb24iKS5zbGljZUVxLG89dCgiLi4vZXhpZl91dGlscyIpLHM9aSgiRXhpZlwwXDAiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoISh0Lmxlbmd0aDwyKSYmMjU1PT09dFswXSYmMjE2PT09dFsxXSYmMjU1PT09dFsyXSlmb3IodmFyIGU9Mjs7KXtmb3IoOzspe2lmKHQubGVuZ3RoLWU8MilyZXR1cm47aWYoMjU1PT09dFtlKytdKWJyZWFrfWZvcih2YXIgcixpLGw9dFtlKytdOzI1NT09PWw7KWw9dFtlKytdO2lmKDIwODw9bCYmbDw9MjE3fHwxPT09bClyPTA7ZWxzZXtpZighKDE5Mjw9bCYmbDw9MjU0KSlyZXR1cm47aWYodC5sZW5ndGgtZTwyKXJldHVybjtyPW4odCxlKS0yLGUrPTJ9aWYoMjE3PT09bHx8MjE4PT09bClyZXR1cm47aWYoMjI1PT09bCYmcj49MTAmJmEodCxlLHMpJiYoaT1vLmdldF9vcmllbnRhdGlvbih0LnNsaWNlKGUrNixlK3IpKSkscj49NSYmMTkyPD1sJiZsPD0yMDcmJjE5NiE9PWwmJjIwMCE9PWwmJjIwNCE9PWwpe2lmKHQubGVuZ3RoLWU8cilyZXR1cm47dmFyIGM9e3dpZHRoOm4odCxlKzMpLGhlaWdodDpuKHQsZSsxKSx0eXBlOiJqcGciLG1pbWU6ImltYWdlL2pwZWciLHdVbml0czoicHgiLGhVbml0czoicHgifTtyZXR1cm4gaT4wJiYoYy5vcmllbnRhdGlvbj1pKSxjfWUrPXJ9fX0seyIuLi9jb21tb24iOjI2MywiLi4vZXhpZl91dGlscyI6MjY0fV0sMjcxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2NvbW1vbiIpLnN0cjJhcnIsaT10KCIuLi9jb21tb24iKS5zbGljZUVxLGE9dCgiLi4vY29tbW9uIikucmVhZFVJbnQzMkJFLG89bigiXHg4OVBOR1xyXG5ceDFhXG4iKSxzPW4oIklIRFIiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoISh0Lmxlbmd0aDwyNCkmJmkodCwwLG8pJiZpKHQsMTIscykpcmV0dXJue3dpZHRoOmEodCwxNiksaGVpZ2h0OmEodCwyMCksdHlwZToicG5nIixtaW1lOiJpbWFnZS9wbmciLHdVbml0czoicHgiLGhVbml0czoicHgifX19LHsiLi4vY29tbW9uIjoyNjN9XSwyNzI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vY29tbW9uIikuc3RyMmFycixpPXQoIi4uL2NvbW1vbiIpLnNsaWNlRXEsYT10KCIuLi9jb21tb24iKS5yZWFkVUludDMyQkUsbz1uKCI4QlBTXDBceDAxIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKCEodC5sZW5ndGg8MjIpJiZpKHQsMCxvKSlyZXR1cm57d2lkdGg6YSh0LDE4KSxoZWlnaHQ6YSh0LDE0KSx0eXBlOiJwc2QiLG1pbWU6ImltYWdlL3ZuZC5hZG9iZS5waG90b3Nob3AiLHdVbml0czoicHgiLGhVbml0czoicHgifX19LHsiLi4vY29tbW9uIjoyNjN9XSwyNzM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQmJmlzRmluaXRlKHQpJiZ0PjB9dmFyIGk9LzxbLV8uOmEtekEtWjAtOV1bXj5dKj4vLGE9L148KFstXy46YS16QS1aMC05XSs6KT9zdmdccy8sbz0vW14tXVxid2lkdGg9IihbXiVdKz8pInxbXi1dXGJ3aWR0aD0nKFteJV0rPyknLyxzPS9cYmhlaWdodD0iKFteJV0rPykifFxiaGVpZ2h0PScoW14lXSs/KScvLGw9L1xidmlld1tiQl1veD0iKC4rPykifFxidmlld1tiQl1veD0nKC4rPyknLyxjPS9pbiR8bW0kfGNtJHxwdCR8cGMkfHB4JHxlbSR8ZXgkLztmdW5jdGlvbiB1KHQpe3JldHVybiBjLnRlc3QodCk/dC5tYXRjaChjKVswXToicHgifWUuZXhwb3J0cz1mdW5jdGlvbih0KXtpZihmdW5jdGlvbih0KXt2YXIgZSxyPTAsbj10Lmxlbmd0aDtmb3IoMjM5PT09dFswXSYmMTg3PT09dFsxXSYmMTkxPT09dFsyXSYmKHI9Myk7cjxuJiYoMzI9PT0oZT10W3JdKXx8OT09PWV8fDEzPT09ZXx8MTA9PT1lKTspcisrO3JldHVybiByIT09biYmNjA9PT10W3JdfSh0KSl7Zm9yKHZhciBlPSIiLHI9MDtyPHQubGVuZ3RoO3IrKyllKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHRbcl0pO3ZhciBjPShlLm1hdGNoKGkpfHxbIiJdKVswXTtpZihhLnRlc3QoYykpe3ZhciBmPWZ1bmN0aW9uKHQpe3ZhciBlPXQubWF0Y2gobykscj10Lm1hdGNoKHMpLG49dC5tYXRjaChsKTtyZXR1cm57d2lkdGg6ZSYmKGVbMV18fGVbMl0pLGhlaWdodDpyJiYoclsxXXx8clsyXSksdmlld2JveDpuJiYoblsxXXx8blsyXSl9fShjKSxoPXBhcnNlRmxvYXQoZi53aWR0aCkscD1wYXJzZUZsb2F0KGYuaGVpZ2h0KTtpZihmLndpZHRoJiZmLmhlaWdodCl7aWYoIW4oaCl8fCFuKHApKXJldHVybjtyZXR1cm57d2lkdGg6aCxoZWlnaHQ6cCx0eXBlOiJzdmciLG1pbWU6ImltYWdlL3N2Zyt4bWwiLHdVbml0czp1KGYud2lkdGgpLGhVbml0czp1KGYuaGVpZ2h0KX19dmFyIGQ9KGYudmlld2JveHx8IiIpLnNwbGl0KCIgIiksbT17d2lkdGg6ZFsyXSxoZWlnaHQ6ZFszXX0sZz1wYXJzZUZsb2F0KG0ud2lkdGgpLHY9cGFyc2VGbG9hdChtLmhlaWdodCk7aWYobihnKSYmbih2KSYmdShtLndpZHRoKT09PXUobS5oZWlnaHQpKXt2YXIgeT1nL3Y7aWYoZi53aWR0aCl7aWYoIW4oaCkpcmV0dXJuO3JldHVybnt3aWR0aDpoLGhlaWdodDpoL3ksdHlwZToic3ZnIixtaW1lOiJpbWFnZS9zdmcreG1sIix3VW5pdHM6dShmLndpZHRoKSxoVW5pdHM6dShmLndpZHRoKX19aWYoZi5oZWlnaHQpe2lmKCFuKHApKXJldHVybjtyZXR1cm57d2lkdGg6cCp5LGhlaWdodDpwLHR5cGU6InN2ZyIsbWltZToiaW1hZ2Uvc3ZnK3htbCIsd1VuaXRzOnUoZi5oZWlnaHQpLGhVbml0czp1KGYuaGVpZ2h0KX19cmV0dXJue3dpZHRoOmcsaGVpZ2h0OnYsdHlwZToic3ZnIixtaW1lOiJpbWFnZS9zdmcreG1sIix3VW5pdHM6dShtLndpZHRoKSxoVW5pdHM6dShtLmhlaWdodCl9fX19fX0se31dLDI3NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9jb21tb24iKS5zdHIyYXJyLGk9dCgiLi4vY29tbW9uIikuc2xpY2VFcSxhPXQoIi4uL2NvbW1vbiIpLnJlYWRVSW50MTZMRSxvPXQoIi4uL2NvbW1vbiIpLnJlYWRVSW50MTZCRSxzPXQoIi4uL2NvbW1vbiIpLnJlYWRVSW50MzJMRSxsPXQoIi4uL2NvbW1vbiIpLnJlYWRVSW50MzJCRSxjPW4oIklJKlwwIiksdT1uKCJNTVwwKiIpO2Z1bmN0aW9uIGYodCxlLHIpe3JldHVybiByP28odCxlKTphKHQsZSl9ZnVuY3Rpb24gaCh0LGUscil7cmV0dXJuIHI/bCh0LGUpOnModCxlKX1mdW5jdGlvbiBwKHQsZSxyKXt2YXIgbj1mKHQsZSsyLHIpO3JldHVybiAxIT09aCh0LGUrNCxyKXx8MyE9PW4mJjQhPT1uP251bGw6Mz09PW4/Zih0LGUrOCxyKTpoKHQsZSs4LHIpfWUuZXhwb3J0cz1mdW5jdGlvbih0KXtpZighKHQubGVuZ3RoPDgpJiYoaSh0LDAsYyl8fGkodCwwLHUpKSl7dmFyIGU9Nzc9PT10WzBdLHI9aCh0LDQsZSktODtpZighKHI8MCkpe3ZhciBuPXIrODtpZighKHQubGVuZ3RoLW48Mikpe3ZhciBhPTEyKmYodCxuKzAsZSk7aWYoIShhPD0wfHwobis9Mix0Lmxlbmd0aC1uPGEpKSl7dmFyIG8scyxsLGQ7Zm9yKG89MDtvPGE7bys9MTIpMjU2PT09KGQ9Zih0LG4rbyxlKSk/cz1wKHQsbitvLGUpOjI1Nz09PWQmJihsPXAodCxuK28sZSkpO3JldHVybiBzJiZsP3t3aWR0aDpzLGhlaWdodDpsLHR5cGU6InRpZmYiLG1pbWU6ImltYWdlL3RpZmYiLHdVbml0czoicHgiLGhVbml0czoicHgifTp2b2lkIDB9fX19fX0seyIuLi9jb21tb24iOjI2M31dLDI3NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9jb21tb24iKS5zdHIyYXJyLGk9dCgiLi4vY29tbW9uIikuc2xpY2VFcSxhPXQoIi4uL2NvbW1vbiIpLnJlYWRVSW50MTZMRSxvPXQoIi4uL2NvbW1vbiIpLnJlYWRVSW50MzJMRSxzPXQoIi4uL2V4aWZfdXRpbHMiKSxsPW4oIlJJRkYiKSxjPW4oIldFQlAiKTtmdW5jdGlvbiB1KHQsZSl7aWYoMTU3PT09dFtlKzNdJiYxPT09dFtlKzRdJiY0Mj09PXRbZSs1XSlyZXR1cm57d2lkdGg6MTYzODMmYSh0LGUrNiksaGVpZ2h0OjE2MzgzJmEodCxlKzgpLHR5cGU6IndlYnAiLG1pbWU6ImltYWdlL3dlYnAiLHdVbml0czoicHgiLGhVbml0czoicHgifX1mdW5jdGlvbiBmKHQsZSl7aWYoNDc9PT10W2VdKXt2YXIgcj1vKHQsZSsxKTtyZXR1cm57d2lkdGg6MSsoMTYzODMmciksaGVpZ2h0OjErKHI+PjE0JjE2MzgzKSx0eXBlOiJ3ZWJwIixtaW1lOiJpbWFnZS93ZWJwIix3VW5pdHM6InB4IixoVW5pdHM6InB4In19fWZ1bmN0aW9uIGgodCxlKXtyZXR1cm57d2lkdGg6MSsodFtlKzZdPDwxNnx0W2UrNV08PDh8dFtlKzRdKSxoZWlnaHQ6MSsodFtlKzldPDxlfHRbZSs4XTw8OHx0W2UrN10pLHR5cGU6IndlYnAiLG1pbWU6ImltYWdlL3dlYnAiLHdVbml0czoicHgiLGhVbml0czoicHgifX1lLmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoISh0Lmxlbmd0aDwxNikmJihpKHQsMCxsKXx8aSh0LDgsYykpKXt2YXIgZT0xMixyPW51bGwsbj0wLGE9byh0LDQpKzg7aWYoIShhPnQubGVuZ3RoKSl7Zm9yKDtlKzg8YTspaWYoMCE9PXRbZV0pe3ZhciBwPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCx0LnNsaWNlKGUsZSs0KSksZD1vKHQsZSs0KTsiVlA4ICI9PT1wJiZkPj0xMD9yPXJ8fHUodCxlKzgpOiJWUDhMIj09PXAmJmQ+PTk/cj1yfHxmKHQsZSs4KToiVlA4WCI9PT1wJiZkPj0xMD9yPXJ8fGgodCxlKzgpOiJFWElGIj09PXAmJihuPXMuZ2V0X29yaWVudGF0aW9uKHQuc2xpY2UoZSs4LGUrOCtkKSksZT0xLzApLGUrPTgrZH1lbHNlIGUrKztpZihyKXJldHVybiBuPjAmJihyLm9yaWVudGF0aW9uPW4pLHJ9fX19LHsiLi4vY29tbW9uIjoyNjMsIi4uL2V4aWZfdXRpbHMiOjI2NH1dLDI3NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2F2aWY6dCgiLi9wYXJzZV9zeW5jL2F2aWYiKSxibXA6dCgiLi9wYXJzZV9zeW5jL2JtcCIpLGdpZjp0KCIuL3BhcnNlX3N5bmMvZ2lmIiksaWNvOnQoIi4vcGFyc2Vfc3luYy9pY28iKSxqcGVnOnQoIi4vcGFyc2Vfc3luYy9qcGVnIikscG5nOnQoIi4vcGFyc2Vfc3luYy9wbmciKSxwc2Q6dCgiLi9wYXJzZV9zeW5jL3BzZCIpLHN2Zzp0KCIuL3BhcnNlX3N5bmMvc3ZnIiksdGlmZjp0KCIuL3BhcnNlX3N5bmMvdGlmZiIpLHdlYnA6dCgiLi9wYXJzZV9zeW5jL3dlYnAiKX19LHsiLi9wYXJzZV9zeW5jL2F2aWYiOjI2NiwiLi9wYXJzZV9zeW5jL2JtcCI6MjY3LCIuL3BhcnNlX3N5bmMvZ2lmIjoyNjgsIi4vcGFyc2Vfc3luYy9pY28iOjI2OSwiLi9wYXJzZV9zeW5jL2pwZWciOjI3MCwiLi9wYXJzZV9zeW5jL3BuZyI6MjcxLCIuL3BhcnNlX3N5bmMvcHNkIjoyNzIsIi4vcGFyc2Vfc3luYy9zdmciOjI3MywiLi9wYXJzZV9zeW5jL3RpZmYiOjI3NCwiLi9wYXJzZV9zeW5jL3dlYnAiOjI3NX1dLDI3NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2xpYi9wYXJzZXJzX3N5bmMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1PYmplY3Qua2V5cyhuKSxyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBpPW5bZVtyXV0odCk7aWYoaSlyZXR1cm4gaX1yZXR1cm4gbnVsbH0odCl9LGUuZXhwb3J0cy5wYXJzZXJzPW59LHsiLi9saWIvcGFyc2Vyc19zeW5jIjoyNzZ9XSwyNzg6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbixpLGE9ZS5leHBvcnRzPXt9O2Z1bmN0aW9uIG8oKXt0aHJvdyBuZXcgRXJyb3IoInNldFRpbWVvdXQgaGFzIG5vdCBiZWVuIGRlZmluZWQiKX1mdW5jdGlvbiBzKCl7dGhyb3cgbmV3IEVycm9yKCJjbGVhclRpbWVvdXQgaGFzIG5vdCBiZWVuIGRlZmluZWQiKX1mdW5jdGlvbiBsKHQpe2lmKG49PT1zZXRUaW1lb3V0KXJldHVybiBzZXRUaW1lb3V0KHQsMCk7aWYoKG49PT1vfHwhbikmJnNldFRpbWVvdXQpcmV0dXJuIG49c2V0VGltZW91dCxzZXRUaW1lb3V0KHQsMCk7dHJ5e3JldHVybiBuKHQsMCl9Y2F0Y2goZSl7dHJ5e3JldHVybiBuLmNhbGwobnVsbCx0LDApfWNhdGNoKGUpe3JldHVybiBuLmNhbGwodGhpcyx0LDApfX19IWZ1bmN0aW9uKCl7dHJ5e249ImZ1bmN0aW9uIj09dHlwZW9mIHNldFRpbWVvdXQ/c2V0VGltZW91dDpvfWNhdGNoKHQpe249b310cnl7aT0iZnVuY3Rpb24iPT10eXBlb2YgY2xlYXJUaW1lb3V0P2NsZWFyVGltZW91dDpzfWNhdGNoKHQpe2k9c319KCk7dmFyIGMsdT1bXSxmPSExLGg9LTE7ZnVuY3Rpb24gcCgpe2YmJmMmJihmPSExLGMubGVuZ3RoP3U9Yy5jb25jYXQodSk6aD0tMSx1Lmxlbmd0aCYmZCgpKX1mdW5jdGlvbiBkKCl7aWYoIWYpe3ZhciB0PWwocCk7Zj0hMDtmb3IodmFyIGU9dS5sZW5ndGg7ZTspe2ZvcihjPXUsdT1bXTsrK2g8ZTspYyYmY1toXS5ydW4oKTtoPS0xLGU9dS5sZW5ndGh9Yz1udWxsLGY9ITEsZnVuY3Rpb24odCl7aWYoaT09PWNsZWFyVGltZW91dClyZXR1cm4gY2xlYXJUaW1lb3V0KHQpO2lmKChpPT09c3x8IWkpJiZjbGVhclRpbWVvdXQpcmV0dXJuIGk9Y2xlYXJUaW1lb3V0LGNsZWFyVGltZW91dCh0KTt0cnl7aSh0KX1jYXRjaChlKXt0cnl7cmV0dXJuIGkuY2FsbChudWxsLHQpfWNhdGNoKGUpe3JldHVybiBpLmNhbGwodGhpcyx0KX19fSh0KX19ZnVuY3Rpb24gbSh0LGUpe3RoaXMuZnVuPXQsdGhpcy5hcnJheT1lfWZ1bmN0aW9uIGcoKXt9YS5uZXh0VGljaz1mdW5jdGlvbih0KXt2YXIgZT1uZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aC0xKTtpZihhcmd1bWVudHMubGVuZ3RoPjEpZm9yKHZhciByPTE7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyllW3ItMV09YXJndW1lbnRzW3JdO3UucHVzaChuZXcgbSh0LGUpKSwxIT09dS5sZW5ndGh8fGZ8fGwoZCl9LG0ucHJvdG90eXBlLnJ1bj1mdW5jdGlvbigpe3RoaXMuZnVuLmFwcGx5KG51bGwsdGhpcy5hcnJheSl9LGEudGl0bGU9ImJyb3dzZXIiLGEuYnJvd3Nlcj0hMCxhLmVudj17fSxhLmFyZ3Y9W10sYS52ZXJzaW9uPSIiLGEudmVyc2lvbnM9e30sYS5vbj1nLGEuYWRkTGlzdGVuZXI9ZyxhLm9uY2U9ZyxhLm9mZj1nLGEucmVtb3ZlTGlzdGVuZXI9ZyxhLnJlbW92ZUFsbExpc3RlbmVycz1nLGEuZW1pdD1nLGEucHJlcGVuZExpc3RlbmVyPWcsYS5wcmVwZW5kT25jZUxpc3RlbmVyPWcsYS5saXN0ZW5lcnM9ZnVuY3Rpb24odCl7cmV0dXJuW119LGEuYmluZGluZz1mdW5jdGlvbih0KXt0aHJvdyBuZXcgRXJyb3IoInByb2Nlc3MuYmluZGluZyBpcyBub3Qgc3VwcG9ydGVkIil9LGEuY3dkPWZ1bmN0aW9uKCl7cmV0dXJuIi8ifSxhLmNoZGlyPWZ1bmN0aW9uKHQpe3Rocm93IG5ldyBFcnJvcigicHJvY2Vzcy5jaGRpciBpcyBub3Qgc3VwcG9ydGVkIil9LGEudW1hc2s9ZnVuY3Rpb24oKXtyZXR1cm4gMH19LHt9XSwyNzk6W2Z1bmN0aW9uKHQsZSxyKXsoZnVuY3Rpb24ocil7KGZ1bmN0aW9uKCl7Zm9yKHZhciBuPXQoInBlcmZvcm1hbmNlLW5vdyIpLGk9InVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3c/cjp3aW5kb3csYT1bIm1veiIsIndlYmtpdCJdLG89IkFuaW1hdGlvbkZyYW1lIixzPWlbInJlcXVlc3QiK29dLGw9aVsiY2FuY2VsIitvXXx8aVsiY2FuY2VsUmVxdWVzdCIrb10sYz0wOyFzJiZjPGEubGVuZ3RoO2MrKylzPWlbYVtjXSsiUmVxdWVzdCIrb10sbD1pW2FbY10rIkNhbmNlbCIrb118fGlbYVtjXSsiQ2FuY2VsUmVxdWVzdCIrb107aWYoIXN8fCFsKXt2YXIgdT0wLGY9MCxoPVtdO3M9ZnVuY3Rpb24odCl7aWYoMD09PWgubGVuZ3RoKXt2YXIgZT1uKCkscj1NYXRoLm1heCgwLDFlMy82MC0oZS11KSk7dT1yK2Usc2V0VGltZW91dCgoZnVuY3Rpb24oKXt2YXIgdD1oLnNsaWNlKDApO2gubGVuZ3RoPTA7Zm9yKHZhciBlPTA7ZTx0Lmxlbmd0aDtlKyspaWYoIXRbZV0uY2FuY2VsbGVkKXRyeXt0W2VdLmNhbGxiYWNrKHUpfWNhdGNoKHQpe3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dGhyb3cgdH0pLDApfX0pLE1hdGgucm91bmQocikpfXJldHVybiBoLnB1c2goe2hhbmRsZTorK2YsY2FsbGJhY2s6dCxjYW5jZWxsZWQ6ITF9KSxmfSxsPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wO2U8aC5sZW5ndGg7ZSsrKWhbZV0uaGFuZGxlPT09dCYmKGhbZV0uY2FuY2VsbGVkPSEwKX19ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBzLmNhbGwoaSx0KX0sZS5leHBvcnRzLmNhbmNlbD1mdW5jdGlvbigpe2wuYXBwbHkoaSxhcmd1bWVudHMpfSxlLmV4cG9ydHMucG9seWZpbGw9ZnVuY3Rpb24odCl7dHx8KHQ9aSksdC5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU9cyx0LmNhbmNlbEFuaW1hdGlvbkZyYW1lPWx9fSkuY2FsbCh0aGlzKX0pLmNhbGwodGhpcywidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9KX0seyJwZXJmb3JtYW5jZS1ub3ciOjI1Mn1dLDI4MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJhcnJheS1ib3VuZHMiKSxpPXQoImNvbG9yLW5vcm1hbGl6ZSIpLGE9dCgidXBkYXRlLWRpZmYiKSxvPXQoInBpY2stYnktYWxpYXMiKSxzPXQoIm9iamVjdC1hc3NpZ24iKSxsPXQoImZsYXR0ZW4tdmVydGV4LWRhdGEiKSxjPXQoInRvLWZsb2F0MzIiKSx1PWMuZmxvYXQzMixmPWMuZnJhY3QzMjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXsiZnVuY3Rpb24iPT10eXBlb2YgdD8oZXx8KGU9e30pLGUucmVnbD10KTplPXQ7ZS5sZW5ndGgmJihlLnBvc2l0aW9ucz1lKTtpZighKHQ9ZS5yZWdsKS5oYXNFeHRlbnNpb24oIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKSl0aHJvdyBFcnJvcigicmVnbC1lcnJvcjJkOiBgQU5HTEVfaW5zdGFuY2VkX2FycmF5c2AgZXh0ZW5zaW9uIHNob3VsZCBiZSBlbmFibGVkIik7dmFyIHIsYyxwLGQsbSxnLHY9dC5fZ2wseT17Y29sb3I6ImJsYWNrIixjYXBTaXplOjUsbGluZVdpZHRoOjEsb3BhY2l0eToxLHZpZXdwb3J0Om51bGwscmFuZ2U6bnVsbCxvZmZzZXQ6MCxjb3VudDowLGJvdW5kczpudWxsLHBvc2l0aW9uczpbXSxlcnJvcnM6W119LHg9W107cmV0dXJuIGQ9dC5idWZmZXIoe3VzYWdlOiJkeW5hbWljIix0eXBlOiJ1aW50OCIsZGF0YTpuZXcgVWludDhBcnJheSgwKX0pLGM9dC5idWZmZXIoe3VzYWdlOiJkeW5hbWljIix0eXBlOiJmbG9hdCIsZGF0YTpuZXcgVWludDhBcnJheSgwKX0pLHA9dC5idWZmZXIoe3VzYWdlOiJkeW5hbWljIix0eXBlOiJmbG9hdCIsZGF0YTpuZXcgVWludDhBcnJheSgwKX0pLG09dC5idWZmZXIoe3VzYWdlOiJkeW5hbWljIix0eXBlOiJmbG9hdCIsZGF0YTpuZXcgVWludDhBcnJheSgwKX0pLGc9dC5idWZmZXIoe3VzYWdlOiJzdGF0aWMiLHR5cGU6ImZsb2F0IixkYXRhOmh9KSxUKGUpLHI9dCh7dmVydDoiXG5cdFx0cHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuXG5cdFx0YXR0cmlidXRlIHZlYzIgcG9zaXRpb24sIHBvc2l0aW9uRnJhY3Q7XG5cdFx0YXR0cmlidXRlIHZlYzQgZXJyb3I7XG5cdFx0YXR0cmlidXRlIHZlYzQgY29sb3I7XG5cblx0XHRhdHRyaWJ1dGUgdmVjMiBkaXJlY3Rpb24sIGxpbmVPZmZzZXQsIGNhcE9mZnNldDtcblxuXHRcdHVuaWZvcm0gdmVjNCB2aWV3cG9ydDtcblx0XHR1bmlmb3JtIGZsb2F0IGxpbmVXaWR0aCwgY2FwU2l6ZTtcblx0XHR1bmlmb3JtIHZlYzIgc2NhbGUsIHNjYWxlRnJhY3QsIHRyYW5zbGF0ZSwgdHJhbnNsYXRlRnJhY3Q7XG5cblx0XHR2YXJ5aW5nIHZlYzQgZnJhZ0NvbG9yO1xuXG5cdFx0dm9pZCBtYWluKCkge1xuXHRcdFx0ZnJhZ0NvbG9yID0gY29sb3IgLyAyNTUuO1xuXG5cdFx0XHR2ZWMyIHBpeGVsT2Zmc2V0ID0gbGluZVdpZHRoICogbGluZU9mZnNldCArIChjYXBTaXplICsgbGluZVdpZHRoKSAqIGNhcE9mZnNldDtcblxuXHRcdFx0dmVjMiBkeHkgPSAtc3RlcCguNSwgZGlyZWN0aW9uLnh5KSAqIGVycm9yLnh6ICsgc3RlcChkaXJlY3Rpb24ueHksIHZlYzIoLS41KSkgKiBlcnJvci55dztcblxuXHRcdFx0dmVjMiBwb3NpdGlvbiA9IHBvc2l0aW9uICsgZHh5O1xuXG5cdFx0XHR2ZWMyIHBvcyA9IChwb3NpdGlvbiArIHRyYW5zbGF0ZSkgKiBzY2FsZVxuXHRcdFx0XHQrIChwb3NpdGlvbkZyYWN0ICsgdHJhbnNsYXRlRnJhY3QpICogc2NhbGVcblx0XHRcdFx0KyAocG9zaXRpb24gKyB0cmFuc2xhdGUpICogc2NhbGVGcmFjdFxuXHRcdFx0XHQrIChwb3NpdGlvbkZyYWN0ICsgdHJhbnNsYXRlRnJhY3QpICogc2NhbGVGcmFjdDtcblxuXHRcdFx0cG9zICs9IHBpeGVsT2Zmc2V0IC8gdmlld3BvcnQuenc7XG5cblx0XHRcdGdsX1Bvc2l0aW9uID0gdmVjNChwb3MgKiAyLiAtIDEuLCAwLCAxKTtcblx0XHR9XG5cdFx0IixmcmFnOiJcblx0XHRwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG5cblx0XHR2YXJ5aW5nIHZlYzQgZnJhZ0NvbG9yO1xuXG5cdFx0dW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xuXG5cdFx0dm9pZCBtYWluKCkge1xuXHRcdFx0Z2xfRnJhZ0NvbG9yID0gZnJhZ0NvbG9yO1xuXHRcdFx0Z2xfRnJhZ0NvbG9yLmEgKj0gb3BhY2l0eTtcblx0XHR9XG5cdFx0Iix1bmlmb3Jtczp7cmFuZ2U6dC5wcm9wKCJyYW5nZSIpLGxpbmVXaWR0aDp0LnByb3AoImxpbmVXaWR0aCIpLGNhcFNpemU6dC5wcm9wKCJjYXBTaXplIiksb3BhY2l0eTp0LnByb3AoIm9wYWNpdHkiKSxzY2FsZTp0LnByb3AoInNjYWxlIiksdHJhbnNsYXRlOnQucHJvcCgidHJhbnNsYXRlIiksc2NhbGVGcmFjdDp0LnByb3AoInNjYWxlRnJhY3QiKSx0cmFuc2xhdGVGcmFjdDp0LnByb3AoInRyYW5zbGF0ZUZyYWN0Iiksdmlld3BvcnQ6ZnVuY3Rpb24odCxlKXtyZXR1cm5bZS52aWV3cG9ydC54LGUudmlld3BvcnQueSx0LnZpZXdwb3J0V2lkdGgsdC52aWV3cG9ydEhlaWdodF19fSxhdHRyaWJ1dGVzOntjb2xvcjp7YnVmZmVyOmQsb2Zmc2V0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIDQqZS5vZmZzZXR9LGRpdmlzb3I6MX0scG9zaXRpb246e2J1ZmZlcjpjLG9mZnNldDpmdW5jdGlvbih0LGUpe3JldHVybiA4KmUub2Zmc2V0fSxkaXZpc29yOjF9LHBvc2l0aW9uRnJhY3Q6e2J1ZmZlcjpwLG9mZnNldDpmdW5jdGlvbih0LGUpe3JldHVybiA4KmUub2Zmc2V0fSxkaXZpc29yOjF9LGVycm9yOntidWZmZXI6bSxvZmZzZXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gMTYqZS5vZmZzZXR9LGRpdmlzb3I6MX0sZGlyZWN0aW9uOntidWZmZXI6ZyxzdHJpZGU6MjQsb2Zmc2V0OjB9LGxpbmVPZmZzZXQ6e2J1ZmZlcjpnLHN0cmlkZToyNCxvZmZzZXQ6OH0sY2FwT2Zmc2V0OntidWZmZXI6ZyxzdHJpZGU6MjQsb2Zmc2V0OjE2fX0scHJpbWl0aXZlOiJ0cmlhbmdsZXMiLGJsZW5kOntlbmFibGU6ITAsY29sb3I6WzAsMCwwLDBdLGVxdWF0aW9uOntyZ2I6ImFkZCIsYWxwaGE6ImFkZCJ9LGZ1bmM6e3NyY1JHQjoic3JjIGFscGhhIixkc3RSR0I6Im9uZSBtaW51cyBzcmMgYWxwaGEiLHNyY0FscGhhOiJvbmUgbWludXMgZHN0IGFscGhhIixkc3RBbHBoYToib25lIn19LGRlcHRoOntlbmFibGU6ITF9LHNjaXNzb3I6e2VuYWJsZTohMCxib3g6dC5wcm9wKCJ2aWV3cG9ydCIpfSx2aWV3cG9ydDp0LnByb3AoInZpZXdwb3J0Iiksc3RlbmNpbDohMSxpbnN0YW5jZXM6dC5wcm9wKCJjb3VudCIpLGNvdW50OmgubGVuZ3RofSkscyhiLHt1cGRhdGU6VCxkcmF3Ol8sZGVzdHJveTprLHJlZ2w6dCxnbDp2LGNhbnZhczp2LmNhbnZhcyxncm91cHM6eH0pLGI7ZnVuY3Rpb24gYih0KXt0P1QodCk6bnVsbD09PXQmJmsoKSxfKCl9ZnVuY3Rpb24gXyhlKXtpZigibnVtYmVyIj09dHlwZW9mIGUpcmV0dXJuIHcoZSk7ZSYmIUFycmF5LmlzQXJyYXkoZSkmJihlPVtlXSksdC5fcmVmcmVzaCgpLHguZm9yRWFjaCgoZnVuY3Rpb24odCxyKXt0JiYoZSYmKGVbcl0/dC5kcmF3PSEwOnQuZHJhdz0hMSksdC5kcmF3P3cocik6dC5kcmF3PSEwKX0pKX1mdW5jdGlvbiB3KHQpeyJudW1iZXIiPT10eXBlb2YgdCYmKHQ9eFt0XSksbnVsbCE9dCYmdCYmdC5jb3VudCYmdC5jb2xvciYmdC5vcGFjaXR5JiZ0LnBvc2l0aW9ucyYmdC5wb3NpdGlvbnMubGVuZ3RoPjEmJih0LnNjYWxlUmF0aW89W3Quc2NhbGVbMF0qdC52aWV3cG9ydC53aWR0aCx0LnNjYWxlWzFdKnQudmlld3BvcnQuaGVpZ2h0XSxyKHQpLHQuYWZ0ZXImJnQuYWZ0ZXIodCkpfWZ1bmN0aW9uIFQodCl7aWYodCl7bnVsbCE9dC5sZW5ndGg/Im51bWJlciI9PXR5cGVvZiB0WzBdJiYodD1be3Bvc2l0aW9uczp0fV0pOkFycmF5LmlzQXJyYXkodCl8fCh0PVt0XSk7dmFyIGU9MCxyPTA7aWYoYi5ncm91cHM9eD10Lm1hcCgoZnVuY3Rpb24odCxjKXt2YXIgdT14W2NdO3JldHVybiB0PygiZnVuY3Rpb24iPT10eXBlb2YgdD90PXthZnRlcjp0fToibnVtYmVyIj09dHlwZW9mIHRbMF0mJih0PXtwb3NpdGlvbnM6dH0pLHQ9byh0LHtjb2xvcjoiY29sb3IgY29sb3JzIGZpbGwiLGNhcFNpemU6ImNhcFNpemUgY2FwIGNhcHNpemUgY2FwLXNpemUiLGxpbmVXaWR0aDoibGluZVdpZHRoIGxpbmUtd2lkdGggd2lkdGggbGluZSB0aGlja25lc3MiLG9wYWNpdHk6Im9wYWNpdHkgYWxwaGEiLHJhbmdlOiJyYW5nZSBkYXRhQm94Iix2aWV3cG9ydDoidmlld3BvcnQgdmlld0JveCIsZXJyb3JzOiJlcnJvcnMgZXJyb3IiLHBvc2l0aW9uczoicG9zaXRpb25zIHBvc2l0aW9uIGRhdGEgcG9pbnRzIn0pLHV8fCh4W2NdPXU9e2lkOmMsc2NhbGU6bnVsbCx0cmFuc2xhdGU6bnVsbCxzY2FsZUZyYWN0Om51bGwsdHJhbnNsYXRlRnJhY3Q6bnVsbCxkcmF3OiEwfSx0PXMoe30seSx0KSksYSh1LHQsW3tsaW5lV2lkdGg6ZnVuY3Rpb24odCl7cmV0dXJuLjUqK3R9LGNhcFNpemU6ZnVuY3Rpb24odCl7cmV0dXJuLjUqK3R9LG9wYWNpdHk6cGFyc2VGbG9hdCxlcnJvcnM6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bCh0KSxyKz10Lmxlbmd0aCx0fSxwb3NpdGlvbnM6ZnVuY3Rpb24odCxyKXtyZXR1cm4gdD1sKHQsImZsb2F0NjQiKSxyLmNvdW50PU1hdGguZmxvb3IodC5sZW5ndGgvMiksci5ib3VuZHM9bih0LDIpLHIub2Zmc2V0PWUsZSs9ci5jb3VudCx0fX0se2NvbG9yOmZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS5jb3VudDtpZih0fHwodD0idHJhbnNwYXJlbnQiKSwhQXJyYXkuaXNBcnJheSh0KXx8Im51bWJlciI9PXR5cGVvZiB0WzBdKXt2YXIgbj10O3Q9QXJyYXkocik7Zm9yKHZhciBhPTA7YTxyO2ErKyl0W2FdPW59aWYodC5sZW5ndGg8cil0aHJvdyBFcnJvcigiTm90IGVub3VnaCBjb2xvcnMiKTtmb3IodmFyIG89bmV3IFVpbnQ4QXJyYXkoNCpyKSxzPTA7czxyO3MrKyl7dmFyIGw9aSh0W3NdLCJ1aW50OCIpO28uc2V0KGwsNCpzKX1yZXR1cm4gb30scmFuZ2U6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWUuYm91bmRzO3JldHVybiB0fHwodD1uKSxlLnNjYWxlPVsxLyh0WzJdLXRbMF0pLDEvKHRbM10tdFsxXSldLGUudHJhbnNsYXRlPVstdFswXSwtdFsxXV0sZS5zY2FsZUZyYWN0PWYoZS5zY2FsZSksZS50cmFuc2xhdGVGcmFjdD1mKGUudHJhbnNsYXRlKSx0fSx2aWV3cG9ydDpmdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT9lPXt4OnRbMF0seTp0WzFdLHdpZHRoOnRbMl0tdFswXSxoZWlnaHQ6dFszXS10WzFdfTp0PyhlPXt4OnQueHx8dC5sZWZ0fHwwLHk6dC55fHx0LnRvcHx8MH0sdC5yaWdodD9lLndpZHRoPXQucmlnaHQtZS54OmUud2lkdGg9dC53fHx0LndpZHRofHwwLHQuYm90dG9tP2UuaGVpZ2h0PXQuYm90dG9tLWUueTplLmhlaWdodD10Lmh8fHQuaGVpZ2h0fHwwKTplPXt4OjAseTowLHdpZHRoOnYuZHJhd2luZ0J1ZmZlcldpZHRoLGhlaWdodDp2LmRyYXdpbmdCdWZmZXJIZWlnaHR9LGV9fV0pLHUpOnV9KSksZXx8cil7dmFyIGg9eC5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdCsoZT9lLmNvdW50OjApfSksMCksZz1uZXcgRmxvYXQ2NEFycmF5KDIqaCksXz1uZXcgVWludDhBcnJheSg0KmgpLHc9bmV3IEZsb2F0MzJBcnJheSg0KmgpO3guZm9yRWFjaCgoZnVuY3Rpb24odCxlKXtpZih0KXt2YXIgcj10LnBvc2l0aW9ucyxuPXQuY291bnQsaT10Lm9mZnNldCxhPXQuY29sb3Isbz10LmVycm9ycztuJiYoXy5zZXQoYSw0KmkpLHcuc2V0KG8sNCppKSxnLnNldChyLDIqaSkpfX0pKTt2YXIgVD11KGcpO2MoVCk7dmFyIGs9ZihnLFQpO3AoayksZChfKSxtKHcpfX19ZnVuY3Rpb24gaygpe2MuZGVzdHJveSgpLHAuZGVzdHJveSgpLGQuZGVzdHJveSgpLG0uZGVzdHJveSgpLGcuZGVzdHJveSgpfX07dmFyIGg9W1sxLDAsMCwxLDAsMF0sWzEsMCwwLC0xLDAsMF0sWy0xLDAsMCwtMSwwLDBdLFstMSwwLDAsLTEsMCwwXSxbLTEsMCwwLDEsMCwwXSxbMSwwLDAsMSwwLDBdLFsxLDAsLTEsMCwwLDFdLFsxLDAsLTEsMCwwLC0xXSxbMSwwLDEsMCwwLC0xXSxbMSwwLDEsMCwwLC0xXSxbMSwwLDEsMCwwLDFdLFsxLDAsLTEsMCwwLDFdLFstMSwwLC0xLDAsMCwxXSxbLTEsMCwtMSwwLDAsLTFdLFstMSwwLDEsMCwwLC0xXSxbLTEsMCwxLDAsMCwtMV0sWy0xLDAsMSwwLDAsMV0sWy0xLDAsLTEsMCwwLDFdLFswLDEsMSwwLDAsMF0sWzAsMSwtMSwwLDAsMF0sWzAsLTEsLTEsMCwwLDBdLFswLC0xLC0xLDAsMCwwXSxbMCwxLDEsMCwwLDBdLFswLC0xLDEsMCwwLDBdLFswLDEsMCwtMSwxLDBdLFswLDEsMCwtMSwtMSwwXSxbMCwxLDAsMSwtMSwwXSxbMCwxLDAsMSwxLDBdLFswLDEsMCwtMSwxLDBdLFswLDEsMCwxLC0xLDBdLFswLC0xLDAsLTEsMSwwXSxbMCwtMSwwLC0xLC0xLDBdLFswLC0xLDAsMSwtMSwwXSxbMCwtMSwwLDEsMSwwXSxbMCwtMSwwLC0xLDEsMF0sWzAsLTEsMCwxLC0xLDBdXX0seyJhcnJheS1ib3VuZHMiOjcxLCJjb2xvci1ub3JtYWxpemUiOjg5LCJmbGF0dGVuLXZlcnRleC1kYXRhIjoxOTEsIm9iamVjdC1hc3NpZ24iOjI0NywicGljay1ieS1hbGlhcyI6MjUzLCJ0by1mbG9hdDMyIjozMTQsInVwZGF0ZS1kaWZmIjozMzB9XSwyODE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiY29sb3Itbm9ybWFsaXplIiksaT10KCJhcnJheS1ib3VuZHMiKSxhPXQoIm9iamVjdC1hc3NpZ24iKSxvPXQoImdsc2xpZnkiKSxzPXQoInBpY2stYnktYWxpYXMiKSxsPXQoImZsYXR0ZW4tdmVydGV4LWRhdGEiKSxjPXQoImVhcmN1dCIpLHU9dCgiYXJyYXktbm9ybWFsaXplIiksZj10KCJ0by1mbG9hdDMyIiksaD1mLmZsb2F0MzIscD1mLmZyYWN0MzIsZD10KCJlczYtd2Vhay1tYXAiKSxtPXQoInBhcnNlLXJlY3QiKSxnPXQoImFycmF5LWZpbmQtaW5kZXgiKTtmdW5jdGlvbiB2KHQsZSl7aWYoISh0aGlzIGluc3RhbmNlb2YgdikpcmV0dXJuIG5ldyB2KHQsZSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHQ/KGV8fChlPXt9KSxlLnJlZ2w9dCk6ZT10LGUubGVuZ3RoJiYoZS5wb3NpdGlvbnM9ZSksISh0PWUucmVnbCkuaGFzRXh0ZW5zaW9uKCJBTkdMRV9pbnN0YW5jZWRfYXJyYXlzIikpdGhyb3cgRXJyb3IoInJlZ2wtZXJyb3IyZDogYEFOR0xFX2luc3RhbmNlZF9hcnJheXNgIGV4dGVuc2lvbiBzaG91bGQgYmUgZW5hYmxlZCIpO3RoaXMuZ2w9dC5fZ2wsdGhpcy5yZWdsPXQsdGhpcy5wYXNzZXM9W10sdGhpcy5zaGFkZXJzPXYuc2hhZGVycy5oYXModCk/di5zaGFkZXJzLmdldCh0KTp2LnNoYWRlcnMuc2V0KHQsdi5jcmVhdGVTaGFkZXJzKHQpKS5nZXQodCksdGhpcy51cGRhdGUoZSl9ZS5leHBvcnRzPXYsdi5kYXNoTXVsdD0yLHYubWF4UGF0dGVybkxlbmd0aD0yNTYsdi5wcmVjaXNpb25UaHJlc2hvbGQ9M2U2LHYubWF4UG9pbnRzPTFlNCx2Lm1heExpbmVzPTIwNDgsdi5zaGFkZXJzPW5ldyBkLHYuY3JlYXRlU2hhZGVycz1mdW5jdGlvbih0KXt2YXIgZSxyPXQuYnVmZmVyKHt1c2FnZToic3RhdGljIix0eXBlOiJmbG9hdCIsZGF0YTpbMCwxLDAsMCwxLDEsMSwwXX0pLG49e3ByaW1pdGl2ZToidHJpYW5nbGUgc3RyaXAiLGluc3RhbmNlczp0LnByb3AoImNvdW50IiksY291bnQ6NCxvZmZzZXQ6MCx1bmlmb3Jtczp7bWl0ZXJNb2RlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuInJvdW5kIj09PWUuam9pbj8yOjF9LG1pdGVyTGltaXQ6dC5wcm9wKCJtaXRlckxpbWl0Iiksc2NhbGU6dC5wcm9wKCJzY2FsZSIpLHNjYWxlRnJhY3Q6dC5wcm9wKCJzY2FsZUZyYWN0IiksdHJhbnNsYXRlRnJhY3Q6dC5wcm9wKCJ0cmFuc2xhdGVGcmFjdCIpLHRyYW5zbGF0ZTp0LnByb3AoInRyYW5zbGF0ZSIpLHRoaWNrbmVzczp0LnByb3AoInRoaWNrbmVzcyIpLGRhc2hUZXh0dXJlOnQucHJvcCgiZGFzaFRleHR1cmUiKSxvcGFjaXR5OnQucHJvcCgib3BhY2l0eSIpLHBpeGVsUmF0aW86dC5jb250ZXh0KCJwaXhlbFJhdGlvIiksaWQ6dC5wcm9wKCJpZCIpLGRhc2hMZW5ndGg6dC5wcm9wKCJkYXNoTGVuZ3RoIiksdmlld3BvcnQ6ZnVuY3Rpb24odCxlKXtyZXR1cm5bZS52aWV3cG9ydC54LGUudmlld3BvcnQueSx0LnZpZXdwb3J0V2lkdGgsdC52aWV3cG9ydEhlaWdodF19LGRlcHRoOnQucHJvcCgiZGVwdGgiKX0sYmxlbmQ6e2VuYWJsZTohMCxjb2xvcjpbMCwwLDAsMF0sZXF1YXRpb246e3JnYjoiYWRkIixhbHBoYToiYWRkIn0sZnVuYzp7c3JjUkdCOiJzcmMgYWxwaGEiLGRzdFJHQjoib25lIG1pbnVzIHNyYyBhbHBoYSIsc3JjQWxwaGE6Im9uZSBtaW51cyBkc3QgYWxwaGEiLGRzdEFscGhhOiJvbmUifX0sZGVwdGg6e2VuYWJsZTpmdW5jdGlvbih0LGUpe3JldHVybiFlLm92ZXJsYXl9fSxzdGVuY2lsOntlbmFibGU6ITF9LHNjaXNzb3I6e2VuYWJsZTohMCxib3g6dC5wcm9wKCJ2aWV3cG9ydCIpfSx2aWV3cG9ydDp0LnByb3AoInZpZXdwb3J0Iil9LGk9dChhKHt2ZXJ0Om8oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5hdHRyaWJ1dGUgdmVjMiBhQ29vcmQsIGJDb29yZCwgYUNvb3JkRnJhY3QsIGJDb29yZEZyYWN0O1xuYXR0cmlidXRlIHZlYzQgY29sb3I7XG5hdHRyaWJ1dGUgZmxvYXQgbGluZUVuZCwgbGluZVRvcDtcblxudW5pZm9ybSB2ZWMyIHNjYWxlLCBzY2FsZUZyYWN0LCB0cmFuc2xhdGUsIHRyYW5zbGF0ZUZyYWN0O1xudW5pZm9ybSBmbG9hdCB0aGlja25lc3MsIHBpeGVsUmF0aW8sIGlkLCBkZXB0aDtcbnVuaWZvcm0gdmVjNCB2aWV3cG9ydDtcblxudmFyeWluZyB2ZWM0IGZyYWdDb2xvcjtcbnZhcnlpbmcgdmVjMiB0YW5nZW50O1xuXG52ZWMyIHByb2plY3QodmVjMiBwb3NpdGlvbiwgdmVjMiBwb3NpdGlvbkZyYWN0LCB2ZWMyIHNjYWxlLCB2ZWMyIHNjYWxlRnJhY3QsIHZlYzIgdHJhbnNsYXRlLCB2ZWMyIHRyYW5zbGF0ZUZyYWN0KSB7XG5cdC8vIHRoZSBvcmRlciBpcyBpbXBvcnRhbnRcblx0cmV0dXJuIHBvc2l0aW9uICogc2NhbGUgKyB0cmFuc2xhdGVcbiAgICAgICArIHBvc2l0aW9uRnJhY3QgKiBzY2FsZSArIHRyYW5zbGF0ZUZyYWN0XG4gICAgICAgKyBwb3NpdGlvbiAqIHNjYWxlRnJhY3RcbiAgICAgICArIHBvc2l0aW9uRnJhY3QgKiBzY2FsZUZyYWN0O1xufVxuXG52b2lkIG1haW4oKSB7XG5cdGZsb2F0IGxpbmVTdGFydCA9IDEuIC0gbGluZUVuZDtcblx0ZmxvYXQgbGluZU9mZnNldCA9IGxpbmVUb3AgKiAyLiAtIDEuO1xuXG5cdHZlYzIgZGlmZiA9IChiQ29vcmQgKyBiQ29vcmRGcmFjdCAtIGFDb29yZCAtIGFDb29yZEZyYWN0KTtcblx0dGFuZ2VudCA9IG5vcm1hbGl6ZShkaWZmICogc2NhbGUgKiB2aWV3cG9ydC56dyk7XG5cdHZlYzIgbm9ybWFsID0gdmVjMigtdGFuZ2VudC55LCB0YW5nZW50LngpO1xuXG5cdHZlYzIgcG9zaXRpb24gPSBwcm9qZWN0KGFDb29yZCwgYUNvb3JkRnJhY3QsIHNjYWxlLCBzY2FsZUZyYWN0LCB0cmFuc2xhdGUsIHRyYW5zbGF0ZUZyYWN0KSAqIGxpbmVTdGFydFxuXHRcdCsgcHJvamVjdChiQ29vcmQsIGJDb29yZEZyYWN0LCBzY2FsZSwgc2NhbGVGcmFjdCwgdHJhbnNsYXRlLCB0cmFuc2xhdGVGcmFjdCkgKiBsaW5lRW5kXG5cblx0XHQrIHRoaWNrbmVzcyAqIG5vcm1hbCAqIC41ICogbGluZU9mZnNldCAvIHZpZXdwb3J0Lnp3O1xuXG5cdGdsX1Bvc2l0aW9uID0gdmVjNChwb3NpdGlvbiAqIDIuMCAtIDEuMCwgZGVwdGgsIDEpO1xuXG5cdGZyYWdDb2xvciA9IGNvbG9yIC8gMjU1Ljtcbn1cbiJdKSxmcmFnOm8oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG51bmlmb3JtIGZsb2F0IGRhc2hMZW5ndGgsIHBpeGVsUmF0aW8sIHRoaWNrbmVzcywgb3BhY2l0eSwgaWQ7XG51bmlmb3JtIHNhbXBsZXIyRCBkYXNoVGV4dHVyZTtcblxudmFyeWluZyB2ZWM0IGZyYWdDb2xvcjtcbnZhcnlpbmcgdmVjMiB0YW5nZW50O1xuXG52b2lkIG1haW4oKSB7XG5cdGZsb2F0IGFscGhhID0gMS47XG5cblx0ZmxvYXQgdCA9IGZyYWN0KGRvdCh0YW5nZW50LCBnbF9GcmFnQ29vcmQueHkpIC8gZGFzaExlbmd0aCkgKiAuNSArIC4yNTtcblx0ZmxvYXQgZGFzaCA9IHRleHR1cmUyRChkYXNoVGV4dHVyZSwgdmVjMih0LCAuNSkpLnI7XG5cblx0Z2xfRnJhZ0NvbG9yID0gZnJhZ0NvbG9yO1xuXHRnbF9GcmFnQ29sb3IuYSAqPSBhbHBoYSAqIG9wYWNpdHkgKiBkYXNoO1xufVxuIl0pLGF0dHJpYnV0ZXM6e2xpbmVFbmQ6e2J1ZmZlcjpyLGRpdmlzb3I6MCxzdHJpZGU6OCxvZmZzZXQ6MH0sbGluZVRvcDp7YnVmZmVyOnIsZGl2aXNvcjowLHN0cmlkZTo4LG9mZnNldDo0fSxhQ29vcmQ6e2J1ZmZlcjp0LnByb3AoInBvc2l0aW9uQnVmZmVyIiksc3RyaWRlOjgsb2Zmc2V0OjgsZGl2aXNvcjoxfSxiQ29vcmQ6e2J1ZmZlcjp0LnByb3AoInBvc2l0aW9uQnVmZmVyIiksc3RyaWRlOjgsb2Zmc2V0OjE2LGRpdmlzb3I6MX0sYUNvb3JkRnJhY3Q6e2J1ZmZlcjp0LnByb3AoInBvc2l0aW9uRnJhY3RCdWZmZXIiKSxzdHJpZGU6OCxvZmZzZXQ6OCxkaXZpc29yOjF9LGJDb29yZEZyYWN0OntidWZmZXI6dC5wcm9wKCJwb3NpdGlvbkZyYWN0QnVmZmVyIiksc3RyaWRlOjgsb2Zmc2V0OjE2LGRpdmlzb3I6MX0sY29sb3I6e2J1ZmZlcjp0LnByb3AoImNvbG9yQnVmZmVyIiksc3RyaWRlOjQsb2Zmc2V0OjAsZGl2aXNvcjoxfX19LG4pKTt0cnl7ZT10KGEoe2N1bGw6e2VuYWJsZTohMCxmYWNlOiJiYWNrIn0sdmVydDpvKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYXR0cmlidXRlIHZlYzIgYUNvb3JkLCBiQ29vcmQsIG5leHRDb29yZCwgcHJldkNvb3JkO1xuYXR0cmlidXRlIHZlYzQgYUNvbG9yLCBiQ29sb3I7XG5hdHRyaWJ1dGUgZmxvYXQgbGluZUVuZCwgbGluZVRvcDtcblxudW5pZm9ybSB2ZWMyIHNjYWxlLCB0cmFuc2xhdGU7XG51bmlmb3JtIGZsb2F0IHRoaWNrbmVzcywgcGl4ZWxSYXRpbywgaWQsIGRlcHRoO1xudW5pZm9ybSB2ZWM0IHZpZXdwb3J0O1xudW5pZm9ybSBmbG9hdCBtaXRlckxpbWl0LCBtaXRlck1vZGU7XG5cbnZhcnlpbmcgdmVjNCBmcmFnQ29sb3I7XG52YXJ5aW5nIHZlYzQgc3RhcnRDdXRvZmYsIGVuZEN1dG9mZjtcbnZhcnlpbmcgdmVjMiB0YW5nZW50O1xudmFyeWluZyB2ZWMyIHN0YXJ0Q29vcmQsIGVuZENvb3JkO1xudmFyeWluZyBmbG9hdCBlbmFibGVTdGFydE1pdGVyLCBlbmFibGVFbmRNaXRlcjtcblxuY29uc3QgZmxvYXQgUkVWRVJTRV9USFJFU0hPTEQgPSAtLjg3NTtcbmNvbnN0IGZsb2F0IE1JTl9ESUZGID0gMWUtNjtcblxuLy8gVE9ETzogcG9zc2libGUgb3B0aW1pemF0aW9uczogYXZvaWQgb3ZlcmNhbGN1bGF0aW5nIGFsbCBmb3IgdmVydGljZXMgYW5kIGNhbGMganVzdCBvbmUgaW5zdGVhZFxuLy8gVE9ETzogcHJlY2FsY3VsYXRlIGRvdCBwcm9kdWN0cywgbm9ybWFsaXplIHRoaW5ncyBiZWZvcmVoZWFkIGV0Yy5cbi8vIFRPRE86IHJlZmFjdG9yIHRvIHJlY3Rhbmd1bGFyIGFsZ29yaXRobVxuXG5mbG9hdCBkaXN0VG9MaW5lKHZlYzIgcCwgdmVjMiBhLCB2ZWMyIGIpIHtcblx0dmVjMiBkaWZmID0gYiAtIGE7XG5cdHZlYzIgcGVycCA9IG5vcm1hbGl6ZSh2ZWMyKC1kaWZmLnksIGRpZmYueCkpO1xuXHRyZXR1cm4gZG90KHAgLSBhLCBwZXJwKTtcbn1cblxuYm9vbCBpc05hTiggZmxvYXQgdmFsICl7XG4gIHJldHVybiAoIHZhbCA8IDAuMCB8fCAwLjAgPCB2YWwgfHwgdmFsID09IDAuMCApID8gZmFsc2UgOiB0cnVlO1xufVxuXG52b2lkIG1haW4oKSB7XG5cdHZlYzIgYUNvb3JkID0gYUNvb3JkLCBiQ29vcmQgPSBiQ29vcmQsIHByZXZDb29yZCA9IHByZXZDb29yZCwgbmV4dENvb3JkID0gbmV4dENvb3JkO1xuXG4gIHZlYzIgYWRqdXN0ZWRTY2FsZTtcbiAgYWRqdXN0ZWRTY2FsZS54ID0gKGFicyhzY2FsZS54KSA8IE1JTl9ESUZGKSA/IE1JTl9ESUZGIDogc2NhbGUueDtcbiAgYWRqdXN0ZWRTY2FsZS55ID0gKGFicyhzY2FsZS55KSA8IE1JTl9ESUZGKSA/IE1JTl9ESUZGIDogc2NhbGUueTtcblxuICB2ZWMyIHNjYWxlUmF0aW8gPSBhZGp1c3RlZFNjYWxlICogdmlld3BvcnQuenc7XG5cdHZlYzIgbm9ybWFsV2lkdGggPSB0aGlja25lc3MgLyBzY2FsZVJhdGlvO1xuXG5cdGZsb2F0IGxpbmVTdGFydCA9IDEuIC0gbGluZUVuZDtcblx0ZmxvYXQgbGluZUJvdCA9IDEuIC0gbGluZVRvcDtcblxuXHRmcmFnQ29sb3IgPSAobGluZVN0YXJ0ICogYUNvbG9yICsgbGluZUVuZCAqIGJDb2xvcikgLyAyNTUuO1xuXG5cdGlmIChpc05hTihhQ29vcmQueCkgfHwgaXNOYU4oYUNvb3JkLnkpIHx8IGlzTmFOKGJDb29yZC54KSB8fCBpc05hTihiQ29vcmQueSkpIHJldHVybjtcblxuXHRpZiAoYUNvb3JkID09IHByZXZDb29yZCkgcHJldkNvb3JkID0gYUNvb3JkICsgbm9ybWFsaXplKGJDb29yZCAtIGFDb29yZCk7XG5cdGlmIChiQ29vcmQgPT0gbmV4dENvb3JkKSBuZXh0Q29vcmQgPSBiQ29vcmQgLSBub3JtYWxpemUoYkNvb3JkIC0gYUNvb3JkKTtcblxuXHR2ZWMyIHByZXZEaWZmID0gYUNvb3JkIC0gcHJldkNvb3JkO1xuXHR2ZWMyIGN1cnJEaWZmID0gYkNvb3JkIC0gYUNvb3JkO1xuXHR2ZWMyIG5leHREaWZmID0gbmV4dENvb3JkIC0gYkNvb3JkO1xuXG5cdHZlYzIgcHJldlRhbmdlbnQgPSBub3JtYWxpemUocHJldkRpZmYgKiBzY2FsZVJhdGlvKTtcblx0dmVjMiBjdXJyVGFuZ2VudCA9IG5vcm1hbGl6ZShjdXJyRGlmZiAqIHNjYWxlUmF0aW8pO1xuXHR2ZWMyIG5leHRUYW5nZW50ID0gbm9ybWFsaXplKG5leHREaWZmICogc2NhbGVSYXRpbyk7XG5cblx0dmVjMiBwcmV2Tm9ybWFsID0gdmVjMigtcHJldlRhbmdlbnQueSwgcHJldlRhbmdlbnQueCk7XG5cdHZlYzIgY3Vyck5vcm1hbCA9IHZlYzIoLWN1cnJUYW5nZW50LnksIGN1cnJUYW5nZW50LngpO1xuXHR2ZWMyIG5leHROb3JtYWwgPSB2ZWMyKC1uZXh0VGFuZ2VudC55LCBuZXh0VGFuZ2VudC54KTtcblxuXHR2ZWMyIHN0YXJ0Sm9pbkRpcmVjdGlvbiA9IG5vcm1hbGl6ZShwcmV2VGFuZ2VudCAtIGN1cnJUYW5nZW50KTtcblx0dmVjMiBlbmRKb2luRGlyZWN0aW9uID0gbm9ybWFsaXplKGN1cnJUYW5nZW50IC0gbmV4dFRhbmdlbnQpO1xuXG5cdC8vIGNvbGxhcHNlZC91bmlkaXJlY3Rpb25hbCBzZWdtZW50IGNhc2VzXG5cdC8vIEZJWE1FOiB0aGVyZSBzaG91bGQgYmUgbW9yZSBlbGVnYW50IHNvbHV0aW9uXG5cdHZlYzIgcHJldlRhbkRpZmYgPSBhYnMocHJldlRhbmdlbnQgLSBjdXJyVGFuZ2VudCk7XG5cdHZlYzIgbmV4dFRhbkRpZmYgPSBhYnMobmV4dFRhbmdlbnQgLSBjdXJyVGFuZ2VudCk7XG5cdGlmIChtYXgocHJldlRhbkRpZmYueCwgcHJldlRhbkRpZmYueSkgPCBNSU5fRElGRikge1xuXHRcdHN0YXJ0Sm9pbkRpcmVjdGlvbiA9IGN1cnJOb3JtYWw7XG5cdH1cblx0aWYgKG1heChuZXh0VGFuRGlmZi54LCBuZXh0VGFuRGlmZi55KSA8IE1JTl9ESUZGKSB7XG5cdFx0ZW5kSm9pbkRpcmVjdGlvbiA9IGN1cnJOb3JtYWw7XG5cdH1cblx0aWYgKGFDb29yZCA9PSBiQ29vcmQpIHtcblx0XHRlbmRKb2luRGlyZWN0aW9uID0gc3RhcnRKb2luRGlyZWN0aW9uO1xuXHRcdGN1cnJOb3JtYWwgPSBwcmV2Tm9ybWFsO1xuXHRcdGN1cnJUYW5nZW50ID0gcHJldlRhbmdlbnQ7XG5cdH1cblxuXHR0YW5nZW50ID0gY3VyclRhbmdlbnQ7XG5cblx0Ly9jYWxjdWxhdGUgam9pbiBzaGlmdHMgcmVsYXRpdmUgdG8gbm9ybWFsc1xuXHRmbG9hdCBzdGFydEpvaW5TaGlmdCA9IGRvdChjdXJyTm9ybWFsLCBzdGFydEpvaW5EaXJlY3Rpb24pO1xuXHRmbG9hdCBlbmRKb2luU2hpZnQgPSBkb3QoY3Vyck5vcm1hbCwgZW5kSm9pbkRpcmVjdGlvbik7XG5cblx0ZmxvYXQgc3RhcnRNaXRlclJhdGlvID0gYWJzKDEuIC8gc3RhcnRKb2luU2hpZnQpO1xuXHRmbG9hdCBlbmRNaXRlclJhdGlvID0gYWJzKDEuIC8gZW5kSm9pblNoaWZ0KTtcblxuXHR2ZWMyIHN0YXJ0Sm9pbiA9IHN0YXJ0Sm9pbkRpcmVjdGlvbiAqIHN0YXJ0TWl0ZXJSYXRpbztcblx0dmVjMiBlbmRKb2luID0gZW5kSm9pbkRpcmVjdGlvbiAqIGVuZE1pdGVyUmF0aW87XG5cblx0dmVjMiBzdGFydFRvcEpvaW4sIHN0YXJ0Qm90Sm9pbiwgZW5kVG9wSm9pbiwgZW5kQm90Sm9pbjtcblx0c3RhcnRUb3BKb2luID0gc2lnbihzdGFydEpvaW5TaGlmdCkgKiBzdGFydEpvaW4gKiAuNTtcblx0c3RhcnRCb3RKb2luID0gLXN0YXJ0VG9wSm9pbjtcblxuXHRlbmRUb3BKb2luID0gc2lnbihlbmRKb2luU2hpZnQpICogZW5kSm9pbiAqIC41O1xuXHRlbmRCb3RKb2luID0gLWVuZFRvcEpvaW47XG5cblx0dmVjMiBhVG9wQ29vcmQgPSBhQ29vcmQgKyBub3JtYWxXaWR0aCAqIHN0YXJ0VG9wSm9pbjtcblx0dmVjMiBiVG9wQ29vcmQgPSBiQ29vcmQgKyBub3JtYWxXaWR0aCAqIGVuZFRvcEpvaW47XG5cdHZlYzIgYUJvdENvb3JkID0gYUNvb3JkICsgbm9ybWFsV2lkdGggKiBzdGFydEJvdEpvaW47XG5cdHZlYzIgYkJvdENvb3JkID0gYkNvb3JkICsgbm9ybWFsV2lkdGggKiBlbmRCb3RKb2luO1xuXG5cdC8vbWl0ZXIgYW50aS1jbGlwcGluZ1xuXHRmbG9hdCBiYUNsaXBwaW5nID0gZGlzdFRvTGluZShiQ29vcmQsIGFDb29yZCwgYUJvdENvb3JkKSAvIGRvdChub3JtYWxpemUobm9ybWFsV2lkdGggKiBlbmRCb3RKb2luKSwgbm9ybWFsaXplKG5vcm1hbFdpZHRoLnl4ICogdmVjMigtc3RhcnRCb3RKb2luLnksIHN0YXJ0Qm90Sm9pbi54KSkpO1xuXHRmbG9hdCBhYkNsaXBwaW5nID0gZGlzdFRvTGluZShhQ29vcmQsIGJDb29yZCwgYlRvcENvb3JkKSAvIGRvdChub3JtYWxpemUobm9ybWFsV2lkdGggKiBzdGFydEJvdEpvaW4pLCBub3JtYWxpemUobm9ybWFsV2lkdGgueXggKiB2ZWMyKC1lbmRCb3RKb2luLnksIGVuZEJvdEpvaW4ueCkpKTtcblxuXHQvL3ByZXZlbnQgY2xvc2UgdG8gcmV2ZXJzZSBkaXJlY3Rpb24gc3dpdGNoXG5cdGJvb2wgcHJldlJldmVyc2UgPSBkb3QoY3VyclRhbmdlbnQsIHByZXZUYW5nZW50KSA8PSBSRVZFUlNFX1RIUkVTSE9MRCAmJiBhYnMoZG90KGN1cnJUYW5nZW50LCBwcmV2Tm9ybWFsKSkgKiBtaW4obGVuZ3RoKHByZXZEaWZmKSwgbGVuZ3RoKGN1cnJEaWZmKSkgPCAgbGVuZ3RoKG5vcm1hbFdpZHRoICogY3Vyck5vcm1hbCk7XG5cdGJvb2wgbmV4dFJldmVyc2UgPSBkb3QoY3VyclRhbmdlbnQsIG5leHRUYW5nZW50KSA8PSBSRVZFUlNFX1RIUkVTSE9MRCAmJiBhYnMoZG90KGN1cnJUYW5nZW50LCBuZXh0Tm9ybWFsKSkgKiBtaW4obGVuZ3RoKG5leHREaWZmKSwgbGVuZ3RoKGN1cnJEaWZmKSkgPCAgbGVuZ3RoKG5vcm1hbFdpZHRoICogY3Vyck5vcm1hbCk7XG5cblx0aWYgKHByZXZSZXZlcnNlKSB7XG5cdFx0Ly9tYWtlIGpvaW4gcmVjdGFuZ3VsYXJcblx0XHR2ZWMyIG1pdGVyU2hpZnQgPSBub3JtYWxXaWR0aCAqIHN0YXJ0Sm9pbkRpcmVjdGlvbiAqIG1pdGVyTGltaXQgKiAuNTtcblx0XHRmbG9hdCBub3JtYWxBZGp1c3QgPSAxLiAtIG1pbihtaXRlckxpbWl0IC8gc3RhcnRNaXRlclJhdGlvLCAxLik7XG5cdFx0YUJvdENvb3JkID0gYUNvb3JkICsgbWl0ZXJTaGlmdCAtIG5vcm1hbEFkanVzdCAqIG5vcm1hbFdpZHRoICogY3Vyck5vcm1hbCAqIC41O1xuXHRcdGFUb3BDb29yZCA9IGFDb29yZCArIG1pdGVyU2hpZnQgKyBub3JtYWxBZGp1c3QgKiBub3JtYWxXaWR0aCAqIGN1cnJOb3JtYWwgKiAuNTtcblx0fVxuXHRlbHNlIGlmICghbmV4dFJldmVyc2UgJiYgYmFDbGlwcGluZyA+IDAuICYmIGJhQ2xpcHBpbmcgPCBsZW5ndGgobm9ybWFsV2lkdGggKiBlbmRCb3RKb2luKSkge1xuXHRcdC8vaGFuZGxlIG1pdGVyIGNsaXBwaW5nXG5cdFx0YlRvcENvb3JkIC09IG5vcm1hbFdpZHRoICogZW5kVG9wSm9pbjtcblx0XHRiVG9wQ29vcmQgKz0gbm9ybWFsaXplKGVuZFRvcEpvaW4gKiBub3JtYWxXaWR0aCkgKiBiYUNsaXBwaW5nO1xuXHR9XG5cblx0aWYgKG5leHRSZXZlcnNlKSB7XG5cdFx0Ly9tYWtlIGpvaW4gcmVjdGFuZ3VsYXJcblx0XHR2ZWMyIG1pdGVyU2hpZnQgPSBub3JtYWxXaWR0aCAqIGVuZEpvaW5EaXJlY3Rpb24gKiBtaXRlckxpbWl0ICogLjU7XG5cdFx0ZmxvYXQgbm9ybWFsQWRqdXN0ID0gMS4gLSBtaW4obWl0ZXJMaW1pdCAvIGVuZE1pdGVyUmF0aW8sIDEuKTtcblx0XHRiQm90Q29vcmQgPSBiQ29vcmQgKyBtaXRlclNoaWZ0IC0gbm9ybWFsQWRqdXN0ICogbm9ybWFsV2lkdGggKiBjdXJyTm9ybWFsICogLjU7XG5cdFx0YlRvcENvb3JkID0gYkNvb3JkICsgbWl0ZXJTaGlmdCArIG5vcm1hbEFkanVzdCAqIG5vcm1hbFdpZHRoICogY3Vyck5vcm1hbCAqIC41O1xuXHR9XG5cdGVsc2UgaWYgKCFwcmV2UmV2ZXJzZSAmJiBhYkNsaXBwaW5nID4gMC4gJiYgYWJDbGlwcGluZyA8IGxlbmd0aChub3JtYWxXaWR0aCAqIHN0YXJ0Qm90Sm9pbikpIHtcblx0XHQvL2hhbmRsZSBtaXRlciBjbGlwcGluZ1xuXHRcdGFCb3RDb29yZCAtPSBub3JtYWxXaWR0aCAqIHN0YXJ0Qm90Sm9pbjtcblx0XHRhQm90Q29vcmQgKz0gbm9ybWFsaXplKHN0YXJ0Qm90Sm9pbiAqIG5vcm1hbFdpZHRoKSAqIGFiQ2xpcHBpbmc7XG5cdH1cblxuXHR2ZWMyIGFUb3BQb3NpdGlvbiA9IChhVG9wQ29vcmQpICogYWRqdXN0ZWRTY2FsZSArIHRyYW5zbGF0ZTtcblx0dmVjMiBhQm90UG9zaXRpb24gPSAoYUJvdENvb3JkKSAqIGFkanVzdGVkU2NhbGUgKyB0cmFuc2xhdGU7XG5cblx0dmVjMiBiVG9wUG9zaXRpb24gPSAoYlRvcENvb3JkKSAqIGFkanVzdGVkU2NhbGUgKyB0cmFuc2xhdGU7XG5cdHZlYzIgYkJvdFBvc2l0aW9uID0gKGJCb3RDb29yZCkgKiBhZGp1c3RlZFNjYWxlICsgdHJhbnNsYXRlO1xuXG5cdC8vcG9zaXRpb24gaXMgbm9ybWFsaXplZCAwLi4xIGNvb3JkIG9uIHRoZSBzY3JlZW5cblx0dmVjMiBwb3NpdGlvbiA9IChhVG9wUG9zaXRpb24gKiBsaW5lVG9wICsgYUJvdFBvc2l0aW9uICogbGluZUJvdCkgKiBsaW5lU3RhcnQgKyAoYlRvcFBvc2l0aW9uICogbGluZVRvcCArIGJCb3RQb3NpdGlvbiAqIGxpbmVCb3QpICogbGluZUVuZDtcblxuXHRzdGFydENvb3JkID0gYUNvb3JkICogc2NhbGVSYXRpbyArIHRyYW5zbGF0ZSAqIHZpZXdwb3J0Lnp3ICsgdmlld3BvcnQueHk7XG5cdGVuZENvb3JkID0gYkNvb3JkICogc2NhbGVSYXRpbyArIHRyYW5zbGF0ZSAqIHZpZXdwb3J0Lnp3ICsgdmlld3BvcnQueHk7XG5cblx0Z2xfUG9zaXRpb24gPSB2ZWM0KHBvc2l0aW9uICAqIDIuMCAtIDEuMCwgZGVwdGgsIDEpO1xuXG5cdGVuYWJsZVN0YXJ0TWl0ZXIgPSBzdGVwKGRvdChjdXJyVGFuZ2VudCwgcHJldlRhbmdlbnQpLCAuNSk7XG5cdGVuYWJsZUVuZE1pdGVyID0gc3RlcChkb3QoY3VyclRhbmdlbnQsIG5leHRUYW5nZW50KSwgLjUpO1xuXG5cdC8vYmV2ZWwgbWl0ZXIgY3V0b2Zmc1xuXHRpZiAobWl0ZXJNb2RlID09IDEuKSB7XG5cdFx0aWYgKGVuYWJsZVN0YXJ0TWl0ZXIgPT0gMS4pIHtcblx0XHRcdHZlYzIgc3RhcnRNaXRlcldpZHRoID0gdmVjMihzdGFydEpvaW5EaXJlY3Rpb24pICogdGhpY2tuZXNzICogbWl0ZXJMaW1pdCAqIC41O1xuXHRcdFx0c3RhcnRDdXRvZmYgPSB2ZWM0KGFDb29yZCwgYUNvb3JkKTtcblx0XHRcdHN0YXJ0Q3V0b2ZmLnp3ICs9IHZlYzIoLXN0YXJ0Sm9pbkRpcmVjdGlvbi55LCBzdGFydEpvaW5EaXJlY3Rpb24ueCkgLyBzY2FsZVJhdGlvO1xuXHRcdFx0c3RhcnRDdXRvZmYgPSBzdGFydEN1dG9mZiAqIHNjYWxlUmF0aW8ueHl4eSArIHRyYW5zbGF0ZS54eXh5ICogdmlld3BvcnQuend6dztcblx0XHRcdHN0YXJ0Q3V0b2ZmICs9IHZpZXdwb3J0Lnh5eHk7XG5cdFx0XHRzdGFydEN1dG9mZiArPSBzdGFydE1pdGVyV2lkdGgueHl4eTtcblx0XHR9XG5cblx0XHRpZiAoZW5hYmxlRW5kTWl0ZXIgPT0gMS4pIHtcblx0XHRcdHZlYzIgZW5kTWl0ZXJXaWR0aCA9IHZlYzIoZW5kSm9pbkRpcmVjdGlvbikgKiB0aGlja25lc3MgKiBtaXRlckxpbWl0ICogLjU7XG5cdFx0XHRlbmRDdXRvZmYgPSB2ZWM0KGJDb29yZCwgYkNvb3JkKTtcblx0XHRcdGVuZEN1dG9mZi56dyArPSB2ZWMyKC1lbmRKb2luRGlyZWN0aW9uLnksIGVuZEpvaW5EaXJlY3Rpb24ueCkgIC8gc2NhbGVSYXRpbztcblx0XHRcdGVuZEN1dG9mZiA9IGVuZEN1dG9mZiAqIHNjYWxlUmF0aW8ueHl4eSArIHRyYW5zbGF0ZS54eXh5ICogdmlld3BvcnQuend6dztcblx0XHRcdGVuZEN1dG9mZiArPSB2aWV3cG9ydC54eXh5O1xuXHRcdFx0ZW5kQ3V0b2ZmICs9IGVuZE1pdGVyV2lkdGgueHl4eTtcblx0XHR9XG5cdH1cblxuXHQvL3JvdW5kIG1pdGVyIGN1dG9mZnNcblx0ZWxzZSBpZiAobWl0ZXJNb2RlID09IDIuKSB7XG5cdFx0aWYgKGVuYWJsZVN0YXJ0TWl0ZXIgPT0gMS4pIHtcblx0XHRcdHZlYzIgc3RhcnRNaXRlcldpZHRoID0gdmVjMihzdGFydEpvaW5EaXJlY3Rpb24pICogdGhpY2tuZXNzICogYWJzKGRvdChzdGFydEpvaW5EaXJlY3Rpb24sIGN1cnJOb3JtYWwpKSAqIC41O1xuXHRcdFx0c3RhcnRDdXRvZmYgPSB2ZWM0KGFDb29yZCwgYUNvb3JkKTtcblx0XHRcdHN0YXJ0Q3V0b2ZmLnp3ICs9IHZlYzIoLXN0YXJ0Sm9pbkRpcmVjdGlvbi55LCBzdGFydEpvaW5EaXJlY3Rpb24ueCkgLyBzY2FsZVJhdGlvO1xuXHRcdFx0c3RhcnRDdXRvZmYgPSBzdGFydEN1dG9mZiAqIHNjYWxlUmF0aW8ueHl4eSArIHRyYW5zbGF0ZS54eXh5ICogdmlld3BvcnQuend6dztcblx0XHRcdHN0YXJ0Q3V0b2ZmICs9IHZpZXdwb3J0Lnh5eHk7XG5cdFx0XHRzdGFydEN1dG9mZiArPSBzdGFydE1pdGVyV2lkdGgueHl4eTtcblx0XHR9XG5cblx0XHRpZiAoZW5hYmxlRW5kTWl0ZXIgPT0gMS4pIHtcblx0XHRcdHZlYzIgZW5kTWl0ZXJXaWR0aCA9IHZlYzIoZW5kSm9pbkRpcmVjdGlvbikgKiB0aGlja25lc3MgKiBhYnMoZG90KGVuZEpvaW5EaXJlY3Rpb24sIGN1cnJOb3JtYWwpKSAqIC41O1xuXHRcdFx0ZW5kQ3V0b2ZmID0gdmVjNChiQ29vcmQsIGJDb29yZCk7XG5cdFx0XHRlbmRDdXRvZmYuencgKz0gdmVjMigtZW5kSm9pbkRpcmVjdGlvbi55LCBlbmRKb2luRGlyZWN0aW9uLngpICAvIHNjYWxlUmF0aW87XG5cdFx0XHRlbmRDdXRvZmYgPSBlbmRDdXRvZmYgKiBzY2FsZVJhdGlvLnh5eHkgKyB0cmFuc2xhdGUueHl4eSAqIHZpZXdwb3J0Lnp3enc7XG5cdFx0XHRlbmRDdXRvZmYgKz0gdmlld3BvcnQueHl4eTtcblx0XHRcdGVuZEN1dG9mZiArPSBlbmRNaXRlcldpZHRoLnh5eHk7XG5cdFx0fVxuXHR9XG59XG4iXSksZnJhZzpvKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxudW5pZm9ybSBmbG9hdCBkYXNoTGVuZ3RoLCBwaXhlbFJhdGlvLCB0aGlja25lc3MsIG9wYWNpdHksIGlkLCBtaXRlck1vZGU7XG51bmlmb3JtIHNhbXBsZXIyRCBkYXNoVGV4dHVyZTtcblxudmFyeWluZyB2ZWM0IGZyYWdDb2xvcjtcbnZhcnlpbmcgdmVjMiB0YW5nZW50O1xudmFyeWluZyB2ZWM0IHN0YXJ0Q3V0b2ZmLCBlbmRDdXRvZmY7XG52YXJ5aW5nIHZlYzIgc3RhcnRDb29yZCwgZW5kQ29vcmQ7XG52YXJ5aW5nIGZsb2F0IGVuYWJsZVN0YXJ0TWl0ZXIsIGVuYWJsZUVuZE1pdGVyO1xuXG5mbG9hdCBkaXN0VG9MaW5lKHZlYzIgcCwgdmVjMiBhLCB2ZWMyIGIpIHtcblx0dmVjMiBkaWZmID0gYiAtIGE7XG5cdHZlYzIgcGVycCA9IG5vcm1hbGl6ZSh2ZWMyKC1kaWZmLnksIGRpZmYueCkpO1xuXHRyZXR1cm4gZG90KHAgLSBhLCBwZXJwKTtcbn1cblxudm9pZCBtYWluKCkge1xuXHRmbG9hdCBhbHBoYSA9IDEuLCBkaXN0VG9TdGFydCwgZGlzdFRvRW5kO1xuXHRmbG9hdCBjdXRvZmYgPSB0aGlja25lc3MgKiAuNTtcblxuXHQvL2JldmVsIG1pdGVyXG5cdGlmIChtaXRlck1vZGUgPT0gMS4pIHtcblx0XHRpZiAoZW5hYmxlU3RhcnRNaXRlciA9PSAxLikge1xuXHRcdFx0ZGlzdFRvU3RhcnQgPSBkaXN0VG9MaW5lKGdsX0ZyYWdDb29yZC54eSwgc3RhcnRDdXRvZmYueHksIHN0YXJ0Q3V0b2ZmLnp3KTtcblx0XHRcdGlmIChkaXN0VG9TdGFydCA8IC0xLikge1xuXHRcdFx0XHRkaXNjYXJkO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRhbHBoYSAqPSBtaW4obWF4KGRpc3RUb1N0YXJ0ICsgMS4sIDAuKSwgMS4pO1xuXHRcdH1cblxuXHRcdGlmIChlbmFibGVFbmRNaXRlciA9PSAxLikge1xuXHRcdFx0ZGlzdFRvRW5kID0gZGlzdFRvTGluZShnbF9GcmFnQ29vcmQueHksIGVuZEN1dG9mZi54eSwgZW5kQ3V0b2ZmLnp3KTtcblx0XHRcdGlmIChkaXN0VG9FbmQgPCAtMS4pIHtcblx0XHRcdFx0ZGlzY2FyZDtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0YWxwaGEgKj0gbWluKG1heChkaXN0VG9FbmQgKyAxLiwgMC4pLCAxLik7XG5cdFx0fVxuXHR9XG5cblx0Ly8gcm91bmQgbWl0ZXJcblx0ZWxzZSBpZiAobWl0ZXJNb2RlID09IDIuKSB7XG5cdFx0aWYgKGVuYWJsZVN0YXJ0TWl0ZXIgPT0gMS4pIHtcblx0XHRcdGRpc3RUb1N0YXJ0ID0gZGlzdFRvTGluZShnbF9GcmFnQ29vcmQueHksIHN0YXJ0Q3V0b2ZmLnh5LCBzdGFydEN1dG9mZi56dyk7XG5cdFx0XHRpZiAoZGlzdFRvU3RhcnQgPCAwLikge1xuXHRcdFx0XHRmbG9hdCByYWRpdXMgPSBsZW5ndGgoZ2xfRnJhZ0Nvb3JkLnh5IC0gc3RhcnRDb29yZCk7XG5cblx0XHRcdFx0aWYocmFkaXVzID4gY3V0b2ZmICsgLjUpIHtcblx0XHRcdFx0XHRkaXNjYXJkO1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGFscGhhIC09IHNtb290aHN0ZXAoY3V0b2ZmIC0gLjUsIGN1dG9mZiArIC41LCByYWRpdXMpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmIChlbmFibGVFbmRNaXRlciA9PSAxLikge1xuXHRcdFx0ZGlzdFRvRW5kID0gZGlzdFRvTGluZShnbF9GcmFnQ29vcmQueHksIGVuZEN1dG9mZi54eSwgZW5kQ3V0b2ZmLnp3KTtcblx0XHRcdGlmIChkaXN0VG9FbmQgPCAwLikge1xuXHRcdFx0XHRmbG9hdCByYWRpdXMgPSBsZW5ndGgoZ2xfRnJhZ0Nvb3JkLnh5IC0gZW5kQ29vcmQpO1xuXG5cdFx0XHRcdGlmKHJhZGl1cyA+IGN1dG9mZiArIC41KSB7XG5cdFx0XHRcdFx0ZGlzY2FyZDtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRhbHBoYSAtPSBzbW9vdGhzdGVwKGN1dG9mZiAtIC41LCBjdXRvZmYgKyAuNSwgcmFkaXVzKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRmbG9hdCB0ID0gZnJhY3QoZG90KHRhbmdlbnQsIGdsX0ZyYWdDb29yZC54eSkgLyBkYXNoTGVuZ3RoKSAqIC41ICsgLjI1O1xuXHRmbG9hdCBkYXNoID0gdGV4dHVyZTJEKGRhc2hUZXh0dXJlLCB2ZWMyKHQsIC41KSkucjtcblxuXHRnbF9GcmFnQ29sb3IgPSBmcmFnQ29sb3I7XG5cdGdsX0ZyYWdDb2xvci5hICo9IGFscGhhICogb3BhY2l0eSAqIGRhc2g7XG59XG4iXSksYXR0cmlidXRlczp7bGluZUVuZDp7YnVmZmVyOnIsZGl2aXNvcjowLHN0cmlkZTo4LG9mZnNldDowfSxsaW5lVG9wOntidWZmZXI6cixkaXZpc29yOjAsc3RyaWRlOjgsb2Zmc2V0OjR9LGFDb2xvcjp7YnVmZmVyOnQucHJvcCgiY29sb3JCdWZmZXIiKSxzdHJpZGU6NCxvZmZzZXQ6MCxkaXZpc29yOjF9LGJDb2xvcjp7YnVmZmVyOnQucHJvcCgiY29sb3JCdWZmZXIiKSxzdHJpZGU6NCxvZmZzZXQ6NCxkaXZpc29yOjF9LHByZXZDb29yZDp7YnVmZmVyOnQucHJvcCgicG9zaXRpb25CdWZmZXIiKSxzdHJpZGU6OCxvZmZzZXQ6MCxkaXZpc29yOjF9LGFDb29yZDp7YnVmZmVyOnQucHJvcCgicG9zaXRpb25CdWZmZXIiKSxzdHJpZGU6OCxvZmZzZXQ6OCxkaXZpc29yOjF9LGJDb29yZDp7YnVmZmVyOnQucHJvcCgicG9zaXRpb25CdWZmZXIiKSxzdHJpZGU6OCxvZmZzZXQ6MTYsZGl2aXNvcjoxfSxuZXh0Q29vcmQ6e2J1ZmZlcjp0LnByb3AoInBvc2l0aW9uQnVmZmVyIiksc3RyaWRlOjgsb2Zmc2V0OjI0LGRpdmlzb3I6MX19fSxuKSl9Y2F0Y2godCl7ZT1pfXJldHVybntmaWxsOnQoe3ByaW1pdGl2ZToidHJpYW5nbGUiLGVsZW1lbnRzOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUudHJpYW5nbGVzfSxvZmZzZXQ6MCx2ZXJ0Om8oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5hdHRyaWJ1dGUgdmVjMiBwb3NpdGlvbiwgcG9zaXRpb25GcmFjdDtcblxudW5pZm9ybSB2ZWM0IGNvbG9yO1xudW5pZm9ybSB2ZWMyIHNjYWxlLCBzY2FsZUZyYWN0LCB0cmFuc2xhdGUsIHRyYW5zbGF0ZUZyYWN0O1xudW5pZm9ybSBmbG9hdCBwaXhlbFJhdGlvLCBpZDtcbnVuaWZvcm0gdmVjNCB2aWV3cG9ydDtcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcblxudmFyeWluZyB2ZWM0IGZyYWdDb2xvcjtcblxuY29uc3QgZmxvYXQgTUFYX0xJTkVTID0gMjU2Ljtcblxudm9pZCBtYWluKCkge1xuXHRmbG9hdCBkZXB0aCA9IChNQVhfTElORVMgLSA0LiAtIGlkKSAvIChNQVhfTElORVMpO1xuXG5cdHZlYzIgcG9zaXRpb24gPSBwb3NpdGlvbiAqIHNjYWxlICsgdHJhbnNsYXRlXG4gICAgICAgKyBwb3NpdGlvbkZyYWN0ICogc2NhbGUgKyB0cmFuc2xhdGVGcmFjdFxuICAgICAgICsgcG9zaXRpb24gKiBzY2FsZUZyYWN0XG4gICAgICAgKyBwb3NpdGlvbkZyYWN0ICogc2NhbGVGcmFjdDtcblxuXHRnbF9Qb3NpdGlvbiA9IHZlYzQocG9zaXRpb24gKiAyLjAgLSAxLjAsIGRlcHRoLCAxKTtcblxuXHRmcmFnQ29sb3IgPSBjb2xvciAvIDI1NS47XG5cdGZyYWdDb2xvci5hICo9IG9wYWNpdHk7XG59XG4iXSksZnJhZzpvKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxudmFyeWluZyB2ZWM0IGZyYWdDb2xvcjtcblxudm9pZCBtYWluKCkge1xuXHRnbF9GcmFnQ29sb3IgPSBmcmFnQ29sb3I7XG59XG4iXSksdW5pZm9ybXM6e3NjYWxlOnQucHJvcCgic2NhbGUiKSxjb2xvcjp0LnByb3AoImZpbGwiKSxzY2FsZUZyYWN0OnQucHJvcCgic2NhbGVGcmFjdCIpLHRyYW5zbGF0ZUZyYWN0OnQucHJvcCgidHJhbnNsYXRlRnJhY3QiKSx0cmFuc2xhdGU6dC5wcm9wKCJ0cmFuc2xhdGUiKSxvcGFjaXR5OnQucHJvcCgib3BhY2l0eSIpLHBpeGVsUmF0aW86dC5jb250ZXh0KCJwaXhlbFJhdGlvIiksaWQ6dC5wcm9wKCJpZCIpLHZpZXdwb3J0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuW2Uudmlld3BvcnQueCxlLnZpZXdwb3J0LnksdC52aWV3cG9ydFdpZHRoLHQudmlld3BvcnRIZWlnaHRdfX0sYXR0cmlidXRlczp7cG9zaXRpb246e2J1ZmZlcjp0LnByb3AoInBvc2l0aW9uQnVmZmVyIiksc3RyaWRlOjgsb2Zmc2V0Ojh9LHBvc2l0aW9uRnJhY3Q6e2J1ZmZlcjp0LnByb3AoInBvc2l0aW9uRnJhY3RCdWZmZXIiKSxzdHJpZGU6OCxvZmZzZXQ6OH19LGJsZW5kOm4uYmxlbmQsZGVwdGg6e2VuYWJsZTohMX0sc2Npc3NvcjpuLnNjaXNzb3Isc3RlbmNpbDpuLnN0ZW5jaWwsdmlld3BvcnQ6bi52aWV3cG9ydH0pLHJlY3Q6aSxtaXRlcjplfX0sdi5kZWZhdWx0cz17ZGFzaGVzOm51bGwsam9pbjoibWl0ZXIiLG1pdGVyTGltaXQ6MSx0aGlja25lc3M6MTAsY2FwOiJzcXVhcmUiLGNvbG9yOiJibGFjayIsb3BhY2l0eToxLG92ZXJsYXk6ITEsdmlld3BvcnQ6bnVsbCxyYW5nZTpudWxsLGNsb3NlOiExLGZpbGw6bnVsbH0sdi5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9W10scj1hcmd1bWVudHMubGVuZ3RoO3ItLTspZVtyXT1hcmd1bWVudHNbcl07ZS5sZW5ndGgmJih0PXRoaXMpLnVwZGF0ZS5hcHBseSh0LGUpLHRoaXMuZHJhdygpfSx2LnByb3RvdHlwZS5kcmF3PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMsZT1bXSxyPWFyZ3VtZW50cy5sZW5ndGg7ci0tOyllW3JdPWFyZ3VtZW50c1tyXTtyZXR1cm4oZS5sZW5ndGg/ZTp0aGlzLnBhc3NlcykuZm9yRWFjaCgoZnVuY3Rpb24oZSxyKXt2YXIgbjtpZihlJiZBcnJheS5pc0FycmF5KGUpKXJldHVybihuPXQpLmRyYXcuYXBwbHkobixlKTsibnVtYmVyIj09dHlwZW9mIGUmJihlPXQucGFzc2VzW2VdKSxlJiZlLmNvdW50PjEmJmUub3BhY2l0eSYmKHQucmVnbC5fcmVmcmVzaCgpLGUuZmlsbCYmZS50cmlhbmdsZXMmJmUudHJpYW5nbGVzLmxlbmd0aD4yJiZ0LnNoYWRlcnMuZmlsbChlKSxlLnRoaWNrbmVzcyYmKGUuc2NhbGVbMF0qZS52aWV3cG9ydC53aWR0aD52LnByZWNpc2lvblRocmVzaG9sZHx8ZS5zY2FsZVsxXSplLnZpZXdwb3J0LmhlaWdodD52LnByZWNpc2lvblRocmVzaG9sZHx8InJlY3QiPT09ZS5qb2lufHwhZS5qb2luJiYoZS50aGlja25lc3M8PTJ8fGUuY291bnQ+PXYubWF4UG9pbnRzKT90LnNoYWRlcnMucmVjdChlKTp0LnNoYWRlcnMubWl0ZXIoZSkpKX0pKSx0aGlzfSx2LnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZih0KXtudWxsIT10Lmxlbmd0aD8ibnVtYmVyIj09dHlwZW9mIHRbMF0mJih0PVt7cG9zaXRpb25zOnR9XSk6QXJyYXkuaXNBcnJheSh0KXx8KHQ9W3RdKTt2YXIgcj10aGlzLnJlZ2wsbz10aGlzLmdsO2lmKHQuZm9yRWFjaCgoZnVuY3Rpb24odCxmKXt2YXIgZD1lLnBhc3Nlc1tmXTtpZih2b2lkIDAhPT10KWlmKG51bGwhPT10KXtpZigibnVtYmVyIj09dHlwZW9mIHRbMF0mJih0PXtwb3NpdGlvbnM6dH0pLHQ9cyh0LHtwb3NpdGlvbnM6InBvc2l0aW9ucyBwb2ludHMgZGF0YSBjb29yZHMiLHRoaWNrbmVzczoidGhpY2tuZXNzIGxpbmVXaWR0aCBsaW5lV2lkdGhzIGxpbmUtd2lkdGggbGluZXdpZHRoIHdpZHRoIHN0cm9rZS13aWR0aCBzdHJva2V3aWR0aCBzdHJva2VXaWR0aCIsam9pbjoibGluZUpvaW4gbGluZWpvaW4gam9pbiB0eXBlIG1vZGUiLG1pdGVyTGltaXQ6Im1pdGVybGltaXQgbWl0ZXJMaW1pdCIsZGFzaGVzOiJkYXNoIGRhc2hlcyBkYXNoYXJyYXkgZGFzaC1hcnJheSBkYXNoQXJyYXkiLGNvbG9yOiJjb2xvciBjb2xvdXIgc3Ryb2tlIGNvbG9ycyBjb2xvdXJzIHN0cm9rZS1jb2xvciBzdHJva2VDb2xvciIsZmlsbDoiZmlsbCBmaWxsLWNvbG9yIGZpbGxDb2xvciIsb3BhY2l0eToiYWxwaGEgb3BhY2l0eSIsb3ZlcmxheToib3ZlcmxheSBjcmVhc2Ugb3ZlcmxhcCBpbnRlcnNlY3QiLGNsb3NlOiJjbG9zZWQgY2xvc2UgY2xvc2VkLXBhdGggY2xvc2VQYXRoIixyYW5nZToicmFuZ2UgZGF0YUJveCIsdmlld3BvcnQ6InZpZXdwb3J0IHZpZXdCb3giLGhvbGU6ImhvbGVzIGhvbGUgaG9sbG93IixzcGxpdE51bGw6InNwbGl0TnVsbCJ9KSxkfHwoZS5wYXNzZXNbZl09ZD17aWQ6ZixzY2FsZTpudWxsLHNjYWxlRnJhY3Q6bnVsbCx0cmFuc2xhdGU6bnVsbCx0cmFuc2xhdGVGcmFjdDpudWxsLGNvdW50OjAsaG9sZTpbXSxkZXB0aDowLGRhc2hMZW5ndGg6MSxkYXNoVGV4dHVyZTpyLnRleHR1cmUoe2NoYW5uZWxzOjEsZGF0YTpuZXcgVWludDhBcnJheShbMjU1XSksd2lkdGg6MSxoZWlnaHQ6MSxtYWc6ImxpbmVhciIsbWluOiJsaW5lYXIifSksY29sb3JCdWZmZXI6ci5idWZmZXIoe3VzYWdlOiJkeW5hbWljIix0eXBlOiJ1aW50OCIsZGF0YTpuZXcgVWludDhBcnJheX0pLHBvc2l0aW9uQnVmZmVyOnIuYnVmZmVyKHt1c2FnZToiZHluYW1pYyIsdHlwZToiZmxvYXQiLGRhdGE6bmV3IFVpbnQ4QXJyYXl9KSxwb3NpdGlvbkZyYWN0QnVmZmVyOnIuYnVmZmVyKHt1c2FnZToiZHluYW1pYyIsdHlwZToiZmxvYXQiLGRhdGE6bmV3IFVpbnQ4QXJyYXl9KX0sdD1hKHt9LHYuZGVmYXVsdHMsdCkpLG51bGwhPXQudGhpY2tuZXNzJiYoZC50aGlja25lc3M9cGFyc2VGbG9hdCh0LnRoaWNrbmVzcykpLG51bGwhPXQub3BhY2l0eSYmKGQub3BhY2l0eT1wYXJzZUZsb2F0KHQub3BhY2l0eSkpLG51bGwhPXQubWl0ZXJMaW1pdCYmKGQubWl0ZXJMaW1pdD1wYXJzZUZsb2F0KHQubWl0ZXJMaW1pdCkpLG51bGwhPXQub3ZlcmxheSYmKGQub3ZlcmxheT0hIXQub3ZlcmxheSxmPHYubWF4TGluZXMmJihkLmRlcHRoPTIqKHYubWF4TGluZXMtMS1mJXYubWF4TGluZXMpL3YubWF4TGluZXMtMSkpLG51bGwhPXQuam9pbiYmKGQuam9pbj10LmpvaW4pLG51bGwhPXQuaG9sZSYmKGQuaG9sZT10LmhvbGUpLG51bGwhPXQuZmlsbCYmKGQuZmlsbD10LmZpbGw/bih0LmZpbGwsInVpbnQ4Iik6bnVsbCksbnVsbCE9dC52aWV3cG9ydCYmKGQudmlld3BvcnQ9bSh0LnZpZXdwb3J0KSksZC52aWV3cG9ydHx8KGQudmlld3BvcnQ9bShbby5kcmF3aW5nQnVmZmVyV2lkdGgsby5kcmF3aW5nQnVmZmVySGVpZ2h0XSkpLG51bGwhPXQuY2xvc2UmJihkLmNsb3NlPXQuY2xvc2UpLG51bGw9PT10LnBvc2l0aW9ucyYmKHQucG9zaXRpb25zPVtdKSx0LnBvc2l0aW9ucyl7dmFyIHkseDtpZih0LnBvc2l0aW9ucy54JiZ0LnBvc2l0aW9ucy55KXt2YXIgYj10LnBvc2l0aW9ucy54LF89dC5wb3NpdGlvbnMueTt4PWQuY291bnQ9TWF0aC5tYXgoYi5sZW5ndGgsXy5sZW5ndGgpLHk9bmV3IEZsb2F0NjRBcnJheSgyKngpO2Zvcih2YXIgdz0wO3c8eDt3KyspeVsyKnddPWJbd10seVsyKncrMV09X1t3XX1lbHNlIHk9bCh0LnBvc2l0aW9ucywiZmxvYXQ2NCIpLHg9ZC5jb3VudD1NYXRoLmZsb29yKHkubGVuZ3RoLzIpO3ZhciBUPWQuYm91bmRzPWkoeSwyKTtpZihkLmZpbGwpe2Zvcih2YXIgaz1bXSxBPXt9LE09MCxTPTAsRT0wLEw9ZC5jb3VudDtTPEw7UysrKXt2YXIgQz15WzIqU10sUD15WzIqUysxXTtpc05hTihDKXx8aXNOYU4oUCl8fG51bGw9PUN8fG51bGw9PVA/KEM9eVsyKk1dLFA9eVsyKk0rMV0sQVtTXT1NKTpNPVMsa1tFKytdPUMsa1tFKytdPVB9aWYodC5zcGxpdE51bGwpe2QuY291bnQtMSBpbiBBfHwoQVtkLmNvdW50XT1kLmNvdW50LTEpO3ZhciBJPU9iamVjdC5rZXlzKEEpLm1hcChOdW1iZXIpLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQtZX0pKSxPPVtdLHo9MCxEPW51bGwhPWQuaG9sZT9kLmhvbGVbMF06bnVsbDtpZihudWxsIT1EKXt2YXIgUj1nKEksKGZ1bmN0aW9uKHQpe3JldHVybiB0Pj1EfSkpOyhJPUkuc2xpY2UoMCxSKSkucHVzaChEKX1mb3IodmFyIEY9ZnVuY3Rpb24odCl7dmFyIGU9ay5zbGljZSgyKnosMipJW3RdKS5jb25jYXQoRD9rLnNsaWNlKDIqRCk6W10pLHI9KGQuaG9sZXx8W10pLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUtRCsoSVt0XS16KX0pKSxuPWMoZSxyKTtuPW4ubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gZSt6KyhlK3o8SVt0XT8wOkQtSVt0XSl9KSksTy5wdXNoLmFwcGx5KE8sbiksej1JW3RdKzF9LEI9MDtCPEkubGVuZ3RoO0IrKylGKEIpO2Zvcih2YXIgTj0wLGo9Ty5sZW5ndGg7TjxqO04rKyludWxsIT1BW09bTl1dJiYoT1tOXT1BW09bTl1dKTtkLnRyaWFuZ2xlcz1PfWVsc2V7Zm9yKHZhciBVPWMoayxkLmhvbGV8fFtdKSxWPTAsSD1VLmxlbmd0aDtWPEg7VisrKW51bGwhPUFbVVtWXV0mJihVW1ZdPUFbVVtWXV0pO2QudHJpYW5nbGVzPVV9fXZhciBxPW5ldyBGbG9hdDY0QXJyYXkoeSk7dShxLDIsVCk7dmFyIEc9bmV3IEZsb2F0NjRBcnJheSgyKngrNik7ZC5jbG9zZT95WzBdPT09eVsyKngtMl0mJnlbMV09PT15WzIqeC0xXT8oR1swXT1xWzIqeC00XSxHWzFdPXFbMip4LTNdKTooR1swXT1xWzIqeC0yXSxHWzFdPXFbMip4LTFdKTooR1swXT1xWzBdLEdbMV09cVsxXSksRy5zZXQocSwyKSxkLmNsb3NlP3lbMF09PT15WzIqeC0yXSYmeVsxXT09PXlbMip4LTFdPyhHWzIqeCsyXT1xWzJdLEdbMip4KzNdPXFbM10sZC5jb3VudC09MSk6KEdbMip4KzJdPXFbMF0sR1syKngrM109cVsxXSxHWzIqeCs0XT1xWzJdLEdbMip4KzVdPXFbM10pOihHWzIqeCsyXT1xWzIqeC0yXSxHWzIqeCszXT1xWzIqeC0xXSxHWzIqeCs0XT1xWzIqeC0yXSxHWzIqeCs1XT1xWzIqeC0xXSk7dmFyIFk9aChHKTtkLnBvc2l0aW9uQnVmZmVyKFkpO3ZhciBXPXAoRyxZKTtkLnBvc2l0aW9uRnJhY3RCdWZmZXIoVyl9aWYodC5yYW5nZT9kLnJhbmdlPXQucmFuZ2U6ZC5yYW5nZXx8KGQucmFuZ2U9ZC5ib3VuZHMpLCh0LnJhbmdlfHx0LnBvc2l0aW9ucykmJmQuY291bnQpe3ZhciBYPWQuYm91bmRzLFo9WFsyXS1YWzBdLEo9WFszXS1YWzFdLEs9ZC5yYW5nZVsyXS1kLnJhbmdlWzBdLFE9ZC5yYW5nZVszXS1kLnJhbmdlWzFdO2Quc2NhbGU9W1ovSyxKL1FdLGQudHJhbnNsYXRlPVstZC5yYW5nZVswXS9LK1hbMF0vS3x8MCwtZC5yYW5nZVsxXS9RK1hbMV0vUXx8MF0sZC5zY2FsZUZyYWN0PXAoZC5zY2FsZSksZC50cmFuc2xhdGVGcmFjdD1wKGQudHJhbnNsYXRlKX1pZih0LmRhc2hlcyl7dmFyICQsdHQ9MDtpZighdC5kYXNoZXN8fHQuZGFzaGVzLmxlbmd0aDwyKXR0PTEsJD1uZXcgVWludDhBcnJheShbMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NV0pO2Vsc2V7dHQ9MDtmb3IodmFyIGV0PTA7ZXQ8dC5kYXNoZXMubGVuZ3RoOysrZXQpdHQrPXQuZGFzaGVzW2V0XTskPW5ldyBVaW50OEFycmF5KHR0KnYuZGFzaE11bHQpO2Zvcih2YXIgcnQ9MCxudD0yNTUsaXQ9MDtpdDwyO2l0KyspZm9yKHZhciBhdD0wO2F0PHQuZGFzaGVzLmxlbmd0aDsrK2F0KXtmb3IodmFyIG90PTAsc3Q9dC5kYXNoZXNbYXRdKnYuZGFzaE11bHQqLjU7b3Q8c3Q7KytvdCkkW3J0KytdPW50O250Xj0yNTV9fWQuZGFzaExlbmd0aD10dCxkLmRhc2hUZXh0dXJlKHtjaGFubmVsczoxLGRhdGE6JCx3aWR0aDokLmxlbmd0aCxoZWlnaHQ6MSxtYWc6ImxpbmVhciIsbWluOiJsaW5lYXIifSwwLDApfWlmKHQuY29sb3Ipe3ZhciBsdD1kLmNvdW50LGN0PXQuY29sb3I7Y3R8fChjdD0idHJhbnNwYXJlbnQiKTt2YXIgdXQ9bmV3IFVpbnQ4QXJyYXkoNCpsdCs0KTtpZihBcnJheS5pc0FycmF5KGN0KSYmIm51bWJlciIhPXR5cGVvZiBjdFswXSl7Zm9yKHZhciBmdD0wO2Z0PGx0O2Z0Kyspe3ZhciBodD1uKGN0W2Z0XSwidWludDgiKTt1dC5zZXQoaHQsNCpmdCl9dXQuc2V0KG4oY3RbMF0sInVpbnQ4IiksNCpsdCl9ZWxzZSBmb3IodmFyIHB0PW4oY3QsInVpbnQ4IiksZHQ9MDtkdDxsdCsxO2R0KyspdXQuc2V0KHB0LDQqZHQpO2QuY29sb3JCdWZmZXIoe3VzYWdlOiJkeW5hbWljIix0eXBlOiJ1aW50OCIsZGF0YTp1dH0pfX1lbHNlIGUucGFzc2VzW2ZdPW51bGx9KSksdC5sZW5ndGg8dGhpcy5wYXNzZXMubGVuZ3RoKXtmb3IodmFyIGY9dC5sZW5ndGg7Zjx0aGlzLnBhc3Nlcy5sZW5ndGg7ZisrKXt2YXIgZD10aGlzLnBhc3Nlc1tmXTtkJiYoZC5jb2xvckJ1ZmZlci5kZXN0cm95KCksZC5wb3NpdGlvbkJ1ZmZlci5kZXN0cm95KCksZC5kYXNoVGV4dHVyZS5kZXN0cm95KCkpfXRoaXMucGFzc2VzLmxlbmd0aD10Lmxlbmd0aH1mb3IodmFyIHk9W10seD0wO3g8dGhpcy5wYXNzZXMubGVuZ3RoO3grKyludWxsIT09dGhpcy5wYXNzZXNbeF0mJnkucHVzaCh0aGlzLnBhc3Nlc1t4XSk7cmV0dXJuIHRoaXMucGFzc2VzPXksdGhpc319LHYucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXNzZXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5jb2xvckJ1ZmZlci5kZXN0cm95KCksdC5wb3NpdGlvbkJ1ZmZlci5kZXN0cm95KCksdC5kYXNoVGV4dHVyZS5kZXN0cm95KCl9KSksdGhpcy5wYXNzZXMubGVuZ3RoPTAsdGhpc319LHsiYXJyYXktYm91bmRzIjo3MSwiYXJyYXktZmluZC1pbmRleCI6NzIsImFycmF5LW5vcm1hbGl6ZSI6NzMsImNvbG9yLW5vcm1hbGl6ZSI6ODksZWFyY3V0OjEyOSwiZXM2LXdlYWstbWFwIjoxODMsImZsYXR0ZW4tdmVydGV4LWRhdGEiOjE5MSxnbHNsaWZ5OjIyNywib2JqZWN0LWFzc2lnbiI6MjQ3LCJwYXJzZS1yZWN0IjoyNDksInBpY2stYnktYWxpYXMiOjI1MywidG8tZmxvYXQzMiI6MzE0fV0sMjgyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXtyZXR1cm4gZnVuY3Rpb24odCl7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gdH0odCl8fGZ1bmN0aW9uKHQsZSl7dmFyIHI9bnVsbD09dD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZ0W1N5bWJvbC5pdGVyYXRvcl18fHRbIkBAaXRlcmF0b3IiXTtpZihudWxsPT1yKXJldHVybjt2YXIgbixpLGE9W10sbz0hMCxzPSExO3RyeXtmb3Iocj1yLmNhbGwodCk7IShvPShuPXIubmV4dCgpKS5kb25lKSYmKGEucHVzaChuLnZhbHVlKSwhZXx8YS5sZW5ndGghPT1lKTtvPSEwKTt9Y2F0Y2godCl7cz0hMCxpPXR9ZmluYWxseXt0cnl7b3x8bnVsbD09ci5yZXR1cm58fHIucmV0dXJuKCl9ZmluYWxseXtpZihzKXRocm93IGl9fXJldHVybiBhfSh0LGUpfHxhKHQsZSl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBpKHQpe3JldHVybiBmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiBvKHQpfSh0KXx8ZnVuY3Rpb24odCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPXRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9dFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKHQpfSh0KXx8YSh0KXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBhKHQsZSl7aWYodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiBvKHQsZSk7dmFyIHI9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpLnNsaWNlKDgsLTEpO3JldHVybiJPYmplY3QiPT09ciYmdC5jb25zdHJ1Y3RvciYmKHI9dC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PXJ8fCJTZXQiPT09cj9BcnJheS5mcm9tKHQpOiJBcmd1bWVudHMiPT09cnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qocik/byh0LGUpOnZvaWQgMH19ZnVuY3Rpb24gbyh0LGUpeyhudWxsPT1lfHxlPnQubGVuZ3RoKSYmKGU9dC5sZW5ndGgpO2Zvcih2YXIgcj0wLG49bmV3IEFycmF5KGUpO3I8ZTtyKyspbltyXT10W3JdO3JldHVybiBufXZhciBzPXQoImNvbG9yLW5vcm1hbGl6ZSIpLGw9dCgiYXJyYXktYm91bmRzIiksYz10KCJjb2xvci1pZCIpLHU9dCgiQHBsb3RseS9wb2ludC1jbHVzdGVyIiksZj10KCJvYmplY3QtYXNzaWduIiksaD10KCJnbHNsaWZ5IikscD10KCJwaWNrLWJ5LWFsaWFzIiksZD10KCJ1cGRhdGUtZGlmZiIpLG09dCgiZmxhdHRlbi12ZXJ0ZXgtZGF0YSIpLGc9dCgiaXMtaWV4cGxvcmVyIiksdj10KCJ0by1mbG9hdDMyIikseT10KCJwYXJzZS1yZWN0IikseD1iO2Z1bmN0aW9uIGIodCxlKXt2YXIgcj10aGlzO2lmKCEodGhpcyBpbnN0YW5jZW9mIGIpKXJldHVybiBuZXcgYih0LGUpOyJmdW5jdGlvbiI9PXR5cGVvZiB0PyhlfHwoZT17fSksZS5yZWdsPXQpOihlPXQsdD1udWxsKSxlJiZlLmxlbmd0aCYmKGUucG9zaXRpb25zPWUpO3ZhciBuLGk9KHQ9ZS5yZWdsKS5fZ2wsYT1bXTt0aGlzLnRvb01hbnlDb2xvcnM9ZyxuPXQudGV4dHVyZSh7ZGF0YTpuZXcgVWludDhBcnJheSgxMDIwKSx3aWR0aDoyNTUsaGVpZ2h0OjEsdHlwZToidWludDgiLGZvcm1hdDoicmdiYSIsd3JhcFM6ImNsYW1wIix3cmFwVDoiY2xhbXAiLG1hZzoibmVhcmVzdCIsbWluOiJuZWFyZXN0In0pLGYodGhpcyx7cmVnbDp0LGdsOmksZ3JvdXBzOltdLG1hcmtlckNhY2hlOltudWxsXSxtYXJrZXJUZXh0dXJlczpbbnVsbF0scGFsZXR0ZTphLHBhbGV0dGVJZHM6e30scGFsZXR0ZVRleHR1cmU6bixtYXhDb2xvcnM6MjU1LG1heFNpemU6MTAwLGNhbnZhczppLmNhbnZhc30pLHRoaXMudXBkYXRlKGUpO3ZhciBvPXt1bmlmb3Jtczp7Y29uc3RQb2ludFNpemU6ISFlLmNvbnN0UG9pbnRTaXplLG9wYWNpdHk6dC5wcm9wKCJvcGFjaXR5IikscGFsZXR0ZVNpemU6ZnVuY3Rpb24odCxlKXtyZXR1cm5bci50b29NYW55Q29sb3JzPzA6MjU1LG4uaGVpZ2h0XX0scGl4ZWxSYXRpbzp0LmNvbnRleHQoInBpeGVsUmF0aW8iKSxzY2FsZTp0LnByb3AoInNjYWxlIiksc2NhbGVGcmFjdDp0LnByb3AoInNjYWxlRnJhY3QiKSx0cmFuc2xhdGU6dC5wcm9wKCJ0cmFuc2xhdGUiKSx0cmFuc2xhdGVGcmFjdDp0LnByb3AoInRyYW5zbGF0ZUZyYWN0IiksbWFya2VyVGV4dHVyZTp0LnByb3AoIm1hcmtlclRleHR1cmUiKSxwYWxldHRlVGV4dHVyZTpufSxhdHRyaWJ1dGVzOnt4OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUueEF0dHJ8fHtidWZmZXI6ZS5wb3NpdGlvbkJ1ZmZlcixzdHJpZGU6OCxvZmZzZXQ6MH19LHk6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS55QXR0cnx8e2J1ZmZlcjplLnBvc2l0aW9uQnVmZmVyLHN0cmlkZTo4LG9mZnNldDo0fX0seEZyYWN0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUueEF0dHI/e2NvbnN0YW50OlswLDBdfTp7YnVmZmVyOmUucG9zaXRpb25GcmFjdEJ1ZmZlcixzdHJpZGU6OCxvZmZzZXQ6MH19LHlGcmFjdDpmdW5jdGlvbih0LGUpe3JldHVybiBlLnlBdHRyP3tjb25zdGFudDpbMCwwXX06e2J1ZmZlcjplLnBvc2l0aW9uRnJhY3RCdWZmZXIsc3RyaWRlOjgsb2Zmc2V0OjR9fSxzaXplOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuc2l6ZS5sZW5ndGg/e2J1ZmZlcjplLnNpemVCdWZmZXIsc3RyaWRlOjIsb2Zmc2V0OjB9Ontjb25zdGFudDpbTWF0aC5yb3VuZCgyNTUqZS5zaXplL3IubWF4U2l6ZSldfX0sYm9yZGVyU2l6ZTpmdW5jdGlvbih0LGUpe3JldHVybiBlLmJvcmRlclNpemUubGVuZ3RoP3tidWZmZXI6ZS5zaXplQnVmZmVyLHN0cmlkZToyLG9mZnNldDoxfTp7Y29uc3RhbnQ6W01hdGgucm91bmQoMjU1KmUuYm9yZGVyU2l6ZS9yLm1heFNpemUpXX19LGNvbG9ySWQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5jb2xvci5sZW5ndGg/e2J1ZmZlcjplLmNvbG9yQnVmZmVyLHN0cmlkZTpyLnRvb01hbnlDb2xvcnM/ODo0LG9mZnNldDowfTp7Y29uc3RhbnQ6ci50b29NYW55Q29sb3JzP2Euc2xpY2UoNCplLmNvbG9yLDQqZS5jb2xvcis0KTpbZS5jb2xvcl19fSxib3JkZXJDb2xvcklkOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuYm9yZGVyQ29sb3IubGVuZ3RoP3tidWZmZXI6ZS5jb2xvckJ1ZmZlcixzdHJpZGU6ci50b29NYW55Q29sb3JzPzg6NCxvZmZzZXQ6ci50b29NYW55Q29sb3JzPzQ6Mn06e2NvbnN0YW50OnIudG9vTWFueUNvbG9ycz9hLnNsaWNlKDQqZS5ib3JkZXJDb2xvciw0KmUuYm9yZGVyQ29sb3IrNCk6W2UuYm9yZGVyQ29sb3JdfX0saXNBY3RpdmU6ZnVuY3Rpb24odCxlKXtyZXR1cm4hMD09PWUuYWN0aXZhdGlvbj97Y29uc3RhbnQ6WzFdfTplLmFjdGl2YXRpb24/ZS5hY3RpdmF0aW9uOntjb25zdGFudDpbMF19fX0sYmxlbmQ6e2VuYWJsZTohMCxjb2xvcjpbMCwwLDAsMV0sZnVuYzp7c3JjUkdCOiJzcmMgYWxwaGEiLGRzdFJHQjoib25lIG1pbnVzIHNyYyBhbHBoYSIsc3JjQWxwaGE6Im9uZSBtaW51cyBkc3QgYWxwaGEiLGRzdEFscGhhOiJvbmUifX0sc2Npc3Nvcjp7ZW5hYmxlOiEwLGJveDp0LnByb3AoInZpZXdwb3J0Iil9LHZpZXdwb3J0OnQucHJvcCgidmlld3BvcnQiKSxzdGVuY2lsOntlbmFibGU6ITF9LGRlcHRoOntlbmFibGU6ITF9LGVsZW1lbnRzOnQucHJvcCgiZWxlbWVudHMiKSxjb3VudDp0LnByb3AoImNvdW50Iiksb2Zmc2V0OnQucHJvcCgib2Zmc2V0IikscHJpbWl0aXZlOiJwb2ludHMifSxzPWYoe30sbyk7cy5mcmFnPWgoWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG51bmlmb3JtIHNhbXBsZXIyRCBtYXJrZXJUZXh0dXJlO1xuXG52YXJ5aW5nIHZlYzQgZnJhZ0NvbG9yLCBmcmFnQm9yZGVyQ29sb3I7XG52YXJ5aW5nIGZsb2F0IGZyYWdXaWR0aCwgZnJhZ0JvcmRlckNvbG9yTGV2ZWwsIGZyYWdDb2xvckxldmVsO1xuXG5mbG9hdCBzbW9vdGhTdGVwKGZsb2F0IHgsIGZsb2F0IHkpIHtcbiAgcmV0dXJuIDEuMCAvICgxLjAgKyBleHAoNTAuMCooeCAtIHkpKSk7XG59XG5cbnZvaWQgbWFpbigpIHtcbiAgZmxvYXQgZGlzdCA9IHRleHR1cmUyRChtYXJrZXJUZXh0dXJlLCBnbF9Qb2ludENvb3JkKS5yLCBkZWx0YSA9IGZyYWdXaWR0aDtcblxuICAvLyBtYXgtZGlzdGFuY2UgYWxwaGFcbiAgaWYgKGRpc3QgPCAwLjAwMykgZGlzY2FyZDtcblxuICAvLyBudWxsLWJvcmRlciBjYXNlXG4gIGlmIChmcmFnQm9yZGVyQ29sb3JMZXZlbCA9PSBmcmFnQ29sb3JMZXZlbCB8fCBmcmFnQm9yZGVyQ29sb3IuYSA9PSAwLikge1xuICAgIGZsb2F0IGNvbG9yQW10ID0gc21vb3Roc3RlcCguNSAtIGRlbHRhLCAuNSArIGRlbHRhLCBkaXN0KTtcbiAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KGZyYWdDb2xvci5yZ2IsIGNvbG9yQW10ICogZnJhZ0NvbG9yLmEgKiBvcGFjaXR5KTtcbiAgfVxuICBlbHNlIHtcbiAgICBmbG9hdCBib3JkZXJDb2xvckFtdCA9IHNtb290aHN0ZXAoZnJhZ0JvcmRlckNvbG9yTGV2ZWwgLSBkZWx0YSwgZnJhZ0JvcmRlckNvbG9yTGV2ZWwgKyBkZWx0YSwgZGlzdCk7XG4gICAgZmxvYXQgY29sb3JBbXQgPSBzbW9vdGhzdGVwKGZyYWdDb2xvckxldmVsIC0gZGVsdGEsIGZyYWdDb2xvckxldmVsICsgZGVsdGEsIGRpc3QpO1xuXG4gICAgdmVjNCBjb2xvciA9IGZyYWdCb3JkZXJDb2xvcjtcbiAgICBjb2xvci5hICo9IGJvcmRlckNvbG9yQW10O1xuICAgIGNvbG9yID0gbWl4KGNvbG9yLCBmcmFnQ29sb3IsIGNvbG9yQW10KTtcbiAgICBjb2xvci5hICo9IG9wYWNpdHk7XG5cbiAgICBnbF9GcmFnQ29sb3IgPSBjb2xvcjtcbiAgfVxuXG59XG4iXSkscy52ZXJ0PWgoWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5hdHRyaWJ1dGUgZmxvYXQgeCwgeSwgeEZyYWN0LCB5RnJhY3Q7XG5hdHRyaWJ1dGUgZmxvYXQgc2l6ZSwgYm9yZGVyU2l6ZTtcbmF0dHJpYnV0ZSB2ZWM0IGNvbG9ySWQsIGJvcmRlckNvbG9ySWQ7XG5hdHRyaWJ1dGUgZmxvYXQgaXNBY3RpdmU7XG5cbnVuaWZvcm0gYm9vbCBjb25zdFBvaW50U2l6ZTtcbnVuaWZvcm0gZmxvYXQgcGl4ZWxSYXRpbztcbnVuaWZvcm0gdmVjMiBzY2FsZSwgc2NhbGVGcmFjdCwgdHJhbnNsYXRlLCB0cmFuc2xhdGVGcmFjdCwgcGFsZXR0ZVNpemU7XG51bmlmb3JtIHNhbXBsZXIyRCBwYWxldHRlVGV4dHVyZTtcblxuY29uc3QgZmxvYXQgbWF4U2l6ZSA9IDEwMC47XG5jb25zdCBmbG9hdCBib3JkZXJMZXZlbCA9IC41O1xuXG52YXJ5aW5nIHZlYzQgZnJhZ0NvbG9yLCBmcmFnQm9yZGVyQ29sb3I7XG52YXJ5aW5nIGZsb2F0IGZyYWdQb2ludFNpemUsIGZyYWdCb3JkZXJSYWRpdXMsIGZyYWdXaWR0aCwgZnJhZ0JvcmRlckNvbG9yTGV2ZWwsIGZyYWdDb2xvckxldmVsO1xuXG5mbG9hdCBwb2ludFNpemVTY2FsZSA9IChjb25zdFBvaW50U2l6ZSkgPyAyLiA6IHBpeGVsUmF0aW87XG5cbmJvb2wgaXNEaXJlY3QgPSAocGFsZXR0ZVNpemUueCA8IDEuKTtcblxudmVjNCBnZXRDb2xvcih2ZWM0IGlkKSB7XG4gIHJldHVybiBpc0RpcmVjdCA/IGlkIC8gMjU1LiA6IHRleHR1cmUyRChwYWxldHRlVGV4dHVyZSxcbiAgICB2ZWMyKFxuICAgICAgKGlkLnggKyAuNSkgLyBwYWxldHRlU2l6ZS54LFxuICAgICAgKGlkLnkgKyAuNSkgLyBwYWxldHRlU2l6ZS55XG4gICAgKVxuICApO1xufVxuXG52b2lkIG1haW4oKSB7XG4gIC8vIGlnbm9yZSBpbmFjdGl2ZSBwb2ludHNcbiAgaWYgKGlzQWN0aXZlID09IDAuKSByZXR1cm47XG5cbiAgdmVjMiBwb3NpdGlvbiA9IHZlYzIoeCwgeSk7XG4gIHZlYzIgcG9zaXRpb25GcmFjdCA9IHZlYzIoeEZyYWN0LCB5RnJhY3QpO1xuXG4gIHZlYzQgY29sb3IgPSBnZXRDb2xvcihjb2xvcklkKTtcbiAgdmVjNCBib3JkZXJDb2xvciA9IGdldENvbG9yKGJvcmRlckNvbG9ySWQpO1xuXG4gIGZsb2F0IHNpemUgPSBzaXplICogbWF4U2l6ZSAvIDI1NS47XG4gIGZsb2F0IGJvcmRlclNpemUgPSBib3JkZXJTaXplICogbWF4U2l6ZSAvIDI1NS47XG5cbiAgZ2xfUG9pbnRTaXplID0gMi4gKiBzaXplICogcG9pbnRTaXplU2NhbGU7XG4gIGZyYWdQb2ludFNpemUgPSBzaXplICogcGl4ZWxSYXRpbztcblxuICB2ZWMyIHBvcyA9IChwb3NpdGlvbiArIHRyYW5zbGF0ZSkgKiBzY2FsZVxuICAgICAgKyAocG9zaXRpb25GcmFjdCArIHRyYW5zbGF0ZUZyYWN0KSAqIHNjYWxlXG4gICAgICArIChwb3NpdGlvbiArIHRyYW5zbGF0ZSkgKiBzY2FsZUZyYWN0XG4gICAgICArIChwb3NpdGlvbkZyYWN0ICsgdHJhbnNsYXRlRnJhY3QpICogc2NhbGVGcmFjdDtcblxuICBnbF9Qb3NpdGlvbiA9IHZlYzQocG9zICogMi4gLSAxLiwgMC4sIDEuKTtcblxuICBmcmFnQ29sb3IgPSBjb2xvcjtcbiAgZnJhZ0JvcmRlckNvbG9yID0gYm9yZGVyQ29sb3I7XG4gIGZyYWdXaWR0aCA9IDEuIC8gZ2xfUG9pbnRTaXplO1xuXG4gIGZyYWdCb3JkZXJDb2xvckxldmVsID0gY2xhbXAoYm9yZGVyTGV2ZWwgLSBib3JkZXJMZXZlbCAqIGJvcmRlclNpemUgLyBzaXplLCAwLiwgMS4pO1xuICBmcmFnQ29sb3JMZXZlbCA9IGNsYW1wKGJvcmRlckxldmVsICsgKDEuIC0gYm9yZGVyTGV2ZWwpICogYm9yZGVyU2l6ZSAvIHNpemUsIDAuLCAxLik7XG59Il0pLHRoaXMuZHJhd01hcmtlcj10KHMpO3ZhciBsPWYoe30sbyk7bC5mcmFnPWgoWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG52YXJ5aW5nIHZlYzQgZnJhZ0NvbG9yLCBmcmFnQm9yZGVyQ29sb3I7XG52YXJ5aW5nIGZsb2F0IGZyYWdCb3JkZXJSYWRpdXMsIGZyYWdXaWR0aDtcblxudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xuXG5mbG9hdCBzbW9vdGhTdGVwKGZsb2F0IGVkZ2UwLCBmbG9hdCBlZGdlMSwgZmxvYXQgeCkge1xuXHRmbG9hdCB0O1xuXHR0ID0gY2xhbXAoKHggLSBlZGdlMCkgLyAoZWRnZTEgLSBlZGdlMCksIDAuMCwgMS4wKTtcblx0cmV0dXJuIHQgKiB0ICogKDMuMCAtIDIuMCAqIHQpO1xufVxuXG52b2lkIG1haW4oKSB7XG5cdGZsb2F0IHJhZGl1cywgYWxwaGEgPSAxLjAsIGRlbHRhID0gZnJhZ1dpZHRoO1xuXG5cdHJhZGl1cyA9IGxlbmd0aCgyLjAgKiBnbF9Qb2ludENvb3JkLnh5IC0gMS4wKTtcblxuXHRpZiAocmFkaXVzID4gMS4wICsgZGVsdGEpIHtcblx0XHRkaXNjYXJkO1xuXHR9XG5cblx0YWxwaGEgLT0gc21vb3Roc3RlcCgxLjAgLSBkZWx0YSwgMS4wICsgZGVsdGEsIHJhZGl1cyk7XG5cblx0ZmxvYXQgYm9yZGVyUmFkaXVzID0gZnJhZ0JvcmRlclJhZGl1cztcblx0ZmxvYXQgcmF0aW8gPSBzbW9vdGhzdGVwKGJvcmRlclJhZGl1cyAtIGRlbHRhLCBib3JkZXJSYWRpdXMgKyBkZWx0YSwgcmFkaXVzKTtcblx0dmVjNCBjb2xvciA9IG1peChmcmFnQ29sb3IsIGZyYWdCb3JkZXJDb2xvciwgcmF0aW8pO1xuXHRjb2xvci5hICo9IGFscGhhICogb3BhY2l0eTtcblx0Z2xfRnJhZ0NvbG9yID0gY29sb3I7XG59XG4iXSksbC52ZXJ0PWgoWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5hdHRyaWJ1dGUgZmxvYXQgeCwgeSwgeEZyYWN0LCB5RnJhY3Q7XG5hdHRyaWJ1dGUgZmxvYXQgc2l6ZSwgYm9yZGVyU2l6ZTtcbmF0dHJpYnV0ZSB2ZWM0IGNvbG9ySWQsIGJvcmRlckNvbG9ySWQ7XG5hdHRyaWJ1dGUgZmxvYXQgaXNBY3RpdmU7XG5cbnVuaWZvcm0gYm9vbCBjb25zdFBvaW50U2l6ZTtcbnVuaWZvcm0gZmxvYXQgcGl4ZWxSYXRpbztcbnVuaWZvcm0gdmVjMiBwYWxldHRlU2l6ZSwgc2NhbGUsIHNjYWxlRnJhY3QsIHRyYW5zbGF0ZSwgdHJhbnNsYXRlRnJhY3Q7XG51bmlmb3JtIHNhbXBsZXIyRCBwYWxldHRlVGV4dHVyZTtcblxuY29uc3QgZmxvYXQgbWF4U2l6ZSA9IDEwMC47XG5cbnZhcnlpbmcgdmVjNCBmcmFnQ29sb3IsIGZyYWdCb3JkZXJDb2xvcjtcbnZhcnlpbmcgZmxvYXQgZnJhZ0JvcmRlclJhZGl1cywgZnJhZ1dpZHRoO1xuXG5mbG9hdCBwb2ludFNpemVTY2FsZSA9IChjb25zdFBvaW50U2l6ZSkgPyAyLiA6IHBpeGVsUmF0aW87XG5cbmJvb2wgaXNEaXJlY3QgPSAocGFsZXR0ZVNpemUueCA8IDEuKTtcblxudmVjNCBnZXRDb2xvcih2ZWM0IGlkKSB7XG4gIHJldHVybiBpc0RpcmVjdCA/IGlkIC8gMjU1LiA6IHRleHR1cmUyRChwYWxldHRlVGV4dHVyZSxcbiAgICB2ZWMyKFxuICAgICAgKGlkLnggKyAuNSkgLyBwYWxldHRlU2l6ZS54LFxuICAgICAgKGlkLnkgKyAuNSkgLyBwYWxldHRlU2l6ZS55XG4gICAgKVxuICApO1xufVxuXG52b2lkIG1haW4oKSB7XG4gIC8vIGlnbm9yZSBpbmFjdGl2ZSBwb2ludHNcbiAgaWYgKGlzQWN0aXZlID09IDAuKSByZXR1cm47XG5cbiAgdmVjMiBwb3NpdGlvbiA9IHZlYzIoeCwgeSk7XG4gIHZlYzIgcG9zaXRpb25GcmFjdCA9IHZlYzIoeEZyYWN0LCB5RnJhY3QpO1xuXG4gIHZlYzQgY29sb3IgPSBnZXRDb2xvcihjb2xvcklkKTtcbiAgdmVjNCBib3JkZXJDb2xvciA9IGdldENvbG9yKGJvcmRlckNvbG9ySWQpO1xuXG4gIGZsb2F0IHNpemUgPSBzaXplICogbWF4U2l6ZSAvIDI1NS47XG4gIGZsb2F0IGJvcmRlclNpemUgPSBib3JkZXJTaXplICogbWF4U2l6ZSAvIDI1NS47XG5cbiAgZ2xfUG9pbnRTaXplID0gKHNpemUgKyBib3JkZXJTaXplKSAqIHBvaW50U2l6ZVNjYWxlO1xuXG4gIHZlYzIgcG9zID0gKHBvc2l0aW9uICsgdHJhbnNsYXRlKSAqIHNjYWxlXG4gICAgICArIChwb3NpdGlvbkZyYWN0ICsgdHJhbnNsYXRlRnJhY3QpICogc2NhbGVcbiAgICAgICsgKHBvc2l0aW9uICsgdHJhbnNsYXRlKSAqIHNjYWxlRnJhY3RcbiAgICAgICsgKHBvc2l0aW9uRnJhY3QgKyB0cmFuc2xhdGVGcmFjdCkgKiBzY2FsZUZyYWN0O1xuXG4gIGdsX1Bvc2l0aW9uID0gdmVjNChwb3MgKiAyLiAtIDEuLCAwLiwgMS4pO1xuXG4gIGZyYWdCb3JkZXJSYWRpdXMgPSAxLiAtIDIuICogYm9yZGVyU2l6ZSAvIChzaXplICsgYm9yZGVyU2l6ZSk7XG4gIGZyYWdDb2xvciA9IGNvbG9yO1xuICBmcmFnQm9yZGVyQ29sb3IgPSBib3JkZXJDb2xvci5hID09IDAuIHx8IGJvcmRlclNpemUgPT0gMC4gPyB2ZWM0KGNvbG9yLnJnYiwgMC4pIDogYm9yZGVyQ29sb3I7XG4gIGZyYWdXaWR0aCA9IDEuIC8gZ2xfUG9pbnRTaXplO1xufVxuIl0pLGcmJihsLmZyYWc9bC5mcmFnLnJlcGxhY2UoInNtb290aHN0ZXAiLCJzbW9vdGhTdGVwIikscy5mcmFnPXMuZnJhZy5yZXBsYWNlKCJzbW9vdGhzdGVwIiwic21vb3RoU3RlcCIpKSx0aGlzLmRyYXdDaXJjbGU9dChsKX1iLmRlZmF1bHRzPXtjb2xvcjoiYmxhY2siLGJvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCIsYm9yZGVyU2l6ZTowLHNpemU6MTIsb3BhY2l0eToxLG1hcmtlcjp2b2lkIDAsdmlld3BvcnQ6bnVsbCxyYW5nZTpudWxsLHBpeGVsU2l6ZTpudWxsLGNvdW50OjAsb2Zmc2V0OjAsYm91bmRzOm51bGwscG9zaXRpb25zOltdLHNuYXA6MWU0fSxiLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aCYmdGhpcy51cGRhdGUuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuZHJhdygpLHRoaXN9LGIucHJvdG90eXBlLmRyYXc9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcyxlPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkoZSksbj0wO248ZTtuKyspcltuXT1hcmd1bWVudHNbbl07dmFyIGk9dGhpcy5ncm91cHM7aWYoMT09PXIubGVuZ3RoJiZBcnJheS5pc0FycmF5KHJbMF0pJiYobnVsbD09PXJbMF1bMF18fEFycmF5LmlzQXJyYXkoclswXVswXSkpJiYocj1yWzBdKSx0aGlzLnJlZ2wuX3JlZnJlc2goKSxyLmxlbmd0aClmb3IodmFyIGE9MDthPHIubGVuZ3RoO2ErKyl0aGlzLmRyYXdJdGVtKGEsclthXSk7ZWxzZSBpLmZvckVhY2goKGZ1bmN0aW9uKGUscil7dC5kcmF3SXRlbShyKX0pKTtyZXR1cm4gdGhpc30sYi5wcm90b3R5cGUuZHJhd0l0ZW09ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmdyb3VwcyxuPXJbdF07aWYoIm51bWJlciI9PXR5cGVvZiBlJiYodD1lLG49cltlXSxlPW51bGwpLG4mJm4uY291bnQmJm4ub3BhY2l0eSl7bi5hY3RpdmF0aW9uWzBdJiZ0aGlzLmRyYXdDaXJjbGUodGhpcy5nZXRNYXJrZXJEcmF3T3B0aW9ucygwLG4sZSkpO2Zvcih2YXIgYT1bXSxvPTE7bzxuLmFjdGl2YXRpb24ubGVuZ3RoO28rKyluLmFjdGl2YXRpb25bb10mJighMD09PW4uYWN0aXZhdGlvbltvXXx8bi5hY3RpdmF0aW9uW29dLmRhdGEubGVuZ3RoKSYmYS5wdXNoLmFwcGx5KGEsaSh0aGlzLmdldE1hcmtlckRyYXdPcHRpb25zKG8sbixlKSkpO2EubGVuZ3RoJiZ0aGlzLmRyYXdNYXJrZXIoYSl9fSxiLnByb3RvdHlwZS5nZXRNYXJrZXJEcmF3T3B0aW9ucz1mdW5jdGlvbih0LGUscil7dmFyIGk9ZS5yYW5nZSxhPWUudHJlZSxvPWUudmlld3BvcnQscz1lLmFjdGl2YXRpb24sbD1lLnNlbGVjdGlvbkJ1ZmZlcixjPWUuY291bnQ7dGhpcy5yZWdsO2lmKCFhKXJldHVybiByP1tmKHt9LGUse21hcmtlclRleHR1cmU6dGhpcy5tYXJrZXJUZXh0dXJlc1t0XSxhY3RpdmF0aW9uOnNbdF0sY291bnQ6ci5sZW5ndGgsZWxlbWVudHM6cixvZmZzZXQ6MH0pXTpbZih7fSxlLHttYXJrZXJUZXh0dXJlOnRoaXMubWFya2VyVGV4dHVyZXNbdF0sYWN0aXZhdGlvbjpzW3RdLG9mZnNldDowfSldO3ZhciB1PVtdLGg9YS5yYW5nZShpLHtsb2Q6ITAscHg6WyhpWzJdLWlbMF0pL28ud2lkdGgsKGlbM10taVsxXSkvby5oZWlnaHRdfSk7aWYocil7Zm9yKHZhciBwPXNbdF0uZGF0YSxkPW5ldyBVaW50OEFycmF5KGMpLG09MDttPHIubGVuZ3RoO20rKyl7dmFyIGc9clttXTtkW2ddPXA/cFtnXToxfWwuc3ViZGF0YShkKX1mb3IodmFyIHY9aC5sZW5ndGg7di0tOyl7dmFyIHk9bihoW3ZdLDIpLHg9eVswXSxiPXlbMV07dS5wdXNoKGYoe30sZSx7bWFya2VyVGV4dHVyZTp0aGlzLm1hcmtlclRleHR1cmVzW3RdLGFjdGl2YXRpb246cj9sOnNbdF0sb2Zmc2V0OngsY291bnQ6Yi14fSkpfXJldHVybiB1fSxiLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcyxlPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkoZSksbj0wO248ZTtuKyspcltuXT1hcmd1bWVudHNbbl07aWYoci5sZW5ndGgpezE9PT1yLmxlbmd0aCYmQXJyYXkuaXNBcnJheShyWzBdKSYmKHI9clswXSk7dmFyIGk9dGhpcy5ncm91cHMsYT10aGlzLmdsLG89dGhpcy5yZWdsLHM9dGhpcy5tYXhTaXplLGM9dGhpcy5tYXhDb2xvcnMsaD10aGlzLnBhbGV0dGU7dGhpcy5ncm91cHM9aT1yLm1hcCgoZnVuY3Rpb24oZSxyKXt2YXIgbj1pW3JdO2lmKHZvaWQgMD09PWUpcmV0dXJuIG47bnVsbD09PWU/ZT17cG9zaXRpb25zOm51bGx9OiJmdW5jdGlvbiI9PXR5cGVvZiBlP2U9e29uZHJhdzplfToibnVtYmVyIj09dHlwZW9mIGVbMF0mJihlPXtwb3NpdGlvbnM6ZX0pLG51bGw9PT0oZT1wKGUse3Bvc2l0aW9uczoicG9zaXRpb25zIGRhdGEgcG9pbnRzIixzbmFwOiJzbmFwIGNsdXN0ZXIgbG9kIHRyZWUiLHNpemU6InNpemVzIHNpemUgcmFkaXVzIixib3JkZXJTaXplOiJib3JkZXJTaXplcyBib3JkZXJTaXplIGJvcmRlci1zaXplIGJvcmRlcnNpemUgYm9yZGVyV2lkdGggYm9yZGVyV2lkdGhzIGJvcmRlci13aWR0aCBib3JkZXJ3aWR0aCBzdHJva2Utd2lkdGggc3Ryb2tlV2lkdGggc3Ryb2tld2lkdGggb3V0bGluZSIsY29sb3I6ImNvbG9ycyBjb2xvciBmaWxsIGZpbGwtY29sb3IgZmlsbENvbG9yIixib3JkZXJDb2xvcjoiYm9yZGVyQ29sb3JzIGJvcmRlckNvbG9yIHN0cm9rZSBzdHJva2UtY29sb3Igc3Ryb2tlQ29sb3IiLG1hcmtlcjoibWFya2VycyBtYXJrZXIgc2hhcGUiLHJhbmdlOiJyYW5nZSBkYXRhQm94IGRhdGFib3giLHZpZXdwb3J0OiJ2aWV3cG9ydCB2aWV3UG9ydCB2aWV3Qm94IHZpZXdib3giLG9wYWNpdHk6Im9wYWNpdHkgYWxwaGEgdHJhbnNwYXJlbmN5Iixib3VuZHM6ImJvdW5kIGJvdW5kcyBib3VuZGFyaWVzIGxpbWl0cyIsdG9vTWFueUNvbG9yczoidG9vTWFueUNvbG9ycyBwYWxldHRlIHBhbGV0dGVNb2RlIG9wdGltaXplUGFsZXR0ZSBlbmFibGVQYWxldHRlIn0pKS5wb3NpdGlvbnMmJihlLnBvc2l0aW9ucz1bXSksbnVsbCE9ZS50b29NYW55Q29sb3JzJiYodC50b29NYW55Q29sb3JzPWUudG9vTWFueUNvbG9ycyksbnx8KGlbcl09bj17aWQ6cixzY2FsZTpudWxsLHRyYW5zbGF0ZTpudWxsLHNjYWxlRnJhY3Q6bnVsbCx0cmFuc2xhdGVGcmFjdDpudWxsLGFjdGl2YXRpb246W10sc2VsZWN0aW9uQnVmZmVyOm8uYnVmZmVyKHtkYXRhOm5ldyBVaW50OEFycmF5KDApLHVzYWdlOiJzdHJlYW0iLHR5cGU6InVpbnQ4In0pLHNpemVCdWZmZXI6by5idWZmZXIoe2RhdGE6bmV3IFVpbnQ4QXJyYXkoMCksdXNhZ2U6ImR5bmFtaWMiLHR5cGU6InVpbnQ4In0pLGNvbG9yQnVmZmVyOm8uYnVmZmVyKHtkYXRhOm5ldyBVaW50OEFycmF5KDApLHVzYWdlOiJkeW5hbWljIix0eXBlOiJ1aW50OCJ9KSxwb3NpdGlvbkJ1ZmZlcjpvLmJ1ZmZlcih7ZGF0YTpuZXcgVWludDhBcnJheSgwKSx1c2FnZToiZHluYW1pYyIsdHlwZToiZmxvYXQifSkscG9zaXRpb25GcmFjdEJ1ZmZlcjpvLmJ1ZmZlcih7ZGF0YTpuZXcgVWludDhBcnJheSgwKSx1c2FnZToiZHluYW1pYyIsdHlwZToiZmxvYXQifSl9LGU9Zih7fSxiLmRlZmF1bHRzLGUpKSxlLnBvc2l0aW9ucyYmISgibWFya2VyImluIGUpJiYoZS5tYXJrZXI9bi5tYXJrZXIsZGVsZXRlIG4ubWFya2VyKSxlLm1hcmtlciYmISgicG9zaXRpb25zImluIGUpJiYoZS5wb3NpdGlvbnM9bi5wb3NpdGlvbnMsZGVsZXRlIG4ucG9zaXRpb25zKTt2YXIgZz0wLHg9MDtpZihkKG4sZSxbe3NuYXA6ITAsc2l6ZTpmdW5jdGlvbih0LGUpe3JldHVybiBudWxsPT10JiYodD1iLmRlZmF1bHRzLnNpemUpLGcrPXQmJnQubGVuZ3RoPzE6MCx0fSxib3JkZXJTaXplOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG51bGw9PXQmJih0PWIuZGVmYXVsdHMuYm9yZGVyU2l6ZSksZys9dCYmdC5sZW5ndGg/MTowLHR9LG9wYWNpdHk6cGFyc2VGbG9hdCxjb2xvcjpmdW5jdGlvbihlLHIpe3JldHVybiBudWxsPT1lJiYoZT1iLmRlZmF1bHRzLmNvbG9yKSxlPXQudXBkYXRlQ29sb3IoZSkseCsrLGV9LGJvcmRlckNvbG9yOmZ1bmN0aW9uKGUscil7cmV0dXJuIG51bGw9PWUmJihlPWIuZGVmYXVsdHMuYm9yZGVyQ29sb3IpLGU9dC51cGRhdGVDb2xvcihlKSx4KyssZX0sYm91bmRzOmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4icmFuZ2UiaW4gcnx8KHIucmFuZ2U9bnVsbCksdH0scG9zaXRpb25zOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1lLnNuYXAsaT1lLnBvc2l0aW9uQnVmZmVyLGE9ZS5wb3NpdGlvbkZyYWN0QnVmZmVyLHM9ZS5zZWxlY3Rpb25CdWZmZXI7aWYodC54fHx0LnkpcmV0dXJuIHQueC5sZW5ndGg/ZS54QXR0cj17YnVmZmVyOm8uYnVmZmVyKHQueCksb2Zmc2V0OjAsc3RyaWRlOjQsY291bnQ6dC54Lmxlbmd0aH06ZS54QXR0cj17YnVmZmVyOnQueC5idWZmZXIsb2Zmc2V0OjQqdC54Lm9mZnNldHx8MCxzdHJpZGU6NCoodC54LnN0cmlkZXx8MSksY291bnQ6dC54LmNvdW50fSx0LnkubGVuZ3RoP2UueUF0dHI9e2J1ZmZlcjpvLmJ1ZmZlcih0LnkpLG9mZnNldDowLHN0cmlkZTo0LGNvdW50OnQueS5sZW5ndGh9OmUueUF0dHI9e2J1ZmZlcjp0LnkuYnVmZmVyLG9mZnNldDo0KnQueS5vZmZzZXR8fDAsc3RyaWRlOjQqKHQueS5zdHJpZGV8fDEpLGNvdW50OnQueS5jb3VudH0sZS5jb3VudD1NYXRoLm1heChlLnhBdHRyLmNvdW50LGUueUF0dHIuY291bnQpLHQ7dD1tKHQsImZsb2F0NjQiKTt2YXIgYz1lLmNvdW50PU1hdGguZmxvb3IodC5sZW5ndGgvMiksZj1lLmJvdW5kcz1jP2wodCwyKTpudWxsO2lmKHIucmFuZ2V8fGUucmFuZ2V8fChkZWxldGUgZS5yYW5nZSxyLnJhbmdlPWYpLHIubWFya2VyfHxlLm1hcmtlcnx8KGRlbGV0ZSBlLm1hcmtlcixyLm1hcmtlcj1udWxsKSxuJiYoITA9PT1ufHxjPm4pP2UudHJlZT11KHQse2JvdW5kczpmfSk6biYmbi5sZW5ndGgmJihlLnRyZWU9biksZS50cmVlKXt2YXIgaD17cHJpbWl0aXZlOiJwb2ludHMiLHVzYWdlOiJzdGF0aWMiLGRhdGE6ZS50cmVlLHR5cGU6InVpbnQzMiJ9O2UuZWxlbWVudHM/ZS5lbGVtZW50cyhoKTplLmVsZW1lbnRzPW8uZWxlbWVudHMoaCl9dmFyIHA9di5mbG9hdDMyKHQpO3JldHVybiBpKHtkYXRhOnAsdXNhZ2U6ImR5bmFtaWMifSksYSh7ZGF0YTp2LmZyYWN0MzIodCxwKSx1c2FnZToiZHluYW1pYyJ9KSxzKHtkYXRhOm5ldyBVaW50OEFycmF5KGMpLHR5cGU6InVpbnQ4Iix1c2FnZToic3RyZWFtIn0pLHR9fSx7bWFya2VyOmZ1bmN0aW9uKGUscixuKXt2YXIgaT1yLmFjdGl2YXRpb247aWYoaS5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gdCYmdC5kZXN0cm95JiZ0LmRlc3Ryb3koKX0pKSxpLmxlbmd0aD0wLGUmJiJudW1iZXIiIT10eXBlb2YgZVswXSl7Zm9yKHZhciBhPVtdLHM9MCxsPU1hdGgubWluKGUubGVuZ3RoLHIuY291bnQpO3M8bDtzKyspe3ZhciBjPXQuYWRkTWFya2VyKGVbc10pO2FbY118fChhW2NdPW5ldyBVaW50OEFycmF5KHIuY291bnQpKSxhW2NdW3NdPTF9Zm9yKHZhciB1PTA7dTxhLmxlbmd0aDt1KyspaWYoYVt1XSl7dmFyIGY9e2RhdGE6YVt1XSx0eXBlOiJ1aW50OCIsdXNhZ2U6InN0YXRpYyJ9O2lbdV0/aVt1XShmKTppW3VdPW8uYnVmZmVyKGYpLGlbdV0uZGF0YT1hW3VdfX1lbHNle2lbdC5hZGRNYXJrZXIoZSldPSEwfXJldHVybiBlfSxyYW5nZTpmdW5jdGlvbih0LGUscil7dmFyIG49ZS5ib3VuZHM7aWYobilyZXR1cm4gdHx8KHQ9biksZS5zY2FsZT1bMS8odFsyXS10WzBdKSwxLyh0WzNdLXRbMV0pXSxlLnRyYW5zbGF0ZT1bLXRbMF0sLXRbMV1dLGUuc2NhbGVGcmFjdD12LmZyYWN0KGUuc2NhbGUpLGUudHJhbnNsYXRlRnJhY3Q9di5mcmFjdChlLnRyYW5zbGF0ZSksdH0sdmlld3BvcnQ6ZnVuY3Rpb24odCl7cmV0dXJuIHkodHx8W2EuZHJhd2luZ0J1ZmZlcldpZHRoLGEuZHJhd2luZ0J1ZmZlckhlaWdodF0pfX1dKSxnKXt2YXIgXz1uLHc9Xy5jb3VudCxUPV8uc2l6ZSxrPV8uYm9yZGVyU2l6ZSxBPV8uc2l6ZUJ1ZmZlcixNPW5ldyBVaW50OEFycmF5KDIqdyk7aWYoVC5sZW5ndGh8fGsubGVuZ3RoKWZvcih2YXIgUz0wO1M8dztTKyspTVsyKlNdPU1hdGgucm91bmQoMjU1KihudWxsPT1UW1NdP1Q6VFtTXSkvcyksTVsyKlMrMV09TWF0aC5yb3VuZCgyNTUqKG51bGw9PWtbU10/azprW1NdKS9zKTtBKHtkYXRhOk0sdXNhZ2U6ImR5bmFtaWMifSl9aWYoeCl7dmFyIEUsTD1uLEM9TC5jb3VudCxQPUwuY29sb3IsST1MLmJvcmRlckNvbG9yLE89TC5jb2xvckJ1ZmZlcjtpZih0LnRvb01hbnlDb2xvcnMpe2lmKFAubGVuZ3RofHxJLmxlbmd0aCl7RT1uZXcgVWludDhBcnJheSg4KkMpO2Zvcih2YXIgej0wO3o8Qzt6Kyspe3ZhciBEPVBbel07RVs4KnpdPWhbNCpEXSxFWzgqeisxXT1oWzQqRCsxXSxFWzgqeisyXT1oWzQqRCsyXSxFWzgqeiszXT1oWzQqRCszXTt2YXIgUj1JW3pdO0VbOCp6KzRdPWhbNCpSXSxFWzgqeis1XT1oWzQqUisxXSxFWzgqeis2XT1oWzQqUisyXSxFWzgqeis3XT1oWzQqUiszXX19fWVsc2UgaWYoUC5sZW5ndGh8fEkubGVuZ3RoKXtFPW5ldyBVaW50OEFycmF5KDQqQysyKTtmb3IodmFyIEY9MDtGPEM7RisrKW51bGwhPVBbRl0mJihFWzQqRl09UFtGXSVjLEVbNCpGKzFdPU1hdGguZmxvb3IoUFtGXS9jKSksbnVsbCE9SVtGXSYmKEVbNCpGKzJdPUlbRl0lYyxFWzQqRiszXT1NYXRoLmZsb29yKElbRl0vYykpfU8oe2RhdGE6RXx8bmV3IFVpbnQ4QXJyYXkoMCksdHlwZToidWludDgiLHVzYWdlOiJkeW5hbWljIn0pfXJldHVybiBufSkpfX0sYi5wcm90b3R5cGUuYWRkTWFya2VyPWZ1bmN0aW9uKHQpe3ZhciBlLHI9dGhpcy5tYXJrZXJUZXh0dXJlcyxuPXRoaXMucmVnbCxpPXRoaXMubWFya2VyQ2FjaGUsYT1udWxsPT10PzA6aS5pbmRleE9mKHQpO2lmKGE+PTApcmV0dXJuIGE7aWYodCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXl8fHQgaW5zdGFuY2VvZiBVaW50OENsYW1wZWRBcnJheSllPXQ7ZWxzZXtlPW5ldyBVaW50OEFycmF5KHQubGVuZ3RoKTtmb3IodmFyIG89MCxzPXQubGVuZ3RoO288cztvKyspZVtvXT0yNTUqdFtvXX12YXIgbD1NYXRoLmZsb29yKE1hdGguc3FydChlLmxlbmd0aCkpO3JldHVybiBhPXIubGVuZ3RoLGkucHVzaCh0KSxyLnB1c2gobi50ZXh0dXJlKHtjaGFubmVsczoxLGRhdGE6ZSxyYWRpdXM6bCxtYWc6ImxpbmVhciIsbWluOiJsaW5lYXIifSkpLGF9LGIucHJvdG90eXBlLnVwZGF0ZUNvbG9yPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMucGFsZXR0ZUlkcyxyPXRoaXMucGFsZXR0ZSxuPXRoaXMubWF4Q29sb3JzO0FycmF5LmlzQXJyYXkodCl8fCh0PVt0XSk7dmFyIGk9W107aWYoIm51bWJlciI9PXR5cGVvZiB0WzBdKXt2YXIgYT1bXTtpZihBcnJheS5pc0FycmF5KHQpKWZvcih2YXIgbz0wO288dC5sZW5ndGg7bys9NClhLnB1c2godC5zbGljZShvLG8rNCkpO2Vsc2UgZm9yKHZhciBsPTA7bDx0Lmxlbmd0aDtsKz00KWEucHVzaCh0LnN1YmFycmF5KGwsbCs0KSk7dD1hfWZvcih2YXIgdT0wO3U8dC5sZW5ndGg7dSsrKXt2YXIgZj10W3VdO2Y9cyhmLCJ1aW50OCIpO3ZhciBoPWMoZiwhMSk7aWYobnVsbD09ZVtoXSl7dmFyIHA9ci5sZW5ndGg7ZVtoXT1NYXRoLmZsb29yKHAvNCkscltwXT1mWzBdLHJbcCsxXT1mWzFdLHJbcCsyXT1mWzJdLHJbcCszXT1mWzNdfWlbdV09ZVtoXX1yZXR1cm4hdGhpcy50b29NYW55Q29sb3JzJiZyLmxlbmd0aD40Km4mJih0aGlzLnRvb01hbnlDb2xvcnM9ITApLHRoaXMudXBkYXRlUGFsZXR0ZShyKSwxPT09aS5sZW5ndGg/aVswXTppfSxiLnByb3RvdHlwZS51cGRhdGVQYWxldHRlPWZ1bmN0aW9uKHQpe2lmKCF0aGlzLnRvb01hbnlDb2xvcnMpe3ZhciBlPXRoaXMubWF4Q29sb3JzLHI9dGhpcy5wYWxldHRlVGV4dHVyZSxuPU1hdGguY2VpbCguMjUqdC5sZW5ndGgvZSk7aWYobj4xKWZvcih2YXIgaT0uMjUqKHQ9dC5zbGljZSgpKS5sZW5ndGglZTtpPG4qZTtpKyspdC5wdXNoKDAsMCwwLDApO3IuaGVpZ2h0PG4mJnIucmVzaXplKGUsbiksci5zdWJpbWFnZSh7d2lkdGg6TWF0aC5taW4oLjI1KnQubGVuZ3RoLGUpLGhlaWdodDpuLGRhdGE6dH0sMCwwKX19LGIucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ncm91cHMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5zaXplQnVmZmVyLmRlc3Ryb3koKSx0LnBvc2l0aW9uQnVmZmVyLmRlc3Ryb3koKSx0LnBvc2l0aW9uRnJhY3RCdWZmZXIuZGVzdHJveSgpLHQuY29sb3JCdWZmZXIuZGVzdHJveSgpLHQuYWN0aXZhdGlvbi5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gdCYmdC5kZXN0cm95JiZ0LmRlc3Ryb3koKX0pKSx0LnNlbGVjdGlvbkJ1ZmZlci5kZXN0cm95KCksdC5lbGVtZW50cyYmdC5lbGVtZW50cy5kZXN0cm95KCl9KSksdGhpcy5ncm91cHMubGVuZ3RoPTAsdGhpcy5wYWxldHRlVGV4dHVyZS5kZXN0cm95KCksdGhpcy5tYXJrZXJUZXh0dXJlcy5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gdCYmdC5kZXN0cm95JiZ0LmRlc3Ryb3koKX0pKSx0aGlzfTt2YXIgXz10KCJvYmplY3QtYXNzaWduIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9bmV3IHgodCxlKSxuPXIucmVuZGVyLmJpbmQocik7cmV0dXJuIF8obix7cmVuZGVyOm4sdXBkYXRlOnIudXBkYXRlLmJpbmQociksZHJhdzpyLmRyYXcuYmluZChyKSxkZXN0cm95OnIuZGVzdHJveS5iaW5kKHIpLHJlZ2w6ci5yZWdsLGdsOnIuZ2wsY2FudmFzOnIuZ2wuY2FudmFzLGdyb3VwczpyLmdyb3VwcyxtYXJrZXJzOnIubWFya2VyQ2FjaGUscGFsZXR0ZTpyLnBhbGV0dGV9KSxufX0seyJAcGxvdGx5L3BvaW50LWNsdXN0ZXIiOjU5LCJhcnJheS1ib3VuZHMiOjcxLCJjb2xvci1pZCI6ODcsImNvbG9yLW5vcm1hbGl6ZSI6ODksImZsYXR0ZW4tdmVydGV4LWRhdGEiOjE5MSxnbHNsaWZ5OjIyNywiaXMtaWV4cGxvcmVyIjoyMzMsIm9iamVjdC1hc3NpZ24iOjI0NywicGFyc2UtcmVjdCI6MjQ5LCJwaWNrLWJ5LWFsaWFzIjoyNTMsInRvLWZsb2F0MzIiOjMxNCwidXBkYXRlLWRpZmYiOjMzMH1dLDI4MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJyZWdsLXNjYXR0ZXIyZCIpLGk9dCgicGljay1ieS1hbGlhcyIpLGE9dCgiYXJyYXktYm91bmRzIiksbz10KCJyYWYiKSxzPXQoImFycmF5LXJhbmdlIiksbD10KCJwYXJzZS1yZWN0IiksYz10KCJmbGF0dGVuLXZlcnRleC1kYXRhIik7ZnVuY3Rpb24gdSh0LGUpe2lmKCEodGhpcyBpbnN0YW5jZW9mIHUpKXJldHVybiBuZXcgdSh0LGUpO3RoaXMudHJhY2VzPVtdLHRoaXMucGFzc2VzPXt9LHRoaXMucmVnbD10LHRoaXMuc2NhdHRlcj1uKHQpLHRoaXMuY2FudmFzPXRoaXMuc2NhdHRlci5jYW52YXN9ZnVuY3Rpb24gZih0LGUscil7cmV0dXJuKG51bGwhPXQuaWQ/dC5pZDp0KTw8MTZ8KDI1NSZlKTw8OHwyNTUmcn1mdW5jdGlvbiBoKHQsZSxyKXt2YXIgbixpLGEsbyxzPXRbZV0sbD10W3JdO3JldHVybiBzLmxlbmd0aD4yPyhzWzBdLHNbMl0sbj1zWzFdLGk9c1szXSk6cy5sZW5ndGg/KG49c1swXSxpPXNbMV0pOihzLngsbj1zLnkscy54K3Mud2lkdGgsaT1zLnkrcy5oZWlnaHQpLGwubGVuZ3RoPjI/KGE9bFswXSxvPWxbMl0sbFsxXSxsWzNdKTpsLmxlbmd0aD8oYT1sWzBdLG89bFsxXSk6KGE9bC54LGwueSxvPWwueCtsLndpZHRoLGwueStsLmhlaWdodCksW2EsbixvLGldfWZ1bmN0aW9uIHAodCl7aWYoIm51bWJlciI9PXR5cGVvZiB0KXJldHVyblt0LHQsdCx0XTtpZigyPT09dC5sZW5ndGgpcmV0dXJuW3RbMF0sdFsxXSx0WzBdLHRbMV1dO3ZhciBlPWwodCk7cmV0dXJuW2UueCxlLnksZS54K2Uud2lkdGgsZS55K2UuaGVpZ2h0XX1lLmV4cG9ydHM9dSx1LnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT10aGlzLHI9W10sbj1hcmd1bWVudHMubGVuZ3RoO24tLTspcltuXT1hcmd1bWVudHNbbl07cmV0dXJuIHIubGVuZ3RoJiYodD10aGlzKS51cGRhdGUuYXBwbHkodCxyKSx0aGlzLnJlZ2wuYXR0cmlidXRlcy5wcmVzZXJ2ZURyYXdpbmdCdWZmZXI/dGhpcy5kcmF3KCk6KHRoaXMuZGlydHk/bnVsbD09dGhpcy5wbGFubmVkJiYodGhpcy5wbGFubmVkPW8oKGZ1bmN0aW9uKCl7ZS5kcmF3KCksZS5kaXJ0eT0hMCxlLnBsYW5uZWQ9bnVsbH0pKSk6KHRoaXMuZHJhdygpLHRoaXMuZGlydHk9ITAsbygoZnVuY3Rpb24oKXtlLmRpcnR5PSExfSkpKSx0aGlzKX0sdS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9W10scj1hcmd1bWVudHMubGVuZ3RoO3ItLTspZVtyXT1hcmd1bWVudHNbcl07aWYoZS5sZW5ndGgpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXRoaXMudXBkYXRlSXRlbShuLGVbbl0pO3RoaXMudHJhY2VzPXRoaXMudHJhY2VzLmZpbHRlcihCb29sZWFuKTtmb3IodmFyIGk9W10sYT0wLG89MDtvPHRoaXMudHJhY2VzLmxlbmd0aDtvKyspe2Zvcih2YXIgcz10aGlzLnRyYWNlc1tvXSxsPXRoaXMudHJhY2VzW29dLnBhc3NlcyxjPTA7YzxsLmxlbmd0aDtjKyspaS5wdXNoKHRoaXMucGFzc2VzW2xbY11dKTtzLnBhc3NPZmZzZXQ9YSxhKz1zLnBhc3Nlcy5sZW5ndGh9cmV0dXJuKHQ9dGhpcy5zY2F0dGVyKS51cGRhdGUuYXBwbHkodCxpKSx0aGlzfX0sdS5wcm90b3R5cGUudXBkYXRlSXRlbT1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMucmVnbDtpZihudWxsPT09ZSlyZXR1cm4gdGhpcy50cmFjZXNbdF09bnVsbCx0aGlzO2lmKCFlKXJldHVybiB0aGlzO3ZhciBuLG89aShlLHtkYXRhOiJkYXRhIGl0ZW1zIGNvbHVtbnMgcm93cyB2YWx1ZXMgZGltZW5zaW9ucyBzYW1wbGVzIHgiLHNuYXA6InNuYXAgY2x1c3RlciIsc2l6ZToic2l6ZXMgc2l6ZSByYWRpdXMiLGNvbG9yOiJjb2xvcnMgY29sb3IgZmlsbCBmaWxsLWNvbG9yIGZpbGxDb2xvciIsb3BhY2l0eToib3BhY2l0eSBhbHBoYSB0cmFuc3BhcmVuY3kgb3BhcXVlIixib3JkZXJTaXplOiJib3JkZXJTaXplcyBib3JkZXJTaXplIGJvcmRlci1zaXplIGJvcmRlcnNpemUgYm9yZGVyV2lkdGggYm9yZGVyV2lkdGhzIGJvcmRlci13aWR0aCBib3JkZXJ3aWR0aCBzdHJva2Utd2lkdGggc3Ryb2tlV2lkdGggc3Ryb2tld2lkdGggb3V0bGluZSIsYm9yZGVyQ29sb3I6ImJvcmRlckNvbG9ycyBib3JkZXJDb2xvciBib3JkZXJjb2xvciBzdHJva2Ugc3Ryb2tlLWNvbG9yIHN0cm9rZUNvbG9yIixtYXJrZXI6Im1hcmtlcnMgbWFya2VyIHNoYXBlIixyYW5nZToicmFuZ2UgcmFuZ2VzIGRhdGFib3ggZGF0YUJveCIsdmlld3BvcnQ6InZpZXdwb3J0IHZpZXdCb3ggdmlld2JveCIsZG9tYWluOiJkb21haW4gZG9tYWlucyBhcmVhIGFyZWFzIixwYWRkaW5nOiJwYWQgcGFkZGluZyBwYWRkaW5ncyBwYWRzIG1hcmdpbiBtYXJnaW5zIix0cmFuc3Bvc2U6InRyYW5zcG9zZSB0cmFuc3Bvc2VkIixkaWFnb25hbDoiZGlhZ29uYWwgZGlhZyBzaG93RGlhZ29uYWwiLHVwcGVyOiJ1cHBlciB1cCB0b3AgdXBwZXJoYWxmIHVwcGVySGFsZiBzaG93dXBwZXJoYWxmIHNob3dVcHBlciBzaG93VXBwZXJIYWxmIixsb3dlcjoibG93ZXIgbG93IGJvdHRvbSBsb3dlcmhhbGYgbG93ZXJIYWxmIHNob3dsb3dlcmhhbGYgc2hvd0xvd2VySGFsZiBzaG93TG93ZXIifSkscz10aGlzLnRyYWNlc1t0XXx8KHRoaXMudHJhY2VzW3RdPXtpZDp0LGJ1ZmZlcjpyLmJ1ZmZlcih7dXNhZ2U6ImR5bmFtaWMiLHR5cGU6ImZsb2F0IixkYXRhOm5ldyBVaW50OEFycmF5fSksY29sb3I6ImJsYWNrIixtYXJrZXI6bnVsbCxzaXplOjEyLGJvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCIsYm9yZGVyU2l6ZToxLHZpZXdwb3J0OmwoW3IuX2dsLmRyYXdpbmdCdWZmZXJXaWR0aCxyLl9nbC5kcmF3aW5nQnVmZmVySGVpZ2h0XSkscGFkZGluZzpbMCwwLDAsMF0sb3BhY2l0eToxLGRpYWdvbmFsOiEwLHVwcGVyOiEwLGxvd2VyOiEwfSk7aWYobnVsbCE9by5jb2xvciYmKHMuY29sb3I9by5jb2xvciksbnVsbCE9by5zaXplJiYocy5zaXplPW8uc2l6ZSksbnVsbCE9by5tYXJrZXImJihzLm1hcmtlcj1vLm1hcmtlciksbnVsbCE9by5ib3JkZXJDb2xvciYmKHMuYm9yZGVyQ29sb3I9by5ib3JkZXJDb2xvciksbnVsbCE9by5ib3JkZXJTaXplJiYocy5ib3JkZXJTaXplPW8uYm9yZGVyU2l6ZSksbnVsbCE9by5vcGFjaXR5JiYocy5vcGFjaXR5PW8ub3BhY2l0eSksby52aWV3cG9ydCYmKHMudmlld3BvcnQ9bChvLnZpZXdwb3J0KSksbnVsbCE9by5kaWFnb25hbCYmKHMuZGlhZ29uYWw9by5kaWFnb25hbCksbnVsbCE9by51cHBlciYmKHMudXBwZXI9by51cHBlciksbnVsbCE9by5sb3dlciYmKHMubG93ZXI9by5sb3dlciksby5kYXRhKXtzLmJ1ZmZlcihjKG8uZGF0YSkpLHMuY29sdW1ucz1vLmRhdGEubGVuZ3RoLHMuY291bnQ9by5kYXRhWzBdLmxlbmd0aCxzLmJvdW5kcz1bXTtmb3IodmFyIHU9MDt1PHMuY29sdW1uczt1Kyspcy5ib3VuZHNbdV09YShvLmRhdGFbdV0sMSl9by5yYW5nZSYmKHMucmFuZ2U9by5yYW5nZSxuPXMucmFuZ2UmJiJudW1iZXIiIT10eXBlb2Ygcy5yYW5nZVswXSksby5kb21haW4mJihzLmRvbWFpbj1vLmRvbWFpbik7dmFyIGQ9ITE7bnVsbCE9by5wYWRkaW5nJiYoQXJyYXkuaXNBcnJheShvLnBhZGRpbmcpJiZvLnBhZGRpbmcubGVuZ3RoPT09cy5jb2x1bW5zJiYibnVtYmVyIj09dHlwZW9mIG8ucGFkZGluZ1tvLnBhZGRpbmcubGVuZ3RoLTFdPyhzLnBhZGRpbmc9by5wYWRkaW5nLm1hcChwKSxkPSEwKTpzLnBhZGRpbmc9cChvLnBhZGRpbmcpKTt2YXIgbT1zLmNvbHVtbnMsZz1zLmNvdW50LHY9cy52aWV3cG9ydC53aWR0aCx5PXMudmlld3BvcnQuaGVpZ2h0LHg9cy52aWV3cG9ydC54LGI9cy52aWV3cG9ydC55LF89di9tLHc9eS9tO3MucGFzc2VzPVtdO2Zvcih2YXIgVD0wO1Q8bTtUKyspZm9yKHZhciBrPTA7azxtO2srKylpZigocy5kaWFnb25hbHx8ayE9PVQpJiYocy51cHBlcnx8IShUPmspKSYmKHMubG93ZXJ8fCEoVDxrKSkpe3ZhciBBPWYocy5pZCxULGspLE09dGhpcy5wYXNzZXNbQV18fCh0aGlzLnBhc3Nlc1tBXT17fSk7aWYoby5kYXRhJiYoby50cmFuc3Bvc2U/TS5wb3NpdGlvbnM9e3g6e2J1ZmZlcjpzLmJ1ZmZlcixvZmZzZXQ6ayxjb3VudDpnLHN0cmlkZTptfSx5OntidWZmZXI6cy5idWZmZXIsb2Zmc2V0OlQsY291bnQ6ZyxzdHJpZGU6bX19Ok0ucG9zaXRpb25zPXt4OntidWZmZXI6cy5idWZmZXIsb2Zmc2V0OmsqZyxjb3VudDpnfSx5OntidWZmZXI6cy5idWZmZXIsb2Zmc2V0OlQqZyxjb3VudDpnfX0sTS5ib3VuZHM9aChzLmJvdW5kcyxULGspKSxvLmRvbWFpbnx8by52aWV3cG9ydHx8by5kYXRhKXt2YXIgUz1kP2gocy5wYWRkaW5nLFQsayk6cy5wYWRkaW5nO2lmKHMuZG9tYWluKXt2YXIgRT1oKHMuZG9tYWluLFQsayksTD1FWzBdLEM9RVsxXSxQPUVbMl0sST1FWzNdO00udmlld3BvcnQ9W3grTCp2K1NbMF0sYitDKnkrU1sxXSx4K1Aqdi1TWzJdLGIrSSp5LVNbM11dfWVsc2UgTS52aWV3cG9ydD1beCtrKl8rXypTWzBdLGIrVCp3K3cqU1sxXSx4KyhrKzEpKl8tXypTWzJdLGIrKFQrMSkqdy13KlNbM11dfW8uY29sb3ImJihNLmNvbG9yPXMuY29sb3IpLG8uc2l6ZSYmKE0uc2l6ZT1zLnNpemUpLG8ubWFya2VyJiYoTS5tYXJrZXI9cy5tYXJrZXIpLG8uYm9yZGVyU2l6ZSYmKE0uYm9yZGVyU2l6ZT1zLmJvcmRlclNpemUpLG8uYm9yZGVyQ29sb3ImJihNLmJvcmRlckNvbG9yPXMuYm9yZGVyQ29sb3IpLG8ub3BhY2l0eSYmKE0ub3BhY2l0eT1zLm9wYWNpdHkpLG8ucmFuZ2UmJihNLnJhbmdlPW4/aChzLnJhbmdlLFQsayk6cy5yYW5nZXx8TS5ib3VuZHMpLHMucGFzc2VzLnB1c2goQSl9cmV0dXJuIHRoaXN9LHUucHJvdG90eXBlLmRyYXc9ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT1bXSxyPWFyZ3VtZW50cy5sZW5ndGg7ci0tOyllW3JdPWFyZ3VtZW50c1tyXTtpZihlLmxlbmd0aCl7Zm9yKHZhciBuPVtdLGk9MDtpPGUubGVuZ3RoO2krKylpZigibnVtYmVyIj09dHlwZW9mIGVbaV0pe3ZhciBhPXRoaXMudHJhY2VzW2VbaV1dLG89YS5wYXNzZXMsbD1hLnBhc3NPZmZzZXQ7bi5wdXNoLmFwcGx5KG4scyhsLGwrby5sZW5ndGgpKX1lbHNlIGlmKGVbaV0ubGVuZ3RoKXt2YXIgYz1lW2ldLHU9dGhpcy50cmFjZXNbaV0sZj11LnBhc3NlcyxoPXUucGFzc09mZnNldDtmPWYubWFwKChmdW5jdGlvbih0LGUpe25baCtlXT1jfSkpfSh0PXRoaXMuc2NhdHRlcikuZHJhdy5hcHBseSh0LG4pfWVsc2UgdGhpcy5zY2F0dGVyLmRyYXcoKTtyZXR1cm4gdGhpc30sdS5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRyYWNlcy5mb3JFYWNoKChmdW5jdGlvbih0KXt0LmJ1ZmZlciYmdC5idWZmZXIuZGVzdHJveSYmdC5idWZmZXIuZGVzdHJveSgpfSkpLHRoaXMudHJhY2VzPW51bGwsdGhpcy5wYXNzZXM9bnVsbCx0aGlzLnNjYXR0ZXIuZGVzdHJveSgpLHRoaXN9fSx7ImFycmF5LWJvdW5kcyI6NzEsImFycmF5LXJhbmdlIjo3NCwiZmxhdHRlbi12ZXJ0ZXgtZGF0YSI6MTkxLCJwYXJzZS1yZWN0IjoyNDksInBpY2stYnktYWxpYXMiOjI1MyxyYWY6Mjc5LCJyZWdsLXNjYXR0ZXIyZCI6MjgyfV0sMjg0OltmdW5jdGlvbih0LGUscil7IWZ1bmN0aW9uKHQsbil7Im9iamVjdCI9PXR5cGVvZiByJiZ2b2lkIDAhPT1lP2UuZXhwb3J0cz1uKCk6dC5jcmVhdGVSRUdMPW4oKX0odGhpcywoZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7dGhpcy5pZD1xKyssdGhpcy50eXBlPXQsdGhpcy5kYXRhPWV9ZnVuY3Rpb24gZSh0KXtyZXR1cm4iWyIrZnVuY3Rpb24gdChlKXtpZigwPT09ZS5sZW5ndGgpcmV0dXJuW107dmFyIHI9ZS5jaGFyQXQoMCksbj1lLmNoYXJBdChlLmxlbmd0aC0xKTtpZigxPGUubGVuZ3RoJiZyPT09biYmKCciJz09PXJ8fCInIj09PXIpKXJldHVyblsnIicrZS5zdWJzdHIoMSxlLmxlbmd0aC0yKS5yZXBsYWNlKC9cXC9nLCJcXFxcIikucmVwbGFjZSgvIi9nLCdcXCInKSsnIiddO2lmKHI9L1xbKGZhbHNlfHRydWV8bnVsbHxcZCt8J1teJ10qJ3wiW14iXSoiKVxdLy5leGVjKGUpKXJldHVybiB0KGUuc3Vic3RyKDAsci5pbmRleCkpLmNvbmNhdCh0KHJbMV0pKS5jb25jYXQodChlLnN1YnN0cihyLmluZGV4K3JbMF0ubGVuZ3RoKSkpO2lmKDE9PT0ocj1lLnNwbGl0KCIuIikpLmxlbmd0aClyZXR1cm5bJyInK2UucmVwbGFjZSgvXFwvZywiXFxcXCIpLnJlcGxhY2UoLyIvZywnXFwiJykrJyInXTtmb3IoZT1bXSxuPTA7bjxyLmxlbmd0aDsrK24pZT1lLmNvbmNhdCh0KHJbbl0pKTtyZXR1cm4gZX0odCkuam9pbigiXVsiKSsiXSJ9ZnVuY3Rpb24gcih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/dC5zcGxpdCgpOnR9ZnVuY3Rpb24gbih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/ZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0KTp0fWZ1bmN0aW9uIGkodCl7dmFyIGUsaSxhLG8scz10fHx7fTt0PXt9O3ZhciBsPVtdLGM9W10sdT0idW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdz8xOndpbmRvdy5kZXZpY2VQaXhlbFJhdGlvLGY9ITEsaD17fSxwPWZ1bmN0aW9uKHQpe30sZD1mdW5jdGlvbigpe307aWYoInN0cmluZyI9PXR5cGVvZiBzP2U9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzKToib2JqZWN0Ij09dHlwZW9mIHMmJigic3RyaW5nIj09dHlwZW9mIHMubm9kZU5hbWUmJiJmdW5jdGlvbiI9PXR5cGVvZiBzLmFwcGVuZENoaWxkJiYiZnVuY3Rpb24iPT10eXBlb2Ygcy5nZXRCb3VuZGluZ0NsaWVudFJlY3Q/ZT1zOiJmdW5jdGlvbiI9PXR5cGVvZiBzLmRyYXdBcnJheXN8fCJmdW5jdGlvbiI9PXR5cGVvZiBzLmRyYXdFbGVtZW50cz9hPShvPXMpLmNhbnZhczooImdsImluIHM/bz1zLmdsOiJjYW52YXMiaW4gcz9hPW4ocy5jYW52YXMpOiJjb250YWluZXIiaW4gcyYmKGk9bihzLmNvbnRhaW5lcikpLCJhdHRyaWJ1dGVzImluIHMmJih0PXMuYXR0cmlidXRlcyksImV4dGVuc2lvbnMiaW4gcyYmKGw9cihzLmV4dGVuc2lvbnMpKSwib3B0aW9uYWxFeHRlbnNpb25zImluIHMmJihjPXIocy5vcHRpb25hbEV4dGVuc2lvbnMpKSwib25Eb25lImluIHMmJihwPXMub25Eb25lKSwicHJvZmlsZSJpbiBzJiYoZj0hIXMucHJvZmlsZSksInBpeGVsUmF0aW8iaW4gcyYmKHU9K3MucGl4ZWxSYXRpbyksImNhY2hlZENvZGUiaW4gcyYmKGg9cy5jYWNoZWRDb2RlKSkpLGUmJigiY2FudmFzIj09PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKT9hPWU6aT1lKSwhbyl7aWYoIWEpe2lmKCEoZT1mdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gbigpe3ZhciBlPXdpbmRvdy5pbm5lcldpZHRoLG49d2luZG93LmlubmVySGVpZ2h0O3QhPT1kb2N1bWVudC5ib2R5JiYoZT0obj1hLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKS5yaWdodC1uLmxlZnQsbj1uLmJvdHRvbS1uLnRvcCksYS53aWR0aD1yKmUsYS5oZWlnaHQ9cipufXZhciBpLGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7cmV0dXJuIEgoYS5zdHlsZSx7Ym9yZGVyOjAsbWFyZ2luOjAscGFkZGluZzowLHRvcDowLGxlZnQ6MCx3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIn0pLHQuYXBwZW5kQ2hpbGQoYSksdD09PWRvY3VtZW50LmJvZHkmJihhLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsSCh0LnN0eWxlLHttYXJnaW46MCxwYWRkaW5nOjB9KSksdCE9PWRvY3VtZW50LmJvZHkmJiJmdW5jdGlvbiI9PXR5cGVvZiBSZXNpemVPYnNlcnZlcj8oaT1uZXcgUmVzaXplT2JzZXJ2ZXIoKGZ1bmN0aW9uKCl7c2V0VGltZW91dChuKX0pKSkub2JzZXJ2ZSh0KTp3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixuLCExKSxuKCkse2NhbnZhczphLG9uRGVzdHJveTpmdW5jdGlvbigpe2k/aS5kaXNjb25uZWN0KCk6d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsbiksdC5yZW1vdmVDaGlsZChhKX19fShpfHxkb2N1bWVudC5ib2R5LDAsdSkpKXJldHVybiBudWxsO2E9ZS5jYW52YXMsZD1lLm9uRGVzdHJveX12b2lkIDA9PT10LnByZW11bHRpcGxpZWRBbHBoYSYmKHQucHJlbXVsdGlwbGllZEFscGhhPSEwKSxvPWZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gcihyKXt0cnl7cmV0dXJuIHQuZ2V0Q29udGV4dChyLGUpfWNhdGNoKHQpe3JldHVybiBudWxsfX1yZXR1cm4gcigid2ViZ2wiKXx8cigiZXhwZXJpbWVudGFsLXdlYmdsIil8fHIoIndlYmdsLWV4cGVyaW1lbnRhbCIpfShhLHQpfXJldHVybiBvP3tnbDpvLGNhbnZhczphLGNvbnRhaW5lcjppLGV4dGVuc2lvbnM6bCxvcHRpb25hbEV4dGVuc2lvbnM6YyxwaXhlbFJhdGlvOnUscHJvZmlsZTpmLGNhY2hlZENvZGU6aCxvbkRvbmU6cCxvbkRlc3Ryb3k6ZH06KGQoKSxwKCJ3ZWJnbCBub3Qgc3VwcG9ydGVkLCB0cnkgdXBncmFkaW5nIHlvdXIgYnJvd3NlciBvciBncmFwaGljcyBkcml2ZXJzIGh0dHA6Ly9nZXQud2ViZ2wub3JnIiksbnVsbCl9ZnVuY3Rpb24gYSh0LGUpe2Zvcih2YXIgcj1BcnJheSh0KSxuPTA7bjx0OysrbilyW25dPWUobik7cmV0dXJuIHJ9ZnVuY3Rpb24gbyh0KXt2YXIgZSxyO3JldHVybiBlPSg2NTUzNTx0KTw8NCxlfD1yPSgyNTU8KHQ+Pj49ZSkpPDwzLChlfD1yPSgxNTwodD4+Pj1yKSk8PDIpfChyPSgzPCh0Pj4+PXIpKTw8MSl8dD4+PnI+PjF9ZnVuY3Rpb24gcygpe2Z1bmN0aW9uIHQodCl7dDp7Zm9yKHZhciBlPTE2OzI2ODQzNTQ1Nj49ZTtlKj0xNilpZih0PD1lKXt0PWU7YnJlYWsgdH10PTB9cmV0dXJuIDA8KGU9cltvKHQpPj4yXSkubGVuZ3RoP2UucG9wKCk6bmV3IEFycmF5QnVmZmVyKHQpfWZ1bmN0aW9uIGUodCl7cltvKHQuYnl0ZUxlbmd0aCk+PjJdLnB1c2godCl9dmFyIHI9YSg4LChmdW5jdGlvbigpe3JldHVybltdfSkpO3JldHVybnthbGxvYzp0LGZyZWU6ZSxhbGxvY1R5cGU6ZnVuY3Rpb24oZSxyKXt2YXIgbj1udWxsO3N3aXRjaChlKXtjYXNlIDUxMjA6bj1uZXcgSW50OEFycmF5KHQociksMCxyKTticmVhaztjYXNlIDUxMjE6bj1uZXcgVWludDhBcnJheSh0KHIpLDAscik7YnJlYWs7Y2FzZSA1MTIyOm49bmV3IEludDE2QXJyYXkodCgyKnIpLDAscik7YnJlYWs7Y2FzZSA1MTIzOm49bmV3IFVpbnQxNkFycmF5KHQoMipyKSwwLHIpO2JyZWFrO2Nhc2UgNTEyNDpuPW5ldyBJbnQzMkFycmF5KHQoNCpyKSwwLHIpO2JyZWFrO2Nhc2UgNTEyNTpuPW5ldyBVaW50MzJBcnJheSh0KDQqciksMCxyKTticmVhaztjYXNlIDUxMjY6bj1uZXcgRmxvYXQzMkFycmF5KHQoNCpyKSwwLHIpO2JyZWFrO2RlZmF1bHQ6cmV0dXJuIG51bGx9cmV0dXJuIG4ubGVuZ3RoIT09cj9uLnN1YmFycmF5KDAscik6bn0sZnJlZVR5cGU6ZnVuY3Rpb24odCl7ZSh0LmJ1ZmZlcil9fX1mdW5jdGlvbiBsKHQpe3JldHVybiEhdCYmIm9iamVjdCI9PXR5cGVvZiB0JiZBcnJheS5pc0FycmF5KHQuc2hhcGUpJiZBcnJheS5pc0FycmF5KHQuc3RyaWRlKSYmIm51bWJlciI9PXR5cGVvZiB0Lm9mZnNldCYmdC5zaGFwZS5sZW5ndGg9PT10LnN0cmlkZS5sZW5ndGgmJihBcnJheS5pc0FycmF5KHQuZGF0YSl8fEoodC5kYXRhKSl9ZnVuY3Rpb24gYyh0LGUscixuLGksYSl7Zm9yKHZhciBvPTA7bzxlOysrbylmb3IodmFyIHM9dFtvXSxsPTA7bDxyOysrbClmb3IodmFyIGM9c1tsXSx1PTA7dTxuOysrdSlpW2ErK109Y1t1XX1mdW5jdGlvbiB1KHQpe3JldHVybiAwfCRbT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpXX1mdW5jdGlvbiBmKHQsZSl7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDsrK3IpdFtyXT1lW3JdfWZ1bmN0aW9uIGgodCxlLHIsbixpLGEsbyl7Zm9yKHZhciBzPTAsbD0wO2w8cjsrK2wpZm9yKHZhciBjPTA7YzxuOysrYyl0W3MrK109ZVtpKmwrYSpjK29dfWZ1bmN0aW9uIHAodCxlLHIsbil7ZnVuY3Rpb24gaShlKXt0aGlzLmlkPWMrKyx0aGlzLmJ1ZmZlcj10LmNyZWF0ZUJ1ZmZlcigpLHRoaXMudHlwZT1lLHRoaXMudXNhZ2U9MzUwNDQsdGhpcy5ieXRlTGVuZ3RoPTAsdGhpcy5kaW1lbnNpb249MSx0aGlzLmR0eXBlPTUxMjEsdGhpcy5wZXJzaXN0ZW50RGF0YT1udWxsLHIucHJvZmlsZSYmKHRoaXMuc3RhdHM9e3NpemU6MH0pfWZ1bmN0aW9uIGEoZSxyLG4pe2UuYnl0ZUxlbmd0aD1yLmJ5dGVMZW5ndGgsdC5idWZmZXJEYXRhKGUudHlwZSxyLG4pfWZ1bmN0aW9uIG8odCxlLHIsbixpLG8pe2lmKHQudXNhZ2U9cixBcnJheS5pc0FycmF5KGUpKXtpZih0LmR0eXBlPW58fDUxMjYsMDxlLmxlbmd0aClpZihBcnJheS5pc0FycmF5KGVbMF0pKXtpPW50KGUpO2Zvcih2YXIgcz1uPTE7czxpLmxlbmd0aDsrK3Mpbio9aVtzXTt0LmRpbWVuc2lvbj1uLGEodCxlPXJ0KGUsaSx0LmR0eXBlKSxyKSxvP3QucGVyc2lzdGVudERhdGE9ZTpYLmZyZWVUeXBlKGUpfWVsc2UibnVtYmVyIj09dHlwZW9mIGVbMF0/KHQuZGltZW5zaW9uPWksZihpPVguYWxsb2NUeXBlKHQuZHR5cGUsZS5sZW5ndGgpLGUpLGEodCxpLHIpLG8/dC5wZXJzaXN0ZW50RGF0YT1pOlguZnJlZVR5cGUoaSkpOkooZVswXSkmJih0LmRpbWVuc2lvbj1lWzBdLmxlbmd0aCx0LmR0eXBlPW58fHUoZVswXSl8fDUxMjYsYSh0LGU9cnQoZSxbZS5sZW5ndGgsZVswXS5sZW5ndGhdLHQuZHR5cGUpLHIpLG8/dC5wZXJzaXN0ZW50RGF0YT1lOlguZnJlZVR5cGUoZSkpfWVsc2UgaWYoSihlKSl0LmR0eXBlPW58fHUoZSksdC5kaW1lbnNpb249aSxhKHQsZSxyKSxvJiYodC5wZXJzaXN0ZW50RGF0YT1uZXcgVWludDhBcnJheShuZXcgVWludDhBcnJheShlLmJ1ZmZlcikpKTtlbHNlIGlmKGwoZSkpe2k9ZS5zaGFwZTt2YXIgYz1lLnN0cmlkZSxwPShzPWUub2Zmc2V0LDApLGQ9MCxtPTAsZz0wOzE9PT1pLmxlbmd0aD8ocD1pWzBdLGQ9MSxtPWNbMF0sZz0wKToyPT09aS5sZW5ndGgmJihwPWlbMF0sZD1pWzFdLG09Y1swXSxnPWNbMV0pLHQuZHR5cGU9bnx8dShlLmRhdGEpfHw1MTI2LHQuZGltZW5zaW9uPWQsaChpPVguYWxsb2NUeXBlKHQuZHR5cGUscCpkKSxlLmRhdGEscCxkLG0sZyxzKSxhKHQsaSxyKSxvP3QucGVyc2lzdGVudERhdGE9aTpYLmZyZWVUeXBlKGkpfWVsc2UgZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyJiYodC5kdHlwZT01MTIxLHQuZGltZW5zaW9uPWksYSh0LGUsciksbyYmKHQucGVyc2lzdGVudERhdGE9bmV3IFVpbnQ4QXJyYXkobmV3IFVpbnQ4QXJyYXkoZSkpKSl9ZnVuY3Rpb24gcyhyKXtlLmJ1ZmZlckNvdW50LS0sbihyKSx0LmRlbGV0ZUJ1ZmZlcihyLmJ1ZmZlciksci5idWZmZXI9bnVsbCxkZWxldGUgcFtyLmlkXX12YXIgYz0wLHA9e307aS5wcm90b3R5cGUuYmluZD1mdW5jdGlvbigpe3QuYmluZEJ1ZmZlcih0aGlzLnR5cGUsdGhpcy5idWZmZXIpfSxpLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7cyh0aGlzKX07dmFyIGQ9W107cmV0dXJuIHIucHJvZmlsZSYmKGUuZ2V0VG90YWxCdWZmZXJTaXplPWZ1bmN0aW9uKCl7dmFyIHQ9MDtyZXR1cm4gT2JqZWN0LmtleXMocCkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dCs9cFtlXS5zdGF0cy5zaXplfSkpLHR9KSx7Y3JlYXRlOmZ1bmN0aW9uKG4sYSxjLGQpe2Z1bmN0aW9uIG0oZSl7dmFyIG49MzUwNDQsaT1udWxsLGE9MCxzPTAsYz0xO3JldHVybiBBcnJheS5pc0FycmF5KGUpfHxKKGUpfHxsKGUpfHxlIGluc3RhbmNlb2YgQXJyYXlCdWZmZXI/aT1lOiJudW1iZXIiPT10eXBlb2YgZT9hPTB8ZTplJiYoImRhdGEiaW4gZSYmKGk9ZS5kYXRhKSwidXNhZ2UiaW4gZSYmKG49ZXRbZS51c2FnZV0pLCJ0eXBlImluIGUmJihzPXR0W2UudHlwZV0pLCJkaW1lbnNpb24iaW4gZSYmKGM9MHxlLmRpbWVuc2lvbiksImxlbmd0aCJpbiBlJiYoYT0wfGUubGVuZ3RoKSksZy5iaW5kKCksaT9vKGcsaSxuLHMsYyxkKTooYSYmdC5idWZmZXJEYXRhKGcudHlwZSxhLG4pLGcuZHR5cGU9c3x8NTEyMSxnLnVzYWdlPW4sZy5kaW1lbnNpb249YyxnLmJ5dGVMZW5ndGg9YSksci5wcm9maWxlJiYoZy5zdGF0cy5zaXplPWcuYnl0ZUxlbmd0aCppdFtnLmR0eXBlXSksbX1lLmJ1ZmZlckNvdW50Kys7dmFyIGc9bmV3IGkoYSk7cmV0dXJuIHBbZy5pZF09ZyxjfHxtKG4pLG0uX3JlZ2xUeXBlPSJidWZmZXIiLG0uX2J1ZmZlcj1nLG0uc3ViZGF0YT1mdW5jdGlvbihlLHIpe3ZhciBuLGk9MHwocnx8MCk7aWYoZy5iaW5kKCksSihlKXx8ZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKXQuYnVmZmVyU3ViRGF0YShnLnR5cGUsaSxlKTtlbHNlIGlmKEFycmF5LmlzQXJyYXkoZSkpe2lmKDA8ZS5sZW5ndGgpaWYoIm51bWJlciI9PXR5cGVvZiBlWzBdKXt2YXIgYT1YLmFsbG9jVHlwZShnLmR0eXBlLGUubGVuZ3RoKTtmKGEsZSksdC5idWZmZXJTdWJEYXRhKGcudHlwZSxpLGEpLFguZnJlZVR5cGUoYSl9ZWxzZShBcnJheS5pc0FycmF5KGVbMF0pfHxKKGVbMF0pKSYmKG49bnQoZSksYT1ydChlLG4sZy5kdHlwZSksdC5idWZmZXJTdWJEYXRhKGcudHlwZSxpLGEpLFguZnJlZVR5cGUoYSkpfWVsc2UgaWYobChlKSl7bj1lLnNoYXBlO3ZhciBvPWUuc3RyaWRlLHM9YT0wLGM9MCxwPTA7MT09PW4ubGVuZ3RoPyhhPW5bMF0scz0xLGM9b1swXSxwPTApOjI9PT1uLmxlbmd0aCYmKGE9blswXSxzPW5bMV0sYz1vWzBdLHA9b1sxXSksbj1BcnJheS5pc0FycmF5KGUuZGF0YSk/Zy5kdHlwZTp1KGUuZGF0YSksaChuPVguYWxsb2NUeXBlKG4sYSpzKSxlLmRhdGEsYSxzLGMscCxlLm9mZnNldCksdC5idWZmZXJTdWJEYXRhKGcudHlwZSxpLG4pLFguZnJlZVR5cGUobil9cmV0dXJuIG19LHIucHJvZmlsZSYmKG0uc3RhdHM9Zy5zdGF0cyksbS5kZXN0cm95PWZ1bmN0aW9uKCl7cyhnKX0sbX0sY3JlYXRlU3RyZWFtOmZ1bmN0aW9uKHQsZSl7dmFyIHI9ZC5wb3AoKTtyZXR1cm4gcnx8KHI9bmV3IGkodCkpLHIuYmluZCgpLG8ocixlLDM1MDQwLDAsMSwhMSkscn0sZGVzdHJveVN0cmVhbTpmdW5jdGlvbih0KXtkLnB1c2godCl9LGNsZWFyOmZ1bmN0aW9uKCl7SyhwKS5mb3JFYWNoKHMpLGQuZm9yRWFjaChzKX0sZ2V0QnVmZmVyOmZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0Ll9idWZmZXIgaW5zdGFuY2VvZiBpP3QuX2J1ZmZlcjpudWxsfSxyZXN0b3JlOmZ1bmN0aW9uKCl7SyhwKS5mb3JFYWNoKChmdW5jdGlvbihlKXtlLmJ1ZmZlcj10LmNyZWF0ZUJ1ZmZlcigpLHQuYmluZEJ1ZmZlcihlLnR5cGUsZS5idWZmZXIpLHQuYnVmZmVyRGF0YShlLnR5cGUsZS5wZXJzaXN0ZW50RGF0YXx8ZS5ieXRlTGVuZ3RoLGUudXNhZ2UpfSkpfSxfaW5pdEJ1ZmZlcjpvfX1mdW5jdGlvbiBkKHQsZSxyLG4pe2Z1bmN0aW9uIGkodCl7dGhpcy5pZD1jKyssc1t0aGlzLmlkXT10aGlzLHRoaXMuYnVmZmVyPXQsdGhpcy5wcmltVHlwZT00LHRoaXMudHlwZT10aGlzLnZlcnRDb3VudD0wfWZ1bmN0aW9uIGEobixpLGEsbyxzLGMsdSl7dmFyIGY7aWYobi5idWZmZXIuYmluZCgpLGk/KChmPXUpfHxKKGkpJiYoIWwoaSl8fEooaS5kYXRhKSl8fChmPWUub2VzX2VsZW1lbnRfaW5kZXhfdWludD81MTI1OjUxMjMpLHIuX2luaXRCdWZmZXIobi5idWZmZXIsaSxhLGYsMykpOih0LmJ1ZmZlckRhdGEoMzQ5NjMsYyxhKSxuLmJ1ZmZlci5kdHlwZT1mfHw1MTIxLG4uYnVmZmVyLnVzYWdlPWEsbi5idWZmZXIuZGltZW5zaW9uPTMsbi5idWZmZXIuYnl0ZUxlbmd0aD1jKSxmPXUsIXUpe3N3aXRjaChuLmJ1ZmZlci5kdHlwZSl7Y2FzZSA1MTIxOmNhc2UgNTEyMDpmPTUxMjE7YnJlYWs7Y2FzZSA1MTIzOmNhc2UgNTEyMjpmPTUxMjM7YnJlYWs7Y2FzZSA1MTI1OmNhc2UgNTEyNDpmPTUxMjV9bi5idWZmZXIuZHR5cGU9Zn1uLnR5cGU9ZiwwPihpPXMpJiYoaT1uLmJ1ZmZlci5ieXRlTGVuZ3RoLDUxMjM9PT1mP2k+Pj0xOjUxMjU9PT1mJiYoaT4+PTIpKSxuLnZlcnRDb3VudD1pLGk9bywwPm8mJihpPTQsMT09PShvPW4uYnVmZmVyLmRpbWVuc2lvbikmJihpPTApLDI9PT1vJiYoaT0xKSwzPT09byYmKGk9NCkpLG4ucHJpbVR5cGU9aX1mdW5jdGlvbiBvKHQpe24uZWxlbWVudHNDb3VudC0tLGRlbGV0ZSBzW3QuaWRdLHQuYnVmZmVyLmRlc3Ryb3koKSx0LmJ1ZmZlcj1udWxsfXZhciBzPXt9LGM9MCx1PXt1aW50ODo1MTIxLHVpbnQxNjo1MTIzfTtlLm9lc19lbGVtZW50X2luZGV4X3VpbnQmJih1LnVpbnQzMj01MTI1KSxpLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKCl7dGhpcy5idWZmZXIuYmluZCgpfTt2YXIgZj1bXTtyZXR1cm57Y3JlYXRlOmZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gcyh0KXtpZih0KWlmKCJudW1iZXIiPT10eXBlb2YgdCljKHQpLGYucHJpbVR5cGU9NCxmLnZlcnRDb3VudD0wfHQsZi50eXBlPTUxMjE7ZWxzZXt2YXIgZT1udWxsLHI9MzUwNDQsbj0tMSxpPS0xLG89MCxoPTA7QXJyYXkuaXNBcnJheSh0KXx8Sih0KXx8bCh0KT9lPXQ6KCJkYXRhImluIHQmJihlPXQuZGF0YSksInVzYWdlImluIHQmJihyPWV0W3QudXNhZ2VdKSwicHJpbWl0aXZlImluIHQmJihuPWF0W3QucHJpbWl0aXZlXSksImNvdW50ImluIHQmJihpPTB8dC5jb3VudCksInR5cGUiaW4gdCYmKGg9dVt0LnR5cGVdKSwibGVuZ3RoImluIHQ/bz0wfHQubGVuZ3RoOihvPWksNTEyMz09PWh8fDUxMjI9PT1oP28qPTI6NTEyNSE9PWgmJjUxMjQhPT1ofHwobyo9NCkpKSxhKGYsZSxyLG4saSxvLGgpfWVsc2UgYygpLGYucHJpbVR5cGU9NCxmLnZlcnRDb3VudD0wLGYudHlwZT01MTIxO3JldHVybiBzfXZhciBjPXIuY3JlYXRlKG51bGwsMzQ5NjMsITApLGY9bmV3IGkoYy5fYnVmZmVyKTtyZXR1cm4gbi5lbGVtZW50c0NvdW50Kysscyh0KSxzLl9yZWdsVHlwZT0iZWxlbWVudHMiLHMuX2VsZW1lbnRzPWYscy5zdWJkYXRhPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGMuc3ViZGF0YSh0LGUpLHN9LHMuZGVzdHJveT1mdW5jdGlvbigpe28oZil9LHN9LGNyZWF0ZVN0cmVhbTpmdW5jdGlvbih0KXt2YXIgZT1mLnBvcCgpO3JldHVybiBlfHwoZT1uZXcgaShyLmNyZWF0ZShudWxsLDM0OTYzLCEwLCExKS5fYnVmZmVyKSksYShlLHQsMzUwNDAsLTEsLTEsMCwwKSxlfSxkZXN0cm95U3RyZWFtOmZ1bmN0aW9uKHQpe2YucHVzaCh0KX0sZ2V0RWxlbWVudHM6ZnVuY3Rpb24odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQmJnQuX2VsZW1lbnRzIGluc3RhbmNlb2YgaT90Ll9lbGVtZW50czpudWxsfSxjbGVhcjpmdW5jdGlvbigpe0socykuZm9yRWFjaChvKX19fWZ1bmN0aW9uIG0odCl7Zm9yKHZhciBlPVguYWxsb2NUeXBlKDUxMjMsdC5sZW5ndGgpLHI9MDtyPHQubGVuZ3RoOysrcilpZihpc05hTih0W3JdKSllW3JdPTY1NTM1O2Vsc2UgaWYoMS8wPT09dFtyXSllW3JdPTMxNzQ0O2Vsc2UgaWYoLTEvMD09PXRbcl0pZVtyXT02NDUxMjtlbHNle290WzBdPXRbcl07dmFyIG49KGE9c3RbMF0pPj4+MzE8PDE1LGk9KGE8PDE+Pj4yNCktMTI3LGE9YT4+MTMmMTAyMztlW3JdPS0yND5pP246LTE0Pmk/bisoYSsxMDI0Pj4tMTQtaSk6MTU8aT9uKzMxNzQ0Om4rKGkrMTU8PDEwKSthfXJldHVybiBlfWZ1bmN0aW9uIGcodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCl8fEoodCl9ZnVuY3Rpb24gdih0KXtyZXR1cm4iW29iamVjdCAiK3QrIl0ifWZ1bmN0aW9uIHkodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCkmJigwPT09dC5sZW5ndGh8fCJudW1iZXIiPT10eXBlb2YgdFswXSl9ZnVuY3Rpb24geCh0KXtyZXR1cm4hKCFBcnJheS5pc0FycmF5KHQpfHwwPT09dC5sZW5ndGh8fCFnKHRbMF0pKX1mdW5jdGlvbiBiKHQpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9ZnVuY3Rpb24gXyh0KXtpZighdClyZXR1cm4hMTt2YXIgZT1iKHQpO3JldHVybiAwPD12dC5pbmRleE9mKGUpfHwoeSh0KXx8eCh0KXx8bCh0KSl9ZnVuY3Rpb24gdyh0LGUpezM2MTkzPT09dC50eXBlPyh0LmRhdGE9bShlKSxYLmZyZWVUeXBlKGUpKTp0LmRhdGE9ZX1mdW5jdGlvbiBUKHQsZSxyLG4saSxhKXtpZih0PXZvaWQgMCE9PXh0W3RdP3h0W3RdOnV0W3RdKnl0W2VdLGEmJih0Kj02KSxpKXtmb3Iobj0wOzE8PXI7KW4rPXQqcipyLHIvPTI7cmV0dXJuIG59cmV0dXJuIHQqcipufWZ1bmN0aW9uIGsodCxlLHIsbixpLGEsbyl7ZnVuY3Rpb24gcygpe3RoaXMuZm9ybWF0PXRoaXMuaW50ZXJuYWxmb3JtYXQ9NjQwOCx0aGlzLnR5cGU9NTEyMSx0aGlzLmZsaXBZPXRoaXMucHJlbXVsdGlwbHlBbHBoYT10aGlzLmNvbXByZXNzZWQ9ITEsdGhpcy51bnBhY2tBbGlnbm1lbnQ9MSx0aGlzLmNvbG9yU3BhY2U9Mzc0NDQsdGhpcy5jaGFubmVscz10aGlzLmhlaWdodD10aGlzLndpZHRoPTB9ZnVuY3Rpb24gYyh0LGUpe3QuaW50ZXJuYWxmb3JtYXQ9ZS5pbnRlcm5hbGZvcm1hdCx0LmZvcm1hdD1lLmZvcm1hdCx0LnR5cGU9ZS50eXBlLHQuY29tcHJlc3NlZD1lLmNvbXByZXNzZWQsdC5wcmVtdWx0aXBseUFscGhhPWUucHJlbXVsdGlwbHlBbHBoYSx0LmZsaXBZPWUuZmxpcFksdC51bnBhY2tBbGlnbm1lbnQ9ZS51bnBhY2tBbGlnbm1lbnQsdC5jb2xvclNwYWNlPWUuY29sb3JTcGFjZSx0LndpZHRoPWUud2lkdGgsdC5oZWlnaHQ9ZS5oZWlnaHQsdC5jaGFubmVscz1lLmNoYW5uZWxzfWZ1bmN0aW9uIHUodCxlKXtpZigib2JqZWN0Ij09dHlwZW9mIGUmJmUpeyJwcmVtdWx0aXBseUFscGhhImluIGUmJih0LnByZW11bHRpcGx5QWxwaGE9ZS5wcmVtdWx0aXBseUFscGhhKSwiZmxpcFkiaW4gZSYmKHQuZmxpcFk9ZS5mbGlwWSksImFsaWdubWVudCJpbiBlJiYodC51bnBhY2tBbGlnbm1lbnQ9ZS5hbGlnbm1lbnQpLCJjb2xvclNwYWNlImluIGUmJih0LmNvbG9yU3BhY2U9VltlLmNvbG9yU3BhY2VdKSwidHlwZSJpbiBlJiYodC50eXBlPXFbZS50eXBlXSk7dmFyIHI9dC53aWR0aCxuPXQuaGVpZ2h0LGk9dC5jaGFubmVscyxhPSExOyJzaGFwZSJpbiBlPyhyPWUuc2hhcGVbMF0sbj1lLnNoYXBlWzFdLDM9PT1lLnNoYXBlLmxlbmd0aCYmKGk9ZS5zaGFwZVsyXSxhPSEwKSk6KCJyYWRpdXMiaW4gZSYmKHI9bj1lLnJhZGl1cyksIndpZHRoImluIGUmJihyPWUud2lkdGgpLCJoZWlnaHQiaW4gZSYmKG49ZS5oZWlnaHQpLCJjaGFubmVscyJpbiBlJiYoaT1lLmNoYW5uZWxzLGE9ITApKSx0LndpZHRoPTB8cix0LmhlaWdodD0wfG4sdC5jaGFubmVscz0wfGkscj0hMSwiZm9ybWF0ImluIGUmJihyPWUuZm9ybWF0LG49dC5pbnRlcm5hbGZvcm1hdD1HW3JdLHQuZm9ybWF0PWF0W25dLHIgaW4gcSYmISgidHlwZSJpbiBlKSYmKHQudHlwZT1xW3JdKSxyIGluIFkmJih0LmNvbXByZXNzZWQ9ITApLHI9ITApLCFhJiZyP3QuY2hhbm5lbHM9dXRbdC5mb3JtYXRdOmEmJiFyJiZ0LmNoYW5uZWxzIT09Y3RbdC5mb3JtYXRdJiYodC5mb3JtYXQ9dC5pbnRlcm5hbGZvcm1hdD1jdFt0LmNoYW5uZWxzXSl9fWZ1bmN0aW9uIGYoZSl7dC5waXhlbFN0b3JlaSgzNzQ0MCxlLmZsaXBZKSx0LnBpeGVsU3RvcmVpKDM3NDQxLGUucHJlbXVsdGlwbHlBbHBoYSksdC5waXhlbFN0b3JlaSgzNzQ0MyxlLmNvbG9yU3BhY2UpLHQucGl4ZWxTdG9yZWkoMzMxNyxlLnVucGFja0FsaWdubWVudCl9ZnVuY3Rpb24gaCgpe3MuY2FsbCh0aGlzKSx0aGlzLnlPZmZzZXQ9dGhpcy54T2Zmc2V0PTAsdGhpcy5kYXRhPW51bGwsdGhpcy5uZWVkc0ZyZWU9ITEsdGhpcy5lbGVtZW50PW51bGwsdGhpcy5uZWVkc0NvcHk9ITF9ZnVuY3Rpb24gcCh0LGUpe3ZhciByPW51bGw7aWYoXyhlKT9yPWU6ZSYmKHUodCxlKSwieCJpbiBlJiYodC54T2Zmc2V0PTB8ZS54KSwieSJpbiBlJiYodC55T2Zmc2V0PTB8ZS55KSxfKGUuZGF0YSkmJihyPWUuZGF0YSkpLGUuY29weSl7dmFyIG49aS52aWV3cG9ydFdpZHRoLGE9aS52aWV3cG9ydEhlaWdodDt0LndpZHRoPXQud2lkdGh8fG4tdC54T2Zmc2V0LHQuaGVpZ2h0PXQuaGVpZ2h0fHxhLXQueU9mZnNldCx0Lm5lZWRzQ29weT0hMH1lbHNlIGlmKHIpe2lmKEoocikpdC5jaGFubmVscz10LmNoYW5uZWxzfHw0LHQuZGF0YT1yLCJ0eXBlImluIGV8fDUxMjEhPT10LnR5cGV8fCh0LnR5cGU9MHwkW09iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyKV0pO2Vsc2UgaWYoeShyKSl7c3dpdGNoKHQuY2hhbm5lbHM9dC5jaGFubmVsc3x8NCxhPShuPXIpLmxlbmd0aCx0LnR5cGUpe2Nhc2UgNTEyMTpjYXNlIDUxMjM6Y2FzZSA1MTI1OmNhc2UgNTEyNjooYT1YLmFsbG9jVHlwZSh0LnR5cGUsYSkpLnNldChuKSx0LmRhdGE9YTticmVhaztjYXNlIDM2MTkzOnQuZGF0YT1tKG4pfXQuYWxpZ25tZW50PTEsdC5uZWVkc0ZyZWU9ITB9ZWxzZSBpZihsKHIpKXtuPXIuZGF0YSxBcnJheS5pc0FycmF5KG4pfHw1MTIxIT09dC50eXBlfHwodC50eXBlPTB8JFtPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobildKTthPXIuc2hhcGU7dmFyIG8scyxjLGYsaD1yLnN0cmlkZTszPT09YS5sZW5ndGg/KGM9YVsyXSxmPWhbMl0pOmY9Yz0xLG89YVswXSxzPWFbMV0sYT1oWzBdLGg9aFsxXSx0LmFsaWdubWVudD0xLHQud2lkdGg9byx0LmhlaWdodD1zLHQuY2hhbm5lbHM9Yyx0LmZvcm1hdD10LmludGVybmFsZm9ybWF0PWN0W2NdLHQubmVlZHNGcmVlPSEwLG89ZixyPXIub2Zmc2V0LGM9dC53aWR0aCxmPXQuaGVpZ2h0LHM9dC5jaGFubmVscztmb3IodmFyIHA9WC5hbGxvY1R5cGUoMzYxOTM9PT10LnR5cGU/NTEyNjp0LnR5cGUsYypmKnMpLGQ9MCx2PTA7djxmOysrdilmb3IodmFyIFQ9MDtUPGM7KytUKWZvcih2YXIgaz0wO2s8czsrK2spcFtkKytdPW5bYSpUK2gqditvKmsrcl07dyh0LHApfWVsc2UgaWYoYihyKT09PWZ0fHxiKHIpPT09aHR8fGIocik9PT1wdCliKHIpPT09ZnR8fGIocik9PT1odD90LmVsZW1lbnQ9cjp0LmVsZW1lbnQ9ci5jYW52YXMsdC53aWR0aD10LmVsZW1lbnQud2lkdGgsdC5oZWlnaHQ9dC5lbGVtZW50LmhlaWdodCx0LmNoYW5uZWxzPTQ7ZWxzZSBpZihiKHIpPT09ZHQpdC5lbGVtZW50PXIsdC53aWR0aD1yLndpZHRoLHQuaGVpZ2h0PXIuaGVpZ2h0LHQuY2hhbm5lbHM9NDtlbHNlIGlmKGIocik9PT1tdCl0LmVsZW1lbnQ9cix0LndpZHRoPXIubmF0dXJhbFdpZHRoLHQuaGVpZ2h0PXIubmF0dXJhbEhlaWdodCx0LmNoYW5uZWxzPTQ7ZWxzZSBpZihiKHIpPT09Z3QpdC5lbGVtZW50PXIsdC53aWR0aD1yLnZpZGVvV2lkdGgsdC5oZWlnaHQ9ci52aWRlb0hlaWdodCx0LmNoYW5uZWxzPTQ7ZWxzZSBpZih4KHIpKXtmb3Iobj10LndpZHRofHxyWzBdLmxlbmd0aCxhPXQuaGVpZ2h0fHxyLmxlbmd0aCxoPXQuY2hhbm5lbHMsaD1nKHJbMF1bMF0pP2h8fHJbMF1bMF0ubGVuZ3RoOmh8fDEsbz1RLnNoYXBlKHIpLGM9MSxmPTA7ZjxvLmxlbmd0aDsrK2YpYyo9b1tmXTtjPVguYWxsb2NUeXBlKDM2MTkzPT09dC50eXBlPzUxMjY6dC50eXBlLGMpLFEuZmxhdHRlbihyLG8sIiIsYyksdyh0LGMpLHQuYWxpZ25tZW50PTEsdC53aWR0aD1uLHQuaGVpZ2h0PWEsdC5jaGFubmVscz1oLHQuZm9ybWF0PXQuaW50ZXJuYWxmb3JtYXQ9Y3RbaF0sdC5uZWVkc0ZyZWU9ITB9fWVsc2UgdC53aWR0aD10LndpZHRofHwxLHQuaGVpZ2h0PXQuaGVpZ2h0fHwxLHQuY2hhbm5lbHM9dC5jaGFubmVsc3x8NH1mdW5jdGlvbiBkKGUscixpLGEsbyl7dmFyIHM9ZS5lbGVtZW50LGw9ZS5kYXRhLGM9ZS5pbnRlcm5hbGZvcm1hdCx1PWUuZm9ybWF0LGg9ZS50eXBlLHA9ZS53aWR0aCxkPWUuaGVpZ2h0O2YoZSkscz90LnRleFN1YkltYWdlMkQocixvLGksYSx1LGgscyk6ZS5jb21wcmVzc2VkP3QuY29tcHJlc3NlZFRleFN1YkltYWdlMkQocixvLGksYSxjLHAsZCxsKTplLm5lZWRzQ29weT8obigpLHQuY29weVRleFN1YkltYWdlMkQocixvLGksYSxlLnhPZmZzZXQsZS55T2Zmc2V0LHAsZCkpOnQudGV4U3ViSW1hZ2UyRChyLG8saSxhLHAsZCx1LGgsbCl9ZnVuY3Rpb24gdigpe3JldHVybiBvdC5wb3AoKXx8bmV3IGh9ZnVuY3Rpb24gayh0KXt0Lm5lZWRzRnJlZSYmWC5mcmVlVHlwZSh0LmRhdGEpLGguY2FsbCh0KSxvdC5wdXNoKHQpfWZ1bmN0aW9uIEEoKXtzLmNhbGwodGhpcyksdGhpcy5nZW5NaXBtYXBzPSExLHRoaXMubWlwbWFwSGludD00MzUyLHRoaXMubWlwbWFzaz0wLHRoaXMuaW1hZ2VzPUFycmF5KDE2KX1mdW5jdGlvbiBNKHQsZSxyKXt2YXIgbj10LmltYWdlc1swXT12KCk7dC5taXBtYXNrPTEsbi53aWR0aD10LndpZHRoPWUsbi5oZWlnaHQ9dC5oZWlnaHQ9cixuLmNoYW5uZWxzPXQuY2hhbm5lbHM9NH1mdW5jdGlvbiBTKHQsZSl7dmFyIHI9bnVsbDtpZihfKGUpKWMocj10LmltYWdlc1swXT12KCksdCkscChyLGUpLHQubWlwbWFzaz0xO2Vsc2UgaWYodSh0LGUpLEFycmF5LmlzQXJyYXkoZS5taXBtYXApKWZvcih2YXIgbj1lLm1pcG1hcCxpPTA7aTxuLmxlbmd0aDsrK2kpYyhyPXQuaW1hZ2VzW2ldPXYoKSx0KSxyLndpZHRoPj49aSxyLmhlaWdodD4+PWkscChyLG5baV0pLHQubWlwbWFza3w9MTw8aTtlbHNlIGMocj10LmltYWdlc1swXT12KCksdCkscChyLGUpLHQubWlwbWFzaz0xO2ModCx0LmltYWdlc1swXSl9ZnVuY3Rpb24gRShlLHIpe2Zvcih2YXIgaT1lLmltYWdlcyxhPTA7YTxpLmxlbmd0aCYmaVthXTsrK2Epe3ZhciBvPWlbYV0scz1yLGw9YSxjPW8uZWxlbWVudCx1PW8uZGF0YSxoPW8uaW50ZXJuYWxmb3JtYXQscD1vLmZvcm1hdCxkPW8udHlwZSxtPW8ud2lkdGgsZz1vLmhlaWdodDtmKG8pLGM/dC50ZXhJbWFnZTJEKHMsbCxwLHAsZCxjKTpvLmNvbXByZXNzZWQ/dC5jb21wcmVzc2VkVGV4SW1hZ2UyRChzLGwsaCxtLGcsMCx1KTpvLm5lZWRzQ29weT8obigpLHQuY29weVRleEltYWdlMkQocyxsLHAsby54T2Zmc2V0LG8ueU9mZnNldCxtLGcsMCkpOnQudGV4SW1hZ2UyRChzLGwscCxtLGcsMCxwLGQsdXx8bnVsbCl9fWZ1bmN0aW9uIEwoKXt2YXIgdD1zdC5wb3AoKXx8bmV3IEE7cy5jYWxsKHQpO2Zvcih2YXIgZT10Lm1pcG1hc2s9MDsxNj5lOysrZSl0LmltYWdlc1tlXT1udWxsO3JldHVybiB0fWZ1bmN0aW9uIEModCl7Zm9yKHZhciBlPXQuaW1hZ2VzLHI9MDtyPGUubGVuZ3RoOysrcillW3JdJiZrKGVbcl0pLGVbcl09bnVsbDtzdC5wdXNoKHQpfWZ1bmN0aW9uIFAoKXt0aGlzLm1hZ0ZpbHRlcj10aGlzLm1pbkZpbHRlcj05NzI4LHRoaXMud3JhcFQ9dGhpcy53cmFwUz0zMzA3MSx0aGlzLmFuaXNvdHJvcGljPTEsdGhpcy5nZW5NaXBtYXBzPSExLHRoaXMubWlwbWFwSGludD00MzUyfWZ1bmN0aW9uIEkodCxlKXsibWluImluIGUmJih0Lm1pbkZpbHRlcj1VW2UubWluXSwwPD1sdC5pbmRleE9mKHQubWluRmlsdGVyKSYmISgiZmFjZXMiaW4gZSkmJih0Lmdlbk1pcG1hcHM9ITApKSwibWFnImluIGUmJih0Lm1hZ0ZpbHRlcj1qW2UubWFnXSk7dmFyIHI9dC53cmFwUyxuPXQud3JhcFQ7aWYoIndyYXAiaW4gZSl7dmFyIGk9ZS53cmFwOyJzdHJpbmciPT10eXBlb2YgaT9yPW49TltpXTpBcnJheS5pc0FycmF5KGkpJiYocj1OW2lbMF1dLG49TltpWzFdXSl9ZWxzZSJ3cmFwUyJpbiBlJiYocj1OW2Uud3JhcFNdKSwid3JhcFQiaW4gZSYmKG49TltlLndyYXBUXSk7aWYodC53cmFwUz1yLHQud3JhcFQ9biwiYW5pc290cm9waWMiaW4gZSYmKHQuYW5pc290cm9waWM9ZS5hbmlzb3Ryb3BpYyksIm1pcG1hcCJpbiBlKXtzd2l0Y2gocj0hMSx0eXBlb2YgZS5taXBtYXApe2Nhc2Uic3RyaW5nIjp0Lm1pcG1hcEhpbnQ9QltlLm1pcG1hcF0scj10Lmdlbk1pcG1hcHM9ITA7YnJlYWs7Y2FzZSJib29sZWFuIjpyPXQuZ2VuTWlwbWFwcz1lLm1pcG1hcDticmVhaztjYXNlIm9iamVjdCI6dC5nZW5NaXBtYXBzPSExLHI9ITB9IXJ8fCJtaW4iaW4gZXx8KHQubWluRmlsdGVyPTk5ODQpfX1mdW5jdGlvbiBPKHIsbil7dC50ZXhQYXJhbWV0ZXJpKG4sMTAyNDEsci5taW5GaWx0ZXIpLHQudGV4UGFyYW1ldGVyaShuLDEwMjQwLHIubWFnRmlsdGVyKSx0LnRleFBhcmFtZXRlcmkobiwxMDI0MixyLndyYXBTKSx0LnRleFBhcmFtZXRlcmkobiwxMDI0MyxyLndyYXBUKSxlLmV4dF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyYmdC50ZXhQYXJhbWV0ZXJpKG4sMzQwNDYsci5hbmlzb3Ryb3BpYyksci5nZW5NaXBtYXBzJiYodC5oaW50KDMzMTcwLHIubWlwbWFwSGludCksdC5nZW5lcmF0ZU1pcG1hcChuKSl9ZnVuY3Rpb24geihlKXtzLmNhbGwodGhpcyksdGhpcy5taXBtYXNrPTAsdGhpcy5pbnRlcm5hbGZvcm1hdD02NDA4LHRoaXMuaWQ9dnQrKyx0aGlzLnJlZkNvdW50PTEsdGhpcy50YXJnZXQ9ZSx0aGlzLnRleHR1cmU9dC5jcmVhdGVUZXh0dXJlKCksdGhpcy51bml0PS0xLHRoaXMuYmluZENvdW50PTAsdGhpcy50ZXhJbmZvPW5ldyBQLG8ucHJvZmlsZSYmKHRoaXMuc3RhdHM9e3NpemU6MH0pfWZ1bmN0aW9uIEQoZSl7dC5hY3RpdmVUZXh0dXJlKDMzOTg0KSx0LmJpbmRUZXh0dXJlKGUudGFyZ2V0LGUudGV4dHVyZSl9ZnVuY3Rpb24gUigpe3ZhciBlPWJ0WzBdO2U/dC5iaW5kVGV4dHVyZShlLnRhcmdldCxlLnRleHR1cmUpOnQuYmluZFRleHR1cmUoMzU1MyxudWxsKX1mdW5jdGlvbiBGKGUpe3ZhciByPWUudGV4dHVyZSxuPWUudW5pdCxpPWUudGFyZ2V0OzA8PW4mJih0LmFjdGl2ZVRleHR1cmUoMzM5ODQrbiksdC5iaW5kVGV4dHVyZShpLG51bGwpLGJ0W25dPW51bGwpLHQuZGVsZXRlVGV4dHVyZShyKSxlLnRleHR1cmU9bnVsbCxlLnBhcmFtcz1udWxsLGUucGl4ZWxzPW51bGwsZS5yZWZDb3VudD0wLGRlbGV0ZSB5dFtlLmlkXSxhLnRleHR1cmVDb3VudC0tfXZhciBCPXsiZG9uJ3QgY2FyZSI6NDM1MiwiZG9udCBjYXJlIjo0MzUyLG5pY2U6NDM1NCxmYXN0OjQzNTN9LE49e3JlcGVhdDoxMDQ5NyxjbGFtcDozMzA3MSxtaXJyb3I6MzM2NDh9LGo9e25lYXJlc3Q6OTcyOCxsaW5lYXI6OTcyOX0sVT1IKHttaXBtYXA6OTk4NywibmVhcmVzdCBtaXBtYXAgbmVhcmVzdCI6OTk4NCwibGluZWFyIG1pcG1hcCBuZWFyZXN0Ijo5OTg1LCJuZWFyZXN0IG1pcG1hcCBsaW5lYXIiOjk5ODYsImxpbmVhciBtaXBtYXAgbGluZWFyIjo5OTg3fSxqKSxWPXtub25lOjAsYnJvd3NlcjozNzQ0NH0scT17dWludDg6NTEyMSxyZ2JhNDozMjgxOSxyZ2I1NjU6MzM2MzUsInJnYjUgYTEiOjMyODIwfSxHPXthbHBoYTo2NDA2LGx1bWluYW5jZTo2NDA5LCJsdW1pbmFuY2UgYWxwaGEiOjY0MTAscmdiOjY0MDcscmdiYTo2NDA4LHJnYmE0OjMyODU0LCJyZ2I1IGExIjozMjg1NSxyZ2I1NjU6MzYxOTR9LFk9e307ZS5leHRfc3JnYiYmKEcuc3JnYj0zNTkwNCxHLnNyZ2JhPTM1OTA2KSxlLm9lc190ZXh0dXJlX2Zsb2F0JiYocS5mbG9hdDMyPXEuZmxvYXQ9NTEyNiksZS5vZXNfdGV4dHVyZV9oYWxmX2Zsb2F0JiYocS5mbG9hdDE2PXFbImhhbGYgZmxvYXQiXT0zNjE5MyksZS53ZWJnbF9kZXB0aF90ZXh0dXJlJiYoSChHLHtkZXB0aDo2NDAyLCJkZXB0aCBzdGVuY2lsIjozNDA0MX0pLEgocSx7dWludDE2OjUxMjMsdWludDMyOjUxMjUsImRlcHRoIHN0ZW5jaWwiOjM0MDQyfSkpLGUud2ViZ2xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMmJkgoWSx7InJnYiBzM3RjIGR4dDEiOjMzNzc2LCJyZ2JhIHMzdGMgZHh0MSI6MzM3NzcsInJnYmEgczN0YyBkeHQzIjozMzc3OCwicmdiYSBzM3RjIGR4dDUiOjMzNzc5fSksZS53ZWJnbF9jb21wcmVzc2VkX3RleHR1cmVfYXRjJiZIKFkseyJyZ2IgYXRjIjozNTk4NiwicmdiYSBhdGMgZXhwbGljaXQgYWxwaGEiOjM1OTg3LCJyZ2JhIGF0YyBpbnRlcnBvbGF0ZWQgYWxwaGEiOjM0Nzk4fSksZS53ZWJnbF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMmJkgoWSx7InJnYiBwdnJ0YyA0YnBwdjEiOjM1ODQwLCJyZ2IgcHZydGMgMmJwcHYxIjozNTg0MSwicmdiYSBwdnJ0YyA0YnBwdjEiOjM1ODQyLCJyZ2JhIHB2cnRjIDJicHB2MSI6MzU4NDN9KSxlLndlYmdsX2NvbXByZXNzZWRfdGV4dHVyZV9ldGMxJiYoWVsicmdiIGV0YzEiXT0zNjE5Nik7dmFyIFc9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodC5nZXRQYXJhbWV0ZXIoMzQ0NjcpKTtPYmplY3Qua2V5cyhZKS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT1ZW3RdOzA8PVcuaW5kZXhPZihlKSYmKEdbdF09ZSl9KSk7dmFyIFo9T2JqZWN0LmtleXMoRyk7ci50ZXh0dXJlRm9ybWF0cz1aO3ZhciB0dD1bXTtPYmplY3Qua2V5cyhHKS5mb3JFYWNoKChmdW5jdGlvbih0KXt0dFtHW3RdXT10fSkpO3ZhciBldD1bXTtPYmplY3Qua2V5cyhxKS5mb3JFYWNoKChmdW5jdGlvbih0KXtldFtxW3RdXT10fSkpO3ZhciBydD1bXTtPYmplY3Qua2V5cyhqKS5mb3JFYWNoKChmdW5jdGlvbih0KXtydFtqW3RdXT10fSkpO3ZhciBudD1bXTtPYmplY3Qua2V5cyhVKS5mb3JFYWNoKChmdW5jdGlvbih0KXtudFtVW3RdXT10fSkpO3ZhciBpdD1bXTtPYmplY3Qua2V5cyhOKS5mb3JFYWNoKChmdW5jdGlvbih0KXtpdFtOW3RdXT10fSkpO3ZhciBhdD1aLnJlZHVjZSgoZnVuY3Rpb24odCxyKXt2YXIgbj1HW3JdO3JldHVybiA2NDA5PT09bnx8NjQwNj09PW58fDY0MDk9PT1ufHw2NDEwPT09bnx8NjQwMj09PW58fDM0MDQxPT09bnx8ZS5leHRfc3JnYiYmKDM1OTA0PT09bnx8MzU5MDY9PT1uKT90W25dPW46MzI4NTU9PT1ufHwwPD1yLmluZGV4T2YoInJnYmEiKT90W25dPTY0MDg6dFtuXT02NDA3LHR9KSx7fSksb3Q9W10sc3Q9W10sdnQ9MCx5dD17fSx4dD1yLm1heFRleHR1cmVVbml0cyxidD1BcnJheSh4dCkubWFwKChmdW5jdGlvbigpe3JldHVybiBudWxsfSkpO3JldHVybiBIKHoucHJvdG90eXBlLHtiaW5kOmZ1bmN0aW9uKCl7dGhpcy5iaW5kQ291bnQrPTE7dmFyIGU9dGhpcy51bml0O2lmKDA+ZSl7Zm9yKHZhciByPTA7cjx4dDsrK3Ipe3ZhciBuPWJ0W3JdO2lmKG4pe2lmKDA8bi5iaW5kQ291bnQpY29udGludWU7bi51bml0PS0xfWJ0W3JdPXRoaXMsZT1yO2JyZWFrfW8ucHJvZmlsZSYmYS5tYXhUZXh0dXJlVW5pdHM8ZSsxJiYoYS5tYXhUZXh0dXJlVW5pdHM9ZSsxKSx0aGlzLnVuaXQ9ZSx0LmFjdGl2ZVRleHR1cmUoMzM5ODQrZSksdC5iaW5kVGV4dHVyZSh0aGlzLnRhcmdldCx0aGlzLnRleHR1cmUpfXJldHVybiBlfSx1bmJpbmQ6ZnVuY3Rpb24oKXstLXRoaXMuYmluZENvdW50fSxkZWNSZWY6ZnVuY3Rpb24oKXswPj0tLXRoaXMucmVmQ291bnQmJkYodGhpcyl9fSksby5wcm9maWxlJiYoYS5nZXRUb3RhbFRleHR1cmVTaXplPWZ1bmN0aW9uKCl7dmFyIHQ9MDtyZXR1cm4gT2JqZWN0LmtleXMoeXQpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3QrPXl0W2VdLnN0YXRzLnNpemV9KSksdH0pLHtjcmVhdGUyRDpmdW5jdGlvbihlLHIpe2Z1bmN0aW9uIG4odCxlKXt2YXIgcj1pLnRleEluZm87UC5jYWxsKHIpO3ZhciBhPUwoKTtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQ/TShhLDB8dCwibnVtYmVyIj09dHlwZW9mIGU/MHxlOjB8dCk6dD8oSShyLHQpLFMoYSx0KSk6TShhLDEsMSksci5nZW5NaXBtYXBzJiYoYS5taXBtYXNrPShhLndpZHRoPDwxKS0xKSxpLm1pcG1hc2s9YS5taXBtYXNrLGMoaSxhKSxpLmludGVybmFsZm9ybWF0PWEuaW50ZXJuYWxmb3JtYXQsbi53aWR0aD1hLndpZHRoLG4uaGVpZ2h0PWEuaGVpZ2h0LEQoaSksRShhLDM1NTMpLE8ociwzNTUzKSxSKCksQyhhKSxvLnByb2ZpbGUmJihpLnN0YXRzLnNpemU9VChpLmludGVybmFsZm9ybWF0LGkudHlwZSxhLndpZHRoLGEuaGVpZ2h0LHIuZ2VuTWlwbWFwcywhMSkpLG4uZm9ybWF0PXR0W2kuaW50ZXJuYWxmb3JtYXRdLG4udHlwZT1ldFtpLnR5cGVdLG4ubWFnPXJ0W3IubWFnRmlsdGVyXSxuLm1pbj1udFtyLm1pbkZpbHRlcl0sbi53cmFwUz1pdFtyLndyYXBTXSxuLndyYXBUPWl0W3Iud3JhcFRdLG59dmFyIGk9bmV3IHooMzU1Myk7cmV0dXJuIHl0W2kuaWRdPWksYS50ZXh0dXJlQ291bnQrKyxuKGUsciksbi5zdWJpbWFnZT1mdW5jdGlvbih0LGUscixhKXtlfD0wLHJ8PTAsYXw9MDt2YXIgbz12KCk7cmV0dXJuIGMobyxpKSxvLndpZHRoPTAsby5oZWlnaHQ9MCxwKG8sdCksby53aWR0aD1vLndpZHRofHwoaS53aWR0aD4+YSktZSxvLmhlaWdodD1vLmhlaWdodHx8KGkuaGVpZ2h0Pj5hKS1yLEQoaSksZChvLDM1NTMsZSxyLGEpLFIoKSxrKG8pLG59LG4ucmVzaXplPWZ1bmN0aW9uKGUscil7dmFyIGE9MHxlLHM9MHxyfHxhO2lmKGE9PT1pLndpZHRoJiZzPT09aS5oZWlnaHQpcmV0dXJuIG47bi53aWR0aD1pLndpZHRoPWEsbi5oZWlnaHQ9aS5oZWlnaHQ9cyxEKGkpO2Zvcih2YXIgbD0wO2kubWlwbWFzaz4+bDsrK2wpe3ZhciBjPWE+PmwsdT1zPj5sO2lmKCFjfHwhdSlicmVhazt0LnRleEltYWdlMkQoMzU1MyxsLGkuZm9ybWF0LGMsdSwwLGkuZm9ybWF0LGkudHlwZSxudWxsKX1yZXR1cm4gUigpLG8ucHJvZmlsZSYmKGkuc3RhdHMuc2l6ZT1UKGkuaW50ZXJuYWxmb3JtYXQsaS50eXBlLGEscywhMSwhMSkpLG59LG4uX3JlZ2xUeXBlPSJ0ZXh0dXJlMmQiLG4uX3RleHR1cmU9aSxvLnByb2ZpbGUmJihuLnN0YXRzPWkuc3RhdHMpLG4uZGVzdHJveT1mdW5jdGlvbigpe2kuZGVjUmVmKCl9LG59LGNyZWF0ZUN1YmU6ZnVuY3Rpb24oZSxyLG4saSxzLGwpe2Z1bmN0aW9uIGYodCxlLHIsbixpLGEpe3ZhciBzLGw9aC50ZXhJbmZvO2ZvcihQLmNhbGwobCkscz0wOzY+czsrK3MpbVtzXT1MKCk7aWYoIm51bWJlciIhPXR5cGVvZiB0JiZ0KXtpZigib2JqZWN0Ij09dHlwZW9mIHQpaWYoZSlTKG1bMF0sdCksUyhtWzFdLGUpLFMobVsyXSxyKSxTKG1bM10sbiksUyhtWzRdLGkpLFMobVs1XSxhKTtlbHNlIGlmKEkobCx0KSx1KGgsdCksImZhY2VzImluIHQpZm9yKHQ9dC5mYWNlcyxzPTA7Nj5zOysrcyljKG1bc10saCksUyhtW3NdLHRbc10pO2Vsc2UgZm9yKHM9MDs2PnM7KytzKVMobVtzXSx0KX1lbHNlIGZvcih0PTB8dHx8MSxzPTA7Nj5zOysrcylNKG1bc10sdCx0KTtmb3IoYyhoLG1bMF0pLGgubWlwbWFzaz1sLmdlbk1pcG1hcHM/KG1bMF0ud2lkdGg8PDEpLTE6bVswXS5taXBtYXNrLGguaW50ZXJuYWxmb3JtYXQ9bVswXS5pbnRlcm5hbGZvcm1hdCxmLndpZHRoPW1bMF0ud2lkdGgsZi5oZWlnaHQ9bVswXS5oZWlnaHQsRChoKSxzPTA7Nj5zOysrcylFKG1bc10sMzQwNjkrcyk7Zm9yKE8obCwzNDA2NyksUigpLG8ucHJvZmlsZSYmKGguc3RhdHMuc2l6ZT1UKGguaW50ZXJuYWxmb3JtYXQsaC50eXBlLGYud2lkdGgsZi5oZWlnaHQsbC5nZW5NaXBtYXBzLCEwKSksZi5mb3JtYXQ9dHRbaC5pbnRlcm5hbGZvcm1hdF0sZi50eXBlPWV0W2gudHlwZV0sZi5tYWc9cnRbbC5tYWdGaWx0ZXJdLGYubWluPW50W2wubWluRmlsdGVyXSxmLndyYXBTPWl0W2wud3JhcFNdLGYud3JhcFQ9aXRbbC53cmFwVF0scz0wOzY+czsrK3MpQyhtW3NdKTtyZXR1cm4gZn12YXIgaD1uZXcgeigzNDA2Nyk7eXRbaC5pZF09aCxhLmN1YmVDb3VudCsrO3ZhciBtPUFycmF5KDYpO3JldHVybiBmKGUscixuLGkscyxsKSxmLnN1YmltYWdlPWZ1bmN0aW9uKHQsZSxyLG4saSl7cnw9MCxufD0wLGl8PTA7dmFyIGE9digpO3JldHVybiBjKGEsaCksYS53aWR0aD0wLGEuaGVpZ2h0PTAscChhLGUpLGEud2lkdGg9YS53aWR0aHx8KGgud2lkdGg+PmkpLXIsYS5oZWlnaHQ9YS5oZWlnaHR8fChoLmhlaWdodD4+aSktbixEKGgpLGQoYSwzNDA2OSt0LHIsbixpKSxSKCksayhhKSxmfSxmLnJlc2l6ZT1mdW5jdGlvbihlKXtpZigoZXw9MCkhPT1oLndpZHRoKXtmLndpZHRoPWgud2lkdGg9ZSxmLmhlaWdodD1oLmhlaWdodD1lLEQoaCk7Zm9yKHZhciByPTA7Nj5yOysrcilmb3IodmFyIG49MDtoLm1pcG1hc2s+Pm47KytuKXQudGV4SW1hZ2UyRCgzNDA2OStyLG4saC5mb3JtYXQsZT4+bixlPj5uLDAsaC5mb3JtYXQsaC50eXBlLG51bGwpO3JldHVybiBSKCksby5wcm9maWxlJiYoaC5zdGF0cy5zaXplPVQoaC5pbnRlcm5hbGZvcm1hdCxoLnR5cGUsZi53aWR0aCxmLmhlaWdodCwhMSwhMCkpLGZ9fSxmLl9yZWdsVHlwZT0idGV4dHVyZUN1YmUiLGYuX3RleHR1cmU9aCxvLnByb2ZpbGUmJihmLnN0YXRzPWguc3RhdHMpLGYuZGVzdHJveT1mdW5jdGlvbigpe2guZGVjUmVmKCl9LGZ9LGNsZWFyOmZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7ZTx4dDsrK2UpdC5hY3RpdmVUZXh0dXJlKDMzOTg0K2UpLHQuYmluZFRleHR1cmUoMzU1MyxudWxsKSxidFtlXT1udWxsO0soeXQpLmZvckVhY2goRiksYS5jdWJlQ291bnQ9MCxhLnRleHR1cmVDb3VudD0wfSxnZXRUZXh0dXJlOmZ1bmN0aW9uKHQpe3JldHVybiBudWxsfSxyZXN0b3JlOmZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7ZTx4dDsrK2Upe3ZhciByPWJ0W2VdO3ImJihyLmJpbmRDb3VudD0wLHIudW5pdD0tMSxidFtlXT1udWxsKX1LKHl0KS5mb3JFYWNoKChmdW5jdGlvbihlKXtlLnRleHR1cmU9dC5jcmVhdGVUZXh0dXJlKCksdC5iaW5kVGV4dHVyZShlLnRhcmdldCxlLnRleHR1cmUpO2Zvcih2YXIgcj0wOzMyPnI7KytyKWlmKDAhPShlLm1pcG1hc2smMTw8cikpaWYoMzU1Mz09PWUudGFyZ2V0KXQudGV4SW1hZ2UyRCgzNTUzLHIsZS5pbnRlcm5hbGZvcm1hdCxlLndpZHRoPj5yLGUuaGVpZ2h0Pj5yLDAsZS5pbnRlcm5hbGZvcm1hdCxlLnR5cGUsbnVsbCk7ZWxzZSBmb3IodmFyIG49MDs2Pm47KytuKXQudGV4SW1hZ2UyRCgzNDA2OStuLHIsZS5pbnRlcm5hbGZvcm1hdCxlLndpZHRoPj5yLGUuaGVpZ2h0Pj5yLDAsZS5pbnRlcm5hbGZvcm1hdCxlLnR5cGUsbnVsbCk7TyhlLnRleEluZm8sZS50YXJnZXQpfSkpfSxyZWZyZXNoOmZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7ZTx4dDsrK2Upe3ZhciByPWJ0W2VdO3ImJihyLmJpbmRDb3VudD0wLHIudW5pdD0tMSxidFtlXT1udWxsKSx0LmFjdGl2ZVRleHR1cmUoMzM5ODQrZSksdC5iaW5kVGV4dHVyZSgzNTUzLG51bGwpLHQuYmluZFRleHR1cmUoMzQwNjcsbnVsbCl9fX19ZnVuY3Rpb24gQSh0LGUscixuLGksYSl7ZnVuY3Rpb24gbyh0LGUscil7dGhpcy50YXJnZXQ9dCx0aGlzLnRleHR1cmU9ZSx0aGlzLnJlbmRlcmJ1ZmZlcj1yO3ZhciBuPXQ9MDtlPyh0PWUud2lkdGgsbj1lLmhlaWdodCk6ciYmKHQ9ci53aWR0aCxuPXIuaGVpZ2h0KSx0aGlzLndpZHRoPXQsdGhpcy5oZWlnaHQ9bn1mdW5jdGlvbiBzKHQpe3QmJih0LnRleHR1cmUmJnQudGV4dHVyZS5fdGV4dHVyZS5kZWNSZWYoKSx0LnJlbmRlcmJ1ZmZlciYmdC5yZW5kZXJidWZmZXIuX3JlbmRlcmJ1ZmZlci5kZWNSZWYoKSl9ZnVuY3Rpb24gbCh0LGUscil7dCYmKHQudGV4dHVyZT90LnRleHR1cmUuX3RleHR1cmUucmVmQ291bnQrPTE6dC5yZW5kZXJidWZmZXIuX3JlbmRlcmJ1ZmZlci5yZWZDb3VudCs9MSl9ZnVuY3Rpb24gYyhlLHIpe3ImJihyLnRleHR1cmU/dC5mcmFtZWJ1ZmZlclRleHR1cmUyRCgzNjE2MCxlLHIudGFyZ2V0LHIudGV4dHVyZS5fdGV4dHVyZS50ZXh0dXJlLDApOnQuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoMzYxNjAsZSwzNjE2MSxyLnJlbmRlcmJ1ZmZlci5fcmVuZGVyYnVmZmVyLnJlbmRlcmJ1ZmZlcikpfWZ1bmN0aW9uIHUodCl7dmFyIGU9MzU1MyxyPW51bGwsbj1udWxsLGk9dDtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQmJihpPXQuZGF0YSwidGFyZ2V0ImluIHQmJihlPTB8dC50YXJnZXQpKSwidGV4dHVyZTJkIj09PSh0PWkuX3JlZ2xUeXBlKXx8InRleHR1cmVDdWJlIj09PXQ/cj1pOiJyZW5kZXJidWZmZXIiPT09dCYmKG49aSxlPTM2MTYxKSxuZXcgbyhlLHIsbil9ZnVuY3Rpb24gZih0LGUscixhLHMpe3JldHVybiByPygodD1uLmNyZWF0ZTJEKHt3aWR0aDp0LGhlaWdodDplLGZvcm1hdDphLHR5cGU6c30pKS5fdGV4dHVyZS5yZWZDb3VudD0wLG5ldyBvKDM1NTMsdCxudWxsKSk6KCh0PWkuY3JlYXRlKHt3aWR0aDp0LGhlaWdodDplLGZvcm1hdDphfSkpLl9yZW5kZXJidWZmZXIucmVmQ291bnQ9MCxuZXcgbygzNjE2MSxudWxsLHQpKX1mdW5jdGlvbiBoKHQpe3JldHVybiB0JiYodC50ZXh0dXJlfHx0LnJlbmRlcmJ1ZmZlcil9ZnVuY3Rpb24gcCh0LGUscil7dCYmKHQudGV4dHVyZT90LnRleHR1cmUucmVzaXplKGUscik6dC5yZW5kZXJidWZmZXImJnQucmVuZGVyYnVmZmVyLnJlc2l6ZShlLHIpLHQud2lkdGg9ZSx0LmhlaWdodD1yKX1mdW5jdGlvbiBkKCl7dGhpcy5pZD1UKyssa1t0aGlzLmlkXT10aGlzLHRoaXMuZnJhbWVidWZmZXI9dC5jcmVhdGVGcmFtZWJ1ZmZlcigpLHRoaXMuaGVpZ2h0PXRoaXMud2lkdGg9MCx0aGlzLmNvbG9yQXR0YWNobWVudHM9W10sdGhpcy5kZXB0aFN0ZW5jaWxBdHRhY2htZW50PXRoaXMuc3RlbmNpbEF0dGFjaG1lbnQ9dGhpcy5kZXB0aEF0dGFjaG1lbnQ9bnVsbH1mdW5jdGlvbiBtKHQpe3QuY29sb3JBdHRhY2htZW50cy5mb3JFYWNoKHMpLHModC5kZXB0aEF0dGFjaG1lbnQpLHModC5zdGVuY2lsQXR0YWNobWVudCkscyh0LmRlcHRoU3RlbmNpbEF0dGFjaG1lbnQpfWZ1bmN0aW9uIGcoZSl7dC5kZWxldGVGcmFtZWJ1ZmZlcihlLmZyYW1lYnVmZmVyKSxlLmZyYW1lYnVmZmVyPW51bGwsYS5mcmFtZWJ1ZmZlckNvdW50LS0sZGVsZXRlIGtbZS5pZF19ZnVuY3Rpb24gdihlKXt2YXIgbjt0LmJpbmRGcmFtZWJ1ZmZlcigzNjE2MCxlLmZyYW1lYnVmZmVyKTt2YXIgaT1lLmNvbG9yQXR0YWNobWVudHM7Zm9yKG49MDtuPGkubGVuZ3RoOysrbiljKDM2MDY0K24saVtuXSk7Zm9yKG49aS5sZW5ndGg7bjxyLm1heENvbG9yQXR0YWNobWVudHM7KytuKXQuZnJhbWVidWZmZXJUZXh0dXJlMkQoMzYxNjAsMzYwNjQrbiwzNTUzLG51bGwsMCk7dC5mcmFtZWJ1ZmZlclRleHR1cmUyRCgzNjE2MCwzMzMwNiwzNTUzLG51bGwsMCksdC5mcmFtZWJ1ZmZlclRleHR1cmUyRCgzNjE2MCwzNjA5NiwzNTUzLG51bGwsMCksdC5mcmFtZWJ1ZmZlclRleHR1cmUyRCgzNjE2MCwzNjEyOCwzNTUzLG51bGwsMCksYygzNjA5NixlLmRlcHRoQXR0YWNobWVudCksYygzNjEyOCxlLnN0ZW5jaWxBdHRhY2htZW50KSxjKDMzMzA2LGUuZGVwdGhTdGVuY2lsQXR0YWNobWVudCksdC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKDM2MTYwKSx0LmlzQ29udGV4dExvc3QoKSx0LmJpbmRGcmFtZWJ1ZmZlcigzNjE2MCx4Lm5leHQ/eC5uZXh0LmZyYW1lYnVmZmVyOm51bGwpLHguY3VyPXgubmV4dCx0LmdldEVycm9yKCl9ZnVuY3Rpb24geSh0LGUpe2Z1bmN0aW9uIHIodCxlKXt2YXIgaSxhPTAsbz0wLHM9ITAsYz0hMDtpPW51bGw7dmFyIHA9ITAsZD0icmdiYSIsZz0idWludDgiLHk9MSx4PW51bGwsdz1udWxsLFQ9bnVsbCxrPSExOyJudW1iZXIiPT10eXBlb2YgdD8oYT0wfHQsbz0wfGV8fGEpOnQ/KCJzaGFwZSJpbiB0PyhhPShvPXQuc2hhcGUpWzBdLG89b1sxXSk6KCJyYWRpdXMiaW4gdCYmKGE9bz10LnJhZGl1cyksIndpZHRoImluIHQmJihhPXQud2lkdGgpLCJoZWlnaHQiaW4gdCYmKG89dC5oZWlnaHQpKSwoImNvbG9yImluIHR8fCJjb2xvcnMiaW4gdCkmJihpPXQuY29sb3J8fHQuY29sb3JzLEFycmF5LmlzQXJyYXkoaSkpLGl8fCgiY29sb3JDb3VudCJpbiB0JiYoeT0wfHQuY29sb3JDb3VudCksImNvbG9yVGV4dHVyZSJpbiB0JiYocD0hIXQuY29sb3JUZXh0dXJlLGQ9InJnYmE0IiksImNvbG9yVHlwZSJpbiB0JiYoZz10LmNvbG9yVHlwZSwhcCkmJigiaGFsZiBmbG9hdCI9PT1nfHwiZmxvYXQxNiI9PT1nP2Q9InJnYmExNmYiOiJmbG9hdCIhPT1nJiYiZmxvYXQzMiIhPT1nfHwoZD0icmdiYTMyZiIpKSwiY29sb3JGb3JtYXQiaW4gdCYmKGQ9dC5jb2xvckZvcm1hdCwwPD1iLmluZGV4T2YoZCk/cD0hMDowPD1fLmluZGV4T2YoZCkmJihwPSExKSkpLCgiZGVwdGhUZXh0dXJlImluIHR8fCJkZXB0aFN0ZW5jaWxUZXh0dXJlImluIHQpJiYoaz0hKCF0LmRlcHRoVGV4dHVyZSYmIXQuZGVwdGhTdGVuY2lsVGV4dHVyZSkpLCJkZXB0aCJpbiB0JiYoImJvb2xlYW4iPT10eXBlb2YgdC5kZXB0aD9zPXQuZGVwdGg6KHg9dC5kZXB0aCxjPSExKSksInN0ZW5jaWwiaW4gdCYmKCJib29sZWFuIj09dHlwZW9mIHQuc3RlbmNpbD9jPXQuc3RlbmNpbDoodz10LnN0ZW5jaWwscz0hMSkpLCJkZXB0aFN0ZW5jaWwiaW4gdCYmKCJib29sZWFuIj09dHlwZW9mIHQuZGVwdGhTdGVuY2lsP3M9Yz10LmRlcHRoU3RlbmNpbDooVD10LmRlcHRoU3RlbmNpbCxjPXM9ITEpKSk6YT1vPTE7dmFyIEE9bnVsbCxNPW51bGwsUz1udWxsLEU9bnVsbDtpZihBcnJheS5pc0FycmF5KGkpKUE9aS5tYXAodSk7ZWxzZSBpZihpKUE9W3UoaSldO2Vsc2UgZm9yKEE9QXJyYXkoeSksaT0wO2k8eTsrK2kpQVtpXT1mKGEsbyxwLGQsZyk7Zm9yKGE9YXx8QVswXS53aWR0aCxvPW98fEFbMF0uaGVpZ2h0LHg/TT11KHgpOnMmJiFjJiYoTT1mKGEsbyxrLCJkZXB0aCIsInVpbnQzMiIpKSx3P1M9dSh3KTpjJiYhcyYmKFM9ZihhLG8sITEsInN0ZW5jaWwiLCJ1aW50OCIpKSxUP0U9dShUKToheCYmIXcmJmMmJnMmJihFPWYoYSxvLGssImRlcHRoIHN0ZW5jaWwiLCJkZXB0aCBzdGVuY2lsIikpLHM9bnVsbCxpPTA7aTxBLmxlbmd0aDsrK2kpbChBW2ldKSxBW2ldJiZBW2ldLnRleHR1cmUmJihjPXd0W0FbaV0udGV4dHVyZS5fdGV4dHVyZS5mb3JtYXRdKlR0W0FbaV0udGV4dHVyZS5fdGV4dHVyZS50eXBlXSxudWxsPT09cyYmKHM9YykpO3JldHVybiBsKE0pLGwoUyksbChFKSxtKG4pLG4ud2lkdGg9YSxuLmhlaWdodD1vLG4uY29sb3JBdHRhY2htZW50cz1BLG4uZGVwdGhBdHRhY2htZW50PU0sbi5zdGVuY2lsQXR0YWNobWVudD1TLG4uZGVwdGhTdGVuY2lsQXR0YWNobWVudD1FLHIuY29sb3I9QS5tYXAoaCksci5kZXB0aD1oKE0pLHIuc3RlbmNpbD1oKFMpLHIuZGVwdGhTdGVuY2lsPWgoRSksci53aWR0aD1uLndpZHRoLHIuaGVpZ2h0PW4uaGVpZ2h0LHYobikscn12YXIgbj1uZXcgZDtyZXR1cm4gYS5mcmFtZWJ1ZmZlckNvdW50Kysscih0LGUpLEgocix7cmVzaXplOmZ1bmN0aW9uKHQsZSl7dmFyIGk9TWF0aC5tYXgoMHx0LDEpLGE9TWF0aC5tYXgoMHxlfHxpLDEpO2lmKGk9PT1uLndpZHRoJiZhPT09bi5oZWlnaHQpcmV0dXJuIHI7Zm9yKHZhciBvPW4uY29sb3JBdHRhY2htZW50cyxzPTA7czxvLmxlbmd0aDsrK3MpcChvW3NdLGksYSk7cmV0dXJuIHAobi5kZXB0aEF0dGFjaG1lbnQsaSxhKSxwKG4uc3RlbmNpbEF0dGFjaG1lbnQsaSxhKSxwKG4uZGVwdGhTdGVuY2lsQXR0YWNobWVudCxpLGEpLG4ud2lkdGg9ci53aWR0aD1pLG4uaGVpZ2h0PXIuaGVpZ2h0PWEsdihuKSxyfSxfcmVnbFR5cGU6ImZyYW1lYnVmZmVyIixfZnJhbWVidWZmZXI6bixkZXN0cm95OmZ1bmN0aW9uKCl7ZyhuKSxtKG4pfSx1c2U6ZnVuY3Rpb24odCl7eC5zZXRGQk8oe2ZyYW1lYnVmZmVyOnJ9LHQpfX0pfXZhciB4PXtjdXI6bnVsbCxuZXh0Om51bGwsZGlydHk6ITEsc2V0RkJPOm51bGx9LGI9WyJyZ2JhIl0sXz1bInJnYmE0IiwicmdiNTY1IiwicmdiNSBhMSJdO2UuZXh0X3NyZ2ImJl8ucHVzaCgic3JnYmEiKSxlLmV4dF9jb2xvcl9idWZmZXJfaGFsZl9mbG9hdCYmXy5wdXNoKCJyZ2JhMTZmIiwicmdiMTZmIiksZS53ZWJnbF9jb2xvcl9idWZmZXJfZmxvYXQmJl8ucHVzaCgicmdiYTMyZiIpO3ZhciB3PVsidWludDgiXTtlLm9lc190ZXh0dXJlX2hhbGZfZmxvYXQmJncucHVzaCgiaGFsZiBmbG9hdCIsImZsb2F0MTYiKSxlLm9lc190ZXh0dXJlX2Zsb2F0JiZ3LnB1c2goImZsb2F0IiwiZmxvYXQzMiIpO3ZhciBUPTAsaz17fTtyZXR1cm4gSCh4LHtnZXRGcmFtZWJ1ZmZlcjpmdW5jdGlvbih0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdCYmImZyYW1lYnVmZmVyIj09PXQuX3JlZ2xUeXBlJiYodD10Ll9mcmFtZWJ1ZmZlcilpbnN0YW5jZW9mIGQ/dDpudWxsfSxjcmVhdGU6eSxjcmVhdGVDdWJlOmZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUodCl7dmFyIGksYT17Y29sb3I6bnVsbH0sbz0wLHM9bnVsbDtpPSJyZ2JhIjt2YXIgbD0idWludDgiLGM9MTtpZigibnVtYmVyIj09dHlwZW9mIHQ/bz0wfHQ6dD8oInNoYXBlImluIHQ/bz10LnNoYXBlWzBdOigicmFkaXVzImluIHQmJihvPTB8dC5yYWRpdXMpLCJ3aWR0aCJpbiB0P289MHx0LndpZHRoOiJoZWlnaHQiaW4gdCYmKG89MHx0LmhlaWdodCkpLCgiY29sb3IiaW4gdHx8ImNvbG9ycyJpbiB0KSYmKHM9dC5jb2xvcnx8dC5jb2xvcnMsQXJyYXkuaXNBcnJheShzKSksc3x8KCJjb2xvckNvdW50ImluIHQmJihjPTB8dC5jb2xvckNvdW50KSwiY29sb3JUeXBlImluIHQmJihsPXQuY29sb3JUeXBlKSwiY29sb3JGb3JtYXQiaW4gdCYmKGk9dC5jb2xvckZvcm1hdCkpLCJkZXB0aCJpbiB0JiYoYS5kZXB0aD10LmRlcHRoKSwic3RlbmNpbCJpbiB0JiYoYS5zdGVuY2lsPXQuc3RlbmNpbCksImRlcHRoU3RlbmNpbCJpbiB0JiYoYS5kZXB0aFN0ZW5jaWw9dC5kZXB0aFN0ZW5jaWwpKTpvPTEscylpZihBcnJheS5pc0FycmF5KHMpKWZvcih0PVtdLGk9MDtpPHMubGVuZ3RoOysraSl0W2ldPXNbaV07ZWxzZSB0PVtzXTtlbHNlIGZvcih0PUFycmF5KGMpLHM9e3JhZGl1czpvLGZvcm1hdDppLHR5cGU6bH0saT0wO2k8YzsrK2kpdFtpXT1uLmNyZWF0ZUN1YmUocyk7Zm9yKGEuY29sb3I9QXJyYXkodC5sZW5ndGgpLGk9MDtpPHQubGVuZ3RoOysraSljPXRbaV0sbz1vfHxjLndpZHRoLGEuY29sb3JbaV09e3RhcmdldDozNDA2OSxkYXRhOnRbaV19O2ZvcihpPTA7Nj5pOysraSl7Zm9yKGM9MDtjPHQubGVuZ3RoOysrYylhLmNvbG9yW2NdLnRhcmdldD0zNDA2OStpOzA8aSYmKGEuZGVwdGg9clswXS5kZXB0aCxhLnN0ZW5jaWw9clswXS5zdGVuY2lsLGEuZGVwdGhTdGVuY2lsPXJbMF0uZGVwdGhTdGVuY2lsKSxyW2ldP3JbaV0oYSk6cltpXT15KGEpfXJldHVybiBIKGUse3dpZHRoOm8saGVpZ2h0Om8sY29sb3I6dH0pfXZhciByPUFycmF5KDYpO3JldHVybiBlKHQpLEgoZSx7ZmFjZXM6cixyZXNpemU6ZnVuY3Rpb24odCl7dmFyIG49MHx0O2lmKG49PT1lLndpZHRoKXJldHVybiBlO3ZhciBpPWUuY29sb3I7Zm9yKHQ9MDt0PGkubGVuZ3RoOysrdClpW3RdLnJlc2l6ZShuKTtmb3IodD0wOzY+dDsrK3Qpclt0XS5yZXNpemUobik7cmV0dXJuIGUud2lkdGg9ZS5oZWlnaHQ9bixlfSxfcmVnbFR5cGU6ImZyYW1lYnVmZmVyQ3ViZSIsZGVzdHJveTpmdW5jdGlvbigpe3IuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5kZXN0cm95KCl9KSl9fSl9LGNsZWFyOmZ1bmN0aW9uKCl7SyhrKS5mb3JFYWNoKGcpfSxyZXN0b3JlOmZ1bmN0aW9uKCl7eC5jdXI9bnVsbCx4Lm5leHQ9bnVsbCx4LmRpcnR5PSEwLEsoaykuZm9yRWFjaCgoZnVuY3Rpb24oZSl7ZS5mcmFtZWJ1ZmZlcj10LmNyZWF0ZUZyYW1lYnVmZmVyKCksdihlKX0pKX19KX1mdW5jdGlvbiBNKCl7dGhpcy53PXRoaXMuej10aGlzLnk9dGhpcy54PXRoaXMuc3RhdGU9MCx0aGlzLmJ1ZmZlcj1udWxsLHRoaXMuc2l6ZT0wLHRoaXMubm9ybWFsaXplZD0hMSx0aGlzLnR5cGU9NTEyNix0aGlzLmRpdmlzb3I9dGhpcy5zdHJpZGU9dGhpcy5vZmZzZXQ9MH1mdW5jdGlvbiBTKHQsZSxyLG4saSxhLG8pe2Z1bmN0aW9uIHMoKXt0aGlzLmlkPSsrZix0aGlzLmF0dHJpYnV0ZXM9W10sdGhpcy5lbGVtZW50cz1udWxsLHRoaXMub3duc0VsZW1lbnRzPSExLHRoaXMub2Zmc2V0PXRoaXMuY291bnQ9MCx0aGlzLmluc3RhbmNlcz0tMSx0aGlzLnByaW1pdGl2ZT00O3ZhciB0PWUub2VzX3ZlcnRleF9hcnJheV9vYmplY3Q7dGhpcy52YW89dD90LmNyZWF0ZVZlcnRleEFycmF5T0VTKCk6bnVsbCxoW3RoaXMuaWRdPXRoaXMsdGhpcy5idWZmZXJzPVtdfXZhciBjPXIubWF4QXR0cmlidXRlcyx1PUFycmF5KGMpO2ZvcihyPTA7cjxjOysrcil1W3JdPW5ldyBNO3ZhciBmPTAsaD17fSxwPXtSZWNvcmQ6TSxzY29wZTp7fSxzdGF0ZTp1LGN1cnJlbnRWQU86bnVsbCx0YXJnZXRWQU86bnVsbCxyZXN0b3JlOmUub2VzX3ZlcnRleF9hcnJheV9vYmplY3Q/ZnVuY3Rpb24oKXtlLm9lc192ZXJ0ZXhfYXJyYXlfb2JqZWN0JiZLKGgpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QucmVmcmVzaCgpfSkpfTpmdW5jdGlvbigpe30sY3JlYXRlVkFPOmZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUodCl7dmFyIG47QXJyYXkuaXNBcnJheSh0KT8obj10LHIuZWxlbWVudHMmJnIub3duc0VsZW1lbnRzJiZyLmVsZW1lbnRzLmRlc3Ryb3koKSxyLmVsZW1lbnRzPW51bGwsci5vd25zRWxlbWVudHM9ITEsci5vZmZzZXQ9MCxyLmNvdW50PTAsci5pbnN0YW5jZXM9LTEsci5wcmltaXRpdmU9NCk6KHQuZWxlbWVudHM/KG49dC5lbGVtZW50cyxyLm93bnNFbGVtZW50cz8oImZ1bmN0aW9uIj09dHlwZW9mIG4mJiJlbGVtZW50cyI9PT1uLl9yZWdsVHlwZT9yLmVsZW1lbnRzLmRlc3Ryb3koKTpyLmVsZW1lbnRzKG4pLHIub3duc0VsZW1lbnRzPSExKTphLmdldEVsZW1lbnRzKHQuZWxlbWVudHMpPyhyLmVsZW1lbnRzPXQuZWxlbWVudHMsci5vd25zRWxlbWVudHM9ITEpOihyLmVsZW1lbnRzPWEuY3JlYXRlKHQuZWxlbWVudHMpLHIub3duc0VsZW1lbnRzPSEwKSk6KHIuZWxlbWVudHM9bnVsbCxyLm93bnNFbGVtZW50cz0hMSksbj10LmF0dHJpYnV0ZXMsci5vZmZzZXQ9MCxyLmNvdW50PS0xLHIuaW5zdGFuY2VzPS0xLHIucHJpbWl0aXZlPTQsci5lbGVtZW50cyYmKHIuY291bnQ9ci5lbGVtZW50cy5fZWxlbWVudHMudmVydENvdW50LHIucHJpbWl0aXZlPXIuZWxlbWVudHMuX2VsZW1lbnRzLnByaW1UeXBlKSwib2Zmc2V0ImluIHQmJihyLm9mZnNldD0wfHQub2Zmc2V0KSwiY291bnQiaW4gdCYmKHIuY291bnQ9MHx0LmNvdW50KSwiaW5zdGFuY2VzImluIHQmJihyLmluc3RhbmNlcz0wfHQuaW5zdGFuY2VzKSwicHJpbWl0aXZlImluIHQmJihyLnByaW1pdGl2ZT1hdFt0LnByaW1pdGl2ZV0pKSx0PXt9O3ZhciBvPXIuYXR0cmlidXRlcztvLmxlbmd0aD1uLmxlbmd0aDtmb3IodmFyIHM9MDtzPG4ubGVuZ3RoOysrcyl7dmFyIGMsdT1uW3NdLGY9b1tzXT1uZXcgTSxoPXUuZGF0YXx8dTtpZihBcnJheS5pc0FycmF5KGgpfHxKKGgpfHxsKGgpKXIuYnVmZmVyc1tzXSYmKGM9ci5idWZmZXJzW3NdLEooaCkmJmMuX2J1ZmZlci5ieXRlTGVuZ3RoPj1oLmJ5dGVMZW5ndGg/Yy5zdWJkYXRhKGgpOihjLmRlc3Ryb3koKSxyLmJ1ZmZlcnNbc109bnVsbCkpLHIuYnVmZmVyc1tzXXx8KGM9ci5idWZmZXJzW3NdPWkuY3JlYXRlKHUsMzQ5NjIsITEsITApKSxmLmJ1ZmZlcj1pLmdldEJ1ZmZlcihjKSxmLnNpemU9MHxmLmJ1ZmZlci5kaW1lbnNpb24sZi5ub3JtYWxpemVkPSExLGYudHlwZT1mLmJ1ZmZlci5kdHlwZSxmLm9mZnNldD0wLGYuc3RyaWRlPTAsZi5kaXZpc29yPTAsZi5zdGF0ZT0xLHRbc109MTtlbHNlIGkuZ2V0QnVmZmVyKHUpPyhmLmJ1ZmZlcj1pLmdldEJ1ZmZlcih1KSxmLnNpemU9MHxmLmJ1ZmZlci5kaW1lbnNpb24sZi5ub3JtYWxpemVkPSExLGYudHlwZT1mLmJ1ZmZlci5kdHlwZSxmLm9mZnNldD0wLGYuc3RyaWRlPTAsZi5kaXZpc29yPTAsZi5zdGF0ZT0xKTppLmdldEJ1ZmZlcih1LmJ1ZmZlcik/KGYuYnVmZmVyPWkuZ2V0QnVmZmVyKHUuYnVmZmVyKSxmLnNpemU9MHwoK3Uuc2l6ZXx8Zi5idWZmZXIuZGltZW5zaW9uKSxmLm5vcm1hbGl6ZWQ9ISF1Lm5vcm1hbGl6ZWR8fCExLGYudHlwZT0idHlwZSJpbiB1P3R0W3UudHlwZV06Zi5idWZmZXIuZHR5cGUsZi5vZmZzZXQ9MHwodS5vZmZzZXR8fDApLGYuc3RyaWRlPTB8KHUuc3RyaWRlfHwwKSxmLmRpdmlzb3I9MHwodS5kaXZpc29yfHwwKSxmLnN0YXRlPTEpOiJ4ImluIHUmJihmLng9K3UueHx8MCxmLnk9K3UueXx8MCxmLno9K3Uuenx8MCxmLnc9K3Uud3x8MCxmLnN0YXRlPTIpfWZvcihjPTA7YzxyLmJ1ZmZlcnMubGVuZ3RoOysrYykhdFtjXSYmci5idWZmZXJzW2NdJiYoci5idWZmZXJzW2NdLmRlc3Ryb3koKSxyLmJ1ZmZlcnNbY109bnVsbCk7cmV0dXJuIHIucmVmcmVzaCgpLGV9dmFyIHI9bmV3IHM7cmV0dXJuIG4udmFvQ291bnQrPTEsZS5kZXN0cm95PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTA7dDxyLmJ1ZmZlcnMubGVuZ3RoOysrdClyLmJ1ZmZlcnNbdF0mJnIuYnVmZmVyc1t0XS5kZXN0cm95KCk7ci5idWZmZXJzLmxlbmd0aD0wLHIub3duc0VsZW1lbnRzJiYoci5lbGVtZW50cy5kZXN0cm95KCksci5lbGVtZW50cz1udWxsLHIub3duc0VsZW1lbnRzPSExKSxyLmRlc3Ryb3koKX0sZS5fdmFvPXIsZS5fcmVnbFR5cGU9InZhbyIsZSh0KX0sZ2V0VkFPOmZ1bmN0aW9uKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0Ll92YW8/dC5fdmFvOm51bGx9LGRlc3Ryb3lCdWZmZXI6ZnVuY3Rpb24oZSl7Zm9yKHZhciByPTA7cjx1Lmxlbmd0aDsrK3Ipe3ZhciBuPXVbcl07bi5idWZmZXI9PT1lJiYodC5kaXNhYmxlVmVydGV4QXR0cmliQXJyYXkociksbi5idWZmZXI9bnVsbCl9fSxzZXRWQU86ZS5vZXNfdmVydGV4X2FycmF5X29iamVjdD9mdW5jdGlvbih0KXtpZih0IT09cC5jdXJyZW50VkFPKXt2YXIgcj1lLm9lc192ZXJ0ZXhfYXJyYXlfb2JqZWN0O3Q/ci5iaW5kVmVydGV4QXJyYXlPRVModC52YW8pOnIuYmluZFZlcnRleEFycmF5T0VTKG51bGwpLHAuY3VycmVudFZBTz10fX06ZnVuY3Rpb24ocil7aWYociE9PXAuY3VycmVudFZBTyl7aWYocilyLmJpbmRBdHRycygpO2Vsc2V7Zm9yKHZhciBuPWUuYW5nbGVfaW5zdGFuY2VkX2FycmF5cyxpPTA7aTx1Lmxlbmd0aDsrK2kpe3ZhciBhPXVbaV07YS5idWZmZXI/KHQuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoaSksYS5idWZmZXIuYmluZCgpLHQudmVydGV4QXR0cmliUG9pbnRlcihpLGEuc2l6ZSxhLnR5cGUsYS5ub3JtYWxpemVkLGEuc3RyaWRlLGEub2ZmZnNldCksbiYmYS5kaXZpc29yJiZuLnZlcnRleEF0dHJpYkRpdmlzb3JBTkdMRShpLGEuZGl2aXNvcikpOih0LmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShpKSx0LnZlcnRleEF0dHJpYjRmKGksYS54LGEueSxhLnosYS53KSl9by5lbGVtZW50cz90LmJpbmRCdWZmZXIoMzQ5NjMsby5lbGVtZW50cy5idWZmZXIuYnVmZmVyKTp0LmJpbmRCdWZmZXIoMzQ5NjMsbnVsbCl9cC5jdXJyZW50VkFPPXJ9fSxjbGVhcjplLm9lc192ZXJ0ZXhfYXJyYXlfb2JqZWN0P2Z1bmN0aW9uKCl7SyhoKS5mb3JFYWNoKChmdW5jdGlvbih0KXt0LmRlc3Ryb3koKX0pKX06ZnVuY3Rpb24oKXt9fTtyZXR1cm4gcy5wcm90b3R5cGUuYmluZEF0dHJzPWZ1bmN0aW9uKCl7Zm9yKHZhciByPWUuYW5nbGVfaW5zdGFuY2VkX2FycmF5cyxuPXRoaXMuYXR0cmlidXRlcyxpPTA7aTxuLmxlbmd0aDsrK2kpe3ZhciBvPW5baV07by5idWZmZXI/KHQuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoaSksdC5iaW5kQnVmZmVyKDM0OTYyLG8uYnVmZmVyLmJ1ZmZlciksdC52ZXJ0ZXhBdHRyaWJQb2ludGVyKGksby5zaXplLG8udHlwZSxvLm5vcm1hbGl6ZWQsby5zdHJpZGUsby5vZmZzZXQpLHImJm8uZGl2aXNvciYmci52ZXJ0ZXhBdHRyaWJEaXZpc29yQU5HTEUoaSxvLmRpdmlzb3IpKToodC5kaXNhYmxlVmVydGV4QXR0cmliQXJyYXkoaSksdC52ZXJ0ZXhBdHRyaWI0ZihpLG8ueCxvLnksby56LG8udykpfWZvcihyPW4ubGVuZ3RoO3I8YzsrK3IpdC5kaXNhYmxlVmVydGV4QXR0cmliQXJyYXkocik7KHI9YS5nZXRFbGVtZW50cyh0aGlzLmVsZW1lbnRzKSk/dC5iaW5kQnVmZmVyKDM0OTYzLHIuYnVmZmVyLmJ1ZmZlcik6dC5iaW5kQnVmZmVyKDM0OTYzLG51bGwpfSxzLnByb3RvdHlwZS5yZWZyZXNoPWZ1bmN0aW9uKCl7dmFyIHQ9ZS5vZXNfdmVydGV4X2FycmF5X29iamVjdDt0JiYodC5iaW5kVmVydGV4QXJyYXlPRVModGhpcy52YW8pLHRoaXMuYmluZEF0dHJzKCkscC5jdXJyZW50VkFPPW51bGwsdC5iaW5kVmVydGV4QXJyYXlPRVMobnVsbCkpfSxzLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7aWYodGhpcy52YW8pe3ZhciB0PWUub2VzX3ZlcnRleF9hcnJheV9vYmplY3Q7dGhpcz09PXAuY3VycmVudFZBTyYmKHAuY3VycmVudFZBTz1udWxsLHQuYmluZFZlcnRleEFycmF5T0VTKG51bGwpKSx0LmRlbGV0ZVZlcnRleEFycmF5T0VTKHRoaXMudmFvKSx0aGlzLnZhbz1udWxsfXRoaXMub3duc0VsZW1lbnRzJiYodGhpcy5lbGVtZW50cy5kZXN0cm95KCksdGhpcy5lbGVtZW50cz1udWxsLHRoaXMub3duc0VsZW1lbnRzPSExKSxoW3RoaXMuaWRdJiYoZGVsZXRlIGhbdGhpcy5pZF0sLS1uLnZhb0NvdW50KX0scH1mdW5jdGlvbiBFKHQsZSxyLG4pe2Z1bmN0aW9uIGkodCxlLHIsbil7dGhpcy5uYW1lPXQsdGhpcy5pZD1lLHRoaXMubG9jYXRpb249cix0aGlzLmluZm89bn1mdW5jdGlvbiBhKHQsZSl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDsrK3IpaWYodFtyXS5pZD09PWUuaWQpcmV0dXJuIHZvaWQodFtyXS5sb2NhdGlvbj1lLmxvY2F0aW9uKTt0LnB1c2goZSl9ZnVuY3Rpb24gbyhyLG4saSl7aWYoIShvPShpPTM1NjMyPT09cj9jOnUpW25dKSl7dmFyIGE9ZS5zdHIobiksbz10LmNyZWF0ZVNoYWRlcihyKTt0LnNoYWRlclNvdXJjZShvLGEpLHQuY29tcGlsZVNoYWRlcihvKSxpW25dPW99cmV0dXJuIG99ZnVuY3Rpb24gcyh0LGUpe3RoaXMuaWQ9cCsrLHRoaXMuZnJhZ0lkPXQsdGhpcy52ZXJ0SWQ9ZSx0aGlzLnByb2dyYW09bnVsbCx0aGlzLnVuaWZvcm1zPVtdLHRoaXMuYXR0cmlidXRlcz1bXSx0aGlzLnJlZkNvdW50PTEsbi5wcm9maWxlJiYodGhpcy5zdGF0cz17dW5pZm9ybXNDb3VudDowLGF0dHJpYnV0ZXNDb3VudDowfSl9ZnVuY3Rpb24gbChyLHMsbCl7dmFyIGM7Yz1vKDM1NjMyLHIuZnJhZ0lkKTt2YXIgdT1vKDM1NjMzLHIudmVydElkKTtpZihzPXIucHJvZ3JhbT10LmNyZWF0ZVByb2dyYW0oKSx0LmF0dGFjaFNoYWRlcihzLGMpLHQuYXR0YWNoU2hhZGVyKHMsdSksbClmb3IoYz0wO2M8bC5sZW5ndGg7KytjKXU9bFtjXSx0LmJpbmRBdHRyaWJMb2NhdGlvbihzLHVbMF0sdVsxXSk7dC5saW5rUHJvZ3JhbShzKSx1PXQuZ2V0UHJvZ3JhbVBhcmFtZXRlcihzLDM1NzE4KSxuLnByb2ZpbGUmJihyLnN0YXRzLnVuaWZvcm1zQ291bnQ9dSk7dmFyIGY9ci51bmlmb3Jtcztmb3IoYz0wO2M8dTsrK2MpaWYobD10LmdldEFjdGl2ZVVuaWZvcm0ocyxjKSlpZigxPGwuc2l6ZSlmb3IodmFyIGg9MDtoPGwuc2l6ZTsrK2gpe3ZhciBwPWwubmFtZS5yZXBsYWNlKCJbMF0iLCJbIitoKyJdIik7YShmLG5ldyBpKHAsZS5pZChwKSx0LmdldFVuaWZvcm1Mb2NhdGlvbihzLHApLGwpKX1lbHNlIGEoZixuZXcgaShsLm5hbWUsZS5pZChsLm5hbWUpLHQuZ2V0VW5pZm9ybUxvY2F0aW9uKHMsbC5uYW1lKSxsKSk7Zm9yKHU9dC5nZXRQcm9ncmFtUGFyYW1ldGVyKHMsMzU3MjEpLG4ucHJvZmlsZSYmKHIuc3RhdHMuYXR0cmlidXRlc0NvdW50PXUpLHI9ci5hdHRyaWJ1dGVzLGM9MDtjPHU7KytjKShsPXQuZ2V0QWN0aXZlQXR0cmliKHMsYykpJiZhKHIsbmV3IGkobC5uYW1lLGUuaWQobC5uYW1lKSx0LmdldEF0dHJpYkxvY2F0aW9uKHMsbC5uYW1lKSxsKSl9dmFyIGM9e30sdT17fSxmPXt9LGg9W10scD0wO3JldHVybiBuLnByb2ZpbGUmJihyLmdldE1heFVuaWZvcm1zQ291bnQ9ZnVuY3Rpb24oKXt2YXIgdD0wO3JldHVybiBoLmZvckVhY2goKGZ1bmN0aW9uKGUpe2Uuc3RhdHMudW5pZm9ybXNDb3VudD50JiYodD1lLnN0YXRzLnVuaWZvcm1zQ291bnQpfSkpLHR9LHIuZ2V0TWF4QXR0cmlidXRlc0NvdW50PWZ1bmN0aW9uKCl7dmFyIHQ9MDtyZXR1cm4gaC5mb3JFYWNoKChmdW5jdGlvbihlKXtlLnN0YXRzLmF0dHJpYnV0ZXNDb3VudD50JiYodD1lLnN0YXRzLmF0dHJpYnV0ZXNDb3VudCl9KSksdH0pLHtjbGVhcjpmdW5jdGlvbigpe3ZhciBlPXQuZGVsZXRlU2hhZGVyLmJpbmQodCk7SyhjKS5mb3JFYWNoKGUpLGM9e30sSyh1KS5mb3JFYWNoKGUpLHU9e30saC5mb3JFYWNoKChmdW5jdGlvbihlKXt0LmRlbGV0ZVByb2dyYW0oZS5wcm9ncmFtKX0pKSxoLmxlbmd0aD0wLGY9e30sci5zaGFkZXJDb3VudD0wfSxwcm9ncmFtOmZ1bmN0aW9uKGUsbixpLGEpe3ZhciBvPWZbbl07b3x8KG89ZltuXT17fSk7dmFyIHA9b1tlXTtpZihwJiYocC5yZWZDb3VudCsrLCFhKSlyZXR1cm4gcDt2YXIgZD1uZXcgcyhuLGUpO3JldHVybiByLnNoYWRlckNvdW50KyssbChkLGksYSkscHx8KG9bZV09ZCksaC5wdXNoKGQpLEgoZCx7ZGVzdHJveTpmdW5jdGlvbigpe2lmKGQucmVmQ291bnQtLSwwPj1kLnJlZkNvdW50KXt0LmRlbGV0ZVByb2dyYW0oZC5wcm9ncmFtKTt2YXIgZT1oLmluZGV4T2YoZCk7aC5zcGxpY2UoZSwxKSxyLnNoYWRlckNvdW50LS19MD49b1tkLnZlcnRJZF0ucmVmQ291bnQmJih0LmRlbGV0ZVNoYWRlcih1W2QudmVydElkXSksZGVsZXRlIHVbZC52ZXJ0SWRdLGRlbGV0ZSBmW2QuZnJhZ0lkXVtkLnZlcnRJZF0pLE9iamVjdC5rZXlzKGZbZC5mcmFnSWRdKS5sZW5ndGh8fCh0LmRlbGV0ZVNoYWRlcihjW2QuZnJhZ0lkXSksZGVsZXRlIGNbZC5mcmFnSWRdLGRlbGV0ZSBmW2QuZnJhZ0lkXSl9fSl9LHJlc3RvcmU6ZnVuY3Rpb24oKXtjPXt9LHU9e307Zm9yKHZhciB0PTA7dDxoLmxlbmd0aDsrK3QpbChoW3RdLG51bGwsaFt0XS5hdHRyaWJ1dGVzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuW3QubG9jYXRpb24sdC5uYW1lXX0pKSl9LHNoYWRlcjpvLGZyYWc6LTEsdmVydDotMX19ZnVuY3Rpb24gTCh0LGUscixuLGksYSxvKXtmdW5jdGlvbiBzKGkpe3ZhciBhO2E9bnVsbD09PWUubmV4dD81MTIxOmUubmV4dC5jb2xvckF0dGFjaG1lbnRzWzBdLnRleHR1cmUuX3RleHR1cmUudHlwZTt2YXIgbz0wLHM9MCxsPW4uZnJhbWVidWZmZXJXaWR0aCxjPW4uZnJhbWVidWZmZXJIZWlnaHQsdT1udWxsO3JldHVybiBKKGkpP3U9aTppJiYobz0wfGkueCxzPTB8aS55LGw9MHwoaS53aWR0aHx8bi5mcmFtZWJ1ZmZlcldpZHRoLW8pLGM9MHwoaS5oZWlnaHR8fG4uZnJhbWVidWZmZXJIZWlnaHQtcyksdT1pLmRhdGF8fG51bGwpLHIoKSxpPWwqYyo0LHV8fCg1MTIxPT09YT91PW5ldyBVaW50OEFycmF5KGkpOjUxMjY9PT1hJiYodT11fHxuZXcgRmxvYXQzMkFycmF5KGkpKSksdC5waXhlbFN0b3JlaSgzMzMzLDQpLHQucmVhZFBpeGVscyhvLHMsbCxjLDY0MDgsYSx1KSx1fXJldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZyYW1lYnVmZmVyImluIHQ/ZnVuY3Rpb24odCl7dmFyIHI7cmV0dXJuIGUuc2V0RkJPKHtmcmFtZWJ1ZmZlcjp0LmZyYW1lYnVmZmVyfSwoZnVuY3Rpb24oKXtyPXModCl9KSkscn0odCk6cyh0KX19ZnVuY3Rpb24gQyh0LGUpe3JldHVybiB0Pj4+ZXx0PDwzMi1lfWZ1bmN0aW9uIFAodCxlKXt2YXIgcj0oNjU1MzUmdCkrKDY1NTM1JmUpO3JldHVybih0Pj4xNikrKGU+PjE2KSsocj4+MTYpPDwxNnw2NTUzNSZyfWZ1bmN0aW9uIEkodCl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQpfWZ1bmN0aW9uIE8odCl7cmV0dXJuIEkodCkuam9pbigiIil9ZnVuY3Rpb24geih0KXtmdW5jdGlvbiBlKCl7dmFyIHQ9W10sZT1bXTtyZXR1cm4gSCgoZnVuY3Rpb24oKXt0LnB1c2guYXBwbHkodCxJKGFyZ3VtZW50cykpfSkse2RlZjpmdW5jdGlvbigpe3ZhciByPSJ2IitpKys7cmV0dXJuIGUucHVzaChyKSwwPGFyZ3VtZW50cy5sZW5ndGgmJih0LnB1c2gociwiPSIpLHQucHVzaC5hcHBseSh0LEkoYXJndW1lbnRzKSksdC5wdXNoKCI7IikpLHJ9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIE8oWzA8ZS5sZW5ndGg/InZhciAiK2Uuam9pbigiLCIpKyI7IjoiIixPKHQpXSl9fSl9ZnVuY3Rpb24gcigpe2Z1bmN0aW9uIHQodCxlKXtuKHQsZSwiPSIsci5kZWYodCxlKSwiOyIpfXZhciByPWUoKSxuPWUoKSxpPXIudG9TdHJpbmcsYT1uLnRvU3RyaW5nO3JldHVybiBIKChmdW5jdGlvbigpe3IuYXBwbHkocixJKGFyZ3VtZW50cykpfSkse2RlZjpyLmRlZixlbnRyeTpyLGV4aXQ6bixzYXZlOnQsc2V0OmZ1bmN0aW9uKGUsbixpKXt0KGUsbikscihlLG4sIj0iLGksIjsiKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gaSgpK2EoKX19KX12YXIgbj10JiZ0LmNhY2hlLGk9MCxhPVtdLG89W10scz1bXSxsPWUoKSxjPXt9O3JldHVybntnbG9iYWw6bCxsaW5rOmZ1bmN0aW9uKHQsZSl7dmFyIHI9ZSYmZS5zdGFibGU7aWYoIXIpZm9yKHZhciBuPTA7bjxvLmxlbmd0aDsrK24paWYob1tuXT09PXQmJiFzW25dKXJldHVybiBhW25dO3JldHVybiBuPSJnIitpKyssYS5wdXNoKG4pLG8ucHVzaCh0KSxzLnB1c2gociksbn0sYmxvY2s6ZSxwcm9jOmZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3ZhciB0PSJhIitpLmxlbmd0aDtyZXR1cm4gaS5wdXNoKHQpLHR9dmFyIGk9W107ZT1lfHwwO2Zvcih2YXIgYT0wO2E8ZTsrK2EpbigpO3ZhciBvPShhPXIoKSkudG9TdHJpbmc7cmV0dXJuIGNbdF09SChhLHthcmc6bix0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiBPKFsiZnVuY3Rpb24oIixpLmpvaW4oKSwiKXsiLG8oKSwifSJdKX19KX0sc2NvcGU6cixjb25kOmZ1bmN0aW9uKCl7dmFyIHQ9Tyhhcmd1bWVudHMpLGU9cigpLG49cigpLGk9ZS50b1N0cmluZyxhPW4udG9TdHJpbmc7cmV0dXJuIEgoZSx7dGhlbjpmdW5jdGlvbigpe3JldHVybiBlLmFwcGx5KGUsSShhcmd1bWVudHMpKSx0aGlzfSxlbHNlOmZ1bmN0aW9uKCl7cmV0dXJuIG4uYXBwbHkobixJKGFyZ3VtZW50cykpLHRoaXN9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7dmFyIGU9YSgpO3JldHVybiBlJiYoZT0iZWxzZXsiK2UrIn0iKSxPKFsiaWYoIix0LCIpeyIsaSgpLCJ9IixlXSl9fSl9LGNvbXBpbGU6ZnVuY3Rpb24oKXt2YXIgdD1bJyJ1c2Ugc3RyaWN0IjsnLGwsInJldHVybiB7Il07T2JqZWN0LmtleXMoYykuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dC5wdXNoKCciJyxlLCciOicsY1tlXS50b1N0cmluZygpLCIsIil9KSksdC5wdXNoKCJ9Iik7dmFyIGUscj1PKHQpLnJlcGxhY2UoLzsvZywiO1xuIikucmVwbGFjZSgvfS9nLCJ9XG4iKS5yZXBsYWNlKC97L2csIntcbiIpO3JldHVybiBuJiYoZT1mdW5jdGlvbih0KXtmb3IodmFyIGUscj0iIixuPTA7bjx0Lmxlbmd0aDtuKyspZT10LmNoYXJDb2RlQXQobikscis9IjAxMjM0NTY3ODlhYmNkZWYiLmNoYXJBdChlPj4+NCYxNSkrIjAxMjM0NTY3ODlhYmNkZWYiLmNoYXJBdCgxNSZlKTtyZXR1cm4gcn0oZnVuY3Rpb24odCl7Zm9yKHZhciBlPUFycmF5KHQubGVuZ3RoPj4yKSxyPTA7cjxlLmxlbmd0aDtyKyspZVtyXT0wO2ZvcihyPTA7cjw4KnQubGVuZ3RoO3IrPTgpZVtyPj41XXw9KDI1NSZ0LmNoYXJDb2RlQXQoci84KSk8PDI0LXIlMzI7dmFyIG4saSxhLG8scyxsLGMsdSxmLGgscCxkPTgqdC5sZW5ndGg7Zm9yKHQ9WzE3NzkwMzM3MDMsLTExNTA4MzMwMTksMTAxMzkwNDI0MiwtMTUyMTQ4NjUzNCwxMzU5ODkzMTE5LC0xNjk0MTQ0MzcyLDUyODczNDYzNSwxNTQxNDU5MjI1XSxyPUFycmF5KDY0KSxlW2Q+PjVdfD0xMjg8PDI0LWQlMzIsZVsxNSsoZCs2ND4+OTw8NCldPWQsdT0wO3U8ZS5sZW5ndGg7dSs9MTYpe2ZvcihkPXRbMF0sbj10WzFdLGk9dFsyXSxhPXRbM10sbz10WzRdLHM9dFs1XSxsPXRbNl0sYz10WzddLGY9MDs2ND5mO2YrKyl7dmFyIG07aWYoMTY+ZilyW2ZdPWVbZit1XTtlbHNlIGg9ZixwPVAocD1DKHA9cltmLTJdLDE3KV5DKHAsMTkpXnA+Pj4xMCxyW2YtN10pLG09QyhtPXJbZi0xNV0sNyleQyhtLDE4KV5tPj4+MyxyW2hdPVAoUChwLG0pLHJbZi0xNl0pO2g9UChQKFAoUChjLGg9QyhoPW8sNileQyhoLDExKV5DKGgsMjUpKSxvJnNefm8mbCksa3RbZl0pLHJbZl0pLHA9UChjPUMoYz1kLDIpXkMoYywxMyleQyhjLDIyKSxkJm5eZCZpXm4maSksYz1sLGw9cyxzPW8sbz1QKGEsaCksYT1pLGk9bixuPWQsZD1QKGgscCl9dFswXT1QKGQsdFswXSksdFsxXT1QKG4sdFsxXSksdFsyXT1QKGksdFsyXSksdFszXT1QKGEsdFszXSksdFs0XT1QKG8sdFs0XSksdFs1XT1QKHMsdFs1XSksdFs2XT1QKGwsdFs2XSksdFs3XT1QKGMsdFs3XSl9Zm9yKGU9IiIscj0wO3I8MzIqdC5sZW5ndGg7cis9OCllKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHRbcj4+NV0+Pj4yNC1yJTMyJjI1NSk7cmV0dXJuIGV9KGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyLG49IiIsaT0tMTsrK2k8dC5sZW5ndGg7KWU9dC5jaGFyQ29kZUF0KGkpLHI9aSsxPHQubGVuZ3RoP3QuY2hhckNvZGVBdChpKzEpOjAsNTUyOTY8PWUmJjU2MzE5Pj1lJiY1NjMyMDw9ciYmNTczNDM+PXImJihlPTY1NTM2KygoMTAyMyZlKTw8MTApKygxMDIzJnIpLGkrKyksMTI3Pj1lP24rPVN0cmluZy5mcm9tQ2hhckNvZGUoZSk6MjA0Nz49ZT9uKz1TdHJpbmcuZnJvbUNoYXJDb2RlKDE5MnxlPj4+NiYzMSwxMjh8NjMmZSk6NjU1MzU+PWU/bis9U3RyaW5nLmZyb21DaGFyQ29kZSgyMjR8ZT4+PjEyJjE1LDEyOHxlPj4+NiY2MywxMjh8NjMmZSk6MjA5NzE1MT49ZSYmKG4rPVN0cmluZy5mcm9tQ2hhckNvZGUoMjQwfGU+Pj4xOCY3LDEyOHxlPj4+MTImNjMsMTI4fGU+Pj42JjYzLDEyOHw2MyZlKSk7cmV0dXJuIG59KHIpKSksbltlXSk/bltlXS5hcHBseShudWxsLG8pOihyPUZ1bmN0aW9uLmFwcGx5KG51bGwsYS5jb25jYXQocikpLG4mJihuW2VdPXIpLHIuYXBwbHkobnVsbCxvKSl9fX1mdW5jdGlvbiBEKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpfHxKKHQpfHxsKHQpfWZ1bmN0aW9uIFIodCl7cmV0dXJuIHQuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4idmlld3BvcnQiPT09dD8tMToidmlld3BvcnQiPT09ZT8xOnQ8ZT8tMToxfSkpfWZ1bmN0aW9uIEYodCxlLHIsbil7dGhpcy50aGlzRGVwPXQsdGhpcy5jb250ZXh0RGVwPWUsdGhpcy5wcm9wRGVwPXIsdGhpcy5hcHBlbmQ9bn1mdW5jdGlvbiBCKHQpe3JldHVybiB0JiYhKHQudGhpc0RlcHx8dC5jb250ZXh0RGVwfHx0LnByb3BEZXApfWZ1bmN0aW9uIE4odCl7cmV0dXJuIG5ldyBGKCExLCExLCExLHQpfWZ1bmN0aW9uIGoodCxlKXt2YXIgcj10LnR5cGU7aWYoMD09PXIpcmV0dXJuIG5ldyBGKCEwLDE8PShyPXQuZGF0YS5sZW5ndGgpLDI8PXIsZSk7aWYoND09PXIpcmV0dXJuIG5ldyBGKChyPXQuZGF0YSkudGhpc0RlcCxyLmNvbnRleHREZXAsci5wcm9wRGVwLGUpO2lmKDU9PT1yKXJldHVybiBuZXcgRighMSwhMSwhMSxlKTtpZig2PT09cil7Zm9yKHZhciBuPXI9ITEsaT0hMSxhPTA7YTx0LmRhdGEubGVuZ3RoOysrYSl7dmFyIG89dC5kYXRhW2FdOzE9PT1vLnR5cGU/aT0hMDoyPT09by50eXBlP249ITA6Mz09PW8udHlwZT9yPSEwOjA9PT1vLnR5cGU/KHI9ITAsMTw9KG89by5kYXRhKSYmKG49ITApLDI8PW8mJihpPSEwKSk6ND09PW8udHlwZSYmKHI9cnx8by5kYXRhLnRoaXNEZXAsbj1ufHxvLmRhdGEuY29udGV4dERlcCxpPWl8fG8uZGF0YS5wcm9wRGVwKX1yZXR1cm4gbmV3IEYocixuLGksZSl9cmV0dXJuIG5ldyBGKDM9PT1yLDI9PT1yLDE9PT1yLGUpfWZ1bmN0aW9uIFUodCxlLHIsbixpLG8scyxsLGMsdSxmLGgscCxkLG0sdil7ZnVuY3Rpb24geSh0KXtyZXR1cm4gdC5yZXBsYWNlKCIuIiwiXyIpfWZ1bmN0aW9uIHgodCxlLHIpe3ZhciBuPXkodCk7b3QucHVzaCh0KSxpdFtuXT1udFtuXT0hIXIsc3Rbbl09ZX1mdW5jdGlvbiBiKHQsZSxyKXt2YXIgbj15KHQpO290LnB1c2godCksQXJyYXkuaXNBcnJheShyKT8obnRbbl09ci5zbGljZSgpLGl0W25dPXIuc2xpY2UoKSk6bnRbbl09aXRbbl09cixsdFtuXT1lfWZ1bmN0aW9uIF8oKXt2YXIgdD16KHtjYWNoZTptfSkscj10Lmxpbmssbj10Lmdsb2JhbDt0LmlkPWZ0KyssdC5iYXRjaElkPSIwIjt2YXIgaT1yKGN0KSxhPXQuc2hhcmVkPXtwcm9wczoiYTAifTtPYmplY3Qua2V5cyhjdCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7YVt0XT1uLmRlZihpLCIuIix0KX0pKTt2YXIgbz10Lm5leHQ9e30scz10LmN1cnJlbnQ9e307T2JqZWN0LmtleXMobHQpLmZvckVhY2goKGZ1bmN0aW9uKHQpe0FycmF5LmlzQXJyYXkobnRbdF0pJiYob1t0XT1uLmRlZihhLm5leHQsIi4iLHQpLHNbdF09bi5kZWYoYS5jdXJyZW50LCIuIix0KSl9KSk7dmFyIGw9dC5jb25zdGFudHM9e307T2JqZWN0LmtleXModXQpLmZvckVhY2goKGZ1bmN0aW9uKHQpe2xbdF09bi5kZWYoSlNPTi5zdHJpbmdpZnkodXRbdF0pKX0pKSx0Lmludm9rZT1mdW5jdGlvbihlLG4pe3N3aXRjaChuLnR5cGUpe2Nhc2UgMDp2YXIgaT1bInRoaXMiLGEuY29udGV4dCxhLnByb3BzLHQuYmF0Y2hJZF07cmV0dXJuIGUuZGVmKHIobi5kYXRhKSwiLmNhbGwoIixpLnNsaWNlKDAsTWF0aC5tYXgobi5kYXRhLmxlbmd0aCsxLDQpKSwiKSIpO2Nhc2UgMTpyZXR1cm4gZS5kZWYoYS5wcm9wcyxuLmRhdGEpO2Nhc2UgMjpyZXR1cm4gZS5kZWYoYS5jb250ZXh0LG4uZGF0YSk7Y2FzZSAzOnJldHVybiBlLmRlZigidGhpcyIsbi5kYXRhKTtjYXNlIDQ6cmV0dXJuIG4uZGF0YS5hcHBlbmQodCxlKSxuLmRhdGEucmVmO2Nhc2UgNTpyZXR1cm4gbi5kYXRhLnRvU3RyaW5nKCk7Y2FzZSA2OnJldHVybiBuLmRhdGEubWFwKChmdW5jdGlvbihyKXtyZXR1cm4gdC5pbnZva2UoZSxyKX0pKX19LHQuYXR0cmliQ2FjaGU9e307dmFyIGM9e307cmV0dXJuIHQuc2NvcGVBdHRyaWI9ZnVuY3Rpb24odCl7aWYoKHQ9ZS5pZCh0KSlpbiBjKXJldHVybiBjW3RdO3ZhciBuPXUuc2NvcGVbdF07cmV0dXJuIG58fChuPXUuc2NvcGVbdF09bmV3IEspLGNbdF09cihuKX0sdH1mdW5jdGlvbiB3KHQsZSl7dmFyIHI9dC5zdGF0aWMsbj10LmR5bmFtaWM7aWYoImZyYW1lYnVmZmVyImluIHIpe3ZhciBpPXIuZnJhbWVidWZmZXI7cmV0dXJuIGk/KGk9bC5nZXRGcmFtZWJ1ZmZlcihpKSxOKChmdW5jdGlvbih0LGUpe3ZhciByPXQubGluayhpKSxuPXQuc2hhcmVkO3JldHVybiBlLnNldChuLmZyYW1lYnVmZmVyLCIubmV4dCIsciksbj1uLmNvbnRleHQsZS5zZXQobiwiLmZyYW1lYnVmZmVyV2lkdGgiLHIrIi53aWR0aCIpLGUuc2V0KG4sIi5mcmFtZWJ1ZmZlckhlaWdodCIscisiLmhlaWdodCIpLHJ9KSkpOk4oKGZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5zaGFyZWQ7cmV0dXJuIGUuc2V0KHIuZnJhbWVidWZmZXIsIi5uZXh0IiwibnVsbCIpLHI9ci5jb250ZXh0LGUuc2V0KHIsIi5mcmFtZWJ1ZmZlcldpZHRoIixyKyIuZHJhd2luZ0J1ZmZlcldpZHRoIiksZS5zZXQociwiLmZyYW1lYnVmZmVySGVpZ2h0IixyKyIuZHJhd2luZ0J1ZmZlckhlaWdodCIpLCJudWxsIn0pKX1pZigiZnJhbWVidWZmZXIiaW4gbil7dmFyIGE9bi5mcmFtZWJ1ZmZlcjtyZXR1cm4gaihhLChmdW5jdGlvbih0LGUpe3ZhciByPXQuaW52b2tlKGUsYSksbj10LnNoYXJlZCxpPW4uZnJhbWVidWZmZXI7cj1lLmRlZihpLCIuZ2V0RnJhbWVidWZmZXIoIixyLCIpIik7cmV0dXJuIGUuc2V0KGksIi5uZXh0IixyKSxuPW4uY29udGV4dCxlLnNldChuLCIuZnJhbWVidWZmZXJXaWR0aCIscisiPyIrcisiLndpZHRoOiIrbisiLmRyYXdpbmdCdWZmZXJXaWR0aCIpLGUuc2V0KG4sIi5mcmFtZWJ1ZmZlckhlaWdodCIscisiPyIrcisiLmhlaWdodDoiK24rIi5kcmF3aW5nQnVmZmVySGVpZ2h0Iikscn0pKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBUKHQscixuKXtmdW5jdGlvbiBpKHQpe2lmKHQgaW4gYSl7dmFyIHI9ZS5pZChhW3RdKTtyZXR1cm4odD1OKChmdW5jdGlvbigpe3JldHVybiByfSkpKS5pZD1yLHR9aWYodCBpbiBvKXt2YXIgbj1vW3RdO3JldHVybiBqKG4sKGZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5pbnZva2UoZSxuKTtyZXR1cm4gZS5kZWYodC5zaGFyZWQuc3RyaW5ncywiLmlkKCIsciwiKSIpfSkpfXJldHVybiBudWxsfXZhciBhPXQuc3RhdGljLG89dC5keW5hbWljLHM9aSgiZnJhZyIpLGw9aSgidmVydCIpLGM9bnVsbDtyZXR1cm4gQihzKSYmQihsKT8oYz1mLnByb2dyYW0obC5pZCxzLmlkLG51bGwsbiksdD1OKChmdW5jdGlvbih0LGUpe3JldHVybiB0LmxpbmsoYyl9KSkpOnQ9bmV3IEYocyYmcy50aGlzRGVwfHxsJiZsLnRoaXNEZXAscyYmcy5jb250ZXh0RGVwfHxsJiZsLmNvbnRleHREZXAscyYmcy5wcm9wRGVwfHxsJiZsLnByb3BEZXAsKGZ1bmN0aW9uKHQsZSl7dmFyIHIsbixpPXQuc2hhcmVkLnNoYWRlcjtyZXR1cm4gcj1zP3MuYXBwZW5kKHQsZSk6ZS5kZWYoaSwiLiIsImZyYWciKSxuPWw/bC5hcHBlbmQodCxlKTplLmRlZihpLCIuIiwidmVydCIpLGUuZGVmKGkrIi5wcm9ncmFtKCIrbisiLCIrcisiKSIpfSkpLHtmcmFnOnMsdmVydDpsLHByb2dWYXI6dCxwcm9ncmFtOmN9fWZ1bmN0aW9uIGsodCxlKXtmdW5jdGlvbiByKHQsZSl7aWYodCBpbiBuKXt2YXIgcj0wfG5bdF07cmV0dXJuIGU/YS5vZmZzZXQ9cjphLmluc3RhbmNlcz1yLE4oKGZ1bmN0aW9uKHQsbil7cmV0dXJuIGUmJih0Lk9GRlNFVD1yKSxyfSkpfWlmKHQgaW4gaSl7dmFyIG89aVt0XTtyZXR1cm4gaihvLChmdW5jdGlvbih0LHIpe3ZhciBuPXQuaW52b2tlKHIsbyk7cmV0dXJuIGUmJih0Lk9GRlNFVD1uKSxufSkpfWlmKGUpe2lmKGMpcmV0dXJuIE4oKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuT0ZGU0VUPTB9KSk7aWYocylyZXR1cm4gbmV3IEYobC50aGlzRGVwLGwuY29udGV4dERlcCxsLnByb3BEZXAsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuZGVmKHQuc2hhcmVkLnZhbysiLmN1cnJlbnRWQU8/Iit0LnNoYXJlZC52YW8rIi5jdXJyZW50VkFPLm9mZnNldDowIil9KSl9ZWxzZSBpZihzKXJldHVybiBuZXcgRihsLnRoaXNEZXAsbC5jb250ZXh0RGVwLGwucHJvcERlcCwoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5kZWYodC5zaGFyZWQudmFvKyIuY3VycmVudFZBTz8iK3Quc2hhcmVkLnZhbysiLmN1cnJlbnRWQU8uaW5zdGFuY2VzOi0xIil9KSk7cmV0dXJuIG51bGx9dmFyIG49dC5zdGF0aWMsaT10LmR5bmFtaWMsYT17fSxzPSExLGw9ZnVuY3Rpb24oKXtpZigidmFvImluIG4pe3ZhciB0PW4udmFvO3JldHVybiBudWxsIT09dCYmbnVsbD09PXUuZ2V0VkFPKHQpJiYodD11LmNyZWF0ZVZBTyh0KSkscz0hMCxhLnZhbz10LE4oKGZ1bmN0aW9uKGUpe3ZhciByPXUuZ2V0VkFPKHQpO3JldHVybiByP2UubGluayhyKToibnVsbCJ9KSl9aWYoInZhbyJpbiBpKXtzPSEwO3ZhciBlPWkudmFvO3JldHVybiBqKGUsKGZ1bmN0aW9uKHQscil7dmFyIG49dC5pbnZva2UocixlKTtyZXR1cm4gci5kZWYodC5zaGFyZWQudmFvKyIuZ2V0VkFPKCIrbisiKSIpfSkpfXJldHVybiBudWxsfSgpLGM9ITEsZj1mdW5jdGlvbigpe2lmKCJlbGVtZW50cyJpbiBuKXt2YXIgdD1uLmVsZW1lbnRzO2lmKGEuZWxlbWVudHM9dCxEKHQpKXt2YXIgZT1hLmVsZW1lbnRzPW8uY3JlYXRlKHQsITApO3Q9by5nZXRFbGVtZW50cyhlKTtjPSEwfWVsc2UgdCYmKHQ9by5nZXRFbGVtZW50cyh0KSxjPSEwKTtyZXR1cm4oZT1OKChmdW5jdGlvbihlLHIpe2lmKHQpe3ZhciBuPWUubGluayh0KTtyZXR1cm4gZS5FTEVNRU5UUz1ufXJldHVybiBlLkVMRU1FTlRTPW51bGx9KSkpLnZhbHVlPXQsZX1pZigiZWxlbWVudHMiaW4gaSl7Yz0hMDt2YXIgcj1pLmVsZW1lbnRzO3JldHVybiBqKHIsKGZ1bmN0aW9uKHQsZSl7dmFyIG49KGk9dC5zaGFyZWQpLmlzQnVmZmVyQXJncyxpPWkuZWxlbWVudHMsYT10Lmludm9rZShlLHIpLG89ZS5kZWYoIm51bGwiKTtuPWUuZGVmKG4sIigiLGEsIikiKSxhPXQuY29uZChuKS50aGVuKG8sIj0iLGksIi5jcmVhdGVTdHJlYW0oIixhLCIpOyIpLmVsc2UobywiPSIsaSwiLmdldEVsZW1lbnRzKCIsYSwiKTsiKTtyZXR1cm4gZS5lbnRyeShhKSxlLmV4aXQodC5jb25kKG4pLnRoZW4oaSwiLmRlc3Ryb3lTdHJlYW0oIixvLCIpOyIpKSx0LkVMRU1FTlRTPW99KSl9cmV0dXJuIHM/bmV3IEYobC50aGlzRGVwLGwuY29udGV4dERlcCxsLnByb3BEZXAsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuZGVmKHQuc2hhcmVkLnZhbysiLmN1cnJlbnRWQU8/Iit0LnNoYXJlZC5lbGVtZW50cysiLmdldEVsZW1lbnRzKCIrdC5zaGFyZWQudmFvKyIuY3VycmVudFZBTy5lbGVtZW50cyk6bnVsbCIpfSkpOm51bGx9KCksaD1yKCJvZmZzZXQiLCEwKSxwPWZ1bmN0aW9uKCl7aWYoInByaW1pdGl2ZSJpbiBuKXt2YXIgdD1uLnByaW1pdGl2ZTtyZXR1cm4gYS5wcmltaXRpdmU9dCxOKChmdW5jdGlvbihlLHIpe3JldHVybiBhdFt0XX0pKX1pZigicHJpbWl0aXZlImluIGkpe3ZhciBlPWkucHJpbWl0aXZlO3JldHVybiBqKGUsKGZ1bmN0aW9uKHQscil7dmFyIG49dC5jb25zdGFudHMucHJpbVR5cGVzLGk9dC5pbnZva2UocixlKTtyZXR1cm4gci5kZWYobiwiWyIsaSwiXSIpfSkpfXJldHVybiBjP0IoZik/Zi52YWx1ZT9OKChmdW5jdGlvbih0LGUpe3JldHVybiBlLmRlZih0LkVMRU1FTlRTLCIucHJpbVR5cGUiKX0pKTpOKChmdW5jdGlvbigpe3JldHVybiA0fSkpOm5ldyBGKGYudGhpc0RlcCxmLmNvbnRleHREZXAsZi5wcm9wRGVwLChmdW5jdGlvbih0LGUpe3ZhciByPXQuRUxFTUVOVFM7cmV0dXJuIGUuZGVmKHIsIj8iLHIsIi5wcmltVHlwZToiLDQpfSkpOnM/bmV3IEYobC50aGlzRGVwLGwuY29udGV4dERlcCxsLnByb3BEZXAsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuZGVmKHQuc2hhcmVkLnZhbysiLmN1cnJlbnRWQU8/Iit0LnNoYXJlZC52YW8rIi5jdXJyZW50VkFPLnByaW1pdGl2ZTo0Iil9KSk6bnVsbH0oKSxkPWZ1bmN0aW9uKCl7aWYoImNvdW50ImluIG4pe3ZhciB0PTB8bi5jb3VudDtyZXR1cm4gYS5jb3VudD10LE4oKGZ1bmN0aW9uKCl7cmV0dXJuIHR9KSl9aWYoImNvdW50ImluIGkpe3ZhciBlPWkuY291bnQ7cmV0dXJuIGooZSwoZnVuY3Rpb24odCxyKXtyZXR1cm4gdC5pbnZva2UocixlKX0pKX1yZXR1cm4gYz9CKGYpP2Y/aD9uZXcgRihoLnRoaXNEZXAsaC5jb250ZXh0RGVwLGgucHJvcERlcCwoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5kZWYodC5FTEVNRU5UUywiLnZlcnRDb3VudC0iLHQuT0ZGU0VUKX0pKTpOKChmdW5jdGlvbih0LGUpe3JldHVybiBlLmRlZih0LkVMRU1FTlRTLCIudmVydENvdW50Iil9KSk6TigoZnVuY3Rpb24oKXtyZXR1cm4tMX0pKTpuZXcgRihmLnRoaXNEZXB8fGgudGhpc0RlcCxmLmNvbnRleHREZXB8fGguY29udGV4dERlcCxmLnByb3BEZXB8fGgucHJvcERlcCwoZnVuY3Rpb24odCxlKXt2YXIgcj10LkVMRU1FTlRTO3JldHVybiB0Lk9GRlNFVD9lLmRlZihyLCI/IixyLCIudmVydENvdW50LSIsdC5PRkZTRVQsIjotMSIpOmUuZGVmKHIsIj8iLHIsIi52ZXJ0Q291bnQ6LTEiKX0pKTpzP25ldyBGKGwudGhpc0RlcCxsLmNvbnRleHREZXAsbC5wcm9wRGVwLChmdW5jdGlvbih0LGUpe3JldHVybiBlLmRlZih0LnNoYXJlZC52YW8sIi5jdXJyZW50VkFPPyIsdC5zaGFyZWQudmFvLCIuY3VycmVudFZBTy5jb3VudDotMSIpfSkpOm51bGx9KCksbT1yKCJpbnN0YW5jZXMiLCExKTtyZXR1cm57ZWxlbWVudHM6ZixwcmltaXRpdmU6cCxjb3VudDpkLGluc3RhbmNlczptLG9mZnNldDpoLHZhbzpsLHZhb0FjdGl2ZTpzLGVsZW1lbnRzQWN0aXZlOmMsc3RhdGljOmF9fWZ1bmN0aW9uIEEodCxyKXt2YXIgbj10LnN0YXRpYyxhPXQuZHluYW1pYyxvPXt9O3JldHVybiBPYmplY3Qua2V5cyhuKS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgcj1uW3RdLGE9ZS5pZCh0KSxzPW5ldyBLO2lmKEQocikpcy5zdGF0ZT0xLHMuYnVmZmVyPWkuZ2V0QnVmZmVyKGkuY3JlYXRlKHIsMzQ5NjIsITEsITApKSxzLnR5cGU9MDtlbHNlIGlmKGM9aS5nZXRCdWZmZXIocikpcy5zdGF0ZT0xLHMuYnVmZmVyPWMscy50eXBlPTA7ZWxzZSBpZigiY29uc3RhbnQiaW4gcil7dmFyIGw9ci5jb25zdGFudDtzLmJ1ZmZlcj0ibnVsbCIscy5zdGF0ZT0yLCJudW1iZXIiPT10eXBlb2YgbD9zLng9bDpBdC5mb3JFYWNoKChmdW5jdGlvbih0LGUpe2U8bC5sZW5ndGgmJihzW3RdPWxbZV0pfSkpfWVsc2V7dmFyIGM9RChyLmJ1ZmZlcik/aS5nZXRCdWZmZXIoaS5jcmVhdGUoci5idWZmZXIsMzQ5NjIsITEsITApKTppLmdldEJ1ZmZlcihyLmJ1ZmZlciksdT0wfHIub2Zmc2V0LGY9MHxyLnN0cmlkZSxoPTB8ci5zaXplLHA9ISFyLm5vcm1hbGl6ZWQsZD0wOyJ0eXBlImluIHImJihkPXR0W3IudHlwZV0pLHI9MHxyLmRpdmlzb3Iscy5idWZmZXI9YyxzLnN0YXRlPTEscy5zaXplPWgscy5ub3JtYWxpemVkPXAscy50eXBlPWR8fGMuZHR5cGUscy5vZmZzZXQ9dSxzLnN0cmlkZT1mLHMuZGl2aXNvcj1yfW9bdF09TigoZnVuY3Rpb24odCxlKXt2YXIgcj10LmF0dHJpYkNhY2hlO2lmKGEgaW4gcilyZXR1cm4gclthXTt2YXIgbj17aXNTdHJlYW06ITF9O3JldHVybiBPYmplY3Qua2V5cyhzKS5mb3JFYWNoKChmdW5jdGlvbih0KXtuW3RdPXNbdF19KSkscy5idWZmZXImJihuLmJ1ZmZlcj10Lmxpbmsocy5idWZmZXIpLG4udHlwZT1uLnR5cGV8fG4uYnVmZmVyKyIuZHR5cGUiKSxyW2FdPW59KSl9KSksT2JqZWN0LmtleXMoYSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9YVt0XTtvW3RdPWooZSwoZnVuY3Rpb24odCxyKXtmdW5jdGlvbiBuKHQpe3IobFt0XSwiPSIsaSwiLiIsdCwifDA7Iil9dmFyIGk9dC5pbnZva2UocixlKSxhPXQuc2hhcmVkLG89dC5jb25zdGFudHMscz1hLmlzQnVmZmVyQXJncyxsPShhPWEuYnVmZmVyLHtpc1N0cmVhbTpyLmRlZighMSl9KSxjPW5ldyBLO2Muc3RhdGU9MSxPYmplY3Qua2V5cyhjKS5mb3JFYWNoKChmdW5jdGlvbih0KXtsW3RdPXIuZGVmKCIiK2NbdF0pfSkpO3ZhciB1PWwuYnVmZmVyLGY9bC50eXBlO3JldHVybiByKCJpZigiLHMsIigiLGksIikpeyIsbC5pc1N0cmVhbSwiPXRydWU7Iix1LCI9IixhLCIuY3JlYXRlU3RyZWFtKCIsMzQ5NjIsIiwiLGksIik7IixmLCI9Iix1LCIuZHR5cGU7IiwifWVsc2V7Iix1LCI9IixhLCIuZ2V0QnVmZmVyKCIsaSwiKTsiLCJpZigiLHUsIil7IixmLCI9Iix1LCIuZHR5cGU7IiwnfWVsc2UgaWYoImNvbnN0YW50IiBpbiAnLGksIil7IixsLnN0YXRlLCI9IiwyLCI7IiwiaWYodHlwZW9mICIraSsnLmNvbnN0YW50ID09PSAibnVtYmVyIil7JyxsW0F0WzBdXSwiPSIsaSwiLmNvbnN0YW50OyIsQXQuc2xpY2UoMSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gbFt0XX0pKS5qb2luKCI9IiksIj0wOyIsIn1lbHNleyIsQXQubWFwKChmdW5jdGlvbih0LGUpe3JldHVybiBsW3RdKyI9IitpKyIuY29uc3RhbnQubGVuZ3RoPiIrZSsiPyIraSsiLmNvbnN0YW50WyIrZSsiXTowOyJ9KSkuam9pbigiIiksIn19ZWxzZXsiLCJpZigiLHMsIigiLGksIi5idWZmZXIpKXsiLHUsIj0iLGEsIi5jcmVhdGVTdHJlYW0oIiwzNDk2MiwiLCIsaSwiLmJ1ZmZlcik7IiwifWVsc2V7Iix1LCI9IixhLCIuZ2V0QnVmZmVyKCIsaSwiLmJ1ZmZlcik7IiwifSIsZiwnPSJ0eXBlIiBpbiAnLGksIj8iLG8uZ2xUeXBlcywiWyIsaSwiLnR5cGVdOiIsdSwiLmR0eXBlOyIsbC5ub3JtYWxpemVkLCI9ISEiLGksIi5ub3JtYWxpemVkOyIpLG4oInNpemUiKSxuKCJvZmZzZXQiKSxuKCJzdHJpZGUiKSxuKCJkaXZpc29yIikscigifX0iKSxyLmV4aXQoImlmKCIsbC5pc1N0cmVhbSwiKXsiLGEsIi5kZXN0cm95U3RyZWFtKCIsdSwiKTsiLCJ9IiksbH0pKX0pKSxvfWZ1bmN0aW9uIE0odCxlLG4saSxvKXtmdW5jdGlvbiBzKHQpe3ZhciBlPWNbdF07ZSYmKGhbdF09ZSl9dmFyIGw9ZnVuY3Rpb24odCxlKXtpZigic3RyaW5nIj09dHlwZW9mKHI9dC5zdGF0aWMpLmZyYWcmJiJzdHJpbmciPT10eXBlb2Ygci52ZXJ0KXtpZigwPE9iamVjdC5rZXlzKGUuZHluYW1pYykubGVuZ3RoKXJldHVybiBudWxsO3ZhciByPWUuc3RhdGljLG49T2JqZWN0LmtleXMocik7aWYoMDxuLmxlbmd0aCYmIm51bWJlciI9PXR5cGVvZiByW25bMF1dKXtmb3IodmFyIGk9W10sYT0wO2E8bi5sZW5ndGg7KythKWkucHVzaChbMHxyW25bYV1dLG5bYV1dKTtyZXR1cm4gaX19cmV0dXJuIG51bGx9KHQsZSksYz1mdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gbih0KXtpZih0IGluIGkpe3ZhciByPWlbdF07dD0hMDt2YXIgbixvLHM9MHxyLngsbD0wfHIueTtyZXR1cm4id2lkdGgiaW4gcj9uPTB8ci53aWR0aDp0PSExLCJoZWlnaHQiaW4gcj9vPTB8ci5oZWlnaHQ6dD0hMSxuZXcgRighdCYmZSYmZS50aGlzRGVwLCF0JiZlJiZlLmNvbnRleHREZXAsIXQmJmUmJmUucHJvcERlcCwoZnVuY3Rpb24odCxlKXt2YXIgaT10LnNoYXJlZC5jb250ZXh0LGE9bjsid2lkdGgiaW4gcnx8KGE9ZS5kZWYoaSwiLiIsImZyYW1lYnVmZmVyV2lkdGgiLCItIixzKSk7dmFyIGM9bztyZXR1cm4iaGVpZ2h0ImluIHJ8fChjPWUuZGVmKGksIi4iLCJmcmFtZWJ1ZmZlckhlaWdodCIsIi0iLGwpKSxbcyxsLGEsY119KSl9aWYodCBpbiBhKXt2YXIgYz1hW3RdO3JldHVybiB0PWooYywoZnVuY3Rpb24odCxlKXt2YXIgcj10Lmludm9rZShlLGMpLG49dC5zaGFyZWQuY29udGV4dCxpPWUuZGVmKHIsIi54fDAiKSxhPWUuZGVmKHIsIi55fDAiKTtyZXR1cm5baSxhLGUuZGVmKCcid2lkdGgiIGluICcsciwiPyIsciwiLndpZHRofDA6IiwiKCIsbiwiLiIsImZyYW1lYnVmZmVyV2lkdGgiLCItIixpLCIpIikscj1lLmRlZignImhlaWdodCIgaW4gJyxyLCI/IixyLCIuaGVpZ2h0fDA6IiwiKCIsbiwiLiIsImZyYW1lYnVmZmVySGVpZ2h0IiwiLSIsYSwiKSIpXX0pKSxlJiYodC50aGlzRGVwPXQudGhpc0RlcHx8ZS50aGlzRGVwLHQuY29udGV4dERlcD10LmNvbnRleHREZXB8fGUuY29udGV4dERlcCx0LnByb3BEZXA9dC5wcm9wRGVwfHxlLnByb3BEZXApLHR9cmV0dXJuIGU/bmV3IEYoZS50aGlzRGVwLGUuY29udGV4dERlcCxlLnByb3BEZXAsKGZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5zaGFyZWQuY29udGV4dDtyZXR1cm5bMCwwLGUuZGVmKHIsIi4iLCJmcmFtZWJ1ZmZlcldpZHRoIiksZS5kZWYociwiLiIsImZyYW1lYnVmZmVySGVpZ2h0IildfSkpOm51bGx9dmFyIGk9dC5zdGF0aWMsYT10LmR5bmFtaWM7aWYodD1uKCJ2aWV3cG9ydCIpKXt2YXIgbz10O3Q9bmV3IEYodC50aGlzRGVwLHQuY29udGV4dERlcCx0LnByb3BEZXAsKGZ1bmN0aW9uKHQsZSl7dmFyIHI9by5hcHBlbmQodCxlKSxuPXQuc2hhcmVkLmNvbnRleHQ7cmV0dXJuIGUuc2V0KG4sIi52aWV3cG9ydFdpZHRoIixyWzJdKSxlLnNldChuLCIudmlld3BvcnRIZWlnaHQiLHJbM10pLHJ9KSl9cmV0dXJue3ZpZXdwb3J0OnQsc2Npc3Nvcl9ib3g6bigic2Npc3Nvci5ib3giKX19KHQsZD13KHQpKSxmPWsodCksaD1mdW5jdGlvbih0LGUpe3ZhciByPXQuc3RhdGljLG49dC5keW5hbWljLGk9e307cmV0dXJuIG90LmZvckVhY2goKGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSxhKXtpZih0IGluIHIpe3ZhciBzPWUoclt0XSk7aVtvXT1OKChmdW5jdGlvbigpe3JldHVybiBzfSkpfWVsc2UgaWYodCBpbiBuKXt2YXIgbD1uW3RdO2lbb109aihsLChmdW5jdGlvbih0LGUpe3JldHVybiBhKHQsZSx0Lmludm9rZShlLGwpKX0pKX19dmFyIG89eSh0KTtzd2l0Y2godCl7Y2FzZSJjdWxsLmVuYWJsZSI6Y2FzZSJibGVuZC5lbmFibGUiOmNhc2UiZGl0aGVyIjpjYXNlInN0ZW5jaWwuZW5hYmxlIjpjYXNlImRlcHRoLmVuYWJsZSI6Y2FzZSJzY2lzc29yLmVuYWJsZSI6Y2FzZSJwb2x5Z29uT2Zmc2V0LmVuYWJsZSI6Y2FzZSJzYW1wbGUuYWxwaGEiOmNhc2Uic2FtcGxlLmVuYWJsZSI6Y2FzZSJkZXB0aC5tYXNrIjpyZXR1cm4gZSgoZnVuY3Rpb24odCl7cmV0dXJuIHR9KSwoZnVuY3Rpb24odCxlLHIpe3JldHVybiByfSkpO2Nhc2UiZGVwdGguZnVuYyI6cmV0dXJuIGUoKGZ1bmN0aW9uKHQpe3JldHVybiBFdFt0XX0pLChmdW5jdGlvbih0LGUscil7cmV0dXJuIGUuZGVmKHQuY29uc3RhbnRzLmNvbXBhcmVGdW5jcywiWyIsciwiXSIpfSkpO2Nhc2UiZGVwdGgucmFuZ2UiOnJldHVybiBlKChmdW5jdGlvbih0KXtyZXR1cm4gdH0pLChmdW5jdGlvbih0LGUscil7cmV0dXJuW2UuZGVmKCIrIixyLCJbMF0iKSxlPWUuZGVmKCIrIixyLCJbMV0iKV19KSk7Y2FzZSJibGVuZC5mdW5jIjpyZXR1cm4gZSgoZnVuY3Rpb24odCl7cmV0dXJuW1N0WyJzcmNSR0IiaW4gdD90LnNyY1JHQjp0LnNyY10sU3RbImRzdFJHQiJpbiB0P3QuZHN0UkdCOnQuZHN0XSxTdFsic3JjQWxwaGEiaW4gdD90LnNyY0FscGhhOnQuc3JjXSxTdFsiZHN0QWxwaGEiaW4gdD90LmRzdEFscGhhOnQuZHN0XV19KSwoZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4odCxuKXtyZXR1cm4gZS5kZWYoJyInLHQsbiwnIiBpbiAnLHIsIj8iLHIsIi4iLHQsbiwiOiIsciwiLiIsdCl9dD10LmNvbnN0YW50cy5ibGVuZEZ1bmNzO3ZhciBpPW4oInNyYyIsIlJHQiIpLGE9bigiZHN0IiwiUkdCIiksbz0oaT1lLmRlZih0LCJbIixpLCJdIiksZS5kZWYodCwiWyIsbigic3JjIiwiQWxwaGEiKSwiXSIpKTtyZXR1cm5baSxhPWUuZGVmKHQsIlsiLGEsIl0iKSxvLHQ9ZS5kZWYodCwiWyIsbigiZHN0IiwiQWxwaGEiKSwiXSIpXX0pKTtjYXNlImJsZW5kLmVxdWF0aW9uIjpyZXR1cm4gZSgoZnVuY3Rpb24odCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P1tRW3RdLFFbdF1dOiJvYmplY3QiPT10eXBlb2YgdD9bUVt0LnJnYl0sUVt0LmFscGhhXV06dm9pZCAwfSksKGZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10LmNvbnN0YW50cy5ibGVuZEVxdWF0aW9ucyxpPWUuZGVmKCksYT1lLmRlZigpO3JldHVybih0PXQuY29uZCgidHlwZW9mICIsciwnPT09InN0cmluZyInKSkudGhlbihpLCI9IixhLCI9IixuLCJbIixyLCJdOyIpLHQuZWxzZShpLCI9IixuLCJbIixyLCIucmdiXTsiLGEsIj0iLG4sIlsiLHIsIi5hbHBoYV07IiksZSh0KSxbaSxhXX0pKTtjYXNlImJsZW5kLmNvbG9yIjpyZXR1cm4gZSgoZnVuY3Rpb24odCl7cmV0dXJuIGEoNCwoZnVuY3Rpb24oZSl7cmV0dXJuK3RbZV19KSl9KSwoZnVuY3Rpb24odCxlLHIpe3JldHVybiBhKDQsKGZ1bmN0aW9uKHQpe3JldHVybiBlLmRlZigiKyIsciwiWyIsdCwiXSIpfSkpfSkpO2Nhc2Uic3RlbmNpbC5tYXNrIjpyZXR1cm4gZSgoZnVuY3Rpb24odCl7cmV0dXJuIDB8dH0pLChmdW5jdGlvbih0LGUscil7cmV0dXJuIGUuZGVmKHIsInwwIil9KSk7Y2FzZSJzdGVuY2lsLmZ1bmMiOnJldHVybiBlKChmdW5jdGlvbih0KXtyZXR1cm5bRXRbdC5jbXB8fCJrZWVwIl0sdC5yZWZ8fDAsIm1hc2siaW4gdD90Lm1hc2s6LTFdfSksKGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm5bdD1lLmRlZignImNtcCIgaW4gJyxyLCI/Iix0LmNvbnN0YW50cy5jb21wYXJlRnVuY3MsIlsiLHIsIi5jbXBdIiwiOiIsNzY4MCksZS5kZWYociwiLnJlZnwwIiksZT1lLmRlZignIm1hc2siIGluICcsciwiPyIsciwiLm1hc2t8MDotMSIpXX0pKTtjYXNlInN0ZW5jaWwub3BGcm9udCI6Y2FzZSJzdGVuY2lsLm9wQmFjayI6cmV0dXJuIGUoKGZ1bmN0aW9uKGUpe3JldHVyblsic3RlbmNpbC5vcEJhY2siPT09dD8xMDI5OjEwMjgsTHRbZS5mYWlsfHwia2VlcCJdLEx0W2UuemZhaWx8fCJrZWVwIl0sTHRbZS56cGFzc3x8ImtlZXAiXV19KSwoZnVuY3Rpb24oZSxyLG4pe2Z1bmN0aW9uIGkodCl7cmV0dXJuIHIuZGVmKCciJyx0LCciIGluICcsbiwiPyIsYSwiWyIsbiwiLiIsdCwiXToiLDc2ODApfXZhciBhPWUuY29uc3RhbnRzLnN0ZW5jaWxPcHM7cmV0dXJuWyJzdGVuY2lsLm9wQmFjayI9PT10PzEwMjk6MTAyOCxpKCJmYWlsIiksaSgiemZhaWwiKSxpKCJ6cGFzcyIpXX0pKTtjYXNlInBvbHlnb25PZmZzZXQub2Zmc2V0IjpyZXR1cm4gZSgoZnVuY3Rpb24odCl7cmV0dXJuWzB8dC5mYWN0b3IsMHx0LnVuaXRzXX0pLChmdW5jdGlvbih0LGUscil7cmV0dXJuW2UuZGVmKHIsIi5mYWN0b3J8MCIpLGU9ZS5kZWYociwiLnVuaXRzfDAiKV19KSk7Y2FzZSJjdWxsLmZhY2UiOnJldHVybiBlKChmdW5jdGlvbih0KXt2YXIgZT0wO3JldHVybiJmcm9udCI9PT10P2U9MTAyODoiYmFjayI9PT10JiYoZT0xMDI5KSxlfSksKGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZS5kZWYociwnPT09ImZyb250Ij8nLDEwMjgsIjoiLDEwMjkpfSkpO2Nhc2UibGluZVdpZHRoIjpyZXR1cm4gZSgoZnVuY3Rpb24odCl7cmV0dXJuIHR9KSwoZnVuY3Rpb24odCxlLHIpe3JldHVybiByfSkpO2Nhc2UiZnJvbnRGYWNlIjpyZXR1cm4gZSgoZnVuY3Rpb24odCl7cmV0dXJuIEN0W3RdfSksKGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZS5kZWYocisnPT09ImN3Ij8yMzA0OjIzMDUnKX0pKTtjYXNlImNvbG9yTWFzayI6cmV0dXJuIGUoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuISF0fSkpfSksKGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gYSg0LChmdW5jdGlvbih0KXtyZXR1cm4iISEiK3IrIlsiK3QrIl0ifSkpfSkpO2Nhc2Uic2FtcGxlLmNvdmVyYWdlIjpyZXR1cm4gZSgoZnVuY3Rpb24odCl7cmV0dXJuWyJ2YWx1ZSJpbiB0P3QudmFsdWU6MSwhIXQuaW52ZXJ0XX0pLChmdW5jdGlvbih0LGUscil7cmV0dXJuW2UuZGVmKCcidmFsdWUiIGluICcsciwiPysiLHIsIi52YWx1ZToxIiksZT1lLmRlZigiISEiLHIsIi5pbnZlcnQiKV19KSl9fSkpLGl9KHQpLHA9VCh0LDAsbCk7cygidmlld3BvcnQiKSxzKHkoInNjaXNzb3IuYm94IikpO3ZhciBkLG09MDxPYmplY3Qua2V5cyhoKS5sZW5ndGg7aWYoKGQ9e2ZyYW1lYnVmZmVyOmQsZHJhdzpmLHNoYWRlcjpwLHN0YXRlOmgsZGlydHk6bSxzY29wZVZBTzpudWxsLGRyYXdWQU86bnVsbCx1c2VWQU86ITEsYXR0cmlidXRlczp7fX0pLnByb2ZpbGU9ZnVuY3Rpb24odCl7dmFyIGUscj10LnN0YXRpYztpZih0PXQuZHluYW1pYywicHJvZmlsZSJpbiByKXt2YXIgbj0hIXIucHJvZmlsZTsoZT1OKChmdW5jdGlvbih0LGUpe3JldHVybiBufSkpKS5lbmFibGU9bn1lbHNlIGlmKCJwcm9maWxlImluIHQpe3ZhciBpPXQucHJvZmlsZTtlPWooaSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5pbnZva2UoZSxpKX0pKX1yZXR1cm4gZX0odCksZC51bmlmb3Jtcz1mdW5jdGlvbih0LGUpe3ZhciByPXQuc3RhdGljLG49dC5keW5hbWljLGk9e307cmV0dXJuIE9iamVjdC5rZXlzKHIpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlLG49clt0XTtpZigibnVtYmVyIj09dHlwZW9mIG58fCJib29sZWFuIj09dHlwZW9mIG4pZT1OKChmdW5jdGlvbigpe3JldHVybiBufSkpO2Vsc2UgaWYoImZ1bmN0aW9uIj09dHlwZW9mIG4pe3ZhciBvPW4uX3JlZ2xUeXBlOyJ0ZXh0dXJlMmQiPT09b3x8InRleHR1cmVDdWJlIj09PW8/ZT1OKChmdW5jdGlvbih0KXtyZXR1cm4gdC5saW5rKG4pfSkpOiJmcmFtZWJ1ZmZlciIhPT1vJiYiZnJhbWVidWZmZXJDdWJlIiE9PW98fChlPU4oKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmxpbmsobi5jb2xvclswXSl9KSkpfWVsc2UgZyhuKSYmKGU9TigoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2xvYmFsLmRlZigiWyIsYShuLmxlbmd0aCwoZnVuY3Rpb24odCl7cmV0dXJuIG5bdF19KSksIl0iKX0pKSk7ZS52YWx1ZT1uLGlbdF09ZX0pKSxPYmplY3Qua2V5cyhuKS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT1uW3RdO2lbdF09aihlLChmdW5jdGlvbih0LHIpe3JldHVybiB0Lmludm9rZShyLGUpfSkpfSkpLGl9KG4pLGQuZHJhd1ZBTz1kLnNjb3BlVkFPPWYudmFvLCFkLmRyYXdWQU8mJnAucHJvZ3JhbSYmIWwmJnIuYW5nbGVfaW5zdGFuY2VkX2FycmF5cyYmZi5zdGF0aWMuZWxlbWVudHMpe3ZhciB2PSEwO2lmKHQ9cC5wcm9ncmFtLmF0dHJpYnV0ZXMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdD1lLnN0YXRpY1t0XSx2PXYmJiEhdCx0fSkpLHYmJjA8dC5sZW5ndGgpe3ZhciB4PXUuZ2V0VkFPKHUuY3JlYXRlVkFPKHthdHRyaWJ1dGVzOnQsZWxlbWVudHM6Zi5zdGF0aWMuZWxlbWVudHN9KSk7ZC5kcmF3VkFPPW5ldyBGKG51bGwsbnVsbCxudWxsLChmdW5jdGlvbih0LGUpe3JldHVybiB0LmxpbmsoeCl9KSksZC51c2VWQU89ITB9fXJldHVybiBsP2QudXNlVkFPPSEwOmQuYXR0cmlidXRlcz1BKGUpLGQuY29udGV4dD1mdW5jdGlvbih0KXt2YXIgZT10LnN0YXRpYyxyPXQuZHluYW1pYyxuPXt9O3JldHVybiBPYmplY3Qua2V5cyhlKS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgcj1lW3RdO25bdF09TigoZnVuY3Rpb24odCxlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHJ8fCJib29sZWFuIj09dHlwZW9mIHI/IiIrcjp0Lmxpbmsocil9KSl9KSksT2JqZWN0LmtleXMocikuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9clt0XTtuW3RdPWooZSwoZnVuY3Rpb24odCxyKXtyZXR1cm4gdC5pbnZva2UocixlKX0pKX0pKSxufShpKSxkfWZ1bmN0aW9uIFModCxlLHIpe3ZhciBuPXQuc2hhcmVkLmNvbnRleHQsaT10LnNjb3BlKCk7T2JqZWN0LmtleXMocikuZm9yRWFjaCgoZnVuY3Rpb24oYSl7ZS5zYXZlKG4sIi4iK2EpO3ZhciBvPXJbYV0uYXBwZW5kKHQsZSk7QXJyYXkuaXNBcnJheShvKT9pKG4sIi4iLGEsIj1bIixvLmpvaW4oKSwiXTsiKTppKG4sIi4iLGEsIj0iLG8sIjsiKX0pKSxlKGkpfWZ1bmN0aW9uIEUodCxlLHIsbil7dmFyIGksYT0ocz10LnNoYXJlZCkuZ2wsbz1zLmZyYW1lYnVmZmVyO2V0JiYoaT1lLmRlZihzLmV4dGVuc2lvbnMsIi53ZWJnbF9kcmF3X2J1ZmZlcnMiKSk7dmFyIHM9KGw9dC5jb25zdGFudHMpLmRyYXdCdWZmZXIsbD1sLmJhY2tCdWZmZXI7dD1yP3IuYXBwZW5kKHQsZSk6ZS5kZWYobywiLm5leHQiKSxufHxlKCJpZigiLHQsIiE9PSIsbywiLmN1cil7IiksZSgiaWYoIix0LCIpeyIsYSwiLmJpbmRGcmFtZWJ1ZmZlcigiLDM2MTYwLCIsIix0LCIuZnJhbWVidWZmZXIpOyIpLGV0JiZlKGksIi5kcmF3QnVmZmVyc1dFQkdMKCIscywiWyIsdCwiLmNvbG9yQXR0YWNobWVudHMubGVuZ3RoXSk7IiksZSgifWVsc2V7IixhLCIuYmluZEZyYW1lYnVmZmVyKCIsMzYxNjAsIixudWxsKTsiKSxldCYmZShpLCIuZHJhd0J1ZmZlcnNXRUJHTCgiLGwsIik7IiksZSgifSIsbywiLmN1cj0iLHQsIjsiKSxufHxlKCJ9Iil9ZnVuY3Rpb24gTCh0LGUscil7dmFyIG49dC5zaGFyZWQsaT1uLmdsLG89dC5jdXJyZW50LHM9dC5uZXh0LGw9bi5jdXJyZW50LGM9bi5uZXh0LHU9dC5jb25kKGwsIi5kaXJ0eSIpO290LmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciBuLGY7aWYoISgoZT15KGUpKWluIHIuc3RhdGUpKWlmKGUgaW4gcyl7bj1zW2VdLGY9b1tlXTt2YXIgaD1hKG50W2VdLmxlbmd0aCwoZnVuY3Rpb24odCl7cmV0dXJuIHUuZGVmKG4sIlsiLHQsIl0iKX0pKTt1KHQuY29uZChoLm1hcCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCsiIT09IitmKyJbIitlKyJdIn0pKS5qb2luKCJ8fCIpKS50aGVuKGksIi4iLGx0W2VdLCIoIixoLCIpOyIsaC5tYXAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGYrIlsiK2UrIl09Iit0fSkpLmpvaW4oIjsiKSwiOyIpKX1lbHNlIG49dS5kZWYoYywiLiIsZSksaD10LmNvbmQobiwiIT09IixsLCIuIixlKSx1KGgpLGUgaW4gc3Q/aCh0LmNvbmQobikudGhlbihpLCIuZW5hYmxlKCIsc3RbZV0sIik7IikuZWxzZShpLCIuZGlzYWJsZSgiLHN0W2VdLCIpOyIpLGwsIi4iLGUsIj0iLG4sIjsiKTpoKGksIi4iLGx0W2VdLCIoIixuLCIpOyIsbCwiLiIsZSwiPSIsbiwiOyIpfSkpLDA9PT1PYmplY3Qua2V5cyhyLnN0YXRlKS5sZW5ndGgmJnUobCwiLmRpcnR5PWZhbHNlOyIpLGUodSl9ZnVuY3Rpb24gQyh0LGUscixuKXt2YXIgaSxhPXQuc2hhcmVkLG89dC5jdXJyZW50LHM9YS5jdXJyZW50LGw9YS5nbDtSKE9iamVjdC5rZXlzKHIpKS5mb3JFYWNoKChmdW5jdGlvbihhKXt2YXIgYz1yW2FdO2lmKCFufHxuKGMpKXt2YXIgdT1jLmFwcGVuZCh0LGUpO2lmKHN0W2FdKXt2YXIgZj1zdFthXTtCKGMpPyhpPXQubGluayh1LHtzdGFibGU6ITB9KSxlKHQuY29uZChpKS50aGVuKGwsIi5lbmFibGUoIixmLCIpOyIpLmVsc2UobCwiLmRpc2FibGUoIixmLCIpOyIpKSxlKHMsIi4iLGEsIj0iLGksIjsiKSk6KGUodC5jb25kKHUpLnRoZW4obCwiLmVuYWJsZSgiLGYsIik7IikuZWxzZShsLCIuZGlzYWJsZSgiLGYsIik7IikpLGUocywiLiIsYSwiPSIsdSwiOyIpKX1lbHNlIGlmKGcodSkpe3ZhciBoPW9bYV07ZShsLCIuIixsdFthXSwiKCIsdSwiKTsiLHUubWFwKChmdW5jdGlvbih0LGUpe3JldHVybiBoKyJbIitlKyJdPSIrdH0pKS5qb2luKCI7IiksIjsiKX1lbHNlIEIoYyk/KGk9dC5saW5rKHUse3N0YWJsZTohMH0pLGUobCwiLiIsbHRbYV0sIigiLGksIik7IixzLCIuIixhLCI9IixpLCI7IikpOmUobCwiLiIsbHRbYV0sIigiLHUsIik7IixzLCIuIixhLCI9Iix1LCI7Iil9fSkpfWZ1bmN0aW9uIFAodCxlKXskJiYodC5pbnN0YW5jaW5nPWUuZGVmKHQuc2hhcmVkLmV4dGVuc2lvbnMsIi5hbmdsZV9pbnN0YW5jZWRfYXJyYXlzIikpfWZ1bmN0aW9uIEkodCxlLHIsbixpKXtmdW5jdGlvbiBhKCl7cmV0dXJuInVuZGVmaW5lZCI9PXR5cGVvZiBwZXJmb3JtYW5jZT8iRGF0ZS5ub3coKSI6InBlcmZvcm1hbmNlLm5vdygpIn1mdW5jdGlvbiBvKHQpe3QoYz1lLmRlZigpLCI9IixhKCksIjsiKSwic3RyaW5nIj09dHlwZW9mIGk/dChoLCIuY291bnQrPSIsaSwiOyIpOnQoaCwiLmNvdW50Kys7IiksZCYmKG4/dCh1PWUuZGVmKCksIj0iLG0sIi5nZXROdW1QZW5kaW5nUXVlcmllcygpOyIpOnQobSwiLmJlZ2luUXVlcnkoIixoLCIpOyIpKX1mdW5jdGlvbiBzKHQpe3QoaCwiLmNwdVRpbWUrPSIsYSgpLCItIixjLCI7IiksZCYmKG4/dChtLCIucHVzaFNjb3BlU3RhdHMoIix1LCIsIixtLCIuZ2V0TnVtUGVuZGluZ1F1ZXJpZXMoKSwiLGgsIik7Iik6dChtLCIuZW5kUXVlcnkoKTsiKSl9ZnVuY3Rpb24gbCh0KXt2YXIgcj1lLmRlZihwLCIucHJvZmlsZSIpO2UocCwiLnByb2ZpbGU9Iix0LCI7IiksZS5leGl0KHAsIi5wcm9maWxlPSIsciwiOyIpfXZhciBjLHUsZj10LnNoYXJlZCxoPXQuc3RhdHMscD1mLmN1cnJlbnQsbT1mLnRpbWVyO2lmKHI9ci5wcm9maWxlKXtpZihCKHIpKXJldHVybiB2b2lkKHIuZW5hYmxlPyhvKGUpLHMoZS5leGl0KSxsKCJ0cnVlIikpOmwoImZhbHNlIikpO2wocj1yLmFwcGVuZCh0LGUpKX1lbHNlIHI9ZS5kZWYocCwiLnByb2ZpbGUiKTtvKGY9dC5ibG9jaygpKSxlKCJpZigiLHIsIil7IixmLCJ9Iikscyh0PXQuYmxvY2soKSksZS5leGl0KCJpZigiLHIsIil7Iix0LCJ9Iil9ZnVuY3Rpb24gTyh0LGUscixuLGkpe2Z1bmN0aW9uIGEocixuLGkpe2Z1bmN0aW9uIGEoKXtlKCJpZighIix1LCIuYnVmZmVyKXsiLGwsIi5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSgiLGMsIik7fSIpO3ZhciByLGE9aS50eXBlO3I9aS5zaXplP2UuZGVmKGkuc2l6ZSwifHwiLG4pOm4sZSgiaWYoIix1LCIudHlwZSE9PSIsYSwifHwiLHUsIi5zaXplIT09IixyLCJ8fCIscC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB1KyIuIit0KyIhPT0iK2lbdF19KSkuam9pbigifHwiKSwiKXsiLGwsIi5iaW5kQnVmZmVyKCIsMzQ5NjIsIiwiLGYsIi5idWZmZXIpOyIsbCwiLnZlcnRleEF0dHJpYlBvaW50ZXIoIixbYyxyLGEsaS5ub3JtYWxpemVkLGkuc3RyaWRlLGkub2Zmc2V0XSwiKTsiLHUsIi50eXBlPSIsYSwiOyIsdSwiLnNpemU9IixyLCI7IixwLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHUrIi4iK3QrIj0iK2lbdF0rIjsifSkpLmpvaW4oIiIpLCJ9IiksJCYmKGE9aS5kaXZpc29yLGUoImlmKCIsdSwiLmRpdmlzb3IhPT0iLGEsIil7Iix0Lmluc3RhbmNpbmcsIi52ZXJ0ZXhBdHRyaWJEaXZpc29yQU5HTEUoIixbYyxhXSwiKTsiLHUsIi5kaXZpc29yPSIsYSwiO30iKSl9ZnVuY3Rpb24gcygpe2UoImlmKCIsdSwiLmJ1ZmZlcil7IixsLCIuZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KCIsYywiKTsiLHUsIi5idWZmZXI9bnVsbDsiLCJ9aWYoIixBdC5tYXAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHUrIi4iK3QrIiE9PSIraFtlXX0pKS5qb2luKCJ8fCIpLCIpeyIsbCwiLnZlcnRleEF0dHJpYjRmKCIsYywiLCIsaCwiKTsiLEF0Lm1hcCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdSsiLiIrdCsiPSIraFtlXSsiOyJ9KSkuam9pbigiIiksIn0iKX12YXIgbD1vLmdsLGM9ZS5kZWYociwiLmxvY2F0aW9uIiksdT1lLmRlZihvLmF0dHJpYnV0ZXMsIlsiLGMsIl0iKTtyPWkuc3RhdGU7dmFyIGY9aS5idWZmZXIsaD1baS54LGkueSxpLnosaS53XSxwPVsiYnVmZmVyIiwibm9ybWFsaXplZCIsIm9mZnNldCIsInN0cmlkZSJdOzE9PT1yP2EoKToyPT09cj9zKCk6KGUoImlmKCIsciwiPT09IiwxLCIpeyIpLGEoKSxlKCJ9ZWxzZXsiKSxzKCksZSgifSIpKX12YXIgbz10LnNoYXJlZDtuLmZvckVhY2goKGZ1bmN0aW9uKG4pe3ZhciBvLHM9bi5uYW1lLGw9ci5hdHRyaWJ1dGVzW3NdO2lmKGwpe2lmKCFpKGwpKXJldHVybjtvPWwuYXBwZW5kKHQsZSl9ZWxzZXtpZighaShQdCkpcmV0dXJuO3ZhciBjPXQuc2NvcGVBdHRyaWIocyk7bz17fSxPYmplY3Qua2V5cyhuZXcgSykuZm9yRWFjaCgoZnVuY3Rpb24odCl7b1t0XT1lLmRlZihjLCIuIix0KX0pKX1hKHQubGluayhuKSxmdW5jdGlvbih0KXtzd2l0Y2godCl7Y2FzZSAzNTY2NDpjYXNlIDM1NjY3OmNhc2UgMzU2NzE6cmV0dXJuIDI7Y2FzZSAzNTY2NTpjYXNlIDM1NjY4OmNhc2UgMzU2NzI6cmV0dXJuIDM7Y2FzZSAzNTY2NjpjYXNlIDM1NjY5OmNhc2UgMzU2NzM6cmV0dXJuIDQ7ZGVmYXVsdDpyZXR1cm4gMX19KG4uaW5mby50eXBlKSxvKX0pKX1mdW5jdGlvbiBVKHQscixuLGksbyxzKXtmb3IodmFyIGwsYz10LnNoYXJlZCx1PWMuZ2wsZj0wO2Y8aS5sZW5ndGg7KytmKXt2YXIgaCxwPSh2PWlbZl0pLm5hbWUsZD12LmluZm8udHlwZSxtPW4udW5pZm9ybXNbcF0sdj10LmxpbmsodikrIi5sb2NhdGlvbiI7aWYobSl7aWYoIW8obSkpY29udGludWU7aWYoQihtKSl7aWYocD1tLnZhbHVlLDM1Njc4PT09ZHx8MzU2ODA9PT1kKXIodSwiLnVuaWZvcm0xaSgiLHYsIiwiLChkPXQubGluayhwLl90ZXh0dXJlfHxwLmNvbG9yWzBdLl90ZXh0dXJlKSkrIi5iaW5kKCkpOyIpLHIuZXhpdChkLCIudW5iaW5kKCk7Iik7ZWxzZSBpZigzNTY3ND09PWR8fDM1Njc1PT09ZHx8MzU2NzY9PT1kKW09MiwzNTY3NT09PWQ/bT0zOjM1Njc2PT09ZCYmKG09NCkscih1LCIudW5pZm9ybU1hdHJpeCIsbSwiZnYoIix2LCIsZmFsc2UsIixwPXQuZ2xvYmFsLmRlZigibmV3IEZsb2F0MzJBcnJheShbIitBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChwKSsiXSkiKSwiKTsiKTtlbHNle3N3aXRjaChkKXtjYXNlIDUxMjY6bD0iMWYiO2JyZWFrO2Nhc2UgMzU2NjQ6bD0iMmYiO2JyZWFrO2Nhc2UgMzU2NjU6bD0iM2YiO2JyZWFrO2Nhc2UgMzU2NjY6bD0iNGYiO2JyZWFrO2Nhc2UgMzU2NzA6Y2FzZSA1MTI0Omw9IjFpIjticmVhaztjYXNlIDM1NjcxOmNhc2UgMzU2Njc6bD0iMmkiO2JyZWFrO2Nhc2UgMzU2NzI6Y2FzZSAzNTY2ODpsPSIzaSI7YnJlYWs7Y2FzZSAzNTY3MzpsPSI0aSI7YnJlYWs7Y2FzZSAzNTY2OTpsPSI0aSJ9cih1LCIudW5pZm9ybSIsbCwiKCIsdiwiLCIsZyhwKT9BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChwKTpwLCIpOyIpfWNvbnRpbnVlfWg9bS5hcHBlbmQodCxyKX1lbHNle2lmKCFvKFB0KSljb250aW51ZTtoPXIuZGVmKGMudW5pZm9ybXMsIlsiLGUuaWQocCksIl0iKX1zd2l0Y2goMzU2Nzg9PT1kP3IoImlmKCIsaCwiJiYiLGgsJy5fcmVnbFR5cGU9PT0iZnJhbWVidWZmZXIiKXsnLGgsIj0iLGgsIi5jb2xvclswXTsiLCJ9Iik6MzU2ODA9PT1kJiZyKCJpZigiLGgsIiYmIixoLCcuX3JlZ2xUeXBlPT09ImZyYW1lYnVmZmVyQ3ViZSIpeycsaCwiPSIsaCwiLmNvbG9yWzBdOyIsIn0iKSxwPTEsZCl7Y2FzZSAzNTY3ODpjYXNlIDM1NjgwOmQ9ci5kZWYoaCwiLl90ZXh0dXJlIikscih1LCIudW5pZm9ybTFpKCIsdiwiLCIsZCwiLmJpbmQoKSk7Iiksci5leGl0KGQsIi51bmJpbmQoKTsiKTtjb250aW51ZTtjYXNlIDUxMjQ6Y2FzZSAzNTY3MDpsPSIxaSI7YnJlYWs7Y2FzZSAzNTY2NzpjYXNlIDM1NjcxOmw9IjJpIixwPTI7YnJlYWs7Y2FzZSAzNTY2ODpjYXNlIDM1NjcyOmw9IjNpIixwPTM7YnJlYWs7Y2FzZSAzNTY2OTpjYXNlIDM1NjczOmw9IjRpIixwPTQ7YnJlYWs7Y2FzZSA1MTI2Omw9IjFmIjticmVhaztjYXNlIDM1NjY0Omw9IjJmIixwPTI7YnJlYWs7Y2FzZSAzNTY2NTpsPSIzZiIscD0zO2JyZWFrO2Nhc2UgMzU2NjY6bD0iNGYiLHA9NDticmVhaztjYXNlIDM1Njc0Omw9Ik1hdHJpeDJmdiI7YnJlYWs7Y2FzZSAzNTY3NTpsPSJNYXRyaXgzZnYiO2JyZWFrO2Nhc2UgMzU2NzY6bD0iTWF0cml4NGZ2In1pZigiTSI9PT1sLmNoYXJBdCgwKSl7cih1LCIudW5pZm9ybSIsbCwiKCIsdiwiLCIpO3Y9TWF0aC5wb3coZC0zNTY3NCsyLDIpO3ZhciB5PXQuZ2xvYmFsLmRlZigibmV3IEZsb2F0MzJBcnJheSgiLHYsIikiKTtBcnJheS5pc0FycmF5KGgpP3IoImZhbHNlLCgiLGEodiwoZnVuY3Rpb24odCl7cmV0dXJuIHkrIlsiK3QrIl09IitoW3RdfSkpLCIsIix5LCIpIik6cigiZmFsc2UsKEFycmF5LmlzQXJyYXkoIixoLCIpfHwiLGgsIiBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheSk/IixoLCI6KCIsYSh2LChmdW5jdGlvbih0KXtyZXR1cm4geSsiWyIrdCsiXT0iK2grIlsiK3QrIl0ifSkpLCIsIix5LCIpIikscigiKTsiKX1lbHNle2lmKDE8cCl7ZD1bXTt2YXIgeD1bXTtmb3IobT0wO208cDsrK20pQXJyYXkuaXNBcnJheShoKT94LnB1c2goaFttXSk6eC5wdXNoKHIuZGVmKGgrIlsiK20rIl0iKSkscyYmZC5wdXNoKHIuZGVmKCkpO3MmJnIoImlmKCEiLHQuYmF0Y2hJZCwifHwiLGQubWFwKChmdW5jdGlvbih0LGUpe3JldHVybiB0KyIhPT0iK3hbZV19KSkuam9pbigifHwiKSwiKXsiLGQubWFwKChmdW5jdGlvbih0LGUpe3JldHVybiB0KyI9Iit4W2VdKyI7In0pKS5qb2luKCIiKSkscih1LCIudW5pZm9ybSIsbCwiKCIsdiwiLCIseC5qb2luKCIsIiksIik7Iil9ZWxzZSBzJiYoZD1yLmRlZigpLHIoImlmKCEiLHQuYmF0Y2hJZCwifHwiLGQsIiE9PSIsaCwiKXsiLGQsIj0iLGgsIjsiKSkscih1LCIudW5pZm9ybSIsbCwiKCIsdiwiLCIsaCwiKTsiKTtzJiZyKCJ9Iil9fX1mdW5jdGlvbiBWKHQsZSxyLG4pe2Z1bmN0aW9uIGkoaSl7dmFyIGE9aFtpXTtyZXR1cm4gYT9hLmNvbnRleHREZXAmJm4uY29udGV4dER5bmFtaWN8fGEucHJvcERlcD9hLmFwcGVuZCh0LHIpOmEuYXBwZW5kKHQsZSk6ZS5kZWYoZiwiLiIsaSl9ZnVuY3Rpb24gYSgpe2Z1bmN0aW9uIHQoKXtyKGwsIi5kcmF3RWxlbWVudHNJbnN0YW5jZWRBTkdMRSgiLFtkLGcsdixtKyI8PCgoIit2KyItNTEyMSk+PjEpIixzXSwiKTsiKX1mdW5jdGlvbiBlKCl7cihsLCIuZHJhd0FycmF5c0luc3RhbmNlZEFOR0xFKCIsW2QsbSxnLHNdLCIpOyIpfXAmJiJudWxsIiE9PXA/eT90KCk6KHIoImlmKCIscCwiKXsiKSx0KCkscigifWVsc2V7IiksZSgpLHIoIn0iKSk6ZSgpfWZ1bmN0aW9uIG8oKXtmdW5jdGlvbiB0KCl7cih1KyIuZHJhd0VsZW1lbnRzKCIrW2QsZyx2LG0rIjw8KCgiK3YrIi01MTIxKT4+MSkiXSsiKTsiKX1mdW5jdGlvbiBlKCl7cih1KyIuZHJhd0FycmF5cygiK1tkLG0sZ10rIik7Iil9cCYmIm51bGwiIT09cD95P3QoKToocigiaWYoIixwLCIpeyIpLHQoKSxyKCJ9ZWxzZXsiKSxlKCkscigifSIpKTplKCl9dmFyIHMsbCxjPXQuc2hhcmVkLHU9Yy5nbCxmPWMuZHJhdyxoPW4uZHJhdyxwPWZ1bmN0aW9uKCl7dmFyIGk9aC5lbGVtZW50cyxhPWU7cmV0dXJuIGk/KChpLmNvbnRleHREZXAmJm4uY29udGV4dER5bmFtaWN8fGkucHJvcERlcCkmJihhPXIpLGk9aS5hcHBlbmQodCxhKSxoLmVsZW1lbnRzQWN0aXZlJiZhKCJpZigiK2krIikiK3UrIi5iaW5kQnVmZmVyKDM0OTYzLCIraSsiLmJ1ZmZlci5idWZmZXIpOyIpKTooaT1hLmRlZigpLGEoaSwiPSIsZiwiLiIsImVsZW1lbnRzIiwiOyIsImlmKCIsaSwiKXsiLHUsIi5iaW5kQnVmZmVyKCIsMzQ5NjMsIiwiLGksIi5idWZmZXIuYnVmZmVyKTt9IiwiZWxzZSBpZigiLGMudmFvLCIuY3VycmVudFZBTyl7IixpLCI9Iix0LnNoYXJlZC5lbGVtZW50cysiLmdldEVsZW1lbnRzKCIrYy52YW8sIi5jdXJyZW50VkFPLmVsZW1lbnRzKTsiLHJ0PyIiOiJpZigiK2krIikiK3UrIi5iaW5kQnVmZmVyKDM0OTYzLCIraSsiLmJ1ZmZlci5idWZmZXIpOyIsIn0iKSksaX0oKSxkPWkoInByaW1pdGl2ZSIpLG09aSgib2Zmc2V0IiksZz1mdW5jdGlvbigpe3ZhciBpPWguY291bnQsYT1lO3JldHVybiBpPygoaS5jb250ZXh0RGVwJiZuLmNvbnRleHREeW5hbWljfHxpLnByb3BEZXApJiYoYT1yKSxpPWkuYXBwZW5kKHQsYSkpOmk9YS5kZWYoZiwiLiIsImNvdW50IiksaX0oKTtpZigibnVtYmVyIj09dHlwZW9mIGcpe2lmKDA9PT1nKXJldHVybn1lbHNlIHIoImlmKCIsZywiKXsiKSxyLmV4aXQoIn0iKTskJiYocz1pKCJpbnN0YW5jZXMiKSxsPXQuaW5zdGFuY2luZyk7dmFyIHY9cCsiLnR5cGUiLHk9aC5lbGVtZW50cyYmQihoLmVsZW1lbnRzKSYmIWgudmFvQWN0aXZlOyQmJigibnVtYmVyIiE9dHlwZW9mIHN8fDA8PXMpPyJzdHJpbmciPT10eXBlb2Ygcz8ocigiaWYoIixzLCI+MCl7IiksYSgpLHIoIn1lbHNlIGlmKCIscywiPDApeyIpLG8oKSxyKCJ9IikpOmEoKTpvKCl9ZnVuY3Rpb24gcSh0LGUscixuLGkpe3JldHVybiBpPShlPV8oKSkucHJvYygiYm9keSIsaSksJCYmKGUuaW5zdGFuY2luZz1pLmRlZihlLnNoYXJlZC5leHRlbnNpb25zLCIuYW5nbGVfaW5zdGFuY2VkX2FycmF5cyIpKSx0KGUsaSxyLG4pLGUuY29tcGlsZSgpLmJvZHl9ZnVuY3Rpb24gWSh0LGUscixuKXtQKHQsZSksci51c2VWQU8/ci5kcmF3VkFPP2UodC5zaGFyZWQudmFvLCIuc2V0VkFPKCIsci5kcmF3VkFPLmFwcGVuZCh0LGUpLCIpOyIpOmUodC5zaGFyZWQudmFvLCIuc2V0VkFPKCIsdC5zaGFyZWQudmFvLCIudGFyZ2V0VkFPKTsiKTooZSh0LnNoYXJlZC52YW8sIi5zZXRWQU8obnVsbCk7IiksTyh0LGUscixuLmF0dHJpYnV0ZXMsKGZ1bmN0aW9uKCl7cmV0dXJuITB9KSkpLFUodCxlLHIsbi51bmlmb3JtcywoZnVuY3Rpb24oKXtyZXR1cm4hMH0pLCExKSxWKHQsZSxlLHIpfWZ1bmN0aW9uIFcodCxlLHIsbil7ZnVuY3Rpb24gaSgpe3JldHVybiEwfXQuYmF0Y2hJZD0iYTEiLFAodCxlKSxPKHQsZSxyLG4uYXR0cmlidXRlcyxpKSxVKHQsZSxyLG4udW5pZm9ybXMsaSwhMSksVih0LGUsZSxyKX1mdW5jdGlvbiBYKHQsZSxyLG4pe2Z1bmN0aW9uIGkodCl7cmV0dXJuIHQuY29udGV4dERlcCYmb3x8dC5wcm9wRGVwfWZ1bmN0aW9uIGEodCl7cmV0dXJuIWkodCl9UCh0LGUpO3ZhciBvPXIuY29udGV4dERlcCxzPWUuZGVmKCksbD1lLmRlZigpO3Quc2hhcmVkLnByb3BzPWwsdC5iYXRjaElkPXM7dmFyIGM9dC5zY29wZSgpLHU9dC5zY29wZSgpO2UoYy5lbnRyeSwiZm9yKCIscywiPTA7IixzLCI8IiwiYTEiLCI7KysiLHMsIil7IixsLCI9IiwiYTAiLCJbIixzLCJdOyIsdSwifSIsYy5leGl0KSxyLm5lZWRzQ29udGV4dCYmUyh0LHUsci5jb250ZXh0KSxyLm5lZWRzRnJhbWVidWZmZXImJkUodCx1LHIuZnJhbWVidWZmZXIpLEModCx1LHIuc3RhdGUsaSksci5wcm9maWxlJiZpKHIucHJvZmlsZSkmJkkodCx1LHIsITEsITApLG4/KHIudXNlVkFPP3IuZHJhd1ZBTz9pKHIuZHJhd1ZBTyk/dSh0LnNoYXJlZC52YW8sIi5zZXRWQU8oIixyLmRyYXdWQU8uYXBwZW5kKHQsdSksIik7Iik6Yyh0LnNoYXJlZC52YW8sIi5zZXRWQU8oIixyLmRyYXdWQU8uYXBwZW5kKHQsYyksIik7Iik6Yyh0LnNoYXJlZC52YW8sIi5zZXRWQU8oIix0LnNoYXJlZC52YW8sIi50YXJnZXRWQU8pOyIpOihjKHQuc2hhcmVkLnZhbywiLnNldFZBTyhudWxsKTsiKSxPKHQsYyxyLG4uYXR0cmlidXRlcyxhKSxPKHQsdSxyLG4uYXR0cmlidXRlcyxpKSksVSh0LGMscixuLnVuaWZvcm1zLGEsITEpLFUodCx1LHIsbi51bmlmb3JtcyxpLCEwKSxWKHQsYyx1LHIpKTooZT10Lmdsb2JhbC5kZWYoInt9Iiksbj1yLnNoYWRlci5wcm9nVmFyLmFwcGVuZCh0LHUpLGw9dS5kZWYobiwiLmlkIiksYz11LmRlZihlLCJbIixsLCJdIiksdSh0LnNoYXJlZC5nbCwiLnVzZVByb2dyYW0oIixuLCIucHJvZ3JhbSk7IiwiaWYoISIsYywiKXsiLGMsIj0iLGUsIlsiLGwsIl09Iix0LmxpbmsoKGZ1bmN0aW9uKGUpe3JldHVybiBxKFcsdCxyLGUsMil9KSksIigiLG4sIik7fSIsYywiLmNhbGwodGhpcyxhMFsiLHMsIl0sIixzLCIpOyIpKX1mdW5jdGlvbiBaKHQscil7ZnVuY3Rpb24gbihlKXt2YXIgbj1yLnNoYWRlcltlXTtuJiYobj1uLmFwcGVuZCh0LGkpLGlzTmFOKG4pP2kuc2V0KGEuc2hhZGVyLCIuIitlLG4pOmkuc2V0KGEuc2hhZGVyLCIuIitlLHQubGluayhuLHtzdGFibGU6ITB9KSkpfXZhciBpPXQucHJvYygic2NvcGUiLDMpO3QuYmF0Y2hJZD0iYTIiO3ZhciBhPXQuc2hhcmVkLG89YS5jdXJyZW50O2lmKFModCxpLHIuY29udGV4dCksci5mcmFtZWJ1ZmZlciYmci5mcmFtZWJ1ZmZlci5hcHBlbmQodCxpKSxSKE9iamVjdC5rZXlzKHIuc3RhdGUpKS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgbj1yLnN0YXRlW2VdLG89bi5hcHBlbmQodCxpKTtnKG8pP28uZm9yRWFjaCgoZnVuY3Rpb24ocixuKXtpc05hTihyKT9pLnNldCh0Lm5leHRbZV0sIlsiK24rIl0iLHIpOmkuc2V0KHQubmV4dFtlXSwiWyIrbisiXSIsdC5saW5rKHIse3N0YWJsZTohMH0pKX0pKTpCKG4pP2kuc2V0KGEubmV4dCwiLiIrZSx0Lmxpbmsobyx7c3RhYmxlOiEwfSkpOmkuc2V0KGEubmV4dCwiLiIrZSxvKX0pKSxJKHQsaSxyLCEwLCEwKSxbImVsZW1lbnRzIiwib2Zmc2V0IiwiY291bnQiLCJpbnN0YW5jZXMiLCJwcmltaXRpdmUiXS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgbj1yLmRyYXdbZV07biYmKG49bi5hcHBlbmQodCxpKSxpc05hTihuKT9pLnNldChhLmRyYXcsIi4iK2Usbik6aS5zZXQoYS5kcmF3LCIuIitlLHQubGluayhuKSx7c3RhYmxlOiEwfSkpfSkpLE9iamVjdC5rZXlzKHIudW5pZm9ybXMpLmZvckVhY2goKGZ1bmN0aW9uKG4pe3ZhciBvPXIudW5pZm9ybXNbbl0uYXBwZW5kKHQsaSk7QXJyYXkuaXNBcnJheShvKSYmKG89IlsiK28ubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gaXNOYU4oZSk/ZTp0LmxpbmsoZSx7c3RhYmxlOiEwfSl9KSkrIl0iKSxpLnNldChhLnVuaWZvcm1zLCJbIit0LmxpbmsoZS5pZChuKSx7c3RhYmxlOiEwfSkrIl0iLG8pfSkpLE9iamVjdC5rZXlzKHIuYXR0cmlidXRlcykuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIG49ci5hdHRyaWJ1dGVzW2VdLmFwcGVuZCh0LGkpLGE9dC5zY29wZUF0dHJpYihlKTtPYmplY3Qua2V5cyhuZXcgSykuZm9yRWFjaCgoZnVuY3Rpb24odCl7aS5zZXQoYSwiLiIrdCxuW3RdKX0pKX0pKSxyLnNjb3BlVkFPKXt2YXIgcz1yLnNjb3BlVkFPLmFwcGVuZCh0LGkpO2lzTmFOKHMpP2kuc2V0KGEudmFvLCIudGFyZ2V0VkFPIixzKTppLnNldChhLnZhbywiLnRhcmdldFZBTyIsdC5saW5rKHMse3N0YWJsZTohMH0pKX1uKCJ2ZXJ0IiksbigiZnJhZyIpLDA8T2JqZWN0LmtleXMoci5zdGF0ZSkubGVuZ3RoJiYoaShvLCIuZGlydHk9dHJ1ZTsiKSxpLmV4aXQobywiLmRpcnR5PXRydWU7IikpLGkoImExKCIsdC5zaGFyZWQuY29udGV4dCwiLGEwLCIsdC5iYXRjaElkLCIpOyIpfWZ1bmN0aW9uIEoodCxlLHIpe3ZhciBuPWUuc3RhdGljW3JdO2lmKG4mJmZ1bmN0aW9uKHQpe2lmKCJvYmplY3QiPT10eXBlb2YgdCYmIWcodCkpe2Zvcih2YXIgZT1PYmplY3Qua2V5cyh0KSxyPTA7cjxlLmxlbmd0aDsrK3IpaWYoRy5pc0R5bmFtaWModFtlW3JdXSkpcmV0dXJuITA7cmV0dXJuITF9fShuKSl7dmFyIGk9dC5nbG9iYWwsYT1PYmplY3Qua2V5cyhuKSxvPSExLHM9ITEsbD0hMSxjPXQuZ2xvYmFsLmRlZigie30iKTthLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciByPW5bZV07aWYoRy5pc0R5bmFtaWMocikpImZ1bmN0aW9uIj09dHlwZW9mIHImJihyPW5bZV09Ry51bmJveChyKSksZT1qKHIsbnVsbCksbz1vfHxlLnRoaXNEZXAsbD1sfHxlLnByb3BEZXAscz1zfHxlLmNvbnRleHREZXA7ZWxzZXtzd2l0Y2goaShjLCIuIixlLCI9IiksdHlwZW9mIHIpe2Nhc2UibnVtYmVyIjppKHIpO2JyZWFrO2Nhc2Uic3RyaW5nIjppKCciJyxyLCciJyk7YnJlYWs7Y2FzZSJvYmplY3QiOkFycmF5LmlzQXJyYXkocikmJmkoIlsiLHIuam9pbigpLCJdIik7YnJlYWs7ZGVmYXVsdDppKHQubGluayhyKSl9aSgiOyIpfX0pKSxlLmR5bmFtaWNbcl09bmV3IEcuRHluYW1pY1ZhcmlhYmxlKDQse3RoaXNEZXA6byxjb250ZXh0RGVwOnMscHJvcERlcDpsLHJlZjpjLGFwcGVuZDpmdW5jdGlvbih0LGUpe2EuZm9yRWFjaCgoZnVuY3Rpb24ocil7dmFyIGk9bltyXTtHLmlzRHluYW1pYyhpKSYmKGk9dC5pbnZva2UoZSxpKSxlKGMsIi4iLHIsIj0iLGksIjsiKSl9KSl9fSksZGVsZXRlIGUuc3RhdGljW3JdfX12YXIgSz11LlJlY29yZCxRPXthZGQ6MzI3NzQsc3VidHJhY3Q6MzI3NzgsInJldmVyc2Ugc3VidHJhY3QiOjMyNzc5fTtyLmV4dF9ibGVuZF9taW5tYXgmJihRLm1pbj0zMjc3NSxRLm1heD0zMjc3Nik7dmFyICQ9ci5hbmdsZV9pbnN0YW5jZWRfYXJyYXlzLGV0PXIud2ViZ2xfZHJhd19idWZmZXJzLHJ0PXIub2VzX3ZlcnRleF9hcnJheV9vYmplY3QsbnQ9e2RpcnR5OiEwLHByb2ZpbGU6di5wcm9maWxlfSxpdD17fSxvdD1bXSxzdD17fSxsdD17fTt4KCJkaXRoZXIiLDMwMjQpLHgoImJsZW5kLmVuYWJsZSIsMzA0MiksYigiYmxlbmQuY29sb3IiLCJibGVuZENvbG9yIixbMCwwLDAsMF0pLGIoImJsZW5kLmVxdWF0aW9uIiwiYmxlbmRFcXVhdGlvblNlcGFyYXRlIixbMzI3NzQsMzI3NzRdKSxiKCJibGVuZC5mdW5jIiwiYmxlbmRGdW5jU2VwYXJhdGUiLFsxLDAsMSwwXSkseCgiZGVwdGguZW5hYmxlIiwyOTI5LCEwKSxiKCJkZXB0aC5mdW5jIiwiZGVwdGhGdW5jIiw1MTMpLGIoImRlcHRoLnJhbmdlIiwiZGVwdGhSYW5nZSIsWzAsMV0pLGIoImRlcHRoLm1hc2siLCJkZXB0aE1hc2siLCEwKSxiKCJjb2xvck1hc2siLCJjb2xvck1hc2siLFshMCwhMCwhMCwhMF0pLHgoImN1bGwuZW5hYmxlIiwyODg0KSxiKCJjdWxsLmZhY2UiLCJjdWxsRmFjZSIsMTAyOSksYigiZnJvbnRGYWNlIiwiZnJvbnRGYWNlIiwyMzA1KSxiKCJsaW5lV2lkdGgiLCJsaW5lV2lkdGgiLDEpLHgoInBvbHlnb25PZmZzZXQuZW5hYmxlIiwzMjgyMyksYigicG9seWdvbk9mZnNldC5vZmZzZXQiLCJwb2x5Z29uT2Zmc2V0IixbMCwwXSkseCgic2FtcGxlLmFscGhhIiwzMjkyNikseCgic2FtcGxlLmVuYWJsZSIsMzI5MjgpLGIoInNhbXBsZS5jb3ZlcmFnZSIsInNhbXBsZUNvdmVyYWdlIixbMSwhMV0pLHgoInN0ZW5jaWwuZW5hYmxlIiwyOTYwKSxiKCJzdGVuY2lsLm1hc2siLCJzdGVuY2lsTWFzayIsLTEpLGIoInN0ZW5jaWwuZnVuYyIsInN0ZW5jaWxGdW5jIixbNTE5LDAsLTFdKSxiKCJzdGVuY2lsLm9wRnJvbnQiLCJzdGVuY2lsT3BTZXBhcmF0ZSIsWzEwMjgsNzY4MCw3NjgwLDc2ODBdKSxiKCJzdGVuY2lsLm9wQmFjayIsInN0ZW5jaWxPcFNlcGFyYXRlIixbMTAyOSw3NjgwLDc2ODAsNzY4MF0pLHgoInNjaXNzb3IuZW5hYmxlIiwzMDg5KSxiKCJzY2lzc29yLmJveCIsInNjaXNzb3IiLFswLDAsdC5kcmF3aW5nQnVmZmVyV2lkdGgsdC5kcmF3aW5nQnVmZmVySGVpZ2h0XSksYigidmlld3BvcnQiLCJ2aWV3cG9ydCIsWzAsMCx0LmRyYXdpbmdCdWZmZXJXaWR0aCx0LmRyYXdpbmdCdWZmZXJIZWlnaHRdKTt2YXIgY3Q9e2dsOnQsY29udGV4dDpwLHN0cmluZ3M6ZSxuZXh0Oml0LGN1cnJlbnQ6bnQsZHJhdzpoLGVsZW1lbnRzOm8sYnVmZmVyOmksc2hhZGVyOmYsYXR0cmlidXRlczp1LnN0YXRlLHZhbzp1LHVuaWZvcm1zOmMsZnJhbWVidWZmZXI6bCxleHRlbnNpb25zOnIsdGltZXI6ZCxpc0J1ZmZlckFyZ3M6RH0sdXQ9e3ByaW1UeXBlczphdCxjb21wYXJlRnVuY3M6RXQsYmxlbmRGdW5jczpTdCxibGVuZEVxdWF0aW9uczpRLHN0ZW5jaWxPcHM6THQsZ2xUeXBlczp0dCxvcmllbnRhdGlvblR5cGU6Q3R9O2V0JiYodXQuYmFja0J1ZmZlcj1bMTAyOV0sdXQuZHJhd0J1ZmZlcj1hKG4ubWF4RHJhd2J1ZmZlcnMsKGZ1bmN0aW9uKHQpe3JldHVybiAwPT09dD9bMF06YSh0LChmdW5jdGlvbih0KXtyZXR1cm4gMzYwNjQrdH0pKX0pKSk7dmFyIGZ0PTA7cmV0dXJue25leHQ6aXQsY3VycmVudDpudCxwcm9jczpmdW5jdGlvbigpe3ZhciB0PV8oKSxlPXQucHJvYygicG9sbCIpLGk9dC5wcm9jKCJyZWZyZXNoIiksbz10LmJsb2NrKCk7ZShvKSxpKG8pO3ZhciBzLGw9KGY9dC5zaGFyZWQpLmdsLGM9Zi5uZXh0LHU9Zi5jdXJyZW50O28odSwiLmRpcnR5PWZhbHNlOyIpLEUodCxlKSxFKHQsaSxudWxsLCEwKSwkJiYocz10LmxpbmsoJCkpLHIub2VzX3ZlcnRleF9hcnJheV9vYmplY3QmJmkodC5saW5rKHIub2VzX3ZlcnRleF9hcnJheV9vYmplY3QpLCIuYmluZFZlcnRleEFycmF5T0VTKG51bGwpOyIpO3ZhciBmPWkuZGVmKGYuYXR0cmlidXRlcyksaD1pLmRlZigwKSxwPXQuY29uZChoLCIuYnVmZmVyIik7cC50aGVuKGwsIi5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShpKTsiLGwsIi5iaW5kQnVmZmVyKCIsMzQ5NjIsIiwiLGgsIi5idWZmZXIuYnVmZmVyKTsiLGwsIi52ZXJ0ZXhBdHRyaWJQb2ludGVyKGksIixoLCIuc2l6ZSwiLGgsIi50eXBlLCIsaCwiLm5vcm1hbGl6ZWQsIixoLCIuc3RyaWRlLCIsaCwiLm9mZnNldCk7IikuZWxzZShsLCIuZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KGkpOyIsbCwiLnZlcnRleEF0dHJpYjRmKGksIixoLCIueCwiLGgsIi55LCIsaCwiLnosIixoLCIudyk7IixoLCIuYnVmZmVyPW51bGw7Iik7dmFyIGQ9dC5saW5rKG4ubWF4QXR0cmlidXRlcyx7c3RhYmxlOiEwfSk7cmV0dXJuIGkoImZvcih2YXIgaT0wO2k8IixkLCI7KytpKXsiLGgsIj0iLGYsIltpXTsiLHAsIn0iKSwkJiZpKCJmb3IodmFyIGk9MDtpPCIsZCwiOysraSl7IixzLCIudmVydGV4QXR0cmliRGl2aXNvckFOR0xFKGksIixmLCJbaV0uZGl2aXNvcik7IiwifSIpLGkodC5zaGFyZWQudmFvLCIuY3VycmVudFZBTz1udWxsOyIsdC5zaGFyZWQudmFvLCIuc2V0VkFPKCIsdC5zaGFyZWQudmFvLCIudGFyZ2V0VkFPKTsiKSxPYmplY3Qua2V5cyhzdCkuZm9yRWFjaCgoZnVuY3Rpb24ocil7dmFyIG49c3Rbcl0sYT1vLmRlZihjLCIuIixyKSxzPXQuYmxvY2soKTtzKCJpZigiLGEsIil7IixsLCIuZW5hYmxlKCIsbiwiKX1lbHNleyIsbCwiLmRpc2FibGUoIixuLCIpfSIsdSwiLiIsciwiPSIsYSwiOyIpLGkocyksZSgiaWYoIixhLCIhPT0iLHUsIi4iLHIsIil7IixzLCJ9Iil9KSksT2JqZWN0LmtleXMobHQpLmZvckVhY2goKGZ1bmN0aW9uKHIpe3ZhciBuLHMsZj1sdFtyXSxoPW50W3JdLHA9dC5ibG9jaygpO3AobCwiLiIsZiwiKCIpLGcoaCk/KGY9aC5sZW5ndGgsbj10Lmdsb2JhbC5kZWYoYywiLiIscikscz10Lmdsb2JhbC5kZWYodSwiLiIscikscChhKGYsKGZ1bmN0aW9uKHQpe3JldHVybiBuKyJbIit0KyJdIn0pKSwiKTsiLGEoZiwoZnVuY3Rpb24odCl7cmV0dXJuIHMrIlsiK3QrIl09IituKyJbIit0KyJdOyJ9KSkuam9pbigiIikpLGUoImlmKCIsYShmLChmdW5jdGlvbih0KXtyZXR1cm4gbisiWyIrdCsiXSE9PSIrcysiWyIrdCsiXSJ9KSkuam9pbigifHwiKSwiKXsiLHAsIn0iKSk6KG49by5kZWYoYywiLiIscikscz1vLmRlZih1LCIuIixyKSxwKG4sIik7Iix1LCIuIixyLCI9IixuLCI7IiksZSgiaWYoIixuLCIhPT0iLHMsIil7IixwLCJ9IikpLGkocCl9KSksdC5jb21waWxlKCl9KCksY29tcGlsZTpmdW5jdGlvbih0LGUscixuLGkpe3ZhciBhPV8oKTthLnN0YXRzPWEubGluayhpKSxPYmplY3Qua2V5cyhlLnN0YXRpYykuZm9yRWFjaCgoZnVuY3Rpb24odCl7SihhLGUsdCl9KSksTXQuZm9yRWFjaCgoZnVuY3Rpb24oZSl7SihhLHQsZSl9KSk7dmFyIG89TSh0LGUscixuKTtyZXR1cm4gby5zaGFkZXIucHJvZ3JhbSYmKG8uc2hhZGVyLnByb2dyYW0uYXR0cmlidXRlcy5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0Lm5hbWU8ZS5uYW1lPy0xOjF9KSksby5zaGFkZXIucHJvZ3JhbS51bmlmb3Jtcy5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0Lm5hbWU8ZS5uYW1lPy0xOjF9KSkpLGZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5wcm9jKCJkcmF3IiwxKTtQKHQsciksUyh0LHIsZS5jb250ZXh0KSxFKHQscixlLmZyYW1lYnVmZmVyKSxMKHQscixlKSxDKHQscixlLnN0YXRlKSxJKHQscixlLCExLCEwKTt2YXIgbj1lLnNoYWRlci5wcm9nVmFyLmFwcGVuZCh0LHIpO2lmKHIodC5zaGFyZWQuZ2wsIi51c2VQcm9ncmFtKCIsbiwiLnByb2dyYW0pOyIpLGUuc2hhZGVyLnByb2dyYW0pWSh0LHIsZSxlLnNoYWRlci5wcm9ncmFtKTtlbHNle3IodC5zaGFyZWQudmFvLCIuc2V0VkFPKG51bGwpOyIpO3ZhciBpPXQuZ2xvYmFsLmRlZigie30iKSxhPXIuZGVmKG4sIi5pZCIpLG89ci5kZWYoaSwiWyIsYSwiXSIpO3IodC5jb25kKG8pLnRoZW4obywiLmNhbGwodGhpcyxhMCk7IikuZWxzZShvLCI9IixpLCJbIixhLCJdPSIsdC5saW5rKChmdW5jdGlvbihyKXtyZXR1cm4gcShZLHQsZSxyLDEpfSkpLCIoIixuLCIpOyIsbywiLmNhbGwodGhpcyxhMCk7IikpfTA8T2JqZWN0LmtleXMoZS5zdGF0ZSkubGVuZ3RoJiZyKHQuc2hhcmVkLmN1cnJlbnQsIi5kaXJ0eT10cnVlOyIpLHQuc2hhcmVkLnZhbyYmcih0LnNoYXJlZC52YW8sIi5zZXRWQU8obnVsbCk7Iil9KGEsbyksWihhLG8pLGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gcih0KXtyZXR1cm4gdC5jb250ZXh0RGVwJiZpfHx0LnByb3BEZXB9dmFyIG49dC5wcm9jKCJiYXRjaCIsMik7dC5iYXRjaElkPSIwIixQKHQsbik7dmFyIGk9ITEsYT0hMDtPYmplY3Qua2V5cyhlLmNvbnRleHQpLmZvckVhY2goKGZ1bmN0aW9uKHQpe2k9aXx8ZS5jb250ZXh0W3RdLnByb3BEZXB9KSksaXx8KFModCxuLGUuY29udGV4dCksYT0hMSk7dmFyIG89ITE7aWYoKHM9ZS5mcmFtZWJ1ZmZlcik/KHMucHJvcERlcD9pPW89ITA6cy5jb250ZXh0RGVwJiZpJiYobz0hMCksb3x8RSh0LG4scykpOkUodCxuLG51bGwpLGUuc3RhdGUudmlld3BvcnQmJmUuc3RhdGUudmlld3BvcnQucHJvcERlcCYmKGk9ITApLEwodCxuLGUpLEModCxuLGUuc3RhdGUsKGZ1bmN0aW9uKHQpe3JldHVybiFyKHQpfSkpLGUucHJvZmlsZSYmcihlLnByb2ZpbGUpfHxJKHQsbixlLCExLCJhMSIpLGUuY29udGV4dERlcD1pLGUubmVlZHNDb250ZXh0PWEsZS5uZWVkc0ZyYW1lYnVmZmVyPW8sKGE9ZS5zaGFkZXIucHJvZ1ZhcikuY29udGV4dERlcCYmaXx8YS5wcm9wRGVwKVgodCxuLGUsbnVsbCk7ZWxzZSBpZihhPWEuYXBwZW5kKHQsbiksbih0LnNoYXJlZC5nbCwiLnVzZVByb2dyYW0oIixhLCIucHJvZ3JhbSk7IiksZS5zaGFkZXIucHJvZ3JhbSlYKHQsbixlLGUuc2hhZGVyLnByb2dyYW0pO2Vsc2V7bih0LnNoYXJlZC52YW8sIi5zZXRWQU8obnVsbCk7Iik7dmFyIHM9dC5nbG9iYWwuZGVmKCJ7fSIpLGw9KG89bi5kZWYoYSwiLmlkIiksbi5kZWYocywiWyIsbywiXSIpKTtuKHQuY29uZChsKS50aGVuKGwsIi5jYWxsKHRoaXMsYTAsYTEpOyIpLmVsc2UobCwiPSIscywiWyIsbywiXT0iLHQubGluaygoZnVuY3Rpb24ocil7cmV0dXJuIHEoWCx0LGUsciwyKX0pKSwiKCIsYSwiKTsiLGwsIi5jYWxsKHRoaXMsYTAsYTEpOyIpKX0wPE9iamVjdC5rZXlzKGUuc3RhdGUpLmxlbmd0aCYmbih0LnNoYXJlZC5jdXJyZW50LCIuZGlydHk9dHJ1ZTsiKSx0LnNoYXJlZC52YW8mJm4odC5zaGFyZWQudmFvLCIuc2V0VkFPKG51bGwpOyIpfShhLG8pLEgoYS5jb21waWxlKCkse2Rlc3Ryb3k6ZnVuY3Rpb24oKXtvLnNoYWRlci5wcm9ncmFtLmRlc3Ryb3koKX19KX19fWZ1bmN0aW9uIFYodCxlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoOysrcilpZih0W3JdPT09ZSlyZXR1cm4gcjtyZXR1cm4tMX12YXIgSD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1PYmplY3Qua2V5cyhlKSxuPTA7bjxyLmxlbmd0aDsrK24pdFtyW25dXT1lW3Jbbl1dO3JldHVybiB0fSxxPTAsRz17RHluYW1pY1ZhcmlhYmxlOnQsZGVmaW5lOmZ1bmN0aW9uKHIsbil7cmV0dXJuIG5ldyB0KHIsZShuKyIiKSl9LGlzRHluYW1pYzpmdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZSYmIWUuX3JlZ2xUeXBlfHxlIGluc3RhbmNlb2YgdH0sdW5ib3g6ZnVuY3Rpb24gZShyLG4pe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiByP25ldyB0KDAscik6Im51bWJlciI9PXR5cGVvZiByfHwiYm9vbGVhbiI9PXR5cGVvZiByP25ldyB0KDUscik6QXJyYXkuaXNBcnJheShyKT9uZXcgdCg2LHIubWFwKChmdW5jdGlvbih0LHIpe3JldHVybiBlKHQsbisiWyIrcisiXSIpfSkpKTpyIGluc3RhbmNlb2YgdD9yOnZvaWQgMH0sYWNjZXNzb3I6ZX0sWT17bmV4dDoiZnVuY3Rpb24iPT10eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lP2Z1bmN0aW9uKHQpe3JldHVybiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodCl9OmZ1bmN0aW9uKHQpe3JldHVybiBzZXRUaW1lb3V0KHQsMTYpfSxjYW5jZWw6ImZ1bmN0aW9uIj09dHlwZW9mIGNhbmNlbEFuaW1hdGlvbkZyYW1lP2Z1bmN0aW9uKHQpe3JldHVybiBjYW5jZWxBbmltYXRpb25GcmFtZSh0KX06Y2xlYXJUaW1lb3V0fSxXPSJ1bmRlZmluZWQiIT10eXBlb2YgcGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm5vdz9mdW5jdGlvbigpe3JldHVybiBwZXJmb3JtYW5jZS5ub3coKX06ZnVuY3Rpb24oKXtyZXR1cm4rbmV3IERhdGV9LFg9cygpO1guemVybz1zKCk7dmFyIFo9ZnVuY3Rpb24odCxlKXt2YXIgcj0xO2UuZXh0X3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljJiYocj10LmdldFBhcmFtZXRlcigzNDA0NykpO3ZhciBuPTEsaT0xO2Uud2ViZ2xfZHJhd19idWZmZXJzJiYobj10LmdldFBhcmFtZXRlcigzNDg1MiksaT10LmdldFBhcmFtZXRlcigzNjA2MykpO3ZhciBhPSEhZS5vZXNfdGV4dHVyZV9mbG9hdDtpZihhKXthPXQuY3JlYXRlVGV4dHVyZSgpLHQuYmluZFRleHR1cmUoMzU1MyxhKSx0LnRleEltYWdlMkQoMzU1MywwLDY0MDgsMSwxLDAsNjQwOCw1MTI2LG51bGwpO3ZhciBvPXQuY3JlYXRlRnJhbWVidWZmZXIoKTtpZih0LmJpbmRGcmFtZWJ1ZmZlcigzNjE2MCxvKSx0LmZyYW1lYnVmZmVyVGV4dHVyZTJEKDM2MTYwLDM2MDY0LDM1NTMsYSwwKSx0LmJpbmRUZXh0dXJlKDM1NTMsbnVsbCksMzYwNTMhPT10LmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoMzYxNjApKWE9ITE7ZWxzZXt0LnZpZXdwb3J0KDAsMCwxLDEpLHQuY2xlYXJDb2xvcigxLDAsMCwxKSx0LmNsZWFyKDE2Mzg0KTt2YXIgcz1YLmFsbG9jVHlwZSg1MTI2LDQpO3QucmVhZFBpeGVscygwLDAsMSwxLDY0MDgsNTEyNixzKSx0LmdldEVycm9yKCk/YT0hMToodC5kZWxldGVGcmFtZWJ1ZmZlcihvKSx0LmRlbGV0ZVRleHR1cmUoYSksYT0xPT09c1swXSksWC5mcmVlVHlwZShzKX19cmV0dXJuIHM9ITAsInVuZGVmaW5lZCIhPXR5cGVvZiBuYXZpZ2F0b3ImJigvTVNJRS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KXx8L1RyaWRlbnRcLy8udGVzdChuYXZpZ2F0b3IuYXBwVmVyc2lvbil8fC9FZGdlLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKXx8KHM9dC5jcmVhdGVUZXh0dXJlKCksbz1YLmFsbG9jVHlwZSg1MTIxLDM2KSx0LmFjdGl2ZVRleHR1cmUoMzM5ODQpLHQuYmluZFRleHR1cmUoMzQwNjcscyksdC50ZXhJbWFnZTJEKDM0MDY5LDAsNjQwOCwzLDMsMCw2NDA4LDUxMjEsbyksWC5mcmVlVHlwZShvKSx0LmJpbmRUZXh0dXJlKDM0MDY3LG51bGwpLHQuZGVsZXRlVGV4dHVyZShzKSxzPSF0LmdldEVycm9yKCkpLHtjb2xvckJpdHM6W3QuZ2V0UGFyYW1ldGVyKDM0MTApLHQuZ2V0UGFyYW1ldGVyKDM0MTEpLHQuZ2V0UGFyYW1ldGVyKDM0MTIpLHQuZ2V0UGFyYW1ldGVyKDM0MTMpXSxkZXB0aEJpdHM6dC5nZXRQYXJhbWV0ZXIoMzQxNCksc3RlbmNpbEJpdHM6dC5nZXRQYXJhbWV0ZXIoMzQxNSksc3VicGl4ZWxCaXRzOnQuZ2V0UGFyYW1ldGVyKDM0MDgpLGV4dGVuc2lvbnM6T2JqZWN0LmtleXMoZSkuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4hIWVbdF19KSksbWF4QW5pc290cm9waWM6cixtYXhEcmF3YnVmZmVyczpuLG1heENvbG9yQXR0YWNobWVudHM6aSxwb2ludFNpemVEaW1zOnQuZ2V0UGFyYW1ldGVyKDMzOTAxKSxsaW5lV2lkdGhEaW1zOnQuZ2V0UGFyYW1ldGVyKDMzOTAyKSxtYXhWaWV3cG9ydERpbXM6dC5nZXRQYXJhbWV0ZXIoMzM4NiksbWF4Q29tYmluZWRUZXh0dXJlVW5pdHM6dC5nZXRQYXJhbWV0ZXIoMzU2NjEpLG1heEN1YmVNYXBTaXplOnQuZ2V0UGFyYW1ldGVyKDM0MDc2KSxtYXhSZW5kZXJidWZmZXJTaXplOnQuZ2V0UGFyYW1ldGVyKDM0MDI0KSxtYXhUZXh0dXJlVW5pdHM6dC5nZXRQYXJhbWV0ZXIoMzQ5MzApLG1heFRleHR1cmVTaXplOnQuZ2V0UGFyYW1ldGVyKDMzNzkpLG1heEF0dHJpYnV0ZXM6dC5nZXRQYXJhbWV0ZXIoMzQ5MjEpLG1heFZlcnRleFVuaWZvcm1zOnQuZ2V0UGFyYW1ldGVyKDM2MzQ3KSxtYXhWZXJ0ZXhUZXh0dXJlVW5pdHM6dC5nZXRQYXJhbWV0ZXIoMzU2NjApLG1heFZhcnlpbmdWZWN0b3JzOnQuZ2V0UGFyYW1ldGVyKDM2MzQ4KSxtYXhGcmFnbWVudFVuaWZvcm1zOnQuZ2V0UGFyYW1ldGVyKDM2MzQ5KSxnbHNsOnQuZ2V0UGFyYW1ldGVyKDM1NzI0KSxyZW5kZXJlcjp0LmdldFBhcmFtZXRlcig3OTM3KSx2ZW5kb3I6dC5nZXRQYXJhbWV0ZXIoNzkzNiksdmVyc2lvbjp0LmdldFBhcmFtZXRlcig3OTM4KSxyZWFkRmxvYXQ6YSxucG90VGV4dHVyZUN1YmU6c319LEo9ZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBVaW50OEFycmF5fHx0IGluc3RhbmNlb2YgVWludDE2QXJyYXl8fHQgaW5zdGFuY2VvZiBVaW50MzJBcnJheXx8dCBpbnN0YW5jZW9mIEludDhBcnJheXx8dCBpbnN0YW5jZW9mIEludDE2QXJyYXl8fHQgaW5zdGFuY2VvZiBJbnQzMkFycmF5fHx0IGluc3RhbmNlb2YgRmxvYXQzMkFycmF5fHx0IGluc3RhbmNlb2YgRmxvYXQ2NEFycmF5fHx0IGluc3RhbmNlb2YgVWludDhDbGFtcGVkQXJyYXl9LEs9ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5rZXlzKHQpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHRbZV19KSl9LFE9e3NoYXBlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXTt0Lmxlbmd0aDt0PXRbMF0pZS5wdXNoKHQubGVuZ3RoKTtyZXR1cm4gZX0sZmxhdHRlbjpmdW5jdGlvbih0LGUscixuKXt2YXIgaT0xO2lmKGUubGVuZ3RoKWZvcih2YXIgYT0wO2E8ZS5sZW5ndGg7KythKWkqPWVbYV07ZWxzZSBpPTA7c3dpdGNoKHI9bnx8WC5hbGxvY1R5cGUocixpKSxlLmxlbmd0aCl7Y2FzZSAwOmJyZWFrO2Nhc2UgMTpmb3Iobj1lWzBdLGU9MDtlPG47KytlKXJbZV09dFtlXTticmVhaztjYXNlIDI6Zm9yKG49ZVswXSxlPWVbMV0sYT1pPTA7YTxuOysrYSlmb3IodmFyIG89dFthXSxzPTA7czxlOysrcylyW2krK109b1tzXTticmVhaztjYXNlIDM6Yyh0LGVbMF0sZVsxXSxlWzJdLHIsMCk7YnJlYWs7ZGVmYXVsdDohZnVuY3Rpb24gdChlLHIsbixpLGEpe2Zvcih2YXIgbz0xLHM9bisxO3M8ci5sZW5ndGg7KytzKW8qPXJbc107dmFyIGw9cltuXTtpZig0PT1yLmxlbmd0aC1uKXt2YXIgdT1yW24rMV0sZj1yW24rMl07Zm9yKHI9cltuKzNdLHM9MDtzPGw7KytzKWMoZVtzXSx1LGYscixpLGEpLGErPW99ZWxzZSBmb3Iocz0wO3M8bDsrK3MpdChlW3NdLHIsbisxLGksYSksYSs9b30odCxlLDAsciwwKX1yZXR1cm4gcn19LCQ9eyJbb2JqZWN0IEludDhBcnJheV0iOjUxMjAsIltvYmplY3QgSW50MTZBcnJheV0iOjUxMjIsIltvYmplY3QgSW50MzJBcnJheV0iOjUxMjQsIltvYmplY3QgVWludDhBcnJheV0iOjUxMjEsIltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIjo1MTIxLCJbb2JqZWN0IFVpbnQxNkFycmF5XSI6NTEyMywiW29iamVjdCBVaW50MzJBcnJheV0iOjUxMjUsIltvYmplY3QgRmxvYXQzMkFycmF5XSI6NTEyNiwiW29iamVjdCBGbG9hdDY0QXJyYXldIjo1MTIxLCJbb2JqZWN0IEFycmF5QnVmZmVyXSI6NTEyMX0sdHQ9e2ludDg6NTEyMCxpbnQxNjo1MTIyLGludDMyOjUxMjQsdWludDg6NTEyMSx1aW50MTY6NTEyMyx1aW50MzI6NTEyNSxmbG9hdDo1MTI2LGZsb2F0MzI6NTEyNn0sZXQ9e2R5bmFtaWM6MzUwNDgsc3RyZWFtOjM1MDQwLHN0YXRpYzozNTA0NH0scnQ9US5mbGF0dGVuLG50PVEuc2hhcGUsaXQ9W107aXRbNTEyMF09MSxpdFs1MTIyXT0yLGl0WzUxMjRdPTQsaXRbNTEyMV09MSxpdFs1MTIzXT0yLGl0WzUxMjVdPTQsaXRbNTEyNl09NDt2YXIgYXQ9e3BvaW50czowLHBvaW50OjAsbGluZXM6MSxsaW5lOjEsdHJpYW5nbGVzOjQsdHJpYW5nbGU6NCwibGluZSBsb29wIjoyLCJsaW5lIHN0cmlwIjozLCJ0cmlhbmdsZSBzdHJpcCI6NSwidHJpYW5nbGUgZmFuIjo2fSxvdD1uZXcgRmxvYXQzMkFycmF5KDEpLHN0PW5ldyBVaW50MzJBcnJheShvdC5idWZmZXIpLGx0PVs5OTg0LDk5ODYsOTk4NSw5OTg3XSxjdD1bMCw2NDA5LDY0MTAsNjQwNyw2NDA4XSx1dD17fTt1dFs2NDA5XT11dFs2NDA2XT11dFs2NDAyXT0xLHV0WzM0MDQxXT11dFs2NDEwXT0yLHV0WzY0MDddPXV0WzM1OTA0XT0zLHV0WzY0MDhdPXV0WzM1OTA2XT00O3ZhciBmdD12KCJIVE1MQ2FudmFzRWxlbWVudCIpLGh0PXYoIk9mZnNjcmVlbkNhbnZhcyIpLHB0PXYoIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCIpLGR0PXYoIkltYWdlQml0bWFwIiksbXQ9digiSFRNTEltYWdlRWxlbWVudCIpLGd0PXYoIkhUTUxWaWRlb0VsZW1lbnQiKSx2dD1PYmplY3Qua2V5cygkKS5jb25jYXQoW2Z0LGh0LHB0LGR0LG10LGd0XSkseXQ9W107eXRbNTEyMV09MSx5dFs1MTI2XT00LHl0WzM2MTkzXT0yLHl0WzUxMjNdPTIseXRbNTEyNV09NDt2YXIgeHQ9W107eHRbMzI4NTRdPTIseHRbMzI4NTVdPTIseHRbMzYxOTRdPTIseHRbMzQwNDFdPTQseHRbMzM3NzZdPS41LHh0WzMzNzc3XT0uNSx4dFszMzc3OF09MSx4dFszMzc3OV09MSx4dFszNTk4Nl09LjUseHRbMzU5ODddPTEseHRbMzQ3OThdPTEseHRbMzU4NDBdPS41LHh0WzM1ODQxXT0uMjUseHRbMzU4NDJdPS41LHh0WzM1ODQzXT0uMjUseHRbMzYxOTZdPS41O3ZhciBidD1bXTtidFszMjg1NF09MixidFszMjg1NV09MixidFszNjE5NF09MixidFszMzE4OV09MixidFszNjE2OF09MSxidFszNDA0MV09NCxidFszNTkwN109NCxidFszNDgzNl09MTYsYnRbMzQ4NDJdPTgsYnRbMzQ4NDNdPTY7dmFyIF90PWZ1bmN0aW9uKHQsZSxyLG4saSl7ZnVuY3Rpb24gYSh0KXt0aGlzLmlkPWMrKyx0aGlzLnJlZkNvdW50PTEsdGhpcy5yZW5kZXJidWZmZXI9dCx0aGlzLmZvcm1hdD0zMjg1NCx0aGlzLmhlaWdodD10aGlzLndpZHRoPTAsaS5wcm9maWxlJiYodGhpcy5zdGF0cz17c2l6ZTowfSl9ZnVuY3Rpb24gbyhlKXt2YXIgcj1lLnJlbmRlcmJ1ZmZlcjt0LmJpbmRSZW5kZXJidWZmZXIoMzYxNjEsbnVsbCksdC5kZWxldGVSZW5kZXJidWZmZXIociksZS5yZW5kZXJidWZmZXI9bnVsbCxlLnJlZkNvdW50PTAsZGVsZXRlIHVbZS5pZF0sbi5yZW5kZXJidWZmZXJDb3VudC0tfXZhciBzPXtyZ2JhNDozMjg1NCxyZ2I1NjU6MzYxOTQsInJnYjUgYTEiOjMyODU1LGRlcHRoOjMzMTg5LHN0ZW5jaWw6MzYxNjgsImRlcHRoIHN0ZW5jaWwiOjM0MDQxfTtlLmV4dF9zcmdiJiYocy5zcmdiYT0zNTkwNyksZS5leHRfY29sb3JfYnVmZmVyX2hhbGZfZmxvYXQmJihzLnJnYmExNmY9MzQ4NDIscy5yZ2IxNmY9MzQ4NDMpLGUud2ViZ2xfY29sb3JfYnVmZmVyX2Zsb2F0JiYocy5yZ2JhMzJmPTM0ODM2KTt2YXIgbD1bXTtPYmplY3Qua2V5cyhzKS5mb3JFYWNoKChmdW5jdGlvbih0KXtsW3NbdF1dPXR9KSk7dmFyIGM9MCx1PXt9O3JldHVybiBhLnByb3RvdHlwZS5kZWNSZWY9ZnVuY3Rpb24oKXswPj0tLXRoaXMucmVmQ291bnQmJm8odGhpcyl9LGkucHJvZmlsZSYmKG4uZ2V0VG90YWxSZW5kZXJidWZmZXJTaXplPWZ1bmN0aW9uKCl7dmFyIHQ9MDtyZXR1cm4gT2JqZWN0LmtleXModSkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dCs9dVtlXS5zdGF0cy5zaXplfSkpLHR9KSx7Y3JlYXRlOmZ1bmN0aW9uKGUscil7ZnVuY3Rpb24gbyhlLHIpe3ZhciBuPTAsYT0wLHU9MzI4NTQ7aWYoIm9iamVjdCI9PXR5cGVvZiBlJiZlPygic2hhcGUiaW4gZT8obj0wfChhPWUuc2hhcGUpWzBdLGE9MHxhWzFdKTooInJhZGl1cyJpbiBlJiYobj1hPTB8ZS5yYWRpdXMpLCJ3aWR0aCJpbiBlJiYobj0wfGUud2lkdGgpLCJoZWlnaHQiaW4gZSYmKGE9MHxlLmhlaWdodCkpLCJmb3JtYXQiaW4gZSYmKHU9c1tlLmZvcm1hdF0pKToibnVtYmVyIj09dHlwZW9mIGU/KG49MHxlLGE9Im51bWJlciI9PXR5cGVvZiByPzB8cjpuKTplfHwobj1hPTEpLG4hPT1jLndpZHRofHxhIT09Yy5oZWlnaHR8fHUhPT1jLmZvcm1hdClyZXR1cm4gby53aWR0aD1jLndpZHRoPW4sby5oZWlnaHQ9Yy5oZWlnaHQ9YSxjLmZvcm1hdD11LHQuYmluZFJlbmRlcmJ1ZmZlcigzNjE2MSxjLnJlbmRlcmJ1ZmZlciksdC5yZW5kZXJidWZmZXJTdG9yYWdlKDM2MTYxLHUsbixhKSxpLnByb2ZpbGUmJihjLnN0YXRzLnNpemU9YnRbYy5mb3JtYXRdKmMud2lkdGgqYy5oZWlnaHQpLG8uZm9ybWF0PWxbYy5mb3JtYXRdLG99dmFyIGM9bmV3IGEodC5jcmVhdGVSZW5kZXJidWZmZXIoKSk7cmV0dXJuIHVbYy5pZF09YyxuLnJlbmRlcmJ1ZmZlckNvdW50KyssbyhlLHIpLG8ucmVzaXplPWZ1bmN0aW9uKGUscil7dmFyIG49MHxlLGE9MHxyfHxuO3JldHVybiBuPT09Yy53aWR0aCYmYT09PWMuaGVpZ2h0fHwoby53aWR0aD1jLndpZHRoPW4sby5oZWlnaHQ9Yy5oZWlnaHQ9YSx0LmJpbmRSZW5kZXJidWZmZXIoMzYxNjEsYy5yZW5kZXJidWZmZXIpLHQucmVuZGVyYnVmZmVyU3RvcmFnZSgzNjE2MSxjLmZvcm1hdCxuLGEpLGkucHJvZmlsZSYmKGMuc3RhdHMuc2l6ZT1idFtjLmZvcm1hdF0qYy53aWR0aCpjLmhlaWdodCkpLG99LG8uX3JlZ2xUeXBlPSJyZW5kZXJidWZmZXIiLG8uX3JlbmRlcmJ1ZmZlcj1jLGkucHJvZmlsZSYmKG8uc3RhdHM9Yy5zdGF0cyksby5kZXN0cm95PWZ1bmN0aW9uKCl7Yy5kZWNSZWYoKX0sb30sY2xlYXI6ZnVuY3Rpb24oKXtLKHUpLmZvckVhY2gobyl9LHJlc3RvcmU6ZnVuY3Rpb24oKXtLKHUpLmZvckVhY2goKGZ1bmN0aW9uKGUpe2UucmVuZGVyYnVmZmVyPXQuY3JlYXRlUmVuZGVyYnVmZmVyKCksdC5iaW5kUmVuZGVyYnVmZmVyKDM2MTYxLGUucmVuZGVyYnVmZmVyKSx0LnJlbmRlcmJ1ZmZlclN0b3JhZ2UoMzYxNjEsZS5mb3JtYXQsZS53aWR0aCxlLmhlaWdodCl9KSksdC5iaW5kUmVuZGVyYnVmZmVyKDM2MTYxLG51bGwpfX19LHd0PVtdO3d0WzY0MDhdPTQsd3RbNjQwN109Mzt2YXIgVHQ9W107VHRbNTEyMV09MSxUdFs1MTI2XT00LFR0WzM2MTkzXT0yO3ZhciBrdD1bMTExNjM1MjQwOCwxODk5NDQ3NDQxLC0xMjQ1NjQzODI1LC0zNzM5NTc3MjMsOTYxOTg3MTYzLDE1MDg5NzA5OTMsLTE4NDEzMzE1NDgsLTE0MjQyMDQwNzUsLTY3MDU4NjIxNiwzMTA1OTg0MDEsNjA3MjI1Mjc4LDE0MjY4ODE5ODcsMTkyNTA3ODM4OCwtMjEzMjg4OTA5MCwtMTY4MDA3OTE5MywtMTA0Njc0NDcxNiwtNDU5NTc2ODk1LC0yNzI3NDI1MjIsMjY0MzQ3MDc4LDYwNDgwNzYyOCw3NzAyNTU5ODMsMTI0OTE1MDEyMiwxNTU1MDgxNjkyLDE5OTYwNjQ5ODYsLTE3NDA3NDY0MTQsLTE0NzMxMzI5NDcsLTEzNDE5NzA0ODgsLTEwODQ2NTM2MjUsLTk1ODM5NTQwNSwtNzEwNDM4NTg1LDExMzkyNjk5MywzMzgyNDE4OTUsNjY2MzA3MjA1LDc3MzUyOTkxMiwxMjk0NzU3MzcyLDEzOTYxODIyOTEsMTY5NTE4MzcwMCwxOTg2NjYxMDUxLC0yMTE3OTQwOTQ2LC0xODM4MDExMjU5LC0xNTY0NDgxMzc1LC0xNDc0NjY0ODg1LC0xMDM1MjM2NDk2LC05NDkyMDI1MjUsLTc3ODkwMTQ3OSwtNjk0NjE0NDkyLC0yMDAzOTUzODcsMjc1NDIzMzQ0LDQzMDIyNzczNCw1MDY5NDg2MTYsNjU5MDYwNTU2LDg4Mzk5Nzg3Nyw5NTgxMzk1NzEsMTMyMjgyMjIxOCwxNTM3MDAyMDYzLDE3NDc4NzM3NzksMTk1NTU2MjIyMiwyMDI0MTA0ODE1LC0yMDY3MjM2ODQ0LC0xOTMzMTE0ODcyLC0xODY2NTMwODIyLC0xNTM4MjMzMTA5LC0xMDkwOTM1ODE3LC05NjU2NDE5OThdLEF0PVsieCIsInkiLCJ6IiwidyJdLE10PSJibGVuZC5mdW5jIGJsZW5kLmVxdWF0aW9uIHN0ZW5jaWwuZnVuYyBzdGVuY2lsLm9wRnJvbnQgc3RlbmNpbC5vcEJhY2sgc2FtcGxlLmNvdmVyYWdlIHZpZXdwb3J0IHNjaXNzb3IuYm94IHBvbHlnb25PZmZzZXQub2Zmc2V0Ii5zcGxpdCgiICIpLFN0PXswOjAsMToxLHplcm86MCxvbmU6MSwic3JjIGNvbG9yIjo3NjgsIm9uZSBtaW51cyBzcmMgY29sb3IiOjc2OSwic3JjIGFscGhhIjo3NzAsIm9uZSBtaW51cyBzcmMgYWxwaGEiOjc3MSwiZHN0IGNvbG9yIjo3NzQsIm9uZSBtaW51cyBkc3QgY29sb3IiOjc3NSwiZHN0IGFscGhhIjo3NzIsIm9uZSBtaW51cyBkc3QgYWxwaGEiOjc3MywiY29uc3RhbnQgY29sb3IiOjMyNzY5LCJvbmUgbWludXMgY29uc3RhbnQgY29sb3IiOjMyNzcwLCJjb25zdGFudCBhbHBoYSI6MzI3NzEsIm9uZSBtaW51cyBjb25zdGFudCBhbHBoYSI6MzI3NzIsInNyYyBhbHBoYSBzYXR1cmF0ZSI6Nzc2fSxFdD17bmV2ZXI6NTEyLGxlc3M6NTEzLCI8Ijo1MTMsZXF1YWw6NTE0LCI9Ijo1MTQsIj09Ijo1MTQsIj09PSI6NTE0LGxlcXVhbDo1MTUsIjw9Ijo1MTUsZ3JlYXRlcjo1MTYsIj4iOjUxNixub3RlcXVhbDo1MTcsIiE9Ijo1MTcsIiE9PSI6NTE3LGdlcXVhbDo1MTgsIj49Ijo1MTgsYWx3YXlzOjUxOX0sTHQ9ezA6MCx6ZXJvOjAsa2VlcDo3NjgwLHJlcGxhY2U6NzY4MSxpbmNyZW1lbnQ6NzY4MixkZWNyZW1lbnQ6NzY4MywiaW5jcmVtZW50IHdyYXAiOjM0MDU1LCJkZWNyZW1lbnQgd3JhcCI6MzQwNTYsaW52ZXJ0OjUzODZ9LEN0PXtjdzoyMzA0LGNjdzoyMzA1fSxQdD1uZXcgRighMSwhMSwhMSwoZnVuY3Rpb24oKXt9KSk7cmV0dXJuIGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtpZigwPT09Sy5sZW5ndGgpVCYmVC51cGRhdGUoKSxldD1udWxsO2Vsc2V7ZXQ9WS5uZXh0KGUpLGYoKTtmb3IodmFyIHQ9Sy5sZW5ndGgtMTswPD10Oy0tdCl7dmFyIHI9S1t0XTtyJiZyKEksbnVsbCwwKX1nLmZsdXNoKCksVCYmVC51cGRhdGUoKX19ZnVuY3Rpb24gcigpeyFldCYmMDxLLmxlbmd0aCYmKGV0PVkubmV4dChlKSl9ZnVuY3Rpb24gbigpe2V0JiYoWS5jYW5jZWwoZSksZXQ9bnVsbCl9ZnVuY3Rpb24gYSh0KXt0LnByZXZlbnREZWZhdWx0KCksbigpLFEuZm9yRWFjaCgoZnVuY3Rpb24odCl7dCgpfSkpfWZ1bmN0aW9uIG8odCl7Zy5nZXRFcnJvcigpLHkucmVzdG9yZSgpLEYucmVzdG9yZSgpLHoucmVzdG9yZSgpLEIucmVzdG9yZSgpLE4ucmVzdG9yZSgpLGoucmVzdG9yZSgpLFIucmVzdG9yZSgpLFQmJlQucmVzdG9yZSgpLHEucHJvY3MucmVmcmVzaCgpLHIoKSwkLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QoKX0pKX1mdW5jdGlvbiBzKHQpe2Z1bmN0aW9uIGUodCxlKXt2YXIgcj17fSxuPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChmdW5jdGlvbihpKXt2YXIgYT10W2ldO2lmKEcuaXNEeW5hbWljKGEpKW5baV09Ry51bmJveChhLGkpO2Vsc2V7aWYoZSYmQXJyYXkuaXNBcnJheShhKSlmb3IodmFyIG89MDtvPGEubGVuZ3RoOysrbylpZihHLmlzRHluYW1pYyhhW29dKSlyZXR1cm4gdm9pZChuW2ldPUcudW5ib3goYSxpKSk7cltpXT1hfX0pKSx7ZHluYW1pYzpuLHN0YXRpYzpyfX12YXIgcj1lKHQuY29udGV4dHx8e30sITApLG49ZSh0LnVuaWZvcm1zfHx7fSwhMCksaT1lKHQuYXR0cmlidXRlc3x8e30sITEpO3Q9ZShmdW5jdGlvbih0KXtmdW5jdGlvbiBlKHQpe2lmKHQgaW4gcil7dmFyIGU9clt0XTtkZWxldGUgclt0XSxPYmplY3Qua2V5cyhlKS5mb3JFYWNoKChmdW5jdGlvbihuKXtyW3QrIi4iK25dPWVbbl19KSl9fXZhciByPUgoe30sdCk7cmV0dXJuIGRlbGV0ZSByLnVuaWZvcm1zLGRlbGV0ZSByLmF0dHJpYnV0ZXMsZGVsZXRlIHIuY29udGV4dCxkZWxldGUgci52YW8sInN0ZW5jaWwiaW4gciYmci5zdGVuY2lsLm9wJiYoci5zdGVuY2lsLm9wQmFjaz1yLnN0ZW5jaWwub3BGcm9udD1yLnN0ZW5jaWwub3AsZGVsZXRlIHIuc3RlbmNpbC5vcCksZSgiYmxlbmQiKSxlKCJkZXB0aCIpLGUoImN1bGwiKSxlKCJzdGVuY2lsIiksZSgicG9seWdvbk9mZnNldCIpLGUoInNjaXNzb3IiKSxlKCJzYW1wbGUiKSwidmFvImluIHQmJihyLnZhbz10LnZhbykscn0odCksITEpO3ZhciBhPXtncHVUaW1lOjAsY3B1VGltZTowLGNvdW50OjB9LG89cS5jb21waWxlKHQsaSxuLHIsYSkscz1vLmRyYXcsbD1vLmJhdGNoLGM9by5zY29wZSx1PVtdO3JldHVybiBIKChmdW5jdGlvbih0LGUpe3ZhciByO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0KXJldHVybiBjLmNhbGwodGhpcyxudWxsLHQsMCk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUpaWYoIm51bWJlciI9PXR5cGVvZiB0KWZvcihyPTA7cjx0OysrciljLmNhbGwodGhpcyxudWxsLGUscik7ZWxzZXtpZighQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gYy5jYWxsKHRoaXMsdCxlLDApO2ZvcihyPTA7cjx0Lmxlbmd0aDsrK3IpYy5jYWxsKHRoaXMsdFtyXSxlLHIpfWVsc2UgaWYoIm51bWJlciI9PXR5cGVvZiB0KXtpZigwPHQpcmV0dXJuIGwuY2FsbCh0aGlzLGZ1bmN0aW9uKHQpe2Zvcig7dS5sZW5ndGg8dDspdS5wdXNoKG51bGwpO3JldHVybiB1fSgwfHQpLDB8dCl9ZWxzZXtpZighQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gcy5jYWxsKHRoaXMsdCk7aWYodC5sZW5ndGgpcmV0dXJuIGwuY2FsbCh0aGlzLHQsdC5sZW5ndGgpfX0pLHtzdGF0czphLGRlc3Ryb3k6ZnVuY3Rpb24oKXtvLmRlc3Ryb3koKX19KX1mdW5jdGlvbiBsKHQsZSl7dmFyIHI9MDtxLnByb2NzLnBvbGwoKTt2YXIgbj1lLmNvbG9yO24mJihnLmNsZWFyQ29sb3IoK25bMF18fDAsK25bMV18fDAsK25bMl18fDAsK25bM118fDApLHJ8PTE2Mzg0KSwiZGVwdGgiaW4gZSYmKGcuY2xlYXJEZXB0aCgrZS5kZXB0aCkscnw9MjU2KSwic3RlbmNpbCJpbiBlJiYoZy5jbGVhclN0ZW5jaWwoMHxlLnN0ZW5jaWwpLHJ8PTEwMjQpLGcuY2xlYXIocil9ZnVuY3Rpb24gYyh0KXtyZXR1cm4gSy5wdXNoKHQpLHIoKSx7Y2FuY2VsOmZ1bmN0aW9uKCl7dmFyIGU9VihLLHQpO0tbZV09ZnVuY3Rpb24gdCgpe3ZhciBlPVYoSyx0KTtLW2VdPUtbSy5sZW5ndGgtMV0sLS1LLmxlbmd0aCwwPj1LLmxlbmd0aCYmbigpfX19fWZ1bmN0aW9uIHUoKXt2YXIgdD1YLnZpZXdwb3J0LGU9WC5zY2lzc29yX2JveDt0WzBdPXRbMV09ZVswXT1lWzFdPTAsSS52aWV3cG9ydFdpZHRoPUkuZnJhbWVidWZmZXJXaWR0aD1JLmRyYXdpbmdCdWZmZXJXaWR0aD10WzJdPWVbMl09Zy5kcmF3aW5nQnVmZmVyV2lkdGgsSS52aWV3cG9ydEhlaWdodD1JLmZyYW1lYnVmZmVySGVpZ2h0PUkuZHJhd2luZ0J1ZmZlckhlaWdodD10WzNdPWVbM109Zy5kcmF3aW5nQnVmZmVySGVpZ2h0fWZ1bmN0aW9uIGYoKXtJLnRpY2srPTEsSS50aW1lPW0oKSx1KCkscS5wcm9jcy5wb2xsKCl9ZnVuY3Rpb24gaCgpe0IucmVmcmVzaCgpLHUoKSxxLnByb2NzLnJlZnJlc2goKSxUJiZULnVwZGF0ZSgpfWZ1bmN0aW9uIG0oKXtyZXR1cm4oVygpLU0pLzFlM31pZighKHQ9aSh0KSkpcmV0dXJuIG51bGw7dmFyIGc9dC5nbCx2PWcuZ2V0Q29udGV4dEF0dHJpYnV0ZXMoKTtnLmlzQ29udGV4dExvc3QoKTt2YXIgeT1mdW5jdGlvbih0LGUpe2Z1bmN0aW9uIHIoZSl7dmFyIHI7ZT1lLnRvTG93ZXJDYXNlKCk7dHJ5e3I9bltlXT10LmdldEV4dGVuc2lvbihlKX1jYXRjaCh0KXt9cmV0dXJuISFyfWZvcih2YXIgbj17fSxpPTA7aTxlLmV4dGVuc2lvbnMubGVuZ3RoOysraSl7dmFyIGE9ZS5leHRlbnNpb25zW2ldO2lmKCFyKGEpKXJldHVybiBlLm9uRGVzdHJveSgpLGUub25Eb25lKCciJythKyciIGV4dGVuc2lvbiBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBjdXJyZW50IFdlYkdMIGNvbnRleHQsIHRyeSB1cGdyYWRpbmcgeW91ciBzeXN0ZW0gb3IgYSBkaWZmZXJlbnQgYnJvd3NlcicpLG51bGx9cmV0dXJuIGUub3B0aW9uYWxFeHRlbnNpb25zLmZvckVhY2gocikse2V4dGVuc2lvbnM6bixyZXN0b3JlOmZ1bmN0aW9uKCl7T2JqZWN0LmtleXMobikuZm9yRWFjaCgoZnVuY3Rpb24odCl7aWYoblt0XSYmIXIodCkpdGhyb3cgRXJyb3IoIihyZWdsKTogZXJyb3IgcmVzdG9yaW5nIGV4dGVuc2lvbiAiK3QpfSkpfX19KGcsdCk7aWYoIXkpcmV0dXJuIG51bGw7dmFyIHg9ZnVuY3Rpb24oKXt2YXIgdD17IiI6MH0sZT1bIiJdO3JldHVybntpZDpmdW5jdGlvbihyKXt2YXIgbj10W3JdO3JldHVybiBufHwobj10W3JdPWUubGVuZ3RoLGUucHVzaChyKSxuKX0sc3RyOmZ1bmN0aW9uKHQpe3JldHVybiBlW3RdfX19KCksYj17dmFvQ291bnQ6MCxidWZmZXJDb3VudDowLGVsZW1lbnRzQ291bnQ6MCxmcmFtZWJ1ZmZlckNvdW50OjAsc2hhZGVyQ291bnQ6MCx0ZXh0dXJlQ291bnQ6MCxjdWJlQ291bnQ6MCxyZW5kZXJidWZmZXJDb3VudDowLG1heFRleHR1cmVVbml0czowfSxfPXQuY2FjaGVkQ29kZXx8e30sdz15LmV4dGVuc2lvbnMsVD1mdW5jdGlvbih0LGUpe2Z1bmN0aW9uIHIoKXt0aGlzLmVuZFF1ZXJ5SW5kZXg9dGhpcy5zdGFydFF1ZXJ5SW5kZXg9LTEsdGhpcy5zdW09MCx0aGlzLnN0YXRzPW51bGx9ZnVuY3Rpb24gbih0LGUsbil7dmFyIGk9by5wb3AoKXx8bmV3IHI7aS5zdGFydFF1ZXJ5SW5kZXg9dCxpLmVuZFF1ZXJ5SW5kZXg9ZSxpLnN1bT0wLGkuc3RhdHM9bixzLnB1c2goaSl9aWYoIWUuZXh0X2Rpc2pvaW50X3RpbWVyX3F1ZXJ5KXJldHVybiBudWxsO3ZhciBpPVtdLGE9W10sbz1bXSxzPVtdLGw9W10sYz1bXTtyZXR1cm57YmVnaW5RdWVyeTpmdW5jdGlvbih0KXt2YXIgcj1pLnBvcCgpfHxlLmV4dF9kaXNqb2ludF90aW1lcl9xdWVyeS5jcmVhdGVRdWVyeUVYVCgpO2UuZXh0X2Rpc2pvaW50X3RpbWVyX3F1ZXJ5LmJlZ2luUXVlcnlFWFQoMzUwMDcsciksYS5wdXNoKHIpLG4oYS5sZW5ndGgtMSxhLmxlbmd0aCx0KX0sZW5kUXVlcnk6ZnVuY3Rpb24oKXtlLmV4dF9kaXNqb2ludF90aW1lcl9xdWVyeS5lbmRRdWVyeUVYVCgzNTAwNyl9LHB1c2hTY29wZVN0YXRzOm4sdXBkYXRlOmZ1bmN0aW9uKCl7dmFyIHQscjtpZigwIT09KHQ9YS5sZW5ndGgpKXtjLmxlbmd0aD1NYXRoLm1heChjLmxlbmd0aCx0KzEpLGwubGVuZ3RoPU1hdGgubWF4KGwubGVuZ3RoLHQrMSksbFswXT0wO3ZhciBuPWNbMF09MDtmb3Iocj10PTA7cjxhLmxlbmd0aDsrK3Ipe3ZhciB1PWFbcl07ZS5leHRfZGlzam9pbnRfdGltZXJfcXVlcnkuZ2V0UXVlcnlPYmplY3RFWFQodSwzNDkxOSk/KG4rPWUuZXh0X2Rpc2pvaW50X3RpbWVyX3F1ZXJ5LmdldFF1ZXJ5T2JqZWN0RVhUKHUsMzQ5MTgpLGkucHVzaCh1KSk6YVt0KytdPXUsbFtyKzFdPW4sY1tyKzFdPXR9Zm9yKGEubGVuZ3RoPXQscj10PTA7cjxzLmxlbmd0aDsrK3Ipe3ZhciBmPShuPXNbcl0pLnN0YXJ0UXVlcnlJbmRleDt1PW4uZW5kUXVlcnlJbmRleDtuLnN1bSs9bFt1XS1sW2ZdLGY9Y1tmXSwodT1jW3VdKT09PWY/KG4uc3RhdHMuZ3B1VGltZSs9bi5zdW0vMWU2LG8ucHVzaChuKSk6KG4uc3RhcnRRdWVyeUluZGV4PWYsbi5lbmRRdWVyeUluZGV4PXUsc1t0KytdPW4pfXMubGVuZ3RoPXR9fSxnZXROdW1QZW5kaW5nUXVlcmllczpmdW5jdGlvbigpe3JldHVybiBhLmxlbmd0aH0sY2xlYXI6ZnVuY3Rpb24oKXtpLnB1c2guYXBwbHkoaSxhKTtmb3IodmFyIHQ9MDt0PGkubGVuZ3RoO3QrKyllLmV4dF9kaXNqb2ludF90aW1lcl9xdWVyeS5kZWxldGVRdWVyeUVYVChpW3RdKTthLmxlbmd0aD0wLGkubGVuZ3RoPTB9LHJlc3RvcmU6ZnVuY3Rpb24oKXthLmxlbmd0aD0wLGkubGVuZ3RoPTB9fX0oMCx3KSxNPVcoKSxDPWcuZHJhd2luZ0J1ZmZlcldpZHRoLFA9Zy5kcmF3aW5nQnVmZmVySGVpZ2h0LEk9e3RpY2s6MCx0aW1lOjAsdmlld3BvcnRXaWR0aDpDLHZpZXdwb3J0SGVpZ2h0OlAsZnJhbWVidWZmZXJXaWR0aDpDLGZyYW1lYnVmZmVySGVpZ2h0OlAsZHJhd2luZ0J1ZmZlcldpZHRoOkMsZHJhd2luZ0J1ZmZlckhlaWdodDpQLHBpeGVsUmF0aW86dC5waXhlbFJhdGlvfSxPPShDPXtlbGVtZW50czpudWxsLHByaW1pdGl2ZTo0LGNvdW50Oi0xLG9mZnNldDowLGluc3RhbmNlczotMX0sWihnLHcpKSx6PXAoZyxiLHQsKGZ1bmN0aW9uKHQpe3JldHVybiBSLmRlc3Ryb3lCdWZmZXIodCl9KSksRD1kKGcsdyx6LGIpLFI9UyhnLHcsTyxiLHosRCxDKSxGPUUoZyx4LGIsdCksQj1rKGcsdyxPLChmdW5jdGlvbigpe3EucHJvY3MucG9sbCgpfSksSSxiLHQpLE49X3QoZyx3LDAsYix0KSxqPUEoZyx3LE8sQixOLGIpLHE9VShnLHgsdyxPLHosRCwwLGose30sUixGLEMsSSxULF8sdCksWD0oeD1MKGcsaixxLnByb2NzLnBvbGwsSSkscS5uZXh0KSxKPWcuY2FudmFzLEs9W10sUT1bXSwkPVtdLHR0PVt0Lm9uRGVzdHJveV0sZXQ9bnVsbDtKJiYoSi5hZGRFdmVudExpc3RlbmVyKCJ3ZWJnbGNvbnRleHRsb3N0IixhLCExKSxKLmFkZEV2ZW50TGlzdGVuZXIoIndlYmdsY29udGV4dHJlc3RvcmVkIixvLCExKSk7dmFyIHJ0PWouc2V0RkJPPXMoe2ZyYW1lYnVmZmVyOkcuZGVmaW5lLmNhbGwobnVsbCwxLCJmcmFtZWJ1ZmZlciIpfSk7cmV0dXJuIGgoKSx2PUgocyx7Y2xlYXI6ZnVuY3Rpb24odCl7aWYoImZyYW1lYnVmZmVyImluIHQpaWYodC5mcmFtZWJ1ZmZlciYmImZyYW1lYnVmZmVyQ3ViZSI9PT10LmZyYW1lYnVmZmVyX3JlZ2xUeXBlKWZvcih2YXIgZT0wOzY+ZTsrK2UpcnQoSCh7ZnJhbWVidWZmZXI6dC5mcmFtZWJ1ZmZlci5mYWNlc1tlXX0sdCksbCk7ZWxzZSBydCh0LGwpO2Vsc2UgbCgwLHQpfSxwcm9wOkcuZGVmaW5lLmJpbmQobnVsbCwxKSxjb250ZXh0OkcuZGVmaW5lLmJpbmQobnVsbCwyKSx0aGlzOkcuZGVmaW5lLmJpbmQobnVsbCwzKSxkcmF3OnMoe30pLGJ1ZmZlcjpmdW5jdGlvbih0KXtyZXR1cm4gei5jcmVhdGUodCwzNDk2MiwhMSwhMSl9LGVsZW1lbnRzOmZ1bmN0aW9uKHQpe3JldHVybiBELmNyZWF0ZSh0LCExKX0sdGV4dHVyZTpCLmNyZWF0ZTJELGN1YmU6Qi5jcmVhdGVDdWJlLHJlbmRlcmJ1ZmZlcjpOLmNyZWF0ZSxmcmFtZWJ1ZmZlcjpqLmNyZWF0ZSxmcmFtZWJ1ZmZlckN1YmU6ai5jcmVhdGVDdWJlLHZhbzpSLmNyZWF0ZVZBTyxhdHRyaWJ1dGVzOnYsZnJhbWU6YyxvbjpmdW5jdGlvbih0LGUpe3ZhciByO3N3aXRjaCh0KXtjYXNlImZyYW1lIjpyZXR1cm4gYyhlKTtjYXNlImxvc3QiOnI9UTticmVhaztjYXNlInJlc3RvcmUiOnI9JDticmVhaztjYXNlImRlc3Ryb3kiOnI9dHR9cmV0dXJuIHIucHVzaChlKSx7Y2FuY2VsOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PTA7dDxyLmxlbmd0aDsrK3QpaWYoclt0XT09PWUpe3JbdF09cltyLmxlbmd0aC0xXSxyLnBvcCgpO2JyZWFrfX19fSxsaW1pdHM6TyxoYXNFeHRlbnNpb246ZnVuY3Rpb24odCl7cmV0dXJuIDA8PU8uZXh0ZW5zaW9ucy5pbmRleE9mKHQudG9Mb3dlckNhc2UoKSl9LHJlYWQ6eCxkZXN0cm95OmZ1bmN0aW9uKCl7Sy5sZW5ndGg9MCxuKCksSiYmKEoucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2ViZ2xjb250ZXh0bG9zdCIsYSksSi5yZW1vdmVFdmVudExpc3RlbmVyKCJ3ZWJnbGNvbnRleHRyZXN0b3JlZCIsbykpLEYuY2xlYXIoKSxqLmNsZWFyKCksTi5jbGVhcigpLFIuY2xlYXIoKSxCLmNsZWFyKCksRC5jbGVhcigpLHouY2xlYXIoKSxUJiZULmNsZWFyKCksdHQuZm9yRWFjaCgoZnVuY3Rpb24odCl7dCgpfSkpfSxfZ2w6ZyxfcmVmcmVzaDpoLHBvbGw6ZnVuY3Rpb24oKXtmKCksVCYmVC51cGRhdGUoKX0sbm93Om0sc3RhdHM6YixnZXRDYWNoZWRDb2RlOmZ1bmN0aW9uKCl7cmV0dXJuIF99LHByZWxvYWRDYWNoZWRDb2RlOmZ1bmN0aW9uKHQpe09iamVjdC5lbnRyaWVzKHQpLmZvckVhY2goKGZ1bmN0aW9uKHQpe19bdFswXV09dFsxXX0pKX19KSx0Lm9uRG9uZShudWxsLHYpLHZ9fSkpfSx7fV0sMjg1OltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiYnVmZmVyIiksaT1uLkJ1ZmZlcjtmdW5jdGlvbiBhKHQsZSl7Zm9yKHZhciByIGluIHQpZVtyXT10W3JdfWZ1bmN0aW9uIG8odCxlLHIpe3JldHVybiBpKHQsZSxyKX1pLmZyb20mJmkuYWxsb2MmJmkuYWxsb2NVbnNhZmUmJmkuYWxsb2NVbnNhZmVTbG93P2UuZXhwb3J0cz1uOihhKG4sciksci5CdWZmZXI9byksby5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShpLnByb3RvdHlwZSksYShpLG8pLG8uZnJvbT1mdW5jdGlvbih0LGUscil7aWYoIm51bWJlciI9PXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3Qgbm90IGJlIGEgbnVtYmVyIik7cmV0dXJuIGkodCxlLHIpfSxvLmFsbG9jPWZ1bmN0aW9uKHQsZSxyKXtpZigibnVtYmVyIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3ZhciBuPWkodCk7cmV0dXJuIHZvaWQgMCE9PWU/InN0cmluZyI9PXR5cGVvZiByP24uZmlsbChlLHIpOm4uZmlsbChlKTpuLmZpbGwoMCksbn0sby5hbGxvY1Vuc2FmZT1mdW5jdGlvbih0KXtpZigibnVtYmVyIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3JldHVybiBpKHQpfSxvLmFsbG9jVW5zYWZlU2xvdz1mdW5jdGlvbih0KXtpZigibnVtYmVyIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3JldHVybiBuLlNsb3dCdWZmZXIodCl9fSx7YnVmZmVyOjg1fV0sMjg2OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWk7dmFyIG49dCgiZXZlbnRzIikuRXZlbnRFbWl0dGVyO2Z1bmN0aW9uIGkoKXtuLmNhbGwodGhpcyl9dCgiaW5oZXJpdHMiKShpLG4pLGkuUmVhZGFibGU9dCgicmVhZGFibGUtc3RyZWFtL2xpYi9fc3RyZWFtX3JlYWRhYmxlLmpzIiksaS5Xcml0YWJsZT10KCJyZWFkYWJsZS1zdHJlYW0vbGliL19zdHJlYW1fd3JpdGFibGUuanMiKSxpLkR1cGxleD10KCJyZWFkYWJsZS1zdHJlYW0vbGliL19zdHJlYW1fZHVwbGV4LmpzIiksaS5UcmFuc2Zvcm09dCgicmVhZGFibGUtc3RyZWFtL2xpYi9fc3RyZWFtX3RyYW5zZm9ybS5qcyIpLGkuUGFzc1Rocm91Z2g9dCgicmVhZGFibGUtc3RyZWFtL2xpYi9fc3RyZWFtX3Bhc3N0aHJvdWdoLmpzIiksaS5maW5pc2hlZD10KCJyZWFkYWJsZS1zdHJlYW0vbGliL2ludGVybmFsL3N0cmVhbXMvZW5kLW9mLXN0cmVhbS5qcyIpLGkucGlwZWxpbmU9dCgicmVhZGFibGUtc3RyZWFtL2xpYi9pbnRlcm5hbC9zdHJlYW1zL3BpcGVsaW5lLmpzIiksaS5TdHJlYW09aSxpLnByb3RvdHlwZS5waXBlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcztmdW5jdGlvbiBpKGUpe3Qud3JpdGFibGUmJiExPT09dC53cml0ZShlKSYmci5wYXVzZSYmci5wYXVzZSgpfWZ1bmN0aW9uIGEoKXtyLnJlYWRhYmxlJiZyLnJlc3VtZSYmci5yZXN1bWUoKX1yLm9uKCJkYXRhIixpKSx0Lm9uKCJkcmFpbiIsYSksdC5faXNTdGRpb3x8ZSYmITE9PT1lLmVuZHx8KHIub24oImVuZCIscyksci5vbigiY2xvc2UiLGwpKTt2YXIgbz0hMTtmdW5jdGlvbiBzKCl7b3x8KG89ITAsdC5lbmQoKSl9ZnVuY3Rpb24gbCgpe298fChvPSEwLCJmdW5jdGlvbiI9PXR5cGVvZiB0LmRlc3Ryb3kmJnQuZGVzdHJveSgpKX1mdW5jdGlvbiBjKHQpe2lmKHUoKSwwPT09bi5saXN0ZW5lckNvdW50KHRoaXMsImVycm9yIikpdGhyb3cgdH1mdW5jdGlvbiB1KCl7ci5yZW1vdmVMaXN0ZW5lcigiZGF0YSIsaSksdC5yZW1vdmVMaXN0ZW5lcigiZHJhaW4iLGEpLHIucmVtb3ZlTGlzdGVuZXIoImVuZCIscyksci5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLGwpLHIucmVtb3ZlTGlzdGVuZXIoImVycm9yIixjKSx0LnJlbW92ZUxpc3RlbmVyKCJlcnJvciIsYyksci5yZW1vdmVMaXN0ZW5lcigiZW5kIix1KSxyLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsdSksdC5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLHUpfXJldHVybiByLm9uKCJlcnJvciIsYyksdC5vbigiZXJyb3IiLGMpLHIub24oImVuZCIsdSksci5vbigiY2xvc2UiLHUpLHQub24oImNsb3NlIix1KSx0LmVtaXQoInBpcGUiLHIpLHR9fSx7ZXZlbnRzOjg0LGluaGVyaXRzOjIzMSwicmVhZGFibGUtc3RyZWFtL2xpYi9fc3RyZWFtX2R1cGxleC5qcyI6Mjg4LCJyZWFkYWJsZS1zdHJlYW0vbGliL19zdHJlYW1fcGFzc3Rocm91Z2guanMiOjI4OSwicmVhZGFibGUtc3RyZWFtL2xpYi9fc3RyZWFtX3JlYWRhYmxlLmpzIjoyOTAsInJlYWRhYmxlLXN0cmVhbS9saWIvX3N0cmVhbV90cmFuc2Zvcm0uanMiOjI5MSwicmVhZGFibGUtc3RyZWFtL2xpYi9fc3RyZWFtX3dyaXRhYmxlLmpzIjoyOTIsInJlYWRhYmxlLXN0cmVhbS9saWIvaW50ZXJuYWwvc3RyZWFtcy9lbmQtb2Ytc3RyZWFtLmpzIjoyOTYsInJlYWRhYmxlLXN0cmVhbS9saWIvaW50ZXJuYWwvc3RyZWFtcy9waXBlbGluZS5qcyI6Mjk4fV0sMjg3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXt9O2Z1bmN0aW9uIGkodCxlLHIpe3J8fChyPUVycm9yKTt2YXIgaT1mdW5jdGlvbih0KXt2YXIgcixuO2Z1bmN0aW9uIGkocixuLGkpe3JldHVybiB0LmNhbGwodGhpcyxmdW5jdGlvbih0LHIsbil7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlP2U6ZSh0LHIsbil9KHIsbixpKSl8fHRoaXN9cmV0dXJuIG49dCwocj1pKS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShuLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixyLl9fcHJvdG9fXz1uLGl9KHIpO2kucHJvdG90eXBlLm5hbWU9ci5uYW1lLGkucHJvdG90eXBlLmNvZGU9dCxuW3RdPWl9ZnVuY3Rpb24gYSh0LGUpe2lmKEFycmF5LmlzQXJyYXkodCkpe3ZhciByPXQubGVuZ3RoO3JldHVybiB0PXQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gU3RyaW5nKHQpfSkpLHI+Mj8ib25lIG9mICIuY29uY2F0KGUsIiAiKS5jb25jYXQodC5zbGljZSgwLHItMSkuam9pbigiLCAiKSwiLCBvciAiKSt0W3ItMV06Mj09PXI/Im9uZSBvZiAiLmNvbmNhdChlLCIgIikuY29uY2F0KHRbMF0sIiBvciAiKS5jb25jYXQodFsxXSk6Im9mICIuY29uY2F0KGUsIiAiKS5jb25jYXQodFswXSl9cmV0dXJuIm9mICIuY29uY2F0KGUsIiAiKS5jb25jYXQoU3RyaW5nKHQpKX1pKCJFUlJfSU5WQUxJRF9PUFRfVkFMVUUiLChmdW5jdGlvbih0LGUpe3JldHVybidUaGUgdmFsdWUgIicrZSsnIiBpcyBpbnZhbGlkIGZvciBvcHRpb24gIicrdCsnIid9KSxUeXBlRXJyb3IpLGkoIkVSUl9JTlZBTElEX0FSR19UWVBFIiwoZnVuY3Rpb24odCxlLHIpe3ZhciBuLGksbyxzO2lmKCJzdHJpbmciPT10eXBlb2YgZSYmKGk9Im5vdCAiLGUuc3Vic3RyKCFvfHxvPDA/MDorbyxpLmxlbmd0aCk9PT1pKT8obj0ibXVzdCBub3QgYmUiLGU9ZS5yZXBsYWNlKC9ebm90IC8sIiIpKTpuPSJtdXN0IGJlIixmdW5jdGlvbih0LGUscil7cmV0dXJuKHZvaWQgMD09PXJ8fHI+dC5sZW5ndGgpJiYocj10Lmxlbmd0aCksdC5zdWJzdHJpbmcoci1lLmxlbmd0aCxyKT09PWV9KHQsIiBhcmd1bWVudCIpKXM9IlRoZSAiLmNvbmNhdCh0LCIgIikuY29uY2F0KG4sIiAiKS5jb25jYXQoYShlLCJ0eXBlIikpO2Vsc2V7dmFyIGw9ZnVuY3Rpb24odCxlLHIpe3JldHVybiJudW1iZXIiIT10eXBlb2YgciYmKHI9MCksIShyK2UubGVuZ3RoPnQubGVuZ3RoKSYmLTEhPT10LmluZGV4T2YoZSxyKX0odCwiLiIpPyJwcm9wZXJ0eSI6ImFyZ3VtZW50IjtzPSdUaGUgIicuY29uY2F0KHQsJyIgJykuY29uY2F0KGwsIiAiKS5jb25jYXQobiwiICIpLmNvbmNhdChhKGUsInR5cGUiKSl9cmV0dXJuIHMrPSIuIFJlY2VpdmVkIHR5cGUgIi5jb25jYXQodHlwZW9mIHIpfSksVHlwZUVycm9yKSxpKCJFUlJfU1RSRUFNX1BVU0hfQUZURVJfRU9GIiwic3RyZWFtLnB1c2goKSBhZnRlciBFT0YiKSxpKCJFUlJfTUVUSE9EX05PVF9JTVBMRU1FTlRFRCIsKGZ1bmN0aW9uKHQpe3JldHVybiJUaGUgIit0KyIgbWV0aG9kIGlzIG5vdCBpbXBsZW1lbnRlZCJ9KSksaSgiRVJSX1NUUkVBTV9QUkVNQVRVUkVfQ0xPU0UiLCJQcmVtYXR1cmUgY2xvc2UiKSxpKCJFUlJfU1RSRUFNX0RFU1RST1lFRCIsKGZ1bmN0aW9uKHQpe3JldHVybiJDYW5ub3QgY2FsbCAiK3QrIiBhZnRlciBhIHN0cmVhbSB3YXMgZGVzdHJveWVkIn0pKSxpKCJFUlJfTVVMVElQTEVfQ0FMTEJBQ0siLCJDYWxsYmFjayBjYWxsZWQgbXVsdGlwbGUgdGltZXMiKSxpKCJFUlJfU1RSRUFNX0NBTk5PVF9QSVBFIiwiQ2Fubm90IHBpcGUsIG5vdCByZWFkYWJsZSIpLGkoIkVSUl9TVFJFQU1fV1JJVEVfQUZURVJfRU5EIiwid3JpdGUgYWZ0ZXIgZW5kIiksaSgiRVJSX1NUUkVBTV9OVUxMX1ZBTFVFUyIsIk1heSBub3Qgd3JpdGUgbnVsbCB2YWx1ZXMgdG8gc3RyZWFtIixUeXBlRXJyb3IpLGkoIkVSUl9VTktOT1dOX0VOQ09ESU5HIiwoZnVuY3Rpb24odCl7cmV0dXJuIlVua25vd24gZW5jb2Rpbmc6ICIrdH0pLFR5cGVFcnJvciksaSgiRVJSX1NUUkVBTV9VTlNISUZUX0FGVEVSX0VORF9FVkVOVCIsInN0cmVhbS51bnNoaWZ0KCkgYWZ0ZXIgZW5kIGV2ZW50IiksZS5leHBvcnRzLmNvZGVzPW59LHt9XSwyODg6W2Z1bmN0aW9uKHQsZSxyKXsoZnVuY3Rpb24ocil7KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBuPU9iamVjdC5rZXlzfHxmdW5jdGlvbih0KXt2YXIgZT1bXTtmb3IodmFyIHIgaW4gdCllLnB1c2gocik7cmV0dXJuIGV9O2UuZXhwb3J0cz1jO3ZhciBpPXQoIi4vX3N0cmVhbV9yZWFkYWJsZSIpLGE9dCgiLi9fc3RyZWFtX3dyaXRhYmxlIik7dCgiaW5oZXJpdHMiKShjLGkpO2Zvcih2YXIgbz1uKGEucHJvdG90eXBlKSxzPTA7czxvLmxlbmd0aDtzKyspe3ZhciBsPW9bc107Yy5wcm90b3R5cGVbbF18fChjLnByb3RvdHlwZVtsXT1hLnByb3RvdHlwZVtsXSl9ZnVuY3Rpb24gYyh0KXtpZighKHRoaXMgaW5zdGFuY2VvZiBjKSlyZXR1cm4gbmV3IGModCk7aS5jYWxsKHRoaXMsdCksYS5jYWxsKHRoaXMsdCksdGhpcy5hbGxvd0hhbGZPcGVuPSEwLHQmJighMT09PXQucmVhZGFibGUmJih0aGlzLnJlYWRhYmxlPSExKSwhMT09PXQud3JpdGFibGUmJih0aGlzLndyaXRhYmxlPSExKSwhMT09PXQuYWxsb3dIYWxmT3BlbiYmKHRoaXMuYWxsb3dIYWxmT3Blbj0hMSx0aGlzLm9uY2UoImVuZCIsdSkpKX1mdW5jdGlvbiB1KCl7dGhpcy5fd3JpdGFibGVTdGF0ZS5lbmRlZHx8ci5uZXh0VGljayhmLHRoaXMpfWZ1bmN0aW9uIGYodCl7dC5lbmQoKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoYy5wcm90b3R5cGUsIndyaXRhYmxlSGlnaFdhdGVyTWFyayIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUuaGlnaFdhdGVyTWFya319KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYy5wcm90b3R5cGUsIndyaXRhYmxlQnVmZmVyIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZSYmdGhpcy5fd3JpdGFibGVTdGF0ZS5nZXRCdWZmZXIoKX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYy5wcm90b3R5cGUsIndyaXRhYmxlTGVuZ3RoIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5sZW5ndGh9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGMucHJvdG90eXBlLCJkZXN0cm95ZWQiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzLl9yZWFkYWJsZVN0YXRlJiZ2b2lkIDAhPT10aGlzLl93cml0YWJsZVN0YXRlJiYodGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQmJnRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkKX0sc2V0OmZ1bmN0aW9uKHQpe3ZvaWQgMCE9PXRoaXMuX3JlYWRhYmxlU3RhdGUmJnZvaWQgMCE9PXRoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZD10LHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkPXQpfX0pfSkuY2FsbCh0aGlzKX0pLmNhbGwodGhpcyx0KCJfcHJvY2VzcyIpKX0seyIuL19zdHJlYW1fcmVhZGFibGUiOjI5MCwiLi9fc3RyZWFtX3dyaXRhYmxlIjoyOTIsX3Byb2Nlc3M6Mjc4LGluaGVyaXRzOjIzMX1dLDI4OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9aTt2YXIgbj10KCIuL19zdHJlYW1fdHJhbnNmb3JtIik7ZnVuY3Rpb24gaSh0KXtpZighKHRoaXMgaW5zdGFuY2VvZiBpKSlyZXR1cm4gbmV3IGkodCk7bi5jYWxsKHRoaXMsdCl9dCgiaW5oZXJpdHMiKShpLG4pLGkucHJvdG90eXBlLl90cmFuc2Zvcm09ZnVuY3Rpb24odCxlLHIpe3IobnVsbCx0KX19LHsiLi9fc3RyZWFtX3RyYW5zZm9ybSI6MjkxLGluaGVyaXRzOjIzMX1dLDI5MDpbZnVuY3Rpb24odCxlLHIpeyhmdW5jdGlvbihyLG4peyhmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgaTtlLmV4cG9ydHM9QSxBLlJlYWRhYmxlU3RhdGU9azt0KCJldmVudHMiKS5FdmVudEVtaXR0ZXI7dmFyIGE9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5saXN0ZW5lcnMoZSkubGVuZ3RofSxvPXQoIi4vaW50ZXJuYWwvc3RyZWFtcy9zdHJlYW0iKSxzPXQoImJ1ZmZlciIpLkJ1ZmZlcixsPW4uVWludDhBcnJheXx8ZnVuY3Rpb24oKXt9O3ZhciBjLHU9dCgidXRpbCIpO2M9dSYmdS5kZWJ1Z2xvZz91LmRlYnVnbG9nKCJzdHJlYW0iKTpmdW5jdGlvbigpe307dmFyIGYsaCxwLGQ9dCgiLi9pbnRlcm5hbC9zdHJlYW1zL2J1ZmZlcl9saXN0IiksbT10KCIuL2ludGVybmFsL3N0cmVhbXMvZGVzdHJveSIpLGc9dCgiLi9pbnRlcm5hbC9zdHJlYW1zL3N0YXRlIikuZ2V0SGlnaFdhdGVyTWFyayx2PXQoIi4uL2Vycm9ycyIpLmNvZGVzLHk9di5FUlJfSU5WQUxJRF9BUkdfVFlQRSx4PXYuRVJSX1NUUkVBTV9QVVNIX0FGVEVSX0VPRixiPXYuRVJSX01FVEhPRF9OT1RfSU1QTEVNRU5URUQsXz12LkVSUl9TVFJFQU1fVU5TSElGVF9BRlRFUl9FTkRfRVZFTlQ7dCgiaW5oZXJpdHMiKShBLG8pO3ZhciB3PW0uZXJyb3JPckRlc3Ryb3ksVD1bImVycm9yIiwiY2xvc2UiLCJkZXN0cm95IiwicGF1c2UiLCJyZXN1bWUiXTtmdW5jdGlvbiBrKGUscixuKXtpPWl8fHQoIi4vX3N0cmVhbV9kdXBsZXgiKSxlPWV8fHt9LCJib29sZWFuIiE9dHlwZW9mIG4mJihuPXIgaW5zdGFuY2VvZiBpKSx0aGlzLm9iamVjdE1vZGU9ISFlLm9iamVjdE1vZGUsbiYmKHRoaXMub2JqZWN0TW9kZT10aGlzLm9iamVjdE1vZGV8fCEhZS5yZWFkYWJsZU9iamVjdE1vZGUpLHRoaXMuaGlnaFdhdGVyTWFyaz1nKHRoaXMsZSwicmVhZGFibGVIaWdoV2F0ZXJNYXJrIixuKSx0aGlzLmJ1ZmZlcj1uZXcgZCx0aGlzLmxlbmd0aD0wLHRoaXMucGlwZXM9bnVsbCx0aGlzLnBpcGVzQ291bnQ9MCx0aGlzLmZsb3dpbmc9bnVsbCx0aGlzLmVuZGVkPSExLHRoaXMuZW5kRW1pdHRlZD0hMSx0aGlzLnJlYWRpbmc9ITEsdGhpcy5zeW5jPSEwLHRoaXMubmVlZFJlYWRhYmxlPSExLHRoaXMuZW1pdHRlZFJlYWRhYmxlPSExLHRoaXMucmVhZGFibGVMaXN0ZW5pbmc9ITEsdGhpcy5yZXN1bWVTY2hlZHVsZWQ9ITEsdGhpcy5wYXVzZWQ9ITAsdGhpcy5lbWl0Q2xvc2U9ITEhPT1lLmVtaXRDbG9zZSx0aGlzLmF1dG9EZXN0cm95PSEhZS5hdXRvRGVzdHJveSx0aGlzLmRlc3Ryb3llZD0hMSx0aGlzLmRlZmF1bHRFbmNvZGluZz1lLmRlZmF1bHRFbmNvZGluZ3x8InV0ZjgiLHRoaXMuYXdhaXREcmFpbj0wLHRoaXMucmVhZGluZ01vcmU9ITEsdGhpcy5kZWNvZGVyPW51bGwsdGhpcy5lbmNvZGluZz1udWxsLGUuZW5jb2RpbmcmJihmfHwoZj10KCJzdHJpbmdfZGVjb2Rlci8iKS5TdHJpbmdEZWNvZGVyKSx0aGlzLmRlY29kZXI9bmV3IGYoZS5lbmNvZGluZyksdGhpcy5lbmNvZGluZz1lLmVuY29kaW5nKX1mdW5jdGlvbiBBKGUpe2lmKGk9aXx8dCgiLi9fc3RyZWFtX2R1cGxleCIpLCEodGhpcyBpbnN0YW5jZW9mIEEpKXJldHVybiBuZXcgQShlKTt2YXIgcj10aGlzIGluc3RhbmNlb2YgaTt0aGlzLl9yZWFkYWJsZVN0YXRlPW5ldyBrKGUsdGhpcyxyKSx0aGlzLnJlYWRhYmxlPSEwLGUmJigiZnVuY3Rpb24iPT10eXBlb2YgZS5yZWFkJiYodGhpcy5fcmVhZD1lLnJlYWQpLCJmdW5jdGlvbiI9PXR5cGVvZiBlLmRlc3Ryb3kmJih0aGlzLl9kZXN0cm95PWUuZGVzdHJveSkpLG8uY2FsbCh0aGlzKX1mdW5jdGlvbiBNKHQsZSxyLG4saSl7YygicmVhZGFibGVBZGRDaHVuayIsZSk7dmFyIGEsbz10Ll9yZWFkYWJsZVN0YXRlO2lmKG51bGw9PT1lKW8ucmVhZGluZz0hMSxmdW5jdGlvbih0LGUpe2lmKGMoIm9uRW9mQ2h1bmsiKSxlLmVuZGVkKXJldHVybjtpZihlLmRlY29kZXIpe3ZhciByPWUuZGVjb2Rlci5lbmQoKTtyJiZyLmxlbmd0aCYmKGUuYnVmZmVyLnB1c2gociksZS5sZW5ndGgrPWUub2JqZWN0TW9kZT8xOnIubGVuZ3RoKX1lLmVuZGVkPSEwLGUuc3luYz9MKHQpOihlLm5lZWRSZWFkYWJsZT0hMSxlLmVtaXR0ZWRSZWFkYWJsZXx8KGUuZW1pdHRlZFJlYWRhYmxlPSEwLEModCkpKX0odCxvKTtlbHNlIGlmKGl8fChhPWZ1bmN0aW9uKHQsZSl7dmFyIHI7bj1lLHMuaXNCdWZmZXIobil8fG4gaW5zdGFuY2VvZiBsfHwic3RyaW5nIj09dHlwZW9mIGV8fHZvaWQgMD09PWV8fHQub2JqZWN0TW9kZXx8KHI9bmV3IHkoImNodW5rIixbInN0cmluZyIsIkJ1ZmZlciIsIlVpbnQ4QXJyYXkiXSxlKSk7dmFyIG47cmV0dXJuIHJ9KG8sZSkpLGEpdyh0LGEpO2Vsc2UgaWYoby5vYmplY3RNb2RlfHxlJiZlLmxlbmd0aD4wKWlmKCJzdHJpbmciPT10eXBlb2YgZXx8by5vYmplY3RNb2RlfHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk9PT1zLnByb3RvdHlwZXx8KGU9ZnVuY3Rpb24odCl7cmV0dXJuIHMuZnJvbSh0KX0oZSkpLG4pby5lbmRFbWl0dGVkP3codCxuZXcgXyk6Uyh0LG8sZSwhMCk7ZWxzZSBpZihvLmVuZGVkKXcodCxuZXcgeCk7ZWxzZXtpZihvLmRlc3Ryb3llZClyZXR1cm4hMTtvLnJlYWRpbmc9ITEsby5kZWNvZGVyJiYhcj8oZT1vLmRlY29kZXIud3JpdGUoZSksby5vYmplY3RNb2RlfHwwIT09ZS5sZW5ndGg/Uyh0LG8sZSwhMSk6UCh0LG8pKTpTKHQsbyxlLCExKX1lbHNlIG58fChvLnJlYWRpbmc9ITEsUCh0LG8pKTtyZXR1cm4hby5lbmRlZCYmKG8ubGVuZ3RoPG8uaGlnaFdhdGVyTWFya3x8MD09PW8ubGVuZ3RoKX1mdW5jdGlvbiBTKHQsZSxyLG4pe2UuZmxvd2luZyYmMD09PWUubGVuZ3RoJiYhZS5zeW5jPyhlLmF3YWl0RHJhaW49MCx0LmVtaXQoImRhdGEiLHIpKTooZS5sZW5ndGgrPWUub2JqZWN0TW9kZT8xOnIubGVuZ3RoLG4/ZS5idWZmZXIudW5zaGlmdChyKTplLmJ1ZmZlci5wdXNoKHIpLGUubmVlZFJlYWRhYmxlJiZMKHQpKSxQKHQsZSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KEEucHJvdG90eXBlLCJkZXN0cm95ZWQiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzLl9yZWFkYWJsZVN0YXRlJiZ0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZH0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX3JlYWRhYmxlU3RhdGUmJih0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZD10KX19KSxBLnByb3RvdHlwZS5kZXN0cm95PW0uZGVzdHJveSxBLnByb3RvdHlwZS5fdW5kZXN0cm95PW0udW5kZXN0cm95LEEucHJvdG90eXBlLl9kZXN0cm95PWZ1bmN0aW9uKHQsZSl7ZSh0KX0sQS5wcm90b3R5cGUucHVzaD1mdW5jdGlvbih0LGUpe3ZhciByLG49dGhpcy5fcmVhZGFibGVTdGF0ZTtyZXR1cm4gbi5vYmplY3RNb2RlP3I9ITA6InN0cmluZyI9PXR5cGVvZiB0JiYoKGU9ZXx8bi5kZWZhdWx0RW5jb2RpbmcpIT09bi5lbmNvZGluZyYmKHQ9cy5mcm9tKHQsZSksZT0iIikscj0hMCksTSh0aGlzLHQsZSwhMSxyKX0sQS5wcm90b3R5cGUudW5zaGlmdD1mdW5jdGlvbih0KXtyZXR1cm4gTSh0aGlzLHQsbnVsbCwhMCwhMSl9LEEucHJvdG90eXBlLmlzUGF1c2VkPWZ1bmN0aW9uKCl7cmV0dXJuITE9PT10aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmd9LEEucHJvdG90eXBlLnNldEVuY29kaW5nPWZ1bmN0aW9uKGUpe2Z8fChmPXQoInN0cmluZ19kZWNvZGVyLyIpLlN0cmluZ0RlY29kZXIpO3ZhciByPW5ldyBmKGUpO3RoaXMuX3JlYWRhYmxlU3RhdGUuZGVjb2Rlcj1yLHRoaXMuX3JlYWRhYmxlU3RhdGUuZW5jb2Rpbmc9dGhpcy5fcmVhZGFibGVTdGF0ZS5kZWNvZGVyLmVuY29kaW5nO2Zvcih2YXIgbj10aGlzLl9yZWFkYWJsZVN0YXRlLmJ1ZmZlci5oZWFkLGk9IiI7bnVsbCE9PW47KWkrPXIud3JpdGUobi5kYXRhKSxuPW4ubmV4dDtyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5idWZmZXIuY2xlYXIoKSwiIiE9PWkmJnRoaXMuX3JlYWRhYmxlU3RhdGUuYnVmZmVyLnB1c2goaSksdGhpcy5fcmVhZGFibGVTdGF0ZS5sZW5ndGg9aS5sZW5ndGgsdGhpc307ZnVuY3Rpb24gRSh0LGUpe3JldHVybiB0PD0wfHwwPT09ZS5sZW5ndGgmJmUuZW5kZWQ/MDplLm9iamVjdE1vZGU/MTp0IT10P2UuZmxvd2luZyYmZS5sZW5ndGg/ZS5idWZmZXIuaGVhZC5kYXRhLmxlbmd0aDplLmxlbmd0aDoodD5lLmhpZ2hXYXRlck1hcmsmJihlLmhpZ2hXYXRlck1hcms9ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTEwNzM3NDE4MjQ/dD0xMDczNzQxODI0Oih0LS0sdHw9dD4+PjEsdHw9dD4+PjIsdHw9dD4+PjQsdHw9dD4+PjgsdHw9dD4+PjE2LHQrKyksdH0odCkpLHQ8PWUubGVuZ3RoP3Q6ZS5lbmRlZD9lLmxlbmd0aDooZS5uZWVkUmVhZGFibGU9ITAsMCkpfWZ1bmN0aW9uIEwodCl7dmFyIGU9dC5fcmVhZGFibGVTdGF0ZTtjKCJlbWl0UmVhZGFibGUiLGUubmVlZFJlYWRhYmxlLGUuZW1pdHRlZFJlYWRhYmxlKSxlLm5lZWRSZWFkYWJsZT0hMSxlLmVtaXR0ZWRSZWFkYWJsZXx8KGMoImVtaXRSZWFkYWJsZSIsZS5mbG93aW5nKSxlLmVtaXR0ZWRSZWFkYWJsZT0hMCxyLm5leHRUaWNrKEMsdCkpfWZ1bmN0aW9uIEModCl7dmFyIGU9dC5fcmVhZGFibGVTdGF0ZTtjKCJlbWl0UmVhZGFibGVfIixlLmRlc3Ryb3llZCxlLmxlbmd0aCxlLmVuZGVkKSxlLmRlc3Ryb3llZHx8IWUubGVuZ3RoJiYhZS5lbmRlZHx8KHQuZW1pdCgicmVhZGFibGUiKSxlLmVtaXR0ZWRSZWFkYWJsZT0hMSksZS5uZWVkUmVhZGFibGU9IWUuZmxvd2luZyYmIWUuZW5kZWQmJmUubGVuZ3RoPD1lLmhpZ2hXYXRlck1hcmssUih0KX1mdW5jdGlvbiBQKHQsZSl7ZS5yZWFkaW5nTW9yZXx8KGUucmVhZGluZ01vcmU9ITAsci5uZXh0VGljayhJLHQsZSkpfWZ1bmN0aW9uIEkodCxlKXtmb3IoOyFlLnJlYWRpbmcmJiFlLmVuZGVkJiYoZS5sZW5ndGg8ZS5oaWdoV2F0ZXJNYXJrfHxlLmZsb3dpbmcmJjA9PT1lLmxlbmd0aCk7KXt2YXIgcj1lLmxlbmd0aDtpZihjKCJtYXliZVJlYWRNb3JlIHJlYWQgMCIpLHQucmVhZCgwKSxyPT09ZS5sZW5ndGgpYnJlYWt9ZS5yZWFkaW5nTW9yZT0hMX1mdW5jdGlvbiBPKHQpe3ZhciBlPXQuX3JlYWRhYmxlU3RhdGU7ZS5yZWFkYWJsZUxpc3RlbmluZz10Lmxpc3RlbmVyQ291bnQoInJlYWRhYmxlIik+MCxlLnJlc3VtZVNjaGVkdWxlZCYmIWUucGF1c2VkP2UuZmxvd2luZz0hMDp0Lmxpc3RlbmVyQ291bnQoImRhdGEiKT4wJiZ0LnJlc3VtZSgpfWZ1bmN0aW9uIHoodCl7YygicmVhZGFibGUgbmV4dHRpY2sgcmVhZCAwIiksdC5yZWFkKDApfWZ1bmN0aW9uIEQodCxlKXtjKCJyZXN1bWUiLGUucmVhZGluZyksZS5yZWFkaW5nfHx0LnJlYWQoMCksZS5yZXN1bWVTY2hlZHVsZWQ9ITEsdC5lbWl0KCJyZXN1bWUiKSxSKHQpLGUuZmxvd2luZyYmIWUucmVhZGluZyYmdC5yZWFkKDApfWZ1bmN0aW9uIFIodCl7dmFyIGU9dC5fcmVhZGFibGVTdGF0ZTtmb3IoYygiZmxvdyIsZS5mbG93aW5nKTtlLmZsb3dpbmcmJm51bGwhPT10LnJlYWQoKTspO31mdW5jdGlvbiBGKHQsZSl7cmV0dXJuIDA9PT1lLmxlbmd0aD9udWxsOihlLm9iamVjdE1vZGU/cj1lLmJ1ZmZlci5zaGlmdCgpOiF0fHx0Pj1lLmxlbmd0aD8ocj1lLmRlY29kZXI/ZS5idWZmZXIuam9pbigiIik6MT09PWUuYnVmZmVyLmxlbmd0aD9lLmJ1ZmZlci5maXJzdCgpOmUuYnVmZmVyLmNvbmNhdChlLmxlbmd0aCksZS5idWZmZXIuY2xlYXIoKSk6cj1lLmJ1ZmZlci5jb25zdW1lKHQsZS5kZWNvZGVyKSxyKTt2YXIgcn1mdW5jdGlvbiBCKHQpe3ZhciBlPXQuX3JlYWRhYmxlU3RhdGU7YygiZW5kUmVhZGFibGUiLGUuZW5kRW1pdHRlZCksZS5lbmRFbWl0dGVkfHwoZS5lbmRlZD0hMCxyLm5leHRUaWNrKE4sZSx0KSl9ZnVuY3Rpb24gTih0LGUpe2lmKGMoImVuZFJlYWRhYmxlTlQiLHQuZW5kRW1pdHRlZCx0Lmxlbmd0aCksIXQuZW5kRW1pdHRlZCYmMD09PXQubGVuZ3RoJiYodC5lbmRFbWl0dGVkPSEwLGUucmVhZGFibGU9ITEsZS5lbWl0KCJlbmQiKSx0LmF1dG9EZXN0cm95KSl7dmFyIHI9ZS5fd3JpdGFibGVTdGF0ZTsoIXJ8fHIuYXV0b0Rlc3Ryb3kmJnIuZmluaXNoZWQpJiZlLmRlc3Ryb3koKX19ZnVuY3Rpb24gaih0LGUpe2Zvcih2YXIgcj0wLG49dC5sZW5ndGg7cjxuO3IrKylpZih0W3JdPT09ZSlyZXR1cm4gcjtyZXR1cm4tMX1BLnByb3RvdHlwZS5yZWFkPWZ1bmN0aW9uKHQpe2MoInJlYWQiLHQpLHQ9cGFyc2VJbnQodCwxMCk7dmFyIGU9dGhpcy5fcmVhZGFibGVTdGF0ZSxyPXQ7aWYoMCE9PXQmJihlLmVtaXR0ZWRSZWFkYWJsZT0hMSksMD09PXQmJmUubmVlZFJlYWRhYmxlJiYoKDAhPT1lLmhpZ2hXYXRlck1hcms/ZS5sZW5ndGg+PWUuaGlnaFdhdGVyTWFyazplLmxlbmd0aD4wKXx8ZS5lbmRlZCkpcmV0dXJuIGMoInJlYWQ6IGVtaXRSZWFkYWJsZSIsZS5sZW5ndGgsZS5lbmRlZCksMD09PWUubGVuZ3RoJiZlLmVuZGVkP0IodGhpcyk6TCh0aGlzKSxudWxsO2lmKDA9PT0odD1FKHQsZSkpJiZlLmVuZGVkKXJldHVybiAwPT09ZS5sZW5ndGgmJkIodGhpcyksbnVsbDt2YXIgbixpPWUubmVlZFJlYWRhYmxlO3JldHVybiBjKCJuZWVkIHJlYWRhYmxlIixpKSwoMD09PWUubGVuZ3RofHxlLmxlbmd0aC10PGUuaGlnaFdhdGVyTWFyaykmJmMoImxlbmd0aCBsZXNzIHRoYW4gd2F0ZXJtYXJrIixpPSEwKSxlLmVuZGVkfHxlLnJlYWRpbmc/YygicmVhZGluZyBvciBlbmRlZCIsaT0hMSk6aSYmKGMoImRvIHJlYWQiKSxlLnJlYWRpbmc9ITAsZS5zeW5jPSEwLDA9PT1lLmxlbmd0aCYmKGUubmVlZFJlYWRhYmxlPSEwKSx0aGlzLl9yZWFkKGUuaGlnaFdhdGVyTWFyayksZS5zeW5jPSExLGUucmVhZGluZ3x8KHQ9RShyLGUpKSksbnVsbD09PShuPXQ+MD9GKHQsZSk6bnVsbCk/KGUubmVlZFJlYWRhYmxlPWUubGVuZ3RoPD1lLmhpZ2hXYXRlck1hcmssdD0wKTooZS5sZW5ndGgtPXQsZS5hd2FpdERyYWluPTApLDA9PT1lLmxlbmd0aCYmKGUuZW5kZWR8fChlLm5lZWRSZWFkYWJsZT0hMCksciE9PXQmJmUuZW5kZWQmJkIodGhpcykpLG51bGwhPT1uJiZ0aGlzLmVtaXQoImRhdGEiLG4pLG59LEEucHJvdG90eXBlLl9yZWFkPWZ1bmN0aW9uKHQpe3codGhpcyxuZXcgYigiX3JlYWQoKSIpKX0sQS5wcm90b3R5cGUucGlwZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMsaT10aGlzLl9yZWFkYWJsZVN0YXRlO3N3aXRjaChpLnBpcGVzQ291bnQpe2Nhc2UgMDppLnBpcGVzPXQ7YnJlYWs7Y2FzZSAxOmkucGlwZXM9W2kucGlwZXMsdF07YnJlYWs7ZGVmYXVsdDppLnBpcGVzLnB1c2godCl9aS5waXBlc0NvdW50Kz0xLGMoInBpcGUgY291bnQ9JWQgb3B0cz0laiIsaS5waXBlc0NvdW50LGUpO3ZhciBvPSghZXx8ITEhPT1lLmVuZCkmJnQhPT1yLnN0ZG91dCYmdCE9PXIuc3RkZXJyP2w6ZztmdW5jdGlvbiBzKGUscil7Yygib251bnBpcGUiKSxlPT09biYmciYmITE9PT1yLmhhc1VucGlwZWQmJihyLmhhc1VucGlwZWQ9ITAsYygiY2xlYW51cCIpLHQucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixkKSx0LnJlbW92ZUxpc3RlbmVyKCJmaW5pc2giLG0pLHQucmVtb3ZlTGlzdGVuZXIoImRyYWluIix1KSx0LnJlbW92ZUxpc3RlbmVyKCJlcnJvciIscCksdC5yZW1vdmVMaXN0ZW5lcigidW5waXBlIixzKSxuLnJlbW92ZUxpc3RlbmVyKCJlbmQiLGwpLG4ucmVtb3ZlTGlzdGVuZXIoImVuZCIsZyksbi5yZW1vdmVMaXN0ZW5lcigiZGF0YSIsaCksZj0hMCwhaS5hd2FpdERyYWlufHx0Ll93cml0YWJsZVN0YXRlJiYhdC5fd3JpdGFibGVTdGF0ZS5uZWVkRHJhaW58fHUoKSl9ZnVuY3Rpb24gbCgpe2MoIm9uZW5kIiksdC5lbmQoKX1pLmVuZEVtaXR0ZWQ/ci5uZXh0VGljayhvKTpuLm9uY2UoImVuZCIsbyksdC5vbigidW5waXBlIixzKTt2YXIgdT1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10Ll9yZWFkYWJsZVN0YXRlO2MoInBpcGVPbkRyYWluIixlLmF3YWl0RHJhaW4pLGUuYXdhaXREcmFpbiYmZS5hd2FpdERyYWluLS0sMD09PWUuYXdhaXREcmFpbiYmYSh0LCJkYXRhIikmJihlLmZsb3dpbmc9ITAsUih0KSl9fShuKTt0Lm9uKCJkcmFpbiIsdSk7dmFyIGY9ITE7ZnVuY3Rpb24gaChlKXtjKCJvbmRhdGEiKTt2YXIgcj10LndyaXRlKGUpO2MoImRlc3Qud3JpdGUiLHIpLCExPT09ciYmKCgxPT09aS5waXBlc0NvdW50JiZpLnBpcGVzPT09dHx8aS5waXBlc0NvdW50PjEmJi0xIT09aihpLnBpcGVzLHQpKSYmIWYmJihjKCJmYWxzZSB3cml0ZSByZXNwb25zZSwgcGF1c2UiLGkuYXdhaXREcmFpbiksaS5hd2FpdERyYWluKyspLG4ucGF1c2UoKSl9ZnVuY3Rpb24gcChlKXtjKCJvbmVycm9yIixlKSxnKCksdC5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLHApLDA9PT1hKHQsImVycm9yIikmJncodCxlKX1mdW5jdGlvbiBkKCl7dC5yZW1vdmVMaXN0ZW5lcigiZmluaXNoIixtKSxnKCl9ZnVuY3Rpb24gbSgpe2MoIm9uZmluaXNoIiksdC5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLGQpLGcoKX1mdW5jdGlvbiBnKCl7YygidW5waXBlIiksbi51bnBpcGUodCl9cmV0dXJuIG4ub24oImRhdGEiLGgpLGZ1bmN0aW9uKHQsZSxyKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgdC5wcmVwZW5kTGlzdGVuZXIpcmV0dXJuIHQucHJlcGVuZExpc3RlbmVyKGUscik7dC5fZXZlbnRzJiZ0Ll9ldmVudHNbZV0/QXJyYXkuaXNBcnJheSh0Ll9ldmVudHNbZV0pP3QuX2V2ZW50c1tlXS51bnNoaWZ0KHIpOnQuX2V2ZW50c1tlXT1bcix0Ll9ldmVudHNbZV1dOnQub24oZSxyKX0odCwiZXJyb3IiLHApLHQub25jZSgiY2xvc2UiLGQpLHQub25jZSgiZmluaXNoIixtKSx0LmVtaXQoInBpcGUiLG4pLGkuZmxvd2luZ3x8KGMoInBpcGUgcmVzdW1lIiksbi5yZXN1bWUoKSksdH0sQS5wcm90b3R5cGUudW5waXBlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3JlYWRhYmxlU3RhdGUscj17aGFzVW5waXBlZDohMX07aWYoMD09PWUucGlwZXNDb3VudClyZXR1cm4gdGhpcztpZigxPT09ZS5waXBlc0NvdW50KXJldHVybiB0JiZ0IT09ZS5waXBlc3x8KHR8fCh0PWUucGlwZXMpLGUucGlwZXM9bnVsbCxlLnBpcGVzQ291bnQ9MCxlLmZsb3dpbmc9ITEsdCYmdC5lbWl0KCJ1bnBpcGUiLHRoaXMscikpLHRoaXM7aWYoIXQpe3ZhciBuPWUucGlwZXMsaT1lLnBpcGVzQ291bnQ7ZS5waXBlcz1udWxsLGUucGlwZXNDb3VudD0wLGUuZmxvd2luZz0hMTtmb3IodmFyIGE9MDthPGk7YSsrKW5bYV0uZW1pdCgidW5waXBlIix0aGlzLHtoYXNVbnBpcGVkOiExfSk7cmV0dXJuIHRoaXN9dmFyIG89aihlLnBpcGVzLHQpO3JldHVybi0xPT09b3x8KGUucGlwZXMuc3BsaWNlKG8sMSksZS5waXBlc0NvdW50LT0xLDE9PT1lLnBpcGVzQ291bnQmJihlLnBpcGVzPWUucGlwZXNbMF0pLHQuZW1pdCgidW5waXBlIix0aGlzLHIpKSx0aGlzfSxBLnByb3RvdHlwZS5vbj1mdW5jdGlvbih0LGUpe3ZhciBuPW8ucHJvdG90eXBlLm9uLmNhbGwodGhpcyx0LGUpLGk9dGhpcy5fcmVhZGFibGVTdGF0ZTtyZXR1cm4iZGF0YSI9PT10PyhpLnJlYWRhYmxlTGlzdGVuaW5nPXRoaXMubGlzdGVuZXJDb3VudCgicmVhZGFibGUiKT4wLCExIT09aS5mbG93aW5nJiZ0aGlzLnJlc3VtZSgpKToicmVhZGFibGUiPT09dCYmKGkuZW5kRW1pdHRlZHx8aS5yZWFkYWJsZUxpc3RlbmluZ3x8KGkucmVhZGFibGVMaXN0ZW5pbmc9aS5uZWVkUmVhZGFibGU9ITAsaS5mbG93aW5nPSExLGkuZW1pdHRlZFJlYWRhYmxlPSExLGMoIm9uIHJlYWRhYmxlIixpLmxlbmd0aCxpLnJlYWRpbmcpLGkubGVuZ3RoP0wodGhpcyk6aS5yZWFkaW5nfHxyLm5leHRUaWNrKHosdGhpcykpKSxufSxBLnByb3RvdHlwZS5hZGRMaXN0ZW5lcj1BLnByb3RvdHlwZS5vbixBLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lcj1mdW5jdGlvbih0LGUpe3ZhciBuPW8ucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyLmNhbGwodGhpcyx0LGUpO3JldHVybiJyZWFkYWJsZSI9PT10JiZyLm5leHRUaWNrKE8sdGhpcyksbn0sQS5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzPWZ1bmN0aW9uKHQpe3ZhciBlPW8ucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycy5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuInJlYWRhYmxlIiE9PXQmJnZvaWQgMCE9PXR8fHIubmV4dFRpY2soTyx0aGlzKSxlfSxBLnByb3RvdHlwZS5yZXN1bWU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9yZWFkYWJsZVN0YXRlO3JldHVybiB0LmZsb3dpbmd8fChjKCJyZXN1bWUiKSx0LmZsb3dpbmc9IXQucmVhZGFibGVMaXN0ZW5pbmcsZnVuY3Rpb24odCxlKXtlLnJlc3VtZVNjaGVkdWxlZHx8KGUucmVzdW1lU2NoZWR1bGVkPSEwLHIubmV4dFRpY2soRCx0LGUpKX0odGhpcyx0KSksdC5wYXVzZWQ9ITEsdGhpc30sQS5wcm90b3R5cGUucGF1c2U9ZnVuY3Rpb24oKXtyZXR1cm4gYygiY2FsbCBwYXVzZSBmbG93aW5nPSVqIix0aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmcpLCExIT09dGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nJiYoYygicGF1c2UiKSx0aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmc9ITEsdGhpcy5lbWl0KCJwYXVzZSIpKSx0aGlzLl9yZWFkYWJsZVN0YXRlLnBhdXNlZD0hMCx0aGlzfSxBLnByb3RvdHlwZS53cmFwPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMscj10aGlzLl9yZWFkYWJsZVN0YXRlLG49ITE7Zm9yKHZhciBpIGluIHQub24oImVuZCIsKGZ1bmN0aW9uKCl7aWYoYygid3JhcHBlZCBlbmQiKSxyLmRlY29kZXImJiFyLmVuZGVkKXt2YXIgdD1yLmRlY29kZXIuZW5kKCk7dCYmdC5sZW5ndGgmJmUucHVzaCh0KX1lLnB1c2gobnVsbCl9KSksdC5vbigiZGF0YSIsKGZ1bmN0aW9uKGkpeyhjKCJ3cmFwcGVkIGRhdGEiKSxyLmRlY29kZXImJihpPXIuZGVjb2Rlci53cml0ZShpKSksci5vYmplY3RNb2RlJiZudWxsPT1pKXx8KHIub2JqZWN0TW9kZXx8aSYmaS5sZW5ndGgpJiYoZS5wdXNoKGkpfHwobj0hMCx0LnBhdXNlKCkpKX0pKSx0KXZvaWQgMD09PXRoaXNbaV0mJiJmdW5jdGlvbiI9PXR5cGVvZiB0W2ldJiYodGhpc1tpXT1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdFtlXS5hcHBseSh0LGFyZ3VtZW50cyl9fShpKSk7Zm9yKHZhciBhPTA7YTxULmxlbmd0aDthKyspdC5vbihUW2FdLHRoaXMuZW1pdC5iaW5kKHRoaXMsVFthXSkpO3JldHVybiB0aGlzLl9yZWFkPWZ1bmN0aW9uKGUpe2MoIndyYXBwZWQgX3JlYWQiLGUpLG4mJihuPSExLHQucmVzdW1lKCkpfSx0aGlzfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoQS5wcm90b3R5cGVbU3ltYm9sLmFzeW5jSXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMD09PWgmJihoPXQoIi4vaW50ZXJuYWwvc3RyZWFtcy9hc3luY19pdGVyYXRvciIpKSxoKHRoaXMpfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEEucHJvdG90eXBlLCJyZWFkYWJsZUhpZ2hXYXRlck1hcmsiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlLmhpZ2hXYXRlck1hcmt9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEEucHJvdG90eXBlLCJyZWFkYWJsZUJ1ZmZlciIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JlYWRhYmxlU3RhdGUmJnRoaXMuX3JlYWRhYmxlU3RhdGUuYnVmZmVyfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLnByb3RvdHlwZSwicmVhZGFibGVGbG93aW5nIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5fcmVhZGFibGVTdGF0ZSYmKHRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZz10KX19KSxBLl9mcm9tTGlzdD1GLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLnByb3RvdHlwZSwicmVhZGFibGVMZW5ndGgiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlLmxlbmd0aH19KSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoQS5mcm9tPWZ1bmN0aW9uKGUscil7cmV0dXJuIHZvaWQgMD09PXAmJihwPXQoIi4vaW50ZXJuYWwvc3RyZWFtcy9mcm9tIikpLHAoQSxlLHIpfSl9KS5jYWxsKHRoaXMpfSkuY2FsbCh0aGlzLHQoIl9wcm9jZXNzIiksInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSl9LHsiLi4vZXJyb3JzIjoyODcsIi4vX3N0cmVhbV9kdXBsZXgiOjI4OCwiLi9pbnRlcm5hbC9zdHJlYW1zL2FzeW5jX2l0ZXJhdG9yIjoyOTMsIi4vaW50ZXJuYWwvc3RyZWFtcy9idWZmZXJfbGlzdCI6Mjk0LCIuL2ludGVybmFsL3N0cmVhbXMvZGVzdHJveSI6Mjk1LCIuL2ludGVybmFsL3N0cmVhbXMvZnJvbSI6Mjk3LCIuL2ludGVybmFsL3N0cmVhbXMvc3RhdGUiOjI5OSwiLi9pbnRlcm5hbC9zdHJlYW1zL3N0cmVhbSI6MzAwLF9wcm9jZXNzOjI3OCxidWZmZXI6ODUsZXZlbnRzOjg0LGluaGVyaXRzOjIzMSwic3RyaW5nX2RlY29kZXIvIjozMDEsdXRpbDo4M31dLDI5MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dTt2YXIgbj10KCIuLi9lcnJvcnMiKS5jb2RlcyxpPW4uRVJSX01FVEhPRF9OT1RfSU1QTEVNRU5URUQsYT1uLkVSUl9NVUxUSVBMRV9DQUxMQkFDSyxvPW4uRVJSX1RSQU5TRk9STV9BTFJFQURZX1RSQU5TRk9STUlORyxzPW4uRVJSX1RSQU5TRk9STV9XSVRIX0xFTkdUSF8wLGw9dCgiLi9fc3RyZWFtX2R1cGxleCIpO2Z1bmN0aW9uIGModCxlKXt2YXIgcj10aGlzLl90cmFuc2Zvcm1TdGF0ZTtyLnRyYW5zZm9ybWluZz0hMTt2YXIgbj1yLndyaXRlY2I7aWYobnVsbD09PW4pcmV0dXJuIHRoaXMuZW1pdCgiZXJyb3IiLG5ldyBhKTtyLndyaXRlY2h1bms9bnVsbCxyLndyaXRlY2I9bnVsbCxudWxsIT1lJiZ0aGlzLnB1c2goZSksbih0KTt2YXIgaT10aGlzLl9yZWFkYWJsZVN0YXRlO2kucmVhZGluZz0hMSwoaS5uZWVkUmVhZGFibGV8fGkubGVuZ3RoPGkuaGlnaFdhdGVyTWFyaykmJnRoaXMuX3JlYWQoaS5oaWdoV2F0ZXJNYXJrKX1mdW5jdGlvbiB1KHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIHUpKXJldHVybiBuZXcgdSh0KTtsLmNhbGwodGhpcyx0KSx0aGlzLl90cmFuc2Zvcm1TdGF0ZT17YWZ0ZXJUcmFuc2Zvcm06Yy5iaW5kKHRoaXMpLG5lZWRUcmFuc2Zvcm06ITEsdHJhbnNmb3JtaW5nOiExLHdyaXRlY2I6bnVsbCx3cml0ZWNodW5rOm51bGwsd3JpdGVlbmNvZGluZzpudWxsfSx0aGlzLl9yZWFkYWJsZVN0YXRlLm5lZWRSZWFkYWJsZT0hMCx0aGlzLl9yZWFkYWJsZVN0YXRlLnN5bmM9ITEsdCYmKCJmdW5jdGlvbiI9PXR5cGVvZiB0LnRyYW5zZm9ybSYmKHRoaXMuX3RyYW5zZm9ybT10LnRyYW5zZm9ybSksImZ1bmN0aW9uIj09dHlwZW9mIHQuZmx1c2gmJih0aGlzLl9mbHVzaD10LmZsdXNoKSksdGhpcy5vbigicHJlZmluaXNoIixmKX1mdW5jdGlvbiBmKCl7dmFyIHQ9dGhpczsiZnVuY3Rpb24iIT10eXBlb2YgdGhpcy5fZmx1c2h8fHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkP2godGhpcyxudWxsLG51bGwpOnRoaXMuX2ZsdXNoKChmdW5jdGlvbihlLHIpe2godCxlLHIpfSkpfWZ1bmN0aW9uIGgodCxlLHIpe2lmKGUpcmV0dXJuIHQuZW1pdCgiZXJyb3IiLGUpO2lmKG51bGwhPXImJnQucHVzaChyKSx0Ll93cml0YWJsZVN0YXRlLmxlbmd0aCl0aHJvdyBuZXcgcztpZih0Ll90cmFuc2Zvcm1TdGF0ZS50cmFuc2Zvcm1pbmcpdGhyb3cgbmV3IG87cmV0dXJuIHQucHVzaChudWxsKX10KCJpbmhlcml0cyIpKHUsbCksdS5wcm90b3R5cGUucHVzaD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl90cmFuc2Zvcm1TdGF0ZS5uZWVkVHJhbnNmb3JtPSExLGwucHJvdG90eXBlLnB1c2guY2FsbCh0aGlzLHQsZSl9LHUucHJvdG90eXBlLl90cmFuc2Zvcm09ZnVuY3Rpb24odCxlLHIpe3IobmV3IGkoIl90cmFuc2Zvcm0oKSIpKX0sdS5wcm90b3R5cGUuX3dyaXRlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLl90cmFuc2Zvcm1TdGF0ZTtpZihuLndyaXRlY2I9cixuLndyaXRlY2h1bms9dCxuLndyaXRlZW5jb2Rpbmc9ZSwhbi50cmFuc2Zvcm1pbmcpe3ZhciBpPXRoaXMuX3JlYWRhYmxlU3RhdGU7KG4ubmVlZFRyYW5zZm9ybXx8aS5uZWVkUmVhZGFibGV8fGkubGVuZ3RoPGkuaGlnaFdhdGVyTWFyaykmJnRoaXMuX3JlYWQoaS5oaWdoV2F0ZXJNYXJrKX19LHUucHJvdG90eXBlLl9yZWFkPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3RyYW5zZm9ybVN0YXRlO251bGw9PT1lLndyaXRlY2h1bmt8fGUudHJhbnNmb3JtaW5nP2UubmVlZFRyYW5zZm9ybT0hMDooZS50cmFuc2Zvcm1pbmc9ITAsdGhpcy5fdHJhbnNmb3JtKGUud3JpdGVjaHVuayxlLndyaXRlZW5jb2RpbmcsZS5hZnRlclRyYW5zZm9ybSkpfSx1LnByb3RvdHlwZS5fZGVzdHJveT1mdW5jdGlvbih0LGUpe2wucHJvdG90eXBlLl9kZXN0cm95LmNhbGwodGhpcyx0LChmdW5jdGlvbih0KXtlKHQpfSkpfX0seyIuLi9lcnJvcnMiOjI4NywiLi9fc3RyZWFtX2R1cGxleCI6Mjg4LGluaGVyaXRzOjIzMX1dLDI5MjpbZnVuY3Rpb24odCxlLHIpeyhmdW5jdGlvbihyLG4peyhmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBpKHQpe3ZhciBlPXRoaXM7dGhpcy5uZXh0PW51bGwsdGhpcy5lbnRyeT1udWxsLHRoaXMuZmluaXNoPWZ1bmN0aW9uKCl7IWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10LmVudHJ5O3QuZW50cnk9bnVsbDtmb3IoO247KXt2YXIgaT1uLmNhbGxiYWNrO2UucGVuZGluZ2NiLS0saShyKSxuPW4ubmV4dH1lLmNvcmtlZFJlcXVlc3RzRnJlZS5uZXh0PXR9KGUsdCl9fXZhciBhO2UuZXhwb3J0cz1BLEEuV3JpdGFibGVTdGF0ZT1rO3ZhciBvPXtkZXByZWNhdGU6dCgidXRpbC1kZXByZWNhdGUiKX0scz10KCIuL2ludGVybmFsL3N0cmVhbXMvc3RyZWFtIiksbD10KCJidWZmZXIiKS5CdWZmZXIsYz1uLlVpbnQ4QXJyYXl8fGZ1bmN0aW9uKCl7fTt2YXIgdSxmPXQoIi4vaW50ZXJuYWwvc3RyZWFtcy9kZXN0cm95IiksaD10KCIuL2ludGVybmFsL3N0cmVhbXMvc3RhdGUiKS5nZXRIaWdoV2F0ZXJNYXJrLHA9dCgiLi4vZXJyb3JzIikuY29kZXMsZD1wLkVSUl9JTlZBTElEX0FSR19UWVBFLG09cC5FUlJfTUVUSE9EX05PVF9JTVBMRU1FTlRFRCxnPXAuRVJSX01VTFRJUExFX0NBTExCQUNLLHY9cC5FUlJfU1RSRUFNX0NBTk5PVF9QSVBFLHk9cC5FUlJfU1RSRUFNX0RFU1RST1lFRCx4PXAuRVJSX1NUUkVBTV9OVUxMX1ZBTFVFUyxiPXAuRVJSX1NUUkVBTV9XUklURV9BRlRFUl9FTkQsXz1wLkVSUl9VTktOT1dOX0VOQ09ESU5HLHc9Zi5lcnJvck9yRGVzdHJveTtmdW5jdGlvbiBUKCl7fWZ1bmN0aW9uIGsoZSxuLG8pe2E9YXx8dCgiLi9fc3RyZWFtX2R1cGxleCIpLGU9ZXx8e30sImJvb2xlYW4iIT10eXBlb2YgbyYmKG89biBpbnN0YW5jZW9mIGEpLHRoaXMub2JqZWN0TW9kZT0hIWUub2JqZWN0TW9kZSxvJiYodGhpcy5vYmplY3RNb2RlPXRoaXMub2JqZWN0TW9kZXx8ISFlLndyaXRhYmxlT2JqZWN0TW9kZSksdGhpcy5oaWdoV2F0ZXJNYXJrPWgodGhpcyxlLCJ3cml0YWJsZUhpZ2hXYXRlck1hcmsiLG8pLHRoaXMuZmluYWxDYWxsZWQ9ITEsdGhpcy5uZWVkRHJhaW49ITEsdGhpcy5lbmRpbmc9ITEsdGhpcy5lbmRlZD0hMSx0aGlzLmZpbmlzaGVkPSExLHRoaXMuZGVzdHJveWVkPSExO3ZhciBzPSExPT09ZS5kZWNvZGVTdHJpbmdzO3RoaXMuZGVjb2RlU3RyaW5ncz0hcyx0aGlzLmRlZmF1bHRFbmNvZGluZz1lLmRlZmF1bHRFbmNvZGluZ3x8InV0ZjgiLHRoaXMubGVuZ3RoPTAsdGhpcy53cml0aW5nPSExLHRoaXMuY29ya2VkPTAsdGhpcy5zeW5jPSEwLHRoaXMuYnVmZmVyUHJvY2Vzc2luZz0hMSx0aGlzLm9ud3JpdGU9ZnVuY3Rpb24odCl7IWZ1bmN0aW9uKHQsZSl7dmFyIG49dC5fd3JpdGFibGVTdGF0ZSxpPW4uc3luYyxhPW4ud3JpdGVjYjtpZigiZnVuY3Rpb24iIT10eXBlb2YgYSl0aHJvdyBuZXcgZztpZihmdW5jdGlvbih0KXt0LndyaXRpbmc9ITEsdC53cml0ZWNiPW51bGwsdC5sZW5ndGgtPXQud3JpdGVsZW4sdC53cml0ZWxlbj0wfShuKSxlKSFmdW5jdGlvbih0LGUsbixpLGEpey0tZS5wZW5kaW5nY2Isbj8oci5uZXh0VGljayhhLGkpLHIubmV4dFRpY2soUCx0LGUpLHQuX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkPSEwLHcodCxpKSk6KGEoaSksdC5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITAsdyh0LGkpLFAodCxlKSl9KHQsbixpLGUsYSk7ZWxzZXt2YXIgbz1MKG4pfHx0LmRlc3Ryb3llZDtvfHxuLmNvcmtlZHx8bi5idWZmZXJQcm9jZXNzaW5nfHwhbi5idWZmZXJlZFJlcXVlc3R8fEUodCxuKSxpP3IubmV4dFRpY2soUyx0LG4sbyxhKTpTKHQsbixvLGEpfX0obix0KX0sdGhpcy53cml0ZWNiPW51bGwsdGhpcy53cml0ZWxlbj0wLHRoaXMuYnVmZmVyZWRSZXF1ZXN0PW51bGwsdGhpcy5sYXN0QnVmZmVyZWRSZXF1ZXN0PW51bGwsdGhpcy5wZW5kaW5nY2I9MCx0aGlzLnByZWZpbmlzaGVkPSExLHRoaXMuZXJyb3JFbWl0dGVkPSExLHRoaXMuZW1pdENsb3NlPSExIT09ZS5lbWl0Q2xvc2UsdGhpcy5hdXRvRGVzdHJveT0hIWUuYXV0b0Rlc3Ryb3ksdGhpcy5idWZmZXJlZFJlcXVlc3RDb3VudD0wLHRoaXMuY29ya2VkUmVxdWVzdHNGcmVlPW5ldyBpKHRoaXMpfWZ1bmN0aW9uIEEoZSl7dmFyIHI9dGhpcyBpbnN0YW5jZW9mKGE9YXx8dCgiLi9fc3RyZWFtX2R1cGxleCIpKTtpZighciYmIXUuY2FsbChBLHRoaXMpKXJldHVybiBuZXcgQShlKTt0aGlzLl93cml0YWJsZVN0YXRlPW5ldyBrKGUsdGhpcyxyKSx0aGlzLndyaXRhYmxlPSEwLGUmJigiZnVuY3Rpb24iPT10eXBlb2YgZS53cml0ZSYmKHRoaXMuX3dyaXRlPWUud3JpdGUpLCJmdW5jdGlvbiI9PXR5cGVvZiBlLndyaXRldiYmKHRoaXMuX3dyaXRldj1lLndyaXRldiksImZ1bmN0aW9uIj09dHlwZW9mIGUuZGVzdHJveSYmKHRoaXMuX2Rlc3Ryb3k9ZS5kZXN0cm95KSwiZnVuY3Rpb24iPT10eXBlb2YgZS5maW5hbCYmKHRoaXMuX2ZpbmFsPWUuZmluYWwpKSxzLmNhbGwodGhpcyl9ZnVuY3Rpb24gTSh0LGUscixuLGksYSxvKXtlLndyaXRlbGVuPW4sZS53cml0ZWNiPW8sZS53cml0aW5nPSEwLGUuc3luYz0hMCxlLmRlc3Ryb3llZD9lLm9ud3JpdGUobmV3IHkoIndyaXRlIikpOnI/dC5fd3JpdGV2KGksZS5vbndyaXRlKTp0Ll93cml0ZShpLGEsZS5vbndyaXRlKSxlLnN5bmM9ITF9ZnVuY3Rpb24gUyh0LGUscixuKXtyfHxmdW5jdGlvbih0LGUpezA9PT1lLmxlbmd0aCYmZS5uZWVkRHJhaW4mJihlLm5lZWREcmFpbj0hMSx0LmVtaXQoImRyYWluIikpfSh0LGUpLGUucGVuZGluZ2NiLS0sbigpLFAodCxlKX1mdW5jdGlvbiBFKHQsZSl7ZS5idWZmZXJQcm9jZXNzaW5nPSEwO3ZhciByPWUuYnVmZmVyZWRSZXF1ZXN0O2lmKHQuX3dyaXRldiYmciYmci5uZXh0KXt2YXIgbj1lLmJ1ZmZlcmVkUmVxdWVzdENvdW50LGE9bmV3IEFycmF5KG4pLG89ZS5jb3JrZWRSZXF1ZXN0c0ZyZWU7by5lbnRyeT1yO2Zvcih2YXIgcz0wLGw9ITA7cjspYVtzXT1yLHIuaXNCdWZ8fChsPSExKSxyPXIubmV4dCxzKz0xO2EuYWxsQnVmZmVycz1sLE0odCxlLCEwLGUubGVuZ3RoLGEsIiIsby5maW5pc2gpLGUucGVuZGluZ2NiKyssZS5sYXN0QnVmZmVyZWRSZXF1ZXN0PW51bGwsby5uZXh0PyhlLmNvcmtlZFJlcXVlc3RzRnJlZT1vLm5leHQsby5uZXh0PW51bGwpOmUuY29ya2VkUmVxdWVzdHNGcmVlPW5ldyBpKGUpLGUuYnVmZmVyZWRSZXF1ZXN0Q291bnQ9MH1lbHNle2Zvcig7cjspe3ZhciBjPXIuY2h1bmssdT1yLmVuY29kaW5nLGY9ci5jYWxsYmFjaztpZihNKHQsZSwhMSxlLm9iamVjdE1vZGU/MTpjLmxlbmd0aCxjLHUsZikscj1yLm5leHQsZS5idWZmZXJlZFJlcXVlc3RDb3VudC0tLGUud3JpdGluZylicmVha31udWxsPT09ciYmKGUubGFzdEJ1ZmZlcmVkUmVxdWVzdD1udWxsKX1lLmJ1ZmZlcmVkUmVxdWVzdD1yLGUuYnVmZmVyUHJvY2Vzc2luZz0hMX1mdW5jdGlvbiBMKHQpe3JldHVybiB0LmVuZGluZyYmMD09PXQubGVuZ3RoJiZudWxsPT09dC5idWZmZXJlZFJlcXVlc3QmJiF0LmZpbmlzaGVkJiYhdC53cml0aW5nfWZ1bmN0aW9uIEModCxlKXt0Ll9maW5hbCgoZnVuY3Rpb24ocil7ZS5wZW5kaW5nY2ItLSxyJiZ3KHQsciksZS5wcmVmaW5pc2hlZD0hMCx0LmVtaXQoInByZWZpbmlzaCIpLFAodCxlKX0pKX1mdW5jdGlvbiBQKHQsZSl7dmFyIG49TChlKTtpZihuJiYoZnVuY3Rpb24odCxlKXtlLnByZWZpbmlzaGVkfHxlLmZpbmFsQ2FsbGVkfHwoImZ1bmN0aW9uIiE9dHlwZW9mIHQuX2ZpbmFsfHxlLmRlc3Ryb3llZD8oZS5wcmVmaW5pc2hlZD0hMCx0LmVtaXQoInByZWZpbmlzaCIpKTooZS5wZW5kaW5nY2IrKyxlLmZpbmFsQ2FsbGVkPSEwLHIubmV4dFRpY2soQyx0LGUpKSl9KHQsZSksMD09PWUucGVuZGluZ2NiJiYoZS5maW5pc2hlZD0hMCx0LmVtaXQoImZpbmlzaCIpLGUuYXV0b0Rlc3Ryb3kpKSl7dmFyIGk9dC5fcmVhZGFibGVTdGF0ZTsoIWl8fGkuYXV0b0Rlc3Ryb3kmJmkuZW5kRW1pdHRlZCkmJnQuZGVzdHJveSgpfXJldHVybiBufXQoImluaGVyaXRzIikoQSxzKSxrLnByb3RvdHlwZS5nZXRCdWZmZXI9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5idWZmZXJlZFJlcXVlc3QsZT1bXTt0OyllLnB1c2godCksdD10Lm5leHQ7cmV0dXJuIGV9LGZ1bmN0aW9uKCl7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShrLnByb3RvdHlwZSwiYnVmZmVyIix7Z2V0Om8uZGVwcmVjYXRlKChmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldEJ1ZmZlcigpfSksIl93cml0YWJsZVN0YXRlLmJ1ZmZlciBpcyBkZXByZWNhdGVkLiBVc2UgX3dyaXRhYmxlU3RhdGUuZ2V0QnVmZmVyIGluc3RlYWQuIiwiREVQMDAwMyIpfSl9Y2F0Y2godCl7fX0oKSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaGFzSW5zdGFuY2UmJiJmdW5jdGlvbiI9PXR5cGVvZiBGdW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXT8odT1GdW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSxTeW1ib2wuaGFzSW5zdGFuY2Use3ZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiEhdS5jYWxsKHRoaXMsdCl8fHRoaXM9PT1BJiYodCYmdC5fd3JpdGFibGVTdGF0ZSBpbnN0YW5jZW9mIGspfX0pKTp1PWZ1bmN0aW9uKHQpe3JldHVybiB0IGluc3RhbmNlb2YgdGhpc30sQS5wcm90b3R5cGUucGlwZT1mdW5jdGlvbigpe3codGhpcyxuZXcgdil9LEEucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaSxhPXRoaXMuX3dyaXRhYmxlU3RhdGUsbz0hMSxzPSFhLm9iamVjdE1vZGUmJihpPXQsbC5pc0J1ZmZlcihpKXx8aSBpbnN0YW5jZW9mIGMpO3JldHVybiBzJiYhbC5pc0J1ZmZlcih0KSYmKHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGwuZnJvbSh0KX0odCkpLCJmdW5jdGlvbiI9PXR5cGVvZiBlJiYobj1lLGU9bnVsbCkscz9lPSJidWZmZXIiOmV8fChlPWEuZGVmYXVsdEVuY29kaW5nKSwiZnVuY3Rpb24iIT10eXBlb2YgbiYmKG49VCksYS5lbmRpbmc/ZnVuY3Rpb24odCxlKXt2YXIgbj1uZXcgYjt3KHQsbiksci5uZXh0VGljayhlLG4pfSh0aGlzLG4pOihzfHxmdW5jdGlvbih0LGUsbixpKXt2YXIgYTtyZXR1cm4gbnVsbD09PW4/YT1uZXcgeDoic3RyaW5nIj09dHlwZW9mIG58fGUub2JqZWN0TW9kZXx8KGE9bmV3IGQoImNodW5rIixbInN0cmluZyIsIkJ1ZmZlciJdLG4pKSwhYXx8KHcodCxhKSxyLm5leHRUaWNrKGksYSksITEpfSh0aGlzLGEsdCxuKSkmJihhLnBlbmRpbmdjYisrLG89ZnVuY3Rpb24odCxlLHIsbixpLGEpe2lmKCFyKXt2YXIgbz1mdW5jdGlvbih0LGUscil7dC5vYmplY3RNb2RlfHwhMT09PXQuZGVjb2RlU3RyaW5nc3x8InN0cmluZyIhPXR5cGVvZiBlfHwoZT1sLmZyb20oZSxyKSk7cmV0dXJuIGV9KGUsbixpKTtuIT09byYmKHI9ITAsaT0iYnVmZmVyIixuPW8pfXZhciBzPWUub2JqZWN0TW9kZT8xOm4ubGVuZ3RoO2UubGVuZ3RoKz1zO3ZhciBjPWUubGVuZ3RoPGUuaGlnaFdhdGVyTWFyaztjfHwoZS5uZWVkRHJhaW49ITApO2lmKGUud3JpdGluZ3x8ZS5jb3JrZWQpe3ZhciB1PWUubGFzdEJ1ZmZlcmVkUmVxdWVzdDtlLmxhc3RCdWZmZXJlZFJlcXVlc3Q9e2NodW5rOm4sZW5jb2Rpbmc6aSxpc0J1ZjpyLGNhbGxiYWNrOmEsbmV4dDpudWxsfSx1P3UubmV4dD1lLmxhc3RCdWZmZXJlZFJlcXVlc3Q6ZS5idWZmZXJlZFJlcXVlc3Q9ZS5sYXN0QnVmZmVyZWRSZXF1ZXN0LGUuYnVmZmVyZWRSZXF1ZXN0Q291bnQrPTF9ZWxzZSBNKHQsZSwhMSxzLG4saSxhKTtyZXR1cm4gY30odGhpcyxhLHMsdCxlLG4pKSxvfSxBLnByb3RvdHlwZS5jb3JrPWZ1bmN0aW9uKCl7dGhpcy5fd3JpdGFibGVTdGF0ZS5jb3JrZWQrK30sQS5wcm90b3R5cGUudW5jb3JrPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fd3JpdGFibGVTdGF0ZTt0LmNvcmtlZCYmKHQuY29ya2VkLS0sdC53cml0aW5nfHx0LmNvcmtlZHx8dC5idWZmZXJQcm9jZXNzaW5nfHwhdC5idWZmZXJlZFJlcXVlc3R8fEUodGhpcyx0KSl9LEEucHJvdG90eXBlLnNldERlZmF1bHRFbmNvZGluZz1mdW5jdGlvbih0KXtpZigic3RyaW5nIj09dHlwZW9mIHQmJih0PXQudG9Mb3dlckNhc2UoKSksIShbImhleCIsInV0ZjgiLCJ1dGYtOCIsImFzY2lpIiwiYmluYXJ5IiwiYmFzZTY0IiwidWNzMiIsInVjcy0yIiwidXRmMTZsZSIsInV0Zi0xNmxlIiwicmF3Il0uaW5kZXhPZigodCsiIikudG9Mb3dlckNhc2UoKSk+LTEpKXRocm93IG5ldyBfKHQpO3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlLmRlZmF1bHRFbmNvZGluZz10LHRoaXN9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLnByb3RvdHlwZSwid3JpdGFibGVCdWZmZXIiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlJiZ0aGlzLl93cml0YWJsZVN0YXRlLmdldEJ1ZmZlcigpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLnByb3RvdHlwZSwid3JpdGFibGVIaWdoV2F0ZXJNYXJrIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5oaWdoV2F0ZXJNYXJrfX0pLEEucHJvdG90eXBlLl93cml0ZT1mdW5jdGlvbih0LGUscil7cihuZXcgbSgiX3dyaXRlKCkiKSl9LEEucHJvdG90eXBlLl93cml0ZXY9bnVsbCxBLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24odCxlLG4pe3ZhciBpPXRoaXMuX3dyaXRhYmxlU3RhdGU7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQ/KG49dCx0PW51bGwsZT1udWxsKToiZnVuY3Rpb24iPT10eXBlb2YgZSYmKG49ZSxlPW51bGwpLG51bGwhPXQmJnRoaXMud3JpdGUodCxlKSxpLmNvcmtlZCYmKGkuY29ya2VkPTEsdGhpcy51bmNvcmsoKSksaS5lbmRpbmd8fGZ1bmN0aW9uKHQsZSxuKXtlLmVuZGluZz0hMCxQKHQsZSksbiYmKGUuZmluaXNoZWQ/ci5uZXh0VGljayhuKTp0Lm9uY2UoImZpbmlzaCIsbikpO2UuZW5kZWQ9ITAsdC53cml0YWJsZT0hMX0odGhpcyxpLG4pLHRoaXN9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLnByb3RvdHlwZSwid3JpdGFibGVMZW5ndGgiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlLmxlbmd0aH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQS5wcm90b3R5cGUsImRlc3Ryb3llZCIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuX3dyaXRhYmxlU3RhdGUmJnRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5fd3JpdGFibGVTdGF0ZSYmKHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkPXQpfX0pLEEucHJvdG90eXBlLmRlc3Ryb3k9Zi5kZXN0cm95LEEucHJvdG90eXBlLl91bmRlc3Ryb3k9Zi51bmRlc3Ryb3ksQS5wcm90b3R5cGUuX2Rlc3Ryb3k9ZnVuY3Rpb24odCxlKXtlKHQpfX0pLmNhbGwodGhpcyl9KS5jYWxsKHRoaXMsdCgiX3Byb2Nlc3MiKSwidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9KX0seyIuLi9lcnJvcnMiOjI4NywiLi9fc3RyZWFtX2R1cGxleCI6Mjg4LCIuL2ludGVybmFsL3N0cmVhbXMvZGVzdHJveSI6Mjk1LCIuL2ludGVybmFsL3N0cmVhbXMvc3RhdGUiOjI5OSwiLi9pbnRlcm5hbC9zdHJlYW1zL3N0cmVhbSI6MzAwLF9wcm9jZXNzOjI3OCxidWZmZXI6ODUsaW5oZXJpdHM6MjMxLCJ1dGlsLWRlcHJlY2F0ZSI6MzMxfV0sMjkzOltmdW5jdGlvbih0LGUscil7KGZ1bmN0aW9uKHIpeyhmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgbjtmdW5jdGlvbiBpKHQsZSxyKXtyZXR1cm4gZSBpbiB0P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOnIsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTp0W2VdPXIsdH12YXIgYT10KCIuL2VuZC1vZi1zdHJlYW0iKSxvPVN5bWJvbCgibGFzdFJlc29sdmUiKSxzPVN5bWJvbCgibGFzdFJlamVjdCIpLGw9U3ltYm9sKCJlcnJvciIpLGM9U3ltYm9sKCJlbmRlZCIpLHU9U3ltYm9sKCJsYXN0UHJvbWlzZSIpLGY9U3ltYm9sKCJoYW5kbGVQcm9taXNlIiksaD1TeW1ib2woInN0cmVhbSIpO2Z1bmN0aW9uIHAodCxlKXtyZXR1cm57dmFsdWU6dCxkb25lOmV9fWZ1bmN0aW9uIGQodCl7dmFyIGU9dFtvXTtpZihudWxsIT09ZSl7dmFyIHI9dFtoXS5yZWFkKCk7bnVsbCE9PXImJih0W3VdPW51bGwsdFtvXT1udWxsLHRbc109bnVsbCxlKHAociwhMSkpKX19ZnVuY3Rpb24gbSh0KXtyLm5leHRUaWNrKGQsdCl9dmFyIGc9T2JqZWN0LmdldFByb3RvdHlwZU9mKChmdW5jdGlvbigpe30pKSx2PU9iamVjdC5zZXRQcm90b3R5cGVPZigoaShuPXtnZXQgc3RyZWFtKCl7cmV0dXJuIHRoaXNbaF19LG5leHQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpc1tsXTtpZihudWxsIT09ZSlyZXR1cm4gUHJvbWlzZS5yZWplY3QoZSk7aWYodGhpc1tjXSlyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHAodm9pZCAwLCEwKSk7aWYodGhpc1toXS5kZXN0cm95ZWQpcmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihlLG4pe3IubmV4dFRpY2soKGZ1bmN0aW9uKCl7dFtsXT9uKHRbbF0pOmUocCh2b2lkIDAsITApKX0pKX0pKTt2YXIgbixpPXRoaXNbdV07aWYoaSluPW5ldyBQcm9taXNlKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHIsbil7dC50aGVuKChmdW5jdGlvbigpe2VbY10/cihwKHZvaWQgMCwhMCkpOmVbZl0ocixuKX0pLG4pfX0oaSx0aGlzKSk7ZWxzZXt2YXIgYT10aGlzW2hdLnJlYWQoKTtpZihudWxsIT09YSlyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHAoYSwhMSkpO249bmV3IFByb21pc2UodGhpc1tmXSl9cmV0dXJuIHRoaXNbdV09bixufX0sU3ltYm9sLmFzeW5jSXRlcmF0b3IsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksaShuLCJyZXR1cm4iLChmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihlLHIpe3RbaF0uZGVzdHJveShudWxsLChmdW5jdGlvbih0KXt0P3IodCk6ZShwKHZvaWQgMCwhMCkpfSkpfSkpfSkpLG4pLGcpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZSxyPU9iamVjdC5jcmVhdGUodiwoaShlPXt9LGgse3ZhbHVlOnQsd3JpdGFibGU6ITB9KSxpKGUsbyx7dmFsdWU6bnVsbCx3cml0YWJsZTohMH0pLGkoZSxzLHt2YWx1ZTpudWxsLHdyaXRhYmxlOiEwfSksaShlLGwse3ZhbHVlOm51bGwsd3JpdGFibGU6ITB9KSxpKGUsYyx7dmFsdWU6dC5fcmVhZGFibGVTdGF0ZS5lbmRFbWl0dGVkLHdyaXRhYmxlOiEwfSksaShlLGYse3ZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIG49cltoXS5yZWFkKCk7bj8oclt1XT1udWxsLHJbb109bnVsbCxyW3NdPW51bGwsdChwKG4sITEpKSk6KHJbb109dCxyW3NdPWUpfSx3cml0YWJsZTohMH0pLGUpKTtyZXR1cm4gclt1XT1udWxsLGEodCwoZnVuY3Rpb24odCl7aWYodCYmIkVSUl9TVFJFQU1fUFJFTUFUVVJFX0NMT1NFIiE9PXQuY29kZSl7dmFyIGU9cltzXTtyZXR1cm4gbnVsbCE9PWUmJihyW3VdPW51bGwscltvXT1udWxsLHJbc109bnVsbCxlKHQpKSx2b2lkKHJbbF09dCl9dmFyIG49cltvXTtudWxsIT09biYmKHJbdV09bnVsbCxyW29dPW51bGwscltzXT1udWxsLG4ocCh2b2lkIDAsITApKSkscltjXT0hMH0pKSx0Lm9uKCJyZWFkYWJsZSIsbS5iaW5kKG51bGwscikpLHJ9fSkuY2FsbCh0aGlzKX0pLmNhbGwodGhpcyx0KCJfcHJvY2VzcyIpKX0seyIuL2VuZC1vZi1zdHJlYW0iOjI5NixfcHJvY2VzczoyNzh9XSwyOTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3ZhciByPU9iamVjdC5rZXlzKHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7ZSYmKG49bi5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSksci5wdXNoLmFwcGx5KHIsbil9cmV0dXJuIHJ9ZnVuY3Rpb24gaSh0LGUscil7cmV0dXJuIGUgaW4gdD9PYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpyLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6dFtlXT1yLHR9ZnVuY3Rpb24gYSh0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbj1lW3JdO24uZW51bWVyYWJsZT1uLmVudW1lcmFibGV8fCExLG4uY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBuJiYobi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsbi5rZXksbil9fXZhciBvPXQoImJ1ZmZlciIpLkJ1ZmZlcixzPXQoInV0aWwiKS5pbnNwZWN0LGw9cyYmcy5jdXN0b218fCJpbnNwZWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7IWZ1bmN0aW9uKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsdCksdGhpcy5oZWFkPW51bGwsdGhpcy50YWlsPW51bGwsdGhpcy5sZW5ndGg9MH12YXIgZSxyLGM7cmV0dXJuIGU9dCwocj1be2tleToicHVzaCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9e2RhdGE6dCxuZXh0Om51bGx9O3RoaXMubGVuZ3RoPjA/dGhpcy50YWlsLm5leHQ9ZTp0aGlzLmhlYWQ9ZSx0aGlzLnRhaWw9ZSwrK3RoaXMubGVuZ3RofX0se2tleToidW5zaGlmdCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9e2RhdGE6dCxuZXh0OnRoaXMuaGVhZH07MD09PXRoaXMubGVuZ3RoJiYodGhpcy50YWlsPWUpLHRoaXMuaGVhZD1lLCsrdGhpcy5sZW5ndGh9fSx7a2V5OiJzaGlmdCIsdmFsdWU6ZnVuY3Rpb24oKXtpZigwIT09dGhpcy5sZW5ndGgpe3ZhciB0PXRoaXMuaGVhZC5kYXRhO3JldHVybiAxPT09dGhpcy5sZW5ndGg/dGhpcy5oZWFkPXRoaXMudGFpbD1udWxsOnRoaXMuaGVhZD10aGlzLmhlYWQubmV4dCwtLXRoaXMubGVuZ3RoLHR9fX0se2tleToiY2xlYXIiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5oZWFkPXRoaXMudGFpbD1udWxsLHRoaXMubGVuZ3RoPTB9fSx7a2V5OiJqb2luIix2YWx1ZTpmdW5jdGlvbih0KXtpZigwPT09dGhpcy5sZW5ndGgpcmV0dXJuIiI7Zm9yKHZhciBlPXRoaXMuaGVhZCxyPSIiK2UuZGF0YTtlPWUubmV4dDspcis9dCtlLmRhdGE7cmV0dXJuIHJ9fSx7a2V5OiJjb25jYXQiLHZhbHVlOmZ1bmN0aW9uKHQpe2lmKDA9PT10aGlzLmxlbmd0aClyZXR1cm4gby5hbGxvYygwKTtmb3IodmFyIGUscixuLGk9by5hbGxvY1Vuc2FmZSh0Pj4+MCksYT10aGlzLmhlYWQscz0wO2E7KWU9YS5kYXRhLHI9aSxuPXMsby5wcm90b3R5cGUuY29weS5jYWxsKGUscixuKSxzKz1hLmRhdGEubGVuZ3RoLGE9YS5uZXh0O3JldHVybiBpfX0se2tleToiY29uc3VtZSIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgcjtyZXR1cm4gdDx0aGlzLmhlYWQuZGF0YS5sZW5ndGg/KHI9dGhpcy5oZWFkLmRhdGEuc2xpY2UoMCx0KSx0aGlzLmhlYWQuZGF0YT10aGlzLmhlYWQuZGF0YS5zbGljZSh0KSk6cj10PT09dGhpcy5oZWFkLmRhdGEubGVuZ3RoP3RoaXMuc2hpZnQoKTplP3RoaXMuX2dldFN0cmluZyh0KTp0aGlzLl9nZXRCdWZmZXIodCkscn19LHtrZXk6ImZpcnN0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmhlYWQuZGF0YX19LHtrZXk6Il9nZXRTdHJpbmciLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaGVhZCxyPTEsbj1lLmRhdGE7Zm9yKHQtPW4ubGVuZ3RoO2U9ZS5uZXh0Oyl7dmFyIGk9ZS5kYXRhLGE9dD5pLmxlbmd0aD9pLmxlbmd0aDp0O2lmKGE9PT1pLmxlbmd0aD9uKz1pOm4rPWkuc2xpY2UoMCx0KSwwPT0odC09YSkpe2E9PT1pLmxlbmd0aD8oKytyLGUubmV4dD90aGlzLmhlYWQ9ZS5uZXh0OnRoaXMuaGVhZD10aGlzLnRhaWw9bnVsbCk6KHRoaXMuaGVhZD1lLGUuZGF0YT1pLnNsaWNlKGEpKTticmVha30rK3J9cmV0dXJuIHRoaXMubGVuZ3RoLT1yLG59fSx7a2V5OiJfZ2V0QnVmZmVyIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1vLmFsbG9jVW5zYWZlKHQpLHI9dGhpcy5oZWFkLG49MTtmb3Ioci5kYXRhLmNvcHkoZSksdC09ci5kYXRhLmxlbmd0aDtyPXIubmV4dDspe3ZhciBpPXIuZGF0YSxhPXQ+aS5sZW5ndGg/aS5sZW5ndGg6dDtpZihpLmNvcHkoZSxlLmxlbmd0aC10LDAsYSksMD09KHQtPWEpKXthPT09aS5sZW5ndGg/KCsrbixyLm5leHQ/dGhpcy5oZWFkPXIubmV4dDp0aGlzLmhlYWQ9dGhpcy50YWlsPW51bGwpOih0aGlzLmhlYWQ9cixyLmRhdGE9aS5zbGljZShhKSk7YnJlYWt9KytufXJldHVybiB0aGlzLmxlbmd0aC09bixlfX0se2tleTpsLHZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHModGhpcyxmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgcj1udWxsIT1hcmd1bWVudHNbZV0/YXJndW1lbnRzW2VdOnt9O2UlMj9uKE9iamVjdChyKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7aSh0LGUscltlXSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhyKSk6bihPYmplY3QocikpLmZvckVhY2goKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLGUpKX0pKX1yZXR1cm4gdH0oe30sZSx7ZGVwdGg6MCxjdXN0b21JbnNwZWN0OiExfSkpfX1dKSYmYShlLnByb3RvdHlwZSxyKSxjJiZhKGUsYyksdH0oKX0se2J1ZmZlcjo4NSx1dGlsOjgzfV0sMjk1OltmdW5jdGlvbih0LGUscil7KGZ1bmN0aW9uKHQpeyhmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQsZSl7aSh0LGUpLG4odCl9ZnVuY3Rpb24gbih0KXt0Ll93cml0YWJsZVN0YXRlJiYhdC5fd3JpdGFibGVTdGF0ZS5lbWl0Q2xvc2V8fHQuX3JlYWRhYmxlU3RhdGUmJiF0Ll9yZWFkYWJsZVN0YXRlLmVtaXRDbG9zZXx8dC5lbWl0KCJjbG9zZSIpfWZ1bmN0aW9uIGkodCxlKXt0LmVtaXQoImVycm9yIixlKX1lLmV4cG9ydHM9e2Rlc3Ryb3k6ZnVuY3Rpb24oZSxhKXt2YXIgbz10aGlzLHM9dGhpcy5fcmVhZGFibGVTdGF0ZSYmdGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQsbD10aGlzLl93cml0YWJsZVN0YXRlJiZ0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZDtyZXR1cm4gc3x8bD8oYT9hKGUpOmUmJih0aGlzLl93cml0YWJsZVN0YXRlP3RoaXMuX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkfHwodGhpcy5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITAsdC5uZXh0VGljayhpLHRoaXMsZSkpOnQubmV4dFRpY2soaSx0aGlzLGUpKSx0aGlzKToodGhpcy5fcmVhZGFibGVTdGF0ZSYmKHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkPSEwKSx0aGlzLl93cml0YWJsZVN0YXRlJiYodGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ9ITApLHRoaXMuX2Rlc3Ryb3koZXx8bnVsbCwoZnVuY3Rpb24oZSl7IWEmJmU/by5fd3JpdGFibGVTdGF0ZT9vLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD90Lm5leHRUaWNrKG4sbyk6KG8uX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkPSEwLHQubmV4dFRpY2socixvLGUpKTp0Lm5leHRUaWNrKHIsbyxlKTphPyh0Lm5leHRUaWNrKG4sbyksYShlKSk6dC5uZXh0VGljayhuLG8pfSkpLHRoaXMpfSx1bmRlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLl9yZWFkYWJsZVN0YXRlJiYodGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQ9ITEsdGhpcy5fcmVhZGFibGVTdGF0ZS5yZWFkaW5nPSExLHRoaXMuX3JlYWRhYmxlU3RhdGUuZW5kZWQ9ITEsdGhpcy5fcmVhZGFibGVTdGF0ZS5lbmRFbWl0dGVkPSExKSx0aGlzLl93cml0YWJsZVN0YXRlJiYodGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5lbmRlZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmVuZGluZz0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmZpbmFsQ2FsbGVkPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUucHJlZmluaXNoZWQ9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5maW5pc2hlZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMSl9LGVycm9yT3JEZXN0cm95OmZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5fcmVhZGFibGVTdGF0ZSxuPXQuX3dyaXRhYmxlU3RhdGU7ciYmci5hdXRvRGVzdHJveXx8biYmbi5hdXRvRGVzdHJveT90LmRlc3Ryb3koZSk6dC5lbWl0KCJlcnJvciIsZSl9fX0pLmNhbGwodGhpcyl9KS5jYWxsKHRoaXMsdCgiX3Byb2Nlc3MiKSl9LHtfcHJvY2VzczoyNzh9XSwyOTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vLi4vZXJyb3JzIikuY29kZXMuRVJSX1NUUkVBTV9QUkVNQVRVUkVfQ0xPU0U7ZnVuY3Rpb24gaSgpe31lLmV4cG9ydHM9ZnVuY3Rpb24gdChlLHIsYSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHIpcmV0dXJuIHQoZSxudWxsLHIpO3J8fChyPXt9KSxhPWZ1bmN0aW9uKHQpe3ZhciBlPSExO3JldHVybiBmdW5jdGlvbigpe2lmKCFlKXtlPSEwO2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoLG49bmV3IEFycmF5KHIpLGk9MDtpPHI7aSsrKW5baV09YXJndW1lbnRzW2ldO3QuYXBwbHkodGhpcyxuKX19fShhfHxpKTt2YXIgbz1yLnJlYWRhYmxlfHwhMSE9PXIucmVhZGFibGUmJmUucmVhZGFibGUscz1yLndyaXRhYmxlfHwhMSE9PXIud3JpdGFibGUmJmUud3JpdGFibGUsbD1mdW5jdGlvbigpe2Uud3JpdGFibGV8fHUoKX0sYz1lLl93cml0YWJsZVN0YXRlJiZlLl93cml0YWJsZVN0YXRlLmZpbmlzaGVkLHU9ZnVuY3Rpb24oKXtzPSExLGM9ITAsb3x8YS5jYWxsKGUpfSxmPWUuX3JlYWRhYmxlU3RhdGUmJmUuX3JlYWRhYmxlU3RhdGUuZW5kRW1pdHRlZCxoPWZ1bmN0aW9uKCl7bz0hMSxmPSEwLHN8fGEuY2FsbChlKX0scD1mdW5jdGlvbih0KXthLmNhbGwoZSx0KX0sZD1mdW5jdGlvbigpe3ZhciB0O3JldHVybiBvJiYhZj8oZS5fcmVhZGFibGVTdGF0ZSYmZS5fcmVhZGFibGVTdGF0ZS5lbmRlZHx8KHQ9bmV3IG4pLGEuY2FsbChlLHQpKTpzJiYhYz8oZS5fd3JpdGFibGVTdGF0ZSYmZS5fd3JpdGFibGVTdGF0ZS5lbmRlZHx8KHQ9bmV3IG4pLGEuY2FsbChlLHQpKTp2b2lkIDB9LG09ZnVuY3Rpb24oKXtlLnJlcS5vbigiZmluaXNoIix1KX07cmV0dXJuIWZ1bmN0aW9uKHQpe3JldHVybiB0LnNldEhlYWRlciYmImZ1bmN0aW9uIj09dHlwZW9mIHQuYWJvcnR9KGUpP3MmJiFlLl93cml0YWJsZVN0YXRlJiYoZS5vbigiZW5kIixsKSxlLm9uKCJjbG9zZSIsbCkpOihlLm9uKCJjb21wbGV0ZSIsdSksZS5vbigiYWJvcnQiLGQpLGUucmVxP20oKTplLm9uKCJyZXF1ZXN0IixtKSksZS5vbigiZW5kIixoKSxlLm9uKCJmaW5pc2giLHUpLCExIT09ci5lcnJvciYmZS5vbigiZXJyb3IiLHApLGUub24oImNsb3NlIixkKSxmdW5jdGlvbigpe2UucmVtb3ZlTGlzdGVuZXIoImNvbXBsZXRlIix1KSxlLnJlbW92ZUxpc3RlbmVyKCJhYm9ydCIsZCksZS5yZW1vdmVMaXN0ZW5lcigicmVxdWVzdCIsbSksZS5yZXEmJmUucmVxLnJlbW92ZUxpc3RlbmVyKCJmaW5pc2giLHUpLGUucmVtb3ZlTGlzdGVuZXIoImVuZCIsbCksZS5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLGwpLGUucmVtb3ZlTGlzdGVuZXIoImZpbmlzaCIsdSksZS5yZW1vdmVMaXN0ZW5lcigiZW5kIixoKSxlLnJlbW92ZUxpc3RlbmVyKCJlcnJvciIscCksZS5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLGQpfX19LHsiLi4vLi4vLi4vZXJyb3JzIjoyODd9XSwyOTc6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIlJlYWRhYmxlLmZyb20gaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgYnJvd3NlciIpfX0se31dLDI5ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbjt2YXIgaT10KCIuLi8uLi8uLi9lcnJvcnMiKS5jb2RlcyxhPWkuRVJSX01JU1NJTkdfQVJHUyxvPWkuRVJSX1NUUkVBTV9ERVNUUk9ZRUQ7ZnVuY3Rpb24gcyh0KXtpZih0KXRocm93IHR9ZnVuY3Rpb24gbChlLHIsaSxhKXthPWZ1bmN0aW9uKHQpe3ZhciBlPSExO3JldHVybiBmdW5jdGlvbigpe2V8fChlPSEwLHQuYXBwbHkodm9pZCAwLGFyZ3VtZW50cykpfX0oYSk7dmFyIHM9ITE7ZS5vbigiY2xvc2UiLChmdW5jdGlvbigpe3M9ITB9KSksdm9pZCAwPT09biYmKG49dCgiLi9lbmQtb2Ytc3RyZWFtIikpLG4oZSx7cmVhZGFibGU6cix3cml0YWJsZTppfSwoZnVuY3Rpb24odCl7aWYodClyZXR1cm4gYSh0KTtzPSEwLGEoKX0pKTt2YXIgbD0hMTtyZXR1cm4gZnVuY3Rpb24odCl7aWYoIXMmJiFsKXJldHVybiBsPSEwLGZ1bmN0aW9uKHQpe3JldHVybiB0LnNldEhlYWRlciYmImZ1bmN0aW9uIj09dHlwZW9mIHQuYWJvcnR9KGUpP2UuYWJvcnQoKToiZnVuY3Rpb24iPT10eXBlb2YgZS5kZXN0cm95P2UuZGVzdHJveSgpOnZvaWQgYSh0fHxuZXcgbygicGlwZSIpKX19ZnVuY3Rpb24gYyh0KXt0KCl9ZnVuY3Rpb24gdSh0LGUpe3JldHVybiB0LnBpcGUoZSl9ZnVuY3Rpb24gZih0KXtyZXR1cm4gdC5sZW5ndGg/ImZ1bmN0aW9uIiE9dHlwZW9mIHRbdC5sZW5ndGgtMV0/czp0LnBvcCgpOnN9ZS5leHBvcnRzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgsZT1uZXcgQXJyYXkodCkscj0wO3I8dDtyKyspZVtyXT1hcmd1bWVudHNbcl07dmFyIG4saT1mKGUpO2lmKEFycmF5LmlzQXJyYXkoZVswXSkmJihlPWVbMF0pLGUubGVuZ3RoPDIpdGhyb3cgbmV3IGEoInN0cmVhbXMiKTt2YXIgbz1lLm1hcCgoZnVuY3Rpb24odCxyKXt2YXIgYT1yPGUubGVuZ3RoLTE7cmV0dXJuIGwodCxhLHI+MCwoZnVuY3Rpb24odCl7bnx8KG49dCksdCYmby5mb3JFYWNoKGMpLGF8fChvLmZvckVhY2goYyksaShuKSl9KSl9KSk7cmV0dXJuIGUucmVkdWNlKHUpfX0seyIuLi8uLi8uLi9lcnJvcnMiOjI4NywiLi9lbmQtb2Ytc3RyZWFtIjoyOTZ9XSwyOTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vLi4vZXJyb3JzIikuY29kZXMuRVJSX0lOVkFMSURfT1BUX1ZBTFVFO2UuZXhwb3J0cz17Z2V0SGlnaFdhdGVyTWFyazpmdW5jdGlvbih0LGUscixpKXt2YXIgYT1mdW5jdGlvbih0LGUscil7cmV0dXJuIG51bGwhPXQuaGlnaFdhdGVyTWFyaz90LmhpZ2hXYXRlck1hcms6ZT90W3JdOm51bGx9KGUsaSxyKTtpZihudWxsIT1hKXtpZighaXNGaW5pdGUoYSl8fE1hdGguZmxvb3IoYSkhPT1hfHxhPDApdGhyb3cgbmV3IG4oaT9yOiJoaWdoV2F0ZXJNYXJrIixhKTtyZXR1cm4gTWF0aC5mbG9vcihhKX1yZXR1cm4gdC5vYmplY3RNb2RlPzE2OjE2Mzg0fX19LHsiLi4vLi4vLi4vZXJyb3JzIjoyODd9XSwzMDA6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9dCgiZXZlbnRzIikuRXZlbnRFbWl0dGVyfSx7ZXZlbnRzOjg0fV0sMzAxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInNhZmUtYnVmZmVyIikuQnVmZmVyLGk9bi5pc0VuY29kaW5nfHxmdW5jdGlvbih0KXtzd2l0Y2goKHQ9IiIrdCkmJnQudG9Mb3dlckNhc2UoKSl7Y2FzZSJoZXgiOmNhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6Y2FzZSJhc2NpaSI6Y2FzZSJiaW5hcnkiOmNhc2UiYmFzZTY0IjpjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6Y2FzZSJyYXciOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fTtmdW5jdGlvbiBhKHQpe3ZhciBlO3N3aXRjaCh0aGlzLmVuY29kaW5nPWZ1bmN0aW9uKHQpe3ZhciBlPWZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiJ1dGY4Ijtmb3IodmFyIGU7Oylzd2l0Y2godCl7Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpyZXR1cm4idXRmOCI7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiJ1dGYxNmxlIjtjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiJsYXRpbjEiO2Nhc2UiYmFzZTY0IjpjYXNlImFzY2lpIjpjYXNlImhleCI6cmV0dXJuIHQ7ZGVmYXVsdDppZihlKXJldHVybjt0PSgiIit0KS50b0xvd2VyQ2FzZSgpLGU9ITB9fSh0KTtpZigic3RyaW5nIiE9dHlwZW9mIGUmJihuLmlzRW5jb2Rpbmc9PT1pfHwhaSh0KSkpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK3QpO3JldHVybiBlfHx0fSh0KSx0aGlzLmVuY29kaW5nKXtjYXNlInV0ZjE2bGUiOnRoaXMudGV4dD1sLHRoaXMuZW5kPWMsZT00O2JyZWFrO2Nhc2UidXRmOCI6dGhpcy5maWxsTGFzdD1zLGU9NDticmVhaztjYXNlImJhc2U2NCI6dGhpcy50ZXh0PXUsdGhpcy5lbmQ9ZixlPTM7YnJlYWs7ZGVmYXVsdDpyZXR1cm4gdGhpcy53cml0ZT1oLHZvaWQodGhpcy5lbmQ9cCl9dGhpcy5sYXN0TmVlZD0wLHRoaXMubGFzdFRvdGFsPTAsdGhpcy5sYXN0Q2hhcj1uLmFsbG9jVW5zYWZlKGUpfWZ1bmN0aW9uIG8odCl7cmV0dXJuIHQ8PTEyNz8wOnQ+PjU9PTY/Mjp0Pj40PT0xND8zOnQ+PjM9PTMwPzQ6dD4+Nj09Mj8tMTotMn1mdW5jdGlvbiBzKHQpe3ZhciBlPXRoaXMubGFzdFRvdGFsLXRoaXMubGFzdE5lZWQscj1mdW5jdGlvbih0LGUscil7aWYoMTI4IT0oMTkyJmVbMF0pKXJldHVybiB0Lmxhc3ROZWVkPTAsIlx1ZmZmZCI7aWYodC5sYXN0TmVlZD4xJiZlLmxlbmd0aD4xKXtpZigxMjghPSgxOTImZVsxXSkpcmV0dXJuIHQubGFzdE5lZWQ9MSwiXHVmZmZkIjtpZih0Lmxhc3ROZWVkPjImJmUubGVuZ3RoPjImJjEyOCE9KDE5MiZlWzJdKSlyZXR1cm4gdC5sYXN0TmVlZD0yLCJcdWZmZmQifX0odGhpcyx0KTtyZXR1cm4gdm9pZCAwIT09cj9yOnRoaXMubGFzdE5lZWQ8PXQubGVuZ3RoPyh0LmNvcHkodGhpcy5sYXN0Q2hhcixlLDAsdGhpcy5sYXN0TmVlZCksdGhpcy5sYXN0Q2hhci50b1N0cmluZyh0aGlzLmVuY29kaW5nLDAsdGhpcy5sYXN0VG90YWwpKToodC5jb3B5KHRoaXMubGFzdENoYXIsZSwwLHQubGVuZ3RoKSx2b2lkKHRoaXMubGFzdE5lZWQtPXQubGVuZ3RoKSl9ZnVuY3Rpb24gbCh0LGUpe2lmKCh0Lmxlbmd0aC1lKSUyPT0wKXt2YXIgcj10LnRvU3RyaW5nKCJ1dGYxNmxlIixlKTtpZihyKXt2YXIgbj1yLmNoYXJDb2RlQXQoci5sZW5ndGgtMSk7aWYobj49NTUyOTYmJm48PTU2MzE5KXJldHVybiB0aGlzLmxhc3ROZWVkPTIsdGhpcy5sYXN0VG90YWw9NCx0aGlzLmxhc3RDaGFyWzBdPXRbdC5sZW5ndGgtMl0sdGhpcy5sYXN0Q2hhclsxXT10W3QubGVuZ3RoLTFdLHIuc2xpY2UoMCwtMSl9cmV0dXJuIHJ9cmV0dXJuIHRoaXMubGFzdE5lZWQ9MSx0aGlzLmxhc3RUb3RhbD0yLHRoaXMubGFzdENoYXJbMF09dFt0Lmxlbmd0aC0xXSx0LnRvU3RyaW5nKCJ1dGYxNmxlIixlLHQubGVuZ3RoLTEpfWZ1bmN0aW9uIGModCl7dmFyIGU9dCYmdC5sZW5ndGg/dGhpcy53cml0ZSh0KToiIjtpZih0aGlzLmxhc3ROZWVkKXt2YXIgcj10aGlzLmxhc3RUb3RhbC10aGlzLmxhc3ROZWVkO3JldHVybiBlK3RoaXMubGFzdENoYXIudG9TdHJpbmcoInV0ZjE2bGUiLDAscil9cmV0dXJuIGV9ZnVuY3Rpb24gdSh0LGUpe3ZhciByPSh0Lmxlbmd0aC1lKSUzO3JldHVybiAwPT09cj90LnRvU3RyaW5nKCJiYXNlNjQiLGUpOih0aGlzLmxhc3ROZWVkPTMtcix0aGlzLmxhc3RUb3RhbD0zLDE9PT1yP3RoaXMubGFzdENoYXJbMF09dFt0Lmxlbmd0aC0xXToodGhpcy5sYXN0Q2hhclswXT10W3QubGVuZ3RoLTJdLHRoaXMubGFzdENoYXJbMV09dFt0Lmxlbmd0aC0xXSksdC50b1N0cmluZygiYmFzZTY0IixlLHQubGVuZ3RoLXIpKX1mdW5jdGlvbiBmKHQpe3ZhciBlPXQmJnQubGVuZ3RoP3RoaXMud3JpdGUodCk6IiI7cmV0dXJuIHRoaXMubGFzdE5lZWQ/ZSt0aGlzLmxhc3RDaGFyLnRvU3RyaW5nKCJiYXNlNjQiLDAsMy10aGlzLmxhc3ROZWVkKTplfWZ1bmN0aW9uIGgodCl7cmV0dXJuIHQudG9TdHJpbmcodGhpcy5lbmNvZGluZyl9ZnVuY3Rpb24gcCh0KXtyZXR1cm4gdCYmdC5sZW5ndGg/dGhpcy53cml0ZSh0KToiIn1yLlN0cmluZ0RlY29kZXI9YSxhLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbih0KXtpZigwPT09dC5sZW5ndGgpcmV0dXJuIiI7dmFyIGUscjtpZih0aGlzLmxhc3ROZWVkKXtpZih2b2lkIDA9PT0oZT10aGlzLmZpbGxMYXN0KHQpKSlyZXR1cm4iIjtyPXRoaXMubGFzdE5lZWQsdGhpcy5sYXN0TmVlZD0wfWVsc2Ugcj0wO3JldHVybiByPHQubGVuZ3RoP2U/ZSt0aGlzLnRleHQodCxyKTp0aGlzLnRleHQodCxyKTplfHwiIn0sYS5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKHQpe3ZhciBlPXQmJnQubGVuZ3RoP3RoaXMud3JpdGUodCk6IiI7cmV0dXJuIHRoaXMubGFzdE5lZWQ/ZSsiXHVmZmZkIjplfSxhLnByb3RvdHlwZS50ZXh0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWUubGVuZ3RoLTE7aWYobjxyKXJldHVybiAwO3ZhciBpPW8oZVtuXSk7aWYoaT49MClyZXR1cm4gaT4wJiYodC5sYXN0TmVlZD1pLTEpLGk7aWYoLS1uPHJ8fC0yPT09aSlyZXR1cm4gMDtpZigoaT1vKGVbbl0pKT49MClyZXR1cm4gaT4wJiYodC5sYXN0TmVlZD1pLTIpLGk7aWYoLS1uPHJ8fC0yPT09aSlyZXR1cm4gMDtpZigoaT1vKGVbbl0pKT49MClyZXR1cm4gaT4wJiYoMj09PWk/aT0wOnQubGFzdE5lZWQ9aS0zKSxpO3JldHVybiAwfSh0aGlzLHQsZSk7aWYoIXRoaXMubGFzdE5lZWQpcmV0dXJuIHQudG9TdHJpbmcoInV0ZjgiLGUpO3RoaXMubGFzdFRvdGFsPXI7dmFyIG49dC5sZW5ndGgtKHItdGhpcy5sYXN0TmVlZCk7cmV0dXJuIHQuY29weSh0aGlzLmxhc3RDaGFyLDAsbiksdC50b1N0cmluZygidXRmOCIsZSxuKX0sYS5wcm90b3R5cGUuZmlsbExhc3Q9ZnVuY3Rpb24odCl7aWYodGhpcy5sYXN0TmVlZDw9dC5sZW5ndGgpcmV0dXJuIHQuY29weSh0aGlzLmxhc3RDaGFyLHRoaXMubGFzdFRvdGFsLXRoaXMubGFzdE5lZWQsMCx0aGlzLmxhc3ROZWVkKSx0aGlzLmxhc3RDaGFyLnRvU3RyaW5nKHRoaXMuZW5jb2RpbmcsMCx0aGlzLmxhc3RUb3RhbCk7dC5jb3B5KHRoaXMubGFzdENoYXIsdGhpcy5sYXN0VG90YWwtdGhpcy5sYXN0TmVlZCwwLHQubGVuZ3RoKSx0aGlzLmxhc3ROZWVkLT10Lmxlbmd0aH19LHsic2FmZS1idWZmZXIiOjI4NX1dLDMwMjpbZnVuY3Rpb24odCxlLHIpeyhmdW5jdGlvbihyLG4peyhmdW5jdGlvbigpe3ZhciByPXQoImFzc2VydCIpLGk9dCgiZGVidWciKSgic3RyZWFtLXBhcnNlciIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10JiYiZnVuY3Rpb24iPT10eXBlb2YgdC5fdHJhbnNmb3JtLHI9dCYmImZ1bmN0aW9uIj09dHlwZW9mIHQuX3dyaXRlO2lmKCFlJiYhcil0aHJvdyBuZXcgRXJyb3IoIm11c3QgcGFzcyBhIFdyaXRhYmxlIG9yIFRyYW5zZm9ybSBzdHJlYW0gaW4iKTtpKCJleHRlbmRpbmcgUGFyc2VyIGludG8gc3RyZWFtIiksdC5fYnl0ZXM9byx0Ll9za2lwQnl0ZXM9cyxlJiYodC5fcGFzc3Rocm91Z2g9bCk7ZT90Ll90cmFuc2Zvcm09dTp0Ll93cml0ZT1jfTtmdW5jdGlvbiBhKHQpe2koImluaXRpYWxpemluZyBwYXJzZXIgc3RyZWFtIiksdC5fcGFyc2VyQnl0ZXNMZWZ0PTAsdC5fcGFyc2VyQnVmZmVycz1bXSx0Ll9wYXJzZXJCdWZmZXJlZD0wLHQuX3BhcnNlclN0YXRlPS0xLHQuX3BhcnNlckNhbGxiYWNrPW51bGwsImZ1bmN0aW9uIj09dHlwZW9mIHQucHVzaCYmKHQuX3BhcnNlck91dHB1dD10LnB1c2guYmluZCh0KSksdC5fcGFyc2VySW5pdD0hMH1mdW5jdGlvbiBvKHQsZSl7cighdGhpcy5fcGFyc2VyQ2FsbGJhY2ssJ3RoZXJlIGlzIGFscmVhZHkgYSAiY2FsbGJhY2siIHNldCEnKSxyKGlzRmluaXRlKHQpJiZ0PjAsJ2NhbiBvbmx5IGJ1ZmZlciBhIGZpbml0ZSBudW1iZXIgb2YgYnl0ZXMgPiAwLCBnb3QgIicrdCsnIicpLHRoaXMuX3BhcnNlckluaXR8fGEodGhpcyksaSgiYnVmZmVyaW5nICVvIGJ5dGVzIix0KSx0aGlzLl9wYXJzZXJCeXRlc0xlZnQ9dCx0aGlzLl9wYXJzZXJDYWxsYmFjaz1lLHRoaXMuX3BhcnNlclN0YXRlPTB9ZnVuY3Rpb24gcyh0LGUpe3IoIXRoaXMuX3BhcnNlckNhbGxiYWNrLCd0aGVyZSBpcyBhbHJlYWR5IGEgImNhbGxiYWNrIiBzZXQhJykscih0PjAsJ2NhbiBvbmx5IHNraXAgPiAwIGJ5dGVzLCBnb3QgIicrdCsnIicpLHRoaXMuX3BhcnNlckluaXR8fGEodGhpcyksaSgic2tpcHBpbmcgJW8gYnl0ZXMiLHQpLHRoaXMuX3BhcnNlckJ5dGVzTGVmdD10LHRoaXMuX3BhcnNlckNhbGxiYWNrPWUsdGhpcy5fcGFyc2VyU3RhdGU9MX1mdW5jdGlvbiBsKHQsZSl7cighdGhpcy5fcGFyc2VyQ2FsbGJhY2ssJ1RoZXJlIGlzIGFscmVhZHkgYSAiY2FsbGJhY2siIHNldCEnKSxyKHQ+MCwnY2FuIG9ubHkgcGFzcyB0aHJvdWdoID4gMCBieXRlcywgZ290ICInK3QrJyInKSx0aGlzLl9wYXJzZXJJbml0fHxhKHRoaXMpLGkoInBhc3NpbmcgdGhyb3VnaCAlbyBieXRlcyIsdCksdGhpcy5fcGFyc2VyQnl0ZXNMZWZ0PXQsdGhpcy5fcGFyc2VyQ2FsbGJhY2s9ZSx0aGlzLl9wYXJzZXJTdGF0ZT0yfWZ1bmN0aW9uIGModCxlLHIpe3RoaXMuX3BhcnNlckluaXR8fGEodGhpcyksaSgid3JpdGUoJW8gYnl0ZXMpIix0Lmxlbmd0aCksImZ1bmN0aW9uIj09dHlwZW9mIGUmJihyPWUpLGgodGhpcyx0LG51bGwscil9ZnVuY3Rpb24gdSh0LGUscil7dGhpcy5fcGFyc2VySW5pdHx8YSh0aGlzKSxpKCJ0cmFuc2Zvcm0oJW8gYnl0ZXMpIix0Lmxlbmd0aCksImZ1bmN0aW9uIiE9dHlwZW9mIGUmJihlPXRoaXMuX3BhcnNlck91dHB1dCksaCh0aGlzLHQsZSxyKX1mdW5jdGlvbiBmKHQsZSxyLGEpe2lmKHQuX3BhcnNlckJ5dGVzTGVmdC09ZS5sZW5ndGgsaSgiJW8gYnl0ZXMgbGVmdCBmb3Igc3RyZWFtIHBpZWNlIix0Ll9wYXJzZXJCeXRlc0xlZnQpLDA9PT10Ll9wYXJzZXJTdGF0ZT8odC5fcGFyc2VyQnVmZmVycy5wdXNoKGUpLHQuX3BhcnNlckJ1ZmZlcmVkKz1lLmxlbmd0aCk6Mj09PXQuX3BhcnNlclN0YXRlJiZyKGUpLDAhPT10Ll9wYXJzZXJCeXRlc0xlZnQpcmV0dXJuIGE7dmFyIG89dC5fcGFyc2VyQ2FsbGJhY2s7aWYobyYmMD09PXQuX3BhcnNlclN0YXRlJiZ0Ll9wYXJzZXJCdWZmZXJzLmxlbmd0aD4xJiYoZT1uLmNvbmNhdCh0Ll9wYXJzZXJCdWZmZXJzLHQuX3BhcnNlckJ1ZmZlcmVkKSksMCE9PXQuX3BhcnNlclN0YXRlJiYoZT1udWxsKSx0Ll9wYXJzZXJDYWxsYmFjaz1udWxsLHQuX3BhcnNlckJ1ZmZlcmVkPTAsdC5fcGFyc2VyU3RhdGU9LTEsdC5fcGFyc2VyQnVmZmVycy5zcGxpY2UoMCksbyl7dmFyIHM9W107ZSYmcy5wdXNoKGUpLHImJnMucHVzaChyKTt2YXIgbD1vLmxlbmd0aD5zLmxlbmd0aDtsJiZzLnB1c2gocChhKSk7dmFyIGM9by5hcHBseSh0LHMpO2lmKCFsfHxhPT09YylyZXR1cm4gYX19dmFyIGg9cCgoZnVuY3Rpb24gdChlLHIsbixpKXtyZXR1cm4gZS5fcGFyc2VyQnl0ZXNMZWZ0PD0wP2kobmV3IEVycm9yKCJnb3QgZGF0YSBidXQgbm90IGN1cnJlbnRseSBwYXJzaW5nIGFueXRoaW5nIikpOnIubGVuZ3RoPD1lLl9wYXJzZXJCeXRlc0xlZnQ/ZnVuY3Rpb24oKXtyZXR1cm4gZihlLHIsbixpKX06ZnVuY3Rpb24oKXt2YXIgYT1yLnNsaWNlKDAsZS5fcGFyc2VyQnl0ZXNMZWZ0KTtyZXR1cm4gZihlLGEsbiwoZnVuY3Rpb24obyl7cmV0dXJuIG8/aShvKTpyLmxlbmd0aD5hLmxlbmd0aD9mdW5jdGlvbigpe3JldHVybiB0KGUsci5zbGljZShhLmxlbmd0aCksbixpKX06dm9pZCAwfSkpfX0pKTtmdW5jdGlvbiBwKHQpe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgZT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTsiZnVuY3Rpb24iPT10eXBlb2YgZTspZT1lKCk7cmV0dXJuIGV9fX0pLmNhbGwodGhpcyl9KS5jYWxsKHRoaXMsdCgiX3Byb2Nlc3MiKSx0KCJidWZmZXIiKS5CdWZmZXIpfSx7X3Byb2Nlc3M6Mjc4LGFzc2VydDo3NSxidWZmZXI6ODUsZGVidWc6MzAzfV0sMzAzOltmdW5jdGlvbih0LGUscil7KGZ1bmN0aW9uKG4peyhmdW5jdGlvbigpe2Z1bmN0aW9uIGkoKXt2YXIgdDt0cnl7dD1yLnN0b3JhZ2UuZGVidWd9Y2F0Y2godCl7fXJldHVybiF0JiZ2b2lkIDAhPT1uJiYiZW52ImluIG4mJih0PW4uZW52LkRFQlVHKSx0fShyPWUuZXhwb3J0cz10KCIuL2RlYnVnIikpLmxvZz1mdW5jdGlvbigpe3JldHVybiJvYmplY3QiPT10eXBlb2YgY29uc29sZSYmY29uc29sZS5sb2cmJkZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKGNvbnNvbGUubG9nLGNvbnNvbGUsYXJndW1lbnRzKX0sci5mb3JtYXRBcmdzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMudXNlQ29sb3JzO2lmKHRbMF09KGU/IiVjIjoiIikrdGhpcy5uYW1lc3BhY2UrKGU/IiAlYyI6IiAiKSt0WzBdKyhlPyIlYyAiOiIgIikrIisiK3IuaHVtYW5pemUodGhpcy5kaWZmKSwhZSlyZXR1cm47dmFyIG49ImNvbG9yOiAiK3RoaXMuY29sb3I7dC5zcGxpY2UoMSwwLG4sImNvbG9yOiBpbmhlcml0Iik7dmFyIGk9MCxhPTA7dFswXS5yZXBsYWNlKC8lW2EtekEtWiVdL2csKGZ1bmN0aW9uKHQpeyIlJSIhPT10JiYoaSsrLCIlYyI9PT10JiYoYT1pKSl9KSksdC5zcGxpY2UoYSwwLG4pfSxyLnNhdmU9ZnVuY3Rpb24odCl7dHJ5e251bGw9PXQ/ci5zdG9yYWdlLnJlbW92ZUl0ZW0oImRlYnVnIik6ci5zdG9yYWdlLmRlYnVnPXR9Y2F0Y2godCl7fX0sci5sb2FkPWksci51c2VDb2xvcnM9ZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93LnByb2Nlc3MmJiJyZW5kZXJlciI9PT13aW5kb3cucHJvY2Vzcy50eXBlKXJldHVybiEwO3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlJiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuV2Via2l0QXBwZWFyYW5jZXx8InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5jb25zb2xlJiYod2luZG93LmNvbnNvbGUuZmlyZWJ1Z3x8d2luZG93LmNvbnNvbGUuZXhjZXB0aW9uJiZ3aW5kb3cuY29uc29sZS50YWJsZSl8fCJ1bmRlZmluZWQiIT10eXBlb2YgbmF2aWdhdG9yJiZuYXZpZ2F0b3IudXNlckFnZW50JiZuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goL2ZpcmVmb3hcLyhcZCspLykmJnBhcnNlSW50KFJlZ0V4cC4kMSwxMCk+PTMxfHwidW5kZWZpbmVkIiE9dHlwZW9mIG5hdmlnYXRvciYmbmF2aWdhdG9yLnVzZXJBZ2VudCYmbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC9hcHBsZXdlYmtpdFwvKFxkKykvKX0sci5zdG9yYWdlPSJ1bmRlZmluZWQiIT10eXBlb2YgY2hyb21lJiZ2b2lkIDAhPT1jaHJvbWUuc3RvcmFnZT9jaHJvbWUuc3RvcmFnZS5sb2NhbDpmdW5jdGlvbigpe3RyeXtyZXR1cm4gd2luZG93LmxvY2FsU3RvcmFnZX1jYXRjaCh0KXt9fSgpLHIuY29sb3JzPVsibGlnaHRzZWFncmVlbiIsImZvcmVzdGdyZWVuIiwiZ29sZGVucm9kIiwiZG9kZ2VyYmx1ZSIsImRhcmtvcmNoaWQiLCJjcmltc29uIl0sci5mb3JtYXR0ZXJzLmo9ZnVuY3Rpb24odCl7dHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeSh0KX1jYXRjaCh0KXtyZXR1cm4iW1VuZXhwZWN0ZWRKU09OUGFyc2VFcnJvcl06ICIrdC5tZXNzYWdlfX0sci5lbmFibGUoaSgpKX0pLmNhbGwodGhpcyl9KS5jYWxsKHRoaXMsdCgiX3Byb2Nlc3MiKSl9LHsiLi9kZWJ1ZyI6MzA0LF9wcm9jZXNzOjI3OH1dLDMwNDpbZnVuY3Rpb24odCxlLHIpe3ZhciBuO2Z1bmN0aW9uIGkodCl7ZnVuY3Rpb24gZSgpe2lmKGUuZW5hYmxlZCl7dmFyIHQ9ZSxpPStuZXcgRGF0ZSxhPWktKG58fGkpO3QuZGlmZj1hLHQucHJldj1uLHQuY3Vycj1pLG49aTtmb3IodmFyIG89bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpLHM9MDtzPG8ubGVuZ3RoO3MrKylvW3NdPWFyZ3VtZW50c1tzXTtvWzBdPXIuY29lcmNlKG9bMF0pLCJzdHJpbmciIT10eXBlb2Ygb1swXSYmby51bnNoaWZ0KCIlTyIpO3ZhciBsPTA7b1swXT1vWzBdLnJlcGxhY2UoLyUoW2EtekEtWiVdKS9nLChmdW5jdGlvbihlLG4pe2lmKCIlJSI9PT1lKXJldHVybiBlO2wrKzt2YXIgaT1yLmZvcm1hdHRlcnNbbl07aWYoImZ1bmN0aW9uIj09dHlwZW9mIGkpe3ZhciBhPW9bbF07ZT1pLmNhbGwodCxhKSxvLnNwbGljZShsLDEpLGwtLX1yZXR1cm4gZX0pKSxyLmZvcm1hdEFyZ3MuY2FsbCh0LG8pO3ZhciBjPWUubG9nfHxyLmxvZ3x8Y29uc29sZS5sb2cuYmluZChjb25zb2xlKTtjLmFwcGx5KHQsbyl9fXJldHVybiBlLm5hbWVzcGFjZT10LGUuZW5hYmxlZD1yLmVuYWJsZWQodCksZS51c2VDb2xvcnM9ci51c2VDb2xvcnMoKSxlLmNvbG9yPWZ1bmN0aW9uKHQpe3ZhciBlLG49MDtmb3IoZSBpbiB0KW49KG48PDUpLW4rdC5jaGFyQ29kZUF0KGUpLG58PTA7cmV0dXJuIHIuY29sb3JzW01hdGguYWJzKG4pJXIuY29sb3JzLmxlbmd0aF19KHQpLCJmdW5jdGlvbiI9PXR5cGVvZiByLmluaXQmJnIuaW5pdChlKSxlfShyPWUuZXhwb3J0cz1pLmRlYnVnPWkuZGVmYXVsdD1pKS5jb2VyY2U9ZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBFcnJvcj90LnN0YWNrfHx0Lm1lc3NhZ2U6dH0sci5kaXNhYmxlPWZ1bmN0aW9uKCl7ci5lbmFibGUoIiIpfSxyLmVuYWJsZT1mdW5jdGlvbih0KXtyLnNhdmUodCksci5uYW1lcz1bXSxyLnNraXBzPVtdO2Zvcih2YXIgZT0oInN0cmluZyI9PXR5cGVvZiB0P3Q6IiIpLnNwbGl0KC9bXHMsXSsvKSxuPWUubGVuZ3RoLGk9MDtpPG47aSsrKWVbaV0mJigiLSI9PT0odD1lW2ldLnJlcGxhY2UoL1wqL2csIi4qPyIpKVswXT9yLnNraXBzLnB1c2gobmV3IFJlZ0V4cCgiXiIrdC5zdWJzdHIoMSkrIiQiKSk6ci5uYW1lcy5wdXNoKG5ldyBSZWdFeHAoIl4iK3QrIiQiKSkpfSxyLmVuYWJsZWQ9ZnVuY3Rpb24odCl7dmFyIGUsbjtmb3IoZT0wLG49ci5za2lwcy5sZW5ndGg7ZTxuO2UrKylpZihyLnNraXBzW2VdLnRlc3QodCkpcmV0dXJuITE7Zm9yKGU9MCxuPXIubmFtZXMubGVuZ3RoO2U8bjtlKyspaWYoci5uYW1lc1tlXS50ZXN0KHQpKXJldHVybiEwO3JldHVybiExfSxyLmh1bWFuaXplPXQoIm1zIiksci5uYW1lcz1bXSxyLnNraXBzPVtdLHIuZm9ybWF0dGVycz17fX0se21zOjMwNX1dLDMwNTpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPTFlMyxpPTZlNCxhPTYwKmksbz0yNCphO2Z1bmN0aW9uIHModCxlLHIpe2lmKCEodDxlKSlyZXR1cm4gdDwxLjUqZT9NYXRoLmZsb29yKHQvZSkrIiAiK3I6TWF0aC5jZWlsKHQvZSkrIiAiK3IrInMifWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2U9ZXx8e307dmFyIHIsbD10eXBlb2YgdDtpZigic3RyaW5nIj09PWwmJnQubGVuZ3RoPjApcmV0dXJuIGZ1bmN0aW9uKHQpe2lmKCh0PVN0cmluZyh0KSkubGVuZ3RoPjEwMClyZXR1cm47dmFyIGU9L14oKD86XGQrKT9cLj9cZCspICoobWlsbGlzZWNvbmRzP3xtc2Vjcz98bXN8c2Vjb25kcz98c2Vjcz98c3xtaW51dGVzP3xtaW5zP3xtfGhvdXJzP3xocnM/fGh8ZGF5cz98ZHx5ZWFycz98eXJzP3x5KT8kL2kuZXhlYyh0KTtpZighZSlyZXR1cm47dmFyIHI9cGFyc2VGbG9hdChlWzFdKTtzd2l0Y2goKGVbMl18fCJtcyIpLnRvTG93ZXJDYXNlKCkpe2Nhc2UieWVhcnMiOmNhc2UieWVhciI6Y2FzZSJ5cnMiOmNhc2UieXIiOmNhc2UieSI6cmV0dXJuIDMxNTU3NmU1KnI7Y2FzZSJkYXlzIjpjYXNlImRheSI6Y2FzZSJkIjpyZXR1cm4gcipvO2Nhc2UiaG91cnMiOmNhc2UiaG91ciI6Y2FzZSJocnMiOmNhc2UiaHIiOmNhc2UiaCI6cmV0dXJuIHIqYTtjYXNlIm1pbnV0ZXMiOmNhc2UibWludXRlIjpjYXNlIm1pbnMiOmNhc2UibWluIjpjYXNlIm0iOnJldHVybiByKmk7Y2FzZSJzZWNvbmRzIjpjYXNlInNlY29uZCI6Y2FzZSJzZWNzIjpjYXNlInNlYyI6Y2FzZSJzIjpyZXR1cm4gcipuO2Nhc2UibWlsbGlzZWNvbmRzIjpjYXNlIm1pbGxpc2Vjb25kIjpjYXNlIm1zZWNzIjpjYXNlIm1zZWMiOmNhc2UibXMiOnJldHVybiByO2RlZmF1bHQ6cmV0dXJufX0odCk7aWYoIm51bWJlciI9PT1sJiYhMT09PWlzTmFOKHQpKXJldHVybiBlLmxvbmc/cyhyPXQsbywiZGF5Iil8fHMocixhLCJob3VyIil8fHMocixpLCJtaW51dGUiKXx8cyhyLG4sInNlY29uZCIpfHxyKyIgbXMiOmZ1bmN0aW9uKHQpe2lmKHQ+PW8pcmV0dXJuIE1hdGgucm91bmQodC9vKSsiZCI7aWYodD49YSlyZXR1cm4gTWF0aC5yb3VuZCh0L2EpKyJoIjtpZih0Pj1pKXJldHVybiBNYXRoLnJvdW5kKHQvaSkrIm0iO2lmKHQ+PW4pcmV0dXJuIE1hdGgucm91bmQodC9uKSsicyI7cmV0dXJuIHQrIm1zIn0odCk7dGhyb3cgbmV3IEVycm9yKCJ2YWwgaXMgbm90IGEgbm9uLWVtcHR5IHN0cmluZyBvciBhIHZhbGlkIG51bWJlci4gdmFsPSIrSlNPTi5zdHJpbmdpZnkodCkpfX0se31dLDMwNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJwYXJlbnRoZXNpcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7aWYobnVsbD09dCl0aHJvdyBFcnJvcigiRmlyc3QgYXJndW1lbnQgc2hvdWxkIGJlIGEgc3RyaW5nIik7aWYobnVsbD09ZSl0aHJvdyBFcnJvcigiU2VwYXJhdG9yIHNob3VsZCBiZSBhIHN0cmluZyBvciBhIFJlZ0V4cCIpO3I/KCJzdHJpbmciPT10eXBlb2Ygcnx8QXJyYXkuaXNBcnJheShyKSkmJihyPXtpZ25vcmU6cn0pOnI9e30sbnVsbD09ci5lc2NhcGUmJihyLmVzY2FwZT0hMCksbnVsbD09ci5pZ25vcmU/ci5pZ25vcmU9WyJbXSIsIigpIiwie30iLCI8PiIsJyIiJywiJyciLCJgYCIsIlx1MjAxY1x1MjAxZCIsIlx4YWJceGJiIl06KCJzdHJpbmciPT10eXBlb2Ygci5pZ25vcmUmJihyLmlnbm9yZT1bci5pZ25vcmVdKSxyLmlnbm9yZT1yLmlnbm9yZS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiAxPT09dC5sZW5ndGgmJih0Kz10KSx0fSkpKTt2YXIgaT1uLnBhcnNlKHQse2ZsYXQ6ITAsYnJhY2tldHM6ci5pZ25vcmV9KSxhPWlbMF0uc3BsaXQoZSk7aWYoci5lc2NhcGUpe2Zvcih2YXIgbz1bXSxzPTA7czxhLmxlbmd0aDtzKyspe3ZhciBsPWFbc10sYz1hW3MrMV07IlxcIj09PWxbbC5sZW5ndGgtMV0mJiJcXCIhPT1sW2wubGVuZ3RoLTJdPyhvLnB1c2gobCtlK2MpLHMrKyk6by5wdXNoKGwpfWE9b31mb3Iocz0wO3M8YS5sZW5ndGg7cysrKWlbMF09YVtzXSxhW3NdPW4uc3RyaW5naWZ5KGkse2ZsYXQ6ITB9KTtyZXR1cm4gYX19LHtwYXJlbnRoZXNpczoyNDh9XSwzMDc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Lmxlbmd0aCxyPW5ldyBBcnJheShlKSxuPW5ldyBBcnJheShlKSxpPW5ldyBBcnJheShlKSxhPW5ldyBBcnJheShlKSxvPW5ldyBBcnJheShlKSxzPW5ldyBBcnJheShlKSxsPTA7bDxlOysrbClyW2xdPS0xLG5bbF09MCxpW2xdPSExLGFbbF09MCxvW2xdPS0xLHNbbF09W107dmFyIGMsdT0wLGY9W10saD1bXTtmdW5jdGlvbiBwKGUpe3ZhciBsPVtlXSxjPVtlXTtmb3IocltlXT1uW2VdPXUsaVtlXT0hMCx1Kz0xO2MubGVuZ3RoPjA7KXtlPWNbYy5sZW5ndGgtMV07dmFyIHA9dFtlXTtpZihhW2VdPHAubGVuZ3RoKXtmb3IodmFyIGQ9YVtlXTtkPHAubGVuZ3RoOysrZCl7dmFyIG09cFtkXTtpZihyW21dPDApe3JbbV09blttXT11LGlbbV09ITAsdSs9MSxsLnB1c2gobSksYy5wdXNoKG0pO2JyZWFrfWlbbV0mJihuW2VdPTB8TWF0aC5taW4obltlXSxuW21dKSksb1ttXT49MCYmc1tlXS5wdXNoKG9bbV0pfWFbZV09ZH1lbHNle2lmKG5bZV09PT1yW2VdKXt2YXIgZz1bXSx2PVtdLHk9MDtmb3IoZD1sLmxlbmd0aC0xO2Q+PTA7LS1kKXt2YXIgeD1sW2RdO2lmKGlbeF09ITEsZy5wdXNoKHgpLHYucHVzaChzW3hdKSx5Kz1zW3hdLmxlbmd0aCxvW3hdPWYubGVuZ3RoLHg9PT1lKXtsLmxlbmd0aD1kO2JyZWFrfX1mLnB1c2goZyk7dmFyIGI9bmV3IEFycmF5KHkpO2ZvcihkPTA7ZDx2Lmxlbmd0aDtkKyspZm9yKHZhciBfPTA7Xzx2W2RdLmxlbmd0aDtfKyspYlstLXldPXZbZF1bX107aC5wdXNoKGIpfWMucG9wKCl9fX1mb3IobD0wO2w8ZTsrK2wpcltsXTwwJiZwKGwpO2ZvcihsPTA7bDxoLmxlbmd0aDtsKyspe3ZhciBkPWhbbF07aWYoMCE9PWQubGVuZ3RoKXtkLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQtZX0pKSxjPVtkWzBdXTtmb3IodmFyIG09MTttPGQubGVuZ3RoO20rKylkW21dIT09ZFttLTFdJiZjLnB1c2goZFttXSk7aFtsXT1jfX1yZXR1cm57Y29tcG9uZW50czpmLGFkamFjZW5jeUxpc3Q6aH19fSx7fV0sMzA4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj1mdW5jdGlvbih0LGUpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIHQ7aWYoU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdCh0KSlyZXR1cm4gZnVuY3Rpb24odCxlKXt2YXIgcj1bXSxuPSEwLGk9ITEsYT12b2lkIDA7dHJ5e2Zvcih2YXIgbyxzPXRbU3ltYm9sLml0ZXJhdG9yXSgpOyEobj0obz1zLm5leHQoKSkuZG9uZSkmJihyLnB1c2goby52YWx1ZSksIWV8fHIubGVuZ3RoIT09ZSk7bj0hMCk7fWNhdGNoKHQpe2k9ITAsYT10fWZpbmFsbHl7dHJ5eyFuJiZzLnJldHVybiYmcy5yZXR1cm4oKX1maW5hbGx5e2lmKGkpdGhyb3cgYX19cmV0dXJuIHJ9KHQsZSk7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZSIpfSxpPTIqTWF0aC5QSSxhPWZ1bmN0aW9uKHQsZSxyLG4saSxhLG8pe3ZhciBzPXQueCxsPXQueTtyZXR1cm57eDpuKihzKj1lKS1pKihsKj1yKSthLHk6aSpzK24qbCtvfX0sbz1mdW5jdGlvbih0LGUpe3ZhciByPTEuNTcwNzk2MzI2Nzk0ODk2Nj09PWU/LjU1MTkxNTAyNDQ5NDotMS41NzA3OTYzMjY3OTQ4OTY2PT09ZT8tLjU1MTkxNTAyNDQ5NDo0LzMqTWF0aC50YW4oZS80KSxuPU1hdGguY29zKHQpLGk9TWF0aC5zaW4odCksYT1NYXRoLmNvcyh0K2UpLG89TWF0aC5zaW4odCtlKTtyZXR1cm5be3g6bi1pKnIseTppK24qcn0se3g6YStvKnIseTpvLWEqcn0se3g6YSx5Om99XX0scz1mdW5jdGlvbih0LGUscixuKXt2YXIgaT10KnIrZSpuO3JldHVybiBpPjEmJihpPTEpLGk8LTEmJihpPS0xKSwodCpuLWUqcjwwPy0xOjEpKk1hdGguYWNvcyhpKX07ci5kZWZhdWx0PWZ1bmN0aW9uKHQpe3ZhciBlPXQucHgscj10LnB5LGw9dC5jeCxjPXQuY3ksdT10LnJ4LGY9dC5yeSxoPXQueEF4aXNSb3RhdGlvbixwPXZvaWQgMD09PWg/MDpoLGQ9dC5sYXJnZUFyY0ZsYWcsbT12b2lkIDA9PT1kPzA6ZCxnPXQuc3dlZXBGbGFnLHY9dm9pZCAwPT09Zz8wOmcseT1bXTtpZigwPT09dXx8MD09PWYpcmV0dXJuW107dmFyIHg9TWF0aC5zaW4ocCppLzM2MCksYj1NYXRoLmNvcyhwKmkvMzYwKSxfPWIqKGUtbCkvMit4KihyLWMpLzIsdz0teCooZS1sKS8yK2IqKHItYykvMjtpZigwPT09XyYmMD09PXcpcmV0dXJuW107dT1NYXRoLmFicyh1KSxmPU1hdGguYWJzKGYpO3ZhciBUPU1hdGgucG93KF8sMikvTWF0aC5wb3codSwyKStNYXRoLnBvdyh3LDIpL01hdGgucG93KGYsMik7VD4xJiYodSo9TWF0aC5zcXJ0KFQpLGYqPU1hdGguc3FydChUKSk7dmFyIGs9ZnVuY3Rpb24odCxlLHIsbixhLG8sbCxjLHUsZixoLHApe3ZhciBkPU1hdGgucG93KGEsMiksbT1NYXRoLnBvdyhvLDIpLGc9TWF0aC5wb3coaCwyKSx2PU1hdGgucG93KHAsMikseT1kKm0tZCp2LW0qZzt5PDAmJih5PTApLHkvPWQqdittKmc7dmFyIHg9KHk9TWF0aC5zcXJ0KHkpKihsPT09Yz8tMToxKSkqYS9vKnAsYj15Ki1vL2EqaCxfPWYqeC11KmIrKHQrcikvMix3PXUqeCtmKmIrKGUrbikvMixUPShoLXgpL2Esaz0ocC1iKS9vLEE9KC1oLXgpL2EsTT0oLXAtYikvbyxTPXMoMSwwLFQsayksRT1zKFQsayxBLE0pO3JldHVybiAwPT09YyYmRT4wJiYoRS09aSksMT09PWMmJkU8MCYmKEUrPWkpLFtfLHcsUyxFXX0oZSxyLGwsYyx1LGYsbSx2LHgsYixfLHcpLEE9bihrLDQpLE09QVswXSxTPUFbMV0sRT1BWzJdLEw9QVszXSxDPU1hdGguYWJzKEwpLyhpLzQpO01hdGguYWJzKDEtQyk8MWUtNyYmKEM9MSk7dmFyIFA9TWF0aC5tYXgoTWF0aC5jZWlsKEMpLDEpO0wvPVA7Zm9yKHZhciBJPTA7STxQO0krKyl5LnB1c2gobyhFLEwpKSxFKz1MO3JldHVybiB5Lm1hcCgoZnVuY3Rpb24odCl7dmFyIGU9YSh0WzBdLHUsZixiLHgsTSxTKSxyPWUueCxuPWUueSxpPWEodFsxXSx1LGYsYix4LE0sUyksbz1pLngscz1pLnksbD1hKHRbMl0sdSxmLGIseCxNLFMpO3JldHVybnt4MTpyLHkxOm4seDI6byx5MjpzLHg6bC54LHk6bC55fX0pKX0sZS5leHBvcnRzPXIuZGVmYXVsdH0se31dLDMwOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJwYXJzZS1zdmctcGF0aCIpLGk9dCgiYWJzLXN2Zy1wYXRoIiksYT10KCJub3JtYWxpemUtc3ZnLXBhdGgiKSxvPXQoImlzLXN2Zy1wYXRoIikscz10KCJhc3NlcnQiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7QXJyYXkuaXNBcnJheSh0KSYmMT09PXQubGVuZ3RoJiYic3RyaW5nIj09dHlwZW9mIHRbMF0mJih0PXRbMF0pOyJzdHJpbmciPT10eXBlb2YgdCYmKHMobyh0KSwiU3RyaW5nIGlzIG5vdCBhbiBTVkcgcGF0aC4iKSx0PW4odCkpO2lmKHMoQXJyYXkuaXNBcnJheSh0KSwiQXJndW1lbnQgc2hvdWxkIGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5IG9mIHBhdGggc2VnbWVudHMuIiksdD1pKHQpLCEodD1hKHQpKS5sZW5ndGgpcmV0dXJuWzAsMCwwLDBdO2Zvcih2YXIgZT1bMS8wLDEvMCwtMS8wLC0xLzBdLHI9MCxsPXQubGVuZ3RoO3I8bDtyKyspZm9yKHZhciBjPXRbcl0uc2xpY2UoMSksdT0wO3U8Yy5sZW5ndGg7dSs9MiljW3UrMF08ZVswXSYmKGVbMF09Y1t1KzBdKSxjW3UrMV08ZVsxXSYmKGVbMV09Y1t1KzFdKSxjW3UrMF0+ZVsyXSYmKGVbMl09Y1t1KzBdKSxjW3UrMV0+ZVszXSYmKGVbM109Y1t1KzFdKTtyZXR1cm4gZX19LHsiYWJzLXN2Zy1wYXRoIjo3MCxhc3NlcnQ6NzUsImlzLXN2Zy1wYXRoIjoyMzgsIm5vcm1hbGl6ZS1zdmctcGF0aCI6MzEwLCJwYXJzZS1zdmctcGF0aCI6MjUwfV0sMzEwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtmb3IodmFyIGUscj1bXSxvPTAscz0wLGw9MCxjPTAsdT1udWxsLGY9bnVsbCxoPTAscD0wLGQ9MCxtPXQubGVuZ3RoO2Q8bTtkKyspe3ZhciBnPXRbZF0sdj1nWzBdO3N3aXRjaCh2KXtjYXNlIk0iOmw9Z1sxXSxjPWdbMl07YnJlYWs7Y2FzZSJBIjp2YXIgeT1uKHtweDpoLHB5OnAsY3g6Z1s2XSxjeTpnWzddLHJ4OmdbMV0scnk6Z1syXSx4QXhpc1JvdGF0aW9uOmdbM10sbGFyZ2VBcmNGbGFnOmdbNF0sc3dlZXBGbGFnOmdbNV19KTtpZigheS5sZW5ndGgpY29udGludWU7Zm9yKHZhciB4LGI9MDtiPHkubGVuZ3RoO2IrKyl4PXlbYl0sZz1bIkMiLHgueDEseC55MSx4LngyLHgueTIseC54LHgueV0sYjx5Lmxlbmd0aC0xJiZyLnB1c2goZyk7YnJlYWs7Y2FzZSJTIjp2YXIgXz1oLHc9cDsiQyIhPWUmJiJTIiE9ZXx8KF8rPV8tbyx3Kz13LXMpLGc9WyJDIixfLHcsZ1sxXSxnWzJdLGdbM10sZ1s0XV07YnJlYWs7Y2FzZSJUIjoiUSI9PWV8fCJUIj09ZT8odT0yKmgtdSxmPTIqcC1mKToodT1oLGY9cCksZz1hKGgscCx1LGYsZ1sxXSxnWzJdKTticmVhaztjYXNlIlEiOnU9Z1sxXSxmPWdbMl0sZz1hKGgscCxnWzFdLGdbMl0sZ1szXSxnWzRdKTticmVhaztjYXNlIkwiOmc9aShoLHAsZ1sxXSxnWzJdKTticmVhaztjYXNlIkgiOmc9aShoLHAsZ1sxXSxwKTticmVhaztjYXNlIlYiOmc9aShoLHAsaCxnWzFdKTticmVhaztjYXNlIloiOmc9aShoLHAsbCxjKX1lPXYsaD1nW2cubGVuZ3RoLTJdLHA9Z1tnLmxlbmd0aC0xXSxnLmxlbmd0aD40PyhvPWdbZy5sZW5ndGgtNF0scz1nW2cubGVuZ3RoLTNdKToobz1oLHM9cCksci5wdXNoKGcpfXJldHVybiByfTt2YXIgbj10KCJzdmctYXJjLXRvLWN1YmljLWJlemllciIpO2Z1bmN0aW9uIGkodCxlLHIsbil7cmV0dXJuWyJDIix0LGUscixuLHIsbl19ZnVuY3Rpb24gYSh0LGUscixuLGksYSl7cmV0dXJuWyJDIix0LzMrMi8zKnIsZS8zKzIvMypuLGkvMysyLzMqcixhLzMrMi8zKm4saSxhXX19LHsic3ZnLWFyYy10by1jdWJpYy1iZXppZXIiOjMwOH1dLDMxMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbixpPXQoInN2Zy1wYXRoLWJvdW5kcyIpLGE9dCgicGFyc2Utc3ZnLXBhdGgiKSxvPXQoImRyYXctc3ZnLXBhdGgiKSxzPXQoImlzLXN2Zy1wYXRoIiksbD10KCJiaXRtYXAtc2RmIiksYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSx1PWMuZ2V0Q29udGV4dCgiMmQiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZighcyh0KSl0aHJvdyBFcnJvcigiQXJndW1lbnQgc2hvdWxkIGJlIHZhbGlkIHN2ZyBwYXRoIHN0cmluZyIpO2V8fChlPXt9KTt2YXIgcixmO2Uuc2hhcGU/KHI9ZS5zaGFwZVswXSxmPWUuc2hhcGVbMV0pOihyPWMud2lkdGg9ZS53fHxlLndpZHRofHwyMDAsZj1jLmhlaWdodD1lLmh8fGUuaGVpZ2h0fHwyMDApO3ZhciBoPU1hdGgubWluKHIsZikscD1lLnN0cm9rZXx8MCxkPWUudmlld2JveHx8ZS52aWV3Qm94fHxpKHQpLG09W3IvKGRbMl0tZFswXSksZi8oZFszXS1kWzFdKV0sZz1NYXRoLm1pbihtWzBdfHwwLG1bMV18fDApLzI7dS5maWxsU3R5bGU9ImJsYWNrIix1LmZpbGxSZWN0KDAsMCxyLGYpLHUuZmlsbFN0eWxlPSJ3aGl0ZSIscCYmKCJudW1iZXIiIT10eXBlb2YgcCYmKHA9MSksdS5zdHJva2VTdHlsZT1wPjA/IndoaXRlIjoiYmxhY2siLHUubGluZVdpZHRoPU1hdGguYWJzKHApKTtpZih1LnRyYW5zbGF0ZSguNSpyLC41KmYpLHUuc2NhbGUoZyxnKSxmdW5jdGlvbigpe2lmKG51bGwhPW4pcmV0dXJuIG47dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIikuZ2V0Q29udGV4dCgiMmQiKTtpZih0LmNhbnZhcy53aWR0aD10LmNhbnZhcy5oZWlnaHQ9MSwhd2luZG93LlBhdGgyRClyZXR1cm4gbj0hMTt2YXIgZT1uZXcgUGF0aDJEKCJNMCwwaDF2MWgtMXYtMVoiKTt0LmZpbGxTdHlsZT0iYmxhY2siLHQuZmlsbChlKTt2YXIgcj10LmdldEltYWdlRGF0YSgwLDAsMSwxKTtyZXR1cm4gbj1yJiZyLmRhdGEmJjI1NT09PXIuZGF0YVszXX0oKSl7dmFyIHY9bmV3IFBhdGgyRCh0KTt1LmZpbGwodikscCYmdS5zdHJva2Uodil9ZWxzZXt2YXIgeT1hKHQpO28odSx5KSx1LmZpbGwoKSxwJiZ1LnN0cm9rZSgpfXJldHVybiB1LnNldFRyYW5zZm9ybSgxLDAsMCwxLDAsMCksbCh1LHtjdXRvZmY6bnVsbCE9ZS5jdXRvZmY/ZS5jdXRvZmY6LjUscmFkaXVzOm51bGwhPWUucmFkaXVzP2UucmFkaXVzOi41Kmh9KX19LHsiYml0bWFwLXNkZiI6ODIsImRyYXctc3ZnLXBhdGgiOjEyNiwiaXMtc3ZnLXBhdGgiOjIzOCwicGFyc2Utc3ZnLXBhdGgiOjI1MCwic3ZnLXBhdGgtYm91bmRzIjozMDl9XSwzMTI6W2Z1bmN0aW9uKHQsZSxyKXsoZnVuY3Rpb24oZSxuKXsoZnVuY3Rpb24oKXt2YXIgaT10KCJwcm9jZXNzL2Jyb3dzZXIuanMiKS5uZXh0VGljayxhPUZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseSxvPUFycmF5LnByb3RvdHlwZS5zbGljZSxzPXt9LGw9MDtmdW5jdGlvbiBjKHQsZSl7dGhpcy5faWQ9dCx0aGlzLl9jbGVhckZuPWV9ci5zZXRUaW1lb3V0PWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBjKGEuY2FsbChzZXRUaW1lb3V0LHdpbmRvdyxhcmd1bWVudHMpLGNsZWFyVGltZW91dCl9LHIuc2V0SW50ZXJ2YWw9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGMoYS5jYWxsKHNldEludGVydmFsLHdpbmRvdyxhcmd1bWVudHMpLGNsZWFySW50ZXJ2YWwpfSxyLmNsZWFyVGltZW91dD1yLmNsZWFySW50ZXJ2YWw9ZnVuY3Rpb24odCl7dC5jbG9zZSgpfSxjLnByb3RvdHlwZS51bnJlZj1jLnByb3RvdHlwZS5yZWY9ZnVuY3Rpb24oKXt9LGMucHJvdG90eXBlLmNsb3NlPWZ1bmN0aW9uKCl7dGhpcy5fY2xlYXJGbi5jYWxsKHdpbmRvdyx0aGlzLl9pZCl9LHIuZW5yb2xsPWZ1bmN0aW9uKHQsZSl7Y2xlYXJUaW1lb3V0KHQuX2lkbGVUaW1lb3V0SWQpLHQuX2lkbGVUaW1lb3V0PWV9LHIudW5lbnJvbGw9ZnVuY3Rpb24odCl7Y2xlYXJUaW1lb3V0KHQuX2lkbGVUaW1lb3V0SWQpLHQuX2lkbGVUaW1lb3V0PS0xfSxyLl91bnJlZkFjdGl2ZT1yLmFjdGl2ZT1mdW5jdGlvbih0KXtjbGVhclRpbWVvdXQodC5faWRsZVRpbWVvdXRJZCk7dmFyIGU9dC5faWRsZVRpbWVvdXQ7ZT49MCYmKHQuX2lkbGVUaW1lb3V0SWQ9c2V0VGltZW91dCgoZnVuY3Rpb24oKXt0Ll9vblRpbWVvdXQmJnQuX29uVGltZW91dCgpfSksZSkpfSxyLnNldEltbWVkaWF0ZT0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOmZ1bmN0aW9uKHQpe3ZhciBlPWwrKyxuPSEoYXJndW1lbnRzLmxlbmd0aDwyKSYmby5jYWxsKGFyZ3VtZW50cywxKTtyZXR1cm4gc1tlXT0hMCxpKChmdW5jdGlvbigpe3NbZV0mJihuP3QuYXBwbHkobnVsbCxuKTp0LmNhbGwobnVsbCksci5jbGVhckltbWVkaWF0ZShlKSl9KSksZX0sci5jbGVhckltbWVkaWF0ZT0iZnVuY3Rpb24iPT10eXBlb2Ygbj9uOmZ1bmN0aW9uKHQpe2RlbGV0ZSBzW3RdfX0pLmNhbGwodGhpcyl9KS5jYWxsKHRoaXMsdCgidGltZXJzIikuc2V0SW1tZWRpYXRlLHQoInRpbWVycyIpLmNsZWFySW1tZWRpYXRlKX0seyJwcm9jZXNzL2Jyb3dzZXIuanMiOjI3OCx0aW1lcnM6MzEyfV0sMzEzOltmdW5jdGlvbih0LGUscil7IWZ1bmN0aW9uKHQpe3ZhciByPS9eXHMrLyxuPS9ccyskLyxpPTAsYT10LnJvdW5kLG89dC5taW4scz10Lm1heCxsPXQucmFuZG9tO2Z1bmN0aW9uIGMoZSxsKXtpZihsPWx8fHt9LChlPWV8fCIiKWluc3RhbmNlb2YgYylyZXR1cm4gZTtpZighKHRoaXMgaW5zdGFuY2VvZiBjKSlyZXR1cm4gbmV3IGMoZSxsKTt2YXIgdT1mdW5jdGlvbihlKXt2YXIgaT17cjowLGc6MCxiOjB9LGE9MSxsPW51bGwsYz1udWxsLHU9bnVsbCxmPSExLGg9ITE7InN0cmluZyI9PXR5cGVvZiBlJiYoZT1mdW5jdGlvbih0KXt0PXQucmVwbGFjZShyLCIiKS5yZXBsYWNlKG4sIiIpLnRvTG93ZXJDYXNlKCk7dmFyIGUsaT0hMTtpZihTW3RdKXQ9U1t0XSxpPSEwO2Vsc2UgaWYoInRyYW5zcGFyZW50Ij09dClyZXR1cm57cjowLGc6MCxiOjAsYTowLGZvcm1hdDoibmFtZSJ9O2lmKGU9ai5yZ2IuZXhlYyh0KSlyZXR1cm57cjplWzFdLGc6ZVsyXSxiOmVbM119O2lmKGU9ai5yZ2JhLmV4ZWModCkpcmV0dXJue3I6ZVsxXSxnOmVbMl0sYjplWzNdLGE6ZVs0XX07aWYoZT1qLmhzbC5leGVjKHQpKXJldHVybntoOmVbMV0sczplWzJdLGw6ZVszXX07aWYoZT1qLmhzbGEuZXhlYyh0KSlyZXR1cm57aDplWzFdLHM6ZVsyXSxsOmVbM10sYTplWzRdfTtpZihlPWouaHN2LmV4ZWModCkpcmV0dXJue2g6ZVsxXSxzOmVbMl0sdjplWzNdfTtpZihlPWouaHN2YS5leGVjKHQpKXJldHVybntoOmVbMV0sczplWzJdLHY6ZVszXSxhOmVbNF19O2lmKGU9ai5oZXg4LmV4ZWModCkpcmV0dXJue3I6SShlWzFdKSxnOkkoZVsyXSksYjpJKGVbM10pLGE6UihlWzRdKSxmb3JtYXQ6aT8ibmFtZSI6ImhleDgifTtpZihlPWouaGV4Ni5leGVjKHQpKXJldHVybntyOkkoZVsxXSksZzpJKGVbMl0pLGI6SShlWzNdKSxmb3JtYXQ6aT8ibmFtZSI6ImhleCJ9O2lmKGU9ai5oZXg0LmV4ZWModCkpcmV0dXJue3I6SShlWzFdKyIiK2VbMV0pLGc6SShlWzJdKyIiK2VbMl0pLGI6SShlWzNdKyIiK2VbM10pLGE6UihlWzRdKyIiK2VbNF0pLGZvcm1hdDppPyJuYW1lIjoiaGV4OCJ9O2lmKGU9ai5oZXgzLmV4ZWModCkpcmV0dXJue3I6SShlWzFdKyIiK2VbMV0pLGc6SShlWzJdKyIiK2VbMl0pLGI6SShlWzNdKyIiK2VbM10pLGZvcm1hdDppPyJuYW1lIjoiaGV4In07cmV0dXJuITF9KGUpKTsib2JqZWN0Ij09dHlwZW9mIGUmJihVKGUucikmJlUoZS5nKSYmVShlLmIpPyhwPWUucixkPWUuZyxtPWUuYixpPXtyOjI1NSpDKHAsMjU1KSxnOjI1NSpDKGQsMjU1KSxiOjI1NSpDKG0sMjU1KX0sZj0hMCxoPSIlIj09PVN0cmluZyhlLnIpLnN1YnN0cigtMSk/InByZ2IiOiJyZ2IiKTpVKGUuaCkmJlUoZS5zKSYmVShlLnYpPyhsPXooZS5zKSxjPXooZS52KSxpPWZ1bmN0aW9uKGUscixuKXtlPTYqQyhlLDM2MCkscj1DKHIsMTAwKSxuPUMobiwxMDApO3ZhciBpPXQuZmxvb3IoZSksYT1lLWksbz1uKigxLXIpLHM9biooMS1hKnIpLGw9biooMS0oMS1hKSpyKSxjPWklNjtyZXR1cm57cjoyNTUqW24scyxvLG8sbCxuXVtjXSxnOjI1NSpbbCxuLG4scyxvLG9dW2NdLGI6MjU1KltvLG8sbCxuLG4sc11bY119fShlLmgsbCxjKSxmPSEwLGg9ImhzdiIpOlUoZS5oKSYmVShlLnMpJiZVKGUubCkmJihsPXooZS5zKSx1PXooZS5sKSxpPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbixpLGE7ZnVuY3Rpb24gbyh0LGUscil7cmV0dXJuIHI8MCYmKHIrPTEpLHI+MSYmKHItPTEpLHI8MS82P3QrNiooZS10KSpyOnI8LjU/ZTpyPDIvMz90KyhlLXQpKigyLzMtcikqNjp0fWlmKHQ9Qyh0LDM2MCksZT1DKGUsMTAwKSxyPUMociwxMDApLDA9PT1lKW49aT1hPXI7ZWxzZXt2YXIgcz1yPC41P3IqKDErZSk6citlLXIqZSxsPTIqci1zO249byhsLHMsdCsxLzMpLGk9byhsLHMsdCksYT1vKGwscyx0LTEvMyl9cmV0dXJue3I6MjU1Km4sZzoyNTUqaSxiOjI1NSphfX0oZS5oLGwsdSksZj0hMCxoPSJoc2wiKSxlLmhhc093blByb3BlcnR5KCJhIikmJihhPWUuYSkpO3ZhciBwLGQsbTtyZXR1cm4gYT1MKGEpLHtvazpmLGZvcm1hdDplLmZvcm1hdHx8aCxyOm8oMjU1LHMoaS5yLDApKSxnOm8oMjU1LHMoaS5nLDApKSxiOm8oMjU1LHMoaS5iLDApKSxhOmF9fShlKTt0aGlzLl9vcmlnaW5hbElucHV0PWUsdGhpcy5fcj11LnIsdGhpcy5fZz11LmcsdGhpcy5fYj11LmIsdGhpcy5fYT11LmEsdGhpcy5fcm91bmRBPWEoMTAwKnRoaXMuX2EpLzEwMCx0aGlzLl9mb3JtYXQ9bC5mb3JtYXR8fHUuZm9ybWF0LHRoaXMuX2dyYWRpZW50VHlwZT1sLmdyYWRpZW50VHlwZSx0aGlzLl9yPDEmJih0aGlzLl9yPWEodGhpcy5fcikpLHRoaXMuX2c8MSYmKHRoaXMuX2c9YSh0aGlzLl9nKSksdGhpcy5fYjwxJiYodGhpcy5fYj1hKHRoaXMuX2IpKSx0aGlzLl9vaz11Lm9rLHRoaXMuX3RjX2lkPWkrK31mdW5jdGlvbiB1KHQsZSxyKXt0PUModCwyNTUpLGU9QyhlLDI1NSkscj1DKHIsMjU1KTt2YXIgbixpLGE9cyh0LGUsciksbD1vKHQsZSxyKSxjPShhK2wpLzI7aWYoYT09bCluPWk9MDtlbHNle3ZhciB1PWEtbDtzd2l0Y2goaT1jPi41P3UvKDItYS1sKTp1LyhhK2wpLGEpe2Nhc2UgdDpuPShlLXIpL3UrKGU8cj82OjApO2JyZWFrO2Nhc2UgZTpuPShyLXQpL3UrMjticmVhaztjYXNlIHI6bj0odC1lKS91KzR9bi89Nn1yZXR1cm57aDpuLHM6aSxsOmN9fWZ1bmN0aW9uIGYodCxlLHIpe3Q9Qyh0LDI1NSksZT1DKGUsMjU1KSxyPUMociwyNTUpO3ZhciBuLGksYT1zKHQsZSxyKSxsPW8odCxlLHIpLGM9YSx1PWEtbDtpZihpPTA9PT1hPzA6dS9hLGE9PWwpbj0wO2Vsc2V7c3dpdGNoKGEpe2Nhc2UgdDpuPShlLXIpL3UrKGU8cj82OjApO2JyZWFrO2Nhc2UgZTpuPShyLXQpL3UrMjticmVhaztjYXNlIHI6bj0odC1lKS91KzR9bi89Nn1yZXR1cm57aDpuLHM6aSx2OmN9fWZ1bmN0aW9uIGgodCxlLHIsbil7dmFyIGk9W08oYSh0KS50b1N0cmluZygxNikpLE8oYShlKS50b1N0cmluZygxNikpLE8oYShyKS50b1N0cmluZygxNikpXTtyZXR1cm4gbiYmaVswXS5jaGFyQXQoMCk9PWlbMF0uY2hhckF0KDEpJiZpWzFdLmNoYXJBdCgwKT09aVsxXS5jaGFyQXQoMSkmJmlbMl0uY2hhckF0KDApPT1pWzJdLmNoYXJBdCgxKT9pWzBdLmNoYXJBdCgwKStpWzFdLmNoYXJBdCgwKStpWzJdLmNoYXJBdCgwKTppLmpvaW4oIiIpfWZ1bmN0aW9uIHAodCxlLHIsbil7cmV0dXJuW08oRChuKSksTyhhKHQpLnRvU3RyaW5nKDE2KSksTyhhKGUpLnRvU3RyaW5nKDE2KSksTyhhKHIpLnRvU3RyaW5nKDE2KSldLmpvaW4oIiIpfWZ1bmN0aW9uIGQodCxlKXtlPTA9PT1lPzA6ZXx8MTA7dmFyIHI9Yyh0KS50b0hzbCgpO3JldHVybiByLnMtPWUvMTAwLHIucz1QKHIucyksYyhyKX1mdW5jdGlvbiBtKHQsZSl7ZT0wPT09ZT8wOmV8fDEwO3ZhciByPWModCkudG9Ic2woKTtyZXR1cm4gci5zKz1lLzEwMCxyLnM9UChyLnMpLGMocil9ZnVuY3Rpb24gZyh0KXtyZXR1cm4gYyh0KS5kZXNhdHVyYXRlKDEwMCl9ZnVuY3Rpb24gdih0LGUpe2U9MD09PWU/MDplfHwxMDt2YXIgcj1jKHQpLnRvSHNsKCk7cmV0dXJuIHIubCs9ZS8xMDAsci5sPVAoci5sKSxjKHIpfWZ1bmN0aW9uIHkodCxlKXtlPTA9PT1lPzA6ZXx8MTA7dmFyIHI9Yyh0KS50b1JnYigpO3JldHVybiByLnI9cygwLG8oMjU1LHIuci1hKC1lLzEwMCoyNTUpKSksci5nPXMoMCxvKDI1NSxyLmctYSgtZS8xMDAqMjU1KSkpLHIuYj1zKDAsbygyNTUsci5iLWEoLWUvMTAwKjI1NSkpKSxjKHIpfWZ1bmN0aW9uIHgodCxlKXtlPTA9PT1lPzA6ZXx8MTA7dmFyIHI9Yyh0KS50b0hzbCgpO3JldHVybiByLmwtPWUvMTAwLHIubD1QKHIubCksYyhyKX1mdW5jdGlvbiBiKHQsZSl7dmFyIHI9Yyh0KS50b0hzbCgpLG49KHIuaCtlKSUzNjA7cmV0dXJuIHIuaD1uPDA/MzYwK246bixjKHIpfWZ1bmN0aW9uIF8odCl7dmFyIGU9Yyh0KS50b0hzbCgpO3JldHVybiBlLmg9KGUuaCsxODApJTM2MCxjKGUpfWZ1bmN0aW9uIHcodCl7dmFyIGU9Yyh0KS50b0hzbCgpLHI9ZS5oO3JldHVybltjKHQpLGMoe2g6KHIrMTIwKSUzNjAsczplLnMsbDplLmx9KSxjKHtoOihyKzI0MCklMzYwLHM6ZS5zLGw6ZS5sfSldfWZ1bmN0aW9uIFQodCl7dmFyIGU9Yyh0KS50b0hzbCgpLHI9ZS5oO3JldHVybltjKHQpLGMoe2g6KHIrOTApJTM2MCxzOmUucyxsOmUubH0pLGMoe2g6KHIrMTgwKSUzNjAsczplLnMsbDplLmx9KSxjKHtoOihyKzI3MCklMzYwLHM6ZS5zLGw6ZS5sfSldfWZ1bmN0aW9uIGsodCl7dmFyIGU9Yyh0KS50b0hzbCgpLHI9ZS5oO3JldHVybltjKHQpLGMoe2g6KHIrNzIpJTM2MCxzOmUucyxsOmUubH0pLGMoe2g6KHIrMjE2KSUzNjAsczplLnMsbDplLmx9KV19ZnVuY3Rpb24gQSh0LGUscil7ZT1lfHw2LHI9cnx8MzA7dmFyIG49Yyh0KS50b0hzbCgpLGk9MzYwL3IsYT1bYyh0KV07Zm9yKG4uaD0obi5oLShpKmU+PjEpKzcyMCklMzYwOy0tZTspbi5oPShuLmgraSklMzYwLGEucHVzaChjKG4pKTtyZXR1cm4gYX1mdW5jdGlvbiBNKHQsZSl7ZT1lfHw2O2Zvcih2YXIgcj1jKHQpLnRvSHN2KCksbj1yLmgsaT1yLnMsYT1yLnYsbz1bXSxzPTEvZTtlLS07KW8ucHVzaChjKHtoOm4sczppLHY6YX0pKSxhPShhK3MpJTE7cmV0dXJuIG99Yy5wcm90b3R5cGU9e2lzRGFyazpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldEJyaWdodG5lc3MoKTwxMjh9LGlzTGlnaHQ6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5pc0RhcmsoKX0saXNWYWxpZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9va30sZ2V0T3JpZ2luYWxJbnB1dDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9vcmlnaW5hbElucHV0fSxnZXRGb3JtYXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZm9ybWF0fSxnZXRBbHBoYTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hfSxnZXRCcmlnaHRuZXNzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy50b1JnYigpO3JldHVybigyOTkqdC5yKzU4Nyp0LmcrMTE0KnQuYikvMWUzfSxnZXRMdW1pbmFuY2U6ZnVuY3Rpb24oKXt2YXIgZSxyLG4saT10aGlzLnRvUmdiKCk7cmV0dXJuIGU9aS5yLzI1NSxyPWkuZy8yNTUsbj1pLmIvMjU1LC4yMTI2KihlPD0uMDM5Mjg/ZS8xMi45Mjp0LnBvdygoZSsuMDU1KS8xLjA1NSwyLjQpKSsuNzE1Mioocjw9LjAzOTI4P3IvMTIuOTI6dC5wb3coKHIrLjA1NSkvMS4wNTUsMi40KSkrLjA3MjIqKG48PS4wMzkyOD9uLzEyLjkyOnQucG93KChuKy4wNTUpLzEuMDU1LDIuNCkpfSxzZXRBbHBoYTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fYT1MKHQpLHRoaXMuX3JvdW5kQT1hKDEwMCp0aGlzLl9hKS8xMDAsdGhpc30sdG9Ic3Y6ZnVuY3Rpb24oKXt2YXIgdD1mKHRoaXMuX3IsdGhpcy5fZyx0aGlzLl9iKTtyZXR1cm57aDozNjAqdC5oLHM6dC5zLHY6dC52LGE6dGhpcy5fYX19LHRvSHN2U3RyaW5nOmZ1bmN0aW9uKCl7dmFyIHQ9Zih0aGlzLl9yLHRoaXMuX2csdGhpcy5fYiksZT1hKDM2MCp0LmgpLHI9YSgxMDAqdC5zKSxuPWEoMTAwKnQudik7cmV0dXJuIDE9PXRoaXMuX2E/ImhzdigiK2UrIiwgIityKyIlLCAiK24rIiUpIjoiaHN2YSgiK2UrIiwgIityKyIlLCAiK24rIiUsICIrdGhpcy5fcm91bmRBKyIpIn0sdG9Ic2w6ZnVuY3Rpb24oKXt2YXIgdD11KHRoaXMuX3IsdGhpcy5fZyx0aGlzLl9iKTtyZXR1cm57aDozNjAqdC5oLHM6dC5zLGw6dC5sLGE6dGhpcy5fYX19LHRvSHNsU3RyaW5nOmZ1bmN0aW9uKCl7dmFyIHQ9dSh0aGlzLl9yLHRoaXMuX2csdGhpcy5fYiksZT1hKDM2MCp0LmgpLHI9YSgxMDAqdC5zKSxuPWEoMTAwKnQubCk7cmV0dXJuIDE9PXRoaXMuX2E/ImhzbCgiK2UrIiwgIityKyIlLCAiK24rIiUpIjoiaHNsYSgiK2UrIiwgIityKyIlLCAiK24rIiUsICIrdGhpcy5fcm91bmRBKyIpIn0sdG9IZXg6ZnVuY3Rpb24odCl7cmV0dXJuIGgodGhpcy5fcix0aGlzLl9nLHRoaXMuX2IsdCl9LHRvSGV4U3RyaW5nOmZ1bmN0aW9uKHQpe3JldHVybiIjIit0aGlzLnRvSGV4KHQpfSx0b0hleDg6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIG89W08oYSh0KS50b1N0cmluZygxNikpLE8oYShlKS50b1N0cmluZygxNikpLE8oYShyKS50b1N0cmluZygxNikpLE8oRChuKSldO2lmKGkmJm9bMF0uY2hhckF0KDApPT1vWzBdLmNoYXJBdCgxKSYmb1sxXS5jaGFyQXQoMCk9PW9bMV0uY2hhckF0KDEpJiZvWzJdLmNoYXJBdCgwKT09b1syXS5jaGFyQXQoMSkmJm9bM10uY2hhckF0KDApPT1vWzNdLmNoYXJBdCgxKSlyZXR1cm4gb1swXS5jaGFyQXQoMCkrb1sxXS5jaGFyQXQoMCkrb1syXS5jaGFyQXQoMCkrb1szXS5jaGFyQXQoMCk7cmV0dXJuIG8uam9pbigiIil9KHRoaXMuX3IsdGhpcy5fZyx0aGlzLl9iLHRoaXMuX2EsdCl9LHRvSGV4OFN0cmluZzpmdW5jdGlvbih0KXtyZXR1cm4iIyIrdGhpcy50b0hleDgodCl9LHRvUmdiOmZ1bmN0aW9uKCl7cmV0dXJue3I6YSh0aGlzLl9yKSxnOmEodGhpcy5fZyksYjphKHRoaXMuX2IpLGE6dGhpcy5fYX19LHRvUmdiU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIDE9PXRoaXMuX2E/InJnYigiK2EodGhpcy5fcikrIiwgIithKHRoaXMuX2cpKyIsICIrYSh0aGlzLl9iKSsiKSI6InJnYmEoIithKHRoaXMuX3IpKyIsICIrYSh0aGlzLl9nKSsiLCAiK2EodGhpcy5fYikrIiwgIit0aGlzLl9yb3VuZEErIikifSx0b1BlcmNlbnRhZ2VSZ2I6ZnVuY3Rpb24oKXtyZXR1cm57cjphKDEwMCpDKHRoaXMuX3IsMjU1KSkrIiUiLGc6YSgxMDAqQyh0aGlzLl9nLDI1NSkpKyIlIixiOmEoMTAwKkModGhpcy5fYiwyNTUpKSsiJSIsYTp0aGlzLl9hfX0sdG9QZXJjZW50YWdlUmdiU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIDE9PXRoaXMuX2E/InJnYigiK2EoMTAwKkModGhpcy5fciwyNTUpKSsiJSwgIithKDEwMCpDKHRoaXMuX2csMjU1KSkrIiUsICIrYSgxMDAqQyh0aGlzLl9iLDI1NSkpKyIlKSI6InJnYmEoIithKDEwMCpDKHRoaXMuX3IsMjU1KSkrIiUsICIrYSgxMDAqQyh0aGlzLl9nLDI1NSkpKyIlLCAiK2EoMTAwKkModGhpcy5fYiwyNTUpKSsiJSwgIit0aGlzLl9yb3VuZEErIikifSx0b05hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuX2E/InRyYW5zcGFyZW50IjohKHRoaXMuX2E8MSkmJihFW2godGhpcy5fcix0aGlzLl9nLHRoaXMuX2IsITApXXx8ITEpfSx0b0ZpbHRlcjpmdW5jdGlvbih0KXt2YXIgZT0iIyIrcCh0aGlzLl9yLHRoaXMuX2csdGhpcy5fYix0aGlzLl9hKSxyPWUsbj10aGlzLl9ncmFkaWVudFR5cGU/IkdyYWRpZW50VHlwZSA9IDEsICI6IiI7aWYodCl7dmFyIGk9Yyh0KTtyPSIjIitwKGkuX3IsaS5fZyxpLl9iLGkuX2EpfXJldHVybiJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIituKyJzdGFydENvbG9yc3RyPSIrZSsiLGVuZENvbG9yc3RyPSIrcisiKSJ9LHRvU3RyaW5nOmZ1bmN0aW9uKHQpe3ZhciBlPSEhdDt0PXR8fHRoaXMuX2Zvcm1hdDt2YXIgcj0hMSxuPXRoaXMuX2E8MSYmdGhpcy5fYT49MDtyZXR1cm4gZXx8IW58fCJoZXgiIT09dCYmImhleDYiIT09dCYmImhleDMiIT09dCYmImhleDQiIT09dCYmImhleDgiIT09dCYmIm5hbWUiIT09dD8oInJnYiI9PT10JiYocj10aGlzLnRvUmdiU3RyaW5nKCkpLCJwcmdiIj09PXQmJihyPXRoaXMudG9QZXJjZW50YWdlUmdiU3RyaW5nKCkpLCJoZXgiIT09dCYmImhleDYiIT09dHx8KHI9dGhpcy50b0hleFN0cmluZygpKSwiaGV4MyI9PT10JiYocj10aGlzLnRvSGV4U3RyaW5nKCEwKSksImhleDQiPT09dCYmKHI9dGhpcy50b0hleDhTdHJpbmcoITApKSwiaGV4OCI9PT10JiYocj10aGlzLnRvSGV4OFN0cmluZygpKSwibmFtZSI9PT10JiYocj10aGlzLnRvTmFtZSgpKSwiaHNsIj09PXQmJihyPXRoaXMudG9Ic2xTdHJpbmcoKSksImhzdiI9PT10JiYocj10aGlzLnRvSHN2U3RyaW5nKCkpLHJ8fHRoaXMudG9IZXhTdHJpbmcoKSk6Im5hbWUiPT09dCYmMD09PXRoaXMuX2E/dGhpcy50b05hbWUoKTp0aGlzLnRvUmdiU3RyaW5nKCl9LGNsb25lOmZ1bmN0aW9uKCl7cmV0dXJuIGModGhpcy50b1N0cmluZygpKX0sX2FwcGx5TW9kaWZpY2F0aW9uOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5hcHBseShudWxsLFt0aGlzXS5jb25jYXQoW10uc2xpY2UuY2FsbChlKSkpO3JldHVybiB0aGlzLl9yPXIuX3IsdGhpcy5fZz1yLl9nLHRoaXMuX2I9ci5fYix0aGlzLnNldEFscGhhKHIuX2EpLHRoaXN9LGxpZ2h0ZW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXBwbHlNb2RpZmljYXRpb24odixhcmd1bWVudHMpfSxicmlnaHRlbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbih5LGFyZ3VtZW50cyl9LGRhcmtlbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbih4LGFyZ3VtZW50cyl9LGRlc2F0dXJhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXBwbHlNb2RpZmljYXRpb24oZCxhcmd1bWVudHMpfSxzYXR1cmF0ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbihtLGFyZ3VtZW50cyl9LGdyZXlzY2FsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbihnLGFyZ3VtZW50cyl9LHNwaW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXBwbHlNb2RpZmljYXRpb24oYixhcmd1bWVudHMpfSxfYXBwbHlDb21iaW5hdGlvbjpmdW5jdGlvbih0LGUpe3JldHVybiB0LmFwcGx5KG51bGwsW3RoaXNdLmNvbmNhdChbXS5zbGljZS5jYWxsKGUpKSl9LGFuYWxvZ291czpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseUNvbWJpbmF0aW9uKEEsYXJndW1lbnRzKX0sY29tcGxlbWVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseUNvbWJpbmF0aW9uKF8sYXJndW1lbnRzKX0sbW9ub2Nocm9tYXRpYzpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseUNvbWJpbmF0aW9uKE0sYXJndW1lbnRzKX0sc3BsaXRjb21wbGVtZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FwcGx5Q29tYmluYXRpb24oayxhcmd1bWVudHMpfSx0cmlhZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseUNvbWJpbmF0aW9uKHcsYXJndW1lbnRzKX0sdGV0cmFkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FwcGx5Q29tYmluYXRpb24oVCxhcmd1bWVudHMpfX0sYy5mcm9tUmF0aW89ZnVuY3Rpb24odCxlKXtpZigib2JqZWN0Ij09dHlwZW9mIHQpe3ZhciByPXt9O2Zvcih2YXIgbiBpbiB0KXQuaGFzT3duUHJvcGVydHkobikmJihyW25dPSJhIj09PW4/dFtuXTp6KHRbbl0pKTt0PXJ9cmV0dXJuIGModCxlKX0sYy5lcXVhbHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4hKCF0fHwhZSkmJmModCkudG9SZ2JTdHJpbmcoKT09YyhlKS50b1JnYlN0cmluZygpfSxjLnJhbmRvbT1mdW5jdGlvbigpe3JldHVybiBjLmZyb21SYXRpbyh7cjpsKCksZzpsKCksYjpsKCl9KX0sYy5taXg9ZnVuY3Rpb24odCxlLHIpe3I9MD09PXI/MDpyfHw1MDt2YXIgbj1jKHQpLnRvUmdiKCksaT1jKGUpLnRvUmdiKCksYT1yLzEwMDtyZXR1cm4gYyh7cjooaS5yLW4ucikqYStuLnIsZzooaS5nLW4uZykqYStuLmcsYjooaS5iLW4uYikqYStuLmIsYTooaS5hLW4uYSkqYStuLmF9KX0sYy5yZWFkYWJpbGl0eT1mdW5jdGlvbihlLHIpe3ZhciBuPWMoZSksaT1jKHIpO3JldHVybih0Lm1heChuLmdldEx1bWluYW5jZSgpLGkuZ2V0THVtaW5hbmNlKCkpKy4wNSkvKHQubWluKG4uZ2V0THVtaW5hbmNlKCksaS5nZXRMdW1pbmFuY2UoKSkrLjA1KX0sYy5pc1JlYWRhYmxlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbixpLGE9Yy5yZWFkYWJpbGl0eSh0LGUpO3N3aXRjaChpPSExLChuPWZ1bmN0aW9uKHQpe3ZhciBlLHI7ZT0oKHQ9dHx8e2xldmVsOiJBQSIsc2l6ZToic21hbGwifSkubGV2ZWx8fCJBQSIpLnRvVXBwZXJDYXNlKCkscj0odC5zaXplfHwic21hbGwiKS50b0xvd2VyQ2FzZSgpLCJBQSIhPT1lJiYiQUFBIiE9PWUmJihlPSJBQSIpOyJzbWFsbCIhPT1yJiYibGFyZ2UiIT09ciYmKHI9InNtYWxsIik7cmV0dXJue2xldmVsOmUsc2l6ZTpyfX0ocikpLmxldmVsK24uc2l6ZSl7Y2FzZSJBQXNtYWxsIjpjYXNlIkFBQWxhcmdlIjppPWE+PTQuNTticmVhaztjYXNlIkFBbGFyZ2UiOmk9YT49MzticmVhaztjYXNlIkFBQXNtYWxsIjppPWE+PTd9cmV0dXJuIGl9LGMubW9zdFJlYWRhYmxlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbixpLGEsbyxzPW51bGwsbD0wO2k9KHI9cnx8e30pLmluY2x1ZGVGYWxsYmFja0NvbG9ycyxhPXIubGV2ZWwsbz1yLnNpemU7Zm9yKHZhciB1PTA7dTxlLmxlbmd0aDt1KyspKG49Yy5yZWFkYWJpbGl0eSh0LGVbdV0pKT5sJiYobD1uLHM9YyhlW3VdKSk7cmV0dXJuIGMuaXNSZWFkYWJsZSh0LHMse2xldmVsOmEsc2l6ZTpvfSl8fCFpP3M6KHIuaW5jbHVkZUZhbGxiYWNrQ29sb3JzPSExLGMubW9zdFJlYWRhYmxlKHQsWyIjZmZmIiwiIzAwMCJdLHIpKX07dmFyIFM9Yy5uYW1lcz17YWxpY2VibHVlOiJmMGY4ZmYiLGFudGlxdWV3aGl0ZToiZmFlYmQ3IixhcXVhOiIwZmYiLGFxdWFtYXJpbmU6IjdmZmZkNCIsYXp1cmU6ImYwZmZmZiIsYmVpZ2U6ImY1ZjVkYyIsYmlzcXVlOiJmZmU0YzQiLGJsYWNrOiIwMDAiLGJsYW5jaGVkYWxtb25kOiJmZmViY2QiLGJsdWU6IjAwZiIsYmx1ZXZpb2xldDoiOGEyYmUyIixicm93bjoiYTUyYTJhIixidXJseXdvb2Q6ImRlYjg4NyIsYnVybnRzaWVubmE6ImVhN2U1ZCIsY2FkZXRibHVlOiI1ZjllYTAiLGNoYXJ0cmV1c2U6IjdmZmYwMCIsY2hvY29sYXRlOiJkMjY5MWUiLGNvcmFsOiJmZjdmNTAiLGNvcm5mbG93ZXJibHVlOiI2NDk1ZWQiLGNvcm5zaWxrOiJmZmY4ZGMiLGNyaW1zb246ImRjMTQzYyIsY3lhbjoiMGZmIixkYXJrYmx1ZToiMDAwMDhiIixkYXJrY3lhbjoiMDA4YjhiIixkYXJrZ29sZGVucm9kOiJiODg2MGIiLGRhcmtncmF5OiJhOWE5YTkiLGRhcmtncmVlbjoiMDA2NDAwIixkYXJrZ3JleToiYTlhOWE5IixkYXJra2hha2k6ImJkYjc2YiIsZGFya21hZ2VudGE6IjhiMDA4YiIsZGFya29saXZlZ3JlZW46IjU1NmIyZiIsZGFya29yYW5nZToiZmY4YzAwIixkYXJrb3JjaGlkOiI5OTMyY2MiLGRhcmtyZWQ6IjhiMDAwMCIsZGFya3NhbG1vbjoiZTk5NjdhIixkYXJrc2VhZ3JlZW46IjhmYmM4ZiIsZGFya3NsYXRlYmx1ZToiNDgzZDhiIixkYXJrc2xhdGVncmF5OiIyZjRmNGYiLGRhcmtzbGF0ZWdyZXk6IjJmNGY0ZiIsZGFya3R1cnF1b2lzZToiMDBjZWQxIixkYXJrdmlvbGV0OiI5NDAwZDMiLGRlZXBwaW5rOiJmZjE0OTMiLGRlZXBza3libHVlOiIwMGJmZmYiLGRpbWdyYXk6IjY5Njk2OSIsZGltZ3JleToiNjk2OTY5Iixkb2RnZXJibHVlOiIxZTkwZmYiLGZpcmVicmljazoiYjIyMjIyIixmbG9yYWx3aGl0ZToiZmZmYWYwIixmb3Jlc3RncmVlbjoiMjI4YjIyIixmdWNoc2lhOiJmMGYiLGdhaW5zYm9ybzoiZGNkY2RjIixnaG9zdHdoaXRlOiJmOGY4ZmYiLGdvbGQ6ImZmZDcwMCIsZ29sZGVucm9kOiJkYWE1MjAiLGdyYXk6IjgwODA4MCIsZ3JlZW46IjAwODAwMCIsZ3JlZW55ZWxsb3c6ImFkZmYyZiIsZ3JleToiODA4MDgwIixob25leWRldzoiZjBmZmYwIixob3RwaW5rOiJmZjY5YjQiLGluZGlhbnJlZDoiY2Q1YzVjIixpbmRpZ286IjRiMDA4MiIsaXZvcnk6ImZmZmZmMCIsa2hha2k6ImYwZTY4YyIsbGF2ZW5kZXI6ImU2ZTZmYSIsbGF2ZW5kZXJibHVzaDoiZmZmMGY1IixsYXduZ3JlZW46IjdjZmMwMCIsbGVtb25jaGlmZm9uOiJmZmZhY2QiLGxpZ2h0Ymx1ZToiYWRkOGU2IixsaWdodGNvcmFsOiJmMDgwODAiLGxpZ2h0Y3lhbjoiZTBmZmZmIixsaWdodGdvbGRlbnJvZHllbGxvdzoiZmFmYWQyIixsaWdodGdyYXk6ImQzZDNkMyIsbGlnaHRncmVlbjoiOTBlZTkwIixsaWdodGdyZXk6ImQzZDNkMyIsbGlnaHRwaW5rOiJmZmI2YzEiLGxpZ2h0c2FsbW9uOiJmZmEwN2EiLGxpZ2h0c2VhZ3JlZW46IjIwYjJhYSIsbGlnaHRza3libHVlOiI4N2NlZmEiLGxpZ2h0c2xhdGVncmF5OiI3ODkiLGxpZ2h0c2xhdGVncmV5OiI3ODkiLGxpZ2h0c3RlZWxibHVlOiJiMGM0ZGUiLGxpZ2h0eWVsbG93OiJmZmZmZTAiLGxpbWU6IjBmMCIsbGltZWdyZWVuOiIzMmNkMzIiLGxpbmVuOiJmYWYwZTYiLG1hZ2VudGE6ImYwZiIsbWFyb29uOiI4MDAwMDAiLG1lZGl1bWFxdWFtYXJpbmU6IjY2Y2RhYSIsbWVkaXVtYmx1ZToiMDAwMGNkIixtZWRpdW1vcmNoaWQ6ImJhNTVkMyIsbWVkaXVtcHVycGxlOiI5MzcwZGIiLG1lZGl1bXNlYWdyZWVuOiIzY2IzNzEiLG1lZGl1bXNsYXRlYmx1ZToiN2I2OGVlIixtZWRpdW1zcHJpbmdncmVlbjoiMDBmYTlhIixtZWRpdW10dXJxdW9pc2U6IjQ4ZDFjYyIsbWVkaXVtdmlvbGV0cmVkOiJjNzE1ODUiLG1pZG5pZ2h0Ymx1ZToiMTkxOTcwIixtaW50Y3JlYW06ImY1ZmZmYSIsbWlzdHlyb3NlOiJmZmU0ZTEiLG1vY2Nhc2luOiJmZmU0YjUiLG5hdmFqb3doaXRlOiJmZmRlYWQiLG5hdnk6IjAwMDA4MCIsb2xkbGFjZToiZmRmNWU2IixvbGl2ZToiODA4MDAwIixvbGl2ZWRyYWI6IjZiOGUyMyIsb3JhbmdlOiJmZmE1MDAiLG9yYW5nZXJlZDoiZmY0NTAwIixvcmNoaWQ6ImRhNzBkNiIscGFsZWdvbGRlbnJvZDoiZWVlOGFhIixwYWxlZ3JlZW46Ijk4ZmI5OCIscGFsZXR1cnF1b2lzZToiYWZlZWVlIixwYWxldmlvbGV0cmVkOiJkYjcwOTMiLHBhcGF5YXdoaXA6ImZmZWZkNSIscGVhY2hwdWZmOiJmZmRhYjkiLHBlcnU6ImNkODUzZiIscGluazoiZmZjMGNiIixwbHVtOiJkZGEwZGQiLHBvd2RlcmJsdWU6ImIwZTBlNiIscHVycGxlOiI4MDAwODAiLHJlYmVjY2FwdXJwbGU6IjY2MzM5OSIscmVkOiJmMDAiLHJvc3licm93bjoiYmM4ZjhmIixyb3lhbGJsdWU6IjQxNjllMSIsc2FkZGxlYnJvd246IjhiNDUxMyIsc2FsbW9uOiJmYTgwNzIiLHNhbmR5YnJvd246ImY0YTQ2MCIsc2VhZ3JlZW46IjJlOGI1NyIsc2Vhc2hlbGw6ImZmZjVlZSIsc2llbm5hOiJhMDUyMmQiLHNpbHZlcjoiYzBjMGMwIixza3libHVlOiI4N2NlZWIiLHNsYXRlYmx1ZToiNmE1YWNkIixzbGF0ZWdyYXk6IjcwODA5MCIsc2xhdGVncmV5OiI3MDgwOTAiLHNub3c6ImZmZmFmYSIsc3ByaW5nZ3JlZW46IjAwZmY3ZiIsc3RlZWxibHVlOiI0NjgyYjQiLHRhbjoiZDJiNDhjIix0ZWFsOiIwMDgwODAiLHRoaXN0bGU6ImQ4YmZkOCIsdG9tYXRvOiJmZjYzNDciLHR1cnF1b2lzZToiNDBlMGQwIix2aW9sZXQ6ImVlODJlZSIsd2hlYXQ6ImY1ZGViMyIsd2hpdGU6ImZmZiIsd2hpdGVzbW9rZToiZjVmNWY1Iix5ZWxsb3c6ImZmMCIseWVsbG93Z3JlZW46IjlhY2QzMiJ9LEU9Yy5oZXhOYW1lcz1mdW5jdGlvbih0KXt2YXIgZT17fTtmb3IodmFyIHIgaW4gdCl0Lmhhc093blByb3BlcnR5KHIpJiYoZVt0W3JdXT1yKTtyZXR1cm4gZX0oUyk7ZnVuY3Rpb24gTCh0KXtyZXR1cm4gdD1wYXJzZUZsb2F0KHQpLChpc05hTih0KXx8dDwwfHx0PjEpJiYodD0xKSx0fWZ1bmN0aW9uIEMoZSxyKXsoZnVuY3Rpb24odCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0JiYtMSE9dC5pbmRleE9mKCIuIikmJjE9PT1wYXJzZUZsb2F0KHQpfSkoZSkmJihlPSIxMDAlIik7dmFyIG49ZnVuY3Rpb24odCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0JiYtMSE9dC5pbmRleE9mKCIlIil9KGUpO3JldHVybiBlPW8ocixzKDAscGFyc2VGbG9hdChlKSkpLG4mJihlPXBhcnNlSW50KGUqciwxMCkvMTAwKSx0LmFicyhlLXIpPDFlLTY/MTplJXIvcGFyc2VGbG9hdChyKX1mdW5jdGlvbiBQKHQpe3JldHVybiBvKDEscygwLHQpKX1mdW5jdGlvbiBJKHQpe3JldHVybiBwYXJzZUludCh0LDE2KX1mdW5jdGlvbiBPKHQpe3JldHVybiAxPT10Lmxlbmd0aD8iMCIrdDoiIit0fWZ1bmN0aW9uIHoodCl7cmV0dXJuIHQ8PTEmJih0PTEwMCp0KyIlIiksdH1mdW5jdGlvbiBEKGUpe3JldHVybiB0LnJvdW5kKDI1NSpwYXJzZUZsb2F0KGUpKS50b1N0cmluZygxNil9ZnVuY3Rpb24gUih0KXtyZXR1cm4gSSh0KS8yNTV9dmFyIEYsQixOLGo9KEI9IltcXHN8XFwoXSsoIisoRj0iKD86Wy1cXCtdP1xcZCpcXC5cXGQrJT8pfCg/OlstXFwrXT9cXGQrJT8pIikrIilbLHxcXHNdKygiK0YrIilbLHxcXHNdKygiK0YrIilcXHMqXFwpPyIsTj0iW1xcc3xcXChdKygiK0YrIilbLHxcXHNdKygiK0YrIilbLHxcXHNdKygiK0YrIilbLHxcXHNdKygiK0YrIilcXHMqXFwpPyIse0NTU19VTklUOm5ldyBSZWdFeHAoRikscmdiOm5ldyBSZWdFeHAoInJnYiIrQikscmdiYTpuZXcgUmVnRXhwKCJyZ2JhIitOKSxoc2w6bmV3IFJlZ0V4cCgiaHNsIitCKSxoc2xhOm5ldyBSZWdFeHAoImhzbGEiK04pLGhzdjpuZXcgUmVnRXhwKCJoc3YiK0IpLGhzdmE6bmV3IFJlZ0V4cCgiaHN2YSIrTiksaGV4MzovXiM/KFswLTlhLWZBLUZdezF9KShbMC05YS1mQS1GXXsxfSkoWzAtOWEtZkEtRl17MX0pJC8saGV4NjovXiM/KFswLTlhLWZBLUZdezJ9KShbMC05YS1mQS1GXXsyfSkoWzAtOWEtZkEtRl17Mn0pJC8saGV4NDovXiM/KFswLTlhLWZBLUZdezF9KShbMC05YS1mQS1GXXsxfSkoWzAtOWEtZkEtRl17MX0pKFswLTlhLWZBLUZdezF9KSQvLGhleDg6L14jPyhbMC05YS1mQS1GXXsyfSkoWzAtOWEtZkEtRl17Mn0pKFswLTlhLWZBLUZdezJ9KShbMC05YS1mQS1GXXsyfSkkL30pO2Z1bmN0aW9uIFUodCl7cmV0dXJuISFqLkNTU19VTklULmV4ZWModCl9dm9pZCAwIT09ZSYmZS5leHBvcnRzP2UuZXhwb3J0cz1jOndpbmRvdy50aW55Y29sb3I9Y30oTWF0aCl9LHt9XSwzMTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWksZS5leHBvcnRzLmZsb2F0MzI9ZS5leHBvcnRzLmZsb2F0PWksZS5leHBvcnRzLmZyYWN0MzI9ZS5leHBvcnRzLmZyYWN0PWZ1bmN0aW9uKHQsZSl7aWYodC5sZW5ndGgpe2lmKHQgaW5zdGFuY2VvZiBGbG9hdDMyQXJyYXkpcmV0dXJuIG5ldyBGbG9hdDMyQXJyYXkodC5sZW5ndGgpO2UgaW5zdGFuY2VvZiBGbG9hdDMyQXJyYXl8fChlPWkodCkpO2Zvcih2YXIgcj0wLG49ZS5sZW5ndGg7cjxuO3IrKyllW3JdPXRbcl0tZVtyXTtyZXR1cm4gZX1yZXR1cm4gaSh0LWkodCkpfTt2YXIgbj1uZXcgRmxvYXQzMkFycmF5KDEpO2Z1bmN0aW9uIGkodCl7cmV0dXJuIHQubGVuZ3RoP3QgaW5zdGFuY2VvZiBGbG9hdDMyQXJyYXk/dDpuZXcgRmxvYXQzMkFycmF5KHQpOihuWzBdPXQsblswXSl9fSx7fV0sMzE1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInBhcnNlLXVuaXQiKTtlLmV4cG9ydHM9YTtmdW5jdGlvbiBpKHQsZSl7dmFyIHI9bihnZXRDb21wdXRlZFN0eWxlKHQpLmdldFByb3BlcnR5VmFsdWUoZSkpO3JldHVybiByWzBdKmEoclsxXSx0KX1mdW5jdGlvbiBhKHQsZSl7c3dpdGNoKGU9ZXx8ZG9jdW1lbnQuYm9keSx0PSh0fHwicHgiKS50cmltKCkudG9Mb3dlckNhc2UoKSxlIT09d2luZG93JiZlIT09ZG9jdW1lbnR8fChlPWRvY3VtZW50LmJvZHkpLHQpe2Nhc2UiJSI6cmV0dXJuIGUuY2xpZW50SGVpZ2h0LzEwMDtjYXNlImNoIjpjYXNlImV4IjpyZXR1cm4gZnVuY3Rpb24odCxlKXt2YXIgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyLnN0eWxlWyJmb250LXNpemUiXT0iMTI4Iit0LGUuYXBwZW5kQ2hpbGQocik7dmFyIG49aShyLCJmb250LXNpemUiKS8xMjg7cmV0dXJuIGUucmVtb3ZlQ2hpbGQociksbn0odCxlKTtjYXNlImVtIjpyZXR1cm4gaShlLCJmb250LXNpemUiKTtjYXNlInJlbSI6cmV0dXJuIGkoZG9jdW1lbnQuYm9keSwiZm9udC1zaXplIik7Y2FzZSJ2dyI6cmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoLzEwMDtjYXNlInZoIjpyZXR1cm4gd2luZG93LmlubmVySGVpZ2h0LzEwMDtjYXNlInZtaW4iOnJldHVybiBNYXRoLm1pbih3aW5kb3cuaW5uZXJXaWR0aCx3aW5kb3cuaW5uZXJIZWlnaHQpLzEwMDtjYXNlInZtYXgiOnJldHVybiBNYXRoLm1heCh3aW5kb3cuaW5uZXJXaWR0aCx3aW5kb3cuaW5uZXJIZWlnaHQpLzEwMDtjYXNlImluIjpyZXR1cm4gOTY7Y2FzZSJjbSI6cmV0dXJuIDk2LzIuNTQ7Y2FzZSJtbSI6cmV0dXJuIDk2LzI1LjQ7Y2FzZSJwdCI6cmV0dXJuIDk2LzcyO2Nhc2UicGMiOnJldHVybiAxNn1yZXR1cm4gMX19LHsicGFyc2UtdW5pdCI6MjUxfV0sMzE2OltmdW5jdGlvbih0LGUscil7IWZ1bmN0aW9uKHQsbil7Im9iamVjdCI9PXR5cGVvZiByJiZ2b2lkIDAhPT1lP24ocik6bigodD10fHxzZWxmKS50b3BvanNvbj10LnRvcG9qc29ufHx7fSl9KHRoaXMsKGZ1bmN0aW9uKHQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBlKHQpe3JldHVybiB0fWZ1bmN0aW9uIHIodCl7aWYobnVsbD09dClyZXR1cm4gZTt2YXIgcixuLGk9dC5zY2FsZVswXSxhPXQuc2NhbGVbMV0sbz10LnRyYW5zbGF0ZVswXSxzPXQudHJhbnNsYXRlWzFdO3JldHVybiBmdW5jdGlvbih0LGUpe2V8fChyPW49MCk7dmFyIGw9MixjPXQubGVuZ3RoLHU9bmV3IEFycmF5KGMpO2Zvcih1WzBdPShyKz10WzBdKSppK28sdVsxXT0obis9dFsxXSkqYStzO2w8YzspdVtsXT10W2xdLCsrbDtyZXR1cm4gdX19ZnVuY3Rpb24gbih0KXt2YXIgZSxuPXIodC50cmFuc2Zvcm0pLGk9MS8wLGE9aSxvPS1pLHM9LWk7ZnVuY3Rpb24gbCh0KXsodD1uKHQpKVswXTxpJiYoaT10WzBdKSx0WzBdPm8mJihvPXRbMF0pLHRbMV08YSYmKGE9dFsxXSksdFsxXT5zJiYocz10WzFdKX1mdW5jdGlvbiBjKHQpe3N3aXRjaCh0LnR5cGUpe2Nhc2UiR2VvbWV0cnlDb2xsZWN0aW9uIjp0Lmdlb21ldHJpZXMuZm9yRWFjaChjKTticmVhaztjYXNlIlBvaW50IjpsKHQuY29vcmRpbmF0ZXMpO2JyZWFrO2Nhc2UiTXVsdGlQb2ludCI6dC5jb29yZGluYXRlcy5mb3JFYWNoKGwpfX1mb3IoZSBpbiB0LmFyY3MuZm9yRWFjaCgoZnVuY3Rpb24odCl7Zm9yKHZhciBlLHI9LTEsbD10Lmxlbmd0aDsrK3I8bDspKGU9bih0W3JdLHIpKVswXTxpJiYoaT1lWzBdKSxlWzBdPm8mJihvPWVbMF0pLGVbMV08YSYmKGE9ZVsxXSksZVsxXT5zJiYocz1lWzFdKX0pKSx0Lm9iamVjdHMpYyh0Lm9iamVjdHNbZV0pO3JldHVybltpLGEsbyxzXX1mdW5jdGlvbiBpKHQsZSl7dmFyIHI9ZS5pZCxuPWUuYmJveCxpPW51bGw9PWUucHJvcGVydGllcz97fTplLnByb3BlcnRpZXMsbz1hKHQsZSk7cmV0dXJuIG51bGw9PXImJm51bGw9PW4/e3R5cGU6IkZlYXR1cmUiLHByb3BlcnRpZXM6aSxnZW9tZXRyeTpvfTpudWxsPT1uP3t0eXBlOiJGZWF0dXJlIixpZDpyLHByb3BlcnRpZXM6aSxnZW9tZXRyeTpvfTp7dHlwZToiRmVhdHVyZSIsaWQ6cixiYm94Om4scHJvcGVydGllczppLGdlb21ldHJ5Om99fWZ1bmN0aW9uIGEodCxlKXt2YXIgbj1yKHQudHJhbnNmb3JtKSxpPXQuYXJjcztmdW5jdGlvbiBhKHQsZSl7ZS5sZW5ndGgmJmUucG9wKCk7Zm9yKHZhciByPWlbdDwwP350OnRdLGE9MCxvPXIubGVuZ3RoO2E8bzsrK2EpZS5wdXNoKG4oclthXSxhKSk7dDwwJiZmdW5jdGlvbih0LGUpe2Zvcih2YXIgcixuPXQubGVuZ3RoLGk9bi1lO2k8LS1uOylyPXRbaV0sdFtpKytdPXRbbl0sdFtuXT1yfShlLG8pfWZ1bmN0aW9uIG8odCl7cmV0dXJuIG4odCl9ZnVuY3Rpb24gcyh0KXtmb3IodmFyIGU9W10scj0wLG49dC5sZW5ndGg7cjxuOysrcilhKHRbcl0sZSk7cmV0dXJuIGUubGVuZ3RoPDImJmUucHVzaChlWzBdKSxlfWZ1bmN0aW9uIGwodCl7Zm9yKHZhciBlPXModCk7ZS5sZW5ndGg8NDspZS5wdXNoKGVbMF0pO3JldHVybiBlfWZ1bmN0aW9uIGModCl7cmV0dXJuIHQubWFwKGwpfXJldHVybiBmdW5jdGlvbiB0KGUpe3ZhciByLG49ZS50eXBlO3N3aXRjaChuKXtjYXNlIkdlb21ldHJ5Q29sbGVjdGlvbiI6cmV0dXJue3R5cGU6bixnZW9tZXRyaWVzOmUuZ2VvbWV0cmllcy5tYXAodCl9O2Nhc2UiUG9pbnQiOnI9byhlLmNvb3JkaW5hdGVzKTticmVhaztjYXNlIk11bHRpUG9pbnQiOnI9ZS5jb29yZGluYXRlcy5tYXAobyk7YnJlYWs7Y2FzZSJMaW5lU3RyaW5nIjpyPXMoZS5hcmNzKTticmVhaztjYXNlIk11bHRpTGluZVN0cmluZyI6cj1lLmFyY3MubWFwKHMpO2JyZWFrO2Nhc2UiUG9seWdvbiI6cj1jKGUuYXJjcyk7YnJlYWs7Y2FzZSJNdWx0aVBvbHlnb24iOnI9ZS5hcmNzLm1hcChjKTticmVhaztkZWZhdWx0OnJldHVybiBudWxsfXJldHVybnt0eXBlOm4sY29vcmRpbmF0ZXM6cn19KGUpfWZ1bmN0aW9uIG8odCxlKXt2YXIgcj17fSxuPXt9LGk9e30sYT1bXSxvPS0xO2Z1bmN0aW9uIHModCxlKXtmb3IodmFyIG4gaW4gdCl7dmFyIGk9dFtuXTtkZWxldGUgZVtpLnN0YXJ0XSxkZWxldGUgaS5zdGFydCxkZWxldGUgaS5lbmQsaS5mb3JFYWNoKChmdW5jdGlvbih0KXtyW3Q8MD9+dDp0XT0xfSkpLGEucHVzaChpKX19cmV0dXJuIGUuZm9yRWFjaCgoZnVuY3Rpb24ocixuKXt2YXIgaSxhPXQuYXJjc1tyPDA/fnI6cl07YS5sZW5ndGg8MyYmIWFbMV1bMF0mJiFhWzFdWzFdJiYoaT1lWysrb10sZVtvXT1yLGVbbl09aSl9KSksZS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgcixhLG89ZnVuY3Rpb24oZSl7dmFyIHIsbj10LmFyY3NbZTwwP35lOmVdLGk9blswXTt0LnRyYW5zZm9ybT8ocj1bMCwwXSxuLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JbMF0rPXRbMF0sclsxXSs9dFsxXX0pKSk6cj1uW24ubGVuZ3RoLTFdO3JldHVybiBlPDA/W3IsaV06W2kscl19KGUpLHM9b1swXSxsPW9bMV07aWYocj1pW3NdKWlmKGRlbGV0ZSBpW3IuZW5kXSxyLnB1c2goZSksci5lbmQ9bCxhPW5bbF0pe2RlbGV0ZSBuW2Euc3RhcnRdO3ZhciBjPWE9PT1yP3I6ci5jb25jYXQoYSk7bltjLnN0YXJ0PXIuc3RhcnRdPWlbYy5lbmQ9YS5lbmRdPWN9ZWxzZSBuW3Iuc3RhcnRdPWlbci5lbmRdPXI7ZWxzZSBpZihyPW5bbF0paWYoZGVsZXRlIG5bci5zdGFydF0sci51bnNoaWZ0KGUpLHIuc3RhcnQ9cyxhPWlbc10pe2RlbGV0ZSBpW2EuZW5kXTt2YXIgdT1hPT09cj9yOmEuY29uY2F0KHIpO25bdS5zdGFydD1hLnN0YXJ0XT1pW3UuZW5kPXIuZW5kXT11fWVsc2UgbltyLnN0YXJ0XT1pW3IuZW5kXT1yO2Vsc2Ugblsocj1bZV0pLnN0YXJ0PXNdPWlbci5lbmQ9bF09cn0pKSxzKGksbikscyhuLGkpLGUuZm9yRWFjaCgoZnVuY3Rpb24odCl7clt0PDA/fnQ6dF18fGEucHVzaChbdF0pfSkpLGF9ZnVuY3Rpb24gcyh0LGUscil7dmFyIG4saSxhO2lmKGFyZ3VtZW50cy5sZW5ndGg+MSluPWwodCxlLHIpO2Vsc2UgZm9yKGk9MCxuPW5ldyBBcnJheShhPXQuYXJjcy5sZW5ndGgpO2k8YTsrK2kpbltpXT1pO3JldHVybnt0eXBlOiJNdWx0aUxpbmVTdHJpbmciLGFyY3M6byh0LG4pfX1mdW5jdGlvbiBsKHQsZSxyKXt2YXIgbixpPVtdLGE9W107ZnVuY3Rpb24gbyh0KXt2YXIgZT10PDA/fnQ6dDsoYVtlXXx8KGFbZV09W10pKS5wdXNoKHtpOnQsZzpufSl9ZnVuY3Rpb24gcyh0KXt0LmZvckVhY2gobyl9ZnVuY3Rpb24gbCh0KXt0LmZvckVhY2gocyl9cmV0dXJuIGZ1bmN0aW9uIHQoZSl7c3dpdGNoKG49ZSxlLnR5cGUpe2Nhc2UiR2VvbWV0cnlDb2xsZWN0aW9uIjplLmdlb21ldHJpZXMuZm9yRWFjaCh0KTticmVhaztjYXNlIkxpbmVTdHJpbmciOnMoZS5hcmNzKTticmVhaztjYXNlIk11bHRpTGluZVN0cmluZyI6Y2FzZSJQb2x5Z29uIjpsKGUuYXJjcyk7YnJlYWs7Y2FzZSJNdWx0aVBvbHlnb24iOiFmdW5jdGlvbih0KXt0LmZvckVhY2gobCl9KGUuYXJjcyl9fShlKSxhLmZvckVhY2gobnVsbD09cj9mdW5jdGlvbih0KXtpLnB1c2godFswXS5pKX06ZnVuY3Rpb24odCl7cih0WzBdLmcsdFt0Lmxlbmd0aC0xXS5nKSYmaS5wdXNoKHRbMF0uaSl9KSxpfWZ1bmN0aW9uIGModCxlKXt2YXIgcj17fSxuPVtdLGk9W107ZnVuY3Rpb24gcyh0KXt0LmZvckVhY2goKGZ1bmN0aW9uKGUpe2UuZm9yRWFjaCgoZnVuY3Rpb24oZSl7KHJbZT1lPDA/fmU6ZV18fChyW2VdPVtdKSkucHVzaCh0KX0pKX0pKSxuLnB1c2godCl9ZnVuY3Rpb24gbChlKXtyZXR1cm4gZnVuY3Rpb24odCl7Zm9yKHZhciBlLHI9LTEsbj10Lmxlbmd0aCxpPXRbbi0xXSxhPTA7KytyPG47KWU9aSxpPXRbcl0sYSs9ZVswXSppWzFdLWVbMV0qaVswXTtyZXR1cm4gTWF0aC5hYnMoYSl9KGEodCx7dHlwZToiUG9seWdvbiIsYXJjczpbZV19KS5jb29yZGluYXRlc1swXSl9cmV0dXJuIGUuZm9yRWFjaCgoZnVuY3Rpb24gdChlKXtzd2l0Y2goZS50eXBlKXtjYXNlIkdlb21ldHJ5Q29sbGVjdGlvbiI6ZS5nZW9tZXRyaWVzLmZvckVhY2godCk7YnJlYWs7Y2FzZSJQb2x5Z29uIjpzKGUuYXJjcyk7YnJlYWs7Y2FzZSJNdWx0aVBvbHlnb24iOmUuYXJjcy5mb3JFYWNoKHMpfX0pKSxuLmZvckVhY2goKGZ1bmN0aW9uKHQpe2lmKCF0Ll8pe3ZhciBlPVtdLG49W3RdO2Zvcih0Ll89MSxpLnB1c2goZSk7dD1uLnBvcCgpOyllLnB1c2godCksdC5mb3JFYWNoKChmdW5jdGlvbih0KXt0LmZvckVhY2goKGZ1bmN0aW9uKHQpe3JbdDwwP350OnRdLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuX3x8KHQuXz0xLG4ucHVzaCh0KSl9KSl9KSl9KSl9fSkpLG4uZm9yRWFjaCgoZnVuY3Rpb24odCl7ZGVsZXRlIHQuX30pKSx7dHlwZToiTXVsdGlQb2x5Z29uIixhcmNzOmkubWFwKChmdW5jdGlvbihlKXt2YXIgbixpPVtdO2lmKGUuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5mb3JFYWNoKChmdW5jdGlvbih0KXt0LmZvckVhY2goKGZ1bmN0aW9uKHQpe3JbdDwwP350OnRdLmxlbmd0aDwyJiZpLnB1c2godCl9KSl9KSl9KSksKG49KGk9byh0LGkpKS5sZW5ndGgpPjEpZm9yKHZhciBhLHMsYz0xLHU9bChpWzBdKTtjPG47KytjKShhPWwoaVtjXSkpPnUmJihzPWlbMF0saVswXT1pW2NdLGlbY109cyx1PWEpO3JldHVybiBpfSkpLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQubGVuZ3RoPjB9KSl9fWZ1bmN0aW9uIHUodCxlKXtmb3IodmFyIHI9MCxuPXQubGVuZ3RoO3I8bjspe3ZhciBpPXIrbj4+PjE7dFtpXTxlP3I9aSsxOm49aX1yZXR1cm4gcn1mdW5jdGlvbiBmKHQpe2lmKG51bGw9PXQpcmV0dXJuIGU7dmFyIHIsbixpPXQuc2NhbGVbMF0sYT10LnNjYWxlWzFdLG89dC50cmFuc2xhdGVbMF0scz10LnRyYW5zbGF0ZVsxXTtyZXR1cm4gZnVuY3Rpb24odCxlKXtlfHwocj1uPTApO3ZhciBsPTIsYz10Lmxlbmd0aCx1PW5ldyBBcnJheShjKSxmPU1hdGgucm91bmQoKHRbMF0tbykvaSksaD1NYXRoLnJvdW5kKCh0WzFdLXMpL2EpO2Zvcih1WzBdPWYtcixyPWYsdVsxXT1oLW4sbj1oO2w8YzspdVtsXT10W2xdLCsrbDtyZXR1cm4gdX19dC5iYm94PW4sdC5mZWF0dXJlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlJiYoZT10Lm9iamVjdHNbZV0pLCJHZW9tZXRyeUNvbGxlY3Rpb24iPT09ZS50eXBlP3t0eXBlOiJGZWF0dXJlQ29sbGVjdGlvbiIsZmVhdHVyZXM6ZS5nZW9tZXRyaWVzLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGkodCxlKX0pKX06aSh0LGUpfSx0Lm1lcmdlPWZ1bmN0aW9uKHQpe3JldHVybiBhKHQsYy5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSx0Lm1lcmdlQXJjcz1jLHQubWVzaD1mdW5jdGlvbih0KXtyZXR1cm4gYSh0LHMuYXBwbHkodGhpcyxhcmd1bWVudHMpKX0sdC5tZXNoQXJjcz1zLHQubmVpZ2hib3JzPWZ1bmN0aW9uKHQpe3ZhciBlPXt9LHI9dC5tYXAoKGZ1bmN0aW9uKCl7cmV0dXJuW119KSk7ZnVuY3Rpb24gbih0LHIpe3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7dDwwJiYodD1+dCk7dmFyIG49ZVt0XTtuP24ucHVzaChyKTplW3RdPVtyXX0pKX1mdW5jdGlvbiBpKHQsZSl7dC5mb3JFYWNoKChmdW5jdGlvbih0KXtuKHQsZSl9KSl9dmFyIGE9e0xpbmVTdHJpbmc6bixNdWx0aUxpbmVTdHJpbmc6aSxQb2x5Z29uOmksTXVsdGlQb2x5Z29uOmZ1bmN0aW9uKHQsZSl7dC5mb3JFYWNoKChmdW5jdGlvbih0KXtpKHQsZSl9KSl9fTtmb3IodmFyIG8gaW4gdC5mb3JFYWNoKChmdW5jdGlvbiB0KGUscil7Ikdlb21ldHJ5Q29sbGVjdGlvbiI9PT1lLnR5cGU/ZS5nZW9tZXRyaWVzLmZvckVhY2goKGZ1bmN0aW9uKGUpe3QoZSxyKX0pKTplLnR5cGUgaW4gYSYmYVtlLnR5cGVdKGUuYXJjcyxyKX0pKSxlKWZvcih2YXIgcz1lW29dLGw9cy5sZW5ndGgsYz0wO2M8bDsrK2MpZm9yKHZhciBmPWMrMTtmPGw7KytmKXt2YXIgaCxwPXNbY10sZD1zW2ZdOyhoPXJbcF0pW289dShoLGQpXSE9PWQmJmguc3BsaWNlKG8sMCxkKSwoaD1yW2RdKVtvPXUoaCxwKV0hPT1wJiZoLnNwbGljZShvLDAscCl9cmV0dXJuIHJ9LHQucXVhbnRpemU9ZnVuY3Rpb24odCxlKXtpZih0LnRyYW5zZm9ybSl0aHJvdyBuZXcgRXJyb3IoImFscmVhZHkgcXVhbnRpemVkIik7aWYoZSYmZS5zY2FsZSlsPXQuYmJveDtlbHNle2lmKCEoKHI9TWF0aC5mbG9vcihlKSk+PTIpKXRocm93IG5ldyBFcnJvcigibiBtdXN0IGJlIFx1MjI2NTIiKTt2YXIgcixpPShsPXQuYmJveHx8bih0KSlbMF0sYT1sWzFdLG89bFsyXSxzPWxbM107ZT17c2NhbGU6W28taT8oby1pKS8oci0xKToxLHMtYT8ocy1hKS8oci0xKToxXSx0cmFuc2xhdGU6W2ksYV19fXZhciBsLGMsdT1mKGUpLGg9dC5vYmplY3RzLHA9e307ZnVuY3Rpb24gZCh0KXtyZXR1cm4gdSh0KX1mdW5jdGlvbiBtKHQpe3ZhciBlO3N3aXRjaCh0LnR5cGUpe2Nhc2UiR2VvbWV0cnlDb2xsZWN0aW9uIjplPXt0eXBlOiJHZW9tZXRyeUNvbGxlY3Rpb24iLGdlb21ldHJpZXM6dC5nZW9tZXRyaWVzLm1hcChtKX07YnJlYWs7Y2FzZSJQb2ludCI6ZT17dHlwZToiUG9pbnQiLGNvb3JkaW5hdGVzOmQodC5jb29yZGluYXRlcyl9O2JyZWFrO2Nhc2UiTXVsdGlQb2ludCI6ZT17dHlwZToiTXVsdGlQb2ludCIsY29vcmRpbmF0ZXM6dC5jb29yZGluYXRlcy5tYXAoZCl9O2JyZWFrO2RlZmF1bHQ6cmV0dXJuIHR9cmV0dXJuIG51bGwhPXQuaWQmJihlLmlkPXQuaWQpLG51bGwhPXQuYmJveCYmKGUuYmJveD10LmJib3gpLG51bGwhPXQucHJvcGVydGllcyYmKGUucHJvcGVydGllcz10LnByb3BlcnRpZXMpLGV9Zm9yKGMgaW4gaClwW2NdPW0oaFtjXSk7cmV0dXJue3R5cGU6IlRvcG9sb2d5IixiYm94OmwsdHJhbnNmb3JtOmUsb2JqZWN0czpwLGFyY3M6dC5hcmNzLm1hcCgoZnVuY3Rpb24odCl7dmFyIGUscj0wLG49MSxpPXQubGVuZ3RoLGE9bmV3IEFycmF5KGkpO2ZvcihhWzBdPXUodFswXSwwKTsrK3I8aTspKChlPXUodFtyXSxyKSlbMF18fGVbMV0pJiYoYVtuKytdPWUpO3JldHVybiAxPT09biYmKGFbbisrXT1bMCwwXSksYS5sZW5ndGg9bixhfSkpfX0sdC50cmFuc2Zvcm09cix0LnVudHJhbnNmb3JtPWYsT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSkpfSx7fV0sMzE3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3Byb3RvdHlwZS9pcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdClyZXR1cm4hMTtpZighaGFzT3duUHJvcGVydHkuY2FsbCh0LCJsZW5ndGgiKSlyZXR1cm4hMTt0cnl7aWYoIm51bWJlciIhPXR5cGVvZiB0Lmxlbmd0aClyZXR1cm4hMTtpZigiZnVuY3Rpb24iIT10eXBlb2YgdC5jYWxsKXJldHVybiExO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0LmFwcGx5KXJldHVybiExfWNhdGNoKHQpe3JldHVybiExfXJldHVybiFuKHQpfX0seyIuLi9wcm90b3R5cGUvaXMiOjMyNH1dLDMxODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi92YWx1ZS9pcyIpLGk9dCgiLi4vb2JqZWN0L2lzIiksYT10KCIuLi9zdHJpbmcvY29lcmNlIiksbz10KCIuL3RvLXNob3J0LXN0cmluZyIpLHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5yZXBsYWNlKCIldiIsbyhlKSl9O2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7aWYoIWkocikpdGhyb3cgbmV3IFR5cGVFcnJvcihzKGUsdCkpO2lmKCFuKHQpKXtpZigiZGVmYXVsdCJpbiByKXJldHVybiByLmRlZmF1bHQ7aWYoci5pc09wdGlvbmFsKXJldHVybiBudWxsfXZhciBvPWEoci5lcnJvck1lc3NhZ2UpO3Rocm93IG4obyl8fChvPWUpLG5ldyBUeXBlRXJyb3IocyhvLHQpKX19LHsiLi4vb2JqZWN0L2lzIjozMjEsIi4uL3N0cmluZy9jb2VyY2UiOjMyNSwiLi4vdmFsdWUvaXMiOjMyNywiLi90by1zaG9ydC1zdHJpbmciOjMyMH1dLDMxOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0LnRvU3RyaW5nKCl9Y2F0Y2goZSl7dHJ5e3JldHVybiBTdHJpbmcodCl9Y2F0Y2godCl7cmV0dXJuIG51bGx9fX19LHt9XSwzMjA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9zYWZlLXRvLXN0cmluZyIpLGk9L1tcblxyXHUyMDI4XHUyMDI5XS9nO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1uKHQpO3JldHVybiBudWxsPT09ZT8iPE5vbi1jb2VyY2libGUgdG8gc3RyaW5nIHZhbHVlPiI6KGUubGVuZ3RoPjEwMCYmKGU9ZS5zbGljZSgwLDk5KSsiXHUyMDI2IiksZT1lLnJlcGxhY2UoaSwoZnVuY3Rpb24odCl7c3dpdGNoKHQpe2Nhc2UiXG4iOnJldHVybiJcXG4iO2Nhc2UiXHIiOnJldHVybiJcXHIiO2Nhc2UiXHUyMDI4IjpyZXR1cm4iXFx1MjAyOCI7Y2FzZSJcdTIwMjkiOnJldHVybiJcXHUyMDI5IjtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCBjaGFyYWN0ZXIiKX19KSkpfX0seyIuL3NhZmUtdG8tc3RyaW5nIjozMTl9XSwzMjE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vdmFsdWUvaXMiKSxpPXtvYmplY3Q6ITAsZnVuY3Rpb246ITAsdW5kZWZpbmVkOiEwfTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuISFuKHQpJiZoYXNPd25Qcm9wZXJ0eS5jYWxsKGksdHlwZW9mIHQpfX0seyIuLi92YWx1ZS9pcyI6MzI3fV0sMzIyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2xpYi9yZXNvbHZlLWV4Y2VwdGlvbiIpLGk9dCgiLi9pcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gaSh0KT90Om4odCwiJXYgaXMgbm90IGEgcGxhaW4gZnVuY3Rpb24iLGFyZ3VtZW50c1sxXSl9fSx7Ii4uL2xpYi9yZXNvbHZlLWV4Y2VwdGlvbiI6MzE4LCIuL2lzIjozMjN9XSwzMjM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vZnVuY3Rpb24vaXMiKSxpPS9eXHMqY2xhc3NbXHN7L31dLyxhPUZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZztlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuISFuKHQpJiYhaS50ZXN0KGEuY2FsbCh0KSl9fSx7Ii4uL2Z1bmN0aW9uL2lzIjozMTd9XSwzMjQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vb2JqZWN0L2lzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKCFuKHQpKXJldHVybiExO3RyeXtyZXR1cm4hIXQuY29uc3RydWN0b3ImJnQuY29uc3RydWN0b3IucHJvdG90eXBlPT09dH1jYXRjaCh0KXtyZXR1cm4hMX19fSx7Ii4uL29iamVjdC9pcyI6MzIxfV0sMzI1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3ZhbHVlL2lzIiksaT10KCIuLi9vYmplY3QvaXMiKSxhPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKCFuKHQpKXJldHVybiBudWxsO2lmKGkodCkpe3ZhciBlPXQudG9TdHJpbmc7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpcmV0dXJuIG51bGw7aWYoZT09PWEpcmV0dXJuIG51bGx9dHJ5e3JldHVybiIiK3R9Y2F0Y2godCl7cmV0dXJuIG51bGx9fX0seyIuLi9vYmplY3QvaXMiOjMyMSwiLi4vdmFsdWUvaXMiOjMyN31dLDMyNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9saWIvcmVzb2x2ZS1leGNlcHRpb24iKSxpPXQoIi4vaXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGkodCk/dDpuKHQsIkNhbm5vdCB1c2UgJXYiLGFyZ3VtZW50c1sxXSl9fSx7Ii4uL2xpYi9yZXNvbHZlLWV4Y2VwdGlvbiI6MzE4LCIuL2lzIjozMjd9XSwzMjc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT10fX0se31dLDMyODpbZnVuY3Rpb24odCxlLHIpeyhmdW5jdGlvbihlKXsoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIG49dCgiYml0LXR3aWRkbGUiKSxpPXQoImR1cCIpLGE9dCgiYnVmZmVyIikuQnVmZmVyO2UuX19UWVBFREFSUkFZX1BPT0x8fChlLl9fVFlQRURBUlJBWV9QT09MPXtVSU5UODppKFszMiwwXSksVUlOVDE2OmkoWzMyLDBdKSxVSU5UMzI6aShbMzIsMF0pLEJJR1VJTlQ2NDppKFszMiwwXSksSU5UODppKFszMiwwXSksSU5UMTY6aShbMzIsMF0pLElOVDMyOmkoWzMyLDBdKSxCSUdJTlQ2NDppKFszMiwwXSksRkxPQVQ6aShbMzIsMF0pLERPVUJMRTppKFszMiwwXSksREFUQTppKFszMiwwXSksVUlOVDhDOmkoWzMyLDBdKSxCVUZGRVI6aShbMzIsMF0pfSk7dmFyIG89InVuZGVmaW5lZCIhPXR5cGVvZiBVaW50OENsYW1wZWRBcnJheSxzPSJ1bmRlZmluZWQiIT10eXBlb2YgQmlnVWludDY0QXJyYXksbD0idW5kZWZpbmVkIiE9dHlwZW9mIEJpZ0ludDY0QXJyYXksYz1lLl9fVFlQRURBUlJBWV9QT09MO2MuVUlOVDhDfHwoYy5VSU5UOEM9aShbMzIsMF0pKSxjLkJJR1VJTlQ2NHx8KGMuQklHVUlOVDY0PWkoWzMyLDBdKSksYy5CSUdJTlQ2NHx8KGMuQklHSU5UNjQ9aShbMzIsMF0pKSxjLkJVRkZFUnx8KGMuQlVGRkVSPWkoWzMyLDBdKSk7dmFyIHU9Yy5EQVRBLGY9Yy5CVUZGRVI7ZnVuY3Rpb24gaCh0KXtpZih0KXt2YXIgZT10Lmxlbmd0aHx8dC5ieXRlTGVuZ3RoLHI9bi5sb2cyKGUpO3Vbcl0ucHVzaCh0KX19ZnVuY3Rpb24gcCh0KXt0PW4ubmV4dFBvdzIodCk7dmFyIGU9bi5sb2cyKHQpLHI9dVtlXTtyZXR1cm4gci5sZW5ndGg+MD9yLnBvcCgpOm5ldyBBcnJheUJ1ZmZlcih0KX1mdW5jdGlvbiBkKHQpe3JldHVybiBuZXcgVWludDhBcnJheShwKHQpLDAsdCl9ZnVuY3Rpb24gbSh0KXtyZXR1cm4gbmV3IFVpbnQxNkFycmF5KHAoMip0KSwwLHQpfWZ1bmN0aW9uIGcodCl7cmV0dXJuIG5ldyBVaW50MzJBcnJheShwKDQqdCksMCx0KX1mdW5jdGlvbiB2KHQpe3JldHVybiBuZXcgSW50OEFycmF5KHAodCksMCx0KX1mdW5jdGlvbiB5KHQpe3JldHVybiBuZXcgSW50MTZBcnJheShwKDIqdCksMCx0KX1mdW5jdGlvbiB4KHQpe3JldHVybiBuZXcgSW50MzJBcnJheShwKDQqdCksMCx0KX1mdW5jdGlvbiBiKHQpe3JldHVybiBuZXcgRmxvYXQzMkFycmF5KHAoNCp0KSwwLHQpfWZ1bmN0aW9uIF8odCl7cmV0dXJuIG5ldyBGbG9hdDY0QXJyYXkocCg4KnQpLDAsdCl9ZnVuY3Rpb24gdyh0KXtyZXR1cm4gbz9uZXcgVWludDhDbGFtcGVkQXJyYXkocCh0KSwwLHQpOmQodCl9ZnVuY3Rpb24gVCh0KXtyZXR1cm4gcz9uZXcgQmlnVWludDY0QXJyYXkocCg4KnQpLDAsdCk6bnVsbH1mdW5jdGlvbiBrKHQpe3JldHVybiBsP25ldyBCaWdJbnQ2NEFycmF5KHAoOCp0KSwwLHQpOm51bGx9ZnVuY3Rpb24gQSh0KXtyZXR1cm4gbmV3IERhdGFWaWV3KHAodCksMCx0KX1mdW5jdGlvbiBNKHQpe3Q9bi5uZXh0UG93Mih0KTt2YXIgZT1uLmxvZzIodCkscj1mW2VdO3JldHVybiByLmxlbmd0aD4wP3IucG9wKCk6bmV3IGEodCl9ci5mcmVlPWZ1bmN0aW9uKHQpe2lmKGEuaXNCdWZmZXIodCkpZltuLmxvZzIodC5sZW5ndGgpXS5wdXNoKHQpO2Vsc2V7aWYoIltvYmplY3QgQXJyYXlCdWZmZXJdIiE9PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KSYmKHQ9dC5idWZmZXIpLCF0KXJldHVybjt2YXIgZT10Lmxlbmd0aHx8dC5ieXRlTGVuZ3RoLHI9MHxuLmxvZzIoZSk7dVtyXS5wdXNoKHQpfX0sci5mcmVlVWludDg9ci5mcmVlVWludDE2PXIuZnJlZVVpbnQzMj1yLmZyZWVCaWdVaW50NjQ9ci5mcmVlSW50OD1yLmZyZWVJbnQxNj1yLmZyZWVJbnQzMj1yLmZyZWVCaWdJbnQ2ND1yLmZyZWVGbG9hdDMyPXIuZnJlZUZsb2F0PXIuZnJlZUZsb2F0NjQ9ci5mcmVlRG91YmxlPXIuZnJlZVVpbnQ4Q2xhbXBlZD1yLmZyZWVEYXRhVmlldz1mdW5jdGlvbih0KXtoKHQuYnVmZmVyKX0sci5mcmVlQXJyYXlCdWZmZXI9aCxyLmZyZWVCdWZmZXI9ZnVuY3Rpb24odCl7ZltuLmxvZzIodC5sZW5ndGgpXS5wdXNoKHQpfSxyLm1hbGxvYz1mdW5jdGlvbih0LGUpe2lmKHZvaWQgMD09PWV8fCJhcnJheWJ1ZmZlciI9PT1lKXJldHVybiBwKHQpO3N3aXRjaChlKXtjYXNlInVpbnQ4IjpyZXR1cm4gZCh0KTtjYXNlInVpbnQxNiI6cmV0dXJuIG0odCk7Y2FzZSJ1aW50MzIiOnJldHVybiBnKHQpO2Nhc2UiaW50OCI6cmV0dXJuIHYodCk7Y2FzZSJpbnQxNiI6cmV0dXJuIHkodCk7Y2FzZSJpbnQzMiI6cmV0dXJuIHgodCk7Y2FzZSJmbG9hdCI6Y2FzZSJmbG9hdDMyIjpyZXR1cm4gYih0KTtjYXNlImRvdWJsZSI6Y2FzZSJmbG9hdDY0IjpyZXR1cm4gXyh0KTtjYXNlInVpbnQ4X2NsYW1wZWQiOnJldHVybiB3KHQpO2Nhc2UiYmlnaW50NjQiOnJldHVybiBrKHQpO2Nhc2UiYmlndWludDY0IjpyZXR1cm4gVCh0KTtjYXNlImJ1ZmZlciI6cmV0dXJuIE0odCk7Y2FzZSJkYXRhIjpjYXNlImRhdGF2aWV3IjpyZXR1cm4gQSh0KTtkZWZhdWx0OnJldHVybiBudWxsfXJldHVybiBudWxsfSxyLm1hbGxvY0FycmF5QnVmZmVyPXAsci5tYWxsb2NVaW50OD1kLHIubWFsbG9jVWludDE2PW0sci5tYWxsb2NVaW50MzI9ZyxyLm1hbGxvY0ludDg9dixyLm1hbGxvY0ludDE2PXksci5tYWxsb2NJbnQzMj14LHIubWFsbG9jRmxvYXQzMj1yLm1hbGxvY0Zsb2F0PWIsci5tYWxsb2NGbG9hdDY0PXIubWFsbG9jRG91YmxlPV8sci5tYWxsb2NVaW50OENsYW1wZWQ9dyxyLm1hbGxvY0JpZ1VpbnQ2ND1ULHIubWFsbG9jQmlnSW50NjQ9ayxyLm1hbGxvY0RhdGFWaWV3PUEsci5tYWxsb2NCdWZmZXI9TSxyLmNsZWFyQ2FjaGU9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PDMyOysrdCljLlVJTlQ4W3RdLmxlbmd0aD0wLGMuVUlOVDE2W3RdLmxlbmd0aD0wLGMuVUlOVDMyW3RdLmxlbmd0aD0wLGMuSU5UOFt0XS5sZW5ndGg9MCxjLklOVDE2W3RdLmxlbmd0aD0wLGMuSU5UMzJbdF0ubGVuZ3RoPTAsYy5GTE9BVFt0XS5sZW5ndGg9MCxjLkRPVUJMRVt0XS5sZW5ndGg9MCxjLkJJR1VJTlQ2NFt0XS5sZW5ndGg9MCxjLkJJR0lOVDY0W3RdLmxlbmd0aD0wLGMuVUlOVDhDW3RdLmxlbmd0aD0wLHVbdF0ubGVuZ3RoPTAsZlt0XS5sZW5ndGg9MH19KS5jYWxsKHRoaXMpfSkuY2FsbCh0aGlzLCJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsP2dsb2JhbDoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6e30pfSx7ImJpdC10d2lkZGxlIjo4MSxidWZmZXI6ODUsZHVwOjEyOH1dLDMyOTpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPS9bXCdcIl0vO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gdD8obi50ZXN0KHQuY2hhckF0KDApKSYmKHQ9dC5zdWJzdHIoMSkpLG4udGVzdCh0LmNoYXJBdCh0Lmxlbmd0aC0xKSkmJih0PXQuc3Vic3RyKDAsdC5sZW5ndGgtMSkpLHQpOiIifX0se31dLDMzMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe0FycmF5LmlzQXJyYXkocil8fChyPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDIpKTtmb3IodmFyIG49MCxpPXIubGVuZ3RoO248aTtuKyspe3ZhciBhPXJbbl07Zm9yKHZhciBvIGluIGEpaWYoKHZvaWQgMD09PWVbb118fEFycmF5LmlzQXJyYXkoZVtvXSl8fHRbb10hPT1lW29dKSYmbyBpbiBlKXt2YXIgcztpZighMD09PWFbb10pcz1lW29dO2Vsc2V7aWYoITE9PT1hW29dKWNvbnRpbnVlO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhW29dJiZ2b2lkIDA9PT0ocz1hW29dKGVbb10sdCxlKSkpY29udGludWV9dFtvXT1zfX1yZXR1cm4gdH19LHt9XSwzMzE6W2Z1bmN0aW9uKHQsZSxyKXsoZnVuY3Rpb24odCl7KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlKXt0cnl7aWYoIXQubG9jYWxTdG9yYWdlKXJldHVybiExfWNhdGNoKHQpe3JldHVybiExfXZhciByPXQubG9jYWxTdG9yYWdlW2VdO3JldHVybiBudWxsIT1yJiYidHJ1ZSI9PT1TdHJpbmcocikudG9Mb3dlckNhc2UoKX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZihyKCJub0RlcHJlY2F0aW9uIikpcmV0dXJuIHQ7dmFyIG49ITE7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoIW4pe2lmKHIoInRocm93RGVwcmVjYXRpb24iKSl0aHJvdyBuZXcgRXJyb3IoZSk7cigidHJhY2VEZXByZWNhdGlvbiIpP2NvbnNvbGUudHJhY2UoZSk6Y29uc29sZS53YXJuKGUpLG49ITB9cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX19KS5jYWxsKHRoaXMpfSkuY2FsbCh0aGlzLCJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsP2dsb2JhbDoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6e30pfSx7fV0sMzMyOltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiZ2V0LWNhbnZhcy1jb250ZXh0Iik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBuKCJ3ZWJnbCIsdCl9fSx7ImdldC1jYW52YXMtY29udGV4dCI6MTk0fV0sMzMzOltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiLi4vbWFpbiIpLGk9dCgib2JqZWN0LWFzc2lnbiIpLGE9bi5pbnN0YW5jZSgpO2Z1bmN0aW9uIG8odCl7dGhpcy5sb2NhbD10aGlzLnJlZ2lvbmFsT3B0aW9uc1t0fHwiIl18fHRoaXMucmVnaW9uYWxPcHRpb25zWyIiXX1vLnByb3RvdHlwZT1uZXcgbi5iYXNlQ2FsZW5kYXIsaShvLnByb3RvdHlwZSx7bmFtZToiQ2hpbmVzZSIsamRFcG9jaDoxNzIxNDI1LjUsaGFzWWVhclplcm86ITEsbWluTW9udGg6MCxmaXJzdE1vbnRoOjAsbWluRGF5OjEscmVnaW9uYWxPcHRpb25zOnsiIjp7bmFtZToiQ2hpbmVzZSIsZXBvY2hzOlsiQkVDIiwiRUMiXSxtb250aE51bWJlcnM6ZnVuY3Rpb24odCxlKXtpZigic3RyaW5nIj09dHlwZW9mIHQpe3ZhciByPXQubWF0Y2gobCk7cmV0dXJuIHI/clswXToiIn12YXIgbj10aGlzLl92YWxpZGF0ZVllYXIodCksaT10Lm1vbnRoKCksYT0iIit0aGlzLnRvQ2hpbmVzZU1vbnRoKG4saSk7cmV0dXJuIGUmJmEubGVuZ3RoPDImJihhPSIwIithKSx0aGlzLmlzSW50ZXJjYWxhcnlNb250aChuLGkpJiYoYSs9ImkiKSxhfSxtb250aE5hbWVzOmZ1bmN0aW9uKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdCl7dmFyIGU9dC5tYXRjaChjKTtyZXR1cm4gZT9lWzBdOiIifXZhciByPXRoaXMuX3ZhbGlkYXRlWWVhcih0KSxuPXQubW9udGgoKSxpPVsiXHU0ZTAwXHU2NzA4IiwiXHU0ZThjXHU2NzA4IiwiXHU0ZTA5XHU2NzA4IiwiXHU1NmRiXHU2NzA4IiwiXHU0ZTk0XHU2NzA4IiwiXHU1MTZkXHU2NzA4IiwiXHU0ZTAzXHU2NzA4IiwiXHU1MTZiXHU2NzA4IiwiXHU0ZTVkXHU2NzA4IiwiXHU1MzQxXHU2NzA4IiwiXHU1MzQxXHU0ZTAwXHU2NzA4IiwiXHU1MzQxXHU0ZThjXHU2NzA4Il1bdGhpcy50b0NoaW5lc2VNb250aChyLG4pLTFdO3JldHVybiB0aGlzLmlzSW50ZXJjYWxhcnlNb250aChyLG4pJiYoaT0iXHU5NWYwIitpKSxpfSxtb250aE5hbWVzU2hvcnQ6ZnVuY3Rpb24odCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXt2YXIgZT10Lm1hdGNoKHUpO3JldHVybiBlP2VbMF06IiJ9dmFyIHI9dGhpcy5fdmFsaWRhdGVZZWFyKHQpLG49dC5tb250aCgpLGk9WyJcdTRlMDAiLCJcdTRlOGMiLCJcdTRlMDkiLCJcdTU2ZGIiLCJcdTRlOTQiLCJcdTUxNmQiLCJcdTRlMDMiLCJcdTUxNmIiLCJcdTRlNWQiLCJcdTUzNDEiLCJcdTUzNDFcdTRlMDAiLCJcdTUzNDFcdTRlOGMiXVt0aGlzLnRvQ2hpbmVzZU1vbnRoKHIsbiktMV07cmV0dXJuIHRoaXMuaXNJbnRlcmNhbGFyeU1vbnRoKHIsbikmJihpPSJcdTk1ZjAiK2kpLGl9LHBhcnNlTW9udGg6ZnVuY3Rpb24odCxlKXt0PXRoaXMuX3ZhbGlkYXRlWWVhcih0KTt2YXIgcixuPXBhcnNlSW50KGUpO2lmKGlzTmFOKG4pKSJcdTk1ZjAiPT09ZVswXSYmKHI9ITAsZT1lLnN1YnN0cmluZygxKSksIlx1NjcwOCI9PT1lW2UubGVuZ3RoLTFdJiYoZT1lLnN1YnN0cmluZygwLGUubGVuZ3RoLTEpKSxuPTErWyJcdTRlMDAiLCJcdTRlOGMiLCJcdTRlMDkiLCJcdTU2ZGIiLCJcdTRlOTQiLCJcdTUxNmQiLCJcdTRlMDMiLCJcdTUxNmIiLCJcdTRlNWQiLCJcdTUzNDEiLCJcdTUzNDFcdTRlMDAiLCJcdTUzNDFcdTRlOGMiXS5pbmRleE9mKGUpO2Vsc2V7dmFyIGk9ZVtlLmxlbmd0aC0xXTtyPSJpIj09PWl8fCJJIj09PWl9cmV0dXJuIHRoaXMudG9Nb250aEluZGV4KHQsbixyKX0sZGF5TmFtZXM6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdLGRheU5hbWVzU2hvcnQ6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxkYXlOYW1lc01pbjpbIlN1IiwiTW8iLCJUdSIsIldlIiwiVGgiLCJGciIsIlNhIl0sZGlnaXRzOm51bGwsZGF0ZUZvcm1hdDoieXl5eS9tbS9kZCIsZmlyc3REYXk6MSxpc1JUTDohMX19LF92YWxpZGF0ZVllYXI6ZnVuY3Rpb24odCxlKXtpZih0LnllYXImJih0PXQueWVhcigpKSwibnVtYmVyIiE9dHlwZW9mIHR8fHQ8MTg4OHx8dD4yMTExKXRocm93IGUucmVwbGFjZSgvXHswXH0vLHRoaXMubG9jYWwubmFtZSk7cmV0dXJuIHR9LHRvTW9udGhJbmRleDpmdW5jdGlvbih0LGUscil7dmFyIGk9dGhpcy5pbnRlcmNhbGFyeU1vbnRoKHQpO2lmKHImJmUhPT1pfHxlPDF8fGU+MTIpdGhyb3cgbi5sb2NhbC5pbnZhbGlkTW9udGgucmVwbGFjZSgvXHswXH0vLHRoaXMubG9jYWwubmFtZSk7cmV0dXJuIGk/IXImJmU8PWk/ZS0xOmU6ZS0xfSx0b0NoaW5lc2VNb250aDpmdW5jdGlvbih0LGUpe3QueWVhciYmKGU9KHQ9dC55ZWFyKCkpLm1vbnRoKCkpO3ZhciByPXRoaXMuaW50ZXJjYWxhcnlNb250aCh0KTtpZihlPDB8fGU+KHI/MTI6MTEpKXRocm93IG4ubG9jYWwuaW52YWxpZE1vbnRoLnJlcGxhY2UoL1x7MFx9Lyx0aGlzLmxvY2FsLm5hbWUpO3JldHVybiByP2U8cj9lKzE6ZTplKzF9LGludGVyY2FsYXJ5TW9udGg6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9dGhpcy5fdmFsaWRhdGVZZWFyKHQpLGZbdC1mWzBdXT4+MTN9LGlzSW50ZXJjYWxhcnlNb250aDpmdW5jdGlvbih0LGUpe3QueWVhciYmKGU9KHQ9dC55ZWFyKCkpLm1vbnRoKCkpO3ZhciByPXRoaXMuaW50ZXJjYWxhcnlNb250aCh0KTtyZXR1cm4hIXImJnI9PT1lfSxsZWFwWWVhcjpmdW5jdGlvbih0KXtyZXR1cm4gMCE9PXRoaXMuaW50ZXJjYWxhcnlNb250aCh0KX0sd2Vla09mWWVhcjpmdW5jdGlvbih0LGUscil7dmFyIGksbz10aGlzLl92YWxpZGF0ZVllYXIodCxuLmxvY2FsLmludmFsaWR5ZWFyKSxzPWhbby1oWzBdXSxsPXM+PjkmNDA5NSxjPXM+PjUmMTUsdT0zMSZzOyhpPWEubmV3RGF0ZShsLGMsdSkpLmFkZCg0LShpLmRheU9mV2VlaygpfHw3KSwiZCIpO3ZhciBmPXRoaXMudG9KRCh0LGUsciktaS50b0pEKCk7cmV0dXJuIDErTWF0aC5mbG9vcihmLzcpfSxtb250aHNJblllYXI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubGVhcFllYXIodCk/MTM6MTJ9LGRheXNJbk1vbnRoOmZ1bmN0aW9uKHQsZSl7dC55ZWFyJiYoZT10Lm1vbnRoKCksdD10LnllYXIoKSksdD10aGlzLl92YWxpZGF0ZVllYXIodCk7dmFyIHI9Zlt0LWZbMF1dO2lmKGU+KHI+PjEzPzEyOjExKSl0aHJvdyBuLmxvY2FsLmludmFsaWRNb250aC5yZXBsYWNlKC9cezBcfS8sdGhpcy5sb2NhbC5uYW1lKTtyZXR1cm4gciYxPDwxMi1lPzMwOjI5fSx3ZWVrRGF5OmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4odGhpcy5kYXlPZldlZWsodCxlLHIpfHw3KTw2fSx0b0pEOmZ1bmN0aW9uKHQsZSxyKXt2YXIgaT10aGlzLl92YWxpZGF0ZSh0LHMscixuLmxvY2FsLmludmFsaWREYXRlKTt0PXRoaXMuX3ZhbGlkYXRlWWVhcihpLnllYXIoKSksZT1pLm1vbnRoKCkscj1pLmRheSgpO3ZhciBvPXRoaXMuaXNJbnRlcmNhbGFyeU1vbnRoKHQsZSkscz10aGlzLnRvQ2hpbmVzZU1vbnRoKHQsZSksbD1mdW5jdGlvbih0LGUscixuLGkpe3ZhciBhLG8scztpZigib2JqZWN0Ij09dHlwZW9mIHQpbz10LGE9ZXx8e307ZWxzZXt2YXIgbDtpZighKCJudW1iZXIiPT10eXBlb2YgdCYmdD49MTg4OCYmdDw9MjExMSkpdGhyb3cgbmV3IEVycm9yKCJMdW5hciB5ZWFyIG91dHNpZGUgcmFuZ2UgMTg4OC0yMTExIik7aWYoISgibnVtYmVyIj09dHlwZW9mIGUmJmU+PTEmJmU8PTEyKSl0aHJvdyBuZXcgRXJyb3IoIkx1bmFyIG1vbnRoIG91dHNpZGUgcmFuZ2UgMSAtIDEyIik7aWYoISgibnVtYmVyIj09dHlwZW9mIHImJnI+PTEmJnI8PTMwKSl0aHJvdyBuZXcgRXJyb3IoIkx1bmFyIGRheSBvdXRzaWRlIHJhbmdlIDEgLSAzMCIpOyJvYmplY3QiPT10eXBlb2Ygbj8obD0hMSxhPW4pOihsPSEhbixhPWl8fHt9KSxvPXt5ZWFyOnQsbW9udGg6ZSxkYXk6cixpc0ludGVyY2FsYXJ5Omx9fXM9by5kYXktMTt2YXIgYyx1PWZbby55ZWFyLWZbMF1dLHA9dT4+MTM7Yz1wJiYoby5tb250aD5wfHxvLmlzSW50ZXJjYWxhcnkpP28ubW9udGg6by5tb250aC0xO2Zvcih2YXIgZD0wO2Q8YztkKyspe3MrPXUmMTw8MTItZD8zMDoyOX12YXIgbT1oW28ueWVhci1oWzBdXSxnPW5ldyBEYXRlKG0+PjkmNDA5NSwobT4+NSYxNSktMSwoMzEmbSkrcyk7cmV0dXJuIGEueWVhcj1nLmdldEZ1bGxZZWFyKCksYS5tb250aD0xK2cuZ2V0TW9udGgoKSxhLmRheT1nLmdldERhdGUoKSxhfSh0LHMscixvKTtyZXR1cm4gYS50b0pEKGwueWVhcixsLm1vbnRoLGwuZGF5KX0sZnJvbUpEOmZ1bmN0aW9uKHQpe3ZhciBlPWEuZnJvbUpEKHQpLHI9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGksYTtpZigib2JqZWN0Ij09dHlwZW9mIHQpaT10LGE9ZXx8e307ZWxzZXtpZighKCJudW1iZXIiPT10eXBlb2YgdCYmdD49MTg4OCYmdDw9MjExMSkpdGhyb3cgbmV3IEVycm9yKCJTb2xhciB5ZWFyIG91dHNpZGUgcmFuZ2UgMTg4OC0yMTExIik7aWYoISgibnVtYmVyIj09dHlwZW9mIGUmJmU+PTEmJmU8PTEyKSl0aHJvdyBuZXcgRXJyb3IoIlNvbGFyIG1vbnRoIG91dHNpZGUgcmFuZ2UgMSAtIDEyIik7aWYoISgibnVtYmVyIj09dHlwZW9mIHImJnI+PTEmJnI8PTMxKSl0aHJvdyBuZXcgRXJyb3IoIlNvbGFyIGRheSBvdXRzaWRlIHJhbmdlIDEgLSAzMSIpO2k9e3llYXI6dCxtb250aDplLGRheTpyfSxhPW58fHt9fXZhciBvPWhbaS55ZWFyLWhbMF1dLHM9aS55ZWFyPDw5fGkubW9udGg8PDV8aS5kYXk7YS55ZWFyPXM+PW8/aS55ZWFyOmkueWVhci0xLG89aFthLnllYXItaFswXV07dmFyIGwsYz1uZXcgRGF0ZShvPj45JjQwOTUsKG8+PjUmMTUpLTEsMzEmbyksdT1uZXcgRGF0ZShpLnllYXIsaS5tb250aC0xLGkuZGF5KTtsPU1hdGgucm91bmQoKHUtYykvODY0ZTUpO3ZhciBwLGQ9ZlthLnllYXItZlswXV07Zm9yKHA9MDtwPDEzO3ArKyl7dmFyIG09ZCYxPDwxMi1wPzMwOjI5O2lmKGw8bSlicmVhaztsLT1tfXZhciBnPWQ+PjEzOyFnfHxwPGc/KGEuaXNJbnRlcmNhbGFyeT0hMSxhLm1vbnRoPTErcCk6cD09PWc/KGEuaXNJbnRlcmNhbGFyeT0hMCxhLm1vbnRoPXApOihhLmlzSW50ZXJjYWxhcnk9ITEsYS5tb250aD1wKTtyZXR1cm4gYS5kYXk9MStsLGF9KGUueWVhcigpLGUubW9udGgoKSxlLmRheSgpKSxuPXRoaXMudG9Nb250aEluZGV4KHIueWVhcixyLm1vbnRoLHIuaXNJbnRlcmNhbGFyeSk7cmV0dXJuIHRoaXMubmV3RGF0ZShyLnllYXIsbixyLmRheSl9LGZyb21TdHJpbmc6ZnVuY3Rpb24odCl7dmFyIGU9dC5tYXRjaChzKSxyPXRoaXMuX3ZhbGlkYXRlWWVhcigrZVsxXSksbj0rZVsyXSxpPSEhZVszXSxhPXRoaXMudG9Nb250aEluZGV4KHIsbixpKSxvPStlWzRdO3JldHVybiB0aGlzLm5ld0RhdGUocixhLG8pfSxhZGQ6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQueWVhcigpLGk9dC5tb250aCgpLGE9dGhpcy5pc0ludGVyY2FsYXJ5TW9udGgobixpKSxzPXRoaXMudG9DaGluZXNlTW9udGgobixpKSxsPU9iamVjdC5nZXRQcm90b3R5cGVPZihvLnByb3RvdHlwZSkuYWRkLmNhbGwodGhpcyx0LGUscik7aWYoInkiPT09cil7dmFyIGM9bC55ZWFyKCksdT1sLm1vbnRoKCksZj10aGlzLmlzSW50ZXJjYWxhcnlNb250aChjLHMpLGg9YSYmZj90aGlzLnRvTW9udGhJbmRleChjLHMsITApOnRoaXMudG9Nb250aEluZGV4KGMscywhMSk7aCE9PXUmJmwubW9udGgoaCl9cmV0dXJuIGx9fSk7dmFyIHM9L15ccyooLT9cZFxkXGRcZHxcZFxkKVstL10oXGQ/XGQpKFtpSV0/KVstL10oXGQ/XGQpL20sbD0vXlxkP1xkW2lJXT8vbSxjPS9eXHU5NWYwP1x1NTM0MT9bXHU0ZTAwXHU0ZThjXHU0ZTA5XHU1NmRiXHU0ZTk0XHU1MTZkXHU0ZTAzXHU1MTZiXHU0ZTVkXT9cdTY3MDgvbSx1PS9eXHU5NWYwP1x1NTM0MT9bXHU0ZTAwXHU0ZThjXHU0ZTA5XHU1NmRiXHU0ZTk0XHU1MTZkXHU0ZTAzXHU1MTZiXHU0ZTVkXT8vbTtuLmNhbGVuZGFycy5jaGluZXNlPW87dmFyIGY9WzE4ODcsNTc4MCw1ODAyLDE5MTU3LDI3NDIsNTAzNTksMTE5OCwyNjQ2LDQ2Mzc4LDc0NjYsMzQxMiwzMDEyMiw1NDgyLDY3OTQ5LDIzOTYsNTI5NCw0MzU5Nyw2NzMyLDY5NTQsMzYxODEsMjc3Miw0OTU0LDE4NzgxLDIzOTYsNTQ0MjcsNTI3NCw2NzMwLDQ3NzgxLDU4MDAsNjg2OCwyMTIxMCw0NzkwLDU5NzAzLDIzNTAsNTI3MCw0NjY2NywzNDAyLDM0OTYsMzgzMjUsMTM4OCw0NzgyLDE4NzM1LDIzNTAsNTIzNzQsNjgwNCw3NDk4LDQ0NDU3LDI5MDYsMTM4OCwyOTI5NCw0NzAwLDYzNzg5LDY0NDIsNjgwNCw1NjEzOCw1ODAyLDI3NzIsMzgyMzUsMTIxMCw0Njk4LDIyODI3LDU0MTgsNjMxMjUsMzQ3Niw1ODAyLDQzNzAxLDI0ODQsNTMwMiwyNzIyMywyNjQ2LDcwOTU0LDc0NjYsMzQxMiw1NDY5OCw1NDgyLDI0MTIsMzgwNjIsNTI5NCwyNjM2LDMyMDM4LDY5NTQsNjAyNDUsMjc3Miw0ODI2LDQzMzU3LDIzOTQsNTI3NCwzOTUwMSw2NzMwLDcyMzU3LDU4MDAsNTg0NCw1Mzk3OCw0NzkwLDIzNTgsMzgwMzksNTI3MCw4NzYyNywzNDAyLDM0OTYsNTQ3MDgsNTQ4NCw0NzgyLDQzMzExLDIzNTAsMzIyMiwyNzk3OCw3NDk4LDY4OTY1LDI5MDQsNTQ4NCw0NTY3Nyw0NzAwLDY0NDQsMzk1NzMsNjgwNCw2OTg2LDE5Mjg1LDI3NzIsNjI4MTEsMTIxMCw0Njk4LDQ3NDAzLDU0MTgsNTc4MCwzODU3MCw1NTQ2LDc2NDY5LDI0MjAsNTMwMiw1MTc5OSwyNjQ2LDU0MTQsMzY1MDEsMzQxMiw1NTQ2LDE4ODY5LDI0MTIsNTQ0NDYsNTI3Niw2NzMyLDQ4NDIyLDY4MjIsMjkwMCwyODAxMCw0ODI2LDkyNTA5LDIzOTQsNTI3NCw1NTg4Myw2NzMwLDY4MjAsNDc5NTYsNTgxMiwyNzc4LDE4Nzc5LDIzNTgsNjI2MTUsNTI3MCw1NDUwLDQ2NzU3LDM0OTIsNTU1NiwyNzMxOCw0NzE4LDY3ODg3LDIzNTAsMzIyMiw1MjU1NCw3NDk4LDM0MjgsMzgyNTIsNTQ2OCw0NzAwLDMxMDIyLDY0NDQsNjQxNDksNjgwNCw2OTg2LDQzODYxLDI3NzIsNTMzOCwzNTQyMSwyNjUwLDcwOTU1LDU0MTgsNTc4MCw1NDk1NCw1NTQ2LDI3NDAsMzgwNzQsNTMwMiwyNjQ2LDI5OTkxLDMzNjYsNjEwMTEsMzQxMiw1NTQ2LDQzNDQ1LDI0MTIsNTI5NCwzNTQwNiw2NzMyLDcyOTk4LDY4MjAsNjk5Niw1MjU4NiwyNzc4LDIzOTYsMzgwNDUsNTI3NCw2Njk4LDIzMzMzLDY4MjAsNjQzMzgsNTgxMiwyNzQ2LDQzMzU1LDIzNTgsNTI3MCwzOTQ5OSw1NDUwLDc5NTI1LDM0OTIsNTU0OF0saD1bMTg4Nyw5NjY3MzIsOTY3MjMxLDk2NzczMyw5NjgyNjUsOTY4NzY2LDk2OTI5Nyw5Njk3OTgsOTcwMjk4LDk3MDgyOSw5NzEzMzAsOTcxODMwLDk3MjM2Miw5NzI4NjMsOTczMzk1LDk3Mzg5Niw5NzQzOTcsOTc0OTI4LDk3NTQyOCw5NzU5MjksOTc2NDYxLDk3Njk2Miw5Nzc0NjIsOTc3OTk0LDk3ODQ5NCw5NzkwMjYsOTc5NTI2LDk4MDAyNiw5ODA1NTgsOTgxMDU5LDk4MTU1OSw5ODIwOTEsOTgyNTkzLDk4MzEyNCw5ODM2MjQsOTg0MTI0LDk4NDY1Niw5ODUxNTcsOTg1NjU2LDk4NjE4OSw5ODY2OTAsOTg3MTkxLDk4NzcyMiw5ODgyMjIsOTg4NzUzLDk4OTI1NCw5ODk3NTQsOTkwMjg2LDk5MDc4OCw5OTEyODgsOTkxODE5LDk5MjMxOSw5OTI4NTEsOTkzMzUyLDk5Mzg1MSw5OTQzODMsOTk0ODg1LDk5NTM4NSw5OTU5MTcsOTk2NDE4LDk5NjkxOCw5OTc0NTAsOTk3OTQ5LDk5ODQ4MSw5OTg5ODIsOTk5NDgzLDEwMDAwMTQsMTAwMDUxNSwxMDAxMDE2LDEwMDE1NDgsMTAwMjA0NywxMDAyNTc4LDEwMDMwODAsMTAwMzU4MCwxMDA0MTExLDEwMDQ2MTMsMTAwNTExMywxMDA1NjQ1LDEwMDYxNDYsMTAwNjY0NSwxMDA3MTc3LDEwMDc2NzgsMTAwODIwOSwxMDA4NzEwLDEwMDkyMTEsMTAwOTc0MywxMDEwMjQzLDEwMTA3NDMsMTAxMTI3NSwxMDExNzc1LDEwMTIzMDYsMTAxMjgwNywxMDEzMzA4LDEwMTM4NDAsMTAxNDM0MSwxMDE0ODQxLDEwMTUzNzMsMTAxNTg3NCwxMDE2NDA0LDEwMTY5MDUsMTAxNzQwNSwxMDE3OTM3LDEwMTg0MzgsMTAxODkzOSwxMDE5NDcxLDEwMTk5NzIsMTAyMDQ3MSwxMDIxMDAyLDEwMjE1MDMsMTAyMjAzNSwxMDIyNTM1LDEwMjMwMzYsMTAyMzU2OCwxMDI0MDY5LDEwMjQ1NjgsMTAyNTEwMCwxMDI1NjAxLDEwMjYxMDIsMTAyNjYzMywxMDI3MTMzLDEwMjc2NjYsMTAyODE2NywxMDI4NjY2LDEwMjkxOTgsMTAyOTY5OSwxMDMwMTk5LDEwMzA3MzAsMTAzMTIzMSwxMDMxNzYzLDEwMzIyNjQsMTAzMjc2NCwxMDMzMjk2LDEwMzM3OTcsMTAzNDI5NywxMDM0ODI4LDEwMzUzMjksMTAzNTgzMCwxMDM2MzYyLDEwMzY4NjEsMTAzNzM5MywxMDM3ODk0LDEwMzgzOTQsMTAzODkyNSwxMDM5NDI3LDEwMzk5MjcsMTA0MDQ1OSwxMDQwOTU5LDEwNDE0OTEsMTA0MTk5MiwxMDQyNDkyLDEwNDMwMjMsMTA0MzUyNCwxMDQ0MDI0LDEwNDQ1NTYsMTA0NTA1NywxMDQ1NTU4LDEwNDYwOTAsMTA0NjU5MCwxMDQ3MTIxLDEwNDc2MjIsMTA0ODEyMiwxMDQ4NjU0LDEwNDkxNTQsMTA0OTY1NSwxMDUwMTg3LDEwNTA2ODksMTA1MTIxOSwxMDUxNzIwLDEwNTIyMjAsMTA1Mjc1MSwxMDUzMjUyLDEwNTM3NTIsMTA1NDI4NCwxMDU0Nzg2LDEwNTUyODUsMTA1NTgxNywxMDU2MzE3LDEwNTY4NDksMTA1NzM0OSwxMDU3ODUwLDEwNTgzODIsMTA1ODg4MywxMDU5MzgzLDEwNTk5MTUsMTA2MDQxNSwxMDYwOTQ3LDEwNjE0NDcsMTA2MTk0NywxMDYyNDc5LDEwNjI5ODEsMTA2MzQ4MCwxMDY0MDEyLDEwNjQ1MTQsMTA2NTAxNCwxMDY1NTQ1LDEwNjYwNDUsMTA2NjU3NywxMDY3MDc4LDEwNjc1NzgsMTA2ODExMCwxMDY4NjExLDEwNjkxMTIsMTA2OTY0MiwxMDcwMTQyLDEwNzA2NzQsMTA3MTE3NSwxMDcxNjc1LDEwNzIyMDcsMTA3MjcwOSwxMDczMjA5LDEwNzM3NDAsMTA3NDI0MSwxMDc0NzQxLDEwNzUyNzMsMTA3NTc3MywxMDc2MzA1LDEwNzY4MDcsMTA3NzMwOCwxMDc3ODM5LDEwNzgzNDAsMTA3ODg0MCwxMDc5MzcyLDEwNzk4NzEsMTA4MDQwMywxMDgwOTA0XX0seyIuLi9tYWluIjozNDcsIm9iamVjdC1hc3NpZ24iOjI0N31dLDMzNDpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoIi4uL21haW4iKSxpPXQoIm9iamVjdC1hc3NpZ24iKTtmdW5jdGlvbiBhKHQpe3RoaXMubG9jYWw9dGhpcy5yZWdpb25hbE9wdGlvbnNbdHx8IiJdfHx0aGlzLnJlZ2lvbmFsT3B0aW9uc1siIl19YS5wcm90b3R5cGU9bmV3IG4uYmFzZUNhbGVuZGFyLGkoYS5wcm90b3R5cGUse25hbWU6IkNvcHRpYyIsamRFcG9jaDoxODI1MDI5LjUsZGF5c1Blck1vbnRoOlszMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCw1XSxoYXNZZWFyWmVybzohMSxtaW5Nb250aDoxLGZpcnN0TW9udGg6MSxtaW5EYXk6MSxyZWdpb25hbE9wdGlvbnM6eyIiOntuYW1lOiJDb3B0aWMiLGVwb2NoczpbIkJBTSIsIkFNIl0sbW9udGhOYW1lczpbIlRob3V0IiwiUGFvcGkiLCJIYXRob3IiLCJLb2lhayIsIlRvYmkiLCJNZXNoaXIiLCJQYXJlbWhhdCIsIlBhcmVtb3VkZSIsIlBhc2hvbnMiLCJQYW9uaSIsIkVwaXAiLCJNZXNvcmkiLCJQaSBLb2dpIEVuYXZvdCJdLG1vbnRoTmFtZXNTaG9ydDpbIlRobyIsIlBhbyIsIkhhdGgiLCJLb2kiLCJUb2IiLCJNZXNoIiwiUGF0IiwiUGFkIiwiUGFzaCIsIlBhbyIsIkVwaSIsIk1lc28iLCJQaUsiXSxkYXlOYW1lczpbIlRreXJpYWthIiwiUGVzbmF1IiwiUHNob21lbnQiLCJQZWZ0b291IiwiUHRpb3UiLCJQc29vdSIsIlBzYWJiYXRvbiJdLGRheU5hbWVzU2hvcnQ6WyJUa3kiLCJQZXMiLCJQc2giLCJQZWYiLCJQdGkiLCJQc28iLCJQc2EiXSxkYXlOYW1lc01pbjpbIlRrIiwiUGVzIiwiUHNoIiwiUGVmIiwiUHQiLCJQc28iLCJQc2EiXSxkaWdpdHM6bnVsbCxkYXRlRm9ybWF0OiJkZC9tbS95eXl5IixmaXJzdERheTowLGlzUlRMOiExfX0sbGVhcFllYXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZFllYXIpO3JldHVybih0PWUueWVhcigpKyhlLnllYXIoKTwwPzE6MCkpJTQ9PTN8fHQlND09LTF9LG1vbnRoc0luWWVhcjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZFllYXJ8fG4ucmVnaW9uYWxPcHRpb25zWyIiXS5pbnZhbGlkWWVhciksMTN9LHdlZWtPZlllYXI6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMubmV3RGF0ZSh0LGUscik7cmV0dXJuIG4uYWRkKC1uLmRheU9mV2VlaygpLCJkIiksTWF0aC5mbG9vcigobi5kYXlPZlllYXIoKS0xKS83KSsxfSxkYXlzSW5Nb250aDpmdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuX3ZhbGlkYXRlKHQsZSx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRNb250aCk7cmV0dXJuIHRoaXMuZGF5c1Blck1vbnRoW3IubW9udGgoKS0xXSsoMTM9PT1yLm1vbnRoKCkmJnRoaXMubGVhcFllYXIoci55ZWFyKCkpPzE6MCl9LHdlZWtEYXk6ZnVuY3Rpb24odCxlLHIpe3JldHVybih0aGlzLmRheU9mV2Vlayh0LGUscil8fDcpPDZ9LHRvSkQ6ZnVuY3Rpb24odCxlLHIpe3ZhciBpPXRoaXMuX3ZhbGlkYXRlKHQsZSxyLG4ubG9jYWwuaW52YWxpZERhdGUpO3JldHVybih0PWkueWVhcigpKTwwJiZ0KyssaS5kYXkoKSszMCooaS5tb250aCgpLTEpKzM2NSoodC0xKStNYXRoLmZsb29yKHQvNCkrdGhpcy5qZEVwb2NoLTF9LGZyb21KRDpmdW5jdGlvbih0KXt2YXIgZT1NYXRoLmZsb29yKHQpKy41LXRoaXMuamRFcG9jaCxyPU1hdGguZmxvb3IoKGUtTWF0aC5mbG9vcigoZSszNjYpLzE0NjEpKS8zNjUpKzE7cjw9MCYmci0tLGU9TWF0aC5mbG9vcih0KSsuNS10aGlzLm5ld0RhdGUociwxLDEpLnRvSkQoKTt2YXIgbj1NYXRoLmZsb29yKGUvMzApKzEsaT1lLTMwKihuLTEpKzE7cmV0dXJuIHRoaXMubmV3RGF0ZShyLG4saSl9fSksbi5jYWxlbmRhcnMuY29wdGljPWF9LHsiLi4vbWFpbiI6MzQ3LCJvYmplY3QtYXNzaWduIjoyNDd9XSwzMzU6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCIuLi9tYWluIiksaT10KCJvYmplY3QtYXNzaWduIik7ZnVuY3Rpb24gYSh0KXt0aGlzLmxvY2FsPXRoaXMucmVnaW9uYWxPcHRpb25zW3R8fCIiXXx8dGhpcy5yZWdpb25hbE9wdGlvbnNbIiJdfWEucHJvdG90eXBlPW5ldyBuLmJhc2VDYWxlbmRhcixpKGEucHJvdG90eXBlLHtuYW1lOiJEaXNjd29ybGQiLGpkRXBvY2g6MTcyMTQyNS41LGRheXNQZXJNb250aDpbMTYsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzJdLGhhc1llYXJaZXJvOiExLG1pbk1vbnRoOjEsZmlyc3RNb250aDoxLG1pbkRheToxLHJlZ2lvbmFsT3B0aW9uczp7IiI6e25hbWU6IkRpc2N3b3JsZCIsZXBvY2hzOlsiQlVDIiwiVUMiXSxtb250aE5hbWVzOlsiSWNrIiwiT2ZmbGUiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiR3J1bmUiLCJBdWd1c3QiLCJTcHVuZSIsIlNla3RvYmVyIiwiRW1iZXIiLCJEZWNlbWJlciJdLG1vbnRoTmFtZXNTaG9ydDpbIkljayIsIk9mZiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkdydSIsIkF1ZyIsIlNwdSIsIlNlayIsIkVtYiIsIkRlYyJdLGRheU5hbWVzOlsiU3VuZGF5IiwiT2N0ZWRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il0sZGF5TmFtZXNTaG9ydDpbIlN1biIsIk9jdCIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLGRheU5hbWVzTWluOlsiU3UiLCJPYyIsIk1vIiwiVHUiLCJXZSIsIlRoIiwiRnIiLCJTYSJdLGRpZ2l0czpudWxsLGRhdGVGb3JtYXQ6Inl5eXkvbW0vZGQiLGZpcnN0RGF5OjIsaXNSVEw6ITF9fSxsZWFwWWVhcjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZFllYXIpLCExfSxtb250aHNJblllYXI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3ZhbGlkYXRlKHQsdGhpcy5taW5Nb250aCx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRZZWFyKSwxM30sZGF5c0luWWVhcjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZFllYXIpLDQwMH0sd2Vla09mWWVhcjpmdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5uZXdEYXRlKHQsZSxyKTtyZXR1cm4gbi5hZGQoLW4uZGF5T2ZXZWVrKCksImQiKSxNYXRoLmZsb29yKChuLmRheU9mWWVhcigpLTEpLzgpKzF9LGRheXNJbk1vbnRoOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fdmFsaWRhdGUodCxlLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZE1vbnRoKTtyZXR1cm4gdGhpcy5kYXlzUGVyTW9udGhbci5tb250aCgpLTFdfSxkYXlzSW5XZWVrOmZ1bmN0aW9uKCl7cmV0dXJuIDh9LGRheU9mV2VlazpmdW5jdGlvbih0LGUscil7cmV0dXJuKHRoaXMuX3ZhbGlkYXRlKHQsZSxyLG4ubG9jYWwuaW52YWxpZERhdGUpLmRheSgpKzEpJTh9LHdlZWtEYXk6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMuZGF5T2ZXZWVrKHQsZSxyKTtyZXR1cm4gbj49MiYmbjw9Nn0sZXh0cmFJbmZvOmZ1bmN0aW9uKHQsZSxyKXt2YXIgaT10aGlzLl92YWxpZGF0ZSh0LGUscixuLmxvY2FsLmludmFsaWREYXRlKTtyZXR1cm57Y2VudHVyeTpvW01hdGguZmxvb3IoKGkueWVhcigpLTEpLzEwMCkrMV18fCIifX0sdG9KRDpmdW5jdGlvbih0LGUscil7dmFyIGk9dGhpcy5fdmFsaWRhdGUodCxlLHIsbi5sb2NhbC5pbnZhbGlkRGF0ZSk7cmV0dXJuIHQ9aS55ZWFyKCkrKGkueWVhcigpPDA/MTowKSxlPWkubW9udGgoKSwocj1pLmRheSgpKSsoZT4xPzE2OjApKyhlPjI/MzIqKGUtMik6MCkrNDAwKih0LTEpK3RoaXMuamRFcG9jaC0xfSxmcm9tSkQ6ZnVuY3Rpb24odCl7dD1NYXRoLmZsb29yKHQrLjUpLU1hdGguZmxvb3IodGhpcy5qZEVwb2NoKS0xO3ZhciBlPU1hdGguZmxvb3IodC80MDApKzE7dC09NDAwKihlLTEpLHQrPXQ+MTU/MTY6MDt2YXIgcj1NYXRoLmZsb29yKHQvMzIpKzEsbj10LTMyKihyLTEpKzE7cmV0dXJuIHRoaXMubmV3RGF0ZShlPD0wP2UtMTplLHIsbil9fSk7dmFyIG89ezIwOiJGcnVpdGJhdCIsMjE6IkFuY2hvdnkifTtuLmNhbGVuZGFycy5kaXNjd29ybGQ9YX0seyIuLi9tYWluIjozNDcsIm9iamVjdC1hc3NpZ24iOjI0N31dLDMzNjpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoIi4uL21haW4iKSxpPXQoIm9iamVjdC1hc3NpZ24iKTtmdW5jdGlvbiBhKHQpe3RoaXMubG9jYWw9dGhpcy5yZWdpb25hbE9wdGlvbnNbdHx8IiJdfHx0aGlzLnJlZ2lvbmFsT3B0aW9uc1siIl19YS5wcm90b3R5cGU9bmV3IG4uYmFzZUNhbGVuZGFyLGkoYS5wcm90b3R5cGUse25hbWU6IkV0aGlvcGlhbiIsamRFcG9jaDoxNzI0MjIwLjUsZGF5c1Blck1vbnRoOlszMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCw1XSxoYXNZZWFyWmVybzohMSxtaW5Nb250aDoxLGZpcnN0TW9udGg6MSxtaW5EYXk6MSxyZWdpb25hbE9wdGlvbnM6eyIiOntuYW1lOiJFdGhpb3BpYW4iLGVwb2NoczpbIkJFRSIsIkVFIl0sbW9udGhOYW1lczpbIk1lc2tlcmVtIiwiVGlrZW1ldCIsIkhpZGFyIiwiVGFoZXNhcyIsIlRpciIsIllla2F0aXQiLCJNZWdhYml0IiwiTWlhemlhIiwiR2VuYm90IiwiU2VuZSIsIkhhbWxlIiwiTmVoYXNlIiwiUGFndW1lIl0sbW9udGhOYW1lc1Nob3J0OlsiTWVzIiwiVGlrIiwiSGlkIiwiVGFoIiwiVGlyIiwiWWVrIiwiTWVnIiwiTWlhIiwiR2VuIiwiU2VuIiwiSGFtIiwiTmVoIiwiUGFnIl0sZGF5TmFtZXM6WyJFaHVkIiwiU2Vnbm8iLCJNYWtzZWdubyIsIklyb2IiLCJIYW11cyIsIkFyYiIsIktpZGFtZSJdLGRheU5hbWVzU2hvcnQ6WyJFaHUiLCJTZWciLCJNYWsiLCJJcm8iLCJIYW0iLCJBcmIiLCJLaWQiXSxkYXlOYW1lc01pbjpbIkVoIiwiU2UiLCJNYSIsIklyIiwiSGEiLCJBciIsIktpIl0sZGlnaXRzOm51bGwsZGF0ZUZvcm1hdDoiZGQvbW0veXl5eSIsZmlyc3REYXk6MCxpc1JUTDohMX19LGxlYXBZZWFyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3ZhbGlkYXRlKHQsdGhpcy5taW5Nb250aCx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRZZWFyKTtyZXR1cm4odD1lLnllYXIoKSsoZS55ZWFyKCk8MD8xOjApKSU0PT0zfHx0JTQ9PS0xfSxtb250aHNJblllYXI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3ZhbGlkYXRlKHQsdGhpcy5taW5Nb250aCx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRZZWFyfHxuLnJlZ2lvbmFsT3B0aW9uc1siIl0uaW52YWxpZFllYXIpLDEzfSx3ZWVrT2ZZZWFyOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLm5ld0RhdGUodCxlLHIpO3JldHVybiBuLmFkZCgtbi5kYXlPZldlZWsoKSwiZCIpLE1hdGguZmxvb3IoKG4uZGF5T2ZZZWFyKCktMSkvNykrMX0sZGF5c0luTW9udGg6ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLl92YWxpZGF0ZSh0LGUsdGhpcy5taW5EYXksbi5sb2NhbC5pbnZhbGlkTW9udGgpO3JldHVybiB0aGlzLmRheXNQZXJNb250aFtyLm1vbnRoKCktMV0rKDEzPT09ci5tb250aCgpJiZ0aGlzLmxlYXBZZWFyKHIueWVhcigpKT8xOjApfSx3ZWVrRGF5OmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4odGhpcy5kYXlPZldlZWsodCxlLHIpfHw3KTw2fSx0b0pEOmZ1bmN0aW9uKHQsZSxyKXt2YXIgaT10aGlzLl92YWxpZGF0ZSh0LGUscixuLmxvY2FsLmludmFsaWREYXRlKTtyZXR1cm4odD1pLnllYXIoKSk8MCYmdCsrLGkuZGF5KCkrMzAqKGkubW9udGgoKS0xKSszNjUqKHQtMSkrTWF0aC5mbG9vcih0LzQpK3RoaXMuamRFcG9jaC0xfSxmcm9tSkQ6ZnVuY3Rpb24odCl7dmFyIGU9TWF0aC5mbG9vcih0KSsuNS10aGlzLmpkRXBvY2gscj1NYXRoLmZsb29yKChlLU1hdGguZmxvb3IoKGUrMzY2KS8xNDYxKSkvMzY1KSsxO3I8PTAmJnItLSxlPU1hdGguZmxvb3IodCkrLjUtdGhpcy5uZXdEYXRlKHIsMSwxKS50b0pEKCk7dmFyIG49TWF0aC5mbG9vcihlLzMwKSsxLGk9ZS0zMCoobi0xKSsxO3JldHVybiB0aGlzLm5ld0RhdGUocixuLGkpfX0pLG4uY2FsZW5kYXJzLmV0aGlvcGlhbj1hfSx7Ii4uL21haW4iOjM0Nywib2JqZWN0LWFzc2lnbiI6MjQ3fV0sMzM3OltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiLi4vbWFpbiIpLGk9dCgib2JqZWN0LWFzc2lnbiIpO2Z1bmN0aW9uIGEodCl7dGhpcy5sb2NhbD10aGlzLnJlZ2lvbmFsT3B0aW9uc1t0fHwiIl18fHRoaXMucmVnaW9uYWxPcHRpb25zWyIiXX1mdW5jdGlvbiBvKHQsZSl7cmV0dXJuIHQtZSpNYXRoLmZsb29yKHQvZSl9YS5wcm90b3R5cGU9bmV3IG4uYmFzZUNhbGVuZGFyLGkoYS5wcm90b3R5cGUse25hbWU6IkhlYnJldyIsamRFcG9jaDozNDc5OTUuNSxkYXlzUGVyTW9udGg6WzMwLDI5LDMwLDI5LDMwLDI5LDMwLDI5LDMwLDI5LDMwLDI5LDI5XSxoYXNZZWFyWmVybzohMSxtaW5Nb250aDoxLGZpcnN0TW9udGg6NyxtaW5EYXk6MSxyZWdpb25hbE9wdGlvbnM6eyIiOntuYW1lOiJIZWJyZXciLGVwb2NoczpbIkJBTSIsIkFNIl0sbW9udGhOYW1lczpbIk5pc2FuIiwiSXlhciIsIlNpdmFuIiwiVGFtbXV6IiwiQXYiLCJFbHVsIiwiVGlzaHJlaSIsIkNoZXNodmFuIiwiS2lzbGV2IiwiVGV2ZXQiLCJTaGV2YXQiLCJBZGFyIiwiQWRhciBJSSJdLG1vbnRoTmFtZXNTaG9ydDpbIk5pcyIsIkl5YSIsIlNpdiIsIlRhbSIsIkF2IiwiRWx1IiwiVGlzIiwiQ2hlIiwiS2lzIiwiVGV2IiwiU2hlIiwiQWRhIiwiQWQyIl0sZGF5TmFtZXM6WyJZb20gUmlzaG9uIiwiWW9tIFNoZW5pIiwiWW9tIFNobGlzaGkiLCJZb20gUmV2aSdpIiwiWW9tIENoYW1pc2hpIiwiWW9tIFNoaXNoaSIsIllvbSBTaGFiYmF0Il0sZGF5TmFtZXNTaG9ydDpbIlJpcyIsIlNoZSIsIlNobCIsIlJldiIsIkNoYSIsIlNoaSIsIlNoYSJdLGRheU5hbWVzTWluOlsiUmkiLCJTaGUiLCJTaGwiLCJSZSIsIkNoIiwiU2hpIiwiU2hhIl0sZGlnaXRzOm51bGwsZGF0ZUZvcm1hdDoiZGQvbW0veXl5eSIsZmlyc3REYXk6MCxpc1JUTDohMX19LGxlYXBZZWFyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3ZhbGlkYXRlKHQsdGhpcy5taW5Nb250aCx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRZZWFyKTtyZXR1cm4gdGhpcy5fbGVhcFllYXIoZS55ZWFyKCkpfSxfbGVhcFllYXI6ZnVuY3Rpb24odCl7cmV0dXJuIG8oNyoodD10PDA/dCsxOnQpKzEsMTkpPDd9LG1vbnRoc0luWWVhcjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZFllYXIpLHRoaXMuX2xlYXBZZWFyKHQueWVhcj90LnllYXIoKTp0KT8xMzoxMn0sd2Vla09mWWVhcjpmdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5uZXdEYXRlKHQsZSxyKTtyZXR1cm4gbi5hZGQoLW4uZGF5T2ZXZWVrKCksImQiKSxNYXRoLmZsb29yKChuLmRheU9mWWVhcigpLTEpLzcpKzF9LGRheXNJblllYXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9dGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZFllYXIpLnllYXIoKSx0aGlzLnRvSkQoLTE9PT10PzE6dCsxLDcsMSktdGhpcy50b0pEKHQsNywxKX0sZGF5c0luTW9udGg6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC55ZWFyJiYoZT10Lm1vbnRoKCksdD10LnllYXIoKSksdGhpcy5fdmFsaWRhdGUodCxlLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZE1vbnRoKSwxMj09PWUmJnRoaXMubGVhcFllYXIodCl8fDg9PT1lJiY1PT09byh0aGlzLmRheXNJblllYXIodCksMTApPzMwOjk9PT1lJiYzPT09byh0aGlzLmRheXNJblllYXIodCksMTApPzI5OnRoaXMuZGF5c1Blck1vbnRoW2UtMV19LHdlZWtEYXk6ZnVuY3Rpb24odCxlLHIpe3JldHVybiA2IT09dGhpcy5kYXlPZldlZWsodCxlLHIpfSxleHRyYUluZm86ZnVuY3Rpb24odCxlLHIpe3ZhciBpPXRoaXMuX3ZhbGlkYXRlKHQsZSxyLG4ubG9jYWwuaW52YWxpZERhdGUpO3JldHVybnt5ZWFyVHlwZToodGhpcy5sZWFwWWVhcihpKT8iZW1ib2xpc21pYyI6ImNvbW1vbiIpKyIgIitbImRlZmljaWVudCIsInJlZ3VsYXIiLCJjb21wbGV0ZSJdW3RoaXMuZGF5c0luWWVhcihpKSUxMC0zXX19LHRvSkQ6ZnVuY3Rpb24odCxlLHIpe3ZhciBpPXRoaXMuX3ZhbGlkYXRlKHQsZSxyLG4ubG9jYWwuaW52YWxpZERhdGUpO3Q9aS55ZWFyKCksZT1pLm1vbnRoKCkscj1pLmRheSgpO3ZhciBhPXQ8PTA/dCsxOnQsbz10aGlzLmpkRXBvY2grdGhpcy5fZGVsYXkxKGEpK3RoaXMuX2RlbGF5MihhKStyKzE7aWYoZTw3KXtmb3IodmFyIHM9NztzPD10aGlzLm1vbnRoc0luWWVhcih0KTtzKyspbys9dGhpcy5kYXlzSW5Nb250aCh0LHMpO2ZvcihzPTE7czxlO3MrKylvKz10aGlzLmRheXNJbk1vbnRoKHQscyl9ZWxzZSBmb3Iocz03O3M8ZTtzKyspbys9dGhpcy5kYXlzSW5Nb250aCh0LHMpO3JldHVybiBvfSxfZGVsYXkxOmZ1bmN0aW9uKHQpe3ZhciBlPU1hdGguZmxvb3IoKDIzNSp0LTIzNCkvMTkpLHI9MTIwODQrMTM3NTMqZSxuPTI5KmUrTWF0aC5mbG9vcihyLzI1OTIwKTtyZXR1cm4gbygzKihuKzEpLDcpPDMmJm4rKyxufSxfZGVsYXkyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2RlbGF5MSh0LTEpLHI9dGhpcy5fZGVsYXkxKHQpO3JldHVybiB0aGlzLl9kZWxheTEodCsxKS1yPT0zNTY/MjpyLWU9PTM4Mj8xOjB9LGZyb21KRDpmdW5jdGlvbih0KXt0PU1hdGguZmxvb3IodCkrLjU7Zm9yKHZhciBlPU1hdGguZmxvb3IoOTg0OTYqKHQtdGhpcy5qZEVwb2NoKS8zNTk3NTM1MSktMTt0Pj10aGlzLnRvSkQoLTE9PT1lPzE6ZSsxLDcsMSk7KWUrKztmb3IodmFyIHI9dDx0aGlzLnRvSkQoZSwxLDEpPzc6MTt0PnRoaXMudG9KRChlLHIsdGhpcy5kYXlzSW5Nb250aChlLHIpKTspcisrO3ZhciBuPXQtdGhpcy50b0pEKGUsciwxKSsxO3JldHVybiB0aGlzLm5ld0RhdGUoZSxyLG4pfX0pLG4uY2FsZW5kYXJzLmhlYnJldz1hfSx7Ii4uL21haW4iOjM0Nywib2JqZWN0LWFzc2lnbiI6MjQ3fV0sMzM4OltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiLi4vbWFpbiIpLGk9dCgib2JqZWN0LWFzc2lnbiIpO2Z1bmN0aW9uIGEodCl7dGhpcy5sb2NhbD10aGlzLnJlZ2lvbmFsT3B0aW9uc1t0fHwiIl18fHRoaXMucmVnaW9uYWxPcHRpb25zWyIiXX1hLnByb3RvdHlwZT1uZXcgbi5iYXNlQ2FsZW5kYXIsaShhLnByb3RvdHlwZSx7bmFtZToiSXNsYW1pYyIsamRFcG9jaDoxOTQ4NDM5LjUsZGF5c1Blck1vbnRoOlszMCwyOSwzMCwyOSwzMCwyOSwzMCwyOSwzMCwyOSwzMCwyOV0saGFzWWVhclplcm86ITEsbWluTW9udGg6MSxmaXJzdE1vbnRoOjEsbWluRGF5OjEscmVnaW9uYWxPcHRpb25zOnsiIjp7bmFtZToiSXNsYW1pYyIsZXBvY2hzOlsiQkgiLCJBSCJdLG1vbnRoTmFtZXM6WyJNdWhhcnJhbSIsIlNhZmFyIiwiUmFiaScgYWwtYXd3YWwiLCJSYWJpJyBhbC10aGFuaSIsIkp1bWFkYSBhbC1hd3dhbCIsIkp1bWFkYSBhbC10aGFuaSIsIlJhamFiIiwiU2hhJ2FiYW4iLCJSYW1hZGFuIiwiU2hhd3dhbCIsIkRodSBhbC1RaSdkYWgiLCJEaHUgYWwtSGlqamFoIl0sbW9udGhOYW1lc1Nob3J0OlsiTXVoIiwiU2FmIiwiUmFiMSIsIlJhYjIiLCJKdW0xIiwiSnVtMiIsIlJhaiIsIlNoYSciLCJSYW0iLCJTaGF3IiwiRGh1USIsIkRodUgiXSxkYXlOYW1lczpbIllhd20gYWwtYWhhZCIsIllhd20gYWwtaXRobmF5biIsIllhd20gYXRoLXRodWxhYXRoYWEnIiwiWWF3bSBhbC1hcmJpJ2FhJyIsIllhd20gYWwta2hhbVx1MDEyYnMiLCJZYXdtIGFsLWp1bSdhIiwiWWF3bSBhcy1zYWJ0Il0sZGF5TmFtZXNTaG9ydDpbIkFoYSIsIkl0aCIsIlRodSIsIkFyYiIsIktoYSIsIkp1bSIsIlNhYiJdLGRheU5hbWVzTWluOlsiQWgiLCJJdCIsIlRoIiwiQXIiLCJLaCIsIkp1IiwiU2EiXSxkaWdpdHM6bnVsbCxkYXRlRm9ybWF0OiJ5eXl5L21tL2RkIixmaXJzdERheTo2LGlzUlRMOiExfX0sbGVhcFllYXI6ZnVuY3Rpb24odCl7cmV0dXJuKDExKnRoaXMuX3ZhbGlkYXRlKHQsdGhpcy5taW5Nb250aCx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRZZWFyKS55ZWFyKCkrMTQpJTMwPDExfSx3ZWVrT2ZZZWFyOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLm5ld0RhdGUodCxlLHIpO3JldHVybiBuLmFkZCgtbi5kYXlPZldlZWsoKSwiZCIpLE1hdGguZmxvb3IoKG4uZGF5T2ZZZWFyKCktMSkvNykrMX0sZGF5c0luWWVhcjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5sZWFwWWVhcih0KT8zNTU6MzU0fSxkYXlzSW5Nb250aDpmdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuX3ZhbGlkYXRlKHQsZSx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRNb250aCk7cmV0dXJuIHRoaXMuZGF5c1Blck1vbnRoW3IubW9udGgoKS0xXSsoMTI9PT1yLm1vbnRoKCkmJnRoaXMubGVhcFllYXIoci55ZWFyKCkpPzE6MCl9LHdlZWtEYXk6ZnVuY3Rpb24odCxlLHIpe3JldHVybiA1IT09dGhpcy5kYXlPZldlZWsodCxlLHIpfSx0b0pEOmZ1bmN0aW9uKHQsZSxyKXt2YXIgaT10aGlzLl92YWxpZGF0ZSh0LGUscixuLmxvY2FsLmludmFsaWREYXRlKTtyZXR1cm4gdD1pLnllYXIoKSxlPWkubW9udGgoKSx0PXQ8PTA/dCsxOnQsKHI9aS5kYXkoKSkrTWF0aC5jZWlsKDI5LjUqKGUtMSkpKzM1NCoodC0xKStNYXRoLmZsb29yKCgzKzExKnQpLzMwKSt0aGlzLmpkRXBvY2gtMX0sZnJvbUpEOmZ1bmN0aW9uKHQpe3Q9TWF0aC5mbG9vcih0KSsuNTt2YXIgZT1NYXRoLmZsb29yKCgzMCoodC10aGlzLmpkRXBvY2gpKzEwNjQ2KS8xMDYzMSk7ZT1lPD0wP2UtMTplO3ZhciByPU1hdGgubWluKDEyLE1hdGguY2VpbCgodC0yOS10aGlzLnRvSkQoZSwxLDEpKS8yOS41KSsxKSxuPXQtdGhpcy50b0pEKGUsciwxKSsxO3JldHVybiB0aGlzLm5ld0RhdGUoZSxyLG4pfX0pLG4uY2FsZW5kYXJzLmlzbGFtaWM9YX0seyIuLi9tYWluIjozNDcsIm9iamVjdC1hc3NpZ24iOjI0N31dLDMzOTpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoIi4uL21haW4iKSxpPXQoIm9iamVjdC1hc3NpZ24iKTtmdW5jdGlvbiBhKHQpe3RoaXMubG9jYWw9dGhpcy5yZWdpb25hbE9wdGlvbnNbdHx8IiJdfHx0aGlzLnJlZ2lvbmFsT3B0aW9uc1siIl19YS5wcm90b3R5cGU9bmV3IG4uYmFzZUNhbGVuZGFyLGkoYS5wcm90b3R5cGUse25hbWU6Ikp1bGlhbiIsamRFcG9jaDoxNzIxNDIzLjUsZGF5c1Blck1vbnRoOlszMSwyOCwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV0saGFzWWVhclplcm86ITEsbWluTW9udGg6MSxmaXJzdE1vbnRoOjEsbWluRGF5OjEscmVnaW9uYWxPcHRpb25zOnsiIjp7bmFtZToiSnVsaWFuIixlcG9jaHM6WyJCQyIsIkFEIl0sbW9udGhOYW1lczpbIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl0sbW9udGhOYW1lc1Nob3J0OlsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl0sZGF5TmFtZXM6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdLGRheU5hbWVzU2hvcnQ6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxkYXlOYW1lc01pbjpbIlN1IiwiTW8iLCJUdSIsIldlIiwiVGgiLCJGciIsIlNhIl0sZGlnaXRzOm51bGwsZGF0ZUZvcm1hdDoibW0vZGQveXl5eSIsZmlyc3REYXk6MCxpc1JUTDohMX19LGxlYXBZZWFyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3ZhbGlkYXRlKHQsdGhpcy5taW5Nb250aCx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRZZWFyKTtyZXR1cm4odD1lLnllYXIoKTwwP2UueWVhcigpKzE6ZS55ZWFyKCkpJTQ9PTB9LHdlZWtPZlllYXI6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMubmV3RGF0ZSh0LGUscik7cmV0dXJuIG4uYWRkKDQtKG4uZGF5T2ZXZWVrKCl8fDcpLCJkIiksTWF0aC5mbG9vcigobi5kYXlPZlllYXIoKS0xKS83KSsxfSxkYXlzSW5Nb250aDpmdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuX3ZhbGlkYXRlKHQsZSx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRNb250aCk7cmV0dXJuIHRoaXMuZGF5c1Blck1vbnRoW3IubW9udGgoKS0xXSsoMj09PXIubW9udGgoKSYmdGhpcy5sZWFwWWVhcihyLnllYXIoKSk/MTowKX0sd2Vla0RheTpmdW5jdGlvbih0LGUscil7cmV0dXJuKHRoaXMuZGF5T2ZXZWVrKHQsZSxyKXx8Nyk8Nn0sdG9KRDpmdW5jdGlvbih0LGUscil7dmFyIGk9dGhpcy5fdmFsaWRhdGUodCxlLHIsbi5sb2NhbC5pbnZhbGlkRGF0ZSk7cmV0dXJuIHQ9aS55ZWFyKCksZT1pLm1vbnRoKCkscj1pLmRheSgpLHQ8MCYmdCsrLGU8PTImJih0LS0sZSs9MTIpLE1hdGguZmxvb3IoMzY1LjI1Kih0KzQ3MTYpKStNYXRoLmZsb29yKDMwLjYwMDEqKGUrMSkpK3ItMTUyNC41fSxmcm9tSkQ6ZnVuY3Rpb24odCl7dmFyIGU9TWF0aC5mbG9vcih0Ky41KSsxNTI0LHI9TWF0aC5mbG9vcigoZS0xMjIuMSkvMzY1LjI1KSxuPU1hdGguZmxvb3IoMzY1LjI1KnIpLGk9TWF0aC5mbG9vcigoZS1uKS8zMC42MDAxKSxhPWktTWF0aC5mbG9vcihpPDE0PzE6MTMpLG89ci1NYXRoLmZsb29yKGE+Mj80NzE2OjQ3MTUpLHM9ZS1uLU1hdGguZmxvb3IoMzAuNjAwMSppKTtyZXR1cm4gbzw9MCYmby0tLHRoaXMubmV3RGF0ZShvLGEscyl9fSksbi5jYWxlbmRhcnMuanVsaWFuPWF9LHsiLi4vbWFpbiI6MzQ3LCJvYmplY3QtYXNzaWduIjoyNDd9XSwzNDA6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCIuLi9tYWluIiksaT10KCJvYmplY3QtYXNzaWduIik7ZnVuY3Rpb24gYSh0KXt0aGlzLmxvY2FsPXRoaXMucmVnaW9uYWxPcHRpb25zW3R8fCIiXXx8dGhpcy5yZWdpb25hbE9wdGlvbnNbIiJdfWZ1bmN0aW9uIG8odCxlKXtyZXR1cm4gdC1lKk1hdGguZmxvb3IodC9lKX1mdW5jdGlvbiBzKHQsZSl7cmV0dXJuIG8odC0xLGUpKzF9YS5wcm90b3R5cGU9bmV3IG4uYmFzZUNhbGVuZGFyLGkoYS5wcm90b3R5cGUse25hbWU6Ik1heWFuIixqZEVwb2NoOjU4NDI4Mi41LGhhc1llYXJaZXJvOiEwLG1pbk1vbnRoOjAsZmlyc3RNb250aDowLG1pbkRheTowLHJlZ2lvbmFsT3B0aW9uczp7IiI6e25hbWU6Ik1heWFuIixlcG9jaHM6WyIiLCIiXSxtb250aE5hbWVzOlsiMCIsIjEiLCIyIiwiMyIsIjQiLCI1IiwiNiIsIjciLCI4IiwiOSIsIjEwIiwiMTEiLCIxMiIsIjEzIiwiMTQiLCIxNSIsIjE2IiwiMTciXSxtb250aE5hbWVzU2hvcnQ6WyIwIiwiMSIsIjIiLCIzIiwiNCIsIjUiLCI2IiwiNyIsIjgiLCI5IiwiMTAiLCIxMSIsIjEyIiwiMTMiLCIxNCIsIjE1IiwiMTYiLCIxNyJdLGRheU5hbWVzOlsiMCIsIjEiLCIyIiwiMyIsIjQiLCI1IiwiNiIsIjciLCI4IiwiOSIsIjEwIiwiMTEiLCIxMiIsIjEzIiwiMTQiLCIxNSIsIjE2IiwiMTciLCIxOCIsIjE5Il0sZGF5TmFtZXNTaG9ydDpbIjAiLCIxIiwiMiIsIjMiLCI0IiwiNSIsIjYiLCI3IiwiOCIsIjkiLCIxMCIsIjExIiwiMTIiLCIxMyIsIjE0IiwiMTUiLCIxNiIsIjE3IiwiMTgiLCIxOSJdLGRheU5hbWVzTWluOlsiMCIsIjEiLCIyIiwiMyIsIjQiLCI1IiwiNiIsIjciLCI4IiwiOSIsIjEwIiwiMTEiLCIxMiIsIjEzIiwiMTQiLCIxNSIsIjE2IiwiMTciLCIxOCIsIjE5Il0sZGlnaXRzOm51bGwsZGF0ZUZvcm1hdDoiWVlZWS5tLmQiLGZpcnN0RGF5OjAsaXNSVEw6ITEsaGFhYk1vbnRoczpbIlBvcCIsIlVvIiwiWmlwIiwiWm90eiIsIlR6ZWMiLCJYdWwiLCJZYXhraW4iLCJNb2wiLCJDaGVuIiwiWWF4IiwiWmFjIiwiQ2VoIiwiTWFjIiwiS2Fua2luIiwiTXVhbiIsIlBheCIsIktheWFiIiwiQ3Vta3UiLCJVYXllYiJdLHR6b2xraW5Nb250aHM6WyJJbWl4IiwiSWsiLCJBa2JhbCIsIkthbiIsIkNoaWNjaGFuIiwiQ2ltaSIsIk1hbmlrIiwiTGFtYXQiLCJNdWx1YyIsIk9jIiwiQ2h1ZW4iLCJFYiIsIkJlbiIsIkl4IiwiTWVuIiwiQ2liIiwiQ2FiYW4iLCJFdHpuYWIiLCJDYXVhYyIsIkFoYXUiXX19LGxlYXBZZWFyOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl92YWxpZGF0ZSh0LHRoaXMubWluTW9udGgsdGhpcy5taW5EYXksbi5sb2NhbC5pbnZhbGlkWWVhciksITF9LGZvcm1hdFllYXI6ZnVuY3Rpb24odCl7dD10aGlzLl92YWxpZGF0ZSh0LHRoaXMubWluTW9udGgsdGhpcy5taW5EYXksbi5sb2NhbC5pbnZhbGlkWWVhcikueWVhcigpO3ZhciBlPU1hdGguZmxvb3IodC80MDApO3JldHVybiB0JT00MDAsdCs9dDwwPzQwMDowLGUrIi4iK01hdGguZmxvb3IodC8yMCkrIi4iK3QlMjB9LGZvclllYXI6ZnVuY3Rpb24odCl7aWYoKHQ9dC5zcGxpdCgiLiIpKS5sZW5ndGg8Myl0aHJvdyJJbnZhbGlkIE1heWFuIHllYXIiO2Zvcih2YXIgZT0wLHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIG49cGFyc2VJbnQodFtyXSwxMCk7aWYoTWF0aC5hYnMobik+MTl8fHI+MCYmbjwwKXRocm93IkludmFsaWQgTWF5YW4geWVhciI7ZT0yMCplK259cmV0dXJuIGV9LG1vbnRoc0luWWVhcjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZFllYXIpLDE4fSx3ZWVrT2ZZZWFyOmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdGhpcy5fdmFsaWRhdGUodCxlLHIsbi5sb2NhbC5pbnZhbGlkRGF0ZSksMH0sZGF5c0luWWVhcjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZFllYXIpLDM2MH0sZGF5c0luTW9udGg6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fdmFsaWRhdGUodCxlLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZE1vbnRoKSwyMH0sZGF5c0luV2VlazpmdW5jdGlvbigpe3JldHVybiA1fSxkYXlPZldlZWs6ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0aGlzLl92YWxpZGF0ZSh0LGUscixuLmxvY2FsLmludmFsaWREYXRlKS5kYXkoKX0sd2Vla0RheTpmdW5jdGlvbih0LGUscil7cmV0dXJuIHRoaXMuX3ZhbGlkYXRlKHQsZSxyLG4ubG9jYWwuaW52YWxpZERhdGUpLCEwfSxleHRyYUluZm86ZnVuY3Rpb24odCxlLHIpe3ZhciBpPXRoaXMuX3ZhbGlkYXRlKHQsZSxyLG4ubG9jYWwuaW52YWxpZERhdGUpLnRvSkQoKSxhPXRoaXMuX3RvSGFhYihpKSxvPXRoaXMuX3RvVHpvbGtpbihpKTtyZXR1cm57aGFhYk1vbnRoTmFtZTp0aGlzLmxvY2FsLmhhYWJNb250aHNbYVswXS0xXSxoYWFiTW9udGg6YVswXSxoYWFiRGF5OmFbMV0sdHpvbGtpbkRheU5hbWU6dGhpcy5sb2NhbC50em9sa2luTW9udGhzW29bMF0tMV0sdHpvbGtpbkRheTpvWzBdLHR6b2xraW5UcmVjZW5hOm9bMV19fSxfdG9IYWFiOmZ1bmN0aW9uKHQpe3ZhciBlPW8oKHQtPXRoaXMuamRFcG9jaCkrOCszNDAsMzY1KTtyZXR1cm5bTWF0aC5mbG9vcihlLzIwKSsxLG8oZSwyMCldfSxfdG9Uem9sa2luOmZ1bmN0aW9uKHQpe3JldHVybltzKCh0LT10aGlzLmpkRXBvY2gpKzIwLDIwKSxzKHQrNCwxMyldfSx0b0pEOmZ1bmN0aW9uKHQsZSxyKXt2YXIgaT10aGlzLl92YWxpZGF0ZSh0LGUscixuLmxvY2FsLmludmFsaWREYXRlKTtyZXR1cm4gaS5kYXkoKSsyMCppLm1vbnRoKCkrMzYwKmkueWVhcigpK3RoaXMuamRFcG9jaH0sZnJvbUpEOmZ1bmN0aW9uKHQpe3Q9TWF0aC5mbG9vcih0KSsuNS10aGlzLmpkRXBvY2g7dmFyIGU9TWF0aC5mbG9vcih0LzM2MCk7dCU9MzYwLHQrPXQ8MD8zNjA6MDt2YXIgcj1NYXRoLmZsb29yKHQvMjApLG49dCUyMDtyZXR1cm4gdGhpcy5uZXdEYXRlKGUscixuKX19KSxuLmNhbGVuZGFycy5tYXlhbj1hfSx7Ii4uL21haW4iOjM0Nywib2JqZWN0LWFzc2lnbiI6MjQ3fV0sMzQxOltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiLi4vbWFpbiIpLGk9dCgib2JqZWN0LWFzc2lnbiIpO2Z1bmN0aW9uIGEodCl7dGhpcy5sb2NhbD10aGlzLnJlZ2lvbmFsT3B0aW9uc1t0fHwiIl18fHRoaXMucmVnaW9uYWxPcHRpb25zWyIiXX1hLnByb3RvdHlwZT1uZXcgbi5iYXNlQ2FsZW5kYXI7dmFyIG89bi5pbnN0YW5jZSgiZ3JlZ29yaWFuIik7aShhLnByb3RvdHlwZSx7bmFtZToiTmFuYWtzaGFoaSIsamRFcG9jaDoyMjU3NjczLjUsZGF5c1Blck1vbnRoOlszMSwzMSwzMSwzMSwzMSwzMCwzMCwzMCwzMCwzMCwzMCwzMF0saGFzWWVhclplcm86ITEsbWluTW9udGg6MSxmaXJzdE1vbnRoOjEsbWluRGF5OjEscmVnaW9uYWxPcHRpb25zOnsiIjp7bmFtZToiTmFuYWtzaGFoaSIsZXBvY2hzOlsiQk4iLCJBTiJdLG1vbnRoTmFtZXM6WyJDaGV0IiwiVmFpc2FraCIsIkpldGgiLCJIYXJoIiwiU2F3YW4iLCJCaGFkb24iLCJBc3N1IiwiS2F0YWsiLCJNYWdoYXIiLCJQb2giLCJNYWdoIiwiUGhhZ3VuIl0sbW9udGhOYW1lc1Nob3J0OlsiQ2hlIiwiVmFpIiwiSmV0IiwiSGFyIiwiU2F3IiwiQmhhIiwiQXNzIiwiS2F0IiwiTWdyIiwiUG9oIiwiTWdoIiwiUGhhIl0sZGF5TmFtZXM6WyJTb212YWFyIiwiTWFuZ2FsdmFyIiwiQnVkaHZhYXIiLCJWZWVydmFhciIsIlNodWthcnZhYXIiLCJTYW5pY2hhcnZhYXIiLCJFdHZhYXIiXSxkYXlOYW1lc1Nob3J0OlsiU29tIiwiTWFuZ2FsIiwiQnVkaCIsIlZlZXIiLCJTaHVrYXIiLCJTYW5pY2hhciIsIkV0Il0sZGF5TmFtZXNNaW46WyJTbyIsIk1hIiwiQnUiLCJWZSIsIlNoIiwiU2EiLCJFdCJdLGRpZ2l0czpudWxsLGRhdGVGb3JtYXQ6ImRkLW1tLXl5eXkiLGZpcnN0RGF5OjAsaXNSVEw6ITF9fSxsZWFwWWVhcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl92YWxpZGF0ZSh0LHRoaXMubWluTW9udGgsdGhpcy5taW5EYXksbi5sb2NhbC5pbnZhbGlkWWVhcnx8bi5yZWdpb25hbE9wdGlvbnNbIiJdLmludmFsaWRZZWFyKTtyZXR1cm4gby5sZWFwWWVhcihlLnllYXIoKSsoZS55ZWFyKCk8MT8xOjApKzE0NjkpfSx3ZWVrT2ZZZWFyOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLm5ld0RhdGUodCxlLHIpO3JldHVybiBuLmFkZCgxLShuLmRheU9mV2VlaygpfHw3KSwiZCIpLE1hdGguZmxvb3IoKG4uZGF5T2ZZZWFyKCktMSkvNykrMX0sZGF5c0luTW9udGg6ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLl92YWxpZGF0ZSh0LGUsdGhpcy5taW5EYXksbi5sb2NhbC5pbnZhbGlkTW9udGgpO3JldHVybiB0aGlzLmRheXNQZXJNb250aFtyLm1vbnRoKCktMV0rKDEyPT09ci5tb250aCgpJiZ0aGlzLmxlYXBZZWFyKHIueWVhcigpKT8xOjApfSx3ZWVrRGF5OmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4odGhpcy5kYXlPZldlZWsodCxlLHIpfHw3KTw2fSx0b0pEOmZ1bmN0aW9uKHQsZSxyKXt2YXIgaT10aGlzLl92YWxpZGF0ZSh0LGUscixuLmxvY2FsLmludmFsaWRNb250aCk7KHQ9aS55ZWFyKCkpPDAmJnQrKztmb3IodmFyIGE9aS5kYXkoKSxzPTE7czxpLm1vbnRoKCk7cysrKWErPXRoaXMuZGF5c1Blck1vbnRoW3MtMV07cmV0dXJuIGErby50b0pEKHQrMTQ2OCwzLDEzKX0sZnJvbUpEOmZ1bmN0aW9uKHQpe3Q9TWF0aC5mbG9vcih0Ky41KTtmb3IodmFyIGU9TWF0aC5mbG9vcigodC0odGhpcy5qZEVwb2NoLTEpKS8zNjYpO3Q+PXRoaXMudG9KRChlKzEsMSwxKTspZSsrO2Zvcih2YXIgcj10LU1hdGguZmxvb3IodGhpcy50b0pEKGUsMSwxKSsuNSkrMSxuPTE7cj50aGlzLmRheXNJbk1vbnRoKGUsbik7KXItPXRoaXMuZGF5c0luTW9udGgoZSxuKSxuKys7cmV0dXJuIHRoaXMubmV3RGF0ZShlLG4scil9fSksbi5jYWxlbmRhcnMubmFuYWtzaGFoaT1hfSx7Ii4uL21haW4iOjM0Nywib2JqZWN0LWFzc2lnbiI6MjQ3fV0sMzQyOltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiLi4vbWFpbiIpLGk9dCgib2JqZWN0LWFzc2lnbiIpO2Z1bmN0aW9uIGEodCl7dGhpcy5sb2NhbD10aGlzLnJlZ2lvbmFsT3B0aW9uc1t0fHwiIl18fHRoaXMucmVnaW9uYWxPcHRpb25zWyIiXX1hLnByb3RvdHlwZT1uZXcgbi5iYXNlQ2FsZW5kYXIsaShhLnByb3RvdHlwZSx7bmFtZToiTmVwYWxpIixqZEVwb2NoOjE3MDA3MDkuNSxkYXlzUGVyTW9udGg6WzMxLDMxLDMyLDMyLDMxLDMwLDMwLDI5LDMwLDI5LDMwLDMwXSxoYXNZZWFyWmVybzohMSxtaW5Nb250aDoxLGZpcnN0TW9udGg6MSxtaW5EYXk6MSxkYXlzUGVyWWVhcjozNjUscmVnaW9uYWxPcHRpb25zOnsiIjp7bmFtZToiTmVwYWxpIixlcG9jaHM6WyJCQlMiLCJBQlMiXSxtb250aE5hbWVzOlsiQmFpc2FraCIsIkplc3RoYSIsIkFzaGFkaCIsIlNocmF3YW4iLCJCaGFkcmEiLCJBc2h3aW4iLCJLYXJ0aWsiLCJNYW5nc2lyIiwiUGF1c2giLCJNYW5naCIsIkZhbGd1biIsIkNoYWl0cmEiXSxtb250aE5hbWVzU2hvcnQ6WyJCYWkiLCJKZSIsIkFzIiwiU2hyYSIsIkJoYSIsIkFzaCIsIkthciIsIk1hbmciLCJQYXUiLCJNYSIsIkZhbCIsIkNoYWkiXSxkYXlOYW1lczpbIkFhaXRhYmFhciIsIlNvbWJhYXIiLCJNYW5nbGJhYXIiLCJCdWRoYWJhYXIiLCJCaWhpYmFhciIsIlNodWtyYWJhYXIiLCJTaGFuaWJhYXIiXSxkYXlOYW1lc1Nob3J0OlsiQWFpdGEiLCJTb20iLCJNYW5nbCIsIkJ1ZGhhIiwiQmloaSIsIlNodWtyYSIsIlNoYW5pIl0sZGF5TmFtZXNNaW46WyJBYWkiLCJTbyIsIk1hbiIsIkJ1IiwiQmkiLCJTaHUiLCJTaGEiXSxkaWdpdHM6bnVsbCxkYXRlRm9ybWF0OiJkZC9tbS95eXl5IixmaXJzdERheToxLGlzUlRMOiExfX0sbGVhcFllYXI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZGF5c0luWWVhcih0KSE9PXRoaXMuZGF5c1BlclllYXJ9LHdlZWtPZlllYXI6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMubmV3RGF0ZSh0LGUscik7cmV0dXJuIG4uYWRkKC1uLmRheU9mV2VlaygpLCJkIiksTWF0aC5mbG9vcigobi5kYXlPZlllYXIoKS0xKS83KSsxfSxkYXlzSW5ZZWFyOmZ1bmN0aW9uKHQpe2lmKHQ9dGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZFllYXIpLnllYXIoKSx2b2lkIDA9PT10aGlzLk5FUEFMSV9DQUxFTkRBUl9EQVRBW3RdKXJldHVybiB0aGlzLmRheXNQZXJZZWFyO2Zvcih2YXIgZT0wLHI9dGhpcy5taW5Nb250aDtyPD0xMjtyKyspZSs9dGhpcy5ORVBBTElfQ0FMRU5EQVJfREFUQVt0XVtyXTtyZXR1cm4gZX0sZGF5c0luTW9udGg6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC55ZWFyJiYoZT10Lm1vbnRoKCksdD10LnllYXIoKSksdGhpcy5fdmFsaWRhdGUodCxlLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZE1vbnRoKSx2b2lkIDA9PT10aGlzLk5FUEFMSV9DQUxFTkRBUl9EQVRBW3RdP3RoaXMuZGF5c1Blck1vbnRoW2UtMV06dGhpcy5ORVBBTElfQ0FMRU5EQVJfREFUQVt0XVtlXX0sd2Vla0RheTpmdW5jdGlvbih0LGUscil7cmV0dXJuIDYhPT10aGlzLmRheU9mV2Vlayh0LGUscil9LHRvSkQ6ZnVuY3Rpb24odCxlLHIpe3ZhciBpPXRoaXMuX3ZhbGlkYXRlKHQsZSxyLG4ubG9jYWwuaW52YWxpZERhdGUpO3Q9aS55ZWFyKCksZT1pLm1vbnRoKCkscj1pLmRheSgpO3ZhciBhPW4uaW5zdGFuY2UoKSxvPTAscz1lLGw9dDt0aGlzLl9jcmVhdGVNaXNzaW5nQ2FsZW5kYXJEYXRhKHQpO3ZhciBjPXQtKHM+OXx8OT09PXMmJnI+PXRoaXMuTkVQQUxJX0NBTEVOREFSX0RBVEFbbF1bMF0/NTY6NTcpO2Zvcig5IT09ZSYmKG89cixzLS0pOzkhPT1zOylzPD0wJiYocz0xMixsLS0pLG8rPXRoaXMuTkVQQUxJX0NBTEVOREFSX0RBVEFbbF1bc10scy0tO3JldHVybiA5PT09ZT8obys9ci10aGlzLk5FUEFMSV9DQUxFTkRBUl9EQVRBW2xdWzBdKTwwJiYobys9YS5kYXlzSW5ZZWFyKGMpKTpvKz10aGlzLk5FUEFMSV9DQUxFTkRBUl9EQVRBW2xdWzldLXRoaXMuTkVQQUxJX0NBTEVOREFSX0RBVEFbbF1bMF0sYS5uZXdEYXRlKGMsMSwxKS5hZGQobywiZCIpLnRvSkQoKX0sZnJvbUpEOmZ1bmN0aW9uKHQpe3ZhciBlPW4uaW5zdGFuY2UoKS5mcm9tSkQodCkscj1lLnllYXIoKSxpPWUuZGF5T2ZZZWFyKCksYT1yKzU2O3RoaXMuX2NyZWF0ZU1pc3NpbmdDYWxlbmRhckRhdGEoYSk7Zm9yKHZhciBvPTkscz10aGlzLk5FUEFMSV9DQUxFTkRBUl9EQVRBW2FdWzBdLGw9dGhpcy5ORVBBTElfQ0FMRU5EQVJfREFUQVthXVtvXS1zKzE7aT5sOykrK28+MTImJihvPTEsYSsrKSxsKz10aGlzLk5FUEFMSV9DQUxFTkRBUl9EQVRBW2FdW29dO3ZhciBjPXRoaXMuTkVQQUxJX0NBTEVOREFSX0RBVEFbYV1bb10tKGwtaSk7cmV0dXJuIHRoaXMubmV3RGF0ZShhLG8sYyl9LF9jcmVhdGVNaXNzaW5nQ2FsZW5kYXJEYXRhOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZGF5c1Blck1vbnRoLnNsaWNlKDApO2UudW5zaGlmdCgxNyk7Zm9yKHZhciByPXQtMTtyPHQrMjtyKyspdm9pZCAwPT09dGhpcy5ORVBBTElfQ0FMRU5EQVJfREFUQVtyXSYmKHRoaXMuTkVQQUxJX0NBTEVOREFSX0RBVEFbcl09ZSl9LE5FUEFMSV9DQUxFTkRBUl9EQVRBOnsxOTcwOlsxOCwzMSwzMSwzMiwzMSwzMSwzMSwzMCwyOSwzMCwyOSwzMCwzMF0sMTk3MTpbMTgsMzEsMzEsMzIsMzEsMzIsMzAsMzAsMjksMzAsMjksMzAsMzBdLDE5NzI6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDI5LDMwLDMwXSwxOTczOlsxOSwzMCwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwzMCwyOSwzMV0sMTk3NDpbMTksMzEsMzEsMzIsMzAsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDE5NzU6WzE4LDMxLDMxLDMyLDMyLDMwLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwxOTc2OlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwyOSwzMCwzMV0sMTk3NzpbMTgsMzEsMzIsMzEsMzIsMzEsMzEsMjksMzAsMjksMzAsMjksMzFdLDE5Nzg6WzE4LDMxLDMxLDMyLDMxLDMxLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwxOTc5OlsxOCwzMSwzMSwzMiwzMiwzMSwzMCwzMCwyOSwzMCwyOSwzMCwzMF0sMTk4MDpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMjksMzAsMzFdLDE5ODE6WzE4LDMxLDMxLDMxLDMyLDMxLDMxLDI5LDMwLDMwLDI5LDMwLDMwXSwxOTgyOlsxOCwzMSwzMSwzMiwzMSwzMSwzMSwzMCwyOSwzMCwyOSwzMCwzMF0sMTk4MzpbMTgsMzEsMzEsMzIsMzIsMzEsMzAsMzAsMjksMzAsMjksMzAsMzBdLDE5ODQ6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDI5LDMwLDMxXSwxOTg1OlsxOCwzMSwzMSwzMSwzMiwzMSwzMSwyOSwzMCwzMCwyOSwzMCwzMF0sMTk4NjpbMTgsMzEsMzEsMzIsMzEsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDE5ODc6WzE4LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDI5LDMwLDI5LDMwLDMwXSwxOTg4OlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwyOSwzMCwzMV0sMTk4OTpbMTgsMzEsMzEsMzEsMzIsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDE5OTA6WzE4LDMxLDMxLDMyLDMxLDMxLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwxOTkxOlsxOCwzMSwzMiwzMSwzMiwzMSwzMCwzMCwyOSwzMCwyOSwzMCwzMF0sMTk5MjpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMzAsMjksMzFdLDE5OTM6WzE4LDMxLDMxLDMxLDMyLDMxLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwxOTk0OlsxOCwzMSwzMSwzMiwzMSwzMSwzMSwzMCwyOSwzMCwyOSwzMCwzMF0sMTk5NTpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMjksMzAsMzBdLDE5OTY6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDMwLDI5LDMxXSwxOTk3OlsxOCwzMSwzMSwzMiwzMSwzMSwzMSwzMCwyOSwzMCwyOSwzMCwzMF0sMTk5ODpbMTgsMzEsMzEsMzIsMzEsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDE5OTk6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDI5LDMwLDMxXSwyZTM6WzE3LDMwLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDMwLDI5LDMxXSwyMDAxOlsxOCwzMSwzMSwzMiwzMSwzMSwzMSwzMCwyOSwzMCwyOSwzMCwzMF0sMjAwMjpbMTgsMzEsMzEsMzIsMzIsMzEsMzAsMzAsMjksMzAsMjksMzAsMzBdLDIwMDM6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDI5LDMwLDMxXSwyMDA0OlsxNywzMCwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwzMCwyOSwzMV0sMjAwNTpbMTgsMzEsMzEsMzIsMzEsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDIwMDY6WzE4LDMxLDMxLDMyLDMyLDMxLDMwLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDA3OlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwyOSwzMCwzMV0sMjAwODpbMTcsMzEsMzEsMzEsMzIsMzEsMzEsMjksMzAsMzAsMjksMjksMzFdLDIwMDk6WzE4LDMxLDMxLDMyLDMxLDMxLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDEwOlsxOCwzMSwzMSwzMiwzMiwzMSwzMCwzMCwyOSwzMCwyOSwzMCwzMF0sMjAxMTpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMjksMzAsMzFdLDIwMTI6WzE3LDMxLDMxLDMxLDMyLDMxLDMxLDI5LDMwLDMwLDI5LDMwLDMwXSwyMDEzOlsxOCwzMSwzMSwzMiwzMSwzMSwzMSwzMCwyOSwzMCwyOSwzMCwzMF0sMjAxNDpbMTgsMzEsMzEsMzIsMzIsMzEsMzAsMzAsMjksMzAsMjksMzAsMzBdLDIwMTU6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDI5LDMwLDMxXSwyMDE2OlsxNywzMSwzMSwzMSwzMiwzMSwzMSwyOSwzMCwzMCwyOSwzMCwzMF0sMjAxNzpbMTgsMzEsMzEsMzIsMzEsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDIwMTg6WzE4LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDE5OlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwzMCwyOSwzMV0sMjAyMDpbMTcsMzEsMzEsMzEsMzIsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDIwMjE6WzE4LDMxLDMxLDMyLDMxLDMxLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDIyOlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwyOSwzMCwzMF0sMjAyMzpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMzAsMjksMzFdLDIwMjQ6WzE3LDMxLDMxLDMxLDMyLDMxLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDI1OlsxOCwzMSwzMSwzMiwzMSwzMSwzMSwzMCwyOSwzMCwyOSwzMCwzMF0sMjAyNjpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMjksMzAsMzFdLDIwMjc6WzE3LDMwLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDMwLDI5LDMxXSwyMDI4OlsxNywzMSwzMSwzMiwzMSwzMSwzMSwzMCwyOSwzMCwyOSwzMCwzMF0sMjAyOTpbMTgsMzEsMzEsMzIsMzEsMzIsMzAsMzAsMjksMzAsMjksMzAsMzBdLDIwMzA6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDMwLDMwLDMwLDMxXSwyMDMxOlsxNywzMSwzMiwzMSwzMiwzMSwzMSwzMSwzMSwzMSwzMSwzMSwzMV0sMjAzMjpbMTcsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzJdLDIwMzM6WzE4LDMxLDMxLDMyLDMyLDMxLDMwLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDM0OlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwyOSwzMCwzMV0sMjAzNTpbMTcsMzAsMzIsMzEsMzIsMzEsMzEsMjksMzAsMzAsMjksMjksMzFdLDIwMzY6WzE3LDMxLDMxLDMyLDMxLDMxLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDM3OlsxOCwzMSwzMSwzMiwzMiwzMSwzMCwzMCwyOSwzMCwyOSwzMCwzMF0sMjAzODpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMjksMzAsMzFdLDIwMzk6WzE3LDMxLDMxLDMxLDMyLDMxLDMxLDI5LDMwLDMwLDI5LDMwLDMwXSwyMDQwOlsxNywzMSwzMSwzMiwzMSwzMSwzMSwzMCwyOSwzMCwyOSwzMCwzMF0sMjA0MTpbMTgsMzEsMzEsMzIsMzIsMzEsMzAsMzAsMjksMzAsMjksMzAsMzBdLDIwNDI6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDI5LDMwLDMxXSwyMDQzOlsxNywzMSwzMSwzMSwzMiwzMSwzMSwyOSwzMCwzMCwyOSwzMCwzMF0sMjA0NDpbMTcsMzEsMzEsMzIsMzEsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDIwNDU6WzE4LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDQ2OlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwyOSwzMCwzMV0sMjA0NzpbMTcsMzEsMzEsMzEsMzIsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDIwNDg6WzE3LDMxLDMxLDMyLDMxLDMxLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDQ5OlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwyOSwzMCwzMF0sMjA1MDpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMzAsMjksMzFdLDIwNTE6WzE3LDMxLDMxLDMxLDMyLDMxLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDUyOlsxNywzMSwzMSwzMiwzMSwzMSwzMSwzMCwyOSwzMCwyOSwzMCwzMF0sMjA1MzpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMjksMzAsMzBdLDIwNTQ6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDMwLDI5LDMxXSwyMDU1OlsxNywzMSwzMSwzMiwzMSwzMSwzMSwzMCwyOSwzMCwzMCwyOSwzMF0sMjA1NjpbMTcsMzEsMzEsMzIsMzEsMzIsMzAsMzAsMjksMzAsMjksMzAsMzBdLDIwNTc6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDI5LDMwLDMxXSwyMDU4OlsxNywzMCwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwzMCwyOSwzMV0sMjA1OTpbMTcsMzEsMzEsMzIsMzEsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDIwNjA6WzE3LDMxLDMxLDMyLDMyLDMxLDMwLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDYxOlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwyOSwzMCwzMV0sMjA2MjpbMTcsMzAsMzIsMzEsMzIsMzEsMzEsMjksMzAsMjksMzAsMjksMzFdLDIwNjM6WzE3LDMxLDMxLDMyLDMxLDMxLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDY0OlsxNywzMSwzMSwzMiwzMiwzMSwzMCwzMCwyOSwzMCwyOSwzMCwzMF0sMjA2NTpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMjksMzAsMzFdLDIwNjY6WzE3LDMxLDMxLDMxLDMyLDMxLDMxLDI5LDMwLDMwLDI5LDI5LDMxXSwyMDY3OlsxNywzMSwzMSwzMiwzMSwzMSwzMSwzMCwyOSwzMCwyOSwzMCwzMF0sMjA2ODpbMTcsMzEsMzEsMzIsMzIsMzEsMzAsMzAsMjksMzAsMjksMzAsMzBdLDIwNjk6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDI5LDMwLDMxXSwyMDcwOlsxNywzMSwzMSwzMSwzMiwzMSwzMSwyOSwzMCwzMCwyOSwzMCwzMF0sMjA3MTpbMTcsMzEsMzEsMzIsMzEsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDIwNzI6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDczOlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwyOSwzMCwzMV0sMjA3NDpbMTcsMzEsMzEsMzEsMzIsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDIwNzU6WzE3LDMxLDMxLDMyLDMxLDMxLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDc2OlsxNiwzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwyOSwzMCwzMF0sMjA3NzpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMzAsMjksMzFdLDIwNzg6WzE3LDMxLDMxLDMxLDMyLDMxLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDc5OlsxNywzMSwzMSwzMiwzMSwzMSwzMSwzMCwyOSwzMCwyOSwzMCwzMF0sMjA4MDpbMTYsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMjksMzAsMzBdLDIwODE6WzE3LDMxLDMxLDMyLDMyLDMxLDMwLDMwLDMwLDI5LDMwLDMwLDMwXSwyMDgyOlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwzMCwzMCwzMF0sMjA4MzpbMTcsMzEsMzEsMzIsMzEsMzEsMzAsMzAsMzAsMjksMzAsMzAsMzBdLDIwODQ6WzE3LDMxLDMxLDMyLDMxLDMxLDMwLDMwLDMwLDI5LDMwLDMwLDMwXSwyMDg1OlsxNywzMSwzMiwzMSwzMiwzMSwzMSwzMCwzMCwyOSwzMCwzMCwzMF0sMjA4NjpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMzAsMzAsMzBdLDIwODc6WzE2LDMxLDMxLDMyLDMxLDMxLDMxLDMwLDMwLDI5LDMwLDMwLDMwXSwyMDg4OlsxNiwzMCwzMSwzMiwzMiwzMCwzMSwzMCwzMCwyOSwzMCwzMCwzMF0sMjA4OTpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMzAsMzAsMzBdLDIwOTA6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDMwLDMwLDMwXSwyMDkxOlsxNiwzMSwzMSwzMiwzMSwzMSwzMSwzMCwzMCwyOSwzMCwzMCwzMF0sMjA5MjpbMTYsMzEsMzEsMzIsMzIsMzEsMzAsMzAsMzAsMjksMzAsMzAsMzBdLDIwOTM6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDMwLDMwLDMwXSwyMDk0OlsxNywzMSwzMSwzMiwzMSwzMSwzMCwzMCwzMCwyOSwzMCwzMCwzMF0sMjA5NTpbMTcsMzEsMzEsMzIsMzEsMzEsMzEsMzAsMjksMzAsMzAsMzAsMzBdLDIwOTY6WzE3LDMwLDMxLDMyLDMyLDMxLDMwLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDk3OlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwzMCwzMCwzMF0sMjA5ODpbMTcsMzEsMzEsMzIsMzEsMzEsMzEsMjksMzAsMjksMzAsMzAsMzFdLDIwOTk6WzE3LDMxLDMxLDMyLDMxLDMxLDMxLDMwLDI5LDI5LDMwLDMwLDMwXSwyMTAwOlsxNywzMSwzMiwzMSwzMiwzMCwzMSwzMCwyOSwzMCwyOSwzMCwzMF19fSksbi5jYWxlbmRhcnMubmVwYWxpPWF9LHsiLi4vbWFpbiI6MzQ3LCJvYmplY3QtYXNzaWduIjoyNDd9XSwzNDM6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCIuLi9tYWluIiksaT10KCJvYmplY3QtYXNzaWduIik7ZnVuY3Rpb24gYSh0KXt0aGlzLmxvY2FsPXRoaXMucmVnaW9uYWxPcHRpb25zW3R8fCIiXXx8dGhpcy5yZWdpb25hbE9wdGlvbnNbIiJdfWZ1bmN0aW9uIG8odCxlKXtyZXR1cm4gdC1lKk1hdGguZmxvb3IodC9lKX1hLnByb3RvdHlwZT1uZXcgbi5iYXNlQ2FsZW5kYXIsaShhLnByb3RvdHlwZSx7bmFtZToiUGVyc2lhbiIsamRFcG9jaDoxOTQ4MzIwLjUsZGF5c1Blck1vbnRoOlszMSwzMSwzMSwzMSwzMSwzMSwzMCwzMCwzMCwzMCwzMCwyOV0saGFzWWVhclplcm86ITEsbWluTW9udGg6MSxmaXJzdE1vbnRoOjEsbWluRGF5OjEscmVnaW9uYWxPcHRpb25zOnsiIjp7bmFtZToiUGVyc2lhbiIsZXBvY2hzOlsiQlAiLCJBUCJdLG1vbnRoTmFtZXM6WyJGYXJ2YXJkaW4iLCJPcmRpYmVoZXNodCIsIktob3JkYWQiLCJUaXIiLCJNb3JkYWQiLCJTaGFocml2YXIiLCJNZWhyIiwiQWJhbiIsIkF6YXIiLCJEYXkiLCJCYWhtYW4iLCJFc2ZhbmQiXSxtb250aE5hbWVzU2hvcnQ6WyJGYXIiLCJPcmQiLCJLaG8iLCJUaXIiLCJNb3IiLCJTaGEiLCJNZWgiLCJBYmEiLCJBemEiLCJEYXkiLCJCYWgiLCJFc2YiXSxkYXlOYW1lczpbIllla3NoYW1iZSIsIkRvc2hhbWJlIiwiU2VzaGFtYmUiLCJDaFx4ZTZoYXJzaGFtYmUiLCJQYW5qc2hhbWJlIiwiSm9tJ2UiLCJTaGFtYmUiXSxkYXlOYW1lc1Nob3J0OlsiWWVrIiwiRG8iLCJTZSIsIkNoXHhlNiIsIlBhbmoiLCJKb20iLCJTaGEiXSxkYXlOYW1lc01pbjpbIlllIiwiRG8iLCJTZSIsIkNoIiwiUGEiLCJKbyIsIlNoIl0sZGlnaXRzOm51bGwsZGF0ZUZvcm1hdDoieXl5eS9tbS9kZCIsZmlyc3REYXk6Nixpc1JUTDohMX19LGxlYXBZZWFyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3ZhbGlkYXRlKHQsdGhpcy5taW5Nb250aCx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRZZWFyKTtyZXR1cm4gNjgyKigoZS55ZWFyKCktKGUueWVhcigpPjA/NDc0OjQ3MykpJTI4MjArNDc0KzM4KSUyODE2PDY4Mn0sd2Vla09mWWVhcjpmdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5uZXdEYXRlKHQsZSxyKTtyZXR1cm4gbi5hZGQoLShuLmRheU9mV2VlaygpKzEpJTcsImQiKSxNYXRoLmZsb29yKChuLmRheU9mWWVhcigpLTEpLzcpKzF9LGRheXNJbk1vbnRoOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fdmFsaWRhdGUodCxlLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZE1vbnRoKTtyZXR1cm4gdGhpcy5kYXlzUGVyTW9udGhbci5tb250aCgpLTFdKygxMj09PXIubW9udGgoKSYmdGhpcy5sZWFwWWVhcihyLnllYXIoKSk/MTowKX0sd2Vla0RheTpmdW5jdGlvbih0LGUscil7cmV0dXJuIDUhPT10aGlzLmRheU9mV2Vlayh0LGUscil9LHRvSkQ6ZnVuY3Rpb24odCxlLHIpe3ZhciBpPXRoaXMuX3ZhbGlkYXRlKHQsZSxyLG4ubG9jYWwuaW52YWxpZERhdGUpO3Q9aS55ZWFyKCksZT1pLm1vbnRoKCkscj1pLmRheSgpO3ZhciBhPXQtKHQ+PTA/NDc0OjQ3Mykscz00NzQrbyhhLDI4MjApO3JldHVybiByKyhlPD03PzMxKihlLTEpOjMwKihlLTEpKzYpK01hdGguZmxvb3IoKDY4MipzLTExMCkvMjgxNikrMzY1KihzLTEpKzEwMjk5ODMqTWF0aC5mbG9vcihhLzI4MjApK3RoaXMuamRFcG9jaC0xfSxmcm9tSkQ6ZnVuY3Rpb24odCl7dmFyIGU9KHQ9TWF0aC5mbG9vcih0KSsuNSktdGhpcy50b0pEKDQ3NSwxLDEpLHI9TWF0aC5mbG9vcihlLzEwMjk5ODMpLG49byhlLDEwMjk5ODMpLGk9MjgyMDtpZigxMDI5OTgyIT09bil7dmFyIGE9TWF0aC5mbG9vcihuLzM2Nikscz1vKG4sMzY2KTtpPU1hdGguZmxvb3IoKDIxMzQqYSsyODE2KnMrMjgxNSkvMTAyODUyMikrYSsxfXZhciBsPWkrMjgyMCpyKzQ3NDtsPWw8PTA/bC0xOmw7dmFyIGM9dC10aGlzLnRvSkQobCwxLDEpKzEsdT1jPD0xODY/TWF0aC5jZWlsKGMvMzEpOk1hdGguY2VpbCgoYy02KS8zMCksZj10LXRoaXMudG9KRChsLHUsMSkrMTtyZXR1cm4gdGhpcy5uZXdEYXRlKGwsdSxmKX19KSxuLmNhbGVuZGFycy5wZXJzaWFuPWEsbi5jYWxlbmRhcnMuamFsYWxpPWF9LHsiLi4vbWFpbiI6MzQ3LCJvYmplY3QtYXNzaWduIjoyNDd9XSwzNDQ6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCIuLi9tYWluIiksaT10KCJvYmplY3QtYXNzaWduIiksYT1uLmluc3RhbmNlKCk7ZnVuY3Rpb24gbyh0KXt0aGlzLmxvY2FsPXRoaXMucmVnaW9uYWxPcHRpb25zW3R8fCIiXXx8dGhpcy5yZWdpb25hbE9wdGlvbnNbIiJdfW8ucHJvdG90eXBlPW5ldyBuLmJhc2VDYWxlbmRhcixpKG8ucHJvdG90eXBlLHtuYW1lOiJUYWl3YW4iLGpkRXBvY2g6MjQxOTQwMi41LHllYXJzT2Zmc2V0OjE5MTEsZGF5c1Blck1vbnRoOlszMSwyOCwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV0saGFzWWVhclplcm86ITEsbWluTW9udGg6MSxmaXJzdE1vbnRoOjEsbWluRGF5OjEscmVnaW9uYWxPcHRpb25zOnsiIjp7bmFtZToiVGFpd2FuIixlcG9jaHM6WyJCUk9DIiwiUk9DIl0sbW9udGhOYW1lczpbIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl0sbW9udGhOYW1lc1Nob3J0OlsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl0sZGF5TmFtZXM6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdLGRheU5hbWVzU2hvcnQ6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxkYXlOYW1lc01pbjpbIlN1IiwiTW8iLCJUdSIsIldlIiwiVGgiLCJGciIsIlNhIl0sZGlnaXRzOm51bGwsZGF0ZUZvcm1hdDoieXl5eS9tbS9kZCIsZmlyc3REYXk6MSxpc1JUTDohMX19LGxlYXBZZWFyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3ZhbGlkYXRlKHQsdGhpcy5taW5Nb250aCx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRZZWFyKTt0PXRoaXMuX3QyZ1llYXIoZS55ZWFyKCkpO3JldHVybiBhLmxlYXBZZWFyKHQpfSx3ZWVrT2ZZZWFyOmZ1bmN0aW9uKHQsZSxyKXt2YXIgaT10aGlzLl92YWxpZGF0ZSh0LHRoaXMubWluTW9udGgsdGhpcy5taW5EYXksbi5sb2NhbC5pbnZhbGlkWWVhcik7dD10aGlzLl90MmdZZWFyKGkueWVhcigpKTtyZXR1cm4gYS53ZWVrT2ZZZWFyKHQsaS5tb250aCgpLGkuZGF5KCkpfSxkYXlzSW5Nb250aDpmdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuX3ZhbGlkYXRlKHQsZSx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRNb250aCk7cmV0dXJuIHRoaXMuZGF5c1Blck1vbnRoW3IubW9udGgoKS0xXSsoMj09PXIubW9udGgoKSYmdGhpcy5sZWFwWWVhcihyLnllYXIoKSk/MTowKX0sd2Vla0RheTpmdW5jdGlvbih0LGUscil7cmV0dXJuKHRoaXMuZGF5T2ZXZWVrKHQsZSxyKXx8Nyk8Nn0sdG9KRDpmdW5jdGlvbih0LGUscil7dmFyIGk9dGhpcy5fdmFsaWRhdGUodCxlLHIsbi5sb2NhbC5pbnZhbGlkRGF0ZSk7dD10aGlzLl90MmdZZWFyKGkueWVhcigpKTtyZXR1cm4gYS50b0pEKHQsaS5tb250aCgpLGkuZGF5KCkpfSxmcm9tSkQ6ZnVuY3Rpb24odCl7dmFyIGU9YS5mcm9tSkQodCkscj10aGlzLl9nMnRZZWFyKGUueWVhcigpKTtyZXR1cm4gdGhpcy5uZXdEYXRlKHIsZS5tb250aCgpLGUuZGF5KCkpfSxfdDJnWWVhcjpmdW5jdGlvbih0KXtyZXR1cm4gdCt0aGlzLnllYXJzT2Zmc2V0Kyh0Pj0tdGhpcy55ZWFyc09mZnNldCYmdDw9LTE/MTowKX0sX2cydFllYXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQtdGhpcy55ZWFyc09mZnNldC0odD49MSYmdDw9dGhpcy55ZWFyc09mZnNldD8xOjApfX0pLG4uY2FsZW5kYXJzLnRhaXdhbj1vfSx7Ii4uL21haW4iOjM0Nywib2JqZWN0LWFzc2lnbiI6MjQ3fV0sMzQ1OltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiLi4vbWFpbiIpLGk9dCgib2JqZWN0LWFzc2lnbiIpLGE9bi5pbnN0YW5jZSgpO2Z1bmN0aW9uIG8odCl7dGhpcy5sb2NhbD10aGlzLnJlZ2lvbmFsT3B0aW9uc1t0fHwiIl18fHRoaXMucmVnaW9uYWxPcHRpb25zWyIiXX1vLnByb3RvdHlwZT1uZXcgbi5iYXNlQ2FsZW5kYXIsaShvLnByb3RvdHlwZSx7bmFtZToiVGhhaSIsamRFcG9jaDoxNTIzMDk4LjUseWVhcnNPZmZzZXQ6NTQzLGRheXNQZXJNb250aDpbMzEsMjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdLGhhc1llYXJaZXJvOiExLG1pbk1vbnRoOjEsZmlyc3RNb250aDoxLG1pbkRheToxLHJlZ2lvbmFsT3B0aW9uczp7IiI6e25hbWU6IlRoYWkiLGVwb2NoczpbIkJCRSIsIkJFIl0sbW9udGhOYW1lczpbIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl0sbW9udGhOYW1lc1Nob3J0OlsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl0sZGF5TmFtZXM6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdLGRheU5hbWVzU2hvcnQ6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxkYXlOYW1lc01pbjpbIlN1IiwiTW8iLCJUdSIsIldlIiwiVGgiLCJGciIsIlNhIl0sZGlnaXRzOm51bGwsZGF0ZUZvcm1hdDoiZGQvbW0veXl5eSIsZmlyc3REYXk6MCxpc1JUTDohMX19LGxlYXBZZWFyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3ZhbGlkYXRlKHQsdGhpcy5taW5Nb250aCx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRZZWFyKTt0PXRoaXMuX3QyZ1llYXIoZS55ZWFyKCkpO3JldHVybiBhLmxlYXBZZWFyKHQpfSx3ZWVrT2ZZZWFyOmZ1bmN0aW9uKHQsZSxyKXt2YXIgaT10aGlzLl92YWxpZGF0ZSh0LHRoaXMubWluTW9udGgsdGhpcy5taW5EYXksbi5sb2NhbC5pbnZhbGlkWWVhcik7dD10aGlzLl90MmdZZWFyKGkueWVhcigpKTtyZXR1cm4gYS53ZWVrT2ZZZWFyKHQsaS5tb250aCgpLGkuZGF5KCkpfSxkYXlzSW5Nb250aDpmdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuX3ZhbGlkYXRlKHQsZSx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRNb250aCk7cmV0dXJuIHRoaXMuZGF5c1Blck1vbnRoW3IubW9udGgoKS0xXSsoMj09PXIubW9udGgoKSYmdGhpcy5sZWFwWWVhcihyLnllYXIoKSk/MTowKX0sd2Vla0RheTpmdW5jdGlvbih0LGUscil7cmV0dXJuKHRoaXMuZGF5T2ZXZWVrKHQsZSxyKXx8Nyk8Nn0sdG9KRDpmdW5jdGlvbih0LGUscil7dmFyIGk9dGhpcy5fdmFsaWRhdGUodCxlLHIsbi5sb2NhbC5pbnZhbGlkRGF0ZSk7dD10aGlzLl90MmdZZWFyKGkueWVhcigpKTtyZXR1cm4gYS50b0pEKHQsaS5tb250aCgpLGkuZGF5KCkpfSxmcm9tSkQ6ZnVuY3Rpb24odCl7dmFyIGU9YS5mcm9tSkQodCkscj10aGlzLl9nMnRZZWFyKGUueWVhcigpKTtyZXR1cm4gdGhpcy5uZXdEYXRlKHIsZS5tb250aCgpLGUuZGF5KCkpfSxfdDJnWWVhcjpmdW5jdGlvbih0KXtyZXR1cm4gdC10aGlzLnllYXJzT2Zmc2V0LSh0Pj0xJiZ0PD10aGlzLnllYXJzT2Zmc2V0PzE6MCl9LF9nMnRZZWFyOmZ1bmN0aW9uKHQpe3JldHVybiB0K3RoaXMueWVhcnNPZmZzZXQrKHQ+PS10aGlzLnllYXJzT2Zmc2V0JiZ0PD0tMT8xOjApfX0pLG4uY2FsZW5kYXJzLnRoYWk9b30seyIuLi9tYWluIjozNDcsIm9iamVjdC1hc3NpZ24iOjI0N31dLDM0NjpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoIi4uL21haW4iKSxpPXQoIm9iamVjdC1hc3NpZ24iKTtmdW5jdGlvbiBhKHQpe3RoaXMubG9jYWw9dGhpcy5yZWdpb25hbE9wdGlvbnNbdHx8IiJdfHx0aGlzLnJlZ2lvbmFsT3B0aW9uc1siIl19YS5wcm90b3R5cGU9bmV3IG4uYmFzZUNhbGVuZGFyLGkoYS5wcm90b3R5cGUse25hbWU6IlVtbUFsUXVyYSIsaGFzWWVhclplcm86ITEsbWluTW9udGg6MSxmaXJzdE1vbnRoOjEsbWluRGF5OjEscmVnaW9uYWxPcHRpb25zOnsiIjp7bmFtZToiVW1tIGFsLVF1cmEiLGVwb2NoczpbIkJIIiwiQUgiXSxtb250aE5hbWVzOlsiQWwtTXVoYXJyYW0iLCJTYWZhciIsIlJhYmknIGFsLWF3d2FsIiwiUmFiaScgQWwtVGhhbmkiLCJKdW1hZGEgQWwtQXd3YWwiLCJKdW1hZGEgQWwtVGhhbmkiLCJSYWphYiIsIlNoYSdhYmFuIiwiUmFtYWRhbiIsIlNoYXd3YWwiLCJEaHUgYWwtUWknZGFoIiwiRGh1IGFsLUhpamphaCJdLG1vbnRoTmFtZXNTaG9ydDpbIk11aCIsIlNhZiIsIlJhYjEiLCJSYWIyIiwiSnVtMSIsIkp1bTIiLCJSYWoiLCJTaGEnIiwiUmFtIiwiU2hhdyIsIkRodVEiLCJEaHVIIl0sZGF5TmFtZXM6WyJZYXdtIGFsLUFoYWQiLCJZYXdtIGFsLUl0aG5haW4iLCJZYXdtIGFsLVRoYWxcdTAxMDF0aFx1MDEwMVx1MjAxOSIsIllhd20gYWwtQXJiYVx1MjAxOFx1MDEwMVx1MjAxOSIsIllhd20gYWwtS2hhbVx1MDEyYnMiLCJZYXdtIGFsLUp1bVx1MjAxOGEiLCJZYXdtIGFsLVNhYnQiXSxkYXlOYW1lc01pbjpbIkFoIiwiSXRoIiwiVGgiLCJBciIsIktoIiwiSnUiLCJTYSJdLGRpZ2l0czpudWxsLGRhdGVGb3JtYXQ6Inl5eXkvbW0vZGQiLGZpcnN0RGF5OjYsaXNSVEw6ITB9fSxsZWFwWWVhcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl92YWxpZGF0ZSh0LHRoaXMubWluTW9udGgsdGhpcy5taW5EYXksbi5sb2NhbC5pbnZhbGlkWWVhcik7cmV0dXJuIDM1NT09PXRoaXMuZGF5c0luWWVhcihlLnllYXIoKSl9LHdlZWtPZlllYXI6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMubmV3RGF0ZSh0LGUscik7cmV0dXJuIG4uYWRkKC1uLmRheU9mV2VlaygpLCJkIiksTWF0aC5mbG9vcigobi5kYXlPZlllYXIoKS0xKS83KSsxfSxkYXlzSW5ZZWFyOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLHI9MTtyPD0xMjtyKyspZSs9dGhpcy5kYXlzSW5Nb250aCh0LHIpO3JldHVybiBlfSxkYXlzSW5Nb250aDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10aGlzLl92YWxpZGF0ZSh0LGUsdGhpcy5taW5EYXksbi5sb2NhbC5pbnZhbGlkTW9udGgpLnRvSkQoKS0yNGU1Ky41LGk9MCxhPTA7YTxvLmxlbmd0aDthKyspe2lmKG9bYV0+cilyZXR1cm4gb1tpXS1vW2ktMV07aSsrfXJldHVybiAzMH0sd2Vla0RheTpmdW5jdGlvbih0LGUscil7cmV0dXJuIDUhPT10aGlzLmRheU9mV2Vlayh0LGUscil9LHRvSkQ6ZnVuY3Rpb24odCxlLHIpe3ZhciBpPXRoaXMuX3ZhbGlkYXRlKHQsZSxyLG4ubG9jYWwuaW52YWxpZERhdGUpLGE9MTIqKGkueWVhcigpLTEpK2kubW9udGgoKS0xNTI5MjtyZXR1cm4gaS5kYXkoKStvW2EtMV0tMSsyNGU1LS41fSxmcm9tSkQ6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQtMjRlNSsuNSxyPTAsbj0wO248by5sZW5ndGgmJiEob1tuXT5lKTtuKyspcisrO3ZhciBpPXIrMTUyOTIsYT1NYXRoLmZsb29yKChpLTEpLzEyKSxzPWErMSxsPWktMTIqYSxjPWUtb1tyLTFdKzE7cmV0dXJuIHRoaXMubmV3RGF0ZShzLGwsYyl9LGlzVmFsaWQ6ZnVuY3Rpb24odCxlLHIpe3ZhciBpPW4uYmFzZUNhbGVuZGFyLnByb3RvdHlwZS5pc1ZhbGlkLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gaSYmKGk9KHQ9bnVsbCE9dC55ZWFyP3QueWVhcjp0KT49MTI3NiYmdDw9MTUwMCksaX0sX3ZhbGlkYXRlOmZ1bmN0aW9uKHQsZSxyLGkpe3ZhciBhPW4uYmFzZUNhbGVuZGFyLnByb3RvdHlwZS5fdmFsaWRhdGUuYXBwbHkodGhpcyxhcmd1bWVudHMpO2lmKGEueWVhcjwxMjc2fHxhLnllYXI+MTUwMCl0aHJvdyBpLnJlcGxhY2UoL1x7MFx9Lyx0aGlzLmxvY2FsLm5hbWUpO3JldHVybiBhfX0pLG4uY2FsZW5kYXJzLnVtbWFscXVyYT1hO3ZhciBvPVsyMCw1MCw3OSwxMDksMTM4LDE2OCwxOTcsMjI3LDI1NiwyODYsMzE1LDM0NSwzNzQsNDA0LDQzMyw0NjMsNDkyLDUyMiw1NTEsNTgxLDYxMSw2NDEsNjcwLDcwMCw3MjksNzU5LDc4OCw4MTgsODQ3LDg3Nyw5MDYsOTM2LDk2NSw5OTUsMTAyNCwxMDU0LDEwODMsMTExMywxMTQyLDExNzIsMTIwMSwxMjMxLDEyNjAsMTI5MCwxMzIwLDEzNTAsMTM3OSwxNDA5LDE0MzgsMTQ2OCwxNDk3LDE1MjcsMTU1NiwxNTg2LDE2MTUsMTY0NSwxNjc0LDE3MDQsMTczMywxNzYzLDE3OTIsMTgyMiwxODUxLDE4ODEsMTkxMCwxOTQwLDE5NjksMTk5OSwyMDI4LDIwNTgsMjA4NywyMTE3LDIxNDYsMjE3NiwyMjA1LDIyMzUsMjI2NCwyMjk0LDIzMjMsMjM1MywyMzgzLDI0MTMsMjQ0MiwyNDcyLDI1MDEsMjUzMSwyNTYwLDI1OTAsMjYxOSwyNjQ5LDI2NzgsMjcwOCwyNzM3LDI3NjcsMjc5NiwyODI2LDI4NTUsMjg4NSwyOTE0LDI5NDQsMjk3MywzMDAzLDMwMzIsMzA2MiwzMDkxLDMxMjEsMzE1MCwzMTgwLDMyMDksMzIzOSwzMjY4LDMyOTgsMzMyNywzMzU3LDMzODYsMzQxNiwzNDQ2LDM0NzYsMzUwNSwzNTM1LDM1NjQsMzU5NCwzNjIzLDM2NTMsMzY4MiwzNzEyLDM3NDEsMzc3MSwzODAwLDM4MzAsMzg1OSwzODg5LDM5MTgsMzk0OCwzOTc3LDQwMDcsNDAzNiw0MDY2LDQwOTUsNDEyNSw0MTU1LDQxODUsNDIxNCw0MjQ0LDQyNzMsNDMwMyw0MzMyLDQzNjIsNDM5MSw0NDIxLDQ0NTAsNDQ4MCw0NTA5LDQ1MzksNDU2OCw0NTk4LDQ2MjcsNDY1Nyw0Njg2LDQ3MTYsNDc0NSw0Nzc1LDQ4MDQsNDgzNCw0ODYzLDQ4OTMsNDkyMiw0OTUyLDQ5ODEsNTAxMSw1MDQwLDUwNzAsNTA5OSw1MTI5LDUxNTgsNTE4OCw1MjE4LDUyNDgsNTI3Nyw1MzA3LDUzMzYsNTM2Niw1Mzk1LDU0MjUsNTQ1NCw1NDg0LDU1MTMsNTU0Myw1NTcyLDU2MDIsNTYzMSw1NjYxLDU2OTAsNTcyMCw1NzQ5LDU3NzksNTgwOCw1ODM4LDU4NjcsNTg5Nyw1OTI2LDU5NTYsNTk4NSw2MDE1LDYwNDQsNjA3NCw2MTAzLDYxMzMsNjE2Miw2MTkyLDYyMjEsNjI1MSw2MjgxLDYzMTEsNjM0MCw2MzcwLDYzOTksNjQyOSw2NDU4LDY0ODgsNjUxNyw2NTQ3LDY1NzYsNjYwNiw2NjM1LDY2NjUsNjY5NCw2NzI0LDY3NTMsNjc4Myw2ODEyLDY4NDIsNjg3MSw2OTAxLDY5MzAsNjk2MCw2OTg5LDcwMTksNzA0OCw3MDc4LDcxMDcsNzEzNyw3MTY2LDcxOTYsNzIyNSw3MjU1LDcyODQsNzMxNCw3MzQ0LDczNzQsNzQwMyw3NDMzLDc0NjIsNzQ5Miw3NTIxLDc1NTEsNzU4MCw3NjEwLDc2MzksNzY2OSw3Njk4LDc3MjgsNzc1Nyw3Nzg3LDc4MTYsNzg0Niw3ODc1LDc5MDUsNzkzNCw3OTY0LDc5OTMsODAyMyw4MDUzLDgwODMsODExMiw4MTQyLDgxNzEsODIwMSw4MjMwLDgyNjAsODI4OSw4MzE5LDgzNDgsODM3OCw4NDA3LDg0MzcsODQ2Niw4NDk2LDg1MjUsODU1NSw4NTg0LDg2MTQsODY0Myw4NjczLDg3MDIsODczMiw4NzYxLDg3OTEsODgyMSw4ODUwLDg4ODAsODkwOSw4OTM4LDg5NjgsODk5Nyw5MDI3LDkwNTYsOTA4Niw5MTE1LDkxNDUsOTE3NSw5MjA1LDkyMzQsOTI2NCw5MjkzLDkzMjIsOTM1Miw5MzgxLDk0MTAsOTQ0MCw5NDcwLDk0OTksOTUyOSw5NTU5LDk1ODksOTYxOCw5NjQ4LDk2NzcsOTcwNiw5NzM2LDk3NjUsOTc5NCw5ODI0LDk4NTMsOTg4Myw5OTEzLDk5NDMsOTk3MiwxMDAwMiwxMDAzMiwxMDA2MSwxMDA5MCwxMDEyMCwxMDE0OSwxMDE3OCwxMDIwOCwxMDIzNywxMDI2NywxMDI5NywxMDMyNiwxMDM1NiwxMDM4NiwxMDQxNSwxMDQ0NSwxMDQ3NCwxMDUwNCwxMDUzMywxMDU2MiwxMDU5MiwxMDYyMSwxMDY1MSwxMDY4MCwxMDcxMCwxMDc0MCwxMDc3MCwxMDc5OSwxMDgyOSwxMDg1OCwxMDg4OCwxMDkxNywxMDk0NywxMDk3NiwxMTAwNSwxMTAzNSwxMTA2NCwxMTA5NCwxMTEyNCwxMTE1MywxMTE4MywxMTIxMywxMTI0MiwxMTI3MiwxMTMwMSwxMTMzMSwxMTM2MCwxMTM4OSwxMTQxOSwxMTQ0OCwxMTQ3OCwxMTUwNywxMTUzNywxMTU2NywxMTU5NiwxMTYyNiwxMTY1NSwxMTY4NSwxMTcxNSwxMTc0NCwxMTc3NCwxMTgwMywxMTgzMiwxMTg2MiwxMTg5MSwxMTkyMSwxMTk1MCwxMTk4MCwxMjAxMCwxMjAzOSwxMjA2OSwxMjA5OSwxMjEyOCwxMjE1OCwxMjE4NywxMjIxNiwxMjI0NiwxMjI3NSwxMjMwNCwxMjMzNCwxMjM2NCwxMjM5MywxMjQyMywxMjQ1MywxMjQ4MywxMjUxMiwxMjU0MiwxMjU3MSwxMjYwMCwxMjYzMCwxMjY1OSwxMjY4OCwxMjcxOCwxMjc0NywxMjc3NywxMjgwNywxMjgzNywxMjg2NiwxMjg5NiwxMjkyNiwxMjk1NSwxMjk4NCwxMzAxNCwxMzA0MywxMzA3MiwxMzEwMiwxMzEzMSwxMzE2MSwxMzE5MSwxMzIyMCwxMzI1MCwxMzI4MCwxMzMxMCwxMzMzOSwxMzM2OCwxMzM5OCwxMzQyNywxMzQ1NiwxMzQ4NiwxMzUxNSwxMzU0NSwxMzU3NCwxMzYwNCwxMzYzNCwxMzY2NCwxMzY5MywxMzcyMywxMzc1MiwxMzc4MiwxMzgxMSwxMzg0MCwxMzg3MCwxMzg5OSwxMzkyOSwxMzk1OCwxMzk4OCwxNDAxOCwxNDA0NywxNDA3NywxNDEwNywxNDEzNiwxNDE2NiwxNDE5NSwxNDIyNCwxNDI1NCwxNDI4MywxNDMxMywxNDM0MiwxNDM3MiwxNDQwMSwxNDQzMSwxNDQ2MSwxNDQ5MCwxNDUyMCwxNDU1MCwxNDU3OSwxNDYwOSwxNDYzOCwxNDY2NywxNDY5NywxNDcyNiwxNDc1NiwxNDc4NSwxNDgxNSwxNDg0NCwxNDg3NCwxNDkwNCwxNDkzMywxNDk2MywxNDk5MywxNTAyMSwxNTA1MSwxNTA4MSwxNTExMCwxNTE0MCwxNTE2OSwxNTE5OSwxNTIyOCwxNTI1OCwxNTI4NywxNTMxNywxNTM0NywxNTM3NywxNTQwNiwxNTQzNiwxNTQ2NSwxNTQ5NCwxNTUyNCwxNTU1MywxNTU4MiwxNTYxMiwxNTY0MSwxNTY3MSwxNTcwMSwxNTczMSwxNTc2MCwxNTc5MCwxNTgyMCwxNTg0OSwxNTg3OCwxNTkwOCwxNTkzNywxNTk2NiwxNTk5NiwxNjAyNSwxNjA1NSwxNjA4NSwxNjExNCwxNjE0NCwxNjE3NCwxNjIwNCwxNjIzMywxNjI2MiwxNjI5MiwxNjMyMSwxNjM1MCwxNjM4MCwxNjQwOSwxNjQzOSwxNjQ2OCwxNjQ5OCwxNjUyOCwxNjU1OCwxNjU4NywxNjYxNywxNjY0NiwxNjY3NiwxNjcwNSwxNjczNCwxNjc2NCwxNjc5MywxNjgyMywxNjg1MiwxNjg4MiwxNjkxMiwxNjk0MSwxNjk3MSwxNzAwMSwxNzAzMCwxNzA2MCwxNzA4OSwxNzExOCwxNzE0OCwxNzE3NywxNzIwNywxNzIzNiwxNzI2NiwxNzI5NSwxNzMyNSwxNzM1NSwxNzM4NCwxNzQxNCwxNzQ0NCwxNzQ3MywxNzUwMiwxNzUzMiwxNzU2MSwxNzU5MSwxNzYyMCwxNzY1MCwxNzY3OSwxNzcwOSwxNzczOCwxNzc2OCwxNzc5OCwxNzgyNywxNzg1NywxNzg4NiwxNzkxNiwxNzk0NSwxNzk3NSwxODAwNCwxODAzNCwxODA2MywxODA5MywxODEyMiwxODE1MiwxODE4MSwxODIxMSwxODI0MSwxODI3MCwxODMwMCwxODMzMCwxODM1OSwxODM4OCwxODQxOCwxODQ0NywxODQ3NiwxODUwNiwxODUzNSwxODU2NSwxODU5NSwxODYyNSwxODY1NCwxODY4NCwxODcxNCwxODc0MywxODc3MiwxODgwMiwxODgzMSwxODg2MCwxODg5MCwxODkxOSwxODk0OSwxODk3OSwxOTAwOCwxOTAzOCwxOTA2OCwxOTA5OCwxOTEyNywxOTE1NiwxOTE4NiwxOTIxNSwxOTI0NCwxOTI3NCwxOTMwMywxOTMzMywxOTM2MiwxOTM5MiwxOTQyMiwxOTQ1MiwxOTQ4MSwxOTUxMSwxOTU0MCwxOTU3MCwxOTU5OSwxOTYyOCwxOTY1OCwxOTY4NywxOTcxNywxOTc0NiwxOTc3NiwxOTgwNiwxOTgzNiwxOTg2NSwxOTg5NSwxOTkyNCwxOTk1NCwxOTk4MywyMDAxMiwyMDA0MiwyMDA3MSwyMDEwMSwyMDEzMCwyMDE2MCwyMDE5MCwyMDIxOSwyMDI0OSwyMDI3OSwyMDMwOCwyMDMzOCwyMDM2NywyMDM5NiwyMDQyNiwyMDQ1NSwyMDQ4NSwyMDUxNCwyMDU0NCwyMDU3MywyMDYwMywyMDYzMywyMDY2MiwyMDY5MiwyMDcyMSwyMDc1MSwyMDc4MCwyMDgxMCwyMDgzOSwyMDg2OSwyMDg5OCwyMDkyOCwyMDk1NywyMDk4NywyMTAxNiwyMTA0NiwyMTA3NiwyMTEwNSwyMTEzNSwyMTE2NCwyMTE5NCwyMTIyMywyMTI1MywyMTI4MiwyMTMxMiwyMTM0MSwyMTM3MSwyMTQwMCwyMTQzMCwyMTQ1OSwyMTQ4OSwyMTUxOSwyMTU0OCwyMTU3OCwyMTYwNywyMTYzNywyMTY2NiwyMTY5NiwyMTcyNSwyMTc1NCwyMTc4NCwyMTgxMywyMTg0MywyMTg3MywyMTkwMiwyMTkzMiwyMTk2MiwyMTk5MSwyMjAyMSwyMjA1MCwyMjA4MCwyMjEwOSwyMjEzOCwyMjE2OCwyMjE5NywyMjIyNywyMjI1NiwyMjI4NiwyMjMxNiwyMjM0NiwyMjM3NSwyMjQwNSwyMjQzNCwyMjQ2NCwyMjQ5MywyMjUyMiwyMjU1MiwyMjU4MSwyMjYxMSwyMjY0MCwyMjY3MCwyMjcwMCwyMjczMCwyMjc1OSwyMjc4OSwyMjgxOCwyMjg0OCwyMjg3NywyMjkwNiwyMjkzNiwyMjk2NSwyMjk5NCwyMzAyNCwyMzA1NCwyMzA4MywyMzExMywyMzE0MywyMzE3MywyMzIwMiwyMzIzMiwyMzI2MSwyMzI5MCwyMzMyMCwyMzM0OSwyMzM3OSwyMzQwOCwyMzQzOCwyMzQ2NywyMzQ5NywyMzUyNywyMzU1NiwyMzU4NiwyMzYxNiwyMzY0NSwyMzY3NCwyMzcwNCwyMzczMywyMzc2MywyMzc5MiwyMzgyMiwyMzg1MSwyMzg4MSwyMzkxMCwyMzk0MCwyMzk3MCwyMzk5OSwyNDAyOSwyNDA1OCwyNDA4OCwyNDExNywyNDE0NywyNDE3NiwyNDIwNiwyNDIzNSwyNDI2NSwyNDI5NCwyNDMyNCwyNDM1MywyNDM4MywyNDQxMywyNDQ0MiwyNDQ3MiwyNDUwMSwyNDUzMSwyNDU2MCwyNDU5MCwyNDYxOSwyNDY0OCwyNDY3OCwyNDcwNywyNDczNywyNDc2NywyNDc5NiwyNDgyNiwyNDg1NiwyNDg4NSwyNDkxNSwyNDk0NCwyNDk3NCwyNTAwMywyNTAzMiwyNTA2MiwyNTA5MSwyNTEyMSwyNTE1MCwyNTE4MCwyNTIxMCwyNTI0MCwyNTI2OSwyNTI5OSwyNTMyOCwyNTM1OCwyNTM4NywyNTQxNiwyNTQ0NiwyNTQ3NSwyNTUwNSwyNTUzNCwyNTU2NCwyNTU5NCwyNTYyNCwyNTY1MywyNTY4MywyNTcxMiwyNTc0MiwyNTc3MSwyNTgwMCwyNTgzMCwyNTg1OSwyNTg4OCwyNTkxOCwyNTk0OCwyNTk3NywyNjAwNywyNjAzNywyNjA2NywyNjA5NiwyNjEyNiwyNjE1NSwyNjE4NCwyNjIxNCwyNjI0MywyNjI3MiwyNjMwMiwyNjMzMiwyNjM2MSwyNjM5MSwyNjQyMSwyNjQ1MSwyNjQ4MCwyNjUxMCwyNjUzOSwyNjU2OCwyNjU5OCwyNjYyNywyNjY1NiwyNjY4NiwyNjcxNSwyNjc0NSwyNjc3NSwyNjgwNSwyNjgzNCwyNjg2NCwyNjg5MywyNjkyMywyNjk1MiwyNjk4MiwyNzAxMSwyNzA0MSwyNzA3MCwyNzA5OSwyNzEyOSwyNzE1OSwyNzE4OCwyNzIxOCwyNzI0OCwyNzI3NywyNzMwNywyNzMzNiwyNzM2NiwyNzM5NSwyNzQyNSwyNzQ1NCwyNzQ4NCwyNzUxMywyNzU0MiwyNzU3MiwyNzYwMiwyNzYzMSwyNzY2MSwyNzY5MSwyNzcyMCwyNzc1MCwyNzc3OSwyNzgwOSwyNzgzOCwyNzg2OCwyNzg5NywyNzkyNiwyNzk1NiwyNzk4NSwyODAxNSwyODA0NSwyODA3NCwyODEwNCwyODEzNCwyODE2MywyODE5MywyODIyMiwyODI1MiwyODI4MSwyODMxMCwyODM0MCwyODM2OSwyODM5OSwyODQyOCwyODQ1OCwyODQ4OCwyODUxNywyODU0NywyODU3NywyODYwNywyODYzNiwyODY2NSwyODY5NSwyODcyNCwyODc1NCwyODc4MywyODgxMywyODg0MywyODg3MiwyODkwMSwyODkzMSwyODk2MCwyODk5MCwyOTAxOSwyOTA0OSwyOTA3OCwyOTEwOCwyOTEzNywyOTE2NywyOTE5NiwyOTIyNiwyOTI1NSwyOTI4NSwyOTMxNSwyOTM0NSwyOTM3NSwyOTQwNCwyOTQzNCwyOTQ2MywyOTQ5MiwyOTUyMiwyOTU1MSwyOTU4MCwyOTYxMCwyOTY0MCwyOTY2OSwyOTY5OSwyOTcyOSwyOTc1OSwyOTc4OCwyOTgxOCwyOTg0NywyOTg3NiwyOTkwNiwyOTkzNSwyOTk2NCwyOTk5NCwzMDAyMywzMDA1MywzMDA4MiwzMDExMiwzMDE0MSwzMDE3MSwzMDIwMCwzMDIzMCwzMDI1OSwzMDI4OSwzMDMxOCwzMDM0OCwzMDM3OCwzMDQwOCwzMDQzNywzMDQ2NywzMDQ5NiwzMDUyNiwzMDU1NSwzMDU4NSwzMDYxNCwzMDY0NCwzMDY3MywzMDcwMywzMDczMiwzMDc2MiwzMDc5MSwzMDgyMSwzMDg1MCwzMDg4MCwzMDkwOSwzMDkzOSwzMDk2OCwzMDk5OCwzMTAyNywzMTA1NywzMTA4NiwzMTExNiwzMTE0NSwzMTE3NSwzMTIwNCwzMTIzNCwzMTI2MywzMTI5MywzMTMyMiwzMTM1MiwzMTM4MSwzMTQxMSwzMTQ0MSwzMTQ3MSwzMTUwMCwzMTUzMCwzMTU1OSwzMTU4OSwzMTYxOCwzMTY0OCwzMTY3NiwzMTcwNiwzMTczNiwzMTc2NiwzMTc5NSwzMTgyNSwzMTg1NCwzMTg4NCwzMTkxMywzMTk0MywzMTk3MiwzMjAwMiwzMjAzMSwzMjA2MSwzMjA5MCwzMjEyMCwzMjE1MCwzMjE4MCwzMjIwOSwzMjIzOSwzMjI2OCwzMjI5OCwzMjMyNywzMjM1NywzMjM4NiwzMjQxNiwzMjQ0NSwzMjQ3NSwzMjUwNCwzMjUzNCwzMjU2MywzMjU5MywzMjYyMiwzMjY1MiwzMjY4MSwzMjcxMSwzMjc0MCwzMjc3MCwzMjc5OSwzMjgyOSwzMjg1OCwzMjg4OCwzMjkxNywzMjk0NywzMjk3NiwzMzAwNiwzMzAzNSwzMzA2NSwzMzA5NCwzMzEyNCwzMzE1MywzMzE4MywzMzIxMywzMzI0MywzMzI3MiwzMzMwMiwzMzMzMSwzMzM2MSwzMzM5MCwzMzQyMCwzMzQ1MCwzMzQ3OSwzMzUwOSwzMzUzOSwzMzU2OCwzMzU5OCwzMzYyNywzMzY1NywzMzY4NiwzMzcxNiwzMzc0NSwzMzc3NSwzMzgwNCwzMzgzNCwzMzg2MywzMzg5MywzMzkyMiwzMzk1MiwzMzk4MSwzNDAxMSwzNDA0MCwzNDA2OSwzNDA5OSwzNDEyOCwzNDE1OCwzNDE4NywzNDIxNywzNDI0NywzNDI3NywzNDMwNiwzNDMzNiwzNDM2NSwzNDM5NSwzNDQyNCwzNDQ1NCwzNDQ4MywzNDUxMiwzNDU0MiwzNDU3MSwzNDYwMSwzNDYzMSwzNDY2MCwzNDY5MCwzNDcxOSwzNDc0OSwzNDc3OCwzNDgwOCwzNDgzNywzNDg2NywzNDg5NiwzNDkyNiwzNDk1NSwzNDk4NSwzNTAxNSwzNTA0NCwzNTA3NCwzNTEwMywzNTEzMywzNTE2MiwzNTE5MiwzNTIyMiwzNTI1MSwzNTI4MCwzNTMxMCwzNTM0MCwzNTM3MCwzNTM5OSwzNTQyOSwzNTQ1OCwzNTQ4OCwzNTUxNywzNTU0NywzNTU3NiwzNTYwNSwzNTYzNSwzNTY2NSwzNTY5NCwzNTcyMywzNTc1MywzNTc4MiwzNTgxMSwzNTg0MSwzNTg3MSwzNTkwMSwzNTkzMCwzNTk2MCwzNTk4OSwzNjAxOSwzNjA0OCwzNjA3OCwzNjEwNywzNjEzNiwzNjE2NiwzNjE5NSwzNjIyNSwzNjI1NCwzNjI4NCwzNjMxNCwzNjM0MywzNjM3MywzNjQwMywzNjQzMywzNjQ2MiwzNjQ5MiwzNjUyMSwzNjU1MSwzNjU4MCwzNjYxMCwzNjYzOSwzNjY2OSwzNjY5OCwzNjcyOCwzNjc1NywzNjc4NiwzNjgxNiwzNjg0NSwzNjg3NSwzNjkwNCwzNjkzNCwzNjk2MywzNjk5MywzNzAyMiwzNzA1MiwzNzA4MSwzNzExMSwzNzE0MSwzNzE3MCwzNzIwMCwzNzIyOSwzNzI1OSwzNzI4OCwzNzMxOCwzNzM0NywzNzM3NywzNzQwNiwzNzQzNiwzNzQ2NSwzNzQ5NSwzNzUyNCwzNzU1NCwzNzU4NCwzNzYxMywzNzY0MywzNzY3MiwzNzcwMSwzNzczMSwzNzc2MCwzNzc5MCwzNzgxOSwzNzg0OSwzNzg3OCwzNzkwOCwzNzkzOCwzNzk2NywzNzk5NywzODAyNywzODA1NiwzODA4NSwzODExNSwzODE0NCwzODE3NCwzODIwMywzODIzMywzODI2MiwzODI5MiwzODMyMiwzODM1MSwzODM4MSwzODQxMCwzODQ0MCwzODQ2OSwzODQ5OSwzODUyOCwzODU1OCwzODU4NywzODYxNywzODY0NiwzODY3NiwzODcwNSwzODczNSwzODc2NCwzODc5NCwzODgyMywzODg1MywzODg4MiwzODkxMiwzODk0MSwzODk3MSwzOTAwMSwzOTAzMCwzOTA1OSwzOTA4OSwzOTExOCwzOTE0OCwzOTE3OCwzOTIwOCwzOTIzNywzOTI2NywzOTI5NywzOTMyNiwzOTM1NSwzOTM4NSwzOTQxNCwzOTQ0NCwzOTQ3MywzOTUwMywzOTUzMiwzOTU2MiwzOTU5MiwzOTYyMSwzOTY1MCwzOTY4MCwzOTcwOSwzOTczOSwzOTc2OCwzOTc5OCwzOTgyNywzOTg1NywzOTg4NiwzOTkxNiwzOTk0NiwzOTk3NSw0MDAwNSw0MDAzNSw0MDA2NCw0MDA5NCw0MDEyMyw0MDE1Myw0MDE4Miw0MDIxMiw0MDI0MSw0MDI3MSw0MDMwMCw0MDMzMCw0MDM1OSw0MDM4OSw0MDQxOCw0MDQ0OCw0MDQ3Nyw0MDUwNyw0MDUzNiw0MDU2Niw0MDU5NSw0MDYyNSw0MDY1NSw0MDY4NSw0MDcxNCw0MDc0NCw0MDc3Myw0MDgwMyw0MDgzMiw0MDg2Miw0MDg5Miw0MDkyMSw0MDk1MSw0MDk4MCw0MTAwOSw0MTAzOSw0MTA2OCw0MTA5OCw0MTEyNyw0MTE1Nyw0MTE4Niw0MTIxNiw0MTI0NSw0MTI3NSw0MTMwNCw0MTMzNCw0MTM2NCw0MTM5Myw0MTQyMiw0MTQ1Miw0MTQ4MSw0MTUxMSw0MTU0MCw0MTU3MCw0MTU5OSw0MTYyOSw0MTY1OCw0MTY4OCw0MTcxOCw0MTc0OCw0MTc3Nyw0MTgwNyw0MTgzNiw0MTg2NSw0MTg5NCw0MTkyNCw0MTk1Myw0MTk4Myw0MjAxMiw0MjA0Miw0MjA3Miw0MjEwMiw0MjEzMSw0MjE2MSw0MjE5MCw0MjIyMCw0MjI0OSw0MjI3OSw0MjMwOCw0MjMzNyw0MjM2Nyw0MjM5Nyw0MjQyNiw0MjQ1Niw0MjQ4NSw0MjUxNSw0MjU0NSw0MjU3NCw0MjYwNCw0MjYzMyw0MjY2Miw0MjY5Miw0MjcyMSw0Mjc1MSw0Mjc4MCw0MjgxMCw0MjgzOSw0Mjg2OSw0Mjg5OSw0MjkyOSw0Mjk1OCw0Mjk4OCw0MzAxNyw0MzA0Niw0MzA3Niw0MzEwNSw0MzEzNSw0MzE2NCw0MzE5NCw0MzIyMyw0MzI1Myw0MzI4Myw0MzMxMiw0MzM0Miw0MzM3MSw0MzQwMSw0MzQzMCw0MzQ2MCw0MzQ4OSw0MzUxOSw0MzU0OCw0MzU3OCw0MzYwNyw0MzYzNyw0MzY2Niw0MzY5Niw0MzcyNiw0Mzc1NSw0Mzc4NSw0MzgxNCw0Mzg0NCw0Mzg3Myw0MzkwMyw0MzkzMiw0Mzk2Miw0Mzk5MSw0NDAyMSw0NDA1MCw0NDA4MCw0NDEwOSw0NDEzOSw0NDE2OSw0NDE5OCw0NDIyOCw0NDI1OCw0NDI4Nyw0NDMxNyw0NDM0Niw0NDM3NSw0NDQwNSw0NDQzNCw0NDQ2NCw0NDQ5Myw0NDUyMyw0NDU1Myw0NDU4Miw0NDYxMiw0NDY0MSw0NDY3MSw0NDcwMCw0NDczMCw0NDc1OSw0NDc4OCw0NDgxOCw0NDg0Nyw0NDg3Nyw0NDkwNiw0NDkzNiw0NDk2Niw0NDk5Niw0NTAyNSw0NTA1NSw0NTA4NCw0NTExNCw0NTE0Myw0NTE3Miw0NTIwMiw0NTIzMSw0NTI2MSw0NTI5MCw0NTMyMCw0NTM1MCw0NTM4MCw0NTQwOSw0NTQzOSw0NTQ2OCw0NTQ5OCw0NTUyNyw0NTU1Niw0NTU4Niw0NTYxNSw0NTY0NCw0NTY3NCw0NTcwNCw0NTczMyw0NTc2Myw0NTc5Myw0NTgyMyw0NTg1Miw0NTg4Miw0NTkxMSw0NTk0MCw0NTk3MCw0NTk5OSw0NjAyOCw0NjA1OCw0NjA4OCw0NjExNyw0NjE0Nyw0NjE3Nyw0NjIwNiw0NjIzNiw0NjI2NSw0NjI5NSw0NjMyNCw0NjM1NCw0NjM4Myw0NjQxMyw0NjQ0Miw0NjQ3Miw0NjUwMSw0NjUzMSw0NjU2MCw0NjU5MCw0NjYyMCw0NjY0OSw0NjY3OSw0NjcwOCw0NjczOCw0Njc2Nyw0Njc5Nyw0NjgyNiw0Njg1Niw0Njg4NSw0NjkxNSw0Njk0NCw0Njk3NCw0NzAwMyw0NzAzMyw0NzA2Myw0NzA5Miw0NzEyMiw0NzE1MSw0NzE4MSw0NzIxMCw0NzI0MCw0NzI2OSw0NzI5OCw0NzMyOCw0NzM1Nyw0NzM4Nyw0NzQxNyw0NzQ0Niw0NzQ3Niw0NzUwNiw0NzUzNSw0NzU2NSw0NzU5NCw0NzYyNCw0NzY1Myw0NzY4Miw0NzcxMiw0Nzc0MSw0Nzc3MSw0NzgwMCw0NzgzMCw0Nzg2MCw0Nzg5MCw0NzkxOSw0Nzk0OSw0Nzk3OCw0ODAwOCw0ODAzNyw0ODA2Niw0ODA5Niw0ODEyNSw0ODE1NSw0ODE4NCw0ODIxNCw0ODI0NCw0ODI3Myw0ODMwMyw0ODMzMyw0ODM2Miw0ODM5Miw0ODQyMSw0ODQ1MCw0ODQ4MCw0ODUwOSw0ODUzOCw0ODU2OCw0ODU5OCw0ODYyNyw0ODY1Nyw0ODY4Nyw0ODcxNyw0ODc0Niw0ODc3Niw0ODgwNSw0ODgzNCw0ODg2NCw0ODg5Myw0ODkyMiw0ODk1Miw0ODk4Miw0OTAxMSw0OTA0MSw0OTA3MSw0OTEwMCw0OTEzMCw0OTE2MCw0OTE4OSw0OTIxOCw0OTI0OCw0OTI3Nyw0OTMwNiw0OTMzNiw0OTM2NSw0OTM5NSw0OTQyNSw0OTQ1NSw0OTQ4NCw0OTUxNCw0OTU0Myw0OTU3Myw0OTYwMiw0OTYzMiw0OTY2MSw0OTY5MCw0OTcyMCw0OTc0OSw0OTc3OSw0OTgwOSw0OTgzOCw0OTg2OCw0OTg5OCw0OTkyNyw0OTk1Nyw0OTk4Niw1MDAxNiw1MDA0NSw1MDA3NSw1MDEwNCw1MDEzMyw1MDE2Myw1MDE5Miw1MDIyMiw1MDI1Miw1MDI4MSw1MDMxMSw1MDM0MCw1MDM3MCw1MDQwMCw1MDQyOSw1MDQ1OSw1MDQ4OCw1MDUxOCw1MDU0Nyw1MDU3Niw1MDYwNiw1MDYzNSw1MDY2NSw1MDY5NCw1MDcyNCw1MDc1NCw1MDc4NCw1MDgxMyw1MDg0Myw1MDg3Miw1MDkwMiw1MDkzMSw1MDk2MCw1MDk5MCw1MTAxOSw1MTA0OSw1MTA3OCw1MTEwOCw1MTEzOCw1MTE2Nyw1MTE5Nyw1MTIyNyw1MTI1Niw1MTI4Niw1MTMxNSw1MTM0NSw1MTM3NCw1MTQwMyw1MTQzMyw1MTQ2Miw1MTQ5Miw1MTUyMiw1MTU1Miw1MTU4Miw1MTYxMSw1MTY0MSw1MTY3MCw1MTY5OSw1MTcyOSw1MTc1OCw1MTc4Nyw1MTgxNiw1MTg0Niw1MTg3Niw1MTkwNiw1MTkzNiw1MTk2NSw1MTk5NSw1MjAyNSw1MjA1NCw1MjA4Myw1MjExMyw1MjE0Miw1MjE3MSw1MjIwMCw1MjIzMCw1MjI2MCw1MjI5MCw1MjMxOSw1MjM0OSw1MjM3OSw1MjQwOCw1MjQzOCw1MjQ2Nyw1MjQ5Nyw1MjUyNiw1MjU1NSw1MjU4NSw1MjYxNCw1MjY0NCw1MjY3Myw1MjcwMyw1MjczMyw1Mjc2Miw1Mjc5Miw1MjgyMiw1Mjg1MSw1Mjg4MSw1MjkxMCw1MjkzOSw1Mjk2OSw1Mjk5OCw1MzAyOCw1MzA1Nyw1MzA4Nyw1MzExNiw1MzE0Niw1MzE3Niw1MzIwNSw1MzIzNSw1MzI2NCw1MzI5NCw1MzMyNCw1MzM1Myw1MzM4Myw1MzQxMiw1MzQ0MSw1MzQ3MSw1MzUwMCw1MzUzMCw1MzU1OSw1MzU4OSw1MzYxOSw1MzY0OCw1MzY3OCw1MzcwOCw1MzczNyw1Mzc2Nyw1Mzc5Niw1MzgyNSw1Mzg1NSw1Mzg4NCw1MzkxMyw1Mzk0Myw1Mzk3Myw1NDAwMyw1NDAzMiw1NDA2Miw1NDA5Miw1NDEyMSw1NDE1MSw1NDE4MCw1NDIwOSw1NDIzOSw1NDI2OCw1NDI5Nyw1NDMyNyw1NDM1Nyw1NDM4Nyw1NDQxNiw1NDQ0Niw1NDQ3Niw1NDUwNSw1NDUzNSw1NDU2NCw1NDU5Myw1NDYyMyw1NDY1Miw1NDY4MSw1NDcxMSw1NDc0MSw1NDc3MCw1NDgwMCw1NDgzMCw1NDg1OSw1NDg4OSw1NDkxOSw1NDk0OCw1NDk3Nyw1NTAwNyw1NTAzNiw1NTA2Niw1NTA5NSw1NTEyNSw1NTE1NCw1NTE4NCw1NTIxMyw1NTI0Myw1NTI3Myw1NTMwMiw1NTMzMiw1NTM2MSw1NTM5MSw1NTQyMCw1NTQ1MCw1NTQ3OSw1NTUwOCw1NTUzOCw1NTU2Nyw1NTU5Nyw1NTYyNyw1NTY1Nyw1NTY4Niw1NTcxNiw1NTc0NSw1NTc3NSw1NTgwNCw1NTgzNCw1NTg2Myw1NTg5Miw1NTkyMiw1NTk1MSw1NTk4MSw1NjAxMSw1NjA0MCw1NjA3MCw1NjEwMCw1NjEyOSw1NjE1OSw1NjE4OCw1NjIxOCw1NjI0Nyw1NjI3Niw1NjMwNiw1NjMzNSw1NjM2NSw1NjM5NCw1NjQyNCw1NjQ1NCw1NjQ4Myw1NjUxMyw1NjU0Myw1NjU3Miw1NjYwMSw1NjYzMSw1NjY2MCw1NjY5MCw1NjcxOSw1Njc0OSw1Njc3OCw1NjgwOCw1NjgzNyw1Njg2Nyw1Njg5Nyw1NjkyNiw1Njk1Niw1Njk4NSw1NzAxNSw1NzA0NCw1NzA3NCw1NzEwMyw1NzEzMyw1NzE2Miw1NzE5Miw1NzIyMSw1NzI1MSw1NzI4MCw1NzMxMCw1NzM0MCw1NzM2OSw1NzM5OSw1NzQyOSw1NzQ1OCw1NzQ4Nyw1NzUxNyw1NzU0Niw1NzU3Niw1NzYwNSw1NzYzNCw1NzY2NCw1NzY5NCw1NzcyMyw1Nzc1Myw1Nzc4Myw1NzgxMyw1Nzg0Miw1Nzg3MSw1NzkwMSw1NzkzMCw1Nzk1OSw1Nzk4OSw1ODAxOCw1ODA0OCw1ODA3Nyw1ODEwNyw1ODEzNyw1ODE2Nyw1ODE5Niw1ODIyNiw1ODI1NSw1ODI4NSw1ODMxNCw1ODM0Myw1ODM3Myw1ODQwMiw1ODQzMiw1ODQ2MSw1ODQ5MSw1ODUyMSw1ODU1MSw1ODU4MCw1ODYxMCw1ODYzOSw1ODY2OSw1ODY5OCw1ODcyNyw1ODc1Nyw1ODc4Niw1ODgxNiw1ODg0NSw1ODg3NSw1ODkwNSw1ODkzNCw1ODk2NCw1ODk5NCw1OTAyMyw1OTA1Myw1OTA4Miw1OTExMSw1OTE0MSw1OTE3MCw1OTIwMCw1OTIyOSw1OTI1OSw1OTI4OCw1OTMxOCw1OTM0OCw1OTM3Nyw1OTQwNyw1OTQzNiw1OTQ2Niw1OTQ5NSw1OTUyNSw1OTU1NCw1OTU4NCw1OTYxMyw1OTY0Myw1OTY3Miw1OTcwMiw1OTczMSw1OTc2MSw1OTc5MSw1OTgyMCw1OTg1MCw1OTg3OSw1OTkwOSw1OTkzOSw1OTk2OCw1OTk5Nyw2MDAyNyw2MDA1Niw2MDA4Niw2MDExNSw2MDE0NSw2MDE3NCw2MDIwNCw2MDIzNCw2MDI2NCw2MDI5Myw2MDMyMyw2MDM1Miw2MDM4MSw2MDQxMSw2MDQ0MCw2MDQ2OSw2MDQ5OSw2MDUyOCw2MDU1OCw2MDU4OCw2MDYxOCw2MDY0OCw2MDY3Nyw2MDcwNyw2MDczNiw2MDc2NSw2MDc5NSw2MDgyNCw2MDg1Myw2MDg4Myw2MDkxMiw2MDk0Miw2MDk3Miw2MTAwMiw2MTAzMSw2MTA2MSw2MTA5MCw2MTEyMCw2MTE0OSw2MTE3OSw2MTIwOCw2MTIzNyw2MTI2Nyw2MTI5Niw2MTMyNiw2MTM1Niw2MTM4NSw2MTQxNSw2MTQ0NSw2MTQ3NCw2MTUwNCw2MTUzMyw2MTU2Myw2MTU5Miw2MTYyMSw2MTY1MSw2MTY4MCw2MTcxMCw2MTczOSw2MTc2OSw2MTc5OSw2MTgyOCw2MTg1OCw2MTg4OCw2MTkxNyw2MTk0Nyw2MTk3Niw2MjAwNiw2MjAzNSw2MjA2NCw2MjA5NCw2MjEyMyw2MjE1Myw2MjE4Miw2MjIxMiw2MjI0Miw2MjI3MSw2MjMwMSw2MjMzMSw2MjM2MCw2MjM5MCw2MjQxOSw2MjQ0OCw2MjQ3OCw2MjUwNyw2MjUzNyw2MjU2Niw2MjU5Niw2MjYyNSw2MjY1NSw2MjY4NSw2MjcxNSw2Mjc0NCw2Mjc3NCw2MjgwMyw2MjgzMiw2Mjg2Miw2Mjg5MSw2MjkyMSw2Mjk1MCw2Mjk4MCw2MzAwOSw2MzAzOSw2MzA2OSw2MzA5OSw2MzEyOCw2MzE1Nyw2MzE4Nyw2MzIxNiw2MzI0Niw2MzI3NSw2MzMwNSw2MzMzNCw2MzM2Myw2MzM5Myw2MzQyMyw2MzQ1Myw2MzQ4Miw2MzUxMiw2MzU0MSw2MzU3MSw2MzYwMCw2MzYzMCw2MzY1OSw2MzY4OSw2MzcxOCw2Mzc0Nyw2Mzc3Nyw2MzgwNyw2MzgzNiw2Mzg2Niw2Mzg5NSw2MzkyNSw2Mzk1NSw2Mzk4NCw2NDAxNCw2NDA0Myw2NDA3Myw2NDEwMiw2NDEzMSw2NDE2MSw2NDE5MCw2NDIyMCw2NDI0OSw2NDI3OSw2NDMwOSw2NDMzOSw2NDM2OCw2NDM5OCw2NDQyNyw2NDQ1Nyw2NDQ4Niw2NDUxNSw2NDU0NSw2NDU3NCw2NDYwMyw2NDYzMyw2NDY2Myw2NDY5Miw2NDcyMiw2NDc1Miw2NDc4Miw2NDgxMSw2NDg0MSw2NDg3MCw2NDg5OSw2NDkyOSw2NDk1OCw2NDk4Nyw2NTAxNyw2NTA0Nyw2NTA3Niw2NTEwNiw2NTEzNiw2NTE2Niw2NTE5NSw2NTIyNSw2NTI1NCw2NTI4Myw2NTMxMyw2NTM0Miw2NTM3MSw2NTQwMSw2NTQzMSw2NTQ2MCw2NTQ5MCw2NTUyMCw2NTU0OSw2NTU3OSw2NTYwOCw2NTYzOCw2NTY2Nyw2NTY5Nyw2NTcyNiw2NTc1NSw2NTc4NSw2NTgxNSw2NTg0NCw2NTg3NCw2NTkwMyw2NTkzMyw2NTk2Myw2NTk5Miw2NjAyMiw2NjA1MSw2NjA4MSw2NjExMCw2NjE0MCw2NjE2OSw2NjE5OSw2NjIyOCw2NjI1OCw2NjI4Nyw2NjMxNyw2NjM0Niw2NjM3Niw2NjQwNSw2NjQzNSw2NjQ2NSw2NjQ5NCw2NjUyNCw2NjU1Myw2NjU4Myw2NjYxMiw2NjY0MSw2NjY3MSw2NjcwMCw2NjczMCw2Njc2MCw2Njc4OSw2NjgxOSw2Njg0OSw2Njg3OCw2NjkwOCw2NjkzNyw2Njk2Nyw2Njk5Niw2NzAyNSw2NzA1NSw2NzA4NCw2NzExNCw2NzE0Myw2NzE3Myw2NzIwMyw2NzIzMyw2NzI2Miw2NzI5Miw2NzMyMSw2NzM1MSw2NzM4MCw2NzQwOSw2NzQzOSw2NzQ2OCw2NzQ5Nyw2NzUyNyw2NzU1Nyw2NzU4Nyw2NzYxNyw2NzY0Niw2NzY3Niw2NzcwNSw2NzczNSw2Nzc2NCw2Nzc5Myw2NzgyMyw2Nzg1Miw2Nzg4Miw2NzkxMSw2Nzk0MSw2Nzk3MSw2OGUzLDY4MDMwLDY4MDYwLDY4MDg5LDY4MTE5LDY4MTQ4LDY4MTc3LDY4MjA3LDY4MjM2LDY4MjY2LDY4Mjk1LDY4MzI1LDY4MzU0LDY4Mzg0LDY4NDE0LDY4NDQzLDY4NDczLDY4NTAyLDY4NTMyLDY4NTYxLDY4NTkxLDY4NjIwLDY4NjUwLDY4Njc5LDY4NzA4LDY4NzM4LDY4NzY4LDY4Nzk3LDY4ODI3LDY4ODU3LDY4ODg2LDY4OTE2LDY4OTQ2LDY4OTc1LDY5MDA0LDY5MDM0LDY5MDYzLDY5MDkyLDY5MTIyLDY5MTUyLDY5MTgxLDY5MjExLDY5MjQwLDY5MjcwLDY5MzAwLDY5MzMwLDY5MzU5LDY5Mzg4LDY5NDE4LDY5NDQ3LDY5NDc2LDY5NTA2LDY5NTM1LDY5NTY1LDY5NTk1LDY5NjI0LDY5NjU0LDY5Njg0LDY5NzEzLDY5NzQzLDY5NzcyLDY5ODAyLDY5ODMxLDY5ODYxLDY5ODkwLDY5OTE5LDY5OTQ5LDY5OTc4LDcwMDA4LDcwMDM4LDcwMDY3LDcwMDk3LDcwMTI2LDcwMTU2LDcwMTg2LDcwMjE1LDcwMjQ1LDcwMjc0LDcwMzAzLDcwMzMzLDcwMzYyLDcwMzkyLDcwNDIxLDcwNDUxLDcwNDgxLDcwNTEwLDcwNTQwLDcwNTcwLDcwNTk5LDcwNjI5LDcwNjU4LDcwNjg3LDcwNzE3LDcwNzQ2LDcwNzc2LDcwODA1LDcwODM1LDcwODY0LDcwODk0LDcwOTI0LDcwOTU0LDcwOTgzLDcxMDEzLDcxMDQyLDcxMDcxLDcxMTAxLDcxMTMwLDcxMTU5LDcxMTg5LDcxMjE4LDcxMjQ4LDcxMjc4LDcxMzA4LDcxMzM3LDcxMzY3LDcxMzk3LDcxNDI2LDcxNDU1LDcxNDg1LDcxNTE0LDcxNTQzLDcxNTczLDcxNjAyLDcxNjMyLDcxNjYyLDcxNjkxLDcxNzIxLDcxNzUxLDcxNzgxLDcxODEwLDcxODM5LDcxODY5LDcxODk4LDcxOTI3LDcxOTU3LDcxOTg2LDcyMDE2LDcyMDQ2LDcyMDc1LDcyMTA1LDcyMTM1LDcyMTY0LDcyMTk0LDcyMjIzLDcyMjUzLDcyMjgyLDcyMzExLDcyMzQxLDcyMzcwLDcyNDAwLDcyNDI5LDcyNDU5LDcyNDg5LDcyNTE4LDcyNTQ4LDcyNTc3LDcyNjA3LDcyNjM3LDcyNjY2LDcyNjk1LDcyNzI1LDcyNzU0LDcyNzg0LDcyODEzLDcyODQzLDcyODcyLDcyOTAyLDcyOTMxLDcyOTYxLDcyOTkxLDczMDIwLDczMDUwLDczMDgwLDczMTA5LDczMTM5LDczMTY4LDczMTk3LDczMjI3LDczMjU2LDczMjg2LDczMzE1LDczMzQ1LDczMzc1LDczNDA0LDczNDM0LDczNDY0LDczNDkzLDczNTIzLDczNTUyLDczNTgxLDczNjExLDczNjQwLDczNjY5LDczNjk5LDczNzI5LDczNzU4LDczNzg4LDczODE4LDczODQ4LDczODc3LDczOTA3LDczOTM2LDczOTY1LDczOTk1LDc0MDI0LDc0MDUzLDc0MDgzLDc0MTEzLDc0MTQyLDc0MTcyLDc0MjAyLDc0MjMxLDc0MjYxLDc0MjkxLDc0MzIwLDc0MzQ5LDc0Mzc5LDc0NDA4LDc0NDM3LDc0NDY3LDc0NDk3LDc0NTI2LDc0NTU2LDc0NTg2LDc0NjE1LDc0NjQ1LDc0Njc1LDc0NzA0LDc0NzMzLDc0NzYzLDc0NzkyLDc0ODIyLDc0ODUxLDc0ODgxLDc0OTEwLDc0OTQwLDc0OTY5LDc0OTk5LDc1MDI5LDc1MDU4LDc1MDg4LDc1MTE3LDc1MTQ3LDc1MTc2LDc1MjA2LDc1MjM1LDc1MjY0LDc1Mjk0LDc1MzIzLDc1MzUzLDc1MzgzLDc1NDEyLDc1NDQyLDc1NDcyLDc1NTAxLDc1NTMxLDc1NTYwLDc1NTkwLDc1NjE5LDc1NjQ4LDc1Njc4LDc1NzA3LDc1NzM3LDc1NzY2LDc1Nzk2LDc1ODI2LDc1ODU2LDc1ODg1LDc1OTE1LDc1OTQ0LDc1OTc0LDc2MDAzLDc2MDMyLDc2MDYyLDc2MDkxLDc2MTIxLDc2MTUwLDc2MTgwLDc2MjEwLDc2MjM5LDc2MjY5LDc2Mjk5LDc2MzI4LDc2MzU4LDc2Mzg3LDc2NDE2LDc2NDQ2LDc2NDc1LDc2NTA1LDc2NTM0LDc2NTY0LDc2NTkzLDc2NjIzLDc2NjUzLDc2NjgyLDc2NzEyLDc2NzQxLDc2NzcxLDc2ODAxLDc2ODMwLDc2ODU5LDc2ODg5LDc2OTE4LDc2OTQ4LDc2OTc3LDc3MDA3LDc3MDM2LDc3MDY2LDc3MDk2LDc3MTI1LDc3MTU1LDc3MTg1LDc3MjE0LDc3MjQzLDc3MjczLDc3MzAyLDc3MzMyLDc3MzYxLDc3MzkwLDc3NDIwLDc3NDUwLDc3NDc5LDc3NTA5LDc3NTM5LDc3NTY5LDc3NTk4LDc3NjI3LDc3NjU3LDc3Njg2LDc3NzE1LDc3NzQ1LDc3Nzc0LDc3ODA0LDc3ODMzLDc3ODYzLDc3ODkzLDc3OTIzLDc3OTUyLDc3OTgyLDc4MDExLDc4MDQxLDc4MDcwLDc4MDk5LDc4MTI5LDc4MTU4LDc4MTg4LDc4MjE3LDc4MjQ3LDc4Mjc3LDc4MzA3LDc4MzM2LDc4MzY2LDc4Mzk1LDc4NDI1LDc4NDU0LDc4NDgzLDc4NTEzLDc4NTQyLDc4NTcyLDc4NjAxLDc4NjMxLDc4NjYxLDc4NjkwLDc4NzIwLDc4NzUwLDc4Nzc5LDc4ODA4LDc4ODM4LDc4ODY3LDc4ODk3LDc4OTI2LDc4OTU2LDc4OTg1LDc5MDE1LDc5MDQ0LDc5MDc0LDc5MTA0LDc5MTMzLDc5MTYzLDc5MTkyLDc5MjIyLDc5MjUxLDc5MjgxLDc5MzEwLDc5MzQwLDc5MzY5LDc5Mzk5LDc5NDI4LDc5NDU4LDc5NDg3LDc5NTE3LDc5NTQ2LDc5NTc2LDc5NjA2LDc5NjM1LDc5NjY1LDc5Njk1LDc5NzI0LDc5NzUzLDc5NzgzLDc5ODEyLDc5ODQxLDc5ODcxLDc5OTAwLDc5OTMwLDc5OTYwLDc5OTkwXX0seyIuLi9tYWluIjozNDcsIm9iamVjdC1hc3NpZ24iOjI0N31dLDM0NzpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoIm9iamVjdC1hc3NpZ24iKTtmdW5jdGlvbiBpKCl7dGhpcy5yZWdpb25hbE9wdGlvbnM9W10sdGhpcy5yZWdpb25hbE9wdGlvbnNbIiJdPXtpbnZhbGlkQ2FsZW5kYXI6IkNhbGVuZGFyIHswfSBub3QgZm91bmQiLGludmFsaWREYXRlOiJJbnZhbGlkIHswfSBkYXRlIixpbnZhbGlkTW9udGg6IkludmFsaWQgezB9IG1vbnRoIixpbnZhbGlkWWVhcjoiSW52YWxpZCB7MH0geWVhciIsZGlmZmVyZW50Q2FsZW5kYXJzOiJDYW5ub3QgbWl4IHswfSBhbmQgezF9IGRhdGVzIn0sdGhpcy5sb2NhbD10aGlzLnJlZ2lvbmFsT3B0aW9uc1siIl0sdGhpcy5jYWxlbmRhcnM9e30sdGhpcy5fbG9jYWxDYWxzPXt9fWZ1bmN0aW9uIGEodCxlLHIsbil7aWYodGhpcy5fY2FsZW5kYXI9dCx0aGlzLl95ZWFyPWUsdGhpcy5fbW9udGg9cix0aGlzLl9kYXk9biwwPT09dGhpcy5fY2FsZW5kYXIuX3ZhbGlkYXRlTGV2ZWwmJiF0aGlzLl9jYWxlbmRhci5pc1ZhbGlkKHRoaXMuX3llYXIsdGhpcy5fbW9udGgsdGhpcy5fZGF5KSl0aHJvdyhjLmxvY2FsLmludmFsaWREYXRlfHxjLnJlZ2lvbmFsT3B0aW9uc1siIl0uaW52YWxpZERhdGUpLnJlcGxhY2UoL1x7MFx9Lyx0aGlzLl9jYWxlbmRhci5sb2NhbC5uYW1lKX1mdW5jdGlvbiBvKHQsZSl7cmV0dXJuIjAwMDAwMCIuc3Vic3RyaW5nKDAsZS0odD0iIit0KS5sZW5ndGgpK3R9ZnVuY3Rpb24gcygpe3RoaXMuc2hvcnRZZWFyQ3V0b2ZmPSIrMTAifWZ1bmN0aW9uIGwodCl7dGhpcy5sb2NhbD10aGlzLnJlZ2lvbmFsT3B0aW9uc1t0XXx8dGhpcy5yZWdpb25hbE9wdGlvbnNbIiJdfW4oaS5wcm90b3R5cGUse2luc3RhbmNlOmZ1bmN0aW9uKHQsZSl7dD0odHx8ImdyZWdvcmlhbiIpLnRvTG93ZXJDYXNlKCksZT1lfHwiIjt2YXIgcj10aGlzLl9sb2NhbENhbHNbdCsiLSIrZV07aWYoIXImJnRoaXMuY2FsZW5kYXJzW3RdJiYocj1uZXcgdGhpcy5jYWxlbmRhcnNbdF0oZSksdGhpcy5fbG9jYWxDYWxzW3QrIi0iK2VdPXIpLCFyKXRocm93KHRoaXMubG9jYWwuaW52YWxpZENhbGVuZGFyfHx0aGlzLnJlZ2lvbmFsT3B0aW9uc1siIl0uaW52YWxpZENhbGVuZGFyKS5yZXBsYWNlKC9cezBcfS8sdCk7cmV0dXJuIHJ9LG5ld0RhdGU6ZnVuY3Rpb24odCxlLHIsbixpKXtyZXR1cm4obj0obnVsbCE9dCYmdC55ZWFyP3QuY2FsZW5kYXIoKToic3RyaW5nIj09dHlwZW9mIG4/dGhpcy5pbnN0YW5jZShuLGkpOm4pfHx0aGlzLmluc3RhbmNlKCkpLm5ld0RhdGUodCxlLHIpfSxzdWJzdGl0dXRlRGlnaXRzOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4oZSsiIikucmVwbGFjZSgvWzAtOV0vZywoZnVuY3Rpb24oZSl7cmV0dXJuIHRbZV19KSl9fSxzdWJzdGl0dXRlQ2hpbmVzZURpZ2l0czpmdW5jdGlvbih0LGUpe3JldHVybiBmdW5jdGlvbihyKXtmb3IodmFyIG49IiIsaT0wO3I+MDspe3ZhciBhPXIlMTA7bj0oMD09PWE/IiI6dFthXStlW2ldKStuLGkrKyxyPU1hdGguZmxvb3Ioci8xMCl9cmV0dXJuIDA9PT1uLmluZGV4T2YodFsxXStlWzFdKSYmKG49bi5zdWJzdHIoMSkpLG58fHRbMF19fX0pLG4oYS5wcm90b3R5cGUse25ld0RhdGU6ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0aGlzLl9jYWxlbmRhci5uZXdEYXRlKG51bGw9PXQ/dGhpczp0LGUscil9LHllYXI6ZnVuY3Rpb24odCl7cmV0dXJuIDA9PT1hcmd1bWVudHMubGVuZ3RoP3RoaXMuX3llYXI6dGhpcy5zZXQodCwieSIpfSxtb250aDpmdW5jdGlvbih0KXtyZXR1cm4gMD09PWFyZ3VtZW50cy5sZW5ndGg/dGhpcy5fbW9udGg6dGhpcy5zZXQodCwibSIpfSxkYXk6ZnVuY3Rpb24odCl7cmV0dXJuIDA9PT1hcmd1bWVudHMubGVuZ3RoP3RoaXMuX2RheTp0aGlzLnNldCh0LCJkIil9LGRhdGU6ZnVuY3Rpb24odCxlLHIpe2lmKCF0aGlzLl9jYWxlbmRhci5pc1ZhbGlkKHQsZSxyKSl0aHJvdyhjLmxvY2FsLmludmFsaWREYXRlfHxjLnJlZ2lvbmFsT3B0aW9uc1siIl0uaW52YWxpZERhdGUpLnJlcGxhY2UoL1x7MFx9Lyx0aGlzLl9jYWxlbmRhci5sb2NhbC5uYW1lKTtyZXR1cm4gdGhpcy5feWVhcj10LHRoaXMuX21vbnRoPWUsdGhpcy5fZGF5PXIsdGhpc30sbGVhcFllYXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2FsZW5kYXIubGVhcFllYXIodGhpcyl9LGVwb2NoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NhbGVuZGFyLmVwb2NoKHRoaXMpfSxmb3JtYXRZZWFyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NhbGVuZGFyLmZvcm1hdFllYXIodGhpcyl9LG1vbnRoT2ZZZWFyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NhbGVuZGFyLm1vbnRoT2ZZZWFyKHRoaXMpfSx3ZWVrT2ZZZWFyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NhbGVuZGFyLndlZWtPZlllYXIodGhpcyl9LGRheXNJblllYXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2FsZW5kYXIuZGF5c0luWWVhcih0aGlzKX0sZGF5T2ZZZWFyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NhbGVuZGFyLmRheU9mWWVhcih0aGlzKX0sZGF5c0luTW9udGg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2FsZW5kYXIuZGF5c0luTW9udGgodGhpcyl9LGRheU9mV2VlazpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jYWxlbmRhci5kYXlPZldlZWsodGhpcyl9LHdlZWtEYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2FsZW5kYXIud2Vla0RheSh0aGlzKX0sZXh0cmFJbmZvOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NhbGVuZGFyLmV4dHJhSW5mbyh0aGlzKX0sYWRkOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX2NhbGVuZGFyLmFkZCh0aGlzLHQsZSl9LHNldDpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9jYWxlbmRhci5zZXQodGhpcyx0LGUpfSxjb21wYXJlVG86ZnVuY3Rpb24odCl7aWYodGhpcy5fY2FsZW5kYXIubmFtZSE9PXQuX2NhbGVuZGFyLm5hbWUpdGhyb3coYy5sb2NhbC5kaWZmZXJlbnRDYWxlbmRhcnN8fGMucmVnaW9uYWxPcHRpb25zWyIiXS5kaWZmZXJlbnRDYWxlbmRhcnMpLnJlcGxhY2UoL1x7MFx9Lyx0aGlzLl9jYWxlbmRhci5sb2NhbC5uYW1lKS5yZXBsYWNlKC9cezFcfS8sdC5fY2FsZW5kYXIubG9jYWwubmFtZSk7dmFyIGU9dGhpcy5feWVhciE9PXQuX3llYXI/dGhpcy5feWVhci10Ll95ZWFyOnRoaXMuX21vbnRoIT09dC5fbW9udGg/dGhpcy5tb250aE9mWWVhcigpLXQubW9udGhPZlllYXIoKTp0aGlzLl9kYXktdC5fZGF5O3JldHVybiAwPT09ZT8wOmU8MD8tMToxfSxjYWxlbmRhcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jYWxlbmRhcn0sdG9KRDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jYWxlbmRhci50b0pEKHRoaXMpfSxmcm9tSkQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2NhbGVuZGFyLmZyb21KRCh0KX0sdG9KU0RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2FsZW5kYXIudG9KU0RhdGUodGhpcyl9LGZyb21KU0RhdGU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2NhbGVuZGFyLmZyb21KU0RhdGUodCl9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMueWVhcigpPDA/Ii0iOiIiKStvKE1hdGguYWJzKHRoaXMueWVhcigpKSw0KSsiLSIrbyh0aGlzLm1vbnRoKCksMikrIi0iK28odGhpcy5kYXkoKSwyKX19KSxuKHMucHJvdG90eXBlLHtfdmFsaWRhdGVMZXZlbDowLG5ld0RhdGU6ZnVuY3Rpb24odCxlLHIpe3JldHVybiBudWxsPT10P3RoaXMudG9kYXkoKToodC55ZWFyJiYodGhpcy5fdmFsaWRhdGUodCxlLHIsYy5sb2NhbC5pbnZhbGlkRGF0ZXx8Yy5yZWdpb25hbE9wdGlvbnNbIiJdLmludmFsaWREYXRlKSxyPXQuZGF5KCksZT10Lm1vbnRoKCksdD10LnllYXIoKSksbmV3IGEodGhpcyx0LGUscikpfSx0b2RheTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmZyb21KU0RhdGUobmV3IERhdGUpfSxlcG9jaDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LGMubG9jYWwuaW52YWxpZFllYXJ8fGMucmVnaW9uYWxPcHRpb25zWyIiXS5pbnZhbGlkWWVhcikueWVhcigpPDA/dGhpcy5sb2NhbC5lcG9jaHNbMF06dGhpcy5sb2NhbC5lcG9jaHNbMV19LGZvcm1hdFllYXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LGMubG9jYWwuaW52YWxpZFllYXJ8fGMucmVnaW9uYWxPcHRpb25zWyIiXS5pbnZhbGlkWWVhcik7cmV0dXJuKGUueWVhcigpPDA/Ii0iOiIiKStvKE1hdGguYWJzKGUueWVhcigpKSw0KX0sbW9udGhzSW5ZZWFyOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl92YWxpZGF0ZSh0LHRoaXMubWluTW9udGgsdGhpcy5taW5EYXksYy5sb2NhbC5pbnZhbGlkWWVhcnx8Yy5yZWdpb25hbE9wdGlvbnNbIiJdLmludmFsaWRZZWFyKSwxMn0sbW9udGhPZlllYXI6ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLl92YWxpZGF0ZSh0LGUsdGhpcy5taW5EYXksYy5sb2NhbC5pbnZhbGlkTW9udGh8fGMucmVnaW9uYWxPcHRpb25zWyIiXS5pbnZhbGlkTW9udGgpO3JldHVybihyLm1vbnRoKCkrdGhpcy5tb250aHNJblllYXIociktdGhpcy5maXJzdE1vbnRoKSV0aGlzLm1vbnRoc0luWWVhcihyKSt0aGlzLm1pbk1vbnRofSxmcm9tTW9udGhPZlllYXI6ZnVuY3Rpb24odCxlKXt2YXIgcj0oZSt0aGlzLmZpcnN0TW9udGgtMip0aGlzLm1pbk1vbnRoKSV0aGlzLm1vbnRoc0luWWVhcih0KSt0aGlzLm1pbk1vbnRoO3JldHVybiB0aGlzLl92YWxpZGF0ZSh0LHIsdGhpcy5taW5EYXksYy5sb2NhbC5pbnZhbGlkTW9udGh8fGMucmVnaW9uYWxPcHRpb25zWyIiXS5pbnZhbGlkTW9udGgpLHJ9LGRheXNJblllYXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LGMubG9jYWwuaW52YWxpZFllYXJ8fGMucmVnaW9uYWxPcHRpb25zWyIiXS5pbnZhbGlkWWVhcik7cmV0dXJuIHRoaXMubGVhcFllYXIoZSk/MzY2OjM2NX0sZGF5T2ZZZWFyOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLl92YWxpZGF0ZSh0LGUscixjLmxvY2FsLmludmFsaWREYXRlfHxjLnJlZ2lvbmFsT3B0aW9uc1siIl0uaW52YWxpZERhdGUpO3JldHVybiBuLnRvSkQoKS10aGlzLm5ld0RhdGUobi55ZWFyKCksdGhpcy5mcm9tTW9udGhPZlllYXIobi55ZWFyKCksdGhpcy5taW5Nb250aCksdGhpcy5taW5EYXkpLnRvSkQoKSsxfSxkYXlzSW5XZWVrOmZ1bmN0aW9uKCl7cmV0dXJuIDd9LGRheU9mV2VlazpmdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5fdmFsaWRhdGUodCxlLHIsYy5sb2NhbC5pbnZhbGlkRGF0ZXx8Yy5yZWdpb25hbE9wdGlvbnNbIiJdLmludmFsaWREYXRlKTtyZXR1cm4oTWF0aC5mbG9vcih0aGlzLnRvSkQobikpKzIpJXRoaXMuZGF5c0luV2VlaygpfSxleHRyYUluZm86ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0aGlzLl92YWxpZGF0ZSh0LGUscixjLmxvY2FsLmludmFsaWREYXRlfHxjLnJlZ2lvbmFsT3B0aW9uc1siIl0uaW52YWxpZERhdGUpLHt9fSxhZGQ6ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0aGlzLl92YWxpZGF0ZSh0LHRoaXMubWluTW9udGgsdGhpcy5taW5EYXksYy5sb2NhbC5pbnZhbGlkRGF0ZXx8Yy5yZWdpb25hbE9wdGlvbnNbIiJdLmludmFsaWREYXRlKSx0aGlzLl9jb3JyZWN0QWRkKHQsdGhpcy5fYWRkKHQsZSxyKSxlLHIpfSxfYWRkOmZ1bmN0aW9uKHQsZSxyKXtpZih0aGlzLl92YWxpZGF0ZUxldmVsKyssImQiPT09cnx8InciPT09cil7dmFyIG49dC50b0pEKCkrZSooInciPT09cj90aGlzLmRheXNJbldlZWsoKToxKSxpPXQuY2FsZW5kYXIoKS5mcm9tSkQobik7cmV0dXJuIHRoaXMuX3ZhbGlkYXRlTGV2ZWwtLSxbaS55ZWFyKCksaS5tb250aCgpLGkuZGF5KCldfXRyeXt2YXIgYT10LnllYXIoKSsoInkiPT09cj9lOjApLG89dC5tb250aE9mWWVhcigpKygibSI9PT1yP2U6MCk7aT10LmRheSgpOyJ5Ij09PXI/KHQubW9udGgoKSE9PXRoaXMuZnJvbU1vbnRoT2ZZZWFyKGEsbykmJihvPXRoaXMubmV3RGF0ZShhLHQubW9udGgoKSx0aGlzLm1pbkRheSkubW9udGhPZlllYXIoKSksbz1NYXRoLm1pbihvLHRoaXMubW9udGhzSW5ZZWFyKGEpKSxpPU1hdGgubWluKGksdGhpcy5kYXlzSW5Nb250aChhLHRoaXMuZnJvbU1vbnRoT2ZZZWFyKGEsbykpKSk6Im0iPT09ciYmKCFmdW5jdGlvbih0KXtmb3IoO288dC5taW5Nb250aDspYS0tLG8rPXQubW9udGhzSW5ZZWFyKGEpO2Zvcih2YXIgZT10Lm1vbnRoc0luWWVhcihhKTtvPmUtMSt0Lm1pbk1vbnRoOylhKyssby09ZSxlPXQubW9udGhzSW5ZZWFyKGEpfSh0aGlzKSxpPU1hdGgubWluKGksdGhpcy5kYXlzSW5Nb250aChhLHRoaXMuZnJvbU1vbnRoT2ZZZWFyKGEsbykpKSk7dmFyIHM9W2EsdGhpcy5mcm9tTW9udGhPZlllYXIoYSxvKSxpXTtyZXR1cm4gdGhpcy5fdmFsaWRhdGVMZXZlbC0tLHN9Y2F0Y2godCl7dGhyb3cgdGhpcy5fdmFsaWRhdGVMZXZlbC0tLHR9fSxfY29ycmVjdEFkZDpmdW5jdGlvbih0LGUscixuKXtpZighKHRoaXMuaGFzWWVhclplcm98fCJ5IiE9PW4mJiJtIiE9PW58fDAhPT1lWzBdJiZ0LnllYXIoKT4wPT1lWzBdPjApKXt2YXIgaT17eTpbMSwxLCJ5Il0sbTpbMSx0aGlzLm1vbnRoc0luWWVhcigtMSksIm0iXSx3Olt0aGlzLmRheXNJbldlZWsoKSx0aGlzLmRheXNJblllYXIoLTEpLCJkIl0sZDpbMSx0aGlzLmRheXNJblllYXIoLTEpLCJkIl19W25dLGE9cjwwPy0xOjE7ZT10aGlzLl9hZGQodCxyKmlbMF0rYSppWzFdLGlbMl0pfXJldHVybiB0LmRhdGUoZVswXSxlWzFdLGVbMl0pfSxzZXQ6ZnVuY3Rpb24odCxlLHIpe3RoaXMuX3ZhbGlkYXRlKHQsdGhpcy5taW5Nb250aCx0aGlzLm1pbkRheSxjLmxvY2FsLmludmFsaWREYXRlfHxjLnJlZ2lvbmFsT3B0aW9uc1siIl0uaW52YWxpZERhdGUpO3ZhciBuPSJ5Ij09PXI/ZTp0LnllYXIoKSxpPSJtIj09PXI/ZTp0Lm1vbnRoKCksYT0iZCI9PT1yP2U6dC5kYXkoKTtyZXR1cm4ieSIhPT1yJiYibSIhPT1yfHwoYT1NYXRoLm1pbihhLHRoaXMuZGF5c0luTW9udGgobixpKSkpLHQuZGF0ZShuLGksYSl9LGlzVmFsaWQ6ZnVuY3Rpb24odCxlLHIpe3RoaXMuX3ZhbGlkYXRlTGV2ZWwrKzt2YXIgbj10aGlzLmhhc1llYXJaZXJvfHwwIT09dDtpZihuKXt2YXIgaT10aGlzLm5ld0RhdGUodCxlLHRoaXMubWluRGF5KTtuPWU+PXRoaXMubWluTW9udGgmJmUtdGhpcy5taW5Nb250aDx0aGlzLm1vbnRoc0luWWVhcihpKSYmcj49dGhpcy5taW5EYXkmJnItdGhpcy5taW5EYXk8dGhpcy5kYXlzSW5Nb250aChpKX1yZXR1cm4gdGhpcy5fdmFsaWRhdGVMZXZlbC0tLG59LHRvSlNEYXRlOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLl92YWxpZGF0ZSh0LGUscixjLmxvY2FsLmludmFsaWREYXRlfHxjLnJlZ2lvbmFsT3B0aW9uc1siIl0uaW52YWxpZERhdGUpO3JldHVybiBjLmluc3RhbmNlKCkuZnJvbUpEKHRoaXMudG9KRChuKSkudG9KU0RhdGUoKX0sZnJvbUpTRGF0ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5mcm9tSkQoYy5pbnN0YW5jZSgpLmZyb21KU0RhdGUodCkudG9KRCgpKX0sX3ZhbGlkYXRlOmZ1bmN0aW9uKHQsZSxyLG4pe2lmKHQueWVhcil7aWYoMD09PXRoaXMuX3ZhbGlkYXRlTGV2ZWwmJnRoaXMubmFtZSE9PXQuY2FsZW5kYXIoKS5uYW1lKXRocm93KGMubG9jYWwuZGlmZmVyZW50Q2FsZW5kYXJzfHxjLnJlZ2lvbmFsT3B0aW9uc1siIl0uZGlmZmVyZW50Q2FsZW5kYXJzKS5yZXBsYWNlKC9cezBcfS8sdGhpcy5sb2NhbC5uYW1lKS5yZXBsYWNlKC9cezFcfS8sdC5jYWxlbmRhcigpLmxvY2FsLm5hbWUpO3JldHVybiB0fXRyeXtpZih0aGlzLl92YWxpZGF0ZUxldmVsKyssMT09PXRoaXMuX3ZhbGlkYXRlTGV2ZWwmJiF0aGlzLmlzVmFsaWQodCxlLHIpKXRocm93IG4ucmVwbGFjZSgvXHswXH0vLHRoaXMubG9jYWwubmFtZSk7dmFyIGk9dGhpcy5uZXdEYXRlKHQsZSxyKTtyZXR1cm4gdGhpcy5fdmFsaWRhdGVMZXZlbC0tLGl9Y2F0Y2godCl7dGhyb3cgdGhpcy5fdmFsaWRhdGVMZXZlbC0tLHR9fX0pLGwucHJvdG90eXBlPW5ldyBzLG4obC5wcm90b3R5cGUse25hbWU6IkdyZWdvcmlhbiIsamRFcG9jaDoxNzIxNDI1LjUsZGF5c1Blck1vbnRoOlszMSwyOCwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV0saGFzWWVhclplcm86ITEsbWluTW9udGg6MSxmaXJzdE1vbnRoOjEsbWluRGF5OjEscmVnaW9uYWxPcHRpb25zOnsiIjp7bmFtZToiR3JlZ29yaWFuIixlcG9jaHM6WyJCQ0UiLCJDRSJdLG1vbnRoTmFtZXM6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdLG1vbnRoTmFtZXNTaG9ydDpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLGRheU5hbWVzOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXSxkYXlOYW1lc1Nob3J0OlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sZGF5TmFtZXNNaW46WyJTdSIsIk1vIiwiVHUiLCJXZSIsIlRoIiwiRnIiLCJTYSJdLGRpZ2l0czpudWxsLGRhdGVGb3JtYXQ6Im1tL2RkL3l5eXkiLGZpcnN0RGF5OjAsaXNSVEw6ITF9fSxsZWFwWWVhcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl92YWxpZGF0ZSh0LHRoaXMubWluTW9udGgsdGhpcy5taW5EYXksYy5sb2NhbC5pbnZhbGlkWWVhcnx8Yy5yZWdpb25hbE9wdGlvbnNbIiJdLmludmFsaWRZZWFyKTtyZXR1cm4odD1lLnllYXIoKSsoZS55ZWFyKCk8MD8xOjApKSU0PT0wJiYodCUxMDAhPTB8fHQlNDAwPT0wKX0sd2Vla09mWWVhcjpmdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5uZXdEYXRlKHQsZSxyKTtyZXR1cm4gbi5hZGQoNC0obi5kYXlPZldlZWsoKXx8NyksImQiKSxNYXRoLmZsb29yKChuLmRheU9mWWVhcigpLTEpLzcpKzF9LGRheXNJbk1vbnRoOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fdmFsaWRhdGUodCxlLHRoaXMubWluRGF5LGMubG9jYWwuaW52YWxpZE1vbnRofHxjLnJlZ2lvbmFsT3B0aW9uc1siIl0uaW52YWxpZE1vbnRoKTtyZXR1cm4gdGhpcy5kYXlzUGVyTW9udGhbci5tb250aCgpLTFdKygyPT09ci5tb250aCgpJiZ0aGlzLmxlYXBZZWFyKHIueWVhcigpKT8xOjApfSx3ZWVrRGF5OmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4odGhpcy5kYXlPZldlZWsodCxlLHIpfHw3KTw2fSx0b0pEOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLl92YWxpZGF0ZSh0LGUscixjLmxvY2FsLmludmFsaWREYXRlfHxjLnJlZ2lvbmFsT3B0aW9uc1siIl0uaW52YWxpZERhdGUpO3Q9bi55ZWFyKCksZT1uLm1vbnRoKCkscj1uLmRheSgpLHQ8MCYmdCsrLGU8MyYmKGUrPTEyLHQtLSk7dmFyIGk9TWF0aC5mbG9vcih0LzEwMCksYT0yLWkrTWF0aC5mbG9vcihpLzQpO3JldHVybiBNYXRoLmZsb29yKDM2NS4yNSoodCs0NzE2KSkrTWF0aC5mbG9vcigzMC42MDAxKihlKzEpKStyK2EtMTUyNC41fSxmcm9tSkQ6ZnVuY3Rpb24odCl7dmFyIGU9TWF0aC5mbG9vcih0Ky41KSxyPU1hdGguZmxvb3IoKGUtMTg2NzIxNi4yNSkvMzY1MjQuMjUpLG49KHI9ZSsxK3ItTWF0aC5mbG9vcihyLzQpKSsxNTI0LGk9TWF0aC5mbG9vcigobi0xMjIuMSkvMzY1LjI1KSxhPU1hdGguZmxvb3IoMzY1LjI1KmkpLG89TWF0aC5mbG9vcigobi1hKS8zMC42MDAxKSxzPW4tYS1NYXRoLmZsb29yKDMwLjYwMDEqbyksbD1vLShvPjEzLjU/MTM6MSksYz1pLShsPjIuNT80NzE2OjQ3MTUpO3JldHVybiBjPD0wJiZjLS0sdGhpcy5uZXdEYXRlKGMsbCxzKX0sdG9KU0RhdGU6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMuX3ZhbGlkYXRlKHQsZSxyLGMubG9jYWwuaW52YWxpZERhdGV8fGMucmVnaW9uYWxPcHRpb25zWyIiXS5pbnZhbGlkRGF0ZSksaT1uZXcgRGF0ZShuLnllYXIoKSxuLm1vbnRoKCktMSxuLmRheSgpKTtyZXR1cm4gaS5zZXRIb3VycygwKSxpLnNldE1pbnV0ZXMoMCksaS5zZXRTZWNvbmRzKDApLGkuc2V0TWlsbGlzZWNvbmRzKDApLGkuc2V0SG91cnMoaS5nZXRIb3VycygpPjEyP2kuZ2V0SG91cnMoKSsyOjApLGl9LGZyb21KU0RhdGU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubmV3RGF0ZSh0LmdldEZ1bGxZZWFyKCksdC5nZXRNb250aCgpKzEsdC5nZXREYXRlKCkpfX0pO3ZhciBjPWUuZXhwb3J0cz1uZXcgaTtjLmNkYXRlPWEsYy5iYXNlQ2FsZW5kYXI9cyxjLmNhbGVuZGFycy5ncmVnb3JpYW49bH0seyJvYmplY3QtYXNzaWduIjoyNDd9XSwzNDg6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCJvYmplY3QtYXNzaWduIiksaT10KCIuL21haW4iKTtuKGkucmVnaW9uYWxPcHRpb25zWyIiXSx7aW52YWxpZEFyZ3VtZW50czoiSW52YWxpZCBhcmd1bWVudHMiLGludmFsaWRGb3JtYXQ6IkNhbm5vdCBmb3JtYXQgYSBkYXRlIGZyb20gYW5vdGhlciBjYWxlbmRhciIsbWlzc2luZ051bWJlckF0OiJNaXNzaW5nIG51bWJlciBhdCBwb3NpdGlvbiB7MH0iLHVua25vd25OYW1lQXQ6IlVua25vd24gbmFtZSBhdCBwb3NpdGlvbiB7MH0iLHVuZXhwZWN0ZWRMaXRlcmFsQXQ6IlVuZXhwZWN0ZWQgbGl0ZXJhbCBhdCBwb3NpdGlvbiB7MH0iLHVuZXhwZWN0ZWRUZXh0OiJBZGRpdGlvbmFsIHRleHQgZm91bmQgYXQgZW5kIn0pLGkubG9jYWw9aS5yZWdpb25hbE9wdGlvbnNbIiJdLG4oaS5jZGF0ZS5wcm90b3R5cGUse2Zvcm1hdERhdGU6ZnVuY3Rpb24odCxlKXtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIHQmJihlPXQsdD0iIiksdGhpcy5fY2FsZW5kYXIuZm9ybWF0RGF0ZSh0fHwiIix0aGlzLGUpfX0pLG4oaS5iYXNlQ2FsZW5kYXIucHJvdG90eXBlLHtVTklYX0VQT0NIOmkuaW5zdGFuY2UoKS5uZXdEYXRlKDE5NzAsMSwxKS50b0pEKCksU0VDU19QRVJfREFZOjg2NDAwLFRJQ0tTX0VQT0NIOmkuaW5zdGFuY2UoKS5qZEVwb2NoLFRJQ0tTX1BFUl9EQVk6ODY0ZTksQVRPTToieXl5eS1tbS1kZCIsQ09PS0lFOiJELCBkZCBNIHl5eXkiLEZVTEw6IkRELCBNTSBkLCB5eXl5IixJU09fODYwMToieXl5eS1tbS1kZCIsSlVMSUFOOiJKIixSRkNfODIyOiJELCBkIE0geXkiLFJGQ184NTA6IkRELCBkZC1NLXl5IixSRkNfMTAzNjoiRCwgZCBNIHl5IixSRkNfMTEyMzoiRCwgZCBNIHl5eXkiLFJGQ18yODIyOiJELCBkIE0geXl5eSIsUlNTOiJELCBkIE0geXkiLFRJQ0tTOiIhIixUSU1FU1RBTVA6IkAiLFczQzoieXl5eS1tbS1kZCIsZm9ybWF0RGF0ZTpmdW5jdGlvbih0LGUscil7aWYoInN0cmluZyIhPXR5cGVvZiB0JiYocj1lLGU9dCx0PSIiKSwhZSlyZXR1cm4iIjtpZihlLmNhbGVuZGFyKCkhPT10aGlzKXRocm93IGkubG9jYWwuaW52YWxpZEZvcm1hdHx8aS5yZWdpb25hbE9wdGlvbnNbIiJdLmludmFsaWRGb3JtYXQ7dD10fHx0aGlzLmxvY2FsLmRhdGVGb3JtYXQ7Zm9yKHZhciBuLGEsbyxzLGw9KHI9cnx8e30pLmRheU5hbWVzU2hvcnR8fHRoaXMubG9jYWwuZGF5TmFtZXNTaG9ydCxjPXIuZGF5TmFtZXN8fHRoaXMubG9jYWwuZGF5TmFtZXMsdT1yLm1vbnRoTnVtYmVyc3x8dGhpcy5sb2NhbC5tb250aE51bWJlcnMsZj1yLm1vbnRoTmFtZXNTaG9ydHx8dGhpcy5sb2NhbC5tb250aE5hbWVzU2hvcnQsaD1yLm1vbnRoTmFtZXN8fHRoaXMubG9jYWwubW9udGhOYW1lcyxwPShyLmNhbGN1bGF0ZVdlZWt8fHRoaXMubG9jYWwuY2FsY3VsYXRlV2VlayxmdW5jdGlvbihlLHIpe2Zvcih2YXIgbj0xO3crbjx0Lmxlbmd0aCYmdC5jaGFyQXQodytuKT09PWU7KW4rKztyZXR1cm4gdys9bi0xLE1hdGguZmxvb3Iobi8ocnx8MSkpPjF9KSxkPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPSIiK2U7aWYocCh0LG4pKWZvcig7aS5sZW5ndGg8cjspaT0iMCIraTtyZXR1cm4gaX0sbT10aGlzLGc9ZnVuY3Rpb24odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHU/dS5jYWxsKG0sdCxwKCJtIikpOngoZCgibSIsdC5tb250aCgpLDIpKX0sdj1mdW5jdGlvbih0LGUpe3JldHVybiBlPyJmdW5jdGlvbiI9PXR5cGVvZiBoP2guY2FsbChtLHQpOmhbdC5tb250aCgpLW0ubWluTW9udGhdOiJmdW5jdGlvbiI9PXR5cGVvZiBmP2YuY2FsbChtLHQpOmZbdC5tb250aCgpLW0ubWluTW9udGhdfSx5PXRoaXMubG9jYWwuZGlnaXRzLHg9ZnVuY3Rpb24odCl7cmV0dXJuIHIubG9jYWxOdW1iZXJzJiZ5P3kodCk6dH0sYj0iIixfPSExLHc9MDt3PHQubGVuZ3RoO3crKylpZihfKSInIiE9PXQuY2hhckF0KHcpfHxwKCInIik/Yis9dC5jaGFyQXQodyk6Xz0hMTtlbHNlIHN3aXRjaCh0LmNoYXJBdCh3KSl7Y2FzZSJkIjpiKz14KGQoImQiLGUuZGF5KCksMikpO2JyZWFrO2Nhc2UiRCI6Yis9KG49IkQiLGE9ZS5kYXlPZldlZWsoKSxvPWwscz1jLHAobik/c1thXTpvW2FdKTticmVhaztjYXNlIm8iOmIrPWQoIm8iLGUuZGF5T2ZZZWFyKCksMyk7YnJlYWs7Y2FzZSJ3IjpiKz1kKCJ3IixlLndlZWtPZlllYXIoKSwyKTticmVhaztjYXNlIm0iOmIrPWcoZSk7YnJlYWs7Y2FzZSJNIjpiKz12KGUscCgiTSIpKTticmVhaztjYXNlInkiOmIrPXAoInkiLDIpP2UueWVhcigpOihlLnllYXIoKSUxMDA8MTA/IjAiOiIiKStlLnllYXIoKSUxMDA7YnJlYWs7Y2FzZSJZIjpwKCJZIiwyKSxiKz1lLmZvcm1hdFllYXIoKTticmVhaztjYXNlIkoiOmIrPWUudG9KRCgpO2JyZWFrO2Nhc2UiQCI6Yis9KGUudG9KRCgpLXRoaXMuVU5JWF9FUE9DSCkqdGhpcy5TRUNTX1BFUl9EQVk7YnJlYWs7Y2FzZSIhIjpiKz0oZS50b0pEKCktdGhpcy5USUNLU19FUE9DSCkqdGhpcy5USUNLU19QRVJfREFZO2JyZWFrO2Nhc2UiJyI6cCgiJyIpP2IrPSInIjpfPSEwO2JyZWFrO2RlZmF1bHQ6Yis9dC5jaGFyQXQodyl9cmV0dXJuIGJ9LHBhcnNlRGF0ZTpmdW5jdGlvbih0LGUscil7aWYobnVsbD09ZSl0aHJvdyBpLmxvY2FsLmludmFsaWRBcmd1bWVudHN8fGkucmVnaW9uYWxPcHRpb25zWyIiXS5pbnZhbGlkQXJndW1lbnRzO2lmKCIiPT09KGU9Im9iamVjdCI9PXR5cGVvZiBlP2UudG9TdHJpbmcoKTplKyIiKSlyZXR1cm4gbnVsbDt0PXR8fHRoaXMubG9jYWwuZGF0ZUZvcm1hdDt2YXIgbj0ocj1yfHx7fSkuc2hvcnRZZWFyQ3V0b2ZmfHx0aGlzLnNob3J0WWVhckN1dG9mZjtuPSJzdHJpbmciIT10eXBlb2Ygbj9uOnRoaXMudG9kYXkoKS55ZWFyKCklMTAwK3BhcnNlSW50KG4sMTApO2Zvcih2YXIgYT1yLmRheU5hbWVzU2hvcnR8fHRoaXMubG9jYWwuZGF5TmFtZXNTaG9ydCxvPXIuZGF5TmFtZXN8fHRoaXMubG9jYWwuZGF5TmFtZXMscz1yLnBhcnNlTW9udGh8fHRoaXMubG9jYWwucGFyc2VNb250aCxsPXIubW9udGhOdW1iZXJzfHx0aGlzLmxvY2FsLm1vbnRoTnVtYmVycyxjPXIubW9udGhOYW1lc1Nob3J0fHx0aGlzLmxvY2FsLm1vbnRoTmFtZXNTaG9ydCx1PXIubW9udGhOYW1lc3x8dGhpcy5sb2NhbC5tb250aE5hbWVzLGY9LTEsaD0tMSxwPS0xLGQ9LTEsbT0tMSxnPSExLHY9ITEseT1mdW5jdGlvbihlLHIpe2Zvcih2YXIgbj0xO00rbjx0Lmxlbmd0aCYmdC5jaGFyQXQoTStuKT09PWU7KW4rKztyZXR1cm4gTSs9bi0xLE1hdGguZmxvb3Iobi8ocnx8MSkpPjF9LHg9ZnVuY3Rpb24odCxyKXt2YXIgbj15KHQsciksYT1bMiwzLG4/NDoyLG4/NDoyLDEwLDExLDIwXVsib3lZSkAhIi5pbmRleE9mKHQpKzFdLG89bmV3IFJlZ0V4cCgiXi0/XFxkezEsIithKyJ9Iikscz1lLnN1YnN0cmluZyhBKS5tYXRjaChvKTtpZighcyl0aHJvdyhpLmxvY2FsLm1pc3NpbmdOdW1iZXJBdHx8aS5yZWdpb25hbE9wdGlvbnNbIiJdLm1pc3NpbmdOdW1iZXJBdCkucmVwbGFjZSgvXHswXH0vLEEpO3JldHVybiBBKz1zWzBdLmxlbmd0aCxwYXJzZUludChzWzBdLDEwKX0sYj10aGlzLF89ZnVuY3Rpb24oKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgbCl7eSgibSIpO3ZhciB0PWwuY2FsbChiLGUuc3Vic3RyaW5nKEEpKTtyZXR1cm4gQSs9dC5sZW5ndGgsdH1yZXR1cm4geCgibSIpfSx3PWZ1bmN0aW9uKHQscixuLGEpe2Zvcih2YXIgbz15KHQsYSk/bjpyLHM9MDtzPG8ubGVuZ3RoO3MrKylpZihlLnN1YnN0cihBLG9bc10ubGVuZ3RoKS50b0xvd2VyQ2FzZSgpPT09b1tzXS50b0xvd2VyQ2FzZSgpKXJldHVybiBBKz1vW3NdLmxlbmd0aCxzK2IubWluTW9udGg7dGhyb3coaS5sb2NhbC51bmtub3duTmFtZUF0fHxpLnJlZ2lvbmFsT3B0aW9uc1siIl0udW5rbm93bk5hbWVBdCkucmVwbGFjZSgvXHswXH0vLEEpfSxUPWZ1bmN0aW9uKCl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHUpe3ZhciB0PXkoIk0iKT91LmNhbGwoYixlLnN1YnN0cmluZyhBKSk6Yy5jYWxsKGIsZS5zdWJzdHJpbmcoQSkpO3JldHVybiBBKz10Lmxlbmd0aCx0fXJldHVybiB3KCJNIixjLHUpfSxrPWZ1bmN0aW9uKCl7aWYoZS5jaGFyQXQoQSkhPT10LmNoYXJBdChNKSl0aHJvdyhpLmxvY2FsLnVuZXhwZWN0ZWRMaXRlcmFsQXR8fGkucmVnaW9uYWxPcHRpb25zWyIiXS51bmV4cGVjdGVkTGl0ZXJhbEF0KS5yZXBsYWNlKC9cezBcfS8sQSk7QSsrfSxBPTAsTT0wO008dC5sZW5ndGg7TSsrKWlmKHYpIiciIT09dC5jaGFyQXQoTSl8fHkoIiciKT9rKCk6dj0hMTtlbHNlIHN3aXRjaCh0LmNoYXJBdChNKSl7Y2FzZSJkIjpkPXgoImQiKTticmVhaztjYXNlIkQiOncoIkQiLGEsbyk7YnJlYWs7Y2FzZSJvIjptPXgoIm8iKTticmVhaztjYXNlInciOngoInciKTticmVhaztjYXNlIm0iOnA9XygpO2JyZWFrO2Nhc2UiTSI6cD1UKCk7YnJlYWs7Y2FzZSJ5Ijp2YXIgUz1NO2c9IXkoInkiLDIpLE09UyxoPXgoInkiLDIpO2JyZWFrO2Nhc2UiWSI6aD14KCJZIiwyKTticmVhaztjYXNlIkoiOmY9eCgiSiIpKy41LCIuIj09PWUuY2hhckF0KEEpJiYoQSsrLHgoIkoiKSk7YnJlYWs7Y2FzZSJAIjpmPXgoIkAiKS90aGlzLlNFQ1NfUEVSX0RBWSt0aGlzLlVOSVhfRVBPQ0g7YnJlYWs7Y2FzZSIhIjpmPXgoIiEiKS90aGlzLlRJQ0tTX1BFUl9EQVkrdGhpcy5USUNLU19FUE9DSDticmVhaztjYXNlIioiOkE9ZS5sZW5ndGg7YnJlYWs7Y2FzZSInIjp5KCInIik/aygpOnY9ITA7YnJlYWs7ZGVmYXVsdDprKCl9aWYoQTxlLmxlbmd0aCl0aHJvdyBpLmxvY2FsLnVuZXhwZWN0ZWRUZXh0fHxpLnJlZ2lvbmFsT3B0aW9uc1siIl0udW5leHBlY3RlZFRleHQ7aWYoLTE9PT1oP2g9dGhpcy50b2RheSgpLnllYXIoKTpoPDEwMCYmZyYmKGgrPS0xPT09bj8xOTAwOnRoaXMudG9kYXkoKS55ZWFyKCktdGhpcy50b2RheSgpLnllYXIoKSUxMDAtKGg8PW4/MDoxMDApKSwic3RyaW5nIj09dHlwZW9mIHAmJihwPXMuY2FsbCh0aGlzLGgscCkpLG0+LTEpe3A9MSxkPW07Zm9yKHZhciBFPXRoaXMuZGF5c0luTW9udGgoaCxwKTtkPkU7RT10aGlzLmRheXNJbk1vbnRoKGgscCkpcCsrLGQtPUV9cmV0dXJuIGY+LTE/dGhpcy5mcm9tSkQoZik6dGhpcy5uZXdEYXRlKGgscCxkKX0sZGV0ZXJtaW5lRGF0ZTpmdW5jdGlvbih0LGUscixuLGkpe3ImJiJvYmplY3QiIT10eXBlb2YgciYmKGk9bixuPXIscj1udWxsKSwic3RyaW5nIiE9dHlwZW9mIG4mJihpPW4sbj0iIik7dmFyIGE9dGhpcztyZXR1cm4gZT1lP2UubmV3RGF0ZSgpOm51bGwsdD1udWxsPT10P2U6InN0cmluZyI9PXR5cGVvZiB0P2Z1bmN0aW9uKHQpe3RyeXtyZXR1cm4gYS5wYXJzZURhdGUobix0LGkpfWNhdGNoKHQpe31mb3IodmFyIGU9KCh0PXQudG9Mb3dlckNhc2UoKSkubWF0Y2goL15jLykmJnI/ci5uZXdEYXRlKCk6bnVsbCl8fGEudG9kYXkoKSxvPS8oWystXT9bMC05XSspXHMqKGR8d3xtfHkpPy9nLHM9by5leGVjKHQpO3M7KWUuYWRkKHBhcnNlSW50KHNbMV0sMTApLHNbMl18fCJkIikscz1vLmV4ZWModCk7cmV0dXJuIGV9KHQpOiJudW1iZXIiPT10eXBlb2YgdD9pc05hTih0KXx8dD09PTEvMHx8dD09PS0xLzA/ZTphLnRvZGF5KCkuYWRkKHQsImQiKTphLm5ld0RhdGUodCl9fSl9LHsiLi9tYWluIjozNDcsIm9iamVjdC1hc3NpZ24iOjI0N31dLDM0OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9W3twYXRoOiIiLGJhY2tvZmY6MH0se3BhdGg6Ik0tMi40LC0zVjNMMC42LDBaIixiYWNrb2ZmOi42fSx7cGF0aDoiTS0zLjcsLTIuNVYyLjVMMS4zLDBaIixiYWNrb2ZmOjEuM30se3BhdGg6Ik0tNC40NSwtM0wtMS42NSwtMC4yVjAuMkwtNC40NSwzTDEuNTUsMFoiLGJhY2tvZmY6MS41NX0se3BhdGg6Ik0tMi4yLC0yLjJMLTAuMiwtMC4yVjAuMkwtMi4yLDIuMkwtMS40LDNMMS42LDBMLTEuNCwtM1oiLGJhY2tvZmY6MS42fSx7cGF0aDoiTS00LjQsLTIuMUwtMC42LC0wLjJWMC4yTC00LjQsMi4xTC00LDNMMiwwTC00LC0zWiIsYmFja29mZjoyfSx7cGF0aDoiTTIsMEEyLDIgMCAxLDEgMCwtMkEyLDIgMCAwLDEgMiwwWiIsYmFja29mZjowLG5vUm90YXRlOiEwfSx7cGF0aDoiTTIsMlYtMkgtMlYyWiIsYmFja29mZjowLG5vUm90YXRlOiEwfV19LHt9XSwzNTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9hcnJvd19wYXRocyIpLGk9dCgiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vY29uc3RhbnRzIiksbz10KCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIikudGVtcGxhdGVkQXJyYXk7dCgiLi4vLi4vY29uc3RhbnRzL2F4aXNfcGxhY2VhYmxlX29iamVjdHMiKTtlLmV4cG9ydHM9bygiYW5ub3RhdGlvbiIse3Zpc2libGU6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3In0sdGV4dDp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToiY2FsYythcnJheWRyYXcifSx0ZXh0YW5nbGU6e3ZhbFR5cGU6ImFuZ2xlIixkZmx0OjAsZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3In0sZm9udDppKHtlZGl0VHlwZToiY2FsYythcnJheWRyYXciLGNvbG9yRWRpdFR5cGU6ImFycmF5ZHJhdyJ9KSx3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MSxkZmx0Om51bGwsZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3In0saGVpZ2h0Ont2YWxUeXBlOiJudW1iZXIiLG1pbjoxLGRmbHQ6bnVsbCxlZGl0VHlwZToiY2FsYythcnJheWRyYXcifSxvcGFjaXR5Ont2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6MSxlZGl0VHlwZToiYXJyYXlkcmF3In0sYWxpZ246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImxlZnQiLCJjZW50ZXIiLCJyaWdodCJdLGRmbHQ6ImNlbnRlciIsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LHZhbGlnbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsidG9wIiwibWlkZGxlIiwiYm90dG9tIl0sZGZsdDoibWlkZGxlIixlZGl0VHlwZToiYXJyYXlkcmF3In0sYmdjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6InJnYmEoMCwwLDAsMCkiLGVkaXRUeXBlOiJhcnJheWRyYXcifSxib3JkZXJjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6InJnYmEoMCwwLDAsMCkiLGVkaXRUeXBlOiJhcnJheWRyYXcifSxib3JkZXJwYWQ6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxLGVkaXRUeXBlOiJjYWxjK2FycmF5ZHJhdyJ9LGJvcmRlcndpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MSxlZGl0VHlwZToiY2FsYythcnJheWRyYXcifSxzaG93YXJyb3c6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3In0sYXJyb3djb2xvcjp7dmFsVHlwZToiY29sb3IiLGVkaXRUeXBlOiJhcnJheWRyYXcifSxhcnJvd2hlYWQ6e3ZhbFR5cGU6ImludGVnZXIiLG1pbjowLG1heDpuLmxlbmd0aCxkZmx0OjEsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LHN0YXJ0YXJyb3doZWFkOnt2YWxUeXBlOiJpbnRlZ2VyIixtaW46MCxtYXg6bi5sZW5ndGgsZGZsdDoxLGVkaXRUeXBlOiJhcnJheWRyYXcifSxhcnJvd3NpZGU6e3ZhbFR5cGU6ImZsYWdsaXN0IixmbGFnczpbImVuZCIsInN0YXJ0Il0sZXh0cmFzOlsibm9uZSJdLGRmbHQ6ImVuZCIsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LGFycm93c2l6ZTp7dmFsVHlwZToibnVtYmVyIixtaW46LjMsZGZsdDoxLGVkaXRUeXBlOiJjYWxjK2FycmF5ZHJhdyJ9LHN0YXJ0YXJyb3dzaXplOnt2YWxUeXBlOiJudW1iZXIiLG1pbjouMyxkZmx0OjEsZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3In0sYXJyb3d3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46LjEsZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3In0sc3RhbmRvZmY6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDowLGVkaXRUeXBlOiJjYWxjK2FycmF5ZHJhdyJ9LHN0YXJ0c3RhbmRvZmY6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDowLGVkaXRUeXBlOiJjYWxjK2FycmF5ZHJhdyJ9LGF4Ont2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJjYWxjK2FycmF5ZHJhdyJ9LGF5Ont2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJjYWxjK2FycmF5ZHJhdyJ9LGF4cmVmOnt2YWxUeXBlOiJlbnVtZXJhdGVkIixkZmx0OiJwaXhlbCIsdmFsdWVzOlsicGl4ZWwiLGEuaWRSZWdleC54LnRvU3RyaW5nKCldLGVkaXRUeXBlOiJjYWxjIn0sYXlyZWY6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLGRmbHQ6InBpeGVsIix2YWx1ZXM6WyJwaXhlbCIsYS5pZFJlZ2V4LnkudG9TdHJpbmcoKV0sZWRpdFR5cGU6ImNhbGMifSx4cmVmOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJwYXBlciIsYS5pZFJlZ2V4LngudG9TdHJpbmcoKV0sZWRpdFR5cGU6ImNhbGMifSx4Ont2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJjYWxjK2FycmF5ZHJhdyJ9LHhhbmNob3I6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImF1dG8iLCJsZWZ0IiwiY2VudGVyIiwicmlnaHQiXSxkZmx0OiJhdXRvIixlZGl0VHlwZToiY2FsYythcnJheWRyYXcifSx4c2hpZnQ6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDowLGVkaXRUeXBlOiJjYWxjK2FycmF5ZHJhdyJ9LHlyZWY6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInBhcGVyIixhLmlkUmVnZXgueS50b1N0cmluZygpXSxlZGl0VHlwZToiY2FsYyJ9LHk6e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3In0seWFuY2hvcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiYXV0byIsInRvcCIsIm1pZGRsZSIsImJvdHRvbSJdLGRmbHQ6ImF1dG8iLGVkaXRUeXBlOiJjYWxjK2FycmF5ZHJhdyJ9LHlzaGlmdDp7dmFsVHlwZToibnVtYmVyIixkZmx0OjAsZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3In0sY2xpY2t0b3Nob3c6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbITEsIm9ub2ZmIiwib25vdXQiXSxkZmx0OiExLGVkaXRUeXBlOiJhcnJheWRyYXcifSx4Y2xpY2s6e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LHljbGljazp7dmFsVHlwZToiYW55IixlZGl0VHlwZToiYXJyYXlkcmF3In0saG92ZXJ0ZXh0Ont2YWxUeXBlOiJzdHJpbmciLGVkaXRUeXBlOiJhcnJheWRyYXcifSxob3ZlcmxhYmVsOntiZ2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LGJvcmRlcmNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LGZvbnQ6aSh7ZWRpdFR5cGU6ImFycmF5ZHJhdyJ9KSxlZGl0VHlwZToiYXJyYXlkcmF3In0sY2FwdHVyZWV2ZW50czp7dmFsVHlwZToiYm9vbGVhbiIsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LGVkaXRUeXBlOiJjYWxjIixfZGVwcmVjYXRlZDp7cmVmOnt2YWxUeXBlOiJzdHJpbmciLGVkaXRUeXBlOiJjYWxjIn19fSl9LHsiLi4vLi4vY29uc3RhbnRzL2F4aXNfcGxhY2VhYmxlX29iamVjdHMiOjQ4NCwiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6NTU1LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vY29uc3RhbnRzIjo1NzMsIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyI6NTk0LCIuL2Fycm93X3BhdGhzIjozNDl9XSwzNTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGE9dCgiLi9kcmF3IikuZHJhdztmdW5jdGlvbiBvKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQ7bi5maWx0ZXJWaXNpYmxlKGUuYW5ub3RhdGlvbnMpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciByPWkuZ2V0RnJvbUlkKHQsZS54cmVmKSxuPWkuZ2V0RnJvbUlkKHQsZS55cmVmKSxhPWkuZ2V0UmVmVHlwZShlLnhyZWYpLG89aS5nZXRSZWZUeXBlKGUueXJlZik7ZS5fZXh0cmVtZXM9e30sInJhbmdlIj09PWEmJnMoZSxyKSwicmFuZ2UiPT09byYmcyhlLG4pfSkpfWZ1bmN0aW9uIHModCxlKXt2YXIgcixuPWUuX2lkLGE9bi5jaGFyQXQoMCksbz10W2FdLHM9dFsiYSIrYV0sbD10W2ErInJlZiJdLGM9dFsiYSIrYSsicmVmIl0sdT10WyJfIithKyJwYWRwbHVzIl0sZj10WyJfIithKyJwYWRtaW51cyJdLGg9e3g6MSx5Oi0xfVthXSp0W2ErInNoaWZ0Il0scD0zKnQuYXJyb3dzaXplKnQuYXJyb3d3aWR0aHx8MCxkPXAraCxtPXAtaCxnPTMqdC5zdGFydGFycm93c2l6ZSp0LmFycm93d2lkdGh8fDAsdj1nK2gseT1nLWg7aWYoYz09PWwpe3ZhciB4PWkuZmluZEV4dHJlbWVzKGUsW2UucjJjKG8pXSx7cHBhZHBsdXM6ZCxwcGFkbWludXM6bX0pLGI9aS5maW5kRXh0cmVtZXMoZSxbZS5yMmMocyldLHtwcGFkcGx1czpNYXRoLm1heCh1LHYpLHBwYWRtaW51czpNYXRoLm1heChmLHkpfSk7cj17bWluOlt4Lm1pblswXSxiLm1pblswXV0sbWF4Olt4Lm1heFswXSxiLm1heFswXV19fWVsc2Ugdj1zP3Yrczp2LHk9cz95LXM6eSxyPWkuZmluZEV4dHJlbWVzKGUsW2UucjJjKG8pXSx7cHBhZHBsdXM6TWF0aC5tYXgodSxkLHYpLHBwYWRtaW51czpNYXRoLm1heChmLG0seSl9KTt0Ll9leHRyZW1lc1tuXT1yfWUuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0O2lmKG4uZmlsdGVyVmlzaWJsZShlLmFubm90YXRpb25zKS5sZW5ndGgmJnQuX2Z1bGxEYXRhLmxlbmd0aClyZXR1cm4gbi5zeW5jT3JBc3luYyhbYSxvXSx0KX19LHsiLi4vLi4vbGliIjo1MTUsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo1NjYsIi4vZHJhdyI6MzU2fV0sMzUyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vcmVnaXN0cnkiKSxhPXQoIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKS5hcnJheUVkaXRvcjtmdW5jdGlvbiBvKHQsZSl7dmFyIHIsbixpLGEsbyxsLGMsdT10Ll9mdWxsTGF5b3V0LmFubm90YXRpb25zLGY9W10saD1bXSxwPVtdLGQ9KGV8fFtdKS5sZW5ndGg7Zm9yKHI9MDtyPHUubGVuZ3RoO3IrKylpZihhPShpPXVbcl0pLmNsaWNrdG9zaG93KXtmb3Iobj0wO248ZDtuKyspaWYobD0obz1lW25dKS54YXhpcyxjPW8ueWF4aXMsbC5faWQ9PT1pLnhyZWYmJmMuX2lkPT09aS55cmVmJiZsLmQycihvLngpPT09cyhpLl94Y2xpY2ssbCkmJmMuZDJyKG8ueSk9PT1zKGkuX3ljbGljayxjKSl7KGkudmlzaWJsZT8ib25vdXQiPT09YT9oOnA6ZikucHVzaChyKTticmVha31uPT09ZCYmaS52aXNpYmxlJiYib25vdXQiPT09YSYmaC5wdXNoKHIpfXJldHVybntvbjpmLG9mZjpoLGV4cGxpY2l0T2ZmOnB9fWZ1bmN0aW9uIHModCxlKXtyZXR1cm4ibG9nIj09PWUudHlwZT9lLmwycih0KTplLmQycih0KX1lLmV4cG9ydHM9e2hhc0NsaWNrVG9TaG93OmZ1bmN0aW9uKHQsZSl7dmFyIHI9byh0LGUpO3JldHVybiByLm9uLmxlbmd0aD4wfHxyLmV4cGxpY2l0T2ZmLmxlbmd0aD4wfSxvbkNsaWNrOmZ1bmN0aW9uKHQsZSl7dmFyIHIscyxsPW8odCxlKSxjPWwub24sdT1sLm9mZi5jb25jYXQobC5leHBsaWNpdE9mZiksZj17fSxoPXQuX2Z1bGxMYXlvdXQuYW5ub3RhdGlvbnM7aWYoIWMubGVuZ3RoJiYhdS5sZW5ndGgpcmV0dXJuO2ZvcihyPTA7cjxjLmxlbmd0aDtyKyspKHM9YSh0LmxheW91dCwiYW5ub3RhdGlvbnMiLGhbY1tyXV0pKS5tb2RpZnlJdGVtKCJ2aXNpYmxlIiwhMCksbi5leHRlbmRGbGF0KGYscy5nZXRVcGRhdGVPYmooKSk7Zm9yKHI9MDtyPHUubGVuZ3RoO3IrKykocz1hKHQubGF5b3V0LCJhbm5vdGF0aW9ucyIsaFt1W3JdXSkpLm1vZGlmeUl0ZW0oInZpc2libGUiLCExKSxuLmV4dGVuZEZsYXQoZixzLmdldFVwZGF0ZU9iaigpKTtyZXR1cm4gaS5jYWxsKCJ1cGRhdGUiLHQse30sZil9fX0seyIuLi8uLi9saWIiOjUxNSwiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6NTU1LCIuLi8uLi9yZWdpc3RyeSI6NjQ3fV0sMzUzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vY29sb3IiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYSl7YSgib3BhY2l0eSIpO3ZhciBvPWEoImJnY29sb3IiKSxzPWEoImJvcmRlcmNvbG9yIiksbD1pLm9wYWNpdHkocyk7YSgiYm9yZGVycGFkIik7dmFyIGM9YSgiYm9yZGVyd2lkdGgiKSx1PWEoInNob3dhcnJvdyIpO2lmKGEoInRleHQiLHU/IiAiOnIuX2RmbHRUaXRsZS5hbm5vdGF0aW9uKSxhKCJ0ZXh0YW5nbGUiKSxuLmNvZXJjZUZvbnQoYSwiZm9udCIsci5mb250KSxhKCJ3aWR0aCIpLGEoImFsaWduIiksYSgiaGVpZ2h0IikmJmEoInZhbGlnbiIpLHUpe3ZhciBmLGgscD1hKCJhcnJvd3NpZGUiKTstMSE9PXAuaW5kZXhPZigiZW5kIikmJihmPWEoImFycm93aGVhZCIpLGg9YSgiYXJyb3dzaXplIikpLC0xIT09cC5pbmRleE9mKCJzdGFydCIpJiYoYSgic3RhcnRhcnJvd2hlYWQiLGYpLGEoInN0YXJ0YXJyb3dzaXplIixoKSksYSgiYXJyb3djb2xvciIsbD9lLmJvcmRlcmNvbG9yOmkuZGVmYXVsdExpbmUpLGEoImFycm93d2lkdGgiLDIqKGwmJmN8fDEpKSxhKCJzdGFuZG9mZiIpLGEoInN0YXJ0c3RhbmRvZmYiKX12YXIgZD1hKCJob3ZlcnRleHQiKSxtPXIuaG92ZXJsYWJlbHx8e307aWYoZCl7dmFyIGc9YSgiaG92ZXJsYWJlbC5iZ2NvbG9yIixtLmJnY29sb3J8fChpLm9wYWNpdHkobyk/aS5yZ2Iobyk6aS5kZWZhdWx0TGluZSkpLHY9YSgiaG92ZXJsYWJlbC5ib3JkZXJjb2xvciIsbS5ib3JkZXJjb2xvcnx8aS5jb250cmFzdChnKSk7bi5jb2VyY2VGb250KGEsImhvdmVybGFiZWwuZm9udCIse2ZhbWlseTptLmZvbnQuZmFtaWx5LHNpemU6bS5mb250LnNpemUsY29sb3I6bS5mb250LmNvbG9yfHx2fSl9YSgiY2FwdHVyZWV2ZW50cyIsISFkKX19LHsiLi4vLi4vbGliIjo1MTUsIi4uL2NvbG9yIjozNjd9XSwzNTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxpPXQoIi4uLy4uL2xpYi90b19sb2dfcmFuZ2UiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYSl7ZT1lfHx7fTt2YXIgbz0ibG9nIj09PXImJiJsaW5lYXIiPT09ZS50eXBlLHM9ImxpbmVhciI9PT1yJiYibG9nIj09PWUudHlwZTtpZihvfHxzKWZvcih2YXIgbCxjLHU9dC5fZnVsbExheW91dC5hbm5vdGF0aW9ucyxmPWUuX2lkLmNoYXJBdCgwKSxoPTA7aDx1Lmxlbmd0aDtoKyspbD11W2hdLGM9ImFubm90YXRpb25zWyIraCsiXS4iLGxbZisicmVmIl09PT1lLl9pZCYmcChmKSxsWyJhIitmKyJyZWYiXT09PWUuX2lkJiZwKCJhIitmKTtmdW5jdGlvbiBwKHQpe3ZhciByPWxbdF0scz1udWxsO3M9bz9pKHIsZS5yYW5nZSk6TWF0aC5wb3coMTAsciksbihzKXx8KHM9bnVsbCksYShjK3Qscyl9fX0seyIuLi8uLi9saWIvdG9fbG9nX3JhbmdlIjo1NDMsImZhc3QtaXNudW1lcmljIjoxOTB9XSwzNTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGE9dCgiLi4vLi4vcGxvdHMvYXJyYXlfY29udGFpbmVyX2RlZmF1bHRzIiksbz10KCIuL2NvbW1vbl9kZWZhdWx0cyIpLHM9dCgiLi9hdHRyaWJ1dGVzIik7ZnVuY3Rpb24gbCh0LGUscil7ZnVuY3Rpb24gYShyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUscyxyLGkpfXZhciBsPWEoInZpc2libGUiKSxjPWEoImNsaWNrdG9zaG93Iik7aWYobHx8Yyl7byh0LGUscixhKTtmb3IodmFyIHU9ZS5zaG93YXJyb3csZj1bIngiLCJ5Il0saD1bLTEwLC0zMF0scD17X2Z1bGxMYXlvdXQ6cn0sZD0wO2Q8MjtkKyspe3ZhciBtPWZbZF0sZz1pLmNvZXJjZVJlZih0LGUscCxtLCIiLCJwYXBlciIpO2lmKCJwYXBlciIhPT1nKWkuZ2V0RnJvbUlkKHAsZykuX2FubkluZGljZXMucHVzaChlLl9pbmRleCk7aWYoaS5jb2VyY2VQb3NpdGlvbihlLHAsYSxnLG0sLjUpLHUpe3ZhciB2PSJhIittLHk9aS5jb2VyY2VSZWYodCxlLHAsdiwicGl4ZWwiLFsicGl4ZWwiLCJwYXBlciJdKTsicGl4ZWwiIT09eSYmeSE9PWcmJih5PWVbdl09InBpeGVsIik7dmFyIHg9InBpeGVsIj09PXk/aFtkXTouNDtpLmNvZXJjZVBvc2l0aW9uKGUscCxhLHksdix4KX1hKG0rImFuY2hvciIpLGEobSsic2hpZnQiKX1pZihuLm5vbmVPckFsbCh0LGUsWyJ4IiwieSJdKSx1JiZuLm5vbmVPckFsbCh0LGUsWyJheCIsImF5Il0pLGMpe3ZhciBiPWEoInhjbGljayIpLF89YSgieWNsaWNrIik7ZS5feGNsaWNrPXZvaWQgMD09PWI/ZS54OmkuY2xlYW5Qb3NpdGlvbihiLHAsZS54cmVmKSxlLl95Y2xpY2s9dm9pZCAwPT09Xz9lLnk6aS5jbGVhblBvc2l0aW9uKF8scCxlLnlyZWYpfX19ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7YSh0LGUse25hbWU6ImFubm90YXRpb25zIixoYW5kbGVJdGVtRGVmYXVsdHM6bH0pfX0seyIuLi8uLi9saWIiOjUxNSwiLi4vLi4vcGxvdHMvYXJyYXlfY29udGFpbmVyX2RlZmF1bHRzIjo1NjEsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo1NjYsIi4vYXR0cmlidXRlcyI6MzUwLCIuL2NvbW1vbl9kZWZhdWx0cyI6MzUzfV0sMzU2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4uLy4uL3JlZ2lzdHJ5IiksYT10KCIuLi8uLi9wbG90cy9wbG90cyIpLG89dCgiLi4vLi4vbGliIikscz1vLnN0clRyYW5zbGF0ZSxsPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksYz10KCIuLi9jb2xvciIpLHU9dCgiLi4vZHJhd2luZyIpLGY9dCgiLi4vZngiKSxoPXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpLHA9dCgiLi4vLi4vbGliL3NldGN1cnNvciIpLGQ9dCgiLi4vZHJhZ2VsZW1lbnQiKSxtPXQoIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKS5hcnJheUVkaXRvcixnPXQoIi4vZHJhd19hcnJvd19oZWFkIik7ZnVuY3Rpb24gdih0LGUpe3ZhciByPXQuX2Z1bGxMYXlvdXQuYW5ub3RhdGlvbnNbZV18fHt9LG49bC5nZXRGcm9tSWQodCxyLnhyZWYpLGk9bC5nZXRGcm9tSWQodCxyLnlyZWYpO24mJm4uc2V0U2NhbGUoKSxpJiZpLnNldFNjYWxlKCkseCh0LHIsZSwhMSxuLGkpfWZ1bmN0aW9uIHkodCxlLHIsbixpKXt2YXIgYT1pW3JdLG89aVtyKyJyZWYiXSxzPS0xIT09ci5pbmRleE9mKCJ5IiksYz0iZG9tYWluIj09PWwuZ2V0UmVmVHlwZShvKSx1PXM/bi5oOm4udztyZXR1cm4gdD9jP2ErKHM/LWU6ZSkvdC5fbGVuZ3RoOnQucDJyKHQucjJwKGEpK2UpOmErKHM/LWU6ZSkvdX1mdW5jdGlvbiB4KHQsZSxyLGEsdix4KXt2YXIgYixfLHc9dC5fZnVsbExheW91dCxUPXQuX2Z1bGxMYXlvdXQuX3NpemUsaz10Ll9jb250ZXh0LmVkaXRzO2E/KGI9ImFubm90YXRpb24tIithLF89YSsiLmFubm90YXRpb25zIik6KGI9ImFubm90YXRpb24iLF89ImFubm90YXRpb25zIik7dmFyIEE9bSh0LmxheW91dCxfLGUpLE09QS5tb2RpZnlCYXNlLFM9QS5tb2RpZnlJdGVtLEU9QS5nZXRVcGRhdGVPYmo7dy5faW5mb2xheWVyLnNlbGVjdEFsbCgiLiIrYisnW2RhdGEtaW5kZXg9IicrcisnIl0nKS5yZW1vdmUoKTt2YXIgTD0iY2xpcCIrdy5fdWlkKyJfYW5uIityO2lmKGUuX2lucHV0JiYhMSE9PWUudmlzaWJsZSl7dmFyIEM9e3g6e30seTp7fX0sUD0rZS50ZXh0YW5nbGV8fDAsST13Ll9pbmZvbGF5ZXIuYXBwZW5kKCJnIikuY2xhc3NlZChiLCEwKS5hdHRyKCJkYXRhLWluZGV4IixTdHJpbmcocikpLnN0eWxlKCJvcGFjaXR5IixlLm9wYWNpdHkpLE89SS5hcHBlbmQoImciKS5jbGFzc2VkKCJhbm5vdGF0aW9uLXRleHQtZyIsITApLHo9a1tlLnNob3dhcnJvdz8iYW5ub3RhdGlvblRhaWwiOiJhbm5vdGF0aW9uUG9zaXRpb24iXSxEPWUuY2FwdHVyZWV2ZW50c3x8ay5hbm5vdGF0aW9uVGV4dHx8eixSPU8uYXBwZW5kKCJnIikuc3R5bGUoInBvaW50ZXItZXZlbnRzIixEPyJhbGwiOm51bGwpLmNhbGwocCwicG9pbnRlciIpLm9uKCJjbGljayIsKGZ1bmN0aW9uKCl7dC5fZHJhZ2dpbmc9ITEsdC5lbWl0KCJwbG90bHlfY2xpY2thbm5vdGF0aW9uIixZKG4uZXZlbnQpKX0pKTtlLmhvdmVydGV4dCYmUi5vbigibW91c2VvdmVyIiwoZnVuY3Rpb24oKXt2YXIgcj1lLmhvdmVybGFiZWwsbj1yLmZvbnQsaT10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGE9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtmLmxvbmVIb3Zlcih7eDA6aS5sZWZ0LWEubGVmdCx4MTppLnJpZ2h0LWEubGVmdCx5OihpLnRvcCtpLmJvdHRvbSkvMi1hLnRvcCx0ZXh0OmUuaG92ZXJ0ZXh0LGNvbG9yOnIuYmdjb2xvcixib3JkZXJDb2xvcjpyLmJvcmRlcmNvbG9yLGZvbnRGYW1pbHk6bi5mYW1pbHksZm9udFNpemU6bi5zaXplLGZvbnRDb2xvcjpuLmNvbG9yfSx7Y29udGFpbmVyOncuX2hvdmVybGF5ZXIubm9kZSgpLG91dGVyQ29udGFpbmVyOncuX3BhcGVyLm5vZGUoKSxnZDp0fSl9KSkub24oIm1vdXNlb3V0IiwoZnVuY3Rpb24oKXtmLmxvbmVVbmhvdmVyKHcuX2hvdmVybGF5ZXIubm9kZSgpKX0pKTt2YXIgRj1lLmJvcmRlcndpZHRoLEI9ZS5ib3JkZXJwYWQsTj1GK0Isaj1SLmFwcGVuZCgicmVjdCIpLmF0dHIoImNsYXNzIiwiYmciKS5zdHlsZSgic3Ryb2tlLXdpZHRoIixGKyJweCIpLmNhbGwoYy5zdHJva2UsZS5ib3JkZXJjb2xvcikuY2FsbChjLmZpbGwsZS5iZ2NvbG9yKSxVPWUud2lkdGh8fGUuaGVpZ2h0LFY9dy5fdG9wY2xpcHMuc2VsZWN0QWxsKCIjIitMKS5kYXRhKFU/WzBdOltdKTtWLmVudGVyKCkuYXBwZW5kKCJjbGlwUGF0aCIpLmNsYXNzZWQoImFubmNsaXAiLCEwKS5hdHRyKCJpZCIsTCkuYXBwZW5kKCJyZWN0IiksVi5leGl0KCkucmVtb3ZlKCk7dmFyIEg9ZS5mb250LHE9dy5fbWV0YT9vLnRlbXBsYXRlU3RyaW5nKGUudGV4dCx3Ll9tZXRhKTplLnRleHQsRz1SLmFwcGVuZCgidGV4dCIpLmNsYXNzZWQoImFubm90YXRpb24tdGV4dCIsITApLnRleHQocSk7ay5hbm5vdGF0aW9uVGV4dD9HLmNhbGwoaC5tYWtlRWRpdGFibGUse2RlbGVnYXRlOlIsZ2Q6dH0pLmNhbGwoVykub24oImVkaXQiLChmdW5jdGlvbihyKXtlLnRleHQ9cix0aGlzLmNhbGwoVyksUygidGV4dCIsciksdiYmdi5hdXRvcmFuZ2UmJk0odi5fbmFtZSsiLmF1dG9yYW5nZSIsITApLHgmJnguYXV0b3JhbmdlJiZNKHguX25hbWUrIi5hdXRvcmFuZ2UiLCEwKSxpLmNhbGwoIl9ndWlSZWxheW91dCIsdCxFKCkpfSkpOkcuY2FsbChXKX1lbHNlIG4uc2VsZWN0QWxsKCIjIitMKS5yZW1vdmUoKTtmdW5jdGlvbiBZKHQpe3ZhciBuPXtpbmRleDpyLGFubm90YXRpb246ZS5faW5wdXQsZnVsbEFubm90YXRpb246ZSxldmVudDp0fTtyZXR1cm4gYSYmKG4uc3VicGxvdElkPWEpLG59ZnVuY3Rpb24gVyhyKXtyZXR1cm4gci5jYWxsKHUuZm9udCxIKS5hdHRyKHsidGV4dC1hbmNob3IiOntsZWZ0OiJzdGFydCIscmlnaHQ6ImVuZCJ9W2UuYWxpZ25dfHwibWlkZGxlIn0pLGguY29udmVydFRvVHNwYW5zKHIsdCxYKSxyfWZ1bmN0aW9uIFgoKXt2YXIgcj1HLnNlbGVjdEFsbCgiYSIpOzE9PT1yLnNpemUoKSYmci50ZXh0KCk9PT1HLnRleHQoKSYmUi5pbnNlcnQoImEiLCI6Zmlyc3QtY2hpbGQiKS5hdHRyKHsieGxpbms6eGxpbms6aHJlZiI6ci5hdHRyKCJ4bGluazpocmVmIiksInhsaW5rOnhsaW5rOnNob3ciOnIuYXR0cigieGxpbms6c2hvdyIpfSkuc3R5bGUoe2N1cnNvcjoicG9pbnRlciJ9KS5ub2RlKCkuYXBwZW5kQ2hpbGQoai5ub2RlKCkpO3ZhciBuPVIuc2VsZWN0KCIuYW5ub3RhdGlvbi10ZXh0LW1hdGgtZ3JvdXAiKSxmPSFuLmVtcHR5KCksbT11LmJCb3goKGY/bjpHKS5ub2RlKCkpLGI9bS53aWR0aCxfPW0uaGVpZ2h0LEE9ZS53aWR0aHx8YixEPWUuaGVpZ2h0fHxfLEI9TWF0aC5yb3VuZChBKzIqTiksSD1NYXRoLnJvdW5kKEQrMipOKTtmdW5jdGlvbiBxKHQsZSl7cmV0dXJuImF1dG8iPT09ZSYmKGU9dDwxLzM/ImxlZnQiOnQ+Mi8zPyJyaWdodCI6ImNlbnRlciIpLHtjZW50ZXI6MCxtaWRkbGU6MCxsZWZ0Oi41LGJvdHRvbTotLjUscmlnaHQ6LS41LHRvcDouNX1bZV19Zm9yKHZhciBXPSExLFg9WyJ4IiwieSJdLFo9MDtaPFgubGVuZ3RoO1orKyl7dmFyIEosSyxRLCQsdHQsZXQ9WFtaXSxydD1lW2V0KyJyZWYiXXx8ZXQsbnQ9ZVsiYSIrZXQrInJlZiJdLGl0PXt4OnYseTp4fVtldF0sYXQ9KFArKCJ4Ij09PWV0PzA6LTkwKSkqTWF0aC5QSS8xODAsb3Q9QipNYXRoLmNvcyhhdCksc3Q9SCpNYXRoLnNpbihhdCksbHQ9TWF0aC5hYnMob3QpK01hdGguYWJzKHN0KSxjdD1lW2V0KyJhbmNob3IiXSx1dD1lW2V0KyJzaGlmdCJdKigieCI9PT1ldD8xOi0xKSxmdD1DW2V0XSxodD1sLmdldFJlZlR5cGUocnQpO2lmKGl0JiYiZG9tYWluIiE9PWh0KXt2YXIgcHQ9aXQucjJmcmFjdGlvbihlW2V0XSk7KHB0PDB8fHB0PjEpJiYobnQ9PT1ydD8oKHB0PWl0LnIyZnJhY3Rpb24oZVsiYSIrZXRdKSk8MHx8cHQ+MSkmJihXPSEwKTpXPSEwKSxKPWl0Ll9vZmZzZXQraXQucjJwKGVbZXRdKSwkPS41fWVsc2V7dmFyIGR0PSJkb21haW4iPT09aHQ7IngiPT09ZXQ/KFE9ZVtldF0sSj1kdD9pdC5fb2Zmc2V0K2l0Ll9sZW5ndGgqUTpKPVQubCtULncqUSk6KFE9MS1lW2V0XSxKPWR0P2l0Ll9vZmZzZXQraXQuX2xlbmd0aCpROko9VC50K1QuaCpRKSwkPWUuc2hvd2Fycm93Py41OlF9aWYoZS5zaG93YXJyb3cpe2Z0LmhlYWQ9Sjt2YXIgbXQ9ZVsiYSIrZXRdO2lmKHR0PW90KnEoLjUsZS54YW5jaG9yKS1zdCpxKC41LGUueWFuY2hvciksbnQ9PT1ydCl7dmFyIGd0PWwuZ2V0UmVmVHlwZShudCk7ImRvbWFpbiI9PT1ndD8oInkiPT09ZXQmJihtdD0xLW10KSxmdC50YWlsPWl0Ll9vZmZzZXQraXQuX2xlbmd0aCptdCk6InBhcGVyIj09PWd0PyJ5Ij09PWV0PyhtdD0xLW10LGZ0LnRhaWw9VC50K1QuaCptdCk6ZnQudGFpbD1ULmwrVC53Km10OmZ0LnRhaWw9aXQuX29mZnNldCtpdC5yMnAobXQpLEs9dHR9ZWxzZSBmdC50YWlsPUorbXQsSz10dCttdDtmdC50ZXh0PWZ0LnRhaWwrdHQ7dmFyIHZ0PXdbIngiPT09ZXQ/IndpZHRoIjoiaGVpZ2h0Il07aWYoInBhcGVyIj09PXJ0JiYoZnQuaGVhZD1vLmNvbnN0cmFpbihmdC5oZWFkLDEsdnQtMSkpLCJwaXhlbCI9PT1udCl7dmFyIHl0PS1NYXRoLm1heChmdC50YWlsLTMsZnQudGV4dCkseHQ9TWF0aC5taW4oZnQudGFpbCszLGZ0LnRleHQpLXZ0O3l0PjA/KGZ0LnRhaWwrPXl0LGZ0LnRleHQrPXl0KTp4dD4wJiYoZnQudGFpbC09eHQsZnQudGV4dC09eHQpfWZ0LnRhaWwrPXV0LGZ0LmhlYWQrPXV0fWVsc2UgSz10dD1sdCpxKCQsY3QpLGZ0LnRleHQ9Sit0dDtmdC50ZXh0Kz11dCx0dCs9dXQsSys9dXQsZVsiXyIrZXQrInBhZHBsdXMiXT1sdC8yK0ssZVsiXyIrZXQrInBhZG1pbnVzIl09bHQvMi1LLGVbIl8iK2V0KyJzaXplIl09bHQsZVsiXyIrZXQrInNoaWZ0Il09dHR9aWYoVylSLnJlbW92ZSgpO2Vsc2V7dmFyIGJ0PTAsX3Q9MDtpZigibGVmdCIhPT1lLmFsaWduJiYoYnQ9KEEtYikqKCJjZW50ZXIiPT09ZS5hbGlnbj8uNToxKSksInRvcCIhPT1lLnZhbGlnbiYmKF90PShELV8pKigibWlkZGxlIj09PWUudmFsaWduPy41OjEpKSxmKW4uc2VsZWN0KCJzdmciKS5hdHRyKHt4Ok4rYnQtMSx5Ok4rX3R9KS5jYWxsKHUuc2V0Q2xpcFVybCxVP0w6bnVsbCx0KTtlbHNle3ZhciB3dD1OK190LW0udG9wLFR0PU4rYnQtbS5sZWZ0O0cuY2FsbChoLnBvc2l0aW9uVGV4dCxUdCx3dCkuY2FsbCh1LnNldENsaXBVcmwsVT9MOm51bGwsdCl9Vi5zZWxlY3QoInJlY3QiKS5jYWxsKHUuc2V0UmVjdCxOLE4sQSxEKSxqLmNhbGwodS5zZXRSZWN0LEYvMixGLzIsQi1GLEgtRiksUi5jYWxsKHUuc2V0VHJhbnNsYXRlLE1hdGgucm91bmQoQy54LnRleHQtQi8yKSxNYXRoLnJvdW5kKEMueS50ZXh0LUgvMikpLE8uYXR0cih7dHJhbnNmb3JtOiJyb3RhdGUoIitQKyIsIitDLngudGV4dCsiLCIrQy55LnRleHQrIikifSk7dmFyIGt0LEF0PWZ1bmN0aW9uKHIsbil7SS5zZWxlY3RBbGwoIi5hbm5vdGF0aW9uLWFycm93LWciKS5yZW1vdmUoKTt2YXIgbD1DLnguaGVhZCxmPUMueS5oZWFkLGg9Qy54LnRhaWwrcixwPUMueS50YWlsK24sbT1DLngudGV4dCtyLGI9Qy55LnRleHQrbixfPW8ucm90YXRpb25YWU1hdHJpeChQLG0sYiksdz1vLmFwcGx5MkRUcmFuc2Zvcm0oXyksQT1vLmFwcGx5MkRUcmFuc2Zvcm0yKF8pLEw9K2ouYXR0cigid2lkdGgiKSx6PStqLmF0dHIoImhlaWdodCIpLEQ9bS0uNSpMLEY9RCtMLEI9Yi0uNSp6LE49Qit6LFU9W1tELEIsRCxOXSxbRCxOLEYsTl0sW0YsTixGLEJdLFtGLEIsRCxCXV0ubWFwKEEpO2lmKCFVLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdF4hIW8uc2VnbWVudHNJbnRlcnNlY3QobCxmLGwrMWU2LGYrMWU2LGVbMF0sZVsxXSxlWzJdLGVbM10pfSksITEpKXtVLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPW8uc2VnbWVudHNJbnRlcnNlY3QoaCxwLGwsZix0WzBdLHRbMV0sdFsyXSx0WzNdKTtlJiYoaD1lLngscD1lLnkpfSkpO3ZhciBWPWUuYXJyb3d3aWR0aCxIPWUuYXJyb3djb2xvcixxPWUuYXJyb3dzaWRlLEc9SS5hcHBlbmQoImciKS5zdHlsZSh7b3BhY2l0eTpjLm9wYWNpdHkoSCl9KS5jbGFzc2VkKCJhbm5vdGF0aW9uLWFycm93LWciLCEwKSxZPUcuYXBwZW5kKCJwYXRoIikuYXR0cigiZCIsIk0iK2grIiwiK3ArIkwiK2wrIiwiK2YpLnN0eWxlKCJzdHJva2Utd2lkdGgiLFYrInB4IikuY2FsbChjLnN0cm9rZSxjLnJnYihIKSk7aWYoZyhZLHEsZSksay5hbm5vdGF0aW9uUG9zaXRpb24mJlkubm9kZSgpLnBhcmVudE5vZGUmJiFhKXt2YXIgVz1sLFg9ZjtpZihlLnN0YW5kb2ZmKXt2YXIgWj1NYXRoLnNxcnQoTWF0aC5wb3cobC1oLDIpK01hdGgucG93KGYtcCwyKSk7Vys9ZS5zdGFuZG9mZiooaC1sKS9aLFgrPWUuc3RhbmRvZmYqKHAtZikvWn12YXIgSixLLFE9Ry5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKCJhbm5vdGF0aW9uLWFycm93IiwhMCkuY2xhc3NlZCgiYW5uZHJhZyIsITApLmNsYXNzZWQoImN1cnNvci1tb3ZlIiwhMCkuYXR0cih7ZDoiTTMsM0gtM1YtM0gzWk0wLDBMIisoaC1XKSsiLCIrKHAtWCksdHJhbnNmb3JtOnMoVyxYKX0pLnN0eWxlKCJzdHJva2Utd2lkdGgiLFYrNisicHgiKS5jYWxsKGMuc3Ryb2tlLCJyZ2JhKDAsMCwwLDApIikuY2FsbChjLmZpbGwsInJnYmEoMCwwLDAsMCkiKTtkLmluaXQoe2VsZW1lbnQ6US5ub2RlKCksZ2Q6dCxwcmVwRm46ZnVuY3Rpb24oKXt2YXIgdD11LmdldFRyYW5zbGF0ZShSKTtKPXQueCxLPXQueSx2JiZ2LmF1dG9yYW5nZSYmTSh2Ll9uYW1lKyIuYXV0b3JhbmdlIiwhMCkseCYmeC5hdXRvcmFuZ2UmJk0oeC5fbmFtZSsiLmF1dG9yYW5nZSIsITApfSxtb3ZlRm46ZnVuY3Rpb24odCxyKXt2YXIgbj13KEosSyksaT1uWzBdK3QsYT1uWzFdK3I7Ui5jYWxsKHUuc2V0VHJhbnNsYXRlLGksYSksUygieCIseSh2LHQsIngiLFQsZSkpLFMoInkiLHkoeCxyLCJ5IixULGUpKSxlLmF4cmVmPT09ZS54cmVmJiZTKCJheCIseSh2LHQsImF4IixULGUpKSxlLmF5cmVmPT09ZS55cmVmJiZTKCJheSIseSh4LHIsImF5IixULGUpKSxHLmF0dHIoInRyYW5zZm9ybSIscyh0LHIpKSxPLmF0dHIoe3RyYW5zZm9ybToicm90YXRlKCIrUCsiLCIraSsiLCIrYSsiKSJ9KX0sZG9uZUZuOmZ1bmN0aW9uKCl7aS5jYWxsKCJfZ3VpUmVsYXlvdXQiLHQsRSgpKTt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuanMtbm90ZXMtYm94LXBhbmVsIik7ZSYmZS5yZWRyYXcoZS5zZWxlY3RlZE9iail9fSl9fX07aWYoZS5zaG93YXJyb3cmJkF0KDAsMCkseilkLmluaXQoe2VsZW1lbnQ6Ui5ub2RlKCksZ2Q6dCxwcmVwRm46ZnVuY3Rpb24oKXtrdD1PLmF0dHIoInRyYW5zZm9ybSIpfSxtb3ZlRm46ZnVuY3Rpb24odCxyKXt2YXIgbj0icG9pbnRlciI7aWYoZS5zaG93YXJyb3cpZS5heHJlZj09PWUueHJlZj9TKCJheCIseSh2LHQsImF4IixULGUpKTpTKCJheCIsZS5heCt0KSxlLmF5cmVmPT09ZS55cmVmP1MoImF5Iix5KHgsciwiYXkiLFQudyxlKSk6UygiYXkiLGUuYXkrciksQXQodCxyKTtlbHNle2lmKGEpcmV0dXJuO3ZhciBpLG87aWYodilpPXkodix0LCJ4IixULGUpO2Vsc2V7dmFyIGw9ZS5feHNpemUvVC53LGM9ZS54KyhlLl94c2hpZnQtZS54c2hpZnQpL1Qudy1sLzI7aT1kLmFsaWduKGMrdC9ULncsbCwwLDEsZS54YW5jaG9yKX1pZih4KW89eSh4LHIsInkiLFQsZSk7ZWxzZXt2YXIgdT1lLl95c2l6ZS9ULmgsZj1lLnktKGUuX3lzaGlmdCtlLnlzaGlmdCkvVC5oLXUvMjtvPWQuYWxpZ24oZi1yL1QuaCx1LDAsMSxlLnlhbmNob3IpfVMoIngiLGkpLFMoInkiLG8pLHYmJnh8fChuPWQuZ2V0Q3Vyc29yKHY/LjU6aSx4Py41Om8sZS54YW5jaG9yLGUueWFuY2hvcikpfU8uYXR0cih7dHJhbnNmb3JtOnModCxyKStrdH0pLHAoUixuKX0sY2xpY2tGbjpmdW5jdGlvbihyLG4pe2UuY2FwdHVyZWV2ZW50cyYmdC5lbWl0KCJwbG90bHlfY2xpY2thbm5vdGF0aW9uIixZKG4pKX0sZG9uZUZuOmZ1bmN0aW9uKCl7cChSKSxpLmNhbGwoIl9ndWlSZWxheW91dCIsdCxFKCkpO3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5qcy1ub3Rlcy1ib3gtcGFuZWwiKTtlJiZlLnJlZHJhdyhlLnNlbGVjdGVkT2JqKX19KX19fWUuZXhwb3J0cz17ZHJhdzpmdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0O2UuX2luZm9sYXllci5zZWxlY3RBbGwoIi5hbm5vdGF0aW9uIikucmVtb3ZlKCk7Zm9yKHZhciByPTA7cjxlLmFubm90YXRpb25zLmxlbmd0aDtyKyspZS5hbm5vdGF0aW9uc1tyXS52aXNpYmxlJiZ2KHQscik7cmV0dXJuIGEucHJldmlvdXNQcm9taXNlcyh0KX0sZHJhd09uZTp2LGRyYXdSYXc6eH19LHsiLi4vLi4vbGliIjo1MTUsIi4uLy4uL2xpYi9zZXRjdXJzb3IiOjUzNiwiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIjo1NDEsIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiOjU1NSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjU2NiwiLi4vLi4vcGxvdHMvcGxvdHMiOjYyOCwiLi4vLi4vcmVnaXN0cnkiOjY0NywiLi4vY29sb3IiOjM2NywiLi4vZHJhZ2VsZW1lbnQiOjM4NiwiLi4vZHJhd2luZyI6Mzg5LCIuLi9meCI6NDA3LCIuL2RyYXdfYXJyb3dfaGVhZCI6MzU3LCJAcGxvdGx5L2QzIjo1OH1dLDM1NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi9jb2xvciIpLGE9dCgiLi9hcnJvd19wYXRocyIpLG89dCgiLi4vLi4vbGliIikscz1vLnN0clNjYWxlLGw9by5zdHJSb3RhdGUsYz1vLnN0clRyYW5zbGF0ZTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBvLHUsZixoLHA9dC5ub2RlKCksZD1hW3IuYXJyb3doZWFkfHwwXSxtPWFbci5zdGFydGFycm93aGVhZHx8MF0sZz0oci5hcnJvd3dpZHRofHwxKSooci5hcnJvd3NpemV8fDEpLHY9KHIuYXJyb3d3aWR0aHx8MSkqKHIuc3RhcnRhcnJvd3NpemV8fDEpLHk9ZS5pbmRleE9mKCJzdGFydCIpPj0wLHg9ZS5pbmRleE9mKCJlbmQiKT49MCxiPWQuYmFja29mZipnK3Iuc3RhbmRvZmYsXz1tLmJhY2tvZmYqdityLnN0YXJ0c3RhbmRvZmY7aWYoImxpbmUiPT09cC5ub2RlTmFtZSl7bz17eDordC5hdHRyKCJ4MSIpLHk6K3QuYXR0cigieTEiKX0sdT17eDordC5hdHRyKCJ4MiIpLHk6K3QuYXR0cigieTIiKX07dmFyIHc9by54LXUueCxUPW8ueS11Lnk7aWYoaD0oZj1NYXRoLmF0YW4yKFQsdykpK01hdGguUEksYiYmXyYmYitfPk1hdGguc3FydCh3KncrVCpUKSlyZXR1cm4gdm9pZCB6KCk7aWYoYil7aWYoYipiPncqdytUKlQpcmV0dXJuIHZvaWQgeigpO3ZhciBrPWIqTWF0aC5jb3MoZiksQT1iKk1hdGguc2luKGYpO3UueCs9ayx1LnkrPUEsdC5hdHRyKHt4Mjp1LngseTI6dS55fSl9aWYoXyl7aWYoXypfPncqdytUKlQpcmV0dXJuIHZvaWQgeigpO3ZhciBNPV8qTWF0aC5jb3MoZiksUz1fKk1hdGguc2luKGYpO28ueC09TSxvLnktPVMsdC5hdHRyKHt4MTpvLngseTE6by55fSl9fWVsc2UgaWYoInBhdGgiPT09cC5ub2RlTmFtZSl7dmFyIEU9cC5nZXRUb3RhbExlbmd0aCgpLEw9IiI7aWYoRTxiK18pcmV0dXJuIHZvaWQgeigpO3ZhciBDPXAuZ2V0UG9pbnRBdExlbmd0aCgwKSxQPXAuZ2V0UG9pbnRBdExlbmd0aCguMSk7Zj1NYXRoLmF0YW4yKEMueS1QLnksQy54LVAueCksbz1wLmdldFBvaW50QXRMZW5ndGgoTWF0aC5taW4oXyxFKSksTD0iMHB4LCIrXysicHgsIjt2YXIgST1wLmdldFBvaW50QXRMZW5ndGgoRSksTz1wLmdldFBvaW50QXRMZW5ndGgoRS0uMSk7aD1NYXRoLmF0YW4yKEkueS1PLnksSS54LU8ueCksdT1wLmdldFBvaW50QXRMZW5ndGgoTWF0aC5tYXgoMCxFLWIpKSxMKz1FLShMP18rYjpiKSsicHgsIitFKyJweCIsdC5zdHlsZSgic3Ryb2tlLWRhc2hhcnJheSIsTCl9ZnVuY3Rpb24geigpe3Quc3R5bGUoInN0cm9rZS1kYXNoYXJyYXkiLCIwcHgsMTAwcHgiKX1mdW5jdGlvbiBEKGUsYSxvLHUpe2UucGF0aCYmKGUubm9Sb3RhdGUmJihvPTApLG4uc2VsZWN0KHAucGFyZW50Tm9kZSkuYXBwZW5kKCJwYXRoIikuYXR0cih7Y2xhc3M6dC5hdHRyKCJjbGFzcyIpLGQ6ZS5wYXRoLHRyYW5zZm9ybTpjKGEueCxhLnkpK2woMTgwKm8vTWF0aC5QSSkrcyh1KX0pLnN0eWxlKHtmaWxsOmkucmdiKHIuYXJyb3djb2xvciksInN0cm9rZS13aWR0aCI6MH0pKX15JiZEKG0sbyxmLHYpLHgmJkQoZCx1LGgsZyl9fSx7Ii4uLy4uL2xpYiI6NTE1LCIuLi9jb2xvciI6MzY3LCIuL2Fycm93X3BhdGhzIjozNDksIkBwbG90bHkvZDMiOjU4fV0sMzU4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vZHJhdyIpLGk9dCgiLi9jbGljayIpO2UuZXhwb3J0cz17bW9kdWxlVHlwZToiY29tcG9uZW50IixuYW1lOiJhbm5vdGF0aW9ucyIsbGF5b3V0QXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlMYXlvdXREZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksaW5jbHVkZUJhc2VQbG90OnQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9pbmNsdWRlX2NvbXBvbmVudHMiKSgiYW5ub3RhdGlvbnMiKSxjYWxjQXV0b3JhbmdlOnQoIi4vY2FsY19hdXRvcmFuZ2UiKSxkcmF3Om4uZHJhdyxkcmF3T25lOm4uZHJhd09uZSxkcmF3UmF3Om4uZHJhd1JhdyxoYXNDbGlja1RvU2hvdzppLmhhc0NsaWNrVG9TaG93LG9uQ2xpY2s6aS5vbkNsaWNrLGNvbnZlcnRDb29yZHM6dCgiLi9jb252ZXJ0X2Nvb3JkcyIpfX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vaW5jbHVkZV9jb21wb25lbnRzIjo1NzcsIi4vYXR0cmlidXRlcyI6MzUwLCIuL2NhbGNfYXV0b3JhbmdlIjozNTEsIi4vY2xpY2siOjM1MiwiLi9jb252ZXJ0X2Nvb3JkcyI6MzU0LCIuL2RlZmF1bHRzIjozNTUsIi4vZHJhdyI6MzU2fV0sMzU5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2Fubm90YXRpb25zL2F0dHJpYnV0ZXMiKSxpPXQoIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiKS5vdmVycmlkZUFsbCxhPXQoIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKS50ZW1wbGF0ZWRBcnJheTtlLmV4cG9ydHM9aShhKCJhbm5vdGF0aW9uIix7dmlzaWJsZTpuLnZpc2libGUseDp7dmFsVHlwZToiYW55In0seTp7dmFsVHlwZToiYW55In0sejp7dmFsVHlwZToiYW55In0sYXg6e3ZhbFR5cGU6Im51bWJlciJ9LGF5Ont2YWxUeXBlOiJudW1iZXIifSx4YW5jaG9yOm4ueGFuY2hvcix4c2hpZnQ6bi54c2hpZnQseWFuY2hvcjpuLnlhbmNob3IseXNoaWZ0Om4ueXNoaWZ0LHRleHQ6bi50ZXh0LHRleHRhbmdsZTpuLnRleHRhbmdsZSxmb250Om4uZm9udCx3aWR0aDpuLndpZHRoLGhlaWdodDpuLmhlaWdodCxvcGFjaXR5Om4ub3BhY2l0eSxhbGlnbjpuLmFsaWduLHZhbGlnbjpuLnZhbGlnbixiZ2NvbG9yOm4uYmdjb2xvcixib3JkZXJjb2xvcjpuLmJvcmRlcmNvbG9yLGJvcmRlcnBhZDpuLmJvcmRlcnBhZCxib3JkZXJ3aWR0aDpuLmJvcmRlcndpZHRoLHNob3dhcnJvdzpuLnNob3dhcnJvdyxhcnJvd2NvbG9yOm4uYXJyb3djb2xvcixhcnJvd2hlYWQ6bi5hcnJvd2hlYWQsc3RhcnRhcnJvd2hlYWQ6bi5zdGFydGFycm93aGVhZCxhcnJvd3NpZGU6bi5hcnJvd3NpZGUsYXJyb3dzaXplOm4uYXJyb3dzaXplLHN0YXJ0YXJyb3dzaXplOm4uc3RhcnRhcnJvd3NpemUsYXJyb3d3aWR0aDpuLmFycm93d2lkdGgsc3RhbmRvZmY6bi5zdGFuZG9mZixzdGFydHN0YW5kb2ZmOm4uc3RhcnRzdGFuZG9mZixob3ZlcnRleHQ6bi5ob3ZlcnRleHQsaG92ZXJsYWJlbDpuLmhvdmVybGFiZWwsY2FwdHVyZWV2ZW50czpuLmNhcHR1cmVldmVudHN9KSwiY2FsYyIsImZyb20tcm9vdCIpfSx7Ii4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiOjU0OCwiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6NTU1LCIuLi9hbm5vdGF0aW9ucy9hdHRyaWJ1dGVzIjozNTB9XSwzNjA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpO2Z1bmN0aW9uIGEodCxlKXt2YXIgcj1lLmZ1bGxTY2VuZUxheW91dC5kb21haW4sYT1lLmZ1bGxMYXlvdXQuX3NpemUsbz17cGRhdGE6bnVsbCx0eXBlOiJsaW5lYXIiLGF1dG9yYW5nZTohMSxyYW5nZTpbLTEvMCwxLzBdfTt0Ll94YT17fSxuLmV4dGVuZEZsYXQodC5feGEsbyksaS5zZXRDb252ZXJ0KHQuX3hhKSx0Ll94YS5fb2Zmc2V0PWEubCtyLnhbMF0qYS53LHQuX3hhLmwycD1mdW5jdGlvbigpe3JldHVybi41KigxK3QuX3BkYXRhWzBdL3QuX3BkYXRhWzNdKSphLncqKHIueFsxXS1yLnhbMF0pfSx0Ll95YT17fSxuLmV4dGVuZEZsYXQodC5feWEsbyksaS5zZXRDb252ZXJ0KHQuX3lhKSx0Ll95YS5fb2Zmc2V0PWEudCsoMS1yLnlbMV0pKmEuaCx0Ll95YS5sMnA9ZnVuY3Rpb24oKXtyZXR1cm4uNSooMS10Ll9wZGF0YVsxXS90Ll9wZGF0YVszXSkqYS5oKihyLnlbMV0tci55WzBdKX19ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10LmZ1bGxTY2VuZUxheW91dC5hbm5vdGF0aW9ucyxyPTA7cjxlLmxlbmd0aDtyKyspYShlW3JdLHQpO3QuZnVsbExheW91dC5faW5mb2xheWVyLnNlbGVjdEFsbCgiLmFubm90YXRpb24tIit0LmlkKS5yZW1vdmUoKX19LHsiLi4vLi4vbGliIjo1MTUsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo1NjZ9XSwzNjE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGE9dCgiLi4vLi4vcGxvdHMvYXJyYXlfY29udGFpbmVyX2RlZmF1bHRzIiksbz10KCIuLi9hbm5vdGF0aW9ucy9jb21tb25fZGVmYXVsdHMiKSxzPXQoIi4vYXR0cmlidXRlcyIpO2Z1bmN0aW9uIGwodCxlLHIsYSl7ZnVuY3Rpb24gbChyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUscyxyLGkpfWZ1bmN0aW9uIGModCl7dmFyIG49dCsiYXhpcyIsYT17X2Z1bGxMYXlvdXQ6e319O3JldHVybiBhLl9mdWxsTGF5b3V0W25dPXJbbl0saS5jb2VyY2VQb3NpdGlvbihlLGEsbCx0LHQsLjUpfWwoInZpc2libGUiKSYmKG8odCxlLGEuZnVsbExheW91dCxsKSxjKCJ4IiksYygieSIpLGMoInoiKSxuLm5vbmVPckFsbCh0LGUsWyJ4IiwieSIsInoiXSksZS54cmVmPSJ4IixlLnlyZWY9InkiLGUuenJlZj0ieiIsbCgieGFuY2hvciIpLGwoInlhbmNob3IiKSxsKCJ4c2hpZnQiKSxsKCJ5c2hpZnQiKSxlLnNob3dhcnJvdyYmKGUuYXhyZWY9InBpeGVsIixlLmF5cmVmPSJwaXhlbCIsbCgiYXgiLC0xMCksbCgiYXkiLC0zMCksbi5ub25lT3JBbGwodCxlLFsiYXgiLCJheSJdKSkpfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7YSh0LGUse25hbWU6ImFubm90YXRpb25zIixoYW5kbGVJdGVtRGVmYXVsdHM6bCxmdWxsTGF5b3V0OnIuZnVsbExheW91dH0pfX0seyIuLi8uLi9saWIiOjUxNSwiLi4vLi4vcGxvdHMvYXJyYXlfY29udGFpbmVyX2RlZmF1bHRzIjo1NjEsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo1NjYsIi4uL2Fubm90YXRpb25zL2NvbW1vbl9kZWZhdWx0cyI6MzUzLCIuL2F0dHJpYnV0ZXMiOjM1OX1dLDM2MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9hbm5vdGF0aW9ucy9kcmF3IikuZHJhd1JhdyxpPXQoIi4uLy4uL3Bsb3RzL2dsM2QvcHJvamVjdCIpLGE9WyJ4IiwieSIsInoiXTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQuZnVsbFNjZW5lTGF5b3V0LHI9dC5kYXRhU2NhbGUsbz1lLmFubm90YXRpb25zLHM9MDtzPG8ubGVuZ3RoO3MrKyl7Zm9yKHZhciBsPW9bc10sYz0hMSx1PTA7dTwzO3UrKyl7dmFyIGY9YVt1XSxoPWxbZl0scD1lW2YrImF4aXMiXS5yMmZyYWN0aW9uKGgpO2lmKHA8MHx8cD4xKXtjPSEwO2JyZWFrfX1jP3QuZnVsbExheW91dC5faW5mb2xheWVyLnNlbGVjdCgiLmFubm90YXRpb24tIit0LmlkKydbZGF0YS1pbmRleD0iJytzKyciXScpLnJlbW92ZSgpOihsLl9wZGF0YT1pKHQuZ2xwbG90LmNhbWVyYVBhcmFtcyxbZS54YXhpcy5yMmwobC54KSpyWzBdLGUueWF4aXMucjJsKGwueSkqclsxXSxlLnpheGlzLnIybChsLnopKnJbMl1dKSxuKHQuZ3JhcGhEaXYsbCxzLHQuaWQsbC5feGEsbC5feWEpKX19fSx7Ii4uLy4uL3Bsb3RzL2dsM2QvcHJvamVjdCI6NjE2LCIuLi9hbm5vdGF0aW9ucy9kcmF3IjozNTZ9XSwzNjM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcmVnaXN0cnkiKSxpPXQoIi4uLy4uL2xpYiIpO2UuZXhwb3J0cz17bW9kdWxlVHlwZToiY29tcG9uZW50IixuYW1lOiJhbm5vdGF0aW9uczNkIixzY2hlbWE6e3N1YnBsb3RzOntzY2VuZTp7YW5ub3RhdGlvbnM6dCgiLi9hdHRyaWJ1dGVzIil9fX0sbGF5b3V0QXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxoYW5kbGVEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksaW5jbHVkZUJhc2VQbG90OmZ1bmN0aW9uKHQsZSl7dmFyIHI9bi5zdWJwbG90c1JlZ2lzdHJ5LmdsM2Q7aWYoIXIpcmV0dXJuO2Zvcih2YXIgYT1yLmF0dHJSZWdleCxvPU9iamVjdC5rZXlzKHQpLHM9MDtzPG8ubGVuZ3RoO3MrKyl7dmFyIGw9b1tzXTthLnRlc3QobCkmJih0W2xdLmFubm90YXRpb25zfHxbXSkubGVuZ3RoJiYoaS5wdXNoVW5pcXVlKGUuX2Jhc2VQbG90TW9kdWxlcyxyKSxpLnB1c2hVbmlxdWUoZS5fc3VicGxvdHMuZ2wzZCxsKSl9fSxjb252ZXJ0OnQoIi4vY29udmVydCIpLGRyYXc6dCgiLi9kcmF3Iil9fSx7Ii4uLy4uL2xpYiI6NTE1LCIuLi8uLi9yZWdpc3RyeSI6NjQ3LCIuL2F0dHJpYnV0ZXMiOjM1OSwiLi9jb252ZXJ0IjozNjAsIi4vZGVmYXVsdHMiOjM2MSwiLi9kcmF3IjozNjJ9XSwzNjQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIndvcmxkLWNhbGVuZGFycy9kaXN0L21haW4iKSx0KCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9wbHVzIiksdCgid29ybGQtY2FsZW5kYXJzL2Rpc3QvY2FsZW5kYXJzL2NoaW5lc2UiKSx0KCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9jYWxlbmRhcnMvY29wdGljIiksdCgid29ybGQtY2FsZW5kYXJzL2Rpc3QvY2FsZW5kYXJzL2Rpc2N3b3JsZCIpLHQoIndvcmxkLWNhbGVuZGFycy9kaXN0L2NhbGVuZGFycy9ldGhpb3BpYW4iKSx0KCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9jYWxlbmRhcnMvaGVicmV3IiksdCgid29ybGQtY2FsZW5kYXJzL2Rpc3QvY2FsZW5kYXJzL2lzbGFtaWMiKSx0KCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9jYWxlbmRhcnMvanVsaWFuIiksdCgid29ybGQtY2FsZW5kYXJzL2Rpc3QvY2FsZW5kYXJzL21heWFuIiksdCgid29ybGQtY2FsZW5kYXJzL2Rpc3QvY2FsZW5kYXJzL25hbmFrc2hhaGkiKSx0KCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9jYWxlbmRhcnMvbmVwYWxpIiksdCgid29ybGQtY2FsZW5kYXJzL2Rpc3QvY2FsZW5kYXJzL3BlcnNpYW4iKSx0KCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9jYWxlbmRhcnMvdGFpd2FuIiksdCgid29ybGQtY2FsZW5kYXJzL2Rpc3QvY2FsZW5kYXJzL3RoYWkiKSx0KCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9jYWxlbmRhcnMvdW1tYWxxdXJhIil9LHsid29ybGQtY2FsZW5kYXJzL2Rpc3QvY2FsZW5kYXJzL2NoaW5lc2UiOjMzMywid29ybGQtY2FsZW5kYXJzL2Rpc3QvY2FsZW5kYXJzL2NvcHRpYyI6MzM0LCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9jYWxlbmRhcnMvZGlzY3dvcmxkIjozMzUsIndvcmxkLWNhbGVuZGFycy9kaXN0L2NhbGVuZGFycy9ldGhpb3BpYW4iOjMzNiwid29ybGQtY2FsZW5kYXJzL2Rpc3QvY2FsZW5kYXJzL2hlYnJldyI6MzM3LCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9jYWxlbmRhcnMvaXNsYW1pYyI6MzM4LCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9jYWxlbmRhcnMvanVsaWFuIjozMzksIndvcmxkLWNhbGVuZGFycy9kaXN0L2NhbGVuZGFycy9tYXlhbiI6MzQwLCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9jYWxlbmRhcnMvbmFuYWtzaGFoaSI6MzQxLCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9jYWxlbmRhcnMvbmVwYWxpIjozNDIsIndvcmxkLWNhbGVuZGFycy9kaXN0L2NhbGVuZGFycy9wZXJzaWFuIjozNDMsIndvcmxkLWNhbGVuZGFycy9kaXN0L2NhbGVuZGFycy90YWl3YW4iOjM0NCwid29ybGQtY2FsZW5kYXJzL2Rpc3QvY2FsZW5kYXJzL3RoYWkiOjM0NSwid29ybGQtY2FsZW5kYXJzL2Rpc3QvY2FsZW5kYXJzL3VtbWFscXVyYSI6MzQ2LCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9tYWluIjozNDcsIndvcmxkLWNhbGVuZGFycy9kaXN0L3BsdXMiOjM0OH1dLDM2NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2NhbGVuZGFycyIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIiksbz1hLkVQT0NISkQscz1hLk9ORURBWSxsPXt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6aS5zb3J0T2JqZWN0S2V5cyhuLmNhbGVuZGFycyksZWRpdFR5cGU6ImNhbGMiLGRmbHQ6ImdyZWdvcmlhbiJ9LGM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGE9e307cmV0dXJuIGFbcl09bCxpLmNvZXJjZSh0LGUsYSxyLG4pfSx1PXtkOnswOiJkZCIsIi0iOiJkIn0sZTp7MDoiZCIsIi0iOiJkIn0sYTp7MDoiRCIsIi0iOiJEIn0sQTp7MDoiREQiLCItIjoiREQifSxqOnswOiJvbyIsIi0iOiJvIn0sVzp7MDoid3ciLCItIjoidyJ9LG06ezA6Im1tIiwiLSI6Im0ifSxiOnswOiJNIiwiLSI6Ik0ifSxCOnswOiJNTSIsIi0iOiJNTSJ9LHk6ezA6Inl5IiwiLSI6Inl5In0sWTp7MDoieXl5eSIsIi0iOiJ5eXl5In0sVToiIyMiLHc6IiMjIixjOnswOiJEIE0gZCAlWCB5eXl5IiwiLSI6IkQgTSBkICVYIHl5eXkifSx4OnswOiJtbS9kZC95eXl5IiwiLSI6Im1tL2RkL3l5eXkifX07dmFyIGY9e307ZnVuY3Rpb24gaCh0KXt2YXIgZT1mW3RdO3JldHVybiBlfHwoZT1mW3RdPW4uaW5zdGFuY2UodCkpfWZ1bmN0aW9uIHAodCl7cmV0dXJuIGkuZXh0ZW5kRmxhdCh7fSxsLHtkZXNjcmlwdGlvbjp0fSl9ZnVuY3Rpb24gZCh0KXtyZXR1cm4iU2V0cyB0aGUgY2FsZW5kYXIgc3lzdGVtIHRvIHVzZSB3aXRoIGAiK3QrImAgZGF0ZSBkYXRhLiJ9dmFyIG09e3hjYWxlbmRhcjpwKGQoIngiKSl9LGc9aS5leHRlbmRGbGF0KHt9LG0se3ljYWxlbmRhcjpwKGQoInkiKSl9KSx2PWkuZXh0ZW5kRmxhdCh7fSxnLHt6Y2FsZW5kYXI6cChkKCJ6IikpfSkseT1wKFsiU2V0cyB0aGUgY2FsZW5kYXIgc3lzdGVtIHRvIHVzZSBmb3IgYHJhbmdlYCBhbmQgYHRpY2swYCIsImlmIHRoaXMgaXMgYSBkYXRlIGF4aXMuIFRoaXMgZG9lcyBub3Qgc2V0IHRoZSBjYWxlbmRhciBmb3IiLCJpbnRlcnByZXRpbmcgZGF0YSBvbiB0aGlzIGF4aXMsIHRoYXQncyBzcGVjaWZpZWQgaW4gdGhlIHRyYWNlIiwib3IgdmlhIHRoZSBnbG9iYWwgYGxheW91dC5jYWxlbmRhcmAiXS5qb2luKCIgIikpO2UuZXhwb3J0cz17bW9kdWxlVHlwZToiY29tcG9uZW50IixuYW1lOiJjYWxlbmRhcnMiLHNjaGVtYTp7dHJhY2VzOntzY2F0dGVyOmcsYmFyOmcsYm94OmcsaGVhdG1hcDpnLGNvbnRvdXI6ZyxoaXN0b2dyYW06ZyxoaXN0b2dyYW0yZDpnLGhpc3RvZ3JhbTJkY29udG91cjpnLHNjYXR0ZXIzZDp2LHN1cmZhY2U6dixtZXNoM2Q6dixzY2F0dGVyZ2w6ZyxvaGxjOm0sY2FuZGxlc3RpY2s6bX0sbGF5b3V0OntjYWxlbmRhcjpwKFsiU2V0cyB0aGUgZGVmYXVsdCBjYWxlbmRhciBzeXN0ZW0gdG8gdXNlIGZvciBpbnRlcnByZXRpbmcgYW5kIiwiZGlzcGxheWluZyBkYXRlcyB0aHJvdWdob3V0IHRoZSBwbG90LiJdLmpvaW4oIiAiKSl9LHN1YnBsb3RzOnt4YXhpczp7Y2FsZW5kYXI6eX0seWF4aXM6e2NhbGVuZGFyOnl9LHNjZW5lOnt4YXhpczp7Y2FsZW5kYXI6eX0seWF4aXM6e2NhbGVuZGFyOnl9LHpheGlzOntjYWxlbmRhcjp5fX0scG9sYXI6e3JhZGlhbGF4aXM6e2NhbGVuZGFyOnl9fX0sdHJhbnNmb3Jtczp7ZmlsdGVyOnt2YWx1ZWNhbGVuZGFyOnAoWyJXQVJOSU5HOiBBbGwgdHJhbnNmb3JtcyBhcmUgZGVwcmVjYXRlZCBhbmQgbWF5IGJlIHJlbW92ZWQgZnJvbSB0aGUgQVBJIGluIG5leHQgbWFqb3IgdmVyc2lvbi4iLCJTZXRzIHRoZSBjYWxlbmRhciBzeXN0ZW0gdG8gdXNlIGZvciBgdmFsdWVgLCBpZiBpdCBpcyBhIGRhdGUuIl0uam9pbigiICIpKSx0YXJnZXRjYWxlbmRhcjpwKFsiV0FSTklORzogQWxsIHRyYW5zZm9ybXMgYXJlIGRlcHJlY2F0ZWQgYW5kIG1heSBiZSByZW1vdmVkIGZyb20gdGhlIEFQSSBpbiBuZXh0IG1ham9yIHZlcnNpb24uIiwiU2V0cyB0aGUgY2FsZW5kYXIgc3lzdGVtIHRvIHVzZSBmb3IgYHRhcmdldGAsIGlmIGl0IGlzIGFuIiwiYXJyYXkgb2YgZGF0ZXMuIElmIGB0YXJnZXRgIGlzIGEgc3RyaW5nIChlZyAqeCopIHdlIHVzZSB0aGUiLCJjb3JyZXNwb25kaW5nIHRyYWNlIGF0dHJpYnV0ZSAoZWcgYHhjYWxlbmRhcmApIGlmIGl0IGV4aXN0cywiLCJldmVuIGlmIGB0YXJnZXRjYWxlbmRhcmAgaXMgcHJvdmlkZWQuIl0uam9pbigiICIpKX19fSxsYXlvdXRBdHRyaWJ1dGVzOmwsaGFuZGxlRGVmYXVsdHM6YyxoYW5kbGVUcmFjZURlZmF1bHRzOmZ1bmN0aW9uKHQsZSxyLG4pe2Zvcih2YXIgaT0wO2k8ci5sZW5ndGg7aSsrKWModCxlLHJbaV0rImNhbGVuZGFyIixuLmNhbGVuZGFyKX0sQ0FOT05JQ0FMX1NVTkRBWTp7Y2hpbmVzZToiMjAwMC0wMS0wMiIsY29wdGljOiIyMDAwLTAxLTAzIixkaXNjd29ybGQ6IjIwMDAtMDEtMDMiLGV0aGlvcGlhbjoiMjAwMC0wMS0wNSIsaGVicmV3OiI1MDAwLTAxLTAxIixpc2xhbWljOiIxMDAwLTAxLTAyIixqdWxpYW46IjIwMDAtMDEtMDMiLG1heWFuOiI1MDAwLTAxLTAxIixuYW5ha3NoYWhpOiIxMDAwLTAxLTA1IixuZXBhbGk6IjIwMDAtMDEtMDUiLHBlcnNpYW46IjEwMDAtMDEtMDEiLGphbGFsaToiMTAwMC0wMS0wMSIsdGFpd2FuOiIxMDAwLTAxLTA0Iix0aGFpOiIyMDAwLTAxLTA0Iix1bW1hbHF1cmE6IjE0MDAtMDEtMDYifSxDQU5PTklDQUxfVElDSzp7Y2hpbmVzZToiMjAwMC0wMS0wMSIsY29wdGljOiIyMDAwLTAxLTAxIixkaXNjd29ybGQ6IjIwMDAtMDEtMDEiLGV0aGlvcGlhbjoiMjAwMC0wMS0wMSIsaGVicmV3OiI1MDAwLTAxLTAxIixpc2xhbWljOiIxMDAwLTAxLTAxIixqdWxpYW46IjIwMDAtMDEtMDEiLG1heWFuOiI1MDAwLTAxLTAxIixuYW5ha3NoYWhpOiIxMDAwLTAxLTAxIixuZXBhbGk6IjIwMDAtMDEtMDEiLHBlcnNpYW46IjEwMDAtMDEtMDEiLGphbGFsaToiMTAwMC0wMS0wMSIsdGFpd2FuOiIxMDAwLTAxLTAxIix0aGFpOiIyMDAwLTAxLTAxIix1bW1hbHF1cmE6IjE0MDAtMDEtMDEifSxERkxUUkFOR0U6e2NoaW5lc2U6WyIyMDAwLTAxLTAxIiwiMjAwMS0wMS0wMSJdLGNvcHRpYzpbIjE3MDAtMDEtMDEiLCIxNzAxLTAxLTAxIl0sZGlzY3dvcmxkOlsiMTgwMC0wMS0wMSIsIjE4MDEtMDEtMDEiXSxldGhpb3BpYW46WyIyMDAwLTAxLTAxIiwiMjAwMS0wMS0wMSJdLGhlYnJldzpbIjU3MDAtMDEtMDEiLCI1NzAxLTAxLTAxIl0saXNsYW1pYzpbIjE0MDAtMDEtMDEiLCIxNDAxLTAxLTAxIl0sanVsaWFuOlsiMjAwMC0wMS0wMSIsIjIwMDEtMDEtMDEiXSxtYXlhbjpbIjUyMDAtMDEtMDEiLCI1MjAxLTAxLTAxIl0sbmFuYWtzaGFoaTpbIjA1MDAtMDEtMDEiLCIwNTAxLTAxLTAxIl0sbmVwYWxpOlsiMjAwMC0wMS0wMSIsIjIwMDEtMDEtMDEiXSxwZXJzaWFuOlsiMTQwMC0wMS0wMSIsIjE0MDEtMDEtMDEiXSxqYWxhbGk6WyIxNDAwLTAxLTAxIiwiMTQwMS0wMS0wMSJdLHRhaXdhbjpbIjAxMDAtMDEtMDEiLCIwMTAxLTAxLTAxIl0sdGhhaTpbIjI1MDAtMDEtMDEiLCIyNTAxLTAxLTAxIl0sdW1tYWxxdXJhOlsiMTQwMC0wMS0wMSIsIjE0MDEtMDEtMDEiXX0sZ2V0Q2FsOmgsd29ybGRDYWxGbXQ6ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbixpLGEsbCxjLGY9TWF0aC5mbG9vcigoZSsuMDUpL3MpK28scD1oKHIpLmZyb21KRChmKSxkPTA7LTEhPT0oZD10LmluZGV4T2YoIiUiLGQpKTspIjAiPT09KG49dC5jaGFyQXQoZCsxKSl8fCItIj09PW58fCJfIj09PW4/KGE9MyxpPXQuY2hhckF0KGQrMiksIl8iPT09biYmKG49Ii0iKSk6KGk9bixuPSIwIixhPTIpLChsPXVbaV0pPyhjPSIjIyI9PT1sPyIjIyI6cC5mb3JtYXREYXRlKGxbbl0pLHQ9dC5zdWJzdHIoMCxkKStjK3Quc3Vic3RyKGQrYSksZCs9Yy5sZW5ndGgpOmQrPWE7cmV0dXJuIHR9fX0seyIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo0OTEsIi4uLy4uL2xpYiI6NTE1LCIuL2NhbGVuZGFycyI6MzY0fV0sMzY2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3IuZGVmYXVsdHM9WyIjMWY3N2I0IiwiI2ZmN2YwZSIsIiMyY2EwMmMiLCIjZDYyNzI4IiwiIzk0NjdiZCIsIiM4YzU2NGIiLCIjZTM3N2MyIiwiIzdmN2Y3ZiIsIiNiY2JkMjIiLCIjMTdiZWNmIl0sci5kZWZhdWx0TGluZT0iIzQ0NCIsci5saWdodExpbmU9IiNlZWUiLHIuYmFja2dyb3VuZD0iI2ZmZiIsci5ib3JkZXJMaW5lPSIjQkVDOEQ5IixyLmxpZ2h0RnJhY3Rpb249MWUzLzExfSx7fV0sMzY3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInRpbnljb2xvcjIiKSxpPXQoImZhc3QtaXNudW1lcmljIiksYT10KCIuLi8uLi9saWIvYXJyYXkiKS5pc1R5cGVkQXJyYXksbz1lLmV4cG9ydHM9e30scz10KCIuL2F0dHJpYnV0ZXMiKTtvLmRlZmF1bHRzPXMuZGVmYXVsdHM7dmFyIGw9by5kZWZhdWx0TGluZT1zLmRlZmF1bHRMaW5lO28ubGlnaHRMaW5lPXMubGlnaHRMaW5lO3ZhciBjPW8uYmFja2dyb3VuZD1zLmJhY2tncm91bmQ7ZnVuY3Rpb24gdSh0KXtpZihpKHQpfHwic3RyaW5nIiE9dHlwZW9mIHQpcmV0dXJuIHQ7dmFyIGU9dC50cmltKCk7aWYoInJnYiIhPT1lLnN1YnN0cigwLDMpKXJldHVybiB0O3ZhciByPWUubWF0Y2goL15yZ2JhP1xzKlwoKFteKCldKilcKSQvKTtpZighcilyZXR1cm4gdDt2YXIgbj1yWzFdLnRyaW0oKS5zcGxpdCgvXHMqW1xzLF1ccyovKSxhPSJhIj09PWUuY2hhckF0KDMpJiY0PT09bi5sZW5ndGg7aWYoIWEmJjMhPT1uLmxlbmd0aClyZXR1cm4gdDtmb3IodmFyIG89MDtvPG4ubGVuZ3RoO28rKyl7aWYoIW5bb10ubGVuZ3RoKXJldHVybiB0O2lmKG5bb109TnVtYmVyKG5bb10pLCEobltvXT49MCkpcmV0dXJuIHQ7aWYoMz09PW8pbltvXT4xJiYobltvXT0xKTtlbHNlIGlmKG5bb10+PTEpcmV0dXJuIHR9dmFyIHM9TWF0aC5yb3VuZCgyNTUqblswXSkrIiwgIitNYXRoLnJvdW5kKDI1NSpuWzFdKSsiLCAiK01hdGgucm91bmQoMjU1Km5bMl0pO3JldHVybiBhPyJyZ2JhKCIrcysiLCAiK25bM10rIikiOiJyZ2IoIitzKyIpIn1vLnRpbnlSR0I9ZnVuY3Rpb24odCl7dmFyIGU9dC50b1JnYigpO3JldHVybiJyZ2IoIitNYXRoLnJvdW5kKGUucikrIiwgIitNYXRoLnJvdW5kKGUuZykrIiwgIitNYXRoLnJvdW5kKGUuYikrIikifSxvLnJnYj1mdW5jdGlvbih0KXtyZXR1cm4gby50aW55UkdCKG4odCkpfSxvLm9wYWNpdHk9ZnVuY3Rpb24odCl7cmV0dXJuIHQ/bih0KS5nZXRBbHBoYSgpOjB9LG8uYWRkT3BhY2l0eT1mdW5jdGlvbih0LGUpe3ZhciByPW4odCkudG9SZ2IoKTtyZXR1cm4icmdiYSgiK01hdGgucm91bmQoci5yKSsiLCAiK01hdGgucm91bmQoci5nKSsiLCAiK01hdGgucm91bmQoci5iKSsiLCAiK2UrIikifSxvLmNvbWJpbmU9ZnVuY3Rpb24odCxlKXt2YXIgcj1uKHQpLnRvUmdiKCk7aWYoMT09PXIuYSlyZXR1cm4gbih0KS50b1JnYlN0cmluZygpO3ZhciBpPW4oZXx8YykudG9SZ2IoKSxhPTE9PT1pLmE/aTp7cjoyNTUqKDEtaS5hKStpLnIqaS5hLGc6MjU1KigxLWkuYSkraS5nKmkuYSxiOjI1NSooMS1pLmEpK2kuYippLmF9LG89e3I6YS5yKigxLXIuYSkrci5yKnIuYSxnOmEuZyooMS1yLmEpK3IuZypyLmEsYjphLmIqKDEtci5hKStyLmIqci5hfTtyZXR1cm4gbihvKS50b1JnYlN0cmluZygpfSxvLmNvbnRyYXN0PWZ1bmN0aW9uKHQsZSxyKXt2YXIgaT1uKHQpO3JldHVybiAxIT09aS5nZXRBbHBoYSgpJiYoaT1uKG8uY29tYmluZSh0LGMpKSksKGkuaXNEYXJrKCk/ZT9pLmxpZ2h0ZW4oZSk6YzpyP2kuZGFya2VuKHIpOmwpLnRvU3RyaW5nKCl9LG8uc3Ryb2tlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9bihlKTt0LnN0eWxlKHtzdHJva2U6by50aW55UkdCKHIpLCJzdHJva2Utb3BhY2l0eSI6ci5nZXRBbHBoYSgpfSl9LG8uZmlsbD1mdW5jdGlvbih0LGUpe3ZhciByPW4oZSk7dC5zdHlsZSh7ZmlsbDpvLnRpbnlSR0IociksImZpbGwtb3BhY2l0eSI6ci5nZXRBbHBoYSgpfSl9LG8uY2xlYW49ZnVuY3Rpb24odCl7aWYodCYmIm9iamVjdCI9PXR5cGVvZiB0KXt2YXIgZSxyLG4saSxzPU9iamVjdC5rZXlzKHQpO2ZvcihlPTA7ZTxzLmxlbmd0aDtlKyspaWYoaT10W249c1tlXV0sImNvbG9yIj09PW4uc3Vic3RyKG4ubGVuZ3RoLTUpKWlmKEFycmF5LmlzQXJyYXkoaSkpZm9yKHI9MDtyPGkubGVuZ3RoO3IrKylpW3JdPXUoaVtyXSk7ZWxzZSB0W25dPXUoaSk7ZWxzZSBpZigiY29sb3JzY2FsZSI9PT1uLnN1YnN0cihuLmxlbmd0aC0xMCkmJkFycmF5LmlzQXJyYXkoaSkpZm9yKHI9MDtyPGkubGVuZ3RoO3IrKylBcnJheS5pc0FycmF5KGlbcl0pJiYoaVtyXVsxXT11KGlbcl1bMV0pKTtlbHNlIGlmKEFycmF5LmlzQXJyYXkoaSkpe3ZhciBsPWlbMF07aWYoIUFycmF5LmlzQXJyYXkobCkmJmwmJiJvYmplY3QiPT10eXBlb2YgbClmb3Iocj0wO3I8aS5sZW5ndGg7cisrKW8uY2xlYW4oaVtyXSl9ZWxzZSBpJiYib2JqZWN0Ij09dHlwZW9mIGkmJiFhKGkpJiZvLmNsZWFuKGkpfX19LHsiLi4vLi4vbGliL2FycmF5Ijo0OTcsIi4vYXR0cmlidXRlcyI6MzY2LCJmYXN0LWlzbnVtZXJpYyI6MTkwLHRpbnljb2xvcjI6MzEzfV0sMzY4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9sYXlvdXRfYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxvPXQoIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiKS5vdmVycmlkZUFsbDtlLmV4cG9ydHM9byh7b3JpZW50YXRpb246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImgiLCJ2Il0sZGZsdDoidiJ9LHRoaWNrbmVzc21vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImZyYWN0aW9uIiwicGl4ZWxzIl0sZGZsdDoicGl4ZWxzIn0sdGhpY2tuZXNzOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MzB9LGxlbm1vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImZyYWN0aW9uIiwicGl4ZWxzIl0sZGZsdDoiZnJhY3Rpb24ifSxsZW46e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxfSx4Ont2YWxUeXBlOiJudW1iZXIiLG1pbjotMixtYXg6M30seGFuY2hvcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsibGVmdCIsImNlbnRlciIsInJpZ2h0Il19LHhwYWQ6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxMH0seTp7dmFsVHlwZToibnVtYmVyIixtaW46LTIsbWF4OjN9LHlhbmNob3I6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInRvcCIsIm1pZGRsZSIsImJvdHRvbSJdfSx5cGFkOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MTB9LG91dGxpbmVjb2xvcjpuLmxpbmVjb2xvcixvdXRsaW5ld2lkdGg6bi5saW5ld2lkdGgsYm9yZGVyY29sb3I6bi5saW5lY29sb3IsYm9yZGVyd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDowfSxiZ2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDoicmdiYSgwLDAsMCwwKSJ9LHRpY2ttb2RlOm4udGlja21vZGUsbnRpY2tzOm4ubnRpY2tzLHRpY2swOm4udGljazAsZHRpY2s6bi5kdGljayx0aWNrdmFsczpuLnRpY2t2YWxzLHRpY2t0ZXh0Om4udGlja3RleHQsdGlja3M6YSh7fSxuLnRpY2tzLHtkZmx0OiIifSksdGlja2xhYmVsb3ZlcmZsb3c6YSh7fSxuLnRpY2tsYWJlbG92ZXJmbG93LHt9KSx0aWNrbGFiZWxwb3NpdGlvbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsib3V0c2lkZSIsImluc2lkZSIsIm91dHNpZGUgdG9wIiwiaW5zaWRlIHRvcCIsIm91dHNpZGUgbGVmdCIsImluc2lkZSBsZWZ0Iiwib3V0c2lkZSByaWdodCIsImluc2lkZSByaWdodCIsIm91dHNpZGUgYm90dG9tIiwiaW5zaWRlIGJvdHRvbSJdLGRmbHQ6Im91dHNpZGUifSx0aWNrbGVuOm4udGlja2xlbix0aWNrd2lkdGg6bi50aWNrd2lkdGgsdGlja2NvbG9yOm4udGlja2NvbG9yLHRpY2tsYWJlbHN0ZXA6bi50aWNrbGFiZWxzdGVwLHNob3d0aWNrbGFiZWxzOm4uc2hvd3RpY2tsYWJlbHMsdGlja2ZvbnQ6aSh7fSksdGlja2FuZ2xlOm4udGlja2FuZ2xlLHRpY2tmb3JtYXQ6bi50aWNrZm9ybWF0LHRpY2tmb3JtYXRzdG9wczpuLnRpY2tmb3JtYXRzdG9wcyx0aWNrcHJlZml4Om4udGlja3ByZWZpeCxzaG93dGlja3ByZWZpeDpuLnNob3d0aWNrcHJlZml4LHRpY2tzdWZmaXg6bi50aWNrc3VmZml4LHNob3d0aWNrc3VmZml4Om4uc2hvd3RpY2tzdWZmaXgsc2VwYXJhdGV0aG91c2FuZHM6bi5zZXBhcmF0ZXRob3VzYW5kcyxleHBvbmVudGZvcm1hdDpuLmV4cG9uZW50Zm9ybWF0LG1pbmV4cG9uZW50Om4ubWluZXhwb25lbnQsc2hvd2V4cG9uZW50Om4uc2hvd2V4cG9uZW50LHRpdGxlOnt0ZXh0Ont2YWxUeXBlOiJzdHJpbmcifSxmb250Omkoe30pLHNpZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInJpZ2h0IiwidG9wIiwiYm90dG9tIl19fSxfZGVwcmVjYXRlZDp7dGl0bGU6e3ZhbFR5cGU6InN0cmluZyJ9LHRpdGxlZm9udDppKHt9KSx0aXRsZXNpZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInJpZ2h0IiwidG9wIiwiYm90dG9tIl0sZGZsdDoidG9wIn19fSwiY29sb3JiYXJzIiwiZnJvbS1yb290Iil9LHsiLi4vLi4vbGliL2V4dGVuZCI6NTA1LCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIjo1NDgsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9sYXlvdXRfYXR0cmlidXRlcyI6NTc5LCIuLi8uLi9wbG90cy9mb250X2F0dHJpYnV0ZXMiOjU5NH1dLDM2OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2NuOntjb2xvcmJhcjoiY29sb3JiYXIiLGNiYmc6ImNiYmciLGNiZmlsbDoiY2JmaWxsIixjYmZpbGxzOiJjYmZpbGxzIixjYmxpbmU6ImNibGluZSIsY2JsaW5lczoiY2JsaW5lcyIsY2JheGlzOiJjYmF4aXMiLGNidGl0bGV1bnNoaWZ0OiJjYnRpdGxldW5zaGlmdCIsY2J0aXRsZToiY2J0aXRsZSIsY2JvdXRsaW5lOiJjYm91dGxpbmUiLGNyaXNwOiJjcmlzcCIsanNQbGFjZWhvbGRlcjoianMtcGxhY2Vob2xkZXIifX19LHt9XSwzNzA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIiksYT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vdGlja192YWx1ZV9kZWZhdWx0cyIpLG89dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL3RpY2tfbWFya19kZWZhdWx0cyIpLHM9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL3RpY2tfbGFiZWxfZGVmYXVsdHMiKSxsPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9wcmVmaXhfc3VmZml4X2RlZmF1bHRzIiksYz10KCIuL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciB1PWkubmV3Q29udGFpbmVyKGUsImNvbG9yYmFyIiksZj10LmNvbG9yYmFyfHx7fTtmdW5jdGlvbiBoKHQsZSl7cmV0dXJuIG4uY29lcmNlKGYsdSxjLHQsZSl9dmFyIHA9ci5tYXJnaW58fHt0OjAsYjowLGw6MCxyOjB9LGQ9ci53aWR0aC1wLmwtcC5yLG09ci5oZWlnaHQtcC50LXAuYixnPSJ2Ij09PWgoIm9yaWVudGF0aW9uIiksdj1oKCJ0aGlja25lc3Ntb2RlIik7aCgidGhpY2tuZXNzIiwiZnJhY3Rpb24iPT09dj8zMC8oZz9kOm0pOjMwKTt2YXIgeT1oKCJsZW5tb2RlIik7aCgibGVuIiwiZnJhY3Rpb24iPT09eT8xOmc/bTpkKSxoKCJ4IixnPzEuMDI6LjUpLGgoInhhbmNob3IiLGc/ImxlZnQiOiJjZW50ZXIiKSxoKCJ4cGFkIiksaCgieSIsZz8uNToxLjAyKSxoKCJ5YW5jaG9yIixnPyJtaWRkbGUiOiJib3R0b20iKSxoKCJ5cGFkIiksbi5ub25lT3JBbGwoZix1LFsieCIsInkiXSksaCgib3V0bGluZWNvbG9yIiksaCgib3V0bGluZXdpZHRoIiksaCgiYm9yZGVyY29sb3IiKSxoKCJib3JkZXJ3aWR0aCIpLGgoImJnY29sb3IiKTt2YXIgeD1uLmNvZXJjZShmLHUse3RpY2tsYWJlbHBvc2l0aW9uOnt2YWxUeXBlOiJlbnVtZXJhdGVkIixkZmx0OiJvdXRzaWRlIix2YWx1ZXM6Zz9bIm91dHNpZGUiLCJpbnNpZGUiLCJvdXRzaWRlIHRvcCIsImluc2lkZSB0b3AiLCJvdXRzaWRlIGJvdHRvbSIsImluc2lkZSBib3R0b20iXTpbIm91dHNpZGUiLCJpbnNpZGUiLCJvdXRzaWRlIGxlZnQiLCJpbnNpZGUgbGVmdCIsIm91dHNpZGUgcmlnaHQiLCJpbnNpZGUgcmlnaHQiXX19LCJ0aWNrbGFiZWxwb3NpdGlvbiIpO2goInRpY2tsYWJlbG92ZXJmbG93IiwtMSE9PXguaW5kZXhPZigiaW5zaWRlIik/ImhpZGUgcGFzdCBkb21haW4iOiJoaWRlIHBhc3QgZGl2IiksYShmLHUsaCwibGluZWFyIik7dmFyIGI9ci5mb250LF89e291dGVyVGlja3M6ITEsZm9udDpifTstMSE9PXguaW5kZXhPZigiaW5zaWRlIikmJihfLmJnQ29sb3I9ImJsYWNrIiksbChmLHUsaCwibGluZWFyIixfKSxzKGYsdSxoLCJsaW5lYXIiLF8pLG8oZix1LGgsImxpbmVhciIsXyksaCgidGl0bGUudGV4dCIsci5fZGZsdFRpdGxlLmNvbG9yYmFyKTt2YXIgdz11LnRpY2tmb250LFQ9bi5leHRlbmRGbGF0KHt9LHcse2NvbG9yOmIuY29sb3Isc2l6ZTpuLmJpZ0ZvbnQody5zaXplKX0pO24uY29lcmNlRm9udChoLCJ0aXRsZS5mb250IixUKSxoKCJ0aXRsZS5zaWRlIixnPyJ0b3AiOiJyaWdodCIpfX0seyIuLi8uLi9saWIiOjUxNSwiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6NTU1LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vcHJlZml4X3N1ZmZpeF9kZWZhdWx0cyI6NTgzLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vdGlja19sYWJlbF9kZWZhdWx0cyI6NTg3LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vdGlja19tYXJrX2RlZmF1bHRzIjo1ODgsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi90aWNrX3ZhbHVlX2RlZmF1bHRzIjo1ODksIi4vYXR0cmlidXRlcyI6MzY4fV0sMzcxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoInRpbnljb2xvcjIiKSxhPXQoIi4uLy4uL3Bsb3RzL3Bsb3RzIiksbz10KCIuLi8uLi9yZWdpc3RyeSIpLHM9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxsPXQoIi4uL2RyYWdlbGVtZW50IiksYz10KCIuLi8uLi9saWIiKSx1PWMuc3RyVHJhbnNsYXRlLGY9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsaD10KCIuLi8uLi9saWIvc2V0Y3Vyc29yIikscD10KCIuLi9kcmF3aW5nIiksZD10KCIuLi9jb2xvciIpLG09dCgiLi4vdGl0bGVzIiksZz10KCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiKSx2PXQoIi4uL2NvbG9yc2NhbGUvaGVscGVycyIpLmZsaXBTY2FsZSx5PXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2RlZmF1bHRzIikseD10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vcG9zaXRpb25fZGVmYXVsdHMiKSxiPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9sYXlvdXRfYXR0cmlidXRlcyIpLF89dCgiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCIpLHc9Xy5MSU5FX1NQQUNJTkcsVD1fLkZST01fVEwsaz1fLkZST01fQlIsQT10KCIuL2NvbnN0YW50cyIpLmNuO2UuZXhwb3J0cz17ZHJhdzpmdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0Ll9pbmZvbGF5ZXIuc2VsZWN0QWxsKCJnLiIrQS5jb2xvcmJhcikuZGF0YShmdW5jdGlvbih0KXt2YXIgZSxyLG4saSxhPXQuX2Z1bGxMYXlvdXQsbz10LmNhbGNkYXRhLHM9W107ZnVuY3Rpb24gbCh0KXtyZXR1cm4gZih0LHtfZmlsbGNvbG9yOm51bGwsX2xpbmU6e2NvbG9yOm51bGwsd2lkdGg6bnVsbCxkYXNoOm51bGx9LF9sZXZlbHM6e3N0YXJ0Om51bGwsZW5kOm51bGwsc2l6ZTpudWxsfSxfZmlsbGxldmVsczpudWxsLF9maWxsZ3JhZGllbnQ6bnVsbCxfenJhbmdlOm51bGx9KX1mdW5jdGlvbiBjKCl7ImZ1bmN0aW9uIj09dHlwZW9mIGkuY2FsYz9pLmNhbGModCxuLGUpOihlLl9maWxsZ3JhZGllbnQ9ci5yZXZlcnNlc2NhbGU/dihyLmNvbG9yc2NhbGUpOnIuY29sb3JzY2FsZSxlLl96cmFuZ2U9W3JbaS5taW5dLHJbaS5tYXhdXSl9Zm9yKHZhciB1PTA7dTxvLmxlbmd0aDt1Kyspe3ZhciBoPW9bdV0scD0obj1oWzBdLnRyYWNlKS5fbW9kdWxlLmNvbG9yYmFyO2lmKCEwPT09bi52aXNpYmxlJiZwKWZvcih2YXIgZD1BcnJheS5pc0FycmF5KHApLG09ZD9wOltwXSxnPTA7ZzxtLmxlbmd0aDtnKyspe3ZhciB5PShpPW1bZ10pLmNvbnRhaW5lcjsocj15P25beV06bikmJnIuc2hvd3NjYWxlJiYoKGU9bChyLmNvbG9yYmFyKSkuX2lkPSJjYiIrbi51aWQrKGQmJnk/Ii0iK3k6IiIpLGUuX3RyYWNlSW5kZXg9bi5pbmRleCxlLl9wcm9wUHJlZml4PSh5P3krIi4iOiIiKSsiY29sb3JiYXIuIixlLl9tZXRhPW4uX21ldGEsYygpLHMucHVzaChlKSl9fWZvcih2YXIgeCBpbiBhLl9jb2xvckF4ZXMpaWYoKHI9YVt4XSkuc2hvd3NjYWxlKXt2YXIgYj1hLl9jb2xvckF4ZXNbeF07KGU9bChyLmNvbG9yYmFyKSkuX2lkPSJjYiIreCxlLl9wcm9wUHJlZml4PXgrIi5jb2xvcmJhci4iLGUuX21ldGE9YS5fbWV0YSxpPXttaW46ImNtaW4iLG1heDoiY21heCJ9LCJoZWF0bWFwIiE9PWJbMF0mJihuPWJbMV0saS5jYWxjPW4uX21vZHVsZS5jb2xvcmJhci5jYWxjKSxjKCkscy5wdXNoKGUpfXJldHVybiBzfSh0KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuX2lkfSkpO2UuZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsKGZ1bmN0aW9uKHQpe3JldHVybiB0Ll9pZH0pKS5jbGFzc2VkKEEuY29sb3JiYXIsITApLGUuZWFjaCgoZnVuY3Rpb24oZSl7dmFyIHI9bi5zZWxlY3QodGhpcyk7Yy5lbnN1cmVTaW5nbGUociwicmVjdCIsQS5jYmJnKSxjLmVuc3VyZVNpbmdsZShyLCJnIixBLmNiZmlsbHMpLGMuZW5zdXJlU2luZ2xlKHIsImciLEEuY2JsaW5lcyksYy5lbnN1cmVTaW5nbGUociwiZyIsQS5jYmF4aXMsKGZ1bmN0aW9uKHQpe3QuY2xhc3NlZChBLmNyaXNwLCEwKX0pKSxjLmVuc3VyZVNpbmdsZShyLCJnIixBLmNidGl0bGV1bnNoaWZ0LChmdW5jdGlvbih0KXt0LmFwcGVuZCgiZyIpLmNsYXNzZWQoQS5jYnRpdGxlLCEwKX0pKSxjLmVuc3VyZVNpbmdsZShyLCJyZWN0IixBLmNib3V0bGluZSk7dmFyIHY9ZnVuY3Rpb24odCxlLHIpe3ZhciBvPSJ2Ij09PWUub3JpZW50YXRpb24sbD1lLmxlbixoPWUubGVubW9kZSx2PWUudGhpY2tuZXNzLF89ZS50aGlja25lc3Ntb2RlLE09ZS5vdXRsaW5ld2lkdGgsUz1lLmJvcmRlcndpZHRoLEU9ZS5iZ2NvbG9yLEw9ZS54YW5jaG9yLEM9ZS55YW5jaG9yLFA9ZS54cGFkLEk9ZS55cGFkLE89ZS54LHo9bz9lLnk6MS1lLnksRD1yLl9mdWxsTGF5b3V0LFI9RC5fc2l6ZSxGPWUuX2ZpbGxjb2xvcixCPWUuX2xpbmUsTj1lLnRpdGxlLGo9Ti5zaWRlLFU9ZS5fenJhbmdlfHxuLmV4dGVudCgoImZ1bmN0aW9uIj09dHlwZW9mIEY/RjpCLmNvbG9yKS5kb21haW4oKSksVj0iZnVuY3Rpb24iPT10eXBlb2YgQi5jb2xvcj9CLmNvbG9yOmZ1bmN0aW9uKCl7cmV0dXJuIEIuY29sb3J9LEg9ImZ1bmN0aW9uIj09dHlwZW9mIEY/RjpmdW5jdGlvbigpe3JldHVybiBGfSxxPWUuX2xldmVscyxHPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbixpLGE9ZS5fbGV2ZWxzLG89W10scz1bXSxsPWEuZW5kK2Euc2l6ZS8xMDAsYz1hLnNpemUsdT0xLjAwMSpyWzBdLS4wMDEqclsxXSxmPTEuMDAxKnJbMV0tLjAwMSpyWzBdO2ZvcihpPTA7aTwxZTUmJihuPWEuc3RhcnQraSpjLCEoYz4wP24+PWw6bjw9bCkpO2krKyluPnUmJm48ZiYmby5wdXNoKG4pO2lmKGUuX2ZpbGxncmFkaWVudClzPVswXTtlbHNlIGlmKCJmdW5jdGlvbiI9PXR5cGVvZiBlLl9maWxsY29sb3Ipe3ZhciBoPWUuX2ZpbGxsZXZlbHM7aWYoaClmb3IobD1oLmVuZCtoLnNpemUvMTAwLGM9aC5zaXplLGk9MDtpPDFlNSYmKG49aC5zdGFydCtpKmMsIShjPjA/bj49bDpuPD1sKSk7aSsrKW4+clswXSYmbjxyWzFdJiZzLnB1c2gobik7ZWxzZShzPW8ubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC1hLnNpemUvMn0pKSkucHVzaChzW3MubGVuZ3RoLTFdK2Euc2l6ZSl9ZWxzZSBlLl9maWxsY29sb3ImJiJzdHJpbmciPT10eXBlb2YgZS5fZmlsbGNvbG9yJiYocz1bMF0pO2Euc2l6ZTwwJiYoby5yZXZlcnNlKCkscy5yZXZlcnNlKCkpO3JldHVybntsaW5lOm8sZmlsbDpzfX0oMCxlLFUpLFk9Ry5maWxsLFc9Ry5saW5lLFg9TWF0aC5yb3VuZCh2KigiZnJhY3Rpb24iPT09Xz9vP1IudzpSLmg6MSkpLFo9WC8obz9SLnc6Ui5oKSxKPU1hdGgucm91bmQobCooImZyYWN0aW9uIj09PWg/bz9SLmg6Ui53OjEpKSxLPUovKG8/Ui5oOlIudyksUT1NYXRoLnJvdW5kKG8/TypSLncrUDp6KlIuaCtJKSwkPXtjZW50ZXI6LjUscmlnaHQ6MX1bTF18fDAsdHQ9e3RvcDoxLG1pZGRsZTouNX1bQ118fDAsZXQ9bz9PLSQqWjp6LXR0KloscnQ9bz96LXR0Kks6Ty0kKkssbnQ9TWF0aC5yb3VuZChvP1IuaCooMS1ydCk6Ui53KnJ0KTtlLl9sZW5GcmFjPUssZS5fdGhpY2tGcmFjPVosZS5fdUZyYWM9ZXQsZS5fdkZyYWM9cnQ7dmFyIGl0PWUuX2F4aXM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQuX2Z1bGxMYXlvdXQsaT0idiI9PT1lLm9yaWVudGF0aW9uLGE9e3R5cGU6ImxpbmVhciIscmFuZ2U6cix0aWNrbW9kZTplLnRpY2ttb2RlLG50aWNrczplLm50aWNrcyx0aWNrMDplLnRpY2swLGR0aWNrOmUuZHRpY2ssdGlja3ZhbHM6ZS50aWNrdmFscyx0aWNrdGV4dDplLnRpY2t0ZXh0LHRpY2tzOmUudGlja3MsdGlja2xlbjplLnRpY2tsZW4sdGlja3dpZHRoOmUudGlja3dpZHRoLHRpY2tjb2xvcjplLnRpY2tjb2xvcixzaG93dGlja2xhYmVsczplLnNob3d0aWNrbGFiZWxzLHRpY2tsYWJlbHBvc2l0aW9uOmUudGlja2xhYmVscG9zaXRpb24sdGlja2xhYmVsb3ZlcmZsb3c6ZS50aWNrbGFiZWxvdmVyZmxvdyx0aWNrbGFiZWxzdGVwOmUudGlja2xhYmVsc3RlcCx0aWNrZm9udDplLnRpY2tmb250LHRpY2thbmdsZTplLnRpY2thbmdsZSx0aWNrZm9ybWF0OmUudGlja2Zvcm1hdCxleHBvbmVudGZvcm1hdDplLmV4cG9uZW50Zm9ybWF0LG1pbmV4cG9uZW50OmUubWluZXhwb25lbnQsc2VwYXJhdGV0aG91c2FuZHM6ZS5zZXBhcmF0ZXRob3VzYW5kcyxzaG93ZXhwb25lbnQ6ZS5zaG93ZXhwb25lbnQsc2hvd3RpY2twcmVmaXg6ZS5zaG93dGlja3ByZWZpeCx0aWNrcHJlZml4OmUudGlja3ByZWZpeCxzaG93dGlja3N1ZmZpeDplLnNob3d0aWNrc3VmZml4LHRpY2tzdWZmaXg6ZS50aWNrc3VmZml4LHRpdGxlOmUudGl0bGUsc2hvd2xpbmU6ITAsYW5jaG9yOiJmcmVlIixzaWRlOmk/InJpZ2h0IjoiYm90dG9tIixwb3NpdGlvbjoxfSxvPWk/InkiOiJ4IixzPXt0eXBlOiJsaW5lYXIiLF9pZDpvK2UuX2lkfSxsPXtsZXR0ZXI6byxmb250Om4uZm9udCxub0hvdmVyOiEwLG5vVGlja3NvbjohMCxub1RpY2tsYWJlbG1vZGU6ITAsY2FsZW5kYXI6bi5jYWxlbmRhcn07ZnVuY3Rpb24gdSh0LGUpe3JldHVybiBjLmNvZXJjZShhLHMsYix0LGUpfXJldHVybiB5KGEscyx1LGwsbikseChhLHMsdSxsKSxzfShyLGUsVSk7aXQucG9zaXRpb249Wisobz9PK1AvUi53OnorSS9SLmgpO3ZhciBhdD0tMSE9PVsidG9wIiwiYm90dG9tIl0uaW5kZXhPZihqKTtvJiZhdCYmKGl0LnRpdGxlLnNpZGU9aixpdC50aXRsZXg9TytQL1IudyxpdC50aXRsZXk9cnQrKCJ0b3AiPT09Ti5zaWRlP0stSS9SLmg6SS9SLmgpKTtvfHxhdHx8KGl0LnRpdGxlLnNpZGU9aixpdC50aXRsZXk9eitJL1IuaCxpdC50aXRsZXg9cnQrUC9SLncpO2lmKEIuY29sb3ImJiJhdXRvIj09PWUudGlja21vZGUpe2l0LnRpY2ttb2RlPSJsaW5lYXIiLGl0LnRpY2swPXEuc3RhcnQ7dmFyIG90PXEuc2l6ZSxzdD1jLmNvbnN0cmFpbihKLzUwLDQsMTUpKzEsbHQ9KFVbMV0tVVswXSkvKChlLm50aWNrc3x8c3QpKm90KTtpZihsdD4xKXt2YXIgY3Q9TWF0aC5wb3coMTAsTWF0aC5mbG9vcihNYXRoLmxvZyhsdCkvTWF0aC5MTjEwKSk7b3QqPWN0KmMucm91bmRVcChsdC9jdCxbMiw1LDEwXSksKE1hdGguYWJzKHEuc3RhcnQpL3Euc2l6ZSsxZS02KSUxPDJlLTYmJihpdC50aWNrMD0wKX1pdC5kdGljaz1vdH1pdC5kb21haW49bz9bcnQrSS9SLmgscnQrSy1JL1IuaF06W3J0K1AvUi53LHJ0K0stUC9SLnddLGl0LnNldFNjYWxlKCksdC5hdHRyKCJ0cmFuc2Zvcm0iLHUoTWF0aC5yb3VuZChSLmwpLE1hdGgucm91bmQoUi50KSkpO3ZhciB1dCxmdD10LnNlbGVjdCgiLiIrQS5jYnRpdGxldW5zaGlmdCkuYXR0cigidHJhbnNmb3JtIix1KC1NYXRoLnJvdW5kKFIubCksLU1hdGgucm91bmQoUi50KSkpLGh0PWl0LnRpY2tsYWJlbHBvc2l0aW9uLHB0PWl0LnRpdGxlLmZvbnQuc2l6ZSxkdD10LnNlbGVjdCgiLiIrQS5jYmF4aXMpLG10PTAsZ3Q9MDtmdW5jdGlvbiB2dChuLGkpe3ZhciBhPXtwcm9wQ29udGFpbmVyOml0LHByb3BOYW1lOmUuX3Byb3BQcmVmaXgrInRpdGxlIix0cmFjZUluZGV4OmUuX3RyYWNlSW5kZXgsX21ldGE6ZS5fbWV0YSxwbGFjZWhvbGRlcjpELl9kZmx0VGl0bGUuY29sb3JiYXIsY29udGFpbmVyR3JvdXA6dC5zZWxlY3QoIi4iK0EuY2J0aXRsZSl9LG89ImgiPT09bi5jaGFyQXQoMCk/bi5zdWJzdHIoMSk6ImgiK247dC5zZWxlY3RBbGwoIi4iK28rIiwuIitvKyItbWF0aC1ncm91cCIpLnJlbW92ZSgpLG0uZHJhdyhyLG4sZihhLGl8fHt9KSl9cmV0dXJuIGMuc3luY09yQXN5bmMoW2EucHJldmlvdXNQcm9taXNlcyxmdW5jdGlvbigpe3ZhciB0LGU7KG8mJmF0fHwhbyYmIWF0KSYmKCJ0b3AiPT09aiYmKHQ9UCtSLmwrUi53Kk8sZT1JK1IudCtSLmgqKDEtcnQtSykrMysuNzUqcHQpLCJib3R0b20iPT09aiYmKHQ9UCtSLmwrUi53Kk8sZT1JK1IudCtSLmgqKDEtcnQpLTMtLjI1KnB0KSwicmlnaHQiPT09aiYmKGU9SStSLnQrUi5oKnorMysuNzUqcHQsdD1QK1IubCtSLncqcnQpLHZ0KGl0Ll9pZCsidGl0bGUiLHthdHRyaWJ1dGVzOnt4OnQseTplLCJ0ZXh0LWFuY2hvciI6bz8ic3RhcnQiOiJtaWRkbGUifX0pKX0sZnVuY3Rpb24oKXtpZighbyYmIWF0fHxvJiZhdCl7dmFyIGEsbD10LnNlbGVjdCgiLiIrQS5jYnRpdGxlKSxmPWwuc2VsZWN0KCJ0ZXh0IiksaD1bLU0vMixNLzJdLGQ9bC5zZWxlY3QoIi5oIitpdC5faWQrInRpdGxlLW1hdGgtZ3JvdXAiKS5ub2RlKCksbT0xNS42O2lmKGYubm9kZSgpJiYobT1wYXJzZUludChmLm5vZGUoKS5zdHlsZS5mb250U2l6ZSwxMCkqdyksZD8oYT1wLmJCb3goZCksZ3Q9YS53aWR0aCwobXQ9YS5oZWlnaHQpPm0mJihoWzFdLT0obXQtbSkvMikpOmYubm9kZSgpJiYhZi5jbGFzc2VkKEEuanNQbGFjZWhvbGRlcikmJihhPXAuYkJveChmLm5vZGUoKSksZ3Q9YS53aWR0aCxtdD1hLmhlaWdodCksbyl7aWYobXQpe2lmKG10Kz01LCJ0b3AiPT09ailpdC5kb21haW5bMV0tPW10L1IuaCxoWzFdKj0tMTtlbHNle2l0LmRvbWFpblswXSs9bXQvUi5oO3ZhciB2PWcubGluZUNvdW50KGYpO2hbMV0rPSgxLXYpKm19bC5hdHRyKCJ0cmFuc2Zvcm0iLHUoaFswXSxoWzFdKSksaXQuc2V0U2NhbGUoKX19ZWxzZSBndCYmKCJyaWdodCI9PT1qJiYoaXQuZG9tYWluWzBdKz0oZ3QrcHQvMikvUi53KSxsLmF0dHIoInRyYW5zZm9ybSIsdShoWzBdLGhbMV0pKSxpdC5zZXRTY2FsZSgpKX10LnNlbGVjdEFsbCgiLiIrQS5jYmZpbGxzKyIsLiIrQS5jYmxpbmVzKS5hdHRyKCJ0cmFuc2Zvcm0iLG8/dSgwLE1hdGgucm91bmQoUi5oKigxLWl0LmRvbWFpblsxXSkpKTp1KE1hdGgucm91bmQoUi53Kml0LmRvbWFpblswXSksMCkpLGR0LmF0dHIoInRyYW5zZm9ybSIsbz91KDAsTWF0aC5yb3VuZCgtUi50KSk6dShNYXRoLnJvdW5kKC1SLmwpLDApKTt2YXIgeT10LnNlbGVjdCgiLiIrQS5jYmZpbGxzKS5zZWxlY3RBbGwoInJlY3QuIitBLmNiZmlsbCkuYXR0cigic3R5bGUiLCIiKS5kYXRhKFkpO3kuZW50ZXIoKS5hcHBlbmQoInJlY3QiKS5jbGFzc2VkKEEuY2JmaWxsLCEwKS5zdHlsZSgic3Ryb2tlIiwibm9uZSIpLHkuZXhpdCgpLnJlbW92ZSgpO3ZhciB4PVUubWFwKGl0LmMycCkubWFwKE1hdGgucm91bmQpLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQtZX0pKTt5LmVhY2goKGZ1bmN0aW9uKHQsYSl7dmFyIHM9WzA9PT1hP1VbMF06KFlbYV0rWVthLTFdKS8yLGE9PT1ZLmxlbmd0aC0xP1VbMV06KFlbYV0rWVthKzFdKS8yXS5tYXAoaXQuYzJwKS5tYXAoTWF0aC5yb3VuZCk7byYmKHNbMV09Yy5jb25zdHJhaW4oc1sxXSsoc1sxXT5zWzBdKT8xOi0xLHhbMF0seFsxXSkpO3ZhciBsPW4uc2VsZWN0KHRoaXMpLmF0dHIobz8ieCI6InkiLFEpLmF0dHIobz8ieSI6IngiLG4ubWluKHMpKS5hdHRyKG8/IndpZHRoIjoiaGVpZ2h0IixNYXRoLm1heChYLDIpKS5hdHRyKG8/ImhlaWdodCI6IndpZHRoIixNYXRoLm1heChuLm1heChzKS1uLm1pbihzKSwyKSk7aWYoZS5fZmlsbGdyYWRpZW50KXAuZ3JhZGllbnQobCxyLGUuX2lkLG8/InZlcnRpY2FsIjoiaG9yaXpvbnRhbHJldmVyc2VkIixlLl9maWxsZ3JhZGllbnQsImZpbGwiKTtlbHNle3ZhciB1PUgodCkucmVwbGFjZSgiZS0iLCIiKTtsLmF0dHIoImZpbGwiLGkodSkudG9IZXhTdHJpbmcoKSl9fSkpO3ZhciBiPXQuc2VsZWN0KCIuIitBLmNibGluZXMpLnNlbGVjdEFsbCgicGF0aC4iK0EuY2JsaW5lKS5kYXRhKEIuY29sb3ImJkIud2lkdGg/VzpbXSk7Yi5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmNsYXNzZWQoQS5jYmxpbmUsITApLGIuZXhpdCgpLnJlbW92ZSgpLGIuZWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9USxyPU1hdGgucm91bmQoaXQuYzJwKHQpKStCLndpZHRoLzIlMTtuLnNlbGVjdCh0aGlzKS5hdHRyKCJkIiwiTSIrKG8/ZSsiLCIrcjpyKyIsIitlKSsobz8iaCI6InYiKStYKS5jYWxsKHAubGluZUdyb3VwU3R5bGUsQi53aWR0aCxWKHQpLEIuZGFzaCl9KSksZHQuc2VsZWN0QWxsKCJnLiIraXQuX2lkKyJ0aWNrLHBhdGgiKS5yZW1vdmUoKTt2YXIgXz1RK1grKE18fDApLzItKCJvdXRzaWRlIj09PWUudGlja3M/MTowKSxUPXMuY2FsY1RpY2tzKGl0KSxrPXMuZ2V0VGlja1NpZ25zKGl0KVsyXTtyZXR1cm4gcy5kcmF3VGlja3MocixpdCx7dmFsczoiaW5zaWRlIj09PWl0LnRpY2tzP3MuY2xpcEVuZHMoaXQsVCk6VCxsYXllcjpkdCxwYXRoOnMubWFrZVRpY2tQYXRoKGl0LF8sayksdHJhbnNGbjpzLm1ha2VUcmFuc1RpY2tGbihpdCl9KSxzLmRyYXdMYWJlbHMocixpdCx7dmFsczpULGxheWVyOmR0LHRyYW5zRm46cy5tYWtlVHJhbnNUaWNrTGFiZWxGbihpdCksbGFiZWxGbnM6cy5tYWtlTGFiZWxGbnMoaXQsXyl9KX0sZnVuY3Rpb24oKXtpZihvJiYhYXR8fCFvJiZhdCl7dmFyIHQsaSxhPWl0LnBvc2l0aW9ufHwwLHM9aXQuX29mZnNldCtpdC5fbGVuZ3RoLzI7aWYoInJpZ2h0Ij09PWopaT1zLHQ9Ui5sK1IudyphKzEwK3B0KihpdC5zaG93dGlja2xhYmVscz8xOi41KTtlbHNlIGlmKHQ9cywiYm90dG9tIj09PWomJihpPVIudCtSLmgqYSsxMCsoLTE9PT1odC5pbmRleE9mKCJpbnNpZGUiKT9pdC50aWNrZm9udC5zaXplOjApKygiaW50c2lkZSIhPT1pdC50aWNrcyYmZS50aWNrbGVufHwwKSksInRvcCI9PT1qKXt2YXIgbD1OLnRleHQuc3BsaXQoIjxicj4iKS5sZW5ndGg7aT1SLnQrUi5oKmErMTAtWC13KnB0Kmx9dnQoKG8/ImgiOiJ2IikraXQuX2lkKyJ0aXRsZSIse2F2b2lkOntzZWxlY3Rpb246bi5zZWxlY3Qocikuc2VsZWN0QWxsKCJnLiIraXQuX2lkKyJ0aWNrIiksc2lkZTpqLG9mZnNldFRvcDpvPzA6Ui50LG9mZnNldExlZnQ6bz9SLmw6MCxtYXhTaGlmdDpvP0Qud2lkdGg6RC5oZWlnaHR9LGF0dHJpYnV0ZXM6e3g6dCx5OmksInRleHQtYW5jaG9yIjoibWlkZGxlIn0sdHJhbnNmb3JtOntyb3RhdGU6bz8tOTA6MCxvZmZzZXQ6MH19KX19LGEucHJldmlvdXNQcm9taXNlcyxmdW5jdGlvbigpe3ZhciBuLHM9WCtNLzI7LTE9PT1odC5pbmRleE9mKCJpbnNpZGUiKSYmKG49cC5iQm94KGR0Lm5vZGUoKSkscys9bz9uLndpZHRoOm4uaGVpZ2h0KSx1dD1mdC5zZWxlY3QoInRleHQiKTt2YXIgYz0wLGY9byYmInRvcCI9PT1qLG09IW8mJiJyaWdodCI9PT1qLGc9MDtpZih1dC5ub2RlKCkmJiF1dC5jbGFzc2VkKEEuanNQbGFjZWhvbGRlcikpe3ZhciB5LHg9ZnQuc2VsZWN0KCIuaCIraXQuX2lkKyJ0aXRsZS1tYXRoLWdyb3VwIikubm9kZSgpO3gmJihvJiZhdHx8IW8mJiFhdCk/KGM9KG49cC5iQm94KHgpKS53aWR0aCx5PW4uaGVpZ2h0KTooYz0obj1wLmJCb3goZnQubm9kZSgpKSkucmlnaHQtUi5sLShvP1E6bnQpLHk9bi5ib3R0b20tUi50LShvP250OlEpLG98fCJ0b3AiIT09anx8KHMrPW4uaGVpZ2h0LGc9bi5oZWlnaHQpKSxtJiYodXQuYXR0cigidHJhbnNmb3JtIix1KGMvMitwdC8yLDApKSxjKj0yKSxzPU1hdGgubWF4KHMsbz9jOnkpfXZhciBiPTIqKG8/UDpJKStzK1MrTS8yLHc9MDshbyYmTi50ZXh0JiYiYm90dG9tIj09PUMmJno8PTAmJihiKz13PWIvMixnKz13KSxELl9oQ29sb3JiYXJNb3ZlVGl0bGU9dyxELl9oQ29sb3JiYXJNb3ZlQ0JUaXRsZT1nO3ZhciBGPVMrTTt0LnNlbGVjdCgiLiIrQS5jYmJnKS5hdHRyKCJ4Iiwobz9ROm50KS1GLzItKG8/UDowKSkuYXR0cigieSIsKG8/bnQ6USktKG8/SjpJK2ctdykpLmF0dHIobz8id2lkdGgiOiJoZWlnaHQiLE1hdGgubWF4KGItdywyKSkuYXR0cihvPyJoZWlnaHQiOiJ3aWR0aCIsTWF0aC5tYXgoSitGLDIpKS5jYWxsKGQuZmlsbCxFKS5jYWxsKGQuc3Ryb2tlLGUuYm9yZGVyY29sb3IpLnN0eWxlKCJzdHJva2Utd2lkdGgiLFMpO3ZhciBCPW0/TWF0aC5tYXgoYy0xMCwwKTowO2lmKHQuc2VsZWN0QWxsKCIuIitBLmNib3V0bGluZSkuYXR0cigieCIsKG8/UTpudCtQKStCKS5hdHRyKCJ5Iiwobz9udCtJLUo6USkrKGY/bXQ6MCkpLmF0dHIobz8id2lkdGgiOiJoZWlnaHQiLE1hdGgubWF4KFgsMikpLmF0dHIobz8iaGVpZ2h0Ijoid2lkdGgiLE1hdGgubWF4KEotKG8/MipJK210OjIqUCtCKSwyKSkuY2FsbChkLnN0cm9rZSxlLm91dGxpbmVjb2xvcikuc3R5bGUoe2ZpbGw6Im5vbmUiLCJzdHJva2Utd2lkdGgiOk19KSx0LmF0dHIoInRyYW5zZm9ybSIsdShSLmwtKG8/JCpiOjApLFIudC0obz8wOigxLXR0KSpiLWcpKSksIW8mJihTfHxpKEUpLmdldEFscGhhKCkmJiFpLmVxdWFscyhELnBhcGVyX2JnY29sb3IsRSkpKXt2YXIgVT1kdC5zZWxlY3RBbGwoInRleHQiKSxWPVVbMF0ubGVuZ3RoLEg9dC5zZWxlY3QoIi4iK0EuY2JiZykubm9kZSgpLHE9cC5iQm94KEgpLEc9cC5nZXRUcmFuc2xhdGUodCk7VS5lYWNoKChmdW5jdGlvbih0LGUpe3ZhciByPVYtMTtpZigwPT09ZXx8ZT09PXIpe3ZhciBuLGk9cC5iQm94KHRoaXMpLGE9cC5nZXRUcmFuc2xhdGUodGhpcyk7aWYoZT09PXIpe3ZhciBvPWkucmlnaHQrYS54OyhuPXEucmlnaHQrRy54K250LVMtMitPLW8pPjAmJihuPTApfWVsc2UgaWYoMD09PWUpe3ZhciBzPWkubGVmdCthLng7KG49cS5sZWZ0K0cueCtudCtTKzItcyk8MCYmKG49MCl9biYmKFY8Mz90aGlzLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrbisiLDApICIrdGhpcy5nZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIpKTp0aGlzLnNldEF0dHJpYnV0ZSgidmlzaWJpbGl0eSIsImhpZGRlbiIpKX19KSl9dmFyIFk9e30sVz1UW0xdLFo9a1tMXSxLPVRbQ10sZXQ9a1tDXSxydD1iLVg7bz8oInBpeGVscyI9PT1oPyhZLnk9eixZLnQ9SipLLFkuYj1KKmV0KTooWS50PVkuYj0wLFkueXQ9eitsKkssWS55Yj16LWwqZXQpLCJwaXhlbHMiPT09Xz8oWS54PU8sWS5sPWIqVyxZLnI9YipaKTooWS5sPXJ0KlcsWS5yPXJ0KlosWS54bD1PLXYqVyxZLnhyPU8rdipaKSk6KCJwaXhlbHMiPT09aD8oWS54PU8sWS5sPUoqVyxZLnI9SipaKTooWS5sPVkucj0wLFkueGw9TytsKlcsWS54cj1PLWwqWiksInBpeGVscyI9PT1fPyhZLnk9MS16LFkudD1iKkssWS5iPWIqZXQpOihZLnQ9cnQqSyxZLmI9cnQqZXQsWS55dD16LXYqSyxZLnliPXordipldCkpLGEuYXV0b01hcmdpbihyLGUuX2lkLFkpfV0scil9KHIsZSx0KTt2JiZ2LnRoZW4mJih0Ll9wcm9taXNlc3x8W10pLnB1c2godiksdC5fY29udGV4dC5lZGl0cy5jb2xvcmJhclBvc2l0aW9uJiZmdW5jdGlvbih0LGUscil7dmFyIG4saSxhLHM9InYiPT09ZS5vcmllbnRhdGlvbixjPXIuX2Z1bGxMYXlvdXQuX3NpemU7bC5pbml0KHtlbGVtZW50OnQubm9kZSgpLGdkOnIscHJlcEZuOmZ1bmN0aW9uKCl7bj10LmF0dHIoInRyYW5zZm9ybSIpLGgodCl9LG1vdmVGbjpmdW5jdGlvbihyLG8pe3QuYXR0cigidHJhbnNmb3JtIixuK3UocixvKSksaT1sLmFsaWduKChzP2UuX3VGcmFjOmUuX3ZGcmFjKStyL2MudyxzP2UuX3RoaWNrRnJhYzplLl9sZW5GcmFjLDAsMSxlLnhhbmNob3IpLGE9bC5hbGlnbigocz9lLl92RnJhYzoxLWUuX3VGcmFjKS1vL2MuaCxzP2UuX2xlbkZyYWM6ZS5fdGhpY2tGcmFjLDAsMSxlLnlhbmNob3IpO3ZhciBmPWwuZ2V0Q3Vyc29yKGksYSxlLnhhbmNob3IsZS55YW5jaG9yKTtoKHQsZil9LGRvbmVGbjpmdW5jdGlvbigpe2lmKGgodCksdm9pZCAwIT09aSYmdm9pZCAwIT09YSl7dmFyIG49e307bltlLl9wcm9wUHJlZml4KyJ4Il09aSxuW2UuX3Byb3BQcmVmaXgrInkiXT1hLHZvaWQgMCE9PWUuX3RyYWNlSW5kZXg/by5jYWxsKCJfZ3VpUmVzdHlsZSIscixuLGUuX3RyYWNlSW5kZXgpOm8uY2FsbCgiX2d1aVJlbGF5b3V0IixyLG4pfX19KX0ocixlLHQpfSkpLGUuZXhpdCgpLmVhY2goKGZ1bmN0aW9uKGUpe2EuYXV0b01hcmdpbih0LGUuX2lkKX0pKS5yZW1vdmUoKSxlLm9yZGVyKCl9fX0seyIuLi8uLi9jb25zdGFudHMvYWxpZ25tZW50Ijo0ODMsIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9saWIvZXh0ZW5kIjo1MDUsIi4uLy4uL2xpYi9zZXRjdXJzb3IiOjUzNiwiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIjo1NDEsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo1NjYsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2RlZmF1bHRzIjo1NjgsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9sYXlvdXRfYXR0cmlidXRlcyI6NTc5LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vcG9zaXRpb25fZGVmYXVsdHMiOjU4MiwiLi4vLi4vcGxvdHMvcGxvdHMiOjYyOCwiLi4vLi4vcmVnaXN0cnkiOjY0NywiLi4vY29sb3IiOjM2NywiLi4vY29sb3JzY2FsZS9oZWxwZXJzIjozNzgsIi4uL2RyYWdlbGVtZW50IjozODYsIi4uL2RyYXdpbmciOjM4OSwiLi4vdGl0bGVzIjo0NzYsIi4vY29uc3RhbnRzIjozNjksIkBwbG90bHkvZDMiOjU4LHRpbnljb2xvcjI6MzEzfV0sMzcyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbi5pc1BsYWluT2JqZWN0KHQuY29sb3JiYXIpfX0seyIuLi8uLi9saWIiOjUxNX1dLDM3MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e21vZHVsZVR5cGU6ImNvbXBvbmVudCIsbmFtZToiY29sb3JiYXIiLGF0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGRyYXc6dCgiLi9kcmF3IikuZHJhdyxoYXNDb2xvcmJhcjp0KCIuL2hhc19jb2xvcmJhciIpfX0seyIuL2F0dHJpYnV0ZXMiOjM2OCwiLi9kZWZhdWx0cyI6MzcwLCIuL2RyYXciOjM3MSwiLi9oYXNfY29sb3JiYXIiOjM3Mn1dLDM3NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9jb2xvcmJhci9hdHRyaWJ1dGVzIiksaT10KCIuLi8uLi9saWIvcmVnZXgiKS5jb3VudGVyLGE9dCgiLi4vLi4vbGliL3NvcnRfb2JqZWN0X2tleXMiKSxvPXQoIi4vc2NhbGVzLmpzIikuc2NhbGVzO2Eobyk7ZnVuY3Rpb24gcyh0KXtyZXR1cm4iYCIrdCsiYCJ9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dD10fHwiIjt2YXIgcixhPShlPWV8fHt9KS5jTGV0dGVyfHwiYyIsbD0oIm9ubHlJZk51bWVyaWNhbCJpbiBlP2Uub25seUlmTnVtZXJpY2FsOkJvb2xlYW4odCksIm5vU2NhbGUiaW4gZT9lLm5vU2NhbGU6Im1hcmtlci5saW5lIj09PXQpLGM9InNob3dTY2FsZURmbHQiaW4gZT9lLnNob3dTY2FsZURmbHQ6InoiPT09YSx1PSJzdHJpbmciPT10eXBlb2YgZS5jb2xvcnNjYWxlRGZsdD9vW2UuY29sb3JzY2FsZURmbHRdOm51bGwsZj1lLmVkaXRUeXBlT3ZlcnJpZGV8fCIiLGg9dD90KyIuIjoiIjsiY29sb3JBdHRyImluIGU/KHI9ZS5jb2xvckF0dHIsZS5jb2xvckF0dHIpOnMoaCsocj17ejoieiIsYzoiY29sb3IifVthXSkpO3ZhciBwPWErImF1dG8iLGQ9YSsibWluIixtPWErIm1heCIsZz1hKyJtaWQiLHY9KHMoaCtwKSxzKGgrZCkscyhoK20pLHt9KTt2W2RdPXZbbV09dm9pZCAwO3ZhciB5PXt9O3lbcF09ITE7dmFyIHg9e307cmV0dXJuImNvbG9yIj09PXImJih4LmNvbG9yPXt2YWxUeXBlOiJjb2xvciIsYXJyYXlPazohMCxlZGl0VHlwZTpmfHwic3R5bGUifSxlLmFuaW0mJih4LmNvbG9yLmFuaW09ITApKSx4W3BdPXt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJjYWxjIixpbXBsaWVkRWRpdHM6dn0seFtkXT17dmFsVHlwZToibnVtYmVyIixkZmx0Om51bGwsZWRpdFR5cGU6Znx8InBsb3QiLGltcGxpZWRFZGl0czp5fSx4W21dPXt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6bnVsbCxlZGl0VHlwZTpmfHwicGxvdCIsaW1wbGllZEVkaXRzOnl9LHhbZ109e3ZhbFR5cGU6Im51bWJlciIsZGZsdDpudWxsLGVkaXRUeXBlOiJjYWxjIixpbXBsaWVkRWRpdHM6dn0seC5jb2xvcnNjYWxlPXt2YWxUeXBlOiJjb2xvcnNjYWxlIixlZGl0VHlwZToiY2FsYyIsZGZsdDp1LGltcGxpZWRFZGl0czp7YXV0b2NvbG9yc2NhbGU6ITF9fSx4LmF1dG9jb2xvcnNjYWxlPXt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExIT09ZS5hdXRvQ29sb3JEZmx0LGVkaXRUeXBlOiJjYWxjIixpbXBsaWVkRWRpdHM6e2NvbG9yc2NhbGU6dm9pZCAwfX0seC5yZXZlcnNlc2NhbGU9e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITEsZWRpdFR5cGU6InBsb3QifSxsfHwoeC5zaG93c2NhbGU9e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6YyxlZGl0VHlwZToiY2FsYyJ9LHguY29sb3JiYXI9biksZS5ub0NvbG9yQXhpc3x8KHguY29sb3JheGlzPXt2YWxUeXBlOiJzdWJwbG90aWQiLHJlZ2V4OmkoImNvbG9yYXhpcyIpLGRmbHQ6bnVsbCxlZGl0VHlwZToiY2FsYyJ9KSx4fX0seyIuLi8uLi9saWIvcmVnZXgiOjUzMiwiLi4vLi4vbGliL3NvcnRfb2JqZWN0X2tleXMiOjUzOCwiLi4vY29sb3JiYXIvYXR0cmlidXRlcyI6MzY4LCIuL3NjYWxlcy5qcyI6MzgyfV0sMzc1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksaT10KCIuLi8uLi9saWIiKSxhPXQoIi4vaGVscGVycyIpLmV4dHJhY3RPcHRzO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG8scz10Ll9mdWxsTGF5b3V0LGw9ci52YWxzLGM9ci5jb250YWluZXJTdHIsdT1jP2kubmVzdGVkUHJvcGVydHkoZSxjKS5nZXQoKTplLGY9YSh1KSxoPSExIT09Zi5hdXRvLHA9Zi5taW4sZD1mLm1heCxtPWYubWlkLGc9ZnVuY3Rpb24oKXtyZXR1cm4gaS5hZ2dOdW1zKE1hdGgubWluLG51bGwsbCl9LHY9ZnVuY3Rpb24oKXtyZXR1cm4gaS5hZ2dOdW1zKE1hdGgubWF4LG51bGwsbCl9Oyh2b2lkIDA9PT1wP3A9ZygpOmgmJihwPXUuX2NvbG9yQXgmJm4ocCk/TWF0aC5taW4ocCxnKCkpOmcoKSksdm9pZCAwPT09ZD9kPXYoKTpoJiYoZD11Ll9jb2xvckF4JiZuKGQpP01hdGgubWF4KGQsdigpKTp2KCkpLGgmJnZvaWQgMCE9PW0mJihkLW0+bS1wP3A9bS0oZC1tKTpkLW08bS1wJiYoZD1tKyhtLXApKSkscD09PWQmJihwLT0uNSxkKz0uNSksZi5fc3luYygibWluIixwKSxmLl9zeW5jKCJtYXgiLGQpLGYuYXV0b2NvbG9yc2NhbGUpJiYobz1wKmQ8MD9zLmNvbG9yc2NhbGUuZGl2ZXJnaW5nOnA+PTA/cy5jb2xvcnNjYWxlLnNlcXVlbnRpYWw6cy5jb2xvcnNjYWxlLnNlcXVlbnRpYWxtaW51cyxmLl9zeW5jKCJjb2xvcnNjYWxlIixvKSl9fSx7Ii4uLy4uL2xpYiI6NTE1LCIuL2hlbHBlcnMiOjM3OCwiZmFzdC1pc251bWVyaWMiOjE5MH1dLDM3NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4vaGVscGVycyIpLmhhc0NvbG9yc2NhbGUsYT10KCIuL2hlbHBlcnMiKS5leHRyYWN0T3B0cztlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiByKHQsZSl7dmFyIHI9dFsiXyIrZV07dm9pZCAwIT09ciYmKHRbZV09cil9ZnVuY3Rpb24gbyh0LGkpe3ZhciBvPWkuY29udGFpbmVyP24ubmVzdGVkUHJvcGVydHkodCxpLmNvbnRhaW5lcikuZ2V0KCk6dDtpZihvKWlmKG8uY29sb3JheGlzKW8uX2NvbG9yQXg9ZVtvLmNvbG9yYXhpc107ZWxzZXt2YXIgcz1hKG8pLGw9cy5hdXRvOyhsfHx2b2lkIDA9PT1zLm1pbikmJnIobyxpLm1pbiksKGx8fHZvaWQgMD09PXMubWF4KSYmcihvLGkubWF4KSxzLmF1dG9jb2xvcnNjYWxlJiZyKG8sImNvbG9yc2NhbGUiKX19Zm9yKHZhciBzPTA7czx0Lmxlbmd0aDtzKyspe3ZhciBsPXRbc10sYz1sLl9tb2R1bGUuY29sb3JiYXI7aWYoYylpZihBcnJheS5pc0FycmF5KGMpKWZvcih2YXIgdT0wO3U8Yy5sZW5ndGg7dSsrKW8obCxjW3VdKTtlbHNlIG8obCxjKTtpKGwsIm1hcmtlci5saW5lIikmJm8obCx7Y29udGFpbmVyOiJtYXJrZXIubGluZSIsbWluOiJjbWluIixtYXg6ImNtYXgifSl9Zm9yKHZhciBmIGluIGUuX2NvbG9yQXhlcylvKGVbZl0se21pbjoiY21pbiIsbWF4OiJjbWF4In0pfX0seyIuLi8uLi9saWIiOjUxNSwiLi9oZWxwZXJzIjozNzh9XSwzNzc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxpPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vY29sb3JiYXIvaGFzX2NvbG9yYmFyIiksbz10KCIuLi9jb2xvcmJhci9kZWZhdWx0cyIpLHM9dCgiLi9zY2FsZXMiKS5pc1ZhbGlkLGw9dCgiLi4vLi4vcmVnaXN0cnkiKS50cmFjZUlzO2Z1bmN0aW9uIGModCxlKXt2YXIgcj1lLnNsaWNlKDAsZS5sZW5ndGgtMSk7cmV0dXJuIGU/aS5uZXN0ZWRQcm9wZXJ0eSh0LHIpLmdldCgpfHx7fTp0fWUuZXhwb3J0cz1mdW5jdGlvbiB0KGUscix1LGYsaCl7dmFyIHA9aC5wcmVmaXgsZD1oLmNMZXR0ZXIsbT0iX21vZHVsZSJpbiByLGc9YyhlLHApLHY9YyhyLHApLHk9YyhyLl90ZW1wbGF0ZXx8e30scCl8fHt9LHg9ZnVuY3Rpb24oKXtyZXR1cm4gZGVsZXRlIGUuY29sb3JheGlzLGRlbGV0ZSByLmNvbG9yYXhpcyx0KGUscix1LGYsaCl9O2lmKG0pe3ZhciBiPXUuX2NvbG9yQXhlc3x8e30sXz1mKHArImNvbG9yYXhpcyIpO2lmKF8pe3ZhciB3PWwociwiY29udG91ciIpJiZpLm5lc3RlZFByb3BlcnR5KHIsImNvbnRvdXJzLmNvbG9yaW5nIikuZ2V0KCl8fCJoZWF0bWFwIixUPWJbX107cmV0dXJuIHZvaWQoVD8oVFsyXS5wdXNoKHgpLFRbMF0hPT13JiYoVFswXT0hMSxpLndhcm4oWyJJZ25vcmluZyBjb2xvcmF4aXM6IixfLCJzZXR0aW5nIiwiYXMgaXQgaXMgbGlua2VkIHRvIGluY29tcGF0aWJsZSBjb2xvcnNjYWxlcy4iXS5qb2luKCIgIikpKSk6YltfXT1bdyxyLFt4XV0pfX12YXIgaz1nW2QrIm1pbiJdLEE9Z1tkKyJtYXgiXSxNPW4oaykmJm4oQSkmJms8QTtmKHArZCsiYXV0byIsIU0pP2YocCtkKyJtaWQiKTooZihwK2QrIm1pbiIpLGYocCtkKyJtYXgiKSk7dmFyIFMsRSxMPWcuY29sb3JzY2FsZSxDPXkuY29sb3JzY2FsZTsodm9pZCAwIT09TCYmKFM9IXMoTCkpLHZvaWQgMCE9PUMmJihTPSFzKEMpKSxmKHArImF1dG9jb2xvcnNjYWxlIixTKSxmKHArImNvbG9yc2NhbGUiKSxmKHArInJldmVyc2VzY2FsZSIpLCJtYXJrZXIubGluZS4iIT09cCkmJihwJiZtJiYoRT1hKGcpKSxmKHArInNob3dzY2FsZSIsRSkmJihwJiZ5JiYodi5fdGVtcGxhdGU9eSksbyhnLHYsdSkpKX19LHsiLi4vLi4vbGliIjo1MTUsIi4uLy4uL3JlZ2lzdHJ5Ijo2NDcsIi4uL2NvbG9yYmFyL2RlZmF1bHRzIjozNzAsIi4uL2NvbG9yYmFyL2hhc19jb2xvcmJhciI6MzcyLCIuL3NjYWxlcyI6MzgyLCJmYXN0LWlzbnVtZXJpYyI6MTkwfV0sMzc4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoInRpbnljb2xvcjIiKSxhPXQoImZhc3QtaXNudW1lcmljIiksbz10KCIuLi8uLi9saWIiKSxzPXQoIi4uL2NvbG9yIiksbD10KCIuL3NjYWxlcyIpLmlzVmFsaWQ7dmFyIGM9WyJzaG93c2NhbGUiLCJhdXRvY29sb3JzY2FsZSIsImNvbG9yc2NhbGUiLCJyZXZlcnNlc2NhbGUiLCJjb2xvcmJhciJdLHU9WyJtaW4iLCJtYXgiLCJtaWQiLCJhdXRvIl07ZnVuY3Rpb24gZih0KXt2YXIgZSxyLG4saT10Ll9jb2xvckF4LGE9aXx8dCxvPXt9O2ZvcihyPTA7cjxjLmxlbmd0aDtyKyspb1tuPWNbcl1dPWFbbl07aWYoaSlmb3IoZT0iYyIscj0wO3I8dS5sZW5ndGg7cisrKW9bbj11W3JdXT1hWyJjIituXTtlbHNle3ZhciBzO2ZvcihyPTA7cjx1Lmxlbmd0aDtyKyspKChzPSJjIisobj11W3JdKSlpbiBhfHwocz0ieiIrbilpbiBhKSYmKG9bbl09YVtzXSk7ZT1zLmNoYXJBdCgwKX1yZXR1cm4gby5fc3luYz1mdW5jdGlvbih0LHIpe3ZhciBuPS0xIT09dS5pbmRleE9mKHQpP2UrdDp0O2Fbbl09YVsiXyIrbl09cn0sb31mdW5jdGlvbiBoKHQpe2Zvcih2YXIgZT1mKHQpLHI9ZS5taW4sbj1lLm1heCxpPWUucmV2ZXJzZXNjYWxlP3AoZS5jb2xvcnNjYWxlKTplLmNvbG9yc2NhbGUsYT1pLmxlbmd0aCxvPW5ldyBBcnJheShhKSxzPW5ldyBBcnJheShhKSxsPTA7bDxhO2wrKyl7dmFyIGM9aVtsXTtvW2xdPXIrY1swXSoobi1yKSxzW2xdPWNbMV19cmV0dXJue2RvbWFpbjpvLHJhbmdlOnN9fWZ1bmN0aW9uIHAodCl7Zm9yKHZhciBlPXQubGVuZ3RoLHI9bmV3IEFycmF5KGUpLG49ZS0xLGk9MDtuPj0wO24tLSxpKyspe3ZhciBhPXRbbl07cltpXT1bMS1hWzBdLGFbMV1dfXJldHVybiByfWZ1bmN0aW9uIGQodCxlKXtlPWV8fHt9O2Zvcih2YXIgcj10LmRvbWFpbixvPXQucmFuZ2UsbD1vLmxlbmd0aCxjPW5ldyBBcnJheShsKSx1PTA7dTxsO3UrKyl7dmFyIGY9aShvW3VdKS50b1JnYigpO2NbdV09W2YucixmLmcsZi5iLGYuYV19dmFyIGgscD1uLnNjYWxlLmxpbmVhcigpLmRvbWFpbihyKS5yYW5nZShjKS5jbGFtcCghMCksZD1lLm5vTnVtZXJpY0NoZWNrLGc9ZS5yZXR1cm5BcnJheTtyZXR1cm4oaD1kJiZnP3A6ZD9mdW5jdGlvbih0KXtyZXR1cm4gbShwKHQpKX06Zz9mdW5jdGlvbih0KXtyZXR1cm4gYSh0KT9wKHQpOmkodCkuaXNWYWxpZCgpP3Q6cy5kZWZhdWx0TGluZX06ZnVuY3Rpb24odCl7cmV0dXJuIGEodCk/bShwKHQpKTppKHQpLmlzVmFsaWQoKT90OnMuZGVmYXVsdExpbmV9KS5kb21haW49cC5kb21haW4saC5yYW5nZT1mdW5jdGlvbigpe3JldHVybiBvfSxofWZ1bmN0aW9uIG0odCl7dmFyIGU9e3I6dFswXSxnOnRbMV0sYjp0WzJdLGE6dFszXX07cmV0dXJuIGkoZSkudG9SZ2JTdHJpbmcoKX1lLmV4cG9ydHM9e2hhc0NvbG9yc2NhbGU6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWU/by5uZXN0ZWRQcm9wZXJ0eSh0LGUpLmdldCgpfHx7fTp0LGk9bltyfHwiY29sb3IiXSxzPSExO2lmKG8uaXNBcnJheU9yVHlwZWRBcnJheShpKSlmb3IodmFyIGM9MDtjPGkubGVuZ3RoO2MrKylpZihhKGlbY10pKXtzPSEwO2JyZWFrfXJldHVybiBvLmlzUGxhaW5PYmplY3QobikmJihzfHwhMD09PW4uc2hvd3NjYWxlfHxhKG4uY21pbikmJmEobi5jbWF4KXx8bChuLmNvbG9yc2NhbGUpfHxvLmlzUGxhaW5PYmplY3Qobi5jb2xvcmJhcikpfSxleHRyYWN0T3B0czpmLGV4dHJhY3RTY2FsZTpoLGZsaXBTY2FsZTpwLG1ha2VDb2xvclNjYWxlRnVuYzpkLG1ha2VDb2xvclNjYWxlRnVuY0Zyb21UcmFjZTpmdW5jdGlvbih0LGUpe3JldHVybiBkKGgodCksZSl9fX0seyIuLi8uLi9saWIiOjUxNSwiLi4vY29sb3IiOjM2NywiLi9zY2FsZXMiOjM4MiwiQHBsb3RseS9kMyI6NTgsImZhc3QtaXNudW1lcmljIjoxOTAsdGlueWNvbG9yMjozMTN9XSwzNzk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9zY2FsZXMiKSxpPXQoIi4vaGVscGVycyIpO2UuZXhwb3J0cz17bW9kdWxlVHlwZToiY29tcG9uZW50IixuYW1lOiJjb2xvcnNjYWxlIixhdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLGxheW91dEF0dHJpYnV0ZXM6dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpLHN1cHBseUxheW91dERlZmF1bHRzOnQoIi4vbGF5b3V0X2RlZmF1bHRzIiksaGFuZGxlRGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNyb3NzVHJhY2VEZWZhdWx0czp0KCIuL2Nyb3NzX3RyYWNlX2RlZmF1bHRzIiksY2FsYzp0KCIuL2NhbGMiKSxzY2FsZXM6bi5zY2FsZXMsZGVmYXVsdFNjYWxlOm4uZGVmYXVsdFNjYWxlLGdldFNjYWxlOm4uZ2V0LGlzVmFsaWRTY2FsZTpuLmlzVmFsaWQsaGFzQ29sb3JzY2FsZTppLmhhc0NvbG9yc2NhbGUsZXh0cmFjdE9wdHM6aS5leHRyYWN0T3B0cyxleHRyYWN0U2NhbGU6aS5leHRyYWN0U2NhbGUsZmxpcFNjYWxlOmkuZmxpcFNjYWxlLG1ha2VDb2xvclNjYWxlRnVuYzppLm1ha2VDb2xvclNjYWxlRnVuYyxtYWtlQ29sb3JTY2FsZUZ1bmNGcm9tVHJhY2U6aS5tYWtlQ29sb3JTY2FsZUZ1bmNGcm9tVHJhY2V9fSx7Ii4vYXR0cmlidXRlcyI6Mzc0LCIuL2NhbGMiOjM3NSwiLi9jcm9zc190cmFjZV9kZWZhdWx0cyI6Mzc2LCIuL2RlZmF1bHRzIjozNzcsIi4vaGVscGVycyI6Mzc4LCIuL2xheW91dF9hdHRyaWJ1dGVzIjozODAsIi4vbGF5b3V0X2RlZmF1bHRzIjozODEsIi4vc2NhbGVzIjozODJ9XSwzODA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsaT10KCIuL2F0dHJpYnV0ZXMiKSxhPXQoIi4vc2NhbGVzIikuc2NhbGVzO2UuZXhwb3J0cz17ZWRpdFR5cGU6ImNhbGMiLGNvbG9yc2NhbGU6e2VkaXRUeXBlOiJjYWxjIixzZXF1ZW50aWFsOnt2YWxUeXBlOiJjb2xvcnNjYWxlIixkZmx0OmEuUmVkcyxlZGl0VHlwZToiY2FsYyJ9LHNlcXVlbnRpYWxtaW51czp7dmFsVHlwZToiY29sb3JzY2FsZSIsZGZsdDphLkJsdWVzLGVkaXRUeXBlOiJjYWxjIn0sZGl2ZXJnaW5nOnt2YWxUeXBlOiJjb2xvcnNjYWxlIixkZmx0OmEuUmRCdSxlZGl0VHlwZToiY2FsYyJ9fSxjb2xvcmF4aXM6bih7X2lzU3VicGxvdE9iajohMCxlZGl0VHlwZToiY2FsYyJ9LGkoIiIse2NvbG9yQXR0cjoiY29ycmVzcG9uZGluZyB0cmFjZSBjb2xvciBhcnJheShzKSIsbm9Db2xvckF4aXM6ITAsc2hvd1NjYWxlRGZsdDohMH0pKX19LHsiLi4vLi4vbGliL2V4dGVuZCI6NTA1LCIuL2F0dHJpYnV0ZXMiOjM3NCwiLi9zY2FsZXMiOjM4Mn1dLDM4MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKSxhPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxvPXQoIi4vZGVmYXVsdHMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiByKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxhLHIsaSl9cigiY29sb3JzY2FsZS5zZXF1ZW50aWFsIikscigiY29sb3JzY2FsZS5zZXF1ZW50aWFsbWludXMiKSxyKCJjb2xvcnNjYWxlLmRpdmVyZ2luZyIpO3ZhciBzLGwsYz1lLl9jb2xvckF4ZXM7ZnVuY3Rpb24gdSh0LGUpe3JldHVybiBuLmNvZXJjZShzLGwsYS5jb2xvcmF4aXMsdCxlKX1mb3IodmFyIGYgaW4gYyl7dmFyIGg9Y1tmXTtpZihoWzBdKXM9dFtmXXx8e30sKGw9aS5uZXdDb250YWluZXIoZSxmLCJjb2xvcmF4aXMiKSkuX25hbWU9ZixvKHMsbCxlLHUse3ByZWZpeDoiIixjTGV0dGVyOiJjIn0pO2Vsc2V7Zm9yKHZhciBwPTA7cDxoWzJdLmxlbmd0aDtwKyspaFsyXVtwXSgpO2RlbGV0ZSBlLl9jb2xvckF4ZXNbZl19fX19LHsiLi4vLi4vbGliIjo1MTUsIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiOjU1NSwiLi9kZWZhdWx0cyI6Mzc3LCIuL2xheW91dF9hdHRyaWJ1dGVzIjozODB9XSwzODI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgidGlueWNvbG9yMiIpLGk9e0dyZXlzOltbMCwicmdiKDAsMCwwKSJdLFsxLCJyZ2IoMjU1LDI1NSwyNTUpIl1dLFlsR25CdTpbWzAsInJnYig4LDI5LDg4KSJdLFsuMTI1LCJyZ2IoMzcsNTIsMTQ4KSJdLFsuMjUsInJnYigzNCw5NCwxNjgpIl0sWy4zNzUsInJnYigyOSwxNDUsMTkyKSJdLFsuNSwicmdiKDY1LDE4MiwxOTYpIl0sWy42MjUsInJnYigxMjcsMjA1LDE4NykiXSxbLjc1LCJyZ2IoMTk5LDIzMywxODApIl0sWy44NzUsInJnYigyMzcsMjQ4LDIxNykiXSxbMSwicmdiKDI1NSwyNTUsMjE3KSJdXSxHcmVlbnM6W1swLCJyZ2IoMCw2OCwyNykiXSxbLjEyNSwicmdiKDAsMTA5LDQ0KSJdLFsuMjUsInJnYigzNSwxMzksNjkpIl0sWy4zNzUsInJnYig2NSwxNzEsOTMpIl0sWy41LCJyZ2IoMTE2LDE5NiwxMTgpIl0sWy42MjUsInJnYigxNjEsMjE3LDE1NSkiXSxbLjc1LCJyZ2IoMTk5LDIzMywxOTIpIl0sWy44NzUsInJnYigyMjksMjQ1LDIyNCkiXSxbMSwicmdiKDI0NywyNTIsMjQ1KSJdXSxZbE9yUmQ6W1swLCJyZ2IoMTI4LDAsMzgpIl0sWy4xMjUsInJnYigxODksMCwzOCkiXSxbLjI1LCJyZ2IoMjI3LDI2LDI4KSJdLFsuMzc1LCJyZ2IoMjUyLDc4LDQyKSJdLFsuNSwicmdiKDI1MywxNDEsNjApIl0sWy42MjUsInJnYigyNTQsMTc4LDc2KSJdLFsuNzUsInJnYigyNTQsMjE3LDExOCkiXSxbLjg3NSwicmdiKDI1NSwyMzcsMTYwKSJdLFsxLCJyZ2IoMjU1LDI1NSwyMDQpIl1dLEJsdWVyZWQ6W1swLCJyZ2IoMCwwLDI1NSkiXSxbMSwicmdiKDI1NSwwLDApIl1dLFJkQnU6W1swLCJyZ2IoNSwxMCwxNzIpIl0sWy4zNSwicmdiKDEwNiwxMzcsMjQ3KSJdLFsuNSwicmdiKDE5MCwxOTAsMTkwKSJdLFsuNiwicmdiKDIyMCwxNzAsMTMyKSJdLFsuNywicmdiKDIzMCwxNDUsOTApIl0sWzEsInJnYigxNzgsMTAsMjgpIl1dLFJlZHM6W1swLCJyZ2IoMjIwLDIyMCwyMjApIl0sWy4yLCJyZ2IoMjQ1LDE5NSwxNTcpIl0sWy40LCJyZ2IoMjQ1LDE2MCwxMDUpIl0sWzEsInJnYigxNzgsMTAsMjgpIl1dLEJsdWVzOltbMCwicmdiKDUsMTAsMTcyKSJdLFsuMzUsInJnYig0MCw2MCwxOTApIl0sWy41LCJyZ2IoNzAsMTAwLDI0NSkiXSxbLjYsInJnYig5MCwxMjAsMjQ1KSJdLFsuNywicmdiKDEwNiwxMzcsMjQ3KSJdLFsxLCJyZ2IoMjIwLDIyMCwyMjApIl1dLFBpY25pYzpbWzAsInJnYigwLDAsMjU1KSJdLFsuMSwicmdiKDUxLDE1MywyNTUpIl0sWy4yLCJyZ2IoMTAyLDIwNCwyNTUpIl0sWy4zLCJyZ2IoMTUzLDIwNCwyNTUpIl0sWy40LCJyZ2IoMjA0LDIwNCwyNTUpIl0sWy41LCJyZ2IoMjU1LDI1NSwyNTUpIl0sWy42LCJyZ2IoMjU1LDIwNCwyNTUpIl0sWy43LCJyZ2IoMjU1LDE1MywyNTUpIl0sWy44LCJyZ2IoMjU1LDEwMiwyMDQpIl0sWy45LCJyZ2IoMjU1LDEwMiwxMDIpIl0sWzEsInJnYigyNTUsMCwwKSJdXSxSYWluYm93OltbMCwicmdiKDE1MCwwLDkwKSJdLFsuMTI1LCJyZ2IoMCwwLDIwMCkiXSxbLjI1LCJyZ2IoMCwyNSwyNTUpIl0sWy4zNzUsInJnYigwLDE1MiwyNTUpIl0sWy41LCJyZ2IoNDQsMjU1LDE1MCkiXSxbLjYyNSwicmdiKDE1MSwyNTUsMCkiXSxbLjc1LCJyZ2IoMjU1LDIzNCwwKSJdLFsuODc1LCJyZ2IoMjU1LDExMSwwKSJdLFsxLCJyZ2IoMjU1LDAsMCkiXV0sUG9ydGxhbmQ6W1swLCJyZ2IoMTIsNTEsMTMxKSJdLFsuMjUsInJnYigxMCwxMzYsMTg2KSJdLFsuNSwicmdiKDI0MiwyMTEsNTYpIl0sWy43NSwicmdiKDI0MiwxNDMsNTYpIl0sWzEsInJnYigyMTcsMzAsMzApIl1dLEpldDpbWzAsInJnYigwLDAsMTMxKSJdLFsuMTI1LCJyZ2IoMCw2MCwxNzApIl0sWy4zNzUsInJnYig1LDI1NSwyNTUpIl0sWy42MjUsInJnYigyNTUsMjU1LDApIl0sWy44NzUsInJnYigyNTAsMCwwKSJdLFsxLCJyZ2IoMTI4LDAsMCkiXV0sSG90OltbMCwicmdiKDAsMCwwKSJdLFsuMywicmdiKDIzMCwwLDApIl0sWy42LCJyZ2IoMjU1LDIxMCwwKSJdLFsxLCJyZ2IoMjU1LDI1NSwyNTUpIl1dLEJsYWNrYm9keTpbWzAsInJnYigwLDAsMCkiXSxbLjIsInJnYigyMzAsMCwwKSJdLFsuNCwicmdiKDIzMCwyMTAsMCkiXSxbLjcsInJnYigyNTUsMjU1LDI1NSkiXSxbMSwicmdiKDE2MCwyMDAsMjU1KSJdXSxFYXJ0aDpbWzAsInJnYigwLDAsMTMwKSJdLFsuMSwicmdiKDAsMTgwLDE4MCkiXSxbLjIsInJnYig0MCwyMTAsNDApIl0sWy40LCJyZ2IoMjMwLDIzMCw1MCkiXSxbLjYsInJnYigxMjAsNzAsMjApIl0sWzEsInJnYigyNTUsMjU1LDI1NSkiXV0sRWxlY3RyaWM6W1swLCJyZ2IoMCwwLDApIl0sWy4xNSwicmdiKDMwLDAsMTAwKSJdLFsuNCwicmdiKDEyMCwwLDEwMCkiXSxbLjYsInJnYigxNjAsOTAsMCkiXSxbLjgsInJnYigyMzAsMjAwLDApIl0sWzEsInJnYigyNTUsMjUwLDIyMCkiXV0sVmlyaWRpczpbWzAsIiM0NDAxNTQiXSxbLjA2Mjc0NTA5ODAzOTIxNTY5LCIjNDgxODZhIl0sWy4xMjU0OTAxOTYwNzg0MzEzNywiIzQ3MmQ3YiJdLFsuMTg4MjM1Mjk0MTE3NjQ3MDYsIiM0MjQwODYiXSxbLjI1MDk4MDM5MjE1Njg2Mjc0LCIjM2I1MjhiIl0sWy4zMTM3MjU0OTAxOTYwNzg0LCIjMzM2MzhkIl0sWy4zNzY0NzA1ODgyMzUyOTQxLCIjMmM3MjhlIl0sWy40MzkyMTU2ODYyNzQ1MDk4LCIjMjY4MjhlIl0sWy41MDE5NjA3ODQzMTM3MjU1LCIjMjE5MThjIl0sWy41NjQ3MDU4ODIzNTI5NDEyLCIjMWZhMDg4Il0sWy42Mjc0NTA5ODAzOTIxNTY5LCIjMjhhZTgwIl0sWy42OTAxOTYwNzg0MzEzNzI1LCIjM2ZiYzczIl0sWy43NTI5NDExNzY0NzA1ODgyLCIjNWVjOTYyIl0sWy44MTU2ODYyNzQ1MDk4MDM5LCIjODRkNDRiIl0sWy44Nzg0MzEzNzI1NDkwMTk2LCIjYWRkYzMwIl0sWy45NDExNzY0NzA1ODgyMzUzLCIjZDhlMjE5Il0sWzEsIiNmZGU3MjUiXV0sQ2l2aWRpczpbWzAsInJnYigwLDMyLDc2KSJdLFsuMDU4ODI0LCJyZ2IoMCw0MiwxMDIpIl0sWy4xMTc2NDcsInJnYigwLDUyLDExMCkiXSxbLjE3NjQ3MSwicmdiKDM5LDYzLDEwOCkiXSxbLjIzNTI5NCwicmdiKDYwLDc0LDEwNykiXSxbLjI5NDExOCwicmdiKDc2LDg1LDEwNykiXSxbLjM1Mjk0MSwicmdiKDkxLDk1LDEwOSkiXSxbLjQxMTc2NSwicmdiKDEwNCwxMDYsMTEyKSJdLFsuNDcwNTg4LCJyZ2IoMTE3LDExNywxMTcpIl0sWy41Mjk0MTIsInJnYigxMzEsMTI5LDEyMCkiXSxbLjU4ODIzNSwicmdiKDE0NiwxNDAsMTIwKSJdLFsuNjQ3MDU5LCJyZ2IoMTYxLDE1MiwxMTgpIl0sWy43MDU4ODIsInJnYigxNzYsMTY1LDExNCkiXSxbLjc2NDcwNiwicmdiKDE5MiwxNzcsMTA5KSJdLFsuODIzNTI5LCJyZ2IoMjA5LDE5MSwxMDIpIl0sWy44ODIzNTMsInJnYigyMjUsMjA0LDkyKSJdLFsuOTQxMTc2LCJyZ2IoMjQzLDIxOSw3OSkiXSxbMSwicmdiKDI1NSwyMzMsNjkpIl1dfSxhPWkuUmRCdTtmdW5jdGlvbiBvKHQpe3ZhciBlPTA7aWYoIUFycmF5LmlzQXJyYXkodCl8fHQubGVuZ3RoPDIpcmV0dXJuITE7aWYoIXRbMF18fCF0W3QubGVuZ3RoLTFdKXJldHVybiExO2lmKDAhPSt0WzBdWzBdfHwxIT0rdFt0Lmxlbmd0aC0xXVswXSlyZXR1cm4hMTtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIGk9dFtyXTtpZigyIT09aS5sZW5ndGh8fCtpWzBdPGV8fCFuKGlbMV0pLmlzVmFsaWQoKSlyZXR1cm4hMTtlPStpWzBdfXJldHVybiEwfWUuZXhwb3J0cz17c2NhbGVzOmksZGVmYXVsdFNjYWxlOmEsZ2V0OmZ1bmN0aW9uKHQsZSl7aWYoZXx8KGU9YSksIXQpcmV0dXJuIGU7ZnVuY3Rpb24gcigpe3RyeXt0PWlbdF18fEpTT04ucGFyc2UodCl9Y2F0Y2gocil7dD1lfX1yZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJihyKCksInN0cmluZyI9PXR5cGVvZiB0JiZyKCkpLG8odCk/dDplfSxpc1ZhbGlkOmZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDAhPT1pW3RdfHxvKHQpfX19LHt0aW55Y29sb3IyOjMxM31dLDM4MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbixpKXt2YXIgYT0odC1yKS8obi1yKSxvPWErZS8obi1yKSxzPShhK28pLzI7cmV0dXJuImxlZnQiPT09aXx8ImJvdHRvbSI9PT1pP2E6ImNlbnRlciI9PT1pfHwibWlkZGxlIj09PWk/czoicmlnaHQiPT09aXx8InRvcCI9PT1pP286YTwyLzMtcz9hOm8+NC8zLXM/bzpzfX0se31dLDM4NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPVtbInN3LXJlc2l6ZSIsInMtcmVzaXplIiwic2UtcmVzaXplIl0sWyJ3LXJlc2l6ZSIsIm1vdmUiLCJlLXJlc2l6ZSJdLFsibnctcmVzaXplIiwibi1yZXNpemUiLCJuZS1yZXNpemUiXV07ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGEpe3JldHVybiB0PSJsZWZ0Ij09PXI/MDoiY2VudGVyIj09PXI/MToicmlnaHQiPT09cj8yOm4uY29uc3RyYWluKE1hdGguZmxvb3IoMyp0KSwwLDIpLGU9ImJvdHRvbSI9PT1hPzA6Im1pZGRsZSI9PT1hPzE6InRvcCI9PT1hPzI6bi5jb25zdHJhaW4oTWF0aC5mbG9vcigzKmUpLDAsMiksaVtlXVt0XX19LHsiLi4vLi4vbGliIjo1MTV9XSwzODU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ci5zZWxlY3RNb2RlPWZ1bmN0aW9uKHQpe3JldHVybiJsYXNzbyI9PT10fHwic2VsZWN0Ij09PXR9LHIuZHJhd01vZGU9ZnVuY3Rpb24odCl7cmV0dXJuImRyYXdjbG9zZWRwYXRoIj09PXR8fCJkcmF3b3BlbnBhdGgiPT09dHx8ImRyYXdsaW5lIj09PXR8fCJkcmF3cmVjdCI9PT10fHwiZHJhd2NpcmNsZSI9PT10fSxyLm9wZW5Nb2RlPWZ1bmN0aW9uKHQpe3JldHVybiJkcmF3bGluZSI9PT10fHwiZHJhd29wZW5wYXRoIj09PXR9LHIucmVjdE1vZGU9ZnVuY3Rpb24odCl7cmV0dXJuInNlbGVjdCI9PT10fHwiZHJhd2xpbmUiPT09dHx8ImRyYXdyZWN0Ij09PXR8fCJkcmF3Y2lyY2xlIj09PXR9LHIuZnJlZU1vZGU9ZnVuY3Rpb24odCl7cmV0dXJuImxhc3NvIj09PXR8fCJkcmF3Y2xvc2VkcGF0aCI9PT10fHwiZHJhd29wZW5wYXRoIj09PXR9LHIuc2VsZWN0aW5nT3JEcmF3aW5nPWZ1bmN0aW9uKHQpe3JldHVybiByLmZyZWVNb2RlKHQpfHxyLnJlY3RNb2RlKHQpfX0se31dLDM4NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJtb3VzZS1ldmVudC1vZmZzZXQiKSxpPXQoImhhcy1ob3ZlciIpLGE9dCgiaGFzLXBhc3NpdmUtZXZlbnRzIiksbz10KCIuLi8uLi9saWIiKS5yZW1vdmVFbGVtZW50LHM9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2NvbnN0YW50cyIpLGw9ZS5leHBvcnRzPXt9O2wuYWxpZ249dCgiLi9hbGlnbiIpLGwuZ2V0Q3Vyc29yPXQoIi4vY3Vyc29yIik7dmFyIGM9dCgiLi91bmhvdmVyIik7ZnVuY3Rpb24gdSgpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuY2xhc3NOYW1lPSJkcmFnY292ZXIiO3ZhciBlPXQuc3R5bGU7cmV0dXJuIGUucG9zaXRpb249ImZpeGVkIixlLmxlZnQ9MCxlLnJpZ2h0PTAsZS50b3A9MCxlLmJvdHRvbT0wLGUuekluZGV4PTk5OTk5OTk5OSxlLmJhY2tncm91bmQ9Im5vbmUiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCksdH1mdW5jdGlvbiBmKHQpe3JldHVybiBuKHQuY2hhbmdlZFRvdWNoZXM/dC5jaGFuZ2VkVG91Y2hlc1swXTp0LGRvY3VtZW50LmJvZHkpfWwudW5ob3Zlcj1jLndyYXBwZWQsbC51bmhvdmVyUmF3PWMucmF3LGwuaW5pdD1mdW5jdGlvbih0KXt2YXIgZSxyLG4sYyxoLHAsZCxtLGc9dC5nZCx2PTEseT1nLl9jb250ZXh0LmRvdWJsZUNsaWNrRGVsYXkseD10LmVsZW1lbnQ7Zy5fbW91c2VEb3duVGltZXx8KGcuX21vdXNlRG93blRpbWU9MCkseC5zdHlsZS5wb2ludGVyRXZlbnRzPSJhbGwiLHgub25tb3VzZWRvd249XyxhPyh4Ll9vbnRvdWNoc3RhcnQmJngucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIseC5fb250b3VjaHN0YXJ0KSx4Ll9vbnRvdWNoc3RhcnQ9Xyx4LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLF8se3Bhc3NpdmU6ITF9KSk6eC5vbnRvdWNoc3RhcnQ9Xzt2YXIgYj10LmNsYW1wRm58fGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gTWF0aC5hYnModCk8ciYmKHQ9MCksTWF0aC5hYnMoZSk8ciYmKGU9MCksW3QsZV19O2Z1bmN0aW9uIF8oYSl7Zy5fZHJhZ2dlZD0hMSxnLl9kcmFnZ2luZz0hMDt2YXIgbz1mKGEpO2U9b1swXSxyPW9bMV0sZD1hLnRhcmdldCxwPWEsbT0yPT09YS5idXR0b25zfHxhLmN0cmxLZXksdm9pZCAwPT09YS5jbGllbnRYJiZ2b2lkIDA9PT1hLmNsaWVudFkmJihhLmNsaWVudFg9ZSxhLmNsaWVudFk9ciksKG49KG5ldyBEYXRlKS5nZXRUaW1lKCkpLWcuX21vdXNlRG93blRpbWU8eT92Kz0xOih2PTEsZy5fbW91c2VEb3duVGltZT1uKSx0LnByZXBGbiYmdC5wcmVwRm4oYSxlLHIpLGkmJiFtPyhoPXUoKSkuc3R5bGUuY3Vyc29yPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHgpLmN1cnNvcjppfHwoaD1kb2N1bWVudCxjPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuY3Vyc29yLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5jdXJzb3I9d2luZG93LmdldENvbXB1dGVkU3R5bGUoeCkuY3Vyc29yKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixUKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsVCksITEhPT10LmRyYWdtb2RlJiYoYS5wcmV2ZW50RGVmYXVsdCgpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdyksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix3LHtwYXNzaXZlOiExfSkpfWZ1bmN0aW9uIHcobil7bi5wcmV2ZW50RGVmYXVsdCgpO3ZhciBpPWYobiksYT10Lm1pbkRyYWd8fHMuTUlORFJBRyxvPWIoaVswXS1lLGlbMV0tcixhKSxjPW9bMF0sdT1vWzFdOyhjfHx1KSYmKGcuX2RyYWdnZWQ9ITAsbC51bmhvdmVyKGcsbikpLGcuX2RyYWdnZWQmJnQubW92ZUZuJiYhbSYmKGcuX2RyYWdkYXRhPXtlbGVtZW50OngsZHg6YyxkeTp1fSx0Lm1vdmVGbihjLHUpKX1mdW5jdGlvbiBUKGUpe2lmKGRlbGV0ZSBnLl9kcmFnZGF0YSwhMSE9PXQuZHJhZ21vZGUmJihlLnByZXZlbnREZWZhdWx0KCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix3KSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHcpKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIixUKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsVCksaT9vKGgpOmMmJihoLmRvY3VtZW50RWxlbWVudC5zdHlsZS5jdXJzb3I9YyxjPW51bGwpLGcuX2RyYWdnaW5nKXtpZihnLl9kcmFnZ2luZz0hMSwobmV3IERhdGUpLmdldFRpbWUoKS1nLl9tb3VzZURvd25UaW1lPnkmJih2PU1hdGgubWF4KHYtMSwxKSksZy5fZHJhZ2dlZCl0LmRvbmVGbiYmdC5kb25lRm4oKTtlbHNlIGlmKHQuY2xpY2tGbiYmdC5jbGlja0ZuKHYscCksIW0pe3ZhciByO3RyeXtyPW5ldyBNb3VzZUV2ZW50KCJjbGljayIsZSl9Y2F0Y2godCl7dmFyIG49ZihlKTsocj1kb2N1bWVudC5jcmVhdGVFdmVudCgiTW91c2VFdmVudHMiKSkuaW5pdE1vdXNlRXZlbnQoImNsaWNrIixlLmJ1YmJsZXMsZS5jYW5jZWxhYmxlLGUudmlldyxlLmRldGFpbCxlLnNjcmVlblgsZS5zY3JlZW5ZLG5bMF0sblsxXSxlLmN0cmxLZXksZS5hbHRLZXksZS5zaGlmdEtleSxlLm1ldGFLZXksZS5idXR0b24sZS5yZWxhdGVkVGFyZ2V0KX1kLmRpc3BhdGNoRXZlbnQocil9Zy5fZHJhZ2dpbmc9ITEsZy5fZHJhZ2dlZD0hMX1lbHNlIGcuX2RyYWdnZWQ9ITF9fSxsLmNvdmVyU2xpcD11fSx7Ii4uLy4uL2xpYiI6NTE1LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vY29uc3RhbnRzIjo1NzMsIi4vYWxpZ24iOjM4MywiLi9jdXJzb3IiOjM4NCwiLi91bmhvdmVyIjozODcsImhhcy1ob3ZlciI6MjI4LCJoYXMtcGFzc2l2ZS1ldmVudHMiOjIyOSwibW91c2UtZXZlbnQtb2Zmc2V0IjoyNDJ9XSwzODc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliL2V2ZW50cyIpLGk9dCgiLi4vLi4vbGliL3Rocm90dGxlIiksYT10KCIuLi8uLi9saWIvZG9tIikuZ2V0R3JhcGhEaXYsbz10KCIuLi9meC9jb25zdGFudHMiKSxzPWUuZXhwb3J0cz17fTtzLndyYXBwZWQ9ZnVuY3Rpb24odCxlLHIpeyh0PWEodCkpLl9mdWxsTGF5b3V0JiZpLmNsZWFyKHQuX2Z1bGxMYXlvdXQuX3VpZCtvLkhPVkVSSUQpLHMucmF3KHQsZSxyKX0scy5yYXc9ZnVuY3Rpb24odCxlKXt2YXIgcj10Ll9mdWxsTGF5b3V0LGk9dC5faG92ZXJkYXRhO2V8fChlPXt9KSxlLnRhcmdldCYmIXQuX2RyYWdnZWQmJiExPT09bi50cmlnZ2VySGFuZGxlcih0LCJwbG90bHlfYmVmb3JlaG92ZXIiLGUpfHwoci5faG92ZXJsYXllci5zZWxlY3RBbGwoImciKS5yZW1vdmUoKSxyLl9ob3ZlcmxheWVyLnNlbGVjdEFsbCgibGluZSIpLnJlbW92ZSgpLHIuX2hvdmVybGF5ZXIuc2VsZWN0QWxsKCJjaXJjbGUiKS5yZW1vdmUoKSx0Ll9ob3ZlcmRhdGE9dm9pZCAwLGUudGFyZ2V0JiZpJiZ0LmVtaXQoInBsb3RseV91bmhvdmVyIix7ZXZlbnQ6ZSxwb2ludHM6aX0pKX19LHsiLi4vLi4vbGliL2RvbSI6NTAzLCIuLi8uLi9saWIvZXZlbnRzIjo1MDQsIi4uLy4uL2xpYi90aHJvdHRsZSI6NTQyLCIuLi9meC9jb25zdGFudHMiOjQwMX1dLDM4ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmRhc2g9e3ZhbFR5cGU6InN0cmluZyIsdmFsdWVzOlsic29saWQiLCJkb3QiLCJkYXNoIiwibG9uZ2Rhc2giLCJkYXNoZG90IiwibG9uZ2Rhc2hkb3QiXSxkZmx0OiJzb2xpZCIsZWRpdFR5cGU6InN0eWxlIn0sci5wYXR0ZXJuPXtzaGFwZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiIiwiLyIsIlxcIiwieCIsIi0iLCJ8IiwiKyIsIi4iXSxkZmx0OiIiLGFycmF5T2s6ITAsZWRpdFR5cGU6InN0eWxlIn0sZmlsbG1vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInJlcGxhY2UiLCJvdmVybGF5Il0sZGZsdDoicmVwbGFjZSIsZWRpdFR5cGU6InN0eWxlIn0sYmdjb2xvcjp7dmFsVHlwZToiY29sb3IiLGFycmF5T2s6ITAsZWRpdFR5cGU6InN0eWxlIn0sZmdjb2xvcjp7dmFsVHlwZToiY29sb3IiLGFycmF5T2s6ITAsZWRpdFR5cGU6InN0eWxlIn0sZmdvcGFjaXR5Ont2YWxUeXBlOiJudW1iZXIiLGVkaXRUeXBlOiJzdHlsZSIsbWluOjAsbWF4OjF9LHNpemU6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDo4LGFycmF5T2s6ITAsZWRpdFR5cGU6InN0eWxlIn0sc29saWRpdHk6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDouMyxhcnJheU9rOiEwLGVkaXRUeXBlOiJzdHlsZSJ9LGVkaXRUeXBlOiJzdHlsZSJ9fSx7fV0sMzg5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4uLy4uL2xpYiIpLGE9aS5udW1iZXJGb3JtYXQsbz10KCJmYXN0LWlzbnVtZXJpYyIpLHM9dCgidGlueWNvbG9yMiIpLGw9dCgiLi4vLi4vcmVnaXN0cnkiKSxjPXQoIi4uL2NvbG9yIiksdT10KCIuLi9jb2xvcnNjYWxlIiksZj1pLnN0clRyYW5zbGF0ZSxoPXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpLHA9dCgiLi4vLi4vY29uc3RhbnRzL3htbG5zX25hbWVzcGFjZXMiKSxkPXQoIi4uLy4uL2NvbnN0YW50cy9hbGlnbm1lbnQiKS5MSU5FX1NQQUNJTkcsbT10KCIuLi8uLi9jb25zdGFudHMvaW50ZXJhY3Rpb25zIikuREVTRUxFQ1RESU0sZz10KCIuLi8uLi90cmFjZXMvc2NhdHRlci9zdWJ0eXBlcyIpLHY9dCgiLi4vLi4vdHJhY2VzL3NjYXR0ZXIvbWFrZV9idWJibGVfc2l6ZV9mdW5jIikseT10KCIuLi8uLi9jb21wb25lbnRzL2Z4L2hlbHBlcnMiKS5hcHBlbmRBcnJheVBvaW50VmFsdWUseD1lLmV4cG9ydHM9e307ZnVuY3Rpb24gYih0LGUscil7dmFyIG49ZS5maWxscGF0dGVybixpPW4mJnguZ2V0UGF0dGVybkF0dHIobi5zaGFwZSwwLCIiKTtpZihpKXt2YXIgYT14LmdldFBhdHRlcm5BdHRyKG4uYmdjb2xvciwwLG51bGwpLG89eC5nZXRQYXR0ZXJuQXR0cihuLmZnY29sb3IsMCxudWxsKSxzPW4uZmdvcGFjaXR5LGw9eC5nZXRQYXR0ZXJuQXR0cihuLnNpemUsMCw4KSx1PXguZ2V0UGF0dGVybkF0dHIobi5zb2xpZGl0eSwwLC4zKSxmPWUudWlkO3gucGF0dGVybih0LCJwb2ludCIscixmLGksbCx1LHZvaWQgMCxuLmZpbGxtb2RlLGEsbyxzKX1lbHNlIGUuZmlsbGNvbG9yJiZ0LmNhbGwoYy5maWxsLGUuZmlsbGNvbG9yKX14LmZvbnQ9ZnVuY3Rpb24odCxlLHIsbil7aS5pc1BsYWluT2JqZWN0KGUpJiYobj1lLmNvbG9yLHI9ZS5zaXplLGU9ZS5mYW1pbHkpLGUmJnQuc3R5bGUoImZvbnQtZmFtaWx5IixlKSxyKzEmJnQuc3R5bGUoImZvbnQtc2l6ZSIscisicHgiKSxuJiZ0LmNhbGwoYy5maWxsLG4pfSx4LnNldFBvc2l0aW9uPWZ1bmN0aW9uKHQsZSxyKXt0LmF0dHIoIngiLGUpLmF0dHIoInkiLHIpfSx4LnNldFNpemU9ZnVuY3Rpb24odCxlLHIpe3QuYXR0cigid2lkdGgiLGUpLmF0dHIoImhlaWdodCIscil9LHguc2V0UmVjdD1mdW5jdGlvbih0LGUscixuLGkpe3QuY2FsbCh4LnNldFBvc2l0aW9uLGUscikuY2FsbCh4LnNldFNpemUsbixpKX0seC50cmFuc2xhdGVQb2ludD1mdW5jdGlvbih0LGUscixuKXt2YXIgaT1yLmMycCh0LngpLGE9bi5jMnAodC55KTtyZXR1cm4hIShvKGkpJiZvKGEpJiZlLm5vZGUoKSkmJigidGV4dCI9PT1lLm5vZGUoKS5ub2RlTmFtZT9lLmF0dHIoIngiLGkpLmF0dHIoInkiLGEpOmUuYXR0cigidHJhbnNmb3JtIixmKGksYSkpLCEwKX0seC50cmFuc2xhdGVQb2ludHM9ZnVuY3Rpb24odCxlLHIpe3QuZWFjaCgoZnVuY3Rpb24odCl7dmFyIGk9bi5zZWxlY3QodGhpcyk7eC50cmFuc2xhdGVQb2ludCh0LGksZSxyKX0pKX0seC5oaWRlT3V0c2lkZVJhbmdlUG9pbnQ9ZnVuY3Rpb24odCxlLHIsbixpLGEpe2UuYXR0cigiZGlzcGxheSIsci5pc1B0V2l0aGluUmFuZ2UodCxpKSYmbi5pc1B0V2l0aGluUmFuZ2UodCxhKT9udWxsOiJub25lIil9LHguaGlkZU91dHNpZGVSYW5nZVBvaW50cz1mdW5jdGlvbih0LGUpe2lmKGUuX2hhc0NsaXBPbkF4aXNGYWxzZSl7dmFyIHI9ZS54YXhpcyxpPWUueWF4aXM7dC5lYWNoKChmdW5jdGlvbihlKXt2YXIgYT1lWzBdLnRyYWNlLG89YS54Y2FsZW5kYXIscz1hLnljYWxlbmRhcixjPWwudHJhY2VJcyhhLCJiYXItbGlrZSIpPyIuYmFydGV4dCI6Ii5wb2ludCwudGV4dHBvaW50Ijt0LnNlbGVjdEFsbChjKS5lYWNoKChmdW5jdGlvbih0KXt4LmhpZGVPdXRzaWRlUmFuZ2VQb2ludCh0LG4uc2VsZWN0KHRoaXMpLHIsaSxvLHMpfSkpfSkpfX0seC5jcmlzcFJvdW5kPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZSYmbyhlKT90Ll9jb250ZXh0LnN0YXRpY1Bsb3Q/ZTplPDE/MTpNYXRoLnJvdW5kKGUpOnJ8fDB9LHguc2luZ2xlTGluZVN0eWxlPWZ1bmN0aW9uKHQsZSxyLG4saSl7ZS5zdHlsZSgiZmlsbCIsIm5vbmUiKTt2YXIgYT0oKCh0fHxbXSlbMF18fHt9KS50cmFjZXx8e30pLmxpbmV8fHt9LG89cnx8YS53aWR0aHx8MCxzPWl8fGEuZGFzaHx8IiI7Yy5zdHJva2UoZSxufHxhLmNvbG9yKSx4LmRhc2hMaW5lKGUscyxvKX0seC5saW5lR3JvdXBTdHlsZT1mdW5jdGlvbih0LGUscixpKXt0LnN0eWxlKCJmaWxsIiwibm9uZSIpLmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBhPSgoKHR8fFtdKVswXXx8e30pLnRyYWNlfHx7fSkubGluZXx8e30sbz1lfHxhLndpZHRofHwwLHM9aXx8YS5kYXNofHwiIjtuLnNlbGVjdCh0aGlzKS5jYWxsKGMuc3Ryb2tlLHJ8fGEuY29sb3IpLmNhbGwoeC5kYXNoTGluZSxzLG8pfSkpfSx4LmRhc2hMaW5lPWZ1bmN0aW9uKHQsZSxyKXtyPStyfHwwLGU9eC5kYXNoU3R5bGUoZSxyKSx0LnN0eWxlKHsic3Ryb2tlLWRhc2hhcnJheSI6ZSwic3Ryb2tlLXdpZHRoIjpyKyJweCJ9KX0seC5kYXNoU3R5bGU9ZnVuY3Rpb24odCxlKXtlPStlfHwxO3ZhciByPU1hdGgubWF4KGUsMyk7cmV0dXJuInNvbGlkIj09PXQ/dD0iIjoiZG90Ij09PXQ/dD1yKyJweCwiK3IrInB4IjoiZGFzaCI9PT10P3Q9MypyKyJweCwiKzMqcisicHgiOiJsb25nZGFzaCI9PT10P3Q9NSpyKyJweCwiKzUqcisicHgiOiJkYXNoZG90Ij09PXQ/dD0zKnIrInB4LCIrcisicHgsIityKyJweCwiK3IrInB4IjoibG9uZ2Rhc2hkb3QiPT09dCYmKHQ9NSpyKyJweCwiKzIqcisicHgsIityKyJweCwiKzIqcisicHgiKSx0fSx4LnNpbmdsZUZpbGxTdHlsZT1mdW5jdGlvbih0LGUpe3ZhciByPW4uc2VsZWN0KHQubm9kZSgpKTtiKHQsKChyLmRhdGEoKVswXXx8W10pWzBdfHx7fSkudHJhY2V8fHt9LGUpfSx4LmZpbGxHcm91cFN0eWxlPWZ1bmN0aW9uKHQsZSl7dC5zdHlsZSgic3Ryb2tlLXdpZHRoIiwwKS5lYWNoKChmdW5jdGlvbih0KXt2YXIgcj1uLnNlbGVjdCh0aGlzKTt0WzBdLnRyYWNlJiZiKHIsdFswXS50cmFjZSxlKX0pKX07dmFyIF89dCgiLi9zeW1ib2xfZGVmcyIpO3guc3ltYm9sTmFtZXM9W10seC5zeW1ib2xGdW5jcz1bXSx4LnN5bWJvbE5lZWRMaW5lcz17fSx4LnN5bWJvbE5vRG90PXt9LHguc3ltYm9sTm9GaWxsPXt9LHguc3ltYm9sTGlzdD1bXSxPYmplY3Qua2V5cyhfKS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT1fW3RdLHI9ZS5uO3guc3ltYm9sTGlzdC5wdXNoKHIsU3RyaW5nKHIpLHQscisxMDAsU3RyaW5nKHIrMTAwKSx0KyItb3BlbiIpLHguc3ltYm9sTmFtZXNbcl09dCx4LnN5bWJvbEZ1bmNzW3JdPWUuZixlLm5lZWRMaW5lJiYoeC5zeW1ib2xOZWVkTGluZXNbcl09ITApLGUubm9Eb3Q/eC5zeW1ib2xOb0RvdFtyXT0hMDp4LnN5bWJvbExpc3QucHVzaChyKzIwMCxTdHJpbmcocisyMDApLHQrIi1kb3QiLHIrMzAwLFN0cmluZyhyKzMwMCksdCsiLW9wZW4tZG90IiksZS5ub0ZpbGwmJih4LnN5bWJvbE5vRmlsbFtyXT0hMCl9KSk7dmFyIHc9eC5zeW1ib2xOYW1lcy5sZW5ndGg7ZnVuY3Rpb24gVCh0LGUpe3ZhciByPXQlMTAwO3JldHVybiB4LnN5bWJvbEZ1bmNzW3JdKGUpKyh0Pj0yMDA/Ik0wLDAuNUwwLjUsMEwwLC0wLjVMLTAuNSwwWiI6IiIpfXguc3ltYm9sTnVtYmVyPWZ1bmN0aW9uKHQpe2lmKG8odCkpdD0rdDtlbHNlIGlmKCJzdHJpbmciPT10eXBlb2YgdCl7dmFyIGU9MDt0LmluZGV4T2YoIi1vcGVuIik+MCYmKGU9MTAwLHQ9dC5yZXBsYWNlKCItb3BlbiIsIiIpKSx0LmluZGV4T2YoIi1kb3QiKT4wJiYoZSs9MjAwLHQ9dC5yZXBsYWNlKCItZG90IiwiIikpLCh0PXguc3ltYm9sTmFtZXMuaW5kZXhPZih0KSk+PTAmJih0Kz1lKX1yZXR1cm4gdCUxMDA+PXd8fHQ+PTQwMD8wOk1hdGguZmxvb3IoTWF0aC5tYXgodCwwKSl9O3ZhciBrPXt4MToxLHgyOjAseTE6MCx5MjowfSxBPXt4MTowLHgyOjAseTE6MSx5MjowfSxNPWEoIn5mIiksUz17cmFkaWFsOntub2RlOiJyYWRpYWxHcmFkaWVudCJ9LHJhZGlhbHJldmVyc2VkOntub2RlOiJyYWRpYWxHcmFkaWVudCIscmV2ZXJzZWQ6ITB9LGhvcml6b250YWw6e25vZGU6ImxpbmVhckdyYWRpZW50IixhdHRyczprfSxob3Jpem9udGFscmV2ZXJzZWQ6e25vZGU6ImxpbmVhckdyYWRpZW50IixhdHRyczprLHJldmVyc2VkOiEwfSx2ZXJ0aWNhbDp7bm9kZToibGluZWFyR3JhZGllbnQiLGF0dHJzOkF9LHZlcnRpY2FscmV2ZXJzZWQ6e25vZGU6ImxpbmVhckdyYWRpZW50IixhdHRyczpBLHJldmVyc2VkOiEwfX07eC5ncmFkaWVudD1mdW5jdGlvbih0LGUscixhLG8sbCl7Zm9yKHZhciB1PW8ubGVuZ3RoLGY9U1thXSxoPW5ldyBBcnJheSh1KSxwPTA7cDx1O3ArKylmLnJldmVyc2VkP2hbdS0xLXBdPVtNKDEwMCooMS1vW3BdWzBdKSksb1twXVsxXV06aFtwXT1bTSgxMDAqb1twXVswXSksb1twXVsxXV07dmFyIGQ9ZS5fZnVsbExheW91dCxtPSJnIitkLl91aWQrIi0iK3IsZz1kLl9kZWZzLnNlbGVjdCgiLmdyYWRpZW50cyIpLnNlbGVjdEFsbCgiIyIrbSkuZGF0YShbYStoLmpvaW4oIjsiKV0saS5pZGVudGl0eSk7Zy5leGl0KCkucmVtb3ZlKCksZy5lbnRlcigpLmFwcGVuZChmLm5vZGUpLmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQ9bi5zZWxlY3QodGhpcyk7Zi5hdHRycyYmdC5hdHRyKGYuYXR0cnMpLHQuYXR0cigiaWQiLG0pO3ZhciBlPXQuc2VsZWN0QWxsKCJzdG9wIikuZGF0YShoKTtlLmV4aXQoKS5yZW1vdmUoKSxlLmVudGVyKCkuYXBwZW5kKCJzdG9wIiksZS5lYWNoKChmdW5jdGlvbih0KXt2YXIgZT1zKHRbMV0pO24uc2VsZWN0KHRoaXMpLmF0dHIoe29mZnNldDp0WzBdKyIlIiwic3RvcC1jb2xvciI6Yy50aW55UkdCKGUpLCJzdG9wLW9wYWNpdHkiOmUuZ2V0QWxwaGEoKX0pfSkpfSkpLHQuc3R5bGUobCxSKG0sZSkpLnN0eWxlKGwrIi1vcGFjaXR5IixudWxsKSx0LmNsYXNzZWQoImdyYWRpZW50X2ZpbGxlZCIsITApfSx4LnBhdHRlcm49ZnVuY3Rpb24odCxlLHIsYSxvLHMsbCx1LGYsaCxwLGQpe3ZhciBtPSJsZWdlbmQiPT09ZTt1JiYoIm92ZXJsYXkiPT09Zj8oaD11LHA9Yy5jb250cmFzdChoKSk6KGg9dm9pZCAwLHA9dSkpO3ZhciBnLHYseSx4LGIsXyx3LFQsayxBLE0sUz1yLl9mdWxsTGF5b3V0LEU9InAiK1MuX3VpZCsiLSIrYSxMPXt9O3N3aXRjaChvKXtjYXNlIi8iOmc9cypNYXRoLnNxcnQoMiksdj1zKk1hdGguc3FydCgyKSxfPSJwYXRoIixMPXtkOnk9Ik0tIitnLzQrIiwiK3YvNCsibCIrZy8yKyIsLSIrdi8yKyJNMCwiK3YrIkwiK2crIiwwTSIrZy80KjMrIiwiK3YvNCo1KyJsIitnLzIrIiwtIit2LzIsb3BhY2l0eTpkLHN0cm9rZTpwLCJzdHJva2Utd2lkdGgiOih4PWwqcykrInB4In07YnJlYWs7Y2FzZSJcXCI6Zz1zKk1hdGguc3FydCgyKSx2PXMqTWF0aC5zcXJ0KDIpLF89InBhdGgiLEw9e2Q6eT0iTSIrZy80KjMrIiwtIit2LzQrImwiK2cvMisiLCIrdi8yKyJNMCwwTCIrZysiLCIrdisiTS0iK2cvNCsiLCIrdi80KjMrImwiK2cvMisiLCIrdi8yLG9wYWNpdHk6ZCxzdHJva2U6cCwic3Ryb2tlLXdpZHRoIjooeD1sKnMpKyJweCJ9O2JyZWFrO2Nhc2UieCI6Zz1zKk1hdGguc3FydCgyKSx2PXMqTWF0aC5zcXJ0KDIpLHk9Ik0tIitnLzQrIiwiK3YvNCsibCIrZy8yKyIsLSIrdi8yKyJNMCwiK3YrIkwiK2crIiwwTSIrZy80KjMrIiwiK3YvNCo1KyJsIitnLzIrIiwtIit2LzIrIk0iK2cvNCozKyIsLSIrdi80KyJsIitnLzIrIiwiK3YvMisiTTAsMEwiK2crIiwiK3YrIk0tIitnLzQrIiwiK3YvNCozKyJsIitnLzIrIiwiK3YvMix4PXMtcypNYXRoLnNxcnQoMS1sKSxfPSJwYXRoIixMPXtkOnksb3BhY2l0eTpkLHN0cm9rZTpwLCJzdHJva2Utd2lkdGgiOngrInB4In07YnJlYWs7Y2FzZSJ8IjpfPSJwYXRoIixfPSJwYXRoIixMPXtkOnk9Ik0iKyhnPXMpLzIrIiwwTCIrZy8yKyIsIisodj1zKSxvcGFjaXR5OmQsc3Ryb2tlOnAsInN0cm9rZS13aWR0aCI6KHg9bCpzKSsicHgifTticmVhaztjYXNlIi0iOl89InBhdGgiLF89InBhdGgiLEw9e2Q6eT0iTTAsIisodj1zKS8yKyJMIisoZz1zKSsiLCIrdi8yLG9wYWNpdHk6ZCxzdHJva2U6cCwic3Ryb2tlLXdpZHRoIjooeD1sKnMpKyJweCJ9O2JyZWFrO2Nhc2UiKyI6Xz0icGF0aCIseT0iTSIrKGc9cykvMisiLDBMIitnLzIrIiwiKyh2PXMpKyJNMCwiK3YvMisiTCIrZysiLCIrdi8yLHg9cy1zKk1hdGguc3FydCgxLWwpLF89InBhdGgiLEw9e2Q6eSxvcGFjaXR5OmQsc3Ryb2tlOnAsInN0cm9rZS13aWR0aCI6eCsicHgifTticmVhaztjYXNlIi4iOmc9cyx2PXMsbDxNYXRoLlBJLzQ/Yj1NYXRoLnNxcnQobCpzKnMvTWF0aC5QSSk6KHc9bCxUPU1hdGguUEkvNCxrPTEsQT1zLzIsTT1zL01hdGguc3FydCgyKSxiPUErKE0tQSkqKHctVCkvKGstVCkpLF89ImNpcmNsZSIsTD17Y3g6Zy8yLGN5OnYvMixyOmIsb3BhY2l0eTpkLGZpbGw6cH19dmFyIEM9W298fCJub1NoIixofHwibm9CZyIscHx8Im5vRmciLHMsbF0uam9pbigiOyIpLFA9Uy5fZGVmcy5zZWxlY3QoIi5wYXR0ZXJucyIpLnNlbGVjdEFsbCgiIyIrRSkuZGF0YShbQ10saS5pZGVudGl0eSk7UC5leGl0KCkucmVtb3ZlKCksUC5lbnRlcigpLmFwcGVuZCgicGF0dGVybiIpLmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQ9bi5zZWxlY3QodGhpcyk7aWYodC5hdHRyKHtpZDpFLHdpZHRoOmcrInB4IixoZWlnaHQ6disicHgiLHBhdHRlcm5Vbml0czoidXNlclNwYWNlT25Vc2UiLHBhdHRlcm5UcmFuc2Zvcm06bT8ic2NhbGUoMC44KSI6IiJ9KSxoKXt2YXIgZT10LnNlbGVjdEFsbCgicmVjdCIpLmRhdGEoWzBdKTtlLmV4aXQoKS5yZW1vdmUoKSxlLmVudGVyKCkuYXBwZW5kKCJyZWN0IikuYXR0cih7d2lkdGg6ZysicHgiLGhlaWdodDp2KyJweCIsZmlsbDpofSl9dmFyIHI9dC5zZWxlY3RBbGwoXykuZGF0YShbMF0pO3IuZXhpdCgpLnJlbW92ZSgpLHIuZW50ZXIoKS5hcHBlbmQoXykuYXR0cihMKX0pKSx0LnN0eWxlKCJmaWxsIixSKEUscikpLnN0eWxlKCJmaWxsLW9wYWNpdHkiLG51bGwpLHQuY2xhc3NlZCgicGF0dGVybl9maWxsZWQiLCEwKX0seC5pbml0R3JhZGllbnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQ7aS5lbnN1cmVTaW5nbGUoZS5fZGVmcywiZyIsImdyYWRpZW50cyIpLnNlbGVjdEFsbCgibGluZWFyR3JhZGllbnQscmFkaWFsR3JhZGllbnQiKS5yZW1vdmUoKSxuLnNlbGVjdCh0KS5zZWxlY3RBbGwoIi5ncmFkaWVudF9maWxsZWQiKS5jbGFzc2VkKCJncmFkaWVudF9maWxsZWQiLCExKX0seC5pbml0UGF0dGVybnM9ZnVuY3Rpb24odCl7dmFyIGU9dC5fZnVsbExheW91dDtpLmVuc3VyZVNpbmdsZShlLl9kZWZzLCJnIiwicGF0dGVybnMiKS5zZWxlY3RBbGwoInBhdHRlcm4iKS5yZW1vdmUoKSxuLnNlbGVjdCh0KS5zZWxlY3RBbGwoIi5wYXR0ZXJuX2ZpbGxlZCIpLmNsYXNzZWQoInBhdHRlcm5fZmlsbGVkIiwhMSl9LHguZ2V0UGF0dGVybkF0dHI9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0JiZpLmlzQXJyYXlPclR5cGVkQXJyYXkodCk/ZTx0Lmxlbmd0aD90W2VdOnI6dH0seC5wb2ludFN0eWxlPWZ1bmN0aW9uKHQsZSxyKXtpZih0LnNpemUoKSl7dmFyIGk9eC5tYWtlUG9pbnRTdHlsZUZucyhlKTt0LmVhY2goKGZ1bmN0aW9uKHQpe3guc2luZ2xlUG9pbnRTdHlsZSh0LG4uc2VsZWN0KHRoaXMpLGUsaSxyKX0pKX19LHguc2luZ2xlUG9pbnRTdHlsZT1mdW5jdGlvbih0LGUscixuLGEpe3ZhciBvPXIubWFya2VyLHM9by5saW5lO2lmKGUuc3R5bGUoIm9wYWNpdHkiLG4uc2VsZWN0ZWRPcGFjaXR5Rm4/bi5zZWxlY3RlZE9wYWNpdHlGbih0KTp2b2lkIDA9PT10Lm1vP28ub3BhY2l0eTp0Lm1vKSxuLm1zMm1yYyl7dmFyIGw7bD0idmFyaW91cyI9PT10Lm1zfHwidmFyaW91cyI9PT1vLnNpemU/MzpuLm1zMm1yYyh0Lm1zKSx0Lm1yYz1sLG4uc2VsZWN0ZWRTaXplRm4mJihsPXQubXJjPW4uc2VsZWN0ZWRTaXplRm4odCkpO3ZhciB1PXguc3ltYm9sTnVtYmVyKHQubXh8fG8uc3ltYm9sKXx8MDt0Lm9tPXUlMjAwPj0xMDAsZS5hdHRyKCJkIixUKHUsbCkpfXZhciBmLGgscCxkPSExO2lmKHQuc28pcD1zLm91dGxpZXJ3aWR0aCxoPXMub3V0bGllcmNvbG9yLGY9by5vdXRsaWVyY29sb3I7ZWxzZXt2YXIgbT0oc3x8e30pLndpZHRoO3A9KHQubWx3KzF8fG0rMXx8KHQudHJhY2U/KHQudHJhY2UubWFya2VyLmxpbmV8fHt9KS53aWR0aDowKSsxKS0xfHwwLGg9Im1sYyJpbiB0P3QubWxjYz1uLmxpbmVTY2FsZSh0Lm1sYyk6aS5pc0FycmF5T3JUeXBlZEFycmF5KHMuY29sb3IpP2MuZGVmYXVsdExpbmU6cy5jb2xvcixpLmlzQXJyYXlPclR5cGVkQXJyYXkoby5jb2xvcikmJihmPWMuZGVmYXVsdExpbmUsZD0hMCksZj0ibWMiaW4gdD90Lm1jYz1uLm1hcmtlclNjYWxlKHQubWMpOm8uY29sb3J8fCJyZ2JhKDAsMCwwLDApIixuLnNlbGVjdGVkQ29sb3JGbiYmKGY9bi5zZWxlY3RlZENvbG9yRm4odCkpfWlmKHQub20pZS5jYWxsKGMuc3Ryb2tlLGYpLnN0eWxlKHsic3Ryb2tlLXdpZHRoIjoocHx8MSkrInB4IixmaWxsOiJub25lIn0pO2Vsc2V7ZS5zdHlsZSgic3Ryb2tlLXdpZHRoIiwodC5pc0JsYW5rPzA6cCkrInB4Iik7dmFyIGc9by5ncmFkaWVudCx2PXQubWd0O3Y/ZD0hMDp2PWcmJmcudHlwZSxpLmlzQXJyYXlPclR5cGVkQXJyYXkodikmJih2PXZbMF0sU1t2XXx8KHY9MCkpO3ZhciB5PW8ucGF0dGVybixiPXkmJnguZ2V0UGF0dGVybkF0dHIoeS5zaGFwZSx0LmksIiIpO2lmKHYmJiJub25lIiE9PXYpe3ZhciBfPXQubWdjO18/ZD0hMDpfPWcuY29sb3I7dmFyIHc9ci51aWQ7ZCYmKHcrPSItIit0LmkpLHguZ3JhZGllbnQoZSxhLHcsdixbWzAsX10sWzEsZl1dLCJmaWxsIil9ZWxzZSBpZihiKXt2YXIgaz14LmdldFBhdHRlcm5BdHRyKHkuYmdjb2xvcix0LmksbnVsbCksQT14LmdldFBhdHRlcm5BdHRyKHkuZmdjb2xvcix0LmksbnVsbCksTT15LmZnb3BhY2l0eSxFPXguZ2V0UGF0dGVybkF0dHIoeS5zaXplLHQuaSw4KSxMPXguZ2V0UGF0dGVybkF0dHIoeS5zb2xpZGl0eSx0LmksLjMpLEM9dC5tY2N8fGkuaXNBcnJheU9yVHlwZWRBcnJheSh5LnNoYXBlKXx8aS5pc0FycmF5T3JUeXBlZEFycmF5KHkuYmdjb2xvcil8fGkuaXNBcnJheU9yVHlwZWRBcnJheSh5LnNpemUpfHxpLmlzQXJyYXlPclR5cGVkQXJyYXkoeS5zb2xpZGl0eSksUD1yLnVpZDtDJiYoUCs9Ii0iK3QuaSkseC5wYXR0ZXJuKGUsInBvaW50IixhLFAsYixFLEwsdC5tY2MseS5maWxsbW9kZSxrLEEsTSl9ZWxzZSBjLmZpbGwoZSxmKTtwJiZjLnN0cm9rZShlLGgpfX0seC5tYWtlUG9pbnRTdHlsZUZucz1mdW5jdGlvbih0KXt2YXIgZT17fSxyPXQubWFya2VyO3JldHVybiBlLm1hcmtlclNjYWxlPXgudHJ5Q29sb3JzY2FsZShyLCIiKSxlLmxpbmVTY2FsZT14LnRyeUNvbG9yc2NhbGUociwibGluZSIpLGwudHJhY2VJcyh0LCJzeW1ib2xzIikmJihlLm1zMm1yYz1nLmlzQnViYmxlKHQpP3YodCk6ZnVuY3Rpb24oKXtyZXR1cm4oci5zaXplfHw2KS8yfSksdC5zZWxlY3RlZHBvaW50cyYmaS5leHRlbmRGbGF0KGUseC5tYWtlU2VsZWN0ZWRQb2ludFN0eWxlRm5zKHQpKSxlfSx4Lm1ha2VTZWxlY3RlZFBvaW50U3R5bGVGbnM9ZnVuY3Rpb24odCl7dmFyIGU9e30scj10LnNlbGVjdGVkfHx7fSxuPXQudW5zZWxlY3RlZHx8e30sYT10Lm1hcmtlcnx8e30sbz1yLm1hcmtlcnx8e30scz1uLm1hcmtlcnx8e30sYz1hLm9wYWNpdHksdT1vLm9wYWNpdHksZj1zLm9wYWNpdHksaD12b2lkIDAhPT11LHA9dm9pZCAwIT09ZjsoaS5pc0FycmF5T3JUeXBlZEFycmF5KGMpfHxofHxwKSYmKGUuc2VsZWN0ZWRPcGFjaXR5Rm49ZnVuY3Rpb24odCl7dmFyIGU9dm9pZCAwPT09dC5tbz9hLm9wYWNpdHk6dC5tbztyZXR1cm4gdC5zZWxlY3RlZD9oP3U6ZTpwP2Y6bSplfSk7dmFyIGQ9YS5jb2xvcixnPW8uY29sb3Isdj1zLmNvbG9yOyhnfHx2KSYmKGUuc2VsZWN0ZWRDb2xvckZuPWZ1bmN0aW9uKHQpe3ZhciBlPXQubWNjfHxkO3JldHVybiB0LnNlbGVjdGVkP2d8fGU6dnx8ZX0pO3ZhciB5PWEuc2l6ZSx4PW8uc2l6ZSxiPXMuc2l6ZSxfPXZvaWQgMCE9PXgsdz12b2lkIDAhPT1iO3JldHVybiBsLnRyYWNlSXModCwic3ltYm9scyIpJiYoX3x8dykmJihlLnNlbGVjdGVkU2l6ZUZuPWZ1bmN0aW9uKHQpe3ZhciBlPXQubXJjfHx5LzI7cmV0dXJuIHQuc2VsZWN0ZWQ/Xz94LzI6ZTp3P2IvMjplfSksZX0seC5tYWtlU2VsZWN0ZWRUZXh0U3R5bGVGbnM9ZnVuY3Rpb24odCl7dmFyIGU9e30scj10LnNlbGVjdGVkfHx7fSxuPXQudW5zZWxlY3RlZHx8e30saT10LnRleHRmb250fHx7fSxhPXIudGV4dGZvbnR8fHt9LG89bi50ZXh0Zm9udHx8e30scz1pLmNvbG9yLGw9YS5jb2xvcix1PW8uY29sb3I7cmV0dXJuIGUuc2VsZWN0ZWRUZXh0Q29sb3JGbj1mdW5jdGlvbih0KXt2YXIgZT10LnRjfHxzO3JldHVybiB0LnNlbGVjdGVkP2x8fGU6dXx8KGw/ZTpjLmFkZE9wYWNpdHkoZSxtKSl9LGV9LHguc2VsZWN0ZWRQb2ludFN0eWxlPWZ1bmN0aW9uKHQsZSl7aWYodC5zaXplKCkmJmUuc2VsZWN0ZWRwb2ludHMpe3ZhciByPXgubWFrZVNlbGVjdGVkUG9pbnRTdHlsZUZucyhlKSxpPWUubWFya2VyfHx7fSxhPVtdO3Iuc2VsZWN0ZWRPcGFjaXR5Rm4mJmEucHVzaCgoZnVuY3Rpb24odCxlKXt0LnN0eWxlKCJvcGFjaXR5IixyLnNlbGVjdGVkT3BhY2l0eUZuKGUpKX0pKSxyLnNlbGVjdGVkQ29sb3JGbiYmYS5wdXNoKChmdW5jdGlvbih0LGUpe2MuZmlsbCh0LHIuc2VsZWN0ZWRDb2xvckZuKGUpKX0pKSxyLnNlbGVjdGVkU2l6ZUZuJiZhLnB1c2goKGZ1bmN0aW9uKHQsZSl7dmFyIG49ZS5teHx8aS5zeW1ib2x8fDAsYT1yLnNlbGVjdGVkU2l6ZUZuKGUpO3QuYXR0cigiZCIsVCh4LnN5bWJvbE51bWJlcihuKSxhKSksZS5tcmMyPWF9KSksYS5sZW5ndGgmJnQuZWFjaCgoZnVuY3Rpb24odCl7Zm9yKHZhciBlPW4uc2VsZWN0KHRoaXMpLHI9MDtyPGEubGVuZ3RoO3IrKylhW3JdKGUsdCl9KSl9fSx4LnRyeUNvbG9yc2NhbGU9ZnVuY3Rpb24odCxlKXt2YXIgcj1lP2kubmVzdGVkUHJvcGVydHkodCxlKS5nZXQoKTp0O2lmKHIpe3ZhciBuPXIuY29sb3I7aWYoKHIuY29sb3JzY2FsZXx8ci5fY29sb3JBeCkmJmkuaXNBcnJheU9yVHlwZWRBcnJheShuKSlyZXR1cm4gdS5tYWtlQ29sb3JTY2FsZUZ1bmNGcm9tVHJhY2Uocil9cmV0dXJuIGkuaWRlbnRpdHl9O3ZhciBFPXtzdGFydDoxLGVuZDotMSxtaWRkbGU6MCxib3R0b206MSx0b3A6LTF9O2Z1bmN0aW9uIEwodCxlLHIsaSxhKXt2YXIgbz1uLnNlbGVjdCh0Lm5vZGUoKS5wYXJlbnROb2RlKSxzPS0xIT09ZS5pbmRleE9mKCJ0b3AiKT8idG9wIjotMSE9PWUuaW5kZXhPZigiYm90dG9tIik/ImJvdHRvbSI6Im1pZGRsZSIsbD0tMSE9PWUuaW5kZXhPZigibGVmdCIpPyJlbmQiOi0xIT09ZS5pbmRleE9mKCJyaWdodCIpPyJzdGFydCI6Im1pZGRsZSIsYz1pP2kvLjgrMTowLHU9KGgubGluZUNvdW50KHQpLTEpKmQrMSxwPUVbbF0qYyxtPS43NSpyK0Vbc10qYysoRVtzXS0xKSp1KnIvMjt0LmF0dHIoInRleHQtYW5jaG9yIixsKSxhfHxvLmF0dHIoInRyYW5zZm9ybSIsZihwLG0pKX1mdW5jdGlvbiBDKHQsZSl7dmFyIHI9dC50c3x8ZS50ZXh0Zm9udC5zaXplO3JldHVybiBvKHIpJiZyPjA/cjowfXgudGV4dFBvaW50U3R5bGU9ZnVuY3Rpb24odCxlLHIpe2lmKHQuc2l6ZSgpKXt2YXIgYTtpZihlLnNlbGVjdGVkcG9pbnRzKXt2YXIgbz14Lm1ha2VTZWxlY3RlZFRleHRTdHlsZUZucyhlKTthPW8uc2VsZWN0ZWRUZXh0Q29sb3JGbn12YXIgcz1lLnRleHR0ZW1wbGF0ZSxsPXIuX2Z1bGxMYXlvdXQ7dC5lYWNoKChmdW5jdGlvbih0KXt2YXIgbz1uLnNlbGVjdCh0aGlzKSxjPXM/aS5leHRyYWN0T3B0aW9uKHQsZSwidHh0IiwidGV4dHRlbXBsYXRlIik6aS5leHRyYWN0T3B0aW9uKHQsZSwidHgiLCJ0ZXh0Iik7aWYoY3x8MD09PWMpe2lmKHMpe3ZhciB1PWUuX21vZHVsZS5mb3JtYXRMYWJlbHMsZj11P3UodCxlLGwpOnt9LHA9e307eShwLGUsdC5pKTt2YXIgZD1lLl9tZXRhfHx7fTtjPWkudGV4dHRlbXBsYXRlU3RyaW5nKGMsZixsLl9kM2xvY2FsZSxwLHQsZCl9dmFyIG09dC50cHx8ZS50ZXh0cG9zaXRpb24sZz1DKHQsZSksdj1hP2EodCk6dC50Y3x8ZS50ZXh0Zm9udC5jb2xvcjtvLmNhbGwoeC5mb250LHQudGZ8fGUudGV4dGZvbnQuZmFtaWx5LGcsdikudGV4dChjKS5jYWxsKGguY29udmVydFRvVHNwYW5zLHIpLmNhbGwoTCxtLGcsdC5tcmMpfWVsc2Ugby5yZW1vdmUoKX0pKX19LHguc2VsZWN0ZWRUZXh0U3R5bGU9ZnVuY3Rpb24odCxlKXtpZih0LnNpemUoKSYmZS5zZWxlY3RlZHBvaW50cyl7dmFyIHI9eC5tYWtlU2VsZWN0ZWRUZXh0U3R5bGVGbnMoZSk7dC5lYWNoKChmdW5jdGlvbih0KXt2YXIgaT1uLnNlbGVjdCh0aGlzKSxhPXIuc2VsZWN0ZWRUZXh0Q29sb3JGbih0KSxvPXQudHB8fGUudGV4dHBvc2l0aW9uLHM9Qyh0LGUpO2MuZmlsbChpLGEpO3ZhciB1PWwudHJhY2VJcyhlLCJiYXItbGlrZSIpO0woaSxvLHMsdC5tcmMyfHx0Lm1yYyx1KX0pKX19O2Z1bmN0aW9uIFAodCxlLHIsaSl7dmFyIGE9dFswXS1lWzBdLG89dFsxXS1lWzFdLHM9clswXS1lWzBdLGw9clsxXS1lWzFdLGM9TWF0aC5wb3coYSphK28qbywuMjUpLHU9TWF0aC5wb3cocypzK2wqbCwuMjUpLGY9KHUqdSphLWMqYypzKSppLGg9KHUqdSpvLWMqYypsKSppLHA9Myp1KihjK3UpLGQ9MypjKihjK3UpO3JldHVybltbbi5yb3VuZChlWzBdKyhwJiZmL3ApLDIpLG4ucm91bmQoZVsxXSsocCYmaC9wKSwyKV0sW24ucm91bmQoZVswXS0oZCYmZi9kKSwyKSxuLnJvdW5kKGVbMV0tKGQmJmgvZCksMildXX14LnNtb290aG9wZW49ZnVuY3Rpb24odCxlKXtpZih0Lmxlbmd0aDwzKXJldHVybiJNIit0LmpvaW4oIkwiKTt2YXIgcixuPSJNIit0WzBdLGk9W107Zm9yKHI9MTtyPHQubGVuZ3RoLTE7cisrKWkucHVzaChQKHRbci0xXSx0W3JdLHRbcisxXSxlKSk7Zm9yKG4rPSJRIitpWzBdWzBdKyIgIit0WzFdLHI9MjtyPHQubGVuZ3RoLTE7cisrKW4rPSJDIitpW3ItMl1bMV0rIiAiK2lbci0xXVswXSsiICIrdFtyXTtyZXR1cm4gbis9IlEiK2lbdC5sZW5ndGgtM11bMV0rIiAiK3RbdC5sZW5ndGgtMV19LHguc21vb3RoY2xvc2VkPWZ1bmN0aW9uKHQsZSl7aWYodC5sZW5ndGg8MylyZXR1cm4iTSIrdC5qb2luKCJMIikrIloiO3ZhciByLG49Ik0iK3RbMF0saT10Lmxlbmd0aC0xLGE9W1AodFtpXSx0WzBdLHRbMV0sZSldO2ZvcihyPTE7cjxpO3IrKylhLnB1c2goUCh0W3ItMV0sdFtyXSx0W3IrMV0sZSkpO2ZvcihhLnB1c2goUCh0W2ktMV0sdFtpXSx0WzBdLGUpKSxyPTE7cjw9aTtyKyspbis9IkMiK2Fbci0xXVsxXSsiICIrYVtyXVswXSsiICIrdFtyXTtyZXR1cm4gbis9IkMiK2FbaV1bMV0rIiAiK2FbMF1bMF0rIiAiK3RbMF0rIloifTt2YXIgST17aHY6ZnVuY3Rpb24odCxlKXtyZXR1cm4iSCIrbi5yb3VuZChlWzBdLDIpKyJWIituLnJvdW5kKGVbMV0sMil9LHZoOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIlYiK24ucm91bmQoZVsxXSwyKSsiSCIrbi5yb3VuZChlWzBdLDIpfSxodmg6ZnVuY3Rpb24odCxlKXtyZXR1cm4iSCIrbi5yb3VuZCgodFswXStlWzBdKS8yLDIpKyJWIituLnJvdW5kKGVbMV0sMikrIkgiK24ucm91bmQoZVswXSwyKX0sdmh2OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIlYiK24ucm91bmQoKHRbMV0rZVsxXSkvMiwyKSsiSCIrbi5yb3VuZChlWzBdLDIpKyJWIituLnJvdW5kKGVbMV0sMil9fSxPPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIkwiK24ucm91bmQoZVswXSwyKSsiLCIrbi5yb3VuZChlWzFdLDIpfTt4LnN0ZXBzPWZ1bmN0aW9uKHQpe3ZhciBlPUlbdF18fE87cmV0dXJuIGZ1bmN0aW9uKHQpe2Zvcih2YXIgcj0iTSIrbi5yb3VuZCh0WzBdWzBdLDIpKyIsIituLnJvdW5kKHRbMF1bMV0sMiksaT0xO2k8dC5sZW5ndGg7aSsrKXIrPWUodFtpLTFdLHRbaV0pO3JldHVybiByfX0seC5tYWtlVGVzdGVyPWZ1bmN0aW9uKCl7dmFyIHQ9aS5lbnN1cmVTaW5nbGVCeUlkKG4uc2VsZWN0KCJib2R5IiksInN2ZyIsImpzLXBsb3RseS10ZXN0ZXIiLChmdW5jdGlvbih0KXt0LmF0dHIocC5zdmdBdHRycykuc3R5bGUoe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsbGVmdDoiLTEwMDAwcHgiLHRvcDoiLTEwMDAwcHgiLHdpZHRoOiI5MDAwcHgiLGhlaWdodDoiOTAwMHB4Iiwiei1pbmRleCI6IjEifSl9KSksZT1pLmVuc3VyZVNpbmdsZSh0LCJwYXRoIiwianMtcmVmZXJlbmNlLXBvaW50IiwoZnVuY3Rpb24odCl7dC5hdHRyKCJkIiwiTTAsMEgxVjFIMFoiKS5zdHlsZSh7InN0cm9rZS13aWR0aCI6MCxmaWxsOiJibGFjayJ9KX0pKTt4LnRlc3Rlcj10LHgudGVzdHJlZj1lfSx4LnNhdmVkQkJveGVzPXt9O3ZhciB6PTA7ZnVuY3Rpb24gRCh0KXt2YXIgZT10LmdldEF0dHJpYnV0ZSgiZGF0YS11bmZvcm1hdHRlZCIpO2lmKG51bGwhPT1lKXJldHVybiBlK3QuZ2V0QXR0cmlidXRlKCJkYXRhLW1hdGgiKSt0LmdldEF0dHJpYnV0ZSgidGV4dC1hbmNob3IiKSt0LmdldEF0dHJpYnV0ZSgic3R5bGUiKX1mdW5jdGlvbiBSKHQsZSl7aWYoIXQpcmV0dXJuIG51bGw7dmFyIHI9ZS5fY29udGV4dCxuPXIuX2V4cG9ydGVkUGxvdD8iIjpyLl9iYXNlVXJsfHwiIjtyZXR1cm4gbj8idXJsKCciK24rIiMiK3QrIicpIjoidXJsKCMiK3QrIikifXguYkJveD1mdW5jdGlvbih0LGUscil7dmFyIGEsbyxzO2lmKHJ8fChyPUQodCkpLHIpe2lmKGE9eC5zYXZlZEJCb3hlc1tyXSlyZXR1cm4gaS5leHRlbmRGbGF0KHt9LGEpfWVsc2UgaWYoMT09PXQuY2hpbGROb2Rlcy5sZW5ndGgpe3ZhciBsPXQuY2hpbGROb2Rlc1swXTtpZihyPUQobCkpe3ZhciBjPStsLmdldEF0dHJpYnV0ZSgieCIpfHwwLHU9K2wuZ2V0QXR0cmlidXRlKCJ5Iil8fDAsZj1sLmdldEF0dHJpYnV0ZSgidHJhbnNmb3JtIik7aWYoIWYpe3ZhciBwPXguYkJveChsLCExLHIpO3JldHVybiBjJiYocC5sZWZ0Kz1jLHAucmlnaHQrPWMpLHUmJihwLnRvcCs9dSxwLmJvdHRvbSs9dSkscH1pZihyKz0ifiIrYysifiIrdSsifiIrZixhPXguc2F2ZWRCQm94ZXNbcl0pcmV0dXJuIGkuZXh0ZW5kRmxhdCh7fSxhKX19ZT9vPXQ6KHM9eC50ZXN0ZXIubm9kZSgpLG89dC5jbG9uZU5vZGUoITApLHMuYXBwZW5kQ2hpbGQobykpLG4uc2VsZWN0KG8pLmF0dHIoInRyYW5zZm9ybSIsbnVsbCkuY2FsbChoLnBvc2l0aW9uVGV4dCwwLDApO3ZhciBkPW8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbT14LnRlc3RyZWYubm9kZSgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2V8fHMucmVtb3ZlQ2hpbGQobyk7dmFyIGc9e2hlaWdodDpkLmhlaWdodCx3aWR0aDpkLndpZHRoLGxlZnQ6ZC5sZWZ0LW0ubGVmdCx0b3A6ZC50b3AtbS50b3AscmlnaHQ6ZC5yaWdodC1tLmxlZnQsYm90dG9tOmQuYm90dG9tLW0udG9wfTtyZXR1cm4gej49MWU0JiYoeC5zYXZlZEJCb3hlcz17fSx6PTApLHImJih4LnNhdmVkQkJveGVzW3JdPWcpLHorKyxpLmV4dGVuZEZsYXQoe30sZyl9LHguc2V0Q2xpcFVybD1mdW5jdGlvbih0LGUscil7dC5hdHRyKCJjbGlwLXBhdGgiLFIoZSxyKSl9LHguZ2V0VHJhbnNsYXRlPWZ1bmN0aW9uKHQpe3ZhciBlPSh0W3QuYXR0cj8iYXR0ciI6ImdldEF0dHJpYnV0ZSJdKCJ0cmFuc2Zvcm0iKXx8IiIpLnJlcGxhY2UoLy4qXGJ0cmFuc2xhdGVcKCgtP1xkKlwuP1xkKilbXi1cZF0qKC0/XGQqXC4/XGQqKVteXGRdLiovLChmdW5jdGlvbih0LGUscil7cmV0dXJuW2Uscl0uam9pbigiICIpfSkpLnNwbGl0KCIgIik7cmV0dXJue3g6K2VbMF18fDAseTorZVsxXXx8MH19LHguc2V0VHJhbnNsYXRlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10LmF0dHI/ImF0dHIiOiJnZXRBdHRyaWJ1dGUiLGk9dC5hdHRyPyJhdHRyIjoic2V0QXR0cmlidXRlIixhPXRbbl0oInRyYW5zZm9ybSIpfHwiIjtyZXR1cm4gZT1lfHwwLHI9cnx8MCxhPWEucmVwbGFjZSgvKFxidHJhbnNsYXRlXCguKj9cKTs/KS8sIiIpLnRyaW0oKSxhPShhKz1mKGUscikpLnRyaW0oKSx0W2ldKCJ0cmFuc2Zvcm0iLGEpLGF9LHguZ2V0U2NhbGU9ZnVuY3Rpb24odCl7dmFyIGU9KHRbdC5hdHRyPyJhdHRyIjoiZ2V0QXR0cmlidXRlIl0oInRyYW5zZm9ybSIpfHwiIikucmVwbGFjZSgvLipcYnNjYWxlXCgoXGQqXC4/XGQqKVteXGRdKihcZCpcLj9cZCopW15cZF0uKi8sKGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm5bZSxyXS5qb2luKCIgIil9KSkuc3BsaXQoIiAiKTtyZXR1cm57eDorZVswXXx8MSx5OitlWzFdfHwxfX0seC5zZXRTY2FsZT1mdW5jdGlvbih0LGUscil7dmFyIG49dC5hdHRyPyJhdHRyIjoiZ2V0QXR0cmlidXRlIixpPXQuYXR0cj8iYXR0ciI6InNldEF0dHJpYnV0ZSIsYT10W25dKCJ0cmFuc2Zvcm0iKXx8IiI7cmV0dXJuIGU9ZXx8MSxyPXJ8fDEsYT1hLnJlcGxhY2UoLyhcYnNjYWxlXCguKj9cKTs/KS8sIiIpLnRyaW0oKSxhPShhKz0ic2NhbGUoIitlKyIsIityKyIpIikudHJpbSgpLHRbaV0oInRyYW5zZm9ybSIsYSksYX07dmFyIEY9L1xzKnNjLiovO3guc2V0UG9pbnRHcm91cFNjYWxlPWZ1bmN0aW9uKHQsZSxyKXtpZihlPWV8fDEscj1yfHwxLHQpe3ZhciBuPTE9PT1lJiYxPT09cj8iIjoic2NhbGUoIitlKyIsIityKyIpIjt0LmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQ9KHRoaXMuZ2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iKXx8IiIpLnJlcGxhY2UoRiwiIik7dD0odCs9bikudHJpbSgpLHRoaXMuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLHQpfSkpfX07dmFyIEI9L3RyYW5zbGF0ZVwoW14pXSpcKVxzKiQvO3guc2V0VGV4dFBvaW50c1NjYWxlPWZ1bmN0aW9uKHQsZSxyKXt0JiZ0LmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQsaT1uLnNlbGVjdCh0aGlzKSxhPWkuc2VsZWN0KCJ0ZXh0Iik7aWYoYS5ub2RlKCkpe3ZhciBvPXBhcnNlRmxvYXQoYS5hdHRyKCJ4Iil8fDApLHM9cGFyc2VGbG9hdChhLmF0dHIoInkiKXx8MCksbD0oaS5hdHRyKCJ0cmFuc2Zvcm0iKXx8IiIpLm1hdGNoKEIpO3Q9MT09PWUmJjE9PT1yP1tdOltmKG8scyksInNjYWxlKCIrZSsiLCIrcisiKSIsZigtbywtcyldLGwmJnQucHVzaChsKSxpLmF0dHIoInRyYW5zZm9ybSIsdC5qb2luKCIiKSl9fSkpfX0seyIuLi8uLi9jb21wb25lbnRzL2Z4L2hlbHBlcnMiOjQwMywiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCI6NDgzLCIuLi8uLi9jb25zdGFudHMvaW50ZXJhY3Rpb25zIjo0OTAsIi4uLy4uL2NvbnN0YW50cy94bWxuc19uYW1lc3BhY2VzIjo0OTIsIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiOjU0MSwiLi4vLi4vcmVnaXN0cnkiOjY0NywiLi4vLi4vdHJhY2VzL3NjYXR0ZXIvbWFrZV9idWJibGVfc2l6ZV9mdW5jIjo5NTMsIi4uLy4uL3RyYWNlcy9zY2F0dGVyL3N1YnR5cGVzIjo5NjEsIi4uL2NvbG9yIjozNjcsIi4uL2NvbG9yc2NhbGUiOjM3OSwiLi9zeW1ib2xfZGVmcyI6MzkwLCJAcGxvdGx5L2QzIjo1OCwiZmFzdC1pc251bWVyaWMiOjE5MCx0aW55Y29sb3IyOjMxM31dLDM5MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIik7ZS5leHBvcnRzPXtjaXJjbGU6e246MCxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQodCwyKTtyZXR1cm4iTSIrZSsiLDBBIitlKyIsIitlKyIgMCAxLDEgMCwtIitlKyJBIitlKyIsIitlKyIgMCAwLDEgIitlKyIsMFoifX0sc3F1YXJlOntuOjEsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKHQsMik7cmV0dXJuIk0iK2UrIiwiK2UrIkgtIitlKyJWLSIrZSsiSCIrZSsiWiJ9fSxkaWFtb25kOntuOjIsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKDEuMyp0LDIpO3JldHVybiJNIitlKyIsMEwwLCIrZSsiTC0iK2UrIiwwTDAsLSIrZSsiWiJ9fSxjcm9zczp7bjozLGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCguNCp0LDIpLHI9bi5yb3VuZCgxLjIqdCwyKTtyZXR1cm4iTSIrcisiLCIrZSsiSCIrZSsiViIrcisiSC0iK2UrIlYiK2UrIkgtIityKyJWLSIrZSsiSC0iK2UrIlYtIityKyJIIitlKyJWLSIrZSsiSCIrcisiWiJ9fSx4OntuOjQsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKC44KnQvTWF0aC5zcXJ0KDIpLDIpLHI9ImwiK2UrIiwiK2UsaT0ibCIrZSsiLC0iK2UsYT0ibC0iK2UrIiwtIitlLG89ImwtIitlKyIsIitlO3JldHVybiJNMCwiK2UrcitpK2EraSthK28rYStvK3IrbytyKyJaIn19LCJ0cmlhbmdsZS11cCI6e246NSxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoMip0L01hdGguc3FydCgzKSwyKTtyZXR1cm4iTS0iK2UrIiwiK24ucm91bmQodC8yLDIpKyJIIitlKyJMMCwtIituLnJvdW5kKHQsMikrIloifX0sInRyaWFuZ2xlLWRvd24iOntuOjYsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKDIqdC9NYXRoLnNxcnQoMyksMik7cmV0dXJuIk0tIitlKyIsLSIrbi5yb3VuZCh0LzIsMikrIkgiK2UrIkwwLCIrbi5yb3VuZCh0LDIpKyJaIn19LCJ0cmlhbmdsZS1sZWZ0Ijp7bjo3LGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCgyKnQvTWF0aC5zcXJ0KDMpLDIpO3JldHVybiJNIituLnJvdW5kKHQvMiwyKSsiLC0iK2UrIlYiK2UrIkwtIituLnJvdW5kKHQsMikrIiwwWiJ9fSwidHJpYW5nbGUtcmlnaHQiOntuOjgsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKDIqdC9NYXRoLnNxcnQoMyksMik7cmV0dXJuIk0tIituLnJvdW5kKHQvMiwyKSsiLC0iK2UrIlYiK2UrIkwiK24ucm91bmQodCwyKSsiLDBaIn19LCJ0cmlhbmdsZS1uZSI6e246OSxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoLjYqdCwyKSxyPW4ucm91bmQoMS4yKnQsMik7cmV0dXJuIk0tIityKyIsLSIrZSsiSCIrZSsiViIrcisiWiJ9fSwidHJpYW5nbGUtc2UiOntuOjEwLGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCguNip0LDIpLHI9bi5yb3VuZCgxLjIqdCwyKTtyZXR1cm4iTSIrZSsiLC0iK3IrIlYiK2UrIkgtIityKyJaIn19LCJ0cmlhbmdsZS1zdyI6e246MTEsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKC42KnQsMikscj1uLnJvdW5kKDEuMip0LDIpO3JldHVybiJNIityKyIsIitlKyJILSIrZSsiVi0iK3IrIloifX0sInRyaWFuZ2xlLW53Ijp7bjoxMixmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoLjYqdCwyKSxyPW4ucm91bmQoMS4yKnQsMik7cmV0dXJuIk0tIitlKyIsIityKyJWLSIrZSsiSCIrcisiWiJ9fSxwZW50YWdvbjp7bjoxMyxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoLjk1MSp0LDIpLHI9bi5yb3VuZCguNTg4KnQsMiksaT1uLnJvdW5kKC10LDIpLGE9bi5yb3VuZCgtLjMwOSp0LDIpO3JldHVybiJNIitlKyIsIithKyJMIityKyIsIituLnJvdW5kKC44MDkqdCwyKSsiSC0iK3IrIkwtIitlKyIsIithKyJMMCwiK2krIloifX0saGV4YWdvbjp7bjoxNCxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQodCwyKSxyPW4ucm91bmQodC8yLDIpLGk9bi5yb3VuZCh0Kk1hdGguc3FydCgzKS8yLDIpO3JldHVybiJNIitpKyIsLSIrcisiViIrcisiTDAsIitlKyJMLSIraSsiLCIrcisiVi0iK3IrIkwwLC0iK2UrIloifX0saGV4YWdvbjI6e246MTUsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKHQsMikscj1uLnJvdW5kKHQvMiwyKSxpPW4ucm91bmQodCpNYXRoLnNxcnQoMykvMiwyKTtyZXR1cm4iTS0iK3IrIiwiK2krIkgiK3IrIkwiK2UrIiwwTCIrcisiLC0iK2krIkgtIityKyJMLSIrZSsiLDBaIn19LG9jdGFnb246e246MTYsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKC45MjQqdCwyKSxyPW4ucm91bmQoLjM4Myp0LDIpO3JldHVybiJNLSIrcisiLC0iK2UrIkgiK3IrIkwiK2UrIiwtIityKyJWIityKyJMIityKyIsIitlKyJILSIrcisiTC0iK2UrIiwiK3IrIlYtIityKyJaIn19LHN0YXI6e246MTcsZjpmdW5jdGlvbih0KXt2YXIgZT0xLjQqdCxyPW4ucm91bmQoLjIyNSplLDIpLGk9bi5yb3VuZCguOTUxKmUsMiksYT1uLnJvdW5kKC4zNjMqZSwyKSxvPW4ucm91bmQoLjU4OCplLDIpLHM9bi5yb3VuZCgtZSwyKSxsPW4ucm91bmQoLS4zMDkqZSwyKSxjPW4ucm91bmQoLjExOCplLDIpLHU9bi5yb3VuZCguODA5KmUsMik7cmV0dXJuIk0iK3IrIiwiK2wrIkgiK2krIkwiK2ErIiwiK2MrIkwiK28rIiwiK3UrIkwwLCIrbi5yb3VuZCguMzgyKmUsMikrIkwtIitvKyIsIit1KyJMLSIrYSsiLCIrYysiTC0iK2krIiwiK2wrIkgtIityKyJMMCwiK3MrIloifX0saGV4YWdyYW06e246MTgsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKC42Nip0LDIpLHI9bi5yb3VuZCguMzgqdCwyKSxpPW4ucm91bmQoLjc2KnQsMik7cmV0dXJuIk0tIitpKyIsMGwtIityKyIsLSIrZSsiaCIraSsibCIrcisiLC0iK2UrImwiK3IrIiwiK2UrImgiK2krImwtIityKyIsIitlKyJsIityKyIsIitlKyJoLSIraSsibC0iK3IrIiwiK2UrImwtIityKyIsLSIrZSsiaC0iK2krIloifX0sInN0YXItdHJpYW5nbGUtdXAiOntuOjE5LGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCh0Kk1hdGguc3FydCgzKSouOCwyKSxyPW4ucm91bmQoLjgqdCwyKSxpPW4ucm91bmQoMS42KnQsMiksYT1uLnJvdW5kKDQqdCwyKSxvPSJBICIrYSsiLCIrYSsiIDAgMCAxICI7cmV0dXJuIk0tIitlKyIsIityK28rZSsiLCIrcitvKyIwLC0iK2krbysiLSIrZSsiLCIrcisiWiJ9fSwic3Rhci10cmlhbmdsZS1kb3duIjp7bjoyMCxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQodCpNYXRoLnNxcnQoMykqLjgsMikscj1uLnJvdW5kKC44KnQsMiksaT1uLnJvdW5kKDEuNip0LDIpLGE9bi5yb3VuZCg0KnQsMiksbz0iQSAiK2ErIiwiK2ErIiAwIDAgMSAiO3JldHVybiJNIitlKyIsLSIrcitvKyItIitlKyIsLSIrcitvKyIwLCIraStvK2UrIiwtIityKyJaIn19LCJzdGFyLXNxdWFyZSI6e246MjEsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKDEuMSp0LDIpLHI9bi5yb3VuZCgyKnQsMiksaT0iQSAiK3IrIiwiK3IrIiAwIDAgMSAiO3JldHVybiJNLSIrZSsiLC0iK2UraSsiLSIrZSsiLCIrZStpK2UrIiwiK2UraStlKyIsLSIrZStpKyItIitlKyIsLSIrZSsiWiJ9fSwic3Rhci1kaWFtb25kIjp7bjoyMixmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoMS40KnQsMikscj1uLnJvdW5kKDEuOSp0LDIpLGk9IkEgIityKyIsIityKyIgMCAwIDEgIjtyZXR1cm4iTS0iK2UrIiwwIitpKyIwLCIrZStpK2UrIiwwIitpKyIwLC0iK2UraSsiLSIrZSsiLDBaIn19LCJkaWFtb25kLXRhbGwiOntuOjIzLGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCguNyp0LDIpLHI9bi5yb3VuZCgxLjQqdCwyKTtyZXR1cm4iTTAsIityKyJMIitlKyIsMEwwLC0iK3IrIkwtIitlKyIsMFoifX0sImRpYW1vbmQtd2lkZSI6e246MjQsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKDEuNCp0LDIpLHI9bi5yb3VuZCguNyp0LDIpO3JldHVybiJNMCwiK3IrIkwiK2UrIiwwTDAsLSIrcisiTC0iK2UrIiwwWiJ9fSxob3VyZ2xhc3M6e246MjUsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKHQsMik7cmV0dXJuIk0iK2UrIiwiK2UrIkgtIitlKyJMIitlKyIsLSIrZSsiSC0iK2UrIloifSxub0RvdDohMH0sYm93dGllOntuOjI2LGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCh0LDIpO3JldHVybiJNIitlKyIsIitlKyJWLSIrZSsiTC0iK2UrIiwiK2UrIlYtIitlKyJaIn0sbm9Eb3Q6ITB9LCJjaXJjbGUtY3Jvc3MiOntuOjI3LGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCh0LDIpO3JldHVybiJNMCwiK2UrIlYtIitlKyJNIitlKyIsMEgtIitlKyJNIitlKyIsMEEiK2UrIiwiK2UrIiAwIDEsMSAwLC0iK2UrIkEiK2UrIiwiK2UrIiAwIDAsMSAiK2UrIiwwWiJ9LG5lZWRMaW5lOiEwLG5vRG90OiEwfSwiY2lyY2xlLXgiOntuOjI4LGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCh0LDIpLHI9bi5yb3VuZCh0L01hdGguc3FydCgyKSwyKTtyZXR1cm4iTSIrcisiLCIrcisiTC0iK3IrIiwtIityKyJNIityKyIsLSIrcisiTC0iK3IrIiwiK3IrIk0iK2UrIiwwQSIrZSsiLCIrZSsiIDAgMSwxIDAsLSIrZSsiQSIrZSsiLCIrZSsiIDAgMCwxICIrZSsiLDBaIn0sbmVlZExpbmU6ITAsbm9Eb3Q6ITB9LCJzcXVhcmUtY3Jvc3MiOntuOjI5LGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCh0LDIpO3JldHVybiJNMCwiK2UrIlYtIitlKyJNIitlKyIsMEgtIitlKyJNIitlKyIsIitlKyJILSIrZSsiVi0iK2UrIkgiK2UrIloifSxuZWVkTGluZTohMCxub0RvdDohMH0sInNxdWFyZS14Ijp7bjozMCxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQodCwyKTtyZXR1cm4iTSIrZSsiLCIrZSsiTC0iK2UrIiwtIitlKyJNIitlKyIsLSIrZSsiTC0iK2UrIiwiK2UrIk0iK2UrIiwiK2UrIkgtIitlKyJWLSIrZSsiSCIrZSsiWiJ9LG5lZWRMaW5lOiEwLG5vRG90OiEwfSwiZGlhbW9uZC1jcm9zcyI6e246MzEsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKDEuMyp0LDIpO3JldHVybiJNIitlKyIsMEwwLCIrZSsiTC0iK2UrIiwwTDAsLSIrZSsiWk0wLC0iK2UrIlYiK2UrIk0tIitlKyIsMEgiK2V9LG5lZWRMaW5lOiEwLG5vRG90OiEwfSwiZGlhbW9uZC14Ijp7bjozMixmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoMS4zKnQsMikscj1uLnJvdW5kKC42NSp0LDIpO3JldHVybiJNIitlKyIsMEwwLCIrZSsiTC0iK2UrIiwwTDAsLSIrZSsiWk0tIityKyIsLSIrcisiTCIrcisiLCIrcisiTS0iK3IrIiwiK3IrIkwiK3IrIiwtIityfSxuZWVkTGluZTohMCxub0RvdDohMH0sImNyb3NzLXRoaW4iOntuOjMzLGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCgxLjQqdCwyKTtyZXR1cm4iTTAsIitlKyJWLSIrZSsiTSIrZSsiLDBILSIrZX0sbmVlZExpbmU6ITAsbm9Eb3Q6ITAsbm9GaWxsOiEwfSwieC10aGluIjp7bjozNCxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQodCwyKTtyZXR1cm4iTSIrZSsiLCIrZSsiTC0iK2UrIiwtIitlKyJNIitlKyIsLSIrZSsiTC0iK2UrIiwiK2V9LG5lZWRMaW5lOiEwLG5vRG90OiEwLG5vRmlsbDohMH0sYXN0ZXJpc2s6e246MzUsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKDEuMip0LDIpLHI9bi5yb3VuZCguODUqdCwyKTtyZXR1cm4iTTAsIitlKyJWLSIrZSsiTSIrZSsiLDBILSIrZSsiTSIrcisiLCIrcisiTC0iK3IrIiwtIityKyJNIityKyIsLSIrcisiTC0iK3IrIiwiK3J9LG5lZWRMaW5lOiEwLG5vRG90OiEwLG5vRmlsbDohMH0saGFzaDp7bjozNixmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQodC8yLDIpLHI9bi5yb3VuZCh0LDIpO3JldHVybiJNIitlKyIsIityKyJWLSIrcisibS0iK3IrIiwwViIrcisiTSIrcisiLCIrZSsiSC0iK3IrIm0wLC0iK3IrIkgiK3J9LG5lZWRMaW5lOiEwLG5vRmlsbDohMH0sInktdXAiOntuOjM3LGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCgxLjIqdCwyKSxyPW4ucm91bmQoMS42KnQsMiksaT1uLnJvdW5kKC44KnQsMik7cmV0dXJuIk0tIitlKyIsIitpKyJMMCwwTSIrZSsiLCIraSsiTDAsME0wLC0iK3IrIkwwLDAifSxuZWVkTGluZTohMCxub0RvdDohMCxub0ZpbGw6ITB9LCJ5LWRvd24iOntuOjM4LGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCgxLjIqdCwyKSxyPW4ucm91bmQoMS42KnQsMiksaT1uLnJvdW5kKC44KnQsMik7cmV0dXJuIk0tIitlKyIsLSIraSsiTDAsME0iK2UrIiwtIitpKyJMMCwwTTAsIityKyJMMCwwIn0sbmVlZExpbmU6ITAsbm9Eb3Q6ITAsbm9GaWxsOiEwfSwieS1sZWZ0Ijp7bjozOSxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoMS4yKnQsMikscj1uLnJvdW5kKDEuNip0LDIpLGk9bi5yb3VuZCguOCp0LDIpO3JldHVybiJNIitpKyIsIitlKyJMMCwwTSIraSsiLC0iK2UrIkwwLDBNLSIrcisiLDBMMCwwIn0sbmVlZExpbmU6ITAsbm9Eb3Q6ITAsbm9GaWxsOiEwfSwieS1yaWdodCI6e246NDAsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKDEuMip0LDIpLHI9bi5yb3VuZCgxLjYqdCwyKSxpPW4ucm91bmQoLjgqdCwyKTtyZXR1cm4iTS0iK2krIiwiK2UrIkwwLDBNLSIraSsiLC0iK2UrIkwwLDBNIityKyIsMEwwLDAifSxuZWVkTGluZTohMCxub0RvdDohMCxub0ZpbGw6ITB9LCJsaW5lLWV3Ijp7bjo0MSxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoMS40KnQsMik7cmV0dXJuIk0iK2UrIiwwSC0iK2V9LG5lZWRMaW5lOiEwLG5vRG90OiEwLG5vRmlsbDohMH0sImxpbmUtbnMiOntuOjQyLGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCgxLjQqdCwyKTtyZXR1cm4iTTAsIitlKyJWLSIrZX0sbmVlZExpbmU6ITAsbm9Eb3Q6ITAsbm9GaWxsOiEwfSwibGluZS1uZSI6e246NDMsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKHQsMik7cmV0dXJuIk0iK2UrIiwtIitlKyJMLSIrZSsiLCIrZX0sbmVlZExpbmU6ITAsbm9Eb3Q6ITAsbm9GaWxsOiEwfSwibGluZS1udyI6e246NDQsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKHQsMik7cmV0dXJuIk0iK2UrIiwiK2UrIkwtIitlKyIsLSIrZX0sbmVlZExpbmU6ITAsbm9Eb3Q6ITAsbm9GaWxsOiEwfSwiYXJyb3ctdXAiOntuOjQ1LGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCh0LDIpO3JldHVybiJNMCwwTC0iK2UrIiwiK24ucm91bmQoMip0LDIpKyJIIitlKyJaIn0sbm9Eb3Q6ITB9LCJhcnJvdy1kb3duIjp7bjo0NixmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQodCwyKTtyZXR1cm4iTTAsMEwtIitlKyIsLSIrbi5yb3VuZCgyKnQsMikrIkgiK2UrIloifSxub0RvdDohMH0sImFycm93LWxlZnQiOntuOjQ3LGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCgyKnQsMikscj1uLnJvdW5kKHQsMik7cmV0dXJuIk0wLDBMIitlKyIsLSIrcisiViIrcisiWiJ9LG5vRG90OiEwfSwiYXJyb3ctcmlnaHQiOntuOjQ4LGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCgyKnQsMikscj1uLnJvdW5kKHQsMik7cmV0dXJuIk0wLDBMLSIrZSsiLC0iK3IrIlYiK3IrIloifSxub0RvdDohMH0sImFycm93LWJhci11cCI6e246NDksZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKHQsMik7cmV0dXJuIk0tIitlKyIsMEgiK2UrIk0wLDBMLSIrZSsiLCIrbi5yb3VuZCgyKnQsMikrIkgiK2UrIloifSxuZWVkTGluZTohMCxub0RvdDohMH0sImFycm93LWJhci1kb3duIjp7bjo1MCxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQodCwyKTtyZXR1cm4iTS0iK2UrIiwwSCIrZSsiTTAsMEwtIitlKyIsLSIrbi5yb3VuZCgyKnQsMikrIkgiK2UrIloifSxuZWVkTGluZTohMCxub0RvdDohMH0sImFycm93LWJhci1sZWZ0Ijp7bjo1MSxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoMip0LDIpLHI9bi5yb3VuZCh0LDIpO3JldHVybiJNMCwtIityKyJWIityKyJNMCwwTCIrZSsiLC0iK3IrIlYiK3IrIloifSxuZWVkTGluZTohMCxub0RvdDohMH0sImFycm93LWJhci1yaWdodCI6e246NTIsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKDIqdCwyKSxyPW4ucm91bmQodCwyKTtyZXR1cm4iTTAsLSIrcisiViIrcisiTTAsMEwtIitlKyIsLSIrcisiViIrcisiWiJ9LG5lZWRMaW5lOiEwLG5vRG90OiEwfX19LHsiQHBsb3RseS9kMyI6NTh9XSwzOTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXt2aXNpYmxlOnt2YWxUeXBlOiJib29sZWFuIixlZGl0VHlwZToiY2FsYyJ9LHR5cGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInBlcmNlbnQiLCJjb25zdGFudCIsInNxcnQiLCJkYXRhIl0sZWRpdFR5cGU6ImNhbGMifSxzeW1tZXRyaWM6e3ZhbFR5cGU6ImJvb2xlYW4iLGVkaXRUeXBlOiJjYWxjIn0sYXJyYXk6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sYXJyYXltaW51czp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSx2YWx1ZTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjEwLGVkaXRUeXBlOiJjYWxjIn0sdmFsdWVtaW51czp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjEwLGVkaXRUeXBlOiJjYWxjIn0sdHJhY2VyZWY6e3ZhbFR5cGU6ImludGVnZXIiLG1pbjowLGRmbHQ6MCxlZGl0VHlwZToic3R5bGUifSx0cmFjZXJlZm1pbnVzOnt2YWxUeXBlOiJpbnRlZ2VyIixtaW46MCxkZmx0OjAsZWRpdFR5cGU6InN0eWxlIn0sY29weV95c3R5bGU6e3ZhbFR5cGU6ImJvb2xlYW4iLGVkaXRUeXBlOiJwbG90In0sY29weV96c3R5bGU6e3ZhbFR5cGU6ImJvb2xlYW4iLGVkaXRUeXBlOiJzdHlsZSJ9LGNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6InN0eWxlIn0sdGhpY2tuZXNzOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MixlZGl0VHlwZToic3R5bGUifSx3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxlZGl0VHlwZToicGxvdCJ9LGVkaXRUeXBlOiJjYWxjIixfZGVwcmVjYXRlZDp7b3BhY2l0eTp7dmFsVHlwZToibnVtYmVyIixlZGl0VHlwZToic3R5bGUifX19fSx7fV0sMzkyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksaT10KCIuLi8uLi9yZWdpc3RyeSIpLGE9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxvPXQoIi4uLy4uL2xpYiIpLHM9dCgiLi9jb21wdXRlX2Vycm9yIik7ZnVuY3Rpb24gbCh0LGUscixpKXt2YXIgbD1lWyJlcnJvcl8iK2ldfHx7fSxjPVtdO2lmKGwudmlzaWJsZSYmLTEhPT1bImxpbmVhciIsImxvZyJdLmluZGV4T2Yoci50eXBlKSl7Zm9yKHZhciB1PXMobCksZj0wO2Y8dC5sZW5ndGg7ZisrKXt2YXIgaD10W2ZdLHA9aC5pO2lmKHZvaWQgMD09PXApcD1mO2Vsc2UgaWYobnVsbD09PXApY29udGludWU7dmFyIGQ9aFtpXTtpZihuKHIuYzJsKGQpKSl7dmFyIG09dShkLHApO2lmKG4obVswXSkmJm4obVsxXSkpe3ZhciBnPWhbaSsicyJdPWQtbVswXSx2PWhbaSsiaCJdPWQrbVsxXTtjLnB1c2goZyx2KX19fXZhciB5PXIuX2lkLHg9ZS5fZXh0cmVtZXNbeV0sYj1hLmZpbmRFeHRyZW1lcyhyLGMsby5leHRlbmRGbGF0KHt0b3plcm86eC5vcHRzLnRvemVyb30se3BhZGRlZDohMH0pKTt4Lm1pbj14Lm1pbi5jb25jYXQoYi5taW4pLHgubWF4PXgubWF4LmNvbmNhdChiLm1heCl9fWUuZXhwb3J0cz1mdW5jdGlvbih0KXtmb3IodmFyIGU9dC5jYWxjZGF0YSxyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBuPWVbcl0sbz1uWzBdLnRyYWNlO2lmKCEwPT09by52aXNpYmxlJiZpLnRyYWNlSXMobywiZXJyb3JCYXJzT0siKSl7dmFyIHM9YS5nZXRGcm9tSWQodCxvLnhheGlzKSxjPWEuZ2V0RnJvbUlkKHQsby55YXhpcyk7bChuLG8scywieCIpLGwobixvLGMsInkiKX19fX0seyIuLi8uLi9saWIiOjUxNSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjU2NiwiLi4vLi4vcmVnaXN0cnkiOjY0NywiLi9jb21wdXRlX2Vycm9yIjozOTMsImZhc3QtaXNudW1lcmljIjoxOTB9XSwzOTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3JldHVybiJwZXJjZW50Ij09PXQ/ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguYWJzKHQqZS8xMDApfToiY29uc3RhbnQiPT09dD9mdW5jdGlvbigpe3JldHVybiBNYXRoLmFicyhlKX06InNxcnQiPT09dD9mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5zcXJ0KE1hdGguYWJzKHQpKX06dm9pZCAwfWUuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10LnR5cGUscj10LnN5bW1ldHJpYztpZigiZGF0YSI9PT1lKXt2YXIgaT10LmFycmF5fHxbXTtpZihyKXJldHVybiBmdW5jdGlvbih0LGUpe3ZhciByPStpW2VdO3JldHVybltyLHJdfTt2YXIgYT10LmFycmF5bWludXN8fFtdO3JldHVybiBmdW5jdGlvbih0LGUpe3ZhciByPStpW2VdLG49K2FbZV07cmV0dXJuIGlzTmFOKHIpJiZpc05hTihuKT9bTmFOLE5hTl06W258fDAscnx8MF19fXZhciBvPW4oZSx0LnZhbHVlKSxzPW4oZSx0LnZhbHVlbWludXMpO3JldHVybiByfHx2b2lkIDA9PT10LnZhbHVlbWludXM/ZnVuY3Rpb24odCl7dmFyIGU9byh0KTtyZXR1cm5bZSxlXX06ZnVuY3Rpb24odCl7cmV0dXJuW3ModCksbyh0KV19fX0se31dLDM5NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGk9dCgiLi4vLi4vcmVnaXN0cnkiKSxhPXQoIi4uLy4uL2xpYiIpLG89dCgiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpLHM9dCgiLi9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGwpe3ZhciBjPSJlcnJvcl8iK2wuYXhpcyx1PW8ubmV3Q29udGFpbmVyKGUsYyksZj10W2NdfHx7fTtmdW5jdGlvbiBoKHQsZSl7cmV0dXJuIGEuY29lcmNlKGYsdSxzLHQsZSl9aWYoITEhPT1oKCJ2aXNpYmxlIix2b2lkIDAhPT1mLmFycmF5fHx2b2lkIDAhPT1mLnZhbHVlfHwic3FydCI9PT1mLnR5cGUpKXt2YXIgcD1oKCJ0eXBlIiwiYXJyYXkiaW4gZj8iZGF0YSI6InBlcmNlbnQiKSxkPSEwOyJzcXJ0IiE9PXAmJihkPWgoInN5bW1ldHJpYyIsISgoImRhdGEiPT09cD8iYXJyYXltaW51cyI6InZhbHVlbWludXMiKWluIGYpKSksImRhdGEiPT09cD8oaCgiYXJyYXkiKSxoKCJ0cmFjZXJlZiIpLGR8fChoKCJhcnJheW1pbnVzIiksaCgidHJhY2VyZWZtaW51cyIpKSk6InBlcmNlbnQiIT09cCYmImNvbnN0YW50IiE9PXB8fChoKCJ2YWx1ZSIpLGR8fGgoInZhbHVlbWludXMiKSk7dmFyIG09ImNvcHlfIitsLmluaGVyaXQrInN0eWxlIjtpZihsLmluaGVyaXQpKGVbImVycm9yXyIrbC5pbmhlcml0XXx8e30pLnZpc2libGUmJmgobSwhKGYuY29sb3J8fG4oZi50aGlja25lc3MpfHxuKGYud2lkdGgpKSk7bC5pbmhlcml0JiZ1W21dfHwoaCgiY29sb3IiLHIpLGgoInRoaWNrbmVzcyIpLGgoIndpZHRoIixpLnRyYWNlSXMoZSwiZ2wzZCIpPzA6NCkpfX19LHsiLi4vLi4vbGliIjo1MTUsIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiOjU1NSwiLi4vLi4vcmVnaXN0cnkiOjY0NywiLi9hdHRyaWJ1dGVzIjozOTEsImZhc3QtaXNudW1lcmljIjoxOTB9XSwzOTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIikub3ZlcnJpZGVBbGwsYT10KCIuL2F0dHJpYnV0ZXMiKSxvPXtlcnJvcl94Om4uZXh0ZW5kRmxhdCh7fSxhKSxlcnJvcl95Om4uZXh0ZW5kRmxhdCh7fSxhKX07ZGVsZXRlIG8uZXJyb3JfeC5jb3B5X3pzdHlsZSxkZWxldGUgby5lcnJvcl95LmNvcHlfenN0eWxlLGRlbGV0ZSBvLmVycm9yX3kuY29weV95c3R5bGU7dmFyIHM9e2Vycm9yX3g6bi5leHRlbmRGbGF0KHt9LGEpLGVycm9yX3k6bi5leHRlbmRGbGF0KHt9LGEpLGVycm9yX3o6bi5leHRlbmRGbGF0KHt9LGEpfTtkZWxldGUgcy5lcnJvcl94LmNvcHlfeXN0eWxlLGRlbGV0ZSBzLmVycm9yX3kuY29weV95c3R5bGUsZGVsZXRlIHMuZXJyb3Jfei5jb3B5X3lzdHlsZSxkZWxldGUgcy5lcnJvcl96LmNvcHlfenN0eWxlLGUuZXhwb3J0cz17bW9kdWxlVHlwZToiY29tcG9uZW50IixuYW1lOiJlcnJvcmJhcnMiLHNjaGVtYTp7dHJhY2VzOntzY2F0dGVyOm8sYmFyOm8saGlzdG9ncmFtOm8sc2NhdHRlcjNkOmkocywiY2FsYyIsIm5lc3RlZCIpLHNjYXR0ZXJnbDppKG8sImNhbGMiLCJuZXN0ZWQiKX19LHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxjYWxjOnQoIi4vY2FsYyIpLG1ha2VDb21wdXRlRXJyb3I6dCgiLi9jb21wdXRlX2Vycm9yIikscGxvdDp0KCIuL3Bsb3QiKSxzdHlsZTp0KCIuL3N0eWxlIiksaG92ZXJJbmZvOmZ1bmN0aW9uKHQsZSxyKXsoZS5lcnJvcl95fHx7fSkudmlzaWJsZSYmKHIueWVycj10LnloLXQueSxlLmVycm9yX3kuc3ltbWV0cmljfHwoci55ZXJybmVnPXQueS10LnlzKSk7KGUuZXJyb3JfeHx8e30pLnZpc2libGUmJihyLnhlcnI9dC54aC10LngsZS5lcnJvcl94LnN5bW1ldHJpY3x8KHIueGVycm5lZz10LngtdC54cykpfX19LHsiLi4vLi4vbGliIjo1MTUsIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiOjU0OCwiLi9hdHRyaWJ1dGVzIjozOTEsIi4vY2FsYyI6MzkyLCIuL2NvbXB1dGVfZXJyb3IiOjM5MywiLi9kZWZhdWx0cyI6Mzk0LCIuL3Bsb3QiOjM5NiwiLi9zdHlsZSI6Mzk3fV0sMzk2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoImZhc3QtaXNudW1lcmljIiksYT10KCIuLi9kcmF3aW5nIiksbz10KCIuLi8uLi90cmFjZXMvc2NhdHRlci9zdWJ0eXBlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixzKXt2YXIgbD1yLnhheGlzLGM9ci55YXhpcyx1PXMmJnMuZHVyYXRpb24+MDtlLmVhY2goKGZ1bmN0aW9uKGUpe3ZhciBmLGg9ZVswXS50cmFjZSxwPWguZXJyb3JfeHx8e30sZD1oLmVycm9yX3l8fHt9O2guaWRzJiYoZj1mdW5jdGlvbih0KXtyZXR1cm4gdC5pZH0pO3ZhciBtPW8uaGFzTWFya2VycyhoKSYmaC5tYXJrZXIubWF4ZGlzcGxheWVkPjA7ZC52aXNpYmxlfHxwLnZpc2libGV8fChlPVtdKTt2YXIgZz1uLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoImcuZXJyb3JiYXIiKS5kYXRhKGUsZik7aWYoZy5leGl0KCkucmVtb3ZlKCksZS5sZW5ndGgpe3AudmlzaWJsZXx8Zy5zZWxlY3RBbGwoInBhdGgueGVycm9yIikucmVtb3ZlKCksZC52aXNpYmxlfHxnLnNlbGVjdEFsbCgicGF0aC55ZXJyb3IiKS5yZW1vdmUoKSxnLnN0eWxlKCJvcGFjaXR5IiwxKTt2YXIgdj1nLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgiZXJyb3JiYXIiLCEwKTt1JiZ2LnN0eWxlKCJvcGFjaXR5IiwwKS50cmFuc2l0aW9uKCkuZHVyYXRpb24ocy5kdXJhdGlvbikuc3R5bGUoIm9wYWNpdHkiLDEpLGEuc2V0Q2xpcFVybChnLHIubGF5ZXJDbGlwSWQsdCksZy5lYWNoKChmdW5jdGlvbih0KXt2YXIgZT1uLnNlbGVjdCh0aGlzKSxyPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj17eDplLmMycCh0LngpLHk6ci5jMnAodC55KX07dm9pZCAwIT09dC55aCYmKG4ueWg9ci5jMnAodC55aCksbi55cz1yLmMycCh0LnlzKSxpKG4ueXMpfHwobi5ub1lTPSEwLG4ueXM9ci5jMnAodC55cywhMCkpKTt2b2lkIDAhPT10LnhoJiYobi54aD1lLmMycCh0LnhoKSxuLnhzPWUuYzJwKHQueHMpLGkobi54cyl8fChuLm5vWFM9ITAsbi54cz1lLmMycCh0LnhzLCEwKSkpO3JldHVybiBufSh0LGwsYyk7aWYoIW18fHQudmlzKXt2YXIgYSxvPWUuc2VsZWN0KCJwYXRoLnllcnJvciIpO2lmKGQudmlzaWJsZSYmaShyLngpJiZpKHIueWgpJiZpKHIueXMpKXt2YXIgZj1kLndpZHRoO2E9Ik0iKyhyLngtZikrIiwiK3IueWgrImgiKzIqZisibS0iK2YrIiwwViIrci55cyxyLm5vWVN8fChhKz0ibS0iK2YrIiwwaCIrMipmKSwhby5zaXplKCk/bz1lLmFwcGVuZCgicGF0aCIpLnN0eWxlKCJ2ZWN0b3ItZWZmZWN0Iiwibm9uLXNjYWxpbmctc3Ryb2tlIikuY2xhc3NlZCgieWVycm9yIiwhMCk6dSYmKG89by50cmFuc2l0aW9uKCkuZHVyYXRpb24ocy5kdXJhdGlvbikuZWFzZShzLmVhc2luZykpLG8uYXR0cigiZCIsYSl9ZWxzZSBvLnJlbW92ZSgpO3ZhciBoPWUuc2VsZWN0KCJwYXRoLnhlcnJvciIpO2lmKHAudmlzaWJsZSYmaShyLnkpJiZpKHIueGgpJiZpKHIueHMpKXt2YXIgZz0ocC5jb3B5X3lzdHlsZT9kOnApLndpZHRoO2E9Ik0iK3IueGgrIiwiKyhyLnktZykrInYiKzIqZysibTAsLSIrZysiSCIrci54cyxyLm5vWFN8fChhKz0ibTAsLSIrZysidiIrMipnKSwhaC5zaXplKCk/aD1lLmFwcGVuZCgicGF0aCIpLnN0eWxlKCJ2ZWN0b3ItZWZmZWN0Iiwibm9uLXNjYWxpbmctc3Ryb2tlIikuY2xhc3NlZCgieGVycm9yIiwhMCk6dSYmKGg9aC50cmFuc2l0aW9uKCkuZHVyYXRpb24ocy5kdXJhdGlvbikuZWFzZShzLmVhc2luZykpLGguYXR0cigiZCIsYSl9ZWxzZSBoLnJlbW92ZSgpfX0pKX19KSl9fSx7Ii4uLy4uL3RyYWNlcy9zY2F0dGVyL3N1YnR5cGVzIjo5NjEsIi4uL2RyYXdpbmciOjM4OSwiQHBsb3RseS9kMyI6NTgsImZhc3QtaXNudW1lcmljIjoxOTB9XSwzOTc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vY29sb3IiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dC5lYWNoKChmdW5jdGlvbih0KXt2YXIgZT10WzBdLnRyYWNlLHI9ZS5lcnJvcl95fHx7fSxhPWUuZXJyb3JfeHx8e30sbz1uLnNlbGVjdCh0aGlzKTtvLnNlbGVjdEFsbCgicGF0aC55ZXJyb3IiKS5zdHlsZSgic3Ryb2tlLXdpZHRoIixyLnRoaWNrbmVzcysicHgiKS5jYWxsKGkuc3Ryb2tlLHIuY29sb3IpLGEuY29weV95c3R5bGUmJihhPXIpLG8uc2VsZWN0QWxsKCJwYXRoLnhlcnJvciIpLnN0eWxlKCJzdHJva2Utd2lkdGgiLGEudGhpY2tuZXNzKyJweCIpLmNhbGwoaS5zdHJva2UsYS5jb2xvcil9KSl9fSx7Ii4uL2NvbG9yIjozNjcsIkBwbG90bHkvZDMiOjU4fV0sMzk4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyIpLGk9dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpLmhvdmVybGFiZWwsYT10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdDtlLmV4cG9ydHM9e2hvdmVybGFiZWw6e2JnY29sb3I6YSh7fSxpLmJnY29sb3Ise2FycmF5T2s6ITB9KSxib3JkZXJjb2xvcjphKHt9LGkuYm9yZGVyY29sb3Ise2FycmF5T2s6ITB9KSxmb250Om4oe2FycmF5T2s6ITAsZWRpdFR5cGU6Im5vbmUifSksYWxpZ246YSh7fSxpLmFsaWduLHthcnJheU9rOiEwfSksbmFtZWxlbmd0aDphKHt9LGkubmFtZWxlbmd0aCx7YXJyYXlPazohMH0pLGVkaXRUeXBlOiJub25lIn19fSx7Ii4uLy4uL2xpYi9leHRlbmQiOjUwNSwiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIjo1OTQsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjQwOH1dLDM5OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL3JlZ2lzdHJ5Iik7ZnVuY3Rpb24gYSh0LGUscixpKXtpPWl8fG4uaWRlbnRpdHksQXJyYXkuaXNBcnJheSh0KSYmKGVbMF1bcl09aSh0KSl9ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQuY2FsY2RhdGEscj10Ll9mdWxsTGF5b3V0O2Z1bmN0aW9uIG8odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBuLmNvZXJjZUhvdmVyaW5mbyh7aG92ZXJpbmZvOmV9LHtfbW9kdWxlOnQuX21vZHVsZX0scil9fWZvcih2YXIgcz0wO3M8ZS5sZW5ndGg7cysrKXt2YXIgbD1lW3NdLGM9bFswXS50cmFjZTtpZighaS50cmFjZUlzKGMsInBpZS1saWtlIikpe3ZhciB1PWkudHJhY2VJcyhjLCIyZE1hcCIpP2E6bi5maWxsQXJyYXk7dShjLmhvdmVyaW5mbyxsLCJoaSIsbyhjKSksYy5ob3ZlcnRlbXBsYXRlJiZ1KGMuaG92ZXJ0ZW1wbGF0ZSxsLCJodCIpLGMuaG92ZXJsYWJlbCYmKHUoYy5ob3ZlcmxhYmVsLmJnY29sb3IsbCwiaGJnIiksdShjLmhvdmVybGFiZWwuYm9yZGVyY29sb3IsbCwiaGJjIiksdShjLmhvdmVybGFiZWwuZm9udC5zaXplLGwsImh0cyIpLHUoYy5ob3ZlcmxhYmVsLmZvbnQuY29sb3IsbCwiaHRjIiksdShjLmhvdmVybGFiZWwuZm9udC5mYW1pbHksbCwiaHRmIiksdShjLmhvdmVybGFiZWwubmFtZWxlbmd0aCxsLCJobmwiKSx1KGMuaG92ZXJsYWJlbC5hbGlnbixsLCJodGEiKSl9fX19LHsiLi4vLi4vbGliIjo1MTUsIi4uLy4uL3JlZ2lzdHJ5Ijo2NDd9XSw0MDA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcmVnaXN0cnkiKSxpPXQoIi4vaG92ZXIiKS5ob3ZlcjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBhPW4uZ2V0Q29tcG9uZW50TWV0aG9kKCJhbm5vdGF0aW9ucyIsIm9uQ2xpY2siKSh0LHQuX2hvdmVyZGF0YSk7ZnVuY3Rpb24gbygpe3QuZW1pdCgicGxvdGx5X2NsaWNrIix7cG9pbnRzOnQuX2hvdmVyZGF0YSxldmVudDplfSl9dm9pZCAwIT09ciYmaSh0LGUsciwhMCksdC5faG92ZXJkYXRhJiZlJiZlLnRhcmdldCYmKGEmJmEudGhlbj9hLnRoZW4obyk6bygpLGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uJiZlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpKX19LHsiLi4vLi4vcmVnaXN0cnkiOjY0NywiLi9ob3ZlciI6NDA0fV0sNDAxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17WUFOR0xFOjYwLEhPVkVSQVJST1dTSVpFOjYsSE9WRVJURVhUUEFEOjMsSE9WRVJGT05UU0laRToxMyxIT1ZFUkZPTlQ6IkFyaWFsLCBzYW5zLXNlcmlmIixIT1ZFUk1JTlRJTUU6NTAsSE9WRVJJRDoiLWhvdmVyIn19LHt9XSw0MDI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuL2F0dHJpYnV0ZXMiKSxhPXQoIi4vaG92ZXJsYWJlbF9kZWZhdWx0cyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixvKXt2YXIgcz1uLmV4dGVuZEZsYXQoe30sby5ob3ZlcmxhYmVsKTtlLmhvdmVydGVtcGxhdGUmJihzLm5hbWVsZW5ndGg9LTEpLGEodCxlLChmdW5jdGlvbihyLGEpe3JldHVybiBuLmNvZXJjZSh0LGUsaSxyLGEpfSkscyl9fSx7Ii4uLy4uL2xpYiI6NTE1LCIuL2F0dHJpYnV0ZXMiOjM5OCwiLi9ob3ZlcmxhYmVsX2RlZmF1bHRzIjo0MDV9XSw0MDM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIik7ci5nZXRTdWJwbG90PWZ1bmN0aW9uKHQpe3JldHVybiB0LnN1YnBsb3R8fHQueGF4aXMrdC55YXhpc3x8dC5nZW99LHIuaXNUcmFjZUluU3VicGxvdHM9ZnVuY3Rpb24odCxlKXtpZigic3Bsb20iPT09dC50eXBlKXtmb3IodmFyIG49dC54YXhlc3x8W10saT10LnlheGVzfHxbXSxhPTA7YTxuLmxlbmd0aDthKyspZm9yKHZhciBvPTA7bzxpLmxlbmd0aDtvKyspaWYoLTEhPT1lLmluZGV4T2YoblthXStpW29dKSlyZXR1cm4hMDtyZXR1cm4hMX1yZXR1cm4tMSE9PWUuaW5kZXhPZihyLmdldFN1YnBsb3QodCkpfSxyLmZsYXQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9bmV3IEFycmF5KHQubGVuZ3RoKSxuPTA7bjx0Lmxlbmd0aDtuKyspcltuXT1lO3JldHVybiByfSxyLnAyYz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1uZXcgQXJyYXkodC5sZW5ndGgpLG49MDtuPHQubGVuZ3RoO24rKylyW25dPXRbbl0ucDJjKGUpO3JldHVybiByfSxyLmdldERpc3RhbmNlRnVuY3Rpb249ZnVuY3Rpb24odCxlLG4saSl7cmV0dXJuImNsb3Nlc3QiPT09dD9pfHxyLnF1YWRyYXR1cmUoZSxuKToieCI9PT10LmNoYXJBdCgwKT9lOm59LHIuZ2V0Q2xvc2VzdD1mdW5jdGlvbih0LGUscil7aWYoITEhPT1yLmluZGV4KXIuaW5kZXg+PTAmJnIuaW5kZXg8dC5sZW5ndGg/ci5kaXN0YW5jZT0wOnIuaW5kZXg9ITE7ZWxzZSBmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9ZSh0W25dKTtpPD1yLmRpc3RhbmNlJiYoci5pbmRleD1uLHIuZGlzdGFuY2U9aSl9cmV0dXJuIHJ9LHIuaW5ib3g9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0KmU8MHx8MD09PXQ/cjoxLzB9LHIucXVhZHJhdHVyZT1mdW5jdGlvbih0LGUpe3JldHVybiBmdW5jdGlvbihyKXt2YXIgbj10KHIpLGk9ZShyKTtyZXR1cm4gTWF0aC5zcXJ0KG4qbitpKmkpfX0sci5tYWtlRXZlbnREYXRhPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT0iaW5kZXgiaW4gdD90LmluZGV4OnQucG9pbnROdW1iZXIsYT17ZGF0YTplLl9pbnB1dCxmdWxsRGF0YTplLGN1cnZlTnVtYmVyOmUuaW5kZXgscG9pbnROdW1iZXI6aX07aWYoZS5faW5kZXhUb1BvaW50cyl7dmFyIG89ZS5faW5kZXhUb1BvaW50c1tpXTsxPT09by5sZW5ndGg/YS5wb2ludEluZGV4PW9bMF06YS5wb2ludEluZGljZXM9b31lbHNlIGEucG9pbnRJbmRleD1pO3JldHVybiBlLl9tb2R1bGUuZXZlbnREYXRhP2E9ZS5fbW9kdWxlLmV2ZW50RGF0YShhLHQsZSxuLGkpOigieFZhbCJpbiB0P2EueD10LnhWYWw6IngiaW4gdCYmKGEueD10LngpLCJ5VmFsImluIHQ/YS55PXQueVZhbDoieSJpbiB0JiYoYS55PXQueSksdC54YSYmKGEueGF4aXM9dC54YSksdC55YSYmKGEueWF4aXM9dC55YSksdm9pZCAwIT09dC56TGFiZWxWYWwmJihhLno9dC56TGFiZWxWYWwpKSxyLmFwcGVuZEFycmF5UG9pbnRWYWx1ZShhLGUsaSksYX0sci5hcHBlbmRBcnJheVBvaW50VmFsdWU9ZnVuY3Rpb24odCxlLHIpe3ZhciBpPWUuX2FycmF5QXR0cnM7aWYoaSlmb3IodmFyIHM9MDtzPGkubGVuZ3RoO3MrKyl7dmFyIGw9aVtzXSxjPWEobCk7aWYodm9pZCAwPT09dFtjXSl7dmFyIHU9byhuLm5lc3RlZFByb3BlcnR5KGUsbCkuZ2V0KCkscik7dm9pZCAwIT09dSYmKHRbY109dSl9fX0sci5hcHBlbmRBcnJheU11bHRpUG9pbnRWYWx1ZXM9ZnVuY3Rpb24odCxlLHIpe3ZhciBpPWUuX2FycmF5QXR0cnM7aWYoaSlmb3IodmFyIHM9MDtzPGkubGVuZ3RoO3MrKyl7dmFyIGw9aVtzXSxjPWEobCk7aWYodm9pZCAwPT09dFtjXSl7Zm9yKHZhciB1PW4ubmVzdGVkUHJvcGVydHkoZSxsKS5nZXQoKSxmPW5ldyBBcnJheShyLmxlbmd0aCksaD0wO2g8ci5sZW5ndGg7aCsrKWZbaF09byh1LHJbaF0pO3RbY109Zn19fTt2YXIgaT17aWRzOiJpZCIsbG9jYXRpb25zOiJsb2NhdGlvbiIsbGFiZWxzOiJsYWJlbCIsdmFsdWVzOiJ2YWx1ZSIsIm1hcmtlci5jb2xvcnMiOiJjb2xvciIscGFyZW50czoicGFyZW50In07ZnVuY3Rpb24gYSh0KXtyZXR1cm4gaVt0XXx8dH1mdW5jdGlvbiBvKHQsZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/QXJyYXkuaXNBcnJheSh0KSYmQXJyYXkuaXNBcnJheSh0W2VbMF1dKT90W2VbMF1dW2VbMV1dOnZvaWQgMDp0W2VdfXZhciBzPXt4OiEwLHk6ITB9LGw9eyJ4IHVuaWZpZWQiOiEwLCJ5IHVuaWZpZWQiOiEwfTtyLmlzVW5pZmllZEhvdmVyPWZ1bmN0aW9uKHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdCYmISFsW3RdfSxyLmlzWFlob3Zlcj1mdW5jdGlvbih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJiEhc1t0XX19LHsiLi4vLi4vbGliIjo1MTV9XSw0MDQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiZmFzdC1pc251bWVyaWMiKSxhPXQoInRpbnljb2xvcjIiKSxvPXQoIi4uLy4uL2xpYiIpLHM9by5zdHJUcmFuc2xhdGUsbD1vLnN0clJvdGF0ZSxjPXQoIi4uLy4uL2xpYi9ldmVudHMiKSx1PXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpLGY9dCgiLi4vLi4vbGliL292ZXJyaWRlX2N1cnNvciIpLGg9dCgiLi4vZHJhd2luZyIpLHA9dCgiLi4vY29sb3IiKSxkPXQoIi4uL2RyYWdlbGVtZW50IiksbT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGc9dCgiLi4vLi4vcmVnaXN0cnkiKSx2PXQoIi4vaGVscGVycyIpLHk9dCgiLi9jb25zdGFudHMiKSx4PXQoIi4uL2xlZ2VuZC9kZWZhdWx0cyIpLGI9dCgiLi4vbGVnZW5kL2RyYXciKSxfPXkuWUFOR0xFLHc9TWF0aC5QSSpfLzE4MCxUPTEvTWF0aC5zaW4odyksaz1NYXRoLmNvcyh3KSxBPU1hdGguc2luKHcpLE09eS5IT1ZFUkFSUk9XU0laRSxTPXkuSE9WRVJURVhUUEFELEU9e2JveDohMCxvaGxjOiEwLHZpb2xpbjohMCxjYW5kbGVzdGljazohMH0sTD17c2NhdHRlcjohMCxzY2F0dGVyZ2w6ITAsc3Bsb206ITB9O2Z1bmN0aW9uIEModCl7cmV0dXJuW3QudHJhY2UuaW5kZXgsdC5pbmRleCx0LngwLHQueTAsdC5uYW1lLHQuYXR0cix0LnhhP3QueGEuX2lkOiIiLHQueWE/dC55YS5faWQ6IiJdLmpvaW4oIiwiKX1yLmhvdmVyPWZ1bmN0aW9uKHQsZSxyLGEpe3Q9by5nZXRHcmFwaERpdih0KTt2YXIgcz1lLnRhcmdldDtvLnRocm90dGxlKHQuX2Z1bGxMYXlvdXQuX3VpZCt5LkhPVkVSSUQseS5IT1ZFUk1JTlRJTUUsKGZ1bmN0aW9uKCl7IWZ1bmN0aW9uKHQsZSxyLGEscyl7cnx8KHI9Inh5Iik7dmFyIGw9QXJyYXkuaXNBcnJheShyKT9yOltyXSx1PXQuX2Z1bGxMYXlvdXQsaD11Ll9wbG90c3x8W10sbT1oW3JdLHk9dS5faGFzKCJjYXJ0ZXNpYW4iKTtpZihtKXt2YXIgeD1tLm92ZXJsYXlzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWR9KSk7bD1sLmNvbmNhdCh4KX1mb3IodmFyIGI9bC5sZW5ndGgsXz1uZXcgQXJyYXkoYiksdz1uZXcgQXJyYXkoYiksaz0hMSxBPTA7QTxiO0ErKyl7dmFyIE09bFtBXTtpZihoW01dKWs9ITAsX1tBXT1oW01dLnhheGlzLHdbQV09aFtNXS55YXhpcztlbHNle2lmKCF1W01dfHwhdVtNXS5fc3VicGxvdClyZXR1cm4gdm9pZCBvLndhcm4oIlVucmVjb2duaXplZCBzdWJwbG90OiAiK00pO3ZhciBTPXVbTV0uX3N1YnBsb3Q7X1tBXT1TLnhheGlzLHdbQV09Uy55YXhpc319dmFyIFA9ZS5ob3Zlcm1vZGV8fHUuaG92ZXJtb2RlO1AmJiFrJiYoUD0iY2xvc2VzdCIpO2lmKC0xPT09WyJ4IiwieSIsImNsb3Nlc3QiLCJ4IHVuaWZpZWQiLCJ5IHVuaWZpZWQiXS5pbmRleE9mKFApfHwhdC5jYWxjZGF0YXx8dC5xdWVyeVNlbGVjdG9yKCIuem9vbWJveCIpfHx0Ll9kcmFnZ2luZylyZXR1cm4gZC51bmhvdmVyUmF3KHQsZSk7dmFyIE89dS5ob3ZlcmRpc3RhbmNlOy0xPT09TyYmKE89MS8wKTt2YXIgQj11LnNwaWtlZGlzdGFuY2U7LTE9PT1CJiYoQj0xLzApO3ZhciBWLEgscSxHLFksVyxYLFosSixLLFEsJCx0dCxldD1bXSxydD1bXSxudD17aExpbmVQb2ludDpudWxsLHZMaW5lUG9pbnQ6bnVsbH0saXQ9ITE7aWYoQXJyYXkuaXNBcnJheShlKSlmb3IoUD0iYXJyYXkiLHE9MDtxPGUubGVuZ3RoO3ErKykoWT10LmNhbGNkYXRhW2VbcV0uY3VydmVOdW1iZXJ8fDBdKSYmKFc9WVswXS50cmFjZSwic2tpcCIhPT1ZWzBdLnRyYWNlLmhvdmVyaW5mbyYmKHJ0LnB1c2goWSksImgiPT09Vy5vcmllbnRhdGlvbiYmKGl0PSEwKSkpO2Vsc2V7Zm9yKEc9MDtHPHQuY2FsY2RhdGEubGVuZ3RoO0crKylZPXQuY2FsY2RhdGFbR10sInNraXAiIT09KFc9WVswXS50cmFjZSkuaG92ZXJpbmZvJiZ2LmlzVHJhY2VJblN1YnBsb3RzKFcsbCkmJihydC5wdXNoKFkpLCJoIj09PVcub3JpZW50YXRpb24mJihpdD0hMCkpO3ZhciBhdCxvdDtpZighcylhdD0ieHB4ImluIGU/ZS54cHg6X1swXS5fbGVuZ3RoLzIsb3Q9InlweCJpbiBlP2UueXB4OndbMF0uX2xlbmd0aC8yO2Vsc2V7aWYoITE9PT1jLnRyaWdnZXJIYW5kbGVyKHQsInBsb3RseV9iZWZvcmVob3ZlciIsZSkpcmV0dXJuO3ZhciBzdD1zLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2F0PWUuY2xpZW50WC1zdC5sZWZ0LG90PWUuY2xpZW50WS1zdC50b3AsdS5fY2FsY0ludmVyc2VUcmFuc2Zvcm0odCk7dmFyIGx0PW8uYXBwbHkzRFRyYW5zZm9ybSh1Ll9pbnZUcmFuc2Zvcm0pKGF0LG90KTtpZihhdD1sdFswXSxvdD1sdFsxXSxhdDwwfHxhdD5fWzBdLl9sZW5ndGh8fG90PDB8fG90PndbMF0uX2xlbmd0aClyZXR1cm4gZC51bmhvdmVyUmF3KHQsZSl9aWYoZS5wb2ludGVyWD1hdCtfWzBdLl9vZmZzZXQsZS5wb2ludGVyWT1vdCt3WzBdLl9vZmZzZXQsVj0ieHZhbCJpbiBlP3YuZmxhdChsLGUueHZhbCk6di5wMmMoXyxhdCksSD0ieXZhbCJpbiBlP3YuZmxhdChsLGUueXZhbCk6di5wMmModyxvdCksIWkoVlswXSl8fCFpKEhbMF0pKXJldHVybiBvLndhcm4oIkZ4LmhvdmVyIGZhaWxlZCIsZSx0KSxkLnVuaG92ZXJSYXcodCxlKX12YXIgY3Q9MS8wO2Z1bmN0aW9uIHV0KHQscil7Zm9yKEc9MDtHPHJ0Lmxlbmd0aDtHKyspaWYoKFk9cnRbR10pJiZZWzBdJiZZWzBdLnRyYWNlJiYhMD09PShXPVlbMF0udHJhY2UpLnZpc2libGUmJjAhPT1XLl9sZW5ndGgmJi0xPT09WyJjYXJwZXQiLCJjb250b3VyY2FycGV0Il0uaW5kZXhPZihXLl9tb2R1bGUubmFtZSkpe2lmKCJzcGxvbSI9PT1XLnR5cGU/WD1sW1o9MF06KFg9di5nZXRTdWJwbG90KFcpLFo9bC5pbmRleE9mKFgpKSxKPVAsdi5pc1VuaWZpZWRIb3ZlcihKKSYmKEo9Si5jaGFyQXQoMCkpLCQ9e2NkOlksdHJhY2U6Vyx4YTpfW1pdLHlhOndbWl0sbWF4SG92ZXJEaXN0YW5jZTpPLG1heFNwaWtlRGlzdGFuY2U6QixpbmRleDohMSxkaXN0YW5jZTpNYXRoLm1pbihjdCxPKSxzcGlrZURpc3RhbmNlOjEvMCx4U3Bpa2U6dm9pZCAwLHlTcGlrZTp2b2lkIDAsY29sb3I6cC5kZWZhdWx0TGluZSxuYW1lOlcubmFtZSx4MDp2b2lkIDAseDE6dm9pZCAwLHkwOnZvaWQgMCx5MTp2b2lkIDAseExhYmVsVmFsOnZvaWQgMCx5TGFiZWxWYWw6dm9pZCAwLHpMYWJlbFZhbDp2b2lkIDAsdGV4dDp2b2lkIDB9LHVbWF0mJigkLnN1YnBsb3Q9dVtYXS5fc3VicGxvdCksdS5fc3Bsb21TY2VuZXMmJnUuX3NwbG9tU2NlbmVzW1cudWlkXSYmKCQuc2NlbmU9dS5fc3Bsb21TY2VuZXNbVy51aWRdKSx0dD1ldC5sZW5ndGgsImFycmF5Ij09PUope3ZhciBuPWVbR107InBvaW50TnVtYmVyImluIG4/KCQuaW5kZXg9bi5wb2ludE51bWJlcixKPSJjbG9zZXN0Iik6KEo9IiIsInh2YWwiaW4gbiYmKEs9bi54dmFsLEo9IngiKSwieXZhbCJpbiBuJiYoUT1uLnl2YWwsSj1KPyJjbG9zZXN0IjoieSIpKX1lbHNlIHZvaWQgMCE9PXQmJnZvaWQgMCE9PXI/KEs9dCxRPXIpOihLPVZbWl0sUT1IW1pdKTtpZigwIT09TylpZihXLl9tb2R1bGUmJlcuX21vZHVsZS5ob3ZlclBvaW50cyl7dmFyIGE9Vy5fbW9kdWxlLmhvdmVyUG9pbnRzKCQsSyxRLEose2Zpbml0ZVJhbmdlOiEwLGhvdmVyTGF5ZXI6dS5faG92ZXJsYXllcn0pO2lmKGEpZm9yKHZhciBzLGM9MDtjPGEubGVuZ3RoO2MrKylzPWFbY10saShzLngwKSYmaShzLnkwKSYmZXQucHVzaChEKHMsUCkpfWVsc2Ugby5sb2coIlVucmVjb2duaXplZCB0cmFjZSB0eXBlIGluIGhvdmVyOiIsVyk7aWYoImNsb3Nlc3QiPT09UCYmZXQubGVuZ3RoPnR0JiYoZXQuc3BsaWNlKDAsdHQpLGN0PWV0WzBdLmRpc3RhbmNlKSx5JiYwIT09QiYmMD09PWV0Lmxlbmd0aCl7JC5kaXN0YW5jZT1CLCQuaW5kZXg9ITE7dmFyIGY9Vy5fbW9kdWxlLmhvdmVyUG9pbnRzKCQsSyxRLCJjbG9zZXN0Iix7aG92ZXJMYXllcjp1Ll9ob3ZlcmxheWVyfSk7aWYoZiYmKGY9Zi5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnNwaWtlRGlzdGFuY2U8PUJ9KSkpLGYmJmYubGVuZ3RoKXt2YXIgaCxkPWYuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC54YS5zaG93c3Bpa2VzJiYiaG92ZXJlZCBkYXRhIiE9PXQueGEuc3Bpa2VzbmFwfSkpO2lmKGQubGVuZ3RoKXt2YXIgbT1kWzBdO2kobS54MCkmJmkobS55MCkmJihoPWh0KG0pLCghbnQudkxpbmVQb2ludHx8bnQudkxpbmVQb2ludC5zcGlrZURpc3RhbmNlPmguc3Bpa2VEaXN0YW5jZSkmJihudC52TGluZVBvaW50PWgpKX12YXIgZz1mLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQueWEuc2hvd3NwaWtlcyYmImhvdmVyZWQgZGF0YSIhPT10LnlhLnNwaWtlc25hcH0pKTtpZihnLmxlbmd0aCl7dmFyIHg9Z1swXTtpKHgueDApJiZpKHgueTApJiYoaD1odCh4KSwoIW50LmhMaW5lUG9pbnR8fG50LmhMaW5lUG9pbnQuc3Bpa2VEaXN0YW5jZT5oLnNwaWtlRGlzdGFuY2UpJiYobnQuaExpbmVQb2ludD1oKSl9fX19fWZ1bmN0aW9uIGZ0KHQsZSxyKXtmb3IodmFyIG4saT1udWxsLGE9MS8wLG89MDtvPHQubGVuZ3RoO28rKyluPXRbb10uc3Bpa2VEaXN0YW5jZSxyJiYwPT09byYmKG49LTEvMCksbjw9YSYmbjw9ZSYmKGk9dFtvXSxhPW4pO3JldHVybiBpfWZ1bmN0aW9uIGh0KHQpe3JldHVybiB0P3t4YTp0LnhhLHlhOnQueWEseDp2b2lkIDAhPT10LnhTcGlrZT90LnhTcGlrZToodC54MCt0LngxKS8yLHk6dm9pZCAwIT09dC55U3Bpa2U/dC55U3Bpa2U6KHQueTArdC55MSkvMixkaXN0YW5jZTp0LmRpc3RhbmNlLHNwaWtlRGlzdGFuY2U6dC5zcGlrZURpc3RhbmNlLGN1cnZlTnVtYmVyOnQudHJhY2UuaW5kZXgsY29sb3I6dC5jb2xvcixwb2ludE51bWJlcjp0LmluZGV4fTpudWxsfXV0KCk7dmFyIHB0PXtmdWxsTGF5b3V0OnUsY29udGFpbmVyOnUuX2hvdmVybGF5ZXIsZXZlbnQ6ZX0sZHQ9dC5fc3Bpa2Vwb2ludHMsbXQ9e3ZMaW5lUG9pbnQ6bnQudkxpbmVQb2ludCxoTGluZVBvaW50Om50LmhMaW5lUG9pbnR9O3QuX3NwaWtlcG9pbnRzPW10O3ZhciBndD1mdW5jdGlvbigpe2V0LnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuZGlzdGFuY2UtZS5kaXN0YW5jZX0pKSxldD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1lLmNoYXJBdCgwKSxuPVtdLGk9W10sYT1bXSxvPTA7bzx0Lmxlbmd0aDtvKyspe3ZhciBzPXRbb107Zy50cmFjZUlzKHMudHJhY2UsImJhci1saWtlIil8fGcudHJhY2VJcyhzLnRyYWNlLCJib3gtdmlvbGluIik/YS5wdXNoKHMpOnMudHJhY2VbcisicGVyaW9kIl0/aS5wdXNoKHMpOm4ucHVzaChzKX1yZXR1cm4gbi5jb25jYXQoaSkuY29uY2F0KGEpfShldCxQKX07Z3QoKTt2YXIgdnQ9UC5jaGFyQXQoMCkseXQ9KCJ4Ij09PXZ0fHwieSI9PT12dCkmJmV0WzBdJiZMW2V0WzBdLnRyYWNlLnR5cGVdO2lmKHkmJjAhPT1CJiYwIT09ZXQubGVuZ3RoKXt2YXIgeHQ9ZnQoZXQuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC55YS5zaG93c3Bpa2VzfSkpLEIseXQpO250LmhMaW5lUG9pbnQ9aHQoeHQpO3ZhciBidD1mdChldC5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnhhLnNob3dzcGlrZXN9KSksQix5dCk7bnQudkxpbmVQb2ludD1odChidCl9aWYoMD09PWV0Lmxlbmd0aCl7dmFyIF90PWQudW5ob3ZlclJhdyh0LGUpO3JldHVybiF5fHxudWxsPT09bnQuaExpbmVQb2ludCYmbnVsbD09PW50LnZMaW5lUG9pbnR8fEYoZHQpJiZSKHQsbnQscHQpLF90fXkmJkYoZHQpJiZSKHQsbnQscHQpO2lmKHYuaXNYWWhvdmVyKEopJiYwIT09ZXRbMF0ubGVuZ3RoJiYic3Bsb20iIT09ZXRbMF0udHJhY2UudHlwZSl7dmFyIHd0PWV0WzBdLFR0PShldD1FW3d0LnRyYWNlLnR5cGVdP2V0LmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQudHJhY2UuaW5kZXg9PT13dC50cmFjZS5pbmRleH0pKTpbd3RdKS5sZW5ndGgsa3Q9TigieCIsd3QsdSksQXQ9TigieSIsd3QsdSk7dXQoa3QsQXQpO3ZhciBNdCxTdD1bXSxFdD17fSxMdD0wLEN0PWZ1bmN0aW9uKHQpe3ZhciBlPUVbdC50cmFjZS50eXBlXT9DKHQpOnQudHJhY2UuaW5kZXg7aWYoRXRbZV0pe3ZhciByPUV0W2VdLTEsbj1TdFtyXTtyPjAmJk1hdGguYWJzKHQuZGlzdGFuY2UpPE1hdGguYWJzKG4uZGlzdGFuY2UpJiYoU3Rbcl09dCl9ZWxzZSBMdCsrLEV0W2VdPUx0LFN0LnB1c2godCl9O2ZvcihNdD0wO010PFR0O010KyspQ3QoZXRbTXRdKTtmb3IoTXQ9ZXQubGVuZ3RoLTE7TXQ+VHQtMTtNdC0tKUN0KGV0W010XSk7ZXQ9U3QsZ3QoKX12YXIgUHQ9dC5faG92ZXJkYXRhLEl0PVtdLE90PWoodCksenQ9VSh0KTtmb3IocT0wO3E8ZXQubGVuZ3RoO3ErKyl7dmFyIER0PWV0W3FdLFJ0PXYubWFrZUV2ZW50RGF0YShEdCxEdC50cmFjZSxEdC5jZCk7aWYoITEhPT1EdC5ob3ZlcnRlbXBsYXRlKXt2YXIgRnQ9ITE7RHQuY2RbRHQuaW5kZXhdJiZEdC5jZFtEdC5pbmRleF0uaHQmJihGdD1EdC5jZFtEdC5pbmRleF0uaHQpLER0LmhvdmVydGVtcGxhdGU9RnR8fER0LnRyYWNlLmhvdmVydGVtcGxhdGV8fCExfWlmKER0LnhhJiZEdC55YSl7dmFyIEJ0PUR0LngwK0R0LnhhLl9vZmZzZXQsTnQ9RHQueDErRHQueGEuX29mZnNldCxqdD1EdC55MCtEdC55YS5fb2Zmc2V0LFV0PUR0LnkxK0R0LnlhLl9vZmZzZXQsVnQ9TWF0aC5taW4oQnQsTnQpLEh0PU1hdGgubWF4KEJ0LE50KSxxdD1NYXRoLm1pbihqdCxVdCksR3Q9TWF0aC5tYXgoanQsVXQpO1J0LmJib3g9e3gwOlZ0K3p0LHgxOkh0K3p0LHkwOnF0K090LHkxOkd0K090fX1EdC5ldmVudERhdGE9W1J0XSxJdC5wdXNoKFJ0KX10Ll9ob3ZlcmRhdGE9SXQ7dmFyIFl0PSJ5Ij09PVAmJihydC5sZW5ndGg+MXx8ZXQubGVuZ3RoPjEpfHwiY2xvc2VzdCI9PT1QJiZpdCYmZXQubGVuZ3RoPjEsV3Q9cC5jb21iaW5lKHUucGxvdF9iZ2NvbG9yfHxwLmJhY2tncm91bmQsdS5wYXBlcl9iZ2NvbG9yKSxYdD1JKGV0LHtnZDp0LGhvdmVybW9kZTpQLHJvdGF0ZUxhYmVsczpZdCxiZ0NvbG9yOld0LGNvbnRhaW5lcjp1Ll9ob3ZlcmxheWVyLG91dGVyQ29udGFpbmVyOnUuX3BhcGVyLm5vZGUoKSxjb21tb25MYWJlbE9wdHM6dS5ob3ZlcmxhYmVsLGhvdmVyZGlzdGFuY2U6dS5ob3ZlcmRpc3RhbmNlfSk7di5pc1VuaWZpZWRIb3ZlcihQKXx8KCFmdW5jdGlvbih0LGUscil7dmFyIG4saSxhLG8scyxsLGMsdT0wLGY9MSxoPXQuc2l6ZSgpLHA9bmV3IEFycmF5KGgpLGQ9MDtmdW5jdGlvbiBtKHQpe3ZhciBlPXRbMF0scj10W3QubGVuZ3RoLTFdO2lmKGk9ZS5wbWluLWUucG9zLWUuZHArZS5zaXplLGE9ci5wb3Mrci5kcCtyLnNpemUtZS5wbWF4LGk+LjAxKXtmb3Iocz10Lmxlbmd0aC0xO3M+PTA7cy0tKXRbc10uZHArPWk7bj0hMX1pZighKGE8LjAxKSl7aWYoaTwtLjAxKXtmb3Iocz10Lmxlbmd0aC0xO3M+PTA7cy0tKXRbc10uZHAtPWE7bj0hMX1pZihuKXt2YXIgYz0wO2ZvcihvPTA7bzx0Lmxlbmd0aDtvKyspKGw9dFtvXSkucG9zK2wuZHArbC5zaXplPmUucG1heCYmYysrO2ZvcihvPXQubGVuZ3RoLTE7bz49MCYmIShjPD0wKTtvLS0pKGw9dFtvXSkucG9zPmUucG1heC0xJiYobC5kZWw9ITAsYy0tKTtmb3Iobz0wO288dC5sZW5ndGgmJiEoYzw9MCk7bysrKWlmKChsPXRbb10pLnBvczxlLnBtaW4rMSlmb3IobC5kZWw9ITAsYy0tLGE9MipsLnNpemUscz10Lmxlbmd0aC0xO3M+PTA7cy0tKXRbc10uZHAtPWE7Zm9yKG89dC5sZW5ndGgtMTtvPj0wJiYhKGM8PTApO28tLSkobD10W29dKS5wb3MrbC5kcCtsLnNpemU+ZS5wbWF4JiYobC5kZWw9ITAsYy0tKX19fXQuZWFjaCgoZnVuY3Rpb24odCl7dmFyIG49dFtlXSxpPSJ4Ij09PW4uX2lkLmNoYXJBdCgwKSxhPW4ucmFuZ2U7MD09PWQmJmEmJmFbMF0+YVsxXSE9PWkmJihmPS0xKSxwW2QrK109W3tkYXR1bTp0LHRyYWNlSW5kZXg6dC50cmFjZS5pbmRleCxkcDowLHBvczp0LnBvcyxwb3NyZWY6dC5wb3NyZWYsc2l6ZTp0LmJ5KihpP1Q6MSkvMixwbWluOjAscG1heDppP3Iud2lkdGg6ci5oZWlnaHR9XX0pKSxwLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMF0ucG9zcmVmLWVbMF0ucG9zcmVmfHxmKihlWzBdLnRyYWNlSW5kZXgtdFswXS50cmFjZUluZGV4KX0pKTtmb3IoOyFuJiZ1PD1oOyl7Zm9yKHUrKyxuPSEwLG89MDtvPHAubGVuZ3RoLTE7KXt2YXIgZz1wW29dLHY9cFtvKzFdLHk9Z1tnLmxlbmd0aC0xXSx4PXZbMF07aWYoKGk9eS5wb3MreS5kcCt5LnNpemUteC5wb3MteC5kcCt4LnNpemUpPi4wMSYmeS5wbWluPT09eC5wbWluJiZ5LnBtYXg9PT14LnBtYXgpe2ZvcihzPXYubGVuZ3RoLTE7cz49MDtzLS0pdltzXS5kcCs9aTtmb3IoZy5wdXNoLmFwcGx5KGcsdikscC5zcGxpY2UobysxLDEpLGM9MCxzPWcubGVuZ3RoLTE7cz49MDtzLS0pYys9Z1tzXS5kcDtmb3IoYT1jL2cubGVuZ3RoLHM9Zy5sZW5ndGgtMTtzPj0wO3MtLSlnW3NdLmRwLT1hO249ITF9ZWxzZSBvKyt9cC5mb3JFYWNoKG0pfWZvcihvPXAubGVuZ3RoLTE7bz49MDtvLS0pe3ZhciBiPXBbb107Zm9yKHM9Yi5sZW5ndGgtMTtzPj0wO3MtLSl7dmFyIF89YltzXSx3PV8uZGF0dW07dy5vZmZzZXQ9Xy5kcCx3LmRlbD1fLmRlbH19fShYdCxZdD8ieGEiOiJ5YSIsdSkseihYdCxZdCx1Ll9pbnZTY2FsZVgsdS5faW52U2NhbGVZKSk7aWYocyYmcy50YWdOYW1lKXt2YXIgWnQ9Zy5nZXRDb21wb25lbnRNZXRob2QoImFubm90YXRpb25zIiwiaGFzQ2xpY2tUb1Nob3ciKSh0LEl0KTtmKG4uc2VsZWN0KHMpLFp0PyJwb2ludGVyIjoiIil9aWYoIXN8fGF8fCFmdW5jdGlvbih0LGUscil7aWYoIXJ8fHIubGVuZ3RoIT09dC5faG92ZXJkYXRhLmxlbmd0aClyZXR1cm4hMDtmb3IodmFyIG49ci5sZW5ndGgtMTtuPj0wO24tLSl7dmFyIGk9cltuXSxhPXQuX2hvdmVyZGF0YVtuXTtpZihpLmN1cnZlTnVtYmVyIT09YS5jdXJ2ZU51bWJlcnx8U3RyaW5nKGkucG9pbnROdW1iZXIpIT09U3RyaW5nKGEucG9pbnROdW1iZXIpfHxTdHJpbmcoaS5wb2ludE51bWJlcnMpIT09U3RyaW5nKGEucG9pbnROdW1iZXJzKSlyZXR1cm4hMH1yZXR1cm4hMX0odCwwLFB0KSlyZXR1cm47UHQmJnQuZW1pdCgicGxvdGx5X3VuaG92ZXIiLHtldmVudDplLHBvaW50czpQdH0pO3QuZW1pdCgicGxvdGx5X2hvdmVyIix7ZXZlbnQ6ZSxwb2ludHM6dC5faG92ZXJkYXRhLHhheGVzOl8seWF4ZXM6dyx4dmFsczpWLHl2YWxzOkh9KX0odCxlLHIsYSxzKX0pKX0sci5sb25lSG92ZXI9ZnVuY3Rpb24odCxlKXt2YXIgcj0hMDtBcnJheS5pc0FycmF5KHQpfHwocj0hMSx0PVt0XSk7dmFyIGk9ZS5nZCxhPWooaSksbz1VKGkpLHM9SSh0Lm1hcCgoZnVuY3Rpb24odCl7dmFyIHI9dC5feDB8fHQueDB8fHQueHx8MCxuPXQuX3gxfHx0LngxfHx0Lnh8fDAscz10Ll95MHx8dC55MHx8dC55fHwwLGw9dC5feTF8fHQueTF8fHQueXx8MCxjPXQuZXZlbnREYXRhO2lmKGMpe3ZhciB1PU1hdGgubWluKHIsbiksZj1NYXRoLm1heChyLG4pLGg9TWF0aC5taW4ocyxsKSxkPU1hdGgubWF4KHMsbCksbT10LnRyYWNlO2lmKGcudHJhY2VJcyhtLCJnbDNkIikpe3ZhciB2PWkuX2Z1bGxMYXlvdXRbbS5zY2VuZV0uX3NjZW5lLmNvbnRhaW5lcix5PXYub2Zmc2V0TGVmdCx4PXYub2Zmc2V0VG9wO3UrPXksZis9eSxoKz14LGQrPXh9Yy5iYm94PXt4MDp1K28seDE6ZitvLHkwOmgrYSx5MTpkK2F9LGUuaW5PdXRfYmJveCYmZS5pbk91dF9iYm94LnB1c2goYy5iYm94KX1lbHNlIGM9ITE7cmV0dXJue2NvbG9yOnQuY29sb3J8fHAuZGVmYXVsdExpbmUseDA6dC54MHx8dC54fHwwLHgxOnQueDF8fHQueHx8MCx5MDp0LnkwfHx0Lnl8fDAseTE6dC55MXx8dC55fHwwLHhMYWJlbDp0LnhMYWJlbCx5TGFiZWw6dC55TGFiZWwsekxhYmVsOnQuekxhYmVsLHRleHQ6dC50ZXh0LG5hbWU6dC5uYW1lLGlkZWFsQWxpZ246dC5pZGVhbEFsaWduLGJvcmRlckNvbG9yOnQuYm9yZGVyQ29sb3IsZm9udEZhbWlseTp0LmZvbnRGYW1pbHksZm9udFNpemU6dC5mb250U2l6ZSxmb250Q29sb3I6dC5mb250Q29sb3IsbmFtZUxlbmd0aDp0Lm5hbWVMZW5ndGgsdGV4dEFsaWduOnQudGV4dEFsaWduLHRyYWNlOnQudHJhY2V8fHtpbmRleDowLGhvdmVyaW5mbzoiIn0seGE6e19vZmZzZXQ6MH0seWE6e19vZmZzZXQ6MH0saW5kZXg6MCxob3ZlcnRlbXBsYXRlOnQuaG92ZXJ0ZW1wbGF0ZXx8ITEsaG92ZXJ0ZW1wbGF0ZUxhYmVsczp0LmhvdmVydGVtcGxhdGVMYWJlbHN8fCExLGV2ZW50RGF0YTpjfX0pKSx7Z2Q6aSxob3Zlcm1vZGU6ImNsb3Nlc3QiLHJvdGF0ZUxhYmVsczohMSxiZ0NvbG9yOmUuYmdDb2xvcnx8cC5iYWNrZ3JvdW5kLGNvbnRhaW5lcjpuLnNlbGVjdChlLmNvbnRhaW5lciksb3V0ZXJDb250YWluZXI6ZS5vdXRlckNvbnRhaW5lcnx8ZS5jb250YWluZXJ9KSxsPTAsYz0wO3JldHVybiBzLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQueTAtZS55MH0pKS5lYWNoKChmdW5jdGlvbih0LHIpe3ZhciBuPXQueTAtdC5ieS8yO3Qub2Zmc2V0PW4tNTxsP2wtbis1OjAsbD1uK3QuYnkrdC5vZmZzZXQscj09PWUuYW5jaG9ySW5kZXgmJihjPXQub2Zmc2V0KX0pKS5lYWNoKChmdW5jdGlvbih0KXt0Lm9mZnNldC09Y30pKSx6KHMsITEsaS5fZnVsbExheW91dC5faW52U2NhbGVYLGkuX2Z1bGxMYXlvdXQuX2ludlNjYWxlWSkscj9zOnMubm9kZSgpfTt2YXIgUD0vPGV4dHJhPihbXHNcU10qKTxcL2V4dHJhPi87ZnVuY3Rpb24gSSh0LGUpe3ZhciByPWUuZ2QsaT1yLl9mdWxsTGF5b3V0LGE9ZS5ob3Zlcm1vZGUsYz1lLnJvdGF0ZUxhYmVscyxmPWUuYmdDb2xvcixkPWUuY29udGFpbmVyLG09ZS5vdXRlckNvbnRhaW5lcix3PWUuY29tbW9uTGFiZWxPcHRzfHx7fTtpZigwPT09dC5sZW5ndGgpcmV0dXJuW1tdXTt2YXIgVD1lLmZvbnRGYW1pbHl8fHkuSE9WRVJGT05ULGs9ZS5mb250U2l6ZXx8eS5IT1ZFUkZPTlRTSVpFLEE9dFswXSxFPUEueGEsTD1BLnlhLFA9YS5jaGFyQXQoMCksST1BW1ArIkxhYmVsIl0sej1WKHIsbSksRD16LnRvcCxSPXoud2lkdGgsRj16LmhlaWdodCxCPXZvaWQgMCE9PUkmJkEuZGlzdGFuY2U8PWUuaG92ZXJkaXN0YW5jZSYmKCJ4Ij09PWF8fCJ5Ij09PWEpO2lmKEIpe3ZhciBOLGosVT0hMDtmb3IoTj0wO048dC5sZW5ndGg7TisrKWlmKFUmJnZvaWQgMD09PXRbTl0uekxhYmVsJiYoVT0hMSksaj10W05dLmhvdmVyaW5mb3x8dFtOXS50cmFjZS5ob3ZlcmluZm8pe3ZhciBIPUFycmF5LmlzQXJyYXkoaik/ajpqLnNwbGl0KCIrIik7aWYoLTE9PT1ILmluZGV4T2YoImFsbCIpJiYtMT09PUguaW5kZXhPZihhKSl7Qj0hMTticmVha319VSYmKEI9ITEpfXZhciBxPWQuc2VsZWN0QWxsKCJnLmF4aXN0ZXh0IikuZGF0YShCP1swXTpbXSk7aWYocS5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoImF4aXN0ZXh0IiwhMCkscS5leGl0KCkucmVtb3ZlKCkscS5lYWNoKChmdW5jdGlvbigpe3ZhciB0PW4uc2VsZWN0KHRoaXMpLGU9by5lbnN1cmVTaW5nbGUodCwicGF0aCIsIiIsKGZ1bmN0aW9uKHQpe3Quc3R5bGUoeyJzdHJva2Utd2lkdGgiOiIxcHgifSl9KSksbD1vLmVuc3VyZVNpbmdsZSh0LCJ0ZXh0IiwiIiwoZnVuY3Rpb24odCl7dC5hdHRyKCJkYXRhLW5vdGV4IiwxKX0pKSxjPXcuYmdjb2xvcnx8cC5kZWZhdWx0TGluZSxmPXcuYm9yZGVyY29sb3J8fHAuY29udHJhc3QoYyksZD1wLmNvbnRyYXN0KGMpLG09e2ZhbWlseTp3LmZvbnQuZmFtaWx5fHxULHNpemU6dy5mb250LnNpemV8fGssY29sb3I6dy5mb250LmNvbG9yfHxkfTtlLnN0eWxlKHtmaWxsOmMsc3Ryb2tlOmZ9KSxsLnRleHQoSSkuY2FsbChoLmZvbnQsbSkuY2FsbCh1LnBvc2l0aW9uVGV4dCwwLDApLmNhbGwodS5jb252ZXJ0VG9Uc3BhbnMsciksdC5hdHRyKCJ0cmFuc2Zvcm0iLCIiKTt2YXIgZyx2LHk9VihyLGwubm9kZSgpKTtpZigieCI9PT1hKXt2YXIgeD0idG9wIj09PUUuc2lkZT8iLSI6IiI7bC5hdHRyKCJ0ZXh0LWFuY2hvciIsIm1pZGRsZSIpLmNhbGwodS5wb3NpdGlvblRleHQsMCwidG9wIj09PUUuc2lkZT9ELXkuYm90dG9tLU0tUzpELXkudG9wK00rUyksZz1FLl9vZmZzZXQrKEEueDArQS54MSkvMix2PUwuX29mZnNldCsoInRvcCI9PT1FLnNpZGU/MDpMLl9sZW5ndGgpO3ZhciBiPXkud2lkdGgvMitTO2c8Yj8oZz1iLGUuYXR0cigiZCIsIk0tIisoYi1NKSsiLDBMLSIrKGItMipNKSsiLCIreCtNKyJIIisoUyt5LndpZHRoLzIpKyJ2Iit4KygyKlMreS5oZWlnaHQpKyJILSIrYisiViIreCtNKyJaIikpOmc+aS53aWR0aC1iPyhnPWkud2lkdGgtYixlLmF0dHIoImQiLCJNIisoYi1NKSsiLDBMIitiKyIsIit4K00rInYiK3grKDIqUyt5LmhlaWdodCkrIkgtIitiKyJWIit4K00rIkgiKyhiLTIqTSkrIloiKSk6ZS5hdHRyKCJkIiwiTTAsMEwiK00rIiwiK3grTSsiSCIrKFMreS53aWR0aC8yKSsidiIreCsoMipTK3kuaGVpZ2h0KSsiSC0iKyhTK3kud2lkdGgvMikrIlYiK3grTSsiSC0iK00rIloiKX1lbHNle3ZhciBfLEMsUDsicmlnaHQiPT09TC5zaWRlPyhfPSJzdGFydCIsQz0xLFA9IiIsZz1FLl9vZmZzZXQrRS5fbGVuZ3RoKTooXz0iZW5kIixDPS0xLFA9Ii0iLGc9RS5fb2Zmc2V0KSx2PUwuX29mZnNldCsoQS55MCtBLnkxKS8yLGwuYXR0cigidGV4dC1hbmNob3IiLF8pLGUuYXR0cigiZCIsIk0wLDBMIitQK00rIiwiK00rIlYiKyhTK3kuaGVpZ2h0LzIpKyJoIitQKygyKlMreS53aWR0aCkrIlYtIisoUyt5LmhlaWdodC8yKSsiSCIrUCtNKyJWLSIrTSsiWiIpO3ZhciBPLHo9eS5oZWlnaHQvMixSPUQteS50b3AteixGPSJjbGlwIitpLl91aWQrImNvbW1vbmxhYmVsIitMLl9pZDtpZihnPHkud2lkdGgrMipTK00pe089Ik0tIisoTStTKSsiLSIreisiaC0iKyh5LndpZHRoLVMpKyJWIit6KyJoIisoeS53aWR0aC1TKSsiWiI7dmFyIEI9eS53aWR0aC1nK1M7dS5wb3NpdGlvblRleHQobCxCLFIpLCJlbmQiPT09XyYmbC5zZWxlY3RBbGwoInRzcGFuIikuZWFjaCgoZnVuY3Rpb24oKXt2YXIgdD1uLnNlbGVjdCh0aGlzKSxlPWgudGVzdGVyLmFwcGVuZCgidGV4dCIpLnRleHQodC50ZXh0KCkpLmNhbGwoaC5mb250LG0pLGk9VihyLGUubm9kZSgpKTtNYXRoLnJvdW5kKGkud2lkdGgpPE1hdGgucm91bmQoeS53aWR0aCkmJnQuYXR0cigieCIsQi1pLndpZHRoKSxlLnJlbW92ZSgpfSkpfWVsc2UgdS5wb3NpdGlvblRleHQobCxDKihTK00pLFIpLE89bnVsbDt2YXIgTj1pLl90b3BjbGlwcy5zZWxlY3RBbGwoIiMiK0YpLmRhdGEoTz9bMF06W10pO04uZW50ZXIoKS5hcHBlbmQoImNsaXBQYXRoIikuYXR0cigiaWQiLEYpLmFwcGVuZCgicGF0aCIpLE4uZXhpdCgpLnJlbW92ZSgpLE4uc2VsZWN0KCJwYXRoIikuYXR0cigiZCIsTyksaC5zZXRDbGlwVXJsKGwsTz9GOm51bGwscil9dC5hdHRyKCJ0cmFuc2Zvcm0iLHMoZyx2KSl9KSksdi5pc1VuaWZpZWRIb3ZlcihhKSl7ZC5zZWxlY3RBbGwoImcuaG92ZXJ0ZXh0IikucmVtb3ZlKCk7dmFyIEc9dC5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiJub25lIiE9PXQuaG92ZXJpbmZvfSkpO2lmKDA9PT1HLmxlbmd0aClyZXR1cm47dmFyIFk9aS5ob3ZlcmxhYmVsLFc9WS5mb250LFg9e3Nob3dsZWdlbmQ6ITAsbGVnZW5kOnt0aXRsZTp7dGV4dDpJLGZvbnQ6V30sZm9udDpXLGJnY29sb3I6WS5iZ2NvbG9yLGJvcmRlcmNvbG9yOlkuYm9yZGVyY29sb3IsYm9yZGVyd2lkdGg6MSx0cmFjZWdyb3VwZ2FwOjcsdHJhY2VvcmRlcjppLmxlZ2VuZD9pLmxlZ2VuZC50cmFjZW9yZGVyOnZvaWQgMCxvcmllbnRhdGlvbjoidiJ9fSxaPXtmb250Old9O3goWCxaLHIuX2Z1bGxEYXRhKTt2YXIgSj1aLmxlZ2VuZDtKLmVudHJpZXM9W107Zm9yKHZhciBLPTA7SzxHLmxlbmd0aDtLKyspe3ZhciBRPUdbS107aWYoIm5vbmUiIT09US5ob3ZlcmluZm8pe3ZhciAkPU8oUSwhMCxhLGksSSksdHQ9JFswXSxldD0kWzFdO1EubmFtZT1ldCxRLnRleHQ9IiIhPT1ldD9ldCsiIDogIit0dDp0dDt2YXIgcnQ9US5jZFtRLmluZGV4XTtydCYmKHJ0Lm1jJiYoUS5tYz1ydC5tYykscnQubWNjJiYoUS5tYz1ydC5tY2MpLHJ0Lm1sYyYmKFEubWxjPXJ0Lm1sYykscnQubWxjYyYmKFEubWxjPXJ0Lm1sY2MpLHJ0Lm1sdyYmKFEubWx3PXJ0Lm1sdykscnQubXJjJiYoUS5tcmM9cnQubXJjKSxydC5kaXImJihRLmRpcj1ydC5kaXIpKSxRLl9kaXN0aW5jdD0hMCxKLmVudHJpZXMucHVzaChbUV0pfX1KLmVudHJpZXMuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXS50cmFjZS5pbmRleC1lWzBdLnRyYWNlLmluZGV4fSkpLEoubGF5ZXI9ZCxKLl9pbkhvdmVyPSEwLEouX2dyb3VwVGl0bGVGb250PVkuZ3JvdXB0aXRsZWZvbnQsYihyLEopO3ZhciBudCxpdCxhdCxvdCxzdD1kLnNlbGVjdCgiZy5sZWdlbmQiKSxsdD1WKHIsc3Qubm9kZSgpKSxjdD1sdC53aWR0aCsyKlMsdXQ9bHQuaGVpZ2h0KzIqUyxmdD1HWzBdLGh0PShmdC54MCtmdC54MSkvMixwdD0oZnQueTArZnQueTEpLzIsZHQ9IShnLnRyYWNlSXMoZnQudHJhY2UsImJhci1saWtlIil8fGcudHJhY2VJcyhmdC50cmFjZSwiYm94LXZpb2xpbiIpKTsieSI9PT1QP2R0PyhpdD1wdC1TLG50PXB0K1MpOihpdD1NYXRoLm1pbi5hcHBseShudWxsLEcubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5taW4odC55MCx0LnkxKX0pKSksbnQ9TWF0aC5tYXguYXBwbHkobnVsbCxHLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgubWF4KHQueTAsdC55MSl9KSkpKTppdD1udD1vLm1lYW4oRy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybih0LnkwK3QueTEpLzJ9KSkpLXV0LzIsIngiPT09UD9kdD8oYXQ9aHQrUyxvdD1odC1TKTooYXQ9TWF0aC5tYXguYXBwbHkobnVsbCxHLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgubWF4KHQueDAsdC54MSl9KSkpLG90PU1hdGgubWluLmFwcGx5KG51bGwsRy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLm1pbih0LngwLHQueDEpfSkpKSk6YXQ9b3Q9by5tZWFuKEcubWFwKChmdW5jdGlvbih0KXtyZXR1cm4odC54MCt0LngxKS8yfSkpKS1jdC8yO3ZhciBtdCxndCx2dD1FLl9vZmZzZXQseXQ9TC5fb2Zmc2V0O3JldHVybiBvdCs9dnQtY3QsaXQrPXl0LXV0LG10PShhdCs9dnQpK2N0PFImJmF0Pj0wP2F0Om90K2N0PFImJm90Pj0wP290OnZ0K2N0PFI/dnQ6YXQtaHQ8aHQtb3QrY3Q/Ui1jdDowLG10Kz1TLGd0PShudCs9eXQpK3V0PEYmJm50Pj0wP250Oml0K3V0PEYmJml0Pj0wP2l0Onl0K3V0PEY/eXQ6bnQtcHQ8cHQtaXQrdXQ/Ri11dDowLGd0Kz1TLHN0LmF0dHIoInRyYW5zZm9ybSIscyhtdC0xLGd0LTEpKSxzdH12YXIgeHQ9ZC5zZWxlY3RBbGwoImcuaG92ZXJ0ZXh0IikuZGF0YSh0LChmdW5jdGlvbih0KXtyZXR1cm4gQyh0KX0pKTtyZXR1cm4geHQuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJob3ZlcnRleHQiLCEwKS5lYWNoKChmdW5jdGlvbigpe3ZhciB0PW4uc2VsZWN0KHRoaXMpO3QuYXBwZW5kKCJyZWN0IikuY2FsbChwLmZpbGwscC5hZGRPcGFjaXR5KGYsLjgpKSx0LmFwcGVuZCgidGV4dCIpLmNsYXNzZWQoIm5hbWUiLCEwKSx0LmFwcGVuZCgicGF0aCIpLnN0eWxlKCJzdHJva2Utd2lkdGgiLCIxcHgiKSx0LmFwcGVuZCgidGV4dCIpLmNsYXNzZWQoIm51bXMiLCEwKS5jYWxsKGguZm9udCxULGspfSkpLHh0LmV4aXQoKS5yZW1vdmUoKSx4dC5lYWNoKChmdW5jdGlvbih0KXt2YXIgZT1uLnNlbGVjdCh0aGlzKS5hdHRyKCJ0cmFuc2Zvcm0iLCIiKSxvPXQuY29sb3I7QXJyYXkuaXNBcnJheShvKSYmKG89b1t0LmV2ZW50RGF0YVswXS5wb2ludE51bWJlcl0pO3ZhciBkPXQuYmdjb2xvcnx8byxtPXAuY29tYmluZShwLm9wYWNpdHkoZCk/ZDpwLmRlZmF1bHRMaW5lLGYpLGc9cC5jb21iaW5lKHAub3BhY2l0eShvKT9vOnAuZGVmYXVsdExpbmUsZiksdj10LmJvcmRlckNvbG9yfHxwLmNvbnRyYXN0KG0pLHk9Tyh0LEIsYSxpLEksZSkseD15WzBdLGI9eVsxXSx3PWUuc2VsZWN0KCJ0ZXh0Lm51bXMiKS5jYWxsKGguZm9udCx0LmZvbnRGYW1pbHl8fFQsdC5mb250U2l6ZXx8ayx0LmZvbnRDb2xvcnx8dikudGV4dCh4KS5hdHRyKCJkYXRhLW5vdGV4IiwxKS5jYWxsKHUucG9zaXRpb25UZXh0LDAsMCkuY2FsbCh1LmNvbnZlcnRUb1RzcGFucyxyKSxBPWUuc2VsZWN0KCJ0ZXh0Lm5hbWUiKSxFPTAsTD0wO2lmKGImJmIhPT14KXtBLmNhbGwoaC5mb250LHQuZm9udEZhbWlseXx8VCx0LmZvbnRTaXplfHxrLGcpLnRleHQoYikuYXR0cigiZGF0YS1ub3RleCIsMSkuY2FsbCh1LnBvc2l0aW9uVGV4dCwwLDApLmNhbGwodS5jb252ZXJ0VG9Uc3BhbnMscik7dmFyIEM9VihyLEEubm9kZSgpKTtFPUMud2lkdGgrMipTLEw9Qy5oZWlnaHQrMipTfWVsc2UgQS5yZW1vdmUoKSxlLnNlbGVjdCgicmVjdCIpLnJlbW92ZSgpO2Uuc2VsZWN0KCJwYXRoIikuc3R5bGUoe2ZpbGw6bSxzdHJva2U6dn0pO3ZhciBQPXQueGEuX29mZnNldCsodC54MCt0LngxKS8yLHo9dC55YS5fb2Zmc2V0Kyh0LnkwK3QueTEpLzIsTj1NYXRoLmFicyh0LngxLXQueDApLGo9TWF0aC5hYnModC55MS10LnkwKSxVPVYocix3Lm5vZGUoKSksSD1VLndpZHRoL2kuX2ludlNjYWxlWCxxPVUuaGVpZ2h0L2kuX2ludlNjYWxlWTt0LnR5MD0oRC1VLnRvcCkvaS5faW52U2NhbGVZLHQuYng9SCsyKlMsdC5ieT1NYXRoLm1heChxKzIqUyxMKSx0LmFuY2hvcj0ic3RhcnQiLHQudHh3aWR0aD1ILHQudHgyd2lkdGg9RSx0Lm9mZnNldD0wO3ZhciBHLFksVz0oSCtNK1MrRSkqaS5faW52U2NhbGVYO2lmKGMpdC5wb3M9UCxHPXorai8yK1c8PUYsWT16LWovMi1XPj0wLCJ0b3AiIT09dC5pZGVhbEFsaWduJiZHfHwhWT9HPyh6Kz1qLzIsdC5hbmNob3I9InN0YXJ0Iik6dC5hbmNob3I9Im1pZGRsZSI6KHotPWovMix0LmFuY2hvcj0iZW5kIik7ZWxzZSBpZih0LnBvcz16LEc9UCtOLzIrVzw9UixZPVAtTi8yLVc+PTAsImxlZnQiIT09dC5pZGVhbEFsaWduJiZHfHwhWSlpZihHKVArPU4vMix0LmFuY2hvcj0ic3RhcnQiO2Vsc2V7dC5hbmNob3I9Im1pZGRsZSI7dmFyIFg9Vy8yLFo9UCtYLVIsSj1QLVg7Wj4wJiYoUC09WiksSjwwJiYoUCs9LUopfWVsc2UgUC09Ti8yLHQuYW5jaG9yPSJlbmQiO3cuYXR0cigidGV4dC1hbmNob3IiLHQuYW5jaG9yKSxFJiZBLmF0dHIoInRleHQtYW5jaG9yIix0LmFuY2hvciksZS5hdHRyKCJ0cmFuc2Zvcm0iLHMoUCx6KSsoYz9sKF8pOiIiKSl9KSkseHR9ZnVuY3Rpb24gTyh0LGUscixuLGksYSl7dmFyIHM9IiIsbD0iIjt2b2lkIDAhPT10Lm5hbWVPdmVycmlkZSYmKHQubmFtZT10Lm5hbWVPdmVycmlkZSksdC5uYW1lJiYodC50cmFjZS5fbWV0YSYmKHQubmFtZT1vLnRlbXBsYXRlU3RyaW5nKHQubmFtZSx0LnRyYWNlLl9tZXRhKSkscz1CKHQubmFtZSx0Lm5hbWVMZW5ndGgpKTt2YXIgYz1yLmNoYXJBdCgwKSx1PSJ4Ij09PWM/InkiOiJ4Ijt2b2lkIDAhPT10LnpMYWJlbD8odm9pZCAwIT09dC54TGFiZWwmJihsKz0ieDogIit0LnhMYWJlbCsiPGJyPiIpLHZvaWQgMCE9PXQueUxhYmVsJiYobCs9Ink6ICIrdC55TGFiZWwrIjxicj4iKSwiY2hvcm9wbGV0aCIhPT10LnRyYWNlLnR5cGUmJiJjaG9yb3BsZXRobWFwYm94IiE9PXQudHJhY2UudHlwZSYmKGwrPShsPyJ6OiAiOiIiKSt0LnpMYWJlbCkpOmUmJnRbYysiTGFiZWwiXT09PWk/bD10W3UrIkxhYmVsIl18fCIiOnZvaWQgMD09PXQueExhYmVsP3ZvaWQgMCE9PXQueUxhYmVsJiYic2NhdHRlcmNhcnBldCIhPT10LnRyYWNlLnR5cGUmJihsPXQueUxhYmVsKTpsPXZvaWQgMD09PXQueUxhYmVsP3QueExhYmVsOiIoIit0LnhMYWJlbCsiLCAiK3QueUxhYmVsKyIpIiwhdC50ZXh0JiYwIT09dC50ZXh0fHxBcnJheS5pc0FycmF5KHQudGV4dCl8fChsKz0obD8iPGJyPiI6IiIpK3QudGV4dCksdm9pZCAwIT09dC5leHRyYVRleHQmJihsKz0obD8iPGJyPiI6IiIpK3QuZXh0cmFUZXh0KSxhJiYiIj09PWwmJiF0LmhvdmVydGVtcGxhdGUmJigiIj09PXMmJmEucmVtb3ZlKCksbD1zKTt2YXIgZj10LmhvdmVydGVtcGxhdGV8fCExO2lmKGYpe3ZhciBoPXQuaG92ZXJ0ZW1wbGF0ZUxhYmVsc3x8dDt0W2MrIkxhYmVsIl0hPT1pJiYoaFtjKyJvdGhlciJdPWhbYysiVmFsIl0saFtjKyJvdGhlckxhYmVsIl09aFtjKyJMYWJlbCJdKSxsPShsPW8uaG92ZXJ0ZW1wbGF0ZVN0cmluZyhmLGgsbi5fZDNsb2NhbGUsdC5ldmVudERhdGFbMF18fHt9LHQudHJhY2UuX21ldGEpKS5yZXBsYWNlKFAsKGZ1bmN0aW9uKGUscil7cmV0dXJuIHM9QihyLHQubmFtZUxlbmd0aCksIiJ9KSl9cmV0dXJuW2wsc119ZnVuY3Rpb24geih0LGUscixpKXt2YXIgYT1mdW5jdGlvbih0KXtyZXR1cm4gdCpyfSxvPWZ1bmN0aW9uKHQpe3JldHVybiB0Kml9O3QuZWFjaCgoZnVuY3Rpb24odCl7dmFyIHI9bi5zZWxlY3QodGhpcyk7aWYodC5kZWwpcmV0dXJuIHIucmVtb3ZlKCk7dmFyIGk9ci5zZWxlY3QoInRleHQubnVtcyIpLHM9dC5hbmNob3IsbD0iZW5kIj09PXM/LTE6MSxjPXtzdGFydDoxLGVuZDotMSxtaWRkbGU6MH1bc10sZj1jKihNK1MpLHA9ZitjKih0LnR4d2lkdGgrUyksZD0wLG09dC5vZmZzZXQsZz0ibWlkZGxlIj09PXM7ZyYmKGYtPXQudHgyd2lkdGgvMixwKz10LnR4d2lkdGgvMitTKSxlJiYobSo9LUEsZD10Lm9mZnNldCprKSxyLnNlbGVjdCgicGF0aCIpLmF0dHIoImQiLGc/Ik0tIithKHQuYngvMit0LnR4MndpZHRoLzIpKyIsIitvKG0tdC5ieS8yKSsiaCIrYSh0LmJ4KSsidiIrbyh0LmJ5KSsiaC0iK2EodC5ieCkrIloiOiJNMCwwTCIrYShsKk0rZCkrIiwiK28oTSttKSsidiIrbyh0LmJ5LzItTSkrImgiK2EobCp0LmJ4KSsidi0iK28odC5ieSkrIkgiK2EobCpNK2QpKyJWIitvKG0tTSkrIloiKTt2YXIgdj1kK2YseT1tK3QudHkwLXQuYnkvMitTLHg9dC50ZXh0QWxpZ258fCJhdXRvIjsiYXV0byIhPT14JiYoImxlZnQiPT09eCYmInN0YXJ0IiE9PXM/KGkuYXR0cigidGV4dC1hbmNob3IiLCJzdGFydCIpLHY9Zz8tdC5ieC8yLXQudHgyd2lkdGgvMitTOi10LmJ4LVMpOiJyaWdodCI9PT14JiYiZW5kIiE9PXMmJihpLmF0dHIoInRleHQtYW5jaG9yIiwiZW5kIiksdj1nP3QuYngvMi10LnR4MndpZHRoLzItUzp0LmJ4K1MpKSxpLmNhbGwodS5wb3NpdGlvblRleHQsYSh2KSxvKHkpKSx0LnR4MndpZHRoJiYoci5zZWxlY3QoInRleHQubmFtZSIpLmNhbGwodS5wb3NpdGlvblRleHQsYShwK2MqUytkKSxvKG0rdC50eTAtdC5ieS8yK1MpKSxyLnNlbGVjdCgicmVjdCIpLmNhbGwoaC5zZXRSZWN0LGEocCsoYy0xKSp0LnR4MndpZHRoLzIrZCksbyhtLXQuYnkvMi0xKSxhKHQudHgyd2lkdGgpLG8odC5ieSsyKSkpfSkpfWZ1bmN0aW9uIEQodCxlKXt2YXIgcj10LmluZGV4LG49dC50cmFjZXx8e30sYT10LmNkWzBdLHM9dC5jZFtyXXx8e307ZnVuY3Rpb24gbCh0KXtyZXR1cm4gdHx8aSh0KSYmMD09PXR9dmFyIGM9QXJyYXkuaXNBcnJheShyKT9mdW5jdGlvbih0LGUpe3ZhciBpPW8uY2FzdE9wdGlvbihhLHIsdCk7cmV0dXJuIGwoaSk/aTpvLmV4dHJhY3RPcHRpb24oe30sbiwiIixlKX06ZnVuY3Rpb24odCxlKXtyZXR1cm4gby5leHRyYWN0T3B0aW9uKHMsbix0LGUpfTtmdW5jdGlvbiB1KGUscixuKXt2YXIgaT1jKHIsbik7bChpKSYmKHRbZV09aSl9aWYodSgiaG92ZXJpbmZvIiwiaGkiLCJob3ZlcmluZm8iKSx1KCJiZ2NvbG9yIiwiaGJnIiwiaG92ZXJsYWJlbC5iZ2NvbG9yIiksdSgiYm9yZGVyQ29sb3IiLCJoYmMiLCJob3ZlcmxhYmVsLmJvcmRlcmNvbG9yIiksdSgiZm9udEZhbWlseSIsImh0ZiIsImhvdmVybGFiZWwuZm9udC5mYW1pbHkiKSx1KCJmb250U2l6ZSIsImh0cyIsImhvdmVybGFiZWwuZm9udC5zaXplIiksdSgiZm9udENvbG9yIiwiaHRjIiwiaG92ZXJsYWJlbC5mb250LmNvbG9yIiksdSgibmFtZUxlbmd0aCIsImhubCIsImhvdmVybGFiZWwubmFtZWxlbmd0aCIpLHUoInRleHRBbGlnbiIsImh0YSIsImhvdmVybGFiZWwuYWxpZ24iKSx0LnBvc3JlZj0ieSI9PT1lfHwiY2xvc2VzdCI9PT1lJiYiaCI9PT1uLm9yaWVudGF0aW9uP3QueGEuX29mZnNldCsodC54MCt0LngxKS8yOnQueWEuX29mZnNldCsodC55MCt0LnkxKS8yLHQueDA9by5jb25zdHJhaW4odC54MCwwLHQueGEuX2xlbmd0aCksdC54MT1vLmNvbnN0cmFpbih0LngxLDAsdC54YS5fbGVuZ3RoKSx0LnkwPW8uY29uc3RyYWluKHQueTAsMCx0LnlhLl9sZW5ndGgpLHQueTE9by5jb25zdHJhaW4odC55MSwwLHQueWEuX2xlbmd0aCksdm9pZCAwIT09dC54TGFiZWxWYWwmJih0LnhMYWJlbD0ieExhYmVsImluIHQ/dC54TGFiZWw6bS5ob3ZlckxhYmVsVGV4dCh0LnhhLHQueExhYmVsVmFsLG4ueGhvdmVyZm9ybWF0KSx0LnhWYWw9dC54YS5jMmQodC54TGFiZWxWYWwpKSx2b2lkIDAhPT10LnlMYWJlbFZhbCYmKHQueUxhYmVsPSJ5TGFiZWwiaW4gdD90LnlMYWJlbDptLmhvdmVyTGFiZWxUZXh0KHQueWEsdC55TGFiZWxWYWwsbi55aG92ZXJmb3JtYXQpLHQueVZhbD10LnlhLmMyZCh0LnlMYWJlbFZhbCkpLHZvaWQgMCE9PXQuekxhYmVsVmFsJiZ2b2lkIDA9PT10LnpMYWJlbCYmKHQuekxhYmVsPVN0cmluZyh0LnpMYWJlbFZhbCkpLCEoaXNOYU4odC54ZXJyKXx8ImxvZyI9PT10LnhhLnR5cGUmJnQueGVycjw9MCkpe3ZhciBmPW0udGlja1RleHQodC54YSx0LnhhLmMybCh0LnhlcnIpLCJob3ZlciIpLnRleHQ7dm9pZCAwIT09dC54ZXJybmVnP3QueExhYmVsKz0iICsiK2YrIiAvIC0iK20udGlja1RleHQodC54YSx0LnhhLmMybCh0LnhlcnJuZWcpLCJob3ZlciIpLnRleHQ6dC54TGFiZWwrPSIgXHhiMSAiK2YsIngiPT09ZSYmKHQuZGlzdGFuY2UrPTEpfWlmKCEoaXNOYU4odC55ZXJyKXx8ImxvZyI9PT10LnlhLnR5cGUmJnQueWVycjw9MCkpe3ZhciBoPW0udGlja1RleHQodC55YSx0LnlhLmMybCh0LnllcnIpLCJob3ZlciIpLnRleHQ7dm9pZCAwIT09dC55ZXJybmVnP3QueUxhYmVsKz0iICsiK2grIiAvIC0iK20udGlja1RleHQodC55YSx0LnlhLmMybCh0LnllcnJuZWcpLCJob3ZlciIpLnRleHQ6dC55TGFiZWwrPSIgXHhiMSAiK2gsInkiPT09ZSYmKHQuZGlzdGFuY2UrPTEpfXZhciBwPXQuaG92ZXJpbmZvfHx0LnRyYWNlLmhvdmVyaW5mbztyZXR1cm4gcCYmImFsbCIhPT1wJiYoLTE9PT0ocD1BcnJheS5pc0FycmF5KHApP3A6cC5zcGxpdCgiKyIpKS5pbmRleE9mKCJ4IikmJih0LnhMYWJlbD12b2lkIDApLC0xPT09cC5pbmRleE9mKCJ5IikmJih0LnlMYWJlbD12b2lkIDApLC0xPT09cC5pbmRleE9mKCJ6IikmJih0LnpMYWJlbD12b2lkIDApLC0xPT09cC5pbmRleE9mKCJ0ZXh0IikmJih0LnRleHQ9dm9pZCAwKSwtMT09PXAuaW5kZXhPZigibmFtZSIpJiYodC5uYW1lPXZvaWQgMCkpLHR9ZnVuY3Rpb24gUih0LGUscil7dmFyIG4saSxvPXIuY29udGFpbmVyLHM9ci5mdWxsTGF5b3V0LGw9cy5fc2l6ZSxjPXIuZXZlbnQsdT0hIWUuaExpbmVQb2ludCxmPSEhZS52TGluZVBvaW50O2lmKG8uc2VsZWN0QWxsKCIuc3Bpa2VsaW5lIikucmVtb3ZlKCksZnx8dSl7dmFyIGQ9cC5jb21iaW5lKHMucGxvdF9iZ2NvbG9yLHMucGFwZXJfYmdjb2xvcik7aWYodSl7dmFyIGcsdix5PWUuaExpbmVQb2ludDtuPXkmJnkueGEsImN1cnNvciI9PT0oaT15JiZ5LnlhKS5zcGlrZXNuYXA/KGc9Yy5wb2ludGVyWCx2PWMucG9pbnRlclkpOihnPW4uX29mZnNldCt5Lngsdj1pLl9vZmZzZXQreS55KTt2YXIgeCxiLF89YS5yZWFkYWJpbGl0eSh5LmNvbG9yLGQpPDEuNT9wLmNvbnRyYXN0KGQpOnkuY29sb3Isdz1pLnNwaWtlbW9kZSxUPWkuc3Bpa2V0aGlja25lc3Msaz1pLnNwaWtlY29sb3J8fF8sQT1tLmdldFB4UG9zaXRpb24odCxpKTtpZigtMSE9PXcuaW5kZXhPZigidG9heGlzIil8fC0xIT09dy5pbmRleE9mKCJhY3Jvc3MiKSl7aWYoLTEhPT13LmluZGV4T2YoInRvYXhpcyIpJiYoeD1BLGI9ZyksLTEhPT13LmluZGV4T2YoImFjcm9zcyIpKXt2YXIgTT1pLl9jb3VudGVyRG9tYWluTWluLFM9aS5fY291bnRlckRvbWFpbk1heDsiZnJlZSI9PT1pLmFuY2hvciYmKE09TWF0aC5taW4oTSxpLnBvc2l0aW9uKSxTPU1hdGgubWF4KFMsaS5wb3NpdGlvbikpLHg9bC5sK00qbC53LGI9bC5sK1MqbC53fW8uaW5zZXJ0KCJsaW5lIiwiOmZpcnN0LWNoaWxkIikuYXR0cih7eDE6eCx4MjpiLHkxOnYseTI6diwic3Ryb2tlLXdpZHRoIjpULHN0cm9rZTprLCJzdHJva2UtZGFzaGFycmF5IjpoLmRhc2hTdHlsZShpLnNwaWtlZGFzaCxUKX0pLmNsYXNzZWQoInNwaWtlbGluZSIsITApLmNsYXNzZWQoImNyaXNwIiwhMCksby5pbnNlcnQoImxpbmUiLCI6Zmlyc3QtY2hpbGQiKS5hdHRyKHt4MTp4LHgyOmIseTE6dix5Mjp2LCJzdHJva2Utd2lkdGgiOlQrMixzdHJva2U6ZH0pLmNsYXNzZWQoInNwaWtlbGluZSIsITApLmNsYXNzZWQoImNyaXNwIiwhMCl9LTEhPT13LmluZGV4T2YoIm1hcmtlciIpJiZvLmluc2VydCgiY2lyY2xlIiwiOmZpcnN0LWNoaWxkIikuYXR0cih7Y3g6QSsoInJpZ2h0IiE9PWkuc2lkZT9UOi1UKSxjeTp2LHI6VCxmaWxsOmt9KS5jbGFzc2VkKCJzcGlrZWxpbmUiLCEwKX1pZihmKXt2YXIgRSxMLEM9ZS52TGluZVBvaW50O249QyYmQy54YSxpPUMmJkMueWEsImN1cnNvciI9PT1uLnNwaWtlc25hcD8oRT1jLnBvaW50ZXJYLEw9Yy5wb2ludGVyWSk6KEU9bi5fb2Zmc2V0K0MueCxMPWkuX29mZnNldCtDLnkpO3ZhciBQLEksTz1hLnJlYWRhYmlsaXR5KEMuY29sb3IsZCk8MS41P3AuY29udHJhc3QoZCk6Qy5jb2xvcix6PW4uc3Bpa2Vtb2RlLEQ9bi5zcGlrZXRoaWNrbmVzcyxSPW4uc3Bpa2Vjb2xvcnx8TyxGPW0uZ2V0UHhQb3NpdGlvbih0LG4pO2lmKC0xIT09ei5pbmRleE9mKCJ0b2F4aXMiKXx8LTEhPT16LmluZGV4T2YoImFjcm9zcyIpKXtpZigtMSE9PXouaW5kZXhPZigidG9heGlzIikmJihQPUYsST1MKSwtMSE9PXouaW5kZXhPZigiYWNyb3NzIikpe3ZhciBCPW4uX2NvdW50ZXJEb21haW5NaW4sTj1uLl9jb3VudGVyRG9tYWluTWF4OyJmcmVlIj09PW4uYW5jaG9yJiYoQj1NYXRoLm1pbihCLG4ucG9zaXRpb24pLE49TWF0aC5tYXgoTixuLnBvc2l0aW9uKSksUD1sLnQrKDEtTikqbC5oLEk9bC50KygxLUIpKmwuaH1vLmluc2VydCgibGluZSIsIjpmaXJzdC1jaGlsZCIpLmF0dHIoe3gxOkUseDI6RSx5MTpQLHkyOkksInN0cm9rZS13aWR0aCI6RCxzdHJva2U6Uiwic3Ryb2tlLWRhc2hhcnJheSI6aC5kYXNoU3R5bGUobi5zcGlrZWRhc2gsRCl9KS5jbGFzc2VkKCJzcGlrZWxpbmUiLCEwKS5jbGFzc2VkKCJjcmlzcCIsITApLG8uaW5zZXJ0KCJsaW5lIiwiOmZpcnN0LWNoaWxkIikuYXR0cih7eDE6RSx4MjpFLHkxOlAseTI6SSwic3Ryb2tlLXdpZHRoIjpEKzIsc3Ryb2tlOmR9KS5jbGFzc2VkKCJzcGlrZWxpbmUiLCEwKS5jbGFzc2VkKCJjcmlzcCIsITApfS0xIT09ei5pbmRleE9mKCJtYXJrZXIiKSYmby5pbnNlcnQoImNpcmNsZSIsIjpmaXJzdC1jaGlsZCIpLmF0dHIoe2N4OkUsY3k6Ri0oInRvcCIhPT1uLnNpZGU/RDotRCkscjpELGZpbGw6Un0pLmNsYXNzZWQoInNwaWtlbGluZSIsITApfX19ZnVuY3Rpb24gRih0LGUpe3JldHVybiFlfHwoZS52TGluZVBvaW50IT09dC5fc3Bpa2Vwb2ludHMudkxpbmVQb2ludHx8ZS5oTGluZVBvaW50IT09dC5fc3Bpa2Vwb2ludHMuaExpbmVQb2ludCl9ZnVuY3Rpb24gQih0LGUpe3JldHVybiB1LnBsYWluVGV4dCh0fHwiIix7bGVuOmUsYWxsb3dlZFRhZ3M6WyJiciIsInN1YiIsInN1cCIsImIiLCJpIiwiZW0iXX0pfWZ1bmN0aW9uIE4odCxlLHIpe3ZhciBuPWVbdCsiYSJdLGk9ZVt0KyJWYWwiXSxhPWUuY2RbMF07aWYoImNhdGVnb3J5Ij09PW4udHlwZSlpPW4uX2NhdGVnb3JpZXNNYXBbaV07ZWxzZSBpZigiZGF0ZSI9PT1uLnR5cGUpe3ZhciBvPWUudHJhY2VbdCsicGVyaW9kYWxpZ25tZW50Il07aWYobyl7dmFyIHM9ZS5jZFtlLmluZGV4XSxsPXNbdCsiU3RhcnQiXTt2b2lkIDA9PT1sJiYobD1zW3RdKTt2YXIgYz1zW3QrIkVuZCJdO3ZvaWQgMD09PWMmJihjPXNbdF0pO3ZhciB1PWMtbDsiZW5kIj09PW8/aSs9dToibWlkZGxlIj09PW8mJihpKz11LzIpfWk9bi5kMmMoaSl9cmV0dXJuIGEmJmEudCYmYS50LnBvc0xldHRlcj09PW4uX2lkJiYoImdyb3VwIiE9PXIuYm94bW9kZSYmImdyb3VwIiE9PXIudmlvbGlubW9kZXx8KGkrPWEudC5kUG9zKSksaX1mdW5jdGlvbiBqKHQpe3JldHVybiB0Lm9mZnNldFRvcCt0LmNsaWVudFRvcH1mdW5jdGlvbiBVKHQpe3JldHVybiB0Lm9mZnNldExlZnQrdC5jbGllbnRMZWZ0fWZ1bmN0aW9uIFYodCxlKXt2YXIgcj10Ll9mdWxsTGF5b3V0LG49ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxpPW4ueCxhPW4ueSxzPWkrbi53aWR0aCxsPWErbi5oZWlnaHQsYz1vLmFwcGx5M0RUcmFuc2Zvcm0oci5faW52VHJhbnNmb3JtKShpLGEpLHU9by5hcHBseTNEVHJhbnNmb3JtKHIuX2ludlRyYW5zZm9ybSkocyxsKSxmPWNbMF0saD1jWzFdLHA9dVswXSxkPXVbMV07cmV0dXJue3g6Zix5Omgsd2lkdGg6cC1mLGhlaWdodDpkLWgsdG9wOk1hdGgubWluKGgsZCksbGVmdDpNYXRoLm1pbihmLHApLHJpZ2h0Ok1hdGgubWF4KGYscCksYm90dG9tOk1hdGgubWF4KGgsZCl9fX0seyIuLi8uLi9saWIiOjUxNSwiLi4vLi4vbGliL2V2ZW50cyI6NTA0LCIuLi8uLi9saWIvb3ZlcnJpZGVfY3Vyc29yIjo1MjYsIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyI6NTQxLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NTY2LCIuLi8uLi9yZWdpc3RyeSI6NjQ3LCIuLi9jb2xvciI6MzY3LCIuLi9kcmFnZWxlbWVudCI6Mzg2LCIuLi9kcmF3aW5nIjozODksIi4uL2xlZ2VuZC9kZWZhdWx0cyI6NDE5LCIuLi9sZWdlbmQvZHJhdyI6NDIwLCIuL2NvbnN0YW50cyI6NDAxLCIuL2hlbHBlcnMiOjQwMywiQHBsb3RseS9kMyI6NTgsImZhc3QtaXNudW1lcmljIjoxOTAsdGlueWNvbG9yMjozMTN9XSw0MDU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi9jb2xvciIpLGE9dCgiLi9oZWxwZXJzIikuaXNVbmlmaWVkSG92ZXI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG8pe289b3x8e307dmFyIHM9ZS5sZWdlbmQ7ZnVuY3Rpb24gbCh0KXtvLmZvbnRbdF18fChvLmZvbnRbdF09cz9lLmxlZ2VuZC5mb250W3RdOmUuZm9udFt0XSl9ZSYmYShlLmhvdmVybW9kZSkmJihvLmZvbnR8fChvLmZvbnQ9e30pLGwoInNpemUiKSxsKCJmYW1pbHkiKSxsKCJjb2xvciIpLHM/KG8uYmdjb2xvcnx8KG8uYmdjb2xvcj1pLmNvbWJpbmUoZS5sZWdlbmQuYmdjb2xvcixlLnBhcGVyX2JnY29sb3IpKSxvLmJvcmRlcmNvbG9yfHwoby5ib3JkZXJjb2xvcj1lLmxlZ2VuZC5ib3JkZXJjb2xvcikpOm8uYmdjb2xvcnx8KG8uYmdjb2xvcj1lLnBhcGVyX2JnY29sb3IpKSxyKCJob3ZlcmxhYmVsLmJnY29sb3IiLG8uYmdjb2xvcikscigiaG92ZXJsYWJlbC5ib3JkZXJjb2xvciIsby5ib3JkZXJjb2xvcikscigiaG92ZXJsYWJlbC5uYW1lbGVuZ3RoIixvLm5hbWVsZW5ndGgpLG4uY29lcmNlRm9udChyLCJob3ZlcmxhYmVsLmZvbnQiLG8uZm9udCkscigiaG92ZXJsYWJlbC5hbGlnbiIsby5hbGlnbil9fSx7Ii4uLy4uL2xpYiI6NTE1LCIuLi9jb2xvciI6MzY3LCIuL2hlbHBlcnMiOjQwM31dLDQwNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiByKHIsYSl7cmV0dXJuIHZvaWQgMCE9PWVbcl0/ZVtyXTpuLmNvZXJjZSh0LGUsaSxyLGEpfXJldHVybiByKCJjbGlja21vZGUiKSxyKCJob3Zlcm1vZGUiKX19LHsiLi4vLi4vbGliIjo1MTUsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjQwOH1dLDQwNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9saWIiKSxhPXQoIi4uL2RyYWdlbGVtZW50Iiksbz10KCIuL2hlbHBlcnMiKSxzPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxsPXQoIi4vaG92ZXIiKTtlLmV4cG9ydHM9e21vZHVsZVR5cGU6ImNvbXBvbmVudCIsbmFtZToiZngiLGNvbnN0YW50czp0KCIuL2NvbnN0YW50cyIpLHNjaGVtYTp7bGF5b3V0OnN9LGF0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksbGF5b3V0QXR0cmlidXRlczpzLHN1cHBseUxheW91dEdsb2JhbERlZmF1bHRzOnQoIi4vbGF5b3V0X2dsb2JhbF9kZWZhdWx0cyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxzdXBwbHlMYXlvdXREZWZhdWx0czp0KCIuL2xheW91dF9kZWZhdWx0cyIpLGNhbGM6dCgiLi9jYWxjIiksZ2V0RGlzdGFuY2VGdW5jdGlvbjpvLmdldERpc3RhbmNlRnVuY3Rpb24sZ2V0Q2xvc2VzdDpvLmdldENsb3Nlc3QsaW5ib3g6by5pbmJveCxxdWFkcmF0dXJlOm8ucXVhZHJhdHVyZSxhcHBlbmRBcnJheVBvaW50VmFsdWU6by5hcHBlbmRBcnJheVBvaW50VmFsdWUsY2FzdEhvdmVyT3B0aW9uOmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gaS5jYXN0T3B0aW9uKHQsZSwiaG92ZXJsYWJlbC4iK3IpfSxjYXN0SG92ZXJpbmZvOmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gaS5jYXN0T3B0aW9uKHQsciwiaG92ZXJpbmZvIiwoZnVuY3Rpb24ocil7cmV0dXJuIGkuY29lcmNlSG92ZXJpbmZvKHtob3ZlcmluZm86cn0se19tb2R1bGU6dC5fbW9kdWxlfSxlKX0pKX0saG92ZXI6bC5ob3Zlcix1bmhvdmVyOmEudW5ob3Zlcixsb25lSG92ZXI6bC5sb25lSG92ZXIsbG9uZVVuaG92ZXI6ZnVuY3Rpb24odCl7dmFyIGU9aS5pc0QzU2VsZWN0aW9uKHQpP3Q6bi5zZWxlY3QodCk7ZS5zZWxlY3RBbGwoImcuaG92ZXJ0ZXh0IikucmVtb3ZlKCksZS5zZWxlY3RBbGwoIi5zcGlrZWxpbmUiKS5yZW1vdmUoKX0sY2xpY2s6dCgiLi9jbGljayIpfX0seyIuLi8uLi9saWIiOjUxNSwiLi4vZHJhZ2VsZW1lbnQiOjM4NiwiLi9hdHRyaWJ1dGVzIjozOTgsIi4vY2FsYyI6Mzk5LCIuL2NsaWNrIjo0MDAsIi4vY29uc3RhbnRzIjo0MDEsIi4vZGVmYXVsdHMiOjQwMiwiLi9oZWxwZXJzIjo0MDMsIi4vaG92ZXIiOjQwNCwiLi9sYXlvdXRfYXR0cmlidXRlcyI6NDA4LCIuL2xheW91dF9kZWZhdWx0cyI6NDA5LCIuL2xheW91dF9nbG9iYWxfZGVmYXVsdHMiOjQxMCwiQHBsb3RseS9kMyI6NTh9XSw0MDg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9jb25zdGFudHMiKSxpPXQoIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyIpLGE9aSh7ZWRpdFR5cGU6Im5vbmUifSk7YS5mYW1pbHkuZGZsdD1uLkhPVkVSRk9OVCxhLnNpemUuZGZsdD1uLkhPVkVSRk9OVFNJWkUsZS5leHBvcnRzPXtjbGlja21vZGU6e3ZhbFR5cGU6ImZsYWdsaXN0IixmbGFnczpbImV2ZW50Iiwic2VsZWN0Il0sZGZsdDoiZXZlbnQiLGVkaXRUeXBlOiJwbG90IixleHRyYXM6WyJub25lIl19LGRyYWdtb2RlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ6b29tIiwicGFuIiwic2VsZWN0IiwibGFzc28iLCJkcmF3Y2xvc2VkcGF0aCIsImRyYXdvcGVucGF0aCIsImRyYXdsaW5lIiwiZHJhd3JlY3QiLCJkcmF3Y2lyY2xlIiwib3JiaXQiLCJ0dXJudGFibGUiLCExXSxkZmx0OiJ6b29tIixlZGl0VHlwZToibW9kZWJhciJ9LGhvdmVybW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsieCIsInkiLCJjbG9zZXN0IiwhMSwieCB1bmlmaWVkIiwieSB1bmlmaWVkIl0sZGZsdDoiY2xvc2VzdCIsZWRpdFR5cGU6Im1vZGViYXIifSxob3ZlcmRpc3RhbmNlOnt2YWxUeXBlOiJpbnRlZ2VyIixtaW46LTEsZGZsdDoyMCxlZGl0VHlwZToibm9uZSJ9LHNwaWtlZGlzdGFuY2U6e3ZhbFR5cGU6ImludGVnZXIiLG1pbjotMSxkZmx0Oi0xLGVkaXRUeXBlOiJub25lIn0saG92ZXJsYWJlbDp7Ymdjb2xvcjp7dmFsVHlwZToiY29sb3IiLGVkaXRUeXBlOiJub25lIn0sYm9yZGVyY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToibm9uZSJ9LGZvbnQ6YSxncm91cHRpdGxlZm9udDppKHtlZGl0VHlwZToibm9uZSJ9KSxhbGlnbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsibGVmdCIsInJpZ2h0IiwiYXV0byJdLGRmbHQ6ImF1dG8iLGVkaXRUeXBlOiJub25lIn0sbmFtZWxlbmd0aDp7dmFsVHlwZToiaW50ZWdlciIsbWluOi0xLGRmbHQ6MTUsZWRpdFR5cGU6Im5vbmUifSxlZGl0VHlwZToibm9uZSJ9LHNlbGVjdGRpcmVjdGlvbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiaCIsInYiLCJkIiwiYW55Il0sZGZsdDoiYW55IixlZGl0VHlwZToibm9uZSJ9fX0seyIuLi8uLi9wbG90cy9mb250X2F0dHJpYnV0ZXMiOjU5NCwiLi9jb25zdGFudHMiOjQwMX1dLDQwOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxhPXQoIi4vaG92ZXJtb2RlX2RlZmF1bHRzIiksbz10KCIuL2hvdmVybGFiZWxfZGVmYXVsdHMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiByKHIsYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxpLHIsYSl9YSh0LGUpJiYocigiaG92ZXJkaXN0YW5jZSIpLHIoInNwaWtlZGlzdGFuY2UiKSksInNlbGVjdCI9PT1yKCJkcmFnbW9kZSIpJiZyKCJzZWxlY3RkaXJlY3Rpb24iKTt2YXIgcz1lLl9oYXMoIm1hcGJveCIpLGw9ZS5faGFzKCJnZW8iKSxjPWUuX2Jhc2VQbG90TW9kdWxlcy5sZW5ndGg7Inpvb20iPT09ZS5kcmFnbW9kZSYmKChzfHxsKSYmMT09PWN8fHMmJmwmJjI9PT1jKSYmKGUuZHJhZ21vZGU9InBhbiIpLG8odCxlLHIpLG4uY29lcmNlRm9udChyLCJob3ZlcmxhYmVsLmdyb3VwdGl0bGVmb250IixlLmhvdmVybGFiZWwuZm9udCl9fSx7Ii4uLy4uL2xpYiI6NTE1LCIuL2hvdmVybGFiZWxfZGVmYXVsdHMiOjQwNSwiLi9ob3Zlcm1vZGVfZGVmYXVsdHMiOjQwNiwiLi9sYXlvdXRfYXR0cmlidXRlcyI6NDA4fV0sNDEwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi9ob3ZlcmxhYmVsX2RlZmF1bHRzIiksYT10KCIuL2xheW91dF9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aSh0LGUsKGZ1bmN0aW9uKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxhLHIsaSl9KSl9fSx7Ii4uLy4uL2xpYiI6NTE1LCIuL2hvdmVybGFiZWxfZGVmYXVsdHMiOjQwNSwiLi9sYXlvdXRfYXR0cmlidXRlcyI6NDA4fV0sNDExOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vbGliL3JlZ2V4IikuY291bnRlcixhPXQoIi4uLy4uL3Bsb3RzL2RvbWFpbiIpLmF0dHJpYnV0ZXMsbz10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vY29uc3RhbnRzIikuaWRSZWdleCxzPXQoIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKSxsPXtyb3dzOnt2YWxUeXBlOiJpbnRlZ2VyIixtaW46MSxlZGl0VHlwZToicGxvdCJ9LHJvd29yZGVyOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ0b3AgdG8gYm90dG9tIiwiYm90dG9tIHRvIHRvcCJdLGRmbHQ6InRvcCB0byBib3R0b20iLGVkaXRUeXBlOiJwbG90In0sY29sdW1uczp7dmFsVHlwZToiaW50ZWdlciIsbWluOjEsZWRpdFR5cGU6InBsb3QifSxzdWJwbG90czp7dmFsVHlwZToiaW5mb19hcnJheSIsZnJlZUxlbmd0aDohMCxkaW1lbnNpb25zOjIsaXRlbXM6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbaSgieHkiKS50b1N0cmluZygpLCIiXSxlZGl0VHlwZToicGxvdCJ9LGVkaXRUeXBlOiJwbG90In0seGF4ZXM6e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGZyZWVMZW5ndGg6ITAsaXRlbXM6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbby54LnRvU3RyaW5nKCksIiJdLGVkaXRUeXBlOiJwbG90In0sZWRpdFR5cGU6InBsb3QifSx5YXhlczp7dmFsVHlwZToiaW5mb19hcnJheSIsZnJlZUxlbmd0aDohMCxpdGVtczp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOltvLnkudG9TdHJpbmcoKSwiIl0sZWRpdFR5cGU6InBsb3QifSxlZGl0VHlwZToicGxvdCJ9LHBhdHRlcm46e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImluZGVwZW5kZW50IiwiY291cGxlZCJdLGRmbHQ6ImNvdXBsZWQiLGVkaXRUeXBlOiJwbG90In0seGdhcDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxlZGl0VHlwZToicGxvdCJ9LHlnYXA6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZWRpdFR5cGU6InBsb3QifSxkb21haW46YSh7bmFtZToiZ3JpZCIsZWRpdFR5cGU6InBsb3QiLG5vR3JpZENlbGw6ITB9LHt9KSx4c2lkZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiYm90dG9tIiwiYm90dG9tIHBsb3QiLCJ0b3AgcGxvdCIsInRvcCJdLGRmbHQ6ImJvdHRvbSBwbG90IixlZGl0VHlwZToicGxvdCJ9LHlzaWRlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJsZWZ0IiwibGVmdCBwbG90IiwicmlnaHQgcGxvdCIsInJpZ2h0Il0sZGZsdDoibGVmdCBwbG90IixlZGl0VHlwZToicGxvdCJ9LGVkaXRUeXBlOiJwbG90In07ZnVuY3Rpb24gYyh0LGUscil7dmFyIG49ZVtyKyJheGVzIl0saT1PYmplY3Qua2V5cygodC5fc3Bsb21BeGVzfHx7fSlbcl18fHt9KTtyZXR1cm4gQXJyYXkuaXNBcnJheShuKT9uOmkubGVuZ3RoP2k6dm9pZCAwfWZ1bmN0aW9uIHUodCxlLHIsbixpLGEpe3ZhciBvPWUodCsiZ2FwIixyKSxzPWUoImRvbWFpbi4iK3QpO2UodCsic2lkZSIsbik7Zm9yKHZhciBsPW5ldyBBcnJheShpKSxjPXNbMF0sdT0oc1sxXS1jKS8oaS1vKSxmPXUqKDEtbyksaD0wO2g8aTtoKyspe3ZhciBwPWMrdSpoO2xbYT9pLTEtaDpoXT1bcCxwK2ZdfXJldHVybiBsfWZ1bmN0aW9uIGYodCxlLHIsbixpKXt2YXIgYSxvPW5ldyBBcnJheShyKTtmdW5jdGlvbiBzKHQscil7LTEhPT1lLmluZGV4T2YocikmJnZvaWQgMD09PW5bcl0/KG9bdF09cixuW3JdPXQpOm9bdF09IiJ9aWYoQXJyYXkuaXNBcnJheSh0KSlmb3IoYT0wO2E8cjthKyspcyhhLHRbYV0pO2Vsc2UgZm9yKHMoMCxpKSxhPTE7YTxyO2ErKylzKGEsaSsoYSsxKSk7cmV0dXJuIG99ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJjb21wb25lbnQiLG5hbWU6ImdyaWQiLHNjaGVtYTp7bGF5b3V0OntncmlkOmx9fSxsYXlvdXRBdHRyaWJ1dGVzOmwsc2l6ZURlZmF1bHRzOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5ncmlkfHx7fSxpPWMoZSxyLCJ4IiksYT1jKGUsciwieSIpO2lmKHQuZ3JpZHx8aXx8YSl7dmFyIG8sZixoPUFycmF5LmlzQXJyYXkoci5zdWJwbG90cykmJkFycmF5LmlzQXJyYXkoci5zdWJwbG90c1swXSkscD1BcnJheS5pc0FycmF5KGkpLGQ9QXJyYXkuaXNBcnJheShhKSxtPXAmJmkhPT1yLnhheGVzJiZkJiZhIT09ci55YXhlcztoPyhvPXIuc3VicGxvdHMubGVuZ3RoLGY9ci5zdWJwbG90c1swXS5sZW5ndGgpOihkJiYobz1hLmxlbmd0aCkscCYmKGY9aS5sZW5ndGgpKTt2YXIgZz1zLm5ld0NvbnRhaW5lcihlLCJncmlkIiksdj1rKCJyb3dzIixvKSx5PWsoImNvbHVtbnMiLGYpO2lmKHYqeT4xKXtpZighaCYmIXAmJiFkKSJpbmRlcGVuZGVudCI9PT1rKCJwYXR0ZXJuIikmJihoPSEwKTtnLl9oYXNTdWJwbG90R3JpZD1oO3ZhciB4LGIsXz0idG9wIHRvIGJvdHRvbSI9PT1rKCJyb3dvcmRlciIpLHc9aD8uMjouMSxUPWg/LjM6LjE7bSYmZS5fc3Bsb21HcmlkRGZsdCYmKHg9ZS5fc3Bsb21HcmlkRGZsdC54c2lkZSxiPWUuX3NwbG9tR3JpZERmbHQueXNpZGUpLGcuX2RvbWFpbnM9e3g6dSgieCIsayx3LHgseSkseTp1KCJ5IixrLFQsYix2LF8pfX1lbHNlIGRlbGV0ZSBlLmdyaWR9ZnVuY3Rpb24gayh0LGUpe3JldHVybiBuLmNvZXJjZShyLGcsbCx0LGUpfX0sY29udGVudERlZmF1bHRzOmZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS5ncmlkO2lmKHImJnIuX2RvbWFpbnMpe3ZhciBuLGksYSxvLHMsbCx1LGg9dC5ncmlkfHx7fSxwPWUuX3N1YnBsb3RzLGQ9ci5faGFzU3VicGxvdEdyaWQsbT1yLnJvd3MsZz1yLmNvbHVtbnMsdj0iaW5kZXBlbmRlbnQiPT09ci5wYXR0ZXJuLHk9ci5fYXhpc01hcD17fTtpZihkKXt2YXIgeD1oLnN1YnBsb3RzfHxbXTtsPXIuc3VicGxvdHM9bmV3IEFycmF5KG0pO3ZhciBiPTE7Zm9yKG49MDtuPG07bisrKXt2YXIgXz1sW25dPW5ldyBBcnJheShnKSx3PXhbbl18fFtdO2ZvcihpPTA7aTxnO2krKylpZih2PyhzPTE9PT1iPyJ4eSI6IngiK2IrInkiK2IsYisrKTpzPXdbaV0sX1tpXT0iIiwtMSE9PXAuY2FydGVzaWFuLmluZGV4T2Yocykpe2lmKHU9cy5pbmRleE9mKCJ5IiksYT1zLnNsaWNlKDAsdSksbz1zLnNsaWNlKHUpLHZvaWQgMCE9PXlbYV0mJnlbYV0hPT1pfHx2b2lkIDAhPT15W29dJiZ5W29dIT09biljb250aW51ZTtfW2ldPXMseVthXT1pLHlbb109bn19fWVsc2V7dmFyIFQ9YyhlLGgsIngiKSxrPWMoZSxoLCJ5Iik7ci54YXhlcz1mKFQscC54YXhpcyxnLHksIngiKSxyLnlheGVzPWYoayxwLnlheGlzLG0seSwieSIpfXZhciBBPXIuX2FuY2hvcnM9e30sTT0idG9wIHRvIGJvdHRvbSI9PT1yLnJvd29yZGVyO2Zvcih2YXIgUyBpbiB5KXt2YXIgRSxMLEMsUD1TLmNoYXJBdCgwKSxJPXJbUCsic2lkZSJdO2lmKEkubGVuZ3RoPDgpQVtTXT0iZnJlZSI7ZWxzZSBpZigieCI9PT1QKXtpZigidCI9PT1JLmNoYXJBdCgwKT09PU0/KEU9MCxMPTEsQz1tKTooRT1tLTEsTD0tMSxDPS0xKSxkKXt2YXIgTz15W1NdO2ZvcihuPUU7biE9PUM7bis9TClpZigocz1sW25dW09dKSYmKHU9cy5pbmRleE9mKCJ5Iikscy5zbGljZSgwLHUpPT09Uykpe0FbU109cy5zbGljZSh1KTticmVha319ZWxzZSBmb3Iobj1FO24hPT1DO24rPUwpaWYobz1yLnlheGVzW25dLC0xIT09cC5jYXJ0ZXNpYW4uaW5kZXhPZihTK28pKXtBW1NdPW87YnJlYWt9fWVsc2UgaWYoImwiPT09SS5jaGFyQXQoMCk/KEU9MCxMPTEsQz1nKTooRT1nLTEsTD0tMSxDPS0xKSxkKXt2YXIgej15W1NdO2ZvcihuPUU7biE9PUM7bis9TClpZigocz1sW3pdW25dKSYmKHU9cy5pbmRleE9mKCJ5Iikscy5zbGljZSh1KT09PVMpKXtBW1NdPXMuc2xpY2UoMCx1KTticmVha319ZWxzZSBmb3Iobj1FO24hPT1DO24rPUwpaWYoYT1yLnhheGVzW25dLC0xIT09cC5jYXJ0ZXNpYW4uaW5kZXhPZihhK1MpKXtBW1NdPWE7YnJlYWt9fX19fX0seyIuLi8uLi9saWIiOjUxNSwiLi4vLi4vbGliL3JlZ2V4Ijo1MzIsIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiOjU1NSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2NvbnN0YW50cyI6NTczLCIuLi8uLi9wbG90cy9kb21haW4iOjU5M31dLDQxMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vY29uc3RhbnRzIiksaT10KCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIikudGVtcGxhdGVkQXJyYXk7dCgiLi4vLi4vY29uc3RhbnRzL2F4aXNfcGxhY2VhYmxlX29iamVjdHMiKTtlLmV4cG9ydHM9aSgiaW1hZ2UiLHt2aXNpYmxlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJhcnJheWRyYXcifSxzb3VyY2U6e3ZhbFR5cGU6InN0cmluZyIsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LGxheWVyOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJiZWxvdyIsImFib3ZlIl0sZGZsdDoiYWJvdmUiLGVkaXRUeXBlOiJhcnJheWRyYXcifSxzaXpleDp7dmFsVHlwZToibnVtYmVyIixkZmx0OjAsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LHNpemV5Ont2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MCxlZGl0VHlwZToiYXJyYXlkcmF3In0sc2l6aW5nOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJmaWxsIiwiY29udGFpbiIsInN0cmV0Y2giXSxkZmx0OiJjb250YWluIixlZGl0VHlwZToiYXJyYXlkcmF3In0sb3BhY2l0eTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0OjEsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LHg6e3ZhbFR5cGU6ImFueSIsZGZsdDowLGVkaXRUeXBlOiJhcnJheWRyYXcifSx5Ont2YWxUeXBlOiJhbnkiLGRmbHQ6MCxlZGl0VHlwZToiYXJyYXlkcmF3In0seGFuY2hvcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsibGVmdCIsImNlbnRlciIsInJpZ2h0Il0sZGZsdDoibGVmdCIsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LHlhbmNob3I6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInRvcCIsIm1pZGRsZSIsImJvdHRvbSJdLGRmbHQ6InRvcCIsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LHhyZWY6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInBhcGVyIixuLmlkUmVnZXgueC50b1N0cmluZygpXSxkZmx0OiJwYXBlciIsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LHlyZWY6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInBhcGVyIixuLmlkUmVnZXgueS50b1N0cmluZygpXSxkZmx0OiJwYXBlciIsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LGVkaXRUeXBlOiJhcnJheWRyYXcifSl9LHsiLi4vLi4vY29uc3RhbnRzL2F4aXNfcGxhY2VhYmxlX29iamVjdHMiOjQ4NCwiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6NTU1LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vY29uc3RhbnRzIjo1NzN9XSw0MTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxpPXQoIi4uLy4uL2xpYi90b19sb2dfcmFuZ2UiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYSl7ZT1lfHx7fTt2YXIgbz0ibG9nIj09PXImJiJsaW5lYXIiPT09ZS50eXBlLHM9ImxpbmVhciI9PT1yJiYibG9nIj09PWUudHlwZTtpZihvfHxzKWZvcih2YXIgbCxjLHU9dC5fZnVsbExheW91dC5pbWFnZXMsZj1lLl9pZC5jaGFyQXQoMCksaD0wO2g8dS5sZW5ndGg7aCsrKWlmKGM9ImltYWdlc1siK2grIl0uIiwobD11W2hdKVtmKyJyZWYiXT09PWUuX2lkKXt2YXIgcD1sW2ZdLGQ9bFsic2l6ZSIrZl0sbT1udWxsLGc9bnVsbDtpZihvKXttPWkocCxlLnJhbmdlKTt2YXIgdj1kL01hdGgucG93KDEwLG0pLzI7Zz0yKk1hdGgubG9nKHYrTWF0aC5zcXJ0KDErdip2KSkvTWF0aC5MTjEwfWVsc2UgZz0obT1NYXRoLnBvdygxMCxwKSkqKE1hdGgucG93KDEwLGQvMiktTWF0aC5wb3coMTAsLWQvMikpO24obSk/bihnKXx8KGc9bnVsbCk6KG09bnVsbCxnPW51bGwpLGEoYytmLG0pLGEoYysic2l6ZSIrZixnKX19fSx7Ii4uLy4uL2xpYi90b19sb2dfcmFuZ2UiOjU0MywiZmFzdC1pc251bWVyaWMiOjE5MH1dLDQxNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksYT10KCIuLi8uLi9wbG90cy9hcnJheV9jb250YWluZXJfZGVmYXVsdHMiKSxvPXQoIi4vYXR0cmlidXRlcyIpO2Z1bmN0aW9uIHModCxlLHIpe2Z1bmN0aW9uIGEocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLG8scixpKX12YXIgcz1hKCJzb3VyY2UiKTtpZighYSgidmlzaWJsZSIsISFzKSlyZXR1cm4gZTthKCJsYXllciIpLGEoInhhbmNob3IiKSxhKCJ5YW5jaG9yIiksYSgic2l6ZXgiKSxhKCJzaXpleSIpLGEoInNpemluZyIpLGEoIm9wYWNpdHkiKTtmb3IodmFyIGw9e19mdWxsTGF5b3V0OnJ9LGM9WyJ4IiwieSJdLHU9MDt1PDI7dSsrKXt2YXIgZj1jW3VdLGg9aS5jb2VyY2VSZWYodCxlLGwsZiwicGFwZXIiLHZvaWQgMCk7aWYoInBhcGVyIiE9PWgpaS5nZXRGcm9tSWQobCxoKS5faW1nSW5kaWNlcy5wdXNoKGUuX2luZGV4KTtpLmNvZXJjZVBvc2l0aW9uKGUsbCxhLGgsZiwwKX1yZXR1cm4gZX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXthKHQsZSx7bmFtZToiaW1hZ2VzIixoYW5kbGVJdGVtRGVmYXVsdHM6c30pfX0seyIuLi8uLi9saWIiOjUxNSwiLi4vLi4vcGxvdHMvYXJyYXlfY29udGFpbmVyX2RlZmF1bHRzIjo1NjEsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo1NjYsIi4vYXR0cmlidXRlcyI6NDEyfV0sNDE1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4uL2RyYXdpbmciKSxhPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksbz10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19pZHMiKSxzPXQoIi4uLy4uL2NvbnN0YW50cy94bWxuc19uYW1lc3BhY2VzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbD10Ll9mdWxsTGF5b3V0LGM9W10sdT17fSxmPVtdO2ZvcihyPTA7cjxsLmltYWdlcy5sZW5ndGg7cisrKXt2YXIgaD1sLmltYWdlc1tyXTtpZihoLnZpc2libGUpaWYoImJlbG93Ij09PWgubGF5ZXImJiJwYXBlciIhPT1oLnhyZWYmJiJwYXBlciIhPT1oLnlyZWYpe2U9by5yZWYyaWQoaC54cmVmKStvLnJlZjJpZChoLnlyZWYpO3ZhciBwPWwuX3Bsb3RzW2VdO2lmKCFwKXtmLnB1c2goaCk7Y29udGludWV9cC5tYWlucGxvdCYmKGU9cC5tYWlucGxvdC5pZCksdVtlXXx8KHVbZV09W10pLHVbZV0ucHVzaChoKX1lbHNlImFib3ZlIj09PWgubGF5ZXI/Yy5wdXNoKGgpOmYucHVzaChoKX12YXIgZD17bGVmdDp7c2l6aW5nOiJ4TWluIixvZmZzZXQ6MH0sY2VudGVyOntzaXppbmc6InhNaWQiLG9mZnNldDotLjV9LHJpZ2h0OntzaXppbmc6InhNYXgiLG9mZnNldDotMX19LG09e3RvcDp7c2l6aW5nOiJZTWluIixvZmZzZXQ6MH0sbWlkZGxlOntzaXppbmc6IllNaWQiLG9mZnNldDotLjV9LGJvdHRvbTp7c2l6aW5nOiJZTWF4IixvZmZzZXQ6LTF9fTtmdW5jdGlvbiBnKGUpe3ZhciByPW4uc2VsZWN0KHRoaXMpO2lmKHRoaXMuX2ltZ1NyYyE9PWUuc291cmNlKWlmKHIuYXR0cigieG1sbnMiLHMuc3ZnKSxlLnNvdXJjZSYmImRhdGE6Ij09PWUuc291cmNlLnNsaWNlKDAsNSkpci5hdHRyKCJ4bGluazpocmVmIixlLnNvdXJjZSksdGhpcy5faW1nU3JjPWUuc291cmNlO2Vsc2V7dmFyIGk9bmV3IFByb21pc2UoZnVuY3Rpb24odCl7dmFyIG49bmV3IEltYWdlO2Z1bmN0aW9uIGkoKXtyLnJlbW92ZSgpLHQoKX10aGlzLmltZz1uLG4uc2V0QXR0cmlidXRlKCJjcm9zc09yaWdpbiIsImFub255bW91cyIpLG4ub25lcnJvcj1pLG4ub25sb2FkPWZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7ZS53aWR0aD10aGlzLndpZHRoLGUuaGVpZ2h0PXRoaXMuaGVpZ2h0LGUuZ2V0Q29udGV4dCgiMmQiLHt3aWxsUmVhZEZyZXF1ZW50bHk6ITB9KS5kcmF3SW1hZ2UodGhpcywwLDApO3ZhciBuPWUudG9EYXRhVVJMKCJpbWFnZS9wbmciKTtyLmF0dHIoInhsaW5rOmhyZWYiLG4pLHQoKX0sci5vbigiZXJyb3IiLGkpLG4uc3JjPWUuc291cmNlLHRoaXMuX2ltZ1NyYz1lLnNvdXJjZX0uYmluZCh0aGlzKSk7dC5fcHJvbWlzZXMucHVzaChpKX19ZnVuY3Rpb24gdihlKXt2YXIgcixvLHM9bi5zZWxlY3QodGhpcyksYz1hLmdldEZyb21JZCh0LGUueHJlZiksdT1hLmdldEZyb21JZCh0LGUueXJlZiksZj0iZG9tYWluIj09PWEuZ2V0UmVmVHlwZShlLnhyZWYpLGg9ImRvbWFpbiI9PT1hLmdldFJlZlR5cGUoZS55cmVmKSxwPWwuX3NpemU7cj12b2lkIDAhPT1jPyJzdHJpbmciPT10eXBlb2YgZS54cmVmJiZmP2MuX2xlbmd0aCplLnNpemV4Ok1hdGguYWJzKGMubDJwKGUuc2l6ZXgpLWMubDJwKDApKTplLnNpemV4KnAudyxvPXZvaWQgMCE9PXU/InN0cmluZyI9PXR5cGVvZiBlLnlyZWYmJmg/dS5fbGVuZ3RoKmUuc2l6ZXk6TWF0aC5hYnModS5sMnAoZS5zaXpleSktdS5sMnAoMCkpOmUuc2l6ZXkqcC5oO3ZhciBnLHYseT1yKmRbZS54YW5jaG9yXS5vZmZzZXQseD1vKm1bZS55YW5jaG9yXS5vZmZzZXQsYj1kW2UueGFuY2hvcl0uc2l6aW5nK21bZS55YW5jaG9yXS5zaXppbmc7c3dpdGNoKGc9dm9pZCAwIT09Yz8ic3RyaW5nIj09dHlwZW9mIGUueHJlZiYmZj9jLl9sZW5ndGgqZS54K2MuX29mZnNldDpjLnIycChlLngpK2MuX29mZnNldDplLngqcC53K3AubCxnKz15LHY9dm9pZCAwIT09dT8ic3RyaW5nIj09dHlwZW9mIGUueXJlZiYmaD91Ll9sZW5ndGgqKDEtZS55KSt1Ll9vZmZzZXQ6dS5yMnAoZS55KSt1Ll9vZmZzZXQ6cC5oLWUueSpwLmgrcC50LHYrPXgsZS5zaXppbmcpe2Nhc2UiZmlsbCI6Yis9IiBzbGljZSI7YnJlYWs7Y2FzZSJzdHJldGNoIjpiPSJub25lIn1zLmF0dHIoe3g6Zyx5OnYsd2lkdGg6cixoZWlnaHQ6byxwcmVzZXJ2ZUFzcGVjdFJhdGlvOmIsb3BhY2l0eTplLm9wYWNpdHl9KTt2YXIgXz0oYyYmImRvbWFpbiIhPT1hLmdldFJlZlR5cGUoZS54cmVmKT9jLl9pZDoiIikrKHUmJiJkb21haW4iIT09YS5nZXRSZWZUeXBlKGUueXJlZik/dS5faWQ6IiIpO2kuc2V0Q2xpcFVybChzLF8/ImNsaXAiK2wuX3VpZCtfOm51bGwsdCl9dmFyIHk9bC5faW1hZ2VMb3dlckxheWVyLnNlbGVjdEFsbCgiaW1hZ2UiKS5kYXRhKGYpLHg9bC5faW1hZ2VVcHBlckxheWVyLnNlbGVjdEFsbCgiaW1hZ2UiKS5kYXRhKGMpO3kuZW50ZXIoKS5hcHBlbmQoImltYWdlIikseC5lbnRlcigpLmFwcGVuZCgiaW1hZ2UiKSx5LmV4aXQoKS5yZW1vdmUoKSx4LmV4aXQoKS5yZW1vdmUoKSx5LmVhY2goKGZ1bmN0aW9uKHQpe2cuYmluZCh0aGlzKSh0KSx2LmJpbmQodGhpcykodCl9KSkseC5lYWNoKChmdW5jdGlvbih0KXtnLmJpbmQodGhpcykodCksdi5iaW5kKHRoaXMpKHQpfSkpO3ZhciBiPU9iamVjdC5rZXlzKGwuX3Bsb3RzKTtmb3Iocj0wO3I8Yi5sZW5ndGg7cisrKXtlPWJbcl07dmFyIF89bC5fcGxvdHNbZV07aWYoXy5pbWFnZWxheWVyKXt2YXIgdz1fLmltYWdlbGF5ZXIuc2VsZWN0QWxsKCJpbWFnZSIpLmRhdGEodVtlXXx8W10pO3cuZW50ZXIoKS5hcHBlbmQoImltYWdlIiksdy5leGl0KCkucmVtb3ZlKCksdy5lYWNoKChmdW5jdGlvbih0KXtnLmJpbmQodGhpcykodCksdi5iaW5kKHRoaXMpKHQpfSkpfX19fSx7Ii4uLy4uL2NvbnN0YW50cy94bWxuc19uYW1lc3BhY2VzIjo0OTIsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo1NjYsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2lkcyI6NTcwLCIuLi9kcmF3aW5nIjozODksIkBwbG90bHkvZDMiOjU4fV0sNDE2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17bW9kdWxlVHlwZToiY29tcG9uZW50IixuYW1lOiJpbWFnZXMiLGxheW91dEF0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5TGF5b3V0RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGluY2x1ZGVCYXNlUGxvdDp0KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vaW5jbHVkZV9jb21wb25lbnRzIikoImltYWdlcyIpLGRyYXc6dCgiLi9kcmF3IiksY29udmVydENvb3Jkczp0KCIuL2NvbnZlcnRfY29vcmRzIil9fSx7Ii4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9pbmNsdWRlX2NvbXBvbmVudHMiOjU3NywiLi9hdHRyaWJ1dGVzIjo0MTIsIi4vY29udmVydF9jb29yZHMiOjQxMywiLi9kZWZhdWx0cyI6NDE0LCIuL2RyYXciOjQxNX1dLDQxNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9mb250X2F0dHJpYnV0ZXMiKSxpPXQoIi4uL2NvbG9yL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9e2JnY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToibGVnZW5kIn0sYm9yZGVyY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OmkuZGVmYXVsdExpbmUsZWRpdFR5cGU6ImxlZ2VuZCJ9LGJvcmRlcndpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MCxlZGl0VHlwZToibGVnZW5kIn0sZm9udDpuKHtlZGl0VHlwZToibGVnZW5kIn0pLGdyb3VwdGl0bGVmb250Om4oe2VkaXRUeXBlOiJsZWdlbmQifSksb3JpZW50YXRpb246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInYiLCJoIl0sZGZsdDoidiIsZWRpdFR5cGU6ImxlZ2VuZCJ9LHRyYWNlb3JkZXI6e3ZhbFR5cGU6ImZsYWdsaXN0IixmbGFnczpbInJldmVyc2VkIiwiZ3JvdXBlZCJdLGV4dHJhczpbIm5vcm1hbCJdLGVkaXRUeXBlOiJsZWdlbmQifSx0cmFjZWdyb3VwZ2FwOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MTAsZWRpdFR5cGU6ImxlZ2VuZCJ9LGl0ZW1zaXppbmc6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInRyYWNlIiwiY29uc3RhbnQiXSxkZmx0OiJ0cmFjZSIsZWRpdFR5cGU6ImxlZ2VuZCJ9LGl0ZW13aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MzAsZGZsdDozMCxlZGl0VHlwZToibGVnZW5kIn0saXRlbWNsaWNrOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ0b2dnbGUiLCJ0b2dnbGVvdGhlcnMiLCExXSxkZmx0OiJ0b2dnbGUiLGVkaXRUeXBlOiJsZWdlbmQifSxpdGVtZG91YmxlY2xpY2s6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInRvZ2dsZSIsInRvZ2dsZW90aGVycyIsITFdLGRmbHQ6InRvZ2dsZW90aGVycyIsZWRpdFR5cGU6ImxlZ2VuZCJ9LGdyb3VwY2xpY2s6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInRvZ2dsZWl0ZW0iLCJ0b2dnbGVncm91cCJdLGRmbHQ6InRvZ2dsZWdyb3VwIixlZGl0VHlwZToibGVnZW5kIn0seDp7dmFsVHlwZToibnVtYmVyIixtaW46LTIsbWF4OjMsZWRpdFR5cGU6ImxlZ2VuZCJ9LHhhbmNob3I6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImF1dG8iLCJsZWZ0IiwiY2VudGVyIiwicmlnaHQiXSxkZmx0OiJsZWZ0IixlZGl0VHlwZToibGVnZW5kIn0seTp7dmFsVHlwZToibnVtYmVyIixtaW46LTIsbWF4OjMsZWRpdFR5cGU6ImxlZ2VuZCJ9LHlhbmNob3I6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImF1dG8iLCJ0b3AiLCJtaWRkbGUiLCJib3R0b20iXSxlZGl0VHlwZToibGVnZW5kIn0sdWlyZXZpc2lvbjp7dmFsVHlwZToiYW55IixlZGl0VHlwZToibm9uZSJ9LHZhbGlnbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsidG9wIiwibWlkZGxlIiwiYm90dG9tIl0sZGZsdDoibWlkZGxlIixlZGl0VHlwZToibGVnZW5kIn0sdGl0bGU6e3RleHQ6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIixlZGl0VHlwZToibGVnZW5kIn0sZm9udDpuKHtlZGl0VHlwZToibGVnZW5kIn0pLHNpZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInRvcCIsImxlZnQiLCJ0b3AgbGVmdCJdLGVkaXRUeXBlOiJsZWdlbmQifSxlZGl0VHlwZToibGVnZW5kIn0sZWRpdFR5cGU6ImxlZ2VuZCJ9fSx7Ii4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyI6NTk0LCIuLi9jb2xvci9hdHRyaWJ1dGVzIjozNjZ9XSw0MTg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtzY3JvbGxCYXJXaWR0aDo2LHNjcm9sbEJhck1pbkhlaWdodDoyMCxzY3JvbGxCYXJDb2xvcjoiIzgwOEJBNCIsc2Nyb2xsQmFyTWFyZ2luOjQsc2Nyb2xsQmFyRW50ZXJBdHRyczp7cng6MjAscnk6Myx3aWR0aDowLGhlaWdodDowfSx0aXRsZVBhZDoyLGl0ZW1HYXA6NX19LHt9XSw0MTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcmVnaXN0cnkiKSxpPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpLG89dCgiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyIpLHM9dCgiLi9hdHRyaWJ1dGVzIiksbD10KCIuLi8uLi9wbG90cy9sYXlvdXRfYXR0cmlidXRlcyIpLGM9dCgiLi9oZWxwZXJzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgdSxmPXQubGVnZW5kfHx7fSxoPWEubmV3Q29udGFpbmVyKGUsImxlZ2VuZCIpO2Z1bmN0aW9uIHAodCxlKXtyZXR1cm4gaS5jb2VyY2UoZixoLHMsdCxlKX1mb3IodmFyIGQ9ZnVuY3Rpb24odCxlKXt2YXIgcj11Ll9pbnB1dCxuPXU7cmV0dXJuIGkuY29lcmNlKHIsbixvLHQsZSl9LG09ZS5mb250fHx7fSxnPWkuY29lcmNlRm9udChwLCJncm91cHRpdGxlZm9udCIsaS5leHRlbmRGbGF0KHt9LG0se3NpemU6TWF0aC5yb3VuZCgxLjEqbS5zaXplKX0pKSx2PTAseT0hMSx4PSJub3JtYWwiLGI9MDtiPHIubGVuZ3RoO2IrKykodT1yW2JdKS52aXNpYmxlJiYoKHUuc2hvd2xlZ2VuZHx8dS5fZGZsdFNob3dMZWdlbmQmJiEodS5fbW9kdWxlJiZ1Ll9tb2R1bGUuYXR0cmlidXRlcyYmdS5fbW9kdWxlLmF0dHJpYnV0ZXMuc2hvd2xlZ2VuZCYmITE9PT11Ll9tb2R1bGUuYXR0cmlidXRlcy5zaG93bGVnZW5kLmRmbHQpKSYmKHYrKyx1LnNob3dsZWdlbmQmJih5PSEwLChuLnRyYWNlSXModSwicGllLWxpa2UiKXx8ITA9PT11Ll9pbnB1dC5zaG93bGVnZW5kKSYmdisrKSxpLmNvZXJjZUZvbnQoZCwibGVnZW5kZ3JvdXB0aXRsZS5mb250IixnKSksKG4udHJhY2VJcyh1LCJiYXIiKSYmInN0YWNrIj09PWUuYmFybW9kZXx8LTEhPT1bInRvbmV4dHgiLCJ0b25leHR5Il0uaW5kZXhPZih1LmZpbGwpKSYmKHg9Yy5pc0dyb3VwZWQoe3RyYWNlb3JkZXI6eH0pPyJncm91cGVkK3JldmVyc2VkIjoicmV2ZXJzZWQiKSx2b2lkIDAhPT11LmxlZ2VuZGdyb3VwJiYiIiE9PXUubGVnZW5kZ3JvdXAmJih4PWMuaXNSZXZlcnNlZCh7dHJhY2VvcmRlcjp4fSk/InJldmVyc2VkK2dyb3VwZWQiOiJncm91cGVkIikpO3ZhciBfPWkuY29lcmNlKHQsZSxsLCJzaG93bGVnZW5kIix5JiZ2PjEpO2lmKCExPT09XyYmKGUubGVnZW5kPXZvaWQgMCksKCExIT09X3x8Zi51aXJldmlzaW9uKSYmKHAoInVpcmV2aXNpb24iLGUudWlyZXZpc2lvbiksITEhPT1fKSl7cCgiYmdjb2xvciIsZS5wYXBlcl9iZ2NvbG9yKSxwKCJib3JkZXJjb2xvciIpLHAoImJvcmRlcndpZHRoIik7dmFyIHcsVCxrLEE9aS5jb2VyY2VGb250KHAsImZvbnQiLGUuZm9udCksTT0iaCI9PT1wKCJvcmllbnRhdGlvbiIpO2lmKE0/KHc9MCxuLmdldENvbXBvbmVudE1ldGhvZCgicmFuZ2VzbGlkZXIiLCJpc1Zpc2libGUiKSh0LnhheGlzKT8oVD0xLjEsaz0iYm90dG9tIik6KFQ9LS4xLGs9InRvcCIpKToodz0xLjAyLFQ9MSxrPSJhdXRvIikscCgidHJhY2VvcmRlciIseCksYy5pc0dyb3VwZWQoZS5sZWdlbmQpJiZwKCJ0cmFjZWdyb3VwZ2FwIikscCgiaXRlbXNpemluZyIpLHAoIml0ZW13aWR0aCIpLHAoIml0ZW1jbGljayIpLHAoIml0ZW1kb3VibGVjbGljayIpLHAoImdyb3VwY2xpY2siKSxwKCJ4Iix3KSxwKCJ4YW5jaG9yIikscCgieSIsVCkscCgieWFuY2hvciIsaykscCgidmFsaWduIiksaS5ub25lT3JBbGwoZixoLFsieCIsInkiXSkscCgidGl0bGUudGV4dCIpKXtwKCJ0aXRsZS5zaWRlIixNPyJsZWZ0IjoidG9wIik7dmFyIFM9aS5leHRlbmRGbGF0KHt9LEEse3NpemU6aS5iaWdGb250KEEuc2l6ZSl9KTtpLmNvZXJjZUZvbnQocCwidGl0bGUuZm9udCIsUyl9fX19LHsiLi4vLi4vbGliIjo1MTUsIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiOjU1NSwiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyI6NTYyLCIuLi8uLi9wbG90cy9sYXlvdXRfYXR0cmlidXRlcyI6NjE5LCIuLi8uLi9yZWdpc3RyeSI6NjQ3LCIuL2F0dHJpYnV0ZXMiOjQxNywiLi9oZWxwZXJzIjo0MjN9XSw0MjA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9wbG90cy9wbG90cyIpLG89dCgiLi4vLi4vcmVnaXN0cnkiKSxzPXQoIi4uLy4uL2xpYi9ldmVudHMiKSxsPXQoIi4uL2RyYWdlbGVtZW50IiksYz10KCIuLi9kcmF3aW5nIiksdT10KCIuLi9jb2xvciIpLGY9dCgiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIiksaD10KCIuL2hhbmRsZV9jbGljayIpLHA9dCgiLi9jb25zdGFudHMiKSxkPXQoIi4uLy4uL2NvbnN0YW50cy9hbGlnbm1lbnQiKSxtPWQuTElORV9TUEFDSU5HLGc9ZC5GUk9NX1RMLHY9ZC5GUk9NX0JSLHk9dCgiLi9nZXRfbGVnZW5kX2RhdGEiKSx4PXQoIi4vc3R5bGUiKSxiPXQoIi4vaGVscGVycyIpO2Z1bmN0aW9uIF8odCxlLHIsbixpKXt2YXIgYT1yLmRhdGEoKVswXVswXS50cmFjZSxsPXtldmVudDppLG5vZGU6ci5ub2RlKCksY3VydmVOdW1iZXI6YS5pbmRleCxleHBhbmRlZEluZGV4OmEuX2V4cGFuZGVkSW5kZXgsZGF0YTp0LmRhdGEsbGF5b3V0OnQubGF5b3V0LGZyYW1lczp0Ll90cmFuc2l0aW9uRGF0YS5fZnJhbWVzLGNvbmZpZzp0Ll9jb250ZXh0LGZ1bGxEYXRhOnQuX2Z1bGxEYXRhLGZ1bGxMYXlvdXQ6dC5fZnVsbExheW91dH07aWYoYS5fZ3JvdXAmJihsLmdyb3VwPWEuX2dyb3VwKSxvLnRyYWNlSXMoYSwicGllLWxpa2UiKSYmKGwubGFiZWw9ci5kYXR1bSgpWzBdLmxhYmVsKSwhMSE9PXMudHJpZ2dlckhhbmRsZXIodCwicGxvdGx5X2xlZ2VuZGNsaWNrIixsKSlpZigxPT09billLl9jbGlja1RpbWVvdXQ9c2V0VGltZW91dCgoZnVuY3Rpb24oKXt0Ll9mdWxsTGF5b3V0JiZoKHIsdCxuKX0pLHQuX2NvbnRleHQuZG91YmxlQ2xpY2tEZWxheSk7ZWxzZSBpZigyPT09bil7ZS5fY2xpY2tUaW1lb3V0JiZjbGVhclRpbWVvdXQoZS5fY2xpY2tUaW1lb3V0KSx0Ll9sZWdlbmRNb3VzZURvd25UaW1lPTAsITEhPT1zLnRyaWdnZXJIYW5kbGVyKHQsInBsb3RseV9sZWdlbmRkb3VibGVjbGljayIsbCkmJmgocix0LG4pfX1mdW5jdGlvbiB3KHQsZSxyKXt2YXIgbixhLHM9dC5kYXRhKClbMF1bMF0sbD1zLnRyYWNlLHU9by50cmFjZUlzKGwsInBpZS1saWtlIiksaD0hci5faW5Ib3ZlciYmZS5fY29udGV4dC5lZGl0cy5sZWdlbmRUZXh0JiYhdSxkPXIuX21heE5hbWVMZW5ndGg7cy5ncm91cFRpdGxlPyhuPXMuZ3JvdXBUaXRsZS50ZXh0LGE9cy5ncm91cFRpdGxlLmZvbnQpOihhPXIuZm9udCxyLmVudHJpZXM/bj1zLnRleHQ6KG49dT9zLmxhYmVsOmwubmFtZSxsLl9tZXRhJiYobj1pLnRlbXBsYXRlU3RyaW5nKG4sbC5fbWV0YSkpKSk7dmFyIG09aS5lbnN1cmVTaW5nbGUodCwidGV4dCIsImxlZ2VuZHRleHQiKTttLmF0dHIoInRleHQtYW5jaG9yIiwic3RhcnQiKS5jYWxsKGMuZm9udCxhKS50ZXh0KGg/VChuLGQpOm4pO3ZhciBnPXIuaXRlbXdpZHRoKzIqcC5pdGVtR2FwO2YucG9zaXRpb25UZXh0KG0sZywwKSxoP20uY2FsbChmLm1ha2VFZGl0YWJsZSx7Z2Q6ZSx0ZXh0Om59KS5jYWxsKEEsdCxlLHIpLm9uKCJlZGl0IiwoZnVuY3Rpb24obil7dGhpcy50ZXh0KFQobixkKSkuY2FsbChBLHQsZSxyKTt2YXIgYT1zLnRyYWNlLl9mdWxsSW5wdXR8fHt9LGM9e307aWYoby5oYXNUcmFuc2Zvcm0oYSwiZ3JvdXBieSIpKXt2YXIgdT1vLmdldFRyYW5zZm9ybUluZGljZXMoYSwiZ3JvdXBieSIpLGY9dVt1Lmxlbmd0aC0xXSxoPWkua2V5ZWRDb250YWluZXIoYSwidHJhbnNmb3Jtc1siK2YrIl0uc3R5bGVzIiwidGFyZ2V0IiwidmFsdWUubmFtZSIpO2guc2V0KHMudHJhY2UuX2dyb3VwLG4pLGM9aC5jb25zdHJ1Y3RVcGRhdGUoKX1lbHNlIGMubmFtZT1uO3JldHVybiBvLmNhbGwoIl9ndWlSZXN0eWxlIixlLGMsbC5pbmRleCl9KSk6QShtLHQsZSxyKX1mdW5jdGlvbiBUKHQsZSl7dmFyIHI9TWF0aC5tYXgoNCxlKTtpZih0JiZ0LnRyaW0oKS5sZW5ndGg+PXIvMilyZXR1cm4gdDtmb3IodmFyIG49ci0odD10fHwiIikubGVuZ3RoO24+MDtuLS0pdCs9IiAiO3JldHVybiB0fWZ1bmN0aW9uIGsodCxlKXt2YXIgcixhPWUuX2NvbnRleHQuZG91YmxlQ2xpY2tEZWxheSxvPTEscz1pLmVuc3VyZVNpbmdsZSh0LCJyZWN0IiwibGVnZW5kdG9nZ2xlIiwoZnVuY3Rpb24odCl7ZS5fY29udGV4dC5zdGF0aWNQbG90fHx0LnN0eWxlKCJjdXJzb3IiLCJwb2ludGVyIikuYXR0cigicG9pbnRlci1ldmVudHMiLCJhbGwiKSx0LmNhbGwodS5maWxsLCJyZ2JhKDAsMCwwLDApIil9KSk7ZS5fY29udGV4dC5zdGF0aWNQbG90fHwocy5vbigibW91c2Vkb3duIiwoZnVuY3Rpb24oKXsocj0obmV3IERhdGUpLmdldFRpbWUoKSktZS5fbGVnZW5kTW91c2VEb3duVGltZTxhP28rPTE6KG89MSxlLl9sZWdlbmRNb3VzZURvd25UaW1lPXIpfSkpLHMub24oIm1vdXNldXAiLChmdW5jdGlvbigpe2lmKCFlLl9kcmFnZ2VkJiYhZS5fZWRpdGluZyl7dmFyIHI9ZS5fZnVsbExheW91dC5sZWdlbmQ7KG5ldyBEYXRlKS5nZXRUaW1lKCktZS5fbGVnZW5kTW91c2VEb3duVGltZT5hJiYobz1NYXRoLm1heChvLTEsMSkpLF8oZSxyLHQsbyxuLmV2ZW50KX19KSkpfWZ1bmN0aW9uIEEodCxlLHIsbixpKXtuLl9pbkhvdmVyJiZ0LmF0dHIoImRhdGEtbm90ZXgiLCEwKSxmLmNvbnZlcnRUb1RzcGFucyh0LHIsKGZ1bmN0aW9uKCl7IWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPXQuZGF0YSgpWzBdWzBdO2lmKCFyLl9pbkhvdmVyJiZpJiYhaS50cmFjZS5zaG93bGVnZW5kKXJldHVybiB2b2lkIHQucmVtb3ZlKCk7dmFyIGE9dC5zZWxlY3QoImdbY2xhc3MqPW1hdGgtZ3JvdXBdIiksbz1hLm5vZGUoKTtyfHwocj1lLl9mdWxsTGF5b3V0LmxlZ2VuZCk7dmFyIHMsbD1yLmJvcmRlcndpZHRoO3M9MT09PW4/ci50aXRsZS5mb250OmkuZ3JvdXBUaXRsZT9pLmdyb3VwVGl0bGUuZm9udDpyLmZvbnQ7dmFyIHUsaCxkPXMuc2l6ZSptO2lmKG8pe3ZhciBnPWMuYkJveChvKTt1PWcuaGVpZ2h0LGg9Zy53aWR0aCwxPT09bj9jLnNldFRyYW5zbGF0ZShhLGwsbCsuNzUqdSk6Yy5zZXRUcmFuc2xhdGUoYSwwLC4yNSp1KX1lbHNle3ZhciB2PXQuc2VsZWN0KDE9PT1uPyIubGVnZW5kdGl0bGV0ZXh0IjoiLmxlZ2VuZHRleHQiKSx5PWYubGluZUNvdW50KHYpLHg9di5ub2RlKCk7aWYodT1kKnksaD14P2MuYkJveCh4KS53aWR0aDowLDE9PT1uKSJsZWZ0Ij09PXIudGl0bGUuc2lkZSYmKGgrPTIqcC5pdGVtR2FwKSxmLnBvc2l0aW9uVGV4dCh2LGwrcC50aXRsZVBhZCxsK2QpO2Vsc2V7dmFyIGI9MipwLml0ZW1HYXArci5pdGVtd2lkdGg7aS5ncm91cFRpdGxlJiYoYj1wLml0ZW1HYXAsaC09ci5pdGVtd2lkdGgpLGYucG9zaXRpb25UZXh0KHYsYiwtZCooKHktMSkvMi0uMykpfX0xPT09bj8oci5fdGl0bGVXaWR0aD1oLHIuX3RpdGxlSGVpZ2h0PXUpOihpLmxpbmVIZWlnaHQ9ZCxpLmhlaWdodD1NYXRoLm1heCh1LDE2KSszLGkud2lkdGg9aCl9KGUscixuLGkpfSkpfWZ1bmN0aW9uIE0odCl7cmV0dXJuIGkuaXNSaWdodEFuY2hvcih0KT8icmlnaHQiOmkuaXNDZW50ZXJBbmNob3IodCk/ImNlbnRlciI6ImxlZnQifWZ1bmN0aW9uIFModCl7cmV0dXJuIGkuaXNCb3R0b21BbmNob3IodCk/ImJvdHRvbSI6aS5pc01pZGRsZUFuY2hvcih0KT8ibWlkZGxlIjoidG9wIn1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXx8KGU9dC5fZnVsbExheW91dC5sZWdlbmR8fHt9KSxmdW5jdGlvbih0LGUpe3ZhciByLHMsZj10Ll9mdWxsTGF5b3V0LGg9ImxlZ2VuZCIrZi5fdWlkLGQ9ZS5faW5Ib3ZlcjtkPyhyPWUubGF5ZXIsaCs9Ii1ob3ZlciIpOnI9Zi5faW5mb2xheWVyO2lmKCFyKXJldHVybjt0Ll9sZWdlbmRNb3VzZURvd25UaW1lfHwodC5fbGVnZW5kTW91c2VEb3duVGltZT0wKTtpZihkKXtpZighZS5lbnRyaWVzKXJldHVybjtzPXkoZS5lbnRyaWVzLGUpfWVsc2V7aWYoIXQuY2FsY2RhdGEpcmV0dXJuO3M9Zi5zaG93bGVnZW5kJiZ5KHQuY2FsY2RhdGEsZSl9dmFyIG09Zi5oaWRkZW5sYWJlbHN8fFtdO2lmKCEoZHx8Zi5zaG93bGVnZW5kJiZzLmxlbmd0aCkpcmV0dXJuIHIuc2VsZWN0QWxsKCIubGVnZW5kIikucmVtb3ZlKCksZi5fdG9wZGVmcy5zZWxlY3QoIiMiK2gpLnJlbW92ZSgpLGEuYXV0b01hcmdpbih0LCJsZWdlbmQiKTt2YXIgVD1pLmVuc3VyZVNpbmdsZShyLCJnIiwibGVnZW5kIiwoZnVuY3Rpb24odCl7ZHx8dC5hdHRyKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpfSkpLEU9aS5lbnN1cmVTaW5nbGVCeUlkKGYuX3RvcGRlZnMsImNsaXBQYXRoIixoLChmdW5jdGlvbih0KXt0LmFwcGVuZCgicmVjdCIpfSkpLEw9aS5lbnN1cmVTaW5nbGUoVCwicmVjdCIsImJnIiwoZnVuY3Rpb24odCl7dC5hdHRyKCJzaGFwZS1yZW5kZXJpbmciLCJjcmlzcEVkZ2VzIil9KSk7TC5jYWxsKHUuc3Ryb2tlLGUuYm9yZGVyY29sb3IpLmNhbGwodS5maWxsLGUuYmdjb2xvcikuc3R5bGUoInN0cm9rZS13aWR0aCIsZS5ib3JkZXJ3aWR0aCsicHgiKTt2YXIgQz1pLmVuc3VyZVNpbmdsZShULCJnIiwic2Nyb2xsYm94IiksUD1lLnRpdGxlO2lmKGUuX3RpdGxlV2lkdGg9MCxlLl90aXRsZUhlaWdodD0wLFAudGV4dCl7dmFyIEk9aS5lbnN1cmVTaW5nbGUoQywidGV4dCIsImxlZ2VuZHRpdGxldGV4dCIpO0kuYXR0cigidGV4dC1hbmNob3IiLCJzdGFydCIpLmNhbGwoYy5mb250LFAuZm9udCkudGV4dChQLnRleHQpLEEoSSxDLHQsZSwxKX1lbHNlIEMuc2VsZWN0QWxsKCIubGVnZW5kdGl0bGV0ZXh0IikucmVtb3ZlKCk7dmFyIE89aS5lbnN1cmVTaW5nbGUoVCwicmVjdCIsInNjcm9sbGJhciIsKGZ1bmN0aW9uKHQpe3QuYXR0cihwLnNjcm9sbEJhckVudGVyQXR0cnMpLmNhbGwodS5maWxsLHAuc2Nyb2xsQmFyQ29sb3IpfSkpLHo9Qy5zZWxlY3RBbGwoImcuZ3JvdXBzIikuZGF0YShzKTt6LmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJncm91cHMiKSx6LmV4aXQoKS5yZW1vdmUoKTt2YXIgRD16LnNlbGVjdEFsbCgiZy50cmFjZXMiKS5kYXRhKGkuaWRlbnRpdHkpO0QuZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsInRyYWNlcyIpLEQuZXhpdCgpLnJlbW92ZSgpLEQuc3R5bGUoIm9wYWNpdHkiLChmdW5jdGlvbih0KXt2YXIgZT10WzBdLnRyYWNlO3JldHVybiBvLnRyYWNlSXMoZSwicGllLWxpa2UiKT8tMSE9PW0uaW5kZXhPZih0WzBdLmxhYmVsKT8uNToxOiJsZWdlbmRvbmx5Ij09PWUudmlzaWJsZT8uNToxfSkpLmVhY2goKGZ1bmN0aW9uKCl7bi5zZWxlY3QodGhpcykuY2FsbCh3LHQsZSl9KSkuY2FsbCh4LHQsZSkuZWFjaCgoZnVuY3Rpb24oKXtkfHxuLnNlbGVjdCh0aGlzKS5jYWxsKGssdCl9KSksaS5zeW5jT3JBc3luYyhbYS5wcmV2aW91c1Byb21pc2VzLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKHQsZSxyLGkpe3ZhciBhPXQuX2Z1bGxMYXlvdXQ7aXx8KGk9YS5sZWdlbmQpO3ZhciBvPWEuX3NpemUscz1iLmlzVmVydGljYWwoaSksbD1iLmlzR3JvdXBlZChpKSx1PWkuYm9yZGVyd2lkdGgsZj0yKnUsaD1wLml0ZW1HYXAsZD1pLml0ZW13aWR0aCsyKmgsbT0yKih1K2gpLGc9UyhpKSx2PWkueTwwfHwwPT09aS55JiYidG9wIj09PWcseT1pLnk+MXx8MT09PWkueSYmImJvdHRvbSI9PT1nLHg9aS50cmFjZWdyb3VwZ2FwO2kuX21heEhlaWdodD1NYXRoLm1heCh2fHx5P2EuaGVpZ2h0LzI6by5oLDMwKTt2YXIgXz0wO2kuX3dpZHRoPTAsaS5faGVpZ2h0PTA7dmFyIHc9ZnVuY3Rpb24odCl7dmFyIGU9MCxyPTAsbj10LnRpdGxlLnNpZGU7biYmKC0xIT09bi5pbmRleE9mKCJsZWZ0IikmJihlPXQuX3RpdGxlV2lkdGgpLC0xIT09bi5pbmRleE9mKCJ0b3AiKSYmKHI9dC5fdGl0bGVIZWlnaHQpKTtyZXR1cm5bZSxyXX0oaSk7aWYocylyLmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0uaGVpZ2h0O2Muc2V0VHJhbnNsYXRlKHRoaXMsdSt3WzBdLHUrd1sxXStpLl9oZWlnaHQrZS8yK2gpLGkuX2hlaWdodCs9ZSxpLl93aWR0aD1NYXRoLm1heChpLl93aWR0aCx0WzBdLndpZHRoKX0pKSxfPWQraS5fd2lkdGgsaS5fd2lkdGgrPWgrZCtmLGkuX2hlaWdodCs9bSxsJiYoZS5lYWNoKChmdW5jdGlvbih0LGUpe2Muc2V0VHJhbnNsYXRlKHRoaXMsMCxlKmkudHJhY2Vncm91cGdhcCl9KSksaS5faGVpZ2h0Kz0oaS5fbGdyb3Vwc0xlbmd0aC0xKSppLnRyYWNlZ3JvdXBnYXApO2Vsc2V7dmFyIFQ9TShpKSxrPWkueDwwfHwwPT09aS54JiYicmlnaHQiPT09VCxBPWkueD4xfHwxPT09aS54JiYibGVmdCI9PT1ULEU9eXx8dixMPWEud2lkdGgvMjtpLl9tYXhXaWR0aD1NYXRoLm1heChrP0UmJiJsZWZ0Ij09PVQ/by5sK28udzpMOkE/RSYmInJpZ2h0Ij09PVQ/by5yK28udzpMOm8udywyKmQpO3ZhciBDPTAsUD0wO3IuZWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9dFswXS53aWR0aCtkO0M9TWF0aC5tYXgoQyxlKSxQKz1lfSkpLF89bnVsbDt2YXIgST0wO2lmKGwpe3ZhciBPPTAsej0wLEQ9MDtlLmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQ9MCxlPTA7bi5zZWxlY3QodGhpcykuc2VsZWN0QWxsKCJnLnRyYWNlcyIpLmVhY2goKGZ1bmN0aW9uKHIpe3ZhciBuPXJbMF0ud2lkdGgsaT1yWzBdLmhlaWdodDtjLnNldFRyYW5zbGF0ZSh0aGlzLHdbMF0sd1sxXSt1K2graS8yK2UpLGUrPWksdD1NYXRoLm1heCh0LGQrbil9KSk7dmFyIHI9dCtoO3o+MCYmcit1K3o+aS5fbWF4V2lkdGg/KEk9TWF0aC5tYXgoSSx6KSx6PTAsRCs9Tyt4LE89ZSk6Tz1NYXRoLm1heChPLGUpLGMuc2V0VHJhbnNsYXRlKHRoaXMseixEKSx6Kz1yfSkpLGkuX3dpZHRoPU1hdGgubWF4KEkseikrdSxpLl9oZWlnaHQ9RCtPK219ZWxzZXt2YXIgUj1yLnNpemUoKSxGPVArZisoUi0xKSpoPGkuX21heFdpZHRoLEI9MCxOPTAsaj0wLFU9MDtyLmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0uaGVpZ2h0LHI9ZCt0WzBdLndpZHRoLG49KEY/cjpDKStoO24rdStOLWg+PWkuX21heFdpZHRoJiYoST1NYXRoLm1heChJLFUpLE49MCxqKz1CLGkuX2hlaWdodCs9QixCPTApLGMuc2V0VHJhbnNsYXRlKHRoaXMsd1swXSt1K04sd1sxXSt1K2orZS8yK2gpLFU9TityK2gsTis9bixCPU1hdGgubWF4KEIsZSl9KSksRj8oaS5fd2lkdGg9TitmLGkuX2hlaWdodD1CK20pOihpLl93aWR0aD1NYXRoLm1heChJLFUpK2YsaS5faGVpZ2h0Kz1CK20pfX1pLl93aWR0aD1NYXRoLmNlaWwoTWF0aC5tYXgoaS5fd2lkdGgrd1swXSxpLl90aXRsZVdpZHRoKzIqKHUrcC50aXRsZVBhZCkpKSxpLl9oZWlnaHQ9TWF0aC5jZWlsKE1hdGgubWF4KGkuX2hlaWdodCt3WzFdLGkuX3RpdGxlSGVpZ2h0KzIqKHUrcC5pdGVtR2FwKSkpLGkuX2VmZkhlaWdodD1NYXRoLm1pbihpLl9oZWlnaHQsaS5fbWF4SGVpZ2h0KTt2YXIgVj10Ll9jb250ZXh0LmVkaXRzLEg9Vi5sZWdlbmRUZXh0fHxWLmxlZ2VuZFBvc2l0aW9uO3IuZWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9bi5zZWxlY3QodGhpcykuc2VsZWN0KCIubGVnZW5kdG9nZ2xlIikscj10WzBdLmhlaWdodCxpPUg/ZDpffHxkK3RbMF0ud2lkdGg7c3x8KGkrPWgvMiksYy5zZXRSZWN0KGUsMCwtci8yLGkscil9KSl9KHQseixELGUpfSxmdW5jdGlvbigpe3ZhciBzLHUsbSx5LHg9Zi5fc2l6ZSxiPWUuYm9yZGVyd2lkdGg7aWYoIWQpe2lmKGZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQubGVnZW5kLHI9TShlKSxuPVMoZSk7cmV0dXJuIGEuYXV0b01hcmdpbih0LCJsZWdlbmQiLHt4OmUueCx5OmUueSxsOmUuX3dpZHRoKmdbcl0scjplLl93aWR0aCp2W3JdLGI6ZS5fZWZmSGVpZ2h0KnZbbl0sdDplLl9lZmZIZWlnaHQqZ1tuXX0pfSh0KSlyZXR1cm47dmFyIHc9eC5sK3gudyplLngtZ1tNKGUpXSplLl93aWR0aCxrPXgudCt4LmgqKDEtZS55KS1nW1MoZSldKmUuX2VmZkhlaWdodDtpZihmLm1hcmdpbi5hdXRvZXhwYW5kKXt2YXIgQT13LFA9azt3PWkuY29uc3RyYWluKHcsMCxmLndpZHRoLWUuX3dpZHRoKSxrPWkuY29uc3RyYWluKGssMCxmLmhlaWdodC1lLl9lZmZIZWlnaHQpLHchPT1BJiZpLmxvZygiQ29uc3RyYWluIGxlZ2VuZC54IHRvIG1ha2UgbGVnZW5kIGZpdCBpbnNpZGUgZ3JhcGgiKSxrIT09UCYmaS5sb2coIkNvbnN0cmFpbiBsZWdlbmQueSB0byBtYWtlIGxlZ2VuZCBmaXQgaW5zaWRlIGdyYXBoIil9Yy5zZXRUcmFuc2xhdGUoVCx3LGspfWlmKE8ub24oIi5kcmFnIixudWxsKSxULm9uKCJ3aGVlbCIsbnVsbCksZHx8ZS5faGVpZ2h0PD1lLl9tYXhIZWlnaHR8fHQuX2NvbnRleHQuc3RhdGljUGxvdCl7dmFyIEk9ZS5fZWZmSGVpZ2h0O2QmJihJPWUuX2hlaWdodCksTC5hdHRyKHt3aWR0aDplLl93aWR0aC1iLGhlaWdodDpJLWIseDpiLzIseTpiLzJ9KSxjLnNldFRyYW5zbGF0ZShDLDAsMCksRS5zZWxlY3QoInJlY3QiKS5hdHRyKHt3aWR0aDplLl93aWR0aC0yKmIsaGVpZ2h0OkktMipiLHg6Yix5OmJ9KSxjLnNldENsaXBVcmwoQyxoLHQpLGMuc2V0UmVjdChPLDAsMCwwLDApLGRlbGV0ZSBlLl9zY3JvbGxZfWVsc2V7dmFyIHosRCxSLEY9TWF0aC5tYXgocC5zY3JvbGxCYXJNaW5IZWlnaHQsZS5fZWZmSGVpZ2h0KmUuX2VmZkhlaWdodC9lLl9oZWlnaHQpLEI9ZS5fZWZmSGVpZ2h0LUYtMipwLnNjcm9sbEJhck1hcmdpbixOPWUuX2hlaWdodC1lLl9lZmZIZWlnaHQsaj1CL04sVT1NYXRoLm1pbihlLl9zY3JvbGxZfHwwLE4pO0wuYXR0cih7d2lkdGg6ZS5fd2lkdGgtMipiK3Auc2Nyb2xsQmFyV2lkdGgrcC5zY3JvbGxCYXJNYXJnaW4saGVpZ2h0OmUuX2VmZkhlaWdodC1iLHg6Yi8yLHk6Yi8yfSksRS5zZWxlY3QoInJlY3QiKS5hdHRyKHt3aWR0aDplLl93aWR0aC0yKmIrcC5zY3JvbGxCYXJXaWR0aCtwLnNjcm9sbEJhck1hcmdpbixoZWlnaHQ6ZS5fZWZmSGVpZ2h0LTIqYix4OmIseTpiK1V9KSxjLnNldENsaXBVcmwoQyxoLHQpLHEoVSxGLGopLFQub24oIndoZWVsIiwoZnVuY3Rpb24oKXtxKFU9aS5jb25zdHJhaW4oZS5fc2Nyb2xsWStuLmV2ZW50LmRlbHRhWS9CKk4sMCxOKSxGLGopLDAhPT1VJiZVIT09TiYmbi5ldmVudC5wcmV2ZW50RGVmYXVsdCgpfSkpO3ZhciBWPW4uYmVoYXZpb3IuZHJhZygpLm9uKCJkcmFnc3RhcnQiLChmdW5jdGlvbigpe3ZhciB0PW4uZXZlbnQuc291cmNlRXZlbnQ7ej0idG91Y2hzdGFydCI9PT10LnR5cGU/dC5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRZOnQuY2xpZW50WSxSPVV9KSkub24oImRyYWciLChmdW5jdGlvbigpe3ZhciB0PW4uZXZlbnQuc291cmNlRXZlbnQ7Mj09PXQuYnV0dG9uc3x8dC5jdHJsS2V5fHwoRD0idG91Y2htb3ZlIj09PXQudHlwZT90LmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFk6dC5jbGllbnRZLHEoVT1mdW5jdGlvbih0LGUscil7dmFyIG49KHItZSkvait0O3JldHVybiBpLmNvbnN0cmFpbihuLDAsTil9KFIseixEKSxGLGopKX0pKTtPLmNhbGwoVik7dmFyIEg9bi5iZWhhdmlvci5kcmFnKCkub24oImRyYWdzdGFydCIsKGZ1bmN0aW9uKCl7dmFyIHQ9bi5ldmVudC5zb3VyY2VFdmVudDsidG91Y2hzdGFydCI9PT10LnR5cGUmJih6PXQuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WSxSPVUpfSkpLm9uKCJkcmFnIiwoZnVuY3Rpb24oKXt2YXIgdD1uLmV2ZW50LnNvdXJjZUV2ZW50OyJ0b3VjaG1vdmUiPT09dC50eXBlJiYoRD10LmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFkscShVPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj0oZS1yKS9qK3Q7cmV0dXJuIGkuY29uc3RyYWluKG4sMCxOKX0oUix6LEQpLEYsaikpfSkpO0MuY2FsbChIKX1mdW5jdGlvbiBxKHIsbixpKXtlLl9zY3JvbGxZPXQuX2Z1bGxMYXlvdXQubGVnZW5kLl9zY3JvbGxZPXIsYy5zZXRUcmFuc2xhdGUoQywwLC1yKSxjLnNldFJlY3QoTyxlLl93aWR0aCxwLnNjcm9sbEJhck1hcmdpbityKmkscC5zY3JvbGxCYXJXaWR0aCxuKSxFLnNlbGVjdCgicmVjdCIpLmF0dHIoInkiLGIrcil9dC5fY29udGV4dC5lZGl0cy5sZWdlbmRQb3NpdGlvbiYmKFQuY2xhc3NlZCgiY3Vyc29yLW1vdmUiLCEwKSxsLmluaXQoe2VsZW1lbnQ6VC5ub2RlKCksZ2Q6dCxwcmVwRm46ZnVuY3Rpb24oKXt2YXIgdD1jLmdldFRyYW5zbGF0ZShUKTttPXQueCx5PXQueX0sbW92ZUZuOmZ1bmN0aW9uKHQscil7dmFyIG49bSt0LGk9eStyO2Muc2V0VHJhbnNsYXRlKFQsbixpKSxzPWwuYWxpZ24obiwwLHgubCx4LmwreC53LGUueGFuY2hvciksdT1sLmFsaWduKGksMCx4LnQreC5oLHgudCxlLnlhbmNob3IpfSxkb25lRm46ZnVuY3Rpb24oKXt2b2lkIDAhPT1zJiZ2b2lkIDAhPT11JiZvLmNhbGwoIl9ndWlSZWxheW91dCIsdCx7ImxlZ2VuZC54IjpzLCJsZWdlbmQueSI6dX0pfSxjbGlja0ZuOmZ1bmN0aW9uKGUsbil7dmFyIGk9ci5zZWxlY3RBbGwoImcudHJhY2VzIikuZmlsdGVyKChmdW5jdGlvbigpe3ZhciB0PXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuIG4uY2xpZW50WD49dC5sZWZ0JiZuLmNsaWVudFg8PXQucmlnaHQmJm4uY2xpZW50WT49dC50b3AmJm4uY2xpZW50WTw9dC5ib3R0b219KSk7aS5zaXplKCk+MCYmXyh0LFQsaSxlLG4pfX0pKX1dLHQpfSh0LGUpfX0seyIuLi8uLi9jb25zdGFudHMvYWxpZ25tZW50Ijo0ODMsIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9saWIvZXZlbnRzIjo1MDQsIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyI6NTQxLCIuLi8uLi9wbG90cy9wbG90cyI6NjI4LCIuLi8uLi9yZWdpc3RyeSI6NjQ3LCIuLi9jb2xvciI6MzY3LCIuLi9kcmFnZWxlbWVudCI6Mzg2LCIuLi9kcmF3aW5nIjozODksIi4vY29uc3RhbnRzIjo0MTgsIi4vZ2V0X2xlZ2VuZF9kYXRhIjo0MjEsIi4vaGFuZGxlX2NsaWNrIjo0MjIsIi4vaGVscGVycyI6NDIzLCIuL3N0eWxlIjo0MjUsIkBwbG90bHkvZDMiOjU4fV0sNDIxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3JlZ2lzdHJ5IiksaT10KCIuL2hlbHBlcnMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixhLG89ZS5faW5Ib3ZlcixzPWkuaXNHcm91cGVkKGUpLGw9aS5pc1JldmVyc2VkKGUpLGM9e30sdT1bXSxmPSExLGg9e30scD0wLGQ9MDtmdW5jdGlvbiBtKHQscil7aWYoIiIhPT10JiZpLmlzR3JvdXBlZChlKSktMT09PXUuaW5kZXhPZih0KT8odS5wdXNoKHQpLGY9ITAsY1t0XT1bcl0pOmNbdF0ucHVzaChyKTtlbHNle3ZhciBuPSJ+fmkiK3A7dS5wdXNoKG4pLGNbbl09W3JdLHArK319Zm9yKHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIGc9dFtyXSx2PWdbMF0seT12LnRyYWNlLHg9eS5sZWdlbmRncm91cDtpZihvfHx5LnZpc2libGUmJnkuc2hvd2xlZ2VuZClpZihuLnRyYWNlSXMoeSwicGllLWxpa2UiKSlmb3IoaFt4XXx8KGhbeF09e30pLGE9MDthPGcubGVuZ3RoO2ErKyl7dmFyIGI9Z1thXS5sYWJlbDtoW3hdW2JdfHwobSh4LHtsYWJlbDpiLGNvbG9yOmdbYV0uY29sb3IsaTpnW2FdLmksdHJhY2U6eSxwdHM6Z1thXS5wdHN9KSxoW3hdW2JdPSEwLGQ9TWF0aC5tYXgoZCwoYnx8IiIpLmxlbmd0aCkpfWVsc2UgbSh4LHYpLGQ9TWF0aC5tYXgoZCwoeS5uYW1lfHwiIikubGVuZ3RoKX1pZighdS5sZW5ndGgpcmV0dXJuW107dmFyIF89IWZ8fCFzLHc9W107Zm9yKHI9MDtyPHUubGVuZ3RoO3IrKyl7dmFyIFQ9Y1t1W3JdXTtfP3cucHVzaChUWzBdKTp3LnB1c2goVCl9Zm9yKF8mJih3PVt3XSkscj0wO3I8dy5sZW5ndGg7cisrKXt2YXIgaz0xLzA7Zm9yKGE9MDthPHdbcl0ubGVuZ3RoO2ErKyl7dmFyIEE9d1tyXVthXS50cmFjZS5sZWdlbmRyYW5rO2s+QSYmKGs9QSl9d1tyXVswXS5fZ3JvdXBNaW5SYW5rPWssd1tyXVswXS5fcHJlR3JvdXBTb3J0PXJ9dmFyIE09ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC50cmFjZS5sZWdlbmRyYW5rLWUudHJhY2UubGVnZW5kcmFua3x8dC5fcHJlU29ydC1lLl9wcmVTb3J0fTtmb3Iody5mb3JFYWNoKChmdW5jdGlvbih0LGUpe3RbMF0uX3ByZUdyb3VwU29ydD1lfSkpLHcuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXS5fZ3JvdXBNaW5SYW5rLWVbMF0uX2dyb3VwTWluUmFua3x8dFswXS5fcHJlR3JvdXBTb3J0LWVbMF0uX3ByZUdyb3VwU29ydH0pKSxyPTA7cjx3Lmxlbmd0aDtyKyspe3dbcl0uZm9yRWFjaCgoZnVuY3Rpb24odCxlKXt0Ll9wcmVTb3J0PWV9KSksd1tyXS5zb3J0KE0pO3ZhciBTPXdbcl1bMF0udHJhY2UsRT1udWxsO2ZvcihhPTA7YTx3W3JdLmxlbmd0aDthKyspe3ZhciBMPXdbcl1bYV0udHJhY2UubGVnZW5kZ3JvdXB0aXRsZTtpZihMJiZMLnRleHQpe0U9TCxvJiYoTC5mb250PWUuX2dyb3VwVGl0bGVGb250KTticmVha319aWYobCYmd1tyXS5yZXZlcnNlKCksRSl7dmFyIEM9ITE7Zm9yKGE9MDthPHdbcl0ubGVuZ3RoO2ErKylpZihuLnRyYWNlSXMod1tyXVthXS50cmFjZSwicGllLWxpa2UiKSl7Qz0hMDticmVha313W3JdLnVuc2hpZnQoe2k6LTEsZ3JvdXBUaXRsZTpFLG5vQ2xpY2s6Qyx0cmFjZTp7c2hvd2xlZ2VuZDpTLnNob3dsZWdlbmQsbGVnZW5kZ3JvdXA6Uy5sZWdlbmRncm91cCx2aXNpYmxlOiJ0b2dnbGVpdGVtIj09PWUuZ3JvdXBjbGlja3x8Uy52aXNpYmxlfX0pfWZvcihhPTA7YTx3W3JdLmxlbmd0aDthKyspd1tyXVthXT1bd1tyXVthXV19cmV0dXJuIGUuX2xncm91cHNMZW5ndGg9dy5sZW5ndGgsZS5fbWF4TmFtZUxlbmd0aD1kLHd9fSx7Ii4uLy4uL3JlZ2lzdHJ5Ijo2NDcsIi4vaGVscGVycyI6NDIzfV0sNDIyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vcmVnaXN0cnkiKSxhPSEwO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG89ZS5fZnVsbExheW91dDtpZighZS5fZHJhZ2dlZCYmIWUuX2VkaXRpbmcpe3ZhciBzLGw9by5sZWdlbmQuaXRlbWNsaWNrLGM9by5sZWdlbmQuaXRlbWRvdWJsZWNsaWNrLHU9by5sZWdlbmQuZ3JvdXBjbGljaztpZigxPT09ciYmInRvZ2dsZSI9PT1sJiYidG9nZ2xlb3RoZXJzIj09PWMmJmEmJmUuZGF0YSYmZS5fY29udGV4dC5zaG93VGlwcz8obi5ub3RpZmllcihuLl8oZSwiRG91YmxlLWNsaWNrIG9uIGxlZ2VuZCB0byBpc29sYXRlIG9uZSB0cmFjZSIpLCJsb25nIiksYT0hMSk6YT0hMSwxPT09cj9zPWw6Mj09PXImJihzPWMpLHMpe3ZhciBmPSJ0b2dnbGVncm91cCI9PT11LGg9by5oaWRkZW5sYWJlbHM/by5oaWRkZW5sYWJlbHMuc2xpY2UoKTpbXSxwPXQuZGF0YSgpWzBdWzBdO2lmKCFwLmdyb3VwVGl0bGV8fCFwLm5vQ2xpY2spe3ZhciBkLG0sZyx2LHkseD1lLl9mdWxsRGF0YSxiPXAudHJhY2UsXz1iLmxlZ2VuZGdyb3VwLHc9e30sVD1bXSxrPVtdLEE9W107aWYoaS50cmFjZUlzKGIsInBpZS1saWtlIikpe3ZhciBNPXAubGFiZWwsUz1oLmluZGV4T2YoTSk7InRvZ2dsZSI9PT1zPy0xPT09Uz9oLnB1c2goTSk6aC5zcGxpY2UoUywxKToidG9nZ2xlb3RoZXJzIj09PXMmJihoPVtdLGUuY2FsY2RhdGFbMF0uZm9yRWFjaCgoZnVuY3Rpb24odCl7TSE9PXQubGFiZWwmJmgucHVzaCh0LmxhYmVsKX0pKSxlLl9mdWxsTGF5b3V0LmhpZGRlbmxhYmVscyYmZS5fZnVsbExheW91dC5oaWRkZW5sYWJlbHMubGVuZ3RoPT09aC5sZW5ndGgmJi0xPT09UyYmKGg9W10pKSxpLmNhbGwoIl9ndWlSZWxheW91dCIsZSwiaGlkZGVubGFiZWxzIixoKX1lbHNle3ZhciBFLEw9XyYmXy5sZW5ndGgsQz1bXTtpZihMKWZvcihkPTA7ZDx4Lmxlbmd0aDtkKyspKEU9eFtkXSkudmlzaWJsZSYmRS5sZWdlbmRncm91cD09PV8mJkMucHVzaChkKTtpZigidG9nZ2xlIj09PXMpe3ZhciBQO3N3aXRjaChiLnZpc2libGUpe2Nhc2UhMDpQPSJsZWdlbmRvbmx5IjticmVhaztjYXNlITE6UD0hMTticmVhaztjYXNlImxlZ2VuZG9ubHkiOlA9ITB9aWYoTClpZihmKWZvcihkPTA7ZDx4Lmxlbmd0aDtkKyspITEhPT14W2RdLnZpc2libGUmJnhbZF0ubGVnZW5kZ3JvdXA9PT1fJiZqKHhbZF0sUCk7ZWxzZSBqKGIsUCk7ZWxzZSBqKGIsUCl9ZWxzZSBpZigidG9nZ2xlb3RoZXJzIj09PXMpe3ZhciBJLE8seixELFI9ITA7Zm9yKGQ9MDtkPHgubGVuZ3RoO2QrKylpZihJPXhbZF09PT1iLHo9ITAhPT14W2RdLnNob3dsZWdlbmQsIShJfHx6fHwoTz1MJiZ4W2RdLmxlZ2VuZGdyb3VwPT09Xyl8fCEwIT09eFtkXS52aXNpYmxlfHxpLnRyYWNlSXMoeFtkXSwibm90TGVnZW5kSXNvbGF0YWJsZSIpKSl7Uj0hMTticmVha31mb3IoZD0wO2Q8eC5sZW5ndGg7ZCsrKWlmKCExIT09eFtkXS52aXNpYmxlJiYhaS50cmFjZUlzKHhbZF0sIm5vdExlZ2VuZElzb2xhdGFibGUiKSlzd2l0Y2goYi52aXNpYmxlKXtjYXNlImxlZ2VuZG9ubHkiOmooeFtkXSwhMCk7YnJlYWs7Y2FzZSEwOkQ9ISFSfHwibGVnZW5kb25seSIsST14W2RdPT09Yix6PSEwIT09eFtkXS5zaG93bGVnZW5kJiYheFtkXS5sZWdlbmRncm91cCxPPUl8fEwmJnhbZF0ubGVnZW5kZ3JvdXA9PT1fLGooeFtkXSwhKCFPJiYheil8fEQpfX1mb3IoZD0wO2Q8ay5sZW5ndGg7ZCsrKWlmKGc9a1tkXSl7dmFyIEY9Zy5jb25zdHJ1Y3RVcGRhdGUoKSxCPU9iamVjdC5rZXlzKEYpO2ZvcihtPTA7bTxCLmxlbmd0aDttKyspdj1CW21dLCh3W3ZdPXdbdl18fFtdKVtBW2RdXT1GW3ZdfWZvcih5PU9iamVjdC5rZXlzKHcpLGQ9MDtkPHkubGVuZ3RoO2QrKylmb3Iodj15W2RdLG09MDttPFQubGVuZ3RoO20rKyl3W3ZdLmhhc093blByb3BlcnR5KG0pfHwod1t2XVttXT12b2lkIDApO2kuY2FsbCgiX2d1aVJlc3R5bGUiLGUsdyxUKX19fX1mdW5jdGlvbiBOKHQsZSxyKXt2YXIgbj1ULmluZGV4T2YodCksaT13W2VdO3JldHVybiBpfHwoaT13W2VdPVtdKSwtMT09PVQuaW5kZXhPZih0KSYmKFQucHVzaCh0KSxuPVQubGVuZ3RoLTEpLGlbbl09cixufWZ1bmN0aW9uIGoodCxlKXtpZighcC5ncm91cFRpdGxlfHxmKXt2YXIgcj10Ll9mdWxsSW5wdXQ7aWYoaS5oYXNUcmFuc2Zvcm0ociwiZ3JvdXBieSIpKXt2YXIgYT1rW3IuaW5kZXhdO2lmKCFhKXt2YXIgbz1pLmdldFRyYW5zZm9ybUluZGljZXMociwiZ3JvdXBieSIpLHM9b1tvLmxlbmd0aC0xXTthPW4ua2V5ZWRDb250YWluZXIociwidHJhbnNmb3Jtc1siK3MrIl0uc3R5bGVzIiwidGFyZ2V0IiwidmFsdWUudmlzaWJsZSIpLGtbci5pbmRleF09YX12YXIgbD1hLmdldCh0Ll9ncm91cCk7dm9pZCAwPT09bCYmKGw9ITApLCExIT09bCYmYS5zZXQodC5fZ3JvdXAsZSksQVtyLmluZGV4XT1OKHIuaW5kZXgsInZpc2libGUiLCExIT09ci52aXNpYmxlKX1lbHNle3ZhciBjPSExIT09ci52aXNpYmxlJiZlO04oci5pbmRleCwidmlzaWJsZSIsYyl9fX19fSx7Ii4uLy4uL2xpYiI6NTE1LCIuLi8uLi9yZWdpc3RyeSI6NjQ3fV0sNDIzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3IuaXNHcm91cGVkPWZ1bmN0aW9uKHQpe3JldHVybi0xIT09KHQudHJhY2VvcmRlcnx8IiIpLmluZGV4T2YoImdyb3VwZWQiKX0sci5pc1ZlcnRpY2FsPWZ1bmN0aW9uKHQpe3JldHVybiJoIiE9PXQub3JpZW50YXRpb259LHIuaXNSZXZlcnNlZD1mdW5jdGlvbih0KXtyZXR1cm4tMSE9PSh0LnRyYWNlb3JkZXJ8fCIiKS5pbmRleE9mKCJyZXZlcnNlZCIpfX0se31dLDQyNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e21vZHVsZVR5cGU6ImNvbXBvbmVudCIsbmFtZToibGVnZW5kIixsYXlvdXRBdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseUxheW91dERlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxkcmF3OnQoIi4vZHJhdyIpLHN0eWxlOnQoIi4vc3R5bGUiKX19LHsiLi9hdHRyaWJ1dGVzIjo0MTcsIi4vZGVmYXVsdHMiOjQxOSwiLi9kcmF3Ijo0MjAsIi4vc3R5bGUiOjQyNX1dLDQyNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9yZWdpc3RyeSIpLGE9dCgiLi4vLi4vbGliIiksbz1hLnN0clRyYW5zbGF0ZSxzPXQoIi4uL2RyYXdpbmciKSxsPXQoIi4uL2NvbG9yIiksYz10KCIuLi9jb2xvcnNjYWxlL2hlbHBlcnMiKS5leHRyYWN0T3B0cyx1PXQoIi4uLy4uL3RyYWNlcy9zY2F0dGVyL3N1YnR5cGVzIiksZj10KCIuLi8uLi90cmFjZXMvcGllL3N0eWxlX29uZSIpLGg9dCgiLi4vLi4vdHJhY2VzL3BpZS9oZWxwZXJzIikuY2FzdE9wdGlvbixwPXQoIi4vY29uc3RhbnRzIik7ZnVuY3Rpb24gZCh0LGUpe3JldHVybihlPyJyYWRpYWwiOiJob3Jpem9udGFsIikrKHQ/IiI6InJldmVyc2VkIil9ZnVuY3Rpb24gbSh0KXt2YXIgZT10WzBdLnRyYWNlLHI9ZS5jb250b3VycyxuPXUuaGFzTGluZXMoZSksaT11Lmhhc01hcmtlcnMoZSksYT1lLnZpc2libGUmJmUuZmlsbCYmIm5vbmUiIT09ZS5maWxsLG89ITEscz0hMTtpZihyKXt2YXIgbD1yLmNvbG9yaW5nOyJsaW5lcyI9PT1sP289ITA6bj0ibm9uZSI9PT1sfHwiaGVhdG1hcCI9PT1sfHxyLnNob3dsaW5lcywiY29uc3RyYWludCI9PT1yLnR5cGU/YT0iPSIhPT1yLl9vcGVyYXRpb246ImZpbGwiIT09bCYmImhlYXRtYXAiIT09bHx8KHM9ITApfXJldHVybntzaG93TWFya2VyOmksc2hvd0xpbmU6bixzaG93RmlsbDphLHNob3dHcmFkaWVudExpbmU6byxzaG93R3JhZGllbnRGaWxsOnMsYW55TGluZTpufHxvLGFueUZpbGw6YXx8c319ZnVuY3Rpb24gZyh0LGUscil7cmV0dXJuIHQmJmEuaXNBcnJheU9yVHlwZWRBcnJheSh0KT9lOnQ+cj9yOnR9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgdj1lLl9mdWxsTGF5b3V0O3J8fChyPXYubGVnZW5kKTt2YXIgeT0iY29uc3RhbnQiPT09ci5pdGVtc2l6aW5nLHg9ci5pdGVtd2lkdGgsYj0oeCsyKnAuaXRlbUdhcCkvMixfPW8oYiwwKSx3PWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpO2lmKHQrMSlpPXQ7ZWxzZXtpZighKGUmJmUud2lkdGg+MCkpcmV0dXJuIDA7aT1lLndpZHRofXJldHVybiB5P246TWF0aC5taW4oaSxyKX07ZnVuY3Rpb24gVCh0LGEsbyl7dmFyIHU9dFswXS50cmFjZSxmPXUubWFya2VyfHx7fSxoPWYubGluZXx8e30scD1vP3UudmlzaWJsZSYmdS50eXBlPT09bzppLnRyYWNlSXModSwiYmFyIiksZD1uLnNlbGVjdChhKS5zZWxlY3QoImcubGVnZW5kcG9pbnRzIikuc2VsZWN0QWxsKCJwYXRoLmxlZ2VuZCIrbykuZGF0YShwP1t0XTpbXSk7ZC5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmNsYXNzZWQoImxlZ2VuZCIrbywhMCkuYXR0cigiZCIsIk02LDZILTZWLTZINloiKS5hdHRyKCJ0cmFuc2Zvcm0iLF8pLGQuZXhpdCgpLnJlbW92ZSgpLGQuZWFjaCgoZnVuY3Rpb24odCl7dmFyIGk9bi5zZWxlY3QodGhpcyksYT10WzBdLG89dyhhLm1sdyxmLmxpbmUsNSwyKTtpLnN0eWxlKCJzdHJva2Utd2lkdGgiLG8rInB4Iik7dmFyIHA9YS5tY2M7aWYoIXIuX2luSG92ZXImJiJtYyJpbiBhKXt2YXIgZD1jKGYpLG09ZC5taWQ7dm9pZCAwPT09bSYmKG09KGQubWF4K2QubWluKS8yKSxwPXMudHJ5Q29sb3JzY2FsZShmLCIiKShtKX12YXIgdj1wfHxhLm1jfHxmLmNvbG9yLHk9Zi5wYXR0ZXJuLHg9eSYmcy5nZXRQYXR0ZXJuQXR0cih5LnNoYXBlLDAsIiIpO2lmKHgpe3ZhciBiPXMuZ2V0UGF0dGVybkF0dHIoeS5iZ2NvbG9yLDAsbnVsbCksXz1zLmdldFBhdHRlcm5BdHRyKHkuZmdjb2xvciwwLG51bGwpLFQ9eS5mZ29wYWNpdHksaz1nKHkuc2l6ZSw4LDEwKSxBPWcoeS5zb2xpZGl0eSwuNSwxKSxNPSJsZWdlbmQtIit1LnVpZDtpLmNhbGwocy5wYXR0ZXJuLCJsZWdlbmQiLGUsTSx4LGssQSxwLHkuZmlsbG1vZGUsYixfLFQpfWVsc2UgaS5jYWxsKGwuZmlsbCx2KTtvJiZsLnN0cm9rZShpLGEubWxjfHxoLmNvbG9yKX0pKX1mdW5jdGlvbiBrKHQsZSxyKXt2YXIgbz10WzBdLHM9by50cmFjZSxsPXI/cy52aXNpYmxlJiZzLnR5cGU9PT1yOmkudHJhY2VJcyhzLHIpLGM9bi5zZWxlY3QoZSkuc2VsZWN0KCJnLmxlZ2VuZHBvaW50cyIpLnNlbGVjdEFsbCgicGF0aC5sZWdlbmQiK3IpLmRhdGEobD9bdF06W10pO2lmKGMuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKCJsZWdlbmQiK3IsITApLmF0dHIoImQiLCJNNiw2SC02Vi02SDZaIikuYXR0cigidHJhbnNmb3JtIixfKSxjLmV4aXQoKS5yZW1vdmUoKSxjLnNpemUoKSl7dmFyIHU9KHMubWFya2VyfHx7fSkubGluZSxwPXcoaCh1LndpZHRoLG8ucHRzKSx1LDUsMiksZD1hLm1pbkV4dGVuZChzLHttYXJrZXI6e2xpbmU6e3dpZHRoOnB9fX0pO2QubWFya2VyLmxpbmUuY29sb3I9dS5jb2xvcjt2YXIgbT1hLm1pbkV4dGVuZChvLHt0cmFjZTpkfSk7ZihjLG0sZCl9fXQuZWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9bi5zZWxlY3QodGhpcyksaT1hLmVuc3VyZVNpbmdsZShlLCJnIiwibGF5ZXJzIik7aS5zdHlsZSgib3BhY2l0eSIsdFswXS50cmFjZS5vcGFjaXR5KTt2YXIgcz1yLnZhbGlnbixsPXRbMF0ubGluZUhlaWdodCxjPXRbMF0uaGVpZ2h0O2lmKCJtaWRkbGUiIT09cyYmbCYmYyl7dmFyIHU9e3RvcDoxLGJvdHRvbTotMX1bc10qKC41KihsLWMrMykpO2kuYXR0cigidHJhbnNmb3JtIixvKDAsdSkpfWVsc2UgaS5hdHRyKCJ0cmFuc2Zvcm0iLG51bGwpO2kuc2VsZWN0QWxsKCJnLmxlZ2VuZGZpbGwiKS5kYXRhKFt0XSkuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJsZWdlbmRmaWxsIiwhMCksaS5zZWxlY3RBbGwoImcubGVnZW5kbGluZXMiKS5kYXRhKFt0XSkuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJsZWdlbmRsaW5lcyIsITApO3ZhciBmPWkuc2VsZWN0QWxsKCJnLmxlZ2VuZHN5bWJvbHMiKS5kYXRhKFt0XSk7Zi5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoImxlZ2VuZHN5bWJvbHMiLCEwKSxmLnNlbGVjdEFsbCgiZy5sZWdlbmRwb2ludHMiKS5kYXRhKFt0XSkuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJsZWdlbmRwb2ludHMiLCEwKX0pKS5lYWNoKChmdW5jdGlvbih0KXt2YXIgcixpPXRbMF0udHJhY2Usbz1bXTtpZihpLnZpc2libGUpc3dpdGNoKGkudHlwZSl7Y2FzZSJoaXN0b2dyYW0yZCI6Y2FzZSJoZWF0bWFwIjpvPVtbIk0tMTUsLTJWNEgxNVYtMloiXV0scj0hMDticmVhaztjYXNlImNob3JvcGxldGgiOmNhc2UiY2hvcm9wbGV0aG1hcGJveCI6bz1bWyJNLTYsLTZWNkg2Vi02WiJdXSxyPSEwO2JyZWFrO2Nhc2UiZGVuc2l0eW1hcGJveCI6bz1bWyJNLTYsMCBhNiw2IDAgMSwwIDEyLDAgYSA2LDYgMCAxLDAgLTEyLDAiXV0scj0icmFkaWFsIjticmVhaztjYXNlImNvbmUiOm89W1siTS02LDIgQTIsMiAwIDAsMCAtNiw2IFY2TDYsNFoiXSxbIk0tNiwtNiBBMiwyIDAgMCwwIC02LC0yIEw2LC00WiJdLFsiTS02LC0yIEEyLDIgMCAwLDAgLTYsMiBMNiwwWiJdXSxyPSExO2JyZWFrO2Nhc2Uic3RyZWFtdHViZSI6bz1bWyJNLTYsMiBBMiwyIDAgMCwwIC02LDYgSDYgQTIsMiAwIDAsMSA2LDIgWiJdLFsiTS02LC02IEEyLDIgMCAwLDAgLTYsLTIgSDYgQTIsMiAwIDAsMSA2LC02IFoiXSxbIk0tNiwtMiBBMiwyIDAgMCwwIC02LDIgSDYgQTIsMiAwIDAsMSA2LC0yIFoiXV0scj0hMTticmVhaztjYXNlInN1cmZhY2UiOm89W1siTS02LC02IEEyLDMgMCAwLDAgLTYsMCBINiBBMiwzIDAgMCwxIDYsLTYgWiJdLFsiTS02LDEgQTIsMyAwIDAsMSAtNiw2IEg2IEEyLDMgMCAwLDAgNiwwIFoiXV0scj0hMDticmVhaztjYXNlIm1lc2gzZCI6bz1bWyJNLTYsNkgwTC02LC02WiJdLFsiTTYsNkgwTDYsLTZaIl0sWyJNLTYsLTZINkwwLDZaIl1dLHI9ITE7YnJlYWs7Y2FzZSJ2b2x1bWUiOm89W1siTS02LDZIMEwtNiwtNloiXSxbIk02LDZIMEw2LC02WiJdLFsiTS02LC02SDZMMCw2WiJdXSxyPSEwO2JyZWFrO2Nhc2UiaXNvc3VyZmFjZSI6bz1bWyJNLTYsNkgwTC02LC02WiJdLFsiTTYsNkgwTDYsLTZaIl0sWyJNLTYsLTYgQTEyLDI0IDAgMCwwIDYsLTYgTDAsNloiXV0scj0hMX12YXIgdT1uLnNlbGVjdCh0aGlzKS5zZWxlY3QoImcubGVnZW5kcG9pbnRzIikuc2VsZWN0QWxsKCJwYXRoLmxlZ2VuZDNkYW5kZnJpZW5kcyIpLmRhdGEobyk7dS5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmNsYXNzZWQoImxlZ2VuZDNkYW5kZnJpZW5kcyIsITApLmF0dHIoInRyYW5zZm9ybSIsXykuc3R5bGUoInN0cm9rZS1taXRlcmxpbWl0IiwxKSx1LmV4aXQoKS5yZW1vdmUoKSx1LmVhY2goKGZ1bmN0aW9uKHQsbyl7dmFyIHUsZj1uLnNlbGVjdCh0aGlzKSxoPWMoaSkscD1oLmNvbG9yc2NhbGUsbT1oLnJldmVyc2VzY2FsZTtpZihwKXtpZighcil7dmFyIGc9cC5sZW5ndGg7dT0wPT09bz9wW20/Zy0xOjBdWzFdOjE9PT1vP3BbbT8wOmctMV1bMV06cFtNYXRoLmZsb29yKChnLTEpLzIpXVsxXX19ZWxzZXt2YXIgdj1pLnZlcnRleGNvbG9yfHxpLmZhY2Vjb2xvcnx8aS5jb2xvcjt1PWEuaXNBcnJheU9yVHlwZWRBcnJheSh2KT92W29dfHx2WzBdOnZ9Zi5hdHRyKCJkIix0WzBdKSx1P2YuY2FsbChsLmZpbGwsdSk6Zi5jYWxsKChmdW5jdGlvbih0KXtpZih0LnNpemUoKSl7dmFyIG49ImxlZ2VuZGZpbGwtIitpLnVpZDtzLmdyYWRpZW50KHQsZSxuLGQobSwicmFkaWFsIj09PXIpLHAsImZpbGwiKX19KSl9KSl9KSkuZWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9dFswXS50cmFjZSxyPSJ3YXRlcmZhbGwiPT09ZS50eXBlO2lmKHRbMF0uX2Rpc3RpbmN0JiZyKXt2YXIgaT10WzBdLnRyYWNlW3RbMF0uZGlyXS5tYXJrZXI7cmV0dXJuIHRbMF0ubWM9aS5jb2xvcix0WzBdLm1sdz1pLmxpbmUud2lkdGgsdFswXS5tbGM9aS5saW5lLmNvbG9yLFQodCx0aGlzLCJ3YXRlcmZhbGwiKX12YXIgYT1bXTtlLnZpc2libGUmJnImJihhPXRbMF0uaGFzVG90YWxzP1tbImluY3JlYXNpbmciLCJNLTYsLTZWNkgwWiJdLFsidG90YWxzIiwiTTYsNkgwTC02LC02SC0wWiJdLFsiZGVjcmVhc2luZyIsIk02LDZWLTZIMFoiXV06W1siaW5jcmVhc2luZyIsIk0tNiwtNlY2SDZaIl0sWyJkZWNyZWFzaW5nIiwiTTYsNlYtNkgtNloiXV0pO3ZhciBvPW4uc2VsZWN0KHRoaXMpLnNlbGVjdCgiZy5sZWdlbmRwb2ludHMiKS5zZWxlY3RBbGwoInBhdGgubGVnZW5kd2F0ZXJmYWxsIikuZGF0YShhKTtvLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuY2xhc3NlZCgibGVnZW5kd2F0ZXJmYWxsIiwhMCkuYXR0cigidHJhbnNmb3JtIixfKS5zdHlsZSgic3Ryb2tlLW1pdGVybGltaXQiLDEpLG8uZXhpdCgpLnJlbW92ZSgpLG8uZWFjaCgoZnVuY3Rpb24odCl7dmFyIHI9bi5zZWxlY3QodGhpcyksaT1lW3RbMF1dLm1hcmtlcixhPXcodm9pZCAwLGkubGluZSw1LDIpO3IuYXR0cigiZCIsdFsxXSkuc3R5bGUoInN0cm9rZS13aWR0aCIsYSsicHgiKS5jYWxsKGwuZmlsbCxpLmNvbG9yKSxhJiZyLmNhbGwobC5zdHJva2UsaS5saW5lLmNvbG9yKX0pKX0pKS5lYWNoKChmdW5jdGlvbih0KXtUKHQsdGhpcywiZnVubmVsIil9KSkuZWFjaCgoZnVuY3Rpb24odCl7VCh0LHRoaXMpfSkpLmVhY2goKGZ1bmN0aW9uKHQpe3ZhciByPXRbMF0udHJhY2Usbz1uLnNlbGVjdCh0aGlzKS5zZWxlY3QoImcubGVnZW5kcG9pbnRzIikuc2VsZWN0QWxsKCJwYXRoLmxlZ2VuZGJveCIpLmRhdGEoci52aXNpYmxlJiZpLnRyYWNlSXMociwiYm94LXZpb2xpbiIpP1t0XTpbXSk7by5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmNsYXNzZWQoImxlZ2VuZGJveCIsITApLmF0dHIoImQiLCJNNiw2SC02Vi02SDZaIikuYXR0cigidHJhbnNmb3JtIixfKSxvLmV4aXQoKS5yZW1vdmUoKSxvLmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQ9bi5zZWxlY3QodGhpcyk7aWYoImFsbCIhPT1yLmJveHBvaW50cyYmImFsbCIhPT1yLnBvaW50c3x8MCE9PWwub3BhY2l0eShyLmZpbGxjb2xvcil8fDAhPT1sLm9wYWNpdHkoKHIubGluZXx8e30pLmNvbG9yKSl7dmFyIGk9dyh2b2lkIDAsci5saW5lLDUsMik7dC5zdHlsZSgic3Ryb2tlLXdpZHRoIixpKyJweCIpLmNhbGwobC5maWxsLHIuZmlsbGNvbG9yKSxpJiZsLnN0cm9rZSh0LHIubGluZS5jb2xvcil9ZWxzZXt2YXIgYz1hLm1pbkV4dGVuZChyLHttYXJrZXI6e3NpemU6eT8xMjphLmNvbnN0cmFpbihyLm1hcmtlci5zaXplLDIsMTYpLHNpemVyZWY6MSxzaXplbWluOjEsc2l6ZW1vZGU6ImRpYW1ldGVyIn19KTtvLmNhbGwocy5wb2ludFN0eWxlLGMsZSl9fSkpfSkpLmVhY2goKGZ1bmN0aW9uKHQpe2sodCx0aGlzLCJmdW5uZWxhcmVhIil9KSkuZWFjaCgoZnVuY3Rpb24odCl7ayh0LHRoaXMsInBpZSIpfSkpLmVhY2goKGZ1bmN0aW9uKHQpe3ZhciByLGksbz1tKHQpLGw9by5zaG93RmlsbCxmPW8uc2hvd0xpbmUsaD1vLnNob3dHcmFkaWVudExpbmUscD1vLnNob3dHcmFkaWVudEZpbGwsZz1vLmFueUZpbGwsdj1vLmFueUxpbmUseT10WzBdLGI9eS50cmFjZSxfPWMoYiksVD1fLmNvbG9yc2NhbGUsaz1fLnJldmVyc2VzY2FsZSxBPXUuaGFzTWFya2VycyhiKXx8IWc/Ik01LDAiOnY/Ik01LC0yIjoiTTUsLTMiLE09bi5zZWxlY3QodGhpcyksUz1NLnNlbGVjdCgiLmxlZ2VuZGZpbGwiKS5zZWxlY3RBbGwoInBhdGgiKS5kYXRhKGx8fHA/W3RdOltdKTtpZihTLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuY2xhc3NlZCgianMtZmlsbCIsITApLFMuZXhpdCgpLnJlbW92ZSgpLFMuYXR0cigiZCIsQSsiaCIreCsidjZoLSIreCsieiIpLmNhbGwoKGZ1bmN0aW9uKHQpe2lmKHQuc2l6ZSgpKWlmKGwpcy5maWxsR3JvdXBTdHlsZSh0LGUpO2Vsc2V7dmFyIHI9ImxlZ2VuZGZpbGwtIitiLnVpZDtzLmdyYWRpZW50KHQsZSxyLGQoayksVCwiZmlsbCIpfX0pKSxmfHxoKXt2YXIgRT13KHZvaWQgMCxiLmxpbmUsMTAsNSk7aT1hLm1pbkV4dGVuZChiLHtsaW5lOnt3aWR0aDpFfX0pLHI9W2EubWluRXh0ZW5kKHkse3RyYWNlOml9KV19dmFyIEw9TS5zZWxlY3QoIi5sZWdlbmRsaW5lcyIpLnNlbGVjdEFsbCgicGF0aCIpLmRhdGEoZnx8aD9bcl06W10pO0wuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKCJqcy1saW5lIiwhMCksTC5leGl0KCkucmVtb3ZlKCksTC5hdHRyKCJkIixBKyhoPyJsIit4KyIsMC4wMDAxIjoiaCIreCkpLmNhbGwoZj9zLmxpbmVHcm91cFN0eWxlOmZ1bmN0aW9uKHQpe2lmKHQuc2l6ZSgpKXt2YXIgcj0ibGVnZW5kbGluZS0iK2IudWlkO3MubGluZUdyb3VwU3R5bGUodCkscy5ncmFkaWVudCh0LGUscixkKGspLFQsInN0cm9rZSIpfX0pfSkpLmVhY2goKGZ1bmN0aW9uKHQpe3ZhciByLGksbz1tKHQpLGw9by5hbnlGaWxsLGM9by5hbnlMaW5lLGY9by5zaG93TGluZSxoPW8uc2hvd01hcmtlcixwPXRbMF0sZD1wLnRyYWNlLGc9IWgmJiFjJiYhbCYmdS5oYXNUZXh0KGQpO2Z1bmN0aW9uIHYodCxlLHIsbil7dmFyIGk9YS5uZXN0ZWRQcm9wZXJ0eShkLHQpLmdldCgpLG89YS5pc0FycmF5T3JUeXBlZEFycmF5KGkpJiZlP2UoaSk6aTtpZih5JiZvJiZ2b2lkIDAhPT1uJiYobz1uKSxyKXtpZihvPHJbMF0pcmV0dXJuIHJbMF07aWYobz5yWzFdKXJldHVybiByWzFdfXJldHVybiBvfWZ1bmN0aW9uIHgodCl7cmV0dXJuIHAuX2Rpc3RpbmN0JiZwLmluZGV4JiZ0W3AuaW5kZXhdP3RbcC5pbmRleF06dFswXX1pZihofHxnfHxmKXt2YXIgYj17fSx3PXt9O2lmKGgpe2IubWM9digibWFya2VyLmNvbG9yIix4KSxiLm14PXYoIm1hcmtlci5zeW1ib2wiLHgpLGIubW89digibWFya2VyLm9wYWNpdHkiLGEubWVhbixbLjIsMV0pLGIubWxjPXYoIm1hcmtlci5saW5lLmNvbG9yIix4KSxiLm1sdz12KCJtYXJrZXIubGluZS53aWR0aCIsYS5tZWFuLFswLDVdLDIpLHcubWFya2VyPXtzaXplcmVmOjEsc2l6ZW1pbjoxLHNpemVtb2RlOiJkaWFtZXRlciJ9O3ZhciBUPXYoIm1hcmtlci5zaXplIixhLm1lYW4sWzIsMTZdLDEyKTtiLm1zPVQsdy5tYXJrZXIuc2l6ZT1UfWYmJih3LmxpbmU9e3dpZHRoOnYoImxpbmUud2lkdGgiLHgsWzAsMTBdLDUpfSksZyYmKGIudHg9IkFhIixiLnRwPXYoInRleHRwb3NpdGlvbiIseCksYi50cz0xMCxiLnRjPXYoInRleHRmb250LmNvbG9yIix4KSxiLnRmPXYoInRleHRmb250LmZhbWlseSIseCkpLHI9W2EubWluRXh0ZW5kKHAsYildLChpPWEubWluRXh0ZW5kKGQsdykpLnNlbGVjdGVkcG9pbnRzPW51bGwsaS50ZXh0dGVtcGxhdGU9bnVsbH12YXIgaz1uLnNlbGVjdCh0aGlzKS5zZWxlY3QoImcubGVnZW5kcG9pbnRzIiksQT1rLnNlbGVjdEFsbCgicGF0aC5zY2F0dGVycHRzIikuZGF0YShoP3I6W10pO0EuZW50ZXIoKS5pbnNlcnQoInBhdGgiLCI6Zmlyc3QtY2hpbGQiKS5jbGFzc2VkKCJzY2F0dGVycHRzIiwhMCkuYXR0cigidHJhbnNmb3JtIixfKSxBLmV4aXQoKS5yZW1vdmUoKSxBLmNhbGwocy5wb2ludFN0eWxlLGksZSksaCYmKHJbMF0ubXJjPTMpO3ZhciBNPWsuc2VsZWN0QWxsKCJnLnBvaW50dGV4dCIpLmRhdGEoZz9yOltdKTtNLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgicG9pbnR0ZXh0IiwhMCkuYXBwZW5kKCJ0ZXh0IikuYXR0cigidHJhbnNmb3JtIixfKSxNLmV4aXQoKS5yZW1vdmUoKSxNLnNlbGVjdEFsbCgidGV4dCIpLmNhbGwocy50ZXh0UG9pbnRTdHlsZSxpLGUpfSkpLmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0udHJhY2Uscj1uLnNlbGVjdCh0aGlzKS5zZWxlY3QoImcubGVnZW5kcG9pbnRzIikuc2VsZWN0QWxsKCJwYXRoLmxlZ2VuZGNhbmRsZSIpLmRhdGEoZS52aXNpYmxlJiYiY2FuZGxlc3RpY2siPT09ZS50eXBlP1t0LHRdOltdKTtyLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuY2xhc3NlZCgibGVnZW5kY2FuZGxlIiwhMCkuYXR0cigiZCIsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU/Ik0tMTUsMEgtOE0tOCw2Vi02SDhaIjoiTTE1LDBIOE04LC02VjZILThaIn0pKS5hdHRyKCJ0cmFuc2Zvcm0iLF8pLnN0eWxlKCJzdHJva2UtbWl0ZXJsaW1pdCIsMSksci5leGl0KCkucmVtb3ZlKCksci5lYWNoKChmdW5jdGlvbih0LHIpe3ZhciBpPW4uc2VsZWN0KHRoaXMpLGE9ZVtyPyJpbmNyZWFzaW5nIjoiZGVjcmVhc2luZyJdLG89dyh2b2lkIDAsYS5saW5lLDUsMik7aS5zdHlsZSgic3Ryb2tlLXdpZHRoIixvKyJweCIpLmNhbGwobC5maWxsLGEuZmlsbGNvbG9yKSxvJiZsLnN0cm9rZShpLGEubGluZS5jb2xvcil9KSl9KSkuZWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9dFswXS50cmFjZSxyPW4uc2VsZWN0KHRoaXMpLnNlbGVjdCgiZy5sZWdlbmRwb2ludHMiKS5zZWxlY3RBbGwoInBhdGgubGVnZW5kb2hsYyIpLmRhdGEoZS52aXNpYmxlJiYib2hsYyI9PT1lLnR5cGU/W3QsdF06W10pO3IuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKCJsZWdlbmRvaGxjIiwhMCkuYXR0cigiZCIsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU/Ik0tMTUsMEgwTS04LC02VjAiOiJNMTUsMEgwTTgsNlYwIn0pKS5hdHRyKCJ0cmFuc2Zvcm0iLF8pLnN0eWxlKCJzdHJva2UtbWl0ZXJsaW1pdCIsMSksci5leGl0KCkucmVtb3ZlKCksci5lYWNoKChmdW5jdGlvbih0LHIpe3ZhciBpPW4uc2VsZWN0KHRoaXMpLGE9ZVtyPyJpbmNyZWFzaW5nIjoiZGVjcmVhc2luZyJdLG89dyh2b2lkIDAsYS5saW5lLDUsMik7aS5zdHlsZSgiZmlsbCIsIm5vbmUiKS5jYWxsKHMuZGFzaExpbmUsYS5saW5lLmRhc2gsbyksbyYmbC5zdHJva2UoaSxhLmxpbmUuY29sb3IpfSkpfSkpfX0seyIuLi8uLi9saWIiOjUxNSwiLi4vLi4vcmVnaXN0cnkiOjY0NywiLi4vLi4vdHJhY2VzL3BpZS9oZWxwZXJzIjo5MTUsIi4uLy4uL3RyYWNlcy9waWUvc3R5bGVfb25lIjo5MjEsIi4uLy4uL3RyYWNlcy9zY2F0dGVyL3N1YnR5cGVzIjo5NjEsIi4uL2NvbG9yIjozNjcsIi4uL2NvbG9yc2NhbGUvaGVscGVycyI6Mzc4LCIuLi9kcmF3aW5nIjozODksIi4vY29uc3RhbnRzIjo0MTgsIkBwbG90bHkvZDMiOjU4fV0sNDI2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3QoIi4vY29uc3RhbnRzIik7ZS5leHBvcnRzPXtlZGl0VHlwZToibW9kZWJhciIsb3JpZW50YXRpb246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInYiLCJoIl0sZGZsdDoiaCIsZWRpdFR5cGU6Im1vZGViYXIifSxiZ2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6Im1vZGViYXIifSxjb2xvcjp7dmFsVHlwZToiY29sb3IiLGVkaXRUeXBlOiJtb2RlYmFyIn0sYWN0aXZlY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToibW9kZWJhciJ9LHVpcmV2aXNpb246e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6Im5vbmUifSxhZGQ6e3ZhbFR5cGU6InN0cmluZyIsYXJyYXlPazohMCxkZmx0OiIiLGVkaXRUeXBlOiJtb2RlYmFyIn0scmVtb3ZlOnt2YWxUeXBlOiJzdHJpbmciLGFycmF5T2s6ITAsZGZsdDoiIixlZGl0VHlwZToibW9kZWJhciJ9fX0seyIuL2NvbnN0YW50cyI6NDI4fV0sNDI3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3JlZ2lzdHJ5IiksaT10KCIuLi8uLi9wbG90cy9wbG90cyIpLGE9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIiksbz10KCIuLi8uLi9mb250cy9wbG90aWNvbiIpLHM9dCgiLi4vc2hhcGVzL2RyYXciKS5lcmFzZUFjdGl2ZVNoYXBlLGw9dCgiLi4vLi4vbGliIiksYz1sLl8sdT1lLmV4cG9ydHM9e307ZnVuY3Rpb24gZih0LGUpe3ZhciByLGksbz1lLmN1cnJlbnRUYXJnZXQscz1vLmdldEF0dHJpYnV0ZSgiZGF0YS1hdHRyIiksbD1vLmdldEF0dHJpYnV0ZSgiZGF0YS12YWwiKXx8ITAsYz10Ll9mdWxsTGF5b3V0LHU9e30sZj1hLmxpc3QodCxudWxsLCEwKSxoPWMuX2NhcnRlc2lhblNwaWtlc0VuYWJsZWQ7aWYoInpvb20iPT09cyl7dmFyIHAsZD0iaW4iPT09bD8uNToyLG09KDErZCkvMixnPSgxLWQpLzI7Zm9yKGk9MDtpPGYubGVuZ3RoO2krKylpZighKHI9ZltpXSkuZml4ZWRyYW5nZSlpZihwPXIuX25hbWUsImF1dG8iPT09bCl1W3ArIi5hdXRvcmFuZ2UiXT0hMDtlbHNlIGlmKCJyZXNldCI9PT1sKXtpZih2b2lkIDA9PT1yLl9yYW5nZUluaXRpYWwpdVtwKyIuYXV0b3JhbmdlIl09ITA7ZWxzZXt2YXIgdj1yLl9yYW5nZUluaXRpYWwuc2xpY2UoKTt1W3ArIi5yYW5nZVswXSJdPXZbMF0sdVtwKyIucmFuZ2VbMV0iXT12WzFdfXZvaWQgMCE9PXIuX3Nob3dTcGlrZUluaXRpYWwmJih1W3ArIi5zaG93c3Bpa2VzIl09ci5fc2hvd1NwaWtlSW5pdGlhbCwib24iIT09aHx8ci5fc2hvd1NwaWtlSW5pdGlhbHx8KGg9Im9mZiIpKX1lbHNle3ZhciB5PVtyLnIybChyLnJhbmdlWzBdKSxyLnIybChyLnJhbmdlWzFdKV0seD1bbSp5WzBdK2cqeVsxXSxtKnlbMV0rZyp5WzBdXTt1W3ArIi5yYW5nZVswXSJdPXIubDJyKHhbMF0pLHVbcCsiLnJhbmdlWzFdIl09ci5sMnIoeFsxXSl9fWVsc2UiaG92ZXJtb2RlIiE9PXN8fCJ4IiE9PWwmJiJ5IiE9PWx8fChsPWMuX2lzSG9yaXo/InkiOiJ4IixvLnNldEF0dHJpYnV0ZSgiZGF0YS12YWwiLGwpKSx1W3NdPWw7Yy5fY2FydGVzaWFuU3Bpa2VzRW5hYmxlZD1oLG4uY2FsbCgiX2d1aVJlbGF5b3V0Iix0LHUpfWZ1bmN0aW9uIGgodCxlKXtmb3IodmFyIHI9ZS5jdXJyZW50VGFyZ2V0LGk9ci5nZXRBdHRyaWJ1dGUoImRhdGEtYXR0ciIpLGE9ci5nZXRBdHRyaWJ1dGUoImRhdGEtdmFsIil8fCEwLG89dC5fZnVsbExheW91dC5fc3VicGxvdHMuZ2wzZHx8W10scz17fSxsPWkuc3BsaXQoIi4iKSxjPTA7YzxvLmxlbmd0aDtjKyspc1tvW2NdKyIuIitsWzFdXT1hO3ZhciB1PSJwYW4iPT09YT9hOiJ6b29tIjtzLmRyYWdtb2RlPXUsbi5jYWxsKCJfZ3VpUmVsYXlvdXQiLHQscyl9ZnVuY3Rpb24gcCh0LGUpe2Zvcih2YXIgcj1lLmN1cnJlbnRUYXJnZXQuZ2V0QXR0cmlidXRlKCJkYXRhLWF0dHIiKSxpPSJyZXNldExhc3RTYXZlIj09PXIsYT0icmVzZXREZWZhdWx0Ij09PXIsbz10Ll9mdWxsTGF5b3V0LHM9by5fc3VicGxvdHMuZ2wzZHx8W10sbD17fSxjPTA7YzxzLmxlbmd0aDtjKyspe3ZhciB1LGY9c1tjXSxoPWYrIi5jYW1lcmEiLHA9ZisiLmFzcGVjdHJhdGlvIixkPWYrIi5hc3BlY3Rtb2RlIixtPW9bZl0uX3NjZW5lO2k/KGxbaCsiLnVwIl09bS52aWV3SW5pdGlhbC51cCxsW2grIi5leWUiXT1tLnZpZXdJbml0aWFsLmV5ZSxsW2grIi5jZW50ZXIiXT1tLnZpZXdJbml0aWFsLmNlbnRlcix1PSEwKTphJiYobFtoKyIudXAiXT1udWxsLGxbaCsiLmV5ZSJdPW51bGwsbFtoKyIuY2VudGVyIl09bnVsbCx1PSEwKSx1JiYobFtwKyIueCJdPW0udmlld0luaXRpYWwuYXNwZWN0cmF0aW8ueCxsW3ArIi55Il09bS52aWV3SW5pdGlhbC5hc3BlY3RyYXRpby55LGxbcCsiLnoiXT1tLnZpZXdJbml0aWFsLmFzcGVjdHJhdGlvLnosbFtkXT1tLnZpZXdJbml0aWFsLmFzcGVjdG1vZGUpfW4uY2FsbCgiX2d1aVJlbGF5b3V0Iix0LGwpfWZ1bmN0aW9uIGQodCxlKXt2YXIgcj1lLmN1cnJlbnRUYXJnZXQsbj1yLl9wcmV2aW91c1ZhbCxpPXQuX2Z1bGxMYXlvdXQsYT1pLl9zdWJwbG90cy5nbDNkfHxbXSxvPVsieGF4aXMiLCJ5YXhpcyIsInpheGlzIl0scz17fSxsPXt9O2lmKG4pbD1uLHIuX3ByZXZpb3VzVmFsPW51bGw7ZWxzZXtmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKyl7dmFyIHU9YVtjXSxmPWlbdV0saD11KyIuaG92ZXJtb2RlIjtzW2hdPWYuaG92ZXJtb2RlLGxbaF09ITE7Zm9yKHZhciBwPTA7cDwzO3ArKyl7dmFyIGQ9b1twXSxtPXUrIi4iK2QrIi5zaG93c3Bpa2VzIjtsW21dPSExLHNbbV09ZltkXS5zaG93c3Bpa2VzfX1yLl9wcmV2aW91c1ZhbD1zfXJldHVybiBsfWZ1bmN0aW9uIG0odCxlKXtmb3IodmFyIHI9ZS5jdXJyZW50VGFyZ2V0LGk9ci5nZXRBdHRyaWJ1dGUoImRhdGEtYXR0ciIpLGE9ci5nZXRBdHRyaWJ1dGUoImRhdGEtdmFsIil8fCEwLG89dC5fZnVsbExheW91dCxzPW8uX3N1YnBsb3RzLmdlb3x8W10sbD0wO2w8cy5sZW5ndGg7bCsrKXt2YXIgYz1zW2xdLHU9b1tjXTtpZigiem9vbSI9PT1pKXt2YXIgZj11LnByb2plY3Rpb24uc2NhbGUsaD0iaW4iPT09YT8yKmY6LjUqZjtuLmNhbGwoIl9ndWlSZWxheW91dCIsdCxjKyIucHJvamVjdGlvbi5zY2FsZSIsaCl9fSJyZXNldCI9PT1pJiZ4KHQsImdlbyIpfWZ1bmN0aW9uIGcodCl7dmFyIGU9dC5fZnVsbExheW91dDtyZXR1cm4hZS5ob3Zlcm1vZGUmJihlLl9oYXMoImNhcnRlc2lhbiIpP2UuX2lzSG9yaXo/InkiOiJ4IjoiY2xvc2VzdCIpfWZ1bmN0aW9uIHYodCl7dmFyIGU9Zyh0KTtuLmNhbGwoIl9ndWlSZWxheW91dCIsdCwiaG92ZXJtb2RlIixlKX1mdW5jdGlvbiB5KHQsZSl7Zm9yKHZhciByPWUuY3VycmVudFRhcmdldC5nZXRBdHRyaWJ1dGUoImRhdGEtdmFsIiksaT10Ll9mdWxsTGF5b3V0LGE9aS5fc3VicGxvdHMubWFwYm94fHxbXSxvPXt9LHM9MDtzPGEubGVuZ3RoO3MrKyl7dmFyIGw9YVtzXSxjPWlbbF0uem9vbSx1PSJpbiI9PT1yPzEuMDUqYzpjLzEuMDU7b1tsKyIuem9vbSJdPXV9bi5jYWxsKCJfZ3VpUmVsYXlvdXQiLHQsbyl9ZnVuY3Rpb24geCh0LGUpe2Zvcih2YXIgcj10Ll9mdWxsTGF5b3V0LGk9ci5fc3VicGxvdHNbZV18fFtdLGE9e30sbz0wO288aS5sZW5ndGg7bysrKWZvcih2YXIgcz1pW29dLGw9cltzXS5fc3VicGxvdC52aWV3SW5pdGlhbCxjPU9iamVjdC5rZXlzKGwpLHU9MDt1PGMubGVuZ3RoO3UrKyl7dmFyIGY9Y1t1XTthW3MrIi4iK2ZdPWxbZl19bi5jYWxsKCJfZ3VpUmVsYXlvdXQiLHQsYSl9dS50b0ltYWdlPXtuYW1lOiJ0b0ltYWdlIix0aXRsZTpmdW5jdGlvbih0KXt2YXIgZT0odC5fY29udGV4dC50b0ltYWdlQnV0dG9uT3B0aW9uc3x8e30pLmZvcm1hdHx8InBuZyI7cmV0dXJuIGModCwicG5nIj09PWU/IkRvd25sb2FkIHBsb3QgYXMgYSBwbmciOiJEb3dubG9hZCBwbG90Iil9LGljb246by5jYW1lcmEsY2xpY2s6ZnVuY3Rpb24odCl7dmFyIGU9dC5fY29udGV4dC50b0ltYWdlQnV0dG9uT3B0aW9ucyxyPXtmb3JtYXQ6ZS5mb3JtYXR8fCJwbmcifTtsLm5vdGlmaWVyKGModCwiVGFraW5nIHNuYXBzaG90IC0gdGhpcyBtYXkgdGFrZSBhIGZldyBzZWNvbmRzIiksImxvbmciKSwic3ZnIiE9PXIuZm9ybWF0JiZsLmlzSUUoKSYmKGwubm90aWZpZXIoYyh0LCJJRSBvbmx5IHN1cHBvcnRzIHN2Zy4gIENoYW5naW5nIGZvcm1hdCB0byBzdmcuIiksImxvbmciKSxyLmZvcm1hdD0ic3ZnIiksWyJmaWxlbmFtZSIsIndpZHRoIiwiaGVpZ2h0Iiwic2NhbGUiXS5mb3JFYWNoKChmdW5jdGlvbih0KXt0IGluIGUmJihyW3RdPWVbdF0pfSkpLG4uY2FsbCgiZG93bmxvYWRJbWFnZSIsdCxyKS50aGVuKChmdW5jdGlvbihlKXtsLm5vdGlmaWVyKGModCwiU25hcHNob3Qgc3VjY2VlZGVkIikrIiAtICIrZSwibG9uZyIpfSkpLmNhdGNoKChmdW5jdGlvbigpe2wubm90aWZpZXIoYyh0LCJTb3JyeSwgdGhlcmUgd2FzIGEgcHJvYmxlbSBkb3dubG9hZGluZyB5b3VyIHNuYXBzaG90ISIpLCJsb25nIil9KSl9fSx1LnNlbmREYXRhVG9DbG91ZD17bmFtZToic2VuZERhdGFUb0Nsb3VkIix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gYyh0LCJFZGl0IGluIENoYXJ0IFN0dWRpbyIpfSxpY29uOm8uZGlzayxjbGljazpmdW5jdGlvbih0KXtpLnNlbmREYXRhVG9DbG91ZCh0KX19LHUuZWRpdEluQ2hhcnRTdHVkaW89e25hbWU6ImVkaXRJbkNoYXJ0U3R1ZGlvIix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gYyh0LCJFZGl0IGluIENoYXJ0IFN0dWRpbyIpfSxpY29uOm8ucGVuY2lsLGNsaWNrOmZ1bmN0aW9uKHQpe2kuc2VuZERhdGFUb0Nsb3VkKHQpfX0sdS56b29tMmQ9e25hbWU6Inpvb20yZCIsX2NhdDoiem9vbSIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGModCwiWm9vbSIpfSxhdHRyOiJkcmFnbW9kZSIsdmFsOiJ6b29tIixpY29uOm8uem9vbWJveCxjbGljazpmfSx1LnBhbjJkPXtuYW1lOiJwYW4yZCIsX2NhdDoicGFuIix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gYyh0LCJQYW4iKX0sYXR0cjoiZHJhZ21vZGUiLHZhbDoicGFuIixpY29uOm8ucGFuLGNsaWNrOmZ9LHUuc2VsZWN0MmQ9e25hbWU6InNlbGVjdDJkIixfY2F0OiJzZWxlY3QiLHRpdGxlOmZ1bmN0aW9uKHQpe3JldHVybiBjKHQsIkJveCBTZWxlY3QiKX0sYXR0cjoiZHJhZ21vZGUiLHZhbDoic2VsZWN0IixpY29uOm8uc2VsZWN0Ym94LGNsaWNrOmZ9LHUubGFzc28yZD17bmFtZToibGFzc28yZCIsX2NhdDoibGFzc28iLHRpdGxlOmZ1bmN0aW9uKHQpe3JldHVybiBjKHQsIkxhc3NvIFNlbGVjdCIpfSxhdHRyOiJkcmFnbW9kZSIsdmFsOiJsYXNzbyIsaWNvbjpvLmxhc3NvLGNsaWNrOmZ9LHUuZHJhd2Nsb3NlZHBhdGg9e25hbWU6ImRyYXdjbG9zZWRwYXRoIix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gYyh0LCJEcmF3IGNsb3NlZCBmcmVlZm9ybSIpfSxhdHRyOiJkcmFnbW9kZSIsdmFsOiJkcmF3Y2xvc2VkcGF0aCIsaWNvbjpvLmRyYXdjbG9zZWRwYXRoLGNsaWNrOmZ9LHUuZHJhd29wZW5wYXRoPXtuYW1lOiJkcmF3b3BlbnBhdGgiLHRpdGxlOmZ1bmN0aW9uKHQpe3JldHVybiBjKHQsIkRyYXcgb3BlbiBmcmVlZm9ybSIpfSxhdHRyOiJkcmFnbW9kZSIsdmFsOiJkcmF3b3BlbnBhdGgiLGljb246by5kcmF3b3BlbnBhdGgsY2xpY2s6Zn0sdS5kcmF3bGluZT17bmFtZToiZHJhd2xpbmUiLHRpdGxlOmZ1bmN0aW9uKHQpe3JldHVybiBjKHQsIkRyYXcgbGluZSIpfSxhdHRyOiJkcmFnbW9kZSIsdmFsOiJkcmF3bGluZSIsaWNvbjpvLmRyYXdsaW5lLGNsaWNrOmZ9LHUuZHJhd3JlY3Q9e25hbWU6ImRyYXdyZWN0Iix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gYyh0LCJEcmF3IHJlY3RhbmdsZSIpfSxhdHRyOiJkcmFnbW9kZSIsdmFsOiJkcmF3cmVjdCIsaWNvbjpvLmRyYXdyZWN0LGNsaWNrOmZ9LHUuZHJhd2NpcmNsZT17bmFtZToiZHJhd2NpcmNsZSIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGModCwiRHJhdyBjaXJjbGUiKX0sYXR0cjoiZHJhZ21vZGUiLHZhbDoiZHJhd2NpcmNsZSIsaWNvbjpvLmRyYXdjaXJjbGUsY2xpY2s6Zn0sdS5lcmFzZXNoYXBlPXtuYW1lOiJlcmFzZXNoYXBlIix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gYyh0LCJFcmFzZSBhY3RpdmUgc2hhcGUiKX0saWNvbjpvLmVyYXNlc2hhcGUsY2xpY2s6c30sdS56b29tSW4yZD17bmFtZToiem9vbUluMmQiLF9jYXQ6Inpvb21pbiIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGModCwiWm9vbSBpbiIpfSxhdHRyOiJ6b29tIix2YWw6ImluIixpY29uOm8uem9vbV9wbHVzLGNsaWNrOmZ9LHUuem9vbU91dDJkPXtuYW1lOiJ6b29tT3V0MmQiLF9jYXQ6Inpvb21vdXQiLHRpdGxlOmZ1bmN0aW9uKHQpe3JldHVybiBjKHQsIlpvb20gb3V0Iil9LGF0dHI6Inpvb20iLHZhbDoib3V0IixpY29uOm8uem9vbV9taW51cyxjbGljazpmfSx1LmF1dG9TY2FsZTJkPXtuYW1lOiJhdXRvU2NhbGUyZCIsX2NhdDoiYXV0b3NjYWxlIix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gYyh0LCJBdXRvc2NhbGUiKX0sYXR0cjoiem9vbSIsdmFsOiJhdXRvIixpY29uOm8uYXV0b3NjYWxlLGNsaWNrOmZ9LHUucmVzZXRTY2FsZTJkPXtuYW1lOiJyZXNldFNjYWxlMmQiLF9jYXQ6InJlc2V0c2NhbGUiLHRpdGxlOmZ1bmN0aW9uKHQpe3JldHVybiBjKHQsIlJlc2V0IGF4ZXMiKX0sYXR0cjoiem9vbSIsdmFsOiJyZXNldCIsaWNvbjpvLmhvbWUsY2xpY2s6Zn0sdS5ob3ZlckNsb3Nlc3RDYXJ0ZXNpYW49e25hbWU6ImhvdmVyQ2xvc2VzdENhcnRlc2lhbiIsX2NhdDoiaG92ZXJjbG9zZXN0Iix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gYyh0LCJTaG93IGNsb3Nlc3QgZGF0YSBvbiBob3ZlciIpfSxhdHRyOiJob3Zlcm1vZGUiLHZhbDoiY2xvc2VzdCIsaWNvbjpvLnRvb2x0aXBfYmFzaWMsZ3Jhdml0eToibmUiLGNsaWNrOmZ9LHUuaG92ZXJDb21wYXJlQ2FydGVzaWFuPXtuYW1lOiJob3ZlckNvbXBhcmVDYXJ0ZXNpYW4iLF9jYXQ6ImhvdmVyQ29tcGFyZSIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGModCwiQ29tcGFyZSBkYXRhIG9uIGhvdmVyIil9LGF0dHI6ImhvdmVybW9kZSIsdmFsOmZ1bmN0aW9uKHQpe3JldHVybiB0Ll9mdWxsTGF5b3V0Ll9pc0hvcml6PyJ5IjoieCJ9LGljb246by50b29sdGlwX2NvbXBhcmUsZ3Jhdml0eToibmUiLGNsaWNrOmZ9LHUuem9vbTNkPXtuYW1lOiJ6b29tM2QiLF9jYXQ6Inpvb20iLHRpdGxlOmZ1bmN0aW9uKHQpe3JldHVybiBjKHQsIlpvb20iKX0sYXR0cjoic2NlbmUuZHJhZ21vZGUiLHZhbDoiem9vbSIsaWNvbjpvLnpvb21ib3gsY2xpY2s6aH0sdS5wYW4zZD17bmFtZToicGFuM2QiLF9jYXQ6InBhbiIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGModCwiUGFuIil9LGF0dHI6InNjZW5lLmRyYWdtb2RlIix2YWw6InBhbiIsaWNvbjpvLnBhbixjbGljazpofSx1Lm9yYml0Um90YXRpb249e25hbWU6Im9yYml0Um90YXRpb24iLHRpdGxlOmZ1bmN0aW9uKHQpe3JldHVybiBjKHQsIk9yYml0YWwgcm90YXRpb24iKX0sYXR0cjoic2NlbmUuZHJhZ21vZGUiLHZhbDoib3JiaXQiLGljb246b1siM2Rfcm90YXRlIl0sY2xpY2s6aH0sdS50YWJsZVJvdGF0aW9uPXtuYW1lOiJ0YWJsZVJvdGF0aW9uIix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gYyh0LCJUdXJudGFibGUgcm90YXRpb24iKX0sYXR0cjoic2NlbmUuZHJhZ21vZGUiLHZhbDoidHVybnRhYmxlIixpY29uOm9bInotYXhpcyJdLGNsaWNrOmh9LHUucmVzZXRDYW1lcmFEZWZhdWx0M2Q9e25hbWU6InJlc2V0Q2FtZXJhRGVmYXVsdDNkIixfY2F0OiJyZXNldENhbWVyYURlZmF1bHQiLHRpdGxlOmZ1bmN0aW9uKHQpe3JldHVybiBjKHQsIlJlc2V0IGNhbWVyYSB0byBkZWZhdWx0Iil9LGF0dHI6InJlc2V0RGVmYXVsdCIsaWNvbjpvLmhvbWUsY2xpY2s6cH0sdS5yZXNldENhbWVyYUxhc3RTYXZlM2Q9e25hbWU6InJlc2V0Q2FtZXJhTGFzdFNhdmUzZCIsX2NhdDoicmVzZXRDYW1lcmFMYXN0U2F2ZSIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGModCwiUmVzZXQgY2FtZXJhIHRvIGxhc3Qgc2F2ZSIpfSxhdHRyOiJyZXNldExhc3RTYXZlIixpY29uOm8ubW92aWUsY2xpY2s6cH0sdS5ob3ZlckNsb3Nlc3QzZD17bmFtZToiaG92ZXJDbG9zZXN0M2QiLF9jYXQ6ImhvdmVyY2xvc2VzdCIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGModCwiVG9nZ2xlIHNob3cgY2xvc2VzdCBkYXRhIG9uIGhvdmVyIil9LGF0dHI6ImhvdmVybW9kZSIsdmFsOm51bGwsdG9nZ2xlOiEwLGljb246by50b29sdGlwX2Jhc2ljLGdyYXZpdHk6Im5lIixjbGljazpmdW5jdGlvbih0LGUpe3ZhciByPWQodCxlKTtuLmNhbGwoIl9ndWlSZWxheW91dCIsdCxyKX19LHUuem9vbUluR2VvPXtuYW1lOiJ6b29tSW5HZW8iLF9jYXQ6Inpvb21pbiIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGModCwiWm9vbSBpbiIpfSxhdHRyOiJ6b29tIix2YWw6ImluIixpY29uOm8uem9vbV9wbHVzLGNsaWNrOm19LHUuem9vbU91dEdlbz17bmFtZToiem9vbU91dEdlbyIsX2NhdDoiem9vbW91dCIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGModCwiWm9vbSBvdXQiKX0sYXR0cjoiem9vbSIsdmFsOiJvdXQiLGljb246by56b29tX21pbnVzLGNsaWNrOm19LHUucmVzZXRHZW89e25hbWU6InJlc2V0R2VvIixfY2F0OiJyZXNldCIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGModCwiUmVzZXQiKX0sYXR0cjoicmVzZXQiLHZhbDpudWxsLGljb246by5hdXRvc2NhbGUsY2xpY2s6bX0sdS5ob3ZlckNsb3Nlc3RHZW89e25hbWU6ImhvdmVyQ2xvc2VzdEdlbyIsX2NhdDoiaG92ZXJjbG9zZXN0Iix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gYyh0LCJUb2dnbGUgc2hvdyBjbG9zZXN0IGRhdGEgb24gaG92ZXIiKX0sYXR0cjoiaG92ZXJtb2RlIix2YWw6bnVsbCx0b2dnbGU6ITAsaWNvbjpvLnRvb2x0aXBfYmFzaWMsZ3Jhdml0eToibmUiLGNsaWNrOnZ9LHUuaG92ZXJDbG9zZXN0R2wyZD17bmFtZToiaG92ZXJDbG9zZXN0R2wyZCIsX2NhdDoiaG92ZXJjbG9zZXN0Iix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gYyh0LCJUb2dnbGUgc2hvdyBjbG9zZXN0IGRhdGEgb24gaG92ZXIiKX0sYXR0cjoiaG92ZXJtb2RlIix2YWw6bnVsbCx0b2dnbGU6ITAsaWNvbjpvLnRvb2x0aXBfYmFzaWMsZ3Jhdml0eToibmUiLGNsaWNrOnZ9LHUuaG92ZXJDbG9zZXN0UGllPXtuYW1lOiJob3ZlckNsb3Nlc3RQaWUiLF9jYXQ6ImhvdmVyY2xvc2VzdCIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGModCwiVG9nZ2xlIHNob3cgY2xvc2VzdCBkYXRhIG9uIGhvdmVyIil9LGF0dHI6ImhvdmVybW9kZSIsdmFsOiJjbG9zZXN0IixpY29uOm8udG9vbHRpcF9iYXNpYyxncmF2aXR5OiJuZSIsY2xpY2s6dn0sdS5yZXNldFZpZXdTYW5rZXk9e25hbWU6InJlc2V0U2Fua2V5R3JvdXAiLHRpdGxlOmZ1bmN0aW9uKHQpe3JldHVybiBjKHQsIlJlc2V0IHZpZXciKX0saWNvbjpvLmhvbWUsY2xpY2s6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXsibm9kZS5ncm91cHMiOltdLCJub2RlLngiOltdLCJub2RlLnkiOltdfSxyPTA7cjx0Ll9mdWxsRGF0YS5sZW5ndGg7cisrKXt2YXIgaT10Ll9mdWxsRGF0YVtyXS5fdmlld0luaXRpYWw7ZVsibm9kZS5ncm91cHMiXS5wdXNoKGkubm9kZS5ncm91cHMuc2xpY2UoKSksZVsibm9kZS54Il0ucHVzaChpLm5vZGUueC5zbGljZSgpKSxlWyJub2RlLnkiXS5wdXNoKGkubm9kZS55LnNsaWNlKCkpfW4uY2FsbCgicmVzdHlsZSIsdCxlKX19LHUudG9nZ2xlSG92ZXI9e25hbWU6InRvZ2dsZUhvdmVyIix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gYyh0LCJUb2dnbGUgc2hvdyBjbG9zZXN0IGRhdGEgb24gaG92ZXIiKX0sYXR0cjoiaG92ZXJtb2RlIix2YWw6bnVsbCx0b2dnbGU6ITAsaWNvbjpvLnRvb2x0aXBfYmFzaWMsZ3Jhdml0eToibmUiLGNsaWNrOmZ1bmN0aW9uKHQsZSl7dmFyIHI9ZCh0LGUpO3IuaG92ZXJtb2RlPWcodCksbi5jYWxsKCJfZ3VpUmVsYXlvdXQiLHQscil9fSx1LnJlc2V0Vmlld3M9e25hbWU6InJlc2V0Vmlld3MiLHRpdGxlOmZ1bmN0aW9uKHQpe3JldHVybiBjKHQsIlJlc2V0IHZpZXdzIil9LGljb246by5ob21lLGNsaWNrOmZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS5jdXJyZW50VGFyZ2V0O3Iuc2V0QXR0cmlidXRlKCJkYXRhLWF0dHIiLCJ6b29tIiksci5zZXRBdHRyaWJ1dGUoImRhdGEtdmFsIiwicmVzZXQiKSxmKHQsZSksci5zZXRBdHRyaWJ1dGUoImRhdGEtYXR0ciIsInJlc2V0TGFzdFNhdmUiKSxwKHQsZSkseCh0LCJnZW8iKSx4KHQsIm1hcGJveCIpfX0sdS50b2dnbGVTcGlrZWxpbmVzPXtuYW1lOiJ0b2dnbGVTcGlrZWxpbmVzIix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gYyh0LCJUb2dnbGUgU3Bpa2UgTGluZXMiKX0saWNvbjpvLnNwaWtlbGluZSxhdHRyOiJfY2FydGVzaWFuU3Bpa2VzRW5hYmxlZCIsdmFsOiJvbiIsY2xpY2s6ZnVuY3Rpb24odCl7dmFyIGU9dC5fZnVsbExheW91dCxyPWUuX2NhcnRlc2lhblNwaWtlc0VuYWJsZWQ7ZS5fY2FydGVzaWFuU3Bpa2VzRW5hYmxlZD0ib24iPT09cj8ib2ZmIjoib24iLG4uY2FsbCgiX2d1aVJlbGF5b3V0Iix0LGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0ib24iPT09dC5fZnVsbExheW91dC5fY2FydGVzaWFuU3Bpa2VzRW5hYmxlZCxyPWEubGlzdCh0LG51bGwsITApLG49e30saT0wO2k8ci5sZW5ndGg7aSsrKXt2YXIgbz1yW2ldO25bby5fbmFtZSsiLnNob3dzcGlrZXMiXT0hIWV8fG8uX3Nob3dTcGlrZUluaXRpYWx9cmV0dXJuIG59KHQpKX19LHUucmVzZXRWaWV3TWFwYm94PXtuYW1lOiJyZXNldFZpZXdNYXBib3giLF9jYXQ6InJlc2V0VmlldyIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGModCwiUmVzZXQgdmlldyIpfSxhdHRyOiJyZXNldCIsaWNvbjpvLmhvbWUsY2xpY2s6ZnVuY3Rpb24odCl7eCh0LCJtYXBib3giKX19LHUuem9vbUluTWFwYm94PXtuYW1lOiJ6b29tSW5NYXBib3giLF9jYXQ6Inpvb21pbiIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGModCwiWm9vbSBpbiIpfSxhdHRyOiJ6b29tIix2YWw6ImluIixpY29uOm8uem9vbV9wbHVzLGNsaWNrOnl9LHUuem9vbU91dE1hcGJveD17bmFtZToiem9vbU91dE1hcGJveCIsX2NhdDoiem9vbW91dCIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGModCwiWm9vbSBvdXQiKX0sYXR0cjoiem9vbSIsdmFsOiJvdXQiLGljb246by56b29tX21pbnVzLGNsaWNrOnl9fSx7Ii4uLy4uL2ZvbnRzL3Bsb3RpY29uIjo0OTQsIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19pZHMiOjU3MCwiLi4vLi4vcGxvdHMvcGxvdHMiOjYyOCwiLi4vLi4vcmVnaXN0cnkiOjY0NywiLi4vc2hhcGVzL2RyYXciOjQ2Mn1dLDQyODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2J1dHRvbnMiKSxpPU9iamVjdC5rZXlzKG4pLGE9WyJkcmF3bGluZSIsImRyYXdvcGVucGF0aCIsImRyYXdjbG9zZWRwYXRoIiwiZHJhd2NpcmNsZSIsImRyYXdyZWN0IiwiZXJhc2VzaGFwZSJdLG89WyJ2MWhvdmVybW9kZSIsImhvdmVyY2xvc2VzdCIsImhvdmVyY29tcGFyZSIsInRvZ2dsZWhvdmVyIiwidG9nZ2xlc3Bpa2VsaW5lcyJdLmNvbmNhdChhKSxzPVtdO2kuZm9yRWFjaCgoZnVuY3Rpb24odCl7IWZ1bmN0aW9uKHQpe2lmKC0xPT09by5pbmRleE9mKHQuX2NhdHx8dC5uYW1lKSl7dmFyIGU9dC5uYW1lLHI9KHQuX2NhdHx8dC5uYW1lKS50b0xvd2VyQ2FzZSgpOy0xPT09cy5pbmRleE9mKGUpJiZzLnB1c2goZSksLTE9PT1zLmluZGV4T2YocikmJnMucHVzaChyKX19KG5bdF0pfSkpLHMuc29ydCgpLGUuZXhwb3J0cz17RFJBV19NT0RFUzphLGJhY2tCdXR0b25zOm8sZm9yZUJ1dHRvbnM6c319LHsiLi9idXR0b25zIjo0Mjd9XSw0Mjk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi9jb2xvciIpLGE9dCgiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpLG89dCgiLi9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5tb2RlYmFyfHx7fSxzPWEubmV3Q29udGFpbmVyKGUsIm1vZGViYXIiKTtmdW5jdGlvbiBsKHQsZSl7cmV0dXJuIG4uY29lcmNlKHIscyxvLHQsZSl9bCgib3JpZW50YXRpb24iKSxsKCJiZ2NvbG9yIixpLmFkZE9wYWNpdHkoZS5wYXBlcl9iZ2NvbG9yLC41KSk7dmFyIGM9aS5jb250cmFzdChpLnJnYihlLm1vZGViYXIuYmdjb2xvcikpO2woImNvbG9yIixpLmFkZE9wYWNpdHkoYywuMykpLGwoImFjdGl2ZWNvbG9yIixpLmFkZE9wYWNpdHkoYywuNykpLGwoInVpcmV2aXNpb24iLGUudWlyZXZpc2lvbiksbCgiYWRkIiksbCgicmVtb3ZlIil9fSx7Ii4uLy4uL2xpYiI6NTE1LCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIjo1NTUsIi4uL2NvbG9yIjozNjcsIi4vYXR0cmlidXRlcyI6NDI2fV0sNDMwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17bW9kdWxlVHlwZToiY29tcG9uZW50IixuYW1lOiJtb2RlYmFyIixsYXlvdXRBdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseUxheW91dERlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxtYW5hZ2U6dCgiLi9tYW5hZ2UiKX19LHsiLi9hdHRyaWJ1dGVzIjo0MjYsIi4vZGVmYXVsdHMiOjQyOSwiLi9tYW5hZ2UiOjQzMX1dLDQzMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19pZHMiKSxpPXQoIi4uLy4uL3RyYWNlcy9zY2F0dGVyL3N1YnR5cGVzIiksYT10KCIuLi8uLi9yZWdpc3RyeSIpLG89dCgiLi4vZngvaGVscGVycyIpLmlzVW5pZmllZEhvdmVyLHM9dCgiLi9tb2RlYmFyIiksbD10KCIuL2J1dHRvbnMiKSxjPXQoIi4vY29uc3RhbnRzIikuRFJBV19NT0RFUyx1PXQoIi4uLy4uL2xpYiIpLmV4dGVuZERlZXA7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQscj10Ll9jb250ZXh0LGY9ZS5fbW9kZUJhcjtpZihyLmRpc3BsYXlNb2RlQmFyfHxyLndhdGVybWFyayl7aWYoIUFycmF5LmlzQXJyYXkoci5tb2RlQmFyQnV0dG9uc1RvUmVtb3ZlKSl0aHJvdyBuZXcgRXJyb3IoWyIqbW9kZUJhckJ1dHRvbnNUb1JlbW92ZSogY29uZmlndXJhdGlvbiBvcHRpb25zIiwibXVzdCBiZSBhbiBhcnJheS4iXS5qb2luKCIgIikpO2lmKCFBcnJheS5pc0FycmF5KHIubW9kZUJhckJ1dHRvbnNUb0FkZCkpdGhyb3cgbmV3IEVycm9yKFsiKm1vZGVCYXJCdXR0b25zVG9BZGQqIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyIsIm11c3QgYmUgYW4gYXJyYXkuIl0uam9pbigiICIpKTt2YXIgaCxwPXIubW9kZUJhckJ1dHRvbnM7aD1BcnJheS5pc0FycmF5KHApJiZwLmxlbmd0aD9mdW5jdGlvbih0KXtmb3IodmFyIGU9dShbXSx0KSxyPTA7cjxlLmxlbmd0aDtyKyspZm9yKHZhciBuPWVbcl0saT0wO2k8bi5sZW5ndGg7aSsrKXt2YXIgYT1uW2ldO2lmKCJzdHJpbmciPT10eXBlb2YgYSl7aWYodm9pZCAwPT09bFthXSl0aHJvdyBuZXcgRXJyb3IoWyIqbW9kZUJhckJ1dHRvbnMqIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyIsImludmFsaWQgYnV0dG9uIG5hbWUiXS5qb2luKCIgIikpO2Vbcl1baV09bFthXX19cmV0dXJuIGV9KHApOiFyLmRpc3BsYXlNb2RlQmFyJiZyLndhdGVybWFyaz9bXTpmdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0LHI9dC5fZnVsbERhdGEscz10Ll9jb250ZXh0O2Z1bmN0aW9uIHUodCxlKXtpZigic3RyaW5nIj09dHlwZW9mIGUpe2lmKGUudG9Mb3dlckNhc2UoKT09PXQudG9Mb3dlckNhc2UoKSlyZXR1cm4hMH1lbHNle3ZhciByPWUubmFtZSxuPWUuX2NhdHx8ZS5uYW1lO2lmKHI9PT10fHxuPT09dC50b0xvd2VyQ2FzZSgpKXJldHVybiEwfXJldHVybiExfXZhciBmPWUubW9kZWJhci5hZGQ7InN0cmluZyI9PXR5cGVvZiBmJiYoZj1bZl0pO3ZhciBoPWUubW9kZWJhci5yZW1vdmU7InN0cmluZyI9PXR5cGVvZiBoJiYoaD1baF0pO3ZhciBwPXMubW9kZUJhckJ1dHRvbnNUb0FkZC5jb25jYXQoZi5maWx0ZXIoKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wO2U8cy5tb2RlQmFyQnV0dG9uc1RvUmVtb3ZlLmxlbmd0aDtlKyspaWYodSh0LHMubW9kZUJhckJ1dHRvbnNUb1JlbW92ZVtlXSkpcmV0dXJuITE7cmV0dXJuITB9KSkpLGQ9cy5tb2RlQmFyQnV0dG9uc1RvUmVtb3ZlLmNvbmNhdChoLmZpbHRlcigoZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7ZTxzLm1vZGVCYXJCdXR0b25zVG9BZGQubGVuZ3RoO2UrKylpZih1KHQscy5tb2RlQmFyQnV0dG9uc1RvQWRkW2VdKSlyZXR1cm4hMTtyZXR1cm4hMH0pKSksbT1lLl9oYXMoImNhcnRlc2lhbiIpLGc9ZS5faGFzKCJnbDNkIiksdj1lLl9oYXMoImdlbyIpLHk9ZS5faGFzKCJwaWUiKSx4PWUuX2hhcygiZnVubmVsYXJlYSIpLGI9ZS5faGFzKCJnbDJkIiksXz1lLl9oYXMoInRlcm5hcnkiKSx3PWUuX2hhcygibWFwYm94IiksVD1lLl9oYXMoInBvbGFyIiksaz1lLl9oYXMoInNtaXRoIiksQT1lLl9oYXMoInNhbmtleSIpLE09ZnVuY3Rpb24odCl7Zm9yKHZhciBlPW4ubGlzdCh7X2Z1bGxMYXlvdXQ6dH0sbnVsbCwhMCkscj0wO3I8ZS5sZW5ndGg7cisrKWlmKCFlW3JdLmZpeGVkcmFuZ2UpcmV0dXJuITE7cmV0dXJuITB9KGUpLFM9byhlLmhvdmVybW9kZSksRT1bXTtmdW5jdGlvbiBMKHQpe2lmKHQubGVuZ3RoKXtmb3IodmFyIGU9W10scj0wO3I8dC5sZW5ndGg7cisrKXtmb3IodmFyIG49dFtyXSxpPWxbbl0sYT1pLm5hbWUudG9Mb3dlckNhc2UoKSxvPShpLl9jYXR8fGkubmFtZSkudG9Mb3dlckNhc2UoKSxzPSExLGM9MDtjPGQubGVuZ3RoO2MrKyl7dmFyIHU9ZFtjXS50b0xvd2VyQ2FzZSgpO2lmKHU9PT1hfHx1PT09byl7cz0hMDticmVha319c3x8ZS5wdXNoKGxbbl0pfUUucHVzaChlKX19dmFyIEM9WyJ0b0ltYWdlIl07cy5zaG93RWRpdEluQ2hhcnRTdHVkaW8/Qy5wdXNoKCJlZGl0SW5DaGFydFN0dWRpbyIpOnMuc2hvd1NlbmRUb0Nsb3VkJiZDLnB1c2goInNlbmREYXRhVG9DbG91ZCIpO0woQyk7dmFyIFA9W10sST1bXSxPPVtdLHo9W107KG18fGJ8fHl8fHh8fF8pK3YrZyt3K1Qraz4xPyhJPVsidG9nZ2xlSG92ZXIiXSxPPVsicmVzZXRWaWV3cyJdKTp2PyhQPVsiem9vbUluR2VvIiwiem9vbU91dEdlbyJdLEk9WyJob3ZlckNsb3Nlc3RHZW8iXSxPPVsicmVzZXRHZW8iXSk6Zz8oST1bImhvdmVyQ2xvc2VzdDNkIl0sTz1bInJlc2V0Q2FtZXJhRGVmYXVsdDNkIiwicmVzZXRDYW1lcmFMYXN0U2F2ZTNkIl0pOnc/KFA9WyJ6b29tSW5NYXBib3giLCJ6b29tT3V0TWFwYm94Il0sST1bInRvZ2dsZUhvdmVyIl0sTz1bInJlc2V0Vmlld01hcGJveCJdKTpiP0k9WyJob3ZlckNsb3Nlc3RHbDJkIl06eT9JPVsiaG92ZXJDbG9zZXN0UGllIl06QT8oST1bImhvdmVyQ2xvc2VzdENhcnRlc2lhbiIsImhvdmVyQ29tcGFyZUNhcnRlc2lhbiJdLE89WyJyZXNldFZpZXdTYW5rZXkiXSk6ST1bInRvZ2dsZUhvdmVyIl07bSYmKEk9WyJ0b2dnbGVTcGlrZWxpbmVzIiwiaG92ZXJDbG9zZXN0Q2FydGVzaWFuIiwiaG92ZXJDb21wYXJlQ2FydGVzaWFuIl0pOyhmdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPHQubGVuZ3RoO2UrKylpZighYS50cmFjZUlzKHRbZV0sIm5vSG92ZXIiKSlyZXR1cm4hMTtyZXR1cm4hMH0ocil8fFMpJiYoST1bXSk7IW0mJiFifHxNfHwoUD1bInpvb21JbjJkIiwiem9vbU91dDJkIiwiYXV0b1NjYWxlMmQiXSwicmVzZXRWaWV3cyIhPT1PWzBdJiYoTz1bInJlc2V0U2NhbGUyZCJdKSk7Zz96PVsiem9vbTNkIiwicGFuM2QiLCJvcmJpdFJvdGF0aW9uIiwidGFibGVSb3RhdGlvbiJdOihtfHxiKSYmIU18fF8/ej1bInpvb20yZCIsInBhbjJkIl06d3x8dj96PVsicGFuMmQiXTpUJiYoej1bInpvb20yZCJdKTsoZnVuY3Rpb24odCl7Zm9yKHZhciBlPSExLHI9MDtyPHQubGVuZ3RoJiYhZTtyKyspe3ZhciBuPXRbcl07bi5fbW9kdWxlJiZuLl9tb2R1bGUuc2VsZWN0UG9pbnRzJiYoYS50cmFjZUlzKG4sInNjYXR0ZXItbGlrZSIpPyhpLmhhc01hcmtlcnMobil8fGkuaGFzVGV4dChuKSkmJihlPSEwKTphLnRyYWNlSXMobiwiYm94LXZpb2xpbiIpJiYiYWxsIiE9PW4uYm94cG9pbnRzJiYiYWxsIiE9PW4ucG9pbnRzfHwoZT0hMCkpfXJldHVybiBlfSkocikmJnoucHVzaCgic2VsZWN0MmQiLCJsYXNzbzJkIik7dmFyIEQ9W10sUj1mdW5jdGlvbih0KXstMT09PUQuaW5kZXhPZih0KSYmLTEhPT1JLmluZGV4T2YodCkmJkQucHVzaCh0KX07aWYoQXJyYXkuaXNBcnJheShwKSl7Zm9yKHZhciBGPVtdLEI9MDtCPHAubGVuZ3RoO0IrKyl7dmFyIE49cFtCXTsic3RyaW5nIj09dHlwZW9mIE4/KE49Ti50b0xvd2VyQ2FzZSgpLC0xIT09Yy5pbmRleE9mKE4pPyhlLl9oYXMoIm1hcGJveCIpfHxlLl9oYXMoImNhcnRlc2lhbiIpKSYmei5wdXNoKE4pOiJ0b2dnbGVzcGlrZWxpbmVzIj09PU4/UigidG9nZ2xlU3Bpa2VsaW5lcyIpOiJ0b2dnbGVob3ZlciI9PT1OP1IoInRvZ2dsZUhvdmVyIik6ImhvdmVyY29tcGFyZSI9PT1OP1IoImhvdmVyQ29tcGFyZUNhcnRlc2lhbiIpOiJob3ZlcmNsb3Nlc3QiPT09Tj8oUigiaG92ZXJDbG9zZXN0Q2FydGVzaWFuIiksUigiaG92ZXJDbG9zZXN0R2VvIiksUigiaG92ZXJDbG9zZXN0M2QiKSxSKCJob3ZlckNsb3Nlc3RHbDJkIiksUigiaG92ZXJDbG9zZXN0UGllIikpOiJ2MWhvdmVybW9kZSI9PT1OJiYoUigidG9nZ2xlSG92ZXIiKSxSKCJob3ZlckNsb3Nlc3RDYXJ0ZXNpYW4iKSxSKCJob3ZlckNvbXBhcmVDYXJ0ZXNpYW4iKSxSKCJob3ZlckNsb3Nlc3RHZW8iKSxSKCJob3ZlckNsb3Nlc3QzZCIpLFIoImhvdmVyQ2xvc2VzdEdsMmQiKSxSKCJob3ZlckNsb3Nlc3RQaWUiKSkpOkYucHVzaChOKX1wPUZ9cmV0dXJuIEwoeiksTChQLmNvbmNhdChPKSksTChEKSxmdW5jdGlvbih0LGUpe2lmKGUubGVuZ3RoKWlmKEFycmF5LmlzQXJyYXkoZVswXSkpZm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspdC5wdXNoKGVbcl0pO2Vsc2UgdC5wdXNoKGUpO3JldHVybiB0fShFLHApfSh0KSxmP2YudXBkYXRlKHQsaCk6ZS5fbW9kZUJhcj1zKHQsaCl9ZWxzZSBmJiYoZi5kZXN0cm95KCksZGVsZXRlIGUuX21vZGVCYXIpfX0seyIuLi8uLi9saWIiOjUxNSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIjo1NzAsIi4uLy4uL3JlZ2lzdHJ5Ijo2NDcsIi4uLy4uL3RyYWNlcy9zY2F0dGVyL3N1YnR5cGVzIjo5NjEsIi4uL2Z4L2hlbHBlcnMiOjQwMywiLi9idXR0b25zIjo0MjcsIi4vY29uc3RhbnRzIjo0MjgsIi4vbW9kZWJhciI6NDMyfV0sNDMyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoImZhc3QtaXNudW1lcmljIiksYT10KCIuLi8uLi9saWIiKSxvPXQoIi4uLy4uL2ZvbnRzL3Bsb3RpY29uIikscz10KCIuLi8uLi92ZXJzaW9uIikudmVyc2lvbixsPW5ldyBET01QYXJzZXI7ZnVuY3Rpb24gYyh0KXt0aGlzLmNvbnRhaW5lcj10LmNvbnRhaW5lcix0aGlzLmVsZW1lbnQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy51cGRhdGUodC5ncmFwaEluZm8sdC5idXR0b25zKSx0aGlzLmNvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnQpfXZhciB1PWMucHJvdG90eXBlO3UudXBkYXRlPWZ1bmN0aW9uKHQsZSl7dGhpcy5ncmFwaEluZm89dDt2YXIgcj10aGlzLmdyYXBoSW5mby5fY29udGV4dCxuPXRoaXMuZ3JhcGhJbmZvLl9mdWxsTGF5b3V0LGk9Im1vZGViYXItIituLl91aWQ7dGhpcy5lbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLGkpLHRoaXMuX3VpZD1pLHRoaXMuZWxlbWVudC5jbGFzc05hbWU9Im1vZGViYXIiLCJob3ZlciI9PT1yLmRpc3BsYXlNb2RlQmFyJiYodGhpcy5lbGVtZW50LmNsYXNzTmFtZSs9IiBtb2RlYmFyLS1ob3ZlciBlYXNlLWJnIiksInYiPT09bi5tb2RlYmFyLm9yaWVudGF0aW9uJiYodGhpcy5lbGVtZW50LmNsYXNzTmFtZSs9IiB2ZXJ0aWNhbCIsZT1lLnJldmVyc2UoKSk7dmFyIG89bi5tb2RlYmFyLHM9ImhvdmVyIj09PXIuZGlzcGxheU1vZGVCYXI/Ii5qcy1wbG90bHktcGxvdCAucGxvdGx5OmhvdmVyICI6IiI7YS5kZWxldGVSZWxhdGVkU3R5bGVSdWxlKGkpLGEuYWRkUmVsYXRlZFN0eWxlUnVsZShpLHMrIiMiK2krIiAubW9kZWJhci1ncm91cCIsImJhY2tncm91bmQtY29sb3I6ICIrby5iZ2NvbG9yKSxhLmFkZFJlbGF0ZWRTdHlsZVJ1bGUoaSwiIyIraSsiIC5tb2RlYmFyLWJ0biAuaWNvbiBwYXRoIiwiZmlsbDogIitvLmNvbG9yKSxhLmFkZFJlbGF0ZWRTdHlsZVJ1bGUoaSwiIyIraSsiIC5tb2RlYmFyLWJ0bjpob3ZlciAuaWNvbiBwYXRoIiwiZmlsbDogIitvLmFjdGl2ZWNvbG9yKSxhLmFkZFJlbGF0ZWRTdHlsZVJ1bGUoaSwiIyIraSsiIC5tb2RlYmFyLWJ0bi5hY3RpdmUgLmljb24gcGF0aCIsImZpbGw6ICIrby5hY3RpdmVjb2xvcik7dmFyIGw9IXRoaXMuaGFzQnV0dG9ucyhlKSxjPXRoaXMuaGFzTG9nbyE9PXIuZGlzcGxheWxvZ28sdT10aGlzLmxvY2FsZSE9PXIubG9jYWxlO2lmKHRoaXMubG9jYWxlPXIubG9jYWxlLChsfHxjfHx1KSYmKHRoaXMucmVtb3ZlQWxsQnV0dG9ucygpLHRoaXMudXBkYXRlQnV0dG9ucyhlKSxyLndhdGVybWFya3x8ci5kaXNwbGF5bG9nbykpe3ZhciBmPXRoaXMuZ2V0TG9nbygpO3Iud2F0ZXJtYXJrJiYoZi5jbGFzc05hbWU9Zi5jbGFzc05hbWUrIiB3YXRlcm1hcmsiKSwidiI9PT1uLm1vZGViYXIub3JpZW50YXRpb24/dGhpcy5lbGVtZW50Lmluc2VydEJlZm9yZShmLHRoaXMuZWxlbWVudC5jaGlsZE5vZGVzWzBdKTp0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQoZiksdGhpcy5oYXNMb2dvPSEwfXRoaXMudXBkYXRlQWN0aXZlQnV0dG9uKCl9LHUudXBkYXRlQnV0dG9ucz1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuYnV0dG9ucz10LHRoaXMuYnV0dG9uRWxlbWVudHM9W10sdGhpcy5idXR0b25zTmFtZXM9W10sdGhpcy5idXR0b25zLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciByPWUuY3JlYXRlR3JvdXAoKTt0LmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBuPXQubmFtZTtpZighbil0aHJvdyBuZXcgRXJyb3IoIm11c3QgcHJvdmlkZSBidXR0b24gJ25hbWUnIGluIGJ1dHRvbiBjb25maWciKTtpZigtMSE9PWUuYnV0dG9uc05hbWVzLmluZGV4T2YobikpdGhyb3cgbmV3IEVycm9yKCJidXR0b24gbmFtZSAnIituKyInIGlzIHRha2VuIik7ZS5idXR0b25zTmFtZXMucHVzaChuKTt2YXIgaT1lLmNyZWF0ZUJ1dHRvbih0KTtlLmJ1dHRvbkVsZW1lbnRzLnB1c2goaSksci5hcHBlbmRDaGlsZChpKX0pKSxlLmVsZW1lbnQuYXBwZW5kQ2hpbGQocil9KSl9LHUuY3JlYXRlR3JvdXA9ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC5jbGFzc05hbWU9Im1vZGViYXItZ3JvdXAiLHR9LHUuY3JlYXRlQnV0dG9uPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMscj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7ci5zZXRBdHRyaWJ1dGUoInJlbCIsInRvb2x0aXAiKSxyLmNsYXNzTmFtZT0ibW9kZWJhci1idG4iO3ZhciBpPXQudGl0bGU7dm9pZCAwPT09aT9pPXQubmFtZToiZnVuY3Rpb24iPT10eXBlb2YgaSYmKGk9aSh0aGlzLmdyYXBoSW5mbykpLChpfHwwPT09aSkmJnIuc2V0QXR0cmlidXRlKCJkYXRhLXRpdGxlIixpKSx2b2lkIDAhPT10LmF0dHImJnIuc2V0QXR0cmlidXRlKCJkYXRhLWF0dHIiLHQuYXR0cik7dmFyIGE9dC52YWw7aWYodm9pZCAwIT09YSYmKCJmdW5jdGlvbiI9PXR5cGVvZiBhJiYoYT1hKHRoaXMuZ3JhcGhJbmZvKSksci5zZXRBdHRyaWJ1dGUoImRhdGEtdmFsIixhKSksImZ1bmN0aW9uIiE9dHlwZW9mIHQuY2xpY2spdGhyb3cgbmV3IEVycm9yKCJtdXN0IHByb3ZpZGUgYnV0dG9uICdjbGljaycgZnVuY3Rpb24gaW4gYnV0dG9uIGNvbmZpZyIpO3IuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLChmdW5jdGlvbihyKXt0LmNsaWNrKGUuZ3JhcGhJbmZvLHIpLGUudXBkYXRlQWN0aXZlQnV0dG9uKHIuY3VycmVudFRhcmdldCl9KSksci5zZXRBdHRyaWJ1dGUoImRhdGEtdG9nZ2xlIix0LnRvZ2dsZXx8ITEpLHQudG9nZ2xlJiZuLnNlbGVjdChyKS5jbGFzc2VkKCJhY3RpdmUiLCEwKTt2YXIgcz10Lmljb247cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHM/ci5hcHBlbmRDaGlsZChzKCkpOnIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVJY29uKHN8fG8ucXVlc3Rpb24pKSxyLnNldEF0dHJpYnV0ZSgiZGF0YS1ncmF2aXR5Iix0LmdyYXZpdHl8fCJuIikscn0sdS5jcmVhdGVJY29uPWZ1bmN0aW9uKHQpe3ZhciBlLHI9aSh0LmhlaWdodCk/TnVtYmVyKHQuaGVpZ2h0KTp0LmFzY2VudC10LmRlc2NlbnQsbj0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciO2lmKHQucGF0aCl7KGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKG4sInN2ZyIpKS5zZXRBdHRyaWJ1dGUoInZpZXdCb3giLFswLDAsdC53aWR0aCxyXS5qb2luKCIgIikpLGUuc2V0QXR0cmlidXRlKCJjbGFzcyIsImljb24iKTt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMobiwicGF0aCIpO2Euc2V0QXR0cmlidXRlKCJkIix0LnBhdGgpLHQudHJhbnNmb3JtP2Euc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLHQudHJhbnNmb3JtKTp2b2lkIDAhPT10LmFzY2VudCYmYS5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsIm1hdHJpeCgxIDAgMCAtMSAwICIrdC5hc2NlbnQrIikiKSxlLmFwcGVuZENoaWxkKGEpfXQuc3ZnJiYoZT1sLnBhcnNlRnJvbVN0cmluZyh0LnN2ZywiYXBwbGljYXRpb24veG1sIikuY2hpbGROb2Rlc1swXSk7cmV0dXJuIGUuc2V0QXR0cmlidXRlKCJoZWlnaHQiLCIxZW0iKSxlLnNldEF0dHJpYnV0ZSgid2lkdGgiLCIxZW0iKSxlfSx1LnVwZGF0ZUFjdGl2ZUJ1dHRvbj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmdyYXBoSW5mby5fZnVsbExheW91dCxyPXZvaWQgMCE9PXQ/dC5nZXRBdHRyaWJ1dGUoImRhdGEtYXR0ciIpOm51bGw7dGhpcy5idXR0b25FbGVtZW50cy5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgaT10LmdldEF0dHJpYnV0ZSgiZGF0YS12YWwiKXx8ITAsbz10LmdldEF0dHJpYnV0ZSgiZGF0YS1hdHRyIikscz0idHJ1ZSI9PT10LmdldEF0dHJpYnV0ZSgiZGF0YS10b2dnbGUiKSxsPW4uc2VsZWN0KHQpO2lmKHMpbz09PXImJmwuY2xhc3NlZCgiYWN0aXZlIiwhbC5jbGFzc2VkKCJhY3RpdmUiKSk7ZWxzZXt2YXIgYz1udWxsPT09bz9vOmEubmVzdGVkUHJvcGVydHkoZSxvKS5nZXQoKTtsLmNsYXNzZWQoImFjdGl2ZSIsYz09PWkpfX0pKX0sdS5oYXNCdXR0b25zPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuYnV0dG9ucztpZighZSlyZXR1cm4hMTtpZih0Lmxlbmd0aCE9PWUubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7KytyKXtpZih0W3JdLmxlbmd0aCE9PWVbcl0ubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgbj0wO248dFtyXS5sZW5ndGg7bisrKWlmKHRbcl1bbl0ubmFtZSE9PWVbcl1bbl0ubmFtZSlyZXR1cm4hMX1yZXR1cm4hMH0sdS5nZXRMb2dvPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jcmVhdGVHcm91cCgpLGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO3JldHVybiBlLmhyZWY9Imh0dHBzOi8vcGxvdGx5LmNvbS8iLGUudGFyZ2V0PSJfYmxhbmsiLGUuc2V0QXR0cmlidXRlKCJkYXRhLXRpdGxlIixhLl8odGhpcy5ncmFwaEluZm8sIlByb2R1Y2VkIHdpdGggUGxvdGx5LmpzIikrIiAodiIrcysiKSIpLGUuY2xhc3NOYW1lPSJtb2RlYmFyLWJ0biBwbG90bHlqc2ljb24gbW9kZWJhci1idG4tLWxvZ28iLGUuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVJY29uKG8ubmV3cGxvdGx5bG9nbykpLHQuYXBwZW5kQ2hpbGQoZSksdH0sdS5yZW1vdmVBbGxCdXR0b25zPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmVsZW1lbnQuZmlyc3RDaGlsZDspdGhpcy5lbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuZWxlbWVudC5maXJzdENoaWxkKTt0aGlzLmhhc0xvZ289ITF9LHUuZGVzdHJveT1mdW5jdGlvbigpe2EucmVtb3ZlRWxlbWVudCh0aGlzLmNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCIubW9kZWJhciIpKSxhLmRlbGV0ZVJlbGF0ZWRTdHlsZVJ1bGUodGhpcy5fdWlkKX0sZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5fZnVsbExheW91dCxpPW5ldyBjKHtncmFwaEluZm86dCxjb250YWluZXI6ci5fbW9kZWJhcmRpdi5ub2RlKCksYnV0dG9uczplfSk7cmV0dXJuIHIuX3ByaXZhdGVwbG90JiZuLnNlbGVjdChpLmVsZW1lbnQpLmFwcGVuZCgic3BhbiIpLmNsYXNzZWQoImJhZGdlLXByaXZhdGUgZmxvYXQtLWxlZnQiLCEwKS50ZXh0KCJQUklWQVRFIiksaX19LHsiLi4vLi4vZm9udHMvcGxvdGljb24iOjQ5NCwiLi4vLi4vbGliIjo1MTUsIi4uLy4uL3ZlcnNpb24iOjExMzIsIkBwbG90bHkvZDMiOjU4LCJmYXN0LWlzbnVtZXJpYyI6MTkwfV0sNDMzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyIpLGk9dCgiLi4vY29sb3IvYXR0cmlidXRlcyIpLGE9KDAsdCgiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpLnRlbXBsYXRlZEFycmF5KSgiYnV0dG9uIix7dmlzaWJsZTp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToicGxvdCJ9LHN0ZXA6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbIm1vbnRoIiwieWVhciIsImRheSIsImhvdXIiLCJtaW51dGUiLCJzZWNvbmQiLCJhbGwiXSxkZmx0OiJtb250aCIsZWRpdFR5cGU6InBsb3QifSxzdGVwbW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiYmFja3dhcmQiLCJ0b2RhdGUiXSxkZmx0OiJiYWNrd2FyZCIsZWRpdFR5cGU6InBsb3QifSxjb3VudDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjEsZWRpdFR5cGU6InBsb3QifSxsYWJlbDp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToicGxvdCJ9LGVkaXRUeXBlOiJwbG90In0pO2UuZXhwb3J0cz17dmlzaWJsZTp7dmFsVHlwZToiYm9vbGVhbiIsZWRpdFR5cGU6InBsb3QifSxidXR0b25zOmEseDp7dmFsVHlwZToibnVtYmVyIixtaW46LTIsbWF4OjMsZWRpdFR5cGU6InBsb3QifSx4YW5jaG9yOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJhdXRvIiwibGVmdCIsImNlbnRlciIsInJpZ2h0Il0sZGZsdDoibGVmdCIsZWRpdFR5cGU6InBsb3QifSx5Ont2YWxUeXBlOiJudW1iZXIiLG1pbjotMixtYXg6MyxlZGl0VHlwZToicGxvdCJ9LHlhbmNob3I6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImF1dG8iLCJ0b3AiLCJtaWRkbGUiLCJib3R0b20iXSxkZmx0OiJib3R0b20iLGVkaXRUeXBlOiJwbG90In0sZm9udDpuKHtlZGl0VHlwZToicGxvdCJ9KSxiZ2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDppLmxpZ2h0TGluZSxlZGl0VHlwZToicGxvdCJ9LGFjdGl2ZWNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6InBsb3QifSxib3JkZXJjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6aS5kZWZhdWx0TGluZSxlZGl0VHlwZToicGxvdCJ9LGJvcmRlcndpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MCxlZGl0VHlwZToicGxvdCJ9LGVkaXRUeXBlOiJwbG90In19LHsiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6NTU1LCIuLi8uLi9wbG90cy9mb250X2F0dHJpYnV0ZXMiOjU5NCwiLi4vY29sb3IvYXR0cmlidXRlcyI6MzY2fV0sNDM0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17eVBhZDouMDIsbWluQnV0dG9uV2lkdGg6MzAscng6MyxyeTozLGxpZ2h0QW1vdW50OjI1LGRhcmtBbW91bnQ6MTB9fSx7fV0sNDM1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vY29sb3IiKSxhPXQoIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKSxvPXQoIi4uLy4uL3Bsb3RzL2FycmF5X2NvbnRhaW5lcl9kZWZhdWx0cyIpLHM9dCgiLi9hdHRyaWJ1dGVzIiksbD10KCIuL2NvbnN0YW50cyIpO2Z1bmN0aW9uIGModCxlLHIsaSl7dmFyIGE9aS5jYWxlbmRhcjtmdW5jdGlvbiBvKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxzLmJ1dHRvbnMscixpKX1pZihvKCJ2aXNpYmxlIikpe3ZhciBsPW8oInN0ZXAiKTsiYWxsIiE9PWwmJighYXx8ImdyZWdvcmlhbiI9PT1hfHwibW9udGgiIT09bCYmInllYXIiIT09bD9vKCJzdGVwbW9kZSIpOmUuc3RlcG1vZGU9ImJhY2t3YXJkIixvKCJjb3VudCIpKSxvKCJsYWJlbCIpfX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsdSxmKXt2YXIgaD10LnJhbmdlc2VsZWN0b3J8fHt9LHA9YS5uZXdDb250YWluZXIoZSwicmFuZ2VzZWxlY3RvciIpO2Z1bmN0aW9uIGQodCxlKXtyZXR1cm4gbi5jb2VyY2UoaCxwLHMsdCxlKX1pZihkKCJ2aXNpYmxlIixvKGgscCx7bmFtZToiYnV0dG9ucyIsaGFuZGxlSXRlbURlZmF1bHRzOmMsY2FsZW5kYXI6Zn0pLmxlbmd0aD4wKSl7dmFyIG09ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj1yLmZpbHRlcigoZnVuY3Rpb24ocil7cmV0dXJuIGVbcl0uYW5jaG9yPT09dC5faWR9KSksaT0wLGE9MDthPG4ubGVuZ3RoO2ErKyl7dmFyIG89ZVtuW2FdXS5kb21haW47byYmKGk9TWF0aC5tYXgob1sxXSxpKSl9cmV0dXJuW3QuZG9tYWluWzBdLGkrbC55UGFkXX0oZSxyLHUpO2QoIngiLG1bMF0pLGQoInkiLG1bMV0pLG4ubm9uZU9yQWxsKHQsZSxbIngiLCJ5Il0pLGQoInhhbmNob3IiKSxkKCJ5YW5jaG9yIiksbi5jb2VyY2VGb250KGQsImZvbnQiLHIuZm9udCk7dmFyIGc9ZCgiYmdjb2xvciIpO2QoImFjdGl2ZWNvbG9yIixpLmNvbnRyYXN0KGcsbC5saWdodEFtb3VudCxsLmRhcmtBbW91bnQpKSxkKCJib3JkZXJjb2xvciIpLGQoImJvcmRlcndpZHRoIil9fX0seyIuLi8uLi9saWIiOjUxNSwiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6NTU1LCIuLi8uLi9wbG90cy9hcnJheV9jb250YWluZXJfZGVmYXVsdHMiOjU2MSwiLi4vY29sb3IiOjM2NywiLi9hdHRyaWJ1dGVzIjo0MzMsIi4vY29uc3RhbnRzIjo0MzR9XSw0MzY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vLi4vcmVnaXN0cnkiKSxhPXQoIi4uLy4uL3Bsb3RzL3Bsb3RzIiksbz10KCIuLi9jb2xvciIpLHM9dCgiLi4vZHJhd2luZyIpLGw9dCgiLi4vLi4vbGliIiksYz1sLnN0clRyYW5zbGF0ZSx1PXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpLGY9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIiksaD10KCIuLi8uLi9jb25zdGFudHMvYWxpZ25tZW50IikscD1oLkxJTkVfU1BBQ0lORyxkPWguRlJPTV9UTCxtPWguRlJPTV9CUixnPXQoIi4vY29uc3RhbnRzIiksdj10KCIuL2dldF91cGRhdGVfb2JqZWN0Iik7ZnVuY3Rpb24geSh0KXtyZXR1cm4gdC5faWR9ZnVuY3Rpb24geCh0LGUscil7dmFyIG49bC5lbnN1cmVTaW5nbGUodCwicmVjdCIsInNlbGVjdG9yLXJlY3QiLChmdW5jdGlvbih0KXt0LmF0dHIoInNoYXBlLXJlbmRlcmluZyIsImNyaXNwRWRnZXMiKX0pKTtuLmF0dHIoe3J4Omcucngscnk6Zy5yeX0pLG4uY2FsbChvLnN0cm9rZSxlLmJvcmRlcmNvbG9yKS5jYWxsKG8uZmlsbCxmdW5jdGlvbih0LGUpe3JldHVybiBlLl9pc0FjdGl2ZXx8ZS5faXNIb3ZlcmVkP3QuYWN0aXZlY29sb3I6dC5iZ2NvbG9yfShlLHIpKS5zdHlsZSgic3Ryb2tlLXdpZHRoIixlLmJvcmRlcndpZHRoKyJweCIpfWZ1bmN0aW9uIGIodCxlLHIsbil7bC5lbnN1cmVTaW5nbGUodCwidGV4dCIsInNlbGVjdG9yLXRleHQiLChmdW5jdGlvbih0KXt0LmF0dHIoInRleHQtYW5jaG9yIiwibWlkZGxlIil9KSkuY2FsbChzLmZvbnQsZS5mb250KS50ZXh0KGZ1bmN0aW9uKHQsZSl7aWYodC5sYWJlbClyZXR1cm4gZT9sLnRlbXBsYXRlU3RyaW5nKHQubGFiZWwsZSk6dC5sYWJlbDtyZXR1cm4iYWxsIj09PXQuc3RlcD8iYWxsIjp0LmNvdW50K3Quc3RlcC5jaGFyQXQoMCl9KHIsbi5fZnVsbExheW91dC5fbWV0YSkpLmNhbGwoKGZ1bmN0aW9uKHQpe3UuY29udmVydFRvVHNwYW5zKHQsbil9KSl9ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQuX2luZm9sYXllci5zZWxlY3RBbGwoIi5yYW5nZXNlbGVjdG9yIikuZGF0YShmdW5jdGlvbih0KXtmb3IodmFyIGU9Zi5saXN0KHQsIngiLCEwKSxyPVtdLG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIGk9ZVtuXTtpLnJhbmdlc2VsZWN0b3ImJmkucmFuZ2VzZWxlY3Rvci52aXNpYmxlJiZyLnB1c2goaSl9cmV0dXJuIHJ9KHQpLHkpO2UuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJyYW5nZXNlbGVjdG9yIiwhMCksZS5leGl0KCkucmVtb3ZlKCksZS5zdHlsZSh7Y3Vyc29yOiJwb2ludGVyIiwicG9pbnRlci1ldmVudHMiOiJhbGwifSksZS5lYWNoKChmdW5jdGlvbihlKXt2YXIgcj1uLnNlbGVjdCh0aGlzKSxvPWUsZj1vLnJhbmdlc2VsZWN0b3IsaD1yLnNlbGVjdEFsbCgiZy5idXR0b24iKS5kYXRhKGwuZmlsdGVyVmlzaWJsZShmLmJ1dHRvbnMpKTtoLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgiYnV0dG9uIiwhMCksaC5leGl0KCkucmVtb3ZlKCksaC5lYWNoKChmdW5jdGlvbihlKXt2YXIgcj1uLnNlbGVjdCh0aGlzKSxhPXYobyxlKTtlLl9pc0FjdGl2ZT1mdW5jdGlvbih0LGUscil7aWYoImFsbCI9PT1lLnN0ZXApcmV0dXJuITA9PT10LmF1dG9yYW5nZTt2YXIgbj1PYmplY3Qua2V5cyhyKTtyZXR1cm4gdC5yYW5nZVswXT09PXJbblswXV0mJnQucmFuZ2VbMV09PT1yW25bMV1dfShvLGUsYSksci5jYWxsKHgsZixlKSxyLmNhbGwoYixmLGUsdCksci5vbigiY2xpY2siLChmdW5jdGlvbigpe3QuX2RyYWdnZWR8fGkuY2FsbCgiX2d1aVJlbGF5b3V0Iix0LGEpfSkpLHIub24oIm1vdXNlb3ZlciIsKGZ1bmN0aW9uKCl7ZS5faXNIb3ZlcmVkPSEwLHIuY2FsbCh4LGYsZSl9KSksci5vbigibW91c2VvdXQiLChmdW5jdGlvbigpe2UuX2lzSG92ZXJlZD0hMSxyLmNhbGwoeCxmLGUpfSkpfSkpLGZ1bmN0aW9uKHQsZSxyLGksbyl7dmFyIGY9MCxoPTAsdj1yLmJvcmRlcndpZHRoO2UuZWFjaCgoZnVuY3Rpb24oKXt2YXIgdD1uLnNlbGVjdCh0aGlzKS5zZWxlY3QoIi5zZWxlY3Rvci10ZXh0IiksZT1yLmZvbnQuc2l6ZSpwLGk9TWF0aC5tYXgoZSp1LmxpbmVDb3VudCh0KSwxNikrMztoPU1hdGgubWF4KGgsaSl9KSksZS5lYWNoKChmdW5jdGlvbigpe3ZhciB0PW4uc2VsZWN0KHRoaXMpLGU9dC5zZWxlY3QoIi5zZWxlY3Rvci1yZWN0IiksaT10LnNlbGVjdCgiLnNlbGVjdG9yLXRleHQiKSxhPWkubm9kZSgpJiZzLmJCb3goaS5ub2RlKCkpLndpZHRoLG89ci5mb250LnNpemUqcCxsPXUubGluZUNvdW50KGkpLGQ9TWF0aC5tYXgoYSsxMCxnLm1pbkJ1dHRvbldpZHRoKTt0LmF0dHIoInRyYW5zZm9ybSIsYyh2K2YsdikpLGUuYXR0cih7eDowLHk6MCx3aWR0aDpkLGhlaWdodDpofSksdS5wb3NpdGlvblRleHQoaSxkLzIsaC8yLShsLTEpKm8vMiszKSxmKz1kKzV9KSk7dmFyIHk9dC5fZnVsbExheW91dC5fc2l6ZSx4PXkubCt5Lncqci54LGI9eS50K3kuaCooMS1yLnkpLF89ImxlZnQiO2wuaXNSaWdodEFuY2hvcihyKSYmKHgtPWYsXz0icmlnaHQiKTtsLmlzQ2VudGVyQW5jaG9yKHIpJiYoeC09Zi8yLF89ImNlbnRlciIpO3ZhciB3PSJ0b3AiO2wuaXNCb3R0b21BbmNob3IocikmJihiLT1oLHc9ImJvdHRvbSIpO2wuaXNNaWRkbGVBbmNob3IocikmJihiLT1oLzIsdz0ibWlkZGxlIik7Zj1NYXRoLmNlaWwoZiksaD1NYXRoLmNlaWwoaCkseD1NYXRoLnJvdW5kKHgpLGI9TWF0aC5yb3VuZChiKSxhLmF1dG9NYXJnaW4odCxpKyItcmFuZ2Utc2VsZWN0b3IiLHt4OnIueCx5OnIueSxsOmYqZFtfXSxyOmYqbVtfXSxiOmgqbVt3XSx0OmgqZFt3XX0pLG8uYXR0cigidHJhbnNmb3JtIixjKHgsYikpfSh0LGgsZixvLl9uYW1lLHIpfSkpfX0seyIuLi8uLi9jb25zdGFudHMvYWxpZ25tZW50Ijo0ODMsIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiOjU0MSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIjo1NzAsIi4uLy4uL3Bsb3RzL3Bsb3RzIjo2MjgsIi4uLy4uL3JlZ2lzdHJ5Ijo2NDcsIi4uL2NvbG9yIjozNjcsIi4uL2RyYXdpbmciOjM4OSwiLi9jb25zdGFudHMiOjQzNCwiLi9nZXRfdXBkYXRlX29iamVjdCI6NDM3LCJAcGxvdGx5L2QzIjo1OH1dLDQzNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMy10aW1lIiksaT10KCIuLi8uLi9saWIiKS50aXRsZUNhc2U7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5fbmFtZSxhPXt9O2lmKCJhbGwiPT09ZS5zdGVwKWFbcisiLmF1dG9yYW5nZSJdPSEwO2Vsc2V7dmFyIG89ZnVuY3Rpb24odCxlKXt2YXIgcixhPXQucmFuZ2Usbz1uZXcgRGF0ZSh0LnIybChhWzFdKSkscz1lLnN0ZXAsbD1uWyJ1dGMiK2kocyldLGM9ZS5jb3VudDtzd2l0Y2goZS5zdGVwbW9kZSl7Y2FzZSJiYWNrd2FyZCI6cj10LmwycigrbC5vZmZzZXQobywtYykpO2JyZWFrO2Nhc2UidG9kYXRlIjp2YXIgdT1sLm9mZnNldChvLC1jKTtyPXQubDJyKCtsLmNlaWwodSkpfXZhciBmPWFbMV07cmV0dXJuW3IsZl19KHQsZSk7YVtyKyIucmFuZ2VbMF0iXT1vWzBdLGFbcisiLnJhbmdlWzFdIl09b1sxXX1yZXR1cm4gYX19LHsiLi4vLi4vbGliIjo1MTUsImQzLXRpbWUiOjEyMn1dLDQzODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e21vZHVsZVR5cGU6ImNvbXBvbmVudCIsbmFtZToicmFuZ2VzZWxlY3RvciIsc2NoZW1hOntzdWJwbG90czp7eGF4aXM6e3Jhbmdlc2VsZWN0b3I6dCgiLi9hdHRyaWJ1dGVzIil9fX0sbGF5b3V0QXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxoYW5kbGVEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksZHJhdzp0KCIuL2RyYXciKX19LHsiLi9hdHRyaWJ1dGVzIjo0MzMsIi4vZGVmYXVsdHMiOjQzNSwiLi9kcmF3Ijo0MzZ9XSw0Mzk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vY29sb3IvYXR0cmlidXRlcyIpO2UuZXhwb3J0cz17Ymdjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6bi5iYWNrZ3JvdW5kLGVkaXRUeXBlOiJwbG90In0sYm9yZGVyY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0Om4uZGVmYXVsdExpbmUsZWRpdFR5cGU6InBsb3QifSxib3JkZXJ3aWR0aDp7dmFsVHlwZToiaW50ZWdlciIsZGZsdDowLG1pbjowLGVkaXRUeXBlOiJwbG90In0sYXV0b3JhbmdlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJjYWxjIixpbXBsaWVkRWRpdHM6eyJyYW5nZVswXSI6dm9pZCAwLCJyYW5nZVsxXSI6dm9pZCAwfX0scmFuZ2U6e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGl0ZW1zOlt7dmFsVHlwZToiYW55IixlZGl0VHlwZToiY2FsYyIsaW1wbGllZEVkaXRzOnsiXmF1dG9yYW5nZSI6ITF9fSx7dmFsVHlwZToiYW55IixlZGl0VHlwZToiY2FsYyIsaW1wbGllZEVkaXRzOnsiXmF1dG9yYW5nZSI6ITF9fV0sZWRpdFR5cGU6ImNhbGMiLGltcGxpZWRFZGl0czp7YXV0b3JhbmdlOiExfX0sdGhpY2tuZXNzOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6LjE1LG1pbjowLG1heDoxLGVkaXRUeXBlOiJwbG90In0sdmlzaWJsZTp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToiY2FsYyJ9LGVkaXRUeXBlOiJjYWxjIn19LHsiLi4vY29sb3IvYXR0cmlidXRlcyI6MzY2fV0sNDQwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2lkcyIpLmxpc3QsaT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXV0b3JhbmdlIikuZ2V0QXV0b1JhbmdlLGE9dCgiLi9jb25zdGFudHMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPW4odCwieCIsITApLHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG89ZVtyXSxzPW9bYS5uYW1lXTtzJiZzLnZpc2libGUmJnMuYXV0b3JhbmdlJiYocy5faW5wdXQuYXV0b3JhbmdlPSEwLHMuX2lucHV0LnJhbmdlPXMucmFuZ2U9aSh0LG8pKX19fSx7Ii4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9hdXRvcmFuZ2UiOjU2NSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIjo1NzAsIi4vY29uc3RhbnRzIjo0NDF9XSw0NDE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtuYW1lOiJyYW5nZXNsaWRlciIsY29udGFpbmVyQ2xhc3NOYW1lOiJyYW5nZXNsaWRlci1jb250YWluZXIiLGJnQ2xhc3NOYW1lOiJyYW5nZXNsaWRlci1iZyIscmFuZ2VQbG90Q2xhc3NOYW1lOiJyYW5nZXNsaWRlci1yYW5nZXBsb3QiLG1hc2tNaW5DbGFzc05hbWU6InJhbmdlc2xpZGVyLW1hc2stbWluIixtYXNrTWF4Q2xhc3NOYW1lOiJyYW5nZXNsaWRlci1tYXNrLW1heCIsc2xpZGVCb3hDbGFzc05hbWU6InJhbmdlc2xpZGVyLXNsaWRlYm94IixncmFiYmVyTWluQ2xhc3NOYW1lOiJyYW5nZXNsaWRlci1ncmFiYmVyLW1pbiIsZ3JhYkFyZWFNaW5DbGFzc05hbWU6InJhbmdlc2xpZGVyLWdyYWJhcmVhLW1pbiIsaGFuZGxlTWluQ2xhc3NOYW1lOiJyYW5nZXNsaWRlci1oYW5kbGUtbWluIixncmFiYmVyTWF4Q2xhc3NOYW1lOiJyYW5nZXNsaWRlci1ncmFiYmVyLW1heCIsZ3JhYkFyZWFNYXhDbGFzc05hbWU6InJhbmdlc2xpZGVyLWdyYWJhcmVhLW1heCIsaGFuZGxlTWF4Q2xhc3NOYW1lOiJyYW5nZXNsaWRlci1oYW5kbGUtbWF4IixtYXNrTWluT3BwQXhpc0NsYXNzTmFtZToicmFuZ2VzbGlkZXItbWFzay1taW4tb3BwLWF4aXMiLG1hc2tNYXhPcHBBeGlzQ2xhc3NOYW1lOiJyYW5nZXNsaWRlci1tYXNrLW1heC1vcHAtYXhpcyIsbWFza0NvbG9yOiJyZ2JhKDAsMCwwLDAuNCkiLG1hc2tPcHBBeGlzQ29sb3I6InJnYmEoMCwwLDAsMC4yKSIsc2xpZGVCb3hGaWxsOiJ0cmFuc3BhcmVudCIsc2xpZGVCb3hDdXJzb3I6ImV3LXJlc2l6ZSIsZ3JhYkFyZWFGaWxsOiJ0cmFuc3BhcmVudCIsZ3JhYkFyZWFDdXJzb3I6ImNvbC1yZXNpemUiLGdyYWJBcmVhV2lkdGg6MTAsaGFuZGxlV2lkdGg6NCxoYW5kbGVSYWRpdXM6MSxoYW5kbGVTdHJva2VXaWR0aDoxLGV4dHJhUGFkOjE1fX0se31dLDQ0MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKSxhPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2lkcyIpLG89dCgiLi9hdHRyaWJ1dGVzIikscz10KCIuL29wcGF4aXNfYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIGw9dFtyXSxjPWVbcl07aWYobC5yYW5nZXNsaWRlcnx8ZS5fcmVxdWVzdFJhbmdlc2xpZGVyW2MuX2lkXSl7bi5pc1BsYWluT2JqZWN0KGwucmFuZ2VzbGlkZXIpfHwobC5yYW5nZXNsaWRlcj17fSk7dmFyIHUsZixoPWwucmFuZ2VzbGlkZXIscD1pLm5ld0NvbnRhaW5lcihjLCJyYW5nZXNsaWRlciIpO2lmKF8oInZpc2libGUiKSl7XygiYmdjb2xvciIsZS5wbG90X2JnY29sb3IpLF8oImJvcmRlcmNvbG9yIiksXygiYm9yZGVyd2lkdGgiKSxfKCJ0aGlja25lc3MiKSxfKCJhdXRvcmFuZ2UiLCFjLmlzVmFsaWRSYW5nZShoLnJhbmdlKSksXygicmFuZ2UiKTt2YXIgZD1lLl9zdWJwbG90cztpZihkKWZvcih2YXIgbT1kLmNhcnRlc2lhbi5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnN1YnN0cigwLHQuaW5kZXhPZigieSIpKT09PWEubmFtZTJpZChyKX0pKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnN1YnN0cih0LmluZGV4T2YoInkiKSx0Lmxlbmd0aCl9KSksZz1uLnNpbXBsZU1hcChtLGEuaWQybmFtZSksdj0wO3Y8Zy5sZW5ndGg7disrKXt2YXIgeT1nW3ZdO3U9aFt5XXx8e30sZj1pLm5ld0NvbnRhaW5lcihwLHksInlheGlzIik7dmFyIHgsYj1lW3ldO3UucmFuZ2UmJmIuaXNWYWxpZFJhbmdlKHUucmFuZ2UpJiYoeD0iZml4ZWQiKSwibWF0Y2giIT09dygicmFuZ2Vtb2RlIix4KSYmdygicmFuZ2UiLGIucmFuZ2Uuc2xpY2UoKSl9cC5faW5wdXQ9aH19ZnVuY3Rpb24gXyh0LGUpe3JldHVybiBuLmNvZXJjZShoLHAsbyx0LGUpfWZ1bmN0aW9uIHcodCxlKXtyZXR1cm4gbi5jb2VyY2UodSxmLHMsdCxlKX19fSx7Ii4uLy4uL2xpYiI6NTE1LCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIjo1NTUsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2lkcyI6NTcwLCIuL2F0dHJpYnV0ZXMiOjQzOSwiLi9vcHBheGlzX2F0dHJpYnV0ZXMiOjQ0Nn1dLDQ0MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9yZWdpc3RyeSIpLGE9dCgiLi4vLi4vcGxvdHMvcGxvdHMiKSxvPXQoIi4uLy4uL2xpYiIpLHM9by5zdHJUcmFuc2xhdGUsbD10KCIuLi9kcmF3aW5nIiksYz10KCIuLi9jb2xvciIpLHU9dCgiLi4vdGl0bGVzIiksZj10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iKSxoPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2lkcyIpLHA9dCgiLi4vZHJhZ2VsZW1lbnQiKSxkPXQoIi4uLy4uL2xpYi9zZXRjdXJzb3IiKSxtPXQoIi4vY29uc3RhbnRzIik7ZnVuY3Rpb24gZyh0LGUscixuKXt2YXIgaT1vLmVuc3VyZVNpbmdsZSh0LCJyZWN0IixtLmJnQ2xhc3NOYW1lLChmdW5jdGlvbih0KXt0LmF0dHIoe3g6MCx5OjAsInNoYXBlLXJlbmRlcmluZyI6ImNyaXNwRWRnZXMifSl9KSksYT1uLmJvcmRlcndpZHRoJTI9PTA/bi5ib3JkZXJ3aWR0aDpuLmJvcmRlcndpZHRoLTEsYz0tbi5fb2Zmc2V0U2hpZnQsdT1sLmNyaXNwUm91bmQoZSxuLmJvcmRlcndpZHRoKTtpLmF0dHIoe3dpZHRoOm4uX3dpZHRoK2EsaGVpZ2h0Om4uX2hlaWdodCthLHRyYW5zZm9ybTpzKGMsYyksZmlsbDpuLmJnY29sb3Isc3Ryb2tlOm4uYm9yZGVyY29sb3IsInN0cm9rZS13aWR0aCI6dX0pfWZ1bmN0aW9uIHYodCxlLHIsbil7dmFyIGk9ZS5fZnVsbExheW91dDtvLmVuc3VyZVNpbmdsZUJ5SWQoaS5fdG9wZGVmcywiY2xpcFBhdGgiLG4uX2NsaXBJZCwoZnVuY3Rpb24odCl7dC5hcHBlbmQoInJlY3QiKS5hdHRyKHt4OjAseTowfSl9KSkuc2VsZWN0KCJyZWN0IikuYXR0cih7d2lkdGg6bi5fd2lkdGgsaGVpZ2h0Om4uX2hlaWdodH0pfWZ1bmN0aW9uIHkodCxlLHIsaSl7dmFyIHMsYz1lLmNhbGNkYXRhLHU9dC5zZWxlY3RBbGwoImcuIittLnJhbmdlUGxvdENsYXNzTmFtZSkuZGF0YShyLl9zdWJwbG90c1dpdGgsby5pZGVudGl0eSk7dS5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIiwoZnVuY3Rpb24odCl7cmV0dXJuIG0ucmFuZ2VQbG90Q2xhc3NOYW1lKyIgIit0fSkpLmNhbGwobC5zZXRDbGlwVXJsLGkuX2NsaXBJZCxlKSx1Lm9yZGVyKCksdS5leGl0KCkucmVtb3ZlKCksdS5lYWNoKChmdW5jdGlvbih0LG8pe3ZhciBsPW4uc2VsZWN0KHRoaXMpLHU9MD09PW8scD1oLmdldEZyb21JZChlLHQsInkiKSxkPXAuX25hbWUsbT1pW2RdLGc9e2RhdGE6W10sbGF5b3V0Ont4YXhpczp7dHlwZTpyLnR5cGUsZG9tYWluOlswLDFdLHJhbmdlOmkucmFuZ2Uuc2xpY2UoKSxjYWxlbmRhcjpyLmNhbGVuZGFyfSx3aWR0aDppLl93aWR0aCxoZWlnaHQ6aS5faGVpZ2h0LG1hcmdpbjp7dDowLGI6MCxsOjAscjowfX0sX2NvbnRleHQ6ZS5fY29udGV4dH07ci5yYW5nZWJyZWFrcyYmKGcubGF5b3V0LnhheGlzLnJhbmdlYnJlYWtzPXIucmFuZ2VicmVha3MpLGcubGF5b3V0W2RdPXt0eXBlOnAudHlwZSxkb21haW46WzAsMV0scmFuZ2U6Im1hdGNoIiE9PW0ucmFuZ2Vtb2RlP20ucmFuZ2Uuc2xpY2UoKTpwLnJhbmdlLnNsaWNlKCksY2FsZW5kYXI6cC5jYWxlbmRhcn0scC5yYW5nZWJyZWFrcyYmKGcubGF5b3V0W2RdLnJhbmdlYnJlYWtzPXAucmFuZ2VicmVha3MpLGEuc3VwcGx5RGVmYXVsdHMoZyk7dmFyIHY9Zy5fZnVsbExheW91dC54YXhpcyx5PWcuX2Z1bGxMYXlvdXRbZF07di5jbGVhckNhbGMoKSx2LnNldFNjYWxlKCkseS5jbGVhckNhbGMoKSx5LnNldFNjYWxlKCk7dmFyIHg9e2lkOnQscGxvdGdyb3VwOmwseGF4aXM6dix5YXhpczp5LGlzUmFuZ2VQbG90OiEwfTt1P3M9eDooeC5tYWlucGxvdD0ieHkiLHgubWFpbnBsb3RpbmZvPXMpLGYucmFuZ2VQbG90KGUseCxmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1bXSxuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBpPXRbbl0sYT1pWzBdLnRyYWNlO2EueGF4aXMrYS55YXhpcz09PWUmJnIucHVzaChpKX1yZXR1cm4gcn0oYyx0KSl9KSl9ZnVuY3Rpb24geCh0LGUscixuLGkpeyhvLmVuc3VyZVNpbmdsZSh0LCJyZWN0IixtLm1hc2tNaW5DbGFzc05hbWUsKGZ1bmN0aW9uKHQpe3QuYXR0cih7eDowLHk6MCwic2hhcGUtcmVuZGVyaW5nIjoiY3Jpc3BFZGdlcyJ9KX0pKS5hdHRyKCJoZWlnaHQiLG4uX2hlaWdodCkuY2FsbChjLmZpbGwsbS5tYXNrQ29sb3IpLG8uZW5zdXJlU2luZ2xlKHQsInJlY3QiLG0ubWFza01heENsYXNzTmFtZSwoZnVuY3Rpb24odCl7dC5hdHRyKHt5OjAsInNoYXBlLXJlbmRlcmluZyI6ImNyaXNwRWRnZXMifSl9KSkuYXR0cigiaGVpZ2h0IixuLl9oZWlnaHQpLmNhbGwoYy5maWxsLG0ubWFza0NvbG9yKSwibWF0Y2giIT09aS5yYW5nZW1vZGUpJiYoby5lbnN1cmVTaW5nbGUodCwicmVjdCIsbS5tYXNrTWluT3BwQXhpc0NsYXNzTmFtZSwoZnVuY3Rpb24odCl7dC5hdHRyKHt5OjAsInNoYXBlLXJlbmRlcmluZyI6ImNyaXNwRWRnZXMifSl9KSkuYXR0cigid2lkdGgiLG4uX3dpZHRoKS5jYWxsKGMuZmlsbCxtLm1hc2tPcHBBeGlzQ29sb3IpLG8uZW5zdXJlU2luZ2xlKHQsInJlY3QiLG0ubWFza01heE9wcEF4aXNDbGFzc05hbWUsKGZ1bmN0aW9uKHQpe3QuYXR0cih7eTowLCJzaGFwZS1yZW5kZXJpbmciOiJjcmlzcEVkZ2VzIn0pfSkpLmF0dHIoIndpZHRoIixuLl93aWR0aCkuc3R5bGUoImJvcmRlci10b3AiLG0ubWFza09wcEJvcmRlcikuY2FsbChjLmZpbGwsbS5tYXNrT3BwQXhpc0NvbG9yKSl9ZnVuY3Rpb24gYih0LGUscixuKXtlLl9jb250ZXh0LnN0YXRpY1Bsb3R8fG8uZW5zdXJlU2luZ2xlKHQsInJlY3QiLG0uc2xpZGVCb3hDbGFzc05hbWUsKGZ1bmN0aW9uKHQpe3QuYXR0cih7eTowLGN1cnNvcjptLnNsaWRlQm94Q3Vyc29yLCJzaGFwZS1yZW5kZXJpbmciOiJjcmlzcEVkZ2VzIn0pfSkpLmF0dHIoe2hlaWdodDpuLl9oZWlnaHQsZmlsbDptLnNsaWRlQm94RmlsbH0pfWZ1bmN0aW9uIF8odCxlLHIsbil7dmFyIGk9by5lbnN1cmVTaW5nbGUodCwiZyIsbS5ncmFiYmVyTWluQ2xhc3NOYW1lKSxhPW8uZW5zdXJlU2luZ2xlKHQsImciLG0uZ3JhYmJlck1heENsYXNzTmFtZSkscz17eDowLHdpZHRoOm0uaGFuZGxlV2lkdGgscng6bS5oYW5kbGVSYWRpdXMsZmlsbDpjLmJhY2tncm91bmQsc3Ryb2tlOmMuZGVmYXVsdExpbmUsInN0cm9rZS13aWR0aCI6bS5oYW5kbGVTdHJva2VXaWR0aCwic2hhcGUtcmVuZGVyaW5nIjoiY3Jpc3BFZGdlcyJ9LGw9e3k6TWF0aC5yb3VuZChuLl9oZWlnaHQvNCksaGVpZ2h0Ok1hdGgucm91bmQobi5faGVpZ2h0LzIpfTtvLmVuc3VyZVNpbmdsZShpLCJyZWN0IixtLmhhbmRsZU1pbkNsYXNzTmFtZSwoZnVuY3Rpb24odCl7dC5hdHRyKHMpfSkpLmF0dHIobCksby5lbnN1cmVTaW5nbGUoYSwicmVjdCIsbS5oYW5kbGVNYXhDbGFzc05hbWUsKGZ1bmN0aW9uKHQpe3QuYXR0cihzKX0pKS5hdHRyKGwpO3ZhciB1PXt3aWR0aDptLmdyYWJBcmVhV2lkdGgseDowLHk6MCxmaWxsOm0uZ3JhYkFyZWFGaWxsLGN1cnNvcjplLl9jb250ZXh0LnN0YXRpY1Bsb3Q/dm9pZCAwOm0uZ3JhYkFyZWFDdXJzb3J9O28uZW5zdXJlU2luZ2xlKGksInJlY3QiLG0uZ3JhYkFyZWFNaW5DbGFzc05hbWUsKGZ1bmN0aW9uKHQpe3QuYXR0cih1KX0pKS5hdHRyKCJoZWlnaHQiLG4uX2hlaWdodCksby5lbnN1cmVTaW5nbGUoYSwicmVjdCIsbS5ncmFiQXJlYU1heENsYXNzTmFtZSwoZnVuY3Rpb24odCl7dC5hdHRyKHUpfSkpLmF0dHIoImhlaWdodCIsbi5faGVpZ2h0KX1lLmV4cG9ydHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQuX2Z1bGxMYXlvdXQscj1lLl9yYW5nZVNsaWRlckRhdGEsYT0wO2E8ci5sZW5ndGg7YSsrKXt2YXIgbD1yW2FdW20ubmFtZV07bC5fY2xpcElkPWwuX2lkKyItIitlLl91aWR9dmFyIGM9ZS5faW5mb2xheWVyLnNlbGVjdEFsbCgiZy4iK20uY29udGFpbmVyQ2xhc3NOYW1lKS5kYXRhKHIsKGZ1bmN0aW9uKHQpe3JldHVybiB0Ll9uYW1lfSkpO2MuZXhpdCgpLmVhY2goKGZ1bmN0aW9uKHQpe3ZhciByPXRbbS5uYW1lXTtlLl90b3BkZWZzLnNlbGVjdCgiIyIrci5fY2xpcElkKS5yZW1vdmUoKX0pKS5yZW1vdmUoKSwwIT09ci5sZW5ndGgmJihjLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChtLmNvbnRhaW5lckNsYXNzTmFtZSwhMCkuYXR0cigicG9pbnRlci1ldmVudHMiLCJhbGwiKSxjLmVhY2goKGZ1bmN0aW9uKHIpe3ZhciBhPW4uc2VsZWN0KHRoaXMpLGw9clttLm5hbWVdLGM9ZVtoLmlkMm5hbWUoci5hbmNob3IpXSxmPWxbaC5pZDJuYW1lKHIuYW5jaG9yKV07aWYobC5yYW5nZSl7dmFyIHcsVD1vLnNpbXBsZU1hcChsLnJhbmdlLHIucjJsKSxrPW8uc2ltcGxlTWFwKHIucmFuZ2Usci5yMmwpO3c9a1swXTxrWzFdP1tNYXRoLm1pbihUWzBdLGtbMF0pLE1hdGgubWF4KFRbMV0sa1sxXSldOltNYXRoLm1heChUWzBdLGtbMF0pLE1hdGgubWluKFRbMV0sa1sxXSldLGwucmFuZ2U9bC5faW5wdXQucmFuZ2U9by5zaW1wbGVNYXAodyxyLmwycil9ci5jbGVhblJhbmdlKCJyYW5nZXNsaWRlci5yYW5nZSIpO3ZhciBBPWUuX3NpemUsTT1yLmRvbWFpbjtsLl93aWR0aD1BLncqKE1bMV0tTVswXSk7dmFyIFM9TWF0aC5yb3VuZChBLmwrQS53Kk1bMF0pLEU9TWF0aC5yb3VuZChBLnQrQS5oKigxLXIuX2NvdW50ZXJEb21haW5NaW4pKygiYm90dG9tIj09PXIuc2lkZT9yLl9kZXB0aDowKStsLl9vZmZzZXRTaGlmdCttLmV4dHJhUGFkKTthLmF0dHIoInRyYW5zZm9ybSIscyhTLEUpKSxsLl9ybD1vLnNpbXBsZU1hcChsLnJhbmdlLHIucjJsKTt2YXIgTD1sLl9ybFswXSxDPWwuX3JsWzFdLFA9Qy1MO2lmKGwucDJkPWZ1bmN0aW9uKHQpe3JldHVybiB0L2wuX3dpZHRoKlArTH0sbC5kMnA9ZnVuY3Rpb24odCl7cmV0dXJuKHQtTCkvUCpsLl93aWR0aH0sci5yYW5nZWJyZWFrcyl7dmFyIEk9ci5sb2NhdGVCcmVha3MoTCxDKTtpZihJLmxlbmd0aCl7dmFyIE8seixEPTA7Zm9yKE89MDtPPEkubGVuZ3RoO08rKylEKz0oej1JW09dKS5tYXgtei5taW47dmFyIFI9bC5fd2lkdGgvKEMtTC1EKSxGPVstUipMXTtmb3IoTz0wO088SS5sZW5ndGg7TysrKXo9SVtPXSxGLnB1c2goRltGLmxlbmd0aC0xXS1SKih6Lm1heC16Lm1pbikpO2ZvcihsLmQycD1mdW5jdGlvbih0KXtmb3IodmFyIGU9RlswXSxyPTA7cjxJLmxlbmd0aDtyKyspe3ZhciBuPUlbcl07aWYodD49bi5tYXgpZT1GW3IrMV07ZWxzZSBpZih0PG4ubWluKWJyZWFrfXJldHVybiBlK1IqdH0sTz0wO088SS5sZW5ndGg7TysrKSh6PUlbT10pLnBtaW49bC5kMnAoei5taW4pLHoucG1heD1sLmQycCh6Lm1heCk7bC5wMmQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPUZbMF0scj0wO3I8SS5sZW5ndGg7cisrKXt2YXIgbj1JW3JdO2lmKHQ+PW4ucG1heCllPUZbcisxXTtlbHNlIGlmKHQ8bi5wbWluKWJyZWFrfXJldHVybih0LWUpL1J9fX1pZigibWF0Y2giIT09Zi5yYW5nZW1vZGUpe3ZhciBCPWMucjJsKGYucmFuZ2VbMF0pLE49Yy5yMmwoZi5yYW5nZVsxXSktQjtsLmQycE9wcEF4aXM9ZnVuY3Rpb24odCl7cmV0dXJuKHQtQikvTipsLl9oZWlnaHR9fWEuY2FsbChnLHQscixsKS5jYWxsKHYsdCxyLGwpLmNhbGwoeSx0LHIsbCkuY2FsbCh4LHQscixsLGYpLmNhbGwoYix0LHIsbCkuY2FsbChfLHQscixsKSxmdW5jdGlvbih0LGUscixhKXtpZihlLl9jb250ZXh0LnN0YXRpY1Bsb3QpcmV0dXJuO3ZhciBzPXQuc2VsZWN0KCJyZWN0LiIrbS5zbGlkZUJveENsYXNzTmFtZSkubm9kZSgpLGw9dC5zZWxlY3QoInJlY3QuIittLmdyYWJBcmVhTWluQ2xhc3NOYW1lKS5ub2RlKCksYz10LnNlbGVjdCgicmVjdC4iK20uZ3JhYkFyZWFNYXhDbGFzc05hbWUpLm5vZGUoKTtmdW5jdGlvbiB1KCl7dmFyIHU9bi5ldmVudCxmPXUudGFyZ2V0LGg9dS5jbGllbnRYfHx1LnRvdWNoZXNbMF0uY2xpZW50WCxtPWgtdC5ub2RlKCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCxnPWEuZDJwKHIuX3JsWzBdKSx2PWEuZDJwKHIuX3JsWzFdKSx5PXAuY292ZXJTbGlwKCk7ZnVuY3Rpb24geCh0KXt2YXIgdSxwLHgsYj0rKHQuY2xpZW50WHx8dC50b3VjaGVzWzBdLmNsaWVudFgpLWg7c3dpdGNoKGYpe2Nhc2Ugczp4PSJldy1yZXNpemUiLHU9ZytiLHA9ditiO2JyZWFrO2Nhc2UgbDp4PSJjb2wtcmVzaXplIix1PWcrYixwPXY7YnJlYWs7Y2FzZSBjOng9ImNvbC1yZXNpemUiLHU9ZyxwPXYrYjticmVhaztkZWZhdWx0Ong9ImV3LXJlc2l6ZSIsdT1tLHA9bStifWlmKHA8dSl7dmFyIF89cDtwPXUsdT1ffWEuX3BpeGVsTWluPXUsYS5fcGl4ZWxNYXg9cCxkKG4uc2VsZWN0KHkpLHgpLGZ1bmN0aW9uKHQsZSxyLG4pe2Z1bmN0aW9uIGEodCl7cmV0dXJuIHIubDJyKG8uY29uc3RyYWluKHQsbi5fcmxbMF0sbi5fcmxbMV0pKX12YXIgcz1hKG4ucDJkKG4uX3BpeGVsTWluKSksbD1hKG4ucDJkKG4uX3BpeGVsTWF4KSk7d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoZnVuY3Rpb24oKXtpLmNhbGwoIl9ndWlSZWxheW91dCIsZSxyLl9uYW1lKyIucmFuZ2UiLFtzLGxdKX0pKX0oMCxlLHIsYSl9ZnVuY3Rpb24gYigpe3kucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix4KSx5LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLGIpLHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix4KSx0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixiKSxvLnJlbW92ZUVsZW1lbnQoeSl9dGhpcy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHgpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLGIpLHkuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix4KSx5LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLGIpfXQub24oIm1vdXNlZG93biIsdSksdC5vbigidG91Y2hzdGFydCIsdSl9KGEsdCxyLGwpLGZ1bmN0aW9uKHQsZSxyLG4saSxhKXt2YXIgbD1tLmhhbmRsZVdpZHRoLzI7ZnVuY3Rpb24gYyh0KXtyZXR1cm4gby5jb25zdHJhaW4odCwwLG4uX3dpZHRoKX1mdW5jdGlvbiB1KHQpe3JldHVybiBvLmNvbnN0cmFpbih0LDAsbi5faGVpZ2h0KX1mdW5jdGlvbiBmKHQpe3JldHVybiBvLmNvbnN0cmFpbih0LC1sLG4uX3dpZHRoK2wpfXZhciBoPWMobi5kMnAoci5fcmxbMF0pKSxwPWMobi5kMnAoci5fcmxbMV0pKTtpZih0LnNlbGVjdCgicmVjdC4iK20uc2xpZGVCb3hDbGFzc05hbWUpLmF0dHIoIngiLGgpLmF0dHIoIndpZHRoIixwLWgpLHQuc2VsZWN0KCJyZWN0LiIrbS5tYXNrTWluQ2xhc3NOYW1lKS5hdHRyKCJ3aWR0aCIsaCksdC5zZWxlY3QoInJlY3QuIittLm1hc2tNYXhDbGFzc05hbWUpLmF0dHIoIngiLHApLmF0dHIoIndpZHRoIixuLl93aWR0aC1wKSwibWF0Y2giIT09YS5yYW5nZW1vZGUpe3ZhciBkPW4uX2hlaWdodC11KG4uZDJwT3BwQXhpcyhpLl9ybFsxXSkpLGc9bi5faGVpZ2h0LXUobi5kMnBPcHBBeGlzKGkuX3JsWzBdKSk7dC5zZWxlY3QoInJlY3QuIittLm1hc2tNaW5PcHBBeGlzQ2xhc3NOYW1lKS5hdHRyKCJ4IixoKS5hdHRyKCJoZWlnaHQiLGQpLmF0dHIoIndpZHRoIixwLWgpLHQuc2VsZWN0KCJyZWN0LiIrbS5tYXNrTWF4T3BwQXhpc0NsYXNzTmFtZSkuYXR0cigieCIsaCkuYXR0cigieSIsZykuYXR0cigiaGVpZ2h0IixuLl9oZWlnaHQtZykuYXR0cigid2lkdGgiLHAtaCksdC5zZWxlY3QoInJlY3QuIittLnNsaWRlQm94Q2xhc3NOYW1lKS5hdHRyKCJ5IixkKS5hdHRyKCJoZWlnaHQiLGctZCl9dmFyIHY9TWF0aC5yb3VuZChmKGgtbCkpLS41LHk9TWF0aC5yb3VuZChmKHAtbCkpKy41O3Quc2VsZWN0KCJnLiIrbS5ncmFiYmVyTWluQ2xhc3NOYW1lKS5hdHRyKCJ0cmFuc2Zvcm0iLHModiwuNSkpLHQuc2VsZWN0KCJnLiIrbS5ncmFiYmVyTWF4Q2xhc3NOYW1lKS5hdHRyKCJ0cmFuc2Zvcm0iLHMoeSwuNSkpfShhLDAscixsLGMsZiksImJvdHRvbSI9PT1yLnNpZGUmJnUuZHJhdyh0LHIuX2lkKyJ0aXRsZSIse3Byb3BDb250YWluZXI6cixwcm9wTmFtZTpyLl9uYW1lKyIudGl0bGUiLHBsYWNlaG9sZGVyOmUuX2RmbHRUaXRsZS54LGF0dHJpYnV0ZXM6e3g6ci5fb2Zmc2V0K3IuX2xlbmd0aC8yLHk6RStsLl9oZWlnaHQrbC5fb2Zmc2V0U2hpZnQrMTArMS41KnIudGl0bGUuZm9udC5zaXplLCJ0ZXh0LWFuY2hvciI6Im1pZGRsZSJ9fSl9KSkpfX0seyIuLi8uLi9saWIiOjUxNSwiLi4vLi4vbGliL3NldGN1cnNvciI6NTM2LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iOjU3OCwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIjo1NzAsIi4uLy4uL3Bsb3RzL3Bsb3RzIjo2MjgsIi4uLy4uL3JlZ2lzdHJ5Ijo2NDcsIi4uL2NvbG9yIjozNjcsIi4uL2RyYWdlbGVtZW50IjozODYsIi4uL2RyYXdpbmciOjM4OSwiLi4vdGl0bGVzIjo0NzYsIi4vY29uc3RhbnRzIjo0NDEsIkBwbG90bHkvZDMiOjU4fV0sNDQ0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2lkcyIpLGk9dCgiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIiksYT10KCIuL2NvbnN0YW50cyIpLG89dCgiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCIpLkxJTkVfU1BBQ0lORyxzPWEubmFtZTtmdW5jdGlvbiBsKHQpe3ZhciBlPXQmJnRbc107cmV0dXJuIGUmJmUudmlzaWJsZX1yLmlzVmlzaWJsZT1sLHIubWFrZURhdGE9ZnVuY3Rpb24odCl7dmFyIGU9bi5saXN0KHtfZnVsbExheW91dDp0fSwieCIsITApLHI9dC5tYXJnaW4saT1bXTtpZighdC5faGFzKCJnbDJkIikpZm9yKHZhciBhPTA7YTxlLmxlbmd0aDthKyspe3ZhciBvPWVbYV07aWYobChvKSl7aS5wdXNoKG8pO3ZhciBjPW9bc107Yy5faWQ9cytvLl9pZCxjLl9oZWlnaHQ9KHQuaGVpZ2h0LXIuYi1yLnQpKmMudGhpY2tuZXNzLGMuX29mZnNldFNoaWZ0PU1hdGguZmxvb3IoYy5ib3JkZXJ3aWR0aC8yKX19dC5fcmFuZ2VTbGlkZXJEYXRhPWl9LHIuYXV0b01hcmdpbk9wdHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10Ll9mdWxsTGF5b3V0LG49ZVtzXSxsPWUuX2lkLmNoYXJBdCgwKSxjPTAsdT0wOyJib3R0b20iPT09ZS5zaWRlJiYoYz1lLl9kZXB0aCxlLnRpdGxlLnRleHQhPT1yLl9kZmx0VGl0bGVbbF0mJih1PTEuNSplLnRpdGxlLmZvbnQuc2l6ZSsxMCtuLl9vZmZzZXRTaGlmdCx1Kz0oZS50aXRsZS50ZXh0Lm1hdGNoKGkuQlJfVEFHX0FMTCl8fFtdKS5sZW5ndGgqZS50aXRsZS5mb250LnNpemUqbykpO3JldHVybnt4OjAseTplLl9jb3VudGVyRG9tYWluTWluLGw6MCxyOjAsdDowLGI6bi5faGVpZ2h0K2MrTWF0aC5tYXgoci5tYXJnaW4uYix1KSxwYWQ6YS5leHRyYVBhZCsyKm4uX29mZnNldFNoaWZ0fX19LHsiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCI6NDgzLCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiOjU0MSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIjo1NzAsIi4vY29uc3RhbnRzIjo0NDF9XSw0NDU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuL2F0dHJpYnV0ZXMiKSxhPXQoIi4vb3BwYXhpc19hdHRyaWJ1dGVzIiksbz10KCIuL2hlbHBlcnMiKTtlLmV4cG9ydHM9e21vZHVsZVR5cGU6ImNvbXBvbmVudCIsbmFtZToicmFuZ2VzbGlkZXIiLHNjaGVtYTp7c3VicGxvdHM6e3hheGlzOntyYW5nZXNsaWRlcjpuLmV4dGVuZEZsYXQoe30saSx7eWF4aXM6YX0pfX19LGxheW91dEF0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksaGFuZGxlRGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNhbGNBdXRvcmFuZ2U6dCgiLi9jYWxjX2F1dG9yYW5nZSIpLGRyYXc6dCgiLi9kcmF3IiksaXNWaXNpYmxlOm8uaXNWaXNpYmxlLG1ha2VEYXRhOm8ubWFrZURhdGEsYXV0b01hcmdpbk9wdHM6by5hdXRvTWFyZ2luT3B0c319LHsiLi4vLi4vbGliIjo1MTUsIi4vYXR0cmlidXRlcyI6NDM5LCIuL2NhbGNfYXV0b3JhbmdlIjo0NDAsIi4vZGVmYXVsdHMiOjQ0MiwiLi9kcmF3Ijo0NDMsIi4vaGVscGVycyI6NDQ0LCIuL29wcGF4aXNfYXR0cmlidXRlcyI6NDQ2fV0sNDQ2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17X2lzU3VicGxvdE9iajohMCxyYW5nZW1vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImF1dG8iLCJmaXhlZCIsIm1hdGNoIl0sZGZsdDoibWF0Y2giLGVkaXRUeXBlOiJjYWxjIn0scmFuZ2U6e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGl0ZW1zOlt7dmFsVHlwZToiYW55IixlZGl0VHlwZToicGxvdCJ9LHt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJwbG90In1dLGVkaXRUeXBlOiJwbG90In0sZWRpdFR5cGU6ImNhbGMifX0se31dLDQ0NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9hbm5vdGF0aW9ucy9hdHRyaWJ1dGVzIiksaT10KCIuLi8uLi90cmFjZXMvc2NhdHRlci9hdHRyaWJ1dGVzIikubGluZSxhPXQoIi4uL2RyYXdpbmcvYXR0cmlidXRlcyIpLmRhc2gsbz10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxzPXQoIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiKS5vdmVycmlkZUFsbCxsPXQoIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKS50ZW1wbGF0ZWRBcnJheTt0KCIuLi8uLi9jb25zdGFudHMvYXhpc19wbGFjZWFibGVfb2JqZWN0cyIpO2UuZXhwb3J0cz1zKGwoInNlbGVjdGlvbiIse3R5cGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInJlY3QiLCJwYXRoIl19LHhyZWY6byh7fSxuLnhyZWYse30pLHlyZWY6byh7fSxuLnlyZWYse30pLHgwOnt2YWxUeXBlOiJhbnkifSx4MTp7dmFsVHlwZToiYW55In0seTA6e3ZhbFR5cGU6ImFueSJ9LHkxOnt2YWxUeXBlOiJhbnkifSxwYXRoOnt2YWxUeXBlOiJzdHJpbmciLGVkaXRUeXBlOiJhcnJheWRyYXcifSxvcGFjaXR5Ont2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6LjcsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LGxpbmU6e2NvbG9yOmkuY29sb3Isd2lkdGg6byh7fSxpLndpZHRoLHttaW46MSxkZmx0OjF9KSxkYXNoOm8oe30sYSx7ZGZsdDoiZG90In0pfX0pLCJhcnJheWRyYXciLCJmcm9tLXJvb3QiKX0seyIuLi8uLi9jb25zdGFudHMvYXhpc19wbGFjZWFibGVfb2JqZWN0cyI6NDg0LCIuLi8uLi9saWIvZXh0ZW5kIjo1MDUsIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiOjU0OCwiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6NTU1LCIuLi8uLi90cmFjZXMvc2NhdHRlci9hdHRyaWJ1dGVzIjo5MzYsIi4uL2Fubm90YXRpb25zL2F0dHJpYnV0ZXMiOjM1MCwiLi4vZHJhd2luZy9hdHRyaWJ1dGVzIjozODh9XSw0NDg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtCRU5EUFg6MS41LE1JTlNFTEVDVDoxMixTRUxFQ1RERUxBWToxMDAsU0VMRUNUSUQ6Ii1zZWxlY3QifX0se31dLDQ0OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksYT10KCIuLi8uLi9wbG90cy9hcnJheV9jb250YWluZXJfZGVmYXVsdHMiKSxvPXQoIi4vYXR0cmlidXRlcyIpLHM9dCgiLi4vc2hhcGVzL2hlbHBlcnMiKTtmdW5jdGlvbiBsKHQsZSxyKXtmdW5jdGlvbiBhKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxvLHIsaSl9dmFyIGw9YSgicGF0aCIpLGM9InBhdGgiIT09YSgidHlwZSIsbD8icGF0aCI6InJlY3QiKTtjJiZkZWxldGUgZS5wYXRoLGEoIm9wYWNpdHkiKSxhKCJsaW5lLmNvbG9yIiksYSgibGluZS53aWR0aCIpLGEoImxpbmUuZGFzaCIpO2Zvcih2YXIgdT1bIngiLCJ5Il0sZj0wO2Y8MjtmKyspe3ZhciBoLHAsZCxtPXVbZl0sZz17X2Z1bGxMYXlvdXQ6cn0sdj1pLmNvZXJjZVJlZih0LGUsZyxtKTtpZigoaD1pLmdldEZyb21JZChnLHYpKS5fc2VsZWN0aW9uSW5kaWNlcy5wdXNoKGUuX2luZGV4KSxkPXMucmFuZ2VUb1NoYXBlUG9zaXRpb24oaCkscD1zLnNoYXBlUG9zaXRpb25Ub1JhbmdlKGgpLGMpe3ZhciB5PW0rIjAiLHg9bSsiMSIsYj10W3ldLF89dFt4XTt0W3ldPXAodFt5XSwhMCksdFt4XT1wKHRbeF0sITApLGkuY29lcmNlUG9zaXRpb24oZSxnLGEsdix5KSxpLmNvZXJjZVBvc2l0aW9uKGUsZyxhLHYseCk7dmFyIHc9ZVt5XSxUPWVbeF07dm9pZCAwIT09dyYmdm9pZCAwIT09VCYmKGVbeV09ZCh3KSxlW3hdPWQoVCksdFt5XT1iLHRbeF09Xyl9fWMmJm4ubm9uZU9yQWxsKHQsZSxbIngwIiwieDEiLCJ5MCIsInkxIl0pfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2EodCxlLHtuYW1lOiJzZWxlY3Rpb25zIixoYW5kbGVJdGVtRGVmYXVsdHM6bH0pO2Zvcih2YXIgcj1lLnNlbGVjdGlvbnMsbj0wO248ci5sZW5ndGg7bisrKXt2YXIgaT1yW25dO2kmJih2b2lkIDA9PT1pLnBhdGgmJih2b2lkIDAhPT1pLngwJiZ2b2lkIDAhPT1pLngxJiZ2b2lkIDAhPT1pLnkwJiZ2b2lkIDAhPT1pLnkxfHwoZS5zZWxlY3Rpb25zW25dPW51bGwpKSl9fX0seyIuLi8uLi9saWIiOjUxNSwiLi4vLi4vcGxvdHMvYXJyYXlfY29udGFpbmVyX2RlZmF1bHRzIjo1NjEsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo1NjYsIi4uL3NoYXBlcy9oZWxwZXJzIjo0NjksIi4vYXR0cmlidXRlcyI6NDQ3fV0sNDUwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NoYXBlcy9kcmF3X25ld3NoYXBlL2hlbHBlcnMiKS5yZWFkUGF0aHMsaT10KCIuLi9zaGFwZXMvZGlzcGxheV9vdXRsaW5lcyIpLGE9dCgiLi4vc2hhcGVzL2hhbmRsZV9vdXRsaW5lIikuY2xlYXJPdXRsaW5lQ29udHJvbGxlcnMsbz10KCIuLi9jb2xvciIpLHM9dCgiLi4vZHJhd2luZyIpLGw9dCgiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpLmFycmF5RWRpdG9yLGM9dCgiLi4vc2hhcGVzL2hlbHBlcnMiKSx1PWMuZ2V0UGF0aFN0cmluZztmdW5jdGlvbiBmKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQ7Zm9yKHZhciByIGluIGEodCksZS5fc2VsZWN0aW9uTGF5ZXIuc2VsZWN0QWxsKCJwYXRoIikucmVtb3ZlKCksZS5fcGxvdHMpe3ZhciBuPWUuX3Bsb3RzW3JdLnNlbGVjdGlvbkxheWVyO24mJm4uc2VsZWN0QWxsKCJwYXRoIikucmVtb3ZlKCl9Zm9yKHZhciBpPTA7aTxlLnNlbGVjdGlvbnMubGVuZ3RoO2krKyloKHQsaSl9ZnVuY3Rpb24gaCh0LGUpe3QuX2Z1bGxMYXlvdXQuX3BhcGVyZGl2LnNlbGVjdEFsbCgnLnNlbGVjdGlvbmxheWVyIFtkYXRhLWluZGV4PSInK2UrJyJdJykucmVtb3ZlKCk7dmFyIHI9Yy5tYWtlU2VsZWN0aW9uc09wdGlvbnNBbmRQbG90aW5mbyh0LGUpLGE9ci5vcHRpb25zLGg9ci5wbG90aW5mbzthLl9pbnB1dCYmZnVuY3Rpb24ocil7dmFyIGM9dSh0LGEpLG09eyJkYXRhLWluZGV4IjplLCJmaWxsLXJ1bGUiOiJldmVub2RkIixkOmN9LGc9YS5vcGFjaXR5LHY9InJnYmEoMCwwLDAsMCkiLHk9YS5saW5lLmNvbG9yfHxvLmNvbnRyYXN0KHQuX2Z1bGxMYXlvdXQucGxvdF9iZ2NvbG9yKSx4PWEubGluZS53aWR0aCxiPWEubGluZS5kYXNoO3h8fCh4PTUsYj0ic29saWQiKTt2YXIgXz10Ll9mdWxsTGF5b3V0Ll9hY3RpdmVTZWxlY3Rpb25JbmRleD09PWU7XyYmKHY9dC5fZnVsbExheW91dC5hY3RpdmVzZWxlY3Rpb24uZmlsbGNvbG9yLGc9dC5fZnVsbExheW91dC5hY3RpdmVzZWxlY3Rpb24ub3BhY2l0eSk7Zm9yKHZhciB3PVtdLFQ9MTtUPj0wO1QtLSl7dmFyIGs9ci5hcHBlbmQoInBhdGgiKS5hdHRyKG0pLnN0eWxlKCJvcGFjaXR5IixUPy4xOmcpLmNhbGwoby5zdHJva2UseSkuY2FsbChvLmZpbGwsdikuY2FsbChzLmRhc2hMaW5lLFQ/InNvbGlkIjpiLFQ/NCt4OngpO2lmKHAoayx0LGEpLF8pe3ZhciBBPWwodC5sYXlvdXQsInNlbGVjdGlvbnMiLGEpO2suc3R5bGUoe2N1cnNvcjoibW92ZSJ9KTt2YXIgTT17ZWxlbWVudDprLm5vZGUoKSxwbG90aW5mbzpoLGdkOnQsZWRpdEhlbHBlcnM6QSxpc0FjdGl2ZVNlbGVjdGlvbjohMH0sUz1uKGMsdCk7aShTLGssTSl9ZWxzZSBrLnN0eWxlKCJwb2ludGVyLWV2ZW50cyIsVD8iYWxsIjoibm9uZSIpO3dbVF09a312YXIgRT13WzBdO3dbMV0ubm9kZSgpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24odCxlKXt2YXIgcj0rZS5ub2RlKCkuZ2V0QXR0cmlidXRlKCJkYXRhLWluZGV4Iik7aWYocj49MCl7aWYocj09PXQuX2Z1bGxMYXlvdXQuX2FjdGl2ZVNlbGVjdGlvbkluZGV4KXJldHVybiB2b2lkIGQodCk7dC5fZnVsbExheW91dC5fYWN0aXZlU2VsZWN0aW9uSW5kZXg9cix0Ll9mdWxsTGF5b3V0Ll9kZWFjdGl2YXRlU2VsZWN0aW9uPWQsZih0KX19KHQsRSl9KSl9KHQuX2Z1bGxMYXlvdXQuX3NlbGVjdGlvbkxheWVyKX1mdW5jdGlvbiBwKHQsZSxyKXt2YXIgbj1yLnhyZWYrci55cmVmO3Muc2V0Q2xpcFVybCh0LCJjbGlwIitlLl9mdWxsTGF5b3V0Ll91aWQrbixlKX1mdW5jdGlvbiBkKHQpe3QuX2Z1bGxMYXlvdXQuX2FjdGl2ZVNlbGVjdGlvbkluZGV4Pj0wJiYoYSh0KSxkZWxldGUgdC5fZnVsbExheW91dC5fYWN0aXZlU2VsZWN0aW9uSW5kZXgsZih0KSl9ZS5leHBvcnRzPXtkcmF3OmYsZHJhd09uZTpoLGFjdGl2YXRlTGFzdFNlbGVjdGlvbjpmdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0LnNlbGVjdGlvbnMubGVuZ3RoLTE7dC5fZnVsbExheW91dC5fYWN0aXZlU2VsZWN0aW9uSW5kZXg9ZSx0Ll9mdWxsTGF5b3V0Ll9kZWFjdGl2YXRlU2VsZWN0aW9uPWQsZih0KX19fSx7Ii4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiOjU1NSwiLi4vY29sb3IiOjM2NywiLi4vZHJhd2luZyI6Mzg5LCIuLi9zaGFwZXMvZGlzcGxheV9vdXRsaW5lcyI6NDYxLCIuLi9zaGFwZXMvZHJhd19uZXdzaGFwZS9oZWxwZXJzIjo0NjYsIi4uL3NoYXBlcy9oYW5kbGVfb3V0bGluZSI6NDY4LCIuLi9zaGFwZXMvaGVscGVycyI6NDY5fV0sNDUxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2RyYXdpbmcvYXR0cmlidXRlcyIpLmRhc2gsaT10KCIuLi8uLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdDtlLmV4cG9ydHM9e25ld3NlbGVjdGlvbjp7bW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiaW1tZWRpYXRlIiwiZ3JhZHVhbCJdLGRmbHQ6ImltbWVkaWF0ZSIsZWRpdFR5cGU6Im5vbmUifSxsaW5lOntjb2xvcjp7dmFsVHlwZToiY29sb3IiLGVkaXRUeXBlOiJub25lIn0sd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjEsZGZsdDoxLGVkaXRUeXBlOiJub25lIn0sZGFzaDppKHt9LG4se2RmbHQ6ImRvdCIsZWRpdFR5cGU6Im5vbmUifSksZWRpdFR5cGU6Im5vbmUifSxlZGl0VHlwZToibm9uZSJ9LGFjdGl2ZXNlbGVjdGlvbjp7ZmlsbGNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDoicmdiYSgwLDAsMCwwKSIsZWRpdFR5cGU6Im5vbmUifSxvcGFjaXR5Ont2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6LjUsZWRpdFR5cGU6Im5vbmUifSxlZGl0VHlwZToibm9uZSJ9fX0seyIuLi8uLi8uLi9saWIvZXh0ZW5kIjo1MDUsIi4uLy4uL2RyYXdpbmcvYXR0cmlidXRlcyI6Mzg4fV0sNDUyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7cigibmV3c2VsZWN0aW9uLm1vZGUiKSxyKCJuZXdzZWxlY3Rpb24ubGluZS53aWR0aCIpJiYocigibmV3c2VsZWN0aW9uLmxpbmUuY29sb3IiKSxyKCJuZXdzZWxlY3Rpb24ubGluZS5kYXNoIikpLHIoImFjdGl2ZXNlbGVjdGlvbi5maWxsY29sb3IiKSxyKCJhY3RpdmVzZWxlY3Rpb24ub3BhY2l0eSIpfX0se31dLDQ1MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9kcmFnZWxlbWVudC9oZWxwZXJzIikuc2VsZWN0TW9kZSxpPXQoIi4uLy4uL3NoYXBlcy9oYW5kbGVfb3V0bGluZSIpLmNsZWFyT3V0bGluZSxhPXQoIi4uLy4uL3NoYXBlcy9kcmF3X25ld3NoYXBlL2hlbHBlcnMiKSxvPWEucmVhZFBhdGhzLHM9YS53cml0ZVBhdGhzLGw9YS5maXhEYXRlc0ZvclBhdGhzO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2lmKHQubGVuZ3RoKXt2YXIgcj10WzBdWzBdO2lmKHIpe3ZhciBhPXIuZ2V0QXR0cmlidXRlKCJkIiksYz1lLmdkLHU9Yy5fZnVsbExheW91dC5uZXdzZWxlY3Rpb24sZj1lLnBsb3RpbmZvLGg9Zi54YXhpcyxwPWYueWF4aXMsZD1lLmlzQWN0aXZlU2VsZWN0aW9uLG09ZS5kcmFnbW9kZSxnPShjLmxheW91dHx8e30pLnNlbGVjdGlvbnN8fFtdO2lmKCFuKG0pJiZ2b2lkIDAhPT1kKXt2YXIgdj1jLl9mdWxsTGF5b3V0Ll9hY3RpdmVTZWxlY3Rpb25JbmRleDtpZih2PGcubGVuZ3RoKXN3aXRjaChjLl9mdWxsTGF5b3V0LnNlbGVjdGlvbnNbdl0udHlwZSl7Y2FzZSJyZWN0IjptPSJzZWxlY3QiO2JyZWFrO2Nhc2UicGF0aCI6bT0ibGFzc28ifX12YXIgeSx4PW8oYSxjLGYsZCksYj17eHJlZjpoLl9pZCx5cmVmOnAuX2lkLG9wYWNpdHk6dS5vcGFjaXR5LGxpbmU6e2NvbG9yOnUubGluZS5jb2xvcix3aWR0aDp1LmxpbmUud2lkdGgsZGFzaDp1LmxpbmUuZGFzaH19OzE9PT14Lmxlbmd0aCYmKHk9eFswXSkseSYmNT09PXkubGVuZ3RoJiYic2VsZWN0Ij09PW0/KGIudHlwZT0icmVjdCIsYi54MD15WzBdWzFdLGIueTA9eVswXVsyXSxiLngxPXlbMl1bMV0sYi55MT15WzJdWzJdKTooYi50eXBlPSJwYXRoIixoJiZwJiZsKHgsaCxwKSxiLnBhdGg9cyh4KSx5PW51bGwpLGkoYyk7Zm9yKHZhciBfPWUuZWRpdEhlbHBlcnMsdz0oX3x8e30pLm1vZGlmeUl0ZW0sVD1bXSxrPTA7azxnLmxlbmd0aDtrKyspe3ZhciBBPWMuX2Z1bGxMYXlvdXQuc2VsZWN0aW9uc1trXTtpZihBKXtpZihUW2tdPUEuX2lucHV0LHZvaWQgMCE9PWQmJms9PT1jLl9mdWxsTGF5b3V0Ll9hY3RpdmVTZWxlY3Rpb25JbmRleCl7dmFyIE09Yjtzd2l0Y2goQS50eXBlKXtjYXNlInJlY3QiOncoIngwIixNLngwKSx3KCJ4MSIsTS54MSksdygieTAiLE0ueTApLHcoInkxIixNLnkxKTticmVhaztjYXNlInBhdGgiOncoInBhdGgiLE0ucGF0aCl9fX1lbHNlIFRba109QX1yZXR1cm4gdm9pZCAwPT09ZD8oVC5wdXNoKGIpLFQpOl8/Xy5nZXRVcGRhdGVPYmooKTp7fX19fX0seyIuLi8uLi9kcmFnZWxlbWVudC9oZWxwZXJzIjozODUsIi4uLy4uL3NoYXBlcy9kcmF3X25ld3NoYXBlL2hlbHBlcnMiOjQ2NiwiLi4vLi4vc2hhcGVzL2hhbmRsZV9vdXRsaW5lIjo0Njh9XSw0NTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIikuc3RyVHJhbnNsYXRlO2Z1bmN0aW9uIGkodCxlKXtzd2l0Y2godC50eXBlKXtjYXNlImxvZyI6cmV0dXJuIHQucDJkKGUpO2Nhc2UiZGF0ZSI6cmV0dXJuIHQucDJyKGUsMCx0LmNhbGVuZGFyKTtkZWZhdWx0OnJldHVybiB0LnAycihlKX19ZS5leHBvcnRzPXtwMnI6aSxyMnA6ZnVuY3Rpb24odCxlKXtzd2l0Y2godC50eXBlKXtjYXNlImxvZyI6cmV0dXJuIHQuZDJwKGUpO2Nhc2UiZGF0ZSI6cmV0dXJuIHQucjJwKGUsMCx0LmNhbGVuZGFyKTtkZWZhdWx0OnJldHVybiB0LnIycChlKX19LGF4VmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9InkiPT09dC5faWQuY2hhckF0KDApPzE6MDtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIGkodCxyW2VdKX19LGdldFRyYW5zZm9ybTpmdW5jdGlvbih0KXtyZXR1cm4gbih0LnhheGlzLl9vZmZzZXQsdC55YXhpcy5fb2Zmc2V0KX19fSx7Ii4uLy4uL2xpYiI6NTE1fV0sNDU1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vZHJhdyIpLGk9dCgiLi9zZWxlY3QiKTtlLmV4cG9ydHM9e21vZHVsZVR5cGU6ImNvbXBvbmVudCIsbmFtZToic2VsZWN0aW9ucyIsbGF5b3V0QXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlMYXlvdXREZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksc3VwcGx5RHJhd05ld1NlbGVjdGlvbkRlZmF1bHRzOnQoIi4vZHJhd19uZXdzZWxlY3Rpb24vZGVmYXVsdHMiKSxpbmNsdWRlQmFzZVBsb3Q6dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2luY2x1ZGVfY29tcG9uZW50cyIpKCJzZWxlY3Rpb25zIiksZHJhdzpuLmRyYXcsZHJhd09uZTpuLmRyYXdPbmUscmVzZWxlY3Q6aS5yZXNlbGVjdCxwcmVwU2VsZWN0OmkucHJlcFNlbGVjdCxjbGVhck91dGxpbmU6aS5jbGVhck91dGxpbmUsY2xlYXJTZWxlY3Rpb25zQ2FjaGU6aS5jbGVhclNlbGVjdGlvbnNDYWNoZSxzZWxlY3RPbkNsaWNrOmkuc2VsZWN0T25DbGlja319LHsiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2luY2x1ZGVfY29tcG9uZW50cyI6NTc3LCIuL2F0dHJpYnV0ZXMiOjQ0NywiLi9kZWZhdWx0cyI6NDQ5LCIuL2RyYXciOjQ1MCwiLi9kcmF3X25ld3NlbGVjdGlvbi9kZWZhdWx0cyI6NDUyLCIuL3NlbGVjdCI6NDU2fV0sNDU2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInBvbHlib29sanMiKSxpPXQoInBvaW50LWluLXBvbHlnb24vbmVzdGVkIiksYT10KCIuLi8uLi9yZWdpc3RyeSIpLG89dCgiLi4vZHJhd2luZyIpLmRhc2hTdHlsZSxzPXQoIi4uL2NvbG9yIiksbD10KCIuLi9meCIpLGM9dCgiLi4vZngvaGVscGVycyIpLm1ha2VFdmVudERhdGEsdT10KCIuLi9kcmFnZWxlbWVudC9oZWxwZXJzIiksZj11LmZyZWVNb2RlLGg9dS5yZWN0TW9kZSxwPXUuZHJhd01vZGUsZD11Lm9wZW5Nb2RlLG09dS5zZWxlY3RNb2RlLGc9dCgiLi4vc2hhcGVzL2hlbHBlcnMiKSx2PXQoIi4uL3NoYXBlcy9jb25zdGFudHMiKSx5PXQoIi4uL3NoYXBlcy9kaXNwbGF5X291dGxpbmVzIikseD10KCIuLi9zaGFwZXMvaGFuZGxlX291dGxpbmUiKS5jbGVhck91dGxpbmUsYj10KCIuLi9zaGFwZXMvZHJhd19uZXdzaGFwZS9oZWxwZXJzIiksXz1iLmhhbmRsZUVsbGlwc2Usdz1iLnJlYWRQYXRocyxUPXQoIi4uL3NoYXBlcy9kcmF3X25ld3NoYXBlL25ld3NoYXBlcyIpLGs9dCgiLi9kcmF3X25ld3NlbGVjdGlvbi9uZXdzZWxlY3Rpb25zIiksQT10KCIuL2RyYXciKS5hY3RpdmF0ZUxhc3RTZWxlY3Rpb24sTT10KCIuLi8uLi9saWIiKSxTPU0uc29ydGVyQXNjLEU9dCgiLi4vLi4vbGliL3BvbHlnb24iKSxMPXQoIi4uLy4uL2xpYi90aHJvdHRsZSIpLEM9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIikuZ2V0RnJvbUlkLFA9dCgiLi4vLi4vbGliL2NsZWFyX2dsX2NhbnZhc2VzIiksST10KCIuLi8uLi9wbG90X2FwaS9zdWJyb3V0aW5lcyIpLnJlZHJhd1JlZ2xUcmFjZXMsTz10KCIuL2NvbnN0YW50cyIpLHo9Ty5NSU5TRUxFQ1QsRD1FLmZpbHRlcixSPUUudGVzdGVyLEY9dCgiLi9oZWxwZXJzIiksQj1GLnAycixOPUYuYXhWYWx1ZSxqPUYuZ2V0VHJhbnNmb3JtO2Z1bmN0aW9uIFUodCl7cmV0dXJuIHZvaWQgMCE9PXQuc3VicGxvdH1mdW5jdGlvbiBWKHQsZSxyLG4saSxhLG8pe3ZhciBzLGwsYyx1LGYsaCxwLG0sZyx2PWUuX2hvdmVyZGF0YSx4PWUuX2Z1bGxMYXlvdXQuY2xpY2ttb2RlLmluZGV4T2YoImV2ZW50Iik+LTEsYj1bXTtpZihmdW5jdGlvbih0KXtyZXR1cm4gdCYmQXJyYXkuaXNBcnJheSh0KSYmITAhPT10WzBdLmhvdmVyT25Cb3h9KHYpKXtZKHQsZSxhKTt2YXIgXz1mdW5jdGlvbih0LGUpe3ZhciByLG4saT10WzBdLGE9LTEsbz1bXTtmb3Iobj0wO248ZS5sZW5ndGg7bisrKWlmKHI9ZVtuXSxpLmZ1bGxEYXRhLl9leHBhbmRlZEluZGV4PT09ci5jZFswXS50cmFjZS5fZXhwYW5kZWRJbmRleCl7aWYoITA9PT1pLmhvdmVyT25Cb3gpYnJlYWs7dm9pZCAwIT09aS5wb2ludE51bWJlcj9hPWkucG9pbnROdW1iZXI6dm9pZCAwIT09aS5iaW5OdW1iZXImJihhPWkuYmluTnVtYmVyLG89aS5wb2ludE51bWJlcnMpO2JyZWFrfXJldHVybntwb2ludE51bWJlcjphLHBvaW50TnVtYmVyczpvLHNlYXJjaEluZm86cn19KHYscz1aKGUscixuLGkpKTtpZihfLnBvaW50TnVtYmVycy5sZW5ndGg+MD9mdW5jdGlvbih0LGUpe3ZhciByLG4saSxhPVtdO2ZvcihpPTA7aTx0Lmxlbmd0aDtpKyspKHI9dFtpXSkuY2RbMF0udHJhY2Uuc2VsZWN0ZWRwb2ludHMmJnIuY2RbMF0udHJhY2Uuc2VsZWN0ZWRwb2ludHMubGVuZ3RoPjAmJmEucHVzaChyKTtpZigxPT09YS5sZW5ndGgmJmFbMF09PT1lLnNlYXJjaEluZm8mJihuPWUuc2VhcmNoSW5mby5jZFswXS50cmFjZSkuc2VsZWN0ZWRwb2ludHMubGVuZ3RoPT09ZS5wb2ludE51bWJlcnMubGVuZ3RoKXtmb3IoaT0wO2k8ZS5wb2ludE51bWJlcnMubGVuZ3RoO2krKylpZihuLnNlbGVjdGVkcG9pbnRzLmluZGV4T2YoZS5wb2ludE51bWJlcnNbaV0pPDApcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuITF9KHMsXyk6ZnVuY3Rpb24odCl7dmFyIGUscixuLGk9MDtmb3Iobj0wO248dC5sZW5ndGg7bisrKWlmKGU9dFtuXSwocj1lLmNkWzBdLnRyYWNlKS5zZWxlY3RlZHBvaW50cyl7aWYoci5zZWxlY3RlZHBvaW50cy5sZW5ndGg+MSlyZXR1cm4hMTtpZigoaSs9ci5zZWxlY3RlZHBvaW50cy5sZW5ndGgpPjEpcmV0dXJuITF9cmV0dXJuIDE9PT1pfShzKSYmKGg9SyhfKSkpe2ZvcihvJiZvLnJlbW92ZSgpLGc9MDtnPHMubGVuZ3RoO2crKykobD1zW2ddKS5fbW9kdWxlLnNlbGVjdFBvaW50cyhsLCExKTtRKGUscyksVyhhKSx4JiZodChlKX1lbHNle2ZvcihwPXQuc2hpZnRLZXkmJih2b2lkIDAhPT1oP2g6SyhfKSksYz1mdW5jdGlvbih0LGUscil7cmV0dXJue3BvaW50TnVtYmVyOnQsc2VhcmNoSW5mbzplLHN1YnRyYWN0OiEhcn19KF8ucG9pbnROdW1iZXIsXy5zZWFyY2hJbmZvLHApLHU9RyhhLnNlbGVjdGlvbkRlZnMuY29uY2F0KFtjXSkpLGc9MDtnPHMubGVuZ3RoO2crKylpZihmPXR0KHNbZ10uX21vZHVsZS5zZWxlY3RQb2ludHMoc1tnXSx1KSxzW2ddKSxiLmxlbmd0aClmb3IodmFyIHc9MDt3PGYubGVuZ3RoO3crKyliLnB1c2goZlt3XSk7ZWxzZSBiPWY7aWYoUShlLHMsbT17cG9pbnRzOmJ9KSxjJiZhJiZhLnNlbGVjdGlvbkRlZnMucHVzaChjKSxvKXt2YXIgVD1hLm1lcmdlZFBvbHlnb25zLGs9ZChhLmRyYWdtb2RlKTt5KGV0KFQsayksbyxhKX14JiZmdChlLG0pfX19ZnVuY3Rpb24gSCh0KXtyZXR1cm4icG9pbnROdW1iZXIiaW4gdCYmInNlYXJjaEluZm8iaW4gdH1mdW5jdGlvbiBxKHQpe3JldHVybnt4bWluOjAseG1heDowLHltaW46MCx5bWF4OjAscHRzOltdLGNvbnRhaW5zOmZ1bmN0aW9uKGUscixuLGkpe3ZhciBhPXQuc2VhcmNoSW5mby5jZFswXS50cmFjZS5fZXhwYW5kZWRJbmRleDtyZXR1cm4gaS5jZFswXS50cmFjZS5fZXhwYW5kZWRJbmRleD09PWEmJm49PT10LnBvaW50TnVtYmVyfSxpc1JlY3Q6ITEsZGVnZW5lcmF0ZTohMSxzdWJ0cmFjdDohIXQuc3VidHJhY3R9fWZ1bmN0aW9uIEcodCl7aWYodC5sZW5ndGgpe2Zvcih2YXIgZT1bXSxyPUgodFswXSk/MDp0WzBdWzBdWzBdLG49cixpPUgodFswXSk/MDp0WzBdWzBdWzFdLGE9aSxvPTA7bzx0Lmxlbmd0aDtvKyspaWYoSCh0W29dKSllLnB1c2gocSh0W29dKSk7ZWxzZXt2YXIgcz1SKHRbb10pO3Muc3VidHJhY3Q9ISF0W29dLnN1YnRyYWN0LGUucHVzaChzKSxyPU1hdGgubWluKHIscy54bWluKSxuPU1hdGgubWF4KG4scy54bWF4KSxpPU1hdGgubWluKGkscy55bWluKSxhPU1hdGgubWF4KGEscy55bWF4KX1yZXR1cm57eG1pbjpyLHhtYXg6bix5bWluOmkseW1heDphLHB0czpbXSxjb250YWluczpmdW5jdGlvbih0LHIsbixpKXtmb3IodmFyIGE9ITEsbz0wO288ZS5sZW5ndGg7bysrKWVbb10uY29udGFpbnModCxyLG4saSkmJihhPSFlW29dLnN1YnRyYWN0KTtyZXR1cm4gYX0saXNSZWN0OiExLGRlZ2VuZXJhdGU6ITF9fX1mdW5jdGlvbiBZKHQsZSxyKXt2YXIgbj1lLl9mdWxsTGF5b3V0LGk9ci5wbG90aW5mbyxhPXIuZHJhZ21vZGUsbz1uLl9sYXN0U2VsZWN0ZWRTdWJwbG90JiZuLl9sYXN0U2VsZWN0ZWRTdWJwbG90PT09aS5pZCxzPSh0LnNoaWZ0S2V5fHx0LmFsdEtleSkmJiEocChhKSYmZChhKSk7byYmcyYmaS5zZWxlY3Rpb24mJmkuc2VsZWN0aW9uLnNlbGVjdGlvbkRlZnMmJiFyLnNlbGVjdGlvbkRlZnM/KHIuc2VsZWN0aW9uRGVmcz1pLnNlbGVjdGlvbi5zZWxlY3Rpb25EZWZzLHIubWVyZ2VkUG9seWdvbnM9aS5zZWxlY3Rpb24ubWVyZ2VkUG9seWdvbnMpOnMmJmkuc2VsZWN0aW9ufHxXKHIpLG98fCh4KGUpLG4uX2xhc3RTZWxlY3RlZFN1YnBsb3Q9aS5pZCl9ZnVuY3Rpb24gVyh0LGUpe3ZhciByPXQuZHJhZ21vZGUsbj10LnBsb3RpbmZvLGk9dC5nZDsoZnVuY3Rpb24odCl7cmV0dXJuIHQuX2Z1bGxMYXlvdXQuX2FjdGl2ZVNoYXBlSW5kZXg+PTB9KShpKSYmaS5fZnVsbExheW91dC5fZGVhY3RpdmF0ZVNoYXBlKGkpLGZ1bmN0aW9uKHQpe3JldHVybiB0Ll9mdWxsTGF5b3V0Ll9hY3RpdmVTZWxlY3Rpb25JbmRleD49MH0oaSkmJmkuX2Z1bGxMYXlvdXQuX2RlYWN0aXZhdGVTZWxlY3Rpb24oaSk7dmFyIG89aS5fZnVsbExheW91dC5fem9vbWxheWVyLHM9cChyKSxsPW0ocik7aWYoc3x8bCl7dmFyIGMsdSxmPW8uc2VsZWN0QWxsKCIuc2VsZWN0LW91dGxpbmUtIituLmlkKTtpZihmJiZpLl9mdWxsTGF5b3V0Ll9vdXRsaW5pbmcpcyYmKGM9VChmLHQpKSxjJiZhLmNhbGwoIl9ndWlSZWxheW91dCIsaSx7c2hhcGVzOmN9KSxsJiYhVSh0KSYmKHU9ayhmLHQpKSx1JiYoaS5fZnVsbExheW91dC5fbm9FbWl0U2VsZWN0ZWRBdFN0YXJ0PSEwLGEuY2FsbCgiX2d1aVJlbGF5b3V0IixpLHtzZWxlY3Rpb25zOnV9KS50aGVuKChmdW5jdGlvbigpe2UmJkEoaSl9KSkpLGkuX2Z1bGxMYXlvdXQuX291dGxpbmluZz0hMX1uLnNlbGVjdGlvbj17fSxuLnNlbGVjdGlvbi5zZWxlY3Rpb25EZWZzPXQuc2VsZWN0aW9uRGVmcz1bXSxuLnNlbGVjdGlvbi5tZXJnZWRQb2x5Z29ucz10Lm1lcmdlZFBvbHlnb25zPVtdfWZ1bmN0aW9uIFgodCl7cmV0dXJuIHQuX2lkfWZ1bmN0aW9uIFoodCxlLHIsbil7aWYoIXQuY2FsY2RhdGEpcmV0dXJuW107dmFyIGksYSxvLHM9W10sbD1lLm1hcChYKSxjPXIubWFwKFgpO2ZvcihvPTA7bzx0LmNhbGNkYXRhLmxlbmd0aDtvKyspaWYoITA9PT0oYT0oaT10LmNhbGNkYXRhW29dKVswXS50cmFjZSkudmlzaWJsZSYmYS5fbW9kdWxlJiZhLl9tb2R1bGUuc2VsZWN0UG9pbnRzKWlmKCFVKHtzdWJwbG90Om59KXx8YS5zdWJwbG90IT09biYmYS5nZW8hPT1uKWlmKCJzcGxvbSI9PT1hLnR5cGUpe2lmKGEuX3hheGVzW2xbMF1dJiZhLl95YXhlc1tjWzBdXSl7dmFyIHU9SihhLl9tb2R1bGUsaSxlWzBdLHJbMF0pO3Uuc2NlbmU9dC5fZnVsbExheW91dC5fc3Bsb21TY2VuZXNbYS51aWRdLHMucHVzaCh1KX19ZWxzZSBpZigic2Fua2V5Ij09PWEudHlwZSl7dmFyIGY9SihhLl9tb2R1bGUsaSxlWzBdLHJbMF0pO3MucHVzaChmKX1lbHNle2lmKC0xPT09bC5pbmRleE9mKGEueGF4aXMpKWNvbnRpbnVlO2lmKC0xPT09Yy5pbmRleE9mKGEueWF4aXMpKWNvbnRpbnVlO3MucHVzaChKKGEuX21vZHVsZSxpLEModCxhLnhheGlzKSxDKHQsYS55YXhpcykpKX1lbHNlIHMucHVzaChKKGEuX21vZHVsZSxpLGVbMF0sclswXSkpO3JldHVybiBzfWZ1bmN0aW9uIEoodCxlLHIsbil7cmV0dXJue19tb2R1bGU6dCxjZDplLHhheGlzOnIseWF4aXM6bn19ZnVuY3Rpb24gSyh0KXt2YXIgZT10LnNlYXJjaEluZm8uY2RbMF0udHJhY2Uscj10LnBvaW50TnVtYmVyLG49dC5wb2ludE51bWJlcnMsaT1uLmxlbmd0aD4wP25bMF06cjtyZXR1cm4hIWUuc2VsZWN0ZWRwb2ludHMmJmUuc2VsZWN0ZWRwb2ludHMuaW5kZXhPZihpKT4tMX1mdW5jdGlvbiBRKHQsZSxyKXt2YXIgbixpO2ZvcihuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciBvPWVbbl0uY2RbMF0udHJhY2UuX2Z1bGxJbnB1dCxzPXQuX2Z1bGxMYXlvdXQuX3RyYWNlUHJlR1VJW28udWlkXXx8e307dm9pZCAwPT09cy5zZWxlY3RlZHBvaW50cyYmKHMuc2VsZWN0ZWRwb2ludHM9by5faW5wdXQuc2VsZWN0ZWRwb2ludHN8fG51bGwpfWlmKHIpe3ZhciBsPXIucG9pbnRzfHxbXTtmb3Iobj0wO248ZS5sZW5ndGg7bisrKShpPWVbbl0uY2RbMF0udHJhY2UpLl9pbnB1dC5zZWxlY3RlZHBvaW50cz1pLl9mdWxsSW5wdXQuc2VsZWN0ZWRwb2ludHM9W10saS5fZnVsbElucHV0IT09aSYmKGkuc2VsZWN0ZWRwb2ludHM9W10pO2Zvcih2YXIgYz0wO2M8bC5sZW5ndGg7YysrKXt2YXIgdT1sW2NdLGY9dS5kYXRhLGg9dS5mdWxsRGF0YSxwPXUucG9pbnRJbmRleCxkPXUucG9pbnRJbmRpY2VzO2Q/KFtdLnB1c2guYXBwbHkoZi5zZWxlY3RlZHBvaW50cyxkKSxpLl9mdWxsSW5wdXQhPT1pJiZbXS5wdXNoLmFwcGx5KGguc2VsZWN0ZWRwb2ludHMsZCkpOihmLnNlbGVjdGVkcG9pbnRzLnB1c2gocCksaS5fZnVsbElucHV0IT09aSYmaC5zZWxlY3RlZHBvaW50cy5wdXNoKHApKX19ZWxzZSBmb3Iobj0wO248ZS5sZW5ndGg7bisrKWRlbGV0ZShpPWVbbl0uY2RbMF0udHJhY2UpLnNlbGVjdGVkcG9pbnRzLGRlbGV0ZSBpLl9pbnB1dC5zZWxlY3RlZHBvaW50cyxpLl9mdWxsSW5wdXQhPT1pJiZkZWxldGUgaS5fZnVsbElucHV0LnNlbGVjdGVkcG9pbnRzOyFmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0hMSxuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciBpPWVbbl0sbz1pLmNkO2EudHJhY2VJcyhvWzBdLnRyYWNlLCJyZWdsIikmJihyPSEwKTt2YXIgcz1pLl9tb2R1bGUsbD1zLnN0eWxlT25TZWxlY3R8fHMuc3R5bGU7bCYmKGwodCxvLG9bMF0ubm9kZTMpLG9bMF0ubm9kZVJhbmdlUGxvdDMmJmwodCxvLG9bMF0ubm9kZVJhbmdlUGxvdDMpKX1yJiYoUCh0KSxJKHQpKX0odCxlKX1mdW5jdGlvbiAkKHQsZSxyKXtmb3IodmFyIGk9KHI/bi5kaWZmZXJlbmNlOm4udW5pb24pKHtyZWdpb25zOnR9LHtyZWdpb25zOltlXX0pLnJlZ2lvbnMucmV2ZXJzZSgpLGE9MDthPGkubGVuZ3RoO2ErKyl7dmFyIG89aVthXTtvLnN1YnRyYWN0PXN0KG8saS5zbGljZSgwLGEpKX1yZXR1cm4gaX1mdW5jdGlvbiB0dCh0LGUpe2lmKEFycmF5LmlzQXJyYXkodCkpZm9yKHZhciByPWUuY2Qsbj1lLmNkWzBdLnRyYWNlLGk9MDtpPHQubGVuZ3RoO2krKyl0W2ldPWModFtpXSxuLHIpO3JldHVybiB0fWZ1bmN0aW9uIGV0KHQsZSl7Zm9yKHZhciByPVtdLG49MDtuPHQubGVuZ3RoO24rKyl7cltuXT1bXTtmb3IodmFyIGk9MDtpPHRbbl0ubGVuZ3RoO2krKyl7cltuXVtpXT1bXSxyW25dW2ldWzBdPWk/IkwiOiJNIjtmb3IodmFyIGE9MDthPHRbbl1baV0ubGVuZ3RoO2ErKylyW25dW2ldLnB1c2godFtuXVtpXVthXSl9ZXx8cltuXS5wdXNoKFsiWiIscltuXVswXVsxXSxyW25dWzBdWzJdXSl9cmV0dXJuIHJ9ZnVuY3Rpb24gcnQodCxlKXtmb3IodmFyIHIsbixpPVtdLGE9W10sbz0wO288ZS5sZW5ndGg7bysrKXt2YXIgcz1lW29dO249cy5fbW9kdWxlLnNlbGVjdFBvaW50cyhzLHQpLGEucHVzaChuKSxyPXR0KG4scyksaT1pLmNvbmNhdChyKX1yZXR1cm4gaX1mdW5jdGlvbiBudCh0LGUscixuLGkpe3ZhciBhLG8scyxsPSEhbjtpJiYoYT1pLnBsb3RpbmZvLG89aS54YXhlc1swXS5faWQscz1pLnlheGVzWzBdLl9pZCk7dmFyIGM9W10sdT1bXSxmPW90KHQpLGg9dC5fZnVsbExheW91dDtpZihhKXt2YXIgZD1oLl96b29tbGF5ZXIsZz1oLmRyYWdtb2RlLHY9cChnKSx5PW0oZyk7aWYodnx8eSl7dmFyIHg9Qyh0LG8sIngiKSxiPUModCxzLCJ5Iik7aWYoeCYmYil7dmFyIF89ZC5zZWxlY3RBbGwoIi5zZWxlY3Qtb3V0bGluZS0iK2EuaWQpO2lmKF8mJnQuX2Z1bGxMYXlvdXQuX291dGxpbmluZyYmXy5sZW5ndGgpe2Zvcih2YXIgVD1fWzBdWzBdLmdldEF0dHJpYnV0ZSgiZCIpLGs9dyhULHQsYSksQT1bXSxNPTA7TTxrLmxlbmd0aDtNKyspe2Zvcih2YXIgUz1rW01dLEU9W10sTD0wO0w8Uy5sZW5ndGg7TCsrKUUucHVzaChbbHQoeCxTW0xdWzFdKSxsdChiLFNbTF1bMl0pXSk7RS54cmVmPW8sRS55cmVmPXMsRS5zdWJ0cmFjdD1zdChFLEEpLEEucHVzaChFKX1mPWYuY29uY2F0KEEpfX19fXZhciBQPW8mJnM/W28rc106aC5fc3VicGxvdHMuY2FydGVzaWFuOyFmdW5jdGlvbih0KXt2YXIgZT10LmNhbGNkYXRhO2lmKCFlKXJldHVybjtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZVtyXVswXS50cmFjZSxpPXQuX2Z1bGxMYXlvdXQuX3NwbG9tU2NlbmVzO2lmKGkpe3ZhciBhPWlbbi51aWRdO2EmJihhLnNlbGVjdEJhdGNoPVtdKX19fSh0KTtmb3IodmFyIEk9e30sTz0wO088UC5sZW5ndGg7TysrKXt2YXIgej1QW09dLEQ9ei5pbmRleE9mKCJ5IiksUj16LnNsaWNlKDAsRCksRj16LnNsaWNlKEQpLEI9byYmcz9yOnZvaWQgMDtpZihCPWF0KGYsUixGLEIpKXt2YXIgTj1uO2lmKCFsKXt2YXIgaj1DKHQsUiwieCIpLFU9Qyh0LEYsInkiKTtOPVoodCxbal0sW1VdLHopO2Zvcih2YXIgVj0wO1Y8Ti5sZW5ndGg7VisrKXt2YXIgSD1OW1ZdLHE9SC5jZFswXSxHPXEudHJhY2U7aWYoInNjYXR0ZXJnbCI9PT1ILl9tb2R1bGUubmFtZSYmIXEudC54cHgpe3ZhciBZPUcueCxXPUcueSxYPUcuX2xlbmd0aDtxLnQueHB4PVtdLHEudC55cHg9W107Zm9yKHZhciBKPTA7SjxYO0orKylxLnQueHB4W0pdPWouYzJwKFlbSl0pLHEudC55cHhbSl09VS5jMnAoV1tKXSl9InNwbG9tIj09PUguX21vZHVsZS5uYW1lJiYoSVtHLnVpZF18fChJW0cudWlkXT0hMCkpfX12YXIgSz1ydChCLE4pO2M9Yy5jb25jYXQoSyksdT11LmNvbmNhdChOKX19dmFyICQ9e3BvaW50czpjfTtRKHQsdSwkKTt2YXIgdHQ9aC5jbGlja21vZGUuaW5kZXhPZigiZXZlbnQiKT4tMSYmZTtpZighYSYmZSl7dmFyIGV0PW90KHQsITApO2lmKGV0Lmxlbmd0aCl7dmFyIG50PWV0WzBdLnhyZWYscHQ9ZXRbMF0ueXJlZjtpZihudCYmcHQpe3ZhciBkdD1jdChldCk7dXQoW0ModCxudCwieCIpLEModCxwdCwieSIpXSkoJCxkdCl9fXQuX2Z1bGxMYXlvdXQuX25vRW1pdFNlbGVjdGVkQXRTdGFydD90Ll9mdWxsTGF5b3V0Ll9ub0VtaXRTZWxlY3RlZEF0U3RhcnQ9ITE6dHQmJmZ0KHQsJCksaC5fcmVzZWxlY3Q9ITF9aWYoIWEmJmguX2Rlc2VsZWN0KXt2YXIgbXQ9aC5fZGVzZWxlY3Q7KGZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG49MDtuPHIubGVuZ3RoO24rKyl7dmFyIGk9cltuXTtpZihpLnhheGlzJiZpLnhheGlzLl9pZD09PXQmJmkueWF4aXMmJmkueWF4aXMuX2lkPT09ZSlyZXR1cm4hMH1yZXR1cm4hMX0pKG89bXQueHJlZixzPW10LnlyZWYsdSl8fGl0KHQsbyxzLG4pLHR0JiYoJC5wb2ludHMubGVuZ3RoP2Z0KHQsJCk6aHQodCkpLGguX2Rlc2VsZWN0PSExfXJldHVybntldmVudERhdGE6JCxzZWxlY3Rpb25UZXN0ZXJzOnJ9fWZ1bmN0aW9uIGl0KHQsZSxyLG4pe249Wih0LFtDKHQsZSwieCIpXSxbQyh0LHIsInkiKV0sZStyKTtmb3IodmFyIGk9MDtpPG4ubGVuZ3RoO2krKyl7dmFyIGE9bltpXTthLl9tb2R1bGUuc2VsZWN0UG9pbnRzKGEsITEpfVEodCxuKX1mdW5jdGlvbiBhdCh0LGUscixuKXtmb3IodmFyIGksYT0wO2E8dC5sZW5ndGg7YSsrKXt2YXIgbz10W2FdO2lmKGU9PT1vLnhyZWYmJnI9PT1vLnlyZWYpaWYoaSluPUcoaT0kKGksbywhIW8uc3VidHJhY3QpKTtlbHNlIGk9W29dLG49UihvKX1yZXR1cm4gbn1mdW5jdGlvbiBvdCh0LGUpe2Zvcih2YXIgcj1bXSxuPXQuX2Z1bGxMYXlvdXQsaT1uLnNlbGVjdGlvbnMsYT1pLmxlbmd0aCxvPTA7bzxhO28rKylpZighZXx8bz09PW4uX2FjdGl2ZVNlbGVjdGlvbkluZGV4KXt2YXIgcz1pW29dO2lmKHMpe3ZhciBsLGMsdSxmLGgscD1zLnhyZWYsZD1zLnlyZWYsbT1DKHQscCwieCIpLHk9Qyh0LGQsInkiKTtpZigicmVjdCI9PT1zLnR5cGUpe2g9W107dmFyIHg9bHQobSxzLngwKSxiPWx0KG0scy54MSksXz1sdCh5LHMueTApLHc9bHQoeSxzLnkxKTtoPVtbeCxfXSxbeCx3XSxbYix3XSxbYixfXV0sbD1NYXRoLm1pbih4LGIpLGM9TWF0aC5tYXgoeCxiKSx1PU1hdGgubWluKF8sdyksZj1NYXRoLm1heChfLHcpLGgueG1pbj1sLGgueG1heD1jLGgueW1pbj11LGgueW1heD1mLGgueHJlZj1wLGgueXJlZj1kLGguc3VidHJhY3Q9ITEsaC5pc1JlY3Q9ITAsci5wdXNoKGgpfWVsc2UgaWYoInBhdGgiPT09cy50eXBlKWZvcih2YXIgVD1zLnBhdGguc3BsaXQoIloiKSxrPVtdLEE9MDtBPFQubGVuZ3RoO0ErKyl7dmFyIE09VFtBXTtpZihNKXtNKz0iWiI7dmFyIFM9Zy5leHRyYWN0UGF0aENvb3JkcyhNLHYucGFyYW1Jc1gsInJhdyIpLEU9Zy5leHRyYWN0UGF0aENvb3JkcyhNLHYucGFyYW1Jc1ksInJhdyIpO2w9MS8wLGM9LTEvMCx1PTEvMCxmPS0xLzAsaD1bXTtmb3IodmFyIEw9MDtMPFMubGVuZ3RoO0wrKyl7dmFyIFA9bHQobSxTW0xdKSxJPWx0KHksRVtMXSk7aC5wdXNoKFtQLEldKSxsPU1hdGgubWluKFAsbCksYz1NYXRoLm1heChQLGMpLHU9TWF0aC5taW4oSSx1KSxmPU1hdGgubWF4KEksZil9aC54bWluPWwsaC54bWF4PWMsaC55bWluPXUsaC55bWF4PWYsaC54cmVmPXAsaC55cmVmPWQsaC5zdWJ0cmFjdD1zdChoLGspLGsucHVzaChoKSxyLnB1c2goaCl9fX19cmV0dXJuIHJ9ZnVuY3Rpb24gc3QodCxlKXtmb3IodmFyIHI9ITEsbj0wO248ZS5sZW5ndGg7bisrKWZvcih2YXIgYT1lW25dLG89MDtvPHQubGVuZ3RoO28rKylpZihpKHRbb10sYSkpe3I9IXI7YnJlYWt9cmV0dXJuIHJ9ZnVuY3Rpb24gbHQodCxlKXtyZXR1cm4iZGF0ZSI9PT10LnR5cGUmJihlPWUucmVwbGFjZSgiXyIsIiAiKSksImxvZyI9PT10LnR5cGU/dC5jMnAoZSk6dC5yMnAoZSxudWxsLHQuY2FsZW5kYXIpfWZ1bmN0aW9uIGN0KHQpe2Zvcih2YXIgZT10Lmxlbmd0aCxyPVtdLG49MDtuPGU7bisrKXt2YXIgaT10W25dO3I9KHI9ci5jb25jYXQoaSkpLmNvbmNhdChbaVswXV0pfXJldHVybiBmdW5jdGlvbih0KXt0LmlzUmVjdD01PT09dC5sZW5ndGgmJnRbMF1bMF09PT10WzRdWzBdJiZ0WzBdWzFdPT09dFs0XVsxXSYmdFswXVswXT09PXRbMV1bMF0mJnRbMl1bMF09PT10WzNdWzBdJiZ0WzBdWzFdPT09dFszXVsxXSYmdFsxXVsxXT09PXRbMl1bMV18fHRbMF1bMV09PT10WzFdWzFdJiZ0WzJdWzFdPT09dFszXVsxXSYmdFswXVswXT09PXRbM11bMF0mJnRbMV1bMF09PT10WzJdWzBdLHQuaXNSZWN0JiYodC54bWluPU1hdGgubWluKHRbMF1bMF0sdFsyXVswXSksdC54bWF4PU1hdGgubWF4KHRbMF1bMF0sdFsyXVswXSksdC55bWluPU1hdGgubWluKHRbMF1bMV0sdFsyXVsxXSksdC55bWF4PU1hdGgubWF4KHRbMF1bMV0sdFsyXVsxXSkpO3JldHVybiB0fShyKX1mdW5jdGlvbiB1dCh0KXtyZXR1cm4gZnVuY3Rpb24oZSxyKXtmb3IodmFyIG4saSxhPTA7YTx0Lmxlbmd0aDthKyspe3ZhciBvPXRbYV0scz1vLl9pZCxsPXMuY2hhckF0KDApO2lmKHIuaXNSZWN0KXtufHwobj17fSk7dmFyIGM9cltsKyJtaW4iXSx1PXJbbCsibWF4Il07dm9pZCAwIT09YyYmdm9pZCAwIT09dSYmKG5bc109W0IobyxjKSxCKG8sdSldLnNvcnQoUykpfWVsc2UgaXx8KGk9e30pLGlbc109ci5tYXAoTihvKSl9biYmKGUucmFuZ2U9biksaSYmKGUubGFzc29Qb2ludHM9aSl9fWZ1bmN0aW9uIGZ0KHQsZSl7ZSYmKGUuc2VsZWN0aW9ucz0odC5sYXlvdXR8fHt9KS5zZWxlY3Rpb25zfHxbXSksdC5lbWl0KCJwbG90bHlfc2VsZWN0ZWQiLGUpfWZ1bmN0aW9uIGh0KHQpe3QuZW1pdCgicGxvdGx5X2Rlc2VsZWN0IixudWxsKX1lLmV4cG9ydHM9e3Jlc2VsZWN0Om50LHByZXBTZWxlY3Q6ZnVuY3Rpb24odCxlLHIsbixpKXt2YXIgYz0hVShuKSx1PWYoaSksZz1oKGkpLHY9ZChpKSx4PXAoaSksYj1tKGkpLHc9ImRyYXdjaXJjbGUiPT09aSxUPSJkcmF3bGluZSI9PT1pfHx3LGs9bi5nZCxBPWsuX2Z1bGxMYXlvdXQsUz1iJiYiaW1tZWRpYXRlIj09PUEubmV3c2VsZWN0aW9uLm1vZGUmJmMsRT1BLl96b29tbGF5ZXIsQz1uLmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksUD1uLnBsb3RpbmZvLEk9aihQKSxGPWUtQy5sZWZ0LEI9ci1DLnRvcDtBLl9jYWxjSW52ZXJzZVRyYW5zZm9ybShrKTt2YXIgTj1NLmFwcGx5M0RUcmFuc2Zvcm0oQS5faW52VHJhbnNmb3JtKShGLEIpO0Y9TlswXSxCPU5bMV07dmFyIEgscSxYLEosSyx0dCxhdCxvdD1BLl9pbnZTY2FsZVgsc3Q9QS5faW52U2NhbGVZLGx0PUYscHQ9QixkdD0iTSIrRisiLCIrQixtdD1uLnhheGVzWzBdLGd0PW4ueWF4ZXNbMF0sdnQ9bXQuX2xlbmd0aCx5dD1ndC5fbGVuZ3RoLHh0PXQuYWx0S2V5JiYhKHAoaSkmJnYpO1kodCxrLG4pLHUmJihIPUQoW1tGLEJdXSxPLkJFTkRQWCkpO3ZhciBidD1FLnNlbGVjdEFsbCgicGF0aC5zZWxlY3Qtb3V0bGluZS0iK1AuaWQpLmRhdGEoWzFdKSxfdD14P0EubmV3c2hhcGU6QS5uZXdzZWxlY3Rpb247YnQuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5hdHRyKCJjbGFzcyIsInNlbGVjdC1vdXRsaW5lIHNlbGVjdC1vdXRsaW5lLSIrUC5pZCkuc3R5bGUoe29wYWNpdHk6eD9fdC5vcGFjaXR5LzI6MSxmaWxsOngmJiF2P190LmZpbGxjb2xvcjoibm9uZSIsc3Ryb2tlOl90LmxpbmUuY29sb3J8fChjP3MuY29udHJhc3Qoay5fZnVsbExheW91dC5wbG90X2JnY29sb3IpOiIjN2Y3ZjdmIiksInN0cm9rZS1kYXNoYXJyYXkiOm8oX3QubGluZS5kYXNoLF90LmxpbmUud2lkdGgpLCJzdHJva2Utd2lkdGgiOl90LmxpbmUud2lkdGgrInB4Iiwic2hhcGUtcmVuZGVyaW5nIjoiY3Jpc3BFZGdlcyJ9KS5hdHRyKCJmaWxsLXJ1bGUiLCJldmVub2RkIikuY2xhc3NlZCgiY3Vyc29yLW1vdmUiLCEheCkuYXR0cigidHJhbnNmb3JtIixJKS5hdHRyKCJkIixkdCsiWiIpO3ZhciB3dD1FLmFwcGVuZCgicGF0aCIpLmF0dHIoImNsYXNzIiwiem9vbWJveC1jb3JuZXJzIikuc3R5bGUoe2ZpbGw6cy5iYWNrZ3JvdW5kLHN0cm9rZTpzLmRlZmF1bHRMaW5lLCJzdHJva2Utd2lkdGgiOjF9KS5hdHRyKCJ0cmFuc2Zvcm0iLEkpLmF0dHIoImQiLCJNMCwwWiIpLFR0PUEuX3VpZCtPLlNFTEVDVElELGt0PVtdLEF0PVooayxuLnhheGVzLG4ueWF4ZXMsbi5zdWJwbG90KTtTJiYhdC5zaGlmdEtleSYmKG4uX2NsZWFyU3VicGxvdFNlbGVjdGlvbnM9ZnVuY3Rpb24oKXtpZihjKXt2YXIgdD1tdC5faWQsZT1ndC5faWQ7aXQoayx0LGUsQXQpO2Zvcih2YXIgcj0oay5sYXlvdXR8fHt9KS5zZWxlY3Rpb25zfHxbXSxuPVtdLGk9ITEsbz0wO288ci5sZW5ndGg7bysrKXt2YXIgcz1BLnNlbGVjdGlvbnNbb107cy54cmVmIT09dHx8cy55cmVmIT09ZT9uLnB1c2gocltvXSk6aT0hMH1pJiYoay5fZnVsbExheW91dC5fbm9FbWl0U2VsZWN0ZWRBdFN0YXJ0PSEwLGEuY2FsbCgiX2d1aVJlbGF5b3V0IixrLHtzZWxlY3Rpb25zOm59KSl9fSk7dmFyIE10PWZ1bmN0aW9uKHQpe3JldHVybiB0LnBsb3RpbmZvLmZpbGxSYW5nZUl0ZW1zfHx1dCh0LnhheGVzLmNvbmNhdCh0LnlheGVzKSl9KG4pO24ubW92ZUZuPWZ1bmN0aW9uKHQsZSl7bi5fY2xlYXJTdWJwbG90U2VsZWN0aW9ucyYmKG4uX2NsZWFyU3VicGxvdFNlbGVjdGlvbnMoKSxuLl9jbGVhclN1YnBsb3RTZWxlY3Rpb25zPXZvaWQgMCksbHQ9TWF0aC5tYXgoMCxNYXRoLm1pbih2dCxvdCp0K0YpKSxwdD1NYXRoLm1heCgwLE1hdGgubWluKHl0LHN0KmUrQikpO3ZhciByPU1hdGguYWJzKGx0LUYpLGk9TWF0aC5hYnMocHQtQik7aWYoZyl7dmFyIGEsbyxzO2lmKGIpe3ZhciBsPUEuc2VsZWN0ZGlyZWN0aW9uO3N3aXRjaChhPSJhbnkiPT09bD9pPE1hdGgubWluKC42KnIseik/ImgiOnI8TWF0aC5taW4oLjYqaSx6KT8idiI6ImQiOmwpe2Nhc2UiaCI6bz13P3l0LzI6MCxzPXl0O2JyZWFrO2Nhc2UidiI6bz13P3Z0LzI6MCxzPXZ0fX1pZih4KXN3aXRjaChBLm5ld3NoYXBlLmRyYXdkaXJlY3Rpb24pe2Nhc2UidmVydGljYWwiOmE9ImgiLG89dz95dC8yOjAscz15dDticmVhaztjYXNlImhvcml6b250YWwiOmE9InYiLG89dz92dC8yOjAscz12dDticmVhaztjYXNlIm9ydGhvIjpyPGk/KGE9ImgiLG89QixzPXB0KTooYT0idiIsbz1GLHM9bHQpO2JyZWFrO2RlZmF1bHQ6YT0iZCJ9ImgiPT09YT8oKEo9VD9fKHcsW2x0LG9dLFtsdCxzXSk6W1tGLG9dLFtGLHNdLFtsdCxzXSxbbHQsb11dKS54bWluPVQ/bHQ6TWF0aC5taW4oRixsdCksSi54bWF4PVQ/bHQ6TWF0aC5tYXgoRixsdCksSi55bWluPU1hdGgubWluKG8scyksSi55bWF4PU1hdGgubWF4KG8scyksd3QuYXR0cigiZCIsIk0iK0oueG1pbisiLCIrKEIteikrImgtNHYiKzIqeisiaDRaTSIrKEoueG1heC0xKSsiLCIrKEIteikrImg0diIrMip6KyJoLTRaIikpOiJ2Ij09PWE/KChKPVQ/Xyh3LFtvLHB0XSxbcyxwdF0pOltbbyxCXSxbbyxwdF0sW3MscHRdLFtzLEJdXSkueG1pbj1NYXRoLm1pbihvLHMpLEoueG1heD1NYXRoLm1heChvLHMpLEoueW1pbj1UP3B0Ok1hdGgubWluKEIscHQpLEoueW1heD1UP3B0Ok1hdGgubWF4KEIscHQpLHd0LmF0dHIoImQiLCJNIisoRi16KSsiLCIrSi55bWluKyJ2LTRoIisyKnorInY0Wk0iKyhGLXopKyIsIisoSi55bWF4LTEpKyJ2NGgiKzIqeisidi00WiIpKToiZCI9PT1hJiYoKEo9VD9fKHcsW0YsQl0sW2x0LHB0XSk6W1tGLEJdLFtGLHB0XSxbbHQscHRdLFtsdCxCXV0pLnhtaW49TWF0aC5taW4oRixsdCksSi54bWF4PU1hdGgubWF4KEYsbHQpLEoueW1pbj1NYXRoLm1pbihCLHB0KSxKLnltYXg9TWF0aC5tYXgoQixwdCksd3QuYXR0cigiZCIsIk0wLDBaIikpfWVsc2UgdSYmKEguYWRkUHQoW2x0LHB0XSksSj1ILmZpbHRlcmVkKTtpZihuLnNlbGVjdGlvbkRlZnMmJm4uc2VsZWN0aW9uRGVmcy5sZW5ndGg/KFg9JChuLm1lcmdlZFBvbHlnb25zLEoseHQpLEouc3VidHJhY3Q9eHQscT1HKG4uc2VsZWN0aW9uRGVmcy5jb25jYXQoW0pdKSkpOihYPVtKXSxxPVIoSikpLHkoZXQoWCx2KSxidCxuKSxiKXt2YXIgYyxmPW50KGssITEpLGg9Zi5ldmVudERhdGE/Zi5ldmVudERhdGEucG9pbnRzLnNsaWNlKCk6W107Zj1udChrLCExLHEsQXQsbikscT1mLnNlbGVjdGlvblRlc3RlcnMsYXQ9Zi5ldmVudERhdGEsYz1IP0guZmlsdGVyZWQ6Y3QoWCksTC50aHJvdHRsZShUdCxPLlNFTEVDVERFTEFZLChmdW5jdGlvbigpe2Zvcih2YXIgdD0oa3Q9cnQocSxBdCkpLnNsaWNlKCksZT0wO2U8aC5sZW5ndGg7ZSsrKXtmb3IodmFyIHI9aFtlXSxuPSExLGk9MDtpPHQubGVuZ3RoO2krKylpZih0W2ldLmN1cnZlTnVtYmVyPT09ci5jdXJ2ZU51bWJlciYmdFtpXS5wb2ludE51bWJlcj09PXIucG9pbnROdW1iZXIpe249ITA7YnJlYWt9bnx8dC5wdXNoKHIpfXQubGVuZ3RoJiYoYXR8fChhdD17fSksYXQucG9pbnRzPXQpLE10KGF0LGMpLGZ1bmN0aW9uKHQsZSl7dC5lbWl0KCJwbG90bHlfc2VsZWN0aW5nIixlKX0oayxhdCl9KSl9fSxuLmNsaWNrRm49ZnVuY3Rpb24odCxlKXtpZih3dC5yZW1vdmUoKSxrLl9mdWxsTGF5b3V0Ll9hY3RpdmVTaGFwZUluZGV4Pj0wKWsuX2Z1bGxMYXlvdXQuX2RlYWN0aXZhdGVTaGFwZShrKTtlbHNlIGlmKCF4KXt2YXIgcj1BLmNsaWNrbW9kZTtMLmRvbmUoVHQpLnRoZW4oKGZ1bmN0aW9uKCl7aWYoTC5jbGVhcihUdCksMj09PXQpe2ZvcihidC5yZW1vdmUoKSxLPTA7SzxBdC5sZW5ndGg7SysrKSh0dD1BdFtLXSkuX21vZHVsZS5zZWxlY3RQb2ludHModHQsITEpO2lmKFEoayxBdCksVyhuKSxodChrKSxBdC5sZW5ndGgpe3ZhciBpPUF0WzBdLnhheGlzLG89QXRbMF0ueWF4aXM7aWYoaSYmbyl7Zm9yKHZhciBzPVtdLGM9ay5fZnVsbExheW91dC5zZWxlY3Rpb25zLHU9MDt1PGMubGVuZ3RoO3UrKyl7dmFyIGY9Y1t1XTtmJiYoZi54cmVmPT09aS5faWQmJmYueXJlZj09PW8uX2lkfHxzLnB1c2goZikpfXMubGVuZ3RoPGMubGVuZ3RoJiYoay5fZnVsbExheW91dC5fbm9FbWl0U2VsZWN0ZWRBdFN0YXJ0PSEwLGEuY2FsbCgiX2d1aVJlbGF5b3V0IixrLHtzZWxlY3Rpb25zOnN9KSl9fX1lbHNlIHIuaW5kZXhPZigic2VsZWN0Iik+LTEmJlYoZSxrLG4ueGF4ZXMsbi55YXhlcyxuLnN1YnBsb3QsbixidCksImV2ZW50Ij09PXImJmZ0KGssdm9pZCAwKTtsLmNsaWNrKGssZSl9KSkuY2F0Y2goTS5lcnJvcil9fSxuLmRvbmVGbj1mdW5jdGlvbigpe3d0LnJlbW92ZSgpLEwuZG9uZShUdCkudGhlbigoZnVuY3Rpb24oKXtMLmNsZWFyKFR0KSwhUyYmSiYmbi5zZWxlY3Rpb25EZWZzJiYoSi5zdWJ0cmFjdD14dCxuLnNlbGVjdGlvbkRlZnMucHVzaChKKSxuLm1lcmdlZFBvbHlnb25zLmxlbmd0aD0wLFtdLnB1c2guYXBwbHkobi5tZXJnZWRQb2x5Z29ucyxYKSksKFN8fHgpJiZXKG4sUyksbi5kb25lRm5Db21wbGV0ZWQmJm4uZG9uZUZuQ29tcGxldGVkKGt0KSxiJiZmdChrLGF0KX0pKS5jYXRjaChNLmVycm9yKX19LGNsZWFyT3V0bGluZTp4LGNsZWFyU2VsZWN0aW9uc0NhY2hlOlcsc2VsZWN0T25DbGljazpWfX0seyIuLi8uLi9saWIiOjUxNSwiLi4vLi4vbGliL2NsZWFyX2dsX2NhbnZhc2VzIjo0OTksIi4uLy4uL2xpYi9wb2x5Z29uIjo1MjcsIi4uLy4uL2xpYi90aHJvdHRsZSI6NTQyLCIuLi8uLi9wbG90X2FwaS9zdWJyb3V0aW5lcyI6NTU2LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19pZHMiOjU3MCwiLi4vLi4vcmVnaXN0cnkiOjY0NywiLi4vY29sb3IiOjM2NywiLi4vZHJhZ2VsZW1lbnQvaGVscGVycyI6Mzg1LCIuLi9kcmF3aW5nIjozODksIi4uL2Z4Ijo0MDcsIi4uL2Z4L2hlbHBlcnMiOjQwMywiLi4vc2hhcGVzL2NvbnN0YW50cyI6NDU5LCIuLi9zaGFwZXMvZGlzcGxheV9vdXRsaW5lcyI6NDYxLCIuLi9zaGFwZXMvZHJhd19uZXdzaGFwZS9oZWxwZXJzIjo0NjYsIi4uL3NoYXBlcy9kcmF3X25ld3NoYXBlL25ld3NoYXBlcyI6NDY3LCIuLi9zaGFwZXMvaGFuZGxlX291dGxpbmUiOjQ2OCwiLi4vc2hhcGVzL2hlbHBlcnMiOjQ2OSwiLi9jb25zdGFudHMiOjQ0OCwiLi9kcmF3Ijo0NTAsIi4vZHJhd19uZXdzZWxlY3Rpb24vbmV3c2VsZWN0aW9ucyI6NDUzLCIuL2hlbHBlcnMiOjQ1NCwicG9pbnQtaW4tcG9seWdvbi9uZXN0ZWQiOjI1NCxwb2x5Ym9vbGpzOjI1NX1dLDQ1NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9hbm5vdGF0aW9ucy9hdHRyaWJ1dGVzIiksaT10KCIuLi8uLi90cmFjZXMvc2NhdHRlci9hdHRyaWJ1dGVzIikubGluZSxhPXQoIi4uL2RyYXdpbmcvYXR0cmlidXRlcyIpLmRhc2gsbz10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxzPXQoIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKS50ZW1wbGF0ZWRBcnJheTt0KCIuLi8uLi9jb25zdGFudHMvYXhpc19wbGFjZWFibGVfb2JqZWN0cyIpO2UuZXhwb3J0cz1zKCJzaGFwZSIse3Zpc2libGU6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3In0sdHlwZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiY2lyY2xlIiwicmVjdCIsInBhdGgiLCJsaW5lIl0sZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3In0sbGF5ZXI6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImJlbG93IiwiYWJvdmUiXSxkZmx0OiJhYm92ZSIsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LHhyZWY6byh7fSxuLnhyZWYse30pLHhzaXplbW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsic2NhbGVkIiwicGl4ZWwiXSxkZmx0OiJzY2FsZWQiLGVkaXRUeXBlOiJjYWxjK2FycmF5ZHJhdyJ9LHhhbmNob3I6e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3In0seDA6e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3In0seDE6e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3In0seXJlZjpvKHt9LG4ueXJlZix7fSkseXNpemVtb2RlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJzY2FsZWQiLCJwaXhlbCJdLGRmbHQ6InNjYWxlZCIsZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3In0seWFuY2hvcjp7dmFsVHlwZToiYW55IixlZGl0VHlwZToiY2FsYythcnJheWRyYXcifSx5MDp7dmFsVHlwZToiYW55IixlZGl0VHlwZToiY2FsYythcnJheWRyYXcifSx5MTp7dmFsVHlwZToiYW55IixlZGl0VHlwZToiY2FsYythcnJheWRyYXcifSxwYXRoOnt2YWxUeXBlOiJzdHJpbmciLGVkaXRUeXBlOiJjYWxjK2FycmF5ZHJhdyJ9LG9wYWNpdHk6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDoxLGVkaXRUeXBlOiJhcnJheWRyYXcifSxsaW5lOntjb2xvcjpvKHt9LGkuY29sb3Ise2VkaXRUeXBlOiJhcnJheWRyYXcifSksd2lkdGg6byh7fSxpLndpZHRoLHtlZGl0VHlwZToiY2FsYythcnJheWRyYXcifSksZGFzaDpvKHt9LGEse2VkaXRUeXBlOiJhcnJheWRyYXcifSksZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3In0sZmlsbGNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDoicmdiYSgwLDAsMCwwKSIsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LGZpbGxydWxlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJldmVub2RkIiwibm9uemVybyJdLGRmbHQ6ImV2ZW5vZGQiLGVkaXRUeXBlOiJhcnJheWRyYXcifSxlZGl0YWJsZTp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMSxlZGl0VHlwZToiY2FsYythcnJheWRyYXcifSxlZGl0VHlwZToiYXJyYXlkcmF3In0pfSx7Ii4uLy4uL2NvbnN0YW50cy9heGlzX3BsYWNlYWJsZV9vYmplY3RzIjo0ODQsIi4uLy4uL2xpYi9leHRlbmQiOjUwNSwiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6NTU1LCIuLi8uLi90cmFjZXMvc2NhdHRlci9hdHRyaWJ1dGVzIjo5MzYsIi4uL2Fubm90YXRpb25zL2F0dHJpYnV0ZXMiOjM1MCwiLi4vZHJhd2luZy9hdHRyaWJ1dGVzIjozODh9XSw0NTg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGE9dCgiLi9jb25zdGFudHMiKSxvPXQoIi4vaGVscGVycyIpO2Z1bmN0aW9uIHModCl7cmV0dXJuIGModC5saW5lLndpZHRoLHQueHNpemVtb2RlLHQueDAsdC54MSx0LnBhdGgsITEpfWZ1bmN0aW9uIGwodCl7cmV0dXJuIGModC5saW5lLndpZHRoLHQueXNpemVtb2RlLHQueTAsdC55MSx0LnBhdGgsITApfWZ1bmN0aW9uIGModCxlLHIsaSxzLGwpe3ZhciBjPXQvMix1PWw7aWYoInBpeGVsIj09PWUpe3ZhciBmPXM/by5leHRyYWN0UGF0aENvb3JkcyhzLGw/YS5wYXJhbUlzWTphLnBhcmFtSXNYKTpbcixpXSxoPW4uYWdnTnVtcyhNYXRoLm1heCxudWxsLGYpLHA9bi5hZ2dOdW1zKE1hdGgubWluLG51bGwsZiksZD1wPDA/TWF0aC5hYnMocCkrYzpjLG09aD4wP2grYzpjO3JldHVybntwcGFkOmMscHBhZHBsdXM6dT9kOm0scHBhZG1pbnVzOnU/bTpkfX1yZXR1cm57cHBhZDpjfX1mdW5jdGlvbiB1KHQsZSxyLG4saSl7dmFyIHM9ImNhdGVnb3J5Ij09PXQudHlwZXx8Im11bHRpY2F0ZWdvcnkiPT09dC50eXBlP3QucjJjOnQuZDJjO2lmKHZvaWQgMCE9PWUpcmV0dXJuW3MoZSkscyhyKV07aWYobil7dmFyIGwsYyx1LGYsaD0xLzAscD0tMS8wLGQ9bi5tYXRjaChhLnNlZ21lbnRSRSk7Zm9yKCJkYXRlIj09PXQudHlwZSYmKHM9by5kZWNvZGVEYXRlKHMpKSxsPTA7bDxkLmxlbmd0aDtsKyspdm9pZCAwIT09KGM9aVtkW2xdLmNoYXJBdCgwKV0uZHJhd24pJiYoISh1PWRbbF0uc3Vic3RyKDEpLm1hdGNoKGEucGFyYW1SRSkpfHx1Lmxlbmd0aDxjfHwoKGY9cyh1W2NdKSk8aCYmKGg9ZiksZj5wJiYocD1mKSkpO3JldHVybiBwPj1oP1toLHBdOnZvaWQgMH19ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQscj1uLmZpbHRlclZpc2libGUoZS5zaGFwZXMpO2lmKHIubGVuZ3RoJiZ0Ll9mdWxsRGF0YS5sZW5ndGgpZm9yKHZhciBvPTA7bzxyLmxlbmd0aDtvKyspe3ZhciBjLGYsaD1yW29dO2guX2V4dHJlbWVzPXt9O3ZhciBwPWkuZ2V0UmVmVHlwZShoLnhyZWYpLGQ9aS5nZXRSZWZUeXBlKGgueXJlZik7aWYoInBhcGVyIiE9PWgueHJlZiYmImRvbWFpbiIhPT1wKXt2YXIgbT0icGl4ZWwiPT09aC54c2l6ZW1vZGU/aC54YW5jaG9yOmgueDAsZz0icGl4ZWwiPT09aC54c2l6ZW1vZGU/aC54YW5jaG9yOmgueDE7KGY9dShjPWkuZ2V0RnJvbUlkKHQsaC54cmVmKSxtLGcsaC5wYXRoLGEucGFyYW1Jc1gpKSYmKGguX2V4dHJlbWVzW2MuX2lkXT1pLmZpbmRFeHRyZW1lcyhjLGYscyhoKSkpfWlmKCJwYXBlciIhPT1oLnlyZWYmJiJkb21haW4iIT09ZCl7dmFyIHY9InBpeGVsIj09PWgueXNpemVtb2RlP2gueWFuY2hvcjpoLnkwLHk9InBpeGVsIj09PWgueXNpemVtb2RlP2gueWFuY2hvcjpoLnkxOyhmPXUoYz1pLmdldEZyb21JZCh0LGgueXJlZiksdix5LGgucGF0aCxhLnBhcmFtSXNZKSkmJihoLl9leHRyZW1lc1tjLl9pZF09aS5maW5kRXh0cmVtZXMoYyxmLGwoaCkpKX19fX0seyIuLi8uLi9saWIiOjUxNSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjU2NiwiLi9jb25zdGFudHMiOjQ1OSwiLi9oZWxwZXJzIjo0Njl9XSw0NTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtzZWdtZW50UkU6L1tNTEhWUUNUU1pdW15NTEhWUUNUU1pdKi9nLHBhcmFtUkU6L1teXHMsXSsvZyxwYXJhbUlzWDp7TTp7MDohMCxkcmF3bjowfSxMOnswOiEwLGRyYXduOjB9LEg6ezA6ITAsZHJhd246MH0sVjp7fSxROnswOiEwLDI6ITAsZHJhd246Mn0sQzp7MDohMCwyOiEwLDQ6ITAsZHJhd246NH0sVDp7MDohMCxkcmF3bjowfSxTOnswOiEwLDI6ITAsZHJhd246Mn0sWjp7fX0scGFyYW1Jc1k6e006ezE6ITAsZHJhd246MX0sTDp7MTohMCxkcmF3bjoxfSxIOnt9LFY6ezA6ITAsZHJhd246MH0sUTp7MTohMCwzOiEwLGRyYXduOjN9LEM6ezE6ITAsMzohMCw1OiEwLGRyYXduOjV9LFQ6ezE6ITAsZHJhd246MX0sUzp7MTohMCwzOiEwLGRyYXduOjV9LFo6e319LG51bVBhcmFtczp7TToyLEw6MixIOjEsVjoxLFE6NCxDOjYsVDoyLFM6NCxaOjB9fX0se31dLDQ2MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksYT10KCIuLi8uLi9wbG90cy9hcnJheV9jb250YWluZXJfZGVmYXVsdHMiKSxvPXQoIi4vYXR0cmlidXRlcyIpLHM9dCgiLi9oZWxwZXJzIik7ZnVuY3Rpb24gbCh0LGUscil7ZnVuY3Rpb24gYShyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsbyxyLGkpfWlmKGEoInZpc2libGUiKSl7dmFyIGw9YSgicGF0aCIpLGM9InBhdGgiIT09YSgidHlwZSIsbD8icGF0aCI6InJlY3QiKTtjJiZkZWxldGUgZS5wYXRoLGEoImVkaXRhYmxlIiksYSgibGF5ZXIiKSxhKCJvcGFjaXR5IiksYSgiZmlsbGNvbG9yIiksYSgiZmlsbHJ1bGUiKSxhKCJsaW5lLndpZHRoIikmJihhKCJsaW5lLmNvbG9yIiksYSgibGluZS5kYXNoIikpO2Zvcih2YXIgdT1hKCJ4c2l6ZW1vZGUiKSxmPWEoInlzaXplbW9kZSIpLGg9WyJ4IiwieSJdLHA9MDtwPDI7cCsrKXt2YXIgZCxtLGcsdj1oW3BdLHk9disiYW5jaG9yIix4PSJ4Ij09PXY/dTpmLGI9e19mdWxsTGF5b3V0OnJ9LF89aS5jb2VyY2VSZWYodCxlLGIsdix2b2lkIDAsInBhcGVyIik7aWYoInJhbmdlIj09PWkuZ2V0UmVmVHlwZShfKT8oKGQ9aS5nZXRGcm9tSWQoYixfKSkuX3NoYXBlSW5kaWNlcy5wdXNoKGUuX2luZGV4KSxnPXMucmFuZ2VUb1NoYXBlUG9zaXRpb24oZCksbT1zLnNoYXBlUG9zaXRpb25Ub1JhbmdlKGQpKTptPWc9bi5pZGVudGl0eSxjKXt2YXIgdz12KyIwIixUPXYrIjEiLGs9dFt3XSxBPXRbVF07dFt3XT1tKHRbd10sITApLHRbVF09bSh0W1RdLCEwKSwicGl4ZWwiPT09eD8oYSh3LDApLGEoVCwxMCkpOihpLmNvZXJjZVBvc2l0aW9uKGUsYixhLF8sdywuMjUpLGkuY29lcmNlUG9zaXRpb24oZSxiLGEsXyxULC43NSkpLGVbd109ZyhlW3ddKSxlW1RdPWcoZVtUXSksdFt3XT1rLHRbVF09QX1pZigicGl4ZWwiPT09eCl7dmFyIE09dFt5XTt0W3ldPW0odFt5XSwhMCksaS5jb2VyY2VQb3NpdGlvbihlLGIsYSxfLHksLjI1KSxlW3ldPWcoZVt5XSksdFt5XT1NfX1jJiZuLm5vbmVPckFsbCh0LGUsWyJ4MCIsIngxIiwieTAiLCJ5MSJdKX19ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7YSh0LGUse25hbWU6InNoYXBlcyIsaGFuZGxlSXRlbURlZmF1bHRzOmx9KX19LHsiLi4vLi4vbGliIjo1MTUsIi4uLy4uL3Bsb3RzL2FycmF5X2NvbnRhaW5lcl9kZWZhdWx0cyI6NTYxLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NTY2LCIuL2F0dHJpYnV0ZXMiOjQ1NywiLi9oZWxwZXJzIjo0Njl9XSw0NjE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIikuc3RyVHJhbnNsYXRlLGk9dCgiLi4vZHJhZ2VsZW1lbnQiKSxhPXQoIi4uL2RyYWdlbGVtZW50L2hlbHBlcnMiKSxvPWEuZHJhd01vZGUscz1hLnNlbGVjdE1vZGUsbD10KCIuLi8uLi9yZWdpc3RyeSIpLGM9dCgiLi4vY29sb3IiKSx1PXQoIi4vZHJhd19uZXdzaGFwZS9jb25zdGFudHMiKSxmPXUuaTAwMCxoPXUuaTA5MCxwPXUuaTE4MCxkPXUuaTI3MCxtPXQoIi4vaGFuZGxlX291dGxpbmUiKS5jbGVhck91dGxpbmVDb250cm9sbGVycyxnPXQoIi4vZHJhd19uZXdzaGFwZS9oZWxwZXJzIiksdj1nLnBvaW50c09uUmVjdGFuZ2xlLHk9Zy5wb2ludHNPbkVsbGlwc2UseD1nLndyaXRlUGF0aHMsYj10KCIuL2RyYXdfbmV3c2hhcGUvbmV3c2hhcGVzIiksXz10KCIuLi9zZWxlY3Rpb25zL2RyYXdfbmV3c2VsZWN0aW9uL25ld3NlbGVjdGlvbnMiKTtmdW5jdGlvbiB3KHQsZSl7dmFyIHIsbixpLGE9dFtlXVsxXSxvPXRbZV1bMl0scz10Lmxlbmd0aDtyZXR1cm4gbj10W3I9KGUrMSklc11bMV0saT10W3JdWzJdLG49PT1hJiZpPT09byYmKG49dFtyPShlKzIpJXNdWzFdLGk9dFtyXVsyXSksW3IsbixpXX1lLmV4cG9ydHM9ZnVuY3Rpb24gdChlLHIsYSx1KXt1fHwodT0wKTt2YXIgZz1hLmdkO2Z1bmN0aW9uIFQoKXt0KGUscixhLHUrKykseShlWzBdKSYmayh7cmVkcmF3aW5nOiEwfSl9ZnVuY3Rpb24gayh0KXt2YXIgZT17fTt2b2lkIDAhPT1hLmlzQWN0aXZlU2hhcGUmJihhLmlzQWN0aXZlU2hhcGU9ITEsZT1iKHIsYSkpLHZvaWQgMCE9PWEuaXNBY3RpdmVTZWxlY3Rpb24mJihhLmlzQWN0aXZlU2VsZWN0aW9uPSExLGU9XyhyLGEpLGcuX2Z1bGxMYXlvdXQuX3Jlc2VsZWN0PSEwKSxPYmplY3Qua2V5cyhlKS5sZW5ndGgmJmwuY2FsbCgodHx8e30pLnJlZHJhd2luZz8icmVsYXlvdXQiOiJfZ3VpUmVsYXlvdXQiLGcsZSl9dmFyIEEsTSxTLEUsTCxDPWcuX2Z1bGxMYXlvdXQuX3pvb21sYXllcixQPWEuZHJhZ21vZGUsST1vKFApLE89cyhQKTsoKEl8fE8pJiYoZy5fZnVsbExheW91dC5fb3V0bGluaW5nPSEwKSxtKGcpLHIuYXR0cigiZCIseChlKSksdXx8IWEuaXNBY3RpdmVTaGFwZSYmIWEuaXNBY3RpdmVTZWxlY3Rpb24pfHwoTD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbj1lW3JdO3Rbcl09W107Zm9yKHZhciBpPTA7aTxuLmxlbmd0aDtpKyspe3Rbcl1baV09W107Zm9yKHZhciBhPTA7YTxuW2ldLmxlbmd0aDthKyspdFtyXVtpXVthXT1uW2ldW2FdfX1yZXR1cm4gdH0oW10sZSksZnVuY3Rpb24odCl7QT1bXTtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG89ZVtyXSxzPXYobyksbD0hcyYmeShvKTtBW3JdPVtdO2Zvcih2YXIgdT1vLmxlbmd0aCxtPTA7bTx1O20rKylpZigiWiIhPT1vW21dWzBdJiYoIWx8fG09PT1mfHxtPT09aHx8bT09PXB8fG09PT1kKSl7dmFyIHgsYj1zJiZhLmlzQWN0aXZlU2VsZWN0aW9uO2ImJih4PXcobyxtKSk7dmFyIF89b1ttXVsxXSxUPW9bbV1bMl0saz10LmFwcGVuZChiPyJyZWN0IjoiY2lyY2xlIikuYXR0cigiZGF0YS1pIixyKS5hdHRyKCJkYXRhLWoiLG0pLnN0eWxlKHtmaWxsOmMuYmFja2dyb3VuZCxzdHJva2U6Yy5kZWZhdWx0TGluZSwic3Ryb2tlLXdpZHRoIjoxLCJzaGFwZS1yZW5kZXJpbmciOiJjcmlzcEVkZ2VzIn0pO2lmKGIpe3ZhciBNPXhbMV0tXyxTPXhbMl0tVCxFPVM/NTpNYXRoLm1heChNYXRoLm1pbigyNSxNYXRoLmFicyhNKS01KSw1KSxMPU0/NTpNYXRoLm1heChNYXRoLm1pbigyNSxNYXRoLmFicyhTKS01KSw1KTtrLmNsYXNzZWQoUz8iY3Vyc29yLWV3LXJlc2l6ZSI6ImN1cnNvci1ucy1yZXNpemUiLCEwKS5hdHRyKCJ3aWR0aCIsRSkuYXR0cigiaGVpZ2h0IixMKS5hdHRyKCJ4IixfLUUvMikuYXR0cigieSIsVC1MLzIpLmF0dHIoInRyYW5zZm9ybSIsbihNLzIsUy8yKSl9ZWxzZSBrLmNsYXNzZWQoImN1cnNvci1ncmFiIiwhMCkuYXR0cigiciIsNSkuYXR0cigiY3giLF8pLmF0dHIoImN5IixUKTtBW3JdW21dPXtlbGVtZW50Omsubm9kZSgpLGdkOmcscHJlcEZuOnosZG9uZUZuOlIsY2xpY2tGbjpGfSxpLmluaXQoQVtyXVttXSl9fX0oQy5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsIm91dGxpbmUtY29udHJvbGxlcnMiKSksZnVuY3Rpb24oKXtpZihNPVtdLCFlLmxlbmd0aClyZXR1cm47TVswXT17ZWxlbWVudDpyWzBdWzBdLGdkOmcscHJlcEZuOk4sZG9uZUZuOmosY2xpY2tGbjpVfSxpLmluaXQoTVswXSl9KCkpO2Z1bmN0aW9uIHoodCl7Uz0rdC5zcmNFbGVtZW50LmdldEF0dHJpYnV0ZSgiZGF0YS1pIiksRT0rdC5zcmNFbGVtZW50LmdldEF0dHJpYnV0ZSgiZGF0YS1qIiksQVtTXVtFXS5tb3ZlRm49RH1mdW5jdGlvbiBEKHQscil7aWYoZS5sZW5ndGgpe3ZhciBuPUxbU11bRV1bMV0saT1MW1NdW0VdWzJdLG89ZVtTXSxzPW8ubGVuZ3RoO2lmKHYobykpe3ZhciBsPXQsYz1yO2lmKGEuaXNBY3RpdmVTZWxlY3Rpb24pdyhvLEUpWzFdPT09b1tFXVsxXT9jPTA6bD0wO2Zvcih2YXIgdT0wO3U8czt1KyspaWYodSE9PUUpe3ZhciBmPW9bdV07ZlsxXT09PW9bRV1bMV0mJihmWzFdPW4rbCksZlsyXT09PW9bRV1bMl0mJihmWzJdPWkrYyl9aWYob1tFXVsxXT1uK2wsb1tFXVsyXT1pK2MsIXYobykpZm9yKHZhciBoPTA7aDxzO2grKylmb3IodmFyIHA9MDtwPG9baF0ubGVuZ3RoO3ArKylvW2hdW3BdPUxbU11baF1bcF19ZWxzZSBvW0VdWzFdPW4rdCxvW0VdWzJdPWkrcjtUKCl9fWZ1bmN0aW9uIFIoKXtrKCl9ZnVuY3Rpb24gRih0LHIpe2lmKDI9PT10KXtTPStyLnNyY0VsZW1lbnQuZ2V0QXR0cmlidXRlKCJkYXRhLWkiKSxFPStyLnNyY0VsZW1lbnQuZ2V0QXR0cmlidXRlKCJkYXRhLWoiKTt2YXIgbj1lW1NdO3Yobil8fHkobil8fGZ1bmN0aW9uKCl7aWYoZS5sZW5ndGgmJmVbU10mJmVbU10ubGVuZ3RoKXtmb3IodmFyIHQ9W10scj0wO3I8ZVtTXS5sZW5ndGg7cisrKXIhPT1FJiZ0LnB1c2goZVtTXVtyXSk7dC5sZW5ndGg+MSYmKDIhPT10Lmxlbmd0aHx8IloiIT09dFsxXVswXSkmJigwPT09RSYmKHRbMF1bMF09Ik0iKSxlW1NdPXQsVCgpLGsoKSl9fSgpfX1mdW5jdGlvbiBCKHQscil7IWZ1bmN0aW9uKHQscil7aWYoZS5sZW5ndGgpZm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspZm9yKHZhciBpPTA7aTxlW25dLmxlbmd0aDtpKyspZm9yKHZhciBhPTA7YSsyPGVbbl1baV0ubGVuZ3RoO2ErPTIpZVtuXVtpXVthKzFdPUxbbl1baV1bYSsxXSt0LGVbbl1baV1bYSsyXT1MW25dW2ldW2ErMl0rcn0odCxyKSxUKCl9ZnVuY3Rpb24gTih0KXsoUz0rdC5zcmNFbGVtZW50LmdldEF0dHJpYnV0ZSgiZGF0YS1pIikpfHwoUz0wKSxNW1NdLm1vdmVGbj1CfWZ1bmN0aW9uIGooKXtrKCl9ZnVuY3Rpb24gVSh0KXsyPT09dCYmZnVuY3Rpb24odCl7aWYoIXModC5fZnVsbExheW91dC5kcmFnbW9kZSkpcmV0dXJuO20odCk7dmFyIGU9dC5fZnVsbExheW91dC5fYWN0aXZlU2VsZWN0aW9uSW5kZXgscj0odC5sYXlvdXR8fHt9KS5zZWxlY3Rpb25zfHxbXTtpZihlPHIubGVuZ3RoKXtmb3IodmFyIG49W10saT0wO2k8ci5sZW5ndGg7aSsrKWkhPT1lJiZuLnB1c2gocltpXSk7ZGVsZXRlIHQuX2Z1bGxMYXlvdXQuX2FjdGl2ZVNlbGVjdGlvbkluZGV4O3ZhciBhPXQuX2Z1bGxMYXlvdXQuc2VsZWN0aW9uc1tlXTt0Ll9mdWxsTGF5b3V0Ll9kZXNlbGVjdD17eHJlZjphLnhyZWYseXJlZjphLnlyZWZ9LGwuY2FsbCgiX2d1aVJlbGF5b3V0Iix0LHtzZWxlY3Rpb25zOm59KX19KGcpfX19LHsiLi4vLi4vbGliIjo1MTUsIi4uLy4uL3JlZ2lzdHJ5Ijo2NDcsIi4uL2NvbG9yIjozNjcsIi4uL2RyYWdlbGVtZW50IjozODYsIi4uL2RyYWdlbGVtZW50L2hlbHBlcnMiOjM4NSwiLi4vc2VsZWN0aW9ucy9kcmF3X25ld3NlbGVjdGlvbi9uZXdzZWxlY3Rpb25zIjo0NTMsIi4vZHJhd19uZXdzaGFwZS9jb25zdGFudHMiOjQ2NCwiLi9kcmF3X25ld3NoYXBlL2hlbHBlcnMiOjQ2NiwiLi9kcmF3X25ld3NoYXBlL25ld3NoYXBlcyI6NDY3LCIuL2hhbmRsZV9vdXRsaW5lIjo0Njh9XSw0NjI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcmVnaXN0cnkiKSxpPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxvPXQoIi4vZHJhd19uZXdzaGFwZS9oZWxwZXJzIikucmVhZFBhdGhzLHM9dCgiLi9kaXNwbGF5X291dGxpbmVzIiksbD10KCIuL2hhbmRsZV9vdXRsaW5lIikuY2xlYXJPdXRsaW5lQ29udHJvbGxlcnMsYz10KCIuLi9jb2xvciIpLHU9dCgiLi4vZHJhd2luZyIpLGY9dCgiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpLmFycmF5RWRpdG9yLGg9dCgiLi4vZHJhZ2VsZW1lbnQiKSxwPXQoIi4uLy4uL2xpYi9zZXRjdXJzb3IiKSxkPXQoIi4vY29uc3RhbnRzIiksbT10KCIuL2hlbHBlcnMiKSxnPW0uZ2V0UGF0aFN0cmluZztmdW5jdGlvbiB2KHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQ7Zm9yKHZhciByIGluIGUuX3NoYXBlVXBwZXJMYXllci5zZWxlY3RBbGwoInBhdGgiKS5yZW1vdmUoKSxlLl9zaGFwZUxvd2VyTGF5ZXIuc2VsZWN0QWxsKCJwYXRoIikucmVtb3ZlKCksZS5fcGxvdHMpe3ZhciBuPWUuX3Bsb3RzW3JdLnNoYXBlbGF5ZXI7biYmbi5zZWxlY3RBbGwoInBhdGgiKS5yZW1vdmUoKX1mb3IodmFyIGk9MDtpPGUuc2hhcGVzLmxlbmd0aDtpKyspZS5zaGFwZXNbaV0udmlzaWJsZSYmYih0LGkpfWZ1bmN0aW9uIHkodCl7cmV0dXJuISF0Ll9mdWxsTGF5b3V0Ll9vdXRsaW5pbmd9ZnVuY3Rpb24geCh0KXtyZXR1cm4hdC5fY29udGV4dC5lZGl0cy5zaGFwZVBvc2l0aW9ufWZ1bmN0aW9uIGIodCxlKXt0Ll9mdWxsTGF5b3V0Ll9wYXBlcmRpdi5zZWxlY3RBbGwoJy5zaGFwZWxheWVyIFtkYXRhLWluZGV4PSInK2UrJyJdJykucmVtb3ZlKCk7dmFyIHI9bS5tYWtlU2hhcGVzT3B0aW9uc0FuZFBsb3RpbmZvKHQsZSksbD1yLm9wdGlvbnMsYj1yLnBsb3RpbmZvO2lmKGwuX2lucHV0JiYhMSE9PWwudmlzaWJsZSlpZigiYmVsb3ciIT09bC5sYXllcilrKHQuX2Z1bGxMYXlvdXQuX3NoYXBlVXBwZXJMYXllcik7ZWxzZSBpZigicGFwZXIiPT09bC54cmVmfHwicGFwZXIiPT09bC55cmVmKWsodC5fZnVsbExheW91dC5fc2hhcGVMb3dlckxheWVyKTtlbHNle2lmKGIuX2hhZFBsb3RpbmZvKWsoKGIubWFpbnBsb3RpbmZvfHxiKS5zaGFwZWxheWVyKTtlbHNlIGsodC5fZnVsbExheW91dC5fc2hhcGVMb3dlckxheWVyKX1mdW5jdGlvbiBrKHIpe3ZhciBrPWcodCxsKSxBPXsiZGF0YS1pbmRleCI6ZSwiZmlsbC1ydWxlIjpsLmZpbGxydWxlLGQ6a30sTT1sLm9wYWNpdHksUz1sLmZpbGxjb2xvcixFPWwubGluZS53aWR0aD9sLmxpbmUuY29sb3I6InJnYmEoMCwwLDAsMCkiLEw9bC5saW5lLndpZHRoLEM9bC5saW5lLmRhc2g7THx8ITAhPT1sLmVkaXRhYmxlfHwoTD01LEM9InNvbGlkIik7dmFyIFA9IloiIT09a1trLmxlbmd0aC0xXSxJPXgodCkmJmwuZWRpdGFibGUmJnQuX2Z1bGxMYXlvdXQuX2FjdGl2ZVNoYXBlSW5kZXg9PT1lO0kmJihTPVA/InJnYmEoMCwwLDAsMCkiOnQuX2Z1bGxMYXlvdXQuYWN0aXZlc2hhcGUuZmlsbGNvbG9yLE09dC5fZnVsbExheW91dC5hY3RpdmVzaGFwZS5vcGFjaXR5KTt2YXIgTyx6PXIuYXBwZW5kKCJwYXRoIikuYXR0cihBKS5zdHlsZSgib3BhY2l0eSIsTSkuY2FsbChjLnN0cm9rZSxFKS5jYWxsKGMuZmlsbCxTKS5jYWxsKHUuZGFzaExpbmUsQyxMKTtpZihfKHosdCxsKSwoSXx8dC5fY29udGV4dC5lZGl0cy5zaGFwZVBvc2l0aW9uKSYmKE89Zih0LmxheW91dCwic2hhcGVzIixsKSksSSl7ei5zdHlsZSh7Y3Vyc29yOiJtb3ZlIn0pO3ZhciBEPXtlbGVtZW50Onoubm9kZSgpLHBsb3RpbmZvOmIsZ2Q6dCxlZGl0SGVscGVyczpPLGlzQWN0aXZlU2hhcGU6ITB9LFI9byhrLHQpO3MoUix6LEQpfWVsc2UgdC5fY29udGV4dC5lZGl0cy5zaGFwZVBvc2l0aW9uP2Z1bmN0aW9uKHQsZSxyLG8scyxsKXt2YXIgYyxmLHYseCxiLFQsayxBLE0sUyxFLEwsQyxQLEksTyx6PSJwaXhlbCI9PT1yLnhzaXplbW9kZSxEPSJwaXhlbCI9PT1yLnlzaXplbW9kZSxSPSJsaW5lIj09PXIudHlwZSxGPSJwYXRoIj09PXIudHlwZSxCPWwubW9kaWZ5SXRlbSxOPWEuZ2V0RnJvbUlkKHQsci54cmVmKSxqPWEuZ2V0UmVmVHlwZShyLnhyZWYpLFU9YS5nZXRGcm9tSWQodCxyLnlyZWYpLFY9YS5nZXRSZWZUeXBlKHIueXJlZiksSD1tLmdldERhdGFUb1BpeGVsKHQsTiwhMSxqKSxxPW0uZ2V0RGF0YVRvUGl4ZWwodCxVLCEwLFYpLEc9bS5nZXRQaXhlbFRvRGF0YSh0LE4sITEsaiksWT1tLmdldFBpeGVsVG9EYXRhKHQsVSwhMCxWKSxXPVI/ZnVuY3Rpb24oKXt2YXIgdD1NYXRoLm1heChyLmxpbmUud2lkdGgsMTApLG49cy5hcHBlbmQoImciKS5hdHRyKCJkYXRhLWluZGV4IixvKTtuLmFwcGVuZCgicGF0aCIpLmF0dHIoImQiLGUuYXR0cigiZCIpKS5zdHlsZSh7Y3Vyc29yOiJtb3ZlIiwic3Ryb2tlLXdpZHRoIjp0LCJzdHJva2Utb3BhY2l0eSI6IjAifSk7dmFyIGk9eyJmaWxsLW9wYWNpdHkiOiIwIn0sYT1NYXRoLm1heCh0LzIsMTApO3JldHVybiBuLmFwcGVuZCgiY2lyY2xlIikuYXR0cih7ImRhdGEtbGluZS1wb2ludCI6InN0YXJ0LXBvaW50IixjeDp6P0goci54YW5jaG9yKStyLngwOkgoci54MCksY3k6RD9xKHIueWFuY2hvciktci55MDpxKHIueTApLHI6YX0pLnN0eWxlKGkpLmNsYXNzZWQoImN1cnNvci1ncmFiIiwhMCksbi5hcHBlbmQoImNpcmNsZSIpLmF0dHIoeyJkYXRhLWxpbmUtcG9pbnQiOiJlbmQtcG9pbnQiLGN4Ono/SChyLnhhbmNob3IpK3IueDE6SChyLngxKSxjeTpEP3Eoci55YW5jaG9yKS1yLnkxOnEoci55MSkscjphfSkuc3R5bGUoaSkuY2xhc3NlZCgiY3Vyc29yLWdyYWIiLCEwKSxufSgpOmUsWD17ZWxlbWVudDpXLm5vZGUoKSxnZDp0LHByZXBGbjpmdW5jdGlvbihuKXtpZih5KHQpKXJldHVybjt6JiYoYj1IKHIueGFuY2hvcikpO0QmJihUPXEoci55YW5jaG9yKSk7InBhdGgiPT09ci50eXBlP0k9ci5wYXRoOihjPXo/ci54MDpIKHIueDApLGY9RD9yLnkwOnEoci55MCksdj16P3IueDE6SChyLngxKSx4PUQ/ci55MTpxKHIueTEpKTtjPHY/KE09YyxDPSJ4MCIsUz12LFA9IngxIik6KE09dixDPSJ4MSIsUz1jLFA9IngwIik7IUQmJmY8eHx8RCYmZj54PyhrPWYsRT0ieTAiLEE9eCxMPSJ5MSIpOihrPXgsRT0ieTEiLEE9ZixMPSJ5MCIpO1oobiksUShzLHIpLGZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1lLnhyZWYsaT1lLnlyZWYsbz1hLmdldEZyb21JZChyLG4pLHM9YS5nZXRGcm9tSWQocixpKSxsPSIiOyJwYXBlciI9PT1ufHxvLmF1dG9yYW5nZXx8KGwrPW4pOyJwYXBlciI9PT1pfHxzLmF1dG9yYW5nZXx8KGwrPWkpO3Uuc2V0Q2xpcFVybCh0LGw/ImNsaXAiK3IuX2Z1bGxMYXlvdXQuX3VpZCtsOm51bGwscil9KGUscix0KSxYLm1vdmVGbj0ibW92ZSI9PT1PP0o6SyxYLmFsdEtleT1uLmFsdEtleX0sZG9uZUZuOmZ1bmN0aW9uKCl7aWYoeSh0KSlyZXR1cm47cChlKSwkKHMpLF8oZSx0LHIpLG4uY2FsbCgiX2d1aVJlbGF5b3V0Iix0LGwuZ2V0VXBkYXRlT2JqKCkpfSxjbGlja0ZuOmZ1bmN0aW9uKCl7aWYoeSh0KSlyZXR1cm47JChzKX19O2Z1bmN0aW9uIFoocil7aWYoeSh0KSlPPW51bGw7ZWxzZSBpZihSKU89InBhdGgiPT09ci50YXJnZXQudGFnTmFtZT8ibW92ZSI6InN0YXJ0LXBvaW50Ij09PXIudGFyZ2V0LmF0dHJpYnV0ZXNbImRhdGEtbGluZS1wb2ludCJdLnZhbHVlPyJyZXNpemUtb3Zlci1zdGFydC1wb2ludCI6InJlc2l6ZS1vdmVyLWVuZC1wb2ludCI7ZWxzZXt2YXIgbj1YLmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaT1uLnJpZ2h0LW4ubGVmdCxhPW4uYm90dG9tLW4udG9wLG89ci5jbGllbnRYLW4ubGVmdCxzPXIuY2xpZW50WS1uLnRvcCxsPSFGJiZpPjEwJiZhPjEwJiYhci5zaGlmdEtleT9oLmdldEN1cnNvcihvL2ksMS1zL2EpOiJtb3ZlIjtwKGUsbCksTz1sLnNwbGl0KCItIilbMF19fWZ1bmN0aW9uIEoobixpKXtpZigicGF0aCI9PT1yLnR5cGUpe3ZhciBhPWZ1bmN0aW9uKHQpe3JldHVybiB0fSxvPWEsbD1hO3o/QigieGFuY2hvciIsci54YW5jaG9yPUcoYituKSk6KG89ZnVuY3Rpb24odCl7cmV0dXJuIEcoSCh0KStuKX0sTiYmImRhdGUiPT09Ti50eXBlJiYobz1tLmVuY29kZURhdGUobykpKSxEP0IoInlhbmNob3IiLHIueWFuY2hvcj1ZKFQraSkpOihsPWZ1bmN0aW9uKHQpe3JldHVybiBZKHEodCkraSl9LFUmJiJkYXRlIj09PVUudHlwZSYmKGw9bS5lbmNvZGVEYXRlKGwpKSksQigicGF0aCIsci5wYXRoPXcoSSxvLGwpKX1lbHNlIHo/QigieGFuY2hvciIsci54YW5jaG9yPUcoYituKSk6KEIoIngwIixyLngwPUcoYytuKSksQigieDEiLHIueDE9Ryh2K24pKSksRD9CKCJ5YW5jaG9yIixyLnlhbmNob3I9WShUK2kpKTooQigieTAiLHIueTA9WShmK2kpKSxCKCJ5MSIsci55MT1ZKHgraSkpKTtlLmF0dHIoImQiLGcodCxyKSksUShzLHIpfWZ1bmN0aW9uIEsobixpKXtpZihGKXt2YXIgYT1mdW5jdGlvbih0KXtyZXR1cm4gdH0sbz1hLGw9YTt6P0IoInhhbmNob3IiLHIueGFuY2hvcj1HKGIrbikpOihvPWZ1bmN0aW9uKHQpe3JldHVybiBHKEgodCkrbil9LE4mJiJkYXRlIj09PU4udHlwZSYmKG89bS5lbmNvZGVEYXRlKG8pKSksRD9CKCJ5YW5jaG9yIixyLnlhbmNob3I9WShUK2kpKToobD1mdW5jdGlvbih0KXtyZXR1cm4gWShxKHQpK2kpfSxVJiYiZGF0ZSI9PT1VLnR5cGUmJihsPW0uZW5jb2RlRGF0ZShsKSkpLEIoInBhdGgiLHIucGF0aD13KEksbyxsKSl9ZWxzZSBpZihSKXtpZigicmVzaXplLW92ZXItc3RhcnQtcG9pbnQiPT09Tyl7dmFyIHU9YytuLGg9RD9mLWk6ZitpO0IoIngwIixyLngwPXo/dTpHKHUpKSxCKCJ5MCIsci55MD1EP2g6WShoKSl9ZWxzZSBpZigicmVzaXplLW92ZXItZW5kLXBvaW50Ij09PU8pe3ZhciBwPXYrbixkPUQ/eC1pOngraTtCKCJ4MSIsci54MT16P3A6RyhwKSksQigieTEiLHIueTE9RD9kOlkoZCkpfX1lbHNle3ZhciB5PWZ1bmN0aW9uKHQpe3JldHVybi0xIT09Ty5pbmRleE9mKHQpfSxfPXkoIm4iKSxqPXkoInMiKSxWPXkoInciKSxXPXkoImUiKSxYPV8/aytpOmssWj1qP0EraTpBLEo9Vj9NK246TSxLPVc/UytuOlM7RCYmKF8mJihYPWstaSksaiYmKFo9QS1pKSksKCFEJiZaLVg+MTB8fEQmJlgtWj4xMCkmJihCKEUscltFXT1EP1g6WShYKSksQihMLHJbTF09RD9aOlkoWikpKSxLLUo+MTAmJihCKEMscltDXT16P0o6RyhKKSksQihQLHJbUF09ej9LOkcoSykpKX1lLmF0dHIoImQiLGcodCxyKSksUShzLHIpfWZ1bmN0aW9uIFEodCxlKXsoenx8RCkmJmZ1bmN0aW9uKCl7dmFyIHI9InBhdGgiIT09ZS50eXBlLG49dC5zZWxlY3RBbGwoIi52aXN1YWwtY3VlIikuZGF0YShbMF0pO24uZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5hdHRyKHtmaWxsOiIjZmZmIiwiZmlsbC1ydWxlIjoiZXZlbm9kZCIsc3Ryb2tlOiIjMDAwIiwic3Ryb2tlLXdpZHRoIjoxfSkuY2xhc3NlZCgidmlzdWFsLWN1ZSIsITApO3ZhciBhPUgoej9lLnhhbmNob3I6aS5taWRSYW5nZShyP1tlLngwLGUueDFdOm0uZXh0cmFjdFBhdGhDb29yZHMoZS5wYXRoLGQucGFyYW1Jc1gpKSksbz1xKEQ/ZS55YW5jaG9yOmkubWlkUmFuZ2Uocj9bZS55MCxlLnkxXTptLmV4dHJhY3RQYXRoQ29vcmRzKGUucGF0aCxkLnBhcmFtSXNZKSkpO2lmKGE9bS5yb3VuZFBvc2l0aW9uRm9yU2hhcnBTdHJva2VSZW5kZXJpbmcoYSwxKSxvPW0ucm91bmRQb3NpdGlvbkZvclNoYXJwU3Ryb2tlUmVuZGVyaW5nKG8sMSkseiYmRCl7dmFyIHM9Ik0iKyhhLTEtMSkrIiwiKyhvLTEtMSkrImgtOHYyaDggdjhoMnYtOCBoOHYtMmgtOCB2LThoLTIgWiI7bi5hdHRyKCJkIixzKX1lbHNlIGlmKHope3ZhciBsPSJNIisoYS0xLTEpKyIsIisoby05LTEpKyJ2MTggaDIgdi0xOCBaIjtuLmF0dHIoImQiLGwpfWVsc2V7dmFyIGM9Ik0iKyhhLTktMSkrIiwiKyhvLTEtMSkrImgxOCB2MiBoLTE4IFoiO24uYXR0cigiZCIsYyl9fSgpfWZ1bmN0aW9uICQodCl7dC5zZWxlY3RBbGwoIi52aXN1YWwtY3VlIikucmVtb3ZlKCl9aC5pbml0KFgpLFcubm9kZSgpLm9ubW91c2Vtb3ZlPVp9KHQseixsLGUscixPKTohMD09PWwuZWRpdGFibGUmJnouc3R5bGUoInBvaW50ZXItZXZlbnRzIixQfHxjLm9wYWNpdHkoUykqTTw9LjU/InN0cm9rZSI6ImFsbCIpO3oubm9kZSgpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24odCxlKXtpZigheCh0KSlyZXR1cm47dmFyIHI9K2Uubm9kZSgpLmdldEF0dHJpYnV0ZSgiZGF0YS1pbmRleCIpO2lmKHI+PTApe2lmKHI9PT10Ll9mdWxsTGF5b3V0Ll9hY3RpdmVTaGFwZUluZGV4KXJldHVybiB2b2lkIFQodCk7dC5fZnVsbExheW91dC5fYWN0aXZlU2hhcGVJbmRleD1yLHQuX2Z1bGxMYXlvdXQuX2RlYWN0aXZhdGVTaGFwZT1ULHYodCl9fSh0LHopfSkpfX1mdW5jdGlvbiBfKHQsZSxyKXt2YXIgbj0oci54cmVmK3IueXJlZikucmVwbGFjZSgvcGFwZXIvZywiIikucmVwbGFjZSgvW3h5el1bMS05XSogKmRvbWFpbi9nLCIiKTt1LnNldENsaXBVcmwodCxuPyJjbGlwIitlLl9mdWxsTGF5b3V0Ll91aWQrbjpudWxsLGUpfWZ1bmN0aW9uIHcodCxlLHIpe3JldHVybiB0LnJlcGxhY2UoZC5zZWdtZW50UkUsKGZ1bmN0aW9uKHQpe3ZhciBuPTAsaT10LmNoYXJBdCgwKSxhPWQucGFyYW1Jc1hbaV0sbz1kLnBhcmFtSXNZW2ldLHM9ZC5udW1QYXJhbXNbaV07cmV0dXJuIGkrdC5zdWJzdHIoMSkucmVwbGFjZShkLnBhcmFtUkUsKGZ1bmN0aW9uKHQpe3JldHVybiBuPj1zfHwoYVtuXT90PWUodCk6b1tuXSYmKHQ9cih0KSksbisrKSx0fSkpfSkpfWZ1bmN0aW9uIFQodCl7eCh0KSYmKHQuX2Z1bGxMYXlvdXQuX2FjdGl2ZVNoYXBlSW5kZXg+PTAmJihsKHQpLGRlbGV0ZSB0Ll9mdWxsTGF5b3V0Ll9hY3RpdmVTaGFwZUluZGV4LHYodCkpKX1lLmV4cG9ydHM9e2RyYXc6dixkcmF3T25lOmIsZXJhc2VBY3RpdmVTaGFwZTpmdW5jdGlvbih0KXtpZigheCh0KSlyZXR1cm47bCh0KTt2YXIgZT10Ll9mdWxsTGF5b3V0Ll9hY3RpdmVTaGFwZUluZGV4LHI9KHQubGF5b3V0fHx7fSkuc2hhcGVzfHxbXTtpZihlPHIubGVuZ3RoKXtmb3IodmFyIGk9W10sYT0wO2E8ci5sZW5ndGg7YSsrKWEhPT1lJiZpLnB1c2goclthXSk7ZGVsZXRlIHQuX2Z1bGxMYXlvdXQuX2FjdGl2ZVNoYXBlSW5kZXgsbi5jYWxsKCJfZ3VpUmVsYXlvdXQiLHQse3NoYXBlczppfSl9fX19LHsiLi4vLi4vbGliIjo1MTUsIi4uLy4uL2xpYi9zZXRjdXJzb3IiOjUzNiwiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6NTU1LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NTY2LCIuLi8uLi9yZWdpc3RyeSI6NjQ3LCIuLi9jb2xvciI6MzY3LCIuLi9kcmFnZWxlbWVudCI6Mzg2LCIuLi9kcmF3aW5nIjozODksIi4vY29uc3RhbnRzIjo0NTksIi4vZGlzcGxheV9vdXRsaW5lcyI6NDYxLCIuL2RyYXdfbmV3c2hhcGUvaGVscGVycyI6NDY2LCIuL2hhbmRsZV9vdXRsaW5lIjo0NjgsIi4vaGVscGVycyI6NDY5fV0sNDYzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2RyYXdpbmcvYXR0cmlidXRlcyIpLmRhc2gsaT10KCIuLi8uLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdDtlLmV4cG9ydHM9e25ld3NoYXBlOntsaW5lOntjb2xvcjp7dmFsVHlwZToiY29sb3IiLGVkaXRUeXBlOiJub25lIn0sd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDo0LGVkaXRUeXBlOiJub25lIn0sZGFzaDppKHt9LG4se2RmbHQ6InNvbGlkIixlZGl0VHlwZToibm9uZSJ9KSxlZGl0VHlwZToibm9uZSJ9LGZpbGxjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6InJnYmEoMCwwLDAsMCkiLGVkaXRUeXBlOiJub25lIn0sZmlsbHJ1bGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImV2ZW5vZGQiLCJub256ZXJvIl0sZGZsdDoiZXZlbm9kZCIsZWRpdFR5cGU6Im5vbmUifSxvcGFjaXR5Ont2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6MSxlZGl0VHlwZToibm9uZSJ9LGxheWVyOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJiZWxvdyIsImFib3ZlIl0sZGZsdDoiYWJvdmUiLGVkaXRUeXBlOiJub25lIn0sZHJhd2RpcmVjdGlvbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsib3J0aG8iLCJob3Jpem9udGFsIiwidmVydGljYWwiLCJkaWFnb25hbCJdLGRmbHQ6ImRpYWdvbmFsIixlZGl0VHlwZToibm9uZSJ9LGVkaXRUeXBlOiJub25lIn0sYWN0aXZlc2hhcGU6e2ZpbGxjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6InJnYigyNTUsMCwyNTUpIixlZGl0VHlwZToibm9uZSJ9LG9wYWNpdHk6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDouNSxlZGl0VHlwZToibm9uZSJ9LGVkaXRUeXBlOiJub25lIn19fSx7Ii4uLy4uLy4uL2xpYi9leHRlbmQiOjUwNSwiLi4vLi4vZHJhd2luZy9hdHRyaWJ1dGVzIjozODh9XSw0NjQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtDSVJDTEVfU0lERVM6MzIsaTAwMDowLGkwOTA6OCxpMTgwOjE2LGkyNzA6MjQsY29zNDU6TWF0aC5jb3MoTWF0aC5QSS80KSxzaW40NTpNYXRoLnNpbihNYXRoLlBJLzQpLFNRUlQyOk1hdGguc3FydCgyKX19LHt9XSw0NjU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29sb3IiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe2lmKHIoIm5ld3NoYXBlLmRyYXdkaXJlY3Rpb24iKSxyKCJuZXdzaGFwZS5sYXllciIpLHIoIm5ld3NoYXBlLmZpbGxjb2xvciIpLHIoIm5ld3NoYXBlLmZpbGxydWxlIikscigibmV3c2hhcGUub3BhY2l0eSIpLHIoIm5ld3NoYXBlLmxpbmUud2lkdGgiKSl7dmFyIGk9KHR8fHt9KS5wbG90X2JnY29sb3J8fCIjRkZGIjtyKCJuZXdzaGFwZS5saW5lLmNvbG9yIixuLmNvbnRyYXN0KGkpKSxyKCJuZXdzaGFwZS5saW5lLmRhc2giKX1yKCJhY3RpdmVzaGFwZS5maWxsY29sb3IiKSxyKCJhY3RpdmVzaGFwZS5vcGFjaXR5Iil9fSx7Ii4uLy4uL2NvbG9yIjozNjd9XSw0NjY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgicGFyc2Utc3ZnLXBhdGgiKSxpPXQoIi4vY29uc3RhbnRzIiksYT1pLkNJUkNMRV9TSURFUyxvPWkuU1FSVDIscz10KCIuLi8uLi9zZWxlY3Rpb25zL2hlbHBlcnMiKSxsPXMucDJyLGM9cy5yMnAsdT1bMCwzLDQsNSw2LDEsMl0sZj1bMCwzLDQsMSwyXTtmdW5jdGlvbiBoKHQsZSl7cmV0dXJuIE1hdGguYWJzKHQtZSk8PTFlLTZ9ZnVuY3Rpb24gcCh0LGUpe3ZhciByPWVbMV0tdFsxXSxuPWVbMl0tdFsyXTtyZXR1cm4gTWF0aC5zcXJ0KHIqcituKm4pfXIud3JpdGVQYXRocz1mdW5jdGlvbih0KXt2YXIgZT10Lmxlbmd0aDtpZighZSlyZXR1cm4iTTAsMFoiO2Zvcih2YXIgcj0iIixuPTA7bjxlO24rKylmb3IodmFyIGk9dFtuXS5sZW5ndGgsYT0wO2E8aTthKyspe3ZhciBvPXRbbl1bYV1bMF07aWYoIloiPT09bylyKz0iWiI7ZWxzZSBmb3IodmFyIHM9dFtuXVthXS5sZW5ndGgsbD0wO2w8cztsKyspe3ZhciBjPWw7IlEiPT09b3x8IlMiPT09bz9jPWZbbF06IkMiPT09byYmKGM9dVtsXSkscis9dFtuXVthXVtjXSxsPjAmJmw8cy0xJiYocis9IiwiKX19cmV0dXJuIHJ9LHIucmVhZFBhdGhzPWZ1bmN0aW9uKHQsZSxyLGkpe3ZhciBvLHMsdSxmPW4odCksaD1bXSxwPS0xLGQ9MCxtPTAsZz1mdW5jdGlvbigpe3M9ZCx1PW19O2coKTtmb3IodmFyIHY9MDt2PGYubGVuZ3RoO3YrKyl7dmFyIHkseCxiLF8sdz1bXSxUPWZbdl1bMF0saz1UO3N3aXRjaChUKXtjYXNlIk0iOnArKyxoW3BdPVtdLGQ9K2Zbdl1bMV0sbT0rZlt2XVsyXSx3LnB1c2goW2ssZCxtXSksZygpO2JyZWFrO2Nhc2UiUSI6Y2FzZSJTIjp5PStmW3ZdWzFdLGI9K2Zbdl1bMl0sZD0rZlt2XVszXSxtPStmW3ZdWzRdLHcucHVzaChbayxkLG0seSxiXSk7YnJlYWs7Y2FzZSJDIjp5PStmW3ZdWzFdLGI9K2Zbdl1bMl0seD0rZlt2XVszXSxfPStmW3ZdWzRdLGQ9K2Zbdl1bNV0sbT0rZlt2XVs2XSx3LnB1c2goW2ssZCxtLHksYix4LF9dKTticmVhaztjYXNlIlQiOmNhc2UiTCI6ZD0rZlt2XVsxXSxtPStmW3ZdWzJdLHcucHVzaChbayxkLG1dKTticmVhaztjYXNlIkgiOms9IkwiLGQ9K2Zbdl1bMV0sdy5wdXNoKFtrLGQsbV0pO2JyZWFrO2Nhc2UiViI6az0iTCIsbT0rZlt2XVsxXSx3LnB1c2goW2ssZCxtXSk7YnJlYWs7Y2FzZSJBIjprPSJMIjt2YXIgQT0rZlt2XVsxXSxNPStmW3ZdWzJdOytmW3ZdWzRdfHwoQT0tQSxNPS1NKTt2YXIgUz1kLUEsRT1tO2ZvcihvPTE7bzw9YS8yO28rKyl7dmFyIEw9MipNYXRoLlBJKm8vYTt3LnB1c2goW2ssUytBKk1hdGguY29zKEwpLEUrTSpNYXRoLnNpbihMKV0pfWJyZWFrO2Nhc2UiWiI6ZD09PXMmJm09PT11fHwoZD1zLG09dSx3LnB1c2goW2ssZCxtXSkpfWZvcih2YXIgQz0ocnx8e30pLmRvbWFpbixQPWUuX2Z1bGxMYXlvdXQuX3NpemUsST1yJiYicGl4ZWwiPT09ci54c2l6ZW1vZGUsTz1yJiYicGl4ZWwiPT09ci55c2l6ZW1vZGUsej0hMT09PWksRD0wO0Q8dy5sZW5ndGg7RCsrKXtmb3Iobz0wO28rMjw3O28rPTIpe3ZhciBSPXdbRF1bbysxXSxGPXdbRF1bbysyXTt2b2lkIDAhPT1SJiZ2b2lkIDAhPT1GJiYoZD1SLG09RixyJiYoci54YXhpcyYmci54YXhpcy5wMnI/KHomJihSLT1yLnhheGlzLl9vZmZzZXQpLFI9ST9jKHIueGF4aXMsci54YW5jaG9yKStSOmwoci54YXhpcyxSKSk6KHomJihSLT1QLmwpLEM/Uj1DLnhbMF0rUi9QLnc6Ui89UC53KSxyLnlheGlzJiZyLnlheGlzLnAycj8oeiYmKEYtPXIueWF4aXMuX29mZnNldCksRj1PP2Moci55YXhpcyxyLnlhbmNob3IpLUY6bChyLnlheGlzLEYpKTooeiYmKEYtPVAudCksRj1DP0MueVsxXS1GL1AuaDoxLUYvUC5oKSksd1tEXVtvKzFdPVIsd1tEXVtvKzJdPUYpfWhbcF0ucHVzaCh3W0RdLnNsaWNlKCkpfX1yZXR1cm4gaH0sci5wb2ludHNPblJlY3RhbmdsZT1mdW5jdGlvbih0KXtpZig1IT09dC5sZW5ndGgpcmV0dXJuITE7Zm9yKHZhciBlPTE7ZTwzO2UrKyl7aWYoIWgodFswXVtlXS10WzFdW2VdLHRbM11bZV0tdFsyXVtlXSkpcmV0dXJuITE7aWYoIWgodFswXVtlXS10WzNdW2VdLHRbMV1bZV0tdFsyXVtlXSkpcmV0dXJuITF9cmV0dXJuISghaCh0WzBdWzFdLHRbMV1bMV0pJiYhaCh0WzBdWzFdLHRbM11bMV0pKSYmISEocCh0WzBdLHRbMV0pKnAodFswXSx0WzNdKSl9LHIucG9pbnRzT25FbGxpcHNlPWZ1bmN0aW9uKHQpe3ZhciBlPXQubGVuZ3RoO2lmKGUhPT1hKzEpcmV0dXJuITE7ZT1hO2Zvcih2YXIgcj0wO3I8ZTtyKyspe3ZhciBuPSgyKmUtciklZSxpPShlLzIrbiklZSxvPShlLzIrciklZTtpZighaChwKHRbcl0sdFtvXSkscCh0W25dLHRbaV0pKSlyZXR1cm4hMX1yZXR1cm4hMH0sci5oYW5kbGVFbGxpcHNlPWZ1bmN0aW9uKHQsZSxuKXtpZighdClyZXR1cm5bZSxuXTt2YXIgaT1yLmVsbGlwc2VPdmVyKHt4MDplWzBdLHkwOmVbMV0seDE6blswXSx5MTpuWzFdfSkscz0oaS54MStpLngwKS8yLGw9KGkueTEraS55MCkvMixjPShpLngxLWkueDApLzIsdT0oaS55MS1pLnkwKS8yO2N8fChjPXUvPW8pLHV8fCh1PWMvPW8pO2Zvcih2YXIgZj1bXSxoPTA7aDxhO2grKyl7dmFyIHA9MipoKk1hdGguUEkvYTtmLnB1c2goW3MrYypNYXRoLmNvcyhwKSxsK3UqTWF0aC5zaW4ocCldKX1yZXR1cm4gZn0sci5lbGxpcHNlT3Zlcj1mdW5jdGlvbih0KXt2YXIgZT10LngwLHI9dC55MCxuPXQueDEsaT10LnkxLGE9bi1lLHM9aS1yLGw9KChlLT1hKStuKS8yLGM9KChyLT1zKStpKS8yO3JldHVybnt4MDpsLShhKj1vKSx5MDpjLShzKj1vKSx4MTpsK2EseTE6YytzfX0sci5maXhEYXRlc0ZvclBhdGhzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj0iZGF0ZSI9PT1lLnR5cGUsaT0iZGF0ZSI9PT1yLnR5cGU7aWYoIW4mJiFpKXJldHVybiB0O2Zvcih2YXIgYT0wO2E8dC5sZW5ndGg7YSsrKWZvcih2YXIgbz0wO288dFthXS5sZW5ndGg7bysrKWZvcih2YXIgcz0wO3MrMjx0W2FdW29dLmxlbmd0aDtzKz0yKW4mJih0W2FdW29dW3MrMV09dFthXVtvXVtzKzFdLnJlcGxhY2UoIiAiLCJfIikpLGkmJih0W2FdW29dW3MrMl09dFthXVtvXVtzKzJdLnJlcGxhY2UoIiAiLCJfIikpO3JldHVybiB0fX0seyIuLi8uLi9zZWxlY3Rpb25zL2hlbHBlcnMiOjQ1NCwiLi9jb25zdGFudHMiOjQ2NCwicGFyc2Utc3ZnLXBhdGgiOjI1MH1dLDQ2NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9kcmFnZWxlbWVudC9oZWxwZXJzIiksaT1uLmRyYXdNb2RlLGE9bi5vcGVuTW9kZSxvPXQoIi4vY29uc3RhbnRzIikscz1vLmkwMDAsbD1vLmkwOTAsYz1vLmkxODAsdT1vLmkyNzAsZj1vLmNvczQ1LGg9by5zaW40NSxwPXQoIi4uLy4uL3NlbGVjdGlvbnMvaGVscGVycyIpLGQ9cC5wMnIsbT1wLnIycCxnPXQoIi4uLy4vaGFuZGxlX291dGxpbmUiKS5jbGVhck91dGxpbmUsdj10KCIuL2hlbHBlcnMiKSx5PXYucmVhZFBhdGhzLHg9di53cml0ZVBhdGhzLGI9di5lbGxpcHNlT3ZlcixfPXYuZml4RGF0ZXNGb3JQYXRocztlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZih0Lmxlbmd0aCl7dmFyIHI9dFswXVswXTtpZihyKXt2YXIgbj1yLmdldEF0dHJpYnV0ZSgiZCIpLG89ZS5nZCxwPW8uX2Z1bGxMYXlvdXQubmV3c2hhcGUsdj1lLnBsb3RpbmZvLHc9di54YXhpcyxUPXYueWF4aXMsaz0hIXYuZG9tYWlufHwhdi54YXhpcyxBPSEhdi5kb21haW58fCF2LnlheGlzLE09ZS5pc0FjdGl2ZVNoYXBlLFM9ZS5kcmFnbW9kZSxFPShvLmxheW91dHx8e30pLnNoYXBlc3x8W107aWYoIWkoUykmJnZvaWQgMCE9PU0pe3ZhciBMPW8uX2Z1bGxMYXlvdXQuX2FjdGl2ZVNoYXBlSW5kZXg7aWYoTDxFLmxlbmd0aClzd2l0Y2goby5fZnVsbExheW91dC5zaGFwZXNbTF0udHlwZSl7Y2FzZSJyZWN0IjpTPSJkcmF3cmVjdCI7YnJlYWs7Y2FzZSJjaXJjbGUiOlM9ImRyYXdjaXJjbGUiO2JyZWFrO2Nhc2UibGluZSI6Uz0iZHJhd2xpbmUiO2JyZWFrO2Nhc2UicGF0aCI6dmFyIEM9RVtMXS5wYXRofHwiIjtTPSJaIj09PUNbQy5sZW5ndGgtMV0/ImRyYXdjbG9zZWRwYXRoIjoiZHJhd29wZW5wYXRoIn19dmFyIFAsST1hKFMpLE89eShuLG8sdixNKSx6PXtlZGl0YWJsZTohMCx4cmVmOms/InBhcGVyIjp3Ll9pZCx5cmVmOkE/InBhcGVyIjpULl9pZCxsYXllcjpwLmxheWVyLG9wYWNpdHk6cC5vcGFjaXR5LGxpbmU6e2NvbG9yOnAubGluZS5jb2xvcix3aWR0aDpwLmxpbmUud2lkdGgsZGFzaDpwLmxpbmUuZGFzaH19O2lmKEl8fCh6LmZpbGxjb2xvcj1wLmZpbGxjb2xvcix6LmZpbGxydWxlPXAuZmlsbHJ1bGUpLDE9PT1PLmxlbmd0aCYmKFA9T1swXSksUCYmNT09PVAubGVuZ3RoJiYiZHJhd3JlY3QiPT09Uyl6LnR5cGU9InJlY3QiLHoueDA9UFswXVsxXSx6LnkwPVBbMF1bMl0sei54MT1QWzJdWzFdLHoueTE9UFsyXVsyXTtlbHNlIGlmKFAmJiJkcmF3bGluZSI9PT1TKXoudHlwZT0ibGluZSIsei54MD1QWzBdWzFdLHoueTA9UFswXVsyXSx6LngxPVBbMV1bMV0sei55MT1QWzFdWzJdO2Vsc2UgaWYoUCYmImRyYXdjaXJjbGUiPT09Uyl7ei50eXBlPSJjaXJjbGUiO3ZhciBEPVBbc11bMV0sUj1QW2xdWzFdLEY9UFtjXVsxXSxCPVBbdV1bMV0sTj1QW3NdWzJdLGo9UFtsXVsyXSxVPVBbY11bMl0sVj1QW3VdWzJdLEg9di54YXhpcyYmKCJkYXRlIj09PXYueGF4aXMudHlwZXx8ImxvZyI9PT12LnhheGlzLnR5cGUpLHE9di55YXhpcyYmKCJkYXRlIj09PXYueWF4aXMudHlwZXx8ImxvZyI9PT12LnlheGlzLnR5cGUpO0gmJihEPW0odi54YXhpcyxEKSxSPW0odi54YXhpcyxSKSxGPW0odi54YXhpcyxGKSxCPW0odi54YXhpcyxCKSkscSYmKE49bSh2LnlheGlzLE4pLGo9bSh2LnlheGlzLGopLFU9bSh2LnlheGlzLFUpLFY9bSh2LnlheGlzLFYpKTt2YXIgRz0oUitCKS8yLFk9KE4rVSkvMixXPWIoe3gwOkcseTA6WSx4MTpHKyhCLVIrRi1EKS8yKmYseTE6WSsoVi1qK1UtTikvMipofSk7SCYmKFcueDA9ZCh2LnhheGlzLFcueDApLFcueDE9ZCh2LnhheGlzLFcueDEpKSxxJiYoVy55MD1kKHYueWF4aXMsVy55MCksVy55MT1kKHYueWF4aXMsVy55MSkpLHoueDA9Vy54MCx6LnkwPVcueTAsei54MT1XLngxLHoueTE9Vy55MX1lbHNlIHoudHlwZT0icGF0aCIsdyYmVCYmXyhPLHcsVCksei5wYXRoPXgoTyksUD1udWxsO2cobyk7Zm9yKHZhciBYPWUuZWRpdEhlbHBlcnMsWj0oWHx8e30pLm1vZGlmeUl0ZW0sSj1bXSxLPTA7SzxFLmxlbmd0aDtLKyspe3ZhciBRPW8uX2Z1bGxMYXlvdXQuc2hhcGVzW0tdO2lmKEpbS109US5faW5wdXQsdm9pZCAwIT09TSYmSz09PW8uX2Z1bGxMYXlvdXQuX2FjdGl2ZVNoYXBlSW5kZXgpe3ZhciAkPXo7c3dpdGNoKFEudHlwZSl7Y2FzZSJsaW5lIjpjYXNlInJlY3QiOmNhc2UiY2lyY2xlIjpaKCJ4MCIsJC54MCksWigieDEiLCQueDEpLFooInkwIiwkLnkwKSxaKCJ5MSIsJC55MSk7YnJlYWs7Y2FzZSJwYXRoIjpaKCJwYXRoIiwkLnBhdGgpfX19cmV0dXJuIHZvaWQgMD09PU0/KEoucHVzaCh6KSxKKTpYP1guZ2V0VXBkYXRlT2JqKCk6e319fX19LHsiLi4vLi4vZHJhZ2VsZW1lbnQvaGVscGVycyI6Mzg1LCIuLi8uLi9zZWxlY3Rpb25zL2hlbHBlcnMiOjQ1NCwiLi4vLi9oYW5kbGVfb3V0bGluZSI6NDY4LCIuL2NvbnN0YW50cyI6NDY0LCIuL2hlbHBlcnMiOjQ2Nn1dLDQ2ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2NsZWFyT3V0bGluZUNvbnRyb2xsZXJzOmZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQuX3pvb21sYXllcjtlJiZlLnNlbGVjdEFsbCgiLm91dGxpbmUtY29udHJvbGxlcnMiKS5yZW1vdmUoKX0sY2xlYXJPdXRsaW5lOmZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQuX3pvb21sYXllcjtlJiZlLnNlbGVjdEFsbCgiLnNlbGVjdC1vdXRsaW5lIikucmVtb3ZlKCksdC5fZnVsbExheW91dC5fb3V0bGluaW5nPSExfX19LHt9XSw0Njk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9jb25zdGFudHMiKSxpPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKTtyLnJhbmdlVG9TaGFwZVBvc2l0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiJsb2ciPT09dC50eXBlP3QucjJkOmZ1bmN0aW9uKHQpe3JldHVybiB0fX0sci5zaGFwZVBvc2l0aW9uVG9SYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4ibG9nIj09PXQudHlwZT90LmQycjpmdW5jdGlvbih0KXtyZXR1cm4gdH19LHIuZGVjb2RlRGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZSYmKGU9ZS5yZXBsYWNlKCJfIiwiICIpKSx0KGUpfX0sci5lbmNvZGVEYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdChlKS5yZXBsYWNlKCIgIiwiXyIpfX0sci5leHRyYWN0UGF0aENvb3Jkcz1mdW5jdGlvbih0LGUscil7dmFyIGE9W107cmV0dXJuIHQubWF0Y2gobi5zZWdtZW50UkUpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBvPWVbdC5jaGFyQXQoMCldLmRyYXduO2lmKHZvaWQgMCE9PW8pe3ZhciBzPXQuc3Vic3RyKDEpLm1hdGNoKG4ucGFyYW1SRSk7aWYocyYmIShzLmxlbmd0aDxvKSl7dmFyIGw9c1tvXSxjPXI/bDppLmNsZWFuTnVtYmVyKGwpO2EucHVzaChjKX19fSkpLGF9LHIuZ2V0RGF0YVRvUGl4ZWw9ZnVuY3Rpb24odCxlLG4saSl7dmFyIGEsbz10Ll9mdWxsTGF5b3V0Ll9zaXplO2lmKGUpaWYoImRvbWFpbiI9PT1pKWE9ZnVuY3Rpb24odCl7cmV0dXJuIGUuX2xlbmd0aCoobj8xLXQ6dCkrZS5fb2Zmc2V0fTtlbHNle3ZhciBzPXIuc2hhcGVQb3NpdGlvblRvUmFuZ2UoZSk7YT1mdW5jdGlvbih0KXtyZXR1cm4gZS5fb2Zmc2V0K2UucjJwKHModCwhMCkpfSwiZGF0ZSI9PT1lLnR5cGUmJihhPXIuZGVjb2RlRGF0ZShhKSl9ZWxzZSBhPW4/ZnVuY3Rpb24odCl7cmV0dXJuIG8udCtvLmgqKDEtdCl9OmZ1bmN0aW9uKHQpe3JldHVybiBvLmwrby53KnR9O3JldHVybiBhfSxyLmdldFBpeGVsVG9EYXRhPWZ1bmN0aW9uKHQsZSxuLGkpe3ZhciBhLG89dC5fZnVsbExheW91dC5fc2l6ZTtpZihlKWlmKCJkb21haW4iPT09aSlhPWZ1bmN0aW9uKHQpe3ZhciByPSh0LWUuX29mZnNldCkvZS5fbGVuZ3RoO3JldHVybiBuPzEtcjpyfTtlbHNle3ZhciBzPXIucmFuZ2VUb1NoYXBlUG9zaXRpb24oZSk7YT1mdW5jdGlvbih0KXtyZXR1cm4gcyhlLnAycih0LWUuX29mZnNldCkpfX1lbHNlIGE9bj9mdW5jdGlvbih0KXtyZXR1cm4gMS0odC1vLnQpL28uaH06ZnVuY3Rpb24odCl7cmV0dXJuKHQtby5sKS9vLnd9O3JldHVybiBhfSxyLnJvdW5kUG9zaXRpb25Gb3JTaGFycFN0cm9rZVJlbmRlcmluZz1mdW5jdGlvbih0LGUpe3ZhciByPTE9PT1NYXRoLnJvdW5kKGUlMiksbj1NYXRoLnJvdW5kKHQpO3JldHVybiByP24rLjU6bn0sci5tYWtlU2hhcGVzT3B0aW9uc0FuZFBsb3RpbmZvPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5fZnVsbExheW91dC5zaGFwZXNbZV18fHt9LG49dC5fZnVsbExheW91dC5fcGxvdHNbci54cmVmK3IueXJlZl07cmV0dXJuISFuP24uX2hhZFBsb3RpbmZvPSEwOihuPXt9LHIueHJlZiYmInBhcGVyIiE9PXIueHJlZiYmKG4ueGF4aXM9dC5fZnVsbExheW91dFtyLnhyZWYrImF4aXMiXSksci55cmVmJiYicGFwZXIiIT09ci55cmVmJiYobi55YXhpcz10Ll9mdWxsTGF5b3V0W3IueXJlZisiYXhpcyJdKSksbi54c2l6ZW1vZGU9ci54c2l6ZW1vZGUsbi55c2l6ZW1vZGU9ci55c2l6ZW1vZGUsbi54YW5jaG9yPXIueGFuY2hvcixuLnlhbmNob3I9ci55YW5jaG9yLHtvcHRpb25zOnIscGxvdGluZm86bn19LHIubWFrZVNlbGVjdGlvbnNPcHRpb25zQW5kUGxvdGluZm89ZnVuY3Rpb24odCxlKXt2YXIgcj10Ll9mdWxsTGF5b3V0LnNlbGVjdGlvbnNbZV18fHt9LG49dC5fZnVsbExheW91dC5fcGxvdHNbci54cmVmK3IueXJlZl07cmV0dXJuISFuP24uX2hhZFBsb3RpbmZvPSEwOihuPXt9LHIueHJlZiYmKG4ueGF4aXM9dC5fZnVsbExheW91dFtyLnhyZWYrImF4aXMiXSksci55cmVmJiYobi55YXhpcz10Ll9mdWxsTGF5b3V0W3IueXJlZisiYXhpcyJdKSkse29wdGlvbnM6cixwbG90aW5mbzpufX0sci5nZXRQYXRoU3RyaW5nPWZ1bmN0aW9uKHQsZSl7dmFyIG8scyxsLGMsdSxmLGgscCxkPWUudHlwZSxtPWEuZ2V0UmVmVHlwZShlLnhyZWYpLGc9YS5nZXRSZWZUeXBlKGUueXJlZiksdj1hLmdldEZyb21JZCh0LGUueHJlZikseT1hLmdldEZyb21JZCh0LGUueXJlZikseD10Ll9mdWxsTGF5b3V0Ll9zaXplO2lmKHY/ImRvbWFpbiI9PT1tP3M9ZnVuY3Rpb24odCl7cmV0dXJuIHYuX29mZnNldCt2Ll9sZW5ndGgqdH06KG89ci5zaGFwZVBvc2l0aW9uVG9SYW5nZSh2KSxzPWZ1bmN0aW9uKHQpe3JldHVybiB2Ll9vZmZzZXQrdi5yMnAobyh0LCEwKSl9KTpzPWZ1bmN0aW9uKHQpe3JldHVybiB4LmwreC53KnR9LHk/ImRvbWFpbiI9PT1nP2M9ZnVuY3Rpb24odCl7cmV0dXJuIHkuX29mZnNldCt5Ll9sZW5ndGgqKDEtdCl9OihsPXIuc2hhcGVQb3NpdGlvblRvUmFuZ2UoeSksYz1mdW5jdGlvbih0KXtyZXR1cm4geS5fb2Zmc2V0K3kucjJwKGwodCwhMCkpfSk6Yz1mdW5jdGlvbih0KXtyZXR1cm4geC50K3guaCooMS10KX0sInBhdGgiPT09ZClyZXR1cm4gdiYmImRhdGUiPT09di50eXBlJiYocz1yLmRlY29kZURhdGUocykpLHkmJiJkYXRlIj09PXkudHlwZSYmKGM9ci5kZWNvZGVEYXRlKGMpKSxmdW5jdGlvbih0LGUscil7dmFyIGE9dC5wYXRoLG89dC54c2l6ZW1vZGUscz10LnlzaXplbW9kZSxsPXQueGFuY2hvcixjPXQueWFuY2hvcjtyZXR1cm4gYS5yZXBsYWNlKG4uc2VnbWVudFJFLChmdW5jdGlvbih0KXt2YXIgYT0wLHU9dC5jaGFyQXQoMCksZj1uLnBhcmFtSXNYW3VdLGg9bi5wYXJhbUlzWVt1XSxwPW4ubnVtUGFyYW1zW3VdLGQ9dC5zdWJzdHIoMSkucmVwbGFjZShuLnBhcmFtUkUsKGZ1bmN0aW9uKHQpe3JldHVybiBmW2FdP3Q9InBpeGVsIj09PW8/ZShsKStOdW1iZXIodCk6ZSh0KTpoW2FdJiYodD0icGl4ZWwiPT09cz9yKGMpLU51bWJlcih0KTpyKHQpKSwrK2E+cCYmKHQ9IlgiKSx0fSkpO3JldHVybiBhPnAmJihkPWQucmVwbGFjZSgvW1xzLF0qWC4qLywiIiksaS5sb2coIklnbm9yaW5nIGV4dHJhIHBhcmFtcyBpbiBzZWdtZW50ICIrdCkpLHUrZH0pKX0oZSxzLGMpO2lmKCJwaXhlbCI9PT1lLnhzaXplbW9kZSl7dmFyIGI9cyhlLnhhbmNob3IpO3U9YitlLngwLGY9YitlLngxfWVsc2UgdT1zKGUueDApLGY9cyhlLngxKTtpZigicGl4ZWwiPT09ZS55c2l6ZW1vZGUpe3ZhciBfPWMoZS55YW5jaG9yKTtoPV8tZS55MCxwPV8tZS55MX1lbHNlIGg9YyhlLnkwKSxwPWMoZS55MSk7aWYoImxpbmUiPT09ZClyZXR1cm4iTSIrdSsiLCIraCsiTCIrZisiLCIrcDtpZigicmVjdCI9PT1kKXJldHVybiJNIit1KyIsIitoKyJIIitmKyJWIitwKyJIIit1KyJaIjt2YXIgdz0odStmKS8yLFQ9KGgrcCkvMixrPU1hdGguYWJzKHctdSksQT1NYXRoLmFicyhULWgpLE09IkEiK2srIiwiK0EsUz13K2srIiwiK1Q7cmV0dXJuIk0iK1MrTSsiIDAgMSwxICIrKHcrIiwiKyhULUEpKStNKyIgMCAwLDEgIitTKyJaIn19LHsiLi4vLi4vbGliIjo1MTUsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo1NjYsIi4vY29uc3RhbnRzIjo0NTl9XSw0NzA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9kcmF3Iik7ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJjb21wb25lbnQiLG5hbWU6InNoYXBlcyIsbGF5b3V0QXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlMYXlvdXREZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksc3VwcGx5RHJhd05ld1NoYXBlRGVmYXVsdHM6dCgiLi9kcmF3X25ld3NoYXBlL2RlZmF1bHRzIiksaW5jbHVkZUJhc2VQbG90OnQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9pbmNsdWRlX2NvbXBvbmVudHMiKSgic2hhcGVzIiksY2FsY0F1dG9yYW5nZTp0KCIuL2NhbGNfYXV0b3JhbmdlIiksZHJhdzpuLmRyYXcsZHJhd09uZTpuLmRyYXdPbmV9fSx7Ii4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9pbmNsdWRlX2NvbXBvbmVudHMiOjU3NywiLi9hdHRyaWJ1dGVzIjo0NTcsIi4vY2FsY19hdXRvcmFuZ2UiOjQ1OCwiLi9kZWZhdWx0cyI6NDYwLCIuL2RyYXciOjQ2MiwiLi9kcmF3X25ld3NoYXBlL2RlZmF1bHRzIjo0NjV9XSw0NzE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIiksaT10KCIuLi8uLi9wbG90cy9wYWRfYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZERlZXBBbGwsbz10KCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIikub3ZlcnJpZGVBbGwscz10KCIuLi8uLi9wbG90cy9hbmltYXRpb25fYXR0cmlidXRlcyIpLGw9dCgiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpLnRlbXBsYXRlZEFycmF5LGM9dCgiLi9jb25zdGFudHMiKSx1PWwoInN0ZXAiLHt2aXNpYmxlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwfSxtZXRob2Q6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInJlc3R5bGUiLCJyZWxheW91dCIsImFuaW1hdGUiLCJ1cGRhdGUiLCJza2lwIl0sZGZsdDoicmVzdHlsZSJ9LGFyZ3M6e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGZyZWVMZW5ndGg6ITAsaXRlbXM6W3t2YWxUeXBlOiJhbnkifSx7dmFsVHlwZToiYW55In0se3ZhbFR5cGU6ImFueSJ9XX0sbGFiZWw6e3ZhbFR5cGU6InN0cmluZyJ9LHZhbHVlOnt2YWxUeXBlOiJzdHJpbmcifSxleGVjdXRlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwfX0pO2UuZXhwb3J0cz1vKGwoInNsaWRlciIse3Zpc2libGU6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITB9LGFjdGl2ZTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjB9LHN0ZXBzOnUsbGVubW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiZnJhY3Rpb24iLCJwaXhlbHMiXSxkZmx0OiJmcmFjdGlvbiJ9LGxlbjp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjF9LHg6e3ZhbFR5cGU6Im51bWJlciIsbWluOi0yLG1heDozLGRmbHQ6MH0scGFkOmEoaSh7ZWRpdFR5cGU6ImFycmF5ZHJhdyJ9KSx7fSx7dDp7ZGZsdDoyMH19KSx4YW5jaG9yOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJhdXRvIiwibGVmdCIsImNlbnRlciIsInJpZ2h0Il0sZGZsdDoibGVmdCJ9LHk6e3ZhbFR5cGU6Im51bWJlciIsbWluOi0yLG1heDozLGRmbHQ6MH0seWFuY2hvcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiYXV0byIsInRvcCIsIm1pZGRsZSIsImJvdHRvbSJdLGRmbHQ6InRvcCJ9LHRyYW5zaXRpb246e2R1cmF0aW9uOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MTUwfSxlYXNpbmc6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpzLnRyYW5zaXRpb24uZWFzaW5nLnZhbHVlcyxkZmx0OiJjdWJpYy1pbi1vdXQifX0sY3VycmVudHZhbHVlOnt2aXNpYmxlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwfSx4YW5jaG9yOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJsZWZ0IiwiY2VudGVyIiwicmlnaHQiXSxkZmx0OiJsZWZ0In0sb2Zmc2V0Ont2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MTB9LHByZWZpeDp7dmFsVHlwZToic3RyaW5nIn0sc3VmZml4Ont2YWxUeXBlOiJzdHJpbmcifSxmb250Om4oe30pfSxmb250Om4oe30pLGFjdGl2ZWJnY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OmMuZ3JpcEJnQWN0aXZlQ29sb3J9LGJnY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OmMucmFpbEJnQ29sb3J9LGJvcmRlcmNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpjLnJhaWxCb3JkZXJDb2xvcn0sYm9yZGVyd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDpjLnJhaWxCb3JkZXJXaWR0aH0sdGlja2xlbjp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OmMudGlja0xlbmd0aH0sdGlja2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpjLnRpY2tDb2xvcn0sdGlja3dpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MX0sbWlub3J0aWNrbGVuOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6Yy5taW5vclRpY2tMZW5ndGh9fSksImFycmF5ZHJhdyIsImZyb20tcm9vdCIpfSx7Ii4uLy4uL2xpYi9leHRlbmQiOjUwNSwiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyI6NTQ4LCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIjo1NTUsIi4uLy4uL3Bsb3RzL2FuaW1hdGlvbl9hdHRyaWJ1dGVzIjo1NjAsIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyI6NTk0LCIuLi8uLi9wbG90cy9wYWRfYXR0cmlidXRlcyI6NjI3LCIuL2NvbnN0YW50cyI6NDcyfV0sNDcyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17bmFtZToic2xpZGVycyIsY29udGFpbmVyQ2xhc3NOYW1lOiJzbGlkZXItY29udGFpbmVyIixncm91cENsYXNzTmFtZToic2xpZGVyLWdyb3VwIixpbnB1dEFyZWFDbGFzczoic2xpZGVyLWlucHV0LWFyZWEiLHJhaWxSZWN0Q2xhc3M6InNsaWRlci1yYWlsLXJlY3QiLHJhaWxUb3VjaFJlY3RDbGFzczoic2xpZGVyLXJhaWwtdG91Y2gtcmVjdCIsZ3JpcFJlY3RDbGFzczoic2xpZGVyLWdyaXAtcmVjdCIsdGlja1JlY3RDbGFzczoic2xpZGVyLXRpY2stcmVjdCIsaW5wdXRQcm94eUNsYXNzOiJzbGlkZXItaW5wdXQtcHJveHkiLGxhYmVsc0NsYXNzOiJzbGlkZXItbGFiZWxzIixsYWJlbEdyb3VwQ2xhc3M6InNsaWRlci1sYWJlbC1ncm91cCIsbGFiZWxDbGFzczoic2xpZGVyLWxhYmVsIixjdXJyZW50VmFsdWVDbGFzczoic2xpZGVyLWN1cnJlbnQtdmFsdWUiLHJhaWxIZWlnaHQ6NSxtZW51SW5kZXhBdHRyTmFtZToic2xpZGVyLWFjdGl2ZS1pbmRleCIsYXV0b01hcmdpbklkUm9vdDoic2xpZGVyLSIsbWluV2lkdGg6MzAsbWluSGVpZ2h0OjMwLHRleHRQYWRYOjQwLGFycm93T2Zmc2V0WDo0LHJhaWxSYWRpdXM6MixyYWlsV2lkdGg6NSxyYWlsQm9yZGVyOjQscmFpbEJvcmRlcldpZHRoOjEscmFpbEJvcmRlckNvbG9yOiIjYmVjOGQ5IixyYWlsQmdDb2xvcjoiI2Y4ZmFmYyIscmFpbEluc2V0Ojgsc3RlcEluc2V0OjEwLGdyaXBSYWRpdXM6MTAsZ3JpcFdpZHRoOjIwLGdyaXBIZWlnaHQ6MjAsZ3JpcEJvcmRlcjoyMCxncmlwQm9yZGVyV2lkdGg6MSxncmlwQm9yZGVyQ29sb3I6IiNiZWM4ZDkiLGdyaXBCZ0NvbG9yOiIjZjZmOGZhIixncmlwQmdBY3RpdmVDb2xvcjoiI2RiZGRlMCIsbGFiZWxQYWRkaW5nOjgsbGFiZWxPZmZzZXQ6MCx0aWNrV2lkdGg6MSx0aWNrQ29sb3I6IiMzMzMiLHRpY2tPZmZzZXQ6MjUsdGlja0xlbmd0aDo3LG1pbm9yVGlja09mZnNldDoyNSxtaW5vclRpY2tDb2xvcjoiIzMzMyIsbWlub3JUaWNrTGVuZ3RoOjQsY3VycmVudFZhbHVlUGFkZGluZzo4LGN1cnJlbnRWYWx1ZUluc2V0OjB9fSx7fV0sNDczOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vcGxvdHMvYXJyYXlfY29udGFpbmVyX2RlZmF1bHRzIiksYT10KCIuL2F0dHJpYnV0ZXMiKSxvPXQoIi4vY29uc3RhbnRzIikubmFtZSxzPWEuc3RlcHM7ZnVuY3Rpb24gbCh0LGUscil7ZnVuY3Rpb24gbyhyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsYSxyLGkpfWZvcih2YXIgcz1pKHQsZSx7bmFtZToic3RlcHMiLGhhbmRsZUl0ZW1EZWZhdWx0czpjfSksbD0wLHU9MDt1PHMubGVuZ3RoO3UrKylzW3VdLnZpc2libGUmJmwrKztpZihsPDI/ZS52aXNpYmxlPSExOm8oInZpc2libGUiKSl7ZS5fc3RlcENvdW50PWw7dmFyIGY9ZS5fdmlzaWJsZVN0ZXBzPW4uZmlsdGVyVmlzaWJsZShzKTsoc1tvKCJhY3RpdmUiKV18fHt9KS52aXNpYmxlfHwoZS5hY3RpdmU9ZlswXS5faW5kZXgpLG8oIngiKSxvKCJ5Iiksbi5ub25lT3JBbGwodCxlLFsieCIsInkiXSksbygieGFuY2hvciIpLG8oInlhbmNob3IiKSxvKCJsZW4iKSxvKCJsZW5tb2RlIiksbygicGFkLnQiKSxvKCJwYWQuciIpLG8oInBhZC5iIiksbygicGFkLmwiKSxuLmNvZXJjZUZvbnQobywiZm9udCIsci5mb250KSxvKCJjdXJyZW50dmFsdWUudmlzaWJsZSIpJiYobygiY3VycmVudHZhbHVlLnhhbmNob3IiKSxvKCJjdXJyZW50dmFsdWUucHJlZml4IiksbygiY3VycmVudHZhbHVlLnN1ZmZpeCIpLG8oImN1cnJlbnR2YWx1ZS5vZmZzZXQiKSxuLmNvZXJjZUZvbnQobywiY3VycmVudHZhbHVlLmZvbnQiLGUuZm9udCkpLG8oInRyYW5zaXRpb24uZHVyYXRpb24iKSxvKCJ0cmFuc2l0aW9uLmVhc2luZyIpLG8oImJnY29sb3IiKSxvKCJhY3RpdmViZ2NvbG9yIiksbygiYm9yZGVyY29sb3IiKSxvKCJib3JkZXJ3aWR0aCIpLG8oInRpY2tsZW4iKSxvKCJ0aWNrd2lkdGgiKSxvKCJ0aWNrY29sb3IiKSxvKCJtaW5vcnRpY2tsZW4iKX19ZnVuY3Rpb24gYyh0LGUpe2Z1bmN0aW9uIHIocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLHMscixpKX1pZigic2tpcCI9PT10Lm1ldGhvZHx8QXJyYXkuaXNBcnJheSh0LmFyZ3MpP3IoInZpc2libGUiKTplLnZpc2libGU9ITEpe3IoIm1ldGhvZCIpLHIoImFyZ3MiKTt2YXIgaT1yKCJsYWJlbCIsInN0ZXAtIitlLl9pbmRleCk7cigidmFsdWUiLGkpLHIoImV4ZWN1dGUiKX19ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aSh0LGUse25hbWU6byxoYW5kbGVJdGVtRGVmYXVsdHM6bH0pfX0seyIuLi8uLi9saWIiOjUxNSwiLi4vLi4vcGxvdHMvYXJyYXlfY29udGFpbmVyX2RlZmF1bHRzIjo1NjEsIi4vYXR0cmlidXRlcyI6NDcxLCIuL2NvbnN0YW50cyI6NDcyfV0sNDc0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4uLy4uL3Bsb3RzL3Bsb3RzIiksYT10KCIuLi9jb2xvciIpLG89dCgiLi4vZHJhd2luZyIpLHM9dCgiLi4vLi4vbGliIiksbD1zLnN0clRyYW5zbGF0ZSxjPXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpLHU9dCgiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpLmFycmF5RWRpdG9yLGY9dCgiLi9jb25zdGFudHMiKSxoPXQoIi4uLy4uL2NvbnN0YW50cy9hbGlnbm1lbnQiKSxwPWguTElORV9TUEFDSU5HLGQ9aC5GUk9NX1RMLG09aC5GUk9NX0JSO2Z1bmN0aW9uIGcodCl7cmV0dXJuIGYuYXV0b01hcmdpbklkUm9vdCt0Ll9pbmRleH1mdW5jdGlvbiB2KHQpe3JldHVybiB0Ll9pbmRleH1mdW5jdGlvbiB5KHQsZSl7dmFyIHI9by50ZXN0ZXIuc2VsZWN0QWxsKCJnLiIrZi5sYWJlbEdyb3VwQ2xhc3MpLmRhdGEoZS5fdmlzaWJsZVN0ZXBzKTtyLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChmLmxhYmVsR3JvdXBDbGFzcywhMCk7dmFyIGE9MCxsPTA7ci5lYWNoKChmdW5jdGlvbih0KXt2YXIgcj1fKG4uc2VsZWN0KHRoaXMpLHtzdGVwOnR9LGUpLm5vZGUoKTtpZihyKXt2YXIgaT1vLmJCb3gocik7bD1NYXRoLm1heChsLGkuaGVpZ2h0KSxhPU1hdGgubWF4KGEsaS53aWR0aCl9fSkpLHIucmVtb3ZlKCk7dmFyIHU9ZS5fZGltcz17fTt1LmlucHV0QXJlYVdpZHRoPU1hdGgubWF4KGYucmFpbFdpZHRoLGYuZ3JpcEhlaWdodCk7dmFyIGg9dC5fZnVsbExheW91dC5fc2l6ZTt1Lmx4PWgubCtoLncqZS54LHUubHk9aC50K2guaCooMS1lLnkpLCJmcmFjdGlvbiI9PT1lLmxlbm1vZGU/dS5vdXRlckxlbmd0aD1NYXRoLnJvdW5kKGgudyplLmxlbik6dS5vdXRlckxlbmd0aD1lLmxlbix1LmlucHV0QXJlYVN0YXJ0PTAsdS5pbnB1dEFyZWFMZW5ndGg9TWF0aC5yb3VuZCh1Lm91dGVyTGVuZ3RoLWUucGFkLmwtZS5wYWQucik7dmFyIHA9KHUuaW5wdXRBcmVhTGVuZ3RoLTIqZi5zdGVwSW5zZXQpLyhlLl9zdGVwQ291bnQtMSksdj1hK2YubGFiZWxQYWRkaW5nO2lmKHUubGFiZWxTdHJpZGU9TWF0aC5tYXgoMSxNYXRoLmNlaWwodi9wKSksdS5sYWJlbEhlaWdodD1sLHUuY3VycmVudFZhbHVlTWF4V2lkdGg9MCx1LmN1cnJlbnRWYWx1ZUhlaWdodD0wLHUuY3VycmVudFZhbHVlVG90YWxIZWlnaHQ9MCx1LmN1cnJlbnRWYWx1ZU1heExpbmVzPTEsZS5jdXJyZW50dmFsdWUudmlzaWJsZSl7dmFyIHk9by50ZXN0ZXIuYXBwZW5kKCJnIik7ci5lYWNoKChmdW5jdGlvbih0KXt2YXIgcj14KHksZSx0LmxhYmVsKSxuPXIubm9kZSgpJiZvLmJCb3goci5ub2RlKCkpfHx7d2lkdGg6MCxoZWlnaHQ6MH0saT1jLmxpbmVDb3VudChyKTt1LmN1cnJlbnRWYWx1ZU1heFdpZHRoPU1hdGgubWF4KHUuY3VycmVudFZhbHVlTWF4V2lkdGgsTWF0aC5jZWlsKG4ud2lkdGgpKSx1LmN1cnJlbnRWYWx1ZUhlaWdodD1NYXRoLm1heCh1LmN1cnJlbnRWYWx1ZUhlaWdodCxNYXRoLmNlaWwobi5oZWlnaHQpKSx1LmN1cnJlbnRWYWx1ZU1heExpbmVzPU1hdGgubWF4KHUuY3VycmVudFZhbHVlTWF4TGluZXMsaSl9KSksdS5jdXJyZW50VmFsdWVUb3RhbEhlaWdodD11LmN1cnJlbnRWYWx1ZUhlaWdodCtlLmN1cnJlbnR2YWx1ZS5vZmZzZXQseS5yZW1vdmUoKX11LmhlaWdodD11LmN1cnJlbnRWYWx1ZVRvdGFsSGVpZ2h0K2YudGlja09mZnNldCtlLnRpY2tsZW4rZi5sYWJlbE9mZnNldCt1LmxhYmVsSGVpZ2h0K2UucGFkLnQrZS5wYWQuYjt2YXIgYj0ibGVmdCI7cy5pc1JpZ2h0QW5jaG9yKGUpJiYodS5seC09dS5vdXRlckxlbmd0aCxiPSJyaWdodCIpLHMuaXNDZW50ZXJBbmNob3IoZSkmJih1Lmx4LT11Lm91dGVyTGVuZ3RoLzIsYj0iY2VudGVyIik7dmFyIHc9InRvcCI7cy5pc0JvdHRvbUFuY2hvcihlKSYmKHUubHktPXUuaGVpZ2h0LHc9ImJvdHRvbSIpLHMuaXNNaWRkbGVBbmNob3IoZSkmJih1Lmx5LT11LmhlaWdodC8yLHc9Im1pZGRsZSIpLHUub3V0ZXJMZW5ndGg9TWF0aC5jZWlsKHUub3V0ZXJMZW5ndGgpLHUuaGVpZ2h0PU1hdGguY2VpbCh1LmhlaWdodCksdS5seD1NYXRoLnJvdW5kKHUubHgpLHUubHk9TWF0aC5yb3VuZCh1Lmx5KTt2YXIgVD17eTplLnksYjp1LmhlaWdodCptW3ddLHQ6dS5oZWlnaHQqZFt3XX07ImZyYWN0aW9uIj09PWUubGVubW9kZT8oVC5sPTAsVC54bD1lLngtZS5sZW4qZFtiXSxULnI9MCxULnhyPWUueCtlLmxlbiptW2JdKTooVC54PWUueCxULmw9dS5vdXRlckxlbmd0aCpkW2JdLFQucj11Lm91dGVyTGVuZ3RoKm1bYl0pLGkuYXV0b01hcmdpbih0LGcoZSksVCl9ZnVuY3Rpb24geCh0LGUscil7aWYoZS5jdXJyZW50dmFsdWUudmlzaWJsZSl7dmFyIG4saSxhPWUuX2RpbXM7c3dpdGNoKGUuY3VycmVudHZhbHVlLnhhbmNob3Ipe2Nhc2UicmlnaHQiOm49YS5pbnB1dEFyZWFMZW5ndGgtZi5jdXJyZW50VmFsdWVJbnNldC1hLmN1cnJlbnRWYWx1ZU1heFdpZHRoLGk9ImxlZnQiO2JyZWFrO2Nhc2UiY2VudGVyIjpuPS41KmEuaW5wdXRBcmVhTGVuZ3RoLGk9Im1pZGRsZSI7YnJlYWs7ZGVmYXVsdDpuPWYuY3VycmVudFZhbHVlSW5zZXQsaT0ibGVmdCJ9dmFyIGw9cy5lbnN1cmVTaW5nbGUodCwidGV4dCIsZi5sYWJlbENsYXNzLChmdW5jdGlvbih0KXt0LmF0dHIoeyJ0ZXh0LWFuY2hvciI6aSwiZGF0YS1ub3RleCI6MX0pfSkpLHU9ZS5jdXJyZW50dmFsdWUucHJlZml4P2UuY3VycmVudHZhbHVlLnByZWZpeDoiIjtpZigic3RyaW5nIj09dHlwZW9mIHIpdSs9cjtlbHNle3ZhciBoPWUuc3RlcHNbZS5hY3RpdmVdLmxhYmVsLGQ9ZS5fZ2QuX2Z1bGxMYXlvdXQuX21ldGE7ZCYmKGg9cy50ZW1wbGF0ZVN0cmluZyhoLGQpKSx1Kz1ofWUuY3VycmVudHZhbHVlLnN1ZmZpeCYmKHUrPWUuY3VycmVudHZhbHVlLnN1ZmZpeCksbC5jYWxsKG8uZm9udCxlLmN1cnJlbnR2YWx1ZS5mb250KS50ZXh0KHUpLmNhbGwoYy5jb252ZXJ0VG9Uc3BhbnMsZS5fZ2QpO3ZhciBtPWMubGluZUNvdW50KGwpLGc9KGEuY3VycmVudFZhbHVlTWF4TGluZXMrMS1tKSplLmN1cnJlbnR2YWx1ZS5mb250LnNpemUqcDtyZXR1cm4gYy5wb3NpdGlvblRleHQobCxuLGcpLGx9fWZ1bmN0aW9uIGIodCxlLHIpe3MuZW5zdXJlU2luZ2xlKHQsInJlY3QiLGYuZ3JpcFJlY3RDbGFzcywoZnVuY3Rpb24obil7bi5jYWxsKEEsZSx0LHIpLnN0eWxlKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpfSkpLmF0dHIoe3dpZHRoOmYuZ3JpcFdpZHRoLGhlaWdodDpmLmdyaXBIZWlnaHQscng6Zi5ncmlwUmFkaXVzLHJ5OmYuZ3JpcFJhZGl1c30pLmNhbGwoYS5zdHJva2Usci5ib3JkZXJjb2xvcikuY2FsbChhLmZpbGwsci5iZ2NvbG9yKS5zdHlsZSgic3Ryb2tlLXdpZHRoIixyLmJvcmRlcndpZHRoKyJweCIpfWZ1bmN0aW9uIF8odCxlLHIpe3ZhciBuPXMuZW5zdXJlU2luZ2xlKHQsInRleHQiLGYubGFiZWxDbGFzcywoZnVuY3Rpb24odCl7dC5hdHRyKHsidGV4dC1hbmNob3IiOiJtaWRkbGUiLCJkYXRhLW5vdGV4IjoxfSl9KSksaT1lLnN0ZXAubGFiZWwsYT1yLl9nZC5fZnVsbExheW91dC5fbWV0YTtyZXR1cm4gYSYmKGk9cy50ZW1wbGF0ZVN0cmluZyhpLGEpKSxuLmNhbGwoby5mb250LHIuZm9udCkudGV4dChpKS5jYWxsKGMuY29udmVydFRvVHNwYW5zLHIuX2dkKSxufWZ1bmN0aW9uIHcodCxlKXt2YXIgcj1zLmVuc3VyZVNpbmdsZSh0LCJnIixmLmxhYmVsc0NsYXNzKSxpPWUuX2RpbXMsYT1yLnNlbGVjdEFsbCgiZy4iK2YubGFiZWxHcm91cENsYXNzKS5kYXRhKGkubGFiZWxTdGVwcyk7YS5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoZi5sYWJlbEdyb3VwQ2xhc3MsITApLGEuZXhpdCgpLnJlbW92ZSgpLGEuZWFjaCgoZnVuY3Rpb24odCl7dmFyIHI9bi5zZWxlY3QodGhpcyk7ci5jYWxsKF8sdCxlKSxvLnNldFRyYW5zbGF0ZShyLEUoZSx0LmZyYWN0aW9uKSxmLnRpY2tPZmZzZXQrZS50aWNrbGVuK2UuZm9udC5zaXplKnArZi5sYWJlbE9mZnNldCtpLmN1cnJlbnRWYWx1ZVRvdGFsSGVpZ2h0KX0pKX1mdW5jdGlvbiBUKHQsZSxyLG4saSl7dmFyIGE9TWF0aC5yb3VuZChuKihyLl9zdGVwQ291bnQtMSkpLG89ci5fdmlzaWJsZVN0ZXBzW2FdLl9pbmRleDtvIT09ci5hY3RpdmUmJmsodCxlLHIsbywhMCxpKX1mdW5jdGlvbiBrKHQsZSxyLG4sYSxvKXt2YXIgcz1yLmFjdGl2ZTtyLmFjdGl2ZT1uLHUodC5sYXlvdXQsZi5uYW1lLHIpLmFwcGx5VXBkYXRlKCJhY3RpdmUiLG4pO3ZhciBsPXIuc3RlcHNbci5hY3RpdmVdO2UuY2FsbChTLHIsbyksZS5jYWxsKHgsciksdC5lbWl0KCJwbG90bHlfc2xpZGVyY2hhbmdlIix7c2xpZGVyOnIsc3RlcDpyLnN0ZXBzW3IuYWN0aXZlXSxpbnRlcmFjdGlvbjphLHByZXZpb3VzQWN0aXZlOnN9KSxsJiZsLm1ldGhvZCYmYSYmKGUuX25leHRNZXRob2Q/KGUuX25leHRNZXRob2Quc3RlcD1sLGUuX25leHRNZXRob2QuZG9DYWxsYmFjaz1hLGUuX25leHRNZXRob2QuZG9UcmFuc2l0aW9uPW8pOihlLl9uZXh0TWV0aG9kPXtzdGVwOmwsZG9DYWxsYmFjazphLGRvVHJhbnNpdGlvbjpvfSxlLl9uZXh0TWV0aG9kUmFmPXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKGZ1bmN0aW9uKCl7dmFyIHI9ZS5fbmV4dE1ldGhvZC5zdGVwO3IubWV0aG9kJiYoci5leGVjdXRlJiZpLmV4ZWN1dGVBUElDb21tYW5kKHQsci5tZXRob2Qsci5hcmdzKSxlLl9uZXh0TWV0aG9kPW51bGwsZS5fbmV4dE1ldGhvZFJhZj1udWxsKX0pKSkpfWZ1bmN0aW9uIEEodCxlLHIpe3ZhciBpPXIubm9kZSgpLG89bi5zZWxlY3QoZSk7ZnVuY3Rpb24gcygpe3JldHVybiByLmRhdGEoKVswXX1mdW5jdGlvbiBsKCl7dmFyIHQ9cygpO2UuZW1pdCgicGxvdGx5X3NsaWRlcnN0YXJ0Iix7c2xpZGVyOnR9KTt2YXIgbD1yLnNlbGVjdCgiLiIrZi5ncmlwUmVjdENsYXNzKTtuLmV2ZW50LnN0b3BQcm9wYWdhdGlvbigpLG4uZXZlbnQucHJldmVudERlZmF1bHQoKSxsLmNhbGwoYS5maWxsLHQuYWN0aXZlYmdjb2xvcik7dmFyIGM9TCh0LG4ubW91c2UoaSlbMF0pO2Z1bmN0aW9uIHUoKXt2YXIgdD1zKCksYT1MKHQsbi5tb3VzZShpKVswXSk7VChlLHIsdCxhLCExKX1mdW5jdGlvbiBoKCl7dmFyIHQ9cygpO3QuX2RyYWdnaW5nPSExLGwuY2FsbChhLmZpbGwsdC5iZ2NvbG9yKSxvLm9uKCJtb3VzZXVwIixudWxsKSxvLm9uKCJtb3VzZW1vdmUiLG51bGwpLG8ub24oInRvdWNoZW5kIixudWxsKSxvLm9uKCJ0b3VjaG1vdmUiLG51bGwpLGUuZW1pdCgicGxvdGx5X3NsaWRlcmVuZCIse3NsaWRlcjp0LHN0ZXA6dC5zdGVwc1t0LmFjdGl2ZV19KX1UKGUscix0LGMsITApLHQuX2RyYWdnaW5nPSEwLG8ub24oIm1vdXNlbW92ZSIsdSksby5vbigidG91Y2htb3ZlIix1KSxvLm9uKCJtb3VzZXVwIixoKSxvLm9uKCJ0b3VjaGVuZCIsaCl9dC5vbigibW91c2Vkb3duIixsKSx0Lm9uKCJ0b3VjaHN0YXJ0IixsKX1mdW5jdGlvbiBNKHQsZSl7dmFyIHI9dC5zZWxlY3RBbGwoInJlY3QuIitmLnRpY2tSZWN0Q2xhc3MpLmRhdGEoZS5fdmlzaWJsZVN0ZXBzKSxpPWUuX2RpbXM7ci5lbnRlcigpLmFwcGVuZCgicmVjdCIpLmNsYXNzZWQoZi50aWNrUmVjdENsYXNzLCEwKSxyLmV4aXQoKS5yZW1vdmUoKSxyLmF0dHIoe3dpZHRoOmUudGlja3dpZHRoKyJweCIsInNoYXBlLXJlbmRlcmluZyI6ImNyaXNwRWRnZXMifSksci5lYWNoKChmdW5jdGlvbih0LHIpe3ZhciBzPXIlaS5sYWJlbFN0cmlkZT09MCxsPW4uc2VsZWN0KHRoaXMpO2wuYXR0cih7aGVpZ2h0OnM/ZS50aWNrbGVuOmUubWlub3J0aWNrbGVufSkuY2FsbChhLmZpbGwsZS50aWNrY29sb3IpLG8uc2V0VHJhbnNsYXRlKGwsRShlLHIvKGUuX3N0ZXBDb3VudC0xKSktLjUqZS50aWNrd2lkdGgsKHM/Zi50aWNrT2Zmc2V0OmYubWlub3JUaWNrT2Zmc2V0KStpLmN1cnJlbnRWYWx1ZVRvdGFsSGVpZ2h0KX0pKX1mdW5jdGlvbiBTKHQsZSxyKXtmb3IodmFyIG49dC5zZWxlY3QoInJlY3QuIitmLmdyaXBSZWN0Q2xhc3MpLGk9MCxhPTA7YTxlLl9zdGVwQ291bnQ7YSsrKWlmKGUuX3Zpc2libGVTdGVwc1thXS5faW5kZXg9PT1lLmFjdGl2ZSl7aT1hO2JyZWFrfXZhciBvPUUoZSxpLyhlLl9zdGVwQ291bnQtMSkpO2lmKCFlLl9pbnZva2luZ0NvbW1hbmQpe3ZhciBzPW47ciYmZS50cmFuc2l0aW9uLmR1cmF0aW9uPjAmJihzPXMudHJhbnNpdGlvbigpLmR1cmF0aW9uKGUudHJhbnNpdGlvbi5kdXJhdGlvbikuZWFzZShlLnRyYW5zaXRpb24uZWFzaW5nKSkscy5hdHRyKCJ0cmFuc2Zvcm0iLGwoby0uNSpmLmdyaXBXaWR0aCxlLl9kaW1zLmN1cnJlbnRWYWx1ZVRvdGFsSGVpZ2h0KSl9fWZ1bmN0aW9uIEUodCxlKXt2YXIgcj10Ll9kaW1zO3JldHVybiByLmlucHV0QXJlYVN0YXJ0K2Yuc3RlcEluc2V0KyhyLmlucHV0QXJlYUxlbmd0aC0yKmYuc3RlcEluc2V0KSpNYXRoLm1pbigxLE1hdGgubWF4KDAsZSkpfWZ1bmN0aW9uIEwodCxlKXt2YXIgcj10Ll9kaW1zO3JldHVybiBNYXRoLm1pbigxLE1hdGgubWF4KDAsKGUtZi5zdGVwSW5zZXQtci5pbnB1dEFyZWFTdGFydCkvKHIuaW5wdXRBcmVhTGVuZ3RoLTIqZi5zdGVwSW5zZXQtMipyLmlucHV0QXJlYVN0YXJ0KSkpfWZ1bmN0aW9uIEModCxlLHIpe3ZhciBuPXIuX2RpbXMsaT1zLmVuc3VyZVNpbmdsZSh0LCJyZWN0IixmLnJhaWxUb3VjaFJlY3RDbGFzcywoZnVuY3Rpb24obil7bi5jYWxsKEEsZSx0LHIpLnN0eWxlKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpfSkpO2kuYXR0cih7d2lkdGg6bi5pbnB1dEFyZWFMZW5ndGgsaGVpZ2h0Ok1hdGgubWF4KG4uaW5wdXRBcmVhV2lkdGgsZi50aWNrT2Zmc2V0K3IudGlja2xlbituLmxhYmVsSGVpZ2h0KX0pLmNhbGwoYS5maWxsLHIuYmdjb2xvcikuYXR0cigib3BhY2l0eSIsMCksby5zZXRUcmFuc2xhdGUoaSwwLG4uY3VycmVudFZhbHVlVG90YWxIZWlnaHQpfWZ1bmN0aW9uIFAodCxlKXt2YXIgcj1lLl9kaW1zLG49ci5pbnB1dEFyZWFMZW5ndGgtMipmLnJhaWxJbnNldCxpPXMuZW5zdXJlU2luZ2xlKHQsInJlY3QiLGYucmFpbFJlY3RDbGFzcyk7aS5hdHRyKHt3aWR0aDpuLGhlaWdodDpmLnJhaWxXaWR0aCxyeDpmLnJhaWxSYWRpdXMscnk6Zi5yYWlsUmFkaXVzLCJzaGFwZS1yZW5kZXJpbmciOiJjcmlzcEVkZ2VzIn0pLmNhbGwoYS5zdHJva2UsZS5ib3JkZXJjb2xvcikuY2FsbChhLmZpbGwsZS5iZ2NvbG9yKS5zdHlsZSgic3Ryb2tlLXdpZHRoIixlLmJvcmRlcndpZHRoKyJweCIpLG8uc2V0VHJhbnNsYXRlKGksZi5yYWlsSW5zZXQsLjUqKHIuaW5wdXRBcmVhV2lkdGgtZi5yYWlsV2lkdGgpK3IuY3VycmVudFZhbHVlVG90YWxIZWlnaHQpfWUuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0LHI9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dFtmLm5hbWVdLG49W10saT0wO2k8ci5sZW5ndGg7aSsrKXt2YXIgYT1yW2ldO2EudmlzaWJsZSYmKGEuX2dkPWUsbi5wdXNoKGEpKX1yZXR1cm4gbn0oZSx0KSxhPWUuX2luZm9sYXllci5zZWxlY3RBbGwoImcuIitmLmNvbnRhaW5lckNsYXNzTmFtZSkuZGF0YShyLmxlbmd0aD4wP1swXTpbXSk7ZnVuY3Rpb24gcyhlKXtlLl9jb21tYW5kT2JzZXJ2ZXImJihlLl9jb21tYW5kT2JzZXJ2ZXIucmVtb3ZlKCksZGVsZXRlIGUuX2NvbW1hbmRPYnNlcnZlciksaS5hdXRvTWFyZ2luKHQsZyhlKSl9aWYoYS5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoZi5jb250YWluZXJDbGFzc05hbWUsITApLnN0eWxlKCJjdXJzb3IiLCJldy1yZXNpemUiKSxhLmV4aXQoKS5lYWNoKChmdW5jdGlvbigpe24uc2VsZWN0KHRoaXMpLnNlbGVjdEFsbCgiZy4iK2YuZ3JvdXBDbGFzc05hbWUpLmVhY2gocyl9KSkucmVtb3ZlKCksMCE9PXIubGVuZ3RoKXt2YXIgbD1hLnNlbGVjdEFsbCgiZy4iK2YuZ3JvdXBDbGFzc05hbWUpLmRhdGEocix2KTtsLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChmLmdyb3VwQ2xhc3NOYW1lLCEwKSxsLmV4aXQoKS5lYWNoKHMpLnJlbW92ZSgpO2Zvcih2YXIgYz0wO2M8ci5sZW5ndGg7YysrKXt2YXIgdT1yW2NdO3kodCx1KX1sLmVhY2goKGZ1bmN0aW9uKGUpe3ZhciByPW4uc2VsZWN0KHRoaXMpOyFmdW5jdGlvbih0KXt2YXIgZT10Ll9kaW1zO2UubGFiZWxTdGVwcz1bXTtmb3IodmFyIHI9dC5fc3RlcENvdW50LG49MDtuPHI7bis9ZS5sYWJlbFN0cmlkZSllLmxhYmVsU3RlcHMucHVzaCh7ZnJhY3Rpb246bi8oci0xKSxzdGVwOnQuX3Zpc2libGVTdGVwc1tuXX0pfShlKSxpLm1hbmFnZUNvbW1hbmRPYnNlcnZlcih0LGUsZS5fdmlzaWJsZVN0ZXBzLChmdW5jdGlvbihlKXt2YXIgbj1yLmRhdGEoKVswXTtuLmFjdGl2ZSE9PWUuaW5kZXgmJihuLl9kcmFnZ2luZ3x8ayh0LHIsbixlLmluZGV4LCExLCEwKSl9KSksZnVuY3Rpb24odCxlLHIpeyhyLnN0ZXBzW3IuYWN0aXZlXXx8e30pLnZpc2libGV8fChyLmFjdGl2ZT1yLl92aXNpYmxlU3RlcHNbMF0uX2luZGV4KTtlLmNhbGwoeCxyKS5jYWxsKFAscikuY2FsbCh3LHIpLmNhbGwoTSxyKS5jYWxsKEMsdCxyKS5jYWxsKGIsdCxyKTt2YXIgbj1yLl9kaW1zO28uc2V0VHJhbnNsYXRlKGUsbi5seCtyLnBhZC5sLG4ubHkrci5wYWQudCksZS5jYWxsKFMsciwhMSksZS5jYWxsKHgscil9KHQsbi5zZWxlY3QodGhpcyksZSl9KSl9fX0seyIuLi8uLi9jb25zdGFudHMvYWxpZ25tZW50Ijo0ODMsIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiOjU0MSwiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6NTU1LCIuLi8uLi9wbG90cy9wbG90cyI6NjI4LCIuLi9jb2xvciI6MzY3LCIuLi9kcmF3aW5nIjozODksIi4vY29uc3RhbnRzIjo0NzIsIkBwbG90bHkvZDMiOjU4fV0sNDc1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vY29uc3RhbnRzIik7ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJjb21wb25lbnQiLG5hbWU6bi5uYW1lLGxheW91dEF0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5TGF5b3V0RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGRyYXc6dCgiLi9kcmF3Iil9fSx7Ii4vYXR0cmlidXRlcyI6NDcxLCIuL2NvbnN0YW50cyI6NDcyLCIuL2RlZmF1bHRzIjo0NzMsIi4vZHJhdyI6NDc0fV0sNDc2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoImZhc3QtaXNudW1lcmljIiksYT10KCIuLi8uLi9wbG90cy9wbG90cyIpLG89dCgiLi4vLi4vcmVnaXN0cnkiKSxzPXQoIi4uLy4uL2xpYiIpLGw9cy5zdHJUcmFuc2xhdGUsYz10KCIuLi9kcmF3aW5nIiksdT10KCIuLi9jb2xvciIpLGY9dCgiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIiksaD10KCIuLi8uLi9jb25zdGFudHMvaW50ZXJhY3Rpb25zIikscD10KCIuLi8uLi9jb25zdGFudHMvYWxpZ25tZW50IikuT1BQT1NJVEVfU0lERSxkPS8gW1hZXVswLTldKiAvO2UuZXhwb3J0cz17ZHJhdzpmdW5jdGlvbih0LGUscil7dmFyIG0sZz1yLnByb3BDb250YWluZXIsdj1yLnByb3BOYW1lLHk9ci5wbGFjZWhvbGRlcix4PXIudHJhY2VJbmRleCxiPXIuYXZvaWR8fHt9LF89ci5hdHRyaWJ1dGVzLHc9ci50cmFuc2Zvcm0sVD1yLmNvbnRhaW5lckdyb3VwLGs9dC5fZnVsbExheW91dCxBPTEsTT0hMSxTPWcudGl0bGUsRT0oUyYmUy50ZXh0P1MudGV4dDoiIikudHJpbSgpLEw9UyYmUy5mb250P1MuZm9udDp7fSxDPUwuZmFtaWx5LFA9TC5zaXplLEk9TC5jb2xvcjsidGl0bGUudGV4dCI9PT12P209InRpdGxlVGV4dCI6LTEhPT12LmluZGV4T2YoImF4aXMiKT9tPSJheGlzVGl0bGVUZXh0Ijp2LmluZGV4T2YoITApJiYobT0iY29sb3JiYXJUaXRsZVRleHQiKTt2YXIgTz10Ll9jb250ZXh0LmVkaXRzW21dOyIiPT09RT9BPTA6RS5yZXBsYWNlKGQsIiAlICIpPT09eS5yZXBsYWNlKGQsIiAlICIpJiYoQT0uMixNPSEwLE98fChFPSIiKSksci5fbWV0YT9FPXMudGVtcGxhdGVTdHJpbmcoRSxyLl9tZXRhKTprLl9tZXRhJiYoRT1zLnRlbXBsYXRlU3RyaW5nKEUsay5fbWV0YSkpO3ZhciB6LEQ9RXx8TztUfHwoVD1zLmVuc3VyZVNpbmdsZShrLl9pbmZvbGF5ZXIsImciLCJnLSIrZSksej1rLl9oQ29sb3JiYXJNb3ZlVGl0bGUpO3ZhciBSPVQuc2VsZWN0QWxsKCJ0ZXh0IikuZGF0YShEP1swXTpbXSk7aWYoUi5lbnRlcigpLmFwcGVuZCgidGV4dCIpLFIudGV4dChFKS5hdHRyKCJjbGFzcyIsZSksUi5leGl0KCkucmVtb3ZlKCksIUQpcmV0dXJuIFQ7ZnVuY3Rpb24gRih0KXtzLnN5bmNPckFzeW5jKFtCLE5dLHQpfWZ1bmN0aW9uIEIoZSl7dmFyIHI7cmV0dXJuIXcmJnomJih3PXt9KSx3PyhyPSIiLHcucm90YXRlJiYocis9InJvdGF0ZSgiK1t3LnJvdGF0ZSxfLngsXy55XSsiKSIpLCh3Lm9mZnNldHx8eikmJihyKz1sKDAsKHcub2Zmc2V0fHwwKS0oenx8MCkpKSk6cj1udWxsLGUuYXR0cigidHJhbnNmb3JtIixyKSxlLnN0eWxlKHsiZm9udC1mYW1pbHkiOkMsImZvbnQtc2l6ZSI6bi5yb3VuZChQLDIpKyJweCIsZmlsbDp1LnJnYihJKSxvcGFjaXR5OkEqdS5vcGFjaXR5KEkpLCJmb250LXdlaWdodCI6YS5mb250V2VpZ2h0fSkuYXR0cihfKS5jYWxsKGYuY29udmVydFRvVHNwYW5zLHQpLGEucHJldmlvdXNQcm9taXNlcyh0KX1mdW5jdGlvbiBOKHQpe3ZhciBlPW4uc2VsZWN0KHQubm9kZSgpLnBhcmVudE5vZGUpO2lmKGImJmIuc2VsZWN0aW9uJiZiLnNpZGUmJkUpe2UuYXR0cigidHJhbnNmb3JtIixudWxsKTt2YXIgcj1wW2Iuc2lkZV0sYT0ibGVmdCI9PT1iLnNpZGV8fCJ0b3AiPT09Yi5zaWRlPy0xOjEsbz1pKGIucGFkKT9iLnBhZDoyLHU9Yy5iQm94KGUubm9kZSgpKSxmPXtsZWZ0OjAsdG9wOjAscmlnaHQ6ay53aWR0aCxib3R0b206ay5oZWlnaHR9LGg9Yi5tYXhTaGlmdHx8YSooZltiLnNpZGVdLXVbYi5zaWRlXSksZD0wO2lmKGg8MClkPWg7ZWxzZXt2YXIgbT1iLm9mZnNldExlZnR8fDAsZz1iLm9mZnNldFRvcHx8MDt1LmxlZnQtPW0sdS5yaWdodC09bSx1LnRvcC09Zyx1LmJvdHRvbS09ZyxiLnNlbGVjdGlvbi5lYWNoKChmdW5jdGlvbigpe3ZhciB0PWMuYkJveCh0aGlzKTtzLmJCb3hJbnRlcnNlY3QodSx0LG8pJiYoZD1NYXRoLm1heChkLGEqKHRbYi5zaWRlXS11W3JdKStvKSl9KSksZD1NYXRoLm1pbihoLGQpfWlmKGQ+MHx8aDwwKXt2YXIgdj17bGVmdDpbLWQsMF0scmlnaHQ6W2QsMF0sdG9wOlswLC1kXSxib3R0b206WzAsZF19W2Iuc2lkZV07ZS5hdHRyKCJ0cmFuc2Zvcm0iLGwodlswXSx2WzFdKSl9fX1yZXR1cm4gUi5jYWxsKEYpLE8mJihFP1Iub24oIi5vcGFjaXR5IixudWxsKTooQT0wLE09ITAsUi50ZXh0KHkpLm9uKCJtb3VzZW92ZXIub3BhY2l0eSIsKGZ1bmN0aW9uKCl7bi5zZWxlY3QodGhpcykudHJhbnNpdGlvbigpLmR1cmF0aW9uKGguU0hPV19QTEFDRUhPTERFUikuc3R5bGUoIm9wYWNpdHkiLDEpfSkpLm9uKCJtb3VzZW91dC5vcGFjaXR5IiwoZnVuY3Rpb24oKXtuLnNlbGVjdCh0aGlzKS50cmFuc2l0aW9uKCkuZHVyYXRpb24oaC5ISURFX1BMQUNFSE9MREVSKS5zdHlsZSgib3BhY2l0eSIsMCl9KSkpLFIuY2FsbChmLm1ha2VFZGl0YWJsZSx7Z2Q6dH0pLm9uKCJlZGl0IiwoZnVuY3Rpb24oZSl7dm9pZCAwIT09eD9vLmNhbGwoIl9ndWlSZXN0eWxlIix0LHYsZSx4KTpvLmNhbGwoIl9ndWlSZWxheW91dCIsdCx2LGUpfSkpLm9uKCJjYW5jZWwiLChmdW5jdGlvbigpe3RoaXMudGV4dCh0aGlzLmF0dHIoImRhdGEtdW5mb3JtYXR0ZWQiKSkuY2FsbChGKX0pKS5vbigiaW5wdXQiLChmdW5jdGlvbih0KXt0aGlzLnRleHQodHx8IiAiKS5jYWxsKGYucG9zaXRpb25UZXh0LF8ueCxfLnkpfSkpKSxSLmNsYXNzZWQoImpzLXBsYWNlaG9sZGVyIixNKSxUfX19LHsiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCI6NDgzLCIuLi8uLi9jb25zdGFudHMvaW50ZXJhY3Rpb25zIjo0OTAsIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiOjU0MSwiLi4vLi4vcGxvdHMvcGxvdHMiOjYyOCwiLi4vLi4vcmVnaXN0cnkiOjY0NywiLi4vY29sb3IiOjM2NywiLi4vZHJhd2luZyI6Mzg5LCJAcGxvdGx5L2QzIjo1OCwiZmFzdC1pc251bWVyaWMiOjE5MH1dLDQ3NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9mb250X2F0dHJpYnV0ZXMiKSxpPXQoIi4uL2NvbG9yL2F0dHJpYnV0ZXMiKSxhPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LG89dCgiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyIpLm92ZXJyaWRlQWxsLHM9dCgiLi4vLi4vcGxvdHMvcGFkX2F0dHJpYnV0ZXMiKSxsPXQoIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKS50ZW1wbGF0ZWRBcnJheSxjPWwoImJ1dHRvbiIse3Zpc2libGU6e3ZhbFR5cGU6ImJvb2xlYW4ifSxtZXRob2Q6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInJlc3R5bGUiLCJyZWxheW91dCIsImFuaW1hdGUiLCJ1cGRhdGUiLCJza2lwIl0sZGZsdDoicmVzdHlsZSJ9LGFyZ3M6e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGZyZWVMZW5ndGg6ITAsaXRlbXM6W3t2YWxUeXBlOiJhbnkifSx7dmFsVHlwZToiYW55In0se3ZhbFR5cGU6ImFueSJ9XX0sYXJnczI6e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGZyZWVMZW5ndGg6ITAsaXRlbXM6W3t2YWxUeXBlOiJhbnkifSx7dmFsVHlwZToiYW55In0se3ZhbFR5cGU6ImFueSJ9XX0sbGFiZWw6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIn0sZXhlY3V0ZTp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMH19KTtlLmV4cG9ydHM9byhsKCJ1cGRhdGVtZW51Iix7X2FycmF5QXR0clJlZ2V4cHM6Wy9edXBkYXRlbWVudXNcWygwfFsxLTldWzAtOV0rKVxdXC5idXR0b25zL10sdmlzaWJsZTp7dmFsVHlwZToiYm9vbGVhbiJ9LHR5cGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImRyb3Bkb3duIiwiYnV0dG9ucyJdLGRmbHQ6ImRyb3Bkb3duIn0sZGlyZWN0aW9uOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJsZWZ0IiwicmlnaHQiLCJ1cCIsImRvd24iXSxkZmx0OiJkb3duIn0sYWN0aXZlOnt2YWxUeXBlOiJpbnRlZ2VyIixtaW46LTEsZGZsdDowfSxzaG93YWN0aXZlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwfSxidXR0b25zOmMseDp7dmFsVHlwZToibnVtYmVyIixtaW46LTIsbWF4OjMsZGZsdDotLjA1fSx4YW5jaG9yOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJhdXRvIiwibGVmdCIsImNlbnRlciIsInJpZ2h0Il0sZGZsdDoicmlnaHQifSx5Ont2YWxUeXBlOiJudW1iZXIiLG1pbjotMixtYXg6MyxkZmx0OjF9LHlhbmNob3I6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImF1dG8iLCJ0b3AiLCJtaWRkbGUiLCJib3R0b20iXSxkZmx0OiJ0b3AifSxwYWQ6YShzKHtlZGl0VHlwZToiYXJyYXlkcmF3In0pLHt9KSxmb250Om4oe30pLGJnY29sb3I6e3ZhbFR5cGU6ImNvbG9yIn0sYm9yZGVyY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OmkuYm9yZGVyTGluZX0sYm9yZGVyd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxLGVkaXRUeXBlOiJhcnJheWRyYXcifX0pLCJhcnJheWRyYXciLCJmcm9tLXJvb3QiKX0seyIuLi8uLi9saWIvZXh0ZW5kIjo1MDUsIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiOjU0OCwiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6NTU1LCIuLi8uLi9wbG90cy9mb250X2F0dHJpYnV0ZXMiOjU5NCwiLi4vLi4vcGxvdHMvcGFkX2F0dHJpYnV0ZXMiOjYyNywiLi4vY29sb3IvYXR0cmlidXRlcyI6MzY2fV0sNDc4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17bmFtZToidXBkYXRlbWVudXMiLGNvbnRhaW5lckNsYXNzTmFtZToidXBkYXRlbWVudS1jb250YWluZXIiLGhlYWRlckdyb3VwQ2xhc3NOYW1lOiJ1cGRhdGVtZW51LWhlYWRlci1ncm91cCIsaGVhZGVyQ2xhc3NOYW1lOiJ1cGRhdGVtZW51LWhlYWRlciIsaGVhZGVyQXJyb3dDbGFzc05hbWU6InVwZGF0ZW1lbnUtaGVhZGVyLWFycm93Iixkcm9wZG93bkJ1dHRvbkdyb3VwQ2xhc3NOYW1lOiJ1cGRhdGVtZW51LWRyb3Bkb3duLWJ1dHRvbi1ncm91cCIsZHJvcGRvd25CdXR0b25DbGFzc05hbWU6InVwZGF0ZW1lbnUtZHJvcGRvd24tYnV0dG9uIixidXR0b25DbGFzc05hbWU6InVwZGF0ZW1lbnUtYnV0dG9uIixpdGVtUmVjdENsYXNzTmFtZToidXBkYXRlbWVudS1pdGVtLXJlY3QiLGl0ZW1UZXh0Q2xhc3NOYW1lOiJ1cGRhdGVtZW51LWl0ZW0tdGV4dCIsbWVudUluZGV4QXR0ck5hbWU6InVwZGF0ZW1lbnUtYWN0aXZlLWluZGV4IixhdXRvTWFyZ2luSWRSb290OiJ1cGRhdGVtZW51LSIsYmxhbmtIZWFkZXJPcHRzOntsYWJlbDoiICAifSxtaW5XaWR0aDozMCxtaW5IZWlnaHQ6MzAsdGV4dFBhZFg6MjQsYXJyb3dQYWRYOjE2LHJ4OjIscnk6Mix0ZXh0T2Zmc2V0WDoxMix0ZXh0T2Zmc2V0WTozLGFycm93T2Zmc2V0WDo0LGdhcEJ1dHRvbkhlYWRlcjo1LGdhcEJ1dHRvbjoyLGFjdGl2ZUNvbG9yOiIjRjRGQUZGIixob3ZlckNvbG9yOiIjRjRGQUZGIixhcnJvd1N5bWJvbDp7bGVmdDoiXHUyNWM0IixyaWdodDoiXHUyNWJhIix1cDoiXHUyNWIyIixkb3duOiJcdTI1YmMifX19LHt9XSw0Nzk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9wbG90cy9hcnJheV9jb250YWluZXJfZGVmYXVsdHMiKSxhPXQoIi4vYXR0cmlidXRlcyIpLG89dCgiLi9jb25zdGFudHMiKS5uYW1lLHM9YS5idXR0b25zO2Z1bmN0aW9uIGwodCxlLHIpe2Z1bmN0aW9uIG8ocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLGEscixpKX1vKCJ2aXNpYmxlIixpKHQsZSx7bmFtZToiYnV0dG9ucyIsaGFuZGxlSXRlbURlZmF1bHRzOmN9KS5sZW5ndGg+MCkmJihvKCJhY3RpdmUiKSxvKCJkaXJlY3Rpb24iKSxvKCJ0eXBlIiksbygic2hvd2FjdGl2ZSIpLG8oIngiKSxvKCJ5Iiksbi5ub25lT3JBbGwodCxlLFsieCIsInkiXSksbygieGFuY2hvciIpLG8oInlhbmNob3IiKSxvKCJwYWQudCIpLG8oInBhZC5yIiksbygicGFkLmIiKSxvKCJwYWQubCIpLG4uY29lcmNlRm9udChvLCJmb250IixyLmZvbnQpLG8oImJnY29sb3IiLHIucGFwZXJfYmdjb2xvciksbygiYm9yZGVyY29sb3IiKSxvKCJib3JkZXJ3aWR0aCIpKX1mdW5jdGlvbiBjKHQsZSl7ZnVuY3Rpb24gcihyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUscyxyLGkpfXIoInZpc2libGUiLCJza2lwIj09PXQubWV0aG9kfHxBcnJheS5pc0FycmF5KHQuYXJncykpJiYocigibWV0aG9kIikscigiYXJncyIpLHIoImFyZ3MyIikscigibGFiZWwiKSxyKCJleGVjdXRlIikpfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2kodCxlLHtuYW1lOm8saGFuZGxlSXRlbURlZmF1bHRzOmx9KX19LHsiLi4vLi4vbGliIjo1MTUsIi4uLy4uL3Bsb3RzL2FycmF5X2NvbnRhaW5lcl9kZWZhdWx0cyI6NTYxLCIuL2F0dHJpYnV0ZXMiOjQ3NywiLi9jb25zdGFudHMiOjQ3OH1dLDQ4MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9wbG90cy9wbG90cyIpLGE9dCgiLi4vY29sb3IiKSxvPXQoIi4uL2RyYXdpbmciKSxzPXQoIi4uLy4uL2xpYiIpLGw9dCgiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIiksYz10KCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIikuYXJyYXlFZGl0b3IsdT10KCIuLi8uLi9jb25zdGFudHMvYWxpZ25tZW50IikuTElORV9TUEFDSU5HLGY9dCgiLi9jb25zdGFudHMiKSxoPXQoIi4vc2Nyb2xsYm94Iik7ZnVuY3Rpb24gcCh0KXtyZXR1cm4gdC5faW5kZXh9ZnVuY3Rpb24gZCh0LGUpe3JldHVybit0LmF0dHIoZi5tZW51SW5kZXhBdHRyTmFtZSk9PT1lLl9pbmRleH1mdW5jdGlvbiBtKHQsZSxyLG4saSxhLG8scyl7ZS5hY3RpdmU9byxjKHQubGF5b3V0LGYubmFtZSxlKS5hcHBseVVwZGF0ZSgiYWN0aXZlIixvKSwiYnV0dG9ucyI9PT1lLnR5cGU/dih0LG4sbnVsbCxudWxsLGUpOiJkcm9wZG93biI9PT1lLnR5cGUmJihpLmF0dHIoZi5tZW51SW5kZXhBdHRyTmFtZSwiLTEiKSxnKHQsbixpLGEsZSksc3x8dih0LG4saSxhLGUpKX1mdW5jdGlvbiBnKHQsZSxyLG4saSl7dmFyIGE9cy5lbnN1cmVTaW5nbGUoZSwiZyIsZi5oZWFkZXJDbGFzc05hbWUsKGZ1bmN0aW9uKHQpe3Quc3R5bGUoInBvaW50ZXItZXZlbnRzIiwiYWxsIil9KSksbD1pLl9kaW1zLGM9aS5hY3RpdmUsdT1pLmJ1dHRvbnNbY118fGYuYmxhbmtIZWFkZXJPcHRzLGg9e3k6aS5wYWQudCx5UGFkOjAseDppLnBhZC5sLHhQYWQ6MCxpbmRleDowfSxwPXt3aWR0aDpsLmhlYWRlcldpZHRoLGhlaWdodDpsLmhlYWRlckhlaWdodH07YS5jYWxsKHksaSx1LHQpLmNhbGwoTSxpLGgscCkscy5lbnN1cmVTaW5nbGUoZSwidGV4dCIsZi5oZWFkZXJBcnJvd0NsYXNzTmFtZSwoZnVuY3Rpb24odCl7dC5hdHRyKCJ0ZXh0LWFuY2hvciIsImVuZCIpLmNhbGwoby5mb250LGkuZm9udCkudGV4dChmLmFycm93U3ltYm9sW2kuZGlyZWN0aW9uXSl9KSkuYXR0cih7eDpsLmhlYWRlcldpZHRoLWYuYXJyb3dPZmZzZXRYK2kucGFkLmwseTpsLmhlYWRlckhlaWdodC8yK2YudGV4dE9mZnNldFkraS5wYWQudH0pLGEub24oImNsaWNrIiwoZnVuY3Rpb24oKXtyLmNhbGwoUyxTdHJpbmcoZChyLGkpPy0xOmkuX2luZGV4KSksdih0LGUscixuLGkpfSkpLGEub24oIm1vdXNlb3ZlciIsKGZ1bmN0aW9uKCl7YS5jYWxsKHcpfSkpLGEub24oIm1vdXNlb3V0IiwoZnVuY3Rpb24oKXthLmNhbGwoVCxpKX0pKSxvLnNldFRyYW5zbGF0ZShlLGwubHgsbC5seSl9ZnVuY3Rpb24gdih0LGUscixhLG8pe3J8fChyPWUpLmF0dHIoInBvaW50ZXItZXZlbnRzIiwiYWxsIik7dmFyIGw9ZnVuY3Rpb24odCl7cmV0dXJuLTE9PSt0LmF0dHIoZi5tZW51SW5kZXhBdHRyTmFtZSl9KHIpJiYiYnV0dG9ucyIhPT1vLnR5cGU/W106by5idXR0b25zLGM9ImRyb3Bkb3duIj09PW8udHlwZT9mLmRyb3Bkb3duQnV0dG9uQ2xhc3NOYW1lOmYuYnV0dG9uQ2xhc3NOYW1lLHU9ci5zZWxlY3RBbGwoImcuIitjKS5kYXRhKHMuZmlsdGVyVmlzaWJsZShsKSksaD11LmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChjLCEwKSxwPXUuZXhpdCgpOyJkcm9wZG93biI9PT1vLnR5cGU/KGguYXR0cigib3BhY2l0eSIsIjAiKS50cmFuc2l0aW9uKCkuYXR0cigib3BhY2l0eSIsIjEiKSxwLnRyYW5zaXRpb24oKS5hdHRyKCJvcGFjaXR5IiwiMCIpLnJlbW92ZSgpKTpwLnJlbW92ZSgpO3ZhciBkPTAsZz0wLHY9by5fZGltcyx4PS0xIT09WyJ1cCIsImRvd24iXS5pbmRleE9mKG8uZGlyZWN0aW9uKTsiZHJvcGRvd24iPT09by50eXBlJiYoeD9nPXYuaGVhZGVySGVpZ2h0K2YuZ2FwQnV0dG9uSGVhZGVyOmQ9di5oZWFkZXJXaWR0aCtmLmdhcEJ1dHRvbkhlYWRlciksImRyb3Bkb3duIj09PW8udHlwZSYmInVwIj09PW8uZGlyZWN0aW9uJiYoZz0tZi5nYXBCdXR0b25IZWFkZXIrZi5nYXBCdXR0b24tdi5vcGVuSGVpZ2h0KSwiZHJvcGRvd24iPT09by50eXBlJiYibGVmdCI9PT1vLmRpcmVjdGlvbiYmKGQ9LWYuZ2FwQnV0dG9uSGVhZGVyK2YuZ2FwQnV0dG9uLXYub3BlbldpZHRoKTt2YXIgYj17eDp2Lmx4K2Qrby5wYWQubCx5OnYubHkrZytvLnBhZC50LHlQYWQ6Zi5nYXBCdXR0b24seFBhZDpmLmdhcEJ1dHRvbixpbmRleDowfSxrPXtsOmIueCtvLmJvcmRlcndpZHRoLHQ6Yi55K28uYm9yZGVyd2lkdGh9O3UuZWFjaCgoZnVuY3Rpb24ocyxsKXt2YXIgYz1uLnNlbGVjdCh0aGlzKTtjLmNhbGwoeSxvLHMsdCkuY2FsbChNLG8sYiksYy5vbigiY2xpY2siLChmdW5jdGlvbigpe24uZXZlbnQuZGVmYXVsdFByZXZlbnRlZHx8KHMuZXhlY3V0ZSYmKHMuYXJnczImJm8uYWN0aXZlPT09bD8obSh0LG8sMCxlLHIsYSwtMSksaS5leGVjdXRlQVBJQ29tbWFuZCh0LHMubWV0aG9kLHMuYXJnczIpKToobSh0LG8sMCxlLHIsYSxsKSxpLmV4ZWN1dGVBUElDb21tYW5kKHQscy5tZXRob2Qscy5hcmdzKSkpLHQuZW1pdCgicGxvdGx5X2J1dHRvbmNsaWNrZWQiLHttZW51Om8sYnV0dG9uOnMsYWN0aXZlOm8uYWN0aXZlfSkpfSkpLGMub24oIm1vdXNlb3ZlciIsKGZ1bmN0aW9uKCl7Yy5jYWxsKHcpfSkpLGMub24oIm1vdXNlb3V0IiwoZnVuY3Rpb24oKXtjLmNhbGwoVCxvKSx1LmNhbGwoXyxvKX0pKX0pKSx1LmNhbGwoXyxvKSx4PyhrLnc9TWF0aC5tYXgodi5vcGVuV2lkdGgsdi5oZWFkZXJXaWR0aCksay5oPWIueS1rLnQpOihrLnc9Yi54LWsubCxrLmg9TWF0aC5tYXgodi5vcGVuSGVpZ2h0LHYuaGVhZGVySGVpZ2h0KSksay5kaXJlY3Rpb249by5kaXJlY3Rpb24sYSYmKHUuc2l6ZSgpP2Z1bmN0aW9uKHQsZSxyLG4saSxhKXt2YXIgbyxzLGwsYz1pLmRpcmVjdGlvbix1PSJ1cCI9PT1jfHwiZG93biI9PT1jLGg9aS5fZGltcyxwPWkuYWN0aXZlO2lmKHUpZm9yKHM9MCxsPTA7bDxwO2wrKylzKz1oLmhlaWdodHNbbF0rZi5nYXBCdXR0b247ZWxzZSBmb3Iobz0wLGw9MDtsPHA7bCsrKW8rPWgud2lkdGhzW2xdK2YuZ2FwQnV0dG9uO24uZW5hYmxlKGEsbyxzKSxuLmhiYXImJm4uaGJhci5hdHRyKCJvcGFjaXR5IiwiMCIpLnRyYW5zaXRpb24oKS5hdHRyKCJvcGFjaXR5IiwiMSIpO24udmJhciYmbi52YmFyLmF0dHIoIm9wYWNpdHkiLCIwIikudHJhbnNpdGlvbigpLmF0dHIoIm9wYWNpdHkiLCIxIil9KDAsMCwwLGEsbyxrKTpmdW5jdGlvbih0KXt2YXIgZT0hIXQuaGJhcixyPSEhdC52YmFyO2UmJnQuaGJhci50cmFuc2l0aW9uKCkuYXR0cigib3BhY2l0eSIsIjAiKS5lYWNoKCJlbmQiLChmdW5jdGlvbigpe2U9ITEscnx8dC5kaXNhYmxlKCl9KSk7ciYmdC52YmFyLnRyYW5zaXRpb24oKS5hdHRyKCJvcGFjaXR5IiwiMCIpLmVhY2goImVuZCIsKGZ1bmN0aW9uKCl7cj0hMSxlfHx0LmRpc2FibGUoKX0pKX0oYSkpfWZ1bmN0aW9uIHkodCxlLHIsbil7dC5jYWxsKHgsZSkuY2FsbChiLGUscixuKX1mdW5jdGlvbiB4KHQsZSl7cy5lbnN1cmVTaW5nbGUodCwicmVjdCIsZi5pdGVtUmVjdENsYXNzTmFtZSwoZnVuY3Rpb24odCl7dC5hdHRyKHtyeDpmLnJ4LHJ5OmYucnksInNoYXBlLXJlbmRlcmluZyI6ImNyaXNwRWRnZXMifSl9KSkuY2FsbChhLnN0cm9rZSxlLmJvcmRlcmNvbG9yKS5jYWxsKGEuZmlsbCxlLmJnY29sb3IpLnN0eWxlKCJzdHJva2Utd2lkdGgiLGUuYm9yZGVyd2lkdGgrInB4Iil9ZnVuY3Rpb24gYih0LGUscixuKXt2YXIgaT1zLmVuc3VyZVNpbmdsZSh0LCJ0ZXh0IixmLml0ZW1UZXh0Q2xhc3NOYW1lLChmdW5jdGlvbih0KXt0LmF0dHIoeyJ0ZXh0LWFuY2hvciI6InN0YXJ0IiwiZGF0YS1ub3RleCI6MX0pfSkpLGE9ci5sYWJlbCxjPW4uX2Z1bGxMYXlvdXQuX21ldGE7YyYmKGE9cy50ZW1wbGF0ZVN0cmluZyhhLGMpKSxpLmNhbGwoby5mb250LGUuZm9udCkudGV4dChhKS5jYWxsKGwuY29udmVydFRvVHNwYW5zLG4pfWZ1bmN0aW9uIF8odCxlKXt2YXIgcj1lLmFjdGl2ZTt0LmVhY2goKGZ1bmN0aW9uKHQsaSl7dmFyIG89bi5zZWxlY3QodGhpcyk7aT09PXImJmUuc2hvd2FjdGl2ZSYmby5zZWxlY3QoInJlY3QuIitmLml0ZW1SZWN0Q2xhc3NOYW1lKS5jYWxsKGEuZmlsbCxmLmFjdGl2ZUNvbG9yKX0pKX1mdW5jdGlvbiB3KHQpe3Quc2VsZWN0KCJyZWN0LiIrZi5pdGVtUmVjdENsYXNzTmFtZSkuY2FsbChhLmZpbGwsZi5ob3ZlckNvbG9yKX1mdW5jdGlvbiBUKHQsZSl7dC5zZWxlY3QoInJlY3QuIitmLml0ZW1SZWN0Q2xhc3NOYW1lKS5jYWxsKGEuZmlsbCxlLmJnY29sb3IpfWZ1bmN0aW9uIGsodCxlKXt2YXIgcj1lLl9kaW1zPXt3aWR0aDE6MCxoZWlnaHQxOjAsaGVpZ2h0czpbXSx3aWR0aHM6W10sdG90YWxXaWR0aDowLHRvdGFsSGVpZ2h0OjAsb3BlbldpZHRoOjAsb3BlbkhlaWdodDowLGx4OjAsbHk6MH0sYT1vLnRlc3Rlci5zZWxlY3RBbGwoImcuIitmLmRyb3Bkb3duQnV0dG9uQ2xhc3NOYW1lKS5kYXRhKHMuZmlsdGVyVmlzaWJsZShlLmJ1dHRvbnMpKTthLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChmLmRyb3Bkb3duQnV0dG9uQ2xhc3NOYW1lLCEwKTt2YXIgYz0tMSE9PVsidXAiLCJkb3duIl0uaW5kZXhPZihlLmRpcmVjdGlvbik7YS5lYWNoKChmdW5jdGlvbihpLGEpe3ZhciBzPW4uc2VsZWN0KHRoaXMpO3MuY2FsbCh5LGUsaSx0KTt2YXIgaD1zLnNlbGVjdCgiLiIrZi5pdGVtVGV4dENsYXNzTmFtZSkscD1oLm5vZGUoKSYmby5iQm94KGgubm9kZSgpKS53aWR0aCxkPU1hdGgubWF4KHArZi50ZXh0UGFkWCxmLm1pbldpZHRoKSxtPWUuZm9udC5zaXplKnUsZz1sLmxpbmVDb3VudChoKSx2PU1hdGgubWF4KG0qZyxmLm1pbkhlaWdodCkrZi50ZXh0T2Zmc2V0WTt2PU1hdGguY2VpbCh2KSxkPU1hdGguY2VpbChkKSxyLndpZHRoc1thXT1kLHIuaGVpZ2h0c1thXT12LHIuaGVpZ2h0MT1NYXRoLm1heChyLmhlaWdodDEsdiksci53aWR0aDE9TWF0aC5tYXgoci53aWR0aDEsZCksYz8oci50b3RhbFdpZHRoPU1hdGgubWF4KHIudG90YWxXaWR0aCxkKSxyLm9wZW5XaWR0aD1yLnRvdGFsV2lkdGgsci50b3RhbEhlaWdodCs9ditmLmdhcEJ1dHRvbixyLm9wZW5IZWlnaHQrPXYrZi5nYXBCdXR0b24pOihyLnRvdGFsV2lkdGgrPWQrZi5nYXBCdXR0b24sci5vcGVuV2lkdGgrPWQrZi5nYXBCdXR0b24sci50b3RhbEhlaWdodD1NYXRoLm1heChyLnRvdGFsSGVpZ2h0LHYpLHIub3BlbkhlaWdodD1yLnRvdGFsSGVpZ2h0KX0pKSxjP3IudG90YWxIZWlnaHQtPWYuZ2FwQnV0dG9uOnIudG90YWxXaWR0aC09Zi5nYXBCdXR0b24sci5oZWFkZXJXaWR0aD1yLndpZHRoMStmLmFycm93UGFkWCxyLmhlYWRlckhlaWdodD1yLmhlaWdodDEsImRyb3Bkb3duIj09PWUudHlwZSYmKGM/KHIud2lkdGgxKz1mLmFycm93UGFkWCxyLnRvdGFsSGVpZ2h0PXIuaGVpZ2h0MSk6ci50b3RhbFdpZHRoPXIud2lkdGgxLHIudG90YWxXaWR0aCs9Zi5hcnJvd1BhZFgpLGEucmVtb3ZlKCk7dmFyIGg9ci50b3RhbFdpZHRoK2UucGFkLmwrZS5wYWQucixwPXIudG90YWxIZWlnaHQrZS5wYWQudCtlLnBhZC5iLGQ9dC5fZnVsbExheW91dC5fc2l6ZTtyLmx4PWQubCtkLncqZS54LHIubHk9ZC50K2QuaCooMS1lLnkpO3ZhciBtPSJsZWZ0IjtzLmlzUmlnaHRBbmNob3IoZSkmJihyLmx4LT1oLG09InJpZ2h0Iikscy5pc0NlbnRlckFuY2hvcihlKSYmKHIubHgtPWgvMixtPSJjZW50ZXIiKTt2YXIgZz0idG9wIjtzLmlzQm90dG9tQW5jaG9yKGUpJiYoci5seS09cCxnPSJib3R0b20iKSxzLmlzTWlkZGxlQW5jaG9yKGUpJiYoci5seS09cC8yLGc9Im1pZGRsZSIpLHIudG90YWxXaWR0aD1NYXRoLmNlaWwoci50b3RhbFdpZHRoKSxyLnRvdGFsSGVpZ2h0PU1hdGguY2VpbChyLnRvdGFsSGVpZ2h0KSxyLmx4PU1hdGgucm91bmQoci5seCksci5seT1NYXRoLnJvdW5kKHIubHkpLGkuYXV0b01hcmdpbih0LEEoZSkse3g6ZS54LHk6ZS55LGw6aCooe3JpZ2h0OjEsY2VudGVyOi41fVttXXx8MCkscjpoKih7bGVmdDoxLGNlbnRlcjouNX1bbV18fDApLGI6cCooe3RvcDoxLG1pZGRsZTouNX1bZ118fDApLHQ6cCooe2JvdHRvbToxLG1pZGRsZTouNX1bZ118fDApfSl9ZnVuY3Rpb24gQSh0KXtyZXR1cm4gZi5hdXRvTWFyZ2luSWRSb290K3QuX2luZGV4fWZ1bmN0aW9uIE0odCxlLHIsbil7bj1ufHx7fTt2YXIgaT10LnNlbGVjdCgiLiIrZi5pdGVtUmVjdENsYXNzTmFtZSksYT10LnNlbGVjdCgiLiIrZi5pdGVtVGV4dENsYXNzTmFtZSkscz1lLmJvcmRlcndpZHRoLGM9ci5pbmRleCxoPWUuX2RpbXM7by5zZXRUcmFuc2xhdGUodCxzK3IueCxzK3IueSk7dmFyIHA9LTEhPT1bInVwIiwiZG93biJdLmluZGV4T2YoZS5kaXJlY3Rpb24pLGQ9bi5oZWlnaHR8fChwP2guaGVpZ2h0c1tjXTpoLmhlaWdodDEpO2kuYXR0cih7eDowLHk6MCx3aWR0aDpuLndpZHRofHwocD9oLndpZHRoMTpoLndpZHRoc1tjXSksaGVpZ2h0OmR9KTt2YXIgbT1lLmZvbnQuc2l6ZSp1LGc9KGwubGluZUNvdW50KGEpLTEpKm0vMjtsLnBvc2l0aW9uVGV4dChhLGYudGV4dE9mZnNldFgsZC8yLWcrZi50ZXh0T2Zmc2V0WSkscD9yLnkrPWguaGVpZ2h0c1tjXStyLnlQYWQ6ci54Kz1oLndpZHRoc1tjXStyLnhQYWQsci5pbmRleCsrfWZ1bmN0aW9uIFModCxlKXt0LmF0dHIoZi5tZW51SW5kZXhBdHRyTmFtZSxlfHwiLTEiKS5zZWxlY3RBbGwoImcuIitmLmRyb3Bkb3duQnV0dG9uQ2xhc3NOYW1lKS5yZW1vdmUoKX1lLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5fZnVsbExheW91dCxyPXMuZmlsdGVyVmlzaWJsZShlW2YubmFtZV0pO2Z1bmN0aW9uIGEoZSl7aS5hdXRvTWFyZ2luKHQsQShlKSl9dmFyIG89ZS5fbWVudWxheWVyLnNlbGVjdEFsbCgiZy4iK2YuY29udGFpbmVyQ2xhc3NOYW1lKS5kYXRhKHIubGVuZ3RoPjA/WzBdOltdKTtpZihvLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChmLmNvbnRhaW5lckNsYXNzTmFtZSwhMCkuc3R5bGUoImN1cnNvciIsInBvaW50ZXIiKSxvLmV4aXQoKS5lYWNoKChmdW5jdGlvbigpe24uc2VsZWN0KHRoaXMpLnNlbGVjdEFsbCgiZy4iK2YuaGVhZGVyR3JvdXBDbGFzc05hbWUpLmVhY2goYSl9KSkucmVtb3ZlKCksMCE9PXIubGVuZ3RoKXt2YXIgbD1vLnNlbGVjdEFsbCgiZy4iK2YuaGVhZGVyR3JvdXBDbGFzc05hbWUpLmRhdGEocixwKTtsLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChmLmhlYWRlckdyb3VwQ2xhc3NOYW1lLCEwKTtmb3IodmFyIGM9cy5lbnN1cmVTaW5nbGUobywiZyIsZi5kcm9wZG93bkJ1dHRvbkdyb3VwQ2xhc3NOYW1lLChmdW5jdGlvbih0KXt0LnN0eWxlKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpfSkpLHU9MDt1PHIubGVuZ3RoO3UrKyl7dmFyIHk9clt1XTtrKHQseSl9dmFyIHg9InVwZGF0ZW1lbnVzIitlLl91aWQsYj1uZXcgaCh0LGMseCk7bC5lbnRlcigpLnNpemUoKSYmKGMubm9kZSgpLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQoYy5ub2RlKCkpLGMuY2FsbChTKSksbC5leGl0KCkuZWFjaCgoZnVuY3Rpb24odCl7Yy5jYWxsKFMpLGEodCl9KSkucmVtb3ZlKCksbC5lYWNoKChmdW5jdGlvbihlKXt2YXIgcj1uLnNlbGVjdCh0aGlzKSxhPSJkcm9wZG93biI9PT1lLnR5cGU/YzpudWxsO2kubWFuYWdlQ29tbWFuZE9ic2VydmVyKHQsZSxlLmJ1dHRvbnMsKGZ1bmN0aW9uKG4pe20odCxlLGUuYnV0dG9uc1tuLmluZGV4XSxyLGEsYixuLmluZGV4LCEwKX0pKSwiZHJvcGRvd24iPT09ZS50eXBlPyhnKHQscixjLGIsZSksZChjLGUpJiZ2KHQscixjLGIsZSkpOnYodCxyLG51bGwsbnVsbCxlKX0pKX19fSx7Ii4uLy4uL2NvbnN0YW50cy9hbGlnbm1lbnQiOjQ4MywiLi4vLi4vbGliIjo1MTUsIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyI6NTQxLCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIjo1NTUsIi4uLy4uL3Bsb3RzL3Bsb3RzIjo2MjgsIi4uL2NvbG9yIjozNjcsIi4uL2RyYXdpbmciOjM4OSwiLi9jb25zdGFudHMiOjQ3OCwiLi9zY3JvbGxib3giOjQ4MiwiQHBsb3RseS9kMyI6NTh9XSw0ODE6W2Z1bmN0aW9uKHQsZSxyKXthcmd1bWVudHNbNF1bNDc1XVswXS5hcHBseShyLGFyZ3VtZW50cyl9LHsiLi9hdHRyaWJ1dGVzIjo0NzcsIi4vY29uc3RhbnRzIjo0NzgsIi4vZGVmYXVsdHMiOjQ3OSwiLi9kcmF3Ijo0ODAsZHVwOjQ3NX1dLDQ4MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9czt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi9jb2xvciIpLGE9dCgiLi4vZHJhd2luZyIpLG89dCgiLi4vLi4vbGliIik7ZnVuY3Rpb24gcyh0LGUscil7dGhpcy5nZD10LHRoaXMuY29udGFpbmVyPWUsdGhpcy5pZD1yLHRoaXMucG9zaXRpb249bnVsbCx0aGlzLnRyYW5zbGF0ZVg9bnVsbCx0aGlzLnRyYW5zbGF0ZVk9bnVsbCx0aGlzLmhiYXI9bnVsbCx0aGlzLnZiYXI9bnVsbCx0aGlzLmJnPXRoaXMuY29udGFpbmVyLnNlbGVjdEFsbCgicmVjdC5zY3JvbGxib3gtYmciKS5kYXRhKFswXSksdGhpcy5iZy5leGl0KCkub24oIi5kcmFnIixudWxsKS5vbigid2hlZWwiLG51bGwpLnJlbW92ZSgpLHRoaXMuYmcuZW50ZXIoKS5hcHBlbmQoInJlY3QiKS5jbGFzc2VkKCJzY3JvbGxib3gtYmciLCEwKS5zdHlsZSgicG9pbnRlci1ldmVudHMiLCJhbGwiKS5hdHRyKHtvcGFjaXR5OjAseDowLHk6MCx3aWR0aDowLGhlaWdodDowfSl9cy5iYXJXaWR0aD0yLHMuYmFyTGVuZ3RoPTIwLHMuYmFyUmFkaXVzPTIscy5iYXJQYWQ9MSxzLmJhckNvbG9yPSIjODA4QkE0IixzLnByb3RvdHlwZS5lbmFibGU9ZnVuY3Rpb24odCxlLHIpe3ZhciBvPXRoaXMuZ2QuX2Z1bGxMYXlvdXQsbD1vLndpZHRoLGM9by5oZWlnaHQ7dGhpcy5wb3NpdGlvbj10O3ZhciB1LGYsaCxwLGQ9dGhpcy5wb3NpdGlvbi5sLG09dGhpcy5wb3NpdGlvbi53LGc9dGhpcy5wb3NpdGlvbi50LHY9dGhpcy5wb3NpdGlvbi5oLHk9dGhpcy5wb3NpdGlvbi5kaXJlY3Rpb24seD0iZG93biI9PT15LGI9ImxlZnQiPT09eSxfPSJ1cCI9PT15LHc9bSxUPXY7eHx8Ynx8InJpZ2h0Ij09PXl8fF98fCh0aGlzLnBvc2l0aW9uLmRpcmVjdGlvbj0iZG93biIseD0hMCkseHx8Xz8oZj0odT1kKSt3LHg/KGg9ZyxUPShwPU1hdGgubWluKGgrVCxjKSktaCk6VD0ocD1nK1QpLShoPU1hdGgubWF4KHAtVCwwKSkpOihwPShoPWcpK1QsYj93PShmPWQrdyktKHU9TWF0aC5tYXgoZi13LDApKToodT1kLHc9KGY9TWF0aC5taW4odSt3LGwpKS11KSksdGhpcy5fYm94PXtsOnUsdDpoLHc6dyxoOlR9O3ZhciBrPW0+dyxBPXMuYmFyTGVuZ3RoKzIqcy5iYXJQYWQsTT1zLmJhcldpZHRoKzIqcy5iYXJQYWQsUz1kLEU9Zyt2O0UrTT5jJiYoRT1jLU0pO3ZhciBMPXRoaXMuY29udGFpbmVyLnNlbGVjdEFsbCgicmVjdC5zY3JvbGxiYXItaG9yaXpvbnRhbCIpLmRhdGEoaz9bMF06W10pO0wuZXhpdCgpLm9uKCIuZHJhZyIsbnVsbCkucmVtb3ZlKCksTC5lbnRlcigpLmFwcGVuZCgicmVjdCIpLmNsYXNzZWQoInNjcm9sbGJhci1ob3Jpem9udGFsIiwhMCkuY2FsbChpLmZpbGwscy5iYXJDb2xvciksaz8odGhpcy5oYmFyPUwuYXR0cih7cng6cy5iYXJSYWRpdXMscnk6cy5iYXJSYWRpdXMseDpTLHk6RSx3aWR0aDpBLGhlaWdodDpNfSksdGhpcy5faGJhclhNaW49UytBLzIsdGhpcy5faGJhclRyYW5zbGF0ZU1heD13LUEpOihkZWxldGUgdGhpcy5oYmFyLGRlbGV0ZSB0aGlzLl9oYmFyWE1pbixkZWxldGUgdGhpcy5faGJhclRyYW5zbGF0ZU1heCk7dmFyIEM9dj5ULFA9cy5iYXJXaWR0aCsyKnMuYmFyUGFkLEk9cy5iYXJMZW5ndGgrMipzLmJhclBhZCxPPWQrbSx6PWc7TytQPmwmJihPPWwtUCk7dmFyIEQ9dGhpcy5jb250YWluZXIuc2VsZWN0QWxsKCJyZWN0LnNjcm9sbGJhci12ZXJ0aWNhbCIpLmRhdGEoQz9bMF06W10pO0QuZXhpdCgpLm9uKCIuZHJhZyIsbnVsbCkucmVtb3ZlKCksRC5lbnRlcigpLmFwcGVuZCgicmVjdCIpLmNsYXNzZWQoInNjcm9sbGJhci12ZXJ0aWNhbCIsITApLmNhbGwoaS5maWxsLHMuYmFyQ29sb3IpLEM/KHRoaXMudmJhcj1ELmF0dHIoe3J4OnMuYmFyUmFkaXVzLHJ5OnMuYmFyUmFkaXVzLHg6Tyx5Onosd2lkdGg6UCxoZWlnaHQ6SX0pLHRoaXMuX3ZiYXJZTWluPXorSS8yLHRoaXMuX3ZiYXJUcmFuc2xhdGVNYXg9VC1JKTooZGVsZXRlIHRoaXMudmJhcixkZWxldGUgdGhpcy5fdmJhcllNaW4sZGVsZXRlIHRoaXMuX3ZiYXJUcmFuc2xhdGVNYXgpO3ZhciBSPXRoaXMuaWQsRj11LS41LEI9Qz9mK1ArLjU6ZisuNSxOPWgtLjUsaj1rP3ArTSsuNTpwKy41LFU9by5fdG9wZGVmcy5zZWxlY3RBbGwoIiMiK1IpLmRhdGEoa3x8Qz9bMF06W10pO2lmKFUuZXhpdCgpLnJlbW92ZSgpLFUuZW50ZXIoKS5hcHBlbmQoImNsaXBQYXRoIikuYXR0cigiaWQiLFIpLmFwcGVuZCgicmVjdCIpLGt8fEM/KHRoaXMuX2NsaXBSZWN0PVUuc2VsZWN0KCJyZWN0IikuYXR0cih7eDpNYXRoLmZsb29yKEYpLHk6TWF0aC5mbG9vcihOKSx3aWR0aDpNYXRoLmNlaWwoQiktTWF0aC5mbG9vcihGKSxoZWlnaHQ6TWF0aC5jZWlsKGopLU1hdGguZmxvb3IoTil9KSx0aGlzLmNvbnRhaW5lci5jYWxsKGEuc2V0Q2xpcFVybCxSLHRoaXMuZ2QpLHRoaXMuYmcuYXR0cih7eDpkLHk6Zyx3aWR0aDptLGhlaWdodDp2fSkpOih0aGlzLmJnLmF0dHIoe3dpZHRoOjAsaGVpZ2h0OjB9KSx0aGlzLmNvbnRhaW5lci5vbigid2hlZWwiLG51bGwpLm9uKCIuZHJhZyIsbnVsbCkuY2FsbChhLnNldENsaXBVcmwsbnVsbCksZGVsZXRlIHRoaXMuX2NsaXBSZWN0KSxrfHxDKXt2YXIgVj1uLmJlaGF2aW9yLmRyYWcoKS5vbigiZHJhZ3N0YXJ0IiwoZnVuY3Rpb24oKXtuLmV2ZW50LnNvdXJjZUV2ZW50LnByZXZlbnREZWZhdWx0KCl9KSkub24oImRyYWciLHRoaXMuX29uQm94RHJhZy5iaW5kKHRoaXMpKTt0aGlzLmNvbnRhaW5lci5vbigid2hlZWwiLG51bGwpLm9uKCJ3aGVlbCIsdGhpcy5fb25Cb3hXaGVlbC5iaW5kKHRoaXMpKS5vbigiLmRyYWciLG51bGwpLmNhbGwoVik7dmFyIEg9bi5iZWhhdmlvci5kcmFnKCkub24oImRyYWdzdGFydCIsKGZ1bmN0aW9uKCl7bi5ldmVudC5zb3VyY2VFdmVudC5wcmV2ZW50RGVmYXVsdCgpLG4uZXZlbnQuc291cmNlRXZlbnQuc3RvcFByb3BhZ2F0aW9uKCl9KSkub24oImRyYWciLHRoaXMuX29uQmFyRHJhZy5iaW5kKHRoaXMpKTtrJiZ0aGlzLmhiYXIub24oIi5kcmFnIixudWxsKS5jYWxsKEgpLEMmJnRoaXMudmJhci5vbigiLmRyYWciLG51bGwpLmNhbGwoSCl9dGhpcy5zZXRUcmFuc2xhdGUoZSxyKX0scy5wcm90b3R5cGUuZGlzYWJsZT1mdW5jdGlvbigpeyh0aGlzLmhiYXJ8fHRoaXMudmJhcikmJih0aGlzLmJnLmF0dHIoe3dpZHRoOjAsaGVpZ2h0OjB9KSx0aGlzLmNvbnRhaW5lci5vbigid2hlZWwiLG51bGwpLm9uKCIuZHJhZyIsbnVsbCkuY2FsbChhLnNldENsaXBVcmwsbnVsbCksZGVsZXRlIHRoaXMuX2NsaXBSZWN0KSx0aGlzLmhiYXImJih0aGlzLmhiYXIub24oIi5kcmFnIixudWxsKSx0aGlzLmhiYXIucmVtb3ZlKCksZGVsZXRlIHRoaXMuaGJhcixkZWxldGUgdGhpcy5faGJhclhNaW4sZGVsZXRlIHRoaXMuX2hiYXJUcmFuc2xhdGVNYXgpLHRoaXMudmJhciYmKHRoaXMudmJhci5vbigiLmRyYWciLG51bGwpLHRoaXMudmJhci5yZW1vdmUoKSxkZWxldGUgdGhpcy52YmFyLGRlbGV0ZSB0aGlzLl92YmFyWU1pbixkZWxldGUgdGhpcy5fdmJhclRyYW5zbGF0ZU1heCl9LHMucHJvdG90eXBlLl9vbkJveERyYWc9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnRyYW5zbGF0ZVgsZT10aGlzLnRyYW5zbGF0ZVk7dGhpcy5oYmFyJiYodC09bi5ldmVudC5keCksdGhpcy52YmFyJiYoZS09bi5ldmVudC5keSksdGhpcy5zZXRUcmFuc2xhdGUodCxlKX0scy5wcm90b3R5cGUuX29uQm94V2hlZWw9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnRyYW5zbGF0ZVgsZT10aGlzLnRyYW5zbGF0ZVk7dGhpcy5oYmFyJiYodCs9bi5ldmVudC5kZWx0YVkpLHRoaXMudmJhciYmKGUrPW4uZXZlbnQuZGVsdGFZKSx0aGlzLnNldFRyYW5zbGF0ZSh0LGUpfSxzLnByb3RvdHlwZS5fb25CYXJEcmFnPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy50cmFuc2xhdGVYLGU9dGhpcy50cmFuc2xhdGVZO2lmKHRoaXMuaGJhcil7dmFyIHI9dCt0aGlzLl9oYmFyWE1pbixpPXIrdGhpcy5faGJhclRyYW5zbGF0ZU1heDt0PShvLmNvbnN0cmFpbihuLmV2ZW50LngscixpKS1yKS8oaS1yKSoodGhpcy5wb3NpdGlvbi53LXRoaXMuX2JveC53KX1pZih0aGlzLnZiYXIpe3ZhciBhPWUrdGhpcy5fdmJhcllNaW4scz1hK3RoaXMuX3ZiYXJUcmFuc2xhdGVNYXg7ZT0oby5jb25zdHJhaW4obi5ldmVudC55LGEscyktYSkvKHMtYSkqKHRoaXMucG9zaXRpb24uaC10aGlzLl9ib3guaCl9dGhpcy5zZXRUcmFuc2xhdGUodCxlKX0scy5wcm90b3R5cGUuc2V0VHJhbnNsYXRlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5wb3NpdGlvbi53LXRoaXMuX2JveC53LG49dGhpcy5wb3NpdGlvbi5oLXRoaXMuX2JveC5oO2lmKHQ9by5jb25zdHJhaW4odHx8MCwwLHIpLGU9by5jb25zdHJhaW4oZXx8MCwwLG4pLHRoaXMudHJhbnNsYXRlWD10LHRoaXMudHJhbnNsYXRlWT1lLHRoaXMuY29udGFpbmVyLmNhbGwoYS5zZXRUcmFuc2xhdGUsdGhpcy5fYm94LmwtdGhpcy5wb3NpdGlvbi5sLXQsdGhpcy5fYm94LnQtdGhpcy5wb3NpdGlvbi50LWUpLHRoaXMuX2NsaXBSZWN0JiZ0aGlzLl9jbGlwUmVjdC5hdHRyKHt4Ok1hdGguZmxvb3IodGhpcy5wb3NpdGlvbi5sK3QtLjUpLHk6TWF0aC5mbG9vcih0aGlzLnBvc2l0aW9uLnQrZS0uNSl9KSx0aGlzLmhiYXIpe3ZhciBpPXQvcjt0aGlzLmhiYXIuY2FsbChhLnNldFRyYW5zbGF0ZSx0K2kqdGhpcy5faGJhclRyYW5zbGF0ZU1heCxlKX1pZih0aGlzLnZiYXIpe3ZhciBzPWUvbjt0aGlzLnZiYXIuY2FsbChhLnNldFRyYW5zbGF0ZSx0LGUrcyp0aGlzLl92YmFyVHJhbnNsYXRlTWF4KX19fSx7Ii4uLy4uL2xpYiI6NTE1LCIuLi9jb2xvciI6MzY3LCIuLi9kcmF3aW5nIjozODksIkBwbG90bHkvZDMiOjU4fV0sNDgzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17RlJPTV9CTDp7bGVmdDowLGNlbnRlcjouNSxyaWdodDoxLGJvdHRvbTowLG1pZGRsZTouNSx0b3A6MX0sRlJPTV9UTDp7bGVmdDowLGNlbnRlcjouNSxyaWdodDoxLGJvdHRvbToxLG1pZGRsZTouNSx0b3A6MH0sRlJPTV9CUjp7bGVmdDoxLGNlbnRlcjouNSxyaWdodDowLGJvdHRvbTowLG1pZGRsZTouNSx0b3A6MX0sTElORV9TUEFDSU5HOjEuMyxDQVBfU0hJRlQ6LjcsTUlEX1NISUZUOi4zNSxPUFBPU0lURV9TSURFOntsZWZ0OiJyaWdodCIscmlnaHQ6ImxlZnQiLHRvcDoiYm90dG9tIixib3R0b206InRvcCJ9fX0se31dLDQ4NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2F4aXNSZWZEZXNjcmlwdGlvbjpmdW5jdGlvbih0LGUscil7cmV0dXJuWyJJZiBzZXQgdG8gYSIsdCwiYXhpcyBpZCAoZS5nLiAqIit0KyIqIG9yIiwiKiIrdCsiMiopLCB0aGUgYCIrdCsiYCBwb3NpdGlvbiByZWZlcnMgdG8gYSIsdCwiY29vcmRpbmF0ZS4gSWYgc2V0IHRvICpwYXBlciosIHRoZSBgIit0KyJgIiwicG9zaXRpb24gcmVmZXJzIHRvIHRoZSBkaXN0YW5jZSBmcm9tIHRoZSIsZSwib2YgdGhlIHBsb3R0aW5nIiwiYXJlYSBpbiBub3JtYWxpemVkIGNvb3JkaW5hdGVzIHdoZXJlICowKiAoKjEqKSBjb3JyZXNwb25kcyB0byB0aGUiLGUsIigiK3IrIikuIElmIHNldCB0byBhIix0LCJheGlzIElEIGZvbGxvd2VkIGJ5IiwiKmRvbWFpbiogKHNlcGFyYXRlZCBieSBhIHNwYWNlKSwgdGhlIHBvc2l0aW9uIGJlaGF2ZXMgbGlrZSBmb3IiLCIqcGFwZXIqLCBidXQgcmVmZXJzIHRvIHRoZSBkaXN0YW5jZSBpbiBmcmFjdGlvbnMgb2YgdGhlIGRvbWFpbiIsImxlbmd0aCBmcm9tIHRoZSIsZSwib2YgdGhlIGRvbWFpbiBvZiB0aGF0IGF4aXM6IGUuZy4sIiwiKiIrdCsiMiBkb21haW4qIHJlZmVycyB0byB0aGUgZG9tYWluIG9mIHRoZSBzZWNvbmQiLHQsIiBheGlzIGFuZCBhIix0LCJwb3NpdGlvbiBvZiAwLjUgcmVmZXJzIHRvIHRoZSIsInBvaW50IGJldHdlZW4gdGhlIixlLCJhbmQgdGhlIixyLCJvZiB0aGUgZG9tYWluIG9mIHRoZSIsInNlY29uZCIsdCwiYXhpcy4iXS5qb2luKCIgIil9fX0se31dLDQ4NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e0lOQ1JFQVNJTkc6e0NPTE9SOiIjM0Q5OTcwIixTWU1CT0w6Ilx1MjViMiJ9LERFQ1JFQVNJTkc6e0NPTE9SOiIjRkY0MTM2IixTWU1CT0w6Ilx1MjViYyJ9fX0se31dLDQ4NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e0ZPUk1BVF9MSU5LOiJodHRwczovL2dpdGh1Yi5jb20vZDMvZDMtZm9ybWF0L3RyZWUvdjEuNC41I2QzLWZvcm1hdCIsREFURV9GT1JNQVRfTElOSzoiaHR0cHM6Ly9naXRodWIuY29tL2QzL2QzLXRpbWUtZm9ybWF0L3RyZWUvdjIuMi4zI2xvY2FsZV9mb3JtYXQifX0se31dLDQ4NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e0NPTVBBUklTT05fT1BTOlsiPSIsIiE9IiwiPCIsIj49IiwiPiIsIjw9Il0sQ09NUEFSSVNPTl9PUFMyOlsiPSIsIjwiLCI+PSIsIj4iLCI8PSJdLElOVEVSVkFMX09QUzpbIltdIiwiKCkiLCJbKSIsIihdIiwiXVsiLCIpKCIsIl0oIiwiKVsiXSxTRVRfT1BTOlsie30iLCJ9eyJdLENPTlNUUkFJTlRfUkVEVUNUSU9OOnsiPSI6Ij0iLCI8IjoiPCIsIjw9IjoiPCIsIj4iOiI+IiwiPj0iOiI+IiwiW10iOiJbXSIsIigpIjoiW10iLCJbKSI6IltdIiwiKF0iOiJbXSIsIl1bIjoiXVsiLCIpKCI6Il1bIiwiXSgiOiJdWyIsIilbIjoiXVsifX19LHt9XSw0ODg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtzb2xpZDpbW10sMF0sZG90OltbLjUsMV0sMjAwXSxkYXNoOltbLjUsMV0sNTBdLGxvbmdkYXNoOltbLjUsMV0sMTBdLGRhc2hkb3Q6W1suNSwuNjI1LC44NzUsMV0sNTBdLGxvbmdkYXNoZG90OltbLjUsLjcsLjgsMV0sMTBdfX0se31dLDQ4OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2NpcmNsZToiXHUyNWNmIiwiY2lyY2xlLW9wZW4iOiJcdTI1Y2IiLHNxdWFyZToiXHUyNWEwIiwic3F1YXJlLW9wZW4iOiJcdTI1YTEiLGRpYW1vbmQ6Ilx1MjVjNiIsImRpYW1vbmQtb3BlbiI6Ilx1MjVjNyIsY3Jvc3M6IisiLHg6Ilx1Mjc0YyJ9fSx7fV0sNDkwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17U0hPV19QTEFDRUhPTERFUjoxMDAsSElERV9QTEFDRUhPTERFUjoxZTMsREVTRUxFQ1RESU06LjJ9fSx7fV0sNDkxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17QkFETlVNOnZvaWQgMCxGUF9TQUZFOjFlLTQqTnVtYmVyLk1BWF9WQUxVRSxPTkVNQVhZRUFSOjMxNjIyNGU1LE9ORUFWR1lFQVI6MzE1NTc2ZTUsT05FTUlOWUVBUjozMTUzNmU2LE9ORU1BWFFVQVJURVI6Nzk0ODhlNSxPTkVBVkdRVUFSVEVSOjc4ODk0ZTUsT05FTUlOUVVBUlRFUjo3Njg5NmU1LE9ORU1BWE1PTlRIOjI2Nzg0ZTUsT05FQVZHTU9OVEg6MjYyOThlNSxPTkVNSU5NT05USDoyNDE5MmU1LE9ORVdFRUs6NjA0OGU1LE9ORURBWTo4NjRlNSxPTkVIT1VSOjM2ZTUsT05FTUlOOjZlNCxPTkVTRUM6MWUzLEVQT0NISkQ6MjQ0MDU4Ny41LEFMTU9TVF9FUVVBTDouOTk5OTk5LExPR19DTElQOjEwLE1JTlVTX1NJR046Ilx1MjIxMiJ9fSx7fV0sNDkyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3IueG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvIixyLnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHIueGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLHIuc3ZnQXR0cnM9e3htbG5zOnIuc3ZnLCJ4bWxuczp4bGluayI6ci54bGlua319LHt9XSw0OTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ci52ZXJzaW9uPXQoIi4vdmVyc2lvbiIpLnZlcnNpb24sdCgibmF0aXZlLXByb21pc2Utb25seSIpLHQoIi4uL2J1aWxkL3Bsb3Rjc3MiKTtmb3IodmFyIG49dCgiLi9yZWdpc3RyeSIpLGk9ci5yZWdpc3Rlcj1uLnJlZ2lzdGVyLGE9dCgiLi9wbG90X2FwaSIpLG89T2JqZWN0LmtleXMoYSkscz0wO3M8by5sZW5ndGg7cysrKXt2YXIgbD1vW3NdOyJfIiE9PWwuY2hhckF0KDApJiYocltsXT1hW2xdKSxpKHttb2R1bGVUeXBlOiJhcGlNZXRob2QiLG5hbWU6bCxmbjphW2xdfSl9aSh0KCIuL3RyYWNlcy9zY2F0dGVyIikpLGkoW3QoIi4vY29tcG9uZW50cy9sZWdlbmQiKSx0KCIuL2NvbXBvbmVudHMvZngiKSx0KCIuL2NvbXBvbmVudHMvYW5ub3RhdGlvbnMiKSx0KCIuL2NvbXBvbmVudHMvYW5ub3RhdGlvbnMzZCIpLHQoIi4vY29tcG9uZW50cy9zZWxlY3Rpb25zIiksdCgiLi9jb21wb25lbnRzL3NoYXBlcyIpLHQoIi4vY29tcG9uZW50cy9pbWFnZXMiKSx0KCIuL2NvbXBvbmVudHMvdXBkYXRlbWVudXMiKSx0KCIuL2NvbXBvbmVudHMvc2xpZGVycyIpLHQoIi4vY29tcG9uZW50cy9yYW5nZXNsaWRlciIpLHQoIi4vY29tcG9uZW50cy9yYW5nZXNlbGVjdG9yIiksdCgiLi9jb21wb25lbnRzL2dyaWQiKSx0KCIuL2NvbXBvbmVudHMvZXJyb3JiYXJzIiksdCgiLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiKSx0KCIuL2NvbXBvbmVudHMvY29sb3JiYXIiKSx0KCIuL2NvbXBvbmVudHMvbW9kZWJhciIpXSksaShbdCgiLi9sb2NhbGUtZW4iKSx0KCIuL2xvY2FsZS1lbi11cyIpXSksd2luZG93LlBsb3RseUxvY2FsZXMmJkFycmF5LmlzQXJyYXkod2luZG93LlBsb3RseUxvY2FsZXMpJiYoaSh3aW5kb3cuUGxvdGx5TG9jYWxlcyksZGVsZXRlIHdpbmRvdy5QbG90bHlMb2NhbGVzKSxyLkljb25zPXQoIi4vZm9udHMvcGxvdGljb24iKTt2YXIgYz10KCIuL2NvbXBvbmVudHMvZngiKSx1PXQoIi4vcGxvdHMvcGxvdHMiKTtyLlBsb3RzPXtyZXNpemU6dS5yZXNpemUsZ3JhcGhKc29uOnUuZ3JhcGhKc29uLHNlbmREYXRhVG9DbG91ZDp1LnNlbmREYXRhVG9DbG91ZH0sci5GeD17aG92ZXI6Yy5ob3Zlcix1bmhvdmVyOmMudW5ob3Zlcixsb25lSG92ZXI6Yy5sb25lSG92ZXIsbG9uZVVuaG92ZXI6Yy5sb25lVW5ob3Zlcn0sci5TbmFwc2hvdD10KCIuL3NuYXBzaG90Iiksci5QbG90U2NoZW1hPXQoIi4vcGxvdF9hcGkvcGxvdF9zY2hlbWEiKX0seyIuLi9idWlsZC9wbG90Y3NzIjoxLCIuL2NvbXBvbmVudHMvYW5ub3RhdGlvbnMiOjM1OCwiLi9jb21wb25lbnRzL2Fubm90YXRpb25zM2QiOjM2MywiLi9jb21wb25lbnRzL2NvbG9yYmFyIjozNzMsIi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIjozNzksIi4vY29tcG9uZW50cy9lcnJvcmJhcnMiOjM5NSwiLi9jb21wb25lbnRzL2Z4Ijo0MDcsIi4vY29tcG9uZW50cy9ncmlkIjo0MTEsIi4vY29tcG9uZW50cy9pbWFnZXMiOjQxNiwiLi9jb21wb25lbnRzL2xlZ2VuZCI6NDI0LCIuL2NvbXBvbmVudHMvbW9kZWJhciI6NDMwLCIuL2NvbXBvbmVudHMvcmFuZ2VzZWxlY3RvciI6NDM4LCIuL2NvbXBvbmVudHMvcmFuZ2VzbGlkZXIiOjQ0NSwiLi9jb21wb25lbnRzL3NlbGVjdGlvbnMiOjQ1NSwiLi9jb21wb25lbnRzL3NoYXBlcyI6NDcwLCIuL2NvbXBvbmVudHMvc2xpZGVycyI6NDc1LCIuL2NvbXBvbmVudHMvdXBkYXRlbWVudXMiOjQ4MSwiLi9mb250cy9wbG90aWNvbiI6NDk0LCIuL2xvY2FsZS1lbiI6NTQ2LCIuL2xvY2FsZS1lbi11cyI6NTQ1LCIuL3Bsb3RfYXBpIjo1NTAsIi4vcGxvdF9hcGkvcGxvdF9zY2hlbWEiOjU1NCwiLi9wbG90cy9wbG90cyI6NjI4LCIuL3JlZ2lzdHJ5Ijo2NDcsIi4vc25hcHNob3QiOjY1MiwiLi90cmFjZXMvc2NhdHRlciI6OTQ4LCIuL3ZlcnNpb24iOjExMzIsIm5hdGl2ZS1wcm9taXNlLW9ubHkiOjI0NX1dLDQ5NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e3VuZG86e3dpZHRoOjg1Ny4xLGhlaWdodDoxZTMscGF0aDoibTg1NyAzNTBxMC04Ny0zNC0xNjZ0LTkxLTEzNy0xMzctOTItMTY2LTM0cS05NiAwLTE4MyA0MXQtMTQ3IDExNHEtNCA2LTQgMTN0NSAxMWw3NiA3N3E2IDUgMTQgNSA5LTEgMTMtNyA0MS01MyAxMDAtODJ0MTI2LTI5cTU4IDAgMTEwIDIzdDkyIDYxIDYxIDkxIDIyIDExMS0yMiAxMTEtNjEgOTEtOTIgNjEtMTEwIDIzcS01NSAwLTEwNS0yMHQtOTAtNTdsNzctNzdxMTctMTYgOC0zOC0xMC0yMy0zMy0yM2gtMjUwcS0xNSAwLTI1IDExdC0xMSAyNXYyNTBxMCAyNCAyMiAzMyAyMiAxMCAzOS04bDcyLTcycTYwIDU3IDEzNyA4OHQxNTkgMzFxODcgMCAxNjYtMzR0MTM3LTkyIDkxLTEzNyAzNC0xNjZ6Iix0cmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAtMSAwIDg1MCkifSxob21lOnt3aWR0aDo5MjguNixoZWlnaHQ6MWUzLHBhdGg6Im03ODYgMjk2di0yNjdxMC0xNS0xMS0yNnQtMjUtMTBoLTIxNHYyMTRoLTE0M3YtMjE0aC0yMTRxLTE1IDAtMjUgMTB0LTExIDI2djI2N3EwIDEgMCAydDAgMmwzMjEgMjY0IDMyMS0yNjRxMS0xIDEtNHogbTEyNCAzOWwtMzQtNDFxLTUtNS0xMi02aC0ycS03IDAtMTIgM2wtMzg2IDMyMi0zODYtMzIycS03LTQtMTMtNC03IDItMTIgN2wtMzUgNDFxLTQgNS0zIDEzdDYgMTJsNDAxIDMzNHExOCAxNSA0MiAxNXQ0My0xNWwxMzYtMTE0djEwOXEwIDggNSAxM3QxMyA1aDEwN3E4IDAgMTMtNXQ1LTEzdi0yMjdsMTIyLTEwMnE1LTUgNi0xMnQtNC0xM3oiLHRyYW5zZm9ybToibWF0cml4KDEgMCAwIC0xIDAgODUwKSJ9LCJjYW1lcmEtcmV0cm8iOnt3aWR0aDoxZTMsaGVpZ2h0OjFlMyxwYXRoOiJtNTE4IDM4NnEwIDgtNSAxM3QtMTMgNXEtMzcgMC02My0yN3QtMjYtNjNxMC04IDUtMTN0MTMtNSAxMiA1IDUgMTNxMCAyMyAxNiAzOHQzOCAxNnE4IDAgMTMgNXQ1IDEzeiBtMTI1LTczcTAtNTktNDItMTAxdC0xMDEtNDItMTAxIDQyLTQyIDEwMSA0MiAxMDEgMTAxIDQyIDEwMS00MiA0Mi0xMDF6IG0tNTcyLTMyMGg4NTh2NzFoLTg1OHYtNzF6IG02NDMgMzIwcTAgODktNjIgMTUydC0xNTIgNjItMTUxLTYyLTYzLTE1MiA2My0xNTEgMTUxLTYzIDE1MiA2MyA2MiAxNTF6IG0tNTcxIDM1OGgyMTR2NzJoLTIxNHYtNzJ6IG0tNzItMTA3aDg1OHYxNDNoLTQ2MmwtMzYtNzFoLTM2MHYtNzJ6IG05MjkgMTQzdi03MTRxMC0zMC0yMS01MXQtNTAtMjFoLTg1OHEtMjkgMC01MCAyMXQtMjEgNTF2NzE0cTAgMzAgMjEgNTF0NTAgMjFoODU4cTI5IDAgNTAtMjF0MjEtNTF6Iix0cmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAtMSAwIDg1MCkifSx6b29tYm94Ont3aWR0aDoxZTMsaGVpZ2h0OjFlMyxwYXRoOiJtMTAwMC0yNWwtMjUwIDI1MWM0MCA2MyA2MyAxMzggNjMgMjE4IDAgMjI0LTE4MiA0MDYtNDA3IDQwNi0yMjQgMC00MDYtMTgyLTQwNi00MDZzMTgzLTQwNiA0MDctNDA2YzgwIDAgMTU1IDIyIDIxOCA2MmwyNTAtMjUwIDEyNSAxMjV6IG0tODEyIDI1MGwwIDQzOCA0MzcgMCAwLTQzOC00MzcgMHogbTYyIDM3NWwzMTMgMCAwLTMxMi0zMTMgMCAwIDMxMnoiLHRyYW5zZm9ybToibWF0cml4KDEgMCAwIC0xIDAgODUwKSJ9LHBhbjp7d2lkdGg6MWUzLGhlaWdodDoxZTMscGF0aDoibTEwMDAgMzUwbC0xODcgMTg4IDAtMTI1LTI1MCAwIDAgMjUwIDEyNSAwLTE4OCAxODctMTg3LTE4NyAxMjUgMCAwLTI1MC0yNTAgMCAwIDEyNS0xODgtMTg4IDE4Ni0xODcgMCAxMjUgMjUyIDAgMC0yNTAtMTI1IDAgMTg3LTE4OCAxODggMTg4LTEyNSAwIDAgMjUwIDI1MCAwIDAtMTI2IDE4NyAxODh6Iix0cmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAtMSAwIDg1MCkifSx6b29tX3BsdXM6e3dpZHRoOjg3NSxoZWlnaHQ6MWUzLHBhdGg6Im0xIDc4N2wwLTg3NSA4NzUgMCAwIDg3NS04NzUgMHogbTY4Ny01MDBsLTE4NyAwIDAtMTg3LTEyNSAwIDAgMTg3LTE4OCAwIDAgMTI1IDE4OCAwIDAgMTg3IDEyNSAwIDAtMTg3IDE4NyAwIDAtMTI1eiIsdHJhbnNmb3JtOiJtYXRyaXgoMSAwIDAgLTEgMCA4NTApIn0sem9vbV9taW51czp7d2lkdGg6ODc1LGhlaWdodDoxZTMscGF0aDoibTAgNzg4bDAtODc2IDg3NSAwIDAgODc2LTg3NSAweiBtNjg4LTUwMGwtNTAwIDAgMCAxMjUgNTAwIDAgMC0xMjV6Iix0cmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAtMSAwIDg1MCkifSxhdXRvc2NhbGU6e3dpZHRoOjFlMyxoZWlnaHQ6MWUzLHBhdGg6Im0yNTAgODUwbC0xODcgMC02MyAwIDAtNjIgMC0xODggNjMgMCAwIDE4OCAxODcgMCAwIDYyeiBtNjg4IDBsLTE4OCAwIDAtNjIgMTg4IDAgMC0xODggNjIgMCAwIDE4OCAwIDYyLTYyIDB6IG0tODc1LTkzOGwwIDE4OC02MyAwIDAtMTg4IDAtNjIgNjMgMCAxODcgMCAwIDYyLTE4NyAweiBtODc1IDE4OGwwLTE4OC0xODggMCAwLTYyIDE4OCAwIDYyIDAgMCA2MiAwIDE4OC02MiAweiBtLTEyNSAxODhsLTEgMC05My05NC0xNTYgMTU2IDE1NiAxNTYgOTItOTMgMiAwIDAgMjUwLTI1MCAwIDAtMiA5My05Mi0xNTYtMTU2LTE1NiAxNTYgOTQgOTIgMCAyLTI1MCAwIDAtMjUwIDAgMCA5MyA5MyAxNTctMTU2LTE1Ny0xNTYtOTMgOTQgMCAwIDAtMjUwIDI1MCAwIDAgMC05NCA5MyAxNTYgMTU3IDE1Ni0xNTctOTMtOTMgMCAwIDI1MCAwIDAgMjUweiIsdHJhbnNmb3JtOiJtYXRyaXgoMSAwIDAgLTEgMCA4NTApIn0sdG9vbHRpcF9iYXNpYzp7d2lkdGg6MTUwMCxoZWlnaHQ6MWUzLHBhdGg6Im0zNzUgNzI1bDAgMC0zNzUtMzc1IDM3NS0zNzQgMC0xIDExMjUgMCAwIDc1MC0xMTI1IDB6Iix0cmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAtMSAwIDg1MCkifSx0b29sdGlwX2NvbXBhcmU6e3dpZHRoOjExMjUsaGVpZ2h0OjFlMyxwYXRoOiJtMTg3IDc4NmwwIDItMTg3LTE4OCAxODgtMTg3IDAgMCA5MzcgMCAwIDM3My05MzggMHogbTAtNDk5bDAgMS0xODctMTg4IDE4OC0xODggMCAwIDkzNyAwIDAgMzc2LTkzOC0xeiIsdHJhbnNmb3JtOiJtYXRyaXgoMSAwIDAgLTEgMCA4NTApIn0scGxvdGx5bG9nbzp7d2lkdGg6MTU0MixoZWlnaHQ6MWUzLHBhdGg6Im0wLTEwaDE4MnYtMTQwaC0xODJ2MTQweiBtMjI4IDE0NmgxODN2LTI4NmgtMTgzdjI4NnogbTIyNSA3MTRoMTgydi0xMDAwaC0xODJ2MTAwMHogbTIyNS0yODVoMTgydi03MTVoLTE4MnY3MTV6IG0yMjUgMTQyaDE4M3YtODU3aC0xODN2ODU3eiBtMjMxLTQyOGgxODJ2LTQyOWgtMTgydjQyOXogbTIyNS0yOTFoMTgzdi0xMzhoLTE4M3YxMzh6Iix0cmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAtMSAwIDg1MCkifSwiei1heGlzIjp7d2lkdGg6MWUzLGhlaWdodDoxZTMscGF0aDoibTgzMyA1bC0xNyAxMDh2NDFsLTEzMC02NSAxMzAtNjZjMCAwIDAgMzggMCAzOSAwLTEgMzYtMTQgMzktMjUgNC0xNS02LTIyLTE2LTMwLTE1LTEyLTM5LTE2LTU2LTIwLTkwLTIyLTE4Ny0yMy0yNzktMjMtMjYxIDAtMzQxIDM0LTM1MyA1OSAzIDYwIDIyOCAxMTAgMjI4IDExMC0xNDAtOC0zNTEtMzUtMzUxLTExNiAwLTEyMCAyOTMtMTQyIDQ3NC0xNDIgMTU1IDAgNDc3IDIyIDQ3NyAxNDIgMCA1MC03NCA3OS0xNjMgOTZ6IG0tMzc0IDk0Yy01OC01LTk5LTIxLTk5LTQwIDAtMjQgNjUtNDMgMTQ0LTQzIDc5IDAgMTQzIDE5IDE0MyA0MyAwIDE5LTQyIDM0LTk4IDQwdjIxNmg4N2wtMTMyIDEzNS0xMzMtMTM1aDg4di0yMTZ6IG0xNjcgNTE1aC0xMzZ2MWMxNiAxNiAzMSAzNCA0NiA1Mmw4NCAxMDl2NTRoLTIzMHYtNzFoMTI0di0xYy0xNi0xNy0yOC0zMi00NC01MWwtODktMTE0di01MWgyNDV2NzJ6Iix0cmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAtMSAwIDg1MCkifSwiM2Rfcm90YXRlIjp7d2lkdGg6MWUzLGhlaWdodDoxZTMscGF0aDoibTkyMiA2NjBjLTUgNC05IDctMTQgMTEtMzU5IDI2My01ODAtMzEtNTgwLTMxbC0xMDIgMjggNTgtNDAwYzAgMSAxIDEgMiAyIDExOCAxMDggMzUxIDI0OSAzNTEgMjQ5cy02MiAyNy0xMDAgNDJjODggODMgMjIyIDE4MyAzNDcgMTIyIDE2LTggMzAtMTcgNDQtMjctMiAxLTQgMi02IDR6IG0zNi0zMjljMCAwIDY0IDIyOS04OCAyOTYtNjIgMjctMTI0IDE0LTE3NS0xMSAxNTctNzggMjI1LTIwOCAyNDktMjY2IDgtMTkgMTEtMzEgMTEtMzEgMiA1IDYgMTUgMTEgMzItNS0xMy04LTIwLTgtMjB6IG0tNzc1LTIzOWM3MC0zMSAxMTctNTAgMTk4LTMyLTEyMSA4MC0xOTkgMzQ2LTE5OSAzNDZsLTk2LTE1LTU4LTEyYzAgMCA1NS0yMjYgMTU1LTI4N3ogbTYwMyAxMzNsLTMxNy0xMzljMCAwIDQtNCAxOS0xNCA3LTUgMjQtMTUgMjQtMTVzLTE3Ny0xNDctMzg5IDRjMjM1LTI4NyA1MzYtMTEyIDUzNi0xMTJsMzEtMjIgMTAwIDI5OS00LTF6IG0tMjk4LTE1M2M2LTQgMTQtOSAyNC0xNSAwIDAtMTcgMTAtMjQgMTV6Iix0cmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAtMSAwIDg1MCkifSxjYW1lcmE6e3dpZHRoOjFlMyxoZWlnaHQ6MWUzLHBhdGg6Im01MDAgNDUwYy04MyAwLTE1MC02Ny0xNTAtMTUwIDAtODMgNjctMTUwIDE1MC0xNTAgODMgMCAxNTAgNjcgMTUwIDE1MCAwIDgzLTY3IDE1MC0xNTAgMTUweiBtNDAwIDE1MGgtMTIwYy0xNiAwLTM0IDEzLTM5IDI5bC0zMSA5M2MtNiAxNS0yMyAyOC00MCAyOGgtMzQwYy0xNiAwLTM0LTEzLTM5LTI4bC0zMS05NGMtNi0xNS0yMy0yOC00MC0yOGgtMTIwYy01NSAwLTEwMC00NS0xMDAtMTAwdi00NTBjMC01NSA0NS0xMDAgMTAwLTEwMGg4MDBjNTUgMCAxMDAgNDUgMTAwIDEwMHY0NTBjMCA1NS00NSAxMDAtMTAwIDEwMHogbS00MDAtNTUwYy0xMzggMC0yNTAgMTEyLTI1MCAyNTAgMCAxMzggMTEyIDI1MCAyNTAgMjUwIDEzOCAwIDI1MC0xMTIgMjUwLTI1MCAwLTEzOC0xMTItMjUwLTI1MC0yNTB6IG0zNjUgMzgwYy0xOSAwLTM1IDE2LTM1IDM1IDAgMTkgMTYgMzUgMzUgMzUgMTkgMCAzNS0xNiAzNS0zNSAwLTE5LTE2LTM1LTM1LTM1eiIsdHJhbnNmb3JtOiJtYXRyaXgoMSAwIDAgLTEgMCA4NTApIn0sbW92aWU6e3dpZHRoOjFlMyxoZWlnaHQ6MWUzLHBhdGg6Im05MzggNDEzbC0xODgtMTI1YzAgMzctMTcgNzEtNDQgOTQgNjQgMzggMTA3IDEwNyAxMDcgMTg3IDAgMTIxLTk4IDIxOS0yMTkgMjE5LTEyMSAwLTIxOS05OC0yMTktMjE5IDAtNjEgMjUtMTE3IDY2LTE1NmgtMTE1YzMwIDMzIDQ5IDc2IDQ5IDEyNSAwIDEwMy04NCAxODctMTg3IDE4N3MtMTg4LTg0LTE4OC0xODdjMC01NyAyNi0xMDcgNjUtMTQxLTM4LTIyLTY1LTYyLTY1LTEwOXYtMjUwYzAtNzAgNTYtMTI2IDEyNS0xMjZoNTAwYzY5IDAgMTI1IDU2IDEyNSAxMjZsMTg4LTEyNmMzNCAwIDYyIDI4IDYyIDYzdjM3NWMwIDM1LTI4IDYzLTYyIDYzeiBtLTc1MCAwYy02OSAwLTEyNSA1Ni0xMjUgMTI1czU2IDEyNSAxMjUgMTI1IDEyNS01NiAxMjUtMTI1LTU2LTEyNS0xMjUtMTI1eiBtNDA2LTFjLTg3IDAtMTU3IDcwLTE1NyAxNTcgMCA4NiA3MCAxNTYgMTU3IDE1NnMxNTYtNzAgMTU2LTE1Ni03MC0xNTctMTU2LTE1N3oiLHRyYW5zZm9ybToibWF0cml4KDEgMCAwIC0xIDAgODUwKSJ9LHF1ZXN0aW9uOnt3aWR0aDo4NTcuMSxoZWlnaHQ6MWUzLHBhdGg6Im01MDAgODJ2MTA3cTAgOC01IDEzdC0xMyA1aC0xMDdxLTggMC0xMy01dC01LTEzdi0xMDdxMC04IDUtMTN0MTMtNWgxMDdxOCAwIDEzIDV0NSAxM3ogbTE0MyAzNzVxMCA0OS0zMSA5MXQtNzcgNjUtOTUgMjNxLTEzNiAwLTIwNy0xMTktOS0xNCA0LTI0bDc0LTU1cTQtNCAxMC00IDkgMCAxNCA3IDMwIDM4IDQ4IDUxIDE5IDE0IDQ4IDE0IDI3IDAgNDgtMTV0MjEtMzNxMC0yMS0xMS0zNHQtMzgtMjVxLTM1LTE2LTY1LTQ4dC0yOS03MHYtMjBxMC04IDUtMTN0MTMtNWgxMDdxOCAwIDEzIDV0NSAxM3EwIDEwIDEyIDI3dDMwIDI4cTE4IDEwIDI4IDE2dDI1IDE5IDI1IDI3IDE2IDM0IDcgNDV6IG0yMTQtMTA3cTAtMTE3LTU3LTIxNXQtMTU2LTE1Ni0yMTUtNTgtMjE2IDU4LTE1NSAxNTYtNTggMjE1IDU4IDIxNSAxNTUgMTU2IDIxNiA1OCAyMTUtNTggMTU2LTE1NiA1Ny0yMTV6Iix0cmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAtMSAwIDg1MCkifSxkaXNrOnt3aWR0aDo4NTcuMSxoZWlnaHQ6MWUzLHBhdGg6Im0yMTQtN2g0Mjl2MjE0aC00Mjl2LTIxNHogbTUwMCAwaDcydjUwMHEwIDgtNiAyMXQtMTEgMjBsLTE1NyAxNTZxLTUgNi0xOSAxMnQtMjIgNXYtMjMycTAtMjItMTUtMzh0LTM4LTE2aC0zMjJxLTIyIDAtMzcgMTZ0LTE2IDM4djIzMmgtNzJ2LTcxNGg3MnYyMzJxMCAyMiAxNiAzOHQzNyAxNmg0NjVxMjIgMCAzOC0xNnQxNS0zOHYtMjMyeiBtLTIxNCA1MTh2MTc4cTAgOC01IDEzdC0xMyA1aC0xMDdxLTcgMC0xMy01dC01LTEzdi0xNzhxMC04IDUtMTN0MTMtNWgxMDdxNyAwIDEzIDV0NSAxM3ogbTM1Ny0xOHYtNTE4cTAtMjItMTUtMzh0LTM4LTE2aC03NTBxLTIzIDAtMzggMTZ0LTE2IDM4djc1MHEwIDIyIDE2IDM4dDM4IDE2aDUxN3EyMyAwIDUwLTEydDQyLTI2bDE1Ni0xNTdxMTYtMTUgMjctNDJ0MTEtNDl6Iix0cmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAtMSAwIDg1MCkifSxkcmF3b3BlbnBhdGg6e3dpZHRoOjcwLGhlaWdodDo3MCxwYXRoOiJNMzMuMjEsODUuNjVhNy4zMSw3LjMxLDAsMCwxLTIuNTktLjQ4Yy04LjE2LTMuMTEtOS4yNy0xOS44LTkuODgtNDEuMy0uMS0zLjU4LS4xOS02LjY4LS4zNS05LS4xNS0yLjEtLjY3LTMuNDgtMS40My0zLjc5LTIuMTMtLjg4LTcuOTEsMi4zMi0xMiw1Ljg2TDMsMzIuMzhjMS44Ny0xLjY0LDExLjU1LTkuNjYsMTguMjctNi45LDIuMTMuODcsNC43NSwzLjE0LDUuMTcsOSwuMTcsMi40My4yNiw1LjU5LjM2LDkuMjVhMjI0LjE3LDIyNC4xNywwLDAsMCwxLjUsMjMuNGMxLjU0LDEwLjc2LDQsMTIuMjIsNC40OCwxMi40Ljg0LjMyLDIuNzktLjQ2LDUuNzYtMy41OUw0Myw4MC4wN0M0MS41Myw4MS41NywzNy42OCw4NS42NCwzMy4yMSw4NS42NVpNNzQuODEsNjlhMTEuMzQsMTEuMzQsMCwwLDAsNi4wOS02LjcyTDg3LjI2LDQ0LjUsNzQuNzIsMzIsNTYuOSwzOC4zNWMtMi4zNy44Ni01LjU3LDMuNDItNi42MSw2TDM4LjY1LDcyLjE0bDguNDIsOC40M1pNNTUsNDYuMjdhNy45MSw3LjkxLDAsMCwxLDMuNjQtMy4xN2wxNC44LTUuMyw4LDhMNzYuMTEsNjAuNmwtLjA2LjE5YTYuMzcsNi4zNywwLDAsMS0zLDMuNDNMNDguMjUsNzQuNTksNDQuNjIsNzFabTE2LjU3LDcuODJBNi45LDYuOSwwLDEsMCw2NC42NCw2MSw2LjkxLDYuOTEsMCwwLDAsNzEuNTQsNTQuMDlabS00LjA1LDBhMi44NSwyLjg1LDAsMSwxLTIuODUtMi44NUEyLjg2LDIuODYsMCwwLDEsNjcuNDksNTQuMDlabS00LjEzLDUuMjJMNjAuNSw1Ni40NSw0NC4yNiw3Mi43bDIuODYsMi44NlpNOTcuODMsMzUuNjcsODQuMTQsMjJsLTguNTcsOC41N0w4OS4yNiw0NC4yNFptLTEzLjY5LTgsOCw4LTIuODUsMi44NS04LThaIix0cmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAxIC0xNSAtMTUpIn0sZHJhd2Nsb3NlZHBhdGg6e3dpZHRoOjkwLGhlaWdodDo5MCxwYXRoOiJNODguNDEsMjEuMTJhMjYuNTYsMjYuNTYsMCwwLDAtMzYuMTgsMGwtMi4wNywyLTIuMDctMmEyNi41NywyNi41NywwLDAsMC0zNi4xOCwwLDIzLjc0LDIzLjc0LDAsMCwwLDAsMzQuOEw0OCw5MC4xMmEzLjIyLDMuMjIsMCwwLDAsNC40MiwwbDM2LTM0LjIxYTIzLjczLDIzLjczLDAsMCwwLDAtMzQuNzlaTTg0LDUxLjI0LDUwLjE2LDgzLjM1LDE2LjM1LDUxLjI1YTE3LjI4LDE3LjI4LDAsMCwxLDAtMjUuNDcsMjAsMjAsMCwwLDEsMjcuMywwbDQuMjksNC4wN2EzLjIzLDMuMjMsMCwwLDAsNC40NCwwbDQuMjktNC4wN2EyMCwyMCwwLDAsMSwyNy4zLDAsMTcuMjcsMTcuMjcsMCwwLDEsMCwyNS40NlpNNjYuNzYsNDcuNjhoLTMzdjYuOTFoMzNaTTUzLjM1LDM1SDQ2LjQ0VjY4aDYuOTFaIix0cmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAxIC01IC01KSJ9LGxhc3NvOnt3aWR0aDoxMDMxLGhlaWdodDoxZTMscGF0aDoibTEwMTggNTM4Yy0zNiAyMDctMjkwIDMzNi01NjggMjg2LTI3Ny00OC00NzMtMjU2LTQzNi00NjMgMTAtNTcgMzYtMTA4IDc2LTE1MS0xMy02NiAxMS0xMzcgNjgtMTgzIDM0LTI4IDc1LTQxIDExNC00MmwtNTUtNzAgMCAwYy0yLTEtMy0yLTQtMy0xMC0xNC04LTM0IDUtNDUgMTQtMTEgMzQtOCA0NSA0IDEgMSAyIDMgMiA1bDAgMCAxMTMgMTQwYzE2IDExIDMxIDI0IDQ1IDQwIDQgMyA2IDcgOCAxMSA0OC0zIDEwMCAwIDE1MSA5IDI3OCA0OCA0NzMgMjU1IDQzNiA0NjJ6IG0tNjI0LTM3OWMtODAgMTQtMTQ5IDQ4LTE5NyA5NiA0MiA0MiAxMDkgNDcgMTU2IDkgMzMtMjYgNDctNjYgNDEtMTA1eiBtLTE4Ny03NGMtMTkgMTYtMzMgMzctMzkgNjAgNTAtMzIgMTA5LTU1IDE3NC02OC00Mi0yNS05NS0yNC0xMzUgOHogbTM2MCA3NWMtMzQtNy02OS05LTEwMi04IDggNjItMTYgMTI4LTY4IDE3MC03MyA1OS0xNzUgNTQtMjQ0LTUtOSAyMC0xNiA0MC0yMCA2MS0yOCAxNTkgMTIxIDMxNyAzMzMgMzU0czQwNy02MCA0MzQtMjE3YzI4LTE1OS0xMjEtMzE4LTMzMy0zNTV6Iix0cmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAtMSAwIDg1MCkifSxzZWxlY3Rib3g6e3dpZHRoOjFlMyxoZWlnaHQ6MWUzLHBhdGg6Im0wIDg1MGwwLTE0MyAxNDMgMCAwIDE0My0xNDMgMHogbTI4NiAwbDAtMTQzIDE0MyAwIDAgMTQzLTE0MyAweiBtMjg1IDBsMC0xNDMgMTQzIDAgMCAxNDMtMTQzIDB6IG0yODYgMGwwLTE0MyAxNDMgMCAwIDE0My0xNDMgMHogbS04NTctMjg2bDAtMTQzIDE0MyAwIDAgMTQzLTE0MyAweiBtODU3IDBsMC0xNDMgMTQzIDAgMCAxNDMtMTQzIDB6IG0tODU3LTI4NWwwLTE0MyAxNDMgMCAwIDE0My0xNDMgMHogbTg1NyAwbDAtMTQzIDE0MyAwIDAgMTQzLTE0MyAweiBtLTg1Ny0yODZsMC0xNDMgMTQzIDAgMCAxNDMtMTQzIDB6IG0yODYgMGwwLTE0MyAxNDMgMCAwIDE0My0xNDMgMHogbTI4NSAwbDAtMTQzIDE0MyAwIDAgMTQzLTE0MyAweiBtMjg2IDBsMC0xNDMgMTQzIDAgMCAxNDMtMTQzIDB6Iix0cmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAtMSAwIDg1MCkifSxkcmF3bGluZTp7d2lkdGg6NzAsaGVpZ2h0OjcwLHBhdGg6Ik02MC42NCw2Mi4zYTExLjI5LDExLjI5LDAsMCwwLDYuMDktNi43Mmw2LjM1LTE3LjcyTDYwLjU0LDI1LjMxbC0xNy44Miw2LjRjLTIuMzYuODYtNS41NywzLjQxLTYuNiw2TDI0LjQ4LDY1LjVsOC40Miw4LjQyWk00MC43OSwzOS42M2E3Ljg5LDcuODksMCwwLDEsMy42NS0zLjE3bDE0Ljc5LTUuMzEsOCw4TDYxLjk0LDU0bC0uMDYuMTlhNi40NCw2LjQ0LDAsMCwxLTMsMy40M0wzNC4wNyw2OGwtMy42Mi0zLjYzWm0xNi41Nyw3LjgxYTYuOSw2LjksMCwxLDAtNi44OSw2LjlBNi45LDYuOSwwLDAsMCw1Ny4zNiw0Ny40NFptLTQsMGEyLjg2LDIuODYsMCwxLDEtMi44NS0yLjg1QTIuODYsMi44NiwwLDAsMSw1My4zMiw0Ny40NFptLTQuMTMsNS4yMkw0Ni4zMyw0OS44LDMwLjA4LDY2LjA1bDIuODYsMi44NlpNODMuNjUsMjksNzAsMTUuMzQsNjEuNCwyMy45LDc1LjA5LDM3LjU5Wk03MCwyMS4wNmw4LDgtMi44NCwyLjg1LTgtOFpNODcsODAuNDlIMTAuNjdWODdIODdaIix0cmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAxIC0xNSAtMTUpIn0sZHJhd3JlY3Q6e3dpZHRoOjgwLGhlaWdodDo4MCxwYXRoOiJNNzgsMjJWNzlIMjFWMjJINzhtOS05SDEyVjg4SDg3VjEzWk02OCw0Ni4yMkgzMVY1NEg2OFpNNTMsMzJINDUuMjJWNjlINTNaIix0cmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAxIC0xMCAtMTApIn0sZHJhd2NpcmNsZTp7d2lkdGg6ODAsaGVpZ2h0OjgwLHBhdGg6Ik01MCw4NC43MkMyNi44NCw4NC43Miw4LDY5LjI4LDgsNTAuM1MyNi44NCwxNS44Nyw1MCwxNS44Nyw5MiwzMS4zMSw5Miw1MC4zLDczLjE2LDg0LjcyLDUwLDg0LjcyWm0wLTYwLjU5Yy0xOC42LDAtMzMuNzQsMTEuNzQtMzMuNzQsMjYuMTdTMzEuNCw3Ni40Niw1MCw3Ni40Niw4My43NCw2NC43Miw4My43NCw1MC4zLDY4LjYsMjQuMTMsNTAsMjQuMTNabTE3LjE1LDIyaC0zNHY3LjExaDM0Wm0tMTMuOC0xM0g0Ni4yNHYzNGg3LjExWiIsdHJhbnNmb3JtOiJtYXRyaXgoMSAwIDAgMSAtMTAgLTEwKSJ9LGVyYXNlc2hhcGU6e3dpZHRoOjgwLGhlaWdodDo4MCxwYXRoOiJNODIuNzcsNzhIMzEuODVMNiw0OS41NywzMS44NSwyMS4xNEg4Mi43N2E4LjcyLDguNzIsMCwwLDEsOC42NSw4Ljc3VjY5LjI0QTguNzIsOC43MiwwLDAsMSw4Mi43Nyw3OFpNMzUuNDYsNjkuODRIODIuNzdhLjU3LjU3LDAsMCwwLC40OS0uNlYyOS45MWEuNTcuNTcsMCwwLDAtLjQ5LS42MUgzNS40NkwxNyw0OS41N1ptMzIuNjgtMzQuNy0yNCwyNCw1LDUsMjQtMjRabS0xOSwuNTMtNSw1LDI0LDI0LDUtNVoiLHRyYW5zZm9ybToibWF0cml4KDEgMCAwIDEgLTEwIC0xMCkifSxzcGlrZWxpbmU6e3dpZHRoOjFlMyxoZWlnaHQ6MWUzLHBhdGg6Ik01MTIgNDA5YzAtNTctNDYtMTA0LTEwMy0xMDQtNTcgMC0xMDQgNDctMTA0IDEwNCAwIDU3IDQ3IDEwMyAxMDQgMTAzIDU3IDAgMTAzLTQ2IDEwMy0xMDN6IG0tMzI3LTM5bDkyIDAgMCA5Mi05MiAweiBtLTE4NSAwbDkyIDAgMCA5Mi05MiAweiBtMzcwLTE4Nmw5MiAwIDAgOTMtOTIgMHogbTAtMTg0bDkyIDAgMCA5Mi05MiAweiIsdHJhbnNmb3JtOiJtYXRyaXgoMS41IDAgMCAtMS41IDAgODUwKSJ9LHBlbmNpbDp7d2lkdGg6MTc5MixoZWlnaHQ6MTc5MixwYXRoOiJNNDkxIDE1MzZsOTEtOTEtMjM1LTIzNS05MSA5MXYxMDdoMTI4djEyOGgxMDd6bTUyMy05MjhxMC0yMi0yMi0yMi0xMCAwLTE3IDdsLTU0MiA1NDJxLTcgNy03IDE3IDAgMjIgMjIgMjIgMTAgMCAxNy03bDU0Mi01NDJxNy03IDctMTd6bS01NC0xOTJsNDE2IDQxNi04MzIgODMyaC00MTZ2LTQxNnptNjgzIDk2cTAgNTMtMzcgOTBsLTE2NiAxNjYtNDE2LTQxNiAxNjYtMTY1cTM2LTM4IDkwLTM4IDUzIDAgOTEgMzhsMjM1IDIzNHEzNyAzOSAzNyA5MXoiLHRyYW5zZm9ybToibWF0cml4KDEgMCAwIDEgMCAxKSJ9LG5ld3Bsb3RseWxvZ286e25hbWU6Im5ld3Bsb3RseWxvZ28iLHN2ZzpbIjxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTMyIDEzMic+IiwiPGRlZnM+IiwiIDxzdHlsZT4iLCIgIC5jbHMtMHtmaWxsOiMwMDA7fSIsIiAgLmNscy0xe2ZpbGw6I0ZGRjt9IiwiICAuY2xzLTJ7ZmlsbDojRjI2O30iLCIgIC5jbHMtM3tmaWxsOiNENjk7fSIsIiAgLmNscy00e2ZpbGw6I0JBQzt9IiwiICAuY2xzLTV7ZmlsbDojOUVGO30iLCIgPC9zdHlsZT4iLCI8L2RlZnM+IiwiIDx0aXRsZT5wbG90bHktbG9nb21hcms8L3RpdGxlPiIsIiA8ZyBpZD0nc3ltYm9sJz4iLCIgIDxyZWN0IGNsYXNzPSdjbHMtMCcgeD0nMCcgeT0nMCcgd2lkdGg9JzEzMicgaGVpZ2h0PScxMzInIHJ4PScxOCcgcnk9JzE4Jy8+IiwiICA8Y2lyY2xlIGNsYXNzPSdjbHMtNScgY3g9JzEwMicgY3k9JzMwJyByPSc2Jy8+IiwiICA8Y2lyY2xlIGNsYXNzPSdjbHMtNCcgY3g9Jzc4JyBjeT0nMzAnIHI9JzYnLz4iLCIgIDxjaXJjbGUgY2xhc3M9J2Nscy00JyBjeD0nNzgnIGN5PSc1NCcgcj0nNicvPiIsIiAgPGNpcmNsZSBjbGFzcz0nY2xzLTMnIGN4PSc1NCcgY3k9JzMwJyByPSc2Jy8+IiwiICA8Y2lyY2xlIGNsYXNzPSdjbHMtMicgY3g9JzMwJyBjeT0nMzAnIHI9JzYnLz4iLCIgIDxjaXJjbGUgY2xhc3M9J2Nscy0yJyBjeD0nMzAnIGN5PSc1NCcgcj0nNicvPiIsIiAgPHBhdGggY2xhc3M9J2Nscy0xJyBkPSdNMzAsNzJhNiw2LDAsMCwwLTYsNnYyNGE2LDYsMCwwLDAsMTIsMFY3OEE2LDYsMCwwLDAsMzAsNzJaJy8+IiwiICA8cGF0aCBjbGFzcz0nY2xzLTEnIGQ9J003OCw3MmE2LDYsMCwwLDAtNiw2djI0YTYsNiwwLDAsMCwxMiwwVjc4QTYsNiwwLDAsMCw3OCw3MlonLz4iLCIgIDxwYXRoIGNsYXNzPSdjbHMtMScgZD0nTTU0LDQ4YTYsNiwwLDAsMC02LDZ2NDhhNiw2LDAsMCwwLDEyLDBWNTRBNiw2LDAsMCwwLDU0LDQ4WicvPiIsIiAgPHBhdGggY2xhc3M9J2Nscy0xJyBkPSdNMTAyLDQ4YTYsNiwwLDAsMC02LDZ2NDhhNiw2LDAsMCwwLDEyLDBWNTRBNiw2LDAsMCwwLDEwMiw0OFonLz4iLCIgPC9nPiIsIjwvc3ZnPiJdLmpvaW4oIiIpfX19LHt9XSw0OTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ci5pc0xlZnRBbmNob3I9ZnVuY3Rpb24odCl7cmV0dXJuImxlZnQiPT09dC54YW5jaG9yfHwiYXV0byI9PT10LnhhbmNob3ImJnQueDw9MS8zfSxyLmlzQ2VudGVyQW5jaG9yPWZ1bmN0aW9uKHQpe3JldHVybiJjZW50ZXIiPT09dC54YW5jaG9yfHwiYXV0byI9PT10LnhhbmNob3ImJnQueD4xLzMmJnQueDwyLzN9LHIuaXNSaWdodEFuY2hvcj1mdW5jdGlvbih0KXtyZXR1cm4icmlnaHQiPT09dC54YW5jaG9yfHwiYXV0byI9PT10LnhhbmNob3ImJnQueD49Mi8zfSxyLmlzVG9wQW5jaG9yPWZ1bmN0aW9uKHQpe3JldHVybiJ0b3AiPT09dC55YW5jaG9yfHwiYXV0byI9PT10LnlhbmNob3ImJnQueT49Mi8zfSxyLmlzTWlkZGxlQW5jaG9yPWZ1bmN0aW9uKHQpe3JldHVybiJtaWRkbGUiPT09dC55YW5jaG9yfHwiYXV0byI9PT10LnlhbmNob3ImJnQueT4xLzMmJnQueTwyLzN9LHIuaXNCb3R0b21BbmNob3I9ZnVuY3Rpb24odCl7cmV0dXJuImJvdHRvbSI9PT10LnlhbmNob3J8fCJhdXRvIj09PXQueWFuY2hvciYmdC55PD0xLzN9fSx7fV0sNDk2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vbW9kIiksaT1uLm1vZCxhPW4ubW9kSGFsZixvPU1hdGguUEkscz0yKm87ZnVuY3Rpb24gbCh0KXtyZXR1cm4gTWF0aC5hYnModFsxXS10WzBdKT5zLTFlLTE0fWZ1bmN0aW9uIGModCxlKXtyZXR1cm4gYShlLXQscyl9ZnVuY3Rpb24gdSh0LGUpe2lmKGwoZSkpcmV0dXJuITA7dmFyIHIsbjtlWzBdPGVbMV0/KHI9ZVswXSxuPWVbMV0pOihyPWVbMV0sbj1lWzBdKSwocj1pKHIscykpPihuPWkobixzKSkmJihuKz1zKTt2YXIgYT1pKHQscyksbz1hK3M7cmV0dXJuIGE+PXImJmE8PW58fG8+PXImJm88PW59ZnVuY3Rpb24gZih0LGUscixuLGksYSxjKXtpPWl8fDAsYT1hfHwwO3ZhciB1LGYsaCxwLGQsbT1sKFtyLG5dKTtmdW5jdGlvbiBnKHQsZSl7cmV0dXJuW3QqTWF0aC5jb3MoZSkraSxhLXQqTWF0aC5zaW4oZSldfW0/KHU9MCxmPW8saD1zKTpyPG4/KHU9cixoPW4pOih1PW4saD1yKSx0PGU/KHA9dCxkPWUpOihwPWUsZD10KTt2YXIgdix5PU1hdGguYWJzKGgtdSk8PW8/MDoxO2Z1bmN0aW9uIHgodCxlLHIpe3JldHVybiJBIitbdCx0XSsiICIrWzAseSxyXSsiICIrZyh0LGUpfXJldHVybiBtP3Y9bnVsbD09PXA/Ik0iK2coZCx1KSt4KGQsZiwwKSt4KGQsaCwwKSsiWiI6Ik0iK2cocCx1KSt4KHAsZiwwKSt4KHAsaCwwKSsiWk0iK2coZCx1KSt4KGQsZiwxKSt4KGQsaCwxKSsiWiI6bnVsbD09PXA/KHY9Ik0iK2coZCx1KSt4KGQsaCwwKSxjJiYodis9IkwwLDBaIikpOnY9Ik0iK2cocCx1KSsiTCIrZyhkLHUpK3goZCxoLDApKyJMIitnKHAsaCkreChwLHUsMSkrIloiLHZ9ZS5leHBvcnRzPXtkZWcycmFkOmZ1bmN0aW9uKHQpe3JldHVybiB0LzE4MCpvfSxyYWQyZGVnOmZ1bmN0aW9uKHQpe3JldHVybiB0L28qMTgwfSxhbmdsZURlbHRhOmMsYW5nbGVEaXN0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIE1hdGguYWJzKGModCxlKSl9LGlzRnVsbENpcmNsZTpsLGlzQW5nbGVJbnNpZGVTZWN0b3I6dSxpc1B0SW5zaWRlU2VjdG9yOmZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiEhdShlLG4pJiYoclswXTxyWzFdPyhpPXJbMF0sYT1yWzFdKTooaT1yWzFdLGE9clswXSksdD49aSYmdDw9YSk7dmFyIGksYX0scGF0aEFyYzpmdW5jdGlvbih0LGUscixuLGkpe3JldHVybiBmKG51bGwsdCxlLHIsbixpLDApfSxwYXRoU2VjdG9yOmZ1bmN0aW9uKHQsZSxyLG4saSl7cmV0dXJuIGYobnVsbCx0LGUscixuLGksMSl9LHBhdGhBbm51bHVzOmZ1bmN0aW9uKHQsZSxyLG4saSxhKXtyZXR1cm4gZih0LGUscixuLGksYSwxKX19fSx7Ii4vbW9kIjo1MjJ9XSw0OTc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49QXJyYXkuaXNBcnJheSxpPUFycmF5QnVmZmVyLGE9RGF0YVZpZXc7ZnVuY3Rpb24gbyh0KXtyZXR1cm4gaS5pc1ZpZXcodCkmJiEodCBpbnN0YW5jZW9mIGEpfWZ1bmN0aW9uIHModCl7cmV0dXJuIG4odCl8fG8odCl9ZnVuY3Rpb24gbCh0LGUscil7aWYocyh0KSl7aWYocyh0WzBdKSl7Zm9yKHZhciBuPXIsaT0wO2k8dC5sZW5ndGg7aSsrKW49ZShuLHRbaV0ubGVuZ3RoKTtyZXR1cm4gbn1yZXR1cm4gdC5sZW5ndGh9cmV0dXJuIDB9ci5pc1R5cGVkQXJyYXk9byxyLmlzQXJyYXlPclR5cGVkQXJyYXk9cyxyLmlzQXJyYXkxRD1mdW5jdGlvbih0KXtyZXR1cm4hcyh0WzBdKX0sci5lbnN1cmVBcnJheT1mdW5jdGlvbih0LGUpe3JldHVybiBuKHQpfHwodD1bXSksdC5sZW5ndGg9ZSx0fSxyLmNvbmNhdD1mdW5jdGlvbigpe3ZhciB0LGUscixpLGEsbyxzLGwsYz1bXSx1PSEwLGY9MDtmb3Iocj0wO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspKG89KGk9YXJndW1lbnRzW3JdKS5sZW5ndGgpJiYoZT9jLnB1c2goaSk6KGU9aSxhPW8pLG4oaSk/dD0hMToodT0hMSxmP3QhPT1pLmNvbnN0cnVjdG9yJiYodD0hMSk6dD1pLmNvbnN0cnVjdG9yKSxmKz1vKTtpZighZilyZXR1cm5bXTtpZighYy5sZW5ndGgpcmV0dXJuIGU7aWYodSlyZXR1cm4gZS5jb25jYXQuYXBwbHkoZSxjKTtpZih0KXtmb3IoKHM9bmV3IHQoZikpLnNldChlKSxyPTA7cjxjLmxlbmd0aDtyKyspaT1jW3JdLHMuc2V0KGksYSksYSs9aS5sZW5ndGg7cmV0dXJuIHN9Zm9yKHM9bmV3IEFycmF5KGYpLGw9MDtsPGUubGVuZ3RoO2wrKylzW2xdPWVbbF07Zm9yKHI9MDtyPGMubGVuZ3RoO3IrKyl7Zm9yKGk9Y1tyXSxsPTA7bDxpLmxlbmd0aDtsKyspc1thK2xdPWlbbF07YSs9bH1yZXR1cm4gc30sci5tYXhSb3dMZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGwodCxNYXRoLm1heCwwKX0sci5taW5Sb3dMZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGwodCxNYXRoLm1pbiwxLzApfX0se31dLDQ5ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGk9dCgiLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTSxhPS9eWyciJSwkI1xzJ10rfFssIF18WyciJSwkI1xzJ10rJC9nO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJih0PXQucmVwbGFjZShhLCIiKSksbih0KT9OdW1iZXIodCk6aX19LHsiLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NDkxLCJmYXN0LWlzbnVtZXJpYyI6MTkwfV0sNDk5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0O2UuX2dsY2FudmFzJiZlLl9nbGNhbnZhcy5zaXplKCkmJmUuX2dsY2FudmFzLmVhY2goKGZ1bmN0aW9uKHQpe3QucmVnbCYmdC5yZWdsLmNsZWFyKHtjb2xvcjohMCxkZXB0aDohMH0pfSkpfX0se31dLDUwMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dC5fcmVzcG9uc2l2ZUNoYXJ0SGFuZGxlciYmKHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLHQuX3Jlc3BvbnNpdmVDaGFydEhhbmRsZXIpLGRlbGV0ZSB0Ll9yZXNwb25zaXZlQ2hhcnRIYW5kbGVyKX19LHt9XSw1MDE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxpPXQoInRpbnljb2xvcjIiKSxhPXQoIi4uL3Bsb3RzL2F0dHJpYnV0ZXMiKSxvPXQoIi4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9zY2FsZXMiKSxzPXQoIi4uL2NvbXBvbmVudHMvY29sb3IiKSxsPXQoIi4uL2NvbnN0YW50cy9pbnRlcmFjdGlvbnMiKS5ERVNFTEVDVERJTSxjPXQoIi4vbmVzdGVkX3Byb3BlcnR5IiksdT10KCIuL3JlZ2V4IikuY291bnRlcixmPXQoIi4vbW9kIikubW9kSGFsZixoPXQoIi4vYXJyYXkiKS5pc0FycmF5T3JUeXBlZEFycmF5O2Z1bmN0aW9uIHAodCxlKXt2YXIgbj1yLnZhbE9iamVjdE1ldGFbZS52YWxUeXBlXTtpZihlLmFycmF5T2smJmgodCkpcmV0dXJuITA7aWYobi52YWxpZGF0ZUZ1bmN0aW9uKXJldHVybiBuLnZhbGlkYXRlRnVuY3Rpb24odCxlKTt2YXIgaT17fSxhPWksbz17c2V0OmZ1bmN0aW9uKHQpe2E9dH19O3JldHVybiBuLmNvZXJjZUZ1bmN0aW9uKHQsbyxpLGUpLGEhPT1pfXIudmFsT2JqZWN0TWV0YT17ZGF0YV9hcnJheTp7Y29lcmNlRnVuY3Rpb246ZnVuY3Rpb24odCxlLHIpe2godCk/ZS5zZXQodCk6dm9pZCAwIT09ciYmZS5zZXQocil9fSxlbnVtZXJhdGVkOntjb2VyY2VGdW5jdGlvbjpmdW5jdGlvbih0LGUscixuKXtuLmNvZXJjZU51bWJlciYmKHQ9K3QpLC0xPT09bi52YWx1ZXMuaW5kZXhPZih0KT9lLnNldChyKTplLnNldCh0KX0sdmFsaWRhdGVGdW5jdGlvbjpmdW5jdGlvbih0LGUpe2UuY29lcmNlTnVtYmVyJiYodD0rdCk7Zm9yKHZhciByPWUudmFsdWVzLG49MDtuPHIubGVuZ3RoO24rKyl7dmFyIGk9U3RyaW5nKHJbbl0pO2lmKCIvIj09PWkuY2hhckF0KDApJiYiLyI9PT1pLmNoYXJBdChpLmxlbmd0aC0xKSl7aWYobmV3IFJlZ0V4cChpLnN1YnN0cigxLGkubGVuZ3RoLTIpKS50ZXN0KHQpKXJldHVybiEwfWVsc2UgaWYodD09PXJbbl0pcmV0dXJuITB9cmV0dXJuITF9fSxib29sZWFuOntjb2VyY2VGdW5jdGlvbjpmdW5jdGlvbih0LGUscil7ITA9PT10fHwhMT09PXQ/ZS5zZXQodCk6ZS5zZXQocil9fSxudW1iZXI6e2NvZXJjZUZ1bmN0aW9uOmZ1bmN0aW9uKHQsZSxyLGkpeyFuKHQpfHx2b2lkIDAhPT1pLm1pbiYmdDxpLm1pbnx8dm9pZCAwIT09aS5tYXgmJnQ+aS5tYXg/ZS5zZXQocik6ZS5zZXQoK3QpfX0saW50ZWdlcjp7Y29lcmNlRnVuY3Rpb246ZnVuY3Rpb24odCxlLHIsaSl7dCUxfHwhbih0KXx8dm9pZCAwIT09aS5taW4mJnQ8aS5taW58fHZvaWQgMCE9PWkubWF4JiZ0PmkubWF4P2Uuc2V0KHIpOmUuc2V0KCt0KX19LHN0cmluZzp7Y29lcmNlRnVuY3Rpb246ZnVuY3Rpb24odCxlLHIsbil7aWYoInN0cmluZyIhPXR5cGVvZiB0KXt2YXIgaT0ibnVtYmVyIj09dHlwZW9mIHQ7ITAhPT1uLnN0cmljdCYmaT9lLnNldChTdHJpbmcodCkpOmUuc2V0KHIpfWVsc2Ugbi5ub0JsYW5rJiYhdD9lLnNldChyKTplLnNldCh0KX19LGNvbG9yOntjb2VyY2VGdW5jdGlvbjpmdW5jdGlvbih0LGUscil7aSh0KS5pc1ZhbGlkKCk/ZS5zZXQodCk6ZS5zZXQocil9fSxjb2xvcmxpc3Q6e2NvZXJjZUZ1bmN0aW9uOmZ1bmN0aW9uKHQsZSxyKXtBcnJheS5pc0FycmF5KHQpJiZ0Lmxlbmd0aCYmdC5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIGkodCkuaXNWYWxpZCgpfSkpP2Uuc2V0KHQpOmUuc2V0KHIpfX0sY29sb3JzY2FsZTp7Y29lcmNlRnVuY3Rpb246ZnVuY3Rpb24odCxlLHIpe2Uuc2V0KG8uZ2V0KHQscikpfX0sYW5nbGU6e2NvZXJjZUZ1bmN0aW9uOmZ1bmN0aW9uKHQsZSxyKXsiYXV0byI9PT10P2Uuc2V0KCJhdXRvIik6bih0KT9lLnNldChmKCt0LDM2MCkpOmUuc2V0KHIpfX0sc3VicGxvdGlkOntjb2VyY2VGdW5jdGlvbjpmdW5jdGlvbih0LGUscixuKXt2YXIgaT1uLnJlZ2V4fHx1KHIpOyJzdHJpbmciPT10eXBlb2YgdCYmaS50ZXN0KHQpP2Uuc2V0KHQpOmUuc2V0KHIpfSx2YWxpZGF0ZUZ1bmN0aW9uOmZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS5kZmx0O3JldHVybiB0PT09cnx8InN0cmluZyI9PXR5cGVvZiB0JiYhIXUocikudGVzdCh0KX19LGZsYWdsaXN0Ontjb2VyY2VGdW5jdGlvbjpmdW5jdGlvbih0LGUscixuKXtpZigtMT09PShuLmV4dHJhc3x8W10pLmluZGV4T2YodCkpaWYoInN0cmluZyI9PXR5cGVvZiB0KXtmb3IodmFyIGk9dC5zcGxpdCgiKyIpLGE9MDthPGkubGVuZ3RoOyl7dmFyIG89aVthXTstMT09PW4uZmxhZ3MuaW5kZXhPZihvKXx8aS5pbmRleE9mKG8pPGE/aS5zcGxpY2UoYSwxKTphKyt9aS5sZW5ndGg/ZS5zZXQoaS5qb2luKCIrIikpOmUuc2V0KHIpfWVsc2UgZS5zZXQocik7ZWxzZSBlLnNldCh0KX19LGFueTp7Y29lcmNlRnVuY3Rpb246ZnVuY3Rpb24odCxlLHIpe3ZvaWQgMD09PXQ/ZS5zZXQocik6ZS5zZXQodCl9fSxpbmZvX2FycmF5Ontjb2VyY2VGdW5jdGlvbjpmdW5jdGlvbih0LGUsbixpKXtmdW5jdGlvbiBhKHQsZSxuKXt2YXIgaSxhPXtzZXQ6ZnVuY3Rpb24odCl7aT10fX07cmV0dXJuIHZvaWQgMD09PW4mJihuPWUuZGZsdCksci52YWxPYmplY3RNZXRhW2UudmFsVHlwZV0uY29lcmNlRnVuY3Rpb24odCxhLG4sZSksaX12YXIgbz0yPT09aS5kaW1lbnNpb25zfHwiMS0yIj09PWkuZGltZW5zaW9ucyYmQXJyYXkuaXNBcnJheSh0KSYmQXJyYXkuaXNBcnJheSh0WzBdKTtpZihBcnJheS5pc0FycmF5KHQpKXt2YXIgcyxsLGMsdSxmLGgscD1pLml0ZW1zLGQ9W10sbT1BcnJheS5pc0FycmF5KHApLGc9bSYmbyYmQXJyYXkuaXNBcnJheShwWzBdKSx2PW8mJm0mJiFnLHk9bSYmIXY/cC5sZW5ndGg6dC5sZW5ndGg7aWYobj1BcnJheS5pc0FycmF5KG4pP246W10sbylmb3Iocz0wO3M8eTtzKyspZm9yKGRbc109W10sYz1BcnJheS5pc0FycmF5KHRbc10pP3Rbc106W10sZj12P3AubGVuZ3RoOm0/cFtzXS5sZW5ndGg6Yy5sZW5ndGgsbD0wO2w8ZjtsKyspdT12P3BbbF06bT9wW3NdW2xdOnAsdm9pZCAwIT09KGg9YShjW2xdLHUsKG5bc118fFtdKVtsXSkpJiYoZFtzXVtsXT1oKTtlbHNlIGZvcihzPTA7czx5O3MrKyl2b2lkIDAhPT0oaD1hKHRbc10sbT9wW3NdOnAsbltzXSkpJiYoZFtzXT1oKTtlLnNldChkKX1lbHNlIGUuc2V0KG4pfSx2YWxpZGF0ZUZ1bmN0aW9uOmZ1bmN0aW9uKHQsZSl7aWYoIUFycmF5LmlzQXJyYXkodCkpcmV0dXJuITE7dmFyIHI9ZS5pdGVtcyxuPUFycmF5LmlzQXJyYXkociksaT0yPT09ZS5kaW1lbnNpb25zO2lmKCFlLmZyZWVMZW5ndGgmJnQubGVuZ3RoIT09ci5sZW5ndGgpcmV0dXJuITE7Zm9yKHZhciBhPTA7YTx0Lmxlbmd0aDthKyspaWYoaSl7aWYoIUFycmF5LmlzQXJyYXkodFthXSl8fCFlLmZyZWVMZW5ndGgmJnRbYV0ubGVuZ3RoIT09clthXS5sZW5ndGgpcmV0dXJuITE7Zm9yKHZhciBvPTA7bzx0W2FdLmxlbmd0aDtvKyspaWYoIXAodFthXVtvXSxuP3JbYV1bb106cikpcmV0dXJuITF9ZWxzZSBpZighcCh0W2FdLG4/clthXTpyKSlyZXR1cm4hMTtyZXR1cm4hMH19fSxyLmNvZXJjZT1mdW5jdGlvbih0LGUsbixpLGEpe3ZhciBvPWMobixpKS5nZXQoKSxzPWModCxpKSxsPWMoZSxpKSx1PXMuZ2V0KCksZj1lLl90ZW1wbGF0ZTtpZih2b2lkIDA9PT11JiZmJiYodT1jKGYsaSkuZ2V0KCksZj0wKSx2b2lkIDA9PT1hJiYoYT1vLmRmbHQpLG8uYXJyYXlPayYmaCh1KSlyZXR1cm4gbC5zZXQodSksdTt2YXIgZD1yLnZhbE9iamVjdE1ldGFbby52YWxUeXBlXS5jb2VyY2VGdW5jdGlvbjtkKHUsbCxhLG8pO3ZhciBtPWwuZ2V0KCk7cmV0dXJuIGYmJm09PT1hJiYhcCh1LG8pJiYoZCh1PWMoZixpKS5nZXQoKSxsLGEsbyksbT1sLmdldCgpKSxtfSxyLmNvZXJjZTI9ZnVuY3Rpb24odCxlLG4saSxhKXt2YXIgbz1jKHQsaSkscz1yLmNvZXJjZSh0LGUsbixpLGEpLGw9by5nZXQoKTtyZXR1cm4gbnVsbCE9bCYmc30sci5jb2VyY2VGb250PWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj17fTtyZXR1cm4gcj1yfHx7fSxuLmZhbWlseT10KGUrIi5mYW1pbHkiLHIuZmFtaWx5KSxuLnNpemU9dChlKyIuc2l6ZSIsci5zaXplKSxuLmNvbG9yPXQoZSsiLmNvbG9yIixyLmNvbG9yKSxufSxyLmNvZXJjZVBhdHRlcm49ZnVuY3Rpb24odCxlLHIsbil7aWYodChlKyIuc2hhcGUiKSl7dChlKyIuc29saWRpdHkiKSx0KGUrIi5zaXplIik7dmFyIGk9Im92ZXJsYXkiPT09dChlKyIuZmlsbG1vZGUiKTtpZighbil7dmFyIGE9dChlKyIuYmdjb2xvciIsaT9yOnZvaWQgMCk7dChlKyIuZmdjb2xvciIsaT9zLmNvbnRyYXN0KGEpOnIpfXQoZSsiLmZnb3BhY2l0eSIsaT8uNToxKX19LHIuY29lcmNlSG92ZXJpbmZvPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaSxvPWUuX21vZHVsZS5hdHRyaWJ1dGVzLHM9by5ob3ZlcmluZm8/bzphLGw9cy5ob3ZlcmluZm87aWYoMT09PW4uX2RhdGFMZW5ndGgpe3ZhciBjPSJhbGwiPT09bC5kZmx0P2wuZmxhZ3Muc2xpY2UoKTpsLmRmbHQuc3BsaXQoIisiKTtjLnNwbGljZShjLmluZGV4T2YoIm5hbWUiKSwxKSxpPWMuam9pbigiKyIpfXJldHVybiByLmNvZXJjZSh0LGUscywiaG92ZXJpbmZvIixpKX0sci5jb2VyY2VTZWxlY3Rpb25NYXJrZXJPcGFjaXR5PWZ1bmN0aW9uKHQsZSl7aWYodC5tYXJrZXIpe3ZhciByLG4saT10Lm1hcmtlci5vcGFjaXR5O2lmKHZvaWQgMCE9PWkpaChpKXx8dC5zZWxlY3RlZHx8dC51bnNlbGVjdGVkfHwocj1pLG49bCppKSxlKCJzZWxlY3RlZC5tYXJrZXIub3BhY2l0eSIsciksZSgidW5zZWxlY3RlZC5tYXJrZXIub3BhY2l0eSIsbil9fSxyLnZhbGlkYXRlPXB9LHsiLi4vY29tcG9uZW50cy9jb2xvciI6MzY3LCIuLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvc2NhbGVzIjozODIsIi4uL2NvbnN0YW50cy9pbnRlcmFjdGlvbnMiOjQ5MCwiLi4vcGxvdHMvYXR0cmlidXRlcyI6NTYyLCIuL2FycmF5Ijo0OTcsIi4vbW9kIjo1MjIsIi4vbmVzdGVkX3Byb3BlcnR5Ijo1MjMsIi4vcmVnZXgiOjUzMiwiZmFzdC1pc251bWVyaWMiOjE5MCx0aW55Y29sb3IyOjMxM31dLDUwMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbixpLGE9dCgiZDMtdGltZS1mb3JtYXQiKS50aW1lRm9ybWF0LG89dCgiZmFzdC1pc251bWVyaWMiKSxzPXQoIi4vbG9nZ2VycyIpLGw9dCgiLi9tb2QiKS5tb2QsYz10KCIuLi9jb25zdGFudHMvbnVtZXJpY2FsIiksdT1jLkJBRE5VTSxmPWMuT05FREFZLGg9Yy5PTkVIT1VSLHA9Yy5PTkVNSU4sZD1jLk9ORVNFQyxtPWMuRVBPQ0hKRCxnPXQoIi4uL3JlZ2lzdHJ5Iiksdj10KCJkMy10aW1lLWZvcm1hdCIpLnV0Y0Zvcm1hdCx5PS9eXHMqKC0/XGRcZFxkXGR8XGRcZCkoLShcZD9cZCkoLShcZD9cZCkoWyBUdF0oWzAxXT9cZHwyWzAtM10pKDooWzAtNV1cZCkoOihbMC01XVxkKFwuXGQrKT8pKT8oWnx6fFsrXC1dXGRcZCg6P1xkXGQpPyk/KT8pPyk/KT9ccyokL20seD0vXlxzKigtP1xkXGRcZFxkfFxkXGQpKC0oXGQ/XGRpPykoLShcZD9cZCkoWyBUdF0oWzAxXT9cZHwyWzAtM10pKDooWzAtNV1cZCkoOihbMC01XVxkKFwuXGQrKT8pKT8oWnx6fFsrXC1dXGRcZCg6P1xkXGQpPyk/KT8pPyk/KT9ccyokL20sYj0obmV3IERhdGUpLmdldEZ1bGxZZWFyKCktNzA7ZnVuY3Rpb24gXyh0KXtyZXR1cm4gdCYmZy5jb21wb25lbnRzUmVnaXN0cnkuY2FsZW5kYXJzJiYic3RyaW5nIj09dHlwZW9mIHQmJiJncmVnb3JpYW4iIT09dH1mdW5jdGlvbiB3KHQsZSl7cmV0dXJuIFN0cmluZyh0K01hdGgucG93KDEwLGUpKS5zdWJzdHIoMSl9ci5kYXRlVGljazA9ZnVuY3Rpb24odCxlKXt2YXIgbj1mdW5jdGlvbih0LGUpe3JldHVybiBfKHQpP2U/Zy5nZXRDb21wb25lbnRNZXRob2QoImNhbGVuZGFycyIsIkNBTk9OSUNBTF9TVU5EQVkiKVt0XTpnLmdldENvbXBvbmVudE1ldGhvZCgiY2FsZW5kYXJzIiwiQ0FOT05JQ0FMX1RJQ0siKVt0XTplPyIyMDAwLTAxLTAyIjoiMjAwMC0wMS0wMSJ9KHQsISFlKTtpZihlPDIpcmV0dXJuIG47dmFyIGk9ci5kYXRlVGltZTJtcyhuLHQpO3JldHVybiBpKz1mKihlLTEpLHIubXMyRGF0ZVRpbWUoaSwwLHQpfSxyLmRmbHRSYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gXyh0KT9nLmdldENvbXBvbmVudE1ldGhvZCgiY2FsZW5kYXJzIiwiREZMVFJBTkdFIilbdF06WyIyMDAwLTAxLTAxIiwiMjAwMS0wMS0wMSJdfSxyLmlzSlNEYXRlPWZ1bmN0aW9uKHQpe3JldHVybiJvYmplY3QiPT10eXBlb2YgdCYmbnVsbCE9PXQmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LmdldFRpbWV9LHIuZGF0ZVRpbWUybXM9ZnVuY3Rpb24odCxlKXtpZihyLmlzSlNEYXRlKHQpKXt2YXIgYT10LmdldFRpbWV6b25lT2Zmc2V0KCkqcCxvPSh0LmdldFVUQ01pbnV0ZXMoKS10LmdldE1pbnV0ZXMoKSkqcCsodC5nZXRVVENTZWNvbmRzKCktdC5nZXRTZWNvbmRzKCkpKmQrKHQuZ2V0VVRDTWlsbGlzZWNvbmRzKCktdC5nZXRNaWxsaXNlY29uZHMoKSk7aWYobyl7dmFyIHM9MypwO2E9YS1zLzIrbChvLWErcy8yLHMpfXJldHVybih0PU51bWJlcih0KS1hKT49biYmdDw9aT90OnV9aWYoInN0cmluZyIhPXR5cGVvZiB0JiYibnVtYmVyIiE9dHlwZW9mIHQpcmV0dXJuIHU7dD1TdHJpbmcodCk7dmFyIGM9XyhlKSx2PXQuY2hhckF0KDApOyFjfHwiRyIhPT12JiYiZyIhPT12fHwodD10LnN1YnN0cigxKSxlPSIiKTt2YXIgdz1jJiYiY2hpbmVzZSI9PT1lLnN1YnN0cigwLDcpLFQ9dC5tYXRjaCh3P3g6eSk7aWYoIVQpcmV0dXJuIHU7dmFyIGs9VFsxXSxBPVRbM118fCIxIixNPU51bWJlcihUWzVdfHwxKSxTPU51bWJlcihUWzddfHwwKSxFPU51bWJlcihUWzldfHwwKSxMPU51bWJlcihUWzExXXx8MCk7aWYoYyl7aWYoMj09PWsubGVuZ3RoKXJldHVybiB1O3ZhciBDO2s9TnVtYmVyKGspO3RyeXt2YXIgUD1nLmdldENvbXBvbmVudE1ldGhvZCgiY2FsZW5kYXJzIiwiZ2V0Q2FsIikoZSk7aWYodyl7dmFyIEk9ImkiPT09QS5jaGFyQXQoQS5sZW5ndGgtMSk7QT1wYXJzZUludChBLDEwKSxDPVAubmV3RGF0ZShrLFAudG9Nb250aEluZGV4KGssQSxJKSxNKX1lbHNlIEM9UC5uZXdEYXRlKGssTnVtYmVyKEEpLE0pfWNhdGNoKHQpe3JldHVybiB1fXJldHVybiBDPyhDLnRvSkQoKS1tKSpmK1MqaCtFKnArTCpkOnV9az0yPT09ay5sZW5ndGg/KE51bWJlcihrKSsyZTMtYiklMTAwK2I6TnVtYmVyKGspLEEtPTE7dmFyIE89bmV3IERhdGUoRGF0ZS5VVEMoMmUzLEEsTSxTLEUpKTtyZXR1cm4gTy5zZXRVVENGdWxsWWVhcihrKSxPLmdldFVUQ01vbnRoKCkhPT1BfHxPLmdldFVUQ0RhdGUoKSE9PU0/dTpPLmdldFRpbWUoKStMKmR9LG49ci5NSU5fTVM9ci5kYXRlVGltZTJtcygiLTk5OTkiKSxpPXIuTUFYX01TPXIuZGF0ZVRpbWUybXMoIjk5OTktMTItMzEgMjM6NTk6NTkuOTk5OSIpLHIuaXNEYXRlVGltZT1mdW5jdGlvbih0LGUpe3JldHVybiByLmRhdGVUaW1lMm1zKHQsZSkhPT11fTt2YXIgVD05MCpmLGs9MypoLEE9NSpwO2Z1bmN0aW9uIE0odCxlLHIsbixpKXtpZigoZXx8cnx8bnx8aSkmJih0Kz0iICIrdyhlLDIpKyI6Iit3KHIsMiksKG58fGkpJiYodCs9IjoiK3cobiwyKSxpKSkpe2Zvcih2YXIgYT00O2klMTA9PTA7KWEtPTEsaS89MTA7dCs9Ii4iK3coaSxhKX1yZXR1cm4gdH1yLm1zMkRhdGVUaW1lPWZ1bmN0aW9uKHQsZSxyKXtpZigibnVtYmVyIiE9dHlwZW9mIHR8fCEodD49biYmdDw9aSkpcmV0dXJuIHU7ZXx8KGU9MCk7dmFyIGEsbyxzLGMseSx4LGI9TWF0aC5mbG9vcigxMCpsKHQrLjA1LDEpKSx3PU1hdGgucm91bmQodC1iLzEwKTtpZihfKHIpKXt2YXIgUz1NYXRoLmZsb29yKHcvZikrbSxFPU1hdGguZmxvb3IobCh0LGYpKTt0cnl7YT1nLmdldENvbXBvbmVudE1ldGhvZCgiY2FsZW5kYXJzIiwiZ2V0Q2FsIikocikuZnJvbUpEKFMpLmZvcm1hdERhdGUoInl5eXktbW0tZGQiKX1jYXRjaCh0KXthPXYoIkclWS0lbS0lZCIpKG5ldyBEYXRlKHcpKX1pZigiLSI9PT1hLmNoYXJBdCgwKSlmb3IoO2EubGVuZ3RoPDExOylhPSItMCIrYS5zdWJzdHIoMSk7ZWxzZSBmb3IoO2EubGVuZ3RoPDEwOylhPSIwIithO289ZTxUP01hdGguZmxvb3IoRS9oKTowLHM9ZTxUP01hdGguZmxvb3IoRSVoL3ApOjAsYz1lPGs/TWF0aC5mbG9vcihFJXAvZCk6MCx5PWU8QT9FJWQqMTArYjowfWVsc2UgeD1uZXcgRGF0ZSh3KSxhPXYoIiVZLSVtLSVkIikoeCksbz1lPFQ/eC5nZXRVVENIb3VycygpOjAscz1lPFQ/eC5nZXRVVENNaW51dGVzKCk6MCxjPWU8az94LmdldFVUQ1NlY29uZHMoKTowLHk9ZTxBPzEwKnguZ2V0VVRDTWlsbGlzZWNvbmRzKCkrYjowO3JldHVybiBNKGEsbyxzLGMseSl9LHIubXMyRGF0ZVRpbWVMb2NhbD1mdW5jdGlvbih0KXtpZighKHQ+PW4rZiYmdDw9aS1mKSlyZXR1cm4gdTt2YXIgZT1NYXRoLmZsb29yKDEwKmwodCsuMDUsMSkpLHI9bmV3IERhdGUoTWF0aC5yb3VuZCh0LWUvMTApKTtyZXR1cm4gTShhKCIlWS0lbS0lZCIpKHIpLHIuZ2V0SG91cnMoKSxyLmdldE1pbnV0ZXMoKSxyLmdldFNlY29uZHMoKSwxMCpyLmdldFVUQ01pbGxpc2Vjb25kcygpK2UpfSxyLmNsZWFuRGF0ZT1mdW5jdGlvbih0LGUsbil7aWYodD09PXUpcmV0dXJuIGU7aWYoci5pc0pTRGF0ZSh0KXx8Im51bWJlciI9PXR5cGVvZiB0JiZpc0Zpbml0ZSh0KSl7aWYoXyhuKSlyZXR1cm4gcy5lcnJvcigiSlMgRGF0ZXMgYW5kIG1pbGxpc2Vjb25kcyBhcmUgaW5jb21wYXRpYmxlIHdpdGggd29ybGQgY2FsZW5kYXJzIix0KSxlO2lmKCEodD1yLm1zMkRhdGVUaW1lTG9jYWwoK3QpKSYmdm9pZCAwIT09ZSlyZXR1cm4gZX1lbHNlIGlmKCFyLmlzRGF0ZVRpbWUodCxuKSlyZXR1cm4gcy5lcnJvcigidW5yZWNvZ25pemVkIGRhdGUiLHQpLGU7cmV0dXJuIHR9O3ZhciBTPS8lXGQ/Zi9nLEU9LyVoL2csTD17MToiMSIsMjoiMSIsMzoiMiIsNDoiMiJ9O2Z1bmN0aW9uIEModCxlLHIsbil7dD10LnJlcGxhY2UoUywoZnVuY3Rpb24odCl7dmFyIHI9TWF0aC5taW4oK3QuY2hhckF0KDEpfHw2LDYpO3JldHVybihlLzFlMyUxKzIpLnRvRml4ZWQocikuc3Vic3RyKDIpLnJlcGxhY2UoLzArJC8sIiIpfHwiMCJ9KSk7dmFyIGk9bmV3IERhdGUoTWF0aC5mbG9vcihlKy4wNSkpO2lmKHQ9dC5yZXBsYWNlKEUsKGZ1bmN0aW9uKCl7cmV0dXJuIExbcigiJXEiKShpKV19KSksXyhuKSl0cnl7dD1nLmdldENvbXBvbmVudE1ldGhvZCgiY2FsZW5kYXJzIiwid29ybGRDYWxGbXQiKSh0LGUsbil9Y2F0Y2godCl7cmV0dXJuIkludmFsaWQifXJldHVybiByKHQpKGkpfXZhciBQPVs1OSw1OS45LDU5Ljk5LDU5Ljk5OSw1OS45OTk5XTtyLmZvcm1hdERhdGU9ZnVuY3Rpb24odCxlLHIsbixpLGEpe2lmKGk9XyhpKSYmaSwhZSlpZigieSI9PT1yKWU9YS55ZWFyO2Vsc2UgaWYoIm0iPT09cillPWEubW9udGg7ZWxzZXtpZigiZCIhPT1yKXJldHVybiBmdW5jdGlvbih0LGUpe3ZhciByPWwodCsuMDUsZiksbj13KE1hdGguZmxvb3Ioci9oKSwyKSsiOiIrdyhsKE1hdGguZmxvb3Ioci9wKSw2MCksMik7aWYoIk0iIT09ZSl7byhlKXx8KGU9MCk7dmFyIGk9KDEwMCtNYXRoLm1pbihsKHQvZCw2MCksUFtlXSkpLnRvRml4ZWQoZSkuc3Vic3RyKDEpO2U+MCYmKGk9aS5yZXBsYWNlKC8wKyQvLCIiKS5yZXBsYWNlKC9bXC5dJC8sIiIpKSxuKz0iOiIraX1yZXR1cm4gbn0odCxyKSsiXG4iK0MoYS5kYXlNb250aFllYXIsdCxuLGkpO2U9YS5kYXlNb250aCsiXG4iK2EueWVhcn1yZXR1cm4gQyhlLHQsbixpKX07dmFyIEk9MypmO3IuaW5jcmVtZW50TW9udGg9ZnVuY3Rpb24odCxlLHIpe3I9XyhyKSYmcjt2YXIgbj1sKHQsZik7aWYodD1NYXRoLnJvdW5kKHQtbikscil0cnl7dmFyIGk9TWF0aC5yb3VuZCh0L2YpK20sYT1nLmdldENvbXBvbmVudE1ldGhvZCgiY2FsZW5kYXJzIiwiZ2V0Q2FsIikociksbz1hLmZyb21KRChpKTtyZXR1cm4gZSUxMj9hLmFkZChvLGUsIm0iKTphLmFkZChvLGUvMTIsInkiKSwoby50b0pEKCktbSkqZitufWNhdGNoKGUpe3MuZXJyb3IoImludmFsaWQgbXMgIit0KyIgaW4gY2FsZW5kYXIgIityKX12YXIgYz1uZXcgRGF0ZSh0K0kpO3JldHVybiBjLnNldFVUQ01vbnRoKGMuZ2V0VVRDTW9udGgoKStlKStuLUl9LHIuZmluZEV4YWN0RGF0ZXM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHIsbixpPTAsYT0wLHM9MCxsPTAsYz1fKGUpJiZnLmdldENvbXBvbmVudE1ldGhvZCgiY2FsZW5kYXJzIiwiZ2V0Q2FsIikoZSksdT0wO3U8dC5sZW5ndGg7dSsrKWlmKG49dFt1XSxvKG4pKXtpZighKG4lZikpaWYoYyl0cnl7MT09PShyPWMuZnJvbUpEKG4vZittKSkuZGF5KCk/MT09PXIubW9udGgoKT9pKys6YSsrOnMrK31jYXRjaCh0KXt9ZWxzZSAxPT09KHI9bmV3IERhdGUobikpLmdldFVUQ0RhdGUoKT8wPT09ci5nZXRVVENNb250aCgpP2krKzphKys6cysrfWVsc2UgbCsrO3MrPWErPWk7dmFyIGg9dC5sZW5ndGgtbDtyZXR1cm57ZXhhY3RZZWFyczppL2gsZXhhY3RNb250aHM6YS9oLGV4YWN0RGF5czpzL2h9fX0seyIuLi9jb25zdGFudHMvbnVtZXJpY2FsIjo0OTEsIi4uL3JlZ2lzdHJ5Ijo2NDcsIi4vbG9nZ2VycyI6NTE5LCIuL21vZCI6NTIyLCJkMy10aW1lLWZvcm1hdCI6MTIwLCJmYXN0LWlzbnVtZXJpYyI6MTkwfV0sNTAzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4vbG9nZ2VycyIpLGE9dCgiLi9tYXRyaXgiKSxvPXQoImdsLW1hdDQiKTtmdW5jdGlvbiBzKHQpe3ZhciBlPXQmJnQucGFyZW50Tm9kZTtlJiZlLnJlbW92ZUNoaWxkKHQpfWZ1bmN0aW9uIGwodCxlLHIpe3ZhciBuPSJwbG90bHkuanMtc3R5bGUtIit0LGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobik7YXx8KChhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIikpLnNldEF0dHJpYnV0ZSgiaWQiLG4pLGEuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiIpKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGEpKTt2YXIgbz1hLnNoZWV0O28uaW5zZXJ0UnVsZT9vLmluc2VydFJ1bGUoZSsieyIrcisifSIsMCk6by5hZGRSdWxlP28uYWRkUnVsZShlLHIsMCk6aS53YXJuKCJhZGRTdHlsZVJ1bGUgZmFpbGVkIil9ZnVuY3Rpb24gYyh0KXt2YXIgZT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0LG51bGwpLHI9ZS5nZXRQcm9wZXJ0eVZhbHVlKCItd2Via2l0LXRyYW5zZm9ybSIpfHxlLmdldFByb3BlcnR5VmFsdWUoIi1tb3otdHJhbnNmb3JtIil8fGUuZ2V0UHJvcGVydHlWYWx1ZSgiLW1zLXRyYW5zZm9ybSIpfHxlLmdldFByb3BlcnR5VmFsdWUoIi1vLXRyYW5zZm9ybSIpfHxlLmdldFByb3BlcnR5VmFsdWUoInRyYW5zZm9ybSIpO3JldHVybiJub25lIj09PXI/bnVsbDpyLnJlcGxhY2UoIm1hdHJpeCIsIiIpLnJlcGxhY2UoIjNkIiwiIikuc2xpY2UoMSwtMSkuc3BsaXQoIiwiKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybit0fSkpfWZ1bmN0aW9uIHUodCl7Zm9yKHZhciBlPVtdO2YodCk7KWUucHVzaCh0KSx0PXQucGFyZW50Tm9kZTtyZXR1cm4gZX1mdW5jdGlvbiBmKHQpe3JldHVybiB0JiYodCBpbnN0YW5jZW9mIEVsZW1lbnR8fHQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCl9ZS5leHBvcnRzPXtnZXRHcmFwaERpdjpmdW5jdGlvbih0KXt2YXIgZTtpZigic3RyaW5nIj09dHlwZW9mIHQpe2lmKG51bGw9PT0oZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0KSkpdGhyb3cgbmV3IEVycm9yKCJObyBET00gZWxlbWVudCB3aXRoIGlkICciK3QrIicgZXhpc3RzIG9uIHRoZSBwYWdlLiIpO3JldHVybiBlfWlmKG51bGw9PXQpdGhyb3cgbmV3IEVycm9yKCJET00gZWxlbWVudCBwcm92aWRlZCBpcyBudWxsIG9yIHVuZGVmaW5lZCIpO3JldHVybiB0fSxpc1Bsb3REaXY6ZnVuY3Rpb24odCl7dmFyIGU9bi5zZWxlY3QodCk7cmV0dXJuIGUubm9kZSgpaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmZS5zaXplKCkmJmUuY2xhc3NlZCgianMtcGxvdGx5LXBsb3QiKX0scmVtb3ZlRWxlbWVudDpzLGFkZFN0eWxlUnVsZTpmdW5jdGlvbih0LGUpe2woImdsb2JhbCIsdCxlKX0sYWRkUmVsYXRlZFN0eWxlUnVsZTpsLGRlbGV0ZVJlbGF0ZWRTdHlsZVJ1bGU6ZnVuY3Rpb24odCl7dmFyIGU9InBsb3RseS5qcy1zdHlsZS0iK3Qscj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChlKTtyJiZzKHIpfSxnZXRGdWxsVHJhbnNmb3JtTWF0cml4OmZ1bmN0aW9uKHQpe3ZhciBlPXUodCkscj1bMSwwLDAsMCwwLDEsMCwwLDAsMCwxLDAsMCwwLDAsMV07cmV0dXJuIGUuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9Yyh0KTtpZihlKXt2YXIgbj1hLmNvbnZlcnRDc3NNYXRyaXgoZSk7cj1vLm11bHRpcGx5KHIscixuKX19KSkscn0sZ2V0RWxlbWVudFRyYW5zZm9ybU1hdHJpeDpjLGdldEVsZW1lbnRBbmRBbmNlc3RvcnM6dSxlcXVhbERvbVJlY3RzOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQmJmUmJnQueD09PWUueCYmdC55PT09ZS55JiZ0LnRvcD09PWUudG9wJiZ0LmxlZnQ9PT1lLmxlZnQmJnQucmlnaHQ9PT1lLnJpZ2h0JiZ0LmJvdHRvbT09PWUuYm90dG9tfX19LHsiLi9sb2dnZXJzIjo1MTksIi4vbWF0cml4Ijo1MjEsIkBwbG90bHkvZDMiOjU4LCJnbC1tYXQ0IjoyMTB9XSw1MDQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZXZlbnRzIikuRXZlbnRFbWl0dGVyLGk9e2luaXQ6ZnVuY3Rpb24odCl7aWYodC5fZXYgaW5zdGFuY2VvZiBuKXJldHVybiB0O3ZhciBlPW5ldyBuLHI9bmV3IG47cmV0dXJuIHQuX2V2PWUsdC5faW50ZXJuYWxFdj1yLHQub249ZS5vbi5iaW5kKGUpLHQub25jZT1lLm9uY2UuYmluZChlKSx0LnJlbW92ZUxpc3RlbmVyPWUucmVtb3ZlTGlzdGVuZXIuYmluZChlKSx0LnJlbW92ZUFsbExpc3RlbmVycz1lLnJlbW92ZUFsbExpc3RlbmVycy5iaW5kKGUpLHQuX2ludGVybmFsT249ci5vbi5iaW5kKHIpLHQuX2ludGVybmFsT25jZT1yLm9uY2UuYmluZChyKSx0Ll9yZW1vdmVJbnRlcm5hbExpc3RlbmVyPXIucmVtb3ZlTGlzdGVuZXIuYmluZChyKSx0Ll9yZW1vdmVBbGxJbnRlcm5hbExpc3RlbmVycz1yLnJlbW92ZUFsbExpc3RlbmVycy5iaW5kKHIpLHQuZW1pdD1mdW5jdGlvbihuLGkpeyJ1bmRlZmluZWQiIT10eXBlb2YgalF1ZXJ5JiZqUXVlcnkodCkudHJpZ2dlcihuLGkpLGUuZW1pdChuLGkpLHIuZW1pdChuLGkpfSx0fSx0cmlnZ2VySGFuZGxlcjpmdW5jdGlvbih0LGUscil7dmFyIG4saTsidW5kZWZpbmVkIiE9dHlwZW9mIGpRdWVyeSYmKG49alF1ZXJ5KHQpLnRyaWdnZXJIYW5kbGVyKGUscikpO3ZhciBhPXQuX2V2O2lmKCFhKXJldHVybiBuO3ZhciBvLHM9YS5fZXZlbnRzW2VdO2lmKCFzKXJldHVybiBuO2Z1bmN0aW9uIGwodCl7cmV0dXJuIHQubGlzdGVuZXI/KGEucmVtb3ZlTGlzdGVuZXIoZSx0Lmxpc3RlbmVyKSx0LmZpcmVkP3ZvaWQgMDoodC5maXJlZD0hMCx0Lmxpc3RlbmVyLmFwcGx5KGEsW3JdKSkpOnQuYXBwbHkoYSxbcl0pfWZvcihzPUFycmF5LmlzQXJyYXkocyk/czpbc10sbz0wO288cy5sZW5ndGgtMTtvKyspbChzW29dKTtyZXR1cm4gaT1sKHNbb10pLHZvaWQgMCE9PW4/bjppfSxwdXJnZTpmdW5jdGlvbih0KXtyZXR1cm4gZGVsZXRlIHQuX2V2LGRlbGV0ZSB0Lm9uLGRlbGV0ZSB0Lm9uY2UsZGVsZXRlIHQucmVtb3ZlTGlzdGVuZXIsZGVsZXRlIHQucmVtb3ZlQWxsTGlzdGVuZXJzLGRlbGV0ZSB0LmVtaXQsZGVsZXRlIHQuX2V2LGRlbGV0ZSB0Ll9pbnRlcm5hbEV2LGRlbGV0ZSB0Ll9pbnRlcm5hbE9uLGRlbGV0ZSB0Ll9pbnRlcm5hbE9uY2UsZGVsZXRlIHQuX3JlbW92ZUludGVybmFsTGlzdGVuZXIsZGVsZXRlIHQuX3JlbW92ZUFsbEludGVybmFsTGlzdGVuZXJzLHR9fTtlLmV4cG9ydHM9aX0se2V2ZW50czo4NH1dLDUwNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2lzX3BsYWluX29iamVjdC5qcyIpLGk9QXJyYXkuaXNBcnJheTtmdW5jdGlvbiBhKHQsZSxyLG8pe3ZhciBzLGwsYyx1LGYsaCxwPXRbMF0sZD10Lmxlbmd0aDtpZigyPT09ZCYmaShwKSYmaSh0WzFdKSYmMD09PXAubGVuZ3RoKXtpZihmdW5jdGlvbih0LGUpe3ZhciByLG47Zm9yKHI9MDtyPHQubGVuZ3RoO3IrKyl7aWYobnVsbCE9PShuPXRbcl0pJiYib2JqZWN0Ij09dHlwZW9mIG4pcmV0dXJuITE7dm9pZCAwIT09biYmKGVbcl09bil9cmV0dXJuITB9KHRbMV0scCkpcmV0dXJuIHA7cC5zcGxpY2UoMCxwLmxlbmd0aCl9Zm9yKHZhciBtPTE7bTxkO20rKylmb3IobCBpbiBzPXRbbV0pYz1wW2xdLHU9c1tsXSxvJiZpKHUpP3BbbF09dTplJiZ1JiYobih1KXx8KGY9aSh1KSkpPyhmPyhmPSExLGg9YyYmaShjKT9jOltdKTpoPWMmJm4oYyk/Yzp7fSxwW2xdPWEoW2gsdV0sZSxyLG8pKToodm9pZCAwIT09dXx8cikmJihwW2xdPXUpO3JldHVybiBwfXIuZXh0ZW5kRmxhdD1mdW5jdGlvbigpe3JldHVybiBhKGFyZ3VtZW50cywhMSwhMSwhMSl9LHIuZXh0ZW5kRGVlcD1mdW5jdGlvbigpe3JldHVybiBhKGFyZ3VtZW50cywhMCwhMSwhMSl9LHIuZXh0ZW5kRGVlcEFsbD1mdW5jdGlvbigpe3JldHVybiBhKGFyZ3VtZW50cywhMCwhMCwhMSl9LHIuZXh0ZW5kRGVlcE5vQXJyYXlzPWZ1bmN0aW9uKCl7cmV0dXJuIGEoYXJndW1lbnRzLCEwLCExLCEwKX19LHsiLi9pc19wbGFpbl9vYmplY3QuanMiOjUxNn1dLDUwNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXt9LHI9W10sbj0wLGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIGE9dFtpXTsxIT09ZVthXSYmKGVbYV09MSxyW24rK109YSl9cmV0dXJuIHJ9fSx7fV0sNTA3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7cmV0dXJuITA9PT10LnZpc2libGV9ZnVuY3Rpb24gaSh0KXt2YXIgZT10WzBdLnRyYWNlO3JldHVybiEwPT09ZS52aXNpYmxlJiYwIT09ZS5fbGVuZ3RofWUuZXhwb3J0cz1mdW5jdGlvbih0KXtmb3IodmFyIGUscj0oZT10LEFycmF5LmlzQXJyYXkoZSkmJkFycmF5LmlzQXJyYXkoZVswXSkmJmVbMF1bMF0mJmVbMF1bMF0udHJhY2U/aTpuKSxhPVtdLG89MDtvPHQubGVuZ3RoO28rKyl7dmFyIHM9dFtvXTtyKHMpJiZhLnB1c2gocyl9cmV0dXJuIGF9fSx7fV0sNTA4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoImNvdW50cnktcmVnZXgiKSxhPXQoIkB0dXJmL2FyZWEiKSxvPXQoIkB0dXJmL2NlbnRyb2lkIikscz10KCJAdHVyZi9iYm94IiksbD10KCIuL2lkZW50aXR5IiksYz10KCIuL2xvZ2dlcnMiKSx1PXQoIi4vaXNfcGxhaW5fb2JqZWN0IiksZj10KCIuL25lc3RlZF9wcm9wZXJ0eSIpLGg9dCgiLi9wb2x5Z29uIikscD1PYmplY3Qua2V5cyhpKSxkPXsiSVNPLTMiOmwsIlVTQS1zdGF0ZXMiOmwsImNvdW50cnkgbmFtZXMiOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wO2U8cC5sZW5ndGg7ZSsrKXt2YXIgcj1wW2VdO2lmKG5ldyBSZWdFeHAoaVtyXSkudGVzdCh0LnRyaW0oKS50b0xvd2VyQ2FzZSgpKSlyZXR1cm4gcn1yZXR1cm4gYy5sb2coIlVucmVjb2duaXplZCBjb3VudHJ5IG5hbWU6ICIrdCsiLiIpLCExfX07ZnVuY3Rpb24gbSh0KXt2YXIgZT10Lmdlb2pzb24scj13aW5kb3cuUGxvdGx5R2VvQXNzZXRzfHx7fSxuPSJzdHJpbmciPT10eXBlb2YgZT9yW2VdOmU7cmV0dXJuIHUobik/bjooYy5lcnJvcigiT29wcyAuLi4gc29tZXRoaW5nIHdlbnQgd3Jvbmcgd2hlbiBmZXRjaGluZyAiK2UpLCExKX1lLmV4cG9ydHM9e2xvY2F0aW9uVG9GZWF0dXJlOmZ1bmN0aW9uKHQsZSxyKXtpZighZXx8InN0cmluZyIhPXR5cGVvZiBlKXJldHVybiExO3ZhciBuLGksYSxvPWRbdF0oZSk7aWYobyl7aWYoIlVTQS1zdGF0ZXMiPT09dClmb3Iobj1bXSxhPTA7YTxyLmxlbmd0aDthKyspKGk9clthXSkucHJvcGVydGllcyYmaS5wcm9wZXJ0aWVzLmd1JiYiVVNBIj09PWkucHJvcGVydGllcy5ndSYmbi5wdXNoKGkpO2Vsc2Ugbj1yO2ZvcihhPTA7YTxuLmxlbmd0aDthKyspaWYoKGk9blthXSkuaWQ9PT1vKXJldHVybiBpO2MubG9nKFsiTG9jYXRpb24gd2l0aCBpZCIsbywiZG9lcyBub3QgaGF2ZSBhIG1hdGNoaW5nIHRvcG9qc29uIGZlYXR1cmUgYXQgdGhpcyByZXNvbHV0aW9uLiJdLmpvaW4oIiAiKSl9cmV0dXJuITF9LGZlYXR1cmUycG9seWdvbnM6ZnVuY3Rpb24odCl7dmFyIGUscixuLGksYT10Lmdlb21ldHJ5LG89YS5jb29yZGluYXRlcyxzPXQuaWQsbD1bXTtmdW5jdGlvbiBjKHQpe2Zvcih2YXIgZT0wO2U8dC5sZW5ndGgtMTtlKyspaWYodFtlXVswXT4wJiZ0W2UrMV1bMF08MClyZXR1cm4gZTtyZXR1cm4gbnVsbH1zd2l0Y2goZT0iUlVTIj09PXN8fCJGSkkiPT09cz9mdW5jdGlvbih0KXt2YXIgZTtpZihudWxsPT09Yyh0KSllPXQ7ZWxzZSBmb3IoZT1uZXcgQXJyYXkodC5sZW5ndGgpLGk9MDtpPHQubGVuZ3RoO2krKyllW2ldPVt0W2ldWzBdPDA/dFtpXVswXSszNjA6dFtpXVswXSx0W2ldWzFdXTtsLnB1c2goaC50ZXN0ZXIoZSkpfToiQVRBIj09PXM/ZnVuY3Rpb24odCl7dmFyIGU9Yyh0KTtpZihudWxsPT09ZSlyZXR1cm4gbC5wdXNoKGgudGVzdGVyKHQpKTt2YXIgcj1uZXcgQXJyYXkodC5sZW5ndGgrMSksbj0wO2ZvcihpPTA7aTx0Lmxlbmd0aDtpKyspaT5lP3JbbisrXT1bdFtpXVswXSszNjAsdFtpXVsxXV06aT09PWU/KHJbbisrXT10W2ldLHJbbisrXT1bdFtpXVswXSwtOTBdKTpyW24rK109dFtpXTt2YXIgYT1oLnRlc3RlcihyKTthLnB0cy5wb3AoKSxsLnB1c2goYSl9OmZ1bmN0aW9uKHQpe2wucHVzaChoLnRlc3Rlcih0KSl9LGEudHlwZSl7Y2FzZSJNdWx0aVBvbHlnb24iOmZvcihyPTA7cjxvLmxlbmd0aDtyKyspZm9yKG49MDtuPG9bcl0ubGVuZ3RoO24rKyllKG9bcl1bbl0pO2JyZWFrO2Nhc2UiUG9seWdvbiI6Zm9yKHI9MDtyPG8ubGVuZ3RoO3IrKyllKG9bcl0pfXJldHVybiBsfSxnZXRUcmFjZUdlb2pzb246bSxleHRyYWN0VHJhY2VGZWF0dXJlOmZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0udHJhY2Uscj1tKGUpO2lmKCFyKXJldHVybiExO3ZhciBuLGk9e30scz1bXTtmb3Iobj0wO248ZS5fbGVuZ3RoO24rKyl7dmFyIGw9dFtuXTsobC5sb2N8fDA9PT1sLmxvYykmJihpW2wubG9jXT1sKX1mdW5jdGlvbiB1KHQpe3ZhciByPWYodCxlLmZlYXR1cmVpZGtleXx8ImlkIikuZ2V0KCksbj1pW3JdO2lmKG4pe3ZhciBsPXQuZ2VvbWV0cnk7aWYoIlBvbHlnb24iPT09bC50eXBlfHwiTXVsdGlQb2x5Z29uIj09PWwudHlwZSl7dmFyIHU9e3R5cGU6IkZlYXR1cmUiLGlkOnIsZ2VvbWV0cnk6bCxwcm9wZXJ0aWVzOnt9fTt1LnByb3BlcnRpZXMuY3Q9ZnVuY3Rpb24odCl7dmFyIGUscj10Lmdlb21ldHJ5O2lmKCJNdWx0aVBvbHlnb24iPT09ci50eXBlKWZvcih2YXIgbj1yLmNvb3JkaW5hdGVzLGk9MCxzPTA7czxuLmxlbmd0aDtzKyspe3ZhciBsPXt0eXBlOiJQb2x5Z29uIixjb29yZGluYXRlczpuW3NdfSxjPWEuZGVmYXVsdChsKTtjPmkmJihpPWMsZT1sKX1lbHNlIGU9cjtyZXR1cm4gby5kZWZhdWx0KGUpLmdlb21ldHJ5LmNvb3JkaW5hdGVzfSh1KSxuLmZJbj10LG4uZk91dD11LHMucHVzaCh1KX1lbHNlIGMubG9nKFsiTG9jYXRpb24iLG4ubG9jLCJkb2VzIG5vdCBoYXZlIGEgdmFsaWQgR2VvSlNPTiBnZW9tZXRyeS4iLCJUcmFjZXMgd2l0aCBsb2NhdGlvbm1vZGUgKmdlb2pzb24taWQqIG9ubHkgc3VwcG9ydCIsIipQb2x5Z29uKiBhbmQgKk11bHRpUG9seWdvbiogZ2VvbWV0cmllcy4iXS5qb2luKCIgIikpfWRlbGV0ZSBpW3JdfXN3aXRjaChyLnR5cGUpe2Nhc2UiRmVhdHVyZUNvbGxlY3Rpb24iOnZhciBoPXIuZmVhdHVyZXM7Zm9yKG49MDtuPGgubGVuZ3RoO24rKyl1KGhbbl0pO2JyZWFrO2Nhc2UiRmVhdHVyZSI6dShyKTticmVhaztkZWZhdWx0OnJldHVybiBjLndhcm4oWyJJbnZhbGlkIEdlb0pTT04gdHlwZSIsKHIudHlwZXx8Im5vbmUiKSsiLiIsIlRyYWNlcyB3aXRoIGxvY2F0aW9ubW9kZSAqZ2VvanNvbi1pZCogb25seSBzdXBwb3J0IiwiKkZlYXR1cmVDb2xsZWN0aW9uKiBhbmQgKkZlYXR1cmUqIHR5cGVzLiJdLmpvaW4oIiAiKSksITF9Zm9yKHZhciBwIGluIGkpYy5sb2coWyJMb2NhdGlvbiAqIitwKyIqIiwiZG9lcyBub3QgaGF2ZSBhIG1hdGNoaW5nIGZlYXR1cmUgd2l0aCBpZC1rZXkiLCIqIitlLmZlYXR1cmVpZGtleSsiKi4iXS5qb2luKCIgIikpO3JldHVybiBzfSxmZXRjaFRyYWNlR2VvRGF0YTpmdW5jdGlvbih0KXt2YXIgZT13aW5kb3cuUGxvdGx5R2VvQXNzZXRzfHx7fSxyPVtdO2Z1bmN0aW9uIGkodCl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihyLGkpe24uanNvbih0LChmdW5jdGlvbihuLGEpe2lmKG4pe2RlbGV0ZSBlW3RdO3ZhciBvPTQwND09PW4uc3RhdHVzPydHZW9KU09OIGF0IFVSTCAiJyt0KyciIGRvZXMgbm90IGV4aXN0Lic6IlVuZXhwZWN0ZWQgZXJyb3Igd2hpbGUgZmV0Y2hpbmcgZnJvbSAiK3Q7cmV0dXJuIGkobmV3IEVycm9yKG8pKX1yZXR1cm4gZVt0XT1hLHIoYSl9KSl9KSl9ZnVuY3Rpb24gYSh0KXtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHIsbil7dmFyIGk9MCxhPXNldEludGVydmFsKChmdW5jdGlvbigpe3JldHVybiBlW3RdJiYicGVuZGluZyIhPT1lW3RdPyhjbGVhckludGVydmFsKGEpLHIoZVt0XSkpOmk+MTAwPyhjbGVhckludGVydmFsKGEpLG4oIlVuZXhwZWN0ZWQgZXJyb3Igd2hpbGUgZmV0Y2hpbmcgZnJvbSAiK3QpKTp2b2lkIGkrK30pLDUwKX0pKX1mb3IodmFyIG89MDtvPHQubGVuZ3RoO28rKyl7dmFyIHM9dFtvXVswXS50cmFjZS5nZW9qc29uOyJzdHJpbmciPT10eXBlb2YgcyYmKGVbc10/InBlbmRpbmciPT09ZVtzXSYmci5wdXNoKGEocykpOihlW3NdPSJwZW5kaW5nIixyLnB1c2goaShzKSkpKX1yZXR1cm4gcn0sY29tcHV0ZUJib3g6ZnVuY3Rpb24odCl7cmV0dXJuIHMuZGVmYXVsdCh0KX19fSx7Ii4vaWRlbnRpdHkiOjUxMywiLi9pc19wbGFpbl9vYmplY3QiOjUxNiwiLi9sb2dnZXJzIjo1MTksIi4vbmVzdGVkX3Byb3BlcnR5Ijo1MjMsIi4vcG9seWdvbiI6NTI3LCJAcGxvdGx5L2QzIjo1OCwiQHR1cmYvYXJlYSI6NjEsIkB0dXJmL2Jib3giOjY0LCJAdHVyZi9jZW50cm9pZCI6NjcsImNvdW50cnktcmVnZXgiOjk0fV0sNTA5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2NvbnN0YW50cy9udW1lcmljYWwiKS5CQUROVU07ci5jYWxjVHJhY2VUb0xpbmVDb29yZHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRbMF0udHJhY2UuY29ubmVjdGdhcHMscj1bXSxpPVtdLGE9MDthPHQubGVuZ3RoO2ErKyl7dmFyIG89dFthXS5sb25sYXQ7b1swXSE9PW4/aS5wdXNoKG8pOiFlJiZpLmxlbmd0aD4wJiYoci5wdXNoKGkpLGk9W10pfXJldHVybiBpLmxlbmd0aD4wJiZyLnB1c2goaSkscn0sci5tYWtlTGluZT1mdW5jdGlvbih0KXtyZXR1cm4gMT09PXQubGVuZ3RoP3t0eXBlOiJMaW5lU3RyaW5nIixjb29yZGluYXRlczp0WzBdfTp7dHlwZToiTXVsdGlMaW5lU3RyaW5nIixjb29yZGluYXRlczp0fX0sci5tYWtlUG9seWdvbj1mdW5jdGlvbih0KXtpZigxPT09dC5sZW5ndGgpcmV0dXJue3R5cGU6IlBvbHlnb24iLGNvb3JkaW5hdGVzOnR9O2Zvcih2YXIgZT1uZXcgQXJyYXkodC5sZW5ndGgpLHI9MDtyPHQubGVuZ3RoO3IrKyllW3JdPVt0W3JdXTtyZXR1cm57dHlwZToiTXVsdGlQb2x5Z29uIixjb29yZGluYXRlczplfX0sci5tYWtlQmxhbms9ZnVuY3Rpb24oKXtyZXR1cm57dHlwZToiUG9pbnQiLGNvb3JkaW5hdGVzOltdfX19LHsiLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NDkxfV0sNTEwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuLGksYSxvPXQoIi4vbW9kIikubW9kO2Z1bmN0aW9uIHModCxlLHIsbixpLGEsbyxzKXt2YXIgbD1yLXQsYz1pLXQsdT1vLWksZj1uLWUsaD1hLWUscD1zLWEsZD1sKnAtdSpmO2lmKDA9PT1kKXJldHVybiBudWxsO3ZhciBtPShjKnAtdSpoKS9kLGc9KGMqZi1sKmgpL2Q7cmV0dXJuIGc8MHx8Zz4xfHxtPDB8fG0+MT9udWxsOnt4OnQrbCptLHk6ZStmKm19fWZ1bmN0aW9uIGwodCxlLHIsbixpKXt2YXIgYT1uKnQraSplO2lmKGE8MClyZXR1cm4gbipuK2kqaTtpZihhPnIpe3ZhciBvPW4tdCxzPWktZTtyZXR1cm4gbypvK3Mqc312YXIgbD1uKmUtaSp0O3JldHVybiBsKmwvcn1yLnNlZ21lbnRzSW50ZXJzZWN0PXMsci5zZWdtZW50RGlzdGFuY2U9ZnVuY3Rpb24odCxlLHIsbixpLGEsbyxjKXtpZihzKHQsZSxyLG4saSxhLG8sYykpcmV0dXJuIDA7dmFyIHU9ci10LGY9bi1lLGg9by1pLHA9Yy1hLGQ9dSp1K2YqZixtPWgqaCtwKnAsZz1NYXRoLm1pbihsKHUsZixkLGktdCxhLWUpLGwodSxmLGQsby10LGMtZSksbChoLHAsbSx0LWksZS1hKSxsKGgscCxtLHItaSxuLWEpKTtyZXR1cm4gTWF0aC5zcXJ0KGcpfSxyLmdldFRleHRMb2NhdGlvbj1mdW5jdGlvbih0LGUscixzKXtpZih0PT09aSYmcz09PWF8fChuPXt9LGk9dCxhPXMpLG5bcl0pcmV0dXJuIG5bcl07dmFyIGw9dC5nZXRQb2ludEF0TGVuZ3RoKG8oci1zLzIsZSkpLGM9dC5nZXRQb2ludEF0TGVuZ3RoKG8ocitzLzIsZSkpLHU9TWF0aC5hdGFuKChjLnktbC55KS8oYy54LWwueCkpLGY9dC5nZXRQb2ludEF0TGVuZ3RoKG8ocixlKSksaD17eDooNCpmLngrbC54K2MueCkvNix5Oig0KmYueStsLnkrYy55KS82LHRoZXRhOnV9O3JldHVybiBuW3JdPWgsaH0sci5jbGVhckxvY2F0aW9uQ2FjaGU9ZnVuY3Rpb24oKXtpPW51bGx9LHIuZ2V0VmlzaWJsZVNlZ21lbnQ9ZnVuY3Rpb24odCxlLHIpe3ZhciBuLGksYT1lLmxlZnQsbz1lLnJpZ2h0LHM9ZS50b3AsbD1lLmJvdHRvbSxjPTAsdT10LmdldFRvdGFsTGVuZ3RoKCksZj11O2Z1bmN0aW9uIGgoZSl7dmFyIHI9dC5nZXRQb2ludEF0TGVuZ3RoKGUpOzA9PT1lP249cjplPT09dSYmKGk9cik7dmFyIGM9ci54PGE/YS1yLng6ci54Pm8/ci54LW86MCxmPXIueTxzP3Mtci55OnIueT5sP3IueS1sOjA7cmV0dXJuIE1hdGguc3FydChjKmMrZipmKX1mb3IodmFyIHA9aChjKTtwOyl7aWYoKGMrPXArcik+ZilyZXR1cm47cD1oKGMpfWZvcihwPWgoZik7cDspe2lmKGM+KGYtPXArcikpcmV0dXJuO3A9aChmKX1yZXR1cm57bWluOmMsbWF4OmYsbGVuOmYtYyx0b3RhbDp1LGlzQ2xvc2VkOjA9PT1jJiZmPT09dSYmTWF0aC5hYnMobi54LWkueCk8LjEmJk1hdGguYWJzKG4ueS1pLnkpPC4xfX0sci5maW5kUG9pbnRPblBhdGg9ZnVuY3Rpb24odCxlLHIsbil7Zm9yKHZhciBpLGEsbyxzPShuPW58fHt9KS5wYXRoTGVuZ3RofHx0LmdldFRvdGFsTGVuZ3RoKCksbD1uLnRvbGVyYW5jZXx8LjAwMSxjPW4uaXRlcmF0aW9uTGltaXR8fDMwLHU9dC5nZXRQb2ludEF0TGVuZ3RoKDApW3JdPnQuZ2V0UG9pbnRBdExlbmd0aChzKVtyXT8tMToxLGY9MCxoPTAscD1zO2Y8Yzspe2lmKGk9KGgrcCkvMixvPShhPXQuZ2V0UG9pbnRBdExlbmd0aChpKSlbcl0tZSxNYXRoLmFicyhvKTxsKXJldHVybiBhO3Uqbz4wP3A9aTpoPWksZisrfXJldHVybiBhfX0seyIuL21vZCI6NTIyfV0sNTExOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksaT10KCJ0aW55Y29sb3IyIiksYT10KCJjb2xvci1ub3JtYWxpemUiKSxvPXQoIi4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSIpLHM9dCgiLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIikuZGVmYXVsdExpbmUsbD10KCIuL2FycmF5IikuaXNBcnJheU9yVHlwZWRBcnJheSxjPWEocyk7ZnVuY3Rpb24gdSh0LGUpe3ZhciByPXQ7cmV0dXJuIHJbM10qPWUscn1mdW5jdGlvbiBmKHQpe2lmKG4odCkpcmV0dXJuIGM7dmFyIGU9YSh0KTtyZXR1cm4gZS5sZW5ndGg/ZTpjfWZ1bmN0aW9uIGgodCl7cmV0dXJuIG4odCk/dDoxfWUuZXhwb3J0cz17Zm9ybWF0Q29sb3I6ZnVuY3Rpb24odCxlLHIpe3ZhciBuLGkscyxwLGQsbT10LmNvbG9yLGc9bChtKSx2PWwoZSkseT1vLmV4dHJhY3RPcHRzKHQpLHg9W107aWYobj12b2lkIDAhPT15LmNvbG9yc2NhbGU/by5tYWtlQ29sb3JTY2FsZUZ1bmNGcm9tVHJhY2UodCk6ZixpPWc/ZnVuY3Rpb24odCxlKXtyZXR1cm4gdm9pZCAwPT09dFtlXT9jOmEobih0W2VdKSl9OmYscz12P2Z1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PXRbZV0/MTpoKHRbZV0pfTpoLGd8fHYpZm9yKHZhciBiPTA7YjxyO2IrKylwPWkobSxiKSxkPXMoZSxiKSx4W2JdPXUocCxkKTtlbHNlIHg9dShhKG0pLGUpO3JldHVybiB4fSxwYXJzZUNvbG9yU2NhbGU6ZnVuY3Rpb24odCl7dmFyIGU9by5leHRyYWN0T3B0cyh0KSxyPWUuY29sb3JzY2FsZTtyZXR1cm4gZS5yZXZlcnNlc2NhbGUmJihyPW8uZmxpcFNjYWxlKGUuY29sb3JzY2FsZSkpLHIubWFwKChmdW5jdGlvbih0KXt2YXIgZT10WzBdLHI9aSh0WzFdKS50b1JnYigpO3JldHVybntpbmRleDplLHJnYjpbci5yLHIuZyxyLmIsci5hXX19KSl9fX0seyIuLi9jb21wb25lbnRzL2NvbG9yL2F0dHJpYnV0ZXMiOjM2NiwiLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIjozNzksIi4vYXJyYXkiOjQ5NywiY29sb3Itbm9ybWFsaXplIjo4OSwiZmFzdC1pc251bWVyaWMiOjE5MCx0aW55Y29sb3IyOjMxM31dLDUxMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2lkZW50aXR5Iik7ZnVuY3Rpb24gaSh0KXtyZXR1cm5bdF19ZS5leHBvcnRzPXtrZXlGdW46ZnVuY3Rpb24odCl7cmV0dXJuIHQua2V5fSxyZXBlYXQ6aSxkZXNjZW5kOm4sd3JhcDppLHVud3JhcDpmdW5jdGlvbih0KXtyZXR1cm4gdFswXX19fSx7Ii4vaWRlbnRpdHkiOjUxM31dLDUxMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHR9fSx7fV0sNTE0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2lmKCFlKXJldHVybiB0O3ZhciByPTEvTWF0aC5hYnMoZSksbj1yPjE/KHIqdCtyKmUpL3I6dCtlLGk9U3RyaW5nKG4pLmxlbmd0aDtpZihpPjE2KXt2YXIgYT1TdHJpbmcoZSkubGVuZ3RoO2lmKGk+PVN0cmluZyh0KS5sZW5ndGgrYSl7dmFyIG89cGFyc2VGbG9hdChuKS50b1ByZWNpc2lvbigxMik7LTE9PT1vLmluZGV4T2YoImUrIikmJihuPStvKX19cmV0dXJuIG59fSx7fV0sNTE1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoImQzLXRpbWUtZm9ybWF0IikudXRjRm9ybWF0LGE9dCgiZDMtZm9ybWF0IikuZm9ybWF0LG89dCgiZmFzdC1pc251bWVyaWMiKSxzPXQoIi4uL2NvbnN0YW50cy9udW1lcmljYWwiKSxsPXMuRlBfU0FGRSxjPS1sLHU9cy5CQUROVU0sZj1lLmV4cG9ydHM9e307Zi5hZGp1c3RGb3JtYXQ9ZnVuY3Rpb24odCl7cmV0dXJuIXR8fC9eXGRbLl1cZGYvLnRlc3QodCl8fC9bLl1cZCUvLnRlc3QodCk/dDoiMC5mIj09PXQ/In5mIjovXlxkJS8udGVzdCh0KT8ifiUiOi9eXGRzLy50ZXN0KHQpPyJ+cyI6IS9eW34sLjAkXS8udGVzdCh0KSYmL1smZnBzXS8udGVzdCh0KT8ifiIrdDp0fTt2YXIgaD17fTtmLndhcm5CYWRGb3JtYXQ9ZnVuY3Rpb24odCl7dmFyIGU9U3RyaW5nKHQpO2hbZV18fChoW2VdPTEsZi53YXJuKCdlbmNvdW50ZXJlZCBiYWQgZm9ybWF0OiAiJytlKyciJykpfSxmLm5vRm9ybWF0PWZ1bmN0aW9uKHQpe3JldHVybiBTdHJpbmcodCl9LGYubnVtYmVyRm9ybWF0PWZ1bmN0aW9uKHQpe3ZhciBlO3RyeXtlPWEoZi5hZGp1c3RGb3JtYXQodCkpfWNhdGNoKGUpe3JldHVybiBmLndhcm5CYWRGb3JtYXQodCksZi5ub0Zvcm1hdH1yZXR1cm4gZX0sZi5uZXN0ZWRQcm9wZXJ0eT10KCIuL25lc3RlZF9wcm9wZXJ0eSIpLGYua2V5ZWRDb250YWluZXI9dCgiLi9rZXllZF9jb250YWluZXIiKSxmLnJlbGF0aXZlQXR0cj10KCIuL3JlbGF0aXZlX2F0dHIiKSxmLmlzUGxhaW5PYmplY3Q9dCgiLi9pc19wbGFpbl9vYmplY3QiKSxmLnRvTG9nUmFuZ2U9dCgiLi90b19sb2dfcmFuZ2UiKSxmLnJlbGlua1ByaXZhdGVLZXlzPXQoIi4vcmVsaW5rX3ByaXZhdGUiKTt2YXIgcD10KCIuL2FycmF5Iik7Zi5pc1R5cGVkQXJyYXk9cC5pc1R5cGVkQXJyYXksZi5pc0FycmF5T3JUeXBlZEFycmF5PXAuaXNBcnJheU9yVHlwZWRBcnJheSxmLmlzQXJyYXkxRD1wLmlzQXJyYXkxRCxmLmVuc3VyZUFycmF5PXAuZW5zdXJlQXJyYXksZi5jb25jYXQ9cC5jb25jYXQsZi5tYXhSb3dMZW5ndGg9cC5tYXhSb3dMZW5ndGgsZi5taW5Sb3dMZW5ndGg9cC5taW5Sb3dMZW5ndGg7dmFyIGQ9dCgiLi9tb2QiKTtmLm1vZD1kLm1vZCxmLm1vZEhhbGY9ZC5tb2RIYWxmO3ZhciBtPXQoIi4vY29lcmNlIik7Zi52YWxPYmplY3RNZXRhPW0udmFsT2JqZWN0TWV0YSxmLmNvZXJjZT1tLmNvZXJjZSxmLmNvZXJjZTI9bS5jb2VyY2UyLGYuY29lcmNlRm9udD1tLmNvZXJjZUZvbnQsZi5jb2VyY2VQYXR0ZXJuPW0uY29lcmNlUGF0dGVybixmLmNvZXJjZUhvdmVyaW5mbz1tLmNvZXJjZUhvdmVyaW5mbyxmLmNvZXJjZVNlbGVjdGlvbk1hcmtlck9wYWNpdHk9bS5jb2VyY2VTZWxlY3Rpb25NYXJrZXJPcGFjaXR5LGYudmFsaWRhdGU9bS52YWxpZGF0ZTt2YXIgZz10KCIuL2RhdGVzIik7Zi5kYXRlVGltZTJtcz1nLmRhdGVUaW1lMm1zLGYuaXNEYXRlVGltZT1nLmlzRGF0ZVRpbWUsZi5tczJEYXRlVGltZT1nLm1zMkRhdGVUaW1lLGYubXMyRGF0ZVRpbWVMb2NhbD1nLm1zMkRhdGVUaW1lTG9jYWwsZi5jbGVhbkRhdGU9Zy5jbGVhbkRhdGUsZi5pc0pTRGF0ZT1nLmlzSlNEYXRlLGYuZm9ybWF0RGF0ZT1nLmZvcm1hdERhdGUsZi5pbmNyZW1lbnRNb250aD1nLmluY3JlbWVudE1vbnRoLGYuZGF0ZVRpY2swPWcuZGF0ZVRpY2swLGYuZGZsdFJhbmdlPWcuZGZsdFJhbmdlLGYuZmluZEV4YWN0RGF0ZXM9Zy5maW5kRXhhY3REYXRlcyxmLk1JTl9NUz1nLk1JTl9NUyxmLk1BWF9NUz1nLk1BWF9NUzt2YXIgdj10KCIuL3NlYXJjaCIpO2YuZmluZEJpbj12LmZpbmRCaW4sZi5zb3J0ZXJBc2M9di5zb3J0ZXJBc2MsZi5zb3J0ZXJEZXM9di5zb3J0ZXJEZXMsZi5kaXN0aW5jdFZhbHM9di5kaXN0aW5jdFZhbHMsZi5yb3VuZFVwPXYucm91bmRVcCxmLnNvcnQ9di5zb3J0LGYuZmluZEluZGV4T2ZNaW49di5maW5kSW5kZXhPZk1pbixmLnNvcnRPYmplY3RLZXlzPXQoIi4vc29ydF9vYmplY3Rfa2V5cyIpO3ZhciB5PXQoIi4vc3RhdHMiKTtmLmFnZ051bXM9eS5hZ2dOdW1zLGYubGVuPXkubGVuLGYubWVhbj15Lm1lYW4sZi5tZWRpYW49eS5tZWRpYW4sZi5taWRSYW5nZT15Lm1pZFJhbmdlLGYudmFyaWFuY2U9eS52YXJpYW5jZSxmLnN0ZGV2PXkuc3RkZXYsZi5pbnRlcnA9eS5pbnRlcnA7dmFyIHg9dCgiLi9tYXRyaXgiKTtmLmluaXQyZEFycmF5PXguaW5pdDJkQXJyYXksZi50cmFuc3Bvc2VSYWdnZWQ9eC50cmFuc3Bvc2VSYWdnZWQsZi5kb3Q9eC5kb3QsZi50cmFuc2xhdGlvbk1hdHJpeD14LnRyYW5zbGF0aW9uTWF0cml4LGYucm90YXRpb25NYXRyaXg9eC5yb3RhdGlvbk1hdHJpeCxmLnJvdGF0aW9uWFlNYXRyaXg9eC5yb3RhdGlvblhZTWF0cml4LGYuYXBwbHkzRFRyYW5zZm9ybT14LmFwcGx5M0RUcmFuc2Zvcm0sZi5hcHBseTJEVHJhbnNmb3JtPXguYXBwbHkyRFRyYW5zZm9ybSxmLmFwcGx5MkRUcmFuc2Zvcm0yPXguYXBwbHkyRFRyYW5zZm9ybTIsZi5jb252ZXJ0Q3NzTWF0cml4PXguY29udmVydENzc01hdHJpeCxmLmludmVyc2VUcmFuc2Zvcm1NYXRyaXg9eC5pbnZlcnNlVHJhbnNmb3JtTWF0cml4O3ZhciBiPXQoIi4vYW5nbGVzIik7Zi5kZWcycmFkPWIuZGVnMnJhZCxmLnJhZDJkZWc9Yi5yYWQyZGVnLGYuYW5nbGVEZWx0YT1iLmFuZ2xlRGVsdGEsZi5hbmdsZURpc3Q9Yi5hbmdsZURpc3QsZi5pc0Z1bGxDaXJjbGU9Yi5pc0Z1bGxDaXJjbGUsZi5pc0FuZ2xlSW5zaWRlU2VjdG9yPWIuaXNBbmdsZUluc2lkZVNlY3RvcixmLmlzUHRJbnNpZGVTZWN0b3I9Yi5pc1B0SW5zaWRlU2VjdG9yLGYucGF0aEFyYz1iLnBhdGhBcmMsZi5wYXRoU2VjdG9yPWIucGF0aFNlY3RvcixmLnBhdGhBbm51bHVzPWIucGF0aEFubnVsdXM7dmFyIF89dCgiLi9hbmNob3JfdXRpbHMiKTtmLmlzTGVmdEFuY2hvcj1fLmlzTGVmdEFuY2hvcixmLmlzQ2VudGVyQW5jaG9yPV8uaXNDZW50ZXJBbmNob3IsZi5pc1JpZ2h0QW5jaG9yPV8uaXNSaWdodEFuY2hvcixmLmlzVG9wQW5jaG9yPV8uaXNUb3BBbmNob3IsZi5pc01pZGRsZUFuY2hvcj1fLmlzTWlkZGxlQW5jaG9yLGYuaXNCb3R0b21BbmNob3I9Xy5pc0JvdHRvbUFuY2hvcjt2YXIgdz10KCIuL2dlb21ldHJ5MmQiKTtmLnNlZ21lbnRzSW50ZXJzZWN0PXcuc2VnbWVudHNJbnRlcnNlY3QsZi5zZWdtZW50RGlzdGFuY2U9dy5zZWdtZW50RGlzdGFuY2UsZi5nZXRUZXh0TG9jYXRpb249dy5nZXRUZXh0TG9jYXRpb24sZi5jbGVhckxvY2F0aW9uQ2FjaGU9dy5jbGVhckxvY2F0aW9uQ2FjaGUsZi5nZXRWaXNpYmxlU2VnbWVudD13LmdldFZpc2libGVTZWdtZW50LGYuZmluZFBvaW50T25QYXRoPXcuZmluZFBvaW50T25QYXRoO3ZhciBUPXQoIi4vZXh0ZW5kIik7Zi5leHRlbmRGbGF0PVQuZXh0ZW5kRmxhdCxmLmV4dGVuZERlZXA9VC5leHRlbmREZWVwLGYuZXh0ZW5kRGVlcEFsbD1ULmV4dGVuZERlZXBBbGwsZi5leHRlbmREZWVwTm9BcnJheXM9VC5leHRlbmREZWVwTm9BcnJheXM7dmFyIGs9dCgiLi9sb2dnZXJzIik7Zi5sb2c9ay5sb2csZi53YXJuPWsud2FybixmLmVycm9yPWsuZXJyb3I7dmFyIEE9dCgiLi9yZWdleCIpO2YuY291bnRlclJlZ2V4PUEuY291bnRlcjt2YXIgTT10KCIuL3Rocm90dGxlIik7Zi50aHJvdHRsZT1NLnRocm90dGxlLGYudGhyb3R0bGVEb25lPU0uZG9uZSxmLmNsZWFyVGhyb3R0bGU9TS5jbGVhcjt2YXIgUz10KCIuL2RvbSIpO2Z1bmN0aW9uIEUodCl7dmFyIGU9e307Zm9yKHZhciByIGluIHQpZm9yKHZhciBuPXRbcl0saT0wO2k8bi5sZW5ndGg7aSsrKWVbbltpXV09K3I7cmV0dXJuIGV9Zi5nZXRHcmFwaERpdj1TLmdldEdyYXBoRGl2LGYuaXNQbG90RGl2PVMuaXNQbG90RGl2LGYucmVtb3ZlRWxlbWVudD1TLnJlbW92ZUVsZW1lbnQsZi5hZGRTdHlsZVJ1bGU9Uy5hZGRTdHlsZVJ1bGUsZi5hZGRSZWxhdGVkU3R5bGVSdWxlPVMuYWRkUmVsYXRlZFN0eWxlUnVsZSxmLmRlbGV0ZVJlbGF0ZWRTdHlsZVJ1bGU9Uy5kZWxldGVSZWxhdGVkU3R5bGVSdWxlLGYuZ2V0RnVsbFRyYW5zZm9ybU1hdHJpeD1TLmdldEZ1bGxUcmFuc2Zvcm1NYXRyaXgsZi5nZXRFbGVtZW50VHJhbnNmb3JtTWF0cml4PVMuZ2V0RWxlbWVudFRyYW5zZm9ybU1hdHJpeCxmLmdldEVsZW1lbnRBbmRBbmNlc3RvcnM9Uy5nZXRFbGVtZW50QW5kQW5jZXN0b3JzLGYuZXF1YWxEb21SZWN0cz1TLmVxdWFsRG9tUmVjdHMsZi5jbGVhclJlc3BvbnNpdmU9dCgiLi9jbGVhcl9yZXNwb25zaXZlIiksZi5wcmVzZXJ2ZURyYXdpbmdCdWZmZXI9dCgiLi9wcmVzZXJ2ZV9kcmF3aW5nX2J1ZmZlciIpLGYubWFrZVRyYWNlR3JvdXBzPXQoIi4vbWFrZV90cmFjZV9ncm91cHMiKSxmLl89dCgiLi9sb2NhbGl6ZSIpLGYubm90aWZpZXI9dCgiLi9ub3RpZmllciIpLGYuZmlsdGVyVW5pcXVlPXQoIi4vZmlsdGVyX3VuaXF1ZSIpLGYuZmlsdGVyVmlzaWJsZT10KCIuL2ZpbHRlcl92aXNpYmxlIiksZi5wdXNoVW5pcXVlPXQoIi4vcHVzaF91bmlxdWUiKSxmLmluY3JlbWVudD10KCIuL2luY3JlbWVudCIpLGYuY2xlYW5OdW1iZXI9dCgiLi9jbGVhbl9udW1iZXIiKSxmLmVuc3VyZU51bWJlcj1mdW5jdGlvbih0KXtyZXR1cm4gbyh0KT8odD1OdW1iZXIodCkpPmx8fHQ8Yz91OnQ6dX0sZi5pc0luZGV4PWZ1bmN0aW9uKHQsZSl7cmV0dXJuISh2b2lkIDAhPT1lJiZ0Pj1lKSYmKG8odCkmJnQ+PTAmJnQlMT09MCl9LGYubm9vcD10KCIuL25vb3AiKSxmLmlkZW50aXR5PXQoIi4vaWRlbnRpdHkiKSxmLnJlcGVhdD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1uZXcgQXJyYXkoZSksbj0wO248ZTtuKyspcltuXT10O3JldHVybiByfSxmLnN3YXBBdHRycz1mdW5jdGlvbih0LGUscixuKXtyfHwocj0ieCIpLG58fChuPSJ5Iik7Zm9yKHZhciBpPTA7aTxlLmxlbmd0aDtpKyspe3ZhciBhPWVbaV0sbz1mLm5lc3RlZFByb3BlcnR5KHQsYS5yZXBsYWNlKCI/IixyKSkscz1mLm5lc3RlZFByb3BlcnR5KHQsYS5yZXBsYWNlKCI/IixuKSksbD1vLmdldCgpO28uc2V0KHMuZ2V0KCkpLHMuc2V0KGwpfX0sZi5yYWlzZVRvVG9wPWZ1bmN0aW9uKHQpe3QucGFyZW50Tm9kZS5hcHBlbmRDaGlsZCh0KX0sZi5jYW5jZWxUcmFuc2l0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiB0LnRyYW5zaXRpb24oKS5kdXJhdGlvbigwKX0sZi5jb25zdHJhaW49ZnVuY3Rpb24odCxlLHIpe3JldHVybiBlPnI/TWF0aC5tYXgocixNYXRoLm1pbihlLHQpKTpNYXRoLm1heChlLE1hdGgubWluKHIsdCkpfSxmLmJCb3hJbnRlcnNlY3Q9ZnVuY3Rpb24odCxlLHIpe3JldHVybiByPXJ8fDAsdC5sZWZ0PD1lLnJpZ2h0K3ImJmUubGVmdDw9dC5yaWdodCtyJiZ0LnRvcDw9ZS5ib3R0b20rciYmZS50b3A8PXQuYm90dG9tK3J9LGYuc2ltcGxlTWFwPWZ1bmN0aW9uKHQsZSxyLG4saSl7Zm9yKHZhciBhPXQubGVuZ3RoLG89bmV3IEFycmF5KGEpLHM9MDtzPGE7cysrKW9bc109ZSh0W3NdLHIsbixpKTtyZXR1cm4gb30sZi5yYW5kc3RyPWZ1bmN0aW9uIHQoZSxyLG4saSl7aWYobnx8KG49MTYpLHZvaWQgMD09PXImJihyPTI0KSxyPD0wKXJldHVybiIwIjt2YXIgYSxvLHM9TWF0aC5sb2coTWF0aC5wb3coMixyKSkvTWF0aC5sb2cobiksbD0iIjtmb3IoYT0yO3M9PT0xLzA7YSo9MilzPU1hdGgubG9nKE1hdGgucG93KDIsci9hKSkvTWF0aC5sb2cobikqYTt2YXIgYz1zLU1hdGguZmxvb3Iocyk7Zm9yKGE9MDthPE1hdGguZmxvb3Iocyk7YSsrKWw9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKm4pLnRvU3RyaW5nKG4pK2w7YyYmKG89TWF0aC5wb3cobixjKSxsPU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpvKS50b1N0cmluZyhuKStsKTt2YXIgdT1wYXJzZUludChsLG4pO3JldHVybiBlJiZlW2xdfHx1IT09MS8wJiZ1Pj1NYXRoLnBvdygyLHIpP2k+MTA/KGYud2FybigicmFuZHN0ciBmYWlsZWQgdW5pcXVlbmVzcyIpLGwpOnQoZSxyLG4sKGl8fDApKzEpOmx9LGYuT3B0aW9uQ29udHJvbD1mdW5jdGlvbih0LGUpe3R8fCh0PXt9KSxlfHwoZT0ib3B0Iik7dmFyIHI9e29wdGlvbkxpc3Q6W10sX25ld29wdGlvbjpmdW5jdGlvbihuKXtuW2VdPXQscltuLm5hbWVdPW4sci5vcHRpb25MaXN0LnB1c2gobil9fTtyZXR1cm4gclsiXyIrZV09dCxyfSxmLnNtb290aD1mdW5jdGlvbih0LGUpe2lmKChlPU1hdGgucm91bmQoZSl8fDApPDIpcmV0dXJuIHQ7dmFyIHIsbixpLGEsbz10Lmxlbmd0aCxzPTIqbyxsPTIqZS0xLGM9bmV3IEFycmF5KGwpLHU9bmV3IEFycmF5KG8pO2ZvcihyPTA7cjxsO3IrKyljW3JdPSgxLU1hdGguY29zKE1hdGguUEkqKHIrMSkvZSkpLygyKmUpO2ZvcihyPTA7cjxvO3IrKyl7Zm9yKGE9MCxuPTA7bjxsO24rKykoaT1yK24rMS1lKTwtbz9pLT1zKk1hdGgucm91bmQoaS9zKTppPj1zJiYoaS09cypNYXRoLmZsb29yKGkvcykpLGk8MD9pPS0xLWk6aT49byYmKGk9cy0xLWkpLGErPXRbaV0qY1tuXTt1W3JdPWF9cmV0dXJuIHV9LGYuc3luY09yQXN5bmM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuO2Z1bmN0aW9uIGkoKXtyZXR1cm4gZi5zeW5jT3JBc3luYyh0LGUscil9Zm9yKDt0Lmxlbmd0aDspaWYoKG49KDAsdC5zcGxpY2UoMCwxKVswXSkoZSkpJiZuLnRoZW4pcmV0dXJuIG4udGhlbihpKTtyZXR1cm4gciYmcihlKX0sZi5zdHJpcFRyYWlsaW5nU2xhc2g9ZnVuY3Rpb24odCl7cmV0dXJuIi8iPT09dC5zdWJzdHIoLTEpP3Quc3Vic3RyKDAsdC5sZW5ndGgtMSk6dH0sZi5ub25lT3JBbGw9ZnVuY3Rpb24odCxlLHIpe2lmKHQpe3ZhciBuLGk9ITEsYT0hMDtmb3Iobj0wO248ci5sZW5ndGg7bisrKW51bGwhPXRbcltuXV0/aT0hMDphPSExO2lmKGkmJiFhKWZvcihuPTA7bjxyLmxlbmd0aDtuKyspdFtyW25dXT1lW3Jbbl1dfX0sZi5tZXJnZUFycmF5PWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPSJmdW5jdGlvbiI9PXR5cGVvZiBuO2lmKGYuaXNBcnJheU9yVHlwZWRBcnJheSh0KSlmb3IodmFyIGE9TWF0aC5taW4odC5sZW5ndGgsZS5sZW5ndGgpLG89MDtvPGE7bysrKXt2YXIgcz10W29dO2Vbb11bcl09aT9uKHMpOnN9fSxmLm1lcmdlQXJyYXlDYXN0UG9zaXRpdmU9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBmLm1lcmdlQXJyYXkodCxlLHIsKGZ1bmN0aW9uKHQpe3ZhciBlPSt0O3JldHVybiBpc0Zpbml0ZShlKSYmZT4wP2U6MH0pKX0sZi5maWxsQXJyYXk9ZnVuY3Rpb24odCxlLHIsbil7aWYobj1ufHxmLmlkZW50aXR5LGYuaXNBcnJheU9yVHlwZWRBcnJheSh0KSlmb3IodmFyIGk9MDtpPGUubGVuZ3RoO2krKyllW2ldW3JdPW4odFtpXSl9LGYuY2FzdE9wdGlvbj1mdW5jdGlvbih0LGUscixuKXtuPW58fGYuaWRlbnRpdHk7dmFyIGk9Zi5uZXN0ZWRQcm9wZXJ0eSh0LHIpLmdldCgpO3JldHVybiBmLmlzQXJyYXlPclR5cGVkQXJyYXkoaSk/QXJyYXkuaXNBcnJheShlKSYmZi5pc0FycmF5T3JUeXBlZEFycmF5KGlbZVswXV0pP24oaVtlWzBdXVtlWzFdXSk6bihpW2VdKTppfSxmLmV4dHJhY3RPcHRpb249ZnVuY3Rpb24odCxlLHIsbil7aWYociBpbiB0KXJldHVybiB0W3JdO3ZhciBpPWYubmVzdGVkUHJvcGVydHkoZSxuKS5nZXQoKTtyZXR1cm4gQXJyYXkuaXNBcnJheShpKT92b2lkIDA6aX0sZi50YWdTZWxlY3RlZD1mdW5jdGlvbih0LGUscil7dmFyIG4saSxhPWUuc2VsZWN0ZWRwb2ludHMsbz1lLl9pbmRleFRvUG9pbnRzO28mJihuPUUobykpO2Zvcih2YXIgcz0wO3M8YS5sZW5ndGg7cysrKXt2YXIgbD1hW3NdO2lmKGYuaXNJbmRleChsKXx8Zi5pc0FycmF5T3JUeXBlZEFycmF5KGwpJiZmLmlzSW5kZXgobFswXSkmJmYuaXNJbmRleChsWzFdKSl7dmFyIGM9bj9uW2xdOmwsdT1yP3JbY106Yzt2b2lkIDAhPT0oaT11KSYmaTx0Lmxlbmd0aCYmKHRbdV0uc2VsZWN0ZWQ9MSl9fX0sZi5zZWxJbmRpY2VzMnNlbFBvaW50cz1mdW5jdGlvbih0KXt2YXIgZT10LnNlbGVjdGVkcG9pbnRzLHI9dC5faW5kZXhUb1BvaW50cztpZihyKXtmb3IodmFyIG49RShyKSxpPVtdLGE9MDthPGUubGVuZ3RoO2ErKyl7dmFyIG89ZVthXTtpZihmLmlzSW5kZXgobykpe3ZhciBzPW5bb107Zi5pc0luZGV4KHMpJiZpLnB1c2gocyl9fXJldHVybiBpfXJldHVybiBlfSxmLmdldFRhcmdldEFycmF5PWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS50YXJnZXQ7aWYoInN0cmluZyI9PXR5cGVvZiByJiZyKXt2YXIgbj1mLm5lc3RlZFByb3BlcnR5KHQscikuZ2V0KCk7cmV0dXJuISFBcnJheS5pc0FycmF5KG4pJiZufXJldHVybiEhQXJyYXkuaXNBcnJheShyKSYmcn0sZi5taW5FeHRlbmQ9ZnVuY3Rpb24odCxlKXt2YXIgcj17fTsib2JqZWN0IiE9dHlwZW9mIGUmJihlPXt9KTt2YXIgbixpLGEsbz1PYmplY3Qua2V5cyh0KTtmb3Iobj0wO248by5sZW5ndGg7bisrKWE9dFtpPW9bbl1dLCJfIiE9PWkuY2hhckF0KDApJiYiZnVuY3Rpb24iIT10eXBlb2YgYSYmKCJtb2R1bGUiPT09aT9yW2ldPWE6QXJyYXkuaXNBcnJheShhKT9yW2ldPSJjb2xvcnNjYWxlIj09PWk/YS5zbGljZSgpOmEuc2xpY2UoMCwzKTpmLmlzVHlwZWRBcnJheShhKT9yW2ldPWEuc3ViYXJyYXkoMCwzKTpyW2ldPWEmJiJvYmplY3QiPT10eXBlb2YgYT9mLm1pbkV4dGVuZCh0W2ldLGVbaV0pOmEpO2ZvcihvPU9iamVjdC5rZXlzKGUpLG49MDtuPG8ubGVuZ3RoO24rKykib2JqZWN0Ij09dHlwZW9mKGE9ZVtpPW9bbl1dKSYmaSBpbiByJiYib2JqZWN0Ij09dHlwZW9mIHJbaV18fChyW2ldPWEpO3JldHVybiByfSxmLnRpdGxlQ2FzZT1mdW5jdGlvbih0KXtyZXR1cm4gdC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSt0LnN1YnN0cigxKX0sZi5jb250YWluc0FueT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKWlmKC0xIT09dC5pbmRleE9mKGVbcl0pKXJldHVybiEwO3JldHVybiExfSxmLmlzSUU9ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09d2luZG93Lm5hdmlnYXRvci5tc1NhdmVCbG9ifTt2YXIgTD0vVmVyc2lvblwvW1xkXC5dKy4qU2FmYXJpLztmLmlzU2FmYXJpPWZ1bmN0aW9uKCl7cmV0dXJuIEwudGVzdCh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudCl9O3ZhciBDPS9pUGFkfGlQaG9uZXxpUG9kLztmLmlzSU9TPWZ1bmN0aW9uKCl7cmV0dXJuIEMudGVzdCh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudCl9O3ZhciBQPS9GaXJlZm94XC8oXGQrKVwuXGQrLztmLmdldEZpcmVmb3hWZXJzaW9uPWZ1bmN0aW9uKCl7dmFyIHQ9UC5leGVjKHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50KTtpZih0JiYyPT09dC5sZW5ndGgpe3ZhciBlPXBhcnNlSW50KHRbMV0pO2lmKCFpc05hTihlKSlyZXR1cm4gZX1yZXR1cm4gbnVsbH0sZi5pc0QzU2VsZWN0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiB0IGluc3RhbmNlb2Ygbi5zZWxlY3Rpb259LGYuZW5zdXJlU2luZ2xlPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPXQuc2VsZWN0KGUrKHI/Ii4iK3I6IiIpKTtpZihpLnNpemUoKSlyZXR1cm4gaTt2YXIgYT10LmFwcGVuZChlKTtyZXR1cm4gciYmYS5jbGFzc2VkKHIsITApLG4mJmEuY2FsbChuKSxhfSxmLmVuc3VyZVNpbmdsZUJ5SWQ9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9dC5zZWxlY3QoZSsiIyIrcik7aWYoaS5zaXplKCkpcmV0dXJuIGk7dmFyIGE9dC5hcHBlbmQoZSkuYXR0cigiaWQiLHIpO3JldHVybiBuJiZhLmNhbGwobiksYX0sZi5vYmplY3RGcm9tUGF0aD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcixuPXQuc3BsaXQoIi4iKSxpPXI9e30sYT0wO2E8bi5sZW5ndGg7YSsrKXt2YXIgbz1uW2FdLHM9bnVsbCxsPW5bYV0ubWF0Y2goLyguKilcWyhbMC05XSspXF0vKTtsPyhvPWxbMV0scz1sWzJdLHI9cltvXT1bXSxhPT09bi5sZW5ndGgtMT9yW3NdPWU6cltzXT17fSxyPXJbc10pOihhPT09bi5sZW5ndGgtMT9yW29dPWU6cltvXT17fSxyPXJbb10pfXJldHVybiBpfTt2YXIgST0vXihbXlxbXC5dKylcLiguKyk/LyxPPS9eKFteXC5dKylcWyhbMC05XSspXF0oXC4pPyguKyk/LztmLmV4cGFuZE9iamVjdFBhdGhzPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixpLGEsbyxzO2lmKCJvYmplY3QiPT10eXBlb2YgdCYmIUFycmF5LmlzQXJyYXkodCkpZm9yKHIgaW4gdCl0Lmhhc093blByb3BlcnR5KHIpJiYoKGU9ci5tYXRjaChJKSk/KGk9dFtyXSxuPWVbMV0sZGVsZXRlIHRbcl0sdFtuXT1mLmV4dGVuZERlZXBOb0FycmF5cyh0W25dfHx7fSxmLm9iamVjdEZyb21QYXRoKHIsZi5leHBhbmRPYmplY3RQYXRocyhpKSlbbl0pKTooZT1yLm1hdGNoKE8pKT8oaT10W3JdLG49ZVsxXSxhPXBhcnNlSW50KGVbMl0pLGRlbGV0ZSB0W3JdLHRbbl09dFtuXXx8W10sIi4iPT09ZVszXT8ocz1lWzRdLG89dFtuXVthXT10W25dW2FdfHx7fSxmLmV4dGVuZERlZXBOb0FycmF5cyhvLGYub2JqZWN0RnJvbVBhdGgocyxmLmV4cGFuZE9iamVjdFBhdGhzKGkpKSkpOnRbbl1bYV09Zi5leHBhbmRPYmplY3RQYXRocyhpKSk6dFtyXT1mLmV4cGFuZE9iamVjdFBhdGhzKHRbcl0pKTtyZXR1cm4gdH0sZi5udW1TZXBhcmF0ZT1mdW5jdGlvbih0LGUscil7aWYocnx8KHI9ITEpLCJzdHJpbmciIT10eXBlb2YgZXx8MD09PWUubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiU2VwYXJhdG9yIHN0cmluZyByZXF1aXJlZCBmb3IgZm9ybWF0dGluZyEiKTsibnVtYmVyIj09dHlwZW9mIHQmJih0PVN0cmluZyh0KSk7dmFyIG49LyhcZCspKFxkezN9KS8saT1lLmNoYXJBdCgwKSxhPWUuY2hhckF0KDEpLG89dC5zcGxpdCgiLiIpLHM9b1swXSxsPW8ubGVuZ3RoPjE/aStvWzFdOiIiO2lmKGEmJihvLmxlbmd0aD4xfHxzLmxlbmd0aD40fHxyKSlmb3IoO24udGVzdChzKTspcz1zLnJlcGxhY2UobiwiJDEiK2ErIiQyIik7cmV0dXJuIHMrbH0sZi5URU1QTEFURV9TVFJJTkdfUkVHRVg9LyV7KFteXHMle306XSopKFs6fFx8XVtefV0qKT99L2c7dmFyIHo9L15cdyokLztmLnRlbXBsYXRlU3RyaW5nPWZ1bmN0aW9uKHQsZSl7dmFyIHI9e307cmV0dXJuIHQucmVwbGFjZShmLlRFTVBMQVRFX1NUUklOR19SRUdFWCwoZnVuY3Rpb24odCxuKXt2YXIgaTtyZXR1cm4gei50ZXN0KG4pP2k9ZVtuXToocltuXT1yW25dfHxmLm5lc3RlZFByb3BlcnR5KGUsbikuZ2V0LGk9cltuXSgpKSxmLmlzVmFsaWRUZXh0VmFsdWUoaSk/aToiIn0pKX07dmFyIEQ9e21heDoxMCxjb3VudDowLG5hbWU6ImhvdmVydGVtcGxhdGUifTtmLmhvdmVydGVtcGxhdGVTdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gQi5hcHBseShELGFyZ3VtZW50cyl9O3ZhciBSPXttYXg6MTAsY291bnQ6MCxuYW1lOiJ0ZXh0dGVtcGxhdGUifTtmLnRleHR0ZW1wbGF0ZVN0cmluZz1mdW5jdGlvbigpe3JldHVybiBCLmFwcGx5KFIsYXJndW1lbnRzKX07dmFyIEY9L15bOnxcfF0vO2Z1bmN0aW9uIEIodCxlLHIpe3ZhciBuPXRoaXMsYT1hcmd1bWVudHM7ZXx8KGU9e30pO3ZhciBvPXt9O3JldHVybiB0LnJlcGxhY2UoZi5URU1QTEFURV9TVFJJTkdfUkVHRVgsKGZ1bmN0aW9uKHQscyxsKXt2YXIgYyx1LGgscD0iX3hvdGhlciI9PT1zfHwiX3lvdGhlciI9PT1zLGQ9Il94b3RoZXJfIj09PXN8fCJfeW90aGVyXyI9PT1zLG09InhvdGhlcl8iPT09c3x8InlvdGhlcl8iPT09cyxnPSJ4b3RoZXIiPT09c3x8InlvdGhlciI9PT1zfHxwfHxtfHxkLHY9cztpZigocHx8ZCkmJih2PXYuc3Vic3RyaW5nKDEpKSwobXx8ZCkmJih2PXYuc3Vic3RyaW5nKDAsdi5sZW5ndGgtMSkpLGcpe2lmKHZvaWQgMD09PShjPWVbdl0pKXJldHVybiIifWVsc2UgZm9yKGg9MztoPGEubGVuZ3RoO2grKylpZih1PWFbaF0pe2lmKHUuaGFzT3duUHJvcGVydHkodikpe2M9dVt2XTticmVha31pZih6LnRlc3Qodil8fChjPWYubmVzdGVkUHJvcGVydHkodSx2KS5nZXQoKSwoYz1vW3ZdfHxmLm5lc3RlZFByb3BlcnR5KHUsdikuZ2V0KCkpJiYob1t2XT1jKSksdm9pZCAwIT09YylicmVha31pZih2b2lkIDA9PT1jJiZuKXJldHVybiBuLmNvdW50PG4ubWF4JiYoZi53YXJuKCJWYXJpYWJsZSAnIit2KyInIGluICIrbi5uYW1lKyIgY291bGQgbm90IGJlIGZvdW5kISIpLGM9dCksbi5jb3VudD09PW4ubWF4JiZmLndhcm4oIlRvbyBtYW55ICIrbi5uYW1lKyIgd2FybmluZ3MgLSBhZGRpdGlvbmFsIHdhcm5pbmdzIHdpbGwgYmUgc3VwcHJlc3NlZCIpLG4uY291bnQrKyx0O2lmKGwpe3ZhciB5O2lmKCI6Ij09PWxbMF0mJihjPSh5PXI/ci5udW1iZXJGb3JtYXQ6Zi5udW1iZXJGb3JtYXQpKGwucmVwbGFjZShGLCIiKSkoYykpLCJ8Ij09PWxbMF0pe3k9cj9yLnRpbWVGb3JtYXQ6aTt2YXIgeD1mLmRhdGVUaW1lMm1zKGMpO2M9Zi5mb3JtYXREYXRlKHgsbC5yZXBsYWNlKEYsIiIpLCExLHkpfX1lbHNle3ZhciBiPXYrIkxhYmVsIjtlLmhhc093blByb3BlcnR5KGIpJiYoYz1lW2JdKX1yZXR1cm4gZyYmKGM9IigiK2MrIikiLChwfHxkKSYmKGM9IiAiK2MpLChtfHxkKSYmKGMrPSIgIikpLGN9KSl9Zi5zdWJwbG90U29ydD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1NYXRoLm1pbih0Lmxlbmd0aCxlLmxlbmd0aCkrMSxuPTAsaT0wLGE9MDthPHI7YSsrKXt2YXIgbz10LmNoYXJDb2RlQXQoYSl8fDAscz1lLmNoYXJDb2RlQXQoYSl8fDAsbD1vPj00OCYmbzw9NTcsYz1zPj00OCYmczw9NTc7aWYobCYmKG49MTAqbitvLTQ4KSxjJiYoaT0xMCppK3MtNDgpLCFsfHwhYyl7aWYobiE9PWkpcmV0dXJuIG4taTtpZihvIT09cylyZXR1cm4gby1zfX1yZXR1cm4gaS1ufTt2YXIgTj0yZTk7Zi5zZWVkUHNldWRvUmFuZG9tPWZ1bmN0aW9uKCl7Tj0yZTl9LGYucHNldWRvUmFuZG9tPWZ1bmN0aW9uKCl7dmFyIHQ9TjtyZXR1cm4gTj0oNjkwNjkqTisxKSU0Mjk0OTY3Mjk2LE1hdGguYWJzKE4tdCk8NDI5NDk2NzI5P2YucHNldWRvUmFuZG9tKCk6Ti80Mjk0OTY3Mjk2fSxmLmZpbGxUZXh0PWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1BcnJheS5pc0FycmF5KHIpP2Z1bmN0aW9uKHQpe3IucHVzaCh0KX06ZnVuY3Rpb24odCl7ci50ZXh0PXR9LGk9Zi5leHRyYWN0T3B0aW9uKHQsZSwiaHR4IiwiaG92ZXJ0ZXh0Iik7aWYoZi5pc1ZhbGlkVGV4dFZhbHVlKGkpKXJldHVybiBuKGkpO3ZhciBhPWYuZXh0cmFjdE9wdGlvbih0LGUsInR4IiwidGV4dCIpO3JldHVybiBmLmlzVmFsaWRUZXh0VmFsdWUoYSk/bihhKTp2b2lkIDB9LGYuaXNWYWxpZFRleHRWYWx1ZT1mdW5jdGlvbih0KXtyZXR1cm4gdHx8MD09PXR9LGYuZm9ybWF0UGVyY2VudD1mdW5jdGlvbih0LGUpe2U9ZXx8MDtmb3IodmFyIHI9KE1hdGgucm91bmQoMTAwKnQqTWF0aC5wb3coMTAsZSkpKk1hdGgucG93KC4xLGUpKS50b0ZpeGVkKGUpKyIlIixuPTA7bjxlO24rKyktMSE9PXIuaW5kZXhPZigiLiIpJiYocj0ocj1yLnJlcGxhY2UoIjAlIiwiJSIpKS5yZXBsYWNlKCIuJSIsIiUiKSk7cmV0dXJuIHJ9LGYuaXNIaWRkZW49ZnVuY3Rpb24odCl7dmFyIGU9d2luZG93LmdldENvbXB1dGVkU3R5bGUodCkuZGlzcGxheTtyZXR1cm4hZXx8Im5vbmUiPT09ZX0sZi5zdHJUcmFuc2xhdGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdHx8ZT8idHJhbnNsYXRlKCIrdCsiLCIrZSsiKSI6IiJ9LGYuc3RyUm90YXRlPWZ1bmN0aW9uKHQpe3JldHVybiB0PyJyb3RhdGUoIit0KyIpIjoiIn0sZi5zdHJTY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gMSE9PXQ/InNjYWxlKCIrdCsiKSI6IiJ9LGYuZ2V0VGV4dFRyYW5zZm9ybT1mdW5jdGlvbih0KXt2YXIgZT10Lm5vQ2VudGVyLHI9dC50ZXh0WCxuPXQudGV4dFksaT10LnRhcmdldFgsYT10LnRhcmdldFksbz10LmFuY2hvclh8fDAscz10LmFuY2hvcll8fDAsbD10LnJvdGF0ZSxjPXQuc2NhbGU7cmV0dXJuIGM/Yz4xJiYoYz0xKTpjPTAsZi5zdHJUcmFuc2xhdGUoaS1jKihyK28pLGEtYyoobitzKSkrZi5zdHJTY2FsZShjKSsobD8icm90YXRlKCIrbCsoZT8iIjoiICIrcisiICIrbikrIikiOiIiKX0sZi5lbnN1cmVVbmlmb3JtRm9udFNpemU9ZnVuY3Rpb24odCxlKXt2YXIgcj1mLmV4dGVuZEZsYXQoe30sZSk7cmV0dXJuIHIuc2l6ZT1NYXRoLm1heChlLnNpemUsdC5fZnVsbExheW91dC51bmlmb3JtdGV4dC5taW5zaXplfHwwKSxyfSxmLmpvaW4yPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10Lmxlbmd0aDtyZXR1cm4gbj4xP3Quc2xpY2UoMCwtMSkuam9pbihlKStyK3Rbbi0xXTp0LmpvaW4oZSl9LGYuYmlnRm9udD1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCgxLjIqdCl9O3ZhciBqPWYuZ2V0RmlyZWZveFZlcnNpb24oKSxVPW51bGwhPT1qJiZqPDg2O2YuZ2V0UG9zaXRpb25Gcm9tRDNFdmVudD1mdW5jdGlvbigpe3JldHVybiBVP1tuLmV2ZW50LmxheWVyWCxuLmV2ZW50LmxheWVyWV06W24uZXZlbnQub2Zmc2V0WCxuLmV2ZW50Lm9mZnNldFldfX0seyIuLi9jb25zdGFudHMvbnVtZXJpY2FsIjo0OTEsIi4vYW5jaG9yX3V0aWxzIjo0OTUsIi4vYW5nbGVzIjo0OTYsIi4vYXJyYXkiOjQ5NywiLi9jbGVhbl9udW1iZXIiOjQ5OCwiLi9jbGVhcl9yZXNwb25zaXZlIjo1MDAsIi4vY29lcmNlIjo1MDEsIi4vZGF0ZXMiOjUwMiwiLi9kb20iOjUwMywiLi9leHRlbmQiOjUwNSwiLi9maWx0ZXJfdW5pcXVlIjo1MDYsIi4vZmlsdGVyX3Zpc2libGUiOjUwNywiLi9nZW9tZXRyeTJkIjo1MTAsIi4vaWRlbnRpdHkiOjUxMywiLi9pbmNyZW1lbnQiOjUxNCwiLi9pc19wbGFpbl9vYmplY3QiOjUxNiwiLi9rZXllZF9jb250YWluZXIiOjUxNywiLi9sb2NhbGl6ZSI6NTE4LCIuL2xvZ2dlcnMiOjUxOSwiLi9tYWtlX3RyYWNlX2dyb3VwcyI6NTIwLCIuL21hdHJpeCI6NTIxLCIuL21vZCI6NTIyLCIuL25lc3RlZF9wcm9wZXJ0eSI6NTIzLCIuL25vb3AiOjUyNCwiLi9ub3RpZmllciI6NTI1LCIuL3ByZXNlcnZlX2RyYXdpbmdfYnVmZmVyIjo1MjksIi4vcHVzaF91bmlxdWUiOjUzMCwiLi9yZWdleCI6NTMyLCIuL3JlbGF0aXZlX2F0dHIiOjUzMywiLi9yZWxpbmtfcHJpdmF0ZSI6NTM0LCIuL3NlYXJjaCI6NTM1LCIuL3NvcnRfb2JqZWN0X2tleXMiOjUzOCwiLi9zdGF0cyI6NTM5LCIuL3Rocm90dGxlIjo1NDIsIi4vdG9fbG9nX3JhbmdlIjo1NDMsIkBwbG90bHkvZDMiOjU4LCJkMy1mb3JtYXQiOjExMiwiZDMtdGltZS1mb3JtYXQiOjEyMCwiZmFzdC1pc251bWVyaWMiOjE5MH1dLDUxNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHdpbmRvdyYmd2luZG93LnByb2Nlc3MmJndpbmRvdy5wcm9jZXNzLnZlcnNpb25zPyJbb2JqZWN0IE9iamVjdF0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpOiJbb2JqZWN0IE9iamVjdF0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpJiZPYmplY3QuZ2V0UHJvdG90eXBlT2YodCkuaGFzT3duUHJvcGVydHkoImhhc093blByb3BlcnR5Iil9fSx7fV0sNTE3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vbmVzdGVkX3Byb3BlcnR5IiksaT0vXlx3KiQvO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixhKXt2YXIgbyxzLGw7cj1yfHwibmFtZSIsYT1hfHwidmFsdWUiO3ZhciBjPXt9O2UmJmUubGVuZ3RoPyhsPW4odCxlKSxzPWwuZ2V0KCkpOnM9dCxlPWV8fCIiO3ZhciB1PXt9O2lmKHMpZm9yKG89MDtvPHMubGVuZ3RoO28rKyl1W3Nbb11bcl1dPW87dmFyIGY9aS50ZXN0KGEpLGg9e3NldDpmdW5jdGlvbih0LGUpe3ZhciBpPW51bGw9PT1lPzQ6MDtpZighcyl7aWYoIWx8fDQ9PT1pKXJldHVybjtzPVtdLGwuc2V0KHMpfXZhciBvPXVbdF07aWYodm9pZCAwPT09byl7aWYoND09PWkpcmV0dXJuO2l8PTMsbz1zLmxlbmd0aCx1W3RdPW99ZWxzZSBlIT09KGY/c1tvXVthXTpuKHNbb10sYSkuZ2V0KCkpJiYoaXw9Mik7dmFyIHA9c1tvXT1zW29dfHx7fTtyZXR1cm4gcFtyXT10LGY/cFthXT1lOm4ocCxhKS5zZXQoZSksbnVsbCE9PWUmJihpJj0tNSksY1tvXT1jW29dfGksaH0sZ2V0OmZ1bmN0aW9uKHQpe2lmKHMpe3ZhciBlPXVbdF07cmV0dXJuIHZvaWQgMD09PWU/dm9pZCAwOmY/c1tlXVthXTpuKHNbZV0sYSkuZ2V0KCl9fSxyZW5hbWU6ZnVuY3Rpb24odCxlKXt2YXIgbj11W3RdO3JldHVybiB2b2lkIDA9PT1ufHwoY1tuXT0xfGNbbl0sdVtlXT1uLGRlbGV0ZSB1W3RdLHNbbl1bcl09ZSksaH0scmVtb3ZlOmZ1bmN0aW9uKHQpe3ZhciBlPXVbdF07aWYodm9pZCAwPT09ZSlyZXR1cm4gaDt2YXIgaT1zW2VdO2lmKE9iamVjdC5rZXlzKGkpLmxlbmd0aD4yKXJldHVybiBjW2VdPTJ8Y1tlXSxoLnNldCh0LG51bGwpO2lmKGYpe2ZvcihvPWU7bzxzLmxlbmd0aDtvKyspY1tvXT0zfGNbb107Zm9yKG89ZTtvPHMubGVuZ3RoO28rKyl1W3Nbb11bcl1dLS07cy5zcGxpY2UoZSwxKSxkZWxldGUgdVt0XX1lbHNlIG4oaSxhKS5zZXQobnVsbCksY1tlXT02fGNbZV07cmV0dXJuIGh9LGNvbnN0cnVjdFVwZGF0ZTpmdW5jdGlvbigpe2Zvcih2YXIgdCxpLG89e30sbD1PYmplY3Qua2V5cyhjKSx1PTA7dTxsLmxlbmd0aDt1KyspaT1sW3VdLHQ9ZSsiWyIraSsiXSIsc1tpXT8oMSZjW2ldJiYob1t0KyIuIityXT1zW2ldW3JdKSwyJmNbaV0mJihvW3QrIi4iK2FdPWY/NCZjW2ldP251bGw6c1tpXVthXTo0JmNbaV0/bnVsbDpuKHNbaV0sYSkuZ2V0KCkpKTpvW3RdPW51bGw7cmV0dXJuIG99fTtyZXR1cm4gaH19LHsiLi9uZXN0ZWRfcHJvcGVydHkiOjUyM31dLDUxODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9yZWdpc3RyeSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10Ll9jb250ZXh0LmxvY2FsZSxpPTA7aTwyO2krKyl7Zm9yKHZhciBhPXQuX2NvbnRleHQubG9jYWxlcyxvPTA7bzwyO28rKyl7dmFyIHM9KGFbcl18fHt9KS5kaWN0aW9uYXJ5O2lmKHMpe3ZhciBsPXNbZV07aWYobClyZXR1cm4gbH1hPW4ubG9jYWxlUmVnaXN0cnl9dmFyIGM9ci5zcGxpdCgiLSIpWzBdO2lmKGM9PT1yKWJyZWFrO3I9Y31yZXR1cm4gZX19LHsiLi4vcmVnaXN0cnkiOjY0N31dLDUxOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9wbG90X2FwaS9wbG90X2NvbmZpZyIpLmRmbHRDb25maWcsaT10KCIuL25vdGlmaWVyIiksYT1lLmV4cG9ydHM9e307YS5sb2c9ZnVuY3Rpb24oKXt2YXIgdDtpZihuLmxvZ2dpbmc+MSl7dmFyIGU9WyJMT0c6Il07Zm9yKHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKWUucHVzaChhcmd1bWVudHNbdF0pO2NvbnNvbGUudHJhY2UuYXBwbHkoY29uc29sZSxlKX1pZihuLm5vdGlmeU9uTG9nZ2luZz4xKXt2YXIgcj1bXTtmb3IodD0wO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspci5wdXNoKGFyZ3VtZW50c1t0XSk7aShyLmpvaW4oIjxicj4iKSwibG9uZyIpfX0sYS53YXJuPWZ1bmN0aW9uKCl7dmFyIHQ7aWYobi5sb2dnaW5nPjApe3ZhciBlPVsiV0FSTjoiXTtmb3IodD0wO3Q8YXJndW1lbnRzLmxlbmd0aDt0KyspZS5wdXNoKGFyZ3VtZW50c1t0XSk7Y29uc29sZS50cmFjZS5hcHBseShjb25zb2xlLGUpfWlmKG4ubm90aWZ5T25Mb2dnaW5nPjApe3ZhciByPVtdO2Zvcih0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKylyLnB1c2goYXJndW1lbnRzW3RdKTtpKHIuam9pbigiPGJyPiIpLCJzdGljayIpfX0sYS5lcnJvcj1mdW5jdGlvbigpe3ZhciB0O2lmKG4ubG9nZ2luZz4wKXt2YXIgZT1bIkVSUk9SOiJdO2Zvcih0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyllLnB1c2goYXJndW1lbnRzW3RdKTtjb25zb2xlLmVycm9yLmFwcGx5KGNvbnNvbGUsZSl9aWYobi5ub3RpZnlPbkxvZ2dpbmc+MCl7dmFyIHI9W107Zm9yKHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXIucHVzaChhcmd1bWVudHNbdF0pO2koci5qb2luKCI8YnI+IiksInN0aWNrIil9fX0seyIuLi9wbG90X2FwaS9wbG90X2NvbmZpZyI6NTUzLCIuL25vdGlmaWVyIjo1MjV9XSw1MjA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIGk9dC5zZWxlY3RBbGwoImcuIityLnJlcGxhY2UoL1xzL2csIi4iKSkuZGF0YShlLChmdW5jdGlvbih0KXtyZXR1cm4gdFswXS50cmFjZS51aWR9KSk7aS5leGl0KCkucmVtb3ZlKCksaS5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIixyKSxpLm9yZGVyKCk7dmFyIGE9dC5jbGFzc2VkKCJyYW5nZXBsb3QiKT8ibm9kZVJhbmdlUGxvdDMiOiJub2RlMyI7cmV0dXJuIGkuZWFjaCgoZnVuY3Rpb24odCl7dFswXVthXT1uLnNlbGVjdCh0aGlzKX0pKSxpfX0seyJAcGxvdGx5L2QzIjo1OH1dLDUyMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJnbC1tYXQ0Iik7ci5pbml0MmRBcnJheT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1uZXcgQXJyYXkodCksbj0wO248dDtuKyspcltuXT1uZXcgQXJyYXkoZSk7cmV0dXJuIHJ9LHIudHJhbnNwb3NlUmFnZ2VkPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbj0wLGk9dC5sZW5ndGg7Zm9yKGU9MDtlPGk7ZSsrKW49TWF0aC5tYXgobix0W2VdLmxlbmd0aCk7dmFyIGE9bmV3IEFycmF5KG4pO2ZvcihlPTA7ZTxuO2UrKylmb3IoYVtlXT1uZXcgQXJyYXkoaSkscj0wO3I8aTtyKyspYVtlXVtyXT10W3JdW2VdO3JldHVybiBhfSxyLmRvdD1mdW5jdGlvbih0LGUpe2lmKCF0Lmxlbmd0aHx8IWUubGVuZ3RofHx0Lmxlbmd0aCE9PWUubGVuZ3RoKXJldHVybiBudWxsO3ZhciBuLGksYT10Lmxlbmd0aDtpZih0WzBdLmxlbmd0aClmb3Iobj1uZXcgQXJyYXkoYSksaT0wO2k8YTtpKyspbltpXT1yLmRvdCh0W2ldLGUpO2Vsc2UgaWYoZVswXS5sZW5ndGgpe3ZhciBvPXIudHJhbnNwb3NlUmFnZ2VkKGUpO2ZvcihuPW5ldyBBcnJheShvLmxlbmd0aCksaT0wO2k8by5sZW5ndGg7aSsrKW5baV09ci5kb3QodCxvW2ldKX1lbHNlIGZvcihuPTAsaT0wO2k8YTtpKyspbis9dFtpXSplW2ldO3JldHVybiBufSxyLnRyYW5zbGF0aW9uTWF0cml4PWZ1bmN0aW9uKHQsZSl7cmV0dXJuW1sxLDAsdF0sWzAsMSxlXSxbMCwwLDFdXX0sci5yb3RhdGlvbk1hdHJpeD1mdW5jdGlvbih0KXt2YXIgZT10Kk1hdGguUEkvMTgwO3JldHVybltbTWF0aC5jb3MoZSksLU1hdGguc2luKGUpLDBdLFtNYXRoLnNpbihlKSxNYXRoLmNvcyhlKSwwXSxbMCwwLDFdXX0sci5yb3RhdGlvblhZTWF0cml4PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gci5kb3Qoci5kb3Qoci50cmFuc2xhdGlvbk1hdHJpeChlLG4pLHIucm90YXRpb25NYXRyaXgodCkpLHIudHJhbnNsYXRpb25NYXRyaXgoLWUsLW4pKX0sci5hcHBseTNEVHJhbnNmb3JtPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cyxuPTE9PT1hcmd1bWVudHMubGVuZ3RoP2VbMF06W2VbMF0sZVsxXSxlWzJdfHwwXTtyZXR1cm4gci5kb3QodCxbblswXSxuWzFdLG5bMl0sMV0pLnNsaWNlKDAsMyl9fSxyLmFwcGx5MkRUcmFuc2Zvcm09ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzOzM9PT1lLmxlbmd0aCYmKGU9ZVswXSk7dmFyIG49MT09PWFyZ3VtZW50cy5sZW5ndGg/ZVswXTpbZVswXSxlWzFdXTtyZXR1cm4gci5kb3QodCxbblswXSxuWzFdLDFdKS5zbGljZSgwLDIpfX0sci5hcHBseTJEVHJhbnNmb3JtMj1mdW5jdGlvbih0KXt2YXIgZT1yLmFwcGx5MkRUcmFuc2Zvcm0odCk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlKHQuc2xpY2UoMCwyKSkuY29uY2F0KGUodC5zbGljZSgyLDQpKSl9fSxyLmNvbnZlcnRDc3NNYXRyaXg9ZnVuY3Rpb24odCl7aWYodCl7dmFyIGU9dC5sZW5ndGg7aWYoMTY9PT1lKXJldHVybiB0O2lmKDY9PT1lKXJldHVyblt0WzBdLHRbMV0sMCwwLHRbMl0sdFszXSwwLDAsMCwwLDEsMCx0WzRdLHRbNV0sMCwxXX1yZXR1cm5bMSwwLDAsMCwwLDEsMCwwLDAsMCwxLDAsMCwwLDAsMV19LHIuaW52ZXJzZVRyYW5zZm9ybU1hdHJpeD1mdW5jdGlvbih0KXt2YXIgZT1bXTtyZXR1cm4gbi5pbnZlcnQoZSx0KSxbW2VbMF0sZVsxXSxlWzJdLGVbM11dLFtlWzRdLGVbNV0sZVs2XSxlWzddXSxbZVs4XSxlWzldLGVbMTBdLGVbMTFdXSxbZVsxMl0sZVsxM10sZVsxNF0sZVsxNV1dXX19LHsiZ2wtbWF0NCI6MjEwfV0sNTIyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17bW9kOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dCVlO3JldHVybiByPDA/citlOnJ9LG1vZEhhbGY6ZnVuY3Rpb24odCxlKXtyZXR1cm4gTWF0aC5hYnModCk+ZS8yP3QtTWF0aC5yb3VuZCh0L2UpKmU6dH19fSx7fV0sNTIzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksaT10KCIuL2FycmF5IikuaXNBcnJheU9yVHlwZWRBcnJheTtmdW5jdGlvbiBhKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHIsbixvLHMsbCxjPXQ7Zm9yKHM9MDtzPGUubGVuZ3RoLTE7cysrKXtpZigtMT09PShyPWVbc10pKXtmb3Iobj0hMCxvPVtdLGw9MDtsPGMubGVuZ3RoO2wrKylvW2xdPWEoY1tsXSxlLnNsaWNlKHMrMSkpKCksb1tsXSE9PW9bMF0mJihuPSExKTtyZXR1cm4gbj9vWzBdOm99aWYoIm51bWJlciI9PXR5cGVvZiByJiYhaShjKSlyZXR1cm47aWYoIm9iamVjdCIhPXR5cGVvZihjPWNbcl0pfHxudWxsPT09YylyZXR1cm59aWYoIm9iamVjdCI9PXR5cGVvZiBjJiZudWxsIT09YyYmbnVsbCE9PShvPWNbZVtzXV0pKXJldHVybiBvfX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZihuKGUpKWU9U3RyaW5nKGUpO2Vsc2UgaWYoInN0cmluZyIhPXR5cGVvZiBlfHwiWy0xXSI9PT1lLnN1YnN0cihlLmxlbmd0aC00KSl0aHJvdyJiYWQgcHJvcGVydHkgc3RyaW5nIjtmb3IodmFyIHIsaSxvLHM9MCxjPWUuc3BsaXQoIi4iKTtzPGMubGVuZ3RoOyl7aWYocj1TdHJpbmcoY1tzXSkubWF0Y2goL14oW15cW1xdXSopKChcW1wtP1swLTldKlxdKSspJC8pKXtpZihyWzFdKWNbc109clsxXTtlbHNle2lmKDAhPT1zKXRocm93ImJhZCBwcm9wZXJ0eSBzdHJpbmciO2Muc3BsaWNlKDAsMSl9Zm9yKGk9clsyXS5zdWJzdHIoMSxyWzJdLmxlbmd0aC0yKS5zcGxpdCgiXVsiKSxvPTA7bzxpLmxlbmd0aDtvKyspcysrLGMuc3BsaWNlKHMsMCxOdW1iZXIoaVtvXSkpfXMrK31yZXR1cm4ib2JqZWN0IiE9dHlwZW9mIHQ/ZnVuY3Rpb24odCxlLHIpe3JldHVybntzZXQ6ZnVuY3Rpb24oKXt0aHJvdyJiYWQgY29udGFpbmVyIn0sZ2V0OmZ1bmN0aW9uKCl7fSxhc3RyOmUscGFydHM6cixvYmo6dH19KHQsZSxjKTp7c2V0OmwodCxjLGUpLGdldDphKHQsYyksYXN0cjplLHBhcnRzOmMsb2JqOnR9fTt2YXIgbz0vKF58XC4pYXJnc1xbLztmdW5jdGlvbiBzKHQsZSl7cmV0dXJuIHZvaWQgMD09PXR8fG51bGw9PT10JiYhZS5tYXRjaChvKX1mdW5jdGlvbiBsKHQsZSxyKXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGEsbyxsPXQsaD0iIixwPVtbdCxoXV0sZD1zKG4scik7Zm9yKG89MDtvPGUubGVuZ3RoLTE7bysrKXtpZigibnVtYmVyIj09dHlwZW9mKGE9ZVtvXSkmJiFpKGwpKXRocm93ImFycmF5IGluZGV4IGJ1dCBjb250YWluZXIgaXMgbm90IGFuIGFycmF5IjtpZigtMT09PWEpe2lmKGQ9IXUobCxlLnNsaWNlKG8rMSksbixyKSlicmVhaztyZXR1cm59aWYoIWYobCxhLGVbbysxXSxkKSlicmVhaztpZigib2JqZWN0IiE9dHlwZW9mKGw9bFthXSl8fG51bGw9PT1sKXRocm93ImNvbnRhaW5lciBpcyBub3QgYW4gb2JqZWN0IjtoPWMoaCxhKSxwLnB1c2goW2wsaF0pfWlmKGQpe2lmKG89PT1lLmxlbmd0aC0xJiYoZGVsZXRlIGxbZVtvXV0sQXJyYXkuaXNBcnJheShsKSYmK2Vbb109PWwubGVuZ3RoLTEpKWZvcig7bC5sZW5ndGgmJnZvaWQgMD09PWxbbC5sZW5ndGgtMV07KWwucG9wKCl9ZWxzZSBsW2Vbb11dPW59fWZ1bmN0aW9uIGModCxlKXt2YXIgcj1lO3JldHVybiBuKGUpP3I9IlsiK2UrIl0iOnQmJihyPSIuIitlKSx0K3J9ZnVuY3Rpb24gdSh0LGUscixuKXt2YXIgYSxvPWkociksYz0hMCx1PXIsaD1uLnJlcGxhY2UoIi0xIiwwKSxwPSFvJiZzKHIsaCksZD1lWzBdO2ZvcihhPTA7YTx0Lmxlbmd0aDthKyspaD1uLnJlcGxhY2UoIi0xIixhKSxvJiYocD1zKHU9clthJXIubGVuZ3RoXSxoKSkscCYmKGM9ITEpLGYodCxhLGQscCkmJmwodFthXSxlLG4ucmVwbGFjZSgiLTEiLGEpKSh1KTtyZXR1cm4gY31mdW5jdGlvbiBmKHQsZSxyLG4pe2lmKHZvaWQgMD09PXRbZV0pe2lmKG4pcmV0dXJuITE7dFtlXT0ibnVtYmVyIj09dHlwZW9mIHI/W106e319cmV0dXJuITB9fSx7Ii4vYXJyYXkiOjQ5NywiZmFzdC1pc251bWVyaWMiOjE5MH1dLDUyNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt9fSx7fV0sNTI1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoImZhc3QtaXNudW1lcmljIiksYT1bXTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZigtMT09PWEuaW5kZXhPZih0KSl7YS5wdXNoKHQpO3ZhciByPTFlMztpKGUpP3I9ZToibG9uZyI9PT1lJiYocj0zZTMpO3ZhciBvPW4uc2VsZWN0KCJib2R5Iikuc2VsZWN0QWxsKCIucGxvdGx5LW5vdGlmaWVyIikuZGF0YShbMF0pO28uZW50ZXIoKS5hcHBlbmQoImRpdiIpLmNsYXNzZWQoInBsb3RseS1ub3RpZmllciIsITApLG8uc2VsZWN0QWxsKCIubm90aWZpZXItbm90ZSIpLmRhdGEoYSkuZW50ZXIoKS5hcHBlbmQoImRpdiIpLmNsYXNzZWQoIm5vdGlmaWVyLW5vdGUiLCEwKS5zdHlsZSgib3BhY2l0eSIsMCkuZWFjaCgoZnVuY3Rpb24odCl7dmFyIGk9bi5zZWxlY3QodGhpcyk7aS5hcHBlbmQoImJ1dHRvbiIpLmNsYXNzZWQoIm5vdGlmaWVyLWNsb3NlIiwhMCkuaHRtbCgiJnRpbWVzOyIpLm9uKCJjbGljayIsKGZ1bmN0aW9uKCl7aS50cmFuc2l0aW9uKCkuY2FsbChzKX0pKTtmb3IodmFyIGE9aS5hcHBlbmQoInAiKSxvPXQuc3BsaXQoLzxiclxzKlwvPz4vZyksbD0wO2w8by5sZW5ndGg7bCsrKWwmJmEuYXBwZW5kKCJiciIpLGEuYXBwZW5kKCJzcGFuIikudGV4dChvW2xdKTsic3RpY2siPT09ZT9pLnRyYW5zaXRpb24oKS5kdXJhdGlvbigzNTApLnN0eWxlKCJvcGFjaXR5IiwxKTppLnRyYW5zaXRpb24oKS5kdXJhdGlvbig3MDApLnN0eWxlKCJvcGFjaXR5IiwxKS50cmFuc2l0aW9uKCkuZGVsYXkocikuY2FsbChzKX0pKX1mdW5jdGlvbiBzKHQpe3QuZHVyYXRpb24oNzAwKS5zdHlsZSgib3BhY2l0eSIsMCkuZWFjaCgiZW5kIiwoZnVuY3Rpb24odCl7dmFyIGU9YS5pbmRleE9mKHQpOy0xIT09ZSYmYS5zcGxpY2UoZSwxKSxuLnNlbGVjdCh0aGlzKS5yZW1vdmUoKX0pKX19fSx7IkBwbG90bHkvZDMiOjU4LCJmYXN0LWlzbnVtZXJpYyI6MTkwfV0sNTI2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vc2V0Y3Vyc29yIiksaT0iZGF0YS1zYXZlZGN1cnNvciI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5hdHRyKGkpO2lmKGUpe2lmKCFyKXtmb3IodmFyIGE9KHQuYXR0cigiY2xhc3MiKXx8IiIpLnNwbGl0KCIgIiksbz0wO288YS5sZW5ndGg7bysrKXt2YXIgcz1hW29dOzA9PT1zLmluZGV4T2YoImN1cnNvci0iKSYmdC5hdHRyKGkscy5zdWJzdHIoNykpLmNsYXNzZWQocywhMSl9dC5hdHRyKGkpfHx0LmF0dHIoaSwiISEiKX1uKHQsZSl9ZWxzZSByJiYodC5hdHRyKGksbnVsbCksIiEhIj09PXI/bih0KTpuKHQscikpfX0seyIuL3NldGN1cnNvciI6NTM2fV0sNTI3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vbWF0cml4IikuZG90LGk9dCgiLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTSxhPWUuZXhwb3J0cz17fTthLnRlc3Rlcj1mdW5jdGlvbih0KXt2YXIgZSxyPXQuc2xpY2UoKSxuPXJbMF1bMF0sYT1uLG89clswXVsxXSxzPW87Zm9yKHJbci5sZW5ndGgtMV1bMF09PT1yWzBdWzBdJiZyW3IubGVuZ3RoLTFdWzFdPT09clswXVsxXXx8ci5wdXNoKHJbMF0pLGU9MTtlPHIubGVuZ3RoO2UrKyluPU1hdGgubWluKG4scltlXVswXSksYT1NYXRoLm1heChhLHJbZV1bMF0pLG89TWF0aC5taW4obyxyW2VdWzFdKSxzPU1hdGgubWF4KHMscltlXVsxXSk7dmFyIGwsYz0hMTs1PT09ci5sZW5ndGgmJihyWzBdWzBdPT09clsxXVswXT9yWzJdWzBdPT09clszXVswXSYmclswXVsxXT09PXJbM11bMV0mJnJbMV1bMV09PT1yWzJdWzFdJiYoYz0hMCxsPWZ1bmN0aW9uKHQpe3JldHVybiB0WzBdPT09clswXVswXX0pOnJbMF1bMV09PT1yWzFdWzFdJiZyWzJdWzFdPT09clszXVsxXSYmclswXVswXT09PXJbM11bMF0mJnJbMV1bMF09PT1yWzJdWzBdJiYoYz0hMCxsPWZ1bmN0aW9uKHQpe3JldHVybiB0WzFdPT09clswXVsxXX0pKTt2YXIgdT0hMCxmPXJbMF07Zm9yKGU9MTtlPHIubGVuZ3RoO2UrKylpZihmWzBdIT09cltlXVswXXx8ZlsxXSE9PXJbZV1bMV0pe3U9ITE7YnJlYWt9cmV0dXJue3htaW46bix4bWF4OmEseW1pbjpvLHltYXg6cyxwdHM6cixjb250YWluczpjP2Z1bmN0aW9uKHQsZSl7dmFyIHI9dFswXSxjPXRbMV07cmV0dXJuIShyPT09aXx8cjxufHxyPmF8fGM9PT1pfHxjPG98fGM+cykmJighZXx8IWwodCkpfTpmdW5jdGlvbih0LGUpe3ZhciBsPXRbMF0sYz10WzFdO2lmKGw9PT1pfHxsPG58fGw+YXx8Yz09PWl8fGM8b3x8Yz5zKXJldHVybiExO3ZhciB1LGYsaCxwLGQsbT1yLmxlbmd0aCxnPXJbMF1bMF0sdj1yWzBdWzFdLHk9MDtmb3IodT0xO3U8bTt1KyspaWYoZj1nLGg9dixnPXJbdV1bMF0sdj1yW3VdWzFdLCEobDwocD1NYXRoLm1pbihmLGcpKXx8bD5NYXRoLm1heChmLGcpfHxjPk1hdGgubWF4KGgsdikpKWlmKGM8TWF0aC5taW4oaCx2KSlsIT09cCYmeSsrO2Vsc2V7aWYoYz09PShkPWc9PT1mP2M6aCsobC1mKSoodi1oKS8oZy1mKSkpcmV0dXJuIDEhPT11fHwhZTtjPD1kJiZsIT09cCYmeSsrfXJldHVybiB5JTI9PTF9LGlzUmVjdDpjLGRlZ2VuZXJhdGU6dX19LGEuaXNTZWdtZW50QmVudD1mdW5jdGlvbih0LGUscixpKXt2YXIgYSxvLHMsbD10W2VdLGM9W3Rbcl1bMF0tbFswXSx0W3JdWzFdLWxbMV1dLHU9bihjLGMpLGY9TWF0aC5zcXJ0KHUpLGg9Wy1jWzFdL2YsY1swXS9mXTtmb3IoYT1lKzE7YTxyO2ErKylpZihvPVt0W2FdWzBdLWxbMF0sdFthXVsxXS1sWzFdXSwocz1uKG8sYykpPDB8fHM+dXx8TWF0aC5hYnMobihvLGgpKT5pKXJldHVybiEwO3JldHVybiExfSxhLmZpbHRlcj1mdW5jdGlvbih0LGUpe3ZhciByPVt0WzBdXSxuPTAsaT0wO2Z1bmN0aW9uIG8obyl7dC5wdXNoKG8pO3ZhciBzPXIubGVuZ3RoLGw9bjtyLnNwbGljZShpKzEpO2Zvcih2YXIgYz1sKzE7Yzx0Lmxlbmd0aDtjKyspKGM9PT10Lmxlbmd0aC0xfHxhLmlzU2VnbWVudEJlbnQodCxsLGMrMSxlKSkmJihyLnB1c2godFtjXSksci5sZW5ndGg8cy0yJiYobj1jLGk9ci5sZW5ndGgtMSksbD1jKX10Lmxlbmd0aD4xJiZvKHQucG9wKCkpO3JldHVybnthZGRQdDpvLHJhdzp0LGZpbHRlcmVkOnJ9fX0seyIuLi9jb25zdGFudHMvbnVtZXJpY2FsIjo0OTEsIi4vbWF0cml4Ijo1MjF9XSw1Mjg6W2Z1bmN0aW9uKHQsZSxyKXsoZnVuY3Rpb24ocil7KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vc2hvd19ub193ZWJnbF9tc2ciKSxpPXQoInJlZ2wiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLGEpe3ZhciBvPXQuX2Z1bGxMYXlvdXQscz0hMDtyZXR1cm4gby5fZ2xjYW52YXMuZWFjaCgoZnVuY3Rpb24obil7aWYobi5yZWdsKW4ucmVnbC5wcmVsb2FkQ2FjaGVkQ29kZShhKTtlbHNlIGlmKCFuLnBpY2t8fG8uX2hhcygicGFyY29vcmRzIikpe3RyeXtuLnJlZ2w9aSh7Y2FudmFzOnRoaXMsYXR0cmlidXRlczp7YW50aWFsaWFzOiFuLnBpY2sscHJlc2VydmVEcmF3aW5nQnVmZmVyOiEwfSxwaXhlbFJhdGlvOnQuX2NvbnRleHQucGxvdEdsUGl4ZWxSYXRpb3x8ci5kZXZpY2VQaXhlbFJhdGlvLGV4dGVuc2lvbnM6ZXx8W10sY2FjaGVkQ29kZTphfHx7fX0pfWNhdGNoKHQpe3M9ITF9bi5yZWdsfHwocz0hMSkscyYmdGhpcy5hZGRFdmVudExpc3RlbmVyKCJ3ZWJnbGNvbnRleHRsb3N0IiwoZnVuY3Rpb24oZSl7dCYmdC5lbWl0JiZ0LmVtaXQoInBsb3RseV93ZWJnbGNvbnRleHRsb3N0Iix7ZXZlbnQ6ZSxsYXllcjpuLmtleX0pfSksITEpfX0pKSxzfHxuKHtjb250YWluZXI6by5fZ2xjb250YWluZXIubm9kZSgpfSksc319KS5jYWxsKHRoaXMpfSkuY2FsbCh0aGlzLCJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsP2dsb2JhbDoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6e30pfSx7Ii4vc2hvd19ub193ZWJnbF9tc2ciOjUzNyxyZWdsOjI4NH1dLDUyOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGk9dCgiaXMtbW9iaWxlIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlO2lmKCJzdHJpbmciIT10eXBlb2YoZT10JiZ0Lmhhc093blByb3BlcnR5KCJ1c2VyQWdlbnQiKT90LnVzZXJBZ2VudDpmdW5jdGlvbigpe3ZhciB0OyJ1bmRlZmluZWQiIT10eXBlb2YgbmF2aWdhdG9yJiYodD1uYXZpZ2F0b3IudXNlckFnZW50KTt0JiZ0LmhlYWRlcnMmJiJzdHJpbmciPT10eXBlb2YgdC5oZWFkZXJzWyJ1c2VyLWFnZW50Il0mJih0PXQuaGVhZGVyc1sidXNlci1hZ2VudCJdKTtyZXR1cm4gdH0oKSkpcmV0dXJuITA7dmFyIHI9aSh7dWE6e2hlYWRlcnM6eyJ1c2VyLWFnZW50IjplfX0sdGFibGV0OiEwLGZlYXR1cmVEZXRlY3Q6ITF9KTtpZighcilmb3IodmFyIGE9ZS5zcGxpdCgiICIpLG89MTtvPGEubGVuZ3RoO28rKyl7aWYoLTEhPT1hW29dLmluZGV4T2YoIlNhZmFyaSIpKWZvcih2YXIgcz1vLTE7cz4tMTtzLS0pe3ZhciBsPWFbc107aWYoIlZlcnNpb24vIj09PWwuc3Vic3RyKDAsOCkpe3ZhciBjPWwuc3Vic3RyKDgpLnNwbGl0KCIuIilbMF07aWYobihjKSYmKGM9K2MpLGM+PTEzKXJldHVybiEwfX19cmV0dXJuIHJ9fSx7ImZhc3QtaXNudW1lcmljIjoxOTAsImlzLW1vYmlsZSI6MjM0fV0sNTMwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2lmKGUgaW5zdGFuY2VvZiBSZWdFeHApe2Zvcih2YXIgcj1lLnRvU3RyaW5nKCksbj0wO248dC5sZW5ndGg7bisrKWlmKHRbbl1pbnN0YW5jZW9mIFJlZ0V4cCYmdFtuXS50b1N0cmluZygpPT09cilyZXR1cm4gdDt0LnB1c2goZSl9ZWxzZSFlJiYwIT09ZXx8LTEhPT10LmluZGV4T2YoZSl8fHQucHVzaChlKTtyZXR1cm4gdH19LHt9XSw1MzE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vbGliIiksaT10KCIuLi9wbG90X2FwaS9wbG90X2NvbmZpZyIpLmRmbHRDb25maWc7dmFyIGE9e2FkZDpmdW5jdGlvbih0LGUscixuLGEpe3ZhciBvLHM7dC51bmRvUXVldWU9dC51bmRvUXVldWV8fHtpbmRleDowLHF1ZXVlOltdLHNlcXVlbmNlOiExfSxzPXQudW5kb1F1ZXVlLmluZGV4LHQuYXV0b3BsYXk/dC51bmRvUXVldWUuaW5TZXF1ZW5jZXx8KHQuYXV0b3BsYXk9ITEpOighdC51bmRvUXVldWUuc2VxdWVuY2V8fHQudW5kb1F1ZXVlLmJlZ2luU2VxdWVuY2U/KG89e3VuZG86e2NhbGxzOltdLGFyZ3M6W119LHJlZG86e2NhbGxzOltdLGFyZ3M6W119fSx0LnVuZG9RdWV1ZS5xdWV1ZS5zcGxpY2Uocyx0LnVuZG9RdWV1ZS5xdWV1ZS5sZW5ndGgtcyxvKSx0LnVuZG9RdWV1ZS5pbmRleCs9MSk6bz10LnVuZG9RdWV1ZS5xdWV1ZVtzLTFdLHQudW5kb1F1ZXVlLmJlZ2luU2VxdWVuY2U9ITEsbyYmKG8udW5kby5jYWxscy51bnNoaWZ0KGUpLG8udW5kby5hcmdzLnVuc2hpZnQociksby5yZWRvLmNhbGxzLnB1c2gobiksby5yZWRvLmFyZ3MucHVzaChhKSksdC51bmRvUXVldWUucXVldWUubGVuZ3RoPmkucXVldWVMZW5ndGgmJih0LnVuZG9RdWV1ZS5xdWV1ZS5zaGlmdCgpLHQudW5kb1F1ZXVlLmluZGV4LS0pKX0sc3RhcnRTZXF1ZW5jZTpmdW5jdGlvbih0KXt0LnVuZG9RdWV1ZT10LnVuZG9RdWV1ZXx8e2luZGV4OjAscXVldWU6W10sc2VxdWVuY2U6ITF9LHQudW5kb1F1ZXVlLnNlcXVlbmNlPSEwLHQudW5kb1F1ZXVlLmJlZ2luU2VxdWVuY2U9ITB9LHN0b3BTZXF1ZW5jZTpmdW5jdGlvbih0KXt0LnVuZG9RdWV1ZT10LnVuZG9RdWV1ZXx8e2luZGV4OjAscXVldWU6W10sc2VxdWVuY2U6ITF9LHQudW5kb1F1ZXVlLnNlcXVlbmNlPSExLHQudW5kb1F1ZXVlLmJlZ2luU2VxdWVuY2U9ITF9LHVuZG86ZnVuY3Rpb24odCl7dmFyIGUscjtpZighKHZvaWQgMD09PXQudW5kb1F1ZXVlfHxpc05hTih0LnVuZG9RdWV1ZS5pbmRleCl8fHQudW5kb1F1ZXVlLmluZGV4PD0wKSl7Zm9yKHQudW5kb1F1ZXVlLmluZGV4LS0sZT10LnVuZG9RdWV1ZS5xdWV1ZVt0LnVuZG9RdWV1ZS5pbmRleF0sdC51bmRvUXVldWUuaW5TZXF1ZW5jZT0hMCxyPTA7cjxlLnVuZG8uY2FsbHMubGVuZ3RoO3IrKylhLnBsb3REbyh0LGUudW5kby5jYWxsc1tyXSxlLnVuZG8uYXJnc1tyXSk7dC51bmRvUXVldWUuaW5TZXF1ZW5jZT0hMSx0LmF1dG9wbGF5PSExfX0scmVkbzpmdW5jdGlvbih0KXt2YXIgZSxyO2lmKCEodm9pZCAwPT09dC51bmRvUXVldWV8fGlzTmFOKHQudW5kb1F1ZXVlLmluZGV4KXx8dC51bmRvUXVldWUuaW5kZXg+PXQudW5kb1F1ZXVlLnF1ZXVlLmxlbmd0aCkpe2ZvcihlPXQudW5kb1F1ZXVlLnF1ZXVlW3QudW5kb1F1ZXVlLmluZGV4XSx0LnVuZG9RdWV1ZS5pblNlcXVlbmNlPSEwLHI9MDtyPGUucmVkby5jYWxscy5sZW5ndGg7cisrKWEucGxvdERvKHQsZS5yZWRvLmNhbGxzW3JdLGUucmVkby5hcmdzW3JdKTt0LnVuZG9RdWV1ZS5pblNlcXVlbmNlPSExLHQuYXV0b3BsYXk9ITEsdC51bmRvUXVldWUuaW5kZXgrK319fTthLnBsb3REbz1mdW5jdGlvbih0LGUscil7dC5hdXRvcGxheT0hMCxyPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByLGk9W10sYT0wO2E8ZS5sZW5ndGg7YSsrKXI9ZVthXSxpW2FdPXI9PT10P3I6Im9iamVjdCI9PXR5cGVvZiByP0FycmF5LmlzQXJyYXkocik/bi5leHRlbmREZWVwKFtdLHIpOm4uZXh0ZW5kRGVlcEFsbCh7fSxyKTpyO3JldHVybiBpfSh0LHIpLGUuYXBwbHkobnVsbCxyKX0sZS5leHBvcnRzPWF9LHsiLi4vbGliIjo1MTUsIi4uL3Bsb3RfYXBpL3Bsb3RfY29uZmlnIjo1NTN9XSw1MzI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ci5jb3VudGVyPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPShlfHwiIikrKHI/IiI6IiQiKSxhPSExPT09bj8iIjoiXiI7cmV0dXJuInh5Ij09PXQ/bmV3IFJlZ0V4cChhKyJ4KFsyLTldfFsxLTldWzAtOV0rKT95KFsyLTldfFsxLTldWzAtOV0rKT8iK2kpOm5ldyBSZWdFeHAoYSt0KyIoWzItOV18WzEtOV1bMC05XSspPyIraSl9fSx7fV0sNTMzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPS9eKC4qKShcLlteXC5cW1xdXSt8XFtcZFxdKSQvLGk9L15bXlwuXFtcXV0rJC87ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKDtlOyl7dmFyIHI9dC5tYXRjaChuKTtpZihyKXQ9clsxXTtlbHNle2lmKCF0Lm1hdGNoKGkpKXRocm93IG5ldyBFcnJvcigiYmFkIHJlbGF0aXZlQXR0ciBjYWxsOiIrW3QsZV0pO3Q9IiJ9aWYoIl4iIT09ZS5jaGFyQXQoMCkpYnJlYWs7ZT1lLnNsaWNlKDEpfXJldHVybiB0JiYiWyIhPT1lLmNoYXJBdCgwKT90KyIuIitlOnQrZX19LHt9XSw1MzQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9hcnJheSIpLmlzQXJyYXlPclR5cGVkQXJyYXksaT10KCIuL2lzX3BsYWluX29iamVjdCIpO2UuZXhwb3J0cz1mdW5jdGlvbiB0KGUscil7Zm9yKHZhciBhIGluIHIpe3ZhciBvPXJbYV0scz1lW2FdO2lmKHMhPT1vKWlmKCJfIj09PWEuY2hhckF0KDApfHwiZnVuY3Rpb24iPT10eXBlb2Ygbyl7aWYoYSBpbiBlKWNvbnRpbnVlO2VbYV09b31lbHNlIGlmKG4obykmJm4ocykmJmkob1swXSkpe2lmKCJjdXN0b21kYXRhIj09PWF8fCJpZHMiPT09YSljb250aW51ZTtmb3IodmFyIGw9TWF0aC5taW4oby5sZW5ndGgscy5sZW5ndGgpLGM9MDtjPGw7YysrKXNbY10hPT1vW2NdJiZpKG9bY10pJiZpKHNbY10pJiZ0KHNbY10sb1tjXSl9ZWxzZSBpKG8pJiZpKHMpJiYodChzLG8pLE9iamVjdC5rZXlzKHMpLmxlbmd0aHx8ZGVsZXRlIGVbYV0pfX19LHsiLi9hcnJheSI6NDk3LCIuL2lzX3BsYWluX29iamVjdCI6NTE2fV0sNTM1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksaT10KCIuL2xvZ2dlcnMiKSxhPXQoIi4vaWRlbnRpdHkiKSxvPXQoIi4uL2NvbnN0YW50cy9udW1lcmljYWwiKS5CQUROVU07ZnVuY3Rpb24gcyh0LGUpe3JldHVybiB0PGV9ZnVuY3Rpb24gbCh0LGUpe3JldHVybiB0PD1lfWZ1bmN0aW9uIGModCxlKXtyZXR1cm4gdD5lfWZ1bmN0aW9uIHUodCxlKXtyZXR1cm4gdD49ZX1yLmZpbmRCaW49ZnVuY3Rpb24odCxlLHIpe2lmKG4oZS5zdGFydCkpcmV0dXJuIHI/TWF0aC5jZWlsKCh0LWUuc3RhcnQpL2Uuc2l6ZS0xZS05KS0xOk1hdGguZmxvb3IoKHQtZS5zdGFydCkvZS5zaXplKzFlLTkpO3ZhciBhLG8sZj0wLGg9ZS5sZW5ndGgscD0wLGQ9aD4xPyhlW2gtMV0tZVswXSkvKGgtMSk6MTtmb3Iobz1kPj0wP3I/czpsOnI/dTpjLHQrPTFlLTkqZCoocj8tMToxKSooZD49MD8xOi0xKTtmPGgmJnArKzwxMDA7KW8oZVthPU1hdGguZmxvb3IoKGYraCkvMildLHQpP2Y9YSsxOmg9YTtyZXR1cm4gcD45MCYmaS5sb2coIkxvbmcgYmluYXJ5IHNlYXJjaC4uLiIpLGYtMX0sci5zb3J0ZXJBc2M9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC1lfSxyLnNvcnRlckRlcz1mdW5jdGlvbih0LGUpe3JldHVybiBlLXR9LHIuZGlzdGluY3RWYWxzPWZ1bmN0aW9uKHQpe3ZhciBlLG49dC5zbGljZSgpO2ZvcihuLnNvcnQoci5zb3J0ZXJBc2MpLGU9bi5sZW5ndGgtMTtlPi0xJiZuW2VdPT09bztlLS0pO2Zvcih2YXIgaSxhPW5bZV0tblswXXx8MSxzPWEvKGV8fDEpLzFlNCxsPVtdLGM9MDtjPD1lO2MrKyl7dmFyIHU9bltjXSxmPXUtaTt2b2lkIDA9PT1pPyhsLnB1c2godSksaT11KTpmPnMmJihhPU1hdGgubWluKGEsZiksbC5wdXNoKHUpLGk9dSl9cmV0dXJue3ZhbHM6bCxtaW5EaWZmOmF9fSxyLnJvdW5kVXA9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbixpPTAsYT1lLmxlbmd0aC0xLG89MCxzPXI/MDoxLGw9cj8xOjAsYz1yP01hdGguY2VpbDpNYXRoLmZsb29yO2k8YSYmbysrPDEwMDspZVtuPWMoKGkrYSkvMildPD10P2k9bitzOmE9bi1sO3JldHVybiBlW2ldfSxyLnNvcnQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9MCxuPTAsaT0xO2k8dC5sZW5ndGg7aSsrKXt2YXIgYT1lKHRbaV0sdFtpLTFdKTtpZihhPDA/cj0xOmE+MCYmKG49MSksciYmbilyZXR1cm4gdC5zb3J0KGUpfXJldHVybiBuP3Q6dC5yZXZlcnNlKCl9LHIuZmluZEluZGV4T2ZNaW49ZnVuY3Rpb24odCxlKXtlPWV8fGE7Zm9yKHZhciByLG49MS8wLGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIG89ZSh0W2ldKTtvPG4mJihuPW8scj1pKX1yZXR1cm4gcn19LHsiLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NDkxLCIuL2lkZW50aXR5Ijo1MTMsIi4vbG9nZ2VycyI6NTE5LCJmYXN0LWlzbnVtZXJpYyI6MTkwfV0sNTM2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpeyh0LmF0dHIoImNsYXNzIil8fCIiKS5zcGxpdCgiICIpLmZvckVhY2goKGZ1bmN0aW9uKGUpezA9PT1lLmluZGV4T2YoImN1cnNvci0iKSYmdC5jbGFzc2VkKGUsITEpfSkpLGUmJnQuY2xhc3NlZCgiY3Vyc29yLSIrZSwhMCl9fSx7fV0sNTM3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2NvbXBvbmVudHMvY29sb3IiKSxpPWZ1bmN0aW9uKCl7fTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlIGluIHQpImZ1bmN0aW9uIj09dHlwZW9mIHRbZV0mJih0W2VdPWkpO3QuZGVzdHJveT1mdW5jdGlvbigpe3QuY29udGFpbmVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodC5jb250YWluZXIpfTt2YXIgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyLmNsYXNzTmFtZT0ibm8td2ViZ2wiLHIuc3R5bGUuY3Vyc29yPSJwb2ludGVyIixyLnN0eWxlLmZvbnRTaXplPSIyNHB4IixyLnN0eWxlLmNvbG9yPW4uZGVmYXVsdHNbMF0sci5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHIuc3R5bGUubGVmdD1yLnN0eWxlLnRvcD0iMHB4IixyLnN0eWxlLndpZHRoPXIuc3R5bGUuaGVpZ2h0PSIxMDAlIixyLnN0eWxlWyJiYWNrZ3JvdW5kLWNvbG9yIl09bi5saWdodExpbmUsci5zdHlsZVsiei1pbmRleCJdPTMwO3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKTtyZXR1cm4gYS50ZXh0Q29udGVudD0iV2ViR0wgaXMgbm90IHN1cHBvcnRlZCBieSB5b3VyIGJyb3dzZXIgLSB2aXNpdCBodHRwczovL2dldC53ZWJnbC5vcmcgZm9yIG1vcmUgaW5mbyIsYS5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiLGEuc3R5bGUudG9wPSI1MCUiLGEuc3R5bGUubGVmdD0iNTAlIixhLnN0eWxlLmhlaWdodD0iMzAlIixhLnN0eWxlLndpZHRoPSI1MCUiLGEuc3R5bGUubWFyZ2luPSItMTUlIDAgMCAtMjUlIixyLmFwcGVuZENoaWxkKGEpLHQuY29udGFpbmVyLmFwcGVuZENoaWxkKHIpLHQuY29udGFpbmVyLnN0eWxlLmJhY2tncm91bmQ9IiNGRkZGRkYiLHQuY29udGFpbmVyLm9uY2xpY2s9ZnVuY3Rpb24oKXt3aW5kb3cub3BlbigiaHR0cHM6Ly9nZXQud2ViZ2wub3JnIil9LCExfX0seyIuLi9jb21wb25lbnRzL2NvbG9yIjozNjd9XSw1Mzg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3Qua2V5cyh0KS5zb3J0KCl9fSx7fV0sNTM5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksaT10KCIuL2FycmF5IikuaXNBcnJheU9yVHlwZWRBcnJheTtyLmFnZ051bXM9ZnVuY3Rpb24odCxlLGEsbyl7dmFyIHMsbDtpZigoIW98fG8+YS5sZW5ndGgpJiYobz1hLmxlbmd0aCksbihlKXx8KGU9ITEpLGkoYVswXSkpe2ZvcihsPW5ldyBBcnJheShvKSxzPTA7czxvO3MrKylsW3NdPXIuYWdnTnVtcyh0LGUsYVtzXSk7YT1sfWZvcihzPTA7czxvO3MrKyluKGUpP24oYVtzXSkmJihlPXQoK2UsK2Fbc10pKTplPWFbc107cmV0dXJuIGV9LHIubGVuPWZ1bmN0aW9uKHQpe3JldHVybiByLmFnZ051bXMoKGZ1bmN0aW9uKHQpe3JldHVybiB0KzF9KSwwLHQpfSxyLm1lYW49ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXx8KGU9ci5sZW4odCkpLHIuYWdnTnVtcygoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlfSksMCx0KS9lfSxyLm1pZFJhbmdlPWZ1bmN0aW9uKHQpe2lmKHZvaWQgMCE9PXQmJjAhPT10Lmxlbmd0aClyZXR1cm4oci5hZ2dOdW1zKE1hdGgubWF4LG51bGwsdCkrci5hZ2dOdW1zKE1hdGgubWluLG51bGwsdCkpLzJ9LHIudmFyaWFuY2U9ZnVuY3Rpb24odCxlLGkpe3JldHVybiBlfHwoZT1yLmxlbih0KSksbihpKXx8KGk9ci5tZWFuKHQsZSkpLHIuYWdnTnVtcygoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtNYXRoLnBvdyhlLWksMil9KSwwLHQpL2V9LHIuc3RkZXY9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBNYXRoLnNxcnQoci52YXJpYW5jZSh0LGUsbikpfSxyLm1lZGlhbj1mdW5jdGlvbih0KXt2YXIgZT10LnNsaWNlKCkuc29ydCgpO3JldHVybiByLmludGVycChlLC41KX0sci5pbnRlcnA9ZnVuY3Rpb24odCxlKXtpZighbihlKSl0aHJvdyJuIHNob3VsZCBiZSBhIGZpbml0ZSBudW1iZXIiO2lmKChlPWUqdC5sZW5ndGgtLjUpPDApcmV0dXJuIHRbMF07aWYoZT50Lmxlbmd0aC0xKXJldHVybiB0W3QubGVuZ3RoLTFdO3ZhciByPWUlMTtyZXR1cm4gcip0W01hdGguY2VpbChlKV0rKDEtcikqdFtNYXRoLmZsb29yKGUpXX19LHsiLi9hcnJheSI6NDk3LCJmYXN0LWlzbnVtZXJpYyI6MTkwfV0sNTQwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImNvbG9yLW5vcm1hbGl6ZSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gdD9uKHQpOlswLDAsMCwxXX19LHsiY29sb3Itbm9ybWFsaXplIjo4OX1dLDU0MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi9saWIiKSxhPWkuc3RyVHJhbnNsYXRlLG89dCgiLi4vY29uc3RhbnRzL3htbG5zX25hbWVzcGFjZXMiKSxzPXQoIi4uL2NvbnN0YW50cy9hbGlnbm1lbnQiKS5MSU5FX1NQQUNJTkcsbD0vKFteJF0qKShbJF0rW14kXSpbJF0rKShbXiRdKikvO3IuY29udmVydFRvVHNwYW5zPWZ1bmN0aW9uKHQsZSxtKXt2YXIgTT10LnRleHQoKSxTPSF0LmF0dHIoImRhdGEtbm90ZXgiKSYmZSYmZS5fY29udGV4dC50eXBlc2V0TWF0aCYmInVuZGVmaW5lZCIhPXR5cGVvZiBNYXRoSmF4JiZNLm1hdGNoKGwpLEM9bi5zZWxlY3QodC5ub2RlKCkucGFyZW50Tm9kZSk7aWYoIUMuZW1wdHkoKSl7dmFyIFA9dC5hdHRyKCJjbGFzcyIpP3QuYXR0cigiY2xhc3MiKS5zcGxpdCgiICIpWzBdOiJ0ZXh0IjtyZXR1cm4gUCs9Ii1tYXRoIixDLnNlbGVjdEFsbCgic3ZnLiIrUCkucmVtb3ZlKCksQy5zZWxlY3RBbGwoImcuIitQKyItZ3JvdXAiKS5yZW1vdmUoKSx0LnN0eWxlKCJkaXNwbGF5IixudWxsKS5hdHRyKHsiZGF0YS11bmZvcm1hdHRlZCI6TSwiZGF0YS1tYXRoIjoiTiJ9KSxTPyhlJiZlLl9wcm9taXNlc3x8W10pLnB1c2gobmV3IFByb21pc2UoKGZ1bmN0aW9uKGUpe3Quc3R5bGUoImRpc3BsYXkiLCJub25lIik7dmFyIHI9cGFyc2VJbnQodC5ub2RlKCkuc3R5bGUuZm9udFNpemUsMTApLG89e2ZvbnRTaXplOnJ9OyFmdW5jdGlvbih0LGUscil7dmFyIGEsbyxzLGwsaD1wYXJzZUludCgoTWF0aEpheC52ZXJzaW9ufHwiIikuc3BsaXQoIi4iKVswXSk7aWYoMiE9PWgmJjMhPT1oKXJldHVybiB2b2lkIGkud2FybigiTm8gTWF0aEpheCB2ZXJzaW9uOiIsTWF0aEpheC52ZXJzaW9uKTt2YXIgcD1mdW5jdGlvbigpe3ZhciByPSJtYXRoLW91dHB1dC0iK2kucmFuZHN0cih7fSw2NCksYT0obD1uLnNlbGVjdCgiYm9keSIpLmFwcGVuZCgiZGl2IikuYXR0cih7aWQ6cn0pLnN0eWxlKHt2aXNpYmlsaXR5OiJoaWRkZW4iLHBvc2l0aW9uOiJhYnNvbHV0ZSIsImZvbnQtc2l6ZSI6ZS5mb250U2l6ZSsicHgifSkudGV4dCh0LnJlcGxhY2UoYywiXFxsdCAiKS5yZXBsYWNlKHUsIlxcZ3QgIikpKS5ub2RlKCk7cmV0dXJuIDI9PT1oP01hdGhKYXguSHViLlR5cGVzZXQoYSk6TWF0aEpheC50eXBlc2V0KFthXSl9LGQ9ZnVuY3Rpb24oKXt2YXIgZT1sLnNlbGVjdCgyPT09aD8iLk1hdGhKYXhfU1ZHIjoiLk1hdGhKYXgiKSxhPSFlLmVtcHR5KCkmJmwuc2VsZWN0KCJzdmciKS5ub2RlKCk7aWYoYSl7dmFyIG8scz1hLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO289Mj09PWg/bi5zZWxlY3QoImJvZHkiKS5zZWxlY3QoIiNNYXRoSmF4X1NWR19nbHlwaHMiKTplLnNlbGVjdCgiZGVmcyIpLHIoZSxvLHMpfWVsc2UgaS5sb2coIlRoZXJlIHdhcyBhbiBlcnJvciBpbiB0aGUgdGV4IHN5bnRheC4iLHQpLHIoKTtsLnJlbW92ZSgpfTsyPT09aD9NYXRoSmF4Lkh1Yi5RdWV1ZSgoZnVuY3Rpb24oKXtyZXR1cm4gbz1pLmV4dGVuZERlZXBBbGwoe30sTWF0aEpheC5IdWIuY29uZmlnKSxzPU1hdGhKYXguSHViLnByb2Nlc3NTZWN0aW9uRGVsYXksdm9pZCAwIT09TWF0aEpheC5IdWIucHJvY2Vzc1NlY3Rpb25EZWxheSYmKE1hdGhKYXguSHViLnByb2Nlc3NTZWN0aW9uRGVsYXk9MCksTWF0aEpheC5IdWIuQ29uZmlnKHttZXNzYWdlU3R5bGU6Im5vbmUiLHRleDJqYXg6e2lubGluZU1hdGg6Zn0sZGlzcGxheUFsaWduOiJsZWZ0In0pfSksKGZ1bmN0aW9uKCl7aWYoIlNWRyIhPT0oYT1NYXRoSmF4Lkh1Yi5jb25maWcubWVudVNldHRpbmdzLnJlbmRlcmVyKSlyZXR1cm4gTWF0aEpheC5IdWIuc2V0UmVuZGVyZXIoIlNWRyIpfSkscCxkLChmdW5jdGlvbigpe2lmKCJTVkciIT09YSlyZXR1cm4gTWF0aEpheC5IdWIuc2V0UmVuZGVyZXIoYSl9KSwoZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09cyYmKE1hdGhKYXguSHViLnByb2Nlc3NTZWN0aW9uRGVsYXk9cyksTWF0aEpheC5IdWIuQ29uZmlnKG8pfSkpOjM9PT1oJiYobz1pLmV4dGVuZERlZXBBbGwoe30sTWF0aEpheC5jb25maWcpLE1hdGhKYXguY29uZmlnLnRleHx8KE1hdGhKYXguY29uZmlnLnRleD17fSksTWF0aEpheC5jb25maWcudGV4LmlubGluZU1hdGg9Ziwic3ZnIiE9PShhPU1hdGhKYXguY29uZmlnLnN0YXJ0dXAub3V0cHV0KSYmKE1hdGhKYXguY29uZmlnLnN0YXJ0dXAub3V0cHV0PSJzdmciKSxNYXRoSmF4LnN0YXJ0dXAuZGVmYXVsdFJlYWR5KCksTWF0aEpheC5zdGFydHVwLnByb21pc2UudGhlbigoZnVuY3Rpb24oKXtwKCksZCgpLCJzdmciIT09YSYmKE1hdGhKYXguY29uZmlnLnN0YXJ0dXAub3V0cHV0PWEpLE1hdGhKYXguY29uZmlnPW99KSkpfShTWzJdLG8sKGZ1bmN0aW9uKG4saSxvKXtDLnNlbGVjdEFsbCgic3ZnLiIrUCkucmVtb3ZlKCksQy5zZWxlY3RBbGwoImcuIitQKyItZ3JvdXAiKS5yZW1vdmUoKTt2YXIgcz1uJiZuLnNlbGVjdCgic3ZnIik7aWYoIXN8fCFzLm5vZGUoKSlyZXR1cm4gSSgpLHZvaWQgZSgpO3ZhciBsPUMuYXBwZW5kKCJnIikuY2xhc3NlZChQKyItZ3JvdXAiLCEwKS5hdHRyKHsicG9pbnRlci1ldmVudHMiOiJub25lIiwiZGF0YS11bmZvcm1hdHRlZCI6TSwiZGF0YS1tYXRoIjoiWSJ9KTtsLm5vZGUoKS5hcHBlbmRDaGlsZChzLm5vZGUoKSksaSYmaS5ub2RlKCkmJnMubm9kZSgpLmluc2VydEJlZm9yZShpLm5vZGUoKS5jbG9uZU5vZGUoITApLHMubm9kZSgpLmZpcnN0Q2hpbGQpO3ZhciBjPW8ud2lkdGgsdT1vLmhlaWdodDtzLmF0dHIoe2NsYXNzOlAsaGVpZ2h0OnUscHJlc2VydmVBc3BlY3RSYXRpbzoieE1pbllNaW4gbWVldCJ9KS5zdHlsZSh7b3ZlcmZsb3c6InZpc2libGUiLCJwb2ludGVyLWV2ZW50cyI6Im5vbmUifSk7dmFyIGY9dC5ub2RlKCkuc3R5bGUuZmlsbHx8ImJsYWNrIixoPXMuc2VsZWN0KCJnIik7aC5hdHRyKHtmaWxsOmYsc3Ryb2tlOmZ9KTt2YXIgcD1oLm5vZGUoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxkPXAud2lkdGgsZz1wLmhlaWdodDsoZD5jfHxnPnUpJiYocy5zdHlsZSgib3ZlcmZsb3ciLCJoaWRkZW4iKSxkPShwPXMubm9kZSgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKS53aWR0aCxnPXAuaGVpZ2h0KTt2YXIgdj0rdC5hdHRyKCJ4IikseT0rdC5hdHRyKCJ5IikseD0tKHJ8fHQubm9kZSgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCkvNDtpZigieSI9PT1QWzBdKWwuYXR0cih7dHJhbnNmb3JtOiJyb3RhdGUoIitbLTkwLHYseV0rIikiK2EoLWQvMix4LWcvMil9KTtlbHNlIGlmKCJsIj09PVBbMF0peT14LWcvMjtlbHNlIGlmKCJhIj09PVBbMF0mJjAhPT1QLmluZGV4T2YoImF0aXRsZSIpKXY9MCx5PXg7ZWxzZXt2YXIgYj10LmF0dHIoInRleHQtYW5jaG9yIik7di09ZCooIm1pZGRsZSI9PT1iPy41OiJlbmQiPT09Yj8xOjApLHk9eSt4LWcvMn1zLmF0dHIoe3g6dix5Onl9KSxtJiZtLmNhbGwodCxsKSxlKGwpfSkpfSkpKTpJKCksdH1mdW5jdGlvbiBJKCl7Qy5lbXB0eSgpfHwoUD10LmF0dHIoImNsYXNzIikrIi1tYXRoIixDLnNlbGVjdCgic3ZnLiIrUCkucmVtb3ZlKCkpLHQudGV4dCgiIikuc3R5bGUoIndoaXRlLXNwYWNlIiwicHJlIiksZnVuY3Rpb24odCxlKXtlPWUucmVwbGFjZShnLCIgIik7dmFyIHIsYT0hMSxsPVtdLGM9LTE7ZnVuY3Rpb24gdSgpe2MrKzt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoby5zdmcsInRzcGFuIik7bi5zZWxlY3QoZSkuYXR0cih7Y2xhc3M6ImxpbmUiLGR5OmMqcysiZW0ifSksdC5hcHBlbmRDaGlsZChlKSxyPWU7dmFyIGk9bDtpZihsPVt7bm9kZTplfV0saS5sZW5ndGg+MSlmb3IodmFyIGE9MTthPGkubGVuZ3RoO2ErKylmKGlbYV0pfWZ1bmN0aW9uIGYodCl7dmFyIGUsaT10LnR5cGUsYT17fTtpZigiYSI9PT1pKXtlPSJhIjt2YXIgcz10LnRhcmdldCxjPXQuaHJlZix1PXQucG9wdXA7YyYmKGE9eyJ4bGluazp4bGluazpzaG93IjoiX2JsYW5rIj09PXN8fCJfIiE9PXMuY2hhckF0KDApPyJuZXciOiJyZXBsYWNlIix0YXJnZXQ6cywieGxpbms6eGxpbms6aHJlZiI6Y30sdSYmKGEub25jbGljaz0nd2luZG93Lm9wZW4odGhpcy5ocmVmLmJhc2VWYWwsdGhpcy50YXJnZXQuYmFzZVZhbCwiJyt1KyciKTtyZXR1cm4gZmFsc2U7JykpfWVsc2UgZT0idHNwYW4iO3Quc3R5bGUmJihhLnN0eWxlPXQuc3R5bGUpO3ZhciBmPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhvLnN2ZyxlKTtpZigic3VwIj09PWl8fCJzdWIiPT09aSl7bShyLCJcdTIwMGIiKSxyLmFwcGVuZENoaWxkKGYpO3ZhciBoPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhvLnN2ZywidHNwYW4iKTttKGgsIlx1MjAwYiIpLG4uc2VsZWN0KGgpLmF0dHIoImR5IixkW2ldKSxhLmR5PXBbaV0sci5hcHBlbmRDaGlsZChmKSxyLmFwcGVuZENoaWxkKGgpfWVsc2Ugci5hcHBlbmRDaGlsZChmKTtuLnNlbGVjdChmKS5hdHRyKGEpLHI9dC5ub2RlPWYsbC5wdXNoKHQpfWZ1bmN0aW9uIG0odCxlKXt0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGUpKX1mdW5jdGlvbiBNKHQpe2lmKDEhPT1sLmxlbmd0aCl7dmFyIG49bC5wb3AoKTt0IT09bi50eXBlJiZpLmxvZygiU3RhcnQgdGFnIDwiK24udHlwZSsiPiBkb2VzbnQgbWF0Y2ggZW5kIHRhZyA8Iit0KyI+LiBQcmV0ZW5kaW5nIGl0IGRpZCBtYXRjaC4iLGUpLHI9bFtsLmxlbmd0aC0xXS5ub2RlfWVsc2UgaS5sb2coIklnbm9yaW5nIHVuZXhwZWN0ZWQgZW5kIHRhZyA8LyIrdCsiPi4iLGUpfXgudGVzdChlKT91KCk6KHI9dCxsPVt7bm9kZTp0fV0pO2Zvcih2YXIgUz1lLnNwbGl0KHYpLEM9MDtDPFMubGVuZ3RoO0MrKyl7dmFyIFA9U1tDXSxJPVAubWF0Y2goeSksTz1JJiZJWzJdLnRvTG93ZXJDYXNlKCksej1oW09dO2lmKCJiciI9PT1PKXUoKTtlbHNlIGlmKHZvaWQgMD09PXopbShyLEUoUCkpO2Vsc2UgaWYoSVsxXSlNKE8pO2Vsc2V7dmFyIEQ9SVs0XSxSPXt0eXBlOk99LEY9ayhELGIpO2lmKEY/KEY9Ri5yZXBsYWNlKEEsIiQxIGZpbGw6IikseiYmKEYrPSI7Iit6KSk6eiYmKEY9eiksRiYmKFIuc3R5bGU9RiksImEiPT09Tyl7YT0hMDt2YXIgQj1rKEQsXyk7aWYoQil7dmFyIE49TChCKTtOJiYoUi5ocmVmPU4sUi50YXJnZXQ9ayhELHcpfHwiX2JsYW5rIixSLnBvcHVwPWsoRCxUKSl9fWYoUil9fXJldHVybiBhfSh0Lm5vZGUoKSxNKSYmdC5zdHlsZSgicG9pbnRlci1ldmVudHMiLCJhbGwiKSxyLnBvc2l0aW9uVGV4dCh0KSxtJiZtLmNhbGwodCl9fTt2YXIgYz0vKDx8Jmx0O3wmIzYwOykvZyx1PS8oPnwmZ3Q7fCYjNjI7KS9nO3ZhciBmPVtbIiQiLCIkIl0sWyJcXCgiLCJcXCkiXV07dmFyIGg9e3N1cDoiZm9udC1zaXplOjcwJSIsc3ViOiJmb250LXNpemU6NzAlIixiOiJmb250LXdlaWdodDpib2xkIixpOiJmb250LXN0eWxlOml0YWxpYyIsYToiY3Vyc29yOnBvaW50ZXIiLHNwYW46IiIsZW06ImZvbnQtc3R5bGU6aXRhbGljO2ZvbnQtd2VpZ2h0OmJvbGQifSxwPXtzdWI6IjAuM2VtIixzdXA6Ii0wLjZlbSJ9LGQ9e3N1YjoiLTAuMjFlbSIsc3VwOiIwLjQyZW0ifSxtPVsiaHR0cDoiLCJodHRwczoiLCJtYWlsdG86IiwiIix2b2lkIDAsIjoiXSxnPXIuTkVXTElORVM9LyhcclxuP3xcbikvZyx2PS8oPFtePD5dKj4pLyx5PS88KFwvPykoW14gPl0qKShccysoLiopKT8+L2kseD0vPGJyKFxzKy4qKT8+L2k7ci5CUl9UQUdfQUxMPS88YnIoXHMrLiopPz4vZ2k7dmFyIGI9LyhefFtccyInXSlzdHlsZVxzKj1ccyooIihbXiJdKik7PyJ8JyhbXiddKik7PycpL2ksXz0vKF58W1xzIiddKWhyZWZccyo9XHMqKCIoW14iXSopInwnKFteJ10qKScpL2ksdz0vKF58W1xzIiddKXRhcmdldFxzKj1ccyooIihbXiJcc10qKSJ8JyhbXidcc10qKScpL2ksVD0vKF58W1xzIiddKXBvcHVwXHMqPVxzKigiKFtcdz0sXSopInwnKFtcdz0sXSopJykvaTtmdW5jdGlvbiBrKHQsZSl7aWYoIXQpcmV0dXJuIG51bGw7dmFyIHI9dC5tYXRjaChlKSxuPXImJihyWzNdfHxyWzRdKTtyZXR1cm4gbiYmRShuKX12YXIgQT0vKF58Oylccypjb2xvcjovO3IucGxhaW5UZXh0PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXZvaWQgMCE9PShlPWV8fHt9KS5sZW4mJi0xIT09ZS5sZW4/ZS5sZW46MS8wLG49dm9pZCAwIT09ZS5hbGxvd2VkVGFncz9lLmFsbG93ZWRUYWdzOlsiYnIiXSxpPSIuLi4iLmxlbmd0aCxhPXQuc3BsaXQodiksbz1bXSxzPSIiLGw9MCxjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciB1PWFbY10sZj11Lm1hdGNoKHkpLGg9ZiYmZlsyXS50b0xvd2VyQ2FzZSgpO2lmKGgpLTEhPT1uLmluZGV4T2YoaCkmJihvLnB1c2godSkscz1oKTtlbHNle3ZhciBwPXUubGVuZ3RoO2lmKGwrcDxyKW8ucHVzaCh1KSxsKz1wO2Vsc2UgaWYobDxyKXt2YXIgZD1yLWw7cyYmKCJiciIhPT1zfHxkPD1pfHxwPD1pKSYmby5wb3AoKSxyPmk/by5wdXNoKHUuc3Vic3RyKDAsZC1pKSsiLi4uIik6by5wdXNoKHUuc3Vic3RyKDAsZCkpO2JyZWFrfXM9IiJ9fXJldHVybiBvLmpvaW4oIiIpfTt2YXIgTT17bXU6Ilx1MDNiYyIsYW1wOiImIixsdDoiPCIsZ3Q6Ij4iLG5ic3A6Ilx4YTAiLHRpbWVzOiJceGQ3IixwbHVzbW46Ilx4YjEiLGRlZzoiXHhiMCJ9LFM9LyYoI1xkK3wjeFtcZGEtZkEtRl0rfFthLXpdKyk7L2c7ZnVuY3Rpb24gRSh0KXtyZXR1cm4gdC5yZXBsYWNlKFMsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKCIjIj09PWUuY2hhckF0KDApP2Z1bmN0aW9uKHQpe2lmKHQ+MTExNDExMSlyZXR1cm47dmFyIGU9U3RyaW5nLmZyb21Db2RlUG9pbnQ7aWYoZSlyZXR1cm4gZSh0KTt2YXIgcj1TdHJpbmcuZnJvbUNoYXJDb2RlO3JldHVybiB0PD02NTUzNT9yKHQpOnIoNTUyMzIrKHQ+PjEwKSx0JTEwMjQrNTYzMjApfSgieCI9PT1lLmNoYXJBdCgxKT9wYXJzZUludChlLnN1YnN0cigyKSwxNik6cGFyc2VJbnQoZS5zdWJzdHIoMSksMTApKTpNW2VdKXx8dH0pKX1mdW5jdGlvbiBMKHQpe3ZhciBlPWVuY29kZVVSSShkZWNvZGVVUkkodCkpLHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpLG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO3IuaHJlZj10LG4uaHJlZj1lO3ZhciBpPXIucHJvdG9jb2wsYT1uLnByb3RvY29sO3JldHVybi0xIT09bS5pbmRleE9mKGkpJiYtMSE9PW0uaW5kZXhPZihhKT9lOiIifWZ1bmN0aW9uIEModCxlLHIpe3ZhciBuLGEsbyxzPXIuaG9yaXpvbnRhbEFsaWduLGw9ci52ZXJ0aWNhbEFsaWdufHwidG9wIixjPXQubm9kZSgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHU9ZS5ub2RlKCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuIGE9ImJvdHRvbSI9PT1sP2Z1bmN0aW9uKCl7cmV0dXJuIGMuYm90dG9tLW4uaGVpZ2h0fToibWlkZGxlIj09PWw/ZnVuY3Rpb24oKXtyZXR1cm4gYy50b3ArKGMuaGVpZ2h0LW4uaGVpZ2h0KS8yfTpmdW5jdGlvbigpe3JldHVybiBjLnRvcH0sbz0icmlnaHQiPT09cz9mdW5jdGlvbigpe3JldHVybiBjLnJpZ2h0LW4ud2lkdGh9OiJjZW50ZXIiPT09cz9mdW5jdGlvbigpe3JldHVybiBjLmxlZnQrKGMud2lkdGgtbi53aWR0aCkvMn06ZnVuY3Rpb24oKXtyZXR1cm4gYy5sZWZ0fSxmdW5jdGlvbigpe249dGhpcy5ub2RlKCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dmFyIHQ9bygpLXUubGVmdCxlPWEoKS11LnRvcCxzPXIuZ2R8fHt9O2lmKHIuZ2Qpe3MuX2Z1bGxMYXlvdXQuX2NhbGNJbnZlcnNlVHJhbnNmb3JtKHMpO3ZhciBsPWkuYXBwbHkzRFRyYW5zZm9ybShzLl9mdWxsTGF5b3V0Ll9pbnZUcmFuc2Zvcm0pKHQsZSk7dD1sWzBdLGU9bFsxXX1yZXR1cm4gdGhpcy5zdHlsZSh7dG9wOmUrInB4IixsZWZ0OnQrInB4Iiwiei1pbmRleCI6MWUzfSksdGhpc319ci5jb252ZXJ0RW50aXRpZXM9RSxyLnNhbml0aXplSFRNTD1mdW5jdGlvbih0KXt0PXQucmVwbGFjZShnLCIgIik7Zm9yKHZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKSxyPWUsaT1bXSxhPXQuc3BsaXQodiksbz0wO288YS5sZW5ndGg7bysrKXt2YXIgcz1hW29dLGw9cy5tYXRjaCh5KSxjPWwmJmxbMl0udG9Mb3dlckNhc2UoKTtpZihjIGluIGgpaWYobFsxXSlpLmxlbmd0aCYmKHI9aS5wb3AoKSk7ZWxzZXt2YXIgdT1sWzRdLGY9ayh1LGIpLHA9Zj97c3R5bGU6Zn06e307aWYoImEiPT09Yyl7dmFyIGQ9ayh1LF8pO2lmKGQpe3ZhciBtPUwoZCk7aWYobSl7cC5ocmVmPW07dmFyIHg9ayh1LHcpO3gmJihwLnRhcmdldD14KX19fXZhciBUPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYyk7ci5hcHBlbmRDaGlsZChUKSxuLnNlbGVjdChUKS5hdHRyKHApLHI9VCxpLnB1c2goVCl9ZWxzZSByLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKEUocykpKX1yZXR1cm4gZS5pbm5lckhUTUx9LHIubGluZUNvdW50PWZ1bmN0aW9uKHQpe3JldHVybiB0LnNlbGVjdEFsbCgidHNwYW4ubGluZSIpLnNpemUoKXx8MX0sci5wb3NpdGlvblRleHQ9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0LmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQ9bi5zZWxlY3QodGhpcyk7ZnVuY3Rpb24gaShlLHIpe3JldHVybiB2b2lkIDA9PT1yP251bGw9PT0ocj10LmF0dHIoZSkpJiYodC5hdHRyKGUsMCkscj0wKTp0LmF0dHIoZSxyKSxyfXZhciBhPWkoIngiLGUpLG89aSgieSIscik7InRleHQiPT09dGhpcy5ub2RlTmFtZSYmdC5zZWxlY3RBbGwoInRzcGFuLmxpbmUiKS5hdHRyKHt4OmEseTpvfSl9KSl9O3IubWFrZVRleHRTaGFkb3c9ZnVuY3Rpb24odCl7dmFyIGU9IjFweCAiLHI9IjFweCAiLG49IjFweCAiO3JldHVybiBlK3Irbit0KyIsIC0iK2UrIi0iK3Irbit0KyIsICIrZSsiLSIrcituK3QrIiwgLSIrZStyK24rdH0sci5tYWtlRWRpdGFibGU9ZnVuY3Rpb24odCxlKXt2YXIgcj1lLmdkLGk9ZS5kZWxlZ2F0ZSxhPW4uZGlzcGF0Y2goImVkaXQiLCJpbnB1dCIsImNhbmNlbCIpLG89aXx8dDtpZih0LnN0eWxlKHsicG9pbnRlci1ldmVudHMiOmk/Im5vbmUiOiJhbGwifSksMSE9PXQuc2l6ZSgpKXRocm93IG5ldyBFcnJvcigiYm9vIik7ZnVuY3Rpb24gcygpeyFmdW5jdGlvbigpe3ZhciBpPW4uc2VsZWN0KHIpLnNlbGVjdCgiLnN2Zy1jb250YWluZXIiKSxvPWkuYXBwZW5kKCJkaXYiKSxzPXQubm9kZSgpLnN0eWxlLGM9cGFyc2VGbG9hdChzLmZvbnRTaXplfHwxMiksdT1lLnRleHQ7dm9pZCAwPT09dSYmKHU9dC5hdHRyKCJkYXRhLXVuZm9ybWF0dGVkIikpO28uY2xhc3NlZCgicGx1Z2luLWVkaXRhYmxlIGVkaXRhYmxlIiwhMCkuc3R5bGUoe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsImZvbnQtZmFtaWx5IjpzLmZvbnRGYW1pbHl8fCJBcmlhbCIsImZvbnQtc2l6ZSI6Yyxjb2xvcjplLmZpbGx8fHMuZmlsbHx8ImJsYWNrIixvcGFjaXR5OjEsImJhY2tncm91bmQtY29sb3IiOmUuYmFja2dyb3VuZHx8InRyYW5zcGFyZW50IixvdXRsaW5lOiIjZmZmZmZmMzMgMXB4IHNvbGlkIixtYXJnaW46Wy1jLzgrMSwwLDAsLTFdLmpvaW4oInB4ICIpKyJweCIscGFkZGluZzoiMCIsImJveC1zaXppbmciOiJib3JkZXItYm94In0pLmF0dHIoe2NvbnRlbnRlZGl0YWJsZTohMH0pLnRleHQodSkuY2FsbChDKHQsaSxlKSkub24oImJsdXIiLChmdW5jdGlvbigpe3IuX2VkaXRpbmc9ITEsdC50ZXh0KHRoaXMudGV4dENvbnRlbnQpLnN0eWxlKHtvcGFjaXR5OjF9KTt2YXIgZSxpPW4uc2VsZWN0KHRoaXMpLmF0dHIoImNsYXNzIik7KGU9aT8iLiIraS5zcGxpdCgiICIpWzBdKyItbWF0aC1ncm91cCI6IltjbGFzcyo9LW1hdGgtZ3JvdXBdIikmJm4uc2VsZWN0KHQubm9kZSgpLnBhcmVudE5vZGUpLnNlbGVjdChlKS5zdHlsZSh7b3BhY2l0eTowfSk7dmFyIG89dGhpcy50ZXh0Q29udGVudDtuLnNlbGVjdCh0aGlzKS50cmFuc2l0aW9uKCkuZHVyYXRpb24oMCkucmVtb3ZlKCksbi5zZWxlY3QoZG9jdW1lbnQpLm9uKCJtb3VzZXVwIixudWxsKSxhLmVkaXQuY2FsbCh0LG8pfSkpLm9uKCJmb2N1cyIsKGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyLl9lZGl0aW5nPSEwLG4uc2VsZWN0KGRvY3VtZW50KS5vbigibW91c2V1cCIsKGZ1bmN0aW9uKCl7aWYobi5ldmVudC50YXJnZXQ9PT10KXJldHVybiExO2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1vLm5vZGUoKSYmby5ub2RlKCkuYmx1cigpfSkpfSkpLm9uKCJrZXl1cCIsKGZ1bmN0aW9uKCl7Mjc9PT1uLmV2ZW50LndoaWNoPyhyLl9lZGl0aW5nPSExLHQuc3R5bGUoe29wYWNpdHk6MX0pLG4uc2VsZWN0KHRoaXMpLnN0eWxlKHtvcGFjaXR5OjB9KS5vbigiYmx1ciIsKGZ1bmN0aW9uKCl7cmV0dXJuITF9KSkudHJhbnNpdGlvbigpLnJlbW92ZSgpLGEuY2FuY2VsLmNhbGwodCx0aGlzLnRleHRDb250ZW50KSk6KGEuaW5wdXQuY2FsbCh0LHRoaXMudGV4dENvbnRlbnQpLG4uc2VsZWN0KHRoaXMpLmNhbGwoQyh0LGksZSkpKX0pKS5vbigia2V5ZG93biIsKGZ1bmN0aW9uKCl7MTM9PT1uLmV2ZW50LndoaWNoJiZ0aGlzLmJsdXIoKX0pKS5jYWxsKGwpfSgpLHQuc3R5bGUoe29wYWNpdHk6MH0pO3ZhciBpLHM9by5hdHRyKCJjbGFzcyIpOyhpPXM/Ii4iK3Muc3BsaXQoIiAiKVswXSsiLW1hdGgtZ3JvdXAiOiJbY2xhc3MqPS1tYXRoLWdyb3VwXSIpJiZuLnNlbGVjdCh0Lm5vZGUoKS5wYXJlbnROb2RlKS5zZWxlY3QoaSkuc3R5bGUoe29wYWNpdHk6MH0pfWZ1bmN0aW9uIGwodCl7dmFyIGU9dC5ub2RlKCkscj1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3Iuc2VsZWN0Tm9kZUNvbnRlbnRzKGUpO3ZhciBuPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtuLnJlbW92ZUFsbFJhbmdlcygpLG4uYWRkUmFuZ2UociksZS5mb2N1cygpfXJldHVybiBlLmltbWVkaWF0ZT9zKCk6by5vbigiY2xpY2siLHMpLG4ucmViaW5kKHQsYSwib24iKX19LHsiLi4vY29uc3RhbnRzL2FsaWdubWVudCI6NDgzLCIuLi9jb25zdGFudHMveG1sbnNfbmFtZXNwYWNlcyI6NDkyLCIuLi9saWIiOjUxNSwiQHBsb3RseS9kMyI6NTh9XSw1NDI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49e307ZnVuY3Rpb24gaSh0KXt0JiZudWxsIT09dC50aW1lciYmKGNsZWFyVGltZW91dCh0LnRpbWVyKSx0LnRpbWVyPW51bGwpfXIudGhyb3R0bGU9ZnVuY3Rpb24odCxlLHIpe3ZhciBhPW5bdF0sbz1EYXRlLm5vdygpO2lmKCFhKXtmb3IodmFyIHMgaW4gbiluW3NdLnRzPG8tNmU0JiZkZWxldGUgbltzXTthPW5bdF09e3RzOjAsdGltZXI6bnVsbH19ZnVuY3Rpb24gbCgpe3IoKSxhLnRzPURhdGUubm93KCksYS5vbkRvbmUmJihhLm9uRG9uZSgpLGEub25Eb25lPW51bGwpfWkoYSksbz5hLnRzK2U/bCgpOmEudGltZXI9c2V0VGltZW91dCgoZnVuY3Rpb24oKXtsKCksYS50aW1lcj1udWxsfSksZSl9LHIuZG9uZT1mdW5jdGlvbih0KXt2YXIgZT1uW3RdO3JldHVybiBlJiZlLnRpbWVyP25ldyBQcm9taXNlKChmdW5jdGlvbih0KXt2YXIgcj1lLm9uRG9uZTtlLm9uRG9uZT1mdW5jdGlvbigpe3ImJnIoKSx0KCksZS5vbkRvbmU9bnVsbH19KSk6UHJvbWlzZS5yZXNvbHZlKCl9LHIuY2xlYXI9ZnVuY3Rpb24odCl7aWYodClpKG5bdF0pLGRlbGV0ZSBuW3RdO2Vsc2UgZm9yKHZhciBlIGluIG4pci5jbGVhcihlKX19LHt9XSw1NDM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZih0PjApcmV0dXJuIE1hdGgubG9nKHQpL01hdGguTE4xMDt2YXIgcj1NYXRoLmxvZyhNYXRoLm1pbihlWzBdLGVbMV0pKS9NYXRoLkxOMTA7cmV0dXJuIG4ocil8fChyPU1hdGgubG9nKE1hdGgubWF4KGVbMF0sZVsxXSkpL01hdGguTE4xMC02KSxyfX0seyJmYXN0LWlzbnVtZXJpYyI6MTkwfV0sNTQ0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPWUuZXhwb3J0cz17fSxpPXQoIi4uL3Bsb3RzL2dlby9jb25zdGFudHMiKS5sb2NhdGlvbm1vZGVUb0xheWVyLGE9dCgidG9wb2pzb24tY2xpZW50IikuZmVhdHVyZTtuLmdldFRvcG9qc29uTmFtZT1mdW5jdGlvbih0KXtyZXR1cm5bdC5zY29wZS5yZXBsYWNlKC8gL2csIi0iKSwiXyIsdC5yZXNvbHV0aW9uLnRvU3RyaW5nKCksIm0iXS5qb2luKCIiKX0sbi5nZXRUb3BvanNvblBhdGg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlKyIuanNvbiJ9LG4uZ2V0VG9wb2pzb25GZWF0dXJlcz1mdW5jdGlvbih0LGUpe3ZhciByPWlbdC5sb2NhdGlvbm1vZGVdLG49ZS5vYmplY3RzW3JdO3JldHVybiBhKGUsbikuZmVhdHVyZXN9fSx7Ii4uL3Bsb3RzL2dlby9jb25zdGFudHMiOjU5NiwidG9wb2pzb24tY2xpZW50IjozMTZ9XSw1NDU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJsb2NhbGUiLG5hbWU6ImVuLVVTIixkaWN0aW9uYXJ5OnsiQ2xpY2sgdG8gZW50ZXIgQ29sb3JzY2FsZSB0aXRsZSI6IkNsaWNrIHRvIGVudGVyIENvbG9yc2NhbGUgdGl0bGUifSxmb3JtYXQ6e2RhdGU6IiVtLyVkLyVZIn19fSx7fV0sNTQ2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17bW9kdWxlVHlwZToibG9jYWxlIixuYW1lOiJlbiIsZGljdGlvbmFyeTp7IkNsaWNrIHRvIGVudGVyIENvbG9yc2NhbGUgdGl0bGUiOiJDbGljayB0byBlbnRlciBDb2xvdXJzY2FsZSB0aXRsZSJ9LGZvcm1hdDp7ZGF5czpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il0sc2hvcnREYXlzOlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sbW9udGhzOlsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXSxzaG9ydE1vbnRoczpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLHBlcmlvZHM6WyJBTSIsIlBNIl0sZGF0ZVRpbWU6IiVhICViICVlICVYICVZIixkYXRlOiIlZC8lbS8lWSIsdGltZToiJUg6JU06JVMiLGRlY2ltYWw6Ii4iLHRob3VzYW5kczoiLCIsZ3JvdXBpbmc6WzNdLGN1cnJlbmN5OlsiJCIsIiJdLHllYXI6IiVZIixtb250aDoiJWIgJVkiLGRheU1vbnRoOiIlYiAlLWQiLGRheU1vbnRoWWVhcjoiJWIgJS1kLCAlWSJ9fX0se31dLDU0NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9yZWdpc3RyeSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtmb3IodmFyIGUscixpPW4ubGF5b3V0QXJyYXlDb250YWluZXJzLGE9bi5sYXlvdXRBcnJheVJlZ2V4ZXMsbz10LnNwbGl0KCJbIilbMF0scz0wO3M8YS5sZW5ndGg7cysrKWlmKChyPXQubWF0Y2goYVtzXSkpJiYwPT09ci5pbmRleCl7ZT1yWzBdO2JyZWFrfWlmKGV8fChlPWlbaS5pbmRleE9mKG8pXSksIWUpcmV0dXJuITE7dmFyIGw9dC5zdWJzdHIoZS5sZW5ndGgpO3JldHVybiBsPyEhKHI9bC5tYXRjaCgvXlxbKDB8WzEtOV1bMC05XSopXF0oXC4oLispKT8kLykpJiZ7YXJyYXk6ZSxpbmRleDpOdW1iZXIoclsxXSkscHJvcGVydHk6clszXXx8IiJ9OnthcnJheTplLGluZGV4OiIiLHByb3BlcnR5OiIifX19LHsiLi4vcmVnaXN0cnkiOjY0N31dLDU0ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9saWIiKSxpPW4uZXh0ZW5kRmxhdCxhPW4uaXNQbGFpbk9iamVjdCxvPXt2YWxUeXBlOiJmbGFnbGlzdCIsZXh0cmFzOlsibm9uZSJdLGZsYWdzOlsiY2FsYyIsImNsZWFyQXhpc1R5cGVzIiwicGxvdCIsInN0eWxlIiwibWFya2VyU2l6ZSIsImNvbG9yYmFycyJdfSxzPXt2YWxUeXBlOiJmbGFnbGlzdCIsZXh0cmFzOlsibm9uZSJdLGZsYWdzOlsiY2FsYyIsInBsb3QiLCJsZWdlbmQiLCJ0aWNrcyIsImF4cmFuZ2UiLCJsYXlvdXRzdHlsZSIsIm1vZGViYXIiLCJjYW1lcmEiLCJhcnJheWRyYXciLCJjb2xvcmJhcnMiXX0sbD1vLmZsYWdzLnNsaWNlKCkuY29uY2F0KFsiZnVsbFJlcGxvdCJdKSxjPXMuZmxhZ3Muc2xpY2UoKS5jb25jYXQoImxheW91dFJlcGxvdCIpO2Z1bmN0aW9uIHUodCl7Zm9yKHZhciBlPXt9LHI9MDtyPHQubGVuZ3RoO3IrKyllW3Rbcl1dPSExO3JldHVybiBlfWZ1bmN0aW9uIGYodCxlLHIpe3ZhciBuPWkoe30sdCk7Zm9yKHZhciBvIGluIG4pe3ZhciBzPW5bb107YShzKSYmKG5bb109aChzLGUscixvKSl9cmV0dXJuImZyb20tcm9vdCI9PT1yJiYobi5lZGl0VHlwZT1lKSxufWZ1bmN0aW9uIGgodCxlLHIsbil7aWYodC52YWxUeXBlKXt2YXIgYT1pKHt9LHQpO2lmKGEuZWRpdFR5cGU9ZSxBcnJheS5pc0FycmF5KHQuaXRlbXMpKXthLml0ZW1zPW5ldyBBcnJheSh0Lml0ZW1zLmxlbmd0aCk7Zm9yKHZhciBvPTA7bzx0Lml0ZW1zLmxlbmd0aDtvKyspYS5pdGVtc1tvXT1oKHQuaXRlbXNbb10sZSwiZnJvbS1yb290Iil9cmV0dXJuIGF9cmV0dXJuIGYodCxlLCJfIj09PW4uY2hhckF0KDApPyJuZXN0ZWQiOiJmcm9tLXJvb3QiKX1lLmV4cG9ydHM9e3RyYWNlczpvLGxheW91dDpzLHRyYWNlRmxhZ3M6ZnVuY3Rpb24oKXtyZXR1cm4gdShsKX0sbGF5b3V0RmxhZ3M6ZnVuY3Rpb24oKXtyZXR1cm4gdShjKX0sdXBkYXRlOmZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS5lZGl0VHlwZTtpZihyJiYibm9uZSIhPT1yKWZvcih2YXIgbj1yLnNwbGl0KCIrIiksaT0wO2k8bi5sZW5ndGg7aSsrKXRbbltpXV09ITB9LG92ZXJyaWRlQWxsOmZ9fSx7Ii4uL2xpYiI6NTE1fV0sNTQ5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksaT10KCJnbC1tYXQ0L2Zyb21RdWF0IiksYT10KCIuLi9yZWdpc3RyeSIpLG89dCgiLi4vbGliIikscz10KCIuLi9wbG90cy9wbG90cyIpLGw9dCgiLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIiksYz10KCIuLi9jb21wb25lbnRzL2NvbG9yIiksdT1sLmNsZWFuSWQsZj1sLmdldEZyb21UcmFjZSxoPWEudHJhY2VJcztmdW5jdGlvbiBwKHQsZSl7dmFyIHI9dFtlXSxuPWUuY2hhckF0KDApO3ImJiJwYXBlciIhPT1yJiYodFtlXT11KHIsbiwhMCkpfWZ1bmN0aW9uIGQodCl7ZnVuY3Rpb24gZShlLHIpe3ZhciBuPXRbZV0saT10LnRpdGxlJiZ0LnRpdGxlW3JdO24mJiFpJiYodC50aXRsZXx8KHQudGl0bGU9e30pLHQudGl0bGVbcl09dFtlXSxkZWxldGUgdFtlXSl9dCYmKCJzdHJpbmciIT10eXBlb2YgdC50aXRsZSYmIm51bWJlciIhPXR5cGVvZiB0LnRpdGxlfHwodC50aXRsZT17dGV4dDp0LnRpdGxlfSksZSgidGl0bGVmb250IiwiZm9udCIpLGUoInRpdGxlcG9zaXRpb24iLCJwb3NpdGlvbiIpLGUoInRpdGxlc2lkZSIsInNpZGUiKSxlKCJ0aXRsZW9mZnNldCIsIm9mZnNldCIpKX1mdW5jdGlvbiBtKHQpe2lmKCFvLmlzUGxhaW5PYmplY3QodCkpcmV0dXJuITE7dmFyIGU9dC5uYW1lO3JldHVybiBkZWxldGUgdC5uYW1lLGRlbGV0ZSB0LnNob3dsZWdlbmQsKCJzdHJpbmciPT10eXBlb2YgZXx8Im51bWJlciI9PXR5cGVvZiBlKSYmU3RyaW5nKGUpfWZ1bmN0aW9uIGcodCxlLHIsbil7aWYociYmIW4pcmV0dXJuIHQ7aWYobiYmIXIpcmV0dXJuIGU7aWYoIXQudHJpbSgpKXJldHVybiBlO2lmKCFlLnRyaW0oKSlyZXR1cm4gdDt2YXIgaSxhPU1hdGgubWluKHQubGVuZ3RoLGUubGVuZ3RoKTtmb3IoaT0wO2k8YSYmdC5jaGFyQXQoaSk9PT1lLmNoYXJBdChpKTtpKyspO3JldHVybiB0LnN1YnN0cigwLGkpLnRyaW0oKX1mdW5jdGlvbiB2KHQpe3ZhciBlPSJtaWRkbGUiLHI9ImNlbnRlciI7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0JiYoLTEhPT10LmluZGV4T2YoInRvcCIpP2U9InRvcCI6LTEhPT10LmluZGV4T2YoImJvdHRvbSIpJiYoZT0iYm90dG9tIiksLTEhPT10LmluZGV4T2YoImxlZnQiKT9yPSJsZWZ0IjotMSE9PXQuaW5kZXhPZigicmlnaHQiKSYmKHI9InJpZ2h0IikpLGUrIiAiK3J9ZnVuY3Rpb24geSh0LGUpe3JldHVybiBlIGluIHQmJiJvYmplY3QiPT10eXBlb2YgdFtlXSYmMD09PU9iamVjdC5rZXlzKHRbZV0pLmxlbmd0aH1yLmNsZWFyUHJvbWlzZVF1ZXVlPWZ1bmN0aW9uKHQpe0FycmF5LmlzQXJyYXkodC5fcHJvbWlzZXMpJiZ0Ll9wcm9taXNlcy5sZW5ndGg+MCYmby5sb2coIkNsZWFyaW5nIHByZXZpb3VzIHJlamVjdGVkIHByb21pc2VzIGZyb20gcXVldWUuIiksdC5fcHJvbWlzZXM9W119LHIuY2xlYW5MYXlvdXQ9ZnVuY3Rpb24odCl7dmFyIGUsbjt0fHwodD17fSksdC54YXhpczEmJih0LnhheGlzfHwodC54YXhpcz10LnhheGlzMSksZGVsZXRlIHQueGF4aXMxKSx0LnlheGlzMSYmKHQueWF4aXN8fCh0LnlheGlzPXQueWF4aXMxKSxkZWxldGUgdC55YXhpczEpLHQuc2NlbmUxJiYodC5zY2VuZXx8KHQuc2NlbmU9dC5zY2VuZTEpLGRlbGV0ZSB0LnNjZW5lMSk7dmFyIGE9KHMuc3VicGxvdHNSZWdpc3RyeS5jYXJ0ZXNpYW58fHt9KS5hdHRyUmVnZXgsbD0ocy5zdWJwbG90c1JlZ2lzdHJ5LnBvbGFyfHx7fSkuYXR0clJlZ2V4LGY9KHMuc3VicGxvdHNSZWdpc3RyeS50ZXJuYXJ5fHx7fSkuYXR0clJlZ2V4LGg9KHMuc3VicGxvdHNSZWdpc3RyeS5nbDNkfHx7fSkuYXR0clJlZ2V4LG09T2JqZWN0LmtleXModCk7Zm9yKGU9MDtlPG0ubGVuZ3RoO2UrKyl7dmFyIGc9bVtlXTtpZihhJiZhLnRlc3QoZykpe3ZhciB2PXRbZ107di5hbmNob3ImJiJmcmVlIiE9PXYuYW5jaG9yJiYodi5hbmNob3I9dSh2LmFuY2hvcikpLHYub3ZlcmxheWluZyYmKHYub3ZlcmxheWluZz11KHYub3ZlcmxheWluZykpLHYudHlwZXx8KHYuaXNkYXRlP3YudHlwZT0iZGF0ZSI6di5pc2xvZz92LnR5cGU9ImxvZyI6ITE9PT12LmlzZGF0ZSYmITE9PT12LmlzbG9nJiYodi50eXBlPSJsaW5lYXIiKSksIndpdGh6ZXJvIiE9PXYuYXV0b3JhbmdlJiYidG96ZXJvIiE9PXYuYXV0b3JhbmdlfHwodi5hdXRvcmFuZ2U9ITAsdi5yYW5nZW1vZGU9InRvemVybyIpLGRlbGV0ZSB2LmlzbG9nLGRlbGV0ZSB2LmlzZGF0ZSxkZWxldGUgdi5jYXRlZ29yaWVzLHkodiwiZG9tYWluIikmJmRlbGV0ZSB2LmRvbWFpbix2b2lkIDAhPT12LmF1dG90aWNrJiYodm9pZCAwPT09di50aWNrbW9kZSYmKHYudGlja21vZGU9di5hdXRvdGljaz8iYXV0byI6ImxpbmVhciIpLGRlbGV0ZSB2LmF1dG90aWNrKSxkKHYpfWVsc2UgaWYobCYmbC50ZXN0KGcpKXtkKHRbZ10ucmFkaWFsYXhpcyl9ZWxzZSBpZihmJiZmLnRlc3QoZykpe3ZhciB4PXRbZ107ZCh4LmFheGlzKSxkKHguYmF4aXMpLGQoeC5jYXhpcyl9ZWxzZSBpZihoJiZoLnRlc3QoZykpe3ZhciBiPXRbZ10sXz1iLmNhbWVyYXBvc2l0aW9uO2lmKEFycmF5LmlzQXJyYXkoXykmJjQ9PT1fWzBdLmxlbmd0aCl7dmFyIHc9X1swXSxUPV9bMV0saz1fWzJdLEE9aShbXSx3KSxNPVtdO2ZvcihuPTA7bjwzOysrbilNW25dPVRbbl0raypBWzIrNCpuXTtiLmNhbWVyYT17ZXllOnt4Ok1bMF0seTpNWzFdLHo6TVsyXX0sY2VudGVyOnt4OlRbMF0seTpUWzFdLHo6VFsyXX0sdXA6e3g6MCx5OjAsejoxfX0sZGVsZXRlIGIuY2FtZXJhcG9zaXRpb259ZChiLnhheGlzKSxkKGIueWF4aXMpLGQoYi56YXhpcyl9fXZhciBTPUFycmF5LmlzQXJyYXkodC5hbm5vdGF0aW9ucyk/dC5hbm5vdGF0aW9ucy5sZW5ndGg6MDtmb3IoZT0wO2U8UztlKyspe3ZhciBFPXQuYW5ub3RhdGlvbnNbZV07by5pc1BsYWluT2JqZWN0KEUpJiYoRS5yZWYmJigicGFwZXIiPT09RS5yZWY/KEUueHJlZj0icGFwZXIiLEUueXJlZj0icGFwZXIiKToiZGF0YSI9PT1FLnJlZiYmKEUueHJlZj0ieCIsRS55cmVmPSJ5IiksZGVsZXRlIEUucmVmKSxwKEUsInhyZWYiKSxwKEUsInlyZWYiKSl9dmFyIEw9QXJyYXkuaXNBcnJheSh0LnNoYXBlcyk/dC5zaGFwZXMubGVuZ3RoOjA7Zm9yKGU9MDtlPEw7ZSsrKXt2YXIgQz10LnNoYXBlc1tlXTtvLmlzUGxhaW5PYmplY3QoQykmJihwKEMsInhyZWYiKSxwKEMsInlyZWYiKSl9dmFyIFA9QXJyYXkuaXNBcnJheSh0LmltYWdlcyk/dC5pbWFnZXMubGVuZ3RoOjA7Zm9yKGU9MDtlPFA7ZSsrKXt2YXIgST10LmltYWdlc1tlXTtvLmlzUGxhaW5PYmplY3QoSSkmJihwKEksInhyZWYiKSxwKEksInlyZWYiKSl9dmFyIE89dC5sZWdlbmQ7cmV0dXJuIE8mJihPLng+Mz8oTy54PTEuMDIsTy54YW5jaG9yPSJsZWZ0Iik6Ty54PC0yJiYoTy54PS0uMDIsTy54YW5jaG9yPSJyaWdodCIpLE8ueT4zPyhPLnk9MS4wMixPLnlhbmNob3I9ImJvdHRvbSIpOk8ueTwtMiYmKE8ueT0tLjAyLE8ueWFuY2hvcj0idG9wIikpLGQodCksInJvdGF0ZSI9PT10LmRyYWdtb2RlJiYodC5kcmFnbW9kZT0ib3JiaXQiKSxjLmNsZWFuKHQpLHQudGVtcGxhdGUmJnQudGVtcGxhdGUubGF5b3V0JiZyLmNsZWFuTGF5b3V0KHQudGVtcGxhdGUubGF5b3V0KSx0fSxyLmNsZWFuRGF0YT1mdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPHQubGVuZ3RoO2UrKyl7dmFyIG4saT10W2VdO2lmKCJoaXN0b2dyYW15Ij09PWkudHlwZSYmInhiaW5zImluIGkmJiEoInliaW5zImluIGkpJiYoaS55Ymlucz1pLnhiaW5zLGRlbGV0ZSBpLnhiaW5zKSxpLmVycm9yX3kmJiJvcGFjaXR5ImluIGkuZXJyb3JfeSl7dmFyIGw9Yy5kZWZhdWx0cyxmPWkuZXJyb3JfeS5jb2xvcnx8KGgoaSwiYmFyIik/Yy5kZWZhdWx0TGluZTpsW2UlbC5sZW5ndGhdKTtpLmVycm9yX3kuY29sb3I9Yy5hZGRPcGFjaXR5KGMucmdiKGYpLGMub3BhY2l0eShmKSppLmVycm9yX3kub3BhY2l0eSksZGVsZXRlIGkuZXJyb3JfeS5vcGFjaXR5fWlmKCJiYXJkaXIiaW4gaSYmKCJoIiE9PWkuYmFyZGlyfHwhaChpLCJiYXIiKSYmImhpc3RvZ3JhbSIhPT1pLnR5cGUuc3Vic3RyKDAsOSl8fChpLm9yaWVudGF0aW9uPSJoIixyLnN3YXBYWURhdGEoaSkpLGRlbGV0ZSBpLmJhcmRpciksImhpc3RvZ3JhbXkiPT09aS50eXBlJiZyLnN3YXBYWURhdGEoaSksImhpc3RvZ3JhbXgiIT09aS50eXBlJiYiaGlzdG9ncmFteSIhPT1pLnR5cGV8fChpLnR5cGU9Imhpc3RvZ3JhbSIpLCJzY2wiaW4gaSYmISgiY29sb3JzY2FsZSJpbiBpKSYmKGkuY29sb3JzY2FsZT1pLnNjbCxkZWxldGUgaS5zY2wpLCJyZXZlcnNlc2NsImluIGkmJiEoInJldmVyc2VzY2FsZSJpbiBpKSYmKGkucmV2ZXJzZXNjYWxlPWkucmV2ZXJzZXNjbCxkZWxldGUgaS5yZXZlcnNlc2NsKSxpLnhheGlzJiYoaS54YXhpcz11KGkueGF4aXMsIngiKSksaS55YXhpcyYmKGkueWF4aXM9dShpLnlheGlzLCJ5IikpLGgoaSwiZ2wzZCIpJiZpLnNjZW5lJiYoaS5zY2VuZT1zLnN1YnBsb3RzUmVnaXN0cnkuZ2wzZC5jbGVhbklkKGkuc2NlbmUpKSwhaChpLCJwaWUtbGlrZSIpJiYhaChpLCJiYXItbGlrZSIpKWlmKEFycmF5LmlzQXJyYXkoaS50ZXh0cG9zaXRpb24pKWZvcihuPTA7bjxpLnRleHRwb3NpdGlvbi5sZW5ndGg7bisrKWkudGV4dHBvc2l0aW9uW25dPXYoaS50ZXh0cG9zaXRpb25bbl0pO2Vsc2UgaS50ZXh0cG9zaXRpb24mJihpLnRleHRwb3NpdGlvbj12KGkudGV4dHBvc2l0aW9uKSk7dmFyIHA9YS5nZXRNb2R1bGUoaSk7aWYocCYmcC5jb2xvcmJhcil7dmFyIHg9cC5jb2xvcmJhci5jb250YWluZXIsYj14P2lbeF06aTtiJiZiLmNvbG9yc2NhbGUmJigiWUlHbkJ1Ij09PWIuY29sb3JzY2FsZSYmKGIuY29sb3JzY2FsZT0iWWxHbkJ1IiksIllJT3JSZCI9PT1iLmNvbG9yc2NhbGUmJihiLmNvbG9yc2NhbGU9IllsT3JSZCIpKX1pZigic3VyZmFjZSI9PT1pLnR5cGUmJm8uaXNQbGFpbk9iamVjdChpLmNvbnRvdXJzKSl7dmFyIF89WyJ4IiwieSIsInoiXTtmb3Iobj0wO248Xy5sZW5ndGg7bisrKXt2YXIgdz1pLmNvbnRvdXJzW19bbl1dO28uaXNQbGFpbk9iamVjdCh3KSYmKHcuaGlnaGxpZ2h0Q29sb3ImJih3LmhpZ2hsaWdodGNvbG9yPXcuaGlnaGxpZ2h0Q29sb3IsZGVsZXRlIHcuaGlnaGxpZ2h0Q29sb3IpLHcuaGlnaGxpZ2h0V2lkdGgmJih3LmhpZ2hsaWdodHdpZHRoPXcuaGlnaGxpZ2h0V2lkdGgsZGVsZXRlIHcuaGlnaGxpZ2h0V2lkdGgpKX19aWYoImNhbmRsZXN0aWNrIj09PWkudHlwZXx8Im9obGMiPT09aS50eXBlKXt2YXIgVD0hMSE9PShpLmluY3JlYXNpbmd8fHt9KS5zaG93bGVnZW5kLGs9ITEhPT0oaS5kZWNyZWFzaW5nfHx7fSkuc2hvd2xlZ2VuZCxBPW0oaS5pbmNyZWFzaW5nKSxNPW0oaS5kZWNyZWFzaW5nKTtpZighMSE9PUEmJiExIT09TSl7dmFyIFM9ZyhBLE0sVCxrKTtTJiYoaS5uYW1lPVMpfWVsc2UhQSYmIU18fGkubmFtZXx8KGkubmFtZT1BfHxNKX1pZihBcnJheS5pc0FycmF5KGkudHJhbnNmb3Jtcykpe3ZhciBFPWkudHJhbnNmb3Jtcztmb3Iobj0wO248RS5sZW5ndGg7bisrKXt2YXIgTD1FW25dO2lmKG8uaXNQbGFpbk9iamVjdChMKSlzd2l0Y2goTC50eXBlKXtjYXNlImZpbHRlciI6TC5maWx0ZXJzcmMmJihMLnRhcmdldD1MLmZpbHRlcnNyYyxkZWxldGUgTC5maWx0ZXJzcmMpLEwuY2FsZW5kYXImJihMLnZhbHVlY2FsZW5kYXJ8fChMLnZhbHVlY2FsZW5kYXI9TC5jYWxlbmRhciksZGVsZXRlIEwuY2FsZW5kYXIpO2JyZWFrO2Nhc2UiZ3JvdXBieSI6aWYoTC5zdHlsZXM9TC5zdHlsZXN8fEwuc3R5bGUsTC5zdHlsZXMmJiFBcnJheS5pc0FycmF5KEwuc3R5bGVzKSl7dmFyIEM9TC5zdHlsZXMsUD1PYmplY3Qua2V5cyhDKTtMLnN0eWxlcz1bXTtmb3IodmFyIEk9MDtJPFAubGVuZ3RoO0krKylMLnN0eWxlcy5wdXNoKHt0YXJnZXQ6UFtJXSx2YWx1ZTpDW1BbSV1dfSl9fX19eShpLCJsaW5lIikmJmRlbGV0ZSBpLmxpbmUsIm1hcmtlciJpbiBpJiYoeShpLm1hcmtlciwibGluZSIpJiZkZWxldGUgaS5tYXJrZXIubGluZSx5KGksIm1hcmtlciIpJiZkZWxldGUgaS5tYXJrZXIpLGMuY2xlYW4oaSksaS5hdXRvYmlueCYmKGRlbGV0ZSBpLmF1dG9iaW54LGRlbGV0ZSBpLnhiaW5zKSxpLmF1dG9iaW55JiYoZGVsZXRlIGkuYXV0b2JpbnksZGVsZXRlIGkueWJpbnMpLGQoaSksaS5jb2xvcmJhciYmZChpLmNvbG9yYmFyKSxpLm1hcmtlciYmaS5tYXJrZXIuY29sb3JiYXImJmQoaS5tYXJrZXIuY29sb3JiYXIpLGkubGluZSYmaS5saW5lLmNvbG9yYmFyJiZkKGkubGluZS5jb2xvcmJhciksaS5hYXhpcyYmZChpLmFheGlzKSxpLmJheGlzJiZkKGkuYmF4aXMpfX0sci5zd2FwWFlEYXRhPWZ1bmN0aW9uKHQpe3ZhciBlO2lmKG8uc3dhcEF0dHJzKHQsWyI/IiwiPzAiLCJkPyIsIj9iaW5zIiwibmJpbnM/IiwiYXV0b2Jpbj8iLCI/c3JjIiwiZXJyb3JfPyJdKSxBcnJheS5pc0FycmF5KHQueikmJkFycmF5LmlzQXJyYXkodC56WzBdKSYmKHQudHJhbnNwb3NlP2RlbGV0ZSB0LnRyYW5zcG9zZTp0LnRyYW5zcG9zZT0hMCksdC5lcnJvcl94JiZ0LmVycm9yX3kpe3ZhciByPXQuZXJyb3JfeSxuPSJjb3B5X3lzdHlsZSJpbiByP3IuY29weV95c3R5bGU6IShyLmNvbG9yfHxyLnRoaWNrbmVzc3x8ci53aWR0aCk7by5zd2FwQXR0cnModCxbImVycm9yXz8uY29weV95c3R5bGUiXSksbiYmby5zd2FwQXR0cnModCxbImVycm9yXz8uY29sb3IiLCJlcnJvcl8/LnRoaWNrbmVzcyIsImVycm9yXz8ud2lkdGgiXSl9aWYoInN0cmluZyI9PXR5cGVvZiB0LmhvdmVyaW5mbyl7dmFyIGk9dC5ob3ZlcmluZm8uc3BsaXQoIisiKTtmb3IoZT0wO2U8aS5sZW5ndGg7ZSsrKSJ4Ij09PWlbZV0/aVtlXT0ieSI6InkiPT09aVtlXSYmKGlbZV09IngiKTt0LmhvdmVyaW5mbz1pLmpvaW4oIisiKX19LHIuY29lcmNlVHJhY2VJbmRpY2VzPWZ1bmN0aW9uKHQsZSl7aWYobihlKSlyZXR1cm5bZV07aWYoIUFycmF5LmlzQXJyYXkoZSl8fCFlLmxlbmd0aClyZXR1cm4gdC5kYXRhLm1hcCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gZX0pKTtpZihBcnJheS5pc0FycmF5KGUpKXtmb3IodmFyIHI9W10saT0wO2k8ZS5sZW5ndGg7aSsrKW8uaXNJbmRleChlW2ldLHQuZGF0YS5sZW5ndGgpP3IucHVzaChlW2ldKTpvLndhcm4oInRyYWNlIGluZGV4ICgiLGVbaV0sIikgaXMgbm90IGEgbnVtYmVyIG9yIGlzIG91dCBvZiBib3VuZHMiKTtyZXR1cm4gcn1yZXR1cm4gZX0sci5tYW5hZ2VBcnJheUNvbnRhaW5lcnM9ZnVuY3Rpb24odCxlLHIpe3ZhciBpPXQub2JqLGE9dC5wYXJ0cyxzPWEubGVuZ3RoLGw9YVtzLTFdLGM9bihsKTtpZihjJiZudWxsPT09ZSl7dmFyIHU9YS5zbGljZSgwLHMtMSkuam9pbigiLiIpO28ubmVzdGVkUHJvcGVydHkoaSx1KS5nZXQoKS5zcGxpY2UobCwxKX1lbHNlIGMmJnZvaWQgMD09PXQuZ2V0KCk/KHZvaWQgMD09PXQuZ2V0KCkmJihyW3QuYXN0cl09bnVsbCksdC5zZXQoZSkpOnQuc2V0KGUpfTt2YXIgeD0vKFwuW15cW1xdXC5dK3xcW1teXFtcXVwuXStcXSkkLztmdW5jdGlvbiBiKHQpe3ZhciBlPXQuc2VhcmNoKHgpO2lmKGU+MClyZXR1cm4gdC5zdWJzdHIoMCxlKX1yLmhhc1BhcmVudD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1iKGUpO3I7KXtpZihyIGluIHQpcmV0dXJuITA7cj1iKHIpfXJldHVybiExfTt2YXIgXz1bIngiLCJ5IiwieiJdO3IuY2xlYXJBeGlzVHlwZXM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKWZvcih2YXIgaT10Ll9mdWxsRGF0YVtuXSxhPTA7YTwzO2ErKyl7dmFyIHM9Zih0LGksX1thXSk7aWYocyYmImxvZyIhPT1zLnR5cGUpe3ZhciBsPXMuX25hbWUsYz1zLl9pZC5zdWJzdHIoMSk7aWYoInNjZW5lIj09PWMuc3Vic3RyKDAsNSkpe2lmKHZvaWQgMCE9PXJbY10pY29udGludWU7bD1jKyIuIitsfXZhciB1PWwrIi50eXBlIjt2b2lkIDA9PT1yW2xdJiZ2b2lkIDA9PT1yW3VdJiZvLm5lc3RlZFByb3BlcnR5KHQubGF5b3V0LHUpLnNldChudWxsKX19fX0seyIuLi9jb21wb25lbnRzL2NvbG9yIjozNjcsIi4uL2xpYiI6NTE1LCIuLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19pZHMiOjU3MCwiLi4vcGxvdHMvcGxvdHMiOjYyOCwiLi4vcmVnaXN0cnkiOjY0NywiZmFzdC1pc251bWVyaWMiOjE5MCwiZ2wtbWF0NC9mcm9tUXVhdCI6MjAwfV0sNTUwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vcGxvdF9hcGkiKTtyLl9kb1Bsb3Q9bi5fZG9QbG90LHIubmV3UGxvdD1uLm5ld1Bsb3Qsci5yZXN0eWxlPW4ucmVzdHlsZSxyLnJlbGF5b3V0PW4ucmVsYXlvdXQsci5yZWRyYXc9bi5yZWRyYXcsci51cGRhdGU9bi51cGRhdGUsci5fZ3VpUmVzdHlsZT1uLl9ndWlSZXN0eWxlLHIuX2d1aVJlbGF5b3V0PW4uX2d1aVJlbGF5b3V0LHIuX2d1aVVwZGF0ZT1uLl9ndWlVcGRhdGUsci5fc3RvcmVEaXJlY3RHVUlFZGl0PW4uX3N0b3JlRGlyZWN0R1VJRWRpdCxyLnJlYWN0PW4ucmVhY3Qsci5leHRlbmRUcmFjZXM9bi5leHRlbmRUcmFjZXMsci5wcmVwZW5kVHJhY2VzPW4ucHJlcGVuZFRyYWNlcyxyLmFkZFRyYWNlcz1uLmFkZFRyYWNlcyxyLmRlbGV0ZVRyYWNlcz1uLmRlbGV0ZVRyYWNlcyxyLm1vdmVUcmFjZXM9bi5tb3ZlVHJhY2VzLHIucHVyZ2U9bi5wdXJnZSxyLmFkZEZyYW1lcz1uLmFkZEZyYW1lcyxyLmRlbGV0ZUZyYW1lcz1uLmRlbGV0ZUZyYW1lcyxyLmFuaW1hdGU9bi5hbmltYXRlLHIuc2V0UGxvdENvbmZpZz1uLnNldFBsb3RDb25maWcsci50b0ltYWdlPXQoIi4vdG9faW1hZ2UiKSxyLnZhbGlkYXRlPXQoIi4vdmFsaWRhdGUiKSxyLmRvd25sb2FkSW1hZ2U9dCgiLi4vc25hcHNob3QvZG93bmxvYWQiKTt2YXIgaT10KCIuL3RlbXBsYXRlX2FwaSIpO3IubWFrZVRlbXBsYXRlPWkubWFrZVRlbXBsYXRlLHIudmFsaWRhdGVUZW1wbGF0ZT1pLnZhbGlkYXRlVGVtcGxhdGV9LHsiLi4vc25hcHNob3QvZG93bmxvYWQiOjY0OSwiLi9wbG90X2FwaSI6NTUyLCIuL3RlbXBsYXRlX2FwaSI6NTU3LCIuL3RvX2ltYWdlIjo1NTgsIi4vdmFsaWRhdGUiOjU1OX1dLDU1MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9saWIvaXNfcGxhaW5fb2JqZWN0IiksaT10KCIuLi9saWIvbm9vcCIpLGE9dCgiLi4vbGliL2xvZ2dlcnMiKSxvPXQoIi4uL2xpYi9zZWFyY2giKS5zb3J0ZXJBc2Mscz10KCIuLi9yZWdpc3RyeSIpO3IuY29udGFpbmVyQXJyYXlNYXRjaD10KCIuL2NvbnRhaW5lcl9hcnJheV9tYXRjaCIpO3ZhciBsPXIuaXNBZGRWYWw9ZnVuY3Rpb24odCl7cmV0dXJuImFkZCI9PT10fHxuKHQpfSxjPXIuaXNSZW1vdmVWYWw9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PT10fHwicmVtb3ZlIj09PXR9O3IuYXBwbHlDb250YWluZXJBcnJheUNoYW5nZXM9ZnVuY3Rpb24odCxlLHIsbix1KXt2YXIgZj1lLmFzdHIsaD1zLmdldENvbXBvbmVudE1ldGhvZChmLCJzdXBwbHlMYXlvdXREZWZhdWx0cyIpLHA9cy5nZXRDb21wb25lbnRNZXRob2QoZiwiZHJhdyIpLGQ9cy5nZXRDb21wb25lbnRNZXRob2QoZiwiZHJhd09uZSIpLG09bi5yZXBsb3R8fG4ucmVjYWxjfHxoPT09aXx8cD09PWksZz10LmxheW91dCx2PXQuX2Z1bGxMYXlvdXQ7aWYoclsiIl0pe09iamVjdC5rZXlzKHIpLmxlbmd0aD4xJiZhLndhcm4oIkZ1bGwgYXJyYXkgZWRpdHMgYXJlIGluY29tcGF0aWJsZSB3aXRoIG90aGVyIGVkaXRzIixmKTt2YXIgeT1yWyIiXVsiIl07aWYoYyh5KSllLnNldChudWxsKTtlbHNle2lmKCFBcnJheS5pc0FycmF5KHkpKXJldHVybiBhLndhcm4oIlVucmVjb2duaXplZCBmdWxsIGFycmF5IGVkaXQgdmFsdWUiLGYseSksITA7ZS5zZXQoeSl9cmV0dXJuIW0mJihoKGcsdikscCh0KSwhMCl9dmFyIHgsYixfLHcsVCxrLEEsTSxTPU9iamVjdC5rZXlzKHIpLm1hcChOdW1iZXIpLnNvcnQobyksRT1lLmdldCgpLEw9RXx8W10sQz11KHYsZikuZ2V0KCksUD1bXSxJPS0xLE89TC5sZW5ndGg7Zm9yKHg9MDt4PFMubGVuZ3RoO3grKylpZih3PXJbXz1TW3hdXSxUPU9iamVjdC5rZXlzKHcpLGs9d1siIl0sQT1sKGspLF88MHx8Xz5MLmxlbmd0aC0oQT8wOjEpKWEud2FybigiaW5kZXggb3V0IG9mIHJhbmdlIixmLF8pO2Vsc2UgaWYodm9pZCAwIT09aylULmxlbmd0aD4xJiZhLndhcm4oIkluc2VydGlvbiAmIHJlbW92YWwgYXJlIGluY29tcGF0aWJsZSB3aXRoIGVkaXRzIHRvIHRoZSBzYW1lIGluZGV4LiIsZixfKSxjKGspP1AucHVzaChfKTpBPygiYWRkIj09PWsmJihrPXt9KSxMLnNwbGljZShfLDAsayksQyYmQy5zcGxpY2UoXywwLHt9KSk6YS53YXJuKCJVbnJlY29nbml6ZWQgZnVsbCBvYmplY3QgZWRpdCB2YWx1ZSIsZixfLGspLC0xPT09SSYmKEk9Xyk7ZWxzZSBmb3IoYj0wO2I8VC5sZW5ndGg7YisrKU09ZisiWyIrXysiXS4iLHUoTFtfXSxUW2JdLE0pLnNldCh3W1RbYl1dKTtmb3IoeD1QLmxlbmd0aC0xO3g+PTA7eC0tKUwuc3BsaWNlKFBbeF0sMSksQyYmQy5zcGxpY2UoUFt4XSwxKTtpZihMLmxlbmd0aD9FfHxlLnNldChMKTplLnNldChudWxsKSxtKXJldHVybiExO2lmKGgoZyx2KSxkIT09aSl7dmFyIHo7aWYoLTE9PT1JKXo9UztlbHNle2ZvcihPPU1hdGgubWF4KEwubGVuZ3RoLE8pLHo9W10seD0wO3g8Uy5sZW5ndGgmJiEoKF89U1t4XSk+PUkpO3grKyl6LnB1c2goXyk7Zm9yKHg9STt4PE87eCsrKXoucHVzaCh4KX1mb3IoeD0wO3g8ei5sZW5ndGg7eCsrKWQodCx6W3hdKX1lbHNlIHAodCk7cmV0dXJuITB9fSx7Ii4uL2xpYi9pc19wbGFpbl9vYmplY3QiOjUxNiwiLi4vbGliL2xvZ2dlcnMiOjUxOSwiLi4vbGliL25vb3AiOjUyNCwiLi4vbGliL3NlYXJjaCI6NTM1LCIuLi9yZWdpc3RyeSI6NjQ3LCIuL2NvbnRhaW5lcl9hcnJheV9tYXRjaCI6NTQ3fV0sNTUyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoImZhc3QtaXNudW1lcmljIiksYT10KCJoYXMtaG92ZXIiKSxvPXQoIi4uL2xpYiIpLHM9by5uZXN0ZWRQcm9wZXJ0eSxsPXQoIi4uL2xpYi9ldmVudHMiKSxjPXQoIi4uL2xpYi9xdWV1ZSIpLHU9dCgiLi4vcmVnaXN0cnkiKSxmPXQoIi4vcGxvdF9zY2hlbWEiKSxoPXQoIi4uL3Bsb3RzL3Bsb3RzIikscD10KCIuLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGQ9dCgiLi4vY29tcG9uZW50cy9kcmF3aW5nIiksbT10KCIuLi9jb21wb25lbnRzL2NvbG9yIiksZz10KCIuLi9wbG90cy9jYXJ0ZXNpYW4vZ3JhcGhfaW50ZXJhY3QiKS5pbml0SW50ZXJhY3Rpb25zLHY9dCgiLi4vY29uc3RhbnRzL3htbG5zX25hbWVzcGFjZXMiKSx5PXQoIi4uL2NvbXBvbmVudHMvc2VsZWN0aW9ucyIpLmNsZWFyT3V0bGluZSx4PXQoIi4vcGxvdF9jb25maWciKS5kZmx0Q29uZmlnLGI9dCgiLi9tYW5hZ2VfYXJyYXlzIiksXz10KCIuL2hlbHBlcnMiKSx3PXQoIi4vc3Vicm91dGluZXMiKSxUPXQoIi4vZWRpdF90eXBlcyIpLGs9dCgiLi4vcGxvdHMvY2FydGVzaWFuL2NvbnN0YW50cyIpLkFYX05BTUVfUEFUVEVSTixBPTA7ZnVuY3Rpb24gTSh0KXt2YXIgZT10Ll9mdWxsTGF5b3V0O2UuX3JlZHJhd0Zyb21BdXRvTWFyZ2luQ291bnQ/ZS5fcmVkcmF3RnJvbUF1dG9NYXJnaW5Db3VudC0tOnQuZW1pdCgicGxvdGx5X2FmdGVycGxvdCIpfWZ1bmN0aW9uIFModCxlKXt0cnl7dC5fZnVsbExheW91dC5fcGFwZXIuc3R5bGUoImJhY2tncm91bmQiLGUpfWNhdGNoKHQpe28uZXJyb3IodCl9fWZ1bmN0aW9uIEUodCxlKXtTKHQsbS5jb21iaW5lKGUsIndoaXRlIikpfWZ1bmN0aW9uIEwodCxlKXtpZighdC5fY29udGV4dCl7dC5fY29udGV4dD1vLmV4dGVuZERlZXAoe30seCk7dmFyIHI9bi5zZWxlY3QoImJhc2UiKTt0Ll9jb250ZXh0Ll9iYXNlVXJsPXIuc2l6ZSgpJiZyLmF0dHIoImhyZWYiKT93aW5kb3cubG9jYXRpb24uaHJlZi5zcGxpdCgiIyIpWzBdOiIifXZhciBpLHMsbCxjPXQuX2NvbnRleHQ7aWYoZSl7Zm9yKHM9T2JqZWN0LmtleXMoZSksaT0wO2k8cy5sZW5ndGg7aSsrKSJlZGl0YWJsZSIhPT0obD1zW2ldKSYmImVkaXRzIiE9PWwmJmwgaW4gYyYmKCJzZXRCYWNrZ3JvdW5kIj09PWwmJiJvcGFxdWUiPT09ZVtsXT9jW2xdPUU6Y1tsXT1lW2xdKTtlLnBsb3QzZFBpeGVsUmF0aW8mJiFjLnBsb3RHbFBpeGVsUmF0aW8mJihjLnBsb3RHbFBpeGVsUmF0aW89Yy5wbG90M2RQaXhlbFJhdGlvKTt2YXIgdT1lLmVkaXRhYmxlO2lmKHZvaWQgMCE9PXUpZm9yKGMuZWRpdGFibGU9dSxzPU9iamVjdC5rZXlzKGMuZWRpdHMpLGk9MDtpPHMubGVuZ3RoO2krKyljLmVkaXRzW3NbaV1dPXU7aWYoZS5lZGl0cylmb3Iocz1PYmplY3Qua2V5cyhlLmVkaXRzKSxpPTA7aTxzLmxlbmd0aDtpKyspKGw9c1tpXSlpbiBjLmVkaXRzJiYoYy5lZGl0c1tsXT1lLmVkaXRzW2xdKTtjLl9leHBvcnRlZFBsb3Q9ZS5fZXhwb3J0ZWRQbG90fWMuc3RhdGljUGxvdCYmKGMuZWRpdGFibGU9ITEsYy5lZGl0cz17fSxjLmF1dG9zaXphYmxlPSExLGMuc2Nyb2xsWm9vbT0hMSxjLmRvdWJsZUNsaWNrPSExLGMuc2hvd1RpcHM9ITEsYy5zaG93TGluaz0hMSxjLmRpc3BsYXlNb2RlQmFyPSExKSwiaG92ZXIiIT09Yy5kaXNwbGF5TW9kZUJhcnx8YXx8KGMuZGlzcGxheU1vZGVCYXI9ITApLCJ0cmFuc3BhcmVudCIhPT1jLnNldEJhY2tncm91bmQmJiJmdW5jdGlvbiI9PXR5cGVvZiBjLnNldEJhY2tncm91bmR8fChjLnNldEJhY2tncm91bmQ9UyksYy5faGFzWmVyb0hlaWdodD1jLl9oYXNaZXJvSGVpZ2h0fHwwPT09dC5jbGllbnRIZWlnaHQsYy5faGFzWmVyb1dpZHRoPWMuX2hhc1plcm9XaWR0aHx8MD09PXQuY2xpZW50V2lkdGg7dmFyIGY9Yy5zY3JvbGxab29tLGg9Yy5fc2Nyb2xsWm9vbT17fTtpZighMD09PWYpaC5jYXJ0ZXNpYW49MSxoLmdsM2Q9MSxoLmdlbz0xLGgubWFwYm94PTE7ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIGYpe3ZhciBwPWYuc3BsaXQoIisiKTtmb3IoaT0wO2k8cC5sZW5ndGg7aSsrKWhbcFtpXV09MX1lbHNlITEhPT1mJiYoaC5nbDNkPTEsaC5nZW89MSxoLm1hcGJveD0xKX1mdW5jdGlvbiBDKHQsZSl7dmFyIHIsbixpPWUrMSxhPVtdO2ZvcihyPTA7cjx0Lmxlbmd0aDtyKyspKG49dFtyXSk8MD9hLnB1c2goaStuKTphLnB1c2gobik7cmV0dXJuIGF9ZnVuY3Rpb24gUCh0LGUscil7dmFyIG4saTtmb3Iobj0wO248ZS5sZW5ndGg7bisrKXtpZigoaT1lW25dKSE9PXBhcnNlSW50KGksMTApKXRocm93IG5ldyBFcnJvcigiYWxsIHZhbHVlcyBpbiAiK3IrIiBtdXN0IGJlIGludGVnZXJzIik7aWYoaT49dC5kYXRhLmxlbmd0aHx8aTwtdC5kYXRhLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IocisiIG11c3QgYmUgdmFsaWQgaW5kaWNlcyBmb3IgZ2QuZGF0YS4iKTtpZihlLmluZGV4T2YoaSxuKzEpPi0xfHxpPj0wJiZlLmluZGV4T2YoLXQuZGF0YS5sZW5ndGgraSk+LTF8fGk8MCYmZS5pbmRleE9mKHQuZGF0YS5sZW5ndGgraSk+LTEpdGhyb3cgbmV3IEVycm9yKCJlYWNoIGluZGV4IGluICIrcisiIG11c3QgYmUgdW5pcXVlLiIpfX1mdW5jdGlvbiBJKHQsZSxyKXtpZighQXJyYXkuaXNBcnJheSh0LmRhdGEpKXRocm93IG5ldyBFcnJvcigiZ2QuZGF0YSBtdXN0IGJlIGFuIGFycmF5LiIpO2lmKHZvaWQgMD09PWUpdGhyb3cgbmV3IEVycm9yKCJjdXJyZW50SW5kaWNlcyBpcyBhIHJlcXVpcmVkIGFyZ3VtZW50LiIpO2lmKEFycmF5LmlzQXJyYXkoZSl8fChlPVtlXSksUCh0LGUsImN1cnJlbnRJbmRpY2VzIiksdm9pZCAwPT09cnx8QXJyYXkuaXNBcnJheShyKXx8KHI9W3JdKSx2b2lkIDAhPT1yJiZQKHQsciwibmV3SW5kaWNlcyIpLHZvaWQgMCE9PXImJmUubGVuZ3RoIT09ci5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJjdXJyZW50IGFuZCBuZXcgaW5kaWNlcyBtdXN0IGJlIG9mIGVxdWFsIGxlbmd0aC4iKX1mdW5jdGlvbiBPKHQsZSxyLG4sYSl7IWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPW8uaXNQbGFpbk9iamVjdChuKTtpZighQXJyYXkuaXNBcnJheSh0LmRhdGEpKXRocm93IG5ldyBFcnJvcigiZ2QuZGF0YSBtdXN0IGJlIGFuIGFycmF5Iik7aWYoIW8uaXNQbGFpbk9iamVjdChlKSl0aHJvdyBuZXcgRXJyb3IoInVwZGF0ZSBtdXN0IGJlIGEga2V5OnZhbHVlIG9iamVjdCIpO2lmKHZvaWQgMD09PXIpdGhyb3cgbmV3IEVycm9yKCJpbmRpY2VzIG11c3QgYmUgYW4gaW50ZWdlciBvciBhcnJheSBvZiBpbnRlZ2VycyIpO2Zvcih2YXIgYSBpbiBQKHQsciwiaW5kaWNlcyIpLGUpe2lmKCFBcnJheS5pc0FycmF5KGVbYV0pfHxlW2FdLmxlbmd0aCE9PXIubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiYXR0cmlidXRlICIrYSsiIG11c3QgYmUgYW4gYXJyYXkgb2YgbGVuZ3RoIGVxdWFsIHRvIGluZGljZXMgYXJyYXkgbGVuZ3RoIik7aWYoaSYmKCEoYSBpbiBuKXx8IUFycmF5LmlzQXJyYXkoblthXSl8fG5bYV0ubGVuZ3RoIT09ZVthXS5sZW5ndGgpKXRocm93IG5ldyBFcnJvcigid2hlbiBtYXhQb2ludHMgaXMgc2V0IGFzIGEga2V5OnZhbHVlIG9iamVjdCBpdCBtdXN0IGNvbnRhaW4gYSAxOjEgY29ycmlzcG9uZGVuY2Ugd2l0aCB0aGUga2V5cyBhbmQgbnVtYmVyIG9mIHRyYWNlcyBpbiB0aGUgdXBkYXRlIG9iamVjdCIpfX0odCxlLHIsbik7Zm9yKHZhciBsPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhLGwsYyx1LGYsaD1vLmlzUGxhaW5PYmplY3QobikscD1bXTtmb3IodmFyIGQgaW4gQXJyYXkuaXNBcnJheShyKXx8KHI9W3JdKSxyPUMocix0LmRhdGEubGVuZ3RoLTEpLGUpZm9yKHZhciBtPTA7bTxyLmxlbmd0aDttKyspe2lmKGE9dC5kYXRhW3JbbV1dLGw9KGM9cyhhLGQpKS5nZXQoKSx1PWVbZF1bbV0sIW8uaXNBcnJheU9yVHlwZWRBcnJheSh1KSl0aHJvdyBuZXcgRXJyb3IoImF0dHJpYnV0ZTogIitkKyIgaW5kZXg6ICIrbSsiIG11c3QgYmUgYW4gYXJyYXkiKTtpZighby5pc0FycmF5T3JUeXBlZEFycmF5KGwpKXRocm93IG5ldyBFcnJvcigiY2Fubm90IGV4dGVuZCBtaXNzaW5nIG9yIG5vbi1hcnJheSBhdHRyaWJ1dGU6ICIrZCk7aWYobC5jb25zdHJ1Y3RvciE9PXUuY29uc3RydWN0b3IpdGhyb3cgbmV3IEVycm9yKCJjYW5ub3QgZXh0ZW5kIGFycmF5IHdpdGggYW4gYXJyYXkgb2YgYSBkaWZmZXJlbnQgdHlwZTogIitkKTtmPWg/bltkXVttXTpuLGkoZil8fChmPS0xKSxwLnB1c2goe3Byb3A6Yyx0YXJnZXQ6bCxpbnNlcnQ6dSxtYXhwOk1hdGguZmxvb3IoZil9KX1yZXR1cm4gcH0odCxlLHIsbiksYz17fSx1PXt9LGY9MDtmPGwubGVuZ3RoO2YrKyl7dmFyIGg9bFtmXS5wcm9wLHA9bFtmXS5tYXhwLGQ9YShsW2ZdLnRhcmdldCxsW2ZdLmluc2VydCxwKTtoLnNldChkWzBdKSxBcnJheS5pc0FycmF5KGNbaC5hc3RyXSl8fChjW2guYXN0cl09W10pLGNbaC5hc3RyXS5wdXNoKGRbMV0pLEFycmF5LmlzQXJyYXkodVtoLmFzdHJdKXx8KHVbaC5hc3RyXT1bXSksdVtoLmFzdHJdLnB1c2gobFtmXS50YXJnZXQubGVuZ3RoKX1yZXR1cm57dXBkYXRlOmMsbWF4UG9pbnRzOnV9fWZ1bmN0aW9uIHoodCxlKXt2YXIgcj1uZXcgdC5jb25zdHJ1Y3Rvcih0Lmxlbmd0aCtlLmxlbmd0aCk7cmV0dXJuIHIuc2V0KHQpLHIuc2V0KGUsdC5sZW5ndGgpLHJ9ZnVuY3Rpb24gRCh0LGUsbixpKXt0PW8uZ2V0R3JhcGhEaXYodCksXy5jbGVhclByb21pc2VRdWV1ZSh0KTt2YXIgYT17fTtpZigic3RyaW5nIj09dHlwZW9mIGUpYVtlXT1uO2Vsc2V7aWYoIW8uaXNQbGFpbk9iamVjdChlKSlyZXR1cm4gby53YXJuKCJSZXN0eWxlIGZhaWwuIixlLG4saSksUHJvbWlzZS5yZWplY3QoKTthPW8uZXh0ZW5kRmxhdCh7fSxlKSx2b2lkIDA9PT1pJiYoaT1uKX1PYmplY3Qua2V5cyhhKS5sZW5ndGgmJih0LmNoYW5nZWQ9ITApO3ZhciBzPV8uY29lcmNlVHJhY2VJbmRpY2VzKHQsaSksbD1OKHQsYSxzKSx1PWwuZmxhZ3M7dS5jYWxjJiYodC5jYWxjZGF0YT12b2lkIDApLHUuY2xlYXJBeGlzVHlwZXMmJl8uY2xlYXJBeGlzVHlwZXModCxzLHt9KTt2YXIgZj1bXTt1LmZ1bGxSZXBsb3Q/Zi5wdXNoKHIuX2RvUGxvdCk6KGYucHVzaChoLnByZXZpb3VzUHJvbWlzZXMpLGguc3VwcGx5RGVmYXVsdHModCksdS5tYXJrZXJTaXplJiYoaC5kb0NhbGNkYXRhKHQpLEgoZikpLHUuc3R5bGUmJmYucHVzaCh3LmRvVHJhY2VTdHlsZSksdS5jb2xvcmJhcnMmJmYucHVzaCh3LmRvQ29sb3JCYXJzKSxmLnB1c2goTSkpLGYucHVzaChoLnJlaG92ZXIsaC5yZWRyYWcsaC5yZXNlbGVjdCksYy5hZGQodCxELFt0LGwudW5kb2l0LGwudHJhY2VzXSxELFt0LGwucmVkb2l0LGwudHJhY2VzXSk7dmFyIHA9by5zeW5jT3JBc3luYyhmLHQpO3JldHVybiBwJiZwLnRoZW58fChwPVByb21pc2UucmVzb2x2ZSgpKSxwLnRoZW4oKGZ1bmN0aW9uKCl7cmV0dXJuIHQuZW1pdCgicGxvdGx5X3Jlc3R5bGUiLGwuZXZlbnREYXRhKSx0fSkpfWZ1bmN0aW9uIFIodCl7cmV0dXJuIHZvaWQgMD09PXQ/bnVsbDp0fWZ1bmN0aW9uIEYodCxlKXtyZXR1cm4gZT9mdW5jdGlvbihlLHIsbil7dmFyIGk9cyhlLHIpLGE9aS5zZXQ7cmV0dXJuIGkuc2V0PWZ1bmN0aW9uKGUpe0IoKG58fCIiKStyLGkuZ2V0KCksZSx0KSxhKGUpfSxpfTpzfWZ1bmN0aW9uIEIodCxlLHIsbil7aWYoQXJyYXkuaXNBcnJheShlKXx8QXJyYXkuaXNBcnJheShyKSlmb3IodmFyIGk9QXJyYXkuaXNBcnJheShlKT9lOltdLGE9QXJyYXkuaXNBcnJheShyKT9yOltdLHM9TWF0aC5tYXgoaS5sZW5ndGgsYS5sZW5ndGgpLGw9MDtsPHM7bCsrKUIodCsiWyIrbCsiXSIsaVtsXSxhW2xdLG4pO2Vsc2UgaWYoby5pc1BsYWluT2JqZWN0KGUpfHxvLmlzUGxhaW5PYmplY3Qocikpe3ZhciBjPW8uaXNQbGFpbk9iamVjdChlKT9lOnt9LHU9by5pc1BsYWluT2JqZWN0KHIpP3I6e30sZj1vLmV4dGVuZEZsYXQoe30sYyx1KTtmb3IodmFyIGggaW4gZilCKHQrIi4iK2gsY1toXSx1W2hdLG4pfWVsc2Ugdm9pZCAwPT09blt0XSYmKG5bdF09UihlKSl9ZnVuY3Rpb24gTih0LGUscil7dmFyIG4saT10Ll9mdWxsTGF5b3V0LGE9dC5fZnVsbERhdGEsbD10LmRhdGEsYz1pLl9ndWlFZGl0aW5nLGQ9RihpLl9wcmVHVUksYyksbT1vLmV4dGVuZERlZXBBbGwoe30sZSk7aihlKTt2YXIgZyx2PVQudHJhY2VGbGFncygpLHk9e30seD17fTtmdW5jdGlvbiBiKCl7cmV0dXJuIHIubWFwKChmdW5jdGlvbigpe30pKX1mdW5jdGlvbiB3KHQpe3ZhciBlPXAuaWQybmFtZSh0KTstMT09PWcuaW5kZXhPZihlKSYmZy5wdXNoKGUpfWZ1bmN0aW9uIGsodCl7cmV0dXJuIkxBWU9VVCIrdCsiLmF1dG9yYW5nZSJ9ZnVuY3Rpb24gQSh0KXtyZXR1cm4iTEFZT1VUIit0KyIucmFuZ2UifWZ1bmN0aW9uIE0odCl7Zm9yKHZhciBlPXQ7ZTxhLmxlbmd0aDtlKyspaWYoYVtlXS5faW5wdXQ9PT1sW3RdKXJldHVybiBhW2VdfWZ1bmN0aW9uIFMobixhLG8pe2lmKEFycmF5LmlzQXJyYXkobikpbi5mb3JFYWNoKChmdW5jdGlvbih0KXtTKHQsYSxvKX0pKTtlbHNlIGlmKCEobiBpbiBlKSYmIV8uaGFzUGFyZW50KGUsbikpe3ZhciBzO2lmKCJMQVlPVVQiPT09bi5zdWJzdHIoMCw2KSlzPWQodC5sYXlvdXQsbi5yZXBsYWNlKCJMQVlPVVQiLCIiKSk7ZWxzZXt2YXIgdT1yW29dO3M9RihpLl90cmFjZVByZUdVSVtNKHUpLl9mdWxsSW5wdXQudWlkXSxjKShsW3VdLG4pfW4gaW4geHx8KHhbbl09YigpKSx2b2lkIDA9PT14W25dW29dJiYoeFtuXVtvXT1SKHMuZ2V0KCkpKSx2b2lkIDAhPT1hJiZzLnNldChhKX19ZnVuY3Rpb24gRSh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGFbZV1bdF19fWZ1bmN0aW9uIEwodCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7cmV0dXJuITE9PT1lP2FbcltuXV1bdF06bnVsbH19Zm9yKHZhciBDIGluIGUpe2lmKF8uaGFzUGFyZW50KGUsQykpdGhyb3cgbmV3IEVycm9yKCJjYW5ub3Qgc2V0ICIrQysiIGFuZCBhIHBhcmVudCBhdHRyaWJ1dGUgc2ltdWx0YW5lb3VzbHkiKTt2YXIgUCxJLE8seixELEIsTj1lW0NdO2lmKCJhdXRvYmlueCIhPT1DJiYiYXV0b2JpbnkiIT09Q3x8KEM9Qy5jaGFyQXQoQy5sZW5ndGgtMSkrImJpbnMiLE49QXJyYXkuaXNBcnJheShOKT9OLm1hcChMKEMpKTohMT09PU4/ci5tYXAoRShDKSk6bnVsbCkseVtDXT1OLCJMQVlPVVQiIT09Qy5zdWJzdHIoMCw2KSl7Zm9yKHhbQ109YigpLG49MDtuPHIubGVuZ3RoO24rKyl7aWYoUD1sW3Jbbl1dLEk9TShyW25dKSx6PShPPUYoaS5fdHJhY2VQcmVHVUlbSS5fZnVsbElucHV0LnVpZF0sYykoUCxDKSkuZ2V0KCksdm9pZCAwIT09KEQ9QXJyYXkuaXNBcnJheShOKT9OW24lTi5sZW5ndGhdOk4pKXt2YXIgVT1PLnBhcnRzW08ucGFydHMubGVuZ3RoLTFdLFY9Qy5zdWJzdHIoMCxDLmxlbmd0aC1VLmxlbmd0aC0xKSxIPVY/VisiLiI6IiIscT1WP3MoSSxWKS5nZXQoKTpJO2lmKChCPWYuZ2V0VHJhY2VWYWxPYmplY3QoSSxPLnBhcnRzKSkmJkIuaW1wbGllZEVkaXRzJiZudWxsIT09RClmb3IodmFyIEcgaW4gQi5pbXBsaWVkRWRpdHMpUyhvLnJlbGF0aXZlQXR0cihDLEcpLEIuaW1wbGllZEVkaXRzW0ddLG4pO2Vsc2UgaWYoInRoaWNrbmVzc21vZGUiIT09VSYmImxlbm1vZGUiIT09VXx8ej09PUR8fCJmcmFjdGlvbiIhPT1EJiYicGl4ZWxzIiE9PUR8fCFxKXtpZigidHlwZSI9PT1DJiYoInBpZSI9PT1EIT0oInBpZSI9PT16KXx8ImZ1bm5lbGFyZWEiPT09RCE9KCJmdW5uZWxhcmVhIj09PXopKSl7dmFyIFk9IngiLFc9InkiOyJiYXIiIT09RCYmImJhciIhPT16fHwiaCIhPT1QLm9yaWVudGF0aW9ufHwoWT0ieSIsVz0ieCIpLG8uc3dhcEF0dHJzKFAsWyI/IiwiP3NyYyJdLCJsYWJlbHMiLFkpLG8uc3dhcEF0dHJzKFAsWyJkPyIsIj8wIl0sImxhYmVsIixZKSxvLnN3YXBBdHRycyhQLFsiPyIsIj9zcmMiXSwidmFsdWVzIixXKSwicGllIj09PXp8fCJmdW5uZWxhcmVhIj09PXo/KHMoUCwibWFya2VyLmNvbG9yIikuc2V0KHMoUCwibWFya2VyLmNvbG9ycyIpLmdldCgpKSxpLl9waWVsYXllci5zZWxlY3RBbGwoImcudHJhY2UiKS5yZW1vdmUoKSk6dS50cmFjZUlzKFAsImNhcnRlc2lhbiIpJiZzKFAsIm1hcmtlci5jb2xvcnMiKS5zZXQocyhQLCJtYXJrZXIuY29sb3IiKS5nZXQoKSl9fWVsc2V7dmFyIFg9aS5fc2l6ZSxaPXEub3JpZW50LEo9InRvcCI9PT1afHwiYm90dG9tIj09PVo7aWYoInRoaWNrbmVzc21vZGUiPT09VSl7dmFyIEs9Sj9YLmg6WC53O1MoSCsidGhpY2tuZXNzIixxLnRoaWNrbmVzcyooImZyYWN0aW9uIj09PUQ/MS9LOkspLG4pfWVsc2V7dmFyIFE9Sj9YLnc6WC5oO1MoSCsibGVuIixxLmxlbiooImZyYWN0aW9uIj09PUQ/MS9ROlEpLG4pfX14W0NdW25dPVIoeik7aWYoLTEhPT1bInN3YXB4eSIsInN3YXB4eWF4ZXMiLCJvcmllbnRhdGlvbiIsIm9yaWVudGF0aW9uYXhlcyJdLmluZGV4T2YoQykpe2lmKCJvcmllbnRhdGlvbiI9PT1DKXtPLnNldChEKTt2YXIgJD1QLngmJiFQLnk/ImgiOiJ2IjtpZigoTy5nZXQoKXx8JCk9PT1JLm9yaWVudGF0aW9uKWNvbnRpbnVlfWVsc2Uib3JpZW50YXRpb25heGVzIj09PUMmJihQLm9yaWVudGF0aW9uPXt2OiJoIixoOiJ2In1bSS5vcmllbnRhdGlvbl0pO18uc3dhcFhZRGF0YShQKSx2LmNhbGM9di5jbGVhckF4aXNUeXBlcz0hMH1lbHNlLTEhPT1oLmRhdGFBcnJheUNvbnRhaW5lcnMuaW5kZXhPZihPLnBhcnRzWzBdKT8oXy5tYW5hZ2VBcnJheUNvbnRhaW5lcnMoTyxELHgpLHYuY2FsYz0hMCk6KEI/Qi5hcnJheU9rJiYhdS50cmFjZUlzKEksInJlZ2wiKSYmKG8uaXNBcnJheU9yVHlwZWRBcnJheShEKXx8by5pc0FycmF5T3JUeXBlZEFycmF5KHopKT92LmNhbGM9ITA6VC51cGRhdGUodixCKTp2LmNhbGM9ITAsTy5zZXQoRCkpfX1pZigtMSE9PVsic3dhcHh5YXhlcyIsIm9yaWVudGF0aW9uYXhlcyJdLmluZGV4T2YoQykmJnAuc3dhcCh0LHIpLCJvcmllbnRhdGlvbmF4ZXMiPT09Qyl7dmFyIHR0PXModC5sYXlvdXQsImhvdmVybW9kZSIpLGV0PXR0LmdldCgpOyJ4Ij09PWV0P3R0LnNldCgieSIpOiJ5Ij09PWV0P3R0LnNldCgieCIpOiJ4IHVuaWZpZWQiPT09ZXQ/dHQuc2V0KCJ5IHVuaWZpZWQiKToieSB1bmlmaWVkIj09PWV0JiZ0dC5zZXQoInggdW5pZmllZCIpfWlmKC0xIT09WyJvcmllbnRhdGlvbiIsInR5cGUiXS5pbmRleE9mKEMpKXtmb3IoZz1bXSxuPTA7bjxyLmxlbmd0aDtuKyspe3ZhciBydD1sW3Jbbl1dO3UudHJhY2VJcyhydCwiY2FydGVzaWFuIikmJih3KHJ0LnhheGlzfHwieCIpLHcocnQueWF4aXN8fCJ5IikpfVMoZy5tYXAoayksITAsMCksUyhnLm1hcChBKSxbMCwxXSwwKX19ZWxzZSBPPWQodC5sYXlvdXQsQy5yZXBsYWNlKCJMQVlPVVQiLCIiKSkseFtDXT1bUihPLmdldCgpKV0sTy5zZXQoQXJyYXkuaXNBcnJheShOKT9OWzBdOk4pLHYuY2FsYz0hMH1yZXR1cm4odi5jYWxjfHx2LnBsb3QpJiYodi5mdWxsUmVwbG90PSEwKSx7ZmxhZ3M6dix1bmRvaXQ6eCxyZWRvaXQ6eSx0cmFjZXM6cixldmVudERhdGE6by5leHRlbmREZWVwTm9BcnJheXMoW10sW20scl0pfX1mdW5jdGlvbiBqKHQpe3ZhciBlLHIsbixpPW8uY291bnRlclJlZ2V4KCJheGlzIiwiLnRpdGxlIiwhMSwhMSksYT0vY29sb3JiYXJcLnRpdGxlJC8scz1PYmplY3Qua2V5cyh0KTtmb3IoZT0wO2U8cy5sZW5ndGg7ZSsrKXI9c1tlXSxuPXRbcl0sInRpdGxlIiE9PXImJiFpLnRlc3QocikmJiFhLnRlc3Qocil8fCJzdHJpbmciIT10eXBlb2YgbiYmIm51bWJlciIhPXR5cGVvZiBuP3IuaW5kZXhPZigidGl0bGVmb250Iik+LTEmJi0xPT09ci5pbmRleE9mKCJncm91cHRpdGxlZm9udCIpP2wocixyLnJlcGxhY2UoInRpdGxlZm9udCIsInRpdGxlLmZvbnQiKSk6ci5pbmRleE9mKCJ0aXRsZXBvc2l0aW9uIik+LTE/bChyLHIucmVwbGFjZSgidGl0bGVwb3NpdGlvbiIsInRpdGxlLnBvc2l0aW9uIikpOnIuaW5kZXhPZigidGl0bGVzaWRlIik+LTE/bChyLHIucmVwbGFjZSgidGl0bGVzaWRlIiwidGl0bGUuc2lkZSIpKTpyLmluZGV4T2YoInRpdGxlb2Zmc2V0Iik+LTEmJmwocixyLnJlcGxhY2UoInRpdGxlb2Zmc2V0IiwidGl0bGUub2Zmc2V0IikpOmwocixyLnJlcGxhY2UoInRpdGxlIiwidGl0bGUudGV4dCIpKTtmdW5jdGlvbiBsKGUscil7dFtyXT10W2VdLGRlbGV0ZSB0W2VdfX1mdW5jdGlvbiBVKHQsZSxyKXt0PW8uZ2V0R3JhcGhEaXYodCksXy5jbGVhclByb21pc2VRdWV1ZSh0KTt2YXIgbj17fTtpZigic3RyaW5nIj09dHlwZW9mIGUpbltlXT1yO2Vsc2V7aWYoIW8uaXNQbGFpbk9iamVjdChlKSlyZXR1cm4gby53YXJuKCJSZWxheW91dCBmYWlsLiIsZSxyKSxQcm9taXNlLnJlamVjdCgpO249by5leHRlbmRGbGF0KHt9LGUpfU9iamVjdC5rZXlzKG4pLmxlbmd0aCYmKHQuY2hhbmdlZD0hMCk7dmFyIGk9Vyh0LG4pLGE9aS5mbGFnczthLmNhbGMmJih0LmNhbGNkYXRhPXZvaWQgMCk7dmFyIHM9W2gucHJldmlvdXNQcm9taXNlc107YS5sYXlvdXRSZXBsb3Q/cy5wdXNoKHcubGF5b3V0UmVwbG90KTpPYmplY3Qua2V5cyhuKS5sZW5ndGgmJihWKHQsYSxpKXx8aC5zdXBwbHlEZWZhdWx0cyh0KSxhLmxlZ2VuZCYmcy5wdXNoKHcuZG9MZWdlbmQpLGEubGF5b3V0c3R5bGUmJnMucHVzaCh3LmxheW91dFN0eWxlcyksYS5heHJhbmdlJiZIKHMsaS5yYW5nZXNBbHRlcmVkKSxhLnRpY2tzJiZzLnB1c2gody5kb1RpY2tzUmVsYXlvdXQpLGEubW9kZWJhciYmcy5wdXNoKHcuZG9Nb2RlQmFyKSxhLmNhbWVyYSYmcy5wdXNoKHcuZG9DYW1lcmEpLGEuY29sb3JiYXJzJiZzLnB1c2gody5kb0NvbG9yQmFycykscy5wdXNoKE0pKSxzLnB1c2goaC5yZWhvdmVyLGgucmVkcmFnLGgucmVzZWxlY3QpLGMuYWRkKHQsVSxbdCxpLnVuZG9pdF0sVSxbdCxpLnJlZG9pdF0pO3ZhciBsPW8uc3luY09yQXN5bmMocyx0KTtyZXR1cm4gbCYmbC50aGVufHwobD1Qcm9taXNlLnJlc29sdmUodCkpLGwudGhlbigoZnVuY3Rpb24oKXtyZXR1cm4gdC5lbWl0KCJwbG90bHlfcmVsYXlvdXQiLGkuZXZlbnREYXRhKSx0fSkpfWZ1bmN0aW9uIFYodCxlLHIpe3ZhciBuPXQuX2Z1bGxMYXlvdXQ7aWYoIWUuYXhyYW5nZSlyZXR1cm4hMTtmb3IodmFyIGkgaW4gZSlpZigiYXhyYW5nZSIhPT1pJiZlW2ldKXJldHVybiExO2Zvcih2YXIgYSBpbiByLnJhbmdlc0FsdGVyZWQpe3ZhciBvPXAuaWQybmFtZShhKSxzPXQubGF5b3V0W29dLGw9bltvXTtpZihsLmF1dG9yYW5nZT1zLmF1dG9yYW5nZSxzLnJhbmdlJiYobC5yYW5nZT1zLnJhbmdlLnNsaWNlKCkpLGwuY2xlYW5SYW5nZSgpLGwuX21hdGNoR3JvdXApZm9yKHZhciBjIGluIGwuX21hdGNoR3JvdXApaWYoYyE9PWEpe3ZhciB1PW5bcC5pZDJuYW1lKGMpXTt1LmF1dG9yYW5nZT1sLmF1dG9yYW5nZSx1LnJhbmdlPWwucmFuZ2Uuc2xpY2UoKSx1Ll9pbnB1dC5yYW5nZT1sLnJhbmdlLnNsaWNlKCl9fXJldHVybiEwfWZ1bmN0aW9uIEgodCxlKXt2YXIgcj1lP2Z1bmN0aW9uKHQpe3ZhciByPVtdLG49ITA7Zm9yKHZhciBpIGluIGUpe3ZhciBhPXAuZ2V0RnJvbUlkKHQsaSk7aWYoci5wdXNoKGkpLC0xIT09KGEudGlja2xhYmVscG9zaXRpb258fCIiKS5pbmRleE9mKCJpbnNpZGUiKSYmYS5fYW5jaG9yQXhpcyYmci5wdXNoKGEuX2FuY2hvckF4aXMuX2lkKSxhLl9tYXRjaEdyb3VwKWZvcih2YXIgbyBpbiBhLl9tYXRjaEdyb3VwKWVbb118fHIucHVzaChvKTthLmF1dG9tYXJnaW4mJihuPSExKX1yZXR1cm4gcC5kcmF3KHQscix7c2tpcFRpdGxlOm59KX06ZnVuY3Rpb24odCl7cmV0dXJuIHAuZHJhdyh0LCJyZWRyYXciKX07dC5wdXNoKHksdy5kb0F1dG9SYW5nZUFuZENvbnN0cmFpbnRzLHIsdy5kcmF3RGF0YSx3LmZpbmFsRHJhdyl9dmFyIHE9L15beHl6XWF4aXNbMC05XSpcLnJhbmdlKFxbWzB8MV1cXSk/JC8sRz0vXlt4eXpdYXhpc1swLTldKlwuYXV0b3JhbmdlJC8sWT0vXlt4eXpdYXhpc1swLTldKlwuZG9tYWluKFxbWzB8MV1cXSk/JC87ZnVuY3Rpb24gVyh0LGUpe3ZhciByLG4saSxhPXQubGF5b3V0LGw9dC5fZnVsbExheW91dCxjPWwuX2d1aUVkaXRpbmcsaD1GKGwuX3ByZUdVSSxjKSxkPU9iamVjdC5rZXlzKGUpLG09cC5saXN0KHQpLGc9by5leHRlbmREZWVwQWxsKHt9LGUpLHY9e307Zm9yKGooZSksZD1PYmplY3Qua2V5cyhlKSxuPTA7bjxkLmxlbmd0aDtuKyspaWYoMD09PWRbbl0uaW5kZXhPZigiYWxsYXhlcyIpKXtmb3IoaT0wO2k8bS5sZW5ndGg7aSsrKXt2YXIgeT1tW2ldLl9pZC5zdWJzdHIoMSkseD0tMSE9PXkuaW5kZXhPZigic2NlbmUiKT95KyIuIjoiIix3PWRbbl0ucmVwbGFjZSgiYWxsYXhlcyIseCttW2ldLl9uYW1lKTtlW3ddfHwoZVt3XT1lW2Rbbl1dKX1kZWxldGUgZVtkW25dXX12YXIgQT1ULmxheW91dEZsYWdzKCksTT17fSxTPXt9O2Z1bmN0aW9uIEUodCxyKXtpZihBcnJheS5pc0FycmF5KHQpKXQuZm9yRWFjaCgoZnVuY3Rpb24odCl7RSh0LHIpfSkpO2Vsc2UgaWYoISh0IGluIGUpJiYhXy5oYXNQYXJlbnQoZSx0KSl7dmFyIG49aChhLHQpO3QgaW4gU3x8KFNbdF09UihuLmdldCgpKSksdm9pZCAwIT09ciYmbi5zZXQocil9fXZhciBMLEM9e307ZnVuY3Rpb24gUCh0KXt2YXIgZT1wLm5hbWUyaWQodC5zcGxpdCgiLiIpWzBdKTtyZXR1cm4gQ1tlXT0xLGV9Zm9yKHZhciBJIGluIGUpe2lmKF8uaGFzUGFyZW50KGUsSSkpdGhyb3cgbmV3IEVycm9yKCJjYW5ub3Qgc2V0ICIrSSsiIGFuZCBhIHBhcmVudCBhdHRyaWJ1dGUgc2ltdWx0YW5lb3VzbHkiKTtmb3IodmFyIE89aChhLEkpLHo9ZVtJXSxEPU8ucGFydHMubGVuZ3RoLTE7RD4wJiYic3RyaW5nIiE9dHlwZW9mIE8ucGFydHNbRF07KUQtLTt2YXIgQj1PLnBhcnRzW0RdLE49Ty5wYXJ0c1tELTFdKyIuIitCLFU9Ty5wYXJ0cy5zbGljZSgwLEQpLmpvaW4oIi4iKSxWPXModC5sYXlvdXQsVSkuZ2V0KCksSD1zKGwsVSkuZ2V0KCksVz1PLmdldCgpO2lmKHZvaWQgMCE9PXope01bSV09eixTW0ldPSJyZXZlcnNlIj09PUI/ejpSKFcpO3ZhciBaPWYuZ2V0TGF5b3V0VmFsT2JqZWN0KGwsTy5wYXJ0cyk7aWYoWiYmWi5pbXBsaWVkRWRpdHMmJm51bGwhPT16KWZvcih2YXIgSiBpbiBaLmltcGxpZWRFZGl0cylFKG8ucmVsYXRpdmVBdHRyKEksSiksWi5pbXBsaWVkRWRpdHNbSl0pO2lmKC0xIT09WyJ3aWR0aCIsImhlaWdodCJdLmluZGV4T2YoSSkpaWYoeil7RSgiYXV0b3NpemUiLG51bGwpO3ZhciBLPSJoZWlnaHQiPT09ST8id2lkdGgiOiJoZWlnaHQiO0UoSyxsW0tdKX1lbHNlIGxbSV09dC5faW5pdGlhbEF1dG9TaXplW0ldO2Vsc2UgaWYoImF1dG9zaXplIj09PUkpRSgid2lkdGgiLHo/bnVsbDpsLndpZHRoKSxFKCJoZWlnaHQiLHo/bnVsbDpsLmhlaWdodCk7ZWxzZSBpZihOLm1hdGNoKHEpKVAoTikscyhsLFUrIi5faW5wdXRSYW5nZSIpLnNldChudWxsKTtlbHNlIGlmKE4ubWF0Y2goRykpe1AoTikscyhsLFUrIi5faW5wdXRSYW5nZSIpLnNldChudWxsKTt2YXIgUT1zKGwsVSkuZ2V0KCk7US5faW5wdXREb21haW4mJihRLl9pbnB1dC5kb21haW49US5faW5wdXREb21haW4uc2xpY2UoKSl9ZWxzZSBOLm1hdGNoKFkpJiZzKGwsVSsiLl9pbnB1dERvbWFpbiIpLnNldChudWxsKTtpZigidHlwZSI9PT1CKXtMPVY7dmFyICQ9ImxpbmVhciI9PT1ILnR5cGUmJiJsb2ciPT09eix0dD0ibG9nIj09PUgudHlwZSYmImxpbmVhciI9PT16O2lmKCR8fHR0KXtpZihMJiZMLnJhbmdlKWlmKEguYXV0b3JhbmdlKSQmJihMLnJhbmdlPUwucmFuZ2VbMV0+TC5yYW5nZVswXT9bMSwyXTpbMiwxXSk7ZWxzZXt2YXIgZXQ9TC5yYW5nZVswXSxydD1MLnJhbmdlWzFdOyQ/KGV0PD0wJiZydDw9MCYmRShVKyIuYXV0b3JhbmdlIiwhMCksZXQ8PTA/ZXQ9cnQvMWU2OnJ0PD0wJiYocnQ9ZXQvMWU2KSxFKFUrIi5yYW5nZVswXSIsTWF0aC5sb2coZXQpL01hdGguTE4xMCksRShVKyIucmFuZ2VbMV0iLE1hdGgubG9nKHJ0KS9NYXRoLkxOMTApKTooRShVKyIucmFuZ2VbMF0iLE1hdGgucG93KDEwLGV0KSksRShVKyIucmFuZ2VbMV0iLE1hdGgucG93KDEwLHJ0KSkpfWVsc2UgRShVKyIuYXV0b3JhbmdlIiwhMCk7QXJyYXkuaXNBcnJheShsLl9zdWJwbG90cy5wb2xhcikmJmwuX3N1YnBsb3RzLnBvbGFyLmxlbmd0aCYmbFtPLnBhcnRzWzBdXSYmInJhZGlhbGF4aXMiPT09Ty5wYXJ0c1sxXSYmZGVsZXRlIGxbTy5wYXJ0c1swXV0uX3N1YnBsb3Qudmlld0luaXRpYWxbInJhZGlhbGF4aXMucmFuZ2UiXSx1LmdldENvbXBvbmVudE1ldGhvZCgiYW5ub3RhdGlvbnMiLCJjb252ZXJ0Q29vcmRzIikodCxILHosRSksdS5nZXRDb21wb25lbnRNZXRob2QoImltYWdlcyIsImNvbnZlcnRDb29yZHMiKSh0LEgseixFKX1lbHNlIEUoVSsiLmF1dG9yYW5nZSIsITApLEUoVSsiLnJhbmdlIixudWxsKTtzKGwsVSsiLl9pbnB1dFJhbmdlIikuc2V0KG51bGwpfWVsc2UgaWYoQi5tYXRjaChrKSl7dmFyIG50PXMobCxJKS5nZXQoKSxpdD0oenx8e30pLnR5cGU7aXQmJiItIiE9PWl0fHwoaXQ9ImxpbmVhciIpLHUuZ2V0Q29tcG9uZW50TWV0aG9kKCJhbm5vdGF0aW9ucyIsImNvbnZlcnRDb29yZHMiKSh0LG50LGl0LEUpLHUuZ2V0Q29tcG9uZW50TWV0aG9kKCJpbWFnZXMiLCJjb252ZXJ0Q29vcmRzIikodCxudCxpdCxFKX12YXIgYXQ9Yi5jb250YWluZXJBcnJheU1hdGNoKEkpO2lmKGF0KXtyPWF0LmFycmF5LG49YXQuaW5kZXg7dmFyIG90PWF0LnByb3BlcnR5LHN0PVp8fHtlZGl0VHlwZToiY2FsYyJ9OyIiIT09biYmIiI9PT1vdCYmKGIuaXNBZGRWYWwoeik/U1tJXT1udWxsOmIuaXNSZW1vdmVWYWwoeik/U1tJXT0ocyhhLHIpLmdldCgpfHxbXSlbbl06by53YXJuKCJ1bnJlY29nbml6ZWQgZnVsbCBvYmplY3QgdmFsdWUiLGUpKSxULnVwZGF0ZShBLHN0KSx2W3JdfHwodltyXT17fSk7dmFyIGx0PXZbcl1bbl07bHR8fChsdD12W3JdW25dPXt9KSxsdFtvdF09eixkZWxldGUgZVtJXX1lbHNlInJldmVyc2UiPT09Qj8oVi5yYW5nZT9WLnJhbmdlLnJldmVyc2UoKTooRShVKyIuYXV0b3JhbmdlIiwhMCksVi5yYW5nZT1bMSwwXSksSC5hdXRvcmFuZ2U/QS5jYWxjPSEwOkEucGxvdD0hMCk6KCJkcmFnbW9kZSI9PT1JJiYoITE9PT16JiYhMSE9PVd8fCExIT09eiYmITE9PT1XKXx8bC5faGFzKCJzY2F0dGVyLWxpa2UiKSYmbC5faGFzKCJyZWdsIikmJiJkcmFnbW9kZSI9PT1JJiYoImxhc3NvIj09PXp8fCJzZWxlY3QiPT09eikmJiJsYXNzbyIhPT1XJiYic2VsZWN0IiE9PVd8fGwuX2hhcygiZ2wyZCIpP0EucGxvdD0hMDpaP1QudXBkYXRlKEEsWik6QS5jYWxjPSEwLE8uc2V0KHopKX19Zm9yKHIgaW4gdil7Yi5hcHBseUNvbnRhaW5lckFycmF5Q2hhbmdlcyh0LGgoYSxyKSx2W3JdLEEsaCl8fChBLnBsb3Q9ITApfWZvcih2YXIgY3QgaW4gQyl7dmFyIHV0PShMPXAuZ2V0RnJvbUlkKHQsY3QpKSYmTC5fY29uc3RyYWludEdyb3VwO2lmKHV0KWZvcih2YXIgZnQgaW4gQS5jYWxjPSEwLHV0KUNbZnRdfHwocC5nZXRGcm9tSWQodCxmdCkuX2NvbnN0cmFpbnRTaHJpbmthYmxlPSEwKX1yZXR1cm4oWCh0KXx8ZS5oZWlnaHR8fGUud2lkdGgpJiYoQS5wbG90PSEwKSwoQS5wbG90fHxBLmNhbGMpJiYoQS5sYXlvdXRSZXBsb3Q9ITApLHtmbGFnczpBLHJhbmdlc0FsdGVyZWQ6Qyx1bmRvaXQ6UyxyZWRvaXQ6TSxldmVudERhdGE6Z319ZnVuY3Rpb24gWCh0KXt2YXIgZT10Ll9mdWxsTGF5b3V0LHI9ZS53aWR0aCxuPWUuaGVpZ2h0O3JldHVybiB0LmxheW91dC5hdXRvc2l6ZSYmaC5wbG90QXV0b1NpemUodCx0LmxheW91dCxlKSxlLndpZHRoIT09cnx8ZS5oZWlnaHQhPT1ufWZ1bmN0aW9uIFoodCxlLG4saSl7dD1vLmdldEdyYXBoRGl2KHQpLF8uY2xlYXJQcm9taXNlUXVldWUodCksby5pc1BsYWluT2JqZWN0KGUpfHwoZT17fSksby5pc1BsYWluT2JqZWN0KG4pfHwobj17fSksT2JqZWN0LmtleXMoZSkubGVuZ3RoJiYodC5jaGFuZ2VkPSEwKSxPYmplY3Qua2V5cyhuKS5sZW5ndGgmJih0LmNoYW5nZWQ9ITApO3ZhciBhPV8uY29lcmNlVHJhY2VJbmRpY2VzKHQsaSkscz1OKHQsby5leHRlbmRGbGF0KHt9LGUpLGEpLGw9cy5mbGFncyx1PVcodCxvLmV4dGVuZEZsYXQoe30sbikpLGY9dS5mbGFnczsobC5jYWxjfHxmLmNhbGMpJiYodC5jYWxjZGF0YT12b2lkIDApLGwuY2xlYXJBeGlzVHlwZXMmJl8uY2xlYXJBeGlzVHlwZXModCxhLG4pO3ZhciBwPVtdO2YubGF5b3V0UmVwbG90P3AucHVzaCh3LmxheW91dFJlcGxvdCk6bC5mdWxsUmVwbG90P3AucHVzaChyLl9kb1Bsb3QpOihwLnB1c2goaC5wcmV2aW91c1Byb21pc2VzKSxWKHQsZix1KXx8aC5zdXBwbHlEZWZhdWx0cyh0KSxsLnN0eWxlJiZwLnB1c2gody5kb1RyYWNlU3R5bGUpLChsLmNvbG9yYmFyc3x8Zi5jb2xvcmJhcnMpJiZwLnB1c2gody5kb0NvbG9yQmFycyksZi5sZWdlbmQmJnAucHVzaCh3LmRvTGVnZW5kKSxmLmxheW91dHN0eWxlJiZwLnB1c2gody5sYXlvdXRTdHlsZXMpLGYuYXhyYW5nZSYmSChwLHUucmFuZ2VzQWx0ZXJlZCksZi50aWNrcyYmcC5wdXNoKHcuZG9UaWNrc1JlbGF5b3V0KSxmLm1vZGViYXImJnAucHVzaCh3LmRvTW9kZUJhciksZi5jYW1lcmEmJnAucHVzaCh3LmRvQ2FtZXJhKSxwLnB1c2goTSkpLHAucHVzaChoLnJlaG92ZXIsaC5yZWRyYWcsaC5yZXNlbGVjdCksYy5hZGQodCxaLFt0LHMudW5kb2l0LHUudW5kb2l0LHMudHJhY2VzXSxaLFt0LHMucmVkb2l0LHUucmVkb2l0LHMudHJhY2VzXSk7dmFyIGQ9by5zeW5jT3JBc3luYyhwLHQpO3JldHVybiBkJiZkLnRoZW58fChkPVByb21pc2UucmVzb2x2ZSh0KSksZC50aGVuKChmdW5jdGlvbigpe3JldHVybiB0LmVtaXQoInBsb3RseV91cGRhdGUiLHtkYXRhOnMuZXZlbnREYXRhLGxheW91dDp1LmV2ZW50RGF0YX0pLHR9KSl9ZnVuY3Rpb24gSih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7ZS5fZnVsbExheW91dC5fZ3VpRWRpdGluZz0hMDt2YXIgcj10LmFwcGx5KG51bGwsYXJndW1lbnRzKTtyZXR1cm4gZS5fZnVsbExheW91dC5fZ3VpRWRpdGluZz0hMSxyfX12YXIgSz1be3BhdHRlcm46L15oaWRkZW5sYWJlbHMvLGF0dHI6ImxlZ2VuZC51aXJldmlzaW9uIn0se3BhdHRlcm46L14oKHh8eSlheGlzXGQqKVwuKChhdXRvKT9yYW5nZXx0aXRsZVwudGV4dCkvfSx7cGF0dGVybjovYXhpc1xkKlwuc2hvd3NwaWtlcyQvLGF0dHI6Im1vZGViYXIudWlyZXZpc2lvbiJ9LHtwYXR0ZXJuOi8oaG92ZXJ8ZHJhZyltb2RlJC8sYXR0cjoibW9kZWJhci51aXJldmlzaW9uIn0se3BhdHRlcm46L14oc2NlbmVcZCopXC5jYW1lcmEvfSx7cGF0dGVybjovXihnZW9cZCopXC4ocHJvamVjdGlvbnxjZW50ZXJ8Zml0Ym91bmRzKS99LHtwYXR0ZXJuOi9eKHRlcm5hcnlcZCpcLlthYmNdYXhpcylcLihtaW58dGl0bGVcLnRleHQpJC99LHtwYXR0ZXJuOi9eKHBvbGFyXGQqXC5yYWRpYWxheGlzKVwuKChhdXRvKT9yYW5nZXxhbmdsZXx0aXRsZVwudGV4dCkvfSx7cGF0dGVybjovXihwb2xhclxkKlwuYW5ndWxhcmF4aXMpXC5yb3RhdGlvbi99LHtwYXR0ZXJuOi9eKG1hcGJveFxkKilcLihjZW50ZXJ8em9vbXxiZWFyaW5nfHBpdGNoKS99LHtwYXR0ZXJuOi9ebGVnZW5kXC4oeHx5KSQvLGF0dHI6ImVkaXRyZXZpc2lvbiJ9LHtwYXR0ZXJuOi9eKHNoYXBlc3xhbm5vdGF0aW9ucykvLGF0dHI6ImVkaXRyZXZpc2lvbiJ9LHtwYXR0ZXJuOi9edGl0bGVcLnRleHQkLyxhdHRyOiJlZGl0cmV2aXNpb24ifV0sUT1be3BhdHRlcm46L15zZWxlY3RlZHBvaW50cyQvLGF0dHI6InNlbGVjdGlvbnJldmlzaW9uIn0se3BhdHRlcm46LyhefHZhbHVlXC4pdmlzaWJsZSQvLGF0dHI6ImxlZ2VuZC51aXJldmlzaW9uIn0se3BhdHRlcm46L15kaW1lbnNpb25zXFtcZCtcXVwuY29uc3RyYWludHJhbmdlL30se3BhdHRlcm46L15ub2RlXC4oeHx5fGdyb3VwcykvfSx7cGF0dGVybjovXmxldmVsJC99LHtwYXR0ZXJuOi8oXnx2YWx1ZVwuKW5hbWUkL30se3BhdHRlcm46L2NvbG9yYmFyXC50aXRsZVwudGV4dCQvfSx7cGF0dGVybjovY29sb3JiYXJcLih4fHkpJC8sYXR0cjoiZWRpdHJldmlzaW9uIn1dO2Z1bmN0aW9uICQodCxlKXtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZVtyXSxpPXQubWF0Y2gobi5wYXR0ZXJuKTtpZihpKXt2YXIgYT1pWzFdfHwiIjtyZXR1cm57aGVhZDphLHRhaWw6dC5zdWJzdHIoYS5sZW5ndGgrMSksYXR0cjpuLmF0dHJ9fX19ZnVuY3Rpb24gdHQodCxlKXt2YXIgcj1zKGUsdCkuZ2V0KCk7aWYodm9pZCAwIT09cilyZXR1cm4gcjt2YXIgbj10LnNwbGl0KCIuIik7Zm9yKG4ucG9wKCk7bi5sZW5ndGg+MTspaWYobi5wb3AoKSx2b2lkIDAhPT0ocj1zKGUsbi5qb2luKCIuIikrIi51aXJldmlzaW9uIikuZ2V0KCkpKXJldHVybiByO3JldHVybiBlLnVpcmV2aXNpb259ZnVuY3Rpb24gZXQodCxlKXtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKylpZihlW3JdLl9mdWxsSW5wdXQudWlkPT09dClyZXR1cm4gcjtyZXR1cm4tMX1mdW5jdGlvbiBydCh0LGUscil7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspaWYoZVtuXS51aWQ9PT10KXJldHVybiBuO3JldHVybiFlW3JdfHxlW3JdLnVpZD8tMTpyfWZ1bmN0aW9uIG50KHQsZSl7dmFyIHI9by5pc1BsYWluT2JqZWN0KHQpLG49QXJyYXkuaXNBcnJheSh0KTtyZXR1cm4gcnx8bj8ociYmby5pc1BsYWluT2JqZWN0KGUpfHxuJiZBcnJheS5pc0FycmF5KGUpKSYmSlNPTi5zdHJpbmdpZnkodCk9PT1KU09OLnN0cmluZ2lmeShlKTp0PT09ZX1mdW5jdGlvbiBpdCh0LGUscixuKXt2YXIgaSxhLGwsYz1uLmdldFZhbE9iamVjdCx1PW4uZmxhZ3MsZj1uLmltbXV0YWJsZSxoPW4uaW5BcnJheSxwPW4uYXJyYXlJbmRleDtmdW5jdGlvbiBkKCl7dmFyIHQ9aS5lZGl0VHlwZTtoJiYtMSE9PXQuaW5kZXhPZigiYXJyYXlkcmF3Iik/by5wdXNoVW5pcXVlKHUuYXJyYXlzW2hdLHApOihULnVwZGF0ZSh1LGkpLCJub25lIiE9PXQmJnUubkNoYW5nZXMrKyxuLnRyYW5zaXRpb24mJmkuYW5pbSYmdS5uQ2hhbmdlc0FuaW0rKywocS50ZXN0KGwpfHxHLnRlc3QobCkpJiYodS5yYW5nZXNBbHRlcmVkW3JbMF1dPTEpLFkudGVzdChsKSYmcyhlLCJfaW5wdXREb21haW4iKS5zZXQobnVsbCksImRhdGFyZXZpc2lvbiI9PT1hJiYodS5uZXdEYXRhUmV2aXNpb249MSkpfWZ1bmN0aW9uIG0odCl7cmV0dXJuImRhdGFfYXJyYXkiPT09dC52YWxUeXBlfHx0LmFycmF5T2t9Zm9yKGEgaW4gdCl7aWYodS5jYWxjJiYhbi50cmFuc2l0aW9uKXJldHVybjt2YXIgZz10W2FdLHY9ZVthXSx5PXIuY29uY2F0KGEpO2lmKGw9eS5qb2luKCIuIiksIl8iIT09YS5jaGFyQXQoMCkmJiJmdW5jdGlvbiIhPXR5cGVvZiBnJiZnIT09dil7aWYoKCJ0aWNrMCI9PT1hfHwiZHRpY2siPT09YSkmJiJnZW8iIT09clswXSl7dmFyIHg9ZS50aWNrbW9kZTtpZigiYXV0byI9PT14fHwiYXJyYXkiPT09eHx8IXgpY29udGludWV9aWYoKCJyYW5nZSIhPT1hfHwhZS5hdXRvcmFuZ2UpJiYoInptaW4iIT09YSYmInptYXgiIT09YXx8ImNvbnRvdXJjYXJwZXQiIT09ZS50eXBlKSYmKGk9Yyh5KSkmJighaS5fY29tcGFyZUFzSlNPTnx8SlNPTi5zdHJpbmdpZnkoZykhPT1KU09OLnN0cmluZ2lmeSh2KSkpe3ZhciBiLF89aS52YWxUeXBlLHc9bShpKSxrPUFycmF5LmlzQXJyYXkoZyksQT1BcnJheS5pc0FycmF5KHYpO2lmKGsmJkEpe3ZhciBNPSJfaW5wdXRfIithLFM9dFtNXSxFPWVbTV07aWYoQXJyYXkuaXNBcnJheShTKSYmUz09PUUpY29udGludWV9aWYodm9pZCAwPT09dil3JiZrP3UuY2FsYz0hMDpkKCk7ZWxzZSBpZihpLl9pc0xpbmtlZFRvQXJyYXkpe3ZhciBMPVtdLEM9ITE7aHx8KHUuYXJyYXlzW2FdPUwpO3ZhciBQPU1hdGgubWluKGcubGVuZ3RoLHYubGVuZ3RoKSxJPU1hdGgubWF4KGcubGVuZ3RoLHYubGVuZ3RoKTtpZihQIT09SSl7aWYoImFycmF5ZHJhdyIhPT1pLmVkaXRUeXBlKXtkKCk7Y29udGludWV9Qz0hMH1mb3IoYj0wO2I8UDtiKyspaXQoZ1tiXSx2W2JdLHkuY29uY2F0KGIpLG8uZXh0ZW5kRmxhdCh7aW5BcnJheTphLGFycmF5SW5kZXg6Yn0sbikpO2lmKEMpZm9yKGI9UDtiPEk7YisrKUwucHVzaChiKX1lbHNlIV8mJm8uaXNQbGFpbk9iamVjdChnKT9pdChnLHYseSxuKTp3P2smJkE/KGYmJih1LmNhbGM9ITApLChmfHxuLm5ld0RhdGFSZXZpc2lvbikmJmQoKSk6ayE9PUE/dS5jYWxjPSEwOmQoKTprJiZBJiZnLmxlbmd0aD09PXYubGVuZ3RoJiZTdHJpbmcoZyk9PT1TdHJpbmcodil8fGQoKX19fWZvcihhIGluIGUpaWYoIShhIGluIHQpJiYiXyIhPT1hLmNoYXJBdCgwKSYmImZ1bmN0aW9uIiE9dHlwZW9mIGVbYV0pe2lmKG0oaT1jKHIuY29uY2F0KGEpKSkmJkFycmF5LmlzQXJyYXkoZVthXSkpcmV0dXJuIHZvaWQodS5jYWxjPSEwKTtkKCl9fWZ1bmN0aW9uIGF0KHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQscj10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKCFvLmVxdWFsRG9tUmVjdHMocixlLl9sYXN0QkJveCkpe3ZhciBuPWUuX2ludlRyYW5zZm9ybT1vLmludmVyc2VUcmFuc2Zvcm1NYXRyaXgoby5nZXRGdWxsVHJhbnNmb3JtTWF0cml4KHQpKTtlLl9pbnZTY2FsZVg9TWF0aC5zcXJ0KG5bMF1bMF0qblswXVswXStuWzBdWzFdKm5bMF1bMV0rblswXVsyXSpuWzBdWzJdKSxlLl9pbnZTY2FsZVk9TWF0aC5zcXJ0KG5bMV1bMF0qblsxXVswXStuWzFdWzFdKm5bMV1bMV0rblsxXVsyXSpuWzFdWzJdKSxlLl9sYXN0QkJveD1yfX1yLmFuaW1hdGU9ZnVuY3Rpb24odCxlLHIpe2lmKHQ9by5nZXRHcmFwaERpdih0KSwhby5pc1Bsb3REaXYodCkpdGhyb3cgbmV3IEVycm9yKCJUaGlzIGVsZW1lbnQgaXMgbm90IGEgUGxvdGx5IHBsb3Q6ICIrdCsiLiBJdCdzIGxpa2VseSB0aGF0IHlvdSd2ZSBmYWlsZWQgdG8gY3JlYXRlIGEgcGxvdCBiZWZvcmUgYW5pbWF0aW5nIGl0LiBGb3IgbW9yZSBkZXRhaWxzLCBzZWUgaHR0cHM6Ly9wbG90bHkuY29tL2phdmFzY3JpcHQvYW5pbWF0aW9ucy8iKTt2YXIgbj10Ll90cmFuc2l0aW9uRGF0YTtuLl9mcmFtZVF1ZXVlfHwobi5fZnJhbWVRdWV1ZT1bXSk7dmFyIGk9KHI9aC5zdXBwbHlBbmltYXRpb25EZWZhdWx0cyhyKSkudHJhbnNpdGlvbixhPXIuZnJhbWU7ZnVuY3Rpb24gcyh0KXtyZXR1cm4gQXJyYXkuaXNBcnJheShpKT90Pj1pLmxlbmd0aD9pWzBdOmlbdF06aX1mdW5jdGlvbiBsKHQpe3JldHVybiBBcnJheS5pc0FycmF5KGEpP3Q+PWEubGVuZ3RoP2FbMF06YVt0XTphfWZ1bmN0aW9uIGModCxlKXt2YXIgcj0wO3JldHVybiBmdW5jdGlvbigpe2lmKHQmJisrcj09PWUpcmV0dXJuIHQoKX19cmV0dXJuIHZvaWQgMD09PW4uX2ZyYW1lV2FpdGluZ0NudCYmKG4uX2ZyYW1lV2FpdGluZ0NudD0wKSxuZXcgUHJvbWlzZSgoZnVuY3Rpb24oYSx1KXtmdW5jdGlvbiBmKCl7bi5fY3VycmVudEZyYW1lJiZuLl9jdXJyZW50RnJhbWUub25Db21wbGV0ZSYmbi5fY3VycmVudEZyYW1lLm9uQ29tcGxldGUoKTt2YXIgZT1uLl9jdXJyZW50RnJhbWU9bi5fZnJhbWVRdWV1ZS5zaGlmdCgpO2lmKGUpe3ZhciByPWUubmFtZT9lLm5hbWUudG9TdHJpbmcoKTpudWxsO3QuX2Z1bGxMYXlvdXQuX2N1cnJlbnRGcmFtZT1yLG4uX2xhc3RGcmFtZUF0PURhdGUubm93KCksbi5fdGltZVRvTmV4dD1lLmZyYW1lT3B0cy5kdXJhdGlvbixoLnRyYW5zaXRpb24odCxlLmZyYW1lLmRhdGEsZS5mcmFtZS5sYXlvdXQsXy5jb2VyY2VUcmFjZUluZGljZXModCxlLmZyYW1lLnRyYWNlcyksZS5mcmFtZU9wdHMsZS50cmFuc2l0aW9uT3B0cykudGhlbigoZnVuY3Rpb24oKXtlLm9uQ29tcGxldGUmJmUub25Db21wbGV0ZSgpfSkpLHQuZW1pdCgicGxvdGx5X2FuaW1hdGluZ2ZyYW1lIix7bmFtZTpyLGZyYW1lOmUuZnJhbWUsYW5pbWF0aW9uOntmcmFtZTplLmZyYW1lT3B0cyx0cmFuc2l0aW9uOmUudHJhbnNpdGlvbk9wdHN9fSl9ZWxzZSB0LmVtaXQoInBsb3RseV9hbmltYXRlZCIpLHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZShuLl9hbmltYXRpb25SYWYpLG4uX2FuaW1hdGlvblJhZj1udWxsfWZ1bmN0aW9uIHAoKXt0LmVtaXQoInBsb3RseV9hbmltYXRpbmciKSxuLl9sYXN0RnJhbWVBdD0tMS8wLG4uX3RpbWVUb05leHQ9MCxuLl9ydW5uaW5nVHJhbnNpdGlvbnM9MCxuLl9jdXJyZW50RnJhbWU9bnVsbDt2YXIgZT1mdW5jdGlvbigpe24uX2FuaW1hdGlvblJhZj13aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGUpLERhdGUubm93KCktbi5fbGFzdEZyYW1lQXQ+bi5fdGltZVRvTmV4dCYmZigpfTtlKCl9dmFyIGQsbSxnPTA7ZnVuY3Rpb24gdih0KXtyZXR1cm4gQXJyYXkuaXNBcnJheShpKT9nPj1pLmxlbmd0aD90LnRyYW5zaXRpb25PcHRzPWlbZ106dC50cmFuc2l0aW9uT3B0cz1pWzBdOnQudHJhbnNpdGlvbk9wdHM9aSxnKyssdH12YXIgeT1bXSx4PW51bGw9PWUsYj1BcnJheS5pc0FycmF5KGUpO2lmKCF4JiYhYiYmby5pc1BsYWluT2JqZWN0KGUpKXkucHVzaCh7dHlwZToib2JqZWN0IixkYXRhOnYoby5leHRlbmRGbGF0KHt9LGUpKX0pO2Vsc2UgaWYoeHx8LTEhPT1bInN0cmluZyIsIm51bWJlciJdLmluZGV4T2YodHlwZW9mIGUpKWZvcihkPTA7ZDxuLl9mcmFtZXMubGVuZ3RoO2QrKykobT1uLl9mcmFtZXNbZF0pJiYoeHx8U3RyaW5nKG0uZ3JvdXApPT09U3RyaW5nKGUpKSYmeS5wdXNoKHt0eXBlOiJieW5hbWUiLG5hbWU6U3RyaW5nKG0ubmFtZSksZGF0YTp2KHtuYW1lOm0ubmFtZX0pfSk7ZWxzZSBpZihiKWZvcihkPTA7ZDxlLmxlbmd0aDtkKyspe3ZhciB3PWVbZF07LTEhPT1bIm51bWJlciIsInN0cmluZyJdLmluZGV4T2YodHlwZW9mIHcpPyh3PVN0cmluZyh3KSx5LnB1c2goe3R5cGU6ImJ5bmFtZSIsbmFtZTp3LGRhdGE6dih7bmFtZTp3fSl9KSk6by5pc1BsYWluT2JqZWN0KHcpJiZ5LnB1c2goe3R5cGU6Im9iamVjdCIsZGF0YTp2KG8uZXh0ZW5kRmxhdCh7fSx3KSl9KX1mb3IoZD0wO2Q8eS5sZW5ndGg7ZCsrKWlmKCJieW5hbWUiPT09KG09eVtkXSkudHlwZSYmIW4uX2ZyYW1lSGFzaFttLmRhdGEubmFtZV0pcmV0dXJuIG8ud2FybignYW5pbWF0ZSBmYWlsdXJlOiBmcmFtZSBub3QgZm91bmQ6ICInK20uZGF0YS5uYW1lKyciJyksdm9pZCB1KCk7LTEhPT1bIm5leHQiLCJpbW1lZGlhdGUiXS5pbmRleE9mKHIubW9kZSkmJmZ1bmN0aW9uKCl7aWYoMCE9PW4uX2ZyYW1lUXVldWUubGVuZ3RoKXtmb3IoO24uX2ZyYW1lUXVldWUubGVuZ3RoOyl7dmFyIGU9bi5fZnJhbWVRdWV1ZS5wb3AoKTtlLm9uSW50ZXJydXB0JiZlLm9uSW50ZXJydXB0KCl9dC5lbWl0KCJwbG90bHlfYW5pbWF0aW9uaW50ZXJydXB0ZWQiLFtdKX19KCksInJldmVyc2UiPT09ci5kaXJlY3Rpb24mJnkucmV2ZXJzZSgpO3ZhciBUPXQuX2Z1bGxMYXlvdXQuX2N1cnJlbnRGcmFtZTtpZihUJiZyLmZyb21jdXJyZW50KXt2YXIgaz0tMTtmb3IoZD0wO2Q8eS5sZW5ndGg7ZCsrKWlmKCJieW5hbWUiPT09KG09eVtkXSkudHlwZSYmbS5uYW1lPT09VCl7az1kO2JyZWFrfWlmKGs+MCYmazx5Lmxlbmd0aC0xKXt2YXIgQT1bXTtmb3IoZD0wO2Q8eS5sZW5ndGg7ZCsrKW09eVtkXSwoImJ5bmFtZSIhPT15W2RdLnR5cGV8fGQ+aykmJkEucHVzaChtKTt5PUF9fXkubGVuZ3RoPjA/ZnVuY3Rpb24oZSl7aWYoMCE9PWUubGVuZ3RoKXtmb3IodmFyIGk9MDtpPGUubGVuZ3RoO2krKyl7dmFyIG87bz0iYnluYW1lIj09PWVbaV0udHlwZT9oLmNvbXB1dGVGcmFtZSh0LGVbaV0ubmFtZSk6ZVtpXS5kYXRhO3ZhciBmPWwoaSksZD1zKGkpO2QuZHVyYXRpb249TWF0aC5taW4oZC5kdXJhdGlvbixmLmR1cmF0aW9uKTt2YXIgbT17ZnJhbWU6byxuYW1lOmVbaV0ubmFtZSxmcmFtZU9wdHM6Zix0cmFuc2l0aW9uT3B0czpkfTtpPT09ZS5sZW5ndGgtMSYmKG0ub25Db21wbGV0ZT1jKGEsMiksbS5vbkludGVycnVwdD11KSxuLl9mcmFtZVF1ZXVlLnB1c2gobSl9ImltbWVkaWF0ZSI9PT1yLm1vZGUmJihuLl9sYXN0RnJhbWVBdD0tMS8wKSxuLl9hbmltYXRpb25SYWZ8fHAoKX19KHkpOih0LmVtaXQoInBsb3RseV9hbmltYXRlZCIpLGEoKSl9KSl9LHIuYWRkRnJhbWVzPWZ1bmN0aW9uKHQsZSxyKXtpZih0PW8uZ2V0R3JhcGhEaXYodCksbnVsbD09ZSlyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7aWYoIW8uaXNQbG90RGl2KHQpKXRocm93IG5ldyBFcnJvcigiVGhpcyBlbGVtZW50IGlzIG5vdCBhIFBsb3RseSBwbG90OiAiK3QrIi4gSXQncyBsaWtlbHkgdGhhdCB5b3UndmUgZmFpbGVkIHRvIGNyZWF0ZSBhIHBsb3QgYmVmb3JlIGFkZGluZyBmcmFtZXMuIEZvciBtb3JlIGRldGFpbHMsIHNlZSBodHRwczovL3Bsb3RseS5jb20vamF2YXNjcmlwdC9hbmltYXRpb25zLyIpO3ZhciBuLGksYSxzLGw9dC5fdHJhbnNpdGlvbkRhdGEuX2ZyYW1lcyx1PXQuX3RyYW5zaXRpb25EYXRhLl9mcmFtZUhhc2g7aWYoIUFycmF5LmlzQXJyYXkoZSkpdGhyb3cgbmV3IEVycm9yKCJhZGRGcmFtZXMgZmFpbHVyZTogZnJhbWVMaXN0IG11c3QgYmUgYW4gQXJyYXkgb2YgZnJhbWUgZGVmaW5pdGlvbnMiK2UpO3ZhciBmPWwubGVuZ3RoKzIqZS5sZW5ndGgscD1bXSxkPXt9O2ZvcihuPWUubGVuZ3RoLTE7bj49MDtuLS0paWYoby5pc1BsYWluT2JqZWN0KGVbbl0pKXt2YXIgbT1lW25dLm5hbWUsZz0odVttXXx8ZFttXXx8e30pLm5hbWUsdj1lW25dLm5hbWUseT11W2ddfHxkW2ddO2cmJnYmJiJudW1iZXIiPT10eXBlb2YgdiYmeSYmQTw1JiYoQSsrLG8ud2FybignYWRkRnJhbWVzOiBvdmVyd3JpdGluZyBmcmFtZSAiJysodVtnXXx8ZFtnXSkubmFtZSsnIiB3aXRoIGEgZnJhbWUgd2hvc2UgbmFtZSBvZiB0eXBlICJudW1iZXIiIGFsc28gZXF1YXRlcyB0byAiJytnKyciLiBUaGlzIGlzIHZhbGlkIGJ1dCBtYXkgcG90ZW50aWFsbHkgbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2aW9yIHNpbmNlIGFsbCBwbG90bHkuanMgZnJhbWUgbmFtZXMgYXJlIHN0b3JlZCBpbnRlcm5hbGx5IGFzIHN0cmluZ3MuJyksNT09PUEmJm8ud2FybigiYWRkRnJhbWVzOiBUaGlzIEFQSSBjYWxsIGhhcyB5aWVsZGVkIHRvbyBtYW55IG9mIHRoZXNlIHdhcm5pbmdzLiBGb3IgdGhlIHJlc3Qgb2YgdGhpcyBjYWxsLCBmdXJ0aGVyIHdhcm5pbmdzIGFib3V0IG51bWVyaWMgZnJhbWUgbmFtZXMgd2lsbCBiZSBzdXBwcmVzc2VkLiIpKSxkW21dPXtuYW1lOm19LHAucHVzaCh7ZnJhbWU6aC5zdXBwbHlGcmFtZURlZmF1bHRzKGVbbl0pLGluZGV4OnImJnZvaWQgMCE9PXJbbl0mJm51bGwhPT1yW25dP3Jbbl06ZitufSl9cC5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0LmluZGV4PmUuaW5kZXg/LTE6dC5pbmRleDxlLmluZGV4PzE6MH0pKTt2YXIgeD1bXSxiPVtdLF89bC5sZW5ndGg7Zm9yKG49cC5sZW5ndGgtMTtuPj0wO24tLSl7aWYoIm51bWJlciI9PXR5cGVvZihpPXBbbl0uZnJhbWUpLm5hbWUmJm8ud2FybigiV2FybmluZzogYWRkRnJhbWVzIGFjY2VwdHMgZnJhbWVzIHdpdGggbnVtZXJpYyBuYW1lcywgYnV0IHRoZSBudW1iZXJzIGFyZWltcGxpY2l0bHkgY2FzdCB0byBzdHJpbmdzIiksIWkubmFtZSlmb3IoO3VbaS5uYW1lPSJmcmFtZSAiK3QuX3RyYW5zaXRpb25EYXRhLl9jb3VudGVyKytdOyk7aWYodVtpLm5hbWVdKXtmb3IoYT0wO2E8bC5sZW5ndGgmJihsW2FdfHx7fSkubmFtZSE9PWkubmFtZTthKyspO3gucHVzaCh7dHlwZToicmVwbGFjZSIsaW5kZXg6YSx2YWx1ZTppfSksYi51bnNoaWZ0KHt0eXBlOiJyZXBsYWNlIixpbmRleDphLHZhbHVlOmxbYV19KX1lbHNlIHM9TWF0aC5tYXgoMCxNYXRoLm1pbihwW25dLmluZGV4LF8pKSx4LnB1c2goe3R5cGU6Imluc2VydCIsaW5kZXg6cyx2YWx1ZTppfSksYi51bnNoaWZ0KHt0eXBlOiJkZWxldGUiLGluZGV4OnN9KSxfKyt9dmFyIHc9aC5tb2RpZnlGcmFtZXMsVD1oLm1vZGlmeUZyYW1lcyxrPVt0LGJdLE09W3QseF07cmV0dXJuIGMmJmMuYWRkKHQsdyxrLFQsTSksaC5tb2RpZnlGcmFtZXModCx4KX0sci5kZWxldGVGcmFtZXM9ZnVuY3Rpb24odCxlKXtpZih0PW8uZ2V0R3JhcGhEaXYodCksIW8uaXNQbG90RGl2KHQpKXRocm93IG5ldyBFcnJvcigiVGhpcyBlbGVtZW50IGlzIG5vdCBhIFBsb3RseSBwbG90OiAiK3QpO3ZhciByLG4saT10Ll90cmFuc2l0aW9uRGF0YS5fZnJhbWVzLGE9W10scz1bXTtpZighZSlmb3IoZT1bXSxyPTA7cjxpLmxlbmd0aDtyKyspZS5wdXNoKHIpO2ZvcigoZT1lLnNsaWNlKCkpLnNvcnQoKSxyPWUubGVuZ3RoLTE7cj49MDtyLS0pbj1lW3JdLGEucHVzaCh7dHlwZToiZGVsZXRlIixpbmRleDpufSkscy51bnNoaWZ0KHt0eXBlOiJpbnNlcnQiLGluZGV4Om4sdmFsdWU6aVtuXX0pO3ZhciBsPWgubW9kaWZ5RnJhbWVzLHU9aC5tb2RpZnlGcmFtZXMsZj1bdCxzXSxwPVt0LGFdO3JldHVybiBjJiZjLmFkZCh0LGwsZix1LHApLGgubW9kaWZ5RnJhbWVzKHQsYSl9LHIuYWRkVHJhY2VzPWZ1bmN0aW9uIHQoZSxuLGkpe2U9by5nZXRHcmFwaERpdihlKTt2YXIgYSxzLGw9W10sdT1yLmRlbGV0ZVRyYWNlcyxmPXQsaD1bZSxsXSxwPVtlLG5dO2ZvcihmdW5jdGlvbih0LGUscil7dmFyIG4saTtpZighQXJyYXkuaXNBcnJheSh0LmRhdGEpKXRocm93IG5ldyBFcnJvcigiZ2QuZGF0YSBtdXN0IGJlIGFuIGFycmF5LiIpO2lmKHZvaWQgMD09PWUpdGhyb3cgbmV3IEVycm9yKCJ0cmFjZXMgbXVzdCBiZSBkZWZpbmVkLiIpO2ZvcihBcnJheS5pc0FycmF5KGUpfHwoZT1bZV0pLG49MDtuPGUubGVuZ3RoO24rKylpZigib2JqZWN0IiE9dHlwZW9mKGk9ZVtuXSl8fEFycmF5LmlzQXJyYXkoaSl8fG51bGw9PT1pKXRocm93IG5ldyBFcnJvcigiYWxsIHZhbHVlcyBpbiB0cmFjZXMgYXJyYXkgbXVzdCBiZSBub24tYXJyYXkgb2JqZWN0cyIpO2lmKHZvaWQgMD09PXJ8fEFycmF5LmlzQXJyYXkocil8fChyPVtyXSksdm9pZCAwIT09ciYmci5sZW5ndGghPT1lLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoImlmIGluZGljZXMgaXMgc3BlY2lmaWVkLCB0cmFjZXMubGVuZ3RoIG11c3QgZXF1YWwgaW5kaWNlcy5sZW5ndGgiKX0oZSxuLGkpLEFycmF5LmlzQXJyYXkobil8fChuPVtuXSksbj1uLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIG8uZXh0ZW5kRmxhdCh7fSx0KX0pKSxfLmNsZWFuRGF0YShuKSxhPTA7YTxuLmxlbmd0aDthKyspZS5kYXRhLnB1c2goblthXSk7Zm9yKGE9MDthPG4ubGVuZ3RoO2ErKylsLnB1c2goLW4ubGVuZ3RoK2EpO2lmKHZvaWQgMD09PWkpcmV0dXJuIHM9ci5yZWRyYXcoZSksYy5hZGQoZSx1LGgsZixwKSxzO0FycmF5LmlzQXJyYXkoaSl8fChpPVtpXSk7dHJ5e0koZSxsLGkpfWNhdGNoKHQpe3Rocm93IGUuZGF0YS5zcGxpY2UoZS5kYXRhLmxlbmd0aC1uLmxlbmd0aCxuLmxlbmd0aCksdH1yZXR1cm4gYy5zdGFydFNlcXVlbmNlKGUpLGMuYWRkKGUsdSxoLGYscCkscz1yLm1vdmVUcmFjZXMoZSxsLGkpLGMuc3RvcFNlcXVlbmNlKGUpLHN9LHIuZGVsZXRlVHJhY2VzPWZ1bmN0aW9uIHQoZSxuKXtlPW8uZ2V0R3JhcGhEaXYoZSk7dmFyIGksYSxzPVtdLGw9ci5hZGRUcmFjZXMsdT10LGY9W2UscyxuXSxoPVtlLG5dO2lmKHZvaWQgMD09PW4pdGhyb3cgbmV3IEVycm9yKCJpbmRpY2VzIG11c3QgYmUgYW4gaW50ZWdlciBvciBhcnJheSBvZiBpbnRlZ2Vycy4iKTtmb3IoQXJyYXkuaXNBcnJheShuKXx8KG49W25dKSxQKGUsbiwiaW5kaWNlcyIpLChuPUMobixlLmRhdGEubGVuZ3RoLTEpKS5zb3J0KG8uc29ydGVyRGVzKSxpPTA7aTxuLmxlbmd0aDtpKz0xKWE9ZS5kYXRhLnNwbGljZShuW2ldLDEpWzBdLHMucHVzaChhKTt2YXIgcD1yLnJlZHJhdyhlKTtyZXR1cm4gYy5hZGQoZSxsLGYsdSxoKSxwfSxyLmV4dGVuZFRyYWNlcz1mdW5jdGlvbiB0KGUsbixpLGEpe2Z1bmN0aW9uIHModCxlLHIpe3ZhciBuLGk7aWYoby5pc1R5cGVkQXJyYXkodCkpaWYocjwwKXt2YXIgYT1uZXcgdC5jb25zdHJ1Y3RvcigwKSxzPXoodCxlKTtyPDA/KG49cyxpPWEpOihuPWEsaT1zKX1lbHNlIGlmKG49bmV3IHQuY29uc3RydWN0b3IociksaT1uZXcgdC5jb25zdHJ1Y3Rvcih0Lmxlbmd0aCtlLmxlbmd0aC1yKSxyPT09ZS5sZW5ndGgpbi5zZXQoZSksaS5zZXQodCk7ZWxzZSBpZihyPGUubGVuZ3RoKXt2YXIgbD1lLmxlbmd0aC1yO24uc2V0KGUuc3ViYXJyYXkobCkpLGkuc2V0KHQpLGkuc2V0KGUuc3ViYXJyYXkoMCxsKSx0Lmxlbmd0aCl9ZWxzZXt2YXIgYz1yLWUubGVuZ3RoLHU9dC5sZW5ndGgtYztuLnNldCh0LnN1YmFycmF5KHUpKSxuLnNldChlLGMpLGkuc2V0KHQuc3ViYXJyYXkoMCx1KSl9ZWxzZSBuPXQuY29uY2F0KGUpLGk9cj49MCYmcjxuLmxlbmd0aD9uLnNwbGljZSgwLG4ubGVuZ3RoLXIpOltdO3JldHVybltuLGldfXZhciBsPU8oZT1vLmdldEdyYXBoRGl2KGUpLG4saSxhLHMpLHU9ci5yZWRyYXcoZSksZj1bZSxsLnVwZGF0ZSxpLGwubWF4UG9pbnRzXTtyZXR1cm4gYy5hZGQoZSxyLnByZXBlbmRUcmFjZXMsZix0LGFyZ3VtZW50cyksdX0sci5tb3ZlVHJhY2VzPWZ1bmN0aW9uIHQoZSxuLGkpe3ZhciBhLHM9W10sbD1bXSx1PXQsZj10LGg9W2U9by5nZXRHcmFwaERpdihlKSxpLG5dLHA9W2UsbixpXTtpZihJKGUsbixpKSxuPUFycmF5LmlzQXJyYXkobik/bjpbbl0sdm9pZCAwPT09aSlmb3IoaT1bXSxhPTA7YTxuLmxlbmd0aDthKyspaS5wdXNoKC1uLmxlbmd0aCthKTtmb3IoaT1BcnJheS5pc0FycmF5KGkpP2k6W2ldLG49QyhuLGUuZGF0YS5sZW5ndGgtMSksaT1DKGksZS5kYXRhLmxlbmd0aC0xKSxhPTA7YTxlLmRhdGEubGVuZ3RoO2ErKyktMT09PW4uaW5kZXhPZihhKSYmcy5wdXNoKGUuZGF0YVthXSk7Zm9yKGE9MDthPG4ubGVuZ3RoO2ErKylsLnB1c2goe25ld0luZGV4OmlbYV0sdHJhY2U6ZS5kYXRhW25bYV1dfSk7Zm9yKGwuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5uZXdJbmRleC1lLm5ld0luZGV4fSkpLGE9MDthPGwubGVuZ3RoO2ErPTEpcy5zcGxpY2UobFthXS5uZXdJbmRleCwwLGxbYV0udHJhY2UpO2UuZGF0YT1zO3ZhciBkPXIucmVkcmF3KGUpO3JldHVybiBjLmFkZChlLHUsaCxmLHApLGR9LHIucHJlcGVuZFRyYWNlcz1mdW5jdGlvbiB0KGUsbixpLGEpe2Z1bmN0aW9uIHModCxlLHIpe3ZhciBuLGk7aWYoby5pc1R5cGVkQXJyYXkodCkpaWYocjw9MCl7dmFyIGE9bmV3IHQuY29uc3RydWN0b3IoMCkscz16KGUsdCk7cjwwPyhuPXMsaT1hKToobj1hLGk9cyl9ZWxzZSBpZihuPW5ldyB0LmNvbnN0cnVjdG9yKHIpLGk9bmV3IHQuY29uc3RydWN0b3IodC5sZW5ndGgrZS5sZW5ndGgtcikscj09PWUubGVuZ3RoKW4uc2V0KGUpLGkuc2V0KHQpO2Vsc2UgaWYocjxlLmxlbmd0aCl7dmFyIGw9ZS5sZW5ndGgtcjtuLnNldChlLnN1YmFycmF5KDAsbCkpLGkuc2V0KGUuc3ViYXJyYXkobCkpLGkuc2V0KHQsbCl9ZWxzZXt2YXIgYz1yLWUubGVuZ3RoO24uc2V0KGUpLG4uc2V0KHQuc3ViYXJyYXkoMCxjKSxlLmxlbmd0aCksaS5zZXQodC5zdWJhcnJheShjKSl9ZWxzZSBuPWUuY29uY2F0KHQpLGk9cj49MCYmcjxuLmxlbmd0aD9uLnNwbGljZShyLG4ubGVuZ3RoKTpbXTtyZXR1cm5bbixpXX12YXIgbD1PKGU9by5nZXRHcmFwaERpdihlKSxuLGksYSxzKSx1PXIucmVkcmF3KGUpLGY9W2UsbC51cGRhdGUsaSxsLm1heFBvaW50c107cmV0dXJuIGMuYWRkKGUsci5leHRlbmRUcmFjZXMsZix0LGFyZ3VtZW50cyksdX0sci5uZXdQbG90PWZ1bmN0aW9uKHQsZSxuLGkpe3JldHVybiB0PW8uZ2V0R3JhcGhEaXYodCksaC5jbGVhblBsb3QoW10se30sdC5fZnVsbERhdGF8fFtdLHQuX2Z1bGxMYXlvdXR8fHt9KSxoLnB1cmdlKHQpLHIuX2RvUGxvdCh0LGUsbixpKX0sci5fZG9QbG90PWZ1bmN0aW9uKHQsZSxpLGEpe3ZhciBzO2lmKHQ9by5nZXRHcmFwaERpdih0KSxsLmluaXQodCksby5pc1BsYWluT2JqZWN0KGUpKXt2YXIgYz1lO2U9Yy5kYXRhLGk9Yy5sYXlvdXQsYT1jLmNvbmZpZyxzPWMuZnJhbWVzfWlmKCExPT09bC50cmlnZ2VySGFuZGxlcih0LCJwbG90bHlfYmVmb3JlcGxvdCIsW2UsaSxhXSkpcmV0dXJuIFByb21pc2UucmVqZWN0KCk7ZXx8aXx8by5pc1Bsb3REaXYodCl8fG8ud2FybigiQ2FsbGluZyBfZG9QbG90IGFzIGlmIHJlZHJhd2luZyBidXQgdGhpcyBjb250YWluZXIgZG9lc24ndCB5ZXQgaGF2ZSBhIHBsb3QuIix0KSxMKHQsYSksaXx8KGk9e30pLG4uc2VsZWN0KHQpLmNsYXNzZWQoImpzLXBsb3RseS1wbG90IiwhMCksZC5tYWtlVGVzdGVyKCksQXJyYXkuaXNBcnJheSh0Ll9wcm9taXNlcyl8fCh0Ll9wcm9taXNlcz1bXSk7dmFyIGY9MD09PSh0LmRhdGF8fFtdKS5sZW5ndGgmJkFycmF5LmlzQXJyYXkoZSk7QXJyYXkuaXNBcnJheShlKSYmKF8uY2xlYW5EYXRhKGUpLGY/dC5kYXRhPWU6dC5kYXRhLnB1c2guYXBwbHkodC5kYXRhLGUpLHQuZW1wdHk9ITEpLHQubGF5b3V0JiYhZnx8KHQubGF5b3V0PV8uY2xlYW5MYXlvdXQoaSkpLGguc3VwcGx5RGVmYXVsdHModCk7dmFyIG09dC5fZnVsbExheW91dCx5PW0uX2hhcygiY2FydGVzaWFuIik7bS5fcmVwbG90dGluZz0hMCwoZnx8bS5fc2hvdWxkQ3JlYXRlQmdMYXllcikmJighZnVuY3Rpb24odCl7dmFyIGU9bi5zZWxlY3QodCkscj10Ll9mdWxsTGF5b3V0O2lmKHIuX2NhbGNJbnZlcnNlVHJhbnNmb3JtPWF0LHIuX2NhbGNJbnZlcnNlVHJhbnNmb3JtKHQpLHIuX2NvbnRhaW5lcj1lLnNlbGVjdEFsbCgiLnBsb3QtY29udGFpbmVyIikuZGF0YShbMF0pLHIuX2NvbnRhaW5lci5lbnRlcigpLmluc2VydCgiZGl2IiwiOmZpcnN0LWNoaWxkIikuY2xhc3NlZCgicGxvdC1jb250YWluZXIiLCEwKS5jbGFzc2VkKCJwbG90bHkiLCEwKSxyLl9wYXBlcmRpdj1yLl9jb250YWluZXIuc2VsZWN0QWxsKCIuc3ZnLWNvbnRhaW5lciIpLmRhdGEoWzBdKSxyLl9wYXBlcmRpdi5lbnRlcigpLmFwcGVuZCgiZGl2IikuY2xhc3NlZCgidXNlci1zZWxlY3Qtbm9uZSIsITApLmNsYXNzZWQoInN2Zy1jb250YWluZXIiLCEwKS5zdHlsZSgicG9zaXRpb24iLCJyZWxhdGl2ZSIpLHIuX2dsY29udGFpbmVyPXIuX3BhcGVyZGl2LnNlbGVjdEFsbCgiLmdsLWNvbnRhaW5lciIpLmRhdGEoW3t9XSksci5fZ2xjb250YWluZXIuZW50ZXIoKS5hcHBlbmQoImRpdiIpLmNsYXNzZWQoImdsLWNvbnRhaW5lciIsITApLHIuX3BhcGVyZGl2LnNlbGVjdEFsbCgiLm1haW4tc3ZnIikucmVtb3ZlKCksci5fcGFwZXJkaXYuc2VsZWN0KCIubW9kZWJhci1jb250YWluZXIiKS5yZW1vdmUoKSxyLl9wYXBlcj1yLl9wYXBlcmRpdi5pbnNlcnQoInN2ZyIsIjpmaXJzdC1jaGlsZCIpLmNsYXNzZWQoIm1haW4tc3ZnIiwhMCksci5fdG9wcGFwZXI9ci5fcGFwZXJkaXYuYXBwZW5kKCJzdmciKS5jbGFzc2VkKCJtYWluLXN2ZyIsITApLHIuX21vZGViYXJkaXY9ci5fcGFwZXJkaXYuYXBwZW5kKCJkaXYiKSxkZWxldGUgci5fbW9kZUJhcixyLl9ob3ZlcnBhcGVyPXIuX3BhcGVyZGl2LmFwcGVuZCgic3ZnIikuY2xhc3NlZCgibWFpbi1zdmciLCEwKSwhci5fdWlkKXt2YXIgaT17fTtuLnNlbGVjdEFsbCgiZGVmcyIpLmVhY2goKGZ1bmN0aW9uKCl7dGhpcy5pZCYmKGlbdGhpcy5pZC5zcGxpdCgiLSIpWzFdXT0xKX0pKSxyLl91aWQ9by5yYW5kc3RyKGkpfXIuX3BhcGVyZGl2LnNlbGVjdEFsbCgiLm1haW4tc3ZnIikuYXR0cih2LnN2Z0F0dHJzKSxyLl9kZWZzPXIuX3BhcGVyLmFwcGVuZCgiZGVmcyIpLmF0dHIoImlkIiwiZGVmcy0iK3IuX3VpZCksci5fY2xpcHM9ci5fZGVmcy5hcHBlbmQoImciKS5jbGFzc2VkKCJjbGlwcyIsITApLHIuX3RvcGRlZnM9ci5fdG9wcGFwZXIuYXBwZW5kKCJkZWZzIikuYXR0cigiaWQiLCJ0b3BkZWZzLSIrci5fdWlkKSxyLl90b3BjbGlwcz1yLl90b3BkZWZzLmFwcGVuZCgiZyIpLmNsYXNzZWQoImNsaXBzIiwhMCksci5fYmdMYXllcj1yLl9wYXBlci5hcHBlbmQoImciKS5jbGFzc2VkKCJiZ2xheWVyIiwhMCksci5fZHJhZ2dlcnM9ci5fcGFwZXIuYXBwZW5kKCJnIikuY2xhc3NlZCgiZHJhZ2xheWVyIiwhMCk7dmFyIGE9ci5fcGFwZXIuYXBwZW5kKCJnIikuY2xhc3NlZCgibGF5ZXItYmVsb3ciLCEwKTtyLl9pbWFnZUxvd2VyTGF5ZXI9YS5hcHBlbmQoImciKS5jbGFzc2VkKCJpbWFnZWxheWVyIiwhMCksci5fc2hhcGVMb3dlckxheWVyPWEuYXBwZW5kKCJnIikuY2xhc3NlZCgic2hhcGVsYXllciIsITApLHIuX2NhcnRlc2lhbmxheWVyPXIuX3BhcGVyLmFwcGVuZCgiZyIpLmNsYXNzZWQoImNhcnRlc2lhbmxheWVyIiwhMCksci5fcG9sYXJsYXllcj1yLl9wYXBlci5hcHBlbmQoImciKS5jbGFzc2VkKCJwb2xhcmxheWVyIiwhMCksci5fc21pdGhsYXllcj1yLl9wYXBlci5hcHBlbmQoImciKS5jbGFzc2VkKCJzbWl0aGxheWVyIiwhMCksci5fdGVybmFyeWxheWVyPXIuX3BhcGVyLmFwcGVuZCgiZyIpLmNsYXNzZWQoInRlcm5hcnlsYXllciIsITApLHIuX2dlb2xheWVyPXIuX3BhcGVyLmFwcGVuZCgiZyIpLmNsYXNzZWQoImdlb2xheWVyIiwhMCksci5fZnVubmVsYXJlYWxheWVyPXIuX3BhcGVyLmFwcGVuZCgiZyIpLmNsYXNzZWQoImZ1bm5lbGFyZWFsYXllciIsITApLHIuX3BpZWxheWVyPXIuX3BhcGVyLmFwcGVuZCgiZyIpLmNsYXNzZWQoInBpZWxheWVyIiwhMCksci5faWNpY2xlbGF5ZXI9ci5fcGFwZXIuYXBwZW5kKCJnIikuY2xhc3NlZCgiaWNpY2xlbGF5ZXIiLCEwKSxyLl90cmVlbWFwbGF5ZXI9ci5fcGFwZXIuYXBwZW5kKCJnIikuY2xhc3NlZCgidHJlZW1hcGxheWVyIiwhMCksci5fc3VuYnVyc3RsYXllcj1yLl9wYXBlci5hcHBlbmQoImciKS5jbGFzc2VkKCJzdW5idXJzdGxheWVyIiwhMCksci5faW5kaWNhdG9ybGF5ZXI9ci5fdG9wcGFwZXIuYXBwZW5kKCJnIikuY2xhc3NlZCgiaW5kaWNhdG9ybGF5ZXIiLCEwKSxyLl9nbGltYWdlcz1yLl9wYXBlci5hcHBlbmQoImciKS5jbGFzc2VkKCJnbGltYWdlcyIsITApO3ZhciBzPXIuX3RvcHBhcGVyLmFwcGVuZCgiZyIpLmNsYXNzZWQoImxheWVyLWFib3ZlIiwhMCk7ci5faW1hZ2VVcHBlckxheWVyPXMuYXBwZW5kKCJnIikuY2xhc3NlZCgiaW1hZ2VsYXllciIsITApLHIuX3NoYXBlVXBwZXJMYXllcj1zLmFwcGVuZCgiZyIpLmNsYXNzZWQoInNoYXBlbGF5ZXIiLCEwKSxyLl9zZWxlY3Rpb25MYXllcj1yLl90b3BwYXBlci5hcHBlbmQoImciKS5jbGFzc2VkKCJzZWxlY3Rpb25sYXllciIsITApLHIuX2luZm9sYXllcj1yLl90b3BwYXBlci5hcHBlbmQoImciKS5jbGFzc2VkKCJpbmZvbGF5ZXIiLCEwKSxyLl9tZW51bGF5ZXI9ci5fdG9wcGFwZXIuYXBwZW5kKCJnIikuY2xhc3NlZCgibWVudWxheWVyIiwhMCksci5fem9vbWxheWVyPXIuX3RvcHBhcGVyLmFwcGVuZCgiZyIpLmNsYXNzZWQoInpvb21sYXllciIsITApLHIuX2hvdmVybGF5ZXI9ci5faG92ZXJwYXBlci5hcHBlbmQoImciKS5jbGFzc2VkKCJob3ZlcmxheWVyIiwhMCksci5fbW9kZWJhcmRpdi5jbGFzc2VkKCJtb2RlYmFyLWNvbnRhaW5lciIsITApLnN0eWxlKCJwb3NpdGlvbiIsImFic29sdXRlIikuc3R5bGUoInRvcCIsIjBweCIpLnN0eWxlKCJyaWdodCIsIjBweCIpLHQuZW1pdCgicGxvdGx5X2ZyYW1ld29yayIpfSh0KSxtLl9zaG91bGRDcmVhdGVCZ0xheWVyJiZkZWxldGUgbS5fc2hvdWxkQ3JlYXRlQmdMYXllciksZC5pbml0R3JhZGllbnRzKHQpLGQuaW5pdFBhdHRlcm5zKHQpLGYmJnAuc2F2ZVNob3dTcGlrZUluaXRpYWwodCk7dmFyIHg9IXQuY2FsY2RhdGF8fHQuY2FsY2RhdGEubGVuZ3RoIT09KHQuX2Z1bGxEYXRhfHxbXSkubGVuZ3RoO3gmJmguZG9DYWxjZGF0YSh0KTtmb3IodmFyIGI9MDtiPHQuY2FsY2RhdGEubGVuZ3RoO2IrKyl0LmNhbGNkYXRhW2JdWzBdLnRyYWNlPXQuX2Z1bGxEYXRhW2JdO3QuX2NvbnRleHQucmVzcG9uc2l2ZT90Ll9yZXNwb25zaXZlQ2hhcnRIYW5kbGVyfHwodC5fcmVzcG9uc2l2ZUNoYXJ0SGFuZGxlcj1mdW5jdGlvbigpe28uaXNIaWRkZW4odCl8fGgucmVzaXplKHQpfSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0Ll9yZXNwb25zaXZlQ2hhcnRIYW5kbGVyKSk6by5jbGVhclJlc3BvbnNpdmUodCk7dmFyIFQ9by5leHRlbmRGbGF0KHt9LG0uX3NpemUpLGs9MDtmdW5jdGlvbiBBKCl7aWYoaC5jbGVhckF1dG9NYXJnaW5JZHModCksdy5kcmF3TWFyZ2luUHVzaGVycyh0KSxwLmFsbG93QXV0b01hcmdpbih0KSxtLl9oYXMoInBpZSIpKWZvcih2YXIgZT10Ll9mdWxsRGF0YSxyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBuPWVbcl07InBpZSI9PT1uLnR5cGUmJm4uYXV0b21hcmdpbiYmaC5hbGxvd0F1dG9NYXJnaW4odCwicGllLiIrbi51aWQrIi5hdXRvbWFyZ2luIil9cmV0dXJuIGguZG9BdXRvTWFyZ2luKHQpLGgucHJldmlvdXNQcm9taXNlcyh0KX1mdW5jdGlvbiBTKCl7dC5fdHJhbnNpdGlvbmluZ3x8KHcuZG9BdXRvUmFuZ2VBbmRDb25zdHJhaW50cyh0KSxmJiZwLnNhdmVSYW5nZUluaXRpYWwodCksdS5nZXRDb21wb25lbnRNZXRob2QoInJhbmdlc2xpZGVyIiwiY2FsY0F1dG9yYW5nZSIpKHQpKX12YXIgRT1baC5wcmV2aW91c1Byb21pc2VzLGZ1bmN0aW9uKCl7aWYocylyZXR1cm4gci5hZGRGcmFtZXModCxzKX0sZnVuY3Rpb24gZSgpe2Zvcih2YXIgcj1tLl9iYXNlUGxvdE1vZHVsZXMsbj0wO248ci5sZW5ndGg7bisrKXJbbl0uZHJhd0ZyYW1ld29yayYmcltuXS5kcmF3RnJhbWV3b3JrKHQpOyFtLl9nbGNhbnZhcyYmbS5faGFzKCJnbCIpJiYobS5fZ2xjYW52YXM9bS5fZ2xjb250YWluZXIuc2VsZWN0QWxsKCIuZ2wtY2FudmFzIikuZGF0YShbe2tleToiY29udGV4dExheWVyIixjb250ZXh0OiEwLHBpY2s6ITF9LHtrZXk6ImZvY3VzTGF5ZXIiLGNvbnRleHQ6ITEscGljazohMX0se2tleToicGlja0xheWVyIixjb250ZXh0OiExLHBpY2s6ITB9XSwoZnVuY3Rpb24odCl7cmV0dXJuIHQua2V5fSkpLG0uX2dsY2FudmFzLmVudGVyKCkuYXBwZW5kKCJjYW52YXMiKS5hdHRyKCJjbGFzcyIsKGZ1bmN0aW9uKHQpe3JldHVybiJnbC1jYW52YXMgZ2wtY2FudmFzLSIrdC5rZXkucmVwbGFjZSgiTGF5ZXIiLCIiKX0pKS5zdHlsZSh7cG9zaXRpb246ImFic29sdXRlIix0b3A6MCxsZWZ0OjAsb3ZlcmZsb3c6InZpc2libGUiLCJwb2ludGVyLWV2ZW50cyI6Im5vbmUifSkpO3ZhciBpPXQuX2NvbnRleHQucGxvdEdsUGl4ZWxSYXRpbztpZihtLl9nbGNhbnZhcyl7bS5fZ2xjYW52YXMuYXR0cigid2lkdGgiLG0ud2lkdGgqaSkuYXR0cigiaGVpZ2h0IixtLmhlaWdodCppKS5zdHlsZSgid2lkdGgiLG0ud2lkdGgrInB4Iikuc3R5bGUoImhlaWdodCIsbS5oZWlnaHQrInB4Iik7dmFyIGE9bS5fZ2xjYW52YXMuZGF0YSgpWzBdLnJlZ2w7aWYoYSYmKE1hdGguZmxvb3IobS53aWR0aCppKSE9PWEuX2dsLmRyYXdpbmdCdWZmZXJXaWR0aHx8TWF0aC5mbG9vcihtLmhlaWdodCppKSE9PWEuX2dsLmRyYXdpbmdCdWZmZXJIZWlnaHQpKXt2YXIgcz0iV2ViR0wgY29udGV4dCBidWZmZXIgYW5kIGNhbnZhcyBkaW1lbnNpb25zIGRvIG5vdCBtYXRjaCBkdWUgdG8gYnJvd3Nlci9XZWJHTCBidWcuIjtpZighaylyZXR1cm4gby5sb2cocysiIENsZWFyaW5nIGdyYXBoIGFuZCBwbG90dGluZyBhZ2Fpbi4iKSxoLmNsZWFuUGxvdChbXSx7fSx0Ll9mdWxsRGF0YSxtKSxoLnN1cHBseURlZmF1bHRzKHQpLG09dC5fZnVsbExheW91dCxoLmRvQ2FsY2RhdGEodCksaysrLGUoKTtvLmVycm9yKHMpfX1yZXR1cm4iaCI9PT1tLm1vZGViYXIub3JpZW50YXRpb24/bS5fbW9kZWJhcmRpdi5zdHlsZSgiaGVpZ2h0IixudWxsKS5zdHlsZSgid2lkdGgiLCIxMDAlIik6bS5fbW9kZWJhcmRpdi5zdHlsZSgid2lkdGgiLG51bGwpLnN0eWxlKCJoZWlnaHQiLG0uaGVpZ2h0KyJweCIpLGgucHJldmlvdXNQcm9taXNlcyh0KX0sQSxmdW5jdGlvbigpe2lmKGguZGlkTWFyZ2luQ2hhbmdlKFQsbS5fc2l6ZSkpcmV0dXJuIG8uc3luY09yQXN5bmMoW0Esdy5sYXlvdXRTdHlsZXNdLHQpfV07eSYmRS5wdXNoKChmdW5jdGlvbigpe2lmKHgpcmV0dXJuIG8uc3luY09yQXN5bmMoW3UuZ2V0Q29tcG9uZW50TWV0aG9kKCJzaGFwZXMiLCJjYWxjQXV0b3JhbmdlIiksdS5nZXRDb21wb25lbnRNZXRob2QoImFubm90YXRpb25zIiwiY2FsY0F1dG9yYW5nZSIpLFNdLHQpO1MoKX0pKSxFLnB1c2gody5sYXlvdXRTdHlsZXMpLHkmJkUucHVzaCgoZnVuY3Rpb24oKXtyZXR1cm4gcC5kcmF3KHQsZj8iIjoicmVkcmF3Iil9KSwoZnVuY3Rpb24odCl7dC5fZnVsbExheW91dC5faW5zaWRlVGlja0xhYmVsc0F1dG9yYW5nZSYmVSh0LHQuX2Z1bGxMYXlvdXQuX2luc2lkZVRpY2tMYWJlbHNBdXRvcmFuZ2UpLnRoZW4oKGZ1bmN0aW9uKCl7dC5fZnVsbExheW91dC5faW5zaWRlVGlja0xhYmVsc0F1dG9yYW5nZT12b2lkIDB9KSl9KSksRS5wdXNoKHcuZHJhd0RhdGEsdy5maW5hbERyYXcsZyxoLmFkZExpbmtzLGgucmVob3ZlcixoLnJlZHJhZyxoLnJlc2VsZWN0LGguZG9BdXRvTWFyZ2luLChmdW5jdGlvbih0KXt0Ll9mdWxsTGF5b3V0Ll9pbnNpZGVUaWNrTGFiZWxzQXV0b3JhbmdlJiZmJiZwLnNhdmVSYW5nZUluaXRpYWwodCwhMCl9KSxoLnByZXZpb3VzUHJvbWlzZXMpO3ZhciBDPW8uc3luY09yQXN5bmMoRSx0KTtyZXR1cm4gQyYmQy50aGVufHwoQz1Qcm9taXNlLnJlc29sdmUoKSksQy50aGVuKChmdW5jdGlvbigpe3JldHVybiBNKHQpLHR9KSl9LHIucHVyZ2U9ZnVuY3Rpb24odCl7dmFyIGU9KHQ9by5nZXRHcmFwaERpdih0KSkuX2Z1bGxMYXlvdXR8fHt9LHI9dC5fZnVsbERhdGF8fFtdO3JldHVybiBoLmNsZWFuUGxvdChbXSx7fSxyLGUpLGgucHVyZ2UodCksbC5wdXJnZSh0KSxlLl9jb250YWluZXImJmUuX2NvbnRhaW5lci5yZW1vdmUoKSxkZWxldGUgdC5fY29udGV4dCx0fSxyLnJlYWN0PWZ1bmN0aW9uKHQsZSxuLGkpe3ZhciBhLGw7dD1vLmdldEdyYXBoRGl2KHQpLF8uY2xlYXJQcm9taXNlUXVldWUodCk7dmFyIGM9dC5fZnVsbERhdGEscD10Ll9mdWxsTGF5b3V0O2lmKG8uaXNQbG90RGl2KHQpJiZjJiZwKXtpZihvLmlzUGxhaW5PYmplY3QoZSkpe3ZhciBkPWU7ZT1kLmRhdGEsbj1kLmxheW91dCxpPWQuY29uZmlnLGE9ZC5mcmFtZXN9dmFyIG09ITE7aWYoaSl7dmFyIGc9by5leHRlbmREZWVwKHt9LHQuX2NvbnRleHQpO3QuX2NvbnRleHQ9dm9pZCAwLEwodCxpKSxtPWZ1bmN0aW9uIHQoZSxyKXt2YXIgbjtmb3IobiBpbiBlKWlmKCJfIiE9PW4uY2hhckF0KDApKXt2YXIgaT1lW25dLGE9cltuXTtpZihpIT09YSlpZihvLmlzUGxhaW5PYmplY3QoaSkmJm8uaXNQbGFpbk9iamVjdChhKSl7aWYodChpLGEpKXJldHVybiEwfWVsc2V7aWYoIUFycmF5LmlzQXJyYXkoaSl8fCFBcnJheS5pc0FycmF5KGEpKXJldHVybiEwO2lmKGkubGVuZ3RoIT09YS5sZW5ndGgpcmV0dXJuITA7Zm9yKHZhciBzPTA7czxpLmxlbmd0aDtzKyspaWYoaVtzXSE9PWFbc10pe2lmKCFvLmlzUGxhaW5PYmplY3QoaVtzXSl8fCFvLmlzUGxhaW5PYmplY3QoYVtzXSkpcmV0dXJuITA7aWYodChpW3NdLGFbc10pKXJldHVybiEwfX19fShnLHQuX2NvbnRleHQpfXQuZGF0YT1lfHxbXSxfLmNsZWFuRGF0YSh0LmRhdGEpLHQubGF5b3V0PW58fHt9LF8uY2xlYW5MYXlvdXQodC5sYXlvdXQpLGZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpLGEsbCxjLHUsZixoLHAsZCxtLGc9bi5fcHJlR1VJLHY9W10seT17fSx4PXt9O2ZvcihpIGluIGcpe2lmKHU9JChpLEspKXtpZihkPXUuaGVhZCxtPXUudGFpbCxhPXUuYXR0cnx8ZCsiLnVpcmV2aXNpb24iLChjPShsPXMobixhKS5nZXQoKSkmJnR0KGEsZSkpJiZjPT09bCl7aWYobnVsbD09PShmPWdbaV0pJiYoZj12b2lkIDApLG50KHA9KGg9cyhlLGkpKS5nZXQoKSxmKSl7dm9pZCAwPT09cCYmImF1dG9yYW5nZSI9PT1tJiZ2LnB1c2goZCksaC5zZXQoUihzKG4saSkuZ2V0KCkpKTtjb250aW51ZX1pZigiYXV0b3JhbmdlIj09PW18fCJyYW5nZVsiPT09bS5zdWJzdHIoMCw2KSl7dmFyIGI9Z1tkKyIucmFuZ2VbMF0iXSxfPWdbZCsiLnJhbmdlWzFdIl0sdz1nW2QrIi5hdXRvcmFuZ2UiXTtpZih3fHxudWxsPT09dyYmbnVsbD09PWImJm51bGw9PT1fKXtpZighKGQgaW4geSkpe3ZhciBUPXMoZSxkKS5nZXQoKTt5W2RdPVQmJihULmF1dG9yYW5nZXx8ITEhPT1ULmF1dG9yYW5nZSYmKCFULnJhbmdlfHwyIT09VC5yYW5nZS5sZW5ndGgpKX1pZih5W2RdKXtoLnNldChSKHMobixpKS5nZXQoKSkpO2NvbnRpbnVlfX19fX1lbHNlIG8ud2FybigidW5yZWNvZ25pemVkIEdVSSBlZGl0OiAiK2kpO2RlbGV0ZSBnW2ldLHUmJiJyYW5nZVsiPT09dS50YWlsLnN1YnN0cigwLDYpJiYoeFt1LmhlYWRdPTEpfWZvcih2YXIgaz0wO2s8di5sZW5ndGg7aysrKXt2YXIgQT12W2tdO2lmKHhbQV0pe3ZhciBNPXMoZSxBKS5nZXQoKTtNJiZkZWxldGUgTS5hdXRvcmFuZ2V9fXZhciBTPW4uX3RyYWNlUHJlR1VJO2Zvcih2YXIgRSBpbiBTKXt2YXIgTCxDPVNbRV0sUD1udWxsO2ZvcihpIGluIEMpe2lmKCFQKXt2YXIgST1ldChFLHIpO2lmKEk8MCl7ZGVsZXRlIFNbRV07YnJlYWt9dmFyIE89cnQoRSx0LChMPXJbSV0uX2Z1bGxJbnB1dCkuaW5kZXgpO2lmKE88MCl7ZGVsZXRlIFNbRV07YnJlYWt9UD10W09dfWlmKHU9JChpLFEpKXtpZih1LmF0dHI/Yz0obD1zKG4sdS5hdHRyKS5nZXQoKSkmJnR0KHUuYXR0cixlKToobD1MLnVpcmV2aXNpb24sdm9pZCAwPT09KGM9UC51aXJldmlzaW9uKSYmKGM9ZS51aXJldmlzaW9uKSksYyYmYz09PWwmJihudWxsPT09KGY9Q1tpXSkmJihmPXZvaWQgMCksbnQocD0oaD1zKFAsaSkpLmdldCgpLGYpKSl7aC5zZXQoUihzKEwsaSkuZ2V0KCkpKTtjb250aW51ZX19ZWxzZSBvLndhcm4oInVucmVjb2duaXplZCBHVUkgZWRpdDogIitpKyIgaW4gdHJhY2UgdWlkICIrRSk7ZGVsZXRlIENbaV19fX0odC5kYXRhLHQubGF5b3V0LGMscCksaC5zdXBwbHlEZWZhdWx0cyh0LHtza2lwVXBkYXRlQ2FsYzohMH0pO3ZhciB2PXQuX2Z1bGxEYXRhLHk9dC5fZnVsbExheW91dCx4PXZvaWQgMD09PXkuZGF0YXJldmlzaW9uLGI9eS50cmFuc2l0aW9uLGs9ZnVuY3Rpb24odCxlLHIsbixpKXt2YXIgYT1ULmxheW91dEZsYWdzKCk7ZnVuY3Rpb24gbyh0KXtyZXR1cm4gZi5nZXRMYXlvdXRWYWxPYmplY3Qocix0KX1hLmFycmF5cz17fSxhLnJhbmdlc0FsdGVyZWQ9e30sYS5uQ2hhbmdlcz0wLGEubkNoYW5nZXNBbmltPTAsaXQoZSxyLFtdLHtnZXRWYWxPYmplY3Q6byxmbGFnczphLGltbXV0YWJsZTpuLHRyYW5zaXRpb246aSxnZDp0fSksKGEucGxvdHx8YS5jYWxjKSYmKGEubGF5b3V0UmVwbG90PSEwKTtpJiZhLm5DaGFuZ2VzJiZhLm5DaGFuZ2VzQW5pbSYmKGEuYW5pbT1hLm5DaGFuZ2VzPT09YS5uQ2hhbmdlc0FuaW0/ImFsbCI6InNvbWUiKTtyZXR1cm4gYX0odCxwLHkseCxiKSxBPWsubmV3RGF0YVJldmlzaW9uLFM9ZnVuY3Rpb24odCxlLHIsbixpLGEpe3ZhciBvPWUubGVuZ3RoPT09ci5sZW5ndGg7aWYoIWkmJiFvKXJldHVybntmdWxsUmVwbG90OiEwLGNhbGM6ITB9O3ZhciBzLGwsYz1ULnRyYWNlRmxhZ3MoKTtjLmFycmF5cz17fSxjLm5DaGFuZ2VzPTAsYy5uQ2hhbmdlc0FuaW09MDt2YXIgdT17Z2V0VmFsT2JqZWN0OmZ1bmN0aW9uKHQpe3ZhciBlPWYuZ2V0VHJhY2VWYWxPYmplY3QobCx0KTtyZXR1cm4hbC5fbW9kdWxlLmFuaW1hdGFibGUmJmUuYW5pbSYmKGUuYW5pbT0hMSksZX0sZmxhZ3M6YyxpbW11dGFibGU6bix0cmFuc2l0aW9uOmksbmV3RGF0YVJldmlzaW9uOmEsZ2Q6dH0scD17fTtmb3Iocz0wO3M8ZS5sZW5ndGg7cysrKWlmKHJbc10pe2lmKGw9cltzXS5fZnVsbElucHV0LGguaGFzTWFrZXNEYXRhVHJhbnNmb3JtKGwpJiYobD1yW3NdKSxwW2wudWlkXSljb250aW51ZTtwW2wudWlkXT0xLGl0KGVbc10uX2Z1bGxJbnB1dCxsLFtdLHUpfShjLmNhbGN8fGMucGxvdCkmJihjLmZ1bGxSZXBsb3Q9ITApO2kmJmMubkNoYW5nZXMmJmMubkNoYW5nZXNBbmltJiYoYy5hbmltPWMubkNoYW5nZXM9PT1jLm5DaGFuZ2VzQW5pbSYmbz8iYWxsIjoic29tZSIpO3JldHVybiBjfSh0LGMsdix4LGIsQSk7aWYoWCh0KSYmKGsubGF5b3V0UmVwbG90PSEwKSxTLmNhbGN8fGsuY2FsYyl7dC5jYWxjZGF0YT12b2lkIDA7Zm9yKHZhciBFPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHkpLEM9MDtDPEUubGVuZ3RoO0MrKyl7dmFyIFA9RVtDXSxJPVAuc3Vic3RyaW5nKDAsNSk7aWYoInhheGlzIj09PUl8fCJ5YXhpcyI9PT1JKXt2YXIgTz15W1BdLl9lbXB0eUNhdGVnb3JpZXM7TyYmTygpfX19ZWxzZSBoLnN1cHBseURlZmF1bHRzVXBkYXRlQ2FsYyh0LmNhbGNkYXRhLHYpO3ZhciB6PVtdO2lmKGEmJih0Ll90cmFuc2l0aW9uRGF0YT17fSxoLmNyZWF0ZVRyYW5zaXRpb25EYXRhKHQpLHoucHVzaCgoZnVuY3Rpb24oKXtyZXR1cm4gci5hZGRGcmFtZXModCxhKX0pKSkseS50cmFuc2l0aW9uJiYhbSYmKFMuYW5pbXx8ay5hbmltKSlrLnRpY2tzJiZ6LnB1c2gody5kb1RpY2tzUmVsYXlvdXQpLGguZG9DYWxjZGF0YSh0KSx3LmRvQXV0b1JhbmdlQW5kQ29uc3RyYWludHModCksei5wdXNoKChmdW5jdGlvbigpe3JldHVybiBoLnRyYW5zaXRpb25Gcm9tUmVhY3QodCxTLGsscCl9KSk7ZWxzZSBpZihTLmZ1bGxSZXBsb3R8fGsubGF5b3V0UmVwbG90fHxtKXQuX2Z1bGxMYXlvdXQuX3NraXBEZWZhdWx0cz0hMCx6LnB1c2goci5fZG9QbG90KTtlbHNle2Zvcih2YXIgRCBpbiBrLmFycmF5cyl7dmFyIEY9ay5hcnJheXNbRF07aWYoRi5sZW5ndGgpe3ZhciBCPXUuZ2V0Q29tcG9uZW50TWV0aG9kKEQsImRyYXdPbmUiKTtpZihCIT09by5ub29wKWZvcih2YXIgTj0wO048Ri5sZW5ndGg7TisrKUIodCxGW05dKTtlbHNle3ZhciBqPXUuZ2V0Q29tcG9uZW50TWV0aG9kKEQsImRyYXciKTtpZihqPT09by5ub29wKXRocm93IG5ldyBFcnJvcigiY2Fubm90IGRyYXcgY29tcG9uZW50czogIitEKTtqKHQpfX19ei5wdXNoKGgucHJldmlvdXNQcm9taXNlcyksUy5zdHlsZSYmei5wdXNoKHcuZG9UcmFjZVN0eWxlKSwoUy5jb2xvcmJhcnN8fGsuY29sb3JiYXJzKSYmei5wdXNoKHcuZG9Db2xvckJhcnMpLGsubGVnZW5kJiZ6LnB1c2gody5kb0xlZ2VuZCksay5sYXlvdXRzdHlsZSYmei5wdXNoKHcubGF5b3V0U3R5bGVzKSxrLmF4cmFuZ2UmJkgoeiksay50aWNrcyYmei5wdXNoKHcuZG9UaWNrc1JlbGF5b3V0KSxrLm1vZGViYXImJnoucHVzaCh3LmRvTW9kZUJhciksay5jYW1lcmEmJnoucHVzaCh3LmRvQ2FtZXJhKSx6LnB1c2goTSl9ei5wdXNoKGgucmVob3ZlcixoLnJlZHJhZyxoLnJlc2VsZWN0KSwobD1vLnN5bmNPckFzeW5jKHosdCkpJiZsLnRoZW58fChsPVByb21pc2UucmVzb2x2ZSh0KSl9ZWxzZSBsPXIubmV3UGxvdCh0LGUsbixpKTtyZXR1cm4gbC50aGVuKChmdW5jdGlvbigpe3JldHVybiB0LmVtaXQoInBsb3RseV9yZWFjdCIse2RhdGE6ZSxsYXlvdXQ6bn0pLHR9KSl9LHIucmVkcmF3PWZ1bmN0aW9uKHQpe2lmKHQ9by5nZXRHcmFwaERpdih0KSwhby5pc1Bsb3REaXYodCkpdGhyb3cgbmV3IEVycm9yKCJUaGlzIGVsZW1lbnQgaXMgbm90IGEgUGxvdGx5IHBsb3Q6ICIrdCk7cmV0dXJuIF8uY2xlYW5EYXRhKHQuZGF0YSksXy5jbGVhbkxheW91dCh0LmxheW91dCksdC5jYWxjZGF0YT12b2lkIDAsci5fZG9QbG90KHQpLnRoZW4oKGZ1bmN0aW9uKCl7cmV0dXJuIHQuZW1pdCgicGxvdGx5X3JlZHJhdyIpLHR9KSl9LHIucmVsYXlvdXQ9VSxyLnJlc3R5bGU9RCxyLnNldFBsb3RDb25maWc9ZnVuY3Rpb24odCl7cmV0dXJuIG8uZXh0ZW5kRmxhdCh4LHQpfSxyLnVwZGF0ZT1aLHIuX2d1aVJlbGF5b3V0PUooVSksci5fZ3VpUmVzdHlsZT1KKEQpLHIuX2d1aVVwZGF0ZT1KKFopLHIuX3N0b3JlRGlyZWN0R1VJRWRpdD1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuIGluIHIpe0IobixzKHQsbikuZ2V0KCkscltuXSxlKX19fSx7Ii4uL2NvbXBvbmVudHMvY29sb3IiOjM2NywiLi4vY29tcG9uZW50cy9kcmF3aW5nIjozODksIi4uL2NvbXBvbmVudHMvc2VsZWN0aW9ucyI6NDU1LCIuLi9jb25zdGFudHMveG1sbnNfbmFtZXNwYWNlcyI6NDkyLCIuLi9saWIiOjUxNSwiLi4vbGliL2V2ZW50cyI6NTA0LCIuLi9saWIvcXVldWUiOjUzMSwiLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjU2NiwiLi4vcGxvdHMvY2FydGVzaWFuL2NvbnN0YW50cyI6NTczLCIuLi9wbG90cy9jYXJ0ZXNpYW4vZ3JhcGhfaW50ZXJhY3QiOjU3NiwiLi4vcGxvdHMvcGxvdHMiOjYyOCwiLi4vcmVnaXN0cnkiOjY0NywiLi9lZGl0X3R5cGVzIjo1NDgsIi4vaGVscGVycyI6NTQ5LCIuL21hbmFnZV9hcnJheXMiOjU1MSwiLi9wbG90X2NvbmZpZyI6NTUzLCIuL3Bsb3Rfc2NoZW1hIjo1NTQsIi4vc3Vicm91dGluZXMiOjU1NiwiQHBsb3RseS9kMyI6NTgsImZhc3QtaXNudW1lcmljIjoxOTAsImhhcy1ob3ZlciI6MjI4fV0sNTUzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXtzdGF0aWNQbG90Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSx0eXBlc2V0TWF0aDp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMH0scGxvdGx5U2VydmVyVVJMOnt2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiJ9LGVkaXRhYmxlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxlZGl0czp7YW5ub3RhdGlvblBvc2l0aW9uOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxhbm5vdGF0aW9uVGFpbDp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0sYW5ub3RhdGlvblRleHQ6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LGF4aXNUaXRsZVRleHQ6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LGNvbG9yYmFyUG9zaXRpb246e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LGNvbG9yYmFyVGl0bGVUZXh0Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxsZWdlbmRQb3NpdGlvbjp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0sbGVnZW5kVGV4dDp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0sc2hhcGVQb3NpdGlvbjp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0sdGl0bGVUZXh0Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfX0sYXV0b3NpemFibGU6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LHJlc3BvbnNpdmU6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LGZpbGxGcmFtZTp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0sZnJhbWVNYXJnaW5zOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MCxtaW46MCxtYXg6LjV9LHNjcm9sbFpvb206e3ZhbFR5cGU6ImZsYWdsaXN0IixmbGFnczpbImNhcnRlc2lhbiIsImdsM2QiLCJnZW8iLCJtYXBib3giXSxleHRyYXM6WyEwLCExXSxkZmx0OiJnbDNkK2dlbyttYXBib3gifSxkb3VibGVDbGljazp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlshMSwicmVzZXQiLCJhdXRvc2l6ZSIsInJlc2V0K2F1dG9zaXplIl0sZGZsdDoicmVzZXQrYXV0b3NpemUifSxkb3VibGVDbGlja0RlbGF5Ont2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MzAwLG1pbjowfSxzaG93QXhpc0RyYWdIYW5kbGVzOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwfSxzaG93QXhpc1JhbmdlRW50cnlCb3hlczp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMH0sc2hvd1RpcHM6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITB9LHNob3dMaW5rOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxsaW5rVGV4dDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiJFZGl0IGNoYXJ0Iixub0JsYW5rOiEwfSxzZW5kRGF0YTp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMH0sc2hvd1NvdXJjZXM6e3ZhbFR5cGU6ImFueSIsZGZsdDohMX0sZGlzcGxheU1vZGVCYXI6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImhvdmVyIiwhMCwhMV0sZGZsdDoiaG92ZXIifSxzaG93U2VuZFRvQ2xvdWQ6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LHNob3dFZGl0SW5DaGFydFN0dWRpbzp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0sbW9kZUJhckJ1dHRvbnNUb1JlbW92ZTp7dmFsVHlwZToiYW55IixkZmx0OltdfSxtb2RlQmFyQnV0dG9uc1RvQWRkOnt2YWxUeXBlOiJhbnkiLGRmbHQ6W119LG1vZGVCYXJCdXR0b25zOnt2YWxUeXBlOiJhbnkiLGRmbHQ6ITF9LHRvSW1hZ2VCdXR0b25PcHRpb25zOnt2YWxUeXBlOiJhbnkiLGRmbHQ6e319LGRpc3BsYXlsb2dvOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwfSx3YXRlcm1hcms6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LHBsb3RHbFBpeGVsUmF0aW86e3ZhbFR5cGU6Im51bWJlciIsZGZsdDoyLG1pbjoxLG1heDo0fSxzZXRCYWNrZ3JvdW5kOnt2YWxUeXBlOiJhbnkiLGRmbHQ6InRyYW5zcGFyZW50In0sdG9wb2pzb25VUkw6e3ZhbFR5cGU6InN0cmluZyIsbm9CbGFuazohMCxkZmx0OiJodHRwczovL2Nkbi5wbG90Lmx5LyJ9LG1hcGJveEFjY2Vzc1Rva2VuOnt2YWxUeXBlOiJzdHJpbmciLGRmbHQ6bnVsbH0sbG9nZ2luZzp7dmFsVHlwZToiaW50ZWdlciIsbWluOjAsbWF4OjIsZGZsdDoxfSxub3RpZnlPbkxvZ2dpbmc6e3ZhbFR5cGU6ImludGVnZXIiLG1pbjowLG1heDoyLGRmbHQ6MH0scXVldWVMZW5ndGg6e3ZhbFR5cGU6ImludGVnZXIiLG1pbjowLGRmbHQ6MH0sZ2xvYmFsVHJhbnNmb3Jtczp7dmFsVHlwZToiYW55IixkZmx0OltdfSxsb2NhbGU6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiZW4tVVMifSxsb2NhbGVzOnt2YWxUeXBlOiJhbnkiLGRmbHQ6e319fSxpPXt9OyFmdW5jdGlvbiB0KGUscil7Zm9yKHZhciBuIGluIGUpe3ZhciBpPWVbbl07aS52YWxUeXBlP3Jbbl09aS5kZmx0OihyW25dfHwocltuXT17fSksdChpLHJbbl0pKX19KG4saSksZS5leHBvcnRzPXtjb25maWdBdHRyaWJ1dGVzOm4sZGZsdENvbmZpZzppfX0se31dLDU1NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9yZWdpc3RyeSIpLGk9dCgiLi4vbGliIiksYT10KCIuLi9wbG90cy9hdHRyaWJ1dGVzIiksbz10KCIuLi9wbG90cy9sYXlvdXRfYXR0cmlidXRlcyIpLHM9dCgiLi4vcGxvdHMvZnJhbWVfYXR0cmlidXRlcyIpLGw9dCgiLi4vcGxvdHMvYW5pbWF0aW9uX2F0dHJpYnV0ZXMiKSxjPXQoIi4vcGxvdF9jb25maWciKS5jb25maWdBdHRyaWJ1dGVzLHU9dCgiLi9lZGl0X3R5cGVzIiksZj1pLmV4dGVuZERlZXBBbGwsaD1pLmlzUGxhaW5PYmplY3QscD1pLmlzQXJyYXlPclR5cGVkQXJyYXksZD1pLm5lc3RlZFByb3BlcnR5LG09aS52YWxPYmplY3RNZXRhLGc9WyJfaXNTdWJwbG90T2JqIiwiX2lzTGlua2VkVG9BcnJheSIsIl9hcnJheUF0dHJSZWdleHBzIiwiX2RlcHJlY2F0ZWQiXTtmdW5jdGlvbiB2KHQsZSxyKXtpZighdClyZXR1cm4hMTtpZih0Ll9pc0xpbmtlZFRvQXJyYXkpaWYoeShlW3JdKSlyKys7ZWxzZSBpZihyPGUubGVuZ3RoKXJldHVybiExO2Zvcig7cjxlLmxlbmd0aDtyKyspe3ZhciBuPXRbZVtyXV07aWYoIWgobikpYnJlYWs7aWYodD1uLHI9PT1lLmxlbmd0aC0xKWJyZWFrO2lmKHQuX2lzTGlua2VkVG9BcnJheSl7aWYoIXkoZVsrK3JdKSlyZXR1cm4hMX1lbHNlIGlmKCJpbmZvX2FycmF5Ij09PXQudmFsVHlwZSl7dmFyIGk9ZVsrK3JdO2lmKCF5KGkpKXJldHVybiExO3ZhciBhPXQuaXRlbXM7aWYoQXJyYXkuaXNBcnJheShhKSl7aWYoaT49YS5sZW5ndGgpcmV0dXJuITE7aWYoMj09PXQuZGltZW5zaW9ucyl7aWYocisrLGUubGVuZ3RoPT09cilyZXR1cm4gdDt2YXIgbz1lW3JdO2lmKCF5KG8pKXJldHVybiExO3Q9YVtpXVtvXX1lbHNlIHQ9YVtpXX1lbHNlIHQ9YX19cmV0dXJuIHR9ZnVuY3Rpb24geSh0KXtyZXR1cm4gdD09PU1hdGgucm91bmQodCkmJnQ+PTB9ZnVuY3Rpb24geCgpe3ZhciB0LGUscj17fTtmb3IodCBpbiBmKHIsbyksbi5zdWJwbG90c1JlZ2lzdHJ5KXtpZigoZT1uLnN1YnBsb3RzUmVnaXN0cnlbdF0pLmxheW91dEF0dHJpYnV0ZXMpaWYoQXJyYXkuaXNBcnJheShlLmF0dHIpKWZvcih2YXIgaT0wO2k8ZS5hdHRyLmxlbmd0aDtpKyspdyhyLGUsZS5hdHRyW2ldKTtlbHNlIHcocixlLCJzdWJwbG90Ij09PWUuYXR0cj9lLm5hbWU6ZS5hdHRyKX1mb3IodCBpbiBuLmNvbXBvbmVudHNSZWdpc3RyeSl7dmFyIGE9KGU9bi5jb21wb25lbnRzUmVnaXN0cnlbdF0pLnNjaGVtYTtpZihhJiYoYS5zdWJwbG90c3x8YS5sYXlvdXQpKXt2YXIgcz1hLnN1YnBsb3RzO2lmKHMmJnMueGF4aXMmJiFzLnlheGlzKWZvcih2YXIgbCBpbiBzLnhheGlzKWRlbGV0ZSByLnlheGlzW2xdfWVsc2UiY29sb3JzY2FsZSI9PT1lLm5hbWU/ZihyLGUubGF5b3V0QXR0cmlidXRlcyk6ZS5sYXlvdXRBdHRyaWJ1dGVzJiZUKHIsZS5sYXlvdXRBdHRyaWJ1dGVzLGUubmFtZSl9cmV0dXJue2xheW91dEF0dHJpYnV0ZXM6XyhyKX19ZnVuY3Rpb24gYigpe3ZhciB0PXtmcmFtZXM6Zih7fSxzKX07cmV0dXJuIF8odCksdC5mcmFtZXN9ZnVuY3Rpb24gXyh0KXtyZXR1cm4gZnVuY3Rpb24odCl7ci5jcmF3bCh0LChmdW5jdGlvbih0LGUsbil7ci5pc1ZhbE9iamVjdCh0KT8hMCE9PXQuYXJyYXlPayYmImRhdGFfYXJyYXkiIT09dC52YWxUeXBlfHwobltlKyJzcmMiXT17dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToibm9uZSJ9KTpoKHQpJiYodC5yb2xlPSJvYmplY3QiKX0pKX0odCksZnVuY3Rpb24odCl7ci5jcmF3bCh0LChmdW5jdGlvbih0LGUscil7aWYodCl7dmFyIG49dC5faXNMaW5rZWRUb0FycmF5O24mJihkZWxldGUgdC5faXNMaW5rZWRUb0FycmF5LHJbZV09e2l0ZW1zOnt9fSxyW2VdLml0ZW1zW25dPXQscltlXS5yb2xlPSJvYmplY3QiKX19KSl9KHQpLGZ1bmN0aW9uKHQpeyFmdW5jdGlvbiB0KGUpe2Zvcih2YXIgciBpbiBlKWlmKGgoZVtyXSkpdChlW3JdKTtlbHNlIGlmKEFycmF5LmlzQXJyYXkoZVtyXSkpZm9yKHZhciBuPTA7bjxlW3JdLmxlbmd0aDtuKyspdChlW3JdW25dKTtlbHNlIGVbcl1pbnN0YW5jZW9mIFJlZ0V4cCYmKGVbcl09ZVtyXS50b1N0cmluZygpKX0odCl9KHQpLHR9ZnVuY3Rpb24gdyh0LGUscil7dmFyIG49ZCh0LHIpLGk9Zih7fSxlLmxheW91dEF0dHJpYnV0ZXMpO2kuX2lzU3VicGxvdE9iaj0hMCxuLnNldChpKX1mdW5jdGlvbiBUKHQsZSxyKXt2YXIgbj1kKHQscik7bi5zZXQoZihuLmdldCgpfHx7fSxlKSl9ci5JU19TVUJQTE9UX09CSj0iX2lzU3VicGxvdE9iaiIsci5JU19MSU5LRURfVE9fQVJSQVk9Il9pc0xpbmtlZFRvQXJyYXkiLHIuREVQUkVDQVRFRD0iX2RlcHJlY2F0ZWQiLHIuVU5ERVJTQ09SRV9BVFRSUz1nLHIuZ2V0PWZ1bmN0aW9uKCl7dmFyIHQ9e307bi5hbGxUeXBlcy5mb3JFYWNoKChmdW5jdGlvbihlKXt0W2VdPWZ1bmN0aW9uKHQpe3ZhciBlLGk7ZT1uLm1vZHVsZXNbdF0uX21vZHVsZSxpPWUuYmFzZVBsb3RNb2R1bGU7dmFyIG89e3R5cGU6bnVsbH0scz1mKHt9LGEpLGw9Zih7fSxlLmF0dHJpYnV0ZXMpO3IuY3Jhd2wobCwoZnVuY3Rpb24odCxlLHIsbixpKXtkKHMsaSkuc2V0KHZvaWQgMCksdm9pZCAwPT09dCYmZChsLGkpLnNldCh2b2lkIDApfSkpLGYobyxzKSxuLnRyYWNlSXModCwibm9PcGFjaXR5IikmJmRlbGV0ZSBvLm9wYWNpdHk7bi50cmFjZUlzKHQsInNob3dMZWdlbmQiKXx8KGRlbGV0ZSBvLnNob3dsZWdlbmQsZGVsZXRlIG8ubGVnZW5kZ3JvdXApO24udHJhY2VJcyh0LCJub0hvdmVyIikmJihkZWxldGUgby5ob3ZlcmluZm8sZGVsZXRlIG8uaG92ZXJsYWJlbCk7ZS5zZWxlY3RQb2ludHN8fGRlbGV0ZSBvLnNlbGVjdGVkcG9pbnRzO2YobyxsKSxpLmF0dHJpYnV0ZXMmJmYobyxpLmF0dHJpYnV0ZXMpO28udHlwZT10O3ZhciBjPXttZXRhOmUubWV0YXx8e30sY2F0ZWdvcmllczplLmNhdGVnb3JpZXN8fHt9LGFuaW1hdGFibGU6Qm9vbGVhbihlLmFuaW1hdGFibGUpLHR5cGU6dCxhdHRyaWJ1dGVzOl8obyl9O2lmKGUubGF5b3V0QXR0cmlidXRlcyl7dmFyIHU9e307Zih1LGUubGF5b3V0QXR0cmlidXRlcyksYy5sYXlvdXRBdHRyaWJ1dGVzPV8odSl9ZS5hbmltYXRhYmxlfHxyLmNyYXdsKGMsKGZ1bmN0aW9uKHQpe3IuaXNWYWxPYmplY3QodCkmJiJhbmltImluIHQmJmRlbGV0ZSB0LmFuaW19KSk7cmV0dXJuIGN9KGUpfSkpO3ZhciBlPXt9O3JldHVybiBPYmplY3Qua2V5cyhuLnRyYW5zZm9ybXNSZWdpc3RyeSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7ZVt0XT1mdW5jdGlvbih0KXt2YXIgZT1uLnRyYW5zZm9ybXNSZWdpc3RyeVt0XSxyPWYoe30sZS5hdHRyaWJ1dGVzKTtyZXR1cm4gT2JqZWN0LmtleXMobi5jb21wb25lbnRzUmVnaXN0cnkpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciBpPW4uY29tcG9uZW50c1JlZ2lzdHJ5W2VdO2kuc2NoZW1hJiZpLnNjaGVtYS50cmFuc2Zvcm1zJiZpLnNjaGVtYS50cmFuc2Zvcm1zW3RdJiZPYmplY3Qua2V5cyhpLnNjaGVtYS50cmFuc2Zvcm1zW3RdKS5mb3JFYWNoKChmdW5jdGlvbihlKXtUKHIsaS5zY2hlbWEudHJhbnNmb3Jtc1t0XVtlXSxlKX0pKX0pKSx7YXR0cmlidXRlczpfKHIpfX0odCl9KSkse2RlZnM6e3ZhbE9iamVjdHM6bSxtZXRhS2V5czpnLmNvbmNhdChbImRlc2NyaXB0aW9uIiwicm9sZSIsImVkaXRUeXBlIiwiaW1wbGllZEVkaXRzIl0pLGVkaXRUeXBlOnt0cmFjZXM6dS50cmFjZXMsbGF5b3V0OnUubGF5b3V0fSxpbXBsaWVkRWRpdHM6e319LHRyYWNlczp0LGxheW91dDp4KCksdHJhbnNmb3JtczplLGZyYW1lczpiKCksYW5pbWF0aW9uOl8obCksY29uZmlnOl8oYyl9fSxyLmNyYXdsPWZ1bmN0aW9uKHQsZSxuLGkpe3ZhciBhPW58fDA7aT1pfHwiIixPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChmdW5jdGlvbihuKXt2YXIgbz10W25dO2lmKC0xPT09Zy5pbmRleE9mKG4pKXt2YXIgcz0oaT9pKyIuIjoiIikrbjtlKG8sbix0LGEscyksci5pc1ZhbE9iamVjdChvKXx8aChvKSYmImltcGxpZWRFZGl0cyIhPT1uJiZyLmNyYXdsKG8sZSxhKzEscyl9fSkpfSxyLmlzVmFsT2JqZWN0PWZ1bmN0aW9uKHQpe3JldHVybiB0JiZ2b2lkIDAhPT10LnZhbFR5cGV9LHIuZmluZEFycmF5QXR0cmlidXRlcz1mdW5jdGlvbih0KXt2YXIgZSxuLGk9W10sbz1bXSxzPVtdO2Z1bmN0aW9uIGwodCxyLGEsbCl7bz1vLnNsaWNlKDAsbCkuY29uY2F0KFtyXSkscz1zLnNsaWNlKDAsbCkuY29uY2F0KFt0JiZ0Ll9pc0xpbmtlZFRvQXJyYXldKSx0JiYoImRhdGFfYXJyYXkiPT09dC52YWxUeXBlfHwhMD09PXQuYXJyYXlPaykmJiEoImNvbG9yYmFyIj09PW9bbC0xXSYmKCJ0aWNrdGV4dCI9PT1yfHwidGlja3ZhbHMiPT09cikpJiZmdW5jdGlvbiB0KGUscixhKXt2YXIgbD1lW29bcl1dLGM9YStvW3JdO2lmKHI9PT1vLmxlbmd0aC0xKXAobCkmJmkucHVzaChuK2MpO2Vsc2UgaWYoc1tyXSl7aWYoQXJyYXkuaXNBcnJheShsKSlmb3IodmFyIHU9MDt1PGwubGVuZ3RoO3UrKyloKGxbdV0pJiZ0KGxbdV0scisxLGMrIlsiK3UrIl0uIil9ZWxzZSBoKGwpJiZ0KGwscisxLGMrIi4iKX0oZSwwLCIiKX1lPXQsbj0iIixyLmNyYXdsKGEsbCksdC5fbW9kdWxlJiZ0Ll9tb2R1bGUuYXR0cmlidXRlcyYmci5jcmF3bCh0Ll9tb2R1bGUuYXR0cmlidXRlcyxsKTt2YXIgYz10LnRyYW5zZm9ybXM7aWYoYylmb3IodmFyIHU9MDt1PGMubGVuZ3RoO3UrKyl7dmFyIGY9Y1t1XSxkPWYuX21vZHVsZTtkJiYobj0idHJhbnNmb3Jtc1siK3UrIl0uIixlPWYsci5jcmF3bChkLmF0dHJpYnV0ZXMsbCkpfXJldHVybiBpfSxyLmdldFRyYWNlVmFsT2JqZWN0PWZ1bmN0aW9uKHQsZSl7dmFyIHIsaSxvPWVbMF0scz0xO2lmKCJ0cmFuc2Zvcm1zIj09PW8pe2lmKDE9PT1lLmxlbmd0aClyZXR1cm4gYS50cmFuc2Zvcm1zO3ZhciBsPXQudHJhbnNmb3JtcztpZighQXJyYXkuaXNBcnJheShsKXx8IWwubGVuZ3RoKXJldHVybiExO3ZhciBjPWVbMV07aWYoIXkoYyl8fGM+PWwubGVuZ3RoKXJldHVybiExO2k9KHI9KG4udHJhbnNmb3Jtc1JlZ2lzdHJ5W2xbY10udHlwZV18fHt9KS5hdHRyaWJ1dGVzKSYmcltlWzJdXSxzPTN9ZWxzZXt2YXIgdT10Ll9tb2R1bGU7aWYodXx8KHU9KG4ubW9kdWxlc1t0LnR5cGV8fGEudHlwZS5kZmx0XXx8e30pLl9tb2R1bGUpLCF1KXJldHVybiExO2lmKCEoaT0ocj11LmF0dHJpYnV0ZXMpJiZyW29dKSl7dmFyIGY9dS5iYXNlUGxvdE1vZHVsZTtmJiZmLmF0dHJpYnV0ZXMmJihpPWYuYXR0cmlidXRlc1tvXSl9aXx8KGk9YVtvXSl9cmV0dXJuIHYoaSxlLHMpfSxyLmdldExheW91dFZhbE9iamVjdD1mdW5jdGlvbih0LGUpe3JldHVybiB2KGZ1bmN0aW9uKHQsZSl7dmFyIHIsaSxhLHMsbD10Ll9iYXNlUGxvdE1vZHVsZXM7aWYobCl7dmFyIGM7Zm9yKHI9MDtyPGwubGVuZ3RoO3IrKyl7aWYoKGE9bFtyXSkuYXR0clJlZ2V4JiZhLmF0dHJSZWdleC50ZXN0KGUpKXtpZihhLmxheW91dEF0dHJPdmVycmlkZXMpcmV0dXJuIGEubGF5b3V0QXR0ck92ZXJyaWRlczshYyYmYS5sYXlvdXRBdHRyaWJ1dGVzJiYoYz1hLmxheW91dEF0dHJpYnV0ZXMpfXZhciB1PWEuYmFzZUxheW91dEF0dHJPdmVycmlkZXM7aWYodSYmZSBpbiB1KXJldHVybiB1W2VdfWlmKGMpcmV0dXJuIGN9dmFyIGY9dC5fbW9kdWxlcztpZihmKWZvcihyPTA7cjxmLmxlbmd0aDtyKyspaWYoKHM9ZltyXS5sYXlvdXRBdHRyaWJ1dGVzKSYmZSBpbiBzKXJldHVybiBzW2VdO2ZvcihpIGluIG4uY29tcG9uZW50c1JlZ2lzdHJ5KXtpZigiY29sb3JzY2FsZSI9PT0oYT1uLmNvbXBvbmVudHNSZWdpc3RyeVtpXSkubmFtZSYmMD09PWUuaW5kZXhPZigiY29sb3JheGlzIikpcmV0dXJuIGEubGF5b3V0QXR0cmlidXRlc1tlXTtpZighYS5zY2hlbWEmJmU9PT1hLm5hbWUpcmV0dXJuIGEubGF5b3V0QXR0cmlidXRlc31yZXR1cm4gZSBpbiBvJiZvW2VdfSh0LGVbMF0pLGUsMSl9fSx7Ii4uL2xpYiI6NTE1LCIuLi9wbG90cy9hbmltYXRpb25fYXR0cmlidXRlcyI6NTYwLCIuLi9wbG90cy9hdHRyaWJ1dGVzIjo1NjIsIi4uL3Bsb3RzL2ZyYW1lX2F0dHJpYnV0ZXMiOjU5NSwiLi4vcGxvdHMvbGF5b3V0X2F0dHJpYnV0ZXMiOjYxOSwiLi4vcmVnaXN0cnkiOjY0NywiLi9lZGl0X3R5cGVzIjo1NDgsIi4vcGxvdF9jb25maWciOjU1M31dLDU1NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9saWIiKSxpPXQoIi4uL3Bsb3RzL2F0dHJpYnV0ZXMiKSxhPXtuYW1lOnt2YWxUeXBlOiJzdHJpbmciLGVkaXRUeXBlOiJub25lIn19O2Z1bmN0aW9uIG8odCl7cmV0dXJuIHQmJiJzdHJpbmciPT10eXBlb2YgdH1mdW5jdGlvbiBzKHQpe3ZhciBlPXQubGVuZ3RoLTE7cmV0dXJuInMiIT09dC5jaGFyQXQoZSkmJm4ud2FybigiYmFkIGFyZ3VtZW50IHRvIGFycmF5RGVmYXVsdEtleTogIit0KSx0LnN1YnN0cigwLHQubGVuZ3RoLTEpKyJkZWZhdWx0cyJ9YS50ZW1wbGF0ZWl0ZW1uYW1lPXt2YWxUeXBlOiJzdHJpbmciLGVkaXRUeXBlOiJjYWxjIn0sci50ZW1wbGF0ZWRBcnJheT1mdW5jdGlvbih0LGUpe3JldHVybiBlLl9pc0xpbmtlZFRvQXJyYXk9dCxlLm5hbWU9YS5uYW1lLGUudGVtcGxhdGVpdGVtbmFtZT1hLnRlbXBsYXRlaXRlbW5hbWUsZX0sci50cmFjZVRlbXBsYXRlcj1mdW5jdGlvbih0KXt2YXIgZSxyLGE9e307Zm9yKGUgaW4gdClyPXRbZV0sQXJyYXkuaXNBcnJheShyKSYmci5sZW5ndGgmJihhW2VdPTApO3JldHVybntuZXdUcmFjZTpmdW5jdGlvbihvKXt2YXIgcz17dHlwZTplPW4uY29lcmNlKG8se30saSwidHlwZSIpLF90ZW1wbGF0ZTpudWxsfTtpZihlIGluIGEpe3I9dFtlXTt2YXIgbD1hW2VdJXIubGVuZ3RoO2FbZV0rKyxzLl90ZW1wbGF0ZT1yW2xdfXJldHVybiBzfX19LHIubmV3Q29udGFpbmVyPWZ1bmN0aW9uKHQsZSxyKXt2YXIgaT10Ll90ZW1wbGF0ZSxhPWkmJihpW2VdfHxyJiZpW3JdKTtyZXR1cm4gbi5pc1BsYWluT2JqZWN0KGEpfHwoYT1udWxsKSx0W2VdPXtfdGVtcGxhdGU6YX19LHIuYXJyYXlUZW1wbGF0ZXI9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQuX3RlbXBsYXRlLGk9biYmbltzKGUpXSxhPW4mJm5bZV07QXJyYXkuaXNBcnJheShhKSYmYS5sZW5ndGh8fChhPVtdKTt2YXIgbD17fTtyZXR1cm57bmV3SXRlbTpmdW5jdGlvbih0KXt2YXIgZT17bmFtZTp0Lm5hbWUsX2lucHV0OnR9LG49ZS50ZW1wbGF0ZWl0ZW1uYW1lPXQudGVtcGxhdGVpdGVtbmFtZTtpZighbyhuKSlyZXR1cm4gZS5fdGVtcGxhdGU9aSxlO2Zvcih2YXIgcz0wO3M8YS5sZW5ndGg7cysrKXt2YXIgYz1hW3NdO2lmKGMubmFtZT09PW4pcmV0dXJuIGxbbl09MSxlLl90ZW1wbGF0ZT1jLGV9cmV0dXJuIGVbcl09dFtyXXx8ITEsZS5fdGVtcGxhdGU9ITEsZX0sZGVmYXVsdEl0ZW1zOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGEubGVuZ3RoO2UrKyl7dmFyIHI9YVtlXSxuPXIubmFtZTtpZihvKG4pJiYhbFtuXSl7dmFyIGk9e190ZW1wbGF0ZTpyLG5hbWU6bixfaW5wdXQ6e190ZW1wbGF0ZWl0ZW1uYW1lOm59fTtpLnRlbXBsYXRlaXRlbW5hbWU9ci50ZW1wbGF0ZWl0ZW1uYW1lLHQucHVzaChpKSxsW25dPTF9fXJldHVybiB0fX19LHIuYXJyYXlEZWZhdWx0S2V5PXMsci5hcnJheUVkaXRvcj1mdW5jdGlvbih0LGUscil7dmFyIGk9KG4ubmVzdGVkUHJvcGVydHkodCxlKS5nZXQoKXx8W10pLmxlbmd0aCxhPXIuX2luZGV4LG89YT49aSYmKHIuX2lucHV0fHx7fSkuX3RlbXBsYXRlaXRlbW5hbWU7byYmKGE9aSk7dmFyIHMsbD1lKyJbIithKyJdIjtmdW5jdGlvbiBjKCl7cz17fSxvJiYoc1tsXT17fSxzW2xdLnRlbXBsYXRlaXRlbW5hbWU9byl9ZnVuY3Rpb24gdSh0LGUpe28/bi5uZXN0ZWRQcm9wZXJ0eShzW2xdLHQpLnNldChlKTpzW2wrIi4iK3RdPWV9ZnVuY3Rpb24gZigpe3ZhciB0PXM7cmV0dXJuIGMoKSx0fXJldHVybiBjKCkse21vZGlmeUJhc2U6ZnVuY3Rpb24odCxlKXtzW3RdPWV9LG1vZGlmeUl0ZW06dSxnZXRVcGRhdGVPYmo6ZixhcHBseVVwZGF0ZTpmdW5jdGlvbihlLHIpe2UmJnUoZSxyKTt2YXIgaT1mKCk7Zm9yKHZhciBhIGluIGkpbi5uZXN0ZWRQcm9wZXJ0eSh0LGEpLnNldChpW2FdKX19fX0seyIuLi9saWIiOjUxNSwiLi4vcGxvdHMvYXR0cmlidXRlcyI6NTYyfV0sNTU2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4uL3JlZ2lzdHJ5IiksYT10KCIuLi9wbG90cy9wbG90cyIpLG89dCgiLi4vbGliIikscz10KCIuLi9saWIvY2xlYXJfZ2xfY2FudmFzZXMiKSxsPXQoIi4uL2NvbXBvbmVudHMvY29sb3IiKSxjPXQoIi4uL2NvbXBvbmVudHMvZHJhd2luZyIpLHU9dCgiLi4vY29tcG9uZW50cy90aXRsZXMiKSxmPXQoIi4uL2NvbXBvbmVudHMvbW9kZWJhciIpLGg9dCgiLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxwPXQoIi4uL2NvbnN0YW50cy9hbGlnbm1lbnQiKSxkPXQoIi4uL3Bsb3RzL2NhcnRlc2lhbi9jb25zdHJhaW50cyIpLG09ZC5lbmZvcmNlLGc9ZC5jbGVhbix2PXQoIi4uL3Bsb3RzL2NhcnRlc2lhbi9hdXRvcmFuZ2UiKS5kb0F1dG9SYW5nZTtmdW5jdGlvbiB5KHQsZSxyKXtmb3IodmFyIG49MDtuPHIubGVuZ3RoO24rKyl7dmFyIGk9cltuXVswXSxhPXJbbl1bMV07aWYoIShpWzBdPj10WzFdfHxpWzFdPD10WzBdKSYmKGFbMF08ZVsxXSYmYVsxXT5lWzBdKSlyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiB4KHQpe3ZhciBlLGkscyx1LGQsbSxnPXQuX2Z1bGxMYXlvdXQsdj1nLl9zaXplLHg9di5wLF89aC5saXN0KHQsIiIsITApO2lmKGcuX3BhcGVyZGl2LnN0eWxlKHt3aWR0aDp0Ll9jb250ZXh0LnJlc3BvbnNpdmUmJmcuYXV0b3NpemUmJiF0Ll9jb250ZXh0Ll9oYXNaZXJvV2lkdGgmJiF0LmxheW91dC53aWR0aD8iMTAwJSI6Zy53aWR0aCsicHgiLGhlaWdodDp0Ll9jb250ZXh0LnJlc3BvbnNpdmUmJmcuYXV0b3NpemUmJiF0Ll9jb250ZXh0Ll9oYXNaZXJvSGVpZ2h0JiYhdC5sYXlvdXQuaGVpZ2h0PyIxMDAlIjpnLmhlaWdodCsicHgifSkuc2VsZWN0QWxsKCIubWFpbi1zdmciKS5jYWxsKGMuc2V0U2l6ZSxnLndpZHRoLGcuaGVpZ2h0KSx0Ll9jb250ZXh0LnNldEJhY2tncm91bmQodCxnLnBhcGVyX2JnY29sb3IpLHIuZHJhd01haW5UaXRsZSh0KSxmLm1hbmFnZSh0KSwhZy5faGFzKCJjYXJ0ZXNpYW4iKSlyZXR1cm4gYS5wcmV2aW91c1Byb21pc2VzKHQpO2Z1bmN0aW9uIFQodCxlLHIpe3ZhciBuPXQuX2x3LzI7cmV0dXJuIngiPT09dC5faWQuY2hhckF0KDApP2U/InRvcCI9PT1yP2UuX29mZnNldC14LW46ZS5fb2Zmc2V0K2UuX2xlbmd0aCt4K246di50K3YuaCooMS0odC5wb3NpdGlvbnx8MCkpK24lMTplPyJyaWdodCI9PT1yP2UuX29mZnNldCtlLl9sZW5ndGgreCtuOmUuX29mZnNldC14LW46di5sK3YudyoodC5wb3NpdGlvbnx8MCkrbiUxfWZvcihlPTA7ZTxfLmxlbmd0aDtlKyspe3ZhciBrPSh1PV9bZV0pLl9hbmNob3JBeGlzO3UuX2xpbmVwb3NpdGlvbnM9e30sdS5fbHc9Yy5jcmlzcFJvdW5kKHQsdS5saW5ld2lkdGgsMSksdS5fbWFpbkxpbmVQb3NpdGlvbj1UKHUsayx1LnNpZGUpLHUuX21haW5NaXJyb3JQb3NpdGlvbj11Lm1pcnJvciYmaz9UKHUsayxwLk9QUE9TSVRFX1NJREVbdS5zaWRlXSk6bnVsbH12YXIgQT1bXSxNPVtdLFM9W10sRT0xPT09bC5vcGFjaXR5KGcucGFwZXJfYmdjb2xvcikmJjE9PT1sLm9wYWNpdHkoZy5wbG90X2JnY29sb3IpJiZnLnBhcGVyX2JnY29sb3I9PT1nLnBsb3RfYmdjb2xvcjtmb3IoaSBpbiBnLl9wbG90cylpZigocz1nLl9wbG90c1tpXSkubWFpbnBsb3Qpcy5iZyYmcy5iZy5yZW1vdmUoKSxzLmJnPXZvaWQgMDtlbHNle3ZhciBMPXMueGF4aXMuZG9tYWluLEM9cy55YXhpcy5kb21haW4sUD1zLnBsb3Rncm91cDtpZih5KEwsQyxTKSl7dmFyIEk9UC5ub2RlKCksTz1zLmJnPW8uZW5zdXJlU2luZ2xlKFAsInJlY3QiLCJiZyIpO0kuaW5zZXJ0QmVmb3JlKE8ubm9kZSgpLEkuY2hpbGROb2Rlc1swXSksTS5wdXNoKGkpfWVsc2UgUC5zZWxlY3QoInJlY3QuYmciKS5yZW1vdmUoKSxTLnB1c2goW0wsQ10pLEV8fChBLnB1c2goaSksTS5wdXNoKGkpKX12YXIgeixELFIsRixCLE4saixVLFYsSCxxLEcsWSxXPWcuX2JnTGF5ZXIuc2VsZWN0QWxsKCIuYmciKS5kYXRhKEEpO2ZvcihXLmVudGVyKCkuYXBwZW5kKCJyZWN0IikuY2xhc3NlZCgiYmciLCEwKSxXLmV4aXQoKS5yZW1vdmUoKSxXLmVhY2goKGZ1bmN0aW9uKHQpe2cuX3Bsb3RzW3RdLmJnPW4uc2VsZWN0KHRoaXMpfSkpLGU9MDtlPE0ubGVuZ3RoO2UrKylzPWcuX3Bsb3RzW01bZV1dLGQ9cy54YXhpcyxtPXMueWF4aXMscy5iZyYmdm9pZCAwIT09ZC5fb2Zmc2V0JiZ2b2lkIDAhPT1tLl9vZmZzZXQmJnMuYmcuY2FsbChjLnNldFJlY3QsZC5fb2Zmc2V0LXgsbS5fb2Zmc2V0LXgsZC5fbGVuZ3RoKzIqeCxtLl9sZW5ndGgrMip4KS5jYWxsKGwuZmlsbCxnLnBsb3RfYmdjb2xvcikuc3R5bGUoInN0cm9rZS13aWR0aCIsMCk7aWYoIWcuX2hhc09ubHlMYXJnZVNwbG9tcylmb3IoaSBpbiBnLl9wbG90cyl7cz1nLl9wbG90c1tpXSxkPXMueGF4aXMsbT1zLnlheGlzO3ZhciBYLFosSj1zLmNsaXBJZD0iY2xpcCIrZy5fdWlkK2krInBsb3QiLEs9by5lbnN1cmVTaW5nbGVCeUlkKGcuX2NsaXBzLCJjbGlwUGF0aCIsSiwoZnVuY3Rpb24odCl7dC5jbGFzc2VkKCJwbG90Y2xpcCIsITApLmFwcGVuZCgicmVjdCIpfSkpO3MuY2xpcFJlY3Q9Sy5zZWxlY3QoInJlY3QiKS5hdHRyKHt3aWR0aDpkLl9sZW5ndGgsaGVpZ2h0Om0uX2xlbmd0aH0pLGMuc2V0VHJhbnNsYXRlKHMucGxvdCxkLl9vZmZzZXQsbS5fb2Zmc2V0KSxzLl9oYXNDbGlwT25BeGlzRmFsc2U/KFg9bnVsbCxaPUopOihYPUosWj1udWxsKSxjLnNldENsaXBVcmwocy5wbG90LFgsdCkscy5sYXllckNsaXBJZD1afWZ1bmN0aW9uIFEodCl7cmV0dXJuIk0iK3orIiwiK3QrIkgiK0R9ZnVuY3Rpb24gJCh0KXtyZXR1cm4iTSIrZC5fb2Zmc2V0KyIsIit0KyJoIitkLl9sZW5ndGh9ZnVuY3Rpb24gdHQodCl7cmV0dXJuIk0iK3QrIiwiK1UrIlYiK2p9ZnVuY3Rpb24gZXQodCl7cmV0dXJuIk0iK3QrIiwiK20uX29mZnNldCsidiIrbS5fbGVuZ3RofWZ1bmN0aW9uIHJ0KHQsZSxyKXtpZighdC5zaG93bGluZXx8aSE9PXQuX21haW5TdWJwbG90KXJldHVybiIiO2lmKCF0Ll9hbmNob3JBeGlzKXJldHVybiByKHQuX21haW5MaW5lUG9zaXRpb24pO3ZhciBuPWUodC5fbWFpbkxpbmVQb3NpdGlvbik7cmV0dXJuIHQubWlycm9yJiYobis9ZSh0Ll9tYWluTWlycm9yUG9zaXRpb24pKSxufWZvcihpIGluIGcuX3Bsb3RzKXtzPWcuX3Bsb3RzW2ldLGQ9cy54YXhpcyxtPXMueWF4aXM7dmFyIG50PSJNMCwwIjtiKGQsaSkmJihCPXcoZCwibGVmdCIsbSxfKSx6PWQuX29mZnNldC0oQj94K0I6MCksTj13KGQsInJpZ2h0IixtLF8pLEQ9ZC5fb2Zmc2V0K2QuX2xlbmd0aCsoTj94K046MCksUj1UKGQsbSwiYm90dG9tIiksRj1UKGQsbSwidG9wIiksIShZPSFkLl9hbmNob3JBeGlzfHxpIT09ZC5fbWFpblN1YnBsb3QpfHwiYWxsdGlja3MiIT09ZC5taXJyb3ImJiJhbGwiIT09ZC5taXJyb3J8fChkLl9saW5lcG9zaXRpb25zW2ldPVtSLEZdKSxudD1ydChkLFEsJCksWSYmZC5zaG93bGluZSYmKCJhbGwiPT09ZC5taXJyb3J8fCJhbGx0aWNrcyI9PT1kLm1pcnJvcikmJihudCs9UShSKStRKEYpKSxzLnhsaW5lcy5zdHlsZSgic3Ryb2tlLXdpZHRoIixkLl9sdysicHgiKS5jYWxsKGwuc3Ryb2tlLGQuc2hvd2xpbmU/ZC5saW5lY29sb3I6InJnYmEoMCwwLDAsMCkiKSkscy54bGluZXMuYXR0cigiZCIsbnQpO3ZhciBpdD0iTTAsMCI7YihtLGkpJiYocT13KG0sImJvdHRvbSIsZCxfKSxqPW0uX29mZnNldCttLl9sZW5ndGgrKHE/eDowKSxHPXcobSwidG9wIixkLF8pLFU9bS5fb2Zmc2V0LShHP3g6MCksVj1UKG0sZCwibGVmdCIpLEg9VChtLGQsInJpZ2h0IiksIShZPSFtLl9hbmNob3JBeGlzfHxpIT09bS5fbWFpblN1YnBsb3QpfHwiYWxsdGlja3MiIT09bS5taXJyb3ImJiJhbGwiIT09bS5taXJyb3J8fChtLl9saW5lcG9zaXRpb25zW2ldPVtWLEhdKSxpdD1ydChtLHR0LGV0KSxZJiZtLnNob3dsaW5lJiYoImFsbCI9PT1tLm1pcnJvcnx8ImFsbHRpY2tzIj09PW0ubWlycm9yKSYmKGl0Kz10dChWKSt0dChIKSkscy55bGluZXMuc3R5bGUoInN0cm9rZS13aWR0aCIsbS5fbHcrInB4IikuY2FsbChsLnN0cm9rZSxtLnNob3dsaW5lP20ubGluZWNvbG9yOiJyZ2JhKDAsMCwwLDApIikpLHMueWxpbmVzLmF0dHIoImQiLGl0KX1yZXR1cm4gaC5tYWtlQ2xpcFBhdGhzKHQpLGEucHJldmlvdXNQcm9taXNlcyh0KX1mdW5jdGlvbiBiKHQsZSl7cmV0dXJuKHQudGlja3N8fHQuc2hvd2xpbmUpJiYoZT09PXQuX21haW5TdWJwbG90fHwiYWxsIj09PXQubWlycm9yfHwiYWxsdGlja3MiPT09dC5taXJyb3IpfWZ1bmN0aW9uIF8odCxlLHIpe2lmKCFyLnNob3dsaW5lfHwhci5fbHcpcmV0dXJuITE7aWYoImFsbCI9PT1yLm1pcnJvcnx8ImFsbHRpY2tzIj09PXIubWlycm9yKXJldHVybiEwO3ZhciBuPXIuX2FuY2hvckF4aXM7aWYoIW4pcmV0dXJuITE7dmFyIGk9cC5GUk9NX0JMW2VdO3JldHVybiByLnNpZGU9PT1lP24uZG9tYWluW2ldPT09dC5kb21haW5baV06ci5taXJyb3ImJm4uZG9tYWluWzEtaV09PT10LmRvbWFpblsxLWldfWZ1bmN0aW9uIHcodCxlLHIsbil7aWYoXyh0LGUscikpcmV0dXJuIHIuX2x3O2Zvcih2YXIgaT0wO2k8bi5sZW5ndGg7aSsrKXt2YXIgYT1uW2ldO2lmKGEuX21haW5BeGlzPT09ci5fbWFpbkF4aXMmJl8odCxlLGEpKXJldHVybiBhLl9sd31yZXR1cm4gMH1mdW5jdGlvbiBUKHQsZSl7dmFyIHI9dC50aXRsZSxuPXQuX3NpemUsaT0wO3N3aXRjaCgic3RhcnQiPT09ZT9pPXIucGFkLmw6ImVuZCI9PT1lJiYoaT0tci5wYWQuciksci54cmVmKXtjYXNlInBhcGVyIjpyZXR1cm4gbi5sK24udypyLngraTtjYXNlImNvbnRhaW5lciI6ZGVmYXVsdDpyZXR1cm4gdC53aWR0aCpyLngraX19ZnVuY3Rpb24gayh0LGUpe3ZhciByPXQudGl0bGUsbj10Ll9zaXplLGk9MDtpZigiMGVtIiE9PWUmJmU/ZT09PXAuQ0FQX1NISUZUKyJlbSImJihpPXIucGFkLnQpOmk9LXIucGFkLmIsImF1dG8iPT09ci55KXJldHVybiBuLnQvMjtzd2l0Y2goci55cmVmKXtjYXNlInBhcGVyIjpyZXR1cm4gbi50K24uaC1uLmgqci55K2k7Y2FzZSJjb250YWluZXIiOmRlZmF1bHQ6cmV0dXJuIHQuaGVpZ2h0LXQuaGVpZ2h0KnIueStpfX1yLmxheW91dFN0eWxlcz1mdW5jdGlvbih0KXtyZXR1cm4gby5zeW5jT3JBc3luYyhbYS5kb0F1dG9NYXJnaW4seF0sdCl9LHIuZHJhd01haW5UaXRsZT1mdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0LHI9ZnVuY3Rpb24odCl7dmFyIGU9dC50aXRsZSxyPSJtaWRkbGUiO28uaXNSaWdodEFuY2hvcihlKT9yPSJlbmQiOm8uaXNMZWZ0QW5jaG9yKGUpJiYocj0ic3RhcnQiKTtyZXR1cm4gcn0oZSksbj1mdW5jdGlvbih0KXt2YXIgZT10LnRpdGxlLHI9IjBlbSI7by5pc1RvcEFuY2hvcihlKT9yPXAuQ0FQX1NISUZUKyJlbSI6by5pc01pZGRsZUFuY2hvcihlKSYmKHI9cC5NSURfU0hJRlQrImVtIik7cmV0dXJuIHJ9KGUpO3UuZHJhdyh0LCJndGl0bGUiLHtwcm9wQ29udGFpbmVyOmUscHJvcE5hbWU6InRpdGxlLnRleHQiLHBsYWNlaG9sZGVyOmUuX2RmbHRUaXRsZS5wbG90LGF0dHJpYnV0ZXM6e3g6VChlLHIpLHk6ayhlLG4pLCJ0ZXh0LWFuY2hvciI6cixkeTpufX0pfSxyLmRvVHJhY2VTdHlsZT1mdW5jdGlvbih0KXt2YXIgZSxuPXQuY2FsY2RhdGEsbz1bXTtmb3IoZT0wO2U8bi5sZW5ndGg7ZSsrKXt2YXIgbD1uW2VdLGM9bFswXXx8e30sdT1jLnRyYWNlfHx7fSxmPXUuX21vZHVsZXx8e30saD1mLmFycmF5c1RvQ2FsY2RhdGE7aCYmaChsLHUpO3ZhciBwPWYuZWRpdFN0eWxlO3AmJm8ucHVzaCh7Zm46cCxjZDA6Y30pfWlmKG8ubGVuZ3RoKXtmb3IoZT0wO2U8by5sZW5ndGg7ZSsrKXt2YXIgZD1vW2VdO2QuZm4odCxkLmNkMCl9cyh0KSxyLnJlZHJhd1JlZ2xUcmFjZXModCl9cmV0dXJuIGEuc3R5bGUodCksaS5nZXRDb21wb25lbnRNZXRob2QoImxlZ2VuZCIsImRyYXciKSh0KSxhLnByZXZpb3VzUHJvbWlzZXModCl9LHIuZG9Db2xvckJhcnM9ZnVuY3Rpb24odCl7cmV0dXJuIGkuZ2V0Q29tcG9uZW50TWV0aG9kKCJjb2xvcmJhciIsImRyYXciKSh0KSxhLnByZXZpb3VzUHJvbWlzZXModCl9LHIubGF5b3V0UmVwbG90PWZ1bmN0aW9uKHQpe3ZhciBlPXQubGF5b3V0O3JldHVybiB0LmxheW91dD12b2lkIDAsaS5jYWxsKCJfZG9QbG90Iix0LCIiLGUpfSxyLmRvTGVnZW5kPWZ1bmN0aW9uKHQpe3JldHVybiBpLmdldENvbXBvbmVudE1ldGhvZCgibGVnZW5kIiwiZHJhdyIpKHQpLGEucHJldmlvdXNQcm9taXNlcyh0KX0sci5kb1RpY2tzUmVsYXlvdXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGguZHJhdyh0LCJyZWRyYXciKSx0Ll9mdWxsTGF5b3V0Ll9oYXNPbmx5TGFyZ2VTcGxvbXMmJihpLnN1YnBsb3RzUmVnaXN0cnkuc3Bsb20udXBkYXRlR3JpZCh0KSxzKHQpLHIucmVkcmF3UmVnbFRyYWNlcyh0KSksci5kcmF3TWFpblRpdGxlKHQpLGEucHJldmlvdXNQcm9taXNlcyh0KX0sci5kb01vZGVCYXI9ZnVuY3Rpb24odCl7dmFyIGU9dC5fZnVsbExheW91dDtmLm1hbmFnZSh0KTtmb3IodmFyIHI9MDtyPGUuX2Jhc2VQbG90TW9kdWxlcy5sZW5ndGg7cisrKXt2YXIgbj1lLl9iYXNlUGxvdE1vZHVsZXNbcl0udXBkYXRlRng7biYmbih0KX1yZXR1cm4gYS5wcmV2aW91c1Byb21pc2VzKHQpfSxyLmRvQ2FtZXJhPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Ll9mdWxsTGF5b3V0LHI9ZS5fc3VicGxvdHMuZ2wzZCxuPTA7bjxyLmxlbmd0aDtuKyspe3ZhciBpPWVbcltuXV07aS5fc2NlbmUuc2V0Vmlld3BvcnQoaSl9fSxyLmRyYXdEYXRhPWZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQ7cyh0KTtmb3IodmFyIG49ZS5fYmFzZVBsb3RNb2R1bGVzLG89MDtvPG4ubGVuZ3RoO28rKyluW29dLnBsb3QodCk7cmV0dXJuIHIucmVkcmF3UmVnbFRyYWNlcyh0KSxhLnN0eWxlKHQpLGkuZ2V0Q29tcG9uZW50TWV0aG9kKCJzZWxlY3Rpb25zIiwiZHJhdyIpKHQpLGkuZ2V0Q29tcG9uZW50TWV0aG9kKCJzaGFwZXMiLCJkcmF3IikodCksaS5nZXRDb21wb25lbnRNZXRob2QoImFubm90YXRpb25zIiwiZHJhdyIpKHQpLGkuZ2V0Q29tcG9uZW50TWV0aG9kKCJpbWFnZXMiLCJkcmF3IikodCksZS5fcmVwbG90dGluZz0hMSxhLnByZXZpb3VzUHJvbWlzZXModCl9LHIucmVkcmF3UmVnbFRyYWNlcz1mdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0O2lmKGUuX2hhcygicmVnbCIpKXt2YXIgcixuLGk9dC5fZnVsbERhdGEsYT1bXSxzPVtdO2ZvcihlLl9oYXNPbmx5TGFyZ2VTcGxvbXMmJmUuX3NwbG9tR3JpZC5kcmF3KCkscj0wO3I8aS5sZW5ndGg7cisrKXt2YXIgbD1pW3JdOyEwPT09bC52aXNpYmxlJiYwIT09bC5fbGVuZ3RoJiYoInNwbG9tIj09PWwudHlwZT9lLl9zcGxvbVNjZW5lc1tsLnVpZF0uZHJhdygpOiJzY2F0dGVyZ2wiPT09bC50eXBlP28ucHVzaFVuaXF1ZShhLGwueGF4aXMrbC55YXhpcyk6InNjYXR0ZXJwb2xhcmdsIj09PWwudHlwZSYmby5wdXNoVW5pcXVlKHMsbC5zdWJwbG90KSl9Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKykobj1lLl9wbG90c1thW3JdXSkuX3NjZW5lJiZuLl9zY2VuZS5kcmF3KCk7Zm9yKHI9MDtyPHMubGVuZ3RoO3IrKykobj1lW3Nbcl1dLl9zdWJwbG90KS5fc2NlbmUmJm4uX3NjZW5lLmRyYXcoKX19LHIuZG9BdXRvUmFuZ2VBbmRDb25zdHJhaW50cz1mdW5jdGlvbih0KXtmb3IodmFyIGUscj1oLmxpc3QodCwiIiwhMCksbj17fSxpPTA7aTxyLmxlbmd0aDtpKyspaWYoIW5bKGU9cltpXSkuX2lkXSl7bltlLl9pZF09MSxnKHQsZSksdih0LGUpO3ZhciBhPWUuX21hdGNoR3JvdXA7aWYoYSlmb3IodmFyIG8gaW4gYSl7dmFyIHM9aC5nZXRGcm9tSWQodCxvKTt2KHQscyxlLnJhbmdlKSxuW29dPTF9fW0odCl9LHIuZmluYWxEcmF3PWZ1bmN0aW9uKHQpe2kuZ2V0Q29tcG9uZW50TWV0aG9kKCJyYW5nZXNsaWRlciIsImRyYXciKSh0KSxpLmdldENvbXBvbmVudE1ldGhvZCgicmFuZ2VzZWxlY3RvciIsImRyYXciKSh0KX0sci5kcmF3TWFyZ2luUHVzaGVycz1mdW5jdGlvbih0KXtpLmdldENvbXBvbmVudE1ldGhvZCgibGVnZW5kIiwiZHJhdyIpKHQpLGkuZ2V0Q29tcG9uZW50TWV0aG9kKCJyYW5nZXNlbGVjdG9yIiwiZHJhdyIpKHQpLGkuZ2V0Q29tcG9uZW50TWV0aG9kKCJzbGlkZXJzIiwiZHJhdyIpKHQpLGkuZ2V0Q29tcG9uZW50TWV0aG9kKCJ1cGRhdGVtZW51cyIsImRyYXciKSh0KSxpLmdldENvbXBvbmVudE1ldGhvZCgiY29sb3JiYXIiLCJkcmF3IikodCl9fSx7Ii4uL2NvbXBvbmVudHMvY29sb3IiOjM2NywiLi4vY29tcG9uZW50cy9kcmF3aW5nIjozODksIi4uL2NvbXBvbmVudHMvbW9kZWJhciI6NDMwLCIuLi9jb21wb25lbnRzL3RpdGxlcyI6NDc2LCIuLi9jb25zdGFudHMvYWxpZ25tZW50Ijo0ODMsIi4uL2xpYiI6NTE1LCIuLi9saWIvY2xlYXJfZ2xfY2FudmFzZXMiOjQ5OSwiLi4vcGxvdHMvY2FydGVzaWFuL2F1dG9yYW5nZSI6NTY1LCIuLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NTY2LCIuLi9wbG90cy9jYXJ0ZXNpYW4vY29uc3RyYWludHMiOjU3NCwiLi4vcGxvdHMvcGxvdHMiOjYyOCwiLi4vcmVnaXN0cnkiOjY0NywiQHBsb3RseS9kMyI6NTh9XSw1NTc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vbGliIiksaT1uLmlzUGxhaW5PYmplY3QsYT10KCIuL3Bsb3Rfc2NoZW1hIiksbz10KCIuLi9wbG90cy9wbG90cyIpLHM9dCgiLi4vcGxvdHMvYXR0cmlidXRlcyIpLGw9dCgiLi9wbG90X3RlbXBsYXRlIiksYz10KCIuL3Bsb3RfY29uZmlnIikuZGZsdENvbmZpZztmdW5jdGlvbiB1KHQsZSl7dD1uLmV4dGVuZERlZXAoe30sdCk7dmFyIHIsYSxvPU9iamVjdC5rZXlzKHQpLnNvcnQoKTtmdW5jdGlvbiBzKGUscixuKXtpZihpKHIpJiZpKGUpKXUoZSxyKTtlbHNlIGlmKEFycmF5LmlzQXJyYXkocikmJkFycmF5LmlzQXJyYXkoZSkpe3ZhciBvPWwuYXJyYXlUZW1wbGF0ZXIoe190ZW1wbGF0ZTp0fSxuKTtmb3IoYT0wO2E8ci5sZW5ndGg7YSsrKXt2YXIgcz1yW2FdLGM9by5uZXdJdGVtKHMpLl90ZW1wbGF0ZTtjJiZ1KGMscyl9dmFyIGY9by5kZWZhdWx0SXRlbXMoKTtmb3IoYT0wO2E8Zi5sZW5ndGg7YSsrKXIucHVzaChmW2FdLl90ZW1wbGF0ZSk7Zm9yKGE9MDthPHIubGVuZ3RoO2ErKylkZWxldGUgclthXS50ZW1wbGF0ZWl0ZW1uYW1lfX1mb3Iocj0wO3I8by5sZW5ndGg7cisrKXt2YXIgYz1vW3JdLGg9dFtjXTtpZihjIGluIGU/cyhoLGVbY10sYyk6ZVtjXT1oLGYoYyk9PT1jKWZvcih2YXIgcCBpbiBlKXt2YXIgZD1mKHApO3A9PT1kfHxkIT09Y3x8cCBpbiB0fHxzKGgsZVtwXSxjKX19fWZ1bmN0aW9uIGYodCl7cmV0dXJuIHQucmVwbGFjZSgvWzAtOV0rJC8sIiIpfWZ1bmN0aW9uIGgodCxlLHIsYSxvKXt2YXIgcz1vJiZyKG8pO2Zvcih2YXIgYyBpbiB0KXt2YXIgdT10W2NdLHA9bSh0LGMsYSksZD1tKHQsYyxvKSxnPXIoZCk7aWYoIWcpe3ZhciB2PWYoYyk7diE9PWMmJihnPXIoZD1tKHQsdixvKSkpfWlmKCghc3x8cyE9PWcpJiYhKCFnfHxnLl9ub1RlbXBsYXRpbmd8fCJkYXRhX2FycmF5Ij09PWcudmFsVHlwZXx8Zy5hcnJheU9rJiZBcnJheS5pc0FycmF5KHUpKSlpZighZy52YWxUeXBlJiZpKHUpKWgodSxlLHIscCxkKTtlbHNlIGlmKGcuX2lzTGlua2VkVG9BcnJheSYmQXJyYXkuaXNBcnJheSh1KSlmb3IodmFyIHk9ITEseD0wLGI9e30sXz0wO188dS5sZW5ndGg7XysrKXt2YXIgdz11W19dO2lmKGkodykpe3ZhciBUPXcubmFtZTtpZihUKWJbVF18fChoKHcsZSxyLG0odSx4LHApLG0odSx4LGQpKSx4KyssYltUXT0xKTtlbHNlIGlmKCF5KXt2YXIgaz1tKHQsbC5hcnJheURlZmF1bHRLZXkoYyksYSksQT1tKHUseCxwKTtoKHcsZSxyLEEsbSh1LHgsZCkpO3ZhciBNPW4ubmVzdGVkUHJvcGVydHkoZSxBKTtuLm5lc3RlZFByb3BlcnR5KGUsaykuc2V0KE0uZ2V0KCkpLE0uc2V0KG51bGwpLHk9ITB9fX1lbHNle24ubmVzdGVkUHJvcGVydHkoZSxwKS5zZXQodSl9fX1mdW5jdGlvbiBwKHQsZSl7cmV0dXJuIGEuZ2V0TGF5b3V0VmFsT2JqZWN0KHQsbi5uZXN0ZWRQcm9wZXJ0eSh7fSxlKS5wYXJ0cyl9ZnVuY3Rpb24gZCh0LGUpe3JldHVybiBhLmdldFRyYWNlVmFsT2JqZWN0KHQsbi5uZXN0ZWRQcm9wZXJ0eSh7fSxlKS5wYXJ0cyl9ZnVuY3Rpb24gbSh0LGUscil7cmV0dXJuIHI/QXJyYXkuaXNBcnJheSh0KT9yKyJbIitlKyJdIjpyKyIuIitlOmV9ZnVuY3Rpb24gZyh0KXtmb3IodmFyIGU9MDtlPHQubGVuZ3RoO2UrKylpZihpKHRbZV0pKXJldHVybiEwfWZ1bmN0aW9uIHYodCl7dmFyIGU7c3dpdGNoKHQuY29kZSl7Y2FzZSJkYXRhIjplPSJUaGUgdGVtcGxhdGUgaGFzIG5vIGtleSBkYXRhLiI7YnJlYWs7Y2FzZSJsYXlvdXQiOmU9IlRoZSB0ZW1wbGF0ZSBoYXMgbm8ga2V5IGxheW91dC4iO2JyZWFrO2Nhc2UibWlzc2luZyI6ZT10LnBhdGg/IlRoZXJlIGFyZSBubyB0ZW1wbGF0ZXMgZm9yIGl0ZW0gIit0LnBhdGgrIiB3aXRoIG5hbWUgIit0LnRlbXBsYXRlaXRlbW5hbWU6IlRoZXJlIGFyZSBubyB0ZW1wbGF0ZXMgZm9yIHRyYWNlICIrdC5pbmRleCsiLCBvZiB0eXBlICIrdC50cmFjZVR5cGUrIi4iO2JyZWFrO2Nhc2UidW51c2VkIjplPXQucGF0aD8iVGhlIHRlbXBsYXRlIGl0ZW0gYXQgIit0LnBhdGgrIiB3YXMgbm90IHVzZWQgaW4gY29uc3RydWN0aW5nIHRoZSBwbG90LiI6dC5kYXRhQ291bnQ/IlNvbWUgb2YgdGhlIHRlbXBsYXRlcyBvZiB0eXBlICIrdC50cmFjZVR5cGUrIiB3ZXJlIG5vdCB1c2VkLiBUaGUgdGVtcGxhdGUgaGFzICIrdC50ZW1wbGF0ZUNvdW50KyIgdHJhY2VzLCB0aGUgZGF0YSBvbmx5IGhhcyAiK3QuZGF0YUNvdW50KyIgb2YgdGhpcyB0eXBlLiI6IlRoZSB0ZW1wbGF0ZSBoYXMgIit0LnRlbXBsYXRlQ291bnQrIiB0cmFjZXMgb2YgdHlwZSAiK3QudHJhY2VUeXBlKyIgYnV0IHRoZXJlIGFyZSBub25lIGluIHRoZSBkYXRhLiI7YnJlYWs7Y2FzZSJyZXVzZWQiOmU9IlNvbWUgb2YgdGhlIHRlbXBsYXRlcyBvZiB0eXBlICIrdC50cmFjZVR5cGUrIiB3ZXJlIHVzZWQgbW9yZSB0aGFuIG9uY2UuIFRoZSB0ZW1wbGF0ZSBoYXMgIit0LnRlbXBsYXRlQ291bnQrIiB0cmFjZXMsIHRoZSBkYXRhIGhhcyAiK3QuZGF0YUNvdW50KyIgb2YgdGhpcyB0eXBlLiJ9cmV0dXJuIHQubXNnPWUsdH1yLm1ha2VUZW1wbGF0ZT1mdW5jdGlvbih0KXt0PW4uaXNQbGFpbk9iamVjdCh0KT90Om4uZ2V0R3JhcGhEaXYodCksdD1uLmV4dGVuZERlZXAoe19jb250ZXh0OmN9LHtkYXRhOnQuZGF0YSxsYXlvdXQ6dC5sYXlvdXR9KSxvLnN1cHBseURlZmF1bHRzKHQpO3ZhciBlPXQuZGF0YXx8W10scj10LmxheW91dHx8e307ci5fYmFzZVBsb3RNb2R1bGVzPXQuX2Z1bGxMYXlvdXQuX2Jhc2VQbG90TW9kdWxlcyxyLl9tb2R1bGVzPXQuX2Z1bGxMYXlvdXQuX21vZHVsZXM7dmFyIGE9e2RhdGE6e30sbGF5b3V0Ont9fTtlLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPXt9O2godCxlLGQuYmluZChudWxsLHQpKTt2YXIgcj1uLmNvZXJjZSh0LHt9LHMsInR5cGUiKSxpPWEuZGF0YVtyXTtpfHwoaT1hLmRhdGFbcl09W10pLGkucHVzaChlKX0pKSxoKHIsYS5sYXlvdXQscC5iaW5kKG51bGwscikpLGRlbGV0ZSBhLmxheW91dC50ZW1wbGF0ZTt2YXIgbD1yLnRlbXBsYXRlO2lmKGkobCkpe3ZhciBmLG0sZyx2LHkseCxiPWwubGF5b3V0O2koYikmJnUoYixhLmxheW91dCk7dmFyIF89bC5kYXRhO2lmKGkoXykpe2ZvcihtIGluIGEuZGF0YSlpZihnPV9bbV0sQXJyYXkuaXNBcnJheShnKSl7Zm9yKHg9KHk9YS5kYXRhW21dKS5sZW5ndGgsdj1nLmxlbmd0aCxmPTA7Zjx4O2YrKyl1KGdbZiV2XSx5W2ZdKTtmb3IoZj14O2Y8djtmKyspeS5wdXNoKG4uZXh0ZW5kRGVlcCh7fSxnW2ZdKSl9Zm9yKG0gaW4gXyltIGluIGEuZGF0YXx8KGEuZGF0YVttXT1uLmV4dGVuZERlZXAoW10sX1ttXSkpfX1yZXR1cm4gYX0sci52YWxpZGF0ZVRlbXBsYXRlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9bi5leHRlbmREZWVwKHt9LHtfY29udGV4dDpjLGRhdGE6dC5kYXRhLGxheW91dDp0LmxheW91dH0pLGE9ci5sYXlvdXR8fHt9O2koZSl8fChlPWEudGVtcGxhdGV8fHt9KTt2YXIgcz1lLmxheW91dCxsPWUuZGF0YSx1PVtdO3IubGF5b3V0PWEsci5sYXlvdXQudGVtcGxhdGU9ZSxvLnN1cHBseURlZmF1bHRzKHIpO3ZhciBoPXIuX2Z1bGxMYXlvdXQscD1yLl9mdWxsRGF0YSxkPXt9O2lmKGkocyk/KCFmdW5jdGlvbiB0KGUscil7Zm9yKHZhciBuIGluIGUpaWYoIl8iIT09bi5jaGFyQXQoMCkmJmkoZVtuXSkpe3ZhciBhLG89ZihuKSxzPVtdO2ZvcihhPTA7YTxyLmxlbmd0aDthKyspcy5wdXNoKG0oZSxuLHJbYV0pKSxvIT09biYmcy5wdXNoKG0oZSxvLHJbYV0pKTtmb3IoYT0wO2E8cy5sZW5ndGg7YSsrKWRbc1thXV09MTt0KGVbbl0scyl9fShoLFsibGF5b3V0Il0pLGZ1bmN0aW9uIHQoZSxyKXtmb3IodmFyIG4gaW4gZSlpZigtMT09PW4uaW5kZXhPZigiZGVmYXVsdHMiKSYmaShlW25dKSl7dmFyIGE9bShlLG4scik7ZFthXT90KGVbbl0sYSk6dS5wdXNoKHtjb2RlOiJ1bnVzZWQiLHBhdGg6YX0pfX0ocywibGF5b3V0IikpOnUucHVzaCh7Y29kZToibGF5b3V0In0pLGkobCkpe2Zvcih2YXIgeSx4PXt9LGI9MDtiPHAubGVuZ3RoO2IrKyl7dmFyIF89cFtiXTt4W3k9Xy50eXBlXT0oeFt5XXx8MCkrMSxfLl9mdWxsSW5wdXQuX3RlbXBsYXRlfHx1LnB1c2goe2NvZGU6Im1pc3NpbmciLGluZGV4Ol8uX2Z1bGxJbnB1dC5pbmRleCx0cmFjZVR5cGU6eX0pfWZvcih5IGluIGwpe3ZhciB3PWxbeV0ubGVuZ3RoLFQ9eFt5XXx8MDt3PlQ/dS5wdXNoKHtjb2RlOiJ1bnVzZWQiLHRyYWNlVHlwZTp5LHRlbXBsYXRlQ291bnQ6dyxkYXRhQ291bnQ6VH0pOlQ+dyYmdS5wdXNoKHtjb2RlOiJyZXVzZWQiLHRyYWNlVHlwZTp5LHRlbXBsYXRlQ291bnQ6dyxkYXRhQ291bnQ6VH0pfX1lbHNlIHUucHVzaCh7Y29kZToiZGF0YSJ9KTtpZihmdW5jdGlvbiB0KGUscil7Zm9yKHZhciBuIGluIGUpaWYoIl8iIT09bi5jaGFyQXQoMCkpe3ZhciBhPWVbbl0sbz1tKGUsbixyKTtpKGEpPyhBcnJheS5pc0FycmF5KGUpJiYhMT09PWEuX3RlbXBsYXRlJiZhLnRlbXBsYXRlaXRlbW5hbWUmJnUucHVzaCh7Y29kZToibWlzc2luZyIscGF0aDpvLHRlbXBsYXRlaXRlbW5hbWU6YS50ZW1wbGF0ZWl0ZW1uYW1lfSksdChhLG8pKTpBcnJheS5pc0FycmF5KGEpJiZnKGEpJiZ0KGEsbyl9fSh7ZGF0YTpwLGxheW91dDpofSwiIiksdS5sZW5ndGgpcmV0dXJuIHUubWFwKHYpfX0seyIuLi9saWIiOjUxNSwiLi4vcGxvdHMvYXR0cmlidXRlcyI6NTYyLCIuLi9wbG90cy9wbG90cyI6NjI4LCIuL3Bsb3RfY29uZmlnIjo1NTMsIi4vcGxvdF9zY2hlbWEiOjU1NCwiLi9wbG90X3RlbXBsYXRlIjo1NTV9XSw1NTg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxpPXQoIi4vcGxvdF9hcGkiKSxhPXQoIi4uL3Bsb3RzL3Bsb3RzIiksbz10KCIuLi9saWIiKSxzPXQoIi4uL3NuYXBzaG90L2hlbHBlcnMiKSxsPXQoIi4uL3NuYXBzaG90L3Rvc3ZnIiksYz10KCIuLi9zbmFwc2hvdC9zdmd0b2ltZyIpLHU9dCgiLi4vdmVyc2lvbiIpLnZlcnNpb24sZj17Zm9ybWF0Ont2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJwbmciLCJqcGVnIiwid2VicCIsInN2ZyIsImZ1bGwtanNvbiJdLGRmbHQ6InBuZyJ9LHdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjoxfSxoZWlnaHQ6e3ZhbFR5cGU6Im51bWJlciIsbWluOjF9LHNjYWxlOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MX0sc2V0QmFja2dyb3VuZDp7dmFsVHlwZToiYW55IixkZmx0OiExfSxpbWFnZURhdGFPbmx5Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfX07ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsaCxwLGQ7ZnVuY3Rpb24gbSh0KXtyZXR1cm4hKHQgaW4gZSl8fG8udmFsaWRhdGUoZVt0XSxmW3RdKX1pZihlPWV8fHt9LG8uaXNQbGFpbk9iamVjdCh0KT8ocj10LmRhdGF8fFtdLGg9dC5sYXlvdXR8fHt9LHA9dC5jb25maWd8fHt9LGQ9e30pOih0PW8uZ2V0R3JhcGhEaXYodCkscj1vLmV4dGVuZERlZXAoW10sdC5kYXRhKSxoPW8uZXh0ZW5kRGVlcCh7fSx0LmxheW91dCkscD10Ll9jb250ZXh0LGQ9dC5fZnVsbExheW91dHx8e30pLCFtKCJ3aWR0aCIpJiZudWxsIT09ZS53aWR0aHx8IW0oImhlaWdodCIpJiZudWxsIT09ZS5oZWlnaHQpdGhyb3cgbmV3IEVycm9yKCJIZWlnaHQgYW5kIHdpZHRoIHNob3VsZCBiZSBwaXhlbCB2YWx1ZXMuIik7aWYoIW0oImZvcm1hdCIpKXRocm93IG5ldyBFcnJvcigiRXhwb3J0IGZvcm1hdCBpcyBub3QgIitvLmpvaW4yKGYuZm9ybWF0LnZhbHVlcywiLCAiLCIgb3IgIikrIi4iKTt2YXIgZz17fTtmdW5jdGlvbiB2KHQscil7cmV0dXJuIG8uY29lcmNlKGUsZyxmLHQscil9dmFyIHk9digiZm9ybWF0IikseD12KCJ3aWR0aCIpLGI9digiaGVpZ2h0IiksXz12KCJzY2FsZSIpLHc9digic2V0QmFja2dyb3VuZCIpLFQ9digiaW1hZ2VEYXRhT25seSIpLGs9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ay5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLGsuc3R5bGUubGVmdD0iLTUwMDBweCIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChrKTt2YXIgQT1vLmV4dGVuZEZsYXQoe30saCk7eD9BLndpZHRoPXg6bnVsbD09PWUud2lkdGgmJm4oZC53aWR0aCkmJihBLndpZHRoPWQud2lkdGgpLGI/QS5oZWlnaHQ9YjpudWxsPT09ZS5oZWlnaHQmJm4oZC5oZWlnaHQpJiYoQS5oZWlnaHQ9ZC5oZWlnaHQpO3ZhciBNPW8uZXh0ZW5kRmxhdCh7fSxwLHtfZXhwb3J0ZWRQbG90OiEwLHN0YXRpY1Bsb3Q6ITAsc2V0QmFja2dyb3VuZDp3fSksUz1zLmdldFJlZHJhd0Z1bmMoayk7ZnVuY3Rpb24gRSgpe3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24odCl7c2V0VGltZW91dCh0LHMuZ2V0RGVsYXkoay5fZnVsbExheW91dCkpfSkpfWZ1bmN0aW9uIEwoKXtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHQsZSl7dmFyIHI9bChrLHksXyksbj1rLl9mdWxsTGF5b3V0LndpZHRoLGY9ay5fZnVsbExheW91dC5oZWlnaHQ7ZnVuY3Rpb24gaCgpe2kucHVyZ2UoayksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChrKX1pZigiZnVsbC1qc29uIj09PXkpe3ZhciBwPWEuZ3JhcGhKc29uKGssITEsImtlZXBkYXRhIiwib2JqZWN0IiwhMCwhMCk7cmV0dXJuIHAudmVyc2lvbj11LHA9SlNPTi5zdHJpbmdpZnkocCksaCgpLHQoVD9wOnMuZW5jb2RlSlNPTihwKSl9aWYoaCgpLCJzdmciPT09eSlyZXR1cm4gdChUP3I6cy5lbmNvZGVTVkcocikpO3ZhciBkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO2QuaWQ9by5yYW5kc3RyKCksYyh7Zm9ybWF0Onksd2lkdGg6bixoZWlnaHQ6ZixzY2FsZTpfLGNhbnZhczpkLHN2ZzpyLHByb21pc2U6ITB9KS50aGVuKHQpLmNhdGNoKGUpfSkpfXJldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24odCxlKXtpLm5ld1Bsb3QoayxyLEEsTSkudGhlbihTKS50aGVuKEUpLnRoZW4oTCkudGhlbigoZnVuY3Rpb24oZSl7dChmdW5jdGlvbih0KXtyZXR1cm4gVD90LnJlcGxhY2Uocy5JTUFHRV9VUkxfUFJFRklYLCIiKTp0fShlKSl9KSkuY2F0Y2goKGZ1bmN0aW9uKHQpe2UodCl9KSl9KSl9fSx7Ii4uL2xpYiI6NTE1LCIuLi9wbG90cy9wbG90cyI6NjI4LCIuLi9zbmFwc2hvdC9oZWxwZXJzIjo2NTEsIi4uL3NuYXBzaG90L3N2Z3RvaW1nIjo2NTMsIi4uL3NuYXBzaG90L3Rvc3ZnIjo2NTUsIi4uL3ZlcnNpb24iOjExMzIsIi4vcGxvdF9hcGkiOjU1MiwiZmFzdC1pc251bWVyaWMiOjE5MH1dLDU1OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9saWIiKSxpPXQoIi4uL3Bsb3RzL3Bsb3RzIiksYT10KCIuL3Bsb3Rfc2NoZW1hIiksbz10KCIuL3Bsb3RfY29uZmlnIikuZGZsdENvbmZpZyxzPW4uaXNQbGFpbk9iamVjdCxsPUFycmF5LmlzQXJyYXksYz1uLmlzQXJyYXlPclR5cGVkQXJyYXk7ZnVuY3Rpb24gdSh0LGUscixpLGEsbyl7bz1vfHxbXTtmb3IodmFyIGY9T2JqZWN0LmtleXModCksaD0wO2g8Zi5sZW5ndGg7aCsrKXt2YXIgcD1mW2hdO2lmKCJ0cmFuc2Zvcm1zIiE9PXApe3ZhciB2PW8uc2xpY2UoKTt2LnB1c2gocCk7dmFyIHk9dFtwXSx4PWVbcF0sYj1nKHIscCksXz0oYnx8e30pLnZhbFR5cGUsdz0iaW5mb19hcnJheSI9PT1fLFQ9ImNvbG9yc2NhbGUiPT09XyxrPShifHx7fSkuaXRlbXM7aWYobShyLHApKWlmKHMoeSkmJnMoeCkmJiJhbnkiIT09Xyl1KHkseCxiLGksYSx2KTtlbHNlIGlmKHcmJmwoeSkpe3kubGVuZ3RoPngubGVuZ3RoJiZpLnB1c2goZCgidW51c2VkIixhLHYuY29uY2F0KHgubGVuZ3RoKSkpO3ZhciBBLE0sUyxFLEwsQz14Lmxlbmd0aCxQPUFycmF5LmlzQXJyYXkoayk7aWYoUCYmKEM9TWF0aC5taW4oQyxrLmxlbmd0aCkpLDI9PT1iLmRpbWVuc2lvbnMpZm9yKE09MDtNPEM7TSsrKWlmKGwoeVtNXSkpe3lbTV0ubGVuZ3RoPnhbTV0ubGVuZ3RoJiZpLnB1c2goZCgidW51c2VkIixhLHYuY29uY2F0KE0seFtNXS5sZW5ndGgpKSk7dmFyIEk9eFtNXS5sZW5ndGg7Zm9yKEE9MDtBPChQP01hdGgubWluKEksa1tNXS5sZW5ndGgpOkkpO0ErKylTPVA/a1tNXVtBXTprLEU9eVtNXVtBXSxMPXhbTV1bQV0sbi52YWxpZGF0ZShFLFMpP0whPT1FJiZMIT09K0UmJmkucHVzaChkKCJkeW5hbWljIixhLHYuY29uY2F0KE0sQSksRSxMKSk6aS5wdXNoKGQoInZhbHVlIixhLHYuY29uY2F0KE0sQSksRSkpfWVsc2UgaS5wdXNoKGQoImFycmF5IixhLHYuY29uY2F0KE0pLHlbTV0pKTtlbHNlIGZvcihNPTA7TTxDO00rKylTPVA/a1tNXTprLEU9eVtNXSxMPXhbTV0sbi52YWxpZGF0ZShFLFMpP0whPT1FJiZMIT09K0UmJmkucHVzaChkKCJkeW5hbWljIixhLHYuY29uY2F0KE0pLEUsTCkpOmkucHVzaChkKCJ2YWx1ZSIsYSx2LmNvbmNhdChNKSxFKSl9ZWxzZSBpZihiLml0ZW1zJiYhdyYmbCh5KSl7dmFyIE8seixEPWtbT2JqZWN0LmtleXMoaylbMF1dLFI9W107Zm9yKE89MDtPPHgubGVuZ3RoO08rKyl7dmFyIEY9eFtPXS5faW5kZXh8fE87aWYoKHo9di5zbGljZSgpKS5wdXNoKEYpLHMoeVtGXSkmJnMoeFtPXSkpe1IucHVzaChGKTt2YXIgQj15W0ZdLE49eFtPXTtzKEIpJiYhMSE9PUIudmlzaWJsZSYmITE9PT1OLnZpc2libGU/aS5wdXNoKGQoImludmlzaWJsZSIsYSx6KSk6dShCLE4sRCxpLGEseil9fWZvcihPPTA7Tzx5Lmxlbmd0aDtPKyspKHo9di5zbGljZSgpKS5wdXNoKE8pLHMoeVtPXSk/LTE9PT1SLmluZGV4T2YoTykmJmkucHVzaChkKCJ1bnVzZWQiLGEseikpOmkucHVzaChkKCJvYmplY3QiLGEseix5W09dKSl9ZWxzZSFzKHkpJiZzKHgpP2kucHVzaChkKCJvYmplY3QiLGEsdix5KSk6Yyh5KXx8IWMoeCl8fHd8fFQ/cCBpbiBlP24udmFsaWRhdGUoeSxiKT8iZW51bWVyYXRlZCI9PT1iLnZhbFR5cGUmJihiLmNvZXJjZU51bWJlciYmeSE9PSt4fHx5IT09eCkmJmkucHVzaChkKCJkeW5hbWljIixhLHYseSx4KSk6aS5wdXNoKGQoInZhbHVlIixhLHYseSkpOmkucHVzaChkKCJ1bnVzZWQiLGEsdix5KSk6aS5wdXNoKGQoImFycmF5IixhLHYseSkpO2Vsc2UgaS5wdXNoKGQoInNjaGVtYSIsYSx2KSl9fXJldHVybiBpfWZ1bmN0aW9uIGYodCxlKXtmb3IodmFyIHI9dC5sYXlvdXQubGF5b3V0QXR0cmlidXRlcyxpPTA7aTxlLmxlbmd0aDtpKyspe3ZhciBhPWVbaV0sbz10LnRyYWNlc1thLnR5cGVdLHM9by5sYXlvdXRBdHRyaWJ1dGVzO3MmJihhLnN1YnBsb3Q/bi5leHRlbmRGbGF0KHJbby5hdHRyaWJ1dGVzLnN1YnBsb3QuZGZsdF0scyk6bi5leHRlbmRGbGF0KHIscykpfXJldHVybiByfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PXQmJih0PVtdKSx2b2lkIDA9PT1lJiYoZT17fSk7dmFyIHIsYyxoPWEuZ2V0KCkscD1bXSxtPXtfY29udGV4dDpuLmV4dGVuZEZsYXQoe30sbyl9O2wodCk/KG0uZGF0YT1uLmV4dGVuZERlZXAoW10sdCkscj10KToobS5kYXRhPVtdLHI9W10scC5wdXNoKGQoImFycmF5IiwiZGF0YSIpKSkscyhlKT8obS5sYXlvdXQ9bi5leHRlbmREZWVwKHt9LGUpLGM9ZSk6KG0ubGF5b3V0PXt9LGM9e30sYXJndW1lbnRzLmxlbmd0aD4xJiZwLnB1c2goZCgib2JqZWN0IiwibGF5b3V0IikpKSxpLnN1cHBseURlZmF1bHRzKG0pO2Zvcih2YXIgZz1tLl9mdWxsRGF0YSx2PXIubGVuZ3RoLHk9MDt5PHY7eSsrKXt2YXIgeD1yW3ldLGI9WyJkYXRhIix5XTtpZihzKHgpKXt2YXIgXz1nW3ldLHc9Xy50eXBlLFQ9aC50cmFjZXNbd10uYXR0cmlidXRlcztULnR5cGU9e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbd119LCExPT09Xy52aXNpYmxlJiYhMSE9PXgudmlzaWJsZSYmcC5wdXNoKGQoImludmlzaWJsZSIsYikpLHUoeCxfLFQscCxiKTt2YXIgaz14LnRyYW5zZm9ybXMsQT1fLnRyYW5zZm9ybXM7aWYoayl7bChrKXx8cC5wdXNoKGQoImFycmF5IixiLFsidHJhbnNmb3JtcyJdKSksYi5wdXNoKCJ0cmFuc2Zvcm1zIik7Zm9yKHZhciBNPTA7TTxrLmxlbmd0aDtNKyspe3ZhciBTPVsidHJhbnNmb3JtcyIsTV0sRT1rW01dLnR5cGU7aWYocyhrW01dKSl7dmFyIEw9aC50cmFuc2Zvcm1zW0VdP2gudHJhbnNmb3Jtc1tFXS5hdHRyaWJ1dGVzOnt9O0wudHlwZT17dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOk9iamVjdC5rZXlzKGgudHJhbnNmb3Jtcyl9LHUoa1tNXSxBW01dLEwscCxiLFMpfWVsc2UgcC5wdXNoKGQoIm9iamVjdCIsYixTKSl9fX1lbHNlIHAucHVzaChkKCJvYmplY3QiLGIpKX12YXIgQz1tLl9mdWxsTGF5b3V0LFA9ZihoLGcpO3JldHVybiB1KGMsQyxQLHAsImxheW91dCIpLDA9PT1wLmxlbmd0aD92b2lkIDA6cH07dmFyIGg9e29iamVjdDpmdW5jdGlvbih0LGUpe3JldHVybigibGF5b3V0Ij09PXQmJiIiPT09ZT8iVGhlIGxheW91dCBhcmd1bWVudCI6ImRhdGEiPT09dFswXSYmIiI9PT1lPyJUcmFjZSAiK3RbMV0rIiBpbiB0aGUgZGF0YSBhcmd1bWVudCI6cCh0KSsia2V5ICIrZSkrIiBtdXN0IGJlIGxpbmtlZCB0byBhbiBvYmplY3QgY29udGFpbmVyIn0sYXJyYXk6ZnVuY3Rpb24odCxlKXtyZXR1cm4oImRhdGEiPT09dD8iVGhlIGRhdGEgYXJndW1lbnQiOnAodCkrImtleSAiK2UpKyIgbXVzdCBiZSBsaW5rZWQgdG8gYW4gYXJyYXkgY29udGFpbmVyIn0sc2NoZW1hOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHAodCkrImtleSAiK2UrIiBpcyBub3QgcGFydCBvZiB0aGUgc2NoZW1hIn0sdW51c2VkOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1zKHIpPyJjb250YWluZXIiOiJrZXkiO3JldHVybiBwKHQpK24rIiAiK2UrIiBkaWQgbm90IGdldCBjb2VyY2VkIn0sZHluYW1pYzpmdW5jdGlvbih0LGUscixuKXtyZXR1cm5bcCh0KSsia2V5IixlLCIoc2V0IHRvICciK3IrIicpIiwiZ290IHJlc2V0IHRvIiwiJyIrbisiJyIsImR1cmluZyBkZWZhdWx0cy4iXS5qb2luKCIgIil9LGludmlzaWJsZTpmdW5jdGlvbih0LGUpe3JldHVybihlP3AodCkrIml0ZW0gIitlOiJUcmFjZSAiK3RbMV0pKyIgZ290IGRlZmF1bHRlZCB0byBiZSBub3QgdmlzaWJsZSJ9LHZhbHVlOmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm5bcCh0KSsia2V5ICIrZSwiaXMgc2V0IHRvIGFuIGludmFsaWQgdmFsdWUgKCIrcisiKSJdLmpvaW4oIiAiKX19O2Z1bmN0aW9uIHAodCl7cmV0dXJuIGwodCk/IkluIGRhdGEgdHJhY2UgIit0WzFdKyIsICI6IkluICIrdCsiLCAifWZ1bmN0aW9uIGQodCxlLHIsaSxhKXt2YXIgbyxzO3I9cnx8IiIsbChlKT8obz1lWzBdLHM9ZVsxXSk6KG89ZSxzPW51bGwpO3ZhciBjPWZ1bmN0aW9uKHQpe2lmKCFsKHQpKXJldHVybiBTdHJpbmcodCk7Zm9yKHZhciBlPSIiLHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIG49dFtyXTsibnVtYmVyIj09dHlwZW9mIG4/ZT1lLnN1YnN0cigwLGUubGVuZ3RoLTEpKyJbIituKyJdIjplKz1uLHI8dC5sZW5ndGgtMSYmKGUrPSIuIil9cmV0dXJuIGV9KHIpLHU9aFt0XShlLGMsaSxhKTtyZXR1cm4gbi5sb2codSkse2NvZGU6dCxjb250YWluZXI6byx0cmFjZTpzLHBhdGg6cixhc3RyOmMsbXNnOnV9fWZ1bmN0aW9uIG0odCxlKXt2YXIgcj15KGUpLG49ci5rZXlNaW51c0lkLGk9ci5pZDtyZXR1cm4hIShuIGluIHQmJnRbbl0uX2lzU3VicGxvdE9iaiYmaSl8fGUgaW4gdH1mdW5jdGlvbiBnKHQsZSl7cmV0dXJuIGUgaW4gdD90W2VdOnRbeShlKS5rZXlNaW51c0lkXX12YXIgdj1uLmNvdW50ZXJSZWdleCgiKFthLXpdKykiKTtmdW5jdGlvbiB5KHQpe3ZhciBlPXQubWF0Y2godik7cmV0dXJue2tleU1pbnVzSWQ6ZSYmZVsxXSxpZDplJiZlWzJdfX19LHsiLi4vbGliIjo1MTUsIi4uL3Bsb3RzL3Bsb3RzIjo2MjgsIi4vcGxvdF9jb25maWciOjU1MywiLi9wbG90X3NjaGVtYSI6NTU0fV0sNTYwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17bW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsZGZsdDoiYWZ0ZXJhbGwiLHZhbHVlczpbImltbWVkaWF0ZSIsIm5leHQiLCJhZnRlcmFsbCJdfSxkaXJlY3Rpb246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImZvcndhcmQiLCJyZXZlcnNlIl0sZGZsdDoiZm9yd2FyZCJ9LGZyb21jdXJyZW50Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxmcmFtZTp7ZHVyYXRpb246e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDo1MDB9LHJlZHJhdzp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMH19LHRyYW5zaXRpb246e2R1cmF0aW9uOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6NTAwLGVkaXRUeXBlOiJub25lIn0sZWFzaW5nOnt2YWxUeXBlOiJlbnVtZXJhdGVkIixkZmx0OiJjdWJpYy1pbi1vdXQiLHZhbHVlczpbImxpbmVhciIsInF1YWQiLCJjdWJpYyIsInNpbiIsImV4cCIsImNpcmNsZSIsImVsYXN0aWMiLCJiYWNrIiwiYm91bmNlIiwibGluZWFyLWluIiwicXVhZC1pbiIsImN1YmljLWluIiwic2luLWluIiwiZXhwLWluIiwiY2lyY2xlLWluIiwiZWxhc3RpYy1pbiIsImJhY2staW4iLCJib3VuY2UtaW4iLCJsaW5lYXItb3V0IiwicXVhZC1vdXQiLCJjdWJpYy1vdXQiLCJzaW4tb3V0IiwiZXhwLW91dCIsImNpcmNsZS1vdXQiLCJlbGFzdGljLW91dCIsImJhY2stb3V0IiwiYm91bmNlLW91dCIsImxpbmVhci1pbi1vdXQiLCJxdWFkLWluLW91dCIsImN1YmljLWluLW91dCIsInNpbi1pbi1vdXQiLCJleHAtaW4tb3V0IiwiY2lyY2xlLWluLW91dCIsImVsYXN0aWMtaW4tb3V0IiwiYmFjay1pbi1vdXQiLCJib3VuY2UtaW4tb3V0Il0sZWRpdFR5cGU6Im5vbmUifSxvcmRlcmluZzp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsibGF5b3V0IGZpcnN0IiwidHJhY2VzIGZpcnN0Il0sZGZsdDoibGF5b3V0IGZpcnN0IixlZGl0VHlwZToibm9uZSJ9fX19LHt9XSw1NjE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vbGliIiksaT10KCIuLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgYSxvLHM9ci5uYW1lLGw9ci5pbmNsdXNpb25BdHRyfHwidmlzaWJsZSIsYz1lW3NdLHU9bi5pc0FycmF5T3JUeXBlZEFycmF5KHRbc10pP3Rbc106W10sZj1lW3NdPVtdLGg9aS5hcnJheVRlbXBsYXRlcihlLHMsbCk7Zm9yKGE9MDthPHUubGVuZ3RoO2ErKyl7dmFyIHA9dVthXTtuLmlzUGxhaW5PYmplY3QocCk/bz1oLm5ld0l0ZW0ocCk6KG89aC5uZXdJdGVtKHt9KSlbbF09ITEsby5faW5kZXg9YSwhMSE9PW9bbF0mJnIuaGFuZGxlSXRlbURlZmF1bHRzKHAsbyxlLHIpLGYucHVzaChvKX12YXIgZD1oLmRlZmF1bHRJdGVtcygpO2ZvcihhPTA7YTxkLmxlbmd0aDthKyspKG89ZFthXSkuX2luZGV4PWYubGVuZ3RoLHIuaGFuZGxlSXRlbURlZmF1bHRzKHt9LG8sZSxyLHt9KSxmLnB1c2gobyk7aWYobi5pc0FycmF5T3JUeXBlZEFycmF5KGMpKXt2YXIgbT1NYXRoLm1pbihjLmxlbmd0aCxmLmxlbmd0aCk7Zm9yKGE9MDthPG07YSsrKW4ucmVsaW5rUHJpdmF0ZUtleXMoZlthXSxjW2FdKX1yZXR1cm4gZn19LHsiLi4vbGliIjo1MTUsIi4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiOjU1NX1dLDU2MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2ZvbnRfYXR0cmlidXRlcyIpLGk9dCgiLi4vY29tcG9uZW50cy9meC9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPXt0eXBlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6W10sZGZsdDoic2NhdHRlciIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMiLF9ub1RlbXBsYXRpbmc6ITB9LHZpc2libGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbITAsITEsImxlZ2VuZG9ubHkiXSxkZmx0OiEwLGVkaXRUeXBlOiJjYWxjIn0sc2hvd2xlZ2VuZDp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToic3R5bGUifSxsZWdlbmRncm91cDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGVkaXRUeXBlOiJzdHlsZSJ9LGxlZ2VuZGdyb3VwdGl0bGU6e3RleHQ6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIixlZGl0VHlwZToic3R5bGUifSxmb250Om4oe2VkaXRUeXBlOiJzdHlsZSJ9KSxlZGl0VHlwZToic3R5bGUifSxsZWdlbmRyYW5rOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MWUzLGVkaXRUeXBlOiJzdHlsZSJ9LG9wYWNpdHk6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDoxLGVkaXRUeXBlOiJzdHlsZSJ9LG5hbWU6e3ZhbFR5cGU6InN0cmluZyIsZWRpdFR5cGU6InN0eWxlIn0sdWlkOnt2YWxUeXBlOiJzdHJpbmciLGVkaXRUeXBlOiJwbG90IixhbmltOiEwfSxpZHM6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIixhbmltOiEwfSxjdXN0b21kYXRhOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LG1ldGE6e3ZhbFR5cGU6ImFueSIsYXJyYXlPazohMCxlZGl0VHlwZToicGxvdCJ9LHNlbGVjdGVkcG9pbnRzOnt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJjYWxjIn0saG92ZXJpbmZvOnt2YWxUeXBlOiJmbGFnbGlzdCIsZmxhZ3M6WyJ4IiwieSIsInoiLCJ0ZXh0IiwibmFtZSJdLGV4dHJhczpbImFsbCIsIm5vbmUiLCJza2lwIl0sYXJyYXlPazohMCxkZmx0OiJhbGwiLGVkaXRUeXBlOiJub25lIn0saG92ZXJsYWJlbDppLmhvdmVybGFiZWwsc3RyZWFtOnt0b2tlbjp7dmFsVHlwZToic3RyaW5nIixub0JsYW5rOiEwLHN0cmljdDohMCxlZGl0VHlwZToiY2FsYyJ9LG1heHBvaW50czp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MWU0LGRmbHQ6NTAwLGVkaXRUeXBlOiJjYWxjIn0sZWRpdFR5cGU6ImNhbGMifSx0cmFuc2Zvcm1zOntfaXNMaW5rZWRUb0FycmF5OiJ0cmFuc2Zvcm0iLGVkaXRUeXBlOiJjYWxjIn0sdWlyZXZpc2lvbjp7dmFsVHlwZToiYW55IixlZGl0VHlwZToibm9uZSJ9fX0seyIuLi9jb21wb25lbnRzL2Z4L2F0dHJpYnV0ZXMiOjM5OCwiLi9mb250X2F0dHJpYnV0ZXMiOjU5NH1dLDU2MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGk9dCgiLi4vLi4vbGliIiksYT1pLmRhdGVUaW1lMm1zLG89aS5pbmNyZW1lbnRNb250aCxzPXQoIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiKS5PTkVBVkdNT05USDtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsaSl7aWYoImRhdGUiIT09ZS50eXBlKXJldHVybnt2YWxzOml9O3ZhciBsPXRbcisicGVyaW9kYWxpZ25tZW50Il07aWYoIWwpcmV0dXJue3ZhbHM6aX07dmFyIGMsdT10W3IrInBlcmlvZCJdO2lmKG4odSkpe2lmKCh1PSt1KTw9MClyZXR1cm57dmFsczppfX1lbHNlIGlmKCJzdHJpbmciPT10eXBlb2YgdSYmIk0iPT09dS5jaGFyQXQoMCkpe3ZhciBmPSt1LnN1YnN0cmluZygxKTtpZighKGY+MCYmTWF0aC5yb3VuZChmKT09PWYpKXJldHVybnt2YWxzOml9O2M9Zn1mb3IodmFyIGg9ZS5jYWxlbmRhcixwPSJzdGFydCI9PT1sLGQ9ImVuZCI9PT1sLG09dFtyKyJwZXJpb2QwIl0sZz1hKG0saCl8fDAsdj1bXSx5PVtdLHg9W10sYj1pLmxlbmd0aCxfPTA7XzxiO18rKyl7dmFyIHcsVCxrLEE9aVtfXTtpZihjKXtmb3Iodz1NYXRoLnJvdW5kKChBLWcpLyhjKnMpKSxrPW8oZyxjKncsaCk7az5BOylrPW8oaywtYyxoKTtmb3IoO2s8PUE7KWs9byhrLGMsaCk7VD1vKGssLWMsaCl9ZWxzZXtmb3Ioaz1nKyh3PU1hdGgucm91bmQoKEEtZykvdSkpKnU7az5BOylrLT11O2Zvcig7azw9QTspays9dTtUPWstdX12W19dPXA/VDpkP2s6KFQraykvMix5W19dPVQseFtfXT1rfXJldHVybnt2YWxzOnYsc3RhcnRzOnksZW5kczp4fX19LHsiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NDkxLCIuLi8uLi9saWIiOjUxNSwiZmFzdC1pc251bWVyaWMiOjE5MH1dLDU2NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e3hheGlzOnt2YWxUeXBlOiJzdWJwbG90aWQiLGRmbHQ6IngiLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIn0seWF4aXM6e3ZhbFR5cGU6InN1YnBsb3RpZCIsZGZsdDoieSIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifX19LHt9XSw1NjU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiZmFzdC1pc251bWVyaWMiKSxhPXQoIi4uLy4uL2xpYiIpLG89dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkZQX1NBRkUscz10KCIuLi8uLi9yZWdpc3RyeSIpLGw9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIiksYz10KCIuL2F4aXNfaWRzIiksdT1jLmdldEZyb21JZCxmPWMuaXNMaW5rZWQ7ZnVuY3Rpb24gaCh0LGUpe3ZhciByLG4saT1bXSxvPXQuX2Z1bGxMYXlvdXQscz1kKG8sZSwwKSxsPWQobyxlLDEpLGM9bSh0LGUpLHU9Yy5taW4sZj1jLm1heDtpZigwPT09dS5sZW5ndGh8fDA9PT1mLmxlbmd0aClyZXR1cm4gYS5zaW1wbGVNYXAoZS5yYW5nZSxlLnIybCk7dmFyIGg9dVswXS52YWwsZz1mWzBdLnZhbDtmb3Iocj0xO3I8dS5sZW5ndGgmJmg9PT1nO3IrKyloPU1hdGgubWluKGgsdVtyXS52YWwpO2ZvcihyPTE7cjxmLmxlbmd0aCYmaD09PWc7cisrKWc9TWF0aC5tYXgoZyxmW3JdLnZhbCk7dmFyIHY9ITE7aWYoZS5yYW5nZSl7dmFyIHk9YS5zaW1wbGVNYXAoZS5yYW5nZSxlLnIybCk7dj15WzFdPHlbMF19InJldmVyc2VkIj09PWUuYXV0b3JhbmdlJiYodj0hMCxlLmF1dG9yYW5nZT0hMCk7dmFyIHgsYixfLHcsVCxrLEE9ZS5yYW5nZW1vZGUsTT0idG96ZXJvIj09PUEsUz0ibm9ubmVnYXRpdmUiPT09QSxFPWUuX2xlbmd0aCxMPUUvMTAsQz0wO2ZvcihyPTA7cjx1Lmxlbmd0aDtyKyspZm9yKHg9dVtyXSxuPTA7bjxmLmxlbmd0aDtuKyspKGs9KGI9ZltuXSkudmFsLXgudmFsLXAoZSx4LnZhbCxiLnZhbCkpPjAmJigoVD1FLXMoeCktbChiKSk+TD9rL1Q+QyYmKF89eCx3PWIsQz1rL1QpOmsvRT5DJiYoXz17dmFsOngudmFsLG5vcGFkOjF9LHc9e3ZhbDpiLnZhbCxub3BhZDoxfSxDPWsvRSkpO2lmKGg9PT1nKXt2YXIgUD1oLTEsST1oKzE7aWYoTSlpZigwPT09aClpPVswLDFdO2Vsc2V7dmFyIE89KGg+MD9mOnUpLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gTWF0aC5tYXgodCxsKGUpKX0pLDApLHo9aC8oMS1NYXRoLm1pbiguNSxPL0UpKTtpPWg+MD9bMCx6XTpbeiwwXX1lbHNlIGk9Uz9bTWF0aC5tYXgoMCxQKSxNYXRoLm1heCgxLEkpXTpbUCxJXX1lbHNlIE0/KF8udmFsPj0wJiYoXz17dmFsOjAsbm9wYWQ6MX0pLHcudmFsPD0wJiYodz17dmFsOjAsbm9wYWQ6MX0pKTpTJiYoXy52YWwtQypzKF8pPDAmJihfPXt2YWw6MCxub3BhZDoxfSksdy52YWw8PTAmJih3PXt2YWw6MSxub3BhZDoxfSkpLEM9KHcudmFsLV8udmFsLXAoZSx4LnZhbCxiLnZhbCkpLyhFLXMoXyktbCh3KSksaT1bXy52YWwtQypzKF8pLHcudmFsK0MqbCh3KV07cmV0dXJuIHYmJmkucmV2ZXJzZSgpLGEuc2ltcGxlTWFwKGksZS5sMnJ8fE51bWJlcil9ZnVuY3Rpb24gcCh0LGUscil7dmFyIG49MDtpZih0LnJhbmdlYnJlYWtzKWZvcih2YXIgaT10LmxvY2F0ZUJyZWFrcyhlLHIpLGE9MDthPGkubGVuZ3RoO2ErKyl7dmFyIG89aVthXTtuKz1vLm1heC1vLm1pbn1yZXR1cm4gbn1mdW5jdGlvbiBkKHQsZSxyKXt2YXIgaT0uMDUqZS5fbGVuZ3RoLG89ZS5fYW5jaG9yQXhpc3x8e307aWYoLTEhPT0oZS50aWNrbGFiZWxwb3NpdGlvbnx8IiIpLmluZGV4T2YoImluc2lkZSIpfHwtMSE9PShvLnRpY2tsYWJlbHBvc2l0aW9ufHwiIikuaW5kZXhPZigiaW5zaWRlIikpe3ZhciBzPSJyZXZlcnNlZCI9PT1lLmF1dG9yYW5nZTtpZighcyl7dmFyIGM9YS5zaW1wbGVNYXAoZS5yYW5nZSxlLnIybCk7cz1jWzFdPGNbMF19cyYmKHI9IXIpfXZhciB1PTA7cmV0dXJuIGYodCxlLl9pZCl8fCh1PWZ1bmN0aW9uKHQsZSxyKXt2YXIgaT0wLG89IngiPT09ZS5faWQuY2hhckF0KDApO2Zvcih2YXIgcyBpbiB0Ll9wbG90cyl7dmFyIGM9dC5fcGxvdHNbc107aWYoZS5faWQ9PT1jLnhheGlzLl9pZHx8ZS5faWQ9PT1jLnlheGlzLl9pZCl7dmFyIHU9KG8/Yy55YXhpczpjLnhheGlzKXx8e307aWYoLTEhPT0odS50aWNrbGFiZWxwb3NpdGlvbnx8IiIpLmluZGV4T2YoImluc2lkZSIpJiYoIXImJigibGVmdCI9PT11LnNpZGV8fCJib3R0b20iPT09dS5zaWRlKXx8ciYmKCJ0b3AiPT09dS5zaWRlfHwicmlnaHQiPT09dS5zaWRlKSkpe2lmKHUuX3ZhbHMpe3ZhciBmPWEuZGVnMnJhZCh1Ll90aWNrQW5nbGVzW3UuX2lkKyJ0aWNrIl18fDApLGg9TWF0aC5hYnMoTWF0aC5jb3MoZikpLHA9TWF0aC5hYnMoTWF0aC5zaW4oZikpO2lmKCF1Ll92YWxzWzBdLmJiKXt2YXIgZD11Ll9pZCsidGljayI7dS5fc2VsZWN0aW9uc1tkXS5lYWNoKChmdW5jdGlvbih0KXt2YXIgZT1uLnNlbGVjdCh0aGlzKTtlLnNlbGVjdCgiLnRleHQtbWF0aC1ncm91cCIpLmVtcHR5KCkmJih0LmJiPWwuYkJveChlLm5vZGUoKSkpfSkpfWZvcih2YXIgbT0wO208dS5fdmFscy5sZW5ndGg7bSsrKXt2YXIgZz11Ll92YWxzW21dLmJiO2lmKGcpe3ZhciB2PTYrZy53aWR0aCx5PTYrZy5oZWlnaHQ7aT1NYXRoLm1heChpLG8/TWF0aC5tYXgodipoLHkqcCk6TWF0aC5tYXgoeSpoLHYqcCkpfX19Imluc2lkZSI9PT11LnRpY2tzJiYiaW5zaWRlIj09PXUudGlja2xhYmVscG9zaXRpb24mJihpKz11LnRpY2tsZW58fDApfX19cmV0dXJuIGl9KHQsZSxyKSksaT1NYXRoLm1heCh1LGkpLCJkb21haW4iPT09ZS5jb25zdHJhaW4mJmUuX2lucHV0RG9tYWluJiYoaSo9KGUuX2lucHV0RG9tYWluWzFdLWUuX2lucHV0RG9tYWluWzBdKS8oZS5kb21haW5bMV0tZS5kb21haW5bMF0pKSxmdW5jdGlvbih0KXtyZXR1cm4gdC5ub3BhZD8wOnQucGFkKyh0LmV4dHJhcGFkP2k6dSl9fWUuZXhwb3J0cz17Z2V0QXV0b1JhbmdlOmgsbWFrZVBhZEZuOmQsZG9BdXRvUmFuZ2U6ZnVuY3Rpb24odCxlLHIpe2lmKGUuc2V0U2NhbGUoKSxlLmF1dG9yYW5nZSl7ZS5yYW5nZT1yP3Iuc2xpY2UoKTpoKHQsZSksZS5fcj1lLnJhbmdlLnNsaWNlKCksZS5fcmw9YS5zaW1wbGVNYXAoZS5fcixlLnIybCk7dmFyIG49ZS5faW5wdXQsaT17fTtpW2UuX2F0dHIrIi5yYW5nZSJdPWUucmFuZ2UsaVtlLl9hdHRyKyIuYXV0b3JhbmdlIl09ZS5hdXRvcmFuZ2Uscy5jYWxsKCJfc3RvcmVEaXJlY3RHVUlFZGl0Iix0LmxheW91dCx0Ll9mdWxsTGF5b3V0Ll9wcmVHVUksaSksbi5yYW5nZT1lLnJhbmdlLnNsaWNlKCksbi5hdXRvcmFuZ2U9ZS5hdXRvcmFuZ2V9dmFyIG89ZS5fYW5jaG9yQXhpcztpZihvJiZvLnJhbmdlc2xpZGVyKXt2YXIgbD1vLnJhbmdlc2xpZGVyW2UuX25hbWVdO2wmJiJhdXRvIj09PWwucmFuZ2Vtb2RlJiYobC5yYW5nZT1oKHQsZSkpLG8uX2lucHV0LnJhbmdlc2xpZGVyW2UuX25hbWVdPWEuZXh0ZW5kRmxhdCh7fSxsKX19LGZpbmRFeHRyZW1lczpmdW5jdGlvbih0LGUscil7cnx8KHI9e30pO3QuX218fHQuc2V0U2NhbGUoKTt2YXIgbixhLHMsbCxjLHUsZixoLHAsZD1bXSxtPVtdLHk9ZS5sZW5ndGgsYj1yLnBhZGRlZHx8ITEsXz1yLnRvemVybyYmKCJsaW5lYXIiPT09dC50eXBlfHwiLSI9PT10LnR5cGUpLHc9ImxvZyI9PT10LnR5cGUsVD0hMSxrPXIudnBhZExpbmVhcml6ZWR8fCExO2Z1bmN0aW9uIEEodCl7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gVD0hMCxmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5tYXgoTnVtYmVyKHRbZV18fDApLDApfTt2YXIgZT1NYXRoLm1heChOdW1iZXIodHx8MCksMCk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGV9fXZhciBNPUEoKHQuX20+MD9yLnBwYWRwbHVzOnIucHBhZG1pbnVzKXx8ci5wcGFkfHwwKSxTPUEoKHQuX20+MD9yLnBwYWRtaW51czpyLnBwYWRwbHVzKXx8ci5wcGFkfHwwKSxFPUEoci52cGFkcGx1c3x8ci52cGFkKSxMPUEoci52cGFkbWludXN8fHIudnBhZCk7aWYoIVQpe2lmKGg9MS8wLHA9LTEvMCx3KWZvcihuPTA7bjx5O24rKykoYT1lW25dKTxoJiZhPjAmJihoPWEpLGE+cCYmYTxvJiYocD1hKTtlbHNlIGZvcihuPTA7bjx5O24rKykoYT1lW25dKTxoJiZhPi1vJiYoaD1hKSxhPnAmJmE8byYmKHA9YSk7ZT1baCxwXSx5PTJ9dmFyIEM9e3RvemVybzpfLGV4dHJhcGFkOmJ9O2Z1bmN0aW9uIFAocil7cz1lW3JdLGkocykmJih1PU0ociksZj1TKHIpLGs/KGw9dC5jMmwocyktTChyKSxjPXQuYzJsKHMpK0UocikpOihoPXMtTChyKSxwPXMrRShyKSx3JiZoPHAvMTAmJihoPXAvMTApLGw9dC5jMmwoaCksYz10LmMybChwKSksXyYmKGw9TWF0aC5taW4oMCxsKSxjPU1hdGgubWF4KDAsYykpLHgobCkmJmcoZCxsLGYsQykseChjKSYmdihtLGMsdSxDKSl9dmFyIEk9TWF0aC5taW4oNix5KTtmb3Iobj0wO248STtuKyspUChuKTtmb3Iobj15LTE7bj49STtuLS0pUChuKTtyZXR1cm57bWluOmQsbWF4Om0sb3B0czpyfX0sY29uY2F0RXh0cmVtZXM6bX07ZnVuY3Rpb24gbSh0LGUscil7dmFyIG4saSxhLG89ZS5faWQscz10Ll9mdWxsRGF0YSxsPXQuX2Z1bGxMYXlvdXQsYz1bXSxmPVtdO2Z1bmN0aW9uIGgodCxlKXtmb3Iobj0wO248ZS5sZW5ndGg7bisrKXt2YXIgcj10W2Vbbl1dLHM9KHIuX2V4dHJlbWVzfHx7fSlbb107aWYoITA9PT1yLnZpc2libGUmJnMpe2ZvcihpPTA7aTxzLm1pbi5sZW5ndGg7aSsrKWE9cy5taW5baV0sZyhjLGEudmFsLGEucGFkLHtleHRyYXBhZDphLmV4dHJhcGFkfSk7Zm9yKGk9MDtpPHMubWF4Lmxlbmd0aDtpKyspYT1zLm1heFtpXSx2KGYsYS52YWwsYS5wYWQse2V4dHJhcGFkOmEuZXh0cmFwYWR9KX19fWlmKGgocyxlLl90cmFjZUluZGljZXMpLGgobC5hbm5vdGF0aW9uc3x8W10sZS5fYW5uSW5kaWNlc3x8W10pLGgobC5zaGFwZXN8fFtdLGUuX3NoYXBlSW5kaWNlc3x8W10pLGUuX21hdGNoR3JvdXAmJiFyKWZvcih2YXIgcCBpbiBlLl9tYXRjaEdyb3VwKWlmKHAhPT1lLl9pZCl7dmFyIGQ9dSh0LHApLHk9bSh0LGQsITApLHg9ZS5fbGVuZ3RoL2QuX2xlbmd0aDtmb3IoaT0wO2k8eS5taW4ubGVuZ3RoO2krKylhPXkubWluW2ldLGcoYyxhLnZhbCxhLnBhZCp4LHtleHRyYXBhZDphLmV4dHJhcGFkfSk7Zm9yKGk9MDtpPHkubWF4Lmxlbmd0aDtpKyspYT15Lm1heFtpXSx2KGYsYS52YWwsYS5wYWQqeCx7ZXh0cmFwYWQ6YS5leHRyYXBhZH0pfXJldHVybnttaW46YyxtYXg6Zn19ZnVuY3Rpb24gZyh0LGUscixuKXt5KHQsZSxyLG4sYil9ZnVuY3Rpb24gdih0LGUscixuKXt5KHQsZSxyLG4sXyl9ZnVuY3Rpb24geSh0LGUscixuLGkpe2Zvcih2YXIgYT1uLnRvemVybyxvPW4uZXh0cmFwYWQscz0hMCxsPTA7bDx0Lmxlbmd0aCYmcztsKyspe3ZhciBjPXRbbF07aWYoaShjLnZhbCxlKSYmYy5wYWQ+PXImJihjLmV4dHJhcGFkfHwhbykpe3M9ITE7YnJlYWt9aShlLGMudmFsKSYmYy5wYWQ8PXImJihvfHwhYy5leHRyYXBhZCkmJih0LnNwbGljZShsLDEpLGwtLSl9aWYocyl7dmFyIHU9YSYmMD09PWU7dC5wdXNoKHt2YWw6ZSxwYWQ6dT8wOnIsZXh0cmFwYWQ6IXUmJm99KX19ZnVuY3Rpb24geCh0KXtyZXR1cm4gaSh0KSYmTWF0aC5hYnModCk8b31mdW5jdGlvbiBiKHQsZSl7cmV0dXJuIHQ8PWV9ZnVuY3Rpb24gXyh0LGUpe3JldHVybiB0Pj1lfX0seyIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjM4OSwiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NDkxLCIuLi8uLi9saWIiOjUxNSwiLi4vLi4vcmVnaXN0cnkiOjY0NywiLi9heGlzX2lkcyI6NTcwLCJAcGxvdGx5L2QzIjo1OCwiZmFzdC1pc251bWVyaWMiOjE5MH1dLDU2NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCJmYXN0LWlzbnVtZXJpYyIpLGE9dCgiLi4vLi4vcGxvdHMvcGxvdHMiKSxvPXQoIi4uLy4uL3JlZ2lzdHJ5Iikscz10KCIuLi8uLi9saWIiKSxsPXMuc3RyVHJhbnNsYXRlLGM9dCgiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIiksdT10KCIuLi8uLi9jb21wb25lbnRzL3RpdGxlcyIpLGY9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLGg9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIikscD10KCIuL2xheW91dF9hdHRyaWJ1dGVzIiksZD10KCIuL2NsZWFuX3RpY2tzIiksbT10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIiksZz1tLk9ORU1BWFlFQVIsdj1tLk9ORUFWR1lFQVIseT1tLk9ORU1JTllFQVIseD1tLk9ORU1BWFFVQVJURVIsYj1tLk9ORUFWR1FVQVJURVIsXz1tLk9ORU1JTlFVQVJURVIsdz1tLk9ORU1BWE1PTlRILFQ9bS5PTkVBVkdNT05USCxrPW0uT05FTUlOTU9OVEgsQT1tLk9ORVdFRUssTT1tLk9ORURBWSxTPU0vMixFPW0uT05FSE9VUixMPW0uT05FTUlOLEM9bS5PTkVTRUMsUD1tLk1JTlVTX1NJR04sST1tLkJBRE5VTSxPPXtLOiJ6ZXJvbGluZSJ9LHo9e0s6ImdyaWRsaW5lIixMOiJwYXRoIn0sRD17SzoibWlub3ItZ3JpZGxpbmUiLEw6InBhdGgifSxSPXtLOiJ0aWNrIixMOiJwYXRoIn0sRj17SzoidGljayIsTDoidGV4dCJ9LEI9e3dpZHRoOlsieCIsInIiLCJsIiwieGwiLCJ4ciJdLGhlaWdodDpbInkiLCJ0IiwiYiIsInl0IiwieWIiXSxyaWdodDpbInIiLCJ4ciJdLGxlZnQ6WyJsIiwieGwiXSx0b3A6WyJ0IiwieXQiXSxib3R0b206WyJiIiwieWIiXX0sTj10KCIuLi8uLi9jb25zdGFudHMvYWxpZ25tZW50Iiksaj1OLk1JRF9TSElGVCxVPU4uQ0FQX1NISUZULFY9Ti5MSU5FX1NQQUNJTkcsSD1OLk9QUE9TSVRFX1NJREUscT1lLmV4cG9ydHM9e307cS5zZXRDb252ZXJ0PXQoIi4vc2V0X2NvbnZlcnQiKTt2YXIgRz10KCIuL2F4aXNfYXV0b3R5cGUiKSxZPXQoIi4vYXhpc19pZHMiKSxXPVkuaWRTb3J0LFg9WS5pc0xpbmtlZDtxLmlkMm5hbWU9WS5pZDJuYW1lLHEubmFtZTJpZD1ZLm5hbWUyaWQscS5jbGVhbklkPVkuY2xlYW5JZCxxLmxpc3Q9WS5saXN0LHEubGlzdElkcz1ZLmxpc3RJZHMscS5nZXRGcm9tSWQ9WS5nZXRGcm9tSWQscS5nZXRGcm9tVHJhY2U9WS5nZXRGcm9tVHJhY2U7dmFyIFo9dCgiLi9hdXRvcmFuZ2UiKTtxLmdldEF1dG9SYW5nZT1aLmdldEF1dG9SYW5nZSxxLmZpbmRFeHRyZW1lcz1aLmZpbmRFeHRyZW1lcztmdW5jdGlvbiBKKHQpe3ZhciBlPTFlLTQqKHRbMV0tdFswXSk7cmV0dXJuW3RbMF0tZSx0WzFdK2VdfXEuY29lcmNlUmVmPWZ1bmN0aW9uKHQsZSxyLG4saSxhKXt2YXIgbz1uLmNoYXJBdChuLmxlbmd0aC0xKSxsPXIuX2Z1bGxMYXlvdXQuX3N1YnBsb3RzW28rImF4aXMiXSxjPW4rInJlZiIsdT17fTtyZXR1cm4gaXx8KGk9bFswXXx8KCJzdHJpbmciPT10eXBlb2YgYT9hOmFbMF0pKSxhfHwoYT1pKSxsPWwuY29uY2F0KGwubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdCsiIGRvbWFpbiJ9KSkpLHVbY109e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpsLmNvbmNhdChhPyJzdHJpbmciPT10eXBlb2YgYT9bYV06YTpbXSksZGZsdDppfSxzLmNvZXJjZSh0LGUsdSxjKX0scS5nZXRSZWZUeXBlPWZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDA9PT10P3Q6InBhcGVyIj09PXQ/InBhcGVyIjoicGl4ZWwiPT09dD8icGl4ZWwiOi8oIGRvbWFpbikkLy50ZXN0KHQpPyJkb21haW4iOiJyYW5nZSJ9LHEuY29lcmNlUG9zaXRpb249ZnVuY3Rpb24odCxlLHIsbixpLGEpe3ZhciBvLGw7aWYoInJhbmdlIiE9PXEuZ2V0UmVmVHlwZShuKSlvPXMuZW5zdXJlTnVtYmVyLGw9cihpLGEpO2Vsc2V7dmFyIGM9cS5nZXRGcm9tSWQoZSxuKTtsPXIoaSxhPWMuZnJhY3Rpb24ycihhKSksbz1jLmNsZWFuUG9zfXRbaV09byhsKX0scS5jbGVhblBvc2l0aW9uPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4oInBhcGVyIj09PXJ8fCJwaXhlbCI9PT1yP3MuZW5zdXJlTnVtYmVyOnEuZ2V0RnJvbUlkKGUscikuY2xlYW5Qb3MpKHQpfSxxLnJlZHJhd0NvbXBvbmVudHM9ZnVuY3Rpb24odCxlKXtlPWV8fHEubGlzdElkcyh0KTt2YXIgcj10Ll9mdWxsTGF5b3V0O2Z1bmN0aW9uIG4obixpLGEscyl7Zm9yKHZhciBsPW8uZ2V0Q29tcG9uZW50TWV0aG9kKG4saSksYz17fSx1PTA7dTxlLmxlbmd0aDt1KyspZm9yKHZhciBmPXJbcS5pZDJuYW1lKGVbdV0pXVthXSxoPTA7aDxmLmxlbmd0aDtoKyspe3ZhciBwPWZbaF07aWYoIWNbcF0mJihsKHQscCksY1twXT0xLHMpKXJldHVybn19bigiYW5ub3RhdGlvbnMiLCJkcmF3T25lIiwiX2FubkluZGljZXMiKSxuKCJzaGFwZXMiLCJkcmF3T25lIiwiX3NoYXBlSW5kaWNlcyIpLG4oImltYWdlcyIsImRyYXciLCJfaW1nSW5kaWNlcyIsITApLG4oInNlbGVjdGlvbnMiLCJkcmF3T25lIiwiX3NlbGVjdGlvbkluZGljZXMiKX07dmFyIEs9cS5nZXREYXRhQ29udmVyc2lvbnM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGksYT0ieCI9PT1yfHwieSI9PT1yfHwieiI9PT1yP3I6bjtpZihBcnJheS5pc0FycmF5KGEpKXtpZihpPXt0eXBlOkcobix2b2lkIDAse2F1dG90eXBlbnVtYmVyczp0Ll9mdWxsTGF5b3V0LmF1dG90eXBlbnVtYmVyc30pLF9jYXRlZ29yaWVzOltdfSxxLnNldENvbnZlcnQoaSksImNhdGVnb3J5Ij09PWkudHlwZSlmb3IodmFyIG89MDtvPG4ubGVuZ3RoO28rKylpLmQyYyhuW29dKX1lbHNlIGk9cS5nZXRGcm9tVHJhY2UodCxlLGEpO3JldHVybiBpP3tkMmM6aS5kMmMsYzJkOmkuYzJkfToiaWRzIj09PWE/e2QyYzokLGMyZDokfTp7ZDJjOlEsYzJkOlF9fTtmdW5jdGlvbiBRKHQpe3JldHVybit0fWZ1bmN0aW9uICQodCl7cmV0dXJuIFN0cmluZyh0KX1mdW5jdGlvbiB0dCh0LGUpe3JldHVybiBNYXRoLmFicygodC9lKy41KSUxLS41KTwuMDAxfWZ1bmN0aW9uIGV0KHQsZSl7cmV0dXJuIE1hdGguYWJzKHQvZS0xKTwuMDAxfWZ1bmN0aW9uIHJ0KHQpe3JldHVybit0LnN1YnN0cmluZygxKX1mdW5jdGlvbiBudCh0KXt2YXIgZT1KKHMuc2ltcGxlTWFwKHQucmFuZ2UsdC5yMmwpKSxyPU1hdGgubWluKGVbMF0sZVsxXSksbj1NYXRoLm1heChlWzBdLGVbMV0pLGk9ImNhdGVnb3J5Ij09PXQudHlwZT90LmQybF9ub2FkZDp0LmQybDsibG9nIj09PXQudHlwZSYmIkwiIT09U3RyaW5nKHQuZHRpY2spLmNoYXJBdCgwKSYmKHQuZHRpY2s9IkwiK01hdGgucG93KDEwLE1hdGguZmxvb3IoTWF0aC5taW4odC5yYW5nZVswXSx0LnJhbmdlWzFdKSktMSkpO2Zvcih2YXIgYT1bXSxvPTA7bzw9MTtvKyspaWYoIW98fHQubWlub3Ipe3ZhciBsPW8/dC5taW5vci50aWNrdmFsczp0LnRpY2t2YWxzLGM9bz9bXTp0LnRpY2t0ZXh0O2lmKGwpe0FycmF5LmlzQXJyYXkoYyl8fChjPVtdKTtmb3IodmFyIHU9MDt1PGwubGVuZ3RoO3UrKyl7dmFyIGY9aShsW3VdKTtpZihmPnImJmY8bil7dmFyIGg9dm9pZCAwPT09Y1t1XT9xLnRpY2tUZXh0KHQsZik6cHQodCxmLFN0cmluZyhjW3VdKSk7byYmKGgubWlub3I9ITAsaC50ZXh0PSIiKSxhLnB1c2goaCl9fX19cmV0dXJuIHQucmFuZ2VicmVha3MmJihhPWEuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gdC5tYXNrQnJlYWtzKGUueCkhPT1JfSkpKSxhfXEuZ2V0RGF0YVRvQ29vcmRGdW5jPWZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiBLKHQsZSxyLG4pLmQyY30scS5jb3VudGVyTGV0dGVyPWZ1bmN0aW9uKHQpe3ZhciBlPXQuY2hhckF0KDApO3JldHVybiJ4Ij09PWU/InkiOiJ5Ij09PWU/IngiOnZvaWQgMH0scS5taW5EdGljaz1mdW5jdGlvbih0LGUscixuKXstMT09PVsibG9nIiwiY2F0ZWdvcnkiLCJtdWx0aWNhdGVnb3J5Il0uaW5kZXhPZih0LnR5cGUpJiZuP3ZvaWQgMD09PXQuX21pbkR0aWNrPyh0Ll9taW5EdGljaz1lLHQuX2ZvcmNlVGljazA9cik6dC5fbWluRHRpY2smJigodC5fbWluRHRpY2svZSsxZS02KSUxPDJlLTYmJigoci10Ll9mb3JjZVRpY2swKS9lJTErMS4wMDAwMDEpJTE8MmUtNj8odC5fbWluRHRpY2s9ZSx0Ll9mb3JjZVRpY2swPXIpOigoZS90Ll9taW5EdGljaysxZS02KSUxPjJlLTZ8fCgoci10Ll9mb3JjZVRpY2swKS90Ll9taW5EdGljayUxKzEuMDAwMDAxKSUxPjJlLTYpJiYodC5fbWluRHRpY2s9MCkpOnQuX21pbkR0aWNrPTB9LHEuc2F2ZVJhbmdlSW5pdGlhbD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1xLmxpc3QodCwiIiwhMCksbj0hMSxpPTA7aTxyLmxlbmd0aDtpKyspe3ZhciBhPXJbaV0sbz12b2lkIDA9PT1hLl9yYW5nZUluaXRpYWwscz1vfHwhKGEucmFuZ2VbMF09PT1hLl9yYW5nZUluaXRpYWxbMF0mJmEucmFuZ2VbMV09PT1hLl9yYW5nZUluaXRpYWxbMV0pOyhvJiYhMT09PWEuYXV0b3JhbmdlfHxlJiZzKSYmKGEuX3JhbmdlSW5pdGlhbD1hLnJhbmdlLnNsaWNlKCksbj0hMCl9cmV0dXJuIG59LHEuc2F2ZVNob3dTcGlrZUluaXRpYWw9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9cS5saXN0KHQsIiIsITApLG49ITEsaT0ib24iLGE9MDthPHIubGVuZ3RoO2ErKyl7dmFyIG89clthXSxzPXZvaWQgMD09PW8uX3Nob3dTcGlrZUluaXRpYWwsbD1zfHwhKG8uc2hvd3NwaWtlcz09PW8uX3Nob3dzcGlrZXMpOyhzfHxlJiZsKSYmKG8uX3Nob3dTcGlrZUluaXRpYWw9by5zaG93c3Bpa2VzLG49ITApLCJvbiIhPT1pfHxvLnNob3dzcGlrZXN8fChpPSJvZmYiKX1yZXR1cm4gdC5fZnVsbExheW91dC5fY2FydGVzaWFuU3Bpa2VzRW5hYmxlZD1pLG59LHEuYXV0b0Jpbj1mdW5jdGlvbih0LGUscixuLGEsbyl7dmFyIGwsYz1zLmFnZ051bXMoTWF0aC5taW4sbnVsbCx0KSx1PXMuYWdnTnVtcyhNYXRoLm1heCxudWxsLHQpO2lmKCJjYXRlZ29yeSI9PT1lLnR5cGV8fCJtdWx0aWNhdGVnb3J5Ij09PWUudHlwZSlyZXR1cm57c3RhcnQ6Yy0uNSxlbmQ6dSsuNSxzaXplOk1hdGgubWF4KDEsTWF0aC5yb3VuZChvKXx8MSksX2RhdGFTcGFuOnUtY307aWYoYXx8KGE9ZS5jYWxlbmRhciksbD0ibG9nIj09PWUudHlwZT97dHlwZToibGluZWFyIixyYW5nZTpbYyx1XX06e3R5cGU6ZS50eXBlLHJhbmdlOnMuc2ltcGxlTWFwKFtjLHVdLGUuYzJyLDAsYSksY2FsZW5kYXI6YX0scS5zZXRDb252ZXJ0KGwpLG89byYmZC5kdGljayhvLGwudHlwZSkpbC5kdGljaz1vLGwudGljazA9ZC50aWNrMCh2b2lkIDAsbC50eXBlLGEpO2Vsc2V7dmFyIGY7aWYocilmPSh1LWMpL3I7ZWxzZXt2YXIgaD1zLmRpc3RpbmN0VmFscyh0KSxwPU1hdGgucG93KDEwLE1hdGguZmxvb3IoTWF0aC5sb2coaC5taW5EaWZmKS9NYXRoLkxOMTApKSxtPXAqcy5yb3VuZFVwKGgubWluRGlmZi9wLFsuOSwxLjksNC45LDkuOV0sITApO2Y9TWF0aC5tYXgobSwyKnMuc3RkZXYodCkvTWF0aC5wb3codC5sZW5ndGgsbj8uMjU6LjQpKSxpKGYpfHwoZj0xKX1xLmF1dG9UaWNrcyhsLGYpfXZhciBnLHY9bC5kdGljayx5PXEudGlja0luY3JlbWVudChxLnRpY2tGaXJzdChsKSx2LCJyZXZlcnNlIixhKTtpZigibnVtYmVyIj09dHlwZW9mIHYpZz0oeT1mdW5jdGlvbih0LGUscixuLGEpe3ZhciBvPTAscz0wLGw9MCxjPTA7ZnVuY3Rpb24gdShlKXtyZXR1cm4oMSsxMDAqKGUtdCkvci5kdGljayklMTAwPDJ9Zm9yKHZhciBmPTA7ZjxlLmxlbmd0aDtmKyspZVtmXSUxPT0wP2wrKzppKGVbZl0pfHxjKyssdShlW2ZdKSYmbysrLHUoZVtmXStyLmR0aWNrLzIpJiZzKys7dmFyIGg9ZS5sZW5ndGgtYztpZihsPT09aCYmImRhdGUiIT09ci50eXBlKXIuZHRpY2s8MT90PW4tLjUqci5kdGljazoodC09LjUpK3IuZHRpY2s8biYmKHQrPXIuZHRpY2spO2Vsc2UgaWYoczwuMSpoJiYobz4uMypofHx1KG4pfHx1KGEpKSl7dmFyIHA9ci5kdGljay8yO3QrPXQrcDxuP3A6LXB9cmV0dXJuIHR9KHksdCxsLGMsdSkpKygxK01hdGguZmxvb3IoKHUteSkvdikpKnY7ZWxzZSBmb3IoIk0iPT09bC5kdGljay5jaGFyQXQoMCkmJih5PWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGE9cy5maW5kRXhhY3REYXRlcyhlLGkpO2lmKGEuZXhhY3REYXlzPi44KXt2YXIgbz1OdW1iZXIoci5zdWJzdHIoMSkpO2EuZXhhY3RZZWFycz4uOCYmbyUxMj09MD90PXEudGlja0luY3JlbWVudCh0LCJNNiIsInJldmVyc2UiKSsxLjUqTTphLmV4YWN0TW9udGhzPi44P3Q9cS50aWNrSW5jcmVtZW50KHQsIk0xIiwicmV2ZXJzZSIpKzE1LjUqTTp0LT1TO3ZhciBsPXEudGlja0luY3JlbWVudCh0LHIpO2lmKGw8PW4pcmV0dXJuIGx9cmV0dXJuIHR9KHksdCx2LGMsYSkpLGc9eSwwO2c8PXU7KWc9cS50aWNrSW5jcmVtZW50KGcsdiwhMSxhKTtyZXR1cm57c3RhcnQ6ZS5jMnIoeSwwLGEpLGVuZDplLmMycihnLDAsYSksc2l6ZTp2LF9kYXRhU3Bhbjp1LWN9fSxxLnByZXBNaW5vclRpY2tzPWZ1bmN0aW9uKHQsZSxyKXtpZighZS5taW5vci5kdGljayl7ZGVsZXRlIHQuZHRpY2s7dmFyIG4sYT1lLmR0aWNrJiZpKGUuX3RtaW4pO2lmKGEpe3ZhciBvPXEudGlja0luY3JlbWVudChlLl90bWluLGUuZHRpY2ssITApO249W2UuX3RtaW4sLjk5Km8rLjAxKmUuX3RtaW5dfWVsc2V7dmFyIGw9cy5zaW1wbGVNYXAoZS5yYW5nZSxlLnIybCk7bj1bbFswXSwuOCpsWzBdKy4yKmxbMV1dfWlmKHQucmFuZ2U9cy5zaW1wbGVNYXAobixlLmwyciksdC5faXNNaW5vcj0hMCxxLnByZXBUaWNrcyh0LHIpLGEpe3ZhciBjPWkoZS5kdGljayksdT1pKHQuZHRpY2spLGY9Yz9lLmR0aWNrOitlLmR0aWNrLnN1YnN0cmluZygxKSxoPXU/dC5kdGljazordC5kdGljay5zdWJzdHJpbmcoMSk7YyYmdT90dChmLGgpP2Y9PT0yKkEmJmg9PT0yKk0mJih0LmR0aWNrPUEpOmY9PT0yKkEmJmg9PT0zKk0/dC5kdGljaz1BOmYhPT1BfHwoZS5faW5wdXQubWlub3J8fHt9KS5udGlja3M/ZXQoZi9oLDIuNSk/dC5kdGljaz1mLzI6dC5kdGljaz1mOnQuZHRpY2s9TToiTSI9PT1TdHJpbmcoZS5kdGljaykuY2hhckF0KDApP3U/dC5kdGljaz0iTTEiOnR0KGYsaCk/Zj49MTImJjI9PT1oJiYodC5kdGljaz0iTTMiKTp0LmR0aWNrPWUuZHRpY2s6IkwiPT09U3RyaW5nKHQuZHRpY2spLmNoYXJBdCgwKT8iTCI9PT1TdHJpbmcoZS5kdGljaykuY2hhckF0KDApP3R0KGYsaCl8fCh0LmR0aWNrPWV0KGYvaCwyLjUpP2UuZHRpY2svMjplLmR0aWNrKTp0LmR0aWNrPSJEMSI6IkQyIj09PXQuZHRpY2smJitlLmR0aWNrPjEmJih0LmR0aWNrPTEpfXQucmFuZ2U9ZS5yYW5nZX12b2lkIDA9PT1lLm1pbm9yLl90aWNrMEluaXQmJih0LnRpY2swPWUudGljazApfSxxLnByZXBUaWNrcz1mdW5jdGlvbih0LGUpe3ZhciByPXMuc2ltcGxlTWFwKHQucmFuZ2UsdC5yMmwsdm9pZCAwLHZvaWQgMCxlKTtpZigiYXV0byI9PT10LnRpY2ttb2RlfHwhdC5kdGljayl7dmFyIG4sYT10Lm50aWNrczthfHwoImNhdGVnb3J5Ij09PXQudHlwZXx8Im11bHRpY2F0ZWdvcnkiPT09dC50eXBlPyhuPXQudGlja2ZvbnQ/cy5iaWdGb250KHQudGlja2ZvbnQuc2l6ZXx8MTIpOjE1LGE9dC5fbGVuZ3RoL24pOihuPSJ5Ij09PXQuX2lkLmNoYXJBdCgwKT80MDo4MCxhPXMuY29uc3RyYWluKHQuX2xlbmd0aC9uLDQsOSkrMSksInJhZGlhbGF4aXMiPT09dC5fbmFtZSYmKGEqPTIpKSx0Lm1pbm9yJiYiYXJyYXkiIT09dC5taW5vci50aWNrbW9kZXx8ImFycmF5Ij09PXQudGlja21vZGUmJihhKj0xMDApLHQuX3JvdWdoRFRpY2s9TWF0aC5hYnMoclsxXS1yWzBdKS9hLHEuYXV0b1RpY2tzKHQsdC5fcm91Z2hEVGljayksdC5fbWluRHRpY2s+MCYmdC5kdGljazwyKnQuX21pbkR0aWNrJiYodC5kdGljaz10Ll9taW5EdGljayx0LnRpY2swPXQubDJyKHQuX2ZvcmNlVGljazApKX0icGVyaW9kIj09PXQudGlja2xhYmVsbW9kZSYmZnVuY3Rpb24odCl7dmFyIGU7ZnVuY3Rpb24gcigpe3JldHVybiEoaSh0LmR0aWNrKXx8Ik0iIT09dC5kdGljay5jaGFyQXQoMCkpfXZhciBuPXIoKSxhPXEuZ2V0VGlja0Zvcm1hdCh0KTtpZihhKXt2YXIgbz10Ll9kdGlja0luaXQhPT10LmR0aWNrOy8lW2ZMUXNTTVhdLy50ZXN0KGEpfHwoLyVbSEldLy50ZXN0KGEpPyhlPUUsbyYmIW4mJnQuZHRpY2s8RSYmKHQuZHRpY2s9RSkpOi8lcC8udGVzdChhKT8oZT1TLG8mJiFuJiZ0LmR0aWNrPFMmJih0LmR0aWNrPVMpKTovJVtBYWRlanV3eF0vLnRlc3QoYSk/KGU9TSxvJiYhbiYmdC5kdGljazxNJiYodC5kdGljaz1NKSk6LyVbVVZXXS8udGVzdChhKT8oZT1BLG8mJiFuJiZ0LmR0aWNrPEEmJih0LmR0aWNrPUEpKTovJVtCYm1dLy50ZXN0KGEpPyhlPVQsbyYmKG4/cnQodC5kdGljayk8MTp0LmR0aWNrPGspJiYodC5kdGljaz0iTTEiKSk6LyVbcV0vLnRlc3QoYSk/KGU9YixvJiYobj9ydCh0LmR0aWNrKTwzOnQuZHRpY2s8XykmJih0LmR0aWNrPSJNMyIpKTovJVtZeV0vLnRlc3QoYSkmJihlPXYsbyYmKG4/cnQodC5kdGljayk8MTI6dC5kdGljazx5KSYmKHQuZHRpY2s9Ik0xMiIpKSl9KG49cigpKSYmdC50aWNrMD09PXQuX2Rvd1RpY2swJiYodC50aWNrMD10Ll9yYXdUaWNrMCk7dC5fZGVmaW5lZERlbHRhPWV9KHQpLHQudGljazB8fCh0LnRpY2swPSJkYXRlIj09PXQudHlwZT8iMjAwMC0wMS0wMSI6MCksImRhdGUiPT09dC50eXBlJiZ0LmR0aWNrPC4xJiYodC5kdGljaz0uMSksaHQodCl9LHEuY2FsY1RpY2tzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByLG4sYT10LnR5cGUsbz10LmNhbGVuZGFyLGw9dC50aWNrbGFiZWxzdGVwLGM9InBlcmlvZCI9PT10LnRpY2tsYWJlbG1vZGUsdT1zLnNpbXBsZU1hcCh0LnJhbmdlLHQucjJsLHZvaWQgMCx2b2lkIDAsZSksZj11WzFdPHVbMF0saD1NYXRoLm1pbih1WzBdLHVbMV0pLHA9TWF0aC5tYXgodVswXSx1WzFdKSxkPU1hdGgubWF4KDFlMyx0Ll9sZW5ndGh8fDApLG09W10sTD1bXSxDPVtdLFA9W10sTz10Lm1pbm9yJiYodC5taW5vci50aWNrc3x8dC5taW5vci5zaG93Z3JpZCksej0xO3o+PShPPzA6MSk7ei0tKXt2YXIgRD0hejt6Pyh0Ll9kdGlja0luaXQ9dC5kdGljayx0Ll90aWNrMEluaXQ9dC50aWNrMCk6KHQubWlub3IuX2R0aWNrSW5pdD10Lm1pbm9yLmR0aWNrLHQubWlub3IuX3RpY2swSW5pdD10Lm1pbm9yLnRpY2swKTt2YXIgUj16P3Q6cy5leHRlbmRGbGF0KHt9LHQsdC5taW5vcik7aWYoRD9xLnByZXBNaW5vclRpY2tzKFIsdCxlKTpxLnByZXBUaWNrcyhSLGUpLCJhcnJheSIhPT1SLnRpY2ttb2RlKXt2YXIgRj1KKHUpLEI9RlswXSxOPUZbMV0saj1pKFIuZHRpY2spLFU9ImxvZyI9PT1hJiYhKGp8fCJMIj09PVIuZHRpY2suY2hhckF0KDApKSxWPXEudGlja0ZpcnN0KFIsZSk7aWYoeil7aWYodC5fdG1pbj1WLFY8QiE9PWYpYnJlYWs7ImNhdGVnb3J5IiE9PWEmJiJtdWx0aWNhdGVnb3J5IiE9PWF8fChOPWY/TWF0aC5tYXgoLS41LE4pOk1hdGgubWluKHQuX2NhdGVnb3JpZXMubGVuZ3RoLS41LE4pKX12YXIgSCxHLFk9bnVsbCxXPVY7aWYoeilqP0c9dC5kdGljazoiZGF0ZSI9PT1hPyJzdHJpbmciPT10eXBlb2YgdC5kdGljayYmIk0iPT09dC5kdGljay5jaGFyQXQoMCkmJihHPVQqdC5kdGljay5zdWJzdHJpbmcoMSkpOkc9dC5fcm91Z2hEVGljayxIPU1hdGgucm91bmQoKHQucjJsKFcpLXQucjJsKHQudGljazApKS9HKS0xO3ZhciBYPVIuZHRpY2s7Zm9yKFIucmFuZ2VicmVha3MmJlIuX3RpY2swSW5pdCE9PVIudGljazAmJihXPUl0KFcsdCksZnx8KFc9cS50aWNrSW5jcmVtZW50KFcsWCwhZixvKSkpLHomJmMmJihXPXEudGlja0luY3JlbWVudChXLFgsIWYsbyksSC0tKTtmP1c+PU46Vzw9TjtXPXEudGlja0luY3JlbWVudChXLFgsZixvKSl7aWYoeiYmSCsrLFIucmFuZ2VicmVha3MmJiFmKXtpZihXPEIpY29udGludWU7aWYoUi5tYXNrQnJlYWtzKFcpPT09SSYmSXQoVyxSKT49cClicmVha31pZihDLmxlbmd0aD5kfHxXPT09WSlicmVhaztZPVc7dmFyIFo9e3ZhbHVlOld9O3o/KFUmJlchPT0oMHxXKSYmKFouc2ltcGxlTGFiZWw9ITApLGw+MSYmSCVsJiYoWi5za2lwTGFiZWw9ITApLEMucHVzaChaKSk6KFoubWlub3I9ITAsUC5wdXNoKFopKX19ZWxzZSB6PyhDPVtdLG09bnQodCkpOihQPVtdLEw9bnQodCkpfWlmKE8mJiEoImluc2lkZSI9PT10Lm1pbm9yLnRpY2tzJiYib3V0c2lkZSI9PT10LnRpY2tzfHwib3V0c2lkZSI9PT10Lm1pbm9yLnRpY2tzJiYiaW5zaWRlIj09PXQudGlja3MpKXtmb3IodmFyIEs9Qy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnZhbHVlfSkpLFE9W10sJD0wOyQ8UC5sZW5ndGg7JCsrKXt2YXIgdHQ9UFskXSxldD10dC52YWx1ZTtpZigtMT09PUsuaW5kZXhPZihldCkpe2Zvcih2YXIgcnQ9ITEsaXQ9MDshcnQmJml0PEMubGVuZ3RoO2l0KyspMWU3K0NbaXRdLnZhbHVlPT09MWU3K2V0JiYocnQ9ITApO3J0fHxRLnB1c2godHQpfX1QPVF9aWYoYyYmZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dLnZhbHVlLGE9bixvPW4rMTtuPHQubGVuZ3RoLTE/KGE9bixvPW4rMSk6bj4wPyhhPW4tMSxvPW4pOihhPW4sbz1uKTt2YXIgcyxsPXRbYV0udmFsdWUsYz10W29dLnZhbHVlLHU9TWF0aC5hYnMoYy1sKSxmPXJ8fHUsaD0wO2Y+PXk/aD11Pj15JiZ1PD1nP3U6djpyPT09YiYmZj49Xz9oPXU+PV8mJnU8PXg/dTpiOmY+PWs/aD11Pj1rJiZ1PD13P3U6VDpyPT09QSYmZj49QT9oPUE6Zj49TT9oPU06cj09PVMmJmY+PVM/aD1TOnI9PT1FJiZmPj1FJiYoaD1FKSxoPj11JiYoaD11LHM9ITApO3ZhciBwPWkraDtpZihlLnJhbmdlYnJlYWtzJiZoPjApe2Zvcih2YXIgZD0wLG09MDttPDg0O20rKyl7dmFyIEw9KG0rLjUpLzg0O2UubWFza0JyZWFrcyhpKigxLUwpK0wqcCkhPT1JJiZkKyt9KGgqPWQvODQpfHwodFtuXS5kcm9wPSEwKSxzJiZ1PkEmJihoPXUpfShoPjB8fDA9PT1uKSYmKHRbbl0ucGVyaW9kWD1pK2gvMil9fShDLHQsdC5fZGVmaW5lZERlbHRhKSx0LnJhbmdlYnJlYWtzKXt2YXIgYXQ9InkiPT09dC5faWQuY2hhckF0KDApLG90PTE7ImF1dG8iPT09dC50aWNrbW9kZSYmKG90PXQudGlja2ZvbnQ/dC50aWNrZm9udC5zaXplOjEyKTt2YXIgc3Q9TmFOO2ZvcihyPUMubGVuZ3RoLTE7cj4tMTtyLS0paWYoQ1tyXS5kcm9wKUMuc3BsaWNlKHIsMSk7ZWxzZXtDW3JdLnZhbHVlPUl0KENbcl0udmFsdWUsdCk7dmFyIGx0PXQuYzJwKENbcl0udmFsdWUpOyhhdD9zdD5sdC1vdDpzdDxsdCtvdCk/Qy5zcGxpY2UoZj9yKzE6ciwxKTpzdD1sdH19UHQodCkmJjM2MD09PU1hdGguYWJzKHVbMV0tdVswXSkmJkMucG9wKCksdC5fdG1heD0oQ1tDLmxlbmd0aC0xXXx8e30pLnZhbHVlLHQuX3ByZXZEYXRlSGVhZD0iIix0Ll9pbkNhbGNUaWNrcz0hMDt2YXIgY3QsdXQsZnQ9ZnVuY3Rpb24oZSl7ZS50ZXh0PSIiLHQuX3ByZXZEYXRlSGVhZD1ufTtmb3IoQz1DLmNvbmNhdChQKSxyPTA7cjxDLmxlbmd0aDtyKyspe3ZhciBodD1DW3JdLm1pbm9yLHB0PUNbcl0udmFsdWU7aHQ/TC5wdXNoKHt4OnB0LG1pbm9yOiEwfSk6KG49dC5fcHJldkRhdGVIZWFkLGN0PXEudGlja1RleHQodCxwdCwhMSxDW3JdLnNpbXBsZUxhYmVsKSx2b2lkIDAhPT0odXQ9Q1tyXS5wZXJpb2RYKSYmKGN0LnBlcmlvZFg9dXQsKHV0PnB8fHV0PGgpJiYodXQ+cCYmKGN0LnBlcmlvZFg9cCksdXQ8aCYmKGN0LnBlcmlvZFg9aCksZnQoY3QpKSksQ1tyXS5za2lwTGFiZWwmJmZ0KGN0KSxtLnB1c2goY3QpKX1yZXR1cm4gbT1tLmNvbmNhdChMKSx0Ll9pbkNhbGNUaWNrcz0hMSxjJiZtLmxlbmd0aCYmKG1bMF0ubm9UaWNrPSEwKSxtfTt2YXIgaXQ9WzIsNSwxMF0sYXQ9WzEsMiwzLDYsMTJdLG90PVsxLDIsNSwxMCwxNSwzMF0sc3Q9WzEsMiwzLDcsMTRdLGx0PVstLjA0NiwwLC4zMDEsLjQ3NywuNjAyLC42OTksLjc3OCwuODQ1LC45MDMsLjk1NCwxXSxjdD1bLS4zMDEsMCwuMzAxLC42OTksMV0sdXQ9WzE1LDMwLDQ1LDkwLDE4MF07ZnVuY3Rpb24gZnQodCxlLHIpe3JldHVybiBlKnMucm91bmRVcCh0L2Uscil9ZnVuY3Rpb24gaHQodCl7dmFyIGU9dC5kdGljaztpZih0Ll90aWNrZXhwb25lbnQ9MCxpKGUpfHwic3RyaW5nIj09dHlwZW9mIGV8fChlPTEpLCJjYXRlZ29yeSIhPT10LnR5cGUmJiJtdWx0aWNhdGVnb3J5IiE9PXQudHlwZXx8KHQuX3RpY2tyb3VuZD1udWxsKSwiZGF0ZSI9PT10LnR5cGUpe3ZhciByPXQucjJsKHQudGljazApLG49dC5sMnIocikucmVwbGFjZSgvKF4tfGkpL2csIiIpLGE9bi5sZW5ndGg7aWYoIk0iPT09U3RyaW5nKGUpLmNoYXJBdCgwKSlhPjEwfHwiMDEtMDEiIT09bi5zdWJzdHIoNSk/dC5fdGlja3JvdW5kPSJkIjp0Ll90aWNrcm91bmQ9K2Uuc3Vic3RyKDEpJTEyPT0wPyJ5IjoibSI7ZWxzZSBpZihlPj1NJiZhPD0xMHx8ZT49MTUqTSl0Ll90aWNrcm91bmQ9ImQiO2Vsc2UgaWYoZT49TCYmYTw9MTZ8fGU+PUUpdC5fdGlja3JvdW5kPSJNIjtlbHNlIGlmKGU+PUMmJmE8PTE5fHxlPj1MKXQuX3RpY2tyb3VuZD0iUyI7ZWxzZXt2YXIgbz10LmwycihyK2UpLnJlcGxhY2UoL14tLywiIikubGVuZ3RoO3QuX3RpY2tyb3VuZD1NYXRoLm1heChhLG8pLTIwLHQuX3RpY2tyb3VuZDwwJiYodC5fdGlja3JvdW5kPTQpfX1lbHNlIGlmKGkoZSl8fCJMIj09PWUuY2hhckF0KDApKXt2YXIgcz10LnJhbmdlLm1hcCh0LnIyZHx8TnVtYmVyKTtpKGUpfHwoZT1OdW1iZXIoZS5zdWJzdHIoMSkpKSx0Ll90aWNrcm91bmQ9Mi1NYXRoLmZsb29yKE1hdGgubG9nKGUpL01hdGguTE4xMCsuMDEpO3ZhciBsPU1hdGgubWF4KE1hdGguYWJzKHNbMF0pLE1hdGguYWJzKHNbMV0pKSxjPU1hdGguZmxvb3IoTWF0aC5sb2cobCkvTWF0aC5MTjEwKy4wMSksdT12b2lkIDA9PT10Lm1pbmV4cG9uZW50PzM6dC5taW5leHBvbmVudDtNYXRoLmFicyhjKT51JiYobXQodC5leHBvbmVudGZvcm1hdCkmJiFndChjKT90Ll90aWNrZXhwb25lbnQ9MypNYXRoLnJvdW5kKChjLTEpLzMpOnQuX3RpY2tleHBvbmVudD1jKX1lbHNlIHQuX3RpY2tyb3VuZD1udWxsfWZ1bmN0aW9uIHB0KHQsZSxyKXt2YXIgbj10LnRpY2tmb250fHx7fTtyZXR1cm57eDplLGR4OjAsZHk6MCx0ZXh0OnJ8fCIiLGZvbnRTaXplOm4uc2l6ZSxmb250Om4uZmFtaWx5LGZvbnRDb2xvcjpuLmNvbG9yfX1xLmF1dG9UaWNrcz1mdW5jdGlvbih0LGUscil7dmFyIG47ZnVuY3Rpb24gYSh0KXtyZXR1cm4gTWF0aC5wb3codCxNYXRoLmZsb29yKE1hdGgubG9nKGUpL01hdGguTE4xMCkpfWlmKCJkYXRlIj09PXQudHlwZSl7dC50aWNrMD1zLmRhdGVUaWNrMCh0LmNhbGVuZGFyLDApO3ZhciBvPTIqZTtpZihvPnYpZS89dixuPWEoMTApLHQuZHRpY2s9Ik0iKzEyKmZ0KGUsbixpdCk7ZWxzZSBpZihvPlQpZS89VCx0LmR0aWNrPSJNIitmdChlLDEsYXQpO2Vsc2UgaWYobz5NKXtpZih0LmR0aWNrPWZ0KGUsTSx0Ll9oYXNEYXlPZldlZWtCcmVha3M/WzEsMiw3LDE0XTpzdCksIXIpe3ZhciBsPXEuZ2V0VGlja0Zvcm1hdCh0KSxjPSJwZXJpb2QiPT09dC50aWNrbGFiZWxtb2RlO2MmJih0Ll9yYXdUaWNrMD10LnRpY2swKSwvJVt1VlddLy50ZXN0KGwpP3QudGljazA9cy5kYXRlVGljazAodC5jYWxlbmRhciwyKTp0LnRpY2swPXMuZGF0ZVRpY2swKHQuY2FsZW5kYXIsMSksYyYmKHQuX2Rvd1RpY2swPXQudGljazApfX1lbHNlIG8+RT90LmR0aWNrPWZ0KGUsRSxhdCk6bz5MP3QuZHRpY2s9ZnQoZSxMLG90KTpvPkM/dC5kdGljaz1mdChlLEMsb3QpOihuPWEoMTApLHQuZHRpY2s9ZnQoZSxuLGl0KSl9ZWxzZSBpZigibG9nIj09PXQudHlwZSl7dC50aWNrMD0wO3ZhciB1PXMuc2ltcGxlTWFwKHQucmFuZ2UsdC5yMmwpO2lmKHQuX2lzTWlub3ImJihlKj0xLjUpLGU+LjcpdC5kdGljaz1NYXRoLmNlaWwoZSk7ZWxzZSBpZihNYXRoLmFicyh1WzFdLXVbMF0pPDEpe3ZhciBmPTEuNSpNYXRoLmFicygodVsxXS11WzBdKS9lKTtlPU1hdGguYWJzKE1hdGgucG93KDEwLHVbMV0pLU1hdGgucG93KDEwLHVbMF0pKS9mLG49YSgxMCksdC5kdGljaz0iTCIrZnQoZSxuLGl0KX1lbHNlIHQuZHRpY2s9ZT4uMz8iRDIiOiJEMSJ9ZWxzZSJjYXRlZ29yeSI9PT10LnR5cGV8fCJtdWx0aWNhdGVnb3J5Ij09PXQudHlwZT8odC50aWNrMD0wLHQuZHRpY2s9TWF0aC5jZWlsKE1hdGgubWF4KGUsMSkpKTpQdCh0KT8odC50aWNrMD0wLG49MSx0LmR0aWNrPWZ0KGUsbix1dCkpOih0LnRpY2swPTAsbj1hKDEwKSx0LmR0aWNrPWZ0KGUsbixpdCkpO2lmKDA9PT10LmR0aWNrJiYodC5kdGljaz0xKSwhaSh0LmR0aWNrKSYmInN0cmluZyIhPXR5cGVvZiB0LmR0aWNrKXt2YXIgaD10LmR0aWNrO3Rocm93IHQuZHRpY2s9MSwiYXguZHRpY2sgZXJyb3I6ICIrU3RyaW5nKGgpfX0scS50aWNrSW5jcmVtZW50PWZ1bmN0aW9uKHQsZSxyLGEpe3ZhciBvPXI/LTE6MTtpZihpKGUpKXJldHVybiBzLmluY3JlbWVudCh0LG8qZSk7dmFyIGw9ZS5jaGFyQXQoMCksYz1vKk51bWJlcihlLnN1YnN0cigxKSk7aWYoIk0iPT09bClyZXR1cm4gcy5pbmNyZW1lbnRNb250aCh0LGMsYSk7aWYoIkwiPT09bClyZXR1cm4gTWF0aC5sb2coTWF0aC5wb3coMTAsdCkrYykvTWF0aC5MTjEwO2lmKCJEIj09PWwpe3ZhciB1PSJEMiI9PT1lP2N0Omx0LGY9dCsuMDEqbyxoPXMucm91bmRVcChzLm1vZChmLDEpLHUscik7cmV0dXJuIE1hdGguZmxvb3IoZikrTWF0aC5sb2cobi5yb3VuZChNYXRoLnBvdygxMCxoKSwxKSkvTWF0aC5MTjEwfXRocm93InVucmVjb2duaXplZCBkdGljayAiK1N0cmluZyhlKX0scS50aWNrRmlyc3Q9ZnVuY3Rpb24odCxlKXt2YXIgcj10LnIybHx8TnVtYmVyLGE9cy5zaW1wbGVNYXAodC5yYW5nZSxyLHZvaWQgMCx2b2lkIDAsZSksbz1hWzFdPGFbMF0sbD1vP01hdGguZmxvb3I6TWF0aC5jZWlsLGM9SihhKVswXSx1PXQuZHRpY2ssZj1yKHQudGljazApO2lmKGkodSkpe3ZhciBoPWwoKGMtZikvdSkqdStmO3JldHVybiJjYXRlZ29yeSIhPT10LnR5cGUmJiJtdWx0aWNhdGVnb3J5IiE9PXQudHlwZXx8KGg9cy5jb25zdHJhaW4oaCwwLHQuX2NhdGVnb3JpZXMubGVuZ3RoLTEpKSxofXZhciBwPXUuY2hhckF0KDApLGQ9TnVtYmVyKHUuc3Vic3RyKDEpKTtpZigiTSI9PT1wKXtmb3IodmFyIG0sZyx2LHk9MCx4PWY7eTwxMDspe2lmKCgobT1xLnRpY2tJbmNyZW1lbnQoeCx1LG8sdC5jYWxlbmRhcikpLWMpKih4LWMpPD0wKXJldHVybiBvP01hdGgubWluKHgsbSk6TWF0aC5tYXgoeCxtKTtnPShjLSh4K20pLzIpLyhtLXgpLHY9cCsoTWF0aC5hYnMoTWF0aC5yb3VuZChnKSl8fDEpKmQseD1xLnRpY2tJbmNyZW1lbnQoeCx2LGc8MD8hbzpvLHQuY2FsZW5kYXIpLHkrK31yZXR1cm4gcy5lcnJvcigidGlja0ZpcnN0IGRpZCBub3QgY29udmVyZ2UiLHQpLHh9aWYoIkwiPT09cClyZXR1cm4gTWF0aC5sb2cobCgoTWF0aC5wb3coMTAsYyktZikvZCkqZCtmKS9NYXRoLkxOMTA7aWYoIkQiPT09cCl7dmFyIGI9IkQyIj09PXU/Y3Q6bHQsXz1zLnJvdW5kVXAocy5tb2QoYywxKSxiLG8pO3JldHVybiBNYXRoLmZsb29yKGMpK01hdGgubG9nKG4ucm91bmQoTWF0aC5wb3coMTAsXyksMSkpL01hdGguTE4xMH10aHJvdyJ1bnJlY29nbml6ZWQgZHRpY2sgIitTdHJpbmcodSl9LHEudGlja1RleHQ9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGEsbz1wdCh0LGUpLGw9ImFycmF5Ij09PXQudGlja21vZGUsYz1yfHxsLHU9dC50eXBlLGY9ImNhdGVnb3J5Ij09PXU/dC5kMmxfbm9hZGQ6dC5kMmw7aWYobCYmQXJyYXkuaXNBcnJheSh0LnRpY2t0ZXh0KSl7dmFyIGg9cy5zaW1wbGVNYXAodC5yYW5nZSx0LnIybCkscD0oTWF0aC5hYnMoaFsxXS1oWzBdKS0odC5fbEJyZWFrc3x8MCkpLzFlNDtmb3IoYT0wO2E8dC50aWNrdGV4dC5sZW5ndGgmJiEoTWF0aC5hYnMoZS1mKHQudGlja3ZhbHNbYV0pKTxwKTthKyspO2lmKGE8dC50aWNrdGV4dC5sZW5ndGgpcmV0dXJuIG8udGV4dD1TdHJpbmcodC50aWNrdGV4dFthXSksb31mdW5jdGlvbiBkKG4pe2lmKHZvaWQgMD09PW4pcmV0dXJuITA7aWYocilyZXR1cm4ibm9uZSI9PT1uO3ZhciBpPXtmaXJzdDp0Ll90bWluLGxhc3Q6dC5fdG1heH1bbl07cmV0dXJuImFsbCIhPT1uJiZlIT09aX12YXIgbT1yPyJuZXZlciI6Im5vbmUiIT09dC5leHBvbmVudGZvcm1hdCYmZCh0LnNob3dleHBvbmVudCk/ImhpZGUiOiIiO2lmKCJkYXRlIj09PXU/ZnVuY3Rpb24odCxlLHIsbil7dmFyIGE9dC5fdGlja3JvdW5kLG89ciYmdC5ob3ZlcmZvcm1hdHx8cS5nZXRUaWNrRm9ybWF0KHQpO24mJihhPWkoYSk/NDp7eToibSIsbToiZCIsZDoiTSIsTToiUyIsUzo0fVthXSk7dmFyIGwsYz1zLmZvcm1hdERhdGUoZS54LG8sYSx0Ll9kYXRlRm9ybWF0LHQuY2FsZW5kYXIsdC5fZXh0cmFGb3JtYXQpLHU9Yy5pbmRleE9mKCJcbiIpOy0xIT09dSYmKGw9Yy5zdWJzdHIodSsxKSxjPWMuc3Vic3RyKDAsdSkpO24mJigiMDA6MDA6MDAiPT09Y3x8IjAwOjAwIj09PWM/KGM9bCxsPSIiKTo4PT09Yy5sZW5ndGgmJihjPWMucmVwbGFjZSgvOjAwJC8sIiIpKSk7aWYobClpZihyKSJkIj09PWE/Yys9IiwgIitsOmM9bCsoYz8iLCAiK2M6IiIpO2Vsc2UgaWYodC5faW5DYWxjVGlja3MmJnQuX3ByZXZEYXRlSGVhZD09PWwpe3ZhciBmPU90KHQpLGg9dC5fdHJ1ZVNpZGV8fHQuc2lkZTsoIWYmJiJ0b3AiPT09aHx8ZiYmImJvdHRvbSI9PT1oKSYmKGMrPSI8YnI+ICIpfWVsc2UgdC5fcHJldkRhdGVIZWFkPWwsYys9Ijxicj4iK2w7ZS50ZXh0PWN9KHQsbyxyLGMpOiJsb2ciPT09dT9mdW5jdGlvbih0LGUscixuLGEpe3ZhciBvPXQuZHRpY2ssbD1lLngsYz10LnRpY2tmb3JtYXQsdT0ic3RyaW5nIj09dHlwZW9mIG8mJm8uY2hhckF0KDApOyJuZXZlciI9PT1hJiYoYT0iIik7biYmIkwiIT09dSYmKG89IkwzIix1PSJMIik7aWYoY3x8IkwiPT09dSllLnRleHQ9dnQoTWF0aC5wb3coMTAsbCksdCxhLG4pO2Vsc2UgaWYoaShvKXx8IkQiPT09dSYmcy5tb2QobCsuMDEsMSk8LjEpe3ZhciBmPU1hdGgucm91bmQobCksaD1NYXRoLmFicyhmKSxwPXQuZXhwb25lbnRmb3JtYXQ7InBvd2VyIj09PXB8fG10KHApJiZndChmKT8oZS50ZXh0PTA9PT1mPzE6MT09PWY/IjEwIjoiMTA8c3VwPiIrKGY+MT8iIjpQKStoKyI8L3N1cD4iLGUuZm9udFNpemUqPTEuMjUpOigiZSI9PT1wfHwiRSI9PT1wKSYmaD4yP2UudGV4dD0iMSIrcCsoZj4wPyIrIjpQKStoOihlLnRleHQ9dnQoTWF0aC5wb3coMTAsbCksdCwiIiwiZmFrZWhvdmVyIiksIkQxIj09PW8mJiJ5Ij09PXQuX2lkLmNoYXJBdCgwKSYmKGUuZHktPWUuZm9udFNpemUvNikpfWVsc2V7aWYoIkQiIT09dSl0aHJvdyJ1bnJlY29nbml6ZWQgZHRpY2sgIitTdHJpbmcobyk7ZS50ZXh0PVN0cmluZyhNYXRoLnJvdW5kKE1hdGgucG93KDEwLHMubW9kKGwsMSkpKSksZS5mb250U2l6ZSo9Ljc1fWlmKCJEMSI9PT10LmR0aWNrKXt2YXIgZD1TdHJpbmcoZS50ZXh0KS5jaGFyQXQoMCk7IjAiIT09ZCYmIjEiIT09ZHx8KCJ5Ij09PXQuX2lkLmNoYXJBdCgwKT9lLmR4LT1lLmZvbnRTaXplLzQ6KGUuZHkrPWUuZm9udFNpemUvMixlLmR4Kz0odC5yYW5nZVsxXT50LnJhbmdlWzBdPzE6LTEpKmUuZm9udFNpemUqKGw8MD8uNTouMjUpKSl9fSh0LG8sMCxjLG0pOiJjYXRlZ29yeSI9PT11P2Z1bmN0aW9uKHQsZSl7dmFyIHI9dC5fY2F0ZWdvcmllc1tNYXRoLnJvdW5kKGUueCldO3ZvaWQgMD09PXImJihyPSIiKTtlLnRleHQ9U3RyaW5nKHIpfSh0LG8pOiJtdWx0aWNhdGVnb3J5Ij09PXU/ZnVuY3Rpb24odCxlLHIpe3ZhciBuPU1hdGgucm91bmQoZS54KSxpPXQuX2NhdGVnb3JpZXNbbl18fFtdLGE9dm9pZCAwPT09aVsxXT8iIjpTdHJpbmcoaVsxXSksbz12b2lkIDA9PT1pWzBdPyIiOlN0cmluZyhpWzBdKTtyP2UudGV4dD1vKyIgLSAiK2E6KGUudGV4dD1hLGUudGV4dDI9byl9KHQsbyxyKTpQdCh0KT9mdW5jdGlvbih0LGUscixuLGkpe2lmKCJyYWRpYW5zIiE9PXQudGhldGF1bml0fHxyKWUudGV4dD12dChlLngsdCxpLG4pO2Vsc2V7dmFyIGE9ZS54LzE4MDtpZigwPT09YSllLnRleHQ9IjAiO2Vsc2V7dmFyIG89ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0LGUpe3JldHVybiBNYXRoLmFicyh0LWUpPD0xZS02fXZhciByPWZ1bmN0aW9uKHQpe2Zvcih2YXIgcj0xOyFlKE1hdGgucm91bmQodCpyKS9yLHQpOylyKj0xMDtyZXR1cm4gcn0odCksbj10KnIsaT1NYXRoLmFicyhmdW5jdGlvbiB0KHIsbil7cmV0dXJuIGUobiwwKT9yOnQobixyJW4pfShuLHIpKTtyZXR1cm5bTWF0aC5yb3VuZChuL2kpLE1hdGgucm91bmQoci9pKV19KGEpO2lmKG9bMV0+PTEwMCllLnRleHQ9dnQocy5kZWcycmFkKGUueCksdCxpLG4pO2Vsc2V7dmFyIGw9ZS54PDA7MT09PW9bMV0/MT09PW9bMF0/ZS50ZXh0PSJcdTAzYzAiOmUudGV4dD1vWzBdKyJcdTAzYzAiOmUudGV4dD1bIjxzdXA+IixvWzBdLCI8L3N1cD4iLCJcdTIwNDQiLCI8c3ViPiIsb1sxXSwiPC9zdWI+IiwiXHUwM2MwIl0uam9pbigiIiksbCYmKGUudGV4dD1QK2UudGV4dCl9fX19KHQsbyxyLGMsbSk6ZnVuY3Rpb24odCxlLHIsbixpKXsibmV2ZXIiPT09aT9pPSIiOiJhbGwiPT09dC5zaG93ZXhwb25lbnQmJk1hdGguYWJzKGUueC90LmR0aWNrKTwxZS02JiYoaT0iaGlkZSIpO2UudGV4dD12dChlLngsdCxpLG4pfSh0LG8sMCxjLG0pLG58fCh0LnRpY2twcmVmaXgmJiFkKHQuc2hvd3RpY2twcmVmaXgpJiYoby50ZXh0PXQudGlja3ByZWZpeCtvLnRleHQpLHQudGlja3N1ZmZpeCYmIWQodC5zaG93dGlja3N1ZmZpeCkmJihvLnRleHQrPXQudGlja3N1ZmZpeCkpLCJib3VuZGFyaWVzIj09PXQudGlja3Nvbnx8dC5zaG93ZGl2aWRlcnMpe3ZhciBnPWZ1bmN0aW9uKGUpe3ZhciByPXQubDJwKGUpO3JldHVybiByPj0wJiZyPD10Ll9sZW5ndGg/ZTpudWxsfTtvLnhibmQ9W2coby54LS41KSxnKG8ueCt0LmR0aWNrLS41KV19cmV0dXJuIG99LHEuaG92ZXJMYWJlbFRleHQ9ZnVuY3Rpb24odCxlLHIpe3ImJih0PXMuZXh0ZW5kRmxhdCh7fSx0LHtob3ZlcmZvcm1hdDpyfSkpO3ZhciBuPUFycmF5LmlzQXJyYXkoZSk/ZVswXTplLGk9QXJyYXkuaXNBcnJheShlKT9lWzFdOnZvaWQgMDtpZih2b2lkIDAhPT1pJiZpIT09bilyZXR1cm4gcS5ob3ZlckxhYmVsVGV4dCh0LG4scikrIiAtICIrcS5ob3ZlckxhYmVsVGV4dCh0LGkscik7dmFyIGE9ImxvZyI9PT10LnR5cGUmJm48PTAsbz1xLnRpY2tUZXh0KHQsdC5jMmwoYT8tbjpuKSwiaG92ZXIiKS50ZXh0O3JldHVybiBhPzA9PT1uPyIwIjpQK286b307dmFyIGR0PVsiZiIsInAiLCJuIiwiXHUwM2JjIiwibSIsIiIsImsiLCJNIiwiRyIsIlQiXTtmdW5jdGlvbiBtdCh0KXtyZXR1cm4iU0kiPT09dHx8IkIiPT09dH1mdW5jdGlvbiBndCh0KXtyZXR1cm4gdD4xNHx8dDwtMTV9ZnVuY3Rpb24gdnQodCxlLHIsbil7dmFyIGE9dDwwLG89ZS5fdGlja3JvdW5kLGw9cnx8ZS5leHBvbmVudGZvcm1hdHx8IkIiLGM9ZS5fdGlja2V4cG9uZW50LHU9cS5nZXRUaWNrRm9ybWF0KGUpLGY9ZS5zZXBhcmF0ZXRob3VzYW5kcztpZihuKXt2YXIgaD17ZXhwb25lbnRmb3JtYXQ6bCxtaW5leHBvbmVudDplLm1pbmV4cG9uZW50LGR0aWNrOiJub25lIj09PWUuc2hvd2V4cG9uZW50P2UuZHRpY2s6aSh0KSYmTWF0aC5hYnModCl8fDEscmFuZ2U6Im5vbmUiPT09ZS5zaG93ZXhwb25lbnQ/ZS5yYW5nZS5tYXAoZS5yMmQpOlswLHR8fDFdfTtodChoKSxvPShOdW1iZXIoaC5fdGlja3JvdW5kKXx8MCkrNCxjPWguX3RpY2tleHBvbmVudCxlLmhvdmVyZm9ybWF0JiYodT1lLmhvdmVyZm9ybWF0KX1pZih1KXJldHVybiBlLl9udW1Gb3JtYXQodSkodCkucmVwbGFjZSgvLS9nLFApO3ZhciBwLGQ9TWF0aC5wb3coMTAsLW8pLzI7aWYoIm5vbmUiPT09bCYmKGM9MCksKHQ9TWF0aC5hYnModCkpPGQpdD0iMCIsYT0hMTtlbHNle2lmKHQrPWQsYyYmKHQqPU1hdGgucG93KDEwLC1jKSxvKz1jKSwwPT09byl0PVN0cmluZyhNYXRoLmZsb29yKHQpKTtlbHNlIGlmKG88MCl7dD0odD1TdHJpbmcoTWF0aC5yb3VuZCh0KSkpLnN1YnN0cigwLHQubGVuZ3RoK28pO2Zvcih2YXIgbT1vO208MDttKyspdCs9IjAifWVsc2V7dmFyIGc9KHQ9U3RyaW5nKHQpKS5pbmRleE9mKCIuIikrMTtnJiYodD10LnN1YnN0cigwLGcrbykucmVwbGFjZSgvXC4/MCskLywiIikpfXQ9cy5udW1TZXBhcmF0ZSh0LGUuX3NlcGFyYXRvcnMsZil9YyYmImhpZGUiIT09bCYmKG10KGwpJiZndChjKSYmKGw9InBvd2VyIikscD1jPDA/UCstYzoicG93ZXIiIT09bD8iKyIrYzpTdHJpbmcoYyksImUiPT09bHx8IkUiPT09bD90Kz1sK3A6InBvd2VyIj09PWw/dCs9Ilx4ZDcxMDxzdXA+IitwKyI8L3N1cD4iOiJCIj09PWwmJjk9PT1jP3QrPSJCIjptdChsKSYmKHQrPWR0W2MvMys1XSkpO3JldHVybiBhP1ArdDp0fWZ1bmN0aW9uIHl0KHQsZSl7aWYodCl7dmFyIHI9T2JqZWN0LmtleXMoQikucmVkdWNlKChmdW5jdGlvbih0LHIpe3JldHVybi0xIT09ZS5pbmRleE9mKHIpJiZCW3JdLmZvckVhY2goKGZ1bmN0aW9uKGUpe3RbZV09MX0pKSx0fSkse30pO09iamVjdC5rZXlzKHQpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JbZV18fCgxPT09ZS5sZW5ndGg/dFtlXT0wOmRlbGV0ZSB0W2VdKX0pKX19ZnVuY3Rpb24geHQodCxlKXtmb3IodmFyIHI9W10sbj17fSxpPTA7aTxlLmxlbmd0aDtpKyspe3ZhciBhPWVbaV07blthLnRleHQyXT9uW2EudGV4dDJdLnB1c2goYS54KTpuW2EudGV4dDJdPVthLnhdfWZvcih2YXIgbyBpbiBuKXIucHVzaChwdCh0LHMuaW50ZXJwKG5bb10sLjUpLG8pKTtyZXR1cm4gcn1mdW5jdGlvbiBidCh0KXtyZXR1cm4gdm9pZCAwIT09dC5wZXJpb2RYP3QucGVyaW9kWDp0Lnh9ZnVuY3Rpb24gX3QodCl7cmV0dXJuW3QudGV4dCx0LngsdC5heEluZm8sdC5mb250LHQuZm9udFNpemUsdC5mb250Q29sb3JdLmpvaW4oIl8iKX1mdW5jdGlvbiB3dCh0KXt2YXIgZT10LnRpdGxlLmZvbnQuc2l6ZSxyPSh0LnRpdGxlLnRleHQubWF0Y2goYy5CUl9UQUdfQUxMKXx8W10pLmxlbmd0aDtyZXR1cm4gdC50aXRsZS5oYXNPd25Qcm9wZXJ0eSgic3RhbmRvZmYiKT9yP2UqKFUrcipWKTplKlU6cj9lKihyKzEpKlY6ZX1mdW5jdGlvbiBUdCh0LGUpe3ZhciByPXQubDJwKGUpO3JldHVybiByPjEmJnI8dC5fbGVuZ3RoLTF9ZnVuY3Rpb24ga3QodCl7dmFyIGU9bi5zZWxlY3QodCkscj1lLnNlbGVjdCgiLnRleHQtbWF0aC1ncm91cCIpO3JldHVybiByLmVtcHR5KCk/ZS5zZWxlY3QoInRleHQiKTpyfWZ1bmN0aW9uIEF0KHQpe3JldHVybiB0Ll9pZCsiLmF1dG9tYXJnaW4ifWZ1bmN0aW9uIE10KHQpe3JldHVybiBBdCh0KSsiLm1pcnJvciJ9ZnVuY3Rpb24gU3QodCl7cmV0dXJuIHQuX2lkKyIucmFuZ2VzbGlkZXIifWZ1bmN0aW9uIEV0KHQsZSl7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspLTE9PT10LmluZGV4T2YoZVtyXSkmJnQucHVzaChlW3JdKX1mdW5jdGlvbiBMdCh0LGUscil7dmFyIG4saSxhPVtdLG89W10sbD10LmxheW91dDtmb3Iobj0wO248ZS5sZW5ndGg7bisrKWEucHVzaChxLmdldEZyb21JZCh0LGVbbl0pKTtmb3Iobj0wO248ci5sZW5ndGg7bisrKW8ucHVzaChxLmdldEZyb21JZCh0LHJbbl0pKTt2YXIgYz1PYmplY3Qua2V5cyhwKSx1PVsiYW5jaG9yIiwiZG9tYWluIiwib3ZlcmxheWluZyIsInBvc2l0aW9uIiwic2lkZSIsInRpY2thbmdsZSIsImVkaXRUeXBlIl0sZj1bImxpbmVhciIsImxvZyJdO2ZvcihuPTA7bjxjLmxlbmd0aDtuKyspe3ZhciBoPWNbbl0sZD1hWzBdW2hdLG09b1swXVtoXSxnPSEwLHY9ITEseT0hMTtpZigiXyIhPT1oLmNoYXJBdCgwKSYmImZ1bmN0aW9uIiE9dHlwZW9mIGQmJi0xPT09dS5pbmRleE9mKGgpKXtmb3IoaT0xO2k8YS5sZW5ndGgmJmc7aSsrKXt2YXIgeD1hW2ldW2hdOyJ0eXBlIj09PWgmJi0xIT09Zi5pbmRleE9mKGQpJiYtMSE9PWYuaW5kZXhPZih4KSYmZCE9PXg/dj0hMDp4IT09ZCYmKGc9ITEpfWZvcihpPTE7aTxvLmxlbmd0aCYmZztpKyspe3ZhciBiPW9baV1baF07InR5cGUiPT09aCYmLTEhPT1mLmluZGV4T2YobSkmJi0xIT09Zi5pbmRleE9mKGIpJiZtIT09Yj95PSEwOm9baV1baF0hPT1tJiYoZz0hMSl9ZyYmKHYmJihsW2FbMF0uX25hbWVdLnR5cGU9ImxpbmVhciIpLHkmJihsW29bMF0uX25hbWVdLnR5cGU9ImxpbmVhciIpLEN0KGwsaCxhLG8sdC5fZnVsbExheW91dC5fZGZsdFRpdGxlKSl9fWZvcihuPTA7bjx0Ll9mdWxsTGF5b3V0LmFubm90YXRpb25zLmxlbmd0aDtuKyspe3ZhciBfPXQuX2Z1bGxMYXlvdXQuYW5ub3RhdGlvbnNbbl07LTEhPT1lLmluZGV4T2YoXy54cmVmKSYmLTEhPT1yLmluZGV4T2YoXy55cmVmKSYmcy5zd2FwQXR0cnMobC5hbm5vdGF0aW9uc1tuXSxbIj8iXSl9fWZ1bmN0aW9uIEN0KHQsZSxyLG4saSl7dmFyIGEsbz1zLm5lc3RlZFByb3BlcnR5LGw9byh0W3JbMF0uX25hbWVdLGUpLmdldCgpLGM9byh0W25bMF0uX25hbWVdLGUpLmdldCgpO2ZvcigidGl0bGUiPT09ZSYmKGwmJmwudGV4dD09PWkueCYmKGwudGV4dD1pLnkpLGMmJmMudGV4dD09PWkueSYmKGMudGV4dD1pLngpKSxhPTA7YTxyLmxlbmd0aDthKyspbyh0LHJbYV0uX25hbWUrIi4iK2UpLnNldChjKTtmb3IoYT0wO2E8bi5sZW5ndGg7YSsrKW8odCxuW2FdLl9uYW1lKyIuIitlKS5zZXQobCl9ZnVuY3Rpb24gUHQodCl7cmV0dXJuImFuZ3VsYXJheGlzIj09PXQuX2lkfWZ1bmN0aW9uIEl0KHQsZSl7Zm9yKHZhciByPWUuX3JhbmdlYnJlYWtzLmxlbmd0aCxuPTA7bjxyO24rKyl7dmFyIGk9ZS5fcmFuZ2VicmVha3Nbbl07aWYodD49aS5taW4mJnQ8aS5tYXgpcmV0dXJuIGkubWF4fXJldHVybiB0fWZ1bmN0aW9uIE90KHQpe3JldHVybi0xIT09KHQudGlja2xhYmVscG9zaXRpb258fCIiKS5pbmRleE9mKCJpbnNpZGUiKX1mdW5jdGlvbiB6dCh0LGUpe090KHQuX2FuY2hvckF4aXN8fHt9KSYmdC5faGlkZUNvdW50ZXJBeGlzSW5zaWRlVGlja0xhYmVscyYmdC5faGlkZUNvdW50ZXJBeGlzSW5zaWRlVGlja0xhYmVscyhlKX1xLmdldFRpY2tGb3JtYXQ9ZnVuY3Rpb24odCl7dmFyIGUscixuLGksYSxvLHMsbDtmdW5jdGlvbiBjKHQpe3JldHVybiJzdHJpbmciIT10eXBlb2YgdD90Ok51bWJlcih0LnJlcGxhY2UoIk0iLCIiKSkqVH1mdW5jdGlvbiB1KHQsZSl7dmFyIHI9WyJMIiwiRCJdO2lmKHR5cGVvZiB0PT10eXBlb2YgZSl7aWYoIm51bWJlciI9PXR5cGVvZiB0KXJldHVybiB0LWU7dmFyIG49ci5pbmRleE9mKHQuY2hhckF0KDApKSxpPXIuaW5kZXhPZihlLmNoYXJBdCgwKSk7cmV0dXJuIG49PT1pP051bWJlcih0LnJlcGxhY2UoLyhMfEQpL2csIiIpKS1OdW1iZXIoZS5yZXBsYWNlKC8oTHxEKS9nLCIiKSk6bi1pfXJldHVybiJudW1iZXIiPT10eXBlb2YgdD8xOi0xfWZ1bmN0aW9uIGYodCxlKXt2YXIgcj1udWxsPT09ZVswXSxuPW51bGw9PT1lWzFdLGk9dSh0LGVbMF0pPj0wLGE9dSh0LGVbMV0pPD0wO3JldHVybihyfHxpKSYmKG58fGEpfWlmKHQudGlja2Zvcm1hdHN0b3BzJiZ0LnRpY2tmb3JtYXRzdG9wcy5sZW5ndGg+MClzd2l0Y2godC50eXBlKXtjYXNlImRhdGUiOmNhc2UibGluZWFyIjpmb3IoZT0wO2U8dC50aWNrZm9ybWF0c3RvcHMubGVuZ3RoO2UrKylpZigobj10LnRpY2tmb3JtYXRzdG9wc1tlXSkuZW5hYmxlZCYmKGk9dC5kdGljayxhPW4uZHRpY2tyYW5nZSxvPXZvaWQgMCxzPXZvaWQgMCxsPXZvaWQgMCxvPWN8fGZ1bmN0aW9uKHQpe3JldHVybiB0fSxzPWFbMF0sbD1hWzFdLCghcyYmIm51bWJlciIhPXR5cGVvZiBzfHxvKHMpPD1vKGkpKSYmKCFsJiYibnVtYmVyIiE9dHlwZW9mIGx8fG8obCk+PW8oaSkpKSl7cj1uO2JyZWFrfWJyZWFrO2Nhc2UibG9nIjpmb3IoZT0wO2U8dC50aWNrZm9ybWF0c3RvcHMubGVuZ3RoO2UrKylpZigobj10LnRpY2tmb3JtYXRzdG9wc1tlXSkuZW5hYmxlZCYmZih0LmR0aWNrLG4uZHRpY2tyYW5nZSkpe3I9bjticmVha319cmV0dXJuIHI/ci52YWx1ZTp0LnRpY2tmb3JtYXR9LHEuZ2V0U3VicGxvdHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10Ll9mdWxsTGF5b3V0Ll9zdWJwbG90cyxuPXIuY2FydGVzaWFuLmNvbmNhdChyLmdsMmR8fFtdKSxpPWU/cS5maW5kU3VicGxvdHNXaXRoQXhpcyhuLGUpOm47cmV0dXJuIGkuc29ydCgoZnVuY3Rpb24odCxlKXt2YXIgcj10LnN1YnN0cigxKS5zcGxpdCgieSIpLG49ZS5zdWJzdHIoMSkuc3BsaXQoInkiKTtyZXR1cm4gclswXT09PW5bMF0/K3JbMV0tK25bMV06K3JbMF0tK25bMF19KSksaX0scS5maW5kU3VicGxvdHNXaXRoQXhpcz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1uZXcgUmVnRXhwKCJ4Ij09PWUuX2lkLmNoYXJBdCgwKT8iXiIrZS5faWQrInkiOmUuX2lkKyIkIiksbj1bXSxpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBhPXRbaV07ci50ZXN0KGEpJiZuLnB1c2goYSl9cmV0dXJuIG59LHEubWFrZUNsaXBQYXRocz1mdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0O2lmKCFlLl9oYXNPbmx5TGFyZ2VTcGxvbXMpe3ZhciByLGksYT17X29mZnNldDowLF9sZW5ndGg6ZS53aWR0aCxfaWQ6IiJ9LG89e19vZmZzZXQ6MCxfbGVuZ3RoOmUuaGVpZ2h0LF9pZDoiIn0scz1xLmxpc3QodCwieCIsITApLGw9cS5saXN0KHQsInkiLCEwKSxjPVtdO2ZvcihyPTA7cjxzLmxlbmd0aDtyKyspZm9yKGMucHVzaCh7eDpzW3JdLHk6b30pLGk9MDtpPGwubGVuZ3RoO2krKykwPT09ciYmYy5wdXNoKHt4OmEseTpsW2ldfSksYy5wdXNoKHt4OnNbcl0seTpsW2ldfSk7dmFyIHU9ZS5fY2xpcHMuc2VsZWN0QWxsKCIuYXhlc2NsaXAiKS5kYXRhKGMsKGZ1bmN0aW9uKHQpe3JldHVybiB0LnguX2lkK3QueS5faWR9KSk7dS5lbnRlcigpLmFwcGVuZCgiY2xpcFBhdGgiKS5jbGFzc2VkKCJheGVzY2xpcCIsITApLmF0dHIoImlkIiwoZnVuY3Rpb24odCl7cmV0dXJuImNsaXAiK2UuX3VpZCt0LnguX2lkK3QueS5faWR9KSkuYXBwZW5kKCJyZWN0IiksdS5leGl0KCkucmVtb3ZlKCksdS5lYWNoKChmdW5jdGlvbih0KXtuLnNlbGVjdCh0aGlzKS5zZWxlY3QoInJlY3QiKS5hdHRyKHt4OnQueC5fb2Zmc2V0fHwwLHk6dC55Ll9vZmZzZXR8fDAsd2lkdGg6dC54Ll9sZW5ndGh8fDEsaGVpZ2h0OnQueS5fbGVuZ3RofHwxfSl9KSl9fSxxLmRyYXc9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQuX2Z1bGxMYXlvdXQ7InJlZHJhdyI9PT1lJiZuLl9wYXBlci5zZWxlY3RBbGwoImcuc3VicGxvdCIpLmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0scj1uLl9wbG90c1tlXTtpZihyKXt2YXIgaT1yLnhheGlzLGE9ci55YXhpcztyLnhheGlzbGF5ZXIuc2VsZWN0QWxsKCIuIitpLl9pZCsidGljayIpLnJlbW92ZSgpLHIueWF4aXNsYXllci5zZWxlY3RBbGwoIi4iK2EuX2lkKyJ0aWNrIikucmVtb3ZlKCksci54YXhpc2xheWVyLnNlbGVjdEFsbCgiLiIraS5faWQrInRpY2syIikucmVtb3ZlKCksci55YXhpc2xheWVyLnNlbGVjdEFsbCgiLiIrYS5faWQrInRpY2syIikucmVtb3ZlKCksci54YXhpc2xheWVyLnNlbGVjdEFsbCgiLiIraS5faWQrImRpdmlkZXIiKS5yZW1vdmUoKSxyLnlheGlzbGF5ZXIuc2VsZWN0QWxsKCIuIithLl9pZCsiZGl2aWRlciIpLnJlbW92ZSgpLHIubWlub3JHcmlkbGF5ZXImJnIubWlub3JHcmlkbGF5ZXIuc2VsZWN0QWxsKCJwYXRoIikucmVtb3ZlKCksci5ncmlkbGF5ZXImJnIuZ3JpZGxheWVyLnNlbGVjdEFsbCgicGF0aCIpLnJlbW92ZSgpLHIuemVyb2xpbmVsYXllciYmci56ZXJvbGluZWxheWVyLnNlbGVjdEFsbCgicGF0aCIpLnJlbW92ZSgpLG4uX2luZm9sYXllci5zZWxlY3QoIi5nLSIraS5faWQrInRpdGxlIikucmVtb3ZlKCksbi5faW5mb2xheWVyLnNlbGVjdCgiLmctIithLl9pZCsidGl0bGUiKS5yZW1vdmUoKX19KSk7dmFyIGk9ZSYmInJlZHJhdyIhPT1lP2U6cS5saXN0SWRzKHQpO3JldHVybiBzLnN5bmNPckFzeW5jKGkubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtpZihlKXt2YXIgbj1xLmdldEZyb21JZCh0LGUpLGk9cS5kcmF3T25lKHQsbixyKTtyZXR1cm4gbi5fcj1uLnJhbmdlLnNsaWNlKCksbi5fcmw9cy5zaW1wbGVNYXAobi5fcixuLnIybCksaX19fSkpKX0scS5kcmF3T25lPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbixpLGw7cj1yfHx7fSxlLnNldFNjYWxlKCk7dmFyIGM9dC5fZnVsbExheW91dCxwPWUuX2lkLGQ9cC5jaGFyQXQoMCksbT1xLmNvdW50ZXJMZXR0ZXIocCksZz1jLl9wbG90c1tlLl9tYWluU3VicGxvdF07aWYoZyl7dmFyIHY9Z1tkKyJheGlzbGF5ZXIiXSx5PWUuX21haW5MaW5lUG9zaXRpb24seD1lLl9tYWluTWlycm9yUG9zaXRpb24sYj1lLl92YWxzPXEuY2FsY1RpY2tzKGUpLF89W2UubWlycm9yLHkseF0uam9pbigiXyIpO2ZvcihuPTA7bjxiLmxlbmd0aDtuKyspYltuXS5heEluZm89XztlLl9zZWxlY3Rpb25zPXt9LGUuX3RpY2tBbmdsZXMmJihlLl9wcmV2VGlja0FuZ2xlcz1lLl90aWNrQW5nbGVzKSxlLl90aWNrQW5nbGVzPXt9LGUuX2RlcHRoPW51bGw7dmFyIHc9e307aWYoZS52aXNpYmxlKXt2YXIgVCxrLEE9cS5tYWtlVHJhbnNUaWNrRm4oZSksTT1xLm1ha2VUcmFuc1RpY2tMYWJlbEZuKGUpLFM9Imluc2lkZSI9PT1lLnRpY2tzLEU9Im91dHNpZGUiPT09ZS50aWNrcztpZigiYm91bmRhcmllcyI9PT1lLnRpY2tzb24pe3ZhciBMPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbj1bXSxpPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC54Ym5kW2VdO251bGwhPT1yJiZuLnB1c2gocy5leHRlbmRGbGF0KHt9LHQse3g6cn0pKX07aWYoZS5sZW5ndGgpe2ZvcihyPTA7cjxlLmxlbmd0aDtyKyspaShlW3JdLDApO2koZVtyLTFdLDEpfXJldHVybiBufSgwLGIpO2s9cS5jbGlwRW5kcyhlLEwpLFQ9Uz9rOkx9ZWxzZSBrPXEuY2xpcEVuZHMoZSxiKSxUPVMmJiJwZXJpb2QiIT09ZS50aWNrbGFiZWxtb2RlP2s6Yjt2YXIgQyxQPWUuX2dyaWRWYWxzPWssST1mdW5jdGlvbih0LGUpe3ZhciByLG4saT1bXSxhPWUubGVuZ3RoJiZlW2UubGVuZ3RoLTFdLng8ZVswXS54LG89ZnVuY3Rpb24odCxlKXt2YXIgcj10LnhibmRbZV07bnVsbCE9PXImJmkucHVzaChzLmV4dGVuZEZsYXQoe30sdCx7eDpyfSkpfTtpZih0LnNob3dkaXZpZGVycyYmZS5sZW5ndGgpe2ZvcihyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBsPWVbcl07bC50ZXh0MiE9PW4mJm8obCxhPzE6MCksbj1sLnRleHQyfW8oZVtyLTFdLGE/MDoxKX1yZXR1cm4gaX0oZSxiKTtpZighYy5faGFzT25seUxhcmdlU3Bsb21zKXt2YXIgTz1lLl9zdWJwbG90c1dpdGgsej17fTtmb3Iobj0wO248Ty5sZW5ndGg7bisrKXtpPU9bbl07dmFyIEQ9KGw9Yy5fcGxvdHNbaV0pW20rImF4aXMiXSxSPUQuX21haW5BeGlzLl9pZDtpZigheltSXSl7eltSXT0xO3ZhciBGPSJ4Ij09PWQ/Ik0wLCIrRC5fb2Zmc2V0KyJ2IitELl9sZW5ndGg6Ik0iK0QuX29mZnNldCsiLDBoIitELl9sZW5ndGg7cS5kcmF3R3JpZCh0LGUse3ZhbHM6UCxjb3VudGVyQXhpczpELGxheWVyOmwuZ3JpZGxheWVyLnNlbGVjdCgiLiIrcCksbWlub3JMYXllcjpsLm1pbm9yR3JpZGxheWVyLnNlbGVjdCgiLiIrcCkscGF0aDpGLHRyYW5zRm46QX0pLHEuZHJhd1plcm9MaW5lKHQsZSx7Y291bnRlckF4aXM6RCxsYXllcjpsLnplcm9saW5lbGF5ZXIscGF0aDpGLHRyYW5zRm46QX0pfX19dmFyIEI9cS5nZXRUaWNrU2lnbnMoZSksTj1xLmdldFRpY2tTaWducyhlLCJtaW5vciIpO2lmKGUudGlja3N8fGUubWlub3ImJmUubWlub3IudGlja3Mpe3ZhciBqLFUsRyxZLFc9cS5tYWtlVGlja1BhdGgoZSx5LEJbMl0pLFg9cS5tYWtlVGlja1BhdGgoZSx5LE5bMl0se21pbm9yOiEwfSk7aWYoZS5fYW5jaG9yQXhpcyYmZS5taXJyb3ImJiEwIT09ZS5taXJyb3I/KGo9cS5tYWtlVGlja1BhdGgoZSx4LEJbM10pLFU9cS5tYWtlVGlja1BhdGgoZSx4LE5bM10se21pbm9yOiEwfSksRz1XK2osWT1YK1UpOihqPSIiLFU9IiIsRz1XLFk9WCksZS5zaG93ZGl2aWRlcnMmJkUmJiJib3VuZGFyaWVzIj09PWUudGlja3Nvbil7dmFyIFo9e307Zm9yKG49MDtuPEkubGVuZ3RoO24rKylaW0lbbl0ueF09MTtDPWZ1bmN0aW9uKHQpe3JldHVybiBaW3QueF0/ajpHfX1lbHNlIEM9ZnVuY3Rpb24odCl7cmV0dXJuIHQubWlub3I/WTpHfX1pZihxLmRyYXdUaWNrcyh0LGUse3ZhbHM6VCxsYXllcjp2LHBhdGg6Qyx0cmFuc0ZuOkF9KSwiYWxsdGlja3MiPT09ZS5taXJyb3Ipe3ZhciBKPU9iamVjdC5rZXlzKGUuX2xpbmVwb3NpdGlvbnN8fHt9KTtmb3Iobj0wO248Si5sZW5ndGg7bisrKXtpPUpbbl0sbD1jLl9wbG90c1tpXTt2YXIgSz1lLl9saW5lcG9zaXRpb25zW2ldfHxbXSxRPUtbMF0sJD1LWzFdLHR0PUtbMl0sZXQ9cS5tYWtlVGlja1BhdGgoZSxRLHR0P0JbMF06TlswXSx7bWlub3I6dHR9KStxLm1ha2VUaWNrUGF0aChlLCQsdHQ/QlsxXTpOWzFdLHttaW5vcjp0dH0pO3EuZHJhd1RpY2tzKHQsZSx7dmFsczpULGxheWVyOmxbZCsiYXhpc2xheWVyIl0scGF0aDpldCx0cmFuc0ZuOkF9KX19dmFyIHJ0PVtdO2lmKHJ0LnB1c2goKGZ1bmN0aW9uKCl7cmV0dXJuIHEuZHJhd0xhYmVscyh0LGUse3ZhbHM6YixsYXllcjp2LHBsb3RpbmZvOmwsdHJhbnNGbjpNLGxhYmVsRm5zOnEubWFrZUxhYmVsRm5zKGUseSl9KX0pKSwibXVsdGljYXRlZ29yeSI9PT1lLnR5cGUpe3ZhciBudD17eDoyLHk6MTB9W2RdO3J0LnB1c2goKGZ1bmN0aW9uKCl7dmFyIHI9e3g6ImhlaWdodCIseToid2lkdGgifVtkXSxuPWF0KClbcl0rbnQrKGUuX3RpY2tBbmdsZXNbcCsidGljayJdP2UudGlja2ZvbnQuc2l6ZSpWOjApO3JldHVybiBxLmRyYXdMYWJlbHModCxlLHt2YWxzOnh0KGUsYiksbGF5ZXI6dixjbHM6cCsidGljazIiLHJlcG9zaXRpb25PblVwZGF0ZTohMCxzZWNvbmRhcnk6ITAsdHJhbnNGbjpBLGxhYmVsRm5zOnEubWFrZUxhYmVsRm5zKGUseStuKkJbNF0pfSl9KSkscnQucHVzaCgoZnVuY3Rpb24oKXtyZXR1cm4gZS5fZGVwdGg9Qls0XSooYXQoInRpY2syIilbZS5zaWRlXS15KSxmdW5jdGlvbih0LGUscil7dmFyIG49ZS5faWQrImRpdmlkZXIiLGk9ci52YWxzLGE9ci5sYXllci5zZWxlY3RBbGwoInBhdGguIituKS5kYXRhKGksX3QpO2EuZXhpdCgpLnJlbW92ZSgpLGEuZW50ZXIoKS5pbnNlcnQoInBhdGgiLCI6Zmlyc3QtY2hpbGQiKS5jbGFzc2VkKG4sMSkuY2xhc3NlZCgiY3Jpc3AiLDEpLmNhbGwoZi5zdHJva2UsZS5kaXZpZGVyY29sb3IpLnN0eWxlKCJzdHJva2Utd2lkdGgiLGguY3Jpc3BSb3VuZCh0LGUuZGl2aWRlcndpZHRoLDEpKyJweCIpLGEuYXR0cigidHJhbnNmb3JtIixyLnRyYW5zRm4pLmF0dHIoImQiLHIucGF0aCl9KHQsZSx7dmFsczpJLGxheWVyOnYscGF0aDpxLm1ha2VUaWNrUGF0aChlLHksQls0XSx7bGVuOmUuX2RlcHRofSksdHJhbnNGbjpBfSl9KSl9ZWxzZSBlLnRpdGxlLmhhc093blByb3BlcnR5KCJzdGFuZG9mZiIpJiZydC5wdXNoKChmdW5jdGlvbigpe2UuX2RlcHRoPUJbNF0qKGF0KClbZS5zaWRlXS15KX0pKTt2YXIgaXQ9by5nZXRDb21wb25lbnRNZXRob2QoInJhbmdlc2xpZGVyIiwiaXNWaXNpYmxlIikoZSk7cmV0dXJuIHJ0LnB1c2goKGZ1bmN0aW9uKCl7dmFyIHIsbixpLHMsbD1lLnNpZGUuY2hhckF0KDApLHU9SFtlLnNpZGVdLmNoYXJBdCgwKSxmPXEuZ2V0UHhQb3NpdGlvbih0LGUpLGg9RT9lLnRpY2tsZW46MDtpZigoZS5hdXRvbWFyZ2lufHxpdCkmJigibXVsdGljYXRlZ29yeSI9PT1lLnR5cGU/cj1hdCgidGljazIiKToocj1hdCgpLCJ4Ij09PWQmJiJiIj09PWwmJihlLl9kZXB0aD1NYXRoLm1heChyLndpZHRoPjA/ci5ib3R0b20tZjowLGgpKSkpLGUuYXV0b21hcmdpbil7bj17eDowLHk6MCxyOjAsbDowLHQ6MCxiOjB9O3ZhciBwPVswLDFdO2lmKCJ4Ij09PWQpe2lmKCJiIj09PWw/bltsXT1lLl9kZXB0aDoobltsXT1lLl9kZXB0aD1NYXRoLm1heChyLndpZHRoPjA/Zi1yLnRvcDowLGgpLHAucmV2ZXJzZSgpKSxyLndpZHRoPjApe3ZhciBnPXIucmlnaHQtKGUuX29mZnNldCtlLl9sZW5ndGgpO2c+MCYmKG4ueHI9MSxuLnI9Zyk7dmFyIHY9ZS5fb2Zmc2V0LXIubGVmdDt2PjAmJihuLnhsPTAsbi5sPXYpfX1lbHNlIGlmKCJsIj09PWw/bltsXT1lLl9kZXB0aD1NYXRoLm1heChyLmhlaWdodD4wP2Ytci5sZWZ0OjAsaCk6KG5bbF09ZS5fZGVwdGg9TWF0aC5tYXgoci5oZWlnaHQ+MD9yLnJpZ2h0LWY6MCxoKSxwLnJldmVyc2UoKSksci5oZWlnaHQ+MCl7dmFyIHk9ci5ib3R0b20tKGUuX29mZnNldCtlLl9sZW5ndGgpO3k+MCYmKG4ueWI9MCxuLmI9eSk7dmFyIHg9ZS5fb2Zmc2V0LXIudG9wO3g+MCYmKG4ueXQ9MSxuLnQ9eCl9blttXT0iZnJlZSI9PT1lLmFuY2hvcj9lLnBvc2l0aW9uOmUuX2FuY2hvckF4aXMuZG9tYWluW3BbMF1dLGUudGl0bGUudGV4dCE9PWMuX2RmbHRUaXRsZVtkXSYmKG5bbF0rPXd0KGUpKyhlLnRpdGxlLnN0YW5kb2ZmfHwwKSksZS5taXJyb3ImJiJmcmVlIiE9PWUuYW5jaG9yJiYoKGk9e3g6MCx5OjAscjowLGw6MCx0OjAsYjowfSlbdV09ZS5saW5ld2lkdGgsZS5taXJyb3ImJiEwIT09ZS5taXJyb3ImJihpW3VdKz1oKSwhMD09PWUubWlycm9yfHwidGlja3MiPT09ZS5taXJyb3I/aVttXT1lLl9hbmNob3JBeGlzLmRvbWFpbltwWzFdXToiYWxsIiE9PWUubWlycm9yJiYiYWxsdGlja3MiIT09ZS5taXJyb3J8fChpW21dPVtlLl9jb3VudGVyRG9tYWluTWluLGUuX2NvdW50ZXJEb21haW5NYXhdW3BbMV1dKSl9aXQmJihzPW8uZ2V0Q29tcG9uZW50TWV0aG9kKCJyYW5nZXNsaWRlciIsImF1dG9NYXJnaW5PcHRzIikodCxlKSksInN0cmluZyI9PXR5cGVvZiBlLmF1dG9tYXJnaW4mJih5dChuLGUuYXV0b21hcmdpbikseXQoaSxlLmF1dG9tYXJnaW4pKSxhLmF1dG9NYXJnaW4odCxBdChlKSxuKSxhLmF1dG9NYXJnaW4odCxNdChlKSxpKSxhLmF1dG9NYXJnaW4odCxTdChlKSxzKX0pKSxyLnNraXBUaXRsZXx8aXQmJiJib3R0b20iPT09ZS5zaWRlfHxydC5wdXNoKChmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0LGUpe3ZhciByLG49dC5fZnVsbExheW91dCxpPWUuX2lkLGE9aS5jaGFyQXQoMCksbz1lLnRpdGxlLmZvbnQuc2l6ZTtpZihlLnRpdGxlLmhhc093blByb3BlcnR5KCJzdGFuZG9mZiIpKXI9ZS5fZGVwdGgrZS50aXRsZS5zdGFuZG9mZit3dChlKTtlbHNle3ZhciBzPU90KGUpO2lmKCJtdWx0aWNhdGVnb3J5Ij09PWUudHlwZSlyPWUuX2RlcHRoO2Vsc2V7dmFyIGw9MS41Km87cyYmKGw9LjUqbywib3V0c2lkZSI9PT1lLnRpY2tzJiYobCs9ZS50aWNrbGVuKSkscj0xMCtsKyhlLmxpbmV3aWR0aD9lLmxpbmV3aWR0aC0xOjApfXN8fChyKz0ieCI9PT1hPyJ0b3AiPT09ZS5zaWRlP28qKGUuc2hvd3RpY2tsYWJlbHM/MTowKTpvKihlLnNob3d0aWNrbGFiZWxzPzEuNTouNSk6InJpZ2h0Ij09PWUuc2lkZT9vKihlLnNob3d0aWNrbGFiZWxzPzE6LjUpOm8qKGUuc2hvd3RpY2tsYWJlbHM/LjU6MCkpfXZhciBjLGYscCxkLG09cS5nZXRQeFBvc2l0aW9uKHQsZSk7IngiPT09YT8oZj1lLl9vZmZzZXQrZS5fbGVuZ3RoLzIscD0idG9wIj09PWUuc2lkZT9tLXI6bStyKToocD1lLl9vZmZzZXQrZS5fbGVuZ3RoLzIsZj0icmlnaHQiPT09ZS5zaWRlP20rcjptLXIsYz17cm90YXRlOiItOTAiLG9mZnNldDowfSk7aWYoIm11bHRpY2F0ZWdvcnkiIT09ZS50eXBlKXt2YXIgZz1lLl9zZWxlY3Rpb25zW2UuX2lkKyJ0aWNrIl07aWYoZD17c2VsZWN0aW9uOmcsc2lkZTplLnNpZGV9LGcmJmcubm9kZSgpJiZnLm5vZGUoKS5wYXJlbnROb2RlKXt2YXIgdj1oLmdldFRyYW5zbGF0ZShnLm5vZGUoKS5wYXJlbnROb2RlKTtkLm9mZnNldExlZnQ9di54LGQub2Zmc2V0VG9wPXYueX1lLnRpdGxlLmhhc093blByb3BlcnR5KCJzdGFuZG9mZiIpJiYoZC5wYWQ9MCl9cmV0dXJuIHUuZHJhdyh0LGkrInRpdGxlIix7cHJvcENvbnRhaW5lcjplLHByb3BOYW1lOmUuX25hbWUrIi50aXRsZS50ZXh0IixwbGFjZWhvbGRlcjpuLl9kZmx0VGl0bGVbYV0sYXZvaWQ6ZCx0cmFuc2Zvcm06YyxhdHRyaWJ1dGVzOnt4OmYseTpwLCJ0ZXh0LWFuY2hvciI6Im1pZGRsZSJ9fSl9KHQsZSl9KSkscy5zeW5jT3JBc3luYyhydCl9fWZ1bmN0aW9uIGF0KHQpe3ZhciByPXArKHR8fCJ0aWNrIik7cmV0dXJuIHdbcl18fCh3W3JdPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixpLGE7dC5fc2VsZWN0aW9uc1tlXS5zaXplKCk/KHI9MS8wLG49LTEvMCxpPTEvMCxhPS0xLzAsdC5fc2VsZWN0aW9uc1tlXS5lYWNoKChmdW5jdGlvbigpe3ZhciB0PWt0KHRoaXMpLGU9aC5iQm94KHQubm9kZSgpLnBhcmVudE5vZGUpO3I9TWF0aC5taW4ocixlLnRvcCksbj1NYXRoLm1heChuLGUuYm90dG9tKSxpPU1hdGgubWluKGksZS5sZWZ0KSxhPU1hdGgubWF4KGEsZS5yaWdodCl9KSkpOihyPTAsbj0wLGk9MCxhPTApO3JldHVybnt0b3A6cixib3R0b206bixsZWZ0OmkscmlnaHQ6YSxoZWlnaHQ6bi1yLHdpZHRoOmEtaX19KGUscikpLHdbcl19fSxxLmdldFRpY2tTaWducz1mdW5jdGlvbih0LGUpe3ZhciByPXQuX2lkLmNoYXJBdCgwKSxuPXt4OiJ0b3AiLHk6InJpZ2h0In1bcl0saT10LnNpZGU9PT1uPzE6LTEsYT1bLTEsMSxpLC1pXTtyZXR1cm4iaW5zaWRlIiE9PShlPyh0Lm1pbm9yfHx7fSkudGlja3M6dC50aWNrcyk9PSgieCI9PT1yKSYmKGE9YS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybi10fSkpKSx0LnNpZGUmJmEucHVzaCh7bDotMSx0Oi0xLHI6MSxiOjF9W3Quc2lkZS5jaGFyQXQoMCldKSxhfSxxLm1ha2VUcmFuc1RpY2tGbj1mdW5jdGlvbih0KXtyZXR1cm4ieCI9PT10Ll9pZC5jaGFyQXQoMCk/ZnVuY3Rpb24oZSl7cmV0dXJuIGwodC5fb2Zmc2V0K3QubDJwKGUueCksMCl9OmZ1bmN0aW9uKGUpe3JldHVybiBsKDAsdC5fb2Zmc2V0K3QubDJwKGUueCkpfX0scS5tYWtlVHJhbnNUaWNrTGFiZWxGbj1mdW5jdGlvbih0KXt2YXIgZT1mdW5jdGlvbih0KXt2YXIgZT10LnRpY2tsYWJlbHBvc2l0aW9ufHwiIixyPWZ1bmN0aW9uKHQpe3JldHVybi0xIT09ZS5pbmRleE9mKHQpfSxuPXIoInRvcCIpLGk9cigibGVmdCIpLGE9cigicmlnaHQiKSxvPXIoImJvdHRvbSIpLHM9cigiaW5zaWRlIiksbD1vfHxpfHxufHxhO2lmKCFsJiYhcylyZXR1cm5bMCwwXTt2YXIgYz10LnNpZGUsdT1sPyh0LnRpY2t3aWR0aHx8MCkvMjowLGY9MyxoPXQudGlja2ZvbnQ/dC50aWNrZm9udC5zaXplOjEyOyhvfHxuKSYmKHUrPWgqVSxmKz0odC5saW5ld2lkdGh8fDApLzIpOyhpfHxhKSYmKHUrPSh0LmxpbmV3aWR0aHx8MCkvMixmKz0zKTtzJiYidG9wIj09PWMmJihmLT1oKigxLVUpKTsoaXx8bikmJih1PS11KTsiYm90dG9tIiE9PWMmJiJyaWdodCIhPT1jfHwoZj0tZik7cmV0dXJuW2w/dTowLHM/ZjowXX0odCkscj1lWzBdLG49ZVsxXTtyZXR1cm4ieCI9PT10Ll9pZC5jaGFyQXQoMCk/ZnVuY3Rpb24oZSl7cmV0dXJuIGwocit0Ll9vZmZzZXQrdC5sMnAoYnQoZSkpLG4pfTpmdW5jdGlvbihlKXtyZXR1cm4gbChuLHIrdC5fb2Zmc2V0K3QubDJwKGJ0KGUpKSl9fSxxLm1ha2VUaWNrUGF0aD1mdW5jdGlvbih0LGUscixuKXtufHwobj17fSk7dmFyIGk9bi5taW5vcjtpZihpJiYhdC5taW5vcilyZXR1cm4iIjt2YXIgYT12b2lkIDAhPT1uLmxlbj9uLmxlbjppP3QubWlub3IudGlja2xlbjp0LnRpY2tsZW4sbz10Ll9pZC5jaGFyQXQoMCkscz0odC5saW5ld2lkdGh8fDEpLzI7cmV0dXJuIngiPT09bz8iTTAsIisoZStzKnIpKyJ2IithKnI6Ik0iKyhlK3MqcikrIiwwaCIrYSpyfSxxLm1ha2VMYWJlbEZucz1mdW5jdGlvbih0LGUscil7dmFyIG49dC50aWNrbGFiZWxwb3NpdGlvbnx8IiIsYT1mdW5jdGlvbih0KXtyZXR1cm4tMSE9PW4uaW5kZXhPZih0KX0sbz1hKCJ0b3AiKSxsPWEoImxlZnQiKSxjPWEoInJpZ2h0IiksdT1hKCJib3R0b20iKXx8bHx8b3x8YyxmPWEoImluc2lkZSIpLGg9Imluc2lkZSI9PT1uJiYiaW5zaWRlIj09PXQudGlja3N8fCFmJiYib3V0c2lkZSI9PT10LnRpY2tzJiYiYm91bmRhcmllcyIhPT10LnRpY2tzb24scD0wLGQ9MCxtPWg/dC50aWNrbGVuOjA7aWYoZj9tKj0tMTp1JiYobT0wKSxoJiYocCs9bSxyKSl7dmFyIGc9cy5kZWcycmFkKHIpO3A9bSpNYXRoLmNvcyhnKSsxLGQ9bSpNYXRoLnNpbihnKX10LnNob3d0aWNrbGFiZWxzJiYoaHx8dC5zaG93bGluZSkmJihwKz0uMip0LnRpY2tmb250LnNpemUpO3ZhciB2LHkseCxiLF8sdz17bGFiZWxTdGFuZG9mZjpwKz0odC5saW5ld2lkdGh8fDEpLzIqKGY/LTE6MSksbGFiZWxTaGlmdDpkfSxUPTAsaz10LnNpZGUsQT10Ll9pZC5jaGFyQXQoMCksTT10LnRpY2thbmdsZTtpZigieCI9PT1BKWI9KF89IWYmJiJib3R0b20iPT09a3x8ZiYmInRvcCI9PT1rKT8xOi0xLGYmJihiKj0tMSksdj1kKmIseT1lK3AqYix4PV8/MTotLjIsOTA9PT1NYXRoLmFicyhNKSYmKGY/eCs9ajp4PS05MD09PU0mJiJib3R0b20iPT09az9VOjkwPT09TSYmInRvcCI9PT1rP2o6LjUsVD1qLzIqKE0vOTApKSx3LnhGbj1mdW5jdGlvbih0KXtyZXR1cm4gdC5keCt2K1QqdC5mb250U2l6ZX0sdy55Rm49ZnVuY3Rpb24odCl7cmV0dXJuIHQuZHkreSt0LmZvbnRTaXplKnh9LHcuYW5jaG9yRm49ZnVuY3Rpb24odCxlKXtpZih1KXtpZihsKXJldHVybiJlbmQiO2lmKGMpcmV0dXJuInN0YXJ0In1yZXR1cm4gaShlKSYmMCE9PWUmJjE4MCE9PWU/ZSpiPDAhPT1mPyJlbmQiOiJzdGFydCI6Im1pZGRsZSJ9LHcuaGVpZ2h0Rm49ZnVuY3Rpb24oZSxyLG4pe3JldHVybiByPC02MHx8cj42MD8tLjUqbjoidG9wIj09PXQuc2lkZSE9PWY/LW46MH07ZWxzZSBpZigieSI9PT1BKXtpZihiPShfPSFmJiYibGVmdCI9PT1rfHxmJiYicmlnaHQiPT09ayk/MTotMSxmJiYoYio9LTEpLHY9cCx5PWQqYix4PTAsZnx8OTAhPT1NYXRoLmFicyhNKXx8KHg9LTkwPT09TSYmImxlZnQiPT09a3x8OTA9PT1NJiYicmlnaHQiPT09az9VOi41KSxmKXt2YXIgUz1pKE0pPytNOjA7aWYoMCE9PVMpe3ZhciBFPXMuZGVnMnJhZChTKTtUPU1hdGguYWJzKE1hdGguc2luKEUpKSpVKmIseD0wfX13LnhGbj1mdW5jdGlvbih0KXtyZXR1cm4gdC5keCtlLSh2K3QuZm9udFNpemUqeCkqYitUKnQuZm9udFNpemV9LHcueUZuPWZ1bmN0aW9uKHQpe3JldHVybiB0LmR5K3krdC5mb250U2l6ZSpqfSx3LmFuY2hvckZuPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGkoZSkmJjkwPT09TWF0aC5hYnMoZSk/Im1pZGRsZSI6Xz8iZW5kIjoic3RhcnQifSx3LmhlaWdodEZuPWZ1bmN0aW9uKGUscixuKXtyZXR1cm4icmlnaHQiPT09dC5zaWRlJiYocio9LTEpLHI8LTMwPy1uOnI8MzA/LS41Km46MH19cmV0dXJuIHd9LHEuZHJhd1RpY2tzPWZ1bmN0aW9uKHQsZSxyKXtyPXJ8fHt9O3ZhciBpPWUuX2lkKyJ0aWNrIixhPVtdLmNvbmNhdChlLm1pbm9yJiZlLm1pbm9yLnRpY2tzP3IudmFscy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm1pbm9yJiYhdC5ub1RpY2t9KSk6W10pLmNvbmNhdChlLnRpY2tzP3IudmFscy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiF0Lm1pbm9yJiYhdC5ub1RpY2t9KSk6W10pLG89ci5sYXllci5zZWxlY3RBbGwoInBhdGguIitpKS5kYXRhKGEsX3QpO28uZXhpdCgpLnJlbW92ZSgpLG8uZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKGksMSkuY2xhc3NlZCgidGlja3MiLDEpLmNsYXNzZWQoImNyaXNwIiwhMSE9PXIuY3Jpc3ApLmVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiBmLnN0cm9rZShuLnNlbGVjdCh0aGlzKSx0Lm1pbm9yP2UubWlub3IudGlja2NvbG9yOmUudGlja2NvbG9yKX0pKS5zdHlsZSgic3Ryb2tlLXdpZHRoIiwoZnVuY3Rpb24ocil7cmV0dXJuIGguY3Jpc3BSb3VuZCh0LHIubWlub3I/ZS5taW5vci50aWNrd2lkdGg6ZS50aWNrd2lkdGgsMSkrInB4In0pKS5hdHRyKCJkIixyLnBhdGgpLnN0eWxlKCJkaXNwbGF5IixudWxsKSx6dChlLFtSXSksby5hdHRyKCJ0cmFuc2Zvcm0iLHIudHJhbnNGbil9LHEuZHJhd0dyaWQ9ZnVuY3Rpb24odCxlLHIpe3I9cnx8e307dmFyIGk9ZS5faWQrImdyaWQiLGE9ZS5taW5vciYmZS5taW5vci5zaG93Z3JpZCxvPWE/ci52YWxzLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQubWlub3J9KSk6W10scz1lLnNob3dncmlkP3IudmFscy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiF0Lm1pbm9yfSkpOltdLGw9ci5jb3VudGVyQXhpcztpZihsJiZxLnNob3VsZFNob3daZXJvTGluZSh0LGUsbCkpZm9yKHZhciBjPSJhcnJheSI9PT1lLnRpY2ttb2RlLHU9MDt1PHMubGVuZ3RoO3UrKyl7dmFyIHA9c1t1XS54O2lmKGM/IXA6TWF0aC5hYnMocCk8ZS5kdGljay8xMDApe2lmKHM9cy5zbGljZSgwLHUpLmNvbmNhdChzLnNsaWNlKHUrMSkpLCFjKWJyZWFrO3UtLX19ZS5fZ3c9aC5jcmlzcFJvdW5kKHQsZS5ncmlkd2lkdGgsMSk7Zm9yKHZhciBkPWE/aC5jcmlzcFJvdW5kKHQsZS5taW5vci5ncmlkd2lkdGgsMSk6MCxtPXIubGF5ZXIsZz1yLm1pbm9yTGF5ZXIsdj0xO3Y+PTA7di0tKXt2YXIgeT12P206ZztpZih5KXt2YXIgeD15LnNlbGVjdEFsbCgicGF0aC4iK2kpLmRhdGEodj9zOm8sX3QpO3guZXhpdCgpLnJlbW92ZSgpLHguZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKGksMSkuY2xhc3NlZCgiY3Jpc3AiLCExIT09ci5jcmlzcCkseC5hdHRyKCJ0cmFuc2Zvcm0iLHIudHJhbnNGbikuYXR0cigiZCIsci5wYXRoKS5lYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gZi5zdHJva2Uobi5zZWxlY3QodGhpcyksdC5taW5vcj9lLm1pbm9yLmdyaWRjb2xvcjplLmdyaWRjb2xvcnx8IiNkZGQiKX0pKS5zdHlsZSgic3Ryb2tlLWRhc2hhcnJheSIsKGZ1bmN0aW9uKHQpe3JldHVybiBoLmRhc2hTdHlsZSh0Lm1pbm9yP2UubWlub3IuZ3JpZGRhc2g6ZS5ncmlkZGFzaCx0Lm1pbm9yP2UubWlub3IuZ3JpZHdpZHRoOmUuZ3JpZHdpZHRoKX0pKS5zdHlsZSgic3Ryb2tlLXdpZHRoIiwoZnVuY3Rpb24odCl7cmV0dXJuKHQubWlub3I/ZDplLl9ndykrInB4In0pKS5zdHlsZSgiZGlzcGxheSIsbnVsbCksImZ1bmN0aW9uIj09dHlwZW9mIHIucGF0aCYmeC5hdHRyKCJkIixyLnBhdGgpfX16dChlLFt6LERdKX0scS5kcmF3WmVyb0xpbmU9ZnVuY3Rpb24odCxlLHIpe3I9cnx8cjt2YXIgbj1lLl9pZCsiemwiLGk9cS5zaG91bGRTaG93WmVyb0xpbmUodCxlLHIuY291bnRlckF4aXMpLGE9ci5sYXllci5zZWxlY3RBbGwoInBhdGguIituKS5kYXRhKGk/W3t4OjAsaWQ6ZS5faWR9XTpbXSk7YS5leGl0KCkucmVtb3ZlKCksYS5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmNsYXNzZWQobiwxKS5jbGFzc2VkKCJ6bCIsMSkuY2xhc3NlZCgiY3Jpc3AiLCExIT09ci5jcmlzcCkuZWFjaCgoZnVuY3Rpb24oKXtyLmxheWVyLnNlbGVjdEFsbCgicGF0aCIpLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIFcodC5pZCxlLmlkKX0pKX0pKSxhLmF0dHIoInRyYW5zZm9ybSIsci50cmFuc0ZuKS5hdHRyKCJkIixyLnBhdGgpLmNhbGwoZi5zdHJva2UsZS56ZXJvbGluZWNvbG9yfHxmLmRlZmF1bHRMaW5lKS5zdHlsZSgic3Ryb2tlLXdpZHRoIixoLmNyaXNwUm91bmQodCxlLnplcm9saW5ld2lkdGgsZS5fZ3d8fDEpKyJweCIpLnN0eWxlKCJkaXNwbGF5IixudWxsKSx6dChlLFtPXSl9LHEuZHJhd0xhYmVscz1mdW5jdGlvbih0LGUscil7cj1yfHx7fTt2YXIgYT10Ll9mdWxsTGF5b3V0LG89ZS5faWQsdT1vLmNoYXJBdCgwKSxmPXIuY2xzfHxvKyJ0aWNrIixwPXIudmFscy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRleHR9KSksZD1yLmxhYmVsRm5zLG09ci5zZWNvbmRhcnk/MDplLnRpY2thbmdsZSxnPShlLl9wcmV2VGlja0FuZ2xlc3x8e30pW2ZdLHY9ci5sYXllci5zZWxlY3RBbGwoImcuIitmKS5kYXRhKGUuc2hvd3RpY2tsYWJlbHM/cDpbXSxfdCkseT1bXTtmdW5jdGlvbiB4KHQsYSl7dC5lYWNoKChmdW5jdGlvbih0KXt2YXIgbz1uLnNlbGVjdCh0aGlzKSxzPW8uc2VsZWN0KCIudGV4dC1tYXRoLWdyb3VwIiksdT1kLmFuY2hvckZuKHQsYSksZj1yLnRyYW5zRm4uY2FsbChvLm5vZGUoKSx0KSsoaShhKSYmMCE9K2E/IiByb3RhdGUoIithKyIsIitkLnhGbih0KSsiLCIrKGQueUZuKHQpLXQuZm9udFNpemUvMikrIikiOiIiKSxwPWMubGluZUNvdW50KG8pLG09Vip0LmZvbnRTaXplLGc9ZC5oZWlnaHRGbih0LGkoYSk/K2E6MCwocC0xKSptKTtpZihnJiYoZis9bCgwLGcpKSxzLmVtcHR5KCkpe3ZhciB2PW8uc2VsZWN0KCJ0ZXh0Iik7di5hdHRyKHt0cmFuc2Zvcm06ZiwidGV4dC1hbmNob3IiOnV9KSx2LnN0eWxlKCJvcGFjaXR5IiwxKSxlLl9hZGp1c3RUaWNrTGFiZWxzT3ZlcmZsb3cmJmUuX2FkanVzdFRpY2tMYWJlbHNPdmVyZmxvdygpfWVsc2V7dmFyIHk9aC5iQm94KHMubm9kZSgpKS53aWR0aCp7ZW5kOi0uNSxzdGFydDouNX1bdV07cy5hdHRyKCJ0cmFuc2Zvcm0iLGYrbCh5LDApKX19KSl9di5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoZiwxKS5hcHBlbmQoInRleHQiKS5hdHRyKCJ0ZXh0LWFuY2hvciIsIm1pZGRsZSIpLmVhY2goKGZ1bmN0aW9uKGUpe3ZhciByPW4uc2VsZWN0KHRoaXMpLGk9dC5fcHJvbWlzZXMubGVuZ3RoO3IuY2FsbChjLnBvc2l0aW9uVGV4dCxkLnhGbihlKSxkLnlGbihlKSkuY2FsbChoLmZvbnQsZS5mb250LGUuZm9udFNpemUsZS5mb250Q29sb3IpLnRleHQoZS50ZXh0KS5jYWxsKGMuY29udmVydFRvVHNwYW5zLHQpLHQuX3Byb21pc2VzW2ldP3kucHVzaCh0Ll9wcm9taXNlcy5wb3AoKS50aGVuKChmdW5jdGlvbigpe3gocixtKX0pKSk6eChyLG0pfSkpLHp0KGUsW0ZdKSx2LmV4aXQoKS5yZW1vdmUoKSxyLnJlcG9zaXRpb25PblVwZGF0ZSYmdi5lYWNoKChmdW5jdGlvbih0KXtuLnNlbGVjdCh0aGlzKS5zZWxlY3QoInRleHQiKS5jYWxsKGMucG9zaXRpb25UZXh0LGQueEZuKHQpLGQueUZuKHQpKX0pKSxlLl9hZGp1c3RUaWNrTGFiZWxzT3ZlcmZsb3c9ZnVuY3Rpb24oKXt2YXIgcj1lLnRpY2tsYWJlbG92ZXJmbG93O2lmKHImJiJhbGxvdyIhPT1yKXt2YXIgaT0tMSE9PXIuaW5kZXhPZigiaGlkZSIpLG89IngiPT09ZS5faWQuY2hhckF0KDApLGw9MCxjPW8/dC5fZnVsbExheW91dC53aWR0aDp0Ll9mdWxsTGF5b3V0LmhlaWdodDtpZigtMSE9PXIuaW5kZXhPZigiZG9tYWluIikpe3ZhciB1PXMuc2ltcGxlTWFwKGUucmFuZ2UsZS5yMmwpO2w9ZS5sMnAodVswXSkrZS5fb2Zmc2V0LGM9ZS5sMnAodVsxXSkrZS5fb2Zmc2V0fXZhciBmPU1hdGgubWluKGwsYykscD1NYXRoLm1heChsLGMpLGQ9ZS5zaWRlLG09MS8wLGc9LTEvMDtmb3IodmFyIHkgaW4gdi5lYWNoKChmdW5jdGlvbih0KXt2YXIgcj1uLnNlbGVjdCh0aGlzKTtpZihyLnNlbGVjdCgiLnRleHQtbWF0aC1ncm91cCIpLmVtcHR5KCkpe3ZhciBhPWguYkJveChyLm5vZGUoKSkscz0wO28/KGEucmlnaHQ+cHx8YS5sZWZ0PGYpJiYocz0xKTooYS5ib3R0b20+cHx8YS50b3ArKGUudGlja2FuZ2xlPzA6dC5mb250U2l6ZS80KTxmKSYmKHM9MSk7dmFyIGw9ci5zZWxlY3QoInRleHQiKTtzP2kmJmwuc3R5bGUoIm9wYWNpdHkiLDApOihsLnN0eWxlKCJvcGFjaXR5IiwxKSxtPSJib3R0b20iPT09ZHx8InJpZ2h0Ij09PWQ/TWF0aC5taW4obSxvP2EudG9wOmEubGVmdCk6LTEvMCxnPSJ0b3AiPT09ZHx8ImxlZnQiPT09ZD9NYXRoLm1heChnLG8/YS5ib3R0b206YS5yaWdodCk6MS8wKX19KSksYS5fcGxvdHMpe3ZhciB4PWEuX3Bsb3RzW3ldO2lmKGUuX2lkPT09eC54YXhpcy5faWR8fGUuX2lkPT09eC55YXhpcy5faWQpe3ZhciBiPW8/eC55YXhpczp4LnhheGlzO2ImJihiWyJfdmlzaWJsZUxhYmVsTWluXyIrZS5faWRdPW0sYlsiX3Zpc2libGVMYWJlbE1heF8iK2UuX2lkXT1nKX19fX0sZS5faGlkZUNvdW50ZXJBeGlzSW5zaWRlVGlja0xhYmVscz1mdW5jdGlvbih0KXt2YXIgcj0ieCI9PT1lLl9pZC5jaGFyQXQoMCksaT1bXTtmb3IodmFyIG8gaW4gYS5fcGxvdHMpe3ZhciBzPWEuX3Bsb3RzW29dO2UuX2lkIT09cy54YXhpcy5faWQmJmUuX2lkIT09cy55YXhpcy5faWR8fGkucHVzaChyP3MueWF4aXM6cy54YXhpcyl9aS5mb3JFYWNoKChmdW5jdGlvbihyLGkpe3ImJk90KHIpJiYodHx8W08sRCx6LFIsRl0pLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBvPSJ0aWNrIj09PXQuSyYmInRleHQiPT09dC5MJiYicGVyaW9kIj09PWUudGlja2xhYmVsbW9kZSxzPWEuX3Bsb3RzW2UuX21haW5TdWJwbG90XTsodC5LPT09Ty5LP3MuemVyb2xpbmVsYXllci5zZWxlY3RBbGwoIi4iK2UuX2lkKyJ6bCIpOnQuSz09PUQuSz9zLm1pbm9yR3JpZGxheWVyLnNlbGVjdEFsbCgiLiIrZS5faWQpOnQuSz09PXouSz9zLmdyaWRsYXllci5zZWxlY3RBbGwoIi4iK2UuX2lkKTpzW2UuX2lkLmNoYXJBdCgwKSsiYXhpc2xheWVyIl0pLmVhY2goKGZ1bmN0aW9uKCl7dmFyIGE9bi5zZWxlY3QodGhpcyk7dC5MJiYoYT1hLnNlbGVjdEFsbCh0LkwpKSxhLmVhY2goKGZ1bmN0aW9uKGEpe3ZhciBzPWUubDJwKG8/YnQoYSk6YS54KStlLl9vZmZzZXQsbD1uLnNlbGVjdCh0aGlzKTtzPGVbIl92aXNpYmxlTGFiZWxNYXhfIityLl9pZF0mJnM+ZVsiX3Zpc2libGVMYWJlbE1pbl8iK3IuX2lkXT9sLnN0eWxlKCJkaXNwbGF5Iiwibm9uZSIpOiJ0aWNrIiE9PXQuS3x8aXx8bC5zdHlsZSgiZGlzcGxheSIsbnVsbCl9KSl9KSl9KSl9KSl9LHgodixnKzE/ZzptKTt2YXIgYj1udWxsO2UuX3NlbGVjdGlvbnMmJihlLl9zZWxlY3Rpb25zW2ZdPXYpO3ZhciBfPVtmdW5jdGlvbigpe3JldHVybiB5Lmxlbmd0aCYmUHJvbWlzZS5hbGwoeSl9XTtlLmF1dG9tYXJnaW4mJmEuX3JlZHJhd0Zyb21BdXRvTWFyZ2luQ291bnQmJjkwPT09Zz8oYj05MCxfLnB1c2goKGZ1bmN0aW9uKCl7eCh2LGcpfSkpKTpfLnB1c2goKGZ1bmN0aW9uKCl7aWYoeCh2LG0pLHAubGVuZ3RoJiYieCI9PT11JiYhaShtKSYmKCJsb2ciIT09ZS50eXBlfHwiRCIhPT1TdHJpbmcoZS5kdGljaykuY2hhckF0KDApKSl7Yj0wO3ZhciB0LG49MCxhPVtdO2lmKHYuZWFjaCgoZnVuY3Rpb24odCl7bj1NYXRoLm1heChuLHQuZm9udFNpemUpO3ZhciByPWUubDJwKHQueCksaT1rdCh0aGlzKSxvPWguYkJveChpLm5vZGUoKSk7YS5wdXNoKHt0b3A6MCxib3R0b206MTAsaGVpZ2h0OjEwLGxlZnQ6ci1vLndpZHRoLzIscmlnaHQ6citvLndpZHRoLzIrMix3aWR0aDpvLndpZHRoKzJ9KX0pKSwiYm91bmRhcmllcyIhPT1lLnRpY2tzb24mJiFlLnNob3dkaXZpZGVyc3x8ci5zZWNvbmRhcnkpe3ZhciBvPXAubGVuZ3RoLGw9TWF0aC5hYnMoKHBbby0xXS54LXBbMF0ueCkqZS5fbSkvKG8tMSksYz1lLnRpY2tsYWJlbHBvc2l0aW9ufHwiIixmPWZ1bmN0aW9uKHQpe3JldHVybi0xIT09Yy5pbmRleE9mKHQpfSxkPWYoInRvcCIpLGc9ZigibGVmdCIpLHk9ZigicmlnaHQiKSxfPWYoImJvdHRvbSIpfHxnfHxkfHx5PyhlLnRpY2t3aWR0aHx8MCkrNjowLHc9bDwyLjUqbnx8Im11bHRpY2F0ZWdvcnkiPT09ZS50eXBlfHwicmVhbGF4aXMiPT09ZS5fbmFtZTtmb3IodD0wO3Q8YS5sZW5ndGgtMTt0KyspaWYocy5iQm94SW50ZXJzZWN0KGFbdF0sYVt0KzFdLF8pKXtiPXc/OTA6MzA7YnJlYWt9fWVsc2V7dmFyIFQ9Mjtmb3IoZS50aWNrcyYmKFQrPWUudGlja3dpZHRoLzIpLHQ9MDt0PGEubGVuZ3RoO3QrKyl7dmFyIGs9cFt0XS54Ym5kLEE9YVt0XTtpZihudWxsIT09a1swXSYmQS5sZWZ0LWUubDJwKGtbMF0pPFR8fG51bGwhPT1rWzFdJiZlLmwycChrWzFdKS1BLnJpZ2h0PFQpe2I9OTA7YnJlYWt9fX1iJiZ4KHYsYil9fSkpLGUuX3RpY2tBbmdsZXMmJl8ucHVzaCgoZnVuY3Rpb24oKXtlLl90aWNrQW5nbGVzW2ZdPW51bGw9PT1iP2kobSk/bTowOmJ9KSk7dmFyIHc9ZS5fYW5jaG9yQXhpczt3JiZ3LmF1dG9yYW5nZSYmT3QoZSkmJiFYKGEsZS5faWQpJiYoYS5faW5zaWRlVGlja0xhYmVsc0F1dG9yYW5nZXx8KGEuX2luc2lkZVRpY2tMYWJlbHNBdXRvcmFuZ2U9e30pLGEuX2luc2lkZVRpY2tMYWJlbHNBdXRvcmFuZ2Vbdy5fbmFtZSsiLmF1dG9yYW5nZSJdPXcuYXV0b3JhbmdlLF8ucHVzaCgoZnVuY3Rpb24oKXt2LmVhY2goKGZ1bmN0aW9uKHQscil7dmFyIG49a3QodGhpcyk7bi5zZWxlY3QoIi50ZXh0LW1hdGgtZ3JvdXAiKS5lbXB0eSgpJiYoZS5fdmFsc1tyXS5iYj1oLmJCb3gobi5ub2RlKCkpKX0pKX0pKSk7dmFyIFQ9cy5zeW5jT3JBc3luYyhfKTtyZXR1cm4gVCYmVC50aGVuJiZ0Ll9wcm9taXNlcy5wdXNoKFQpLFR9LHEuZ2V0UHhQb3NpdGlvbj1mdW5jdGlvbih0LGUpe3ZhciByLG49dC5fZnVsbExheW91dC5fc2l6ZSxpPWUuX2lkLmNoYXJBdCgwKSxhPWUuc2lkZTtyZXR1cm4iZnJlZSIhPT1lLmFuY2hvcj9yPWUuX2FuY2hvckF4aXM6IngiPT09aT9yPXtfb2Zmc2V0Om4udCsoMS0oZS5wb3NpdGlvbnx8MCkpKm4uaCxfbGVuZ3RoOjB9OiJ5Ij09PWkmJihyPXtfb2Zmc2V0Om4ubCsoZS5wb3NpdGlvbnx8MCkqbi53LF9sZW5ndGg6MH0pLCJ0b3AiPT09YXx8ImxlZnQiPT09YT9yLl9vZmZzZXQ6ImJvdHRvbSI9PT1hfHwicmlnaHQiPT09YT9yLl9vZmZzZXQrci5fbGVuZ3RoOnZvaWQgMH0scS5zaG91bGRTaG93WmVyb0xpbmU9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXMuc2ltcGxlTWFwKGUucmFuZ2UsZS5yMmwpO3JldHVybiBuWzBdKm5bMV08PTAmJmUuemVyb2xpbmUmJigibGluZWFyIj09PWUudHlwZXx8Ii0iPT09ZS50eXBlKSYmIShlLnJhbmdlYnJlYWtzJiZlLm1hc2tCcmVha3MoMCk9PT1JKSYmKFR0KGUsMCl8fCFmdW5jdGlvbih0LGUscixuKXt2YXIgaT1yLl9tYWluQXhpcztpZighaSlyZXR1cm47dmFyIGE9dC5fZnVsbExheW91dCxvPWUuX2lkLmNoYXJBdCgwKSxzPXEuY291bnRlckxldHRlcihlLl9pZCksbD1lLl9vZmZzZXQrKE1hdGguYWJzKG5bMF0pPE1hdGguYWJzKG5bMV0pPT0oIngiPT09byk/MDplLl9sZW5ndGgpO2Z1bmN0aW9uIGModCl7aWYoIXQuc2hvd2xpbmV8fCF0LmxpbmV3aWR0aClyZXR1cm4hMTt2YXIgcj1NYXRoLm1heCgodC5saW5ld2lkdGgrZS56ZXJvbGluZXdpZHRoKS8yLDEpO2Z1bmN0aW9uIG4odCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0JiZNYXRoLmFicyh0LWwpPHJ9aWYobih0Ll9tYWluTGluZVBvc2l0aW9uKXx8bih0Ll9tYWluTWlycm9yUG9zaXRpb24pKXJldHVybiEwO3ZhciBpPXQuX2xpbmVwb3NpdGlvbnN8fHt9O2Zvcih2YXIgYSBpbiBpKWlmKG4oaVthXVswXSl8fG4oaVthXVsxXSkpcmV0dXJuITB9dmFyIHU9YS5fcGxvdHNbci5fbWFpblN1YnBsb3RdO2lmKCEodS5tYWlucGxvdGluZm98fHUpLm92ZXJsYXlzLmxlbmd0aClyZXR1cm4gYyhyKTtmb3IodmFyIGY9cS5saXN0KHQscyksaD0wO2g8Zi5sZW5ndGg7aCsrKXt2YXIgcD1mW2hdO2lmKHAuX21haW5BeGlzPT09aSYmYyhwKSlyZXR1cm4hMH19KHQsZSxyLG4pfHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10Ll9mdWxsRGF0YSxuPWUuX21haW5TdWJwbG90LGk9ZS5faWQuY2hhckF0KDApLGE9MDthPHIubGVuZ3RoO2ErKyl7dmFyIHM9clthXTtpZighMD09PXMudmlzaWJsZSYmcy54YXhpcytzLnlheGlzPT09bil7aWYoby50cmFjZUlzKHMsImJhci1saWtlIikmJnMub3JpZW50YXRpb249PT17eDoiaCIseToidiJ9W2ldKXJldHVybiEwO2lmKHMuZmlsbCYmcy5maWxsLmNoYXJBdChzLmZpbGwubGVuZ3RoLTEpPT09aSlyZXR1cm4hMH19cmV0dXJuITF9KHQsZSkpfSxxLmNsaXBFbmRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gVHQodCxlLngpfSkpfSxxLmFsbG93QXV0b01hcmdpbj1mdW5jdGlvbih0KXtmb3IodmFyIGU9cS5saXN0KHQsIiIsITApLHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZVtyXTtuLmF1dG9tYXJnaW4mJihhLmFsbG93QXV0b01hcmdpbih0LEF0KG4pKSxuLm1pcnJvciYmYS5hbGxvd0F1dG9NYXJnaW4odCxNdChuKSkpLG8uZ2V0Q29tcG9uZW50TWV0aG9kKCJyYW5nZXNsaWRlciIsImlzVmlzaWJsZSIpKG4pJiZhLmFsbG93QXV0b01hcmdpbih0LFN0KG4pKX19LHEuc3dhcD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1mdW5jdGlvbih0LGUpe3ZhciByLG4saT1bXTtmb3Iocj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgYT1bXSxvPXQuX2Z1bGxEYXRhW2Vbcl1dLnhheGlzLHM9dC5fZnVsbERhdGFbZVtyXV0ueWF4aXM7aWYobyYmcyl7Zm9yKG49MDtuPGkubGVuZ3RoO24rKyktMT09PWlbbl0ueC5pbmRleE9mKG8pJiYtMT09PWlbbl0ueS5pbmRleE9mKHMpfHxhLnB1c2gobik7aWYoYS5sZW5ndGgpe3ZhciBsLGM9aVthWzBdXTtpZihhLmxlbmd0aD4xKWZvcihuPTE7bjxhLmxlbmd0aDtuKyspbD1pW2Fbbl1dLEV0KGMueCxsLngpLEV0KGMueSxsLnkpO0V0KGMueCxbb10pLEV0KGMueSxbc10pfWVsc2UgaS5wdXNoKHt4OltvXSx5OltzXX0pfX1yZXR1cm4gaX0odCxlKSxuPTA7bjxyLmxlbmd0aDtuKyspTHQodCxyW25dLngscltuXS55KX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6MzY3LCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjM4OSwiLi4vLi4vY29tcG9uZW50cy90aXRsZXMiOjQ3NiwiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCI6NDgzLCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo0OTEsIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiOjU0MSwiLi4vLi4vcGxvdHMvcGxvdHMiOjYyOCwiLi4vLi4vcmVnaXN0cnkiOjY0NywiLi9hdXRvcmFuZ2UiOjU2NSwiLi9heGlzX2F1dG90eXBlIjo1NjcsIi4vYXhpc19pZHMiOjU3MCwiLi9jbGVhbl90aWNrcyI6NTcyLCIuL2xheW91dF9hdHRyaWJ1dGVzIjo1NzksIi4vc2V0X2NvbnZlcnQiOjU4NSwiQHBsb3RseS9kMyI6NTgsImZhc3QtaXNudW1lcmljIjoxOTB9XSw1Njc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxpPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTSxvPWkuaXNBcnJheU9yVHlwZWRBcnJheSxzPWkuaXNEYXRlVGltZSxsPWkuY2xlYW5OdW1iZXIsYz1NYXRoLnJvdW5kO2Z1bmN0aW9uIHUodCxlKXtyZXR1cm4gZT9uKHQpOiJudW1iZXIiPT10eXBlb2YgdH1mdW5jdGlvbiBmKHQpe3JldHVybiBNYXRoLm1heCgxLCh0LTEpLzFlMyl9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgaT10LGg9ci5ub011bHRpQ2F0ZWdvcnk7aWYobyhpKSYmIWkubGVuZ3RoKXJldHVybiItIjtpZighaCYmZnVuY3Rpb24odCl7cmV0dXJuIG8odFswXSkmJm8odFsxXSl9KGkpKXJldHVybiJtdWx0aWNhdGVnb3J5IjtpZihoJiZBcnJheS5pc0FycmF5KGlbMF0pKXtmb3IodmFyIHA9W10sZD0wO2Q8aS5sZW5ndGg7ZCsrKWlmKG8oaVtkXSkpZm9yKHZhciBtPTA7bTxpW2RdLmxlbmd0aDttKyspcC5wdXNoKGlbZF1bbV0pO2k9cH1pZihmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10Lmxlbmd0aCxpPWYociksYT0wLG89MCxsPXt9LHU9MDt1PHI7dSs9aSl7dmFyIGg9Yyh1KSxwPXRbaF0sZD1TdHJpbmcocCk7bFtkXXx8KGxbZF09MSxzKHAsZSkmJmErKyxuKHApJiZvKyspfXJldHVybiBhPjIqb30oaSxlKSlyZXR1cm4iZGF0ZSI7dmFyIGc9InN0cmljdCIhPT1yLmF1dG90eXBlbnVtYmVycztyZXR1cm4gZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5sZW5ndGgsbj1mKHIpLGk9MCxvPTAscz17fSx1PTA7dTxyO3UrPW4pe3ZhciBoPWModSkscD10W2hdLGQ9U3RyaW5nKHApO2lmKCFzW2RdKXtzW2RdPTE7dmFyIG09dHlwZW9mIHA7ImJvb2xlYW4iPT09bT9vKys6KGU/bChwKSE9PWE6Im51bWJlciI9PT1tKT9pKys6InN0cmluZyI9PT1tJiZvKyt9fXJldHVybiBvPjIqaX0oaSxnKT8iY2F0ZWdvcnkiOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQubGVuZ3RoLG49MDtuPHI7bisrKWlmKHUodFtuXSxlKSlyZXR1cm4hMDtyZXR1cm4hMX0oaSxnKT8ibGluZWFyIjoiLSJ9fSx7Ii4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiOjQ5MSwiLi4vLi4vbGliIjo1MTUsImZhc3QtaXNudW1lcmljIjoxOTB9XSw1Njg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxpPXQoIi4uLy4uL3JlZ2lzdHJ5IiksYT10KCIuLi8uLi9saWIiKSxvPXQoIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKSxzPXQoIi4uL2FycmF5X2NvbnRhaW5lcl9kZWZhdWx0cyIpLGw9dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpLGM9dCgiLi90aWNrX3ZhbHVlX2RlZmF1bHRzIiksdT10KCIuL3RpY2tfbWFya19kZWZhdWx0cyIpLGY9dCgiLi90aWNrX2xhYmVsX2RlZmF1bHRzIiksaD10KCIuL3ByZWZpeF9zdWZmaXhfZGVmYXVsdHMiKSxwPXQoIi4vY2F0ZWdvcnlfb3JkZXJfZGVmYXVsdHMiKSxkPXQoIi4vbGluZV9ncmlkX2RlZmF1bHRzIiksbT10KCIuL3NldF9jb252ZXJ0IiksZz10KCIuL2NvbnN0YW50cyIpLldFRUtEQVlfUEFUVEVSTix2PXQoIi4vY29uc3RhbnRzIikuSE9VUl9QQVRURVJOO2Z1bmN0aW9uIHkodCxlLHIpe2Z1bmN0aW9uIGkocixuKXtyZXR1cm4gYS5jb2VyY2UodCxlLGwucmFuZ2VicmVha3MscixuKX1pZihpKCJlbmFibGVkIikpe3ZhciBvPWkoImJvdW5kcyIpO2lmKG8mJm8ubGVuZ3RoPj0yKXt2YXIgcyxjLHU9IiI7aWYoMj09PW8ubGVuZ3RoKWZvcihzPTA7czwyO3MrKylpZihjPWIob1tzXSkpe3U9ZzticmVha312YXIgZj1pKCJwYXR0ZXJuIix1KTtpZihmPT09Zylmb3Iocz0wO3M8MjtzKyspKGM9YihvW3NdKSkmJihlLmJvdW5kc1tzXT1vW3NdPWMtMSk7aWYoZilmb3Iocz0wO3M8MjtzKyspc3dpdGNoKGM9b1tzXSxmKXtjYXNlIGc6aWYoIW4oYykpcmV0dXJuIHZvaWQoZS5lbmFibGVkPSExKTtpZigoYz0rYykhPT1NYXRoLmZsb29yKGMpfHxjPDB8fGM+PTcpcmV0dXJuIHZvaWQoZS5lbmFibGVkPSExKTtlLmJvdW5kc1tzXT1vW3NdPWM7YnJlYWs7Y2FzZSB2OmlmKCFuKGMpKXJldHVybiB2b2lkKGUuZW5hYmxlZD0hMSk7aWYoKGM9K2MpPDB8fGM+MjQpcmV0dXJuIHZvaWQoZS5lbmFibGVkPSExKTtlLmJvdW5kc1tzXT1vW3NdPWN9aWYoITE9PT1yLmF1dG9yYW5nZSl7dmFyIGg9ci5yYW5nZTtpZihoWzBdPGhbMV0pe2lmKG9bMF08aFswXSYmb1sxXT5oWzFdKXJldHVybiB2b2lkKGUuZW5hYmxlZD0hMSl9ZWxzZSBpZihvWzBdPmhbMF0mJm9bMV08aFsxXSlyZXR1cm4gdm9pZChlLmVuYWJsZWQ9ITEpfX1lbHNle3ZhciBwPWkoInZhbHVlcyIpO2lmKCFwfHwhcC5sZW5ndGgpcmV0dXJuIHZvaWQoZS5lbmFibGVkPSExKTtpKCJkdmFsdWUiKX19fWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuLHYpe3ZhciB4LGI9bi5sZXR0ZXIsXz1uLmZvbnR8fHt9LHc9bi5zcGxvbVN0YXNofHx7fSxUPXIoInZpc2libGUiLCFuLnZpc2libGVEZmx0KSxrPWUuX3RlbXBsYXRlfHx7fSxBPWUudHlwZXx8ay50eXBlfHwiLSI7ImRhdGUiPT09QSYmKGkuZ2V0Q29tcG9uZW50TWV0aG9kKCJjYWxlbmRhcnMiLCJoYW5kbGVEZWZhdWx0cyIpKHQsZSwiY2FsZW5kYXIiLG4uY2FsZW5kYXIpLG4ubm9UaWNrbGFiZWxtb2RlfHwoeD1yKCJ0aWNrbGFiZWxtb2RlIikpKTt2YXIgTT0iIjtuLm5vVGlja2xhYmVscG9zaXRpb24mJiJtdWx0aWNhdGVnb3J5IiE9PUF8fChNPWEuY29lcmNlKHQsZSx7dGlja2xhYmVscG9zaXRpb246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLGRmbHQ6Im91dHNpZGUiLHZhbHVlczoicGVyaW9kIj09PXg/WyJvdXRzaWRlIiwiaW5zaWRlIl06IngiPT09Yj9bIm91dHNpZGUiLCJpbnNpZGUiLCJvdXRzaWRlIGxlZnQiLCJpbnNpZGUgbGVmdCIsIm91dHNpZGUgcmlnaHQiLCJpbnNpZGUgcmlnaHQiXTpbIm91dHNpZGUiLCJpbnNpZGUiLCJvdXRzaWRlIHRvcCIsImluc2lkZSB0b3AiLCJvdXRzaWRlIGJvdHRvbSIsImluc2lkZSBib3R0b20iXX19LCJ0aWNrbGFiZWxwb3NpdGlvbiIpKSxuLm5vVGlja2xhYmVsb3ZlcmZsb3d8fHIoInRpY2tsYWJlbG92ZXJmbG93IiwtMSE9PU0uaW5kZXhPZigiaW5zaWRlIik/ImhpZGUgcGFzdCBkb21haW4iOiJjYXRlZ29yeSI9PT1BfHwibXVsdGljYXRlZ29yeSI9PT1BPyJhbGxvdyI6ImhpZGUgcGFzdCBkaXYiKSxtKGUsdik7dmFyIFM9IWUuaXNWYWxpZFJhbmdlKHQucmFuZ2UpO1MmJm4ucmV2ZXJzZURmbHQmJihTPSJyZXZlcnNlZCIpLCFyKCJhdXRvcmFuZ2UiLFMpfHwibGluZWFyIiE9PUEmJiItIiE9PUF8fHIoInJhbmdlbW9kZSIpLHIoInJhbmdlIiksZS5jbGVhblJhbmdlKCkscCh0LGUscixuKSwiY2F0ZWdvcnkiPT09QXx8bi5ub0hvdmVyfHxyKCJob3ZlcmZvcm1hdCIpO3ZhciBFPXIoImNvbG9yIiksTD1FIT09bC5jb2xvci5kZmx0P0U6Xy5jb2xvcixDPXcubGFiZWx8fHYuX2RmbHRUaXRsZVtiXTtpZihoKHQsZSxyLEEsbiksIVQpcmV0dXJuIGU7cigidGl0bGUudGV4dCIsQyksYS5jb2VyY2VGb250KHIsInRpdGxlLmZvbnQiLHtmYW1pbHk6Xy5mYW1pbHksc2l6ZTphLmJpZ0ZvbnQoXy5zaXplKSxjb2xvcjpMfSksYyh0LGUscixBKTt2YXIgUD1uLmhhc01pbm9yO2lmKFAmJihvLm5ld0NvbnRhaW5lcihlLCJtaW5vciIpLGModCxlLHIsQSx7aXNNaW5vcjohMH0pKSxmKHQsZSxyLEEsbiksdSh0LGUscixuKSxQKXt2YXIgST1uLmlzTWlub3I7bi5pc01pbm9yPSEwLHUodCxlLHIsbiksbi5pc01pbm9yPUl9ZCh0LGUscix7ZGZsdENvbG9yOkUsYmdDb2xvcjpuLmJnQ29sb3Isc2hvd0dyaWQ6bi5zaG93R3JpZCxoYXNNaW5vcjpQLGF0dHJpYnV0ZXM6bH0pLCFQfHxlLm1pbm9yLnRpY2tzfHxlLm1pbm9yLnNob3dncmlkfHxkZWxldGUgZS5taW5vciwoZS5zaG93bGluZXx8ZS50aWNrcykmJnIoIm1pcnJvciIpLG4uYXV0b21hcmdpbiYmcigiYXV0b21hcmdpbiIpO3ZhciBPLHo9Im11bHRpY2F0ZWdvcnkiPT09QTtuLm5vVGlja3Nvbnx8ImNhdGVnb3J5IiE9PUEmJiF6fHwhZS50aWNrcyYmIWUuc2hvd2dyaWR8fCh6JiYoTz0iYm91bmRhcmllcyIpLCJib3VuZGFyaWVzIj09PXIoInRpY2tzb24iLE8pJiZkZWxldGUgZS50aWNrbGFiZWxwb3NpdGlvbik7eiYmKHIoInNob3dkaXZpZGVycyIpJiYocigiZGl2aWRlcmNvbG9yIikscigiZGl2aWRlcndpZHRoIikpKTtpZigiZGF0ZSI9PT1BKWlmKHModCxlLHtuYW1lOiJyYW5nZWJyZWFrcyIsaW5jbHVzaW9uQXR0cjoiZW5hYmxlZCIsaGFuZGxlSXRlbURlZmF1bHRzOnl9KSxlLnJhbmdlYnJlYWtzLmxlbmd0aCl7Zm9yKHZhciBEPTA7RDxlLnJhbmdlYnJlYWtzLmxlbmd0aDtEKyspaWYoZS5yYW5nZWJyZWFrc1tEXS5wYXR0ZXJuPT09Zyl7ZS5faGFzRGF5T2ZXZWVrQnJlYWtzPSEwO2JyZWFrfWlmKG0oZSx2KSx2Ll9oYXMoInNjYXR0ZXJnbCIpfHx2Ll9oYXMoInNwbG9tIikpZm9yKHZhciBSPTA7UjxuLmRhdGEubGVuZ3RoO1IrKyl7dmFyIEY9bi5kYXRhW1JdOyJzY2F0dGVyZ2wiIT09Ri50eXBlJiYic3Bsb20iIT09Ri50eXBlfHwoRi52aXNpYmxlPSExLGEud2FybihGLnR5cGUrIiB0cmFjZXMgZG8gbm90IHdvcmsgb24gYXhlcyB3aXRoIHJhbmdlYnJlYWtzLiBTZXR0aW5nIHRyYWNlICIrRi5pbmRleCsiIHRvIGB2aXNpYmxlOiBmYWxzZWAuIikpfX1lbHNlIGRlbGV0ZSBlLnJhbmdlYnJlYWtzO3JldHVybiBlfTt2YXIgeD17c3VuOjEsbW9uOjIsdHVlOjMsd2VkOjQsdGh1OjUsZnJpOjYsc2F0Ojd9O2Z1bmN0aW9uIGIodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiB4W3Quc3Vic3RyKDAsMykudG9Mb3dlckNhc2UoKV19fSx7Ii4uLy4uL2xpYiI6NTE1LCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIjo1NTUsIi4uLy4uL3JlZ2lzdHJ5Ijo2NDcsIi4uL2FycmF5X2NvbnRhaW5lcl9kZWZhdWx0cyI6NTYxLCIuL2NhdGVnb3J5X29yZGVyX2RlZmF1bHRzIjo1NzEsIi4vY29uc3RhbnRzIjo1NzMsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjU3OSwiLi9saW5lX2dyaWRfZGVmYXVsdHMiOjU4MSwiLi9wcmVmaXhfc3VmZml4X2RlZmF1bHRzIjo1ODMsIi4vc2V0X2NvbnZlcnQiOjU4NSwiLi90aWNrX2xhYmVsX2RlZmF1bHRzIjo1ODcsIi4vdGlja19tYXJrX2RlZmF1bHRzIjo1ODgsIi4vdGlja192YWx1ZV9kZWZhdWx0cyI6NTg5LCJmYXN0LWlzbnVtZXJpYyI6MTkwfV0sNTY5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbnN0YW50cy9kb2NzIiksaT1uLkZPUk1BVF9MSU5LLGE9bi5EQVRFX0ZPUk1BVF9MSU5LO2Z1bmN0aW9uIG8odCxlKXtyZXR1cm5bIlNldHMgdGhlICIrdCsiIGZvcm1hdHRpbmcgcnVsZSIrKGU/ImZvciBgIitlKyJgICI6IiIpLCJ1c2luZyBkMyBmb3JtYXR0aW5nIG1pbmktbGFuZ3VhZ2VzIiwid2hpY2ggYXJlIHZlcnkgc2ltaWxhciB0byB0aG9zZSBpbiBQeXRob24uIEZvciBudW1iZXJzLCBzZWU6ICIraSsiLiJdLmpvaW4oIiAiKX1mdW5jdGlvbiBzKHQsZSl7cmV0dXJuIG8odCxlKStbIiBBbmQgZm9yIGRhdGVzIHNlZTogIithKyIuIiwiV2UgYWRkIHR3byBpdGVtcyB0byBkMydzIGRhdGUgZm9ybWF0dGVyOiIsIiolaCogZm9yIGhhbGYgb2YgdGhlIHllYXIgYXMgYSBkZWNpbWFsIG51bWJlciBhcyB3ZWxsIGFzIiwiKiV7bn1mKiBmb3IgZnJhY3Rpb25hbCBzZWNvbmRzIiwid2l0aCBuIGRpZ2l0cy4gRm9yIGV4YW1wbGUsICoyMDE2LTEwLTEzIDA5OjE1OjIzLjQ1Niogd2l0aCB0aWNrZm9ybWF0IiwiKiVIfiVNfiVTLiUyZiogd291bGQgZGlzcGxheSAqMDl+MTV+MjMuNDYqIl0uam9pbigiICIpfWUuZXhwb3J0cz17YXhpc0hvdmVyRm9ybWF0OmZ1bmN0aW9uKHQsZSl7cmV0dXJue3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIixlZGl0VHlwZToibm9uZSIsZGVzY3JpcHRpb246KGU/bzpzKSgiaG92ZXIgdGV4dCIsdCkrWyJCeSBkZWZhdWx0IHRoZSB2YWx1ZXMgYXJlIGZvcm1hdHRlZCB1c2luZyAiKyhlPyJnZW5lcmljIG51bWJlciBmb3JtYXQiOiJgIit0KyJheGlzLmhvdmVyZm9ybWF0YCIpKyIuIl0uam9pbigiICIpfX0sZGVzY3JpcHRpb25Pbmx5TnVtYmVyczpvLGRlc2NyaXB0aW9uV2l0aERhdGVzOnN9fSx7Ii4uLy4uL2NvbnN0YW50cy9kb2NzIjo0ODZ9XSw1NzA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcmVnaXN0cnkiKSxpPXQoIi4vY29uc3RhbnRzIik7ZnVuY3Rpb24gYSh0LGUpe2lmKGUmJmUubGVuZ3RoKWZvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKWlmKGVbcl1bdF0pcmV0dXJuITA7cmV0dXJuITF9ci5pZDJuYW1lPWZ1bmN0aW9uKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdCYmdC5tYXRjaChpLkFYX0lEX1BBVFRFUk4pKXt2YXIgZT10LnNwbGl0KCIgIilbMF0uc3Vic3RyKDEpO3JldHVybiIxIj09PWUmJihlPSIiKSx0LmNoYXJBdCgwKSsiYXhpcyIrZX19LHIubmFtZTJpZD1mdW5jdGlvbih0KXtpZih0Lm1hdGNoKGkuQVhfTkFNRV9QQVRURVJOKSl7dmFyIGU9dC5zdWJzdHIoNSk7cmV0dXJuIjEiPT09ZSYmKGU9IiIpLHQuY2hhckF0KDApK2V9fSxyLmNsZWFuSWQ9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPS8oIGRvbWFpbikkLy50ZXN0KHQpO2lmKCJzdHJpbmciPT10eXBlb2YgdCYmdC5tYXRjaChpLkFYX0lEX1BBVFRFUk4pJiYoIWV8fHQuY2hhckF0KDApPT09ZSkmJighbnx8cikpe3ZhciBhPXQuc3BsaXQoIiAiKVswXS5zdWJzdHIoMSkucmVwbGFjZSgvXjArLywiIik7cmV0dXJuIjEiPT09YSYmKGE9IiIpLHQuY2hhckF0KDApK2ErKG4mJnI/IiBkb21haW4iOiIiKX19LHIubGlzdD1mdW5jdGlvbih0LGUsbil7dmFyIGk9dC5fZnVsbExheW91dDtpZighaSlyZXR1cm5bXTt2YXIgYSxvPXIubGlzdElkcyh0LGUpLHM9bmV3IEFycmF5KG8ubGVuZ3RoKTtmb3IoYT0wO2E8by5sZW5ndGg7YSsrKXt2YXIgbD1vW2FdO3NbYV09aVtsLmNoYXJBdCgwKSsiYXhpcyIrbC5zdWJzdHIoMSldfWlmKCFuKXt2YXIgYz1pLl9zdWJwbG90cy5nbDNkfHxbXTtmb3IoYT0wO2E8Yy5sZW5ndGg7YSsrKXt2YXIgdT1pW2NbYV1dO2U/cy5wdXNoKHVbZSsiYXhpcyJdKTpzLnB1c2godS54YXhpcyx1LnlheGlzLHUuemF4aXMpfX1yZXR1cm4gc30sci5saXN0SWRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5fZnVsbExheW91dDtpZighcilyZXR1cm5bXTt2YXIgbj1yLl9zdWJwbG90cztyZXR1cm4gZT9uW2UrImF4aXMiXTpuLnhheGlzLmNvbmNhdChuLnlheGlzKX0sci5nZXRGcm9tSWQ9ZnVuY3Rpb24odCxlLG4pe3ZhciBpPXQuX2Z1bGxMYXlvdXQ7cmV0dXJuIGU9dm9pZCAwPT09ZXx8InN0cmluZyIhPXR5cGVvZiBlP2U6ZS5yZXBsYWNlKCIgZG9tYWluIiwiIiksIngiPT09bj9lPWUucmVwbGFjZSgveVswLTldKi8sIiIpOiJ5Ij09PW4mJihlPWUucmVwbGFjZSgveFswLTldKi8sIiIpKSxpW3IuaWQybmFtZShlKV19LHIuZ2V0RnJvbVRyYWNlPWZ1bmN0aW9uKHQsZSxpKXt2YXIgYT10Ll9mdWxsTGF5b3V0LG89bnVsbDtpZihuLnRyYWNlSXMoZSwiZ2wzZCIpKXt2YXIgcz1lLnNjZW5lOyJzY2VuZSI9PT1zLnN1YnN0cigwLDUpJiYobz1hW3NdW2krImF4aXMiXSl9ZWxzZSBvPXIuZ2V0RnJvbUlkKHQsZVtpKyJheGlzIl18fGkpO3JldHVybiBvfSxyLmlkU29ydD1mdW5jdGlvbih0LGUpe3ZhciByPXQuY2hhckF0KDApLG49ZS5jaGFyQXQoMCk7cmV0dXJuIHIhPT1uP3I+bj8xOi0xOisodC5zdWJzdHIoMSl8fDEpLSsoZS5zdWJzdHIoMSl8fDEpfSxyLnJlZjJpZD1mdW5jdGlvbih0KXtyZXR1cm4hIS9eW3h5el0vLnRlc3QodCkmJnQuc3BsaXQoIiAiKVswXX0sci5pc0xpbmtlZD1mdW5jdGlvbih0LGUpe3JldHVybiBhKGUsdC5fYXhpc01hdGNoR3JvdXBzKXx8YShlLHQuX2F4aXNDb25zdHJhaW50R3JvdXBzKX19LHsiLi4vLi4vcmVnaXN0cnkiOjY0NywiLi9jb25zdGFudHMiOjU3M31dLDU3MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbil7aWYoImNhdGVnb3J5Ij09PWUudHlwZSl7dmFyIGksYT10LmNhdGVnb3J5YXJyYXksbz1BcnJheS5pc0FycmF5KGEpJiZhLmxlbmd0aD4wO28mJihpPSJhcnJheSIpO3ZhciBzLGw9cigiY2F0ZWdvcnlvcmRlciIsaSk7ImFycmF5Ij09PWwmJihzPXIoImNhdGVnb3J5YXJyYXkiKSksb3x8ImFycmF5IiE9PWx8fChsPWUuY2F0ZWdvcnlvcmRlcj0idHJhY2UiKSwidHJhY2UiPT09bD9lLl9pbml0aWFsQ2F0ZWdvcmllcz1bXToiYXJyYXkiPT09bD9lLl9pbml0aWFsQ2F0ZWdvcmllcz1zLnNsaWNlKCk6KHM9ZnVuY3Rpb24odCxlKXt2YXIgcixuLGksYT1lLmRhdGFBdHRyfHx0Ll9pZC5jaGFyQXQoMCksbz17fTtpZihlLmF4RGF0YSlyPWUuYXhEYXRhO2Vsc2UgZm9yKHI9W10sbj0wO248ZS5kYXRhLmxlbmd0aDtuKyspe3ZhciBzPWUuZGF0YVtuXTtzW2ErImF4aXMiXT09PXQuX2lkJiZyLnB1c2gocyl9Zm9yKG49MDtuPHIubGVuZ3RoO24rKyl7dmFyIGw9cltuXVthXTtmb3IoaT0wO2k8bC5sZW5ndGg7aSsrKXt2YXIgYz1sW2ldO251bGwhPWMmJihvW2NdPTEpfX1yZXR1cm4gT2JqZWN0LmtleXMobyl9KGUsbikuc29ydCgpLCJjYXRlZ29yeSBhc2NlbmRpbmciPT09bD9lLl9pbml0aWFsQ2F0ZWdvcmllcz1zOiJjYXRlZ29yeSBkZXNjZW5kaW5nIj09PWwmJihlLl9pbml0aWFsQ2F0ZWdvcmllcz1zLnJldmVyc2UoKSkpfX19LHt9XSw1NzI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxpPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLG89YS5PTkVEQVkscz1hLk9ORVdFRUs7ci5kdGljaz1mdW5jdGlvbih0LGUpe3ZhciByPSJsb2ciPT09ZSxpPSJkYXRlIj09PWUsYT0iY2F0ZWdvcnkiPT09ZSxzPWk/bzoxO2lmKCF0KXJldHVybiBzO2lmKG4odCkpcmV0dXJuKHQ9TnVtYmVyKHQpKTw9MD9zOmE/TWF0aC5tYXgoMSxNYXRoLnJvdW5kKHQpKTppP01hdGgubWF4KC4xLHQpOnQ7aWYoInN0cmluZyIhPXR5cGVvZiB0fHwhaSYmIXIpcmV0dXJuIHM7dmFyIGw9dC5jaGFyQXQoMCksYz10LnN1YnN0cigxKTtyZXR1cm4oYz1uKGMpP051bWJlcihjKTowKTw9MHx8IShpJiYiTSI9PT1sJiZjPT09TWF0aC5yb3VuZChjKXx8ciYmIkwiPT09bHx8ciYmIkQiPT09bCYmKDE9PT1jfHwyPT09YykpP3M6dH0sci50aWNrMD1mdW5jdGlvbih0LGUscixhKXtyZXR1cm4iZGF0ZSI9PT1lP2kuY2xlYW5EYXRlKHQsaS5kYXRlVGljazAocixhJXM9PTA/MTowKSk6IkQxIiE9PWEmJiJEMiIhPT1hP24odCk/TnVtYmVyKHQpOjA6dm9pZCAwfX0seyIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo0OTEsIi4uLy4uL2xpYiI6NTE1LCJmYXN0LWlzbnVtZXJpYyI6MTkwfV0sNTczOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYi9yZWdleCIpLmNvdW50ZXI7ZS5leHBvcnRzPXtpZFJlZ2V4Ont4Om4oIngiLCIoIGRvbWFpbik/IikseTpuKCJ5IiwiKCBkb21haW4pPyIpfSxhdHRyUmVnZXg6bigiW3h5XWF4aXMiKSx4QXhpc01hdGNoOm4oInhheGlzIikseUF4aXNNYXRjaDpuKCJ5YXhpcyIpLEFYX0lEX1BBVFRFUk46L15beHl6XVswLTldKiggZG9tYWluKT8kLyxBWF9OQU1FX1BBVFRFUk46L15beHl6XWF4aXNbMC05XSokLyxTVUJQTE9UX1BBVFRFUk46L154KFswLTldKil5KFswLTldKikkLyxIT1VSX1BBVFRFUk46ImhvdXIiLFdFRUtEQVlfUEFUVEVSTjoiZGF5IG9mIHdlZWsiLE1JTkRSQUc6OCxNSU5aT09NOjIwLERSQUdHRVJTSVpFOjIwLFJFRFJBV0RFTEFZOjUwLERGTFRSQU5HRVg6Wy0xLDZdLERGTFRSQU5HRVk6Wy0xLDRdLHRyYWNlTGF5ZXJDbGFzc2VzOlsiaW1hZ2VsYXllciIsImhlYXRtYXBsYXllciIsImNvbnRvdXJjYXJwZXRsYXllciIsImNvbnRvdXJsYXllciIsImZ1bm5lbGxheWVyIiwid2F0ZXJmYWxsbGF5ZXIiLCJiYXJsYXllciIsImNhcnBldGxheWVyIiwidmlvbGlubGF5ZXIiLCJib3hsYXllciIsIm9obGNsYXllciIsInNjYXR0ZXJjYXJwZXRsYXllciIsInNjYXR0ZXJsYXllciJdLGNsaXBPbkF4aXNGYWxzZVF1ZXJ5OlsiLnNjYXR0ZXJsYXllciIsIi5iYXJsYXllciIsIi5mdW5uZWxsYXllciIsIi53YXRlcmZhbGxsYXllciJdLGxheWVyVmFsdWUybGF5ZXJDbGFzczp7ImFib3ZlIHRyYWNlcyI6ImFib3ZlIiwiYmVsb3cgdHJhY2VzIjoiYmVsb3cifX19LHsiLi4vLi4vbGliL3JlZ2V4Ijo1MzJ9XSw1NzQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuL2F1dG9yYW5nZSIpLGE9dCgiLi9heGlzX2lkcyIpLmlkMm5hbWUsbz10KCIuL2xheW91dF9hdHRyaWJ1dGVzIikscz10KCIuL3NjYWxlX3pvb20iKSxsPXQoIi4vc2V0X2NvbnZlcnQiKSxjPXQoIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiKS5BTE1PU1RfRVFVQUwsdT10KCIuLi8uLi9jb25zdGFudHMvYWxpZ25tZW50IikuRlJPTV9CTDtmdW5jdGlvbiBmKHQsZSxyKXt2YXIgaT1yLmF4SWRzLHM9ci5sYXlvdXRPdXQsbD1yLmhhc0ltYWdlLGM9cy5fYXhpc0NvbnN0cmFpbnRHcm91cHMsdT1zLl9heGlzTWF0Y2hHcm91cHMsZj1lLl9pZCxtPWYuY2hhckF0KDApLGc9KChzLl9zcGxvbUF4ZXN8fHt9KVttXXx8e30pW2ZdfHx7fSx2PWUuX2lkLHk9IngiPT09di5jaGFyQXQoMCk7ZnVuY3Rpb24geChyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsbyxyLGkpfWUuX21hdGNoR3JvdXA9bnVsbCxlLl9jb25zdHJhaW50R3JvdXA9bnVsbCx4KCJjb25zdHJhaW4iLGw/ImRvbWFpbiI6InJhbmdlIiksbi5jb2VyY2UodCxlLHtjb25zdHJhaW50b3dhcmQ6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczp5P1sibGVmdCIsImNlbnRlciIsInJpZ2h0Il06WyJib3R0b20iLCJtaWRkbGUiLCJ0b3AiXSxkZmx0Onk/ImNlbnRlciI6Im1pZGRsZSJ9fSwiY29uc3RyYWludG93YXJkIik7dmFyIGIsXyx3PWUudHlwZSxUPVtdO2ZvcihiPTA7YjxpLmxlbmd0aDtiKyspe2lmKChfPWlbYl0pIT09dilzW2EoXyldLnR5cGU9PT13JiZULnB1c2goXyl9dmFyIGs9cChjLHYpO2lmKGspe3ZhciBBPVtdO2ZvcihiPTA7YjxULmxlbmd0aDtiKyspa1tfPVRbYl1dfHxBLnB1c2goXyk7VD1BfXZhciBNLFMsRT1ULmxlbmd0aDtFJiYodC5tYXRjaGVzfHxnLm1hdGNoZXMpJiYoTT1uLmNvZXJjZSh0LGUse21hdGNoZXM6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpULGRmbHQ6LTEhPT1ULmluZGV4T2YoZy5tYXRjaGVzKT9nLm1hdGNoZXM6dm9pZCAwfX0sIm1hdGNoZXMiKSk7dmFyIEw9bCYmIXk/ZS5hbmNob3I6dm9pZCAwO2lmKEUmJiFNJiYodC5zY2FsZWFuY2hvcnx8TCkmJihTPW4uY29lcmNlKHQsZSx7c2NhbGVhbmNob3I6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpUfX0sInNjYWxlYW5jaG9yIixMKSksTSl7ZS5fbWF0Y2hHcm91cD1kKHUsdixNLDEpO3ZhciBDPXNbYShNKV0sUD1oKHMsZSkvaChzLEMpO3khPT0oIngiPT09TS5jaGFyQXQoMCkpJiYoUD0oeT8ieCI6InkiKStQKSxkKGMsdixNLFApfWVsc2UgdC5tYXRjaGVzJiYtMSE9PWkuaW5kZXhPZih0Lm1hdGNoZXMpJiZuLndhcm4oImlnbm9yZWQgIitlLl9uYW1lKycubWF0Y2hlczogIicrdC5tYXRjaGVzKyciIHRvIGF2b2lkIGFuIGluZmluaXRlIGxvb3AnKTtpZihTKXt2YXIgST14KCJzY2FsZXJhdGlvIik7SXx8KEk9ZS5zY2FsZXJhdGlvPTEpLGQoYyx2LFMsSSl9ZWxzZSB0LnNjYWxlYW5jaG9yJiYtMSE9PWkuaW5kZXhPZih0LnNjYWxlYW5jaG9yKSYmbi53YXJuKCJpZ25vcmVkICIrZS5fbmFtZSsnLnNjYWxlYW5jaG9yOiAiJyt0LnNjYWxlYW5jaG9yKyciIHRvIGF2b2lkIGVpdGhlciBhbiBpbmZpbml0ZSBsb29wIGFuZCBwb3NzaWJseSBpbmNvbnNpc3RlbnQgc2NhbGVyYXRpb3MsIG9yIGJlY2F1c2UgdGhpcyBheGlzIGRlY2xhcmVzIGEgKm1hdGNoZXMqIGNvbnN0cmFpbnQuJyl9ZnVuY3Rpb24gaCh0LGUpe3ZhciByPWUuZG9tYWluO3JldHVybiByfHwocj10W2EoZS5vdmVybGF5aW5nKV0uZG9tYWluKSxyWzFdLXJbMF19ZnVuY3Rpb24gcCh0LGUpe2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKWlmKHRbcl1bZV0pcmV0dXJuIHRbcl07cmV0dXJuIG51bGx9ZnVuY3Rpb24gZCh0LGUscixuKXt2YXIgaSxhLG8scyxsLGM9cCh0LGUpO251bGw9PT1jPygoYz17fSlbZV09MSxsPXQubGVuZ3RoLHQucHVzaChjKSk6bD10LmluZGV4T2YoYyk7dmFyIHU9T2JqZWN0LmtleXMoYyk7Zm9yKGk9MDtpPHQubGVuZ3RoO2krKylpZihvPXRbaV0saSE9PWwmJm9bcl0pe3ZhciBmPW9bcl07Zm9yKGE9MDthPHUubGVuZ3RoO2ErKylvW3M9dVthXV09bShmLG0obixjW3NdKSk7cmV0dXJuIHZvaWQgdC5zcGxpY2UobCwxKX1pZigxIT09bilmb3IoYT0wO2E8dS5sZW5ndGg7YSsrKXt2YXIgaD11W2FdO2NbaF09bShuLGNbaF0pfWNbcl09MX1mdW5jdGlvbiBtKHQsZSl7dmFyIHIsbixpPSIiLGE9IiI7InN0cmluZyI9PXR5cGVvZiB0JiYocj0oaT10Lm1hdGNoKC9eW3h5XSovKVswXSkubGVuZ3RoLHQ9K3Quc3Vic3RyKHIpKSwic3RyaW5nIj09dHlwZW9mIGUmJihuPShhPWUubWF0Y2goL15beHldKi8pWzBdKS5sZW5ndGgsZT0rZS5zdWJzdHIobikpO3ZhciBvPXQqZTtyZXR1cm4gcnx8bj9yJiZuJiZpLmNoYXJBdCgwKSE9PWEuY2hhckF0KDApP3I9PT1uP286KHI+bj9pLnN1YnN0cihuKTphLnN1YnN0cihyKSkrbzppK2ErdCplOm99ZnVuY3Rpb24gZyh0LGUpe2Zvcih2YXIgcj1lLl9zaXplLG49ci5oL3IudyxpPXt9LGE9T2JqZWN0LmtleXModCksbz0wO288YS5sZW5ndGg7bysrKXt2YXIgcz1hW29dLGw9dFtzXTtpZigic3RyaW5nIj09dHlwZW9mIGwpe3ZhciBjPWwubWF0Y2goL15beHldKi8pWzBdLHU9Yy5sZW5ndGg7bD0rbC5zdWJzdHIodSk7Zm9yKHZhciBmPSJ5Ij09PWMuY2hhckF0KDApP246MS9uLGg9MDtoPHU7aCsrKWwqPWZ9aVtzXT1sfXJldHVybiBpfWZ1bmN0aW9uIHYodCxlKXt2YXIgcj10Ll9pbnB1dERvbWFpbixuPXVbdC5jb25zdHJhaW50b3dhcmRdLGk9clswXSsoclsxXS1yWzBdKSpuO3QuZG9tYWluPXQuX2lucHV0LmRvbWFpbj1baSsoclswXS1pKS9lLGkrKHJbMV0taSkvZV0sdC5zZXRTY2FsZSgpfXIuaGFuZGxlRGVmYXVsdHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBpLG8scyxjLHUsaCxwLGQsbT1yLmF4SWRzLGc9ci5heEhhc0ltYWdlLHY9ZS5fYXhpc0NvbnN0cmFpbnRHcm91cHM9W10seT1lLl9heGlzTWF0Y2hHcm91cHM9W107Zm9yKGk9MDtpPG0ubGVuZ3RoO2krKylmKHU9dFtjPWEobVtpXSldLGg9ZVtjXSx7YXhJZHM6bSxsYXlvdXRPdXQ6ZSxoYXNJbWFnZTpnW2NdfSk7ZnVuY3Rpb24geCh0LHIpe2ZvcihpPTA7aTx0Lmxlbmd0aDtpKyspZm9yKHMgaW4gbz10W2ldKWVbYShzKV1bcl09b31mb3IoeCh5LCJfbWF0Y2hHcm91cCIpLGk9MDtpPHYubGVuZ3RoO2krKylmb3IocyBpbiBvPXZbaV0paWYoKGg9ZVthKHMpXSkuZml4ZWRyYW5nZSl7Zm9yKHZhciBiIGluIG8pe3ZhciBfPWEoYik7ITE9PT0odFtfXXx8e30pLmZpeGVkcmFuZ2UmJm4ud2FybigiZml4ZWRyYW5nZSB3YXMgc3BlY2lmaWVkIGFzIGZhbHNlIGZvciBheGlzICIrXysiIGJ1dCB3YXMgb3ZlcnJpZGRlbiBiZWNhdXNlIGFub3RoZXIgYXhpcyBpbiBpdHMgY29uc3RyYWludCBncm91cCBoYXMgZml4ZWRyYW5nZSB0cnVlIiksZVtfXS5maXhlZHJhbmdlPSEwfWJyZWFrfWZvcihpPTA7aTx2Lmxlbmd0aDspe2ZvcihzIGluIG89dltpXSl7KGg9ZVthKHMpXSkuX21hdGNoR3JvdXAmJk9iamVjdC5rZXlzKGguX21hdGNoR3JvdXApLmxlbmd0aD09PU9iamVjdC5rZXlzKG8pLmxlbmd0aCYmKHYuc3BsaWNlKGksMSksaS0tKTticmVha31pKyt9eCh2LCJfY29uc3RyYWludEdyb3VwIik7dmFyIHc9WyJjb25zdHJhaW4iLCJyYW5nZSIsImF1dG9yYW5nZSIsInJhbmdlbW9kZSIsInJhbmdlYnJlYWtzIiwiY2F0ZWdvcnlvcmRlciIsImNhdGVnb3J5YXJyYXkiXSxUPSExLGs9ITE7ZnVuY3Rpb24gQSgpe2Q9aFtwXSwicmFuZ2VicmVha3MiPT09cCYmKGs9aC5faGFzRGF5T2ZXZWVrQnJlYWtzKX1mb3IoaT0wO2k8eS5sZW5ndGg7aSsrKXtvPXlbaV07Zm9yKHZhciBNPTA7TTx3Lmxlbmd0aDtNKyspe3ZhciBTO2ZvcihzIGluIHA9d1tNXSxkPW51bGwsbylpZih1PXRbYz1hKHMpXSxoPWVbY10scCBpbiBoKXtpZighaC5tYXRjaGVzJiYoUz1oLHAgaW4gdSkpe0EoKTticmVha31udWxsPT09ZCYmcCBpbiB1JiZBKCl9aWYoInJhbmdlIj09PXAmJmQmJihUPSEwKSwiYXV0b3JhbmdlIj09PXAmJm51bGw9PT1kJiZUJiYoZD0hMSksbnVsbD09PWQmJnAgaW4gUyYmKGQ9U1twXSksbnVsbCE9PWQpZm9yKHMgaW4gbykoaD1lW2EocyldKVtwXT0icmFuZ2UiPT09cD9kLnNsaWNlKCk6ZCwicmFuZ2VicmVha3MiPT09cCYmKGguX2hhc0RheU9mV2Vla0JyZWFrcz1rLGwoaCxlKSl9fX0sci5lbmZvcmNlPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixvLGwsdSxmLGgscD10Ll9mdWxsTGF5b3V0LGQ9cC5fYXhpc0NvbnN0cmFpbnRHcm91cHN8fFtdO2ZvcihlPTA7ZTxkLmxlbmd0aDtlKyspe249ZyhkW2VdLHApO3ZhciBtPU9iamVjdC5rZXlzKG4pLHk9MS8wLHg9MCxiPTEvMCxfPXt9LHc9e30sVD0hMTtmb3Iocj0wO3I8bS5sZW5ndGg7cisrKXdbbz1tW3JdXT1sPXBbYShvKV0sbC5faW5wdXREb21haW4/bC5kb21haW49bC5faW5wdXREb21haW4uc2xpY2UoKTpsLl9pbnB1dERvbWFpbj1sLmRvbWFpbi5zbGljZSgpLGwuX2lucHV0UmFuZ2V8fChsLl9pbnB1dFJhbmdlPWwucmFuZ2Uuc2xpY2UoKSksbC5zZXRTY2FsZSgpLF9bb109dT1NYXRoLmFicyhsLl9tKS9uW29dLHk9TWF0aC5taW4oeSx1KSwiZG9tYWluIiE9PWwuY29uc3RyYWluJiZsLl9jb25zdHJhaW50U2hyaW5rYWJsZXx8KGI9TWF0aC5taW4oYix1KSksZGVsZXRlIGwuX2NvbnN0cmFpbnRTaHJpbmthYmxlLHg9TWF0aC5tYXgoeCx1KSwiZG9tYWluIj09PWwuY29uc3RyYWluJiYoVD0hMCk7aWYoISh5PmMqeCl8fFQpZm9yKHI9MDtyPG0ubGVuZ3RoO3IrKylpZih1PV9bbz1tW3JdXSxmPShsPXdbb10pLmNvbnN0cmFpbix1IT09Ynx8ImRvbWFpbiI9PT1mKWlmKGg9dS9iLCJyYW5nZSI9PT1mKXMobCxoKTtlbHNle3ZhciBrPWwuX2lucHV0RG9tYWluLEE9KGwuZG9tYWluWzFdLWwuZG9tYWluWzBdKS8oa1sxXS1rWzBdKSxNPShsLnIybChsLnJhbmdlWzFdKS1sLnIybChsLnJhbmdlWzBdKSkvKGwucjJsKGwuX2lucHV0UmFuZ2VbMV0pLWwucjJsKGwuX2lucHV0UmFuZ2VbMF0pKTtpZigoaC89QSkqTTwxKXtsLmRvbWFpbj1sLl9pbnB1dC5kb21haW49ay5zbGljZSgpLHMobCxoKTtjb250aW51ZX1pZihNPDEmJihsLnJhbmdlPWwuX2lucHV0LnJhbmdlPWwuX2lucHV0UmFuZ2Uuc2xpY2UoKSxoKj1NKSxsLmF1dG9yYW5nZSl7dmFyIFM9bC5yMmwobC5yYW5nZVswXSksRT1sLnIybChsLnJhbmdlWzFdKSxMPShTK0UpLzIsQz1MLFA9TCxJPU1hdGguYWJzKEUtTCksTz1MLUkqaCoxLjAwMDEsej1MK0kqaCoxLjAwMDEsRD1pLm1ha2VQYWRGbihwLGwsMCksUj1pLm1ha2VQYWRGbihwLGwsMSk7dihsLGgpO3ZhciBGLEIsTj1NYXRoLmFicyhsLl9tKSxqPWkuY29uY2F0RXh0cmVtZXModCxsKSxVPWoubWluLFY9ai5tYXg7Zm9yKEI9MDtCPFUubGVuZ3RoO0IrKykoRj1VW0JdLnZhbC1EKFVbQl0pL04pPk8mJkY8QyYmKEM9Rik7Zm9yKEI9MDtCPFYubGVuZ3RoO0IrKykoRj1WW0JdLnZhbCtSKFZbQl0pL04pPHomJkY+UCYmKFA9Rik7aC89KFAtQykvKDIqSSksQz1sLmwycihDKSxQPWwubDJyKFApLGwucmFuZ2U9bC5faW5wdXQucmFuZ2U9UzxFP1tDLFBdOltQLENdfXYobCxoKX19fSxyLmdldEF4aXNHcm91cD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10Ll9heGlzTWF0Y2hHcm91cHMsbj0wO248ci5sZW5ndGg7bisrKXtpZihyW25dW2VdKXJldHVybiJnIitufXJldHVybiBlfSxyLmNsZWFuPWZ1bmN0aW9uKHQsZSl7aWYoZS5faW5wdXREb21haW4pe2Zvcih2YXIgcj0hMSxuPWUuX2lkLGk9dC5fZnVsbExheW91dC5fYXhpc0NvbnN0cmFpbnRHcm91cHMsYT0wO2E8aS5sZW5ndGg7YSsrKWlmKGlbYV1bbl0pe3I9ITA7YnJlYWt9ciYmImRvbWFpbiI9PT1lLmNvbnN0cmFpbnx8KGUuX2lucHV0LmRvbWFpbj1lLmRvbWFpbj1lLl9pbnB1dERvbWFpbixkZWxldGUgZS5faW5wdXREb21haW4pfX19LHsiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCI6NDgzLCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo0OTEsIi4uLy4uL2xpYiI6NTE1LCIuL2F1dG9yYW5nZSI6NTY1LCIuL2F4aXNfaWRzIjo1NzAsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjU3OSwiLi9zY2FsZV96b29tIjo1ODQsIi4vc2V0X2NvbnZlcnQiOjU4NX1dLDU3NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9saWIiKSxhPWkubnVtYmVyRm9ybWF0LG89dCgidGlueWNvbG9yMiIpLHM9dCgiaGFzLXBhc3NpdmUtZXZlbnRzIiksbD10KCIuLi8uLi9yZWdpc3RyeSIpLGM9aS5zdHJUcmFuc2xhdGUsdT10KCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiKSxmPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxoPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLHA9dCgiLi4vLi4vY29tcG9uZW50cy9meCIpLGQ9dCgiLi9heGVzIiksbT10KCIuLi8uLi9saWIvc2V0Y3Vyc29yIiksZz10KCIuLi8uLi9jb21wb25lbnRzL2RyYWdlbGVtZW50Iiksdj10KCIuLi8uLi9jb21wb25lbnRzL2RyYWdlbGVtZW50L2hlbHBlcnMiKSx5PXYuc2VsZWN0aW5nT3JEcmF3aW5nLHg9di5mcmVlTW9kZSxiPXQoIi4uLy4uL2NvbnN0YW50cy9hbGlnbm1lbnQiKS5GUk9NX1RMLF89dCgiLi4vLi4vbGliL2NsZWFyX2dsX2NhbnZhc2VzIiksdz10KCIuLi8uLi9wbG90X2FwaS9zdWJyb3V0aW5lcyIpLnJlZHJhd1JlZ2xUcmFjZXMsVD10KCIuLi9wbG90cyIpLGs9dCgiLi9heGlzX2lkcyIpLmdldEZyb21JZCxBPXQoIi4uLy4uL2NvbXBvbmVudHMvc2VsZWN0aW9ucyIpLnByZXBTZWxlY3QsTT10KCIuLi8uLi9jb21wb25lbnRzL3NlbGVjdGlvbnMiKS5jbGVhck91dGxpbmUsUz10KCIuLi8uLi9jb21wb25lbnRzL3NlbGVjdGlvbnMiKS5zZWxlY3RPbkNsaWNrLEU9dCgiLi9zY2FsZV96b29tIiksTD10KCIuL2NvbnN0YW50cyIpLEM9TC5NSU5EUkFHLFA9TC5NSU5aT09NLEk9ITA7ZnVuY3Rpb24gTyh0LGUscixuKXt2YXIgYT1pLmVuc3VyZVNpbmdsZSh0LmRyYWdsYXllcixlLHIsKGZ1bmN0aW9uKGUpe2UuY2xhc3NlZCgiZHJhZyIsITApLnN0eWxlKHtmaWxsOiJ0cmFuc3BhcmVudCIsInN0cm9rZS13aWR0aCI6MH0pLmF0dHIoImRhdGEtc3VicGxvdCIsdC5pZCl9KSk7cmV0dXJuIGEuY2FsbChtLG4pLGEubm9kZSgpfWZ1bmN0aW9uIHoodCxlLHIsaSxhLG8scyl7dmFyIGw9Tyh0LCJyZWN0IixlLHIpO3JldHVybiBuLnNlbGVjdChsKS5jYWxsKGguc2V0UmVjdCxpLGEsbyxzKSxsfWZ1bmN0aW9uIEQodCxlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKylpZighdFtyXS5maXhlZHJhbmdlKXJldHVybiBlO3JldHVybiIifWZ1bmN0aW9uIFIodCxlLHIsbixpKXtmb3IodmFyIGE9MDthPHQubGVuZ3RoO2ErKyl7dmFyIG89dFthXTtpZighby5maXhlZHJhbmdlKWlmKG8ucmFuZ2VicmVha3Mpe3ZhciBzPSJ5Ij09PW8uX2lkLmNoYXJBdCgwKSxsPXM/MS1lOmUsYz1zPzEtcjpyO25bby5fbmFtZSsiLnJhbmdlWzBdIl09by5sMnIoby5wMmwobCpvLl9sZW5ndGgpKSxuW28uX25hbWUrIi5yYW5nZVsxXSJdPW8ubDJyKG8ucDJsKGMqby5fbGVuZ3RoKSl9ZWxzZXt2YXIgdT1vLl9ybFswXSxmPW8uX3JsWzFdLXU7bltvLl9uYW1lKyIucmFuZ2VbMF0iXT1vLmwycih1K2YqZSksbltvLl9uYW1lKyIucmFuZ2VbMV0iXT1vLmwycih1K2Yqcil9fWlmKGkmJmkubGVuZ3RoKXt2YXIgaD0oZSsoMS1yKSkvMjtSKGksaCwxLWgsbixbXSl9fWZ1bmN0aW9uIEYodCxlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIG49dFtyXTtpZighbi5maXhlZHJhbmdlKWlmKG4ucmFuZ2VicmVha3Mpe3ZhciBpPW4uX2xlbmd0aCxhPShuLnAybCgwK2UpLW4ucDJsKDApKyhuLnAybChpK2UpLW4ucDJsKGkpKSkvMjtuLnJhbmdlPVtuLmwycihuLl9ybFswXS1hKSxuLmwycihuLl9ybFsxXS1hKV19ZWxzZSBuLnJhbmdlPVtuLmwycihuLl9ybFswXS1lL24uX20pLG4ubDJyKG4uX3JsWzFdLWUvbi5fbSldfX1mdW5jdGlvbiBCKHQpe3JldHVybiAxLSh0Pj0wP01hdGgubWluKHQsLjkpOjEvKDEvTWF0aC5tYXgodCwtLjMpKzMuMjIyKSl9ZnVuY3Rpb24gTih0LGUscixuLGkpe3JldHVybiB0LmFwcGVuZCgicGF0aCIpLmF0dHIoImNsYXNzIiwiem9vbWJveCIpLnN0eWxlKHtmaWxsOmU+LjI/InJnYmEoMCwwLDAsMCkiOiJyZ2JhKDI1NSwyNTUsMjU1LDApIiwic3Ryb2tlLXdpZHRoIjowfSkuYXR0cigidHJhbnNmb3JtIixjKHIsbikpLmF0dHIoImQiLGkrIloiKX1mdW5jdGlvbiBqKHQsZSxyKXtyZXR1cm4gdC5hcHBlbmQoInBhdGgiKS5hdHRyKCJjbGFzcyIsInpvb21ib3gtY29ybmVycyIpLnN0eWxlKHtmaWxsOmYuYmFja2dyb3VuZCxzdHJva2U6Zi5kZWZhdWx0TGluZSwic3Ryb2tlLXdpZHRoIjoxLG9wYWNpdHk6MH0pLmF0dHIoInRyYW5zZm9ybSIsYyhlLHIpKS5hdHRyKCJkIiwiTTAsMFoiKX1mdW5jdGlvbiBVKHQsZSxyLG4saSxhKXt0LmF0dHIoImQiLG4rIk0iK3IubCsiLCIrci50KyJ2IityLmgrImgiK3Iudysidi0iK3IuaCsiaC0iK3IudysiWiIpLFYodCxlLGksYSl9ZnVuY3Rpb24gVih0LGUscixuKXtyfHwodC50cmFuc2l0aW9uKCkuc3R5bGUoImZpbGwiLG4+LjI/InJnYmEoMCwwLDAsMC40KSI6InJnYmEoMjU1LDI1NSwyNTUsMC4zKSIpLmR1cmF0aW9uKDIwMCksZS50cmFuc2l0aW9uKCkuc3R5bGUoIm9wYWNpdHkiLDEpLmR1cmF0aW9uKDIwMCkpfWZ1bmN0aW9uIEgodCl7bi5zZWxlY3QodCkuc2VsZWN0QWxsKCIuem9vbWJveCwuanMtem9vbWJveC1iYWNrZHJvcCwuanMtem9vbWJveC1tZW51LC56b29tYm94LWNvcm5lcnMiKS5yZW1vdmUoKX1mdW5jdGlvbiBxKHQpe0kmJnQuZGF0YSYmdC5fY29udGV4dC5zaG93VGlwcyYmKGkubm90aWZpZXIoaS5fKHQsIkRvdWJsZS1jbGljayB0byB6b29tIGJhY2sgb3V0IiksImxvbmciKSxJPSExKX1mdW5jdGlvbiBHKHQpe3ZhciBlPU1hdGguZmxvb3IoTWF0aC5taW4odC5iLXQudCx0LnItdC5sLFApLzIpO3JldHVybiJNIisodC5sLTMuNSkrIiwiKyh0LnQtLjUrZSkrImgzdiIrLWUrImgiK2UrInYtM2gtIisoZSszKSsiWk0iKyh0LnIrMy41KSsiLCIrKHQudC0uNStlKSsiaC0zdiIrLWUrImgiKy1lKyJ2LTNoIisoZSszKSsiWk0iKyh0LnIrMy41KSsiLCIrKHQuYisuNS1lKSsiaC0zdiIrZSsiaCIrLWUrInYzaCIrKGUrMykrIlpNIisodC5sLTMuNSkrIiwiKyh0LmIrLjUtZSkrImgzdiIrZSsiaCIrZSsidjNoLSIrKGUrMykrIloifWZ1bmN0aW9uIFkodCxlLHIsbixhKXtmb3IodmFyIG8scyxsLGMsdT0hMSxmPXt9LGg9e30scD0oYXx8e30pLnhhSGFzaCxkPShhfHx7fSkueWFIYXNoLG09MDttPGUubGVuZ3RoO20rKyl7dmFyIGc9ZVttXTtmb3IobyBpbiByKWlmKGdbb10pe2ZvcihsIGluIGcpYSYmKHBbbF18fGRbbF0pfHwoIngiPT09bC5jaGFyQXQoMCk/cjpuKVtsXXx8KGZbbF09byk7Zm9yKHMgaW4gbilhJiYocFtzXXx8ZFtzXSl8fCFnW3NdfHwodT0hMCl9Zm9yKHMgaW4gbilpZihnW3NdKWZvcihjIGluIGcpYSYmKHBbY118fGRbY10pfHwoIngiPT09Yy5jaGFyQXQoMCk/cjpuKVtjXXx8KGhbY109cyl9dSYmKGkuZXh0ZW5kRmxhdChmLGgpLGg9e30pO3ZhciB2PXt9LHk9W107Zm9yKGwgaW4gZil7dmFyIHg9ayh0LGwpO3kucHVzaCh4KSx2W3guX2lkXT14fXZhciBiPXt9LF89W107Zm9yKGMgaW4gaCl7dmFyIHc9ayh0LGMpO18ucHVzaCh3KSxiW3cuX2lkXT13fXJldHVybnt4YUhhc2g6dix5YUhhc2g6Yix4YXhlczp5LHlheGVzOl8seExpbmtzOmYseUxpbmtzOmgsaXNTdWJwbG90Q29uc3RyYWluZWQ6dX19ZnVuY3Rpb24gVyh0LGUpe2lmKHMpe3ZhciByPXZvaWQgMCE9PXQub253aGVlbD8id2hlZWwiOiJtb3VzZXdoZWVsIjt0Ll9vbndoZWVsJiZ0LnJlbW92ZUV2ZW50TGlzdGVuZXIocix0Ll9vbndoZWVsKSx0Ll9vbndoZWVsPWUsdC5hZGRFdmVudExpc3RlbmVyKHIsZSx7cGFzc2l2ZTohMX0pfWVsc2Ugdm9pZCAwIT09dC5vbndoZWVsP3Qub253aGVlbD1lOnZvaWQgMCE9PXQub25tb3VzZXdoZWVsP3Qub25tb3VzZXdoZWVsPWU6dC5pc0FkZGVkV2hlZWxFdmVudHx8KHQuaXNBZGRlZFdoZWVsRXZlbnQ9ITAsdC5hZGRFdmVudExpc3RlbmVyKCJ3aGVlbCIsZSx7cGFzc2l2ZTohMX0pKX1mdW5jdGlvbiBYKHQpe3ZhciBlPVtdO2Zvcih2YXIgciBpbiB0KWUucHVzaCh0W3JdKTtyZXR1cm4gZX1lLmV4cG9ydHM9e21ha2VEcmFnQm94OmZ1bmN0aW9uKHQsZSxyLHMsYyxmLG0sdil7dmFyIEksTyxWLFosSixLLFEsJCx0dCxldCxydCxudCxpdCxhdCxvdCxzdCxsdCxjdCx1dCxmdCxodCxwdCxkdCxtdD10Ll9mdWxsTGF5b3V0Ll96b29tbGF5ZXIsZ3Q9bSt2PT09Im5zZXciLHZ0PTE9PT0obSt2KS5sZW5ndGg7ZnVuY3Rpb24geXQoKXtpZihJPWUueGF4aXMsTz1lLnlheGlzLHR0PUkuX2xlbmd0aCxldD1PLl9sZW5ndGgsUT1JLl9vZmZzZXQsJD1PLl9vZmZzZXQsKFY9e30pW0kuX2lkXT1JLChaPXt9KVtPLl9pZF09TyxtJiZ2KWZvcih2YXIgcj1lLm92ZXJsYXlzLG49MDtuPHIubGVuZ3RoO24rKyl7dmFyIGk9cltuXS54YXhpcztWW2kuX2lkXT1pO3ZhciBhPXJbbl0ueWF4aXM7WlthLl9pZF09YX1KPVgoViksSz1YKFopLGl0PUQoSix2KSxhdD1EKEssbSksb3Q9IWF0JiYhaXQsbnQ9WSh0LHQuX2Z1bGxMYXlvdXQuX2F4aXNNYXRjaEdyb3VwcyxWLFopO3ZhciBvPShydD1ZKHQsdC5fZnVsbExheW91dC5fYXhpc0NvbnN0cmFpbnRHcm91cHMsVixaLG50KSkuaXNTdWJwbG90Q29uc3RyYWluZWR8fG50LmlzU3VicGxvdENvbnN0cmFpbmVkO3N0PXZ8fG8sbHQ9bXx8bzt2YXIgcz10Ll9mdWxsTGF5b3V0O2N0PXMuX2hhcygic2NhdHRlcmdsIiksdXQ9cy5faGFzKCJzcGxvbSIpLGZ0PXMuX2hhcygic3ZnIil9eXQoKTt2YXIgeHQ9ZnVuY3Rpb24odCxlLHIpe2lmKCF0KXJldHVybiJwb2ludGVyIjtpZigibnNldyI9PT10KXJldHVybiByPyIiOiJwYW4iPT09ZT8ibW92ZSI6ImNyb3NzaGFpciI7cmV0dXJuIHQudG9Mb3dlckNhc2UoKSsiLXJlc2l6ZSJ9KGF0K2l0LHQuX2Z1bGxMYXlvdXQuZHJhZ21vZGUsZ3QpLGJ0PXooZSxtK3YrImRyYWciLHh0LHIscyxjLGYpO2lmKG90JiYhZ3QpcmV0dXJuIGJ0Lm9ubW91c2Vkb3duPW51bGwsYnQuc3R5bGUucG9pbnRlckV2ZW50cz0ibm9uZSIsYnQ7dmFyIF90LHd0LFR0LGt0LEF0LE10LFN0LEV0LEx0LEN0LFB0PXtlbGVtZW50OmJ0LGdkOnQscGxvdGluZm86ZX07ZnVuY3Rpb24gSXQoKXtQdC5wbG90aW5mby5zZWxlY3Rpb249ITEsTSh0KX1mdW5jdGlvbiBPdCh0LHIpe3ZhciBpPVB0LmdkO2lmKGkuX2Z1bGxMYXlvdXQuX2FjdGl2ZVNoYXBlSW5kZXg+PTApaS5fZnVsbExheW91dC5fZGVhY3RpdmF0ZVNoYXBlKGkpO2Vsc2V7dmFyIG89aS5fZnVsbExheW91dC5jbGlja21vZGU7aWYoSChpKSwyIT09dHx8dnR8fHF0KCksZ3Qpby5pbmRleE9mKCJzZWxlY3QiKT4tMSYmUyhyLGksSixLLGUuaWQsUHQpLG8uaW5kZXhPZigiZXZlbnQiKT4tMSYmcC5jbGljayhpLHIsZS5pZCk7ZWxzZSBpZigxPT09dCYmdnQpe3ZhciBzPW0/TzpJLGM9InMiPT09bXx8InciPT09dj8wOjEsZj1zLl9uYW1lKyIucmFuZ2VbIitjKyJdIixoPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbj10LnJhbmdlW2VdLGk9TWF0aC5hYnMobi10LnJhbmdlWzEtZV0pO3JldHVybiJkYXRlIj09PXQudHlwZT9uOiJsb2ciPT09dC50eXBlPyhyPU1hdGguY2VpbChNYXRoLm1heCgwLC1NYXRoLmxvZyhpKS9NYXRoLkxOMTApKSszLGEoIi4iK3IrImciKShNYXRoLnBvdygxMCxuKSkpOihyPU1hdGguZmxvb3IoTWF0aC5sb2coTWF0aC5hYnMobikpL01hdGguTE4xMCktTWF0aC5mbG9vcihNYXRoLmxvZyhpKS9NYXRoLkxOMTApKzQsYSgiLiIrU3RyaW5nKHIpKyJnIikobikpfShzLGMpLGQ9ImxlZnQiLGc9Im1pZGRsZSI7aWYocy5maXhlZHJhbmdlKXJldHVybjttPyhnPSJuIj09PW0/InRvcCI6ImJvdHRvbSIsInJpZ2h0Ij09PXMuc2lkZSYmKGQ9InJpZ2h0IikpOiJlIj09PXYmJihkPSJyaWdodCIpLGkuX2NvbnRleHQuc2hvd0F4aXNSYW5nZUVudHJ5Qm94ZXMmJm4uc2VsZWN0KGJ0KS5jYWxsKHUubWFrZUVkaXRhYmxlLHtnZDppLGltbWVkaWF0ZTohMCxiYWNrZ3JvdW5kOmkuX2Z1bGxMYXlvdXQucGFwZXJfYmdjb2xvcix0ZXh0OlN0cmluZyhoKSxmaWxsOnMudGlja2ZvbnQ/cy50aWNrZm9udC5jb2xvcjoiIzQ0NCIsaG9yaXpvbnRhbEFsaWduOmQsdmVydGljYWxBbGlnbjpnfSkub24oImVkaXQiLChmdW5jdGlvbih0KXt2YXIgZT1zLmQycih0KTt2b2lkIDAhPT1lJiZsLmNhbGwoIl9ndWlSZWxheW91dCIsaSxmLGUpfSkpfX19ZnVuY3Rpb24genQoZSxyKXtpZih0Ll90cmFuc2l0aW9uaW5nV2l0aER1cmF0aW9uKXJldHVybiExO3ZhciBuPU1hdGgubWF4KDAsTWF0aC5taW4odHQscHQqZStfdCkpLGk9TWF0aC5tYXgoMCxNYXRoLm1pbihldCxkdCpyK3d0KSksYT1NYXRoLmFicyhuLV90KSxvPU1hdGguYWJzKGktd3QpO2Z1bmN0aW9uIHMoKXtTdD0iIixUdC5yPVR0LmwsVHQudD1UdC5iLEx0LmF0dHIoImQiLCJNMCwwWiIpfWlmKFR0Lmw9TWF0aC5taW4oX3QsbiksVHQucj1NYXRoLm1heChfdCxuKSxUdC50PU1hdGgubWluKHd0LGkpLFR0LmI9TWF0aC5tYXgod3QsaSkscnQuaXNTdWJwbG90Q29uc3RyYWluZWQpYT5QfHxvPlA/KFN0PSJ4eSIsYS90dD5vL2V0PyhvPWEqZXQvdHQsd3Q+aT9UdC50PXd0LW86VHQuYj13dCtvKTooYT1vKnR0L2V0LF90Pm4/VHQubD1fdC1hOlR0LnI9X3QrYSksTHQuYXR0cigiZCIsRyhUdCkpKTpzKCk7ZWxzZSBpZihudC5pc1N1YnBsb3RDb25zdHJhaW5lZClpZihhPlB8fG8+UCl7U3Q9Inh5Ijt2YXIgbD1NYXRoLm1pbihUdC5sL3R0LChldC1UdC5iKS9ldCksYz1NYXRoLm1heChUdC5yL3R0LChldC1UdC50KS9ldCk7VHQubD1sKnR0LFR0LnI9Yyp0dCxUdC5iPSgxLWwpKmV0LFR0LnQ9KDEtYykqZXQsTHQuYXR0cigiZCIsRyhUdCkpfWVsc2UgcygpO2Vsc2UhYXR8fG88TWF0aC5taW4oTWF0aC5tYXgoLjYqYSxDKSxQKT9hPEN8fCFpdD9zKCk6KFR0LnQ9MCxUdC5iPWV0LFN0PSJ4IixMdC5hdHRyKCJkIixmdW5jdGlvbih0LGUpe3JldHVybiJNIisodC5sLS41KSsiLCIrKGUtUC0uNSkrImgtM3YiKygyKlArMSkrImgzWk0iKyh0LnIrLjUpKyIsIisoZS1QLS41KSsiaDN2IisoMipQKzEpKyJoLTNaIn0oVHQsd3QpKSk6IWl0fHxhPE1hdGgubWluKC42Km8sUCk/KFR0Lmw9MCxUdC5yPXR0LFN0PSJ5IixMdC5hdHRyKCJkIixmdW5jdGlvbih0LGUpe3JldHVybiJNIisoZS1QLS41KSsiLCIrKHQudC0uNSkrInYtM2giKygyKlArMSkrInYzWk0iKyhlLVAtLjUpKyIsIisodC5iKy41KSsidjNoIisoMipQKzEpKyJ2LTNaIn0oVHQsX3QpKSk6KFN0PSJ4eSIsTHQuYXR0cigiZCIsRyhUdCkpKTtUdC53PVR0LnItVHQubCxUdC5oPVR0LmItVHQudCxTdCYmKEN0PSEwKSx0Ll9kcmFnZ2VkPUN0LFUoRXQsTHQsVHQsQXQsTXQsa3QpLER0KCksdC5lbWl0KCJwbG90bHlfcmVsYXlvdXRpbmciLGh0KSxNdD0hMH1mdW5jdGlvbiBEdCgpe2h0PXt9LCJ4eSIhPT1TdCYmIngiIT09U3R8fChSKEosVHQubC90dCxUdC5yL3R0LGh0LHJ0LnhheGVzKSxWdCgieCIsaHQpKSwieHkiIT09U3QmJiJ5IiE9PVN0fHwoUihLLChldC1UdC5iKS9ldCwoZXQtVHQudCkvZXQsaHQscnQueWF4ZXMpLFZ0KCJ5IixodCkpfWZ1bmN0aW9uIFJ0KCl7RHQoKSxIKHQpLEd0KCkscSh0KX1QdC5wcmVwRm49ZnVuY3Rpb24oZSxyLG4pe3ZhciBhPVB0LmRyYWdtb2RlLHM9dC5fZnVsbExheW91dC5kcmFnbW9kZTtzIT09YSYmKFB0LmRyYWdtb2RlPXMpLHl0KCkscHQ9dC5fZnVsbExheW91dC5faW52U2NhbGVYLGR0PXQuX2Z1bGxMYXlvdXQuX2ludlNjYWxlWSxvdHx8KGd0P2Uuc2hpZnRLZXk/InBhbiI9PT1zP3M9Inpvb20iOnkocyl8fChzPSJwYW4iKTplLmN0cmxLZXkmJihzPSJwYW4iKTpzPSJwYW4iKSx4KHMpP1B0Lm1pbkRyYWc9MTpQdC5taW5EcmFnPXZvaWQgMCx5KHMpPyhQdC54YXhlcz1KLFB0LnlheGVzPUssQShlLHIsbixQdCxzKSk6KFB0LmNsaWNrRm49T3QseShhKSYmSXQoKSxvdHx8KCJ6b29tIj09PXM/KFB0Lm1vdmVGbj16dCxQdC5kb25lRm49UnQsUHQubWluRHJhZz0xLGZ1bmN0aW9uKGUscixuKXt2YXIgYT1idC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtfdD1yLWEubGVmdCx3dD1uLWEudG9wLHQuX2Z1bGxMYXlvdXQuX2NhbGNJbnZlcnNlVHJhbnNmb3JtKHQpO3ZhciBzPWkuYXBwbHkzRFRyYW5zZm9ybSh0Ll9mdWxsTGF5b3V0Ll9pbnZUcmFuc2Zvcm0pKF90LHd0KTtfdD1zWzBdLHd0PXNbMV0sVHQ9e2w6X3QscjpfdCx3OjAsdDp3dCxiOnd0LGg6MH0sa3Q9dC5faG1waXhjb3VudD90Ll9obWx1bWNvdW50L3QuX2htcGl4Y291bnQ6byh0Ll9mdWxsTGF5b3V0LnBsb3RfYmdjb2xvcikuZ2V0THVtaW5hbmNlKCksTXQ9ITEsU3Q9Inh5IixDdD0hMSxFdD1OKG10LGt0LFEsJCxBdD0iTTAsMEgiK3R0KyJWIitldCsiSDBWMCIpLEx0PWoobXQsUSwkKX0oMCxyLG4pKToicGFuIj09PXMmJihQdC5tb3ZlRm49VXQsUHQuZG9uZUZuPUd0KSkpLHQuX2Z1bGxMYXlvdXQuX3JlZHJhZz1mdW5jdGlvbigpe3ZhciBlPXQuX2RyYWdkYXRhO2lmKGUmJmUuZWxlbWVudD09PWJ0KXt2YXIgcj10Ll9mdWxsTGF5b3V0LmRyYWdtb2RlO3kocil8fCh5dCgpLFl0KFswLDAsdHQsZXRdKSxQdC5tb3ZlRm4oZS5keCxlLmR5KSl9fX0sZy5pbml0KFB0KTt2YXIgRnQ9WzAsMCx0dCxldF0sQnQ9bnVsbCxOdD1MLlJFRFJBV0RFTEFZLGp0PWUubWFpbnBsb3Q/dC5fZnVsbExheW91dC5fcGxvdHNbZS5tYWlucGxvdF06ZTtmdW5jdGlvbiBVdChlLHIpe2lmKGUqPXB0LHIqPWR0LCF0Ll90cmFuc2l0aW9uaW5nV2l0aER1cmF0aW9uKXtpZih0Ll9mdWxsTGF5b3V0Ll9yZXBsb3R0aW5nPSEwLCJldyI9PT1pdHx8Im5zIj09PWF0KXt2YXIgbj1pdD8tZTowLGk9YXQ/LXI6MDtpZihudC5pc1N1YnBsb3RDb25zdHJhaW5lZCl7aWYoaXQmJmF0KXt2YXIgYT0oZS90dC1yL2V0KS8yO249LShlPWEqdHQpLGk9LShyPS1hKmV0KX1hdD9uPS1pKnR0L2V0Omk9LW4qZXQvdHR9cmV0dXJuIGl0JiYoRihKLGUpLFZ0KCJ4IikpLGF0JiYoRihLLHIpLFZ0KCJ5IikpLFl0KFtuLGksdHQsZXRdKSxIdCgpLHZvaWQgdC5lbWl0KCJwbG90bHlfcmVsYXlvdXRpbmciLGh0KX12YXIgbyxzLGw9InciPT09aXQ9PSgibiI9PT1hdCk/MTotMTtpZihpdCYmYXQmJihydC5pc1N1YnBsb3RDb25zdHJhaW5lZHx8bnQuaXNTdWJwbG90Q29uc3RyYWluZWQpKXt2YXIgYz0oZS90dCtsKnIvZXQpLzI7ZT1jKnR0LHI9bCpjKmV0fWlmKCJ3Ij09PWl0P2U9cChKLDAsZSk6ImUiPT09aXQ/ZT1wKEosMSwtZSk6aXR8fChlPTApLCJuIj09PWF0P3I9cChLLDEscik6InMiPT09YXQ/cj1wKEssMCwtcik6YXR8fChyPTApLG89InciPT09aXQ/ZTowLHM9Im4iPT09YXQ/cjowLHJ0LmlzU3VicGxvdENvbnN0cmFpbmVkJiYhbnQuaXNTdWJwbG90Q29uc3RyYWluZWR8fG50LmlzU3VicGxvdENvbnN0cmFpbmVkJiZpdCYmYXQmJmw+MCl7dmFyIHU7aWYobnQuaXNTdWJwbG90Q29uc3RyYWluZWR8fCFpdCYmMT09PWF0Lmxlbmd0aCl7Zm9yKHU9MDt1PEoubGVuZ3RoO3UrKylKW3VdLnJhbmdlPUpbdV0uX3Iuc2xpY2UoKSxFKEpbdV0sMS1yL2V0KTtvPShlPXIqdHQvZXQpLzJ9aWYobnQuaXNTdWJwbG90Q29uc3RyYWluZWR8fCFhdCYmMT09PWl0Lmxlbmd0aCl7Zm9yKHU9MDt1PEsubGVuZ3RoO3UrKylLW3VdLnJhbmdlPUtbdV0uX3Iuc2xpY2UoKSxFKEtbdV0sMS1lL3R0KTtzPShyPWUqZXQvdHQpLzJ9fW50LmlzU3VicGxvdENvbnN0cmFpbmVkJiZhdHx8VnQoIngiKSxudC5pc1N1YnBsb3RDb25zdHJhaW5lZCYmaXR8fFZ0KCJ5Iik7dmFyIGY9dHQtZSxoPWV0LXI7IW50LmlzU3VicGxvdENvbnN0cmFpbmVkfHxpdCYmYXR8fChpdD8ocz1vPzA6ZSpldC90dCxoPWYqZXQvdHQpOihvPXM/MDpyKnR0L2V0LGY9aCp0dC9ldCkpLFl0KFtvLHMsZixoXSksSHQoKSx0LmVtaXQoInBsb3RseV9yZWxheW91dGluZyIsaHQpfWZ1bmN0aW9uIHAodCxlLHIpe2Zvcih2YXIgbixpLGE9MS1lLG89MDtvPHQubGVuZ3RoO28rKyl7dmFyIHM9dFtvXTtpZighcy5maXhlZHJhbmdlKXtuPXMsaT1zLl9ybFthXSsocy5fcmxbZV0tcy5fcmxbYV0pL0Ioci9zLl9sZW5ndGgpO3ZhciBsPXMubDJyKGkpOyExIT09bCYmdm9pZCAwIT09bCYmKHMucmFuZ2VbZV09bCl9fXJldHVybiBuLl9sZW5ndGgqKG4uX3JsW2VdLWkpLyhuLl9ybFtlXS1uLl9ybFthXSl9fWZ1bmN0aW9uIFZ0KHQsZSl7Zm9yKHZhciByPW50LmlzU3VicGxvdENvbnN0cmFpbmVkP3t4OksseTpKfVt0XTpudFt0KyJheGVzIl0sbj1udC5pc1N1YnBsb3RDb25zdHJhaW5lZD97eDpKLHk6S31bdF06W10saT0wO2k8ci5sZW5ndGg7aSsrKXt2YXIgYT1yW2ldLG89YS5faWQscz1udC54TGlua3Nbb118fG50LnlMaW5rc1tvXSxsPW5bMF18fFZbc118fFpbc107bCYmKGU/KGVbYS5fbmFtZSsiLnJhbmdlWzBdIl09ZVtsLl9uYW1lKyIucmFuZ2VbMF0iXSxlW2EuX25hbWUrIi5yYW5nZVsxXSJdPWVbbC5fbmFtZSsiLnJhbmdlWzFdIl0pOmEucmFuZ2U9bC5yYW5nZS5zbGljZSgpKX19ZnVuY3Rpb24gSHQoKXt2YXIgZSxyPVtdO2Z1bmN0aW9uIG4odCl7Zm9yKGU9MDtlPHQubGVuZ3RoO2UrKyl0W2VdLmZpeGVkcmFuZ2V8fHIucHVzaCh0W2VdLl9pZCl9Zm9yKHN0JiYobihKKSxuKHJ0LnhheGVzKSxuKG50LnhheGVzKSksbHQmJihuKEspLG4ocnQueWF4ZXMpLG4obnQueWF4ZXMpKSxodD17fSxlPTA7ZTxyLmxlbmd0aDtlKyspe3ZhciBpPXJbZV0sYT1rKHQsaSk7ZC5kcmF3T25lKHQsYSx7c2tpcFRpdGxlOiEwfSksaHRbYS5fbmFtZSsiLnJhbmdlWzBdIl09YS5yYW5nZVswXSxodFthLl9uYW1lKyIucmFuZ2VbMV0iXT1hLnJhbmdlWzFdfWQucmVkcmF3Q29tcG9uZW50cyh0LHIpfWZ1bmN0aW9uIHF0KCl7aWYoIXQuX3RyYW5zaXRpb25pbmdXaXRoRHVyYXRpb24pe3ZhciBlPXQuX2NvbnRleHQuZG91YmxlQ2xpY2sscj1bXTtpdCYmKHI9ci5jb25jYXQoSikpLGF0JiYocj1yLmNvbmNhdChLKSksbnQueGF4ZXMmJihyPXIuY29uY2F0KG50LnhheGVzKSksbnQueWF4ZXMmJihyPXIuY29uY2F0KG50LnlheGVzKSk7dmFyIG4saSxhLG89e307aWYoInJlc2V0K2F1dG9zaXplIj09PWUpZm9yKGU9ImF1dG9zaXplIixpPTA7aTxyLmxlbmd0aDtpKyspaWYoKG49cltpXSkuX3JhbmdlSW5pdGlhbCYmKG4ucmFuZ2VbMF0hPT1uLl9yYW5nZUluaXRpYWxbMF18fG4ucmFuZ2VbMV0hPT1uLl9yYW5nZUluaXRpYWxbMV0pfHwhbi5fcmFuZ2VJbml0aWFsJiYhbi5hdXRvcmFuZ2Upe2U9InJlc2V0IjticmVha31pZigiYXV0b3NpemUiPT09ZSlmb3IoaT0wO2k8ci5sZW5ndGg7aSsrKShuPXJbaV0pLmZpeGVkcmFuZ2V8fChvW24uX25hbWUrIi5hdXRvcmFuZ2UiXT0hMCk7ZWxzZSBpZigicmVzZXQiPT09ZSlmb3IoKGl0fHxydC5pc1N1YnBsb3RDb25zdHJhaW5lZCkmJihyPXIuY29uY2F0KHJ0LnhheGVzKSksYXQmJiFydC5pc1N1YnBsb3RDb25zdHJhaW5lZCYmKHI9ci5jb25jYXQocnQueWF4ZXMpKSxydC5pc1N1YnBsb3RDb25zdHJhaW5lZCYmKGl0P2F0fHwocj1yLmNvbmNhdChLKSk6cj1yLmNvbmNhdChKKSksaT0wO2k8ci5sZW5ndGg7aSsrKShuPXJbaV0pLmZpeGVkcmFuZ2V8fChuLl9yYW5nZUluaXRpYWw/KGE9bi5fcmFuZ2VJbml0aWFsLG9bbi5fbmFtZSsiLnJhbmdlWzBdIl09YVswXSxvW24uX25hbWUrIi5yYW5nZVsxXSJdPWFbMV0pOm9bbi5fbmFtZSsiLmF1dG9yYW5nZSJdPSEwKTt0LmVtaXQoInBsb3RseV9kb3VibGVjbGljayIsbnVsbCksbC5jYWxsKCJfZ3VpUmVsYXlvdXQiLHQsbyl9fWZ1bmN0aW9uIEd0KCl7WXQoWzAsMCx0dCxldF0pLGkuc3luY09yQXN5bmMoW1QucHJldmlvdXNQcm9taXNlcyxmdW5jdGlvbigpe3QuX2Z1bGxMYXlvdXQuX3JlcGxvdHRpbmc9ITEsbC5jYWxsKCJfZ3VpUmVsYXlvdXQiLHQsaHQpfV0sdCl9ZnVuY3Rpb24gWXQoZSl7dmFyIHIsbixhLG8scz10Ll9mdWxsTGF5b3V0LGM9cy5fcGxvdHMsdT1zLl9zdWJwbG90cy5jYXJ0ZXNpYW47aWYodXQmJmwuc3VicGxvdHNSZWdpc3RyeS5zcGxvbS5kcmFnKHQpLGN0KWZvcihyPTA7cjx1Lmxlbmd0aDtyKyspaWYoYT0obj1jW3Vbcl1dKS54YXhpcyxvPW4ueWF4aXMsbi5fc2NlbmUpe3ZhciBmPWkuc2ltcGxlTWFwKGEucmFuZ2UsYS5yMmwpLHA9aS5zaW1wbGVNYXAoby5yYW5nZSxvLnIybCk7bi5fc2NlbmUudXBkYXRlKHtyYW5nZTpbZlswXSxwWzBdLGZbMV0scFsxXV19KX1pZigodXR8fGN0KSYmKF8odCksdyh0KSksZnQpe3ZhciBkPWVbMl0vSS5fbGVuZ3RoLGc9ZVszXS9PLl9sZW5ndGg7Zm9yKHI9MDtyPHUubGVuZ3RoO3IrKyl7YT0obj1jW3Vbcl1dKS54YXhpcyxvPW4ueWF4aXM7dmFyIHkseCxiLFQsaz0oc3R8fG50LmlzU3VicGxvdENvbnN0cmFpbmVkKSYmIWEuZml4ZWRyYW5nZSYmVlthLl9pZF0sQT0obHR8fG50LmlzU3VicGxvdENvbnN0cmFpbmVkKSYmIW8uZml4ZWRyYW5nZSYmWltvLl9pZF07aWYoaz8oeT1kLGI9dnx8bnQuaXNTdWJwbG90Q29uc3RyYWluZWQ/ZVswXTpadChhLHkpKTpudC54YUhhc2hbYS5faWRdPyh5PWQsYj1lWzBdKmEuX2xlbmd0aC9JLl9sZW5ndGgpOm50LnlhSGFzaFthLl9pZF0/KHk9ZyxiPSJucyI9PT1hdD8tZVsxXSphLl9sZW5ndGgvTy5fbGVuZ3RoOlp0KGEseSx7bjoidG9wIixzOiJib3R0b20ifVthdF0pKTpiPVh0KGEseT1XdChhLGQsZykpLEE/KHg9ZyxUPW18fG50LmlzU3VicGxvdENvbnN0cmFpbmVkP2VbMV06WnQobyx4KSk6bnQueWFIYXNoW28uX2lkXT8oeD1nLFQ9ZVsxXSpvLl9sZW5ndGgvTy5fbGVuZ3RoKTpudC54YUhhc2hbby5faWRdPyh4PWQsVD0iZXciPT09aXQ/LWVbMF0qby5fbGVuZ3RoL0kuX2xlbmd0aDpadChvLHgse2U6InJpZ2h0Iix3OiJsZWZ0In1baXRdKSk6VD1YdChvLHg9V3QobyxkLGcpKSx5fHx4KXt5fHwoeT0xKSx4fHwoeD0xKTt2YXIgTT1hLl9vZmZzZXQtYi95LFM9by5fb2Zmc2V0LVQveDtuLmNsaXBSZWN0LmNhbGwoaC5zZXRUcmFuc2xhdGUsYixUKS5jYWxsKGguc2V0U2NhbGUseSx4KSxuLnBsb3QuY2FsbChoLnNldFRyYW5zbGF0ZSxNLFMpLmNhbGwoaC5zZXRTY2FsZSwxL3ksMS94KSx5PT09bi54U2NhbGVGYWN0b3ImJng9PT1uLnlTY2FsZUZhY3Rvcnx8KGguc2V0UG9pbnRHcm91cFNjYWxlKG4uem9vbVNjYWxlUHRzLHkseCksaC5zZXRUZXh0UG9pbnRzU2NhbGUobi56b29tU2NhbGVUeHQseSx4KSksaC5oaWRlT3V0c2lkZVJhbmdlUG9pbnRzKG4uY2xpcE9uQXhpc0ZhbHNlVHJhY2VzLG4pLG4ueFNjYWxlRmFjdG9yPXksbi55U2NhbGVGYWN0b3I9eH19fX1mdW5jdGlvbiBXdCh0LGUscil7cmV0dXJuIHQuZml4ZWRyYW5nZT8wOnN0JiZydC54YUhhc2hbdC5faWRdP2U6bHQmJihydC5pc1N1YnBsb3RDb25zdHJhaW5lZD9ydC54YUhhc2g6cnQueWFIYXNoKVt0Ll9pZF0/cjowfWZ1bmN0aW9uIFh0KHQsZSl7cmV0dXJuIGU/KHQucmFuZ2U9dC5fci5zbGljZSgpLEUodCxlKSxadCh0LGUpKTowfWZ1bmN0aW9uIFp0KHQsZSxyKXtyZXR1cm4gdC5fbGVuZ3RoKigxLWUpKmJbcnx8dC5jb25zdHJhaW50b3dhcmR8fCJtaWRkbGUiXX1yZXR1cm4gbS5sZW5ndGgqdi5sZW5ndGghPTEmJlcoYnQsKGZ1bmN0aW9uKGUpe2lmKHQuX2NvbnRleHQuX3Njcm9sbFpvb20uY2FydGVzaWFufHx0Ll9mdWxsTGF5b3V0Ll9lbmFibGVzY3JvbGx6b29tKXtpZihJdCgpLHQuX3RyYW5zaXRpb25pbmdXaXRoRHVyYXRpb24pcmV0dXJuIGUucHJldmVudERlZmF1bHQoKSx2b2lkIGUuc3RvcFByb3BhZ2F0aW9uKCk7eXQoKSxjbGVhclRpbWVvdXQoQnQpO3ZhciByPS1lLmRlbHRhWTtpZihpc0Zpbml0ZShyKXx8KHI9ZS53aGVlbERlbHRhLzEwKSxpc0Zpbml0ZShyKSl7dmFyIG4sYT1NYXRoLmV4cCgtTWF0aC5taW4oTWF0aC5tYXgociwtMjApLDIwKS8yMDApLG89anQuZHJhZ2xheWVyLnNlbGVjdCgiLm5zZXdkcmFnIikubm9kZSgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHM9KGUuY2xpZW50WC1vLmxlZnQpL28ud2lkdGgsbD0oby5ib3R0b20tZS5jbGllbnRZKS9vLmhlaWdodDtpZihzdCl7Zm9yKHZ8fChzPS41KSxuPTA7bjxKLmxlbmd0aDtuKyspYyhKW25dLHMsYSk7VnQoIngiKSxGdFsyXSo9YSxGdFswXSs9RnRbMl0qcyooMS9hLTEpfWlmKGx0KXtmb3IobXx8KGw9LjUpLG49MDtuPEsubGVuZ3RoO24rKyljKEtbbl0sbCxhKTtWdCgieSIpLEZ0WzNdKj1hLEZ0WzFdKz1GdFszXSooMS1sKSooMS9hLTEpfVl0KEZ0KSxIdCgpLHQuZW1pdCgicGxvdGx5X3JlbGF5b3V0aW5nIixodCksQnQ9c2V0VGltZW91dCgoZnVuY3Rpb24oKXt0Ll9mdWxsTGF5b3V0JiYoRnQ9WzAsMCx0dCxldF0sR3QoKSl9KSxOdCksZS5wcmV2ZW50RGVmYXVsdCgpfWVsc2UgaS5sb2coIkRpZCBub3QgZmluZCB3aGVlbCBtb3Rpb24gYXR0cmlidXRlczogIixlKX1mdW5jdGlvbiBjKHQsZSxyKXtpZighdC5maXhlZHJhbmdlKXt2YXIgbj1pLnNpbXBsZU1hcCh0LnJhbmdlLHQucjJsKSxhPW5bMF0rKG5bMV0tblswXSkqZTt0LnJhbmdlPW4ubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gdC5sMnIoYSsoZS1hKSpyKX0pKX19fSkpLGJ0fSxtYWtlRHJhZ2dlcjpPLG1ha2VSZWN0RHJhZ2dlcjp6LG1ha2Vab29tYm94Ok4sbWFrZUNvcm5lcnM6aix1cGRhdGVab29tYm94OlUseHlDb3JuZXJzOkcsdHJhbnNpdGlvblpvb21ib3g6VixyZW1vdmVab29tYm94Okgsc2hvd0RvdWJsZUNsaWNrTm90aWZpZXI6cSxhdHRhY2hXaGVlbEV2ZW50SGFuZGxlcjpXfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjozNjcsIi4uLy4uL2NvbXBvbmVudHMvZHJhZ2VsZW1lbnQiOjM4NiwiLi4vLi4vY29tcG9uZW50cy9kcmFnZWxlbWVudC9oZWxwZXJzIjozODUsIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6Mzg5LCIuLi8uLi9jb21wb25lbnRzL2Z4Ijo0MDcsIi4uLy4uL2NvbXBvbmVudHMvc2VsZWN0aW9ucyI6NDU1LCIuLi8uLi9jb25zdGFudHMvYWxpZ25tZW50Ijo0ODMsIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9saWIvY2xlYXJfZ2xfY2FudmFzZXMiOjQ5OSwiLi4vLi4vbGliL3NldGN1cnNvciI6NTM2LCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiOjU0MSwiLi4vLi4vcGxvdF9hcGkvc3Vicm91dGluZXMiOjU1NiwiLi4vLi4vcmVnaXN0cnkiOjY0NywiLi4vcGxvdHMiOjYyOCwiLi9heGVzIjo1NjYsIi4vYXhpc19pZHMiOjU3MCwiLi9jb25zdGFudHMiOjU3MywiLi9zY2FsZV96b29tIjo1ODQsIkBwbG90bHkvZDMiOjU4LCJoYXMtcGFzc2l2ZS1ldmVudHMiOjIyOSx0aW55Y29sb3IyOjMxM31dLDU3NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2Z4IiksYT10KCIuLi8uLi9jb21wb25lbnRzL2RyYWdlbGVtZW50Iiksbz10KCIuLi8uLi9saWIvc2V0Y3Vyc29yIikscz10KCIuL2RyYWdib3giKS5tYWtlRHJhZ0JveCxsPXQoIi4vY29uc3RhbnRzIikuRFJBR0dFUlNJWkU7ci5pbml0SW50ZXJhY3Rpb25zPWZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQ7aWYodC5fY29udGV4dC5zdGF0aWNQbG90KW4uc2VsZWN0KHQpLnNlbGVjdEFsbCgiLmRyYWciKS5yZW1vdmUoKTtlbHNlIGlmKGUuX2hhcygiY2FydGVzaWFuIil8fGUuX2hhcygic3Bsb20iKSl7T2JqZWN0LmtleXMoZS5fcGxvdHN8fHt9KS5zb3J0KChmdW5jdGlvbih0LHIpe2lmKChlLl9wbG90c1t0XS5tYWlucGxvdCYmITApPT09KGUuX3Bsb3RzW3JdLm1haW5wbG90JiYhMCkpe3ZhciBuPXQuc3BsaXQoInkiKSxpPXIuc3BsaXQoInkiKTtyZXR1cm4gblswXT09PWlbMF0/TnVtYmVyKG5bMV18fDEpLU51bWJlcihpWzFdfHwxKTpOdW1iZXIoblswXXx8MSktTnVtYmVyKGlbMF18fDEpfXJldHVybiBlLl9wbG90c1t0XS5tYWlucGxvdD8xOi0xfSkpLmZvckVhY2goKGZ1bmN0aW9uKHIpe3ZhciBuPWUuX3Bsb3RzW3JdLG89bi54YXhpcyxjPW4ueWF4aXM7aWYoIW4ubWFpbnBsb3Qpe3ZhciB1PXModCxuLG8uX29mZnNldCxjLl9vZmZzZXQsby5fbGVuZ3RoLGMuX2xlbmd0aCwibnMiLCJldyIpO3Uub25tb3VzZW1vdmU9ZnVuY3Rpb24oZSl7dC5fZnVsbExheW91dC5fcmVob3Zlcj1mdW5jdGlvbigpe3QuX2Z1bGxMYXlvdXQuX2hvdmVyc3VicGxvdD09PXImJnQuX2Z1bGxMYXlvdXQuX3Bsb3RzW3JdJiZpLmhvdmVyKHQsZSxyKX0saS5ob3Zlcih0LGUsciksdC5fZnVsbExheW91dC5fbGFzdGhvdmVyPXUsdC5fZnVsbExheW91dC5faG92ZXJzdWJwbG90PXJ9LHUub25tb3VzZW91dD1mdW5jdGlvbihlKXt0Ll9kcmFnZ2luZ3x8KHQuX2Z1bGxMYXlvdXQuX2hvdmVyc3VicGxvdD1udWxsLGEudW5ob3Zlcih0LGUpKX0sdC5fY29udGV4dC5zaG93QXhpc0RyYWdIYW5kbGVzJiYocyh0LG4sby5fb2Zmc2V0LWwsYy5fb2Zmc2V0LWwsbCxsLCJuIiwidyIpLHModCxuLG8uX29mZnNldCtvLl9sZW5ndGgsYy5fb2Zmc2V0LWwsbCxsLCJuIiwiZSIpLHModCxuLG8uX29mZnNldC1sLGMuX29mZnNldCtjLl9sZW5ndGgsbCxsLCJzIiwidyIpLHModCxuLG8uX29mZnNldCtvLl9sZW5ndGgsYy5fb2Zmc2V0K2MuX2xlbmd0aCxsLGwsInMiLCJlIikpfWlmKHQuX2NvbnRleHQuc2hvd0F4aXNEcmFnSGFuZGxlcyl7aWYocj09PW8uX21haW5TdWJwbG90KXt2YXIgZj1vLl9tYWluTGluZVBvc2l0aW9uOyJ0b3AiPT09by5zaWRlJiYoZi09bCkscyh0LG4sby5fb2Zmc2V0Ky4xKm8uX2xlbmd0aCxmLC44Km8uX2xlbmd0aCxsLCIiLCJldyIpLHModCxuLG8uX29mZnNldCxmLC4xKm8uX2xlbmd0aCxsLCIiLCJ3Iikscyh0LG4sby5fb2Zmc2V0Ky45Km8uX2xlbmd0aCxmLC4xKm8uX2xlbmd0aCxsLCIiLCJlIil9aWYocj09PWMuX21haW5TdWJwbG90KXt2YXIgaD1jLl9tYWluTGluZVBvc2l0aW9uOyJyaWdodCIhPT1jLnNpZGUmJihoLT1sKSxzKHQsbixoLGMuX29mZnNldCsuMSpjLl9sZW5ndGgsbCwuOCpjLl9sZW5ndGgsIm5zIiwiIikscyh0LG4saCxjLl9vZmZzZXQrLjkqYy5fbGVuZ3RoLGwsLjEqYy5fbGVuZ3RoLCJzIiwiIikscyh0LG4saCxjLl9vZmZzZXQsbCwuMSpjLl9sZW5ndGgsIm4iLCIiKX19fSkpO3ZhciBvPWUuX2hvdmVybGF5ZXIubm9kZSgpO28ub25tb3VzZW1vdmU9ZnVuY3Rpb24ocil7ci50YXJnZXQ9dC5fZnVsbExheW91dC5fbGFzdGhvdmVyLGkuaG92ZXIodCxyLGUuX2hvdmVyc3VicGxvdCl9LG8ub25jbGljaz1mdW5jdGlvbihlKXtlLnRhcmdldD10Ll9mdWxsTGF5b3V0Ll9sYXN0aG92ZXIsaS5jbGljayh0LGUpfSxvLm9ubW91c2Vkb3duPWZ1bmN0aW9uKGUpe3QuX2Z1bGxMYXlvdXQuX2xhc3Rob3Zlci5vbm1vdXNlZG93bihlKX0sci51cGRhdGVGeCh0KX19LHIudXBkYXRlRng9ZnVuY3Rpb24odCl7dmFyIGU9dC5fZnVsbExheW91dCxyPSJwYW4iPT09ZS5kcmFnbW9kZT8ibW92ZSI6ImNyb3NzaGFpciI7byhlLl9kcmFnZ2VycyxyKX19LHsiLi4vLi4vY29tcG9uZW50cy9kcmFnZWxlbWVudCI6Mzg2LCIuLi8uLi9jb21wb25lbnRzL2Z4Ijo0MDcsIi4uLy4uL2xpYi9zZXRjdXJzb3IiOjUzNiwiLi9jb25zdGFudHMiOjU3MywiLi9kcmFnYm94Ijo1NzUsIkBwbG90bHkvZDMiOjU4fV0sNTc3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3JlZ2lzdHJ5IiksaT10KCIuLi8uLi9saWIiKSxhPXQoIi4vYXhpc19pZHMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUscil7dmFyIG89ZVt0XTtpZihBcnJheS5pc0FycmF5KG8pKWZvcih2YXIgcz1uLnN1YnBsb3RzUmVnaXN0cnkuY2FydGVzaWFuLGw9cy5pZFJlZ2V4LGM9ci5fc3VicGxvdHMsdT1jLnhheGlzLGY9Yy55YXhpcyxoPWMuY2FydGVzaWFuLHA9ci5faGFzKCJjYXJ0ZXNpYW4iKXx8ci5faGFzKCJnbDJkIiksZD0wO2Q8by5sZW5ndGg7ZCsrKXt2YXIgbT1vW2RdO2lmKGkuaXNQbGFpbk9iamVjdChtKSl7dmFyIGc9YS5jbGVhbklkKG0ueHJlZiwieCIsITEpLHY9YS5jbGVhbklkKG0ueXJlZiwieSIsITEpLHk9bC54LnRlc3QoZykseD1sLnkudGVzdCh2KTtpZih5fHx4KXtwfHxpLnB1c2hVbmlxdWUoci5fYmFzZVBsb3RNb2R1bGVzLHMpO3ZhciBiPSExO3kmJi0xPT09dS5pbmRleE9mKGcpJiYodS5wdXNoKGcpLGI9ITApLHgmJi0xPT09Zi5pbmRleE9mKHYpJiYoZi5wdXNoKHYpLGI9ITApLGImJnkmJngmJmgucHVzaChnK3YpfX19fX19LHsiLi4vLi4vbGliIjo1MTUsIi4uLy4uL3JlZ2lzdHJ5Ijo2NDcsIi4vYXhpc19pZHMiOjU3MH1dLDU3ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9yZWdpc3RyeSIpLGE9dCgiLi4vLi4vbGliIiksbz10KCIuLi9wbG90cyIpLHM9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIiksbD10KCIuLi9nZXRfZGF0YSIpLmdldE1vZHVsZUNhbGNEYXRhLGM9dCgiLi9heGlzX2lkcyIpLHU9dCgiLi9jb25zdGFudHMiKSxmPXQoIi4uLy4uL2NvbnN0YW50cy94bWxuc19uYW1lc3BhY2VzIiksaD1hLmVuc3VyZVNpbmdsZTtmdW5jdGlvbiBwKHQsZSxyKXtyZXR1cm4gYS5lbnN1cmVTaW5nbGUodCxlLHIsKGZ1bmN0aW9uKHQpe3QuZGF0dW0ocil9KSl9ZnVuY3Rpb24gZCh0LGUscixhLG8pe2Zvcih2YXIgYyxmLGgscD11LnRyYWNlTGF5ZXJDbGFzc2VzLGQ9dC5fZnVsbExheW91dCxtPWQuX21vZHVsZXMsZz1bXSx2PVtdLHk9MDt5PG0ubGVuZ3RoO3krKyl7dmFyIHg9KGM9bVt5XSkubmFtZSxiPWkubW9kdWxlc1t4XS5jYXRlZ29yaWVzO2lmKGIuc3ZnKXt2YXIgXz1jLmxheWVyTmFtZXx8eCsibGF5ZXIiLHc9Yy5wbG90O2g9KGY9bChyLHcpKVswXSxyPWZbMV0saC5sZW5ndGgmJmcucHVzaCh7aTpwLmluZGV4T2YoXyksY2xhc3NOYW1lOl8scGxvdE1ldGhvZDp3LGNkTW9kdWxlOmh9KSxiLnpvb21TY2FsZSYmdi5wdXNoKCIuIitfKX19Zy5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0LmktZS5pfSkpO3ZhciBUPWUucGxvdC5zZWxlY3RBbGwoImcubWxheWVyIikuZGF0YShnLChmdW5jdGlvbih0KXtyZXR1cm4gdC5jbGFzc05hbWV9KSk7aWYoVC5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIiwoZnVuY3Rpb24odCl7cmV0dXJuIHQuY2xhc3NOYW1lfSkpLmNsYXNzZWQoIm1sYXllciIsITApLmNsYXNzZWQoInJhbmdlcGxvdCIsZS5pc1JhbmdlUGxvdCksVC5leGl0KCkucmVtb3ZlKCksVC5vcmRlcigpLFQuZWFjaCgoZnVuY3Rpb24ocil7dmFyIGk9bi5zZWxlY3QodGhpcyksbD1yLmNsYXNzTmFtZTtyLnBsb3RNZXRob2QodCxlLHIuY2RNb2R1bGUsaSxhLG8pLC0xPT09dS5jbGlwT25BeGlzRmFsc2VRdWVyeS5pbmRleE9mKCIuIitsKSYmcy5zZXRDbGlwVXJsKGksZS5sYXllckNsaXBJZCx0KX0pKSxkLl9oYXMoInNjYXR0ZXJnbCIpJiYoYz1pLmdldE1vZHVsZSgic2NhdHRlcmdsIiksaD1sKHIsYylbMF0sYy5wbG90KHQsZSxoKSksIXQuX2NvbnRleHQuc3RhdGljUGxvdCYmKGUuX2hhc0NsaXBPbkF4aXNGYWxzZSYmKGUuY2xpcE9uQXhpc0ZhbHNlVHJhY2VzPWUucGxvdC5zZWxlY3RBbGwodS5jbGlwT25BeGlzRmFsc2VRdWVyeS5qb2luKCIsIikpLnNlbGVjdEFsbCgiLnRyYWNlIikpLHYubGVuZ3RoKSl7dmFyIGs9ZS5wbG90LnNlbGVjdEFsbCh2LmpvaW4oIiwiKSkuc2VsZWN0QWxsKCIudHJhY2UiKTtlLnpvb21TY2FsZVB0cz1rLnNlbGVjdEFsbCgicGF0aC5wb2ludCIpLGUuem9vbVNjYWxlVHh0PWsuc2VsZWN0QWxsKCIudGV4dHBvaW50Iil9fWZ1bmN0aW9uIG0odCxlKXt2YXIgcj1lLnBsb3Rncm91cCxuPWUuaWQsaT11LmxheWVyVmFsdWUybGF5ZXJDbGFzc1tlLnhheGlzLmxheWVyXSxhPXUubGF5ZXJWYWx1ZTJsYXllckNsYXNzW2UueWF4aXMubGF5ZXJdLG89dC5fZnVsbExheW91dC5faGFzT25seUxhcmdlU3Bsb21zO2lmKGUubWFpbnBsb3Qpe3ZhciBzPWUubWFpbnBsb3RpbmZvLGw9cy5wbG90Z3JvdXAsZj1uKyIteCIsZD1uKyIteSI7ZS5taW5vckdyaWRsYXllcj1zLm1pbm9yR3JpZGxheWVyLGUuZ3JpZGxheWVyPXMuZ3JpZGxheWVyLGUuemVyb2xpbmVsYXllcj1zLnplcm9saW5lbGF5ZXIsaChzLm92ZXJsaW5lc0JlbG93LCJwYXRoIixmKSxoKHMub3ZlcmxpbmVzQmVsb3csInBhdGgiLGQpLGgocy5vdmVyYXhlc0JlbG93LCJnIixmKSxoKHMub3ZlcmF4ZXNCZWxvdywiZyIsZCksZS5wbG90PWgocy5vdmVycGxvdCwiZyIsbiksaChzLm92ZXJsaW5lc0Fib3ZlLCJwYXRoIixmKSxoKHMub3ZlcmxpbmVzQWJvdmUsInBhdGgiLGQpLGgocy5vdmVyYXhlc0Fib3ZlLCJnIixmKSxoKHMub3ZlcmF4ZXNBYm92ZSwiZyIsZCksZS54bGluZXM9bC5zZWxlY3QoIi5vdmVybGluZXMtIitpKS5zZWxlY3QoIi4iK2YpLGUueWxpbmVzPWwuc2VsZWN0KCIub3ZlcmxpbmVzLSIrYSkuc2VsZWN0KCIuIitkKSxlLnhheGlzbGF5ZXI9bC5zZWxlY3QoIi5vdmVyYXhlcy0iK2kpLnNlbGVjdCgiLiIrZiksZS55YXhpc2xheWVyPWwuc2VsZWN0KCIub3ZlcmF4ZXMtIithKS5zZWxlY3QoIi4iK2QpfWVsc2UgaWYobyllLnhsaW5lcz1oKHIsInBhdGgiLCJ4bGluZXMtYWJvdmUiKSxlLnlsaW5lcz1oKHIsInBhdGgiLCJ5bGluZXMtYWJvdmUiKSxlLnhheGlzbGF5ZXI9aChyLCJnIiwieGF4aXNsYXllci1hYm92ZSIpLGUueWF4aXNsYXllcj1oKHIsImciLCJ5YXhpc2xheWVyLWFib3ZlIik7ZWxzZXt2YXIgbT1oKHIsImciLCJsYXllci1zdWJwbG90Iik7ZS5zaGFwZWxheWVyPWgobSwiZyIsInNoYXBlbGF5ZXIiKSxlLmltYWdlbGF5ZXI9aChtLCJnIiwiaW1hZ2VsYXllciIpLGUubWlub3JHcmlkbGF5ZXI9aChyLCJnIiwibWlub3ItZ3JpZGxheWVyIiksZS5ncmlkbGF5ZXI9aChyLCJnIiwiZ3JpZGxheWVyIiksZS56ZXJvbGluZWxheWVyPWgociwiZyIsInplcm9saW5lbGF5ZXIiKSxoKHIsInBhdGgiLCJ4bGluZXMtYmVsb3ciKSxoKHIsInBhdGgiLCJ5bGluZXMtYmVsb3ciKSxlLm92ZXJsaW5lc0JlbG93PWgociwiZyIsIm92ZXJsaW5lcy1iZWxvdyIpLGgociwiZyIsInhheGlzbGF5ZXItYmVsb3ciKSxoKHIsImciLCJ5YXhpc2xheWVyLWJlbG93IiksZS5vdmVyYXhlc0JlbG93PWgociwiZyIsIm92ZXJheGVzLWJlbG93IiksZS5wbG90PWgociwiZyIsInBsb3QiKSxlLm92ZXJwbG90PWgociwiZyIsIm92ZXJwbG90IiksZS54bGluZXM9aChyLCJwYXRoIiwieGxpbmVzLWFib3ZlIiksZS55bGluZXM9aChyLCJwYXRoIiwieWxpbmVzLWFib3ZlIiksZS5vdmVybGluZXNBYm92ZT1oKHIsImciLCJvdmVybGluZXMtYWJvdmUiKSxoKHIsImciLCJ4YXhpc2xheWVyLWFib3ZlIiksaChyLCJnIiwieWF4aXNsYXllci1hYm92ZSIpLGUub3ZlcmF4ZXNBYm92ZT1oKHIsImciLCJvdmVyYXhlcy1hYm92ZSIpLGUueGxpbmVzPXIuc2VsZWN0KCIueGxpbmVzLSIraSksZS55bGluZXM9ci5zZWxlY3QoIi55bGluZXMtIithKSxlLnhheGlzbGF5ZXI9ci5zZWxlY3QoIi54YXhpc2xheWVyLSIraSksZS55YXhpc2xheWVyPXIuc2VsZWN0KCIueWF4aXNsYXllci0iK2EpfW98fChwKGUubWlub3JHcmlkbGF5ZXIsImciLGUueGF4aXMuX2lkKSxwKGUubWlub3JHcmlkbGF5ZXIsImciLGUueWF4aXMuX2lkKSxlLm1pbm9yR3JpZGxheWVyLnNlbGVjdEFsbCgiZyIpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHRbMF19KSkuc29ydChjLmlkU29ydCkscChlLmdyaWRsYXllciwiZyIsZS54YXhpcy5faWQpLHAoZS5ncmlkbGF5ZXIsImciLGUueWF4aXMuX2lkKSxlLmdyaWRsYXllci5zZWxlY3RBbGwoImciKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0WzBdfSkpLnNvcnQoYy5pZFNvcnQpKSxlLnhsaW5lcy5zdHlsZSgiZmlsbCIsIm5vbmUiKS5jbGFzc2VkKCJjcmlzcCIsITApLGUueWxpbmVzLnN0eWxlKCJmaWxsIiwibm9uZSIpLmNsYXNzZWQoImNyaXNwIiwhMCl9ZnVuY3Rpb24gZyh0LGUpe2lmKHQpe3ZhciByPXt9O2Zvcih2YXIgaSBpbiB0LmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBpPXRbMF07bi5zZWxlY3QodGhpcykucmVtb3ZlKCksdihpLGUpLHJbaV09ITB9KSksZS5fcGxvdHMpZm9yKHZhciBhPWUuX3Bsb3RzW2ldLm92ZXJsYXlzfHxbXSxvPTA7bzxhLmxlbmd0aDtvKyspe3ZhciBzPWFbb107cltzLmlkXSYmcy5wbG90LnNlbGVjdEFsbCgiLnRyYWNlIikucmVtb3ZlKCl9fX1mdW5jdGlvbiB2KHQsZSl7ZS5fZHJhZ2dlcnMuc2VsZWN0QWxsKCJnLiIrdCkucmVtb3ZlKCksZS5fZGVmcy5zZWxlY3QoIiNjbGlwIitlLl91aWQrdCsicGxvdCIpLnJlbW92ZSgpfXIubmFtZT0iY2FydGVzaWFuIixyLmF0dHI9WyJ4YXhpcyIsInlheGlzIl0sci5pZFJvb3Q9WyJ4IiwieSJdLHIuaWRSZWdleD11LmlkUmVnZXgsci5hdHRyUmVnZXg9dS5hdHRyUmVnZXgsci5hdHRyaWJ1dGVzPXQoIi4vYXR0cmlidXRlcyIpLHIubGF5b3V0QXR0cmlidXRlcz10KCIuL2xheW91dF9hdHRyaWJ1dGVzIiksci5zdXBwbHlMYXlvdXREZWZhdWx0cz10KCIuL2xheW91dF9kZWZhdWx0cyIpLHIudHJhbnNpdGlvbkF4ZXM9dCgiLi90cmFuc2l0aW9uX2F4ZXMiKSxyLmZpbmFsaXplU3VicGxvdHM9ZnVuY3Rpb24odCxlKXt2YXIgcixuLGksbz1lLl9zdWJwbG90cyxzPW8ueGF4aXMsbD1vLnlheGlzLGY9by5jYXJ0ZXNpYW4saD1mLmNvbmNhdChvLmdsMmR8fFtdKSxwPXt9LGQ9e307Zm9yKHI9MDtyPGgubGVuZ3RoO3IrKyl7dmFyIG09aFtyXS5zcGxpdCgieSIpO3BbbVswXV09MSxkWyJ5IittWzFdXT0xfWZvcihyPTA7cjxzLmxlbmd0aDtyKyspcFtuPXNbcl1dfHwoaT0odFtjLmlkMm5hbWUobildfHx7fSkuYW5jaG9yLHUuaWRSZWdleC55LnRlc3QoaSl8fChpPSJ5IiksZi5wdXNoKG4raSksaC5wdXNoKG4raSksZFtpXXx8KGRbaV09MSxhLnB1c2hVbmlxdWUobCxpKSkpO2ZvcihyPTA7cjxsLmxlbmd0aDtyKyspZFtpPWxbcl1dfHwobj0odFtjLmlkMm5hbWUoaSldfHx7fSkuYW5jaG9yLHUuaWRSZWdleC54LnRlc3Qobil8fChuPSJ4IiksZi5wdXNoKG4raSksaC5wdXNoKG4raSkscFtuXXx8KHBbbl09MSxhLnB1c2hVbmlxdWUocyxuKSkpO2lmKCFoLmxlbmd0aCl7Zm9yKHZhciBnIGluIG49IiIsaT0iIix0KXtpZih1LmF0dHJSZWdleC50ZXN0KGcpKSJ4Ij09PWcuY2hhckF0KDApPyghbnx8K2cuc3Vic3RyKDUpPCtuLnN1YnN0cig1KSkmJihuPWcpOighaXx8K2cuc3Vic3RyKDUpPCtpLnN1YnN0cig1KSkmJihpPWcpfW49bj9jLm5hbWUyaWQobik6IngiLGk9aT9jLm5hbWUyaWQoaSk6InkiLHMucHVzaChuKSxsLnB1c2goaSksZi5wdXNoKG4raSl9fSxyLnBsb3Q9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGksYT10Ll9mdWxsTGF5b3V0LG89YS5fc3VicGxvdHMuY2FydGVzaWFuLHM9dC5jYWxjZGF0YTtpZighQXJyYXkuaXNBcnJheShlKSlmb3IoZT1bXSxpPTA7aTxzLmxlbmd0aDtpKyspZS5wdXNoKGkpO2ZvcihpPTA7aTxvLmxlbmd0aDtpKyspe2Zvcih2YXIgbCxjPW9baV0sdT1hLl9wbG90c1tjXSxmPVtdLGg9MDtoPHMubGVuZ3RoO2grKyl7dmFyIHA9c1toXSxtPXBbMF0udHJhY2U7bS54YXhpcyttLnlheGlzPT09YyYmKCgtMSE9PWUuaW5kZXhPZihtLmluZGV4KXx8bS5jYXJwZXQpJiYobCYmbFswXS50cmFjZS54YXhpcytsWzBdLnRyYWNlLnlheGlzPT09YyYmLTEhPT1bInRvbmV4dHgiLCJ0b25leHR5IiwidG9uZXh0Il0uaW5kZXhPZihtLmZpbGwpJiYtMT09PWYuaW5kZXhPZihsKSYmZi5wdXNoKGwpLGYucHVzaChwKSksbD1wKX1kKHQsdSxmLHIsbil9fSxyLmNsZWFuPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpLGEsbyxzPW4uX3Bsb3RzfHx7fSxsPWUuX3Bsb3RzfHx7fSx1PW4uX3N1YnBsb3RzfHx7fTtpZihuLl9oYXNPbmx5TGFyZ2VTcGxvbXMmJiFlLl9oYXNPbmx5TGFyZ2VTcGxvbXMpZm9yKG8gaW4gcykoaT1zW29dKS5wbG90Z3JvdXAmJmkucGxvdGdyb3VwLnJlbW92ZSgpO3ZhciBmPW4uX2hhcyYmbi5faGFzKCJnbCIpLGg9ZS5faGFzJiZlLl9oYXMoImdsIik7aWYoZiYmIWgpZm9yKG8gaW4gcykoaT1zW29dKS5fc2NlbmUmJmkuX3NjZW5lLmRlc3Ryb3koKTtpZih1LnhheGlzJiZ1LnlheGlzKXt2YXIgcD1jLmxpc3RJZHMoe19mdWxsTGF5b3V0Om59KTtmb3IoYT0wO2E8cC5sZW5ndGg7YSsrKXt2YXIgZD1wW2FdO2VbYy5pZDJuYW1lKGQpXXx8bi5faW5mb2xheWVyLnNlbGVjdEFsbCgiLmctIitkKyJ0aXRsZSIpLnJlbW92ZSgpfX12YXIgbT1uLl9oYXMmJm4uX2hhcygiY2FydGVzaWFuIikseT1lLl9oYXMmJmUuX2hhcygiY2FydGVzaWFuIik7aWYobSYmIXkpZyhuLl9jYXJ0ZXNpYW5sYXllci5zZWxlY3RBbGwoIi5zdWJwbG90Iiksbiksbi5fZGVmcy5zZWxlY3RBbGwoIi5heGVzY2xpcCIpLnJlbW92ZSgpLGRlbGV0ZSBuLl9heGlzQ29uc3RyYWludEdyb3VwcyxkZWxldGUgbi5fYXhpc01hdGNoR3JvdXBzO2Vsc2UgaWYodS5jYXJ0ZXNpYW4pZm9yKGE9MDthPHUuY2FydGVzaWFuLmxlbmd0aDthKyspe3ZhciB4PXUuY2FydGVzaWFuW2FdO2lmKCFsW3hdKXt2YXIgYj0iLiIreCsiLC4iK3grIi14LC4iK3grIi15IjtuLl9jYXJ0ZXNpYW5sYXllci5zZWxlY3RBbGwoYikucmVtb3ZlKCksdih4LG4pfX19LHIuZHJhd0ZyYW1ld29yaz1mdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0LHI9ZnVuY3Rpb24odCl7dmFyIGUscixuLGksYSxvLHM9dC5fZnVsbExheW91dCxsPXMuX3N1YnBsb3RzLmNhcnRlc2lhbixjPWwubGVuZ3RoLHU9W10sZj1bXTtmb3IoZT0wO2U8YztlKyspe249bFtlXSxpPXMuX3Bsb3RzW25dLGE9aS54YXhpcyxvPWkueWF4aXM7dmFyIGg9YS5fbWFpbkF4aXMscD1vLl9tYWluQXhpcyxkPWguX2lkK3AuX2lkLG09cy5fcGxvdHNbZF07aS5vdmVybGF5cz1bXSxkIT09biYmbT8oaS5tYWlucGxvdD1kLGkubWFpbnBsb3RpbmZvPW0sZi5wdXNoKG4pKTooaS5tYWlucGxvdD12b2lkIDAsaS5tYWlucGxvdGluZm89dm9pZCAwLHUucHVzaChuKSl9Zm9yKGU9MDtlPGYubGVuZ3RoO2UrKyluPWZbZV0sKGk9cy5fcGxvdHNbbl0pLm1haW5wbG90aW5mby5vdmVybGF5cy5wdXNoKGkpO3ZhciBnPXUuY29uY2F0KGYpLHY9bmV3IEFycmF5KGMpO2ZvcihlPTA7ZTxjO2UrKyl7bj1nW2VdLGk9cy5fcGxvdHNbbl0sYT1pLnhheGlzLG89aS55YXhpczt2YXIgeT1bbixhLmxheWVyLG8ubGF5ZXIsYS5vdmVybGF5aW5nfHwiIixvLm92ZXJsYXlpbmd8fCIiXTtmb3Iocj0wO3I8aS5vdmVybGF5cy5sZW5ndGg7cisrKXkucHVzaChpLm92ZXJsYXlzW3JdLmlkKTt2W2VdPXl9cmV0dXJuIHZ9KHQpLGk9ZS5fY2FydGVzaWFubGF5ZXIuc2VsZWN0QWxsKCIuc3VicGxvdCIpLmRhdGEocixTdHJpbmcpO2kuZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsKGZ1bmN0aW9uKHQpe3JldHVybiJzdWJwbG90ICIrdFswXX0pKSxpLm9yZGVyKCksaS5leGl0KCkuY2FsbChnLGUpLGkuZWFjaCgoZnVuY3Rpb24ocil7dmFyIGk9clswXSxhPWUuX3Bsb3RzW2ldO2EucGxvdGdyb3VwPW4uc2VsZWN0KHRoaXMpLG0odCxhKSxhLmRyYWdsYXllcj1oKGUuX2RyYWdnZXJzLCJnIixpKX0pKX0sci5yYW5nZVBsb3Q9ZnVuY3Rpb24odCxlLHIpe20odCxlKSxkKHQsZSxyKSxvLnN0eWxlKHQpfSxyLnRvU1ZHPWZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQuX2dsaW1hZ2VzLHI9bi5zZWxlY3QodCkuc2VsZWN0QWxsKCIuc3ZnLWNvbnRhaW5lciIpO3IuZmlsdGVyKChmdW5jdGlvbih0LGUpe3JldHVybiBlPT09ci5zaXplKCktMX0pKS5zZWxlY3RBbGwoIi5nbC1jYW52YXMtY29udGV4dCwgLmdsLWNhbnZhcy1mb2N1cyIpLmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy50b0RhdGFVUkwoImltYWdlL3BuZyIpO2UuYXBwZW5kKCJzdmc6aW1hZ2UiKS5hdHRyKHt4bWxuczpmLnN2ZywieGxpbms6aHJlZiI6dCxwcmVzZXJ2ZUFzcGVjdFJhdGlvOiJub25lIix4OjAseTowLHdpZHRoOnRoaXMuc3R5bGUud2lkdGgsaGVpZ2h0OnRoaXMuc3R5bGUuaGVpZ2h0fSl9KSl9LHIudXBkYXRlRng9dCgiLi9ncmFwaF9pbnRlcmFjdCIpLnVwZGF0ZUZ4fSx7Ii4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6Mzg5LCIuLi8uLi9jb25zdGFudHMveG1sbnNfbmFtZXNwYWNlcyI6NDkyLCIuLi8uLi9saWIiOjUxNSwiLi4vLi4vcmVnaXN0cnkiOjY0NywiLi4vZ2V0X2RhdGEiOjYwMiwiLi4vcGxvdHMiOjYyOCwiLi9hdHRyaWJ1dGVzIjo1NjQsIi4vYXhpc19pZHMiOjU3MCwiLi9jb25zdGFudHMiOjU3MywiLi9ncmFwaF9pbnRlcmFjdCI6NTc2LCIuL2xheW91dF9hdHRyaWJ1dGVzIjo1NzksIi4vbGF5b3V0X2RlZmF1bHRzIjo1ODAsIi4vdHJhbnNpdGlvbl9heGVzIjo1OTAsIkBwbG90bHkvZDMiOjU4fV0sNTc5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2ZvbnRfYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmcvYXR0cmlidXRlcyIpLmRhc2gsbz10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxzPXQoIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKS50ZW1wbGF0ZWRBcnJheSxsPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2Zvcm1hdF9hdHRyaWJ1dGVzIikuZGVzY3JpcHRpb25XaXRoRGF0ZXMsYz10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuT05FREFZLHU9dCgiLi9jb25zdGFudHMiKSxmPXUuSE9VUl9QQVRURVJOLGg9dS5XRUVLREFZX1BBVFRFUk4scD17dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiYXV0byIsImxpbmVhciIsImFycmF5Il0sZWRpdFR5cGU6InRpY2tzIixpbXBsaWVkRWRpdHM6e3RpY2swOnZvaWQgMCxkdGljazp2b2lkIDB9fTtmdW5jdGlvbiBkKHQpe3JldHVybnt2YWxUeXBlOiJpbnRlZ2VyIixtaW46MCxkZmx0OnQ/NTowLGVkaXRUeXBlOiJ0aWNrcyJ9fXZhciBtPXt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJ0aWNrcyIsaW1wbGllZEVkaXRzOnt0aWNrbW9kZToibGluZWFyIn19LGc9e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6InRpY2tzIixpbXBsaWVkRWRpdHM6e3RpY2ttb2RlOiJsaW5lYXIifX0sdj17dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6InRpY2tzIn0seT17dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsib3V0c2lkZSIsImluc2lkZSIsIiJdLGVkaXRUeXBlOiJ0aWNrcyJ9O2Z1bmN0aW9uIHgodCl7dmFyIGU9e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZWRpdFR5cGU6InRpY2tzIn07cmV0dXJuIHR8fChlLmRmbHQ9NSksZX1mdW5jdGlvbiBiKHQpe3ZhciBlPXt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGVkaXRUeXBlOiJ0aWNrcyJ9O3JldHVybiB0fHwoZS5kZmx0PTEpLGV9dmFyIF89e3ZhbFR5cGU6ImNvbG9yIixkZmx0OmkuZGVmYXVsdExpbmUsZWRpdFR5cGU6InRpY2tzIn0sdz17dmFsVHlwZToiY29sb3IiLGRmbHQ6aS5saWdodExpbmUsZWRpdFR5cGU6InRpY2tzIn07ZnVuY3Rpb24gVCh0KXt2YXIgZT17dmFsVHlwZToibnVtYmVyIixtaW46MCxlZGl0VHlwZToidGlja3MifTtyZXR1cm4gdHx8KGUuZGZsdD0xKSxlfXZhciBrPW8oe30sYSx7ZWRpdFR5cGU6InRpY2tzIn0pLEE9e3ZhbFR5cGU6ImJvb2xlYW4iLGVkaXRUeXBlOiJ0aWNrcyJ9O2UuZXhwb3J0cz17dmlzaWJsZTp7dmFsVHlwZToiYm9vbGVhbiIsZWRpdFR5cGU6InBsb3QifSxjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6aS5kZWZhdWx0TGluZSxlZGl0VHlwZToidGlja3MifSx0aXRsZTp7dGV4dDp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToidGlja3MifSxmb250Om4oe2VkaXRUeXBlOiJ0aWNrcyJ9KSxzdGFuZG9mZjp7dmFsVHlwZToibnVtYmVyIixtaW46MCxlZGl0VHlwZToidGlja3MifSxlZGl0VHlwZToidGlja3MifSx0eXBlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyItIiwibGluZWFyIiwibG9nIiwiZGF0ZSIsImNhdGVnb3J5IiwibXVsdGljYXRlZ29yeSJdLGRmbHQ6Ii0iLGVkaXRUeXBlOiJjYWxjIixfbm9UZW1wbGF0aW5nOiEwfSxhdXRvdHlwZW51bWJlcnM6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImNvbnZlcnQgdHlwZXMiLCJzdHJpY3QiXSxkZmx0OiJjb252ZXJ0IHR5cGVzIixlZGl0VHlwZToiY2FsYyJ9LGF1dG9yYW5nZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlshMCwhMSwicmV2ZXJzZWQiXSxkZmx0OiEwLGVkaXRUeXBlOiJheHJhbmdlIixpbXBsaWVkRWRpdHM6eyJyYW5nZVswXSI6dm9pZCAwLCJyYW5nZVsxXSI6dm9pZCAwfX0scmFuZ2Vtb2RlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJub3JtYWwiLCJ0b3plcm8iLCJub25uZWdhdGl2ZSJdLGRmbHQ6Im5vcm1hbCIsZWRpdFR5cGU6InBsb3QifSxyYW5nZTp7dmFsVHlwZToiaW5mb19hcnJheSIsaXRlbXM6W3t2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJheHJhbmdlIixpbXBsaWVkRWRpdHM6eyJeYXV0b3JhbmdlIjohMX0sYW5pbTohMH0se3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6ImF4cmFuZ2UiLGltcGxpZWRFZGl0czp7Il5hdXRvcmFuZ2UiOiExfSxhbmltOiEwfV0sZWRpdFR5cGU6ImF4cmFuZ2UiLGltcGxpZWRFZGl0czp7YXV0b3JhbmdlOiExfSxhbmltOiEwfSxmaXhlZHJhbmdlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExLGVkaXRUeXBlOiJjYWxjIn0sc2NhbGVhbmNob3I6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbdS5pZFJlZ2V4LngudG9TdHJpbmcoKSx1LmlkUmVnZXgueS50b1N0cmluZygpXSxlZGl0VHlwZToicGxvdCJ9LHNjYWxlcmF0aW86e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxLGVkaXRUeXBlOiJwbG90In0sY29uc3RyYWluOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJyYW5nZSIsImRvbWFpbiJdLGVkaXRUeXBlOiJwbG90In0sY29uc3RyYWludG93YXJkOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJsZWZ0IiwiY2VudGVyIiwicmlnaHQiLCJ0b3AiLCJtaWRkbGUiLCJib3R0b20iXSxlZGl0VHlwZToicGxvdCJ9LG1hdGNoZXM6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbdS5pZFJlZ2V4LngudG9TdHJpbmcoKSx1LmlkUmVnZXgueS50b1N0cmluZygpXSxlZGl0VHlwZToiY2FsYyJ9LHJhbmdlYnJlYWtzOnMoInJhbmdlYnJlYWsiLHtlbmFibGVkOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJjYWxjIn0sYm91bmRzOnt2YWxUeXBlOiJpbmZvX2FycmF5IixpdGVtczpbe3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6ImNhbGMifSx7dmFsVHlwZToiYW55IixlZGl0VHlwZToiY2FsYyJ9XSxlZGl0VHlwZToiY2FsYyJ9LHBhdHRlcm46e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbaCxmLCIiXSxlZGl0VHlwZToiY2FsYyJ9LHZhbHVlczp7dmFsVHlwZToiaW5mb19hcnJheSIsZnJlZUxlbmd0aDohMCxlZGl0VHlwZToiY2FsYyIsaXRlbXM6e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6ImNhbGMifX0sZHZhbHVlOnt2YWxUeXBlOiJudW1iZXIiLGVkaXRUeXBlOiJjYWxjIixtaW46MCxkZmx0OmN9LGVkaXRUeXBlOiJjYWxjIn0pLHRpY2ttb2RlOnAsbnRpY2tzOmQoKSx0aWNrMDptLGR0aWNrOmcsdGlja2xhYmVsc3RlcDp7dmFsVHlwZToiaW50ZWdlciIsbWluOjEsZGZsdDoxLGVkaXRUeXBlOiJ0aWNrcyJ9LHRpY2t2YWxzOnYsdGlja3RleHQ6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJ0aWNrcyJ9LHRpY2tzOnksdGlja3Nvbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsibGFiZWxzIiwiYm91bmRhcmllcyJdLGRmbHQ6ImxhYmVscyIsZWRpdFR5cGU6InRpY2tzIn0sdGlja2xhYmVsbW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiaW5zdGFudCIsInBlcmlvZCJdLGRmbHQ6Imluc3RhbnQiLGVkaXRUeXBlOiJ0aWNrcyJ9LHRpY2tsYWJlbHBvc2l0aW9uOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJvdXRzaWRlIiwiaW5zaWRlIiwib3V0c2lkZSB0b3AiLCJpbnNpZGUgdG9wIiwib3V0c2lkZSBsZWZ0IiwiaW5zaWRlIGxlZnQiLCJvdXRzaWRlIHJpZ2h0IiwiaW5zaWRlIHJpZ2h0Iiwib3V0c2lkZSBib3R0b20iLCJpbnNpZGUgYm90dG9tIl0sZGZsdDoib3V0c2lkZSIsZWRpdFR5cGU6ImNhbGMifSx0aWNrbGFiZWxvdmVyZmxvdzp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiYWxsb3ciLCJoaWRlIHBhc3QgZGl2IiwiaGlkZSBwYXN0IGRvbWFpbiJdLGVkaXRUeXBlOiJjYWxjIn0sbWlycm9yOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyEwLCJ0aWNrcyIsITEsImFsbCIsImFsbHRpY2tzIl0sZGZsdDohMSxlZGl0VHlwZToidGlja3MrbGF5b3V0c3R5bGUifSx0aWNrbGVuOngoKSx0aWNrd2lkdGg6YigpLHRpY2tjb2xvcjpfLHNob3d0aWNrbGFiZWxzOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJ0aWNrcyJ9LGF1dG9tYXJnaW46e3ZhbFR5cGU6ImZsYWdsaXN0IixmbGFnczpbImhlaWdodCIsIndpZHRoIiwibGVmdCIsInJpZ2h0IiwidG9wIiwiYm90dG9tIl0sZXh0cmFzOlshMCwhMV0sZGZsdDohMSxlZGl0VHlwZToidGlja3MifSxzaG93c3Bpa2VzOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExLGVkaXRUeXBlOiJtb2RlYmFyIn0sc3Bpa2Vjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6bnVsbCxlZGl0VHlwZToibm9uZSJ9LHNwaWtldGhpY2tuZXNzOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MyxlZGl0VHlwZToibm9uZSJ9LHNwaWtlZGFzaDpvKHt9LGEse2RmbHQ6ImRhc2giLGVkaXRUeXBlOiJub25lIn0pLHNwaWtlbW9kZTp7dmFsVHlwZToiZmxhZ2xpc3QiLGZsYWdzOlsidG9heGlzIiwiYWNyb3NzIiwibWFya2VyIl0sZGZsdDoidG9heGlzIixlZGl0VHlwZToibm9uZSJ9LHNwaWtlc25hcDp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiZGF0YSIsImN1cnNvciIsImhvdmVyZWQgZGF0YSJdLGRmbHQ6ImhvdmVyZWQgZGF0YSIsZWRpdFR5cGU6Im5vbmUifSx0aWNrZm9udDpuKHtlZGl0VHlwZToidGlja3MifSksdGlja2FuZ2xlOnt2YWxUeXBlOiJhbmdsZSIsZGZsdDoiYXV0byIsZWRpdFR5cGU6InRpY2tzIn0sdGlja3ByZWZpeDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGVkaXRUeXBlOiJ0aWNrcyJ9LHNob3d0aWNrcHJlZml4Ont2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJhbGwiLCJmaXJzdCIsImxhc3QiLCJub25lIl0sZGZsdDoiYWxsIixlZGl0VHlwZToidGlja3MifSx0aWNrc3VmZml4Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6InRpY2tzIn0sc2hvd3RpY2tzdWZmaXg6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImFsbCIsImZpcnN0IiwibGFzdCIsIm5vbmUiXSxkZmx0OiJhbGwiLGVkaXRUeXBlOiJ0aWNrcyJ9LHNob3dleHBvbmVudDp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiYWxsIiwiZmlyc3QiLCJsYXN0Iiwibm9uZSJdLGRmbHQ6ImFsbCIsZWRpdFR5cGU6InRpY2tzIn0sZXhwb25lbnRmb3JtYXQ6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbIm5vbmUiLCJlIiwiRSIsInBvd2VyIiwiU0kiLCJCIl0sZGZsdDoiQiIsZWRpdFR5cGU6InRpY2tzIn0sbWluZXhwb25lbnQ6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDozLG1pbjowLGVkaXRUeXBlOiJ0aWNrcyJ9LHNlcGFyYXRldGhvdXNhbmRzOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExLGVkaXRUeXBlOiJ0aWNrcyJ9LHRpY2tmb3JtYXQ6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIixlZGl0VHlwZToidGlja3MiLGRlc2NyaXB0aW9uOmwoInRpY2sgbGFiZWwiKX0sdGlja2Zvcm1hdHN0b3BzOnMoInRpY2tmb3JtYXRzdG9wIix7ZW5hYmxlZDp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToidGlja3MifSxkdGlja3JhbmdlOnt2YWxUeXBlOiJpbmZvX2FycmF5IixpdGVtczpbe3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6InRpY2tzIn0se3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6InRpY2tzIn1dLGVkaXRUeXBlOiJ0aWNrcyJ9LHZhbHVlOnt2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6InRpY2tzIn0sZWRpdFR5cGU6InRpY2tzIn0pLGhvdmVyZm9ybWF0Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6Im5vbmUiLGRlc2NyaXB0aW9uOmwoImhvdmVyIHRleHQiKX0sc2hvd2xpbmU6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITEsZWRpdFR5cGU6InRpY2tzK2xheW91dHN0eWxlIn0sbGluZWNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDppLmRlZmF1bHRMaW5lLGVkaXRUeXBlOiJsYXlvdXRzdHlsZSJ9LGxpbmV3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjEsZWRpdFR5cGU6InRpY2tzK2xheW91dHN0eWxlIn0sc2hvd2dyaWQ6QSxncmlkY29sb3I6dyxncmlkd2lkdGg6VCgpLGdyaWRkYXNoOmssemVyb2xpbmU6e3ZhbFR5cGU6ImJvb2xlYW4iLGVkaXRUeXBlOiJ0aWNrcyJ9LHplcm9saW5lY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OmkuZGVmYXVsdExpbmUsZWRpdFR5cGU6InRpY2tzIn0semVyb2xpbmV3aWR0aDp7dmFsVHlwZToibnVtYmVyIixkZmx0OjEsZWRpdFR5cGU6InRpY2tzIn0sc2hvd2RpdmlkZXJzOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJ0aWNrcyJ9LGRpdmlkZXJjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6aS5kZWZhdWx0TGluZSxlZGl0VHlwZToidGlja3MifSxkaXZpZGVyd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDoxLGVkaXRUeXBlOiJ0aWNrcyJ9LGFuY2hvcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiZnJlZSIsdS5pZFJlZ2V4LngudG9TdHJpbmcoKSx1LmlkUmVnZXgueS50b1N0cmluZygpXSxlZGl0VHlwZToicGxvdCJ9LHNpZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInRvcCIsImJvdHRvbSIsImxlZnQiLCJyaWdodCJdLGVkaXRUeXBlOiJwbG90In0sb3ZlcmxheWluZzp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiZnJlZSIsdS5pZFJlZ2V4LngudG9TdHJpbmcoKSx1LmlkUmVnZXgueS50b1N0cmluZygpXSxlZGl0VHlwZToicGxvdCJ9LG1pbm9yOnt0aWNrbW9kZTpwLG50aWNrczpkKCJtaW5vciIpLHRpY2swOm0sZHRpY2s6Zyx0aWNrdmFsczp2LHRpY2tzOnksdGlja2xlbjp4KCJtaW5vciIpLHRpY2t3aWR0aDpiKCJtaW5vciIpLHRpY2tjb2xvcjpfLGdyaWRjb2xvcjp3LGdyaWR3aWR0aDpUKCJtaW5vciIpLGdyaWRkYXNoOmssc2hvd2dyaWQ6QSxlZGl0VHlwZToidGlja3MifSxsYXllcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiYWJvdmUgdHJhY2VzIiwiYmVsb3cgdHJhY2VzIl0sZGZsdDoiYWJvdmUgdHJhY2VzIixlZGl0VHlwZToicGxvdCJ9LGRvbWFpbjp7dmFsVHlwZToiaW5mb19hcnJheSIsaXRlbXM6W3t2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGVkaXRUeXBlOiJwbG90In0se3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZWRpdFR5cGU6InBsb3QifV0sZGZsdDpbMCwxXSxlZGl0VHlwZToicGxvdCJ9LHBvc2l0aW9uOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6MCxlZGl0VHlwZToicGxvdCJ9LGNhdGVnb3J5b3JkZXI6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInRyYWNlIiwiY2F0ZWdvcnkgYXNjZW5kaW5nIiwiY2F0ZWdvcnkgZGVzY2VuZGluZyIsImFycmF5IiwidG90YWwgYXNjZW5kaW5nIiwidG90YWwgZGVzY2VuZGluZyIsIm1pbiBhc2NlbmRpbmciLCJtaW4gZGVzY2VuZGluZyIsIm1heCBhc2NlbmRpbmciLCJtYXggZGVzY2VuZGluZyIsInN1bSBhc2NlbmRpbmciLCJzdW0gZGVzY2VuZGluZyIsIm1lYW4gYXNjZW5kaW5nIiwibWVhbiBkZXNjZW5kaW5nIiwibWVkaWFuIGFzY2VuZGluZyIsIm1lZGlhbiBkZXNjZW5kaW5nIl0sZGZsdDoidHJhY2UiLGVkaXRUeXBlOiJjYWxjIn0sY2F0ZWdvcnlhcnJheTp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSx1aXJldmlzaW9uOnt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJub25lIn0sZWRpdFR5cGU6ImNhbGMiLF9kZXByZWNhdGVkOnthdXRvdGljazp7dmFsVHlwZToiYm9vbGVhbiIsZWRpdFR5cGU6InRpY2tzIn0sdGl0bGU6e3ZhbFR5cGU6InN0cmluZyIsZWRpdFR5cGU6InRpY2tzIn0sdGl0bGVmb250Om4oe2VkaXRUeXBlOiJ0aWNrcyJ9KX19fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IvYXR0cmlidXRlcyI6MzY2LCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmcvYXR0cmlidXRlcyI6Mzg4LCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo0OTEsIi4uLy4uL2xpYi9leHRlbmQiOjUwNSwiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6NTU1LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19mb3JtYXRfYXR0cmlidXRlcyI6NTY5LCIuLi9mb250X2F0dHJpYnV0ZXMiOjU5NCwiLi9jb25zdGFudHMiOjU3M31dLDU4MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvZngvaGVscGVycyIpLmlzVW5pZmllZEhvdmVyLG89dCgiLi4vLi4vY29tcG9uZW50cy9meC9ob3Zlcm1vZGVfZGVmYXVsdHMiKSxzPXQoIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKSxsPXQoIi4uL2xheW91dF9hdHRyaWJ1dGVzIiksYz10KCIuL2xheW91dF9hdHRyaWJ1dGVzIiksdT10KCIuL3R5cGVfZGVmYXVsdHMiKSxmPXQoIi4vYXhpc19kZWZhdWx0cyIpLGg9dCgiLi9jb25zdHJhaW50cyIpLHA9dCgiLi9wb3NpdGlvbl9kZWZhdWx0cyIpLGQ9dCgiLi9heGlzX2lkcyIpLG09ZC5pZDJuYW1lLGc9ZC5uYW1lMmlkLHY9dCgiLi9jb25zdGFudHMiKS5BWF9JRF9QQVRURVJOLHk9dCgiLi4vLi4vcmVnaXN0cnkiKSx4PXkudHJhY2VJcyxiPXkuZ2V0Q29tcG9uZW50TWV0aG9kO2Z1bmN0aW9uIF8odCxlLHIpe0FycmF5LmlzQXJyYXkodFtlXSk/dFtlXS5wdXNoKHIpOnRbZV09W3JdfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIHksdyxUPWUuYXV0b3R5cGVudW1iZXJzLGs9e30sQT17fSxNPXt9LFM9e30sRT17fSxMPXt9LEM9e30sUD17fSxJPXt9LE89e307Zm9yKHk9MDt5PHIubGVuZ3RoO3krKyl7dmFyIHo9clt5XTtpZih4KHosImNhcnRlc2lhbiIpfHx4KHosImdsMmQiKSl7dmFyIEQsUjtpZih6LnhheGlzKUQ9bSh6LnhheGlzKSxfKGssRCx6KTtlbHNlIGlmKHoueGF4ZXMpZm9yKHc9MDt3PHoueGF4ZXMubGVuZ3RoO3crKylfKGssbSh6LnhheGVzW3ddKSx6KTtpZih6LnlheGlzKVI9bSh6LnlheGlzKSxfKGssUix6KTtlbHNlIGlmKHoueWF4ZXMpZm9yKHc9MDt3PHoueWF4ZXMubGVuZ3RoO3crKylfKGssbSh6LnlheGVzW3ddKSx6KTtpZigiZnVubmVsIj09PXoudHlwZT8iaCI9PT16Lm9yaWVudGF0aW9uPyhEJiYoQVtEXT0hMCksUiYmKENbUl09ITApKTpSJiYoTVtSXT0hMCk6ImltYWdlIj09PXoudHlwZT8oUiYmKFBbUl09ITApLEQmJihQW0RdPSEwKSk6KFImJihFW1JdPSEwLExbUl09ITApLHgoeiwiY2FycGV0IikmJigiY2FycGV0IiE9PXoudHlwZXx8ei5fY2hlYXRlcil8fEQmJihTW0RdPSEwKSksImNhcnBldCI9PT16LnR5cGUmJnouX2NoZWF0ZXImJkQmJihBW0RdPSEwKSx4KHosIjJkTWFwIikmJihJW0RdPSEwLElbUl09ITApLHgoeiwib3JpZW50ZWQiKSlPWyJoIj09PXoub3JpZW50YXRpb24/UjpEXT0hMH19dmFyIEY9ZS5fc3VicGxvdHMsQj1GLnhheGlzLE49Ri55YXhpcyxqPW4uc2ltcGxlTWFwKEIsbSksVT1uLnNpbXBsZU1hcChOLG0pLFY9ai5jb25jYXQoVSksSD1pLmJhY2tncm91bmQ7Qi5sZW5ndGgmJk4ubGVuZ3RoJiYoSD1uLmNvZXJjZSh0LGUsbCwicGxvdF9iZ2NvbG9yIikpO3ZhciBxLEcsWSxXLFgsWj1pLmNvbWJpbmUoSCxlLnBhcGVyX2JnY29sb3IpO2Z1bmN0aW9uIEooKXt2YXIgdD1rW3FdfHxbXTtYLl90cmFjZUluZGljZXM9dC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0Ll9leHBhbmRlZEluZGV4fSkpLFguX2FubkluZGljZXM9W10sWC5fc2hhcGVJbmRpY2VzPVtdLFguX3NlbGVjdGlvbkluZGljZXM9W10sWC5faW1nSW5kaWNlcz1bXSxYLl9zdWJwbG90c1dpdGg9W10sWC5fY291bnRlckF4ZXM9W10sWC5fbmFtZT1YLl9hdHRyPXEsWC5faWQ9R31mdW5jdGlvbiBLKHQsZSl7cmV0dXJuIG4uY29lcmNlKFcsWCxjLHQsZSl9ZnVuY3Rpb24gUSh0LGUpe3JldHVybiBuLmNvZXJjZTIoVyxYLGMsdCxlKX1mdW5jdGlvbiAkKHQpe3JldHVybiJ4Ij09PXQ/TjpCfWZ1bmN0aW9uIHR0KGUscil7Zm9yKHZhciBuPSJ4Ij09PWU/ajpVLGk9W10sYT0wO2E8bi5sZW5ndGg7YSsrKXt2YXIgbz1uW2FdO289PT1yfHwodFtvXXx8e30pLm92ZXJsYXlpbmd8fGkucHVzaChnKG8pKX1yZXR1cm4gaX12YXIgZXQ9e3g6JCgieCIpLHk6JCgieSIpfSxydD1ldC54LmNvbmNhdChldC55KSxudD17fSxpdD1bXTtmdW5jdGlvbiBhdCgpe3ZhciB0PVcubWF0Y2hlczt2LnRlc3QodCkmJi0xPT09cnQuaW5kZXhPZih0KSYmKG50W3RdPVcudHlwZSxpdD1PYmplY3Qua2V5cyhudCkpfXZhciBvdD1vKHQsZSksc3Q9YShvdCk7Zm9yKHk9MDt5PFYubGVuZ3RoO3krKyl7cT1WW3ldLEc9ZyhxKSxZPXEuY2hhckF0KDApLG4uaXNQbGFpbk9iamVjdCh0W3FdKXx8KHRbcV09e30pLFc9dFtxXSxYPXMubmV3Q29udGFpbmVyKGUscSxZKyJheGlzIiksSigpO3ZhciBsdD0ieCI9PT1ZJiYhU1txXSYmQVtxXXx8InkiPT09WSYmIUVbcV0mJk1bcV0sY3Q9InkiPT09WSYmKCFMW3FdJiZDW3FdfHxQW3FdKSx1dD17aGFzTWlub3I6ITAsbGV0dGVyOlksZm9udDplLmZvbnQsb3V0ZXJUaWNrczpJW3FdLHNob3dHcmlkOiFPW3FdLGRhdGE6a1txXXx8W10sYmdDb2xvcjpaLGNhbGVuZGFyOmUuY2FsZW5kYXIsYXV0b21hcmdpbjohMCx2aXNpYmxlRGZsdDpsdCxyZXZlcnNlRGZsdDpjdCxhdXRvdHlwZW51bWJlcnNEZmx0OlQsc3Bsb21TdGFzaDooKGUuX3NwbG9tQXhlc3x8e30pW1ldfHx7fSlbR119O0soInVpcmV2aXNpb24iLGUudWlyZXZpc2lvbiksdShXLFgsSyx1dCksZihXLFgsSyx1dCxlKTt2YXIgZnQ9c3QmJlk9PT1vdC5jaGFyQXQoMCksaHQ9USgic3Bpa2Vjb2xvciIsc3Q/WC5jb2xvcjp2b2lkIDApLHB0PVEoInNwaWtldGhpY2tuZXNzIixzdD8xLjU6dm9pZCAwKSxkdD1RKCJzcGlrZWRhc2giLHN0PyJkb3QiOnZvaWQgMCksbXQ9USgic3Bpa2Vtb2RlIixzdD8iYWNyb3NzIjp2b2lkIDApLGd0PVEoInNwaWtlc25hcCIpO0soInNob3dzcGlrZXMiLCEhKGZ0fHxodHx8cHR8fGR0fHxtdHx8Z3QpKXx8KGRlbGV0ZSBYLnNwaWtlY29sb3IsZGVsZXRlIFguc3Bpa2V0aGlja25lc3MsZGVsZXRlIFguc3Bpa2VkYXNoLGRlbGV0ZSBYLnNwaWtlbW9kZSxkZWxldGUgWC5zcGlrZXNuYXApLHAoVyxYLEsse2xldHRlcjpZLGNvdW50ZXJBeGVzOmV0W1ldLG92ZXJsYXlhYmxlQXhlczp0dChZLHEpLGdyaWQ6ZS5ncmlkfSksSygidGl0bGUuc3RhbmRvZmYiKSxhdCgpLFguX2lucHV0PVd9Zm9yKHk9MDt5PGl0Lmxlbmd0aDspe0c9aXRbeSsrXSxZPShxPW0oRykpLmNoYXJBdCgwKSxuLmlzUGxhaW5PYmplY3QodFtxXSl8fCh0W3FdPXt9KSxXPXRbcV0sWD1zLm5ld0NvbnRhaW5lcihlLHEsWSsiYXhpcyIpLEooKTt2YXIgdnQ9e2xldHRlcjpZLGZvbnQ6ZS5mb250LG91dGVyVGlja3M6SVtxXSxzaG93R3JpZDohT1txXSxkYXRhOltdLGJnQ29sb3I6WixjYWxlbmRhcjplLmNhbGVuZGFyLGF1dG9tYXJnaW46ITAsdmlzaWJsZURmbHQ6ITEscmV2ZXJzZURmbHQ6ITEsYXV0b3R5cGVudW1iZXJzRGZsdDpULHNwbG9tU3Rhc2g6KChlLl9zcGxvbUF4ZXN8fHt9KVtZXXx8e30pW0ddfTtLKCJ1aXJldmlzaW9uIixlLnVpcmV2aXNpb24pLFgudHlwZT1udFtHXXx8ImxpbmVhciIsZihXLFgsSyx2dCxlKSxwKFcsWCxLLHtsZXR0ZXI6WSxjb3VudGVyQXhlczpldFtZXSxvdmVybGF5YWJsZUF4ZXM6dHQoWSxxKSxncmlkOmUuZ3JpZH0pLEsoImZpeGVkcmFuZ2UiKSxhdCgpLFguX2lucHV0PVd9dmFyIHl0PWIoInJhbmdlc2xpZGVyIiwiaGFuZGxlRGVmYXVsdHMiKSx4dD1iKCJyYW5nZXNlbGVjdG9yIiwiaGFuZGxlRGVmYXVsdHMiKTtmb3IoeT0wO3k8ai5sZW5ndGg7eSsrKXE9alt5XSxXPXRbcV0sWD1lW3FdLHl0KHQsZSxxKSwiZGF0ZSI9PT1YLnR5cGUmJnh0KFcsWCxlLFUsWC5jYWxlbmRhciksSygiZml4ZWRyYW5nZSIpO2Zvcih5PTA7eTxVLmxlbmd0aDt5Kyspe3E9VVt5XSxXPXRbcV0sWD1lW3FdO3ZhciBidD1lW20oWC5hbmNob3IpXTtLKCJmaXhlZHJhbmdlIixiKCJyYW5nZXNsaWRlciIsImlzVmlzaWJsZSIpKGJ0KSl9aC5oYW5kbGVEZWZhdWx0cyh0LGUse2F4SWRzOnJ0LmNvbmNhdChpdCkuc29ydChkLmlkU29ydCksYXhIYXNJbWFnZTpQfSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjM2NywiLi4vLi4vY29tcG9uZW50cy9meC9oZWxwZXJzIjo0MDMsIi4uLy4uL2NvbXBvbmVudHMvZngvaG92ZXJtb2RlX2RlZmF1bHRzIjo0MDYsIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIjo1NTUsIi4uLy4uL3JlZ2lzdHJ5Ijo2NDcsIi4uL2xheW91dF9hdHRyaWJ1dGVzIjo2MTksIi4vYXhpc19kZWZhdWx0cyI6NTY4LCIuL2F4aXNfaWRzIjo1NzAsIi4vY29uc3RhbnRzIjo1NzMsIi4vY29uc3RyYWludHMiOjU3NCwiLi9sYXlvdXRfYXR0cmlidXRlcyI6NTc5LCIuL3Bvc2l0aW9uX2RlZmF1bHRzIjo1ODIsIi4vdHlwZV9kZWZhdWx0cyI6NTkxfV0sNTgxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInRpbnljb2xvcjIiKS5taXgsaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yL2F0dHJpYnV0ZXMiKSxhPXQoIi4uLy4uL2xpYiIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixvKXt2YXIgcz0obz1vfHx7fSkuZGZsdENvbG9yO2Z1bmN0aW9uIGwocixuKXtyZXR1cm4gYS5jb2VyY2UyKHQsZSxvLmF0dHJpYnV0ZXMscixuKX12YXIgYz1sKCJsaW5lY29sb3IiLHMpLHU9bCgibGluZXdpZHRoIik7cigic2hvd2xpbmUiLG8uc2hvd0xpbmV8fCEhY3x8ISF1KXx8KGRlbGV0ZSBlLmxpbmVjb2xvcixkZWxldGUgZS5saW5ld2lkdGgpO3ZhciBmPWwoImdyaWRjb2xvciIsbihzLG8uYmdDb2xvcixvLmJsZW5kfHxpLmxpZ2h0RnJhY3Rpb24pLnRvUmdiU3RyaW5nKCkpLGg9bCgiZ3JpZHdpZHRoIikscD1sKCJncmlkZGFzaCIpO2lmKHIoInNob3dncmlkIixvLnNob3dHcmlkfHwhIWZ8fCEhaHx8ISFwKXx8KGRlbGV0ZSBlLmdyaWRjb2xvcixkZWxldGUgZS5ncmlkd2lkdGgsZGVsZXRlIGUuZ3JpZGRhc2gpLG8uaGFzTWlub3Ipe3ZhciBkPWwoIm1pbm9yLmdyaWRjb2xvciIsbihlLmdyaWRjb2xvcixvLmJnQ29sb3IsNjcpLnRvUmdiU3RyaW5nKCkpLG09bCgibWlub3IuZ3JpZHdpZHRoIixlLmdyaWR3aWR0aHx8MSksZz1sKCJtaW5vci5ncmlkZGFzaCIsZS5ncmlkZGFzaHx8InNvbGlkIik7cigibWlub3Iuc2hvd2dyaWQiLCEhZHx8ISFtfHwhIWcpfHwoZGVsZXRlIGUubWlub3IuZ3JpZGNvbG9yLGRlbGV0ZSBlLm1pbm9yLmdyaWR3aWR0aCxkZWxldGUgZS5taW5vci5ncmlkZGFzaCl9aWYoIW8ubm9aZXJvTGluZSl7dmFyIHY9bCgiemVyb2xpbmVjb2xvciIscykseT1sKCJ6ZXJvbGluZXdpZHRoIik7cigiemVyb2xpbmUiLG8uc2hvd0dyaWR8fCEhdnx8ISF5KXx8KGRlbGV0ZSBlLnplcm9saW5lY29sb3IsZGVsZXRlIGUuemVyb2xpbmV3aWR0aCl9fX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yL2F0dHJpYnV0ZXMiOjM2NiwiLi4vLi4vbGliIjo1MTUsdGlueWNvbG9yMjozMTN9XSw1ODI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxpPXQoIi4uLy4uL2xpYiIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixhKXt2YXIgbyxzLGwsYyx1PWEuY291bnRlckF4ZXN8fFtdLGY9YS5vdmVybGF5YWJsZUF4ZXN8fFtdLGg9YS5sZXR0ZXIscD1hLmdyaWQ7cCYmKHM9cC5fZG9tYWluc1toXVtwLl9heGlzTWFwW2UuX2lkXV0sbz1wLl9hbmNob3JzW2UuX2lkXSxzJiYobD1wW2grInNpZGUiXS5zcGxpdCgiICIpWzBdLGM9cC5kb21haW5baF1bInJpZ2h0Ij09PWx8fCJ0b3AiPT09bD8xOjBdKSkscz1zfHxbMCwxXSxvPW98fChuKHQucG9zaXRpb24pPyJmcmVlIjp1WzBdfHwiZnJlZSIpLGw9bHx8KCJ4Ij09PWg/ImJvdHRvbSI6ImxlZnQiKSxjPWN8fDAsImZyZWUiPT09aS5jb2VyY2UodCxlLHthbmNob3I6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImZyZWUiXS5jb25jYXQodSksZGZsdDpvfX0sImFuY2hvciIpJiZyKCJwb3NpdGlvbiIsYyksaS5jb2VyY2UodCxlLHtzaWRlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6IngiPT09aD9bImJvdHRvbSIsInRvcCJdOlsibGVmdCIsInJpZ2h0Il0sZGZsdDpsfX0sInNpZGUiKTt2YXIgZD0hMTtpZihmLmxlbmd0aCYmKGQ9aS5jb2VyY2UodCxlLHtvdmVybGF5aW5nOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyExXS5jb25jYXQoZiksZGZsdDohMX19LCJvdmVybGF5aW5nIikpLCFkKXt2YXIgbT1yKCJkb21haW4iLHMpO21bMF0+bVsxXS0xLzQwOTYmJihlLmRvbWFpbj1zKSxpLm5vbmVPckFsbCh0LmRvbWFpbixlLmRvbWFpbixzKX1yZXR1cm4gcigibGF5ZXIiKSxlfX0seyIuLi8uLi9saWIiOjUxNSwiZmFzdC1pc251bWVyaWMiOjE5MH1dLDU4MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL3Nob3dfZGZsdCIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixpLGEpe2F8fChhPXt9KTt2YXIgbz1hLnRpY2tTdWZmaXhEZmx0LHM9bih0KTtyKCJ0aWNrcHJlZml4IikmJnIoInNob3d0aWNrcHJlZml4IixzKSxyKCJ0aWNrc3VmZml4IixvKSYmcigic2hvd3RpY2tzdWZmaXgiLHMpfX0seyIuL3Nob3dfZGZsdCI6NTg2fV0sNTg0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbnN0YW50cy9hbGlnbm1lbnQiKS5GUk9NX0JMO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dm9pZCAwPT09ciYmKHI9blt0LmNvbnN0cmFpbnRvd2FyZHx8ImNlbnRlciJdKTt2YXIgaT1bdC5yMmwodC5yYW5nZVswXSksdC5yMmwodC5yYW5nZVsxXSldLGE9aVswXSsoaVsxXS1pWzBdKSpyO3QucmFuZ2U9dC5faW5wdXQucmFuZ2U9W3QubDJyKGErKGlbMF0tYSkqZSksdC5sMnIoYSsoaVsxXS1hKSplKV0sdC5zZXRTY2FsZSgpfX0seyIuLi8uLi9jb25zdGFudHMvYWxpZ25tZW50Ijo0ODN9XSw1ODU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiZDMtdGltZS1mb3JtYXQiKS51dGNGb3JtYXQsYT10KCIuLi8uLi9saWIiKSxvPWEubnVtYmVyRm9ybWF0LHM9dCgiZmFzdC1pc251bWVyaWMiKSxsPWEuY2xlYW5OdW1iZXIsYz1hLm1zMkRhdGVUaW1lLHU9YS5kYXRlVGltZTJtcyxmPWEuZW5zdXJlTnVtYmVyLGg9YS5pc0FycmF5T3JUeXBlZEFycmF5LHA9dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLGQ9cC5GUF9TQUZFLG09cC5CQUROVU0sZz1wLkxPR19DTElQLHY9cC5PTkVXRUVLLHk9cC5PTkVEQVkseD1wLk9ORUhPVVIsYj1wLk9ORU1JTixfPXAuT05FU0VDLHc9dCgiLi9heGlzX2lkcyIpLFQ9dCgiLi9jb25zdGFudHMiKSxrPVQuSE9VUl9QQVRURVJOLEE9VC5XRUVLREFZX1BBVFRFUk47ZnVuY3Rpb24gTSh0KXtyZXR1cm4gTWF0aC5wb3coMTAsdCl9ZnVuY3Rpb24gUyh0KXtyZXR1cm4gbnVsbCE9dH1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtlPWV8fHt9O3ZhciByPXQuX2lkfHwieCIscD1yLmNoYXJBdCgwKTtmdW5jdGlvbiBFKGUscil7aWYoZT4wKXJldHVybiBNYXRoLmxvZyhlKS9NYXRoLkxOMTA7aWYoZTw9MCYmciYmdC5yYW5nZSYmMj09PXQucmFuZ2UubGVuZ3RoKXt2YXIgbj10LnJhbmdlWzBdLGk9dC5yYW5nZVsxXTtyZXR1cm4uNSoobitpLTIqZypNYXRoLmFicyhuLWkpKX1yZXR1cm4gbX1mdW5jdGlvbiBMKGUscixuLGkpe2lmKChpfHx7fSkubXNVVEMmJnMoZSkpcmV0dXJuK2U7dmFyIG89dShlLG58fHQuY2FsZW5kYXIpO2lmKG89PT1tKXtpZighcyhlKSlyZXR1cm4gbTtlPStlO3ZhciBsPU1hdGguZmxvb3IoMTAqYS5tb2QoZSsuMDUsMSkpLGM9TWF0aC5yb3VuZChlLWwvMTApO289dShuZXcgRGF0ZShjKSkrbC8xMH1yZXR1cm4gb31mdW5jdGlvbiBDKGUscixuKXtyZXR1cm4gYyhlLHIsbnx8dC5jYWxlbmRhcil9ZnVuY3Rpb24gUChlKXtyZXR1cm4gdC5fY2F0ZWdvcmllc1tNYXRoLnJvdW5kKGUpXX1mdW5jdGlvbiBJKGUpe2lmKFMoZSkpe2lmKHZvaWQgMD09PXQuX2NhdGVnb3JpZXNNYXAmJih0Ll9jYXRlZ29yaWVzTWFwPXt9KSx2b2lkIDAhPT10Ll9jYXRlZ29yaWVzTWFwW2VdKXJldHVybiB0Ll9jYXRlZ29yaWVzTWFwW2VdO3QuX2NhdGVnb3JpZXMucHVzaCgibnVtYmVyIj09dHlwZW9mIGU/U3RyaW5nKGUpOmUpO3ZhciByPXQuX2NhdGVnb3JpZXMubGVuZ3RoLTE7cmV0dXJuIHQuX2NhdGVnb3JpZXNNYXBbZV09cixyfXJldHVybiBtfWZ1bmN0aW9uIE8oZSl7aWYodC5fY2F0ZWdvcmllc01hcClyZXR1cm4gdC5fY2F0ZWdvcmllc01hcFtlXX1mdW5jdGlvbiB6KHQpe3ZhciBlPU8odCk7cmV0dXJuIHZvaWQgMCE9PWU/ZTpzKHQpPyt0OnZvaWQgMH1mdW5jdGlvbiBEKHQpe3JldHVybiBzKHQpPyt0Ok8odCl9ZnVuY3Rpb24gUih0LGUscil7cmV0dXJuIG4ucm91bmQocitlKnQsMil9ZnVuY3Rpb24gRih0LGUscil7cmV0dXJuKHQtcikvZX12YXIgQj1mdW5jdGlvbihlKXtyZXR1cm4gcyhlKT9SKGUsdC5fbSx0Ll9iKTptfSxOPWZ1bmN0aW9uKGUpe3JldHVybiBGKGUsdC5fbSx0Ll9iKX07aWYodC5yYW5nZWJyZWFrcyl7dmFyIGo9InkiPT09cDtCPWZ1bmN0aW9uKGUpe2lmKCFzKGUpKXJldHVybiBtO3ZhciByPXQuX3JhbmdlYnJlYWtzLmxlbmd0aDtpZighcilyZXR1cm4gUihlLHQuX20sdC5fYik7dmFyIG49ajt0LnJhbmdlWzBdPnQucmFuZ2VbMV0mJihuPSFuKTtmb3IodmFyIGk9bj8tMToxLGE9aSplLG89MCxsPTA7bDxyO2wrKyl7dmFyIGM9aSp0Ll9yYW5nZWJyZWFrc1tsXS5taW4sdT1pKnQuX3JhbmdlYnJlYWtzW2xdLm1heDtpZihhPGMpYnJlYWs7aWYoIShhPnUpKXtvPWE8KGMrdSkvMj9sOmwrMTticmVha31vPWwrMX12YXIgZj10Ll9CW29dfHwwO3JldHVybiBpc0Zpbml0ZShmKT9SKGUsdC5fbTIsZik6MH0sTj1mdW5jdGlvbihlKXt2YXIgcj10Ll9yYW5nZWJyZWFrcy5sZW5ndGg7aWYoIXIpcmV0dXJuIEYoZSx0Ll9tLHQuX2IpO2Zvcih2YXIgbj0wLGk9MDtpPHImJiEoZTx0Ll9yYW5nZWJyZWFrc1tpXS5wbWluKTtpKyspZT50Ll9yYW5nZWJyZWFrc1tpXS5wbWF4JiYobj1pKzEpO3JldHVybiBGKGUsdC5fbTIsdC5fQltuXSl9fXQuYzJsPSJsb2ciPT09dC50eXBlP0U6Zix0LmwyYz0ibG9nIj09PXQudHlwZT9NOmYsdC5sMnA9Qix0LnAybD1OLHQuYzJwPSJsb2ciPT09dC50eXBlP2Z1bmN0aW9uKHQsZSl7cmV0dXJuIEIoRSh0LGUpKX06Qix0LnAyYz0ibG9nIj09PXQudHlwZT9mdW5jdGlvbih0KXtyZXR1cm4gTShOKHQpKX06TiwtMSE9PVsibGluZWFyIiwiLSJdLmluZGV4T2YodC50eXBlKT8odC5kMnI9dC5yMmQ9dC5kMmM9dC5yMmM9dC5kMmw9dC5yMmw9bCx0LmMyZD10LmMycj10LmwyZD10Lmwycj1mLHQuZDJwPXQucjJwPWZ1bmN0aW9uKGUpe3JldHVybiB0LmwycChsKGUpKX0sdC5wMmQ9dC5wMnI9Tix0LmNsZWFuUG9zPWYpOiJsb2ciPT09dC50eXBlPyh0LmQycj10LmQybD1mdW5jdGlvbih0LGUpe3JldHVybiBFKGwodCksZSl9LHQucjJkPXQucjJjPWZ1bmN0aW9uKHQpe3JldHVybiBNKGwodCkpfSx0LmQyYz10LnIybD1sLHQuYzJkPXQubDJyPWYsdC5jMnI9RSx0LmwyZD1NLHQuZDJwPWZ1bmN0aW9uKGUscil7cmV0dXJuIHQubDJwKHQuZDJyKGUscikpfSx0LnAyZD1mdW5jdGlvbih0KXtyZXR1cm4gTShOKHQpKX0sdC5yMnA9ZnVuY3Rpb24oZSl7cmV0dXJuIHQubDJwKGwoZSkpfSx0LnAycj1OLHQuY2xlYW5Qb3M9Zik6ImRhdGUiPT09dC50eXBlPyh0LmQycj10LnIyZD1hLmlkZW50aXR5LHQuZDJjPXQucjJjPXQuZDJsPXQucjJsPUwsdC5jMmQ9dC5jMnI9dC5sMmQ9dC5sMnI9Qyx0LmQycD10LnIycD1mdW5jdGlvbihlLHIsbil7cmV0dXJuIHQubDJwKEwoZSwwLG4pKX0sdC5wMmQ9dC5wMnI9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBDKE4odCksZSxyKX0sdC5jbGVhblBvcz1mdW5jdGlvbihlKXtyZXR1cm4gYS5jbGVhbkRhdGUoZSxtLHQuY2FsZW5kYXIpfSk6ImNhdGVnb3J5Ij09PXQudHlwZT8odC5kMmM9dC5kMmw9SSx0LnIyZD10LmMyZD10LmwyZD1QLHQuZDJyPXQuZDJsX25vYWRkPXosdC5yMmM9ZnVuY3Rpb24oZSl7dmFyIHI9RChlKTtyZXR1cm4gdm9pZCAwIT09cj9yOnQuZnJhY3Rpb24yciguNSl9LHQubDJyPXQuYzJyPWYsdC5yMmw9RCx0LmQycD1mdW5jdGlvbihlKXtyZXR1cm4gdC5sMnAodC5yMmMoZSkpfSx0LnAyZD1mdW5jdGlvbih0KXtyZXR1cm4gUChOKHQpKX0sdC5yMnA9dC5kMnAsdC5wMnI9Tix0LmNsZWFuUG9zPWZ1bmN0aW9uKHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdCYmIiIhPT10P3Q6Zih0KX0pOiJtdWx0aWNhdGVnb3J5Ij09PXQudHlwZSYmKHQucjJkPXQuYzJkPXQubDJkPVAsdC5kMnI9dC5kMmxfbm9hZGQ9eix0LnIyYz1mdW5jdGlvbihlKXt2YXIgcj16KGUpO3JldHVybiB2b2lkIDAhPT1yP3I6dC5mcmFjdGlvbjJyKC41KX0sdC5yMmNfanVzdF9pbmRpY2VzPU8sdC5sMnI9dC5jMnI9Zix0LnIybD16LHQuZDJwPWZ1bmN0aW9uKGUpe3JldHVybiB0LmwycCh0LnIyYyhlKSl9LHQucDJkPWZ1bmN0aW9uKHQpe3JldHVybiBQKE4odCkpfSx0LnIycD10LmQycCx0LnAycj1OLHQuY2xlYW5Qb3M9ZnVuY3Rpb24odCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCl8fCJzdHJpbmciPT10eXBlb2YgdCYmIiIhPT10P3Q6Zih0KX0sdC5zZXR1cE11bHRpQ2F0ZWdvcnk9ZnVuY3Rpb24obil7dmFyIGksbyxzPXQuX3RyYWNlSW5kaWNlcyxsPXQuX21hdGNoR3JvdXA7aWYobCYmMD09PXQuX2NhdGVnb3JpZXMubGVuZ3RoKWZvcih2YXIgYyBpbiBsKWlmKGMhPT1yKXt2YXIgdT1lW3cuaWQybmFtZShjKV07cz1zLmNvbmNhdCh1Ll90cmFjZUluZGljZXMpfXZhciBmPVtbMCx7fV0sWzAse31dXSxkPVtdO2ZvcihpPTA7aTxzLmxlbmd0aDtpKyspe3ZhciBtPW5bc1tpXV07aWYocCBpbiBtKXt2YXIgZz1tW3BdLHY9bS5fbGVuZ3RofHxhLm1pblJvd0xlbmd0aChnKTtpZihoKGdbMF0pJiZoKGdbMV0pKWZvcihvPTA7bzx2O28rKyl7dmFyIHk9Z1swXVtvXSx4PWdbMV1bb107Uyh5KSYmUyh4KSYmKGQucHVzaChbeSx4XSkseSBpbiBmWzBdWzFdfHwoZlswXVsxXVt5XT1mWzBdWzBdKyspLHggaW4gZlsxXVsxXXx8KGZbMV1bMV1beF09ZlsxXVswXSsrKSl9fX1mb3IoZC5zb3J0KChmdW5jdGlvbih0LGUpe3ZhciByPWZbMF1bMV0sbj1yW3RbMF1dLXJbZVswXV07aWYobilyZXR1cm4gbjt2YXIgaT1mWzFdWzFdO3JldHVybiBpW3RbMV1dLWlbZVsxXV19KSksaT0wO2k8ZC5sZW5ndGg7aSsrKUkoZFtpXSl9KSx0LmZyYWN0aW9uMnI9ZnVuY3Rpb24oZSl7dmFyIHI9dC5yMmwodC5yYW5nZVswXSksbj10LnIybCh0LnJhbmdlWzFdKTtyZXR1cm4gdC5sMnIocitlKihuLXIpKX0sdC5yMmZyYWN0aW9uPWZ1bmN0aW9uKGUpe3ZhciByPXQucjJsKHQucmFuZ2VbMF0pLG49dC5yMmwodC5yYW5nZVsxXSk7cmV0dXJuKHQucjJsKGUpLXIpLyhuLXIpfSx0LmNsZWFuUmFuZ2U9ZnVuY3Rpb24oZSxyKXtyfHwocj17fSksZXx8KGU9InJhbmdlIik7dmFyIG4saSxvPWEubmVzdGVkUHJvcGVydHkodCxlKS5nZXQoKTtpZihpPShpPSJkYXRlIj09PXQudHlwZT9hLmRmbHRSYW5nZSh0LmNhbGVuZGFyKToieSI9PT1wP1QuREZMVFJBTkdFWToicmVhbGF4aXMiPT09dC5fbmFtZT9bMCwxXTpyLmRmbHRSYW5nZXx8VC5ERkxUUkFOR0VYKS5zbGljZSgpLCJ0b3plcm8iIT09dC5yYW5nZW1vZGUmJiJub25uZWdhdGl2ZSIhPT10LnJhbmdlbW9kZXx8KGlbMF09MCksbyYmMj09PW8ubGVuZ3RoKWZvcigiZGF0ZSIhPT10LnR5cGV8fHQuYXV0b3JhbmdlfHwob1swXT1hLmNsZWFuRGF0ZShvWzBdLG0sdC5jYWxlbmRhciksb1sxXT1hLmNsZWFuRGF0ZShvWzFdLG0sdC5jYWxlbmRhcikpLG49MDtuPDI7bisrKWlmKCJkYXRlIj09PXQudHlwZSl7aWYoIWEuaXNEYXRlVGltZShvW25dLHQuY2FsZW5kYXIpKXt0W2VdPWk7YnJlYWt9aWYodC5yMmwob1swXSk9PT10LnIybChvWzFdKSl7dmFyIGw9YS5jb25zdHJhaW4odC5yMmwob1swXSksYS5NSU5fTVMrMWUzLGEuTUFYX01TLTFlMyk7b1swXT10LmwycihsLTFlMyksb1sxXT10LmwycihsKzFlMyk7YnJlYWt9fWVsc2V7aWYoIXMob1tuXSkpe2lmKCFzKG9bMS1uXSkpe3RbZV09aTticmVha31vW25dPW9bMS1uXSoobj8xMDouMSl9aWYob1tuXTwtZD9vW25dPS1kOm9bbl0+ZCYmKG9bbl09ZCksb1swXT09PW9bMV0pe3ZhciBjPU1hdGgubWF4KDEsTWF0aC5hYnMoMWUtNipvWzBdKSk7b1swXS09YyxvWzFdKz1jfX1lbHNlIGEubmVzdGVkUHJvcGVydHkodCxlKS5zZXQoaSl9LHQuc2V0U2NhbGU9ZnVuY3Rpb24ocil7dmFyIG49ZS5fc2l6ZTtpZih0Lm92ZXJsYXlpbmcpe3ZhciBpPXcuZ2V0RnJvbUlkKHtfZnVsbExheW91dDplfSx0Lm92ZXJsYXlpbmcpO3QuZG9tYWluPWkuZG9tYWlufXZhciBhPXImJnQuX3I/Il9yIjoicmFuZ2UiLG89dC5jYWxlbmRhcjt0LmNsZWFuUmFuZ2UoYSk7dmFyIHMsbCxjPXQucjJsKHRbYV1bMF0sbyksdT10LnIybCh0W2FdWzFdLG8pLGY9InkiPT09cDtpZigoZj8odC5fb2Zmc2V0PW4udCsoMS10LmRvbWFpblsxXSkqbi5oLHQuX2xlbmd0aD1uLmgqKHQuZG9tYWluWzFdLXQuZG9tYWluWzBdKSx0Ll9tPXQuX2xlbmd0aC8oYy11KSx0Ll9iPS10Ll9tKnUpOih0Ll9vZmZzZXQ9bi5sK3QuZG9tYWluWzBdKm4udyx0Ll9sZW5ndGg9bi53Kih0LmRvbWFpblsxXS10LmRvbWFpblswXSksdC5fbT10Ll9sZW5ndGgvKHUtYyksdC5fYj0tdC5fbSpjKSx0Ll9yYW5nZWJyZWFrcz1bXSx0Ll9sQnJlYWtzPTAsdC5fbTI9MCx0Ll9CPVtdLHQucmFuZ2VicmVha3MpJiYodC5fcmFuZ2VicmVha3M9dC5sb2NhdGVCcmVha3MoTWF0aC5taW4oYyx1KSxNYXRoLm1heChjLHUpKSx0Ll9yYW5nZWJyZWFrcy5sZW5ndGgpKXtmb3Iocz0wO3M8dC5fcmFuZ2VicmVha3MubGVuZ3RoO3MrKylsPXQuX3JhbmdlYnJlYWtzW3NdLHQuX2xCcmVha3MrPU1hdGguYWJzKGwubWF4LWwubWluKTt2YXIgaD1mO2M+dSYmKGg9IWgpLGgmJnQuX3JhbmdlYnJlYWtzLnJldmVyc2UoKTt2YXIgZD1oPy0xOjE7Zm9yKHQuX20yPWQqdC5fbGVuZ3RoLyhNYXRoLmFicyh1LWMpLXQuX2xCcmVha3MpLHQuX0IucHVzaCgtdC5fbTIqKGY/dTpjKSkscz0wO3M8dC5fcmFuZ2VicmVha3MubGVuZ3RoO3MrKylsPXQuX3JhbmdlYnJlYWtzW3NdLHQuX0IucHVzaCh0Ll9CW3QuX0IubGVuZ3RoLTFdLWQqdC5fbTIqKGwubWF4LWwubWluKSk7Zm9yKHM9MDtzPHQuX3JhbmdlYnJlYWtzLmxlbmd0aDtzKyspKGw9dC5fcmFuZ2VicmVha3Nbc10pLnBtaW49QihsLm1pbiksbC5wbWF4PUIobC5tYXgpfWlmKCFpc0Zpbml0ZSh0Ll9tKXx8IWlzRmluaXRlKHQuX2IpfHx0Ll9sZW5ndGg8MCl0aHJvdyBlLl9yZXBsb3R0aW5nPSExLG5ldyBFcnJvcigiU29tZXRoaW5nIHdlbnQgd3Jvbmcgd2l0aCBheGlzIHNjYWxpbmciKX0sdC5tYXNrQnJlYWtzPWZ1bmN0aW9uKGUpe3ZhciByLG4saSxvLHMsYz10LnJhbmdlYnJlYWtzfHxbXTtjLl9jYWNoZWRQYXR0ZXJuc3x8KGMuX2NhY2hlZFBhdHRlcm5zPWMubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gZS5lbmFibGVkJiZlLmJvdW5kcz9hLnNpbXBsZU1hcChlLmJvdW5kcyxlLnBhdHRlcm4/bDp0LmQyYyk6bnVsbH0pKSksYy5fY2FjaGVkVmFsdWVzfHwoYy5fY2FjaGVkVmFsdWVzPWMubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gZS5lbmFibGVkJiZlLnZhbHVlcz9hLnNpbXBsZU1hcChlLnZhbHVlcyx0LmQyYykuc29ydChhLnNvcnRlckFzYyk6bnVsbH0pKSk7Zm9yKHZhciB1PTA7dTxjLmxlbmd0aDt1Kyspe3ZhciBmPWNbdV07aWYoZi5lbmFibGVkKWlmKGYuYm91bmRzKXt2YXIgaD1mLnBhdHRlcm47c3dpdGNoKG49KHI9Yy5fY2FjaGVkUGF0dGVybnNbdV0pWzBdLGk9clsxXSxoKXtjYXNlIEE6bz0ocz1uZXcgRGF0ZShlKSkuZ2V0VVRDRGF5KCksbj5pJiYoaSs9NyxvPG4mJihvKz03KSk7YnJlYWs7Y2FzZSBrOm89KHM9bmV3IERhdGUoZSkpLmdldFVUQ0hvdXJzKCkrKHMuZ2V0VVRDTWludXRlcygpLzYwK3MuZ2V0VVRDU2Vjb25kcygpLzM2MDArcy5nZXRVVENNaWxsaXNlY29uZHMoKS8zNmU1KSxuPmkmJihpKz0yNCxvPG4mJihvKz0yNCkpO2JyZWFrO2Nhc2UiIjpvPWV9aWYobz49biYmbzxpKXJldHVybiBtfWVsc2UgZm9yKHZhciBwPWMuX2NhY2hlZFZhbHVlc1t1XSxkPTA7ZDxwLmxlbmd0aDtkKyspaWYoaT0obj1wW2RdKStmLmR2YWx1ZSxlPj1uJiZlPGkpcmV0dXJuIG19cmV0dXJuIGV9LHQubG9jYXRlQnJlYWtzPWZ1bmN0aW9uKGUscil7dmFyIG4saSxvLHMsYz1bXTtpZighdC5yYW5nZWJyZWFrcylyZXR1cm4gYzt2YXIgdT10LnJhbmdlYnJlYWtzLnNsaWNlKCkuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5wYXR0ZXJuPT09QSYmZS5wYXR0ZXJuPT09az8tMTplLnBhdHRlcm49PT1BJiZ0LnBhdHRlcm49PT1rPzE6MH0pKSxmPWZ1bmN0aW9uKHQsbil7aWYoKHQ9YS5jb25zdHJhaW4odCxlLHIpKSE9PShuPWEuY29uc3RyYWluKG4sZSxyKSkpe2Zvcih2YXIgaT0hMCxvPTA7bzxjLmxlbmd0aDtvKyspe3ZhciBzPWNbb107dDxzLm1heCYmbj49cy5taW4mJih0PHMubWluJiYocy5taW49dCksbj5zLm1heCYmKHMubWF4PW4pLGk9ITEpfWkmJmMucHVzaCh7bWluOnQsbWF4Om59KX19O2ZvcihuPTA7bjx1Lmxlbmd0aDtuKyspe3ZhciBoPXVbbl07aWYoaC5lbmFibGVkKWlmKGguYm91bmRzKXt2YXIgcD1lLGQ9cjtoLnBhdHRlcm4mJihwPU1hdGguZmxvb3IocCkpLG89KGk9YS5zaW1wbGVNYXAoaC5ib3VuZHMsaC5wYXR0ZXJuP2w6dC5yMmwpKVswXSxzPWlbMV07dmFyIG0sZyx3PW5ldyBEYXRlKHApO3N3aXRjaChoLnBhdHRlcm4pe2Nhc2UgQTpnPXYsbT0ocy1vKyhzPG8/NzowKSkqeSxwKz1vKnktKHcuZ2V0VVRDRGF5KCkqeSt3LmdldFVUQ0hvdXJzKCkqeCt3LmdldFVUQ01pbnV0ZXMoKSpiK3cuZ2V0VVRDU2Vjb25kcygpKl8rdy5nZXRVVENNaWxsaXNlY29uZHMoKSk7YnJlYWs7Y2FzZSBrOmc9eSxtPShzLW8rKHM8bz8yNDowKSkqeCxwKz1vKngtKHcuZ2V0VVRDSG91cnMoKSp4K3cuZ2V0VVRDTWludXRlcygpKmIrdy5nZXRVVENTZWNvbmRzKCkqXyt3LmdldFVUQ01pbGxpc2Vjb25kcygpKTticmVhaztkZWZhdWx0OnA9TWF0aC5taW4oaVswXSxpWzFdKSxtPWc9KGQ9TWF0aC5tYXgoaVswXSxpWzFdKSktcH1mb3IodmFyIFQ9cDtUPGQ7VCs9ZylmKFQsVCttKX1lbHNlIGZvcih2YXIgTT1hLnNpbXBsZU1hcChoLnZhbHVlcyx0LmQyYyksUz0wO1M8TS5sZW5ndGg7UysrKWYobz1NW1NdLHM9bytoLmR2YWx1ZSl9cmV0dXJuIGMuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5taW4tZS5taW59KSksY30sdC5tYWtlQ2FsY2RhdGE9ZnVuY3Rpb24oZSxyLG4pe3ZhciBpLG8scyxsLGM9dC50eXBlLHU9ImRhdGUiPT09YyYmZVtyKyJjYWxlbmRhciJdO2lmKHIgaW4gZSl7aWYoaT1lW3JdLGw9ZS5fbGVuZ3RofHxhLm1pblJvd0xlbmd0aChpKSxhLmlzVHlwZWRBcnJheShpKSYmKCJsaW5lYXIiPT09Y3x8ImxvZyI9PT1jKSl7aWYobD09PWkubGVuZ3RoKXJldHVybiBpO2lmKGkuc3ViYXJyYXkpcmV0dXJuIGkuc3ViYXJyYXkoMCxsKX1pZigibXVsdGljYXRlZ29yeSI9PT1jKXJldHVybiBmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1uZXcgQXJyYXkoZSksbj0wO248ZTtuKyspe3ZhciBpPSh0WzBdfHxbXSlbbl0sYT0odFsxXXx8W10pW25dO3Jbbl09TyhbaSxhXSl9cmV0dXJuIHJ9KGksbCk7Zm9yKG89bmV3IEFycmF5KGwpLHM9MDtzPGw7cysrKW9bc109dC5kMmMoaVtzXSwwLHUsbil9ZWxzZXt2YXIgZj1yKyIwImluIGU/dC5kMmMoZVtyKyIwIl0sMCx1KTowLGg9ZVsiZCIrcl0/TnVtYmVyKGVbImQiK3JdKToxO2ZvcihpPWVbe3g6InkiLHk6IngifVtyXV0sbD1lLl9sZW5ndGh8fGkubGVuZ3RoLG89bmV3IEFycmF5KGwpLHM9MDtzPGw7cysrKW9bc109ZitzKmh9aWYodC5yYW5nZWJyZWFrcylmb3Iocz0wO3M8bDtzKyspb1tzXT10Lm1hc2tCcmVha3Mob1tzXSk7cmV0dXJuIG99LHQuaXNWYWxpZFJhbmdlPWZ1bmN0aW9uKGUpe3JldHVybiBBcnJheS5pc0FycmF5KGUpJiYyPT09ZS5sZW5ndGgmJnModC5yMmwoZVswXSkpJiZzKHQucjJsKGVbMV0pKX0sdC5pc1B0V2l0aGluUmFuZ2U9ZnVuY3Rpb24oZSxyKXt2YXIgbj10LmMybChlW3BdLG51bGwsciksaT10LnIybCh0LnJhbmdlWzBdKSxhPXQucjJsKHQucmFuZ2VbMV0pO3JldHVybiBpPGE/aTw9biYmbjw9YTphPD1uJiZuPD1pfSx0Ll9lbXB0eUNhdGVnb3JpZXM9ZnVuY3Rpb24oKXt0Ll9jYXRlZ29yaWVzPVtdLHQuX2NhdGVnb3JpZXNNYXA9e319LHQuY2xlYXJDYWxjPWZ1bmN0aW9uKCl7dmFyIHI9dC5fbWF0Y2hHcm91cDtpZihyKXt2YXIgbj1udWxsLGk9bnVsbDtmb3IodmFyIGEgaW4gcil7dmFyIG89ZVt3LmlkMm5hbWUoYSldO2lmKG8uX2NhdGVnb3JpZXMpe249by5fY2F0ZWdvcmllcyxpPW8uX2NhdGVnb3JpZXNNYXA7YnJlYWt9fW4mJmk/KHQuX2NhdGVnb3JpZXM9bix0Ll9jYXRlZ29yaWVzTWFwPWkpOnQuX2VtcHR5Q2F0ZWdvcmllcygpfWVsc2UgdC5fZW1wdHlDYXRlZ29yaWVzKCk7aWYodC5faW5pdGlhbENhdGVnb3JpZXMpZm9yKHZhciBzPTA7czx0Ll9pbml0aWFsQ2F0ZWdvcmllcy5sZW5ndGg7cysrKUkodC5faW5pdGlhbENhdGVnb3JpZXNbc10pfSx0LnNvcnRCeUluaXRpYWxDYXRlZ29yaWVzPWZ1bmN0aW9uKCl7dmFyIG49W107aWYodC5fZW1wdHlDYXRlZ29yaWVzKCksdC5faW5pdGlhbENhdGVnb3JpZXMpZm9yKHZhciBpPTA7aTx0Ll9pbml0aWFsQ2F0ZWdvcmllcy5sZW5ndGg7aSsrKUkodC5faW5pdGlhbENhdGVnb3JpZXNbaV0pO249bi5jb25jYXQodC5fdHJhY2VJbmRpY2VzKTt2YXIgYT10Ll9tYXRjaEdyb3VwO2Zvcih2YXIgbyBpbiBhKWlmKHIhPT1vKXt2YXIgcz1lW3cuaWQybmFtZShvKV07cy5fY2F0ZWdvcmllcz10Ll9jYXRlZ29yaWVzLHMuX2NhdGVnb3JpZXNNYXA9dC5fY2F0ZWdvcmllc01hcCxuPW4uY29uY2F0KHMuX3RyYWNlSW5kaWNlcyl9cmV0dXJuIG59O3ZhciBVPWUuX2QzbG9jYWxlOyJkYXRlIj09PXQudHlwZSYmKHQuX2RhdGVGb3JtYXQ9VT9VLnRpbWVGb3JtYXQ6aSx0Ll9leHRyYUZvcm1hdD1lLl9leHRyYUZvcm1hdCksdC5fc2VwYXJhdG9ycz1lLnNlcGFyYXRvcnMsdC5fbnVtRm9ybWF0PVU/VS5udW1iZXJGb3JtYXQ6byxkZWxldGUgdC5fbWluRHRpY2ssZGVsZXRlIHQuX2ZvcmNlVGljazB9fSx7Ii4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiOjQ5MSwiLi4vLi4vbGliIjo1MTUsIi4vYXhpc19pZHMiOjU3MCwiLi9jb25zdGFudHMiOjU3MywiQHBsb3RseS9kMyI6NTgsImQzLXRpbWUtZm9ybWF0IjoxMjAsImZhc3QtaXNudW1lcmljIjoxOTB9XSw1ODY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPVsic2hvd2V4cG9uZW50Iiwic2hvd3RpY2twcmVmaXgiLCJzaG93dGlja3N1ZmZpeCJdLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMCE9PXRbZV19KSk7aWYoZS5ldmVyeSgoZnVuY3Rpb24ocil7cmV0dXJuIHRbcl09PT10W2VbMF1dfSkpfHwxPT09ZS5sZW5ndGgpcmV0dXJuIHRbZVswXV19fSx7fV0sNTg3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLmNvbnRyYXN0LGE9dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpLG89dCgiLi9zaG93X2RmbHQiKSxzPXQoIi4uL2FycmF5X2NvbnRhaW5lcl9kZWZhdWx0cyIpO2Z1bmN0aW9uIGwodCxlKXtmdW5jdGlvbiByKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxhLnRpY2tmb3JtYXRzdG9wcyxyLGkpfXIoImVuYWJsZWQiKSYmKHIoImR0aWNrcmFuZ2UiKSxyKCJ2YWx1ZSIpKX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYyx1KXt1fHwodT17fSk7dmFyIGY9byh0KTtpZihyKCJzaG93dGlja2xhYmVscyIpKXt2YXIgaD11LmZvbnR8fHt9LHA9ZS5jb2xvcixkPS0xIT09KGUudGlja2xhYmVscG9zaXRpb258fCIiKS5pbmRleE9mKCJpbnNpZGUiKT9pKHUuYmdDb2xvcik6cCYmcCE9PWEuY29sb3IuZGZsdD9wOmguY29sb3I7aWYobi5jb2VyY2VGb250KHIsInRpY2tmb250Iix7ZmFtaWx5OmguZmFtaWx5LHNpemU6aC5zaXplLGNvbG9yOmR9KSx1Lm5vVGlja2xhYmVsc3RlcHx8Im11bHRpY2F0ZWdvcnkiPT09Y3x8ImxvZyI9PT1jfHxyKCJ0aWNrbGFiZWxzdGVwIiksdS5ub0FuZ3x8cigidGlja2FuZ2xlIiksImNhdGVnb3J5IiE9PWMpe3ZhciBtPXIoInRpY2tmb3JtYXQiKTtzKHQsZSx7bmFtZToidGlja2Zvcm1hdHN0b3BzIixpbmNsdXNpb25BdHRyOiJlbmFibGVkIixoYW5kbGVJdGVtRGVmYXVsdHM6bH0pLGUudGlja2Zvcm1hdHN0b3BzLmxlbmd0aHx8ZGVsZXRlIGUudGlja2Zvcm1hdHN0b3BzLHUubm9FeHB8fG18fCJkYXRlIj09PWN8fChyKCJzaG93ZXhwb25lbnQiLGYpLHIoImV4cG9uZW50Zm9ybWF0IikscigibWluZXhwb25lbnQiKSxyKCJzZXBhcmF0ZXRob3VzYW5kcyIpKX19fX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjozNjcsIi4uLy4uL2xpYiI6NTE1LCIuLi9hcnJheV9jb250YWluZXJfZGVmYXVsdHMiOjU2MSwiLi9sYXlvdXRfYXR0cmlidXRlcyI6NTc5LCIuL3Nob3dfZGZsdCI6NTg2fV0sNTg4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixhKXt2YXIgbz1hLmlzTWlub3Iscz1vP3QubWlub3J8fHt9OnQsbD1vP2UubWlub3I6ZSxjPW8/aS5taW5vcjppLHU9bz8ibWlub3IuIjoiIixmPW4uY29lcmNlMihzLGwsYywidGlja2xlbiIsbz8uNiooZS50aWNrbGVufHw1KTp2b2lkIDApLGg9bi5jb2VyY2UyKHMsbCxjLCJ0aWNrd2lkdGgiLG8/ZS50aWNrd2lkdGh8fDE6dm9pZCAwKSxwPW4uY29lcmNlMihzLGwsYywidGlja2NvbG9yIiwobz9lLnRpY2tjb2xvcjp2b2lkIDApfHxsLmNvbG9yKTtyKHUrInRpY2tzIiwhbyYmYS5vdXRlclRpY2tzfHxmfHxofHxwPyJvdXRzaWRlIjoiIil8fChkZWxldGUgbC50aWNrbGVuLGRlbGV0ZSBsLnRpY2t3aWR0aCxkZWxldGUgbC50aWNrY29sb3IpfX0seyIuLi8uLi9saWIiOjUxNSwiLi9sYXlvdXRfYXR0cmlidXRlcyI6NTc5fV0sNTg5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vY2xlYW5fdGlja3MiKSxpPXQoIi4uLy4uL2xpYiIpLmlzQXJyYXlPclR5cGVkQXJyYXk7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGEsbyl7b3x8KG89e30pO3ZhciBzPW8uaXNNaW5vcixsPXM/dC5taW5vcnx8e306dCxjPXM/ZS5taW5vcjplLHU9cz8ibWlub3IuIjoiIjtmdW5jdGlvbiBmKHQpe3ZhciBlPWxbdF07cmV0dXJuIHZvaWQgMCE9PWU/ZTooYy5fdGVtcGxhdGV8fHt9KVt0XX12YXIgaD1mKCJ0aWNrMCIpLHA9ZigiZHRpY2siKSxkPWYoInRpY2t2YWxzIiksbT1yKHUrInRpY2ttb2RlIixpKGQpPyJhcnJheSI6cD8ibGluZWFyIjoiYXV0byIpO2lmKCJhdXRvIj09PW0pcih1KyJudGlja3MiKTtlbHNlIGlmKCJsaW5lYXIiPT09bSl7dmFyIGc9Yy5kdGljaz1uLmR0aWNrKHAsYSk7Yy50aWNrMD1uLnRpY2swKGgsYSxlLmNhbGVuZGFyLGcpfWVsc2UgaWYoIm11bHRpY2F0ZWdvcnkiIT09YSl7dm9pZCAwPT09cih1KyJ0aWNrdmFscyIpP2MudGlja21vZGU9ImF1dG8iOnN8fHIoInRpY2t0ZXh0Iil9fX0seyIuLi8uLi9saWIiOjUxNSwiLi9jbGVhbl90aWNrcyI6NTcyfV0sNTkwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4uLy4uL3JlZ2lzdHJ5IiksYT10KCIuLi8uLi9saWIiKSxvPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLHM9dCgiLi9heGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGwpe3ZhciBjPXQuX2Z1bGxMYXlvdXQ7aWYoMCE9PWUubGVuZ3RoKXt2YXIgdSxmLGgscDtsJiYodT1sKCkpO3ZhciBkPW4uZWFzZShyLmVhc2luZyk7cmV0dXJuIHQuX3RyYW5zaXRpb25EYXRhLl9pbnRlcnJ1cHRDYWxsYmFja3MucHVzaCgoZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKHApLHA9bnVsbCxmdW5jdGlvbigpe2Zvcih2YXIgcj17fSxuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciBhPWVbbl0sbz1hLnBsb3RpbmZvLnhheGlzLHM9YS5wbG90aW5mby55YXhpczthLnhyMCYmKHJbby5fbmFtZSsiLnJhbmdlIl09YS54cjAuc2xpY2UoKSksYS55cjAmJihyW3MuX25hbWUrIi5yYW5nZSJdPWEueXIwLnNsaWNlKCkpfXJldHVybiBpLmNhbGwoInJlbGF5b3V0Iix0LHIpLnRoZW4oKGZ1bmN0aW9uKCl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspbShlW3RdLnBsb3RpbmZvKX0pKX0oKX0pKSxmPURhdGUubm93KCkscD13aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKChmdW5jdGlvbiBuKCl7aD1EYXRlLm5vdygpO2Zvcih2YXIgYT1NYXRoLm1pbigxLChoLWYpL3IuZHVyYXRpb24pLG89ZChhKSxzPTA7czxlLmxlbmd0aDtzKyspZyhlW3NdLG8pO2gtZj5yLmR1cmF0aW9uPyghZnVuY3Rpb24oKXtmb3IodmFyIHI9e30sbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgYT1lW25dLG89YS5wbG90aW5mby54YXhpcyxzPWEucGxvdGluZm8ueWF4aXM7YS54cjEmJihyW28uX25hbWUrIi5yYW5nZSJdPWEueHIxLnNsaWNlKCkpLGEueXIxJiYocltzLl9uYW1lKyIucmFuZ2UiXT1hLnlyMS5zbGljZSgpKX11JiZ1KCksaS5jYWxsKCJyZWxheW91dCIsdCxyKS50aGVuKChmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKW0oZVt0XS5wbG90aW5mbyl9KSl9KCkscD13aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUobikpOnA9d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShuKX0pKSxQcm9taXNlLnJlc29sdmUoKX1mdW5jdGlvbiBtKHQpe3ZhciBlPXQueGF4aXMscj10LnlheGlzO2MuX2RlZnMuc2VsZWN0KCIjIit0LmNsaXBJZCsiPiByZWN0IikuY2FsbChvLnNldFRyYW5zbGF0ZSwwLDApLmNhbGwoby5zZXRTY2FsZSwxLDEpLHQucGxvdC5jYWxsKG8uc2V0VHJhbnNsYXRlLGUuX29mZnNldCxyLl9vZmZzZXQpLmNhbGwoby5zZXRTY2FsZSwxLDEpO3ZhciBuPXQucGxvdC5zZWxlY3RBbGwoIi5zY2F0dGVybGF5ZXIgLnRyYWNlIik7bi5zZWxlY3RBbGwoIi5wb2ludCIpLmNhbGwoby5zZXRQb2ludEdyb3VwU2NhbGUsMSwxKSxuLnNlbGVjdEFsbCgiLnRleHRwb2ludCIpLmNhbGwoby5zZXRUZXh0UG9pbnRzU2NhbGUsMSwxKSxuLmNhbGwoby5oaWRlT3V0c2lkZVJhbmdlUG9pbnRzLHQpfWZ1bmN0aW9uIGcoZSxyKXt2YXIgbj1lLnBsb3RpbmZvLGk9bi54YXhpcyxsPW4ueWF4aXMsYz1pLl9sZW5ndGgsdT1sLl9sZW5ndGgsZj0hIWUueHIxLGg9ISFlLnlyMSxwPVtdO2lmKGYpe3ZhciBkPWEuc2ltcGxlTWFwKGUueHIwLGkucjJsKSxtPWEuc2ltcGxlTWFwKGUueHIxLGkucjJsKSxnPWRbMV0tZFswXSx2PW1bMV0tbVswXTtwWzBdPShkWzBdKigxLXIpK3IqbVswXS1kWzBdKS8oZFsxXS1kWzBdKSpjLHBbMl09YyooMS1yK3Iqdi9nKSxpLnJhbmdlWzBdPWkubDJyKGRbMF0qKDEtcikrciptWzBdKSxpLnJhbmdlWzFdPWkubDJyKGRbMV0qKDEtcikrciptWzFdKX1lbHNlIHBbMF09MCxwWzJdPWM7aWYoaCl7dmFyIHk9YS5zaW1wbGVNYXAoZS55cjAsbC5yMmwpLHg9YS5zaW1wbGVNYXAoZS55cjEsbC5yMmwpLGI9eVsxXS15WzBdLF89eFsxXS14WzBdO3BbMV09KHlbMV0qKDEtcikrcip4WzFdLXlbMV0pLyh5WzBdLXlbMV0pKnUscFszXT11KigxLXIrcipfL2IpLGwucmFuZ2VbMF09aS5sMnIoeVswXSooMS1yKStyKnhbMF0pLGwucmFuZ2VbMV09bC5sMnIoeVsxXSooMS1yKStyKnhbMV0pfWVsc2UgcFsxXT0wLHBbM109dTtzLmRyYXdPbmUodCxpLHtza2lwVGl0bGU6ITB9KSxzLmRyYXdPbmUodCxsLHtza2lwVGl0bGU6ITB9KSxzLnJlZHJhd0NvbXBvbmVudHModCxbaS5faWQsbC5faWRdKTt2YXIgdz1mP2MvcFsyXToxLFQ9aD91L3BbM106MSxrPWY/cFswXTowLEE9aD9wWzFdOjAsTT1mP3BbMF0vcFsyXSpjOjAsUz1oP3BbMV0vcFszXSp1OjAsRT1pLl9vZmZzZXQtTSxMPWwuX29mZnNldC1TO24uY2xpcFJlY3QuY2FsbChvLnNldFRyYW5zbGF0ZSxrLEEpLmNhbGwoby5zZXRTY2FsZSwxL3csMS9UKSxuLnBsb3QuY2FsbChvLnNldFRyYW5zbGF0ZSxFLEwpLmNhbGwoby5zZXRTY2FsZSx3LFQpLG8uc2V0UG9pbnRHcm91cFNjYWxlKG4uem9vbVNjYWxlUHRzLDEvdywxL1QpLG8uc2V0VGV4dFBvaW50c1NjYWxlKG4uem9vbVNjYWxlVHh0LDEvdywxL1QpfXMucmVkcmF3Q29tcG9uZW50cyh0KX19LHsiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjozODksIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9yZWdpc3RyeSI6NjQ3LCIuL2F4ZXMiOjU2NiwiQHBsb3RseS9kMyI6NTh9XSw1OTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcmVnaXN0cnkiKS50cmFjZUlzLGk9dCgiLi9heGlzX2F1dG90eXBlIik7ZnVuY3Rpb24gYSh0KXtyZXR1cm57djoieCIsaDoieSJ9W3Qub3JpZW50YXRpb258fCJ2Il19ZnVuY3Rpb24gbyh0LGUpe3ZhciByPWEodCksaT1uKHQsImJveC12aW9saW4iKSxvPW4odC5fZnVsbElucHV0fHx7fSwiY2FuZGxlc3RpY2siKTtyZXR1cm4gaSYmIW8mJmU9PT1yJiZ2b2lkIDA9PT10W3JdJiZ2b2lkIDA9PT10W3IrIjAiXX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIscyl7cigiYXV0b3R5cGVudW1iZXJzIixzLmF1dG90eXBlbnVtYmVyc0RmbHQpLCItIj09PXIoInR5cGUiLChzLnNwbG9tU3Rhc2h8fHt9KS50eXBlKSYmKCFmdW5jdGlvbih0LGUpe2lmKCItIiE9PXQudHlwZSlyZXR1cm47dmFyIHIscz10Ll9pZCxsPXMuY2hhckF0KDApOy0xIT09cy5pbmRleE9mKCJzY2VuZSIpJiYocz1sKTt2YXIgYz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBpPXRbbl07aWYoInNwbG9tIj09PWkudHlwZSYmaS5fbGVuZ3RoPjAmJihpWyJfIityKyJheGVzIl18fHt9KVtlXSlyZXR1cm4gaTtpZigoaVtyKyJheGlzIl18fHIpPT09ZSl7aWYobyhpLHIpKXJldHVybiBpO2lmKChpW3JdfHxbXSkubGVuZ3RofHxpW3IrIjAiXSlyZXR1cm4gaX19fShlLHMsbCk7aWYoIWMpcmV0dXJuO2lmKCJoaXN0b2dyYW0iPT09Yy50eXBlJiZsPT09e3Y6InkiLGg6IngifVtjLm9yaWVudGF0aW9ufHwidiJdKXJldHVybiB2b2lkKHQudHlwZT0ibGluZWFyIik7dmFyIHU9bCsiY2FsZW5kYXIiLGY9Y1t1XSxoPXtub011bHRpQ2F0ZWdvcnk6IW4oYywiY2FydGVzaWFuIil8fG4oYywibm9NdWx0aUNhdGVnb3J5Iil9OyJib3giPT09Yy50eXBlJiZjLl9oYXNQcmVDb21wU3RhdHMmJmw9PT17aDoieCIsdjoieSJ9W2Mub3JpZW50YXRpb258fCJ2Il0mJihoLm5vTXVsdGlDYXRlZ29yeT0hMCk7aWYoaC5hdXRvdHlwZW51bWJlcnM9dC5hdXRvdHlwZW51bWJlcnMsbyhjLGwpKXt2YXIgcD1hKGMpLGQ9W107Zm9yKHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG09ZVtyXTtuKG0sImJveC12aW9saW4iKSYmKG1bbCsiYXhpcyJdfHxsKT09PXMmJih2b2lkIDAhPT1tW3BdP2QucHVzaChtW3BdWzBdKTp2b2lkIDAhPT1tLm5hbWU/ZC5wdXNoKG0ubmFtZSk6ZC5wdXNoKCJ0ZXh0IiksbVt1XSE9PWYmJihmPXZvaWQgMCkpfXQudHlwZT1pKGQsZixoKX1lbHNlIGlmKCJzcGxvbSI9PT1jLnR5cGUpe3ZhciBnPWMuZGltZW5zaW9uc1tjLl9heGVzRGltW3NdXTtnLnZpc2libGUmJih0LnR5cGU9aShnLnZhbHVlcyxmLGgpKX1lbHNlIHQudHlwZT1pKGNbbF18fFtjW2wrIjAiXV0sZixoKX0oZSxzLmRhdGEpLCItIj09PWUudHlwZT9lLnR5cGU9ImxpbmVhciI6dC50eXBlPWUudHlwZSl9fSx7Ii4uLy4uL3JlZ2lzdHJ5Ijo2NDcsIi4vYXhpc19hdXRvdHlwZSI6NTY3fV0sNTkyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3JlZ2lzdHJ5IiksaT10KCIuLi9saWIiKTtmdW5jdGlvbiBhKHQsZSxyKXt2YXIgbixhLG8scz0hMTtpZigiZGF0YSI9PT1lLnR5cGUpbj10Ll9mdWxsRGF0YVtudWxsIT09ZS50cmFjZXM/ZS50cmFjZXNbMF06MF07ZWxzZXtpZigibGF5b3V0IiE9PWUudHlwZSlyZXR1cm4hMTtuPXQuX2Z1bGxMYXlvdXR9cmV0dXJuIGE9aS5uZXN0ZWRQcm9wZXJ0eShuLGUucHJvcCkuZ2V0KCksKG89cltlLnR5cGVdPXJbZS50eXBlXXx8e30pLmhhc093blByb3BlcnR5KGUucHJvcCkmJm9bZS5wcm9wXSE9PWEmJihzPSEwKSxvW2UucHJvcF09YSx7Y2hhbmdlZDpzLHZhbHVlOmF9fWZ1bmN0aW9uIG8odCxlKXt2YXIgcj1bXSxuPWVbMF0sYT17fTtpZigic3RyaW5nIj09dHlwZW9mIG4pYVtuXT1lWzFdO2Vsc2V7aWYoIWkuaXNQbGFpbk9iamVjdChuKSlyZXR1cm4gcjthPW59cmV0dXJuIGwoYSwoZnVuY3Rpb24odCxlLG4pe3IucHVzaCh7dHlwZToibGF5b3V0Iixwcm9wOnQsdmFsdWU6bn0pfSksIiIsMCkscn1mdW5jdGlvbiBzKHQsZSl7dmFyIHIsbixhLG8scz1bXTtpZihuPWVbMF0sYT1lWzFdLHI9ZVsyXSxvPXt9LCJzdHJpbmciPT10eXBlb2YgbilvW25dPWE7ZWxzZXtpZighaS5pc1BsYWluT2JqZWN0KG4pKXJldHVybiBzO289bix2b2lkIDA9PT1yJiYocj1hKX1yZXR1cm4gdm9pZCAwPT09ciYmKHI9bnVsbCksbChvLChmdW5jdGlvbihlLG4saSl7dmFyIGEsbztpZihBcnJheS5pc0FycmF5KGkpKXtvPWkuc2xpY2UoKTt2YXIgbD1NYXRoLm1pbihvLmxlbmd0aCx0LmRhdGEubGVuZ3RoKTtyJiYobD1NYXRoLm1pbihsLHIubGVuZ3RoKSksYT1bXTtmb3IodmFyIGM9MDtjPGw7YysrKWFbY109cj9yW2NdOmN9ZWxzZSBvPWksYT1yP3Iuc2xpY2UoKTpudWxsO2lmKG51bGw9PT1hKUFycmF5LmlzQXJyYXkobykmJihvPW9bMF0pO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShhKSl7aWYoIUFycmF5LmlzQXJyYXkobykpe3ZhciB1PW87bz1bXTtmb3IodmFyIGY9MDtmPGEubGVuZ3RoO2YrKylvW2ZdPXV9by5sZW5ndGg9TWF0aC5taW4oYS5sZW5ndGgsby5sZW5ndGgpfXMucHVzaCh7dHlwZToiZGF0YSIscHJvcDplLHRyYWNlczphLHZhbHVlOm99KX0pLCIiLDApLHN9ZnVuY3Rpb24gbCh0LGUscixuKXtPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChmdW5jdGlvbihhKXt2YXIgbz10W2FdO2lmKCJfIiE9PWFbMF0pe3ZhciBzPXIrKG4+MD8iLiI6IiIpK2E7aS5pc1BsYWluT2JqZWN0KG8pP2wobyxlLHMsbisxKTplKHMsYSxvKX19KSl9ci5tYW5hZ2VDb21tYW5kT2JzZXJ2ZXI9ZnVuY3Rpb24odCxlLG4sbyl7dmFyIHM9e30sbD0hMDtlJiZlLl9jb21tYW5kT2JzZXJ2ZXImJihzPWUuX2NvbW1hbmRPYnNlcnZlcikscy5jYWNoZXx8KHMuY2FjaGU9e30pLHMubG9va3VwVGFibGU9e307dmFyIGM9ci5oYXNTaW1wbGVBUElDb21tYW5kQmluZGluZ3ModCxuLHMubG9va3VwVGFibGUpO2lmKGUmJmUuX2NvbW1hbmRPYnNlcnZlcil7aWYoYylyZXR1cm4gcztpZihlLl9jb21tYW5kT2JzZXJ2ZXIucmVtb3ZlKXJldHVybiBlLl9jb21tYW5kT2JzZXJ2ZXIucmVtb3ZlKCksZS5fY29tbWFuZE9ic2VydmVyPW51bGwsc31pZihjKXthKHQsYyxzLmNhY2hlKSxzLmNoZWNrPWZ1bmN0aW9uKCl7aWYobCl7dmFyIGU9YSh0LGMscy5jYWNoZSk7cmV0dXJuIGUuY2hhbmdlZCYmbyYmdm9pZCAwIT09cy5sb29rdXBUYWJsZVtlLnZhbHVlXSYmKHMuZGlzYWJsZSgpLFByb21pc2UucmVzb2x2ZShvKHt2YWx1ZTplLnZhbHVlLHR5cGU6Yy50eXBlLHByb3A6Yy5wcm9wLHRyYWNlczpjLnRyYWNlcyxpbmRleDpzLmxvb2t1cFRhYmxlW2UudmFsdWVdfSkpLnRoZW4ocy5lbmFibGUscy5lbmFibGUpKSxlLmNoYW5nZWR9fTtmb3IodmFyIHU9WyJwbG90bHlfcmVsYXlvdXQiLCJwbG90bHlfcmVkcmF3IiwicGxvdGx5X3Jlc3R5bGUiLCJwbG90bHlfdXBkYXRlIiwicGxvdGx5X2FuaW1hdGluZ2ZyYW1lIiwicGxvdGx5X2FmdGVycGxvdCJdLGY9MDtmPHUubGVuZ3RoO2YrKyl0Ll9pbnRlcm5hbE9uKHVbZl0scy5jaGVjayk7cy5yZW1vdmU9ZnVuY3Rpb24oKXtmb3IodmFyIGU9MDtlPHUubGVuZ3RoO2UrKyl0Ll9yZW1vdmVJbnRlcm5hbExpc3RlbmVyKHVbZV0scy5jaGVjayl9fWVsc2UgaS5sb2coIlVuYWJsZSB0byBhdXRvbWF0aWNhbGx5IGJpbmQgcGxvdCB1cGRhdGVzIHRvIEFQSSBjb21tYW5kIikscy5sb29rdXBUYWJsZT17fSxzLnJlbW92ZT1mdW5jdGlvbigpe307cmV0dXJuIHMuZGlzYWJsZT1mdW5jdGlvbigpe2w9ITF9LHMuZW5hYmxlPWZ1bmN0aW9uKCl7bD0hMH0sZSYmKGUuX2NvbW1hbmRPYnNlcnZlcj1zKSxzfSxyLmhhc1NpbXBsZUFQSUNvbW1hbmRCaW5kaW5ncz1mdW5jdGlvbih0LGUsbil7dmFyIGksYSxvPWUubGVuZ3RoO2ZvcihpPTA7aTxvO2krKyl7dmFyIHMsbD1lW2ldLGM9bC5tZXRob2QsdT1sLmFyZ3M7aWYoQXJyYXkuaXNBcnJheSh1KXx8KHU9W10pLCFjKXJldHVybiExO3ZhciBmPXIuY29tcHV0ZUFQSUNvbW1hbmRCaW5kaW5ncyh0LGMsdSk7aWYoMSE9PWYubGVuZ3RoKXJldHVybiExO2lmKGEpe2lmKChzPWZbMF0pLnR5cGUhPT1hLnR5cGUpcmV0dXJuITE7aWYocy5wcm9wIT09YS5wcm9wKXJldHVybiExO2lmKEFycmF5LmlzQXJyYXkoYS50cmFjZXMpKXtpZighQXJyYXkuaXNBcnJheShzLnRyYWNlcykpcmV0dXJuITE7cy50cmFjZXMuc29ydCgpO2Zvcih2YXIgaD0wO2g8YS50cmFjZXMubGVuZ3RoO2grKylpZihhLnRyYWNlc1toXSE9PXMudHJhY2VzW2hdKXJldHVybiExfWVsc2UgaWYocy5wcm9wIT09YS5wcm9wKXJldHVybiExfWVsc2UgYT1mWzBdLEFycmF5LmlzQXJyYXkoYS50cmFjZXMpJiZhLnRyYWNlcy5zb3J0KCk7dmFyIHA9KHM9ZlswXSkudmFsdWU7aWYoQXJyYXkuaXNBcnJheShwKSl7aWYoMSE9PXAubGVuZ3RoKXJldHVybiExO3A9cFswXX1uJiYobltwXT1pKX1yZXR1cm4gYX0sci5leGVjdXRlQVBJQ29tbWFuZD1mdW5jdGlvbih0LGUscil7aWYoInNraXAiPT09ZSlyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7dmFyIGE9bi5hcGlNZXRob2RSZWdpc3RyeVtlXSxvPVt0XTtBcnJheS5pc0FycmF5KHIpfHwocj1bXSk7Zm9yKHZhciBzPTA7czxyLmxlbmd0aDtzKyspby5wdXNoKHJbc10pO3JldHVybiBhLmFwcGx5KG51bGwsbykuY2F0Y2goKGZ1bmN0aW9uKHQpe3JldHVybiBpLndhcm4oIkFQSSBjYWxsIHRvIFBsb3RseS4iK2UrIiByZWplY3RlZC4iLHQpLFByb21pc2UucmVqZWN0KHQpfSkpfSxyLmNvbXB1dGVBUElDb21tYW5kQmluZGluZ3M9ZnVuY3Rpb24odCxlLHIpe3ZhciBuO3N3aXRjaChBcnJheS5pc0FycmF5KHIpfHwocj1bXSksZSl7Y2FzZSJyZXN0eWxlIjpuPXModCxyKTticmVhaztjYXNlInJlbGF5b3V0IjpuPW8odCxyKTticmVhaztjYXNlInVwZGF0ZSI6bj1zKHQsW3JbMF0sclsyXV0pLmNvbmNhdChvKHQsW3JbMV1dKSk7YnJlYWs7Y2FzZSJhbmltYXRlIjpuPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZVswXSkmJjE9PT1lWzBdLmxlbmd0aCYmLTEhPT1bInN0cmluZyIsIm51bWJlciJdLmluZGV4T2YodHlwZW9mIGVbMF1bMF0pP1t7dHlwZToibGF5b3V0Iixwcm9wOiJfY3VycmVudEZyYW1lIix2YWx1ZTplWzBdWzBdLnRvU3RyaW5nKCl9XTpbXX0oMCxyKTticmVhaztkZWZhdWx0Om49W119cmV0dXJuIG59fSx7Ii4uL2xpYiI6NTE1LCIuLi9yZWdpc3RyeSI6NjQ3fV0sNTkzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0O3IuYXR0cmlidXRlcz1mdW5jdGlvbih0LGUpe2U9ZXx8e307dmFyIHI9e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGVkaXRUeXBlOih0PXR8fHt9KS5lZGl0VHlwZSxpdGVtczpbe3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZWRpdFR5cGU6dC5lZGl0VHlwZX0se3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZWRpdFR5cGU6dC5lZGl0VHlwZX1dLGRmbHQ6WzAsMV19LGk9KHQubmFtZSYmdC5uYW1lLHQudHJhY2UsZS5kZXNjcmlwdGlvbiYmZS5kZXNjcmlwdGlvbix7eDpuKHt9LHIse30pLHk6bih7fSxyLHt9KSxlZGl0VHlwZTp0LmVkaXRUeXBlfSk7cmV0dXJuIHQubm9HcmlkQ2VsbHx8KGkucm93PXt2YWxUeXBlOiJpbnRlZ2VyIixtaW46MCxkZmx0OjAsZWRpdFR5cGU6dC5lZGl0VHlwZX0saS5jb2x1bW49e3ZhbFR5cGU6ImludGVnZXIiLG1pbjowLGRmbHQ6MCxlZGl0VHlwZTp0LmVkaXRUeXBlfSksaX0sci5kZWZhdWx0cz1mdW5jdGlvbih0LGUscixuKXt2YXIgaT1uJiZuLnh8fFswLDFdLGE9biYmbi55fHxbMCwxXSxvPWUuZ3JpZDtpZihvKXt2YXIgcz1yKCJkb21haW4uY29sdW1uIik7dm9pZCAwIT09cyYmKHM8by5jb2x1bW5zP2k9by5fZG9tYWlucy54W3NdOmRlbGV0ZSB0LmRvbWFpbi5jb2x1bW4pO3ZhciBsPXIoImRvbWFpbi5yb3ciKTt2b2lkIDAhPT1sJiYobDxvLnJvd3M/YT1vLl9kb21haW5zLnlbbF06ZGVsZXRlIHQuZG9tYWluLnJvdyl9dmFyIGM9cigiZG9tYWluLngiLGkpLHU9cigiZG9tYWluLnkiLGEpO2NbMF08Y1sxXXx8KHQuZG9tYWluLng9aS5zbGljZSgpKSx1WzBdPHVbMV18fCh0LmRvbWFpbi55PWEuc2xpY2UoKSl9fSx7Ii4uL2xpYi9leHRlbmQiOjUwNX1dLDU5NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5lZGl0VHlwZSxyPXQuY29sb3JFZGl0VHlwZTt2b2lkIDA9PT1yJiYocj1lKTt2YXIgbj17ZmFtaWx5Ont2YWxUeXBlOiJzdHJpbmciLG5vQmxhbms6ITAsc3RyaWN0OiEwLGVkaXRUeXBlOmV9LHNpemU6e3ZhbFR5cGU6Im51bWJlciIsbWluOjEsZWRpdFR5cGU6ZX0sY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZTpyfSxlZGl0VHlwZTplfTtyZXR1cm4gdC5hdXRvU2l6ZSYmKG4uc2l6ZS5kZmx0PSJhdXRvIiksdC5hdXRvQ29sb3ImJihuLmNvbG9yLmRmbHQ9ImF1dG8iKSx0LmFycmF5T2smJihuLmZhbWlseS5hcnJheU9rPSEwLG4uc2l6ZS5hcnJheU9rPSEwLG4uY29sb3IuYXJyYXlPaz0hMCksbn19LHt9XSw1OTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtfaXNMaW5rZWRUb0FycmF5OiJmcmFtZXNfZW50cnkiLGdyb3VwOnt2YWxUeXBlOiJzdHJpbmcifSxuYW1lOnt2YWxUeXBlOiJzdHJpbmcifSx0cmFjZXM6e3ZhbFR5cGU6ImFueSJ9LGJhc2VmcmFtZTp7dmFsVHlwZToic3RyaW5nIn0sZGF0YTp7dmFsVHlwZToiYW55In0sbGF5b3V0Ont2YWxUeXBlOiJhbnkifX19LHt9XSw1OTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ci5wcm9qTmFtZXM9e2Fpcnk6ImFpcnkiLGFpdG9mZjoiYWl0b2ZmIiwiYWxiZXJzIHVzYSI6ImFsYmVyc1VzYSIsYWxiZXJzOiJhbGJlcnMiLGF1Z3VzdDoiYXVndXN0IiwiYXppbXV0aGFsIGVxdWFsIGFyZWEiOiJhemltdXRoYWxFcXVhbEFyZWEiLCJhemltdXRoYWwgZXF1aWRpc3RhbnQiOiJhemltdXRoYWxFcXVpZGlzdGFudCIsYmFrZXI6ImJha2VyIixiZXJ0aW4xOTUzOiJiZXJ0aW4xOTUzIixib2dnczoiYm9nZ3MiLGJvbm5lOiJib25uZSIsYm90dG9tbGV5OiJib3R0b21sZXkiLGJyb21sZXk6ImJyb21sZXkiLGNvbGxpZ25vbjoiY29sbGlnbm9uIiwiY29uaWMgY29uZm9ybWFsIjoiY29uaWNDb25mb3JtYWwiLCJjb25pYyBlcXVhbCBhcmVhIjoiY29uaWNFcXVhbEFyZWEiLCJjb25pYyBlcXVpZGlzdGFudCI6ImNvbmljRXF1aWRpc3RhbnQiLGNyYWlnOiJjcmFpZyIsY3Jhc3RlcjoiY3Jhc3RlciIsImN5bGluZHJpY2FsIGVxdWFsIGFyZWEiOiJjeWxpbmRyaWNhbEVxdWFsQXJlYSIsImN5bGluZHJpY2FsIHN0ZXJlb2dyYXBoaWMiOiJjeWxpbmRyaWNhbFN0ZXJlb2dyYXBoaWMiLGVja2VydDE6ImVja2VydDEiLGVja2VydDI6ImVja2VydDIiLGVja2VydDM6ImVja2VydDMiLGVja2VydDQ6ImVja2VydDQiLGVja2VydDU6ImVja2VydDUiLGVja2VydDY6ImVja2VydDYiLGVpc2VubG9ocjoiZWlzZW5sb2hyIixlcXVpcmVjdGFuZ3VsYXI6ImVxdWlyZWN0YW5ndWxhciIsZmFoZXk6ImZhaGV5IiwiZm91Y2F1dCBzaW51c29pZGFsIjoiZm91Y2F1dFNpbnVzb2lkYWwiLGZvdWNhdXQ6ImZvdWNhdXQiLGdpbnpidXJnNDoiZ2luemJ1cmc0IixnaW56YnVyZzU6ImdpbnpidXJnNSIsZ2luemJ1cmc2OiJnaW56YnVyZzYiLGdpbnpidXJnODoiZ2luemJ1cmc4IixnaW56YnVyZzk6ImdpbnpidXJnOSIsZ25vbW9uaWM6Imdub21vbmljIiwiZ3JpbmdvcnRlbiBxdWluY3VuY2lhbCI6ImdyaW5nb3J0ZW5RdWluY3VuY2lhbCIsZ3JpbmdvcnRlbjoiZ3JpbmdvcnRlbiIsZ3V5b3U6Imd1eW91IixoYW1tZXI6ImhhbW1lciIsaGlsbDoiaGlsbCIsaG9tb2xvc2luZToiaG9tb2xvc2luZSIsaHVmbmFnZWw6Imh1Zm5hZ2VsIixoeXBlcmVsbGlwdGljYWw6Imh5cGVyZWxsaXB0aWNhbCIsa2F2cmF5c2tpeTc6ImthdnJheXNraXk3IixsYWdyYW5nZToibGFncmFuZ2UiLGxhcnJpdmVlOiJsYXJyaXZlZSIsbGFza293c2tpOiJsYXNrb3dza2kiLGxveGltdXRoYWw6ImxveGltdXRoYWwiLG1lcmNhdG9yOiJtZXJjYXRvciIsbWlsbGVyOiJtaWxsZXIiLG1vbGx3ZWlkZToibW9sbHdlaWRlIiwibXQgZmxhdCBwb2xhciBwYXJhYm9saWMiOiJtdEZsYXRQb2xhclBhcmFib2xpYyIsIm10IGZsYXQgcG9sYXIgcXVhcnRpYyI6Im10RmxhdFBvbGFyUXVhcnRpYyIsIm10IGZsYXQgcG9sYXIgc2ludXNvaWRhbCI6Im10RmxhdFBvbGFyU2ludXNvaWRhbCIsIm5hdHVyYWwgZWFydGgiOiJuYXR1cmFsRWFydGgiLCJuYXR1cmFsIGVhcnRoMSI6Im5hdHVyYWxFYXJ0aDEiLCJuYXR1cmFsIGVhcnRoMiI6Im5hdHVyYWxFYXJ0aDIiLCJuZWxsIGhhbW1lciI6Im5lbGxIYW1tZXIiLG5pY29sb3NpOiJuaWNvbG9zaSIsb3J0aG9ncmFwaGljOiJvcnRob2dyYXBoaWMiLHBhdHRlcnNvbjoicGF0dGVyc29uIiwicGVpcmNlIHF1aW5jdW5jaWFsIjoicGVpcmNlUXVpbmN1bmNpYWwiLHBvbHljb25pYzoicG9seWNvbmljIiwicmVjdGFuZ3VsYXIgcG9seWNvbmljIjoicmVjdGFuZ3VsYXJQb2x5Y29uaWMiLHJvYmluc29uOiJyb2JpbnNvbiIsc2F0ZWxsaXRlOiJzYXRlbGxpdGUiLCJzaW51IG1vbGx3ZWlkZSI6InNpbnVNb2xsd2VpZGUiLHNpbnVzb2lkYWw6InNpbnVzb2lkYWwiLHN0ZXJlb2dyYXBoaWM6InN0ZXJlb2dyYXBoaWMiLHRpbWVzOiJ0aW1lcyIsInRyYW5zdmVyc2UgbWVyY2F0b3IiOiJ0cmFuc3ZlcnNlTWVyY2F0b3IiLCJ2YW4gZGVyIGdyaW50ZW4iOiJ2YW5EZXJHcmludGVuIiwidmFuIGRlciBncmludGVuMiI6InZhbkRlckdyaW50ZW4yIiwidmFuIGRlciBncmludGVuMyI6InZhbkRlckdyaW50ZW4zIiwidmFuIGRlciBncmludGVuNCI6InZhbkRlckdyaW50ZW40Iix3YWduZXI0OiJ3YWduZXI0Iix3YWduZXI2OiJ3YWduZXI2Iix3aWVjaGVsOiJ3aWVjaGVsIiwid2lua2VsIHRyaXBlbCI6IndpbmtlbDMiLHdpbmtlbDM6IndpbmtlbDMifSxyLmF4ZXNOYW1lcz1bImxvbmF4aXMiLCJsYXRheGlzIl0sci5sb25heGlzU3Bhbj17b3J0aG9ncmFwaGljOjE4MCwiYXppbXV0aGFsIGVxdWFsIGFyZWEiOjM2MCwiYXppbXV0aGFsIGVxdWlkaXN0YW50IjozNjAsImNvbmljIGNvbmZvcm1hbCI6MTgwLGdub21vbmljOjE2MCxzdGVyZW9ncmFwaGljOjE4MCwidHJhbnN2ZXJzZSBtZXJjYXRvciI6MTgwLCIqIjozNjB9LHIubGF0YXhpc1NwYW49eyJjb25pYyBjb25mb3JtYWwiOjE1MCxzdGVyZW9ncmFwaGljOjE3OS41LCIqIjoxODB9LHIuc2NvcGVEZWZhdWx0cz17d29ybGQ6e2xvbmF4aXNSYW5nZTpbLTE4MCwxODBdLGxhdGF4aXNSYW5nZTpbLTkwLDkwXSxwcm9qVHlwZToiZXF1aXJlY3Rhbmd1bGFyIixwcm9qUm90YXRlOlswLDAsMF19LHVzYTp7bG9uYXhpc1JhbmdlOlstMTgwLC01MF0sbGF0YXhpc1JhbmdlOlsxNSw4MF0scHJvalR5cGU6ImFsYmVycyB1c2EifSxldXJvcGU6e2xvbmF4aXNSYW5nZTpbLTMwLDYwXSxsYXRheGlzUmFuZ2U6WzMwLDg1XSxwcm9qVHlwZToiY29uaWMgY29uZm9ybWFsIixwcm9qUm90YXRlOlsxNSwwLDBdLHByb2pQYXJhbGxlbHM6WzAsNjBdfSxhc2lhOntsb25heGlzUmFuZ2U6WzIyLDE2MF0sbGF0YXhpc1JhbmdlOlstMTUsNTVdLHByb2pUeXBlOiJtZXJjYXRvciIscHJvalJvdGF0ZTpbMCwwLDBdfSxhZnJpY2E6e2xvbmF4aXNSYW5nZTpbLTMwLDYwXSxsYXRheGlzUmFuZ2U6Wy00MCw0MF0scHJvalR5cGU6Im1lcmNhdG9yIixwcm9qUm90YXRlOlswLDAsMF19LCJub3J0aCBhbWVyaWNhIjp7bG9uYXhpc1JhbmdlOlstMTgwLC00NV0sbGF0YXhpc1JhbmdlOls1LDg1XSxwcm9qVHlwZToiY29uaWMgY29uZm9ybWFsIixwcm9qUm90YXRlOlstMTAwLDAsMF0scHJvalBhcmFsbGVsczpbMjkuNSw0NS41XX0sInNvdXRoIGFtZXJpY2EiOntsb25heGlzUmFuZ2U6Wy0xMDAsLTMwXSxsYXRheGlzUmFuZ2U6Wy02MCwxNV0scHJvalR5cGU6Im1lcmNhdG9yIixwcm9qUm90YXRlOlswLDAsMF19fSxyLmNsaXBQYWQ9LjAwMSxyLnByZWNpc2lvbj0uMSxyLmxhbmRDb2xvcj0iI0YwREM4MiIsci53YXRlckNvbG9yPSIjMzM5OUZGIixyLmxvY2F0aW9ubW9kZVRvTGF5ZXI9eyJJU08tMyI6ImNvdW50cmllcyIsIlVTQS1zdGF0ZXMiOiJzdWJ1bml0cyIsImNvdW50cnkgbmFtZXMiOiJjb3VudHJpZXMifSxyLnNwaGVyZVNWRz17dHlwZToiU3BoZXJlIn0sci5maWxsTGF5ZXJzPXtvY2VhbjoxLGxhbmQ6MSxsYWtlczoxfSxyLmxpbmVMYXllcnM9e3N1YnVuaXRzOjEsY291bnRyaWVzOjEsY29hc3RsaW5lczoxLHJpdmVyczoxLGZyYW1lOjF9LHIubGF5ZXJzPVsiYmciLCJvY2VhbiIsImxhbmQiLCJsYWtlcyIsInN1YnVuaXRzIiwiY291bnRyaWVzIiwiY29hc3RsaW5lcyIsInJpdmVycyIsImxhdGF4aXMiLCJsb25heGlzIiwiZnJhbWUiLCJiYWNrcGxvdCIsImZyb250cGxvdCJdLHIubGF5ZXJzRm9yQ2hvcm9wbGV0aD1bImJnIiwib2NlYW4iLCJsYW5kIiwic3VidW5pdHMiLCJjb3VudHJpZXMiLCJjb2FzdGxpbmVzIiwibGF0YXhpcyIsImxvbmF4aXMiLCJmcmFtZSIsImJhY2twbG90Iiwicml2ZXJzIiwibGFrZXMiLCJmcm9udHBsb3QiXSxyLmxheWVyTmFtZVRvQWRqZWN0aXZlPXtvY2Vhbjoib2NlYW4iLGxhbmQ6ImxhbmQiLGxha2VzOiJsYWtlIixzdWJ1bml0czoic3VidW5pdCIsY291bnRyaWVzOiJjb3VudHJ5Iixjb2FzdGxpbmVzOiJjb2FzdGxpbmUiLHJpdmVyczoicml2ZXIiLGZyYW1lOiJmcmFtZSJ9fSx7fV0sNTk3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoImQzLWdlbyIpLGE9aS5nZW9QYXRoLG89aS5nZW9EaXN0YW5jZSxzPXQoImQzLWdlby1wcm9qZWN0aW9uIiksbD10KCIuLi8uLi9yZWdpc3RyeSIpLGM9dCgiLi4vLi4vbGliIiksdT1jLnN0clRyYW5zbGF0ZSxmPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxoPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLHA9dCgiLi4vLi4vY29tcG9uZW50cy9meCIpLGQ9dCgiLi4vcGxvdHMiKSxtPXQoIi4uL2NhcnRlc2lhbi9heGVzIiksZz10KCIuLi9jYXJ0ZXNpYW4vYXV0b3JhbmdlIikuZ2V0QXV0b1JhbmdlLHY9dCgiLi4vLi4vY29tcG9uZW50cy9kcmFnZWxlbWVudCIpLHk9dCgiLi4vLi4vY29tcG9uZW50cy9zZWxlY3Rpb25zIikucHJlcFNlbGVjdCx4PXQoIi4uLy4uL2NvbXBvbmVudHMvc2VsZWN0aW9ucyIpLmNsZWFyT3V0bGluZSxiPXQoIi4uLy4uL2NvbXBvbmVudHMvc2VsZWN0aW9ucyIpLnNlbGVjdE9uQ2xpY2ssXz10KCIuL3pvb20iKSx3PXQoIi4vY29uc3RhbnRzIiksVD10KCIuLi8uLi9saWIvZ2VvX2xvY2F0aW9uX3V0aWxzIiksaz10KCIuLi8uLi9saWIvdG9wb2pzb25fdXRpbHMiKSxBPXQoInRvcG9qc29uLWNsaWVudCIpLmZlYXR1cmU7ZnVuY3Rpb24gTSh0KXt0aGlzLmlkPXQuaWQsdGhpcy5ncmFwaERpdj10LmdyYXBoRGl2LHRoaXMuY29udGFpbmVyPXQuY29udGFpbmVyLHRoaXMudG9wb2pzb25VUkw9dC50b3BvanNvblVSTCx0aGlzLmlzU3RhdGljPXQuc3RhdGljUGxvdCx0aGlzLnRvcG9qc29uTmFtZT1udWxsLHRoaXMudG9wb2pzb249bnVsbCx0aGlzLnByb2plY3Rpb249bnVsbCx0aGlzLnNjb3BlPW51bGwsdGhpcy52aWV3SW5pdGlhbD1udWxsLHRoaXMuZml0U2NhbGU9bnVsbCx0aGlzLmJvdW5kcz1udWxsLHRoaXMubWlkUHQ9bnVsbCx0aGlzLmhhc0Nob3JvcGxldGg9ITEsdGhpcy50cmFjZUhhc2g9e30sdGhpcy5sYXllcnM9e30sdGhpcy5iYXNlUGF0aHM9e30sdGhpcy5kYXRhUGF0aHM9e30sdGhpcy5kYXRhUG9pbnRzPXt9LHRoaXMuY2xpcERlZj1udWxsLHRoaXMuY2xpcFJlY3Q9bnVsbCx0aGlzLmJnUmVjdD1udWxsLHRoaXMubWFrZUZyYW1ld29yaygpfXZhciBTPU0ucHJvdG90eXBlO2Z1bmN0aW9uIEUodCxlKXt2YXIgcj13LmNsaXBQYWQsbj10WzBdK3IsaT10WzFdLXIsYT1lWzBdK3Isbz1lWzFdLXI7bj4wJiZpPDAmJihpKz0zNjApO3ZhciBzPShpLW4pLzQ7cmV0dXJue3R5cGU6IlBvbHlnb24iLGNvb3JkaW5hdGVzOltbW24sYV0sW24sb10sW24rcyxvXSxbbisyKnMsb10sW24rMypzLG9dLFtpLG9dLFtpLGFdLFtpLXMsYV0sW2ktMipzLGFdLFtpLTMqcyxhXSxbbixhXV1dfX1lLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBNKHQpfSxTLnBsb3Q9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMsaT1lW3RoaXMuaWRdLGE9W10sbz0hMTtmb3IodmFyIHMgaW4gdy5sYXllck5hbWVUb0FkamVjdGl2ZSlpZigiZnJhbWUiIT09cyYmaVsic2hvdyIrc10pe289ITA7YnJlYWt9Zm9yKHZhciBsPTA7bDx0Lmxlbmd0aDtsKyspaWYodFswXVswXS50cmFjZS5sb2NhdGlvbm1vZGUpe289ITA7YnJlYWt9aWYobyl7dmFyIGM9ay5nZXRUb3BvanNvbk5hbWUoaSk7bnVsbCE9PW4udG9wb2pzb24mJmM9PT1uLnRvcG9qc29uTmFtZXx8KG4udG9wb2pzb25OYW1lPWMsdm9pZCAwPT09UGxvdGx5R2VvQXNzZXRzLnRvcG9qc29uW24udG9wb2pzb25OYW1lXSYmYS5wdXNoKG4uZmV0Y2hUb3BvanNvbigpKSl9YT1hLmNvbmNhdChULmZldGNoVHJhY2VHZW9EYXRhKHQpKSxyLnB1c2gobmV3IFByb21pc2UoKGZ1bmN0aW9uKHIsaSl7UHJvbWlzZS5hbGwoYSkudGhlbigoZnVuY3Rpb24oKXtuLnRvcG9qc29uPVBsb3RseUdlb0Fzc2V0cy50b3BvanNvbltuLnRvcG9qc29uTmFtZV0sbi51cGRhdGUodCxlKSxyKCl9KSkuY2F0Y2goaSl9KSkpfSxTLmZldGNoVG9wb2pzb249ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9ay5nZXRUb3BvanNvblBhdGgodC50b3BvanNvblVSTCx0LnRvcG9qc29uTmFtZSk7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihyLGkpe24uanNvbihlLChmdW5jdGlvbihuLGEpe2lmKG4pcmV0dXJuIDQwND09PW4uc3RhdHVzP2kobmV3IEVycm9yKFsicGxvdGx5LmpzIGNvdWxkIG5vdCBmaW5kIHRvcG9qc29uIGZpbGUgYXQiLGUrIi4iLCJNYWtlIHN1cmUgdGhlICp0b3BvanNvblVSTCogcGxvdCBjb25maWcgb3B0aW9uIiwiaXMgc2V0IHByb3Blcmx5LiJdLmpvaW4oIiAiKSkpOmkobmV3IEVycm9yKFsidW5leHBlY3RlZCBlcnJvciB3aGlsZSBmZXRjaGluZyB0b3BvanNvbiBmaWxlIGF0IixlXS5qb2luKCIgIikpKTtQbG90bHlHZW9Bc3NldHMudG9wb2pzb25bdC50b3BvanNvbk5hbWVdPWEscigpfSkpfSkpfSxTLnVwZGF0ZT1mdW5jdGlvbih0LGUpe3ZhciByPWVbdGhpcy5pZF07dGhpcy5oYXNDaG9yb3BsZXRoPSExO2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dLGE9aVswXS50cmFjZTsiY2hvcm9wbGV0aCI9PT1hLnR5cGUmJih0aGlzLmhhc0Nob3JvcGxldGg9ITApLCEwPT09YS52aXNpYmxlJiZhLl9sZW5ndGg+MCYmYS5fbW9kdWxlLmNhbGNHZW9KU09OKGksZSl9aWYoIXRoaXMudXBkYXRlUHJvamVjdGlvbih0LGUpKXt0aGlzLnZpZXdJbml0aWFsJiZ0aGlzLnNjb3BlPT09ci5zY29wZXx8dGhpcy5zYXZlVmlld0luaXRpYWwociksdGhpcy5zY29wZT1yLnNjb3BlLHRoaXMudXBkYXRlQmFzZUxheWVycyhlLHIpLHRoaXMudXBkYXRlRGltcyhlLHIpLHRoaXMudXBkYXRlRngoZSxyKSxkLmdlbmVyYWxVcGRhdGVQZXJUcmFjZU1vZHVsZSh0aGlzLmdyYXBoRGl2LHRoaXMsdCxyKTt2YXIgbz10aGlzLmxheWVycy5mcm9udHBsb3Quc2VsZWN0KCIuc2NhdHRlcmxheWVyIik7dGhpcy5kYXRhUG9pbnRzLnBvaW50PW8uc2VsZWN0QWxsKCIucG9pbnQiKSx0aGlzLmRhdGFQb2ludHMudGV4dD1vLnNlbGVjdEFsbCgidGV4dCIpLHRoaXMuZGF0YVBhdGhzLmxpbmU9by5zZWxlY3RBbGwoIi5qcy1saW5lIik7dmFyIHM9dGhpcy5sYXllcnMuYmFja3Bsb3Quc2VsZWN0KCIuY2hvcm9wbGV0aGxheWVyIik7dGhpcy5kYXRhUGF0aHMuY2hvcm9wbGV0aD1zLnNlbGVjdEFsbCgicGF0aCIpLHRoaXMucmVuZGVyKCl9fSxTLnVwZGF0ZVByb2plY3Rpb249ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmdyYXBoRGl2LG49ZVt0aGlzLmlkXSxsPWUuX3NpemUsdT1uLmRvbWFpbixmPW4ucHJvamVjdGlvbixoPW4ubG9uYXhpcyxwPW4ubGF0YXhpcyxkPWguX2F4LG09cC5fYXgsdj10aGlzLnByb2plY3Rpb249ZnVuY3Rpb24odCl7dmFyIGU9dC5wcm9qZWN0aW9uLHI9ZS50eXBlLG49dy5wcm9qTmFtZXNbcl07bj0iZ2VvIitjLnRpdGxlQ2FzZShuKTtmb3IodmFyIGw9KGlbbl18fHNbbl0pKCksdT10Ll9pc1NhdGVsbGl0ZT8xODAqTWF0aC5hY29zKDEvZS5kaXN0YW5jZSkvTWF0aC5QSTp0Ll9pc0NsaXBwZWQ/dy5sb25heGlzU3BhbltyXS8yOm51bGwsZj1bImNlbnRlciIsInJvdGF0ZSIsInBhcmFsbGVscyIsImNsaXBFeHRlbnQiXSxoPWZ1bmN0aW9uKHQpe3JldHVybiB0P2w6W119LHA9MDtwPGYubGVuZ3RoO3ArKyl7dmFyIGQ9ZltwXTsiZnVuY3Rpb24iIT10eXBlb2YgbFtkXSYmKGxbZF09aCl9bC5pc0xvbkxhdE92ZXJFZGdlcz1mdW5jdGlvbih0KXtpZihudWxsPT09bCh0KSlyZXR1cm4hMDtpZih1KXt2YXIgZT1sLnJvdGF0ZSgpO3JldHVybiBvKHQsWy1lWzBdLC1lWzFdXSk+dSpNYXRoLlBJLzE4MH1yZXR1cm4hMX0sbC5nZXRQYXRoPWZ1bmN0aW9uKCl7cmV0dXJuIGEoKS5wcm9qZWN0aW9uKGwpfSxsLmdldEJvdW5kcz1mdW5jdGlvbih0KXtyZXR1cm4gbC5nZXRQYXRoKCkuYm91bmRzKHQpfSxsLnByZWNpc2lvbih3LnByZWNpc2lvbiksdC5faXNTYXRlbGxpdGUmJmwudGlsdChlLnRpbHQpLmRpc3RhbmNlKGUuZGlzdGFuY2UpO3UmJmwuY2xpcEFuZ2xlKHUtdy5jbGlwUGFkKTtyZXR1cm4gbH0obikseT1bW2wubCtsLncqdS54WzBdLGwudCtsLmgqKDEtdS55WzFdKV0sW2wubCtsLncqdS54WzFdLGwudCtsLmgqKDEtdS55WzBdKV1dLHg9bi5jZW50ZXJ8fHt9LGI9Zi5yb3RhdGlvbnx8e30sXz1oLnJhbmdlfHxbXSxUPXAucmFuZ2V8fFtdO2lmKG4uZml0Ym91bmRzKXtkLl9sZW5ndGg9eVsxXVswXS15WzBdWzBdLG0uX2xlbmd0aD15WzFdWzFdLXlbMF1bMV0sZC5yYW5nZT1nKHIsZCksbS5yYW5nZT1nKHIsbSk7dmFyIGs9KGQucmFuZ2VbMF0rZC5yYW5nZVsxXSkvMixBPShtLnJhbmdlWzBdK20ucmFuZ2VbMV0pLzI7aWYobi5faXNTY29wZWQpeD17bG9uOmssbGF0OkF9O2Vsc2UgaWYobi5faXNDbGlwcGVkKXt4PXtsb246ayxsYXQ6QX0sYj17bG9uOmssbGF0OkEscm9sbDpiLnJvbGx9O3ZhciBNPWYudHlwZSxTPXcubG9uYXhpc1NwYW5bTV0vMnx8MTgwLEw9dy5sYXRheGlzU3BhbltNXS8yfHw5MDtfPVtrLVMsaytTXSxUPVtBLUwsQStMXX1lbHNlIHg9e2xvbjprLGxhdDpBfSxiPXtsb246ayxsYXQ6Yi5sYXQscm9sbDpiLnJvbGx9fXYuY2VudGVyKFt4Lmxvbi1iLmxvbix4LmxhdC1iLmxhdF0pLnJvdGF0ZShbLWIubG9uLC1iLmxhdCxiLnJvbGxdKS5wYXJhbGxlbHMoZi5wYXJhbGxlbHMpO3ZhciBDPUUoXyxUKTt2LmZpdEV4dGVudCh5LEMpO3ZhciBQPXRoaXMuYm91bmRzPXYuZ2V0Qm91bmRzKEMpLEk9dGhpcy5maXRTY2FsZT12LnNjYWxlKCksTz12LnRyYW5zbGF0ZSgpO2lmKG4uZml0Ym91bmRzKXt2YXIgej12LmdldEJvdW5kcyhFKGQucmFuZ2UsbS5yYW5nZSkpLEQ9TWF0aC5taW4oKFBbMV1bMF0tUFswXVswXSkvKHpbMV1bMF0telswXVswXSksKFBbMV1bMV0tUFswXVsxXSkvKHpbMV1bMV0telswXVsxXSkpO2lzRmluaXRlKEQpP3Yuc2NhbGUoRCpJKTpjLndhcm4oIlNvbWV0aGluZyB3ZW50IHdyb25nIGR1cmluZyIrdGhpcy5pZCsiZml0Ym91bmRzIGNvbXB1dGF0aW9ucy4iKX1lbHNlIHYuc2NhbGUoZi5zY2FsZSpJKTt2YXIgUj10aGlzLm1pZFB0PVsoUFswXVswXStQWzFdWzBdKS8yLChQWzBdWzFdK1BbMV1bMV0pLzJdO2lmKHYudHJhbnNsYXRlKFtPWzBdKyhSWzBdLU9bMF0pLE9bMV0rKFJbMV0tT1sxXSldKS5jbGlwRXh0ZW50KFApLG4uX2lzQWxiZXJzVXNhKXt2YXIgRj12KFt4Lmxvbix4LmxhdF0pLEI9di50cmFuc2xhdGUoKTt2LnRyYW5zbGF0ZShbQlswXS0oRlswXS1CWzBdKSxCWzFdLShGWzFdLUJbMV0pXSl9fSxTLnVwZGF0ZUJhc2VMYXllcnM9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLGk9ci50b3BvanNvbixhPXIubGF5ZXJzLG89ci5iYXNlUGF0aHM7ZnVuY3Rpb24gcyh0KXtyZXR1cm4ibG9uYXhpcyI9PT10fHwibGF0YXhpcyI9PT10fWZ1bmN0aW9uIGwodCl7cmV0dXJuIEJvb2xlYW4ody5saW5lTGF5ZXJzW3RdKX1mdW5jdGlvbiBjKHQpe3JldHVybiBCb29sZWFuKHcuZmlsbExheWVyc1t0XSl9dmFyIHU9KHRoaXMuaGFzQ2hvcm9wbGV0aD93LmxheWVyc0ZvckNob3JvcGxldGg6dy5sYXllcnMpLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIGwodCl8fGModCk/ZVsic2hvdyIrdF06IXModCl8fGVbdF0uc2hvd2dyaWR9KSkscD1yLmZyYW1ld29yay5zZWxlY3RBbGwoIi5sYXllciIpLmRhdGEodSxTdHJpbmcpO3AuZXhpdCgpLmVhY2goKGZ1bmN0aW9uKHQpe2RlbGV0ZSBhW3RdLGRlbGV0ZSBvW3RdLG4uc2VsZWN0KHRoaXMpLnJlbW92ZSgpfSkpLHAuZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsKGZ1bmN0aW9uKHQpe3JldHVybiJsYXllciAiK3R9KSkuZWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9YVt0XT1uLnNlbGVjdCh0aGlzKTsiYmciPT09dD9yLmJnUmVjdD1lLmFwcGVuZCgicmVjdCIpLnN0eWxlKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpOnModCk/b1t0XT1lLmFwcGVuZCgicGF0aCIpLnN0eWxlKCJmaWxsIiwibm9uZSIpOiJiYWNrcGxvdCI9PT10P2UuYXBwZW5kKCJnIikuY2xhc3NlZCgiY2hvcm9wbGV0aGxheWVyIiwhMCk6ImZyb250cGxvdCI9PT10P2UuYXBwZW5kKCJnIikuY2xhc3NlZCgic2NhdHRlcmxheWVyIiwhMCk6bCh0KT9vW3RdPWUuYXBwZW5kKCJwYXRoIikuc3R5bGUoImZpbGwiLCJub25lIikuc3R5bGUoInN0cm9rZS1taXRlcmxpbWl0IiwyKTpjKHQpJiYob1t0XT1lLmFwcGVuZCgicGF0aCIpLnN0eWxlKCJzdHJva2UiLCJub25lIikpfSkpLHAub3JkZXIoKSxwLmVhY2goKGZ1bmN0aW9uKHIpe3ZhciBuPW9bcl0sYT13LmxheWVyTmFtZVRvQWRqZWN0aXZlW3JdOyJmcmFtZSI9PT1yP24uZGF0dW0ody5zcGhlcmVTVkcpOmwocil8fGMocik/bi5kYXR1bShBKGksaS5vYmplY3RzW3JdKSk6cyhyKSYmbi5kYXR1bShmdW5jdGlvbih0LGUscil7dmFyIG4saSxhLG89ZVt0XSxzPXcuc2NvcGVEZWZhdWx0c1tlLnNjb3BlXTsibG9uYXhpcyI9PT10PyhuPXMubG9uYXhpc1JhbmdlLGk9cy5sYXRheGlzUmFuZ2UsYT1mdW5jdGlvbih0LGUpe3JldHVyblt0LGVdfSk6ImxhdGF4aXMiPT09dCYmKG49cy5sYXRheGlzUmFuZ2UsaT1zLmxvbmF4aXNSYW5nZSxhPWZ1bmN0aW9uKHQsZSl7cmV0dXJuW2UsdF19KTt2YXIgbD17dHlwZToibGluZWFyIixyYW5nZTpbblswXSxuWzFdLTFlLTZdLHRpY2swOm8udGljazAsZHRpY2s6by5kdGlja307bS5zZXRDb252ZXJ0KGwscik7dmFyIGM9bS5jYWxjVGlja3MobCk7ZS5pc1Njb3BlZHx8ImxvbmF4aXMiIT09dHx8Yy5wb3AoKTtmb3IodmFyIHU9Yy5sZW5ndGgsZj1uZXcgQXJyYXkodSksaD0wO2g8dTtoKyspZm9yKHZhciBwPWNbaF0ueCxkPWZbaF09W10sZz1pWzBdO2c8aVsxXSsyLjU7Zys9Mi41KWQucHVzaChhKHAsZykpO3JldHVybnt0eXBlOiJNdWx0aUxpbmVTdHJpbmciLGNvb3JkaW5hdGVzOmZ9fShyLGUsdCkpLmNhbGwoZi5zdHJva2UsZVtyXS5ncmlkY29sb3IpLmNhbGwoaC5kYXNoTGluZSxlW3JdLmdyaWRkYXNoLGVbcl0uZ3JpZHdpZHRoKSxsKHIpP24uY2FsbChmLnN0cm9rZSxlW2ErImNvbG9yIl0pLmNhbGwoaC5kYXNoTGluZSwiIixlW2ErIndpZHRoIl0pOmMocikmJm4uY2FsbChmLmZpbGwsZVthKyJjb2xvciJdKX0pKX0sUy51cGRhdGVEaW1zPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5ib3VuZHMsbj0oZS5mcmFtZXdpZHRofHwwKS8yLGk9clswXVswXS1uLGE9clswXVsxXS1uLG89clsxXVswXS1pK24scz1yWzFdWzFdLWErbjtoLnNldFJlY3QodGhpcy5jbGlwUmVjdCxpLGEsbyxzKSx0aGlzLmJnUmVjdC5jYWxsKGguc2V0UmVjdCxpLGEsbyxzKS5jYWxsKGYuZmlsbCxlLmJnY29sb3IpLHRoaXMueGF4aXMuX29mZnNldD1pLHRoaXMueGF4aXMuX2xlbmd0aD1vLHRoaXMueWF4aXMuX29mZnNldD1hLHRoaXMueWF4aXMuX2xlbmd0aD1zfSxTLnVwZGF0ZUZ4PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcyxpPXIuZ3JhcGhEaXYsYT1yLmJnUmVjdCxvPXQuZHJhZ21vZGUscz10LmNsaWNrbW9kZTtpZighci5pc1N0YXRpYyl7dmFyIHU9e2VsZW1lbnQ6ci5iZ1JlY3Qubm9kZSgpLGdkOmkscGxvdGluZm86e2lkOnIuaWQseGF4aXM6ci54YXhpcyx5YXhpczpyLnlheGlzLGZpbGxSYW5nZUl0ZW1zOmZ1bmN0aW9uKHQsZSl7ZS5pc1JlY3Q/KHQucmFuZ2U9e30pW3IuaWRdPVtmKFtlLnhtaW4sZS55bWluXSksZihbZS54bWF4LGUueW1heF0pXToodC5sYXNzb1BvaW50cz17fSlbci5pZF09ZS5tYXAoZil9fSx4YXhlczpbci54YXhpc10seWF4ZXM6W3IueWF4aXNdLHN1YnBsb3Q6ci5pZCxjbGlja0ZuOmZ1bmN0aW9uKHQpezI9PT10JiZ4KGkpfX07InBhbiI9PT1vPyhhLm5vZGUoKS5vbm1vdXNlZG93bj1udWxsLGEuY2FsbChfKHIsZSkpLGEub24oImRibGNsaWNrLnpvb20iLChmdW5jdGlvbigpe3ZhciB0PXIudmlld0luaXRpYWwsZT17fTtmb3IodmFyIG4gaW4gdCllW3IuaWQrIi4iK25dPXRbbl07bC5jYWxsKCJfZ3VpUmVsYXlvdXQiLGksZSksaS5lbWl0KCJwbG90bHlfZG91YmxlY2xpY2siLG51bGwpfSkpLGkuX2NvbnRleHQuX3Njcm9sbFpvb20uZ2VvfHxhLm9uKCJ3aGVlbC56b29tIixudWxsKSk6InNlbGVjdCIhPT1vJiYibGFzc28iIT09b3x8KGEub24oIi56b29tIixudWxsKSx1LnByZXBGbj1mdW5jdGlvbih0LGUscil7eSh0LGUscix1LG8pfSx2LmluaXQodSkpLGEub24oIm1vdXNlbW92ZSIsKGZ1bmN0aW9uKCl7dmFyIHQ9ci5wcm9qZWN0aW9uLmludmVydChjLmdldFBvc2l0aW9uRnJvbUQzRXZlbnQoKSk7aWYoIXQpcmV0dXJuIHYudW5ob3ZlcihpLG4uZXZlbnQpO3IueGF4aXMucDJjPWZ1bmN0aW9uKCl7cmV0dXJuIHRbMF19LHIueWF4aXMucDJjPWZ1bmN0aW9uKCl7cmV0dXJuIHRbMV19LHAuaG92ZXIoaSxuLmV2ZW50LHIuaWQpfSkpLGEub24oIm1vdXNlb3V0IiwoZnVuY3Rpb24oKXtpLl9kcmFnZ2luZ3x8di51bmhvdmVyKGksbi5ldmVudCl9KSksYS5vbigiY2xpY2siLChmdW5jdGlvbigpeyJzZWxlY3QiIT09byYmImxhc3NvIiE9PW8mJihzLmluZGV4T2YoInNlbGVjdCIpPi0xJiZiKG4uZXZlbnQsaSxbci54YXhpc10sW3IueWF4aXNdLHIuaWQsdSkscy5pbmRleE9mKCJldmVudCIpPi0xJiZwLmNsaWNrKGksbi5ldmVudCkpfSkpfWZ1bmN0aW9uIGYodCl7cmV0dXJuIHIucHJvamVjdGlvbi5pbnZlcnQoW3RbMF0rci54YXhpcy5fb2Zmc2V0LHRbMV0rci55YXhpcy5fb2Zmc2V0XSl9fSxTLm1ha2VGcmFtZXdvcms9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dC5ncmFwaERpdixyPWUuX2Z1bGxMYXlvdXQsaT0iY2xpcCIrci5fdWlkK3QuaWQ7dC5jbGlwRGVmPXIuX2NsaXBzLmFwcGVuZCgiY2xpcFBhdGgiKS5hdHRyKCJpZCIsaSksdC5jbGlwUmVjdD10LmNsaXBEZWYuYXBwZW5kKCJyZWN0IiksdC5mcmFtZXdvcms9bi5zZWxlY3QodC5jb250YWluZXIpLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIiwiZ2VvICIrdC5pZCkuY2FsbChoLnNldENsaXBVcmwsaSxlKSx0LnByb2plY3Q9ZnVuY3Rpb24oZSl7dmFyIHI9dC5wcm9qZWN0aW9uKGUpO3JldHVybiByP1tyWzBdLXQueGF4aXMuX29mZnNldCxyWzFdLXQueWF4aXMuX29mZnNldF06W251bGwsbnVsbF19LHQueGF4aXM9e19pZDoieCIsYzJwOmZ1bmN0aW9uKGUpe3JldHVybiB0LnByb2plY3QoZSlbMF19fSx0LnlheGlzPXtfaWQ6InkiLGMycDpmdW5jdGlvbihlKXtyZXR1cm4gdC5wcm9qZWN0KGUpWzFdfX0sdC5tb2NrQXhpcz17dHlwZToibGluZWFyIixzaG93ZXhwb25lbnQ6ImFsbCIsZXhwb25lbnRmb3JtYXQ6IkIifSxtLnNldENvbnZlcnQodC5tb2NrQXhpcyxyKX0sUy5zYXZlVmlld0luaXRpYWw9ZnVuY3Rpb24odCl7dmFyIGUscj10LmNlbnRlcnx8e30sbj10LnByb2plY3Rpb24saT1uLnJvdGF0aW9ufHx7fTt0aGlzLnZpZXdJbml0aWFsPXtmaXRib3VuZHM6dC5maXRib3VuZHMsInByb2plY3Rpb24uc2NhbGUiOm4uc2NhbGV9LGU9dC5faXNTY29wZWQ/eyJjZW50ZXIubG9uIjpyLmxvbiwiY2VudGVyLmxhdCI6ci5sYXR9OnQuX2lzQ2xpcHBlZD97InByb2plY3Rpb24ucm90YXRpb24ubG9uIjppLmxvbiwicHJvamVjdGlvbi5yb3RhdGlvbi5sYXQiOmkubGF0fTp7ImNlbnRlci5sb24iOnIubG9uLCJjZW50ZXIubGF0IjpyLmxhdCwicHJvamVjdGlvbi5yb3RhdGlvbi5sb24iOmkubG9ufSxjLmV4dGVuZEZsYXQodGhpcy52aWV3SW5pdGlhbCxlKX0sUy5yZW5kZXI9ZnVuY3Rpb24oKXt2YXIgdCxlPXRoaXMucHJvamVjdGlvbixyPWUuZ2V0UGF0aCgpO2Z1bmN0aW9uIG4odCl7dmFyIHI9ZSh0LmxvbmxhdCk7cmV0dXJuIHI/dShyWzBdLHJbMV0pOm51bGx9ZnVuY3Rpb24gaSh0KXtyZXR1cm4gZS5pc0xvbkxhdE92ZXJFZGdlcyh0LmxvbmxhdCk/Im5vbmUiOm51bGx9Zm9yKHQgaW4gdGhpcy5iYXNlUGF0aHMpdGhpcy5iYXNlUGF0aHNbdF0uYXR0cigiZCIscik7Zm9yKHQgaW4gdGhpcy5kYXRhUGF0aHMpdGhpcy5kYXRhUGF0aHNbdF0uYXR0cigiZCIsKGZ1bmN0aW9uKHQpe3JldHVybiByKHQuZ2VvanNvbil9KSk7Zm9yKHQgaW4gdGhpcy5kYXRhUG9pbnRzKXRoaXMuZGF0YVBvaW50c1t0XS5hdHRyKCJkaXNwbGF5IixpKS5hdHRyKCJ0cmFuc2Zvcm0iLG4pfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjozNjcsIi4uLy4uL2NvbXBvbmVudHMvZHJhZ2VsZW1lbnQiOjM4NiwiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjozODksIi4uLy4uL2NvbXBvbmVudHMvZngiOjQwNywiLi4vLi4vY29tcG9uZW50cy9zZWxlY3Rpb25zIjo0NTUsIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9saWIvZ2VvX2xvY2F0aW9uX3V0aWxzIjo1MDgsIi4uLy4uL2xpYi90b3BvanNvbl91dGlscyI6NTQ0LCIuLi8uLi9yZWdpc3RyeSI6NjQ3LCIuLi9jYXJ0ZXNpYW4vYXV0b3JhbmdlIjo1NjUsIi4uL2NhcnRlc2lhbi9heGVzIjo1NjYsIi4uL3Bsb3RzIjo2MjgsIi4vY29uc3RhbnRzIjo1OTYsIi4vem9vbSI6NjAxLCJAcGxvdGx5L2QzIjo1OCwiZDMtZ2VvIjoxMTQsImQzLWdlby1wcm9qZWN0aW9uIjoxMTMsInRvcG9qc29uLWNsaWVudCI6MzE2fV0sNTk4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2dldF9kYXRhIikuZ2V0U3VicGxvdENhbGNEYXRhLGk9dCgiLi4vLi4vbGliIikuY291bnRlclJlZ2V4LGE9dCgiLi9nZW8iKSxvPSJnZW8iLHM9aShvKSxsPXt9O2wuZ2VvPXt2YWxUeXBlOiJzdWJwbG90aWQiLGRmbHQ6byxlZGl0VHlwZToiY2FsYyJ9LGUuZXhwb3J0cz17YXR0cjpvLG5hbWU6byxpZFJvb3Q6byxpZFJlZ2V4OnMsYXR0clJlZ2V4OnMsYXR0cmlidXRlczpsLGxheW91dEF0dHJpYnV0ZXM6dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpLHN1cHBseUxheW91dERlZmF1bHRzOnQoIi4vbGF5b3V0X2RlZmF1bHRzIikscGxvdDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dC5fZnVsbExheW91dCxyPXQuY2FsY2RhdGEsaT1lLl9zdWJwbG90cy5nZW8scz0wO3M8aS5sZW5ndGg7cysrKXt2YXIgbD1pW3NdLGM9bihyLG8sbCksdT1lW2xdLl9zdWJwbG90O3V8fCh1PWEoe2lkOmwsZ3JhcGhEaXY6dCxjb250YWluZXI6ZS5fZ2VvbGF5ZXIubm9kZSgpLHRvcG9qc29uVVJMOnQuX2NvbnRleHQudG9wb2pzb25VUkwsc3RhdGljUGxvdDp0Ll9jb250ZXh0LnN0YXRpY1Bsb3R9KSxlW2xdLl9zdWJwbG90PXUpLHUucGxvdChjLGUsdC5fcHJvbWlzZXMpfX0sdXBkYXRlRng6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQuX2Z1bGxMYXlvdXQscj1lLl9zdWJwbG90cy5nZW8sbj0wO248ci5sZW5ndGg7bisrKXt2YXIgaT1lW3Jbbl1dO2kuX3N1YnBsb3QudXBkYXRlRngoZSxpKX19LGNsZWFuOmZ1bmN0aW9uKHQsZSxyLG4pe2Zvcih2YXIgaT1uLl9zdWJwbG90cy5nZW98fFtdLGE9MDthPGkubGVuZ3RoO2ErKyl7dmFyIG89aVthXSxzPW5bb10uX3N1YnBsb3Q7IWVbb10mJnMmJihzLmZyYW1ld29yay5yZW1vdmUoKSxzLmNsaXBEZWYucmVtb3ZlKCkpfX19fSx7Ii4uLy4uL2xpYiI6NTE1LCIuLi8uLi9wbG90cy9nZXRfZGF0YSI6NjAyLCIuL2dlbyI6NTk3LCIuL2xheW91dF9hdHRyaWJ1dGVzIjo1OTksIi4vbGF5b3V0X2RlZmF1bHRzIjo2MDB9XSw1OTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIiksaT10KCIuLi9kb21haW4iKS5hdHRyaWJ1dGVzLGE9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nL2F0dHJpYnV0ZXMiKS5kYXNoLG89dCgiLi9jb25zdGFudHMiKSxzPXQoIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiKS5vdmVycmlkZUFsbCxsPXQoIi4uLy4uL2xpYi9zb3J0X29iamVjdF9rZXlzIiksYz17cmFuZ2U6e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGl0ZW1zOlt7dmFsVHlwZToibnVtYmVyIn0se3ZhbFR5cGU6Im51bWJlciJ9XX0sc2hvd2dyaWQ6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LHRpY2swOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MH0sZHRpY2s6e3ZhbFR5cGU6Im51bWJlciJ9LGdyaWRjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6bi5saWdodExpbmV9LGdyaWR3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjF9LGdyaWRkYXNoOmF9OyhlLmV4cG9ydHM9cyh7ZG9tYWluOmkoe25hbWU6ImdlbyJ9LHt9KSxmaXRib3VuZHM6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbITEsImxvY2F0aW9ucyIsImdlb2pzb24iXSxkZmx0OiExLGVkaXRUeXBlOiJwbG90In0scmVzb2x1dGlvbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsxMTAsNTBdLGRmbHQ6MTEwLGNvZXJjZU51bWJlcjohMH0sc2NvcGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpsKG8uc2NvcGVEZWZhdWx0cyksZGZsdDoid29ybGQifSxwcm9qZWN0aW9uOnt0eXBlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6bChvLnByb2pOYW1lcyl9LHJvdGF0aW9uOntsb246e3ZhbFR5cGU6Im51bWJlciJ9LGxhdDp7dmFsVHlwZToibnVtYmVyIn0scm9sbDp7dmFsVHlwZToibnVtYmVyIn19LHRpbHQ6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDowfSxkaXN0YW5jZTp7dmFsVHlwZToibnVtYmVyIixtaW46MS4wMDEsZGZsdDoyfSxwYXJhbGxlbHM6e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGl0ZW1zOlt7dmFsVHlwZToibnVtYmVyIn0se3ZhbFR5cGU6Im51bWJlciJ9XX0sc2NhbGU6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxfX0sY2VudGVyOntsb246e3ZhbFR5cGU6Im51bWJlciJ9LGxhdDp7dmFsVHlwZToibnVtYmVyIn19LHZpc2libGU6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITB9LHNob3djb2FzdGxpbmVzOnt2YWxUeXBlOiJib29sZWFuIn0sY29hc3RsaW5lY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0Om4uZGVmYXVsdExpbmV9LGNvYXN0bGluZXdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MX0sc2hvd2xhbmQ6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LGxhbmRjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6by5sYW5kQ29sb3J9LHNob3dvY2Vhbjp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0sb2NlYW5jb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6by53YXRlckNvbG9yfSxzaG93bGFrZXM6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LGxha2Vjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6by53YXRlckNvbG9yfSxzaG93cml2ZXJzOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxyaXZlcmNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpvLndhdGVyQ29sb3J9LHJpdmVyd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxfSxzaG93Y291bnRyaWVzOnt2YWxUeXBlOiJib29sZWFuIn0sY291bnRyeWNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpuLmRlZmF1bHRMaW5lfSxjb3VudHJ5d2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxfSxzaG93c3VidW5pdHM6e3ZhbFR5cGU6ImJvb2xlYW4ifSxzdWJ1bml0Y29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0Om4uZGVmYXVsdExpbmV9LHN1YnVuaXR3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjF9LHNob3dmcmFtZTp7dmFsVHlwZToiYm9vbGVhbiJ9LGZyYW1lY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0Om4uZGVmYXVsdExpbmV9LGZyYW1ld2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxfSxiZ2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpuLmJhY2tncm91bmR9LGxvbmF4aXM6YyxsYXRheGlzOmN9LCJwbG90IiwiZnJvbS1yb290IikpLnVpcmV2aXNpb249e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6Im5vbmUifX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yL2F0dHJpYnV0ZXMiOjM2NiwiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nL2F0dHJpYnV0ZXMiOjM4OCwiLi4vLi4vbGliL3NvcnRfb2JqZWN0X2tleXMiOjUzOCwiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyI6NTQ4LCIuLi9kb21haW4iOjU5MywiLi9jb25zdGFudHMiOjU5Nn1dLDYwMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uL3N1YnBsb3RfZGVmYXVsdHMiKSxhPXQoIi4uL2dldF9kYXRhIikuZ2V0U3VicGxvdERhdGEsbz10KCIuL2NvbnN0YW50cyIpLHM9dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpLGw9by5heGVzTmFtZXM7ZnVuY3Rpb24gYyh0LGUscixpKXt2YXIgcz1hKGkuZnVsbERhdGEsImdlbyIsaS5pZCkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5fZXhwYW5kZWRJbmRleH0pKSxjPXIoInJlc29sdXRpb24iKSx1PXIoInNjb3BlIiksZj1vLnNjb3BlRGVmYXVsdHNbdV0saD1yKCJwcm9qZWN0aW9uLnR5cGUiLGYucHJvalR5cGUpLHA9ZS5faXNBbGJlcnNVc2E9ImFsYmVycyB1c2EiPT09aDtwJiYodT1lLnNjb3BlPSJ1c2EiKTt2YXIgZD1lLl9pc1Njb3BlZD0id29ybGQiIT09dSxtPWUuX2lzU2F0ZWxsaXRlPSJzYXRlbGxpdGUiPT09aCxnPWUuX2lzQ29uaWM9LTEhPT1oLmluZGV4T2YoImNvbmljIil8fCJhbGJlcnMiPT09aCx2PWUuX2lzQ2xpcHBlZD0hIW8ubG9uYXhpc1NwYW5baF07aWYoITE9PT10LnZpc2libGUpe3ZhciB5PW4uZXh0ZW5kRGVlcCh7fSxlLl90ZW1wbGF0ZSk7eS5zaG93Y29hc3RsaW5lcz0hMSx5LnNob3djb3VudHJpZXM9ITEseS5zaG93ZnJhbWU9ITEseS5zaG93bGFrZXM9ITEseS5zaG93bGFuZD0hMSx5LnNob3dvY2Vhbj0hMSx5LnNob3dyaXZlcnM9ITEseS5zaG93c3VidW5pdHM9ITEseS5sb25heGlzJiYoeS5sb25heGlzLnNob3dncmlkPSExKSx5LmxhdGF4aXMmJih5LmxhdGF4aXMuc2hvd2dyaWQ9ITEpLGUuX3RlbXBsYXRlPXl9Zm9yKHZhciB4PXIoInZpc2libGUiKSxiPTA7YjxsLmxlbmd0aDtiKyspe3ZhciBfLHc9bFtiXSxUPVszMCwxMF1bYl07aWYoZClfPWZbdysiUmFuZ2UiXTtlbHNle3ZhciBrPW9bdysiU3BhbiJdLEE9KGtbaF18fGtbIioiXSkvMixNPXIoInByb2plY3Rpb24ucm90YXRpb24uIit3LnN1YnN0cigwLDMpLGYucHJvalJvdGF0ZVtiXSk7Xz1bTS1BLE0rQV19dmFyIFM9cih3KyIucmFuZ2UiLF8pO3IodysiLnRpY2swIikscih3KyIuZHRpY2siLFQpLHIodysiLnNob3dncmlkIiwhIXgmJnZvaWQgMCkmJihyKHcrIi5ncmlkY29sb3IiKSxyKHcrIi5ncmlkd2lkdGgiKSxyKHcrIi5ncmlkZGFzaCIpKSxlW3ddLl9heD17dHlwZToibGluZWFyIixfaWQ6dy5zbGljZSgwLDMpLF90cmFjZUluZGljZXM6cyxzZXRTY2FsZTpuLmlkZW50aXR5LGMybDpuLmlkZW50aXR5LHIybDpuLmlkZW50aXR5LGF1dG9yYW5nZTohMCxyYW5nZTpTLnNsaWNlKCksX206MSxfaW5wdXQ6e319fXZhciBFPWUubG9uYXhpcy5yYW5nZSxMPWUubGF0YXhpcy5yYW5nZSxDPUVbMF0sUD1FWzFdO0M+MCYmUDwwJiYoUCs9MzYwKTt2YXIgSSxPLHosRD0oQytQKS8yO2lmKCFwKXt2YXIgUj1kP2YucHJvalJvdGF0ZTpbRCwwLDBdO0k9cigicHJvamVjdGlvbi5yb3RhdGlvbi5sb24iLFJbMF0pLHIoInByb2plY3Rpb24ucm90YXRpb24ubGF0IixSWzFdKSxyKCJwcm9qZWN0aW9uLnJvdGF0aW9uLnJvbGwiLFJbMl0pLHIoInNob3djb2FzdGxpbmVzIiwhZCYmeCkmJihyKCJjb2FzdGxpbmVjb2xvciIpLHIoImNvYXN0bGluZXdpZHRoIikpLHIoInNob3dvY2VhbiIsISF4JiZ2b2lkIDApJiZyKCJvY2VhbmNvbG9yIil9KHA/KE89LTk2LjYsej0zOC43KTooTz1kP0Q6SSx6PShMWzBdK0xbMV0pLzIpLHIoImNlbnRlci5sb24iLE8pLHIoImNlbnRlci5sYXQiLHopLG0mJihyKCJwcm9qZWN0aW9uLnRpbHQiKSxyKCJwcm9qZWN0aW9uLmRpc3RhbmNlIikpLGcpJiZyKCJwcm9qZWN0aW9uLnBhcmFsbGVscyIsZi5wcm9qUGFyYWxsZWxzfHxbMCw2MF0pO3IoInByb2plY3Rpb24uc2NhbGUiKSxyKCJzaG93bGFuZCIsISF4JiZ2b2lkIDApJiZyKCJsYW5kY29sb3IiKSxyKCJzaG93bGFrZXMiLCEheCYmdm9pZCAwKSYmcigibGFrZWNvbG9yIikscigic2hvd3JpdmVycyIsISF4JiZ2b2lkIDApJiYocigicml2ZXJjb2xvciIpLHIoInJpdmVyd2lkdGgiKSkscigic2hvd2NvdW50cmllcyIsZCYmInVzYSIhPT11JiZ4KSYmKHIoImNvdW50cnljb2xvciIpLHIoImNvdW50cnl3aWR0aCIpKSwoInVzYSI9PT11fHwibm9ydGggYW1lcmljYSI9PT11JiY1MD09PWMpJiYocigic2hvd3N1YnVuaXRzIix4KSxyKCJzdWJ1bml0Y29sb3IiKSxyKCJzdWJ1bml0d2lkdGgiKSksZHx8cigic2hvd2ZyYW1lIix4KSYmKHIoImZyYW1lY29sb3IiKSxyKCJmcmFtZXdpZHRoIikpLHIoImJnY29sb3IiKSxyKCJmaXRib3VuZHMiKSYmKGRlbGV0ZSBlLnByb2plY3Rpb24uc2NhbGUsZD8oZGVsZXRlIGUuY2VudGVyLmxvbixkZWxldGUgZS5jZW50ZXIubGF0KTp2PyhkZWxldGUgZS5jZW50ZXIubG9uLGRlbGV0ZSBlLmNlbnRlci5sYXQsZGVsZXRlIGUucHJvamVjdGlvbi5yb3RhdGlvbi5sb24sZGVsZXRlIGUucHJvamVjdGlvbi5yb3RhdGlvbi5sYXQsZGVsZXRlIGUubG9uYXhpcy5yYW5nZSxkZWxldGUgZS5sYXRheGlzLnJhbmdlKTooZGVsZXRlIGUuY2VudGVyLmxvbixkZWxldGUgZS5jZW50ZXIubGF0LGRlbGV0ZSBlLnByb2plY3Rpb24ucm90YXRpb24ubG9uKSl9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtpKHQsZSxyLHt0eXBlOiJnZW8iLGF0dHJpYnV0ZXM6cyxoYW5kbGVEZWZhdWx0czpjLGZ1bGxEYXRhOnIscGFydGl0aW9uOiJ5In0pfX0seyIuLi8uLi9saWIiOjUxNSwiLi4vZ2V0X2RhdGEiOjYwMiwiLi4vc3VicGxvdF9kZWZhdWx0cyI6NjQxLCIuL2NvbnN0YW50cyI6NTk2LCIuL2xheW91dF9hdHRyaWJ1dGVzIjo1OTl9XSw2MDE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9yZWdpc3RyeSIpLG89TWF0aC5QSS8xODAscz0xODAvTWF0aC5QSSxsPXtjdXJzb3I6InBvaW50ZXIifSxjPXtjdXJzb3I6ImF1dG8ifTtmdW5jdGlvbiB1KHQsZSl7cmV0dXJuIG4uYmVoYXZpb3Iuem9vbSgpLnRyYW5zbGF0ZShlLnRyYW5zbGF0ZSgpKS5zY2FsZShlLnNjYWxlKCkpfWZ1bmN0aW9uIGYodCxlLHIpe3ZhciBuPXQuaWQsbz10LmdyYXBoRGl2LHM9by5sYXlvdXQsbD1zW25dLGM9by5fZnVsbExheW91dCx1PWNbbl0sZj17fSxoPXt9O2Z1bmN0aW9uIHAodCxlKXtmW24rIi4iK3RdPWkubmVzdGVkUHJvcGVydHkobCx0KS5nZXQoKSxhLmNhbGwoIl9zdG9yZURpcmVjdEdVSUVkaXQiLHMsYy5fcHJlR1VJLGYpO3ZhciByPWkubmVzdGVkUHJvcGVydHkodSx0KTtyLmdldCgpIT09ZSYmKHIuc2V0KGUpLGkubmVzdGVkUHJvcGVydHkobCx0KS5zZXQoZSksaFtuKyIuIit0XT1lKX1yKHApLHAoInByb2plY3Rpb24uc2NhbGUiLGUuc2NhbGUoKS90LmZpdFNjYWxlKSxwKCJmaXRib3VuZHMiLCExKSxvLmVtaXQoInBsb3RseV9yZWxheW91dCIsaCl9ZnVuY3Rpb24gaCh0LGUpe3ZhciByPXUoMCxlKTtmdW5jdGlvbiBpKHIpe3ZhciBuPWUuaW52ZXJ0KHQubWlkUHQpO3IoImNlbnRlci5sb24iLG5bMF0pLHIoImNlbnRlci5sYXQiLG5bMV0pfXJldHVybiByLm9uKCJ6b29tc3RhcnQiLChmdW5jdGlvbigpe24uc2VsZWN0KHRoaXMpLnN0eWxlKGwpfSkpLm9uKCJ6b29tIiwoZnVuY3Rpb24oKXtlLnNjYWxlKG4uZXZlbnQuc2NhbGUpLnRyYW5zbGF0ZShuLmV2ZW50LnRyYW5zbGF0ZSksdC5yZW5kZXIoKTt2YXIgcj1lLmludmVydCh0Lm1pZFB0KTt0LmdyYXBoRGl2LmVtaXQoInBsb3RseV9yZWxheW91dGluZyIseyJnZW8ucHJvamVjdGlvbi5zY2FsZSI6ZS5zY2FsZSgpL3QuZml0U2NhbGUsImdlby5jZW50ZXIubG9uIjpyWzBdLCJnZW8uY2VudGVyLmxhdCI6clsxXX0pfSkpLm9uKCJ6b29tZW5kIiwoZnVuY3Rpb24oKXtuLnNlbGVjdCh0aGlzKS5zdHlsZShjKSxmKHQsZSxpKX0pKSxyfWZ1bmN0aW9uIHAodCxlKXt2YXIgcixpLGEsbyxzLGgscCxkLG0sZz11KDAsZSk7ZnVuY3Rpb24gdih0KXtyZXR1cm4gZS5pbnZlcnQodCl9ZnVuY3Rpb24geShyKXt2YXIgbj1lLnJvdGF0ZSgpLGk9ZS5pbnZlcnQodC5taWRQdCk7cigicHJvamVjdGlvbi5yb3RhdGlvbi5sb24iLC1uWzBdKSxyKCJjZW50ZXIubG9uIixpWzBdKSxyKCJjZW50ZXIubGF0IixpWzFdKX1yZXR1cm4gZy5vbigiem9vbXN0YXJ0IiwoZnVuY3Rpb24oKXtuLnNlbGVjdCh0aGlzKS5zdHlsZShsKSxyPW4ubW91c2UodGhpcyksaT1lLnJvdGF0ZSgpLGE9ZS50cmFuc2xhdGUoKSxvPWkscz12KHIpfSkpLm9uKCJ6b29tIiwoZnVuY3Rpb24oKXtpZihoPW4ubW91c2UodGhpcyksZnVuY3Rpb24odCl7dmFyIHI9dih0KTtpZighcilyZXR1cm4hMDt2YXIgbj1lKHIpO3JldHVybiBNYXRoLmFicyhuWzBdLXRbMF0pPjJ8fE1hdGguYWJzKG5bMV0tdFsxXSk+Mn0ocikpcmV0dXJuIGcuc2NhbGUoZS5zY2FsZSgpKSx2b2lkIGcudHJhbnNsYXRlKGUudHJhbnNsYXRlKCkpO2Uuc2NhbGUobi5ldmVudC5zY2FsZSksZS50cmFuc2xhdGUoW2FbMF0sbi5ldmVudC50cmFuc2xhdGVbMV1dKSxzP3YoaCkmJihkPXYoaCkscD1bb1swXSsoZFswXS1zWzBdKSxpWzFdLGlbMl1dLGUucm90YXRlKHApLG89cCk6cz12KHI9aCksbT0hMCx0LnJlbmRlcigpO3ZhciBsPWUucm90YXRlKCksYz1lLmludmVydCh0Lm1pZFB0KTt0LmdyYXBoRGl2LmVtaXQoInBsb3RseV9yZWxheW91dGluZyIseyJnZW8ucHJvamVjdGlvbi5zY2FsZSI6ZS5zY2FsZSgpL3QuZml0U2NhbGUsImdlby5jZW50ZXIubG9uIjpjWzBdLCJnZW8uY2VudGVyLmxhdCI6Y1sxXSwiZ2VvLnByb2plY3Rpb24ucm90YXRpb24ubG9uIjotbFswXX0pfSkpLm9uKCJ6b29tZW5kIiwoZnVuY3Rpb24oKXtuLnNlbGVjdCh0aGlzKS5zdHlsZShjKSxtJiZmKHQsZSx5KX0pKSxnfWZ1bmN0aW9uIGQodCxlKXt2YXIgcixpPXtyOmUucm90YXRlKCksazplLnNjYWxlKCl9LGE9dSgwLGUpLG89ZnVuY3Rpb24odCl7dmFyIGU9MCxyPWFyZ3VtZW50cy5sZW5ndGgsaT1bXTtmb3IoOysrZTxyOylpLnB1c2goYXJndW1lbnRzW2VdKTt2YXIgYT1uLmRpc3BhdGNoLmFwcGx5KG51bGwsaSk7cmV0dXJuIGEub2Y9ZnVuY3Rpb24oZSxyKXtyZXR1cm4gZnVuY3Rpb24oaSl7dmFyIG87dHJ5e289aS5zb3VyY2VFdmVudD1uLmV2ZW50LGkudGFyZ2V0PXQsbi5ldmVudD1pLGFbaS50eXBlXS5hcHBseShlLHIpfWZpbmFsbHl7bi5ldmVudD1vfX19LGF9KGEsInpvb21zdGFydCIsInpvb20iLCJ6b29tZW5kIikscz0wLGg9YS5vbjtmdW5jdGlvbiBwKHQpe3MrK3x8dCh7dHlwZToiem9vbXN0YXJ0In0pfWZ1bmN0aW9uIGQodCl7dCh7dHlwZToiem9vbSJ9KX1mdW5jdGlvbiBiKHQpey0tc3x8dCh7dHlwZToiem9vbWVuZCJ9KX1mdW5jdGlvbiBfKHQpe3ZhciByPWUucm90YXRlKCk7dCgicHJvamVjdGlvbi5yb3RhdGlvbi5sb24iLC1yWzBdKSx0KCJwcm9qZWN0aW9uLnJvdGF0aW9uLmxhdCIsLXJbMV0pfXJldHVybiBhLm9uKCJ6b29tc3RhcnQiLChmdW5jdGlvbigpe24uc2VsZWN0KHRoaXMpLnN0eWxlKGwpO3ZhciB0PW4ubW91c2UodGhpcykscz1lLnJvdGF0ZSgpLGM9cyx1PWUudHJhbnNsYXRlKCksZj1nKHMpO3I9bShlLHQpLGguY2FsbChhLCJ6b29tIiwoZnVuY3Rpb24oKXt2YXIgYT1uLm1vdXNlKHRoaXMpO2lmKGUuc2NhbGUoaS5rPW4uZXZlbnQuc2NhbGUpLHIpe2lmKG0oZSxhKSl7ZS5yb3RhdGUocykudHJhbnNsYXRlKHUpO3ZhciBsPW0oZSxhKSxoPXkocixsKSxwPVQodihmLGgpKSxnPWkucj14KHAscixjKTtpc0Zpbml0ZShnWzBdKSYmaXNGaW5pdGUoZ1sxXSkmJmlzRmluaXRlKGdbMl0pfHwoZz1jKSxlLnJvdGF0ZShnKSxjPWd9fWVsc2Ugcj1tKGUsdD1hKTtkKG8ub2YodGhpcyxhcmd1bWVudHMpKX0pKSxwKG8ub2YodGhpcyxhcmd1bWVudHMpKX0pKS5vbigiem9vbWVuZCIsKGZ1bmN0aW9uKCl7bi5zZWxlY3QodGhpcykuc3R5bGUoYyksaC5jYWxsKGEsInpvb20iLG51bGwpLGIoby5vZih0aGlzLGFyZ3VtZW50cykpLGYodCxlLF8pfSkpLm9uKCJ6b29tLnJlZHJhdyIsKGZ1bmN0aW9uKCl7dC5yZW5kZXIoKTt2YXIgcj1lLnJvdGF0ZSgpO3QuZ3JhcGhEaXYuZW1pdCgicGxvdGx5X3JlbGF5b3V0aW5nIix7Imdlby5wcm9qZWN0aW9uLnNjYWxlIjplLnNjYWxlKCkvdC5maXRTY2FsZSwiZ2VvLnByb2plY3Rpb24ucm90YXRpb24ubG9uIjotclswXSwiZ2VvLnByb2plY3Rpb24ucm90YXRpb24ubGF0IjotclsxXX0pfSkpLG4ucmViaW5kKGEsbywib24iKX1mdW5jdGlvbiBtKHQsZSl7dmFyIHI9dC5pbnZlcnQoZSk7cmV0dXJuIHImJmlzRmluaXRlKHJbMF0pJiZpc0Zpbml0ZShyWzFdKSYmZnVuY3Rpb24odCl7dmFyIGU9dFswXSpvLHI9dFsxXSpvLG49TWF0aC5jb3Mocik7cmV0dXJuW24qTWF0aC5jb3MoZSksbipNYXRoLnNpbihlKSxNYXRoLnNpbihyKV19KHIpfWZ1bmN0aW9uIGcodCl7dmFyIGU9LjUqdFswXSpvLHI9LjUqdFsxXSpvLG49LjUqdFsyXSpvLGk9TWF0aC5zaW4oZSksYT1NYXRoLmNvcyhlKSxzPU1hdGguc2luKHIpLGw9TWF0aC5jb3MociksYz1NYXRoLnNpbihuKSx1PU1hdGguY29zKG4pO3JldHVyblthKmwqdStpKnMqYyxpKmwqdS1hKnMqYyxhKnMqdStpKmwqYyxhKmwqYy1pKnMqdV19ZnVuY3Rpb24gdih0LGUpe3ZhciByPXRbMF0sbj10WzFdLGk9dFsyXSxhPXRbM10sbz1lWzBdLHM9ZVsxXSxsPWVbMl0sYz1lWzNdO3JldHVybltyKm8tbipzLWkqbC1hKmMscipzK24qbytpKmMtYSpsLHIqbC1uKmMraSpvK2EqcyxyKmMrbipsLWkqcythKm9dfWZ1bmN0aW9uIHkodCxlKXtpZih0JiZlKXt2YXIgcj1mdW5jdGlvbih0LGUpe3JldHVyblt0WzFdKmVbMl0tdFsyXSplWzFdLHRbMl0qZVswXS10WzBdKmVbMl0sdFswXSplWzFdLXRbMV0qZVswXV19KHQsZSksbj1NYXRoLnNxcnQoayhyLHIpKSxpPS41Kk1hdGguYWNvcyhNYXRoLm1heCgtMSxNYXRoLm1pbigxLGsodCxlKSkpKSxhPU1hdGguc2luKGkpL247cmV0dXJuIG4mJltNYXRoLmNvcyhpKSxyWzJdKmEsLXJbMV0qYSxyWzBdKmFdfX1mdW5jdGlvbiB4KHQsZSxyKXt2YXIgbj13KGUsMix0WzBdKTtuPXcobiwxLHRbMV0pLG49dyhuLDAsdFsyXS1yWzJdKTt2YXIgaSxhLG89ZVswXSxsPWVbMV0sYz1lWzJdLHU9blswXSxmPW5bMV0saD1uWzJdLHA9TWF0aC5hdGFuMihsLG8pKnMsZD1NYXRoLnNxcnQobypvK2wqbCk7TWF0aC5hYnMoZik+ZD8oYT0oZj4wPzkwOi05MCktcCxpPTApOihhPU1hdGguYXNpbihmL2QpKnMtcCxpPU1hdGguc3FydChkKmQtZipmKSk7dmFyIG09MTgwLWEtMipwLGc9KE1hdGguYXRhbjIoaCx1KS1NYXRoLmF0YW4yKGMsaSkpKnMsdj0oTWF0aC5hdGFuMihoLHUpLU1hdGguYXRhbjIoYywtaSkpKnM7cmV0dXJuIGIoclswXSxyWzFdLGEsZyk8PWIoclswXSxyWzFdLG0sdik/W2EsZyxyWzJdXTpbbSx2LHJbMl1dfWZ1bmN0aW9uIGIodCxlLHIsbil7dmFyIGk9XyhyLXQpLGE9XyhuLWUpO3JldHVybiBNYXRoLnNxcnQoaSppK2EqYSl9ZnVuY3Rpb24gXyh0KXtyZXR1cm4odCUzNjArNTQwKSUzNjAtMTgwfWZ1bmN0aW9uIHcodCxlLHIpe3ZhciBuPXIqbyxpPXQuc2xpY2UoKSxhPTA9PT1lPzE6MCxzPTI9PT1lPzE6MixsPU1hdGguY29zKG4pLGM9TWF0aC5zaW4obik7cmV0dXJuIGlbYV09dFthXSpsLXRbc10qYyxpW3NdPXRbc10qbCt0W2FdKmMsaX1mdW5jdGlvbiBUKHQpe3JldHVybltNYXRoLmF0YW4yKDIqKHRbMF0qdFsxXSt0WzJdKnRbM10pLDEtMioodFsxXSp0WzFdK3RbMl0qdFsyXSkpKnMsTWF0aC5hc2luKE1hdGgubWF4KC0xLE1hdGgubWluKDEsMioodFswXSp0WzJdLXRbM10qdFsxXSkpKSkqcyxNYXRoLmF0YW4yKDIqKHRbMF0qdFszXSt0WzFdKnRbMl0pLDEtMioodFsyXSp0WzJdK3RbM10qdFszXSkpKnNdfWZ1bmN0aW9uIGsodCxlKXtmb3IodmFyIHI9MCxuPTAsaT10Lmxlbmd0aDtuPGk7KytuKXIrPXRbbl0qZVtuXTtyZXR1cm4gcn1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10LnByb2plY3Rpb247cmV0dXJuKGUuX2lzU2NvcGVkP2g6ZS5faXNDbGlwcGVkP2Q6cCkodCxyKX19LHsiLi4vLi4vbGliIjo1MTUsIi4uLy4uL3JlZ2lzdHJ5Ijo2NDcsIkBwbG90bHkvZDMiOjU4fV0sNjAyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3JlZ2lzdHJ5IiksaT10KCIuL2NhcnRlc2lhbi9jb25zdGFudHMiKS5TVUJQTE9UX1BBVFRFUk47ci5nZXRTdWJwbG90Q2FsY0RhdGE9ZnVuY3Rpb24odCxlLHIpe3ZhciBpPW4uc3VicGxvdHNSZWdpc3RyeVtlXTtpZighaSlyZXR1cm5bXTtmb3IodmFyIGE9aS5hdHRyLG89W10scz0wO3M8dC5sZW5ndGg7cysrKXt2YXIgbD10W3NdO2xbMF0udHJhY2VbYV09PT1yJiZvLnB1c2gobCl9cmV0dXJuIG99LHIuZ2V0TW9kdWxlQ2FsY0RhdGE9ZnVuY3Rpb24odCxlKXt2YXIgcixpPVtdLGE9W107aWYoIShyPSJzdHJpbmciPT10eXBlb2YgZT9uLmdldE1vZHVsZShlKS5wbG90OiJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6ZS5wbG90KSlyZXR1cm5baSx0XTtmb3IodmFyIG89MDtvPHQubGVuZ3RoO28rKyl7dmFyIHM9dFtvXSxsPXNbMF0udHJhY2U7ITA9PT1sLnZpc2libGUmJjAhPT1sLl9sZW5ndGgmJihsLl9tb2R1bGUucGxvdD09PXI/aS5wdXNoKHMpOmEucHVzaChzKSl9cmV0dXJuW2ksYV19LHIuZ2V0U3VicGxvdERhdGE9ZnVuY3Rpb24odCxlLHIpe2lmKCFuLnN1YnBsb3RzUmVnaXN0cnlbZV0pcmV0dXJuW107dmFyIGEsbyxzLGw9bi5zdWJwbG90c1JlZ2lzdHJ5W2VdLmF0dHIsYz1bXTtpZigiZ2wyZCI9PT1lKXt2YXIgdT1yLm1hdGNoKGkpO289IngiK3VbMV0scz0ieSIrdVsyXX1mb3IodmFyIGY9MDtmPHQubGVuZ3RoO2YrKylhPXRbZl0sImdsMmQiPT09ZSYmbi50cmFjZUlzKGEsImdsMmQiKT9hW2xbMF1dPT09byYmYVtsWzFdXT09PXMmJmMucHVzaChhKTphW2xdPT09ciYmYy5wdXNoKGEpO3JldHVybiBjfX0seyIuLi9yZWdpc3RyeSI6NjQ3LCIuL2NhcnRlc2lhbi9jb25zdGFudHMiOjU3M31dLDYwMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJtb3VzZS1jaGFuZ2UiKSxpPXQoIm1vdXNlLXdoZWVsIiksYT10KCJtb3VzZS1ldmVudC1vZmZzZXQiKSxvPXQoIi4uL2NhcnRlc2lhbi9jb25zdGFudHMiKSxzPXQoImhhcy1wYXNzaXZlLWV2ZW50cyIpO2Z1bmN0aW9uIGwodCxlKXt0aGlzLmVsZW1lbnQ9dCx0aGlzLnBsb3Q9ZSx0aGlzLm1vdXNlTGlzdGVuZXI9bnVsbCx0aGlzLndoZWVsTGlzdGVuZXI9bnVsbCx0aGlzLmxhc3RJbnB1dFRpbWU9RGF0ZS5ub3coKSx0aGlzLmxhc3RQb3M9WzAsMF0sdGhpcy5ib3hFbmFibGVkPSExLHRoaXMuYm94SW5pdGVkPSExLHRoaXMuYm94U3RhcnQ9WzAsMF0sdGhpcy5ib3hFbmQ9WzAsMF0sdGhpcy5kcmFnU3RhcnQ9WzAsMF19ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQubW91c2VDb250YWluZXIscj10LmdscGxvdCxjPW5ldyBsKGUscik7ZnVuY3Rpb24gdSgpe3QueGF4aXMuYXV0b3JhbmdlPSExLHQueWF4aXMuYXV0b3JhbmdlPSExfWZ1bmN0aW9uIGYoZSxuLGkpe3ZhciBhLHMsbD10LmNhbGNEYXRhQm94KCksZj1yLnZpZXdCb3gsaD1jLmxhc3RQb3NbMF0scD1jLmxhc3RQb3NbMV0sZD1vLk1JTkRSQUcqci5waXhlbFJhdGlvLG09by5NSU5aT09NKnIucGl4ZWxSYXRpbztmdW5jdGlvbiBnKGUscixuKXt2YXIgaT1NYXRoLm1pbihyLG4pLGE9TWF0aC5tYXgocixuKTtpIT09YT8obFtlXT1pLGxbZSsyXT1hLGMuZGF0YUJveD1sLHQuc2V0UmFuZ2VzKGwpKToodC5zZWxlY3RCb3guc2VsZWN0Qm94PVswLDAsMSwxXSx0LmdscGxvdC5zZXREaXJ0eSgpKX1zd2l0Y2gobio9ci5waXhlbFJhdGlvLGkqPXIucGl4ZWxSYXRpbyxpPWZbM10tZlsxXS1pLHQuZnVsbExheW91dC5kcmFnbW9kZSl7Y2FzZSJ6b29tIjppZihlKXt2YXIgdj1uLyhmWzJdLWZbMF0pKihsWzJdLWxbMF0pK2xbMF0seT1pLyhmWzNdLWZbMV0pKihsWzNdLWxbMV0pK2xbMV07Yy5ib3hJbml0ZWR8fChjLmJveFN0YXJ0WzBdPXYsYy5ib3hTdGFydFsxXT15LGMuZHJhZ1N0YXJ0WzBdPW4sYy5kcmFnU3RhcnRbMV09aSksYy5ib3hFbmRbMF09dixjLmJveEVuZFsxXT15LGMuYm94SW5pdGVkPSEwLGMuYm94RW5hYmxlZHx8Yy5ib3hTdGFydFswXT09PWMuYm94RW5kWzBdJiZjLmJveFN0YXJ0WzFdPT09Yy5ib3hFbmRbMV18fChjLmJveEVuYWJsZWQ9ITApO3ZhciB4PU1hdGguYWJzKGMuZHJhZ1N0YXJ0WzBdLW4pPG0sYj1NYXRoLmFicyhjLmRyYWdTdGFydFsxXS1pKTxtO2lmKCFmdW5jdGlvbigpe2Zvcih2YXIgZT10LmdyYXBoRGl2Ll9mdWxsTGF5b3V0Ll9heGlzQ29uc3RyYWludEdyb3VwcyxyPXQueGF4aXMuX2lkLG49dC55YXhpcy5faWQsaT0wO2k8ZS5sZW5ndGg7aSsrKWlmKC0xIT09ZVtpXVtyXSl7aWYoLTEhPT1lW2ldW25dKXJldHVybiEwO2JyZWFrfXJldHVybiExfSgpfHx4JiZiKXgmJihjLmJveEVuZFswXT1jLmJveFN0YXJ0WzBdKSxiJiYoYy5ib3hFbmRbMV09Yy5ib3hTdGFydFsxXSk7ZWxzZXthPWMuYm94RW5kWzBdLWMuYm94U3RhcnRbMF0scz1jLmJveEVuZFsxXS1jLmJveFN0YXJ0WzFdO3ZhciBfPShsWzNdLWxbMV0pLyhsWzJdLWxbMF0pO01hdGguYWJzKGEqXyk+TWF0aC5hYnMocyk/KGMuYm94RW5kWzFdPWMuYm94U3RhcnRbMV0rTWF0aC5hYnMoYSkqXyoocz49MD8xOi0xKSxjLmJveEVuZFsxXTxsWzFdPyhjLmJveEVuZFsxXT1sWzFdLGMuYm94RW5kWzBdPWMuYm94U3RhcnRbMF0rKGxbMV0tYy5ib3hTdGFydFsxXSkvTWF0aC5hYnMoXykpOmMuYm94RW5kWzFdPmxbM10mJihjLmJveEVuZFsxXT1sWzNdLGMuYm94RW5kWzBdPWMuYm94U3RhcnRbMF0rKGxbM10tYy5ib3hTdGFydFsxXSkvTWF0aC5hYnMoXykpKTooYy5ib3hFbmRbMF09Yy5ib3hTdGFydFswXStNYXRoLmFicyhzKS9fKihhPj0wPzE6LTEpLGMuYm94RW5kWzBdPGxbMF0/KGMuYm94RW5kWzBdPWxbMF0sYy5ib3hFbmRbMV09Yy5ib3hTdGFydFsxXSsobFswXS1jLmJveFN0YXJ0WzBdKSpNYXRoLmFicyhfKSk6Yy5ib3hFbmRbMF0+bFsyXSYmKGMuYm94RW5kWzBdPWxbMl0sYy5ib3hFbmRbMV09Yy5ib3hTdGFydFsxXSsobFsyXS1jLmJveFN0YXJ0WzBdKSpNYXRoLmFicyhfKSkpfX1lbHNlIGMuYm94RW5hYmxlZD8oYT1jLmJveFN0YXJ0WzBdIT09Yy5ib3hFbmRbMF0scz1jLmJveFN0YXJ0WzFdIT09Yy5ib3hFbmRbMV0sYXx8cz8oYSYmKGcoMCxjLmJveFN0YXJ0WzBdLGMuYm94RW5kWzBdKSx0LnhheGlzLmF1dG9yYW5nZT0hMSkscyYmKGcoMSxjLmJveFN0YXJ0WzFdLGMuYm94RW5kWzFdKSx0LnlheGlzLmF1dG9yYW5nZT0hMSksdC5yZWxheW91dENhbGxiYWNrKCkpOnQuZ2xwbG90LnNldERpcnR5KCksYy5ib3hFbmFibGVkPSExLGMuYm94SW5pdGVkPSExKTpjLmJveEluaXRlZCYmKGMuYm94SW5pdGVkPSExKTticmVhaztjYXNlInBhbiI6Yy5ib3hFbmFibGVkPSExLGMuYm94SW5pdGVkPSExLGU/KGMucGFubmluZ3x8KGMuZHJhZ1N0YXJ0WzBdPW4sYy5kcmFnU3RhcnRbMV09aSksTWF0aC5hYnMoYy5kcmFnU3RhcnRbMF0tbik8ZCYmKG49Yy5kcmFnU3RhcnRbMF0pLE1hdGguYWJzKGMuZHJhZ1N0YXJ0WzFdLWkpPGQmJihpPWMuZHJhZ1N0YXJ0WzFdKSxhPShoLW4pKihsWzJdLWxbMF0pLyhyLnZpZXdCb3hbMl0tci52aWV3Qm94WzBdKSxzPShwLWkpKihsWzNdLWxbMV0pLyhyLnZpZXdCb3hbM10tci52aWV3Qm94WzFdKSxsWzBdKz1hLGxbMl0rPWEsbFsxXSs9cyxsWzNdKz1zLHQuc2V0UmFuZ2VzKGwpLGMucGFubmluZz0hMCxjLmxhc3RJbnB1dFRpbWU9RGF0ZS5ub3coKSx1KCksdC5jYW1lcmFDaGFuZ2VkKCksdC5oYW5kbGVBbm5vdGF0aW9ucygpKTpjLnBhbm5pbmcmJihjLnBhbm5pbmc9ITEsdC5yZWxheW91dENhbGxiYWNrKCkpfWMubGFzdFBvc1swXT1uLGMubGFzdFBvc1sxXT1pfXJldHVybiBjLm1vdXNlTGlzdGVuZXI9bihlLGYpLGUuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsKGZ1bmN0aW9uKHQpe3ZhciByPWEodC5jaGFuZ2VkVG91Y2hlc1swXSxlKTtmKDAsclswXSxyWzFdKSxmKDEsclswXSxyWzFdKSx0LnByZXZlbnREZWZhdWx0KCl9KSwhIXMmJntwYXNzaXZlOiExfSksZS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLChmdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCk7dmFyIHI9YSh0LmNoYW5nZWRUb3VjaGVzWzBdLGUpO2YoMSxyWzBdLHJbMV0pLHQucHJldmVudERlZmF1bHQoKX0pLCEhcyYme3Bhc3NpdmU6ITF9KSxlLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIiwoZnVuY3Rpb24odCl7ZigwLGMubGFzdFBvc1swXSxjLmxhc3RQb3NbMV0pLHQucHJldmVudERlZmF1bHQoKX0pLCEhcyYme3Bhc3NpdmU6ITF9KSxjLndoZWVsTGlzdGVuZXI9aShlLChmdW5jdGlvbihlLG4pe2lmKCF0LnNjcm9sbFpvb20pcmV0dXJuITE7dmFyIGk9dC5jYWxjRGF0YUJveCgpLGE9ci52aWV3Qm94LG89Yy5sYXN0UG9zWzBdLHM9Yy5sYXN0UG9zWzFdLGw9TWF0aC5leHAoNSpuLyhhWzNdLWFbMV0pKSxmPW8vKGFbMl0tYVswXSkqKGlbMl0taVswXSkraVswXSxoPXMvKGFbM10tYVsxXSkqKGlbM10taVsxXSkraVsxXTtyZXR1cm4gaVswXT0oaVswXS1mKSpsK2YsaVsyXT0oaVsyXS1mKSpsK2YsaVsxXT0oaVsxXS1oKSpsK2gsaVszXT0oaVszXS1oKSpsK2gsdC5zZXRSYW5nZXMoaSksYy5sYXN0SW5wdXRUaW1lPURhdGUubm93KCksdSgpLHQuY2FtZXJhQ2hhbmdlZCgpLHQuaGFuZGxlQW5ub3RhdGlvbnMoKSx0LnJlbGF5b3V0Q2FsbGJhY2soKSwhMH0pLCEwKSxjfX0seyIuLi9jYXJ0ZXNpYW4vY29uc3RhbnRzIjo1NzMsImhhcy1wYXNzaXZlLWV2ZW50cyI6MjI5LCJtb3VzZS1jaGFuZ2UiOjI0MSwibW91c2UtZXZlbnQtb2Zmc2V0IjoyNDIsIm1vdXNlLXdoZWVsIjoyNDR9XSw2MDQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vY2FydGVzaWFuL2F4ZXMiKSxpPXQoIi4uLy4uL2xpYi9zdHIycmdiYXJyYXkiKTtmdW5jdGlvbiBhKHQpe3RoaXMuc2NlbmU9dCx0aGlzLmdsPXQuZ2wsdGhpcy5waXhlbFJhdGlvPXQucGl4ZWxSYXRpbyx0aGlzLnNjcmVlbkJveD1bMCwwLDEsMV0sdGhpcy52aWV3Qm94PVswLDAsMSwxXSx0aGlzLmRhdGFCb3g9Wy0xLC0xLDEsMV0sdGhpcy5ib3JkZXJMaW5lRW5hYmxlPVshMSwhMSwhMSwhMV0sdGhpcy5ib3JkZXJMaW5lV2lkdGg9WzEsMSwxLDFdLHRoaXMuYm9yZGVyTGluZUNvbG9yPVtbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMudGlja3M9W1tdLFtdXSx0aGlzLnRpY2tFbmFibGU9WyEwLCEwLCExLCExXSx0aGlzLnRpY2tQYWQ9WzE1LDE1LDE1LDE1XSx0aGlzLnRpY2tBbmdsZT1bMCwwLDAsMF0sdGhpcy50aWNrQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXV0sdGhpcy50aWNrTWFya0xlbmd0aD1bMCwwLDAsMF0sdGhpcy50aWNrTWFya1dpZHRoPVswLDAsMCwwXSx0aGlzLnRpY2tNYXJrQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXV0sdGhpcy5sYWJlbHM9WyJ4IiwieSJdLHRoaXMubGFiZWxFbmFibGU9WyEwLCEwLCExLCExXSx0aGlzLmxhYmVsQW5nbGU9WzAsTWF0aC5QSS8yLDAsMypNYXRoLlBJLzJdLHRoaXMubGFiZWxQYWQ9WzE1LDE1LDE1LDE1XSx0aGlzLmxhYmVsU2l6ZT1bMTIsMTJdLHRoaXMubGFiZWxGb250PVsic2Fucy1zZXJpZiIsInNhbnMtc2VyaWYiXSx0aGlzLmxhYmVsQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXV0sdGhpcy50aXRsZT0iIix0aGlzLnRpdGxlRW5hYmxlPSEwLHRoaXMudGl0bGVDZW50ZXI9WzAsMCwwLDBdLHRoaXMudGl0bGVBbmdsZT0wLHRoaXMudGl0bGVDb2xvcj1bMCwwLDAsMV0sdGhpcy50aXRsZUZvbnQ9InNhbnMtc2VyaWYiLHRoaXMudGl0bGVTaXplPTE4LHRoaXMuZ3JpZExpbmVFbmFibGU9WyEwLCEwXSx0aGlzLmdyaWRMaW5lQ29sb3I9W1swLDAsMCwuNV0sWzAsMCwwLC41XV0sdGhpcy5ncmlkTGluZVdpZHRoPVsxLDFdLHRoaXMuemVyb0xpbmVFbmFibGU9WyEwLCEwXSx0aGlzLnplcm9MaW5lV2lkdGg9WzEsMV0sdGhpcy56ZXJvTGluZUNvbG9yPVtbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLmJvcmRlckNvbG9yPVswLDAsMCwwXSx0aGlzLmJhY2tncm91bmRDb2xvcj1bMCwwLDAsMF0sdGhpcy5zdGF0aWM9dGhpcy5zY2VuZS5zdGF0aWNQbG90fXZhciBvPWEucHJvdG90eXBlLHM9WyJ4YXhpcyIsInlheGlzIl07by5tZXJnZT1mdW5jdGlvbih0KXt2YXIgZSxyLG4sYSxvLGwsYyx1LGYsaCxwO2Zvcih0aGlzLnRpdGxlRW5hYmxlPSExLHRoaXMuYmFja2dyb3VuZENvbG9yPWkodC5wbG90X2JnY29sb3IpLGg9MDtoPDI7KytoKXt2YXIgZD0oZT1zW2hdKS5jaGFyQXQoMCk7Zm9yKG49KHI9dFt0aGlzLnNjZW5lW2VdLl9uYW1lXSkudGl0bGUudGV4dD09PXRoaXMuc2NlbmUuZnVsbExheW91dC5fZGZsdFRpdGxlW2RdPyIiOnIudGl0bGUudGV4dCxwPTA7cDw9MjtwKz0yKXRoaXMubGFiZWxFbmFibGVbaCtwXT0hMSx0aGlzLmxhYmVsc1toK3BdPW4sdGhpcy5sYWJlbENvbG9yW2grcF09aShyLnRpdGxlLmZvbnQuY29sb3IpLHRoaXMubGFiZWxGb250W2grcF09ci50aXRsZS5mb250LmZhbWlseSx0aGlzLmxhYmVsU2l6ZVtoK3BdPXIudGl0bGUuZm9udC5zaXplLHRoaXMubGFiZWxQYWRbaCtwXT10aGlzLmdldExhYmVsUGFkKGUsciksdGhpcy50aWNrRW5hYmxlW2grcF09ITEsdGhpcy50aWNrQ29sb3JbaCtwXT1pKChyLnRpY2tmb250fHx7fSkuY29sb3IpLHRoaXMudGlja0FuZ2xlW2grcF09ImF1dG8iPT09ci50aWNrYW5nbGU/MDpNYXRoLlBJKi1yLnRpY2thbmdsZS8xODAsdGhpcy50aWNrUGFkW2grcF09dGhpcy5nZXRUaWNrUGFkKHIpLHRoaXMudGlja01hcmtMZW5ndGhbaCtwXT0wLHRoaXMudGlja01hcmtXaWR0aFtoK3BdPXIudGlja3dpZHRofHwwLHRoaXMudGlja01hcmtDb2xvcltoK3BdPWkoci50aWNrY29sb3IpLHRoaXMuYm9yZGVyTGluZUVuYWJsZVtoK3BdPSExLHRoaXMuYm9yZGVyTGluZUNvbG9yW2grcF09aShyLmxpbmVjb2xvciksdGhpcy5ib3JkZXJMaW5lV2lkdGhbaCtwXT1yLmxpbmV3aWR0aHx8MDtjPXRoaXMuaGFzU2hhcmVkQXhpcyhyKSxvPXRoaXMuaGFzQXhpc0luRGZsdFBvcyhlLHIpJiYhYyxsPXRoaXMuaGFzQXhpc0luQWx0clBvcyhlLHIpJiYhYyxhPXIubWlycm9yfHwhMSx1PWM/LTEhPT1TdHJpbmcoYSkuaW5kZXhPZigiYWxsIik6ISFhLGY9Yz8iYWxsdGlja3MiPT09YTotMSE9PVN0cmluZyhhKS5pbmRleE9mKCJ0aWNrcyIpLG8/dGhpcy5sYWJlbEVuYWJsZVtoXT0hMDpsJiYodGhpcy5sYWJlbEVuYWJsZVtoKzJdPSEwKSxvP3RoaXMudGlja0VuYWJsZVtoXT1yLnNob3d0aWNrbGFiZWxzOmwmJih0aGlzLnRpY2tFbmFibGVbaCsyXT1yLnNob3d0aWNrbGFiZWxzKSwob3x8dSkmJih0aGlzLmJvcmRlckxpbmVFbmFibGVbaF09ci5zaG93bGluZSksKGx8fHUpJiYodGhpcy5ib3JkZXJMaW5lRW5hYmxlW2grMl09ci5zaG93bGluZSksKG98fGYpJiYodGhpcy50aWNrTWFya0xlbmd0aFtoXT10aGlzLmdldFRpY2tNYXJrTGVuZ3RoKHIpKSwobHx8ZikmJih0aGlzLnRpY2tNYXJrTGVuZ3RoW2grMl09dGhpcy5nZXRUaWNrTWFya0xlbmd0aChyKSksdGhpcy5ncmlkTGluZUVuYWJsZVtoXT1yLnNob3dncmlkLHRoaXMuZ3JpZExpbmVDb2xvcltoXT1pKHIuZ3JpZGNvbG9yKSx0aGlzLmdyaWRMaW5lV2lkdGhbaF09ci5ncmlkd2lkdGgsdGhpcy56ZXJvTGluZUVuYWJsZVtoXT1yLnplcm9saW5lLHRoaXMuemVyb0xpbmVDb2xvcltoXT1pKHIuemVyb2xpbmVjb2xvciksdGhpcy56ZXJvTGluZVdpZHRoW2hdPXIuemVyb2xpbmV3aWR0aH19LG8uaGFzU2hhcmVkQXhpcz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnNjZW5lLHI9ZS5mdWxsTGF5b3V0Ll9zdWJwbG90cy5nbDJkO3JldHVybiAwIT09bi5maW5kU3VicGxvdHNXaXRoQXhpcyhyLHQpLmluZGV4T2YoZS5pZCl9LG8uaGFzQXhpc0luRGZsdFBvcz1mdW5jdGlvbih0LGUpe3ZhciByPWUuc2lkZTtyZXR1cm4ieGF4aXMiPT09dD8iYm90dG9tIj09PXI6InlheGlzIj09PXQ/ImxlZnQiPT09cjp2b2lkIDB9LG8uaGFzQXhpc0luQWx0clBvcz1mdW5jdGlvbih0LGUpe3ZhciByPWUuc2lkZTtyZXR1cm4ieGF4aXMiPT09dD8idG9wIj09PXI6InlheGlzIj09PXQ/InJpZ2h0Ij09PXI6dm9pZCAwfSxvLmdldExhYmVsUGFkPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS50aXRsZS5mb250LnNpemUsbj1lLnNob3d0aWNrbGFiZWxzO3JldHVybiJ4YXhpcyI9PT10PyJ0b3AiPT09ZS5zaWRlP3IqKDEuNSsobj8xOjApKS0xMDpyKigxLjUrKG4/LjU6MCkpLTEwOiJ5YXhpcyI9PT10PyJyaWdodCI9PT1lLnNpZGU/MTArciooMS41KyhuPzE6LjUpKToxMCtyKigxLjUrKG4/LjU6MCkpOnZvaWQgMH0sby5nZXRUaWNrUGFkPWZ1bmN0aW9uKHQpe3JldHVybiJvdXRzaWRlIj09PXQudGlja3M/MTArdC50aWNrbGVuOjE1fSxvLmdldFRpY2tNYXJrTGVuZ3RoPWZ1bmN0aW9uKHQpe2lmKCF0LnRpY2tzKXJldHVybiAwO3ZhciBlPXQudGlja2xlbjtyZXR1cm4iaW5zaWRlIj09PXQudGlja3M/LWU6ZX0sZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgYSh0KX19LHsiLi4vLi4vbGliL3N0cjJyZ2JhcnJheSI6NTQwLCIuLi9jYXJ0ZXNpYW4vYXhlcyI6NTY2fV0sNjA1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiKS5vdmVycmlkZUFsbCxpPXQoIi4vc2NlbmUyZCIpLGE9dCgiLi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxvPXQoIi4uLy4uL2NvbnN0YW50cy94bWxuc19uYW1lc3BhY2VzIikscz10KCIuLi9jYXJ0ZXNpYW4vY29uc3RhbnRzIiksbD10KCIuLi9jYXJ0ZXNpYW4iKSxjPXQoIi4uLy4uL2NvbXBvbmVudHMvZngvbGF5b3V0X2F0dHJpYnV0ZXMiKSx1PXQoIi4uL2dldF9kYXRhIikuZ2V0U3VicGxvdERhdGE7ci5uYW1lPSJnbDJkIixyLmF0dHI9WyJ4YXhpcyIsInlheGlzIl0sci5pZFJvb3Q9WyJ4IiwieSJdLHIuaWRSZWdleD1zLmlkUmVnZXgsci5hdHRyUmVnZXg9cy5hdHRyUmVnZXgsci5hdHRyaWJ1dGVzPXQoIi4uL2NhcnRlc2lhbi9hdHRyaWJ1dGVzIiksci5zdXBwbHlMYXlvdXREZWZhdWx0cz1mdW5jdGlvbih0LGUscil7ZS5faGFzKCJjYXJ0ZXNpYW4iKXx8bC5zdXBwbHlMYXlvdXREZWZhdWx0cyh0LGUscil9LHIubGF5b3V0QXR0ck92ZXJyaWRlcz1uKGwubGF5b3V0QXR0cmlidXRlcywicGxvdCIsImZyb20tcm9vdCIpLHIuYmFzZUxheW91dEF0dHJPdmVycmlkZXM9bih7cGxvdF9iZ2NvbG9yOmEucGxvdF9iZ2NvbG9yLGhvdmVybGFiZWw6Yy5ob3ZlcmxhYmVsfSwicGxvdCIsIm5lc3RlZCIpLHIucGxvdD1mdW5jdGlvbih0KXtmb3IodmFyIGU9dC5fZnVsbExheW91dCxyPXQuX2Z1bGxEYXRhLG49ZS5fc3VicGxvdHMuZ2wyZCxhPTA7YTxuLmxlbmd0aDthKyspe3ZhciBvPW5bYV0scz1lLl9wbG90c1tvXSxsPXUociwiZ2wyZCIsbyksYz1zLl9zY2VuZTJkO3ZvaWQgMD09PWMmJihjPW5ldyBpKHtpZDpvLGdyYXBoRGl2OnQsY29udGFpbmVyOnQucXVlcnlTZWxlY3RvcigiLmdsLWNvbnRhaW5lciIpLHN0YXRpY1Bsb3Q6dC5fY29udGV4dC5zdGF0aWNQbG90LHBsb3RHbFBpeGVsUmF0aW86dC5fY29udGV4dC5wbG90R2xQaXhlbFJhdGlvfSxlKSxzLl9zY2VuZTJkPWMpLGMucGxvdChsLHQuY2FsY2RhdGEsZSx0LmxheW91dCl9fSxyLmNsZWFuPWZ1bmN0aW9uKHQsZSxyLG4pe2Zvcih2YXIgaT1uLl9zdWJwbG90cy5nbDJkfHxbXSxhPTA7YTxpLmxlbmd0aDthKyspe3ZhciBvPWlbYV0scz1uLl9wbG90c1tvXTtpZihzLl9zY2VuZTJkKXt2YXIgYz11KHQsImdsMmQiLG8pOzA9PT1jLmxlbmd0aCYmKHMuX3NjZW5lMmQuZGVzdHJveSgpLGRlbGV0ZSBuLl9wbG90c1tvXSl9fWwuY2xlYW4uYXBwbHkodGhpcyxhcmd1bWVudHMpfSxyLmRyYXdGcmFtZXdvcms9ZnVuY3Rpb24odCl7dC5fY29udGV4dC5zdGF0aWNQbG90fHxsLmRyYXdGcmFtZXdvcmsodCl9LHIudG9TVkc9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQuX2Z1bGxMYXlvdXQscj1lLl9zdWJwbG90cy5nbDJkLG49MDtuPHIubGVuZ3RoO24rKyl7dmFyIGk9ZS5fcGxvdHNbcltuXV0uX3NjZW5lMmQsYT1pLnRvSW1hZ2UoInBuZyIpO2UuX2dsaW1hZ2VzLmFwcGVuZCgic3ZnOmltYWdlIikuYXR0cih7eG1sbnM6by5zdmcsInhsaW5rOmhyZWYiOmEseDowLHk6MCx3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIixwcmVzZXJ2ZUFzcGVjdFJhdGlvOiJub25lIn0pLGkuZGVzdHJveSgpfX0sci51cGRhdGVGeD1mdW5jdGlvbih0KXtmb3IodmFyIGU9dC5fZnVsbExheW91dCxyPWUuX3N1YnBsb3RzLmdsMmQsbj0wO248ci5sZW5ndGg7bisrKXtlLl9wbG90c1tyW25dXS5fc2NlbmUyZC51cGRhdGVGeChlLmRyYWdtb2RlKX19fSx7Ii4uLy4uL2NvbXBvbmVudHMvZngvbGF5b3V0X2F0dHJpYnV0ZXMiOjQwOCwiLi4vLi4vY29uc3RhbnRzL3htbG5zX25hbWVzcGFjZXMiOjQ5MiwiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyI6NTQ4LCIuLi9jYXJ0ZXNpYW4iOjU3OCwiLi4vY2FydGVzaWFuL2F0dHJpYnV0ZXMiOjU2NCwiLi4vY2FydGVzaWFuL2NvbnN0YW50cyI6NTczLCIuLi9nZXRfZGF0YSI6NjAyLCIuLi9sYXlvdXRfYXR0cmlidXRlcyI6NjE5LCIuL3NjZW5lMmQiOjYwNn1dLDYwNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbixpLGE9dCgiLi4vLi4vcmVnaXN0cnkiKSxvPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIikscz10KCIuLi8uLi9jb21wb25lbnRzL2Z4IiksbD10KCIuLi8uLi8uLi9zdGFja2dsX21vZHVsZXMiKS5nbF9wbG90MmQsYz10KCIuLi8uLi8uLi9zdGFja2dsX21vZHVsZXMiKS5nbF9zcGlrZXMyZCx1PXQoIi4uLy4uLy4uL3N0YWNrZ2xfbW9kdWxlcyIpLmdsX3NlbGVjdF9ib3gsZj10KCJ3ZWJnbC1jb250ZXh0IiksaD10KCIuL2NvbnZlcnQiKSxwPXQoIi4vY2FtZXJhIiksZD10KCIuLi8uLi9saWIvc2hvd19ub193ZWJnbF9tc2ciKSxtPXQoIi4uL2NhcnRlc2lhbi9jb25zdHJhaW50cyIpLGc9bS5lbmZvcmNlLHY9bS5jbGVhbix5PXQoIi4uL2NhcnRlc2lhbi9hdXRvcmFuZ2UiKS5kb0F1dG9SYW5nZSx4PXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhZ2VsZW1lbnQvaGVscGVycyIpLGI9eC5kcmF3TW9kZSxfPXguc2VsZWN0TW9kZSx3PVsieGF4aXMiLCJ5YXhpcyJdLFQ9dCgiLi4vY2FydGVzaWFuL2NvbnN0YW50cyIpLlNVQlBMT1RfUEFUVEVSTjtmdW5jdGlvbiBrKHQsZSl7dGhpcy5jb250YWluZXI9dC5jb250YWluZXIsdGhpcy5ncmFwaERpdj10LmdyYXBoRGl2LHRoaXMucGl4ZWxSYXRpbz10LnBsb3RHbFBpeGVsUmF0aW98fHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvLHRoaXMuaWQ9dC5pZCx0aGlzLnN0YXRpY1Bsb3Q9ISF0LnN0YXRpY1Bsb3QsdGhpcy5zY3JvbGxab29tPXRoaXMuZ3JhcGhEaXYuX2NvbnRleHQuX3Njcm9sbFpvb20uY2FydGVzaWFuLHRoaXMuZnVsbERhdGE9bnVsbCx0aGlzLnVwZGF0ZVJlZnMoZSksdGhpcy5tYWtlRnJhbWV3b3JrKCksdGhpcy5zdG9wcGVkfHwodGhpcy5nbHBsb3RPcHRpb25zPWgodGhpcyksdGhpcy5nbHBsb3RPcHRpb25zLm1lcmdlKGUpLHRoaXMuZ2xwbG90PWwodGhpcy5nbHBsb3RPcHRpb25zKSx0aGlzLmNhbWVyYT1wKHRoaXMpLHRoaXMudHJhY2VzPXt9LHRoaXMuc3Bpa2VzPWModGhpcy5nbHBsb3QpLHRoaXMuc2VsZWN0Qm94PXUodGhpcy5nbHBsb3Qse2lubmVyRmlsbDohMSxvdXRlckZpbGw6ITB9KSx0aGlzLmxhc3RCdXR0b25TdGF0ZT0wLHRoaXMucGlja1Jlc3VsdD1udWxsLHRoaXMuaXNNb3VzZU92ZXI9ITAsdGhpcy5zdG9wcGVkPSExLHRoaXMucmVkcmF3PXRoaXMuZHJhdy5iaW5kKHRoaXMpLHRoaXMucmVkcmF3KCkpfWUuZXhwb3J0cz1rO3ZhciBBPWsucHJvdG90eXBlO0EubWFrZUZyYW1ld29yaz1mdW5jdGlvbigpe2lmKHRoaXMuc3RhdGljUGxvdCl7aWYoIShpfHwobj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSxpPWYoe2NhbnZhczpuLHByZXNlcnZlRHJhd2luZ0J1ZmZlcjohMSxwcmVtdWx0aXBsaWVkQWxwaGE6ITAsYW50aWFsaWFzOiEwfSkpKSl0aHJvdyBuZXcgRXJyb3IoIkVycm9yIGNyZWF0aW5nIHN0YXRpYyBjYW52YXMvY29udGV4dCBmb3IgaW1hZ2Ugc2VydmVyIik7dGhpcy5jYW52YXM9bix0aGlzLmdsPWl9ZWxzZXt2YXIgdD10aGlzLmNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCIuZ2wtY2FudmFzLWZvY3VzIiksZT1mKHtjYW52YXM6dCxwcmVzZXJ2ZURyYXdpbmdCdWZmZXI6ITAscHJlbXVsdGlwbGllZEFscGhhOiEwfSk7aWYoIWUpcmV0dXJuIGQodGhpcyksdm9pZCh0aGlzLnN0b3BwZWQ9ITApO3RoaXMuY2FudmFzPXQsdGhpcy5nbD1lfXZhciByPXRoaXMuY2FudmFzO3Iuc3R5bGUud2lkdGg9IjEwMCUiLHIuc3R5bGUuaGVpZ2h0PSIxMDAlIixyLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsci5zdHlsZS50b3A9IjBweCIsci5zdHlsZS5sZWZ0PSIwcHgiLHIuc3R5bGVbInBvaW50ZXItZXZlbnRzIl09Im5vbmUiLHRoaXMudXBkYXRlU2l6ZShyKTt2YXIgYT10aGlzLnN2Z0NvbnRhaW5lcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwic3ZnIik7YS5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLGEuc3R5bGUudG9wPWEuc3R5bGUubGVmdD0iMHB4IixhLnN0eWxlLndpZHRoPWEuc3R5bGUuaGVpZ2h0PSIxMDAlIixhLnN0eWxlWyJ6LWluZGV4Il09MjAsYS5zdHlsZVsicG9pbnRlci1ldmVudHMiXT0ibm9uZSI7dmFyIG89dGhpcy5tb3VzZUNvbnRhaW5lcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtvLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsby5zdHlsZVsicG9pbnRlci1ldmVudHMiXT0iYXV0byIsdGhpcy5waWNrQ2FudmFzPXRoaXMuY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoIi5nbC1jYW52YXMtcGljayIpO3ZhciBzPXRoaXMuY29udGFpbmVyO3MuYXBwZW5kQ2hpbGQoYSkscy5hcHBlbmRDaGlsZChvKTt2YXIgbD10aGlzO28uYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdXQiLChmdW5jdGlvbigpe2wuaXNNb3VzZU92ZXI9ITEsbC51bmhvdmVyKCl9KSksby5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLChmdW5jdGlvbigpe2wuaXNNb3VzZU92ZXI9ITB9KSl9LEEudG9JbWFnZT1mdW5jdGlvbih0KXt0fHwodD0icG5nIiksdGhpcy5zdG9wcGVkPSEwLHRoaXMuc3RhdGljUGxvdCYmdGhpcy5jb250YWluZXIuYXBwZW5kQ2hpbGQobiksdGhpcy51cGRhdGVTaXplKHRoaXMuY2FudmFzKTt2YXIgZT10aGlzLmdscGxvdC5nbCxyPWUuZHJhd2luZ0J1ZmZlcldpZHRoLGk9ZS5kcmF3aW5nQnVmZmVySGVpZ2h0O2UuY2xlYXJDb2xvcigxLDEsMSwwKSxlLmNsZWFyKGUuQ09MT1JfQlVGRkVSX0JJVHxlLkRFUFRIX0JVRkZFUl9CSVQpLHRoaXMuZ2xwbG90LnNldERpcnR5KCksdGhpcy5nbHBsb3QuZHJhdygpLGUuYmluZEZyYW1lYnVmZmVyKGUuRlJBTUVCVUZGRVIsbnVsbCk7dmFyIGE9bmV3IFVpbnQ4QXJyYXkocippKjQpO2UucmVhZFBpeGVscygwLDAscixpLGUuUkdCQSxlLlVOU0lHTkVEX0JZVEUsYSk7Zm9yKHZhciBvPTAscz1pLTE7bzxzOysrbywtLXMpZm9yKHZhciBsPTA7bDxyOysrbClmb3IodmFyIGM9MDtjPDQ7KytjKXt2YXIgdT1hWzQqKHIqbytsKStjXTthWzQqKHIqbytsKStjXT1hWzQqKHIqcytsKStjXSxhWzQqKHIqcytsKStjXT11fXZhciBmPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO2Yud2lkdGg9cixmLmhlaWdodD1pO3ZhciBoLHA9Zi5nZXRDb250ZXh0KCIyZCIse3dpbGxSZWFkRnJlcXVlbnRseTohMH0pLGQ9cC5jcmVhdGVJbWFnZURhdGEocixpKTtzd2l0Y2goZC5kYXRhLnNldChhKSxwLnB1dEltYWdlRGF0YShkLDAsMCksdCl7Y2FzZSJqcGVnIjpoPWYudG9EYXRhVVJMKCJpbWFnZS9qcGVnIik7YnJlYWs7Y2FzZSJ3ZWJwIjpoPWYudG9EYXRhVVJMKCJpbWFnZS93ZWJwIik7YnJlYWs7ZGVmYXVsdDpoPWYudG9EYXRhVVJMKCJpbWFnZS9wbmciKX1yZXR1cm4gdGhpcy5zdGF0aWNQbG90JiZ0aGlzLmNvbnRhaW5lci5yZW1vdmVDaGlsZChuKSxofSxBLnVwZGF0ZVNpemU9ZnVuY3Rpb24odCl7dHx8KHQ9dGhpcy5jYW52YXMpO3ZhciBlPXRoaXMucGl4ZWxSYXRpbyxyPXRoaXMuZnVsbExheW91dCxuPXIud2lkdGgsaT1yLmhlaWdodCxhPTB8TWF0aC5jZWlsKGUqbiksbz0wfE1hdGguY2VpbChlKmkpO3JldHVybiB0LndpZHRoPT09YSYmdC5oZWlnaHQ9PT1vfHwodC53aWR0aD1hLHQuaGVpZ2h0PW8pLHR9LEEuY29tcHV0ZVRpY2tNYXJrcz1mdW5jdGlvbigpe3RoaXMueGF4aXMuc2V0U2NhbGUoKSx0aGlzLnlheGlzLnNldFNjYWxlKCk7Zm9yKHZhciB0PVtvLmNhbGNUaWNrcyh0aGlzLnhheGlzKSxvLmNhbGNUaWNrcyh0aGlzLnlheGlzKV0sZT0wO2U8MjsrK2UpZm9yKHZhciByPTA7cjx0W2VdLmxlbmd0aDsrK3IpdFtlXVtyXS50ZXh0PXRbZV1bcl0udGV4dCsiIjtyZXR1cm4gdH0sQS51cGRhdGVSZWZzPWZ1bmN0aW9uKHQpe3RoaXMuZnVsbExheW91dD10O3ZhciBlPXRoaXMuaWQubWF0Y2goVCkscj0ieGF4aXMiK2VbMV0sbj0ieWF4aXMiK2VbMl07dGhpcy54YXhpcz10aGlzLmZ1bGxMYXlvdXRbcl0sdGhpcy55YXhpcz10aGlzLmZ1bGxMYXlvdXRbbl19LEEucmVsYXlvdXRDYWxsYmFjaz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuZ3JhcGhEaXYsZT10aGlzLnhheGlzLHI9dGhpcy55YXhpcyxuPXQubGF5b3V0LGk9e30sbz1pW2UuX25hbWUrIi5yYW5nZSJdPWUucmFuZ2Uuc2xpY2UoKSxzPWlbci5fbmFtZSsiLnJhbmdlIl09ci5yYW5nZS5zbGljZSgpO2lbZS5fbmFtZSsiLmF1dG9yYW5nZSJdPWUuYXV0b3JhbmdlLGlbci5fbmFtZSsiLmF1dG9yYW5nZSJdPXIuYXV0b3JhbmdlLGEuY2FsbCgiX3N0b3JlRGlyZWN0R1VJRWRpdCIsdC5sYXlvdXQsdC5fZnVsbExheW91dC5fcHJlR1VJLGkpO3ZhciBsPW5bZS5fbmFtZV07bC5yYW5nZT1vLGwuYXV0b3JhbmdlPWUuYXV0b3JhbmdlO3ZhciBjPW5bci5fbmFtZV07Yy5yYW5nZT1zLGMuYXV0b3JhbmdlPXIuYXV0b3JhbmdlLGkubGFzdElucHV0VGltZT10aGlzLmNhbWVyYS5sYXN0SW5wdXRUaW1lLHQuZW1pdCgicGxvdGx5X3JlbGF5b3V0IixpKX0sQS5jYW1lcmFDaGFuZ2VkPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jYW1lcmE7dGhpcy5nbHBsb3Quc2V0RGF0YUJveCh0aGlzLmNhbGNEYXRhQm94KCkpO3ZhciBlPXRoaXMuY29tcHV0ZVRpY2tNYXJrcygpOyhmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wO3I8MjsrK3Ipe3ZhciBuPXRbcl0saT1lW3JdO2lmKG4ubGVuZ3RoIT09aS5sZW5ndGgpcmV0dXJuITA7Zm9yKHZhciBhPTA7YTxuLmxlbmd0aDsrK2EpaWYoblthXS54IT09aVthXS54KXJldHVybiEwfXJldHVybiExfSkoZSx0aGlzLmdscGxvdE9wdGlvbnMudGlja3MpJiYodGhpcy5nbHBsb3RPcHRpb25zLnRpY2tzPWUsdGhpcy5nbHBsb3RPcHRpb25zLmRhdGFCb3g9dC5kYXRhQm94LHRoaXMuZ2xwbG90LnVwZGF0ZSh0aGlzLmdscGxvdE9wdGlvbnMpLHRoaXMuaGFuZGxlQW5ub3RhdGlvbnMoKSl9LEEuaGFuZGxlQW5ub3RhdGlvbnM9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5ncmFwaERpdixlPXRoaXMuZnVsbExheW91dC5hbm5vdGF0aW9ucyxyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBuPWVbcl07bi54cmVmPT09dGhpcy54YXhpcy5faWQmJm4ueXJlZj09PXRoaXMueWF4aXMuX2lkJiZhLmdldENvbXBvbmVudE1ldGhvZCgiYW5ub3RhdGlvbnMiLCJkcmF3T25lIikodCxyKX19LEEuZGVzdHJveT1mdW5jdGlvbigpe2lmKHRoaXMuZ2xwbG90KXt2YXIgdD10aGlzLnRyYWNlczt0JiZPYmplY3Qua2V5cyh0KS5tYXAoKGZ1bmN0aW9uKGUpe3RbZV0uZGlzcG9zZSgpLGRlbGV0ZSB0W2VdfSkpLHRoaXMuZ2xwbG90LmRpc3Bvc2UoKSx0aGlzLmNvbnRhaW5lci5yZW1vdmVDaGlsZCh0aGlzLnN2Z0NvbnRhaW5lciksdGhpcy5jb250YWluZXIucmVtb3ZlQ2hpbGQodGhpcy5tb3VzZUNvbnRhaW5lciksdGhpcy5mdWxsRGF0YT1udWxsLHRoaXMuZ2xwbG90PW51bGwsdGhpcy5zdG9wcGVkPSEwLHRoaXMuY2FtZXJhLm1vdXNlTGlzdGVuZXIuZW5hYmxlZD0hMSx0aGlzLm1vdXNlQ29udGFpbmVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoIndoZWVsIix0aGlzLmNhbWVyYS53aGVlbExpc3RlbmVyKSx0aGlzLmNhbWVyYT1udWxsfX0sQS5wbG90PWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLmdscGxvdDt0aGlzLnVwZGF0ZVJlZnMociksdGhpcy54YXhpcy5jbGVhckNhbGMoKSx0aGlzLnlheGlzLmNsZWFyQ2FsYygpLHRoaXMudXBkYXRlVHJhY2VzKHQsZSksdGhpcy51cGRhdGVGeChyLmRyYWdtb2RlKTt2YXIgaT1yLndpZHRoLGE9ci5oZWlnaHQ7dGhpcy51cGRhdGVTaXplKHRoaXMuY2FudmFzKTt2YXIgbz10aGlzLmdscGxvdE9wdGlvbnM7by5tZXJnZShyKSxvLnNjcmVlbkJveD1bMCwwLGksYV07dmFyIHM9e19mdWxsTGF5b3V0OntfYXhpc0NvbnN0cmFpbnRHcm91cHM6ci5fYXhpc0NvbnN0cmFpbnRHcm91cHMseGF4aXM6dGhpcy54YXhpcyx5YXhpczp0aGlzLnlheGlzLF9zaXplOnIuX3NpemV9fTt2KHMsdGhpcy54YXhpcyksdihzLHRoaXMueWF4aXMpO3ZhciBsLGMsdT1yLl9zaXplLGY9dGhpcy54YXhpcy5kb21haW4saD10aGlzLnlheGlzLmRvbWFpbjtmb3Ioby52aWV3Qm94PVt1LmwrZlswXSp1LncsdS5iK2hbMF0qdS5oLGktdS5yLSgxLWZbMV0pKnUudyxhLXUudC0oMS1oWzFdKSp1LmhdLHRoaXMubW91c2VDb250YWluZXIuc3R5bGUud2lkdGg9dS53KihmWzFdLWZbMF0pKyJweCIsdGhpcy5tb3VzZUNvbnRhaW5lci5zdHlsZS5oZWlnaHQ9dS5oKihoWzFdLWhbMF0pKyJweCIsdGhpcy5tb3VzZUNvbnRhaW5lci5oZWlnaHQ9dS5oKihoWzFdLWhbMF0pLHRoaXMubW91c2VDb250YWluZXIuc3R5bGUubGVmdD11LmwrZlswXSp1LncrInB4Iix0aGlzLm1vdXNlQ29udGFpbmVyLnN0eWxlLnRvcD11LnQrKDEtaFsxXSkqdS5oKyJweCIsYz0wO2M8MjsrK2MpKGw9dGhpc1t3W2NdXSkuX2xlbmd0aD1vLnZpZXdCb3hbYysyXS1vLnZpZXdCb3hbY10seSh0aGlzLmdyYXBoRGl2LGwpLGwuc2V0U2NhbGUoKTtnKHMpLG8udGlja3M9dGhpcy5jb21wdXRlVGlja01hcmtzKCksby5kYXRhQm94PXRoaXMuY2FsY0RhdGFCb3goKSxvLm1lcmdlKHIpLG4udXBkYXRlKG8pLHRoaXMuZ2xwbG90LmRyYXcoKX0sQS5jYWxjRGF0YUJveD1mdW5jdGlvbigpe3ZhciB0PXRoaXMueGF4aXMsZT10aGlzLnlheGlzLHI9dC5yYW5nZSxuPWUucmFuZ2UsaT10LnIybCxhPWUucjJsO3JldHVybltpKHJbMF0pLGEoblswXSksaShyWzFdKSxhKG5bMV0pXX0sQS5zZXRSYW5nZXM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy54YXhpcyxyPXRoaXMueWF4aXMsbj1lLmwycixpPXIubDJyO2UucmFuZ2U9W24odFswXSksbih0WzJdKV0sci5yYW5nZT1baSh0WzFdKSxpKHRbM10pXX0sQS51cGRhdGVUcmFjZXM9ZnVuY3Rpb24odCxlKXt2YXIgcixuLGksYT1PYmplY3Qua2V5cyh0aGlzLnRyYWNlcyk7dGhpcy5mdWxsRGF0YT10O3Q6Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyl7dmFyIG89YVtyXSxzPXRoaXMudHJhY2VzW29dO2ZvcihuPTA7bjx0Lmxlbmd0aDtuKyspaWYoKGk9dFtuXSkudWlkPT09byYmaS50eXBlPT09cy50eXBlKWNvbnRpbnVlIHQ7cy5kaXNwb3NlKCksZGVsZXRlIHRoaXMudHJhY2VzW29dfWZvcihyPTA7cjx0Lmxlbmd0aDtyKyspe2k9dFtyXTt2YXIgbD1lW3JdLGM9dGhpcy50cmFjZXNbaS51aWRdO2M/Yy51cGRhdGUoaSxsKTooYz1pLl9tb2R1bGUucGxvdCh0aGlzLGksbCksdGhpcy50cmFjZXNbaS51aWRdPWMpfXRoaXMuZ2xwbG90Lm9iamVjdHMuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5fdHJhY2UuaW5kZXgtZS5fdHJhY2UuaW5kZXh9KSl9LEEudXBkYXRlRng9ZnVuY3Rpb24odCl7Xyh0KXx8Yih0KT8odGhpcy5waWNrQ2FudmFzLnN0eWxlWyJwb2ludGVyLWV2ZW50cyJdPSJub25lIix0aGlzLm1vdXNlQ29udGFpbmVyLnN0eWxlWyJwb2ludGVyLWV2ZW50cyJdPSJub25lIik6KHRoaXMucGlja0NhbnZhcy5zdHlsZVsicG9pbnRlci1ldmVudHMiXT0iYXV0byIsdGhpcy5tb3VzZUNvbnRhaW5lci5zdHlsZVsicG9pbnRlci1ldmVudHMiXT0iYXV0byIpLHRoaXMubW91c2VDb250YWluZXIuc3R5bGUuY3Vyc29yPSJwYW4iPT09dD8ibW92ZSI6Inpvb20iPT09dD8iY3Jvc3NoYWlyIjpudWxsfSxBLmVtaXRQb2ludEFjdGlvbj1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcixuPXQudHJhY2UudWlkLGk9dC5wb2ludEluZGV4LGE9MDthPHRoaXMuZnVsbERhdGEubGVuZ3RoO2ErKyl0aGlzLmZ1bGxEYXRhW2FdLnVpZD09PW4mJihyPXRoaXMuZnVsbERhdGFbYV0pO3ZhciBvPXt4OnQudHJhY2VDb29yZFswXSx5OnQudHJhY2VDb29yZFsxXSxjdXJ2ZU51bWJlcjpyLmluZGV4LHBvaW50TnVtYmVyOmksZGF0YTpyLl9pbnB1dCxmdWxsRGF0YTp0aGlzLmZ1bGxEYXRhLHhheGlzOnRoaXMueGF4aXMseWF4aXM6dGhpcy55YXhpc307cy5hcHBlbmRBcnJheVBvaW50VmFsdWUobyxyLGkpLHRoaXMuZ3JhcGhEaXYuZW1pdChlLHtwb2ludHM6W29dfSl9LEEuZHJhdz1mdW5jdGlvbigpe2lmKCF0aGlzLnN0b3BwZWQpe3JlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLnJlZHJhdyk7dmFyIHQ9dGhpcy5nbHBsb3QsZT10aGlzLmNhbWVyYSxyPWUubW91c2VMaXN0ZW5lcixuPTE9PT10aGlzLmxhc3RCdXR0b25TdGF0ZSYmMD09PXIuYnV0dG9ucyxpPXRoaXMuZnVsbExheW91dDt0aGlzLmxhc3RCdXR0b25TdGF0ZT1yLmJ1dHRvbnMsdGhpcy5jYW1lcmFDaGFuZ2VkKCk7dmFyIGEsbz1yLngqdC5waXhlbFJhdGlvLGw9dGhpcy5jYW52YXMuaGVpZ2h0LXQucGl4ZWxSYXRpbypyLnk7aWYoZS5ib3hFbmFibGVkJiYiem9vbSI9PT1pLmRyYWdtb2RlKXt0aGlzLnNlbGVjdEJveC5lbmFibGVkPSEwO2Zvcih2YXIgYz10aGlzLnNlbGVjdEJveC5zZWxlY3RCb3g9W01hdGgubWluKGUuYm94U3RhcnRbMF0sZS5ib3hFbmRbMF0pLE1hdGgubWluKGUuYm94U3RhcnRbMV0sZS5ib3hFbmRbMV0pLE1hdGgubWF4KGUuYm94U3RhcnRbMF0sZS5ib3hFbmRbMF0pLE1hdGgubWF4KGUuYm94U3RhcnRbMV0sZS5ib3hFbmRbMV0pXSx1PTA7dTwyO3UrKyllLmJveFN0YXJ0W3VdPT09ZS5ib3hFbmRbdV0mJihjW3VdPXQuZGF0YUJveFt1XSxjW3UrMl09dC5kYXRhQm94W3UrMl0pO3Quc2V0RGlydHkoKX1lbHNlIGlmKCFlLnBhbm5pbmcmJnRoaXMuaXNNb3VzZU92ZXIpe3RoaXMuc2VsZWN0Qm94LmVuYWJsZWQ9ITE7dmFyIGY9aS5fc2l6ZSxoPXRoaXMueGF4aXMuZG9tYWluLHA9dGhpcy55YXhpcy5kb21haW4sZD0oYT10LnBpY2soby90LnBpeGVsUmF0aW8rZi5sK2hbMF0qZi53LGwvdC5waXhlbFJhdGlvLShmLnQrKDEtcFsxXSkqZi5oKSkpJiZhLm9iamVjdC5fdHJhY2UuaGFuZGxlUGljayhhKTtpZihkJiZuJiZ0aGlzLmVtaXRQb2ludEFjdGlvbihkLCJwbG90bHlfY2xpY2siKSxhJiYic2tpcCIhPT1hLm9iamVjdC5fdHJhY2UuaG92ZXJpbmZvJiZpLmhvdmVybW9kZSYmZCYmKCF0aGlzLmxhc3RQaWNrUmVzdWx0fHx0aGlzLmxhc3RQaWNrUmVzdWx0LnRyYWNlVWlkIT09ZC50cmFjZS51aWR8fHRoaXMubGFzdFBpY2tSZXN1bHQuZGF0YUNvb3JkWzBdIT09ZC5kYXRhQ29vcmRbMF18fHRoaXMubGFzdFBpY2tSZXN1bHQuZGF0YUNvb3JkWzFdIT09ZC5kYXRhQ29vcmRbMV0pKXt2YXIgbT1kO3RoaXMubGFzdFBpY2tSZXN1bHQ9e3RyYWNlVWlkOmQudHJhY2U/ZC50cmFjZS51aWQ6bnVsbCxkYXRhQ29vcmQ6ZC5kYXRhQ29vcmQuc2xpY2UoKX0sdGhpcy5zcGlrZXMudXBkYXRlKHtjZW50ZXI6YS5kYXRhQ29vcmR9KSxtLnNjcmVlbkNvb3JkPVsoKHQudmlld0JveFsyXS10LnZpZXdCb3hbMF0pKihhLmRhdGFDb29yZFswXS10LmRhdGFCb3hbMF0pLyh0LmRhdGFCb3hbMl0tdC5kYXRhQm94WzBdKSt0LnZpZXdCb3hbMF0pL3QucGl4ZWxSYXRpbywodGhpcy5jYW52YXMuaGVpZ2h0LSh0LnZpZXdCb3hbM10tdC52aWV3Qm94WzFdKSooYS5kYXRhQ29vcmRbMV0tdC5kYXRhQm94WzFdKS8odC5kYXRhQm94WzNdLXQuZGF0YUJveFsxXSktdC52aWV3Qm94WzFdKS90LnBpeGVsUmF0aW9dLHRoaXMuZW1pdFBvaW50QWN0aW9uKGQsInBsb3RseV9ob3ZlciIpO3ZhciBnPXRoaXMuZnVsbERhdGFbbS50cmFjZS5pbmRleF18fHt9LHY9bS5wb2ludEluZGV4LHk9cy5jYXN0SG92ZXJpbmZvKGcsaSx2KTtpZih5JiYiYWxsIiE9PXkpe3ZhciB4PXkuc3BsaXQoIisiKTstMT09PXguaW5kZXhPZigieCIpJiYobS50cmFjZUNvb3JkWzBdPXZvaWQgMCksLTE9PT14LmluZGV4T2YoInkiKSYmKG0udHJhY2VDb29yZFsxXT12b2lkIDApLC0xPT09eC5pbmRleE9mKCJ6IikmJihtLnRyYWNlQ29vcmRbMl09dm9pZCAwKSwtMT09PXguaW5kZXhPZigidGV4dCIpJiYobS50ZXh0TGFiZWw9dm9pZCAwKSwtMT09PXguaW5kZXhPZigibmFtZSIpJiYobS5uYW1lPXZvaWQgMCl9cy5sb25lSG92ZXIoe3g6bS5zY3JlZW5Db29yZFswXSx5Om0uc2NyZWVuQ29vcmRbMV0seExhYmVsOnRoaXMuaG92ZXJGb3JtYXR0ZXIoInhheGlzIixtLnRyYWNlQ29vcmRbMF0pLHlMYWJlbDp0aGlzLmhvdmVyRm9ybWF0dGVyKCJ5YXhpcyIsbS50cmFjZUNvb3JkWzFdKSx6TGFiZWw6bS50cmFjZUNvb3JkWzJdLHRleHQ6bS50ZXh0TGFiZWwsbmFtZTptLm5hbWUsY29sb3I6cy5jYXN0SG92ZXJPcHRpb24oZyx2LCJiZ2NvbG9yIil8fG0uY29sb3IsYm9yZGVyQ29sb3I6cy5jYXN0SG92ZXJPcHRpb24oZyx2LCJib3JkZXJjb2xvciIpLGZvbnRGYW1pbHk6cy5jYXN0SG92ZXJPcHRpb24oZyx2LCJmb250LmZhbWlseSIpLGZvbnRTaXplOnMuY2FzdEhvdmVyT3B0aW9uKGcsdiwiZm9udC5zaXplIiksZm9udENvbG9yOnMuY2FzdEhvdmVyT3B0aW9uKGcsdiwiZm9udC5jb2xvciIpLG5hbWVMZW5ndGg6cy5jYXN0SG92ZXJPcHRpb24oZyx2LCJuYW1lbGVuZ3RoIiksdGV4dEFsaWduOnMuY2FzdEhvdmVyT3B0aW9uKGcsdiwiYWxpZ24iKX0se2NvbnRhaW5lcjp0aGlzLnN2Z0NvbnRhaW5lcixnZDp0aGlzLmdyYXBoRGl2fSl9fWF8fHRoaXMudW5ob3ZlcigpLHQuZHJhdygpfX0sQS51bmhvdmVyPWZ1bmN0aW9uKCl7dGhpcy5sYXN0UGlja1Jlc3VsdCYmKHRoaXMuc3Bpa2VzLnVwZGF0ZSh7fSksdGhpcy5sYXN0UGlja1Jlc3VsdD1udWxsLHRoaXMuZ3JhcGhEaXYuZW1pdCgicGxvdGx5X3VuaG92ZXIiKSxzLmxvbmVVbmhvdmVyKHRoaXMuc3ZnQ29udGFpbmVyKSl9LEEuaG92ZXJGb3JtYXR0ZXI9ZnVuY3Rpb24odCxlKXtpZih2b2lkIDAhPT1lKXt2YXIgcj10aGlzW3RdO3JldHVybiBvLnRpY2tUZXh0KHIsci5jMmwoZSksImhvdmVyIikudGV4dH19fSx7Ii4uLy4uLy4uL3N0YWNrZ2xfbW9kdWxlcyI6MTEzMywiLi4vLi4vY29tcG9uZW50cy9kcmFnZWxlbWVudC9oZWxwZXJzIjozODUsIi4uLy4uL2NvbXBvbmVudHMvZngiOjQwNywiLi4vLi4vbGliL3Nob3dfbm9fd2ViZ2xfbXNnIjo1MzcsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo1NjYsIi4uLy4uL3JlZ2lzdHJ5Ijo2NDcsIi4uL2NhcnRlc2lhbi9hdXRvcmFuZ2UiOjU2NSwiLi4vY2FydGVzaWFuL2NvbnN0YW50cyI6NTczLCIuLi9jYXJ0ZXNpYW4vY29uc3RyYWludHMiOjU3NCwiLi9jYW1lcmEiOjYwMywiLi9jb252ZXJ0Ijo2MDQsIndlYmdsLWNvbnRleHQiOjMzMn1dLDYwNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIikub3ZlcnJpZGVBbGwsaT10KCIuLi8uLi9jb21wb25lbnRzL2Z4L2xheW91dF9hdHRyaWJ1dGVzIiksYT10KCIuL3NjZW5lIiksbz10KCIuLi9nZXRfZGF0YSIpLmdldFN1YnBsb3REYXRhLHM9dCgiLi4vLi4vbGliIiksbD10KCIuLi8uLi9jb25zdGFudHMveG1sbnNfbmFtZXNwYWNlcyIpO3IubmFtZT0iZ2wzZCIsci5hdHRyPSJzY2VuZSIsci5pZFJvb3Q9InNjZW5lIixyLmlkUmVnZXg9ci5hdHRyUmVnZXg9cy5jb3VudGVyUmVnZXgoInNjZW5lIiksci5hdHRyaWJ1dGVzPXQoIi4vbGF5b3V0L2F0dHJpYnV0ZXMiKSxyLmxheW91dEF0dHJpYnV0ZXM9dCgiLi9sYXlvdXQvbGF5b3V0X2F0dHJpYnV0ZXMiKSxyLmJhc2VMYXlvdXRBdHRyT3ZlcnJpZGVzPW4oe2hvdmVybGFiZWw6aS5ob3ZlcmxhYmVsfSwicGxvdCIsIm5lc3RlZCIpLHIuc3VwcGx5TGF5b3V0RGVmYXVsdHM9dCgiLi9sYXlvdXQvZGVmYXVsdHMiKSxyLnBsb3Q9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQuX2Z1bGxMYXlvdXQscj10Ll9mdWxsRGF0YSxuPWUuX3N1YnBsb3RzLmdsM2QsaT0wO2k8bi5sZW5ndGg7aSsrKXt2YXIgcz1uW2ldLGw9byhyLCJnbDNkIixzKSxjPWVbc10sdT1jLmNhbWVyYSxmPWMuX3NjZW5lO2Z8fChmPW5ldyBhKHtpZDpzLGdyYXBoRGl2OnQsY29udGFpbmVyOnQucXVlcnlTZWxlY3RvcigiLmdsLWNvbnRhaW5lciIpLHN0YXRpY1Bsb3Q6dC5fY29udGV4dC5zdGF0aWNQbG90LHBsb3RHbFBpeGVsUmF0aW86dC5fY29udGV4dC5wbG90R2xQaXhlbFJhdGlvLGNhbWVyYTp1fSxlKSxjLl9zY2VuZT1mKSxmLnZpZXdJbml0aWFsfHwoZi52aWV3SW5pdGlhbD17dXA6e3g6dS51cC54LHk6dS51cC55LHo6dS51cC56fSxleWU6e3g6dS5leWUueCx5OnUuZXllLnksejp1LmV5ZS56fSxjZW50ZXI6e3g6dS5jZW50ZXIueCx5OnUuY2VudGVyLnksejp1LmNlbnRlci56fX0pLGYucGxvdChsLGUsdC5sYXlvdXQpfX0sci5jbGVhbj1mdW5jdGlvbih0LGUscixuKXtmb3IodmFyIGk9bi5fc3VicGxvdHMuZ2wzZHx8W10sYT0wO2E8aS5sZW5ndGg7YSsrKXt2YXIgbz1pW2FdOyFlW29dJiZuW29dLl9zY2VuZSYmKG5bb10uX3NjZW5lLmRlc3Ryb3koKSxuLl9pbmZvbGF5ZXImJm4uX2luZm9sYXllci5zZWxlY3RBbGwoIi5hbm5vdGF0aW9uLSIrbykucmVtb3ZlKCkpfX0sci50b1NWRz1mdW5jdGlvbih0KXtmb3IodmFyIGU9dC5fZnVsbExheW91dCxyPWUuX3N1YnBsb3RzLmdsM2Qsbj1lLl9zaXplLGk9MDtpPHIubGVuZ3RoO2krKyl7dmFyIGE9ZVtyW2ldXSxvPWEuZG9tYWluLHM9YS5fc2NlbmUsYz1zLnRvSW1hZ2UoInBuZyIpO2UuX2dsaW1hZ2VzLmFwcGVuZCgic3ZnOmltYWdlIikuYXR0cih7eG1sbnM6bC5zdmcsInhsaW5rOmhyZWYiOmMseDpuLmwrbi53Km8ueFswXSx5Om4udCtuLmgqKDEtby55WzFdKSx3aWR0aDpuLncqKG8ueFsxXS1vLnhbMF0pLGhlaWdodDpuLmgqKG8ueVsxXS1vLnlbMF0pLHByZXNlcnZlQXNwZWN0UmF0aW86Im5vbmUifSkscy5kZXN0cm95KCl9fSxyLmNsZWFuSWQ9ZnVuY3Rpb24odCl7aWYodC5tYXRjaCgvXnNjZW5lWzAtOV0qJC8pKXt2YXIgZT10LnN1YnN0cig1KTtyZXR1cm4iMSI9PT1lJiYoZT0iIiksInNjZW5lIitlfX0sci51cGRhdGVGeD1mdW5jdGlvbih0KXtmb3IodmFyIGU9dC5fZnVsbExheW91dCxyPWUuX3N1YnBsb3RzLmdsM2Qsbj0wO248ci5sZW5ndGg7bisrKXtlW3Jbbl1dLl9zY2VuZS51cGRhdGVGeChlLmRyYWdtb2RlLGUuaG92ZXJtb2RlKX19fSx7Ii4uLy4uL2NvbXBvbmVudHMvZngvbGF5b3V0X2F0dHJpYnV0ZXMiOjQwOCwiLi4vLi4vY29uc3RhbnRzL3htbG5zX25hbWVzcGFjZXMiOjQ5MiwiLi4vLi4vbGliIjo1MTUsIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiOjU0OCwiLi4vZ2V0X2RhdGEiOjYwMiwiLi9sYXlvdXQvYXR0cmlidXRlcyI6NjA4LCIuL2xheW91dC9kZWZhdWx0cyI6NjEyLCIuL2xheW91dC9sYXlvdXRfYXR0cmlidXRlcyI6NjEzLCIuL3NjZW5lIjo2MTd9XSw2MDg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtzY2VuZTp7dmFsVHlwZToic3VicGxvdGlkIixkZmx0OiJzY2VuZSIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifX19LHt9XSw2MDk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLGk9dCgiLi4vLi4vY2FydGVzaWFuL2xheW91dF9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxvPXQoIi4uLy4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiKS5vdmVycmlkZUFsbDtlLmV4cG9ydHM9byh7dmlzaWJsZTppLnZpc2libGUsc2hvd3NwaWtlczp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMH0sc3Bpa2VzaWRlczp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMH0sc3Bpa2V0aGlja25lc3M6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoyfSxzcGlrZWNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpuLmRlZmF1bHRMaW5lfSxzaG93YmFja2dyb3VuZDp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0sYmFja2dyb3VuZGNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDoicmdiYSgyMDQsIDIwNCwgMjA0LCAwLjUpIn0sc2hvd2F4ZXNsYWJlbHM6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITB9LGNvbG9yOmkuY29sb3IsY2F0ZWdvcnlvcmRlcjppLmNhdGVnb3J5b3JkZXIsY2F0ZWdvcnlhcnJheTppLmNhdGVnb3J5YXJyYXksdGl0bGU6e3RleHQ6aS50aXRsZS50ZXh0LGZvbnQ6aS50aXRsZS5mb250fSx0eXBlOmEoe30saS50eXBlLHt2YWx1ZXM6WyItIiwibGluZWFyIiwibG9nIiwiZGF0ZSIsImNhdGVnb3J5Il19KSxhdXRvdHlwZW51bWJlcnM6aS5hdXRvdHlwZW51bWJlcnMsYXV0b3JhbmdlOmkuYXV0b3JhbmdlLHJhbmdlbW9kZTppLnJhbmdlbW9kZSxyYW5nZTphKHt9LGkucmFuZ2Use2l0ZW1zOlt7dmFsVHlwZToiYW55IixlZGl0VHlwZToicGxvdCIsaW1wbGllZEVkaXRzOnsiXmF1dG9yYW5nZSI6ITF9fSx7dmFsVHlwZToiYW55IixlZGl0VHlwZToicGxvdCIsaW1wbGllZEVkaXRzOnsiXmF1dG9yYW5nZSI6ITF9fV0sYW5pbTohMX0pLHRpY2ttb2RlOmkudGlja21vZGUsbnRpY2tzOmkubnRpY2tzLHRpY2swOmkudGljazAsZHRpY2s6aS5kdGljayx0aWNrdmFsczppLnRpY2t2YWxzLHRpY2t0ZXh0OmkudGlja3RleHQsdGlja3M6aS50aWNrcyxtaXJyb3I6aS5taXJyb3IsdGlja2xlbjppLnRpY2tsZW4sdGlja3dpZHRoOmkudGlja3dpZHRoLHRpY2tjb2xvcjppLnRpY2tjb2xvcixzaG93dGlja2xhYmVsczppLnNob3d0aWNrbGFiZWxzLHRpY2tmb250OmkudGlja2ZvbnQsdGlja2FuZ2xlOmkudGlja2FuZ2xlLHRpY2twcmVmaXg6aS50aWNrcHJlZml4LHNob3d0aWNrcHJlZml4Omkuc2hvd3RpY2twcmVmaXgsdGlja3N1ZmZpeDppLnRpY2tzdWZmaXgsc2hvd3RpY2tzdWZmaXg6aS5zaG93dGlja3N1ZmZpeCxzaG93ZXhwb25lbnQ6aS5zaG93ZXhwb25lbnQsZXhwb25lbnRmb3JtYXQ6aS5leHBvbmVudGZvcm1hdCxtaW5leHBvbmVudDppLm1pbmV4cG9uZW50LHNlcGFyYXRldGhvdXNhbmRzOmkuc2VwYXJhdGV0aG91c2FuZHMsdGlja2Zvcm1hdDppLnRpY2tmb3JtYXQsdGlja2Zvcm1hdHN0b3BzOmkudGlja2Zvcm1hdHN0b3BzLGhvdmVyZm9ybWF0OmkuaG92ZXJmb3JtYXQsc2hvd2xpbmU6aS5zaG93bGluZSxsaW5lY29sb3I6aS5saW5lY29sb3IsbGluZXdpZHRoOmkubGluZXdpZHRoLHNob3dncmlkOmkuc2hvd2dyaWQsZ3JpZGNvbG9yOmEoe30saS5ncmlkY29sb3Ise2RmbHQ6InJnYigyMDQsIDIwNCwgMjA0KSJ9KSxncmlkd2lkdGg6aS5ncmlkd2lkdGgsemVyb2xpbmU6aS56ZXJvbGluZSx6ZXJvbGluZWNvbG9yOmkuemVyb2xpbmVjb2xvcix6ZXJvbGluZXdpZHRoOmkuemVyb2xpbmV3aWR0aCxfZGVwcmVjYXRlZDp7dGl0bGU6aS5fZGVwcmVjYXRlZC50aXRsZSx0aXRsZWZvbnQ6aS5fZGVwcmVjYXRlZC50aXRsZWZvbnR9fSwicGxvdCIsImZyb20tcm9vdCIpfSx7Ii4uLy4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjM2NywiLi4vLi4vLi4vbGliL2V4dGVuZCI6NTA1LCIuLi8uLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIjo1NDgsIi4uLy4uL2NhcnRlc2lhbi9sYXlvdXRfYXR0cmlidXRlcyI6NTc5fV0sNjEwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInRpbnljb2xvcjIiKS5taXgsaT10KCIuLi8uLi8uLi9saWIiKSxhPXQoIi4uLy4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKSxvPXQoIi4vYXhpc19hdHRyaWJ1dGVzIikscz10KCIuLi8uLi9jYXJ0ZXNpYW4vdHlwZV9kZWZhdWx0cyIpLGw9dCgiLi4vLi4vY2FydGVzaWFuL2F4aXNfZGVmYXVsdHMiKSxjPVsieGF4aXMiLCJ5YXhpcyIsInpheGlzIl07ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgdSxmO2Z1bmN0aW9uIGgodCxlKXtyZXR1cm4gaS5jb2VyY2UodSxmLG8sdCxlKX1mb3IodmFyIHA9MDtwPGMubGVuZ3RoO3ArKyl7dmFyIGQ9Y1twXTt1PXRbZF18fHt9LChmPWEubmV3Q29udGFpbmVyKGUsZCkpLl9pZD1kWzBdK3Iuc2NlbmUsZi5fbmFtZT1kLHModSxmLGgsciksbCh1LGYsaCx7Zm9udDpyLmZvbnQsbGV0dGVyOmRbMF0sZGF0YTpyLmRhdGEsc2hvd0dyaWQ6ITAsbm9UaWNrc29uOiEwLG5vVGlja2xhYmVsbW9kZTohMCxub1RpY2tsYWJlbHN0ZXA6ITAsbm9UaWNrbGFiZWxwb3NpdGlvbjohMCxub1RpY2tsYWJlbG92ZXJmbG93OiEwLGJnQ29sb3I6ci5iZ0NvbG9yLGNhbGVuZGFyOnIuY2FsZW5kYXJ9LHIuZnVsbExheW91dCksaCgiZ3JpZGNvbG9yIixuKGYuY29sb3Isci5iZ0NvbG9yLDEzNjAwLzE4NykudG9SZ2JTdHJpbmcoKSksaCgidGl0bGUudGV4dCIsZFswXSksZi5zZXRTY2FsZT1pLm5vb3AsaCgic2hvd3NwaWtlcyIpJiYoaCgic3Bpa2VzaWRlcyIpLGgoInNwaWtldGhpY2tuZXNzIiksaCgic3Bpa2Vjb2xvciIsZi5jb2xvcikpLGgoInNob3dheGVzbGFiZWxzIiksaCgic2hvd2JhY2tncm91bmQiKSYmaCgiYmFja2dyb3VuZGNvbG9yIil9fX0seyIuLi8uLi8uLi9saWIiOjUxNSwiLi4vLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6NTU1LCIuLi8uLi9jYXJ0ZXNpYW4vYXhpc19kZWZhdWx0cyI6NTY4LCIuLi8uLi9jYXJ0ZXNpYW4vdHlwZV9kZWZhdWx0cyI6NTkxLCIuL2F4aXNfYXR0cmlidXRlcyI6NjA5LHRpbnljb2xvcjI6MzEzfV0sNjExOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uLy4uL2xpYi9zdHIycmdiYXJyYXkiKSxpPXQoIi4uLy4uLy4uL2xpYiIpLGE9WyJ4YXhpcyIsInlheGlzIiwiemF4aXMiXTtmdW5jdGlvbiBvKCl7dGhpcy5ib3VuZHM9W1stMTAsLTEwLC0xMF0sWzEwLDEwLDEwXV0sdGhpcy50aWNrcz1bW10sW10sW11dLHRoaXMudGlja0VuYWJsZT1bITAsITAsITBdLHRoaXMudGlja0ZvbnQ9WyJzYW5zLXNlcmlmIiwic2Fucy1zZXJpZiIsInNhbnMtc2VyaWYiXSx0aGlzLnRpY2tTaXplPVsxMiwxMiwxMl0sdGhpcy50aWNrQW5nbGU9WzAsMCwwXSx0aGlzLnRpY2tDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMudGlja1BhZD1bMTgsMTgsMThdLHRoaXMubGFiZWxzPVsieCIsInkiLCJ6Il0sdGhpcy5sYWJlbEVuYWJsZT1bITAsITAsITBdLHRoaXMubGFiZWxGb250PVsiT3BlbiBTYW5zIiwiT3BlbiBTYW5zIiwiT3BlbiBTYW5zIl0sdGhpcy5sYWJlbFNpemU9WzIwLDIwLDIwXSx0aGlzLmxhYmVsQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLmxhYmVsUGFkPVszMCwzMCwzMF0sdGhpcy5saW5lRW5hYmxlPVshMCwhMCwhMF0sdGhpcy5saW5lTWlycm9yPVshMSwhMSwhMV0sdGhpcy5saW5lV2lkdGg9WzEsMSwxXSx0aGlzLmxpbmVDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMubGluZVRpY2tFbmFibGU9WyEwLCEwLCEwXSx0aGlzLmxpbmVUaWNrTWlycm9yPVshMSwhMSwhMV0sdGhpcy5saW5lVGlja0xlbmd0aD1bMTAsMTAsMTBdLHRoaXMubGluZVRpY2tXaWR0aD1bMSwxLDFdLHRoaXMubGluZVRpY2tDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMuZ3JpZEVuYWJsZT1bITAsITAsITBdLHRoaXMuZ3JpZFdpZHRoPVsxLDEsMV0sdGhpcy5ncmlkQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLnplcm9FbmFibGU9WyEwLCEwLCEwXSx0aGlzLnplcm9MaW5lQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLnplcm9MaW5lV2lkdGg9WzIsMiwyXSx0aGlzLmJhY2tncm91bmRFbmFibGU9WyEwLCEwLCEwXSx0aGlzLmJhY2tncm91bmRDb2xvcj1bWy44LC44LC44LC41XSxbLjgsLjgsLjgsLjVdLFsuOCwuOCwuOCwuNV1dLHRoaXMuX2RlZmF1bHRUaWNrUGFkPXRoaXMudGlja1BhZC5zbGljZSgpLHRoaXMuX2RlZmF1bHRMYWJlbFBhZD10aGlzLmxhYmVsUGFkLnNsaWNlKCksdGhpcy5fZGVmYXVsdExpbmVUaWNrTGVuZ3RoPXRoaXMubGluZVRpY2tMZW5ndGguc2xpY2UoKX1vLnByb3RvdHlwZS5tZXJnZT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wO3I8MzsrK3Ipe3ZhciBvPWVbYVtyXV07by52aXNpYmxlPyh0aGlzLmxhYmVsc1tyXT10Ll9tZXRhP2kudGVtcGxhdGVTdHJpbmcoby50aXRsZS50ZXh0LHQuX21ldGEpOm8udGl0bGUudGV4dCwiZm9udCJpbiBvLnRpdGxlJiYoby50aXRsZS5mb250LmNvbG9yJiYodGhpcy5sYWJlbENvbG9yW3JdPW4oby50aXRsZS5mb250LmNvbG9yKSksby50aXRsZS5mb250LmZhbWlseSYmKHRoaXMubGFiZWxGb250W3JdPW8udGl0bGUuZm9udC5mYW1pbHkpLG8udGl0bGUuZm9udC5zaXplJiYodGhpcy5sYWJlbFNpemVbcl09by50aXRsZS5mb250LnNpemUpKSwic2hvd2xpbmUiaW4gbyYmKHRoaXMubGluZUVuYWJsZVtyXT1vLnNob3dsaW5lKSwibGluZWNvbG9yImluIG8mJih0aGlzLmxpbmVDb2xvcltyXT1uKG8ubGluZWNvbG9yKSksImxpbmV3aWR0aCJpbiBvJiYodGhpcy5saW5lV2lkdGhbcl09by5saW5ld2lkdGgpLCJzaG93Z3JpZCJpbiBvJiYodGhpcy5ncmlkRW5hYmxlW3JdPW8uc2hvd2dyaWQpLCJncmlkY29sb3IiaW4gbyYmKHRoaXMuZ3JpZENvbG9yW3JdPW4oby5ncmlkY29sb3IpKSwiZ3JpZHdpZHRoImluIG8mJih0aGlzLmdyaWRXaWR0aFtyXT1vLmdyaWR3aWR0aCksImxvZyI9PT1vLnR5cGU/dGhpcy56ZXJvRW5hYmxlW3JdPSExOiJ6ZXJvbGluZSJpbiBvJiYodGhpcy56ZXJvRW5hYmxlW3JdPW8uemVyb2xpbmUpLCJ6ZXJvbGluZWNvbG9yImluIG8mJih0aGlzLnplcm9MaW5lQ29sb3Jbcl09bihvLnplcm9saW5lY29sb3IpKSwiemVyb2xpbmV3aWR0aCJpbiBvJiYodGhpcy56ZXJvTGluZVdpZHRoW3JdPW8uemVyb2xpbmV3aWR0aCksInRpY2tzImluIG8mJm8udGlja3M/dGhpcy5saW5lVGlja0VuYWJsZVtyXT0hMDp0aGlzLmxpbmVUaWNrRW5hYmxlW3JdPSExLCJ0aWNrbGVuImluIG8mJih0aGlzLmxpbmVUaWNrTGVuZ3RoW3JdPXRoaXMuX2RlZmF1bHRMaW5lVGlja0xlbmd0aFtyXT1vLnRpY2tsZW4pLCJ0aWNrY29sb3IiaW4gbyYmKHRoaXMubGluZVRpY2tDb2xvcltyXT1uKG8udGlja2NvbG9yKSksInRpY2t3aWR0aCJpbiBvJiYodGhpcy5saW5lVGlja1dpZHRoW3JdPW8udGlja3dpZHRoKSwidGlja2FuZ2xlImluIG8mJih0aGlzLnRpY2tBbmdsZVtyXT0iYXV0byI9PT1vLnRpY2thbmdsZT8tMzYwMDpNYXRoLlBJKi1vLnRpY2thbmdsZS8xODApLCJzaG93dGlja2xhYmVscyJpbiBvJiYodGhpcy50aWNrRW5hYmxlW3JdPW8uc2hvd3RpY2tsYWJlbHMpLCJ0aWNrZm9udCJpbiBvJiYoby50aWNrZm9udC5jb2xvciYmKHRoaXMudGlja0NvbG9yW3JdPW4oby50aWNrZm9udC5jb2xvcikpLG8udGlja2ZvbnQuZmFtaWx5JiYodGhpcy50aWNrRm9udFtyXT1vLnRpY2tmb250LmZhbWlseSksby50aWNrZm9udC5zaXplJiYodGhpcy50aWNrU2l6ZVtyXT1vLnRpY2tmb250LnNpemUpKSwibWlycm9yImluIG8/LTEhPT1bInRpY2tzIiwiYWxsIiwiYWxsdGlja3MiXS5pbmRleE9mKG8ubWlycm9yKT8odGhpcy5saW5lVGlja01pcnJvcltyXT0hMCx0aGlzLmxpbmVNaXJyb3Jbcl09ITApOiEwPT09by5taXJyb3I/KHRoaXMubGluZVRpY2tNaXJyb3Jbcl09ITEsdGhpcy5saW5lTWlycm9yW3JdPSEwKToodGhpcy5saW5lVGlja01pcnJvcltyXT0hMSx0aGlzLmxpbmVNaXJyb3Jbcl09ITEpOnRoaXMubGluZU1pcnJvcltyXT0hMSwic2hvd2JhY2tncm91bmQiaW4gbyYmITEhPT1vLnNob3diYWNrZ3JvdW5kPyh0aGlzLmJhY2tncm91bmRFbmFibGVbcl09ITAsdGhpcy5iYWNrZ3JvdW5kQ29sb3Jbcl09bihvLmJhY2tncm91bmRjb2xvcikpOnRoaXMuYmFja2dyb3VuZEVuYWJsZVtyXT0hMSk6KHRoaXMudGlja0VuYWJsZVtyXT0hMSx0aGlzLmxhYmVsRW5hYmxlW3JdPSExLHRoaXMubGluZUVuYWJsZVtyXT0hMSx0aGlzLmxpbmVUaWNrRW5hYmxlW3JdPSExLHRoaXMuZ3JpZEVuYWJsZVtyXT0hMSx0aGlzLnplcm9FbmFibGVbcl09ITEsdGhpcy5iYWNrZ3JvdW5kRW5hYmxlW3JdPSExKX19LGUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPW5ldyBvO3JldHVybiByLm1lcmdlKHQsZSkscn19LHsiLi4vLi4vLi4vbGliIjo1MTUsIi4uLy4uLy4uL2xpYi9zdHIycmdiYXJyYXkiOjU0MH1dLDYxMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi8uLi9saWIiKSxpPXQoIi4uLy4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxhPXQoIi4uLy4uLy4uL3JlZ2lzdHJ5Iiksbz10KCIuLi8uLi9zdWJwbG90X2RlZmF1bHRzIikscz10KCIuL2F4aXNfZGVmYXVsdHMiKSxsPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxjPXQoIi4uLy4uL2dldF9kYXRhIikuZ2V0U3VicGxvdERhdGE7ZnVuY3Rpb24gdSh0LGUscixuKXtmb3IodmFyIG89cigiYmdjb2xvciIpLGw9aS5jb21iaW5lKG8sbi5wYXBlcl9iZ2NvbG9yKSx1PVsidXAiLCJjZW50ZXIiLCJleWUiXSxmPTA7Zjx1Lmxlbmd0aDtmKyspcigiY2FtZXJhLiIrdVtmXSsiLngiKSxyKCJjYW1lcmEuIit1W2ZdKyIueSIpLHIoImNhbWVyYS4iK3VbZl0rIi56Iik7cigiY2FtZXJhLnByb2plY3Rpb24udHlwZSIpO3ZhciBoPSEhcigiYXNwZWN0cmF0aW8ueCIpJiYhIXIoImFzcGVjdHJhdGlvLnkiKSYmISFyKCJhc3BlY3RyYXRpby56IikscD1yKCJhc3BlY3Rtb2RlIixoPyJtYW51YWwiOiJhdXRvIik7aHx8KHQuYXNwZWN0cmF0aW89ZS5hc3BlY3RyYXRpbz17eDoxLHk6MSx6OjF9LCJtYW51YWwiPT09cCYmKGUuYXNwZWN0bW9kZT0iYXV0byIpLHQuYXNwZWN0bW9kZT1lLmFzcGVjdG1vZGUpO3ZhciBkPWMobi5mdWxsRGF0YSwiZ2wzZCIsbi5pZCk7cyh0LGUse2ZvbnQ6bi5mb250LHNjZW5lOm4uaWQsZGF0YTpkLGJnQ29sb3I6bCxjYWxlbmRhcjpuLmNhbGVuZGFyLGF1dG90eXBlbnVtYmVyc0RmbHQ6bi5hdXRvdHlwZW51bWJlcnNEZmx0LGZ1bGxMYXlvdXQ6bi5mdWxsTGF5b3V0fSksYS5nZXRDb21wb25lbnRNZXRob2QoImFubm90YXRpb25zM2QiLCJoYW5kbGVEZWZhdWx0cyIpKHQsZSxuKTt2YXIgbT1uLmdldERmbHRGcm9tTGF5b3V0KCJkcmFnbW9kZSIpO2lmKCExIT09bSYmIW0paWYobT0ib3JiaXQiLHQuY2FtZXJhJiZ0LmNhbWVyYS51cCl7dmFyIGc9dC5jYW1lcmEudXAueCx2PXQuY2FtZXJhLnVwLnkseT10LmNhbWVyYS51cC56OzAhPT15JiYoZyYmdiYmeT95L01hdGguc3FydChnKmcrdip2K3kqeSk+Ljk5OSYmKG09InR1cm50YWJsZSIpOm09InR1cm50YWJsZSIpfWVsc2UgbT0idHVybnRhYmxlIjtyKCJkcmFnbW9kZSIsbSkscigiaG92ZXJtb2RlIixuLmdldERmbHRGcm9tTGF5b3V0KCJob3Zlcm1vZGUiKSl9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgaT1lLl9iYXNlUGxvdE1vZHVsZXMubGVuZ3RoPjE7byh0LGUscix7dHlwZToiZ2wzZCIsYXR0cmlidXRlczpsLGhhbmRsZURlZmF1bHRzOnUsZnVsbExheW91dDplLGZvbnQ6ZS5mb250LGZ1bGxEYXRhOnIsZ2V0RGZsdEZyb21MYXlvdXQ6ZnVuY3Rpb24oZSl7aWYoIWkpcmV0dXJuIG4udmFsaWRhdGUodFtlXSxsW2VdKT90W2VdOnZvaWQgMH0sYXV0b3R5cGVudW1iZXJzRGZsdDplLmF1dG90eXBlbnVtYmVycyxwYXBlcl9iZ2NvbG9yOmUucGFwZXJfYmdjb2xvcixjYWxlbmRhcjplLmNhbGVuZGFyfSl9fSx7Ii4uLy4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjM2NywiLi4vLi4vLi4vbGliIjo1MTUsIi4uLy4uLy4uL3JlZ2lzdHJ5Ijo2NDcsIi4uLy4uL2dldF9kYXRhIjo2MDIsIi4uLy4uL3N1YnBsb3RfZGVmYXVsdHMiOjY0MSwiLi9heGlzX2RlZmF1bHRzIjo2MTAsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjYxM31dLDYxMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2F4aXNfYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vZG9tYWluIikuYXR0cmlidXRlcyxhPXQoIi4uLy4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LG89dCgiLi4vLi4vLi4vbGliIikuY291bnRlclJlZ2V4O2Z1bmN0aW9uIHModCxlLHIpe3JldHVybnt4Ont2YWxUeXBlOiJudW1iZXIiLGRmbHQ6dCxlZGl0VHlwZToiY2FtZXJhIn0seTp7dmFsVHlwZToibnVtYmVyIixkZmx0OmUsZWRpdFR5cGU6ImNhbWVyYSJ9LHo6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDpyLGVkaXRUeXBlOiJjYW1lcmEifSxlZGl0VHlwZToiY2FtZXJhIn19ZS5leHBvcnRzPXtfYXJyYXlBdHRyUmVnZXhwczpbbygic2NlbmUiLCIuYW5ub3RhdGlvbnMiLCEwKV0sYmdjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6InJnYmEoMCwwLDAsMCkiLGVkaXRUeXBlOiJwbG90In0sY2FtZXJhOnt1cDphKHMoMCwwLDEpLHt9KSxjZW50ZXI6YShzKDAsMCwwKSx7fSksZXllOmEocygxLjI1LDEuMjUsMS4yNSkse30pLHByb2plY3Rpb246e3R5cGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInBlcnNwZWN0aXZlIiwib3J0aG9ncmFwaGljIl0sZGZsdDoicGVyc3BlY3RpdmUiLGVkaXRUeXBlOiJjYWxjIn0sZWRpdFR5cGU6ImNhbGMifSxlZGl0VHlwZToiY2FtZXJhIn0sZG9tYWluOmkoe25hbWU6InNjZW5lIixlZGl0VHlwZToicGxvdCJ9KSxhc3BlY3Rtb2RlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJhdXRvIiwiY3ViZSIsImRhdGEiLCJtYW51YWwiXSxkZmx0OiJhdXRvIixlZGl0VHlwZToicGxvdCIsaW1wbGllZEVkaXRzOnsiYXNwZWN0cmF0aW8ueCI6dm9pZCAwLCJhc3BlY3RyYXRpby55Ijp2b2lkIDAsImFzcGVjdHJhdGlvLnoiOnZvaWQgMH19LGFzcGVjdHJhdGlvOnt4Ont2YWxUeXBlOiJudW1iZXIiLG1pbjowLGVkaXRUeXBlOiJwbG90IixpbXBsaWVkRWRpdHM6eyJeYXNwZWN0bW9kZSI6Im1hbnVhbCJ9fSx5Ont2YWxUeXBlOiJudW1iZXIiLG1pbjowLGVkaXRUeXBlOiJwbG90IixpbXBsaWVkRWRpdHM6eyJeYXNwZWN0bW9kZSI6Im1hbnVhbCJ9fSx6Ont2YWxUeXBlOiJudW1iZXIiLG1pbjowLGVkaXRUeXBlOiJwbG90IixpbXBsaWVkRWRpdHM6eyJeYXNwZWN0bW9kZSI6Im1hbnVhbCJ9fSxlZGl0VHlwZToicGxvdCIsaW1wbGllZEVkaXRzOnthc3BlY3Rtb2RlOiJtYW51YWwifX0seGF4aXM6bix5YXhpczpuLHpheGlzOm4sZHJhZ21vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbIm9yYml0IiwidHVybnRhYmxlIiwiem9vbSIsInBhbiIsITFdLGVkaXRUeXBlOiJwbG90In0saG92ZXJtb2RlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJjbG9zZXN0IiwhMV0sZGZsdDoiY2xvc2VzdCIsZWRpdFR5cGU6Im1vZGViYXIifSx1aXJldmlzaW9uOnt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJub25lIn0sZWRpdFR5cGU6InBsb3QiLF9kZXByZWNhdGVkOntjYW1lcmFwb3NpdGlvbjp7dmFsVHlwZToiaW5mb19hcnJheSIsZWRpdFR5cGU6ImNhbWVyYSJ9fX19LHsiLi4vLi4vLi4vbGliIjo1MTUsIi4uLy4uLy4uL2xpYi9leHRlbmQiOjUwNSwiLi4vLi4vZG9tYWluIjo1OTMsIi4vYXhpc19hdHRyaWJ1dGVzIjo2MDl9XSw2MTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vLi4vbGliL3N0cjJyZ2JhcnJheSIpLGk9WyJ4YXhpcyIsInlheGlzIiwiemF4aXMiXTtmdW5jdGlvbiBhKCl7dGhpcy5lbmFibGVkPVshMCwhMCwhMF0sdGhpcy5jb2xvcnM9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLmRyYXdTaWRlcz1bITAsITAsITBdLHRoaXMubGluZVdpZHRoPVsxLDEsMV19YS5wcm90b3R5cGUubWVyZ2U9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7ZTwzOysrZSl7dmFyIHI9dFtpW2VdXTtyLnZpc2libGU/KHRoaXMuZW5hYmxlZFtlXT1yLnNob3dzcGlrZXMsdGhpcy5jb2xvcnNbZV09bihyLnNwaWtlY29sb3IpLHRoaXMuZHJhd1NpZGVzW2VdPXIuc3Bpa2VzaWRlcyx0aGlzLmxpbmVXaWR0aFtlXT1yLnNwaWtldGhpY2tuZXNzKToodGhpcy5lbmFibGVkW2VdPSExLHRoaXMuZHJhd1NpZGVzW2VdPSExKX19LGUuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1uZXcgYTtyZXR1cm4gZS5tZXJnZSh0KSxlfX0seyIuLi8uLi8uLi9saWIvc3RyMnJnYmFycmF5Ijo1NDB9XSw2MTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10LmF4ZXNPcHRpb25zLHI9dC5nbHBsb3QuYXhlc1BpeGVscyxzPXQuZnVsbFNjZW5lTGF5b3V0LGw9W1tdLFtdLFtdXSxjPTA7YzwzOysrYyl7dmFyIHU9c1thW2NdXTtpZih1Ll9sZW5ndGg9KHJbY10uaGktcltjXS5sbykqcltjXS5waXhlbHNQZXJEYXRhVW5pdC90LmRhdGFTY2FsZVtjXSxNYXRoLmFicyh1Ll9sZW5ndGgpPT09MS8wfHxpc05hTih1Ll9sZW5ndGgpKWxbY109W107ZWxzZXt1Ll9pbnB1dF9yYW5nZT11LnJhbmdlLnNsaWNlKCksdS5yYW5nZVswXT1yW2NdLmxvL3QuZGF0YVNjYWxlW2NdLHUucmFuZ2VbMV09cltjXS5oaS90LmRhdGFTY2FsZVtjXSx1Ll9tPTEvKHQuZGF0YVNjYWxlW2NdKnJbY10ucGl4ZWxzUGVyRGF0YVVuaXQpLHUucmFuZ2VbMF09PT11LnJhbmdlWzFdJiYodS5yYW5nZVswXS09MSx1LnJhbmdlWzFdKz0xKTt2YXIgZj11LnRpY2ttb2RlO2lmKCJhdXRvIj09PXUudGlja21vZGUpe3UudGlja21vZGU9ImxpbmVhciI7dmFyIGg9dS5udGlja3N8fGkuY29uc3RyYWluKHUuX2xlbmd0aC80MCw0LDkpO24uYXV0b1RpY2tzKHUsTWF0aC5hYnModS5yYW5nZVsxXS11LnJhbmdlWzBdKS9oKX1mb3IodmFyIHA9bi5jYWxjVGlja3ModSx7bXNVVEM6ITB9KSxkPTA7ZDxwLmxlbmd0aDsrK2QpcFtkXS54PXBbZF0ueCp0LmRhdGFTY2FsZVtjXSwiZGF0ZSI9PT11LnR5cGUmJihwW2RdLnRleHQ9cFtkXS50ZXh0LnJlcGxhY2UoL1w8YnJcPi9nLCIgIikpO2xbY109cCx1LnRpY2ttb2RlPWZ9fWUudGlja3M9bDtmb3IoYz0wO2M8MzsrK2Mpe29bY109LjUqKHQuZ2xwbG90LmJvdW5kc1swXVtjXSt0LmdscGxvdC5ib3VuZHNbMV1bY10pO2ZvcihkPTA7ZDwyOysrZCllLmJvdW5kc1tkXVtjXT10LmdscGxvdC5ib3VuZHNbZF1bY119dC5jb250b3VyTGV2ZWxzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1uZXcgQXJyYXkoMykscj0wO3I8MzsrK3Ipe2Zvcih2YXIgbj10W3JdLGk9bmV3IEFycmF5KG4ubGVuZ3RoKSxhPTA7YTxuLmxlbmd0aDsrK2EpaVthXT1uW2FdLng7ZVtyXT1pfXJldHVybiBlfShsKX07dmFyIG49dCgiLi4vLi4vY2FydGVzaWFuL2F4ZXMiKSxpPXQoIi4uLy4uLy4uL2xpYiIpLGE9WyJ4YXhpcyIsInlheGlzIiwiemF4aXMiXSxvPVswLDAsMF19LHsiLi4vLi4vLi4vbGliIjo1MTUsIi4uLy4uL2NhcnRlc2lhbi9heGVzIjo1NjZ9XSw2MTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3ZhciByLG4saT1bMCwwLDAsMF07Zm9yKHI9MDtyPDQ7KytyKWZvcihuPTA7bjw0OysrbilpW25dKz10WzQqcituXSplW3JdO3JldHVybiBpfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiBuKHQucHJvamVjdGlvbixuKHQudmlldyxuKHQubW9kZWwsW2VbMF0sZVsxXSxlWzJdLDFdKSkpfX0se31dLDYxNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbixpLGE9dCgiLi4vLi4vLi4vc3RhY2tnbF9tb2R1bGVzIikuZ2xfcGxvdDNkLG89YS5jcmVhdGVDYW1lcmEscz1hLmNyZWF0ZVNjZW5lLGw9dCgid2ViZ2wtY29udGV4dCIpLGM9dCgiaGFzLXBhc3NpdmUtZXZlbnRzIiksdT10KCIuLi8uLi9yZWdpc3RyeSIpLGY9dCgiLi4vLi4vbGliIiksaD1mLnByZXNlcnZlRHJhd2luZ0J1ZmZlcigpLHA9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxkPXQoIi4uLy4uL2NvbXBvbmVudHMvZngiKSxtPXQoIi4uLy4uL2xpYi9zdHIycmdiYXJyYXkiKSxnPXQoIi4uLy4uL2xpYi9zaG93X25vX3dlYmdsX21zZyIpLHY9dCgiLi9wcm9qZWN0IikseT10KCIuL2xheW91dC9jb252ZXJ0IikseD10KCIuL2xheW91dC9zcGlrZXMiKSxiPXQoIi4vbGF5b3V0L3RpY2tfbWFya3MiKTtmdW5jdGlvbiBfKHQsZSl7dmFyIHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iiksbj10LmNvbnRhaW5lcjt0aGlzLmdyYXBoRGl2PXQuZ3JhcGhEaXY7dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsInN2ZyIpO2kuc3R5bGUucG9zaXRpb249ImFic29sdXRlIixpLnN0eWxlLnRvcD1pLnN0eWxlLmxlZnQ9IjBweCIsaS5zdHlsZS53aWR0aD1pLnN0eWxlLmhlaWdodD0iMTAwJSIsaS5zdHlsZVsiei1pbmRleCJdPTIwLGkuc3R5bGVbInBvaW50ZXItZXZlbnRzIl09Im5vbmUiLHIuYXBwZW5kQ2hpbGQoaSksdGhpcy5zdmdDb250YWluZXI9aSxyLmlkPXQuaWQsci5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHIuc3R5bGUudG9wPXIuc3R5bGUubGVmdD0iMHB4IixyLnN0eWxlLndpZHRoPXIuc3R5bGUuaGVpZ2h0PSIxMDAlIixuLmFwcGVuZENoaWxkKHIpLHRoaXMuZnVsbExheW91dD1lLHRoaXMuaWQ9dC5pZHx8InNjZW5lIix0aGlzLmZ1bGxTY2VuZUxheW91dD1lW3RoaXMuaWRdLHRoaXMucGxvdEFyZ3M9W1tdLHt9LHt9XSx0aGlzLmF4ZXNPcHRpb25zPXkoZSxlW3RoaXMuaWRdKSx0aGlzLnNwaWtlT3B0aW9ucz14KGVbdGhpcy5pZF0pLHRoaXMuY29udGFpbmVyPXIsdGhpcy5zdGF0aWNNb2RlPSEhdC5zdGF0aWNQbG90LHRoaXMucGl4ZWxSYXRpbz10aGlzLnBpeGVsUmF0aW98fHQucGxvdEdsUGl4ZWxSYXRpb3x8Mix0aGlzLmRhdGFTY2FsZT1bMSwxLDFdLHRoaXMuY29udG91ckxldmVscz1bW10sW10sW11dLHRoaXMuY29udmVydEFubm90YXRpb25zPXUuZ2V0Q29tcG9uZW50TWV0aG9kKCJhbm5vdGF0aW9uczNkIiwiY29udmVydCIpLHRoaXMuZHJhd0Fubm90YXRpb25zPXUuZ2V0Q29tcG9uZW50TWV0aG9kKCJhbm5vdGF0aW9uczNkIiwiZHJhdyIpLHRoaXMuaW5pdGlhbGl6ZUdMUGxvdCgpfXZhciB3PV8ucHJvdG90eXBlO3cucHJlcGFyZU9wdGlvbnM9ZnVuY3Rpb24oKXt2YXIgdD17Y2FudmFzOnRoaXMuY2FudmFzLGdsOnRoaXMuZ2wsZ2xPcHRpb25zOntwcmVzZXJ2ZURyYXdpbmdCdWZmZXI6aCxwcmVtdWx0aXBsaWVkQWxwaGE6ITAsYW50aWFsaWFzOiEwfSxjb250YWluZXI6dGhpcy5jb250YWluZXIsYXhlczp0aGlzLmF4ZXNPcHRpb25zLHNwaWtlczp0aGlzLnNwaWtlT3B0aW9ucyxwaWNrUmFkaXVzOjEwLHNuYXBUb0RhdGE6ITAsYXV0b1NjYWxlOiEwLGF1dG9Cb3VuZHM6ITEsY2FtZXJhT2JqZWN0OnRoaXMuY2FtZXJhLHBpeGVsUmF0aW86dGhpcy5waXhlbFJhdGlvfTtpZih0aGlzLnN0YXRpY01vZGUpe2lmKCEoaXx8KG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksaT1sKHtjYW52YXM6bixwcmVzZXJ2ZURyYXdpbmdCdWZmZXI6ITAscHJlbXVsdGlwbGllZEFscGhhOiEwLGFudGlhbGlhczohMH0pKSkpdGhyb3cgbmV3IEVycm9yKCJlcnJvciBjcmVhdGluZyBzdGF0aWMgY2FudmFzL2NvbnRleHQgZm9yIGltYWdlIHNlcnZlciIpO3QuZ2w9aSx0LmNhbnZhcz1ufXJldHVybiB0fTt2YXIgVD0hMDt3LnRyeUNyZWF0ZVBsb3Q9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnByZXBhcmVPcHRpb25zKCksZT0hMDt0cnl7dGhpcy5nbHBsb3Q9cyh0KX1jYXRjaChyKXtpZih0aGlzLnN0YXRpY01vZGV8fCFUfHxoKWU9ITE7ZWxzZXtmLndhcm4oWyJ3ZWJnbCBzZXR1cCBmYWlsZWQgcG9zc2libHkgZHVlIHRvIiwiZmFsc2UgcHJlc2VydmVEcmF3aW5nQnVmZmVyIGNvbmZpZy4iLCJUaGUgbW9iaWxlL3RhYmxldCBkZXZpY2UgbWF5IG5vdCBiZSBkZXRlY3RlZCBieSBpcy1tb2JpbGUgbW9kdWxlLiIsIkVuYWJsaW5nIHByZXNlcnZlRHJhd2luZ0J1ZmZlciBpbiBzZWNvbmQgYXR0ZW1wdCB0byBjcmVhdGUgd2ViZ2wgc2NlbmUuLi4iXS5qb2luKCIgIikpO3RyeXtoPXQuZ2xPcHRpb25zLnByZXNlcnZlRHJhd2luZ0J1ZmZlcj0hMCx0aGlzLmdscGxvdD1zKHQpfWNhdGNoKHIpe2g9dC5nbE9wdGlvbnMucHJlc2VydmVEcmF3aW5nQnVmZmVyPSExLGU9ITF9fX1yZXR1cm4gVD0hMSxlfSx3LmluaXRpYWxpemVHTENhbWVyYT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuZnVsbFNjZW5lTGF5b3V0LmNhbWVyYSxlPSJvcnRob2dyYXBoaWMiPT09dC5wcm9qZWN0aW9uLnR5cGU7dGhpcy5jYW1lcmE9byh0aGlzLmNvbnRhaW5lcix7Y2VudGVyOlt0LmNlbnRlci54LHQuY2VudGVyLnksdC5jZW50ZXIuel0sZXllOlt0LmV5ZS54LHQuZXllLnksdC5leWUuel0sdXA6W3QudXAueCx0LnVwLnksdC51cC56XSxfb3J0aG86ZSx6b29tTWluOi4wMSx6b29tTWF4OjEwMCxtb2RlOiJvcmJpdCJ9KX0sdy5pbml0aWFsaXplR0xQbG90PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztpZih0LmluaXRpYWxpemVHTENhbWVyYSgpLCF0LnRyeUNyZWF0ZVBsb3QoKSlyZXR1cm4gZyh0KTt0LnRyYWNlcz17fSx0Lm1ha2U0dGhEaW1lbnNpb24oKTt2YXIgZT10LmdyYXBoRGl2LHI9ZS5sYXlvdXQsbj1mdW5jdGlvbigpe3ZhciBlPXt9O3JldHVybiB0LmlzQ2FtZXJhQ2hhbmdlZChyKSYmKGVbdC5pZCsiLmNhbWVyYSJdPXQuZ2V0Q2FtZXJhKCkpLHQuaXNBc3BlY3RDaGFuZ2VkKHIpJiYoZVt0LmlkKyIuYXNwZWN0cmF0aW8iXT10LmdscGxvdC5nZXRBc3BlY3RyYXRpbygpLCJtYW51YWwiIT09clt0LmlkXS5hc3BlY3Rtb2RlJiYodC5mdWxsU2NlbmVMYXlvdXQuYXNwZWN0bW9kZT1yW3QuaWRdLmFzcGVjdG1vZGU9ZVt0LmlkKyIuYXNwZWN0bW9kZSJdPSJtYW51YWwiKSksZX0saT1mdW5jdGlvbih0KXtpZighMSE9PXQuZnVsbFNjZW5lTGF5b3V0LmRyYWdtb2RlKXt2YXIgZT1uKCk7dC5zYXZlTGF5b3V0KHIpLHQuZ3JhcGhEaXYuZW1pdCgicGxvdGx5X3JlbGF5b3V0IixlKX19O3JldHVybiB0LmdscGxvdC5jYW52YXMmJih0LmdscGxvdC5jYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsKGZ1bmN0aW9uKCl7aSh0KX0pKSx0LmdscGxvdC5jYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigid2hlZWwiLChmdW5jdGlvbihyKXtpZihlLl9jb250ZXh0Ll9zY3JvbGxab29tLmdsM2Qpe2lmKHQuY2FtZXJhLl9vcnRobyl7dmFyIG49ci5kZWx0YVg+ci5kZWx0YVk/MS4xOjEvMS4xLGE9dC5nbHBsb3QuZ2V0QXNwZWN0cmF0aW8oKTt0LmdscGxvdC5zZXRBc3BlY3RyYXRpbyh7eDpuKmEueCx5Om4qYS55LHo6biphLnp9KX1pKHQpfX0pLCEhYyYme3Bhc3NpdmU6ITF9KSx0LmdscGxvdC5jYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwoZnVuY3Rpb24oKXtpZighMSE9PXQuZnVsbFNjZW5lTGF5b3V0LmRyYWdtb2RlJiYwIT09dC5jYW1lcmEubW91c2VMaXN0ZW5lci5idXR0b25zKXt2YXIgZT1uKCk7dC5ncmFwaERpdi5lbWl0KCJwbG90bHlfcmVsYXlvdXRpbmciLGUpfX0pKSx0LnN0YXRpY01vZGV8fHQuZ2xwbG90LmNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJ3ZWJnbGNvbnRleHRsb3N0IiwoZnVuY3Rpb24ocil7ZSYmZS5lbWl0JiZlLmVtaXQoInBsb3RseV93ZWJnbGNvbnRleHRsb3N0Iix7ZXZlbnQ6cixsYXllcjp0LmlkfSl9KSwhMSkpLHQuZ2xwbG90Lm9uY29udGV4dGxvc3M9ZnVuY3Rpb24oKXt0LnJlY292ZXJDb250ZXh0KCl9LHQuZ2xwbG90Lm9ucmVuZGVyPWZ1bmN0aW9uKCl7dC5yZW5kZXIoKX0sITB9LHcucmVuZGVyPWZ1bmN0aW9uKCl7dmFyIHQsZT10aGlzLHI9ZS5ncmFwaERpdixuPWUuc3ZnQ29udGFpbmVyLGk9ZS5jb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7ci5fZnVsbExheW91dC5fY2FsY0ludmVyc2VUcmFuc2Zvcm0ocik7dmFyIGE9ci5fZnVsbExheW91dC5faW52U2NhbGVYLG89ci5fZnVsbExheW91dC5faW52U2NhbGVZLHM9aS53aWR0aCphLGw9aS5oZWlnaHQqbztuLnNldEF0dHJpYnV0ZU5TKG51bGwsInZpZXdCb3giLCIwIDAgIitzKyIgIitsKSxuLnNldEF0dHJpYnV0ZU5TKG51bGwsIndpZHRoIixzKSxuLnNldEF0dHJpYnV0ZU5TKG51bGwsImhlaWdodCIsbCksYihlKSxlLmdscGxvdC5heGVzLnVwZGF0ZShlLmF4ZXNPcHRpb25zKTtmb3IodmFyIGM9T2JqZWN0LmtleXMoZS50cmFjZXMpLHU9bnVsbCxoPWUuZ2xwbG90LnNlbGVjdGlvbixtPTA7bTxjLmxlbmd0aDsrK20pInNraXAiIT09KHQ9ZS50cmFjZXNbY1ttXV0pLmRhdGEuaG92ZXJpbmZvJiZ0LmhhbmRsZVBpY2soaCkmJih1PXQpLHQuc2V0Q29udG91ckxldmVscyYmdC5zZXRDb250b3VyTGV2ZWxzKCk7ZnVuY3Rpb24gZyh0LHIsbil7dmFyIGk9ZS5mdWxsU2NlbmVMYXlvdXRbdCsiYXhpcyJdO3JldHVybiJsb2ciIT09aS50eXBlJiYocj1pLmQybChyKSkscC5ob3ZlckxhYmVsVGV4dChpLHIsbil9aWYobnVsbCE9PXUpe3ZhciB5PXYoZS5nbHBsb3QuY2FtZXJhUGFyYW1zLGguZGF0YUNvb3JkaW5hdGUpO3Q9dS5kYXRhO3ZhciB4LF89ci5fZnVsbERhdGFbdC5pbmRleF0sdz1oLmluZGV4LFQ9e3hMYWJlbDpnKCJ4IixoLnRyYWNlQ29vcmRpbmF0ZVswXSx0Lnhob3ZlcmZvcm1hdCkseUxhYmVsOmcoInkiLGgudHJhY2VDb29yZGluYXRlWzFdLHQueWhvdmVyZm9ybWF0KSx6TGFiZWw6ZygieiIsaC50cmFjZUNvb3JkaW5hdGVbMl0sdC56aG92ZXJmb3JtYXQpfSxrPWQuY2FzdEhvdmVyaW5mbyhfLGUuZnVsbExheW91dCx3KSxBPShrfHwiIikuc3BsaXQoIisiKSxNPWsmJiJhbGwiPT09aztfLmhvdmVydGVtcGxhdGV8fE18fCgtMT09PUEuaW5kZXhPZigieCIpJiYoVC54TGFiZWw9dm9pZCAwKSwtMT09PUEuaW5kZXhPZigieSIpJiYoVC55TGFiZWw9dm9pZCAwKSwtMT09PUEuaW5kZXhPZigieiIpJiYoVC56TGFiZWw9dm9pZCAwKSwtMT09PUEuaW5kZXhPZigidGV4dCIpJiYoaC50ZXh0TGFiZWw9dm9pZCAwKSwtMT09PUEuaW5kZXhPZigibmFtZSIpJiYodS5uYW1lPXZvaWQgMCkpO3ZhciBTPVtdOyJjb25lIj09PXQudHlwZXx8InN0cmVhbXR1YmUiPT09dC50eXBlPyhULnVMYWJlbD1nKCJ4IixoLnRyYWNlQ29vcmRpbmF0ZVszXSx0LnVob3ZlcmZvcm1hdCksKE18fC0xIT09QS5pbmRleE9mKCJ1IikpJiZTLnB1c2goInU6ICIrVC51TGFiZWwpLFQudkxhYmVsPWcoInkiLGgudHJhY2VDb29yZGluYXRlWzRdLHQudmhvdmVyZm9ybWF0KSwoTXx8LTEhPT1BLmluZGV4T2YoInYiKSkmJlMucHVzaCgidjogIitULnZMYWJlbCksVC53TGFiZWw9ZygieiIsaC50cmFjZUNvb3JkaW5hdGVbNV0sdC53aG92ZXJmb3JtYXQpLChNfHwtMSE9PUEuaW5kZXhPZigidyIpKSYmUy5wdXNoKCJ3OiAiK1Qud0xhYmVsKSxULm5vcm1MYWJlbD1oLnRyYWNlQ29vcmRpbmF0ZVs2XS50b1ByZWNpc2lvbigzKSwoTXx8LTEhPT1BLmluZGV4T2YoIm5vcm0iKSkmJlMucHVzaCgibm9ybTogIitULm5vcm1MYWJlbCksInN0cmVhbXR1YmUiPT09dC50eXBlJiYoVC5kaXZlcmdlbmNlTGFiZWw9aC50cmFjZUNvb3JkaW5hdGVbN10udG9QcmVjaXNpb24oMyksKE18fC0xIT09QS5pbmRleE9mKCJkaXZlcmdlbmNlIikpJiZTLnB1c2goImRpdmVyZ2VuY2U6ICIrVC5kaXZlcmdlbmNlTGFiZWwpKSxoLnRleHRMYWJlbCYmUy5wdXNoKGgudGV4dExhYmVsKSx4PVMuam9pbigiPGJyPiIpKToiaXNvc3VyZmFjZSI9PT10LnR5cGV8fCJ2b2x1bWUiPT09dC50eXBlPyhULnZhbHVlTGFiZWw9cC5ob3ZlckxhYmVsVGV4dChlLl9tb2NrQXhpcyxlLl9tb2NrQXhpcy5kMmwoaC50cmFjZUNvb3JkaW5hdGVbM10pLHQudmFsdWVob3ZlcmZvcm1hdCksUy5wdXNoKCJ2YWx1ZTogIitULnZhbHVlTGFiZWwpLGgudGV4dExhYmVsJiZTLnB1c2goaC50ZXh0TGFiZWwpLHg9Uy5qb2luKCI8YnI+IikpOng9aC50ZXh0TGFiZWw7dmFyIEU9e3g6aC50cmFjZUNvb3JkaW5hdGVbMF0seTpoLnRyYWNlQ29vcmRpbmF0ZVsxXSx6OmgudHJhY2VDb29yZGluYXRlWzJdLGRhdGE6Xy5faW5wdXQsZnVsbERhdGE6XyxjdXJ2ZU51bWJlcjpfLmluZGV4LHBvaW50TnVtYmVyOnd9O2QuYXBwZW5kQXJyYXlQb2ludFZhbHVlKEUsXyx3KSx0Ll9tb2R1bGUuZXZlbnREYXRhJiYoRT1fLl9tb2R1bGUuZXZlbnREYXRhKEUsaCxfLHt9LHcpKTt2YXIgTD17cG9pbnRzOltFXX07aWYoZS5mdWxsU2NlbmVMYXlvdXQuaG92ZXJtb2RlKXt2YXIgQz1bXTtkLmxvbmVIb3Zlcih7dHJhY2U6Xyx4OiguNSsuNSp5WzBdL3lbM10pKnMseTooLjUtLjUqeVsxXS95WzNdKSpsLHhMYWJlbDpULnhMYWJlbCx5TGFiZWw6VC55TGFiZWwsekxhYmVsOlQuekxhYmVsLHRleHQ6eCxuYW1lOnUubmFtZSxjb2xvcjpkLmNhc3RIb3Zlck9wdGlvbihfLHcsImJnY29sb3IiKXx8dS5jb2xvcixib3JkZXJDb2xvcjpkLmNhc3RIb3Zlck9wdGlvbihfLHcsImJvcmRlcmNvbG9yIiksZm9udEZhbWlseTpkLmNhc3RIb3Zlck9wdGlvbihfLHcsImZvbnQuZmFtaWx5IiksZm9udFNpemU6ZC5jYXN0SG92ZXJPcHRpb24oXyx3LCJmb250LnNpemUiKSxmb250Q29sb3I6ZC5jYXN0SG92ZXJPcHRpb24oXyx3LCJmb250LmNvbG9yIiksbmFtZUxlbmd0aDpkLmNhc3RIb3Zlck9wdGlvbihfLHcsIm5hbWVsZW5ndGgiKSx0ZXh0QWxpZ246ZC5jYXN0SG92ZXJPcHRpb24oXyx3LCJhbGlnbiIpLGhvdmVydGVtcGxhdGU6Zi5jYXN0T3B0aW9uKF8sdywiaG92ZXJ0ZW1wbGF0ZSIpLGhvdmVydGVtcGxhdGVMYWJlbHM6Zi5leHRlbmRGbGF0KHt9LEUsVCksZXZlbnREYXRhOltFXX0se2NvbnRhaW5lcjpuLGdkOnIsaW5PdXRfYmJveDpDfSksRS5iYm94PUNbMF19aC5idXR0b25zJiZoLmRpc3RhbmNlPDU/ci5lbWl0KCJwbG90bHlfY2xpY2siLEwpOnIuZW1pdCgicGxvdGx5X2hvdmVyIixMKSx0aGlzLm9sZEV2ZW50RGF0YT1MfWVsc2UgZC5sb25lVW5ob3ZlcihuKSx0aGlzLm9sZEV2ZW50RGF0YSYmci5lbWl0KCJwbG90bHlfdW5ob3ZlciIsdGhpcy5vbGRFdmVudERhdGEpLHRoaXMub2xkRXZlbnREYXRhPXZvaWQgMDtlLmRyYXdBbm5vdGF0aW9ucyhlKX0sdy5yZWNvdmVyQ29udGV4dD1mdW5jdGlvbigpe3ZhciB0PXRoaXM7dC5nbHBsb3QuZGlzcG9zZSgpO3ZhciBlPWZ1bmN0aW9uKCl7dC5nbHBsb3QuZ2wuaXNDb250ZXh0TG9zdCgpP3JlcXVlc3RBbmltYXRpb25GcmFtZShlKTp0LmluaXRpYWxpemVHTFBsb3QoKT90LnBsb3QuYXBwbHkodCx0LnBsb3RBcmdzKTpmLmVycm9yKCJDYXRhc3Ryb3BoaWMgYW5kIHVucmVjb3ZlcmFibGUgV2ViR0wgZXJyb3IuIENvbnRleHQgbG9zdC4iKX07cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGUpfTt2YXIgaz1bInhheGlzIiwieWF4aXMiLCJ6YXhpcyJdO2Z1bmN0aW9uIEEodCxlLHIpe2Zvcih2YXIgbj10LmZ1bGxTY2VuZUxheW91dCxpPTA7aTwzO2krKyl7dmFyIGE9a1tpXSxvPWEuY2hhckF0KDApLHM9blthXSxsPWVbb10sYz1lW28rImNhbGVuZGFyIl0sdT1lWyJfIitvKyJsZW5ndGgiXTtpZihmLmlzQXJyYXlPclR5cGVkQXJyYXkobCkpZm9yKHZhciBoLHA9MDtwPCh1fHxsLmxlbmd0aCk7cCsrKWlmKGYuaXNBcnJheU9yVHlwZWRBcnJheShsW3BdKSlmb3IodmFyIGQ9MDtkPGxbcF0ubGVuZ3RoOysrZCloPXMuZDJsKGxbcF1bZF0sMCxjKSwhaXNOYU4oaCkmJmlzRmluaXRlKGgpJiYoclswXVtpXT1NYXRoLm1pbihyWzBdW2ldLGgpLHJbMV1baV09TWF0aC5tYXgoclsxXVtpXSxoKSk7ZWxzZSBoPXMuZDJsKGxbcF0sMCxjKSwhaXNOYU4oaCkmJmlzRmluaXRlKGgpJiYoclswXVtpXT1NYXRoLm1pbihyWzBdW2ldLGgpLHJbMV1baV09TWF0aC5tYXgoclsxXVtpXSxoKSk7ZWxzZSByWzBdW2ldPU1hdGgubWluKHJbMF1baV0sMCksclsxXVtpXT1NYXRoLm1heChyWzFdW2ldLHUtMSl9fXcucGxvdD1mdW5jdGlvbih0LGUscil7aWYodGhpcy5wbG90QXJncz1bdCxlLHJdLCF0aGlzLmdscGxvdC5jb250ZXh0TG9zdCl7dmFyIG4saSxhLG8scyxsLGM9ZVt0aGlzLmlkXSx1PXJbdGhpcy5pZF07dGhpcy5mdWxsTGF5b3V0PWUsdGhpcy5mdWxsU2NlbmVMYXlvdXQ9Yyx0aGlzLmF4ZXNPcHRpb25zLm1lcmdlKGUsYyksdGhpcy5zcGlrZU9wdGlvbnMubWVyZ2UoYyksdGhpcy5zZXRWaWV3cG9ydChjKSx0aGlzLnVwZGF0ZUZ4KGMuZHJhZ21vZGUsYy5ob3Zlcm1vZGUpLHRoaXMuY2FtZXJhLmVuYWJsZVdoZWVsPXRoaXMuZ3JhcGhEaXYuX2NvbnRleHQuX3Njcm9sbFpvb20uZ2wzZCx0aGlzLmdscGxvdC5zZXRDbGVhckNvbG9yKG0oYy5iZ2NvbG9yKSksdGhpcy5zZXRDb252ZXJ0KHMpLHQ/QXJyYXkuaXNBcnJheSh0KXx8KHQ9W3RdKTp0PVtdO3ZhciBmPVtbMS8wLDEvMCwxLzBdLFstMS8wLC0xLzAsLTEvMF1dO2ZvcihhPTA7YTx0Lmxlbmd0aDsrK2EpITA9PT0obj10W2FdKS52aXNpYmxlJiYwIT09bi5fbGVuZ3RoJiZBKHRoaXMsbixmKTshZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5mdWxsU2NlbmVMYXlvdXQsbj1yLmFubm90YXRpb25zfHxbXSxpPTA7aTwzO2krKylmb3IodmFyIGE9a1tpXSxvPWEuY2hhckF0KDApLHM9clthXSxsPTA7bDxuLmxlbmd0aDtsKyspe3ZhciBjPW5bbF07aWYoYy52aXNpYmxlKXt2YXIgdT1zLnIybChjW29dKTshaXNOYU4odSkmJmlzRmluaXRlKHUpJiYoZVswXVtpXT1NYXRoLm1pbihlWzBdW2ldLHUpLGVbMV1baV09TWF0aC5tYXgoZVsxXVtpXSx1KSl9fX0odGhpcyxmKTt2YXIgaD1bMSwxLDFdO2ZvcihvPTA7bzwzOysrbylmWzFdW29dPT09ZlswXVtvXT9oW29dPTE6aFtvXT0xLyhmWzFdW29dLWZbMF1bb10pO2Zvcih0aGlzLmRhdGFTY2FsZT1oLHRoaXMuY29udmVydEFubm90YXRpb25zKHRoaXMpLGE9MDthPHQubGVuZ3RoOysrYSkhMD09PShuPXRbYV0pLnZpc2libGUmJjAhPT1uLl9sZW5ndGgmJigoaT10aGlzLnRyYWNlc1tuLnVpZF0pP2kuZGF0YS50eXBlPT09bi50eXBlP2kudXBkYXRlKG4pOihpLmRpc3Bvc2UoKSxpPW4uX21vZHVsZS5wbG90KHRoaXMsbiksdGhpcy50cmFjZXNbbi51aWRdPWkpOihpPW4uX21vZHVsZS5wbG90KHRoaXMsbiksdGhpcy50cmFjZXNbbi51aWRdPWkpLGkubmFtZT1uLm5hbWUpO3ZhciBwPU9iamVjdC5rZXlzKHRoaXMudHJhY2VzKTt0OmZvcihhPTA7YTxwLmxlbmd0aDsrK2Epe2ZvcihvPTA7bzx0Lmxlbmd0aDsrK28paWYodFtvXS51aWQ9PT1wW2FdJiYhMD09PXRbb10udmlzaWJsZSYmMCE9PXRbb10uX2xlbmd0aCljb250aW51ZSB0OyhpPXRoaXMudHJhY2VzW3BbYV1dKS5kaXNwb3NlKCksZGVsZXRlIHRoaXMudHJhY2VzW3BbYV1dfXRoaXMuZ2xwbG90Lm9iamVjdHMuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5fdHJhY2UuZGF0YS5pbmRleC1lLl90cmFjZS5kYXRhLmluZGV4fSkpO3ZhciBkLGc9W1swLDAsMF0sWzAsMCwwXV0sdj1bXSx5PXt9O2ZvcihhPTA7YTwzOysrYSl7aWYoKGw9KHM9Y1trW2FdXSkudHlwZSlpbiB5Pyh5W2xdLmFjYyo9aFthXSx5W2xdLmNvdW50Kz0xKTp5W2xdPXthY2M6aFthXSxjb3VudDoxfSxzLmF1dG9yYW5nZSl7Z1swXVthXT0xLzAsZ1sxXVthXT0tMS8wO3ZhciB4PXRoaXMuZ2xwbG90Lm9iamVjdHMsYj10aGlzLmZ1bGxTY2VuZUxheW91dC5hbm5vdGF0aW9uc3x8W10sXz1zLl9uYW1lLmNoYXJBdCgwKTtmb3Iobz0wO288eC5sZW5ndGg7bysrKXt2YXIgdz14W29dLFQ9dy5ib3VuZHMsTT13Ll90cmFjZS5kYXRhLl9wYWR8fDA7IkVycm9yQmFycyI9PT13LmNvbnN0cnVjdG9yLm5hbWUmJnMuX2xvd2VyTG9nRXJyb3JCb3VuZD9nWzBdW2FdPU1hdGgubWluKGdbMF1bYV0scy5fbG93ZXJMb2dFcnJvckJvdW5kKTpnWzBdW2FdPU1hdGgubWluKGdbMF1bYV0sVFswXVthXS9oW2FdLU0pLGdbMV1bYV09TWF0aC5tYXgoZ1sxXVthXSxUWzFdW2FdL2hbYV0rTSl9Zm9yKG89MDtvPGIubGVuZ3RoO28rKyl7dmFyIFM9YltvXTtpZihTLnZpc2libGUpe3ZhciBFPXMucjJsKFNbX10pO2dbMF1bYV09TWF0aC5taW4oZ1swXVthXSxFKSxnWzFdW2FdPU1hdGgubWF4KGdbMV1bYV0sRSl9fWlmKCJyYW5nZW1vZGUiaW4gcyYmInRvemVybyI9PT1zLnJhbmdlbW9kZSYmKGdbMF1bYV09TWF0aC5taW4oZ1swXVthXSwwKSxnWzFdW2FdPU1hdGgubWF4KGdbMV1bYV0sMCkpLGdbMF1bYV0+Z1sxXVthXSlnWzBdW2FdPS0xLGdbMV1bYV09MTtlbHNle3ZhciBMPWdbMV1bYV0tZ1swXVthXTtnWzBdW2FdLT1MLzMyLGdbMV1bYV0rPUwvMzJ9aWYoInJldmVyc2VkIj09PXMuYXV0b3JhbmdlKXt2YXIgQz1nWzBdW2FdO2dbMF1bYV09Z1sxXVthXSxnWzFdW2FdPUN9fWVsc2V7dmFyIFA9cy5yYW5nZTtnWzBdW2FdPXMucjJsKFBbMF0pLGdbMV1bYV09cy5yMmwoUFsxXSl9Z1swXVthXT09PWdbMV1bYV0mJihnWzBdW2FdLT0xLGdbMV1bYV0rPTEpLHZbYV09Z1sxXVthXS1nWzBdW2FdLHRoaXMuZ2xwbG90LnNldEJvdW5kcyhhLHttaW46Z1swXVthXSpoW2FdLG1heDpnWzFdW2FdKmhbYV19KX12YXIgST1jLmFzcGVjdG1vZGU7aWYoImN1YmUiPT09SSlkPVsxLDEsMV07ZWxzZSBpZigibWFudWFsIj09PUkpe3ZhciBPPWMuYXNwZWN0cmF0aW87ZD1bTy54LE8ueSxPLnpdfWVsc2V7aWYoImF1dG8iIT09SSYmImRhdGEiIT09SSl0aHJvdyBuZXcgRXJyb3IoInNjZW5lLmpzIGFzcGVjdFJhdGlvIHdhcyBub3Qgb25lIG9mIHRoZSBlbnVtZXJhdGVkIHR5cGVzIik7dmFyIHo9WzEsMSwxXTtmb3IoYT0wO2E8MzsrK2Epe3ZhciBEPXlbbD0ocz1jW2tbYV1dKS50eXBlXTt6W2FdPU1hdGgucG93KEQuYWNjLDEvRC5jb3VudCkvaFthXX1kPSJkYXRhIj09PUl8fE1hdGgubWF4LmFwcGx5KG51bGwseikvTWF0aC5taW4uYXBwbHkobnVsbCx6KTw9ND96OlsxLDEsMV19Yy5hc3BlY3RyYXRpby54PXUuYXNwZWN0cmF0aW8ueD1kWzBdLGMuYXNwZWN0cmF0aW8ueT11LmFzcGVjdHJhdGlvLnk9ZFsxXSxjLmFzcGVjdHJhdGlvLno9dS5hc3BlY3RyYXRpby56PWRbMl0sdGhpcy5nbHBsb3Quc2V0QXNwZWN0cmF0aW8oYy5hc3BlY3RyYXRpbyksdGhpcy52aWV3SW5pdGlhbC5hc3BlY3RyYXRpb3x8KHRoaXMudmlld0luaXRpYWwuYXNwZWN0cmF0aW89e3g6Yy5hc3BlY3RyYXRpby54LHk6Yy5hc3BlY3RyYXRpby55LHo6Yy5hc3BlY3RyYXRpby56fSksdGhpcy52aWV3SW5pdGlhbC5hc3BlY3Rtb2RlfHwodGhpcy52aWV3SW5pdGlhbC5hc3BlY3Rtb2RlPWMuYXNwZWN0bW9kZSk7dmFyIFI9Yy5kb21haW58fG51bGwsRj1lLl9zaXplfHxudWxsO2lmKFImJkYpe3ZhciBCPXRoaXMuY29udGFpbmVyLnN0eWxlO0IucG9zaXRpb249ImFic29sdXRlIixCLmxlZnQ9Ri5sK1IueFswXSpGLncrInB4IixCLnRvcD1GLnQrKDEtUi55WzFdKSpGLmgrInB4IixCLndpZHRoPUYudyooUi54WzFdLVIueFswXSkrInB4IixCLmhlaWdodD1GLmgqKFIueVsxXS1SLnlbMF0pKyJweCJ9dGhpcy5nbHBsb3QucmVkcmF3KCl9fSx3LmRlc3Ryb3k9ZnVuY3Rpb24oKXt0aGlzLmdscGxvdCYmKHRoaXMuY2FtZXJhLm1vdXNlTGlzdGVuZXIuZW5hYmxlZD0hMSx0aGlzLmNvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKCJ3aGVlbCIsdGhpcy5jYW1lcmEud2hlZWxMaXN0ZW5lciksdGhpcy5jYW1lcmE9bnVsbCx0aGlzLmdscGxvdC5kaXNwb3NlKCksdGhpcy5jb250YWluZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLmNvbnRhaW5lciksdGhpcy5nbHBsb3Q9bnVsbCl9LHcuZ2V0Q2FtZXJhPWZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuIHRoaXMuY2FtZXJhLnZpZXcucmVjYWxjTWF0cml4KHRoaXMuY2FtZXJhLnZpZXcubGFzdFQoKSkse3VwOnt4Oih0PXRoaXMuY2FtZXJhKS51cFswXSx5OnQudXBbMV0sejp0LnVwWzJdfSxjZW50ZXI6e3g6dC5jZW50ZXJbMF0seTp0LmNlbnRlclsxXSx6OnQuY2VudGVyWzJdfSxleWU6e3g6dC5leWVbMF0seTp0LmV5ZVsxXSx6OnQuZXllWzJdfSxwcm9qZWN0aW9uOnt0eXBlOiEwPT09dC5fb3J0aG8/Im9ydGhvZ3JhcGhpYyI6InBlcnNwZWN0aXZlIn19fSx3LnNldFZpZXdwb3J0PWZ1bmN0aW9uKHQpe3ZhciBlLHI9dC5jYW1lcmE7dGhpcy5jYW1lcmEubG9va0F0LmFwcGx5KHRoaXMsW1soZT1yKS5leWUueCxlLmV5ZS55LGUuZXllLnpdLFtlLmNlbnRlci54LGUuY2VudGVyLnksZS5jZW50ZXIuel0sW2UudXAueCxlLnVwLnksZS51cC56XV0pLHRoaXMuZ2xwbG90LnNldEFzcGVjdHJhdGlvKHQuYXNwZWN0cmF0aW8pLCJvcnRob2dyYXBoaWMiPT09ci5wcm9qZWN0aW9uLnR5cGUhPT10aGlzLmNhbWVyYS5fb3J0aG8mJih0aGlzLmdscGxvdC5yZWRyYXcoKSx0aGlzLmdscGxvdC5jbGVhclJHQkEoKSx0aGlzLmdscGxvdC5kaXNwb3NlKCksdGhpcy5pbml0aWFsaXplR0xQbG90KCkpfSx3LmlzQ2FtZXJhQ2hhbmdlZD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmdldENhbWVyYSgpLHI9Zi5uZXN0ZWRQcm9wZXJ0eSh0LHRoaXMuaWQrIi5jYW1lcmEiKS5nZXQoKTtmdW5jdGlvbiBuKHQsZSxyLG4pe3ZhciBpPVsidXAiLCJjZW50ZXIiLCJleWUiXSxhPVsieCIsInkiLCJ6Il07cmV0dXJuIGVbaVtyXV0mJnRbaVtyXV1bYVtuXV09PT1lW2lbcl1dW2Fbbl1dfXZhciBpPSExO2lmKHZvaWQgMD09PXIpaT0hMDtlbHNle2Zvcih2YXIgYT0wO2E8MzthKyspZm9yKHZhciBvPTA7bzwzO28rKylpZighbihlLHIsYSxvKSl7aT0hMDticmVha30oIXIucHJvamVjdGlvbnx8ZS5wcm9qZWN0aW9uJiZlLnByb2plY3Rpb24udHlwZSE9PXIucHJvamVjdGlvbi50eXBlKSYmKGk9ITApfXJldHVybiBpfSx3LmlzQXNwZWN0Q2hhbmdlZD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmdscGxvdC5nZXRBc3BlY3RyYXRpbygpLHI9Zi5uZXN0ZWRQcm9wZXJ0eSh0LHRoaXMuaWQrIi5hc3BlY3RyYXRpbyIpLmdldCgpO3JldHVybiB2b2lkIDA9PT1yfHxyLnghPT1lLnh8fHIueSE9PWUueXx8ci56IT09ZS56fSx3LnNhdmVMYXlvdXQ9ZnVuY3Rpb24odCl7dmFyIGUscixuLGksYSxvLHM9dGhpcy5mdWxsTGF5b3V0LGw9dGhpcy5pc0NhbWVyYUNoYW5nZWQodCksYz10aGlzLmlzQXNwZWN0Q2hhbmdlZCh0KSxoPWx8fGM7aWYoaCl7dmFyIHA9e307aWYobCYmKGU9dGhpcy5nZXRDYW1lcmEoKSxuPShyPWYubmVzdGVkUHJvcGVydHkodCx0aGlzLmlkKyIuY2FtZXJhIikpLmdldCgpLHBbdGhpcy5pZCsiLmNhbWVyYSJdPW4pLGMmJihpPXRoaXMuZ2xwbG90LmdldEFzcGVjdHJhdGlvKCksbz0oYT1mLm5lc3RlZFByb3BlcnR5KHQsdGhpcy5pZCsiLmFzcGVjdHJhdGlvIikpLmdldCgpLHBbdGhpcy5pZCsiLmFzcGVjdHJhdGlvIl09byksdS5jYWxsKCJfc3RvcmVEaXJlY3RHVUlFZGl0Iix0LHMuX3ByZUdVSSxwKSxsKXIuc2V0KGUpLGYubmVzdGVkUHJvcGVydHkocyx0aGlzLmlkKyIuY2FtZXJhIikuc2V0KGUpO2lmKGMpYS5zZXQoaSksZi5uZXN0ZWRQcm9wZXJ0eShzLHRoaXMuaWQrIi5hc3BlY3RyYXRpbyIpLnNldChpKSx0aGlzLmdscGxvdC5yZWRyYXcoKX1yZXR1cm4gaH0sdy51cGRhdGVGeD1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuY2FtZXJhO2lmKHIpaWYoIm9yYml0Ij09PXQpci5tb2RlPSJvcmJpdCIsci5rZXlCaW5kaW5nTW9kZT0icm90YXRlIjtlbHNlIGlmKCJ0dXJudGFibGUiPT09dCl7ci51cD1bMCwwLDFdLHIubW9kZT0idHVybnRhYmxlIixyLmtleUJpbmRpbmdNb2RlPSJyb3RhdGUiO3ZhciBuPXRoaXMuZ3JhcGhEaXYsaT1uLl9mdWxsTGF5b3V0LGE9dGhpcy5mdWxsU2NlbmVMYXlvdXQuY2FtZXJhLG89YS51cC54LHM9YS51cC55LGw9YS51cC56O2lmKGwvTWF0aC5zcXJ0KG8qbytzKnMrbCpsKTwuOTk5KXt2YXIgYz10aGlzLmlkKyIuY2FtZXJhLnVwIixoPXt4OjAseTowLHo6MX0scD17fTtwW2NdPWg7dmFyIGQ9bi5sYXlvdXQ7dS5jYWxsKCJfc3RvcmVEaXJlY3RHVUlFZGl0IixkLGkuX3ByZUdVSSxwKSxhLnVwPWgsZi5uZXN0ZWRQcm9wZXJ0eShkLGMpLnNldChoKX19ZWxzZSByLmtleUJpbmRpbmdNb2RlPXQ7dGhpcy5mdWxsU2NlbmVMYXlvdXQuaG92ZXJtb2RlPWV9LHcudG9JbWFnZT1mdW5jdGlvbih0KXt0fHwodD0icG5nIiksdGhpcy5zdGF0aWNNb2RlJiZ0aGlzLmNvbnRhaW5lci5hcHBlbmRDaGlsZChuKSx0aGlzLmdscGxvdC5yZWRyYXcoKTt2YXIgZT10aGlzLmdscGxvdC5nbCxyPWUuZHJhd2luZ0J1ZmZlcldpZHRoLGk9ZS5kcmF3aW5nQnVmZmVySGVpZ2h0O2UuYmluZEZyYW1lYnVmZmVyKGUuRlJBTUVCVUZGRVIsbnVsbCk7dmFyIGE9bmV3IFVpbnQ4QXJyYXkocippKjQpO2UucmVhZFBpeGVscygwLDAscixpLGUuUkdCQSxlLlVOU0lHTkVEX0JZVEUsYSksZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj0wLGk9ci0xO248aTsrK24sLS1pKWZvcih2YXIgYT0wO2E8ZTsrK2EpZm9yKHZhciBvPTA7bzw0Oysrbyl7dmFyIHM9NCooZSpuK2EpK28sbD00KihlKmkrYSkrbyxjPXRbc107dFtzXT10W2xdLHRbbF09Y319KGEscixpKSxmdW5jdGlvbih0LGUscil7Zm9yKHZhciBuPTA7bjxyOysrbilmb3IodmFyIGk9MDtpPGU7KytpKXt2YXIgYT00KihlKm4raSksbz10W2ErM107aWYobz4wKWZvcih2YXIgcz0yNTUvbyxsPTA7bDwzOysrbCl0W2ErbF09TWF0aC5taW4ocyp0W2ErbF0sMjU1KX19KGEscixpKTt2YXIgbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTtvLndpZHRoPXIsby5oZWlnaHQ9aTt2YXIgcyxsPW8uZ2V0Q29udGV4dCgiMmQiLHt3aWxsUmVhZEZyZXF1ZW50bHk6ITB9KSxjPWwuY3JlYXRlSW1hZ2VEYXRhKHIsaSk7c3dpdGNoKGMuZGF0YS5zZXQoYSksbC5wdXRJbWFnZURhdGEoYywwLDApLHQpe2Nhc2UianBlZyI6cz1vLnRvRGF0YVVSTCgiaW1hZ2UvanBlZyIpO2JyZWFrO2Nhc2Uid2VicCI6cz1vLnRvRGF0YVVSTCgiaW1hZ2Uvd2VicCIpO2JyZWFrO2RlZmF1bHQ6cz1vLnRvRGF0YVVSTCgiaW1hZ2UvcG5nIil9cmV0dXJuIHRoaXMuc3RhdGljTW9kZSYmdGhpcy5jb250YWluZXIucmVtb3ZlQ2hpbGQobiksc30sdy5zZXRDb252ZXJ0PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTA7dDwzO3QrKyl7dmFyIGU9dGhpcy5mdWxsU2NlbmVMYXlvdXRba1t0XV07cC5zZXRDb252ZXJ0KGUsdGhpcy5mdWxsTGF5b3V0KSxlLnNldFNjYWxlPWYubm9vcH19LHcubWFrZTR0aERpbWVuc2lvbj1mdW5jdGlvbigpe3ZhciB0PXRoaXMuZ3JhcGhEaXYuX2Z1bGxMYXlvdXQ7dGhpcy5fbW9ja0F4aXM9e3R5cGU6ImxpbmVhciIsc2hvd2V4cG9uZW50OiJhbGwiLGV4cG9uZW50Zm9ybWF0OiJCIn0scC5zZXRDb252ZXJ0KHRoaXMuX21vY2tBeGlzLHQpfSxlLmV4cG9ydHM9X30seyIuLi8uLi8uLi9zdGFja2dsX21vZHVsZXMiOjExMzMsIi4uLy4uL2NvbXBvbmVudHMvZngiOjQwNywiLi4vLi4vbGliIjo1MTUsIi4uLy4uL2xpYi9zaG93X25vX3dlYmdsX21zZyI6NTM3LCIuLi8uLi9saWIvc3RyMnJnYmFycmF5Ijo1NDAsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo1NjYsIi4uLy4uL3JlZ2lzdHJ5Ijo2NDcsIi4vbGF5b3V0L2NvbnZlcnQiOjYxMSwiLi9sYXlvdXQvc3Bpa2VzIjo2MTQsIi4vbGF5b3V0L3RpY2tfbWFya3MiOjYxNSwiLi9wcm9qZWN0Ijo2MTYsImhhcy1wYXNzaXZlLWV2ZW50cyI6MjI5LCJ3ZWJnbC1jb250ZXh0IjozMzJ9XSw2MTg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG4pe249bnx8dC5sZW5ndGg7Zm9yKHZhciBpPW5ldyBBcnJheShuKSxhPTA7YTxuO2ErKylpW2FdPVt0W2FdLGVbYV0sclthXV07cmV0dXJuIGl9fSx7fV0sNjE5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vZm9udF9hdHRyaWJ1dGVzIiksaT10KCIuL2FuaW1hdGlvbl9hdHRyaWJ1dGVzIiksYT10KCIuLi9jb21wb25lbnRzL2NvbG9yL2F0dHJpYnV0ZXMiKSxvPXQoIi4uL2NvbXBvbmVudHMvc2hhcGVzL2RyYXdfbmV3c2hhcGUvYXR0cmlidXRlcyIpLHM9dCgiLi4vY29tcG9uZW50cy9zZWxlY3Rpb25zL2RyYXdfbmV3c2VsZWN0aW9uL2F0dHJpYnV0ZXMiKSxsPXQoIi4vcGFkX2F0dHJpYnV0ZXMiKSxjPXQoIi4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LHU9bih7ZWRpdFR5cGU6ImNhbGMifSk7dS5mYW1pbHkuZGZsdD0nIk9wZW4gU2FucyIsIHZlcmRhbmEsIGFyaWFsLCBzYW5zLXNlcmlmJyx1LnNpemUuZGZsdD0xMix1LmNvbG9yLmRmbHQ9YS5kZWZhdWx0TGluZSxlLmV4cG9ydHM9e2ZvbnQ6dSx0aXRsZTp7dGV4dDp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToibGF5b3V0c3R5bGUifSxmb250Om4oe2VkaXRUeXBlOiJsYXlvdXRzdHlsZSJ9KSx4cmVmOnt2YWxUeXBlOiJlbnVtZXJhdGVkIixkZmx0OiJjb250YWluZXIiLHZhbHVlczpbImNvbnRhaW5lciIsInBhcGVyIl0sZWRpdFR5cGU6ImxheW91dHN0eWxlIn0seXJlZjp7dmFsVHlwZToiZW51bWVyYXRlZCIsZGZsdDoiY29udGFpbmVyIix2YWx1ZXM6WyJjb250YWluZXIiLCJwYXBlciJdLGVkaXRUeXBlOiJsYXlvdXRzdHlsZSJ9LHg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDouNSxlZGl0VHlwZToibGF5b3V0c3R5bGUifSx5Ont2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6ImF1dG8iLGVkaXRUeXBlOiJsYXlvdXRzdHlsZSJ9LHhhbmNob3I6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLGRmbHQ6ImF1dG8iLHZhbHVlczpbImF1dG8iLCJsZWZ0IiwiY2VudGVyIiwicmlnaHQiXSxlZGl0VHlwZToibGF5b3V0c3R5bGUifSx5YW5jaG9yOnt2YWxUeXBlOiJlbnVtZXJhdGVkIixkZmx0OiJhdXRvIix2YWx1ZXM6WyJhdXRvIiwidG9wIiwibWlkZGxlIiwiYm90dG9tIl0sZWRpdFR5cGU6ImxheW91dHN0eWxlIn0scGFkOmMobCh7ZWRpdFR5cGU6ImxheW91dHN0eWxlIn0pLHt9KSxlZGl0VHlwZToibGF5b3V0c3R5bGUifSx1bmlmb3JtdGV4dDp7bW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlshMSwiaGlkZSIsInNob3ciXSxkZmx0OiExLGVkaXRUeXBlOiJwbG90In0sbWluc2l6ZTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjAsZWRpdFR5cGU6InBsb3QifSxlZGl0VHlwZToicGxvdCJ9LGF1dG9zaXplOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExLGVkaXRUeXBlOiJub25lIn0sd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjEwLGRmbHQ6NzAwLGVkaXRUeXBlOiJwbG90In0saGVpZ2h0Ont2YWxUeXBlOiJudW1iZXIiLG1pbjoxMCxkZmx0OjQ1MCxlZGl0VHlwZToicGxvdCJ9LG1hcmdpbjp7bDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjgwLGVkaXRUeXBlOiJwbG90In0scjp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjgwLGVkaXRUeXBlOiJwbG90In0sdDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjEwMCxlZGl0VHlwZToicGxvdCJ9LGI6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDo4MCxlZGl0VHlwZToicGxvdCJ9LHBhZDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjAsZWRpdFR5cGU6InBsb3QifSxhdXRvZXhwYW5kOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJwbG90In0sZWRpdFR5cGU6InBsb3QifSxjb21wdXRlZDp7dmFsVHlwZToiYW55IixlZGl0VHlwZToibm9uZSJ9LHBhcGVyX2JnY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OmEuYmFja2dyb3VuZCxlZGl0VHlwZToicGxvdCJ9LHBsb3RfYmdjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6YS5iYWNrZ3JvdW5kLGVkaXRUeXBlOiJsYXlvdXRzdHlsZSJ9LGF1dG90eXBlbnVtYmVyczp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiY29udmVydCB0eXBlcyIsInN0cmljdCJdLGRmbHQ6ImNvbnZlcnQgdHlwZXMiLGVkaXRUeXBlOiJjYWxjIn0sc2VwYXJhdG9yczp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToicGxvdCJ9LGhpZGVzb3VyY2VzOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExLGVkaXRUeXBlOiJwbG90In0sc2hvd2xlZ2VuZDp7dmFsVHlwZToiYm9vbGVhbiIsZWRpdFR5cGU6ImxlZ2VuZCJ9LGNvbG9yd2F5Ont2YWxUeXBlOiJjb2xvcmxpc3QiLGRmbHQ6YS5kZWZhdWx0cyxlZGl0VHlwZToiY2FsYyJ9LGRhdGFyZXZpc2lvbjp7dmFsVHlwZToiYW55IixlZGl0VHlwZToiY2FsYyJ9LHVpcmV2aXNpb246e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6Im5vbmUifSxlZGl0cmV2aXNpb246e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6Im5vbmUifSxzZWxlY3Rpb25yZXZpc2lvbjp7dmFsVHlwZToiYW55IixlZGl0VHlwZToibm9uZSJ9LHRlbXBsYXRlOnt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJjYWxjIn0sbmV3c2hhcGU6by5uZXdzaGFwZSxhY3RpdmVzaGFwZTpvLmFjdGl2ZXNoYXBlLG5ld3NlbGVjdGlvbjpzLm5ld3NlbGVjdGlvbixhY3RpdmVzZWxlY3Rpb246cy5hY3RpdmVzZWxlY3Rpb24sbWV0YTp7dmFsVHlwZToiYW55IixhcnJheU9rOiEwLGVkaXRUeXBlOiJwbG90In0sdHJhbnNpdGlvbjpjKHt9LGkudHJhbnNpdGlvbix7ZWRpdFR5cGU6Im5vbmUifSksX2RlcHJlY2F0ZWQ6e3RpdGxlOnt2YWxUeXBlOiJzdHJpbmciLGVkaXRUeXBlOiJsYXlvdXRzdHlsZSJ9LHRpdGxlZm9udDpuKHtlZGl0VHlwZToibGF5b3V0c3R5bGUifSl9fX0seyIuLi9jb21wb25lbnRzL2NvbG9yL2F0dHJpYnV0ZXMiOjM2NiwiLi4vY29tcG9uZW50cy9zZWxlY3Rpb25zL2RyYXdfbmV3c2VsZWN0aW9uL2F0dHJpYnV0ZXMiOjQ1MSwiLi4vY29tcG9uZW50cy9zaGFwZXMvZHJhd19uZXdzaGFwZS9hdHRyaWJ1dGVzIjo0NjMsIi4uL2xpYi9leHRlbmQiOjUwNSwiLi9hbmltYXRpb25fYXR0cmlidXRlcyI6NTYwLCIuL2ZvbnRfYXR0cmlidXRlcyI6NTk0LCIuL3BhZF9hdHRyaWJ1dGVzIjo2Mjd9XSw2MjA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliL3NvcnRfb2JqZWN0X2tleXMiKSxpPSdceGE5IDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwczovL3d3dy5vcGVuc3RyZWV0bWFwLm9yZy9jb3B5cmlnaHQiPk9wZW5TdHJlZXRNYXA8L2E+IGNvbnRyaWJ1dG9ycycsYT1bJ1x4YTkgPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Imh0dHBzOi8vY2FydG8uY29tLyI+Q2FydG88L2E+JyxpXS5qb2luKCIgIiksbz1bJ01hcCB0aWxlcyBieSA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cHM6Ly9zdGFtZW4uY29tIj5TdGFtZW4gRGVzaWduPC9hPicsJ3VuZGVyIDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwczovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wIj5DQyBCWSAzLjA8L2E+JywifCIsJ0RhdGEgYnkgPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Imh0dHBzOi8vb3BlbnN0cmVldG1hcC5vcmciPk9wZW5TdHJlZXRNYXA8L2E+IGNvbnRyaWJ1dG9ycycsJ3VuZGVyIDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwczovL3d3dy5vcGVuc3RyZWV0bWFwLm9yZy9jb3B5cmlnaHQiPk9EYkw8L2E+J10uam9pbigiICIpLHM9eyJvcGVuLXN0cmVldC1tYXAiOntpZDoib3NtIix2ZXJzaW9uOjgsc291cmNlczp7InBsb3RseS1vc20tdGlsZXMiOnt0eXBlOiJyYXN0ZXIiLGF0dHJpYnV0aW9uOmksdGlsZXM6WyJodHRwczovL2EudGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmciLCJodHRwczovL2IudGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmciXSx0aWxlU2l6ZToyNTZ9fSxsYXllcnM6W3tpZDoicGxvdGx5LW9zbS10aWxlcyIsdHlwZToicmFzdGVyIixzb3VyY2U6InBsb3RseS1vc20tdGlsZXMiLG1pbnpvb206MCxtYXh6b29tOjIyfV19LCJ3aGl0ZS1iZyI6e2lkOiJ3aGl0ZS1iZyIsdmVyc2lvbjo4LHNvdXJjZXM6e30sbGF5ZXJzOlt7aWQ6IndoaXRlLWJnIix0eXBlOiJiYWNrZ3JvdW5kIixwYWludDp7ImJhY2tncm91bmQtY29sb3IiOiIjRkZGRkZGIn0sbWluem9vbTowLG1heHpvb206MjJ9XX0sImNhcnRvLXBvc2l0cm9uIjp7aWQ6ImNhcnRvLXBvc2l0cm9uIix2ZXJzaW9uOjgsc291cmNlczp7InBsb3RseS1jYXJ0by1wb3NpdHJvbiI6e3R5cGU6InJhc3RlciIsYXR0cmlidXRpb246YSx0aWxlczpbImh0dHBzOi8vY2FydG9kYi1iYXNlbWFwcy1jLmdsb2JhbC5zc2wuZmFzdGx5Lm5ldC9saWdodF9hbGwve3p9L3t4fS97eX0ucG5nIl0sdGlsZVNpemU6MjU2fX0sbGF5ZXJzOlt7aWQ6InBsb3RseS1jYXJ0by1wb3NpdHJvbiIsdHlwZToicmFzdGVyIixzb3VyY2U6InBsb3RseS1jYXJ0by1wb3NpdHJvbiIsbWluem9vbTowLG1heHpvb206MjJ9XX0sImNhcnRvLWRhcmttYXR0ZXIiOntpZDoiY2FydG8tZGFya21hdHRlciIsdmVyc2lvbjo4LHNvdXJjZXM6eyJwbG90bHktY2FydG8tZGFya21hdHRlciI6e3R5cGU6InJhc3RlciIsYXR0cmlidXRpb246YSx0aWxlczpbImh0dHBzOi8vY2FydG9kYi1iYXNlbWFwcy1jLmdsb2JhbC5zc2wuZmFzdGx5Lm5ldC9kYXJrX2FsbC97en0ve3h9L3t5fS5wbmciXSx0aWxlU2l6ZToyNTZ9fSxsYXllcnM6W3tpZDoicGxvdGx5LWNhcnRvLWRhcmttYXR0ZXIiLHR5cGU6InJhc3RlciIsc291cmNlOiJwbG90bHktY2FydG8tZGFya21hdHRlciIsbWluem9vbTowLG1heHpvb206MjJ9XX0sInN0YW1lbi10ZXJyYWluIjp7aWQ6InN0YW1lbi10ZXJyYWluIix2ZXJzaW9uOjgsc291cmNlczp7InBsb3RseS1zdGFtZW4tdGVycmFpbiI6e3R5cGU6InJhc3RlciIsYXR0cmlidXRpb246byx0aWxlczpbImh0dHBzOi8vc3RhbWVuLXRpbGVzLmEuc3NsLmZhc3RseS5uZXQvdGVycmFpbi97en0ve3h9L3t5fS5wbmciXSx0aWxlU2l6ZToyNTZ9fSxsYXllcnM6W3tpZDoicGxvdGx5LXN0YW1lbi10ZXJyYWluIix0eXBlOiJyYXN0ZXIiLHNvdXJjZToicGxvdGx5LXN0YW1lbi10ZXJyYWluIixtaW56b29tOjAsbWF4em9vbToyMn1dfSwic3RhbWVuLXRvbmVyIjp7aWQ6InN0YW1lbi10b25lciIsdmVyc2lvbjo4LHNvdXJjZXM6eyJwbG90bHktc3RhbWVuLXRvbmVyIjp7dHlwZToicmFzdGVyIixhdHRyaWJ1dGlvbjpvLHRpbGVzOlsiaHR0cHM6Ly9zdGFtZW4tdGlsZXMuYS5zc2wuZmFzdGx5Lm5ldC90b25lci97en0ve3h9L3t5fS5wbmciXSx0aWxlU2l6ZToyNTZ9fSxsYXllcnM6W3tpZDoicGxvdGx5LXN0YW1lbi10b25lciIsdHlwZToicmFzdGVyIixzb3VyY2U6InBsb3RseS1zdGFtZW4tdG9uZXIiLG1pbnpvb206MCxtYXh6b29tOjIyfV19LCJzdGFtZW4td2F0ZXJjb2xvciI6e2lkOiJzdGFtZW4td2F0ZXJjb2xvciIsdmVyc2lvbjo4LHNvdXJjZXM6eyJwbG90bHktc3RhbWVuLXdhdGVyY29sb3IiOnt0eXBlOiJyYXN0ZXIiLGF0dHJpYnV0aW9uOlsnTWFwIHRpbGVzIGJ5IDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwczovL3N0YW1lbi5jb20iPlN0YW1lbiBEZXNpZ248L2E+JywndW5kZXIgPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Imh0dHBzOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS8zLjAiPkNDIEJZIDMuMDwvYT4nLCJ8IiwnRGF0YSBieSA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cHM6Ly9vcGVuc3RyZWV0bWFwLm9yZyI+T3BlblN0cmVldE1hcDwvYT4gY29udHJpYnV0b3JzJywndW5kZXIgPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Imh0dHBzOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1zYS8zLjAiPkNDIEJZIFNBPC9hPiddLmpvaW4oIiAiKSx0aWxlczpbImh0dHBzOi8vc3RhbWVuLXRpbGVzLmEuc3NsLmZhc3RseS5uZXQvd2F0ZXJjb2xvci97en0ve3h9L3t5fS5wbmciXSx0aWxlU2l6ZToyNTZ9fSxsYXllcnM6W3tpZDoicGxvdGx5LXN0YW1lbi13YXRlcmNvbG9yIix0eXBlOiJyYXN0ZXIiLHNvdXJjZToicGxvdGx5LXN0YW1lbi13YXRlcmNvbG9yIixtaW56b29tOjAsbWF4em9vbToyMn1dfX0sbD1uKHMpO2UuZXhwb3J0cz17cmVxdWlyZWRWZXJzaW9uOiIxLjEwLjEiLHN0eWxlVXJsUHJlZml4OiJtYXBib3g6Ly9zdHlsZXMvbWFwYm94LyIsc3R5bGVVcmxTdWZmaXg6InY5IixzdHlsZVZhbHVlc01hcGJveDpbImJhc2ljIiwic3RyZWV0cyIsIm91dGRvb3JzIiwibGlnaHQiLCJkYXJrIiwic2F0ZWxsaXRlIiwic2F0ZWxsaXRlLXN0cmVldHMiXSxzdHlsZVZhbHVlRGZsdDoiYmFzaWMiLHN0eWxlc05vbk1hcGJveDpzLHN0eWxlVmFsdWVzTm9uTWFwYm94OmwsdHJhY2VMYXllclByZWZpeDoicGxvdGx5LXRyYWNlLWxheWVyLSIsbGF5b3V0TGF5ZXJQcmVmaXg6InBsb3RseS1sYXlvdXQtbGF5ZXItIix3cm9uZ1ZlcnNpb25FcnJvck1zZzpbIllvdXIgY3VzdG9tIHBsb3RseS5qcyBidW5kbGUgaXMgbm90IHVzaW5nIHRoZSBjb3JyZWN0IG1hcGJveC1nbCB2ZXJzaW9uIiwiUGxlYXNlIGluc3RhbGwgbWFwYm94LWdsQDEuMTAuMS4iXS5qb2luKCJcbiIpLG5vQWNjZXNzVG9rZW5FcnJvck1zZzpbIk1pc3NpbmcgTWFwYm94IGFjY2VzcyB0b2tlbi4iLCJNYXBib3ggdHJhY2UgdHlwZSByZXF1aXJlIGEgTWFwYm94IGFjY2VzcyB0b2tlbiB0byBiZSByZWdpc3RlcmVkLiIsIkZvciBleGFtcGxlOiIsIiAgUGxvdGx5Lm5ld1Bsb3QoZ2QsIGRhdGEsIGxheW91dCwgeyBtYXBib3hBY2Nlc3NUb2tlbjogJ215LWFjY2Vzcy10b2tlbicgfSk7IiwiTW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vd3d3Lm1hcGJveC5jb20vaGVscC9kZWZpbmUtYWNjZXNzLXRva2VuLyJdLmpvaW4oIlxuIiksbWlzc2luZ1N0eWxlRXJyb3JNc2c6WyJObyB2YWxpZCBtYXBib3ggc3R5bGUgZm91bmQsIHBsZWFzZSBzZXQgYG1hcGJveC5zdHlsZWAgdG8gb25lIG9mOiIsbC5qb2luKCIsICIpLCJvciByZWdpc3RlciBhIE1hcGJveCBhY2Nlc3MgdG9rZW4gdG8gdXNlIGEgTWFwYm94LXNlcnZlZCBzdHlsZS4iXS5qb2luKCJcbiIpLG11bHRpcGxlVG9rZW5zRXJyb3JNc2c6WyJTZXQgbXVsdGlwbGUgbWFwYm94IGFjY2VzcyB0b2tlbiBhY3Jvc3MgZGlmZmVyZW50IG1hcGJveCBzdWJwbG90LCIsInVzaW5nIGZpcnN0IHRva2VuIGZvdW5kIGFzIG1hcGJveC1nbCBkb2VzIG5vdCBhbGxvdyBtdWx0aXBsZWFjY2VzcyB0b2tlbnMgb24gdGhlIHNhbWUgcGFnZS4iXS5qb2luKCJcbiIpLG1hcE9uRXJyb3JNc2c6Ik1hcGJveCBlcnJvci4iLG1hcGJveExvZ286e3BhdGgwOiJtIDEwLjUsMS4yNCBjIC01LjExLDAgLTkuMjUsNC4xNSAtOS4yNSw5LjI1IDAsNS4xIDQuMTUsOS4yNSA5LjI1LDkuMjUgNS4xLDAgOS4yNSwtNC4xNSA5LjI1LC05LjI1IDAsLTUuMTEgLTQuMTQsLTkuMjUgLTkuMjUsLTkuMjUgeiBtIDQuMzksMTEuNTMgYyAtMS45MywxLjkzIC00Ljc4LDIuMzEgLTYuNywyLjMxIC0wLjcsMCAtMS40MSwtMC4wNSAtMi4xLC0wLjE2IDAsMCAtMS4wMiwtNS42NCAyLjE0LC04LjgxIDAuODMsLTAuODMgMS45NSwtMS4yOCAzLjEzLC0xLjI4IDEuMjcsMCAyLjQ5LDAuNTEgMy4zOSwxLjQyIDEuODQsMS44NCAxLjg5LDQuNzUgMC4xNCw2LjUyIHoiLHBhdGgxOiJNIDEwLjUsLTAuMDEgQyA0LjcsLTAuMDEgMCw0LjcgMCwxMC40OSBjIDAsNS43OSA0LjcsMTAuNSAxMC41LDEwLjUgNS44LDAgMTAuNSwtNC43IDEwLjUsLTEwLjUgQyAyMC45OSw0LjcgMTYuMywtMC4wMSAxMC41LC0wLjAxIFogbSAwLDE5Ljc1IGMgLTUuMTEsMCAtOS4yNSwtNC4xNSAtOS4yNSwtOS4yNSAwLC01LjEgNC4xNCwtOS4yNiA5LjI1LC05LjI2IDUuMTEsMCA5LjI1LDQuMTUgOS4yNSw5LjI1IDAsNS4xMyAtNC4xNCw5LjI2IC05LjI1LDkuMjYgeiIscGF0aDI6Ik0gMTQuNzQsNi4yNSBDIDEyLjksNC40MSA5Ljk4LDQuMzUgOC4yMyw2LjEgNS4wNyw5LjI3IDYuMDksMTQuOTEgNi4wOSwxNC45MSBjIDAsMCA1LjY0LDEuMDIgOC44MSwtMi4xNCBDIDE2LjY0LDExIDE2LjU5LDguMDkgMTQuNzQsNi4yNSBaIG0gLTIuMjcsNC4wOSAtMC45MSwxLjg3IC0wLjksLTEuODcgLTEuODYsLTAuOTEgMS44NiwtMC45IDAuOSwtMS44NyAwLjkxLDEuODcgMS44NiwwLjkgeiIscG9seWdvbjoiMTEuNTYsMTIuMjEgMTAuNjYsMTAuMzQgOC44LDkuNDMgMTAuNjYsOC41MyAxMS41Niw2LjY2IDEyLjQ3LDguNTMgMTQuMzMsOS40MyAxMi40NywxMC4zNCJ9LHN0eWxlUnVsZXM6e21hcDoib3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlOyIsIm1pc3NpbmctY3NzIjoiZGlzcGxheTpub25lOyIsY2FuYXJ5OiJiYWNrZ3JvdW5kLWNvbG9yOnNhbG1vbjsiLCJjdHJsLWJvdHRvbS1sZWZ0IjoicG9zaXRpb246IGFic29sdXRlOyBwb2ludGVyLWV2ZW50czogbm9uZTsgei1pbmRleDogMjsgYm90dG9tOiAwOyBsZWZ0OiAwOyIsImN0cmwtYm90dG9tLXJpZ2h0IjoicG9zaXRpb246IGFic29sdXRlOyBwb2ludGVyLWV2ZW50czogbm9uZTsgei1pbmRleDogMjsgcmlnaHQ6IDA7IGJvdHRvbTogMDsiLGN0cmw6ImNsZWFyOiBib3RoOyBwb2ludGVyLWV2ZW50czogYXV0bzsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IiwiY3RybC1hdHRyaWIubWFwYm94Z2wtY29tcGFjdCAubWFwYm94Z2wtY3RybC1hdHRyaWItaW5uZXIiOiJkaXNwbGF5OiBub25lOyIsImN0cmwtYXR0cmliLm1hcGJveGdsLWNvbXBhY3Q6aG92ZXIgLm1hcGJveGdsLWN0cmwtYXR0cmliLWlubmVyIjoiZGlzcGxheTogYmxvY2s7IG1hcmdpbi10b3A6MnB4IiwiY3RybC1hdHRyaWIubWFwYm94Z2wtY29tcGFjdDpob3ZlciI6InBhZGRpbmc6IDJweCAyNHB4IDJweCA0cHg7IHZpc2liaWxpdHk6IHZpc2libGU7IG1hcmdpbi10b3A6IDZweDsiLCJjdHJsLWF0dHJpYi5tYXBib3hnbC1jb21wYWN0OjphZnRlciI6J2NvbnRlbnQ6ICIiOyBjdXJzb3I6IHBvaW50ZXI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwnZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnIHZpZXdCb3g9IjAgMCAyMCAyMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiUzRSAlM0NwYXRoIGZpbGw9IiUyMzMzMzMzMyIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNCwxMGE2LDYgMCAxLDAgMTIsMGE2LDYgMCAxLDAgLTEyLDAgTTksN2ExLDEgMCAxLDAgMiwwYTEsMSAwIDEsMCAtMiwwIE05LDEwYTEsMSAwIDEsMSAyLDBsMCwzYTEsMSAwIDEsMSAtMiwwIi8lM0UgJTNDL3N2ZyUzRVwnKTsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOyB3aWR0aDogMjRweDsgaGVpZ2h0OiAyNHB4OyBib3gtc2l6aW5nOiBib3JkZXItYm94OyBib3JkZXItcmFkaXVzOiAxMnB4OycsImN0cmwtYXR0cmliLm1hcGJveGdsLWNvbXBhY3QiOiJtaW4taGVpZ2h0OiAyMHB4OyBwYWRkaW5nOiAwOyBtYXJnaW46IDEwcHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgYm9yZGVyLXJhZGl1czogM3B4IDEycHggMTJweCAzcHg7IiwiY3RybC1ib3R0b20tcmlnaHQgPiAubWFwYm94Z2wtY3RybC1hdHRyaWIubWFwYm94Z2wtY29tcGFjdDo6YWZ0ZXIiOiJib3R0b206IDA7IHJpZ2h0OiAwIiwiY3RybC1ib3R0b20tbGVmdCA+IC5tYXBib3hnbC1jdHJsLWF0dHJpYi5tYXBib3hnbC1jb21wYWN0OjphZnRlciI6ImJvdHRvbTogMDsgbGVmdDogMCIsImN0cmwtYm90dG9tLWxlZnQgLm1hcGJveGdsLWN0cmwiOiJtYXJnaW46IDAgMCAxMHB4IDEwcHg7IGZsb2F0OiBsZWZ0OyIsImN0cmwtYm90dG9tLXJpZ2h0IC5tYXBib3hnbC1jdHJsIjoibWFyZ2luOiAwIDEwcHggMTBweCAwOyBmbG9hdDogcmlnaHQ7IiwiY3RybC1hdHRyaWIiOiJjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjc1KTsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBmb250LXNpemU6IDEycHgiLCJjdHJsLWF0dHJpYiBhIjoiY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43NSk7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgZm9udC1zaXplOiAxMnB4IiwiY3RybC1hdHRyaWIgYTpob3ZlciI6ImNvbG9yOiBpbmhlcml0OyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsiLCJjdHJsLWF0dHJpYiAubWFwYm94LWltcHJvdmUtbWFwIjoiZm9udC13ZWlnaHQ6IGJvbGQ7IG1hcmdpbi1sZWZ0OiAycHg7IiwiYXR0cmliLWVtcHR5IjoiZGlzcGxheTogbm9uZTsiLCJjdHJsLWxvZ28iOidkaXNwbGF5OmJsb2NrOyB3aWR0aDogMjFweDsgaGVpZ2h0OiAyMXB4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCdkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0M/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8lM0UgJTNDc3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMjEgMjEiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDIxIDIxOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIlM0UlM0NnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsMC4wMSkiJTNFJTNDcGF0aCBkPSJtIDEwLjUsMS4yNCBjIC01LjExLDAgLTkuMjUsNC4xNSAtOS4yNSw5LjI1IDAsNS4xIDQuMTUsOS4yNSA5LjI1LDkuMjUgNS4xLDAgOS4yNSwtNC4xNSA5LjI1LC05LjI1IDAsLTUuMTEgLTQuMTQsLTkuMjUgLTkuMjUsLTkuMjUgeiBtIDQuMzksMTEuNTMgYyAtMS45MywxLjkzIC00Ljc4LDIuMzEgLTYuNywyLjMxIC0wLjcsMCAtMS40MSwtMC4wNSAtMi4xLC0wLjE2IDAsMCAtMS4wMiwtNS42NCAyLjE0LC04LjgxIDAuODMsLTAuODMgMS45NSwtMS4yOCAzLjEzLC0xLjI4IDEuMjcsMCAyLjQ5LDAuNTEgMy4zOSwxLjQyIDEuODQsMS44NCAxLjg5LDQuNzUgMC4xNCw2LjUyIHoiIHN0eWxlPSJvcGFjaXR5OjAuOTtmaWxsOiUyM2ZmZmZmZjtlbmFibGUtYmFja2dyb3VuZDpuZXciIGNsYXNzPSJzdDAiLyUzRSUzQ3BhdGggZD0iTSAxMC41LC0wLjAxIEMgNC43LC0wLjAxIDAsNC43IDAsMTAuNDkgYyAwLDUuNzkgNC43LDEwLjUgMTAuNSwxMC41IDUuOCwwIDEwLjUsLTQuNyAxMC41LC0xMC41IEMgMjAuOTksNC43IDE2LjMsLTAuMDEgMTAuNSwtMC4wMSBaIG0gMCwxOS43NSBjIC01LjExLDAgLTkuMjUsLTQuMTUgLTkuMjUsLTkuMjUgMCwtNS4xIDQuMTQsLTkuMjYgOS4yNSwtOS4yNiA1LjExLDAgOS4yNSw0LjE1IDkuMjUsOS4yNSAwLDUuMTMgLTQuMTQsOS4yNiAtOS4yNSw5LjI2IHoiIHN0eWxlPSJvcGFjaXR5OjAuMzU7ZW5hYmxlLWJhY2tncm91bmQ6bmV3IiBjbGFzcz0ic3QxIi8lM0UlM0NwYXRoIGQ9Ik0gMTQuNzQsNi4yNSBDIDEyLjksNC40MSA5Ljk4LDQuMzUgOC4yMyw2LjEgNS4wNyw5LjI3IDYuMDksMTQuOTEgNi4wOSwxNC45MSBjIDAsMCA1LjY0LDEuMDIgOC44MSwtMi4xNCBDIDE2LjY0LDExIDE2LjU5LDguMDkgMTQuNzQsNi4yNSBaIG0gLTIuMjcsNC4wOSAtMC45MSwxLjg3IC0wLjksLTEuODcgLTEuODYsLTAuOTEgMS44NiwtMC45IDAuOSwtMS44NyAwLjkxLDEuODcgMS44NiwwLjkgeiIgc3R5bGU9Im9wYWNpdHk6MC4zNTtlbmFibGUtYmFja2dyb3VuZDpuZXciIGNsYXNzPSJzdDEiLyUzRSUzQ3BvbHlnb24gcG9pbnRzPSIxMS41NiwxMi4yMSAxMC42NiwxMC4zNCA4LjgsOS40MyAxMC42Niw4LjUzIDExLjU2LDYuNjYgMTIuNDcsOC41MyAxNC4zMyw5LjQzIDEyLjQ3LDEwLjM0ICIgc3R5bGU9Im9wYWNpdHk6MC45O2ZpbGw6JTIzZmZmZmZmO2VuYWJsZS1iYWNrZ3JvdW5kOm5ldyIgY2xhc3M9InN0MCIvJTNFJTNDL2clM0UlM0Mvc3ZnJTNFXCcpJ319fSx7Ii4uLy4uL2xpYi9zb3J0X29iamVjdF9rZXlzIjo1Mzh9XSw2MjE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5zcGxpdCgiICIpLGk9clswXSxhPXJbMV0sbz1uLmlzQXJyYXlPclR5cGVkQXJyYXkoZSk/bi5tZWFuKGUpOmUscz0uNStvLzEwMCxsPTEuNStvLzEwMCxjPVsiIiwiIl0sdT1bMCwwXTtzd2l0Y2goaSl7Y2FzZSJ0b3AiOmNbMF09InRvcCIsdVsxXT0tbDticmVhaztjYXNlImJvdHRvbSI6Y1swXT0iYm90dG9tIix1WzFdPWx9c3dpdGNoKGEpe2Nhc2UibGVmdCI6Y1sxXT0icmlnaHQiLHVbMF09LXM7YnJlYWs7Y2FzZSJyaWdodCI6Y1sxXT0ibGVmdCIsdVswXT1zfXJldHVybnthbmNob3I6Y1swXSYmY1sxXT9jLmpvaW4oIi0iKTpjWzBdP2NbMF06Y1sxXT9jWzFdOiJjZW50ZXIiLG9mZnNldDp1fX19LHsiLi4vLi4vbGliIjo1MTV9XSw2MjI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgibWFwYm94LWdsL2Rpc3QvbWFwYm94LWdsLXVubWluaWZpZWQiKSxpPXQoIi4uLy4uL2xpYiIpLGE9aS5zdHJUcmFuc2xhdGUsbz1pLnN0clNjYWxlLHM9dCgiLi4vLi4vcGxvdHMvZ2V0X2RhdGEiKS5nZXRTdWJwbG90Q2FsY0RhdGEsbD10KCIuLi8uLi9jb25zdGFudHMveG1sbnNfbmFtZXNwYWNlcyIpLGM9dCgiQHBsb3RseS9kMyIpLHU9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIiksZj10KCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiKSxoPXQoIi4vbWFwYm94IikscD1yLmNvbnN0YW50cz10KCIuL2NvbnN0YW50cyIpO2Z1bmN0aW9uIGQodCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0JiYoLTEhPT1wLnN0eWxlVmFsdWVzTWFwYm94LmluZGV4T2YodCl8fDA9PT10LmluZGV4T2YoIm1hcGJveDovLyIpKX1yLm5hbWU9Im1hcGJveCIsci5hdHRyPSJzdWJwbG90IixyLmlkUm9vdD0ibWFwYm94IixyLmlkUmVnZXg9ci5hdHRyUmVnZXg9aS5jb3VudGVyUmVnZXgoIm1hcGJveCIpLHIuYXR0cmlidXRlcz17c3VicGxvdDp7dmFsVHlwZToic3VicGxvdGlkIixkZmx0OiJtYXBib3giLGVkaXRUeXBlOiJjYWxjIn19LHIubGF5b3V0QXR0cmlidXRlcz10KCIuL2xheW91dF9hdHRyaWJ1dGVzIiksci5zdXBwbHlMYXlvdXREZWZhdWx0cz10KCIuL2xheW91dF9kZWZhdWx0cyIpLHIucGxvdD1mdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0LHI9dC5jYWxjZGF0YSxhPWUuX3N1YnBsb3RzLm1hcGJveDtpZihuLnZlcnNpb24hPT1wLnJlcXVpcmVkVmVyc2lvbil0aHJvdyBuZXcgRXJyb3IocC53cm9uZ1ZlcnNpb25FcnJvck1zZyk7dmFyIG89ZnVuY3Rpb24odCxlKXt2YXIgcj10Ll9mdWxsTGF5b3V0O2lmKCIiPT09dC5fY29udGV4dC5tYXBib3hBY2Nlc3NUb2tlbilyZXR1cm4iIjtmb3IodmFyIG49W10sYT1bXSxvPSExLHM9ITEsbD0wO2w8ZS5sZW5ndGg7bCsrKXt2YXIgYz1yW2VbbF1dLHU9Yy5hY2Nlc3N0b2tlbjtkKGMuc3R5bGUpJiYodT9pLnB1c2hVbmlxdWUobix1KTooZChjLl9pbnB1dC5zdHlsZSkmJihpLmVycm9yKCJVc2VzIE1hcGJveCBtYXAgc3R5bGUsIGJ1dCBkaWQgbm90IHNldCBhbiBhY2Nlc3MgdG9rZW4uIiksbz0hMCkscz0hMCkpLHUmJmkucHVzaFVuaXF1ZShhLHUpfWlmKHMpe3ZhciBmPW8/cC5ub0FjY2Vzc1Rva2VuRXJyb3JNc2c6cC5taXNzaW5nU3R5bGVFcnJvck1zZzt0aHJvdyBpLmVycm9yKGYpLG5ldyBFcnJvcihmKX1yZXR1cm4gbi5sZW5ndGg/KG4ubGVuZ3RoPjEmJmkud2FybihwLm11bHRpcGxlVG9rZW5zRXJyb3JNc2cpLG5bMF0pOihhLmxlbmd0aCYmaS5sb2coWyJMaXN0ZWQgbWFwYm94IGFjY2VzcyB0b2tlbihzKSIsYS5qb2luKCIsIiksImJ1dCBkaWQgbm90IHVzZSBhIE1hcGJveCBtYXAgc3R5bGUsIGlnbm9yaW5nIHRva2VuKHMpLiJdLmpvaW4oIiAiKSksIiIpfSh0LGEpO24uYWNjZXNzVG9rZW49bztmb3IodmFyIGw9MDtsPGEubGVuZ3RoO2wrKyl7dmFyIGM9YVtsXSx1PXMociwibWFwYm94IixjKSxmPWVbY10sbT1mLl9zdWJwbG90O218fChtPW5ldyBoKHQsYyksZVtjXS5fc3VicGxvdD1tKSxtLnZpZXdJbml0aWFsfHwobS52aWV3SW5pdGlhbD17Y2VudGVyOmkuZXh0ZW5kRmxhdCh7fSxmLmNlbnRlciksem9vbTpmLnpvb20sYmVhcmluZzpmLmJlYXJpbmcscGl0Y2g6Zi5waXRjaH0pLG0ucGxvdCh1LGUsdC5fcHJvbWlzZXMpfX0sci5jbGVhbj1mdW5jdGlvbih0LGUscixuKXtmb3IodmFyIGk9bi5fc3VicGxvdHMubWFwYm94fHxbXSxhPTA7YTxpLmxlbmd0aDthKyspe3ZhciBvPWlbYV07IWVbb10mJm5bb10uX3N1YnBsb3QmJm5bb10uX3N1YnBsb3QuZGVzdHJveSgpfX0sci50b1NWRz1mdW5jdGlvbih0KXtmb3IodmFyIGU9dC5fZnVsbExheW91dCxyPWUuX3N1YnBsb3RzLm1hcGJveCxuPWUuX3NpemUsaT0wO2k8ci5sZW5ndGg7aSsrKXt2YXIgcz1lW3JbaV1dLGg9cy5kb21haW4sZD1zLl9zdWJwbG90LnRvSW1hZ2UoInBuZyIpO2UuX2dsaW1hZ2VzLmFwcGVuZCgic3ZnOmltYWdlIikuYXR0cih7eG1sbnM6bC5zdmcsInhsaW5rOmhyZWYiOmQseDpuLmwrbi53KmgueFswXSx5Om4udCtuLmgqKDEtaC55WzFdKSx3aWR0aDpuLncqKGgueFsxXS1oLnhbMF0pLGhlaWdodDpuLmgqKGgueVsxXS1oLnlbMF0pLHByZXNlcnZlQXNwZWN0UmF0aW86Im5vbmUifSk7dmFyIG09Yy5zZWxlY3Qocy5fc3VicGxvdC5kaXYpO2lmKCEobnVsbD09PW0uc2VsZWN0KCIubWFwYm94Z2wtY3RybC1sb2dvIikubm9kZSgpLm9mZnNldFBhcmVudCkpe3ZhciBnPWUuX2dsaW1hZ2VzLmFwcGVuZCgiZyIpO2cuYXR0cigidHJhbnNmb3JtIixhKG4ubCtuLncqaC54WzBdKzEwLG4udCtuLmgqKDEtaC55WzBdKS0zMSkpLGcuYXBwZW5kKCJwYXRoIikuYXR0cigiZCIscC5tYXBib3hMb2dvLnBhdGgwKS5zdHlsZSh7b3BhY2l0eTouOSxmaWxsOiIjZmZmZmZmIiwiZW5hYmxlLWJhY2tncm91bmQiOiJuZXcifSksZy5hcHBlbmQoInBhdGgiKS5hdHRyKCJkIixwLm1hcGJveExvZ28ucGF0aDEpLnN0eWxlKCJvcGFjaXR5IiwuMzUpLnN0eWxlKCJlbmFibGUtYmFja2dyb3VuZCIsIm5ldyIpLGcuYXBwZW5kKCJwYXRoIikuYXR0cigiZCIscC5tYXBib3hMb2dvLnBhdGgyKS5zdHlsZSgib3BhY2l0eSIsLjM1KS5zdHlsZSgiZW5hYmxlLWJhY2tncm91bmQiLCJuZXciKSxnLmFwcGVuZCgicG9seWdvbiIpLmF0dHIoInBvaW50cyIscC5tYXBib3hMb2dvLnBvbHlnb24pLnN0eWxlKHtvcGFjaXR5Oi45LGZpbGw6IiNmZmZmZmYiLCJlbmFibGUtYmFja2dyb3VuZCI6Im5ldyJ9KX12YXIgdj1tLnNlbGVjdCgiLm1hcGJveGdsLWN0cmwtYXR0cmliIikudGV4dCgpLnJlcGxhY2UoIkltcHJvdmUgdGhpcyBtYXAiLCIiKSx5PWUuX2dsaW1hZ2VzLmFwcGVuZCgiZyIpLHg9eS5hcHBlbmQoInRleHQiKTt4LnRleHQodikuY2xhc3NlZCgic3RhdGljLWF0dHJpYnV0aW9uIiwhMCkuYXR0cih7ImZvbnQtc2l6ZSI6MTIsImZvbnQtZmFtaWx5IjoiQXJpYWwiLGNvbG9yOiJyZ2JhKDAsIDAsIDAsIDAuNzUpIiwidGV4dC1hbmNob3IiOiJlbmQiLCJkYXRhLXVuZm9ybWF0dGVkIjp2fSk7dmFyIGI9dS5iQm94KHgubm9kZSgpKSxfPW4udyooaC54WzFdLWgueFswXSk7aWYoYi53aWR0aD5fLzIpe3ZhciB3PXYuc3BsaXQoInwiKS5qb2luKCI8YnI+Iik7eC50ZXh0KHcpLmF0dHIoImRhdGEtdW5mb3JtYXR0ZWQiLHcpLmNhbGwoZi5jb252ZXJ0VG9Uc3BhbnMsdCksYj11LmJCb3goeC5ub2RlKCkpfXguYXR0cigidHJhbnNmb3JtIixhKC0zLDgtYi5oZWlnaHQpKSx5Lmluc2VydCgicmVjdCIsIi5zdGF0aWMtYXR0cmlidXRpb24iKS5hdHRyKHt4Oi1iLndpZHRoLTYseTotYi5oZWlnaHQtMyx3aWR0aDpiLndpZHRoKzYsaGVpZ2h0OmIuaGVpZ2h0KzMsZmlsbDoicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc1KSJ9KTt2YXIgVD0xO2Iud2lkdGgrNj5fJiYoVD1fLyhiLndpZHRoKzYpKTt2YXIgaz1bbi5sK24udypoLnhbMV0sbi50K24uaCooMS1oLnlbMF0pXTt5LmF0dHIoInRyYW5zZm9ybSIsYShrWzBdLGtbMV0pK28oVCkpfX0sci51cGRhdGVGeD1mdW5jdGlvbih0KXtmb3IodmFyIGU9dC5fZnVsbExheW91dCxyPWUuX3N1YnBsb3RzLm1hcGJveCxuPTA7bjxyLmxlbmd0aDtuKyspe2VbcltuXV0uX3N1YnBsb3QudXBkYXRlRngoZSl9fX0seyIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjM4OSwiLi4vLi4vY29uc3RhbnRzL3htbG5zX25hbWVzcGFjZXMiOjQ5MiwiLi4vLi4vbGliIjo1MTUsIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyI6NTQxLCIuLi8uLi9wbG90cy9nZXRfZGF0YSI6NjAyLCIuL2NvbnN0YW50cyI6NjIwLCIuL2xheW91dF9hdHRyaWJ1dGVzIjo2MjQsIi4vbGF5b3V0X2RlZmF1bHRzIjo2MjUsIi4vbWFwYm94Ijo2MjYsIkBwbG90bHkvZDMiOjU4LCJtYXBib3gtZ2wvZGlzdC9tYXBib3gtZ2wtdW5taW5pZmllZCI6MjM5fV0sNjIzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIikuc2FuaXRpemVIVE1MLGE9dCgiLi9jb252ZXJ0X3RleHRfb3B0cyIpLG89dCgiLi9jb25zdGFudHMiKTtmdW5jdGlvbiBzKHQsZSl7dGhpcy5zdWJwbG90PXQsdGhpcy51aWQ9dC51aWQrIi0iK2UsdGhpcy5pbmRleD1lLHRoaXMuaWRTb3VyY2U9InNvdXJjZS0iK3RoaXMudWlkLHRoaXMuaWRMYXllcj1vLmxheW91dExheWVyUHJlZml4K3RoaXMudWlkLHRoaXMuc291cmNlVHlwZT1udWxsLHRoaXMuc291cmNlPW51bGwsdGhpcy5sYXllclR5cGU9bnVsbCx0aGlzLmJlbG93PW51bGwsdGhpcy52aXNpYmxlPSExfXZhciBsPXMucHJvdG90eXBlO2Z1bmN0aW9uIGModCl7aWYoIXQudmlzaWJsZSlyZXR1cm4hMTt2YXIgZT10LnNvdXJjZTtpZihBcnJheS5pc0FycmF5KGUpJiZlLmxlbmd0aD4wKXtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKylpZigic3RyaW5nIiE9dHlwZW9mIGVbcl18fDA9PT1lW3JdLmxlbmd0aClyZXR1cm4hMTtyZXR1cm4hMH1yZXR1cm4gbi5pc1BsYWluT2JqZWN0KGUpfHwic3RyaW5nIj09dHlwZW9mIGUmJmUubGVuZ3RoPjB9ZnVuY3Rpb24gdSh0KXt2YXIgZT17fSxyPXt9O3N3aXRjaCh0LnR5cGUpe2Nhc2UiY2lyY2xlIjpuLmV4dGVuZEZsYXQocix7ImNpcmNsZS1yYWRpdXMiOnQuY2lyY2xlLnJhZGl1cywiY2lyY2xlLWNvbG9yIjp0LmNvbG9yLCJjaXJjbGUtb3BhY2l0eSI6dC5vcGFjaXR5fSk7YnJlYWs7Y2FzZSJsaW5lIjpuLmV4dGVuZEZsYXQocix7ImxpbmUtd2lkdGgiOnQubGluZS53aWR0aCwibGluZS1jb2xvciI6dC5jb2xvciwibGluZS1vcGFjaXR5Ijp0Lm9wYWNpdHksImxpbmUtZGFzaGFycmF5Ijp0LmxpbmUuZGFzaH0pO2JyZWFrO2Nhc2UiZmlsbCI6bi5leHRlbmRGbGF0KHIseyJmaWxsLWNvbG9yIjp0LmNvbG9yLCJmaWxsLW91dGxpbmUtY29sb3IiOnQuZmlsbC5vdXRsaW5lY29sb3IsImZpbGwtb3BhY2l0eSI6dC5vcGFjaXR5fSk7YnJlYWs7Y2FzZSJzeW1ib2wiOnZhciBpPXQuc3ltYm9sLG89YShpLnRleHRwb3NpdGlvbixpLmljb25zaXplKTtuLmV4dGVuZEZsYXQoZSx7Imljb24taW1hZ2UiOmkuaWNvbisiLTE1IiwiaWNvbi1zaXplIjppLmljb25zaXplLzEwLCJ0ZXh0LWZpZWxkIjppLnRleHQsInRleHQtc2l6ZSI6aS50ZXh0Zm9udC5zaXplLCJ0ZXh0LWFuY2hvciI6by5hbmNob3IsInRleHQtb2Zmc2V0IjpvLm9mZnNldCwic3ltYm9sLXBsYWNlbWVudCI6aS5wbGFjZW1lbnR9KSxuLmV4dGVuZEZsYXQocix7Imljb24tY29sb3IiOnQuY29sb3IsInRleHQtY29sb3IiOmkudGV4dGZvbnQuY29sb3IsInRleHQtb3BhY2l0eSI6dC5vcGFjaXR5fSk7YnJlYWs7Y2FzZSJyYXN0ZXIiOm4uZXh0ZW5kRmxhdChyLHsicmFzdGVyLWZhZGUtZHVyYXRpb24iOjAsInJhc3Rlci1vcGFjaXR5Ijp0Lm9wYWNpdHl9KX1yZXR1cm57bGF5b3V0OmUscGFpbnQ6cn19bC51cGRhdGU9ZnVuY3Rpb24odCl7dGhpcy52aXNpYmxlP3RoaXMubmVlZHNOZXdJbWFnZSh0KT90aGlzLnVwZGF0ZUltYWdlKHQpOnRoaXMubmVlZHNOZXdTb3VyY2UodCk/KHRoaXMucmVtb3ZlTGF5ZXIoKSx0aGlzLnVwZGF0ZVNvdXJjZSh0KSx0aGlzLnVwZGF0ZUxheWVyKHQpKTp0aGlzLm5lZWRzTmV3TGF5ZXIodCk/dGhpcy51cGRhdGVMYXllcih0KTp0aGlzLnVwZGF0ZVN0eWxlKHQpOih0aGlzLnVwZGF0ZVNvdXJjZSh0KSx0aGlzLnVwZGF0ZUxheWVyKHQpKSx0aGlzLnZpc2libGU9Yyh0KX0sbC5uZWVkc05ld0ltYWdlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnN1YnBsb3QubWFwLmdldFNvdXJjZSh0aGlzLmlkU291cmNlKSYmImltYWdlIj09PXRoaXMuc291cmNlVHlwZSYmImltYWdlIj09PXQuc291cmNldHlwZSYmKHRoaXMuc291cmNlIT09dC5zb3VyY2V8fEpTT04uc3RyaW5naWZ5KHRoaXMuY29vcmRpbmF0ZXMpIT09SlNPTi5zdHJpbmdpZnkodC5jb29yZGluYXRlcykpfSxsLm5lZWRzTmV3U291cmNlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNvdXJjZVR5cGUhPT10LnNvdXJjZXR5cGV8fEpTT04uc3RyaW5naWZ5KHRoaXMuc291cmNlKSE9PUpTT04uc3RyaW5naWZ5KHQuc291cmNlKXx8dGhpcy5sYXllclR5cGUhPT10LnR5cGV9LGwubmVlZHNOZXdMYXllcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5sYXllclR5cGUhPT10LnR5cGV8fHRoaXMuYmVsb3chPT10aGlzLnN1YnBsb3QuYmVsb3dMb29rdXBbImxheW91dC0iK3RoaXMuaW5kZXhdfSxsLmxvb2t1cEJlbG93PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3VicGxvdC5iZWxvd0xvb2t1cFsibGF5b3V0LSIrdGhpcy5pbmRleF19LGwudXBkYXRlSW1hZ2U9ZnVuY3Rpb24odCl7dGhpcy5zdWJwbG90Lm1hcC5nZXRTb3VyY2UodGhpcy5pZFNvdXJjZSkudXBkYXRlSW1hZ2Uoe3VybDp0LnNvdXJjZSxjb29yZGluYXRlczp0LmNvb3JkaW5hdGVzfSk7dmFyIGU9dGhpcy5maW5kRm9sbG93aW5nTWFwYm94TGF5ZXJJZCh0aGlzLmxvb2t1cEJlbG93KCkpO251bGwhPT1lJiZ0aGlzLnN1YnBsb3QubWFwLm1vdmVMYXllcih0aGlzLmlkTGF5ZXIsZSl9LGwudXBkYXRlU291cmNlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuc3VicGxvdC5tYXA7aWYoZS5nZXRTb3VyY2UodGhpcy5pZFNvdXJjZSkmJmUucmVtb3ZlU291cmNlKHRoaXMuaWRTb3VyY2UpLHRoaXMuc291cmNlVHlwZT10LnNvdXJjZXR5cGUsdGhpcy5zb3VyY2U9dC5zb3VyY2UsYyh0KSl7dmFyIHI9ZnVuY3Rpb24odCl7dmFyIGUscj10LnNvdXJjZXR5cGUsbj10LnNvdXJjZSxhPXt0eXBlOnJ9OyJnZW9qc29uIj09PXI/ZT0iZGF0YSI6InZlY3RvciI9PT1yP2U9InN0cmluZyI9PXR5cGVvZiBuPyJ1cmwiOiJ0aWxlcyI6InJhc3RlciI9PT1yPyhlPSJ0aWxlcyIsYS50aWxlU2l6ZT0yNTYpOiJpbWFnZSI9PT1yJiYoZT0idXJsIixhLmNvb3JkaW5hdGVzPXQuY29vcmRpbmF0ZXMpO2FbZV09bix0LnNvdXJjZWF0dHJpYnV0aW9uJiYoYS5hdHRyaWJ1dGlvbj1pKHQuc291cmNlYXR0cmlidXRpb24pKTtyZXR1cm4gYX0odCk7ZS5hZGRTb3VyY2UodGhpcy5pZFNvdXJjZSxyKX19LGwuZmluZEZvbGxvd2luZ01hcGJveExheWVySWQ9ZnVuY3Rpb24odCl7aWYoInRyYWNlcyI9PT10KWZvcih2YXIgZT10aGlzLnN1YnBsb3QuZ2V0TWFwTGF5ZXJzKCkscj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbj1lW3JdLmlkO2lmKCJzdHJpbmciPT10eXBlb2YgbiYmMD09PW4uaW5kZXhPZihvLnRyYWNlTGF5ZXJQcmVmaXgpKXt0PW47YnJlYWt9fXJldHVybiB0fSxsLnVwZGF0ZUxheWVyPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuc3VicGxvdCxyPXUodCksbj10aGlzLmxvb2t1cEJlbG93KCksaT10aGlzLmZpbmRGb2xsb3dpbmdNYXBib3hMYXllcklkKG4pO3RoaXMucmVtb3ZlTGF5ZXIoKSxjKHQpJiZlLmFkZExheWVyKHtpZDp0aGlzLmlkTGF5ZXIsc291cmNlOnRoaXMuaWRTb3VyY2UsInNvdXJjZS1sYXllciI6dC5zb3VyY2VsYXllcnx8IiIsdHlwZTp0LnR5cGUsbWluem9vbTp0Lm1pbnpvb20sbWF4em9vbTp0Lm1heHpvb20sbGF5b3V0OnIubGF5b3V0LHBhaW50OnIucGFpbnR9LGkpLHRoaXMubGF5ZXJUeXBlPXQudHlwZSx0aGlzLmJlbG93PW59LGwudXBkYXRlU3R5bGU9ZnVuY3Rpb24odCl7aWYoYyh0KSl7dmFyIGU9dSh0KTt0aGlzLnN1YnBsb3Quc2V0T3B0aW9ucyh0aGlzLmlkTGF5ZXIsInNldExheW91dFByb3BlcnR5IixlLmxheW91dCksdGhpcy5zdWJwbG90LnNldE9wdGlvbnModGhpcy5pZExheWVyLCJzZXRQYWludFByb3BlcnR5IixlLnBhaW50KX19LGwucmVtb3ZlTGF5ZXI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnN1YnBsb3QubWFwO3QuZ2V0TGF5ZXIodGhpcy5pZExheWVyKSYmdC5yZW1vdmVMYXllcih0aGlzLmlkTGF5ZXIpfSxsLmRpc3Bvc2U9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnN1YnBsb3QubWFwO3QuZ2V0TGF5ZXIodGhpcy5pZExheWVyKSYmdC5yZW1vdmVMYXllcih0aGlzLmlkTGF5ZXIpLHQuZ2V0U291cmNlKHRoaXMuaWRTb3VyY2UpJiZ0LnJlbW92ZVNvdXJjZSh0aGlzLmlkU291cmNlKX0sZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1uZXcgcyh0LGUpO3JldHVybiBuLnVwZGF0ZShyKSxufX0seyIuLi8uLi9saWIiOjUxNSwiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIjo1NDEsIi4vY29uc3RhbnRzIjo2MjAsIi4vY29udmVydF90ZXh0X29wdHMiOjYyMX1dLDYyNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKS5kZWZhdWx0TGluZSxhPXQoIi4uL2RvbWFpbiIpLmF0dHJpYnV0ZXMsbz10KCIuLi9mb250X2F0dHJpYnV0ZXMiKSxzPXQoIi4uLy4uL3RyYWNlcy9zY2F0dGVyL2F0dHJpYnV0ZXMiKS50ZXh0cG9zaXRpb24sbD10KCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIikub3ZlcnJpZGVBbGwsYz10KCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIikudGVtcGxhdGVkQXJyYXksdT10KCIuL2NvbnN0YW50cyIpLGY9byh7fSk7Zi5mYW1pbHkuZGZsdD0iT3BlbiBTYW5zIFJlZ3VsYXIsIEFyaWFsIFVuaWNvZGUgTVMgUmVndWxhciIsKGUuZXhwb3J0cz1sKHtfYXJyYXlBdHRyUmVnZXhwczpbbi5jb3VudGVyUmVnZXgoIm1hcGJveCIsIi5sYXllcnMiLCEwKV0sZG9tYWluOmEoe25hbWU6Im1hcGJveCJ9KSxhY2Nlc3N0b2tlbjp7dmFsVHlwZToic3RyaW5nIixub0JsYW5rOiEwLHN0cmljdDohMH0sc3R5bGU6e3ZhbFR5cGU6ImFueSIsdmFsdWVzOnUuc3R5bGVWYWx1ZXNNYXBib3guY29uY2F0KHUuc3R5bGVWYWx1ZXNOb25NYXBib3gpLGRmbHQ6dS5zdHlsZVZhbHVlRGZsdH0sY2VudGVyOntsb246e3ZhbFR5cGU6Im51bWJlciIsZGZsdDowfSxsYXQ6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDowfX0sem9vbTp7dmFsVHlwZToibnVtYmVyIixkZmx0OjF9LGJlYXJpbmc6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDowfSxwaXRjaDp7dmFsVHlwZToibnVtYmVyIixkZmx0OjB9LGxheWVyczpjKCJsYXllciIse3Zpc2libGU6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITB9LHNvdXJjZXR5cGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImdlb2pzb24iLCJ2ZWN0b3IiLCJyYXN0ZXIiLCJpbWFnZSJdLGRmbHQ6Imdlb2pzb24ifSxzb3VyY2U6e3ZhbFR5cGU6ImFueSJ9LHNvdXJjZWxheWVyOnt2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiJ9LHNvdXJjZWF0dHJpYnV0aW9uOnt2YWxUeXBlOiJzdHJpbmcifSx0eXBlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJjaXJjbGUiLCJsaW5lIiwiZmlsbCIsInN5bWJvbCIsInJhc3RlciJdLGRmbHQ6ImNpcmNsZSJ9LGNvb3JkaW5hdGVzOnt2YWxUeXBlOiJhbnkifSxiZWxvdzp7dmFsVHlwZToic3RyaW5nIn0sY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0Oml9LG9wYWNpdHk6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDoxfSxtaW56b29tOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoyNCxkZmx0OjB9LG1heHpvb206e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjI0LGRmbHQ6MjR9LGNpcmNsZTp7cmFkaXVzOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MTV9fSxsaW5lOnt3aWR0aDp7dmFsVHlwZToibnVtYmVyIixkZmx0OjJ9LGRhc2g6e3ZhbFR5cGU6ImRhdGFfYXJyYXkifX0sZmlsbDp7b3V0bGluZWNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDppfX0sc3ltYm9sOntpY29uOnt2YWxUeXBlOiJzdHJpbmciLGRmbHQ6Im1hcmtlciJ9LGljb25zaXplOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MTB9LHRleHQ6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIn0scGxhY2VtZW50Ont2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJwb2ludCIsImxpbmUiLCJsaW5lLWNlbnRlciJdLGRmbHQ6InBvaW50In0sdGV4dGZvbnQ6Zix0ZXh0cG9zaXRpb246bi5leHRlbmRGbGF0KHt9LHMse2FycmF5T2s6ITF9KX19KX0sInBsb3QiLCJmcm9tLXJvb3QiKSkudWlyZXZpc2lvbj17dmFsVHlwZToiYW55IixlZGl0VHlwZToibm9uZSJ9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjM2NywiLi4vLi4vbGliIjo1MTUsIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiOjU0OCwiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6NTU1LCIuLi8uLi90cmFjZXMvc2NhdHRlci9hdHRyaWJ1dGVzIjo5MzYsIi4uL2RvbWFpbiI6NTkzLCIuLi9mb250X2F0dHJpYnV0ZXMiOjU5NCwiLi9jb25zdGFudHMiOjYyMH1dLDYyNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uL3N1YnBsb3RfZGVmYXVsdHMiKSxhPXQoIi4uL2FycmF5X2NvbnRhaW5lcl9kZWZhdWx0cyIpLG89dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpO2Z1bmN0aW9uIHModCxlLHIsbil7cigiYWNjZXNzdG9rZW4iLG4uYWNjZXNzVG9rZW4pLHIoInN0eWxlIikscigiY2VudGVyLmxvbiIpLHIoImNlbnRlci5sYXQiKSxyKCJ6b29tIikscigiYmVhcmluZyIpLHIoInBpdGNoIiksYSh0LGUse25hbWU6ImxheWVycyIsaGFuZGxlSXRlbURlZmF1bHRzOmx9KSxlLl9pbnB1dD10fWZ1bmN0aW9uIGwodCxlKXtmdW5jdGlvbiByKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxvLmxheWVycyxyLGkpfWlmKHIoInZpc2libGUiKSl7dmFyIGksYT1yKCJzb3VyY2V0eXBlIikscz0icmFzdGVyIj09PWF8fCJpbWFnZSI9PT1hO3IoInNvdXJjZSIpLHIoInNvdXJjZWF0dHJpYnV0aW9uIiksInZlY3RvciI9PT1hJiZyKCJzb3VyY2VsYXllciIpLCJpbWFnZSI9PT1hJiZyKCJjb29yZGluYXRlcyIpLHMmJihpPSJyYXN0ZXIiKTt2YXIgbD1yKCJ0eXBlIixpKTtzJiYicmFzdGVyIiE9PWwmJihsPWUudHlwZT0icmFzdGVyIixuLmxvZygiU291cmNlIHR5cGVzICpyYXN0ZXIqIGFuZCAqaW1hZ2UqIG11c3QgZHJhd24gKnJhc3RlciogbGF5ZXIgdHlwZS4iKSkscigiYmVsb3ciKSxyKCJjb2xvciIpLHIoIm9wYWNpdHkiKSxyKCJtaW56b29tIikscigibWF4em9vbSIpLCJjaXJjbGUiPT09bCYmcigiY2lyY2xlLnJhZGl1cyIpLCJsaW5lIj09PWwmJihyKCJsaW5lLndpZHRoIikscigibGluZS5kYXNoIikpLCJmaWxsIj09PWwmJnIoImZpbGwub3V0bGluZWNvbG9yIiksInN5bWJvbCI9PT1sJiYocigic3ltYm9sLmljb24iKSxyKCJzeW1ib2wuaWNvbnNpemUiKSxyKCJzeW1ib2wudGV4dCIpLG4uY29lcmNlRm9udChyLCJzeW1ib2wudGV4dGZvbnQiKSxyKCJzeW1ib2wudGV4dHBvc2l0aW9uIikscigic3ltYm9sLnBsYWNlbWVudCIpKX19ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtpKHQsZSxyLHt0eXBlOiJtYXBib3giLGF0dHJpYnV0ZXM6byxoYW5kbGVEZWZhdWx0czpzLHBhcnRpdGlvbjoieSIsYWNjZXNzVG9rZW46ZS5fbWFwYm94QWNjZXNzVG9rZW59KX19LHsiLi4vLi4vbGliIjo1MTUsIi4uL2FycmF5X2NvbnRhaW5lcl9kZWZhdWx0cyI6NTYxLCIuLi9zdWJwbG90X2RlZmF1bHRzIjo2NDEsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjYyNH1dLDYyNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJtYXBib3gtZ2wvZGlzdC9tYXBib3gtZ2wtdW5taW5pZmllZCIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9saWIvZ2VvX2xvY2F0aW9uX3V0aWxzIiksbz10KCIuLi8uLi9yZWdpc3RyeSIpLHM9dCgiLi4vY2FydGVzaWFuL2F4ZXMiKSxsPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhZ2VsZW1lbnQiKSxjPXQoIi4uLy4uL2NvbXBvbmVudHMvZngiKSx1PXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhZ2VsZW1lbnQvaGVscGVycyIpLGY9dS5kcmF3TW9kZSxoPXUuc2VsZWN0TW9kZSxwPXQoIi4uLy4uL2NvbXBvbmVudHMvc2VsZWN0aW9ucyIpLnByZXBTZWxlY3QsZD10KCIuLi8uLi9jb21wb25lbnRzL3NlbGVjdGlvbnMiKS5jbGVhck91dGxpbmUsbT10KCIuLi8uLi9jb21wb25lbnRzL3NlbGVjdGlvbnMiKS5jbGVhclNlbGVjdGlvbnNDYWNoZSxnPXQoIi4uLy4uL2NvbXBvbmVudHMvc2VsZWN0aW9ucyIpLnNlbGVjdE9uQ2xpY2ssdj10KCIuL2NvbnN0YW50cyIpLHk9dCgiLi9sYXllcnMiKTtmdW5jdGlvbiB4KHQsZSl7dGhpcy5pZD1lLHRoaXMuZ2Q9dDt2YXIgcj10Ll9mdWxsTGF5b3V0LG49dC5fY29udGV4dDt0aGlzLmNvbnRhaW5lcj1yLl9nbGNvbnRhaW5lci5ub2RlKCksdGhpcy5pc1N0YXRpYz1uLnN0YXRpY1Bsb3QsdGhpcy51aWQ9ci5fdWlkKyItIit0aGlzLmlkLHRoaXMuZGl2PW51bGwsdGhpcy54YXhpcz1udWxsLHRoaXMueWF4aXM9bnVsbCx0aGlzLmNyZWF0ZUZyYW1ld29yayhyKSx0aGlzLm1hcD1udWxsLHRoaXMuYWNjZXNzVG9rZW49bnVsbCx0aGlzLnN0eWxlT2JqPW51bGwsdGhpcy50cmFjZUhhc2g9e30sdGhpcy5sYXllckxpc3Q9W10sdGhpcy5iZWxvd0xvb2t1cD17fSx0aGlzLmRyYWdnaW5nPSExLHRoaXMud2hlZWxpbmc9ITF9dmFyIGI9eC5wcm90b3R5cGU7Yi5wbG90PWZ1bmN0aW9uKHQsZSxyKXt2YXIgbixpPXRoaXMsYT1lW2kuaWRdO2kubWFwJiZhLmFjY2Vzc3Rva2VuIT09aS5hY2Nlc3NUb2tlbiYmKGkubWFwLnJlbW92ZSgpLGkubWFwPW51bGwsaS5zdHlsZU9iaj1udWxsLGkudHJhY2VIYXNoPXt9LGkubGF5ZXJMaXN0PVtdKSxuPWkubWFwP25ldyBQcm9taXNlKChmdW5jdGlvbihyLG4pe2kudXBkYXRlTWFwKHQsZSxyLG4pfSkpOm5ldyBQcm9taXNlKChmdW5jdGlvbihyLG4pe2kuY3JlYXRlTWFwKHQsZSxyLG4pfSkpLHIucHVzaChuKX0sYi5jcmVhdGVNYXA9ZnVuY3Rpb24odCxlLHIsaSl7dmFyIG89dGhpcyxzPWVbby5pZF0sbD1vLnN0eWxlT2JqPXcocy5zdHlsZSk7by5hY2Nlc3NUb2tlbj1zLmFjY2Vzc3Rva2VuO3ZhciBjPW8ubWFwPW5ldyBuLk1hcCh7Y29udGFpbmVyOm8uZGl2LHN0eWxlOmwuc3R5bGUsY2VudGVyOmsocy5jZW50ZXIpLHpvb206cy56b29tLGJlYXJpbmc6cy5iZWFyaW5nLHBpdGNoOnMucGl0Y2gsaW50ZXJhY3RpdmU6IW8uaXNTdGF0aWMscHJlc2VydmVEcmF3aW5nQnVmZmVyOm8uaXNTdGF0aWMsZG91YmxlQ2xpY2tab29tOiExLGJveFpvb206ITEsYXR0cmlidXRpb25Db250cm9sOiExfSkuYWRkQ29udHJvbChuZXcgbi5BdHRyaWJ1dGlvbkNvbnRyb2woe2NvbXBhY3Q6ITB9KSk7Yy5fY2FudmFzLnN0eWxlLmxlZnQ9IjBweCIsYy5fY2FudmFzLnN0eWxlLnRvcD0iMHB4IixvLnJlamVjdE9uRXJyb3IoaSksby5pc1N0YXRpY3x8by5pbml0RngodCxlKTt2YXIgdT1bXTt1LnB1c2gobmV3IFByb21pc2UoKGZ1bmN0aW9uKHQpe2Mub25jZSgibG9hZCIsdCl9KSkpLHU9dS5jb25jYXQoYS5mZXRjaFRyYWNlR2VvRGF0YSh0KSksUHJvbWlzZS5hbGwodSkudGhlbigoZnVuY3Rpb24oKXtvLmZpbGxCZWxvd0xvb2t1cCh0LGUpLG8udXBkYXRlRGF0YSh0KSxvLnVwZGF0ZUxheW91dChlKSxvLnJlc29sdmVPblJlbmRlcihyKX0pKS5jYXRjaChpKX0sYi51cGRhdGVNYXA9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9dGhpcyxvPWkubWFwLHM9ZVt0aGlzLmlkXTtpLnJlamVjdE9uRXJyb3Iobik7dmFyIGw9W10sYz13KHMuc3R5bGUpO0pTT04uc3RyaW5naWZ5KGkuc3R5bGVPYmopIT09SlNPTi5zdHJpbmdpZnkoYykmJihpLnN0eWxlT2JqPWMsby5zZXRTdHlsZShjLnN0eWxlKSxpLnRyYWNlSGFzaD17fSxsLnB1c2gobmV3IFByb21pc2UoKGZ1bmN0aW9uKHQpe28ub25jZSgic3R5bGVkYXRhIix0KX0pKSkpLGw9bC5jb25jYXQoYS5mZXRjaFRyYWNlR2VvRGF0YSh0KSksUHJvbWlzZS5hbGwobCkudGhlbigoZnVuY3Rpb24oKXtpLmZpbGxCZWxvd0xvb2t1cCh0LGUpLGkudXBkYXRlRGF0YSh0KSxpLnVwZGF0ZUxheW91dChlKSxpLnJlc29sdmVPblJlbmRlcihyKX0pKS5jYXRjaChuKX0sYi5maWxsQmVsb3dMb29rdXA9ZnVuY3Rpb24odCxlKXt2YXIgcixuLGk9ZVt0aGlzLmlkXS5sYXllcnMsYT10aGlzLmJlbG93TG9va3VwPXt9LG89ITE7Zm9yKHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIHM9dFtyXVswXS50cmFjZSxsPXMuX21vZHVsZTsic3RyaW5nIj09dHlwZW9mIHMuYmVsb3c/bj1zLmJlbG93OmwuZ2V0QmVsb3cmJihuPWwuZ2V0QmVsb3cocyx0aGlzKSksIiI9PT1uJiYobz0hMCksYVsidHJhY2UtIitzLnVpZF09bnx8IiJ9Zm9yKHI9MDtyPGkubGVuZ3RoO3IrKyl7dmFyIGM9aVtyXTtuPSJzdHJpbmciPT10eXBlb2YgYy5iZWxvdz9jLmJlbG93Om8/InRyYWNlcyI6IiIsYVsibGF5b3V0LSIrcl09bn12YXIgdSxmLGg9e307Zm9yKHUgaW4gYSloW249YVt1XV0/aFtuXS5wdXNoKHUpOmhbbl09W3VdO2ZvcihuIGluIGgpe3ZhciBwPWhbbl07aWYocC5sZW5ndGg+MSlmb3Iocj0wO3I8cC5sZW5ndGg7cisrKTA9PT0odT1wW3JdKS5pbmRleE9mKCJ0cmFjZS0iKT8oZj11LnNwbGl0KCJ0cmFjZS0iKVsxXSx0aGlzLnRyYWNlSGFzaFtmXSYmKHRoaXMudHJhY2VIYXNoW2ZdLmJlbG93PW51bGwpKTowPT09dS5pbmRleE9mKCJsYXlvdXQtIikmJihmPXUuc3BsaXQoImxheW91dC0iKVsxXSx0aGlzLmxheWVyTGlzdFtmXSYmKHRoaXMubGF5ZXJMaXN0W2ZdLmJlbG93PW51bGwpKX19O3ZhciBfPXtjaG9yb3BsZXRobWFwYm94OjAsZGVuc2l0eW1hcGJveDoxLHNjYXR0ZXJtYXBib3g6Mn07ZnVuY3Rpb24gdyh0KXt2YXIgZT17fTtyZXR1cm4gaS5pc1BsYWluT2JqZWN0KHQpPyhlLmlkPXQuaWQsZS5zdHlsZT10KToic3RyaW5nIj09dHlwZW9mIHQ/KGUuaWQ9dCwtMSE9PXYuc3R5bGVWYWx1ZXNNYXBib3guaW5kZXhPZih0KT9lLnN0eWxlPVQodCk6di5zdHlsZXNOb25NYXBib3hbdF0/ZS5zdHlsZT12LnN0eWxlc05vbk1hcGJveFt0XTplLnN0eWxlPXQpOihlLmlkPXYuc3R5bGVWYWx1ZURmbHQsZS5zdHlsZT1UKHYuc3R5bGVWYWx1ZURmbHQpKSxlLnRyYW5zaXRpb249e2R1cmF0aW9uOjAsZGVsYXk6MH0sZX1mdW5jdGlvbiBUKHQpe3JldHVybiB2LnN0eWxlVXJsUHJlZml4K3QrIi0iK3Yuc3R5bGVVcmxTdWZmaXh9ZnVuY3Rpb24gayh0KXtyZXR1cm5bdC5sb24sdC5sYXRdfWIudXBkYXRlRGF0YT1mdW5jdGlvbih0KXt2YXIgZSxyLG4saSxhPXRoaXMudHJhY2VIYXNoLG89dC5zbGljZSgpLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIF9bdFswXS50cmFjZS50eXBlXS1fW2VbMF0udHJhY2UudHlwZV19KSk7Zm9yKG49MDtuPG8ubGVuZ3RoO24rKyl7dmFyIHM9b1tuXSxsPSExOyhlPWFbKHI9c1swXS50cmFjZSkudWlkXSkmJihlLnR5cGU9PT1yLnR5cGU/KGUudXBkYXRlKHMpLGw9ITApOmUuZGlzcG9zZSgpKSwhbCYmci5fbW9kdWxlJiYoYVtyLnVpZF09ci5fbW9kdWxlLnBsb3QodGhpcyxzKSl9dmFyIGM9T2JqZWN0LmtleXMoYSk7dDpmb3Iobj0wO248Yy5sZW5ndGg7bisrKXt2YXIgdT1jW25dO2ZvcihpPTA7aTx0Lmxlbmd0aDtpKyspaWYodT09PShyPXRbaV1bMF0udHJhY2UpLnVpZCljb250aW51ZSB0OyhlPWFbdV0pLmRpc3Bvc2UoKSxkZWxldGUgYVt1XX19LGIudXBkYXRlTGF5b3V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubWFwLHI9dFt0aGlzLmlkXTt0aGlzLmRyYWdnaW5nfHx0aGlzLndoZWVsaW5nfHwoZS5zZXRDZW50ZXIoayhyLmNlbnRlcikpLGUuc2V0Wm9vbShyLnpvb20pLGUuc2V0QmVhcmluZyhyLmJlYXJpbmcpLGUuc2V0UGl0Y2goci5waXRjaCkpLHRoaXMudXBkYXRlTGF5ZXJzKHQpLHRoaXMudXBkYXRlRnJhbWV3b3JrKHQpLHRoaXMudXBkYXRlRngodCksdGhpcy5tYXAucmVzaXplKCksdGhpcy5nZC5fY29udGV4dC5fc2Nyb2xsWm9vbS5tYXBib3g/ZS5zY3JvbGxab29tLmVuYWJsZSgpOmUuc2Nyb2xsWm9vbS5kaXNhYmxlKCl9LGIucmVzb2x2ZU9uUmVuZGVyPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubWFwO2Uub24oInJlbmRlciIsKGZ1bmN0aW9uIHIoKXtlLmxvYWRlZCgpJiYoZS5vZmYoInJlbmRlciIsciksc2V0VGltZW91dCh0LDEwKSl9KSl9LGIucmVqZWN0T25FcnJvcj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLm1hcDtmdW5jdGlvbiByKCl7dChuZXcgRXJyb3Iodi5tYXBPbkVycm9yTXNnKSl9ZS5vbmNlKCJlcnJvciIsciksZS5vbmNlKCJzdHlsZS5lcnJvciIsciksZS5vbmNlKCJzb3VyY2UuZXJyb3IiLHIpLGUub25jZSgidGlsZS5lcnJvciIsciksZS5vbmNlKCJsYXllci5lcnJvciIscil9LGIuY3JlYXRlRnJhbWV3b3JrPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMscj1lLmRpdj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyLmlkPWUudWlkLHIuc3R5bGUucG9zaXRpb249ImFic29sdXRlIixlLmNvbnRhaW5lci5hcHBlbmRDaGlsZChyKSxlLnhheGlzPXtfaWQ6IngiLGMycDpmdW5jdGlvbih0KXtyZXR1cm4gZS5wcm9qZWN0KHQpLnh9fSxlLnlheGlzPXtfaWQ6InkiLGMycDpmdW5jdGlvbih0KXtyZXR1cm4gZS5wcm9qZWN0KHQpLnl9fSxlLnVwZGF0ZUZyYW1ld29yayh0KSxlLm1vY2tBeGlzPXt0eXBlOiJsaW5lYXIiLHNob3dleHBvbmVudDoiYWxsIixleHBvbmVudGZvcm1hdDoiQiJ9LHMuc2V0Q29udmVydChlLm1vY2tBeGlzLHQpfSxiLmluaXRGeD1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMsbj1yLmdkLGk9ci5tYXA7ZnVuY3Rpb24gYSgpe2MubG9uZVVuaG92ZXIoZS5faG92ZXJsYXllcil9ZnVuY3Rpb24gcygpe3ZhciB0PXIuZ2V0VmlldygpO24uZW1pdCgicGxvdGx5X3JlbGF5b3V0aW5nIixyLmdldFZpZXdFZGl0c1dpdGhEZXJpdmVkKHQpKX1pLm9uKCJtb3ZlZW5kIiwoZnVuY3Rpb24odCl7aWYoci5tYXApe3ZhciBlPW4uX2Z1bGxMYXlvdXQ7aWYodC5vcmlnaW5hbEV2ZW50fHxyLndoZWVsaW5nKXt2YXIgaT1lW3IuaWRdO28uY2FsbCgiX3N0b3JlRGlyZWN0R1VJRWRpdCIsbi5sYXlvdXQsZS5fcHJlR1VJLHIuZ2V0Vmlld0VkaXRzKGkpKTt2YXIgYT1yLmdldFZpZXcoKTtpLl9pbnB1dC5jZW50ZXI9aS5jZW50ZXI9YS5jZW50ZXIsaS5faW5wdXQuem9vbT1pLnpvb209YS56b29tLGkuX2lucHV0LmJlYXJpbmc9aS5iZWFyaW5nPWEuYmVhcmluZyxpLl9pbnB1dC5waXRjaD1pLnBpdGNoPWEucGl0Y2gsbi5lbWl0KCJwbG90bHlfcmVsYXlvdXQiLHIuZ2V0Vmlld0VkaXRzV2l0aERlcml2ZWQoYSkpfXQub3JpZ2luYWxFdmVudCYmIm1vdXNldXAiPT09dC5vcmlnaW5hbEV2ZW50LnR5cGU/ci5kcmFnZ2luZz0hMTpyLndoZWVsaW5nJiYoci53aGVlbGluZz0hMSksZS5fcmVob3ZlciYmZS5fcmVob3ZlcigpfX0pKSxpLm9uKCJ3aGVlbCIsKGZ1bmN0aW9uKCl7ci53aGVlbGluZz0hMH0pKSxpLm9uKCJtb3VzZW1vdmUiLChmdW5jdGlvbih0KXt2YXIgZT1yLmRpdi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxhPVt0Lm9yaWdpbmFsRXZlbnQub2Zmc2V0WCx0Lm9yaWdpbmFsRXZlbnQub2Zmc2V0WV07dC50YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGV9LHIueGF4aXMucDJjPWZ1bmN0aW9uKCl7cmV0dXJuIGkudW5wcm9qZWN0KGEpLmxuZ30sci55YXhpcy5wMmM9ZnVuY3Rpb24oKXtyZXR1cm4gaS51bnByb2plY3QoYSkubGF0fSxuLl9mdWxsTGF5b3V0Ll9yZWhvdmVyPWZ1bmN0aW9uKCl7bi5fZnVsbExheW91dC5faG92ZXJzdWJwbG90PT09ci5pZCYmbi5fZnVsbExheW91dFtyLmlkXSYmYy5ob3ZlcihuLHQsci5pZCl9LGMuaG92ZXIobix0LHIuaWQpLG4uX2Z1bGxMYXlvdXQuX2hvdmVyc3VicGxvdD1yLmlkfSkpLGkub24oImRyYWdzdGFydCIsKGZ1bmN0aW9uKCl7ci5kcmFnZ2luZz0hMCxhKCl9KSksaS5vbigiem9vbXN0YXJ0IixhKSxpLm9uKCJtb3VzZW91dCIsKGZ1bmN0aW9uKCl7bi5fZnVsbExheW91dC5faG92ZXJzdWJwbG90PW51bGx9KSksaS5vbigiZHJhZyIscyksaS5vbigiem9vbSIscyksaS5vbigiZGJsY2xpY2siLChmdW5jdGlvbigpe3ZhciB0PW4uX2Z1bGxMYXlvdXRbci5pZF07by5jYWxsKCJfc3RvcmVEaXJlY3RHVUlFZGl0IixuLmxheW91dCxuLl9mdWxsTGF5b3V0Ll9wcmVHVUksci5nZXRWaWV3RWRpdHModCkpO3ZhciBlPXIudmlld0luaXRpYWw7aS5zZXRDZW50ZXIoayhlLmNlbnRlcikpLGkuc2V0Wm9vbShlLnpvb20pLGkuc2V0QmVhcmluZyhlLmJlYXJpbmcpLGkuc2V0UGl0Y2goZS5waXRjaCk7dmFyIGE9ci5nZXRWaWV3KCk7dC5faW5wdXQuY2VudGVyPXQuY2VudGVyPWEuY2VudGVyLHQuX2lucHV0Lnpvb209dC56b29tPWEuem9vbSx0Ll9pbnB1dC5iZWFyaW5nPXQuYmVhcmluZz1hLmJlYXJpbmcsdC5faW5wdXQucGl0Y2g9dC5waXRjaD1hLnBpdGNoLG4uZW1pdCgicGxvdGx5X2RvdWJsZWNsaWNrIixudWxsKSxuLmVtaXQoInBsb3RseV9yZWxheW91dCIsci5nZXRWaWV3RWRpdHNXaXRoRGVyaXZlZChhKSl9KSksci5jbGVhck91dGxpbmU9ZnVuY3Rpb24oKXttKHIuZHJhZ09wdGlvbnMpLGQoci5kcmFnT3B0aW9ucy5nZCl9LHIub25DbGlja0luUGFuRm49ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciBpPW4uX2Z1bGxMYXlvdXQuY2xpY2ttb2RlO2kuaW5kZXhPZigic2VsZWN0Iik+LTEmJmcoZS5vcmlnaW5hbEV2ZW50LG4sW3IueGF4aXNdLFtyLnlheGlzXSxyLmlkLHQpLGkuaW5kZXhPZigiZXZlbnQiKT4tMSYmYy5jbGljayhuLGUub3JpZ2luYWxFdmVudCl9fX0sYi51cGRhdGVGeD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLHI9ZS5tYXAsbj1lLmdkO2lmKCFlLmlzU3RhdGljKXt2YXIgYSxvPXQuZHJhZ21vZGU7YT1mdW5jdGlvbih0LHIpe3IuaXNSZWN0Pyh0LnJhbmdlPXt9KVtlLmlkXT1bYyhbci54bWluLHIueW1pbl0pLGMoW3IueG1heCxyLnltYXhdKV06KHQubGFzc29Qb2ludHM9e30pW2UuaWRdPXIubWFwKGMpfTt2YXIgcz1lLmRyYWdPcHRpb25zO2UuZHJhZ09wdGlvbnM9aS5leHRlbmREZWVwKHN8fHt9LHtkcmFnbW9kZTp0LmRyYWdtb2RlLGVsZW1lbnQ6ZS5kaXYsZ2Q6bixwbG90aW5mbzp7aWQ6ZS5pZCxkb21haW46dFtlLmlkXS5kb21haW4seGF4aXM6ZS54YXhpcyx5YXhpczplLnlheGlzLGZpbGxSYW5nZUl0ZW1zOmF9LHhheGVzOltlLnhheGlzXSx5YXhlczpbZS55YXhpc10sc3VicGxvdDplLmlkfSksci5vZmYoImNsaWNrIixlLm9uQ2xpY2tJblBhbkhhbmRsZXIpLGgobyl8fGYobyk/KHIuZHJhZ1Bhbi5kaXNhYmxlKCksci5vbigiem9vbXN0YXJ0IixlLmNsZWFyU2VsZWN0KSxlLmRyYWdPcHRpb25zLnByZXBGbj1mdW5jdGlvbih0LHIsbil7cCh0LHIsbixlLmRyYWdPcHRpb25zLG8pfSxsLmluaXQoZS5kcmFnT3B0aW9ucykpOihyLmRyYWdQYW4uZW5hYmxlKCksci5vZmYoInpvb21zdGFydCIsZS5jbGVhclNlbGVjdCksZS5kaXYub25tb3VzZWRvd249bnVsbCxlLm9uQ2xpY2tJblBhbkhhbmRsZXI9ZS5vbkNsaWNrSW5QYW5GbihlLmRyYWdPcHRpb25zKSxyLm9uKCJjbGljayIsZS5vbkNsaWNrSW5QYW5IYW5kbGVyKSl9ZnVuY3Rpb24gYyh0KXt2YXIgcj1lLm1hcC51bnByb2plY3QodCk7cmV0dXJuW3IubG5nLHIubGF0XX19LGIudXBkYXRlRnJhbWV3b3JrPWZ1bmN0aW9uKHQpe3ZhciBlPXRbdGhpcy5pZF0uZG9tYWluLHI9dC5fc2l6ZSxuPXRoaXMuZGl2LnN0eWxlO24ud2lkdGg9ci53KihlLnhbMV0tZS54WzBdKSsicHgiLG4uaGVpZ2h0PXIuaCooZS55WzFdLWUueVswXSkrInB4IixuLmxlZnQ9ci5sK2UueFswXSpyLncrInB4IixuLnRvcD1yLnQrKDEtZS55WzFdKSpyLmgrInB4Iix0aGlzLnhheGlzLl9vZmZzZXQ9ci5sK2UueFswXSpyLncsdGhpcy54YXhpcy5fbGVuZ3RoPXIudyooZS54WzFdLWUueFswXSksdGhpcy55YXhpcy5fb2Zmc2V0PXIudCsoMS1lLnlbMV0pKnIuaCx0aGlzLnlheGlzLl9sZW5ndGg9ci5oKihlLnlbMV0tZS55WzBdKX0sYi51cGRhdGVMYXllcnM9ZnVuY3Rpb24odCl7dmFyIGUscj10W3RoaXMuaWRdLmxheWVycyxuPXRoaXMubGF5ZXJMaXN0O2lmKHIubGVuZ3RoIT09bi5sZW5ndGgpe2ZvcihlPTA7ZTxuLmxlbmd0aDtlKyspbltlXS5kaXNwb3NlKCk7Zm9yKG49dGhpcy5sYXllckxpc3Q9W10sZT0wO2U8ci5sZW5ndGg7ZSsrKW4ucHVzaCh5KHRoaXMsZSxyW2VdKSl9ZWxzZSBmb3IoZT0wO2U8ci5sZW5ndGg7ZSsrKW5bZV0udXBkYXRlKHJbZV0pfSxiLmRlc3Ryb3k9ZnVuY3Rpb24oKXt0aGlzLm1hcCYmKHRoaXMubWFwLnJlbW92ZSgpLHRoaXMubWFwPW51bGwsdGhpcy5jb250YWluZXIucmVtb3ZlQ2hpbGQodGhpcy5kaXYpKX0sYi50b0ltYWdlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwLnN0b3AoKSx0aGlzLm1hcC5nZXRDYW52YXMoKS50b0RhdGFVUkwoKX0sYi5zZXRPcHRpb25zPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG4gaW4gcil0aGlzLm1hcFtlXSh0LG4scltuXSl9LGIuZ2V0TWFwTGF5ZXJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwLmdldFN0eWxlKCkubGF5ZXJzfSxiLmFkZExheWVyPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5tYXA7aWYoInN0cmluZyI9PXR5cGVvZiBlKXtpZigiIj09PWUpcmV0dXJuIHZvaWQgci5hZGRMYXllcih0LGUpO2Zvcih2YXIgbj10aGlzLmdldE1hcExheWVycygpLGE9MDthPG4ubGVuZ3RoO2ErKylpZihlPT09blthXS5pZClyZXR1cm4gdm9pZCByLmFkZExheWVyKHQsZSk7aS53YXJuKFsiVHJ5aW5nIHRvIGFkZCBsYXllciB3aXRoICpiZWxvdyogdmFsdWUiLGUsInJlZmVyZW5jaW5nIGEgbGF5ZXIgdGhhdCBkb2VzIG5vdCBleGlzdCIsIm9yIHRoYXQgZG9lcyBub3QgeWV0IGV4aXN0LiJdLmpvaW4oIiAiKSl9ci5hZGRMYXllcih0KX0sYi5wcm9qZWN0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm1hcC5wcm9qZWN0KG5ldyBuLkxuZ0xhdCh0WzBdLHRbMV0pKX0sYi5nZXRWaWV3PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5tYXAsZT10LmdldENlbnRlcigpLHI9e2xvbjplLmxuZyxsYXQ6ZS5sYXR9LG49dC5nZXRDYW52YXMoKSxpPXBhcnNlSW50KG4uc3R5bGUud2lkdGgpLGE9cGFyc2VJbnQobi5zdHlsZS5oZWlnaHQpO3JldHVybntjZW50ZXI6cix6b29tOnQuZ2V0Wm9vbSgpLGJlYXJpbmc6dC5nZXRCZWFyaW5nKCkscGl0Y2g6dC5nZXRQaXRjaCgpLF9kZXJpdmVkOntjb29yZGluYXRlczpbdC51bnByb2plY3QoWzAsMF0pLnRvQXJyYXkoKSx0LnVucHJvamVjdChbaSwwXSkudG9BcnJheSgpLHQudW5wcm9qZWN0KFtpLGFdKS50b0FycmF5KCksdC51bnByb2plY3QoWzAsYV0pLnRvQXJyYXkoKV19fX0sYi5nZXRWaWV3RWRpdHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMuaWQscj1bImNlbnRlciIsInpvb20iLCJiZWFyaW5nIiwicGl0Y2giXSxuPXt9LGk9MDtpPHIubGVuZ3RoO2krKyl7dmFyIGE9cltpXTtuW2UrIi4iK2FdPXRbYV19cmV0dXJuIG59LGIuZ2V0Vmlld0VkaXRzV2l0aERlcml2ZWQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5pZCxyPXRoaXMuZ2V0Vmlld0VkaXRzKHQpO3JldHVybiByW2UrIi5fZGVyaXZlZCJdPXQuX2Rlcml2ZWQscn0sZS5leHBvcnRzPXh9LHsiLi4vLi4vY29tcG9uZW50cy9kcmFnZWxlbWVudCI6Mzg2LCIuLi8uLi9jb21wb25lbnRzL2RyYWdlbGVtZW50L2hlbHBlcnMiOjM4NSwiLi4vLi4vY29tcG9uZW50cy9meCI6NDA3LCIuLi8uLi9jb21wb25lbnRzL3NlbGVjdGlvbnMiOjQ1NSwiLi4vLi4vbGliIjo1MTUsIi4uLy4uL2xpYi9nZW9fbG9jYXRpb25fdXRpbHMiOjUwOCwiLi4vLi4vcmVnaXN0cnkiOjY0NywiLi4vY2FydGVzaWFuL2F4ZXMiOjU2NiwiLi9jb25zdGFudHMiOjYyMCwiLi9sYXllcnMiOjYyMywibWFwYm94LWdsL2Rpc3QvbWFwYm94LWdsLXVubWluaWZpZWQiOjIzOX1dLDYyNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5lZGl0VHlwZTtyZXR1cm57dDp7dmFsVHlwZToibnVtYmVyIixkZmx0OjAsZWRpdFR5cGU6ZX0scjp7dmFsVHlwZToibnVtYmVyIixkZmx0OjAsZWRpdFR5cGU6ZX0sYjp7dmFsVHlwZToibnVtYmVyIixkZmx0OjAsZWRpdFR5cGU6ZX0sbDp7dmFsVHlwZToibnVtYmVyIixkZmx0OjAsZWRpdFR5cGU6ZX0sZWRpdFR5cGU6ZX19fSx7fV0sNjI4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoImQzLXRpbWUtZm9ybWF0IikudGltZUZvcm1hdExvY2FsZSxhPXQoImQzLWZvcm1hdCIpLmZvcm1hdExvY2FsZSxvPXQoImZhc3QtaXNudW1lcmljIikscz10KCIuLi9yZWdpc3RyeSIpLGw9dCgiLi4vcGxvdF9hcGkvcGxvdF9zY2hlbWEiKSxjPXQoIi4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKSx1PXQoIi4uL2xpYiIpLGY9dCgiLi4vY29tcG9uZW50cy9jb2xvciIpLGg9dCgiLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTSxwPXQoIi4vY2FydGVzaWFuL2F4aXNfaWRzIiksZD10KCIuLi9jb21wb25lbnRzL3NoYXBlcy9oYW5kbGVfb3V0bGluZSIpLmNsZWFyT3V0bGluZSxtPXQoIi4vYW5pbWF0aW9uX2F0dHJpYnV0ZXMiKSxnPXQoIi4vZnJhbWVfYXR0cmlidXRlcyIpLHY9dCgiLi4vcGxvdHMvZ2V0X2RhdGEiKS5nZXRNb2R1bGVDYWxjRGF0YSx5PXUucmVsaW5rUHJpdmF0ZUtleXMseD11Ll8sYj1lLmV4cG9ydHM9e307dS5leHRlbmRGbGF0KGIscyksYi5hdHRyaWJ1dGVzPXQoIi4vYXR0cmlidXRlcyIpLGIuYXR0cmlidXRlcy50eXBlLnZhbHVlcz1iLmFsbFR5cGVzLGIuZm9udEF0dHJzPXQoIi4vZm9udF9hdHRyaWJ1dGVzIiksYi5sYXlvdXRBdHRyaWJ1dGVzPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxiLmZvbnRXZWlnaHQ9Im5vcm1hbCI7dmFyIF89Yi50cmFuc2Zvcm1zUmVnaXN0cnksdz10KCIuL2NvbW1hbmQiKTtiLmV4ZWN1dGVBUElDb21tYW5kPXcuZXhlY3V0ZUFQSUNvbW1hbmQsYi5jb21wdXRlQVBJQ29tbWFuZEJpbmRpbmdzPXcuY29tcHV0ZUFQSUNvbW1hbmRCaW5kaW5ncyxiLm1hbmFnZUNvbW1hbmRPYnNlcnZlcj13Lm1hbmFnZUNvbW1hbmRPYnNlcnZlcixiLmhhc1NpbXBsZUFQSUNvbW1hbmRCaW5kaW5ncz13Lmhhc1NpbXBsZUFQSUNvbW1hbmRCaW5kaW5ncyxiLnJlZHJhd1RleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9dS5nZXRHcmFwaERpdih0KSxuZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSl7c2V0VGltZW91dCgoZnVuY3Rpb24oKXt0Ll9mdWxsTGF5b3V0JiYocy5nZXRDb21wb25lbnRNZXRob2QoImFubm90YXRpb25zIiwiZHJhdyIpKHQpLHMuZ2V0Q29tcG9uZW50TWV0aG9kKCJsZWdlbmQiLCJkcmF3IikodCkscy5nZXRDb21wb25lbnRNZXRob2QoImNvbG9yYmFyIiwiZHJhdyIpKHQpLGUoYi5wcmV2aW91c1Byb21pc2VzKHQpKSl9KSwzMDApfSkpfSxiLnJlc2l6ZT1mdW5jdGlvbih0KXt2YXIgZTt0PXUuZ2V0R3JhcGhEaXYodCk7dmFyIHI9bmV3IFByb21pc2UoKGZ1bmN0aW9uKHIsbil7dCYmIXUuaXNIaWRkZW4odCl8fG4obmV3IEVycm9yKCJSZXNpemUgbXVzdCBiZSBwYXNzZWQgYSBkaXNwbGF5ZWQgcGxvdCBkaXYgZWxlbWVudC4iKSksdC5fcmVkcmF3VGltZXImJmNsZWFyVGltZW91dCh0Ll9yZWRyYXdUaW1lciksdC5fcmVzb2x2ZVJlc2l6ZSYmKGU9dC5fcmVzb2x2ZVJlc2l6ZSksdC5fcmVzb2x2ZVJlc2l6ZT1yLHQuX3JlZHJhd1RpbWVyPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7aWYoIXQubGF5b3V0fHx0LmxheW91dC53aWR0aCYmdC5sYXlvdXQuaGVpZ2h0fHx1LmlzSGlkZGVuKHQpKXIodCk7ZWxzZXtkZWxldGUgdC5sYXlvdXQud2lkdGgsZGVsZXRlIHQubGF5b3V0LmhlaWdodDt2YXIgZT10LmNoYW5nZWQ7dC5hdXRvcGxheT0hMCxzLmNhbGwoInJlbGF5b3V0Iix0LHthdXRvc2l6ZTohMH0pLnRoZW4oKGZ1bmN0aW9uKCl7dC5jaGFuZ2VkPWUsdC5fcmVzb2x2ZVJlc2l6ZT09PXImJihkZWxldGUgdC5fcmVzb2x2ZVJlc2l6ZSxyKHQpKX0pKX19KSwxMDApfSkpO3JldHVybiBlJiZlKHIpLHJ9LGIucHJldmlvdXNQcm9taXNlcz1mdW5jdGlvbih0KXtpZigodC5fcHJvbWlzZXN8fFtdKS5sZW5ndGgpcmV0dXJuIFByb21pc2UuYWxsKHQuX3Byb21pc2VzKS50aGVuKChmdW5jdGlvbigpe3QuX3Byb21pc2VzPVtdfSkpfSxiLmFkZExpbmtzPWZ1bmN0aW9uKHQpe2lmKHQuX2NvbnRleHQuc2hvd0xpbmt8fHQuX2NvbnRleHQuc2hvd1NvdXJjZXMpe3ZhciBlPXQuX2Z1bGxMYXlvdXQscj11LmVuc3VyZVNpbmdsZShlLl9wYXBlciwidGV4dCIsImpzLXBsb3QtbGluay1jb250YWluZXIiLChmdW5jdGlvbih0KXt0LnN0eWxlKHsiZm9udC1mYW1pbHkiOiciT3BlbiBTYW5zIiwgQXJpYWwsIHNhbnMtc2VyaWYnLCJmb250LXNpemUiOiIxMnB4IixmaWxsOmYuZGVmYXVsdExpbmUsInBvaW50ZXItZXZlbnRzIjoiYWxsIn0pLmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQ9bi5zZWxlY3QodGhpcyk7dC5hcHBlbmQoInRzcGFuIikuY2xhc3NlZCgianMtbGluay10by10b29sIiwhMCksdC5hcHBlbmQoInRzcGFuIikuY2xhc3NlZCgianMtbGluay1zcGFjZXIiLCEwKSx0LmFwcGVuZCgidHNwYW4iKS5jbGFzc2VkKCJqcy1zb3VyY2VsaW5rcyIsITApfSkpfSkpLGk9ci5ub2RlKCksYT17eTplLl9wYXBlci5hdHRyKCJoZWlnaHQiKS05fTtkb2N1bWVudC5ib2R5LmNvbnRhaW5zKGkpJiZpLmdldENvbXB1dGVkVGV4dExlbmd0aCgpPj1lLndpZHRoLTIwPyhhWyJ0ZXh0LWFuY2hvciJdPSJzdGFydCIsYS54PTUpOihhWyJ0ZXh0LWFuY2hvciJdPSJlbmQiLGEueD1lLl9wYXBlci5hdHRyKCJ3aWR0aCIpLTcpLHIuYXR0cihhKTt2YXIgbz1yLnNlbGVjdCgiLmpzLWxpbmstdG8tdG9vbCIpLHM9ci5zZWxlY3QoIi5qcy1saW5rLXNwYWNlciIpLGw9ci5zZWxlY3QoIi5qcy1zb3VyY2VsaW5rcyIpO3QuX2NvbnRleHQuc2hvd1NvdXJjZXMmJnQuX2NvbnRleHQuc2hvd1NvdXJjZXModCksdC5fY29udGV4dC5zaG93TGluayYmZnVuY3Rpb24odCxlKXtlLnRleHQoIiIpO3ZhciByPWUuYXBwZW5kKCJhIikuYXR0cih7InhsaW5rOnhsaW5rOmhyZWYiOiIjIixjbGFzczoibGluay0taW1wdCBsaW5rLS1lbWJlZHZpZXciLCJmb250LXdlaWdodCI6ImJvbGQifSkudGV4dCh0Ll9jb250ZXh0LmxpbmtUZXh0KyIgIitTdHJpbmcuZnJvbUNoYXJDb2RlKDE4NykpO2lmKHQuX2NvbnRleHQuc2VuZERhdGEpci5vbigiY2xpY2siLChmdW5jdGlvbigpe2Iuc2VuZERhdGFUb0Nsb3VkKHQpfSkpO2Vsc2V7dmFyIG49d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnNwbGl0KCIvIiksaT13aW5kb3cubG9jYXRpb24uc2VhcmNoO3IuYXR0cih7InhsaW5rOnhsaW5rOnNob3ciOiJuZXciLCJ4bGluazp4bGluazpocmVmIjoiLyIrblsyXS5zcGxpdCgiLiIpWzBdKyIvIituWzFdK2l9KX19KHQsbykscy50ZXh0KG8udGV4dCgpJiZsLnRleHQoKT8iIC0gIjoiIil9fSxiLnNlbmREYXRhVG9DbG91ZD1mdW5jdGlvbih0KXt2YXIgZT0od2luZG93LlBMT1RMWUVOVnx8e30pLkJBU0VfVVJMfHx0Ll9jb250ZXh0LnBsb3RseVNlcnZlclVSTDtpZihlKXt0LmVtaXQoInBsb3RseV9iZWZvcmVleHBvcnQiKTt2YXIgcj1uLnNlbGVjdCh0KS5hcHBlbmQoImRpdiIpLmF0dHIoImlkIiwiaGlkZGVuZm9ybSIpLnN0eWxlKCJkaXNwbGF5Iiwibm9uZSIpLGk9ci5hcHBlbmQoImZvcm0iKS5hdHRyKHthY3Rpb246ZSsiL2V4dGVybmFsIixtZXRob2Q6InBvc3QiLHRhcmdldDoiX2JsYW5rIn0pO3JldHVybiBpLmFwcGVuZCgiaW5wdXQiKS5hdHRyKHt0eXBlOiJ0ZXh0IixuYW1lOiJkYXRhIn0pLm5vZGUoKS52YWx1ZT1iLmdyYXBoSnNvbih0LCExLCJrZWVwZGF0YSIpLGkubm9kZSgpLnN1Ym1pdCgpLHIucmVtb3ZlKCksdC5lbWl0KCJwbG90bHlfYWZ0ZXJleHBvcnQiKSwhMX19O3ZhciBUPVsiZGF5cyIsInNob3J0RGF5cyIsIm1vbnRocyIsInNob3J0TW9udGhzIiwicGVyaW9kcyIsImRhdGVUaW1lIiwiZGF0ZSIsInRpbWUiLCJkZWNpbWFsIiwidGhvdXNhbmRzIiwiZ3JvdXBpbmciLCJjdXJyZW5jeSJdLGs9WyJ5ZWFyIiwibW9udGgiLCJkYXlNb250aCIsImRheU1vbnRoWWVhciJdO2Z1bmN0aW9uIEEodCxlKXt2YXIgcj10Ll9jb250ZXh0LmxvY2FsZTtyfHwocj0iZW4tVVMiKTt2YXIgbj0hMSxpPXt9O2Z1bmN0aW9uIGEodCl7Zm9yKHZhciByPSEwLGE9MDthPGUubGVuZ3RoO2ErKyl7dmFyIG89ZVthXTtpW29dfHwodFtvXT9pW29dPXRbb106cj0hMSl9ciYmKG49ITApfWZvcih2YXIgbz0wO288MjtvKyspe2Zvcih2YXIgbD10Ll9jb250ZXh0LmxvY2FsZXMsYz0wO2M8MjtjKyspe3ZhciB1PShsW3JdfHx7fSkuZm9ybWF0O2lmKHUmJihhKHUpLG4pKWJyZWFrO2w9cy5sb2NhbGVSZWdpc3RyeX12YXIgZj1yLnNwbGl0KCItIilbMF07aWYobnx8Zj09PXIpYnJlYWs7cj1mfXJldHVybiBufHxhKHMubG9jYWxlUmVnaXN0cnkuZW4uZm9ybWF0KSxpfWZ1bmN0aW9uIE0odCxlKXt2YXIgcj17X2Z1bGxMYXlvdXQ6ZX0sbj0ieCI9PT10Ll9pZC5jaGFyQXQoMCksaT10Ll9tYWluQXhpcy5fYW5jaG9yQXhpcyxhPSIiLG89IiIscz0iIjtpZihpJiYocz1pLl9tYWluQXhpcy5faWQsYT1uP3QuX2lkK3M6cyt0Ll9pZCksIWF8fCFlLl9wbG90c1thXSl7YT0iIjtmb3IodmFyIGw9dC5fY291bnRlckF4ZXMsYz0wO2M8bC5sZW5ndGg7YysrKXt2YXIgdT1sW2NdLGY9bj90Ll9pZCt1OnUrdC5faWQ7b3x8KG89Zik7dmFyIGg9cC5nZXRGcm9tSWQocix1KTtpZihzJiZoLm92ZXJsYXlpbmc9PT1zKXthPWY7YnJlYWt9fX1yZXR1cm4gYXx8b31mdW5jdGlvbiBTKHQpe3ZhciBlPXQudHJhbnNmb3JtcztpZihBcnJheS5pc0FycmF5KGUpJiZlLmxlbmd0aClmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZVtyXSxpPW4uX21vZHVsZXx8X1tuLnR5cGVdO2lmKGkmJmkubWFrZXNEYXRhKXJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIEUodCxlLHIsbil7Zm9yKHZhciBpPXQudHJhbnNmb3JtcyxhPVt0XSxvPTA7bzxpLmxlbmd0aDtvKyspe3ZhciBzPWlbb10sbD1fW3MudHlwZV07bCYmbC50cmFuc2Zvcm0mJihhPWwudHJhbnNmb3JtKGEse3RyYW5zZm9ybTpzLGZ1bGxUcmFjZTp0LGZ1bGxEYXRhOmUsbGF5b3V0OnIsZnVsbExheW91dDpuLHRyYW5zZm9ybUluZGV4Om99KSl9cmV0dXJuIGF9ZnVuY3Rpb24gTCh0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJiJweCI9PT10LnN1YnN0cih0Lmxlbmd0aC0yKSYmcGFyc2VGbG9hdCh0KX1mdW5jdGlvbiBDKHQpe3ZhciBlPXQubWFyZ2luO2lmKCF0Ll9zaXplKXt2YXIgcj10Ll9zaXplPXtsOk1hdGgucm91bmQoZS5sKSxyOk1hdGgucm91bmQoZS5yKSx0Ok1hdGgucm91bmQoZS50KSxiOk1hdGgucm91bmQoZS5iKSxwOk1hdGgucm91bmQoZS5wYWQpfTtyLnc9TWF0aC5yb3VuZCh0LndpZHRoKS1yLmwtci5yLHIuaD1NYXRoLnJvdW5kKHQuaGVpZ2h0KS1yLnQtci5ifXQuX3B1c2htYXJnaW58fCh0Ll9wdXNobWFyZ2luPXt9KSx0Ll9wdXNobWFyZ2luSWRzfHwodC5fcHVzaG1hcmdpbklkcz17fSl9Yi5zdXBwbHlEZWZhdWx0cz1mdW5jdGlvbih0LGUpe3ZhciByPWUmJmUuc2tpcFVwZGF0ZUNhbGMsbj10Ll9mdWxsTGF5b3V0fHx7fTtpZihuLl9za2lwRGVmYXVsdHMpZGVsZXRlIG4uX3NraXBEZWZhdWx0cztlbHNle3ZhciBvLGw9dC5fZnVsbExheW91dD17fSxjPXQubGF5b3V0fHx7fSxmPXQuX2Z1bGxEYXRhfHxbXSxoPXQuX2Z1bGxEYXRhPVtdLHA9dC5kYXRhfHxbXSxtPXQuY2FsY2RhdGF8fFtdLGc9dC5fY29udGV4dHx8e307dC5fdHJhbnNpdGlvbkRhdGF8fGIuY3JlYXRlVHJhbnNpdGlvbkRhdGEodCksbC5fZGZsdFRpdGxlPXtwbG90OngodCwiQ2xpY2sgdG8gZW50ZXIgUGxvdCB0aXRsZSIpLHg6eCh0LCJDbGljayB0byBlbnRlciBYIGF4aXMgdGl0bGUiKSx5OngodCwiQ2xpY2sgdG8gZW50ZXIgWSBheGlzIHRpdGxlIiksY29sb3JiYXI6eCh0LCJDbGljayB0byBlbnRlciBDb2xvcnNjYWxlIHRpdGxlIiksYW5ub3RhdGlvbjp4KHQsIm5ldyB0ZXh0Iil9LGwuX3RyYWNlV29yZD14KHQsInRyYWNlIik7dmFyIHY9QSh0LFQpO2lmKGwuX21hcGJveEFjY2Vzc1Rva2VuPWcubWFwYm94QWNjZXNzVG9rZW4sbi5faW5pdGlhbEF1dG9TaXplSXNEb25lKXt2YXIgXz1uLndpZHRoLHc9bi5oZWlnaHQ7Yi5zdXBwbHlMYXlvdXRHbG9iYWxEZWZhdWx0cyhjLGwsdiksYy53aWR0aHx8KGwud2lkdGg9XyksYy5oZWlnaHR8fChsLmhlaWdodD13KSxiLnNhbml0aXplTWFyZ2lucyhsKX1lbHNle2Iuc3VwcGx5TGF5b3V0R2xvYmFsRGVmYXVsdHMoYyxsLHYpO3ZhciBNPSFjLndpZHRofHwhYy5oZWlnaHQsUz1sLmF1dG9zaXplLEU9Zy5hdXRvc2l6YWJsZTtNJiYoU3x8RSk/Yi5wbG90QXV0b1NpemUodCxjLGwpOk0mJmIuc2FuaXRpemVNYXJnaW5zKGwpLCFTJiZNJiYoYy53aWR0aD1sLndpZHRoLGMuaGVpZ2h0PWwuaGVpZ2h0KX1sLl9kM2xvY2FsZT1mdW5jdGlvbih0LGUpe3JldHVybiB0LmRlY2ltYWw9ZS5jaGFyQXQoMCksdC50aG91c2FuZHM9ZS5jaGFyQXQoMSkse251bWJlckZvcm1hdDpmdW5jdGlvbihlKXt0cnl7ZT1hKHQpLmZvcm1hdCh1LmFkanVzdEZvcm1hdChlKSl9Y2F0Y2godCl7cmV0dXJuIHUud2FybkJhZEZvcm1hdChlKSx1Lm5vRm9ybWF0fXJldHVybiBlfSx0aW1lRm9ybWF0OmkodCkudXRjRm9ybWF0fX0odixsLnNlcGFyYXRvcnMpLGwuX2V4dHJhRm9ybWF0PUEodCxrKSxsLl9pbml0aWFsQXV0b1NpemVJc0RvbmU9ITAsbC5fZGF0YUxlbmd0aD1wLmxlbmd0aCxsLl9tb2R1bGVzPVtdLGwuX3Zpc2libGVNb2R1bGVzPVtdLGwuX2Jhc2VQbG90TW9kdWxlcz1bXTt2YXIgTD1sLl9zdWJwbG90cz1mdW5jdGlvbigpe3ZhciB0LGUscj1zLmNvbGxlY3RhYmxlU3VicGxvdFR5cGVzLG49e307aWYoIXIpe3I9W107dmFyIGk9cy5zdWJwbG90c1JlZ2lzdHJ5O2Zvcih2YXIgYSBpbiBpKXt2YXIgbz1pW2FdLmF0dHI7aWYobyYmKHIucHVzaChhKSxBcnJheS5pc0FycmF5KG8pKSlmb3IoZT0wO2U8by5sZW5ndGg7ZSsrKXUucHVzaFVuaXF1ZShyLG9bZV0pfX1mb3IodD0wO3Q8ci5sZW5ndGg7dCsrKW5bclt0XV09W107cmV0dXJuIG59KCksUD1sLl9zcGxvbUF4ZXM9e3g6e30seTp7fX0sST1sLl9zcGxvbVN1YnBsb3RzPXt9O2wuX3NwbG9tR3JpZERmbHQ9e30sbC5fc2NhdHRlclN0YWNrT3B0cz17fSxsLl9maXJzdFNjYXR0ZXI9e30sbC5fYWxpZ25tZW50T3B0cz17fSxsLl9jb2xvckF4ZXM9e30sbC5fcmVxdWVzdFJhbmdlc2xpZGVyPXt9LGwuX3RyYWNlVWlkcz1mdW5jdGlvbih0LGUpe3ZhciByLG4saT1lLmxlbmd0aCxhPVtdO2ZvcihyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBvPXRbcl0uX2Z1bGxJbnB1dDtvIT09biYmYS5wdXNoKG8pLG49b312YXIgcz1hLmxlbmd0aCxsPW5ldyBBcnJheShpKSxjPXt9O2Z1bmN0aW9uIGYodCxlKXtsW2VdPXQsY1t0XT0xfWZ1bmN0aW9uIGgodCxlKXtpZih0JiYic3RyaW5nIj09dHlwZW9mIHQmJiFjW3RdKXJldHVybiBmKHQsZSksITB9Zm9yKHI9MDtyPGk7cisrKXt2YXIgcD1lW3JdLnVpZDsibnVtYmVyIj09dHlwZW9mIHAmJihwPVN0cmluZyhwKSksaChwLHIpfHwocjxzJiZoKGFbcl0udWlkLHIpfHxmKHUucmFuZHN0cihjKSxyKSl9cmV0dXJuIGx9KGYscCksbC5fZ2xvYmFsVHJhbnNmb3Jtcz0odC5fY29udGV4dHx8e30pLmdsb2JhbFRyYW5zZm9ybXMsYi5zdXBwbHlEYXRhRGVmYXVsdHMocCxoLGMsbCk7dmFyIE89T2JqZWN0LmtleXMoUC54KSx6PU9iamVjdC5rZXlzKFAueSk7aWYoTy5sZW5ndGg+MSYmei5sZW5ndGg+MSl7Zm9yKHMuZ2V0Q29tcG9uZW50TWV0aG9kKCJncmlkIiwic2l6ZURlZmF1bHRzIikoYyxsKSxvPTA7bzxPLmxlbmd0aDtvKyspdS5wdXNoVW5pcXVlKEwueGF4aXMsT1tvXSk7Zm9yKG89MDtvPHoubGVuZ3RoO28rKyl1LnB1c2hVbmlxdWUoTC55YXhpcyx6W29dKTtmb3IodmFyIEQgaW4gSSl1LnB1c2hVbmlxdWUoTC5jYXJ0ZXNpYW4sRCl9aWYobC5faGFzPWIuX2hhc1Bsb3RUeXBlLmJpbmQobCksZi5sZW5ndGg9PT1oLmxlbmd0aClmb3Iobz0wO288aC5sZW5ndGg7bysrKXkoaFtvXSxmW29dKTtiLnN1cHBseUxheW91dE1vZHVsZURlZmF1bHRzKGMsbCxoLHQuX3RyYW5zaXRpb25EYXRhKTt2YXIgUj1sLl92aXNpYmxlTW9kdWxlcyxGPVtdO2ZvcihvPTA7bzxSLmxlbmd0aDtvKyspe3ZhciBCPVJbb10uY3Jvc3NUcmFjZURlZmF1bHRzO0ImJnUucHVzaFVuaXF1ZShGLEIpfWZvcihvPTA7bzxGLmxlbmd0aDtvKyspRltvXShoLGwpO2wuX2hhc09ubHlMYXJnZVNwbG9tcz0xPT09bC5fYmFzZVBsb3RNb2R1bGVzLmxlbmd0aCYmInNwbG9tIj09PWwuX2Jhc2VQbG90TW9kdWxlc1swXS5uYW1lJiZPLmxlbmd0aD4xNSYmei5sZW5ndGg+MTUmJjA9PT1sLnNoYXBlcy5sZW5ndGgmJjA9PT1sLmltYWdlcy5sZW5ndGgsYi5saW5rU3VicGxvdHMoaCxsLGYsbiksYi5jbGVhblBsb3QoaCxsLGYsbik7dmFyIE49ISghbi5faGFzfHwhbi5faGFzKCJnbDJkIikpLGo9ISghbC5faGFzfHwhbC5faGFzKCJnbDJkIikpLFU9ISghbi5faGFzfHwhbi5faGFzKCJjYXJ0ZXNpYW4iKSl8fE4sVj0hKCFsLl9oYXN8fCFsLl9oYXMoImNhcnRlc2lhbiIpKXx8ajtVJiYhVj9uLl9iZ0xheWVyLnJlbW92ZSgpOlYmJiFVJiYobC5fc2hvdWxkQ3JlYXRlQmdMYXllcj0hMCksbi5fem9vbWxheWVyJiYhdC5fZHJhZ2dpbmcmJmQoe19mdWxsTGF5b3V0Om59KSxmdW5jdGlvbih0LGUpe3ZhciByLG49W107ZS5tZXRhJiYocj1lLl9tZXRhPXttZXRhOmUubWV0YSxsYXlvdXQ6e21ldGE6ZS5tZXRhfX0pO2Zvcih2YXIgaT0wO2k8dC5sZW5ndGg7aSsrKXt2YXIgYT10W2ldO2EubWV0YT9uW2EuaW5kZXhdPWEuX21ldGE9e21ldGE6YS5tZXRhfTplLm1ldGEmJihhLl9tZXRhPXttZXRhOmUubWV0YX0pLGUubWV0YSYmKGEuX21ldGEubGF5b3V0PXttZXRhOmUubWV0YX0pfW4ubGVuZ3RoJiYocnx8KHI9ZS5fbWV0YT17fSksci5kYXRhPW4pfShoLGwpLHkobCxuKSxzLmdldENvbXBvbmVudE1ldGhvZCgiY29sb3JzY2FsZSIsImNyb3NzVHJhY2VEZWZhdWx0cyIpKGgsbCksbC5fcHJlR1VJfHwobC5fcHJlR1VJPXt9KSxsLl90cmFjZVByZUdVSXx8KGwuX3RyYWNlUHJlR1VJPXt9KTt2YXIgSCxxPWwuX3RyYWNlUHJlR1VJLEc9e307Zm9yKEggaW4gcSlHW0hdPSJvbGQiO2ZvcihvPTA7bzxoLmxlbmd0aDtvKyspR1tIPWhbb10uX2Z1bGxJbnB1dC51aWRdfHwocVtIXT17fSksR1tIXT0ibmV3Ijtmb3IoSCBpbiBHKSJvbGQiPT09R1tIXSYmZGVsZXRlIHFbSF07QyhsKSxzLmdldENvbXBvbmVudE1ldGhvZCgicmFuZ2VzbGlkZXIiLCJtYWtlRGF0YSIpKGwpLHJ8fG0ubGVuZ3RoIT09aC5sZW5ndGh8fGIuc3VwcGx5RGVmYXVsdHNVcGRhdGVDYWxjKG0saCl9fSxiLnN1cHBseURlZmF1bHRzVXBkYXRlQ2FsYz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbj1lW3JdLGk9KHRbcl18fFtdKVswXTtpZihpJiZpLnRyYWNlKXt2YXIgYT1pLnRyYWNlO2lmKGEuX2hhc0NhbGNUcmFuc2Zvcm0pe3ZhciBvLHMsbCxjPWEuX2FycmF5QXR0cnM7Zm9yKG89MDtvPGMubGVuZ3RoO28rKylzPWNbb10sbD11Lm5lc3RlZFByb3BlcnR5KGEscykuZ2V0KCkuc2xpY2UoKSx1Lm5lc3RlZFByb3BlcnR5KG4scykuc2V0KGwpfWkudHJhY2U9bn19fSxiLmNyZWF0ZVRyYW5zaXRpb25EYXRhPWZ1bmN0aW9uKHQpe3QuX3RyYW5zaXRpb25EYXRhfHwodC5fdHJhbnNpdGlvbkRhdGE9e30pLHQuX3RyYW5zaXRpb25EYXRhLl9mcmFtZXN8fCh0Ll90cmFuc2l0aW9uRGF0YS5fZnJhbWVzPVtdKSx0Ll90cmFuc2l0aW9uRGF0YS5fZnJhbWVIYXNofHwodC5fdHJhbnNpdGlvbkRhdGEuX2ZyYW1lSGFzaD17fSksdC5fdHJhbnNpdGlvbkRhdGEuX2NvdW50ZXJ8fCh0Ll90cmFuc2l0aW9uRGF0YS5fY291bnRlcj0wKSx0Ll90cmFuc2l0aW9uRGF0YS5faW50ZXJydXB0Q2FsbGJhY2tzfHwodC5fdHJhbnNpdGlvbkRhdGEuX2ludGVycnVwdENhbGxiYWNrcz1bXSl9LGIuX2hhc1Bsb3RUeXBlPWZ1bmN0aW9uKHQpe3ZhciBlLHI9dGhpcy5fYmFzZVBsb3RNb2R1bGVzfHxbXTtmb3IoZT0wO2U8ci5sZW5ndGg7ZSsrKWlmKHJbZV0ubmFtZT09PXQpcmV0dXJuITA7dmFyIG49dGhpcy5fbW9kdWxlc3x8W107Zm9yKGU9MDtlPG4ubGVuZ3RoO2UrKyl7dmFyIGk9bltlXS5uYW1lO2lmKGk9PT10KXJldHVybiEwO3ZhciBhPXMubW9kdWxlc1tpXTtpZihhJiZhLmNhdGVnb3JpZXNbdF0pcmV0dXJuITB9cmV0dXJuITF9LGIuY2xlYW5QbG90PWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpLGEsbz1uLl9iYXNlUGxvdE1vZHVsZXN8fFtdO2ZvcihpPTA7aTxvLmxlbmd0aDtpKyspe3ZhciBzPW9baV07cy5jbGVhbiYmcy5jbGVhbih0LGUscixuKX12YXIgbD1uLl9oYXMmJm4uX2hhcygiZ2wiKSxjPWUuX2hhcyYmZS5faGFzKCJnbCIpO2wmJiFjJiZ2b2lkIDAhPT1uLl9nbGNvbnRhaW5lciYmKG4uX2dsY29udGFpbmVyLnNlbGVjdEFsbCgiLmdsLWNhbnZhcyIpLnJlbW92ZSgpLG4uX2dsY29udGFpbmVyLnNlbGVjdEFsbCgiLm5vLXdlYmdsIikucmVtb3ZlKCksbi5fZ2xjYW52YXM9bnVsbCk7dmFyIHU9ISFuLl9pbmZvbGF5ZXI7dDpmb3IoaT0wO2k8ci5sZW5ndGg7aSsrKXt2YXIgZj1yW2ldLnVpZDtmb3IoYT0wO2E8dC5sZW5ndGg7YSsrKXtpZihmPT09dFthXS51aWQpY29udGludWUgdH11JiZuLl9pbmZvbGF5ZXIuc2VsZWN0KCIuY2IiK2YpLnJlbW92ZSgpfX0sYi5saW5rU3VicGxvdHM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGksYSxvPW4uX3Bsb3RzfHx7fSxsPWUuX3Bsb3RzPXt9LGM9ZS5fc3VicGxvdHMsZj17X2Z1bGxEYXRhOnQsX2Z1bGxMYXlvdXQ6ZX0saD1jLmNhcnRlc2lhbi5jb25jYXQoYy5nbDJkfHxbXSk7Zm9yKGk9MDtpPGgubGVuZ3RoO2krKyl7dmFyIGQsbT1oW2ldLGc9b1ttXSx2PXAuZ2V0RnJvbUlkKGYsbSwieCIpLHk9cC5nZXRGcm9tSWQoZixtLCJ5Iik7Zm9yKGc/ZD1sW21dPWc6KGQ9bFttXT17fSkuaWQ9bSx2Ll9jb3VudGVyQXhlcy5wdXNoKHkuX2lkKSx5Ll9jb3VudGVyQXhlcy5wdXNoKHYuX2lkKSx2Ll9zdWJwbG90c1dpdGgucHVzaChtKSx5Ll9zdWJwbG90c1dpdGgucHVzaChtKSxkLnhheGlzPXYsZC55YXhpcz15LGQuX2hhc0NsaXBPbkF4aXNGYWxzZT0hMSxhPTA7YTx0Lmxlbmd0aDthKyspe3ZhciB4PXRbYV07aWYoeC54YXhpcz09PWQueGF4aXMuX2lkJiZ4LnlheGlzPT09ZC55YXhpcy5faWQmJiExPT09eC5jbGlwb25heGlzKXtkLl9oYXNDbGlwT25BeGlzRmFsc2U9ITA7YnJlYWt9fX12YXIgYixfPXAubGlzdChmLG51bGwsITApO2ZvcihpPTA7aTxfLmxlbmd0aDtpKyspe3ZhciB3PW51bGw7KGI9X1tpXSkub3ZlcmxheWluZyYmKHc9cC5nZXRGcm9tSWQoZixiLm92ZXJsYXlpbmcpKSYmdy5vdmVybGF5aW5nJiYoYi5vdmVybGF5aW5nPSExLHc9bnVsbCksYi5fbWFpbkF4aXM9d3x8Yix3JiYoYi5kb21haW49dy5kb21haW4uc2xpY2UoKSksYi5fYW5jaG9yQXhpcz0iZnJlZSI9PT1iLmFuY2hvcj9udWxsOnAuZ2V0RnJvbUlkKGYsYi5hbmNob3IpfWZvcihpPTA7aTxfLmxlbmd0aDtpKyspaWYoKGI9X1tpXSkuX2NvdW50ZXJBeGVzLnNvcnQocC5pZFNvcnQpLGIuX3N1YnBsb3RzV2l0aC5zb3J0KHUuc3VicGxvdFNvcnQpLGIuX21haW5TdWJwbG90PU0oYixlKSxiLl9jb3VudGVyQXhlcy5sZW5ndGgmJihiLnNwaWtlbW9kZSYmLTEhPT1iLnNwaWtlbW9kZS5pbmRleE9mKCJhY3Jvc3MiKXx8Yi5hdXRvbWFyZ2luJiZiLm1pcnJvciYmImZyZWUiIT09Yi5hbmNob3J8fHMuZ2V0Q29tcG9uZW50TWV0aG9kKCJyYW5nZXNsaWRlciIsImlzVmlzaWJsZSIpKGIpKSl7dmFyIFQ9MSxrPTA7Zm9yKGE9MDthPGIuX2NvdW50ZXJBeGVzLmxlbmd0aDthKyspe3ZhciBBPXAuZ2V0RnJvbUlkKGYsYi5fY291bnRlckF4ZXNbYV0pO1Q9TWF0aC5taW4oVCxBLmRvbWFpblswXSksaz1NYXRoLm1heChrLEEuZG9tYWluWzFdKX1UPGsmJihiLl9jb3VudGVyRG9tYWluTWluPVQsYi5fY291bnRlckRvbWFpbk1heD1rKX19LGIuY2xlYXJFeHBhbmRlZFRyYWNlRGVmYXVsdENvbG9ycz1mdW5jdGlvbih0KXt2YXIgZSxyLG47Zm9yKHI9W10sKGU9dC5fbW9kdWxlLl9jb2xvckF0dHJzKXx8KHQuX21vZHVsZS5fY29sb3JBdHRycz1lPVtdLGwuY3Jhd2wodC5fbW9kdWxlLmF0dHJpYnV0ZXMsKGZ1bmN0aW9uKHQsbixpLGEpe3JbYV09bixyLmxlbmd0aD1hKzEsImNvbG9yIj09PXQudmFsVHlwZSYmdm9pZCAwPT09dC5kZmx0JiZlLnB1c2goci5qb2luKCIuIikpfSkpKSxuPTA7bjxlLmxlbmd0aDtuKyspe3UubmVzdGVkUHJvcGVydHkodCwiX2lucHV0LiIrZVtuXSkuZ2V0KCl8fHUubmVzdGVkUHJvcGVydHkodCxlW25dKS5zZXQobnVsbCl9fSxiLnN1cHBseURhdGFEZWZhdWx0cz1mdW5jdGlvbih0LGUscixuKXt2YXIgaSxhLG8sbD1uLl9tb2R1bGVzLGY9bi5fdmlzaWJsZU1vZHVsZXMsaD1uLl9iYXNlUGxvdE1vZHVsZXMscD0wLGQ9MDtmdW5jdGlvbiBtKHQpe2UucHVzaCh0KTt2YXIgcj10Ll9tb2R1bGU7ciYmKHUucHVzaFVuaXF1ZShsLHIpLCEwPT09dC52aXNpYmxlJiZ1LnB1c2hVbmlxdWUoZixyKSx1LnB1c2hVbmlxdWUoaCx0Ll9tb2R1bGUuYmFzZVBsb3RNb2R1bGUpLHArKywhMSE9PXQuX2lucHV0LnZpc2libGUmJmQrKyl9bi5fdHJhbnNmb3JtTW9kdWxlcz1bXTt2YXIgZz17fSx2PVtdLHg9KHIudGVtcGxhdGV8fHt9KS5kYXRhfHx7fSxfPWMudHJhY2VUZW1wbGF0ZXIoeCk7Zm9yKGk9MDtpPHQubGVuZ3RoO2krKyl7aWYobz10W2ldLChhPV8ubmV3VHJhY2UobykpLnVpZD1uLl90cmFjZVVpZHNbaV0sYi5zdXBwbHlUcmFjZURlZmF1bHRzKG8sYSxkLG4saSksYS5pbmRleD1pLGEuX2lucHV0PW8sYS5fZXhwYW5kZWRJbmRleD1wLGEudHJhbnNmb3JtcyYmYS50cmFuc2Zvcm1zLmxlbmd0aClmb3IodmFyIHc9ITEhPT1vLnZpc2libGUmJiExPT09YS52aXNpYmxlLFQ9RShhLGUscixuKSxrPTA7azxULmxlbmd0aDtrKyspe3ZhciBBPVRba10sTT17X3RlbXBsYXRlOmEuX3RlbXBsYXRlLHR5cGU6YS50eXBlLHVpZDphLnVpZCtrfTt3JiYhMT09PUEudmlzaWJsZSYmZGVsZXRlIEEudmlzaWJsZSxiLnN1cHBseVRyYWNlRGVmYXVsdHMoQSxNLHAsbixpKSx5KE0sQSksTS5pbmRleD1pLE0uX2lucHV0PW8sTS5fZnVsbElucHV0PWEsTS5fZXhwYW5kZWRJbmRleD1wLE0uX2V4cGFuZGVkSW5wdXQ9QSxtKE0pfWVsc2UgYS5fZnVsbElucHV0PWEsYS5fZXhwYW5kZWRJbnB1dD1hLG0oYSk7cy50cmFjZUlzKGEsImNhcnBldEF4aXMiKSYmKGdbYS5jYXJwZXRdPWEpLHMudHJhY2VJcyhhLCJjYXJwZXREZXBlbmRlbnQiKSYmdi5wdXNoKGkpfWZvcihpPTA7aTx2Lmxlbmd0aDtpKyspaWYoKGE9ZVt2W2ldXSkudmlzaWJsZSl7dmFyIFM9Z1thLmNhcnBldF07YS5fY2FycGV0PVMsUyYmUy52aXNpYmxlPyhhLnhheGlzPVMueGF4aXMsYS55YXhpcz1TLnlheGlzKTphLnZpc2libGU9ITF9fSxiLnN1cHBseUFuaW1hdGlvbkRlZmF1bHRzPWZ1bmN0aW9uKHQpe3ZhciBlO3Q9dHx8e307dmFyIHI9e307ZnVuY3Rpb24gbihlLG4pe3JldHVybiB1LmNvZXJjZSh0fHx7fSxyLG0sZSxuKX1pZihuKCJtb2RlIiksbigiZGlyZWN0aW9uIiksbigiZnJvbWN1cnJlbnQiKSxBcnJheS5pc0FycmF5KHQuZnJhbWUpKWZvcihyLmZyYW1lPVtdLGU9MDtlPHQuZnJhbWUubGVuZ3RoO2UrKylyLmZyYW1lW2VdPWIuc3VwcGx5QW5pbWF0aW9uRnJhbWVEZWZhdWx0cyh0LmZyYW1lW2VdfHx7fSk7ZWxzZSByLmZyYW1lPWIuc3VwcGx5QW5pbWF0aW9uRnJhbWVEZWZhdWx0cyh0LmZyYW1lfHx7fSk7aWYoQXJyYXkuaXNBcnJheSh0LnRyYW5zaXRpb24pKWZvcihyLnRyYW5zaXRpb249W10sZT0wO2U8dC50cmFuc2l0aW9uLmxlbmd0aDtlKyspci50cmFuc2l0aW9uW2VdPWIuc3VwcGx5QW5pbWF0aW9uVHJhbnNpdGlvbkRlZmF1bHRzKHQudHJhbnNpdGlvbltlXXx8e30pO2Vsc2Ugci50cmFuc2l0aW9uPWIuc3VwcGx5QW5pbWF0aW9uVHJhbnNpdGlvbkRlZmF1bHRzKHQudHJhbnNpdGlvbnx8e30pO3JldHVybiByfSxiLnN1cHBseUFuaW1hdGlvbkZyYW1lRGVmYXVsdHM9ZnVuY3Rpb24odCl7dmFyIGU9e307ZnVuY3Rpb24gcihyLG4pe3JldHVybiB1LmNvZXJjZSh0fHx7fSxlLG0uZnJhbWUscixuKX1yZXR1cm4gcigiZHVyYXRpb24iKSxyKCJyZWRyYXciKSxlfSxiLnN1cHBseUFuaW1hdGlvblRyYW5zaXRpb25EZWZhdWx0cz1mdW5jdGlvbih0KXt2YXIgZT17fTtmdW5jdGlvbiByKHIsbil7cmV0dXJuIHUuY29lcmNlKHR8fHt9LGUsbS50cmFuc2l0aW9uLHIsbil9cmV0dXJuIHIoImR1cmF0aW9uIikscigiZWFzaW5nIiksZX0sYi5zdXBwbHlGcmFtZURlZmF1bHRzPWZ1bmN0aW9uKHQpe3ZhciBlPXt9O2Z1bmN0aW9uIHIocixuKXtyZXR1cm4gdS5jb2VyY2UodCxlLGcscixuKX1yZXR1cm4gcigiZ3JvdXAiKSxyKCJuYW1lIikscigidHJhY2VzIikscigiYmFzZWZyYW1lIikscigiZGF0YSIpLHIoImxheW91dCIpLGV9LGIuc3VwcGx5VHJhY2VEZWZhdWx0cz1mdW5jdGlvbih0LGUscixuLGkpe3ZhciBhLG89bi5jb2xvcndheXx8Zi5kZWZhdWx0cyxsPW9bciVvLmxlbmd0aF07ZnVuY3Rpb24gYyhyLG4pe3JldHVybiB1LmNvZXJjZSh0LGUsYi5hdHRyaWJ1dGVzLHIsbil9dmFyIGg9YygidmlzaWJsZSIpO2MoInR5cGUiKSxjKCJuYW1lIixuLl90cmFjZVdvcmQrIiAiK2kpLGMoInVpcmV2aXNpb24iLG4udWlyZXZpc2lvbik7dmFyIHA9Yi5nZXRNb2R1bGUoZSk7aWYoZS5fbW9kdWxlPXAscCl7dmFyIGQ9cC5iYXNlUGxvdE1vZHVsZSxtPWQuYXR0cixnPWQuYXR0cmlidXRlcztpZihtJiZnKXt2YXIgdj1uLl9zdWJwbG90cyx5PSIiO2lmKGh8fCJnbDJkIiE9PWQubmFtZSl7aWYoQXJyYXkuaXNBcnJheShtKSlmb3IoYT0wO2E8bS5sZW5ndGg7YSsrKXt2YXIgeD1tW2FdLF89dS5jb2VyY2UodCxlLGcseCk7dlt4XSYmdS5wdXNoVW5pcXVlKHZbeF0sXykseSs9X31lbHNlIHk9dS5jb2VyY2UodCxlLGcsbSk7dltkLm5hbWVdJiZ1LnB1c2hVbmlxdWUodltkLm5hbWVdLHkpfX19cmV0dXJuIGgmJihjKCJjdXN0b21kYXRhIiksYygiaWRzIiksYygibWV0YSIpLHMudHJhY2VJcyhlLCJzaG93TGVnZW5kIik/KHUuY29lcmNlKHQsZSxwLmF0dHJpYnV0ZXMuc2hvd2xlZ2VuZD9wLmF0dHJpYnV0ZXM6Yi5hdHRyaWJ1dGVzLCJzaG93bGVnZW5kIiksYygibGVnZW5kZ3JvdXAiKSxjKCJsZWdlbmRncm91cHRpdGxlLnRleHQiKSxjKCJsZWdlbmRyYW5rIiksZS5fZGZsdFNob3dMZWdlbmQ9ITApOmUuX2RmbHRTaG93TGVnZW5kPSExLHAmJnAuc3VwcGx5RGVmYXVsdHModCxlLGwsbikscy50cmFjZUlzKGUsIm5vT3BhY2l0eSIpfHxjKCJvcGFjaXR5Iikscy50cmFjZUlzKGUsIm5vdExlZ2VuZElzb2xhdGFibGUiKSYmKGUudmlzaWJsZT0hIWUudmlzaWJsZSkscy50cmFjZUlzKGUsIm5vSG92ZXIiKXx8KGUuaG92ZXJ0ZW1wbGF0ZXx8dS5jb2VyY2VIb3ZlcmluZm8odCxlLG4pLCJwYXJjYXRzIiE9PWUudHlwZSYmcy5nZXRDb21wb25lbnRNZXRob2QoImZ4Iiwic3VwcGx5RGVmYXVsdHMiKSh0LGUsbCxuKSkscCYmcC5zZWxlY3RQb2ludHMmJmMoInNlbGVjdGVkcG9pbnRzIiksYi5zdXBwbHlUcmFuc2Zvcm1EZWZhdWx0cyh0LGUsbikpLGV9LGIuaGFzTWFrZXNEYXRhVHJhbnNmb3JtPVMsYi5zdXBwbHlUcmFuc2Zvcm1EZWZhdWx0cz1mdW5jdGlvbih0LGUscil7aWYoZS5fbGVuZ3RofHxTKHQpKXt2YXIgbj1yLl9nbG9iYWxUcmFuc2Zvcm1zfHxbXSxpPXIuX3RyYW5zZm9ybU1vZHVsZXN8fFtdO2lmKEFycmF5LmlzQXJyYXkodC50cmFuc2Zvcm1zKXx8MCE9PW4ubGVuZ3RoKWZvcih2YXIgYT10LnRyYW5zZm9ybXN8fFtdLG89bi5jb25jYXQoYSkscz1lLnRyYW5zZm9ybXM9W10sbD0wO2w8by5sZW5ndGg7bCsrKXt2YXIgYyxmPW9bbF0saD1mLnR5cGUscD1fW2hdLGQ9IShmLl9tb2R1bGUmJmYuX21vZHVsZT09PXApLG09cCYmImZ1bmN0aW9uIj09dHlwZW9mIHAudHJhbnNmb3JtO3B8fHUud2FybigiVW5yZWNvZ25pemVkIHRyYW5zZm9ybSB0eXBlICIraCsiLiIpLHAmJnAuc3VwcGx5RGVmYXVsdHMmJihkfHxtKT8oKGM9cC5zdXBwbHlEZWZhdWx0cyhmLGUscix0KSkudHlwZT1oLGMuX21vZHVsZT1wLHUucHVzaFVuaXF1ZShpLHApKTpjPXUuZXh0ZW5kRmxhdCh7fSxmKSxzLnB1c2goYyl9fX0sYi5zdXBwbHlMYXlvdXRHbG9iYWxEZWZhdWx0cz1mdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gbihyLG4pe3JldHVybiB1LmNvZXJjZSh0LGUsYi5sYXlvdXRBdHRyaWJ1dGVzLHIsbil9dmFyIGk9dC50ZW1wbGF0ZTt1LmlzUGxhaW5PYmplY3QoaSkmJihlLnRlbXBsYXRlPWksZS5fdGVtcGxhdGU9aS5sYXlvdXQsZS5fZGF0YVRlbXBsYXRlPWkuZGF0YSksbigiYXV0b3R5cGVudW1iZXJzIik7dmFyIGE9dS5jb2VyY2VGb250KG4sImZvbnQiKSxvPWEuc2l6ZTt1LmNvZXJjZUZvbnQobiwidGl0bGUuZm9udCIsdS5leHRlbmRGbGF0KHt9LGEse3NpemU6TWF0aC5yb3VuZCgxLjQqbyl9KSksbigidGl0bGUudGV4dCIsZS5fZGZsdFRpdGxlLnBsb3QpLG4oInRpdGxlLnhyZWYiKSxuKCJ0aXRsZS55cmVmIiksbigidGl0bGUueCIpLG4oInRpdGxlLnkiKSxuKCJ0aXRsZS54YW5jaG9yIiksbigidGl0bGUueWFuY2hvciIpLG4oInRpdGxlLnBhZC50IiksbigidGl0bGUucGFkLnIiKSxuKCJ0aXRsZS5wYWQuYiIpLG4oInRpdGxlLnBhZC5sIiksbigidW5pZm9ybXRleHQubW9kZSIpJiZuKCJ1bmlmb3JtdGV4dC5taW5zaXplIiksbigiYXV0b3NpemUiLCEodC53aWR0aCYmdC5oZWlnaHQpKSxuKCJ3aWR0aCIpLG4oImhlaWdodCIpLG4oIm1hcmdpbi5sIiksbigibWFyZ2luLnIiKSxuKCJtYXJnaW4udCIpLG4oIm1hcmdpbi5iIiksbigibWFyZ2luLnBhZCIpLG4oIm1hcmdpbi5hdXRvZXhwYW5kIiksdC53aWR0aCYmdC5oZWlnaHQmJmIuc2FuaXRpemVNYXJnaW5zKGUpLHMuZ2V0Q29tcG9uZW50TWV0aG9kKCJncmlkIiwic2l6ZURlZmF1bHRzIikodCxlKSxuKCJwYXBlcl9iZ2NvbG9yIiksbigic2VwYXJhdG9ycyIsci5kZWNpbWFsK3IudGhvdXNhbmRzKSxuKCJoaWRlc291cmNlcyIpLG4oImNvbG9yd2F5IiksbigiZGF0YXJldmlzaW9uIik7dmFyIGw9bigidWlyZXZpc2lvbiIpO24oImVkaXRyZXZpc2lvbiIsbCksbigic2VsZWN0aW9ucmV2aXNpb24iLGwpLHMuZ2V0Q29tcG9uZW50TWV0aG9kKCJtb2RlYmFyIiwic3VwcGx5TGF5b3V0RGVmYXVsdHMiKSh0LGUpLHMuZ2V0Q29tcG9uZW50TWV0aG9kKCJzaGFwZXMiLCJzdXBwbHlEcmF3TmV3U2hhcGVEZWZhdWx0cyIpKHQsZSxuKSxzLmdldENvbXBvbmVudE1ldGhvZCgic2VsZWN0aW9ucyIsInN1cHBseURyYXdOZXdTZWxlY3Rpb25EZWZhdWx0cyIpKHQsZSxuKSxuKCJtZXRhIiksdS5pc1BsYWluT2JqZWN0KHQudHJhbnNpdGlvbikmJihuKCJ0cmFuc2l0aW9uLmR1cmF0aW9uIiksbigidHJhbnNpdGlvbi5lYXNpbmciKSxuKCJ0cmFuc2l0aW9uLm9yZGVyaW5nIikpLHMuZ2V0Q29tcG9uZW50TWV0aG9kKCJjYWxlbmRhcnMiLCJoYW5kbGVEZWZhdWx0cyIpKHQsZSwiY2FsZW5kYXIiKSxzLmdldENvbXBvbmVudE1ldGhvZCgiZngiLCJzdXBwbHlMYXlvdXRHbG9iYWxEZWZhdWx0cyIpKHQsZSxuKX0sYi5wbG90QXV0b1NpemU9ZnVuY3Rpb24odCxlLHIpe3ZhciBuLGksYT10Ll9jb250ZXh0fHx7fSxzPWEuZnJhbWVNYXJnaW5zLGw9dS5pc1Bsb3REaXYodCk7aWYobCYmdC5lbWl0KCJwbG90bHlfYXV0b3NpemUiKSxhLmZpbGxGcmFtZSluPXdpbmRvdy5pbm5lcldpZHRoLGk9d2luZG93LmlubmVySGVpZ2h0LGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiI7ZWxzZXt2YXIgYz1sP3dpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpOnt9O2lmKG49TChjLndpZHRoKXx8TChjLm1heFdpZHRoKXx8ci53aWR0aCxpPUwoYy5oZWlnaHQpfHxMKGMubWF4SGVpZ2h0KXx8ci5oZWlnaHQsbyhzKSYmcz4wKXt2YXIgZj0xLTIqcztuPU1hdGgucm91bmQoZipuKSxpPU1hdGgucm91bmQoZippKX19dmFyIGg9Yi5sYXlvdXRBdHRyaWJ1dGVzLndpZHRoLm1pbixwPWIubGF5b3V0QXR0cmlidXRlcy5oZWlnaHQubWluO248aCYmKG49aCksaTxwJiYoaT1wKTt2YXIgZD0hZS53aWR0aCYmTWF0aC5hYnMoci53aWR0aC1uKT4xLG09IWUuaGVpZ2h0JiZNYXRoLmFicyhyLmhlaWdodC1pKT4xOyhtfHxkKSYmKGQmJihyLndpZHRoPW4pLG0mJihyLmhlaWdodD1pKSksdC5faW5pdGlhbEF1dG9TaXplfHwodC5faW5pdGlhbEF1dG9TaXplPXt3aWR0aDpuLGhlaWdodDppfSksYi5zYW5pdGl6ZU1hcmdpbnMocil9LGIuc3VwcGx5TGF5b3V0TW9kdWxlRGVmYXVsdHM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGksYSxvLGw9cy5jb21wb25lbnRzUmVnaXN0cnksYz1lLl9iYXNlUGxvdE1vZHVsZXMsZj1zLnN1YnBsb3RzUmVnaXN0cnkuY2FydGVzaWFuO2ZvcihpIGluIGwpKG89bFtpXSkuaW5jbHVkZUJhc2VQbG90JiZvLmluY2x1ZGVCYXNlUGxvdCh0LGUpO2Zvcih2YXIgaCBpbiBjLmxlbmd0aHx8Yy5wdXNoKGYpLGUuX2hhcygiY2FydGVzaWFuIikmJihzLmdldENvbXBvbmVudE1ldGhvZCgiZ3JpZCIsImNvbnRlbnREZWZhdWx0cyIpKHQsZSksZi5maW5hbGl6ZVN1YnBsb3RzKHQsZSkpLGUuX3N1YnBsb3RzKWUuX3N1YnBsb3RzW2hdLnNvcnQodS5zdWJwbG90U29ydCk7Zm9yKGE9MDthPGMubGVuZ3RoO2ErKykobz1jW2FdKS5zdXBwbHlMYXlvdXREZWZhdWx0cyYmby5zdXBwbHlMYXlvdXREZWZhdWx0cyh0LGUscik7dmFyIHA9ZS5fbW9kdWxlcztmb3IoYT0wO2E8cC5sZW5ndGg7YSsrKShvPXBbYV0pLnN1cHBseUxheW91dERlZmF1bHRzJiZvLnN1cHBseUxheW91dERlZmF1bHRzKHQsZSxyKTt2YXIgZD1lLl90cmFuc2Zvcm1Nb2R1bGVzO2ZvcihhPTA7YTxkLmxlbmd0aDthKyspKG89ZFthXSkuc3VwcGx5TGF5b3V0RGVmYXVsdHMmJm8uc3VwcGx5TGF5b3V0RGVmYXVsdHModCxlLHIsbik7Zm9yKGkgaW4gbCkobz1sW2ldKS5zdXBwbHlMYXlvdXREZWZhdWx0cyYmby5zdXBwbHlMYXlvdXREZWZhdWx0cyh0LGUscil9LGIucHVyZ2U9ZnVuY3Rpb24odCl7dmFyIGU9dC5fZnVsbExheW91dHx8e307dm9pZCAwIT09ZS5fZ2xjb250YWluZXImJihlLl9nbGNvbnRhaW5lci5zZWxlY3RBbGwoIi5nbC1jYW52YXMiKS5yZW1vdmUoKSxlLl9nbGNvbnRhaW5lci5yZW1vdmUoKSxlLl9nbGNhbnZhcz1udWxsKSxlLl9tb2RlQmFyJiZlLl9tb2RlQmFyLmRlc3Ryb3koKSx0Ll90cmFuc2l0aW9uRGF0YSYmKHQuX3RyYW5zaXRpb25EYXRhLl9pbnRlcnJ1cHRDYWxsYmFja3MmJih0Ll90cmFuc2l0aW9uRGF0YS5faW50ZXJydXB0Q2FsbGJhY2tzLmxlbmd0aD0wKSx0Ll90cmFuc2l0aW9uRGF0YS5fYW5pbWF0aW9uUmFmJiZ3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUodC5fdHJhbnNpdGlvbkRhdGEuX2FuaW1hdGlvblJhZikpLHUuY2xlYXJUaHJvdHRsZSgpLHUuY2xlYXJSZXNwb25zaXZlKHQpLGRlbGV0ZSB0LmRhdGEsZGVsZXRlIHQubGF5b3V0LGRlbGV0ZSB0Ll9mdWxsRGF0YSxkZWxldGUgdC5fZnVsbExheW91dCxkZWxldGUgdC5jYWxjZGF0YSxkZWxldGUgdC5lbXB0eSxkZWxldGUgdC5maWQsZGVsZXRlIHQudW5kb3F1ZXVlLGRlbGV0ZSB0LnVuZG9udW0sZGVsZXRlIHQuYXV0b3BsYXksZGVsZXRlIHQuY2hhbmdlZCxkZWxldGUgdC5fcHJvbWlzZXMsZGVsZXRlIHQuX3JlZHJhd1RpbWVyLGRlbGV0ZSB0Ll9obWx1bWNvdW50LGRlbGV0ZSB0Ll9obXBpeGNvdW50LGRlbGV0ZSB0Ll90cmFuc2l0aW9uRGF0YSxkZWxldGUgdC5fdHJhbnNpdGlvbmluZyxkZWxldGUgdC5faW5pdGlhbEF1dG9TaXplLGRlbGV0ZSB0Ll90cmFuc2l0aW9uaW5nV2l0aER1cmF0aW9uLGRlbGV0ZSB0Ll9kcmFnZ2luZyxkZWxldGUgdC5fZHJhZ2dlZCxkZWxldGUgdC5fZHJhZ2RhdGEsZGVsZXRlIHQuX2hvdmVyZGF0YSxkZWxldGUgdC5fc25hcHNob3RJblByb2dyZXNzLGRlbGV0ZSB0Ll9lZGl0aW5nLGRlbGV0ZSB0Ll9tb3VzZURvd25UaW1lLGRlbGV0ZSB0Ll9sZWdlbmRNb3VzZURvd25UaW1lLHQucmVtb3ZlQWxsTGlzdGVuZXJzJiZ0LnJlbW92ZUFsbExpc3RlbmVycygpfSxiLnN0eWxlPWZ1bmN0aW9uKHQpe3ZhciBlLHI9dC5fZnVsbExheW91dC5fdmlzaWJsZU1vZHVsZXMsbj1bXTtmb3IoZT0wO2U8ci5sZW5ndGg7ZSsrKXt2YXIgaT1yW2VdO2kuc3R5bGUmJnUucHVzaFVuaXF1ZShuLGkuc3R5bGUpfWZvcihlPTA7ZTxuLmxlbmd0aDtlKyspbltlXSh0KX0sYi5zYW5pdGl6ZU1hcmdpbnM9ZnVuY3Rpb24odCl7aWYodCYmdC5tYXJnaW4pe3ZhciBlLHI9dC53aWR0aCxuPXQuaGVpZ2h0LGk9dC5tYXJnaW4sYT1yLShpLmwraS5yKSxvPW4tKGkudCtpLmIpO2E8MCYmKGU9KHItMSkvKGkubCtpLnIpLGkubD1NYXRoLmZsb29yKGUqaS5sKSxpLnI9TWF0aC5mbG9vcihlKmkucikpLG88MCYmKGU9KG4tMSkvKGkudCtpLmIpLGkudD1NYXRoLmZsb29yKGUqaS50KSxpLmI9TWF0aC5mbG9vcihlKmkuYikpfX0sYi5jbGVhckF1dG9NYXJnaW5JZHM9ZnVuY3Rpb24odCl7dC5fZnVsbExheW91dC5fcHVzaG1hcmdpbklkcz17fX0sYi5hbGxvd0F1dG9NYXJnaW49ZnVuY3Rpb24odCxlKXt0Ll9mdWxsTGF5b3V0Ll9wdXNobWFyZ2luSWRzW2VdPTF9O2IuYXV0b01hcmdpbj1mdW5jdGlvbih0LGUscil7dmFyIG49dC5fZnVsbExheW91dCxpPW4ud2lkdGgsYT1uLmhlaWdodCxvPW4ubWFyZ2luLHM9dS5jb25zdHJhaW4oaS1vLmwtby5yLDIsNjQpLGw9dS5jb25zdHJhaW4oYS1vLnQtby5iLDIsNjQpLGM9TWF0aC5tYXgoMCxpLXMpLGY9TWF0aC5tYXgoMCxhLWwpLGg9bi5fcHVzaG1hcmdpbixwPW4uX3B1c2htYXJnaW5JZHM7aWYoITEhPT1vLmF1dG9leHBhbmQpe2lmKHIpe3ZhciBkPXIucGFkO2lmKHZvaWQgMD09PWQmJihkPU1hdGgubWluKDEyLG8ubCxvLnIsby50LG8uYikpLGMpe3ZhciBtPShyLmwrci5yKS9jO20+MSYmKHIubC89bSxyLnIvPW0pfWlmKGYpe3ZhciBnPShyLnQrci5iKS9mO2c+MSYmKHIudC89ZyxyLmIvPWcpfXZhciB2PXZvaWQgMCE9PXIueGw/ci54bDpyLngseT12b2lkIDAhPT1yLnhyP3IueHI6ci54LHg9dm9pZCAwIT09ci55dD9yLnl0OnIueSxfPXZvaWQgMCE9PXIueWI/ci55YjpyLnk7aFtlXT17bDp7dmFsOnYsc2l6ZTpyLmwrZH0scjp7dmFsOnksc2l6ZTpyLnIrZH0sYjp7dmFsOl8sc2l6ZTpyLmIrZH0sdDp7dmFsOngsc2l6ZTpyLnQrZH19LHBbZV09MX1lbHNlIGRlbGV0ZSBoW2VdLGRlbGV0ZSBwW2VdO2lmKCFuLl9yZXBsb3R0aW5nKXJldHVybiBiLmRvQXV0b01hcmdpbih0KX19LGIuZG9BdXRvTWFyZ2luPWZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQscj1lLndpZHRoLG49ZS5oZWlnaHQ7ZS5fc2l6ZXx8KGUuX3NpemU9e30pLEMoZSk7dmFyIGk9ZS5fc2l6ZSxhPWUubWFyZ2luLGw9dS5leHRlbmRGbGF0KHt9LGkpLGM9YS5sLGY9YS5yLGg9YS50LGQ9YS5iLG09ZS5fcHVzaG1hcmdpbixnPWUuX3B1c2htYXJnaW5JZHM7aWYoITEhPT1lLm1hcmdpbi5hdXRvZXhwYW5kKXtmb3IodmFyIHYgaW4gbSlnW3ZdfHxkZWxldGUgbVt2XTtmb3IodmFyIHkgaW4gbS5iYXNlPXtsOnt2YWw6MCxzaXplOmN9LHI6e3ZhbDoxLHNpemU6Zn0sdDp7dmFsOjEsc2l6ZTpofSxiOnt2YWw6MCxzaXplOmR9fSxtKXt2YXIgeD1tW3ldLmx8fHt9LF89bVt5XS5ifHx7fSx3PXgudmFsLFQ9eC5zaXplLGs9Xy52YWwsQT1fLnNpemU7Zm9yKHZhciBNIGluIG0pe2lmKG8oVCkmJm1bTV0ucil7dmFyIFM9bVtNXS5yLnZhbCxFPW1bTV0uci5zaXplO2lmKFM+dyl7dmFyIEw9KFQqUysoRS1yKSp3KS8oUy13KSxQPShFKigxLXcpKyhULXIpKigxLVMpKS8oUy13KTtMK1A+YytmJiYoYz1MLGY9UCl9fWlmKG8oQSkmJm1bTV0udCl7dmFyIEk9bVtNXS50LnZhbCxPPW1bTV0udC5zaXplO2lmKEk+ayl7dmFyIHo9KEEqSSsoTy1uKSprKS8oSS1rKSxEPShPKigxLWspKyhBLW4pKigxLUkpKS8oSS1rKTt6K0Q+ZCtoJiYoZD16LGg9RCl9fX19fXZhciBSPXUuY29uc3RyYWluKHItYS5sLWEuciwyLDY0KSxGPXUuY29uc3RyYWluKG4tYS50LWEuYiwyLDY0KSxCPU1hdGgubWF4KDAsci1SKSxOPU1hdGgubWF4KDAsbi1GKTtpZihCKXt2YXIgaj0oYytmKS9CO2o+MSYmKGMvPWosZi89ail9aWYoTil7dmFyIFU9KGQraCkvTjtVPjEmJihkLz1VLGgvPVUpfWlmKGkubD1NYXRoLnJvdW5kKGMpLGkucj1NYXRoLnJvdW5kKGYpLGkudD1NYXRoLnJvdW5kKGgpLGkuYj1NYXRoLnJvdW5kKGQpLGkucD1NYXRoLnJvdW5kKGEucGFkKSxpLnc9TWF0aC5yb3VuZChyKS1pLmwtaS5yLGkuaD1NYXRoLnJvdW5kKG4pLWkudC1pLmIsIWUuX3JlcGxvdHRpbmcmJmIuZGlkTWFyZ2luQ2hhbmdlKGwsaSkpeyJfcmVkcmF3RnJvbUF1dG9NYXJnaW5Db3VudCJpbiBlP2UuX3JlZHJhd0Zyb21BdXRvTWFyZ2luQ291bnQrKzplLl9yZWRyYXdGcm9tQXV0b01hcmdpbkNvdW50PTE7dmFyIFY9MyooMStPYmplY3Qua2V5cyhnKS5sZW5ndGgpO2lmKGUuX3JlZHJhd0Zyb21BdXRvTWFyZ2luQ291bnQ8VilyZXR1cm4gcy5jYWxsKCJfZG9QbG90Iix0KTtlLl9zaXplPWwsdS53YXJuKCJUb28gbWFueSBhdXRvLW1hcmdpbiByZWRyYXdzLiIpfSFmdW5jdGlvbih0KXt2YXIgZT1wLmxpc3QodCwiIiwhMCk7WyJfYWRqdXN0VGlja0xhYmVsc092ZXJmbG93IiwiX2hpZGVDb3VudGVyQXhpc0luc2lkZVRpY2tMYWJlbHMiXS5mb3JFYWNoKChmdW5jdGlvbih0KXtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZVtyXVt0XTtuJiZuKCl9fSkpfSh0KX07dmFyIFA9WyJsIiwiciIsInQiLCJiIiwicCIsInciLCJoIl07ZnVuY3Rpb24gSSh0LGUscil7dmFyIG49ITE7dmFyIGk9W2IucHJldmlvdXNQcm9taXNlcyxmdW5jdGlvbigpe2lmKHQuX3RyYW5zaXRpb25EYXRhKXJldHVybiB0Ll90cmFuc2l0aW9uaW5nPSExLGZ1bmN0aW9uKHQpe3ZhciBlPVByb21pc2UucmVzb2x2ZSgpO2lmKCF0KXJldHVybiBlO2Zvcig7dC5sZW5ndGg7KWU9ZS50aGVuKHQuc2hpZnQoKSk7cmV0dXJuIGV9KHQuX3RyYW5zaXRpb25EYXRhLl9pbnRlcnJ1cHRDYWxsYmFja3MpfSxyLnByZXBhcmVGbixiLnJlaG92ZXIsYi5yZXNlbGVjdCxmdW5jdGlvbigpe3JldHVybiB0LmVtaXQoInBsb3RseV90cmFuc2l0aW9uaW5nIixbXSksbmV3IFByb21pc2UoKGZ1bmN0aW9uKGkpe3QuX3RyYW5zaXRpb25pbmc9ITAsZS5kdXJhdGlvbj4wJiYodC5fdHJhbnNpdGlvbmluZ1dpdGhEdXJhdGlvbj0hMCksdC5fdHJhbnNpdGlvbkRhdGEuX2ludGVycnVwdENhbGxiYWNrcy5wdXNoKChmdW5jdGlvbigpe249ITB9KSksci5yZWRyYXcmJnQuX3RyYW5zaXRpb25EYXRhLl9pbnRlcnJ1cHRDYWxsYmFja3MucHVzaCgoZnVuY3Rpb24oKXtyZXR1cm4gcy5jYWxsKCJyZWRyYXciLHQpfSkpLHQuX3RyYW5zaXRpb25EYXRhLl9pbnRlcnJ1cHRDYWxsYmFja3MucHVzaCgoZnVuY3Rpb24oKXt0LmVtaXQoInBsb3RseV90cmFuc2l0aW9uaW50ZXJydXB0ZWQiLFtdKX0pKTt2YXIgYT0wLG89MDtmdW5jdGlvbiBsKCl7cmV0dXJuIGErKyxmdW5jdGlvbigpe28rKyxufHxvIT09YXx8ZnVuY3Rpb24oZSl7aWYoIXQuX3RyYW5zaXRpb25EYXRhKXJldHVybjsoZnVuY3Rpb24odCl7aWYodClmb3IoO3QubGVuZ3RoOyl0LnNoaWZ0KCl9KSh0Ll90cmFuc2l0aW9uRGF0YS5faW50ZXJydXB0Q2FsbGJhY2tzKSxQcm9taXNlLnJlc29sdmUoKS50aGVuKChmdW5jdGlvbigpe2lmKHIucmVkcmF3KXJldHVybiBzLmNhbGwoInJlZHJhdyIsdCl9KSkudGhlbigoZnVuY3Rpb24oKXt0Ll90cmFuc2l0aW9uaW5nPSExLHQuX3RyYW5zaXRpb25pbmdXaXRoRHVyYXRpb249ITEsdC5lbWl0KCJwbG90bHlfdHJhbnNpdGlvbmVkIixbXSl9KSkudGhlbihlKX0oaSl9fXIucnVuRm4obCksc2V0VGltZW91dChsKCkpfSkpfV0sYT11LnN5bmNPckFzeW5jKGksdCk7cmV0dXJuIGEmJmEudGhlbnx8KGE9UHJvbWlzZS5yZXNvbHZlKCkpLGEudGhlbigoZnVuY3Rpb24oKXtyZXR1cm4gdH0pKX1iLmRpZE1hcmdpbkNoYW5nZT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wO3I8UC5sZW5ndGg7cisrKXt2YXIgbj1QW3JdLGk9dFtuXSxhPWVbbl07aWYoIW8oaSl8fE1hdGguYWJzKGEtaSk+MSlyZXR1cm4hMH1yZXR1cm4hMX0sYi5ncmFwaEpzb249ZnVuY3Rpb24odCxlLHIsbixpLGEpeyhpJiZlJiYhdC5fZnVsbERhdGF8fGkmJiFlJiYhdC5fZnVsbExheW91dCkmJmIuc3VwcGx5RGVmYXVsdHModCk7dmFyIG89aT90Ll9mdWxsRGF0YTp0LmRhdGEscz1pP3QuX2Z1bGxMYXlvdXQ6dC5sYXlvdXQsbD0odC5fdHJhbnNpdGlvbkRhdGF8fHt9KS5fZnJhbWVzO2Z1bmN0aW9uIGModCxlKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgdClyZXR1cm4gZT8iX2Z1bmN0aW9uXyI6bnVsbDtpZih1LmlzUGxhaW5PYmplY3QodCkpe3ZhciBuLGk9e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLnNvcnQoKS5mb3JFYWNoKChmdW5jdGlvbihhKXtpZigtMT09PVsiXyIsIlsiXS5pbmRleE9mKGEuY2hhckF0KDApKSlpZigiZnVuY3Rpb24iIT10eXBlb2YgdFthXSl7aWYoImtlZXBkYXRhIj09PXIpe2lmKCJzcmMiPT09YS5zdWJzdHIoYS5sZW5ndGgtMykpcmV0dXJufWVsc2UgaWYoImtlZXBzdHJlYW0iPT09cil7aWYoInN0cmluZyI9PXR5cGVvZihuPXRbYSsic3JjIl0pJiZuLmluZGV4T2YoIjoiKT4wJiYhdS5pc1BsYWluT2JqZWN0KHQuc3RyZWFtKSlyZXR1cm59ZWxzZSBpZigia2VlcGFsbCIhPT1yJiYic3RyaW5nIj09dHlwZW9mKG49dFthKyJzcmMiXSkmJm4uaW5kZXhPZigiOiIpPjApcmV0dXJuO2lbYV09Yyh0W2FdLGUpfWVsc2UgZSYmKGlbYV09Il9mdW5jdGlvbiIpfSkpLGl9cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/dC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBjKHQsZSl9KSk6dS5pc1R5cGVkQXJyYXkodCk/dS5zaW1wbGVNYXAodCx1LmlkZW50aXR5KTp1LmlzSlNEYXRlKHQpP3UubXMyRGF0ZVRpbWVMb2NhbCgrdCk6dH12YXIgZj17ZGF0YToob3x8W10pLm1hcCgoZnVuY3Rpb24odCl7dmFyIHI9Yyh0KTtyZXR1cm4gZSYmZGVsZXRlIHIuZml0LHJ9KSl9O2lmKCFlJiYoZi5sYXlvdXQ9YyhzKSxpKSl7dmFyIGg9cy5fc2l6ZTtmLmxheW91dC5jb21wdXRlZD17bWFyZ2luOntiOmguYixsOmgubCxyOmgucix0OmgudH19fXJldHVybiBsJiYoZi5mcmFtZXM9YyhsKSksYSYmKGYuY29uZmlnPWModC5fY29udGV4dCwhMCkpLCJvYmplY3QiPT09bj9mOkpTT04uc3RyaW5naWZ5KGYpfSxiLm1vZGlmeUZyYW1lcz1mdW5jdGlvbih0LGUpe3ZhciByLG4saSxhPXQuX3RyYW5zaXRpb25EYXRhLl9mcmFtZXMsbz10Ll90cmFuc2l0aW9uRGF0YS5fZnJhbWVIYXNoO2ZvcihyPTA7cjxlLmxlbmd0aDtyKyspc3dpdGNoKChuPWVbcl0pLnR5cGUpe2Nhc2UicmVwbGFjZSI6aT1uLnZhbHVlO3ZhciBzPShhW24uaW5kZXhdfHx7fSkubmFtZSxsPWkubmFtZTthW24uaW5kZXhdPW9bbF09aSxsIT09cyYmKGRlbGV0ZSBvW3NdLG9bbF09aSk7YnJlYWs7Y2FzZSJpbnNlcnQiOm9bKGk9bi52YWx1ZSkubmFtZV09aSxhLnNwbGljZShuLmluZGV4LDAsaSk7YnJlYWs7Y2FzZSJkZWxldGUiOmRlbGV0ZSBvWyhpPWFbbi5pbmRleF0pLm5hbWVdLGEuc3BsaWNlKG4uaW5kZXgsMSl9cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpfSxiLmNvbXB1dGVGcmFtZT1mdW5jdGlvbih0LGUpe3ZhciByLG4saSxhLG89dC5fdHJhbnNpdGlvbkRhdGEuX2ZyYW1lSGFzaDtpZighZSl0aHJvdyBuZXcgRXJyb3IoImNvbXB1dGVGcmFtZSBtdXN0IGJlIGdpdmVuIGEgc3RyaW5nIGZyYW1lIG5hbWUiKTt2YXIgcz1vW2UudG9TdHJpbmcoKV07aWYoIXMpcmV0dXJuITE7Zm9yKHZhciBsPVtzXSxjPVtzLm5hbWVdO3MuYmFzZWZyYW1lJiYocz1vW3MuYmFzZWZyYW1lLnRvU3RyaW5nKCldKSYmLTE9PT1jLmluZGV4T2Yocy5uYW1lKTspbC5wdXNoKHMpLGMucHVzaChzLm5hbWUpO2Zvcih2YXIgdT17fTtzPWwucG9wKCk7KWlmKHMubGF5b3V0JiYodS5sYXlvdXQ9Yi5leHRlbmRMYXlvdXQodS5sYXlvdXQscy5sYXlvdXQpKSxzLmRhdGEpe2lmKHUuZGF0YXx8KHUuZGF0YT1bXSksIShuPXMudHJhY2VzKSlmb3Iobj1bXSxyPTA7cjxzLmRhdGEubGVuZ3RoO3IrKyluW3JdPXI7Zm9yKHUudHJhY2VzfHwodS50cmFjZXM9W10pLHI9MDtyPHMuZGF0YS5sZW5ndGg7cisrKW51bGwhPShpPW5bcl0pJiYoLTE9PT0oYT11LnRyYWNlcy5pbmRleE9mKGkpKSYmKGE9dS5kYXRhLmxlbmd0aCx1LnRyYWNlc1thXT1pKSx1LmRhdGFbYV09Yi5leHRlbmRUcmFjZSh1LmRhdGFbYV0scy5kYXRhW3JdKSl9cmV0dXJuIHV9LGIucmVjb21wdXRlRnJhbWVIYXNoPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Ll90cmFuc2l0aW9uRGF0YS5fZnJhbWVIYXNoPXt9LHI9dC5fdHJhbnNpdGlvbkRhdGEuX2ZyYW1lcyxuPTA7bjxyLmxlbmd0aDtuKyspe3ZhciBpPXJbbl07aSYmaS5uYW1lJiYoZVtpLm5hbWVdPWkpfX0sYi5leHRlbmRPYmplY3RXaXRoQ29udGFpbmVycz1mdW5jdGlvbih0LGUscil7dmFyIG4saSxhLG8scyxsLGMsZj11LmV4dGVuZERlZXBOb0FycmF5cyh7fSxlfHx7fSksaD11LmV4cGFuZE9iamVjdFBhdGhzKGYpLHA9e307aWYociYmci5sZW5ndGgpZm9yKGE9MDthPHIubGVuZ3RoO2ErKyl2b2lkIDA9PT0oaT0obj11Lm5lc3RlZFByb3BlcnR5KGgsclthXSkpLmdldCgpKT91Lm5lc3RlZFByb3BlcnR5KHAsclthXSkuc2V0KG51bGwpOihuLnNldChudWxsKSx1Lm5lc3RlZFByb3BlcnR5KHAsclthXSkuc2V0KGkpKTtpZih0PXUuZXh0ZW5kRGVlcE5vQXJyYXlzKHR8fHt9LGgpLHImJnIubGVuZ3RoKWZvcihhPTA7YTxyLmxlbmd0aDthKyspaWYobD11Lm5lc3RlZFByb3BlcnR5KHAsclthXSkuZ2V0KCkpe2ZvcihjPShzPXUubmVzdGVkUHJvcGVydHkodCxyW2FdKSkuZ2V0KCksQXJyYXkuaXNBcnJheShjKXx8KGM9W10scy5zZXQoYykpLG89MDtvPGwubGVuZ3RoO28rKyl7dmFyIGQ9bFtvXTtjW29dPW51bGw9PT1kP251bGw6Yi5leHRlbmRPYmplY3RXaXRoQ29udGFpbmVycyhjW29dLGQpfXMuc2V0KGMpfXJldHVybiB0fSxiLmRhdGFBcnJheUNvbnRhaW5lcnM9WyJ0cmFuc2Zvcm1zIiwiZGltZW5zaW9ucyJdLGIubGF5b3V0QXJyYXlDb250YWluZXJzPXMubGF5b3V0QXJyYXlDb250YWluZXJzLGIuZXh0ZW5kVHJhY2U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gYi5leHRlbmRPYmplY3RXaXRoQ29udGFpbmVycyh0LGUsYi5kYXRhQXJyYXlDb250YWluZXJzKX0sYi5leHRlbmRMYXlvdXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gYi5leHRlbmRPYmplY3RXaXRoQ29udGFpbmVycyh0LGUsYi5sYXlvdXRBcnJheUNvbnRhaW5lcnMpfSxiLnRyYW5zaXRpb249ZnVuY3Rpb24odCxlLHIsbixpLGEpe3ZhciBvPXtyZWRyYXc6aS5yZWRyYXd9LHM9e30sbD1bXTtyZXR1cm4gby5wcmVwYXJlRm49ZnVuY3Rpb24oKXtmb3IodmFyIGk9QXJyYXkuaXNBcnJheShlKT9lLmxlbmd0aDowLGE9bi5zbGljZSgwLGkpLG89MDtvPGEubGVuZ3RoO28rKyl7dmFyIGM9YVtvXSxmPXQuX2Z1bGxEYXRhW2NdLl9tb2R1bGU7aWYoZil7aWYoZi5hbmltYXRhYmxlKXt2YXIgaD1mLmJhc2VQbG90TW9kdWxlLm5hbWU7c1toXXx8KHNbaF09W10pLHNbaF0ucHVzaChjKX10LmRhdGFbYVtvXV09Yi5leHRlbmRUcmFjZSh0LmRhdGFbYVtvXV0sZVtvXSl9fXZhciBwPXUuZXhwYW5kT2JqZWN0UGF0aHModS5leHRlbmREZWVwTm9BcnJheXMoe30scikpLGQ9L15beHldYXhpc1swLTldKiQvO2Zvcih2YXIgbSBpbiBwKWQudGVzdChtKSYmZGVsZXRlIHBbbV0ucmFuZ2U7Yi5leHRlbmRMYXlvdXQodC5sYXlvdXQscCksZGVsZXRlIHQuY2FsY2RhdGEsYi5zdXBwbHlEZWZhdWx0cyh0KSxiLmRvQ2FsY2RhdGEodCk7dmFyIGc9dS5leHBhbmRPYmplY3RQYXRocyhyKTtpZihnKXt2YXIgdj10Ll9mdWxsTGF5b3V0Ll9wbG90cztmb3IodmFyIHkgaW4gdil7dmFyIHg9dlt5XSxfPXgueGF4aXMsdz14LnlheGlzLFQ9Xy5yYW5nZS5zbGljZSgpLGs9dy5yYW5nZS5zbGljZSgpLEE9bnVsbCxNPW51bGwsUz1udWxsLEU9bnVsbDtBcnJheS5pc0FycmF5KGdbXy5fbmFtZSsiLnJhbmdlIl0pP0E9Z1tfLl9uYW1lKyIucmFuZ2UiXS5zbGljZSgpOkFycmF5LmlzQXJyYXkoKGdbXy5fbmFtZV18fHt9KS5yYW5nZSkmJihBPWdbXy5fbmFtZV0ucmFuZ2Uuc2xpY2UoKSksQXJyYXkuaXNBcnJheShnW3cuX25hbWUrIi5yYW5nZSJdKT9NPWdbdy5fbmFtZSsiLnJhbmdlIl0uc2xpY2UoKTpBcnJheS5pc0FycmF5KChnW3cuX25hbWVdfHx7fSkucmFuZ2UpJiYoTT1nW3cuX25hbWVdLnJhbmdlLnNsaWNlKCkpLFQmJkEmJihfLnIybChUWzBdKSE9PV8ucjJsKEFbMF0pfHxfLnIybChUWzFdKSE9PV8ucjJsKEFbMV0pKSYmKFM9e3hyMDpULHhyMTpBfSksayYmTSYmKHcucjJsKGtbMF0pIT09dy5yMmwoTVswXSl8fHcucjJsKGtbMV0pIT09dy5yMmwoTVsxXSkpJiYoRT17eXIwOmsseXIxOk19KSwoU3x8RSkmJmwucHVzaCh1LmV4dGVuZEZsYXQoe3Bsb3RpbmZvOnh9LFMsRSkpfX1yZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCl9LG8ucnVuRm49ZnVuY3Rpb24oZSl7dmFyIG4saSxvPXQuX2Z1bGxMYXlvdXQuX2Jhc2VQbG90TW9kdWxlcyxjPWwubGVuZ3RoO2lmKHIpZm9yKGk9MDtpPG8ubGVuZ3RoO2krKylvW2ldLnRyYW5zaXRpb25BeGVzJiZvW2ldLnRyYW5zaXRpb25BeGVzKHQsbCxhLGUpO2Zvcih2YXIgZiBpbiBjPygobj11LmV4dGVuZEZsYXQoe30sYSkpLmR1cmF0aW9uPTAsZGVsZXRlIHMuY2FydGVzaWFuKTpuPWEscyl7dmFyIGg9c1tmXTt0Ll9mdWxsRGF0YVtoWzBdXS5fbW9kdWxlLmJhc2VQbG90TW9kdWxlLnBsb3QodCxoLG4sZSl9fSxJKHQsYSxvKX0sYi50cmFuc2l0aW9uRnJvbVJlYWN0PWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPXQuX2Z1bGxMYXlvdXQsYT1pLnRyYW5zaXRpb24sbz17fSxzPVtdO3JldHVybiBvLnByZXBhcmVGbj1mdW5jdGlvbigpe3ZhciB0PWkuX3Bsb3RzO2Zvcih2YXIgYSBpbiBvLnJlZHJhdz0hMSwic29tZSI9PT1lLmFuaW0mJihvLnJlZHJhdz0hMCksInNvbWUiPT09ci5hbmltJiYoby5yZWRyYXc9ITApLHQpe3ZhciBsPXRbYV0sYz1sLnhheGlzLGY9bC55YXhpcyxoPW5bYy5fbmFtZV0ucmFuZ2Uuc2xpY2UoKSxwPW5bZi5fbmFtZV0ucmFuZ2Uuc2xpY2UoKSxkPWMucmFuZ2Uuc2xpY2UoKSxtPWYucmFuZ2Uuc2xpY2UoKTtjLnNldFNjYWxlKCksZi5zZXRTY2FsZSgpO3ZhciBnPW51bGwsdj1udWxsO2MucjJsKGhbMF0pPT09Yy5yMmwoZFswXSkmJmMucjJsKGhbMV0pPT09Yy5yMmwoZFsxXSl8fChnPXt4cjA6aCx4cjE6ZH0pLGYucjJsKHBbMF0pPT09Zi5yMmwobVswXSkmJmYucjJsKHBbMV0pPT09Zi5yMmwobVsxXSl8fCh2PXt5cjA6cCx5cjE6bX0pLChnfHx2KSYmcy5wdXNoKHUuZXh0ZW5kRmxhdCh7cGxvdGluZm86bH0sZyx2KSl9cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpfSxvLnJ1bkZuPWZ1bmN0aW9uKHIpe2Zvcih2YXIgbixpLG8sbD10Ll9mdWxsRGF0YSxjPXQuX2Z1bGxMYXlvdXQuX2Jhc2VQbG90TW9kdWxlcyxmPVtdLGg9MDtoPGwubGVuZ3RoO2grKylmLnB1c2goaCk7ZnVuY3Rpb24gcCgpe2lmKHQuX2Z1bGxMYXlvdXQpZm9yKHZhciBlPTA7ZTxjLmxlbmd0aDtlKyspY1tlXS50cmFuc2l0aW9uQXhlcyYmY1tlXS50cmFuc2l0aW9uQXhlcyh0LHMsbixyKX1mdW5jdGlvbiBkKCl7aWYodC5fZnVsbExheW91dClmb3IodmFyIGU9MDtlPGMubGVuZ3RoO2UrKyljW2VdLnBsb3QodCxvLGkscil9cy5sZW5ndGgmJmUuYW5pbT8idHJhY2VzIGZpcnN0Ij09PWEub3JkZXJpbmc/KG49dS5leHRlbmRGbGF0KHt9LGEse2R1cmF0aW9uOjB9KSxvPWYsaT1hLHNldFRpbWVvdXQocCxhLmR1cmF0aW9uKSxkKCkpOihuPWEsbz1udWxsLGk9dS5leHRlbmRGbGF0KHt9LGEse2R1cmF0aW9uOjB9KSxzZXRUaW1lb3V0KGQsbi5kdXJhdGlvbikscCgpKTpzLmxlbmd0aD8obj1hLHAoKSk6ZS5hbmltJiYobz1mLGk9YSxkKCkpfSxJKHQsYSxvKX0sYi5kb0NhbGNkYXRhPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixpLGEsbz1wLmxpc3QodCksYz10Ll9mdWxsRGF0YSxmPXQuX2Z1bGxMYXlvdXQsZD1uZXcgQXJyYXkoYy5sZW5ndGgpLG09KHQuY2FsY2RhdGF8fFtdKS5zbGljZSgpO2Zvcih0LmNhbGNkYXRhPWQsZi5fbnVtQm94ZXM9MCxmLl9udW1WaW9saW5zPTAsZi5fdmlvbGluU2NhbGVHcm91cFN0YXRzPXt9LHQuX2htcGl4Y291bnQ9MCx0Ll9obWx1bWNvdW50PTAsZi5fcGllY29sb3JtYXA9e30sZi5fc3VuYnVyc3Rjb2xvcm1hcD17fSxmLl90cmVlbWFwY29sb3JtYXA9e30sZi5faWNpY2xlY29sb3JtYXA9e30sZi5fZnVubmVsYXJlYWNvbG9ybWFwPXt9LGk9MDtpPGMubGVuZ3RoO2krKylBcnJheS5pc0FycmF5KGUpJiYtMT09PWUuaW5kZXhPZihpKSYmKGRbaV09bVtpXSk7Zm9yKGk9MDtpPGMubGVuZ3RoO2krKykocj1jW2ldKS5fYXJyYXlBdHRycz1sLmZpbmRBcnJheUF0dHJpYnV0ZXMociksci5fZXh0cmVtZXM9e307dmFyIGc9Zi5fc3VicGxvdHMucG9sYXJ8fFtdO2ZvcihpPTA7aTxnLmxlbmd0aDtpKyspby5wdXNoKGZbZ1tpXV0ucmFkaWFsYXhpcyxmW2dbaV1dLmFuZ3VsYXJheGlzKTtmb3IodmFyIHYgaW4gZi5fY29sb3JBeGVzKXt2YXIgeT1mW3ZdOyExIT09eS5jYXV0byYmKGRlbGV0ZSB5LmNtaW4sZGVsZXRlIHkuY21heCl9dmFyIHg9ITE7ZnVuY3Rpb24gYihlKXtpZihyPWNbZV0sbj1yLl9tb2R1bGUsITA9PT1yLnZpc2libGUmJnIudHJhbnNmb3Jtcyl7aWYobiYmbi5jYWxjKXt2YXIgaT1uLmNhbGModCxyKTtpWzBdJiZpWzBdLnQmJmlbMF0udC5fc2NlbmUmJmRlbGV0ZSBpWzBdLnQuX3NjZW5lLmRpcnR5fWZvcihhPTA7YTxyLnRyYW5zZm9ybXMubGVuZ3RoO2ErKyl7dmFyIG89ci50cmFuc2Zvcm1zW2FdOyhuPV9bby50eXBlXSkmJm4uY2FsY1RyYW5zZm9ybSYmKHIuX2hhc0NhbGNUcmFuc2Zvcm09ITAseD0hMCxuLmNhbGNUcmFuc2Zvcm0odCxyLG8pKX19fWZ1bmN0aW9uIHcoZSxpKXtpZihyPWNbZV0sISEobj1yLl9tb2R1bGUpLmlzQ29udGFpbmVyPT09aSl7dmFyIG89W107aWYoITA9PT1yLnZpc2libGUmJjAhPT1yLl9sZW5ndGgpe2RlbGV0ZSByLl9pbmRleFRvUG9pbnRzO3ZhciBzPXIudHJhbnNmb3Jtc3x8W107Zm9yKGE9cy5sZW5ndGgtMTthPj0wO2EtLSlpZihzW2FdLmVuYWJsZWQpe3IuX2luZGV4VG9Qb2ludHM9c1thXS5faW5kZXhUb1BvaW50czticmVha31uJiZuLmNhbGMmJihvPW4uY2FsYyh0LHIpKX1BcnJheS5pc0FycmF5KG8pJiZvWzBdfHwobz1be3g6aCx5Omh9XSksb1swXS50fHwob1swXS50PXt9KSxvWzBdLnRyYWNlPXIsZFtlXT1vfX1mb3IoeihvLGMsZiksaT0wO2k8Yy5sZW5ndGg7aSsrKXcoaSwhMCk7Zm9yKGk9MDtpPGMubGVuZ3RoO2krKyliKGkpO2Zvcih4JiZ6KG8sYyxmKSxpPTA7aTxjLmxlbmd0aDtpKyspdyhpLCEwKTtmb3IoaT0wO2k8Yy5sZW5ndGg7aSsrKXcoaSwhMSk7RCh0KTt2YXIgVD1mdW5jdGlvbih0LGUpe3ZhciByLG4saSxhLG8sbD1bXTtmdW5jdGlvbiBjKHQscixuKXt2YXIgaT1yLl9pZC5jaGFyQXQoMCk7aWYoImhpc3RvZ3JhbTJkY29udG91ciI9PT10KXt2YXIgYT1yLl9jb3VudGVyQXhlc1swXSxvPXAuZ2V0RnJvbUlkKGUsYSkscz0ieCI9PT1pfHwieCI9PT1hJiYiY2F0ZWdvcnkiPT09by50eXBlLGw9InkiPT09aXx8InkiPT09YSYmImNhdGVnb3J5Ij09PW8udHlwZTtyZXR1cm4gZnVuY3Rpb24odCxlKXtyZXR1cm4gMD09PXR8fDA9PT1lfHxzJiZ0PT09bltlXS5sZW5ndGgtMXx8bCYmZT09PW4ubGVuZ3RoLTE/LTE6KCJ5Ij09PWk/ZTp0KS0xfX1yZXR1cm4gZnVuY3Rpb24odCxlKXtyZXR1cm4ieSI9PT1pP2U6dH19dmFyIGY9e21pbjpmdW5jdGlvbih0KXtyZXR1cm4gdS5hZ2dOdW1zKE1hdGgubWluLG51bGwsdCl9LG1heDpmdW5jdGlvbih0KXtyZXR1cm4gdS5hZ2dOdW1zKE1hdGgubWF4LG51bGwsdCl9LHN1bTpmdW5jdGlvbih0KXtyZXR1cm4gdS5hZ2dOdW1zKChmdW5jdGlvbih0LGUpe3JldHVybiB0K2V9KSxudWxsLHQpfSx0b3RhbDpmdW5jdGlvbih0KXtyZXR1cm4gdS5hZ2dOdW1zKChmdW5jdGlvbih0LGUpe3JldHVybiB0K2V9KSxudWxsLHQpfSxtZWFuOmZ1bmN0aW9uKHQpe3JldHVybiB1Lm1lYW4odCl9LG1lZGlhbjpmdW5jdGlvbih0KXtyZXR1cm4gdS5tZWRpYW4odCl9fTtmb3Iocj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgaD10W3JdO2lmKCJjYXRlZ29yeSI9PT1oLnR5cGUpe3ZhciBkPWguY2F0ZWdvcnlvcmRlci5tYXRjaChPKTtpZihkKXt2YXIgbT1kWzFdLGc9ZFsyXSx2PWguX2lkLmNoYXJBdCgwKSx5PSJ4Ij09PXYseD1bXTtmb3Iobj0wO248aC5fY2F0ZWdvcmllcy5sZW5ndGg7bisrKXgucHVzaChbaC5fY2F0ZWdvcmllc1tuXSxbXV0pO2ZvcihuPTA7bjxoLl90cmFjZUluZGljZXMubGVuZ3RoO24rKyl7dmFyIGI9aC5fdHJhY2VJbmRpY2VzW25dLF89ZS5fZnVsbERhdGFbYl07aWYoITA9PT1fLnZpc2libGUpe3ZhciB3PV8udHlwZTtzLnRyYWNlSXMoXywiaGlzdG9ncmFtIikmJihkZWxldGUgXy5feGF1dG9CaW5GaW5pc2hlZCxkZWxldGUgXy5feWF1dG9CaW5GaW5pc2hlZCk7dmFyIFQ9InNwbG9tIj09PXcsaz0ic2NhdHRlcmdsIj09PXcsQT1lLmNhbGNkYXRhW2JdO2ZvcihpPTA7aTxBLmxlbmd0aDtpKyspe3ZhciBNLFMsRT1BW2ldO2lmKFQpe3ZhciBMPV8uX2F4ZXNEaW1baC5faWRdO2lmKCF5KXt2YXIgQz1fLl9kaWFnW0xdWzBdO0MmJihoPWUuX2Z1bGxMYXlvdXRbcC5pZDJuYW1lKEMpXSl9dmFyIFA9RS50cmFjZS5kaW1lbnNpb25zW0xdLnZhbHVlcztmb3IoYT0wO2E8UC5sZW5ndGg7YSsrKWZvcihNPWguX2NhdGVnb3JpZXNNYXBbUFthXV0sbz0wO288RS50cmFjZS5kaW1lbnNpb25zLmxlbmd0aDtvKyspaWYobyE9PUwpe3ZhciBJPUUudHJhY2UuZGltZW5zaW9uc1tvXTt4W01dWzFdLnB1c2goSS52YWx1ZXNbYV0pfX1lbHNlIGlmKGspe2ZvcihhPTA7YTxFLnQueC5sZW5ndGg7YSsrKXk/KE09RS50LnhbYV0sUz1FLnQueVthXSk6KE09RS50LnlbYV0sUz1FLnQueFthXSkseFtNXVsxXS5wdXNoKFMpO0UudCYmRS50Ll9zY2VuZSYmZGVsZXRlIEUudC5fc2NlbmUuZGlydHl9ZWxzZSBpZihFLmhhc093blByb3BlcnR5KCJ6Iikpe1M9RS56O3ZhciB6PWMoXy50eXBlLGgsUyk7Zm9yKGE9MDthPFMubGVuZ3RoO2ErKylmb3Iobz0wO288U1thXS5sZW5ndGg7bysrKShNPXoobyxhKSkrMSYmeFtNXVsxXS5wdXNoKFNbYV1bb10pfWVsc2UgZm9yKHZvaWQgMD09PShNPUUucCkmJihNPUVbdl0pLHZvaWQgMD09PShTPUUucykmJihTPUUudiksdm9pZCAwPT09UyYmKFM9eT9FLnk6RS54KSxBcnJheS5pc0FycmF5KFMpfHwoUz12b2lkIDA9PT1TP1tdOltTXSksYT0wO2E8Uy5sZW5ndGg7YSsrKXhbTV1bMV0ucHVzaChTW2FdKX19fWguX2NhdGVnb3JpZXNWYWx1ZT14O3ZhciBEPVtdO2ZvcihuPTA7bjx4Lmxlbmd0aDtuKyspRC5wdXNoKFt4W25dWzBdLGZbbV0oeFtuXVsxXSldKTtELnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMV0tZVsxXX0pKSxoLl9jYXRlZ29yaWVzQWdncmVnYXRlZFZhbHVlPUQsaC5faW5pdGlhbENhdGVnb3JpZXM9RC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0WzBdfSkpLCJkZXNjZW5kaW5nIj09PWcmJmguX2luaXRpYWxDYXRlZ29yaWVzLnJldmVyc2UoKSxsPWwuY29uY2F0KGguc29ydEJ5SW5pdGlhbENhdGVnb3JpZXMoKSl9fX1yZXR1cm4gbH0obyx0KTtpZihULmxlbmd0aCl7Zm9yKGYuX251bUJveGVzPTAsZi5fbnVtVmlvbGlucz0wLGk9MDtpPFQubGVuZ3RoO2krKyl3KFRbaV0sITApO2ZvcihpPTA7aTxULmxlbmd0aDtpKyspdyhUW2ldLCExKTtEKHQpfXMuZ2V0Q29tcG9uZW50TWV0aG9kKCJmeCIsImNhbGMiKSh0KSxzLmdldENvbXBvbmVudE1ldGhvZCgiZXJyb3JiYXJzIiwiY2FsYyIpKHQpfTt2YXIgTz0vKHRvdGFsfHN1bXxtaW58bWF4fG1lYW58bWVkaWFuKSAoYXNjZW5kaW5nfGRlc2NlbmRpbmcpLztmdW5jdGlvbiB6KHQsZSxyKXt2YXIgbj17fTtmdW5jdGlvbiBpKHQpe3QuY2xlYXJDYWxjKCksIm11bHRpY2F0ZWdvcnkiPT09dC50eXBlJiZ0LnNldHVwTXVsdGlDYXRlZ29yeShlKSxuW3QuX2lkXT0xfXUuc2ltcGxlTWFwKHQsaSk7Zm9yKHZhciBhPXIuX2F4aXNNYXRjaEdyb3Vwc3x8W10sbz0wO288YS5sZW5ndGg7bysrKWZvcih2YXIgcyBpbiBhW29dKW5bc118fGkocltwLmlkMm5hbWUocyldKX1mdW5jdGlvbiBEKHQpe3ZhciBlLHIsbixpPXQuX2Z1bGxMYXlvdXQsYT1pLl92aXNpYmxlTW9kdWxlcyxvPXt9O2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspe3ZhciBzPWFbcl0sbD1zLmNyb3NzVHJhY2VDYWxjO2lmKGwpe3ZhciBjPXMuYmFzZVBsb3RNb2R1bGUubmFtZTtvW2NdP3UucHVzaFVuaXF1ZShvW2NdLGwpOm9bY109W2xdfX1mb3IobiBpbiBvKXt2YXIgZj1vW25dLGg9aS5fc3VicGxvdHNbbl07aWYoQXJyYXkuaXNBcnJheShoKSlmb3IoZT0wO2U8aC5sZW5ndGg7ZSsrKXt2YXIgcD1oW2VdLGQ9ImNhcnRlc2lhbiI9PT1uP2kuX3Bsb3RzW3BdOmlbcF07Zm9yKHI9MDtyPGYubGVuZ3RoO3IrKylmW3JdKHQsZCxwKX1lbHNlIGZvcihyPTA7cjxmLmxlbmd0aDtyKyspZltyXSh0KX19Yi5yZWhvdmVyPWZ1bmN0aW9uKHQpe3QuX2Z1bGxMYXlvdXQuX3JlaG92ZXImJnQuX2Z1bGxMYXlvdXQuX3JlaG92ZXIoKX0sYi5yZWRyYWc9ZnVuY3Rpb24odCl7dC5fZnVsbExheW91dC5fcmVkcmFnJiZ0Ll9mdWxsTGF5b3V0Ll9yZWRyYWcoKX0sYi5yZXNlbGVjdD1mdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0LHI9KHQubGF5b3V0fHx7fSkuc2VsZWN0aW9ucyxuPWUuX3ByZXZpb3VzU2VsZWN0aW9ucztlLl9wcmV2aW91c1NlbGVjdGlvbnM9cjt2YXIgaT1lLl9yZXNlbGVjdHx8SlNPTi5zdHJpbmdpZnkocikhPT1KU09OLnN0cmluZ2lmeShuKTtzLmdldENvbXBvbmVudE1ldGhvZCgic2VsZWN0aW9ucyIsInJlc2VsZWN0IikodCxpKX0sYi5nZW5lcmFsVXBkYXRlUGVyVHJhY2VNb2R1bGU9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGksYT1lLnRyYWNlSGFzaCxvPXt9O2ZvcihpPTA7aTxyLmxlbmd0aDtpKyspe3ZhciBzPXJbaV0sbD1zWzBdLnRyYWNlO2wudmlzaWJsZSYmKG9bbC50eXBlXT1vW2wudHlwZV18fFtdLG9bbC50eXBlXS5wdXNoKHMpKX1mb3IodmFyIGMgaW4gYSlpZighb1tjXSl7dmFyIGY9YVtjXVswXTtmWzBdLnRyYWNlLnZpc2libGU9ITEsb1tjXT1bZl19Zm9yKHZhciBoIGluIG8pe3ZhciBwPW9baF07cFswXVswXS50cmFjZS5fbW9kdWxlLnBsb3QodCxlLHUuZmlsdGVyVmlzaWJsZShwKSxuKX1lLnRyYWNlSGFzaD1vfSxiLnBsb3RCYXNlUGxvdD1mdW5jdGlvbih0LGUscixuLGkpe3ZhciBhPXMuZ2V0TW9kdWxlKHQpLG89dihlLmNhbGNkYXRhLGEpWzBdO2EucGxvdChlLG8sbixpKX0sYi5jbGVhbkJhc2VQbG90PWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGE9aS5faGFzJiZpLl9oYXModCksbz1yLl9oYXMmJnIuX2hhcyh0KTthJiYhbyYmaVsiXyIrdCsibGF5ZXIiXS5zZWxlY3RBbGwoImcudHJhY2UiKS5yZW1vdmUoKX19LHsiLi4vY29tcG9uZW50cy9jb2xvciI6MzY3LCIuLi9jb21wb25lbnRzL3NoYXBlcy9oYW5kbGVfb3V0bGluZSI6NDY4LCIuLi9jb25zdGFudHMvbnVtZXJpY2FsIjo0OTEsIi4uL2xpYiI6NTE1LCIuLi9wbG90X2FwaS9wbG90X3NjaGVtYSI6NTU0LCIuLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIjo1NTUsIi4uL3Bsb3RzL2dldF9kYXRhIjo2MDIsIi4uL3JlZ2lzdHJ5Ijo2NDcsIi4vYW5pbWF0aW9uX2F0dHJpYnV0ZXMiOjU2MCwiLi9hdHRyaWJ1dGVzIjo1NjIsIi4vY2FydGVzaWFuL2F4aXNfaWRzIjo1NzAsIi4vY29tbWFuZCI6NTkyLCIuL2ZvbnRfYXR0cmlidXRlcyI6NTk0LCIuL2ZyYW1lX2F0dHJpYnV0ZXMiOjU5NSwiLi9sYXlvdXRfYXR0cmlidXRlcyI6NjE5LCJAcGxvdGx5L2QzIjo1OCwiZDMtZm9ybWF0IjoxMTIsImQzLXRpbWUtZm9ybWF0IjoxMjAsImZhc3QtaXNudW1lcmljIjoxOTB9XSw2Mjk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXthdHRyOiJzdWJwbG90IixuYW1lOiJwb2xhciIsYXhpc05hbWVzOlsiYW5ndWxhcmF4aXMiLCJyYWRpYWxheGlzIl0sYXhpc05hbWUyZGF0YUFycmF5Onthbmd1bGFyYXhpczoidGhldGEiLHJhZGlhbGF4aXM6InIifSxsYXllck5hbWVzOlsiZHJhZ2xheWVyIiwicGxvdGJnIiwiYmFja3Bsb3QiLCJhbmd1bGFyLWdyaWQiLCJyYWRpYWwtZ3JpZCIsImZyb250cGxvdCIsImFuZ3VsYXItbGluZSIsInJhZGlhbC1saW5lIiwiYW5ndWxhci1heGlzIiwicmFkaWFsLWF4aXMiXSxyYWRpYWxEcmFnQm94U2l6ZTo1MCxhbmd1bGFyRHJhZ0JveFNpemU6MzAsY29ybmVyTGVuOjI1LGNvcm5lckhhbGZXaWR0aDoyLE1JTkRSQUc6OCxNSU5aT09NOjIwLE9GRkVER0U6MjB9fSx7fV0sNjMwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vbGliL3BvbHlnb24iKS50ZXN0ZXIsYT1uLmZpbmRJbmRleE9mTWluLG89bi5pc0FuZ2xlSW5zaWRlU2VjdG9yLHM9bi5hbmdsZURlbHRhLGw9bi5hbmdsZURpc3Q7ZnVuY3Rpb24gYyh0LGUscixuKXt2YXIgaSxhLG89blswXSxzPW5bMV0sbD1mKE1hdGguc2luKGUpLU1hdGguc2luKHQpKSxjPWYoTWF0aC5jb3MoZSktTWF0aC5jb3ModCkpLHU9TWF0aC50YW4ociksaD1mKDEvdSkscD1sL2MsZD1zLXAqbztyZXR1cm4gaD9sJiZjP2E9dSooaT1kLyh1LXApKTpjPyhpPXMqaCxhPXMpOihpPW8sYT1vKnUpOmwmJmM/KGk9MCxhPWQpOmM/KGk9MCxhPXMpOmk9YT1OYU4sW2ksYV19ZnVuY3Rpb24gdSh0LGUscixpKXtyZXR1cm4gbi5pc0Z1bGxDaXJjbGUoW2Uscl0pP2Z1bmN0aW9uKHQsZSl7dmFyIHIsbj1lLmxlbmd0aCxpPW5ldyBBcnJheShuKzEpO2ZvcihyPTA7cjxuO3IrKyl7dmFyIGE9ZVtyXTtpW3JdPVt0Kk1hdGguY29zKGEpLHQqTWF0aC5zaW4oYSldfXJldHVybiBpW3JdPWlbMF0uc2xpY2UoKSxpfSh0LGkpOmZ1bmN0aW9uKHQsZSxyLGkpe3ZhciBzLHUsZj1pLmxlbmd0aCxoPVtdO2Z1bmN0aW9uIHAoZSl7cmV0dXJuW3QqTWF0aC5jb3MoZSksdCpNYXRoLnNpbihlKV19ZnVuY3Rpb24gZCh0LGUscil7cmV0dXJuIGModCxlLHIscCh0KSl9ZnVuY3Rpb24gbSh0KXtyZXR1cm4gbi5tb2QodCxmKX1mdW5jdGlvbiBnKHQpe3JldHVybiBvKHQsW2Uscl0pfXZhciB2PWEoaSwoZnVuY3Rpb24odCl7cmV0dXJuIGcodCk/bCh0LGUpOjEvMH0pKSx5PWQoaVt2XSxpW20odi0xKV0sZSk7Zm9yKGgucHVzaCh5KSxzPXYsdT0wO3U8ZjtzKyssdSsrKXt2YXIgeD1pW20ocyldO2lmKCFnKHgpKWJyZWFrO2gucHVzaChwKHgpKX12YXIgYj1hKGksKGZ1bmN0aW9uKHQpe3JldHVybiBnKHQpP2wodCxyKToxLzB9KSksXz1kKGlbYl0saVttKGIrMSldLHIpO3JldHVybiBoLnB1c2goXyksaC5wdXNoKFswLDBdKSxoLnB1c2goaFswXS5zbGljZSgpKSxofSh0LGUscixpKX1mdW5jdGlvbiBmKHQpe3JldHVybiBNYXRoLmFicyh0KT4xZS0xMD90OjB9ZnVuY3Rpb24gaCh0LGUscil7ZT1lfHwwLHI9cnx8MDtmb3IodmFyIG49dC5sZW5ndGgsaT1uZXcgQXJyYXkobiksYT0wO2E8bjthKyspe3ZhciBvPXRbYV07aVthXT1bZStvWzBdLHItb1sxXV19cmV0dXJuIGl9ZS5leHBvcnRzPXtpc1B0SW5zaWRlUG9seWdvbjpmdW5jdGlvbih0LGUscixuLGEpe2lmKCFvKGUsbikpcmV0dXJuITE7dmFyIHMsbDtyWzBdPHJbMV0/KHM9clswXSxsPXJbMV0pOihzPXJbMV0sbD1yWzBdKTt2YXIgYz1pKHUocyxuWzBdLG5bMV0sYSkpLGY9aSh1KGwsblswXSxuWzFdLGEpKSxoPVt0Kk1hdGguY29zKGUpLHQqTWF0aC5zaW4oZSldO3JldHVybiBmLmNvbnRhaW5zKGgpJiYhYy5jb250YWlucyhoKX0sZmluZFBvbHlnb25PZmZzZXQ6ZnVuY3Rpb24odCxlLHIsbil7Zm9yKHZhciBpPTEvMCxhPTEvMCxvPXUodCxlLHIsbikscz0wO3M8by5sZW5ndGg7cysrKXt2YXIgbD1vW3NdO2k9TWF0aC5taW4oaSxsWzBdKSxhPU1hdGgubWluKGEsLWxbMV0pfXJldHVybltpLGFdfSxmaW5kRW5jbG9zaW5nVmVydGV4QW5nbGVzOmZ1bmN0aW9uKHQsZSl7dmFyIHI9YShlLChmdW5jdGlvbihlKXt2YXIgcj1zKGUsdCk7cmV0dXJuIHI+MD9yOjEvMH0pKSxpPW4ubW9kKHIrMSxlLmxlbmd0aCk7cmV0dXJuW2Vbcl0sZVtpXV19LGZpbmRJbnRlcnNlY3Rpb25YWTpjLGZpbmRYWWF0TGVuZ3RoOmZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPS1lKnIsYT1lKmUrMSxvPTIqKGUqaS1yKSxzPWkqaStyKnItdCp0LGw9TWF0aC5zcXJ0KG8qby00KmEqcyksYz0oLW8rbCkvKDIqYSksdT0oLW8tbCkvKDIqYSk7cmV0dXJuW1tjLGUqYytpK25dLFt1LGUqdStpK25dXX0sY2xhbXBUaW55OmYscGF0aFBvbHlnb246ZnVuY3Rpb24odCxlLHIsbixpLGEpe3JldHVybiJNIitoKHUodCxlLHIsbiksaSxhKS5qb2luKCJMIil9LHBhdGhQb2x5Z29uQW5udWx1czpmdW5jdGlvbih0LGUscixuLGksYSxvKXt2YXIgcyxsO3Q8ZT8ocz10LGw9ZSk6KHM9ZSxsPXQpO3ZhciBjPWgodShzLHIsbixpKSxhLG8pO3JldHVybiJNIitoKHUobCxyLG4saSksYSxvKS5yZXZlcnNlKCkuam9pbigiTCIpKyJNIitjLmpvaW4oIkwiKX19fSx7Ii4uLy4uL2xpYiI6NTE1LCIuLi8uLi9saWIvcG9seWdvbiI6NTI3fV0sNjMxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2dldF9kYXRhIikuZ2V0U3VicGxvdENhbGNEYXRhLGk9dCgiLi4vLi4vbGliIikuY291bnRlclJlZ2V4LGE9dCgiLi9wb2xhciIpLG89dCgiLi9jb25zdGFudHMiKSxzPW8uYXR0cixsPW8ubmFtZSxjPWkobCksdT17fTt1W3NdPXt2YWxUeXBlOiJzdWJwbG90aWQiLGRmbHQ6bCxlZGl0VHlwZToiY2FsYyJ9LGUuZXhwb3J0cz17YXR0cjpzLG5hbWU6bCxpZFJvb3Q6bCxpZFJlZ2V4OmMsYXR0clJlZ2V4OmMsYXR0cmlidXRlczp1LGxheW91dEF0dHJpYnV0ZXM6dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpLHN1cHBseUxheW91dERlZmF1bHRzOnQoIi4vbGF5b3V0X2RlZmF1bHRzIikscGxvdDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dC5fZnVsbExheW91dCxyPXQuY2FsY2RhdGEsaT1lLl9zdWJwbG90c1tsXSxvPTA7bzxpLmxlbmd0aDtvKyspe3ZhciBzPWlbb10sYz1uKHIsbCxzKSx1PWVbc10uX3N1YnBsb3Q7dXx8KHU9YSh0LHMpLGVbc10uX3N1YnBsb3Q9dSksdS5wbG90KGMsZSx0Ll9wcm9taXNlcyl9fSxjbGVhbjpmdW5jdGlvbih0LGUscixuKXtmb3IodmFyIGk9bi5fc3VicGxvdHNbbF18fFtdLGE9bi5faGFzJiZuLl9oYXMoImdsIiksbz1lLl9oYXMmJmUuX2hhcygiZ2wiKSxzPWEmJiFvLGM9MDtjPGkubGVuZ3RoO2MrKyl7dmFyIHU9aVtjXSxmPW5bdV0uX3N1YnBsb3Q7aWYoIWVbdV0mJmYpZm9yKHZhciBoIGluIGYuZnJhbWV3b3JrLnJlbW92ZSgpLGYubGF5ZXJzWyJyYWRpYWwtYXhpcy10aXRsZSJdLnJlbW92ZSgpLGYuY2xpcFBhdGhzKWYuY2xpcFBhdGhzW2hdLnJlbW92ZSgpO3MmJmYuX3NjZW5lJiYoZi5fc2NlbmUuZGVzdHJveSgpLGYuX3NjZW5lPW51bGwpfX0sdG9TVkc6dCgiLi4vY2FydGVzaWFuIikudG9TVkd9fSx7Ii4uLy4uL2xpYiI6NTE1LCIuLi9jYXJ0ZXNpYW4iOjU3OCwiLi4vZ2V0X2RhdGEiOjYwMiwiLi9jb25zdGFudHMiOjYyOSwiLi9sYXlvdXRfYXR0cmlidXRlcyI6NjMyLCIuL2xheW91dF9kZWZhdWx0cyI6NjMzLCIuL3BvbGFyIjo2MzR9XSw2MzI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIiksaT10KCIuLi9jYXJ0ZXNpYW4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxhPXQoIi4uL2RvbWFpbiIpLmF0dHJpYnV0ZXMsbz10KCIuLi8uLi9saWIiKS5leHRlbmRGbGF0LHM9dCgiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyIpLm92ZXJyaWRlQWxsLGw9cyh7Y29sb3I6aS5jb2xvcixzaG93bGluZTpvKHt9LGkuc2hvd2xpbmUse2RmbHQ6ITB9KSxsaW5lY29sb3I6aS5saW5lY29sb3IsbGluZXdpZHRoOmkubGluZXdpZHRoLHNob3dncmlkOm8oe30saS5zaG93Z3JpZCx7ZGZsdDohMH0pLGdyaWRjb2xvcjppLmdyaWRjb2xvcixncmlkd2lkdGg6aS5ncmlkd2lkdGgsZ3JpZGRhc2g6aS5ncmlkZGFzaH0sInBsb3QiLCJmcm9tLXJvb3QiKSxjPXMoe3RpY2ttb2RlOmkudGlja21vZGUsbnRpY2tzOmkubnRpY2tzLHRpY2swOmkudGljazAsZHRpY2s6aS5kdGljayx0aWNrdmFsczppLnRpY2t2YWxzLHRpY2t0ZXh0OmkudGlja3RleHQsdGlja3M6aS50aWNrcyx0aWNrbGVuOmkudGlja2xlbix0aWNrd2lkdGg6aS50aWNrd2lkdGgsdGlja2NvbG9yOmkudGlja2NvbG9yLHRpY2tsYWJlbHN0ZXA6aS50aWNrbGFiZWxzdGVwLHNob3d0aWNrbGFiZWxzOmkuc2hvd3RpY2tsYWJlbHMsc2hvd3RpY2twcmVmaXg6aS5zaG93dGlja3ByZWZpeCx0aWNrcHJlZml4OmkudGlja3ByZWZpeCxzaG93dGlja3N1ZmZpeDppLnNob3d0aWNrc3VmZml4LHRpY2tzdWZmaXg6aS50aWNrc3VmZml4LHNob3dleHBvbmVudDppLnNob3dleHBvbmVudCxleHBvbmVudGZvcm1hdDppLmV4cG9uZW50Zm9ybWF0LG1pbmV4cG9uZW50OmkubWluZXhwb25lbnQsc2VwYXJhdGV0aG91c2FuZHM6aS5zZXBhcmF0ZXRob3VzYW5kcyx0aWNrZm9udDppLnRpY2tmb250LHRpY2thbmdsZTppLnRpY2thbmdsZSx0aWNrZm9ybWF0OmkudGlja2Zvcm1hdCx0aWNrZm9ybWF0c3RvcHM6aS50aWNrZm9ybWF0c3RvcHMsbGF5ZXI6aS5sYXllcn0sInBsb3QiLCJmcm9tLXJvb3QiKSx1PXt2aXNpYmxlOm8oe30saS52aXNpYmxlLHtkZmx0OiEwfSksdHlwZTpvKHt9LGkudHlwZSx7dmFsdWVzOlsiLSIsImxpbmVhciIsImxvZyIsImRhdGUiLCJjYXRlZ29yeSJdfSksYXV0b3R5cGVudW1iZXJzOmkuYXV0b3R5cGVudW1iZXJzLGF1dG9yYW5nZTpvKHt9LGkuYXV0b3JhbmdlLHtlZGl0VHlwZToicGxvdCJ9KSxyYW5nZW1vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInRvemVybyIsIm5vbm5lZ2F0aXZlIiwibm9ybWFsIl0sZGZsdDoidG96ZXJvIixlZGl0VHlwZToiY2FsYyJ9LHJhbmdlOm8oe30saS5yYW5nZSx7aXRlbXM6W3t2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJwbG90IixpbXBsaWVkRWRpdHM6eyJeYXV0b3JhbmdlIjohMX19LHt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJwbG90IixpbXBsaWVkRWRpdHM6eyJeYXV0b3JhbmdlIjohMX19XSxlZGl0VHlwZToicGxvdCJ9KSxjYXRlZ29yeW9yZGVyOmkuY2F0ZWdvcnlvcmRlcixjYXRlZ29yeWFycmF5OmkuY2F0ZWdvcnlhcnJheSxhbmdsZTp7dmFsVHlwZToiYW5nbGUiLGVkaXRUeXBlOiJwbG90In0sc2lkZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiY2xvY2t3aXNlIiwiY291bnRlcmNsb2Nrd2lzZSJdLGRmbHQ6ImNsb2Nrd2lzZSIsZWRpdFR5cGU6InBsb3QifSx0aXRsZTp7dGV4dDpvKHt9LGkudGl0bGUudGV4dCx7ZWRpdFR5cGU6InBsb3QiLGRmbHQ6IiJ9KSxmb250Om8oe30saS50aXRsZS5mb250LHtlZGl0VHlwZToicGxvdCJ9KSxlZGl0VHlwZToicGxvdCJ9LGhvdmVyZm9ybWF0OmkuaG92ZXJmb3JtYXQsdWlyZXZpc2lvbjp7dmFsVHlwZToiYW55IixlZGl0VHlwZToibm9uZSJ9LGVkaXRUeXBlOiJjYWxjIixfZGVwcmVjYXRlZDp7dGl0bGU6aS5fZGVwcmVjYXRlZC50aXRsZSx0aXRsZWZvbnQ6aS5fZGVwcmVjYXRlZC50aXRsZWZvbnR9fTtvKHUsbCxjKTt2YXIgZj17dmlzaWJsZTpvKHt9LGkudmlzaWJsZSx7ZGZsdDohMH0pLHR5cGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbIi0iLCJsaW5lYXIiLCJjYXRlZ29yeSJdLGRmbHQ6Ii0iLGVkaXRUeXBlOiJjYWxjIixfbm9UZW1wbGF0aW5nOiEwfSxhdXRvdHlwZW51bWJlcnM6aS5hdXRvdHlwZW51bWJlcnMsY2F0ZWdvcnlvcmRlcjppLmNhdGVnb3J5b3JkZXIsY2F0ZWdvcnlhcnJheTppLmNhdGVnb3J5YXJyYXksdGhldGF1bml0Ont2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJyYWRpYW5zIiwiZGVncmVlcyJdLGRmbHQ6ImRlZ3JlZXMiLGVkaXRUeXBlOiJjYWxjIn0scGVyaW9kOnt2YWxUeXBlOiJudW1iZXIiLGVkaXRUeXBlOiJjYWxjIixtaW46MH0sZGlyZWN0aW9uOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJjb3VudGVyY2xvY2t3aXNlIiwiY2xvY2t3aXNlIl0sZGZsdDoiY291bnRlcmNsb2Nrd2lzZSIsZWRpdFR5cGU6ImNhbGMifSxyb3RhdGlvbjp7dmFsVHlwZToiYW5nbGUiLGVkaXRUeXBlOiJjYWxjIn0saG92ZXJmb3JtYXQ6aS5ob3ZlcmZvcm1hdCx1aXJldmlzaW9uOnt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJub25lIn0sZWRpdFR5cGU6ImNhbGMifTtvKGYsbCxjKSxlLmV4cG9ydHM9e2RvbWFpbjphKHtuYW1lOiJwb2xhciIsZWRpdFR5cGU6InBsb3QifSksc2VjdG9yOnt2YWxUeXBlOiJpbmZvX2FycmF5IixpdGVtczpbe3ZhbFR5cGU6Im51bWJlciIsZWRpdFR5cGU6InBsb3QifSx7dmFsVHlwZToibnVtYmVyIixlZGl0VHlwZToicGxvdCJ9XSxkZmx0OlswLDM2MF0sZWRpdFR5cGU6InBsb3QifSxob2xlOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6MCxlZGl0VHlwZToicGxvdCJ9LGJnY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToicGxvdCIsZGZsdDpuLmJhY2tncm91bmR9LHJhZGlhbGF4aXM6dSxhbmd1bGFyYXhpczpmLGdyaWRzaGFwZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiY2lyY3VsYXIiLCJsaW5lYXIiXSxkZmx0OiJjaXJjdWxhciIsZWRpdFR5cGU6InBsb3QifSx1aXJldmlzaW9uOnt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJub25lIn0sZWRpdFR5cGU6ImNhbGMifX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yL2F0dHJpYnV0ZXMiOjM2NiwiLi4vLi4vbGliIjo1MTUsIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiOjU0OCwiLi4vY2FydGVzaWFuL2xheW91dF9hdHRyaWJ1dGVzIjo1NzksIi4uL2RvbWFpbiI6NTkzfV0sNjMzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLGE9dCgiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpLG89dCgiLi4vc3VicGxvdF9kZWZhdWx0cyIpLHM9dCgiLi4vZ2V0X2RhdGEiKS5nZXRTdWJwbG90RGF0YSxsPXQoIi4uL2NhcnRlc2lhbi90aWNrX3ZhbHVlX2RlZmF1bHRzIiksYz10KCIuLi9jYXJ0ZXNpYW4vdGlja19tYXJrX2RlZmF1bHRzIiksdT10KCIuLi9jYXJ0ZXNpYW4vdGlja19sYWJlbF9kZWZhdWx0cyIpLGY9dCgiLi4vY2FydGVzaWFuL3ByZWZpeF9zdWZmaXhfZGVmYXVsdHMiKSxoPXQoIi4uL2NhcnRlc2lhbi9jYXRlZ29yeV9vcmRlcl9kZWZhdWx0cyIpLHA9dCgiLi4vY2FydGVzaWFuL2xpbmVfZ3JpZF9kZWZhdWx0cyIpLGQ9dCgiLi4vY2FydGVzaWFuL2F4aXNfYXV0b3R5cGUiKSxtPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxnPXQoIi4vc2V0X2NvbnZlcnQiKSx2PXQoIi4vY29uc3RhbnRzIikseT12LmF4aXNOYW1lcztmdW5jdGlvbiB4KHQsZSxyLG8pe3ZhciBkPXIoImJnY29sb3IiKTtvLmJnQ29sb3I9aS5jb21iaW5lKGQsby5wYXBlcl9iZ2NvbG9yKTt2YXIgeD1yKCJzZWN0b3IiKTtyKCJob2xlIik7dmFyIF8sdz1zKG8uZnVsbERhdGEsdi5uYW1lLG8uaWQpLFQ9by5sYXlvdXRPdXQ7ZnVuY3Rpb24gayh0LGUpe3JldHVybiByKF8rIi4iK3QsZSl9Zm9yKHZhciBBPTA7QTx5Lmxlbmd0aDtBKyspe189eVtBXSxuLmlzUGxhaW5PYmplY3QodFtfXSl8fCh0W19dPXt9KTt2YXIgTT10W19dLFM9YS5uZXdDb250YWluZXIoZSxfKTtTLl9pZD1TLl9uYW1lPV8sUy5fYXR0cj1vLmlkKyIuIitfLFMuX3RyYWNlSW5kaWNlcz13Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuX2V4cGFuZGVkSW5kZXh9KSk7dmFyIEU9di5heGlzTmFtZTJkYXRhQXJyYXlbX10sTD1iKE0sUyxrLHcsRSxvKTtoKE0sUyxrLHtheERhdGE6dyxkYXRhQXR0cjpFfSk7dmFyIEM9aygidmlzaWJsZSIpO3N3aXRjaChnKFMsZSxUKSxrKCJ1aXJldmlzaW9uIixlLnVpcmV2aXNpb24pLFMuX209MSxfKXtjYXNlInJhZGlhbGF4aXMiOnZhciBQPWsoImF1dG9yYW5nZSIsIVMuaXNWYWxpZFJhbmdlKE0ucmFuZ2UpKTtNLmF1dG9yYW5nZT1QLCFQfHwibGluZWFyIiE9PUwmJiItIiE9PUx8fGsoInJhbmdlbW9kZSIpLCJyZXZlcnNlZCI9PT1QJiYoUy5fbT0tMSksaygicmFuZ2UiKSxTLmNsZWFuUmFuZ2UoInJhbmdlIix7ZGZsdFJhbmdlOlswLDFdfSk7YnJlYWs7Y2FzZSJhbmd1bGFyYXhpcyI6aWYoImRhdGUiPT09TCl7bi5sb2coIlBvbGFyIHBsb3RzIGRvIG5vdCBzdXBwb3J0IGRhdGUgYW5ndWxhciBheGVzIHlldC4iKTtmb3IodmFyIEk9MDtJPHcubGVuZ3RoO0krKyl3W0ldLnZpc2libGU9ITE7TD1NLnR5cGU9Uy50eXBlPSJsaW5lYXIifWsoImxpbmVhciI9PT1MPyJ0aGV0YXVuaXQiOiJwZXJpb2QiKTt2YXIgTz1rKCJkaXJlY3Rpb24iKTtrKCJyb3RhdGlvbiIse2NvdW50ZXJjbG9ja3dpc2U6MCxjbG9ja3dpc2U6OTB9W09dKX1pZihmKE0sUyxrLFMudHlwZSx7dGlja1N1ZmZpeERmbHQ6ImRlZ3JlZXMiPT09Uy50aGV0YXVuaXQ/Ilx4YjAiOnZvaWQgMH0pLEMpe3ZhciB6LEQsUixGLEI9by5mb250fHx7fTtEPSh6PWsoImNvbG9yIikpPT09TS5jb2xvcj96OkIuY29sb3IsUj1CLnNpemUsRj1CLmZhbWlseSxsKE0sUyxrLFMudHlwZSksdShNLFMsayxTLnR5cGUse2ZvbnQ6e2NvbG9yOkQsc2l6ZTpSLGZhbWlseTpGfX0pLGMoTSxTLGsse291dGVyVGlja3M6ITB9KSxwKE0sUyxrLHtkZmx0Q29sb3I6eixiZ0NvbG9yOm8uYmdDb2xvcixibGVuZDo2MCxzaG93TGluZTohMCxzaG93R3JpZDohMCxub1plcm9MaW5lOiEwLGF0dHJpYnV0ZXM6bVtfXX0pLGsoImxheWVyIiksInJhZGlhbGF4aXMiPT09XyYmKGsoInNpZGUiKSxrKCJhbmdsZSIseFswXSksaygidGl0bGUudGV4dCIpLG4uY29lcmNlRm9udChrLCJ0aXRsZS5mb250Iix7Y29sb3I6RCxzaXplOm4uYmlnRm9udChSKSxmYW1pbHk6Rn0pKX0iY2F0ZWdvcnkiIT09TCYmaygiaG92ZXJmb3JtYXQiKSxTLl9pbnB1dD1NfSJjYXRlZ29yeSI9PT1lLmFuZ3VsYXJheGlzLnR5cGUmJnIoImdyaWRzaGFwZSIpfWZ1bmN0aW9uIGIodCxlLHIsbixpLGEpe3ZhciBvPXIoImF1dG90eXBlbnVtYmVycyIsYS5hdXRvdHlwZW51bWJlcnNEZmx0KTtpZigiLSI9PT1yKCJ0eXBlIikpe2Zvcih2YXIgcyxsPTA7bDxuLmxlbmd0aDtsKyspaWYobltsXS52aXNpYmxlKXtzPW5bbF07YnJlYWt9cyYmc1tpXSYmKGUudHlwZT1kKHNbaV0sImdyZWdvcmlhbiIse25vTXVsdGlDYXRlZ29yeTohMCxhdXRvdHlwZW51bWJlcnM6b30pKSwiLSI9PT1lLnR5cGU/ZS50eXBlPSJsaW5lYXIiOnQudHlwZT1lLnR5cGV9cmV0dXJuIGUudHlwZX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe28odCxlLHIse3R5cGU6di5uYW1lLGF0dHJpYnV0ZXM6bSxoYW5kbGVEZWZhdWx0czp4LGZvbnQ6ZS5mb250LGF1dG90eXBlbnVtYmVyc0RmbHQ6ZS5hdXRvdHlwZW51bWJlcnMscGFwZXJfYmdjb2xvcjplLnBhcGVyX2JnY29sb3IsZnVsbERhdGE6cixsYXlvdXRPdXQ6ZX0pfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjozNjcsIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIjo1NTUsIi4uL2NhcnRlc2lhbi9heGlzX2F1dG90eXBlIjo1NjcsIi4uL2NhcnRlc2lhbi9jYXRlZ29yeV9vcmRlcl9kZWZhdWx0cyI6NTcxLCIuLi9jYXJ0ZXNpYW4vbGluZV9ncmlkX2RlZmF1bHRzIjo1ODEsIi4uL2NhcnRlc2lhbi9wcmVmaXhfc3VmZml4X2RlZmF1bHRzIjo1ODMsIi4uL2NhcnRlc2lhbi90aWNrX2xhYmVsX2RlZmF1bHRzIjo1ODcsIi4uL2NhcnRlc2lhbi90aWNrX21hcmtfZGVmYXVsdHMiOjU4OCwiLi4vY2FydGVzaWFuL3RpY2tfdmFsdWVfZGVmYXVsdHMiOjU4OSwiLi4vZ2V0X2RhdGEiOjYwMiwiLi4vc3VicGxvdF9kZWZhdWx0cyI6NjQxLCIuL2NvbnN0YW50cyI6NjI5LCIuL2xheW91dF9hdHRyaWJ1dGVzIjo2MzIsIi4vc2V0X2NvbnZlcnQiOjYzNX1dLDYzNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCJ0aW55Y29sb3IyIiksYT10KCIuLi8uLi9yZWdpc3RyeSIpLG89dCgiLi4vLi4vbGliIikscz1vLnN0clJvdGF0ZSxsPW8uc3RyVHJhbnNsYXRlLGM9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLHU9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIiksZj10KCIuLi9wbG90cyIpLGg9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxwPXQoIi4uL2NhcnRlc2lhbi9zZXRfY29udmVydCIpLGQ9dCgiLi9zZXRfY29udmVydCIpLG09dCgiLi4vY2FydGVzaWFuL2F1dG9yYW5nZSIpLmRvQXV0b1JhbmdlLGc9dCgiLi4vY2FydGVzaWFuL2RyYWdib3giKSx2PXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhZ2VsZW1lbnQiKSx5PXQoIi4uLy4uL2NvbXBvbmVudHMvZngiKSx4PXQoIi4uLy4uL2NvbXBvbmVudHMvdGl0bGVzIiksYj10KCIuLi8uLi9jb21wb25lbnRzL3NlbGVjdGlvbnMiKS5wcmVwU2VsZWN0LF89dCgiLi4vLi4vY29tcG9uZW50cy9zZWxlY3Rpb25zIikuc2VsZWN0T25DbGljayx3PXQoIi4uLy4uL2NvbXBvbmVudHMvc2VsZWN0aW9ucyIpLmNsZWFyT3V0bGluZSxUPXQoIi4uLy4uL2xpYi9zZXRjdXJzb3IiKSxrPXQoIi4uLy4uL2xpYi9jbGVhcl9nbF9jYW52YXNlcyIpLEE9dCgiLi4vLi4vcGxvdF9hcGkvc3Vicm91dGluZXMiKS5yZWRyYXdSZWdsVHJhY2VzLE09dCgiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCIpLk1JRF9TSElGVCxTPXQoIi4vY29uc3RhbnRzIiksRT10KCIuL2hlbHBlcnMiKSxMPXQoIi4uL3NtaXRoL2hlbHBlcnMiKSxDPUwuc21pdGgsUD1MLnJlYWN0YW5jZUFyYyxJPUwucmVzaXN0YW5jZUFyYyxPPUwuc21pdGhUcmFuc2Zvcm0sej1vLl8sRD1vLm1vZCxSPW8uZGVnMnJhZCxGPW8ucmFkMmRlZztmdW5jdGlvbiBCKHQsZSxyKXt0aGlzLmlzU21pdGg9cnx8ITEsdGhpcy5pZD1lLHRoaXMuZ2Q9dCx0aGlzLl9oYXNDbGlwT25BeGlzRmFsc2U9bnVsbCx0aGlzLnZhbmdsZXM9bnVsbCx0aGlzLnJhZGlhbEF4aXNBbmdsZT1udWxsLHRoaXMudHJhY2VIYXNoPXt9LHRoaXMubGF5ZXJzPXt9LHRoaXMuY2xpcFBhdGhzPXt9LHRoaXMuY2xpcElkcz17fSx0aGlzLnZpZXdJbml0aWFsPXt9O3ZhciBuPXQuX2Z1bGxMYXlvdXQsaT0iY2xpcCIrbi5fdWlkK2U7dGhpcy5jbGlwSWRzLmZvclRyYWNlcz1pKyItZm9yLXRyYWNlcyIsdGhpcy5jbGlwUGF0aHMuZm9yVHJhY2VzPW4uX2NsaXBzLmFwcGVuZCgiY2xpcFBhdGgiKS5hdHRyKCJpZCIsdGhpcy5jbGlwSWRzLmZvclRyYWNlcyksdGhpcy5jbGlwUGF0aHMuZm9yVHJhY2VzLmFwcGVuZCgicGF0aCIpLHRoaXMuZnJhbWV3b3JrPW5bIl8iKyhyPyJzbWl0aCI6InBvbGFyIikrImxheWVyIl0uYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLGUpLHRoaXMuZ2V0SG9sZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pc1NtaXRoPzA6dC5ob2xlfSx0aGlzLmdldFNlY3Rvcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pc1NtaXRoP1swLDM2MF06dC5zZWN0b3J9LHRoaXMuZ2V0UmFkaWFsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmlzU21pdGg/dC5yZWFsYXhpczp0LnJhZGlhbGF4aXN9LHRoaXMuZ2V0QW5ndWxhcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pc1NtaXRoP3QuaW1hZ2luYXJ5YXhpczp0LmFuZ3VsYXJheGlzfSxyfHwodGhpcy5yYWRpYWxUaWNrTGF5b3V0PW51bGwsdGhpcy5hbmd1bGFyVGlja0xheW91dD1udWxsKX12YXIgTj1CLnByb3RvdHlwZTtmdW5jdGlvbiBqKHQpe3ZhciBlPXQudGlja3MrU3RyaW5nKHQudGlja2xlbikrU3RyaW5nKHQuc2hvd3RpY2tsYWJlbHMpO3JldHVybiJzaWRlImluIHQmJihlKz10LnNpZGUpLGV9ZnVuY3Rpb24gVSh0LGUpe3JldHVybiBlW28uZmluZEluZGV4T2ZNaW4oZSwoZnVuY3Rpb24oZSl7cmV0dXJuIG8uYW5nbGVEaXN0KHQsZSl9KSldfWZ1bmN0aW9uIFYodCxlLHIpe3JldHVybiBlPyh0LmF0dHIoImRpc3BsYXkiLG51bGwpLHQuYXR0cihyKSk6dCYmdC5hdHRyKCJkaXNwbGF5Iiwibm9uZSIpLHR9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gbmV3IEIodCxlLHIpfSxOLnBsb3Q9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9ZVt0aGlzLmlkXSxuPSExLGk9MDtpPHQubGVuZ3RoO2krKyl7aWYoITE9PT10W2ldWzBdLnRyYWNlLmNsaXBvbmF4aXMpe249ITA7YnJlYWt9fXRoaXMuX2hhc0NsaXBPbkF4aXNGYWxzZT1uLHRoaXMudXBkYXRlTGF5ZXJzKGUsciksdGhpcy51cGRhdGVMYXlvdXQoZSxyKSxmLmdlbmVyYWxVcGRhdGVQZXJUcmFjZU1vZHVsZSh0aGlzLmdkLHRoaXMsdCxyKSx0aGlzLnVwZGF0ZUZ4KGUsciksdGhpcy5pc1NtaXRoJiYoZGVsZXRlIHIucmVhbGF4aXMucmFuZ2UsZGVsZXRlIHIuaW1hZ2luYXJ5YXhpcy5yYW5nZSl9LE4udXBkYXRlTGF5ZXJzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5pc1NtaXRoLGk9dGhpcy5sYXllcnMsYT10aGlzLmdldFJhZGlhbChlKSxvPXRoaXMuZ2V0QW5ndWxhcihlKSxzPVMubGF5ZXJOYW1lcyxsPXMuaW5kZXhPZigiZnJvbnRwbG90IiksYz1zLnNsaWNlKDAsbCksdT0iYmVsb3cgdHJhY2VzIj09PW8ubGF5ZXIsZj0iYmVsb3cgdHJhY2VzIj09PWEubGF5ZXI7dSYmYy5wdXNoKCJhbmd1bGFyLWxpbmUiKSxmJiZjLnB1c2goInJhZGlhbC1saW5lIiksdSYmYy5wdXNoKCJhbmd1bGFyLWF4aXMiKSxmJiZjLnB1c2goInJhZGlhbC1heGlzIiksYy5wdXNoKCJmcm9udHBsb3QiKSx1fHxjLnB1c2goImFuZ3VsYXItbGluZSIpLGZ8fGMucHVzaCgicmFkaWFsLWxpbmUiKSx1fHxjLnB1c2goImFuZ3VsYXItYXhpcyIpLGZ8fGMucHVzaCgicmFkaWFsLWF4aXMiKTt2YXIgaD0ocj8ic21pdGgiOiJwb2xhciIpKyJzdWJsYXllciIscD10aGlzLmZyYW1ld29yay5zZWxlY3RBbGwoIi4iK2gpLmRhdGEoYyxTdHJpbmcpO3AuZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsKGZ1bmN0aW9uKHQpe3JldHVybiBoKyIgIit0fSkpLmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPWlbdF09bi5zZWxlY3QodGhpcyk7c3dpdGNoKHQpe2Nhc2UiZnJvbnRwbG90IjpyfHxlLmFwcGVuZCgiZyIpLmNsYXNzZWQoImJhcmxheWVyIiwhMCksZS5hcHBlbmQoImciKS5jbGFzc2VkKCJzY2F0dGVybGF5ZXIiLCEwKTticmVhaztjYXNlImJhY2twbG90IjplLmFwcGVuZCgiZyIpLmNsYXNzZWQoIm1hcGxheWVyIiwhMCk7YnJlYWs7Y2FzZSJwbG90YmciOmkuYmc9ZS5hcHBlbmQoInBhdGgiKTticmVhaztjYXNlInJhZGlhbC1ncmlkIjpjYXNlImFuZ3VsYXItZ3JpZCI6ZS5zdHlsZSgiZmlsbCIsIm5vbmUiKTticmVhaztjYXNlInJhZGlhbC1saW5lIjplLmFwcGVuZCgibGluZSIpLnN0eWxlKCJmaWxsIiwibm9uZSIpO2JyZWFrO2Nhc2UiYW5ndWxhci1saW5lIjplLmFwcGVuZCgicGF0aCIpLnN0eWxlKCJmaWxsIiwibm9uZSIpfX0pKSxwLm9yZGVyKCl9LE4udXBkYXRlTGF5b3V0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5sYXllcnMsbj10Ll9zaXplLGk9dGhpcy5nZXRSYWRpYWwoZSksYT10aGlzLmdldEFuZ3VsYXIoZSksbz1lLmRvbWFpbi54LHM9ZS5kb21haW4ueTt0aGlzLnhPZmZzZXQ9bi5sK24udypvWzBdLHRoaXMueU9mZnNldD1uLnQrbi5oKigxLXNbMV0pO3ZhciBmPXRoaXMueExlbmd0aD1uLncqKG9bMV0tb1swXSksaD10aGlzLnlMZW5ndGg9bi5oKihzWzFdLXNbMF0pLHA9dGhpcy5nZXRTZWN0b3IoZSk7dGhpcy5zZWN0b3JJblJhZD1wLm1hcChSKTt2YXIgZCxtLGcsdix5LHg9dGhpcy5zZWN0b3JCQm94PWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixpLGE9dFswXSxvPXRbMV0tYSxzPUQoYSwzNjApLGw9cytvLGM9TWF0aC5jb3MoUihzKSksdT1NYXRoLnNpbihSKHMpKSxmPU1hdGguY29zKFIobCkpLGg9TWF0aC5zaW4oUihsKSk7aT1zPD05MCYmbD49OTB8fHM+OTAmJmw+PTQ1MD8xOnU8PTAmJmg8PTA/MDpNYXRoLm1heCh1LGgpO2U9czw9MTgwJiZsPj0xODB8fHM+MTgwJiZsPj01NDA/LTE6Yz49MCYmZj49MD8wOk1hdGgubWluKGMsZik7cj1zPD0yNzAmJmw+PTI3MHx8cz4yNzAmJmw+PTYzMD8tMTp1Pj0wJiZoPj0wPzA6TWF0aC5taW4odSxoKTtuPWw+PTM2MD8xOmM8PTAmJmY8PTA/MDpNYXRoLm1heChjLGYpO3JldHVybltlLHIsbixpXX0ocCksYj14WzJdLXhbMF0sXz14WzNdLXhbMV0sdz1oL2YsVD1NYXRoLmFicyhfL2IpO3c+VD8oZD1mLHk9KGgtKG09ZipUKSkvbi5oLzIsZz1bb1swXSxvWzFdXSx2PVtzWzBdK3ksc1sxXS15XSk6KG09aCx5PShmLShkPWgvVCkpL24udy8yLGc9W29bMF0reSxvWzFdLXldLHY9W3NbMF0sc1sxXV0pLHRoaXMueExlbmd0aDI9ZCx0aGlzLnlMZW5ndGgyPW0sdGhpcy54RG9tYWluMj1nLHRoaXMueURvbWFpbjI9djt2YXIgayxBPXRoaXMueE9mZnNldDI9bi5sK24udypnWzBdLE09dGhpcy55T2Zmc2V0Mj1uLnQrbi5oKigxLXZbMV0pLFM9dGhpcy5yYWRpdXM9ZC9iLEU9dGhpcy5pbm5lclJhZGl1cz10aGlzLmdldEhvbGUoZSkqUyxMPXRoaXMuY3g9QS1TKnhbMF0sQz10aGlzLmN5PU0rUyp4WzNdLFA9dGhpcy5jeHg9TC1BLEk9dGhpcy5jeXk9Qy1NLE89aS5zaWRlOyJjb3VudGVyY2xvY2t3aXNlIj09PU8/KGs9TyxPPSJ0b3AiKToiY2xvY2t3aXNlIj09PU8mJihrPU8sTz0iYm90dG9tIiksdGhpcy5yYWRpYWxBeGlzPXRoaXMubW9ja0F4aXModCxlLGkse19pZDoieCIsc2lkZTpPLF90cnVlU2lkZTprLGRvbWFpbjpbRS9uLncsUy9uLnddfSksdGhpcy5hbmd1bGFyQXhpcz10aGlzLm1vY2tBeGlzKHQsZSxhLHtzaWRlOiJyaWdodCIsZG9tYWluOlswLE1hdGguUEldLGF1dG9yYW5nZTohMX0pLHRoaXMuZG9BdXRvUmFuZ2UodCxlKSx0aGlzLnVwZGF0ZUFuZ3VsYXJBeGlzKHQsZSksdGhpcy51cGRhdGVSYWRpYWxBeGlzKHQsZSksdGhpcy51cGRhdGVSYWRpYWxBeGlzVGl0bGUodCxlKSx0aGlzLnhheGlzPXRoaXMubW9ja0NhcnRlc2lhbkF4aXModCxlLHtfaWQ6IngiLGRvbWFpbjpnfSksdGhpcy55YXhpcz10aGlzLm1vY2tDYXJ0ZXNpYW5BeGlzKHQsZSx7X2lkOiJ5Iixkb21haW46dn0pO3ZhciB6PXRoaXMucGF0aFN1YnBsb3QoKTt0aGlzLmNsaXBQYXRocy5mb3JUcmFjZXMuc2VsZWN0KCJwYXRoIikuYXR0cigiZCIseikuYXR0cigidHJhbnNmb3JtIixsKFAsSSkpLHIuZnJvbnRwbG90LmF0dHIoInRyYW5zZm9ybSIsbChBLE0pKS5jYWxsKHUuc2V0Q2xpcFVybCx0aGlzLl9oYXNDbGlwT25BeGlzRmFsc2U/bnVsbDp0aGlzLmNsaXBJZHMuZm9yVHJhY2VzLHRoaXMuZ2QpLHIuYmcuYXR0cigiZCIseikuYXR0cigidHJhbnNmb3JtIixsKEwsQykpLmNhbGwoYy5maWxsLGUuYmdjb2xvcil9LE4ubW9ja0F4aXM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9by5leHRlbmRGbGF0KHt9LHIsbik7cmV0dXJuIGQoaSxlLHQpLGl9LE4ubW9ja0NhcnRlc2lhbkF4aXM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMsaT1uLmlzU21pdGgsYT1yLl9pZCxzPW8uZXh0ZW5kRmxhdCh7dHlwZToibGluZWFyIn0scik7cChzLHQpO3ZhciBsPXt4OlswLDJdLHk6WzEsM119O3JldHVybiBzLnNldFJhbmdlPWZ1bmN0aW9uKCl7dmFyIHQ9bi5zZWN0b3JCQm94LHI9bFthXSxpPW4ucmFkaWFsQXhpcy5fcmwsbz0oaVsxXS1pWzBdKS8oMS1uLmdldEhvbGUoZSkpO3MucmFuZ2U9W3RbclswXV0qbyx0W3JbMV1dKm9dfSxzLmlzUHRXaXRoaW5SYW5nZT0ieCIhPT1hfHxpP2Z1bmN0aW9uKCl7cmV0dXJuITB9OmZ1bmN0aW9uKHQpe3JldHVybiBuLmlzUHRJbnNpZGUodCl9LHMuc2V0UmFuZ2UoKSxzLnNldFNjYWxlKCksc30sTi5kb0F1dG9SYW5nZT1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuZ2Qsbj10aGlzLnJhZGlhbEF4aXMsaT10aGlzLmdldFJhZGlhbChlKTttKHIsbik7dmFyIGE9bi5yYW5nZTtpLnJhbmdlPWEuc2xpY2UoKSxpLl9pbnB1dC5yYW5nZT1hLnNsaWNlKCksbi5fcmw9W24ucjJsKGFbMF0sbnVsbCwiZ3JlZ29yaWFuIiksbi5yMmwoYVsxXSxudWxsLCJncmVnb3JpYW4iKV19LE4udXBkYXRlUmFkaWFsQXhpcz1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMsbj1yLmdkLGk9ci5sYXllcnMsYT1yLnJhZGl1cyx1PXIuaW5uZXJSYWRpdXMsZj1yLmN4LHA9ci5jeSxkPXIuZ2V0UmFkaWFsKGUpLG09RChyLmdldFNlY3RvcihlKVswXSwzNjApLGc9ci5yYWRpYWxBeGlzLHY9dTxhLHk9ci5pc1NtaXRoO3l8fChyLmZpbGxWaWV3SW5pdGlhbEtleSgicmFkaWFsYXhpcy5hbmdsZSIsZC5hbmdsZSksci5maWxsVmlld0luaXRpYWxLZXkoInJhZGlhbGF4aXMucmFuZ2UiLGcucmFuZ2Uuc2xpY2UoKSksZy5zZXRHZW9tZXRyeSgpKSwiYXV0byI9PT1nLnRpY2thbmdsZSYmbT45MCYmbTw9MjcwJiYoZy50aWNrYW5nbGU9MTgwKTt2YXIgeD15P2Z1bmN0aW9uKHQpe3ZhciBlPU8ocixDKFt0LngsMF0pKTtyZXR1cm4gbChlWzBdLWYsZVsxXS1wKX06ZnVuY3Rpb24odCl7cmV0dXJuIGwoZy5sMnAodC54KSt1LDApfSxiPXk/ZnVuY3Rpb24odCl7cmV0dXJuIEkocix0LngsLTEvMCwxLzApfTpmdW5jdGlvbih0KXtyZXR1cm4gci5wYXRoQXJjKGcucjJwKHQueCkrdSl9LF89aihkKTtpZihyLnJhZGlhbFRpY2tMYXlvdXQhPT1fJiYoaVsicmFkaWFsLWF4aXMiXS5zZWxlY3RBbGwoIi54dGljayIpLnJlbW92ZSgpLHIucmFkaWFsVGlja0xheW91dD1fKSx2KXtnLnNldFNjYWxlKCk7dmFyIHc9MCxUPXk/KGcudGlja3ZhbHN8fFtdKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0Pj0wfSkpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGgudGlja1RleHQoZyx0LCEwLCExKX0pKTpoLmNhbGNUaWNrcyhnKSxrPXk/VDpoLmNsaXBFbmRzKGcsVCksQT1oLmdldFRpY2tTaWducyhnKVsyXTt5JiYoKCJ0b3AiPT09Zy50aWNrcyYmImJvdHRvbSI9PT1nLnNpZGV8fCJib3R0b20iPT09Zy50aWNrcyYmInRvcCI9PT1nLnNpZGUpJiYoQT0tQSksInRvcCI9PT1nLnRpY2tzJiYidG9wIj09PWcuc2lkZSYmKHc9LWcudGlja2xlbiksImJvdHRvbSI9PT1nLnRpY2tzJiYiYm90dG9tIj09PWcuc2lkZSYmKHc9Zy50aWNrbGVuKSksaC5kcmF3VGlja3MobixnLHt2YWxzOlQsbGF5ZXI6aVsicmFkaWFsLWF4aXMiXSxwYXRoOmgubWFrZVRpY2tQYXRoKGcsMCxBKSx0cmFuc0ZuOngsY3Jpc3A6ITF9KSxoLmRyYXdHcmlkKG4sZyx7dmFsczprLGxheWVyOmlbInJhZGlhbC1ncmlkIl0scGF0aDpiLHRyYW5zRm46by5ub29wLGNyaXNwOiExfSksaC5kcmF3TGFiZWxzKG4sZyx7dmFsczpULGxheWVyOmlbInJhZGlhbC1heGlzIl0sdHJhbnNGbjp4LGxhYmVsRm5zOmgubWFrZUxhYmVsRm5zKGcsdyl9KX12YXIgTT1yLnJhZGlhbEF4aXNBbmdsZT1yLnZhbmdsZXM/RihVKFIoZC5hbmdsZSksci52YW5nbGVzKSk6ZC5hbmdsZSxTPWwoZixwKSxFPVMrcygtTSk7VihpWyJyYWRpYWwtYXhpcyJdLHYmJihkLnNob3d0aWNrbGFiZWxzfHxkLnRpY2tzKSx7dHJhbnNmb3JtOkV9KSxWKGlbInJhZGlhbC1ncmlkIl0sdiYmZC5zaG93Z3JpZCx7dHJhbnNmb3JtOnk/IiI6U30pLFYoaVsicmFkaWFsLWxpbmUiXS5zZWxlY3QoImxpbmUiKSx2JiZkLnNob3dsaW5lLHt4MTp5Py1hOnUseTE6MCx4MjphLHkyOjAsdHJhbnNmb3JtOkV9KS5hdHRyKCJzdHJva2Utd2lkdGgiLGQubGluZXdpZHRoKS5jYWxsKGMuc3Ryb2tlLGQubGluZWNvbG9yKX0sTi51cGRhdGVSYWRpYWxBeGlzVGl0bGU9ZnVuY3Rpb24odCxlLHIpe2lmKCF0aGlzLmlzU21pdGgpe3ZhciBuPXRoaXMuZ2QsaT10aGlzLnJhZGl1cyxhPXRoaXMuY3gsbz10aGlzLmN5LHM9dGhpcy5nZXRSYWRpYWwoZSksbD10aGlzLmlkKyJ0aXRsZSIsYz0wO2lmKHMudGl0bGUpe3ZhciBmPXUuYkJveCh0aGlzLmxheWVyc1sicmFkaWFsLWF4aXMiXS5ub2RlKCkpLmhlaWdodCxoPXMudGl0bGUuZm9udC5zaXplLHA9cy5zaWRlO2M9InRvcCI9PT1wP2g6ImNvdW50ZXJjbG9ja3dpc2UiPT09cD8tKGYrLjQqaCk6ZisuOCpofXZhciBkPXZvaWQgMCE9PXI/cjp0aGlzLnJhZGlhbEF4aXNBbmdsZSxtPVIoZCksZz1NYXRoLmNvcyhtKSx2PU1hdGguc2luKG0pLHk9YStpLzIqZytjKnYsYj1vLWkvMip2K2MqZzt0aGlzLmxheWVyc1sicmFkaWFsLWF4aXMtdGl0bGUiXT14LmRyYXcobixsLHtwcm9wQ29udGFpbmVyOnMscHJvcE5hbWU6dGhpcy5pZCsiLnJhZGlhbGF4aXMudGl0bGUiLHBsYWNlaG9sZGVyOnoobiwiQ2xpY2sgdG8gZW50ZXIgcmFkaWFsIGF4aXMgdGl0bGUiKSxhdHRyaWJ1dGVzOnt4OnkseTpiLCJ0ZXh0LWFuY2hvciI6Im1pZGRsZSJ9LHRyYW5zZm9ybTp7cm90YXRlOi1kfX0pfX0sTi51cGRhdGVBbmd1bGFyQXhpcz1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMsbj1yLmdkLGk9ci5sYXllcnMsYT1yLnJhZGl1cyx1PXIuaW5uZXJSYWRpdXMsZj1yLmN4LHA9ci5jeSxkPXIuZ2V0QW5ndWxhcihlKSxtPXIuYW5ndWxhckF4aXMsZz1yLmlzU21pdGg7Z3x8KHIuZmlsbFZpZXdJbml0aWFsS2V5KCJhbmd1bGFyYXhpcy5yb3RhdGlvbiIsZC5yb3RhdGlvbiksbS5zZXRHZW9tZXRyeSgpLG0uc2V0U2NhbGUoKSk7dmFyIHY9Zz9mdW5jdGlvbih0KXt2YXIgZT1PKHIsQyhbMCx0LnhdKSk7cmV0dXJuIE1hdGguYXRhbjIoZVswXS1mLGVbMV0tcCktTWF0aC5QSS8yfTpmdW5jdGlvbih0KXtyZXR1cm4gbS50MmcodC54KX07ImxpbmVhciI9PT1tLnR5cGUmJiJyYWRpYW5zIj09PW0udGhldGF1bml0JiYobS50aWNrMD1GKG0udGljazApLG0uZHRpY2s9RihtLmR0aWNrKSk7dmFyIHk9ZnVuY3Rpb24odCl7cmV0dXJuIGwoZithKk1hdGguY29zKHQpLHAtYSpNYXRoLnNpbih0KSl9LHg9Zz9mdW5jdGlvbih0KXt2YXIgZT1PKHIsQyhbMCx0LnhdKSk7cmV0dXJuIGwoZVswXSxlWzFdKX06ZnVuY3Rpb24odCl7cmV0dXJuIHkodih0KSl9LGI9Zz9mdW5jdGlvbih0KXt2YXIgZT1PKHIsQyhbMCx0LnhdKSksbj1NYXRoLmF0YW4yKGVbMF0tZixlWzFdLXApLU1hdGguUEkvMjtyZXR1cm4gbChlWzBdLGVbMV0pK3MoLUYobikpfTpmdW5jdGlvbih0KXt2YXIgZT12KHQpO3JldHVybiB5KGUpK3MoLUYoZSkpfSxfPWc/ZnVuY3Rpb24odCl7cmV0dXJuIFAocix0LngsMCwxLzApfTpmdW5jdGlvbih0KXt2YXIgZT12KHQpLHI9TWF0aC5jb3MoZSksbj1NYXRoLnNpbihlKTtyZXR1cm4iTSIrW2YrdSpyLHAtdSpuXSsiTCIrW2YrYSpyLHAtYSpuXX0sdz1oLm1ha2VMYWJlbEZucyhtLDApLmxhYmVsU3RhbmRvZmYsVD17eEZuOmZ1bmN0aW9uKHQpe3ZhciBlPXYodCk7cmV0dXJuIE1hdGguY29zKGUpKnd9LHlGbjpmdW5jdGlvbih0KXt2YXIgZT12KHQpLHI9TWF0aC5zaW4oZSk+MD8uMjoxO3JldHVybi1NYXRoLnNpbihlKSoodyt0LmZvbnRTaXplKnIpK01hdGguYWJzKE1hdGguY29zKGUpKSoodC5mb250U2l6ZSpNKX0sYW5jaG9yRm46ZnVuY3Rpb24odCl7dmFyIGU9dih0KSxyPU1hdGguY29zKGUpO3JldHVybiBNYXRoLmFicyhyKTwuMT8ibWlkZGxlIjpyPjA/InN0YXJ0IjoiZW5kIn0saGVpZ2h0Rm46ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXYodCk7cmV0dXJuLS41KigxK01hdGguc2luKG4pKSpyfX0saz1qKGQpO3IuYW5ndWxhclRpY2tMYXlvdXQhPT1rJiYoaVsiYW5ndWxhci1heGlzIl0uc2VsZWN0QWxsKCIuIittLl9pZCsidGljayIpLnJlbW92ZSgpLHIuYW5ndWxhclRpY2tMYXlvdXQ9ayk7dmFyIEEsUz1nP1sxLzBdLmNvbmNhdChtLnRpY2t2YWxzfHxbXSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gaC50aWNrVGV4dChtLHQsITAsITEpfSkpOmguY2FsY1RpY2tzKG0pO2lmKGcmJihTWzBdLnRleHQ9Ilx1MjIxZSIsU1swXS5mb250U2l6ZSo9MS43NSksImxpbmVhciI9PT1lLmdyaWRzaGFwZT8oQT1TLm1hcCh2KSxvLmFuZ2xlRGVsdGEoQVswXSxBWzFdKTwwJiYoQT1BLnNsaWNlKCkucmV2ZXJzZSgpKSk6QT1udWxsLHIudmFuZ2xlcz1BLCJjYXRlZ29yeSI9PT1tLnR5cGUmJihTPVMuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gby5pc0FuZ2xlSW5zaWRlU2VjdG9yKHYodCksci5zZWN0b3JJblJhZCl9KSkpLG0udmlzaWJsZSl7dmFyIEU9Imluc2lkZSI9PT1tLnRpY2tzPy0xOjEsTD0obS5saW5ld2lkdGh8fDEpLzI7aC5kcmF3VGlja3MobixtLHt2YWxzOlMsbGF5ZXI6aVsiYW5ndWxhci1heGlzIl0scGF0aDoiTSIrRSpMKyIsMGgiK0UqbS50aWNrbGVuLHRyYW5zRm46YixjcmlzcDohMX0pLGguZHJhd0dyaWQobixtLHt2YWxzOlMsbGF5ZXI6aVsiYW5ndWxhci1ncmlkIl0scGF0aDpfLHRyYW5zRm46by5ub29wLGNyaXNwOiExfSksaC5kcmF3TGFiZWxzKG4sbSx7dmFsczpTLGxheWVyOmlbImFuZ3VsYXItYXhpcyJdLHJlcG9zaXRpb25PblVwZGF0ZTohMCx0cmFuc0ZuOngsbGFiZWxGbnM6VH0pfVYoaVsiYW5ndWxhci1saW5lIl0uc2VsZWN0KCJwYXRoIiksZC5zaG93bGluZSx7ZDpyLnBhdGhTdWJwbG90KCksdHJhbnNmb3JtOmwoZixwKX0pLmF0dHIoInN0cm9rZS13aWR0aCIsZC5saW5ld2lkdGgpLmNhbGwoYy5zdHJva2UsZC5saW5lY29sb3IpfSxOLnVwZGF0ZUZ4PWZ1bmN0aW9uKHQsZSl7dGhpcy5nZC5fY29udGV4dC5zdGF0aWNQbG90fHwoIXRoaXMuaXNTbWl0aCYmKHRoaXMudXBkYXRlQW5ndWxhckRyYWcodCksdGhpcy51cGRhdGVSYWRpYWxEcmFnKHQsZSwwKSx0aGlzLnVwZGF0ZVJhZGlhbERyYWcodCxlLDEpKSx0aGlzLnVwZGF0ZUhvdmVyQW5kTWFpbkRyYWcodCkpfSxOLnVwZGF0ZUhvdmVyQW5kTWFpbkRyYWc9ZnVuY3Rpb24odCl7dmFyIGUscixzPXRoaXMsYz1zLmlzU21pdGgsdT1zLmdkLGY9cy5sYXllcnMsaD10Ll96b29tbGF5ZXIscD1TLk1JTlpPT00sZD1TLk9GRkVER0UsbT1zLnJhZGl1cyx4PXMuaW5uZXJSYWRpdXMsVD1zLmN4LGs9cy5jeSxBPXMuY3h4LE09cy5jeXksTD1zLnNlY3RvckluUmFkLEM9cy52YW5nbGVzLFA9cy5yYWRpYWxBeGlzLEk9RS5jbGFtcFRpbnksTz1FLmZpbmRYWWF0TGVuZ3RoLHo9RS5maW5kRW5jbG9zaW5nVmVydGV4QW5nbGVzLEQ9Uy5jb3JuZXJIYWxmV2lkdGgsUj1TLmNvcm5lckxlbi8yLEY9Zy5tYWtlRHJhZ2dlcihmLCJwYXRoIiwibWFpbmRyYWciLCExPT09dC5kcmFnbW9kZT8ibm9uZSI6ImNyb3NzaGFpciIpO24uc2VsZWN0KEYpLmF0dHIoImQiLHMucGF0aFN1YnBsb3QoKSkuYXR0cigidHJhbnNmb3JtIixsKFQsaykpLEYub25tb3VzZW1vdmU9ZnVuY3Rpb24odCl7eS5ob3Zlcih1LHQscy5pZCksdS5fZnVsbExheW91dC5fbGFzdGhvdmVyPUYsdS5fZnVsbExheW91dC5faG92ZXJzdWJwbG90PXMuaWR9LEYub25tb3VzZW91dD1mdW5jdGlvbih0KXt1Ll9kcmFnZ2luZ3x8di51bmhvdmVyKHUsdCl9O3ZhciBCLE4saixVLFYsSCxxLEcsWSxXPXtlbGVtZW50OkYsZ2Q6dSxzdWJwbG90OnMuaWQscGxvdGluZm86e2lkOnMuaWQseGF4aXM6cy54YXhpcyx5YXhpczpzLnlheGlzfSx4YXhlczpbcy54YXhpc10seWF4ZXM6W3MueWF4aXNdfTtmdW5jdGlvbiBYKHQsZSl7cmV0dXJuIE1hdGguc3FydCh0KnQrZSplKX1mdW5jdGlvbiBaKHQsZSl7cmV0dXJuIFgodC1BLGUtTSl9ZnVuY3Rpb24gSih0LGUpe3JldHVybiBNYXRoLmF0YW4yKE0tZSx0LUEpfWZ1bmN0aW9uIEsodCxlKXtyZXR1cm5bdCpNYXRoLmNvcyhlKSx0Kk1hdGguc2luKC1lKV19ZnVuY3Rpb24gUSh0LGUpe2lmKDA9PT10KXJldHVybiBzLnBhdGhTZWN0b3IoMipEKTt2YXIgcj1SL3Qsbj1lLXIsaT1lK3IsYT1NYXRoLm1heCgwLE1hdGgubWluKHQsbSkpLG89YS1ELGw9YStEO3JldHVybiJNIitLKG8sbikrIkEiK1tvLG9dKyIgMCwwLDAgIitLKG8saSkrIkwiK0sobCxpKSsiQSIrW2wsbF0rIiAwLDAsMSAiK0sobCxuKSsiWiJ9ZnVuY3Rpb24gJCh0LGUscil7aWYoMD09PXQpcmV0dXJuIHMucGF0aFNlY3RvcigyKkQpO3ZhciBuLGksYT1LKHQsZSksbz1LKHQsciksbD1JKChhWzBdK29bMF0pLzIpLGM9SSgoYVsxXStvWzFdKS8yKTtpZihsJiZjKXt2YXIgdT1jL2wsZj0tMS91LGg9TyhELHUsbCxjKTtuPU8oUixmLGhbMF1bMF0saFswXVsxXSksaT1PKFIsZixoWzFdWzBdLGhbMV1bMV0pfWVsc2V7dmFyIHAsZDtjPyhwPVIsZD1EKToocD1ELGQ9Uiksbj1bW2wtcCxjLWRdLFtsK3AsYy1kXV0saT1bW2wtcCxjK2RdLFtsK3AsYytkXV19cmV0dXJuIk0iK24uam9pbigiTCIpKyJMIitpLnJldmVyc2UoKS5qb2luKCJMIikrIloifWZ1bmN0aW9uIHR0KHQsZSl7cmV0dXJuIGU9TWF0aC5tYXgoTWF0aC5taW4oZSxtKSx4KSx0PGQ/dD0wOm0tdDxkP3Q9bTplPGQ/ZT0wOm0tZTxkJiYoZT1tKSxNYXRoLmFicyhlLXQpPnA/KHQ8ZT8oaj10LFU9ZSk6KGo9ZSxVPXQpLCEwKTooaj1udWxsLFU9bnVsbCwhMSl9ZnVuY3Rpb24gZXQodCxlKXt0PXR8fFYsZT1lfHwiTTAsMFoiLEcuYXR0cigiZCIsdCksWS5hdHRyKCJkIixlKSxnLnRyYW5zaXRpb25ab29tYm94KEcsWSxILHEpLEg9ITA7dmFyIHI9e307b3QociksdS5lbWl0KCJwbG90bHlfcmVsYXlvdXRpbmciLHIpfWZ1bmN0aW9uIHJ0KHQsbil7dmFyIGksYSxvPUIrKHQqPWUpLGw9Tisobio9ciksYz1aKEIsTiksdT1NYXRoLm1pbihaKG8sbCksbSksZj1KKEIsTik7dHQoYyx1KSYmKGk9VitzLnBhdGhTZWN0b3IoVSksaiYmKGkrPXMucGF0aFNlY3RvcihqKSksYT1RKGosZikrUShVLGYpKSxldChpLGEpfWZ1bmN0aW9uIG50KHQsZSxyLG4pe3ZhciBpPUUuZmluZEludGVyc2VjdGlvblhZKHIsbixyLFt0LUEsTS1lXSk7cmV0dXJuIFgoaVswXSxpWzFdKX1mdW5jdGlvbiBpdCh0LGUpe3ZhciByLG4saT1CK3QsYT1OK2Usbz1KKEIsTiksbD1KKGksYSksYz16KG8sQyksdT16KGwsQyk7dHQobnQoQixOLGNbMF0sY1sxXSksTWF0aC5taW4obnQoaSxhLHVbMF0sdVsxXSksbSkpJiYocj1WK3MucGF0aFNlY3RvcihVKSxqJiYocis9cy5wYXRoU2VjdG9yKGopKSxuPVskKGosY1swXSxjWzFdKSwkKFUsY1swXSxjWzFdKV0uam9pbigiICIpKSxldChyLG4pfWZ1bmN0aW9uIGF0KCl7aWYoZy5yZW1vdmVab29tYm94KHUpLG51bGwhPT1qJiZudWxsIT09VSl7dmFyIHQ9e307b3QodCksZy5zaG93RG91YmxlQ2xpY2tOb3RpZmllcih1KSxhLmNhbGwoIl9ndWlSZWxheW91dCIsdSx0KX19ZnVuY3Rpb24gb3QodCl7dmFyIGU9UC5fcmwscj0oZVsxXS1lWzBdKS8oMS14L20pL20sbj1bZVswXSsoai14KSpyLGVbMF0rKFUteCkqcl07dFtzLmlkKyIucmFkaWFsYXhpcy5yYW5nZSJdPW59ZnVuY3Rpb24gc3QodCxlKXt2YXIgcj11Ll9mdWxsTGF5b3V0LmNsaWNrbW9kZTtpZihnLnJlbW92ZVpvb21ib3godSksMj09PXQpe3ZhciBuPXt9O2Zvcih2YXIgaSBpbiBzLnZpZXdJbml0aWFsKW5bcy5pZCsiLiIraV09cy52aWV3SW5pdGlhbFtpXTt1LmVtaXQoInBsb3RseV9kb3VibGVjbGljayIsbnVsbCksYS5jYWxsKCJfZ3VpUmVsYXlvdXQiLHUsbil9ci5pbmRleE9mKCJzZWxlY3QiKT4tMSYmMT09PXQmJl8oZSx1LFtzLnhheGlzXSxbcy55YXhpc10scy5pZCxXKSxyLmluZGV4T2YoImV2ZW50Iik+LTEmJnkuY2xpY2sodSxlLHMuaWQpfVcucHJlcEZuPWZ1bmN0aW9uKHQsbixhKXt2YXIgbD11Ll9mdWxsTGF5b3V0LmRyYWdtb2RlLGY9Ri5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt1Ll9mdWxsTGF5b3V0Ll9jYWxjSW52ZXJzZVRyYW5zZm9ybSh1KTt2YXIgcD11Ll9mdWxsTGF5b3V0Ll9pbnZUcmFuc2Zvcm07ZT11Ll9mdWxsTGF5b3V0Ll9pbnZTY2FsZVgscj11Ll9mdWxsTGF5b3V0Ll9pbnZTY2FsZVk7dmFyIGQ9by5hcHBseTNEVHJhbnNmb3JtKHApKG4tZi5sZWZ0LGEtZi50b3ApO2lmKEI9ZFswXSxOPWRbMV0sQyl7dmFyIHY9RS5maW5kUG9seWdvbk9mZnNldChtLExbMF0sTFsxXSxDKTtCKz1BK3ZbMF0sTis9TSt2WzFdfXN3aXRjaChsKXtjYXNlInpvb20iOlcuY2xpY2tGbj1zdCxjfHwoVy5tb3ZlRm49Qz9pdDpydCxXLmRvbmVGbj1hdCxmdW5jdGlvbigpe2o9bnVsbCxVPW51bGwsVj1zLnBhdGhTdWJwbG90KCksSD0hMTt2YXIgdD11Ll9mdWxsTGF5b3V0W3MuaWRdO3E9aSh0LmJnY29sb3IpLmdldEx1bWluYW5jZSgpLChHPWcubWFrZVpvb21ib3goaCxxLFQsayxWKSkuYXR0cigiZmlsbC1ydWxlIiwiZXZlbm9kZCIpLFk9Zy5tYWtlQ29ybmVycyhoLFQsayksdyh1KX0oKSk7YnJlYWs7Y2FzZSJzZWxlY3QiOmNhc2UibGFzc28iOmIodCxuLGEsVyxsKX19LHYuaW5pdChXKX0sTi51cGRhdGVSYWRpYWxEcmFnPWZ1bmN0aW9uKHQsZSxyKXt2YXIgaT10aGlzLGM9aS5nZCx1PWkubGF5ZXJzLGY9aS5yYWRpdXMsaD1pLmlubmVyUmFkaXVzLHA9aS5jeCxkPWkuY3ksbT1pLnJhZGlhbEF4aXMseT1TLnJhZGlhbERyYWdCb3hTaXplLHg9eS8yO2lmKG0udmlzaWJsZSl7dmFyIGIsXyxULE09UihpLnJhZGlhbEF4aXNBbmdsZSksRT1tLl9ybCxMPUVbMF0sQz1FWzFdLFA9RVtyXSxJPS43NSooRVsxXS1FWzBdKS8oMS1pLmdldEhvbGUoZSkpL2Y7cj8oYj1wKyhmK3gpKk1hdGguY29zKE0pLF89ZC0oZit4KSpNYXRoLnNpbihNKSxUPSJyYWRpYWxkcmFnIik6KGI9cCsoaC14KSpNYXRoLmNvcyhNKSxfPWQtKGgteCkqTWF0aC5zaW4oTSksVD0icmFkaWFsZHJhZy1pbm5lciIpO3ZhciBPLHosRCxCPWcubWFrZVJlY3REcmFnZ2VyKHUsVCwiY3Jvc3NoYWlyIiwteCwteCx5LHkpLE49e2VsZW1lbnQ6QixnZDpjfTshMT09PXQuZHJhZ21vZGUmJihOLmRyYWdtb2RlPSExKSxWKG4uc2VsZWN0KEIpLG0udmlzaWJsZSYmaDxmLHt0cmFuc2Zvcm06bChiLF8pfSksTi5wcmVwRm49ZnVuY3Rpb24oKXtPPW51bGwsej1udWxsLEQ9bnVsbCxOLm1vdmVGbj1qLE4uZG9uZUZuPUgsdyhjKX0sTi5jbGFtcEZuPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIE1hdGguc3FydCh0KnQrZSplKTxTLk1JTkRSQUcmJih0PTAsZT0wKSxbdCxlXX0sdi5pbml0KE4pfWZ1bmN0aW9uIGoodCxlKXtpZihPKU8odCxlKTtlbHNle3ZhciBuPVt0LC1lXSxhPVtNYXRoLmNvcyhNKSxNYXRoLnNpbihNKV0scz1NYXRoLmFicyhvLmRvdChuLGEpL01hdGguc3FydChvLmRvdChuLG4pKSk7aXNOYU4ocyl8fChPPXM8LjU/cTpHKX12YXIgbD17fTshZnVuY3Rpb24odCl7bnVsbCE9PXo/dFtpLmlkKyIucmFkaWFsYXhpcy5hbmdsZSJdPXo6bnVsbCE9PUQmJih0W2kuaWQrIi5yYWRpYWxheGlzLnJhbmdlWyIrcisiXSJdPUQpfShsKSxjLmVtaXQoInBsb3RseV9yZWxheW91dGluZyIsbCl9ZnVuY3Rpb24gSCgpe251bGwhPT16P2EuY2FsbCgiX2d1aVJlbGF5b3V0IixjLGkuaWQrIi5yYWRpYWxheGlzLmFuZ2xlIix6KTpudWxsIT09RCYmYS5jYWxsKCJfZ3VpUmVsYXlvdXQiLGMsaS5pZCsiLnJhZGlhbGF4aXMucmFuZ2VbIityKyJdIixEKX1mdW5jdGlvbiBxKHQsZSl7aWYoMCE9PXIpe3ZhciBuPWIrdCxhPV8rZTt6PU1hdGguYXRhbjIoZC1hLG4tcCksaS52YW5nbGVzJiYoej1VKHosaS52YW5nbGVzKSksej1GKHopO3ZhciBvPWwocCxkKStzKC16KTt1WyJyYWRpYWwtYXhpcyJdLmF0dHIoInRyYW5zZm9ybSIsbyksdVsicmFkaWFsLWxpbmUiXS5zZWxlY3QoImxpbmUiKS5hdHRyKCJ0cmFuc2Zvcm0iLG8pO3ZhciBjPWkuZ2QuX2Z1bGxMYXlvdXQsZj1jW2kuaWRdO2kudXBkYXRlUmFkaWFsQXhpc1RpdGxlKGMsZix6KX19ZnVuY3Rpb24gRyh0LGUpe3ZhciBuPW8uZG90KFt0LC1lXSxbTWF0aC5jb3MoTSksTWF0aC5zaW4oTSldKTtpZihEPVAtSSpuLEk+MD09KHI/RD5MOkQ8Qykpe3ZhciBzPWMuX2Z1bGxMYXlvdXQsbD1zW2kuaWRdO20ucmFuZ2Vbcl09RCxtLl9ybFtyXT1ELGkudXBkYXRlUmFkaWFsQXhpcyhzLGwpLGkueGF4aXMuc2V0UmFuZ2UoKSxpLnhheGlzLnNldFNjYWxlKCksaS55YXhpcy5zZXRSYW5nZSgpLGkueWF4aXMuc2V0U2NhbGUoKTt2YXIgdT0hMTtmb3IodmFyIGYgaW4gaS50cmFjZUhhc2gpe3ZhciBoPWkudHJhY2VIYXNoW2ZdLHA9by5maWx0ZXJWaXNpYmxlKGgpO2hbMF1bMF0udHJhY2UuX21vZHVsZS5wbG90KGMsaSxwLGwpLGEudHJhY2VJcyhmLCJnbCIpJiZwLmxlbmd0aCYmKHU9ITApfXUmJihrKGMpLEEoYykpfWVsc2UgRD1udWxsfX0sTi51cGRhdGVBbmd1bGFyRHJhZz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLHI9ZS5nZCxpPWUubGF5ZXJzLGM9ZS5yYWRpdXMsZj1lLmFuZ3VsYXJBeGlzLGg9ZS5jeCxwPWUuY3ksZD1lLmN4eCxtPWUuY3l5LHk9Uy5hbmd1bGFyRHJhZ0JveFNpemUseD1nLm1ha2VEcmFnZ2VyKGksInBhdGgiLCJhbmd1bGFyZHJhZyIsITE9PT10LmRyYWdtb2RlPyJub25lIjoibW92ZSIpLGI9e2VsZW1lbnQ6eCxnZDpyfTtmdW5jdGlvbiBfKHQsZSl7cmV0dXJuIE1hdGguYXRhbjIobSt5LWUsdC1kLXkpfSExPT09dC5kcmFnbW9kZT9iLmRyYWdtb2RlPSExOm4uc2VsZWN0KHgpLmF0dHIoImQiLGUucGF0aEFubnVsdXMoYyxjK3kpKS5hdHRyKCJ0cmFuc2Zvcm0iLGwoaCxwKSkuY2FsbChULCJtb3ZlIik7dmFyIE0sRSxMLEMsUCxJLE89aS5mcm9udHBsb3Quc2VsZWN0KCIuc2NhdHRlcmxheWVyIikuc2VsZWN0QWxsKCIudHJhY2UiKSx6PU8uc2VsZWN0QWxsKCIucG9pbnQiKSxEPU8uc2VsZWN0QWxsKCIudGV4dHBvaW50Iik7ZnVuY3Rpb24gUihjLGcpe3ZhciB2PWUuZ2QuX2Z1bGxMYXlvdXQseT12W2UuaWRdLHg9XyhNK2MqdC5faW52U2NhbGVYLEUrZyp0Ll9pbnZTY2FsZVkpLGI9Rih4LUkpO2lmKEM9TCtiLGkuZnJvbnRwbG90LmF0dHIoInRyYW5zZm9ybSIsbChlLnhPZmZzZXQyLGUueU9mZnNldDIpK3MoWy1iLGQsbV0pKSxlLnZhbmdsZXMpe1A9ZS5yYWRpYWxBeGlzQW5nbGUrYjt2YXIgdz1sKGgscCkrcygtYiksVD1sKGgscCkrcygtUCk7aS5iZy5hdHRyKCJ0cmFuc2Zvcm0iLHcpLGlbInJhZGlhbC1ncmlkIl0uYXR0cigidHJhbnNmb3JtIix3KSxpWyJyYWRpYWwtYXhpcyJdLmF0dHIoInRyYW5zZm9ybSIsVCksaVsicmFkaWFsLWxpbmUiXS5zZWxlY3QoImxpbmUiKS5hdHRyKCJ0cmFuc2Zvcm0iLFQpLGUudXBkYXRlUmFkaWFsQXhpc1RpdGxlKHYseSxQKX1lbHNlIGUuY2xpcFBhdGhzLmZvclRyYWNlcy5zZWxlY3QoInBhdGgiKS5hdHRyKCJ0cmFuc2Zvcm0iLGwoZCxtKStzKGIpKTt6LmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQ9bi5zZWxlY3QodGhpcyksZT11LmdldFRyYW5zbGF0ZSh0KTt0LmF0dHIoInRyYW5zZm9ybSIsbChlLngsZS55KStzKFtiXSkpfSkpLEQuZWFjaCgoZnVuY3Rpb24oKXt2YXIgdD1uLnNlbGVjdCh0aGlzKSxlPXQuc2VsZWN0KCJ0ZXh0Iikscj11LmdldFRyYW5zbGF0ZSh0KTt0LmF0dHIoInRyYW5zZm9ybSIscyhbYixlLmF0dHIoIngiKSxlLmF0dHIoInkiKV0pK2woci54LHIueSkpfSkpLGYucm90YXRpb249by5tb2RIYWxmKEMsMzYwKSxlLnVwZGF0ZUFuZ3VsYXJBeGlzKHYseSksZS5faGFzQ2xpcE9uQXhpc0ZhbHNlJiYhby5pc0Z1bGxDaXJjbGUoZS5zZWN0b3JJblJhZCkmJk8uY2FsbCh1LmhpZGVPdXRzaWRlUmFuZ2VQb2ludHMsZSk7dmFyIFM9ITE7Zm9yKHZhciBSIGluIGUudHJhY2VIYXNoKWlmKGEudHJhY2VJcyhSLCJnbCIpKXt2YXIgTj1lLnRyYWNlSGFzaFtSXSxqPW8uZmlsdGVyVmlzaWJsZShOKTtOWzBdWzBdLnRyYWNlLl9tb2R1bGUucGxvdChyLGUsaix5KSxqLmxlbmd0aCYmKFM9ITApfVMmJihrKHIpLEEocikpO3ZhciBVPXt9O0IoVSksci5lbWl0KCJwbG90bHlfcmVsYXlvdXRpbmciLFUpfWZ1bmN0aW9uIEIodCl7dFtlLmlkKyIuYW5ndWxhcmF4aXMucm90YXRpb24iXT1DLGUudmFuZ2xlcyYmKHRbZS5pZCsiLnJhZGlhbGF4aXMuYW5nbGUiXT1QKX1mdW5jdGlvbiBOKCl7RC5zZWxlY3QoInRleHQiKS5hdHRyKCJ0cmFuc2Zvcm0iLG51bGwpO3ZhciB0PXt9O0IodCksYS5jYWxsKCJfZ3VpUmVsYXlvdXQiLHIsdCl9Yi5wcmVwRm49ZnVuY3Rpb24obixpLGEpe3ZhciBzPXRbZS5pZF07TD1zLmFuZ3VsYXJheGlzLnJvdGF0aW9uO3ZhciBsPXguZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7TT1pLWwubGVmdCxFPWEtbC50b3Asci5fZnVsbExheW91dC5fY2FsY0ludmVyc2VUcmFuc2Zvcm0ocik7dmFyIGM9by5hcHBseTNEVHJhbnNmb3JtKHQuX2ludlRyYW5zZm9ybSkoTSxFKTtNPWNbMF0sRT1jWzFdLEk9XyhNLEUpLGIubW92ZUZuPVIsYi5kb25lRm49Tix3KHIpfSxlLnZhbmdsZXMmJiFvLmlzRnVsbENpcmNsZShlLnNlY3RvckluUmFkKSYmKGIucHJlcEZuPW8ubm9vcCxUKG4uc2VsZWN0KHgpLG51bGwpKSx2LmluaXQoYil9LE4uaXNQdEluc2lkZT1mdW5jdGlvbih0KXtpZih0aGlzLmlzU21pdGgpcmV0dXJuITA7dmFyIGU9dGhpcy5zZWN0b3JJblJhZCxyPXRoaXMudmFuZ2xlcyxuPXRoaXMuYW5ndWxhckF4aXMuYzJnKHQudGhldGEpLGk9dGhpcy5yYWRpYWxBeGlzLGE9aS5jMmwodC5yKSxzPWkuX3JsO3JldHVybihyP0UuaXNQdEluc2lkZVBvbHlnb246by5pc1B0SW5zaWRlU2VjdG9yKShhLG4scyxlLHIpfSxOLnBhdGhBcmM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5zZWN0b3JJblJhZCxyPXRoaXMudmFuZ2xlcztyZXR1cm4ocj9FLnBhdGhQb2x5Z29uOm8ucGF0aEFyYykodCxlWzBdLGVbMV0scil9LE4ucGF0aFNlY3Rvcj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnNlY3RvckluUmFkLHI9dGhpcy52YW5nbGVzO3JldHVybihyP0UucGF0aFBvbHlnb246by5wYXRoU2VjdG9yKSh0LGVbMF0sZVsxXSxyKX0sTi5wYXRoQW5udWx1cz1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuc2VjdG9ySW5SYWQsbj10aGlzLnZhbmdsZXM7cmV0dXJuKG4/RS5wYXRoUG9seWdvbkFubnVsdXM6by5wYXRoQW5udWx1cykodCxlLHJbMF0sclsxXSxuKX0sTi5wYXRoU3VicGxvdD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuaW5uZXJSYWRpdXMsZT10aGlzLnJhZGl1cztyZXR1cm4gdD90aGlzLnBhdGhBbm51bHVzKHQsZSk6dGhpcy5wYXRoU2VjdG9yKGUpfSxOLmZpbGxWaWV3SW5pdGlhbEtleT1mdW5jdGlvbih0LGUpe3QgaW4gdGhpcy52aWV3SW5pdGlhbHx8KHRoaXMudmlld0luaXRpYWxbdF09ZSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjM2NywiLi4vLi4vY29tcG9uZW50cy9kcmFnZWxlbWVudCI6Mzg2LCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjM4OSwiLi4vLi4vY29tcG9uZW50cy9meCI6NDA3LCIuLi8uLi9jb21wb25lbnRzL3NlbGVjdGlvbnMiOjQ1NSwiLi4vLi4vY29tcG9uZW50cy90aXRsZXMiOjQ3NiwiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCI6NDgzLCIuLi8uLi9saWIiOjUxNSwiLi4vLi4vbGliL2NsZWFyX2dsX2NhbnZhc2VzIjo0OTksIi4uLy4uL2xpYi9zZXRjdXJzb3IiOjUzNiwiLi4vLi4vcGxvdF9hcGkvc3Vicm91dGluZXMiOjU1NiwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjU2NiwiLi4vLi4vcmVnaXN0cnkiOjY0NywiLi4vY2FydGVzaWFuL2F1dG9yYW5nZSI6NTY1LCIuLi9jYXJ0ZXNpYW4vZHJhZ2JveCI6NTc1LCIuLi9jYXJ0ZXNpYW4vc2V0X2NvbnZlcnQiOjU4NSwiLi4vcGxvdHMiOjYyOCwiLi4vc21pdGgvaGVscGVycyI6NjM3LCIuL2NvbnN0YW50cyI6NjI5LCIuL2hlbHBlcnMiOjYzMCwiLi9zZXRfY29udmVydCI6NjM1LCJAcGxvdGx5L2QzIjo1OCx0aW55Y29sb3IyOjMxM31dLDYzNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uL2NhcnRlc2lhbi9zZXRfY29udmVydCIpLGE9bi5kZWcycmFkLG89bi5yYWQyZGVnO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7c3dpdGNoKGkodCxyKSx0Ll9pZCl7Y2FzZSJ4IjpjYXNlInJhZGlhbGF4aXMiOiFmdW5jdGlvbih0LGUpe3ZhciByPWUuX3N1YnBsb3Q7dC5zZXRHZW9tZXRyeT1mdW5jdGlvbigpe3ZhciBlPXQuX3JsWzBdLG49dC5fcmxbMV0saT1yLmlubmVyUmFkaXVzLGE9KHIucmFkaXVzLWkpLyhuLWUpLG89aS9hLHM9ZT5uP2Z1bmN0aW9uKHQpe3JldHVybiB0PD0wfTpmdW5jdGlvbih0KXtyZXR1cm4gdD49MH07dC5jMmc9ZnVuY3Rpb24ocil7dmFyIG49dC5jMmwociktZTtyZXR1cm4ocyhuKT9uOjApK299LHQuZzJjPWZ1bmN0aW9uKHIpe3JldHVybiB0LmwyYyhyK2Utbyl9LHQuZzJwPWZ1bmN0aW9uKHQpe3JldHVybiB0KmF9LHQuYzJwPWZ1bmN0aW9uKGUpe3JldHVybiB0LmcycCh0LmMyZyhlKSl9fX0odCxlKTticmVhaztjYXNlImFuZ3VsYXJheGlzIjohZnVuY3Rpb24odCxlKXt2YXIgcj10LnR5cGU7aWYoImxpbmVhciI9PT1yKXt2YXIgaT10LmQyYyxzPXQuYzJkO3QuZDJjPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7cmV0dXJuImRlZ3JlZXMiPT09ZT9hKHQpOnR9KGkodCksZSl9LHQuYzJkPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHMoZnVuY3Rpb24odCxlKXtyZXR1cm4iZGVncmVlcyI9PT1lP28odCk6dH0odCxlKSl9fXQubWFrZUNhbGNkYXRhPWZ1bmN0aW9uKGUsaSl7dmFyIGEsbyxzPWVbaV0sbD1lLl9sZW5ndGgsYz1mdW5jdGlvbihyKXtyZXR1cm4gdC5kMmMocixlLnRoZXRhdW5pdCl9O2lmKHMpe2lmKG4uaXNUeXBlZEFycmF5KHMpJiYibGluZWFyIj09PXIpe2lmKGw9PT1zLmxlbmd0aClyZXR1cm4gcztpZihzLnN1YmFycmF5KXJldHVybiBzLnN1YmFycmF5KDAsbCl9Zm9yKGE9bmV3IEFycmF5KGwpLG89MDtvPGw7bysrKWFbb109YyhzW29dKX1lbHNle3ZhciB1PWkrIjAiLGY9ImQiK2ksaD11IGluIGU/YyhlW3VdKTowLHA9ZVtmXT9jKGVbZl0pOih0LnBlcmlvZHx8MipNYXRoLlBJKS9sO2ZvcihhPW5ldyBBcnJheShsKSxvPTA7bzxsO28rKylhW29dPWgrbypwfXJldHVybiBhfSx0LnNldEdlb21ldHJ5PWZ1bmN0aW9uKCl7dmFyIGkscyxsLGMsdT1lLnNlY3RvcixmPXUubWFwKGEpLGg9e2Nsb2Nrd2lzZTotMSxjb3VudGVyY2xvY2t3aXNlOjF9W3QuZGlyZWN0aW9uXSxwPWEodC5yb3RhdGlvbiksZD1mdW5jdGlvbih0KXtyZXR1cm4gaCp0K3B9LG09ZnVuY3Rpb24odCl7cmV0dXJuKHQtcCkvaH07c3dpdGNoKHIpe2Nhc2UibGluZWFyIjpzPWk9bi5pZGVudGl0eSxjPWEsbD1vLHQucmFuZ2U9bi5pc0Z1bGxDaXJjbGUoZik/W3VbMF0sdVswXSszNjBdOmYubWFwKG0pLm1hcChvKTticmVhaztjYXNlImNhdGVnb3J5Ijp2YXIgZz10Ll9jYXRlZ29yaWVzLmxlbmd0aCx2PXQucGVyaW9kP01hdGgubWF4KHQucGVyaW9kLGcpOmc7MD09PXYmJih2PTEpLHM9Yz1mdW5jdGlvbih0KXtyZXR1cm4gMip0Kk1hdGguUEkvdn0saT1sPWZ1bmN0aW9uKHQpe3JldHVybiB0KnYvTWF0aC5QSS8yfSx0LnJhbmdlPVswLHZdfXQuYzJnPWZ1bmN0aW9uKHQpe3JldHVybiBkKHModCkpfSx0LmcyYz1mdW5jdGlvbih0KXtyZXR1cm4gaShtKHQpKX0sdC50Mmc9ZnVuY3Rpb24odCl7cmV0dXJuIGQoYyh0KSl9LHQuZzJ0PWZ1bmN0aW9uKHQpe3JldHVybiBsKG0odCkpfX19KHQsZSl9fX0seyIuLi8uLi9saWIiOjUxNSwiLi4vY2FydGVzaWFuL3NldF9jb252ZXJ0Ijo1ODV9XSw2MzY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXthdHRyOiJzdWJwbG90IixuYW1lOiJzbWl0aCIsYXhpc05hbWVzOlsicmVhbGF4aXMiLCJpbWFnaW5hcnlheGlzIl0sYXhpc05hbWUyZGF0YUFycmF5OntpbWFnaW5hcnlheGlzOiJpbWFnIixyZWFsYXhpczoicmVhbCJ9fX0se31dLDYzNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3JldHVybiB0PDA/LTE6dD4wPzE6MH1mdW5jdGlvbiBpKHQpe3ZhciBlPXRbMF0scj10WzFdO2lmKCFpc0Zpbml0ZShlKXx8IWlzRmluaXRlKHIpKXJldHVyblsxLDBdO3ZhciBuPShlKzEpKihlKzEpK3IqcjtyZXR1cm5bKGUqZStyKnItMSkvbiwyKnIvbl19ZnVuY3Rpb24gYSh0LGUpe3ZhciByPWVbMF0sbj1lWzFdO3JldHVybltyKnQucmFkaXVzK3QuY3gsLW4qdC5yYWRpdXMrdC5jeV19ZnVuY3Rpb24gbyh0LGUpe3JldHVybiBlKnQucmFkaXVzfWUuZXhwb3J0cz17c21pdGg6aSxyZWFjdGFuY2VBcmM6ZnVuY3Rpb24odCxlLHIsbil7dmFyIHM9YSh0LGkoW3IsZV0pKSxsPXNbMF0sYz1zWzFdLHU9YSh0LGkoW24sZV0pKSxmPXVbMF0saD11WzFdO2lmKDA9PT1lKXJldHVyblsiTSIrbCsiLCIrYywiTCIrZisiLCIraF0uam9pbigiICIpO3ZhciBwPW8odCwxL01hdGguYWJzKGUpKTtyZXR1cm5bIk0iK2wrIiwiK2MsIkEiK3ArIiwiK3ArIiAwIDAsIisoZTwwPzE6MCkrIiAiK2YrIiwiK2hdLmpvaW4oIiAiKX0scmVzaXN0YW5jZUFyYzpmdW5jdGlvbih0LGUscixzKXt2YXIgbD1vKHQsMS8oZSsxKSksYz1hKHQsaShbZSxyXSkpLHU9Y1swXSxmPWNbMV0saD1hKHQsaShbZSxzXSkpLHA9aFswXSxkPWhbMV07aWYobihyKSE9PW4ocykpe3ZhciBtPWEodCxpKFtlLDBdKSk7cmV0dXJuWyJNIit1KyIsIitmLCJBIitsKyIsIitsKyIgMCAwLCIrKDA8cj8wOjEpKyIgIittWzBdKyIsIittWzFdLCJBIitsKyIsIitsKyIgMCAwLCIrKHM8MD8wOjEpK3ArIiwiK2RdLmpvaW4oIiAiKX1yZXR1cm5bIk0iK3UrIiwiK2YsIkEiK2wrIiwiK2wrIiAwIDAsIisoczxyPzA6MSkrIiAiK3ArIiwiK2RdLmpvaW4oIiAiKX0sc21pdGhUcmFuc2Zvcm06YX19LHt9XSw2Mzg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vZ2V0X2RhdGEiKS5nZXRTdWJwbG90Q2FsY0RhdGEsaT10KCIuLi8uLi9saWIiKS5jb3VudGVyUmVnZXgsYT10KCIuLi9wb2xhci9wb2xhciIpLG89dCgiLi9jb25zdGFudHMiKSxzPW8uYXR0cixsPW8ubmFtZSxjPWkobCksdT17fTt1W3NdPXt2YWxUeXBlOiJzdWJwbG90aWQiLGRmbHQ6bCxlZGl0VHlwZToiY2FsYyJ9LGUuZXhwb3J0cz17YXR0cjpzLG5hbWU6bCxpZFJvb3Q6bCxpZFJlZ2V4OmMsYXR0clJlZ2V4OmMsYXR0cmlidXRlczp1LGxheW91dEF0dHJpYnV0ZXM6dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpLHN1cHBseUxheW91dERlZmF1bHRzOnQoIi4vbGF5b3V0X2RlZmF1bHRzIikscGxvdDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dC5fZnVsbExheW91dCxyPXQuY2FsY2RhdGEsaT1lLl9zdWJwbG90c1tsXSxvPTA7bzxpLmxlbmd0aDtvKyspe3ZhciBzPWlbb10sYz1uKHIsbCxzKSx1PWVbc10uX3N1YnBsb3Q7dXx8KHU9YSh0LHMsITApLGVbc10uX3N1YnBsb3Q9dSksdS5wbG90KGMsZSx0Ll9wcm9taXNlcyl9fSxjbGVhbjpmdW5jdGlvbih0LGUscixuKXtmb3IodmFyIGk9bi5fc3VicGxvdHNbbF18fFtdLGE9MDthPGkubGVuZ3RoO2ErKyl7dmFyIG89aVthXSxzPW5bb10uX3N1YnBsb3Q7aWYoIWVbb10mJnMpZm9yKHZhciBjIGluIHMuZnJhbWV3b3JrLnJlbW92ZSgpLHMuY2xpcFBhdGhzKXMuY2xpcFBhdGhzW2NdLnJlbW92ZSgpfX0sdG9TVkc6dCgiLi4vY2FydGVzaWFuIikudG9TVkd9fSx7Ii4uLy4uL2xpYiI6NTE1LCIuLi9jYXJ0ZXNpYW4iOjU3OCwiLi4vZ2V0X2RhdGEiOjYwMiwiLi4vcG9sYXIvcG9sYXIiOjYzNCwiLi9jb25zdGFudHMiOjYzNiwiLi9sYXlvdXRfYXR0cmlidXRlcyI6NjM5LCIuL2xheW91dF9kZWZhdWx0cyI6NjQwfV0sNjM5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IvYXR0cmlidXRlcyIpLGk9dCgiLi4vY2FydGVzaWFuL2xheW91dF9hdHRyaWJ1dGVzIiksYT10KCIuLi9kb21haW4iKS5hdHRyaWJ1dGVzLG89dCgiLi4vLi4vbGliIikuZXh0ZW5kRmxhdCxzPXQoIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiKS5vdmVycmlkZUFsbCxsPXMoe2NvbG9yOmkuY29sb3Isc2hvd2xpbmU6byh7fSxpLnNob3dsaW5lLHtkZmx0OiEwfSksbGluZWNvbG9yOmkubGluZWNvbG9yLGxpbmV3aWR0aDppLmxpbmV3aWR0aCxzaG93Z3JpZDpvKHt9LGkuc2hvd2dyaWQse2RmbHQ6ITB9KSxncmlkY29sb3I6aS5ncmlkY29sb3IsZ3JpZHdpZHRoOmkuZ3JpZHdpZHRoLGdyaWRkYXNoOmkuZ3JpZGRhc2h9LCJwbG90IiwiZnJvbS1yb290IiksYz1zKHt0aWNrbGVuOmkudGlja2xlbix0aWNrd2lkdGg6byh7fSxpLnRpY2t3aWR0aCx7ZGZsdDoyfSksdGlja2NvbG9yOmkudGlja2NvbG9yLHNob3d0aWNrbGFiZWxzOmkuc2hvd3RpY2tsYWJlbHMsc2hvd3RpY2twcmVmaXg6aS5zaG93dGlja3ByZWZpeCx0aWNrcHJlZml4OmkudGlja3ByZWZpeCxzaG93dGlja3N1ZmZpeDppLnNob3d0aWNrc3VmZml4LHRpY2tzdWZmaXg6aS50aWNrc3VmZml4LHRpY2tmb250OmkudGlja2ZvbnQsdGlja2Zvcm1hdDppLnRpY2tmb3JtYXQsaG92ZXJmb3JtYXQ6aS5ob3ZlcmZvcm1hdCxsYXllcjppLmxheWVyfSwicGxvdCIsImZyb20tcm9vdCIpLHU9byh7dmlzaWJsZTpvKHt9LGkudmlzaWJsZSx7ZGZsdDohMH0pLHRpY2t2YWxzOntkZmx0OlsuMiwuNSwxLDIsNV0sdmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6InBsb3QifSx0aWNrYW5nbGU6byh7fSxpLnRpY2thbmdsZSx7ZGZsdDo5MH0pLHRpY2tzOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ0b3AiLCJib3R0b20iLCIiXSxlZGl0VHlwZToidGlja3MifSxzaWRlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ0b3AiLCJib3R0b20iXSxkZmx0OiJ0b3AiLGVkaXRUeXBlOiJwbG90In0sZWRpdFR5cGU6ImNhbGMifSxsLGMpLGY9byh7dmlzaWJsZTpvKHt9LGkudmlzaWJsZSx7ZGZsdDohMH0pLHRpY2t2YWxzOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToicGxvdCJ9LHRpY2tzOmkudGlja3MsZWRpdFR5cGU6ImNhbGMifSxsLGMpO2UuZXhwb3J0cz17ZG9tYWluOmEoe25hbWU6InNtaXRoIixlZGl0VHlwZToicGxvdCJ9KSxiZ2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6InBsb3QiLGRmbHQ6bi5iYWNrZ3JvdW5kfSxyZWFsYXhpczp1LGltYWdpbmFyeWF4aXM6ZixlZGl0VHlwZToiY2FsYyJ9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IvYXR0cmlidXRlcyI6MzY2LCIuLi8uLi9saWIiOjUxNSwiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyI6NTQ4LCIuLi9jYXJ0ZXNpYW4vbGF5b3V0X2F0dHJpYnV0ZXMiOjU3OSwiLi4vZG9tYWluIjo1OTN9XSw2NDA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG4saSxhLG89dCgiLi4vLi4vbGliIikscz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksbD10KCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIiksYz10KCIuLi9zdWJwbG90X2RlZmF1bHRzIiksdT10KCIuLi9nZXRfZGF0YSIpLmdldFN1YnBsb3REYXRhLGY9dCgiLi4vY2FydGVzaWFuL3ByZWZpeF9zdWZmaXhfZGVmYXVsdHMiKSxoPXQoIi4uL2NhcnRlc2lhbi90aWNrX2xhYmVsX2RlZmF1bHRzIikscD10KCIuLi9jYXJ0ZXNpYW4vbGluZV9ncmlkX2RlZmF1bHRzIiksZD10KCIuLi9jYXJ0ZXNpYW4vc2V0X2NvbnZlcnQiKSxtPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxnPXQoIi4vY29uc3RhbnRzIiksdj1nLmF4aXNOYW1lcyx5PShuPWZ1bmN0aW9uKHQpe3JldHVybiB0LnNsaWNlKCkucmV2ZXJzZSgpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuLXR9KSkuY29uY2F0KFswXSkuY29uY2F0KHQpfSxpPVN0cmluZyxhPXt9LGZ1bmN0aW9uKHQpe3ZhciBlPWk/aSh0KTp0O2lmKGUgaW4gYSlyZXR1cm4gYVtlXTt2YXIgcj1uKHQpO3JldHVybiBhW2VdPXIscn0pO2Z1bmN0aW9uIHgodCxlLHIsbil7dmFyIGk9cigiYmdjb2xvciIpO24uYmdDb2xvcj1zLmNvbWJpbmUoaSxuLnBhcGVyX2JnY29sb3IpO3ZhciBhLGM9dShuLmZ1bGxEYXRhLGcubmFtZSxuLmlkKSx4PW4ubGF5b3V0T3V0O2Z1bmN0aW9uIGIodCxlKXtyZXR1cm4gcihhKyIuIit0LGUpfWZvcih2YXIgXz0wO188di5sZW5ndGg7XysrKXthPXZbX10sby5pc1BsYWluT2JqZWN0KHRbYV0pfHwodFthXT17fSk7dmFyIHc9dFthXSxUPWwubmV3Q29udGFpbmVyKGUsYSk7VC5faWQ9VC5fbmFtZT1hLFQuX2F0dHI9bi5pZCsiLiIrYSxULl90cmFjZUluZGljZXM9Yy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0Ll9leHBhbmRlZEluZGV4fSkpO3ZhciBrPWIoInZpc2libGUiKTtpZihULnR5cGU9ImxpbmVhciIsZChULHgpLGYodyxULGIsVC50eXBlKSxrKXt2YXIgQSxNLFMsRSxMPSJyZWFsYXhpcyI9PT1hO2lmKEwmJmIoInNpZGUiKSxMKWIoInRpY2t2YWxzIik7ZWxzZSBiKCJ0aWNrdmFscyIseShlLnJlYWxheGlzLnRpY2t2YWxzfHxtLnJlYWxheGlzLnRpY2t2YWxzLmRmbHQpKTt2YXIgQz1uLmZvbnR8fHt9O2smJihNPShBPWIoImNvbG9yIikpPT09dy5jb2xvcj9BOkMuY29sb3IsUz1DLnNpemUsRT1DLmZhbWlseSksaCh3LFQsYixULnR5cGUse25vVGlja2xhYmVsc3RlcDohMCxub0FuZzohTCxub0V4cDohMCxmb250Ontjb2xvcjpNLHNpemU6UyxmYW1pbHk6RX19KSxvLmNvZXJjZTIodCxlLG0sYSsiLnRpY2tsZW4iKSxvLmNvZXJjZTIodCxlLG0sYSsiLnRpY2t3aWR0aCIpLG8uY29lcmNlMih0LGUsbSxhKyIudGlja2NvbG9yIixlLmNvbG9yKSxiKCJ0aWNrcyIpfHwoZGVsZXRlIGVbYV0udGlja2xlbixkZWxldGUgZVthXS50aWNrd2lkdGgsZGVsZXRlIGVbYV0udGlja2NvbG9yKSxwKHcsVCxiLHtkZmx0Q29sb3I6QSxiZ0NvbG9yOm4uYmdDb2xvcixibGVuZDo2MCxzaG93TGluZTohMCxzaG93R3JpZDohMCxub1plcm9MaW5lOiEwLGF0dHJpYnV0ZXM6bVthXX0pLGIoImxheWVyIil9YigiaG92ZXJmb3JtYXQiKSxkZWxldGUgVC50eXBlLFQuX2lucHV0PXd9fWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7Yyh0LGUscix7bm9VaXJldmlzaW9uOiEwLHR5cGU6Zy5uYW1lLGF0dHJpYnV0ZXM6bSxoYW5kbGVEZWZhdWx0czp4LGZvbnQ6ZS5mb250LHBhcGVyX2JnY29sb3I6ZS5wYXBlcl9iZ2NvbG9yLGZ1bGxEYXRhOnIsbGF5b3V0T3V0OmV9KX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6MzY3LCIuLi8uLi9saWIiOjUxNSwiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6NTU1LCIuLi9jYXJ0ZXNpYW4vbGluZV9ncmlkX2RlZmF1bHRzIjo1ODEsIi4uL2NhcnRlc2lhbi9wcmVmaXhfc3VmZml4X2RlZmF1bHRzIjo1ODMsIi4uL2NhcnRlc2lhbi9zZXRfY29udmVydCI6NTg1LCIuLi9jYXJ0ZXNpYW4vdGlja19sYWJlbF9kZWZhdWx0cyI6NTg3LCIuLi9nZXRfZGF0YSI6NjAyLCIuLi9zdWJwbG90X2RlZmF1bHRzIjo2NDEsIi4vY29uc3RhbnRzIjo2MzYsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjYzOX1dLDY0MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9saWIiKSxpPXQoIi4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKSxhPXQoIi4vZG9tYWluIikuZGVmYXVsdHM7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG8pe3ZhciBzLGwsYz1vLnR5cGUsdT1vLmF0dHJpYnV0ZXMsZj1vLmhhbmRsZURlZmF1bHRzLGg9by5wYXJ0aXRpb258fCJ4IixwPWUuX3N1YnBsb3RzW2NdLGQ9cC5sZW5ndGgsbT1kJiZwWzBdLnJlcGxhY2UoL1xkKyQvLCIiKTtmdW5jdGlvbiBnKHQsZSl7cmV0dXJuIG4uY29lcmNlKHMsbCx1LHQsZSl9Zm9yKHZhciB2PTA7djxkO3YrKyl7dmFyIHk9cFt2XTtzPXRbeV0/dFt5XTp0W3ldPXt9LGw9aS5uZXdDb250YWluZXIoZSx5LG0pLG8ubm9VaXJldmlzaW9ufHxnKCJ1aXJldmlzaW9uIixlLnVpcmV2aXNpb24pO3ZhciB4PXt9O3hbaF09W3YvZCwodisxKS9kXSxhKGwsZSxnLHgpLG8uaWQ9eSxmKHMsbCxnLG8pfX19LHsiLi4vbGliIjo1MTUsIi4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiOjU1NSwiLi9kb21haW4iOjU5M31dLDY0MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9jb25zdGFudHMvZG9jcyIpO24uRk9STUFUX0xJTkssbi5EQVRFX0ZPUk1BVF9MSU5LO2Z1bmN0aW9uIGkodCl7dmFyIGU9dC5kZXNjcmlwdGlvbj8iICIrdC5kZXNjcmlwdGlvbjoiIixyPXQua2V5c3x8W107aWYoci5sZW5ndGg+MCl7Zm9yKHZhciBuPVtdLGk9MDtpPHIubGVuZ3RoO2krKyluW2ldPSJgIityW2ldKyJgIjtlKz0iRmluYWxseSwgdGhlIHRlbXBsYXRlIHN0cmluZyBoYXMgYWNjZXNzIHRvICIsZT0xPT09ci5sZW5ndGg/InZhcmlhYmxlICIrblswXToidmFyaWFibGVzICIrbi5zbGljZSgwLC0xKS5qb2luKCIsICIpKyIgYW5kICIrbi5zbGljZSgtMSkrIi4ifXJldHVybiBlfXIuaG92ZXJ0ZW1wbGF0ZUF0dHJzPWZ1bmN0aW9uKHQsZSl7dD10fHx7fTtpKGU9ZXx8e30pO3ZhciByPXt2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6dC5lZGl0VHlwZXx8Im5vbmUifTtyZXR1cm4hMSE9PXQuYXJyYXlPayYmKHIuYXJyYXlPaz0hMCkscn0sci50ZXh0dGVtcGxhdGVBdHRycz1mdW5jdGlvbih0LGUpe3Q9dHx8e307aShlPWV8fHt9KTt2YXIgcj17dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGVkaXRUeXBlOnQuZWRpdFR5cGV8fCJjYWxjIn07cmV0dXJuITEhPT10LmFycmF5T2smJihyLmFycmF5T2s9ITApLHJ9fSx7Ii4uL2NvbnN0YW50cy9kb2NzIjo0ODZ9XSw2NDM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi90ZXJuYXJ5IiksaT10KCIuLi8uLi9wbG90cy9nZXRfZGF0YSIpLmdldFN1YnBsb3RDYWxjRGF0YSxhPXQoIi4uLy4uL2xpYiIpLmNvdW50ZXJSZWdleDtyLm5hbWU9InRlcm5hcnkiO3ZhciBvPXIuYXR0cj0ic3VicGxvdCI7ci5pZFJvb3Q9InRlcm5hcnkiLHIuaWRSZWdleD1yLmF0dHJSZWdleD1hKCJ0ZXJuYXJ5IiksKHIuYXR0cmlidXRlcz17fSlbb109e3ZhbFR5cGU6InN1YnBsb3RpZCIsZGZsdDoidGVybmFyeSIsZWRpdFR5cGU6ImNhbGMifSxyLmxheW91dEF0dHJpYnV0ZXM9dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpLHIuc3VwcGx5TGF5b3V0RGVmYXVsdHM9dCgiLi9sYXlvdXRfZGVmYXVsdHMiKSxyLnBsb3Q9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQuX2Z1bGxMYXlvdXQscj10LmNhbGNkYXRhLGE9ZS5fc3VicGxvdHMudGVybmFyeSxvPTA7bzxhLmxlbmd0aDtvKyspe3ZhciBzPWFbb10sbD1pKHIsInRlcm5hcnkiLHMpLGM9ZVtzXS5fc3VicGxvdDtjfHwoYz1uZXcgbih7aWQ6cyxncmFwaERpdjp0LGNvbnRhaW5lcjplLl90ZXJuYXJ5bGF5ZXIubm9kZSgpfSxlKSxlW3NdLl9zdWJwbG90PWMpLGMucGxvdChsLGUsdC5fcHJvbWlzZXMpfX0sci5jbGVhbj1mdW5jdGlvbih0LGUscixuKXtmb3IodmFyIGk9bi5fc3VicGxvdHMudGVybmFyeXx8W10sYT0wO2E8aS5sZW5ndGg7YSsrKXt2YXIgbz1pW2FdLHM9bltvXS5fc3VicGxvdDshZVtvXSYmcyYmKHMucGxvdENvbnRhaW5lci5yZW1vdmUoKSxzLmNsaXBEZWYucmVtb3ZlKCkscy5jbGlwRGVmUmVsYXRpdmUucmVtb3ZlKCkscy5sYXllcnNbImEtdGl0bGUiXS5yZW1vdmUoKSxzLmxheWVyc1siYi10aXRsZSJdLnJlbW92ZSgpLHMubGF5ZXJzWyJjLXRpdGxlIl0ucmVtb3ZlKCkpfX19LHsiLi4vLi4vbGliIjo1MTUsIi4uLy4uL3Bsb3RzL2dldF9kYXRhIjo2MDIsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjY0NCwiLi9sYXlvdXRfZGVmYXVsdHMiOjY0NSwiLi90ZXJuYXJ5Ijo2NDZ9XSw2NDQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIiksaT10KCIuLi9kb21haW4iKS5hdHRyaWJ1dGVzLGE9dCgiLi4vY2FydGVzaWFuL2xheW91dF9hdHRyaWJ1dGVzIiksbz10KCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIikub3ZlcnJpZGVBbGwscz10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxsPXt0aXRsZTp7dGV4dDphLnRpdGxlLnRleHQsZm9udDphLnRpdGxlLmZvbnR9LGNvbG9yOmEuY29sb3IsdGlja21vZGU6YS50aWNrbW9kZSxudGlja3M6cyh7fSxhLm50aWNrcyx7ZGZsdDo2LG1pbjoxfSksdGljazA6YS50aWNrMCxkdGljazphLmR0aWNrLHRpY2t2YWxzOmEudGlja3ZhbHMsdGlja3RleHQ6YS50aWNrdGV4dCx0aWNrczphLnRpY2tzLHRpY2tsZW46YS50aWNrbGVuLHRpY2t3aWR0aDphLnRpY2t3aWR0aCx0aWNrY29sb3I6YS50aWNrY29sb3IsdGlja2xhYmVsc3RlcDphLnRpY2tsYWJlbHN0ZXAsc2hvd3RpY2tsYWJlbHM6YS5zaG93dGlja2xhYmVscyxzaG93dGlja3ByZWZpeDphLnNob3d0aWNrcHJlZml4LHRpY2twcmVmaXg6YS50aWNrcHJlZml4LHNob3d0aWNrc3VmZml4OmEuc2hvd3RpY2tzdWZmaXgsdGlja3N1ZmZpeDphLnRpY2tzdWZmaXgsc2hvd2V4cG9uZW50OmEuc2hvd2V4cG9uZW50LGV4cG9uZW50Zm9ybWF0OmEuZXhwb25lbnRmb3JtYXQsbWluZXhwb25lbnQ6YS5taW5leHBvbmVudCxzZXBhcmF0ZXRob3VzYW5kczphLnNlcGFyYXRldGhvdXNhbmRzLHRpY2tmb250OmEudGlja2ZvbnQsdGlja2FuZ2xlOmEudGlja2FuZ2xlLHRpY2tmb3JtYXQ6YS50aWNrZm9ybWF0LHRpY2tmb3JtYXRzdG9wczphLnRpY2tmb3JtYXRzdG9wcyxob3ZlcmZvcm1hdDphLmhvdmVyZm9ybWF0LHNob3dsaW5lOnMoe30sYS5zaG93bGluZSx7ZGZsdDohMH0pLGxpbmVjb2xvcjphLmxpbmVjb2xvcixsaW5ld2lkdGg6YS5saW5ld2lkdGgsc2hvd2dyaWQ6cyh7fSxhLnNob3dncmlkLHtkZmx0OiEwfSksZ3JpZGNvbG9yOmEuZ3JpZGNvbG9yLGdyaWR3aWR0aDphLmdyaWR3aWR0aCxncmlkZGFzaDphLmdyaWRkYXNoLGxheWVyOmEubGF5ZXIsbWluOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MCxtaW46MH0sX2RlcHJlY2F0ZWQ6e3RpdGxlOmEuX2RlcHJlY2F0ZWQudGl0bGUsdGl0bGVmb250OmEuX2RlcHJlY2F0ZWQudGl0bGVmb250fX0sYz1lLmV4cG9ydHM9byh7ZG9tYWluOmkoe25hbWU6InRlcm5hcnkifSksYmdjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6bi5iYWNrZ3JvdW5kfSxzdW06e3ZhbFR5cGU6Im51bWJlciIsZGZsdDoxLG1pbjowfSxhYXhpczpsLGJheGlzOmwsY2F4aXM6bH0sInBsb3QiLCJmcm9tLXJvb3QiKTtjLnVpcmV2aXNpb249e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6Im5vbmUifSxjLmFheGlzLnVpcmV2aXNpb249Yy5iYXhpcy51aXJldmlzaW9uPWMuY2F4aXMudWlyZXZpc2lvbj17dmFsVHlwZToiYW55IixlZGl0VHlwZToibm9uZSJ9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IvYXR0cmlidXRlcyI6MzY2LCIuLi8uLi9saWIvZXh0ZW5kIjo1MDUsIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiOjU0OCwiLi4vY2FydGVzaWFuL2xheW91dF9hdHRyaWJ1dGVzIjo1NzksIi4uL2RvbWFpbiI6NTkzfV0sNjQ1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxpPXQoIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKSxhPXQoIi4uLy4uL2xpYiIpLG89dCgiLi4vc3VicGxvdF9kZWZhdWx0cyIpLHM9dCgiLi4vY2FydGVzaWFuL3RpY2tfbGFiZWxfZGVmYXVsdHMiKSxsPXQoIi4uL2NhcnRlc2lhbi9wcmVmaXhfc3VmZml4X2RlZmF1bHRzIiksYz10KCIuLi9jYXJ0ZXNpYW4vdGlja19tYXJrX2RlZmF1bHRzIiksdT10KCIuLi9jYXJ0ZXNpYW4vdGlja192YWx1ZV9kZWZhdWx0cyIpLGY9dCgiLi4vY2FydGVzaWFuL2xpbmVfZ3JpZF9kZWZhdWx0cyIpLGg9dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpLHA9WyJhYXhpcyIsImJheGlzIiwiY2F4aXMiXTtmdW5jdGlvbiBkKHQsZSxyLGEpe3ZhciBvLHMsbCxjPXIoImJnY29sb3IiKSx1PXIoInN1bSIpO2EuYmdDb2xvcj1uLmNvbWJpbmUoYyxhLnBhcGVyX2JnY29sb3IpO2Zvcih2YXIgZj0wO2Y8cC5sZW5ndGg7ZisrKXM9dFtvPXBbZl1dfHx7fSwobD1pLm5ld0NvbnRhaW5lcihlLG8pKS5fbmFtZT1vLG0ocyxsLGEsZSk7dmFyIGg9ZS5hYXhpcyxkPWUuYmF4aXMsZz1lLmNheGlzO2gubWluK2QubWluK2cubWluPj11JiYoaC5taW49MCxkLm1pbj0wLGcubWluPTAsdC5hYXhpcyYmZGVsZXRlIHQuYWF4aXMubWluLHQuYmF4aXMmJmRlbGV0ZSB0LmJheGlzLm1pbix0LmNheGlzJiZkZWxldGUgdC5jYXhpcy5taW4pfWZ1bmN0aW9uIG0odCxlLHIsbil7dmFyIGk9aFtlLl9uYW1lXTtmdW5jdGlvbiBvKHIsbil7cmV0dXJuIGEuY29lcmNlKHQsZSxpLHIsbil9bygidWlyZXZpc2lvbiIsbi51aXJldmlzaW9uKSxlLnR5cGU9ImxpbmVhciI7dmFyIHA9bygiY29sb3IiKSxkPXAhPT1pLmNvbG9yLmRmbHQ/cDpyLmZvbnQuY29sb3IsbT1lLl9uYW1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpLGc9IkNvbXBvbmVudCAiK20sdj1vKCJ0aXRsZS50ZXh0IixnKTtlLl9ob3ZlcnRpdGxlPXY9PT1nP3Y6bSxhLmNvZXJjZUZvbnQobywidGl0bGUuZm9udCIse2ZhbWlseTpyLmZvbnQuZmFtaWx5LHNpemU6YS5iaWdGb250KHIuZm9udC5zaXplKSxjb2xvcjpkfSksbygibWluIiksdSh0LGUsbywibGluZWFyIiksbCh0LGUsbywibGluZWFyIikscyh0LGUsbywibGluZWFyIiksYyh0LGUsbyx7b3V0ZXJUaWNrczohMH0pLG8oInNob3d0aWNrbGFiZWxzIikmJihhLmNvZXJjZUZvbnQobywidGlja2ZvbnQiLHtmYW1pbHk6ci5mb250LmZhbWlseSxzaXplOnIuZm9udC5zaXplLGNvbG9yOmR9KSxvKCJ0aWNrYW5nbGUiKSxvKCJ0aWNrZm9ybWF0IikpLGYodCxlLG8se2RmbHRDb2xvcjpwLGJnQ29sb3I6ci5iZ0NvbG9yLGJsZW5kOjYwLHNob3dMaW5lOiEwLHNob3dHcmlkOiEwLG5vWmVyb0xpbmU6ITAsYXR0cmlidXRlczppfSksbygiaG92ZXJmb3JtYXQiKSxvKCJsYXllciIpfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7byh0LGUscix7dHlwZToidGVybmFyeSIsYXR0cmlidXRlczpoLGhhbmRsZURlZmF1bHRzOmQsZm9udDplLmZvbnQscGFwZXJfYmdjb2xvcjplLnBhcGVyX2JnY29sb3J9KX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6MzY3LCIuLi8uLi9saWIiOjUxNSwiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6NTU1LCIuLi9jYXJ0ZXNpYW4vbGluZV9ncmlkX2RlZmF1bHRzIjo1ODEsIi4uL2NhcnRlc2lhbi9wcmVmaXhfc3VmZml4X2RlZmF1bHRzIjo1ODMsIi4uL2NhcnRlc2lhbi90aWNrX2xhYmVsX2RlZmF1bHRzIjo1ODcsIi4uL2NhcnRlc2lhbi90aWNrX21hcmtfZGVmYXVsdHMiOjU4OCwiLi4vY2FydGVzaWFuL3RpY2tfdmFsdWVfZGVmYXVsdHMiOjU4OSwiLi4vc3VicGxvdF9kZWZhdWx0cyI6NjQxLCIuL2xheW91dF9hdHRyaWJ1dGVzIjo2NDR9XSw2NDY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgidGlueWNvbG9yMiIpLGE9dCgiLi4vLi4vcmVnaXN0cnkiKSxvPXQoIi4uLy4uL2xpYiIpLHM9by5zdHJUcmFuc2xhdGUsbD1vLl8sYz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksdT10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxmPXQoIi4uL2NhcnRlc2lhbi9zZXRfY29udmVydCIpLGg9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQscD10KCIuLi9wbG90cyIpLGQ9dCgiLi4vY2FydGVzaWFuL2F4ZXMiKSxtPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhZ2VsZW1lbnQiKSxnPXQoIi4uLy4uL2NvbXBvbmVudHMvZngiKSx2PXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhZ2VsZW1lbnQvaGVscGVycyIpLHk9di5mcmVlTW9kZSx4PXYucmVjdE1vZGUsYj10KCIuLi8uLi9jb21wb25lbnRzL3RpdGxlcyIpLF89dCgiLi4vLi4vY29tcG9uZW50cy9zZWxlY3Rpb25zIikucHJlcFNlbGVjdCx3PXQoIi4uLy4uL2NvbXBvbmVudHMvc2VsZWN0aW9ucyIpLnNlbGVjdE9uQ2xpY2ssVD10KCIuLi8uLi9jb21wb25lbnRzL3NlbGVjdGlvbnMiKS5jbGVhck91dGxpbmUsaz10KCIuLi8uLi9jb21wb25lbnRzL3NlbGVjdGlvbnMiKS5jbGVhclNlbGVjdGlvbnNDYWNoZSxBPXQoIi4uL2NhcnRlc2lhbi9jb25zdGFudHMiKTtmdW5jdGlvbiBNKHQsZSl7dGhpcy5pZD10LmlkLHRoaXMuZ3JhcGhEaXY9dC5ncmFwaERpdix0aGlzLmluaXQoZSksdGhpcy5tYWtlRnJhbWV3b3JrKGUpLHRoaXMuYVRpY2tMYXlvdXQ9bnVsbCx0aGlzLmJUaWNrTGF5b3V0PW51bGwsdGhpcy5jVGlja0xheW91dD1udWxsfWUuZXhwb3J0cz1NO3ZhciBTPU0ucHJvdG90eXBlO1MuaW5pdD1mdW5jdGlvbih0KXt0aGlzLmNvbnRhaW5lcj10Ll90ZXJuYXJ5bGF5ZXIsdGhpcy5kZWZzPXQuX2RlZnMsdGhpcy5sYXlvdXRJZD10Ll91aWQsdGhpcy50cmFjZUhhc2g9e30sdGhpcy5sYXllcnM9e319LFMucGxvdD1mdW5jdGlvbih0LGUpe3ZhciByPWVbdGhpcy5pZF0sbj1lLl9zaXplO3RoaXMuX2hhc0NsaXBPbkF4aXNGYWxzZT0hMTtmb3IodmFyIGk9MDtpPHQubGVuZ3RoO2krKyl7aWYoITE9PT10W2ldWzBdLnRyYWNlLmNsaXBvbmF4aXMpe3RoaXMuX2hhc0NsaXBPbkF4aXNGYWxzZT0hMDticmVha319dGhpcy51cGRhdGVMYXllcnMociksdGhpcy5hZGp1c3RMYXlvdXQocixuKSxwLmdlbmVyYWxVcGRhdGVQZXJUcmFjZU1vZHVsZSh0aGlzLmdyYXBoRGl2LHRoaXMsdCxyKSx0aGlzLmxheWVycy5wbG90Ymcuc2VsZWN0KCJwYXRoIikuY2FsbChjLmZpbGwsci5iZ2NvbG9yKX0sUy5tYWtlRnJhbWV3b3JrPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZ3JhcGhEaXYscj10W3RoaXMuaWRdLG49dGhpcy5jbGlwSWQ9ImNsaXAiK3RoaXMubGF5b3V0SWQrdGhpcy5pZCxpPXRoaXMuY2xpcElkUmVsYXRpdmU9ImNsaXAtcmVsYXRpdmUiK3RoaXMubGF5b3V0SWQrdGhpcy5pZDt0aGlzLmNsaXBEZWY9by5lbnN1cmVTaW5nbGVCeUlkKHQuX2NsaXBzLCJjbGlwUGF0aCIsbiwoZnVuY3Rpb24odCl7dC5hcHBlbmQoInBhdGgiKS5hdHRyKCJkIiwiTTAsMFoiKX0pKSx0aGlzLmNsaXBEZWZSZWxhdGl2ZT1vLmVuc3VyZVNpbmdsZUJ5SWQodC5fY2xpcHMsImNsaXBQYXRoIixpLChmdW5jdGlvbih0KXt0LmFwcGVuZCgicGF0aCIpLmF0dHIoImQiLCJNMCwwWiIpfSkpLHRoaXMucGxvdENvbnRhaW5lcj1vLmVuc3VyZVNpbmdsZSh0aGlzLmNvbnRhaW5lciwiZyIsdGhpcy5pZCksdGhpcy51cGRhdGVMYXllcnMociksdS5zZXRDbGlwVXJsKHRoaXMubGF5ZXJzLmJhY2twbG90LG4sZSksdS5zZXRDbGlwVXJsKHRoaXMubGF5ZXJzLmdyaWRzLG4sZSl9LFMudXBkYXRlTGF5ZXJzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubGF5ZXJzLHI9WyJkcmFnbGF5ZXIiLCJwbG90YmciLCJiYWNrcGxvdCIsImdyaWRzIl07ImJlbG93IHRyYWNlcyI9PT10LmFheGlzLmxheWVyJiZyLnB1c2goImFheGlzIiwiYWxpbmUiKSwiYmVsb3cgdHJhY2VzIj09PXQuYmF4aXMubGF5ZXImJnIucHVzaCgiYmF4aXMiLCJibGluZSIpLCJiZWxvdyB0cmFjZXMiPT09dC5jYXhpcy5sYXllciYmci5wdXNoKCJjYXhpcyIsImNsaW5lIiksci5wdXNoKCJmcm9udHBsb3QiKSwiYWJvdmUgdHJhY2VzIj09PXQuYWF4aXMubGF5ZXImJnIucHVzaCgiYWF4aXMiLCJhbGluZSIpLCJhYm92ZSB0cmFjZXMiPT09dC5iYXhpcy5sYXllciYmci5wdXNoKCJiYXhpcyIsImJsaW5lIiksImFib3ZlIHRyYWNlcyI9PT10LmNheGlzLmxheWVyJiZyLnB1c2goImNheGlzIiwiY2xpbmUiKTt2YXIgaT10aGlzLnBsb3RDb250YWluZXIuc2VsZWN0QWxsKCJnLnRvcGxldmVsIikuZGF0YShyLFN0cmluZyksYT1bImFncmlkIiwiYmdyaWQiLCJjZ3JpZCJdO2kuZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsKGZ1bmN0aW9uKHQpe3JldHVybiJ0b3BsZXZlbCAiK3R9KSkuZWFjaCgoZnVuY3Rpb24odCl7dmFyIHI9bi5zZWxlY3QodGhpcyk7ZVt0XT1yLCJmcm9udHBsb3QiPT09dD9yLmFwcGVuZCgiZyIpLmNsYXNzZWQoInNjYXR0ZXJsYXllciIsITApOiJiYWNrcGxvdCI9PT10P3IuYXBwZW5kKCJnIikuY2xhc3NlZCgibWFwbGF5ZXIiLCEwKToicGxvdGJnIj09PXQ/ci5hcHBlbmQoInBhdGgiKS5hdHRyKCJkIiwiTTAsMFoiKToiYWxpbmUiPT09dHx8ImJsaW5lIj09PXR8fCJjbGluZSI9PT10P3IuYXBwZW5kKCJwYXRoIik6ImdyaWRzIj09PXQmJmEuZm9yRWFjaCgoZnVuY3Rpb24odCl7ZVt0XT1yLmFwcGVuZCgiZyIpLmNsYXNzZWQoImdyaWQgIit0LCEwKX0pKX0pKSxpLm9yZGVyKCl9O3ZhciBFPU1hdGguc3FydCg0LzMpO1MuYWRqdXN0TGF5b3V0PWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixpLGEsbyxsLHA9dGhpcyxkPXQuZG9tYWluLG09KGQueFswXStkLnhbMV0pLzIsZz0oZC55WzBdK2QueVsxXSkvMix2PWQueFsxXS1kLnhbMF0seT1kLnlbMV0tZC55WzBdLHg9diplLncsYj15KmUuaCxfPXQuc3VtLHc9dC5hYXhpcy5taW4sVD10LmJheGlzLm1pbixrPXQuY2F4aXMubWluO3g+RSpiP2k9KGE9YikqRTphPShpPXgpL0Usbz12KmkveCxsPXkqYS9iLHI9ZS5sK2UudyptLWkvMixuPWUudCtlLmgqKDEtZyktYS8yLHAueDA9cixwLnkwPW4scC53PWkscC5oPWEscC5zdW09XyxwLnhheGlzPXt0eXBlOiJsaW5lYXIiLHJhbmdlOlt3KzIqay1fLF8tdy0yKlRdLGRvbWFpbjpbbS1vLzIsbStvLzJdLF9pZDoieCJ9LGYocC54YXhpcyxwLmdyYXBoRGl2Ll9mdWxsTGF5b3V0KSxwLnhheGlzLnNldFNjYWxlKCkscC54YXhpcy5pc1B0V2l0aGluUmFuZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIHQuYT49cC5hYXhpcy5yYW5nZVswXSYmdC5hPD1wLmFheGlzLnJhbmdlWzFdJiZ0LmI+PXAuYmF4aXMucmFuZ2VbMV0mJnQuYjw9cC5iYXhpcy5yYW5nZVswXSYmdC5jPj1wLmNheGlzLnJhbmdlWzFdJiZ0LmM8PXAuY2F4aXMucmFuZ2VbMF19LHAueWF4aXM9e3R5cGU6ImxpbmVhciIscmFuZ2U6W3csXy1ULWtdLGRvbWFpbjpbZy1sLzIsZytsLzJdLF9pZDoieSJ9LGYocC55YXhpcyxwLmdyYXBoRGl2Ll9mdWxsTGF5b3V0KSxwLnlheGlzLnNldFNjYWxlKCkscC55YXhpcy5pc1B0V2l0aGluUmFuZ2U9ZnVuY3Rpb24oKXtyZXR1cm4hMH07dmFyIEE9cC55YXhpcy5kb21haW5bMF0sTT1wLmFheGlzPWgoe30sdC5hYXhpcyx7cmFuZ2U6W3csXy1ULWtdLHNpZGU6ImxlZnQiLHRpY2thbmdsZTooK3QuYWF4aXMudGlja2FuZ2xlfHwwKS0zMCxkb21haW46W0EsQStsKkVdLGFuY2hvcjoiZnJlZSIscG9zaXRpb246MCxfaWQ6InkiLF9sZW5ndGg6aX0pO2YoTSxwLmdyYXBoRGl2Ll9mdWxsTGF5b3V0KSxNLnNldFNjYWxlKCk7dmFyIFM9cC5iYXhpcz1oKHt9LHQuYmF4aXMse3JhbmdlOltfLXctayxUXSxzaWRlOiJib3R0b20iLGRvbWFpbjpwLnhheGlzLmRvbWFpbixhbmNob3I6ImZyZWUiLHBvc2l0aW9uOjAsX2lkOiJ4IixfbGVuZ3RoOml9KTtmKFMscC5ncmFwaERpdi5fZnVsbExheW91dCksUy5zZXRTY2FsZSgpO3ZhciBMPXAuY2F4aXM9aCh7fSx0LmNheGlzLHtyYW5nZTpbXy13LVQsa10sc2lkZToicmlnaHQiLHRpY2thbmdsZTooK3QuY2F4aXMudGlja2FuZ2xlfHwwKSszMCxkb21haW46W0EsQStsKkVdLGFuY2hvcjoiZnJlZSIscG9zaXRpb246MCxfaWQ6InkiLF9sZW5ndGg6aX0pO2YoTCxwLmdyYXBoRGl2Ll9mdWxsTGF5b3V0KSxMLnNldFNjYWxlKCk7dmFyIEM9Ik0iK3IrIiwiKyhuK2EpKyJoIitpKyJsLSIraS8yKyIsLSIrYSsiWiI7cC5jbGlwRGVmLnNlbGVjdCgicGF0aCIpLmF0dHIoImQiLEMpLHAubGF5ZXJzLnBsb3RiZy5zZWxlY3QoInBhdGgiKS5hdHRyKCJkIixDKTt2YXIgUD0iTTAsIithKyJoIitpKyJsLSIraS8yKyIsLSIrYSsiWiI7cC5jbGlwRGVmUmVsYXRpdmUuc2VsZWN0KCJwYXRoIikuYXR0cigiZCIsUCk7dmFyIEk9cyhyLG4pO3AucGxvdENvbnRhaW5lci5zZWxlY3RBbGwoIi5zY2F0dGVybGF5ZXIsLm1hcGxheWVyIikuYXR0cigidHJhbnNmb3JtIixJKSxwLmNsaXBEZWZSZWxhdGl2ZS5zZWxlY3QoInBhdGgiKS5hdHRyKCJ0cmFuc2Zvcm0iLG51bGwpO3ZhciBPPXMoci1TLl9vZmZzZXQsbithKTtwLmxheWVycy5iYXhpcy5hdHRyKCJ0cmFuc2Zvcm0iLE8pLHAubGF5ZXJzLmJncmlkLmF0dHIoInRyYW5zZm9ybSIsTyk7dmFyIHo9cyhyK2kvMixuKSsicm90YXRlKDMwKSIrcygwLC1NLl9vZmZzZXQpO3AubGF5ZXJzLmFheGlzLmF0dHIoInRyYW5zZm9ybSIseikscC5sYXllcnMuYWdyaWQuYXR0cigidHJhbnNmb3JtIix6KTt2YXIgRD1zKHIraS8yLG4pKyJyb3RhdGUoLTMwKSIrcygwLC1MLl9vZmZzZXQpO3AubGF5ZXJzLmNheGlzLmF0dHIoInRyYW5zZm9ybSIsRCkscC5sYXllcnMuY2dyaWQuYXR0cigidHJhbnNmb3JtIixEKSxwLmRyYXdBeGVzKCEwKSxwLmxheWVycy5hbGluZS5zZWxlY3QoInBhdGgiKS5hdHRyKCJkIixNLnNob3dsaW5lPyJNIityKyIsIisobithKSsibCIraS8yKyIsLSIrYToiTTAsMCIpLmNhbGwoYy5zdHJva2UsTS5saW5lY29sb3J8fCIjMDAwIikuc3R5bGUoInN0cm9rZS13aWR0aCIsKE0ubGluZXdpZHRofHwwKSsicHgiKSxwLmxheWVycy5ibGluZS5zZWxlY3QoInBhdGgiKS5hdHRyKCJkIixTLnNob3dsaW5lPyJNIityKyIsIisobithKSsiaCIraToiTTAsMCIpLmNhbGwoYy5zdHJva2UsUy5saW5lY29sb3J8fCIjMDAwIikuc3R5bGUoInN0cm9rZS13aWR0aCIsKFMubGluZXdpZHRofHwwKSsicHgiKSxwLmxheWVycy5jbGluZS5zZWxlY3QoInBhdGgiKS5hdHRyKCJkIixMLnNob3dsaW5lPyJNIisocitpLzIpKyIsIituKyJsIitpLzIrIiwiK2E6Ik0wLDAiKS5jYWxsKGMuc3Ryb2tlLEwubGluZWNvbG9yfHwiIzAwMCIpLnN0eWxlKCJzdHJva2Utd2lkdGgiLChMLmxpbmV3aWR0aHx8MCkrInB4IikscC5ncmFwaERpdi5fY29udGV4dC5zdGF0aWNQbG90fHxwLmluaXRJbnRlcmFjdGlvbnMoKSx1LnNldENsaXBVcmwocC5sYXllcnMuZnJvbnRwbG90LHAuX2hhc0NsaXBPbkF4aXNGYWxzZT9udWxsOnAuY2xpcElkLHAuZ3JhcGhEaXYpfSxTLmRyYXdBeGVzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZ3JhcGhEaXYscj10aGlzLmlkLnN1YnN0cig3KSsidGl0bGUiLG49dGhpcy5sYXllcnMsaT10aGlzLmFheGlzLGE9dGhpcy5iYXhpcyxvPXRoaXMuY2F4aXM7aWYodGhpcy5kcmF3QXgoaSksdGhpcy5kcmF3QXgoYSksdGhpcy5kcmF3QXgobyksdCl7dmFyIHM9TWF0aC5tYXgoaS5zaG93dGlja2xhYmVscz9pLnRpY2tmb250LnNpemUvMjowLChvLnNob3d0aWNrbGFiZWxzPy43NSpvLnRpY2tmb250LnNpemU6MCkrKCJvdXRzaWRlIj09PW8udGlja3M/Ljg3Km8udGlja2xlbjowKSksYz0oYS5zaG93dGlja2xhYmVscz9hLnRpY2tmb250LnNpemU6MCkrKCJvdXRzaWRlIj09PWEudGlja3M/YS50aWNrbGVuOjApKzM7blsiYS10aXRsZSJdPWIuZHJhdyhlLCJhIityLHtwcm9wQ29udGFpbmVyOmkscHJvcE5hbWU6dGhpcy5pZCsiLmFheGlzLnRpdGxlIixwbGFjZWhvbGRlcjpsKGUsIkNsaWNrIHRvIGVudGVyIENvbXBvbmVudCBBIHRpdGxlIiksYXR0cmlidXRlczp7eDp0aGlzLngwK3RoaXMudy8yLHk6dGhpcy55MC1pLnRpdGxlLmZvbnQuc2l6ZS8zLXMsInRleHQtYW5jaG9yIjoibWlkZGxlIn19KSxuWyJiLXRpdGxlIl09Yi5kcmF3KGUsImIiK3Ise3Byb3BDb250YWluZXI6YSxwcm9wTmFtZTp0aGlzLmlkKyIuYmF4aXMudGl0bGUiLHBsYWNlaG9sZGVyOmwoZSwiQ2xpY2sgdG8gZW50ZXIgQ29tcG9uZW50IEIgdGl0bGUiKSxhdHRyaWJ1dGVzOnt4OnRoaXMueDAtYyx5OnRoaXMueTArdGhpcy5oKy44MyphLnRpdGxlLmZvbnQuc2l6ZStjLCJ0ZXh0LWFuY2hvciI6Im1pZGRsZSJ9fSksblsiYy10aXRsZSJdPWIuZHJhdyhlLCJjIityLHtwcm9wQ29udGFpbmVyOm8scHJvcE5hbWU6dGhpcy5pZCsiLmNheGlzLnRpdGxlIixwbGFjZWhvbGRlcjpsKGUsIkNsaWNrIHRvIGVudGVyIENvbXBvbmVudCBDIHRpdGxlIiksYXR0cmlidXRlczp7eDp0aGlzLngwK3RoaXMudytjLHk6dGhpcy55MCt0aGlzLmgrLjgzKm8udGl0bGUuZm9udC5zaXplK2MsInRleHQtYW5jaG9yIjoibWlkZGxlIn19KX19LFMuZHJhd0F4PWZ1bmN0aW9uKHQpe3ZhciBlLHI9dGhpcy5ncmFwaERpdixuPXQuX25hbWUsaT1uLmNoYXJBdCgwKSxhPXQuX2lkLHM9dGhpcy5sYXllcnNbbl0sbD1pKyJ0aWNrTGF5b3V0IixjPShlPXQpLnRpY2tzK1N0cmluZyhlLnRpY2tsZW4pK1N0cmluZyhlLnNob3d0aWNrbGFiZWxzKTt0aGlzW2xdIT09YyYmKHMuc2VsZWN0QWxsKCIuIithKyJ0aWNrIikucmVtb3ZlKCksdGhpc1tsXT1jKSx0LnNldFNjYWxlKCk7dmFyIHU9ZC5jYWxjVGlja3ModCksZj1kLmNsaXBFbmRzKHQsdSksaD1kLm1ha2VUcmFuc1RpY2tGbih0KSxwPWQuZ2V0VGlja1NpZ25zKHQpWzJdLG09by5kZWcycmFkKDMwKSxnPXAqKHQubGluZXdpZHRofHwxKS8yLHY9cCp0LnRpY2tsZW4seT10aGlzLncseD10aGlzLmgsYj0iYiI9PT1pPyJNMCwiK2crImwiK01hdGguc2luKG0pKnYrIiwiK01hdGguY29zKG0pKnY6Ik0iK2crIiwwbCIrTWF0aC5jb3MobSkqdisiLCIrLU1hdGguc2luKG0pKnYsXz17YToiTTAsMGwiK3grIiwtIit5LzIsYjoiTTAsMGwtIit5LzIrIiwtIit4LGM6Ik0wLDBsLSIreCsiLCIreS8yfVtpXTtkLmRyYXdUaWNrcyhyLHQse3ZhbHM6Imluc2lkZSI9PT10LnRpY2tzP2Y6dSxsYXllcjpzLHBhdGg6Yix0cmFuc0ZuOmgsY3Jpc3A6ITF9KSxkLmRyYXdHcmlkKHIsdCx7dmFsczpmLGxheWVyOnRoaXMubGF5ZXJzW2krImdyaWQiXSxwYXRoOl8sdHJhbnNGbjpoLGNyaXNwOiExfSksZC5kcmF3TGFiZWxzKHIsdCx7dmFsczp1LGxheWVyOnMsdHJhbnNGbjpoLGxhYmVsRm5zOmQubWFrZUxhYmVsRm5zKHQsMCwzMCl9KX07dmFyIEw9QS5NSU5aT09NLzIrLjg3LEM9Im0tMC44NywuNWgiK0wrInYzaC0iKyhMKzUuMikrImwiKyhMLzIrMi42KSsiLC0iKyguODcqTCs0LjUpKyJsMi42LDEuNWwtIitMLzIrIiwiKy44NypMKyJaIixQPSJtMC44NywuNWgtIitMKyJ2M2giKyhMKzUuMikrImwtIisoTC8yKzIuNikrIiwtIisoLjg3KkwrNC41KSsibC0yLjYsMS41bCIrTC8yKyIsIisuODcqTCsiWiIsST0ibTAsMWwiK0wvMisiLCIrLjg3KkwrImwyLjYsLTEuNWwtIisoTC8yKzIuNikrIiwtIisoLjg3KkwrNC41KSsibC0iKyhMLzIrMi42KSsiLCIrKC44NypMKzQuNSkrImwyLjYsMS41bCIrTC8yKyIsLSIrLjg3KkwrIloiLE89ITA7ZnVuY3Rpb24geih0KXtuLnNlbGVjdCh0KS5zZWxlY3RBbGwoIi56b29tYm94LC5qcy16b29tYm94LWJhY2tkcm9wLC5qcy16b29tYm94LW1lbnUsLnpvb21ib3gtY29ybmVycyIpLnJlbW92ZSgpfVMuY2xlYXJPdXRsaW5lPWZ1bmN0aW9uKCl7ayh0aGlzLmRyYWdPcHRpb25zKSxUKHRoaXMuZHJhZ09wdGlvbnMuZ2QpfSxTLmluaXRJbnRlcmFjdGlvbnM9ZnVuY3Rpb24oKXt2YXIgdCxlLHIsbixmLGgscCxkLHYsYixULGssTT10aGlzLFM9TS5sYXllcnMucGxvdGJnLnNlbGVjdCgicGF0aCIpLm5vZGUoKSxMPU0uZ3JhcGhEaXYsRD1MLl9mdWxsTGF5b3V0Ll96b29tbGF5ZXI7ZnVuY3Rpb24gUih0KXt2YXIgZT17fTtyZXR1cm4gZVtNLmlkKyIuYWF4aXMubWluIl09dC5hLGVbTS5pZCsiLmJheGlzLm1pbiJdPXQuYixlW00uaWQrIi5jYXhpcy5taW4iXT10LmMsZX1mdW5jdGlvbiBGKHQsZSl7dmFyIHI9TC5fZnVsbExheW91dC5jbGlja21vZGU7eihMKSwyPT09dCYmKEwuZW1pdCgicGxvdGx5X2RvdWJsZWNsaWNrIixudWxsKSxhLmNhbGwoIl9ndWlSZWxheW91dCIsTCxSKHthOjAsYjowLGM6MH0pKSksci5pbmRleE9mKCJzZWxlY3QiKT4tMSYmMT09PXQmJncoZSxMLFtNLnhheGlzXSxbTS55YXhpc10sTS5pZCxNLmRyYWdPcHRpb25zKSxyLmluZGV4T2YoImV2ZW50Iik+LTEmJmcuY2xpY2soTCxlLE0uaWQpfWZ1bmN0aW9uIEIodCxlKXtyZXR1cm4gMS1lL00uaH1mdW5jdGlvbiBOKHQsZSl7cmV0dXJuIDEtKHQrKE0uaC1lKS9NYXRoLnNxcnQoMykpL00ud31mdW5jdGlvbiBqKHQsZSl7cmV0dXJuKHQtKE0uaC1lKS9NYXRoLnNxcnQoMykpL00ud31mdW5jdGlvbiBVKGksYSl7dmFyIG89citpKnQscz1uK2EqZSxsPU1hdGgubWF4KDAsTWF0aC5taW4oMSxCKDAsbiksQigwLHMpKSksYz1NYXRoLm1heCgwLE1hdGgubWluKDEsTihyLG4pLE4obyxzKSkpLHU9TWF0aC5tYXgoMCxNYXRoLm1pbigxLGoocixuKSxqKG8scykpKSxtPShsLzIrdSkqTS53LGc9KDEtbC8yLWMpKk0udyx5PShtK2cpLzIseD1nLW0sXz0oMS1sKSpNLmgsdz1fLXgvRTt4PEEuTUlOWk9PTT8ocD1mLFQuYXR0cigiZCIsdiksay5hdHRyKCJkIiwiTTAsMFoiKSk6KHA9e2E6Zi5hK2wqaCxiOmYuYitjKmgsYzpmLmMrdSpofSxULmF0dHIoImQiLHYrIk0iK20rIiwiK18rIkgiK2crIkwiK3krIiwiK3crIkwiK20rIiwiK18rIloiKSxrLmF0dHIoImQiLCJNIityKyIsIituKyJtMC41LDAuNWg1di0yaC01di01aC0ydjVoLTV2Mmg1djVoMlpNIittKyIsIitfK0MrIk0iK2crIiwiK18rUCsiTSIreSsiLCIrdytJKSksYnx8KFQudHJhbnNpdGlvbigpLnN0eWxlKCJmaWxsIixkPi4yPyJyZ2JhKDAsMCwwLDAuNCkiOiJyZ2JhKDI1NSwyNTUsMjU1LDAuMykiKS5kdXJhdGlvbigyMDApLGsudHJhbnNpdGlvbigpLnN0eWxlKCJvcGFjaXR5IiwxKS5kdXJhdGlvbigyMDApLGI9ITApLEwuZW1pdCgicGxvdGx5X3JlbGF5b3V0aW5nIixSKHApKX1mdW5jdGlvbiBWKCl7eihMKSxwIT09ZiYmKGEuY2FsbCgiX2d1aVJlbGF5b3V0IixMLFIocCkpLE8mJkwuZGF0YSYmTC5fY29udGV4dC5zaG93VGlwcyYmKG8ubm90aWZpZXIobChMLCJEb3VibGUtY2xpY2sgdG8gem9vbSBiYWNrIG91dCIpLCJsb25nIiksTz0hMSkpfWZ1bmN0aW9uIEgodCxlKXt2YXIgcj10L00ueGF4aXMuX20sbj1lL00ueWF4aXMuX20saT1bKHA9e2E6Zi5hLW4sYjpmLmIrKHIrbikvMixjOmYuYy0oci1uKS8yfSkuYSxwLmIscC5jXS5zb3J0KG8uc29ydGVyQXNjKSxhPWkuaW5kZXhPZihwLmEpLGw9aS5pbmRleE9mKHAuYiksYz1pLmluZGV4T2YocC5jKTtpWzBdPDAmJihpWzFdK2lbMF0vMjwwPyhpWzJdKz1pWzBdK2lbMV0saVswXT1pWzFdPTApOihpWzJdKz1pWzBdLzIsaVsxXSs9aVswXS8yLGlbMF09MCkscD17YTppW2FdLGI6aVtsXSxjOmlbY119LGU9KGYuYS1wLmEpKk0ueWF4aXMuX20sdD0oZi5jLXAuYy1mLmIrcC5iKSpNLnhheGlzLl9tKTt2YXIgaD1zKE0ueDArdCxNLnkwK2UpO00ucGxvdENvbnRhaW5lci5zZWxlY3RBbGwoIi5zY2F0dGVybGF5ZXIsLm1hcGxheWVyIikuYXR0cigidHJhbnNmb3JtIixoKTt2YXIgZD1zKC10LC1lKTtNLmNsaXBEZWZSZWxhdGl2ZS5zZWxlY3QoInBhdGgiKS5hdHRyKCJ0cmFuc2Zvcm0iLGQpLE0uYWF4aXMucmFuZ2U9W3AuYSxNLnN1bS1wLmItcC5jXSxNLmJheGlzLnJhbmdlPVtNLnN1bS1wLmEtcC5jLHAuYl0sTS5jYXhpcy5yYW5nZT1bTS5zdW0tcC5hLXAuYixwLmNdLE0uZHJhd0F4ZXMoITEpLE0uX2hhc0NsaXBPbkF4aXNGYWxzZSYmTS5wbG90Q29udGFpbmVyLnNlbGVjdCgiLnNjYXR0ZXJsYXllciIpLnNlbGVjdEFsbCgiLnRyYWNlIikuY2FsbCh1LmhpZGVPdXRzaWRlUmFuZ2VQb2ludHMsTSksTC5lbWl0KCJwbG90bHlfcmVsYXlvdXRpbmciLFIocCkpfWZ1bmN0aW9uIHEoKXthLmNhbGwoIl9ndWlSZWxheW91dCIsTCxSKHApKX10aGlzLmRyYWdPcHRpb25zPXtlbGVtZW50OlMsZ2Q6TCxwbG90aW5mbzp7aWQ6TS5pZCxkb21haW46TC5fZnVsbExheW91dFtNLmlkXS5kb21haW4seGF4aXM6TS54YXhpcyx5YXhpczpNLnlheGlzfSxzdWJwbG90Ok0uaWQscHJlcEZuOmZ1bmN0aW9uKGEsbCx1KXtNLmRyYWdPcHRpb25zLnhheGVzPVtNLnhheGlzXSxNLmRyYWdPcHRpb25zLnlheGVzPVtNLnlheGlzXSx0PUwuX2Z1bGxMYXlvdXQuX2ludlNjYWxlWCxlPUwuX2Z1bGxMYXlvdXQuX2ludlNjYWxlWTt2YXIgbT1NLmRyYWdPcHRpb25zLmRyYWdtb2RlPUwuX2Z1bGxMYXlvdXQuZHJhZ21vZGU7eShtKT9NLmRyYWdPcHRpb25zLm1pbkRyYWc9MTpNLmRyYWdPcHRpb25zLm1pbkRyYWc9dm9pZCAwLCJ6b29tIj09PW0/KE0uZHJhZ09wdGlvbnMubW92ZUZuPVUsTS5kcmFnT3B0aW9ucy5jbGlja0ZuPUYsTS5kcmFnT3B0aW9ucy5kb25lRm49VixmdW5jdGlvbih0LGUsYSl7dmFyIGw9Uy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyPWUtbC5sZWZ0LG49YS1sLnRvcCxMLl9mdWxsTGF5b3V0Ll9jYWxjSW52ZXJzZVRyYW5zZm9ybShMKTt2YXIgdT1MLl9mdWxsTGF5b3V0Ll9pbnZUcmFuc2Zvcm0sbT1vLmFwcGx5M0RUcmFuc2Zvcm0odSkocixuKTtyPW1bMF0sbj1tWzFdLGY9e2E6TS5hYXhpcy5yYW5nZVswXSxiOk0uYmF4aXMucmFuZ2VbMV0sYzpNLmNheGlzLnJhbmdlWzFdfSxwPWYsaD1NLmFheGlzLnJhbmdlWzFdLWYuYSxkPWkoTS5ncmFwaERpdi5fZnVsbExheW91dFtNLmlkXS5iZ2NvbG9yKS5nZXRMdW1pbmFuY2UoKSx2PSJNMCwiK00uaCsiTCIrTS53LzIrIiwgMEwiK00udysiLCIrTS5oKyJaIixiPSExLFQ9RC5hcHBlbmQoInBhdGgiKS5hdHRyKCJjbGFzcyIsInpvb21ib3giKS5hdHRyKCJ0cmFuc2Zvcm0iLHMoTS54MCxNLnkwKSkuc3R5bGUoe2ZpbGw6ZD4uMj8icmdiYSgwLDAsMCwwKSI6InJnYmEoMjU1LDI1NSwyNTUsMCkiLCJzdHJva2Utd2lkdGgiOjB9KS5hdHRyKCJkIix2KSxrPUQuYXBwZW5kKCJwYXRoIikuYXR0cigiY2xhc3MiLCJ6b29tYm94LWNvcm5lcnMiKS5hdHRyKCJ0cmFuc2Zvcm0iLHMoTS54MCxNLnkwKSkuc3R5bGUoe2ZpbGw6Yy5iYWNrZ3JvdW5kLHN0cm9rZTpjLmRlZmF1bHRMaW5lLCJzdHJva2Utd2lkdGgiOjEsb3BhY2l0eTowfSkuYXR0cigiZCIsIk0wLDBaIiksTS5jbGVhck91dGxpbmUoTCl9KDAsbCx1KSk6InBhbiI9PT1tPyhNLmRyYWdPcHRpb25zLm1vdmVGbj1ILE0uZHJhZ09wdGlvbnMuY2xpY2tGbj1GLE0uZHJhZ09wdGlvbnMuZG9uZUZuPXEsZj17YTpNLmFheGlzLnJhbmdlWzBdLGI6TS5iYXhpcy5yYW5nZVsxXSxjOk0uY2F4aXMucmFuZ2VbMV19LHA9ZixNLmNsZWFyT3V0bGluZShMKSk6KHgobSl8fHkobSkpJiZfKGEsbCx1LE0uZHJhZ09wdGlvbnMsbSl9fSxTLm9ubW91c2Vtb3ZlPWZ1bmN0aW9uKHQpe2cuaG92ZXIoTCx0LE0uaWQpLEwuX2Z1bGxMYXlvdXQuX2xhc3Rob3Zlcj1TLEwuX2Z1bGxMYXlvdXQuX2hvdmVyc3VicGxvdD1NLmlkfSxTLm9ubW91c2VvdXQ9ZnVuY3Rpb24odCl7TC5fZHJhZ2dpbmd8fG0udW5ob3ZlcihMLHQpfSxtLmluaXQodGhpcy5kcmFnT3B0aW9ucyl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjM2NywiLi4vLi4vY29tcG9uZW50cy9kcmFnZWxlbWVudCI6Mzg2LCIuLi8uLi9jb21wb25lbnRzL2RyYWdlbGVtZW50L2hlbHBlcnMiOjM4NSwiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjozODksIi4uLy4uL2NvbXBvbmVudHMvZngiOjQwNywiLi4vLi4vY29tcG9uZW50cy9zZWxlY3Rpb25zIjo0NTUsIi4uLy4uL2NvbXBvbmVudHMvdGl0bGVzIjo0NzYsIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9saWIvZXh0ZW5kIjo1MDUsIi4uLy4uL3JlZ2lzdHJ5Ijo2NDcsIi4uL2NhcnRlc2lhbi9heGVzIjo1NjYsIi4uL2NhcnRlc2lhbi9jb25zdGFudHMiOjU3MywiLi4vY2FydGVzaWFuL3NldF9jb252ZXJ0Ijo1ODUsIi4uL3Bsb3RzIjo2MjgsIkBwbG90bHkvZDMiOjU4LHRpbnljb2xvcjI6MzEzfV0sNjQ3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vbGliL2xvZ2dlcnMiKSxpPXQoIi4vbGliL25vb3AiKSxhPXQoIi4vbGliL3B1c2hfdW5pcXVlIiksbz10KCIuL2xpYi9pc19wbGFpbl9vYmplY3QiKSxzPXQoIi4vbGliL2RvbSIpLmFkZFN0eWxlUnVsZSxsPXQoIi4vbGliL2V4dGVuZCIpLGM9dCgiLi9wbG90cy9hdHRyaWJ1dGVzIiksdT10KCIuL3Bsb3RzL2xheW91dF9hdHRyaWJ1dGVzIiksZj1sLmV4dGVuZEZsYXQsaD1sLmV4dGVuZERlZXBBbGw7ZnVuY3Rpb24gcCh0KXt2YXIgZT10Lm5hbWUsaT10LmNhdGVnb3JpZXMsYT10Lm1ldGE7aWYoci5tb2R1bGVzW2VdKW4ubG9nKCJUeXBlICIrZSsiIGFscmVhZHkgcmVnaXN0ZXJlZCIpO2Vsc2V7ci5zdWJwbG90c1JlZ2lzdHJ5W3QuYmFzZVBsb3RNb2R1bGUubmFtZV18fGZ1bmN0aW9uKHQpe3ZhciBlPXQubmFtZTtpZihyLnN1YnBsb3RzUmVnaXN0cnlbZV0pcmV0dXJuIHZvaWQgbi5sb2coIlBsb3QgdHlwZSAiK2UrIiBhbHJlYWR5IHJlZ2lzdGVyZWQuIik7Zm9yKHZhciBpIGluIHYodCksci5zdWJwbG90c1JlZ2lzdHJ5W2VdPXQsci5jb21wb25lbnRzUmVnaXN0cnkpYihpLHQubmFtZSl9KHQuYmFzZVBsb3RNb2R1bGUpO2Zvcih2YXIgbz17fSxsPTA7bDxpLmxlbmd0aDtsKyspb1tpW2xdXT0hMCxyLmFsbENhdGVnb3JpZXNbaVtsXV09ITA7Zm9yKHZhciBjIGluIHIubW9kdWxlc1tlXT17X21vZHVsZTp0LGNhdGVnb3JpZXM6b30sYSYmT2JqZWN0LmtleXMoYSkubGVuZ3RoJiYoci5tb2R1bGVzW2VdLm1ldGE9YSksci5hbGxUeXBlcy5wdXNoKGUpLHIuY29tcG9uZW50c1JlZ2lzdHJ5KXkoYyxlKTt0LmxheW91dEF0dHJpYnV0ZXMmJmYoci50cmFjZUxheW91dEF0dHJpYnV0ZXMsdC5sYXlvdXRBdHRyaWJ1dGVzKTt2YXIgdT10LmJhc2VQbG90TW9kdWxlLGg9dS5uYW1lO2lmKCJtYXBib3giPT09aCl7dmFyIHA9dS5jb25zdGFudHMuc3R5bGVSdWxlcztmb3IodmFyIGQgaW4gcClzKCIuanMtcGxvdGx5LXBsb3QgLnBsb3RseSAubWFwYm94Z2wtIitkLHBbZF0pfSJnZW8iIT09aCYmIm1hcGJveCIhPT1ofHx2b2lkIDAhPT13aW5kb3cuUGxvdGx5R2VvQXNzZXRzfHwod2luZG93LlBsb3RseUdlb0Fzc2V0cz17dG9wb2pzb246e319KX19ZnVuY3Rpb24gZCh0KXtpZigic3RyaW5nIiE9dHlwZW9mIHQubmFtZSl0aHJvdyBuZXcgRXJyb3IoIkNvbXBvbmVudCBtb2R1bGUgKm5hbWUqIG11c3QgYmUgYSBzdHJpbmcuIik7dmFyIGU9dC5uYW1lO2Zvcih2YXIgbiBpbiByLmNvbXBvbmVudHNSZWdpc3RyeVtlXT10LHQubGF5b3V0QXR0cmlidXRlcyYmKHQubGF5b3V0QXR0cmlidXRlcy5faXNMaW5rZWRUb0FycmF5JiZhKHIubGF5b3V0QXJyYXlDb250YWluZXJzLGUpLHYodCkpLHIubW9kdWxlcyl5KGUsbik7Zm9yKHZhciBpIGluIHIuc3VicGxvdHNSZWdpc3RyeSliKGUsaSk7Zm9yKHZhciBvIGluIHIudHJhbnNmb3Jtc1JlZ2lzdHJ5KXgoZSxvKTt0LnNjaGVtYSYmdC5zY2hlbWEubGF5b3V0JiZoKHUsdC5zY2hlbWEubGF5b3V0KX1mdW5jdGlvbiBtKHQpe2lmKCJzdHJpbmciIT10eXBlb2YgdC5uYW1lKXRocm93IG5ldyBFcnJvcigiVHJhbnNmb3JtIG1vZHVsZSAqbmFtZSogbXVzdCBiZSBhIHN0cmluZy4iKTt2YXIgZT0iVHJhbnNmb3JtIG1vZHVsZSAiK3QubmFtZSxpPSJmdW5jdGlvbiI9PXR5cGVvZiB0LnRyYW5zZm9ybSxhPSJmdW5jdGlvbiI9PXR5cGVvZiB0LmNhbGNUcmFuc2Zvcm07aWYoIWkmJiFhKXRocm93IG5ldyBFcnJvcihlKyIgaXMgbWlzc2luZyBhICp0cmFuc2Zvcm0qIG9yICpjYWxjVHJhbnNmb3JtKiBtZXRob2QuIik7Zm9yKHZhciBzIGluIGkmJmEmJm4ubG9nKFtlKyIgaGFzIGJvdGggYSAqdHJhbnNmb3JtKiBhbmQgKmNhbGNUcmFuc2Zvcm0qIG1ldGhvZHMuIiwiUGxlYXNlIG5vdGUgdGhhdCBhbGwgKnRyYW5zZm9ybSogbWV0aG9kcyBhcmUgZXhlY3V0ZWQiLCJiZWZvcmUgYWxsICpjYWxjVHJhbnNmb3JtKiBtZXRob2RzLiJdLmpvaW4oIiAiKSksbyh0LmF0dHJpYnV0ZXMpfHxuLmxvZyhlKyIgcmVnaXN0ZXJlZCB3aXRob3V0IGFuICphdHRyaWJ1dGVzKiBvYmplY3QuIiksImZ1bmN0aW9uIiE9dHlwZW9mIHQuc3VwcGx5RGVmYXVsdHMmJm4ubG9nKGUrIiByZWdpc3RlcmVkIHdpdGhvdXQgYSAqc3VwcGx5RGVmYXVsdHMqIG1ldGhvZC4iKSxyLnRyYW5zZm9ybXNSZWdpc3RyeVt0Lm5hbWVdPXQsci5jb21wb25lbnRzUmVnaXN0cnkpeChzLHQubmFtZSl9ZnVuY3Rpb24gZyh0KXt2YXIgZT10Lm5hbWUsbj1lLnNwbGl0KCItIilbMF0saT10LmRpY3Rpb25hcnksYT10LmZvcm1hdCxvPWkmJk9iamVjdC5rZXlzKGkpLmxlbmd0aCxzPWEmJk9iamVjdC5rZXlzKGEpLmxlbmd0aCxsPXIubG9jYWxlUmVnaXN0cnksYz1sW2VdO2lmKGN8fChsW2VdPWM9e30pLG4hPT1lKXt2YXIgdT1sW25dO3V8fChsW25dPXU9e30pLG8mJnUuZGljdGlvbmFyeT09PWMuZGljdGlvbmFyeSYmKHUuZGljdGlvbmFyeT1pKSxzJiZ1LmZvcm1hdD09PWMuZm9ybWF0JiYodS5mb3JtYXQ9YSl9byYmKGMuZGljdGlvbmFyeT1pKSxzJiYoYy5mb3JtYXQ9YSl9ZnVuY3Rpb24gdih0KXtpZih0LmxheW91dEF0dHJpYnV0ZXMpe3ZhciBlPXQubGF5b3V0QXR0cmlidXRlcy5fYXJyYXlBdHRyUmVnZXhwcztpZihlKWZvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKWEoci5sYXlvdXRBcnJheVJlZ2V4ZXMsZVtuXSl9fWZ1bmN0aW9uIHkodCxlKXt2YXIgbj1yLmNvbXBvbmVudHNSZWdpc3RyeVt0XS5zY2hlbWE7aWYobiYmbi50cmFjZXMpe3ZhciBpPW4udHJhY2VzW2VdO2kmJmgoci5tb2R1bGVzW2VdLl9tb2R1bGUuYXR0cmlidXRlcyxpKX19ZnVuY3Rpb24geCh0LGUpe3ZhciBuPXIuY29tcG9uZW50c1JlZ2lzdHJ5W3RdLnNjaGVtYTtpZihuJiZuLnRyYW5zZm9ybXMpe3ZhciBpPW4udHJhbnNmb3Jtc1tlXTtpJiZoKHIudHJhbnNmb3Jtc1JlZ2lzdHJ5W2VdLmF0dHJpYnV0ZXMsaSl9fWZ1bmN0aW9uIGIodCxlKXt2YXIgbj1yLmNvbXBvbmVudHNSZWdpc3RyeVt0XS5zY2hlbWE7aWYobiYmbi5zdWJwbG90cyl7dmFyIGk9ci5zdWJwbG90c1JlZ2lzdHJ5W2VdLGE9aS5sYXlvdXRBdHRyaWJ1dGVzLG89InN1YnBsb3QiPT09aS5hdHRyP2kubmFtZTppLmF0dHI7QXJyYXkuaXNBcnJheShvKSYmKG89b1swXSk7dmFyIHM9bi5zdWJwbG90c1tvXTthJiZzJiZoKGEscyl9fWZ1bmN0aW9uIF8odCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0JiYodD10LnR5cGUpLHR9ci5tb2R1bGVzPXt9LHIuYWxsQ2F0ZWdvcmllcz17fSxyLmFsbFR5cGVzPVtdLHIuc3VicGxvdHNSZWdpc3RyeT17fSxyLnRyYW5zZm9ybXNSZWdpc3RyeT17fSxyLmNvbXBvbmVudHNSZWdpc3RyeT17fSxyLmxheW91dEFycmF5Q29udGFpbmVycz1bXSxyLmxheW91dEFycmF5UmVnZXhlcz1bXSxyLnRyYWNlTGF5b3V0QXR0cmlidXRlcz17fSxyLmxvY2FsZVJlZ2lzdHJ5PXt9LHIuYXBpTWV0aG9kUmVnaXN0cnk9e30sci5jb2xsZWN0YWJsZVN1YnBsb3RUeXBlcz1udWxsLHIucmVnaXN0ZXI9ZnVuY3Rpb24odCl7aWYoci5jb2xsZWN0YWJsZVN1YnBsb3RUeXBlcz1udWxsLCF0KXRocm93IG5ldyBFcnJvcigiTm8gYXJndW1lbnQgcGFzc2VkIHRvIFBsb3RseS5yZWdpc3Rlci4iKTt0JiYhQXJyYXkuaXNBcnJheSh0KSYmKHQ9W3RdKTtmb3IodmFyIGU9MDtlPHQubGVuZ3RoO2UrKyl7dmFyIG49dFtlXTtpZighbil0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgbW9kdWxlIHdhcyBhdHRlbXB0ZWQgdG8gYmUgcmVnaXN0ZXJlZCEiKTtzd2l0Y2gobi5tb2R1bGVUeXBlKXtjYXNlInRyYWNlIjpwKG4pO2JyZWFrO2Nhc2UidHJhbnNmb3JtIjptKG4pO2JyZWFrO2Nhc2UiY29tcG9uZW50IjpkKG4pO2JyZWFrO2Nhc2UibG9jYWxlIjpnKG4pO2JyZWFrO2Nhc2UiYXBpTWV0aG9kIjp2YXIgaT1uLm5hbWU7ci5hcGlNZXRob2RSZWdpc3RyeVtpXT1uLmZuO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIG1vZHVsZSB3YXMgYXR0ZW1wdGVkIHRvIGJlIHJlZ2lzdGVyZWQhIil9fX0sci5nZXRNb2R1bGU9ZnVuY3Rpb24odCl7dmFyIGU9ci5tb2R1bGVzW18odCldO3JldHVybiEhZSYmZS5fbW9kdWxlfSxyLnRyYWNlSXM9ZnVuY3Rpb24odCxlKXtpZigidmFyaW91cyI9PT0odD1fKHQpKSlyZXR1cm4hMTt2YXIgaT1yLm1vZHVsZXNbdF07cmV0dXJuIGl8fCh0JiZuLmxvZygiVW5yZWNvZ25pemVkIHRyYWNlIHR5cGUgIit0KyIuIiksaT1yLm1vZHVsZXNbYy50eXBlLmRmbHRdKSwhIWkuY2F0ZWdvcmllc1tlXX0sci5nZXRUcmFuc2Zvcm1JbmRpY2VzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPVtdLG49dC50cmFuc2Zvcm1zfHxbXSxpPTA7aTxuLmxlbmd0aDtpKyspbltpXS50eXBlPT09ZSYmci5wdXNoKGkpO3JldHVybiByfSxyLmhhc1RyYW5zZm9ybT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10LnRyYW5zZm9ybXN8fFtdLG49MDtuPHIubGVuZ3RoO24rKylpZihyW25dLnR5cGU9PT1lKXJldHVybiEwO3JldHVybiExfSxyLmdldENvbXBvbmVudE1ldGhvZD1mdW5jdGlvbih0LGUpe3ZhciBuPXIuY29tcG9uZW50c1JlZ2lzdHJ5W3RdO3JldHVybiBuJiZuW2VdfHxpfSxyLmNhbGw9ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHNbMF0sZT1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtyZXR1cm4gci5hcGlNZXRob2RSZWdpc3RyeVt0XS5hcHBseShudWxsLGUpfX0seyIuL2xpYi9kb20iOjUwMywiLi9saWIvZXh0ZW5kIjo1MDUsIi4vbGliL2lzX3BsYWluX29iamVjdCI6NTE2LCIuL2xpYi9sb2dnZXJzIjo1MTksIi4vbGliL25vb3AiOjUyNCwiLi9saWIvcHVzaF91bmlxdWUiOjUzMCwiLi9wbG90cy9hdHRyaWJ1dGVzIjo1NjIsIi4vcGxvdHMvbGF5b3V0X2F0dHJpYnV0ZXMiOjYxOX1dLDY0ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9yZWdpc3RyeSIpLGk9dCgiLi4vbGliIiksYT1pLmV4dGVuZEZsYXQsbz1pLmV4dGVuZERlZXA7ZnVuY3Rpb24gcyh0KXt2YXIgZTtzd2l0Y2godCl7Y2FzZSJ0aGVtZXNfX3RodW1iIjplPXthdXRvc2l6ZTohMCx3aWR0aDoxNTAsaGVpZ2h0OjE1MCx0aXRsZTp7dGV4dDoiIn0sc2hvd2xlZ2VuZDohMSxtYXJnaW46e2w6NSxyOjUsdDo1LGI6NSxwYWQ6MH0sYW5ub3RhdGlvbnM6W119O2JyZWFrO2Nhc2UidGh1bWJuYWlsIjplPXt0aXRsZTp7dGV4dDoiIn0saGlkZXNvdXJjZXM6ITAsc2hvd2xlZ2VuZDohMSxib3JkZXJ3aWR0aDowLGJvcmRlcmNvbG9yOiIiLG1hcmdpbjp7bDoxLHI6MSx0OjEsYjoxLHBhZDowfSxhbm5vdGF0aW9uczpbXX07YnJlYWs7ZGVmYXVsdDplPXt9fXJldHVybiBlfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLGksbD10LmRhdGEsYz10LmxheW91dCx1PW8oW10sbCksZj1vKHt9LGMscyhlLnRpbGVDbGFzcykpLGg9dC5fY29udGV4dHx8e307aWYoZS53aWR0aCYmKGYud2lkdGg9ZS53aWR0aCksZS5oZWlnaHQmJihmLmhlaWdodD1lLmhlaWdodCksInRodW1ibmFpbCI9PT1lLnRpbGVDbGFzc3x8InRoZW1lc19fdGh1bWIiPT09ZS50aWxlQ2xhc3Mpe2YuYW5ub3RhdGlvbnM9W107dmFyIHA9T2JqZWN0LmtleXMoZik7Zm9yKHI9MDtyPHAubGVuZ3RoO3IrKylpPXBbcl0sWyJ4YXhpcyIsInlheGlzIiwiemF4aXMiXS5pbmRleE9mKGkuc2xpY2UoMCw1KSk+LTEmJihmW3Bbcl1dLnRpdGxlPXt0ZXh0OiIifSk7Zm9yKHI9MDtyPHUubGVuZ3RoO3IrKyl7dmFyIGQ9dVtyXTtkLnNob3dzY2FsZT0hMSxkLm1hcmtlciYmKGQubWFya2VyLnNob3dzY2FsZT0hMSksbi50cmFjZUlzKGQsInBpZS1saWtlIikmJihkLnRleHRwb3NpdGlvbj0ibm9uZSIpfX1pZihBcnJheS5pc0FycmF5KGUuYW5ub3RhdGlvbnMpKWZvcihyPTA7cjxlLmFubm90YXRpb25zLmxlbmd0aDtyKyspZi5hbm5vdGF0aW9ucy5wdXNoKGUuYW5ub3RhdGlvbnNbcl0pO3ZhciBtPU9iamVjdC5rZXlzKGYpLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQubWF0Y2goL15zY2VuZVxkKiQvKX0pKTtpZihtLmxlbmd0aCl7dmFyIGc9e307Zm9yKCJ0aHVtYm5haWwiPT09ZS50aWxlQ2xhc3MmJihnPXt0aXRsZTp7dGV4dDoiIn0sc2hvd2F4ZXNsYWJlbHM6ITEsc2hvd3RpY2tsYWJlbHM6ITEsbGluZXRpY2tlbmFibGU6ITF9KSxyPTA7cjxtLmxlbmd0aDtyKyspe3ZhciB2PWZbbVtyXV07di54YXhpc3x8KHYueGF4aXM9e30pLHYueWF4aXN8fCh2LnlheGlzPXt9KSx2LnpheGlzfHwodi56YXhpcz17fSksYSh2LnhheGlzLGcpLGEodi55YXhpcyxnKSxhKHYuemF4aXMsZyksdi5fc2NlbmU9bnVsbH19dmFyIHk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZS50aWxlQ2xhc3MmJih5LmNsYXNzTmFtZT1lLnRpbGVDbGFzcyk7dmFyIHg9e2dkOnksdGQ6eSxsYXlvdXQ6ZixkYXRhOnUsY29uZmlnOntzdGF0aWNQbG90OnZvaWQgMD09PWUuc3RhdGljUGxvdHx8ZS5zdGF0aWNQbG90LHBsb3RHbFBpeGVsUmF0aW86dm9pZCAwPT09ZS5wbG90R2xQaXhlbFJhdGlvPzI6ZS5wbG90R2xQaXhlbFJhdGlvLGRpc3BsYXlsb2dvOmUuZGlzcGxheWxvZ298fCExLHNob3dMaW5rOmUuc2hvd0xpbmt8fCExLHNob3dUaXBzOmUuc2hvd1RpcHN8fCExLG1hcGJveEFjY2Vzc1Rva2VuOmgubWFwYm94QWNjZXNzVG9rZW59fTtyZXR1cm4idHJhbnNwYXJlbnQiIT09ZS5zZXRCYWNrZ3JvdW5kJiYoeC5jb25maWcuc2V0QmFja2dyb3VuZD1lLnNldEJhY2tncm91bmR8fCJvcGFxdWUiKSx4LmdkLmRlZmF1bHRMYXlvdXQ9cyhlLnRpbGVDbGFzcykseH19LHsiLi4vbGliIjo1MTUsIi4uL3JlZ2lzdHJ5Ijo2NDd9XSw2NDk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vbGliIiksaT10KCIuLi9wbG90X2FwaS90b19pbWFnZSIpLGE9dCgiLi9maWxlc2F2ZXIiKSxvPXQoIi4vaGVscGVycyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByO3JldHVybiBuLmlzUGxhaW5PYmplY3QodCl8fChyPW4uZ2V0R3JhcGhEaXYodCkpLChlPWV8fHt9KS5mb3JtYXQ9ZS5mb3JtYXR8fCJwbmciLGUud2lkdGg9ZS53aWR0aHx8bnVsbCxlLmhlaWdodD1lLmhlaWdodHx8bnVsbCxlLmltYWdlRGF0YU9ubHk9ITAsbmV3IFByb21pc2UoKGZ1bmN0aW9uKHMsbCl7ciYmci5fc25hcHNob3RJblByb2dyZXNzJiZsKG5ldyBFcnJvcigiU25hcHNob3R0aW5nIGFscmVhZHkgaW4gcHJvZ3Jlc3MuIikpLG4uaXNJRSgpJiYic3ZnIiE9PWUuZm9ybWF0JiZsKG5ldyBFcnJvcihvLk1TR19JRV9CQURfRk9STUFUKSksciYmKHIuX3NuYXBzaG90SW5Qcm9ncmVzcz0hMCk7dmFyIGM9aSh0LGUpLHU9ZS5maWxlbmFtZXx8dC5mbnx8Im5ld3Bsb3QiO3UrPSIuIitlLmZvcm1hdC5yZXBsYWNlKCItIiwiLiIpLGMudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIHImJihyLl9zbmFwc2hvdEluUHJvZ3Jlc3M9ITEpLGEodCx1LGUuZm9ybWF0KX0pKS50aGVuKChmdW5jdGlvbih0KXtzKHQpfSkpLmNhdGNoKChmdW5jdGlvbih0KXtyJiYoci5fc25hcHNob3RJblByb2dyZXNzPSExKSxsKHQpfSkpfSkpfX0seyIuLi9saWIiOjUxNSwiLi4vcGxvdF9hcGkvdG9faW1hZ2UiOjU1OCwiLi9maWxlc2F2ZXIiOjY1MCwiLi9oZWxwZXJzIjo2NTF9XSw2NTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vbGliIiksaT10KCIuL2hlbHBlcnMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSxvPSJkb3dubG9hZCJpbiBhO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24ocyxsKXt2YXIgYyx1O2lmKG4uaXNJRSgpKXJldHVybiBjPWkuY3JlYXRlQmxvYih0LCJzdmciKSx3aW5kb3cubmF2aWdhdG9yLm1zU2F2ZUJsb2IoYyxlKSxjPW51bGwscyhlKTtpZihvKXJldHVybiBjPWkuY3JlYXRlQmxvYih0LHIpLHU9aS5jcmVhdGVPYmplY3RVUkwoYyksYS5ocmVmPXUsYS5kb3dubG9hZD1lLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSksYS5jbGljaygpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYSksaS5yZXZva2VPYmplY3RVUkwodSksYz1udWxsLHMoZSk7aWYobi5pc1NhZmFyaSgpKXt2YXIgZj0ic3ZnIj09PXI/IiwiOiI7YmFzZTY0LCI7cmV0dXJuIGkub2N0ZXRTdHJlYW0oZitlbmNvZGVVUklDb21wb25lbnQodCkpLHMoZSl9bChuZXcgRXJyb3IoImRvd25sb2FkIGVycm9yIikpfSkpfX0seyIuLi9saWIiOjUxNSwiLi9oZWxwZXJzIjo2NTF9XSw2NTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vcmVnaXN0cnkiKTtyLmdldERlbGF5PWZ1bmN0aW9uKHQpe3JldHVybiB0Ll9oYXMmJih0Ll9oYXMoImdsM2QiKXx8dC5faGFzKCJnbDJkIil8fHQuX2hhcygibWFwYm94IikpPzUwMDowfSxyLmdldFJlZHJhd0Z1bmM9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7bi5nZXRDb21wb25lbnRNZXRob2QoImNvbG9yYmFyIiwiZHJhdyIpKHQpfX0sci5lbmNvZGVTVkc9ZnVuY3Rpb24odCl7cmV0dXJuImRhdGE6aW1hZ2Uvc3ZnK3htbCwiK2VuY29kZVVSSUNvbXBvbmVudCh0KX0sci5lbmNvZGVKU09OPWZ1bmN0aW9uKHQpe3JldHVybiJkYXRhOmFwcGxpY2F0aW9uL2pzb24sIitlbmNvZGVVUklDb21wb25lbnQodCl9O3ZhciBpPXdpbmRvdy5VUkx8fHdpbmRvdy53ZWJraXRVUkw7ci5jcmVhdGVPYmplY3RVUkw9ZnVuY3Rpb24odCl7cmV0dXJuIGkuY3JlYXRlT2JqZWN0VVJMKHQpfSxyLnJldm9rZU9iamVjdFVSTD1mdW5jdGlvbih0KXtyZXR1cm4gaS5yZXZva2VPYmplY3RVUkwodCl9LHIuY3JlYXRlQmxvYj1mdW5jdGlvbih0LGUpe2lmKCJzdmciPT09ZSlyZXR1cm4gbmV3IHdpbmRvdy5CbG9iKFt0XSx7dHlwZToiaW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04In0pO2lmKCJmdWxsLWpzb24iPT09ZSlyZXR1cm4gbmV3IHdpbmRvdy5CbG9iKFt0XSx7dHlwZToiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04In0pO3ZhciByPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Lmxlbmd0aCxyPW5ldyBBcnJheUJ1ZmZlcihlKSxuPW5ldyBVaW50OEFycmF5KHIpLGk9MDtpPGU7aSsrKW5baV09dC5jaGFyQ29kZUF0KGkpO3JldHVybiByfSh3aW5kb3cuYXRvYih0KSk7cmV0dXJuIG5ldyB3aW5kb3cuQmxvYihbcl0se3R5cGU6ImltYWdlLyIrZX0pfSxyLm9jdGV0U3RyZWFtPWZ1bmN0aW9uKHQpe2RvY3VtZW50LmxvY2F0aW9uLmhyZWY9ImRhdGE6YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIit0fSxyLklNQUdFX1VSTF9QUkVGSVg9L15kYXRhOmltYWdlXC9cdys7YmFzZTY0LC8sci5NU0dfSUVfQkFEX0ZPUk1BVD0iU29ycnkgSUUgZG9lcyBub3Qgc3VwcG9ydCBkb3dubG9hZGluZyBmcm9tIGNhbnZhcy4gVHJ5IHtmb3JtYXQ6J3N2Zyd9IGluc3RlYWQuIn0seyIuLi9yZWdpc3RyeSI6NjQ3fV0sNjUyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vaGVscGVycyIpLGk9e2dldERlbGF5Om4uZ2V0RGVsYXksZ2V0UmVkcmF3RnVuYzpuLmdldFJlZHJhd0Z1bmMsY2xvbmU6dCgiLi9jbG9uZXBsb3QiKSx0b1NWRzp0KCIuL3Rvc3ZnIiksc3ZnVG9JbWc6dCgiLi9zdmd0b2ltZyIpLHRvSW1hZ2U6dCgiLi90b2ltYWdlIiksZG93bmxvYWRJbWFnZTp0KCIuL2Rvd25sb2FkIil9O2UuZXhwb3J0cz1pfSx7Ii4vY2xvbmVwbG90Ijo2NDgsIi4vZG93bmxvYWQiOjY0OSwiLi9oZWxwZXJzIjo2NTEsIi4vc3ZndG9pbWciOjY1MywiLi90b2ltYWdlIjo2NTQsIi4vdG9zdmciOjY1NX1dLDY1MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9saWIiKSxpPXQoImV2ZW50cyIpLkV2ZW50RW1pdHRlcixhPXQoIi4vaGVscGVycyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10LmVtaXR0ZXJ8fG5ldyBpLHI9bmV3IFByb21pc2UoKGZ1bmN0aW9uKGksbyl7dmFyIHM9d2luZG93LkltYWdlLGw9dC5zdmcsYz10LmZvcm1hdHx8InBuZyI7aWYobi5pc0lFKCkmJiJzdmciIT09Yyl7dmFyIHU9bmV3IEVycm9yKGEuTVNHX0lFX0JBRF9GT1JNQVQpO3JldHVybiBvKHUpLHQucHJvbWlzZT9yOmUuZW1pdCgiZXJyb3IiLHUpfXZhciBmLGgscD10LmNhbnZhcyxkPXQuc2NhbGV8fDEsbT10LndpZHRofHwzMDAsZz10LmhlaWdodHx8MTUwLHY9ZCptLHk9ZCpnLHg9cC5nZXRDb250ZXh0KCIyZCIse3dpbGxSZWFkRnJlcXVlbnRseTohMH0pLGI9bmV3IHM7InN2ZyI9PT1jfHxuLmlzU2FmYXJpKCk/aD1hLmVuY29kZVNWRyhsKTooZj1hLmNyZWF0ZUJsb2IobCwic3ZnIiksaD1hLmNyZWF0ZU9iamVjdFVSTChmKSkscC53aWR0aD12LHAuaGVpZ2h0PXksYi5vbmxvYWQ9ZnVuY3Rpb24oKXt2YXIgcjtzd2l0Y2goZj1udWxsLGEucmV2b2tlT2JqZWN0VVJMKGgpLCJzdmciIT09YyYmeC5kcmF3SW1hZ2UoYiwwLDAsdix5KSxjKXtjYXNlImpwZWciOnI9cC50b0RhdGFVUkwoImltYWdlL2pwZWciKTticmVhaztjYXNlInBuZyI6cj1wLnRvRGF0YVVSTCgiaW1hZ2UvcG5nIik7YnJlYWs7Y2FzZSJ3ZWJwIjpyPXAudG9EYXRhVVJMKCJpbWFnZS93ZWJwIik7YnJlYWs7Y2FzZSJzdmciOnI9aDticmVhaztkZWZhdWx0OnZhciBuPSJJbWFnZSBmb3JtYXQgaXMgbm90IGpwZWcsIHBuZywgc3ZnIG9yIHdlYnAuIjtpZihvKG5ldyBFcnJvcihuKSksIXQucHJvbWlzZSlyZXR1cm4gZS5lbWl0KCJlcnJvciIsbil9aShyKSx0LnByb21pc2V8fGUuZW1pdCgic3VjY2VzcyIscil9LGIub25lcnJvcj1mdW5jdGlvbihyKXtpZihmPW51bGwsYS5yZXZva2VPYmplY3RVUkwoaCksbyhyKSwhdC5wcm9taXNlKXJldHVybiBlLmVtaXQoImVycm9yIixyKX0sYi5zcmM9aH0pKTtyZXR1cm4gdC5wcm9taXNlP3I6ZX19LHsiLi4vbGliIjo1MTUsIi4vaGVscGVycyI6NjUxLGV2ZW50czo4NH1dLDY1NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJldmVudHMiKS5FdmVudEVtaXR0ZXIsaT10KCIuLi9yZWdpc3RyeSIpLGE9dCgiLi4vbGliIiksbz10KCIuL2hlbHBlcnMiKSxzPXQoIi4vY2xvbmVwbG90IiksbD10KCIuL3Rvc3ZnIiksYz10KCIuL3N2Z3RvaW1nIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9bmV3IG4sdT1zKHQse2Zvcm1hdDoicG5nIn0pLGY9dS5nZDtmLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsZi5zdHlsZS5sZWZ0PSItNTAwMHB4Iixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGYpO3ZhciBoPW8uZ2V0UmVkcmF3RnVuYyhmKTtyZXR1cm4gaS5jYWxsKCJfZG9QbG90IixmLHUuZGF0YSx1LmxheW91dCx1LmNvbmZpZykudGhlbihoKS50aGVuKChmdW5jdGlvbigpe3ZhciB0PW8uZ2V0RGVsYXkoZi5fZnVsbExheW91dCk7c2V0VGltZW91dCgoZnVuY3Rpb24oKXt2YXIgdD1sKGYpLG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7bi5pZD1hLnJhbmRzdHIoKSwocj1jKHtmb3JtYXQ6ZS5mb3JtYXQsd2lkdGg6Zi5fZnVsbExheW91dC53aWR0aCxoZWlnaHQ6Zi5fZnVsbExheW91dC5oZWlnaHQsY2FudmFzOm4sZW1pdHRlcjpyLHN2Zzp0fSkpLmNsZWFuPWZ1bmN0aW9uKCl7ZiYmZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChmKX19KSx0KX0pKS5jYXRjaCgoZnVuY3Rpb24odCl7ci5lbWl0KCJlcnJvciIsdCl9KSkscn19LHsiLi4vbGliIjo1MTUsIi4uL3JlZ2lzdHJ5Ijo2NDcsIi4vY2xvbmVwbG90Ijo2NDgsIi4vaGVscGVycyI6NjUxLCIuL3N2Z3RvaW1nIjo2NTMsIi4vdG9zdmciOjY1NSxldmVudHM6ODR9XSw2NTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vbGliIiksYT10KCIuLi9jb21wb25lbnRzL2RyYXdpbmciKSxvPXQoIi4uL2NvbXBvbmVudHMvY29sb3IiKSxzPXQoIi4uL2NvbnN0YW50cy94bWxuc19uYW1lc3BhY2VzIiksbD0vIi9nLGM9bmV3IFJlZ0V4cCgnKCJUT0JFU1RSSVBQRUQpfChUT0JFU1RSSVBQRUQiKScsImciKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciB1LGY9dC5fZnVsbExheW91dCxoPWYuX3BhcGVyLHA9Zi5fdG9wcGFwZXIsZD1mLndpZHRoLG09Zi5oZWlnaHQ7aC5pbnNlcnQoInJlY3QiLCI6Zmlyc3QtY2hpbGQiKS5jYWxsKGEuc2V0UmVjdCwwLDAsZCxtKS5jYWxsKG8uZmlsbCxmLnBhcGVyX2JnY29sb3IpO3ZhciBnPWYuX2Jhc2VQbG90TW9kdWxlc3x8W107Zm9yKHU9MDt1PGcubGVuZ3RoO3UrKyl7dmFyIHY9Z1t1XTt2LnRvU1ZHJiZ2LnRvU1ZHKHQpfWlmKHApe3ZhciB5PXAubm9kZSgpLmNoaWxkTm9kZXMseD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh5KTtmb3IodT0wO3U8eC5sZW5ndGg7dSsrKXt2YXIgYj14W3VdO2IuY2hpbGROb2Rlcy5sZW5ndGgmJmgubm9kZSgpLmFwcGVuZENoaWxkKGIpfX1mLl9kcmFnZ2VycyYmZi5fZHJhZ2dlcnMucmVtb3ZlKCksaC5ub2RlKCkuc3R5bGUuYmFja2dyb3VuZD0iIixoLnNlbGVjdEFsbCgidGV4dCIpLmF0dHIoeyJkYXRhLXVuZm9ybWF0dGVkIjpudWxsLCJkYXRhLW1hdGgiOm51bGx9KS5lYWNoKChmdW5jdGlvbigpe3ZhciB0PW4uc2VsZWN0KHRoaXMpO2lmKCJoaWRkZW4iIT09dGhpcy5zdHlsZS52aXNpYmlsaXR5JiYibm9uZSIhPT10aGlzLnN0eWxlLmRpc3BsYXkpe3Quc3R5bGUoe3Zpc2liaWxpdHk6bnVsbCxkaXNwbGF5Om51bGx9KTt2YXIgZT10aGlzLnN0eWxlLmZvbnRGYW1pbHk7ZSYmLTEhPT1lLmluZGV4T2YoJyInKSYmdC5zdHlsZSgiZm9udC1mYW1pbHkiLGUucmVwbGFjZShsLCJUT0JFU1RSSVBQRUQiKSl9ZWxzZSB0LnJlbW92ZSgpfSkpLGguc2VsZWN0QWxsKCIuZ3JhZGllbnRfZmlsbGVkLC5wYXR0ZXJuX2ZpbGxlZCIpLmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQ9bi5zZWxlY3QodGhpcyksZT10aGlzLnN0eWxlLmZpbGw7ZSYmLTEhPT1lLmluZGV4T2YoInVybCgiKSYmdC5zdHlsZSgiZmlsbCIsZS5yZXBsYWNlKGwsIlRPQkVTVFJJUFBFRCIpKTt2YXIgcj10aGlzLnN0eWxlLnN0cm9rZTtyJiYtMSE9PXIuaW5kZXhPZigidXJsKCIpJiZ0LnN0eWxlKCJzdHJva2UiLHIucmVwbGFjZShsLCJUT0JFU1RSSVBQRUQiKSl9KSksInBkZiIhPT1lJiYiZXBzIiE9PWV8fGguc2VsZWN0QWxsKCIjTWF0aEpheF9TVkdfZ2x5cGhzIHBhdGgiKS5hdHRyKCJzdHJva2Utd2lkdGgiLDApLGgubm9kZSgpLnNldEF0dHJpYnV0ZU5TKHMueG1sbnMsInhtbG5zIixzLnN2ZyksaC5ub2RlKCkuc2V0QXR0cmlidXRlTlMocy54bWxucywieG1sbnM6eGxpbmsiLHMueGxpbmspLCJzdmciPT09ZSYmciYmKGguYXR0cigid2lkdGgiLHIqZCksaC5hdHRyKCJoZWlnaHQiLHIqbSksaC5hdHRyKCJ2aWV3Qm94IiwiMCAwICIrZCsiICIrbSkpO3ZhciBfPShuZXcgd2luZG93LlhNTFNlcmlhbGl6ZXIpLnNlcmlhbGl6ZVRvU3RyaW5nKGgubm9kZSgpKTtyZXR1cm4gXz1mdW5jdGlvbih0KXt2YXIgZT1uLnNlbGVjdCgiYm9keSIpLmFwcGVuZCgiZGl2Iikuc3R5bGUoe2Rpc3BsYXk6Im5vbmUifSkuaHRtbCgiIikscj10LnJlcGxhY2UoLygmW147XSo7KS9naSwoZnVuY3Rpb24odCl7cmV0dXJuIiZsdDsiPT09dD8iJiM2MDsiOiImcnQ7Ij09PXQ/IiYjNjI7IjotMSE9PXQuaW5kZXhPZigiPCIpfHwtMSE9PXQuaW5kZXhPZigiPiIpPyIiOmUuaHRtbCh0KS50ZXh0KCl9KSk7cmV0dXJuIGUucmVtb3ZlKCkscn0oXyksXz0oXz1fLnJlcGxhY2UoLyYoPyFcdys7fFwjWzAtOV0rO3wgXCN4WzAtOUEtRl0rOykvZywiJmFtcDsiKSkucmVwbGFjZShjLCInIiksaS5pc0lFKCkmJihfPShfPShfPV8ucmVwbGFjZSgvIi9naSwiJyIpKS5yZXBsYWNlKC8oXCgnIykoW14nXSopKCdcKSkvZ2ksJygiIyQyIiknKSkucmVwbGFjZSgvKFxcJykvZ2ksJyInKSksX319LHsiLi4vY29tcG9uZW50cy9jb2xvciI6MzY3LCIuLi9jb21wb25lbnRzL2RyYXdpbmciOjM4OSwiLi4vY29uc3RhbnRzL3htbG5zX25hbWVzcGFjZXMiOjQ5MiwiLi4vbGliIjo1MTUsIkBwbG90bHkvZDMiOjU4fV0sNjU2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXRbcl0uaT1yO24ubWVyZ2VBcnJheShlLnRleHQsdCwidHgiKSxuLm1lcmdlQXJyYXkoZS5ob3ZlcnRleHQsdCwiaHR4Iik7dmFyIGk9ZS5tYXJrZXI7aWYoaSl7bi5tZXJnZUFycmF5KGkub3BhY2l0eSx0LCJtbyIsITApLG4ubWVyZ2VBcnJheShpLmNvbG9yLHQsIm1jIik7dmFyIGE9aS5saW5lO2EmJihuLm1lcmdlQXJyYXkoYS5jb2xvcix0LCJtbGMiKSxuLm1lcmdlQXJyYXlDYXN0UG9zaXRpdmUoYS53aWR0aCx0LCJtbHciKSl9fX0seyIuLi8uLi9saWIiOjUxNX1dLDY1NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9zY2F0dGVyL2F0dHJpYnV0ZXMiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2Zvcm1hdF9hdHRyaWJ1dGVzIikuYXhpc0hvdmVyRm9ybWF0LGE9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxvPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS50ZXh0dGVtcGxhdGVBdHRycyxzPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIiksbD10KCIuLi8uLi9wbG90cy9mb250X2F0dHJpYnV0ZXMiKSxjPXQoIi4vY29uc3RhbnRzIiksdT10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmcvYXR0cmlidXRlcyIpLnBhdHRlcm4sZj10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxoPWwoe2VkaXRUeXBlOiJjYWxjIixhcnJheU9rOiEwLGNvbG9yRWRpdFR5cGU6InN0eWxlIn0pLHA9Zih7fSxuLm1hcmtlci5saW5lLndpZHRoLHtkZmx0OjB9KSxkPWYoe3dpZHRoOnAsZWRpdFR5cGU6ImNhbGMifSxzKCJtYXJrZXIubGluZSIpKSxtPWYoe2xpbmU6ZCxlZGl0VHlwZToiY2FsYyJ9LHMoIm1hcmtlciIpLHtvcGFjaXR5Ont2YWxUeXBlOiJudW1iZXIiLGFycmF5T2s6ITAsZGZsdDoxLG1pbjowLG1heDoxLGVkaXRUeXBlOiJzdHlsZSJ9LHBhdHRlcm46dX0pO2UuZXhwb3J0cz17eDpuLngseDA6bi54MCxkeDpuLmR4LHk6bi55LHkwOm4ueTAsZHk6bi5keSx4cGVyaW9kOm4ueHBlcmlvZCx5cGVyaW9kOm4ueXBlcmlvZCx4cGVyaW9kMDpuLnhwZXJpb2QwLHlwZXJpb2QwOm4ueXBlcmlvZDAseHBlcmlvZGFsaWdubWVudDpuLnhwZXJpb2RhbGlnbm1lbnQseXBlcmlvZGFsaWdubWVudDpuLnlwZXJpb2RhbGlnbm1lbnQseGhvdmVyZm9ybWF0OmkoIngiKSx5aG92ZXJmb3JtYXQ6aSgieSIpLHRleHQ6bi50ZXh0LHRleHR0ZW1wbGF0ZTpvKHtlZGl0VHlwZToicGxvdCJ9LHtrZXlzOmMuZXZlbnREYXRhS2V5c30pLGhvdmVydGV4dDpuLmhvdmVydGV4dCxob3ZlcnRlbXBsYXRlOmEoe30se2tleXM6Yy5ldmVudERhdGFLZXlzfSksdGV4dHBvc2l0aW9uOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJpbnNpZGUiLCJvdXRzaWRlIiwiYXV0byIsIm5vbmUiXSxkZmx0OiJhdXRvIixhcnJheU9rOiEwLGVkaXRUeXBlOiJjYWxjIn0saW5zaWRldGV4dGFuY2hvcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiZW5kIiwibWlkZGxlIiwic3RhcnQiXSxkZmx0OiJlbmQiLGVkaXRUeXBlOiJwbG90In0sdGV4dGFuZ2xlOnt2YWxUeXBlOiJhbmdsZSIsZGZsdDoiYXV0byIsZWRpdFR5cGU6InBsb3QifSx0ZXh0Zm9udDpmKHt9LGgse30pLGluc2lkZXRleHRmb250OmYoe30saCx7fSksb3V0c2lkZXRleHRmb250OmYoe30saCx7fSksY29uc3RyYWludGV4dDp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiaW5zaWRlIiwib3V0c2lkZSIsImJvdGgiLCJub25lIl0sZGZsdDoiYm90aCIsZWRpdFR5cGU6ImNhbGMifSxjbGlwb25heGlzOmYoe30sbi5jbGlwb25heGlzLHt9KSxvcmllbnRhdGlvbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsidiIsImgiXSxlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LGJhc2U6e3ZhbFR5cGU6ImFueSIsZGZsdDpudWxsLGFycmF5T2s6ITAsZWRpdFR5cGU6ImNhbGMifSxvZmZzZXQ6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDpudWxsLGFycmF5T2s6ITAsZWRpdFR5cGU6ImNhbGMifSx3aWR0aDp7dmFsVHlwZToibnVtYmVyIixkZmx0Om51bGwsbWluOjAsYXJyYXlPazohMCxlZGl0VHlwZToiY2FsYyJ9LG1hcmtlcjptLG9mZnNldGdyb3VwOnt2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6ImNhbGMifSxhbGlnbm1lbnRncm91cDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGVkaXRUeXBlOiJjYWxjIn0sc2VsZWN0ZWQ6e21hcmtlcjp7b3BhY2l0eTpuLnNlbGVjdGVkLm1hcmtlci5vcGFjaXR5LGNvbG9yOm4uc2VsZWN0ZWQubWFya2VyLmNvbG9yLGVkaXRUeXBlOiJzdHlsZSJ9LHRleHRmb250Om4uc2VsZWN0ZWQudGV4dGZvbnQsZWRpdFR5cGU6InN0eWxlIn0sdW5zZWxlY3RlZDp7bWFya2VyOntvcGFjaXR5Om4udW5zZWxlY3RlZC5tYXJrZXIub3BhY2l0eSxjb2xvcjpuLnVuc2VsZWN0ZWQubWFya2VyLmNvbG9yLGVkaXRUeXBlOiJzdHlsZSJ9LHRleHRmb250Om4udW5zZWxlY3RlZC50ZXh0Zm9udCxlZGl0VHlwZToic3R5bGUifSxfZGVwcmVjYXRlZDp7YmFyZGlyOnt2YWxUeXBlOiJlbnVtZXJhdGVkIixlZGl0VHlwZToiY2FsYyIsdmFsdWVzOlsidiIsImgiXX19fX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6Mzc0LCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmcvYXR0cmlidXRlcyI6Mzg4LCIuLi8uLi9saWIvZXh0ZW5kIjo1MDUsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2Zvcm1hdF9hdHRyaWJ1dGVzIjo1NjksIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyI6NTk0LCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo2NDIsIi4uL3NjYXR0ZXIvYXR0cmlidXRlcyI6OTM2LCIuL2NvbnN0YW50cyI6NjU5fV0sNjU4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksaT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYWxpZ25fcGVyaW9kIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvaGVscGVycyIpLmhhc0NvbG9yc2NhbGUsbz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvY2FsYyIpLHM9dCgiLi9hcnJheXNfdG9fY2FsY2RhdGEiKSxsPXQoIi4uL3NjYXR0ZXIvY2FsY19zZWxlY3Rpb24iKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixjLHUsZixoLHAsZD1uLmdldEZyb21JZCh0LGUueGF4aXN8fCJ4IiksbT1uLmdldEZyb21JZCh0LGUueWF4aXN8fCJ5IiksZz17bXNVVEM6ISghZS5iYXNlJiYwIT09ZS5iYXNlKX07ImgiPT09ZS5vcmllbnRhdGlvbj8ocj1kLm1ha2VDYWxjZGF0YShlLCJ4IixnKSx1PW0ubWFrZUNhbGNkYXRhKGUsInkiKSxmPWkoZSxtLCJ5Iix1KSxoPSEhZS55cGVyaW9kYWxpZ25tZW50LHA9InkiKToocj1tLm1ha2VDYWxjZGF0YShlLCJ5IixnKSx1PWQubWFrZUNhbGNkYXRhKGUsIngiKSxmPWkoZSxkLCJ4Iix1KSxoPSEhZS54cGVyaW9kYWxpZ25tZW50LHA9IngiKSxjPWYudmFscztmb3IodmFyIHY9TWF0aC5taW4oYy5sZW5ndGgsci5sZW5ndGgpLHk9bmV3IEFycmF5KHYpLHg9MDt4PHY7eCsrKXlbeF09e3A6Y1t4XSxzOnJbeF19LGgmJih5W3hdLm9yaWdfcD11W3hdLHlbeF1bcCsiRW5kIl09Zi5lbmRzW3hdLHlbeF1bcCsiU3RhcnQiXT1mLnN0YXJ0c1t4XSksZS5pZHMmJih5W3hdLmlkPVN0cmluZyhlLmlkc1t4XSkpO3JldHVybiBhKGUsIm1hcmtlciIpJiZvKHQsZSx7dmFsczplLm1hcmtlci5jb2xvcixjb250YWluZXJTdHI6Im1hcmtlciIsY0xldHRlcjoiYyJ9KSxhKGUsIm1hcmtlci5saW5lIikmJm8odCxlLHt2YWxzOmUubWFya2VyLmxpbmUuY29sb3IsY29udGFpbmVyU3RyOiJtYXJrZXIubGluZSIsY0xldHRlcjoiYyJ9KSxzKHksZSksbCh5LGUpLHl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jYWxjIjozNzUsIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9oZWxwZXJzIjozNzgsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9hbGlnbl9wZXJpb2QiOjU2MywiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjU2NiwiLi4vc2NhdHRlci9jYWxjX3NlbGVjdGlvbiI6OTM4LCIuL2FycmF5c190b19jYWxjZGF0YSI6NjU2fV0sNjU5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17VEVYVFBBRDozLGV2ZW50RGF0YUtleXM6WyJ2YWx1ZSIsImxhYmVsIl19fSx7fV0sNjYwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksaT10KCIuLi8uLi9saWIiKS5pc0FycmF5T3JUeXBlZEFycmF5LGE9dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTSxvPXQoIi4uLy4uL3JlZ2lzdHJ5Iikscz10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGw9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2NvbnN0cmFpbnRzIikuZ2V0QXhpc0dyb3VwLGM9dCgiLi9zaWV2ZS5qcyIpO2Z1bmN0aW9uIHUodCxlLHIsbyx1KXtpZihvLmxlbmd0aCl7dmFyIGIsXyx3LFQ7c3dpdGNoKGZ1bmN0aW9uKHQsZSl7dmFyIHIsYTtmb3Iocj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbyxzPWVbcl0sbD1zWzBdLnRyYWNlLGM9ImZ1bm5lbCI9PT1sLnR5cGU/bC5fYmFzZTpsLmJhc2UsdT0iaCI9PT1sLm9yaWVudGF0aW9uP2wueGNhbGVuZGFyOmwueWNhbGVuZGFyLGY9ImNhdGVnb3J5Ij09PXQudHlwZXx8Im11bHRpY2F0ZWdvcnkiPT09dC50eXBlP2Z1bmN0aW9uKCl7cmV0dXJuIG51bGx9OnQuZDJjO2lmKGkoYykpe2ZvcihhPTA7YTxNYXRoLm1pbihjLmxlbmd0aCxzLmxlbmd0aCk7YSsrKW89ZihjW2FdLDAsdSksbihvKT8oc1thXS5iPStvLHNbYV0uaGFzQj0xKTpzW2FdLmI9MDtmb3IoO2E8cy5sZW5ndGg7YSsrKXNbYV0uYj0wfWVsc2V7bz1mKGMsMCx1KTt2YXIgaD1uKG8pO2ZvcihvPWg/bzowLGE9MDthPHMubGVuZ3RoO2ErKylzW2FdLmI9byxoJiYoc1thXS5oYXNCPTEpfX19KHIsbyksdS5tb2RlKXtjYXNlIm92ZXJsYXkiOmYoZSxyLG8sdSk7YnJlYWs7Y2FzZSJncm91cCI6Zm9yKGI9W10sXz1bXSx3PTA7dzxvLmxlbmd0aDt3Kyspdm9pZCAwPT09KFQ9b1t3XSlbMF0udHJhY2Uub2Zmc2V0P18ucHVzaChUKTpiLnB1c2goVCk7Xy5sZW5ndGgmJmZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIG89bmV3IGMobix7cG9zQXhpczplLHNlcE5lZ1ZhbDohMSxvdmVybGFwTm9NZXJnZTohaS5ub3JtfSk7KGZ1bmN0aW9uKHQsZSxyLG4pe2Zvcih2YXIgaT10Ll9mdWxsTGF5b3V0LGE9ci5wb3NpdGlvbnMsbz1yLmRpc3RpbmN0UG9zaXRpb25zLHM9ci5taW5EaWZmLGM9ci50cmFjZXMsdT1jLmxlbmd0aCxmPWEubGVuZ3RoIT09by5sZW5ndGgsaD1zKigxLW4uZ2FwKSxnPWwoaSxlLl9pZCkrY1swXVswXS50cmFjZS5vcmllbnRhdGlvbix2PWkuX2FsaWdubWVudE9wdHNbZ118fHt9LHk9MDt5PHU7eSsrKXt2YXIgeCxiLF89Y1t5XSx3PV9bMF0udHJhY2UsVD12W3cuYWxpZ25tZW50Z3JvdXBdfHx7fSxrPU9iamVjdC5rZXlzKFQub2Zmc2V0R3JvdXBzfHx7fSkubGVuZ3RoLEE9KHg9az9oL2s6Zj9oL3U6aCkqKDEtKG4uZ3JvdXBnYXB8fDApKTtiPWs/KCgyKncuX29mZnNldEluZGV4KzEtaykqeC1BKS8yOmY/KCgyKnkrMS11KSp4LUEpLzI6LUEvMjt2YXIgTT1fWzBdLnQ7TS5iYXJ3aWR0aD1BLE0ucG9mZnNldD1iLE0uYmFyZ3JvdXB3aWR0aD1oLE0uYmFyZGVsdGE9c31yLmJpbldpZHRoPWNbMF1bMF0udC5iYXJ3aWR0aC8xMDAscChyKSxkKGUsciksbShlLHIsZil9KSh0LGUsbyxpKSxmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10LnRyYWNlcyxuPTA7bjxyLmxlbmd0aDtuKyspe3ZhciBpPXJbbl07aWYodm9pZCAwPT09aVswXS50cmFjZS5iYXNlKWZvcih2YXIgbz1uZXcgYyhbaV0se3Bvc0F4aXM6ZSxzZXBOZWdWYWw6ITAsb3ZlcmxhcE5vTWVyZ2U6ITB9KSxzPTA7czxpLmxlbmd0aDtzKyspe3ZhciBsPWlbc107aWYobC5wIT09YSl7dmFyIHU9by5wdXQobC5wLGwuYitsLnMpO3UmJihsLmI9dSl9fX19KG8sZSksaS5ub3JtPyh2KG8pLHkocixvLGkpKTpnKHIsbyl9KHQsZSxyLF8sdSksYi5sZW5ndGgmJmYoZSxyLGIsdSk7YnJlYWs7Y2FzZSJzdGFjayI6Y2FzZSJyZWxhdGl2ZSI6Zm9yKGI9W10sXz1bXSx3PTA7dzxvLmxlbmd0aDt3Kyspdm9pZCAwPT09KFQ9b1t3XSlbMF0udHJhY2UuYmFzZT9fLnB1c2goVCk6Yi5wdXNoKFQpO18ubGVuZ3RoJiZmdW5jdGlvbih0LGUscixuLGkpe3ZhciBvPW5ldyBjKG4se3Bvc0F4aXM6ZSxzZXBOZWdWYWw6InJlbGF0aXZlIj09PWkubW9kZSxvdmVybGFwTm9NZXJnZTohKGkubm9ybXx8InN0YWNrIj09PWkubW9kZXx8InJlbGF0aXZlIj09PWkubW9kZSl9KTtoKGUsbyxpKSxmdW5jdGlvbih0LGUscil7dmFyIG4saSxvLGwsYyx1LGY9eCh0KSxoPWUudHJhY2VzO2ZvcihsPTA7bDxoLmxlbmd0aDtsKyspaWYobj1oW2xdLCJmdW5uZWwiPT09KGk9blswXS50cmFjZSkudHlwZSlmb3IoYz0wO2M8bi5sZW5ndGg7YysrKSh1PW5bY10pLnMhPT1hJiZlLnB1dCh1LnAsLS41KnUucyk7Zm9yKGw9MDtsPGgubGVuZ3RoO2wrKyl7bj1oW2xdLGk9blswXS50cmFjZSxvPSJmdW5uZWwiPT09aS50eXBlO3ZhciBwPVtdO2ZvcihjPTA7YzxuLmxlbmd0aDtjKyspaWYoKHU9bltjXSkucyE9PWEpe3ZhciBkO2Q9bz91LnM6dS5zK3UuYjt2YXIgbT1lLnB1dCh1LnAsZCksZz1tK2Q7dS5iPW0sdVtmXT1nLHIubm9ybXx8KHAucHVzaChnKSx1Lmhhc0ImJnAucHVzaChtKSl9ci5ub3JtfHwoaS5fZXh0cmVtZXNbdC5faWRdPXMuZmluZEV4dHJlbWVzKHQscCx7dG96ZXJvOiEwLHBhZGRlZDohMH0pKX19KHIsbyxpKTtmb3IodmFyIGw9MDtsPG4ubGVuZ3RoO2wrKylmb3IodmFyIHU9bltsXSxmPTA7Zjx1Lmxlbmd0aDtmKyspe3ZhciBwPXVbZl07aWYocC5zIT09YSlwLmIrcC5zPT09by5nZXQocC5wLHAucykmJihwLl9vdXRtb3N0PSEwKX1pLm5vcm0mJnkocixvLGkpfSgwLGUscixfLHUpLGIubGVuZ3RoJiZmKGUscixiLHUpfSFmdW5jdGlvbih0LGUpe3ZhciByLGksYSxvPXgoZSkscz17fSxsPTEvMCxjPS0xLzA7Zm9yKHI9MDtyPHQubGVuZ3RoO3IrKylmb3IoYT10W3JdLGk9MDtpPGEubGVuZ3RoO2krKyl7dmFyIHU9YVtpXS5wO24odSkmJihsPU1hdGgubWluKGwsdSksYz1NYXRoLm1heChjLHUpKX12YXIgZj0xZTQvKGMtbCksaD1zLnJvdW5kPWZ1bmN0aW9uKHQpe3JldHVybiBTdHJpbmcoTWF0aC5yb3VuZChmKih0LWwpKSl9O2ZvcihyPTA7cjx0Lmxlbmd0aDtyKyspeyhhPXRbcl0pWzBdLnQuZXh0ZW50cz1zO3ZhciBwPWFbMF0udC5wb2Zmc2V0LGQ9QXJyYXkuaXNBcnJheShwKTtmb3IoaT0wO2k8YS5sZW5ndGg7aSsrKXt2YXIgbT1hW2ldLGc9bVtvXS1tLncvMjtpZihuKGcpKXt2YXIgdj1tW29dK20udy8yLHk9aChtLnApO3NbeV0/c1t5XT1bTWF0aC5taW4oZyxzW3ldWzBdKSxNYXRoLm1heCh2LHNbeV1bMV0pXTpzW3ldPVtnLHZdfW0ucDA9bS5wKyhkP3BbaV06cCksbS5wMT1tLnAwK20udyxtLnMwPW0uYixtLnMxPW0uczArbS5zfX19KG8sZSl9fWZ1bmN0aW9uIGYodCxlLHIsbil7Zm9yKHZhciBpPTA7aTxyLmxlbmd0aDtpKyspe3ZhciBhPXJbaV0sbz1uZXcgYyhbYV0se3Bvc0F4aXM6dCxzZXBOZWdWYWw6ITEsb3ZlcmxhcE5vTWVyZ2U6IW4ubm9ybX0pO2godCxvLG4pLG4ubm9ybT8odihvKSx5KGUsbyxuKSk6ZyhlLG8pfX1mdW5jdGlvbiBoKHQsZSxyKXtmb3IodmFyIG49ZS5taW5EaWZmLGk9ZS50cmFjZXMsYT1uKigxLXIuZ2FwKSxvPWEqKDEtKHIuZ3JvdXBnYXB8fDApKSxzPS1vLzIsbD0wO2w8aS5sZW5ndGg7bCsrKXt2YXIgYz1pW2xdWzBdLnQ7Yy5iYXJ3aWR0aD1vLGMucG9mZnNldD1zLGMuYmFyZ3JvdXB3aWR0aD1hLGMuYmFyZGVsdGE9bn1lLmJpbldpZHRoPWlbMF1bMF0udC5iYXJ3aWR0aC8xMDAscChlKSxkKHQsZSksbSh0LGUpfWZ1bmN0aW9uIHAodCl7dmFyIGUscixhPXQudHJhY2VzO2ZvcihlPTA7ZTxhLmxlbmd0aDtlKyspe3ZhciBvLHM9YVtlXSxsPXNbMF0sYz1sLnRyYWNlLHU9bC50LGY9Yy5fb2Zmc2V0fHxjLm9mZnNldCxoPXUucG9mZnNldDtpZihpKGYpKXtmb3Iobz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChmLDAscy5sZW5ndGgpLHI9MDtyPG8ubGVuZ3RoO3IrKyluKG9bcl0pfHwob1tyXT1oKTtmb3Iocj1vLmxlbmd0aDtyPHMubGVuZ3RoO3IrKylvLnB1c2goaCk7dS5wb2Zmc2V0PW99ZWxzZSB2b2lkIDAhPT1mJiYodS5wb2Zmc2V0PWYpO3ZhciBwPWMuX3dpZHRofHxjLndpZHRoLGQ9dS5iYXJ3aWR0aDtpZihpKHApKXt2YXIgbT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChwLDAscy5sZW5ndGgpO2ZvcihyPTA7cjxtLmxlbmd0aDtyKyspbihtW3JdKXx8KG1bcl09ZCk7Zm9yKHI9bS5sZW5ndGg7cjxzLmxlbmd0aDtyKyspbS5wdXNoKGQpO2lmKHUuYmFyd2lkdGg9bSx2b2lkIDA9PT1mKXtmb3Iobz1bXSxyPTA7cjxzLmxlbmd0aDtyKyspby5wdXNoKGgrKGQtbVtyXSkvMik7dS5wb2Zmc2V0PW99fWVsc2Ugdm9pZCAwIT09cCYmKHUuYmFyd2lkdGg9cCx2b2lkIDA9PT1mJiYodS5wb2Zmc2V0PWgrKGQtcCkvMikpfX1mdW5jdGlvbiBkKHQsZSl7Zm9yKHZhciByPWUudHJhY2VzLG49eCh0KSxpPTA7aTxyLmxlbmd0aDtpKyspZm9yKHZhciBhPXJbaV0sbz1hWzBdLnQscz1vLnBvZmZzZXQsbD1BcnJheS5pc0FycmF5KHMpLGM9by5iYXJ3aWR0aCx1PUFycmF5LmlzQXJyYXkoYyksZj0wO2Y8YS5sZW5ndGg7ZisrKXt2YXIgaD1hW2ZdLHA9aC53PXU/Y1tmXTpjO2hbbl09aC5wKyhsP3NbZl06cykrcC8yfX1mdW5jdGlvbiBtKHQsZSxyKXt2YXIgbj1lLnRyYWNlcyxpPWUubWluRGlmZi8yO3MubWluRHRpY2sodCxlLm1pbkRpZmYsZS5kaXN0aW5jdFBvc2l0aW9uc1swXSxyKTtmb3IodmFyIGE9MDthPG4ubGVuZ3RoO2ErKyl7dmFyIG8sbCxjLHUsZj1uW2FdLGg9ZlswXSxwPWgudHJhY2UsZD1bXTtmb3IodT0wO3U8Zi5sZW5ndGg7dSsrKWw9KG89Zlt1XSkucC1pLGM9by5wK2ksZC5wdXNoKGwsYyk7aWYocC53aWR0aHx8cC5vZmZzZXQpe3ZhciBtPWgudCxnPW0ucG9mZnNldCx2PW0uYmFyd2lkdGgseT1BcnJheS5pc0FycmF5KGcpLHg9QXJyYXkuaXNBcnJheSh2KTtmb3IodT0wO3U8Zi5sZW5ndGg7dSsrKXtvPWZbdV07dmFyIGI9eT9nW3VdOmcsXz14P3ZbdV06djtjPShsPW8ucCtiKStfLGQucHVzaChsLGMpfX1wLl9leHRyZW1lc1t0Ll9pZF09cy5maW5kRXh0cmVtZXModCxkLHtwYWRkZWQ6ITF9KX19ZnVuY3Rpb24gZyh0LGUpe2Zvcih2YXIgcj1lLnRyYWNlcyxuPXgodCksaT0wO2k8ci5sZW5ndGg7aSsrKXtmb3IodmFyIGE9cltpXSxvPWFbMF0udHJhY2UsbD1bXSxjPSExLHU9MDt1PGEubGVuZ3RoO3UrKyl7dmFyIGY9YVt1XSxoPWYuYixwPWgrZi5zO2Zbbl09cCxsLnB1c2gocCksZi5oYXNCJiZsLnB1c2goaCksZi5oYXNCJiZmLmJ8fChjPSEwKX1vLl9leHRyZW1lc1t0Ll9pZF09cy5maW5kRXh0cmVtZXModCxsLHt0b3plcm86YyxwYWRkZWQ6ITB9KX19ZnVuY3Rpb24gdih0KXtmb3IodmFyIGU9dC50cmFjZXMscj0wO3I8ZS5sZW5ndGg7cisrKWZvcih2YXIgbj1lW3JdLGk9MDtpPG4ubGVuZ3RoO2krKyl7dmFyIG89bltpXTtvLnMhPT1hJiZ0LnB1dChvLnAsby5iK28ucyl9fWZ1bmN0aW9uIHkodCxlLHIpe3ZhciBpPWUudHJhY2VzLG89eCh0KSxsPSJmcmFjdGlvbiI9PT1yLm5vcm0/MToxMDAsYz1sLzFlOSx1PXQubDJjKHQuYzJsKDApKSxmPSJzdGFjayI9PT1yLm1vZGU/bDp1O2Z1bmN0aW9uIGgoZSl7cmV0dXJuIG4odC5jMmwoZSkpJiYoZTx1LWN8fGU+ZitjfHwhbih1KSl9Zm9yKHZhciBwPTA7cDxpLmxlbmd0aDtwKyspe2Zvcih2YXIgZD1pW3BdLG09ZFswXS50cmFjZSxnPVtdLHY9ITEseT0hMSxiPTA7YjxkLmxlbmd0aDtiKyspe3ZhciBfPWRbYl07aWYoXy5zIT09YSl7dmFyIHc9TWF0aC5hYnMobC9lLmdldChfLnAsXy5zKSk7Xy5iKj13LF8ucyo9dzt2YXIgVD1fLmIsaz1UK18ucztfW29dPWssZy5wdXNoKGspLHk9eXx8aChrKSxfLmhhc0ImJihnLnB1c2goVCkseT15fHxoKFQpKSxfLmhhc0ImJl8uYnx8KHY9ITApfX1tLl9leHRyZW1lc1t0Ll9pZF09cy5maW5kRXh0cmVtZXModCxnLHt0b3plcm86dixwYWRkZWQ6eX0pfX1mdW5jdGlvbiB4KHQpe3JldHVybiB0Ll9pZC5jaGFyQXQoMCl9ZS5leHBvcnRzPXtjcm9zc1RyYWNlQ2FsYzpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1lLnhheGlzLG49ZS55YXhpcyxpPXQuX2Z1bGxMYXlvdXQsYT10Ll9mdWxsRGF0YSxzPXQuY2FsY2RhdGEsbD1bXSxjPVtdLGY9MDtmPGEubGVuZ3RoO2YrKyl7dmFyIGg9YVtmXTtpZighMD09PWgudmlzaWJsZSYmby50cmFjZUlzKGgsImJhciIpJiZoLnhheGlzPT09ci5faWQmJmgueWF4aXM9PT1uLl9pZCYmKCJoIj09PWgub3JpZW50YXRpb24/bC5wdXNoKHNbZl0pOmMucHVzaChzW2ZdKSxoLl9jb21wdXRlUGgpKWZvcih2YXIgcD10LmNhbGNkYXRhW2ZdLGQ9MDtkPHAubGVuZ3RoO2QrKykiZnVuY3Rpb24iPT10eXBlb2YgcFtkXS5waDAmJihwW2RdLnBoMD1wW2RdLnBoMCgpKSwiZnVuY3Rpb24iPT10eXBlb2YgcFtkXS5waDEmJihwW2RdLnBoMT1wW2RdLnBoMSgpKX12YXIgbT17eENhdDoiY2F0ZWdvcnkiPT09ci50eXBlfHwibXVsdGljYXRlZ29yeSI9PT1yLnR5cGUseUNhdDoiY2F0ZWdvcnkiPT09bi50eXBlfHwibXVsdGljYXRlZ29yeSI9PT1uLnR5cGUsbW9kZTppLmJhcm1vZGUsbm9ybTppLmJhcm5vcm0sZ2FwOmkuYmFyZ2FwLGdyb3VwZ2FwOmkuYmFyZ3JvdXBnYXB9O3UodCxyLG4sYyxtKSx1KHQsbixyLGwsbSl9LHNldEdyb3VwUG9zaXRpb25zOnV9fSx7Ii4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiOjQ5MSwiLi4vLi4vbGliIjo1MTUsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo1NjYsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9jb25zdHJhaW50cyI6NTc0LCIuLi8uLi9yZWdpc3RyeSI6NjQ3LCIuL3NpZXZlLmpzIjo2NzAsImZhc3QtaXNudW1lcmljIjoxOTB9XSw2NjE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksYT10KCIuLi8uLi9yZWdpc3RyeSIpLG89dCgiLi4vc2NhdHRlci94eV9kZWZhdWx0cyIpLHM9dCgiLi4vc2NhdHRlci9wZXJpb2RfZGVmYXVsdHMiKSxsPXQoIi4vc3R5bGVfZGVmYXVsdHMiKSxjPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9jb25zdHJhaW50cyIpLmdldEF4aXNHcm91cCx1PXQoIi4vYXR0cmlidXRlcyIpLGY9bi5jb2VyY2VGb250O2Z1bmN0aW9uIGgodCxlLHIsbil7dmFyIGk9ZS5vcmllbnRhdGlvbixhPWVbe3Y6IngiLGg6InkifVtpXSsiYXhpcyJdLG89YyhyLGEpK2kscz1yLl9hbGlnbm1lbnRPcHRzfHx7fSxsPW4oImFsaWdubWVudGdyb3VwIiksdT1zW29dO3V8fCh1PXNbb109e30pO3ZhciBmPXVbbF07Zj9mLnRyYWNlcy5wdXNoKGUpOmY9dVtsXT17dHJhY2VzOltlXSxhbGlnbm1lbnRJbmRleDpPYmplY3Qua2V5cyh1KS5sZW5ndGgsb2Zmc2V0R3JvdXBzOnt9fTt2YXIgaD1uKCJvZmZzZXRncm91cCIpLHA9Zi5vZmZzZXRHcm91cHMsZD1wW2hdO2gmJihkfHwoZD1wW2hdPXtvZmZzZXRJbmRleDpPYmplY3Qua2V5cyhwKS5sZW5ndGh9KSxlLl9vZmZzZXRJbmRleD1kLm9mZnNldEluZGV4KX1mdW5jdGlvbiBwKHQsZSxyLGksYSxvKXt2YXIgcz0hKCExPT09KG89b3x8e30pLm1vZHVsZUhhc1NlbGVjdGVkKSxsPSEoITE9PT1vLm1vZHVsZUhhc1Vuc2VsZWN0ZWQpLGM9ISghMT09PW8ubW9kdWxlSGFzQ29uc3RyYWluKSx1PSEoITE9PT1vLm1vZHVsZUhhc0NsaXBvbmF4aXMpLGg9ISghMT09PW8ubW9kdWxlSGFzVGV4dGFuZ2xlKSxwPSEoITE9PT1vLm1vZHVsZUhhc0luc2lkZWFuY2hvciksZD0hIW8uaGFzUGF0aGJhcixtPUFycmF5LmlzQXJyYXkoYSl8fCJhdXRvIj09PWEsZz1tfHwiaW5zaWRlIj09PWEsdj1tfHwib3V0c2lkZSI9PT1hO2lmKGd8fHYpe3ZhciB5PWYoaSwidGV4dGZvbnQiLHIuZm9udCkseD1uLmV4dGVuZEZsYXQoe30seSksYj0hKHQudGV4dGZvbnQmJnQudGV4dGZvbnQuY29sb3IpO2lmKGImJmRlbGV0ZSB4LmNvbG9yLGYoaSwiaW5zaWRldGV4dGZvbnQiLHgpLGQpe3ZhciBfPW4uZXh0ZW5kRmxhdCh7fSx5KTtiJiZkZWxldGUgXy5jb2xvcixmKGksInBhdGhiYXIudGV4dGZvbnQiLF8pfXYmJmYoaSwib3V0c2lkZXRleHRmb250Iix5KSxzJiZpKCJzZWxlY3RlZC50ZXh0Zm9udC5jb2xvciIpLGwmJmkoInVuc2VsZWN0ZWQudGV4dGZvbnQuY29sb3IiKSxjJiZpKCJjb25zdHJhaW50ZXh0IiksdSYmaSgiY2xpcG9uYXhpcyIpLGgmJmkoInRleHRhbmdsZSIpLGkoInRleHR0ZW1wbGF0ZSIpfWcmJnAmJmkoImluc2lkZXRleHRhbmNob3IiKX1lLmV4cG9ydHM9e3N1cHBseURlZmF1bHRzOmZ1bmN0aW9uKHQsZSxyLGMpe2Z1bmN0aW9uIGYocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLHUscixpKX1pZihvKHQsZSxjLGYpKXtzKHQsZSxjLGYpLGYoInhob3ZlcmZvcm1hdCIpLGYoInlob3ZlcmZvcm1hdCIpLGYoIm9yaWVudGF0aW9uIixlLngmJiFlLnk/ImgiOiJ2IiksZigiYmFzZSIpLGYoIm9mZnNldCIpLGYoIndpZHRoIiksZigidGV4dCIpLGYoImhvdmVydGV4dCIpLGYoImhvdmVydGVtcGxhdGUiKTt2YXIgaD1mKCJ0ZXh0cG9zaXRpb24iKTtwKHQsZSxjLGYsaCx7bW9kdWxlSGFzU2VsZWN0ZWQ6ITAsbW9kdWxlSGFzVW5zZWxlY3RlZDohMCxtb2R1bGVIYXNDb25zdHJhaW46ITAsbW9kdWxlSGFzQ2xpcG9uYXhpczohMCxtb2R1bGVIYXNUZXh0YW5nbGU6ITAsbW9kdWxlSGFzSW5zaWRlYW5jaG9yOiEwfSksbCh0LGUsZixyLGMpO3ZhciBkPShlLm1hcmtlci5saW5lfHx7fSkuY29sb3IsbT1hLmdldENvbXBvbmVudE1ldGhvZCgiZXJyb3JiYXJzIiwic3VwcGx5RGVmYXVsdHMiKTttKHQsZSxkfHxpLmRlZmF1bHRMaW5lLHtheGlzOiJ5In0pLG0odCxlLGR8fGkuZGVmYXVsdExpbmUse2F4aXM6IngiLGluaGVyaXQ6InkifSksbi5jb2VyY2VTZWxlY3Rpb25NYXJrZXJPcGFjaXR5KGUsZil9ZWxzZSBlLnZpc2libGU9ITF9LGNyb3NzVHJhY2VEZWZhdWx0czpmdW5jdGlvbih0LGUpe3ZhciByO2Z1bmN0aW9uIGkodCl7cmV0dXJuIG4uY29lcmNlKHIuX2lucHV0LHIsdSx0KX1pZigiZ3JvdXAiPT09ZS5iYXJtb2RlKWZvcih2YXIgYT0wO2E8dC5sZW5ndGg7YSsrKSJiYXIiPT09KHI9dFthXSkudHlwZSYmKHIuX2lucHV0LGgoMCxyLGUsaSkpfSxoYW5kbGVHcm91cGluZ0RlZmF1bHRzOmgsaGFuZGxlVGV4dDpwfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjozNjcsIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vY29uc3RyYWludHMiOjU3NCwiLi4vLi4vcmVnaXN0cnkiOjY0NywiLi4vc2NhdHRlci9wZXJpb2RfZGVmYXVsdHMiOjk1NiwiLi4vc2NhdHRlci94eV9kZWZhdWx0cyI6OTYzLCIuL2F0dHJpYnV0ZXMiOjY1NywiLi9zdHlsZV9kZWZhdWx0cyI6NjcyfV0sNjYyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQueD0ieFZhbCJpbiBlP2UueFZhbDplLngsdC55PSJ5VmFsImluIGU/ZS55VmFsOmUueSxlLnhhJiYodC54YXhpcz1lLnhhKSxlLnlhJiYodC55YXhpcz1lLnlhKSwiaCI9PT1yLm9yaWVudGF0aW9uPyh0LmxhYmVsPXQueSx0LnZhbHVlPXQueCk6KHQubGFiZWw9dC54LHQudmFsdWU9dC55KSx0fX0se31dLDY2MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGk9dCgidGlueWNvbG9yMiIpLGE9dCgiLi4vLi4vbGliIikuaXNBcnJheU9yVHlwZWRBcnJheTtyLmNvZXJjZVN0cmluZz1mdW5jdGlvbih0LGUscil7aWYoInN0cmluZyI9PXR5cGVvZiBlKXtpZihlfHwhdC5ub0JsYW5rKXJldHVybiBlfWVsc2UgaWYoKCJudW1iZXIiPT10eXBlb2YgZXx8ITA9PT1lKSYmIXQuc3RyaWN0KXJldHVybiBTdHJpbmcoZSk7cmV0dXJuIHZvaWQgMCE9PXI/cjp0LmRmbHR9LHIuY29lcmNlTnVtYmVyPWZ1bmN0aW9uKHQsZSxyKXtpZihuKGUpKXtlPStlO3ZhciBpPXQubWluLGE9dC5tYXg7aWYoISh2b2lkIDAhPT1pJiZlPGl8fHZvaWQgMCE9PWEmJmU+YSkpcmV0dXJuIGV9cmV0dXJuIHZvaWQgMCE9PXI/cjp0LmRmbHR9LHIuY29lcmNlQ29sb3I9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBpKGUpLmlzVmFsaWQoKT9lOnZvaWQgMCE9PXI/cjp0LmRmbHR9LHIuY29lcmNlRW51bWVyYXRlZD1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQuY29lcmNlTnVtYmVyJiYoZT0rZSksLTEhPT10LnZhbHVlcy5pbmRleE9mKGUpP2U6dm9pZCAwIT09cj9yOnQuZGZsdH0sci5nZXRWYWx1ZT1mdW5jdGlvbih0LGUpe3ZhciByO3JldHVybiBBcnJheS5pc0FycmF5KHQpP2U8dC5sZW5ndGgmJihyPXRbZV0pOnI9dCxyfSxyLmdldExpbmVXaWR0aD1mdW5jdGlvbih0LGUpe3JldHVybiAwPGUubWx3P2UubWx3OmEodC5tYXJrZXIubGluZS53aWR0aCk/MDp0Lm1hcmtlci5saW5lLndpZHRofX0seyIuLi8uLi9saWIiOjUxNSwiZmFzdC1pc251bWVyaWMiOjE5MCx0aW55Y29sb3IyOjMxM31dLDY2NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2Z4IiksaT10KCIuLi8uLi9yZWdpc3RyeSIpLGE9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLG89dCgiLi4vLi4vbGliIikuZmlsbFRleHQscz10KCIuL2hlbHBlcnMiKS5nZXRMaW5lV2lkdGgsbD10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLmhvdmVyTGFiZWxUZXh0LGM9dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTTtmdW5jdGlvbiB1KHQsZSxyLGksYSl7dmFyIHMsdSxmLGgscCxkLG0sZz10LmNkLHY9Z1swXS50cmFjZSx5PWdbMF0udCx4PSJjbG9zZXN0Ij09PWksYj0id2F0ZXJmYWxsIj09PXYudHlwZSxfPXQubWF4SG92ZXJEaXN0YW5jZSx3PXQubWF4U3Bpa2VEaXN0YW5jZTsiaCI9PT12Lm9yaWVudGF0aW9uPyhzPXIsdT1lLGY9InkiLGg9IngiLHA9eixkPUkpOihzPWUsdT1yLGY9IngiLGg9InkiLGQ9eixwPUkpO3ZhciBUPXZbZisicGVyaW9kIl0saz14fHxUO2Z1bmN0aW9uIEEodCl7cmV0dXJuIFModCwtMSl9ZnVuY3Rpb24gTSh0KXtyZXR1cm4gUyh0LDEpfWZ1bmN0aW9uIFModCxlKXt2YXIgcj10Lnc7cmV0dXJuIHRbZl0rZSpyLzJ9ZnVuY3Rpb24gRSh0KXtyZXR1cm4gdFtmKyJFbmQiXS10W2YrIlN0YXJ0Il19dmFyIEw9eD9BOlQ/ZnVuY3Rpb24odCl7cmV0dXJuIHQucC1FKHQpLzJ9OmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLm1pbihBKHQpLHQucC15LmJhcmRlbHRhLzIpfSxDPXg/TTpUP2Z1bmN0aW9uKHQpe3JldHVybiB0LnArRSh0KS8yfTpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5tYXgoTSh0KSx0LnAreS5iYXJkZWx0YS8yKX07ZnVuY3Rpb24gUCh0LGUscil7cmV0dXJuIGEuZmluaXRlUmFuZ2UmJihyPTApLG4uaW5ib3godC1zLGUtcyxyK01hdGgubWluKDEsTWF0aC5hYnMoZS10KS9tKS0xKX1mdW5jdGlvbiBJKHQpe3JldHVybiBQKEwodCksQyh0KSxfKX1mdW5jdGlvbiBPKHQpe3ZhciBlPXRbaF07aWYoYil7dmFyIHI9TWF0aC5hYnModC5yYXdTKXx8MDt1PjA/ZSs9cjp1PDAmJihlLT1yKX1yZXR1cm4gZX1mdW5jdGlvbiB6KHQpe3ZhciBlPXUscj10LmIsaT1PKHQpO3JldHVybiBuLmluYm94KHItZSxpLWUsXysoaS1lKS8oaS1yKS0xKX12YXIgRD10W2YrImEiXSxSPXRbaCsiYSJdO209TWF0aC5hYnMoRC5yMmMoRC5yYW5nZVsxXSktRC5yMmMoRC5yYW5nZVswXSkpO3ZhciBGPW4uZ2V0RGlzdGFuY2VGdW5jdGlvbihpLHAsZCwoZnVuY3Rpb24odCl7cmV0dXJuKHAodCkrZCh0KSkvMn0pKTtpZihuLmdldENsb3Nlc3QoZyxGLHQpLCExIT09dC5pbmRleCYmZ1t0LmluZGV4XS5wIT09Yyl7a3x8KEw9ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgubWluKEEodCksdC5wLXkuYmFyZ3JvdXB3aWR0aC8yKX0sQz1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5tYXgoTSh0KSx0LnAreS5iYXJncm91cHdpZHRoLzIpfSk7dmFyIEI9Z1t0LmluZGV4XSxOPXYuYmFzZT9CLmIrQi5zOkIuczt0W2grIjAiXT10W2grIjEiXT1SLmMycChCW2hdLCEwKSx0W2grIkxhYmVsVmFsIl09Tjt2YXIgaj15LmV4dGVudHNbeS5leHRlbnRzLnJvdW5kKEIucCldO3RbZisiMCJdPUQuYzJwKHg/TChCKTpqWzBdLCEwKSx0W2YrIjEiXT1ELmMycCh4P0MoQik6alsxXSwhMCk7dmFyIFU9dm9pZCAwIT09Qi5vcmlnX3A7cmV0dXJuIHRbZisiTGFiZWxWYWwiXT1VP0Iub3JpZ19wOkIucCx0LmxhYmVsTGFiZWw9bChELHRbZisiTGFiZWxWYWwiXSx2W2YrImhvdmVyZm9ybWF0Il0pLHQudmFsdWVMYWJlbD1sKFIsdFtoKyJMYWJlbFZhbCJdLHZbaCsiaG92ZXJmb3JtYXQiXSksdC5iYXNlTGFiZWw9bChSLEIuYix2W2grImhvdmVyZm9ybWF0Il0pLHQuc3Bpa2VEaXN0YW5jZT0oZnVuY3Rpb24odCl7dmFyIGU9dSxyPXQuYixpPU8odCk7cmV0dXJuIG4uaW5ib3goci1lLGktZSx3KyhpLWUpLyhpLXIpLTEpfShCKStmdW5jdGlvbih0KXtyZXR1cm4gUChBKHQpLE0odCksdyl9KEIpKS8yLHRbZisiU3Bpa2UiXT1ELmMycChCLnAsITApLG8oQix2LHQpLHQuaG92ZXJ0ZW1wbGF0ZT12LmhvdmVydGVtcGxhdGUsdH19ZnVuY3Rpb24gZih0LGUpe3ZhciByPWUubWNjfHx0Lm1hcmtlci5jb2xvcixuPWUubWxjY3x8dC5tYXJrZXIubGluZS5jb2xvcixpPXModCxlKTtyZXR1cm4gYS5vcGFjaXR5KHIpP3I6YS5vcGFjaXR5KG4pJiZpP246dm9pZCAwfWUuZXhwb3J0cz17aG92ZXJQb2ludHM6ZnVuY3Rpb24odCxlLHIsbixhKXt2YXIgbz11KHQsZSxyLG4sYSk7aWYobyl7dmFyIHM9by5jZCxsPXNbMF0udHJhY2UsYz1zW28uaW5kZXhdO3JldHVybiBvLmNvbG9yPWYobCxjKSxpLmdldENvbXBvbmVudE1ldGhvZCgiZXJyb3JiYXJzIiwiaG92ZXJJbmZvIikoYyxsLG8pLFtvXX19LGhvdmVyT25CYXJzOnUsZ2V0VHJhY2VDb2xvcjpmfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjozNjcsIi4uLy4uL2NvbXBvbmVudHMvZngiOjQwNywiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NDkxLCIuLi8uLi9saWIiOjUxNSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjU2NiwiLi4vLi4vcmVnaXN0cnkiOjY0NywiLi9oZWxwZXJzIjo2NjN9XSw2NjU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXthdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLGxheW91dEF0dHJpYnV0ZXM6dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKS5zdXBwbHlEZWZhdWx0cyxjcm9zc1RyYWNlRGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLmNyb3NzVHJhY2VEZWZhdWx0cyxzdXBwbHlMYXlvdXREZWZhdWx0czp0KCIuL2xheW91dF9kZWZhdWx0cyIpLGNhbGM6dCgiLi9jYWxjIiksY3Jvc3NUcmFjZUNhbGM6dCgiLi9jcm9zc190cmFjZV9jYWxjIikuY3Jvc3NUcmFjZUNhbGMsY29sb3JiYXI6dCgiLi4vc2NhdHRlci9tYXJrZXJfY29sb3JiYXIiKSxhcnJheXNUb0NhbGNkYXRhOnQoIi4vYXJyYXlzX3RvX2NhbGNkYXRhIikscGxvdDp0KCIuL3Bsb3QiKS5wbG90LHN0eWxlOnQoIi4vc3R5bGUiKS5zdHlsZSxzdHlsZU9uU2VsZWN0OnQoIi4vc3R5bGUiKS5zdHlsZU9uU2VsZWN0LGhvdmVyUG9pbnRzOnQoIi4vaG92ZXIiKS5ob3ZlclBvaW50cyxldmVudERhdGE6dCgiLi9ldmVudF9kYXRhIiksc2VsZWN0UG9pbnRzOnQoIi4vc2VsZWN0IiksbW9kdWxlVHlwZToidHJhY2UiLG5hbWU6ImJhciIsYmFzZVBsb3RNb2R1bGU6dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuIiksY2F0ZWdvcmllczpbImJhci1saWtlIiwiY2FydGVzaWFuIiwic3ZnIiwiYmFyIiwib3JpZW50ZWQiLCJlcnJvckJhcnNPSyIsInNob3dMZWdlbmQiLCJ6b29tU2NhbGUiXSxhbmltYXRhYmxlOiEwLG1ldGE6e319fSx7Ii4uLy4uL3Bsb3RzL2NhcnRlc2lhbiI6NTc4LCIuLi9zY2F0dGVyL21hcmtlcl9jb2xvcmJhciI6OTU0LCIuL2FycmF5c190b19jYWxjZGF0YSI6NjU2LCIuL2F0dHJpYnV0ZXMiOjY1NywiLi9jYWxjIjo2NTgsIi4vY3Jvc3NfdHJhY2VfY2FsYyI6NjYwLCIuL2RlZmF1bHRzIjo2NjEsIi4vZXZlbnRfZGF0YSI6NjYyLCIuL2hvdmVyIjo2NjQsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjY2NiwiLi9sYXlvdXRfZGVmYXVsdHMiOjY2NywiLi9wbG90Ijo2NjgsIi4vc2VsZWN0Ijo2NjksIi4vc3R5bGUiOjY3MX1dLDY2NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2Jhcm1vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInN0YWNrIiwiZ3JvdXAiLCJvdmVybGF5IiwicmVsYXRpdmUiXSxkZmx0OiJncm91cCIsZWRpdFR5cGU6ImNhbGMifSxiYXJub3JtOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyIiLCJmcmFjdGlvbiIsInBlcmNlbnQiXSxkZmx0OiIiLGVkaXRUeXBlOiJjYWxjIn0sYmFyZ2FwOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGVkaXRUeXBlOiJjYWxjIn0sYmFyZ3JvdXBnYXA6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDowLGVkaXRUeXBlOiJjYWxjIn19fSx7fV0sNjY3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3JlZ2lzdHJ5IiksaT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGE9dCgiLi4vLi4vbGliIiksbz10KCIuL2xheW91dF9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBzKHIsbil7cmV0dXJuIGEuY29lcmNlKHQsZSxvLHIsbil9Zm9yKHZhciBsPSExLGM9ITEsdT0hMSxmPXt9LGg9cygiYmFybW9kZSIpLHA9MDtwPHIubGVuZ3RoO3ArKyl7dmFyIGQ9cltwXTtpZihuLnRyYWNlSXMoZCwiYmFyIikmJmQudmlzaWJsZSl7aWYobD0hMCwiZ3JvdXAiPT09aCl7dmFyIG09ZC54YXhpcytkLnlheGlzO2ZbbV0mJih1PSEwKSxmW21dPSEwfWlmKGQudmlzaWJsZSYmImhpc3RvZ3JhbSI9PT1kLnR5cGUpImNhdGVnb3J5IiE9PWkuZ2V0RnJvbUlkKHtfZnVsbExheW91dDplfSxkWyJ2Ij09PWQub3JpZW50YXRpb24/InhheGlzIjoieWF4aXMiXSkudHlwZSYmKGM9ITApfX1sPygib3ZlcmxheSIhPT1oJiZzKCJiYXJub3JtIikscygiYmFyZ2FwIixjJiYhdT8wOi4yKSxzKCJiYXJncm91cGdhcCIpKTpkZWxldGUgZS5iYXJtb2RlfX0seyIuLi8uLi9saWIiOjUxNSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjU2NiwiLi4vLi4vcmVnaXN0cnkiOjY0NywiLi9sYXlvdXRfYXR0cmlidXRlcyI6NjY2fV0sNjY4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoImZhc3QtaXNudW1lcmljIiksYT10KCIuLi8uLi9saWIiKSxvPXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpLHM9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLGw9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIiksYz10KCIuLi8uLi9yZWdpc3RyeSIpLHU9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKS50aWNrVGV4dCxmPXQoIi4vdW5pZm9ybV90ZXh0IiksaD1mLnJlY29yZE1pblRleHRTaXplLHA9Zi5jbGVhck1pblRleHRTaXplLGQ9dCgiLi9zdHlsZSIpLG09dCgiLi9oZWxwZXJzIiksZz10KCIuL2NvbnN0YW50cyIpLHY9dCgiLi9hdHRyaWJ1dGVzIikseT12LnRleHQseD12LnRleHRwb3NpdGlvbixiPXQoIi4uLy4uL2NvbXBvbmVudHMvZngvaGVscGVycyIpLmFwcGVuZEFycmF5UG9pbnRWYWx1ZSxfPWcuVEVYVFBBRDtmdW5jdGlvbiB3KHQpe3JldHVybiB0LmlkfWZ1bmN0aW9uIFQodCl7aWYodC5pZHMpcmV0dXJuIHd9ZnVuY3Rpb24gayh0LGUpe3JldHVybiB0PGU/MTotMX1mdW5jdGlvbiBBKHQsZSxyLG4pe3ZhciBpO3JldHVybiFlLnVuaWZvcm10ZXh0Lm1vZGUmJk0ocik/KG4mJihpPW4oKSksdC50cmFuc2l0aW9uKCkuZHVyYXRpb24oci5kdXJhdGlvbikuZWFzZShyLmVhc2luZykuZWFjaCgiZW5kIiwoZnVuY3Rpb24oKXtpJiZpKCl9KSkuZWFjaCgiaW50ZXJydXB0IiwoZnVuY3Rpb24oKXtpJiZpKCl9KSkpOnR9ZnVuY3Rpb24gTSh0KXtyZXR1cm4gdCYmdC5kdXJhdGlvbj4wfWZ1bmN0aW9uIFModCl7cmV0dXJuImF1dG8iPT09dD8wOnR9ZnVuY3Rpb24gRSh0LGUpe3ZhciByPU1hdGguUEkvMTgwKmUsbj1NYXRoLmFicyhNYXRoLnNpbihyKSksaT1NYXRoLmFicyhNYXRoLmNvcyhyKSk7cmV0dXJue3g6dC53aWR0aCppK3QuaGVpZ2h0Km4seTp0LndpZHRoKm4rdC5oZWlnaHQqaX19ZnVuY3Rpb24gTCh0LGUscixuLGksYSl7dmFyIG89ISFhLmlzSG9yaXpvbnRhbCxzPSEhYS5jb25zdHJhaW5lZCxsPWEuYW5nbGV8fDAsYz1hLmFuY2hvcnx8ImVuZCIsdT0iZW5kIj09PWMsZj0ic3RhcnQiPT09YyxoPSgoYS5sZWZ0VG9SaWdodHx8MCkrMSkvMixwPTEtaCxkPWkud2lkdGgsbT1pLmhlaWdodCxnPU1hdGguYWJzKGUtdCksdj1NYXRoLmFicyhuLXIpLHk9Zz4yKl8mJnY+MipfP186MDtnLT0yKnksdi09Mip5O3ZhciB4PVMobCk7ImF1dG8iIT09bHx8ZDw9ZyYmbTw9dnx8IShkPmd8fG0+dil8fChkPnZ8fG0+ZykmJmQ8bT09Zzx2fHwoeCs9OTApO3ZhciBiPUUoaSx4KSx3PTE7cyYmKHc9TWF0aC5taW4oMSxnL2IueCx2L2IueSkpO3ZhciBUPWkubGVmdCpwK2kucmlnaHQqaCxBPShpLnRvcCtpLmJvdHRvbSkvMixNPSh0K18pKnArKGUtXykqaCxMPShyK24pLzIsQz0wLFA9MDtpZihmfHx1KXt2YXIgST0obz9iLng6Yi55KS8yLE89bz9rKHQsZSk6ayhyLG4pO28/Zj8oTT10K08qeSxDPS1PKkkpOihNPWUtTyp5LEM9TypJKTpmPyhMPXIrTyp5LFA9LU8qSSk6KEw9bi1PKnksUD1PKkkpfXJldHVybnt0ZXh0WDpULHRleHRZOkEsdGFyZ2V0WDpNLHRhcmdldFk6TCxhbmNob3JYOkMsYW5jaG9yWTpQLHNjYWxlOncscm90YXRlOnh9fWUuZXhwb3J0cz17cGxvdDpmdW5jdGlvbih0LGUscixmLGcsdil7dmFyIHc9ZS54YXhpcyxDPWUueWF4aXMsUD10Ll9mdWxsTGF5b3V0O2d8fChnPXttb2RlOlAuYmFybW9kZSxub3JtOlAuYmFybW9kZSxnYXA6UC5iYXJnYXAsZ3JvdXBnYXA6UC5iYXJncm91cGdhcH0scCgiYmFyIixQKSk7dmFyIEk9YS5tYWtlVHJhY2VHcm91cHMoZixyLCJ0cmFjZSBiYXJzIikuZWFjaCgoZnVuY3Rpb24ocil7dmFyIGM9bi5zZWxlY3QodGhpcyksZj1yWzBdLnRyYWNlLHA9IndhdGVyZmFsbCI9PT1mLnR5cGUsST0iZnVubmVsIj09PWYudHlwZSxPPSJiYXIiPT09Zi50eXBlfHxJLHo9MDtwJiZmLmNvbm5lY3Rvci52aXNpYmxlJiYiYmV0d2VlbiI9PT1mLmNvbm5lY3Rvci5tb2RlJiYoej1mLmNvbm5lY3Rvci5saW5lLndpZHRoLzIpO3ZhciBEPSJoIj09PWYub3JpZW50YXRpb24sUj1NKGcpLEY9YS5lbnN1cmVTaW5nbGUoYywiZyIsInBvaW50cyIpLEI9VChmKSxOPUYuc2VsZWN0QWxsKCJnLnBvaW50IikuZGF0YShhLmlkZW50aXR5LEIpO04uZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJwb2ludCIsITApLE4uZXhpdCgpLnJlbW92ZSgpLE4uZWFjaCgoZnVuY3Rpb24oYyxwKXt2YXIgVCxNLEk9bi5zZWxlY3QodGhpcyksRj1mdW5jdGlvbih0LGUscixuKXt2YXIgaT1bXSxhPVtdLG89bj9lOnIscz1uP3I6ZTtyZXR1cm4gaVswXT1vLmMycCh0LnMwLCEwKSxhWzBdPXMuYzJwKHQucDAsITApLGlbMV09by5jMnAodC5zMSwhMCksYVsxXT1zLmMycCh0LnAxLCEwKSxuP1tpLGFdOlthLGldfShjLHcsQyxEKSxCPUZbMF1bMF0sTj1GWzBdWzFdLGo9RlsxXVswXSxVPUZbMV1bMV0sVj0wPT0oRD9OLUI6VS1qKTtpZihWJiZPJiZtLmdldExpbmVXaWR0aChmLGMpJiYoVj0hMSksVnx8KFY9IShpKEIpJiZpKE4pJiZpKGopJiZpKFUpKSksYy5pc0JsYW5rPVYsViYmKEQ/Tj1COlU9aikseiYmIVYmJihEPyhCLT1rKEIsTikqeixOKz1rKEIsTikqeik6KGotPWsoaixVKSp6LFUrPWsoaixVKSp6KSksIndhdGVyZmFsbCI9PT1mLnR5cGUpe2lmKCFWKXt2YXIgSD1mW2MuZGlyXS5tYXJrZXI7VD1ILmxpbmUud2lkdGgsTT1ILmNvbG9yfX1lbHNlIFQ9bS5nZXRMaW5lV2lkdGgoZixjKSxNPWMubWN8fGYubWFya2VyLmNvbG9yO2Z1bmN0aW9uIHEodCl7dmFyIGU9bi5yb3VuZChULzIlMSwyKTtyZXR1cm4gMD09PWcuZ2FwJiYwPT09Zy5ncm91cGdhcD9uLnJvdW5kKE1hdGgucm91bmQodCktZSwyKTp0fWlmKCF0Ll9jb250ZXh0LnN0YXRpY1Bsb3Qpe3ZhciBHPXMub3BhY2l0eShNKTwxfHxUPi4wMT9xOmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gciYmdD09PWU/dDpNYXRoLmFicyh0LWUpPj0yP3EodCk6dD5lP01hdGguY2VpbCh0KTpNYXRoLmZsb29yKHQpfTtCPUcoQixOLEQpLE49RyhOLEIsRCksaj1HKGosVSwhRCksVT1HKFUsaiwhRCl9dmFyIFk9QShhLmVuc3VyZVNpbmdsZShJLCJwYXRoIiksUCxnLHYpO2lmKFkuc3R5bGUoInZlY3Rvci1lZmZlY3QiLCJub24tc2NhbGluZy1zdHJva2UiKS5hdHRyKCJkIixpc05hTigoTi1CKSooVS1qKSl8fFYmJnQuX2NvbnRleHQuc3RhdGljUGxvdD8iTTAsMFoiOiJNIitCKyIsIitqKyJWIitVKyJIIitOKyJWIitqKyJaIikuY2FsbChsLnNldENsaXBVcmwsZS5sYXllckNsaXBJZCx0KSwhUC51bmlmb3JtdGV4dC5tb2RlJiZSKXt2YXIgVz1sLm1ha2VQb2ludFN0eWxlRm5zKGYpO2wuc2luZ2xlUG9pbnRTdHlsZShjLFksZixXLHQpfSFmdW5jdGlvbih0LGUscixuLGkscyxjLGYscCxnLHYpe3ZhciB3LFQ9ZS54YXhpcyxNPWUueWF4aXMsQz10Ll9mdWxsTGF5b3V0O2Z1bmN0aW9uIFAoZSxyLG4pe3JldHVybiBhLmVuc3VyZVNpbmdsZShlLCJ0ZXh0IikudGV4dChyKS5hdHRyKHtjbGFzczoiYmFydGV4dCBiYXJ0ZXh0LSIrdywidGV4dC1hbmNob3IiOiJtaWRkbGUiLCJkYXRhLW5vdGV4IjoxfSkuY2FsbChsLmZvbnQsbikuY2FsbChvLmNvbnZlcnRUb1RzcGFucyx0KX12YXIgST1uWzBdLnRyYWNlLE89ImgiPT09SS5vcmllbnRhdGlvbix6PWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIG8scz1lWzBdLnRyYWNlO289cy50ZXh0dGVtcGxhdGU/ZnVuY3Rpb24odCxlLHIsbixpKXt2YXIgbz1lWzBdLnRyYWNlLHM9YS5jYXN0T3B0aW9uKG8sciwidGV4dHRlbXBsYXRlIik7aWYoIXMpcmV0dXJuIiI7dmFyIGwsYyxmLGgscD0iaGlzdG9ncmFtIj09PW8udHlwZSxkPSJ3YXRlcmZhbGwiPT09by50eXBlLG09ImZ1bm5lbCI9PT1vLnR5cGUsZz0iaCI9PT1vLm9yaWVudGF0aW9uO2c/KGw9InkiLGM9aSxmPSJ4IixoPW4pOihsPSJ4IixjPW4sZj0ieSIsaD1pKTtmdW5jdGlvbiB2KHQpe3JldHVybiB1KGgsaC5jMmwodCksITApLnRleHR9dmFyIHk9ZVtyXSx4PXt9O3gubGFiZWw9eS5wLHgubGFiZWxMYWJlbD14W2wrIkxhYmVsIl09KF89eS5wLHUoYyxjLmMybChfKSwhMCkudGV4dCk7dmFyIF87dmFyIHc9YS5jYXN0T3B0aW9uKG8seS5pLCJ0ZXh0Iik7KDA9PT13fHx3KSYmKHgudGV4dD13KTt4LnZhbHVlPXkucyx4LnZhbHVlTGFiZWw9eFtmKyJMYWJlbCJdPXYoeS5zKTt2YXIgVD17fTtiKFQsbyx5LmkpLChwfHx2b2lkIDA9PT1ULngpJiYoVC54PWc/eC52YWx1ZTp4LmxhYmVsKTsocHx8dm9pZCAwPT09VC55KSYmKFQueT1nP3gubGFiZWw6eC52YWx1ZSk7KHB8fHZvaWQgMD09PVQueExhYmVsKSYmKFQueExhYmVsPWc/eC52YWx1ZUxhYmVsOngubGFiZWxMYWJlbCk7KHB8fHZvaWQgMD09PVQueUxhYmVsKSYmKFQueUxhYmVsPWc/eC5sYWJlbExhYmVsOngudmFsdWVMYWJlbCk7ZCYmKHguZGVsdGE9K3kucmF3U3x8eS5zLHguZGVsdGFMYWJlbD12KHguZGVsdGEpLHguZmluYWw9eS52LHguZmluYWxMYWJlbD12KHguZmluYWwpLHguaW5pdGlhbD14LmZpbmFsLXguZGVsdGEseC5pbml0aWFsTGFiZWw9dih4LmluaXRpYWwpKTttJiYoeC52YWx1ZT15LnMseC52YWx1ZUxhYmVsPXYoeC52YWx1ZSkseC5wZXJjZW50SW5pdGlhbD15LmJlZ1IseC5wZXJjZW50SW5pdGlhbExhYmVsPWEuZm9ybWF0UGVyY2VudCh5LmJlZ1IpLHgucGVyY2VudFByZXZpb3VzPXkuZGlmUix4LnBlcmNlbnRQcmV2aW91c0xhYmVsPWEuZm9ybWF0UGVyY2VudCh5LmRpZlIpLHgucGVyY2VudFRvdGFsPXkuc3VtUix4LnBlcmNlblRvdGFsTGFiZWw9YS5mb3JtYXRQZXJjZW50KHkuc3VtUikpO3ZhciBrPWEuY2FzdE9wdGlvbihvLHkuaSwiY3VzdG9tZGF0YSIpO2smJih4LmN1c3RvbWRhdGE9ayk7cmV0dXJuIGEudGV4dHRlbXBsYXRlU3RyaW5nKHMseCx0Ll9kM2xvY2FsZSxULHgsby5fbWV0YXx8e30pfSh0LGUscixuLGkpOnMudGV4dGluZm8/ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9dFswXS50cmFjZSxvPSJoIj09PWkub3JpZW50YXRpb24scz0id2F0ZXJmYWxsIj09PWkudHlwZSxsPSJmdW5uZWwiPT09aS50eXBlO2Z1bmN0aW9uIGModCl7cmV0dXJuIHUobz9yOm4sK3QsITApLnRleHR9dmFyIGYsaD1pLnRleHRpbmZvLHA9dFtlXSxkPWguc3BsaXQoIisiKSxtPVtdLGc9ZnVuY3Rpb24odCl7cmV0dXJuLTEhPT1kLmluZGV4T2YodCl9O2coImxhYmVsIikmJm0ucHVzaCgodj10W2VdLnAsdShvP246cix2LCEwKS50ZXh0KSk7dmFyIHY7ZygidGV4dCIpJiYoMD09PShmPWEuY2FzdE9wdGlvbihpLHAuaSwidGV4dCIpKXx8ZikmJm0ucHVzaChmKTtpZihzKXt2YXIgeT0rcC5yYXdTfHxwLnMseD1wLnYsYj14LXk7ZygiaW5pdGlhbCIpJiZtLnB1c2goYyhiKSksZygiZGVsdGEiKSYmbS5wdXNoKGMoeSkpLGcoImZpbmFsIikmJm0ucHVzaChjKHgpKX1pZihsKXtnKCJ2YWx1ZSIpJiZtLnB1c2goYyhwLnMpKTt2YXIgXz0wO2coInBlcmNlbnQgaW5pdGlhbCIpJiZfKyssZygicGVyY2VudCBwcmV2aW91cyIpJiZfKyssZygicGVyY2VudCB0b3RhbCIpJiZfKys7dmFyIHc9Xz4xO2coInBlcmNlbnQgaW5pdGlhbCIpJiYoZj1hLmZvcm1hdFBlcmNlbnQocC5iZWdSKSx3JiYoZis9IiBvZiBpbml0aWFsIiksbS5wdXNoKGYpKSxnKCJwZXJjZW50IHByZXZpb3VzIikmJihmPWEuZm9ybWF0UGVyY2VudChwLmRpZlIpLHcmJihmKz0iIG9mIHByZXZpb3VzIiksbS5wdXNoKGYpKSxnKCJwZXJjZW50IHRvdGFsIikmJihmPWEuZm9ybWF0UGVyY2VudChwLnN1bVIpLHcmJihmKz0iIG9mIHRvdGFsIiksbS5wdXNoKGYpKX1yZXR1cm4gbS5qb2luKCI8YnI+Iil9KGUscixuLGkpOm0uZ2V0VmFsdWUocy50ZXh0LHIpO3JldHVybiBtLmNvZXJjZVN0cmluZyh5LG8pfShDLG4saSxULE0pO3c9ZnVuY3Rpb24odCxlKXt2YXIgcj1tLmdldFZhbHVlKHQudGV4dHBvc2l0aW9uLGUpO3JldHVybiBtLmNvZXJjZUVudW1lcmF0ZWQoeCxyKX0oSSxpKTt2YXIgRD0ic3RhY2siPT09Zy5tb2RlfHwicmVsYXRpdmUiPT09Zy5tb2RlLFI9bltpXSxGPSFEfHxSLl9vdXRtb3N0O2lmKCF6fHwibm9uZSI9PT13fHwoUi5pc0JsYW5rfHxzPT09Y3x8Zj09PXApJiYoImF1dG8iPT09d3x8Imluc2lkZSI9PT13KSlyZXR1cm4gdm9pZCByLnNlbGVjdCgidGV4dCIpLnJlbW92ZSgpO3ZhciBCPUMuZm9udCxOPWQuZ2V0QmFyQ29sb3IobltpXSxJKSxqPWQuZ2V0SW5zaWRlVGV4dEZvbnQoSSxpLEIsTiksVT1kLmdldE91dHNpZGVUZXh0Rm9udChJLGksQiksVj1yLmRhdHVtKCk7Tz8ibG9nIj09PVQudHlwZSYmVi5zMDw9MCYmKHM9VC5yYW5nZVswXTxULnJhbmdlWzFdPzA6VC5fbGVuZ3RoKToibG9nIj09PU0udHlwZSYmVi5zMDw9MCYmKGY9TS5yYW5nZVswXTxNLnJhbmdlWzFdP00uX2xlbmd0aDowKTt2YXIgSCxxLEcsWSxXLFg9TWF0aC5hYnMoYy1zKS0yKl8sWj1NYXRoLmFicyhwLWYpLTIqXzsib3V0c2lkZSI9PT13JiYoRnx8Ui5oYXNCfHwodz0iaW5zaWRlIikpO2lmKCJhdXRvIj09PXcpaWYoRil7dz0iaW5zaWRlIixXPWEuZW5zdXJlVW5pZm9ybUZvbnRTaXplKHQsaiksSD1QKHIseixXKSxxPWwuYkJveChILm5vZGUoKSksRz1xLndpZHRoLFk9cS5oZWlnaHQ7dmFyIEo9Rzw9WCYmWTw9WixLPUc8PVomJlk8PVgsUT1PP1g+PUcqKFovWSk6Wj49WSooWC9HKTtHPjAmJlk+MCYmKEp8fEt8fFEpP3c9Imluc2lkZSI6KHc9Im91dHNpZGUiLEgucmVtb3ZlKCksSD1udWxsKX1lbHNlIHc9Imluc2lkZSI7aWYoIUgpe1c9YS5lbnN1cmVVbmlmb3JtRm9udFNpemUodCwib3V0c2lkZSI9PT13P1U6aik7dmFyICQ9KEg9UChyLHosVykpLmF0dHIoInRyYW5zZm9ybSIpO2lmKEguYXR0cigidHJhbnNmb3JtIiwiIikscT1sLmJCb3goSC5ub2RlKCkpLEc9cS53aWR0aCxZPXEuaGVpZ2h0LEguYXR0cigidHJhbnNmb3JtIiwkKSxHPD0wfHxZPD0wKXJldHVybiB2b2lkIEgucmVtb3ZlKCl9dmFyIHR0LGV0LHJ0PUkudGV4dGFuZ2xlOyJvdXRzaWRlIj09PXc/KGV0PSJib3RoIj09PUkuY29uc3RyYWludGV4dHx8Im91dHNpZGUiPT09SS5jb25zdHJhaW50ZXh0LHR0PWZ1bmN0aW9uKHQsZSxyLG4saSxhKXt2YXIgbyxzPSEhYS5pc0hvcml6b250YWwsbD0hIWEuY29uc3RyYWluZWQsYz1hLmFuZ2xlfHwwLHU9aS53aWR0aCxmPWkuaGVpZ2h0LGg9TWF0aC5hYnMoZS10KSxwPU1hdGguYWJzKG4tcik7bz1zP3A+MipfP186MDpoPjIqXz9fOjA7dmFyIGQ9MTtsJiYoZD1zP01hdGgubWluKDEscC9mKTpNYXRoLm1pbigxLGgvdSkpO3ZhciBtPVMoYyksZz1FKGksbSksdj0ocz9nLng6Zy55KS8yLHk9KGkubGVmdCtpLnJpZ2h0KS8yLHg9KGkudG9wK2kuYm90dG9tKS8yLGI9KHQrZSkvMix3PShyK24pLzIsVD0wLEE9MCxNPXM/ayhlLHQpOmsocixuKTtzPyhiPWUtTSpvLFQ9TSp2KToodz1uK00qbyxBPS1NKnYpO3JldHVybnt0ZXh0WDp5LHRleHRZOngsdGFyZ2V0WDpiLHRhcmdldFk6dyxhbmNob3JYOlQsYW5jaG9yWTpBLHNjYWxlOmQscm90YXRlOm19fShzLGMsZixwLHEse2lzSG9yaXpvbnRhbDpPLGNvbnN0cmFpbmVkOmV0LGFuZ2xlOnJ0fSkpOihldD0iYm90aCI9PT1JLmNvbnN0cmFpbnRleHR8fCJpbnNpZGUiPT09SS5jb25zdHJhaW50ZXh0LHR0PUwocyxjLGYscCxxLHtpc0hvcml6b250YWw6Tyxjb25zdHJhaW5lZDpldCxhbmdsZTpydCxhbmNob3I6SS5pbnNpZGV0ZXh0YW5jaG9yfSkpO3R0LmZvbnRTaXplPVcuc2l6ZSxoKCJoaXN0b2dyYW0iPT09SS50eXBlPyJiYXIiOkkudHlwZSx0dCxDKSxSLnRyYW5zZm9ybT10dCxBKEgsQyxnLHYpLmF0dHIoInRyYW5zZm9ybSIsYS5nZXRUZXh0VHJhbnNmb3JtKHR0KSl9KHQsZSxJLHIscCxCLE4saixVLGcsdiksZS5sYXllckNsaXBJZCYmbC5oaWRlT3V0c2lkZVJhbmdlUG9pbnQoYyxJLnNlbGVjdCgidGV4dCIpLHcsQyxmLnhjYWxlbmRhcixmLnljYWxlbmRhcil9KSk7dmFyIGo9ITE9PT1mLmNsaXBvbmF4aXM7bC5zZXRDbGlwVXJsKGMsaj9udWxsOmUubGF5ZXJDbGlwSWQsdCl9KSk7Yy5nZXRDb21wb25lbnRNZXRob2QoImVycm9yYmFycyIsInBsb3QiKSh0LEksZSxnKX0sdG9Nb3ZlSW5zaWRlQmFyOkx9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjM2NywiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjozODksIi4uLy4uL2NvbXBvbmVudHMvZngvaGVscGVycyI6NDAzLCIuLi8uLi9saWIiOjUxNSwiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIjo1NDEsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo1NjYsIi4uLy4uL3JlZ2lzdHJ5Ijo2NDcsIi4vYXR0cmlidXRlcyI6NjU3LCIuL2NvbnN0YW50cyI6NjU5LCIuL2hlbHBlcnMiOjY2MywiLi9zdHlsZSI6NjcxLCIuL3VuaWZvcm1fdGV4dCI6NjczLCJAcGxvdGx5L2QzIjo1OCwiZmFzdC1pc251bWVyaWMiOjE5MH1dLDY2OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyLG4saSl7dmFyIGE9ZS5jMnAobj90LnMwOnQucDAsITApLG89ZS5jMnAobj90LnMxOnQucDEsITApLHM9ci5jMnAobj90LnAwOnQuczAsITApLGw9ci5jMnAobj90LnAxOnQuczEsITApO3JldHVybiBpP1soYStvKS8yLChzK2wpLzJdOm4/W28sKHMrbCkvMl06WyhhK28pLzIsbF19ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsaT10LmNkLGE9dC54YXhpcyxvPXQueWF4aXMscz1pWzBdLnRyYWNlLGw9ImZ1bm5lbCI9PT1zLnR5cGUsYz0iaCI9PT1zLm9yaWVudGF0aW9uLHU9W107aWYoITE9PT1lKWZvcihyPTA7cjxpLmxlbmd0aDtyKyspaVtyXS5zZWxlY3RlZD0wO2Vsc2UgZm9yKHI9MDtyPGkubGVuZ3RoO3IrKyl7dmFyIGY9aVtyXSxoPSJjdCJpbiBmP2YuY3Q6bihmLGEsbyxjLGwpO2UuY29udGFpbnMoaCwhMSxyLHQpPyh1LnB1c2goe3BvaW50TnVtYmVyOnIseDphLmMyZChmLngpLHk6by5jMmQoZi55KX0pLGYuc2VsZWN0ZWQ9MSk6Zi5zZWxlY3RlZD0wfXJldHVybiB1fX0se31dLDY3MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9YTt2YXIgbj10KCIuLi8uLi9saWIiKS5kaXN0aW5jdFZhbHMsaT10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQkFETlVNO2Z1bmN0aW9uIGEodCxlKXt0aGlzLnRyYWNlcz10LHRoaXMuc2VwTmVnVmFsPWUuc2VwTmVnVmFsLHRoaXMub3ZlcmxhcE5vTWVyZ2U9ZS5vdmVybGFwTm9NZXJnZTtmb3IodmFyIHI9MS8wLGE9W10sbz0wO288dC5sZW5ndGg7bysrKXtmb3IodmFyIHM9dFtvXSxsPTA7bDxzLmxlbmd0aDtsKyspe3ZhciBjPXNbbF07Yy5wIT09aSYmYS5wdXNoKGMucCl9c1swXSYmc1swXS53aWR0aDEmJihyPU1hdGgubWluKHNbMF0ud2lkdGgxLHIpKX10aGlzLnBvc2l0aW9ucz1hO3ZhciB1PW4oYSk7dGhpcy5kaXN0aW5jdFBvc2l0aW9ucz11LnZhbHMsMT09PXUudmFscy5sZW5ndGgmJnIhPT0xLzA/dGhpcy5taW5EaWZmPXI6dGhpcy5taW5EaWZmPU1hdGgubWluKHUubWluRGlmZixyKTt2YXIgZj0oZS5wb3NBeGlzfHx7fSkudHlwZTsiY2F0ZWdvcnkiIT09ZiYmIm11bHRpY2F0ZWdvcnkiIT09Znx8KHRoaXMubWluRGlmZj0xKSx0aGlzLmJpbldpZHRoPXRoaXMubWluRGlmZix0aGlzLmJpbnM9e319YS5wcm90b3R5cGUucHV0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5nZXRMYWJlbCh0LGUpLG49dGhpcy5iaW5zW3JdfHwwO3JldHVybiB0aGlzLmJpbnNbcl09bitlLG59LGEucHJvdG90eXBlLmdldD1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuZ2V0TGFiZWwodCxlKTtyZXR1cm4gdGhpcy5iaW5zW3JdfHwwfSxhLnByb3RvdHlwZS5nZXRMYWJlbD1mdW5jdGlvbih0LGUpe3JldHVybihlPDAmJnRoaXMuc2VwTmVnVmFsPyJ2IjoiXiIpKyh0aGlzLm92ZXJsYXBOb01lcmdlP3Q6TWF0aC5yb3VuZCh0L3RoaXMuYmluV2lkdGgpKX19LHsiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NDkxLCIuLi8uLi9saWIiOjUxNX1dLDY3MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxvPXQoIi4uLy4uL2xpYiIpLHM9dCgiLi4vLi4vcmVnaXN0cnkiKSxsPXQoIi4vdW5pZm9ybV90ZXh0IikucmVzaXplVGV4dCxjPXQoIi4vYXR0cmlidXRlcyIpLHU9Yy50ZXh0Zm9udCxmPWMuaW5zaWRldGV4dGZvbnQsaD1jLm91dHNpZGV0ZXh0Zm9udCxwPXQoIi4vaGVscGVycyIpO2Z1bmN0aW9uIGQodCxlLHIpe2EucG9pbnRTdHlsZSh0LnNlbGVjdEFsbCgicGF0aCIpLGUsciksbSh0LGUscil9ZnVuY3Rpb24gbSh0LGUscil7dC5zZWxlY3RBbGwoInRleHQiKS5lYWNoKChmdW5jdGlvbih0KXt2YXIgaT1uLnNlbGVjdCh0aGlzKSxzPW8uZW5zdXJlVW5pZm9ybUZvbnRTaXplKHIsZyhpLHQsZSxyKSk7YS5mb250KGkscyl9KSl9ZnVuY3Rpb24gZyh0LGUscixuKXt2YXIgaT1uLl9mdWxsTGF5b3V0LmZvbnQsYT1yLnRleHRmb250O2lmKHQuY2xhc3NlZCgiYmFydGV4dC1pbnNpZGUiKSl7dmFyIG89XyhlLHIpO2E9eShyLGUuaSxpLG8pfWVsc2UgdC5jbGFzc2VkKCJiYXJ0ZXh0LW91dHNpZGUiKSYmKGE9eChyLGUuaSxpKSk7cmV0dXJuIGF9ZnVuY3Rpb24gdih0LGUscil7cmV0dXJuIGIodSx0LnRleHRmb250LGUscil9ZnVuY3Rpb24geSh0LGUscixuKXt2YXIgYT12KHQsZSxyKTtyZXR1cm4odm9pZCAwPT09dC5faW5wdXQudGV4dGZvbnR8fHZvaWQgMD09PXQuX2lucHV0LnRleHRmb250LmNvbG9yfHxBcnJheS5pc0FycmF5KHQudGV4dGZvbnQuY29sb3IpJiZ2b2lkIDA9PT10LnRleHRmb250LmNvbG9yW2VdKSYmKGE9e2NvbG9yOmkuY29udHJhc3QobiksZmFtaWx5OmEuZmFtaWx5LHNpemU6YS5zaXplfSksYihmLHQuaW5zaWRldGV4dGZvbnQsZSxhKX1mdW5jdGlvbiB4KHQsZSxyKXt2YXIgbj12KHQsZSxyKTtyZXR1cm4gYihoLHQub3V0c2lkZXRleHRmb250LGUsbil9ZnVuY3Rpb24gYih0LGUscixuKXtlPWV8fHt9O3ZhciBpPXAuZ2V0VmFsdWUoZS5mYW1pbHksciksYT1wLmdldFZhbHVlKGUuc2l6ZSxyKSxvPXAuZ2V0VmFsdWUoZS5jb2xvcixyKTtyZXR1cm57ZmFtaWx5OnAuY29lcmNlU3RyaW5nKHQuZmFtaWx5LGksbi5mYW1pbHkpLHNpemU6cC5jb2VyY2VOdW1iZXIodC5zaXplLGEsbi5zaXplKSxjb2xvcjpwLmNvZXJjZUNvbG9yKHQuY29sb3IsbyxuLmNvbG9yKX19ZnVuY3Rpb24gXyh0LGUpe3JldHVybiJ3YXRlcmZhbGwiPT09ZS50eXBlP2VbdC5kaXJdLm1hcmtlci5jb2xvcjp0Lm1jY3x8dC5tY3x8ZS5tYXJrZXIuY29sb3J9ZS5leHBvcnRzPXtzdHlsZTpmdW5jdGlvbih0KXt2YXIgZT1uLnNlbGVjdCh0KS5zZWxlY3RBbGwoImcuYmFybGF5ZXIiKS5zZWxlY3RBbGwoImcudHJhY2UiKTtsKHQsZSwiYmFyIik7dmFyIHI9ZS5zaXplKCksaT10Ll9mdWxsTGF5b3V0O2Uuc3R5bGUoIm9wYWNpdHkiLChmdW5jdGlvbih0KXtyZXR1cm4gdFswXS50cmFjZS5vcGFjaXR5fSkpLmVhY2goKGZ1bmN0aW9uKHQpeygic3RhY2siPT09aS5iYXJtb2RlJiZyPjF8fDA9PT1pLmJhcmdhcCYmMD09PWkuYmFyZ3JvdXBnYXAmJiF0WzBdLnRyYWNlLm1hcmtlci5saW5lLndpZHRoKSYmbi5zZWxlY3QodGhpcykuYXR0cigic2hhcGUtcmVuZGVyaW5nIiwiY3Jpc3BFZGdlcyIpfSkpLGUuc2VsZWN0QWxsKCJnLnBvaW50cyIpLmVhY2goKGZ1bmN0aW9uKGUpe2Qobi5zZWxlY3QodGhpcyksZVswXS50cmFjZSx0KX0pKSxzLmdldENvbXBvbmVudE1ldGhvZCgiZXJyb3JiYXJzIiwic3R5bGUiKShlKX0sc3R5bGVUZXh0UG9pbnRzOm0sc3R5bGVPblNlbGVjdDpmdW5jdGlvbih0LGUscil7dmFyIGk9ZVswXS50cmFjZTtpLnNlbGVjdGVkcG9pbnRzP2Z1bmN0aW9uKHQsZSxyKXthLnNlbGVjdGVkUG9pbnRTdHlsZSh0LnNlbGVjdEFsbCgicGF0aCIpLGUpLGZ1bmN0aW9uKHQsZSxyKXt0LmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBpLHM9bi5zZWxlY3QodGhpcyk7aWYodC5zZWxlY3RlZCl7aT1vLmVuc3VyZVVuaWZvcm1Gb250U2l6ZShyLGcocyx0LGUscikpO3ZhciBsPWUuc2VsZWN0ZWQudGV4dGZvbnQmJmUuc2VsZWN0ZWQudGV4dGZvbnQuY29sb3I7bCYmKGkuY29sb3I9bCksYS5mb250KHMsaSl9ZWxzZSBhLnNlbGVjdGVkVGV4dFN0eWxlKHMsZSl9KSl9KHQuc2VsZWN0QWxsKCJ0ZXh0IiksZSxyKX0ocixpLHQpOihkKHIsaSx0KSxzLmdldENvbXBvbmVudE1ldGhvZCgiZXJyb3JiYXJzIiwic3R5bGUiKShyKSl9LGdldEluc2lkZVRleHRGb250OnksZ2V0T3V0c2lkZVRleHRGb250OngsZ2V0QmFyQ29sb3I6XyxyZXNpemVUZXh0Omx9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjM2NywiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjozODksIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9yZWdpc3RyeSI6NjQ3LCIuL2F0dHJpYnV0ZXMiOjY1NywiLi9oZWxwZXJzIjo2NjMsIi4vdW5pZm9ybV90ZXh0Ijo2NzMsIkBwbG90bHkvZDMiOjU4fV0sNjcyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9oZWxwZXJzIikuaGFzQ29sb3JzY2FsZSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9kZWZhdWx0cyIpLG89dCgiLi4vLi4vbGliIikuY29lcmNlUGF0dGVybjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIscyxsKXt2YXIgYz1yKCJtYXJrZXIuY29sb3IiLHMpLHU9aSh0LCJtYXJrZXIiKTt1JiZhKHQsZSxsLHIse3ByZWZpeDoibWFya2VyLiIsY0xldHRlcjoiYyJ9KSxyKCJtYXJrZXIubGluZS5jb2xvciIsbi5kZWZhdWx0TGluZSksaSh0LCJtYXJrZXIubGluZSIpJiZhKHQsZSxsLHIse3ByZWZpeDoibWFya2VyLmxpbmUuIixjTGV0dGVyOiJjIn0pLHIoIm1hcmtlci5saW5lLndpZHRoIikscigibWFya2VyLm9wYWNpdHkiKSxvKHIsIm1hcmtlci5wYXR0ZXJuIixjLHUpLHIoInNlbGVjdGVkLm1hcmtlci5jb2xvciIpLHIoInVuc2VsZWN0ZWQubWFya2VyLmNvbG9yIil9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjM2NywiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2RlZmF1bHRzIjozNzcsIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9oZWxwZXJzIjozNzgsIi4uLy4uL2xpYiI6NTE1fV0sNjczOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4uLy4uL2xpYiIpO2Z1bmN0aW9uIGEodCl7cmV0dXJuIl8iK3QrIlRleHRfbWluc2l6ZSJ9ZS5leHBvcnRzPXtyZWNvcmRNaW5UZXh0U2l6ZTpmdW5jdGlvbih0LGUscil7aWYoci51bmlmb3JtdGV4dC5tb2RlKXt2YXIgbj1hKHQpLGk9ci51bmlmb3JtdGV4dC5taW5zaXplLG89ZS5zY2FsZSplLmZvbnRTaXplO2UuaGlkZT1vPGkscltuXT1yW25dfHwxLzAsZS5oaWRlfHwocltuXT1NYXRoLm1pbihyW25dLE1hdGgubWF4KG8saSkpKX19LGNsZWFyTWluVGV4dFNpemU6ZnVuY3Rpb24odCxlKXtlW2EodCldPXZvaWQgMH0scmVzaXplVGV4dDpmdW5jdGlvbih0LGUscil7dmFyIGE9dC5fZnVsbExheW91dCxvPWFbIl8iK3IrIlRleHRfbWluc2l6ZSJdO2lmKG8pe3ZhciBzLGw9ImhpZGUiPT09YS51bmlmb3JtdGV4dC5tb2RlO3N3aXRjaChyKXtjYXNlImZ1bm5lbGFyZWEiOmNhc2UicGllIjpjYXNlInN1bmJ1cnN0IjpzPSJnLnNsaWNlIjticmVhaztjYXNlInRyZWVtYXAiOmNhc2UiaWNpY2xlIjpzPSJnLnNsaWNlLCBnLnBhdGhiYXIiO2JyZWFrO2RlZmF1bHQ6cz0iZy5wb2ludHMgPiBnLnBvaW50In1lLnNlbGVjdEFsbChzKS5lYWNoKChmdW5jdGlvbih0KXt2YXIgZT10LnRyYW5zZm9ybTtlJiYoZS5zY2FsZT1sJiZlLmhpZGU/MDpvL2UuZm9udFNpemUsbi5zZWxlY3QodGhpcykuc2VsZWN0KCJ0ZXh0IikuYXR0cigidHJhbnNmb3JtIixpLmdldFRleHRUcmFuc2Zvcm0oZSkpKX0pKX19fX0seyIuLi8uLi9saWIiOjUxNSwiQHBsb3RseS9kMyI6NTh9XSw2NzQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxpPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LGE9dCgiLi4vc2NhdHRlcnBvbGFyL2F0dHJpYnV0ZXMiKSxvPXQoIi4uL2Jhci9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPXtyOmEucix0aGV0YTphLnRoZXRhLHIwOmEucjAsZHI6YS5kcix0aGV0YTA6YS50aGV0YTAsZHRoZXRhOmEuZHRoZXRhLHRoZXRhdW5pdDphLnRoZXRhdW5pdCxiYXNlOmkoe30sby5iYXNlLHt9KSxvZmZzZXQ6aSh7fSxvLm9mZnNldCx7fSksd2lkdGg6aSh7fSxvLndpZHRoLHt9KSx0ZXh0Omkoe30sby50ZXh0LHt9KSxob3ZlcnRleHQ6aSh7fSxvLmhvdmVydGV4dCx7fSksbWFya2VyOm8ubWFya2VyLGhvdmVyaW5mbzphLmhvdmVyaW5mbyxob3ZlcnRlbXBsYXRlOm4oKSxzZWxlY3RlZDpvLnNlbGVjdGVkLHVuc2VsZWN0ZWQ6by51bnNlbGVjdGVkfX0seyIuLi8uLi9saWIvZXh0ZW5kIjo1MDUsIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjY0MiwiLi4vYmFyL2F0dHJpYnV0ZXMiOjY1NywiLi4vc2NhdHRlcnBvbGFyL2F0dHJpYnV0ZXMiOjEwMTF9XSw2NzU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2hlbHBlcnMiKS5oYXNDb2xvcnNjYWxlLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2NhbGMiKSxhPXQoIi4uL2Jhci9hcnJheXNfdG9fY2FsY2RhdGEiKSxvPXQoIi4uL2Jhci9jcm9zc190cmFjZV9jYWxjIikuc2V0R3JvdXBQb3NpdGlvbnMscz10KCIuLi9zY2F0dGVyL2NhbGNfc2VsZWN0aW9uIiksbD10KCIuLi8uLi9yZWdpc3RyeSIpLnRyYWNlSXMsYz10KCIuLi8uLi9saWIiKS5leHRlbmRGbGF0O2UuZXhwb3J0cz17Y2FsYzpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10Ll9mdWxsTGF5b3V0LG89ZS5zdWJwbG90LGw9cltvXS5yYWRpYWxheGlzLGM9cltvXS5hbmd1bGFyYXhpcyx1PWwubWFrZUNhbGNkYXRhKGUsInIiKSxmPWMubWFrZUNhbGNkYXRhKGUsInRoZXRhIiksaD1lLl9sZW5ndGgscD1uZXcgQXJyYXkoaCksZD11LG09ZixnPTA7ZzxoO2crKylwW2ddPXtwOm1bZ10sczpkW2ddfTtmdW5jdGlvbiB2KHQpe3ZhciByPWVbdF07dm9pZCAwIT09ciYmKGVbIl8iK3RdPUFycmF5LmlzQXJyYXkocik/Yy5tYWtlQ2FsY2RhdGEoZSx0KTpjLmQyYyhyLGUudGhldGF1bml0KSl9cmV0dXJuImxpbmVhciI9PT1jLnR5cGUmJih2KCJ3aWR0aCIpLHYoIm9mZnNldCIpKSxuKGUsIm1hcmtlciIpJiZpKHQsZSx7dmFsczplLm1hcmtlci5jb2xvcixjb250YWluZXJTdHI6Im1hcmtlciIsY0xldHRlcjoiYyJ9KSxuKGUsIm1hcmtlci5saW5lIikmJmkodCxlLHt2YWxzOmUubWFya2VyLmxpbmUuY29sb3IsY29udGFpbmVyU3RyOiJtYXJrZXIubGluZSIsY0xldHRlcjoiYyJ9KSxhKHAsZSkscyhwLGUpLHB9LGNyb3NzVHJhY2VDYWxjOmZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG49dC5jYWxjZGF0YSxpPVtdLGE9MDthPG4ubGVuZ3RoO2ErKyl7dmFyIHM9blthXSx1PXNbMF0udHJhY2U7ITA9PT11LnZpc2libGUmJmwodSwiYmFyIikmJnUuc3VicGxvdD09PXImJmkucHVzaChzKX12YXIgZj1jKHt9LGUucmFkaWFsYXhpcyx7X2lkOiJ4In0pLGg9ZS5hbmd1bGFyYXhpcztvKHQsaCxmLGkse21vZGU6ZS5iYXJtb2RlLG5vcm06ZS5iYXJub3JtLGdhcDplLmJhcmdhcCxncm91cGdhcDplLmJhcmdyb3VwZ2FwfSl9fX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvY2FsYyI6Mzc1LCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvaGVscGVycyI6Mzc4LCIuLi8uLi9saWIiOjUxNSwiLi4vLi4vcmVnaXN0cnkiOjY0NywiLi4vYmFyL2FycmF5c190b19jYWxjZGF0YSI6NjU2LCIuLi9iYXIvY3Jvc3NfdHJhY2VfY2FsYyI6NjYwLCIuLi9zY2F0dGVyL2NhbGNfc2VsZWN0aW9uIjo5Mzh9XSw2NzY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi9zY2F0dGVycG9sYXIvZGVmYXVsdHMiKS5oYW5kbGVSVGhldGFEZWZhdWx0cyxhPXQoIi4uL2Jhci9zdHlsZV9kZWZhdWx0cyIpLG89dCgiLi9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHMpe2Z1bmN0aW9uIGwocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLG8scixpKX1pKHQsZSxzLGwpPyhsKCJ0aGV0YXVuaXQiKSxsKCJiYXNlIiksbCgib2Zmc2V0IiksbCgid2lkdGgiKSxsKCJ0ZXh0IiksbCgiaG92ZXJ0ZXh0IiksbCgiaG92ZXJ0ZW1wbGF0ZSIpLGEodCxlLGwscixzKSxuLmNvZXJjZVNlbGVjdGlvbk1hcmtlck9wYWNpdHkoZSxsKSk6ZS52aXNpYmxlPSExfX0seyIuLi8uLi9saWIiOjUxNSwiLi4vYmFyL3N0eWxlX2RlZmF1bHRzIjo2NzIsIi4uL3NjYXR0ZXJwb2xhci9kZWZhdWx0cyI6MTAxMywiLi9hdHRyaWJ1dGVzIjo2NzR9XSw2Nzc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9meCIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuLi9iYXIvaG92ZXIiKS5nZXRUcmFjZUNvbG9yLG89aS5maWxsVGV4dCxzPXQoIi4uL3NjYXR0ZXJwb2xhci9ob3ZlciIpLm1ha2VIb3ZlclBvaW50VGV4dCxsPXQoIi4uLy4uL3Bsb3RzL3BvbGFyL2hlbHBlcnMiKS5pc1B0SW5zaWRlUG9seWdvbjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBjPXQuY2QsdT1jWzBdLnRyYWNlLGY9dC5zdWJwbG90LGg9Zi5yYWRpYWxBeGlzLHA9Zi5hbmd1bGFyQXhpcyxkPWYudmFuZ2xlcyxtPWQ/bDppLmlzUHRJbnNpZGVTZWN0b3IsZz10Lm1heEhvdmVyRGlzdGFuY2Usdj1wLl9wZXJpb2R8fDIqTWF0aC5QSSx5PU1hdGguYWJzKGguZzJwKE1hdGguc3FydChlKmUrcipyKSkpLHg9TWF0aC5hdGFuMihyLGUpO2gucmFuZ2VbMF0+aC5yYW5nZVsxXSYmKHgrPU1hdGguUEkpO2lmKG4uZ2V0Q2xvc2VzdChjLChmdW5jdGlvbih0KXtyZXR1cm4gbSh5LHgsW3QucnAwLHQucnAxXSxbdC50aGV0YWcwLHQudGhldGFnMV0sZCk/ZytNYXRoLm1pbigxLE1hdGguYWJzKHQudGhldGFnMS10LnRoZXRhZzApL3YpLTErKHQucnAxLXkpLyh0LnJwMS10LnJwMCktMToxLzB9KSx0KSwhMSE9PXQuaW5kZXgpe3ZhciBiPWNbdC5pbmRleF07dC54MD10LngxPWIuY3RbMF0sdC55MD10LnkxPWIuY3RbMV07dmFyIF89aS5leHRlbmRGbGF0KHt9LGIse3I6Yi5zLHRoZXRhOmIucH0pO3JldHVybiBvKGIsdSx0KSxzKF8sdSxmLHQpLHQuaG92ZXJ0ZW1wbGF0ZT11LmhvdmVydGVtcGxhdGUsdC5jb2xvcj1hKHUsYiksdC54TGFiZWxWYWw9dC55TGFiZWxWYWw9dm9pZCAwLGIuczwwJiYodC5pZGVhbEFsaWduPSJsZWZ0IiksW3RdfX19LHsiLi4vLi4vY29tcG9uZW50cy9meCI6NDA3LCIuLi8uLi9saWIiOjUxNSwiLi4vLi4vcGxvdHMvcG9sYXIvaGVscGVycyI6NjMwLCIuLi9iYXIvaG92ZXIiOjY2NCwiLi4vc2NhdHRlcnBvbGFyL2hvdmVyIjoxMDE1fV0sNjc4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17bW9kdWxlVHlwZToidHJhY2UiLG5hbWU6ImJhcnBvbGFyIixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9wb2xhciIpLGNhdGVnb3JpZXM6WyJwb2xhciIsImJhciIsInNob3dMZWdlbmQiXSxhdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLGxheW91dEF0dHJpYnV0ZXM6dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxzdXBwbHlMYXlvdXREZWZhdWx0czp0KCIuL2xheW91dF9kZWZhdWx0cyIpLGNhbGM6dCgiLi9jYWxjIikuY2FsYyxjcm9zc1RyYWNlQ2FsYzp0KCIuL2NhbGMiKS5jcm9zc1RyYWNlQ2FsYyxwbG90OnQoIi4vcGxvdCIpLGNvbG9yYmFyOnQoIi4uL3NjYXR0ZXIvbWFya2VyX2NvbG9yYmFyIiksZm9ybWF0TGFiZWxzOnQoIi4uL3NjYXR0ZXJwb2xhci9mb3JtYXRfbGFiZWxzIiksc3R5bGU6dCgiLi4vYmFyL3N0eWxlIikuc3R5bGUsc3R5bGVPblNlbGVjdDp0KCIuLi9iYXIvc3R5bGUiKS5zdHlsZU9uU2VsZWN0LGhvdmVyUG9pbnRzOnQoIi4vaG92ZXIiKSxzZWxlY3RQb2ludHM6dCgiLi4vYmFyL3NlbGVjdCIpLG1ldGE6e319fSx7Ii4uLy4uL3Bsb3RzL3BvbGFyIjo2MzEsIi4uL2Jhci9zZWxlY3QiOjY2OSwiLi4vYmFyL3N0eWxlIjo2NzEsIi4uL3NjYXR0ZXIvbWFya2VyX2NvbG9yYmFyIjo5NTQsIi4uL3NjYXR0ZXJwb2xhci9mb3JtYXRfbGFiZWxzIjoxMDE0LCIuL2F0dHJpYnV0ZXMiOjY3NCwiLi9jYWxjIjo2NzUsIi4vZGVmYXVsdHMiOjY3NiwiLi9ob3ZlciI6Njc3LCIuL2xheW91dF9hdHRyaWJ1dGVzIjo2NzksIi4vbGF5b3V0X2RlZmF1bHRzIjo2ODAsIi4vcGxvdCI6NjgxfV0sNjc5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YmFybW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsic3RhY2siLCJvdmVybGF5Il0sZGZsdDoic3RhY2siLGVkaXRUeXBlOiJjYWxjIn0sYmFyZ2FwOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6LjEsbWluOjAsbWF4OjEsZWRpdFR5cGU6ImNhbGMifX19LHt9XSw2ODA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuL2xheW91dF9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgYSxvPXt9O2Z1bmN0aW9uIHMocixvKXtyZXR1cm4gbi5jb2VyY2UodFthXXx8e30sZVthXSxpLHIsbyl9Zm9yKHZhciBsPTA7bDxyLmxlbmd0aDtsKyspe3ZhciBjPXJbbF07ImJhcnBvbGFyIj09PWMudHlwZSYmITA9PT1jLnZpc2libGUmJihvW2E9Yy5zdWJwbG90XXx8KHMoImJhcm1vZGUiKSxzKCJiYXJnYXAiKSxvW2FdPTEpKX19fSx7Ii4uLy4uL2xpYiI6NTE1LCIuL2xheW91dF9hdHRyaWJ1dGVzIjo2Nzl9XSw2ODE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiZmFzdC1pc251bWVyaWMiKSxhPXQoIi4uLy4uL2xpYiIpLG89dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIikscz10KCIuLi8uLi9wbG90cy9wb2xhci9oZWxwZXJzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbD1lLnhheGlzLGM9ZS55YXhpcyx1PWUucmFkaWFsQXhpcyxmPWUuYW5ndWxhckF4aXMsaD1mdW5jdGlvbih0KXt2YXIgZT10LmN4eCxyPXQuY3l5O2lmKHQudmFuZ2xlcylyZXR1cm4gZnVuY3Rpb24obixpLG8sbCl7dmFyIGMsdTthLmFuZ2xlRGVsdGEobyxsKT4wPyhjPW8sdT1sKTooYz1sLHU9byk7dmFyIGY9W3MuZmluZEVuY2xvc2luZ1ZlcnRleEFuZ2xlcyhjLHQudmFuZ2xlcylbMF0sKGMrdSkvMixzLmZpbmRFbmNsb3NpbmdWZXJ0ZXhBbmdsZXModSx0LnZhbmdsZXMpWzFdXTtyZXR1cm4gcy5wYXRoUG9seWdvbkFubnVsdXMobixpLGMsdSxmLGUscil9O3JldHVybiBmdW5jdGlvbih0LG4saSxvKXtyZXR1cm4gYS5wYXRoQW5udWx1cyh0LG4saSxvLGUscil9fShlKSxwPWUubGF5ZXJzLmZyb250cGxvdC5zZWxlY3QoImcuYmFybGF5ZXIiKTthLm1ha2VUcmFjZUdyb3VwcyhwLHIsInRyYWNlIGJhcnMiKS5lYWNoKChmdW5jdGlvbigpe3ZhciByPW4uc2VsZWN0KHRoaXMpLHM9YS5lbnN1cmVTaW5nbGUociwiZyIsInBvaW50cyIpLnNlbGVjdEFsbCgiZy5wb2ludCIpLmRhdGEoYS5pZGVudGl0eSk7cy5lbnRlcigpLmFwcGVuZCgiZyIpLnN0eWxlKCJ2ZWN0b3ItZWZmZWN0Iiwibm9uLXNjYWxpbmctc3Ryb2tlIikuc3R5bGUoInN0cm9rZS1taXRlcmxpbWl0IiwyKS5jbGFzc2VkKCJwb2ludCIsITApLHMuZXhpdCgpLnJlbW92ZSgpLHMuZWFjaCgoZnVuY3Rpb24odCl7dmFyIGUscj1uLnNlbGVjdCh0aGlzKSxvPXQucnAwPXUuYzJwKHQuczApLHM9dC5ycDE9dS5jMnAodC5zMSkscD10LnRoZXRhZzA9Zi5jMmcodC5wMCksZD10LnRoZXRhZzE9Zi5jMmcodC5wMSk7aWYoaShvKSYmaShzKSYmaShwKSYmaShkKSYmbyE9PXMmJnAhPT1kKXt2YXIgbT11LmMyZyh0LnMxKSxnPShwK2QpLzI7dC5jdD1bbC5jMnAobSpNYXRoLmNvcyhnKSksYy5jMnAobSpNYXRoLnNpbihnKSldLGU9aChvLHMscCxkKX1lbHNlIGU9Ik0wLDBaIjthLmVuc3VyZVNpbmdsZShyLCJwYXRoIikuYXR0cigiZCIsZSl9KSksby5zZXRDbGlwVXJsKHIsZS5faGFzQ2xpcE9uQXhpc0ZhbHNlP2UuY2xpcElkcy5mb3JUcmFjZXM6bnVsbCx0KX0pKX19LHsiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjozODksIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9wbG90cy9wb2xhci9oZWxwZXJzIjo2MzAsIkBwbG90bHkvZDMiOjU4LCJmYXN0LWlzbnVtZXJpYyI6MTkwfV0sNjgyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NjYXR0ZXIvYXR0cmlidXRlcyIpLGk9dCgiLi4vYmFyL2F0dHJpYnV0ZXMiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IvYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfZm9ybWF0X2F0dHJpYnV0ZXMiKS5heGlzSG92ZXJGb3JtYXQscz10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikuaG92ZXJ0ZW1wbGF0ZUF0dHJzLGw9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsYz1uLm1hcmtlcix1PWMubGluZTtlLmV4cG9ydHM9e3k6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIn0seDp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSx4MDp7dmFsVHlwZToiYW55IixlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LHkwOnt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIn0sZHg6e3ZhbFR5cGU6Im51bWJlciIsZWRpdFR5cGU6ImNhbGMifSxkeTp7dmFsVHlwZToibnVtYmVyIixlZGl0VHlwZToiY2FsYyJ9LHhwZXJpb2Q6bi54cGVyaW9kLHlwZXJpb2Q6bi55cGVyaW9kLHhwZXJpb2QwOm4ueHBlcmlvZDAseXBlcmlvZDA6bi55cGVyaW9kMCx4cGVyaW9kYWxpZ25tZW50Om4ueHBlcmlvZGFsaWdubWVudCx5cGVyaW9kYWxpZ25tZW50Om4ueXBlcmlvZGFsaWdubWVudCx4aG92ZXJmb3JtYXQ6bygieCIpLHlob3ZlcmZvcm1hdDpvKCJ5IiksbmFtZTp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LHExOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LG1lZGlhbjp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSxxMzp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSxsb3dlcmZlbmNlOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LHVwcGVyZmVuY2U6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sbm90Y2hlZDp7dmFsVHlwZToiYm9vbGVhbiIsZWRpdFR5cGU6ImNhbGMifSxub3RjaHdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDouNSxkZmx0Oi4yNSxlZGl0VHlwZToiY2FsYyJ9LG5vdGNoc3Bhbjp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxib3hwb2ludHM6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImFsbCIsIm91dGxpZXJzIiwic3VzcGVjdGVkb3V0bGllcnMiLCExXSxlZGl0VHlwZToiY2FsYyJ9LGppdHRlcjp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxlZGl0VHlwZToiY2FsYyJ9LHBvaW50cG9zOnt2YWxUeXBlOiJudW1iZXIiLG1pbjotMixtYXg6MixlZGl0VHlwZToiY2FsYyJ9LGJveG1lYW46e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbITAsInNkIiwhMV0sZWRpdFR5cGU6ImNhbGMifSxtZWFuOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LHNkOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LG9yaWVudGF0aW9uOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ2IiwiaCJdLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIn0scXVhcnRpbGVtZXRob2Q6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImxpbmVhciIsImV4Y2x1c2l2ZSIsImluY2x1c2l2ZSJdLGRmbHQ6ImxpbmVhciIsZWRpdFR5cGU6ImNhbGMifSx3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjAsZWRpdFR5cGU6ImNhbGMifSxtYXJrZXI6e291dGxpZXJjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6InJnYmEoMCwgMCwgMCwgMCkiLGVkaXRUeXBlOiJzdHlsZSJ9LHN5bWJvbDpsKHt9LGMuc3ltYm9sLHthcnJheU9rOiExLGVkaXRUeXBlOiJwbG90In0pLG9wYWNpdHk6bCh7fSxjLm9wYWNpdHkse2FycmF5T2s6ITEsZGZsdDoxLGVkaXRUeXBlOiJzdHlsZSJ9KSxzaXplOmwoe30sYy5zaXplLHthcnJheU9rOiExLGVkaXRUeXBlOiJjYWxjIn0pLGNvbG9yOmwoe30sYy5jb2xvcix7YXJyYXlPazohMSxlZGl0VHlwZToic3R5bGUifSksbGluZTp7Y29sb3I6bCh7fSx1LmNvbG9yLHthcnJheU9rOiExLGRmbHQ6YS5kZWZhdWx0TGluZSxlZGl0VHlwZToic3R5bGUifSksd2lkdGg6bCh7fSx1LndpZHRoLHthcnJheU9rOiExLGRmbHQ6MCxlZGl0VHlwZToic3R5bGUifSksb3V0bGllcmNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6InN0eWxlIn0sb3V0bGllcndpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MSxlZGl0VHlwZToic3R5bGUifSxlZGl0VHlwZToic3R5bGUifSxlZGl0VHlwZToicGxvdCJ9LGxpbmU6e2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6InN0eWxlIn0sd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoyLGVkaXRUeXBlOiJzdHlsZSJ9LGVkaXRUeXBlOiJwbG90In0sZmlsbGNvbG9yOm4uZmlsbGNvbG9yLHdoaXNrZXJ3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0Oi41LGVkaXRUeXBlOiJjYWxjIn0sb2Zmc2V0Z3JvdXA6aS5vZmZzZXRncm91cCxhbGlnbm1lbnRncm91cDppLmFsaWdubWVudGdyb3VwLHNlbGVjdGVkOnttYXJrZXI6bi5zZWxlY3RlZC5tYXJrZXIsZWRpdFR5cGU6InN0eWxlIn0sdW5zZWxlY3RlZDp7bWFya2VyOm4udW5zZWxlY3RlZC5tYXJrZXIsZWRpdFR5cGU6InN0eWxlIn0sdGV4dDpsKHt9LG4udGV4dCx7fSksaG92ZXJ0ZXh0Omwoe30sbi5ob3ZlcnRleHQse30pLGhvdmVydGVtcGxhdGU6cyh7fSksaG92ZXJvbjp7dmFsVHlwZToiZmxhZ2xpc3QiLGZsYWdzOlsiYm94ZXMiLCJwb2ludHMiXSxkZmx0OiJib3hlcytwb2ludHMiLGVkaXRUeXBlOiJzdHlsZSJ9fX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yL2F0dHJpYnV0ZXMiOjM2NiwiLi4vLi4vbGliL2V4dGVuZCI6NTA1LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19mb3JtYXRfYXR0cmlidXRlcyI6NTY5LCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo2NDIsIi4uL2Jhci9hdHRyaWJ1dGVzIjo2NTcsIi4uL3NjYXR0ZXIvYXR0cmlidXRlcyI6OTM2fV0sNjgzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksaT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGE9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2FsaWduX3BlcmlvZCIpLG89dCgiLi4vLi4vbGliIikscz10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQkFETlVNLGw9by5fO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLGMseSx4LGIsXyx3LFQ9dC5fZnVsbExheW91dCxrPWkuZ2V0RnJvbUlkKHQsZS54YXhpc3x8IngiKSxBPWkuZ2V0RnJvbUlkKHQsZS55YXhpc3x8InkiKSxNPVtdLFM9InZpb2xpbiI9PT1lLnR5cGU/Il9udW1WaW9saW5zIjoiX251bUJveGVzIjsiaCI9PT1lLm9yaWVudGF0aW9uPyh5PWsseD0ieCIsYj1BLF89InkiLHc9ISFlLnlwZXJpb2RhbGlnbm1lbnQpOih5PUEseD0ieSIsYj1rLF89IngiLHc9ISFlLnhwZXJpb2RhbGlnbm1lbnQpO3ZhciBFLEwsQyxQLEksTyx6PWZ1bmN0aW9uKHQsZSxyLGkpe3ZhciBzLGw9ZSsiMCJpbiB0LGM9ImQiK2UgaW4gdDtpZihlIGluIHR8fGwmJmMpe3ZhciB1PXIubWFrZUNhbGNkYXRhKHQsZSk7cmV0dXJuW2EodCxyLGUsdSkudmFscyx1XX1zPWw/dFtlKyIwIl06Im5hbWUiaW4gdCYmKCJjYXRlZ29yeSI9PT1yLnR5cGV8fG4odC5uYW1lKSYmLTEhPT1bImxpbmVhciIsImxvZyJdLmluZGV4T2Yoci50eXBlKXx8by5pc0RhdGVUaW1lKHQubmFtZSkmJiJkYXRlIj09PXIudHlwZSk/dC5uYW1lOmk7Zm9yKHZhciBmPSJtdWx0aWNhdGVnb3J5Ij09PXIudHlwZT9yLnIyY19qdXN0X2luZGljZXMocyk6ci5kMmMocywwLHRbZSsiY2FsZW5kYXIiXSksaD10Ll9sZW5ndGgscD1uZXcgQXJyYXkoaCksZD0wO2Q8aDtkKyspcFtkXT1mO3JldHVybltwXX0oZSxfLGIsVFtTXSksRD16WzBdLFI9elsxXSxGPW8uZGlzdGluY3RWYWxzKEQsYiksQj1GLnZhbHMsTj1GLm1pbkRpZmYvMixqPSJhbGwiPT09KGUuYm94cG9pbnRzfHxlLnBvaW50cyk/by5pZGVudGl0eTpmdW5jdGlvbih0KXtyZXR1cm4gdC52PEUubGZ8fHQudj5FLnVmfTtpZihlLl9oYXNQcmVDb21wU3RhdHMpe3ZhciBVPWVbeF0sVj1mdW5jdGlvbih0KXtyZXR1cm4geS5kMmMoKGVbdF18fFtdKVtyXSl9LEg9MS8wLHE9LTEvMDtmb3Iocj0wO3I8ZS5fbGVuZ3RoO3IrKyl7dmFyIEc9RFtyXTtpZihuKEcpKXtpZigoRT17fSkucG9zPUVbX109Ryx3JiZSJiYoRS5vcmlnX3A9UltyXSksRS5xMT1WKCJxMSIpLEUubWVkPVYoIm1lZGlhbiIpLEUucTM9VigicTMiKSxMPVtdLFUmJm8uaXNBcnJheU9yVHlwZWRBcnJheShVW3JdKSlmb3IoYz0wO2M8VVtyXS5sZW5ndGg7YysrKShPPXkuZDJjKFVbcl1bY10pKSE9PXMmJih1KEk9e3Y6TyxpOltyLGNdfSxlLFtyLGNdKSxMLnB1c2goSSkpO2lmKEUucHRzPUwuc29ydChmKSxQPShDPUVbeF09TC5tYXAoaCkpLmxlbmd0aCxFLm1lZCE9PXMmJkUucTEhPT1zJiZFLnEzIT09cyYmRS5tZWQ+PUUucTEmJkUucTM+PUUubWVkKXt2YXIgWT1WKCJsb3dlcmZlbmNlIik7RS5sZj1ZIT09cyYmWTw9RS5xMT9ZOnAoRSxDLFApO3ZhciBXPVYoInVwcGVyZmVuY2UiKTtFLnVmPVchPT1zJiZXPj1FLnEzP1c6ZChFLEMsUCk7dmFyIFg9VigibWVhbiIpO0UubWVhbj1YIT09cz9YOlA/by5tZWFuKEMsUCk6KEUucTErRS5xMykvMjt2YXIgWj1WKCJzZCIpO0Uuc2Q9WCE9PXMmJlo+PTA/WjpQP28uc3RkZXYoQyxQLEUubWVhbik6RS5xMy1FLnExLEUubG89bShFKSxFLnVvPWcoRSk7dmFyIEo9Vigibm90Y2hzcGFuIik7Sj1KIT09cyYmSj4wP0o6dihFLFApLEUubG49RS5tZWQtSixFLnVuPUUubWVkK0o7dmFyIEs9RS5sZixRPUUudWY7ZS5ib3hwb2ludHMmJkMubGVuZ3RoJiYoSz1NYXRoLm1pbihLLENbMF0pLFE9TWF0aC5tYXgoUSxDW1AtMV0pKSxlLm5vdGNoZWQmJihLPU1hdGgubWluKEssRS5sbiksUT1NYXRoLm1heChRLEUudW4pKSxFLm1pbj1LLEUubWF4PVF9ZWxzZXt2YXIgJDtvLndhcm4oWyJJbnZhbGlkIGlucHV0IC0gbWFrZSBzdXJlIHRoYXQgcTEgPD0gbWVkaWFuIDw9IHEzIiwicTEgPSAiK0UucTEsIm1lZGlhbiA9ICIrRS5tZWQsInEzID0gIitFLnEzXS5qb2luKCJcbiIpKSwkPUUubWVkIT09cz9FLm1lZDpFLnExIT09cz9FLnEzIT09cz8oRS5xMStFLnEzKS8yOkUucTE6RS5xMyE9PXM/RS5xMzowLEUubWVkPSQsRS5xMT1FLnEzPSQsRS5sZj1FLnVmPSQsRS5tZWFuPUUuc2Q9JCxFLmxuPUUudW49JCxFLm1pbj1FLm1heD0kfUg9TWF0aC5taW4oSCxFLm1pbikscT1NYXRoLm1heChxLEUubWF4KSxFLnB0czI9TC5maWx0ZXIoaiksTS5wdXNoKEUpfX1lLl9leHRyZW1lc1t5Ll9pZF09aS5maW5kRXh0cmVtZXMoeSxbSCxxXSx7cGFkZGVkOiEwfSl9ZWxzZXt2YXIgdHQ9eS5tYWtlQ2FsY2RhdGEoZSx4KSxldD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10Lmxlbmd0aCxuPW5ldyBBcnJheShyKzEpLGk9MDtpPHI7aSsrKW5baV09dFtpXS1lO3JldHVybiBuW3JdPXRbci0xXStlLG59KEIsTikscnQ9Qi5sZW5ndGgsbnQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPW5ldyBBcnJheSh0KSxyPTA7cjx0O3IrKyllW3JdPVtdO3JldHVybiBlfShydCk7Zm9yKHI9MDtyPGUuX2xlbmd0aDtyKyspaWYoTz10dFtyXSxuKE8pKXt2YXIgaXQ9by5maW5kQmluKERbcl0sZXQpO2l0Pj0wJiZpdDxydCYmKHUoST17djpPLGk6cn0sZSxyKSxudFtpdF0ucHVzaChJKSl9dmFyIGF0PTEvMCxvdD0tMS8wLHN0PWUucXVhcnRpbGVtZXRob2QsbHQ9ImV4Y2x1c2l2ZSI9PT1zdCxjdD0iaW5jbHVzaXZlIj09PXN0O2ZvcihyPTA7cjxydDtyKyspaWYobnRbcl0ubGVuZ3RoPjApe3ZhciB1dCxmdDtpZigoRT17fSkucG9zPUVbX109QltyXSxMPUUucHRzPW50W3JdLnNvcnQoZiksUD0oQz1FW3hdPUwubWFwKGgpKS5sZW5ndGgsRS5taW49Q1swXSxFLm1heD1DW1AtMV0sRS5tZWFuPW8ubWVhbihDLFApLEUuc2Q9by5zdGRldihDLFAsRS5tZWFuKSxFLm1lZD1vLmludGVycChDLC41KSxQJTImJihsdHx8Y3QpKWx0Pyh1dD1DLnNsaWNlKDAsUC8yKSxmdD1DLnNsaWNlKFAvMisxKSk6Y3QmJih1dD1DLnNsaWNlKDAsUC8yKzEpLGZ0PUMuc2xpY2UoUC8yKSksRS5xMT1vLmludGVycCh1dCwuNSksRS5xMz1vLmludGVycChmdCwuNSk7ZWxzZSBFLnExPW8uaW50ZXJwKEMsLjI1KSxFLnEzPW8uaW50ZXJwKEMsLjc1KTtFLmxmPXAoRSxDLFApLEUudWY9ZChFLEMsUCksRS5sbz1tKEUpLEUudW89ZyhFKTt2YXIgaHQ9dihFLFApO0UubG49RS5tZWQtaHQsRS51bj1FLm1lZCtodCxhdD1NYXRoLm1pbihhdCxFLmxuKSxvdD1NYXRoLm1heChvdCxFLnVuKSxFLnB0czI9TC5maWx0ZXIoaiksTS5wdXNoKEUpfWUuX2V4dHJlbWVzW3kuX2lkXT1pLmZpbmRFeHRyZW1lcyh5LGUubm90Y2hlZD90dC5jb25jYXQoW2F0LG90XSk6dHQse3BhZGRlZDohMH0pfXJldHVybiBmdW5jdGlvbih0LGUpe2lmKG8uaXNBcnJheU9yVHlwZWRBcnJheShlLnNlbGVjdGVkcG9pbnRzKSlmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl7Zm9yKHZhciBuPXRbcl0ucHRzfHxbXSxpPXt9LGE9MDthPG4ubGVuZ3RoO2ErKylpW25bYV0uaV09YTtvLnRhZ1NlbGVjdGVkKG4sZSxpKX19KE0sZSksTS5sZW5ndGg+MD8oTVswXS50PXtudW06VFtTXSxkUG9zOk4scG9zTGV0dGVyOl8sdmFsTGV0dGVyOngsbGFiZWxzOnttZWQ6bCh0LCJtZWRpYW46IiksbWluOmwodCwibWluOiIpLHExOmwodCwicTE6IikscTM6bCh0LCJxMzoiKSxtYXg6bCh0LCJtYXg6IiksbWVhbjoic2QiPT09ZS5ib3htZWFuP2wodCwibWVhbiBceGIxIFx1MDNjMzoiKTpsKHQsIm1lYW46IiksbGY6bCh0LCJsb3dlciBmZW5jZToiKSx1ZjpsKHQsInVwcGVyIGZlbmNlOiIpfX0sVFtTXSsrLE0pOlt7dDp7ZW1wdHk6ITB9fV19O3ZhciBjPXt0ZXh0OiJ0eCIsaG92ZXJ0ZXh0OiJodHgifTtmdW5jdGlvbiB1KHQsZSxyKXtmb3IodmFyIG4gaW4gYylvLmlzQXJyYXlPclR5cGVkQXJyYXkoZVtuXSkmJihBcnJheS5pc0FycmF5KHIpP28uaXNBcnJheU9yVHlwZWRBcnJheShlW25dW3JbMF1dKSYmKHRbY1tuXV09ZVtuXVtyWzBdXVtyWzFdXSk6dFtjW25dXT1lW25dW3JdKX1mdW5jdGlvbiBmKHQsZSl7cmV0dXJuIHQudi1lLnZ9ZnVuY3Rpb24gaCh0KXtyZXR1cm4gdC52fWZ1bmN0aW9uIHAodCxlLHIpe3JldHVybiAwPT09cj90LnExOk1hdGgubWluKHQucTEsZVtNYXRoLm1pbihvLmZpbmRCaW4oMi41KnQucTEtMS41KnQucTMsZSwhMCkrMSxyLTEpXSl9ZnVuY3Rpb24gZCh0LGUscil7cmV0dXJuIDA9PT1yP3QucTM6TWF0aC5tYXgodC5xMyxlW01hdGgubWF4KG8uZmluZEJpbigyLjUqdC5xMy0xLjUqdC5xMSxlKSwwKV0pfWZ1bmN0aW9uIG0odCl7cmV0dXJuIDQqdC5xMS0zKnQucTN9ZnVuY3Rpb24gZyh0KXtyZXR1cm4gNCp0LnEzLTMqdC5xMX1mdW5jdGlvbiB2KHQsZSl7cmV0dXJuIDA9PT1lPzA6MS41NyoodC5xMy10LnExKS9NYXRoLnNxcnQoZSl9fSx7Ii4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiOjQ5MSwiLi4vLi4vbGliIjo1MTUsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9hbGlnbl9wZXJpb2QiOjU2MywiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjU2NiwiZmFzdC1pc251bWVyaWMiOjE5MH1dLDY4NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vY29uc3RyYWludHMiKS5nZXRBeGlzR3JvdXAsbz1bInYiLCJoIl07ZnVuY3Rpb24gcyh0LGUscixvKXt2YXIgcyxsLGMsdT1lLmNhbGNkYXRhLGY9ZS5fZnVsbExheW91dCxoPW8uX2lkLHA9aC5jaGFyQXQoMCksZD1bXSxtPTA7Zm9yKHM9MDtzPHIubGVuZ3RoO3MrKylmb3IoYz11W3Jbc11dLGw9MDtsPGMubGVuZ3RoO2wrKylkLnB1c2goby5jMmwoY1tsXS5wb3MsITApKSxtKz0oY1tsXS5wdHMyfHxbXSkubGVuZ3RoO2lmKGQubGVuZ3RoKXt2YXIgZz1pLmRpc3RpbmN0VmFscyhkKTsiY2F0ZWdvcnkiIT09by50eXBlJiYibXVsdGljYXRlZ29yeSIhPT1vLnR5cGV8fChnLm1pbkRpZmY9MSk7dmFyIHY9Zy5taW5EaWZmLzI7bi5taW5EdGljayhvLGcubWluRGlmZixnLnZhbHNbMF0sITApO3ZhciB5PWZbInZpb2xpbiI9PT10PyJfbnVtVmlvbGlucyI6Il9udW1Cb3hlcyJdLHg9Imdyb3VwIj09PWZbdCsibW9kZSJdJiZ5PjEsYj0xLWZbdCsiZ2FwIl0sXz0xLWZbdCsiZ3JvdXBnYXAiXTtmb3Iocz0wO3M8ci5sZW5ndGg7cysrKXt2YXIgdyxULGssQSxNLFMsRT0oYz11W3Jbc11dKVswXS50cmFjZSxMPWNbMF0udCxDPUUud2lkdGgsUD1FLnNpZGU7aWYoQyl3PVQ9QT1DLzIsaz0wO2Vsc2UgaWYodz12LHgpe3ZhciBJPWEoZixvLl9pZCkrRS5vcmllbnRhdGlvbixPPShmLl9hbGlnbm1lbnRPcHRzW0ldfHx7fSlbRS5hbGlnbm1lbnRncm91cF18fHt9LHo9T2JqZWN0LmtleXMoTy5vZmZzZXRHcm91cHN8fHt9KS5sZW5ndGgsRD16fHx5O1Q9dypiKl8vRCxrPTIqdyooKCh6P0UuX29mZnNldEluZGV4OkwubnVtKSsuNSkvRC0uNSkqYixBPXcqYi9EfWVsc2UgVD13KmIqXyxrPTAsQT13O0wuZFBvcz13LEwuYlBvcz1rLEwuYmRQb3M9VCxMLndIb3Zlcj1BO3ZhciBSLEYsQixOLGosVSxWPWsrVCxIPUJvb2xlYW4oQyk7aWYoInBvc2l0aXZlIj09PVA/KE09dyooQz8xOi41KSxSPVYsUz1SPWspOiJuZWdhdGl2ZSI9PT1QPyhNPVI9ayxTPXcqKEM/MTouNSksRj1WKTooTT1TPXcsUj1GPVYpLChFLmJveHBvaW50c3x8RS5wb2ludHMpJiZtPjApe3ZhciBxPUUucG9pbnRwb3MsRz1FLmppdHRlcixZPUUubWFya2VyLnNpemUvMixXPTA7cStHPj0wJiYoKFc9VioocStHKSk+TT8oSD0hMCxqPVksQj1XKTpXPlImJihqPVksQj1NKSksVzw9TSYmKEI9TSk7dmFyIFg9MDtxLUc8PTAmJigoWD0tVioocS1HKSk+Uz8oSD0hMCxVPVksTj1YKTpYPkYmJihVPVksTj1TKSksWDw9UyYmKE49Uyl9ZWxzZSBCPU0sTj1TO3ZhciBaPW5ldyBBcnJheShjLmxlbmd0aCk7Zm9yKGw9MDtsPGMubGVuZ3RoO2wrKylaW2xdPWNbbF0ucG9zO0UuX2V4dHJlbWVzW2hdPW4uZmluZEV4dHJlbWVzKG8sWix7cGFkZGVkOkgsdnBhZG1pbnVzOk4sdnBhZHBsdXM6Qix2cGFkTGluZWFyaXplZDohMCxwcGFkbWludXM6e3g6VSx5Omp9W3BdLHBwYWRwbHVzOnt4OmoseTpVfVtwXX0pfX19ZS5leHBvcnRzPXtjcm9zc1RyYWNlQ2FsYzpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10LmNhbGNkYXRhLG49ZS54YXhpcyxpPWUueWF4aXMsYT0wO2E8by5sZW5ndGg7YSsrKXtmb3IodmFyIGw9b1thXSxjPSJoIj09PWw/aTpuLHU9W10sZj0wO2Y8ci5sZW5ndGg7ZisrKXt2YXIgaD1yW2ZdLHA9aFswXS50LGQ9aFswXS50cmFjZTshMCE9PWQudmlzaWJsZXx8ImJveCIhPT1kLnR5cGUmJiJjYW5kbGVzdGljayIhPT1kLnR5cGV8fHAuZW1wdHl8fChkLm9yaWVudGF0aW9ufHwidiIpIT09bHx8ZC54YXhpcyE9PW4uX2lkfHxkLnlheGlzIT09aS5faWR8fHUucHVzaChmKX1zKCJib3giLHQsdSxjKX19LHNldFBvc2l0aW9uT2Zmc2V0OnN9fSx7Ii4uLy4uL2xpYiI6NTE1LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NTY2LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vY29uc3RyYWludHMiOjU3NH1dLDY4NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL3JlZ2lzdHJ5IiksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksbz10KCIuLi9zY2F0dGVyL3BlcmlvZF9kZWZhdWx0cyIpLHM9dCgiLi4vYmFyL2RlZmF1bHRzIikuaGFuZGxlR3JvdXBpbmdEZWZhdWx0cyxsPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2F1dG90eXBlIiksYz10KCIuL2F0dHJpYnV0ZXMiKTtmdW5jdGlvbiB1KHQsZSxyLGEpe2Z1bmN0aW9uIG8odCl7dmFyIGU9MDtyZXR1cm4gdCYmdC5sZW5ndGgmJihlKz0xLG4uaXNBcnJheU9yVHlwZWRBcnJheSh0WzBdKSYmdFswXS5sZW5ndGgmJihlKz0xKSksZX1mdW5jdGlvbiBzKGUpe3JldHVybiBuLnZhbGlkYXRlKHRbZV0sY1tlXSl9dmFyIHUsZj1yKCJ5IiksaD1yKCJ4Iik7aWYoImJveCI9PT1lLnR5cGUpe3ZhciBwPXIoInExIiksZD1yKCJtZWRpYW4iKSxtPXIoInEzIik7ZS5faGFzUHJlQ29tcFN0YXRzPXAmJnAubGVuZ3RoJiZkJiZkLmxlbmd0aCYmbSYmbS5sZW5ndGgsdT1NYXRoLm1pbihuLm1pblJvd0xlbmd0aChwKSxuLm1pblJvd0xlbmd0aChkKSxuLm1pblJvd0xlbmd0aChtKSl9dmFyIGcsdix5PW8oZikseD1vKGgpLGI9eSYmbi5taW5Sb3dMZW5ndGgoZiksXz14JiZuLm1pblJvd0xlbmd0aChoKSx3PWEuY2FsZW5kYXIsVD17YXV0b3R5cGVudW1iZXJzOmEuYXV0b3R5cGVudW1iZXJzfTtpZihlLl9oYXNQcmVDb21wU3RhdHMpc3dpdGNoKFN0cmluZyh4KStTdHJpbmcoeSkpe2Nhc2UiMDAiOnZhciBrPXMoIngwIil8fHMoImR4Iik7Zz0ocygieTAiKXx8cygiZHkiKSkmJiFrPyJoIjoidiIsdj11O2JyZWFrO2Nhc2UiMTAiOmc9InYiLHY9TWF0aC5taW4odSxfKTticmVhaztjYXNlIjIwIjpnPSJoIix2PU1hdGgubWluKHUsaC5sZW5ndGgpO2JyZWFrO2Nhc2UiMDEiOmc9ImgiLHY9TWF0aC5taW4odSxiKTticmVhaztjYXNlIjAyIjpnPSJ2Iix2PU1hdGgubWluKHUsZi5sZW5ndGgpO2JyZWFrO2Nhc2UiMTIiOmc9InYiLHY9TWF0aC5taW4odSxfLGYubGVuZ3RoKTticmVhaztjYXNlIjIxIjpnPSJoIix2PU1hdGgubWluKHUsaC5sZW5ndGgsYik7YnJlYWs7Y2FzZSIxMSI6dj0wO2JyZWFrO2Nhc2UiMjIiOnZhciBBLE09ITE7Zm9yKEE9MDtBPGgubGVuZ3RoO0ErKylpZigiY2F0ZWdvcnkiPT09bChoW0FdLHcsVCkpe009ITA7YnJlYWt9aWYoTSlnPSJ2Iix2PU1hdGgubWluKHUsXyxmLmxlbmd0aCk7ZWxzZXtmb3IoQT0wO0E8Zi5sZW5ndGg7QSsrKWlmKCJjYXRlZ29yeSI9PT1sKGZbQV0sdyxUKSl7TT0hMDticmVha31NPyhnPSJoIix2PU1hdGgubWluKHUsaC5sZW5ndGgsYikpOihnPSJ2Iix2PU1hdGgubWluKHUsXyxmLmxlbmd0aCkpfX1lbHNlIHk+MD8oZz0idiIsdj14PjA/TWF0aC5taW4oXyxiKTpNYXRoLm1pbihiKSk6eD4wPyhnPSJoIix2PU1hdGgubWluKF8pKTp2PTA7aWYodil7ZS5fbGVuZ3RoPXY7dmFyIFM9cigib3JpZW50YXRpb24iLGcpO2UuX2hhc1ByZUNvbXBTdGF0cz8idiI9PT1TJiYwPT09eD8ocigieDAiLDApLHIoImR4IiwxKSk6ImgiPT09UyYmMD09PXkmJihyKCJ5MCIsMCkscigiZHkiLDEpKToidiI9PT1TJiYwPT09eD9yKCJ4MCIpOiJoIj09PVMmJjA9PT15JiZyKCJ5MCIpLGkuZ2V0Q29tcG9uZW50TWV0aG9kKCJjYWxlbmRhcnMiLCJoYW5kbGVUcmFjZURlZmF1bHRzIikodCxlLFsieCIsInkiXSxhKX1lbHNlIGUudmlzaWJsZT0hMX1mdW5jdGlvbiBmKHQsZSxyLGkpe3ZhciBhPWkucHJlZml4LG89bi5jb2VyY2UyKHQsZSxjLCJtYXJrZXIub3V0bGllcmNvbG9yIikscz1yKCJtYXJrZXIubGluZS5vdXRsaWVyY29sb3IiKSxsPSJvdXRsaWVycyI7ZS5faGFzUHJlQ29tcFN0YXRzP2w9ImFsbCI6KG98fHMpJiYobD0ic3VzcGVjdGVkb3V0bGllcnMiKTt2YXIgdT1yKGErInBvaW50cyIsbCk7dT8ocigiaml0dGVyIiwiYWxsIj09PXU/LjM6MCkscigicG9pbnRwb3MiLCJhbGwiPT09dT8tMS41OjApLHIoIm1hcmtlci5zeW1ib2wiKSxyKCJtYXJrZXIub3BhY2l0eSIpLHIoIm1hcmtlci5zaXplIikscigibWFya2VyLmNvbG9yIixlLmxpbmUuY29sb3IpLHIoIm1hcmtlci5saW5lLmNvbG9yIikscigibWFya2VyLmxpbmUud2lkdGgiKSwic3VzcGVjdGVkb3V0bGllcnMiPT09dSYmKHIoIm1hcmtlci5saW5lLm91dGxpZXJjb2xvciIsZS5tYXJrZXIuY29sb3IpLHIoIm1hcmtlci5saW5lLm91dGxpZXJ3aWR0aCIpKSxyKCJzZWxlY3RlZC5tYXJrZXIuY29sb3IiKSxyKCJ1bnNlbGVjdGVkLm1hcmtlci5jb2xvciIpLHIoInNlbGVjdGVkLm1hcmtlci5zaXplIikscigidW5zZWxlY3RlZC5tYXJrZXIuc2l6ZSIpLHIoInRleHQiKSxyKCJob3ZlcnRleHQiKSk6ZGVsZXRlIGUubWFya2VyO3ZhciBmPXIoImhvdmVyb24iKTsiYWxsIiE9PWYmJi0xPT09Zi5pbmRleE9mKCJwb2ludHMiKXx8cigiaG92ZXJ0ZW1wbGF0ZSIpLG4uY29lcmNlU2VsZWN0aW9uTWFya2VyT3BhY2l0eShlLHIpfWUuZXhwb3J0cz17c3VwcGx5RGVmYXVsdHM6ZnVuY3Rpb24odCxlLHIsaSl7ZnVuY3Rpb24gcyhyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsYyxyLGkpfWlmKHUodCxlLHMsaSksITEhPT1lLnZpc2libGUpe28odCxlLGkscykscygieGhvdmVyZm9ybWF0IikscygieWhvdmVyZm9ybWF0Iik7dmFyIGw9ZS5faGFzUHJlQ29tcFN0YXRzO2wmJihzKCJsb3dlcmZlbmNlIikscygidXBwZXJmZW5jZSIpKSxzKCJsaW5lLmNvbG9yIiwodC5tYXJrZXJ8fHt9KS5jb2xvcnx8cikscygibGluZS53aWR0aCIpLHMoImZpbGxjb2xvciIsYS5hZGRPcGFjaXR5KGUubGluZS5jb2xvciwuNSkpO3ZhciBoPSExO2lmKGwpe3ZhciBwPXMoIm1lYW4iKSxkPXMoInNkIik7cCYmcC5sZW5ndGgmJihoPSEwLGQmJmQubGVuZ3RoJiYoaD0ic2QiKSl9cygiYm94bWVhbiIsaCkscygid2hpc2tlcndpZHRoIikscygid2lkdGgiKSxzKCJxdWFydGlsZW1ldGhvZCIpO3ZhciBtPSExO2lmKGwpe3ZhciBnPXMoIm5vdGNoc3BhbiIpO2cmJmcubGVuZ3RoJiYobT0hMCl9ZWxzZSBuLnZhbGlkYXRlKHQubm90Y2h3aWR0aCxjLm5vdGNod2lkdGgpJiYobT0hMCk7cygibm90Y2hlZCIsbSkmJnMoIm5vdGNod2lkdGgiKSxmKHQsZSxzLHtwcmVmaXg6ImJveCJ9KX19LGNyb3NzVHJhY2VEZWZhdWx0czpmdW5jdGlvbih0LGUpe3ZhciByLGk7ZnVuY3Rpb24gYSh0KXtyZXR1cm4gbi5jb2VyY2UoaS5faW5wdXQsaSxjLHQpfWZvcih2YXIgbz0wO288dC5sZW5ndGg7bysrKXt2YXIgbD0oaT10W29dKS50eXBlOyJib3giIT09bCYmInZpb2xpbiIhPT1sfHwocj1pLl9pbnB1dCwiZ3JvdXAiPT09ZVtsKyJtb2RlIl0mJnMocixpLGUsYSkpfX0saGFuZGxlU2FtcGxlRGVmYXVsdHM6dSxoYW5kbGVQb2ludHNEZWZhdWx0czpmfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjozNjcsIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19hdXRvdHlwZSI6NTY3LCIuLi8uLi9yZWdpc3RyeSI6NjQ3LCIuLi9iYXIvZGVmYXVsdHMiOjY2MSwiLi4vc2NhdHRlci9wZXJpb2RfZGVmYXVsdHMiOjk1NiwiLi9hdHRyaWJ1dGVzIjo2ODJ9XSw2ODY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuaG92ZXJPbkJveCYmKHQuaG92ZXJPbkJveD1lLmhvdmVyT25Cb3gpLCJ4VmFsImluIGUmJih0Lng9ZS54VmFsKSwieVZhbCJpbiBlJiYodC55PWUueVZhbCksZS54YSYmKHQueGF4aXM9ZS54YSksZS55YSYmKHQueWF4aXM9ZS55YSksdH19LHt9XSw2ODc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxpPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vLi4vY29tcG9uZW50cy9meCIpLG89dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLHM9aS5maWxsVGV4dDtmdW5jdGlvbiBsKHQsZSxyLHMpe3ZhciBsLGMsdSxmLGgscCxkLG0sZyx2LHkseCxiLF8sdz10LmNkLFQ9dC54YSxrPXQueWEsQT13WzBdLnRyYWNlLE09d1swXS50LFM9InZpb2xpbiI9PT1BLnR5cGUsRT1NLmJkUG9zLEw9TS53SG92ZXIsQz1mdW5jdGlvbih0KXtyZXR1cm4gdS5jMmwodC5wb3MpK00uYlBvcy11LmMybChwKX07UyYmImJvdGgiIT09QS5zaWRlPygicG9zaXRpdmUiPT09QS5zaWRlJiYoZz1mdW5jdGlvbih0KXt2YXIgZT1DKHQpO3JldHVybiBhLmluYm94KGUsZStMLHYpfSx4PUUsYj0wKSwibmVnYXRpdmUiPT09QS5zaWRlJiYoZz1mdW5jdGlvbih0KXt2YXIgZT1DKHQpO3JldHVybiBhLmluYm94KGUtTCxlLHYpfSx4PTAsYj1FKSk6KGc9ZnVuY3Rpb24odCl7dmFyIGU9Qyh0KTtyZXR1cm4gYS5pbmJveChlLUwsZStMLHYpfSx4PWI9RSksXz1TP2Z1bmN0aW9uKHQpe3JldHVybiBhLmluYm94KHQuc3BhblswXS1oLHQuc3BhblsxXS1oLHYpfTpmdW5jdGlvbih0KXtyZXR1cm4gYS5pbmJveCh0Lm1pbi1oLHQubWF4LWgsdil9LCJoIj09PUEub3JpZW50YXRpb24/KGg9ZSxwPXIsZD1fLG09ZyxsPSJ5Iix1PWssYz0ieCIsZj1UKTooaD1yLHA9ZSxkPWcsbT1fLGw9IngiLHU9VCxjPSJ5IixmPWspO3ZhciBQPU1hdGgubWluKDEsRS9NYXRoLmFicyh1LnIyYyh1LnJhbmdlWzFdKS11LnIyYyh1LnJhbmdlWzBdKSkpO2Z1bmN0aW9uIEkodCl7cmV0dXJuKGQodCkrbSh0KSkvMn12PXQubWF4SG92ZXJEaXN0YW5jZS1QLHk9dC5tYXhTcGlrZURpc3RhbmNlLVA7dmFyIE89YS5nZXREaXN0YW5jZUZ1bmN0aW9uKHMsZCxtLEkpO2lmKGEuZ2V0Q2xvc2VzdCh3LE8sdCksITE9PT10LmluZGV4KXJldHVybltdO3ZhciB6PXdbdC5pbmRleF0sRD1BLmxpbmUuY29sb3IsUj0oQS5tYXJrZXJ8fHt9KS5jb2xvcjtvLm9wYWNpdHkoRCkmJkEubGluZS53aWR0aD90LmNvbG9yPUQ6by5vcGFjaXR5KFIpJiZBLmJveHBvaW50cz90LmNvbG9yPVI6dC5jb2xvcj1BLmZpbGxjb2xvcix0W2wrIjAiXT11LmMycCh6LnBvcytNLmJQb3MtYiwhMCksdFtsKyIxIl09dS5jMnAoei5wb3MrTS5iUG9zK3gsITApLHRbbCsiTGFiZWxWYWwiXT12b2lkIDAhPT16Lm9yaWdfcD96Lm9yaWdfcDp6LnBvczt2YXIgRj1sKyJTcGlrZSI7dC5zcGlrZURpc3RhbmNlPUkoeikqeS92LHRbRl09dS5jMnAoei5wb3MsITApO3ZhciBCPUEuYm94bWVhbnx8KEEubWVhbmxpbmV8fHt9KS52aXNpYmxlLE49QS5ib3hwb2ludHN8fEEucG9pbnRzLGo9TiYmQj9bIm1heCIsInVmIiwicTMiLCJtZWQiLCJtZWFuIiwicTEiLCJsZiIsIm1pbiJdOk4mJiFCP1sibWF4IiwidWYiLCJxMyIsIm1lZCIsInExIiwibGYiLCJtaW4iXTohTiYmQj9bIm1heCIsInEzIiwibWVkIiwibWVhbiIsInExIiwibWluIl06WyJtYXgiLCJxMyIsIm1lZCIsInExIiwibWluIl0sVT1mLnJhbmdlWzFdPGYucmFuZ2VbMF07QS5vcmllbnRhdGlvbj09PShVPyJ2IjoiaCIpJiZqLnJldmVyc2UoKTtmb3IodmFyIFY9dC5zcGlrZURpc3RhbmNlLEg9dFtGXSxxPVtdLEc9MDtHPGoubGVuZ3RoO0crKyl7dmFyIFk9altHXTtpZihZIGluIHope3ZhciBXPXpbWV0sWD1mLmMycChXLCEwKSxaPWkuZXh0ZW5kRmxhdCh7fSx0KTtaLmF0dHI9WSxaW2MrIjAiXT1aW2MrIjEiXT1YLFpbYysiTGFiZWxWYWwiXT1XLFpbYysiTGFiZWwiXT0oTS5sYWJlbHM/TS5sYWJlbHNbWV0rIiAiOiIiKStuLmhvdmVyTGFiZWxUZXh0KGYsVyxBW2MrImhvdmVyZm9ybWF0Il0pLFouaG92ZXJPbkJveD0hMCwibWVhbiI9PT1ZJiYic2QiaW4geiYmInNkIj09PUEuYm94bWVhbiYmKFpbYysiZXJyIl09ei5zZCksWi5ob3ZlcnRlbXBsYXRlPSExLHEucHVzaChaKX19dC5uYW1lPSIiLHQuc3Bpa2VEaXN0YW5jZT12b2lkIDAsdFtGXT12b2lkIDA7Zm9yKHZhciBKPTA7SjxxLmxlbmd0aDtKKyspIm1lZCIhPT1xW0pdLmF0dHI/KHFbSl0ubmFtZT0iIixxW0pdLnNwaWtlRGlzdGFuY2U9dm9pZCAwLHFbSl1bRl09dm9pZCAwKToocVtKXS5zcGlrZURpc3RhbmNlPVYscVtKXVtGXT1IKTtyZXR1cm4gcX1mdW5jdGlvbiBjKHQsZSxyKXtmb3IodmFyIG4sbyxsLGM9dC5jZCx1PXQueGEsZj10LnlhLGg9Y1swXS50cmFjZSxwPXUuYzJwKGUpLGQ9Zi5jMnAociksbT1hLnF1YWRyYXR1cmUoKGZ1bmN0aW9uKHQpe3ZhciBlPU1hdGgubWF4KDMsdC5tcmN8fDApO3JldHVybiBNYXRoLm1heChNYXRoLmFicyh1LmMycCh0LngpLXApLWUsMS0zL2UpfSksKGZ1bmN0aW9uKHQpe3ZhciBlPU1hdGgubWF4KDMsdC5tcmN8fDApO3JldHVybiBNYXRoLm1heChNYXRoLmFicyhmLmMycCh0LnkpLWQpLWUsMS0zL2UpfSkpLGc9ITEsdj0wO3Y8Yy5sZW5ndGg7disrKXtvPWNbdl07Zm9yKHZhciB5PTA7eTwoby5wdHN8fFtdKS5sZW5ndGg7eSsrKXt2YXIgeD1tKGw9by5wdHNbeV0pO3g8PXQuZGlzdGFuY2UmJih0LmRpc3RhbmNlPXgsZz1bdix5XSl9fWlmKCFnKXJldHVybiExO2w9KG89Y1tnWzBdXSkucHRzW2dbMV1dO3ZhciBiPXUuYzJwKGwueCwhMCksXz1mLmMycChsLnksITApLHc9bC5tcmN8fDE7bj1pLmV4dGVuZEZsYXQoe30sdCx7aW5kZXg6bC5pLGNvbG9yOihoLm1hcmtlcnx8e30pLmNvbG9yLG5hbWU6aC5uYW1lLHgwOmItdyx4MTpiK3cseTA6Xy13LHkxOl8rdyxzcGlrZURpc3RhbmNlOnQuZGlzdGFuY2UsaG92ZXJ0ZW1wbGF0ZTpoLmhvdmVydGVtcGxhdGV9KTt2YXIgVCxrPW8ub3JpZ19wLEE9dm9pZCAwIT09az9rOm8ucG9zO3JldHVybiJoIj09PWgub3JpZW50YXRpb24/KFQ9ZixuLnhMYWJlbFZhbD1sLngsbi55TGFiZWxWYWw9QSk6KFQ9dSxuLnhMYWJlbFZhbD1BLG4ueUxhYmVsVmFsPWwueSksbltULl9pZC5jaGFyQXQoMCkrIlNwaWtlIl09VC5jMnAoby5wb3MsITApLHMobCxoLG4pLG59ZS5leHBvcnRzPXtob3ZlclBvaW50czpmdW5jdGlvbih0LGUscixuKXt2YXIgaSxhPXQuY2RbMF0udHJhY2UuaG92ZXJvbixvPVtdO3JldHVybi0xIT09YS5pbmRleE9mKCJib3hlcyIpJiYobz1vLmNvbmNhdChsKHQsZSxyLG4pKSksLTEhPT1hLmluZGV4T2YoInBvaW50cyIpJiYoaT1jKHQsZSxyKSksImNsb3Nlc3QiPT09bj9pP1tpXTpvOmk/KG8ucHVzaChpKSxvKTpvfSxob3Zlck9uQm94ZXM6bCxob3Zlck9uUG9pbnRzOmN9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjM2NywiLi4vLi4vY29tcG9uZW50cy9meCI6NDA3LCIuLi8uLi9saWIiOjUxNSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjU2Nn1dLDY4ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2F0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksbGF5b3V0QXR0cmlidXRlczp0KCIuL2xheW91dF9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLnN1cHBseURlZmF1bHRzLGNyb3NzVHJhY2VEZWZhdWx0czp0KCIuL2RlZmF1bHRzIikuY3Jvc3NUcmFjZURlZmF1bHRzLHN1cHBseUxheW91dERlZmF1bHRzOnQoIi4vbGF5b3V0X2RlZmF1bHRzIikuc3VwcGx5TGF5b3V0RGVmYXVsdHMsY2FsYzp0KCIuL2NhbGMiKSxjcm9zc1RyYWNlQ2FsYzp0KCIuL2Nyb3NzX3RyYWNlX2NhbGMiKS5jcm9zc1RyYWNlQ2FsYyxwbG90OnQoIi4vcGxvdCIpLnBsb3Qsc3R5bGU6dCgiLi9zdHlsZSIpLnN0eWxlLHN0eWxlT25TZWxlY3Q6dCgiLi9zdHlsZSIpLnN0eWxlT25TZWxlY3QsaG92ZXJQb2ludHM6dCgiLi9ob3ZlciIpLmhvdmVyUG9pbnRzLGV2ZW50RGF0YTp0KCIuL2V2ZW50X2RhdGEiKSxzZWxlY3RQb2ludHM6dCgiLi9zZWxlY3QiKSxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToiYm94IixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iKSxjYXRlZ29yaWVzOlsiY2FydGVzaWFuIiwic3ZnIiwic3ltYm9scyIsIm9yaWVudGVkIiwiYm94LXZpb2xpbiIsInNob3dMZWdlbmQiLCJib3hMYXlvdXQiLCJ6b29tU2NhbGUiXSxtZXRhOnt9fX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iOjU3OCwiLi9hdHRyaWJ1dGVzIjo2ODIsIi4vY2FsYyI6NjgzLCIuL2Nyb3NzX3RyYWNlX2NhbGMiOjY4NCwiLi9kZWZhdWx0cyI6Njg1LCIuL2V2ZW50X2RhdGEiOjY4NiwiLi9ob3ZlciI6Njg3LCIuL2xheW91dF9hdHRyaWJ1dGVzIjo2ODksIi4vbGF5b3V0X2RlZmF1bHRzIjo2OTAsIi4vcGxvdCI6NjkxLCIuL3NlbGVjdCI6NjkyLCIuL3N0eWxlIjo2OTN9XSw2ODk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtib3htb2RlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJncm91cCIsIm92ZXJsYXkiXSxkZmx0OiJvdmVybGF5IixlZGl0VHlwZToiY2FsYyJ9LGJveGdhcDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0Oi4zLGVkaXRUeXBlOiJjYWxjIn0sYm94Z3JvdXBnYXA6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDouMyxlZGl0VHlwZToiY2FsYyJ9fX0se31dLDY5MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9yZWdpc3RyeSIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuL2xheW91dF9hdHRyaWJ1dGVzIik7ZnVuY3Rpb24gbyh0LGUscixpLGEpe2Zvcih2YXIgbz1hKyJMYXlvdXQiLHM9ITEsbD0wO2w8ci5sZW5ndGg7bCsrKXt2YXIgYz1yW2xdO2lmKG4udHJhY2VJcyhjLG8pKXtzPSEwO2JyZWFrfX1zJiYoaShhKyJtb2RlIiksaShhKyJnYXAiKSxpKGErImdyb3VwZ2FwIikpfWUuZXhwb3J0cz17c3VwcGx5TGF5b3V0RGVmYXVsdHM6ZnVuY3Rpb24odCxlLHIpe28oMCwwLHIsKGZ1bmN0aW9uKHIsbil7cmV0dXJuIGkuY29lcmNlKHQsZSxhLHIsbil9KSwiYm94Iil9LF9zdXBwbHk6b319LHsiLi4vLi4vbGliIjo1MTUsIi4uLy4uL3JlZ2lzdHJ5Ijo2NDcsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjY4OX1dLDY5MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpO2Z1bmN0aW9uIG8odCxlLHIsYSl7dmFyIG8scyxsPSJoIj09PXIub3JpZW50YXRpb24sYz1lLnZhbCx1PWUucG9zLGY9ISF1LnJhbmdlYnJlYWtzLGg9YS5iUG9zLHA9YS53ZFBvc3x8MCxkPWEuYlBvc1B4T2Zmc2V0fHwwLG09ci53aGlza2Vyd2lkdGh8fDAsZz1yLm5vdGNoZWR8fCExLHY9Zz8xLTIqci5ub3RjaHdpZHRoOjE7QXJyYXkuaXNBcnJheShhLmJkUG9zKT8obz1hLmJkUG9zWzBdLHM9YS5iZFBvc1sxXSk6KG89YS5iZFBvcyxzPWEuYmRQb3MpO3ZhciB5PXQuc2VsZWN0QWxsKCJwYXRoLmJveCIpLmRhdGEoInZpb2xpbiIhPT1yLnR5cGV8fHIuYm94LnZpc2libGU/aS5pZGVudGl0eTpbXSk7eS5lbnRlcigpLmFwcGVuZCgicGF0aCIpLnN0eWxlKCJ2ZWN0b3ItZWZmZWN0Iiwibm9uLXNjYWxpbmctc3Ryb2tlIikuYXR0cigiY2xhc3MiLCJib3giKSx5LmV4aXQoKS5yZW1vdmUoKSx5LmVhY2goKGZ1bmN0aW9uKHQpe2lmKHQuZW1wdHkpcmV0dXJuIk0wLDBaIjt2YXIgZT11LmMybCh0LnBvcytoLCEwKSxhPXUubDJwKGUtbykrZCx5PXUubDJwKGUrcykrZCx4PWY/KGEreSkvMjp1LmwycChlKStkLGI9ci53aGlza2Vyd2lkdGgsXz1mP2EqYisoMS1iKSp4OnUubDJwKGUtcCkrZCx3PWY/eSpiKygxLWIpKng6dS5sMnAoZStwKStkLFQ9dS5sMnAoZS1vKnYpK2Qsaz11LmwycChlK3MqdikrZCxBPWMuYzJwKHQucTEsITApLE09Yy5jMnAodC5xMywhMCksUz1pLmNvbnN0cmFpbihjLmMycCh0Lm1lZCwhMCksTWF0aC5taW4oQSxNKSsxLE1hdGgubWF4KEEsTSktMSksRT12b2lkIDA9PT10LmxmfHwhMT09PXIuYm94cG9pbnRzLEw9Yy5jMnAoRT90Lm1pbjp0LmxmLCEwKSxDPWMuYzJwKEU/dC5tYXg6dC51ZiwhMCksUD1jLmMycCh0LmxuLCEwKSxJPWMuYzJwKHQudW4sITApO2w/bi5zZWxlY3QodGhpcykuYXR0cigiZCIsIk0iK1MrIiwiK1QrIlYiK2srIk0iK0ErIiwiK2ErIlYiK3krKGc/IkgiK1ArIkwiK1MrIiwiK2srIkwiK0krIiwiK3k6IiIpKyJIIitNKyJWIithKyhnPyJIIitJKyJMIitTKyIsIitUKyJMIitQKyIsIithOiIiKSsiWk0iK0ErIiwiK3grIkgiK0wrIk0iK00rIiwiK3grIkgiK0MrKDA9PT1tPyIiOiJNIitMKyIsIitfKyJWIit3KyJNIitDKyIsIitfKyJWIit3KSk6bi5zZWxlY3QodGhpcykuYXR0cigiZCIsIk0iK1QrIiwiK1MrIkgiK2srIk0iK2ErIiwiK0ErIkgiK3krKGc/IlYiK1ArIkwiK2srIiwiK1MrIkwiK3krIiwiK0k6IiIpKyJWIitNKyJIIithKyhnPyJWIitJKyJMIitUKyIsIitTKyJMIithKyIsIitQOiIiKSsiWk0iK3grIiwiK0ErIlYiK0wrIk0iK3grIiwiK00rIlYiK0MrKDA9PT1tPyIiOiJNIitfKyIsIitMKyJIIit3KyJNIitfKyIsIitDKyJIIit3KSl9KSl9ZnVuY3Rpb24gcyh0LGUscixuKXt2YXIgbz1lLngscz1lLnksbD1uLmJkUG9zLGM9bi5iUG9zLHU9ci5ib3hwb2ludHN8fHIucG9pbnRzO2kuc2VlZFBzZXVkb1JhbmRvbSgpO3ZhciBmPXQuc2VsZWN0QWxsKCJnLnBvaW50cyIpLmRhdGEodT9mdW5jdGlvbih0KXtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0KXt0LnQ9bix0LnRyYWNlPXJ9KSksdH06W10pO2YuZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsInBvaW50cyIpLGYuZXhpdCgpLnJlbW92ZSgpO3ZhciBoPWYuc2VsZWN0QWxsKCJwYXRoIikuZGF0YSgoZnVuY3Rpb24odCl7dmFyIGUsbixhPXQucHRzMixvPU1hdGgubWF4KCh0Lm1heC10Lm1pbikvMTAsdC5xMy10LnExKSxzPTFlLTkqbyxmPS4wMSpvLGg9W10scD0wO2lmKHIuaml0dGVyKXtpZigwPT09bylmb3IocD0xLGg9bmV3IEFycmF5KGEubGVuZ3RoKSxlPTA7ZTxhLmxlbmd0aDtlKyspaFtlXT0xO2Vsc2UgZm9yKGU9MDtlPGEubGVuZ3RoO2UrKyl7dmFyIGQ9TWF0aC5tYXgoMCxlLTUpLG09YVtkXS52LGc9TWF0aC5taW4oYS5sZW5ndGgtMSxlKzUpLHY9YVtnXS52OyJhbGwiIT09dSYmKGFbZV0udjx0LmxmP3Y9TWF0aC5taW4odix0LmxmKTptPU1hdGgubWF4KG0sdC51ZikpO3ZhciB5PU1hdGguc3FydChmKihnLWQpLyh2LW0rcykpfHwwO3k9aS5jb25zdHJhaW4oTWF0aC5hYnMoeSksMCwxKSxoLnB1c2goeSkscD1NYXRoLm1heCh5LHApfW49MipyLmppdHRlci8ocHx8MSl9Zm9yKGU9MDtlPGEubGVuZ3RoO2UrKyl7dmFyIHg9YVtlXSxiPXgudixfPXIuaml0dGVyP24qaFtlXSooaS5wc2V1ZG9SYW5kb20oKS0uNSk6MCx3PXQucG9zK2MrbCooci5wb2ludHBvcytfKTsiaCI9PT1yLm9yaWVudGF0aW9uPyh4Lnk9dyx4Lng9Yik6KHgueD13LHgueT1iKSwic3VzcGVjdGVkb3V0bGllcnMiPT09dSYmYjx0LnVvJiZiPnQubG8mJih4LnNvPSEwKX1yZXR1cm4gYX0pKTtoLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuY2xhc3NlZCgicG9pbnQiLCEwKSxoLmV4aXQoKS5yZW1vdmUoKSxoLmNhbGwoYS50cmFuc2xhdGVQb2ludHMsbyxzKX1mdW5jdGlvbiBsKHQsZSxyLGEpe3ZhciBvLHMsbD1lLnZhbCxjPWUucG9zLHU9ISFjLnJhbmdlYnJlYWtzLGY9YS5iUG9zLGg9YS5iUG9zUHhPZmZzZXR8fDAscD1yLmJveG1lYW58fChyLm1lYW5saW5lfHx7fSkudmlzaWJsZTtBcnJheS5pc0FycmF5KGEuYmRQb3MpPyhvPWEuYmRQb3NbMF0scz1hLmJkUG9zWzFdKToobz1hLmJkUG9zLHM9YS5iZFBvcyk7dmFyIGQ9dC5zZWxlY3RBbGwoInBhdGgubWVhbiIpLmRhdGEoImJveCI9PT1yLnR5cGUmJnIuYm94bWVhbnx8InZpb2xpbiI9PT1yLnR5cGUmJnIuYm94LnZpc2libGUmJnIubWVhbmxpbmUudmlzaWJsZT9pLmlkZW50aXR5OltdKTtkLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuYXR0cigiY2xhc3MiLCJtZWFuIikuc3R5bGUoe2ZpbGw6Im5vbmUiLCJ2ZWN0b3ItZWZmZWN0Ijoibm9uLXNjYWxpbmctc3Ryb2tlIn0pLGQuZXhpdCgpLnJlbW92ZSgpLGQuZWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9Yy5jMmwodC5wb3MrZiwhMCksaT1jLmwycChlLW8pK2gsYT1jLmwycChlK3MpK2gsZD11PyhpK2EpLzI6Yy5sMnAoZSkraCxtPWwuYzJwKHQubWVhbiwhMCksZz1sLmMycCh0Lm1lYW4tdC5zZCwhMCksdj1sLmMycCh0Lm1lYW4rdC5zZCwhMCk7ImgiPT09ci5vcmllbnRhdGlvbj9uLnNlbGVjdCh0aGlzKS5hdHRyKCJkIiwiTSIrbSsiLCIraSsiViIrYSsoInNkIj09PXA/Im0wLDBMIitnKyIsIitkKyJMIittKyIsIitpKyJMIit2KyIsIitkKyJaIjoiIikpOm4uc2VsZWN0KHRoaXMpLmF0dHIoImQiLCJNIitpKyIsIittKyJIIithKygic2QiPT09cD8ibTAsMEwiK2QrIiwiK2crIkwiK2krIiwiK20rIkwiK2QrIiwiK3YrIloiOiIiKSl9KSl9ZS5leHBvcnRzPXtwbG90OmZ1bmN0aW9uKHQsZSxyLGEpe3ZhciBjPWUueGF4aXMsdT1lLnlheGlzO2kubWFrZVRyYWNlR3JvdXBzKGEsciwidHJhY2UgYm94ZXMiKS5lYWNoKChmdW5jdGlvbih0KXt2YXIgZSxyLGk9bi5zZWxlY3QodGhpcyksYT10WzBdLGY9YS50LGg9YS50cmFjZTsoZi53ZFBvcz1mLmJkUG9zKmgud2hpc2tlcndpZHRoLCEwIT09aC52aXNpYmxlfHxmLmVtcHR5KT9pLnJlbW92ZSgpOigiaCI9PT1oLm9yaWVudGF0aW9uPyhlPXUscj1jKTooZT1jLHI9dSksbyhpLHtwb3M6ZSx2YWw6cn0saCxmKSxzKGkse3g6Yyx5OnV9LGgsZiksbChpLHtwb3M6ZSx2YWw6cn0saCxmKSl9KSl9LHBsb3RCb3hBbmRXaGlza2VyczpvLHBsb3RQb2ludHM6cyxwbG90Qm94TWVhbjpsfX0seyIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjM4OSwiLi4vLi4vbGliIjo1MTUsIkBwbG90bHkvZDMiOjU4fV0sNjkyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLG4saT10LmNkLGE9dC54YXhpcyxvPXQueWF4aXMscz1bXTtpZighMT09PWUpZm9yKHI9MDtyPGkubGVuZ3RoO3IrKylmb3Iobj0wO248KGlbcl0ucHRzfHxbXSkubGVuZ3RoO24rKylpW3JdLnB0c1tuXS5zZWxlY3RlZD0wO2Vsc2UgZm9yKHI9MDtyPGkubGVuZ3RoO3IrKylmb3Iobj0wO248KGlbcl0ucHRzfHxbXSkubGVuZ3RoO24rKyl7dmFyIGw9aVtyXS5wdHNbbl0sYz1hLmMycChsLngpLHU9by5jMnAobC55KTtlLmNvbnRhaW5zKFtjLHVdLG51bGwsbC5pLHQpPyhzLnB1c2goe3BvaW50TnVtYmVyOmwuaSx4OmEuYzJkKGwueCkseTpvLmMyZChsLnkpfSksbC5zZWxlY3RlZD0xKTpsLnNlbGVjdGVkPTB9cmV0dXJuIHN9fSx7fV0sNjkzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpO2UuZXhwb3J0cz17c3R5bGU6ZnVuY3Rpb24odCxlLHIpe3ZhciBvPXJ8fG4uc2VsZWN0KHQpLnNlbGVjdEFsbCgiZy50cmFjZS5ib3hlcyIpO28uc3R5bGUoIm9wYWNpdHkiLChmdW5jdGlvbih0KXtyZXR1cm4gdFswXS50cmFjZS5vcGFjaXR5fSkpLG8uZWFjaCgoZnVuY3Rpb24oZSl7dmFyIHI9bi5zZWxlY3QodGhpcyksbz1lWzBdLnRyYWNlLHM9by5saW5lLndpZHRoO2Z1bmN0aW9uIGwodCxlLHIsbil7dC5zdHlsZSgic3Ryb2tlLXdpZHRoIixlKyJweCIpLmNhbGwoaS5zdHJva2UscikuY2FsbChpLmZpbGwsbil9dmFyIGM9ci5zZWxlY3RBbGwoInBhdGguYm94Iik7aWYoImNhbmRsZXN0aWNrIj09PW8udHlwZSljLmVhY2goKGZ1bmN0aW9uKHQpe2lmKCF0LmVtcHR5KXt2YXIgZT1uLnNlbGVjdCh0aGlzKSxyPW9bdC5kaXJdO2woZSxyLmxpbmUud2lkdGgsci5saW5lLmNvbG9yLHIuZmlsbGNvbG9yKSxlLnN0eWxlKCJvcGFjaXR5IixvLnNlbGVjdGVkcG9pbnRzJiYhdC5zZWxlY3RlZD8uMzoxKX19KSk7ZWxzZXtsKGMscyxvLmxpbmUuY29sb3Isby5maWxsY29sb3IpLHIuc2VsZWN0QWxsKCJwYXRoLm1lYW4iKS5zdHlsZSh7InN0cm9rZS13aWR0aCI6cywic3Ryb2tlLWRhc2hhcnJheSI6MipzKyJweCwiK3MrInB4In0pLmNhbGwoaS5zdHJva2Usby5saW5lLmNvbG9yKTt2YXIgdT1yLnNlbGVjdEFsbCgicGF0aC5wb2ludCIpO2EucG9pbnRTdHlsZSh1LG8sdCl9fSkpfSxzdHlsZU9uU2VsZWN0OmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1lWzBdLnRyYWNlLGk9ci5zZWxlY3RBbGwoInBhdGgucG9pbnQiKTtuLnNlbGVjdGVkcG9pbnRzP2Euc2VsZWN0ZWRQb2ludFN0eWxlKGksbik6YS5wb2ludFN0eWxlKGksbix0KX19fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjM2NywiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjozODksIkBwbG90bHkvZDMiOjU4fV0sNjk0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLmV4dGVuZEZsYXQsaT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19mb3JtYXRfYXR0cmlidXRlcyIpLmF4aXNIb3ZlckZvcm1hdCxhPXQoIi4uL29obGMvYXR0cmlidXRlcyIpLG89dCgiLi4vYm94L2F0dHJpYnV0ZXMiKTtmdW5jdGlvbiBzKHQpe3JldHVybntsaW5lOntjb2xvcjpuKHt9LG8ubGluZS5jb2xvcix7ZGZsdDp0fSksd2lkdGg6by5saW5lLndpZHRoLGVkaXRUeXBlOiJzdHlsZSJ9LGZpbGxjb2xvcjpvLmZpbGxjb2xvcixlZGl0VHlwZToic3R5bGUifX1lLmV4cG9ydHM9e3hwZXJpb2Q6YS54cGVyaW9kLHhwZXJpb2QwOmEueHBlcmlvZDAseHBlcmlvZGFsaWdubWVudDphLnhwZXJpb2RhbGlnbm1lbnQseGhvdmVyZm9ybWF0OmkoIngiKSx5aG92ZXJmb3JtYXQ6aSgieSIpLHg6YS54LG9wZW46YS5vcGVuLGhpZ2g6YS5oaWdoLGxvdzphLmxvdyxjbG9zZTphLmNsb3NlLGxpbmU6e3dpZHRoOm4oe30sby5saW5lLndpZHRoLHt9KSxlZGl0VHlwZToic3R5bGUifSxpbmNyZWFzaW5nOnMoYS5pbmNyZWFzaW5nLmxpbmUuY29sb3IuZGZsdCksZGVjcmVhc2luZzpzKGEuZGVjcmVhc2luZy5saW5lLmNvbG9yLmRmbHQpLHRleHQ6YS50ZXh0LGhvdmVydGV4dDphLmhvdmVydGV4dCx3aGlza2Vyd2lkdGg6bih7fSxvLndoaXNrZXJ3aWR0aCx7ZGZsdDowfSksaG92ZXJsYWJlbDphLmhvdmVybGFiZWx9fSx7Ii4uLy4uL2xpYiI6NTE1LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19mb3JtYXRfYXR0cmlidXRlcyI6NTY5LCIuLi9ib3gvYXR0cmlidXRlcyI6NjgyLCIuLi9vaGxjL2F0dHJpYnV0ZXMiOjg4MX1dLDY5NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksYT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYWxpZ25fcGVyaW9kIiksbz10KCIuLi9vaGxjL2NhbGMiKS5jYWxjQ29tbW9uO2Z1bmN0aW9uIHModCxlLHIsbil7cmV0dXJue21pbjpyLHExOk1hdGgubWluKHQsbiksbWVkOm4scTM6TWF0aC5tYXgodCxuKSxtYXg6ZX19ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5fZnVsbExheW91dCxsPWkuZ2V0RnJvbUlkKHQsZS54YXhpcyksYz1pLmdldEZyb21JZCh0LGUueWF4aXMpLHU9bC5tYWtlQ2FsY2RhdGEoZSwieCIpLGY9YShlLGwsIngiLHUpLnZhbHMsaD1vKHQsZSx1LGYsYyxzKTtyZXR1cm4gaC5sZW5ndGg/KG4uZXh0ZW5kRmxhdChoWzBdLnQse251bTpyLl9udW1Cb3hlcyxkUG9zOm4uZGlzdGluY3RWYWxzKGYpLm1pbkRpZmYvMixwb3NMZXR0ZXI6IngiLHZhbExldHRlcjoieSJ9KSxyLl9udW1Cb3hlcysrLGgpOlt7dDp7ZW1wdHk6ITB9fV19fSx7Ii4uLy4uL2xpYiI6NTE1LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYWxpZ25fcGVyaW9kIjo1NjMsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo1NjYsIi4uL29obGMvY2FsYyI6ODgyfV0sNjk2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLGE9dCgiLi4vb2hsYy9vaGxjX2RlZmF1bHRzIiksbz10KCIuLi9zY2F0dGVyL3BlcmlvZF9kZWZhdWx0cyIpLHM9dCgiLi9hdHRyaWJ1dGVzIik7ZnVuY3Rpb24gbCh0LGUscixuKXt2YXIgYT1yKG4rIi5saW5lLmNvbG9yIik7cihuKyIubGluZS53aWR0aCIsZS5saW5lLndpZHRoKSxyKG4rIi5maWxsY29sb3IiLGkuYWRkT3BhY2l0eShhLC41KSl9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGkpe2Z1bmN0aW9uIGMocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLHMscixpKX1hKHQsZSxjLGkpPyhvKHQsZSxpLGMse3g6ITB9KSxjKCJ4aG92ZXJmb3JtYXQiKSxjKCJ5aG92ZXJmb3JtYXQiKSxjKCJsaW5lLndpZHRoIiksbCh0LGUsYywiaW5jcmVhc2luZyIpLGwodCxlLGMsImRlY3JlYXNpbmciKSxjKCJ0ZXh0IiksYygiaG92ZXJ0ZXh0IiksYygid2hpc2tlcndpZHRoIiksaS5fcmVxdWVzdFJhbmdlc2xpZGVyW2UueGF4aXNdPSEwKTplLnZpc2libGU9ITF9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjM2NywiLi4vLi4vbGliIjo1MTUsIi4uL29obGMvb2hsY19kZWZhdWx0cyI6ODg2LCIuLi9zY2F0dGVyL3BlcmlvZF9kZWZhdWx0cyI6OTU2LCIuL2F0dHJpYnV0ZXMiOjY5NH1dLDY5NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e21vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJjYW5kbGVzdGljayIsYmFzZVBsb3RNb2R1bGU6dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuIiksY2F0ZWdvcmllczpbImNhcnRlc2lhbiIsInN2ZyIsInNob3dMZWdlbmQiLCJjYW5kbGVzdGljayIsImJveExheW91dCJdLG1ldGE6e30sYXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxsYXlvdXRBdHRyaWJ1dGVzOnQoIi4uL2JveC9sYXlvdXRfYXR0cmlidXRlcyIpLHN1cHBseUxheW91dERlZmF1bHRzOnQoIi4uL2JveC9sYXlvdXRfZGVmYXVsdHMiKS5zdXBwbHlMYXlvdXREZWZhdWx0cyxjcm9zc1RyYWNlQ2FsYzp0KCIuLi9ib3gvY3Jvc3NfdHJhY2VfY2FsYyIpLmNyb3NzVHJhY2VDYWxjLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxjYWxjOnQoIi4vY2FsYyIpLHBsb3Q6dCgiLi4vYm94L3Bsb3QiKS5wbG90LGxheWVyTmFtZToiYm94bGF5ZXIiLHN0eWxlOnQoIi4uL2JveC9zdHlsZSIpLnN0eWxlLGhvdmVyUG9pbnRzOnQoIi4uL29obGMvaG92ZXIiKS5ob3ZlclBvaW50cyxzZWxlY3RQb2ludHM6dCgiLi4vb2hsYy9zZWxlY3QiKX19LHsiLi4vLi4vcGxvdHMvY2FydGVzaWFuIjo1NzgsIi4uL2JveC9jcm9zc190cmFjZV9jYWxjIjo2ODQsIi4uL2JveC9sYXlvdXRfYXR0cmlidXRlcyI6Njg5LCIuLi9ib3gvbGF5b3V0X2RlZmF1bHRzIjo2OTAsIi4uL2JveC9wbG90Ijo2OTEsIi4uL2JveC9zdHlsZSI6NjkzLCIuLi9vaGxjL2hvdmVyIjo4ODQsIi4uL29obGMvc2VsZWN0Ijo4ODgsIi4vYXR0cmlidXRlcyI6Njk0LCIuL2NhbGMiOjY5NSwiLi9kZWZhdWx0cyI6Njk2fV0sNjk4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vYXhpc19kZWZhdWx0cyIpLGk9dCgiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixhLG8pe2EoImEiKXx8KGEoImRhIiksYSgiYTAiKSksYSgiYiIpfHwoYSgiZGIiKSxhKCJiMCIpKSxmdW5jdGlvbih0LGUscixhKXtbImFheGlzIiwiYmF4aXMiXS5mb3JFYWNoKChmdW5jdGlvbihvKXt2YXIgcz1vLmNoYXJBdCgwKSxsPXRbb118fHt9LGM9aS5uZXdDb250YWluZXIoZSxvKSx1PXtub1RpY2tsYWJlbHN0ZXA6ITAsdGlja2ZvbnQ6IngiLGlkOnMrImF4aXMiLGxldHRlcjpzLGZvbnQ6ZS5mb250LG5hbWU6byxkYXRhOnRbc10sY2FsZW5kYXI6ZS5jYWxlbmRhcixkZmx0Q29sb3I6YSxiZ0NvbG9yOnIucGFwZXJfYmdjb2xvcixhdXRvdHlwZW51bWJlcnNEZmx0OnIuYXV0b3R5cGVudW1iZXJzLGZ1bGxMYXlvdXQ6cn07bihsLGMsdSksYy5fY2F0ZWdvcmllcz1jLl9jYXRlZ29yaWVzfHxbXSx0W29dfHwiLSI9PT1sLnR5cGV8fCh0W29dPXt0eXBlOmwudHlwZX0pfSkpfSh0LGUscixvKX19LHsiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6NTU1LCIuL2F4aXNfZGVmYXVsdHMiOjcwM31dLDY5OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKS5pc0FycmF5T3JUeXBlZEFycmF5O2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24gdChlLHIpe2lmKCFuKGUpfHxyPj0xMClyZXR1cm4gbnVsbDtmb3IodmFyIGk9MS8wLGE9LTEvMCxvPWUubGVuZ3RoLHM9MDtzPG87cysrKXt2YXIgbD1lW3NdO2lmKG4obCkpe3ZhciBjPXQobCxyKzEpO2MmJihpPU1hdGgubWluKGNbMF0saSksYT1NYXRoLm1heChjWzFdLGEpKX1lbHNlIGk9TWF0aC5taW4obCxpKSxhPU1hdGgubWF4KGwsYSl9cmV0dXJuW2ksYV19KHQsMCl9fSx7Ii4uLy4uL2xpYiI6NTE1fV0sNzAwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyIpLGk9dCgiLi9heGlzX2F0dHJpYnV0ZXMiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IvYXR0cmlidXRlcyIpLG89bih7ZWRpdFR5cGU6ImNhbGMifSk7by5mYW1pbHkuZGZsdD0nIk9wZW4gU2FucyIsIHZlcmRhbmEsIGFyaWFsLCBzYW5zLXNlcmlmJyxvLnNpemUuZGZsdD0xMixvLmNvbG9yLmRmbHQ9YS5kZWZhdWx0TGluZSxlLmV4cG9ydHM9e2NhcnBldDp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToiY2FsYyJ9LHg6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIn0seTp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSxhOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LGEwOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MCxlZGl0VHlwZToiY2FsYyJ9LGRhOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MSxlZGl0VHlwZToiY2FsYyJ9LGI6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sYjA6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDowLGVkaXRUeXBlOiJjYWxjIn0sZGI6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDoxLGVkaXRUeXBlOiJjYWxjIn0sY2hlYXRlcnNsb3BlOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MSxlZGl0VHlwZToiY2FsYyJ9LGFheGlzOmksYmF4aXM6aSxmb250Om8sY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OmEuZGVmYXVsdExpbmUsZWRpdFR5cGU6InBsb3QifSx0cmFuc2Zvcm1zOnZvaWQgMH19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIjozNjYsIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyI6NTk0LCIuL2F4aXNfYXR0cmlidXRlcyI6NzAyfV0sNzAxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLmlzQXJyYXlPclR5cGVkQXJyYXk7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGkpe3ZhciBhLG8scyxsLGMsdSxmLGgscCxkLG0sZyx2LHk9bihyKT8iYSI6ImIiLHg9KCJhIj09PXk/dC5hYXhpczp0LmJheGlzKS5zbW9vdGhpbmcsYj0iYSI9PT15P3QuYTJpOnQuYjJqLF89ImEiPT09eT9yOmksdz0iYSI9PT15P2k6cixUPSJhIj09PXk/ZS5hLmxlbmd0aDplLmIubGVuZ3RoLGs9ImEiPT09eT9lLmIubGVuZ3RoOmUuYS5sZW5ndGgsQT1NYXRoLmZsb29yKCJhIj09PXk/dC5iMmoodyk6dC5hMmkodykpLE09ImEiPT09eT9mdW5jdGlvbihlKXtyZXR1cm4gdC5ldmFseHkoW10sZSxBKX06ZnVuY3Rpb24oZSl7cmV0dXJuIHQuZXZhbHh5KFtdLEEsZSl9O3gmJihzPU1hdGgubWF4KDAsTWF0aC5taW4oay0yLEEpKSxsPUEtcyxvPSJhIj09PXk/ZnVuY3Rpb24oZSxyKXtyZXR1cm4gdC5keHlkaShbXSxlLHMscixsKX06ZnVuY3Rpb24oZSxyKXtyZXR1cm4gdC5keHlkaihbXSxzLGUsbCxyKX0pO3ZhciBTPWIoX1swXSksRT1iKF9bMV0pLEw9UzxFPzE6LTEsQz0xZS04KihFLVMpLFA9TD4wP01hdGguZmxvb3I6TWF0aC5jZWlsLEk9TD4wP01hdGguY2VpbDpNYXRoLmZsb29yLE89TD4wP01hdGgubWluOk1hdGgubWF4LHo9TD4wP01hdGgubWF4Ok1hdGgubWluLEQ9UChTK0MpLFI9SShFLUMpLEY9W1tmPU0oUyldXTtmb3IoYT1EO2EqTDxSKkw7YSs9TCljPVtdLG09eihTLGEpLHY9KGc9TyhFLGErTCkpLW0sdT1NYXRoLm1heCgwLE1hdGgubWluKFQtMixNYXRoLmZsb29yKC41KihtK2cpKSkpLGg9TShnKSx4JiYocD1vKHUsbS11KSxkPW8odSxnLXUpLGMucHVzaChbZlswXStwWzBdLzMqdixmWzFdK3BbMV0vMyp2XSksYy5wdXNoKFtoWzBdLWRbMF0vMyp2LGhbMV0tZFsxXS8zKnZdKSksYy5wdXNoKGgpLEYucHVzaChjKSxmPWg7cmV0dXJuIEZ9fSx7Ii4uLy4uL2xpYiI6NTE1fV0sNzAyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxvPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2Zvcm1hdF9hdHRyaWJ1dGVzIikuZGVzY3JpcHRpb25XaXRoRGF0ZXMscz10KCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIikub3ZlcnJpZGVBbGwsbD10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmcvYXR0cmlidXRlcyIpLmRhc2gsYz10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdDtlLmV4cG9ydHM9e2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6ImNhbGMifSxzbW9vdGhpbmc6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDoxLG1pbjowLG1heDoxLjMsZWRpdFR5cGU6ImNhbGMifSx0aXRsZTp7dGV4dDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGVkaXRUeXBlOiJjYWxjIn0sZm9udDpuKHtlZGl0VHlwZToiY2FsYyJ9KSxvZmZzZXQ6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDoxMCxlZGl0VHlwZToiY2FsYyJ9LGVkaXRUeXBlOiJjYWxjIn0sdHlwZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiLSIsImxpbmVhciIsImRhdGUiLCJjYXRlZ29yeSJdLGRmbHQ6Ii0iLGVkaXRUeXBlOiJjYWxjIn0sYXV0b3R5cGVudW1iZXJzOmEuYXV0b3R5cGVudW1iZXJzLGF1dG9yYW5nZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlshMCwhMSwicmV2ZXJzZWQiXSxkZmx0OiEwLGVkaXRUeXBlOiJjYWxjIn0scmFuZ2Vtb2RlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJub3JtYWwiLCJ0b3plcm8iLCJub25uZWdhdGl2ZSJdLGRmbHQ6Im5vcm1hbCIsZWRpdFR5cGU6ImNhbGMifSxyYW5nZTp7dmFsVHlwZToiaW5mb19hcnJheSIsZWRpdFR5cGU6ImNhbGMiLGl0ZW1zOlt7dmFsVHlwZToiYW55IixlZGl0VHlwZToiY2FsYyJ9LHt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJjYWxjIn1dfSxmaXhlZHJhbmdlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExLGVkaXRUeXBlOiJjYWxjIn0sY2hlYXRlcnR5cGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImluZGV4IiwidmFsdWUiXSxkZmx0OiJ2YWx1ZSIsZWRpdFR5cGU6ImNhbGMifSx0aWNrbW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsibGluZWFyIiwiYXJyYXkiXSxkZmx0OiJhcnJheSIsZWRpdFR5cGU6ImNhbGMifSxudGlja3M6e3ZhbFR5cGU6ImludGVnZXIiLG1pbjowLGRmbHQ6MCxlZGl0VHlwZToiY2FsYyJ9LHRpY2t2YWxzOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LHRpY2t0ZXh0Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LHNob3d0aWNrbGFiZWxzOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJzdGFydCIsImVuZCIsImJvdGgiLCJub25lIl0sZGZsdDoic3RhcnQiLGVkaXRUeXBlOiJjYWxjIn0sdGlja2ZvbnQ6bih7ZWRpdFR5cGU6ImNhbGMifSksdGlja2FuZ2xlOnt2YWxUeXBlOiJhbmdsZSIsZGZsdDoiYXV0byIsZWRpdFR5cGU6ImNhbGMifSx0aWNrcHJlZml4Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6ImNhbGMifSxzaG93dGlja3ByZWZpeDp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiYWxsIiwiZmlyc3QiLCJsYXN0Iiwibm9uZSJdLGRmbHQ6ImFsbCIsZWRpdFR5cGU6ImNhbGMifSx0aWNrc3VmZml4Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6ImNhbGMifSxzaG93dGlja3N1ZmZpeDp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiYWxsIiwiZmlyc3QiLCJsYXN0Iiwibm9uZSJdLGRmbHQ6ImFsbCIsZWRpdFR5cGU6ImNhbGMifSxzaG93ZXhwb25lbnQ6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImFsbCIsImZpcnN0IiwibGFzdCIsIm5vbmUiXSxkZmx0OiJhbGwiLGVkaXRUeXBlOiJjYWxjIn0sZXhwb25lbnRmb3JtYXQ6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbIm5vbmUiLCJlIiwiRSIsInBvd2VyIiwiU0kiLCJCIl0sZGZsdDoiQiIsZWRpdFR5cGU6ImNhbGMifSxtaW5leHBvbmVudDp7dmFsVHlwZToibnVtYmVyIixkZmx0OjMsbWluOjAsZWRpdFR5cGU6ImNhbGMifSxzZXBhcmF0ZXRob3VzYW5kczp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMSxlZGl0VHlwZToiY2FsYyJ9LHRpY2tmb3JtYXQ6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIixlZGl0VHlwZToiY2FsYyIsZGVzY3JpcHRpb246bygidGljayBsYWJlbCIpfSx0aWNrZm9ybWF0c3RvcHM6cyhhLnRpY2tmb3JtYXRzdG9wcywiY2FsYyIsImZyb20tcm9vdCIpLGNhdGVnb3J5b3JkZXI6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInRyYWNlIiwiY2F0ZWdvcnkgYXNjZW5kaW5nIiwiY2F0ZWdvcnkgZGVzY2VuZGluZyIsImFycmF5Il0sZGZsdDoidHJhY2UiLGVkaXRUeXBlOiJjYWxjIn0sY2F0ZWdvcnlhcnJheTp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxsYWJlbHBhZGRpbmc6e3ZhbFR5cGU6ImludGVnZXIiLGRmbHQ6MTAsZWRpdFR5cGU6ImNhbGMifSxsYWJlbHByZWZpeDp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToiY2FsYyJ9LGxhYmVsc3VmZml4Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6ImNhbGMifSxzaG93bGluZTp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMSxlZGl0VHlwZToiY2FsYyJ9LGxpbmVjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6aS5kZWZhdWx0TGluZSxlZGl0VHlwZToiY2FsYyJ9LGxpbmV3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjEsZWRpdFR5cGU6ImNhbGMifSxncmlkY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToiY2FsYyJ9LGdyaWR3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjEsZWRpdFR5cGU6ImNhbGMifSxncmlkZGFzaDpjKHt9LGwse2VkaXRUeXBlOiJjYWxjIn0pLHNob3dncmlkOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJjYWxjIn0sbWlub3JncmlkY291bnQ6e3ZhbFR5cGU6ImludGVnZXIiLG1pbjowLGRmbHQ6MCxlZGl0VHlwZToiY2FsYyJ9LG1pbm9yZ3JpZHdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MSxlZGl0VHlwZToiY2FsYyJ9LG1pbm9yZ3JpZGRhc2g6Yyh7fSxsLHtlZGl0VHlwZToiY2FsYyJ9KSxtaW5vcmdyaWRjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6aS5saWdodExpbmUsZWRpdFR5cGU6ImNhbGMifSxzdGFydGxpbmU6e3ZhbFR5cGU6ImJvb2xlYW4iLGVkaXRUeXBlOiJjYWxjIn0sc3RhcnRsaW5lY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToiY2FsYyJ9LHN0YXJ0bGluZXdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MSxlZGl0VHlwZToiY2FsYyJ9LGVuZGxpbmU6e3ZhbFR5cGU6ImJvb2xlYW4iLGVkaXRUeXBlOiJjYWxjIn0sZW5kbGluZXdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MSxlZGl0VHlwZToiY2FsYyJ9LGVuZGxpbmVjb2xvcjp7dmFsVHlwZToiY29sb3IiLGVkaXRUeXBlOiJjYWxjIn0sdGljazA6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDowLGVkaXRUeXBlOiJjYWxjIn0sZHRpY2s6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxLGVkaXRUeXBlOiJjYWxjIn0sYXJyYXl0aWNrMDp7dmFsVHlwZToiaW50ZWdlciIsbWluOjAsZGZsdDowLGVkaXRUeXBlOiJjYWxjIn0sYXJyYXlkdGljazp7dmFsVHlwZToiaW50ZWdlciIsbWluOjEsZGZsdDoxLGVkaXRUeXBlOiJjYWxjIn0sX2RlcHJlY2F0ZWQ6e3RpdGxlOnt2YWxUeXBlOiJzdHJpbmciLGVkaXRUeXBlOiJjYWxjIn0sdGl0bGVmb250Om4oe2VkaXRUeXBlOiJjYWxjIn0pLHRpdGxlb2Zmc2V0Ont2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MTAsZWRpdFR5cGU6ImNhbGMifX0sZWRpdFR5cGU6ImNhbGMifX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yL2F0dHJpYnV0ZXMiOjM2NiwiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nL2F0dHJpYnV0ZXMiOjM4OCwiLi4vLi4vbGliL2V4dGVuZCI6NTA1LCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIjo1NDgsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2Zvcm1hdF9hdHRyaWJ1dGVzIjo1NjksIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9sYXlvdXRfYXR0cmlidXRlcyI6NTc5LCIuLi8uLi9wbG90cy9mb250X2F0dHJpYnV0ZXMiOjU5NH1dLDcwMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2F0dHJpYnV0ZXMiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKS5hZGRPcGFjaXR5LGE9dCgiLi4vLi4vcmVnaXN0cnkiKSxvPXQoIi4uLy4uL2xpYiIpLHM9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL3RpY2tfdmFsdWVfZGVmYXVsdHMiKSxsPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi90aWNrX2xhYmVsX2RlZmF1bHRzIiksYz10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vcHJlZml4X3N1ZmZpeF9kZWZhdWx0cyIpLHU9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2NhdGVnb3J5X29yZGVyX2RlZmF1bHRzIiksZj10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vc2V0X2NvbnZlcnQiKSxoPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2F1dG90eXBlIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgcD1yLmxldHRlcixkPXIuZm9udHx8e30sbT1uW3ArImF4aXMiXTtmdW5jdGlvbiBnKHIsbil7cmV0dXJuIG8uY29lcmNlKHQsZSxtLHIsbil9ZnVuY3Rpb24gdihyLG4pe3JldHVybiBvLmNvZXJjZTIodCxlLG0scixuKX1yLm5hbWUmJihlLl9uYW1lPXIubmFtZSxlLl9pZD1yLm5hbWUpLGcoImF1dG90eXBlbnVtYmVycyIsci5hdXRvdHlwZW51bWJlcnNEZmx0KTt2YXIgeT1nKCJ0eXBlIik7KCItIj09PXkmJihyLmRhdGEmJmZ1bmN0aW9uKHQsZSl7aWYoIi0iIT09dC50eXBlKXJldHVybjt2YXIgcj10Ll9pZC5jaGFyQXQoMCksbj10W3IrImNhbGVuZGFyIl07dC50eXBlPWgoZSxuLHthdXRvdHlwZW51bWJlcnM6dC5hdXRvdHlwZW51bWJlcnN9KX0oZSxyLmRhdGEpLCItIj09PWUudHlwZT9lLnR5cGU9ImxpbmVhciI6eT10LnR5cGU9ZS50eXBlKSxnKCJzbW9vdGhpbmciKSxnKCJjaGVhdGVydHlwZSIpLGcoInNob3d0aWNrbGFiZWxzIiksZygibGFiZWxwcmVmaXgiLHArIiA9ICIpLGcoImxhYmVsc3VmZml4IiksZygic2hvd3RpY2twcmVmaXgiKSxnKCJzaG93dGlja3N1ZmZpeCIpLGcoInNlcGFyYXRldGhvdXNhbmRzIiksZygidGlja2Zvcm1hdCIpLGcoImV4cG9uZW50Zm9ybWF0IiksZygibWluZXhwb25lbnQiKSxnKCJzaG93ZXhwb25lbnQiKSxnKCJjYXRlZ29yeW9yZGVyIiksZygidGlja21vZGUiKSxnKCJ0aWNrdmFscyIpLGcoInRpY2t0ZXh0IiksZygidGljazAiKSxnKCJkdGljayIpLCJhcnJheSI9PT1lLnRpY2ttb2RlJiYoZygiYXJyYXl0aWNrMCIpLGcoImFycmF5ZHRpY2siKSksZygibGFiZWxwYWRkaW5nIiksZS5faG92ZXJ0aXRsZT1wLCJkYXRlIj09PXkpJiZhLmdldENvbXBvbmVudE1ldGhvZCgiY2FsZW5kYXJzIiwiaGFuZGxlRGVmYXVsdHMiKSh0LGUsImNhbGVuZGFyIixyLmNhbGVuZGFyKTtmKGUsci5mdWxsTGF5b3V0KSxlLmMycD1vLmlkZW50aXR5O3ZhciB4PWcoImNvbG9yIixyLmRmbHRDb2xvciksYj14PT09dC5jb2xvcj94OmQuY29sb3I7ZygidGl0bGUudGV4dCIpJiYoby5jb2VyY2VGb250KGcsInRpdGxlLmZvbnQiLHtmYW1pbHk6ZC5mYW1pbHksc2l6ZTpvLmJpZ0ZvbnQoZC5zaXplKSxjb2xvcjpifSksZygidGl0bGUub2Zmc2V0IikpLGcoInRpY2thbmdsZSIpLGcoImF1dG9yYW5nZSIsIWUuaXNWYWxpZFJhbmdlKHQucmFuZ2UpKSYmZygicmFuZ2Vtb2RlIiksZygicmFuZ2UiKSxlLmNsZWFuUmFuZ2UoKSxnKCJmaXhlZHJhbmdlIikscyh0LGUsZyx5KSxjKHQsZSxnLHksciksbCh0LGUsZyx5LHIpLHUodCxlLGcse2RhdGE6ci5kYXRhLGRhdGFBdHRyOnB9KTt2YXIgXz12KCJncmlkY29sb3IiLGkoeCwuMykpLHc9digiZ3JpZHdpZHRoIiksVD12KCJncmlkZGFzaCIpLGs9Zygic2hvd2dyaWQiKTtrfHwoZGVsZXRlIGUuZ3JpZGNvbG9yLGRlbGV0ZSBlLmdyaWR3aWR0aCxkZWxldGUgZS5ncmlkZGFzaCk7dmFyIEE9digic3RhcnRsaW5lY29sb3IiLHgpLE09digic3RhcnRsaW5ld2lkdGgiLHcpO2coInN0YXJ0bGluZSIsZS5zaG93Z3JpZHx8ISFBfHwhIU0pfHwoZGVsZXRlIGUuc3RhcnRsaW5lY29sb3IsZGVsZXRlIGUuc3RhcnRsaW5ld2lkdGgpO3ZhciBTPXYoImVuZGxpbmVjb2xvciIseCksRT12KCJlbmRsaW5ld2lkdGgiLHcpO3JldHVybiBnKCJlbmRsaW5lIixlLnNob3dncmlkfHwhIVN8fCEhRSl8fChkZWxldGUgZS5lbmRsaW5lY29sb3IsZGVsZXRlIGUuZW5kbGluZXdpZHRoKSxrPyhnKCJtaW5vcmdyaWRjb3VudCIpLGcoIm1pbm9yZ3JpZHdpZHRoIix3KSxnKCJtaW5vcmdyaWRkYXNoIixUKSxnKCJtaW5vcmdyaWRjb2xvciIsaShfLC4wNikpLGUubWlub3JncmlkY291bnR8fChkZWxldGUgZS5taW5vcmdyaWR3aWR0aCxkZWxldGUgZS5taW5vcmdyaWRkYXNoLGRlbGV0ZSBlLm1pbm9yZ3JpZGNvbG9yKSk6KGRlbGV0ZSBlLmdyaWRjb2xvcixkZWxldGUgZS5ncmlkd2lkdGgsZGVsZXRlIGUuZ3JpZGRhc2gpLCJub25lIj09PWUuc2hvd3RpY2tsYWJlbHMmJihkZWxldGUgZS50aWNrZm9udCxkZWxldGUgZS50aWNrYW5nbGUsZGVsZXRlIGUuc2hvd2V4cG9uZW50LGRlbGV0ZSBlLmV4cG9uZW50Zm9ybWF0LGRlbGV0ZSBlLm1pbmV4cG9uZW50LGRlbGV0ZSBlLnRpY2tmb3JtYXQsZGVsZXRlIGUuc2hvd3RpY2tzdWZmaXgsZGVsZXRlIGUuc2hvd3RpY2twcmVmaXgpLGUuc2hvd3RpY2tzdWZmaXh8fGRlbGV0ZSBlLnRpY2tzdWZmaXgsZS5zaG93dGlja3ByZWZpeHx8ZGVsZXRlIGUudGlja3ByZWZpeCxnKCJ0aWNrbW9kZSIpLGV9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjM2NywiLi4vLi4vbGliIjo1MTUsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2F1dG90eXBlIjo1NjcsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9jYXRlZ29yeV9vcmRlcl9kZWZhdWx0cyI6NTcxLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vcHJlZml4X3N1ZmZpeF9kZWZhdWx0cyI6NTgzLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vc2V0X2NvbnZlcnQiOjU4NSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL3RpY2tfbGFiZWxfZGVmYXVsdHMiOjU4NywiLi4vLi4vcGxvdHMvY2FydGVzaWFuL3RpY2tfdmFsdWVfZGVmYXVsdHMiOjU4OSwiLi4vLi4vcmVnaXN0cnkiOjY0NywiLi9hdHRyaWJ1dGVzIjo3MDB9XSw3MDQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxpPXQoIi4uLy4uL2xpYiIpLmlzQXJyYXkxRCxhPXQoIi4vY2hlYXRlcl9iYXNpcyIpLG89dCgiLi9hcnJheV9taW5tYXgiKSxzPXQoIi4vY2FsY19ncmlkbGluZXMiKSxsPXQoIi4vY2FsY19sYWJlbHMiKSxjPXQoIi4vY2FsY19jbGlwcGF0aCIpLHU9dCgiLi4vaGVhdG1hcC9jbGVhbl8yZF9hcnJheSIpLGY9dCgiLi9zbW9vdGhfZmlsbF8yZF9hcnJheSIpLGg9dCgiLi4vaGVhdG1hcC9jb252ZXJ0X2NvbHVtbl94eXoiKSxwPXQoIi4vc2V0X2NvbnZlcnQiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1uLmdldEZyb21JZCh0LGUueGF4aXMpLGQ9bi5nZXRGcm9tSWQodCxlLnlheGlzKSxtPWUuYWF4aXMsZz1lLmJheGlzLHY9ZS54LHk9ZS55LHg9W107diYmaSh2KSYmeC5wdXNoKCJ4IikseSYmaSh5KSYmeC5wdXNoKCJ5IikseC5sZW5ndGgmJmgoZSxtLGcsImEiLCJiIix4KTt2YXIgYj1lLl9hPWUuX2F8fGUuYSxfPWUuX2I9ZS5fYnx8ZS5iO3Y9ZS5feHx8ZS54LHk9ZS5feXx8ZS55O3ZhciB3PXt9O2lmKGUuX2NoZWF0ZXIpe3ZhciBUPSJpbmRleCI9PT1tLmNoZWF0ZXJ0eXBlP2IubGVuZ3RoOmIsaz0iaW5kZXgiPT09Zy5jaGVhdGVydHlwZT9fLmxlbmd0aDpfO3Y9YShULGssZS5jaGVhdGVyc2xvcGUpfWUuX3g9dj11KHYpLGUuX3k9eT11KHkpLGYodixiLF8pLGYoeSxiLF8pLHAoZSksZS5zZXRTY2FsZSgpO3ZhciBBPW8odiksTT1vKHkpLFM9LjUqKEFbMV0tQVswXSksRT0uNSooQVsxXStBWzBdKSxMPS41KihNWzFdLU1bMF0pLEM9LjUqKE1bMV0rTVswXSk7cmV0dXJuIEE9W0UtMS4zKlMsRSsxLjMqU10sTT1bQy0xLjMqTCxDKzEuMypMXSxlLl9leHRyZW1lc1tyLl9pZF09bi5maW5kRXh0cmVtZXMocixBLHtwYWRkZWQ6ITB9KSxlLl9leHRyZW1lc1tkLl9pZF09bi5maW5kRXh0cmVtZXMoZCxNLHtwYWRkZWQ6ITB9KSxzKGUsImEiLCJiIikscyhlLCJiIiwiYSIpLGwoZSxtKSxsKGUsZyksdy5jbGlwc2VnbWVudHM9YyhlLl94Y3RybCxlLl95Y3RybCxtLGcpLHcueD12LHcueT15LHcuYT1iLHcuYj1fLFt3XX19LHsiLi4vLi4vbGliIjo1MTUsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo1NjYsIi4uL2hlYXRtYXAvY2xlYW5fMmRfYXJyYXkiOjgwMywiLi4vaGVhdG1hcC9jb252ZXJ0X2NvbHVtbl94eXoiOjgwNSwiLi9hcnJheV9taW5tYXgiOjY5OSwiLi9jYWxjX2NsaXBwYXRoIjo3MDUsIi4vY2FsY19ncmlkbGluZXMiOjcwNiwiLi9jYWxjX2xhYmVscyI6NzA3LCIuL2NoZWF0ZXJfYmFzaXMiOjcwOSwiLi9zZXRfY29udmVydCI6NzIyLCIuL3Ntb290aF9maWxsXzJkX2FycmF5Ijo3MjN9XSw3MDU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpLGEsbyxzPVtdLGw9ISFyLnNtb290aGluZyxjPSEhbi5zbW9vdGhpbmcsdT10WzBdLmxlbmd0aC0xLGY9dC5sZW5ndGgtMTtmb3IoaT0wLGE9W10sbz1bXTtpPD11O2krKylhW2ldPXRbMF1baV0sb1tpXT1lWzBdW2ldO2ZvcihzLnB1c2goe3g6YSx5Om8sYmljdWJpYzpsfSksaT0wLGE9W10sbz1bXTtpPD1mO2krKylhW2ldPXRbaV1bdV0sb1tpXT1lW2ldW3VdO2ZvcihzLnB1c2goe3g6YSx5Om8sYmljdWJpYzpjfSksaT11LGE9W10sbz1bXTtpPj0wO2ktLSlhW3UtaV09dFtmXVtpXSxvW3UtaV09ZVtmXVtpXTtmb3Iocy5wdXNoKHt4OmEseTpvLGJpY3ViaWM6bH0pLGk9ZixhPVtdLG89W107aT49MDtpLS0pYVtmLWldPXRbaV1bMF0sb1tmLWldPWVbaV1bMF07cmV0dXJuIHMucHVzaCh7eDphLHk6byxiaWN1YmljOmN9KSxzfX0se31dLDcwNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGk9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQ7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgYSxvLHMsbCxjLHUsZixoLHAsZCxtLGcsdix5LHg9dFsiXyIrZV0sYj10W2UrImF4aXMiXSxfPWIuX2dyaWRsaW5lcz1bXSx3PWIuX21pbm9yZ3JpZGxpbmVzPVtdLFQ9Yi5fYm91bmRhcnlsaW5lcz1bXSxrPXRbIl8iK3JdLEE9dFtyKyJheGlzIl07ImFycmF5Ij09PWIudGlja21vZGUmJihiLnRpY2t2YWxzPXguc2xpY2UoKSk7dmFyIE09dC5feGN0cmwsUz10Ll95Y3RybCxFPU1bMF0ubGVuZ3RoLEw9TS5sZW5ndGgsQz10Ll9hLmxlbmd0aCxQPXQuX2IubGVuZ3RoO24ucHJlcFRpY2tzKGIpLCJhcnJheSI9PT1iLnRpY2ttb2RlJiZkZWxldGUgYi50aWNrdmFsczt2YXIgST1iLnNtb290aGluZz8zOjE7ZnVuY3Rpb24gTyhuKXt2YXIgaSxhLG8scyxsLGMsdSxmLHAsZCxtLGcsdj1bXSx5PVtdLHg9e307aWYoImIiPT09ZSlmb3IoYT10LmIyaihuKSxvPU1hdGguZmxvb3IoTWF0aC5tYXgoMCxNYXRoLm1pbihQLTIsYSkpKSxzPWEtbyx4Lmxlbmd0aD1QLHguY3Jvc3NMZW5ndGg9Qyx4Lnh5PWZ1bmN0aW9uKGUpe3JldHVybiB0LmV2YWx4eShbXSxlLGEpfSx4LmR4eT1mdW5jdGlvbihlLHIpe3JldHVybiB0LmR4eWRpKFtdLGUsbyxyLHMpfSxpPTA7aTxDO2krKyljPU1hdGgubWluKEMtMixpKSx1PWktYyxmPXQuZXZhbHh5KFtdLGksYSksQS5zbW9vdGhpbmcmJmk+MCYmKHA9dC5keHlkaShbXSxpLTEsbywwLHMpLHYucHVzaChsWzBdK3BbMF0vMykseS5wdXNoKGxbMV0rcFsxXS8zKSxkPXQuZHh5ZGkoW10saS0xLG8sMSxzKSx2LnB1c2goZlswXS1kWzBdLzMpLHkucHVzaChmWzFdLWRbMV0vMykpLHYucHVzaChmWzBdKSx5LnB1c2goZlsxXSksbD1mO2Vsc2UgZm9yKGk9dC5hMmkobiksYz1NYXRoLmZsb29yKE1hdGgubWF4KDAsTWF0aC5taW4oQy0yLGkpKSksdT1pLWMseC5sZW5ndGg9Qyx4LmNyb3NzTGVuZ3RoPVAseC54eT1mdW5jdGlvbihlKXtyZXR1cm4gdC5ldmFseHkoW10saSxlKX0seC5keHk9ZnVuY3Rpb24oZSxyKXtyZXR1cm4gdC5keHlkaihbXSxjLGUsdSxyKX0sYT0wO2E8UDthKyspbz1NYXRoLm1pbihQLTIsYSkscz1hLW8sZj10LmV2YWx4eShbXSxpLGEpLEEuc21vb3RoaW5nJiZhPjAmJihtPXQuZHh5ZGooW10sYyxhLTEsdSwwKSx2LnB1c2gobFswXSttWzBdLzMpLHkucHVzaChsWzFdK21bMV0vMyksZz10LmR4eWRqKFtdLGMsYS0xLHUsMSksdi5wdXNoKGZbMF0tZ1swXS8zKSx5LnB1c2goZlsxXS1nWzFdLzMpKSx2LnB1c2goZlswXSkseS5wdXNoKGZbMV0pLGw9ZjtyZXR1cm4geC5heGlzTGV0dGVyPWUseC5heGlzPWIseC5jcm9zc0F4aXM9QSx4LnZhbHVlPW4seC5jb25zdHZhcj1yLHguaW5kZXg9aCx4Lng9dix4Lnk9eSx4LnNtb290aGluZz1BLnNtb290aGluZyx4fWZ1bmN0aW9uIHoobil7dmFyIGksYSxvLHMsbCxjPVtdLHU9W10sZj17fTtpZihmLmxlbmd0aD14Lmxlbmd0aCxmLmNyb3NzTGVuZ3RoPWsubGVuZ3RoLCJiIj09PWUpZm9yKG89TWF0aC5tYXgoMCxNYXRoLm1pbihQLTIsbikpLGw9TWF0aC5taW4oMSxNYXRoLm1heCgwLG4tbykpLGYueHk9ZnVuY3Rpb24oZSl7cmV0dXJuIHQuZXZhbHh5KFtdLGUsbil9LGYuZHh5PWZ1bmN0aW9uKGUscil7cmV0dXJuIHQuZHh5ZGkoW10sZSxvLHIsbCl9LGk9MDtpPEU7aSsrKWNbaV09TVtuKkldW2ldLHVbaV09U1tuKkldW2ldO2Vsc2UgZm9yKGE9TWF0aC5tYXgoMCxNYXRoLm1pbihDLTIsbikpLHM9TWF0aC5taW4oMSxNYXRoLm1heCgwLG4tYSkpLGYueHk9ZnVuY3Rpb24oZSl7cmV0dXJuIHQuZXZhbHh5KFtdLG4sZSl9LGYuZHh5PWZ1bmN0aW9uKGUscil7cmV0dXJuIHQuZHh5ZGooW10sYSxlLHMscil9LGk9MDtpPEw7aSsrKWNbaV09TVtpXVtuKkldLHVbaV09U1tpXVtuKkldO3JldHVybiBmLmF4aXNMZXR0ZXI9ZSxmLmF4aXM9YixmLmNyb3NzQXhpcz1BLGYudmFsdWU9eFtuXSxmLmNvbnN0dmFyPXIsZi5pbmRleD1uLGYueD1jLGYueT11LGYuc21vb3RoaW5nPUEuc21vb3RoaW5nLGZ9aWYoImFycmF5Ij09PWIudGlja21vZGUpe2ZvcihsPTVlLTE1LHU9KGM9W01hdGguZmxvb3IoKHgubGVuZ3RoLTEtYi5hcnJheXRpY2swKS9iLmFycmF5ZHRpY2sqKDErbCkpLE1hdGguY2VpbCgtYi5hcnJheXRpY2swL2IuYXJyYXlkdGljay8oMStsKSldLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQtZX0pKSlbMF0tMSxmPWNbMV0rMSxoPXU7aDxmO2grKykobz1iLmFycmF5dGljazArYi5hcnJheWR0aWNrKmgpPDB8fG8+eC5sZW5ndGgtMXx8Xy5wdXNoKGkoeihvKSx7Y29sb3I6Yi5ncmlkY29sb3Isd2lkdGg6Yi5ncmlkd2lkdGgsZGFzaDpiLmdyaWRkYXNofSkpO2ZvcihoPXU7aDxmO2grKylpZihzPWIuYXJyYXl0aWNrMCtiLmFycmF5ZHRpY2sqaCxtPU1hdGgubWluKHMrYi5hcnJheWR0aWNrLHgubGVuZ3RoLTEpLCEoczwwfHxzPngubGVuZ3RoLTF8fG08MHx8bT54Lmxlbmd0aC0xKSlmb3IoZz14W3NdLHY9eFttXSxhPTA7YTxiLm1pbm9yZ3JpZGNvdW50O2ErKykoeT1tLXMpPD0wfHwoZD1nKyh2LWcpKihhKzEpLyhiLm1pbm9yZ3JpZGNvdW50KzEpKihiLmFycmF5ZHRpY2sveSkpPHhbMF18fGQ+eFt4Lmxlbmd0aC0xXXx8dy5wdXNoKGkoTyhkKSx7Y29sb3I6Yi5taW5vcmdyaWRjb2xvcix3aWR0aDpiLm1pbm9yZ3JpZHdpZHRoLGRhc2g6Yi5taW5vcmdyaWRkYXNofSkpO2Iuc3RhcnRsaW5lJiZULnB1c2goaSh6KDApLHtjb2xvcjpiLnN0YXJ0bGluZWNvbG9yLHdpZHRoOmIuc3RhcnRsaW5ld2lkdGh9KSksYi5lbmRsaW5lJiZULnB1c2goaSh6KHgubGVuZ3RoLTEpLHtjb2xvcjpiLmVuZGxpbmVjb2xvcix3aWR0aDpiLmVuZGxpbmV3aWR0aH0pKX1lbHNle2ZvcihsPTVlLTE1LHU9KGM9W01hdGguZmxvb3IoKHhbeC5sZW5ndGgtMV0tYi50aWNrMCkvYi5kdGljayooMStsKSksTWF0aC5jZWlsKCh4WzBdLWIudGljazApL2IuZHRpY2svKDErbCkpXS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0LWV9KSkpWzBdLGY9Y1sxXSxoPXU7aDw9ZjtoKyspcD1iLnRpY2swK2IuZHRpY2sqaCxfLnB1c2goaShPKHApLHtjb2xvcjpiLmdyaWRjb2xvcix3aWR0aDpiLmdyaWR3aWR0aCxkYXNoOmIuZ3JpZGRhc2h9KSk7Zm9yKGg9dS0xO2g8ZisxO2grKylmb3IocD1iLnRpY2swK2IuZHRpY2sqaCxhPTA7YTxiLm1pbm9yZ3JpZGNvdW50O2ErKykoZD1wK2IuZHRpY2sqKGErMSkvKGIubWlub3JncmlkY291bnQrMSkpPHhbMF18fGQ+eFt4Lmxlbmd0aC0xXXx8dy5wdXNoKGkoTyhkKSx7Y29sb3I6Yi5taW5vcmdyaWRjb2xvcix3aWR0aDpiLm1pbm9yZ3JpZHdpZHRoLGRhc2g6Yi5taW5vcmdyaWRkYXNofSkpO2Iuc3RhcnRsaW5lJiZULnB1c2goaShPKHhbMF0pLHtjb2xvcjpiLnN0YXJ0bGluZWNvbG9yLHdpZHRoOmIuc3RhcnRsaW5ld2lkdGh9KSksYi5lbmRsaW5lJiZULnB1c2goaShPKHhbeC5sZW5ndGgtMV0pLHtjb2xvcjpiLmVuZGxpbmVjb2xvcix3aWR0aDpiLmVuZGxpbmV3aWR0aH0pKX19fSx7Ii4uLy4uL2xpYi9leHRlbmQiOjUwNSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjU2Nn1dLDcwNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGk9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQ7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsYSxvLHM9ZS5fbGFiZWxzPVtdLGw9ZS5fZ3JpZGxpbmVzO2ZvcihyPTA7cjxsLmxlbmd0aDtyKyspbz1sW3JdLC0xIT09WyJzdGFydCIsImJvdGgiXS5pbmRleE9mKGUuc2hvd3RpY2tsYWJlbHMpJiYoYT1uLnRpY2tUZXh0KGUsby52YWx1ZSksaShhLHtwcmVmaXg6dm9pZCAwLHN1ZmZpeDp2b2lkIDAsZW5kQW5jaG9yOiEwLHh5Om8ueHkoMCksZHh5Om8uZHh5KDAsMCksYXhpczpvLmF4aXMsbGVuZ3RoOm8uY3Jvc3NBeGlzLmxlbmd0aCxmb250Om8uYXhpcy50aWNrZm9udCxpc0ZpcnN0OjA9PT1yLGlzTGFzdDpyPT09bC5sZW5ndGgtMX0pLHMucHVzaChhKSksLTEhPT1bImVuZCIsImJvdGgiXS5pbmRleE9mKGUuc2hvd3RpY2tsYWJlbHMpJiYoYT1uLnRpY2tUZXh0KGUsby52YWx1ZSksaShhLHtlbmRBbmNob3I6ITEseHk6by54eShvLmNyb3NzTGVuZ3RoLTEpLGR4eTpvLmR4eShvLmNyb3NzTGVuZ3RoLTIsMSksYXhpczpvLmF4aXMsbGVuZ3RoOm8uY3Jvc3NBeGlzLmxlbmd0aCxmb250Om8uYXhpcy50aWNrZm9udCxpc0ZpcnN0OjA9PT1yLGlzTGFzdDpyPT09bC5sZW5ndGgtMX0pLHMucHVzaChhKSl9fSx7Ii4uLy4uL2xpYi9leHRlbmQiOjUwNSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjU2Nn1dLDcwODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9dFswXS1lWzBdLGE9dFsxXS1lWzFdLG89clswXS1lWzBdLHM9clsxXS1lWzFdLGw9TWF0aC5wb3coaSppK2EqYSwuMjUpLGM9TWF0aC5wb3cobypvK3MqcywuMjUpLHU9KGMqYyppLWwqbCpvKSpuLGY9KGMqYyphLWwqbCpzKSpuLGg9YyoobCtjKSozLHA9bCoobCtjKSozO3JldHVybltbZVswXSsoaCYmdS9oKSxlWzFdKyhoJiZmL2gpXSxbZVswXS0ocCYmdS9wKSxlWzFdLShwJiZmL3ApXV19fSx7fV0sNzA5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLmlzQXJyYXlPclR5cGVkQXJyYXk7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgaSxhLG8scyxsLGMsdT1bXSxmPW4odCk/dC5sZW5ndGg6dCxoPW4oZSk/ZS5sZW5ndGg6ZSxwPW4odCk/dDpudWxsLGQ9bihlKT9lOm51bGw7cCYmKG89KHAubGVuZ3RoLTEpLyhwW3AubGVuZ3RoLTFdLXBbMF0pLyhmLTEpKSxkJiYocz0oZC5sZW5ndGgtMSkvKGRbZC5sZW5ndGgtMV0tZFswXSkvKGgtMSkpO3ZhciBtPTEvMCxnPS0xLzA7Zm9yKGE9MDthPGg7YSsrKWZvcih1W2FdPVtdLGw9ZD8oZFthXS1kWzBdKSpzOmEvKGgtMSksaT0wO2k8ZjtpKyspYz0ocD8ocFtpXS1wWzBdKSpvOmkvKGYtMSkpLWwqcixtPU1hdGgubWluKGMsbSksZz1NYXRoLm1heChjLGcpLHVbYV1baV09Yzt2YXIgdj0xLyhnLW0pLHk9LW0qdjtmb3IoYT0wO2E8aDthKyspZm9yKGk9MDtpPGY7aSsrKXVbYV1baV09dip1W2FdW2ldK3k7cmV0dXJuIHV9fSx7Ii4uLy4uL2xpYiI6NTE1fV0sNzEwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vY2F0bXVsbF9yb20iKSxpPXQoIi4uLy4uL2xpYiIpLmVuc3VyZUFycmF5O2Z1bmN0aW9uIGEodCxlLHIpe3ZhciBuPS0uNSpyWzBdKzEuNSplWzBdLGk9LS41KnJbMV0rMS41KmVbMV07cmV0dXJuWygyKm4rdFswXSkvMywoMippK3RbMV0pLzNdfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscixvLHMsbCl7dmFyIGMsdSxmLGgscCxkLG0sZyx2LHkseD1yWzBdLmxlbmd0aCxiPXIubGVuZ3RoLF89cz8zKngtMjp4LHc9bD8zKmItMjpiO2Zvcih0PWkodCx3KSxlPWkoZSx3KSxmPTA7Zjx3O2YrKyl0W2ZdPWkodFtmXSxfKSxlW2ZdPWkoZVtmXSxfKTtmb3IodT0wLGg9MDt1PGI7dSsrLGgrPWw/MzoxKWZvcihwPXRbaF0sZD1lW2hdLG09clt1XSxnPW9bdV0sYz0wLGY9MDtjPHg7YysrLGYrPXM/MzoxKXBbZl09bVtjXSxkW2ZdPWdbY107aWYocylmb3IodT0wLGg9MDt1PGI7dSsrLGgrPWw/MzoxKXtmb3IoYz0xLGY9MztjPHgtMTtjKyssZis9Myl2PW4oW3JbdV1bYy0xXSxvW3VdW2MtMV1dLFtyW3VdW2NdLG9bdV1bY11dLFtyW3VdW2MrMV0sb1t1XVtjKzFdXSxzKSx0W2hdW2YtMV09dlswXVswXSxlW2hdW2YtMV09dlswXVsxXSx0W2hdW2YrMV09dlsxXVswXSxlW2hdW2YrMV09dlsxXVsxXTt5PWEoW3RbaF1bMF0sZVtoXVswXV0sW3RbaF1bMl0sZVtoXVsyXV0sW3RbaF1bM10sZVtoXVszXV0pLHRbaF1bMV09eVswXSxlW2hdWzFdPXlbMV0seT1hKFt0W2hdW18tMV0sZVtoXVtfLTFdXSxbdFtoXVtfLTNdLGVbaF1bXy0zXV0sW3RbaF1bXy00XSxlW2hdW18tNF1dKSx0W2hdW18tMl09eVswXSxlW2hdW18tMl09eVsxXX1pZihsKWZvcihmPTA7ZjxfO2YrKyl7Zm9yKGg9MztoPHctMztoKz0zKXY9bihbdFtoLTNdW2ZdLGVbaC0zXVtmXV0sW3RbaF1bZl0sZVtoXVtmXV0sW3RbaCszXVtmXSxlW2grM11bZl1dLGwpLHRbaC0xXVtmXT12WzBdWzBdLGVbaC0xXVtmXT12WzBdWzFdLHRbaCsxXVtmXT12WzFdWzBdLGVbaCsxXVtmXT12WzFdWzFdO3k9YShbdFswXVtmXSxlWzBdW2ZdXSxbdFsyXVtmXSxlWzJdW2ZdXSxbdFszXVtmXSxlWzNdW2ZdXSksdFsxXVtmXT15WzBdLGVbMV1bZl09eVsxXSx5PWEoW3Rbdy0xXVtmXSxlW3ctMV1bZl1dLFt0W3ctM11bZl0sZVt3LTNdW2ZdXSxbdFt3LTRdW2ZdLGVbdy00XVtmXV0pLHRbdy0yXVtmXT15WzBdLGVbdy0yXVtmXT15WzFdfWlmKHMmJmwpZm9yKGg9MTtoPHc7aCs9KGgrMSklMz09MD8yOjEpe2ZvcihmPTM7ZjxfLTM7Zis9Myl2PW4oW3RbaF1bZi0zXSxlW2hdW2YtM11dLFt0W2hdW2ZdLGVbaF1bZl1dLFt0W2hdW2YrM10sZVtoXVtmKzNdXSxzKSx0W2hdW2YtMV09LjUqKHRbaF1bZi0xXSt2WzBdWzBdKSxlW2hdW2YtMV09LjUqKGVbaF1bZi0xXSt2WzBdWzFdKSx0W2hdW2YrMV09LjUqKHRbaF1bZisxXSt2WzFdWzBdKSxlW2hdW2YrMV09LjUqKGVbaF1bZisxXSt2WzFdWzFdKTt5PWEoW3RbaF1bMF0sZVtoXVswXV0sW3RbaF1bMl0sZVtoXVsyXV0sW3RbaF1bM10sZVtoXVszXV0pLHRbaF1bMV09LjUqKHRbaF1bMV0reVswXSksZVtoXVsxXT0uNSooZVtoXVsxXSt5WzFdKSx5PWEoW3RbaF1bXy0xXSxlW2hdW18tMV1dLFt0W2hdW18tM10sZVtoXVtfLTNdXSxbdFtoXVtfLTRdLGVbaF1bXy00XV0pLHRbaF1bXy0yXT0uNSoodFtoXVtfLTJdK3lbMF0pLGVbaF1bXy0yXT0uNSooZVtoXVtfLTJdK3lbMV0pfXJldHVyblt0LGVdfX0seyIuLi8uLi9saWIiOjUxNSwiLi9jYXRtdWxsX3JvbSI6NzA4fV0sNzExOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17UkVMQVRJVkVfQ1VMTF9UT0xFUkFOQ0U6MWUtNn19LHt9XSw3MTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZSYmcj9mdW5jdGlvbihlLHIsbixpLGEpe3ZhciBvLHMsbCxjLHUsZjtlfHwoZT1bXSkscio9MyxuKj0zO3ZhciBoPWkqaSxwPTEtaSxkPXAqcCxtPXAqaSoyLGc9LTMqZCx2PTMqKGQtbSkseT0zKihtLWgpLHg9MypoLGI9YSphLF89YiphLHc9MS1hLFQ9dyp3LGs9VCp3O2ZvcihmPTA7Zjx0Lmxlbmd0aDtmKyspbz1nKih1PXRbZl0pW25dW3JdK3YqdVtuXVtyKzFdK3kqdVtuXVtyKzJdK3gqdVtuXVtyKzNdLHM9Zyp1W24rMV1bcl0rdip1W24rMV1bcisxXSt5KnVbbisxXVtyKzJdK3gqdVtuKzFdW3IrM10sbD1nKnVbbisyXVtyXSt2KnVbbisyXVtyKzFdK3kqdVtuKzJdW3IrMl0reCp1W24rMl1bciszXSxjPWcqdVtuKzNdW3JdK3YqdVtuKzNdW3IrMV0reSp1W24rM11bcisyXSt4KnVbbiszXVtyKzNdLGVbZl09aypvKzMqKFQqYSpzK3cqYipsKStfKmM7cmV0dXJuIGV9OmU/ZnVuY3Rpb24oZSxyLG4saSxhKXt2YXIgbyxzLGwsYztlfHwoZT1bXSkscio9Mzt2YXIgdT1pKmksZj0xLWksaD1mKmYscD1mKmkqMixkPS0zKmgsbT0zKihoLXApLGc9MyoocC11KSx2PTMqdSx5PTEtYTtmb3IobD0wO2w8dC5sZW5ndGg7bCsrKW89ZCooYz10W2xdKVtuXVtyXSttKmNbbl1bcisxXStnKmNbbl1bcisyXSt2KmNbbl1bciszXSxzPWQqY1tuKzFdW3JdK20qY1tuKzFdW3IrMV0rZypjW24rMV1bcisyXSt2KmNbbisxXVtyKzNdLGVbbF09eSpvK2EqcztyZXR1cm4gZX06cj9mdW5jdGlvbihlLHIsbixpLGEpe3ZhciBvLHMsbCxjLHUsZjtlfHwoZT1bXSksbio9Mzt2YXIgaD1hKmEscD1oKmEsZD0xLWEsbT1kKmQsZz1tKmQ7Zm9yKHU9MDt1PHQubGVuZ3RoO3UrKylvPShmPXRbdV0pW25dW3IrMV0tZltuXVtyXSxzPWZbbisxXVtyKzFdLWZbbisxXVtyXSxsPWZbbisyXVtyKzFdLWZbbisyXVtyXSxjPWZbbiszXVtyKzFdLWZbbiszXVtyXSxlW3VdPWcqbyszKihtKmEqcytkKmgqbCkrcCpjO3JldHVybiBlfTpmdW5jdGlvbihlLHIsbixpLGEpe3ZhciBvLHMsbCxjO2V8fChlPVtdKTt2YXIgdT0xLWE7Zm9yKGw9MDtsPHQubGVuZ3RoO2wrKylvPShjPXRbbF0pW25dW3IrMV0tY1tuXVtyXSxzPWNbbisxXVtyKzFdLWNbbisxXVtyXSxlW2xdPXUqbythKnM7cmV0dXJuIGV9fX0se31dLDcxMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBlJiZyP2Z1bmN0aW9uKGUscixuLGksYSl7dmFyIG8scyxsLGMsdSxmO2V8fChlPVtdKSxyKj0zLG4qPTM7dmFyIGg9aSppLHA9aCppLGQ9MS1pLG09ZCpkLGc9bSpkLHY9YSphLHk9MS1hLHg9eSp5LGI9eSphKjIsXz0tMyp4LHc9MyooeC1iKSxUPTMqKGItdiksaz0zKnY7Zm9yKGY9MDtmPHQubGVuZ3RoO2YrKylvPV8qKHU9dFtmXSlbbl1bcl0rdyp1W24rMV1bcl0rVCp1W24rMl1bcl0rayp1W24rM11bcl0scz1fKnVbbl1bcisxXSt3KnVbbisxXVtyKzFdK1QqdVtuKzJdW3IrMV0rayp1W24rM11bcisxXSxsPV8qdVtuXVtyKzJdK3cqdVtuKzFdW3IrMl0rVCp1W24rMl1bcisyXStrKnVbbiszXVtyKzJdLGM9Xyp1W25dW3IrM10rdyp1W24rMV1bciszXStUKnVbbisyXVtyKzNdK2sqdVtuKzNdW3IrM10sZVtmXT1nKm8rMyoobSppKnMrZCpoKmwpK3AqYztyZXR1cm4gZX06ZT9mdW5jdGlvbihlLHIsbixpLGEpe3ZhciBvLHMsbCxjLHUsZjtlfHwoZT1bXSkscio9Mzt2YXIgaD1hKmEscD1oKmEsZD0xLWEsbT1kKmQsZz1tKmQ7Zm9yKHU9MDt1PHQubGVuZ3RoO3UrKylvPShmPXRbdV0pW24rMV1bcl0tZltuXVtyXSxzPWZbbisxXVtyKzFdLWZbbl1bcisxXSxsPWZbbisxXVtyKzJdLWZbbl1bcisyXSxjPWZbbisxXVtyKzNdLWZbbl1bciszXSxlW3VdPWcqbyszKihtKmEqcytkKmgqbCkrcCpjO3JldHVybiBlfTpyP2Z1bmN0aW9uKGUscixuLGksYSl7dmFyIG8scyxsLGM7ZXx8KGU9W10pLG4qPTM7dmFyIHU9MS1pLGY9YSphLGg9MS1hLHA9aCpoLGQ9aCphKjIsbT0tMypwLGc9MyoocC1kKSx2PTMqKGQtZikseT0zKmY7Zm9yKGw9MDtsPHQubGVuZ3RoO2wrKylvPW0qKGM9dFtsXSlbbl1bcl0rZypjW24rMV1bcl0rdipjW24rMl1bcl0reSpjW24rM11bcl0scz1tKmNbbl1bcisxXStnKmNbbisxXVtyKzFdK3YqY1tuKzJdW3IrMV0reSpjW24rM11bcisxXSxlW2xdPXUqbytpKnM7cmV0dXJuIGV9OmZ1bmN0aW9uKGUscixuLGksYSl7dmFyIG8scyxsLGM7ZXx8KGU9W10pO3ZhciB1PTEtaTtmb3IobD0wO2w8dC5sZW5ndGg7bCsrKW89KGM9dFtsXSlbbisxXVtyXS1jW25dW3JdLHM9Y1tuKzFdW3IrMV0tY1tuXVtyKzFdLGVbbF09dSpvK2kqcztyZXR1cm4gZX19fSx7fV0sNzE0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuLGkpe3ZhciBhPWUtMixvPXItMjtyZXR1cm4gbiYmaT9mdW5jdGlvbihlLHIsbil7dmFyIGkscyxsLGMsdSxmO2V8fChlPVtdKTt2YXIgaD1NYXRoLm1heCgwLE1hdGgubWluKE1hdGguZmxvb3IociksYSkpLHA9TWF0aC5tYXgoMCxNYXRoLm1pbihNYXRoLmZsb29yKG4pLG8pKSxkPU1hdGgubWF4KDAsTWF0aC5taW4oMSxyLWgpKSxtPU1hdGgubWF4KDAsTWF0aC5taW4oMSxuLXApKTtoKj0zLHAqPTM7dmFyIGc9ZCpkLHY9ZypkLHk9MS1kLHg9eSp5LGI9eCp5LF89bSptLHc9XyptLFQ9MS1tLGs9VCpULEE9aypUO2ZvcihmPTA7Zjx0Lmxlbmd0aDtmKyspaT1iKih1PXRbZl0pW3BdW2hdKzMqKHgqZCp1W3BdW2grMV0reSpnKnVbcF1baCsyXSkrdip1W3BdW2grM10scz1iKnVbcCsxXVtoXSszKih4KmQqdVtwKzFdW2grMV0reSpnKnVbcCsxXVtoKzJdKSt2KnVbcCsxXVtoKzNdLGw9Yip1W3ArMl1baF0rMyooeCpkKnVbcCsyXVtoKzFdK3kqZyp1W3ArMl1baCsyXSkrdip1W3ArMl1baCszXSxjPWIqdVtwKzNdW2hdKzMqKHgqZCp1W3ArM11baCsxXSt5KmcqdVtwKzNdW2grMl0pK3YqdVtwKzNdW2grM10sZVtmXT1BKmkrMyooayptKnMrVCpfKmwpK3cqYztyZXR1cm4gZX06bj9mdW5jdGlvbihlLHIsbil7ZXx8KGU9W10pO3ZhciBpLHMsbCxjLHUsZixoPU1hdGgubWF4KDAsTWF0aC5taW4oTWF0aC5mbG9vcihyKSxhKSkscD1NYXRoLm1heCgwLE1hdGgubWluKE1hdGguZmxvb3IobiksbykpLGQ9TWF0aC5tYXgoMCxNYXRoLm1pbigxLHItaCkpLG09TWF0aC5tYXgoMCxNYXRoLm1pbigxLG4tcCkpO2gqPTM7dmFyIGc9ZCpkLHY9ZypkLHk9MS1kLHg9eSp5LGI9eCp5LF89MS1tO2Zvcih1PTA7dTx0Lmxlbmd0aDt1KyspaT1fKihmPXRbdV0pW3BdW2hdK20qZltwKzFdW2hdLHM9XypmW3BdW2grMV0rbSpmW3ArMV1baCsxXSxsPV8qZltwXVtoKzJdK20qZltwKzFdW2grMV0sYz1fKmZbcF1baCszXSttKmZbcCsxXVtoKzFdLGVbdV09YippKzMqKHgqZCpzK3kqZypsKSt2KmM7cmV0dXJuIGV9Omk/ZnVuY3Rpb24oZSxyLG4pe2V8fChlPVtdKTt2YXIgaSxzLGwsYyx1LGYsaD1NYXRoLm1heCgwLE1hdGgubWluKE1hdGguZmxvb3IociksYSkpLHA9TWF0aC5tYXgoMCxNYXRoLm1pbihNYXRoLmZsb29yKG4pLG8pKSxkPU1hdGgubWF4KDAsTWF0aC5taW4oMSxyLWgpKSxtPU1hdGgubWF4KDAsTWF0aC5taW4oMSxuLXApKTtwKj0zO3ZhciBnPW0qbSx2PWcqbSx5PTEtbSx4PXkqeSxiPXgqeSxfPTEtZDtmb3IodT0wO3U8dC5sZW5ndGg7dSsrKWk9XyooZj10W3VdKVtwXVtoXStkKmZbcF1baCsxXSxzPV8qZltwKzFdW2hdK2QqZltwKzFdW2grMV0sbD1fKmZbcCsyXVtoXStkKmZbcCsyXVtoKzFdLGM9XypmW3ArM11baF0rZCpmW3ArM11baCsxXSxlW3VdPWIqaSszKih4Km0qcyt5KmcqbCkrdipjO3JldHVybiBlfTpmdW5jdGlvbihlLHIsbil7ZXx8KGU9W10pO3ZhciBpLHMsbCxjLHU9TWF0aC5tYXgoMCxNYXRoLm1pbihNYXRoLmZsb29yKHIpLGEpKSxmPU1hdGgubWF4KDAsTWF0aC5taW4oTWF0aC5mbG9vcihuKSxvKSksaD1NYXRoLm1heCgwLE1hdGgubWluKDEsci11KSkscD1NYXRoLm1heCgwLE1hdGgubWluKDEsbi1mKSksZD0xLXAsbT0xLWg7Zm9yKGw9MDtsPHQubGVuZ3RoO2wrKylpPW0qKGM9dFtsXSlbZl1bdV0raCpjW2ZdW3UrMV0scz1tKmNbZisxXVt1XStoKmNbZisxXVt1KzFdLGVbbF09ZCppK3AqcztyZXR1cm4gZX19fSx7fV0sNzE1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi94eV9kZWZhdWx0cyIpLGE9dCgiLi9hYl9kZWZhdWx0cyIpLG89dCgiLi9hdHRyaWJ1dGVzIikscz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbCl7ZnVuY3Rpb24gYyhyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsbyxyLGkpfWUuX2NsaXBQYXRoSWQ9ImNsaXAiK2UudWlkKyJjYXJwZXQiO3ZhciB1PWMoImNvbG9yIixzLmRlZmF1bHRMaW5lKTsobi5jb2VyY2VGb250KGMsImZvbnQiKSxjKCJjYXJwZXQiKSxhKHQsZSxsLGMsdSksZS5hJiZlLmIpPyhlLmEubGVuZ3RoPDMmJihlLmFheGlzLnNtb290aGluZz0wKSxlLmIubGVuZ3RoPDMmJihlLmJheGlzLnNtb290aGluZz0wKSxpKHQsZSxjKXx8KGUudmlzaWJsZT0hMSksZS5fY2hlYXRlciYmYygiY2hlYXRlcnNsb3BlIikpOmUudmlzaWJsZT0hMX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIjozNjYsIi4uLy4uL2xpYiI6NTE1LCIuL2FiX2RlZmF1bHRzIjo2OTgsIi4vYXR0cmlidXRlcyI6NzAwLCIuL3h5X2RlZmF1bHRzIjo3MjR9XSw3MTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXthdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxwbG90OnQoIi4vcGxvdCIpLGNhbGM6dCgiLi9jYWxjIiksYW5pbWF0YWJsZTohMCxpc0NvbnRhaW5lcjohMCxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToiY2FycGV0IixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iKSxjYXRlZ29yaWVzOlsiY2FydGVzaWFuIiwic3ZnIiwiY2FycGV0IiwiY2FycGV0QXhpcyIsIm5vdExlZ2VuZElzb2xhdGFibGUiLCJub011bHRpQ2F0ZWdvcnkiLCJub0hvdmVyIiwibm9Tb3J0aW5nQnlWYWx1ZSJdLG1ldGE6e319fSx7Ii4uLy4uL3Bsb3RzL2NhcnRlc2lhbiI6NTc4LCIuL2F0dHJpYnV0ZXMiOjcwMCwiLi9jYWxjIjo3MDQsIi4vZGVmYXVsdHMiOjcxNSwiLi9wbG90Ijo3MjF9XSw3MTc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByLG49dC5fZnVsbERhdGEubGVuZ3RoLGk9MDtpPG47aSsrKXt2YXIgYT10Ll9mdWxsRGF0YVtpXTtpZihhLmluZGV4IT09ZS5pbmRleCYmKCJjYXJwZXQiPT09YS50eXBlJiYocnx8KHI9YSksYS5jYXJwZXQ9PT1lLmNhcnBldCkpKXJldHVybiBhfXJldHVybiByfX0se31dLDcxODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe2lmKDA9PT10Lmxlbmd0aClyZXR1cm4iIjt2YXIgbixpPVtdLGE9cj8zOjE7Zm9yKG49MDtuPHQubGVuZ3RoO24rPWEpaS5wdXNoKHRbbl0rIiwiK2Vbbl0pLHImJm48dC5sZW5ndGgtYSYmKGkucHVzaCgiQyIpLGkucHVzaChbdFtuKzFdKyIsIitlW24rMV0sdFtuKzJdKyIsIitlW24rMl0rIiAiXS5qb2luKCIgIikpKTtyZXR1cm4gaS5qb2luKHI/IiI6IkwiKX19LHt9XSw3MTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIikuaXNBcnJheU9yVHlwZWRBcnJheTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBpO2ZvcihuKHQpP3QubGVuZ3RoPmUubGVuZ3RoJiYodD10LnNsaWNlKDAsZS5sZW5ndGgpKTp0PVtdLGk9MDtpPGUubGVuZ3RoO2krKyl0W2ldPXIoZVtpXSk7cmV0dXJuIHR9fSx7Ii4uLy4uL2xpYiI6NTE1fV0sNzIwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuLGksYSl7dmFyIG89aVswXSp0LmRwZHgoZSkscz1pWzFdKnQuZHBkeShyKSxsPTEsYz0xO2lmKGEpe3ZhciB1PU1hdGguc3FydChpWzBdKmlbMF0raVsxXSppWzFdKSxmPU1hdGguc3FydChhWzBdKmFbMF0rYVsxXSphWzFdKSxoPShpWzBdKmFbMF0raVsxXSphWzFdKS91L2Y7Yz1NYXRoLm1heCgwLGgpfXZhciBwPTE4MCpNYXRoLmF0YW4yKHMsbykvTWF0aC5QSTtyZXR1cm4gcDwtOTA/KHArPTE4MCxsPS1sKTpwPjkwJiYocC09MTgwLGw9LWwpLHthbmdsZTpwLGZsaXA6bCxwOnQuYzJwKG4sZSxyKSxvZmZzZXRNdWx0cGxpZXI6Y319fSx7fV0sNzIxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLGE9dCgiLi9tYXBfMWRfYXJyYXkiKSxvPXQoIi4vbWFrZXBhdGgiKSxzPXQoIi4vb3JpZW50X3RleHQiKSxsPXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpLGM9dCgiLi4vLi4vbGliIiksdT1jLnN0clJvdGF0ZSxmPWMuc3RyVHJhbnNsYXRlLGg9dCgiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCIpO2Z1bmN0aW9uIHAodCxlLHIscyxsLGMpe3ZhciB1PSJjb25zdC0iK2wrIi1saW5lcyIsZj1yLnNlbGVjdEFsbCgiLiIrdSkuZGF0YShjKTtmLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuY2xhc3NlZCh1LCEwKS5zdHlsZSgidmVjdG9yLWVmZmVjdCIsIm5vbi1zY2FsaW5nLXN0cm9rZSIpLGYuZWFjaCgoZnVuY3Rpb24ocil7dmFyIHM9cixsPXMueCxjPXMueSx1PWEoW10sbCx0LmMycCksZj1hKFtdLGMsZS5jMnApLGg9Ik0iK28odSxmLHMuc21vb3RoaW5nKTtuLnNlbGVjdCh0aGlzKS5hdHRyKCJkIixoKS5zdHlsZSgic3Ryb2tlLXdpZHRoIixzLndpZHRoKS5zdHlsZSgic3Ryb2tlIixzLmNvbG9yKS5zdHlsZSgic3Ryb2tlLWRhc2hhcnJheSIsaS5kYXNoU3R5bGUocy5kYXNoLHMud2lkdGgpKS5zdHlsZSgiZmlsbCIsIm5vbmUiKX0pKSxmLmV4aXQoKS5yZW1vdmUoKX1mdW5jdGlvbiBkKHQsZSxyLGEsbyxjLGgscCl7dmFyIGQ9Yy5zZWxlY3RBbGwoInRleHQuIitwKS5kYXRhKGgpO2QuZW50ZXIoKS5hcHBlbmQoInRleHQiKS5jbGFzc2VkKHAsITApO3ZhciBtPTAsZz17fTtyZXR1cm4gZC5lYWNoKChmdW5jdGlvbihvLGMpe3ZhciBoO2lmKCJhdXRvIj09PW8uYXhpcy50aWNrYW5nbGUpaD1zKGEsZSxyLG8ueHksby5keHkpO2Vsc2V7dmFyIHA9KG8uYXhpcy50aWNrYW5nbGUrMTgwKSpNYXRoLlBJLzE4MDtoPXMoYSxlLHIsby54eSxbTWF0aC5jb3MocCksTWF0aC5zaW4ocCldKX1jfHwoZz17YW5nbGU6aC5hbmdsZSxmbGlwOmguZmxpcH0pO3ZhciBkPShvLmVuZEFuY2hvcj8tMToxKSpoLmZsaXAsdj1uLnNlbGVjdCh0aGlzKS5hdHRyKHsidGV4dC1hbmNob3IiOmQ+MD8ic3RhcnQiOiJlbmQiLCJkYXRhLW5vdGV4IjoxfSkuY2FsbChpLmZvbnQsby5mb250KS50ZXh0KG8udGV4dCkuY2FsbChsLmNvbnZlcnRUb1RzcGFucyx0KSx5PWkuYkJveCh0aGlzKTt2LmF0dHIoInRyYW5zZm9ybSIsZihoLnBbMF0saC5wWzFdKSt1KGguYW5nbGUpK2Yoby5heGlzLmxhYmVscGFkZGluZypkLC4zKnkuaGVpZ2h0KSksbT1NYXRoLm1heChtLHkud2lkdGgrby5heGlzLmxhYmVscGFkZGluZyl9KSksZC5leGl0KCkucmVtb3ZlKCksZy5tYXhFeHRlbnQ9bSxnfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscixpKXt2YXIgbD1lLnhheGlzLHU9ZS55YXhpcyxmPXQuX2Z1bGxMYXlvdXQuX2NsaXBzO2MubWFrZVRyYWNlR3JvdXBzKGksciwidHJhY2UiKS5lYWNoKChmdW5jdGlvbihlKXt2YXIgcj1uLnNlbGVjdCh0aGlzKSxpPWVbMF0saD1pLnRyYWNlLG09aC5hYXhpcyxnPWguYmF4aXMseT1jLmVuc3VyZVNpbmdsZShyLCJnIiwibWlub3JsYXllciIpLHg9Yy5lbnN1cmVTaW5nbGUociwiZyIsIm1ham9ybGF5ZXIiKSxiPWMuZW5zdXJlU2luZ2xlKHIsImciLCJib3VuZGFyeWxheWVyIiksXz1jLmVuc3VyZVNpbmdsZShyLCJnIiwibGFiZWxsYXllciIpO3Iuc3R5bGUoIm9wYWNpdHkiLGgub3BhY2l0eSkscChsLHUseCxtLCJhIixtLl9ncmlkbGluZXMpLHAobCx1LHgsZywiYiIsZy5fZ3JpZGxpbmVzKSxwKGwsdSx5LG0sImEiLG0uX21pbm9yZ3JpZGxpbmVzKSxwKGwsdSx5LGcsImIiLGcuX21pbm9yZ3JpZGxpbmVzKSxwKGwsdSxiLG0sImEtYm91bmRhcnkiLG0uX2JvdW5kYXJ5bGluZXMpLHAobCx1LGIsZywiYi1ib3VuZGFyeSIsZy5fYm91bmRhcnlsaW5lcyk7dmFyIHc9ZCh0LGwsdSxoLGksXyxtLl9sYWJlbHMsImEtbGFiZWwiKSxUPWQodCxsLHUsaCxpLF8sZy5fbGFiZWxzLCJiLWxhYmVsIik7IWZ1bmN0aW9uKHQsZSxyLG4saSxhLG8sbCl7dmFyIHUsZixoLHAsZD1jLmFnZ051bXMoTWF0aC5taW4sbnVsbCxyLmEpLG09Yy5hZ2dOdW1zKE1hdGgubWF4LG51bGwsci5hKSxnPWMuYWdnTnVtcyhNYXRoLm1pbixudWxsLHIuYikseT1jLmFnZ051bXMoTWF0aC5tYXgsbnVsbCxyLmIpO3U9LjUqKGQrbSksZj1nLGg9ci5hYjJ4eSh1LGYsITApLHA9ci5keHlkYV9yb3VnaCh1LGYpLHZvaWQgMD09PW8uYW5nbGUmJmMuZXh0ZW5kRmxhdChvLHMocixpLGEsaCxyLmR4eWRiX3JvdWdoKHUsZikpKTt2KHQsZSxyLG4saCxwLHIuYWF4aXMsaSxhLG8sImEtdGl0bGUiKSx1PWQsZj0uNSooZyt5KSxoPXIuYWIyeHkodSxmLCEwKSxwPXIuZHh5ZGJfcm91Z2godSxmKSx2b2lkIDA9PT1sLmFuZ2xlJiZjLmV4dGVuZEZsYXQobCxzKHIsaSxhLGgsci5keHlkYV9yb3VnaCh1LGYpKSk7dih0LGUscixuLGgscCxyLmJheGlzLGksYSxsLCJiLXRpdGxlIil9KHQsXyxoLGksbCx1LHcsVCksZnVuY3Rpb24odCxlLHIsbixpKXt2YXIgcyxsLHUsZixoPXIuc2VsZWN0KCIjIit0Ll9jbGlwUGF0aElkKTtoLnNpemUoKXx8KGg9ci5hcHBlbmQoImNsaXBQYXRoIikuY2xhc3NlZCgiY2FycGV0Y2xpcCIsITApKTt2YXIgcD1jLmVuc3VyZVNpbmdsZShoLCJwYXRoIiwiY2FycGV0Ym91bmRhcnkiKSxkPWUuY2xpcHNlZ21lbnRzLG09W107Zm9yKGY9MDtmPGQubGVuZ3RoO2YrKylzPWRbZl0sbD1hKFtdLHMueCxuLmMycCksdT1hKFtdLHMueSxpLmMycCksbS5wdXNoKG8obCx1LHMuYmljdWJpYykpO3ZhciBnPSJNIittLmpvaW4oIkwiKSsiWiI7aC5hdHRyKCJpZCIsdC5fY2xpcFBhdGhJZCkscC5hdHRyKCJkIixnKX0oaCxpLGYsbCx1KX0pKX07dmFyIG09aC5MSU5FX1NQQUNJTkcsZz0oMS1oLk1JRF9TSElGVCkvbSsxO2Z1bmN0aW9uIHYodCxlLHIsYSxvLGMsaCxwLGQsdix5KXt2YXIgeD1bXTtoLnRpdGxlLnRleHQmJngucHVzaChoLnRpdGxlLnRleHQpO3ZhciBiPWUuc2VsZWN0QWxsKCJ0ZXh0LiIreSkuZGF0YSh4KSxfPXYubWF4RXh0ZW50O2IuZW50ZXIoKS5hcHBlbmQoInRleHQiKS5jbGFzc2VkKHksITApLGIuZWFjaCgoZnVuY3Rpb24oKXt2YXIgZT1zKHIscCxkLG8sYyk7LTE9PT1bInN0YXJ0IiwiYm90aCJdLmluZGV4T2YoaC5zaG93dGlja2xhYmVscykmJihfPTApO3ZhciBhPWgudGl0bGUuZm9udC5zaXplO18rPWEraC50aXRsZS5vZmZzZXQ7dmFyIHk9KHYuYW5nbGUrKHYuZmxpcDwwPzE4MDowKS1lLmFuZ2xlKzQ1MCklMzYwLHg9eT45MCYmeTwyNzAsYj1uLnNlbGVjdCh0aGlzKTtiLnRleHQoaC50aXRsZS50ZXh0KS5jYWxsKGwuY29udmVydFRvVHNwYW5zLHQpLHgmJihfPSgtbC5saW5lQ291bnQoYikrZykqbSphLV8pLGIuYXR0cigidHJhbnNmb3JtIixmKGUucFswXSxlLnBbMV0pK3UoZS5hbmdsZSkrZigwLF8pKS5hdHRyKCJ0ZXh0LWFuY2hvciIsIm1pZGRsZSIpLmNhbGwoaS5mb250LGgudGl0bGUuZm9udCl9KSksYi5leGl0KCkucmVtb3ZlKCl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6Mzg5LCIuLi8uLi9jb25zdGFudHMvYWxpZ25tZW50Ijo0ODMsIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiOjU0MSwiLi9tYWtlcGF0aCI6NzE4LCIuL21hcF8xZF9hcnJheSI6NzE5LCIuL29yaWVudF90ZXh0Ijo3MjAsIkBwbG90bHkvZDMiOjU4fV0sNzIyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vY29uc3RhbnRzIiksaT10KCIuLi8uLi9saWIvc2VhcmNoIikuZmluZEJpbixhPXQoIi4vY29tcHV0ZV9jb250cm9sX3BvaW50cyIpLG89dCgiLi9jcmVhdGVfc3BsaW5lX2V2YWx1YXRvciIpLHM9dCgiLi9jcmVhdGVfaV9kZXJpdmF0aXZlX2V2YWx1YXRvciIpLGw9dCgiLi9jcmVhdGVfal9kZXJpdmF0aXZlX2V2YWx1YXRvciIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10Ll9hLHI9dC5fYixjPWUubGVuZ3RoLHU9ci5sZW5ndGgsZj10LmFheGlzLGg9dC5iYXhpcyxwPWVbMF0sZD1lW2MtMV0sbT1yWzBdLGc9clt1LTFdLHY9ZVtlLmxlbmd0aC0xXS1lWzBdLHk9cltyLmxlbmd0aC0xXS1yWzBdLHg9dipuLlJFTEFUSVZFX0NVTExfVE9MRVJBTkNFLGI9eSpuLlJFTEFUSVZFX0NVTExfVE9MRVJBTkNFO3AtPXgsZCs9eCxtLT1iLGcrPWIsdC5pc1Zpc2libGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD5wJiZ0PGQmJmU+bSYmZTxnfSx0LmlzT2NjbHVkZWQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdDxwfHx0PmR8fGU8bXx8ZT5nfSx0LnNldFNjYWxlPWZ1bmN0aW9uKCl7dmFyIGU9dC5feCxyPXQuX3ksbj1hKHQuX3hjdHJsLHQuX3ljdHJsLGUscixmLnNtb290aGluZyxoLnNtb290aGluZyk7dC5feGN0cmw9blswXSx0Ll95Y3RybD1uWzFdLHQuZXZhbHh5PW8oW3QuX3hjdHJsLHQuX3ljdHJsXSxjLHUsZi5zbW9vdGhpbmcsaC5zbW9vdGhpbmcpLHQuZHh5ZGk9cyhbdC5feGN0cmwsdC5feWN0cmxdLGYuc21vb3RoaW5nLGguc21vb3RoaW5nKSx0LmR4eWRqPWwoW3QuX3hjdHJsLHQuX3ljdHJsXSxmLnNtb290aGluZyxoLnNtb290aGluZyl9LHQuaTJhPWZ1bmN0aW9uKHQpe3ZhciByPU1hdGgubWF4KDAsTWF0aC5mbG9vcih0WzBdKSxjLTIpLG49dFswXS1yO3JldHVybigxLW4pKmVbcl0rbiplW3IrMV19LHQuajJiPWZ1bmN0aW9uKHQpe3ZhciBlPU1hdGgubWF4KDAsTWF0aC5mbG9vcih0WzFdKSxjLTIpLG49dFsxXS1lO3JldHVybigxLW4pKnJbZV0rbipyW2UrMV19LHQuaWoyYWI9ZnVuY3Rpb24oZSl7cmV0dXJuW3QuaTJhKGVbMF0pLHQuajJiKGVbMV0pXX0sdC5hMmk9ZnVuY3Rpb24odCl7dmFyIHI9TWF0aC5tYXgoMCxNYXRoLm1pbihpKHQsZSksYy0yKSksbj1lW3JdLGE9ZVtyKzFdO3JldHVybiBNYXRoLm1heCgwLE1hdGgubWluKGMtMSxyKyh0LW4pLyhhLW4pKSl9LHQuYjJqPWZ1bmN0aW9uKHQpe3ZhciBlPU1hdGgubWF4KDAsTWF0aC5taW4oaSh0LHIpLHUtMikpLG49cltlXSxhPXJbZSsxXTtyZXR1cm4gTWF0aC5tYXgoMCxNYXRoLm1pbih1LTEsZSsodC1uKS8oYS1uKSkpfSx0LmFiMmlqPWZ1bmN0aW9uKGUpe3JldHVyblt0LmEyaShlWzBdKSx0LmIyaihlWzFdKV19LHQuaTJjPWZ1bmN0aW9uKGUscil7cmV0dXJuIHQuZXZhbHh5KFtdLGUscil9LHQuYWIyeHk9ZnVuY3Rpb24obixpLGEpe2lmKCFhJiYobjxlWzBdfHxuPmVbYy0xXXxpPHJbMF18fGk+clt1LTFdKSlyZXR1cm5bITEsITFdO3ZhciBvPXQuYTJpKG4pLHM9dC5iMmooaSksbD10LmV2YWx4eShbXSxvLHMpO2lmKGEpe3ZhciBmLGgscCxkLG09MCxnPTAsdj1bXTtuPGVbMF0/KGY9MCxoPTAsbT0obi1lWzBdKS8oZVsxXS1lWzBdKSk6bj5lW2MtMV0/KGY9Yy0yLGg9MSxtPShuLWVbYy0xXSkvKGVbYy0xXS1lW2MtMl0pKTpoPW8tKGY9TWF0aC5tYXgoMCxNYXRoLm1pbihjLTIsTWF0aC5mbG9vcihvKSkpKSxpPHJbMF0/KHA9MCxkPTAsZz0oaS1yWzBdKS8oclsxXS1yWzBdKSk6aT5yW3UtMV0/KHA9dS0yLGQ9MSxnPShpLXJbdS0xXSkvKHJbdS0xXS1yW3UtMl0pKTpkPXMtKHA9TWF0aC5tYXgoMCxNYXRoLm1pbih1LTIsTWF0aC5mbG9vcihzKSkpKSxtJiYodC5keHlkaSh2LGYscCxoLGQpLGxbMF0rPXZbMF0qbSxsWzFdKz12WzFdKm0pLGcmJih0LmR4eWRqKHYsZixwLGgsZCksbFswXSs9dlswXSpnLGxbMV0rPXZbMV0qZyl9cmV0dXJuIGx9LHQuYzJwPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm5bZS5jMnAodFswXSksci5jMnAodFsxXSldfSx0LnAyeD1mdW5jdGlvbih0LGUscil7cmV0dXJuW2UucDJjKHRbMF0pLHIucDJjKHRbMV0pXX0sdC5kYWRpPWZ1bmN0aW9uKHQpe3ZhciByPU1hdGgubWF4KDAsTWF0aC5taW4oZS5sZW5ndGgtMix0KSk7cmV0dXJuIGVbcisxXS1lW3JdfSx0LmRiZGo9ZnVuY3Rpb24odCl7dmFyIGU9TWF0aC5tYXgoMCxNYXRoLm1pbihyLmxlbmd0aC0yLHQpKTtyZXR1cm4gcltlKzFdLXJbZV19LHQuZHh5ZGE9ZnVuY3Rpb24oZSxyLG4saSl7dmFyIGE9dC5keHlkaShudWxsLGUscixuLGkpLG89dC5kYWRpKGUsbik7cmV0dXJuW2FbMF0vbyxhWzFdL29dfSx0LmR4eWRiPWZ1bmN0aW9uKGUscixuLGkpe3ZhciBhPXQuZHh5ZGoobnVsbCxlLHIsbixpKSxvPXQuZGJkaihyLGkpO3JldHVyblthWzBdL28sYVsxXS9vXX0sdC5keHlkYV9yb3VnaD1mdW5jdGlvbihlLHIsbil7dmFyIGk9dioobnx8LjEpLGE9dC5hYjJ4eShlK2ksciwhMCksbz10LmFiMnh5KGUtaSxyLCEwKTtyZXR1cm5bLjUqKGFbMF0tb1swXSkvaSwuNSooYVsxXS1vWzFdKS9pXX0sdC5keHlkYl9yb3VnaD1mdW5jdGlvbihlLHIsbil7dmFyIGk9eSoobnx8LjEpLGE9dC5hYjJ4eShlLHIraSwhMCksbz10LmFiMnh5KGUsci1pLCEwKTtyZXR1cm5bLjUqKGFbMF0tb1swXSkvaSwuNSooYVsxXS1vWzFdKS9pXX0sdC5kcGR4PWZ1bmN0aW9uKHQpe3JldHVybiB0Ll9tfSx0LmRwZHk9ZnVuY3Rpb24odCl7cmV0dXJuIHQuX219fX0seyIuLi8uLi9saWIvc2VhcmNoIjo1MzUsIi4vY29tcHV0ZV9jb250cm9sX3BvaW50cyI6NzEwLCIuL2NvbnN0YW50cyI6NzExLCIuL2NyZWF0ZV9pX2Rlcml2YXRpdmVfZXZhbHVhdG9yIjo3MTIsIi4vY3JlYXRlX2pfZGVyaXZhdGl2ZV9ldmFsdWF0b3IiOjcxMywiLi9jcmVhdGVfc3BsaW5lX2V2YWx1YXRvciI6NzE0fV0sNzIzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIGksYSxvLHM9W10sbD1bXSxjPXRbMF0ubGVuZ3RoLHU9dC5sZW5ndGg7ZnVuY3Rpb24gZihlLHIpe3ZhciBuLGk9MCxhPTA7cmV0dXJuIGU+MCYmdm9pZCAwIT09KG49dFtyXVtlLTFdKSYmKGErKyxpKz1uKSxlPGMtMSYmdm9pZCAwIT09KG49dFtyXVtlKzFdKSYmKGErKyxpKz1uKSxyPjAmJnZvaWQgMCE9PShuPXRbci0xXVtlXSkmJihhKyssaSs9bikscjx1LTEmJnZvaWQgMCE9PShuPXRbcisxXVtlXSkmJihhKyssaSs9biksaS9NYXRoLm1heCgxLGEpfXZhciBoLHAsZCxtLGcsdix5LHgsYixfLHcsVD0wO2ZvcihpPTA7aTxjO2krKylmb3IoYT0wO2E8dTthKyspdm9pZCAwPT09dFthXVtpXSYmKHMucHVzaChpKSxsLnB1c2goYSksdFthXVtpXT1mKGksYSkpLFQ9TWF0aC5tYXgoVCxNYXRoLmFicyh0W2FdW2ldKSk7aWYoIXMubGVuZ3RoKXJldHVybiB0O3ZhciBrPTAsQT0wLE09cy5sZW5ndGg7ZG97Zm9yKGs9MCxvPTA7bzxNO28rKyl7aT1zW29dLGE9bFtvXTt2YXIgUyxFLEwsQyxQLEksTz0wLHo9MDswPT09aT8oTD1lW1A9TWF0aC5taW4oYy0xLDIpXSxDPWVbMV0sUz10W2FdW1BdLHorPShFPXRbYV1bMV0pKyhFLVMpKihlWzBdLUMpLyhDLUwpLE8rKyk6aT09PWMtMSYmKEw9ZVtQPU1hdGgubWF4KDAsYy0zKV0sQz1lW2MtMl0sUz10W2FdW1BdLHorPShFPXRbYV1bYy0yXSkrKEUtUykqKGVbYy0xXS1DKS8oQy1MKSxPKyspLCgwPT09aXx8aT09PWMtMSkmJmE+MCYmYTx1LTEmJihoPXJbYSsxXS1yW2FdLHorPSgocD1yW2FdLXJbYS0xXSkqdFthKzFdW2ldK2gqdFthLTFdW2ldKS8ocCtoKSxPKyspLDA9PT1hPyhMPXJbST1NYXRoLm1pbih1LTEsMildLEM9clsxXSxTPXRbSV1baV0seis9KEU9dFsxXVtpXSkrKEUtUykqKHJbMF0tQykvKEMtTCksTysrKTphPT09dS0xJiYoTD1yW0k9TWF0aC5tYXgoMCx1LTMpXSxDPXJbdS0yXSxTPXRbSV1baV0seis9KEU9dFt1LTJdW2ldKSsoRS1TKSooclt1LTFdLUMpLyhDLUwpLE8rKyksKDA9PT1hfHxhPT09dS0xKSYmaT4wJiZpPGMtMSYmKGg9ZVtpKzFdLWVbaV0seis9KChwPWVbaV0tZVtpLTFdKSp0W2FdW2krMV0raCp0W2FdW2ktMV0pLyhwK2gpLE8rKyksTz96Lz1POihkPWVbaSsxXS1lW2ldLG09ZVtpXS1lW2ktMV0seD0oZz1yW2ErMV0tclthXSkqKHY9clthXS1yW2EtMV0pKihnK3YpLHo9KCh5PWQqbSooZCttKSkqKHYqdFthKzFdW2ldK2cqdFthLTFdW2ldKSt4KihtKnRbYV1baSsxXStkKnRbYV1baS0xXSkpLyh4KihtK2QpK3kqKHYrZykpKSxrKz0oXz0oYj16LXRbYV1baV0pL1QpKl8sdz1PPzA6Ljg1LHRbYV1baV0rPWIqKDErdyl9az1NYXRoLnNxcnQoayl9d2hpbGUoQSsrPDEwMCYmaz4xZS01KTtyZXR1cm4gbi5sb2coIlNtb290aGVyIGNvbnZlcmdlZCB0byIsaywiYWZ0ZXIiLEEsIml0ZXJhdGlvbnMiKSx0fX0seyIuLi8uLi9saWIiOjUxNX1dLDcyNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKS5pc0FycmF5MUQ7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgaT1yKCJ4IiksYT1pJiZpLmxlbmd0aCxvPXIoInkiKSxzPW8mJm8ubGVuZ3RoO2lmKCFhJiYhcylyZXR1cm4hMTtpZihlLl9jaGVhdGVyPSFpLGEmJiFuKGkpfHxzJiYhbihvKSllLl9sZW5ndGg9bnVsbDtlbHNle3ZhciBsPWE/aS5sZW5ndGg6MS8wO3MmJihsPU1hdGgubWluKGwsby5sZW5ndGgpKSxlLmEmJmUuYS5sZW5ndGgmJihsPU1hdGgubWluKGwsZS5hLmxlbmd0aCkpLGUuYiYmZS5iLmxlbmd0aCYmKGw9TWF0aC5taW4obCxlLmIubGVuZ3RoKSksZS5fbGVuZ3RoPWx9cmV0dXJuITB9fSx7Ii4uLy4uL2xpYiI6NTE1fV0sNzI1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS5ob3ZlcnRlbXBsYXRlQXR0cnMsaT10KCIuLi9zY2F0dGVyZ2VvL2F0dHJpYnV0ZXMiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIiksbz10KCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIikscz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yL2F0dHJpYnV0ZXMiKS5kZWZhdWx0TGluZSxsPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LGM9aS5tYXJrZXIubGluZTtlLmV4cG9ydHM9bCh7bG9jYXRpb25zOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LGxvY2F0aW9ubW9kZTppLmxvY2F0aW9ubW9kZSx6Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LGdlb2pzb246bCh7fSxpLmdlb2pzb24se30pLGZlYXR1cmVpZGtleTppLmZlYXR1cmVpZGtleSx0ZXh0Omwoe30saS50ZXh0LHt9KSxob3ZlcnRleHQ6bCh7fSxpLmhvdmVydGV4dCx7fSksbWFya2VyOntsaW5lOntjb2xvcjpsKHt9LGMuY29sb3Ise2RmbHQ6c30pLHdpZHRoOmwoe30sYy53aWR0aCx7ZGZsdDoxfSksZWRpdFR5cGU6ImNhbGMifSxvcGFjaXR5Ont2YWxUeXBlOiJudW1iZXIiLGFycmF5T2s6ITAsbWluOjAsbWF4OjEsZGZsdDoxLGVkaXRUeXBlOiJzdHlsZSJ9LGVkaXRUeXBlOiJjYWxjIn0sc2VsZWN0ZWQ6e21hcmtlcjp7b3BhY2l0eTppLnNlbGVjdGVkLm1hcmtlci5vcGFjaXR5LGVkaXRUeXBlOiJwbG90In0sZWRpdFR5cGU6InBsb3QifSx1bnNlbGVjdGVkOnttYXJrZXI6e29wYWNpdHk6aS51bnNlbGVjdGVkLm1hcmtlci5vcGFjaXR5LGVkaXRUeXBlOiJwbG90In0sZWRpdFR5cGU6InBsb3QifSxob3ZlcmluZm86bCh7fSxvLmhvdmVyaW5mbyx7ZWRpdFR5cGU6ImNhbGMiLGZsYWdzOlsibG9jYXRpb24iLCJ6IiwidGV4dCIsIm5hbWUiXX0pLGhvdmVydGVtcGxhdGU6bigpLHNob3dsZWdlbmQ6bCh7fSxvLnNob3dsZWdlbmQse2RmbHQ6ITF9KX0sYSgiIix7Y0xldHRlcjoieiIsZWRpdFR5cGVPdmVycmlkZToiY2FsYyJ9KSl9LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIjozNjYsIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjozNzQsIi4uLy4uL2xpYi9leHRlbmQiOjUwNSwiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyI6NTYyLCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo2NDIsIi4uL3NjYXR0ZXJnZW8vYXR0cmlidXRlcyI6OTc4fV0sNzI2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksaT10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQkFETlVNLGE9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2NhbGMiKSxvPXQoIi4uL3NjYXR0ZXIvYXJyYXlzX3RvX2NhbGNkYXRhIikscz10KCIuLi9zY2F0dGVyL2NhbGNfc2VsZWN0aW9uIik7ZnVuY3Rpb24gbCh0KXtyZXR1cm4gdCYmInN0cmluZyI9PXR5cGVvZiB0fWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLGM9ZS5fbGVuZ3RoLHU9bmV3IEFycmF5KGMpO3I9ZS5nZW9qc29uP2Z1bmN0aW9uKHQpe3JldHVybiBsKHQpfHxuKHQpfTpsO2Zvcih2YXIgZj0wO2Y8YztmKyspe3ZhciBoPXVbZl09e30scD1lLmxvY2F0aW9uc1tmXSxkPWUueltmXTtyKHApJiZuKGQpPyhoLmxvYz1wLGguej1kKTooaC5sb2M9bnVsbCxoLno9aSksaC5pbmRleD1mfXJldHVybiBvKHUsZSksYSh0LGUse3ZhbHM6ZS56LGNvbnRhaW5lclN0cjoiIixjTGV0dGVyOiJ6In0pLHModSxlKSx1fX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvY2FsYyI6Mzc1LCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo0OTEsIi4uL3NjYXR0ZXIvYXJyYXlzX3RvX2NhbGNkYXRhIjo5MzUsIi4uL3NjYXR0ZXIvY2FsY19zZWxlY3Rpb24iOjkzOCwiZmFzdC1pc251bWVyaWMiOjE5MH1dLDcyNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9kZWZhdWx0cyIpLGE9dCgiLi9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG8pe2Z1bmN0aW9uIHMocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLGEscixpKX12YXIgbD1zKCJsb2NhdGlvbnMiKSxjPXMoInoiKTtpZihsJiZsLmxlbmd0aCYmbi5pc0FycmF5T3JUeXBlZEFycmF5KGMpJiZjLmxlbmd0aCl7ZS5fbGVuZ3RoPU1hdGgubWluKGwubGVuZ3RoLGMubGVuZ3RoKTt2YXIgdSxmPXMoImdlb2pzb24iKTsoInN0cmluZyI9PXR5cGVvZiBmJiYiIiE9PWZ8fG4uaXNQbGFpbk9iamVjdChmKSkmJih1PSJnZW9qc29uLWlkIiksImdlb2pzb24taWQiPT09cygibG9jYXRpb25tb2RlIix1KSYmcygiZmVhdHVyZWlka2V5IikscygidGV4dCIpLHMoImhvdmVydGV4dCIpLHMoImhvdmVydGVtcGxhdGUiKSxzKCJtYXJrZXIubGluZS53aWR0aCIpJiZzKCJtYXJrZXIubGluZS5jb2xvciIpLHMoIm1hcmtlci5vcGFjaXR5IiksaSh0LGUsbyxzLHtwcmVmaXg6IiIsY0xldHRlcjoieiJ9KSxuLmNvZXJjZVNlbGVjdGlvbk1hcmtlck9wYWNpdHkoZSxzKX1lbHNlIGUudmlzaWJsZT0hMX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2RlZmF1bHRzIjozNzcsIi4uLy4uL2xpYiI6NTE1LCIuL2F0dHJpYnV0ZXMiOjcyNX1dLDcyODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbixpKXt0LmxvY2F0aW9uPWUubG9jYXRpb24sdC56PWUuejt2YXIgYT1uW2ldO3JldHVybiBhLmZJbiYmYS5mSW4ucHJvcGVydGllcyYmKHQucHJvcGVydGllcz1hLmZJbi5wcm9wZXJ0aWVzKSx0LmN0PWEuY3QsdH19LHt9XSw3Mjk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxpPXQoIi4vYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vbGliIikuZmlsbFRleHQ7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbyxzLGwsYyx1PXQuY2QsZj11WzBdLnRyYWNlLGg9dC5zdWJwbG90LHA9W2Uscl0sZD1bZSszNjAscl07Zm9yKHM9MDtzPHUubGVuZ3RoO3MrKylpZihjPSExLChvPXVbc10pLl9wb2x5Z29ucyl7Zm9yKGw9MDtsPG8uX3BvbHlnb25zLmxlbmd0aDtsKyspby5fcG9seWdvbnNbbF0uY29udGFpbnMocCkmJihjPSFjKSxvLl9wb2x5Z29uc1tsXS5jb250YWlucyhkKSYmKGM9IWMpO2lmKGMpYnJlYWt9aWYoYyYmbylyZXR1cm4gdC54MD10LngxPXQueGEuYzJwKG8uY3QpLHQueTA9dC55MT10LnlhLmMycChvLmN0KSx0LmluZGV4PW8uaW5kZXgsdC5sb2NhdGlvbj1vLmxvYyx0Lno9by56LHQuekxhYmVsPW4udGlja1RleHQoaC5tb2NrQXhpcyxoLm1vY2tBeGlzLmMybChvLnopLCJob3ZlciIpLnRleHQsdC5ob3ZlcnRlbXBsYXRlPW8uaG92ZXJ0ZW1wbGF0ZSxmdW5jdGlvbih0LGUscil7aWYoZS5ob3ZlcnRlbXBsYXRlKXJldHVybjt2YXIgbj1yLmhpfHxlLmhvdmVyaW5mbyxvPVN0cmluZyhyLmxvYykscz0iYWxsIj09PW4/aS5ob3ZlcmluZm8uZmxhZ3M6bi5zcGxpdCgiKyIpLGw9LTEhPT1zLmluZGV4T2YoIm5hbWUiKSxjPS0xIT09cy5pbmRleE9mKCJsb2NhdGlvbiIpLHU9LTEhPT1zLmluZGV4T2YoInoiKSxmPS0xIT09cy5pbmRleE9mKCJ0ZXh0IiksaD1bXTshbCYmYz90Lm5hbWVPdmVycmlkZT1vOihsJiYodC5uYW1lT3ZlcnJpZGU9ZS5uYW1lKSxjJiZoLnB1c2gobykpO3UmJmgucHVzaCh0LnpMYWJlbCk7ZiYmYShyLGUsaCk7dC5leHRyYVRleHQ9aC5qb2luKCI8YnI+Iil9KHQsZixvKSxbdF19fSx7Ii4uLy4uL2xpYiI6NTE1LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NTY2LCIuL2F0dHJpYnV0ZXMiOjcyNX1dLDczMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2F0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNvbG9yYmFyOnQoIi4uL2hlYXRtYXAvY29sb3JiYXIiKSxjYWxjOnQoIi4vY2FsYyIpLGNhbGNHZW9KU09OOnQoIi4vcGxvdCIpLmNhbGNHZW9KU09OLHBsb3Q6dCgiLi9wbG90IikucGxvdCxzdHlsZTp0KCIuL3N0eWxlIikuc3R5bGUsc3R5bGVPblNlbGVjdDp0KCIuL3N0eWxlIikuc3R5bGVPblNlbGVjdCxob3ZlclBvaW50czp0KCIuL2hvdmVyIiksZXZlbnREYXRhOnQoIi4vZXZlbnRfZGF0YSIpLHNlbGVjdFBvaW50czp0KCIuL3NlbGVjdCIpLG1vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJjaG9yb3BsZXRoIixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9nZW8iKSxjYXRlZ29yaWVzOlsiZ2VvIiwibm9PcGFjaXR5Iiwic2hvd0xlZ2VuZCJdLG1ldGE6e319fSx7Ii4uLy4uL3Bsb3RzL2dlbyI6NTk4LCIuLi9oZWF0bWFwL2NvbG9yYmFyIjo4MDQsIi4vYXR0cmlidXRlcyI6NzI1LCIuL2NhbGMiOjcyNiwiLi9kZWZhdWx0cyI6NzI3LCIuL2V2ZW50X2RhdGEiOjcyOCwiLi9ob3ZlciI6NzI5LCIuL3Bsb3QiOjczMSwiLi9zZWxlY3QiOjczMiwiLi9zdHlsZSI6NzMzfV0sNzMxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vLi4vbGliL2dlb19sb2NhdGlvbl91dGlscyIpLG89dCgiLi4vLi4vbGliL3RvcG9qc29uX3V0aWxzIikuZ2V0VG9wb2pzb25GZWF0dXJlcyxzPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9hdXRvcmFuZ2UiKS5maW5kRXh0cmVtZXMsbD10KCIuL3N0eWxlIikuc3R5bGU7ZS5leHBvcnRzPXtjYWxjR2VvSlNPTjpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10WzBdLnRyYWNlLG49ZVtyLmdlb10saT1uLl9zdWJwbG90LGw9ci5sb2NhdGlvbm1vZGUsYz1yLl9sZW5ndGgsdT0iZ2VvanNvbi1pZCI9PT1sP2EuZXh0cmFjdFRyYWNlRmVhdHVyZSh0KTpvKHIsaS50b3BvanNvbiksZj1bXSxoPVtdLHA9MDtwPGM7cCsrKXt2YXIgZD10W3BdLG09Imdlb2pzb24taWQiPT09bD9kLmZPdXQ6YS5sb2NhdGlvblRvRmVhdHVyZShsLGQubG9jLHUpO2lmKG0pe2QuZ2VvanNvbj1tLGQuY3Q9bS5wcm9wZXJ0aWVzLmN0LGQuX3BvbHlnb25zPWEuZmVhdHVyZTJwb2x5Z29ucyhtKTt2YXIgZz1hLmNvbXB1dGVCYm94KG0pO2YucHVzaChnWzBdLGdbMl0pLGgucHVzaChnWzFdLGdbM10pfWVsc2UgZC5nZW9qc29uPW51bGx9aWYoImdlb2pzb24iPT09bi5maXRib3VuZHMmJiJnZW9qc29uLWlkIj09PWwpe3ZhciB2PWEuY29tcHV0ZUJib3goYS5nZXRUcmFjZUdlb2pzb24ocikpO2Y9W3ZbMF0sdlsyXV0saD1bdlsxXSx2WzNdXX12YXIgeT17cGFkZGVkOiEwfTtyLl9leHRyZW1lcy5sb249cyhuLmxvbmF4aXMuX2F4LGYseSksci5fZXh0cmVtZXMubGF0PXMobi5sYXRheGlzLl9heCxoLHkpfSxwbG90OmZ1bmN0aW9uKHQsZSxyKXt2YXIgYT1lLmxheWVycy5iYWNrcGxvdC5zZWxlY3QoIi5jaG9yb3BsZXRobGF5ZXIiKTtpLm1ha2VUcmFjZUdyb3VwcyhhLHIsInRyYWNlIGNob3JvcGxldGgiKS5lYWNoKChmdW5jdGlvbihlKXt2YXIgcj1uLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoInBhdGguY2hvcm9wbGV0aGxvY2F0aW9uIikuZGF0YShpLmlkZW50aXR5KTtyLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuY2xhc3NlZCgiY2hvcm9wbGV0aGxvY2F0aW9uIiwhMCksci5leGl0KCkucmVtb3ZlKCksbCh0LGUpfSkpfX19LHsiLi4vLi4vbGliIjo1MTUsIi4uLy4uL2xpYi9nZW9fbG9jYXRpb25fdXRpbHMiOjUwOCwiLi4vLi4vbGliL3RvcG9qc29uX3V0aWxzIjo1NDQsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9hdXRvcmFuZ2UiOjU2NSwiLi9zdHlsZSI6NzMzLCJAcGxvdGx5L2QzIjo1OH1dLDczMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixuLGksYSxvLHM9dC5jZCxsPXQueGF4aXMsYz10LnlheGlzLHU9W107aWYoITE9PT1lKWZvcihyPTA7cjxzLmxlbmd0aDtyKyspc1tyXS5zZWxlY3RlZD0wO2Vsc2UgZm9yKHI9MDtyPHMubGVuZ3RoO3IrKykoaT0obj1zW3JdKS5jdCkmJihhPWwuYzJwKGkpLG89Yy5jMnAoaSksZS5jb250YWlucyhbYSxvXSxudWxsLHIsdCk/KHUucHVzaCh7cG9pbnROdW1iZXI6cixsb246aVswXSxsYXQ6aVsxXX0pLG4uc2VsZWN0ZWQ9MSk6bi5zZWxlY3RlZD0wKTtyZXR1cm4gdX19LHt9XSw3MzM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLGE9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIiksbz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiKTtmdW5jdGlvbiBzKHQsZSl7dmFyIHI9ZVswXS50cmFjZSxzPWVbMF0ubm9kZTMuc2VsZWN0QWxsKCIuY2hvcm9wbGV0aGxvY2F0aW9uIiksbD1yLm1hcmtlcnx8e30sYz1sLmxpbmV8fHt9LHU9by5tYWtlQ29sb3JTY2FsZUZ1bmNGcm9tVHJhY2Uocik7cy5lYWNoKChmdW5jdGlvbih0KXtuLnNlbGVjdCh0aGlzKS5hdHRyKCJmaWxsIix1KHQueikpLmNhbGwoaS5zdHJva2UsdC5tbGN8fGMuY29sb3IpLmNhbGwoYS5kYXNoTGluZSwiIix0Lm1sd3x8Yy53aWR0aHx8MCkuc3R5bGUoIm9wYWNpdHkiLGwub3BhY2l0eSl9KSksYS5zZWxlY3RlZFBvaW50U3R5bGUocyxyLHQpfWUuZXhwb3J0cz17c3R5bGU6ZnVuY3Rpb24odCxlKXtlJiZzKHQsZSl9LHN0eWxlT25TZWxlY3Q6ZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLm5vZGUzLG49ZVswXS50cmFjZTtuLnNlbGVjdGVkcG9pbnRzP2Euc2VsZWN0ZWRQb2ludFN0eWxlKHIuc2VsZWN0QWxsKCIuY2hvcm9wbGV0aGxvY2F0aW9uIiksbix0KTpzKHQsZSl9fX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjozNjcsIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSI6Mzc5LCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjM4OSwiQHBsb3RseS9kMyI6NTh9XSw3MzQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vY2hvcm9wbGV0aC9hdHRyaWJ1dGVzIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxvPXQoIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiKSxzPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0O2UuZXhwb3J0cz1zKHtsb2NhdGlvbnM6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sejp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxnZW9qc29uOnt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJjYWxjIn0sZmVhdHVyZWlka2V5OnMoe30sbi5mZWF0dXJlaWRrZXkse30pLGJlbG93Ont2YWxUeXBlOiJzdHJpbmciLGVkaXRUeXBlOiJwbG90In0sdGV4dDpuLnRleHQsaG92ZXJ0ZXh0Om4uaG92ZXJ0ZXh0LG1hcmtlcjp7bGluZTp7Y29sb3I6cyh7fSxuLm1hcmtlci5saW5lLmNvbG9yLHtlZGl0VHlwZToicGxvdCJ9KSx3aWR0aDpzKHt9LG4ubWFya2VyLmxpbmUud2lkdGgse2VkaXRUeXBlOiJwbG90In0pLGVkaXRUeXBlOiJjYWxjIn0sb3BhY2l0eTpzKHt9LG4ubWFya2VyLm9wYWNpdHkse2VkaXRUeXBlOiJwbG90In0pLGVkaXRUeXBlOiJjYWxjIn0sc2VsZWN0ZWQ6e21hcmtlcjp7b3BhY2l0eTpzKHt9LG4uc2VsZWN0ZWQubWFya2VyLm9wYWNpdHkse2VkaXRUeXBlOiJwbG90In0pLGVkaXRUeXBlOiJwbG90In0sZWRpdFR5cGU6InBsb3QifSx1bnNlbGVjdGVkOnttYXJrZXI6e29wYWNpdHk6cyh7fSxuLnVuc2VsZWN0ZWQubWFya2VyLm9wYWNpdHkse2VkaXRUeXBlOiJwbG90In0pLGVkaXRUeXBlOiJwbG90In0sZWRpdFR5cGU6InBsb3QifSxob3ZlcmluZm86bi5ob3ZlcmluZm8saG92ZXJ0ZW1wbGF0ZTphKHt9LHtrZXlzOlsicHJvcGVydGllcyJdfSksc2hvd2xlZ2VuZDpzKHt9LG8uc2hvd2xlZ2VuZCx7ZGZsdDohMX0pfSxpKCIiLHtjTGV0dGVyOiJ6IixlZGl0VHlwZU92ZXJyaWRlOiJjYWxjIn0pKX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6Mzc0LCIuLi8uLi9saWIvZXh0ZW5kIjo1MDUsIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiOjU2MiwiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyI6NjQyLCIuLi9jaG9yb3BsZXRoL2F0dHJpYnV0ZXMiOjcyNX1dLDczNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiKSxvPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLHM9dCgiLi4vLi4vbGliL2dlb2pzb25fdXRpbHMiKS5tYWtlQmxhbmssbD10KCIuLi8uLi9saWIvZ2VvX2xvY2F0aW9uX3V0aWxzIik7ZnVuY3Rpb24gYyh0KXt2YXIgZSxyPXRbMF0udHJhY2Usbj1yLl9vcHRzO2lmKHIuc2VsZWN0ZWRwb2ludHMpe2Zvcih2YXIgYT1vLm1ha2VTZWxlY3RlZFBvaW50U3R5bGVGbnMocikscz0wO3M8dC5sZW5ndGg7cysrKXt2YXIgbD10W3NdO2wuZk91dCYmKGwuZk91dC5wcm9wZXJ0aWVzLm1vMj1hLnNlbGVjdGVkT3BhY2l0eUZuKGwpKX1lPXt0eXBlOiJpZGVudGl0eSIscHJvcGVydHk6Im1vMiJ9fWVsc2UgZT1pLmlzQXJyYXlPclR5cGVkQXJyYXkoci5tYXJrZXIub3BhY2l0eSk/e3R5cGU6ImlkZW50aXR5Iixwcm9wZXJ0eToibW8ifTpyLm1hcmtlci5vcGFjaXR5O3JldHVybiBpLmV4dGVuZEZsYXQobi5maWxsLnBhaW50LHsiZmlsbC1vcGFjaXR5IjplfSksaS5leHRlbmRGbGF0KG4ubGluZS5wYWludCx7ImxpbmUtb3BhY2l0eSI6ZX0pLG59ZS5leHBvcnRzPXtjb252ZXJ0OmZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0udHJhY2Uscj0hMD09PWUudmlzaWJsZSYmMCE9PWUuX2xlbmd0aCxvPXtsYXlvdXQ6e3Zpc2liaWxpdHk6Im5vbmUifSxwYWludDp7fX0sdT17bGF5b3V0Ont2aXNpYmlsaXR5OiJub25lIn0scGFpbnQ6e319LGY9ZS5fb3B0cz17ZmlsbDpvLGxpbmU6dSxnZW9qc29uOnMoKX07aWYoIXIpcmV0dXJuIGY7dmFyIGg9bC5leHRyYWN0VHJhY2VGZWF0dXJlKHQpO2lmKCFoKXJldHVybiBmO3ZhciBwLGQsbSxnPWEubWFrZUNvbG9yU2NhbGVGdW5jRnJvbVRyYWNlKGUpLHY9ZS5tYXJrZXIseT12LmxpbmV8fHt9O2kuaXNBcnJheU9yVHlwZWRBcnJheSh2Lm9wYWNpdHkpJiYocD1mdW5jdGlvbih0KXt2YXIgZT10Lm1vO3JldHVybiBuKGUpPytpLmNvbnN0cmFpbihlLDAsMSk6MH0pLGkuaXNBcnJheU9yVHlwZWRBcnJheSh5LmNvbG9yKSYmKGQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQubWxjfSksaS5pc0FycmF5T3JUeXBlZEFycmF5KHkud2lkdGgpJiYobT1mdW5jdGlvbih0KXtyZXR1cm4gdC5tbHd9KTtmb3IodmFyIHg9MDt4PHQubGVuZ3RoO3grKyl7dmFyIGI9dFt4XSxfPWIuZk91dDtpZihfKXt2YXIgdz1fLnByb3BlcnRpZXM7dy5mYz1nKGIueikscCYmKHcubW89cChiKSksZCYmKHcubWxjPWQoYikpLG0mJih3Lm1sdz1tKGIpKSxiLmN0PXcuY3QsYi5fcG9seWdvbnM9bC5mZWF0dXJlMnBvbHlnb25zKF8pfX12YXIgVD1wP3t0eXBlOiJpZGVudGl0eSIscHJvcGVydHk6Im1vIn06di5vcGFjaXR5O3JldHVybiBpLmV4dGVuZEZsYXQoby5wYWludCx7ImZpbGwtY29sb3IiOnt0eXBlOiJpZGVudGl0eSIscHJvcGVydHk6ImZjIn0sImZpbGwtb3BhY2l0eSI6VH0pLGkuZXh0ZW5kRmxhdCh1LnBhaW50LHsibGluZS1jb2xvciI6ZD97dHlwZToiaWRlbnRpdHkiLHByb3BlcnR5OiJtbGMifTp5LmNvbG9yLCJsaW5lLXdpZHRoIjptP3t0eXBlOiJpZGVudGl0eSIscHJvcGVydHk6Im1sdyJ9Onkud2lkdGgsImxpbmUtb3BhY2l0eSI6VH0pLG8ubGF5b3V0LnZpc2liaWxpdHk9InZpc2libGUiLHUubGF5b3V0LnZpc2liaWxpdHk9InZpc2libGUiLGYuZ2VvanNvbj17dHlwZToiRmVhdHVyZUNvbGxlY3Rpb24iLGZlYXR1cmVzOmh9LGModCksZn0sY29udmVydE9uU2VsZWN0OmN9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSI6Mzc5LCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjM4OSwiLi4vLi4vbGliIjo1MTUsIi4uLy4uL2xpYi9nZW9fbG9jYXRpb25fdXRpbHMiOjUwOCwiLi4vLi4vbGliL2dlb2pzb25fdXRpbHMiOjUwOSwiZmFzdC1pc251bWVyaWMiOjE5MH1dLDczNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9kZWZhdWx0cyIpLGE9dCgiLi9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG8pe2Z1bmN0aW9uIHMocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLGEscixpKX12YXIgbD1zKCJsb2NhdGlvbnMiKSxjPXMoInoiKSx1PXMoImdlb2pzb24iKTtuLmlzQXJyYXlPclR5cGVkQXJyYXkobCkmJmwubGVuZ3RoJiZuLmlzQXJyYXlPclR5cGVkQXJyYXkoYykmJmMubGVuZ3RoJiYoInN0cmluZyI9PXR5cGVvZiB1JiYiIiE9PXV8fG4uaXNQbGFpbk9iamVjdCh1KSk/KHMoImZlYXR1cmVpZGtleSIpLGUuX2xlbmd0aD1NYXRoLm1pbihsLmxlbmd0aCxjLmxlbmd0aCkscygiYmVsb3ciKSxzKCJ0ZXh0IikscygiaG92ZXJ0ZXh0IikscygiaG92ZXJ0ZW1wbGF0ZSIpLHMoIm1hcmtlci5saW5lLndpZHRoIikmJnMoIm1hcmtlci5saW5lLmNvbG9yIikscygibWFya2VyLm9wYWNpdHkiKSxpKHQsZSxvLHMse3ByZWZpeDoiIixjTGV0dGVyOiJ6In0pLG4uY29lcmNlU2VsZWN0aW9uTWFya2VyT3BhY2l0eShlLHMpKTplLnZpc2libGU9ITF9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9kZWZhdWx0cyI6Mzc3LCIuLi8uLi9saWIiOjUxNSwiLi9hdHRyaWJ1dGVzIjo3MzR9XSw3Mzc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXthdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxjb2xvcmJhcjp0KCIuLi9oZWF0bWFwL2NvbG9yYmFyIiksY2FsYzp0KCIuLi9jaG9yb3BsZXRoL2NhbGMiKSxwbG90OnQoIi4vcGxvdCIpLGhvdmVyUG9pbnRzOnQoIi4uL2Nob3JvcGxldGgvaG92ZXIiKSxldmVudERhdGE6dCgiLi4vY2hvcm9wbGV0aC9ldmVudF9kYXRhIiksc2VsZWN0UG9pbnRzOnQoIi4uL2Nob3JvcGxldGgvc2VsZWN0Iiksc3R5bGVPblNlbGVjdDpmdW5jdGlvbih0LGUpe2UmJmVbMF0udHJhY2UuX2dsVHJhY2UudXBkYXRlT25TZWxlY3QoZSl9LGdldEJlbG93OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPWUuZ2V0TWFwTGF5ZXJzKCksbj1yLmxlbmd0aC0yO24+PTA7bi0tKXt2YXIgaT1yW25dLmlkO2lmKCJzdHJpbmciPT10eXBlb2YgaSYmMD09PWkuaW5kZXhPZigid2F0ZXIiKSlmb3IodmFyIGE9bisxO2E8ci5sZW5ndGg7YSsrKWlmKCJzdHJpbmciPT10eXBlb2YoaT1yW2FdLmlkKSYmLTE9PT1pLmluZGV4T2YoInBsb3RseS0iKSlyZXR1cm4gaX19LG1vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJjaG9yb3BsZXRobWFwYm94IixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9tYXBib3giKSxjYXRlZ29yaWVzOlsibWFwYm94IiwiZ2wiLCJub09wYWNpdHkiLCJzaG93TGVnZW5kIl0sbWV0YTp7aHJfbmFtZToiY2hvcm9wbGV0aF9tYXBib3gifX19LHsiLi4vLi4vcGxvdHMvbWFwYm94Ijo2MjIsIi4uL2Nob3JvcGxldGgvY2FsYyI6NzI2LCIuLi9jaG9yb3BsZXRoL2V2ZW50X2RhdGEiOjcyOCwiLi4vY2hvcm9wbGV0aC9ob3ZlciI6NzI5LCIuLi9jaG9yb3BsZXRoL3NlbGVjdCI6NzMyLCIuLi9oZWF0bWFwL2NvbG9yYmFyIjo4MDQsIi4vYXR0cmlidXRlcyI6NzM0LCIuL2RlZmF1bHRzIjo3MzYsIi4vcGxvdCI6NzM4fV0sNzM4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vY29udmVydCIpLmNvbnZlcnQsaT10KCIuL2NvbnZlcnQiKS5jb252ZXJ0T25TZWxlY3QsYT10KCIuLi8uLi9wbG90cy9tYXBib3gvY29uc3RhbnRzIikudHJhY2VMYXllclByZWZpeDtmdW5jdGlvbiBvKHQsZSl7dGhpcy50eXBlPSJjaG9yb3BsZXRobWFwYm94Iix0aGlzLnN1YnBsb3Q9dCx0aGlzLnVpZD1lLHRoaXMuc291cmNlSWQ9InNvdXJjZS0iK2UsdGhpcy5sYXllckxpc3Q9W1siZmlsbCIsYStlKyItZmlsbCJdLFsibGluZSIsYStlKyItbGluZSJdXSx0aGlzLmJlbG93PW51bGx9dmFyIHM9by5wcm90b3R5cGU7cy51cGRhdGU9ZnVuY3Rpb24odCl7dGhpcy5fdXBkYXRlKG4odCkpfSxzLnVwZGF0ZU9uU2VsZWN0PWZ1bmN0aW9uKHQpe3RoaXMuX3VwZGF0ZShpKHQpKX0scy5fdXBkYXRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuc3VicGxvdCxyPXRoaXMubGF5ZXJMaXN0LG49ZS5iZWxvd0xvb2t1cFsidHJhY2UtIit0aGlzLnVpZF07ZS5tYXAuZ2V0U291cmNlKHRoaXMuc291cmNlSWQpLnNldERhdGEodC5nZW9qc29uKSxuIT09dGhpcy5iZWxvdyYmKHRoaXMuX3JlbW92ZUxheWVycygpLHRoaXMuX2FkZExheWVycyh0LG4pLHRoaXMuYmVsb3c9bik7Zm9yKHZhciBpPTA7aTxyLmxlbmd0aDtpKyspe3ZhciBhPXJbaV0sbz1hWzBdLHM9YVsxXSxsPXRbb107ZS5zZXRPcHRpb25zKHMsInNldExheW91dFByb3BlcnR5IixsLmxheW91dCksInZpc2libGUiPT09bC5sYXlvdXQudmlzaWJpbGl0eSYmZS5zZXRPcHRpb25zKHMsInNldFBhaW50UHJvcGVydHkiLGwucGFpbnQpfX0scy5fYWRkTGF5ZXJzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXRoaXMuc3VicGxvdCxuPXRoaXMubGF5ZXJMaXN0LGk9dGhpcy5zb3VyY2VJZCxhPTA7YTxuLmxlbmd0aDthKyspe3ZhciBvPW5bYV0scz1vWzBdLGw9dFtzXTtyLmFkZExheWVyKHt0eXBlOnMsaWQ6b1sxXSxzb3VyY2U6aSxsYXlvdXQ6bC5sYXlvdXQscGFpbnQ6bC5wYWludH0sZSl9fSxzLl9yZW1vdmVMYXllcnM9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5zdWJwbG90Lm1hcCxlPXRoaXMubGF5ZXJMaXN0LHI9ZS5sZW5ndGgtMTtyPj0wO3ItLSl0LnJlbW92ZUxheWVyKGVbcl1bMV0pfSxzLmRpc3Bvc2U9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnN1YnBsb3QubWFwO3RoaXMuX3JlbW92ZUxheWVycygpLHQucmVtb3ZlU291cmNlKHRoaXMuc291cmNlSWQpfSxlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLnRyYWNlLGk9bmV3IG8odCxyLnVpZCksYT1pLnNvdXJjZUlkLHM9bihlKSxsPWkuYmVsb3c9dC5iZWxvd0xvb2t1cFsidHJhY2UtIityLnVpZF07cmV0dXJuIHQubWFwLmFkZFNvdXJjZShhLHt0eXBlOiJnZW9qc29uIixkYXRhOnMuZ2VvanNvbn0pLGkuX2FkZExheWVycyhzLGwpLGVbMF0udHJhY2UuX2dsVHJhY2U9aSxpfX0seyIuLi8uLi9wbG90cy9tYXBib3gvY29uc3RhbnRzIjo2MjAsIi4vY29udmVydCI6NzM1fV0sNzM5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIiksaT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19mb3JtYXRfYXR0cmlidXRlcyIpLmF4aXNIb3ZlckZvcm1hdCxhPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS5ob3ZlcnRlbXBsYXRlQXR0cnMsbz10KCIuLi9tZXNoM2QvYXR0cmlidXRlcyIpLHM9dCgiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyIpLGw9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsYz17eDp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSx5Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LHo6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIn0sdTp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSx2Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LHc6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sc2l6ZW1vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInNjYWxlZCIsImFic29sdXRlIl0sZWRpdFR5cGU6ImNhbGMiLGRmbHQ6InNjYWxlZCJ9LHNpemVyZWY6e3ZhbFR5cGU6Im51bWJlciIsZWRpdFR5cGU6ImNhbGMiLG1pbjowfSxhbmNob3I6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLGVkaXRUeXBlOiJjYWxjIix2YWx1ZXM6WyJ0aXAiLCJ0YWlsIiwiY20iLCJjZW50ZXIiXSxkZmx0OiJjbSJ9LHRleHQ6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIixhcnJheU9rOiEwLGVkaXRUeXBlOiJjYWxjIn0saG92ZXJ0ZXh0Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsYXJyYXlPazohMCxlZGl0VHlwZToiY2FsYyJ9LGhvdmVydGVtcGxhdGU6YSh7ZWRpdFR5cGU6ImNhbGMifSx7a2V5czpbIm5vcm0iXX0pLHVob3ZlcmZvcm1hdDppKCJ1IiwxKSx2aG92ZXJmb3JtYXQ6aSgidiIsMSksd2hvdmVyZm9ybWF0OmkoInciLDEpLHhob3ZlcmZvcm1hdDppKCJ4IikseWhvdmVyZm9ybWF0OmkoInkiKSx6aG92ZXJmb3JtYXQ6aSgieiIpLHNob3dsZWdlbmQ6bCh7fSxzLnNob3dsZWdlbmQse2RmbHQ6ITF9KX07bChjLG4oIiIse2NvbG9yQXR0cjoidS92L3cgbm9ybSIsc2hvd1NjYWxlRGZsdDohMCxlZGl0VHlwZU92ZXJyaWRlOiJjYWxjIn0pKTtbIm9wYWNpdHkiLCJsaWdodHBvc2l0aW9uIiwibGlnaHRpbmciXS5mb3JFYWNoKChmdW5jdGlvbih0KXtjW3RdPW9bdF19KSksYy5ob3ZlcmluZm89bCh7fSxzLmhvdmVyaW5mbyx7ZWRpdFR5cGU6ImNhbGMiLGZsYWdzOlsieCIsInkiLCJ6IiwidSIsInYiLCJ3Iiwibm9ybSIsInRleHQiLCJuYW1lIl0sZGZsdDoieCt5K3orbm9ybSt0ZXh0K25hbWUifSksYy50cmFuc2Zvcm1zPXZvaWQgMCxlLmV4cG9ydHM9Y30seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6Mzc0LCIuLi8uLi9saWIvZXh0ZW5kIjo1MDUsIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiOjU2MiwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfZm9ybWF0X2F0dHJpYnV0ZXMiOjU2OSwiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyI6NjQyLCIuLi9tZXNoM2QvYXR0cmlidXRlcyI6ODc2fV0sNzQwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jYWxjIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPWUudSxpPWUudixhPWUudyxvPU1hdGgubWluKGUueC5sZW5ndGgsZS55Lmxlbmd0aCxlLnoubGVuZ3RoLHIubGVuZ3RoLGkubGVuZ3RoLGEubGVuZ3RoKSxzPS0xLzAsbD0xLzAsYz0wO2M8bztjKyspe3ZhciB1PXJbY10sZj1pW2NdLGg9YVtjXSxwPU1hdGguc3FydCh1KnUrZipmK2gqaCk7cz1NYXRoLm1heChzLHApLGw9TWF0aC5taW4obCxwKX1lLl9sZW49byxlLl9ub3JtTWF4PXMsbih0LGUse3ZhbHM6W2wsc10sY29udGFpbmVyU3RyOiIiLGNMZXR0ZXI6ImMifSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jYWxjIjozNzV9XSw3NDE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vLi4vc3RhY2tnbF9tb2R1bGVzIikuZ2xfY29uZTNkLGk9dCgiLi4vLi4vLi4vc3RhY2tnbF9tb2R1bGVzIikuZ2xfY29uZTNkLmNyZWF0ZUNvbmVNZXNoLGE9dCgiLi4vLi4vbGliIikuc2ltcGxlTWFwLG89dCgiLi4vLi4vbGliL2dsX2Zvcm1hdF9jb2xvciIpLnBhcnNlQ29sb3JTY2FsZSxzPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSIpLmV4dHJhY3RPcHRzLGw9dCgiLi4vLi4vcGxvdHMvZ2wzZC96aXAzIik7ZnVuY3Rpb24gYyh0LGUpe3RoaXMuc2NlbmU9dCx0aGlzLnVpZD1lLHRoaXMubWVzaD1udWxsLHRoaXMuZGF0YT1udWxsfXZhciB1PWMucHJvdG90eXBlO3UuaGFuZGxlUGljaz1mdW5jdGlvbih0KXtpZih0Lm9iamVjdD09PXRoaXMubWVzaCl7dmFyIGU9dC5pbmRleD10LmRhdGEuaW5kZXgscj10aGlzLmRhdGEueFtlXSxuPXRoaXMuZGF0YS55W2VdLGk9dGhpcy5kYXRhLnpbZV0sYT10aGlzLmRhdGEudVtlXSxvPXRoaXMuZGF0YS52W2VdLHM9dGhpcy5kYXRhLndbZV07dC50cmFjZUNvb3JkaW5hdGU9W3IsbixpLGEsbyxzLE1hdGguc3FydChhKmErbypvK3MqcyldO3ZhciBsPXRoaXMuZGF0YS5ob3ZlcnRleHR8fHRoaXMuZGF0YS50ZXh0O3JldHVybiBBcnJheS5pc0FycmF5KGwpJiZ2b2lkIDAhPT1sW2VdP3QudGV4dExhYmVsPWxbZV06bCYmKHQudGV4dExhYmVsPWwpLCEwfX07dmFyIGY9e3hheGlzOjAseWF4aXM6MSx6YXhpczoyfSxoPXt0aXA6MSx0YWlsOjAsY206LjI1LGNlbnRlcjouNX0scD17dGlwOjEsdGFpbDoxLGNtOi43NSxjZW50ZXI6LjV9O2Z1bmN0aW9uIGQodCxlKXt2YXIgcj10LmZ1bGxTY2VuZUxheW91dCxpPXQuZGF0YVNjYWxlLGM9e307ZnVuY3Rpb24gdSh0LGUpe3ZhciBuPXJbZV0sbz1pW2ZbZV1dO3JldHVybiBhKHQsKGZ1bmN0aW9uKHQpe3JldHVybiBuLmQybCh0KSpvfSkpfWMudmVjdG9ycz1sKHUoZS51LCJ4YXhpcyIpLHUoZS52LCJ5YXhpcyIpLHUoZS53LCJ6YXhpcyIpLGUuX2xlbiksYy5wb3NpdGlvbnM9bCh1KGUueCwieGF4aXMiKSx1KGUueSwieWF4aXMiKSx1KGUueiwiemF4aXMiKSxlLl9sZW4pO3ZhciBkPXMoZSk7Yy5jb2xvcm1hcD1vKGUpLGMudmVydGV4SW50ZW5zaXR5Qm91bmRzPVtkLm1pbi9lLl9ub3JtTWF4LGQubWF4L2UuX25vcm1NYXhdLGMuY29uZU9mZnNldD1oW2UuYW5jaG9yXSwic2NhbGVkIj09PWUuc2l6ZW1vZGU/Yy5jb25lU2l6ZT1lLnNpemVyZWZ8fC41OmMuY29uZVNpemU9ZS5zaXplcmVmJiZlLl9ub3JtTWF4P2Uuc2l6ZXJlZi9lLl9ub3JtTWF4Oi41O3ZhciBtPW4oYyksZz1lLmxpZ2h0cG9zaXRpb247cmV0dXJuIG0ubGlnaHRQb3NpdGlvbj1bZy54LGcueSxnLnpdLG0uYW1iaWVudD1lLmxpZ2h0aW5nLmFtYmllbnQsbS5kaWZmdXNlPWUubGlnaHRpbmcuZGlmZnVzZSxtLnNwZWN1bGFyPWUubGlnaHRpbmcuc3BlY3VsYXIsbS5yb3VnaG5lc3M9ZS5saWdodGluZy5yb3VnaG5lc3MsbS5mcmVzbmVsPWUubGlnaHRpbmcuZnJlc25lbCxtLm9wYWNpdHk9ZS5vcGFjaXR5LGUuX3BhZD1wW2UuYW5jaG9yXSptLnZlY3RvclNjYWxlKm0uY29uZVNjYWxlKmUuX25vcm1NYXgsbX11LnVwZGF0ZT1mdW5jdGlvbih0KXt0aGlzLmRhdGE9dDt2YXIgZT1kKHRoaXMuc2NlbmUsdCk7dGhpcy5tZXNoLnVwZGF0ZShlKX0sdS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5zY2VuZS5nbHBsb3QucmVtb3ZlKHRoaXMubWVzaCksdGhpcy5tZXNoLmRpc3Bvc2UoKX0sZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5nbHBsb3QuZ2wsbj1kKHQsZSksYT1pKHIsbiksbz1uZXcgYyh0LGUudWlkKTtyZXR1cm4gby5tZXNoPWEsby5kYXRhPWUsYS5fdHJhY2U9byx0LmdscGxvdC5hZGQoYSksb319LHsiLi4vLi4vLi4vc3RhY2tnbF9tb2R1bGVzIjoxMTMzLCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiOjM3OSwiLi4vLi4vbGliIjo1MTUsIi4uLy4uL2xpYi9nbF9mb3JtYXRfY29sb3IiOjUxMSwiLi4vLi4vcGxvdHMvZ2wzZC96aXAzIjo2MTh9XSw3NDI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiKSxhPXQoIi4vYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixvKXtmdW5jdGlvbiBzKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxhLHIsaSl9dmFyIGw9cygidSIpLGM9cygidiIpLHU9cygidyIpLGY9cygieCIpLGg9cygieSIpLHA9cygieiIpO2wmJmwubGVuZ3RoJiZjJiZjLmxlbmd0aCYmdSYmdS5sZW5ndGgmJmYmJmYubGVuZ3RoJiZoJiZoLmxlbmd0aCYmcCYmcC5sZW5ndGg/KHMoInNpemVyZWYiKSxzKCJzaXplbW9kZSIpLHMoImFuY2hvciIpLHMoImxpZ2h0aW5nLmFtYmllbnQiKSxzKCJsaWdodGluZy5kaWZmdXNlIikscygibGlnaHRpbmcuc3BlY3VsYXIiKSxzKCJsaWdodGluZy5yb3VnaG5lc3MiKSxzKCJsaWdodGluZy5mcmVzbmVsIikscygibGlnaHRwb3NpdGlvbi54IikscygibGlnaHRwb3NpdGlvbi55IikscygibGlnaHRwb3NpdGlvbi56IiksaSh0LGUsbyxzLHtwcmVmaXg6IiIsY0xldHRlcjoiYyJ9KSxzKCJ0ZXh0IikscygiaG92ZXJ0ZXh0IikscygiaG92ZXJ0ZW1wbGF0ZSIpLHMoInVob3ZlcmZvcm1hdCIpLHMoInZob3ZlcmZvcm1hdCIpLHMoIndob3ZlcmZvcm1hdCIpLHMoInhob3ZlcmZvcm1hdCIpLHMoInlob3ZlcmZvcm1hdCIpLHMoInpob3ZlcmZvcm1hdCIpLGUuX2xlbmd0aD1udWxsKTplLnZpc2libGU9ITF9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9kZWZhdWx0cyI6Mzc3LCIuLi8uLi9saWIiOjUxNSwiLi9hdHRyaWJ1dGVzIjo3Mzl9XSw3NDM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToiY29uZSIsYmFzZVBsb3RNb2R1bGU6dCgiLi4vLi4vcGxvdHMvZ2wzZCIpLGNhdGVnb3JpZXM6WyJnbDNkIiwic2hvd0xlZ2VuZCJdLGF0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNvbG9yYmFyOnttaW46ImNtaW4iLG1heDoiY21heCJ9LGNhbGM6dCgiLi9jYWxjIikscGxvdDp0KCIuL2NvbnZlcnQiKSxldmVudERhdGE6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5ub3JtPWUudHJhY2VDb29yZGluYXRlWzZdLHR9LG1ldGE6e319fSx7Ii4uLy4uL3Bsb3RzL2dsM2QiOjYwNywiLi9hdHRyaWJ1dGVzIjo3MzksIi4vY2FsYyI6NzQwLCIuL2NvbnZlcnQiOjc0MSwiLi9kZWZhdWx0cyI6NzQyfV0sNzQ0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2hlYXRtYXAvYXR0cmlidXRlcyIpLGk9dCgiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19mb3JtYXRfYXR0cmlidXRlcyIpLG89YS5heGlzSG92ZXJGb3JtYXQscz1hLmRlc2NyaXB0aW9uT25seU51bWJlcnMsbD10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyIpLGM9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nL2F0dHJpYnV0ZXMiKS5kYXNoLHU9dCgiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIiksZj10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxoPXQoIi4uLy4uL2NvbnN0YW50cy9maWx0ZXJfb3BzIikscD1oLkNPTVBBUklTT05fT1BTMixkPWguSU5URVJWQUxfT1BTLG09aS5saW5lO2UuZXhwb3J0cz1mKHt6Om4ueix4Om4ueCx4MDpuLngwLGR4Om4uZHgseTpuLnkseTA6bi55MCxkeTpuLmR5LHhwZXJpb2Q6bi54cGVyaW9kLHlwZXJpb2Q6bi55cGVyaW9kLHhwZXJpb2QwOmkueHBlcmlvZDAseXBlcmlvZDA6aS55cGVyaW9kMCx4cGVyaW9kYWxpZ25tZW50Om4ueHBlcmlvZGFsaWdubWVudCx5cGVyaW9kYWxpZ25tZW50Om4ueXBlcmlvZGFsaWdubWVudCx0ZXh0Om4udGV4dCxob3ZlcnRleHQ6bi5ob3ZlcnRleHQsdHJhbnNwb3NlOm4udHJhbnNwb3NlLHh0eXBlOm4ueHR5cGUseXR5cGU6bi55dHlwZSx4aG92ZXJmb3JtYXQ6bygieCIpLHlob3ZlcmZvcm1hdDpvKCJ5IiksemhvdmVyZm9ybWF0Om8oInoiLDEpLGhvdmVydGVtcGxhdGU6bi5ob3ZlcnRlbXBsYXRlLHRleHR0ZW1wbGF0ZTpmKHt9LG4udGV4dHRlbXBsYXRlLHt9KSx0ZXh0Zm9udDpmKHt9LG4udGV4dGZvbnQse30pLGhvdmVyb25nYXBzOm4uaG92ZXJvbmdhcHMsY29ubmVjdGdhcHM6Zih7fSxuLmNvbm5lY3RnYXBzLHt9KSxmaWxsY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToiY2FsYyJ9LGF1dG9jb250b3VyOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJjYWxjIixpbXBsaWVkRWRpdHM6eyJjb250b3Vycy5zdGFydCI6dm9pZCAwLCJjb250b3Vycy5lbmQiOnZvaWQgMCwiY29udG91cnMuc2l6ZSI6dm9pZCAwfX0sbmNvbnRvdXJzOnt2YWxUeXBlOiJpbnRlZ2VyIixkZmx0OjE1LG1pbjoxLGVkaXRUeXBlOiJjYWxjIn0sY29udG91cnM6e3R5cGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImxldmVscyIsImNvbnN0cmFpbnQiXSxkZmx0OiJsZXZlbHMiLGVkaXRUeXBlOiJjYWxjIn0sc3RhcnQ6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDpudWxsLGVkaXRUeXBlOiJwbG90IixpbXBsaWVkRWRpdHM6eyJeYXV0b2NvbnRvdXIiOiExfX0sZW5kOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6bnVsbCxlZGl0VHlwZToicGxvdCIsaW1wbGllZEVkaXRzOnsiXmF1dG9jb250b3VyIjohMX19LHNpemU6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDpudWxsLG1pbjowLGVkaXRUeXBlOiJwbG90IixpbXBsaWVkRWRpdHM6eyJeYXV0b2NvbnRvdXIiOiExfX0sY29sb3Jpbmc6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImZpbGwiLCJoZWF0bWFwIiwibGluZXMiLCJub25lIl0sZGZsdDoiZmlsbCIsZWRpdFR5cGU6ImNhbGMifSxzaG93bGluZXM6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6InBsb3QifSxzaG93bGFiZWxzOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExLGVkaXRUeXBlOiJwbG90In0sbGFiZWxmb250OnUoe2VkaXRUeXBlOiJwbG90Iixjb2xvckVkaXRUeXBlOiJzdHlsZSJ9KSxsYWJlbGZvcm1hdDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGVkaXRUeXBlOiJwbG90IixkZXNjcmlwdGlvbjpzKCJjb250b3VyIGxhYmVsIil9LG9wZXJhdGlvbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOltdLmNvbmNhdChwKS5jb25jYXQoZCksZGZsdDoiPSIsZWRpdFR5cGU6ImNhbGMifSx2YWx1ZTp7dmFsVHlwZToiYW55IixkZmx0OjAsZWRpdFR5cGU6ImNhbGMifSxlZGl0VHlwZToiY2FsYyIsaW1wbGllZEVkaXRzOnthdXRvY29udG91cjohMX19LGxpbmU6e2NvbG9yOmYoe30sbS5jb2xvcix7ZWRpdFR5cGU6InN0eWxlK2NvbG9yYmFycyJ9KSx3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxlZGl0VHlwZToic3R5bGUrY29sb3JiYXJzIn0sZGFzaDpjLHNtb290aGluZzpmKHt9LG0uc21vb3RoaW5nLHt9KSxlZGl0VHlwZToicGxvdCJ9fSxsKCIiLHtjTGV0dGVyOiJ6IixhdXRvQ29sb3JEZmx0OiExLGVkaXRUeXBlT3ZlcnJpZGU6ImNhbGMifSkpfSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjozNzQsIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZy9hdHRyaWJ1dGVzIjozODgsIi4uLy4uL2NvbnN0YW50cy9maWx0ZXJfb3BzIjo0ODcsIi4uLy4uL2xpYi9leHRlbmQiOjUwNSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfZm9ybWF0X2F0dHJpYnV0ZXMiOjU2OSwiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIjo1OTQsIi4uL2hlYXRtYXAvYXR0cmlidXRlcyI6ODAxLCIuLi9zY2F0dGVyL2F0dHJpYnV0ZXMiOjkzNn1dLDc0NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiKSxpPXQoIi4uL2hlYXRtYXAvY2FsYyIpLGE9dCgiLi9zZXRfY29udG91cnMiKSxvPXQoIi4vZW5kX3BsdXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1pKHQsZSkscz1yWzBdLno7YShlLHMpO3ZhciBsLGM9ZS5jb250b3Vycyx1PW4uZXh0cmFjdE9wdHMoZSk7aWYoImhlYXRtYXAiPT09Yy5jb2xvcmluZyYmdS5hdXRvJiYhMT09PWUuYXV0b2NvbnRvdXIpe3ZhciBmPWMuc3RhcnQsaD1vKGMpLHA9Yy5zaXplfHwxLGQ9TWF0aC5mbG9vcigoaC1mKS9wKSsxO2lzRmluaXRlKHApfHwocD0xLGQ9MSk7dmFyIG09Zi1wLzI7bD1bbSxtK2QqcF19ZWxzZSBsPXM7cmV0dXJuIG4uY2FsYyh0LGUse3ZhbHM6bCxjTGV0dGVyOiJ6In0pLHJ9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSI6Mzc5LCIuLi9oZWF0bWFwL2NhbGMiOjgwMiwiLi9lbmRfcGx1cyI6NzU1LCIuL3NldF9jb250b3VycyI6NzYzfV0sNzQ2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLG49dFswXSxpPW4uejtzd2l0Y2goZS50eXBlKXtjYXNlImxldmVscyI6dmFyIGE9TWF0aC5taW4oaVswXVswXSxpWzBdWzFdKTtmb3Iocj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgbz10W3JdO28ucHJlZml4Qm91bmRhcnk9IW8uZWRnZXBhdGhzLmxlbmd0aCYmKGE+by5sZXZlbHx8by5zdGFydHMubGVuZ3RoJiZhPT09by5sZXZlbCl9YnJlYWs7Y2FzZSJjb25zdHJhaW50IjppZihuLnByZWZpeEJvdW5kYXJ5PSExLG4uZWRnZXBhdGhzLmxlbmd0aClyZXR1cm47dmFyIHM9bi54Lmxlbmd0aCxsPW4ueS5sZW5ndGgsYz0tMS8wLHU9MS8wO2ZvcihyPTA7cjxsO3IrKyl1PU1hdGgubWluKHUsaVtyXVswXSksdT1NYXRoLm1pbih1LGlbcl1bcy0xXSksYz1NYXRoLm1heChjLGlbcl1bMF0pLGM9TWF0aC5tYXgoYyxpW3JdW3MtMV0pO2ZvcihyPTE7cjxzLTE7cisrKXU9TWF0aC5taW4odSxpWzBdW3JdKSx1PU1hdGgubWluKHUsaVtsLTFdW3JdKSxjPU1hdGgubWF4KGMsaVswXVtyXSksYz1NYXRoLm1heChjLGlbbC0xXVtyXSk7dmFyIGYsaCxwPWUudmFsdWU7c3dpdGNoKGUuX29wZXJhdGlvbil7Y2FzZSI+IjpwPmMmJihuLnByZWZpeEJvdW5kYXJ5PSEwKTticmVhaztjYXNlIjwiOihwPHV8fG4uc3RhcnRzLmxlbmd0aCYmcD09PXUpJiYobi5wcmVmaXhCb3VuZGFyeT0hMCk7YnJlYWs7Y2FzZSJbXSI6Zj1NYXRoLm1pbihwWzBdLHBbMV0pLCgoaD1NYXRoLm1heChwWzBdLHBbMV0pKTx1fHxmPmN8fG4uc3RhcnRzLmxlbmd0aCYmaD09PXUpJiYobi5wcmVmaXhCb3VuZGFyeT0hMCk7YnJlYWs7Y2FzZSJdWyI6Zj1NYXRoLm1pbihwWzBdLHBbMV0pLGg9TWF0aC5tYXgocFswXSxwWzFdKSxmPHUmJmg+YyYmKG4ucHJlZml4Qm91bmRhcnk9ITApfX19fSx7fV0sNzQ3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSIpLGk9dCgiLi9tYWtlX2NvbG9yX21hcCIpLGE9dCgiLi9lbmRfcGx1cyIpO2UuZXhwb3J0cz17bWluOiJ6bWluIixtYXg6InptYXgiLGNhbGM6ZnVuY3Rpb24odCxlLHIpe3ZhciBvPWUuY29udG91cnMscz1lLmxpbmUsbD1vLnNpemV8fDEsYz1vLmNvbG9yaW5nLHU9aShlLHtpc0NvbG9yYmFyOiEwfSk7aWYoImhlYXRtYXAiPT09Yyl7dmFyIGY9bi5leHRyYWN0T3B0cyhlKTtyLl9maWxsZ3JhZGllbnQ9Zi5yZXZlcnNlc2NhbGU/bi5mbGlwU2NhbGUoZi5jb2xvcnNjYWxlKTpmLmNvbG9yc2NhbGUsci5fenJhbmdlPVtmLm1pbixmLm1heF19ZWxzZSJmaWxsIj09PWMmJihyLl9maWxsY29sb3I9dSk7ci5fbGluZT17Y29sb3I6ImxpbmVzIj09PWM/dTpzLmNvbG9yLHdpZHRoOiExIT09by5zaG93bGluZXM/cy53aWR0aDowLGRhc2g6cy5kYXNofSxyLl9sZXZlbHM9e3N0YXJ0Om8uc3RhcnQsZW5kOmEobyksc2l6ZTpsfX19fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSI6Mzc5LCIuL2VuZF9wbHVzIjo3NTUsIi4vbWFrZV9jb2xvcl9tYXAiOjc2MH1dLDc0ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e0JPVFRPTVNUQVJUOlsxLDksMTMsMTA0LDcxM10sVE9QU1RBUlQ6WzQsNiw3LDEwNCw3MTNdLExFRlRTVEFSVDpbOCwxMiwxNCwyMDgsMTExNF0sUklHSFRTVEFSVDpbMiwzLDExLDIwOCwxMTE0XSxORVdERUxUQTpbbnVsbCxbLTEsMF0sWzAsLTFdLFstMSwwXSxbMSwwXSxudWxsLFswLC0xXSxbLTEsMF0sWzAsMV0sWzAsMV0sbnVsbCxbMCwxXSxbMSwwXSxbMSwwXSxbMCwtMV1dLENIT09TRVNBRERMRTp7MTA0Ols0LDFdLDIwODpbMiw4XSw3MTM6WzcsMTNdLDExMTQ6WzExLDE0XX0sU0FERExFUkVNQUlOREVSOnsxOjQsMjo4LDQ6MSw3OjEzLDg6MiwxMToxNCwxMzo3LDE0OjExfSxMQUJFTERJU1RBTkNFOjIsTEFCRUxJTkNSRUFTRToxMCxMQUJFTE1JTjozLExBQkVMTUFYOjEwLExBQkVMT1BUSU1JWkVSOntFREdFQ09TVDoxLEFOR0xFQ09TVDoxLE5FSUdIQk9SQ09TVDo1LFNBTUVMRVZFTEZBQ1RPUjoxMCxTQU1FTEVWRUxESVNUQU5DRTo1LE1BWENPU1Q6MTAwLElOSVRJQUxTRUFSQ0hQT0lOVFM6MTAsSVRFUkFUSU9OUzo1fX19LHt9XSw3NDk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxpPXQoIi4vbGFiZWxfZGVmYXVsdHMiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxvPWEuYWRkT3BhY2l0eSxzPWEub3BhY2l0eSxsPXQoIi4uLy4uL2NvbnN0YW50cy9maWx0ZXJfb3BzIiksYz1sLkNPTlNUUkFJTlRfUkVEVUNUSU9OLHU9bC5DT01QQVJJU09OX09QUzI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGEsbCxmKXt2YXIgaCxwLGQsbT1lLmNvbnRvdXJzLGc9cigiY29udG91cnMub3BlcmF0aW9uIik7KG0uX29wZXJhdGlvbj1jW2ddLGZ1bmN0aW9uKHQsZSl7dmFyIHI7LTE9PT11LmluZGV4T2YoZS5vcGVyYXRpb24pPyh0KCJjb250b3Vycy52YWx1ZSIsWzAsMV0pLEFycmF5LmlzQXJyYXkoZS52YWx1ZSk/ZS52YWx1ZS5sZW5ndGg+Mj9lLnZhbHVlPWUudmFsdWUuc2xpY2UoMik6MD09PWUubGVuZ3RoP2UudmFsdWU9WzAsMV06ZS5sZW5ndGg8Mj8ocj1wYXJzZUZsb2F0KGUudmFsdWVbMF0pLGUudmFsdWU9W3IscisxXSk6ZS52YWx1ZT1bcGFyc2VGbG9hdChlLnZhbHVlWzBdKSxwYXJzZUZsb2F0KGUudmFsdWVbMV0pXTpuKGUudmFsdWUpJiYocj1wYXJzZUZsb2F0KGUudmFsdWUpLGUudmFsdWU9W3IscisxXSkpOih0KCJjb250b3Vycy52YWx1ZSIsMCksbihlLnZhbHVlKXx8KEFycmF5LmlzQXJyYXkoZS52YWx1ZSk/ZS52YWx1ZT1wYXJzZUZsb2F0KGUudmFsdWVbMF0pOmUudmFsdWU9MCkpfShyLG0pLCI9Ij09PWc/aD1tLnNob3dsaW5lcz0hMDooaD1yKCJjb250b3Vycy5zaG93bGluZXMiKSxkPXIoImZpbGxjb2xvciIsbygodC5saW5lfHx7fSkuY29sb3J8fGwsLjUpKSksaCkmJihwPXIoImxpbmUuY29sb3IiLGQmJnMoZCk/byhlLmZpbGxjb2xvciwxKTpsKSxyKCJsaW5lLndpZHRoIiwyKSxyKCJsaW5lLmRhc2giKSk7cigibGluZS5zbW9vdGhpbmciKSxpKHIsYSxwLGYpfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjozNjcsIi4uLy4uL2NvbnN0YW50cy9maWx0ZXJfb3BzIjo0ODcsIi4vbGFiZWxfZGVmYXVsdHMiOjc1OSwiZmFzdC1pc251bWVyaWMiOjE5MH1dLDc1MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb25zdGFudHMvZmlsdGVyX29wcyIpLGk9dCgiZmFzdC1pc251bWVyaWMiKTtmdW5jdGlvbiBhKHQsZSl7dmFyIHIsYT1BcnJheS5pc0FycmF5KGUpO2Z1bmN0aW9uIG8odCl7cmV0dXJuIGkodCk/K3Q6bnVsbH1yZXR1cm4tMSE9PW4uQ09NUEFSSVNPTl9PUFMyLmluZGV4T2YodCk/cj1vKGE/ZVswXTplKTotMSE9PW4uSU5URVJWQUxfT1BTLmluZGV4T2YodCk/cj1hP1tvKGVbMF0pLG8oZVsxXSldOltvKGUpLG8oZSldOi0xIT09bi5TRVRfT1BTLmluZGV4T2YodCkmJihyPWE/ZS5tYXAobyk6W28oZSldKSxyfWZ1bmN0aW9uIG8odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2U9YSh0LGUpO3ZhciByPU1hdGgubWluKGVbMF0sZVsxXSksbj1NYXRoLm1heChlWzBdLGVbMV0pO3JldHVybntzdGFydDpyLGVuZDpuLHNpemU6bi1yfX19ZnVuY3Rpb24gcyh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJue3N0YXJ0OmU9YSh0LGUpLGVuZDoxLzAsc2l6ZToxLzB9fX1lLmV4cG9ydHM9eyJbXSI6bygiW10iKSwiXVsiOm8oIl1bIiksIj4iOnMoIj4iKSwiPCI6cygiPCIpLCI9IjpzKCI9Iil9fSx7Ii4uLy4uL2NvbnN0YW50cy9maWx0ZXJfb3BzIjo0ODcsImZhc3QtaXNudW1lcmljIjoxOTB9XSw3NTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPW4oImNvbnRvdXJzLnN0YXJ0IiksYT1uKCJjb250b3Vycy5lbmQiKSxvPSExPT09aXx8ITE9PT1hLHM9cigiY29udG91cnMuc2l6ZSIpOyEobz9lLmF1dG9jb250b3VyPSEwOnIoImF1dG9jb250b3VyIiwhMSkpJiZzfHxyKCJuY29udG91cnMiKX19LHt9XSw3NTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIik7ZnVuY3Rpb24gaSh0KXtyZXR1cm4gbi5leHRlbmRGbGF0KHt9LHQse2VkZ2VwYXRoczpuLmV4dGVuZERlZXAoW10sdC5lZGdlcGF0aHMpLHBhdGhzOm4uZXh0ZW5kRGVlcChbXSx0LnBhdGhzKSxzdGFydHM6bi5leHRlbmREZWVwKFtdLHQuc3RhcnRzKX0pfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLGEsbyxzPWZ1bmN0aW9uKHQpe3JldHVybiB0LnJldmVyc2UoKX0sbD1mdW5jdGlvbih0KXtyZXR1cm4gdH07c3dpdGNoKGUpe2Nhc2UiPSI6Y2FzZSI8IjpyZXR1cm4gdDtjYXNlIj4iOmZvcigxIT09dC5sZW5ndGgmJm4ud2FybigiQ29udG91ciBkYXRhIGludmFsaWQgZm9yIHRoZSBzcGVjaWZpZWQgaW5lcXVhbGl0eSBvcGVyYXRpb24uIiksYT10WzBdLHI9MDtyPGEuZWRnZXBhdGhzLmxlbmd0aDtyKyspYS5lZGdlcGF0aHNbcl09cyhhLmVkZ2VwYXRoc1tyXSk7Zm9yKHI9MDtyPGEucGF0aHMubGVuZ3RoO3IrKylhLnBhdGhzW3JdPXMoYS5wYXRoc1tyXSk7Zm9yKHI9MDtyPGEuc3RhcnRzLmxlbmd0aDtyKyspYS5zdGFydHNbcl09cyhhLnN0YXJ0c1tyXSk7cmV0dXJuIHQ7Y2FzZSJdWyI6dmFyIGM9cztzPWwsbD1jO2Nhc2UiW10iOmZvcigyIT09dC5sZW5ndGgmJm4ud2FybigiQ29udG91ciBkYXRhIGludmFsaWQgZm9yIHRoZSBzcGVjaWZpZWQgaW5lcXVhbGl0eSByYW5nZSBvcGVyYXRpb24uIiksYT1pKHRbMF0pLG89aSh0WzFdKSxyPTA7cjxhLmVkZ2VwYXRocy5sZW5ndGg7cisrKWEuZWRnZXBhdGhzW3JdPXMoYS5lZGdlcGF0aHNbcl0pO2ZvcihyPTA7cjxhLnBhdGhzLmxlbmd0aDtyKyspYS5wYXRoc1tyXT1zKGEucGF0aHNbcl0pO2ZvcihyPTA7cjxhLnN0YXJ0cy5sZW5ndGg7cisrKWEuc3RhcnRzW3JdPXMoYS5zdGFydHNbcl0pO2Zvcig7by5lZGdlcGF0aHMubGVuZ3RoOylhLmVkZ2VwYXRocy5wdXNoKGwoby5lZGdlcGF0aHMuc2hpZnQoKSkpO2Zvcig7by5wYXRocy5sZW5ndGg7KWEucGF0aHMucHVzaChsKG8ucGF0aHMuc2hpZnQoKSkpO2Zvcig7by5zdGFydHMubGVuZ3RoOylhLnN0YXJ0cy5wdXNoKGwoby5zdGFydHMuc2hpZnQoKSkpO3JldHVyblthXX19fSx7Ii4uLy4uL2xpYiI6NTE1fV0sNzUzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vaGVhdG1hcC94eXpfZGVmYXVsdHMiKSxhPXQoIi4uL3NjYXR0ZXIvcGVyaW9kX2RlZmF1bHRzIiksbz10KCIuL2NvbnN0cmFpbnRfZGVmYXVsdHMiKSxzPXQoIi4vY29udG91cnNfZGVmYXVsdHMiKSxsPXQoIi4vc3R5bGVfZGVmYXVsdHMiKSxjPXQoIi4uL2hlYXRtYXAvbGFiZWxfZGVmYXVsdHMiKSx1PXQoIi4vYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixmKXtmdW5jdGlvbiBoKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSx1LHIsaSl9aWYoaSh0LGUsaCxmKSl7YSh0LGUsZixoKSxoKCJ4aG92ZXJmb3JtYXQiKSxoKCJ5aG92ZXJmb3JtYXQiKSxoKCJ0ZXh0IiksaCgiaG92ZXJ0ZXh0IiksaCgiaG92ZXJvbmdhcHMiKSxoKCJob3ZlcnRlbXBsYXRlIik7dmFyIHA9ImNvbnN0cmFpbnQiPT09aCgiY29udG91cnMudHlwZSIpO2goImNvbm5lY3RnYXBzIixuLmlzQXJyYXkxRChlLnopKSxwP28odCxlLGgsZixyKToocyh0LGUsaCwoZnVuY3Rpb24ocil7cmV0dXJuIG4uY29lcmNlMih0LGUsdSxyKX0pKSxsKHQsZSxoLGYpKSxlLmNvbnRvdXJzJiYiaGVhdG1hcCI9PT1lLmNvbnRvdXJzLmNvbG9yaW5nJiZjKGgsZil9ZWxzZSBlLnZpc2libGU9ITF9fSx7Ii4uLy4uL2xpYiI6NTE1LCIuLi9oZWF0bWFwL2xhYmVsX2RlZmF1bHRzIjo4MTEsIi4uL2hlYXRtYXAveHl6X2RlZmF1bHRzIjo4MTYsIi4uL3NjYXR0ZXIvcGVyaW9kX2RlZmF1bHRzIjo5NTYsIi4vYXR0cmlidXRlcyI6NzQ0LCIuL2NvbnN0cmFpbnRfZGVmYXVsdHMiOjc0OSwiLi9jb250b3Vyc19kZWZhdWx0cyI6NzUxLCIuL3N0eWxlX2RlZmF1bHRzIjo3NjV9XSw3NTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuL2NvbnN0cmFpbnRfbWFwcGluZyIpLGE9dCgiLi9lbmRfcGx1cyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBvPSJjb25zdHJhaW50Ij09PXQudHlwZT9pW3QuX29wZXJhdGlvbl0odC52YWx1ZSk6dCxzPW8uc2l6ZSxsPVtdLGM9YShvKSx1PXIudHJhY2UuX2NhcnBldFRyYWNlLGY9dT97eGF4aXM6dS5hYXhpcyx5YXhpczp1LmJheGlzLHg6ci5hLHk6ci5ifTp7eGF4aXM6ZS54YXhpcyx5YXhpczplLnlheGlzLHg6ci54LHk6ci55fSxoPW8uc3RhcnQ7aDxjO2grPXMpaWYobC5wdXNoKG4uZXh0ZW5kRmxhdCh7bGV2ZWw6aCxjcm9zc2luZ3M6e30sc3RhcnRzOltdLGVkZ2VwYXRoczpbXSxwYXRoczpbXSx6OnIueixzbW9vdGhpbmc6ci50cmFjZS5saW5lLnNtb290aGluZ30sZikpLGwubGVuZ3RoPjFlMyl7bi53YXJuKCJUb28gbWFueSBjb250b3VycywgY2xpcHBpbmcgYXQgMTAwMCIsdCk7YnJlYWt9cmV0dXJuIGx9fSx7Ii4uLy4uL2xpYiI6NTE1LCIuL2NvbnN0cmFpbnRfbWFwcGluZyI6NzUwLCIuL2VuZF9wbHVzIjo3NTV9XSw3NTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiB0LmVuZCt0LnNpemUvMWU2fX0se31dLDc1NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4vY29uc3RhbnRzIik7ZnVuY3Rpb24gYSh0LGUscixuKXtyZXR1cm4gTWF0aC5hYnModFswXS1lWzBdKTxyJiZNYXRoLmFicyh0WzFdLWVbMV0pPG59ZnVuY3Rpb24gbyh0LGUscixvLGwpe3ZhciBjLHU9ZS5qb2luKCIsIiksZj10LmNyb3NzaW5nc1t1XSxoPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj0wLGE9MDt0PjIwJiZlPzIwOD09PXR8fDExMTQ9PT10P249MD09PXJbMF0/MTotMTphPTA9PT1yWzFdPzE6LTE6LTEhPT1pLkJPVFRPTVNUQVJULmluZGV4T2YodCk/YT0xOi0xIT09aS5MRUZUU1RBUlQuaW5kZXhPZih0KT9uPTE6LTEhPT1pLlRPUFNUQVJULmluZGV4T2YodCk/YT0tMTpuPS0xO3JldHVybltuLGFdfShmLHIsZSkscD1bcyh0LGUsWy1oWzBdLC1oWzFdXSldLGQ9dC56Lmxlbmd0aCxtPXQuelswXS5sZW5ndGgsZz1lLnNsaWNlKCksdj1oLnNsaWNlKCk7Zm9yKGM9MDtjPDFlNDtjKyspe2lmKGY+MjA/KGY9aS5DSE9PU0VTQURETEVbZl1bKGhbMF18fGhbMV0pPDA/MDoxXSx0LmNyb3NzaW5nc1t1XT1pLlNBRERMRVJFTUFJTkRFUltmXSk6ZGVsZXRlIHQuY3Jvc3NpbmdzW3VdLCEoaD1pLk5FV0RFTFRBW2ZdKSl7bi5sb2coIkZvdW5kIGJhZCBtYXJjaGluZyBpbmRleDoiLGYsZSx0LmxldmVsKTticmVha31wLnB1c2gocyh0LGUsaCkpLGVbMF0rPWhbMF0sZVsxXSs9aFsxXSx1PWUuam9pbigiLCIpLGEocFtwLmxlbmd0aC0xXSxwW3AubGVuZ3RoLTJdLG8sbCkmJnAucG9wKCk7dmFyIHk9aFswXSYmKGVbMF08MHx8ZVswXT5tLTIpfHxoWzFdJiYoZVsxXTwwfHxlWzFdPmQtMik7aWYoZVswXT09PWdbMF0mJmVbMV09PT1nWzFdJiZoWzBdPT09dlswXSYmaFsxXT09PXZbMV18fHImJnkpYnJlYWs7Zj10LmNyb3NzaW5nc1t1XX0xZTQ9PT1jJiZuLmxvZygiSW5maW5pdGUgbG9vcCBpbiBjb250b3VyPyIpO3ZhciB4LGIsXyx3LFQsayxBLE0sUyxFLEwsQyxQLEksTyx6PWEocFswXSxwW3AubGVuZ3RoLTFdLG8sbCksRD0wLFI9LjIqdC5zbW9vdGhpbmcsRj1bXSxCPTA7Zm9yKGM9MTtjPHAubGVuZ3RoO2MrKylDPXBbY10sUD1wW2MtMV0sST12b2lkIDAsTz12b2lkIDAsST1DWzJdLVBbMl0sTz1DWzNdLVBbM10sRCs9QT1NYXRoLnNxcnQoSSpJK08qTyksRi5wdXNoKEEpO3ZhciBOPUQvRi5sZW5ndGgqUjtmdW5jdGlvbiBqKHQpe3JldHVybiBwW3QlcC5sZW5ndGhdfWZvcihjPXAubGVuZ3RoLTI7Yz49QjtjLS0paWYoKHg9RltjXSk8Til7Zm9yKF89MCxiPWMtMTtiPj1CJiZ4K0ZbYl08TjtiLS0peCs9RltiXTtpZih6JiZjPT09cC5sZW5ndGgtMilmb3IoXz0wO188YiYmeCtGW19dPE47XysrKXgrPUZbX107VD1jLWIrXysxLGs9TWF0aC5mbG9vcigoYytiK18rMikvMiksdz16fHxjIT09cC5sZW5ndGgtMj96fHwtMSE9PWI/VCUyP2ooayk6WyhqKGspWzBdK2ooaysxKVswXSkvMiwoaihrKVsxXStqKGsrMSlbMV0pLzJdOnBbMF06cFtwLmxlbmd0aC0xXSxwLnNwbGljZShiKzEsYy1iKzEsdyksYz1iKzEsXyYmKEI9XykseiYmKGM9PT1wLmxlbmd0aC0yP3BbX109cFtwLmxlbmd0aC0xXTowPT09YyYmKHBbcC5sZW5ndGgtMV09cFswXSkpfWZvcihwLnNwbGljZSgwLEIpLGM9MDtjPHAubGVuZ3RoO2MrKylwW2NdLmxlbmd0aD0yO2lmKCEocC5sZW5ndGg8MikpaWYoeilwLnBvcCgpLHQucGF0aHMucHVzaChwKTtlbHNle3J8fG4ubG9nKCJVbmNsb3NlZCBpbnRlcmlvciBjb250b3VyPyIsdC5sZXZlbCxnLmpvaW4oIiwiKSxwLmpvaW4oIkwiKSk7dmFyIFU9ITE7Zm9yKE09MDtNPHQuZWRnZXBhdGhzLmxlbmd0aDtNKyspaWYoRT10LmVkZ2VwYXRoc1tNXSwhVSYmYShFWzBdLHBbcC5sZW5ndGgtMV0sbyxsKSl7cC5wb3AoKSxVPSEwO3ZhciBWPSExO2ZvcihTPTA7Uzx0LmVkZ2VwYXRocy5sZW5ndGg7UysrKWlmKGEoKEw9dC5lZGdlcGF0aHNbU10pW0wubGVuZ3RoLTFdLHBbMF0sbyxsKSl7Vj0hMCxwLnNoaWZ0KCksdC5lZGdlcGF0aHMuc3BsaWNlKE0sMSksUz09PU0/dC5wYXRocy5wdXNoKHAuY29uY2F0KEwpKTooUz5NJiZTLS0sdC5lZGdlcGF0aHNbU109TC5jb25jYXQocCxFKSk7YnJlYWt9Vnx8KHQuZWRnZXBhdGhzW01dPXAuY29uY2F0KEUpKX1mb3IoTT0wO008dC5lZGdlcGF0aHMubGVuZ3RoJiYhVTtNKyspYSgoRT10LmVkZ2VwYXRoc1tNXSlbRS5sZW5ndGgtMV0scFswXSxvLGwpJiYocC5zaGlmdCgpLHQuZWRnZXBhdGhzW01dPUUuY29uY2F0KHApLFU9ITApO1V8fHQuZWRnZXBhdGhzLnB1c2gocCl9fWZ1bmN0aW9uIHModCxlLHIpe3ZhciBuPWVbMF0rTWF0aC5tYXgoclswXSwwKSxpPWVbMV0rTWF0aC5tYXgoclsxXSwwKSxhPXQueltpXVtuXSxvPXQueGF4aXMscz10LnlheGlzO2lmKHJbMV0pe3ZhciBsPSh0LmxldmVsLWEpLyh0LnpbaV1bbisxXS1hKSxjPSgxIT09bD8oMS1sKSpvLmMybCh0Lnhbbl0pOjApKygwIT09bD9sKm8uYzJsKHQueFtuKzFdKTowKTtyZXR1cm5bby5jMnAoby5sMmMoYyksITApLHMuYzJwKHQueVtpXSwhMCksbitsLGldfXZhciB1PSh0LmxldmVsLWEpLyh0LnpbaSsxXVtuXS1hKSxmPSgxIT09dT8oMS11KSpzLmMybCh0LnlbaV0pOjApKygwIT09dT91KnMuYzJsKHQueVtpKzFdKTowKTtyZXR1cm5bby5jMnAodC54W25dLCEwKSxzLmMycChzLmwyYyhmKSwhMCksbixpK3VdfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIGksYSxzLGw7Zm9yKGU9ZXx8LjAxLHI9cnx8LjAxLGE9MDthPHQubGVuZ3RoO2ErKyl7Zm9yKHM9dFthXSxsPTA7bDxzLnN0YXJ0cy5sZW5ndGg7bCsrKW8ocyxzLnN0YXJ0c1tsXSwiZWRnZSIsZSxyKTtmb3IoaT0wO09iamVjdC5rZXlzKHMuY3Jvc3NpbmdzKS5sZW5ndGgmJmk8MWU0OylpKyssbyhzLE9iamVjdC5rZXlzKHMuY3Jvc3NpbmdzKVswXS5zcGxpdCgiLCIpLm1hcChOdW1iZXIpLHZvaWQgMCxlLHIpOzFlND09PWkmJm4ubG9nKCJJbmZpbml0ZSBsb29wIGluIGNvbnRvdXI/Iil9fX0seyIuLi8uLi9saWIiOjUxNSwiLi9jb25zdGFudHMiOjc0OH1dLDc1NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksaT10KCIuLi9oZWF0bWFwL2hvdmVyIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGEsbyl7b3x8KG89e30pLG8uaXNDb250b3VyPSEwO3ZhciBzPWkodCxlLHIsYSxvKTtyZXR1cm4gcyYmcy5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT10LnRyYWNlOyJjb25zdHJhaW50Ij09PWUuY29udG91cnMudHlwZSYmKGUuZmlsbGNvbG9yJiZuLm9wYWNpdHkoZS5maWxsY29sb3IpP3QuY29sb3I9bi5hZGRPcGFjaXR5KGUuZmlsbGNvbG9yLDEpOmUuY29udG91cnMuc2hvd2xpbmVzJiZuLm9wYWNpdHkoZS5saW5lLmNvbG9yKSYmKHQuY29sb3I9bi5hZGRPcGFjaXR5KGUubGluZS5jb2xvciwxKSkpfSkpLHN9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjM2NywiLi4vaGVhdG1hcC9ob3ZlciI6ODA4fV0sNzU4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksY2FsYzp0KCIuL2NhbGMiKSxwbG90OnQoIi4vcGxvdCIpLnBsb3Qsc3R5bGU6dCgiLi9zdHlsZSIpLGNvbG9yYmFyOnQoIi4vY29sb3JiYXIiKSxob3ZlclBvaW50czp0KCIuL2hvdmVyIiksbW9kdWxlVHlwZToidHJhY2UiLG5hbWU6ImNvbnRvdXIiLGJhc2VQbG90TW9kdWxlOnQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbiIpLGNhdGVnb3JpZXM6WyJjYXJ0ZXNpYW4iLCJzdmciLCIyZE1hcCIsImNvbnRvdXIiLCJzaG93TGVnZW5kIl0sbWV0YTp7fX19LHsiLi4vLi4vcGxvdHMvY2FydGVzaWFuIjo1NzgsIi4vYXR0cmlidXRlcyI6NzQ0LCIuL2NhbGMiOjc0NSwiLi9jb2xvcmJhciI6NzQ3LCIuL2RlZmF1bHRzIjo3NTMsIi4vaG92ZXIiOjc1NywiLi9wbG90Ijo3NjIsIi4vc3R5bGUiOjc2NH1dLDc1OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsaSl7aWYoaXx8KGk9e30pLHQoImNvbnRvdXJzLnNob3dsYWJlbHMiKSl7dmFyIGE9ZS5mb250O24uY29lcmNlRm9udCh0LCJjb250b3Vycy5sYWJlbGZvbnQiLHtmYW1pbHk6YS5mYW1pbHksc2l6ZTphLnNpemUsY29sb3I6cn0pLHQoImNvbnRvdXJzLmxhYmVsZm9ybWF0Iil9ITEhPT1pLmhhc0hvdmVyJiZ0KCJ6aG92ZXJmb3JtYXQiKX19LHsiLi4vLi4vbGliIjo1MTV9XSw3NjA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIiksYT10KCIuL2VuZF9wbHVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQuY29udG91cnMscj1lLnN0YXJ0LG89YShlKSxzPWUuc2l6ZXx8MSxsPU1hdGguZmxvb3IoKG8tcikvcykrMSxjPSJsaW5lcyI9PT1lLmNvbG9yaW5nPzA6MSx1PWkuZXh0cmFjdE9wdHModCk7aXNGaW5pdGUocyl8fChzPTEsbD0xKTt2YXIgZixoLHA9dS5yZXZlcnNlc2NhbGU/aS5mbGlwU2NhbGUodS5jb2xvcnNjYWxlKTp1LmNvbG9yc2NhbGUsZD1wLmxlbmd0aCxtPW5ldyBBcnJheShkKSxnPW5ldyBBcnJheShkKTtpZigiaGVhdG1hcCI9PT1lLmNvbG9yaW5nKXt2YXIgdj11Lm1pbix5PXUubWF4O2ZvcihoPTA7aDxkO2grKylmPXBbaF0sbVtoXT1mWzBdKih5LXYpK3YsZ1toXT1mWzFdO3ZhciB4PW4uZXh0ZW50KFt2LHksZS5zdGFydCxlLnN0YXJ0K3MqKGwtMSldKSxiPXhbdjx5PzA6MV0sXz14W3Y8eT8xOjBdO2IhPT12JiYobS5zcGxpY2UoMCwwLGIpLGcuc3BsaWNlKDAsMCxnWzBdKSksXyE9PXkmJihtLnB1c2goXyksZy5wdXNoKGdbZy5sZW5ndGgtMV0pKX1lbHNlIGZvcihoPTA7aDxkO2grKylmPXBbaF0sbVtoXT0oZlswXSoobCtjLTEpLWMvMikqcytyLGdbaF09ZlsxXTtyZXR1cm4gaS5tYWtlQ29sb3JTY2FsZUZ1bmMoe2RvbWFpbjptLHJhbmdlOmd9LHtub051bWVyaWNDaGVjazohMH0pfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiOjM3OSwiLi9lbmRfcGx1cyI6NzU1LCJAcGxvdGx5L2QzIjo1OH1dLDc2MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2NvbnN0YW50cyIpO2Z1bmN0aW9uIGkodCxlKXt2YXIgcj0oZVswXVswXT50PzA6MSkrKGVbMF1bMV0+dD8wOjIpKyhlWzFdWzFdPnQ/MDo0KSsoZVsxXVswXT50PzA6OCk7cmV0dXJuIDU9PT1yfHwxMD09PXI/dD4oZVswXVswXStlWzBdWzFdK2VbMV1bMF0rZVsxXVsxXSkvND81PT09cj83MTM6MTExNDo1PT09cj8xMDQ6MjA4OjE1PT09cj8wOnJ9ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlLHIsYSxvLHMsbCxjLHUsZixoPXRbMF0ueixwPWgubGVuZ3RoLGQ9aFswXS5sZW5ndGgsbT0yPT09cHx8Mj09PWQ7Zm9yKHI9MDtyPHAtMTtyKyspZm9yKG89W10sMD09PXImJihvPW8uY29uY2F0KG4uQk9UVE9NU1RBUlQpKSxyPT09cC0yJiYobz1vLmNvbmNhdChuLlRPUFNUQVJUKSksZT0wO2U8ZC0xO2UrKylmb3IoYT1vLnNsaWNlKCksMD09PWUmJihhPWEuY29uY2F0KG4uTEVGVFNUQVJUKSksZT09PWQtMiYmKGE9YS5jb25jYXQobi5SSUdIVFNUQVJUKSkscz1lKyIsIityLGw9W1toW3JdW2VdLGhbcl1bZSsxXV0sW2hbcisxXVtlXSxoW3IrMV1bZSsxXV1dLGY9MDtmPHQubGVuZ3RoO2YrKykoYz1pKCh1PXRbZl0pLmxldmVsLGwpKSYmKHUuY3Jvc3NpbmdzW3NdPWMsLTEhPT1hLmluZGV4T2YoYykmJih1LnN0YXJ0cy5wdXNoKFtlLHJdKSxtJiYtMSE9PWEuaW5kZXhPZihjLGEuaW5kZXhPZihjKSsxKSYmdS5zdGFydHMucHVzaChbZSxyXSkpKX19LHsiLi9jb25zdGFudHMiOjc0OH1dLDc2MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLG89dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIikscz10KCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiKSxsPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksYz10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vc2V0X2NvbnZlcnQiKSx1PXQoIi4uL2hlYXRtYXAvcGxvdCIpLGY9dCgiLi9tYWtlX2Nyb3NzaW5ncyIpLGg9dCgiLi9maW5kX2FsbF9wYXRocyIpLHA9dCgiLi9lbXB0eV9wYXRoaW5mbyIpLGQ9dCgiLi9jb252ZXJ0X3RvX2NvbnN0cmFpbnRzIiksbT10KCIuL2Nsb3NlX2JvdW5kYXJpZXMiKSxnPXQoIi4vY29uc3RhbnRzIiksdj1nLkxBQkVMT1BUSU1JWkVSO2Z1bmN0aW9uIHkodCxlKXt2YXIgcixuLG8scyxsLGMsdSxmPSIiLGg9MCxwPXQuZWRnZXBhdGhzLm1hcCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gZX0pKSxkPSEwO2Z1bmN0aW9uIG0odCl7cmV0dXJuIE1hdGguYWJzKHRbMV0tZVsyXVsxXSk8LjAxfWZ1bmN0aW9uIGcodCl7cmV0dXJuIE1hdGguYWJzKHRbMF0tZVswXVswXSk8LjAxfWZ1bmN0aW9uIHYodCl7cmV0dXJuIE1hdGguYWJzKHRbMF0tZVsyXVswXSk8LjAxfWZvcig7cC5sZW5ndGg7KXtmb3IoYz1hLnNtb290aG9wZW4odC5lZGdlcGF0aHNbaF0sdC5zbW9vdGhpbmcpLGYrPWQ/YzpjLnJlcGxhY2UoL15NLywiTCIpLHAuc3BsaWNlKHAuaW5kZXhPZihoKSwxKSxyPXQuZWRnZXBhdGhzW2hdW3QuZWRnZXBhdGhzW2hdLmxlbmd0aC0xXSxzPS0xLG89MDtvPDQ7bysrKXtpZighcil7aS5sb2coIk1pc3NpbmcgZW5kPyIsaCx0KTticmVha31mb3IodT1yLE1hdGguYWJzKHVbMV0tZVswXVsxXSk8LjAxJiYhdihyKT9uPWVbMV06ZyhyKT9uPWVbMF06bShyKT9uPWVbM106dihyKSYmKG49ZVsyXSksbD0wO2w8dC5lZGdlcGF0aHMubGVuZ3RoO2wrKyl7dmFyIHk9dC5lZGdlcGF0aHNbbF1bMF07TWF0aC5hYnMoclswXS1uWzBdKTwuMDE/TWF0aC5hYnMoclswXS15WzBdKTwuMDEmJih5WzFdLXJbMV0pKihuWzFdLXlbMV0pPj0wJiYobj15LHM9bCk6TWF0aC5hYnMoclsxXS1uWzFdKTwuMDE/TWF0aC5hYnMoclsxXS15WzFdKTwuMDEmJih5WzBdLXJbMF0pKihuWzBdLXlbMF0pPj0wJiYobj15LHM9bCk6aS5sb2coImVuZHB0IHRvIG5ld2VuZHB0IGlzIG5vdCB2ZXJ0LiBvciBob3J6LiIscixuLHkpfWlmKHI9bixzPj0wKWJyZWFrO2YrPSJMIitufWlmKHM9PT10LmVkZ2VwYXRocy5sZW5ndGgpe2kubG9nKCJ1bmNsb3NlZCBwZXJpbWV0ZXIgcGF0aCIpO2JyZWFrfWg9cywoZD0tMT09PXAuaW5kZXhPZihoKSkmJihoPXBbMF0sZis9IloiKX1mb3IoaD0wO2g8dC5wYXRocy5sZW5ndGg7aCsrKWYrPWEuc21vb3RoY2xvc2VkKHQucGF0aHNbaF0sdC5zbW9vdGhpbmcpO3JldHVybiBmfWZ1bmN0aW9uIHgodCxlLHIsbil7dmFyIGE9ZS53aWR0aC8yLG89ZS5oZWlnaHQvMixzPXQueCxsPXQueSxjPXQudGhldGEsdT1NYXRoLmNvcyhjKSphLGY9TWF0aC5zaW4oYykqYSxoPShzPm4uY2VudGVyP24ucmlnaHQtczpzLW4ubGVmdCkvKHUrTWF0aC5hYnMoTWF0aC5zaW4oYykqbykpLHA9KGw+bi5taWRkbGU/bi5ib3R0b20tbDpsLW4udG9wKS8oTWF0aC5hYnMoZikrTWF0aC5jb3MoYykqbyk7aWYoaDwxfHxwPDEpcmV0dXJuIDEvMDt2YXIgZD12LkVER0VDT1NUKigxLyhoLTEpKzEvKHAtMSkpO2QrPXYuQU5HTEVDT1NUKmMqYztmb3IodmFyIG09cy11LGc9bC1mLHk9cyt1LHg9bCtmLGI9MDtiPHIubGVuZ3RoO2IrKyl7dmFyIF89cltiXSx3PU1hdGguY29zKF8udGhldGEpKl8ud2lkdGgvMixUPU1hdGguc2luKF8udGhldGEpKl8ud2lkdGgvMixrPTIqaS5zZWdtZW50RGlzdGFuY2UobSxnLHkseCxfLngtdyxfLnktVCxfLngrdyxfLnkrVCkvKGUuaGVpZ2h0K18uaGVpZ2h0KSxBPV8ubGV2ZWw9PT1lLmxldmVsLE09QT92LlNBTUVMRVZFTERJU1RBTkNFOjE7aWYoazw9TSlyZXR1cm4gMS8wO2QrPXYuTkVJR0hCT1JDT1NUKihBP3YuU0FNRUxFVkVMRkFDVE9SOjEpLyhrLU0pfXJldHVybiBkfWZ1bmN0aW9uIGIodCl7dmFyIGUscixuPXQudHJhY2UuX2VtcHR5cG9pbnRzLGk9W10sYT10LnoubGVuZ3RoLG89dC56WzBdLmxlbmd0aCxzPVtdO2ZvcihlPTA7ZTxvO2UrKylzLnB1c2goMSk7Zm9yKGU9MDtlPGE7ZSsrKWkucHVzaChzLnNsaWNlKCkpO2ZvcihlPTA7ZTxuLmxlbmd0aDtlKyspaVsocj1uW2VdKVswXV1bclsxXV09MDtyZXR1cm4gdC56bWFzaz1pLGl9ci5wbG90PWZ1bmN0aW9uKHQsZSxvLHMpe3ZhciBsPWUueGF4aXMsYz1lLnlheGlzO2kubWFrZVRyYWNlR3JvdXBzKHMsbywiY29udG91ciIpLmVhY2goKGZ1bmN0aW9uKG8pe3ZhciBzPW4uc2VsZWN0KHRoaXMpLHY9b1swXSx4PXYudHJhY2UsXz12Lngsdz12LnksVD14LmNvbnRvdXJzLGs9cChULGUsdiksQT1pLmVuc3VyZVNpbmdsZShzLCJnIiwiaGVhdG1hcGNvbG9yaW5nIiksTT1bXTsiaGVhdG1hcCI9PT1ULmNvbG9yaW5nJiYoTT1bb10pLHUodCxlLE0sQSksZihrKSxoKGspO3ZhciBTPWwuYzJwKF9bMF0sITApLEU9bC5jMnAoX1tfLmxlbmd0aC0xXSwhMCksTD1jLmMycCh3WzBdLCEwKSxDPWMuYzJwKHdbdy5sZW5ndGgtMV0sITApLFA9W1tTLENdLFtFLENdLFtFLExdLFtTLExdXSxJPWs7ImNvbnN0cmFpbnQiPT09VC50eXBlJiYoST1kKGssVC5fb3BlcmF0aW9uKSksZnVuY3Rpb24odCxlLHIpe3ZhciBuPWkuZW5zdXJlU2luZ2xlKHQsImciLCJjb250b3VyYmciKS5zZWxlY3RBbGwoInBhdGgiKS5kYXRhKCJmaWxsIj09PXIuY29sb3Jpbmc/WzBdOltdKTtuLmVudGVyKCkuYXBwZW5kKCJwYXRoIiksbi5leGl0KCkucmVtb3ZlKCksbi5hdHRyKCJkIiwiTSIrZS5qb2luKCJMIikrIloiKS5zdHlsZSgic3Ryb2tlIiwibm9uZSIpfShzLFAsVCksZnVuY3Rpb24odCxlLHIsYSl7dmFyIG89ImZpbGwiPT09YS5jb2xvcmluZ3x8ImNvbnN0cmFpbnQiPT09YS50eXBlJiYiPSIhPT1hLl9vcGVyYXRpb24scz0iTSIrci5qb2luKCJMIikrIloiO28mJm0oZSxhKTt2YXIgbD1pLmVuc3VyZVNpbmdsZSh0LCJnIiwiY29udG91cmZpbGwiKS5zZWxlY3RBbGwoInBhdGgiKS5kYXRhKG8/ZTpbXSk7bC5lbnRlcigpLmFwcGVuZCgicGF0aCIpLGwuZXhpdCgpLnJlbW92ZSgpLGwuZWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9KHQucHJlZml4Qm91bmRhcnk/czoiIikreSh0LHIpO2U/bi5zZWxlY3QodGhpcykuYXR0cigiZCIsZSkuc3R5bGUoInN0cm9rZSIsIm5vbmUiKTpuLnNlbGVjdCh0aGlzKS5yZW1vdmUoKX0pKX0ocyxJLFAsVCksZnVuY3Rpb24odCxlLG8scyxsKXt2YXIgYz1pLmVuc3VyZVNpbmdsZSh0LCJnIiwiY29udG91cmxpbmVzIiksdT0hMSE9PWwuc2hvd2xpbmVzLGY9bC5zaG93bGFiZWxzLGg9dSYmZixwPXIuY3JlYXRlTGluZXMoYyx1fHxmLGUpLGQ9ci5jcmVhdGVMaW5lQ2xpcChjLGgsbyxzLnRyYWNlLnVpZCksbT10LnNlbGVjdEFsbCgiZy5jb250b3VybGFiZWxzIikuZGF0YShmP1swXTpbXSk7aWYobS5leGl0KCkucmVtb3ZlKCksbS5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoImNvbnRvdXJsYWJlbHMiLCEwKSxmKXt2YXIgdj1bXSx5PVtdO2kuY2xlYXJMb2NhdGlvbkNhY2hlKCk7dmFyIHg9ci5sYWJlbEZvcm1hdHRlcihvLHMpLGI9YS50ZXN0ZXIuYXBwZW5kKCJ0ZXh0IikuYXR0cigiZGF0YS1ub3RleCIsMSkuY2FsbChhLmZvbnQsbC5sYWJlbGZvbnQpLF89ZVswXS54YXhpcyx3PWVbMF0ueWF4aXMsVD1fLl9sZW5ndGgsaz13Ll9sZW5ndGgsQT1fLnJhbmdlLE09dy5yYW5nZSxTPWkuYWdnTnVtcyhNYXRoLm1pbixudWxsLHMueCksRT1pLmFnZ051bXMoTWF0aC5tYXgsbnVsbCxzLngpLEw9aS5hZ2dOdW1zKE1hdGgubWluLG51bGwscy55KSxDPWkuYWdnTnVtcyhNYXRoLm1heCxudWxsLHMueSksUD1NYXRoLm1heChfLmMycChTLCEwKSwwKSxJPU1hdGgubWluKF8uYzJwKEUsITApLFQpLE89TWF0aC5tYXgody5jMnAoQywhMCksMCksej1NYXRoLm1pbih3LmMycChMLCEwKSxrKSxEPXt9O0FbMF08QVsxXT8oRC5sZWZ0PVAsRC5yaWdodD1JKTooRC5sZWZ0PUksRC5yaWdodD1QKSxNWzBdPE1bMV0/KEQudG9wPU8sRC5ib3R0b209eik6KEQudG9wPXosRC5ib3R0b209TyksRC5taWRkbGU9KEQudG9wK0QuYm90dG9tKS8yLEQuY2VudGVyPShELmxlZnQrRC5yaWdodCkvMix2LnB1c2goW1tELmxlZnQsRC50b3BdLFtELnJpZ2h0LEQudG9wXSxbRC5yaWdodCxELmJvdHRvbV0sW0QubGVmdCxELmJvdHRvbV1dKTt2YXIgUj1NYXRoLnNxcnQoVCpUK2sqayksRj1nLkxBQkVMRElTVEFOQ0UqUi9NYXRoLm1heCgxLGUubGVuZ3RoL2cuTEFCRUxJTkNSRUFTRSk7cC5lYWNoKChmdW5jdGlvbih0KXt2YXIgZT1yLmNhbGNUZXh0T3B0cyh0LmxldmVsLHgsYixvKTtuLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoInBhdGgiKS5lYWNoKChmdW5jdGlvbigpe3ZhciB0PWkuZ2V0VmlzaWJsZVNlZ21lbnQodGhpcyxELGUuaGVpZ2h0LzIpO2lmKHQmJiEodC5sZW48KGUud2lkdGgrZS5oZWlnaHQpKmcuTEFCRUxNSU4pKWZvcih2YXIgbj1NYXRoLm1pbihNYXRoLmNlaWwodC5sZW4vRiksZy5MQUJFTE1BWCksYT0wO2E8bjthKyspe3ZhciBvPXIuZmluZEJlc3RUZXh0TG9jYXRpb24odGhpcyx0LGUseSxEKTtpZighbylicmVhaztyLmFkZExhYmVsRGF0YShvLGUseSx2KX19KSl9KSksYi5yZW1vdmUoKSxyLmRyYXdMYWJlbHMobSx5LG8sZCxoP3Y6bnVsbCl9ZiYmIXUmJnAucmVtb3ZlKCl9KHMsayx0LHYsVCksZnVuY3Rpb24odCxlLHIsbixvKXt2YXIgcz1uLnRyYWNlLGw9ci5fZnVsbExheW91dC5fY2xpcHMsYz0iY2xpcCIrcy51aWQsdT1sLnNlbGVjdEFsbCgiIyIrYykuZGF0YShzLmNvbm5lY3RnYXBzP1tdOlswXSk7aWYodS5lbnRlcigpLmFwcGVuZCgiY2xpcFBhdGgiKS5jbGFzc2VkKCJjb250b3VyY2xpcCIsITApLmF0dHIoImlkIixjKSx1LmV4aXQoKS5yZW1vdmUoKSwhMT09PXMuY29ubmVjdGdhcHMpe3ZhciBwPXtsZXZlbDouOSxjcm9zc2luZ3M6e30sc3RhcnRzOltdLGVkZ2VwYXRoczpbXSxwYXRoczpbXSx4YXhpczplLnhheGlzLHlheGlzOmUueWF4aXMseDpuLngseTpuLnksejpiKG4pLHNtb290aGluZzowfTtmKFtwXSksaChbcF0pLG0oW3BdLHt0eXBlOiJsZXZlbHMifSksaS5lbnN1cmVTaW5nbGUodSwicGF0aCIsIiIpLmF0dHIoImQiLChwLnByZWZpeEJvdW5kYXJ5PyJNIitvLmpvaW4oIkwiKSsiWiI6IiIpK3kocCxvKSl9ZWxzZSBjPW51bGw7YS5zZXRDbGlwVXJsKHQsYyxyKX0ocyxlLHQsdixQKX0pKX0sci5jcmVhdGVMaW5lcz1mdW5jdGlvbih0LGUscil7dmFyIG49clswXS5zbW9vdGhpbmcsaT10LnNlbGVjdEFsbCgiZy5jb250b3VybGV2ZWwiKS5kYXRhKGU/cjpbXSk7aWYoaS5leGl0KCkucmVtb3ZlKCksaS5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoImNvbnRvdXJsZXZlbCIsITApLGUpe3ZhciBvPWkuc2VsZWN0QWxsKCJwYXRoLm9wZW5saW5lIikuZGF0YSgoZnVuY3Rpb24odCl7cmV0dXJuIHQucGVkZ2VwYXRoc3x8dC5lZGdlcGF0aHN9KSk7by5leGl0KCkucmVtb3ZlKCksby5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmNsYXNzZWQoIm9wZW5saW5lIiwhMCksby5hdHRyKCJkIiwoZnVuY3Rpb24odCl7cmV0dXJuIGEuc21vb3Rob3Blbih0LG4pfSkpLnN0eWxlKCJzdHJva2UtbWl0ZXJsaW1pdCIsMSkuc3R5bGUoInZlY3Rvci1lZmZlY3QiLCJub24tc2NhbGluZy1zdHJva2UiKTt2YXIgcz1pLnNlbGVjdEFsbCgicGF0aC5jbG9zZWRsaW5lIikuZGF0YSgoZnVuY3Rpb24odCl7cmV0dXJuIHQucHBhdGhzfHx0LnBhdGhzfSkpO3MuZXhpdCgpLnJlbW92ZSgpLHMuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKCJjbG9zZWRsaW5lIiwhMCkscy5hdHRyKCJkIiwoZnVuY3Rpb24odCl7cmV0dXJuIGEuc21vb3RoY2xvc2VkKHQsbil9KSkuc3R5bGUoInN0cm9rZS1taXRlcmxpbWl0IiwxKS5zdHlsZSgidmVjdG9yLWVmZmVjdCIsIm5vbi1zY2FsaW5nLXN0cm9rZSIpfXJldHVybiBpfSxyLmNyZWF0ZUxpbmVDbGlwPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPWU/ImNsaXBsaW5lIituOm51bGwsbz1yLl9mdWxsTGF5b3V0Ll9jbGlwcy5zZWxlY3RBbGwoIiMiK2kpLmRhdGEoZT9bMF06W10pO3JldHVybiBvLmV4aXQoKS5yZW1vdmUoKSxvLmVudGVyKCkuYXBwZW5kKCJjbGlwUGF0aCIpLmNsYXNzZWQoImNvbnRvdXJsaW5lY2xpcCIsITApLmF0dHIoImlkIixpKSxhLnNldENsaXBVcmwodCxpLHIpLG99LHIubGFiZWxGb3JtYXR0ZXI9ZnVuY3Rpb24odCxlKXt2YXIgcj10Ll9mdWxsTGF5b3V0LG49ZS50cmFjZSxpPW4uY29udG91cnMsYT17dHlwZToibGluZWFyIixfaWQ6Inljb250b3VyIixzaG93ZXhwb25lbnQ6ImFsbCIsZXhwb25lbnRmb3JtYXQ6IkIifTtpZihpLmxhYmVsZm9ybWF0KWEudGlja2Zvcm1hdD1pLmxhYmVsZm9ybWF0LGMoYSxyKTtlbHNle3ZhciBzPW8uZXh0cmFjdE9wdHMobik7aWYocyYmcy5jb2xvcmJhciYmcy5jb2xvcmJhci5fYXhpcylhPXMuY29sb3JiYXIuX2F4aXM7ZWxzZXtpZigiY29uc3RyYWludCI9PT1pLnR5cGUpe3ZhciB1PWkudmFsdWU7QXJyYXkuaXNBcnJheSh1KT9hLnJhbmdlPVt1WzBdLHVbdS5sZW5ndGgtMV1dOmEucmFuZ2U9W3UsdV19ZWxzZSBhLnJhbmdlPVtpLnN0YXJ0LGkuZW5kXSxhLm50aWNrcz0oaS5lbmQtaS5zdGFydCkvaS5zaXplO2EucmFuZ2VbMF09PT1hLnJhbmdlWzFdJiYoYS5yYW5nZVsxXSs9YS5yYW5nZVswXXx8MSksYS5udGlja3N8fChhLm50aWNrcz0xZTMpLGMoYSxyKSxsLnByZXBUaWNrcyhhKSxhLl90bWluPW51bGwsYS5fdG1heD1udWxsfX1yZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGwudGlja1RleHQoYSx0KS50ZXh0fX0sci5jYWxjVGV4dE9wdHM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9ZSh0KTtyLnRleHQoaSkuY2FsbChzLmNvbnZlcnRUb1RzcGFucyxuKTt2YXIgbz1yLm5vZGUoKSxsPWEuYkJveChvLCEwKTtyZXR1cm57dGV4dDppLHdpZHRoOmwud2lkdGgsaGVpZ2h0OmwuaGVpZ2h0LGZvbnRTaXplOitvLnN0eWxlWyJmb250LXNpemUiXS5yZXBsYWNlKCJweCIsIiIpLGxldmVsOnQsZHk6KGwudG9wK2wuYm90dG9tKS8yfX0sci5maW5kQmVzdFRleHRMb2NhdGlvbj1mdW5jdGlvbih0LGUscixuLGEpe3ZhciBvLHMsbCxjLHUsZj1yLndpZHRoO2UuaXNDbG9zZWQ/KHM9ZS5sZW4vdi5JTklUSUFMU0VBUkNIUE9JTlRTLG89ZS5taW4rcy8yLGw9ZS5tYXgpOihzPShlLmxlbi1mKS8odi5JTklUSUFMU0VBUkNIUE9JTlRTKzEpLG89ZS5taW4rcytmLzIsbD1lLm1heC0ocytmKS8yKTtmb3IodmFyIGg9MS8wLHA9MDtwPHYuSVRFUkFUSU9OUztwKyspe2Zvcih2YXIgZD1vO2Q8bDtkKz1zKXt2YXIgbT1pLmdldFRleHRMb2NhdGlvbih0LGUudG90YWwsZCxmKSxnPXgobSxyLG4sYSk7ZzxoJiYoaD1nLHU9bSxjPWQpfWlmKGg+Mip2Lk1BWENPU1QpYnJlYWs7cCYmKHMvPTIpLGw9KG89Yy1zLzIpKzEuNSpzfWlmKGg8PXYuTUFYQ09TVClyZXR1cm4gdX0sci5hZGRMYWJlbERhdGE9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9ZS5mb250U2l6ZSxhPWUud2lkdGgraS8zLG89TWF0aC5tYXgoMCxlLmhlaWdodC1pLzMpLHM9dC54LGw9dC55LGM9dC50aGV0YSx1PU1hdGguc2luKGMpLGY9TWF0aC5jb3MoYyksaD1mdW5jdGlvbih0LGUpe3JldHVybltzK3QqZi1lKnUsbCt0KnUrZSpmXX0scD1baCgtYS8yLC1vLzIpLGgoLWEvMixvLzIpLGgoYS8yLG8vMiksaChhLzIsLW8vMildO3IucHVzaCh7dGV4dDplLnRleHQseDpzLHk6bCxkeTplLmR5LHRoZXRhOmMsbGV2ZWw6ZS5sZXZlbCx3aWR0aDphLGhlaWdodDpvfSksbi5wdXNoKHApfSxyLmRyYXdMYWJlbHM9ZnVuY3Rpb24odCxlLHIsYSxvKXt2YXIgbD10LnNlbGVjdEFsbCgidGV4dCIpLmRhdGEoZSwoZnVuY3Rpb24odCl7cmV0dXJuIHQudGV4dCsiLCIrdC54KyIsIit0LnkrIiwiK3QudGhldGF9KSk7aWYobC5leGl0KCkucmVtb3ZlKCksbC5lbnRlcigpLmFwcGVuZCgidGV4dCIpLmF0dHIoeyJkYXRhLW5vdGV4IjoxLCJ0ZXh0LWFuY2hvciI6Im1pZGRsZSJ9KS5lYWNoKChmdW5jdGlvbih0KXt2YXIgZT10LngrTWF0aC5zaW4odC50aGV0YSkqdC5keSxpPXQueS1NYXRoLmNvcyh0LnRoZXRhKSp0LmR5O24uc2VsZWN0KHRoaXMpLnRleHQodC50ZXh0KS5hdHRyKHt4OmUseTppLHRyYW5zZm9ybToicm90YXRlKCIrMTgwKnQudGhldGEvTWF0aC5QSSsiICIrZSsiICIraSsiKSJ9KS5jYWxsKHMuY29udmVydFRvVHNwYW5zLHIpfSkpLG8pe2Zvcih2YXIgYz0iIix1PTA7dTxvLmxlbmd0aDt1KyspYys9Ik0iK29bdV0uam9pbigiTCIpKyJaIjtpLmVuc3VyZVNpbmdsZShhLCJwYXRoIiwiIikuYXR0cigiZCIsYyl9fX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiOjM3OSwiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjozODksIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiOjU0MSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjU2NiwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL3NldF9jb252ZXJ0Ijo1ODUsIi4uL2hlYXRtYXAvcGxvdCI6ODEzLCIuL2Nsb3NlX2JvdW5kYXJpZXMiOjc0NiwiLi9jb25zdGFudHMiOjc0OCwiLi9jb252ZXJ0X3RvX2NvbnN0cmFpbnRzIjo3NTIsIi4vZW1wdHlfcGF0aGluZm8iOjc1NCwiLi9maW5kX2FsbF9wYXRocyI6NzU2LCIuL21ha2VfY3Jvc3NpbmdzIjo3NjEsIkBwbG90bHkvZDMiOjU4fV0sNzYzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksaT10KCIuLi8uLi9saWIiKTtmdW5jdGlvbiBhKHQsZSxyKXt2YXIgaT17dHlwZToibGluZWFyIixyYW5nZTpbdCxlXX07cmV0dXJuIG4uYXV0b1RpY2tzKGksKGUtdCkvKHJ8fDE1KSksaX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10LmNvbnRvdXJzO2lmKHQuYXV0b2NvbnRvdXIpe3ZhciBvPXQuem1pbixzPXQuem1heDsodC56YXV0b3x8dm9pZCAwPT09bykmJihvPWkuYWdnTnVtcyhNYXRoLm1pbixudWxsLGUpKSwodC56YXV0b3x8dm9pZCAwPT09cykmJihzPWkuYWdnTnVtcyhNYXRoLm1heCxudWxsLGUpKTt2YXIgbD1hKG8scyx0Lm5jb250b3Vycyk7ci5zaXplPWwuZHRpY2ssci5zdGFydD1uLnRpY2tGaXJzdChsKSxsLnJhbmdlLnJldmVyc2UoKSxyLmVuZD1uLnRpY2tGaXJzdChsKSxyLnN0YXJ0PT09byYmKHIuc3RhcnQrPXIuc2l6ZSksci5lbmQ9PT1zJiYoci5lbmQtPXIuc2l6ZSksci5zdGFydD5yLmVuZCYmKHIuc3RhcnQ9ci5lbmQ9KHIuc3RhcnQrci5lbmQpLzIpLHQuX2lucHV0LmNvbnRvdXJzfHwodC5faW5wdXQuY29udG91cnM9e30pLGkuZXh0ZW5kRmxhdCh0Ll9pbnB1dC5jb250b3Vycyx7c3RhcnQ6ci5zdGFydCxlbmQ6ci5lbmQsc2l6ZTpyLnNpemV9KSx0Ll9pbnB1dC5hdXRvY29udG91cj0hMH1lbHNlIGlmKCJjb25zdHJhaW50IiE9PXIudHlwZSl7dmFyIGMsdT1yLnN0YXJ0LGY9ci5lbmQsaD10Ll9pbnB1dC5jb250b3VycztpZih1PmYmJihyLnN0YXJ0PWguc3RhcnQ9ZixmPXIuZW5kPWguZW5kPXUsdT1yLnN0YXJ0KSwhKHIuc2l6ZT4wKSljPXU9PT1mPzE6YSh1LGYsdC5uY29udG91cnMpLmR0aWNrLGguc2l6ZT1yLnNpemU9Y319fSx7Ii4uLy4uL2xpYiI6NTE1LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NTY2fV0sNzY0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLGE9dCgiLi4vaGVhdG1hcC9zdHlsZSIpLG89dCgiLi9tYWtlX2NvbG9yX21hcCIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1uLnNlbGVjdCh0KS5zZWxlY3RBbGwoImcuY29udG91ciIpO2Uuc3R5bGUoIm9wYWNpdHkiLChmdW5jdGlvbih0KXtyZXR1cm4gdFswXS50cmFjZS5vcGFjaXR5fSkpLGUuZWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9bi5zZWxlY3QodGhpcykscj10WzBdLnRyYWNlLGE9ci5jb250b3VycyxzPXIubGluZSxsPWEuc2l6ZXx8MSxjPWEuc3RhcnQsdT0iY29uc3RyYWludCI9PT1hLnR5cGUsZj0hdSYmImxpbmVzIj09PWEuY29sb3JpbmcsaD0hdSYmImZpbGwiPT09YS5jb2xvcmluZyxwPWZ8fGg/byhyKTpudWxsO2Uuc2VsZWN0QWxsKCJnLmNvbnRvdXJsZXZlbCIpLmVhY2goKGZ1bmN0aW9uKHQpe24uc2VsZWN0KHRoaXMpLnNlbGVjdEFsbCgicGF0aCIpLmNhbGwoaS5saW5lR3JvdXBTdHlsZSxzLndpZHRoLGY/cCh0LmxldmVsKTpzLmNvbG9yLHMuZGFzaCl9KSk7dmFyIGQ9YS5sYWJlbGZvbnQ7aWYoZS5zZWxlY3RBbGwoImcuY29udG91cmxhYmVscyB0ZXh0IikuZWFjaCgoZnVuY3Rpb24odCl7aS5mb250KG4uc2VsZWN0KHRoaXMpLHtmYW1pbHk6ZC5mYW1pbHksc2l6ZTpkLnNpemUsY29sb3I6ZC5jb2xvcnx8KGY/cCh0LmxldmVsKTpzLmNvbG9yKX0pfSkpLHUpZS5zZWxlY3RBbGwoImcuY29udG91cmZpbGwgcGF0aCIpLnN0eWxlKCJmaWxsIixyLmZpbGxjb2xvcik7ZWxzZSBpZihoKXt2YXIgbTtlLnNlbGVjdEFsbCgiZy5jb250b3VyZmlsbCBwYXRoIikuc3R5bGUoImZpbGwiLChmdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwPT09bSYmKG09dC5sZXZlbCkscCh0LmxldmVsKy41KmwpfSkpLHZvaWQgMD09PW0mJihtPWMpLGUuc2VsZWN0QWxsKCJnLmNvbnRvdXJiZyBwYXRoIikuc3R5bGUoImZpbGwiLHAobS0uNSpsKSl9fSkpLGEodCl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6Mzg5LCIuLi9oZWF0bWFwL3N0eWxlIjo4MTQsIi4vbWFrZV9jb2xvcl9tYXAiOjc2MCwiQHBsb3RseS9kMyI6NTh9XSw3NjU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2RlZmF1bHRzIiksaT10KCIuL2xhYmVsX2RlZmF1bHRzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGEsbyl7dmFyIHMsbD1yKCJjb250b3Vycy5jb2xvcmluZyIpLGM9IiI7ImZpbGwiPT09bCYmKHM9cigiY29udG91cnMuc2hvd2xpbmVzIikpLCExIT09cyYmKCJsaW5lcyIhPT1sJiYoYz1yKCJsaW5lLmNvbG9yIiwiIzAwMCIpKSxyKCJsaW5lLndpZHRoIiwuNSkscigibGluZS5kYXNoIikpLCJub25lIiE9PWwmJighMCE9PXQuc2hvd2xlZ2VuZCYmKGUuc2hvd2xlZ2VuZD0hMSksZS5fZGZsdFNob3dMZWdlbmQ9ITEsbih0LGUsYSxyLHtwcmVmaXg6IiIsY0xldHRlcjoieiJ9KSkscigibGluZS5zbW9vdGhpbmciKSxpKHIsYSxjLG8pfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiOjM3NywiLi9sYWJlbF9kZWZhdWx0cyI6NzU5fV0sNzY2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2hlYXRtYXAvYXR0cmlidXRlcyIpLGk9dCgiLi4vY29udG91ci9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQscz1pLmNvbnRvdXJzO2UuZXhwb3J0cz1vKHtjYXJwZXQ6e3ZhbFR5cGU6InN0cmluZyIsZWRpdFR5cGU6ImNhbGMifSx6Om4ueixhOm4ueCxhMDpuLngwLGRhOm4uZHgsYjpuLnksYjA6bi55MCxkYjpuLmR5LHRleHQ6bi50ZXh0LGhvdmVydGV4dDpuLmhvdmVydGV4dCx0cmFuc3Bvc2U6bi50cmFuc3Bvc2UsYXR5cGU6bi54dHlwZSxidHlwZTpuLnl0eXBlLGZpbGxjb2xvcjppLmZpbGxjb2xvcixhdXRvY29udG91cjppLmF1dG9jb250b3VyLG5jb250b3VyczppLm5jb250b3Vycyxjb250b3Vyczp7dHlwZTpzLnR5cGUsc3RhcnQ6cy5zdGFydCxlbmQ6cy5lbmQsc2l6ZTpzLnNpemUsY29sb3Jpbmc6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImZpbGwiLCJsaW5lcyIsIm5vbmUiXSxkZmx0OiJmaWxsIixlZGl0VHlwZToiY2FsYyJ9LHNob3dsaW5lczpzLnNob3dsaW5lcyxzaG93bGFiZWxzOnMuc2hvd2xhYmVscyxsYWJlbGZvbnQ6cy5sYWJlbGZvbnQsbGFiZWxmb3JtYXQ6cy5sYWJlbGZvcm1hdCxvcGVyYXRpb246cy5vcGVyYXRpb24sdmFsdWU6cy52YWx1ZSxlZGl0VHlwZToiY2FsYyIsaW1wbGllZEVkaXRzOnthdXRvY29udG91cjohMX19LGxpbmU6e2NvbG9yOmkubGluZS5jb2xvcix3aWR0aDppLmxpbmUud2lkdGgsZGFzaDppLmxpbmUuZGFzaCxzbW9vdGhpbmc6aS5saW5lLnNtb290aGluZyxlZGl0VHlwZToicGxvdCJ9LHRyYW5zZm9ybXM6dm9pZCAwfSxhKCIiLHtjTGV0dGVyOiJ6IixhdXRvQ29sb3JEZmx0OiExfSkpfSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjozNzQsIi4uLy4uL2xpYi9leHRlbmQiOjUwNSwiLi4vY29udG91ci9hdHRyaWJ1dGVzIjo3NDQsIi4uL2hlYXRtYXAvYXR0cmlidXRlcyI6ODAxfV0sNzY3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jYWxjIiksaT10KCIuLi8uLi9saWIiKSxhPXQoIi4uL2hlYXRtYXAvY29udmVydF9jb2x1bW5feHl6Iiksbz10KCIuLi9oZWF0bWFwL2NsZWFuXzJkX2FycmF5Iikscz10KCIuLi9oZWF0bWFwL2ludGVycDJkIiksbD10KCIuLi9oZWF0bWFwL2ZpbmRfZW1wdGllcyIpLGM9dCgiLi4vaGVhdG1hcC9tYWtlX2JvdW5kX2FycmF5IiksdT10KCIuL2RlZmF1bHRzIiksZj10KCIuLi9jYXJwZXQvbG9va3VwX2NhcnBldGlkIiksaD10KCIuLi9jb250b3VyL3NldF9jb250b3VycyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPWUuX2NhcnBldFRyYWNlPWYodCxlKTtpZihyJiZyLnZpc2libGUmJiJsZWdlbmRvbmx5IiE9PXIudmlzaWJsZSl7aWYoIWUuYXx8IWUuYil7dmFyIHA9dC5kYXRhW3IuaW5kZXhdLGQ9dC5kYXRhW2UuaW5kZXhdO2QuYXx8KGQuYT1wLmEpLGQuYnx8KGQuYj1wLmIpLHUoZCxlLGUuX2RlZmF1bHRDb2xvcix0Ll9mdWxsTGF5b3V0KX12YXIgbT1mdW5jdGlvbih0LGUpe3ZhciByLHUsZixoLHAsZCxtLGc9ZS5fY2FycGV0VHJhY2Usdj1nLmFheGlzLHk9Zy5iYXhpczt2Ll9taW5EdGljaz0wLHkuX21pbkR0aWNrPTAsaS5pc0FycmF5MUQoZS56KSYmYShlLHYseSwiYSIsImIiLFsieiJdKTtyPWUuX2E9ZS5fYXx8ZS5hLGg9ZS5fYj1lLl9ifHxlLmIscj1yP3YubWFrZUNhbGNkYXRhKGUsIl9hIik6W10saD1oP3kubWFrZUNhbGNkYXRhKGUsIl9iIik6W10sdT1lLmEwfHwwLGY9ZS5kYXx8MSxwPWUuYjB8fDAsZD1lLmRifHwxLG09ZS5fej1vKGUuX3p8fGUueixlLnRyYW5zcG9zZSksZS5fZW1wdHlwb2ludHM9bChtKSxzKG0sZS5fZW1wdHlwb2ludHMpO3ZhciB4PWkubWF4Um93TGVuZ3RoKG0pLGI9InNjYWxlZCI9PT1lLnh0eXBlPyIiOnIsXz1jKGUsYix1LGYseCx2KSx3PSJzY2FsZWQiPT09ZS55dHlwZT8iIjpoLFQ9YyhlLHcscCxkLG0ubGVuZ3RoLHkpLGs9e2E6XyxiOlQsejptfTsibGV2ZWxzIj09PWUuY29udG91cnMudHlwZSYmIm5vbmUiIT09ZS5jb250b3Vycy5jb2xvcmluZyYmbih0LGUse3ZhbHM6bSxjb250YWluZXJTdHI6IiIsY0xldHRlcjoieiJ9KTtyZXR1cm5ba119KHQsZSk7cmV0dXJuIGgoZSxlLl96KSxtfX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2NhbGMiOjM3NSwiLi4vLi4vbGliIjo1MTUsIi4uL2NhcnBldC9sb29rdXBfY2FycGV0aWQiOjcxNywiLi4vY29udG91ci9zZXRfY29udG91cnMiOjc2MywiLi4vaGVhdG1hcC9jbGVhbl8yZF9hcnJheSI6ODAzLCIuLi9oZWF0bWFwL2NvbnZlcnRfY29sdW1uX3h5eiI6ODA1LCIuLi9oZWF0bWFwL2ZpbmRfZW1wdGllcyI6ODA3LCIuLi9oZWF0bWFwL2ludGVycDJkIjo4MTAsIi4uL2hlYXRtYXAvbWFrZV9ib3VuZF9hcnJheSI6ODEyLCIuL2RlZmF1bHRzIjo3Njh9XSw3Njg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi9oZWF0bWFwL3h5el9kZWZhdWx0cyIpLGE9dCgiLi9hdHRyaWJ1dGVzIiksbz10KCIuLi9jb250b3VyL2NvbnN0cmFpbnRfZGVmYXVsdHMiKSxzPXQoIi4uL2NvbnRvdXIvY29udG91cnNfZGVmYXVsdHMiKSxsPXQoIi4uL2NvbnRvdXIvc3R5bGVfZGVmYXVsdHMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYyl7ZnVuY3Rpb24gdShyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsYSxyLGkpfWlmKHUoImNhcnBldCIpLHQuYSYmdC5iKXtpZighaSh0LGUsdSxjLCJhIiwiYiIpKXJldHVybiB2b2lkKGUudmlzaWJsZT0hMSk7dSgidGV4dCIpLCJjb25zdHJhaW50Ij09PXUoImNvbnRvdXJzLnR5cGUiKT9vKHQsZSx1LGMscix7aGFzSG92ZXI6ITF9KToocyh0LGUsdSwoZnVuY3Rpb24ocil7cmV0dXJuIG4uY29lcmNlMih0LGUsYSxyKX0pKSxsKHQsZSx1LGMse2hhc0hvdmVyOiExfSkpfWVsc2UgZS5fZGVmYXVsdENvbG9yPXIsZS5fbGVuZ3RoPW51bGx9fSx7Ii4uLy4uL2xpYiI6NTE1LCIuLi9jb250b3VyL2NvbnN0cmFpbnRfZGVmYXVsdHMiOjc0OSwiLi4vY29udG91ci9jb250b3Vyc19kZWZhdWx0cyI6NzUxLCIuLi9jb250b3VyL3N0eWxlX2RlZmF1bHRzIjo3NjUsIi4uL2hlYXRtYXAveHl6X2RlZmF1bHRzIjo4MTYsIi4vYXR0cmlidXRlcyI6NzY2fV0sNzY5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksY29sb3JiYXI6dCgiLi4vY29udG91ci9jb2xvcmJhciIpLGNhbGM6dCgiLi9jYWxjIikscGxvdDp0KCIuL3Bsb3QiKSxzdHlsZTp0KCIuLi9jb250b3VyL3N0eWxlIiksbW9kdWxlVHlwZToidHJhY2UiLG5hbWU6ImNvbnRvdXJjYXJwZXQiLGJhc2VQbG90TW9kdWxlOnQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbiIpLGNhdGVnb3JpZXM6WyJjYXJ0ZXNpYW4iLCJzdmciLCJjYXJwZXQiLCJjb250b3VyIiwic3ltYm9scyIsInNob3dMZWdlbmQiLCJoYXNMaW5lcyIsImNhcnBldERlcGVuZGVudCIsIm5vSG92ZXIiLCJub1NvcnRpbmdCeVZhbHVlIl0sbWV0YTp7fX19LHsiLi4vLi4vcGxvdHMvY2FydGVzaWFuIjo1NzgsIi4uL2NvbnRvdXIvY29sb3JiYXIiOjc0NywiLi4vY29udG91ci9zdHlsZSI6NzY0LCIuL2F0dHJpYnV0ZXMiOjc2NiwiLi9jYWxjIjo3NjcsIi4vZGVmYXVsdHMiOjc2OCwiLi9wbG90Ijo3NzB9XSw3NzA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vY2FycGV0L21hcF8xZF9hcnJheSIpLGE9dCgiLi4vY2FycGV0L21ha2VwYXRoIiksbz10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxzPXQoIi4uLy4uL2xpYiIpLGw9dCgiLi4vY29udG91ci9tYWtlX2Nyb3NzaW5ncyIpLGM9dCgiLi4vY29udG91ci9maW5kX2FsbF9wYXRocyIpLHU9dCgiLi4vY29udG91ci9wbG90IiksZj10KCIuLi9jb250b3VyL2NvbnN0YW50cyIpLGg9dCgiLi4vY29udG91ci9jb252ZXJ0X3RvX2NvbnN0cmFpbnRzIikscD10KCIuLi9jb250b3VyL2VtcHR5X3BhdGhpbmZvIiksZD10KCIuLi9jb250b3VyL2Nsb3NlX2JvdW5kYXJpZXMiKSxtPXQoIi4uL2NhcnBldC9sb29rdXBfY2FycGV0aWQiKSxnPXQoIi4uL2NhcnBldC9heGlzX2FsaWduZWRfbGluZSIpO2Z1bmN0aW9uIHYodCxlLHIpe3ZhciBuPXQuZ2V0UG9pbnRBdExlbmd0aChlKSxpPXQuZ2V0UG9pbnRBdExlbmd0aChyKSxhPWkueC1uLngsbz1pLnktbi55LHM9TWF0aC5zcXJ0KGEqYStvKm8pO3JldHVyblthL3Msby9zXX1mdW5jdGlvbiB5KHQpe3ZhciBlPU1hdGguc3FydCh0WzBdKnRbMF0rdFsxXSp0WzFdKTtyZXR1cm5bdFswXS9lLHRbMV0vZV19ZnVuY3Rpb24geCh0LGUpe3ZhciByPU1hdGguYWJzKHRbMF0qZVswXSt0WzFdKmVbMV0pO3JldHVybiBNYXRoLnNxcnQoMS1yKnIpL3J9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGIpe3ZhciBfPWUueGF4aXMsdz1lLnlheGlzO3MubWFrZVRyYWNlR3JvdXBzKGIsciwiY29udG91ciIpLmVhY2goKGZ1bmN0aW9uKHIpe3ZhciBiPW4uc2VsZWN0KHRoaXMpLFQ9clswXSxrPVQudHJhY2UsQT1rLl9jYXJwZXRUcmFjZT1tKHQsayksTT10LmNhbGNkYXRhW0EuaW5kZXhdWzBdO2lmKEEudmlzaWJsZSYmImxlZ2VuZG9ubHkiIT09QS52aXNpYmxlKXt2YXIgUz1ULmEsRT1ULmIsTD1rLmNvbnRvdXJzLEM9cChMLGUsVCksUD0iY29uc3RyYWludCI9PT1MLnR5cGUsST1MLl9vcGVyYXRpb24sTz1QPyI9Ij09PUk/ImxpbmVzIjoiZmlsbCI6TC5jb2xvcmluZyx6PVtbU1swXSxFW0UubGVuZ3RoLTFdXSxbU1tTLmxlbmd0aC0xXSxFW0UubGVuZ3RoLTFdXSxbU1tTLmxlbmd0aC0xXSxFWzBdXSxbU1swXSxFWzBdXV07bChDKTt2YXIgRD0xZS04KihTW1MubGVuZ3RoLTFdLVNbMF0pLFI9MWUtOCooRVtFLmxlbmd0aC0xXS1FWzBdKTtjKEMsRCxSKTt2YXIgRixCLE4saixVPUM7ImNvbnN0cmFpbnQiPT09TC50eXBlJiYoVT1oKEMsSSkpLGZ1bmN0aW9uKHQsZSl7dmFyIHIsbixpLGEsbyxzLGwsYyx1O2ZvcihyPTA7cjx0Lmxlbmd0aDtyKyspe2ZvcihhPXRbcl0sbz1hLnBlZGdlcGF0aHM9W10scz1hLnBwYXRocz1bXSxuPTA7bjxhLmVkZ2VwYXRocy5sZW5ndGg7bisrKXtmb3IodT1hLmVkZ2VwYXRoc1tuXSxsPVtdLGk9MDtpPHUubGVuZ3RoO2krKylsW2ldPWUodVtpXSk7by5wdXNoKGwpfWZvcihuPTA7bjxhLnBhdGhzLmxlbmd0aDtuKyspe2Zvcih1PWEucGF0aHNbbl0sYz1bXSxpPTA7aTx1Lmxlbmd0aDtpKyspY1tpXT1lKHVbaV0pO3MucHVzaChjKX19fShDLHEpO3ZhciBWPVtdO2ZvcihqPU0uY2xpcHNlZ21lbnRzLmxlbmd0aC0xO2o+PTA7ai0tKUY9TS5jbGlwc2VnbWVudHNbal0sQj1pKFtdLEYueCxfLmMycCksTj1pKFtdLEYueSx3LmMycCksQi5yZXZlcnNlKCksTi5yZXZlcnNlKCksVi5wdXNoKGEoQixOLEYuYmljdWJpYykpO3ZhciBIPSJNIitWLmpvaW4oIkwiKSsiWiI7IWZ1bmN0aW9uKHQsZSxyLG4sbyxsKXt2YXIgYyx1LGYsaCxwPXMuZW5zdXJlU2luZ2xlKHQsImciLCJjb250b3VyYmciKS5zZWxlY3RBbGwoInBhdGgiKS5kYXRhKCJmaWxsIiE9PWx8fG8/W106WzBdKTtwLmVudGVyKCkuYXBwZW5kKCJwYXRoIikscC5leGl0KCkucmVtb3ZlKCk7dmFyIGQ9W107Zm9yKGg9MDtoPGUubGVuZ3RoO2grKyljPWVbaF0sdT1pKFtdLGMueCxyLmMycCksZj1pKFtdLGMueSxuLmMycCksZC5wdXNoKGEodSxmLGMuYmljdWJpYykpO3AuYXR0cigiZCIsIk0iK2Quam9pbigiTCIpKyJaIikuc3R5bGUoInN0cm9rZSIsIm5vbmUiKX0oYixNLmNsaXBzZWdtZW50cyxfLHcsUCxPKSxmdW5jdGlvbih0LGUscixpLGEsbCxjLHUsZixoLHApe3ZhciBtPSJmaWxsIj09PWg7bSYmZChhLHQuY29udG91cnMpO3ZhciB2PXMuZW5zdXJlU2luZ2xlKGUsImciLCJjb250b3VyZmlsbCIpLnNlbGVjdEFsbCgicGF0aCIpLmRhdGEobT9hOltdKTt2LmVudGVyKCkuYXBwZW5kKCJwYXRoIiksdi5leGl0KCkucmVtb3ZlKCksdi5lYWNoKChmdW5jdGlvbih0KXt2YXIgZT0odC5wcmVmaXhCb3VuZGFyeT9wOiIiKStmdW5jdGlvbih0LGUscixuLGksYSxsLGMpe3ZhciB1LGYsaCxwLGQsbSx2LHk9IiIseD1lLmVkZ2VwYXRocy5tYXAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV9KSksYj0hMCxfPTFlLTQqTWF0aC5hYnMoclswXVswXS1yWzJdWzBdKSx3PTFlLTQqTWF0aC5hYnMoclswXVsxXS1yWzJdWzFdKTtmdW5jdGlvbiBUKHQpe3JldHVybiBNYXRoLmFicyh0WzFdLXJbMF1bMV0pPHd9ZnVuY3Rpb24gayh0KXtyZXR1cm4gTWF0aC5hYnModFsxXS1yWzJdWzFdKTx3fWZ1bmN0aW9uIEEodCl7cmV0dXJuIE1hdGguYWJzKHRbMF0tclswXVswXSk8X31mdW5jdGlvbiBNKHQpe3JldHVybiBNYXRoLmFicyh0WzBdLXJbMl1bMF0pPF99ZnVuY3Rpb24gUyh0LGUpe3ZhciByLG4sbyxzLHU9IiI7Zm9yKFQodCkmJiFNKHQpfHxrKHQpJiYhQSh0KT8ocz1pLmFheGlzLG89ZyhpLGEsW3RbMF0sZVswXV0sLjUqKHRbMV0rZVsxXSkpKToocz1pLmJheGlzLG89ZyhpLGEsLjUqKHRbMF0rZVswXSksW3RbMV0sZVsxXV0pKSxyPTE7cjxvLmxlbmd0aDtyKyspZm9yKHUrPXMuc21vb3RoaW5nPyJDIjoiTCIsbj0wO248b1tyXS5sZW5ndGg7bisrKXt2YXIgZj1vW3JdW25dO3UrPVtsLmMycChmWzBdKSxjLmMycChmWzFdKV0rIiAifXJldHVybiB1fXU9MCxmPW51bGw7Zm9yKDt4Lmxlbmd0aDspe3ZhciBFPWUuZWRnZXBhdGhzW3VdWzBdO2ZvcihmJiYoeSs9UyhmLEUpKSx2PW8uc21vb3Rob3BlbihlLmVkZ2VwYXRoc1t1XS5tYXAobiksZS5zbW9vdGhpbmcpLHkrPWI/djp2LnJlcGxhY2UoL15NLywiTCIpLHguc3BsaWNlKHguaW5kZXhPZih1KSwxKSxmPWUuZWRnZXBhdGhzW3VdW2UuZWRnZXBhdGhzW3VdLmxlbmd0aC0xXSxkPS0xLHA9MDtwPDQ7cCsrKXtpZighZil7cy5sb2coIk1pc3NpbmcgZW5kPyIsdSxlKTticmVha31mb3IoVChmKSYmIU0oZik/aD1yWzFdOkEoZik/aD1yWzBdOmsoZik/aD1yWzNdOk0oZikmJihoPXJbMl0pLG09MDttPGUuZWRnZXBhdGhzLmxlbmd0aDttKyspe3ZhciBMPWUuZWRnZXBhdGhzW21dWzBdO01hdGguYWJzKGZbMF0taFswXSk8Xz9NYXRoLmFicyhmWzBdLUxbMF0pPF8mJihMWzFdLWZbMV0pKihoWzFdLUxbMV0pPj0wJiYoaD1MLGQ9bSk6TWF0aC5hYnMoZlsxXS1oWzFdKTx3P01hdGguYWJzKGZbMV0tTFsxXSk8dyYmKExbMF0tZlswXSkqKGhbMF0tTFswXSk+PTAmJihoPUwsZD1tKTpzLmxvZygiZW5kcHQgdG8gbmV3ZW5kcHQgaXMgbm90IHZlcnQuIG9yIGhvcnouIixmLGgsTCl9aWYoZD49MClicmVhazt5Kz1TKGYsaCksZj1ofWlmKGQ9PT1lLmVkZ2VwYXRocy5sZW5ndGgpe3MubG9nKCJ1bmNsb3NlZCBwZXJpbWV0ZXIgcGF0aCIpO2JyZWFrfXU9ZCwoYj0tMT09PXguaW5kZXhPZih1KSkmJih1PXhbMF0seSs9UyhmLGgpKyJaIixmPW51bGwpfWZvcih1PTA7dTxlLnBhdGhzLmxlbmd0aDt1KyspeSs9by5zbW9vdGhjbG9zZWQoZS5wYXRoc1t1XS5tYXAobiksZS5zbW9vdGhpbmcpO3JldHVybiB5fSgwLHQsbCxjLHUsZixyLGkpO2U/bi5zZWxlY3QodGhpcykuYXR0cigiZCIsZSkuc3R5bGUoInN0cm9rZSIsIm5vbmUiKTpuLnNlbGVjdCh0aGlzKS5yZW1vdmUoKX0pKX0oayxiLF8sdyxVLHoscSxBLE0sTyxIKSxmdW5jdGlvbih0LGUscixpLGEsbCxjKXt2YXIgaD1zLmVuc3VyZVNpbmdsZSh0LCJnIiwiY29udG91cmxpbmVzIikscD0hMSE9PWEuc2hvd2xpbmVzLGQ9YS5zaG93bGFiZWxzLG09cCYmZCxnPXUuY3JlYXRlTGluZXMoaCxwfHxkLGUpLGI9dS5jcmVhdGVMaW5lQ2xpcChoLG0scixpLnRyYWNlLnVpZCksXz10LnNlbGVjdEFsbCgiZy5jb250b3VybGFiZWxzIikuZGF0YShkP1swXTpbXSk7aWYoXy5leGl0KCkucmVtb3ZlKCksXy5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoImNvbnRvdXJsYWJlbHMiLCEwKSxkKXt2YXIgdz1sLnhheGlzLFQ9bC55YXhpcyxrPXcuX2xlbmd0aCxBPVQuX2xlbmd0aCxNPVtbWzAsMF0sW2ssMF0sW2ssQV0sWzAsQV1dXSxTPVtdO3MuY2xlYXJMb2NhdGlvbkNhY2hlKCk7dmFyIEU9dS5sYWJlbEZvcm1hdHRlcihyLGkpLEw9by50ZXN0ZXIuYXBwZW5kKCJ0ZXh0IikuYXR0cigiZGF0YS1ub3RleCIsMSkuY2FsbChvLmZvbnQsYS5sYWJlbGZvbnQpLEM9e2xlZnQ6MCxyaWdodDprLGNlbnRlcjprLzIsdG9wOjAsYm90dG9tOkEsbWlkZGxlOkEvMn0sUD1NYXRoLnNxcnQoayprK0EqQSksST1mLkxBQkVMRElTVEFOQ0UqUC9NYXRoLm1heCgxLGUubGVuZ3RoL2YuTEFCRUxJTkNSRUFTRSk7Zy5lYWNoKChmdW5jdGlvbih0KXt2YXIgZT11LmNhbGNUZXh0T3B0cyh0LmxldmVsLEUsTCxyKTtuLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoInBhdGgiKS5lYWNoKChmdW5jdGlvbihyKXt2YXIgbj1zLmdldFZpc2libGVTZWdtZW50KHRoaXMsQyxlLmhlaWdodC8yKTtpZihuJiYoZnVuY3Rpb24odCxlLHIsbixpLGEpe2Zvcih2YXIgbyxzPTA7czxyLnBlZGdlcGF0aHMubGVuZ3RoO3MrKyllPT09ci5wZWRnZXBhdGhzW3NdJiYobz1yLmVkZ2VwYXRoc1tzXSk7aWYoIW8pcmV0dXJuO3ZhciBsPWkuYVswXSxjPWkuYVtpLmEubGVuZ3RoLTFdLHU9aS5iWzBdLGY9aS5iW2kuYi5sZW5ndGgtMV07ZnVuY3Rpb24gaCh0LGUpe3ZhciByLG49MDtyZXR1cm4oTWF0aC5hYnModFswXS1sKTwuMXx8TWF0aC5hYnModFswXS1jKTwuMSkmJihyPXkoaS5keHlkYl9yb3VnaCh0WzBdLHRbMV0sLjEpKSxuPU1hdGgubWF4KG4sYSp4KGUscikvMikpLChNYXRoLmFicyh0WzFdLXUpPC4xfHxNYXRoLmFicyh0WzFdLWYpPC4xKSYmKHI9eShpLmR4eWRhX3JvdWdoKHRbMF0sdFsxXSwuMSkpLG49TWF0aC5tYXgobixhKngoZSxyKS8yKSksbn12YXIgcD12KHQsMCwxKSxkPXYodCxuLnRvdGFsLG4udG90YWwtMSksbT1oKG9bMF0scCksZz1uLnRvdGFsLWgob1tvLmxlbmd0aC0xXSxkKTtuLm1pbjxtJiYobi5taW49bSk7bi5tYXg+ZyYmKG4ubWF4PWcpO24ubGVuPW4ubWF4LW4ubWlufSh0aGlzLHIsdCxuLGMsZS5oZWlnaHQpLCEobi5sZW48KGUud2lkdGgrZS5oZWlnaHQpKmYuTEFCRUxNSU4pKSlmb3IodmFyIGk9TWF0aC5taW4oTWF0aC5jZWlsKG4ubGVuL0kpLGYuTEFCRUxNQVgpLGE9MDthPGk7YSsrKXt2YXIgbz11LmZpbmRCZXN0VGV4dExvY2F0aW9uKHRoaXMsbixlLFMsQyk7aWYoIW8pYnJlYWs7dS5hZGRMYWJlbERhdGEobyxlLFMsTSl9fSkpfSkpLEwucmVtb3ZlKCksdS5kcmF3TGFiZWxzKF8sUyxyLGIsbT9NOm51bGwpfWQmJiFwJiZnLnJlbW92ZSgpfShiLEMsdCxULEwsZSxBKSxvLnNldENsaXBVcmwoYixBLl9jbGlwUGF0aElkLHQpfWZ1bmN0aW9uIHEodCl7dmFyIGU9QS5hYjJ4eSh0WzBdLHRbMV0sITApO3JldHVybltfLmMycChlWzBdKSx3LmMycChlWzFdKV19fSkpfX0seyIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjM4OSwiLi4vLi4vbGliIjo1MTUsIi4uL2NhcnBldC9heGlzX2FsaWduZWRfbGluZSI6NzAxLCIuLi9jYXJwZXQvbG9va3VwX2NhcnBldGlkIjo3MTcsIi4uL2NhcnBldC9tYWtlcGF0aCI6NzE4LCIuLi9jYXJwZXQvbWFwXzFkX2FycmF5Ijo3MTksIi4uL2NvbnRvdXIvY2xvc2VfYm91bmRhcmllcyI6NzQ2LCIuLi9jb250b3VyL2NvbnN0YW50cyI6NzQ4LCIuLi9jb250b3VyL2NvbnZlcnRfdG9fY29uc3RyYWludHMiOjc1MiwiLi4vY29udG91ci9lbXB0eV9wYXRoaW5mbyI6NzU0LCIuLi9jb250b3VyL2ZpbmRfYWxsX3BhdGhzIjo3NTYsIi4uL2NvbnRvdXIvbWFrZV9jcm9zc2luZ3MiOjc2MSwiLi4vY29udG91ci9wbG90Ijo3NjIsIkBwbG90bHkvZDMiOjU4fV0sNzcxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIiksaT10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikuaG92ZXJ0ZW1wbGF0ZUF0dHJzLGE9dCgiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyIpLG89dCgiLi4vc2NhdHRlcm1hcGJveC9hdHRyaWJ1dGVzIikscz10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdDtlLmV4cG9ydHM9cyh7bG9uOm8ubG9uLGxhdDpvLmxhdCx6Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LHJhZGl1czp7dmFsVHlwZToibnVtYmVyIixlZGl0VHlwZToicGxvdCIsYXJyYXlPazohMCxtaW46MSxkZmx0OjMwfSxiZWxvdzp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToicGxvdCJ9LHRleHQ6by50ZXh0LGhvdmVydGV4dDpvLmhvdmVydGV4dCxob3ZlcmluZm86cyh7fSxhLmhvdmVyaW5mbyx7ZmxhZ3M6WyJsb24iLCJsYXQiLCJ6IiwidGV4dCIsIm5hbWUiXX0pLGhvdmVydGVtcGxhdGU6aSgpLHNob3dsZWdlbmQ6cyh7fSxhLnNob3dsZWdlbmQse2RmbHQ6ITF9KX0sbigiIix7Y0xldHRlcjoieiIsZWRpdFR5cGVPdmVycmlkZToiY2FsYyJ9KSl9LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiOjM3NCwiLi4vLi4vbGliL2V4dGVuZCI6NTA1LCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIjo1NjIsIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjY0MiwiLi4vc2NhdHRlcm1hcGJveC9hdHRyaWJ1dGVzIjoxMDAyfV0sNzcyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksaT10KCIuLi8uLi9saWIiKS5pc0FycmF5T3JUeXBlZEFycmF5LGE9dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTSxvPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jYWxjIikscz10KCIuLi8uLi9saWIiKS5fO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1lLl9sZW5ndGgsbD1uZXcgQXJyYXkociksYz1lLnosdT1pKGMpJiZjLmxlbmd0aCxmPTA7ZjxyO2YrKyl7dmFyIGg9bFtmXT17fSxwPWUubG9uW2ZdLGQ9ZS5sYXRbZl07aWYoaC5sb25sYXQ9bihwKSYmbihkKT9bK3AsK2RdOlthLGFdLHUpe3ZhciBtPWNbZl07aC56PW4obSk/bTphfX1yZXR1cm4gbyh0LGUse3ZhbHM6dT9jOlswLDFdLGNvbnRhaW5lclN0cjoiIixjTGV0dGVyOiJ6In0pLHImJihsWzBdLnQ9e2xhYmVsczp7bGF0OnModCwibGF0OiIpKyIgIixsb246cyh0LCJsb246IikrIiAifX0pLGx9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jYWxjIjozNzUsIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiOjQ5MSwiLi4vLi4vbGliIjo1MTUsImZhc3QtaXNudW1lcmljIjoxOTB9XSw3NzM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxpPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLG89dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIikscz10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQkFETlVNLGw9dCgiLi4vLi4vbGliL2dlb2pzb25fdXRpbHMiKS5tYWtlQmxhbms7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0udHJhY2Uscj0hMD09PWUudmlzaWJsZSYmMCE9PWUuX2xlbmd0aCxjPWUuX29wdHM9e2hlYXRtYXA6e2xheW91dDp7dmlzaWJpbGl0eToibm9uZSJ9LHBhaW50Ont9fSxnZW9qc29uOmwoKX07aWYoIXIpcmV0dXJuIGM7dmFyIHUsZj1bXSxoPWUueixwPWUucmFkaXVzLGQ9aS5pc0FycmF5T3JUeXBlZEFycmF5KGgpJiZoLmxlbmd0aCxtPWkuaXNBcnJheU9yVHlwZWRBcnJheShwKTtmb3IodT0wO3U8dC5sZW5ndGg7dSsrKXt2YXIgZz10W3VdLHY9Zy5sb25sYXQ7aWYodlswXSE9PXMpe3ZhciB5PXt9O2lmKGQpe3ZhciB4PWcuejt5Lno9eCE9PXM/eDowfW0mJih5LnI9bihwW3VdKSYmcFt1XT4wPytwW3VdOjApLGYucHVzaCh7dHlwZToiRmVhdHVyZSIsZ2VvbWV0cnk6e3R5cGU6IlBvaW50Iixjb29yZGluYXRlczp2fSxwcm9wZXJ0aWVzOnl9KX19dmFyIGI9by5leHRyYWN0T3B0cyhlKSxfPWIucmV2ZXJzZXNjYWxlP28uZmxpcFNjYWxlKGIuY29sb3JzY2FsZSk6Yi5jb2xvcnNjYWxlLHc9X1swXVsxXSxUPVsiaW50ZXJwb2xhdGUiLFsibGluZWFyIl0sWyJoZWF0bWFwLWRlbnNpdHkiXSwwLGEub3BhY2l0eSh3KTwxP3c6YS5hZGRPcGFjaXR5KHcsMCldO2Zvcih1PTE7dTxfLmxlbmd0aDt1KyspVC5wdXNoKF9bdV1bMF0sX1t1XVsxXSk7dmFyIGs9WyJpbnRlcnBvbGF0ZSIsWyJsaW5lYXIiXSxbImdldCIsInoiXSxiLm1pbiwwLGIubWF4LDFdO3JldHVybiBpLmV4dGVuZEZsYXQoYy5oZWF0bWFwLnBhaW50LHsiaGVhdG1hcC13ZWlnaHQiOmQ/azoxLyhiLm1heC1iLm1pbiksImhlYXRtYXAtY29sb3IiOlQsImhlYXRtYXAtcmFkaXVzIjptP3t0eXBlOiJpZGVudGl0eSIscHJvcGVydHk6InIifTplLnJhZGl1cywiaGVhdG1hcC1vcGFjaXR5IjplLm9wYWNpdHl9KSxjLmdlb2pzb249e3R5cGU6IkZlYXR1cmVDb2xsZWN0aW9uIixmZWF0dXJlczpmfSxjLmhlYXRtYXAubGF5b3V0LnZpc2liaWxpdHk9InZpc2libGUiLGN9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjM2NywiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIjozNzksIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiOjQ5MSwiLi4vLi4vbGliIjo1MTUsIi4uLy4uL2xpYi9nZW9qc29uX3V0aWxzIjo1MDksImZhc3QtaXNudW1lcmljIjoxOTB9XSw3NzQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiKSxhPXQoIi4vYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixvKXtmdW5jdGlvbiBzKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxhLHIsaSl9dmFyIGw9cygibG9uIil8fFtdLGM9cygibGF0Iil8fFtdLHU9TWF0aC5taW4obC5sZW5ndGgsYy5sZW5ndGgpO3U/KGUuX2xlbmd0aD11LHMoInoiKSxzKCJyYWRpdXMiKSxzKCJiZWxvdyIpLHMoInRleHQiKSxzKCJob3ZlcnRleHQiKSxzKCJob3ZlcnRlbXBsYXRlIiksaSh0LGUsbyxzLHtwcmVmaXg6IiIsY0xldHRlcjoieiJ9KSk6ZS52aXNpYmxlPSExfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiOjM3NywiLi4vLi4vbGliIjo1MTUsIi4vYXR0cmlidXRlcyI6NzcxfV0sNzc1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiB0Lmxvbj1lLmxvbix0LmxhdD1lLmxhdCx0Lno9ZS56LHR9fSx7fV0sNzc2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksaT10KCIuLi9zY2F0dGVybWFwYm94L2hvdmVyIikuaG92ZXJQb2ludHMsYT10KCIuLi9zY2F0dGVybWFwYm94L2hvdmVyIikuZ2V0RXh0cmFUZXh0O2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG89aSh0LGUscik7aWYobyl7dmFyIHM9b1swXSxsPXMuY2QsYz1sWzBdLnRyYWNlLHU9bFtzLmluZGV4XTtpZihkZWxldGUgcy5jb2xvciwieiJpbiB1KXt2YXIgZj1zLnN1YnBsb3QubW9ja0F4aXM7cy56PXUueixzLnpMYWJlbD1uLnRpY2tUZXh0KGYsZi5jMmwodS56KSwiaG92ZXIiKS50ZXh0fXJldHVybiBzLmV4dHJhVGV4dD1hKGMsdSxsWzBdLnQubGFiZWxzKSxbc119fX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NTY2LCIuLi9zY2F0dGVybWFwYm94L2hvdmVyIjoxMDA3fV0sNzc3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksY29sb3JiYXI6dCgiLi4vaGVhdG1hcC9jb2xvcmJhciIpLGZvcm1hdExhYmVsczp0KCIuLi9zY2F0dGVybWFwYm94L2Zvcm1hdF9sYWJlbHMiKSxjYWxjOnQoIi4vY2FsYyIpLHBsb3Q6dCgiLi9wbG90IiksaG92ZXJQb2ludHM6dCgiLi9ob3ZlciIpLGV2ZW50RGF0YTp0KCIuL2V2ZW50X2RhdGEiKSxnZXRCZWxvdzpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1lLmdldE1hcExheWVycygpLG49MDtuPHIubGVuZ3RoO24rKyl7dmFyIGk9cltuXSxhPWkuaWQ7aWYoInN5bWJvbCI9PT1pLnR5cGUmJiJzdHJpbmciPT10eXBlb2YgYSYmLTE9PT1hLmluZGV4T2YoInBsb3RseS0iKSlyZXR1cm4gYX19LG1vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJkZW5zaXR5bWFwYm94IixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9tYXBib3giKSxjYXRlZ29yaWVzOlsibWFwYm94IiwiZ2wiLCJzaG93TGVnZW5kIl0sbWV0YTp7aHJfbmFtZToiZGVuc2l0eV9tYXBib3gifX19LHsiLi4vLi4vcGxvdHMvbWFwYm94Ijo2MjIsIi4uL2hlYXRtYXAvY29sb3JiYXIiOjgwNCwiLi4vc2NhdHRlcm1hcGJveC9mb3JtYXRfbGFiZWxzIjoxMDA2LCIuL2F0dHJpYnV0ZXMiOjc3MSwiLi9jYWxjIjo3NzIsIi4vZGVmYXVsdHMiOjc3NCwiLi9ldmVudF9kYXRhIjo3NzUsIi4vaG92ZXIiOjc3NiwiLi9wbG90Ijo3Nzh9XSw3Nzg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9jb252ZXJ0IiksaT10KCIuLi8uLi9wbG90cy9tYXBib3gvY29uc3RhbnRzIikudHJhY2VMYXllclByZWZpeDtmdW5jdGlvbiBhKHQsZSl7dGhpcy50eXBlPSJkZW5zaXR5bWFwYm94Iix0aGlzLnN1YnBsb3Q9dCx0aGlzLnVpZD1lLHRoaXMuc291cmNlSWQ9InNvdXJjZS0iK2UsdGhpcy5sYXllckxpc3Q9W1siaGVhdG1hcCIsaStlKyItaGVhdG1hcCJdXSx0aGlzLmJlbG93PW51bGx9dmFyIG89YS5wcm90b3R5cGU7by51cGRhdGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5zdWJwbG90LHI9dGhpcy5sYXllckxpc3QsaT1uKHQpLGE9ZS5iZWxvd0xvb2t1cFsidHJhY2UtIit0aGlzLnVpZF07ZS5tYXAuZ2V0U291cmNlKHRoaXMuc291cmNlSWQpLnNldERhdGEoaS5nZW9qc29uKSxhIT09dGhpcy5iZWxvdyYmKHRoaXMuX3JlbW92ZUxheWVycygpLHRoaXMuX2FkZExheWVycyhpLGEpLHRoaXMuYmVsb3c9YSk7Zm9yKHZhciBvPTA7bzxyLmxlbmd0aDtvKyspe3ZhciBzPXJbb10sbD1zWzBdLGM9c1sxXSx1PWlbbF07ZS5zZXRPcHRpb25zKGMsInNldExheW91dFByb3BlcnR5Iix1LmxheW91dCksInZpc2libGUiPT09dS5sYXlvdXQudmlzaWJpbGl0eSYmZS5zZXRPcHRpb25zKGMsInNldFBhaW50UHJvcGVydHkiLHUucGFpbnQpfX0sby5fYWRkTGF5ZXJzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXRoaXMuc3VicGxvdCxuPXRoaXMubGF5ZXJMaXN0LGk9dGhpcy5zb3VyY2VJZCxhPTA7YTxuLmxlbmd0aDthKyspe3ZhciBvPW5bYV0scz1vWzBdLGw9dFtzXTtyLmFkZExheWVyKHt0eXBlOnMsaWQ6b1sxXSxzb3VyY2U6aSxsYXlvdXQ6bC5sYXlvdXQscGFpbnQ6bC5wYWludH0sZSl9fSxvLl9yZW1vdmVMYXllcnM9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5zdWJwbG90Lm1hcCxlPXRoaXMubGF5ZXJMaXN0LHI9ZS5sZW5ndGgtMTtyPj0wO3ItLSl0LnJlbW92ZUxheWVyKGVbcl1bMV0pfSxvLmRpc3Bvc2U9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnN1YnBsb3QubWFwO3RoaXMuX3JlbW92ZUxheWVycygpLHQucmVtb3ZlU291cmNlKHRoaXMuc291cmNlSWQpfSxlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLnRyYWNlLGk9bmV3IGEodCxyLnVpZCksbz1pLnNvdXJjZUlkLHM9bihlKSxsPWkuYmVsb3c9dC5iZWxvd0xvb2t1cFsidHJhY2UtIityLnVpZF07cmV0dXJuIHQubWFwLmFkZFNvdXJjZShvLHt0eXBlOiJnZW9qc29uIixkYXRhOnMuZ2VvanNvbn0pLGkuX2FkZExheWVycyhzLGwpLGl9fSx7Ii4uLy4uL3Bsb3RzL21hcGJveC9jb25zdGFudHMiOjYyMCwiLi9jb252ZXJ0Ijo3NzN9XSw3Nzk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspdFtyXS5pPXI7bi5tZXJnZUFycmF5KGUudGV4dCx0LCJ0eCIpLG4ubWVyZ2VBcnJheShlLmhvdmVydGV4dCx0LCJodHgiKTt2YXIgaT1lLm1hcmtlcjtpZihpKXtuLm1lcmdlQXJyYXkoaS5vcGFjaXR5LHQsIm1vIiksbi5tZXJnZUFycmF5KGkuY29sb3IsdCwibWMiKTt2YXIgYT1pLmxpbmU7YSYmKG4ubWVyZ2VBcnJheShhLmNvbG9yLHQsIm1sYyIpLG4ubWVyZ2VBcnJheUNhc3RQb3NpdGl2ZShhLndpZHRoLHQsIm1sdyIpKX19fSx7Ii4uLy4uL2xpYiI6NTE1fV0sNzgwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuLGk9dCgiLi4vYmFyL2F0dHJpYnV0ZXMiKSxhPXQoIi4uL3NjYXR0ZXIvYXR0cmlidXRlcyIpLmxpbmUsbz10KCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIikscz10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19mb3JtYXRfYXR0cmlidXRlcyIpLmF4aXNIb3ZlckZvcm1hdCxsPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS5ob3ZlcnRlbXBsYXRlQXR0cnMsYz10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikudGV4dHRlbXBsYXRlQXR0cnMsdT10KCIuL2NvbnN0YW50cyIpLGY9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsaD10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIik7ZS5leHBvcnRzPXt4OmkueCx4MDppLngwLGR4OmkuZHgseTppLnkseTA6aS55MCxkeTppLmR5LHhwZXJpb2Q6aS54cGVyaW9kLHlwZXJpb2Q6aS55cGVyaW9kLHhwZXJpb2QwOmkueHBlcmlvZDAseXBlcmlvZDA6aS55cGVyaW9kMCx4cGVyaW9kYWxpZ25tZW50OmkueHBlcmlvZGFsaWdubWVudCx5cGVyaW9kYWxpZ25tZW50OmkueXBlcmlvZGFsaWdubWVudCx4aG92ZXJmb3JtYXQ6cygieCIpLHlob3ZlcmZvcm1hdDpzKCJ5IiksaG92ZXJ0ZXh0OmkuaG92ZXJ0ZXh0LGhvdmVydGVtcGxhdGU6bCh7fSx7a2V5czp1LmV2ZW50RGF0YUtleXN9KSxob3ZlcmluZm86Zih7fSxvLmhvdmVyaW5mbyx7ZmxhZ3M6WyJuYW1lIiwieCIsInkiLCJ0ZXh0IiwicGVyY2VudCBpbml0aWFsIiwicGVyY2VudCBwcmV2aW91cyIsInBlcmNlbnQgdG90YWwiXX0pLHRleHRpbmZvOnt2YWxUeXBlOiJmbGFnbGlzdCIsZmxhZ3M6WyJsYWJlbCIsInRleHQiLCJwZXJjZW50IGluaXRpYWwiLCJwZXJjZW50IHByZXZpb3VzIiwicGVyY2VudCB0b3RhbCIsInZhbHVlIl0sZXh0cmFzOlsibm9uZSJdLGVkaXRUeXBlOiJwbG90IixhcnJheU9rOiExfSx0ZXh0dGVtcGxhdGU6Yyh7ZWRpdFR5cGU6InBsb3QifSx7a2V5czp1LmV2ZW50RGF0YUtleXMuY29uY2F0KFsibGFiZWwiLCJ2YWx1ZSJdKX0pLHRleHQ6aS50ZXh0LHRleHRwb3NpdGlvbjppLnRleHRwb3NpdGlvbixpbnNpZGV0ZXh0YW5jaG9yOmYoe30saS5pbnNpZGV0ZXh0YW5jaG9yLHtkZmx0OiJtaWRkbGUifSksdGV4dGFuZ2xlOmYoe30saS50ZXh0YW5nbGUse2RmbHQ6MH0pLHRleHRmb250OmkudGV4dGZvbnQsaW5zaWRldGV4dGZvbnQ6aS5pbnNpZGV0ZXh0Zm9udCxvdXRzaWRldGV4dGZvbnQ6aS5vdXRzaWRldGV4dGZvbnQsY29uc3RyYWludGV4dDppLmNvbnN0cmFpbnRleHQsY2xpcG9uYXhpczppLmNsaXBvbmF4aXMsb3JpZW50YXRpb246Zih7fSxpLm9yaWVudGF0aW9uLHt9KSxvZmZzZXQ6Zih7fSxpLm9mZnNldCx7YXJyYXlPazohMX0pLHdpZHRoOmYoe30saS53aWR0aCx7YXJyYXlPazohMX0pLG1hcmtlcjoobj1mKHt9LGkubWFya2VyKSxkZWxldGUgbi5wYXR0ZXJuLG4pLGNvbm5lY3Rvcjp7ZmlsbGNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6InN0eWxlIn0sbGluZTp7Y29sb3I6Zih7fSxhLmNvbG9yLHtkZmx0OmguZGVmYXVsdExpbmV9KSx3aWR0aDpmKHt9LGEud2lkdGgse2RmbHQ6MCxlZGl0VHlwZToicGxvdCJ9KSxkYXNoOmEuZGFzaCxlZGl0VHlwZToic3R5bGUifSx2aXNpYmxlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJwbG90In0sZWRpdFR5cGU6InBsb3QifSxvZmZzZXRncm91cDppLm9mZnNldGdyb3VwLGFsaWdubWVudGdyb3VwOmkuYWxpZ25tZW50Z3JvdXB9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjM2NywiLi4vLi4vbGliL2V4dGVuZCI6NTA1LCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIjo1NjIsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2Zvcm1hdF9hdHRyaWJ1dGVzIjo1NjksIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjY0MiwiLi4vYmFyL2F0dHJpYnV0ZXMiOjY1NywiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIjo5MzYsIi4vY29uc3RhbnRzIjo3ODJ9XSw3ODE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9hbGlnbl9wZXJpb2QiKSxhPXQoIi4vYXJyYXlzX3RvX2NhbGNkYXRhIiksbz10KCIuLi9zY2F0dGVyL2NhbGNfc2VsZWN0aW9uIikscz10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQkFETlVNO2Z1bmN0aW9uIGwodCl7cmV0dXJuIHQ9PT1zPzA6dH1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixjLHUsZixoLHAsZCxtLGc9bi5nZXRGcm9tSWQodCxlLnhheGlzfHwieCIpLHY9bi5nZXRGcm9tSWQodCxlLnlheGlzfHwieSIpOyJoIj09PWUub3JpZW50YXRpb24/KHI9Zy5tYWtlQ2FsY2RhdGEoZSwieCIpLHU9di5tYWtlQ2FsY2RhdGEoZSwieSIpLGY9aShlLHYsInkiLHUpLGg9ISFlLnlwZXJpb2RhbGlnbm1lbnQscD0ieSIpOihyPXYubWFrZUNhbGNkYXRhKGUsInkiKSx1PWcubWFrZUNhbGNkYXRhKGUsIngiKSxmPWkoZSxnLCJ4Iix1KSxoPSEhZS54cGVyaW9kYWxpZ25tZW50LHA9IngiKSxjPWYudmFsczt2YXIgeSx4PU1hdGgubWluKGMubGVuZ3RoLHIubGVuZ3RoKSxiPW5ldyBBcnJheSh4KTtmb3IoZS5fYmFzZT1bXSxkPTA7ZDx4O2QrKyl7cltkXTwwJiYocltkXT1zKTt2YXIgXz0hMTtyW2RdIT09cyYmZCsxPHgmJnJbZCsxXSE9PXMmJihfPSEwKSxtPWJbZF09e3A6Y1tkXSxzOnJbZF0sY05leHQ6X30sZS5fYmFzZVtkXT0tLjUqbS5zLGgmJihiW2RdLm9yaWdfcD11W2RdLGJbZF1bcCsiRW5kIl09Zi5lbmRzW2RdLGJbZF1bcCsiU3RhcnQiXT1mLnN0YXJ0c1tkXSksZS5pZHMmJihtLmlkPVN0cmluZyhlLmlkc1tkXSkpLDA9PT1kJiYoYlswXS52VG90YWw9MCksYlswXS52VG90YWwrPWwobS5zKSxtLmJlZ1I9bChtLnMpL2woYlswXS5zKX1mb3IoZD0wO2Q8eDtkKyspKG09YltkXSkucyE9PXMmJihtLnN1bVI9bS5zL2JbMF0udlRvdGFsLG0uZGlmUj12b2lkIDAhPT15P20ucy95OjEseT1tLnMpO3JldHVybiBhKGIsZSksbyhiLGUpLGJ9fSx7Ii4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiOjQ5MSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2FsaWduX3BlcmlvZCI6NTYzLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NTY2LCIuLi9zY2F0dGVyL2NhbGNfc2VsZWN0aW9uIjo5MzgsIi4vYXJyYXlzX3RvX2NhbGNkYXRhIjo3Nzl9XSw3ODI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtldmVudERhdGFLZXlzOlsicGVyY2VudEluaXRpYWwiLCJwZXJjZW50UHJldmlvdXMiLCJwZXJjZW50VG90YWwiXX19LHt9XSw3ODM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vYmFyL2Nyb3NzX3RyYWNlX2NhbGMiKS5zZXRHcm91cFBvc2l0aW9ucztlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixpLGE9dC5fZnVsbExheW91dCxvPXQuX2Z1bGxEYXRhLHM9dC5jYWxjZGF0YSxsPWUueGF4aXMsYz1lLnlheGlzLHU9W10sZj1bXSxoPVtdO2ZvcihpPTA7aTxvLmxlbmd0aDtpKyspe3ZhciBwPW9baV0sZD0iaCI9PT1wLm9yaWVudGF0aW9uOyEwPT09cC52aXNpYmxlJiZwLnhheGlzPT09bC5faWQmJnAueWF4aXM9PT1jLl9pZCYmImZ1bm5lbCI9PT1wLnR5cGUmJihyPXNbaV0sZD9oLnB1c2gocik6Zi5wdXNoKHIpLHUucHVzaChyKSl9dmFyIG09e21vZGU6YS5mdW5uZWxtb2RlLG5vcm06YS5mdW5uZWxub3JtLGdhcDphLmZ1bm5lbGdhcCxncm91cGdhcDphLmZ1bm5lbGdyb3VwZ2FwfTtmb3Iobih0LGwsYyxmLG0pLG4odCxjLGwsaCxtKSxpPTA7aTx1Lmxlbmd0aDtpKyspe3I9dVtpXTtmb3IodmFyIGc9MDtnPHIubGVuZ3RoO2crKylnKzE8ci5sZW5ndGgmJihyW2ddLm5leHRQMD1yW2crMV0ucDAscltnXS5uZXh0UzA9cltnKzFdLnMwLHJbZ10ubmV4dFAxPXJbZysxXS5wMSxyW2ddLm5leHRTMT1yW2crMV0uczEpfX19LHsiLi4vYmFyL2Nyb3NzX3RyYWNlX2NhbGMiOjY2MH1dLDc4NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uL2Jhci9kZWZhdWx0cyIpLmhhbmRsZUdyb3VwaW5nRGVmYXVsdHMsYT10KCIuLi9iYXIvZGVmYXVsdHMiKS5oYW5kbGVUZXh0LG89dCgiLi4vc2NhdHRlci94eV9kZWZhdWx0cyIpLHM9dCgiLi4vc2NhdHRlci9wZXJpb2RfZGVmYXVsdHMiKSxsPXQoIi4vYXR0cmlidXRlcyIpLGM9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpO2UuZXhwb3J0cz17c3VwcGx5RGVmYXVsdHM6ZnVuY3Rpb24odCxlLHIsaSl7ZnVuY3Rpb24gdShyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsbCxyLGkpfWlmKG8odCxlLGksdSkpe3ModCxlLGksdSksdSgieGhvdmVyZm9ybWF0IiksdSgieWhvdmVyZm9ybWF0IiksdSgib3JpZW50YXRpb24iLGUueSYmIWUueD8idiI6ImgiKSx1KCJvZmZzZXQiKSx1KCJ3aWR0aCIpO3ZhciBmPXUoInRleHQiKTt1KCJob3ZlcnRleHQiKSx1KCJob3ZlcnRlbXBsYXRlIik7dmFyIGg9dSgidGV4dHBvc2l0aW9uIik7YSh0LGUsaSx1LGgse21vZHVsZUhhc1NlbGVjdGVkOiExLG1vZHVsZUhhc1Vuc2VsZWN0ZWQ6ITEsbW9kdWxlSGFzQ29uc3RyYWluOiEwLG1vZHVsZUhhc0NsaXBvbmF4aXM6ITAsbW9kdWxlSGFzVGV4dGFuZ2xlOiEwLG1vZHVsZUhhc0luc2lkZWFuY2hvcjohMH0pLCJub25lIj09PWUudGV4dHBvc2l0aW9ufHxlLnRleHR0ZW1wbGF0ZXx8dSgidGV4dGluZm8iLEFycmF5LmlzQXJyYXkoZik/InRleHQrdmFsdWUiOiJ2YWx1ZSIpO3ZhciBwPXUoIm1hcmtlci5jb2xvciIscik7aWYodSgibWFya2VyLmxpbmUuY29sb3IiLGMuZGVmYXVsdExpbmUpLHUoIm1hcmtlci5saW5lLndpZHRoIiksdSgiY29ubmVjdG9yLnZpc2libGUiKSl1KCJjb25uZWN0b3IuZmlsbGNvbG9yIixmdW5jdGlvbih0KXt2YXIgZT1uLmlzQXJyYXlPclR5cGVkQXJyYXkodCk/IiMwMDAiOnQ7cmV0dXJuIGMuYWRkT3BhY2l0eShlLC41KmMub3BhY2l0eShlKSl9KHApKSx1KCJjb25uZWN0b3IubGluZS53aWR0aCIpJiYodSgiY29ubmVjdG9yLmxpbmUuY29sb3IiKSx1KCJjb25uZWN0b3IubGluZS5kYXNoIikpfWVsc2UgZS52aXNpYmxlPSExfSxjcm9zc1RyYWNlRGVmYXVsdHM6ZnVuY3Rpb24odCxlKXt2YXIgcixhO2Z1bmN0aW9uIG8odCl7cmV0dXJuIG4uY29lcmNlKGEuX2lucHV0LGEsbCx0KX1pZigiZ3JvdXAiPT09ZS5mdW5uZWxtb2RlKWZvcih2YXIgcz0wO3M8dC5sZW5ndGg7cysrKXI9KGE9dFtzXSkuX2lucHV0LGkocixhLGUsbyl9fX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjozNjcsIi4uLy4uL2xpYiI6NTE1LCIuLi9iYXIvZGVmYXVsdHMiOjY2MSwiLi4vc2NhdHRlci9wZXJpb2RfZGVmYXVsdHMiOjk1NiwiLi4vc2NhdHRlci94eV9kZWZhdWx0cyI6OTYzLCIuL2F0dHJpYnV0ZXMiOjc4MH1dLDc4NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC54PSJ4VmFsImluIGU/ZS54VmFsOmUueCx0Lnk9InlWYWwiaW4gZT9lLnlWYWw6ZS55LCJwZXJjZW50SW5pdGlhbCJpbiBlJiYodC5wZXJjZW50SW5pdGlhbD1lLnBlcmNlbnRJbml0aWFsKSwicGVyY2VudFByZXZpb3VzImluIGUmJih0LnBlcmNlbnRQcmV2aW91cz1lLnBlcmNlbnRQcmV2aW91cyksInBlcmNlbnRUb3RhbCJpbiBlJiYodC5wZXJjZW50VG90YWw9ZS5wZXJjZW50VG90YWwpLGUueGEmJih0LnhheGlzPWUueGEpLGUueWEmJih0LnlheGlzPWUueWEpLHR9fSx7fV0sNzg2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKS5vcGFjaXR5LGk9dCgiLi4vYmFyL2hvdmVyIikuaG92ZXJPbkJhcnMsYT10KCIuLi8uLi9saWIiKS5mb3JtYXRQZXJjZW50O2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixvLHMpe3ZhciBsPWkodCxlLHIsbyxzKTtpZihsKXt2YXIgYz1sLmNkLHU9Y1swXS50cmFjZSxmPSJoIj09PXUub3JpZW50YXRpb24saD1jW2wuaW5kZXhdO2xbKGY/IngiOiJ5IikrIkxhYmVsVmFsIl09aC5zLGwucGVyY2VudEluaXRpYWw9aC5iZWdSLGwucGVyY2VudEluaXRpYWxMYWJlbD1hKGguYmVnUiwxKSxsLnBlcmNlbnRQcmV2aW91cz1oLmRpZlIsbC5wZXJjZW50UHJldmlvdXNMYWJlbD1hKGguZGlmUiwxKSxsLnBlcmNlbnRUb3RhbD1oLnN1bVIsbC5wZXJjZW50VG90YWxMYWJlbD1hKGguc3VtUiwxKTt2YXIgcD1oLmhpfHx1LmhvdmVyaW5mbyxkPVtdO2lmKHAmJiJub25lIiE9PXAmJiJza2lwIiE9PXApe3ZhciBtPSJhbGwiPT09cCxnPXAuc3BsaXQoIisiKSx2PWZ1bmN0aW9uKHQpe3JldHVybiBtfHwtMSE9PWcuaW5kZXhPZih0KX07digicGVyY2VudCBpbml0aWFsIikmJmQucHVzaChsLnBlcmNlbnRJbml0aWFsTGFiZWwrIiBvZiBpbml0aWFsIiksdigicGVyY2VudCBwcmV2aW91cyIpJiZkLnB1c2gobC5wZXJjZW50UHJldmlvdXNMYWJlbCsiIG9mIHByZXZpb3VzIiksdigicGVyY2VudCB0b3RhbCIpJiZkLnB1c2gobC5wZXJjZW50VG90YWxMYWJlbCsiIG9mIHRvdGFsIil9cmV0dXJuIGwuZXh0cmFUZXh0PWQuam9pbigiPGJyPiIpLGwuY29sb3I9ZnVuY3Rpb24odCxlKXt2YXIgcj10Lm1hcmtlcixpPWUubWN8fHIuY29sb3IsYT1lLm1sY3x8ci5saW5lLmNvbG9yLG89ZS5tbHd8fHIubGluZS53aWR0aDtpZihuKGkpKXJldHVybiBpO2lmKG4oYSkmJm8pcmV0dXJuIGF9KHUsaCksW2xdfX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6MzY3LCIuLi8uLi9saWIiOjUxNSwiLi4vYmFyL2hvdmVyIjo2NjR9XSw3ODc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXthdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLGxheW91dEF0dHJpYnV0ZXM6dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKS5zdXBwbHlEZWZhdWx0cyxjcm9zc1RyYWNlRGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLmNyb3NzVHJhY2VEZWZhdWx0cyxzdXBwbHlMYXlvdXREZWZhdWx0czp0KCIuL2xheW91dF9kZWZhdWx0cyIpLGNhbGM6dCgiLi9jYWxjIiksY3Jvc3NUcmFjZUNhbGM6dCgiLi9jcm9zc190cmFjZV9jYWxjIikscGxvdDp0KCIuL3Bsb3QiKSxzdHlsZTp0KCIuL3N0eWxlIikuc3R5bGUsaG92ZXJQb2ludHM6dCgiLi9ob3ZlciIpLGV2ZW50RGF0YTp0KCIuL2V2ZW50X2RhdGEiKSxzZWxlY3RQb2ludHM6dCgiLi4vYmFyL3NlbGVjdCIpLG1vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJmdW5uZWwiLGJhc2VQbG90TW9kdWxlOnQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbiIpLGNhdGVnb3JpZXM6WyJiYXItbGlrZSIsImNhcnRlc2lhbiIsInN2ZyIsIm9yaWVudGVkIiwic2hvd0xlZ2VuZCIsInpvb21TY2FsZSJdLG1ldGE6e319fSx7Ii4uLy4uL3Bsb3RzL2NhcnRlc2lhbiI6NTc4LCIuLi9iYXIvc2VsZWN0Ijo2NjksIi4vYXR0cmlidXRlcyI6NzgwLCIuL2NhbGMiOjc4MSwiLi9jcm9zc190cmFjZV9jYWxjIjo3ODMsIi4vZGVmYXVsdHMiOjc4NCwiLi9ldmVudF9kYXRhIjo3ODUsIi4vaG92ZXIiOjc4NiwiLi9sYXlvdXRfYXR0cmlidXRlcyI6Nzg4LCIuL2xheW91dF9kZWZhdWx0cyI6Nzg5LCIuL3Bsb3QiOjc5MCwiLi9zdHlsZSI6NzkxfV0sNzg4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17ZnVubmVsbW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsic3RhY2siLCJncm91cCIsIm92ZXJsYXkiXSxkZmx0OiJzdGFjayIsZWRpdFR5cGU6ImNhbGMifSxmdW5uZWxnYXA6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZWRpdFR5cGU6ImNhbGMifSxmdW5uZWxncm91cGdhcDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0OjAsZWRpdFR5cGU6ImNhbGMifX19LHt9XSw3ODk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuL2xheW91dF9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgYT0hMTtmdW5jdGlvbiBvKHIsYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxpLHIsYSl9Zm9yKHZhciBzPTA7czxyLmxlbmd0aDtzKyspe3ZhciBsPXJbc107aWYobC52aXNpYmxlJiYiZnVubmVsIj09PWwudHlwZSl7YT0hMDticmVha319YSYmKG8oImZ1bm5lbG1vZGUiKSxvKCJmdW5uZWxnYXAiLC4yKSxvKCJmdW5uZWxncm91cGdhcCIpKX19LHsiLi4vLi4vbGliIjo1MTUsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjc4OH1dLDc5MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLG89dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTSxzPXQoIi4uL2Jhci9wbG90IiksbD10KCIuLi9iYXIvdW5pZm9ybV90ZXh0IikuY2xlYXJNaW5UZXh0U2l6ZTtmdW5jdGlvbiBjKHQsZSxyLG4pe3ZhciBpPVtdLGE9W10sbz1uP2U6cixzPW4/cjplO3JldHVybiBpWzBdPW8uYzJwKHQuczAsITApLGFbMF09cy5jMnAodC5wMCwhMCksaVsxXT1vLmMycCh0LnMxLCEwKSxhWzFdPXMuYzJwKHQucDEsITApLGlbMl09by5jMnAodC5uZXh0UzAsITApLGFbMl09cy5jMnAodC5uZXh0UDAsITApLGlbM109by5jMnAodC5uZXh0UzEsITApLGFbM109cy5jMnAodC5uZXh0UDEsITApLG4/W2ksYV06W2EsaV19ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHUpe3ZhciBmPXQuX2Z1bGxMYXlvdXQ7bCgiZnVubmVsIixmKSxmdW5jdGlvbih0LGUscixzKXt2YXIgbD1lLnhheGlzLHU9ZS55YXhpcztpLm1ha2VUcmFjZUdyb3VwcyhzLHIsInRyYWNlIGJhcnMiKS5lYWNoKChmdW5jdGlvbihyKXt2YXIgcz1uLnNlbGVjdCh0aGlzKSxmPXJbMF0udHJhY2UsaD1pLmVuc3VyZVNpbmdsZShzLCJnIiwicmVnaW9ucyIpO2lmKGYuY29ubmVjdG9yJiZmLmNvbm5lY3Rvci52aXNpYmxlKXt2YXIgcD0iaCI9PT1mLm9yaWVudGF0aW9uLGQ9aC5zZWxlY3RBbGwoImcucmVnaW9uIikuZGF0YShpLmlkZW50aXR5KTtkLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgicmVnaW9uIiwhMCksZC5leGl0KCkucmVtb3ZlKCk7dmFyIG09ZC5zaXplKCk7ZC5lYWNoKChmdW5jdGlvbihyLHMpe2lmKHM9PT1tLTF8fHIuY05leHQpe3ZhciBmPWMocixsLHUscCksaD1mWzBdLGQ9ZlsxXSxnPSIiO2hbMF0hPT1vJiZkWzBdIT09byYmaFsxXSE9PW8mJmRbMV0hPT1vJiZoWzJdIT09byYmZFsyXSE9PW8mJmhbM10hPT1vJiZkWzNdIT09byYmKGcrPXA/Ik0iK2hbMF0rIiwiK2RbMV0rIkwiK2hbMl0rIiwiK2RbMl0rIkgiK2hbM10rIkwiK2hbMV0rIiwiK2RbMV0rIloiOiJNIitoWzFdKyIsIitkWzFdKyJMIitoWzJdKyIsIitkWzNdKyJWIitkWzJdKyJMIitoWzFdKyIsIitkWzBdKyJaIiksIiI9PT1nJiYoZz0iTTAsMFoiKSxpLmVuc3VyZVNpbmdsZShuLnNlbGVjdCh0aGlzKSwicGF0aCIpLmF0dHIoImQiLGcpLmNhbGwoYS5zZXRDbGlwVXJsLGUubGF5ZXJDbGlwSWQsdCl9fSkpfWVsc2UgaC5yZW1vdmUoKX0pKX0odCxlLHIsdSksZnVuY3Rpb24odCxlLHIsbyl7dmFyIHM9ZS54YXhpcyxsPWUueWF4aXM7aS5tYWtlVHJhY2VHcm91cHMobyxyLCJ0cmFjZSBiYXJzIikuZWFjaCgoZnVuY3Rpb24ocil7dmFyIG89bi5zZWxlY3QodGhpcyksdT1yWzBdLnRyYWNlLGY9aS5lbnN1cmVTaW5nbGUobywiZyIsImxpbmVzIik7aWYodS5jb25uZWN0b3ImJnUuY29ubmVjdG9yLnZpc2libGUmJnUuY29ubmVjdG9yLmxpbmUud2lkdGgpe3ZhciBoPSJoIj09PXUub3JpZW50YXRpb24scD1mLnNlbGVjdEFsbCgiZy5saW5lIikuZGF0YShpLmlkZW50aXR5KTtwLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgibGluZSIsITApLHAuZXhpdCgpLnJlbW92ZSgpO3ZhciBkPXAuc2l6ZSgpO3AuZWFjaCgoZnVuY3Rpb24ocixvKXtpZihvPT09ZC0xfHxyLmNOZXh0KXt2YXIgdT1jKHIscyxsLGgpLGY9dVswXSxwPXVbMV0sbT0iIjt2b2lkIDAhPT1mWzNdJiZ2b2lkIDAhPT1wWzNdJiYoaD8obSs9Ik0iK2ZbMF0rIiwiK3BbMV0rIkwiK2ZbMl0rIiwiK3BbMl0sbSs9Ik0iK2ZbMV0rIiwiK3BbMV0rIkwiK2ZbM10rIiwiK3BbMl0pOihtKz0iTSIrZlsxXSsiLCIrcFsxXSsiTCIrZlsyXSsiLCIrcFszXSxtKz0iTSIrZlsxXSsiLCIrcFswXSsiTCIrZlsyXSsiLCIrcFsyXSkpLCIiPT09bSYmKG09Ik0wLDBaIiksaS5lbnN1cmVTaW5nbGUobi5zZWxlY3QodGhpcyksInBhdGgiKS5hdHRyKCJkIixtKS5jYWxsKGEuc2V0Q2xpcFVybCxlLmxheWVyQ2xpcElkLHQpfX0pKX1lbHNlIGYucmVtb3ZlKCl9KSl9KHQsZSxyLHUpLHMucGxvdCh0LGUscix1LHttb2RlOmYuZnVubmVsbW9kZSxub3JtOmYuZnVubmVsbW9kZSxnYXA6Zi5mdW5uZWxnYXAsZ3JvdXBnYXA6Zi5mdW5uZWxncm91cGdhcH0pfX0seyIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjM4OSwiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NDkxLCIuLi8uLi9saWIiOjUxNSwiLi4vYmFyL3Bsb3QiOjY2OCwiLi4vYmFyL3VuaWZvcm1fdGV4dCI6NjczLCJAcGxvdGx5L2QzIjo1OH1dLDc5MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxvPXQoIi4uLy4uL2NvbnN0YW50cy9pbnRlcmFjdGlvbnMiKS5ERVNFTEVDVERJTSxzPXQoIi4uL2Jhci9zdHlsZSIpLGw9dCgiLi4vYmFyL3VuaWZvcm1fdGV4dCIpLnJlc2l6ZVRleHQsYz1zLnN0eWxlVGV4dFBvaW50cztlLmV4cG9ydHM9e3N0eWxlOmZ1bmN0aW9uKHQsZSxyKXt2YXIgcz1yfHxuLnNlbGVjdCh0KS5zZWxlY3RBbGwoImcuZnVubmVsbGF5ZXIiKS5zZWxlY3RBbGwoImcudHJhY2UiKTtsKHQscywiZnVubmVsIikscy5zdHlsZSgib3BhY2l0eSIsKGZ1bmN0aW9uKHQpe3JldHVybiB0WzBdLnRyYWNlLm9wYWNpdHl9KSkscy5lYWNoKChmdW5jdGlvbihlKXt2YXIgcj1uLnNlbGVjdCh0aGlzKSxzPWVbMF0udHJhY2U7ci5zZWxlY3RBbGwoIi5wb2ludCA+IHBhdGgiKS5lYWNoKChmdW5jdGlvbih0KXtpZighdC5pc0JsYW5rKXt2YXIgZT1zLm1hcmtlcjtuLnNlbGVjdCh0aGlzKS5jYWxsKGEuZmlsbCx0Lm1jfHxlLmNvbG9yKS5jYWxsKGEuc3Ryb2tlLHQubWxjfHxlLmxpbmUuY29sb3IpLmNhbGwoaS5kYXNoTGluZSxlLmxpbmUuZGFzaCx0Lm1sd3x8ZS5saW5lLndpZHRoKS5zdHlsZSgib3BhY2l0eSIscy5zZWxlY3RlZHBvaW50cyYmIXQuc2VsZWN0ZWQ/bzoxKX19KSksYyhyLHMsdCksci5zZWxlY3RBbGwoIi5yZWdpb25zIikuZWFjaCgoZnVuY3Rpb24oKXtuLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoInBhdGgiKS5zdHlsZSgic3Ryb2tlLXdpZHRoIiwwKS5jYWxsKGEuZmlsbCxzLmNvbm5lY3Rvci5maWxsY29sb3IpfSkpLHIuc2VsZWN0QWxsKCIubGluZXMiKS5lYWNoKChmdW5jdGlvbigpe3ZhciB0PXMuY29ubmVjdG9yLmxpbmU7aS5saW5lR3JvdXBTdHlsZShuLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoInBhdGgiKSx0LndpZHRoLHQuY29sb3IsdC5kYXNoKX0pKX0pKX19fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjM2NywiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjozODksIi4uLy4uL2NvbnN0YW50cy9pbnRlcmFjdGlvbnMiOjQ5MCwiLi4vYmFyL3N0eWxlIjo2NzEsIi4uL2Jhci91bmlmb3JtX3RleHQiOjY3MywiQHBsb3RseS9kMyI6NTh9XSw3OTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vcGllL2F0dHJpYnV0ZXMiKSxpPXQoIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiKSxhPXQoIi4uLy4uL3Bsb3RzL2RvbWFpbiIpLmF0dHJpYnV0ZXMsbz10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikuaG92ZXJ0ZW1wbGF0ZUF0dHJzLHM9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLnRleHR0ZW1wbGF0ZUF0dHJzLGw9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQ7ZS5leHBvcnRzPXtsYWJlbHM6bi5sYWJlbHMsbGFiZWwwOm4ubGFiZWwwLGRsYWJlbDpuLmRsYWJlbCx2YWx1ZXM6bi52YWx1ZXMsbWFya2VyOntjb2xvcnM6bi5tYXJrZXIuY29sb3JzLGxpbmU6e2NvbG9yOmwoe30sbi5tYXJrZXIubGluZS5jb2xvcix7ZGZsdDpudWxsfSksd2lkdGg6bCh7fSxuLm1hcmtlci5saW5lLndpZHRoLHtkZmx0OjF9KSxlZGl0VHlwZToiY2FsYyJ9LGVkaXRUeXBlOiJjYWxjIn0sdGV4dDpuLnRleHQsaG92ZXJ0ZXh0Om4uaG92ZXJ0ZXh0LHNjYWxlZ3JvdXA6bCh7fSxuLnNjYWxlZ3JvdXAse30pLHRleHRpbmZvOmwoe30sbi50ZXh0aW5mbyx7ZmxhZ3M6WyJsYWJlbCIsInRleHQiLCJ2YWx1ZSIsInBlcmNlbnQiXX0pLHRleHR0ZW1wbGF0ZTpzKHtlZGl0VHlwZToicGxvdCJ9LHtrZXlzOlsibGFiZWwiLCJjb2xvciIsInZhbHVlIiwidGV4dCIsInBlcmNlbnQiXX0pLGhvdmVyaW5mbzpsKHt9LGkuaG92ZXJpbmZvLHtmbGFnczpbImxhYmVsIiwidGV4dCIsInZhbHVlIiwicGVyY2VudCIsIm5hbWUiXX0pLGhvdmVydGVtcGxhdGU6byh7fSx7a2V5czpbImxhYmVsIiwiY29sb3IiLCJ2YWx1ZSIsInRleHQiLCJwZXJjZW50Il19KSx0ZXh0cG9zaXRpb246bCh7fSxuLnRleHRwb3NpdGlvbix7dmFsdWVzOlsiaW5zaWRlIiwibm9uZSJdLGRmbHQ6Imluc2lkZSJ9KSx0ZXh0Zm9udDpuLnRleHRmb250LGluc2lkZXRleHRmb250Om4uaW5zaWRldGV4dGZvbnQsdGl0bGU6e3RleHQ6bi50aXRsZS50ZXh0LGZvbnQ6bi50aXRsZS5mb250LHBvc2l0aW9uOmwoe30sbi50aXRsZS5wb3NpdGlvbix7dmFsdWVzOlsidG9wIGxlZnQiLCJ0b3AgY2VudGVyIiwidG9wIHJpZ2h0Il0sZGZsdDoidG9wIGNlbnRlciJ9KSxlZGl0VHlwZToicGxvdCJ9LGRvbWFpbjphKHtuYW1lOiJmdW5uZWxhcmVhIix0cmFjZTohMCxlZGl0VHlwZToiY2FsYyJ9KSxhc3BlY3RyYXRpbzp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjEsZWRpdFR5cGU6InBsb3QifSxiYXNlcmF0aW86e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDouMzMzLGVkaXRUeXBlOiJwbG90In19fSx7Ii4uLy4uL2xpYi9leHRlbmQiOjUwNSwiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyI6NTYyLCIuLi8uLi9wbG90cy9kb21haW4iOjU5MywiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyI6NjQyLCIuLi9waWUvYXR0cmlidXRlcyI6OTEwfV0sNzkzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL3Bsb3RzIik7ci5uYW1lPSJmdW5uZWxhcmVhIixyLnBsb3Q9ZnVuY3Rpb24odCxlLGksYSl7bi5wbG90QmFzZVBsb3Qoci5uYW1lLHQsZSxpLGEpfSxyLmNsZWFuPWZ1bmN0aW9uKHQsZSxpLGEpe24uY2xlYW5CYXNlUGxvdChyLm5hbWUsdCxlLGksYSl9fSx7Ii4uLy4uL3Bsb3RzL3Bsb3RzIjo2Mjh9XSw3OTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vcGllL2NhbGMiKTtlLmV4cG9ydHM9e2NhbGM6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbi5jYWxjKHQsZSl9LGNyb3NzVHJhY2VDYWxjOmZ1bmN0aW9uKHQpe24uY3Jvc3NUcmFjZUNhbGModCx7dHlwZToiZnVubmVsYXJlYSJ9KX19fSx7Ii4uL3BpZS9jYWxjIjo5MTJ9XSw3OTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuL2F0dHJpYnV0ZXMiKSxhPXQoIi4uLy4uL3Bsb3RzL2RvbWFpbiIpLmRlZmF1bHRzLG89dCgiLi4vYmFyL2RlZmF1bHRzIikuaGFuZGxlVGV4dCxzPXQoIi4uL3BpZS9kZWZhdWx0cyIpLmhhbmRsZUxhYmVsc0FuZFZhbHVlcztlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbCl7ZnVuY3Rpb24gYyhyLGEpe3JldHVybiBuLmNvZXJjZSh0LGUsaSxyLGEpfXZhciB1PWMoImxhYmVscyIpLGY9YygidmFsdWVzIiksaD1zKHUsZikscD1oLmxlbjtpZihlLl9oYXNMYWJlbHM9aC5oYXNMYWJlbHMsZS5faGFzVmFsdWVzPWguaGFzVmFsdWVzLCFlLl9oYXNMYWJlbHMmJmUuX2hhc1ZhbHVlcyYmKGMoImxhYmVsMCIpLGMoImRsYWJlbCIpKSxwKXtlLl9sZW5ndGg9cCxjKCJtYXJrZXIubGluZS53aWR0aCIpJiZjKCJtYXJrZXIubGluZS5jb2xvciIsbC5wYXBlcl9iZ2NvbG9yKSxjKCJtYXJrZXIuY29sb3JzIiksYygic2NhbGVncm91cCIpO3ZhciBkLG09YygidGV4dCIpLGc9YygidGV4dHRlbXBsYXRlIik7aWYoZ3x8KGQ9YygidGV4dGluZm8iLEFycmF5LmlzQXJyYXkobSk/InRleHQrcGVyY2VudCI6InBlcmNlbnQiKSksYygiaG92ZXJ0ZXh0IiksYygiaG92ZXJ0ZW1wbGF0ZSIpLGd8fGQmJiJub25lIiE9PWQpe3ZhciB2PWMoInRleHRwb3NpdGlvbiIpO28odCxlLGwsYyx2LHttb2R1bGVIYXNTZWxlY3RlZDohMSxtb2R1bGVIYXNVbnNlbGVjdGVkOiExLG1vZHVsZUhhc0NvbnN0cmFpbjohMSxtb2R1bGVIYXNDbGlwb25heGlzOiExLG1vZHVsZUhhc1RleHRhbmdsZTohMSxtb2R1bGVIYXNJbnNpZGVhbmNob3I6ITF9KX1hKGUsbCxjKSxjKCJ0aXRsZS50ZXh0IikmJihjKCJ0aXRsZS5wb3NpdGlvbiIpLG4uY29lcmNlRm9udChjLCJ0aXRsZS5mb250IixsLmZvbnQpKSxjKCJhc3BlY3RyYXRpbyIpLGMoImJhc2VyYXRpbyIpfWVsc2UgZS52aXNpYmxlPSExfX0seyIuLi8uLi9saWIiOjUxNSwiLi4vLi4vcGxvdHMvZG9tYWluIjo1OTMsIi4uL2Jhci9kZWZhdWx0cyI6NjYxLCIuLi9waWUvZGVmYXVsdHMiOjkxMywiLi9hdHRyaWJ1dGVzIjo3OTJ9XSw3OTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToiZnVubmVsYXJlYSIsYmFzZVBsb3RNb2R1bGU6dCgiLi9iYXNlX3Bsb3QiKSxjYXRlZ29yaWVzOlsicGllLWxpa2UiLCJmdW5uZWxhcmVhIiwic2hvd0xlZ2VuZCJdLGF0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksbGF5b3V0QXR0cmlidXRlczp0KCIuL2xheW91dF9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLHN1cHBseUxheW91dERlZmF1bHRzOnQoIi4vbGF5b3V0X2RlZmF1bHRzIiksY2FsYzp0KCIuL2NhbGMiKS5jYWxjLGNyb3NzVHJhY2VDYWxjOnQoIi4vY2FsYyIpLmNyb3NzVHJhY2VDYWxjLHBsb3Q6dCgiLi9wbG90Iiksc3R5bGU6dCgiLi9zdHlsZSIpLHN0eWxlT25lOnQoIi4uL3BpZS9zdHlsZV9vbmUiKSxtZXRhOnt9fX0seyIuLi9waWUvc3R5bGVfb25lIjo5MjEsIi4vYXR0cmlidXRlcyI6NzkyLCIuL2Jhc2VfcGxvdCI6NzkzLCIuL2NhbGMiOjc5NCwiLi9kZWZhdWx0cyI6Nzk1LCIuL2xheW91dF9hdHRyaWJ1dGVzIjo3OTcsIi4vbGF5b3V0X2RlZmF1bHRzIjo3OTgsIi4vcGxvdCI6Nzk5LCIuL3N0eWxlIjo4MDB9XSw3OTc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vcGllL2xheW91dF9hdHRyaWJ1dGVzIikuaGlkZGVubGFiZWxzO2UuZXhwb3J0cz17aGlkZGVubGFiZWxzOm4sZnVubmVsYXJlYWNvbG9yd2F5Ont2YWxUeXBlOiJjb2xvcmxpc3QiLGVkaXRUeXBlOiJjYWxjIn0sZXh0ZW5kZnVubmVsYXJlYWNvbG9yczp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToiY2FsYyJ9fX0seyIuLi9waWUvbGF5b3V0X2F0dHJpYnV0ZXMiOjkxN31dLDc5ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiByKHIsYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxpLHIsYSl9cigiaGlkZGVubGFiZWxzIikscigiZnVubmVsYXJlYWNvbG9yd2F5IixlLmNvbG9yd2F5KSxyKCJleHRlbmRmdW5uZWxhcmVhY29sb3JzIil9fSx7Ii4uLy4uL2xpYiI6NTE1LCIuL2xheW91dF9hdHRyaWJ1dGVzIjo3OTd9XSw3OTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIiksYT10KCIuLi8uLi9saWIiKSxvPWEuc3RyU2NhbGUscz1hLnN0clRyYW5zbGF0ZSxsPXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpLGM9dCgiLi4vYmFyL3Bsb3QiKS50b01vdmVJbnNpZGVCYXIsdT10KCIuLi9iYXIvdW5pZm9ybV90ZXh0IiksZj11LnJlY29yZE1pblRleHRTaXplLGg9dS5jbGVhck1pblRleHRTaXplLHA9dCgiLi4vcGllL2hlbHBlcnMiKSxkPXQoIi4uL3BpZS9wbG90IiksbT1kLmF0dGFjaEZ4SGFuZGxlcnMsZz1kLmRldGVybWluZUluc2lkZVRleHRGb250LHY9ZC5sYXlvdXRBcmVhcyx5PWQucHJlcmVuZGVyVGl0bGVzLHg9ZC5wb3NpdGlvblRpdGxlT3V0c2lkZSxiPWQuZm9ybWF0U2xpY2VMYWJlbDtmdW5jdGlvbiBfKHQsZSl7cmV0dXJuImwiKyhlWzBdLXRbMF0pKyIsIisoZVsxXS10WzFdKX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10Ll9mdWxsTGF5b3V0O2goImZ1bm5lbGFyZWEiLHIpLHkoZSx0KSx2KGUsci5fc2l6ZSksYS5tYWtlVHJhY2VHcm91cHMoci5fZnVubmVsYXJlYWxheWVyLGUsInRyYWNlIikuZWFjaCgoZnVuY3Rpb24oZSl7dmFyIHU9bi5zZWxlY3QodGhpcyksaD1lWzBdLGQ9aC50cmFjZTshZnVuY3Rpb24odCl7aWYoIXQubGVuZ3RoKXJldHVybjt2YXIgZT10WzBdLHI9ZS50cmFjZSxuPXIuYXNwZWN0cmF0aW8saT1yLmJhc2VyYXRpbztpPi45OTkmJihpPS45OTkpO3ZhciBhLG89TWF0aC5wb3coaSwyKSxzPWUudlRvdGFsLGw9cyxjPXMqby8oMS1vKS9zO2Z1bmN0aW9uIHUoKXt2YXIgdCxlPXt4OnQ9TWF0aC5zcXJ0KGMpLHk6LXR9O3JldHVybltlLngsZS55XX12YXIgZixoLHA9W107Zm9yKHAucHVzaCh1KCkpLGY9dC5sZW5ndGgtMTtmPi0xO2YtLSlpZighKGg9dFtmXSkuaGlkZGVuKXt2YXIgZD1oLnYvbDtjKz1kLHAucHVzaCh1KCkpfXZhciBtPTEvMCxnPS0xLzA7Zm9yKGY9MDtmPHAubGVuZ3RoO2YrKylhPXBbZl0sbT1NYXRoLm1pbihtLGFbMV0pLGc9TWF0aC5tYXgoZyxhWzFdKTtmb3IoZj0wO2Y8cC5sZW5ndGg7ZisrKXBbZl1bMV0tPShnK20pLzI7dmFyIHY9cFtwLmxlbmd0aC0xXVswXSx5PWUucix4PShnLW0pLzIsYj15L3YsXz15L3gqbjtmb3IoZS5yPV8qeCxmPTA7ZjxwLmxlbmd0aDtmKyspcFtmXVswXSo9YixwW2ZdWzFdKj1fO3ZhciB3PVstKGE9cFswXSlbMF0sYVsxXV0sVD1bYVswXSxhWzFdXSxrPTA7Zm9yKGY9dC5sZW5ndGgtMTtmPi0xO2YtLSlpZighKGg9dFtmXSkuaGlkZGVuKXt2YXIgQT1wW2srPTFdWzBdLE09cFtrXVsxXTtoLlRMPVstQSxNXSxoLlRSPVtBLE1dLGguQkw9dyxoLkJSPVQsaC5weG1pZD0oUz1oLlRSLEU9aC5CUixbLjUqKFNbMF0rRVswXSksLjUqKFNbMV0rRVsxXSldKSx3PWguVEwsVD1oLlRSfXZhciBTLEV9KGUpLHUuZWFjaCgoZnVuY3Rpb24oKXt2YXIgdT1uLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoImcuc2xpY2UiKS5kYXRhKGUpO3UuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJzbGljZSIsITApLHUuZXhpdCgpLnJlbW92ZSgpLHUuZWFjaCgoZnVuY3Rpb24obyxzKXtpZihvLmhpZGRlbiluLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoInBhdGgsZyIpLnJlbW92ZSgpO2Vsc2V7by5wb2ludE51bWJlcj1vLmksby5jdXJ2ZU51bWJlcj1kLmluZGV4O3ZhciB1PWguY3gsdj1oLmN5LHk9bi5zZWxlY3QodGhpcykseD15LnNlbGVjdEFsbCgicGF0aC5zdXJmYWNlIikuZGF0YShbb10pO3guZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKCJzdXJmYWNlIiwhMCkuc3R5bGUoeyJwb2ludGVyLWV2ZW50cyI6ImFsbCJ9KSx5LmNhbGwobSx0LGUpO3ZhciB3PSJNIisodStvLlRSWzBdKSsiLCIrKHYrby5UUlsxXSkrXyhvLlRSLG8uQlIpK18oby5CUixvLkJMKStfKG8uQkwsby5UTCkrIloiO3guYXR0cigiZCIsdyksYih0LG8saCk7dmFyIFQ9cC5jYXN0T3B0aW9uKGQudGV4dHBvc2l0aW9uLG8ucHRzKSxrPXkuc2VsZWN0QWxsKCJnLnNsaWNldGV4dCIpLmRhdGEoby50ZXh0JiYibm9uZSIhPT1UP1swXTpbXSk7ay5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoInNsaWNldGV4dCIsITApLGsuZXhpdCgpLnJlbW92ZSgpLGsuZWFjaCgoZnVuY3Rpb24oKXt2YXIgaD1hLmVuc3VyZVNpbmdsZShuLnNlbGVjdCh0aGlzKSwidGV4dCIsIiIsKGZ1bmN0aW9uKHQpe3QuYXR0cigiZGF0YS1ub3RleCIsMSl9KSkscD1hLmVuc3VyZVVuaWZvcm1Gb250U2l6ZSh0LGcoZCxvLHIuZm9udCkpO2gudGV4dChvLnRleHQpLmF0dHIoe2NsYXNzOiJzbGljZXRleHQiLHRyYW5zZm9ybToiIiwidGV4dC1hbmNob3IiOiJtaWRkbGUifSkuY2FsbChpLmZvbnQscCkuY2FsbChsLmNvbnZlcnRUb1RzcGFucyx0KTt2YXIgbSx5LHgsYj1pLmJCb3goaC5ub2RlKCkpLF89TWF0aC5taW4oby5CTFsxXSxvLkJSWzFdKSt2LHc9TWF0aC5tYXgoby5UTFsxXSxvLlRSWzFdKSt2O3k9TWF0aC5tYXgoby5UTFswXSxvLkJMWzBdKSt1LHg9TWF0aC5taW4oby5UUlswXSxvLkJSWzBdKSt1LChtPWMoeSx4LF8sdyxiLHtpc0hvcml6b250YWw6ITAsY29uc3RyYWluZWQ6ITAsYW5nbGU6MCxhbmNob3I6Im1pZGRsZSJ9KSkuZm9udFNpemU9cC5zaXplLGYoZC50eXBlLG0sciksZVtzXS50cmFuc2Zvcm09bSxoLmF0dHIoInRyYW5zZm9ybSIsYS5nZXRUZXh0VHJhbnNmb3JtKG0pKX0pKX19KSk7dmFyIHY9bi5zZWxlY3QodGhpcykuc2VsZWN0QWxsKCJnLnRpdGxldGV4dCIpLmRhdGEoZC50aXRsZS50ZXh0P1swXTpbXSk7di5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoInRpdGxldGV4dCIsITApLHYuZXhpdCgpLnJlbW92ZSgpLHYuZWFjaCgoZnVuY3Rpb24oKXt2YXIgZT1hLmVuc3VyZVNpbmdsZShuLnNlbGVjdCh0aGlzKSwidGV4dCIsIiIsKGZ1bmN0aW9uKHQpe3QuYXR0cigiZGF0YS1ub3RleCIsMSl9KSksYz1kLnRpdGxlLnRleHQ7ZC5fbWV0YSYmKGM9YS50ZW1wbGF0ZVN0cmluZyhjLGQuX21ldGEpKSxlLnRleHQoYykuYXR0cih7Y2xhc3M6InRpdGxldGV4dCIsdHJhbnNmb3JtOiIiLCJ0ZXh0LWFuY2hvciI6Im1pZGRsZSJ9KS5jYWxsKGkuZm9udCxkLnRpdGxlLmZvbnQpLmNhbGwobC5jb252ZXJ0VG9Uc3BhbnMsdCk7dmFyIHU9eChoLHIuX3NpemUpO2UuYXR0cigidHJhbnNmb3JtIixzKHUueCx1LnkpK28oTWF0aC5taW4oMSx1LnNjYWxlKSkrcyh1LnR4LHUudHkpKX0pKX0pKX0pKX19LHsiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjozODksIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiOjU0MSwiLi4vYmFyL3Bsb3QiOjY2OCwiLi4vYmFyL3VuaWZvcm1fdGV4dCI6NjczLCIuLi9waWUvaGVscGVycyI6OTE1LCIuLi9waWUvcGxvdCI6OTE5LCJAcGxvdGx5L2QzIjo1OH1dLDgwMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi9waWUvc3R5bGVfb25lIiksYT10KCIuLi9iYXIvdW5pZm9ybV90ZXh0IikucmVzaXplVGV4dDtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5fZnVsbExheW91dC5fZnVubmVsYXJlYWxheWVyLnNlbGVjdEFsbCgiLnRyYWNlIik7YSh0LGUsImZ1bm5lbGFyZWEiKSxlLmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0udHJhY2Uscj1uLnNlbGVjdCh0aGlzKTtyLnN0eWxlKHtvcGFjaXR5OmUub3BhY2l0eX0pLHIuc2VsZWN0QWxsKCJwYXRoLnN1cmZhY2UiKS5lYWNoKChmdW5jdGlvbih0KXtuLnNlbGVjdCh0aGlzKS5jYWxsKGksdCxlKX0pKX0pKX19LHsiLi4vYmFyL3VuaWZvcm1fdGV4dCI6NjczLCIuLi9waWUvc3R5bGVfb25lIjo5MjEsIkBwbG90bHkvZDMiOjU4fV0sODAxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NjYXR0ZXIvYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIiksbz10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19mb3JtYXRfYXR0cmlidXRlcyIpLmF4aXNIb3ZlckZvcm1hdCxzPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS5ob3ZlcnRlbXBsYXRlQXR0cnMsbD10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikudGV4dHRlbXBsYXRlQXR0cnMsYz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyIpLHU9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQ7ZS5leHBvcnRzPXUoe3o6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0seDp1KHt9LG4ueCx7aW1wbGllZEVkaXRzOnt4dHlwZToiYXJyYXkifX0pLHgwOnUoe30sbi54MCx7aW1wbGllZEVkaXRzOnt4dHlwZToic2NhbGVkIn19KSxkeDp1KHt9LG4uZHgse2ltcGxpZWRFZGl0czp7eHR5cGU6InNjYWxlZCJ9fSkseTp1KHt9LG4ueSx7aW1wbGllZEVkaXRzOnt5dHlwZToiYXJyYXkifX0pLHkwOnUoe30sbi55MCx7aW1wbGllZEVkaXRzOnt5dHlwZToic2NhbGVkIn19KSxkeTp1KHt9LG4uZHkse2ltcGxpZWRFZGl0czp7eXR5cGU6InNjYWxlZCJ9fSkseHBlcmlvZDp1KHt9LG4ueHBlcmlvZCx7aW1wbGllZEVkaXRzOnt4dHlwZToic2NhbGVkIn19KSx5cGVyaW9kOnUoe30sbi55cGVyaW9kLHtpbXBsaWVkRWRpdHM6e3l0eXBlOiJzY2FsZWQifX0pLHhwZXJpb2QwOnUoe30sbi54cGVyaW9kMCx7aW1wbGllZEVkaXRzOnt4dHlwZToic2NhbGVkIn19KSx5cGVyaW9kMDp1KHt9LG4ueXBlcmlvZDAse2ltcGxpZWRFZGl0czp7eXR5cGU6InNjYWxlZCJ9fSkseHBlcmlvZGFsaWdubWVudDp1KHt9LG4ueHBlcmlvZGFsaWdubWVudCx7aW1wbGllZEVkaXRzOnt4dHlwZToic2NhbGVkIn19KSx5cGVyaW9kYWxpZ25tZW50OnUoe30sbi55cGVyaW9kYWxpZ25tZW50LHtpbXBsaWVkRWRpdHM6e3l0eXBlOiJzY2FsZWQifX0pLHRleHQ6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0saG92ZXJ0ZXh0Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LHRyYW5zcG9zZTp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMSxlZGl0VHlwZToiY2FsYyJ9LHh0eXBlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJhcnJheSIsInNjYWxlZCJdLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIn0seXR5cGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImFycmF5Iiwic2NhbGVkIl0sZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSx6c21vb3RoOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJmYXN0IiwiYmVzdCIsITFdLGRmbHQ6ITEsZWRpdFR5cGU6ImNhbGMifSxob3Zlcm9uZ2Fwczp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToibm9uZSJ9LGNvbm5lY3RnYXBzOnt2YWxUeXBlOiJib29sZWFuIixlZGl0VHlwZToiY2FsYyJ9LHhnYXA6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDowLG1pbjowLGVkaXRUeXBlOiJwbG90In0seWdhcDp7dmFsVHlwZToibnVtYmVyIixkZmx0OjAsbWluOjAsZWRpdFR5cGU6InBsb3QifSx4aG92ZXJmb3JtYXQ6bygieCIpLHlob3ZlcmZvcm1hdDpvKCJ5IiksemhvdmVyZm9ybWF0Om8oInoiLDEpLGhvdmVydGVtcGxhdGU6cygpLHRleHR0ZW1wbGF0ZTpsKHthcnJheU9rOiExLGVkaXRUeXBlOiJwbG90In0se2tleXM6WyJ4IiwieSIsInoiLCJ0ZXh0Il19KSx0ZXh0Zm9udDphKHtlZGl0VHlwZToicGxvdCIsYXV0b1NpemU6ITAsYXV0b0NvbG9yOiEwLGNvbG9yRWRpdFR5cGU6InN0eWxlIn0pLHNob3dsZWdlbmQ6dSh7fSxpLnNob3dsZWdlbmQse2RmbHQ6ITF9KX0se3RyYW5zZm9ybXM6dm9pZCAwfSxjKCIiLHtjTGV0dGVyOiJ6IixhdXRvQ29sb3JEZmx0OiExfSkpfSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjozNzQsIi4uLy4uL2xpYi9leHRlbmQiOjUwNSwiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyI6NTYyLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19mb3JtYXRfYXR0cmlidXRlcyI6NTY5LCIuLi8uLi9wbG90cy9mb250X2F0dHJpYnV0ZXMiOjU5NCwiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyI6NjQyLCIuLi9zY2F0dGVyL2F0dHJpYnV0ZXMiOjkzNn1dLDgwMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9yZWdpc3RyeSIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLG89dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2FsaWduX3BlcmlvZCIpLHM9dCgiLi4vaGlzdG9ncmFtMmQvY2FsYyIpLGw9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2NhbGMiKSxjPXQoIi4vY29udmVydF9jb2x1bW5feHl6IiksdT10KCIuL2NsZWFuXzJkX2FycmF5IiksZj10KCIuL2ludGVycDJkIiksaD10KCIuL2ZpbmRfZW1wdGllcyIpLHA9dCgiLi9tYWtlX2JvdW5kX2FycmF5IiksZD10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQkFETlVNO2Z1bmN0aW9uIG0odCl7Zm9yKHZhciBlPVtdLHI9dC5sZW5ndGgsbj0wO248cjtuKyspe3ZhciBpPXRbbl07aSE9PWQmJmUucHVzaChpKX1yZXR1cm4gZX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixnLHYseSx4LGIsXyx3LFQsayxBLE09YS5nZXRGcm9tSWQodCxlLnhheGlzfHwieCIpLFM9YS5nZXRGcm9tSWQodCxlLnlheGlzfHwieSIpLEU9bi50cmFjZUlzKGUsImNvbnRvdXIiKSxMPW4udHJhY2VJcyhlLCJoaXN0b2dyYW0iKSxDPW4udHJhY2VJcyhlLCJnbDJkIiksUD1FPyJiZXN0IjplLnpzbW9vdGg7aWYoTS5fbWluRHRpY2s9MCxTLl9taW5EdGljaz0wLEwpeT0oQT1zKHQsZSkpLm9yaWdfeCxyPUEueCxnPUEueDAsdj1BLmR4LHc9QS5vcmlnX3kseD1BLnksYj1BLnkwLF89QS5keSxUPUEuejtlbHNle3ZhciBJPWUuejtpLmlzQXJyYXkxRChJKT8oYyhlLE0sUywieCIsInkiLFsieiJdKSxyPWUuX3gseD1lLl95LEk9ZS5feik6KHk9ZS54P00ubWFrZUNhbGNkYXRhKGUsIngiKTpbXSx3PWUueT9TLm1ha2VDYWxjZGF0YShlLCJ5Iik6W10scj1vKGUsTSwieCIseSkudmFscyx4PW8oZSxTLCJ5Iix3KS52YWxzLGUuX3g9cixlLl95PXgpLGc9ZS54MCx2PWUuZHgsYj1lLnkwLF89ZS5keSxUPXUoSSxlLE0sUyl9ZnVuY3Rpb24gTyh0KXtQPWUuX2lucHV0LnpzbW9vdGg9ZS56c21vb3RoPSExLGkud2FybignY2Fubm90IHVzZSB6c21vb3RoOiAiZmFzdCI6ICcrdCl9aWYoKE0ucmFuZ2VicmVha3N8fFMucmFuZ2VicmVha3MpJiYoVD1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuPVtdLGk9LTEsYT0wO2E8ci5sZW5ndGg7YSsrKWlmKGVbYV0hPT1kKXtpKyssbltpXT1bXTtmb3IodmFyIG89MDtvPHJbYV0ubGVuZ3RoO28rKyl0W29dIT09ZCYmbltpXS5wdXNoKHJbYV1bb10pfXJldHVybiBufShyLHgsVCksTHx8KHI9bShyKSx4PW0oeCksZS5feD1yLGUuX3k9eCkpLEx8fCFFJiYhZS5jb25uZWN0Z2Fwc3x8KGUuX2VtcHR5cG9pbnRzPWgoVCksZihULGUuX2VtcHR5cG9pbnRzKSksImZhc3QiPT09UClpZigibG9nIj09PU0udHlwZXx8ImxvZyI9PT1TLnR5cGUpTygibG9nIGF4aXMgZm91bmQiKTtlbHNlIGlmKCFMKXtpZihyLmxlbmd0aCl7dmFyIHo9KHJbci5sZW5ndGgtMV0tclswXSkvKHIubGVuZ3RoLTEpLEQ9TWF0aC5hYnMoei8xMDApO2ZvcihrPTA7azxyLmxlbmd0aC0xO2srKylpZihNYXRoLmFicyhyW2srMV0tcltrXS16KT5EKXtPKCJ4IHNjYWxlIGlzIG5vdCBsaW5lYXIiKTticmVha319aWYoeC5sZW5ndGgmJiJmYXN0Ij09PVApe3ZhciBSPSh4W3gubGVuZ3RoLTFdLXhbMF0pLyh4Lmxlbmd0aC0xKSxGPU1hdGguYWJzKFIvMTAwKTtmb3Ioaz0wO2s8eC5sZW5ndGgtMTtrKyspaWYoTWF0aC5hYnMoeFtrKzFdLXhba10tUik+Ril7TygieSBzY2FsZSBpcyBub3QgbGluZWFyIik7YnJlYWt9fX12YXIgQj1pLm1heFJvd0xlbmd0aChUKSxOPSJzY2FsZWQiPT09ZS54dHlwZT8iIjpyLGo9cChlLE4sZyx2LEIsTSksVT0ic2NhbGVkIj09PWUueXR5cGU/IiI6eCxWPXAoZSxVLGIsXyxULmxlbmd0aCxTKTtDfHwoZS5fZXh0cmVtZXNbTS5faWRdPWEuZmluZEV4dHJlbWVzKE0saiksZS5fZXh0cmVtZXNbUy5faWRdPWEuZmluZEV4dHJlbWVzKFMsVikpO3ZhciBIPXt4OmoseTpWLHo6VCx0ZXh0OmUuX3RleHR8fGUudGV4dCxob3ZlcnRleHQ6ZS5faG92ZXJ0ZXh0fHxlLmhvdmVydGV4dH07aWYoZS54cGVyaW9kYWxpZ25tZW50JiZ5JiYoSC5vcmlnX3g9eSksZS55cGVyaW9kYWxpZ25tZW50JiZ3JiYoSC5vcmlnX3k9dyksTiYmTi5sZW5ndGg9PT1qLmxlbmd0aC0xJiYoSC54Q2VudGVyPU4pLFUmJlUubGVuZ3RoPT09Vi5sZW5ndGgtMSYmKEgueUNlbnRlcj1VKSxMJiYoSC54UmFuZ2VzPUEueFJhbmdlcyxILnlSYW5nZXM9QS55UmFuZ2VzLEgucHRzPUEucHRzKSxFfHxsKHQsZSx7dmFsczpULGNMZXR0ZXI6InoifSksRSYmZS5jb250b3VycyYmImhlYXRtYXAiPT09ZS5jb250b3Vycy5jb2xvcmluZyl7dmFyIHE9e3R5cGU6ImNvbnRvdXIiPT09ZS50eXBlPyJoZWF0bWFwIjoiaGlzdG9ncmFtMmQiLHhjYWxlbmRhcjplLnhjYWxlbmRhcix5Y2FsZW5kYXI6ZS55Y2FsZW5kYXJ9O0gueGZpbGw9cChxLE4sZyx2LEIsTSksSC55ZmlsbD1wKHEsVSxiLF8sVC5sZW5ndGgsUyl9cmV0dXJuW0hdfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvY2FsYyI6Mzc1LCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo0OTEsIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYWxpZ25fcGVyaW9kIjo1NjMsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo1NjYsIi4uLy4uL3JlZ2lzdHJ5Ijo2NDcsIi4uL2hpc3RvZ3JhbTJkL2NhbGMiOjgzNSwiLi9jbGVhbl8yZF9hcnJheSI6ODAzLCIuL2NvbnZlcnRfY29sdW1uX3h5eiI6ODA1LCIuL2ZpbmRfZW1wdGllcyI6ODA3LCIuL2ludGVycDJkIjo4MTAsIi4vbWFrZV9ib3VuZF9hcnJheSI6ODEyfV0sODAzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksaT10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiKS5CQUROVU07ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG8pe3ZhciBzLGwsYyx1LGYsaDtmdW5jdGlvbiBwKHQpe2lmKG4odCkpcmV0dXJuK3R9aWYoZSYmZS50cmFuc3Bvc2Upe2ZvcihzPTAsZj0wO2Y8dC5sZW5ndGg7ZisrKXM9TWF0aC5tYXgocyx0W2ZdLmxlbmd0aCk7aWYoMD09PXMpcmV0dXJuITE7Yz1mdW5jdGlvbih0KXtyZXR1cm4gdC5sZW5ndGh9LHU9ZnVuY3Rpb24odCxlLHIpe3JldHVybih0W3JdfHxbXSlbZV19fWVsc2Ugcz10Lmxlbmd0aCxjPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbZV0ubGVuZ3RofSx1PWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4odFtlXXx8W10pW3JdfTt2YXIgZD1mdW5jdGlvbih0LGUscil7cmV0dXJuIGU9PT1hfHxyPT09YT9hOnUodCxlLHIpfTtmdW5jdGlvbiBtKHQpe2lmKGUmJiJjYXJwZXQiIT09ZS50eXBlJiYiY29udG91cmNhcnBldCIhPT1lLnR5cGUmJnQmJiJjYXRlZ29yeSI9PT10LnR5cGUmJmVbIl8iK3QuX2lkLmNoYXJBdCgwKV0ubGVuZ3RoKXt2YXIgcj10Ll9pZC5jaGFyQXQoMCksbj17fSxvPWVbIl8iK3IrIkNhdGVnb3J5TWFwIl18fGVbcl07Zm9yKGY9MDtmPG8ubGVuZ3RoO2YrKyluW29bZl1dPWY7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciByPW5bdC5fY2F0ZWdvcmllc1tlXV07cmV0dXJuIHIrMT9yOmF9fXJldHVybiBpLmlkZW50aXR5fXZhciBnPW0ociksdj1tKG8pO28mJiJjYXRlZ29yeSI9PT1vLnR5cGUmJihzPW8uX2NhdGVnb3JpZXMubGVuZ3RoKTt2YXIgeT1uZXcgQXJyYXkocyk7Zm9yKGY9MDtmPHM7ZisrKWZvcihsPXImJiJjYXRlZ29yeSI9PT1yLnR5cGU/ci5fY2F0ZWdvcmllcy5sZW5ndGg6Yyh0LGYpLHlbZl09bmV3IEFycmF5KGwpLGg9MDtoPGw7aCsrKXlbZl1baF09cChkKHQsdihmKSxnKGgpKSk7cmV0dXJuIHl9fSx7Ii4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiOjQ5MSwiLi4vLi4vbGliIjo1MTUsImZhc3QtaXNudW1lcmljIjoxOTB9XSw4MDQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXttaW46InptaW4iLG1heDoiem1heCJ9fSx7fV0sODA1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTSxhPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9hbGlnbl9wZXJpb2QiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbyxzLGwpe3ZhciBjPXQuX2xlbmd0aCx1PWUubWFrZUNhbGNkYXRhKHQsbyksZj1yLm1ha2VDYWxjZGF0YSh0LHMpO3U9YSh0LGUsbyx1KS52YWxzLGY9YSh0LHIscyxmKS52YWxzO3ZhciBoLHAsZCxtLGc9dC50ZXh0LHY9dm9pZCAwIT09ZyYmbi5pc0FycmF5MUQoZykseT10LmhvdmVydGV4dCx4PXZvaWQgMCE9PXkmJm4uaXNBcnJheTFEKHkpLGI9bi5kaXN0aW5jdFZhbHModSksXz1iLnZhbHMsdz1uLmRpc3RpbmN0VmFscyhmKSxUPXcudmFscyxrPVtdLEE9VC5sZW5ndGgsTT1fLmxlbmd0aDtmb3IoaD0wO2g8bC5sZW5ndGg7aCsrKWtbaF09bi5pbml0MmRBcnJheShBLE0pO3YmJihkPW4uaW5pdDJkQXJyYXkoQSxNKSkseCYmKG09bi5pbml0MmRBcnJheShBLE0pKTt2YXIgUz1uLmluaXQyZEFycmF5KEEsTSk7Zm9yKGg9MDtoPGM7aCsrKWlmKHVbaF0hPT1pJiZmW2hdIT09aSl7dmFyIEU9bi5maW5kQmluKHVbaF0rYi5taW5EaWZmLzIsXyksTD1uLmZpbmRCaW4oZltoXSt3Lm1pbkRpZmYvMixUKTtmb3IocD0wO3A8bC5sZW5ndGg7cCsrKXt2YXIgQz10W2xbcF1dO2tbcF1bTF1bRV09Q1toXSxTW0xdW0VdPWh9diYmKGRbTF1bRV09Z1toXSkseCYmKG1bTF1bRV09eVtoXSl9Zm9yKHRbIl8iK29dPV8sdFsiXyIrc109VCxwPTA7cDxsLmxlbmd0aDtwKyspdFsiXyIrbFtwXV09a1twXTt2JiYodC5fdGV4dD1kKSx4JiYodC5faG92ZXJ0ZXh0PW0pLGUmJiJjYXRlZ29yeSI9PT1lLnR5cGUmJih0WyJfIitvKyJDYXRlZ29yeU1hcCJdPV8ubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gZS5fY2F0ZWdvcmllc1t0XX0pKSksciYmImNhdGVnb3J5Ij09PXIudHlwZSYmKHRbIl8iK3MrIkNhdGVnb3J5TWFwIl09VC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiByLl9jYXRlZ29yaWVzW3RdfSkpKSx0Ll9hZnRlcjJiZWZvcmU9U319LHsiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NDkxLCIuLi8uLi9saWIiOjUxNSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2FsaWduX3BlcmlvZCI6NTYzfV0sODA2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi94eXpfZGVmYXVsdHMiKSxhPXQoIi4vbGFiZWxfZGVmYXVsdHMiKSxvPXQoIi4uL3NjYXR0ZXIvcGVyaW9kX2RlZmF1bHRzIikscz10KCIuL3N0eWxlX2RlZmF1bHRzIiksbD10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiKSxjPXQoIi4vYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscix1KXtmdW5jdGlvbiBmKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxjLHIsaSl9aSh0LGUsZix1KT8obyh0LGUsdSxmKSxmKCJ4aG92ZXJmb3JtYXQiKSxmKCJ5aG92ZXJmb3JtYXQiKSxmKCJ0ZXh0IiksZigiaG92ZXJ0ZXh0IiksZigiaG92ZXJ0ZW1wbGF0ZSIpLGEoZix1KSxzKHQsZSxmLHUpLGYoImhvdmVyb25nYXBzIiksZigiY29ubmVjdGdhcHMiLG4uaXNBcnJheTFEKGUueikmJiExIT09ZS56c21vb3RoKSxsKHQsZSx1LGYse3ByZWZpeDoiIixjTGV0dGVyOiJ6In0pKTplLnZpc2libGU9ITF9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9kZWZhdWx0cyI6Mzc3LCIuLi8uLi9saWIiOjUxNSwiLi4vc2NhdHRlci9wZXJpb2RfZGVmYXVsdHMiOjk1NiwiLi9hdHRyaWJ1dGVzIjo4MDEsIi4vbGFiZWxfZGVmYXVsdHMiOjgxMSwiLi9zdHlsZV9kZWZhdWx0cyI6ODE1LCIuL3h5el9kZWZhdWx0cyI6ODE2fV0sODA3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLm1heFJvd0xlbmd0aDtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGUscixpLGEsbyxzLGwsYyx1PVtdLGY9e30saD1bXSxwPXRbMF0sZD1bXSxtPVswLDAsMF0sZz1uKHQpO2ZvcihyPTA7cjx0Lmxlbmd0aDtyKyspZm9yKGU9ZCxkPXAscD10W3IrMV18fFtdLGk9MDtpPGc7aSsrKXZvaWQgMD09PWRbaV0mJigocz0odm9pZCAwIT09ZFtpLTFdPzE6MCkrKHZvaWQgMCE9PWRbaSsxXT8xOjApKyh2b2lkIDAhPT1lW2ldPzE6MCkrKHZvaWQgMCE9PXBbaV0/MTowKSk/KDA9PT1yJiZzKyssMD09PWkmJnMrKyxyPT09dC5sZW5ndGgtMSYmcysrLGk9PT1kLmxlbmd0aC0xJiZzKyssczw0JiYoZltbcixpXV09W3IsaSxzXSksdS5wdXNoKFtyLGksc10pKTpoLnB1c2goW3IsaV0pKTtmb3IoO2gubGVuZ3RoOyl7Zm9yKGw9e30sYz0hMSxvPWgubGVuZ3RoLTE7bz49MDtvLS0pKHM9KChmW1socj0oYT1oW29dKVswXSktMSxpPWFbMV1dXXx8bSlbMl0rKGZbW3IrMSxpXV18fG0pWzJdKyhmW1tyLGktMV1dfHxtKVsyXSsoZltbcixpKzFdXXx8bSlbMl0pLzIwKSYmKGxbYV09W3IsaSxzXSxoLnNwbGljZShvLDEpLGM9ITApO2lmKCFjKXRocm93ImZpbmRFbXB0aWVzIGl0ZXJhdGVkIHdpdGggbm8gbmV3IG5laWdoYm9ycyI7Zm9yKGEgaW4gbClmW2FdPWxbYV0sdS5wdXNoKGxbYV0pfXJldHVybiB1LnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGVbMl0tdFsyXX0pKX19LHsiLi4vLi4vbGliIjo1MTV9XSw4MDg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9meCIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLG89dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIikuZXh0cmFjdE9wdHM7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHMsbCl7bHx8KGw9e30pO3ZhciBjLHUsZixoLHA9bC5pc0NvbnRvdXIsZD10LmNkWzBdLG09ZC50cmFjZSxnPXQueGEsdj10LnlhLHk9ZC54LHg9ZC55LGI9ZC56LF89ZC54Q2VudGVyLHc9ZC55Q2VudGVyLFQ9ZC56bWFzayxrPW0uemhvdmVyZm9ybWF0LEE9eSxNPXg7aWYoITEhPT10LmluZGV4KXt0cnl7Zj1NYXRoLnJvdW5kKHQuaW5kZXhbMV0pLGg9TWF0aC5yb3VuZCh0LmluZGV4WzBdKX1jYXRjaChlKXtyZXR1cm4gdm9pZCBpLmVycm9yKCJFcnJvciBob3ZlcmluZyBvbiBoZWF0bWFwLCBwb2ludE51bWJlciBtdXN0IGJlIFtyb3csY29sXSwgZm91bmQ6Iix0LmluZGV4KX1pZihmPDB8fGY+PWJbMF0ubGVuZ3RofHxoPDB8fGg+Yi5sZW5ndGgpcmV0dXJufWVsc2V7aWYobi5pbmJveChlLXlbMF0sZS15W3kubGVuZ3RoLTFdLDApPjB8fG4uaW5ib3goci14WzBdLHIteFt4Lmxlbmd0aC0xXSwwKT4wKXJldHVybjtpZihwKXt2YXIgUztmb3IoQT1bMip5WzBdLXlbMV1dLFM9MTtTPHkubGVuZ3RoO1MrKylBLnB1c2goKHlbU10reVtTLTFdKS8yKTtmb3IoQS5wdXNoKFsyKnlbeS5sZW5ndGgtMV0teVt5Lmxlbmd0aC0yXV0pLE09WzIqeFswXS14WzFdXSxTPTE7Uzx4Lmxlbmd0aDtTKyspTS5wdXNoKCh4W1NdK3hbUy0xXSkvMik7TS5wdXNoKFsyKnhbeC5sZW5ndGgtMV0teFt4Lmxlbmd0aC0yXV0pfWY9TWF0aC5tYXgoMCxNYXRoLm1pbihBLmxlbmd0aC0yLGkuZmluZEJpbihlLEEpKSksaD1NYXRoLm1heCgwLE1hdGgubWluKE0ubGVuZ3RoLTIsaS5maW5kQmluKHIsTSkpKX12YXIgRSxMLEM9Zy5jMnAoeVtmXSksUD1nLmMycCh5W2YrMV0pLEk9di5jMnAoeFtoXSksTz12LmMycCh4W2grMV0pO3A/KEU9ZC5vcmlnX3h8fHksTD1kLm9yaWdfeXx8eCxQPUMsYz1FW2ZdLE89SSx1PUxbaF0pOihFPWQub3JpZ194fHxffHx5LEw9ZC5vcmlnX3l8fHd8fHgsYz1fP0VbZl06KEVbZl0rRVtmKzFdKS8yLHU9dz9MW2hdOihMW2hdK0xbaCsxXSkvMixnJiYiY2F0ZWdvcnkiPT09Zy50eXBlJiYoYz15W2ZdKSx2JiYiY2F0ZWdvcnkiPT09di50eXBlJiYodT14W2hdKSxtLnpzbW9vdGgmJihDPVA9Zy5jMnAoYyksST1PPXYuYzJwKHUpKSk7dmFyIHo9YltoXVtmXTtpZihUJiYhVFtoXVtmXSYmKHo9dm9pZCAwKSx2b2lkIDAhPT16fHxtLmhvdmVyb25nYXBzKXt2YXIgRDtBcnJheS5pc0FycmF5KGQuaG92ZXJ0ZXh0KSYmQXJyYXkuaXNBcnJheShkLmhvdmVydGV4dFtoXSk/RD1kLmhvdmVydGV4dFtoXVtmXTpBcnJheS5pc0FycmF5KGQudGV4dCkmJkFycmF5LmlzQXJyYXkoZC50ZXh0W2hdKSYmKEQ9ZC50ZXh0W2hdW2ZdKTt2YXIgUj1vKG0pLEY9e3R5cGU6ImxpbmVhciIscmFuZ2U6W1IubWluLFIubWF4XSxob3ZlcmZvcm1hdDprLF9zZXBhcmF0b3JzOmcuX3NlcGFyYXRvcnMsX251bUZvcm1hdDpnLl9udW1Gb3JtYXR9LEI9YS50aWNrVGV4dChGLHosImhvdmVyIikudGV4dDtyZXR1cm5baS5leHRlbmRGbGF0KHQse2luZGV4Om0uX2FmdGVyMmJlZm9yZT9tLl9hZnRlcjJiZWZvcmVbaF1bZl06W2gsZl0sZGlzdGFuY2U6dC5tYXhIb3ZlckRpc3RhbmNlLHNwaWtlRGlzdGFuY2U6dC5tYXhTcGlrZURpc3RhbmNlLHgwOkMseDE6UCx5MDpJLHkxOk8seExhYmVsVmFsOmMseUxhYmVsVmFsOnUsekxhYmVsVmFsOnosekxhYmVsOkIsdGV4dDpEfSldfX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIjozNzksIi4uLy4uL2NvbXBvbmVudHMvZngiOjQwNywiLi4vLi4vbGliIjo1MTUsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo1NjZ9XSw4MDk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXthdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxjYWxjOnQoIi4vY2FsYyIpLHBsb3Q6dCgiLi9wbG90IiksY29sb3JiYXI6dCgiLi9jb2xvcmJhciIpLHN0eWxlOnQoIi4vc3R5bGUiKSxob3ZlclBvaW50czp0KCIuL2hvdmVyIiksbW9kdWxlVHlwZToidHJhY2UiLG5hbWU6ImhlYXRtYXAiLGJhc2VQbG90TW9kdWxlOnQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbiIpLGNhdGVnb3JpZXM6WyJjYXJ0ZXNpYW4iLCJzdmciLCIyZE1hcCIsInNob3dMZWdlbmQiXSxtZXRhOnt9fX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iOjU3OCwiLi9hdHRyaWJ1dGVzIjo4MDEsIi4vY2FsYyI6ODAyLCIuL2NvbG9yYmFyIjo4MDQsIi4vZGVmYXVsdHMiOjgwNiwiLi9ob3ZlciI6ODA4LCIuL3Bsb3QiOjgxMywiLi9zdHlsZSI6ODE0fV0sODEwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9W1stMSwwXSxbMSwwXSxbMCwtMV0sWzAsMV1dO2Z1bmN0aW9uIGEodCl7cmV0dXJuLjUtLjI1Kk1hdGgubWluKDEsLjUqdCl9ZnVuY3Rpb24gbyh0LGUscil7dmFyIG4sYSxvLHMsbCxjLHUsZixoLHAsZCxtLGcsdj0wO2ZvcihzPTA7czxlLmxlbmd0aDtzKyspe2ZvcihhPShuPWVbc10pWzBdLG89blsxXSxkPXRbYV1bb10scD0wLGg9MCxsPTA7bDw0O2wrKykodT10W2ErKGM9aVtsXSlbMF1dKSYmdm9pZCAwIT09KGY9dVtvK2NbMV1dKSYmKDA9PT1wP209Zz1mOihtPU1hdGgubWluKG0sZiksZz1NYXRoLm1heChnLGYpKSxoKysscCs9Zik7aWYoMD09PWgpdGhyb3ciaXRlcmF0ZUludGVycDJkIG9yZGVyIGlzIHdyb25nOiBubyBkZWZpbmVkIG5laWdoYm9ycyI7dFthXVtvXT1wL2gsdm9pZCAwPT09ZD9oPDQmJih2PTEpOih0W2FdW29dPSgxK3IpKnRbYV1bb10tcipkLGc+bSYmKHY9TWF0aC5tYXgodixNYXRoLmFicyh0W2FdW29dLWQpLyhnLW0pKSkpfXJldHVybiB2fWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLGk9MTtmb3Iobyh0LGUpLHI9MDtyPGUubGVuZ3RoJiYhKGVbcl1bMl08NCk7cisrKTtmb3IoZT1lLnNsaWNlKHIpLHI9MDtyPDEwMCYmaT4uMDE7cisrKWk9byh0LGUsYShpKSk7cmV0dXJuIGk+LjAxJiZuLmxvZygiaW50ZXJwMmQgZGlkbid0IGNvbnZlcmdlIHF1aWNrbHkiLGkpLHR9fSx7Ii4uLy4uL2xpYiI6NTE1fV0sODExOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3QoInRleHR0ZW1wbGF0ZSIpO3ZhciByPW4uZXh0ZW5kRmxhdCh7fSxlLmZvbnQse2NvbG9yOiJhdXRvIixzaXplOiJhdXRvIn0pO24uY29lcmNlRm9udCh0LCJ0ZXh0Zm9udCIscil9fSx7Ii4uLy4uL2xpYiI6NTE1fV0sODEyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3JlZ2lzdHJ5IiksaT10KCIuLi8uLi9saWIiKS5pc0FycmF5T3JUeXBlZEFycmF5O2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixhLG8scyl7dmFyIGwsYyx1LGY9W10saD1uLnRyYWNlSXModCwiY29udG91ciIpLHA9bi50cmFjZUlzKHQsImhpc3RvZ3JhbSIpLGQ9bi50cmFjZUlzKHQsImdsMmQiKTtpZihpKGUpJiZlLmxlbmd0aD4xJiYhcCYmImNhdGVnb3J5IiE9PXMudHlwZSl7dmFyIG09ZS5sZW5ndGg7aWYoIShtPD1vKSlyZXR1cm4gaD9lLnNsaWNlKDAsbyk6ZS5zbGljZSgwLG8rMSk7aWYoaHx8ZClmPWUuc2xpY2UoMCxvKTtlbHNlIGlmKDE9PT1vKWY9W2VbMF0tLjUsZVswXSsuNV07ZWxzZXtmb3IoZj1bMS41KmVbMF0tLjUqZVsxXV0sdT0xO3U8bTt1KyspZi5wdXNoKC41KihlW3UtMV0rZVt1XSkpO2YucHVzaCgxLjUqZVttLTFdLS41KmVbbS0yXSl9aWYobTxvKXt2YXIgZz1mW2YubGVuZ3RoLTFdLHY9Zy1mW2YubGVuZ3RoLTJdO2Zvcih1PW07dTxvO3UrKylnKz12LGYucHVzaChnKX19ZWxzZXt2YXIgeT10W3MuX2lkLmNoYXJBdCgwKSsiY2FsZW5kYXIiXTtpZihwKWw9cy5yMmMociwwLHkpO2Vsc2UgaWYoaShlKSYmMT09PWUubGVuZ3RoKWw9ZVswXTtlbHNlIGlmKHZvaWQgMD09PXIpbD0wO2Vsc2V7bD0oImxvZyI9PT1zLnR5cGU/cy5kMmM6cy5yMmMpKHIsMCx5KX1mb3IoYz1hfHwxLHU9aHx8ZD8wOi0uNTt1PG87dSsrKWYucHVzaChsK2MqdSl9cmV0dXJuIGZ9fSx7Ii4uLy4uL2xpYiI6NTE1LCIuLi8uLi9yZWdpc3RyeSI6NjQ3fV0sODEzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoInRpbnljb2xvcjIiKSxhPXQoIi4uLy4uL3JlZ2lzdHJ5Iiksbz10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxzPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksbD10KCIuLi8uLi9saWIiKSxjPXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpLHU9dCgiLi4vc2NhdHRlci9mb3JtYXRfbGFiZWxzIiksZj10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksaD10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiKS5leHRyYWN0T3B0cyxwPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSIpLm1ha2VDb2xvclNjYWxlRnVuY0Zyb21UcmFjZSxkPXQoIi4uLy4uL2NvbnN0YW50cy94bWxuc19uYW1lc3BhY2VzIiksbT10KCIuLi8uLi9jb25zdGFudHMvYWxpZ25tZW50IikuTElORV9TUEFDSU5HO2Z1bmN0aW9uIGcodCl7cmV0dXJuIHQuc2VsZWN0QWxsKCJnLmhlYXRtYXAtbGFiZWwiKX1mdW5jdGlvbiB2KHQpe2codCkucmVtb3ZlKCl9ZnVuY3Rpb24geSh0LGUpe3ZhciByPWUubGVuZ3RoLTIsbj1sLmNvbnN0cmFpbihsLmZpbmRCaW4odCxlKSwwLHIpLGk9ZVtuXSxhPWVbbisxXSxvPWwuY29uc3RyYWluKG4rKHQtaSkvKGEtaSktLjUsMCxyKSxzPU1hdGgucm91bmQobyksYz1NYXRoLmFicyhvLXMpO3JldHVybiBvJiZvIT09ciYmYz97YmluMDpzLGZyYWM6YyxiaW4xOk1hdGgucm91bmQocytjLyhvLXMpKX06e2JpbjA6cyxiaW4xOnMsZnJhYzowfX1mdW5jdGlvbiB4KHQsZSl7dmFyIHI9ZS5sZW5ndGgtMSxuPWwuY29uc3RyYWluKGwuZmluZEJpbih0LGUpLDAsciksaT1lW25dLGE9KHQtaSkvKGVbbisxXS1pKXx8MDtyZXR1cm4gYTw9MD97YmluMDpuLGJpbjE6bixmcmFjOjB9OmE8LjU/e2JpbjA6bixiaW4xOm4rMSxmcmFjOmF9OntiaW4wOm4rMSxiaW4xOm4sZnJhYzoxLWF9fWZ1bmN0aW9uIGIodCxlLHIpe3RbZV09clswXSx0W2UrMV09clsxXSx0W2UrMl09clsyXSx0W2UrM109TWF0aC5yb3VuZCgyNTUqclszXSl9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLF8pe3ZhciB3PWUueGF4aXMsVD1lLnlheGlzO2wubWFrZVRyYWNlR3JvdXBzKF8sciwiaG0iKS5lYWNoKChmdW5jdGlvbihlKXt2YXIgcixfLGssQSxNLFMsRSxMLEM9bi5zZWxlY3QodGhpcyksUD1lWzBdLEk9UC50cmFjZSxPPUkueGdhcHx8MCx6PUkueWdhcHx8MCxEPVAueixSPVAueCxGPVAueSxCPVAueENlbnRlcixOPVAueUNlbnRlcixqPWEudHJhY2VJcyhJLCJjb250b3VyIiksVT1qPyJiZXN0IjpJLnpzbW9vdGgsVj1ELmxlbmd0aCxIPWwubWF4Um93TGVuZ3RoKEQpLHE9ITEsRz0hMTtmb3IoUz0wO3ZvaWQgMD09PXImJlM8Ui5sZW5ndGgtMTspcj13LmMycChSW1NdKSxTKys7Zm9yKFM9Ui5sZW5ndGgtMTt2b2lkIDA9PT1fJiZTPjA7KV89dy5jMnAoUltTXSksUy0tO2ZvcihfPHImJihrPV8sXz1yLHI9ayxxPSEwKSxTPTA7dm9pZCAwPT09QSYmUzxGLmxlbmd0aC0xOylBPVQuYzJwKEZbU10pLFMrKztmb3IoUz1GLmxlbmd0aC0xO3ZvaWQgMD09PU0mJlM+MDspTT1ULmMycChGW1NdKSxTLS07aWYoTTxBJiYoaz1BLEE9TSxNPWssRz0hMCksaiYmKEI9UixOPUYsUj1QLnhmaWxsLEY9UC55ZmlsbCksImZhc3QiIT09VSl7dmFyIFk9ImJlc3QiPT09VT8wOi41O3I9TWF0aC5tYXgoLVkqdy5fbGVuZ3RoLHIpLF89TWF0aC5taW4oKDErWSkqdy5fbGVuZ3RoLF8pLEE9TWF0aC5tYXgoLVkqVC5fbGVuZ3RoLEEpLE09TWF0aC5taW4oKDErWSkqVC5fbGVuZ3RoLE0pfXZhciBXLFgsWj1NYXRoLnJvdW5kKF8tciksSj1NYXRoLnJvdW5kKE0tQSk7aWYoWjw9MHx8Sjw9MClyZXR1cm4gQy5zZWxlY3RBbGwoImltYWdlIikuZGF0YShbXSkuZXhpdCgpLnJlbW92ZSgpLHZvaWQgdihDKTsiZmFzdCI9PT1VPyhXPUgsWD1WKTooVz1aLFg9Sik7dmFyIEs9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7Sy53aWR0aD1XLEsuaGVpZ2h0PVg7dmFyIFEsJCx0dD1LLmdldENvbnRleHQoIjJkIiksZXQ9cChJLHtub051bWVyaWNDaGVjazohMCxyZXR1cm5BcnJheTohMH0pOyJmYXN0Ij09PVU/KFE9cT9mdW5jdGlvbih0KXtyZXR1cm4gSC0xLXR9OmwuaWRlbnRpdHksJD1HP2Z1bmN0aW9uKHQpe3JldHVybiBWLTEtdH06bC5pZGVudGl0eSk6KFE9ZnVuY3Rpb24odCl7cmV0dXJuIGwuY29uc3RyYWluKE1hdGgucm91bmQody5jMnAoUlt0XSktciksMCxaKX0sJD1mdW5jdGlvbih0KXtyZXR1cm4gbC5jb25zdHJhaW4oTWF0aC5yb3VuZChULmMycChGW3RdKS1BKSwwLEopfSk7dmFyIHJ0LG50LGl0LGF0LG90PSQoMCksc3Q9W290LG90XSxsdD1xPzA6MSxjdD1HPzA6MSx1dD0wLGZ0PTAsaHQ9MCxwdD0wO2Z1bmN0aW9uIGR0KHQsZSl7aWYodm9pZCAwIT09dCl7dmFyIHI9ZXQodCk7cmV0dXJuIHJbMF09TWF0aC5yb3VuZChyWzBdKSxyWzFdPU1hdGgucm91bmQoclsxXSksclsyXT1NYXRoLnJvdW5kKHJbMl0pLHV0Kz1lLGZ0Kz1yWzBdKmUsaHQrPXJbMV0qZSxwdCs9clsyXSplLHJ9cmV0dXJuWzAsMCwwLDBdfWZ1bmN0aW9uIG10KHQsZSxyLG4pe3ZhciBpPXRbci5iaW4wXTtpZih2b2lkIDA9PT1pKXJldHVybiBkdCh2b2lkIDAsMSk7dmFyIGEsbz10W3IuYmluMV0scz1lW3IuYmluMF0sbD1lW3IuYmluMV0sYz1vLWl8fDAsdT1zLWl8fDA7cmV0dXJuIGE9dm9pZCAwPT09bz92b2lkIDA9PT1sPzA6dm9pZCAwPT09cz8yKihsLWkpOjIqKDIqbC1zLWkpLzM6dm9pZCAwPT09bD92b2lkIDA9PT1zPzA6MiooMippLW8tcykvMzp2b2lkIDA9PT1zPzIqKDIqbC1vLWkpLzM6bCtpLW8tcyxkdChpK3IuZnJhYypjK24uZnJhYyoodStyLmZyYWMqYSkpfWlmKFUpe3ZhciBndCx2dD0wO3RyeXtndD1uZXcgVWludDhBcnJheShaKkoqNCl9Y2F0Y2godCl7Z3Q9bmV3IEFycmF5KFoqSio0KX1pZigiYmVzdCI9PT1VKXt2YXIgeXQseHQsYnQsX3Q9Qnx8Uix3dD1OfHxGLFR0PW5ldyBBcnJheShfdC5sZW5ndGgpLGt0PW5ldyBBcnJheSh3dC5sZW5ndGgpLEF0PW5ldyBBcnJheShaKSxNdD1CP3g6eSxTdD1OP3g6eTtmb3IoUz0wO1M8X3QubGVuZ3RoO1MrKylUdFtTXT1NYXRoLnJvdW5kKHcuYzJwKF90W1NdKS1yKTtmb3IoUz0wO1M8d3QubGVuZ3RoO1MrKylrdFtTXT1NYXRoLnJvdW5kKFQuYzJwKHd0W1NdKS1BKTtmb3IoUz0wO1M8WjtTKyspQXRbU109TXQoUyxUdCk7Zm9yKEU9MDtFPEo7RSsrKWZvcih4dD1EWyh5dD1TdChFLGt0KSkuYmluMF0sYnQ9RFt5dC5iaW4xXSxTPTA7UzxaO1MrKyx2dCs9NCliKGd0LHZ0LGF0PW10KHh0LGJ0LEF0W1NdLHl0KSl9ZWxzZSBmb3IoRT0wO0U8VjtFKyspZm9yKGl0PURbRV0sc3Q9JChFKSxTPTA7UzxaO1MrKylhdD1kdChpdFtTXSwxKSxiKGd0LHZ0PTQqKHN0KlorUShTKSksYXQpO3ZhciBFdD10dC5jcmVhdGVJbWFnZURhdGEoWixKKTt0cnl7RXQuZGF0YS5zZXQoZ3QpfWNhdGNoKHQpe3ZhciBMdD1FdC5kYXRhLEN0PUx0Lmxlbmd0aDtmb3IoRT0wO0U8Q3Q7RSsrKUx0W0VdPWd0W0VdfXR0LnB1dEltYWdlRGF0YShFdCwwLDApfWVsc2V7dmFyIFB0PU1hdGguZmxvb3IoTy8yKSxJdD1NYXRoLmZsb29yKHovMik7Zm9yKEU9MDtFPFY7RSsrKWlmKGl0PURbRV0sc3QucmV2ZXJzZSgpLHN0W2N0XT0kKEUrMSksc3RbMF0hPT1zdFsxXSYmdm9pZCAwIT09c3RbMF0mJnZvaWQgMCE9PXN0WzFdKWZvcihydD1bbnQ9USgwKSxudF0sUz0wO1M8SDtTKyspcnQucmV2ZXJzZSgpLHJ0W2x0XT1RKFMrMSkscnRbMF0hPT1ydFsxXSYmdm9pZCAwIT09cnRbMF0mJnZvaWQgMCE9PXJ0WzFdJiYoYXQ9ZHQoaXRbU10sKHJ0WzFdLXJ0WzBdKSooc3RbMV0tc3RbMF0pKSx0dC5maWxsU3R5bGU9InJnYmEoIithdC5qb2luKCIsIikrIikiLHR0LmZpbGxSZWN0KHJ0WzBdK1B0LHN0WzBdK0l0LHJ0WzFdLXJ0WzBdLU8sc3RbMV0tc3RbMF0teikpfWZ0PU1hdGgucm91bmQoZnQvdXQpLGh0PU1hdGgucm91bmQoaHQvdXQpLHB0PU1hdGgucm91bmQocHQvdXQpO3ZhciBPdD1pKCJyZ2IoIitmdCsiLCIraHQrIiwiK3B0KyIpIik7dC5faG1waXhjb3VudD0odC5faG1waXhjb3VudHx8MCkrdXQsdC5faG1sdW1jb3VudD0odC5faG1sdW1jb3VudHx8MCkrdXQqT3QuZ2V0THVtaW5hbmNlKCk7dmFyIHp0PUMuc2VsZWN0QWxsKCJpbWFnZSIpLmRhdGEoZSk7enQuZW50ZXIoKS5hcHBlbmQoInN2ZzppbWFnZSIpLmF0dHIoe3htbG5zOmQuc3ZnLHByZXNlcnZlQXNwZWN0UmF0aW86Im5vbmUifSksenQuYXR0cih7aGVpZ2h0Okosd2lkdGg6Wix4OnIseTpBLCJ4bGluazpocmVmIjpLLnRvRGF0YVVSTCgiaW1hZ2UvcG5nIil9KSx2KEMpO3ZhciBEdD1JLnRleHR0ZW1wbGF0ZTtpZihEdCl7dmFyIFJ0PWgoSSksRnQ9e3R5cGU6ImxpbmVhciIscmFuZ2U6W1J0Lm1pbixSdC5tYXhdLF9zZXBhcmF0b3JzOncuX3NlcGFyYXRvcnMsX251bUZvcm1hdDp3Ll9udW1Gb3JtYXR9LEJ0PSJoaXN0b2dyYW0yZGNvbnRvdXIiPT09SS50eXBlLE50PSJjb250b3VyIj09PUkudHlwZSxqdD1OdD9WLTE6VixVdD1OdD8xOjAsVnQ9TnQ/SC0xOkgsSHQ9W107Zm9yKFM9TnQ/MTowO1M8anQ7UysrKXt2YXIgcXQ7aWYoTnQpcXQ9UC55W1NdO2Vsc2UgaWYoQnQpe2lmKDA9PT1TfHxTPT09Vi0xKWNvbnRpbnVlO3F0PVAueVtTXX1lbHNlIGlmKFAueUNlbnRlcilxdD1QLnlDZW50ZXJbU107ZWxzZXtpZihTKzE9PT1WJiZ2b2lkIDA9PT1QLnlbUysxXSljb250aW51ZTtxdD0oUC55W1NdK1AueVtTKzFdKS8yfXZhciBHdD1NYXRoLnJvdW5kKFQuYzJwKHF0KSk7aWYoISgwPkd0fHxHdD5ULl9sZW5ndGgpKWZvcihFPVV0O0U8VnQ7RSsrKXt2YXIgWXQ7aWYoTnQpWXQ9UC54W0VdO2Vsc2UgaWYoQnQpe2lmKDA9PT1FfHxFPT09SC0xKWNvbnRpbnVlO1l0PVAueFtFXX1lbHNlIGlmKFAueENlbnRlcilZdD1QLnhDZW50ZXJbRV07ZWxzZXtpZihFKzE9PT1IJiZ2b2lkIDA9PT1QLnhbRSsxXSljb250aW51ZTtZdD0oUC54W0VdK1AueFtFKzFdKS8yfXZhciBXdD1NYXRoLnJvdW5kKHcuYzJwKFl0KSk7aWYoISgwPld0fHxXdD53Ll9sZW5ndGgpKXt2YXIgWHQ9dSh7eDpZdCx5OnF0fSxJLHQuX2Z1bGxMYXlvdXQpO1h0Lng9WXQsWHQueT1xdDt2YXIgWnQ9UC56W1NdW0VdO3ZvaWQgMD09PVp0PyhYdC56PSIiLFh0LnpMYWJlbD0iIik6KFh0Lno9WnQsWHQuekxhYmVsPXMudGlja1RleHQoRnQsWnQsImhvdmVyIikudGV4dCk7dmFyIEp0PVAudGV4dCYmUC50ZXh0W1NdJiZQLnRleHRbU11bRV07dm9pZCAwIT09SnQmJiExIT09SnR8fChKdD0iIiksWHQudGV4dD1KdDt2YXIgS3Q9bC50ZXh0dGVtcGxhdGVTdHJpbmcoRHQsWHQsdC5fZnVsbExheW91dC5fZDNsb2NhbGUsWHQsSS5fbWV0YXx8e30pO2lmKEt0KXt2YXIgUXQ9S3Quc3BsaXQoIjxicj4iKSwkdD1RdC5sZW5ndGgsdGU9MDtmb3IoTD0wO0w8JHQ7TCsrKXRlPU1hdGgubWF4KHRlLFF0W0xdLmxlbmd0aCk7SHQucHVzaCh7bDokdCxjOnRlLHQ6S3QseDpXdCx5Okd0LHo6WnR9KX19fX12YXIgZWU9SS50ZXh0Zm9udCxyZT1lZS5mYW1pbHksbmU9ZWUuc2l6ZSxpZT10Ll9mdWxsTGF5b3V0LmZvbnQuc2l6ZTtpZighbmV8fCJhdXRvIj09PW5lKXt2YXIgYWU9MS8wLG9lPTEvMCxzZT0wLGxlPTA7Zm9yKEw9MDtMPEh0Lmxlbmd0aDtMKyspe3ZhciBjZT1IdFtMXTtpZihzZT1NYXRoLm1heChzZSxjZS5sKSxsZT1NYXRoLm1heChsZSxjZS5jKSxMPEh0Lmxlbmd0aC0xKXt2YXIgdWU9SHRbTCsxXSxmZT1NYXRoLmFicyh1ZS54LWNlLngpLGhlPU1hdGguYWJzKHVlLnktY2UueSk7ZmUmJihhZT1NYXRoLm1pbihhZSxmZSkpLGhlJiYob2U9TWF0aC5taW4ob2UsaGUpKX19aXNGaW5pdGUoYWUpJiZpc0Zpbml0ZShvZSk/KGFlLT1PLG9lLT16LGFlLz1sZSxvZS89c2UsYWUvPW0vMixvZS89bSxuZT1NYXRoLm1pbihNYXRoLmZsb29yKGFlKSxNYXRoLmZsb29yKG9lKSxpZSkpOm5lPWllfWlmKG5lPD0wfHwhaXNGaW5pdGUobmUpKXJldHVybjtnKEMpLmRhdGEoSHQpLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgiaGVhdG1hcC1sYWJlbCIsMSkuYXBwZW5kKCJ0ZXh0IikuYXR0cigidGV4dC1hbmNob3IiLCJtaWRkbGUiKS5lYWNoKChmdW5jdGlvbihlKXt2YXIgcj1uLnNlbGVjdCh0aGlzKSxpPWVlLmNvbG9yO2kmJiJhdXRvIiE9PWl8fChpPWYuY29udHJhc3QoInJnYmEoIitldChlLnopLmpvaW4oKSsiKSIpKSxyLmF0dHIoImRhdGEtbm90ZXgiLDEpLmNhbGwoYy5wb3NpdGlvblRleHQsZnVuY3Rpb24odCl7cmV0dXJuIHQueH0oZSksZnVuY3Rpb24odCl7cmV0dXJuIHQueS1uZSoodC5sKm0vMi0xKX0oZSkpLmNhbGwoby5mb250LHJlLG5lLGkpLnRleHQoZS50KS5jYWxsKGMuY29udmVydFRvVHNwYW5zLHQpfSkpfX0pKX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6MzY3LCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiOjM3OSwiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjozODksIi4uLy4uL2NvbnN0YW50cy9hbGlnbm1lbnQiOjQ4MywiLi4vLi4vY29uc3RhbnRzL3htbG5zX25hbWVzcGFjZXMiOjQ5MiwiLi4vLi4vbGliIjo1MTUsIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyI6NTQxLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NTY2LCIuLi8uLi9yZWdpc3RyeSI6NjQ3LCIuLi9zY2F0dGVyL2Zvcm1hdF9sYWJlbHMiOjk0NSwiQHBsb3RseS9kMyI6NTgsdGlueWNvbG9yMjozMTN9XSw4MTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtuLnNlbGVjdCh0KS5zZWxlY3RBbGwoIi5obSBpbWFnZSIpLnN0eWxlKCJvcGFjaXR5IiwoZnVuY3Rpb24odCl7cmV0dXJuIHQudHJhY2Uub3BhY2l0eX0pKX19LHsiQHBsb3RseS9kMyI6NTh9XSw4MTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXshMT09PXIoInpzbW9vdGgiKSYmKHIoInhnYXAiKSxyKCJ5Z2FwIikpLHIoInpob3ZlcmZvcm1hdCIpfX0se31dLDgxNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9yZWdpc3RyeSIpO2Z1bmN0aW9uIG8odCxlKXt2YXIgcj1lKHQpO3JldHVybiJzY2FsZWQiPT09KHI/ZSh0KyJ0eXBlIiwiYXJyYXkiKToic2NhbGVkIikmJihlKHQrIjAiKSxlKCJkIit0KSkscn1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIscyxsLGMpe3ZhciB1LGYsaD1yKCJ6Iik7aWYobD1sfHwieCIsYz1jfHwieSIsdm9pZCAwPT09aHx8IWgubGVuZ3RoKXJldHVybiAwO2lmKGkuaXNBcnJheTFEKHQueikpe3U9cihsKSxmPXIoYyk7dmFyIHA9aS5taW5Sb3dMZW5ndGgodSksZD1pLm1pblJvd0xlbmd0aChmKTtpZigwPT09cHx8MD09PWQpcmV0dXJuIDA7ZS5fbGVuZ3RoPU1hdGgubWluKHAsZCxoLmxlbmd0aCl9ZWxzZXtpZih1PW8obCxyKSxmPW8oYyxyKSwhZnVuY3Rpb24odCl7Zm9yKHZhciBlLHI9ITAsYT0hMSxvPSExLHM9MDtzPHQubGVuZ3RoO3MrKyl7aWYoZT10W3NdLCFpLmlzQXJyYXlPclR5cGVkQXJyYXkoZSkpe3I9ITE7YnJlYWt9ZS5sZW5ndGg+MCYmKGE9ITApO2Zvcih2YXIgbD0wO2w8ZS5sZW5ndGg7bCsrKWlmKG4oZVtsXSkpe289ITA7YnJlYWt9fXJldHVybiByJiZhJiZvfShoKSlyZXR1cm4gMDtyKCJ0cmFuc3Bvc2UiKSxlLl9sZW5ndGg9bnVsbH1yZXR1cm4iaGVhdG1hcGdsIj09PXQudHlwZXx8YS5nZXRDb21wb25lbnRNZXRob2QoImNhbGVuZGFycyIsImhhbmRsZVRyYWNlRGVmYXVsdHMiKSh0LGUsW2wsY10scyksITB9fSx7Ii4uLy4uL2xpYiI6NTE1LCIuLi8uLi9yZWdpc3RyeSI6NjQ3LCJmYXN0LWlzbnVtZXJpYyI6MTkwfV0sODE3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Zvcih2YXIgbj10KCIuLi9oZWF0bWFwL2F0dHJpYnV0ZXMiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxvPXQoIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiKS5vdmVycmlkZUFsbCxzPVsieiIsIngiLCJ4MCIsImR4IiwieSIsInkwIiwiZHkiLCJ0ZXh0IiwidHJhbnNwb3NlIiwieHR5cGUiLCJ5dHlwZSJdLGw9e30sYz0wO2M8cy5sZW5ndGg7YysrKXt2YXIgdT1zW2NdO2xbdV09blt1XX1sLnpzbW9vdGg9e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImZhc3QiLCExXSxkZmx0OiJmYXN0IixlZGl0VHlwZToiY2FsYyJ9LGEobCxpKCIiLHtjTGV0dGVyOiJ6IixhdXRvQ29sb3JEZmx0OiExfSkpLGUuZXhwb3J0cz1vKGwsImNhbGMiLCJuZXN0ZWQiKX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6Mzc0LCIuLi8uLi9saWIvZXh0ZW5kIjo1MDUsIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiOjU0OCwiLi4vaGVhdG1hcC9hdHRyaWJ1dGVzIjo4MDF9XSw4MTg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vLi4vc3RhY2tnbF9tb2R1bGVzIikuZ2xfaGVhdG1hcDJkLGk9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxhPXQoIi4uLy4uL2xpYi9zdHIycmdiYXJyYXkiKTtmdW5jdGlvbiBvKHQsZSl7dGhpcy5zY2VuZT10LHRoaXMudWlkPWUsdGhpcy50eXBlPSJoZWF0bWFwZ2wiLHRoaXMubmFtZT0iIix0aGlzLmhvdmVyaW5mbz0iYWxsIix0aGlzLnhEYXRhPVtdLHRoaXMueURhdGE9W10sdGhpcy56RGF0YT1bXSx0aGlzLnRleHRMYWJlbHM9W10sdGhpcy5pZFRvSW5kZXg9W10sdGhpcy5ib3VuZHM9WzAsMCwwLDBdLHRoaXMub3B0aW9ucz17enNtb290aDoiZmFzdCIsejpbXSx4OltdLHk6W10sc2hhcGU6WzAsMF0sY29sb3JMZXZlbHM6WzBdLGNvbG9yVmFsdWVzOlswLDAsMCwxXX0sdGhpcy5oZWF0bWFwPW4odC5nbHBsb3QsdGhpcy5vcHRpb25zKSx0aGlzLmhlYXRtYXAuX3RyYWNlPXRoaXN9dmFyIHM9by5wcm90b3R5cGU7cy5oYW5kbGVQaWNrPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMub3B0aW9ucyxyPWUuc2hhcGUsbj10LnBvaW50SWQsaT1uJXJbMF0sYT1NYXRoLmZsb29yKG4vclswXSksbz1uO3JldHVybnt0cmFjZTp0aGlzLGRhdGFDb29yZDp0LmRhdGFDb29yZCx0cmFjZUNvb3JkOltlLnhbaV0sZS55W2FdLGUueltvXV0sdGV4dExhYmVsOnRoaXMudGV4dExhYmVsc1tuXSxuYW1lOnRoaXMubmFtZSxwb2ludEluZGV4OlthLGldLGhvdmVyaW5mbzp0aGlzLmhvdmVyaW5mb319LHMudXBkYXRlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXTt0aGlzLmluZGV4PXQuaW5kZXgsdGhpcy5uYW1lPXQubmFtZSx0aGlzLmhvdmVyaW5mbz10LmhvdmVyaW5mbzt2YXIgbj1yLno7dGhpcy5vcHRpb25zLno9W10uY29uY2F0LmFwcGx5KFtdLG4pO3ZhciBvPW5bMF0ubGVuZ3RoLHM9bi5sZW5ndGg7dGhpcy5vcHRpb25zLnNoYXBlPVtvLHNdLHRoaXMub3B0aW9ucy54PXIueCx0aGlzLm9wdGlvbnMueT1yLnksdGhpcy5vcHRpb25zLnpzbW9vdGg9dC56c21vb3RoO3ZhciBsPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10LmNvbG9yc2NhbGUscj10LnptaW4sbj10LnptYXgsaT1lLmxlbmd0aCxvPW5ldyBBcnJheShpKSxzPW5ldyBBcnJheSg0KmkpLGw9MDtsPGk7bCsrKXt2YXIgYz1lW2xdLHU9YShjWzFdKTtvW2xdPXIrY1swXSoobi1yKTtmb3IodmFyIGY9MDtmPDQ7ZisrKXNbNCpsK2ZdPXVbZl19cmV0dXJue2NvbG9yTGV2ZWxzOm8sY29sb3JWYWx1ZXM6c319KHQpO3RoaXMub3B0aW9ucy5jb2xvckxldmVscz1sLmNvbG9yTGV2ZWxzLHRoaXMub3B0aW9ucy5jb2xvclZhbHVlcz1sLmNvbG9yVmFsdWVzLHRoaXMudGV4dExhYmVscz1bXS5jb25jYXQuYXBwbHkoW10sdC50ZXh0KSx0aGlzLmhlYXRtYXAudXBkYXRlKHRoaXMub3B0aW9ucyk7dmFyIGMsdSxmPXRoaXMuc2NlbmUueGF4aXMsaD10aGlzLnNjZW5lLnlheGlzOyExPT09dC56c21vb3RoJiYoYz17cHBhZDpyLnhbMV0tci54WzBdfSx1PXtwcGFkOnIueVsxXS1yLnlbMF19KSx0Ll9leHRyZW1lc1tmLl9pZF09aS5maW5kRXh0cmVtZXMoZixyLngsYyksdC5fZXh0cmVtZXNbaC5faWRdPWkuZmluZEV4dHJlbWVzKGgsci55LHUpfSxzLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLmhlYXRtYXAuZGlzcG9zZSgpfSxlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPW5ldyBvKHQsZS51aWQpO3JldHVybiBuLnVwZGF0ZShlLHIpLG59fSx7Ii4uLy4uLy4uL3N0YWNrZ2xfbW9kdWxlcyI6MTEzMywiLi4vLi4vbGliL3N0cjJyZ2JhcnJheSI6NTQwLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NTY2fV0sODE5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vaGVhdG1hcC94eXpfZGVmYXVsdHMiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9kZWZhdWx0cyIpLG89dCgiLi9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHMpe2Z1bmN0aW9uIGwocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLG8scixpKX1pKHQsZSxsLHMpPyhsKCJ0ZXh0IiksbCgienNtb290aCIpLGEodCxlLHMsbCx7cHJlZml4OiIiLGNMZXR0ZXI6InoifSkpOmUudmlzaWJsZT0hMX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2RlZmF1bHRzIjozNzcsIi4uLy4uL2xpYiI6NTE1LCIuLi9oZWF0bWFwL3h5el9kZWZhdWx0cyI6ODE2LCIuL2F0dHJpYnV0ZXMiOjgxN31dLDgyMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtbIipoZWF0bWFwZ2wqIHRyYWNlIGlzIGRlcHJlY2F0ZWQhIiwiUGxlYXNlIGNvbnNpZGVyIHN3aXRjaGluZyB0byB0aGUgKmhlYXRtYXAqIG9yICppbWFnZSogdHJhY2UgdHlwZXMuIiwiQWx0ZXJuYXRpdmVseSB5b3UgY291bGQgY29udHJpYnV0ZS9zcG9uc29yIHJld3JpdGluZyB0aGlzIHRyYWNlIHR5cGUiLCJiYXNlZCBvbiBjYXJ0ZXNpYW4gZmVhdHVyZXMgYW5kIHVzaW5nIHJlZ2wgZnJhbWV3b3JrLiJdLmpvaW4oIiAiKTtlLmV4cG9ydHM9e2F0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNvbG9yYmFyOnQoIi4uL2hlYXRtYXAvY29sb3JiYXIiKSxjYWxjOnQoIi4uL2hlYXRtYXAvY2FsYyIpLHBsb3Q6dCgiLi9jb252ZXJ0IiksbW9kdWxlVHlwZToidHJhY2UiLG5hbWU6ImhlYXRtYXBnbCIsYmFzZVBsb3RNb2R1bGU6dCgiLi4vLi4vcGxvdHMvZ2wyZCIpLGNhdGVnb3JpZXM6WyJnbCIsImdsMmQiLCIyZE1hcCJdLG1ldGE6e319fSx7Ii4uLy4uL3Bsb3RzL2dsMmQiOjYwNSwiLi4vaGVhdG1hcC9jYWxjIjo4MDIsIi4uL2hlYXRtYXAvY29sb3JiYXIiOjgwNCwiLi9hdHRyaWJ1dGVzIjo4MTcsIi4vY29udmVydCI6ODE4LCIuL2RlZmF1bHRzIjo4MTl9XSw4MjE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vYmFyL2F0dHJpYnV0ZXMiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2Zvcm1hdF9hdHRyaWJ1dGVzIikuYXhpc0hvdmVyRm9ybWF0LGE9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxvPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS50ZXh0dGVtcGxhdGVBdHRycyxzPXQoIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyIpLGw9dCgiLi9iaW5fYXR0cmlidXRlcyIpLGM9dCgiLi9jb25zdGFudHMiKSx1PXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0O2UuZXhwb3J0cz17eDp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSx5Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LHhob3ZlcmZvcm1hdDppKCJ4IikseWhvdmVyZm9ybWF0OmkoInkiKSx0ZXh0OnUoe30sbi50ZXh0LHt9KSxob3ZlcnRleHQ6dSh7fSxuLmhvdmVydGV4dCx7fSksb3JpZW50YXRpb246bi5vcmllbnRhdGlvbixoaXN0ZnVuYzp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiY291bnQiLCJzdW0iLCJhdmciLCJtaW4iLCJtYXgiXSxkZmx0OiJjb3VudCIsZWRpdFR5cGU6ImNhbGMifSxoaXN0bm9ybTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiIiwicGVyY2VudCIsInByb2JhYmlsaXR5IiwiZGVuc2l0eSIsInByb2JhYmlsaXR5IGRlbnNpdHkiXSxkZmx0OiIiLGVkaXRUeXBlOiJjYWxjIn0sY3VtdWxhdGl2ZTp7ZW5hYmxlZDp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMSxlZGl0VHlwZToiY2FsYyJ9LGRpcmVjdGlvbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiaW5jcmVhc2luZyIsImRlY3JlYXNpbmciXSxkZmx0OiJpbmNyZWFzaW5nIixlZGl0VHlwZToiY2FsYyJ9LGN1cnJlbnRiaW46e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImluY2x1ZGUiLCJleGNsdWRlIiwiaGFsZiJdLGRmbHQ6ImluY2x1ZGUiLGVkaXRUeXBlOiJjYWxjIn0sZWRpdFR5cGU6ImNhbGMifSxuYmluc3g6e3ZhbFR5cGU6ImludGVnZXIiLG1pbjowLGRmbHQ6MCxlZGl0VHlwZToiY2FsYyJ9LHhiaW5zOmwoIngiLCEwKSxuYmluc3k6e3ZhbFR5cGU6ImludGVnZXIiLG1pbjowLGRmbHQ6MCxlZGl0VHlwZToiY2FsYyJ9LHliaW5zOmwoInkiLCEwKSxhdXRvYmlueDp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDpudWxsLGVkaXRUeXBlOiJjYWxjIn0sYXV0b2Jpbnk6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6bnVsbCxlZGl0VHlwZToiY2FsYyJ9LGJpbmdyb3VwOnt2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6ImNhbGMifSxob3ZlcnRlbXBsYXRlOmEoe30se2tleXM6Yy5ldmVudERhdGFLZXlzfSksdGV4dHRlbXBsYXRlOm8oe2FycmF5T2s6ITEsZWRpdFR5cGU6InBsb3QifSx7a2V5czpbImxhYmVsIiwidmFsdWUiXX0pLHRleHRwb3NpdGlvbjp1KHt9LG4udGV4dHBvc2l0aW9uLHthcnJheU9rOiExfSksdGV4dGZvbnQ6cyh7YXJyYXlPazohMSxlZGl0VHlwZToicGxvdCIsY29sb3JFZGl0VHlwZToic3R5bGUifSksb3V0c2lkZXRleHRmb250OnMoe2FycmF5T2s6ITEsZWRpdFR5cGU6InBsb3QiLGNvbG9yRWRpdFR5cGU6InN0eWxlIn0pLGluc2lkZXRleHRmb250OnMoe2FycmF5T2s6ITEsZWRpdFR5cGU6InBsb3QiLGNvbG9yRWRpdFR5cGU6InN0eWxlIn0pLGluc2lkZXRleHRhbmNob3I6bi5pbnNpZGV0ZXh0YW5jaG9yLHRleHRhbmdsZTpuLnRleHRhbmdsZSxjbGlwb25heGlzOm4uY2xpcG9uYXhpcyxjb25zdHJhaW50ZXh0Om4uY29uc3RyYWludGV4dCxtYXJrZXI6bi5tYXJrZXIsb2Zmc2V0Z3JvdXA6bi5vZmZzZXRncm91cCxhbGlnbm1lbnRncm91cDpuLmFsaWdubWVudGdyb3VwLHNlbGVjdGVkOm4uc2VsZWN0ZWQsdW5zZWxlY3RlZDpuLnVuc2VsZWN0ZWQsX2RlcHJlY2F0ZWQ6e2JhcmRpcjpuLl9kZXByZWNhdGVkLmJhcmRpcn19fSx7Ii4uLy4uL2xpYi9leHRlbmQiOjUwNSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfZm9ybWF0X2F0dHJpYnV0ZXMiOjU2OSwiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIjo1OTQsIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjY0MiwiLi4vYmFyL2F0dHJpYnV0ZXMiOjY1NywiLi9iaW5fYXR0cmlidXRlcyI6ODIzLCIuL2NvbnN0YW50cyI6ODI3fV0sODIyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10Lmxlbmd0aCxuPTAsaT0wO2k8cjtpKyspZVtpXT8odFtpXS89ZVtpXSxuKz10W2ldKTp0W2ldPW51bGw7cmV0dXJuIG59fSx7fV0sODIzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybntzdGFydDp7dmFsVHlwZToiYW55IixlZGl0VHlwZToiY2FsYyJ9LGVuZDp7dmFsVHlwZToiYW55IixlZGl0VHlwZToiY2FsYyJ9LHNpemU6e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6ImNhbGMifSxlZGl0VHlwZToiY2FsYyJ9fX0se31dLDgyNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpO2UuZXhwb3J0cz17Y291bnQ6ZnVuY3Rpb24odCxlLHIpe3JldHVybiByW3RdKyssMX0sc3VtOmZ1bmN0aW9uKHQsZSxyLGkpe3ZhciBhPWlbZV07cmV0dXJuIG4oYSk/KGE9TnVtYmVyKGEpLHJbdF0rPWEsYSk6MH0sYXZnOmZ1bmN0aW9uKHQsZSxyLGksYSl7dmFyIG89aVtlXTtyZXR1cm4gbihvKSYmKG89TnVtYmVyKG8pLHJbdF0rPW8sYVt0XSsrKSwwfSxtaW46ZnVuY3Rpb24odCxlLHIsaSl7dmFyIGE9aVtlXTtpZihuKGEpKXtpZihhPU51bWJlcihhKSwhbihyW3RdKSlyZXR1cm4gclt0XT1hLGE7aWYoclt0XT5hKXt2YXIgbz1hLXJbdF07cmV0dXJuIHJbdF09YSxvfX1yZXR1cm4gMH0sbWF4OmZ1bmN0aW9uKHQsZSxyLGkpe3ZhciBhPWlbZV07aWYobihhKSl7aWYoYT1OdW1iZXIoYSksIW4oclt0XSkpcmV0dXJuIHJbdF09YSxhO2lmKHJbdF08YSl7dmFyIG89YS1yW3RdO3JldHVybiByW3RdPWEsb319cmV0dXJuIDB9fX0seyJmYXN0LWlzbnVtZXJpYyI6MTkwfV0sODI1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiKSxpPW4uT05FQVZHWUVBUixhPW4uT05FQVZHTU9OVEgsbz1uLk9ORURBWSxzPW4uT05FSE9VUixsPW4uT05FTUlOLGM9bi5PTkVTRUMsdT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLnRpY2tJbmNyZW1lbnQ7ZnVuY3Rpb24gZih0LGUscixuKXtpZih0KmU8PTApcmV0dXJuIDEvMDtmb3IodmFyIGk9TWF0aC5hYnMoZS10KSxhPSJkYXRlIj09PXIudHlwZSxvPWgoaSxhKSxzPTA7czwxMDtzKyspe3ZhciBsPWgoODAqbyxhKTtpZihvPT09bClicmVhaztpZighcChsLHQsZSxhLHIsbikpYnJlYWs7bz1sfXJldHVybiBvfWZ1bmN0aW9uIGgodCxlKXtyZXR1cm4gZSYmdD5jP3Q+bz90PjEuMSppP2k6dD4xLjEqYT9hOm86dD5zP3M6dD5sP2w6YzpNYXRoLnBvdygxMCxNYXRoLmZsb29yKE1hdGgubG9nKHQpL01hdGguTE4xMCkpfWZ1bmN0aW9uIHAodCxlLHIsbixhLHMpe2lmKG4mJnQ+byl7dmFyIGw9ZChlLGEscyksYz1kKHIsYSxzKSx1PXQ9PT1pPzA6MTtyZXR1cm4gbFt1XSE9PWNbdV19cmV0dXJuIE1hdGguZmxvb3Ioci90KS1NYXRoLmZsb29yKGUvdCk+LjF9ZnVuY3Rpb24gZCh0LGUscil7dmFyIG49ZS5jMmQodCxpLHIpLnNwbGl0KCItIik7cmV0dXJuIiI9PT1uWzBdJiYobi51bnNoaWZ0KCksblswXT0iLSIrblswXSksbn1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbixhKXt2YXIgcyxsLGM9LTEuMSplLGg9LS4xKmUscD10LWgsZD1yWzBdLG09clsxXSxnPU1hdGgubWluKGYoZCtoLGQrcCxuLGEpLGYobStoLG0rcCxuLGEpKSx2PU1hdGgubWluKGYoZCtjLGQraCxuLGEpLGYobStjLG0raCxuLGEpKTtpZihnPnYmJnY8TWF0aC5hYnMobS1kKS80ZTM/KHM9ZyxsPSExKToocz1NYXRoLm1pbihnLHYpLGw9ITApLCJkYXRlIj09PW4udHlwZSYmcz5vKXt2YXIgeT1zPT09aT8xOjYseD1zPT09aT8iTTEyIjoiTTEiO3JldHVybiBmdW5jdGlvbihlLHIpe3ZhciBvPW4uYzJkKGUsaSxhKSxzPW8uaW5kZXhPZigiLSIseSk7cz4wJiYobz1vLnN1YnN0cigwLHMpKTt2YXIgYz1uLmQyYyhvLDAsYSk7aWYoYzxlKXt2YXIgZj11KGMseCwhMSxhKTsoYytmKS8yPGUrdCYmKGM9Zil9cmV0dXJuIHImJmw/dShjLHgsITAsYSk6Y319cmV0dXJuIGZ1bmN0aW9uKGUscil7dmFyIG49cypNYXRoLnJvdW5kKGUvcyk7cmV0dXJuIG4rcy8xMDxlJiZuKy45KnM8ZSt0JiYobis9cyksciYmbCYmKG4tPXMpLG59fX0seyIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo0OTEsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo1NjZ9XSw4MjY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxpPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vLi4vcmVnaXN0cnkiKSxvPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIikscz10KCIuLi9iYXIvYXJyYXlzX3RvX2NhbGNkYXRhIiksbD10KCIuL2Jpbl9mdW5jdGlvbnMiKSxjPXQoIi4vbm9ybV9mdW5jdGlvbnMiKSx1PXQoIi4vYXZlcmFnZSIpLGY9dCgiLi9iaW5fbGFiZWxfdmFscyIpO2Z1bmN0aW9uIGgodCxlLHIscyxsKXt2YXIgYyx1LGYscCxkLG0sZyx2PXMrImJpbnMiLHk9dC5fZnVsbExheW91dCx4PWVbIl8iK3MrImJpbmdyb3VwIl0sYj15Ll9oaXN0b2dyYW1CaW5PcHRzW3hdLF89Im92ZXJsYXkiPT09eS5iYXJtb2RlLHc9ZnVuY3Rpb24odCl7cmV0dXJuIHIucjJjKHQsMCxwKX0sVD1mdW5jdGlvbih0KXtyZXR1cm4gci5jMnIodCwwLHApfSxrPSJkYXRlIj09PXIudHlwZT9mdW5jdGlvbih0KXtyZXR1cm4gdHx8MD09PXQ/aS5jbGVhbkRhdGUodCxudWxsLHApOm51bGx9OmZ1bmN0aW9uKHQpe3JldHVybiBuKHQpP051bWJlcih0KTpudWxsfTtmdW5jdGlvbiBBKHQsZSxyKXtlW3QrIkZvdW5kIl0/KGVbdF09ayhlW3RdKSxudWxsPT09ZVt0XSYmKGVbdF09clt0XSkpOihtW3RdPWVbdF09clt0XSxpLm5lc3RlZFByb3BlcnR5KHVbMF0sdisiLiIrdCkuc2V0KHJbdF0pKX1pZihlWyJfIitzKyJhdXRvQmluRmluaXNoZWQiXSlkZWxldGUgZVsiXyIrcysiYXV0b0JpbkZpbmlzaGVkIl07ZWxzZXt1PWIudHJhY2VzO3ZhciBNPVtdLFM9ITAsRT0hMSxMPSExO2ZvcihjPTA7Yzx1Lmxlbmd0aDtjKyspaWYoKGY9dVtjXSkudmlzaWJsZSl7dmFyIEM9Yi5kaXJzW2NdO2Q9ZlsiXyIrQysicG9zMCJdPXIubWFrZUNhbGNkYXRhKGYsQyksTT1pLmNvbmNhdChNLGQpLGRlbGV0ZSBmWyJfIitzKyJhdXRvQmluRmluaXNoZWQiXSwhMD09PWUudmlzaWJsZSYmKFM/Uz0hMTooZGVsZXRlIGYuX2F1dG9CaW4sZlsiXyIrcysiYXV0b0JpbkZpbmlzaGVkIl09MSksYS50cmFjZUlzKGYsIjJkTWFwIikmJihFPSEwKSwiaGlzdG9ncmFtMmRjb250b3VyIj09PWYudHlwZSYmKEw9ITApKX1wPXVbMF1bcysiY2FsZW5kYXIiXTt2YXIgUD1vLmF1dG9CaW4oTSxyLGIubmJpbnMsRSxwLGIuc2l6ZUZvdW5kJiZiLnNpemUpLEk9dVswXS5fYXV0b0Jpbj17fTtpZihtPUlbYi5kaXJzWzBdXT17fSxMJiYoYi5zaXplfHwoUC5zdGFydD1UKG8udGlja0luY3JlbWVudCh3KFAuc3RhcnQpLFAuc2l6ZSwhMCxwKSkpLHZvaWQgMD09PWIuZW5kJiYoUC5lbmQ9VChvLnRpY2tJbmNyZW1lbnQodyhQLmVuZCksUC5zaXplLCExLHApKSkpLF8mJiFhLnRyYWNlSXMoZSwiMmRNYXAiKSYmMD09PVAuX2RhdGFTcGFuJiYiY2F0ZWdvcnkiIT09ci50eXBlJiYibXVsdGljYXRlZ29yeSIhPT1yLnR5cGUpe2lmKGwpcmV0dXJuW1AsZCwhMF07UD1mdW5jdGlvbih0LGUscixuLGEpe3ZhciBvLHMsbCxjPXQuX2Z1bGxMYXlvdXQsdT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1lLnhheGlzLG49ZS55YXhpcyxpPWUub3JpZW50YXRpb24sYT1bXSxvPXQuX2Z1bGxEYXRhLHM9MDtzPG8ubGVuZ3RoO3MrKyl7dmFyIGw9b1tzXTsiaGlzdG9ncmFtIj09PWwudHlwZSYmITA9PT1sLnZpc2libGUmJmwub3JpZW50YXRpb249PT1pJiZsLnhheGlzPT09ciYmbC55YXhpcz09PW4mJmEucHVzaChsKX1yZXR1cm4gYX0odCxlKSxmPSExLHA9MS8wLGQ9W2VdO2ZvcihvPTA7bzx1Lmxlbmd0aDtvKyspaWYoKHM9dVtvXSk9PT1lKWY9ITA7ZWxzZSBpZihmKXt2YXIgbT1oKHQscyxyLG4sITApLGc9bVswXSx2PW1bMl07c1siXyIrbisiYXV0b0JpbkZpbmlzaGVkIl09MSxzWyJfIituKyJwb3MwIl09bVsxXSx2P2QucHVzaChzKTpwPU1hdGgubWluKHAsZy5zaXplKX1lbHNlIGw9Yy5faGlzdG9ncmFtQmluT3B0c1tzWyJfIituKyJiaW5ncm91cCJdXSxwPU1hdGgubWluKHAsbC5zaXplfHxzW2FdLnNpemUpO3ZhciB5PW5ldyBBcnJheShkLmxlbmd0aCk7Zm9yKG89MDtvPGQubGVuZ3RoO28rKylmb3IodmFyIHg9ZFtvXVsiXyIrbisicG9zMCJdLGI9MDtiPHgubGVuZ3RoO2IrKylpZih2b2lkIDAhPT14W2JdKXt5W29dPXhbYl07YnJlYWt9aXNGaW5pdGUocCl8fChwPWkuZGlzdGluY3RWYWxzKHkpLm1pbkRpZmYpO2ZvcihvPTA7bzxkLmxlbmd0aDtvKyspe3ZhciBfPShzPWRbb10pW24rImNhbGVuZGFyIl0sdz17c3RhcnQ6ci5jMnIoeVtvXS1wLzIsMCxfKSxlbmQ6ci5jMnIoeVtvXStwLzIsMCxfKSxzaXplOnB9O3MuX2lucHV0W2FdPXNbYV09dywobD1jLl9oaXN0b2dyYW1CaW5PcHRzW3NbIl8iK24rImJpbmdyb3VwIl1dKSYmaS5leHRlbmRGbGF0KGwsdyl9cmV0dXJuIGVbYV19KHQsZSxyLHMsdil9KGc9Zi5jdW11bGF0aXZlfHx7fSkuZW5hYmxlZCYmImluY2x1ZGUiIT09Zy5jdXJyZW50YmluJiYoImRlY3JlYXNpbmciPT09Zy5kaXJlY3Rpb24/UC5zdGFydD1UKG8udGlja0luY3JlbWVudCh3KFAuc3RhcnQpLFAuc2l6ZSwhMCxwKSk6UC5lbmQ9VChvLnRpY2tJbmNyZW1lbnQodyhQLmVuZCksUC5zaXplLCExLHApKSksYi5zaXplPVAuc2l6ZSxiLnNpemVGb3VuZHx8KG0uc2l6ZT1QLnNpemUsaS5uZXN0ZWRQcm9wZXJ0eSh1WzBdLHYrIi5zaXplIikuc2V0KFAuc2l6ZSkpLEEoInN0YXJ0IixiLFApLEEoImVuZCIsYixQKX1kPWVbIl8iK3MrInBvczAiXSxkZWxldGUgZVsiXyIrcysicG9zMCJdO3ZhciBPPWUuX2lucHV0W3ZdfHx7fSx6PWkuZXh0ZW5kRmxhdCh7fSxiKSxEPWIuc3RhcnQsUj1yLnIybChPLnN0YXJ0KSxGPXZvaWQgMCE9PVI7aWYoKGIuc3RhcnRGb3VuZHx8RikmJlIhPT1yLnIybChEKSl7dmFyIEI9Rj9SOmkuYWdnTnVtcyhNYXRoLm1pbixudWxsLGQpLE49e3R5cGU6ImNhdGVnb3J5Ij09PXIudHlwZXx8Im11bHRpY2F0ZWdvcnkiPT09ci50eXBlPyJsaW5lYXIiOnIudHlwZSxyMmw6ci5yMmwsZHRpY2s6Yi5zaXplLHRpY2swOkQsY2FsZW5kYXI6cCxyYW5nZTpbQixvLnRpY2tJbmNyZW1lbnQoQixiLnNpemUsITEscCldLm1hcChyLmwycil9LGo9by50aWNrRmlyc3QoTik7aj5yLnIybChCKSYmKGo9by50aWNrSW5jcmVtZW50KGosYi5zaXplLCEwLHApKSx6LnN0YXJ0PXIubDJyKGopLEZ8fGkubmVzdGVkUHJvcGVydHkoZSx2KyIuc3RhcnQiKS5zZXQoei5zdGFydCl9dmFyIFU9Yi5lbmQsVj1yLnIybChPLmVuZCksSD12b2lkIDAhPT1WO2lmKChiLmVuZEZvdW5kfHxIKSYmViE9PXIucjJsKFUpKXt2YXIgcT1IP1Y6aS5hZ2dOdW1zKE1hdGgubWF4LG51bGwsZCk7ei5lbmQ9ci5sMnIocSksSHx8aS5uZXN0ZWRQcm9wZXJ0eShlLHYrIi5zdGFydCIpLnNldCh6LmVuZCl9dmFyIEc9ImF1dG9iaW4iK3M7cmV0dXJuITE9PT1lLl9pbnB1dFtHXSYmKGUuX2lucHV0W3ZdPWkuZXh0ZW5kRmxhdCh7fSxlW3ZdfHx7fSksZGVsZXRlIGUuX2lucHV0W0ddLGRlbGV0ZSBlW0ddKSxbeixkXX1lLmV4cG9ydHM9e2NhbGM6ZnVuY3Rpb24odCxlKXt2YXIgcixhLHAsZCxtPVtdLGc9W10sdj0iaCI9PT1lLm9yaWVudGF0aW9uLHk9by5nZXRGcm9tSWQodCx2P2UueWF4aXM6ZS54YXhpcykseD12PyJ5IjoieCIsYj17eDoieSIseToieCJ9W3hdLF89ZVt4KyJjYWxlbmRhciJdLHc9ZS5jdW11bGF0aXZlLFQ9aCh0LGUseSx4KSxrPVRbMF0sQT1UWzFdLE09InN0cmluZyI9PXR5cGVvZiBrLnNpemUsUz1bXSxFPU0/UzprLEw9W10sQz1bXSxQPVtdLEk9MCxPPWUuaGlzdG5vcm0sej1lLmhpc3RmdW5jLEQ9LTEhPT1PLmluZGV4T2YoImRlbnNpdHkiKTt3LmVuYWJsZWQmJkQmJihPPU8ucmVwbGFjZSgvID9kZW5zaXR5JC8sIiIpLEQ9ITEpO3ZhciBSLEY9Im1heCI9PT16fHwibWluIj09PXo/bnVsbDowLEI9bC5jb3VudCxOPWNbT10saj0hMSxVPWZ1bmN0aW9uKHQpe3JldHVybiB5LnIyYyh0LDAsXyl9O2ZvcihpLmlzQXJyYXlPclR5cGVkQXJyYXkoZVtiXSkmJiJjb3VudCIhPT16JiYoUj1lW2JdLGo9ImF2ZyI9PT16LEI9bFt6XSkscj1VKGsuc3RhcnQpLHA9VShrLmVuZCkrKHItby50aWNrSW5jcmVtZW50KHIsay5zaXplLCExLF8pKS8xZTY7cjxwJiZtLmxlbmd0aDwxZTYmJihhPW8udGlja0luY3JlbWVudChyLGsuc2l6ZSwhMSxfKSxtLnB1c2goKHIrYSkvMiksZy5wdXNoKEYpLFAucHVzaChbXSksUy5wdXNoKHIpLEQmJkwucHVzaCgxLyhhLXIpKSxqJiZDLnB1c2goMCksIShhPD1yKSk7KXI9YTtTLnB1c2gociksTXx8ImRhdGUiIT09eS50eXBlfHwoRT17c3RhcnQ6VShFLnN0YXJ0KSxlbmQ6VShFLmVuZCksc2l6ZTpFLnNpemV9KSx0Ll9mdWxsTGF5b3V0Ll9yb3VuZEZuT3B0c3x8KHQuX2Z1bGxMYXlvdXQuX3JvdW5kRm5PcHRzPXt9KTt2YXIgVj1lWyJfIit4KyJiaW5ncm91cCJdLEg9e2xlZnRHYXA6MS8wLHJpZ2h0R2FwOjEvMH07ViYmKHQuX2Z1bGxMYXlvdXQuX3JvdW5kRm5PcHRzW1ZdfHwodC5fZnVsbExheW91dC5fcm91bmRGbk9wdHNbVl09SCksSD10Ll9mdWxsTGF5b3V0Ll9yb3VuZEZuT3B0c1tWXSk7dmFyIHEsRz1nLmxlbmd0aCxZPSEwLFc9SC5sZWZ0R2FwLFg9SC5yaWdodEdhcCxaPXt9O2ZvcihyPTA7cjxBLmxlbmd0aDtyKyspe3ZhciBKPUFbcl07KGQ9aS5maW5kQmluKEosRSkpPj0wJiZkPEcmJihJKz1CKGQscixnLFIsQyksWSYmUFtkXS5sZW5ndGgmJkohPT1BW1BbZF1bMF1dJiYoWT0hMSksUFtkXS5wdXNoKHIpLFpbcl09ZCxXPU1hdGgubWluKFcsSi1TW2RdKSxYPU1hdGgubWluKFgsU1tkKzFdLUopKX1ILmxlZnRHYXA9VyxILnJpZ2h0R2FwPVgsWXx8KHE9ZnVuY3Rpb24oZSxyKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj10Ll9mdWxsTGF5b3V0Ll9yb3VuZEZuT3B0c1tWXTtyZXR1cm4gZihuLmxlZnRHYXAsbi5yaWdodEdhcCxTLHksXykoZSxyKX19KSxqJiYoST11KGcsQykpLE4mJk4oZyxJLEwpLHcuZW5hYmxlZCYmZnVuY3Rpb24odCxlLHIpe3ZhciBuLGksYTtmdW5jdGlvbiBvKGUpe2E9dFtlXSx0W2VdLz0yfWZ1bmN0aW9uIHMoZSl7aT10W2VdLHRbZV09YStpLzIsYSs9aX1pZigiaGFsZiI9PT1yKWlmKCJpbmNyZWFzaW5nIj09PWUpZm9yKG8oMCksbj0xO248dC5sZW5ndGg7bisrKXMobik7ZWxzZSBmb3Iobyh0Lmxlbmd0aC0xKSxuPXQubGVuZ3RoLTI7bj49MDtuLS0pcyhuKTtlbHNlIGlmKCJpbmNyZWFzaW5nIj09PWUpe2ZvcihuPTE7bjx0Lmxlbmd0aDtuKyspdFtuXSs9dFtuLTFdOyJleGNsdWRlIj09PXImJih0LnVuc2hpZnQoMCksdC5wb3AoKSl9ZWxzZXtmb3Iobj10Lmxlbmd0aC0yO24+PTA7bi0tKXRbbl0rPXRbbisxXTsiZXhjbHVkZSI9PT1yJiYodC5wdXNoKDApLHQuc2hpZnQoKSl9fShnLHcuZGlyZWN0aW9uLHcuY3VycmVudGJpbik7dmFyIEs9TWF0aC5taW4obS5sZW5ndGgsZy5sZW5ndGgpLFE9W10sJD0wLHR0PUstMTtmb3Iocj0wO3I8SztyKyspaWYoZ1tyXSl7JD1yO2JyZWFrfWZvcihyPUstMTtyPj0kO3ItLSlpZihnW3JdKXt0dD1yO2JyZWFrfWZvcihyPSQ7cjw9dHQ7cisrKWlmKG4obVtyXSkmJm4oZ1tyXSkpe3ZhciBldD17cDptW3JdLHM6Z1tyXSxiOjB9O3cuZW5hYmxlZHx8KGV0LnB0cz1QW3JdLFk/ZXQucGgwPWV0LnBoMT1QW3JdLmxlbmd0aD9BW1Bbcl1bMF1dOm1bcl06KGUuX2NvbXB1dGVQaD0hMCxldC5waDA9cShTW3JdKSxldC5waDE9cShTW3IrMV0sITApKSksUS5wdXNoKGV0KX1yZXR1cm4gMT09PVEubGVuZ3RoJiYoUVswXS53aWR0aDE9by50aWNrSW5jcmVtZW50KFFbMF0ucCxrLnNpemUsITEsXyktUVswXS5wKSxzKFEsZSksaS5pc0FycmF5T3JUeXBlZEFycmF5KGUuc2VsZWN0ZWRwb2ludHMpJiZpLnRhZ1NlbGVjdGVkKFEsZSxaKSxRfSxjYWxjQWxsQXV0b0JpbnM6aH19LHsiLi4vLi4vbGliIjo1MTUsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo1NjYsIi4uLy4uL3JlZ2lzdHJ5Ijo2NDcsIi4uL2Jhci9hcnJheXNfdG9fY2FsY2RhdGEiOjY1NiwiLi9hdmVyYWdlIjo4MjIsIi4vYmluX2Z1bmN0aW9ucyI6ODI0LCIuL2Jpbl9sYWJlbF92YWxzIjo4MjUsIi4vbm9ybV9mdW5jdGlvbnMiOjgzMywiZmFzdC1pc251bWVyaWMiOjE5MH1dLDgyNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2V2ZW50RGF0YUtleXM6WyJiaW5OdW1iZXIiXX19LHt9XSw4Mjg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19pZHMiKSxhPXQoIi4uLy4uL3JlZ2lzdHJ5IikudHJhY2VJcyxvPXQoIi4uL2Jhci9kZWZhdWx0cyIpLmhhbmRsZUdyb3VwaW5nRGVmYXVsdHMscz1uLm5lc3RlZFByb3BlcnR5LGw9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2NvbnN0cmFpbnRzIikuZ2V0QXhpc0dyb3VwLGM9W3thU3RyOnt4OiJ4Ymlucy5zdGFydCIseToieWJpbnMuc3RhcnQifSxuYW1lOiJzdGFydCJ9LHthU3RyOnt4OiJ4Ymlucy5lbmQiLHk6InliaW5zLmVuZCJ9LG5hbWU6ImVuZCJ9LHthU3RyOnt4OiJ4Ymlucy5zaXplIix5OiJ5Ymlucy5zaXplIn0sbmFtZToic2l6ZSJ9LHthU3RyOnt4OiJuYmluc3giLHk6Im5iaW5zeSJ9LG5hbWU6Im5iaW5zIn1dLHU9WyJ4IiwieSJdO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLGYsaCxwLGQsbSxnLHY9ZS5faGlzdG9ncmFtQmluT3B0cz17fSx5PVtdLHg9e30sYj1bXTtmdW5jdGlvbiBfKHQsZSl7cmV0dXJuIG4uY29lcmNlKHIuX2lucHV0LHIsci5fbW9kdWxlLmF0dHJpYnV0ZXMsdCxlKX1mdW5jdGlvbiB3KHQpe3JldHVybiJ2Ij09PXQub3JpZW50YXRpb24/IngiOiJ5In1mdW5jdGlvbiBUKHQscixhKXt2YXIgbz10LnVpZCsiX18iK2E7cnx8KHI9byk7dmFyIHM9ZnVuY3Rpb24odCxyKXtyZXR1cm4gaS5nZXRGcm9tVHJhY2Uoe19mdWxsTGF5b3V0OmV9LHQscikudHlwZX0odCxhKSxsPXRbYSsiY2FsZW5kYXIiXXx8IiIsYz12W3JdLHU9ITA7YyYmKHM9PT1jLmF4VHlwZSYmbD09PWMuY2FsZW5kYXI/KHU9ITEsYy50cmFjZXMucHVzaCh0KSxjLmRpcnMucHVzaChhKSk6KHI9byxzIT09Yy5heFR5cGUmJm4ud2FybihbIkF0dGVtcHRlZCB0byBncm91cCB0aGUgYmlucyBvZiB0cmFjZSIsdC5pbmRleCwic2V0IG9uIGEiLCJ0eXBlOiIrcywiYXhpcyIsIndpdGggYmlucyBvbiIsInR5cGU6IitjLmF4VHlwZSwiYXhpcy4iXS5qb2luKCIgIikpLGwhPT1jLmNhbGVuZGFyJiZuLndhcm4oWyJBdHRlbXB0ZWQgdG8gZ3JvdXAgdGhlIGJpbnMgb2YgdHJhY2UiLHQuaW5kZXgsInNldCB3aXRoIGEiLGwsImNhbGVuZGFyIiwid2l0aCBiaW5zIixjLmNhbGVuZGFyPyJvbiBhICIrYy5jYWxlbmRhcisiIGNhbGVuZGFyIjoidy9vIGEgc2V0IGNhbGVuZGFyIl0uam9pbigiICIpKSkpLHUmJih2W3JdPXt0cmFjZXM6W3RdLGRpcnM6W2FdLGF4VHlwZTpzLGNhbGVuZGFyOnRbYSsiY2FsZW5kYXIiXXx8IiJ9KSx0WyJfIithKyJiaW5ncm91cCJdPXJ9Zm9yKGQ9MDtkPHQubGVuZ3RoO2QrKylyPXRbZF0sYShyLCJoaXN0b2dyYW0iKSYmKHkucHVzaChyKSxkZWxldGUgci5feGF1dG9CaW5GaW5pc2hlZCxkZWxldGUgci5feWF1dG9CaW5GaW5pc2hlZCxhKHIsIjJkTWFwIil8fG8oci5faW5wdXQscixlLF8pKTt2YXIgaz1lLl9hbGlnbm1lbnRPcHRzfHx7fTtmb3IoZD0wO2Q8eS5sZW5ndGg7ZCsrKXtpZihyPXlbZF0saD0iIiwhYShyLCIyZE1hcCIpKXtpZihwPXcociksImdyb3VwIj09PWUuYmFybW9kZSYmci5hbGlnbm1lbnRncm91cCl7dmFyIEE9cltwKyJheGlzIl0sTT1sKGUsQSkrci5vcmllbnRhdGlvbjsoa1tNXXx8e30pW3IuYWxpZ25tZW50Z3JvdXBdJiYoaD1NKX1ofHwib3ZlcmxheSI9PT1lLmJhcm1vZGV8fChoPWwoZSxyLnhheGlzKStsKGUsci55YXhpcykrdyhyKSl9aD8oeFtoXXx8KHhbaF09W10pLHhbaF0ucHVzaChyKSk6Yi5wdXNoKHIpfWZvcihoIGluIHgpaWYoMSE9PShmPXhbaF0pLmxlbmd0aCl7dmFyIFM9ITE7Zm9yKGYubGVuZ3RoJiYocj1mWzBdLFM9XygiYmluZ3JvdXAiKSksaD1TfHxoLGQ9MDtkPGYubGVuZ3RoO2QrKyl7dmFyIEU9KHI9ZltkXSkuX2lucHV0LmJpbmdyb3VwO0UmJkUhPT1oJiZuLndhcm4oWyJUcmFjZSIsci5pbmRleCwibXVzdCBtYXRjaCIsIndpdGhpbiBiaW5ncm91cCIsaCsiLiIsIklnbm9yaW5nIGl0cyBiaW5ncm91cDoiLEUsInNldHRpbmcuIl0uam9pbigiICIpKSxyLmJpbmdyb3VwPWgsVChyLGgsdyhyKSl9fWVsc2UgYi5wdXNoKGZbMF0pO2ZvcihkPTA7ZDxiLmxlbmd0aDtkKyspe3I9YltkXTt2YXIgTD1fKCJiaW5ncm91cCIpO2lmKGEociwiMmRNYXAiKSlmb3IoZz0wO2c8MjtnKyspe3ZhciBDPV8oKHA9dVtnXSkrImJpbmdyb3VwIixMP0wrIl9fIitwOm51bGwpO1QocixDLHApfWVsc2UgVChyLEwsdyhyKSl9Zm9yKGggaW4gdil7dmFyIFA9dltoXTtmb3IoZj1QLnRyYWNlcyxtPTA7bTxjLmxlbmd0aDttKyspe3ZhciBJLE8sej1jW21dLEQ9ei5uYW1lO2lmKCJuYmlucyIhPT1EfHwhUC5zaXplRm91bmQpe2ZvcihkPTA7ZDxmLmxlbmd0aDtkKyspe2lmKHI9ZltkXSxwPVAuZGlyc1tkXSxJPXouYVN0cltwXSx2b2lkIDAhPT1zKHIuX2lucHV0LEkpLmdldCgpKXtQW0RdPV8oSSksUFtEKyJGb3VuZCJdPSEwO2JyZWFrfShPPShyLl9hdXRvQmlufHx7fSlbcF18fHt9KVtEXSYmcyhyLEkpLnNldChPW0RdKX1pZigic3RhcnQiPT09RHx8ImVuZCI9PT1EKWZvcig7ZDxmLmxlbmd0aDtkKyspKHI9ZltkXSlbIl8iK3ArImJpbmdyb3VwIl0mJl8oSSwoTz0oci5fYXV0b0Jpbnx8e30pW3BdfHx7fSlbRF0pOyJuYmlucyIhPT1EfHxQLnNpemVGb3VuZHx8UC5uYmluc0ZvdW5kfHwocj1mWzBdLFBbRF09XyhJKSl9fX19fSx7Ii4uLy4uL2xpYiI6NTE1LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19pZHMiOjU3MCwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2NvbnN0cmFpbnRzIjo1NzQsIi4uLy4uL3JlZ2lzdHJ5Ijo2NDcsIi4uL2Jhci9kZWZhdWx0cyI6NjYxfV0sODI5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3JlZ2lzdHJ5IiksaT10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxvPXQoIi4uL2Jhci9kZWZhdWx0cyIpLmhhbmRsZVRleHQscz10KCIuLi9iYXIvc3R5bGVfZGVmYXVsdHMiKSxsPXQoIi4vYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixjKXtmdW5jdGlvbiB1KHIsbil7cmV0dXJuIGkuY29lcmNlKHQsZSxsLHIsbil9dmFyIGY9dSgieCIpLGg9dSgieSIpO3UoImN1bXVsYXRpdmUuZW5hYmxlZCIpJiYodSgiY3VtdWxhdGl2ZS5kaXJlY3Rpb24iKSx1KCJjdW11bGF0aXZlLmN1cnJlbnRiaW4iKSksdSgidGV4dCIpO3ZhciBwPXUoInRleHRwb3NpdGlvbiIpO28odCxlLGMsdSxwLHttb2R1bGVIYXNTZWxlY3RlZDohMCxtb2R1bGVIYXNVbnNlbGVjdGVkOiEwLG1vZHVsZUhhc0NvbnN0cmFpbjohMCxtb2R1bGVIYXNDbGlwb25heGlzOiEwLG1vZHVsZUhhc1RleHRhbmdsZTohMCxtb2R1bGVIYXNJbnNpZGVhbmNob3I6ITB9KSx1KCJob3ZlcnRleHQiKSx1KCJob3ZlcnRlbXBsYXRlIiksdSgieGhvdmVyZm9ybWF0IiksdSgieWhvdmVyZm9ybWF0Iik7dmFyIGQ9dSgib3JpZW50YXRpb24iLGgmJiFmPyJoIjoidiIpLG09InYiPT09ZD8ieCI6InkiLGc9InYiPT09ZD8ieSI6IngiLHY9ZiYmaD9NYXRoLm1pbihpLm1pblJvd0xlbmd0aChmKSYmaS5taW5Sb3dMZW5ndGgoaCkpOmkubWluUm93TGVuZ3RoKGVbbV18fFtdKTtpZih2KXtlLl9sZW5ndGg9dixuLmdldENvbXBvbmVudE1ldGhvZCgiY2FsZW5kYXJzIiwiaGFuZGxlVHJhY2VEZWZhdWx0cyIpKHQsZSxbIngiLCJ5Il0sYyksZVtnXSYmdSgiaGlzdGZ1bmMiKSx1KCJoaXN0bm9ybSIpLHUoImF1dG9iaW4iK20pLHModCxlLHUscixjKSxpLmNvZXJjZVNlbGVjdGlvbk1hcmtlck9wYWNpdHkoZSx1KTt2YXIgeT0oZS5tYXJrZXIubGluZXx8e30pLmNvbG9yLHg9bi5nZXRDb21wb25lbnRNZXRob2QoImVycm9yYmFycyIsInN1cHBseURlZmF1bHRzIik7eCh0LGUseXx8YS5kZWZhdWx0TGluZSx7YXhpczoieSJ9KSx4KHQsZSx5fHxhLmRlZmF1bHRMaW5lLHtheGlzOiJ4Iixpbmhlcml0OiJ5In0pfWVsc2UgZS52aXNpYmxlPSExfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjozNjcsIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9yZWdpc3RyeSI6NjQ3LCIuLi9iYXIvZGVmYXVsdHMiOjY2MSwiLi4vYmFyL3N0eWxlX2RlZmF1bHRzIjo2NzIsIi4vYXR0cmlidXRlcyI6ODIxfV0sODMwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuLGkpe2lmKHQueD0ieFZhbCJpbiBlP2UueFZhbDplLngsdC55PSJ5VmFsImluIGU/ZS55VmFsOmUueSwiekxhYmVsVmFsImluIGUmJih0Lno9ZS56TGFiZWxWYWwpLGUueGEmJih0LnhheGlzPWUueGEpLGUueWEmJih0LnlheGlzPWUueWEpLCEoci5jdW11bGF0aXZlfHx7fSkuZW5hYmxlZCl7dmFyIGEsbz1BcnJheS5pc0FycmF5KGkpP25bMF0ucHRzW2lbMF1dW2lbMV1dOm5baV0ucHRzO2lmKHQucG9pbnROdW1iZXJzPW8sdC5iaW5OdW1iZXI9dC5wb2ludE51bWJlcixkZWxldGUgdC5wb2ludE51bWJlcixkZWxldGUgdC5wb2ludEluZGV4LHIuX2luZGV4VG9Qb2ludHMpe2E9W107Zm9yKHZhciBzPTA7czxvLmxlbmd0aDtzKyspYT1hLmNvbmNhdChyLl9pbmRleFRvUG9pbnRzW29bc11dKX1lbHNlIGE9bzt0LnBvaW50SW5kaWNlcz1hfXJldHVybiB0fX0se31dLDgzMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9iYXIvaG92ZXIiKS5ob3ZlclBvaW50cyxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIikuaG92ZXJMYWJlbFRleHQ7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGEsbyl7dmFyIHM9bih0LGUscixhLG8pO2lmKHMpe3ZhciBsPSh0PXNbMF0pLmNkW3QuaW5kZXhdLGM9dC5jZFswXS50cmFjZTtpZighYy5jdW11bGF0aXZlLmVuYWJsZWQpe3ZhciB1PSJoIj09PWMub3JpZW50YXRpb24/InkiOiJ4Ijt0W3UrIkxhYmVsIl09aSh0W3UrImEiXSxbbC5waDAsbC5waDFdLGNbdSsiaG92ZXJmb3JtYXQiXSl9cmV0dXJuIHN9fX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NTY2LCIuLi9iYXIvaG92ZXIiOjY2NH1dLDgzMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2F0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksbGF5b3V0QXR0cmlidXRlczp0KCIuLi9iYXIvbGF5b3V0X2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksY3Jvc3NUcmFjZURlZmF1bHRzOnQoIi4vY3Jvc3NfdHJhY2VfZGVmYXVsdHMiKSxzdXBwbHlMYXlvdXREZWZhdWx0czp0KCIuLi9iYXIvbGF5b3V0X2RlZmF1bHRzIiksY2FsYzp0KCIuL2NhbGMiKS5jYWxjLGNyb3NzVHJhY2VDYWxjOnQoIi4uL2Jhci9jcm9zc190cmFjZV9jYWxjIikuY3Jvc3NUcmFjZUNhbGMscGxvdDp0KCIuLi9iYXIvcGxvdCIpLnBsb3QsbGF5ZXJOYW1lOiJiYXJsYXllciIsc3R5bGU6dCgiLi4vYmFyL3N0eWxlIikuc3R5bGUsc3R5bGVPblNlbGVjdDp0KCIuLi9iYXIvc3R5bGUiKS5zdHlsZU9uU2VsZWN0LGNvbG9yYmFyOnQoIi4uL3NjYXR0ZXIvbWFya2VyX2NvbG9yYmFyIiksaG92ZXJQb2ludHM6dCgiLi9ob3ZlciIpLHNlbGVjdFBvaW50czp0KCIuLi9iYXIvc2VsZWN0IiksZXZlbnREYXRhOnQoIi4vZXZlbnRfZGF0YSIpLG1vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJoaXN0b2dyYW0iLGJhc2VQbG90TW9kdWxlOnQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbiIpLGNhdGVnb3JpZXM6WyJiYXItbGlrZSIsImNhcnRlc2lhbiIsInN2ZyIsImJhciIsImhpc3RvZ3JhbSIsIm9yaWVudGVkIiwiZXJyb3JCYXJzT0siLCJzaG93TGVnZW5kIl0sbWV0YTp7fX19LHsiLi4vLi4vcGxvdHMvY2FydGVzaWFuIjo1NzgsIi4uL2Jhci9jcm9zc190cmFjZV9jYWxjIjo2NjAsIi4uL2Jhci9sYXlvdXRfYXR0cmlidXRlcyI6NjY2LCIuLi9iYXIvbGF5b3V0X2RlZmF1bHRzIjo2NjcsIi4uL2Jhci9wbG90Ijo2NjgsIi4uL2Jhci9zZWxlY3QiOjY2OSwiLi4vYmFyL3N0eWxlIjo2NzEsIi4uL3NjYXR0ZXIvbWFya2VyX2NvbG9yYmFyIjo5NTQsIi4vYXR0cmlidXRlcyI6ODIxLCIuL2NhbGMiOjgyNiwiLi9jcm9zc190cmFjZV9kZWZhdWx0cyI6ODI4LCIuL2RlZmF1bHRzIjo4MjksIi4vZXZlbnRfZGF0YSI6ODMwLCIuL2hvdmVyIjo4MzF9XSw4MzM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtwZXJjZW50OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQubGVuZ3RoLG49MTAwL2UsaT0wO2k8cjtpKyspdFtpXSo9bn0scHJvYmFiaWxpdHk6ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5sZW5ndGgsbj0wO248cjtuKyspdFtuXS89ZX0sZGVuc2l0eTpmdW5jdGlvbih0LGUscixuKXt2YXIgaT10Lmxlbmd0aDtuPW58fDE7Zm9yKHZhciBhPTA7YTxpO2ErKyl0W2FdKj1yW2FdKm59LCJwcm9iYWJpbGl0eSBkZW5zaXR5IjpmdW5jdGlvbih0LGUscixuKXt2YXIgaT10Lmxlbmd0aDtuJiYoZS89bik7Zm9yKHZhciBhPTA7YTxpO2ErKyl0W2FdKj1yW2FdL2V9fX0se31dLDgzNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9oaXN0b2dyYW0vYXR0cmlidXRlcyIpLGk9dCgiLi4vaGlzdG9ncmFtL2Jpbl9hdHRyaWJ1dGVzIiksYT10KCIuLi9oZWF0bWFwL2F0dHJpYnV0ZXMiKSxvPXQoIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiKSxzPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2Zvcm1hdF9hdHRyaWJ1dGVzIikuYXhpc0hvdmVyRm9ybWF0LGw9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxjPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS50ZXh0dGVtcGxhdGVBdHRycyx1PXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIiksZj10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdDtlLmV4cG9ydHM9Zih7eDpuLngseTpuLnksejp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxtYXJrZXI6e2NvbG9yOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LGVkaXRUeXBlOiJjYWxjIn0saGlzdG5vcm06bi5oaXN0bm9ybSxoaXN0ZnVuYzpuLmhpc3RmdW5jLG5iaW5zeDpuLm5iaW5zeCx4YmluczppKCJ4IiksbmJpbnN5Om4ubmJpbnN5LHliaW5zOmkoInkiKSxhdXRvYmlueDpuLmF1dG9iaW54LGF1dG9iaW55Om4uYXV0b2JpbnksYmluZ3JvdXA6Zih7fSxuLmJpbmdyb3VwLHt9KSx4YmluZ3JvdXA6Zih7fSxuLmJpbmdyb3VwLHt9KSx5YmluZ3JvdXA6Zih7fSxuLmJpbmdyb3VwLHt9KSx4Z2FwOmEueGdhcCx5Z2FwOmEueWdhcCx6c21vb3RoOmEuenNtb290aCx4aG92ZXJmb3JtYXQ6cygieCIpLHlob3ZlcmZvcm1hdDpzKCJ5IiksemhvdmVyZm9ybWF0OnMoInoiLDEpLGhvdmVydGVtcGxhdGU6bCh7fSx7a2V5czoieiJ9KSx0ZXh0dGVtcGxhdGU6Yyh7YXJyYXlPazohMSxlZGl0VHlwZToicGxvdCJ9LHtrZXlzOiJ6In0pLHRleHRmb250OmEudGV4dGZvbnQsc2hvd2xlZ2VuZDpmKHt9LG8uc2hvd2xlZ2VuZCx7ZGZsdDohMX0pfSx1KCIiLHtjTGV0dGVyOiJ6IixhdXRvQ29sb3JEZmx0OiExfSkpfSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjozNzQsIi4uLy4uL2xpYi9leHRlbmQiOjUwNSwiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyI6NTYyLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19mb3JtYXRfYXR0cmlidXRlcyI6NTY5LCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo2NDIsIi4uL2hlYXRtYXAvYXR0cmlidXRlcyI6ODAxLCIuLi9oaXN0b2dyYW0vYXR0cmlidXRlcyI6ODIxLCIuLi9oaXN0b2dyYW0vYmluX2F0dHJpYnV0ZXMiOjgyM31dLDgzNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksYT10KCIuLi9oaXN0b2dyYW0vYmluX2Z1bmN0aW9ucyIpLG89dCgiLi4vaGlzdG9ncmFtL25vcm1fZnVuY3Rpb25zIikscz10KCIuLi9oaXN0b2dyYW0vYXZlcmFnZSIpLGw9dCgiLi4vaGlzdG9ncmFtL2Jpbl9sYWJlbF92YWxzIiksYz10KCIuLi9oaXN0b2dyYW0vY2FsYyIpLmNhbGNBbGxBdXRvQmlucztmdW5jdGlvbiB1KHQsZSxyLG4pe3ZhciBpLGE9bmV3IEFycmF5KHQpO2lmKG4pZm9yKGk9MDtpPHQ7aSsrKWFbaV09MS8oZVtpKzFdLWVbaV0pO2Vsc2V7dmFyIG89MS9yO2ZvcihpPTA7aTx0O2krKylhW2ldPW99cmV0dXJuIGF9ZnVuY3Rpb24gZih0LGUpe3JldHVybntzdGFydDp0KGUuc3RhcnQpLGVuZDp0KGUuZW5kKSxzaXplOmUuc2l6ZX19ZnVuY3Rpb24gaCh0LGUscixuLGksYSl7dmFyIG8scz10Lmxlbmd0aC0xLGM9bmV3IEFycmF5KHMpLHU9bChyLG4sdCxpLGEpO2ZvcihvPTA7bzxzO28rKyl7dmFyIGY9KGV8fFtdKVtvXTtjW29dPXZvaWQgMD09PWY/W3UodFtvXSksdSh0W28rMV0sITApXTpbZixmXX1yZXR1cm4gY31lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixsLHAsZCxtPWkuZ2V0RnJvbUlkKHQsZS54YXhpcyksZz1pLmdldEZyb21JZCh0LGUueWF4aXMpLHY9ZS54Y2FsZW5kYXIseT1lLnljYWxlbmRhcix4PWZ1bmN0aW9uKHQpe3JldHVybiBtLnIyYyh0LDAsdil9LGI9ZnVuY3Rpb24odCl7cmV0dXJuIGcucjJjKHQsMCx5KX0sXz1jKHQsZSxtLCJ4Iiksdz1fWzBdLFQ9X1sxXSxrPWModCxlLGcsInkiKSxBPWtbMF0sTT1rWzFdLFM9ZS5fbGVuZ3RoO1QubGVuZ3RoPlMmJlQuc3BsaWNlKFMsVC5sZW5ndGgtUyksTS5sZW5ndGg+UyYmTS5zcGxpY2UoUyxNLmxlbmd0aC1TKTt2YXIgRT1bXSxMPVtdLEM9W10sUD0ic3RyaW5nIj09dHlwZW9mIHcuc2l6ZSxJPSJzdHJpbmciPT10eXBlb2YgQS5zaXplLE89W10sej1bXSxEPVA/Tzp3LFI9ST96OkEsRj0wLEI9W10sTj1bXSxqPWUuaGlzdG5vcm0sVT1lLmhpc3RmdW5jLFY9LTEhPT1qLmluZGV4T2YoImRlbnNpdHkiKSxIPSJtYXgiPT09VXx8Im1pbiI9PT1VP251bGw6MCxxPWEuY291bnQsRz1vW2pdLFk9ITEsVz1bXSxYPVtdLFo9InoiaW4gZT9lLno6Im1hcmtlciJpbiBlJiZBcnJheS5pc0FycmF5KGUubWFya2VyLmNvbG9yKT9lLm1hcmtlci5jb2xvcjoiIjtaJiYiY291bnQiIT09VSYmKFk9ImF2ZyI9PT1VLHE9YVtVXSk7dmFyIEo9dy5zaXplLEs9eCh3LnN0YXJ0KSxRPXgody5lbmQpKyhLLWkudGlja0luY3JlbWVudChLLEosITEsdikpLzFlNjtmb3Iocj1LO3I8UTtyPWkudGlja0luY3JlbWVudChyLEosITEsdikpTC5wdXNoKEgpLE8ucHVzaChyKSxZJiZDLnB1c2goMCk7Ty5wdXNoKHIpO3ZhciAkLHR0PUwubGVuZ3RoLGV0PShyLUspL3R0LHJ0PSgkPUsrZXQvMixtLmMycigkLDAsdikpLG50PUEuc2l6ZSxpdD1iKEEuc3RhcnQpLGF0PWIoQS5lbmQpKyhpdC1pLnRpY2tJbmNyZW1lbnQoaXQsbnQsITEseSkpLzFlNjtmb3Iocj1pdDtyPGF0O3I9aS50aWNrSW5jcmVtZW50KHIsbnQsITEseSkpe0UucHVzaChMLnNsaWNlKCkpLHoucHVzaChyKTt2YXIgb3Q9bmV3IEFycmF5KHR0KTtmb3IobD0wO2w8dHQ7bCsrKW90W2xdPVtdO04ucHVzaChvdCksWSYmQi5wdXNoKEMuc2xpY2UoKSl9ei5wdXNoKHIpO3ZhciBzdD1FLmxlbmd0aCxsdD0oci1pdCkvc3QsY3Q9ZnVuY3Rpb24odCl7cmV0dXJuIGcuYzJyKHQsMCx5KX0oaXQrbHQvMik7ViYmKFc9dShMLmxlbmd0aCxELGV0LFApLFg9dShFLmxlbmd0aCxSLGx0LEkpKSxQfHwiZGF0ZSIhPT1tLnR5cGV8fChEPWYoeCxEKSksSXx8ImRhdGUiIT09Zy50eXBlfHwoUj1mKGIsUikpO3ZhciB1dD0hMCxmdD0hMCxodD1uZXcgQXJyYXkodHQpLHB0PW5ldyBBcnJheShzdCksZHQ9MS8wLG10PTEvMCxndD0xLzAsdnQ9MS8wO2ZvcihyPTA7cjxTO3IrKyl7dmFyIHl0PVRbcl0seHQ9TVtyXTtwPW4uZmluZEJpbih5dCxEKSxkPW4uZmluZEJpbih4dCxSKSxwPj0wJiZwPHR0JiZkPj0wJiZkPHN0JiYoRis9cShwLHIsRVtkXSxaLEJbZF0pLE5bZF1bcF0ucHVzaChyKSx1dCYmKHZvaWQgMD09PWh0W3BdP2h0W3BdPXl0Omh0W3BdIT09eXQmJih1dD0hMSkpLGZ0JiYodm9pZCAwPT09cHRbZF0/cHRbZF09eHQ6cHRbZF0hPT14dCYmKGZ0PSExKSksZHQ9TWF0aC5taW4oZHQseXQtT1twXSksbXQ9TWF0aC5taW4obXQsT1twKzFdLXl0KSxndD1NYXRoLm1pbihndCx4dC16W2RdKSx2dD1NYXRoLm1pbih2dCx6W2QrMV0teHQpKX1pZihZKWZvcihkPTA7ZDxzdDtkKyspRis9cyhFW2RdLEJbZF0pO2lmKEcpZm9yKGQ9MDtkPHN0O2QrKylHKEVbZF0sRixXLFhbZF0pO3JldHVybnt4OlQseFJhbmdlczpoKE8sdXQmJmh0LGR0LG10LG0sdikseDA6cnQsZHg6ZXQseTpNLHlSYW5nZXM6aCh6LGZ0JiZwdCxndCx2dCxnLHkpLHkwOmN0LGR5Omx0LHo6RSxwdHM6Tn19fSx7Ii4uLy4uL2xpYiI6NTE1LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NTY2LCIuLi9oaXN0b2dyYW0vYXZlcmFnZSI6ODIyLCIuLi9oaXN0b2dyYW0vYmluX2Z1bmN0aW9ucyI6ODI0LCIuLi9oaXN0b2dyYW0vYmluX2xhYmVsX3ZhbHMiOjgyNSwiLi4vaGlzdG9ncmFtL2NhbGMiOjgyNiwiLi4vaGlzdG9ncmFtL25vcm1fZnVuY3Rpb25zIjo4MzN9XSw4MzY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuL3NhbXBsZV9kZWZhdWx0cyIpLGE9dCgiLi4vaGVhdG1hcC9zdHlsZV9kZWZhdWx0cyIpLG89dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2RlZmF1bHRzIikscz10KCIuLi9oZWF0bWFwL2xhYmVsX2RlZmF1bHRzIiksbD10KCIuL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYyl7ZnVuY3Rpb24gdShyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsbCxyLGkpfWkodCxlLHUsYyksITEhPT1lLnZpc2libGUmJihhKHQsZSx1LGMpLG8odCxlLGMsdSx7cHJlZml4OiIiLGNMZXR0ZXI6InoifSksdSgiaG92ZXJ0ZW1wbGF0ZSIpLHModSxjKSx1KCJ4aG92ZXJmb3JtYXQiKSx1KCJ5aG92ZXJmb3JtYXQiKSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9kZWZhdWx0cyI6Mzc3LCIuLi8uLi9saWIiOjUxNSwiLi4vaGVhdG1hcC9sYWJlbF9kZWZhdWx0cyI6ODExLCIuLi9oZWF0bWFwL3N0eWxlX2RlZmF1bHRzIjo4MTUsIi4vYXR0cmlidXRlcyI6ODM0LCIuL3NhbXBsZV9kZWZhdWx0cyI6ODM5fV0sODM3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2hlYXRtYXAvaG92ZXIiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIikuaG92ZXJMYWJlbFRleHQ7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGEsbyl7dmFyIHM9bih0LGUscixhLG8pO2lmKHMpe3ZhciBsPSh0PXNbMF0pLmluZGV4LGM9bFswXSx1PWxbMV0sZj10LmNkWzBdLGg9Zi50cmFjZSxwPWYueFJhbmdlc1t1XSxkPWYueVJhbmdlc1tjXTtyZXR1cm4gdC54TGFiZWw9aSh0LnhhLFtwWzBdLHBbMV1dLGgueGhvdmVyZm9ybWF0KSx0LnlMYWJlbD1pKHQueWEsW2RbMF0sZFsxXV0saC55aG92ZXJmb3JtYXQpLHN9fX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NTY2LCIuLi9oZWF0bWFwL2hvdmVyIjo4MDh9XSw4Mzg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXthdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxjcm9zc1RyYWNlRGVmYXVsdHM6dCgiLi4vaGlzdG9ncmFtL2Nyb3NzX3RyYWNlX2RlZmF1bHRzIiksY2FsYzp0KCIuLi9oZWF0bWFwL2NhbGMiKSxwbG90OnQoIi4uL2hlYXRtYXAvcGxvdCIpLGxheWVyTmFtZToiaGVhdG1hcGxheWVyIixjb2xvcmJhcjp0KCIuLi9oZWF0bWFwL2NvbG9yYmFyIiksc3R5bGU6dCgiLi4vaGVhdG1hcC9zdHlsZSIpLGhvdmVyUG9pbnRzOnQoIi4vaG92ZXIiKSxldmVudERhdGE6dCgiLi4vaGlzdG9ncmFtL2V2ZW50X2RhdGEiKSxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToiaGlzdG9ncmFtMmQiLGJhc2VQbG90TW9kdWxlOnQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbiIpLGNhdGVnb3JpZXM6WyJjYXJ0ZXNpYW4iLCJzdmciLCIyZE1hcCIsImhpc3RvZ3JhbSIsInNob3dMZWdlbmQiXSxtZXRhOnt9fX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iOjU3OCwiLi4vaGVhdG1hcC9jYWxjIjo4MDIsIi4uL2hlYXRtYXAvY29sb3JiYXIiOjgwNCwiLi4vaGVhdG1hcC9wbG90Ijo4MTMsIi4uL2hlYXRtYXAvc3R5bGUiOjgxNCwiLi4vaGlzdG9ncmFtL2Nyb3NzX3RyYWNlX2RlZmF1bHRzIjo4MjgsIi4uL2hpc3RvZ3JhbS9ldmVudF9kYXRhIjo4MzAsIi4vYXR0cmlidXRlcyI6ODM0LCIuL2RlZmF1bHRzIjo4MzYsIi4vaG92ZXIiOjgzN31dLDgzOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9yZWdpc3RyeSIpLGk9dCgiLi4vLi4vbGliIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGEpe3ZhciBvPXIoIngiKSxzPXIoInkiKSxsPWkubWluUm93TGVuZ3RoKG8pLGM9aS5taW5Sb3dMZW5ndGgocyk7bCYmYz8oZS5fbGVuZ3RoPU1hdGgubWluKGwsYyksbi5nZXRDb21wb25lbnRNZXRob2QoImNhbGVuZGFycyIsImhhbmRsZVRyYWNlRGVmYXVsdHMiKSh0LGUsWyJ4IiwieSJdLGEpLChyKCJ6Iil8fHIoIm1hcmtlci5jb2xvciIpKSYmcigiaGlzdGZ1bmMiKSxyKCJoaXN0bm9ybSIpLHIoImF1dG9iaW54IikscigiYXV0b2JpbnkiKSk6ZS52aXNpYmxlPSExfX0seyIuLi8uLi9saWIiOjUxNSwiLi4vLi4vcmVnaXN0cnkiOjY0N31dLDg0MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9oaXN0b2dyYW0yZC9hdHRyaWJ1dGVzIiksaT10KCIuLi9jb250b3VyL2F0dHJpYnV0ZXMiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIiksbz10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19mb3JtYXRfYXR0cmlidXRlcyIpLmF4aXNIb3ZlckZvcm1hdCxzPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0O2UuZXhwb3J0cz1zKHt4Om4ueCx5Om4ueSx6Om4ueixtYXJrZXI6bi5tYXJrZXIsaGlzdG5vcm06bi5oaXN0bm9ybSxoaXN0ZnVuYzpuLmhpc3RmdW5jLG5iaW5zeDpuLm5iaW5zeCx4YmluczpuLnhiaW5zLG5iaW5zeTpuLm5iaW5zeSx5YmluczpuLnliaW5zLGF1dG9iaW54Om4uYXV0b2JpbngsYXV0b2Jpbnk6bi5hdXRvYmlueSxiaW5ncm91cDpuLmJpbmdyb3VwLHhiaW5ncm91cDpuLnhiaW5ncm91cCx5YmluZ3JvdXA6bi55YmluZ3JvdXAsYXV0b2NvbnRvdXI6aS5hdXRvY29udG91cixuY29udG91cnM6aS5uY29udG91cnMsY29udG91cnM6aS5jb250b3VycyxsaW5lOntjb2xvcjppLmxpbmUuY29sb3Isd2lkdGg6cyh7fSxpLmxpbmUud2lkdGgse2RmbHQ6LjV9KSxkYXNoOmkubGluZS5kYXNoLHNtb290aGluZzppLmxpbmUuc21vb3RoaW5nLGVkaXRUeXBlOiJwbG90In0seGhvdmVyZm9ybWF0Om8oIngiKSx5aG92ZXJmb3JtYXQ6bygieSIpLHpob3ZlcmZvcm1hdDpvKCJ6IiwxKSxob3ZlcnRlbXBsYXRlOm4uaG92ZXJ0ZW1wbGF0ZSx0ZXh0dGVtcGxhdGU6aS50ZXh0dGVtcGxhdGUsdGV4dGZvbnQ6aS50ZXh0Zm9udH0sYSgiIix7Y0xldHRlcjoieiIsZWRpdFR5cGVPdmVycmlkZToiY2FsYyJ9KSl9LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiOjM3NCwiLi4vLi4vbGliL2V4dGVuZCI6NTA1LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19mb3JtYXRfYXR0cmlidXRlcyI6NTY5LCIuLi9jb250b3VyL2F0dHJpYnV0ZXMiOjc0NCwiLi4vaGlzdG9ncmFtMmQvYXR0cmlidXRlcyI6ODM0fV0sODQxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vaGlzdG9ncmFtMmQvc2FtcGxlX2RlZmF1bHRzIiksYT10KCIuLi9jb250b3VyL2NvbnRvdXJzX2RlZmF1bHRzIiksbz10KCIuLi9jb250b3VyL3N0eWxlX2RlZmF1bHRzIikscz10KCIuLi9oZWF0bWFwL2xhYmVsX2RlZmF1bHRzIiksbD10KCIuL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYyl7ZnVuY3Rpb24gdShyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsbCxyLGkpfWkodCxlLHUsYyksITEhPT1lLnZpc2libGUmJihhKHQsZSx1LChmdW5jdGlvbihyKXtyZXR1cm4gbi5jb2VyY2UyKHQsZSxsLHIpfSkpLG8odCxlLHUsYyksdSgieGhvdmVyZm9ybWF0IiksdSgieWhvdmVyZm9ybWF0IiksdSgiaG92ZXJ0ZW1wbGF0ZSIpLGUuY29udG91cnMmJiJoZWF0bWFwIj09PWUuY29udG91cnMuY29sb3JpbmcmJnModSxjKSl9fSx7Ii4uLy4uL2xpYiI6NTE1LCIuLi9jb250b3VyL2NvbnRvdXJzX2RlZmF1bHRzIjo3NTEsIi4uL2NvbnRvdXIvc3R5bGVfZGVmYXVsdHMiOjc2NSwiLi4vaGVhdG1hcC9sYWJlbF9kZWZhdWx0cyI6ODExLCIuLi9oaXN0b2dyYW0yZC9zYW1wbGVfZGVmYXVsdHMiOjgzOSwiLi9hdHRyaWJ1dGVzIjo4NDB9XSw4NDI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXthdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxjcm9zc1RyYWNlRGVmYXVsdHM6dCgiLi4vaGlzdG9ncmFtL2Nyb3NzX3RyYWNlX2RlZmF1bHRzIiksY2FsYzp0KCIuLi9jb250b3VyL2NhbGMiKSxwbG90OnQoIi4uL2NvbnRvdXIvcGxvdCIpLnBsb3QsbGF5ZXJOYW1lOiJjb250b3VybGF5ZXIiLHN0eWxlOnQoIi4uL2NvbnRvdXIvc3R5bGUiKSxjb2xvcmJhcjp0KCIuLi9jb250b3VyL2NvbG9yYmFyIiksaG92ZXJQb2ludHM6dCgiLi4vY29udG91ci9ob3ZlciIpLG1vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJoaXN0b2dyYW0yZGNvbnRvdXIiLGJhc2VQbG90TW9kdWxlOnQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbiIpLGNhdGVnb3JpZXM6WyJjYXJ0ZXNpYW4iLCJzdmciLCIyZE1hcCIsImNvbnRvdXIiLCJoaXN0b2dyYW0iLCJzaG93TGVnZW5kIl0sbWV0YTp7fX19LHsiLi4vLi4vcGxvdHMvY2FydGVzaWFuIjo1NzgsIi4uL2NvbnRvdXIvY2FsYyI6NzQ1LCIuLi9jb250b3VyL2NvbG9yYmFyIjo3NDcsIi4uL2NvbnRvdXIvaG92ZXIiOjc1NywiLi4vY29udG91ci9wbG90Ijo3NjIsIi4uL2NvbnRvdXIvc3R5bGUiOjc2NCwiLi4vaGlzdG9ncmFtL2Nyb3NzX3RyYWNlX2RlZmF1bHRzIjo4MjgsIi4vYXR0cmlidXRlcyI6ODQwLCIuL2RlZmF1bHRzIjo4NDF9XSw4NDM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxpPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS50ZXh0dGVtcGxhdGVBdHRycyxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIiksbz10KCIuLi8uLi9wbG90cy9kb21haW4iKS5hdHRyaWJ1dGVzLHM9dCgiLi4vcGllL2F0dHJpYnV0ZXMiKSxsPXQoIi4uL3N1bmJ1cnN0L2F0dHJpYnV0ZXMiKSxjPXQoIi4uL3RyZWVtYXAvYXR0cmlidXRlcyIpLHU9dCgiLi4vdHJlZW1hcC9jb25zdGFudHMiKSxmPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0O2UuZXhwb3J0cz17bGFiZWxzOmwubGFiZWxzLHBhcmVudHM6bC5wYXJlbnRzLHZhbHVlczpsLnZhbHVlcyxicmFuY2h2YWx1ZXM6bC5icmFuY2h2YWx1ZXMsY291bnQ6bC5jb3VudCxsZXZlbDpsLmxldmVsLG1heGRlcHRoOmwubWF4ZGVwdGgsdGlsaW5nOntvcmllbnRhdGlvbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsidiIsImgiXSxkZmx0OiJoIixlZGl0VHlwZToicGxvdCJ9LGZsaXA6Yy50aWxpbmcuZmxpcCxwYWQ6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDowLGVkaXRUeXBlOiJwbG90In0sZWRpdFR5cGU6ImNhbGMifSxtYXJrZXI6Zih7Y29sb3JzOmwubWFya2VyLmNvbG9ycyxsaW5lOmwubWFya2VyLmxpbmUsZWRpdFR5cGU6ImNhbGMifSxhKCJtYXJrZXIiLHtjb2xvckF0dHI6ImNvbG9ycyIsYW5pbTohMX0pKSxsZWFmOmwubGVhZixwYXRoYmFyOmMucGF0aGJhcix0ZXh0OnMudGV4dCx0ZXh0aW5mbzpsLnRleHRpbmZvLHRleHR0ZW1wbGF0ZTppKHtlZGl0VHlwZToicGxvdCJ9LHtrZXlzOnUuZXZlbnREYXRhS2V5cy5jb25jYXQoWyJsYWJlbCIsInZhbHVlIl0pfSksaG92ZXJ0ZXh0OnMuaG92ZXJ0ZXh0LGhvdmVyaW5mbzpsLmhvdmVyaW5mbyxob3ZlcnRlbXBsYXRlOm4oe30se2tleXM6dS5ldmVudERhdGFLZXlzfSksdGV4dGZvbnQ6cy50ZXh0Zm9udCxpbnNpZGV0ZXh0Zm9udDpzLmluc2lkZXRleHRmb250LG91dHNpZGV0ZXh0Zm9udDpjLm91dHNpZGV0ZXh0Zm9udCx0ZXh0cG9zaXRpb246Yy50ZXh0cG9zaXRpb24sc29ydDpzLnNvcnQscm9vdDpsLnJvb3QsZG9tYWluOm8oe25hbWU6ImljaWNsZSIsdHJhY2U6ITAsZWRpdFR5cGU6ImNhbGMifSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjozNzQsIi4uLy4uL2xpYi9leHRlbmQiOjUwNSwiLi4vLi4vcGxvdHMvZG9tYWluIjo1OTMsIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjY0MiwiLi4vcGllL2F0dHJpYnV0ZXMiOjkxMCwiLi4vc3VuYnVyc3QvYXR0cmlidXRlcyI6MTA1OCwiLi4vdHJlZW1hcC9hdHRyaWJ1dGVzIjoxMDg0LCIuLi90cmVlbWFwL2NvbnN0YW50cyI6MTA4N31dLDg0NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9wbG90cyIpO3IubmFtZT0iaWNpY2xlIixyLnBsb3Q9ZnVuY3Rpb24odCxlLGksYSl7bi5wbG90QmFzZVBsb3Qoci5uYW1lLHQsZSxpLGEpfSxyLmNsZWFuPWZ1bmN0aW9uKHQsZSxpLGEpe24uY2xlYW5CYXNlUGxvdChyLm5hbWUsdCxlLGksYSl9fSx7Ii4uLy4uL3Bsb3RzL3Bsb3RzIjo2Mjh9XSw4NDU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vc3VuYnVyc3QvY2FsYyIpO3IuY2FsYz1mdW5jdGlvbih0LGUpe3JldHVybiBuLmNhbGModCxlKX0sci5jcm9zc1RyYWNlQ2FsYz1mdW5jdGlvbih0KXtyZXR1cm4gbi5fcnVuQ3Jvc3NUcmFjZUNhbGMoImljaWNsZSIsdCl9fSx7Ii4uL3N1bmJ1cnN0L2NhbGMiOjEwNjB9XSw4NDY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuL2F0dHJpYnV0ZXMiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxvPXQoIi4uLy4uL3Bsb3RzL2RvbWFpbiIpLmRlZmF1bHRzLHM9dCgiLi4vYmFyL2RlZmF1bHRzIikuaGFuZGxlVGV4dCxsPXQoIi4uL2Jhci9jb25zdGFudHMiKS5URVhUUEFELGM9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIiksdT1jLmhhc0NvbG9yc2NhbGUsZj1jLmhhbmRsZURlZmF1bHRzO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixjKXtmdW5jdGlvbiBoKHIsYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxpLHIsYSl9dmFyIHA9aCgibGFiZWxzIiksZD1oKCJwYXJlbnRzIik7aWYocCYmcC5sZW5ndGgmJmQmJmQubGVuZ3RoKXt2YXIgbT1oKCJ2YWx1ZXMiKTttJiZtLmxlbmd0aD9oKCJicmFuY2h2YWx1ZXMiKTpoKCJjb3VudCIpLGgoImxldmVsIiksaCgibWF4ZGVwdGgiKSxoKCJ0aWxpbmcub3JpZW50YXRpb24iKSxoKCJ0aWxpbmcuZmxpcCIpLGgoInRpbGluZy5wYWQiKTt2YXIgZz1oKCJ0ZXh0Iik7aCgidGV4dHRlbXBsYXRlIiksZS50ZXh0dGVtcGxhdGV8fGgoInRleHRpbmZvIixBcnJheS5pc0FycmF5KGcpPyJ0ZXh0K2xhYmVsIjoibGFiZWwiKSxoKCJob3ZlcnRleHQiKSxoKCJob3ZlcnRlbXBsYXRlIik7dmFyIHY9aCgicGF0aGJhci52aXNpYmxlIik7cyh0LGUsYyxoLCJhdXRvIix7aGFzUGF0aGJhcjp2LG1vZHVsZUhhc1NlbGVjdGVkOiExLG1vZHVsZUhhc1Vuc2VsZWN0ZWQ6ITEsbW9kdWxlSGFzQ29uc3RyYWluOiExLG1vZHVsZUhhc0NsaXBvbmF4aXM6ITEsbW9kdWxlSGFzVGV4dGFuZ2xlOiExLG1vZHVsZUhhc0luc2lkZWFuY2hvcjohMX0pLGgoInRleHRwb3NpdGlvbiIpLGgoIm1hcmtlci5saW5lLndpZHRoIikmJmgoIm1hcmtlci5saW5lLmNvbG9yIixjLnBhcGVyX2JnY29sb3IpLGgoIm1hcmtlci5jb2xvcnMiKTt2YXIgeT1lLl9oYXNDb2xvcnNjYWxlPXUodCwibWFya2VyIiwiY29sb3JzIil8fCh0Lm1hcmtlcnx8e30pLmNvbG9yYXhpczt5JiZmKHQsZSxjLGgse3ByZWZpeDoibWFya2VyLiIsY0xldHRlcjoiYyJ9KSxoKCJsZWFmLm9wYWNpdHkiLHk/MTouNyksZS5faG92ZXJlZD17bWFya2VyOntsaW5lOnt3aWR0aDoyLGNvbG9yOmEuY29udHJhc3QoYy5wYXBlcl9iZ2NvbG9yKX19fSx2JiYoaCgicGF0aGJhci50aGlja25lc3MiLGUucGF0aGJhci50ZXh0Zm9udC5zaXplKzIqbCksaCgicGF0aGJhci5zaWRlIiksaCgicGF0aGJhci5lZGdlc2hhcGUiKSksaCgic29ydCIpLGgoInJvb3QuY29sb3IiKSxvKGUsYyxoKSxlLl9sZW5ndGg9bnVsbH1lbHNlIGUudmlzaWJsZT0hMX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6MzY3LCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiOjM3OSwiLi4vLi4vbGliIjo1MTUsIi4uLy4uL3Bsb3RzL2RvbWFpbiI6NTkzLCIuLi9iYXIvY29uc3RhbnRzIjo2NTksIi4uL2Jhci9kZWZhdWx0cyI6NjYxLCIuL2F0dHJpYnV0ZXMiOjg0M31dLDg0NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLG89dCgiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIikscz10KCIuL3BhcnRpdGlvbiIpLGw9dCgiLi9zdHlsZSIpLnN0eWxlT25lLGM9dCgiLi4vdHJlZW1hcC9jb25zdGFudHMiKSx1PXQoIi4uL3N1bmJ1cnN0L2hlbHBlcnMiKSxmPXQoIi4uL3N1bmJ1cnN0L2Z4IiksaD10KCIuLi9zdW5idXJzdC9wbG90IikuZm9ybWF0U2xpY2VMYWJlbDtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIscCxkKXt2YXIgbT1kLndpZHRoLGc9ZC5oZWlnaHQsdj1kLnZpZXdYLHk9ZC52aWV3WSx4PWQucGF0aFNsaWNlLGI9ZC50b01vdmVJbnNpZGVTbGljZSxfPWQuc3RyVHJhbnNmb3JtLHc9ZC5oYXNUcmFuc2l0aW9uLFQ9ZC5oYW5kbGVTbGljZXNFeGl0LGs9ZC5tYWtlVXBkYXRlU2xpY2VJbnRlcnBvbGF0b3IsQT1kLm1ha2VVcGRhdGVUZXh0SW50ZXJwb2xhdG9yLE09ZC5wcmV2RW50cnksUz10Ll9mdWxsTGF5b3V0LEU9ZVswXS50cmFjZSxMPS0xIT09RS50ZXh0cG9zaXRpb24uaW5kZXhPZigibGVmdCIpLEM9LTEhPT1FLnRleHRwb3NpdGlvbi5pbmRleE9mKCJyaWdodCIpLFA9LTEhPT1FLnRleHRwb3NpdGlvbi5pbmRleE9mKCJib3R0b20iKSxJPXMocixbbSxnXSx7ZmxpcFg6RS50aWxpbmcuZmxpcC5pbmRleE9mKCJ4Iik+LTEsZmxpcFk6RS50aWxpbmcuZmxpcC5pbmRleE9mKCJ5Iik+LTEsb3JpZW50YXRpb246RS50aWxpbmcub3JpZW50YXRpb24scGFkOntpbm5lcjpFLnRpbGluZy5wYWR9LG1heERlcHRoOkUuX21heERlcHRofSkuZGVzY2VuZGFudHMoKSxPPTEvMCx6PS0xLzA7SS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT10LmRlcHRoO2U+PUUuX21heERlcHRoPyh0LngwPXQueDE9KHQueDArdC54MSkvMix0LnkwPXQueTE9KHQueTArdC55MSkvMik6KE89TWF0aC5taW4oTyxlKSx6PU1hdGgubWF4KHosZSkpfSkpLHA9cC5kYXRhKEksdS5nZXRQdElkKSxFLl9tYXhWaXNpYmxlTGF5ZXJzPWlzRmluaXRlKHopP3otTysxOjAscC5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoInNsaWNlIiwhMCksVChwLCExLHt9LFttLGddLHgpLHAub3JkZXIoKTt2YXIgRD1udWxsO2lmKHcmJk0pe3ZhciBSPXUuZ2V0UHRJZChNKTtwLmVhY2goKGZ1bmN0aW9uKHQpe251bGw9PT1EJiZ1LmdldFB0SWQodCk9PT1SJiYoRD17eDA6dC54MCx4MTp0LngxLHkwOnQueTAseTE6dC55MX0pfSkpfXZhciBGPWZ1bmN0aW9uKCl7cmV0dXJuIER8fHt4MDowLHgxOm0seTA6MCx5MTpnfX0sQj1wO3JldHVybiB3JiYoQj1CLnRyYW5zaXRpb24oKS5lYWNoKCJlbmQiLChmdW5jdGlvbigpe3ZhciBlPW4uc2VsZWN0KHRoaXMpO3Uuc2V0U2xpY2VDdXJzb3IoZSx0LHtoaWRlT25Sb290OiEwLGhpZGVPbkxlYXZlczohMSxpc1RyYW5zaXRpb25pbmc6ITF9KX0pKSksQi5lYWNoKChmdW5jdGlvbihzKXtzLl94MD12KHMueDApLHMuX3gxPXYocy54MSkscy5feTA9eShzLnkwKSxzLl95MT15KHMueTEpLHMuX2hvdmVyWD12KHMueDEtRS50aWxpbmcucGFkKSxzLl9ob3Zlclk9eShQP3MueTEtRS50aWxpbmcucGFkLzI6cy55MCtFLnRpbGluZy5wYWQvMik7dmFyIHA9bi5zZWxlY3QodGhpcyksZD1pLmVuc3VyZVNpbmdsZShwLCJwYXRoIiwic3VyZmFjZSIsKGZ1bmN0aW9uKHQpe3Quc3R5bGUoInBvaW50ZXItZXZlbnRzIiwiYWxsIil9KSk7dz9kLnRyYW5zaXRpb24oKS5hdHRyVHdlZW4oImQiLChmdW5jdGlvbih0KXt2YXIgZT1rKHQsITEsRigpLFttLGddLHtvcmllbnRhdGlvbjpFLnRpbGluZy5vcmllbnRhdGlvbixmbGlwWDpFLnRpbGluZy5mbGlwLmluZGV4T2YoIngiKT4tMSxmbGlwWTpFLnRpbGluZy5mbGlwLmluZGV4T2YoInkiKT4tMX0pO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4geChlKHQpKX19KSk6ZC5hdHRyKCJkIix4KSxwLmNhbGwoZixyLHQsZSx7c3R5bGVPbmU6bCxldmVudERhdGFLZXlzOmMuZXZlbnREYXRhS2V5cyx0cmFuc2l0aW9uVGltZTpjLkNMSUNLX1RSQU5TSVRJT05fVElNRSx0cmFuc2l0aW9uRWFzaW5nOmMuQ0xJQ0tfVFJBTlNJVElPTl9FQVNJTkd9KS5jYWxsKHUuc2V0U2xpY2VDdXJzb3IsdCx7aXNUcmFuc2l0aW9uaW5nOnQuX3RyYW5zaXRpb25pbmd9KSxkLmNhbGwobCxzLEUse2hvdmVyZWQ6ITF9KSxzLngwPT09cy54MXx8cy55MD09PXMueTE/cy5fdGV4dD0iIjpzLl90ZXh0PWgocyxyLEUsZSxTKXx8IiI7dmFyIFQ9aS5lbnN1cmVTaW5nbGUocCwiZyIsInNsaWNldGV4dCIpLE09aS5lbnN1cmVTaW5nbGUoVCwidGV4dCIsIiIsKGZ1bmN0aW9uKHQpe3QuYXR0cigiZGF0YS1ub3RleCIsMSl9KSksST1pLmVuc3VyZVVuaWZvcm1Gb250U2l6ZSh0LHUuZGV0ZXJtaW5lVGV4dEZvbnQoRSxzLFMuZm9udCkpO00udGV4dChzLl90ZXh0fHwiICIpLmNsYXNzZWQoInNsaWNldGV4dCIsITApLmF0dHIoInRleHQtYW5jaG9yIixDPyJlbmQiOkw/InN0YXJ0IjoibWlkZGxlIikuY2FsbChhLmZvbnQsSSkuY2FsbChvLmNvbnZlcnRUb1RzcGFucyx0KSxzLnRleHRCQj1hLmJCb3goTS5ub2RlKCkpLHMudHJhbnNmb3JtPWIocyx7Zm9udFNpemU6SS5zaXplfSkscy50cmFuc2Zvcm0uZm9udFNpemU9SS5zaXplLHc/TS50cmFuc2l0aW9uKCkuYXR0clR3ZWVuKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbih0KXt2YXIgZT1BKHQsITEsRigpLFttLGddKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIF8oZSh0KSl9fSkpOk0uYXR0cigidHJhbnNmb3JtIixfKHMpKX0pKSxEfX0seyIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjM4OSwiLi4vLi4vbGliIjo1MTUsIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyI6NTQxLCIuLi9zdW5idXJzdC9meCI6MTA2MywiLi4vc3VuYnVyc3QvaGVscGVycyI6MTA2NCwiLi4vc3VuYnVyc3QvcGxvdCI6MTA2OCwiLi4vdHJlZW1hcC9jb25zdGFudHMiOjEwODcsIi4vcGFydGl0aW9uIjo4NTEsIi4vc3R5bGUiOjg1MywiQHBsb3RseS9kMyI6NTh9XSw4NDg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToiaWNpY2xlIixiYXNlUGxvdE1vZHVsZTp0KCIuL2Jhc2VfcGxvdCIpLGNhdGVnb3JpZXM6W10sYW5pbWF0YWJsZTohMCxhdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLGxheW91dEF0dHJpYnV0ZXM6dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxzdXBwbHlMYXlvdXREZWZhdWx0czp0KCIuL2xheW91dF9kZWZhdWx0cyIpLGNhbGM6dCgiLi9jYWxjIikuY2FsYyxjcm9zc1RyYWNlQ2FsYzp0KCIuL2NhbGMiKS5jcm9zc1RyYWNlQ2FsYyxwbG90OnQoIi4vcGxvdCIpLHN0eWxlOnQoIi4vc3R5bGUiKS5zdHlsZSxjb2xvcmJhcjp0KCIuLi9zY2F0dGVyL21hcmtlcl9jb2xvcmJhciIpLG1ldGE6e319fSx7Ii4uL3NjYXR0ZXIvbWFya2VyX2NvbG9yYmFyIjo5NTQsIi4vYXR0cmlidXRlcyI6ODQzLCIuL2Jhc2VfcGxvdCI6ODQ0LCIuL2NhbGMiOjg0NSwiLi9kZWZhdWx0cyI6ODQ2LCIuL2xheW91dF9hdHRyaWJ1dGVzIjo4NDksIi4vbGF5b3V0X2RlZmF1bHRzIjo4NTAsIi4vcGxvdCI6ODUyLCIuL3N0eWxlIjo4NTN9XSw4NDk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtpY2ljbGVjb2xvcndheTp7dmFsVHlwZToiY29sb3JsaXN0IixlZGl0VHlwZToiY2FsYyJ9LGV4dGVuZGljaWNsZWNvbG9yczp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToiY2FsYyJ9fX0se31dLDg1MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiByKHIsYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxpLHIsYSl9cigiaWNpY2xlY29sb3J3YXkiLGUuY29sb3J3YXkpLHIoImV4dGVuZGljaWNsZWNvbG9ycyIpfX0seyIuLi8uLi9saWIiOjUxNSwiLi9sYXlvdXRfYXR0cmlidXRlcyI6ODQ5fV0sODUxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzLWhpZXJhcmNoeSIpLGk9dCgiLi4vdHJlZW1hcC9mbGlwX3RyZWUiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBhPXIuZmxpcFgsbz1yLmZsaXBZLHM9ImgiPT09ci5vcmllbnRhdGlvbixsPXIubWF4RGVwdGgsYz1lWzBdLHU9ZVsxXTtsJiYoYz0odC5oZWlnaHQrMSkqZVswXS9NYXRoLm1pbih0LmhlaWdodCsxLGwpLHU9KHQuaGVpZ2h0KzEpKmVbMV0vTWF0aC5taW4odC5oZWlnaHQrMSxsKSk7dmFyIGY9bi5wYXJ0aXRpb24oKS5wYWRkaW5nKHIucGFkLmlubmVyKS5zaXplKHM/W2VbMV0sY106W2VbMF0sdV0pKHQpO3JldHVybihzfHxhfHxvKSYmaShmLGUse3N3YXBYWTpzLGZsaXBYOmEsZmxpcFk6b30pLGZ9fSx7Ii4uL3RyZWVtYXAvZmxpcF90cmVlIjoxMDkyLCJkMy1oaWVyYXJjaHkiOjExNX1dLDg1MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi90cmVlbWFwL2RyYXciKSxpPXQoIi4vZHJhd19kZXNjZW5kYW50cyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixhKXtyZXR1cm4gbih0LGUscixhLHt0eXBlOiJpY2ljbGUiLGRyYXdEZXNjZW5kYW50czppfSl9fSx7Ii4uL3RyZWVtYXAvZHJhdyI6MTA4OSwiLi9kcmF3X2Rlc2NlbmRhbnRzIjo4NDd9XSw4NTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLGE9dCgiLi4vLi4vbGliIiksbz10KCIuLi9iYXIvdW5pZm9ybV90ZXh0IikucmVzaXplVGV4dDtmdW5jdGlvbiBzKHQsZSxyKXt2YXIgbj1lLmRhdGEuZGF0YSxvPSFlLmNoaWxkcmVuLHM9bi5pLGw9YS5jYXN0T3B0aW9uKHIscywibWFya2VyLmxpbmUuY29sb3IiKXx8aS5kZWZhdWx0TGluZSxjPWEuY2FzdE9wdGlvbihyLHMsIm1hcmtlci5saW5lLndpZHRoIil8fDA7dC5zdHlsZSgic3Ryb2tlLXdpZHRoIixjKS5jYWxsKGkuZmlsbCxuLmNvbG9yKS5jYWxsKGkuc3Ryb2tlLGwpLnN0eWxlKCJvcGFjaXR5IixvP3IubGVhZi5vcGFjaXR5Om51bGwpfWUuZXhwb3J0cz17c3R5bGU6ZnVuY3Rpb24odCl7dmFyIGU9dC5fZnVsbExheW91dC5faWNpY2xlbGF5ZXIuc2VsZWN0QWxsKCIudHJhY2UiKTtvKHQsZSwiaWNpY2xlIiksZS5lYWNoKChmdW5jdGlvbih0KXt2YXIgZT1uLnNlbGVjdCh0aGlzKSxyPXRbMF0udHJhY2U7ZS5zdHlsZSgib3BhY2l0eSIsci5vcGFjaXR5KSxlLnNlbGVjdEFsbCgicGF0aC5zdXJmYWNlIikuZWFjaCgoZnVuY3Rpb24odCl7bi5zZWxlY3QodGhpcykuY2FsbChzLHQscil9KSl9KSl9LHN0eWxlT25lOnN9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjM2NywiLi4vLi4vbGliIjo1MTUsIi4uL2Jhci91bmlmb3JtX3RleHQiOjY3MywiQHBsb3RseS9kMyI6NTh9XSw4NTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7Zm9yKHZhciBuPXQoIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiKSxpPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS5ob3ZlcnRlbXBsYXRlQXR0cnMsYT10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxvPXQoIi4vY29uc3RhbnRzIikuY29sb3Jtb2RlbCxzPVsicmdiIiwicmdiYSIsInJnYmEyNTYiLCJoc2wiLCJoc2xhIl0sbD1bXSxjPVtdLHU9MDt1PHMubGVuZ3RoO3UrKyl7dmFyIGY9b1tzW3VdXTtsLnB1c2goIkZvciB0aGUgYCIrc1t1XSsiYCBjb2xvcm1vZGVsLCBpdCBpcyBbIisoZi56bWluRGZsdHx8Zi5taW4pLmpvaW4oIiwgIikrIl0uIiksYy5wdXNoKCJGb3IgdGhlIGAiK3NbdV0rImAgY29sb3Jtb2RlbCwgaXQgaXMgWyIrKGYuem1heERmbHR8fGYubWF4KS5qb2luKCIsICIpKyJdLiIpfWUuZXhwb3J0cz1hKHtzb3VyY2U6e3ZhbFR5cGU6InN0cmluZyIsZWRpdFR5cGU6ImNhbGMifSx6Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LGNvbG9ybW9kZWw6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpzLGVkaXRUeXBlOiJjYWxjIn0senNtb290aDp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiZmFzdCIsITFdLGRmbHQ6ITEsZWRpdFR5cGU6InBsb3QifSx6bWluOnt2YWxUeXBlOiJpbmZvX2FycmF5IixpdGVtczpbe3ZhbFR5cGU6Im51bWJlciIsZWRpdFR5cGU6ImNhbGMifSx7dmFsVHlwZToibnVtYmVyIixlZGl0VHlwZToiY2FsYyJ9LHt2YWxUeXBlOiJudW1iZXIiLGVkaXRUeXBlOiJjYWxjIn0se3ZhbFR5cGU6Im51bWJlciIsZWRpdFR5cGU6ImNhbGMifV0sZWRpdFR5cGU6ImNhbGMifSx6bWF4Ont2YWxUeXBlOiJpbmZvX2FycmF5IixpdGVtczpbe3ZhbFR5cGU6Im51bWJlciIsZWRpdFR5cGU6ImNhbGMifSx7dmFsVHlwZToibnVtYmVyIixlZGl0VHlwZToiY2FsYyJ9LHt2YWxUeXBlOiJudW1iZXIiLGVkaXRUeXBlOiJjYWxjIn0se3ZhbFR5cGU6Im51bWJlciIsZWRpdFR5cGU6ImNhbGMifV0sZWRpdFR5cGU6ImNhbGMifSx4MDp7dmFsVHlwZToiYW55IixkZmx0OjAsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSx5MDp7dmFsVHlwZToiYW55IixkZmx0OjAsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSxkeDp7dmFsVHlwZToibnVtYmVyIixkZmx0OjEsZWRpdFR5cGU6ImNhbGMifSxkeTp7dmFsVHlwZToibnVtYmVyIixkZmx0OjEsZWRpdFR5cGU6ImNhbGMifSx0ZXh0Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToicGxvdCJ9LGhvdmVydGV4dDp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6InBsb3QifSxob3ZlcmluZm86YSh7fSxuLmhvdmVyaW5mbyx7ZmxhZ3M6WyJ4IiwieSIsInoiLCJjb2xvciIsIm5hbWUiLCJ0ZXh0Il0sZGZsdDoieCt5K3ordGV4dCtuYW1lIn0pLGhvdmVydGVtcGxhdGU6aSh7fSx7a2V5czpbInoiLCJjb2xvciIsImNvbG9ybW9kZWwiXX0pLHRyYW5zZm9ybXM6dm9pZCAwfSl9LHsiLi4vLi4vbGliL2V4dGVuZCI6NTA1LCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIjo1NjIsIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjY0MiwiLi9jb25zdGFudHMiOjg1Nn1dLDg1NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4vY29uc3RhbnRzIiksYT10KCJmYXN0LWlzbnVtZXJpYyIpLG89dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxzPXQoIi4uLy4uL2xpYiIpLm1heFJvd0xlbmd0aCxsPXQoIi4vaGVscGVycyIpLmdldEltYWdlU2l6ZTtmdW5jdGlvbiBjKHQsZSxyLGkpe3JldHVybiBmdW5jdGlvbihhKXtyZXR1cm4gbi5jb25zdHJhaW4oKGEtdCkqZSxyLGkpfX1mdW5jdGlvbiB1KHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiBuLmNvbnN0cmFpbihyLHQsZSl9fWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLG47aWYoZS5faGFzWilyPWUuei5sZW5ndGgsbj1zKGUueik7ZWxzZSBpZihlLl9oYXNTb3VyY2Upe3ZhciBmPWwoZS5zb3VyY2UpO3I9Zi5oZWlnaHQsbj1mLndpZHRofXZhciBoLHA9by5nZXRGcm9tSWQodCxlLnhheGlzfHwieCIpLGQ9by5nZXRGcm9tSWQodCxlLnlheGlzfHwieSIpLG09cC5kMmMoZS54MCktZS5keC8yLGc9ZC5kMmMoZS55MCktZS5keS8yLHY9W20sbStuKmUuZHhdLHk9W2csZytyKmUuZHldO2lmKHAmJiJsb2ciPT09cC50eXBlKWZvcihoPTA7aDxuO2grKyl2LnB1c2gobStoKmUuZHgpO2lmKGQmJiJsb2ciPT09ZC50eXBlKWZvcihoPTA7aDxyO2grKyl5LnB1c2goZytoKmUuZHkpO3JldHVybiBlLl9leHRyZW1lc1twLl9pZF09by5maW5kRXh0cmVtZXMocCx2KSxlLl9leHRyZW1lc1tkLl9pZF09by5maW5kRXh0cmVtZXMoZCx5KSxlLl9zY2FsZXI9ZnVuY3Rpb24odCl7dmFyIGU9aS5jb2xvcm1vZGVsW3QuY29sb3Jtb2RlbF0scj0oZS5jb2xvcm1vZGVsfHx0LmNvbG9ybW9kZWwpLmxlbmd0aDt0Ll9zQXJyYXk9W107Zm9yKHZhciBuPTA7bjxyO24rKyllLm1pbltuXSE9PXQuem1pbltuXXx8ZS5tYXhbbl0hPT10LnptYXhbbl0/dC5fc0FycmF5LnB1c2goYyh0LnptaW5bbl0sKGUubWF4W25dLWUubWluW25dKS8odC56bWF4W25dLXQuem1pbltuXSksZS5taW5bbl0sZS5tYXhbbl0pKTp0Ll9zQXJyYXkucHVzaCh1KGUubWluW25dLGUubWF4W25dKSk7cmV0dXJuIGZ1bmN0aW9uKGUpe2Zvcih2YXIgbj1lLnNsaWNlKDAsciksaT0wO2k8cjtpKyspe3ZhciBvPW5baV07aWYoIWEobykpcmV0dXJuITE7bltpXT10Ll9zQXJyYXlbaV0obyl9cmV0dXJuIG59fShlKSxbe3gwOm0seTA6Zyx6OmUueix3Om4saDpyfV19fSx7Ii4uLy4uL2xpYiI6NTE1LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NTY2LCIuL2NvbnN0YW50cyI6ODU2LCIuL2hlbHBlcnMiOjg1OSwiZmFzdC1pc251bWVyaWMiOjE5MH1dLDg1NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2NvbG9ybW9kZWw6e3JnYjp7bWluOlswLDAsMF0sbWF4OlsyNTUsMjU1LDI1NV0sZm10OmZ1bmN0aW9uKHQpe3JldHVybiB0LnNsaWNlKDAsMyl9LHN1ZmZpeDpbIiIsIiIsIiJdfSxyZ2JhOnttaW46WzAsMCwwLDBdLG1heDpbMjU1LDI1NSwyNTUsMV0sZm10OmZ1bmN0aW9uKHQpe3JldHVybiB0LnNsaWNlKDAsNCl9LHN1ZmZpeDpbIiIsIiIsIiIsIiJdfSxyZ2JhMjU2Ontjb2xvcm1vZGVsOiJyZ2JhIix6bWluRGZsdDpbMCwwLDAsMF0sem1heERmbHQ6WzI1NSwyNTUsMjU1LDI1NV0sbWluOlswLDAsMCwwXSxtYXg6WzI1NSwyNTUsMjU1LDFdLGZtdDpmdW5jdGlvbih0KXtyZXR1cm4gdC5zbGljZSgwLDQpfSxzdWZmaXg6WyIiLCIiLCIiLCIiXX0saHNsOnttaW46WzAsMCwwXSxtYXg6WzM2MCwxMDAsMTAwXSxmbXQ6ZnVuY3Rpb24odCl7dmFyIGU9dC5zbGljZSgwLDMpO3JldHVybiBlWzFdPWVbMV0rIiUiLGVbMl09ZVsyXSsiJSIsZX0sc3VmZml4OlsiXHhiMCIsIiUiLCIlIl19LGhzbGE6e21pbjpbMCwwLDAsMF0sbWF4OlszNjAsMTAwLDEwMCwxXSxmbXQ6ZnVuY3Rpb24odCl7dmFyIGU9dC5zbGljZSgwLDQpO3JldHVybiBlWzFdPWVbMV0rIiUiLGVbMl09ZVsyXSsiJSIsZX0sc3VmZml4OlsiXHhiMCIsIiUiLCIlIiwiIl19fSxwaXhlbGF0ZWRTdHlsZTpbImltYWdlLXJlbmRlcmluZzogb3B0aW1pemVTcGVlZCIsImltYWdlLXJlbmRlcmluZzogLW1vei1jcmlzcC1lZGdlcyIsImltYWdlLXJlbmRlcmluZzogLW8tY3Jpc3AtZWRnZXMiLCJpbWFnZS1yZW5kZXJpbmc6IC13ZWJraXQtb3B0aW1pemUtY29udHJhc3QiLCJpbWFnZS1yZW5kZXJpbmc6IG9wdGltaXplLWNvbnRyYXN0IiwiaW1hZ2UtcmVuZGVyaW5nOiBjcmlzcC1lZGdlcyIsImltYWdlLXJlbmRlcmluZzogcGl4ZWxhdGVkIiwiIl0uam9pbigiOyAiKX19LHt9XSw4NTc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuL2F0dHJpYnV0ZXMiKSxhPXQoIi4vY29uc3RhbnRzIiksbz10KCIuLi8uLi9zbmFwc2hvdC9oZWxwZXJzIikuSU1BR0VfVVJMX1BSRUZJWDtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiByKHIsYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxpLHIsYSl9cigic291cmNlIiksZS5zb3VyY2UmJiFlLnNvdXJjZS5tYXRjaChvKSYmZGVsZXRlIGUuc291cmNlLGUuX2hhc1NvdXJjZT0hIWUuc291cmNlO3ZhciBzLGw9cigieiIpOyhlLl9oYXNaPSEodm9pZCAwPT09bHx8IWwubGVuZ3RofHwhbFswXXx8IWxbMF0ubGVuZ3RoKSxlLl9oYXNafHxlLl9oYXNTb3VyY2UpPyhyKCJ4MCIpLHIoInkwIikscigiZHgiKSxyKCJkeSIpLGUuX2hhc1o/KHIoImNvbG9ybW9kZWwiLCJyZ2IiKSxyKCJ6bWluIiwocz1hLmNvbG9ybW9kZWxbZS5jb2xvcm1vZGVsXSkuem1pbkRmbHR8fHMubWluKSxyKCJ6bWF4IixzLnptYXhEZmx0fHxzLm1heCkpOmUuX2hhc1NvdXJjZSYmKGUuY29sb3Jtb2RlbD0icmdiYTI1NiIscz1hLmNvbG9ybW9kZWxbZS5jb2xvcm1vZGVsXSxlLnptaW49cy56bWluRGZsdCxlLnptYXg9cy56bWF4RGZsdCkscigienNtb290aCIpLHIoInRleHQiKSxyKCJob3ZlcnRleHQiKSxyKCJob3ZlcnRlbXBsYXRlIiksZS5fbGVuZ3RoPW51bGwpOmUudmlzaWJsZT0hMX19LHsiLi4vLi4vbGliIjo1MTUsIi4uLy4uL3NuYXBzaG90L2hlbHBlcnMiOjY1MSwiLi9hdHRyaWJ1dGVzIjo4NTQsIi4vY29uc3RhbnRzIjo4NTZ9XSw4NTg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuInhWYWwiaW4gZSYmKHQueD1lLnhWYWwpLCJ5VmFsImluIGUmJih0Lnk9ZS55VmFsKSxlLnhhJiYodC54YXhpcz1lLnhhKSxlLnlhJiYodC55YXhpcz1lLnlhKSx0LmNvbG9yPWUuY29sb3IsdC5jb2xvcm1vZGVsPWUudHJhY2UuY29sb3Jtb2RlbCx0Lnp8fCh0Lno9ZS5jb2xvciksdH19LHt9XSw4NTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgicHJvYmUtaW1hZ2Utc2l6ZS9zeW5jIiksaT10KCIuLi8uLi9zbmFwc2hvdC9oZWxwZXJzIikuSU1BR0VfVVJMX1BSRUZJWCxhPXQoImJ1ZmZlci8iKS5CdWZmZXI7ci5nZXRJbWFnZVNpemU9ZnVuY3Rpb24odCl7dmFyIGU9dC5yZXBsYWNlKGksIiIpLHI9bmV3IGEoZSwiYmFzZTY0Iik7cmV0dXJuIG4ocil9fSx7Ii4uLy4uL3NuYXBzaG90L2hlbHBlcnMiOjY1MSwiYnVmZmVyLyI6ODUsInByb2JlLWltYWdlLXNpemUvc3luYyI6Mjc3fV0sODYwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvZngiKSxpPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi9jb25zdGFudHMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBvPXQuY2RbMF0scz1vLnRyYWNlLGw9dC54YSxjPXQueWE7aWYoIShuLmluYm94KGUtby54MCxlLShvLngwK28udypzLmR4KSwwKT4wfHxuLmluYm94KHItby55MCxyLShvLnkwK28uaCpzLmR5KSwwKT4wKSl7dmFyIHUsZj1NYXRoLmZsb29yKChlLW8ueDApL3MuZHgpLGg9TWF0aC5mbG9vcihNYXRoLmFicyhyLW8ueTApL3MuZHkpO2lmKHMuX2hhc1o/dT1vLnpbaF1bZl06cy5faGFzU291cmNlJiYodT1zLl9jYW52YXMuZWwuZ2V0Q29udGV4dCgiMmQiLHt3aWxsUmVhZEZyZXF1ZW50bHk6ITB9KS5nZXRJbWFnZURhdGEoZixoLDEsMSkuZGF0YSksdSl7dmFyIHAsZD1vLmhpfHxzLmhvdmVyaW5mbztpZihkKXt2YXIgbT1kLnNwbGl0KCIrIik7LTEhPT1tLmluZGV4T2YoImFsbCIpJiYobT1bImNvbG9yIl0pLC0xIT09bS5pbmRleE9mKCJjb2xvciIpJiYocD0hMCl9dmFyIGcsdj1hLmNvbG9ybW9kZWxbcy5jb2xvcm1vZGVsXSx5PXYuY29sb3Jtb2RlbHx8cy5jb2xvcm1vZGVsLHg9eS5sZW5ndGgsYj1zLl9zY2FsZXIodSksXz12LnN1ZmZpeCx3PVtdOyhzLmhvdmVydGVtcGxhdGV8fHApJiYody5wdXNoKCJbIitbYlswXStfWzBdLGJbMV0rX1sxXSxiWzJdK19bMl1dLmpvaW4oIiwgIikpLDQ9PT14JiZ3LnB1c2goIiwgIitiWzNdK19bM10pLHcucHVzaCgiXSIpLHc9dy5qb2luKCIiKSx0LmV4dHJhVGV4dD15LnRvVXBwZXJDYXNlKCkrIjogIit3KSxBcnJheS5pc0FycmF5KHMuaG92ZXJ0ZXh0KSYmQXJyYXkuaXNBcnJheShzLmhvdmVydGV4dFtoXSk/Zz1zLmhvdmVydGV4dFtoXVtmXTpBcnJheS5pc0FycmF5KHMudGV4dCkmJkFycmF5LmlzQXJyYXkocy50ZXh0W2hdKSYmKGc9cy50ZXh0W2hdW2ZdKTt2YXIgVD1jLmMycChvLnkwKyhoKy41KSpzLmR5KSxrPW8ueDArKGYrLjUpKnMuZHgsQT1vLnkwKyhoKy41KSpzLmR5LE09IlsiK3Uuc2xpY2UoMCxzLmNvbG9ybW9kZWwubGVuZ3RoKS5qb2luKCIsICIpKyJdIjtyZXR1cm5baS5leHRlbmRGbGF0KHQse2luZGV4OltoLGZdLHgwOmwuYzJwKG8ueDArZipzLmR4KSx4MTpsLmMycChvLngwKyhmKzEpKnMuZHgpLHkwOlQseTE6VCxjb2xvcjpiLHhWYWw6ayx4TGFiZWxWYWw6ayx5VmFsOkEseUxhYmVsVmFsOkEsekxhYmVsVmFsOk0sdGV4dDpnLGhvdmVydGVtcGxhdGVMYWJlbHM6e3pMYWJlbDpNLGNvbG9yTGFiZWw6dywiY29sb3JbMF1MYWJlbCI6YlswXStfWzBdLCJjb2xvclsxXUxhYmVsIjpiWzFdK19bMV0sImNvbG9yWzJdTGFiZWwiOmJbMl0rX1syXSwiY29sb3JbM11MYWJlbCI6YlszXStfWzNdfX0pXX19fX0seyIuLi8uLi9jb21wb25lbnRzL2Z4Ijo0MDcsIi4uLy4uL2xpYiI6NTE1LCIuL2NvbnN0YW50cyI6ODU2fV0sODYxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksY2FsYzp0KCIuL2NhbGMiKSxwbG90OnQoIi4vcGxvdCIpLHN0eWxlOnQoIi4vc3R5bGUiKSxob3ZlclBvaW50czp0KCIuL2hvdmVyIiksZXZlbnREYXRhOnQoIi4vZXZlbnRfZGF0YSIpLG1vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJpbWFnZSIsYmFzZVBsb3RNb2R1bGU6dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuIiksY2F0ZWdvcmllczpbImNhcnRlc2lhbiIsInN2ZyIsIjJkTWFwIiwibm9Tb3J0aW5nQnlWYWx1ZSJdLGFuaW1hdGFibGU6ITEsbWV0YTp7fX19LHsiLi4vLi4vcGxvdHMvY2FydGVzaWFuIjo1NzgsIi4vYXR0cmlidXRlcyI6ODU0LCIuL2NhbGMiOjg1NSwiLi9kZWZhdWx0cyI6ODU3LCIuL2V2ZW50X2RhdGEiOjg1OCwiLi9ob3ZlciI6ODYwLCIuL3Bsb3QiOjg2MiwiLi9zdHlsZSI6ODYzfV0sODYyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4uLy4uL2xpYiIpLGE9aS5zdHJUcmFuc2xhdGUsbz10KCIuLi8uLi9jb25zdGFudHMveG1sbnNfbmFtZXNwYWNlcyIpLHM9dCgiLi9jb25zdGFudHMiKSxsPWkuaXNJT1MoKXx8aS5pc1NhZmFyaSgpfHxpLmlzSUUoKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYyl7dmFyIHU9ZS54YXhpcyxmPWUueWF4aXMsaD0hKGx8fHQuX2NvbnRleHQuX2V4cG9ydGVkUGxvdCk7aS5tYWtlVHJhY2VHcm91cHMoYyxyLCJpbSIpLmVhY2goKGZ1bmN0aW9uKGUpe3ZhciByPW4uc2VsZWN0KHRoaXMpLGw9ZVswXSxjPWwudHJhY2UscD0oImZhc3QiPT09Yy56c21vb3RofHwhMT09PWMuenNtb290aCYmaCkmJiFjLl9oYXNaJiZjLl9oYXNTb3VyY2UmJiJsaW5lYXIiPT09dS50eXBlJiYibGluZWFyIj09PWYudHlwZTtjLl9yZWFsSW1hZ2U9cDt2YXIgZCxtLGcsdix5LHgsYj1sLnosXz1sLngwLHc9bC55MCxUPWwudyxrPWwuaCxBPWMuZHgsTT1jLmR5O2Zvcih4PTA7dm9pZCAwPT09ZCYmeDxUOylkPXUuYzJwKF8reCpBKSx4Kys7Zm9yKHg9VDt2b2lkIDA9PT1tJiZ4PjA7KW09dS5jMnAoXyt4KkEpLHgtLTtmb3IoeD0wO3ZvaWQgMD09PXYmJng8azspdj1mLmMycCh3K3gqTSkseCsrO2Zvcih4PWs7dm9pZCAwPT09eSYmeD4wOyl5PWYuYzJwKHcreCpNKSx4LS07aWYobTxkJiYoZz1tLG09ZCxkPWcpLHk8diYmKGc9dix2PXkseT1nKSwhcCl7ZD1NYXRoLm1heCgtLjUqdS5fbGVuZ3RoLGQpLG09TWF0aC5taW4oMS41KnUuX2xlbmd0aCxtKSx2PU1hdGgubWF4KC0uNSpmLl9sZW5ndGgsdikseT1NYXRoLm1pbigxLjUqZi5fbGVuZ3RoLHkpfXZhciBTPU1hdGgucm91bmQobS1kKSxFPU1hdGgucm91bmQoeS12KTtpZihTPD0wfHxFPD0wKXtyLnNlbGVjdEFsbCgiaW1hZ2UiKS5kYXRhKFtdKS5leGl0KCkucmVtb3ZlKCl9ZWxzZXt2YXIgTD1yLnNlbGVjdEFsbCgiaW1hZ2UiKS5kYXRhKFtlXSk7TC5lbnRlcigpLmFwcGVuZCgic3ZnOmltYWdlIikuYXR0cih7eG1sbnM6by5zdmcscHJlc2VydmVBc3BlY3RSYXRpbzoibm9uZSJ9KSxMLmV4aXQoKS5yZW1vdmUoKTt2YXIgQz0hMT09PWMuenNtb290aD9zLnBpeGVsYXRlZFN0eWxlOiIiO2lmKHApe3ZhciBQPWkuc2ltcGxlTWFwKHUucmFuZ2UsdS5yMmwpLEk9aS5zaW1wbGVNYXAoZi5yYW5nZSxmLnIybCksTz1QWzFdPFBbMF0sej1JWzFdPklbMF07aWYoT3x8eil7dmFyIEQ9ZCtTLzIsUj12K0UvMjtDKz0idHJhbnNmb3JtOiIrYShEKyJweCIsUisicHgiKSsic2NhbGUoIisoTz8tMToxKSsiLCIrKHo/LTE6MSkrIikiK2EoLUQrInB4IiwtUisicHgiKSsiOyJ9fUwuYXR0cigic3R5bGUiLEMpO3ZhciBGPW5ldyBQcm9taXNlKChmdW5jdGlvbih0KXtpZihjLl9oYXNaKXQoKTtlbHNlIGlmKGMuX2hhc1NvdXJjZSlpZihjLl9jYW52YXMmJmMuX2NhbnZhcy5lbC53aWR0aD09PVQmJmMuX2NhbnZhcy5lbC5oZWlnaHQ9PT1rJiZjLl9jYW52YXMuc291cmNlPT09Yy5zb3VyY2UpdCgpO2Vsc2V7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7ZS53aWR0aD1ULGUuaGVpZ2h0PWs7dmFyIHI9ZS5nZXRDb250ZXh0KCIyZCIse3dpbGxSZWFkRnJlcXVlbnRseTohMH0pO2MuX2ltYWdlPWMuX2ltYWdlfHxuZXcgSW1hZ2U7dmFyIG49Yy5faW1hZ2U7bi5vbmxvYWQ9ZnVuY3Rpb24oKXtyLmRyYXdJbWFnZShuLDAsMCksYy5fY2FudmFzPXtlbDplLHNvdXJjZTpjLnNvdXJjZX0sdCgpfSxuLnNldEF0dHJpYnV0ZSgic3JjIixjLnNvdXJjZSl9fSkpLnRoZW4oKGZ1bmN0aW9uKCl7dmFyIHQ7aWYoYy5faGFzWil0PUIoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGJbZV1bdF19KSkudG9EYXRhVVJMKCJpbWFnZS9wbmciKTtlbHNlIGlmKGMuX2hhc1NvdXJjZSlpZihwKXQ9Yy5zb3VyY2U7ZWxzZXt2YXIgZT1jLl9jYW52YXMuZWwuZ2V0Q29udGV4dCgiMmQiLHt3aWxsUmVhZEZyZXF1ZW50bHk6ITB9KS5nZXRJbWFnZURhdGEoMCwwLFQsaykuZGF0YTt0PUIoKGZ1bmN0aW9uKHQscil7dmFyIG49NCoocipUK3QpO3JldHVybltlW25dLGVbbisxXSxlW24rMl0sZVtuKzNdXX0pKS50b0RhdGFVUkwoImltYWdlL3BuZyIpfUwuYXR0cih7InhsaW5rOmhyZWYiOnQsaGVpZ2h0OkUsd2lkdGg6Uyx4OmQseTp2fSl9KSk7dC5fcHJvbWlzZXMucHVzaChGKX1mdW5jdGlvbiBCKHQpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO2Uud2lkdGg9UyxlLmhlaWdodD1FO3ZhciByLG49ZS5nZXRDb250ZXh0KCIyZCIse3dpbGxSZWFkRnJlcXVlbnRseTohMH0pLGE9ZnVuY3Rpb24odCl7cmV0dXJuIGkuY29uc3RyYWluKE1hdGgucm91bmQodS5jMnAoXyt0KkEpLWQpLDAsUyl9LG89ZnVuY3Rpb24odCl7cmV0dXJuIGkuY29uc3RyYWluKE1hdGgucm91bmQoZi5jMnAodyt0Kk0pLXYpLDAsRSl9LGg9cy5jb2xvcm1vZGVsW2MuY29sb3Jtb2RlbF0scD1oLmNvbG9ybW9kZWx8fGMuY29sb3Jtb2RlbCxtPWguZm10O2Zvcih4PTA7eDxsLnc7eCsrKXt2YXIgZz1hKHgpLHk9YSh4KzEpO2lmKHkhPT1nJiYhaXNOYU4oeSkmJiFpc05hTihnKSlmb3IodmFyIGI9MDtiPGwuaDtiKyspe3ZhciBUPW8oYiksaz1vKGIrMSk7az09PVR8fGlzTmFOKGspfHxpc05hTihUKXx8IXQoeCxiKXx8KHI9Yy5fc2NhbGVyKHQoeCxiKSksbi5maWxsU3R5bGU9cj9wKyIoIittKHIpLmpvaW4oIiwiKSsiKSI6InJnYmEoMCwwLDAsMCkiLG4uZmlsbFJlY3QoZyxULHktZyxrLVQpKX19cmV0dXJuIGV9fSkpfX0seyIuLi8uLi9jb25zdGFudHMveG1sbnNfbmFtZXNwYWNlcyI6NDkyLCIuLi8uLi9saWIiOjUxNSwiLi9jb25zdGFudHMiOjg1NiwiQHBsb3RseS9kMyI6NTh9XSw4NjM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtuLnNlbGVjdCh0KS5zZWxlY3RBbGwoIi5pbSBpbWFnZSIpLnN0eWxlKCJvcGFjaXR5IiwoZnVuY3Rpb24odCl7cmV0dXJuIHRbMF0udHJhY2Uub3BhY2l0eX0pKX19LHsiQHBsb3RseS9kMyI6NTh9XSw4NjQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsaT10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRGVlcCxhPXQoIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiKS5vdmVycmlkZUFsbCxvPXQoIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyIpLHM9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIiksbD10KCIuLi8uLi9wbG90cy9kb21haW4iKS5hdHRyaWJ1dGVzLGM9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2xheW91dF9hdHRyaWJ1dGVzIiksdT10KCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIikudGVtcGxhdGVkQXJyYXksZj10KCIuLi8uLi9jb25zdGFudHMvZGVsdGEuanMiKSxoPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2Zvcm1hdF9hdHRyaWJ1dGVzIikuZGVzY3JpcHRpb25Pbmx5TnVtYmVycyxwPW8oe2VkaXRUeXBlOiJwbG90Iixjb2xvckVkaXRUeXBlOiJwbG90In0pLGQ9e2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6InBsb3QifSxsaW5lOntjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6cy5kZWZhdWx0TGluZSxlZGl0VHlwZToicGxvdCJ9LHdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MCxlZGl0VHlwZToicGxvdCJ9LGVkaXRUeXBlOiJjYWxjIn0sdGhpY2tuZXNzOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6MSxlZGl0VHlwZToicGxvdCJ9LGVkaXRUeXBlOiJjYWxjIn0sbT17dmFsVHlwZToiaW5mb19hcnJheSIsaXRlbXM6W3t2YWxUeXBlOiJudW1iZXIiLGVkaXRUeXBlOiJwbG90In0se3ZhbFR5cGU6Im51bWJlciIsZWRpdFR5cGU6InBsb3QifV0sZWRpdFR5cGU6InBsb3QifSxnPXUoInN0ZXAiLGkoe30sZCx7cmFuZ2U6bX0pKTtlLmV4cG9ydHM9e21vZGU6e3ZhbFR5cGU6ImZsYWdsaXN0IixlZGl0VHlwZToiY2FsYyIsZmxhZ3M6WyJudW1iZXIiLCJkZWx0YSIsImdhdWdlIl0sZGZsdDoibnVtYmVyIn0sdmFsdWU6e3ZhbFR5cGU6Im51bWJlciIsZWRpdFR5cGU6ImNhbGMiLGFuaW06ITB9LGFsaWduOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJsZWZ0IiwiY2VudGVyIiwicmlnaHQiXSxlZGl0VHlwZToicGxvdCJ9LGRvbWFpbjpsKHtuYW1lOiJpbmRpY2F0b3IiLHRyYWNlOiEwLGVkaXRUeXBlOiJjYWxjIn0pLHRpdGxlOnt0ZXh0Ont2YWxUeXBlOiJzdHJpbmciLGVkaXRUeXBlOiJwbG90In0sYWxpZ246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImxlZnQiLCJjZW50ZXIiLCJyaWdodCJdLGVkaXRUeXBlOiJwbG90In0sZm9udDpuKHt9LHAse30pLGVkaXRUeXBlOiJwbG90In0sbnVtYmVyOnt2YWx1ZWZvcm1hdDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGVkaXRUeXBlOiJwbG90IixkZXNjcmlwdGlvbjpoKCJ2YWx1ZSIpfSxmb250Om4oe30scCx7fSkscHJlZml4Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6InBsb3QifSxzdWZmaXg6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIixlZGl0VHlwZToicGxvdCJ9LGVkaXRUeXBlOiJwbG90In0sZGVsdGE6e3JlZmVyZW5jZTp7dmFsVHlwZToibnVtYmVyIixlZGl0VHlwZToiY2FsYyJ9LHBvc2l0aW9uOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiXSxkZmx0OiJib3R0b20iLGVkaXRUeXBlOiJwbG90In0scmVsYXRpdmU6e3ZhbFR5cGU6ImJvb2xlYW4iLGVkaXRUeXBlOiJwbG90IixkZmx0OiExfSx2YWx1ZWZvcm1hdDp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToicGxvdCIsZGVzY3JpcHRpb246aCgidmFsdWUiKX0saW5jcmVhc2luZzp7c3ltYm9sOnt2YWxUeXBlOiJzdHJpbmciLGRmbHQ6Zi5JTkNSRUFTSU5HLlNZTUJPTCxlZGl0VHlwZToicGxvdCJ9LGNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpmLklOQ1JFQVNJTkcuQ09MT1IsZWRpdFR5cGU6InBsb3QifSxlZGl0VHlwZToicGxvdCJ9LGRlY3JlYXNpbmc6e3N5bWJvbDp7dmFsVHlwZToic3RyaW5nIixkZmx0OmYuREVDUkVBU0lORy5TWU1CT0wsZWRpdFR5cGU6InBsb3QifSxjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6Zi5ERUNSRUFTSU5HLkNPTE9SLGVkaXRUeXBlOiJwbG90In0sZWRpdFR5cGU6InBsb3QifSxmb250Om4oe30scCx7fSkscHJlZml4Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6InBsb3QifSxzdWZmaXg6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIixlZGl0VHlwZToicGxvdCJ9LGVkaXRUeXBlOiJjYWxjIn0sZ2F1Z2U6e3NoYXBlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIixlZGl0VHlwZToicGxvdCIsZGZsdDoiYW5ndWxhciIsdmFsdWVzOlsiYW5ndWxhciIsImJ1bGxldCJdfSxiYXI6aSh7fSxkLHtjb2xvcjp7ZGZsdDoiZ3JlZW4ifX0pLGJnY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToicGxvdCJ9LGJvcmRlcmNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpzLmRlZmF1bHRMaW5lLGVkaXRUeXBlOiJwbG90In0sYm9yZGVyd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxLGVkaXRUeXBlOiJwbG90In0sYXhpczphKHtyYW5nZTptLHZpc2libGU6bih7fSxjLnZpc2libGUse2RmbHQ6ITB9KSx0aWNrbW9kZTpjLnRpY2ttb2RlLG50aWNrczpjLm50aWNrcyx0aWNrMDpjLnRpY2swLGR0aWNrOmMuZHRpY2ssdGlja3ZhbHM6Yy50aWNrdmFscyx0aWNrdGV4dDpjLnRpY2t0ZXh0LHRpY2tzOm4oe30sYy50aWNrcyx7ZGZsdDoib3V0c2lkZSJ9KSx0aWNrbGVuOmMudGlja2xlbix0aWNrd2lkdGg6Yy50aWNrd2lkdGgsdGlja2NvbG9yOmMudGlja2NvbG9yLHRpY2tsYWJlbHN0ZXA6Yy50aWNrbGFiZWxzdGVwLHNob3d0aWNrbGFiZWxzOmMuc2hvd3RpY2tsYWJlbHMsdGlja2ZvbnQ6byh7fSksdGlja2FuZ2xlOmMudGlja2FuZ2xlLHRpY2tmb3JtYXQ6Yy50aWNrZm9ybWF0LHRpY2tmb3JtYXRzdG9wczpjLnRpY2tmb3JtYXRzdG9wcyx0aWNrcHJlZml4OmMudGlja3ByZWZpeCxzaG93dGlja3ByZWZpeDpjLnNob3d0aWNrcHJlZml4LHRpY2tzdWZmaXg6Yy50aWNrc3VmZml4LHNob3d0aWNrc3VmZml4OmMuc2hvd3RpY2tzdWZmaXgsc2VwYXJhdGV0aG91c2FuZHM6Yy5zZXBhcmF0ZXRob3VzYW5kcyxleHBvbmVudGZvcm1hdDpjLmV4cG9uZW50Zm9ybWF0LG1pbmV4cG9uZW50OmMubWluZXhwb25lbnQsc2hvd2V4cG9uZW50OmMuc2hvd2V4cG9uZW50LGVkaXRUeXBlOiJwbG90In0sInBsb3QiKSxzdGVwczpnLHRocmVzaG9sZDp7bGluZTp7Y29sb3I6bih7fSxkLmxpbmUuY29sb3Ise30pLHdpZHRoOm4oe30sZC5saW5lLndpZHRoLHtkZmx0OjF9KSxlZGl0VHlwZToicGxvdCJ9LHRoaWNrbmVzczpuKHt9LGQudGhpY2tuZXNzLHtkZmx0Oi44NX0pLHZhbHVlOnt2YWxUeXBlOiJudW1iZXIiLGVkaXRUeXBlOiJjYWxjIixkZmx0OiExfSxlZGl0VHlwZToicGxvdCJ9LGVkaXRUeXBlOiJwbG90In19fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IvYXR0cmlidXRlcyI6MzY2LCIuLi8uLi9jb25zdGFudHMvZGVsdGEuanMiOjQ4NSwiLi4vLi4vbGliL2V4dGVuZCI6NTA1LCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIjo1NDgsIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiOjU1NSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfZm9ybWF0X2F0dHJpYnV0ZXMiOjU2OSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2xheW91dF9hdHRyaWJ1dGVzIjo1NzksIi4uLy4uL3Bsb3RzL2RvbWFpbiI6NTkzLCIuLi8uLi9wbG90cy9mb250X2F0dHJpYnV0ZXMiOjU5NH1dLDg2NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9wbG90cyIpO3IubmFtZT0iaW5kaWNhdG9yIixyLnBsb3Q9ZnVuY3Rpb24odCxlLGksYSl7bi5wbG90QmFzZVBsb3Qoci5uYW1lLHQsZSxpLGEpfSxyLmNsZWFuPWZ1bmN0aW9uKHQsZSxpLGEpe24uY2xlYW5CYXNlUGxvdChyLm5hbWUsdCxlLGksYSl9fSx7Ii4uLy4uL3Bsb3RzL3Bsb3RzIjo2Mjh9XSw4NjY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtjYWxjOmZ1bmN0aW9uKHQsZSl7dmFyIHI9W10sbj1lLnZhbHVlOyJudW1iZXIiIT10eXBlb2YgZS5fbGFzdFZhbHVlJiYoZS5fbGFzdFZhbHVlPWUudmFsdWUpO3ZhciBpPWUuX2xhc3RWYWx1ZSxhPWk7cmV0dXJuIGUuX2hhc0RlbHRhJiYibnVtYmVyIj09dHlwZW9mIGUuZGVsdGEucmVmZXJlbmNlJiYoYT1lLmRlbHRhLnJlZmVyZW5jZSksclswXT17eTpuLGxhc3RZOmksZGVsdGE6bi1hLHJlbGF0aXZlRGVsdGE6KG4tYSkvYX0scn19fSx7fV0sODY3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17ZGVmYXVsdE51bWJlckZvbnRTaXplOjgwLGJ1bGxldE51bWJlckRvbWFpblNpemU6LjI1LGJ1bGxldFBhZGRpbmc6LjAyNSxpbm5lclJhZGl1czouNzUsdmFsdWVUaGlja25lc3M6LjUsdGl0bGVQYWRkaW5nOjUsaG9yaXpvbnRhbFBhZGRpbmc6MTB9fSx7fV0sODY4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9wbG90cy9kb21haW4iKS5kZWZhdWx0cyxvPXQoIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKSxzPXQoIi4uLy4uL3Bsb3RzL2FycmF5X2NvbnRhaW5lcl9kZWZhdWx0cyIpLGw9dCgiLi9jb25zdGFudHMuanMiKSxjPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi90aWNrX3ZhbHVlX2RlZmF1bHRzIiksdT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vdGlja19tYXJrX2RlZmF1bHRzIiksZj10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vdGlja19sYWJlbF9kZWZhdWx0cyIpLGg9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL3ByZWZpeF9zdWZmaXhfZGVmYXVsdHMiKTtmdW5jdGlvbiBwKHQsZSl7ZnVuY3Rpb24gcihyLGEpe3JldHVybiBuLmNvZXJjZSh0LGUsaS5nYXVnZS5zdGVwcyxyLGEpfXIoImNvbG9yIikscigibGluZS5jb2xvciIpLHIoImxpbmUud2lkdGgiKSxyKCJyYW5nZSIpLHIoInRoaWNrbmVzcyIpfWUuZXhwb3J0cz17c3VwcGx5RGVmYXVsdHM6ZnVuY3Rpb24odCxlLHIsZCl7ZnVuY3Rpb24gbShyLGEpe3JldHVybiBuLmNvZXJjZSh0LGUsaSxyLGEpfWEoZSxkLG0pLG0oIm1vZGUiKSxlLl9oYXNOdW1iZXI9LTEhPT1lLm1vZGUuaW5kZXhPZigibnVtYmVyIiksZS5faGFzRGVsdGE9LTEhPT1lLm1vZGUuaW5kZXhPZigiZGVsdGEiKSxlLl9oYXNHYXVnZT0tMSE9PWUubW9kZS5pbmRleE9mKCJnYXVnZSIpO3ZhciBnPW0oInZhbHVlIik7ZS5fcmFuZ2U9WzAsIm51bWJlciI9PXR5cGVvZiBnPzEuNSpnOjFdO3ZhciB2LHkseCxiLF8sdyxUPW5ldyBBcnJheSgyKTtmdW5jdGlvbiBrKHQsZSl7cmV0dXJuIG4uY29lcmNlKHgsYixpLmdhdWdlLHQsZSl9ZnVuY3Rpb24gQSh0LGUpe3JldHVybiBuLmNvZXJjZShfLHcsaS5nYXVnZS5heGlzLHQsZSl9aWYoZS5faGFzTnVtYmVyJiYobSgibnVtYmVyLnZhbHVlZm9ybWF0IiksbSgibnVtYmVyLmZvbnQuY29sb3IiLGQuZm9udC5jb2xvciksbSgibnVtYmVyLmZvbnQuZmFtaWx5IixkLmZvbnQuZmFtaWx5KSxtKCJudW1iZXIuZm9udC5zaXplIiksdm9pZCAwPT09ZS5udW1iZXIuZm9udC5zaXplJiYoZS5udW1iZXIuZm9udC5zaXplPWwuZGVmYXVsdE51bWJlckZvbnRTaXplLFRbMF09ITApLG0oIm51bWJlci5wcmVmaXgiKSxtKCJudW1iZXIuc3VmZml4Iiksdj1lLm51bWJlci5mb250LnNpemUpLGUuX2hhc0RlbHRhJiYobSgiZGVsdGEuZm9udC5jb2xvciIsZC5mb250LmNvbG9yKSxtKCJkZWx0YS5mb250LmZhbWlseSIsZC5mb250LmZhbWlseSksbSgiZGVsdGEuZm9udC5zaXplIiksdm9pZCAwPT09ZS5kZWx0YS5mb250LnNpemUmJihlLmRlbHRhLmZvbnQuc2l6ZT0oZS5faGFzTnVtYmVyPy41OjEpKih2fHxsLmRlZmF1bHROdW1iZXJGb250U2l6ZSksVFsxXT0hMCksbSgiZGVsdGEucmVmZXJlbmNlIixlLnZhbHVlKSxtKCJkZWx0YS5yZWxhdGl2ZSIpLG0oImRlbHRhLnZhbHVlZm9ybWF0IixlLmRlbHRhLnJlbGF0aXZlPyIyJSI6IiIpLG0oImRlbHRhLmluY3JlYXNpbmcuc3ltYm9sIiksbSgiZGVsdGEuaW5jcmVhc2luZy5jb2xvciIpLG0oImRlbHRhLmRlY3JlYXNpbmcuc3ltYm9sIiksbSgiZGVsdGEuZGVjcmVhc2luZy5jb2xvciIpLG0oImRlbHRhLnBvc2l0aW9uIiksbSgiZGVsdGEucHJlZml4IiksbSgiZGVsdGEuc3VmZml4IikseT1lLmRlbHRhLmZvbnQuc2l6ZSksZS5fc2NhbGVOdW1iZXJzPSghZS5faGFzTnVtYmVyfHxUWzBdKSYmKCFlLl9oYXNEZWx0YXx8VFsxXSl8fCExLG0oInRpdGxlLmZvbnQuY29sb3IiLGQuZm9udC5jb2xvciksbSgidGl0bGUuZm9udC5mYW1pbHkiLGQuZm9udC5mYW1pbHkpLG0oInRpdGxlLmZvbnQuc2l6ZSIsLjI1Kih2fHx5fHxsLmRlZmF1bHROdW1iZXJGb250U2l6ZSkpLG0oInRpdGxlLnRleHQiKSxlLl9oYXNHYXVnZSl7KHg9dC5nYXVnZSl8fCh4PXt9KSxiPW8ubmV3Q29udGFpbmVyKGUsImdhdWdlIiksaygic2hhcGUiKSwoZS5faXNCdWxsZXQ9ImJ1bGxldCI9PT1lLmdhdWdlLnNoYXBlKXx8bSgidGl0bGUuYWxpZ24iLCJjZW50ZXIiKSwoZS5faXNBbmd1bGFyPSJhbmd1bGFyIj09PWUuZ2F1Z2Uuc2hhcGUpfHxtKCJhbGlnbiIsImNlbnRlciIpLGsoImJnY29sb3IiLGQucGFwZXJfYmdjb2xvciksaygiYm9yZGVyd2lkdGgiKSxrKCJib3JkZXJjb2xvciIpLGsoImJhci5jb2xvciIpLGsoImJhci5saW5lLmNvbG9yIiksaygiYmFyLmxpbmUud2lkdGgiKSxrKCJiYXIudGhpY2tuZXNzIixsLnZhbHVlVGhpY2tuZXNzKigiYnVsbGV0Ij09PWUuZ2F1Z2Uuc2hhcGU/LjU6MSkpLHMoeCxiLHtuYW1lOiJzdGVwcyIsaGFuZGxlSXRlbURlZmF1bHRzOnB9KSxrKCJ0aHJlc2hvbGQudmFsdWUiKSxrKCJ0aHJlc2hvbGQudGhpY2tuZXNzIiksaygidGhyZXNob2xkLmxpbmUud2lkdGgiKSxrKCJ0aHJlc2hvbGQubGluZS5jb2xvciIpLF89e30seCYmKF89eC5heGlzfHx7fSksdz1vLm5ld0NvbnRhaW5lcihiLCJheGlzIiksQSgidmlzaWJsZSIpLGUuX3JhbmdlPUEoInJhbmdlIixlLl9yYW5nZSk7dmFyIE09e291dGVyVGlja3M6ITB9O2MoXyx3LEEsImxpbmVhciIpLGgoXyx3LEEsImxpbmVhciIsTSksZihfLHcsQSwibGluZWFyIixNKSx1KF8sdyxBLE0pfWVsc2UgbSgidGl0bGUuYWxpZ24iLCJjZW50ZXIiKSxtKCJhbGlnbiIsImNlbnRlciIpLGUuX2lzQW5ndWxhcj1lLl9pc0J1bGxldD0hMTtlLl9sZW5ndGg9bnVsbH19fSx7Ii4uLy4uL2xpYiI6NTE1LCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIjo1NTUsIi4uLy4uL3Bsb3RzL2FycmF5X2NvbnRhaW5lcl9kZWZhdWx0cyI6NTYxLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vcHJlZml4X3N1ZmZpeF9kZWZhdWx0cyI6NTgzLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vdGlja19sYWJlbF9kZWZhdWx0cyI6NTg3LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vdGlja19tYXJrX2RlZmF1bHRzIjo1ODgsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi90aWNrX3ZhbHVlX2RlZmF1bHRzIjo1ODksIi4uLy4uL3Bsb3RzL2RvbWFpbiI6NTkzLCIuL2F0dHJpYnV0ZXMiOjg2NCwiLi9jb25zdGFudHMuanMiOjg2N31dLDg2OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e21vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJpbmRpY2F0b3IiLGJhc2VQbG90TW9kdWxlOnQoIi4vYmFzZV9wbG90IiksY2F0ZWdvcmllczpbInN2ZyIsIm5vT3BhY2l0eSIsIm5vSG92ZXIiXSxhbmltYXRhYmxlOiEwLGF0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLnN1cHBseURlZmF1bHRzLGNhbGM6dCgiLi9jYWxjIikuY2FsYyxwbG90OnQoIi4vcGxvdCIpLG1ldGE6e319fSx7Ii4vYXR0cmlidXRlcyI6ODY0LCIuL2Jhc2VfcGxvdCI6ODY1LCIuL2NhbGMiOjg2NiwiLi9kZWZhdWx0cyI6ODY4LCIuL3Bsb3QiOjg3MH1dLDg3MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCJkMy1pbnRlcnBvbGF0ZSIpLmludGVycG9sYXRlLGE9dCgiZDMtaW50ZXJwb2xhdGUiKS5pbnRlcnBvbGF0ZU51bWJlcixvPXQoIi4uLy4uL2xpYiIpLHM9by5zdHJTY2FsZSxsPW8uc3RyVHJhbnNsYXRlLGM9by5yYWQyZGVnLHU9dCgiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCIpLk1JRF9TSElGVCxmPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLGg9dCgiLi9jb25zdGFudHMiKSxwPXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpLGQ9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxtPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2RlZmF1bHRzIiksZz10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vcG9zaXRpb25fZGVmYXVsdHMiKSx2PXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9sYXlvdXRfYXR0cmlidXRlcyIpLHk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLHg9e2xlZnQ6InN0YXJ0IixjZW50ZXI6Im1pZGRsZSIscmlnaHQ6ImVuZCJ9LGI9e2xlZnQ6MCxjZW50ZXI6LjUscmlnaHQ6MX0sXz0vW3l6YWZwblx4YjVta01HVFBFWlldLztmdW5jdGlvbiB3KHQpe3JldHVybiB0JiZ0LmR1cmF0aW9uPjB9ZnVuY3Rpb24gVCh0KXt0LmVhY2goKGZ1bmN0aW9uKHQpe3kuc3Ryb2tlKG4uc2VsZWN0KHRoaXMpLHQubGluZS5jb2xvcil9KSkuZWFjaCgoZnVuY3Rpb24odCl7eS5maWxsKG4uc2VsZWN0KHRoaXMpLHQuY29sb3IpfSkpLnN0eWxlKCJzdHJva2Utd2lkdGgiLChmdW5jdGlvbih0KXtyZXR1cm4gdC5saW5lLndpZHRofSkpfWZ1bmN0aW9uIGsodCxlLHIpe3ZhciBuPXQuX2Z1bGxMYXlvdXQsaT1vLmV4dGVuZEZsYXQoe3R5cGU6ImxpbmVhciIsdGlja3M6Im91dHNpZGUiLHJhbmdlOnIsc2hvd2xpbmU6ITB9LGUpLGE9e3R5cGU6ImxpbmVhciIsX2lkOiJ4IitlLl9pZH0scz17bGV0dGVyOiJ4Iixmb250Om4uZm9udCxub0hvdmVyOiEwLG5vVGlja3NvbjohMH07ZnVuY3Rpb24gbCh0LGUpe3JldHVybiBvLmNvZXJjZShpLGEsdix0LGUpfXJldHVybiBtKGksYSxsLHMsbiksZyhpLGEsbCxzKSxhfWZ1bmN0aW9uIEEodCxlLHIpe3JldHVybltNYXRoLm1pbihlL3Qud2lkdGgsci90LmhlaWdodCksdCxlKyJ4IityXX1mdW5jdGlvbiBNKHQsZSxyLGkpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJ0ZXh0Iiksbz1uLnNlbGVjdChhKTtyZXR1cm4gby50ZXh0KHQpLmF0dHIoIngiLDApLmF0dHIoInkiLDApLmF0dHIoInRleHQtYW5jaG9yIixyKS5hdHRyKCJkYXRhLXVuZm9ybWF0dGVkIix0KS5jYWxsKHAuY29udmVydFRvVHNwYW5zLGkpLmNhbGwoZi5mb250LGUpLGYuYkJveChvLm5vZGUoKSl9ZnVuY3Rpb24gUyh0LGUscixuLGksYSl7dmFyIHM9Il9jYWNoZSIrZTt0W3NdJiZ0W3NdLmtleT09PWl8fCh0W3NdPXtrZXk6aSx2YWx1ZTpyfSk7dmFyIGw9by5hZ2dOdW1zKGEsbnVsbCxbdFtzXS52YWx1ZSxuXSwyKTtyZXR1cm4gdFtzXS52YWx1ZT1sLGx9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG0pe3ZhciBnLHY9dC5fZnVsbExheW91dDt3KHIpJiZtJiYoZz1tKCkpLG8ubWFrZVRyYWNlR3JvdXBzKHYuX2luZGljYXRvcmxheWVyLGUsInRyYWNlIikuZWFjaCgoZnVuY3Rpb24oZSl7dmFyIG0sRSxMLEMsUCxJPWVbMF0udHJhY2UsTz1uLnNlbGVjdCh0aGlzKSx6PUkuX2hhc0dhdWdlLEQ9SS5faXNBbmd1bGFyLFI9SS5faXNCdWxsZXQsRj1JLmRvbWFpbixCPXt3OnYuX3NpemUudyooRi54WzFdLUYueFswXSksaDp2Ll9zaXplLmgqKEYueVsxXS1GLnlbMF0pLGw6di5fc2l6ZS5sK3YuX3NpemUudypGLnhbMF0scjp2Ll9zaXplLnIrdi5fc2l6ZS53KigxLUYueFsxXSksdDp2Ll9zaXplLnQrdi5fc2l6ZS5oKigxLUYueVsxXSksYjp2Ll9zaXplLmIrdi5fc2l6ZS5oKkYueVswXX0sTj1CLmwrQi53LzIsaj1CLnQrQi5oLzIsVT1NYXRoLm1pbihCLncvMixCLmgpLFY9aC5pbm5lclJhZGl1cypVLEg9SS5hbGlnbnx8ImNlbnRlciI7aWYoRT1qLHope2lmKEQmJihtPU4sRT1qK1UvMixMPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbih0LGUpe3ZhciByPU1hdGguc3FydCh0LndpZHRoLzIqKHQud2lkdGgvMikrdC5oZWlnaHQqdC5oZWlnaHQpO3JldHVybltlL3IsdCxlXX0odCwuOSpWKX0pLFIpe3ZhciBxPWguYnVsbGV0UGFkZGluZyxHPTEtaC5idWxsZXROdW1iZXJEb21haW5TaXplK3E7bT1CLmwrKEcrKDEtRykqYltIXSkqQi53LEw9ZnVuY3Rpb24odCl7cmV0dXJuIEEodCwoaC5idWxsZXROdW1iZXJEb21haW5TaXplLXEpKkIudyxCLmgpfX19ZWxzZSBtPUIubCtiW0hdKkIudyxMPWZ1bmN0aW9uKHQpe3JldHVybiBBKHQsQi53LEIuaCl9OyFmdW5jdGlvbih0LGUscixpKXt2YXIgYyx1LGgsbT1yWzBdLnRyYWNlLGc9aS5udW1iZXJzWCx2PWkubnVtYmVyc1ksVD1tLmFsaWdufHwiY2VudGVyIixBPXhbVF0sRT1pLnRyYW5zaXRpb25PcHRzLEw9aS5vbkNvbXBsZXRlLEM9by5lbnN1cmVTaW5nbGUoZSwiZyIsIm51bWJlcnMiKSxQPVtdO20uX2hhc051bWJlciYmUC5wdXNoKCJudW1iZXIiKTttLl9oYXNEZWx0YSYmKFAucHVzaCgiZGVsdGEiKSwibGVmdCI9PT1tLmRlbHRhLnBvc2l0aW9uJiZQLnJldmVyc2UoKSk7dmFyIEk9Qy5zZWxlY3RBbGwoInRleHQiKS5kYXRhKFApO2Z1bmN0aW9uIE8oZSxyLG4saSl7aWYoIWUubWF0Y2goInMiKXx8bj49MD09aT49MHx8cihuKS5zbGljZSgtMSkubWF0Y2goXyl8fHIoaSkuc2xpY2UoLTEpLm1hdGNoKF8pKXJldHVybiByO3ZhciBhPWUuc2xpY2UoKS5yZXBsYWNlKCJzIiwiZiIpLnJlcGxhY2UoL1xkKy8sKGZ1bmN0aW9uKHQpe3JldHVybiBwYXJzZUludCh0KS0xfSkpLG89ayh0LHt0aWNrZm9ybWF0OmF9KTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguYWJzKHQpPDE/ZC50aWNrVGV4dChvLHQpLnRleHQ6cih0KX19SS5lbnRlcigpLmFwcGVuZCgidGV4dCIpLEkuYXR0cigidGV4dC1hbmNob3IiLChmdW5jdGlvbigpe3JldHVybiBBfSkpLmF0dHIoImNsYXNzIiwoZnVuY3Rpb24odCl7cmV0dXJuIHR9KSkuYXR0cigieCIsbnVsbCkuYXR0cigieSIsbnVsbCkuYXR0cigiZHgiLG51bGwpLmF0dHIoImR5IixudWxsKSxJLmV4aXQoKS5yZW1vdmUoKTt2YXIgeixEPW0ubW9kZSttLmFsaWduO20uX2hhc0RlbHRhJiYoej1mdW5jdGlvbigpe3ZhciBlPWsodCx7dGlja2Zvcm1hdDptLmRlbHRhLnZhbHVlZm9ybWF0fSxtLl9yYW5nZSk7ZS5zZXRTY2FsZSgpLGQucHJlcFRpY2tzKGUpO3ZhciBpPWZ1bmN0aW9uKHQpe3JldHVybiBkLnRpY2tUZXh0KGUsdCkudGV4dH0sbz1tLmRlbHRhLnN1ZmZpeCxzPW0uZGVsdGEucHJlZml4LGw9ZnVuY3Rpb24odCl7cmV0dXJuIG0uZGVsdGEucmVsYXRpdmU/dC5yZWxhdGl2ZURlbHRhOnQuZGVsdGF9LGM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gMD09PXR8fCJudW1iZXIiIT10eXBlb2YgdHx8aXNOYU4odCk/Ii0iOih0PjA/bS5kZWx0YS5pbmNyZWFzaW5nLnN5bWJvbDptLmRlbHRhLmRlY3JlYXNpbmcuc3ltYm9sKStzK2UodCkrb30saD1mdW5jdGlvbih0KXtyZXR1cm4gdC5kZWx0YT49MD9tLmRlbHRhLmluY3JlYXNpbmcuY29sb3I6bS5kZWx0YS5kZWNyZWFzaW5nLmNvbG9yfTt2b2lkIDA9PT1tLl9kZWx0YUxhc3RWYWx1ZSYmKG0uX2RlbHRhTGFzdFZhbHVlPWwoclswXSkpO3ZhciBnPUMuc2VsZWN0KCJ0ZXh0LmRlbHRhIik7ZnVuY3Rpb24gdigpe2cudGV4dChjKGwoclswXSksaSkpLmNhbGwoeS5maWxsLGgoclswXSkpLmNhbGwocC5jb252ZXJ0VG9Uc3BhbnMsdCl9cmV0dXJuIGcuY2FsbChmLmZvbnQsbS5kZWx0YS5mb250KS5jYWxsKHkuZmlsbCxoKHtkZWx0YTptLl9kZWx0YUxhc3RWYWx1ZX0pKSx3KEUpP2cudHJhbnNpdGlvbigpLmR1cmF0aW9uKEUuZHVyYXRpb24pLmVhc2UoRS5lYXNpbmcpLnR3ZWVuKCJ0ZXh0IiwoZnVuY3Rpb24oKXt2YXIgdD1uLnNlbGVjdCh0aGlzKSxlPWwoclswXSksbz1tLl9kZWx0YUxhc3RWYWx1ZSxzPU8obS5kZWx0YS52YWx1ZWZvcm1hdCxpLG8sZSksdT1hKG8sZSk7cmV0dXJuIG0uX2RlbHRhTGFzdFZhbHVlPWUsZnVuY3Rpb24oZSl7dC50ZXh0KGModShlKSxzKSksdC5jYWxsKHkuZmlsbCxoKHtkZWx0YTp1KGUpfSkpfX0pKS5lYWNoKCJlbmQiLChmdW5jdGlvbigpe3YoKSxMJiZMKCl9KSkuZWFjaCgiaW50ZXJydXB0IiwoZnVuY3Rpb24oKXt2KCksTCYmTCgpfSkpOnYoKSx1PU0oYyhsKHJbMF0pLGkpLG0uZGVsdGEuZm9udCxBLHQpLGd9KCksRCs9bS5kZWx0YS5wb3NpdGlvbittLmRlbHRhLmZvbnQuc2l6ZSttLmRlbHRhLmZvbnQuZmFtaWx5K20uZGVsdGEudmFsdWVmb3JtYXQsRCs9bS5kZWx0YS5pbmNyZWFzaW5nLnN5bWJvbCttLmRlbHRhLmRlY3JlYXNpbmcuc3ltYm9sLGg9dSk7bS5faGFzTnVtYmVyJiYoIWZ1bmN0aW9uKCl7dmFyIGU9ayh0LHt0aWNrZm9ybWF0Om0ubnVtYmVyLnZhbHVlZm9ybWF0fSxtLl9yYW5nZSk7ZS5zZXRTY2FsZSgpLGQucHJlcFRpY2tzKGUpO3ZhciBpPWZ1bmN0aW9uKHQpe3JldHVybiBkLnRpY2tUZXh0KGUsdCkudGV4dH0sbz1tLm51bWJlci5zdWZmaXgscz1tLm51bWJlci5wcmVmaXgsbD1DLnNlbGVjdCgidGV4dC5udW1iZXIiKTtmdW5jdGlvbiB1KCl7dmFyIGU9Im51bWJlciI9PXR5cGVvZiByWzBdLnk/cytpKHJbMF0ueSkrbzoiLSI7bC50ZXh0KGUpLmNhbGwoZi5mb250LG0ubnVtYmVyLmZvbnQpLmNhbGwocC5jb252ZXJ0VG9Uc3BhbnMsdCl9dyhFKT9sLnRyYW5zaXRpb24oKS5kdXJhdGlvbihFLmR1cmF0aW9uKS5lYXNlKEUuZWFzaW5nKS5lYWNoKCJlbmQiLChmdW5jdGlvbigpe3UoKSxMJiZMKCl9KSkuZWFjaCgiaW50ZXJydXB0IiwoZnVuY3Rpb24oKXt1KCksTCYmTCgpfSkpLmF0dHJUd2VlbigidGV4dCIsKGZ1bmN0aW9uKCl7dmFyIHQ9bi5zZWxlY3QodGhpcyksZT1hKHJbMF0ubGFzdFksclswXS55KTttLl9sYXN0VmFsdWU9clswXS55O3ZhciBsPU8obS5udW1iZXIudmFsdWVmb3JtYXQsaSxyWzBdLmxhc3RZLHJbMF0ueSk7cmV0dXJuIGZ1bmN0aW9uKHIpe3QudGV4dChzK2woZShyKSkrbyl9fSkpOnUoKSxjPU0ocytpKHJbMF0ueSkrbyxtLm51bWJlci5mb250LEEsdCl9KCksRCs9bS5udW1iZXIuZm9udC5zaXplK20ubnVtYmVyLmZvbnQuZmFtaWx5K20ubnVtYmVyLnZhbHVlZm9ybWF0K20ubnVtYmVyLnN1ZmZpeCttLm51bWJlci5wcmVmaXgsaD1jKTtpZihtLl9oYXNEZWx0YSYmbS5faGFzTnVtYmVyKXt2YXIgUixGLEI9WyhjLmxlZnQrYy5yaWdodCkvMiwoYy50b3ArYy5ib3R0b20pLzJdLE49Wyh1LmxlZnQrdS5yaWdodCkvMiwodS50b3ArdS5ib3R0b20pLzJdLGo9Ljc1Km0uZGVsdGEuZm9udC5zaXplOyJsZWZ0Ij09PW0uZGVsdGEucG9zaXRpb24mJihSPVMobSwiZGVsdGFQb3MiLDAsLTEqKGMud2lkdGgqYlttLmFsaWduXSt1LndpZHRoKigxLWJbbS5hbGlnbl0pK2opLEQsTWF0aC5taW4pLEY9QlsxXS1OWzFdLGg9e3dpZHRoOmMud2lkdGgrdS53aWR0aCtqLGhlaWdodDpNYXRoLm1heChjLmhlaWdodCx1LmhlaWdodCksbGVmdDp1LmxlZnQrUixyaWdodDpjLnJpZ2h0LHRvcDpNYXRoLm1pbihjLnRvcCx1LnRvcCtGKSxib3R0b206TWF0aC5tYXgoYy5ib3R0b20sdS5ib3R0b20rRil9KSwicmlnaHQiPT09bS5kZWx0YS5wb3NpdGlvbiYmKFI9UyhtLCJkZWx0YVBvcyIsMCxjLndpZHRoKigxLWJbbS5hbGlnbl0pK3Uud2lkdGgqYlttLmFsaWduXStqLEQsTWF0aC5tYXgpLEY9QlsxXS1OWzFdLGg9e3dpZHRoOmMud2lkdGgrdS53aWR0aCtqLGhlaWdodDpNYXRoLm1heChjLmhlaWdodCx1LmhlaWdodCksbGVmdDpjLmxlZnQscmlnaHQ6dS5yaWdodCtSLHRvcDpNYXRoLm1pbihjLnRvcCx1LnRvcCtGKSxib3R0b206TWF0aC5tYXgoYy5ib3R0b20sdS5ib3R0b20rRil9KSwiYm90dG9tIj09PW0uZGVsdGEucG9zaXRpb24mJihSPW51bGwsRj11LmhlaWdodCxoPXt3aWR0aDpNYXRoLm1heChjLndpZHRoLHUud2lkdGgpLGhlaWdodDpjLmhlaWdodCt1LmhlaWdodCxsZWZ0Ok1hdGgubWluKGMubGVmdCx1LmxlZnQpLHJpZ2h0Ok1hdGgubWF4KGMucmlnaHQsdS5yaWdodCksdG9wOmMuYm90dG9tLWMuaGVpZ2h0LGJvdHRvbTpjLmJvdHRvbSt1LmhlaWdodH0pLCJ0b3AiPT09bS5kZWx0YS5wb3NpdGlvbiYmKFI9bnVsbCxGPWMudG9wLGg9e3dpZHRoOk1hdGgubWF4KGMud2lkdGgsdS53aWR0aCksaGVpZ2h0OmMuaGVpZ2h0K3UuaGVpZ2h0LGxlZnQ6TWF0aC5taW4oYy5sZWZ0LHUubGVmdCkscmlnaHQ6TWF0aC5tYXgoYy5yaWdodCx1LnJpZ2h0KSx0b3A6Yy5ib3R0b20tYy5oZWlnaHQtdS5oZWlnaHQsYm90dG9tOmMuYm90dG9tfSksei5hdHRyKHtkeDpSLGR5OkZ9KX0obS5faGFzTnVtYmVyfHxtLl9oYXNEZWx0YSkmJkMuYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24oKXt2YXIgdD1pLm51bWJlcnNTY2FsZXIoaCk7RCs9dFsyXTt2YXIgZSxyPVMobSwibnVtYmVyc1NjYWxlIiwxLHRbMF0sRCxNYXRoLm1pbik7bS5fc2NhbGVOdW1iZXJzfHwocj0xKSxlPW0uX2lzQW5ndWxhcj92LXIqaC5ib3R0b206di1yKihoLnRvcCtoLmJvdHRvbSkvMixtLl9udW1iZXJzVG9wPXIqaC50b3ArZTt2YXIgbj1oW1RdOyJjZW50ZXIiPT09VCYmKG49KGgubGVmdCtoLnJpZ2h0KS8yKTt2YXIgYT1nLXIqbjtyZXR1cm4gYT1TKG0sIm51bWJlcnNUcmFuc2xhdGUiLDAsYSxELE1hdGgubWF4KSxsKGEsZSkrcyhyKX0pKX0odCxPLGUse251bWJlcnNYOm0sbnVtYmVyc1k6RSxudW1iZXJzU2NhbGVyOkwsdHJhbnNpdGlvbk9wdHM6cixvbkNvbXBsZXRlOmd9KSx6JiYoQz17cmFuZ2U6SS5nYXVnZS5heGlzLnJhbmdlLGNvbG9yOkkuZ2F1Z2UuYmdjb2xvcixsaW5lOntjb2xvcjpJLmdhdWdlLmJvcmRlcmNvbG9yLHdpZHRoOjB9LHRoaWNrbmVzczoxfSxQPXtyYW5nZTpJLmdhdWdlLmF4aXMucmFuZ2UsY29sb3I6InJnYmEoMCwgMCwgMCwgMCkiLGxpbmU6e2NvbG9yOkkuZ2F1Z2UuYm9yZGVyY29sb3Isd2lkdGg6SS5nYXVnZS5ib3JkZXJ3aWR0aH0sdGhpY2tuZXNzOjF9KTt2YXIgWT1PLnNlbGVjdEFsbCgiZy5hbmd1bGFyIikuZGF0YShEP2U6W10pO1kuZXhpdCgpLnJlbW92ZSgpO3ZhciBXPU8uc2VsZWN0QWxsKCJnLmFuZ3VsYXJheGlzIikuZGF0YShEP2U6W10pO1cuZXhpdCgpLnJlbW92ZSgpLEQmJmZ1bmN0aW9uKHQsZSxyLGEpe3ZhciBvLHMsZixoLHA9clswXS50cmFjZSxtPWEuc2l6ZSxnPWEucmFkaXVzLHY9YS5pbm5lclJhZGl1cyx5PWEuZ2F1Z2VCZyx4PWEuZ2F1Z2VPdXRsaW5lLGI9W20ubCttLncvMixtLnQrbS5oLzIrZy8yXSxfPWEuZ2F1Z2UsQT1hLmxheWVyLE09YS50cmFuc2l0aW9uT3B0cyxTPWEub25Db21wbGV0ZSxFPU1hdGguUEkvMjtmdW5jdGlvbiBMKHQpe3ZhciBlPXAuZ2F1Z2UuYXhpcy5yYW5nZVswXSxyPSh0LWUpLyhwLmdhdWdlLmF4aXMucmFuZ2VbMV0tZSkqTWF0aC5QSS1FO3JldHVybiByPC1FPy1FOnI+RT9FOnJ9ZnVuY3Rpb24gQyh0KXtyZXR1cm4gbi5zdmcuYXJjKCkuaW5uZXJSYWRpdXMoKHYrZykvMi10LzIqKGctdikpLm91dGVyUmFkaXVzKCh2K2cpLzIrdC8yKihnLXYpKS5zdGFydEFuZ2xlKC1FKX1mdW5jdGlvbiBQKHQpe3QuYXR0cigiZCIsKGZ1bmN0aW9uKHQpe3JldHVybiBDKHQudGhpY2tuZXNzKS5zdGFydEFuZ2xlKEwodC5yYW5nZVswXSkpLmVuZEFuZ2xlKEwodC5yYW5nZVsxXSkpKCl9KSl9Xy5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoImFuZ3VsYXIiLCEwKSxfLmF0dHIoInRyYW5zZm9ybSIsbChiWzBdLGJbMV0pKSxBLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgiYW5ndWxhcmF4aXMiLCEwKS5jbGFzc2VkKCJjcmlzcCIsITApLEEuc2VsZWN0QWxsKCJnLnhhbmd1bGFyYXhpc3RpY2sscGF0aCx0ZXh0IikucmVtb3ZlKCksKG89ayh0LHAuZ2F1Z2UuYXhpcykpLnR5cGU9ImxpbmVhciIsby5yYW5nZT1wLmdhdWdlLmF4aXMucmFuZ2Usby5faWQ9Inhhbmd1bGFyYXhpcyIsby50aWNrbGFiZWxvdmVyZmxvdz0iYWxsb3ciLG8uc2V0U2NhbGUoKTt2YXIgST1mdW5jdGlvbih0KXtyZXR1cm4oby5yYW5nZVswXS10LngpLyhvLnJhbmdlWzFdLW8ucmFuZ2VbMF0pKk1hdGguUEkrTWF0aC5QSX0sTz17fSx6PWQubWFrZUxhYmVsRm5zKG8sMCkubGFiZWxTdGFuZG9mZjtPLnhGbj1mdW5jdGlvbih0KXt2YXIgZT1JKHQpO3JldHVybiBNYXRoLmNvcyhlKSp6fSxPLnlGbj1mdW5jdGlvbih0KXt2YXIgZT1JKHQpLHI9TWF0aC5zaW4oZSk+MD8uMjoxO3JldHVybi1NYXRoLnNpbihlKSooeit0LmZvbnRTaXplKnIpK01hdGguYWJzKE1hdGguY29zKGUpKSoodC5mb250U2l6ZSp1KX0sTy5hbmNob3JGbj1mdW5jdGlvbih0KXt2YXIgZT1JKHQpLHI9TWF0aC5jb3MoZSk7cmV0dXJuIE1hdGguYWJzKHIpPC4xPyJtaWRkbGUiOnI+MD8ic3RhcnQiOiJlbmQifSxPLmhlaWdodEZuPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1JKHQpO3JldHVybi0uNSooMStNYXRoLnNpbihuKSkqcn07dmFyIEQ9ZnVuY3Rpb24odCl7cmV0dXJuIGwoYlswXStnKk1hdGguY29zKHQpLGJbMV0tZypNYXRoLnNpbih0KSl9O2Y9ZnVuY3Rpb24odCl7cmV0dXJuIEQoSSh0KSl9O2lmKHM9ZC5jYWxjVGlja3MobyksaD1kLmdldFRpY2tTaWducyhvKVsyXSxvLnZpc2libGUpe2g9Imluc2lkZSI9PT1vLnRpY2tzPy0xOjE7dmFyIFI9KG8ubGluZXdpZHRofHwxKS8yO2QuZHJhd1RpY2tzKHQsbyx7dmFsczpzLGxheWVyOkEscGF0aDoiTSIraCpSKyIsMGgiK2gqby50aWNrbGVuLHRyYW5zRm46ZnVuY3Rpb24odCl7dmFyIGU9SSh0KTtyZXR1cm4gRChlKSsicm90YXRlKCIrLWMoZSkrIikifX0pLGQuZHJhd0xhYmVscyh0LG8se3ZhbHM6cyxsYXllcjpBLHRyYW5zRm46ZixsYWJlbEZuczpPfSl9dmFyIEY9W3ldLmNvbmNhdChwLmdhdWdlLnN0ZXBzKSxCPV8uc2VsZWN0QWxsKCJnLmJnLWFyYyIpLmRhdGEoRik7Qi5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoImJnLWFyYyIsITApLmFwcGVuZCgicGF0aCIpLEIuc2VsZWN0KCJwYXRoIikuY2FsbChQKS5jYWxsKFQpLEIuZXhpdCgpLnJlbW92ZSgpO3ZhciBOPUMocC5nYXVnZS5iYXIudGhpY2tuZXNzKSxqPV8uc2VsZWN0QWxsKCJnLnZhbHVlLWFyYyIpLmRhdGEoW3AuZ2F1Z2UuYmFyXSk7ai5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoInZhbHVlLWFyYyIsITApLmFwcGVuZCgicGF0aCIpO3ZhciBVPWouc2VsZWN0KCJwYXRoIik7dyhNKT8oVS50cmFuc2l0aW9uKCkuZHVyYXRpb24oTS5kdXJhdGlvbikuZWFzZShNLmVhc2luZykuZWFjaCgiZW5kIiwoZnVuY3Rpb24oKXtTJiZTKCl9KSkuZWFjaCgiaW50ZXJydXB0IiwoZnVuY3Rpb24oKXtTJiZTKCl9KSkuYXR0clR3ZWVuKCJkIiwoVj1OLEg9TChyWzBdLmxhc3RZKSxxPUwoclswXS55KSxmdW5jdGlvbigpe3ZhciB0PWkoSCxxKTtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIFYuZW5kQW5nbGUodChlKSkoKX19KSkscC5fbGFzdFZhbHVlPXJbMF0ueSk6VS5hdHRyKCJkIiwibnVtYmVyIj09dHlwZW9mIHJbMF0ueT9OLmVuZEFuZ2xlKEwoclswXS55KSk6Ik0wLDBaIik7dmFyIFYsSCxxO1UuY2FsbChUKSxqLmV4aXQoKS5yZW1vdmUoKSxGPVtdO3ZhciBHPXAuZ2F1Z2UudGhyZXNob2xkLnZhbHVlOyhHfHwwPT09RykmJkYucHVzaCh7cmFuZ2U6W0csR10sY29sb3I6cC5nYXVnZS50aHJlc2hvbGQuY29sb3IsbGluZTp7Y29sb3I6cC5nYXVnZS50aHJlc2hvbGQubGluZS5jb2xvcix3aWR0aDpwLmdhdWdlLnRocmVzaG9sZC5saW5lLndpZHRofSx0aGlja25lc3M6cC5nYXVnZS50aHJlc2hvbGQudGhpY2tuZXNzfSk7dmFyIFk9Xy5zZWxlY3RBbGwoImcudGhyZXNob2xkLWFyYyIpLmRhdGEoRik7WS5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoInRocmVzaG9sZC1hcmMiLCEwKS5hcHBlbmQoInBhdGgiKSxZLnNlbGVjdCgicGF0aCIpLmNhbGwoUCkuY2FsbChUKSxZLmV4aXQoKS5yZW1vdmUoKTt2YXIgVz1fLnNlbGVjdEFsbCgiZy5nYXVnZS1vdXRsaW5lIikuZGF0YShbeF0pO1cuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJnYXVnZS1vdXRsaW5lIiwhMCkuYXBwZW5kKCJwYXRoIiksVy5zZWxlY3QoInBhdGgiKS5jYWxsKFApLmNhbGwoVCksVy5leGl0KCkucmVtb3ZlKCl9KHQsMCxlLHtyYWRpdXM6VSxpbm5lclJhZGl1czpWLGdhdWdlOlksbGF5ZXI6VyxzaXplOkIsZ2F1Z2VCZzpDLGdhdWdlT3V0bGluZTpQLHRyYW5zaXRpb25PcHRzOnIsb25Db21wbGV0ZTpnfSk7dmFyIFg9Ty5zZWxlY3RBbGwoImcuYnVsbGV0IikuZGF0YShSP2U6W10pO1guZXhpdCgpLnJlbW92ZSgpO3ZhciBaPU8uc2VsZWN0QWxsKCJnLmJ1bGxldGF4aXMiKS5kYXRhKFI/ZTpbXSk7Wi5leGl0KCkucmVtb3ZlKCksUiYmZnVuY3Rpb24odCxlLHIsbil7dmFyIGksYSxvLHMsYyx1PXJbMF0udHJhY2UsZj1uLmdhdWdlLHA9bi5sYXllcixtPW4uZ2F1Z2VCZyxnPW4uZ2F1Z2VPdXRsaW5lLHY9bi5zaXplLHg9dS5kb21haW4sYj1uLnRyYW5zaXRpb25PcHRzLF89bi5vbkNvbXBsZXRlO2YuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJidWxsZXQiLCEwKSxmLmF0dHIoInRyYW5zZm9ybSIsbCh2Lmwsdi50KSkscC5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoImJ1bGxldGF4aXMiLCEwKS5jbGFzc2VkKCJjcmlzcCIsITApLHAuc2VsZWN0QWxsKCJnLnhidWxsZXRheGlzdGljayxwYXRoLHRleHQiKS5yZW1vdmUoKTt2YXIgQT12LmgsTT11LmdhdWdlLmJhci50aGlja25lc3MqQSxTPXgueFswXSxFPXgueFswXSsoeC54WzFdLXgueFswXSkqKHUuX2hhc051bWJlcnx8dS5faGFzRGVsdGE/MS1oLmJ1bGxldE51bWJlckRvbWFpblNpemU6MSk7KGk9ayh0LHUuZ2F1Z2UuYXhpcykpLl9pZD0ieGJ1bGxldGF4aXMiLGkuZG9tYWluPVtTLEVdLGkuc2V0U2NhbGUoKSxhPWQuY2FsY1RpY2tzKGkpLG89ZC5tYWtlVHJhbnNUaWNrRm4oaSkscz1kLmdldFRpY2tTaWducyhpKVsyXSxjPXYudCt2LmgsaS52aXNpYmxlJiYoZC5kcmF3VGlja3ModCxpLHt2YWxzOiJpbnNpZGUiPT09aS50aWNrcz9kLmNsaXBFbmRzKGksYSk6YSxsYXllcjpwLHBhdGg6ZC5tYWtlVGlja1BhdGgoaSxjLHMpLHRyYW5zRm46b30pLGQuZHJhd0xhYmVscyh0LGkse3ZhbHM6YSxsYXllcjpwLHRyYW5zRm46byxsYWJlbEZuczpkLm1ha2VMYWJlbEZucyhpLGMpfSkpO2Z1bmN0aW9uIEwodCl7dC5hdHRyKCJ3aWR0aCIsKGZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLm1heCgwLGkuYzJwKHQucmFuZ2VbMV0pLWkuYzJwKHQucmFuZ2VbMF0pKX0pKS5hdHRyKCJ4IiwoZnVuY3Rpb24odCl7cmV0dXJuIGkuYzJwKHQucmFuZ2VbMF0pfSkpLmF0dHIoInkiLChmdW5jdGlvbih0KXtyZXR1cm4uNSooMS10LnRoaWNrbmVzcykqQX0pKS5hdHRyKCJoZWlnaHQiLChmdW5jdGlvbih0KXtyZXR1cm4gdC50aGlja25lc3MqQX0pKX12YXIgQz1bbV0uY29uY2F0KHUuZ2F1Z2Uuc3RlcHMpLFA9Zi5zZWxlY3RBbGwoImcuYmctYnVsbGV0IikuZGF0YShDKTtQLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgiYmctYnVsbGV0IiwhMCkuYXBwZW5kKCJyZWN0IiksUC5zZWxlY3QoInJlY3QiKS5jYWxsKEwpLmNhbGwoVCksUC5leGl0KCkucmVtb3ZlKCk7dmFyIEk9Zi5zZWxlY3RBbGwoImcudmFsdWUtYnVsbGV0IikuZGF0YShbdS5nYXVnZS5iYXJdKTtJLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgidmFsdWUtYnVsbGV0IiwhMCkuYXBwZW5kKCJyZWN0IiksSS5zZWxlY3QoInJlY3QiKS5hdHRyKCJoZWlnaHQiLE0pLmF0dHIoInkiLChBLU0pLzIpLmNhbGwoVCksdyhiKT9JLnNlbGVjdCgicmVjdCIpLnRyYW5zaXRpb24oKS5kdXJhdGlvbihiLmR1cmF0aW9uKS5lYXNlKGIuZWFzaW5nKS5lYWNoKCJlbmQiLChmdW5jdGlvbigpe18mJl8oKX0pKS5lYWNoKCJpbnRlcnJ1cHQiLChmdW5jdGlvbigpe18mJl8oKX0pKS5hdHRyKCJ3aWR0aCIsTWF0aC5tYXgoMCxpLmMycChNYXRoLm1pbih1LmdhdWdlLmF4aXMucmFuZ2VbMV0sclswXS55KSkpKTpJLnNlbGVjdCgicmVjdCIpLmF0dHIoIndpZHRoIiwibnVtYmVyIj09dHlwZW9mIHJbMF0ueT9NYXRoLm1heCgwLGkuYzJwKE1hdGgubWluKHUuZ2F1Z2UuYXhpcy5yYW5nZVsxXSxyWzBdLnkpKSk6MCk7SS5leGl0KCkucmVtb3ZlKCk7dmFyIE89ci5maWx0ZXIoKGZ1bmN0aW9uKCl7cmV0dXJuIHUuZ2F1Z2UudGhyZXNob2xkLnZhbHVlfHwwPT09dS5nYXVnZS50aHJlc2hvbGQudmFsdWV9KSksej1mLnNlbGVjdEFsbCgiZy50aHJlc2hvbGQtYnVsbGV0IikuZGF0YShPKTt6LmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgidGhyZXNob2xkLWJ1bGxldCIsITApLmFwcGVuZCgibGluZSIpLHouc2VsZWN0KCJsaW5lIikuYXR0cigieDEiLGkuYzJwKHUuZ2F1Z2UudGhyZXNob2xkLnZhbHVlKSkuYXR0cigieDIiLGkuYzJwKHUuZ2F1Z2UudGhyZXNob2xkLnZhbHVlKSkuYXR0cigieTEiLCgxLXUuZ2F1Z2UudGhyZXNob2xkLnRoaWNrbmVzcykvMipBKS5hdHRyKCJ5MiIsKDEtKDEtdS5nYXVnZS50aHJlc2hvbGQudGhpY2tuZXNzKS8yKSpBKS5jYWxsKHkuc3Ryb2tlLHUuZ2F1Z2UudGhyZXNob2xkLmxpbmUuY29sb3IpLnN0eWxlKCJzdHJva2Utd2lkdGgiLHUuZ2F1Z2UudGhyZXNob2xkLmxpbmUud2lkdGgpLHouZXhpdCgpLnJlbW92ZSgpO3ZhciBEPWYuc2VsZWN0QWxsKCJnLmdhdWdlLW91dGxpbmUiKS5kYXRhKFtnXSk7RC5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoImdhdWdlLW91dGxpbmUiLCEwKS5hcHBlbmQoInJlY3QiKSxELnNlbGVjdCgicmVjdCIpLmNhbGwoTCkuY2FsbChUKSxELmV4aXQoKS5yZW1vdmUoKX0odCwwLGUse2dhdWdlOlgsbGF5ZXI6WixzaXplOkIsZ2F1Z2VCZzpDLGdhdWdlT3V0bGluZTpQLHRyYW5zaXRpb25PcHRzOnIsb25Db21wbGV0ZTpnfSk7dmFyIEo9Ty5zZWxlY3RBbGwoInRleHQudGl0bGUiKS5kYXRhKGUpO0ouZXhpdCgpLnJlbW92ZSgpLEouZW50ZXIoKS5hcHBlbmQoInRleHQiKS5jbGFzc2VkKCJ0aXRsZSIsITApLEouYXR0cigidGV4dC1hbmNob3IiLChmdW5jdGlvbigpe3JldHVybiBSP3gucmlnaHQ6eFtJLnRpdGxlLmFsaWduXX0pKS50ZXh0KEkudGl0bGUudGV4dCkuY2FsbChmLmZvbnQsSS50aXRsZS5mb250KS5jYWxsKHAuY29udmVydFRvVHNwYW5zLHQpLEouYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24oKXt2YXIgdCxlPUIubCtCLncqYltJLnRpdGxlLmFsaWduXSxyPWgudGl0bGVQYWRkaW5nLG49Zi5iQm94KEoubm9kZSgpKTtpZih6KXtpZihEKWlmKEkuZ2F1Z2UuYXhpcy52aXNpYmxlKXQ9Zi5iQm94KFcubm9kZSgpKS50b3Atci1uLmJvdHRvbTtlbHNlIHQ9Qi50K0IuaC8yLVUvMi1uLmJvdHRvbS1yO1ImJih0PUUtKG4udG9wK24uYm90dG9tKS8yLGU9Qi5sLWguYnVsbGV0UGFkZGluZypCLncpfWVsc2UgdD1JLl9udW1iZXJzVG9wLXItbi5ib3R0b207cmV0dXJuIGwoZSx0KX0pKX0pKX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6MzY3LCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjM4OSwiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCI6NDgzLCIuLi8uLi9saWIiOjUxNSwiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIjo1NDEsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo1NjYsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2RlZmF1bHRzIjo1NjgsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9sYXlvdXRfYXR0cmlidXRlcyI6NTc5LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vcG9zaXRpb25fZGVmYXVsdHMiOjU4MiwiLi9jb25zdGFudHMiOjg2NywiQHBsb3RseS9kMyI6NTgsImQzLWludGVycG9sYXRlIjoxMTZ9XSw4NzE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2Zvcm1hdF9hdHRyaWJ1dGVzIikuYXhpc0hvdmVyRm9ybWF0LGE9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxvPXQoIi4uL21lc2gzZC9hdHRyaWJ1dGVzIikscz10KCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIiksbD10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxjPXQoIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiKS5vdmVycmlkZUFsbDt2YXIgdT1lLmV4cG9ydHM9YyhsKHt4Ont2YWxUeXBlOiJkYXRhX2FycmF5In0seTp7dmFsVHlwZToiZGF0YV9hcnJheSJ9LHo6e3ZhbFR5cGU6ImRhdGFfYXJyYXkifSx2YWx1ZTp7dmFsVHlwZToiZGF0YV9hcnJheSJ9LGlzb21pbjp7dmFsVHlwZToibnVtYmVyIn0saXNvbWF4Ont2YWxUeXBlOiJudW1iZXIifSxzdXJmYWNlOntzaG93Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwfSxjb3VudDp7dmFsVHlwZToiaW50ZWdlciIsZGZsdDoyLG1pbjoxfSxmaWxsOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6MX0scGF0dGVybjp7dmFsVHlwZToiZmxhZ2xpc3QiLGZsYWdzOlsiQSIsIkIiLCJDIiwiRCIsIkUiXSxleHRyYXM6WyJhbGwiLCJvZGQiLCJldmVuIl0sZGZsdDoiYWxsIn19LHNwYWNlZnJhbWU6e3Nob3c6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LGZpbGw6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDouMTV9fSxzbGljZXM6e3g6e3Nob3c6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LGxvY2F0aW9uczp7dmFsVHlwZToiZGF0YV9hcnJheSIsZGZsdDpbXX0sZmlsbDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0OjF9fSx5OntzaG93Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxsb2NhdGlvbnM6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGRmbHQ6W119LGZpbGw6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDoxfX0sejp7c2hvdzp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0sbG9jYXRpb25zOnt2YWxUeXBlOiJkYXRhX2FycmF5IixkZmx0OltdfSxmaWxsOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6MX19fSxjYXBzOnt4OntzaG93Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwfSxmaWxsOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6MX19LHk6e3Nob3c6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITB9LGZpbGw6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDoxfX0sejp7c2hvdzp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMH0sZmlsbDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0OjF9fX0sdGV4dDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGFycmF5T2s6ITB9LGhvdmVydGV4dDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGFycmF5T2s6ITB9LGhvdmVydGVtcGxhdGU6YSgpLHhob3ZlcmZvcm1hdDppKCJ4IikseWhvdmVyZm9ybWF0OmkoInkiKSx6aG92ZXJmb3JtYXQ6aSgieiIpLHZhbHVlaG92ZXJmb3JtYXQ6aSgidmFsdWUiLDEpLHNob3dsZWdlbmQ6bCh7fSxzLnNob3dsZWdlbmQse2RmbHQ6ITF9KX0sbigiIix7Y29sb3JBdHRyOiJgdmFsdWVgIixzaG93U2NhbGVEZmx0OiEwLGVkaXRUeXBlT3ZlcnJpZGU6ImNhbGMifSkse29wYWNpdHk6by5vcGFjaXR5LGxpZ2h0cG9zaXRpb246by5saWdodHBvc2l0aW9uLGxpZ2h0aW5nOm8ubGlnaHRpbmcsZmxhdHNoYWRpbmc6by5mbGF0c2hhZGluZyxjb250b3VyOm8uY29udG91cixob3ZlcmluZm86bCh7fSxzLmhvdmVyaW5mbyl9KSwiY2FsYyIsIm5lc3RlZCIpO3UuZmxhdHNoYWRpbmcuZGZsdD0hMCx1LmxpZ2h0aW5nLmZhY2Vub3JtYWxzZXBzaWxvbi5kZmx0PTAsdS54LmVkaXRUeXBlPXUueS5lZGl0VHlwZT11LnouZWRpdFR5cGU9dS52YWx1ZS5lZGl0VHlwZT0iY2FsYytjbGVhckF4aXNUeXBlcyIsdS50cmFuc2Zvcm1zPXZvaWQgMH0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6Mzc0LCIuLi8uLi9saWIvZXh0ZW5kIjo1MDUsIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiOjU0OCwiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyI6NTYyLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19mb3JtYXRfYXR0cmlidXRlcyI6NTY5LCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo2NDIsIi4uL21lc2gzZC9hdHRyaWJ1dGVzIjo4NzZ9XSw4NzI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2NhbGMiKSxpPXQoIi4uL3N0cmVhbXR1YmUvY2FsYyIpLnByb2Nlc3NHcmlkLGE9dCgiLi4vc3RyZWFtdHViZS9jYWxjIikuZmlsdGVyO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2UuX2xlbj1NYXRoLm1pbihlLngubGVuZ3RoLGUueS5sZW5ndGgsZS56Lmxlbmd0aCxlLnZhbHVlLmxlbmd0aCksZS5feD1hKGUueCxlLl9sZW4pLGUuX3k9YShlLnksZS5fbGVuKSxlLl96PWEoZS56LGUuX2xlbiksZS5fdmFsdWU9YShlLnZhbHVlLGUuX2xlbik7dmFyIHI9aShlKTtlLl9ncmlkRmlsbD1yLmZpbGwsZS5fWHM9ci5YcyxlLl9Zcz1yLllzLGUuX1pzPXIuWnMsZS5fbGVuPXIubGVuO2Zvcih2YXIgbz0xLzAscz0tMS8wLGw9MDtsPGUuX2xlbjtsKyspe3ZhciBjPWUuX3ZhbHVlW2xdO289TWF0aC5taW4obyxjKSxzPU1hdGgubWF4KHMsYyl9ZS5fbWluVmFsdWVzPW8sZS5fbWF4VmFsdWVzPXMsZS5fdk1pbj12b2lkIDA9PT1lLmlzb21pbnx8bnVsbD09PWUuaXNvbWluP286ZS5pc29taW4sZS5fdk1heD12b2lkIDA9PT1lLmlzb21heHx8bnVsbD09PWUuaXNvbWluP3M6ZS5pc29tYXgsbih0LGUse3ZhbHM6W2UuX3ZNaW4sZS5fdk1heF0sY29udGFpbmVyU3RyOiIiLGNMZXR0ZXI6ImMifSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jYWxjIjozNzUsIi4uL3N0cmVhbXR1YmUvY2FsYyI6MTA1NH1dLDg3MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi8uLi9zdGFja2dsX21vZHVsZXMiKS5nbF9tZXNoM2QsaT10KCIuLi8uLi9saWIvZ2xfZm9ybWF0X2NvbG9yIikucGFyc2VDb2xvclNjYWxlLGE9dCgiLi4vLi4vbGliL3N0cjJyZ2JhcnJheSIpLG89dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIikuZXh0cmFjdE9wdHMscz10KCIuLi8uLi9wbG90cy9nbDNkL3ppcDMiKSxsPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPWUubGVuZ3RoLTE7cj4wO3ItLSl7dmFyIG49TWF0aC5taW4oZVtyXSxlW3ItMV0pLGk9TWF0aC5tYXgoZVtyXSxlW3ItMV0pO2lmKGk+biYmbjx0JiZ0PD1pKXJldHVybntpZDpyLGRpc3RSYXRpbzooaS10KS8oaS1uKX19cmV0dXJue2lkOjAsZGlzdFJhdGlvOjB9fTtmdW5jdGlvbiBjKHQsZSxyKXt0aGlzLnNjZW5lPXQsdGhpcy51aWQ9cix0aGlzLm1lc2g9ZSx0aGlzLm5hbWU9IiIsdGhpcy5kYXRhPW51bGwsdGhpcy5zaG93Q29udG91cj0hMX12YXIgdT1jLnByb3RvdHlwZTt1LmhhbmRsZVBpY2s9ZnVuY3Rpb24odCl7aWYodC5vYmplY3Q9PT10aGlzLm1lc2gpe3ZhciBlPXQuZGF0YS5pbmRleCxyPXRoaXMuZGF0YS5fbWVzaFhbZV0sbj10aGlzLmRhdGEuX21lc2hZW2VdLGk9dGhpcy5kYXRhLl9tZXNoWltlXSxhPXRoaXMuZGF0YS5fWXMubGVuZ3RoLG89dGhpcy5kYXRhLl9acy5sZW5ndGgscz1sKHIsdGhpcy5kYXRhLl9YcykuaWQsYz1sKG4sdGhpcy5kYXRhLl9ZcykuaWQsdT1sKGksdGhpcy5kYXRhLl9acykuaWQsZj10LmluZGV4PXUrbypjK28qYSpzO3QudHJhY2VDb29yZGluYXRlPVt0aGlzLmRhdGEuX21lc2hYW2ZdLHRoaXMuZGF0YS5fbWVzaFlbZl0sdGhpcy5kYXRhLl9tZXNoWltmXSx0aGlzLmRhdGEuX3ZhbHVlW2ZdXTt2YXIgaD10aGlzLmRhdGEuaG92ZXJ0ZXh0fHx0aGlzLmRhdGEudGV4dDtyZXR1cm4gQXJyYXkuaXNBcnJheShoKSYmdm9pZCAwIT09aFtmXT90LnRleHRMYWJlbD1oW2ZdOmgmJih0LnRleHRMYWJlbD1oKSwhMH19LHUudXBkYXRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuc2NlbmUscj1lLmZ1bGxTY2VuZUxheW91dDtmdW5jdGlvbiBuKHQsZSxyLG4pe3JldHVybiBlLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQuZDJsKGUsMCxuKSpyfSkpfXRoaXMuZGF0YT1oKHQpO3ZhciBsPXtwb3NpdGlvbnM6cyhuKHIueGF4aXMsdC5fbWVzaFgsZS5kYXRhU2NhbGVbMF0sdC54Y2FsZW5kYXIpLG4oci55YXhpcyx0Ll9tZXNoWSxlLmRhdGFTY2FsZVsxXSx0LnljYWxlbmRhciksbihyLnpheGlzLHQuX21lc2haLGUuZGF0YVNjYWxlWzJdLHQuemNhbGVuZGFyKSksY2VsbHM6cyh0Ll9tZXNoSSx0Ll9tZXNoSix0Ll9tZXNoSyksbGlnaHRQb3NpdGlvbjpbdC5saWdodHBvc2l0aW9uLngsdC5saWdodHBvc2l0aW9uLnksdC5saWdodHBvc2l0aW9uLnpdLGFtYmllbnQ6dC5saWdodGluZy5hbWJpZW50LGRpZmZ1c2U6dC5saWdodGluZy5kaWZmdXNlLHNwZWN1bGFyOnQubGlnaHRpbmcuc3BlY3VsYXIscm91Z2huZXNzOnQubGlnaHRpbmcucm91Z2huZXNzLGZyZXNuZWw6dC5saWdodGluZy5mcmVzbmVsLHZlcnRleE5vcm1hbHNFcHNpbG9uOnQubGlnaHRpbmcudmVydGV4bm9ybWFsc2Vwc2lsb24sZmFjZU5vcm1hbHNFcHNpbG9uOnQubGlnaHRpbmcuZmFjZW5vcm1hbHNlcHNpbG9uLG9wYWNpdHk6dC5vcGFjaXR5LGNvbnRvdXJFbmFibGU6dC5jb250b3VyLnNob3csY29udG91ckNvbG9yOmEodC5jb250b3VyLmNvbG9yKS5zbGljZSgwLDMpLGNvbnRvdXJXaWR0aDp0LmNvbnRvdXIud2lkdGgsdXNlRmFjZXROb3JtYWxzOnQuZmxhdHNoYWRpbmd9LGM9byh0KTtsLnZlcnRleEludGVuc2l0eT10Ll9tZXNoSW50ZW5zaXR5LGwudmVydGV4SW50ZW5zaXR5Qm91bmRzPVtjLm1pbixjLm1heF0sbC5jb2xvcm1hcD1pKHQpLHRoaXMubWVzaC51cGRhdGUobCl9LHUuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuc2NlbmUuZ2xwbG90LnJlbW92ZSh0aGlzLm1lc2gpLHRoaXMubWVzaC5kaXNwb3NlKCl9O3ZhciBmPVsieHl6IiwieHp5IiwieXh6IiwieXp4Iiwienh5Iiwienl4Il07ZnVuY3Rpb24gaCh0KXt0Ll9tZXNoST1bXSx0Ll9tZXNoSj1bXSx0Ll9tZXNoSz1bXTt2YXIgZSxyLG4saSxhLG8scyxjPXQuc3VyZmFjZS5zaG93LHU9dC5zcGFjZWZyYW1lLnNob3csaD10LnN1cmZhY2UuZmlsbCxwPXQuc3BhY2VmcmFtZS5maWxsLGQ9ITEsbT0hMSxnPTAsdj10Ll9Ycyx5PXQuX1lzLHg9dC5fWnMsYj12Lmxlbmd0aCxfPXkubGVuZ3RoLHc9eC5sZW5ndGgsVD1mLmluZGV4T2YodC5fZ3JpZEZpbGwucmVwbGFjZSgvLS9nLCIiKS5yZXBsYWNlKC9cKy9nLCIiKSksaz1mdW5jdGlvbih0LGUscil7c3dpdGNoKFQpe2Nhc2UgNTpyZXR1cm4gcit3KmUrdypfKnQ7Y2FzZSA0OnJldHVybiByK3cqdCt3KmIqZTtjYXNlIDM6cmV0dXJuIGUrXypyK18qdyp0O2Nhc2UgMjpyZXR1cm4gZStfKnQrXypiKnI7Y2FzZSAxOnJldHVybiB0K2IqcitiKncqZTtkZWZhdWx0OnJldHVybiB0K2IqZStiKl8qcn19LEE9dC5fbWluVmFsdWVzLE09dC5fbWF4VmFsdWVzLFM9dC5fdk1pbixFPXQuX3ZNYXg7ZnVuY3Rpb24gTCh0LGUscyl7Zm9yKHZhciBsPW8ubGVuZ3RoLGM9cjtjPGw7YysrKWlmKHQ9PT1uW2NdJiZlPT09aVtjXSYmcz09PWFbY10pcmV0dXJuIGM7cmV0dXJuLTF9ZnVuY3Rpb24gQygpe3I9ZX1mdW5jdGlvbiBQKCl7bj1bXSxpPVtdLGE9W10sbz1bXSxlPTAsQygpfWZ1bmN0aW9uIEkodCxyLHMsbCl7cmV0dXJuIG4ucHVzaCh0KSxpLnB1c2gociksYS5wdXNoKHMpLG8ucHVzaChsKSwrK2UtMX1mdW5jdGlvbiBPKHQsZSxyKXtmb3IodmFyIG49W10saT0wO2k8dC5sZW5ndGg7aSsrKW5baV09dFtpXSooMS1yKStyKmVbaV07cmV0dXJuIG59ZnVuY3Rpb24geih0KXtzPXR9ZnVuY3Rpb24gRCh0LGUpe3JldHVybiJhbGwiPT09dHx8bnVsbD09PXR8fHQuaW5kZXhPZihlKT4tMX1mdW5jdGlvbiBSKHQsZSl7cmV0dXJuIG51bGw9PT10P2U6dH1mdW5jdGlvbiBGKGUscixuKXtDKCk7dmFyIGksYSxvLGw9W3JdLGM9W25dO2lmKHM+PTEpbD1bcl0sYz1bbl07ZWxzZSBpZihzPjApe3ZhciB1PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dFswXSxuPXRbMV0saT10WzJdLGE9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj1bXSxpPTA7aTx0Lmxlbmd0aDtpKyspbltpXT0odFtpXStlW2ldK3JbaV0pLzM7cmV0dXJuIG59KHIsbixpKSxvPU1hdGguc3FydCgxLXMpLGw9TyhhLHIsbyksYz1PKGEsbixvKSx1PU8oYSxpLG8pLGY9ZVswXSxoPWVbMV0scD1lWzJdO3JldHVybnt4eXp2OltbcixuLGNdLFtjLGwscl0sW24saSx1XSxbdSxjLG5dLFtpLHIsbF0sW2wsdSxpXV0sYWJjOltbZixoLC0xXSxbLTEsLTEsZl0sW2gscCwtMV0sWy0xLC0xLGhdLFtwLGYsLTFdLFstMSwtMSxwXV19fShyLG4pO2w9dS54eXp2LGM9dS5hYmN9Zm9yKHZhciBmPTA7ZjxsLmxlbmd0aDtmKyspe3I9bFtmXSxuPWNbZl07Zm9yKHZhciBoPVtdLHA9MDtwPDM7cCsrKXt2YXIgZD1yW3BdWzBdLG09cltwXVsxXSx2PXJbcF1bMl0seT1yW3BdWzNdLHg9bltwXT4tMT9uW3BdOkwoZCxtLHYpO2hbcF09eD4tMT94OkkoZCxtLHYsUihlLHkpKX1pPWhbMF0sYT1oWzFdLG89aFsyXSx0Ll9tZXNoSS5wdXNoKGkpLHQuX21lc2hKLnB1c2goYSksdC5fbWVzaEsucHVzaChvKSwrK2d9fWZ1bmN0aW9uIEIodCxlLHIsbil7dmFyIGk9dFszXTtpPHImJihpPXIpLGk+biYmKGk9bik7Zm9yKHZhciBhPSh0WzNdLWkpLyh0WzNdLWVbM10rMWUtOSksbz1bXSxzPTA7czw0O3MrKylvW3NdPSgxLWEpKnRbc10rYSplW3NdO3JldHVybiBvfWZ1bmN0aW9uIE4odCxlLHIpe3JldHVybiB0Pj1lJiZ0PD1yfWZ1bmN0aW9uIGoodCl7dmFyIGU9LjAwMSooRS1TKTtyZXR1cm4gdD49Uy1lJiZ0PD1FK2V9ZnVuY3Rpb24gVShlKXtmb3IodmFyIHI9W10sbj0wO248NDtuKyspe3ZhciBpPWVbbl07ci5wdXNoKFt0Ll94W2ldLHQuX3lbaV0sdC5feltpXSx0Ll92YWx1ZVtpXV0pfXJldHVybiByfWZ1bmN0aW9uIFYodCxlLHIsbixpLGEpe2F8fChhPTEpLHI9Wy0xLC0xLC0xXTt2YXIgbz0hMSxzPVtOKGVbMF1bM10sbixpKSxOKGVbMV1bM10sbixpKSxOKGVbMl1bM10sbixpKV07aWYoIXNbMF0mJiFzWzFdJiYhc1syXSlyZXR1cm4hMTt2YXIgbD1mdW5jdGlvbih0LGUscil7cmV0dXJuIGooZVswXVszXSkmJmooZVsxXVszXSkmJmooZVsyXVszXSk/KEYodCxlLHIpLCEwKTphPDMmJlYodCxlLHIsUyxFLCsrYSl9O2lmKHNbMF0mJnNbMV0mJnNbMl0pcmV0dXJuIGwodCxlLHIpfHxvO3ZhciBjPSExO3JldHVybltbMCwxLDJdLFsyLDAsMV0sWzEsMiwwXV0uZm9yRWFjaCgoZnVuY3Rpb24oYSl7aWYoc1thWzBdXSYmc1thWzFdXSYmIXNbYVsyXV0pe3ZhciB1PWVbYVswXV0sZj1lW2FbMV1dLGg9ZVthWzJdXSxwPUIoaCx1LG4saSksZD1CKGgsZixuLGkpO289bCh0LFtkLHAsdV0sWy0xLC0xLHJbYVswXV1dKXx8byxvPWwodCxbdSxmLGRdLFtyW2FbMF1dLHJbYVsxXV0sLTFdKXx8byxjPSEwfX0pKSxjfHxbWzAsMSwyXSxbMSwyLDBdLFsyLDAsMV1dLmZvckVhY2goKGZ1bmN0aW9uKGEpe2lmKHNbYVswXV0mJiFzW2FbMV1dJiYhc1thWzJdXSl7dmFyIHU9ZVthWzBdXSxmPWVbYVsxXV0saD1lW2FbMl1dLHA9QihmLHUsbixpKSxkPUIoaCx1LG4saSk7bz1sKHQsW2QscCx1XSxbLTEsLTEsclthWzBdXV0pfHxvLGM9ITB9fSkpLG99ZnVuY3Rpb24gSCh0LGUscixuKXt2YXIgaT0hMSxhPVUoZSksbz1bTihhWzBdWzNdLHIsbiksTihhWzFdWzNdLHIsbiksTihhWzJdWzNdLHIsbiksTihhWzNdWzNdLHIsbildO2lmKCEob1swXXx8b1sxXXx8b1syXXx8b1szXSkpcmV0dXJuIGk7aWYob1swXSYmb1sxXSYmb1syXSYmb1szXSlyZXR1cm4gbSYmKGk9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWZ1bmN0aW9uKG4saSxhKXtGKHQsW2Vbbl0sZVtpXSxlW2FdXSxbcltuXSxyW2ldLHJbYV1dKX07bigwLDEsMiksbigzLDAsMSksbigyLDMsMCksbigxLDIsMyl9KHQsYSxlKXx8aSksaTt2YXIgcz0hMTtyZXR1cm5bWzAsMSwyLDNdLFszLDAsMSwyXSxbMiwzLDAsMV0sWzEsMiwzLDBdXS5mb3JFYWNoKChmdW5jdGlvbihsKXtpZihvW2xbMF1dJiZvW2xbMV1dJiZvW2xbMl1dJiYhb1tsWzNdXSl7dmFyIGM9YVtsWzBdXSx1PWFbbFsxXV0sZj1hW2xbMl1dLGg9YVtsWzNdXTtpZihtKWk9Rih0LFtjLHUsZl0sW2VbbFswXV0sZVtsWzFdXSxlW2xbMl1dXSl8fGk7ZWxzZXt2YXIgcD1CKGgsYyxyLG4pLGQ9QihoLHUscixuKSxnPUIoaCxmLHIsbik7aT1GKG51bGwsW3AsZCxnXSxbLTEsLTEsLTFdKXx8aX1zPSEwfX0pKSxzP2k6KFtbMCwxLDIsM10sWzEsMiwzLDBdLFsyLDMsMCwxXSxbMywwLDEsMl0sWzAsMiwzLDFdLFsxLDMsMiwwXV0uZm9yRWFjaCgoZnVuY3Rpb24obCl7aWYob1tsWzBdXSYmb1tsWzFdXSYmIW9bbFsyXV0mJiFvW2xbM11dKXt2YXIgYz1hW2xbMF1dLHU9YVtsWzFdXSxmPWFbbFsyXV0saD1hW2xbM11dLHA9QihmLGMscixuKSxkPUIoZix1LHIsbiksZz1CKGgsdSxyLG4pLHY9QihoLGMscixuKTttPyhpPUYodCxbYyx2LHBdLFtlW2xbMF1dLC0xLC0xXSl8fGksaT1GKHQsW3UsZCxnXSxbZVtsWzFdXSwtMSwtMV0pfHxpKTppPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1mdW5jdGlvbihuLGksYSl7Rih0LFtlW25dLGVbaV0sZVthXV0sW3Jbbl0scltpXSxyW2FdXSl9O24oMCwxLDIpLG4oMiwzLDApfShudWxsLFtwLGQsZyx2XSxbLTEsLTEsLTEsLTFdKXx8aSxzPSEwfX0pKSxzfHxbWzAsMSwyLDNdLFsxLDIsMywwXSxbMiwzLDAsMV0sWzMsMCwxLDJdXS5mb3JFYWNoKChmdW5jdGlvbihsKXtpZihvW2xbMF1dJiYhb1tsWzFdXSYmIW9bbFsyXV0mJiFvW2xbM11dKXt2YXIgYz1hW2xbMF1dLHU9YVtsWzFdXSxmPWFbbFsyXV0saD1hW2xbM11dLHA9Qih1LGMscixuKSxkPUIoZixjLHIsbiksZz1CKGgsYyxyLG4pO20/KGk9Rih0LFtjLHAsZF0sW2VbbFswXV0sLTEsLTFdKXx8aSxpPUYodCxbYyxkLGddLFtlW2xbMF1dLC0xLC0xXSl8fGksaT1GKHQsW2MsZyxwXSxbZVtsWzBdXSwtMSwtMV0pfHxpKTppPUYobnVsbCxbcCxkLGddLFstMSwtMSwtMV0pfHxpLHM9ITB9fSkpLGkpfWZ1bmN0aW9uIHEodCxlLHIsbixpLGEsbyxzLGwsYyx1KXt2YXIgZj0hMTtyZXR1cm4gZCYmKEQodCwiQSIpJiYoZj1IKG51bGwsW2UscixuLGFdLGMsdSl8fGYpLEQodCwiQiIpJiYoZj1IKG51bGwsW3IsbixpLGxdLGMsdSl8fGYpLEQodCwiQyIpJiYoZj1IKG51bGwsW3IsYSxvLGxdLGMsdSl8fGYpLEQodCwiRCIpJiYoZj1IKG51bGwsW24sYSxzLGxdLGMsdSl8fGYpLEQodCwiRSIpJiYoZj1IKG51bGwsW3IsbixhLGxdLGMsdSl8fGYpKSxtJiYoZj1IKHQsW3IsbixhLGxdLGMsdSl8fGYpLGZ9ZnVuY3Rpb24gRyh0LGUscixuLGksYSxvLHMpe3JldHVyblshMD09PXNbMF18fFYodCxVKFtlLHIsbl0pLFtlLHIsbl0sYSxvKSwhMD09PXNbMV18fFYodCxVKFtuLGksZV0pLFtuLGksZV0sYSxvKV19ZnVuY3Rpb24gWSh0LGUscixuLGksYSxvLHMsbCl7cmV0dXJuIHM/Ryh0LGUscixpLG4sYSxvLGwpOkcodCxyLGksbixlLGEsbyxsKX1mdW5jdGlvbiBXKHQsZSxyLG4saSxhLG8pe3ZhciBzLGwsYyx1LGY9ITEsaD1mdW5jdGlvbigpe2Y9Vih0LFtzLGwsY10sWy0xLC0xLC0xXSxpLGEpfHxmLGY9Vih0LFtjLHUsc10sWy0xLC0xLC0xXSxpLGEpfHxmfSxwPW9bMF0sZD1vWzFdLG09b1syXTtyZXR1cm4gcCYmKHM9TyhVKFtrKGUsci0wLG4tMCldKVswXSxVKFtrKGUtMSxyLTAsbi0wKV0pWzBdLHApLGw9TyhVKFtrKGUsci0wLG4tMSldKVswXSxVKFtrKGUtMSxyLTAsbi0xKV0pWzBdLHApLGM9TyhVKFtrKGUsci0xLG4tMSldKVswXSxVKFtrKGUtMSxyLTEsbi0xKV0pWzBdLHApLHU9TyhVKFtrKGUsci0xLG4tMCldKVswXSxVKFtrKGUtMSxyLTEsbi0wKV0pWzBdLHApLGgoKSksZCYmKHM9TyhVKFtrKGUtMCxyLG4tMCldKVswXSxVKFtrKGUtMCxyLTEsbi0wKV0pWzBdLGQpLGw9TyhVKFtrKGUtMCxyLG4tMSldKVswXSxVKFtrKGUtMCxyLTEsbi0xKV0pWzBdLGQpLGM9TyhVKFtrKGUtMSxyLG4tMSldKVswXSxVKFtrKGUtMSxyLTEsbi0xKV0pWzBdLGQpLHU9TyhVKFtrKGUtMSxyLG4tMCldKVswXSxVKFtrKGUtMSxyLTEsbi0wKV0pWzBdLGQpLGgoKSksbSYmKHM9TyhVKFtrKGUtMCxyLTAsbildKVswXSxVKFtrKGUtMCxyLTAsbi0xKV0pWzBdLG0pLGw9TyhVKFtrKGUtMCxyLTEsbildKVswXSxVKFtrKGUtMCxyLTEsbi0xKV0pWzBdLG0pLGM9TyhVKFtrKGUtMSxyLTEsbildKVswXSxVKFtrKGUtMSxyLTEsbi0xKV0pWzBdLG0pLHU9TyhVKFtrKGUtMSxyLTAsbildKVswXSxVKFtrKGUtMSxyLTAsbi0xKV0pWzBdLG0pLGgoKSksZn1mdW5jdGlvbiBYKHQsZSxyLG4saSxhLG8scyxsLGMsdSxmKXt2YXIgaD10O3JldHVybiBmPyhkJiYiZXZlbiI9PT10JiYoaD1udWxsKSxxKGgsZSxyLG4saSxhLG8scyxsLGMsdSkpOihkJiYib2RkIj09PXQmJihoPW51bGwpLHEoaCxsLHMsbyxhLGksbixyLGUsYyx1KSl9ZnVuY3Rpb24gWih0LGUscixuLGkpe2Zvcih2YXIgYT1bXSxvPTAscz0wO3M8ZS5sZW5ndGg7cysrKWZvcih2YXIgbD1lW3NdLGM9MTtjPHc7YysrKWZvcih2YXIgdT0xO3U8Xzt1KyspYS5wdXNoKFkodCxrKGwsdS0xLGMtMSksayhsLHUtMSxjKSxrKGwsdSxjLTEpLGsobCx1LGMpLHIsbiwobCt1K2MpJTIsaSYmaVtvXT9pW29dOltdKSksbysrO3JldHVybiBhfWZ1bmN0aW9uIEoodCxlLHIsbixpKXtmb3IodmFyIGE9W10sbz0wLHM9MDtzPGUubGVuZ3RoO3MrKylmb3IodmFyIGw9ZVtzXSxjPTE7YzxiO2MrKylmb3IodmFyIHU9MTt1PHc7dSsrKWEucHVzaChZKHQsayhjLTEsbCx1LTEpLGsoYyxsLHUtMSksayhjLTEsbCx1KSxrKGMsbCx1KSxyLG4sKGMrbCt1KSUyLGkmJmlbb10/aVtvXTpbXSkpLG8rKztyZXR1cm4gYX1mdW5jdGlvbiBLKHQsZSxyLG4saSl7Zm9yKHZhciBhPVtdLG89MCxzPTA7czxlLmxlbmd0aDtzKyspZm9yKHZhciBsPWVbc10sYz0xO2M8XztjKyspZm9yKHZhciB1PTE7dTxiO3UrKylhLnB1c2goWSh0LGsodS0xLGMtMSxsKSxrKHUtMSxjLGwpLGsodSxjLTEsbCksayh1LGMsbCkscixuLCh1K2MrbCklMixpJiZpW29dP2lbb106W10pKSxvKys7cmV0dXJuIGF9ZnVuY3Rpb24gUSh0LGUscil7Zm9yKHZhciBuPTE7bjx3O24rKylmb3IodmFyIGk9MTtpPF87aSsrKWZvcih2YXIgYT0xO2E8YjthKyspWCh0LGsoYS0xLGktMSxuLTEpLGsoYS0xLGktMSxuKSxrKGEtMSxpLG4tMSksayhhLTEsaSxuKSxrKGEsaS0xLG4tMSksayhhLGktMSxuKSxrKGEsaSxuLTEpLGsoYSxpLG4pLGUsciwoYStpK24pJTIpfWZ1bmN0aW9uICQodCxlLHIpe2Q9ITAsUSh0LGUsciksZD0hMX1mdW5jdGlvbiB0dCh0LGUscixuLGksYSl7Zm9yKHZhciBvPVtdLHM9MCxsPTA7bDxlLmxlbmd0aDtsKyspZm9yKHZhciBjPWVbbF0sdT0xO3U8dzt1KyspZm9yKHZhciBmPTE7ZjxfO2YrKylvLnB1c2goVyh0LGMsZix1LHIsbixpW2xdLGEmJmFbc10mJmFbc10pKSxzKys7cmV0dXJuIG99ZnVuY3Rpb24gZXQodCxlLHIsbixpLGEpe2Zvcih2YXIgbz1bXSxzPTAsbD0wO2w8ZS5sZW5ndGg7bCsrKWZvcih2YXIgYz1lW2xdLHU9MTt1PGI7dSsrKWZvcih2YXIgZj0xO2Y8dztmKyspby5wdXNoKFcodCx1LGMsZixyLG4saVtsXSxhJiZhW3NdJiZhW3NdKSkscysrO3JldHVybiBvfWZ1bmN0aW9uIHJ0KHQsZSxyLG4saSxhKXtmb3IodmFyIG89W10scz0wLGw9MDtsPGUubGVuZ3RoO2wrKylmb3IodmFyIGM9ZVtsXSx1PTE7dTxfO3UrKylmb3IodmFyIGY9MTtmPGI7ZisrKW8ucHVzaChXKHQsZix1LGMscixuLGlbbF0sYSYmYVtzXSYmYVtzXSkpLHMrKztyZXR1cm4gb31mdW5jdGlvbiBudCh0LGUpe2Zvcih2YXIgcj1bXSxuPXQ7bjxlO24rKylyLnB1c2gobik7cmV0dXJuIHJ9cmV0dXJuIGZ1bmN0aW9uKCl7aWYoUCgpLGZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7ZTxiO2UrKylmb3IodmFyIHI9MDtyPF87cisrKWZvcih2YXIgbj0wO248dztuKyspe3ZhciBpPWsoZSxyLG4pO0kodC5feFtpXSx0Ll95W2ldLHQuX3pbaV0sdC5fdmFsdWVbaV0pfX0oKSx1JiZwJiYoeihwKSxtPSEwLFEobnVsbCxTLEUpLG09ITEpLGMmJmgpe3ooaCk7Zm9yKHZhciBlPXQuc3VyZmFjZS5wYXR0ZXJuLHI9dC5zdXJmYWNlLmNvdW50LHM9MDtzPHI7cysrKXt2YXIgZj0xPT09cj8uNTpzLyhyLTEpLGQ9KDEtZikqUytmKkUsVD1NYXRoLmFicyhkLUEpPk1hdGguYWJzKGQtTSk/W0EsZF06W2QsTV07JChlLFRbMF0sVFsxXSl9fXZhciBMPVtbTWF0aC5taW4oUyxNKSxNYXRoLm1heChTLE0pXSxbTWF0aC5taW4oQSxFKSxNYXRoLm1heChBLEUpXV07WyJ4IiwieSIsInoiXS5mb3JFYWNoKChmdW5jdGlvbihlKXtmb3IodmFyIHI9W10sbj0wO248TC5sZW5ndGg7bisrKXt2YXIgaT0wLGE9TFtuXVswXSxvPUxbbl1bMV0scz10LnNsaWNlc1tlXTtpZihzLnNob3cmJnMuZmlsbCl7eihzLmZpbGwpO3ZhciBjPVtdLHU9W10sZj1bXTtpZihzLmxvY2F0aW9ucy5sZW5ndGgpZm9yKHZhciBoPTA7aDxzLmxvY2F0aW9ucy5sZW5ndGg7aCsrKXt2YXIgcD1sKHMubG9jYXRpb25zW2hdLCJ4Ij09PWU/djoieSI9PT1lP3k6eCk7MD09PXAuZGlzdFJhdGlvP2MucHVzaChwLmlkKTpwLmlkPjAmJih1LnB1c2gocC5pZCksIngiPT09ZT9mLnB1c2goW3AuZGlzdFJhdGlvLDAsMF0pOiJ5Ij09PWU/Zi5wdXNoKFswLHAuZGlzdFJhdGlvLDBdKTpmLnB1c2goWzAsMCxwLmRpc3RSYXRpb10pKX1lbHNlIGM9bnQoMSwieCI9PT1lP2ItMToieSI9PT1lP18tMTp3LTEpO3UubGVuZ3RoPjAmJihyW2ldPSJ4Ij09PWU/dHQobnVsbCx1LGEsbyxmLHJbaV0pOiJ5Ij09PWU/ZXQobnVsbCx1LGEsbyxmLHJbaV0pOnJ0KG51bGwsdSxhLG8sZixyW2ldKSxpKyspLGMubGVuZ3RoPjAmJihyW2ldPSJ4Ij09PWU/WihudWxsLGMsYSxvLHJbaV0pOiJ5Ij09PWU/SihudWxsLGMsYSxvLHJbaV0pOksobnVsbCxjLGEsbyxyW2ldKSxpKyspfXZhciBkPXQuY2Fwc1tlXTtkLnNob3cmJmQuZmlsbCYmKHooZC5maWxsKSxyW2ldPSJ4Ij09PWU/WihudWxsLFswLGItMV0sYSxvLHJbaV0pOiJ5Ij09PWU/SihudWxsLFswLF8tMV0sYSxvLHJbaV0pOksobnVsbCxbMCx3LTFdLGEsbyxyW2ldKSxpKyspfX0pKSwwPT09ZyYmUCgpLHQuX21lc2hYPW4sdC5fbWVzaFk9aSx0Ll9tZXNoWj1hLHQuX21lc2hJbnRlbnNpdHk9byx0Ll9Ycz12LHQuX1lzPXksdC5fWnM9eH0oKSx0fWUuZXhwb3J0cz17ZmluZE5lYXJlc3RPbkF4aXM6bCxnZW5lcmF0ZUlzb01lc2hlczpoLGNyZWF0ZUlzb3N1cmZhY2VUcmFjZTpmdW5jdGlvbih0LGUpe3ZhciByPXQuZ2xwbG90LmdsLGk9bih7Z2w6cn0pLGE9bmV3IGModCxpLGUudWlkKTtyZXR1cm4gaS5fdHJhY2U9YSxhLnVwZGF0ZShlKSx0LmdscGxvdC5hZGQoaSksYX19fSx7Ii4uLy4uLy4uL3N0YWNrZ2xfbW9kdWxlcyI6MTEzMywiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIjozNzksIi4uLy4uL2xpYi9nbF9mb3JtYXRfY29sb3IiOjUxMSwiLi4vLi4vbGliL3N0cjJyZ2JhcnJheSI6NTQwLCIuLi8uLi9wbG90cy9nbDNkL3ppcDMiOjYxOH1dLDg3NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL3JlZ2lzdHJ5IiksYT10KCIuL2F0dHJpYnV0ZXMiKSxvPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9kZWZhdWx0cyIpO2Z1bmN0aW9uIHModCxlLHIsbixhKXt2YXIgcz1hKCJpc29taW4iKSxsPWEoImlzb21heCIpO251bGwhPWwmJm51bGwhPXMmJnM+bCYmKGUuaXNvbWluPW51bGwsZS5pc29tYXg9bnVsbCk7dmFyIGM9YSgieCIpLHU9YSgieSIpLGY9YSgieiIpLGg9YSgidmFsdWUiKTtjJiZjLmxlbmd0aCYmdSYmdS5sZW5ndGgmJmYmJmYubGVuZ3RoJiZoJiZoLmxlbmd0aD8oaS5nZXRDb21wb25lbnRNZXRob2QoImNhbGVuZGFycyIsImhhbmRsZVRyYWNlRGVmYXVsdHMiKSh0LGUsWyJ4IiwieSIsInoiXSxuKSxhKCJ2YWx1ZWhvdmVyZm9ybWF0IiksWyJ4IiwieSIsInoiXS5mb3JFYWNoKChmdW5jdGlvbih0KXthKHQrImhvdmVyZm9ybWF0Iik7dmFyIGU9ImNhcHMuIit0O2EoZSsiLnNob3ciKSYmYShlKyIuZmlsbCIpO3ZhciByPSJzbGljZXMuIit0O2EocisiLnNob3ciKSYmKGEocisiLmZpbGwiKSxhKHIrIi5sb2NhdGlvbnMiKSl9KSksYSgic3BhY2VmcmFtZS5zaG93IikmJmEoInNwYWNlZnJhbWUuZmlsbCIpLGEoInN1cmZhY2Uuc2hvdyIpJiYoYSgic3VyZmFjZS5jb3VudCIpLGEoInN1cmZhY2UuZmlsbCIpLGEoInN1cmZhY2UucGF0dGVybiIpKSxhKCJjb250b3VyLnNob3ciKSYmKGEoImNvbnRvdXIuY29sb3IiKSxhKCJjb250b3VyLndpZHRoIikpLFsidGV4dCIsImhvdmVydGV4dCIsImhvdmVydGVtcGxhdGUiLCJsaWdodGluZy5hbWJpZW50IiwibGlnaHRpbmcuZGlmZnVzZSIsImxpZ2h0aW5nLnNwZWN1bGFyIiwibGlnaHRpbmcucm91Z2huZXNzIiwibGlnaHRpbmcuZnJlc25lbCIsImxpZ2h0aW5nLnZlcnRleG5vcm1hbHNlcHNpbG9uIiwibGlnaHRpbmcuZmFjZW5vcm1hbHNlcHNpbG9uIiwibGlnaHRwb3NpdGlvbi54IiwibGlnaHRwb3NpdGlvbi55IiwibGlnaHRwb3NpdGlvbi56IiwiZmxhdHNoYWRpbmciLCJvcGFjaXR5Il0uZm9yRWFjaCgoZnVuY3Rpb24odCl7YSh0KX0pKSxvKHQsZSxuLGEse3ByZWZpeDoiIixjTGV0dGVyOiJjIn0pLGUuX2xlbmd0aD1udWxsKTplLnZpc2libGU9ITF9ZS5leHBvcnRzPXtzdXBwbHlEZWZhdWx0czpmdW5jdGlvbih0LGUscixpKXtzKHQsZSxyLGksKGZ1bmN0aW9uKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxhLHIsaSl9KSl9LHN1cHBseUlzb0RlZmF1bHRzOnN9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9kZWZhdWx0cyI6Mzc3LCIuLi8uLi9saWIiOjUxNSwiLi4vLi4vcmVnaXN0cnkiOjY0NywiLi9hdHRyaWJ1dGVzIjo4NzF9XSw4NzU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXthdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKS5zdXBwbHlEZWZhdWx0cyxjYWxjOnQoIi4vY2FsYyIpLGNvbG9yYmFyOnttaW46ImNtaW4iLG1heDoiY21heCJ9LHBsb3Q6dCgiLi9jb252ZXJ0IikuY3JlYXRlSXNvc3VyZmFjZVRyYWNlLG1vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJpc29zdXJmYWNlIixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9nbDNkIiksY2F0ZWdvcmllczpbImdsM2QiLCJzaG93TGVnZW5kIl0sbWV0YTp7fX19LHsiLi4vLi4vcGxvdHMvZ2wzZCI6NjA3LCIuL2F0dHJpYnV0ZXMiOjg3MSwiLi9jYWxjIjo4NzIsIi4vY29udmVydCI6ODczLCIuL2RlZmF1bHRzIjo4NzR9XSw4NzY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2Zvcm1hdF9hdHRyaWJ1dGVzIikuYXhpc0hvdmVyRm9ybWF0LGE9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxvPXQoIi4uL3N1cmZhY2UvYXR0cmlidXRlcyIpLHM9dCgiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyIpLGw9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQ7ZS5leHBvcnRzPWwoe3g6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIn0seTp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSx6Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LGk6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sajp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxrOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LHRleHQ6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIixhcnJheU9rOiEwLGVkaXRUeXBlOiJjYWxjIn0saG92ZXJ0ZXh0Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsYXJyYXlPazohMCxlZGl0VHlwZToiY2FsYyJ9LGhvdmVydGVtcGxhdGU6YSh7ZWRpdFR5cGU6ImNhbGMifSkseGhvdmVyZm9ybWF0OmkoIngiKSx5aG92ZXJmb3JtYXQ6aSgieSIpLHpob3ZlcmZvcm1hdDppKCJ6IiksZGVsYXVuYXlheGlzOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ4IiwieSIsInoiXSxkZmx0OiJ6IixlZGl0VHlwZToiY2FsYyJ9LGFscGhhaHVsbDp7dmFsVHlwZToibnVtYmVyIixkZmx0Oi0xLGVkaXRUeXBlOiJjYWxjIn0saW50ZW5zaXR5Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LGludGVuc2l0eW1vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInZlcnRleCIsImNlbGwiXSxkZmx0OiJ2ZXJ0ZXgiLGVkaXRUeXBlOiJjYWxjIn0sY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToiY2FsYyJ9LHZlcnRleGNvbG9yOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LGZhY2Vjb2xvcjp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSx0cmFuc2Zvcm1zOnZvaWQgMH0sbigiIix7Y29sb3JBdHRyOiJgaW50ZW5zaXR5YCIsc2hvd1NjYWxlRGZsdDohMCxlZGl0VHlwZU92ZXJyaWRlOiJjYWxjIn0pLHtvcGFjaXR5Om8ub3BhY2l0eSxmbGF0c2hhZGluZzp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMSxlZGl0VHlwZToiY2FsYyJ9LGNvbnRvdXI6e3Nob3c6bCh7fSxvLmNvbnRvdXJzLnguc2hvdyx7fSksY29sb3I6by5jb250b3Vycy54LmNvbG9yLHdpZHRoOm8uY29udG91cnMueC53aWR0aCxlZGl0VHlwZToiY2FsYyJ9LGxpZ2h0cG9zaXRpb246e3g6bCh7fSxvLmxpZ2h0cG9zaXRpb24ueCx7ZGZsdDoxZTV9KSx5Omwoe30sby5saWdodHBvc2l0aW9uLnkse2RmbHQ6MWU1fSksejpsKHt9LG8ubGlnaHRwb3NpdGlvbi56LHtkZmx0OjB9KSxlZGl0VHlwZToiY2FsYyJ9LGxpZ2h0aW5nOmwoe3ZlcnRleG5vcm1hbHNlcHNpbG9uOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6MWUtMTIsZWRpdFR5cGU6ImNhbGMifSxmYWNlbm9ybWFsc2Vwc2lsb246e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDoxZS02LGVkaXRUeXBlOiJjYWxjIn0sZWRpdFR5cGU6ImNhbGMifSxvLmxpZ2h0aW5nKSxob3ZlcmluZm86bCh7fSxzLmhvdmVyaW5mbyx7ZWRpdFR5cGU6ImNhbGMifSksc2hvd2xlZ2VuZDpsKHt9LHMuc2hvd2xlZ2VuZCx7ZGZsdDohMX0pfSl9LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiOjM3NCwiLi4vLi4vbGliL2V4dGVuZCI6NTA1LCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIjo1NjIsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2Zvcm1hdF9hdHRyaWJ1dGVzIjo1NjksIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjY0MiwiLi4vc3VyZmFjZS9hdHRyaWJ1dGVzIjoxMDcwfV0sODc3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jYWxjIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7ZS5pbnRlbnNpdHkmJm4odCxlLHt2YWxzOmUuaW50ZW5zaXR5LGNvbnRhaW5lclN0cjoiIixjTGV0dGVyOiJjIn0pfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvY2FsYyI6Mzc1fV0sODc4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uLy4uL3N0YWNrZ2xfbW9kdWxlcyIpLmdsX21lc2gzZCxpPXQoIi4uLy4uLy4uL3N0YWNrZ2xfbW9kdWxlcyIpLmRlbGF1bmF5X3RyaWFuZ3VsYXRlLGE9dCgiLi4vLi4vLi4vc3RhY2tnbF9tb2R1bGVzIikuYWxwaGFfc2hhcGUsbz10KCIuLi8uLi8uLi9zdGFja2dsX21vZHVsZXMiKS5jb252ZXhfaHVsbCxzPXQoIi4uLy4uL2xpYi9nbF9mb3JtYXRfY29sb3IiKS5wYXJzZUNvbG9yU2NhbGUsbD10KCIuLi8uLi9saWIvc3RyMnJnYmFycmF5IiksYz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiKS5leHRyYWN0T3B0cyx1PXQoIi4uLy4uL3Bsb3RzL2dsM2QvemlwMyIpO2Z1bmN0aW9uIGYodCxlLHIpe3RoaXMuc2NlbmU9dCx0aGlzLnVpZD1yLHRoaXMubWVzaD1lLHRoaXMubmFtZT0iIix0aGlzLmNvbG9yPSIjZmZmIix0aGlzLmRhdGE9bnVsbCx0aGlzLnNob3dDb250b3VyPSExfXZhciBoPWYucHJvdG90eXBlO2Z1bmN0aW9uIHAodCl7Zm9yKHZhciBlPVtdLHI9dC5sZW5ndGgsbj0wO248cjtuKyspZVtuXT1sKHRbbl0pO3JldHVybiBlfWZ1bmN0aW9uIGQodCxlLHIsbil7Zm9yKHZhciBpPVtdLGE9ZS5sZW5ndGgsbz0wO288YTtvKyspaVtvXT10LmQybChlW29dLDAsbikqcjtyZXR1cm4gaX1mdW5jdGlvbiBtKHQpe2Zvcih2YXIgZT1bXSxyPXQubGVuZ3RoLG49MDtuPHI7bisrKWVbbl09TWF0aC5yb3VuZCh0W25dKTtyZXR1cm4gZX1mdW5jdGlvbiBnKHQsZSl7Zm9yKHZhciByPXQubGVuZ3RoLG49MDtuPHI7bisrKWlmKHRbbl08PS0uNXx8dFtuXT49ZS0uNSlyZXR1cm4hMTtyZXR1cm4hMH1oLmhhbmRsZVBpY2s9ZnVuY3Rpb24odCl7aWYodC5vYmplY3Q9PT10aGlzLm1lc2gpe3ZhciBlPXQuaW5kZXg9dC5kYXRhLmluZGV4O3QuZGF0YS5fY2VsbENlbnRlcj90LnRyYWNlQ29vcmRpbmF0ZT10LmRhdGEuZGF0YUNvb3JkaW5hdGU6dC50cmFjZUNvb3JkaW5hdGU9W3RoaXMuZGF0YS54W2VdLHRoaXMuZGF0YS55W2VdLHRoaXMuZGF0YS56W2VdXTt2YXIgcj10aGlzLmRhdGEuaG92ZXJ0ZXh0fHx0aGlzLmRhdGEudGV4dDtyZXR1cm4gQXJyYXkuaXNBcnJheShyKSYmdm9pZCAwIT09cltlXT90LnRleHRMYWJlbD1yW2VdOnImJih0LnRleHRMYWJlbD1yKSwhMH19LGgudXBkYXRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuc2NlbmUscj1lLmZ1bGxTY2VuZUxheW91dDt0aGlzLmRhdGE9dDt2YXIgbixmPXQueC5sZW5ndGgsaD11KGQoci54YXhpcyx0LngsZS5kYXRhU2NhbGVbMF0sdC54Y2FsZW5kYXIpLGQoci55YXhpcyx0LnksZS5kYXRhU2NhbGVbMV0sdC55Y2FsZW5kYXIpLGQoci56YXhpcyx0LnosZS5kYXRhU2NhbGVbMl0sdC56Y2FsZW5kYXIpKTtpZih0LmkmJnQuaiYmdC5rKXtpZih0LmkubGVuZ3RoIT09dC5qLmxlbmd0aHx8dC5qLmxlbmd0aCE9PXQuay5sZW5ndGh8fCFnKHQuaSxmKXx8IWcodC5qLGYpfHwhZyh0LmssZikpcmV0dXJuO249dShtKHQuaSksbSh0LmopLG0odC5rKSl9ZWxzZSBuPTA9PT10LmFscGhhaHVsbD9vKGgpOnQuYWxwaGFodWxsPjA/YSh0LmFscGhhaHVsbCxoKTpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1bIngiLCJ5IiwieiJdLmluZGV4T2YodCksbj1bXSxhPWUubGVuZ3RoLG89MDtvPGE7bysrKW5bb109W2Vbb11bKHIrMSklM10sZVtvXVsocisyKSUzXV07cmV0dXJuIGkobil9KHQuZGVsYXVuYXlheGlzLGgpO3ZhciB2PXtwb3NpdGlvbnM6aCxjZWxsczpuLGxpZ2h0UG9zaXRpb246W3QubGlnaHRwb3NpdGlvbi54LHQubGlnaHRwb3NpdGlvbi55LHQubGlnaHRwb3NpdGlvbi56XSxhbWJpZW50OnQubGlnaHRpbmcuYW1iaWVudCxkaWZmdXNlOnQubGlnaHRpbmcuZGlmZnVzZSxzcGVjdWxhcjp0LmxpZ2h0aW5nLnNwZWN1bGFyLHJvdWdobmVzczp0LmxpZ2h0aW5nLnJvdWdobmVzcyxmcmVzbmVsOnQubGlnaHRpbmcuZnJlc25lbCx2ZXJ0ZXhOb3JtYWxzRXBzaWxvbjp0LmxpZ2h0aW5nLnZlcnRleG5vcm1hbHNlcHNpbG9uLGZhY2VOb3JtYWxzRXBzaWxvbjp0LmxpZ2h0aW5nLmZhY2Vub3JtYWxzZXBzaWxvbixvcGFjaXR5OnQub3BhY2l0eSxjb250b3VyRW5hYmxlOnQuY29udG91ci5zaG93LGNvbnRvdXJDb2xvcjpsKHQuY29udG91ci5jb2xvcikuc2xpY2UoMCwzKSxjb250b3VyV2lkdGg6dC5jb250b3VyLndpZHRoLHVzZUZhY2V0Tm9ybWFsczp0LmZsYXRzaGFkaW5nfTtpZih0LmludGVuc2l0eSl7dmFyIHk9Yyh0KTt0aGlzLmNvbG9yPSIjZmZmIjt2YXIgeD10LmludGVuc2l0eW1vZGU7dlt4KyJJbnRlbnNpdHkiXT10LmludGVuc2l0eSx2W3grIkludGVuc2l0eUJvdW5kcyJdPVt5Lm1pbix5Lm1heF0sdi5jb2xvcm1hcD1zKHQpfWVsc2UgdC52ZXJ0ZXhjb2xvcj8odGhpcy5jb2xvcj10LnZlcnRleGNvbG9yWzBdLHYudmVydGV4Q29sb3JzPXAodC52ZXJ0ZXhjb2xvcikpOnQuZmFjZWNvbG9yPyh0aGlzLmNvbG9yPXQuZmFjZWNvbG9yWzBdLHYuY2VsbENvbG9ycz1wKHQuZmFjZWNvbG9yKSk6KHRoaXMuY29sb3I9dC5jb2xvcix2Lm1lc2hDb2xvcj1sKHQuY29sb3IpKTt0aGlzLm1lc2gudXBkYXRlKHYpfSxoLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLnNjZW5lLmdscGxvdC5yZW1vdmUodGhpcy5tZXNoKSx0aGlzLm1lc2guZGlzcG9zZSgpfSxlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10LmdscGxvdC5nbCxpPW4oe2dsOnJ9KSxhPW5ldyBmKHQsaSxlLnVpZCk7cmV0dXJuIGkuX3RyYWNlPWEsYS51cGRhdGUoZSksdC5nbHBsb3QuYWRkKGkpLGF9fSx7Ii4uLy4uLy4uL3N0YWNrZ2xfbW9kdWxlcyI6MTEzMywiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIjozNzksIi4uLy4uL2xpYi9nbF9mb3JtYXRfY29sb3IiOjUxMSwiLi4vLi4vbGliL3N0cjJyZ2JhcnJheSI6NTQwLCIuLi8uLi9wbG90cy9nbDNkL3ppcDMiOjYxOH1dLDg3OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9yZWdpc3RyeSIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiKSxvPXQoIi4vYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixzKXtmdW5jdGlvbiBsKHIsbil7cmV0dXJuIGkuY29lcmNlKHQsZSxvLHIsbil9ZnVuY3Rpb24gYyh0KXt2YXIgZT10Lm1hcCgoZnVuY3Rpb24odCl7dmFyIGU9bCh0KTtyZXR1cm4gZSYmaS5pc0FycmF5T3JUeXBlZEFycmF5KGUpP2U6bnVsbH0pKTtyZXR1cm4gZS5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIHQmJnQubGVuZ3RoPT09ZVswXS5sZW5ndGh9KSkmJmV9YyhbIngiLCJ5IiwieiJdKT8oYyhbImkiLCJqIiwiayJdKSwoIWUuaXx8ZS5qJiZlLmspJiYoIWUuanx8ZS5rJiZlLmkpJiYoIWUua3x8ZS5pJiZlLmopPyhuLmdldENvbXBvbmVudE1ldGhvZCgiY2FsZW5kYXJzIiwiaGFuZGxlVHJhY2VEZWZhdWx0cyIpKHQsZSxbIngiLCJ5IiwieiJdLHMpLFsibGlnaHRpbmcuYW1iaWVudCIsImxpZ2h0aW5nLmRpZmZ1c2UiLCJsaWdodGluZy5zcGVjdWxhciIsImxpZ2h0aW5nLnJvdWdobmVzcyIsImxpZ2h0aW5nLmZyZXNuZWwiLCJsaWdodGluZy52ZXJ0ZXhub3JtYWxzZXBzaWxvbiIsImxpZ2h0aW5nLmZhY2Vub3JtYWxzZXBzaWxvbiIsImxpZ2h0cG9zaXRpb24ueCIsImxpZ2h0cG9zaXRpb24ueSIsImxpZ2h0cG9zaXRpb24ueiIsImZsYXRzaGFkaW5nIiwiYWxwaGFodWxsIiwiZGVsYXVuYXlheGlzIiwib3BhY2l0eSJdLmZvckVhY2goKGZ1bmN0aW9uKHQpe2wodCl9KSksbCgiY29udG91ci5zaG93IikmJihsKCJjb250b3VyLmNvbG9yIiksbCgiY29udG91ci53aWR0aCIpKSwiaW50ZW5zaXR5ImluIHQ/KGwoImludGVuc2l0eSIpLGwoImludGVuc2l0eW1vZGUiKSxhKHQsZSxzLGwse3ByZWZpeDoiIixjTGV0dGVyOiJjIn0pKTooZS5zaG93c2NhbGU9ITEsImZhY2Vjb2xvciJpbiB0P2woImZhY2Vjb2xvciIpOiJ2ZXJ0ZXhjb2xvciJpbiB0P2woInZlcnRleGNvbG9yIik6bCgiY29sb3IiLHIpKSxsKCJ0ZXh0IiksbCgiaG92ZXJ0ZXh0IiksbCgiaG92ZXJ0ZW1wbGF0ZSIpLGwoInhob3ZlcmZvcm1hdCIpLGwoInlob3ZlcmZvcm1hdCIpLGwoInpob3ZlcmZvcm1hdCIpLGUuX2xlbmd0aD1udWxsKTplLnZpc2libGU9ITEpOmUudmlzaWJsZT0hMX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2RlZmF1bHRzIjozNzcsIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9yZWdpc3RyeSI6NjQ3LCIuL2F0dHJpYnV0ZXMiOjg3Nn1dLDg4MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2F0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNhbGM6dCgiLi9jYWxjIiksY29sb3JiYXI6e21pbjoiY21pbiIsbWF4OiJjbWF4In0scGxvdDp0KCIuL2NvbnZlcnQiKSxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToibWVzaDNkIixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9nbDNkIiksY2F0ZWdvcmllczpbImdsM2QiLCJzaG93TGVnZW5kIl0sbWV0YTp7fX19LHsiLi4vLi4vcGxvdHMvZ2wzZCI6NjA3LCIuL2F0dHJpYnV0ZXMiOjg3NiwiLi9jYWxjIjo4NzcsIi4vY29udmVydCI6ODc4LCIuL2RlZmF1bHRzIjo4Nzl9XSw4ODE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIikuZXh0ZW5kRmxhdCxpPXQoIi4uL3NjYXR0ZXIvYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfZm9ybWF0X2F0dHJpYnV0ZXMiKS5heGlzSG92ZXJGb3JtYXQsbz10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmcvYXR0cmlidXRlcyIpLmRhc2gscz10KCIuLi8uLi9jb21wb25lbnRzL2Z4L2F0dHJpYnV0ZXMiKSxsPXQoIi4uLy4uL2NvbnN0YW50cy9kZWx0YS5qcyIpLGM9bC5JTkNSRUFTSU5HLkNPTE9SLHU9bC5ERUNSRUFTSU5HLkNPTE9SLGY9aS5saW5lO2Z1bmN0aW9uIGgodCl7cmV0dXJue2xpbmU6e2NvbG9yOm4oe30sZi5jb2xvcix7ZGZsdDp0fSksd2lkdGg6Zi53aWR0aCxkYXNoOm8sZWRpdFR5cGU6InN0eWxlIn0sZWRpdFR5cGU6InN0eWxlIn19ZS5leHBvcnRzPXt4cGVyaW9kOmkueHBlcmlvZCx4cGVyaW9kMDppLnhwZXJpb2QwLHhwZXJpb2RhbGlnbm1lbnQ6aS54cGVyaW9kYWxpZ25tZW50LHhob3ZlcmZvcm1hdDphKCJ4IikseWhvdmVyZm9ybWF0OmEoInkiKSx4Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LG9wZW46e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0saGlnaDp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxsb3c6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sY2xvc2U6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sbGluZTp7d2lkdGg6bih7fSxmLndpZHRoLHt9KSxkYXNoOm4oe30sbyx7fSksZWRpdFR5cGU6InN0eWxlIn0saW5jcmVhc2luZzpoKGMpLGRlY3JlYXNpbmc6aCh1KSx0ZXh0Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsYXJyYXlPazohMCxlZGl0VHlwZToiY2FsYyJ9LGhvdmVydGV4dDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGFycmF5T2s6ITAsZWRpdFR5cGU6ImNhbGMifSx0aWNrd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4Oi41LGRmbHQ6LjMsZWRpdFR5cGU6ImNhbGMifSxob3ZlcmxhYmVsOm4oe30scy5ob3ZlcmxhYmVsLHtzcGxpdDp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMSxlZGl0VHlwZToic3R5bGUifX0pfX0seyIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmcvYXR0cmlidXRlcyI6Mzg4LCIuLi8uLi9jb21wb25lbnRzL2Z4L2F0dHJpYnV0ZXMiOjM5OCwiLi4vLi4vY29uc3RhbnRzL2RlbHRhLmpzIjo0ODUsIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19mb3JtYXRfYXR0cmlidXRlcyI6NTY5LCIuLi9zY2F0dGVyL2F0dHJpYnV0ZXMiOjkzNn1dLDg4MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPW4uXyxhPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksbz10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYWxpZ25fcGVyaW9kIikscz10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQkFETlVNO2Z1bmN0aW9uIGwodCxlLHIsbil7cmV0dXJue286dCxoOmUsbDpyLGM6bn19ZnVuY3Rpb24gYyh0LGUscixvLGwsYyl7Zm9yKHZhciB1PWwubWFrZUNhbGNkYXRhKGUsIm9wZW4iKSxmPWwubWFrZUNhbGNkYXRhKGUsImhpZ2giKSxoPWwubWFrZUNhbGNkYXRhKGUsImxvdyIpLHA9bC5tYWtlQ2FsY2RhdGEoZSwiY2xvc2UiKSxkPUFycmF5LmlzQXJyYXkoZS50ZXh0KSxtPUFycmF5LmlzQXJyYXkoZS5ob3ZlcnRleHQpLGc9ITAsdj1udWxsLHk9ISFlLnhwZXJpb2RhbGlnbm1lbnQseD1bXSxiPTA7YjxvLmxlbmd0aDtiKyspe3ZhciBfPW9bYl0sdz11W2JdLFQ9ZltiXSxrPWhbYl0sQT1wW2JdO2lmKF8hPT1zJiZ3IT09cyYmVCE9PXMmJmshPT1zJiZBIT09cyl7QT09PXc/bnVsbCE9PXYmJkEhPT12JiYoZz1BPnYpOmc9QT53LHY9QTt2YXIgTT1jKHcsVCxrLEEpO00ucG9zPV8sTS55Yz0odytBKS8yLE0uaT1iLE0uZGlyPWc/ImluY3JlYXNpbmciOiJkZWNyZWFzaW5nIixNLng9TS5wb3MsTS55PVtrLFRdLHkmJihNLm9yaWdfcD1yW2JdKSxkJiYoTS50eD1lLnRleHRbYl0pLG0mJihNLmh0eD1lLmhvdmVydGV4dFtiXSkseC5wdXNoKE0pfWVsc2UgeC5wdXNoKHtwb3M6XyxlbXB0eTohMH0pfXJldHVybiBlLl9leHRyZW1lc1tsLl9pZF09YS5maW5kRXh0cmVtZXMobCxuLmNvbmNhdChoLGYpLHtwYWRkZWQ6ITB9KSx4Lmxlbmd0aCYmKHhbMF0udD17bGFiZWxzOntvcGVuOmkodCwib3BlbjoiKSsiICIsaGlnaDppKHQsImhpZ2g6IikrIiAiLGxvdzppKHQsImxvdzoiKSsiICIsY2xvc2U6aSh0LCJjbG9zZToiKSsiICJ9fSkseH1lLmV4cG9ydHM9e2NhbGM6ZnVuY3Rpb24odCxlKXt2YXIgcj1hLmdldEZyb21JZCh0LGUueGF4aXMpLGk9YS5nZXRGcm9tSWQodCxlLnlheGlzKSxzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgaT1yLl9taW5EaWZmO2lmKCFpKXt2YXIgYSxzPXQuX2Z1bGxEYXRhLGw9W107Zm9yKGk9MS8wLGE9MDthPHMubGVuZ3RoO2ErKyl7dmFyIGM9c1thXTtpZigib2hsYyI9PT1jLnR5cGUmJiEwPT09Yy52aXNpYmxlJiZjLnhheGlzPT09ZS5faWQpe2wucHVzaChjKTt2YXIgdT1lLm1ha2VDYWxjZGF0YShjLCJ4Iik7Yy5fb3JpZ1g9dTt2YXIgZj1vKHIsZSwieCIsdSkudmFscztjLl94Y2FsYz1mO3ZhciBoPW4uZGlzdGluY3RWYWxzKGYpLm1pbkRpZmY7aCYmaXNGaW5pdGUoaCkmJihpPU1hdGgubWluKGksaCkpfX1mb3IoaT09PTEvMCYmKGk9MSksYT0wO2E8bC5sZW5ndGg7YSsrKWxbYV0uX21pbkRpZmY9aX1yZXR1cm4gaSpyLnRpY2t3aWR0aH0odCxyLGUpLHU9ZS5fbWluRGlmZjtlLl9taW5EaWZmPW51bGw7dmFyIGY9ZS5fb3JpZ1g7ZS5fb3JpZ1g9bnVsbDt2YXIgaD1lLl94Y2FsYztlLl94Y2FsYz1udWxsO3ZhciBwPWModCxlLGYsaCxpLGwpO3JldHVybiBlLl9leHRyZW1lc1tyLl9pZF09YS5maW5kRXh0cmVtZXMocixoLHt2cGFkOnUvMn0pLHAubGVuZ3RoPyhuLmV4dGVuZEZsYXQocFswXS50LHt3SG92ZXI6dS8yLHRpY2tMZW46c30pLHApOlt7dDp7ZW1wdHk6ITB9fV19LGNhbGNDb21tb246Y319LHsiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NDkxLCIuLi8uLi9saWIiOjUxNSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2FsaWduX3BlcmlvZCI6NTYzLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NTY2fV0sODgzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi9vaGxjX2RlZmF1bHRzIiksYT10KCIuLi9zY2F0dGVyL3BlcmlvZF9kZWZhdWx0cyIpLG89dCgiLi9hdHRyaWJ1dGVzIik7ZnVuY3Rpb24gcyh0LGUscixuKXtyKG4rIi5saW5lLmNvbG9yIikscihuKyIubGluZS53aWR0aCIsZS5saW5lLndpZHRoKSxyKG4rIi5saW5lLmRhc2giLGUubGluZS5kYXNoKX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbCl7ZnVuY3Rpb24gYyhyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsbyxyLGkpfWkodCxlLGMsbCk/KGEodCxlLGwsYyx7eDohMH0pLGMoInhob3ZlcmZvcm1hdCIpLGMoInlob3ZlcmZvcm1hdCIpLGMoImxpbmUud2lkdGgiKSxjKCJsaW5lLmRhc2giKSxzKHQsZSxjLCJpbmNyZWFzaW5nIikscyh0LGUsYywiZGVjcmVhc2luZyIpLGMoInRleHQiKSxjKCJob3ZlcnRleHQiKSxjKCJ0aWNrd2lkdGgiKSxsLl9yZXF1ZXN0UmFuZ2VzbGlkZXJbZS54YXhpc109ITApOmUudmlzaWJsZT0hMX19LHsiLi4vLi4vbGliIjo1MTUsIi4uL3NjYXR0ZXIvcGVyaW9kX2RlZmF1bHRzIjo5NTYsIi4vYXR0cmlidXRlcyI6ODgxLCIuL29obGNfZGVmYXVsdHMiOjg4Nn1dLDg4NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2Z4Iiksbz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIikscz10KCIuLi8uLi9saWIiKS5maWxsVGV4dCxsPXQoIi4uLy4uL2NvbnN0YW50cy9kZWx0YS5qcyIpLGM9e2luY3JlYXNpbmc6bC5JTkNSRUFTSU5HLlNZTUJPTCxkZWNyZWFzaW5nOmwuREVDUkVBU0lORy5TWU1CT0x9O2Z1bmN0aW9uIHUodCxlLHIsbil7dmFyIGkscyxsPXQuY2QsYz10LnhhLHU9bFswXS50cmFjZSxmPWxbMF0udCxoPXUudHlwZSxwPSJvaGxjIj09PWg/ImwiOiJtaW4iLGQ9Im9obGMiPT09aD8iaCI6Im1heCIsbT1mLmJQb3N8fDAsZz1mLmJkUG9zfHxmLnRpY2tMZW4sdj1mLndIb3Zlcix5PU1hdGgubWluKDEsZy9NYXRoLmFicyhjLnIyYyhjLnJhbmdlWzFdKS1jLnIyYyhjLnJhbmdlWzBdKSkpO2Z1bmN0aW9uIHgodCl7dmFyIHI9ZnVuY3Rpb24odCl7cmV0dXJuIHQucG9zK20tZX0odCk7cmV0dXJuIGEuaW5ib3goci12LHIrdixpKX1mdW5jdGlvbiBiKHQpe3ZhciBlPXRbcF0sbj10W2RdO3JldHVybiBlPT09bnx8YS5pbmJveChlLXIsbi1yLGkpfWZ1bmN0aW9uIF8odCl7cmV0dXJuKHgodCkrYih0KSkvMn1pPXQubWF4SG92ZXJEaXN0YW5jZS15LHM9dC5tYXhTcGlrZURpc3RhbmNlLXk7dmFyIHc9YS5nZXREaXN0YW5jZUZ1bmN0aW9uKG4seCxiLF8pO2lmKGEuZ2V0Q2xvc2VzdChsLHcsdCksITE9PT10LmluZGV4KXJldHVybiBudWxsO3ZhciBUPWxbdC5pbmRleF07aWYoVC5lbXB0eSlyZXR1cm4gbnVsbDt2YXIgaz11W1QuZGlyXSxBPWsubGluZS5jb2xvcjtyZXR1cm4gby5vcGFjaXR5KEEpJiZrLmxpbmUud2lkdGg/dC5jb2xvcj1BOnQuY29sb3I9ay5maWxsY29sb3IsdC54MD1jLmMycChULnBvcyttLWcsITApLHQueDE9Yy5jMnAoVC5wb3MrbStnLCEwKSx0LnhMYWJlbFZhbD12b2lkIDAhPT1ULm9yaWdfcD9ULm9yaWdfcDpULnBvcyx0LnNwaWtlRGlzdGFuY2U9XyhUKSpzL2ksdC54U3Bpa2U9Yy5jMnAoVC5wb3MsITApLHR9ZnVuY3Rpb24gZih0LGUscixhKXt2YXIgbz10LmNkLHM9dC55YSxsPW9bMF0udHJhY2UsYz1vWzBdLnQsZj1bXSxoPXUodCxlLHIsYSk7aWYoIWgpcmV0dXJuW107dmFyIHA9b1toLmluZGV4XS5oaXx8bC5ob3ZlcmluZm8sZD1wLnNwbGl0KCIrIik7aWYoISgiYWxsIj09PXB8fC0xIT09ZC5pbmRleE9mKCJ5IikpKXJldHVybltdO2Zvcih2YXIgbT1bImhpZ2giLCJvcGVuIiwiY2xvc2UiLCJsb3ciXSxnPXt9LHY9MDt2PG0ubGVuZ3RoO3YrKyl7dmFyIHkseD1tW3ZdLGI9bFt4XVtoLmluZGV4XSxfPXMuYzJwKGIsITApO2IgaW4gZz8oeT1nW2JdKS55TGFiZWwrPSI8YnI+IitjLmxhYmVsc1t4XStuLmhvdmVyTGFiZWxUZXh0KHMsYixsLnlob3ZlcmZvcm1hdCk6KCh5PWkuZXh0ZW5kRmxhdCh7fSxoKSkueTA9eS55MT1fLHkueUxhYmVsVmFsPWIseS55TGFiZWw9Yy5sYWJlbHNbeF0rbi5ob3ZlckxhYmVsVGV4dChzLGIsbC55aG92ZXJmb3JtYXQpLHkubmFtZT0iIixmLnB1c2goeSksZ1tiXT15KX1yZXR1cm4gZn1mdW5jdGlvbiBoKHQsZSxyLGkpe3ZhciBhPXQuY2Qsbz10LnlhLGw9YVswXS50cmFjZSxmPWFbMF0udCxoPXUodCxlLHIsaSk7aWYoIWgpcmV0dXJuW107dmFyIHA9YVtoLmluZGV4XSxkPWguaW5kZXg9cC5pLG09cC5kaXI7ZnVuY3Rpb24gZyh0KXtyZXR1cm4gZi5sYWJlbHNbdF0rbi5ob3ZlckxhYmVsVGV4dChvLGxbdF1bZF0sbC55aG92ZXJmb3JtYXQpfXZhciB2PXAuaGl8fGwuaG92ZXJpbmZvLHk9di5zcGxpdCgiKyIpLHg9ImFsbCI9PT12LGI9eHx8LTEhPT15LmluZGV4T2YoInkiKSxfPXh8fC0xIT09eS5pbmRleE9mKCJ0ZXh0Iiksdz1iP1tnKCJvcGVuIiksZygiaGlnaCIpLGcoImxvdyIpLGcoImNsb3NlIikrIiAgIitjW21dXTpbXTtyZXR1cm4gXyYmcyhwLGwsdyksaC5leHRyYVRleHQ9dy5qb2luKCI8YnI+IiksaC55MD1oLnkxPW8uYzJwKHAueWMsITApLFtoXX1lLmV4cG9ydHM9e2hvdmVyUG9pbnRzOmZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiB0LmNkWzBdLnRyYWNlLmhvdmVybGFiZWwuc3BsaXQ/Zih0LGUscixuKTpoKHQsZSxyLG4pfSxob3ZlclNwbGl0OmYsaG92ZXJPblBvaW50czpofX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjozNjcsIi4uLy4uL2NvbXBvbmVudHMvZngiOjQwNywiLi4vLi4vY29uc3RhbnRzL2RlbHRhLmpzIjo0ODUsIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NTY2fV0sODg1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17bW9kdWxlVHlwZToidHJhY2UiLG5hbWU6Im9obGMiLGJhc2VQbG90TW9kdWxlOnQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbiIpLGNhdGVnb3JpZXM6WyJjYXJ0ZXNpYW4iLCJzdmciLCJzaG93TGVnZW5kIl0sbWV0YTp7fSxhdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxjYWxjOnQoIi4vY2FsYyIpLmNhbGMscGxvdDp0KCIuL3Bsb3QiKSxzdHlsZTp0KCIuL3N0eWxlIiksaG92ZXJQb2ludHM6dCgiLi9ob3ZlciIpLmhvdmVyUG9pbnRzLHNlbGVjdFBvaW50czp0KCIuL3NlbGVjdCIpfX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iOjU3OCwiLi9hdHRyaWJ1dGVzIjo4ODEsIi4vY2FsYyI6ODgyLCIuL2RlZmF1bHRzIjo4ODMsIi4vaG92ZXIiOjg4NCwiLi9wbG90Ijo4ODcsIi4vc2VsZWN0Ijo4ODgsIi4vc3R5bGUiOjg4OX1dLDg4NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9yZWdpc3RyeSIpLGk9dCgiLi4vLi4vbGliIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGEpe3ZhciBvPXIoIngiKSxzPXIoIm9wZW4iKSxsPXIoImhpZ2giKSxjPXIoImxvdyIpLHU9cigiY2xvc2UiKTtpZihyKCJob3ZlcmxhYmVsLnNwbGl0Iiksbi5nZXRDb21wb25lbnRNZXRob2QoImNhbGVuZGFycyIsImhhbmRsZVRyYWNlRGVmYXVsdHMiKSh0LGUsWyJ4Il0sYSkscyYmbCYmYyYmdSl7dmFyIGY9TWF0aC5taW4ocy5sZW5ndGgsbC5sZW5ndGgsYy5sZW5ndGgsdS5sZW5ndGgpO3JldHVybiBvJiYoZj1NYXRoLm1pbihmLGkubWluUm93TGVuZ3RoKG8pKSksZS5fbGVuZ3RoPWYsZn19fSx7Ii4uLy4uL2xpYiI6NTE1LCIuLi8uLi9yZWdpc3RyeSI6NjQ3fV0sODg3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4uLy4uL2xpYiIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixhKXt2YXIgbz1lLnlheGlzLHM9ZS54YXhpcyxsPSEhcy5yYW5nZWJyZWFrcztpLm1ha2VUcmFjZUdyb3VwcyhhLHIsInRyYWNlIG9obGMiKS5lYWNoKChmdW5jdGlvbih0KXt2YXIgZT1uLnNlbGVjdCh0aGlzKSxyPXRbMF0sYT1yLnQ7aWYoITAhPT1yLnRyYWNlLnZpc2libGV8fGEuZW1wdHkpZS5yZW1vdmUoKTtlbHNle3ZhciBjPWEudGlja0xlbix1PWUuc2VsZWN0QWxsKCJwYXRoIikuZGF0YShpLmlkZW50aXR5KTt1LmVudGVyKCkuYXBwZW5kKCJwYXRoIiksdS5leGl0KCkucmVtb3ZlKCksdS5hdHRyKCJkIiwoZnVuY3Rpb24odCl7aWYodC5lbXB0eSlyZXR1cm4iTTAsMFoiO3ZhciBlPXMuYzJwKHQucG9zLWMsITApLHI9cy5jMnAodC5wb3MrYywhMCksbj1sPyhlK3IpLzI6cy5jMnAodC5wb3MsITApO3JldHVybiJNIitlKyIsIitvLmMycCh0Lm8sITApKyJIIituKyJNIituKyIsIitvLmMycCh0LmgsITApKyJWIitvLmMycCh0LmwsITApKyJNIityKyIsIitvLmMycCh0LmMsITApKyJIIitufSkpfX0pKX19LHsiLi4vLi4vbGliIjo1MTUsIkBwbG90bHkvZDMiOjU4fV0sODg4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLG49dC5jZCxpPXQueGF4aXMsYT10LnlheGlzLG89W10scz1uWzBdLnQuYlBvc3x8MDtpZighMT09PWUpZm9yKHI9MDtyPG4ubGVuZ3RoO3IrKyluW3JdLnNlbGVjdGVkPTA7ZWxzZSBmb3Iocj0wO3I8bi5sZW5ndGg7cisrKXt2YXIgbD1uW3JdO2UuY29udGFpbnMoW2kuYzJwKGwucG9zK3MpLGEuYzJwKGwueWMpXSxudWxsLGwuaSx0KT8oby5wdXNoKHtwb2ludE51bWJlcjpsLmkseDppLmMyZChsLnBvcykseTphLmMyZChsLnljKX0pLGwuc2VsZWN0ZWQ9MSk6bC5zZWxlY3RlZD0wfXJldHVybiBvfX0se31dLDg4OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBvPXJ8fG4uc2VsZWN0KHQpLnNlbGVjdEFsbCgiZy5vaGxjbGF5ZXIiKS5zZWxlY3RBbGwoImcudHJhY2UiKTtvLnN0eWxlKCJvcGFjaXR5IiwoZnVuY3Rpb24odCl7cmV0dXJuIHRbMF0udHJhY2Uub3BhY2l0eX0pKSxvLmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0udHJhY2U7bi5zZWxlY3QodGhpcykuc2VsZWN0QWxsKCJwYXRoIikuZWFjaCgoZnVuY3Rpb24odCl7aWYoIXQuZW1wdHkpe3ZhciByPWVbdC5kaXJdLmxpbmU7bi5zZWxlY3QodGhpcykuc3R5bGUoImZpbGwiLCJub25lIikuY2FsbChhLnN0cm9rZSxyLmNvbG9yKS5jYWxsKGkuZGFzaExpbmUsci5kYXNoLHIud2lkdGgpLnN0eWxlKCJvcGFjaXR5IixlLnNlbGVjdGVkcG9pbnRzJiYhdC5zZWxlY3RlZD8uMzoxKX19KSl9KSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjM2NywiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjozODksIkBwbG90bHkvZDMiOjU4fV0sODkwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LGk9dCgiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIiksbz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyIpLHM9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxsPXQoIi4uLy4uL3Bsb3RzL2RvbWFpbiIpLmF0dHJpYnV0ZXMsYz1uKHtlZGl0VHlwZToiY2FsYyJ9LG8oImxpbmUiLHtlZGl0VHlwZU92ZXJyaWRlOiJjYWxjIn0pLHtzaGFwZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsibGluZWFyIiwiaHNwbGluZSJdLGRmbHQ6ImxpbmVhciIsZWRpdFR5cGU6InBsb3QifSxob3ZlcnRlbXBsYXRlOnMoe2VkaXRUeXBlOiJwbG90IixhcnJheU9rOiExfSx7a2V5czpbImNvdW50IiwicHJvYmFiaWxpdHkiXX0pfSk7ZS5leHBvcnRzPXtkb21haW46bCh7bmFtZToicGFyY2F0cyIsdHJhY2U6ITAsZWRpdFR5cGU6ImNhbGMifSksaG92ZXJpbmZvOm4oe30saS5ob3ZlcmluZm8se2ZsYWdzOlsiY291bnQiLCJwcm9iYWJpbGl0eSJdLGVkaXRUeXBlOiJwbG90IixhcnJheU9rOiExfSksaG92ZXJvbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiY2F0ZWdvcnkiLCJjb2xvciIsImRpbWVuc2lvbiJdLGRmbHQ6ImNhdGVnb3J5IixlZGl0VHlwZToicGxvdCJ9LGhvdmVydGVtcGxhdGU6cyh7ZWRpdFR5cGU6InBsb3QiLGFycmF5T2s6ITF9LHtrZXlzOlsiY291bnQiLCJwcm9iYWJpbGl0eSIsImNhdGVnb3J5IiwiY2F0ZWdvcnljb3VudCIsImNvbG9yY291bnQiLCJiYW5kY29sb3Jjb3VudCJdfSksYXJyYW5nZW1lbnQ6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInBlcnBlbmRpY3VsYXIiLCJmcmVlZm9ybSIsImZpeGVkIl0sZGZsdDoicGVycGVuZGljdWxhciIsZWRpdFR5cGU6InBsb3QifSxidW5kbGVjb2xvcnM6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6InBsb3QifSxzb3J0cGF0aHM6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImZvcndhcmQiLCJiYWNrd2FyZCJdLGRmbHQ6ImZvcndhcmQiLGVkaXRUeXBlOiJwbG90In0sbGFiZWxmb250OmEoe2VkaXRUeXBlOiJjYWxjIn0pLHRpY2tmb250OmEoe2VkaXRUeXBlOiJjYWxjIn0pLGRpbWVuc2lvbnM6e19pc0xpbmtlZFRvQXJyYXk6ImRpbWVuc2lvbiIsbGFiZWw6e3ZhbFR5cGU6InN0cmluZyIsZWRpdFR5cGU6ImNhbGMifSxjYXRlZ29yeW9yZGVyOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ0cmFjZSIsImNhdGVnb3J5IGFzY2VuZGluZyIsImNhdGVnb3J5IGRlc2NlbmRpbmciLCJhcnJheSJdLGRmbHQ6InRyYWNlIixlZGl0VHlwZToiY2FsYyJ9LGNhdGVnb3J5YXJyYXk6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sdGlja3RleHQ6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sdmFsdWVzOnt2YWxUeXBlOiJkYXRhX2FycmF5IixkZmx0OltdLGVkaXRUeXBlOiJjYWxjIn0sZGlzcGxheWluZGV4Ont2YWxUeXBlOiJpbnRlZ2VyIixlZGl0VHlwZToiY2FsYyJ9LGVkaXRUeXBlOiJjYWxjIix2aXNpYmxlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJjYWxjIn19LGxpbmU6Yyxjb3VudHM6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxLGFycmF5T2s6ITAsZWRpdFR5cGU6ImNhbGMifSxjdXN0b21kYXRhOnZvaWQgMCxob3ZlcmxhYmVsOnZvaWQgMCxpZHM6dm9pZCAwLGxlZ2VuZGdyb3VwOnZvaWQgMCxsZWdlbmRyYW5rOnZvaWQgMCxvcGFjaXR5OnZvaWQgMCxzZWxlY3RlZHBvaW50czp2b2lkIDAsc2hvd2xlZ2VuZDp2b2lkIDB9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjozNzQsIi4uLy4uL2xpYi9leHRlbmQiOjUwNSwiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyI6NTYyLCIuLi8uLi9wbG90cy9kb21haW4iOjU5MywiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIjo1OTQsIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjY0Mn1dLDg5MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9nZXRfZGF0YSIpLmdldE1vZHVsZUNhbGNEYXRhLGk9dCgiLi9wbG90Iik7ci5uYW1lPSJwYXJjYXRzIixyLnBsb3Q9ZnVuY3Rpb24odCxlLHIsYSl7dmFyIG89bih0LmNhbGNkYXRhLCJwYXJjYXRzIik7aWYoby5sZW5ndGgpe3ZhciBzPW9bMF07aSh0LHMscixhKX19LHIuY2xlYW49ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9bi5faGFzJiZuLl9oYXMoInBhcmNhdHMiKSxhPWUuX2hhcyYmZS5faGFzKCJwYXJjYXRzIik7aSYmIWEmJm4uX3BhcGVyZGl2LnNlbGVjdEFsbCgiLnBhcmNhdHMiKS5yZW1vdmUoKX19LHsiLi4vLi4vcGxvdHMvZ2V0X2RhdGEiOjYwMiwiLi9wbG90Ijo4OTZ9XSw4OTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliL2d1cCIpLndyYXAsaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvaGVscGVycyIpLmhhc0NvbG9yc2NhbGUsYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvY2FsYyIpLG89dCgiLi4vLi4vbGliL2ZpbHRlcl91bmlxdWUuanMiKSxzPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLGw9dCgiLi4vLi4vbGliIiksYz10KCJmYXN0LWlzbnVtZXJpYyIpO2Z1bmN0aW9uIHUodCxlLHIpe3QudmFsdWVJbmRzLnB1c2goZSksdC5jb3VudCs9cn1mdW5jdGlvbiBmKHQsZSxyKXtyZXR1cm57Y2F0ZWdvcnlJbmRzOnQsY29sb3I6ZSxyYXdDb2xvcjpyLHZhbHVlSW5kczpbXSxjb3VudDowfX1mdW5jdGlvbiBoKHQsZSxyKXt0LnZhbHVlSW5kcy5wdXNoKGUpLHQuY291bnQrPXJ9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9bC5maWx0ZXJWaXNpYmxlKGUuZGltZW5zaW9ucyk7aWYoMD09PXIubGVuZ3RoKXJldHVybltdO3ZhciBwLGQsbSxnPXIubWFwKChmdW5jdGlvbih0KXt2YXIgZTtpZigidHJhY2UiPT09dC5jYXRlZ29yeW9yZGVyKWU9bnVsbDtlbHNlIGlmKCJhcnJheSI9PT10LmNhdGVnb3J5b3JkZXIpZT10LmNhdGVnb3J5YXJyYXk7ZWxzZXtlPW8odC52YWx1ZXMpO2Zvcih2YXIgcj0hMCxuPTA7bjxlLmxlbmd0aDtuKyspaWYoIWMoZVtuXSkpe3I9ITE7YnJlYWt9ZS5zb3J0KHI/bC5zb3J0ZXJBc2M6dm9pZCAwKSwiY2F0ZWdvcnkgZGVzY2VuZGluZyI9PT10LmNhdGVnb3J5b3JkZXImJihlPWUucmV2ZXJzZSgpKX1yZXR1cm4gZnVuY3Rpb24odCxlKXtlPW51bGw9PWU/W106ZS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0fSkpO3ZhciByPXt9LG49e30saT1bXTtlLmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7clt0XT0wLG5bdF09ZX0pKTtmb3IodmFyIGE9MDthPHQubGVuZ3RoO2ErKyl7dmFyIG8scz10W2FdO3ZvaWQgMD09PXJbc10/KHJbc109MSxvPWUucHVzaChzKS0xLG5bc109byk6KHJbc10rKyxvPW5bc10pLGkucHVzaChvKX12YXIgbD1lLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHJbdF19KSk7cmV0dXJue3VuaXF1ZVZhbHVlczplLHVuaXF1ZUNvdW50czpsLGluZHM6aX19KHQudmFsdWVzLGUpfSkpO3A9bC5pc0FycmF5T3JUeXBlZEFycmF5KGUuY291bnRzKT9lLmNvdW50czpbZS5jb3VudHNdLGZ1bmN0aW9uKHQpe3ZhciBlO2lmKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1uZXcgQXJyYXkodC5sZW5ndGgpLHI9MDtyPHQubGVuZ3RoO3IrKyl7aWYodFtyXTwwfHx0W3JdPj10Lmxlbmd0aClyZXR1cm4hMTtpZih2b2lkIDAhPT1lW3Rbcl1dKXJldHVybiExO2VbdFtyXV09ITB9cmV0dXJuITB9KHQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5kaXNwbGF5aW5kZXh9KSkpKWZvcihlPTA7ZTx0Lmxlbmd0aDtlKyspdFtlXS5fZGlzcGxheWluZGV4PXRbZV0uZGlzcGxheWluZGV4O2Vsc2UgZm9yKGU9MDtlPHQubGVuZ3RoO2UrKyl0W2VdLl9kaXNwbGF5aW5kZXg9ZX0ociksci5mb3JFYWNoKChmdW5jdGlvbih0LGUpeyFmdW5jdGlvbih0LGUpe3QuX2NhdGVnb3J5YXJyYXk9ZS51bmlxdWVWYWx1ZXMsbnVsbD09PXQudGlja3RleHR8fHZvaWQgMD09PXQudGlja3RleHQ/dC5fdGlja3RleHQ9W106dC5fdGlja3RleHQ9dC50aWNrdGV4dC5zbGljZSgpO2Zvcih2YXIgcj10Ll90aWNrdGV4dC5sZW5ndGg7cjxlLnVuaXF1ZVZhbHVlcy5sZW5ndGg7cisrKXQuX3RpY2t0ZXh0LnB1c2goZS51bmlxdWVWYWx1ZXNbcl0pfSh0LGdbZV0pfSkpO3ZhciB2LHk9ZS5saW5lO3k/KGkoZSwibGluZSIpJiZhKHQsZSx7dmFsczplLmxpbmUuY29sb3IsY29udGFpbmVyU3RyOiJsaW5lIixjTGV0dGVyOiJjIn0pLHY9cy50cnlDb2xvcnNjYWxlKHkpKTp2PWwuaWRlbnRpdHk7dmFyIHgsYixfLHcsVCxrPXJbMF0udmFsdWVzLmxlbmd0aCxBPXt9LE09Zy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmluZHN9KSk7Zm9yKG09MCx4PTA7eDxrO3grKyl7dmFyIFM9W107Zm9yKGI9MDtiPE0ubGVuZ3RoO2IrKylTLnB1c2goTVtiXVt4XSk7ZD1wW3glcC5sZW5ndGhdLG0rPWQ7dmFyIEU9KF89eCx3PXZvaWQgMCxUPXZvaWQgMCxsLmlzQXJyYXlPclR5cGVkQXJyYXkoeS5jb2xvcik/VD13PXkuY29sb3JbXyV5LmNvbG9yLmxlbmd0aF06dz15LmNvbG9yLHtjb2xvcjp2KHcpLHJhd0NvbG9yOlR9KSxMPVMrIi0iK0UucmF3Q29sb3I7dm9pZCAwPT09QVtMXSYmKEFbTF09ZihTLEUuY29sb3IsRS5yYXdDb2xvcikpLGgoQVtMXSx4LGQpfXZhciBDLFA9ci5tYXAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHQsZSxyLG4saSl7cmV0dXJue2RpbWVuc2lvbkluZDp0LGNvbnRhaW5lckluZDplLGRpc3BsYXlJbmQ6cixkaW1lbnNpb25MYWJlbDpuLGNvdW50OmksY2F0ZWdvcmllczpbXSxkcmFnWDpudWxsfX0oZSx0Ll9pbmRleCx0Ll9kaXNwbGF5aW5kZXgsdC5sYWJlbCxtKX0pKTtmb3IoeD0wO3g8azt4KyspZm9yKGQ9cFt4JXAubGVuZ3RoXSxiPTA7YjxQLmxlbmd0aDtiKyspe3ZhciBJPVBbYl0uY29udGFpbmVySW5kLE89Z1tiXS5pbmRzW3hdLHo9UFtiXS5jYXRlZ29yaWVzO2lmKHZvaWQgMD09PXpbT10pe3ZhciBEPWUuZGltZW5zaW9uc1tJXS5fY2F0ZWdvcnlhcnJheVtPXSxSPWUuZGltZW5zaW9uc1tJXS5fdGlja3RleHRbT107eltPXT17ZGltZW5zaW9uSW5kOmIsY2F0ZWdvcnlJbmQ6Qz1PLGNhdGVnb3J5VmFsdWU6RCxkaXNwbGF5SW5kOkMsY2F0ZWdvcnlMYWJlbDpSLHZhbHVlSW5kczpbXSxjb3VudDowLGRyYWdZOm51bGx9fXUoeltPXSx4LGQpfXJldHVybiBuKGZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuY2F0ZWdvcmllcy5sZW5ndGh9KSkucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiBNYXRoLm1heCh0LGUpfSkpO3JldHVybntkaW1lbnNpb25zOnQscGF0aHM6ZSx0cmFjZTp2b2lkIDAsbWF4Q2F0czpuLGNvdW50OnJ9fShQLEEsbSkpfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvY2FsYyI6Mzc1LCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvaGVscGVycyI6Mzc4LCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjM4OSwiLi4vLi4vbGliIjo1MTUsIi4uLy4uL2xpYi9maWx0ZXJfdW5pcXVlLmpzIjo1MDYsIi4uLy4uL2xpYi9ndXAiOjUxMiwiZmFzdC1pc251bWVyaWMiOjE5MH1dLDg5MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9oZWxwZXJzIikuaGFzQ29sb3JzY2FsZSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9kZWZhdWx0cyIpLG89dCgiLi4vLi4vcGxvdHMvZG9tYWluIikuZGVmYXVsdHMscz10KCIuLi8uLi9wbG90cy9hcnJheV9jb250YWluZXJfZGVmYXVsdHMiKSxsPXQoIi4vYXR0cmlidXRlcyIpLGM9dCgiLi4vcGFyY29vcmRzL21lcmdlX2xlbmd0aCIpO2Z1bmN0aW9uIHUodCxlKXtmdW5jdGlvbiByKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxsLmRpbWVuc2lvbnMscixpKX12YXIgaT1yKCJ2YWx1ZXMiKSxhPXIoInZpc2libGUiKTtpZihpJiZpLmxlbmd0aHx8KGE9ZS52aXNpYmxlPSExKSxhKXtyKCJsYWJlbCIpLHIoImRpc3BsYXlpbmRleCIsZS5faW5kZXgpO3ZhciBvLHM9dC5jYXRlZ29yeWFycmF5LGM9QXJyYXkuaXNBcnJheShzKSYmcy5sZW5ndGg+MDtjJiYobz0iYXJyYXkiKTt2YXIgdT1yKCJjYXRlZ29yeW9yZGVyIixvKTsiYXJyYXkiPT09dT8ocigiY2F0ZWdvcnlhcnJheSIpLHIoInRpY2t0ZXh0IikpOihkZWxldGUgdC5jYXRlZ29yeWFycmF5LGRlbGV0ZSB0LnRpY2t0ZXh0KSxjfHwiYXJyYXkiIT09dXx8KGUuY2F0ZWdvcnlvcmRlcj0idHJhY2UiKX19ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGYpe2Z1bmN0aW9uIGgocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLGwscixpKX12YXIgcD1zKHQsZSx7bmFtZToiZGltZW5zaW9ucyIsaGFuZGxlSXRlbURlZmF1bHRzOnV9KSxkPWZ1bmN0aW9uKHQsZSxyLG8scyl7cygibGluZS5zaGFwZSIpLHMoImxpbmUuaG92ZXJ0ZW1wbGF0ZSIpO3ZhciBsPXMoImxpbmUuY29sb3IiLG8uY29sb3J3YXlbMF0pO2lmKGkodCwibGluZSIpJiZuLmlzQXJyYXlPclR5cGVkQXJyYXkobCkpe2lmKGwubGVuZ3RoKXJldHVybiBzKCJsaW5lLmNvbG9yc2NhbGUiKSxhKHQsZSxvLHMse3ByZWZpeDoibGluZS4iLGNMZXR0ZXI6ImMifSksbC5sZW5ndGg7ZS5saW5lLmNvbG9yPXJ9cmV0dXJuIDEvMH0odCxlLHIsZixoKTtvKGUsZixoKSxBcnJheS5pc0FycmF5KHApJiZwLmxlbmd0aHx8KGUudmlzaWJsZT0hMSksYyhlLHAsInZhbHVlcyIsZCksaCgiaG92ZXJvbiIpLGgoImhvdmVydGVtcGxhdGUiKSxoKCJhcnJhbmdlbWVudCIpLGgoImJ1bmRsZWNvbG9ycyIpLGgoInNvcnRwYXRocyIpLGgoImNvdW50cyIpO3ZhciBtPXtmYW1pbHk6Zi5mb250LmZhbWlseSxzaXplOk1hdGgucm91bmQoZi5mb250LnNpemUpLGNvbG9yOmYuZm9udC5jb2xvcn07bi5jb2VyY2VGb250KGgsImxhYmVsZm9udCIsbSk7dmFyIGc9e2ZhbWlseTpmLmZvbnQuZmFtaWx5LHNpemU6TWF0aC5yb3VuZChmLmZvbnQuc2l6ZS8xLjIpLGNvbG9yOmYuZm9udC5jb2xvcn07bi5jb2VyY2VGb250KGgsInRpY2tmb250IixnKX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2RlZmF1bHRzIjozNzcsIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9oZWxwZXJzIjozNzgsIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9wbG90cy9hcnJheV9jb250YWluZXJfZGVmYXVsdHMiOjU2MSwiLi4vLi4vcGxvdHMvZG9tYWluIjo1OTMsIi4uL3BhcmNvb3Jkcy9tZXJnZV9sZW5ndGgiOjkwNywiLi9hdHRyaWJ1dGVzIjo4OTB9XSw4OTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXthdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxjYWxjOnQoIi4vY2FsYyIpLHBsb3Q6dCgiLi9wbG90IiksY29sb3JiYXI6e2NvbnRhaW5lcjoibGluZSIsbWluOiJjbWluIixtYXg6ImNtYXgifSxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToicGFyY2F0cyIsYmFzZVBsb3RNb2R1bGU6dCgiLi9iYXNlX3Bsb3QiKSxjYXRlZ29yaWVzOlsibm9PcGFjaXR5Il0sbWV0YTp7fX19LHsiLi9hdHRyaWJ1dGVzIjo4OTAsIi4vYmFzZV9wbG90Ijo4OTEsIi4vY2FsYyI6ODkyLCIuL2RlZmF1bHRzIjo4OTMsIi4vcGxvdCI6ODk2fV0sODk1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoImQzLWludGVycG9sYXRlIikuaW50ZXJwb2xhdGVOdW1iZXIsYT10KCIuLi8uLi9wbG90X2FwaS9wbG90X2FwaSIpLG89dCgiLi4vLi4vY29tcG9uZW50cy9meCIpLHM9dCgiLi4vLi4vbGliIiksbD1zLnN0clRyYW5zbGF0ZSxjPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLHU9dCgidGlueWNvbG9yMiIpLGY9dCgiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIik7ZnVuY3Rpb24gaCh0LGUscixpKXt2YXIgYT10Lm1hcChGLmJpbmQoMCxlLHIpKSxvPWkuc2VsZWN0QWxsKCJnLnBhcmNhdHNsYXllciIpLmRhdGEoW251bGxdKTtvLmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJwYXJjYXRzbGF5ZXIiKS5zdHlsZSgicG9pbnRlci1ldmVudHMiLCJhbGwiKTt2YXIgdT1vLnNlbGVjdEFsbCgiZy50cmFjZS5wYXJjYXRzIikuZGF0YShhLHApLGg9dS5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIiwidHJhY2UgcGFyY2F0cyIpO3UuYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24odCl7cmV0dXJuIGwodC54LHQueSl9KSksaC5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsInBhdGhzIik7dmFyIHk9dS5zZWxlY3QoImcucGF0aHMiKS5zZWxlY3RBbGwoInBhdGgucGF0aCIpLmRhdGEoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnBhdGhzfSkscCk7eS5hdHRyKCJmaWxsIiwoZnVuY3Rpb24odCl7cmV0dXJuIHQubW9kZWwuY29sb3J9KSk7dmFyIHg9eS5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmF0dHIoImNsYXNzIiwicGF0aCIpLmF0dHIoInN0cm9rZS1vcGFjaXR5IiwwKS5hdHRyKCJmaWxsIiwoZnVuY3Rpb24odCl7cmV0dXJuIHQubW9kZWwuY29sb3J9KSkuYXR0cigiZmlsbC1vcGFjaXR5IiwwKTtfKHgpLHkuYXR0cigiZCIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LnN2Z0R9KSkseC5lbXB0eSgpfHx5LnNvcnQobSkseS5leGl0KCkucmVtb3ZlKCkseS5vbigibW91c2VvdmVyIixnKS5vbigibW91c2VvdXQiLHYpLm9uKCJjbGljayIsYiksaC5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsImRpbWVuc2lvbnMiKTt2YXIgdz11LnNlbGVjdCgiZy5kaW1lbnNpb25zIikuc2VsZWN0QWxsKCJnLmRpbWVuc2lvbiIpLmRhdGEoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRpbWVuc2lvbnN9KSxwKTt3LmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJkaW1lbnNpb24iKSx3LmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQpe3JldHVybiBsKHQueCwwKX0pKSx3LmV4aXQoKS5yZW1vdmUoKTt2YXIgQT13LnNlbGVjdEFsbCgiZy5jYXRlZ29yeSIpLmRhdGEoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmNhdGVnb3JpZXN9KSxwKSxNPUEuZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsImNhdGVnb3J5Iik7QS5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbih0KXtyZXR1cm4gbCgwLHQueSl9KSksTS5hcHBlbmQoInJlY3QiKS5hdHRyKCJjbGFzcyIsImNhdHJlY3QiKS5hdHRyKCJwb2ludGVyLWV2ZW50cyIsIm5vbmUiKSxBLnNlbGVjdCgicmVjdC5jYXRyZWN0IikuYXR0cigiZmlsbCIsIm5vbmUiKS5hdHRyKCJ3aWR0aCIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LndpZHRofSkpLmF0dHIoImhlaWdodCIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LmhlaWdodH0pKSxUKE0pO3ZhciBTPUEuc2VsZWN0QWxsKCJyZWN0LmJhbmRyZWN0IikuZGF0YSgoZnVuY3Rpb24odCl7cmV0dXJuIHQuYmFuZHN9KSxwKTtTLmVhY2goKGZ1bmN0aW9uKCl7cy5yYWlzZVRvVG9wKHRoaXMpfSkpLFMuYXR0cigiZmlsbCIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LmNvbG9yfSkpO3ZhciBFPVMuZW50ZXIoKS5hcHBlbmQoInJlY3QiKS5hdHRyKCJjbGFzcyIsImJhbmRyZWN0IikuYXR0cigic3Ryb2tlLW9wYWNpdHkiLDApLmF0dHIoImZpbGwiLChmdW5jdGlvbih0KXtyZXR1cm4gdC5jb2xvcn0pKS5hdHRyKCJmaWxsLW9wYWNpdHkiLDApO1MuYXR0cigiZmlsbCIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LmNvbG9yfSkpLmF0dHIoIndpZHRoIiwoZnVuY3Rpb24odCl7cmV0dXJuIHQud2lkdGh9KSkuYXR0cigiaGVpZ2h0IiwoZnVuY3Rpb24odCl7cmV0dXJuIHQuaGVpZ2h0fSkpLmF0dHIoInkiLChmdW5jdGlvbih0KXtyZXR1cm4gdC55fSkpLmF0dHIoImN1cnNvciIsKGZ1bmN0aW9uKHQpe3JldHVybiJmaXhlZCI9PT10LnBhcmNhdHNWaWV3TW9kZWwuYXJyYW5nZW1lbnQ/ImRlZmF1bHQiOiJwZXJwZW5kaWN1bGFyIj09PXQucGFyY2F0c1ZpZXdNb2RlbC5hcnJhbmdlbWVudD8ibnMtcmVzaXplIjoibW92ZSJ9KSksayhFKSxTLmV4aXQoKS5yZW1vdmUoKSxNLmFwcGVuZCgidGV4dCIpLmF0dHIoImNsYXNzIiwiY2F0bGFiZWwiKS5hdHRyKCJwb2ludGVyLWV2ZW50cyIsIm5vbmUiKTt2YXIgej1lLl9mdWxsTGF5b3V0LnBhcGVyX2JnY29sb3I7QS5zZWxlY3QoInRleHQuY2F0bGFiZWwiKS5hdHRyKCJ0ZXh0LWFuY2hvciIsKGZ1bmN0aW9uKHQpe3JldHVybiBkKHQpPyJzdGFydCI6ImVuZCJ9KSkuYXR0cigiYWxpZ25tZW50LWJhc2VsaW5lIiwibWlkZGxlIikuc3R5bGUoInRleHQtc2hhZG93IixmLm1ha2VUZXh0U2hhZG93KHopKS5zdHlsZSgiZmlsbCIsInJnYigwLCAwLCAwKSIpLmF0dHIoIngiLChmdW5jdGlvbih0KXtyZXR1cm4gZCh0KT90LndpZHRoKzU6LTV9KSkuYXR0cigieSIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LmhlaWdodC8yfSkpLnRleHQoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm1vZGVsLmNhdGVnb3J5TGFiZWx9KSkuZWFjaCgoZnVuY3Rpb24odCl7Yy5mb250KG4uc2VsZWN0KHRoaXMpLHQucGFyY2F0c1ZpZXdNb2RlbC5jYXRlZ29yeWxhYmVsZm9udCksZi5jb252ZXJ0VG9Uc3BhbnMobi5zZWxlY3QodGhpcyksZSl9KSksTS5hcHBlbmQoInRleHQiKS5hdHRyKCJjbGFzcyIsImRpbWxhYmVsIiksQS5zZWxlY3QoInRleHQuZGltbGFiZWwiKS5hdHRyKCJ0ZXh0LWFuY2hvciIsIm1pZGRsZSIpLmF0dHIoImFsaWdubWVudC1iYXNlbGluZSIsImJhc2VsaW5lIikuYXR0cigiY3Vyc29yIiwoZnVuY3Rpb24odCl7cmV0dXJuImZpeGVkIj09PXQucGFyY2F0c1ZpZXdNb2RlbC5hcnJhbmdlbWVudD8iZGVmYXVsdCI6ImV3LXJlc2l6ZSJ9KSkuYXR0cigieCIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LndpZHRoLzJ9KSkuYXR0cigieSIsLTUpLnRleHQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIDA9PT1lP3QucGFyY2F0c1ZpZXdNb2RlbC5tb2RlbC5kaW1lbnNpb25zW3QubW9kZWwuZGltZW5zaW9uSW5kXS5kaW1lbnNpb25MYWJlbDpudWxsfSkpLmVhY2goKGZ1bmN0aW9uKHQpe2MuZm9udChuLnNlbGVjdCh0aGlzKSx0LnBhcmNhdHNWaWV3TW9kZWwubGFiZWxmb250KX0pKSxBLnNlbGVjdEFsbCgicmVjdC5iYW5kcmVjdCIpLm9uKCJtb3VzZW92ZXIiLEwpLm9uKCJtb3VzZW91dCIsQyksQS5leGl0KCkucmVtb3ZlKCksdy5jYWxsKG4uYmVoYXZpb3IuZHJhZygpLm9yaWdpbigoZnVuY3Rpb24odCl7cmV0dXJue3g6dC54LHk6MH19KSkub24oImRyYWdzdGFydCIsUCkub24oImRyYWciLEkpLm9uKCJkcmFnZW5kIixPKSksdS5lYWNoKChmdW5jdGlvbih0KXt0LnRyYWNlU2VsZWN0aW9uPW4uc2VsZWN0KHRoaXMpLHQucGF0aFNlbGVjdGlvbj1uLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoImcucGF0aHMiKS5zZWxlY3RBbGwoInBhdGgucGF0aCIpLHQuZGltZW5zaW9uU2VsZWN0aW9uPW4uc2VsZWN0KHRoaXMpLnNlbGVjdEFsbCgiZy5kaW1lbnNpb25zIikuc2VsZWN0QWxsKCJnLmRpbWVuc2lvbiIpfSkpLHUuZXhpdCgpLnJlbW92ZSgpfWZ1bmN0aW9uIHAodCl7cmV0dXJuIHQua2V5fWZ1bmN0aW9uIGQodCl7dmFyIGU9dC5wYXJjYXRzVmlld01vZGVsLmRpbWVuc2lvbnMubGVuZ3RoLHI9dC5wYXJjYXRzVmlld01vZGVsLmRpbWVuc2lvbnNbZS0xXS5tb2RlbC5kaW1lbnNpb25JbmQ7cmV0dXJuIHQubW9kZWwuZGltZW5zaW9uSW5kPT09cn1mdW5jdGlvbiBtKHQsZSl7cmV0dXJuIHQubW9kZWwucmF3Q29sb3I+ZS5tb2RlbC5yYXdDb2xvcj8xOnQubW9kZWwucmF3Q29sb3I8ZS5tb2RlbC5yYXdDb2xvcj8tMTowfWZ1bmN0aW9uIGcodCl7aWYoIXQucGFyY2F0c1ZpZXdNb2RlbC5kcmFnRGltZW5zaW9uJiYtMT09PXQucGFyY2F0c1ZpZXdNb2RlbC5ob3ZlcmluZm9JdGVtcy5pbmRleE9mKCJza2lwIikpe3MucmFpc2VUb1RvcCh0aGlzKSx3KG4uc2VsZWN0KHRoaXMpKTt2YXIgZT15KHQpLHI9eCh0KTtpZih0LnBhcmNhdHNWaWV3TW9kZWwuZ3JhcGhEaXYuZW1pdCgicGxvdGx5X2hvdmVyIix7cG9pbnRzOmUsZXZlbnQ6bi5ldmVudCxjb25zdHJhaW50czpyfSksLTE9PT10LnBhcmNhdHNWaWV3TW9kZWwuaG92ZXJpbmZvSXRlbXMuaW5kZXhPZigibm9uZSIpKXt2YXIgaSxhLGwsYz1uLm1vdXNlKHRoaXMpWzBdLGY9dC5wYXJjYXRzVmlld01vZGVsLmdyYXBoRGl2LGg9dC5wYXJjYXRzVmlld01vZGVsLnRyYWNlLHA9Zi5fZnVsbExheW91dCxkPXAuX3BhcGVyZGl2Lm5vZGUoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxtPXQucGFyY2F0c1ZpZXdNb2RlbC5ncmFwaERpdi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtmb3IobD0wO2w8dC5sZWZ0WHMubGVuZ3RoLTE7bCsrKWlmKHQubGVmdFhzW2xdK3QuZGltV2lkdGhzW2xdLTI8PWMmJmM8PXQubGVmdFhzW2wrMV0rMil7dmFyIGc9dC5wYXJjYXRzVmlld01vZGVsLmRpbWVuc2lvbnNbbF0sdj10LnBhcmNhdHNWaWV3TW9kZWwuZGltZW5zaW9uc1tsKzFdO2k9KGcueCtnLndpZHRoK3YueCkvMixhPSh0LnRvcFlzW2xdK3QudG9wWXNbbCsxXSt0LmhlaWdodCkvMjticmVha312YXIgYj10LnBhcmNhdHNWaWV3TW9kZWwueCtpLF89dC5wYXJjYXRzVmlld01vZGVsLnkrYSxUPXUubW9zdFJlYWRhYmxlKHQubW9kZWwuY29sb3IsWyJibGFjayIsIndoaXRlIl0pLGs9dC5tb2RlbC5jb3VudCxBPWsvdC5wYXJjYXRzVmlld01vZGVsLm1vZGVsLmNvdW50LE09e2NvdW50TGFiZWw6ayxwcm9iYWJpbGl0eUxhYmVsOkEudG9GaXhlZCgzKX0sUz1bXTstMSE9PXQucGFyY2F0c1ZpZXdNb2RlbC5ob3ZlcmluZm9JdGVtcy5pbmRleE9mKCJjb3VudCIpJiZTLnB1c2goWyJDb3VudDoiLE0uY291bnRMYWJlbF0uam9pbigiICIpKSwtMSE9PXQucGFyY2F0c1ZpZXdNb2RlbC5ob3ZlcmluZm9JdGVtcy5pbmRleE9mKCJwcm9iYWJpbGl0eSIpJiZTLnB1c2goWyJQOiIsTS5wcm9iYWJpbGl0eUxhYmVsXS5qb2luKCIgIikpO3ZhciBFPVMuam9pbigiPGJyPiIpLEw9bi5tb3VzZShmKVswXTtvLmxvbmVIb3Zlcih7dHJhY2U6aCx4OmItZC5sZWZ0K20ubGVmdCx5Ol8tZC50b3ArbS50b3AsdGV4dDpFLGNvbG9yOnQubW9kZWwuY29sb3IsYm9yZGVyQ29sb3I6ImJsYWNrIixmb250RmFtaWx5OidNb25hY28sICJDb3VyaWVyIE5ldyIsIG1vbm9zcGFjZScsZm9udFNpemU6MTAsZm9udENvbG9yOlQsaWRlYWxBbGlnbjpMPGI/InJpZ2h0IjoibGVmdCIsaG92ZXJ0ZW1wbGF0ZTooaC5saW5lfHx7fSkuaG92ZXJ0ZW1wbGF0ZSxob3ZlcnRlbXBsYXRlTGFiZWxzOk0sZXZlbnREYXRhOlt7ZGF0YTpoLl9pbnB1dCxmdWxsRGF0YTpoLGNvdW50OmsscHJvYmFiaWxpdHk6QX1dfSx7Y29udGFpbmVyOnAuX2hvdmVybGF5ZXIubm9kZSgpLG91dGVyQ29udGFpbmVyOnAuX3BhcGVyLm5vZGUoKSxnZDpmfSl9fX1mdW5jdGlvbiB2KHQpe2lmKCF0LnBhcmNhdHNWaWV3TW9kZWwuZHJhZ0RpbWVuc2lvbiYmKF8obi5zZWxlY3QodGhpcykpLG8ubG9uZVVuaG92ZXIodC5wYXJjYXRzVmlld01vZGVsLmdyYXBoRGl2Ll9mdWxsTGF5b3V0Ll9ob3ZlcmxheWVyLm5vZGUoKSksdC5wYXJjYXRzVmlld01vZGVsLnBhdGhTZWxlY3Rpb24uc29ydChtKSwtMT09PXQucGFyY2F0c1ZpZXdNb2RlbC5ob3ZlcmluZm9JdGVtcy5pbmRleE9mKCJza2lwIikpKXt2YXIgZT15KHQpLHI9eCh0KTt0LnBhcmNhdHNWaWV3TW9kZWwuZ3JhcGhEaXYuZW1pdCgicGxvdGx5X3VuaG92ZXIiLHtwb2ludHM6ZSxldmVudDpuLmV2ZW50LGNvbnN0cmFpbnRzOnJ9KX19ZnVuY3Rpb24geSh0KXtmb3IodmFyIGU9W10scj16KHQucGFyY2F0c1ZpZXdNb2RlbCksbj0wO248dC5tb2RlbC52YWx1ZUluZHMubGVuZ3RoO24rKyl7dmFyIGk9dC5tb2RlbC52YWx1ZUluZHNbbl07ZS5wdXNoKHtjdXJ2ZU51bWJlcjpyLHBvaW50TnVtYmVyOml9KX1yZXR1cm4gZX1mdW5jdGlvbiB4KHQpe2Zvcih2YXIgZT17fSxyPXQucGFyY2F0c1ZpZXdNb2RlbC5tb2RlbC5kaW1lbnNpb25zLG49MDtuPHIubGVuZ3RoO24rKyl7dmFyIGk9cltuXSxhPWkuY2F0ZWdvcmllc1t0Lm1vZGVsLmNhdGVnb3J5SW5kc1tuXV07ZVtpLmNvbnRhaW5lckluZF09YS5jYXRlZ29yeVZhbHVlfXJldHVybiB2b2lkIDAhPT10Lm1vZGVsLnJhd0NvbG9yJiYoZS5jb2xvcj10Lm1vZGVsLnJhd0NvbG9yKSxlfWZ1bmN0aW9uIGIodCl7aWYoLTE9PT10LnBhcmNhdHNWaWV3TW9kZWwuaG92ZXJpbmZvSXRlbXMuaW5kZXhPZigic2tpcCIpKXt2YXIgZT15KHQpLHI9eCh0KTt0LnBhcmNhdHNWaWV3TW9kZWwuZ3JhcGhEaXYuZW1pdCgicGxvdGx5X2NsaWNrIix7cG9pbnRzOmUsZXZlbnQ6bi5ldmVudCxjb25zdHJhaW50czpyfSl9fWZ1bmN0aW9uIF8odCl7dC5hdHRyKCJmaWxsIiwoZnVuY3Rpb24odCl7cmV0dXJuIHQubW9kZWwuY29sb3J9KSkuYXR0cigiZmlsbC1vcGFjaXR5IiwuNikuYXR0cigic3Ryb2tlIiwibGlnaHRncmF5IikuYXR0cigic3Ryb2tlLXdpZHRoIiwuMikuYXR0cigic3Ryb2tlLW9wYWNpdHkiLDEpfWZ1bmN0aW9uIHcodCl7dC5hdHRyKCJmaWxsLW9wYWNpdHkiLC44KS5hdHRyKCJzdHJva2UiLChmdW5jdGlvbih0KXtyZXR1cm4gdS5tb3N0UmVhZGFibGUodC5tb2RlbC5jb2xvcixbImJsYWNrIiwid2hpdGUiXSl9KSkuYXR0cigic3Ryb2tlLXdpZHRoIiwuMyl9ZnVuY3Rpb24gVCh0KXt0LnNlbGVjdCgicmVjdC5jYXRyZWN0IikuYXR0cigic3Ryb2tlIiwiYmxhY2siKS5hdHRyKCJzdHJva2Utd2lkdGgiLDEpLmF0dHIoInN0cm9rZS1vcGFjaXR5IiwxKX1mdW5jdGlvbiBrKHQpe3QuYXR0cigic3Ryb2tlIiwiYmxhY2siKS5hdHRyKCJzdHJva2Utd2lkdGgiLC4yKS5hdHRyKCJzdHJva2Utb3BhY2l0eSIsMSkuYXR0cigiZmlsbC1vcGFjaXR5IiwxKX1mdW5jdGlvbiBBKHQpe3ZhciBlPXQucGFyY2F0c1ZpZXdNb2RlbC5wYXRoU2VsZWN0aW9uLHI9dC5jYXRlZ29yeVZpZXdNb2RlbC5tb2RlbC5kaW1lbnNpb25JbmQsbj10LmNhdGVnb3J5Vmlld01vZGVsLm1vZGVsLmNhdGVnb3J5SW5kO3JldHVybiBlLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIGUubW9kZWwuY2F0ZWdvcnlJbmRzW3JdPT09biYmZS5tb2RlbC5jb2xvcj09PXQuY29sb3J9KSl9ZnVuY3Rpb24gTSh0LGUscil7dmFyIGk9bi5zZWxlY3QodCkuZGF0dW0oKSxhPWkuY2F0ZWdvcnlWaWV3TW9kZWwubW9kZWwsbz1pLnBhcmNhdHNWaWV3TW9kZWwuZ3JhcGhEaXYscz1uLnNlbGVjdCh0LnBhcmVudE5vZGUpLnNlbGVjdEFsbCgicmVjdC5iYW5kcmVjdCIpLGw9W107cy5lYWNoKChmdW5jdGlvbih0KXtBKHQpLmVhY2goKGZ1bmN0aW9uKHQpe0FycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KGwseSh0KSl9KSl9KSk7dmFyIGM9e307Y1thLmRpbWVuc2lvbkluZF09YS5jYXRlZ29yeVZhbHVlLG8uZW1pdChlLHtwb2ludHM6bCxldmVudDpyLGNvbnN0cmFpbnRzOmN9KX1mdW5jdGlvbiBTKHQsZSxyKXt2YXIgaT1uLnNlbGVjdCh0KS5kYXR1bSgpLGE9aS5jYXRlZ29yeVZpZXdNb2RlbC5tb2RlbCxvPWkucGFyY2F0c1ZpZXdNb2RlbC5ncmFwaERpdixzPUEoaSksbD1bXTtzLmVhY2goKGZ1bmN0aW9uKHQpe0FycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KGwseSh0KSl9KSk7dmFyIGM9e307Y1thLmRpbWVuc2lvbkluZF09YS5jYXRlZ29yeVZhbHVlLHZvaWQgMCE9PWkucmF3Q29sb3ImJihjLmNvbG9yPWkucmF3Q29sb3IpLG8uZW1pdChlLHtwb2ludHM6bCxldmVudDpyLGNvbnN0cmFpbnRzOmN9KX1mdW5jdGlvbiBFKHQsZSxyKXt0Ll9mdWxsTGF5b3V0Ll9jYWxjSW52ZXJzZVRyYW5zZm9ybSh0KTt2YXIgaSxhLG89dC5fZnVsbExheW91dC5faW52U2NhbGVYLHM9dC5fZnVsbExheW91dC5faW52U2NhbGVZLGw9bi5zZWxlY3Qoci5wYXJlbnROb2RlKS5zZWxlY3QoInJlY3QuY2F0cmVjdCIpLGM9bC5ub2RlKCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdT1sLmRhdHVtKCksZj11LnBhcmNhdHNWaWV3TW9kZWwsaD1mLm1vZGVsLmRpbWVuc2lvbnNbdS5tb2RlbC5kaW1lbnNpb25JbmRdLHA9Zi50cmFjZSxkPWMudG9wK2MuaGVpZ2h0LzI7Zi5kaW1lbnNpb25zLmxlbmd0aD4xJiZoLmRpc3BsYXlJbmQ9PT1mLmRpbWVuc2lvbnMubGVuZ3RoLTE/KGk9Yy5sZWZ0LGE9ImxlZnQiKTooaT1jLmxlZnQrYy53aWR0aCxhPSJyaWdodCIpO3ZhciBtPXUubW9kZWwuY291bnQsZz11Lm1vZGVsLmNhdGVnb3J5TGFiZWwsdj1tL3UucGFyY2F0c1ZpZXdNb2RlbC5tb2RlbC5jb3VudCx5PXtjb3VudExhYmVsOm0sY2F0ZWdvcnlMYWJlbDpnLHByb2JhYmlsaXR5TGFiZWw6di50b0ZpeGVkKDMpfSx4PVtdOy0xIT09dS5wYXJjYXRzVmlld01vZGVsLmhvdmVyaW5mb0l0ZW1zLmluZGV4T2YoImNvdW50IikmJngucHVzaChbIkNvdW50OiIseS5jb3VudExhYmVsXS5qb2luKCIgIikpLC0xIT09dS5wYXJjYXRzVmlld01vZGVsLmhvdmVyaW5mb0l0ZW1zLmluZGV4T2YoInByb2JhYmlsaXR5IikmJngucHVzaChbIlAoIit5LmNhdGVnb3J5TGFiZWwrIik6Iix5LnByb2JhYmlsaXR5TGFiZWxdLmpvaW4oIiAiKSk7dmFyIGI9eC5qb2luKCI8YnI+Iik7cmV0dXJue3RyYWNlOnAseDpvKihpLWUubGVmdCkseTpzKihkLWUudG9wKSx0ZXh0OmIsY29sb3I6ImxpZ2h0Z3JheSIsYm9yZGVyQ29sb3I6ImJsYWNrIixmb250RmFtaWx5OidNb25hY28sICJDb3VyaWVyIE5ldyIsIG1vbm9zcGFjZScsZm9udFNpemU6MTIsZm9udENvbG9yOiJibGFjayIsaWRlYWxBbGlnbjphLGhvdmVydGVtcGxhdGU6cC5ob3ZlcnRlbXBsYXRlLGhvdmVydGVtcGxhdGVMYWJlbHM6eSxldmVudERhdGE6W3tkYXRhOnAuX2lucHV0LGZ1bGxEYXRhOnAsY291bnQ6bSxjYXRlZ29yeTpnLHByb2JhYmlsaXR5OnZ9XX19ZnVuY3Rpb24gTCh0KXtpZighdC5wYXJjYXRzVmlld01vZGVsLmRyYWdEaW1lbnNpb24mJi0xPT09dC5wYXJjYXRzVmlld01vZGVsLmhvdmVyaW5mb0l0ZW1zLmluZGV4T2YoInNraXAiKSl7aWYobi5tb3VzZSh0aGlzKVsxXTwtMSlyZXR1cm47dmFyIGUscj10LnBhcmNhdHNWaWV3TW9kZWwuZ3JhcGhEaXYsaT1yLl9mdWxsTGF5b3V0LGE9aS5fcGFwZXJkaXYubm9kZSgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGw9dC5wYXJjYXRzVmlld01vZGVsLmhvdmVyb247aWYoImNvbG9yIj09PWw/KCFmdW5jdGlvbih0KXt2YXIgZT1uLnNlbGVjdCh0KS5kYXR1bSgpLHI9QShlKTt3KHIpLHIuZWFjaCgoZnVuY3Rpb24oKXtzLnJhaXNlVG9Ub3AodGhpcyl9KSksbi5zZWxlY3QodC5wYXJlbnROb2RlKS5zZWxlY3RBbGwoInJlY3QuYmFuZHJlY3QiKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmNvbG9yPT09ZS5jb2xvcn0pKS5lYWNoKChmdW5jdGlvbigpe3MucmFpc2VUb1RvcCh0aGlzKSxuLnNlbGVjdCh0aGlzKS5hdHRyKCJzdHJva2UiLCJibGFjayIpLmF0dHIoInN0cm9rZS13aWR0aCIsMS41KX0pKX0odGhpcyksUyh0aGlzLCJwbG90bHlfaG92ZXIiLG4uZXZlbnQpKTooIWZ1bmN0aW9uKHQpe24uc2VsZWN0KHQucGFyZW50Tm9kZSkuc2VsZWN0QWxsKCJyZWN0LmJhbmRyZWN0IikuZWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9QSh0KTt3KGUpLGUuZWFjaCgoZnVuY3Rpb24oKXtzLnJhaXNlVG9Ub3AodGhpcyl9KSl9KSksbi5zZWxlY3QodC5wYXJlbnROb2RlKS5zZWxlY3QoInJlY3QuY2F0cmVjdCIpLmF0dHIoInN0cm9rZSIsImJsYWNrIikuYXR0cigic3Ryb2tlLXdpZHRoIiwyLjUpfSh0aGlzKSxNKHRoaXMsInBsb3RseV9ob3ZlciIsbi5ldmVudCkpLC0xPT09dC5wYXJjYXRzVmlld01vZGVsLmhvdmVyaW5mb0l0ZW1zLmluZGV4T2YoIm5vbmUiKSkiY2F0ZWdvcnkiPT09bD9lPUUocixhLHRoaXMpOiJjb2xvciI9PT1sP2U9ZnVuY3Rpb24odCxlLHIpe3QuX2Z1bGxMYXlvdXQuX2NhbGNJbnZlcnNlVHJhbnNmb3JtKHQpO3ZhciBpLGEsbz10Ll9mdWxsTGF5b3V0Ll9pbnZTY2FsZVgscz10Ll9mdWxsTGF5b3V0Ll9pbnZTY2FsZVksbD1yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGM9bi5zZWxlY3QocikuZGF0dW0oKSxmPWMuY2F0ZWdvcnlWaWV3TW9kZWwsaD1mLnBhcmNhdHNWaWV3TW9kZWwscD1oLm1vZGVsLmRpbWVuc2lvbnNbZi5tb2RlbC5kaW1lbnNpb25JbmRdLGQ9aC50cmFjZSxtPWwueStsLmhlaWdodC8yO2guZGltZW5zaW9ucy5sZW5ndGg+MSYmcC5kaXNwbGF5SW5kPT09aC5kaW1lbnNpb25zLmxlbmd0aC0xPyhpPWwubGVmdCxhPSJsZWZ0Iik6KGk9bC5sZWZ0K2wud2lkdGgsYT0icmlnaHQiKTt2YXIgZz1mLm1vZGVsLmNhdGVnb3J5TGFiZWwsdj1jLnBhcmNhdHNWaWV3TW9kZWwubW9kZWwuY291bnQseT0wO2MuY2F0ZWdvcnlWaWV3TW9kZWwuYmFuZHMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5jb2xvcj09PWMuY29sb3ImJih5Kz10LmNvdW50KX0pKTt2YXIgeD1mLm1vZGVsLmNvdW50LGI9MDtoLnBhdGhTZWxlY3Rpb24uZWFjaCgoZnVuY3Rpb24odCl7dC5tb2RlbC5jb2xvcj09PWMuY29sb3ImJihiKz10Lm1vZGVsLmNvdW50KX0pKTt2YXIgXz15L3Ysdz15L2IsVD15L3gsaz17Y291bnRMYWJlbDp2LGNhdGVnb3J5TGFiZWw6Zyxwcm9iYWJpbGl0eUxhYmVsOl8udG9GaXhlZCgzKX0sQT1bXTstMSE9PWYucGFyY2F0c1ZpZXdNb2RlbC5ob3ZlcmluZm9JdGVtcy5pbmRleE9mKCJjb3VudCIpJiZBLnB1c2goWyJDb3VudDoiLGsuY291bnRMYWJlbF0uam9pbigiICIpKSwtMSE9PWYucGFyY2F0c1ZpZXdNb2RlbC5ob3ZlcmluZm9JdGVtcy5pbmRleE9mKCJwcm9iYWJpbGl0eSIpJiYoQS5wdXNoKCJQKGNvbG9yIFx1MjIyOSAiK2crIik6ICIray5wcm9iYWJpbGl0eUxhYmVsKSxBLnB1c2goIlAoIitnKyIgfCBjb2xvcik6ICIrdy50b0ZpeGVkKDMpKSxBLnB1c2goIlAoY29sb3IgfCAiK2crIik6ICIrVC50b0ZpeGVkKDMpKSk7dmFyIE09QS5qb2luKCI8YnI+IiksUz11Lm1vc3RSZWFkYWJsZShjLmNvbG9yLFsiYmxhY2siLCJ3aGl0ZSJdKTtyZXR1cm57dHJhY2U6ZCx4Om8qKGktZS5sZWZ0KSx5OnMqKG0tZS50b3ApLHRleHQ6TSxjb2xvcjpjLmNvbG9yLGJvcmRlckNvbG9yOiJibGFjayIsZm9udEZhbWlseTonTW9uYWNvLCAiQ291cmllciBOZXciLCBtb25vc3BhY2UnLGZvbnRDb2xvcjpTLGZvbnRTaXplOjEwLGlkZWFsQWxpZ246YSxob3ZlcnRlbXBsYXRlOmQuaG92ZXJ0ZW1wbGF0ZSxob3ZlcnRlbXBsYXRlTGFiZWxzOmssZXZlbnREYXRhOlt7ZGF0YTpkLl9pbnB1dCxmdWxsRGF0YTpkLGNhdGVnb3J5OmcsY291bnQ6dixwcm9iYWJpbGl0eTpfLGNhdGVnb3J5Y291bnQ6eCxjb2xvcmNvdW50OmIsYmFuZGNvbG9yY291bnQ6eX1dfX0ocixhLHRoaXMpOiJkaW1lbnNpb24iPT09bCYmKGU9ZnVuY3Rpb24odCxlLHIpe3ZhciBpPVtdO3JldHVybiBuLnNlbGVjdChyLnBhcmVudE5vZGUucGFyZW50Tm9kZSkuc2VsZWN0QWxsKCJnLmNhdGVnb3J5Iikuc2VsZWN0KCJyZWN0LmNhdHJlY3QiKS5lYWNoKChmdW5jdGlvbigpe2kucHVzaChFKHQsZSx0aGlzKSl9KSksaX0ocixhLHRoaXMpKSxlJiZvLmxvbmVIb3ZlcihlLHtjb250YWluZXI6aS5faG92ZXJsYXllci5ub2RlKCksb3V0ZXJDb250YWluZXI6aS5fcGFwZXIubm9kZSgpLGdkOnJ9KX19ZnVuY3Rpb24gQyh0KXt2YXIgZT10LnBhcmNhdHNWaWV3TW9kZWw7aWYoIWUuZHJhZ0RpbWVuc2lvbiYmKF8oZS5wYXRoU2VsZWN0aW9uKSxUKGUuZGltZW5zaW9uU2VsZWN0aW9uLnNlbGVjdEFsbCgiZy5jYXRlZ29yeSIpKSxrKGUuZGltZW5zaW9uU2VsZWN0aW9uLnNlbGVjdEFsbCgiZy5jYXRlZ29yeSIpLnNlbGVjdEFsbCgicmVjdC5iYW5kcmVjdCIpKSxvLmxvbmVVbmhvdmVyKGUuZ3JhcGhEaXYuX2Z1bGxMYXlvdXQuX2hvdmVybGF5ZXIubm9kZSgpKSxlLnBhdGhTZWxlY3Rpb24uc29ydChtKSwtMT09PWUuaG92ZXJpbmZvSXRlbXMuaW5kZXhPZigic2tpcCIpKSl7ImNvbG9yIj09PXQucGFyY2F0c1ZpZXdNb2RlbC5ob3Zlcm9uP1ModGhpcywicGxvdGx5X3VuaG92ZXIiLG4uZXZlbnQpOk0odGhpcywicGxvdGx5X3VuaG92ZXIiLG4uZXZlbnQpfX1mdW5jdGlvbiBQKHQpeyJmaXhlZCIhPT10LnBhcmNhdHNWaWV3TW9kZWwuYXJyYW5nZW1lbnQmJih0LmRyYWdEaW1lbnNpb25EaXNwbGF5SW5kPXQubW9kZWwuZGlzcGxheUluZCx0LmluaXRpYWxEcmFnRGltZW5zaW9uRGlzcGxheUluZHM9dC5wYXJjYXRzVmlld01vZGVsLm1vZGVsLmRpbWVuc2lvbnMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5kaXNwbGF5SW5kfSkpLHQuZHJhZ0hhc01vdmVkPSExLHQuZHJhZ0NhdGVnb3J5RGlzcGxheUluZD1udWxsLG4uc2VsZWN0KHRoaXMpLnNlbGVjdEFsbCgiZy5jYXRlZ29yeSIpLnNlbGVjdCgicmVjdC5jYXRyZWN0IikuZWFjaCgoZnVuY3Rpb24oZSl7dmFyIHI9bi5tb3VzZSh0aGlzKVswXSxpPW4ubW91c2UodGhpcylbMV07LTI8PXImJnI8PWUud2lkdGgrMiYmLTI8PWkmJmk8PWUuaGVpZ2h0KzImJih0LmRyYWdDYXRlZ29yeURpc3BsYXlJbmQ9ZS5tb2RlbC5kaXNwbGF5SW5kLHQuaW5pdGlhbERyYWdDYXRlZ29yeURpc3BsYXlJbmRzPXQubW9kZWwuY2F0ZWdvcmllcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRpc3BsYXlJbmR9KSksZS5tb2RlbC5kcmFnWT1lLnkscy5yYWlzZVRvVG9wKHRoaXMucGFyZW50Tm9kZSksbi5zZWxlY3QodGhpcy5wYXJlbnROb2RlKS5zZWxlY3RBbGwoInJlY3QuYmFuZHJlY3QiKS5lYWNoKChmdW5jdGlvbihlKXtlLnk8aSYmaTw9ZS55K2UuaGVpZ2h0JiYodC5wb3RlbnRpYWxDbGlja0JhbmQ9dGhpcyl9KSkpfSkpLHQucGFyY2F0c1ZpZXdNb2RlbC5kcmFnRGltZW5zaW9uPXQsby5sb25lVW5ob3Zlcih0LnBhcmNhdHNWaWV3TW9kZWwuZ3JhcGhEaXYuX2Z1bGxMYXlvdXQuX2hvdmVybGF5ZXIubm9kZSgpKSl9ZnVuY3Rpb24gSSh0KXtpZigiZml4ZWQiIT09dC5wYXJjYXRzVmlld01vZGVsLmFycmFuZ2VtZW50JiYodC5kcmFnSGFzTW92ZWQ9ITAsbnVsbCE9PXQuZHJhZ0RpbWVuc2lvbkRpc3BsYXlJbmQpKXt2YXIgZT10LmRyYWdEaW1lbnNpb25EaXNwbGF5SW5kLHI9ZS0xLGk9ZSsxLGE9dC5wYXJjYXRzVmlld01vZGVsLmRpbWVuc2lvbnNbZV07aWYobnVsbCE9PXQuZHJhZ0NhdGVnb3J5RGlzcGxheUluZCl7dmFyIG89YS5jYXRlZ29yaWVzW3QuZHJhZ0NhdGVnb3J5RGlzcGxheUluZF07by5tb2RlbC5kcmFnWSs9bi5ldmVudC5keTt2YXIgcz1vLm1vZGVsLmRyYWdZLGw9by5tb2RlbC5kaXNwbGF5SW5kLGM9YS5jYXRlZ29yaWVzLHU9Y1tsLTFdLGY9Y1tsKzFdO3ZvaWQgMCE9PXUmJnM8dS55K3UuaGVpZ2h0LzImJihvLm1vZGVsLmRpc3BsYXlJbmQ9dS5tb2RlbC5kaXNwbGF5SW5kLHUubW9kZWwuZGlzcGxheUluZD1sKSx2b2lkIDAhPT1mJiZzK28uaGVpZ2h0PmYueStmLmhlaWdodC8yJiYoby5tb2RlbC5kaXNwbGF5SW5kPWYubW9kZWwuZGlzcGxheUluZCxmLm1vZGVsLmRpc3BsYXlJbmQ9bCksdC5kcmFnQ2F0ZWdvcnlEaXNwbGF5SW5kPW8ubW9kZWwuZGlzcGxheUluZH1pZihudWxsPT09dC5kcmFnQ2F0ZWdvcnlEaXNwbGF5SW5kfHwiZnJlZWZvcm0iPT09dC5wYXJjYXRzVmlld01vZGVsLmFycmFuZ2VtZW50KXthLm1vZGVsLmRyYWdYPW4uZXZlbnQueDt2YXIgaD10LnBhcmNhdHNWaWV3TW9kZWwuZGltZW5zaW9uc1tyXSxwPXQucGFyY2F0c1ZpZXdNb2RlbC5kaW1lbnNpb25zW2ldO3ZvaWQgMCE9PWgmJmEubW9kZWwuZHJhZ1g8aC54K2gud2lkdGgmJihhLm1vZGVsLmRpc3BsYXlJbmQ9aC5tb2RlbC5kaXNwbGF5SW5kLGgubW9kZWwuZGlzcGxheUluZD1lKSx2b2lkIDAhPT1wJiZhLm1vZGVsLmRyYWdYK2Eud2lkdGg+cC54JiYoYS5tb2RlbC5kaXNwbGF5SW5kPXAubW9kZWwuZGlzcGxheUluZCxwLm1vZGVsLmRpc3BsYXlJbmQ9dC5kcmFnRGltZW5zaW9uRGlzcGxheUluZCksdC5kcmFnRGltZW5zaW9uRGlzcGxheUluZD1hLm1vZGVsLmRpc3BsYXlJbmR9aih0LnBhcmNhdHNWaWV3TW9kZWwpLE4odC5wYXJjYXRzVmlld01vZGVsKSxSKHQucGFyY2F0c1ZpZXdNb2RlbCksRCh0LnBhcmNhdHNWaWV3TW9kZWwpfX1mdW5jdGlvbiBPKHQpe2lmKCJmaXhlZCIhPT10LnBhcmNhdHNWaWV3TW9kZWwuYXJyYW5nZW1lbnQmJm51bGwhPT10LmRyYWdEaW1lbnNpb25EaXNwbGF5SW5kKXtuLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoInRleHQiKS5hdHRyKCJmb250LXdlaWdodCIsIm5vcm1hbCIpO3ZhciBlPXt9LHI9eih0LnBhcmNhdHNWaWV3TW9kZWwpLGk9dC5wYXJjYXRzVmlld01vZGVsLm1vZGVsLmRpbWVuc2lvbnMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5kaXNwbGF5SW5kfSkpLG89dC5pbml0aWFsRHJhZ0RpbWVuc2lvbkRpc3BsYXlJbmRzLnNvbWUoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQhPT1pW2VdfSkpO28mJmkuZm9yRWFjaCgoZnVuY3Rpb24ocixuKXt2YXIgaT10LnBhcmNhdHNWaWV3TW9kZWwubW9kZWwuZGltZW5zaW9uc1tuXS5jb250YWluZXJJbmQ7ZVsiZGltZW5zaW9uc1siK2krIl0uZGlzcGxheWluZGV4Il09cn0pKTt2YXIgcz0hMTtpZihudWxsIT09dC5kcmFnQ2F0ZWdvcnlEaXNwbGF5SW5kKXt2YXIgbD10Lm1vZGVsLmNhdGVnb3JpZXMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5kaXNwbGF5SW5kfSkpO2lmKHM9dC5pbml0aWFsRHJhZ0NhdGVnb3J5RGlzcGxheUluZHMuc29tZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWxbZV19KSkpe3ZhciBjPXQubW9kZWwuY2F0ZWdvcmllcy5zbGljZSgpLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuZGlzcGxheUluZC1lLmRpc3BsYXlJbmR9KSksdT1jLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuY2F0ZWdvcnlWYWx1ZX0pKSxmPWMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5jYXRlZ29yeUxhYmVsfSkpO2VbImRpbWVuc2lvbnNbIit0Lm1vZGVsLmNvbnRhaW5lckluZCsiXS5jYXRlZ29yeWFycmF5Il09W3VdLGVbImRpbWVuc2lvbnNbIit0Lm1vZGVsLmNvbnRhaW5lckluZCsiXS50aWNrdGV4dCJdPVtmXSxlWyJkaW1lbnNpb25zWyIrdC5tb2RlbC5jb250YWluZXJJbmQrIl0uY2F0ZWdvcnlvcmRlciJdPSJhcnJheSJ9fWlmKC0xPT09dC5wYXJjYXRzVmlld01vZGVsLmhvdmVyaW5mb0l0ZW1zLmluZGV4T2YoInNraXAiKSYmIXQuZHJhZ0hhc01vdmVkJiZ0LnBvdGVudGlhbENsaWNrQmFuZCYmKCJjb2xvciI9PT10LnBhcmNhdHNWaWV3TW9kZWwuaG92ZXJvbj9TKHQucG90ZW50aWFsQ2xpY2tCYW5kLCJwbG90bHlfY2xpY2siLG4uZXZlbnQuc291cmNlRXZlbnQpOk0odC5wb3RlbnRpYWxDbGlja0JhbmQsInBsb3RseV9jbGljayIsbi5ldmVudC5zb3VyY2VFdmVudCkpLHQubW9kZWwuZHJhZ1g9bnVsbCxudWxsIT09dC5kcmFnQ2F0ZWdvcnlEaXNwbGF5SW5kKXQucGFyY2F0c1ZpZXdNb2RlbC5kaW1lbnNpb25zW3QuZHJhZ0RpbWVuc2lvbkRpc3BsYXlJbmRdLmNhdGVnb3JpZXNbdC5kcmFnQ2F0ZWdvcnlEaXNwbGF5SW5kXS5tb2RlbC5kcmFnWT1udWxsLHQuZHJhZ0NhdGVnb3J5RGlzcGxheUluZD1udWxsO3QuZHJhZ0RpbWVuc2lvbkRpc3BsYXlJbmQ9bnVsbCx0LnBhcmNhdHNWaWV3TW9kZWwuZHJhZ0RpbWVuc2lvbj1udWxsLHQuZHJhZ0hhc01vdmVkPW51bGwsdC5wb3RlbnRpYWxDbGlja0JhbmQ9bnVsbCxqKHQucGFyY2F0c1ZpZXdNb2RlbCksTih0LnBhcmNhdHNWaWV3TW9kZWwpLG4udHJhbnNpdGlvbigpLmR1cmF0aW9uKDMwMCkuZWFzZSgiY3ViaWMtaW4tb3V0IikuZWFjaCgoZnVuY3Rpb24oKXtSKHQucGFyY2F0c1ZpZXdNb2RlbCwhMCksRCh0LnBhcmNhdHNWaWV3TW9kZWwsITApfSkpLmVhY2goImVuZCIsKGZ1bmN0aW9uKCl7KG98fHMpJiZhLnJlc3R5bGUodC5wYXJjYXRzVmlld01vZGVsLmdyYXBoRGl2LGUsW3JdKX0pKX19ZnVuY3Rpb24geih0KXtmb3IodmFyIGUscj10LmdyYXBoRGl2Ll9mdWxsRGF0YSxuPTA7bjxyLmxlbmd0aDtuKyspaWYodC5rZXk9PT1yW25dLnVpZCl7ZT1uO2JyZWFrfXJldHVybiBlfWZ1bmN0aW9uIEQodCxlKXt2YXIgcjt2b2lkIDA9PT1lJiYoZT0hMSksdC5wYXRoU2VsZWN0aW9uLmRhdGEoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnBhdGhzfSkscCksKHI9dC5wYXRoU2VsZWN0aW9uLGU/ci50cmFuc2l0aW9uKCk6cikuYXR0cigiZCIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LnN2Z0R9KSl9ZnVuY3Rpb24gUih0LGUpe2Z1bmN0aW9uIHIodCl7cmV0dXJuIGU/dC50cmFuc2l0aW9uKCk6dH12b2lkIDA9PT1lJiYoZT0hMSksdC5kaW1lbnNpb25TZWxlY3Rpb24uZGF0YSgoZnVuY3Rpb24odCl7cmV0dXJuIHQuZGltZW5zaW9uc30pLHApO3ZhciBpPXQuZGltZW5zaW9uU2VsZWN0aW9uLnNlbGVjdEFsbCgiZy5jYXRlZ29yeSIpLmRhdGEoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmNhdGVnb3JpZXN9KSxwKTtyKHQuZGltZW5zaW9uU2VsZWN0aW9uKS5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbih0KXtyZXR1cm4gbCh0LngsMCl9KSkscihpKS5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbih0KXtyZXR1cm4gbCgwLHQueSl9KSksaS5zZWxlY3QoIi5kaW1sYWJlbCIpLnRleHQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIDA9PT1lP3QucGFyY2F0c1ZpZXdNb2RlbC5tb2RlbC5kaW1lbnNpb25zW3QubW9kZWwuZGltZW5zaW9uSW5kXS5kaW1lbnNpb25MYWJlbDpudWxsfSkpLGkuc2VsZWN0KCIuY2F0bGFiZWwiKS5hdHRyKCJ0ZXh0LWFuY2hvciIsKGZ1bmN0aW9uKHQpe3JldHVybiBkKHQpPyJzdGFydCI6ImVuZCJ9KSkuYXR0cigieCIsKGZ1bmN0aW9uKHQpe3JldHVybiBkKHQpP3Qud2lkdGgrNTotNX0pKS5lYWNoKChmdW5jdGlvbih0KXt2YXIgZSxyO2QodCk/KGU9dC53aWR0aCs1LHI9InN0YXJ0Iik6KGU9LTUscj0iZW5kIiksbi5zZWxlY3QodGhpcykuc2VsZWN0QWxsKCJ0c3BhbiIpLmF0dHIoIngiLGUpLmF0dHIoInRleHQtYW5jaG9yIixyKX0pKTt2YXIgYT1pLnNlbGVjdEFsbCgicmVjdC5iYW5kcmVjdCIpLmRhdGEoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmJhbmRzfSkscCksbz1hLmVudGVyKCkuYXBwZW5kKCJyZWN0IikuYXR0cigiY2xhc3MiLCJiYW5kcmVjdCIpLmF0dHIoImN1cnNvciIsIm1vdmUiKS5hdHRyKCJzdHJva2Utb3BhY2l0eSIsMCkuYXR0cigiZmlsbCIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LmNvbG9yfSkpLmF0dHIoImZpbGwtb3BhY2l0eSIsMCk7YS5hdHRyKCJmaWxsIiwoZnVuY3Rpb24odCl7cmV0dXJuIHQuY29sb3J9KSkuYXR0cigid2lkdGgiLChmdW5jdGlvbih0KXtyZXR1cm4gdC53aWR0aH0pKS5hdHRyKCJoZWlnaHQiLChmdW5jdGlvbih0KXtyZXR1cm4gdC5oZWlnaHR9KSkuYXR0cigieSIsKGZ1bmN0aW9uKHQpe3JldHVybiB0Lnl9KSksayhvKSxhLmVhY2goKGZ1bmN0aW9uKCl7cy5yYWlzZVRvVG9wKHRoaXMpfSkpLGEuZXhpdCgpLnJlbW92ZSgpfWZ1bmN0aW9uIEYodCxlLHIpe3ZhciBuLGk9clswXSxhPWUubWFyZ2lufHx7bDo4MCxyOjgwLHQ6MTAwLGI6ODB9LG89aS50cmFjZSxzPW8uZG9tYWluLGw9ZS53aWR0aCxjPWUuaGVpZ2h0LHU9TWF0aC5mbG9vcihsKihzLnhbMV0tcy54WzBdKSksZj1NYXRoLmZsb29yKGMqKHMueVsxXS1zLnlbMF0pKSxoPXMueFswXSpsK2EubCxwPWUuaGVpZ2h0LXMueVsxXSplLmhlaWdodCthLnQsZD1vLmxpbmUuc2hhcGU7bj0iYWxsIj09PW8uaG92ZXJpbmZvP1siY291bnQiLCJwcm9iYWJpbGl0eSJdOihvLmhvdmVyaW5mb3x8IiIpLnNwbGl0KCIrIik7dmFyIG09e3RyYWNlOm8sa2V5Om8udWlkLG1vZGVsOmkseDpoLHk6cCx3aWR0aDp1LGhlaWdodDpmLGhvdmVyb246by5ob3Zlcm9uLGhvdmVyaW5mb0l0ZW1zOm4sYXJyYW5nZW1lbnQ6by5hcnJhbmdlbWVudCxidW5kbGVjb2xvcnM6by5idW5kbGVjb2xvcnMsc29ydHBhdGhzOm8uc29ydHBhdGhzLGxhYmVsZm9udDpvLmxhYmVsZm9udCxjYXRlZ29yeWxhYmVsZm9udDpvLnRpY2tmb250LHBhdGhTaGFwZTpkLGRyYWdEaW1lbnNpb246bnVsbCxtYXJnaW46YSxwYXRoczpbXSxkaW1lbnNpb25zOltdLGdyYXBoRGl2OnQsdHJhY2VTZWxlY3Rpb246bnVsbCxwYXRoU2VsZWN0aW9uOm51bGwsZGltZW5zaW9uU2VsZWN0aW9uOm51bGx9O3JldHVybiBpLmRpbWVuc2lvbnMmJihqKG0pLE4obSkpLG19ZnVuY3Rpb24gQih0LGUscixuLGEpe3ZhciBvLHMsbD1bXSxjPVtdO2ZvcihzPTA7czxyLmxlbmd0aC0xO3MrKylvPWkocltzXSt0W3NdLHRbcysxXSksbC5wdXNoKG8oYSkpLGMucHVzaChvKDEtYSkpO3ZhciB1PSJNICIrdFswXSsiLCIrZVswXTtmb3IodSs9ImwiK3JbMF0rIiwwICIscz0xO3M8ci5sZW5ndGg7cysrKXUrPSJDIitsW3MtMV0rIiwiK2Vbcy0xXSsiICIrY1tzLTFdKyIsIitlW3NdKyIgIit0W3NdKyIsIitlW3NdLHUrPSJsIityW3NdKyIsMCAiO2Zvcih1Kz0ibDAsIituKyIgIix1Kz0ibCAtIityW3IubGVuZ3RoLTFdKyIsMCAiLHM9ci5sZW5ndGgtMjtzPj0wO3MtLSl1Kz0iQyIrY1tzXSsiLCIrKGVbcysxXStuKSsiICIrbFtzXSsiLCIrKGVbc10rbikrIiAiKyh0W3NdK3Jbc10pKyIsIisoZVtzXStuKSx1Kz0ibC0iK3Jbc10rIiwwICI7cmV0dXJuIHUrPSJaIn1mdW5jdGlvbiBOKHQpe3ZhciBlPXQuZGltZW5zaW9ucyxyPXQubW9kZWwsbj1lLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuY2F0ZWdvcmllcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lnl9KSl9KSksaT10Lm1vZGVsLmRpbWVuc2lvbnMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5jYXRlZ29yaWVzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuZGlzcGxheUluZH0pKX0pKSxhPXQubW9kZWwuZGltZW5zaW9ucy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRpc3BsYXlJbmR9KSksbz10LmRpbWVuc2lvbnMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5tb2RlbC5kaW1lbnNpb25JbmR9KSkscz1lLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQueH0pKSxsPWUubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC53aWR0aH0pKSxjPVtdO2Zvcih2YXIgdSBpbiByLnBhdGhzKXIucGF0aHMuaGFzT3duUHJvcGVydHkodSkmJmMucHVzaChyLnBhdGhzW3VdKTtmdW5jdGlvbiBmKHQpe3ZhciBlPXQuY2F0ZWdvcnlJbmRzLm1hcCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gaVtlXVt0XX0pKTtyZXR1cm4gby5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlW3RdfSkpfWMuc29ydCgoZnVuY3Rpb24oZSxyKXt2YXIgbj1mKGUpLGk9ZihyKTtyZXR1cm4iYmFja3dhcmQiPT09dC5zb3J0cGF0aHMmJihuLnJldmVyc2UoKSxpLnJldmVyc2UoKSksbi5wdXNoKGUudmFsdWVJbmRzWzBdKSxpLnB1c2goci52YWx1ZUluZHNbMF0pLHQuYnVuZGxlY29sb3JzJiYobi51bnNoaWZ0KGUucmF3Q29sb3IpLGkudW5zaGlmdChyLnJhd0NvbG9yKSksbjxpPy0xOm4+aT8xOjB9KSk7Zm9yKHZhciBoPW5ldyBBcnJheShjLmxlbmd0aCkscD1lWzBdLm1vZGVsLmNvdW50LGQ9ZVswXS5jYXRlZ29yaWVzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaGVpZ2h0fSkpLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlfSkpLG09MDttPGMubGVuZ3RoO20rKyl7dmFyIGcsdj1jW21dO2c9cD4wP2QqKHYuY291bnQvcCk6MDtmb3IodmFyIHkseD1uZXcgQXJyYXkobi5sZW5ndGgpLGI9MDtiPHYuY2F0ZWdvcnlJbmRzLmxlbmd0aDtiKyspe3ZhciBfPXYuY2F0ZWdvcnlJbmRzW2JdLHc9aVtiXVtfXSxUPWFbYl07eFtUXT1uW1RdW3ddLG5bVF1bd10rPWc7dmFyIGs9dC5kaW1lbnNpb25zW1RdLmNhdGVnb3JpZXNbd10sQT1rLmJhbmRzLmxlbmd0aCxNPWsuYmFuZHNbQS0xXTtpZih2b2lkIDA9PT1NfHx2LnJhd0NvbG9yIT09TS5yYXdDb2xvcil7dmFyIFM9dm9pZCAwPT09TT8wOk0ueStNLmhlaWdodDtrLmJhbmRzLnB1c2goe2tleTpTLGNvbG9yOnYuY29sb3IscmF3Q29sb3I6di5yYXdDb2xvcixoZWlnaHQ6Zyx3aWR0aDprLndpZHRoLGNvdW50OnYuY291bnQseTpTLGNhdGVnb3J5Vmlld01vZGVsOmsscGFyY2F0c1ZpZXdNb2RlbDp0fSl9ZWxzZXt2YXIgRT1rLmJhbmRzW0EtMV07RS5oZWlnaHQrPWcsRS5jb3VudCs9di5jb3VudH19eT0iaHNwbGluZSI9PT10LnBhdGhTaGFwZT9CKHMseCxsLGcsLjUpOkIocyx4LGwsZywwKSxoW21dPXtrZXk6di52YWx1ZUluZHNbMF0sbW9kZWw6dixoZWlnaHQ6ZyxsZWZ0WHM6cyx0b3BZczp4LGRpbVdpZHRoczpsLHN2Z0Q6eSxwYXJjYXRzVmlld01vZGVsOnR9fXQucGF0aHM9aH1mdW5jdGlvbiBqKHQpe3ZhciBlPXQubW9kZWwuZGltZW5zaW9ucy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybntkaXNwbGF5SW5kOnQuZGlzcGxheUluZCxkaW1lbnNpb25JbmQ6dC5kaW1lbnNpb25JbmR9fSkpO2Uuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5kaXNwbGF5SW5kLWUuZGlzcGxheUluZH0pKTt2YXIgcj1bXTtmb3IodmFyIG4gaW4gZSl7dmFyIGk9ZVtuXS5kaW1lbnNpb25JbmQsYT10Lm1vZGVsLmRpbWVuc2lvbnNbaV07ci5wdXNoKFUodCxhKSl9dC5kaW1lbnNpb25zPXJ9ZnVuY3Rpb24gVSh0LGUpe3ZhciByLG49dC5tb2RlbC5kaW1lbnNpb25zLmxlbmd0aCxpPWUuZGlzcGxheUluZDtyPTQwKyhuPjE/KHQud2lkdGgtODAtMTYpLyhuLTEpOjApKmk7dmFyIGEsbyxzLGwsYyx1PVtdLGY9dC5tb2RlbC5tYXhDYXRzLGg9ZS5jYXRlZ29yaWVzLmxlbmd0aCxwPWUuY291bnQsZD10LmhlaWdodC04KihmLTEpLG09OCooZi1oKS8yLGc9ZS5jYXRlZ29yaWVzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJue2Rpc3BsYXlJbmQ6dC5kaXNwbGF5SW5kLGNhdGVnb3J5SW5kOnQuY2F0ZWdvcnlJbmR9fSkpO2ZvcihnLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuZGlzcGxheUluZC1lLmRpc3BsYXlJbmR9KSksYz0wO2M8aDtjKyspbD1nW2NdLmNhdGVnb3J5SW5kLG89ZS5jYXRlZ29yaWVzW2xdLGE9cD4wP28uY291bnQvcCpkOjAscz17a2V5Om8udmFsdWVJbmRzWzBdLG1vZGVsOm8sd2lkdGg6MTYsaGVpZ2h0OmEseTpudWxsIT09by5kcmFnWT9vLmRyYWdZOm0sYmFuZHM6W10scGFyY2F0c1ZpZXdNb2RlbDp0fSxtPW0rYSs4LHUucHVzaChzKTtyZXR1cm57a2V5OmUuZGltZW5zaW9uSW5kLHg6bnVsbCE9PWUuZHJhZ1g/ZS5kcmFnWDpyLHk6MCx3aWR0aDoxNixtb2RlbDplLGNhdGVnb3JpZXM6dSxwYXJjYXRzVmlld01vZGVsOnQsZHJhZ0NhdGVnb3J5RGlzcGxheUluZDpudWxsLGRyYWdEaW1lbnNpb25EaXNwbGF5SW5kOm51bGwsaW5pdGlhbERyYWdEaW1lbnNpb25EaXNwbGF5SW5kczpudWxsLGluaXRpYWxEcmFnQ2F0ZWdvcnlEaXNwbGF5SW5kczpudWxsLGRyYWdIYXNNb3ZlZDpudWxsLHBvdGVudGlhbENsaWNrQmFuZDpudWxsfX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbil7aChyLHQsbixlKX19LHsiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjozODksIi4uLy4uL2NvbXBvbmVudHMvZngiOjQwNywiLi4vLi4vbGliIjo1MTUsIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyI6NTQxLCIuLi8uLi9wbG90X2FwaS9wbG90X2FwaSI6NTUyLCJAcGxvdGx5L2QzIjo1OCwiZDMtaW50ZXJwb2xhdGUiOjExNix0aW55Y29sb3IyOjMxM31dLDg5NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL3BhcmNhdHMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsaSl7dmFyIGE9dC5fZnVsbExheW91dCxvPWEuX3BhcGVyLHM9YS5fc2l6ZTtuKHQsbyxlLHt3aWR0aDpzLncsaGVpZ2h0OnMuaCxtYXJnaW46e3Q6cy50LHI6cy5yLGI6cy5iLGw6cy5sfX0scixpKX19LHsiLi9wYXJjYXRzIjo4OTV9XSw4OTc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9sYXlvdXRfYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIiksbz10KCIuLi8uLi9wbG90cy9kb21haW4iKS5hdHRyaWJ1dGVzLHM9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsbD10KCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIikudGVtcGxhdGVkQXJyYXk7ZS5leHBvcnRzPXtkb21haW46byh7bmFtZToicGFyY29vcmRzIix0cmFjZTohMCxlZGl0VHlwZToicGxvdCJ9KSxsYWJlbGFuZ2xlOnt2YWxUeXBlOiJhbmdsZSIsZGZsdDowLGVkaXRUeXBlOiJwbG90In0sbGFiZWxzaWRlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ0b3AiLCJib3R0b20iXSxkZmx0OiJ0b3AiLGVkaXRUeXBlOiJwbG90In0sbGFiZWxmb250OmEoe2VkaXRUeXBlOiJwbG90In0pLHRpY2tmb250OmEoe2VkaXRUeXBlOiJwbG90In0pLHJhbmdlZm9udDphKHtlZGl0VHlwZToicGxvdCJ9KSxkaW1lbnNpb25zOmwoImRpbWVuc2lvbiIse2xhYmVsOnt2YWxUeXBlOiJzdHJpbmciLGVkaXRUeXBlOiJwbG90In0sdGlja3ZhbHM6cyh7fSxpLnRpY2t2YWxzLHtlZGl0VHlwZToicGxvdCJ9KSx0aWNrdGV4dDpzKHt9LGkudGlja3RleHQse2VkaXRUeXBlOiJwbG90In0pLHRpY2tmb3JtYXQ6cyh7fSxpLnRpY2tmb3JtYXQse2VkaXRUeXBlOiJwbG90In0pLHZpc2libGU6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6InBsb3QifSxyYW5nZTp7dmFsVHlwZToiaW5mb19hcnJheSIsaXRlbXM6W3t2YWxUeXBlOiJudW1iZXIiLGVkaXRUeXBlOiJwbG90In0se3ZhbFR5cGU6Im51bWJlciIsZWRpdFR5cGU6InBsb3QifV0sZWRpdFR5cGU6InBsb3QifSxjb25zdHJhaW50cmFuZ2U6e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGZyZWVMZW5ndGg6ITAsZGltZW5zaW9uczoiMS0yIixpdGVtczpbe3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6InBsb3QifSx7dmFsVHlwZToiYW55IixlZGl0VHlwZToicGxvdCJ9XSxlZGl0VHlwZToicGxvdCJ9LG11bHRpc2VsZWN0Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJwbG90In0sdmFsdWVzOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LGVkaXRUeXBlOiJjYWxjIn0pLGxpbmU6cyh7ZWRpdFR5cGU6ImNhbGMifSxuKCJsaW5lIix7Y29sb3JzY2FsZURmbHQ6IlZpcmlkaXMiLGF1dG9Db2xvckRmbHQ6ITEsZWRpdFR5cGVPdmVycmlkZToiY2FsYyJ9KSksdW5zZWxlY3RlZDp7bGluZTp7Y29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OiIjN2Y3ZjdmIixlZGl0VHlwZToicGxvdCJ9LG9wYWNpdHk6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDoiYXV0byIsZWRpdFR5cGU6InBsb3QifSxlZGl0VHlwZToicGxvdCJ9LGVkaXRUeXBlOiJwbG90In19fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjozNzQsIi4uLy4uL2xpYi9leHRlbmQiOjUwNSwiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6NTU1LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vbGF5b3V0X2F0dHJpYnV0ZXMiOjU3OSwiLi4vLi4vcGxvdHMvZG9tYWluIjo1OTMsIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyI6NTk0fV0sODk4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vY29uc3RhbnRzIiksaT10KCJAcGxvdGx5L2QzIiksYT10KCIuLi8uLi9saWIvZ3VwIikua2V5RnVuLG89dCgiLi4vLi4vbGliL2d1cCIpLnJlcGVhdCxzPXQoIi4uLy4uL2xpYiIpLnNvcnRlckFzYyxsPXQoIi4uLy4uL2xpYiIpLnN0clRyYW5zbGF0ZSxjPW4uYmFyLnNuYXBSYXRpbztmdW5jdGlvbiB1KHQsZSl7cmV0dXJuIHQqKDEtYykrZSpjfXZhciBmPW4uYmFyLnNuYXBDbG9zZTtmdW5jdGlvbiBoKHQsZSl7cmV0dXJuIHQqKDEtZikrZSpmfWZ1bmN0aW9uIHAodCxlLHIsbil7aWYoZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKylpZih0Pj1lW3JdWzBdJiZ0PD1lW3JdWzFdKXJldHVybiEwO3JldHVybiExfShyLG4pKXJldHVybiByO3ZhciBpPXQ/LTE6MSxhPTAsbz1lLmxlbmd0aC0xO2lmKGk8MCl7dmFyIHM9YTthPW8sbz1zfWZvcih2YXIgbD1lW2FdLGM9bCxmPWE7aSpmPGkqbztmKz1pKXt2YXIgcD1mK2ksZD1lW3BdO2lmKGkqcjxpKmgobCxkKSlyZXR1cm4gdShsLGMpO2lmKGkqcjxpKmR8fHA9PT1vKXJldHVybiB1KGQsbCk7Yz1sLGw9ZH19ZnVuY3Rpb24gZCh0KXt0LmF0dHIoIngiLC1uLmJhci5jYXB0dXJlV2lkdGgvMikuYXR0cigid2lkdGgiLG4uYmFyLmNhcHR1cmVXaWR0aCl9ZnVuY3Rpb24gbSh0KXt0LmF0dHIoInZpc2liaWxpdHkiLCJ2aXNpYmxlIikuc3R5bGUoInZpc2liaWxpdHkiLCJ2aXNpYmxlIikuYXR0cigiZmlsbCIsInllbGxvdyIpLmF0dHIoIm9wYWNpdHkiLDApfWZ1bmN0aW9uIGcodCl7aWYoIXQuYnJ1c2guZmlsdGVyU3BlY2lmaWVkKXJldHVybiIwLCIrdC5oZWlnaHQ7Zm9yKHZhciBlLHIsbixpPXYodC5icnVzaC5maWx0ZXIuZ2V0Q29uc29saWRhdGVkKCksdC5oZWlnaHQpLGE9WzBdLG89aS5sZW5ndGg/aVswXVswXTpudWxsLHM9MDtzPGkubGVuZ3RoO3MrKylyPShlPWlbc10pWzFdLWVbMF0sYS5wdXNoKG8pLGEucHVzaChyKSwobj1zKzEpPGkubGVuZ3RoJiYobz1pW25dWzBdLWVbMV0pO3JldHVybiBhLnB1c2godC5oZWlnaHQpLGF9ZnVuY3Rpb24gdih0LGUpe3JldHVybiB0Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5tYXgoMCx0KmUpfSkpLnNvcnQocyl9KSl9ZnVuY3Rpb24geSgpe2kuc2VsZWN0KGRvY3VtZW50LmJvZHkpLnN0eWxlKCJjdXJzb3IiLG51bGwpfWZ1bmN0aW9uIHgodCl7dC5hdHRyKCJzdHJva2UtZGFzaGFycmF5IixnKX1mdW5jdGlvbiBiKHQsZSl7dmFyIHI9aS5zZWxlY3QodCkuc2VsZWN0QWxsKCIuaGlnaGxpZ2h0LCAuaGlnaGxpZ2h0LXNoYWRvdyIpO3goZT9yLnRyYW5zaXRpb24oKS5kdXJhdGlvbihuLmJhci5zbmFwRHVyYXRpb24pLmVhY2goImVuZCIsZSk6cil9ZnVuY3Rpb24gXyh0LGUpe3ZhciByLGk9dC5icnVzaCxhPU5hTixvPXt9O2lmKGkuZmlsdGVyU3BlY2lmaWVkKXt2YXIgcz10LmhlaWdodCxsPWkuZmlsdGVyLmdldENvbnNvbGlkYXRlZCgpLGM9dihsLHMpLHU9TmFOLGY9TmFOLGg9TmFOO2ZvcihyPTA7cjw9Yy5sZW5ndGg7cisrKXt2YXIgcD1jW3JdO2lmKHAmJnBbMF08PWUmJmU8PXBbMV0pe3U9cjticmVha31pZihmPXI/ci0xOk5hTixwJiZwWzBdPmUpe2g9cjticmVha319aWYoYT11LGlzTmFOKGEpJiYoYT1pc05hTihmKXx8aXNOYU4oaCk/aXNOYU4oZik/aDpmOmUtY1tmXVsxXTxjW2hdWzBdLWU/ZjpoKSwhaXNOYU4oYSkpe3ZhciBkPWNbYV0sbT1mdW5jdGlvbih0LGUpe3ZhciByPW4uYmFyLmhhbmRsZUhlaWdodDtpZighKGU+dFsxXStyfHxlPHRbMF0tcikpcmV0dXJuIGU+PS45KnRbMV0rLjEqdFswXT8ibiI6ZTw9LjkqdFswXSsuMSp0WzFdPyJzIjoibnMifShkLGUpO20mJihvLmludGVydmFsPWxbYV0sby5pbnRlcnZhbFBpeD1kLG8ucmVnaW9uPW0pfX1pZih0Lm9yZGluYWwmJiFvLnJlZ2lvbil7dmFyIGc9dC51bml0VGlja3ZhbHMseT10LnVuaXRUb1BhZGRlZFB4LmludmVydChlKTtmb3Iocj0wO3I8Zy5sZW5ndGg7cisrKXt2YXIgeD1bLjI1KmdbTWF0aC5tYXgoci0xLDApXSsuNzUqZ1tyXSwuMjUqZ1tNYXRoLm1pbihyKzEsZy5sZW5ndGgtMSldKy43NSpnW3JdXTtpZih5Pj14WzBdJiZ5PD14WzFdKXtvLmNsaWNrYWJsZU9yZGluYWxSYW5nZT14O2JyZWFrfX19cmV0dXJuIG99ZnVuY3Rpb24gdyh0LGUpe2kuZXZlbnQuc291cmNlRXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7dmFyIHI9ZS5oZWlnaHQtaS5tb3VzZSh0KVsxXS0yKm4udmVydGljYWxQYWRkaW5nLGE9ZS5icnVzaC5zdmdCcnVzaDthLndhc0RyYWdnZWQ9ITAsYS5fZHJhZ2dpbmc9ITAsYS5ncmFiYmluZ0Jhcj9hLm5ld0V4dGVudD1bci1hLmdyYWJQb2ludCxyK2EuYmFyTGVuZ3RoLWEuZ3JhYlBvaW50XS5tYXAoZS51bml0VG9QYWRkZWRQeC5pbnZlcnQpOmEubmV3RXh0ZW50PVthLnN0YXJ0RXh0ZW50LGUudW5pdFRvUGFkZGVkUHguaW52ZXJ0KHIpXS5zb3J0KHMpLGUuYnJ1c2guZmlsdGVyU3BlY2lmaWVkPSEwLGEuZXh0ZW50PWEuc3RheWluZ0ludGVydmFscy5jb25jYXQoW2EubmV3RXh0ZW50XSksYS5icnVzaENhbGxiYWNrKGUpLGIodC5wYXJlbnROb2RlKX1mdW5jdGlvbiBUKHQsZSl7dmFyIHI9XyhlLGUuaGVpZ2h0LWkubW91c2UodClbMV0tMipuLnZlcnRpY2FsUGFkZGluZyksYT0iY3Jvc3NoYWlyIjtyLmNsaWNrYWJsZU9yZGluYWxSYW5nZT9hPSJwb2ludGVyIjpyLnJlZ2lvbiYmKGE9ci5yZWdpb24rIi1yZXNpemUiKSxpLnNlbGVjdChkb2N1bWVudC5ib2R5KS5zdHlsZSgiY3Vyc29yIixhKX1mdW5jdGlvbiBrKHQpe3Qub24oIm1vdXNlbW92ZSIsKGZ1bmN0aW9uKHQpe2kuZXZlbnQucHJldmVudERlZmF1bHQoKSx0LnBhcmVudC5pbkJydXNoRHJhZ3x8VCh0aGlzLHQpfSkpLm9uKCJtb3VzZWxlYXZlIiwoZnVuY3Rpb24odCl7dC5wYXJlbnQuaW5CcnVzaERyYWd8fHkoKX0pKS5jYWxsKGkuYmVoYXZpb3IuZHJhZygpLm9uKCJkcmFnc3RhcnQiLChmdW5jdGlvbih0KXshZnVuY3Rpb24odCxlKXtpLmV2ZW50LnNvdXJjZUV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO3ZhciByPWUuaGVpZ2h0LWkubW91c2UodClbMV0tMipuLnZlcnRpY2FsUGFkZGluZyxhPWUudW5pdFRvUGFkZGVkUHguaW52ZXJ0KHIpLG89ZS5icnVzaCxzPV8oZSxyKSxsPXMuaW50ZXJ2YWwsYz1vLnN2Z0JydXNoO2lmKGMud2FzRHJhZ2dlZD0hMSxjLmdyYWJiaW5nQmFyPSJucyI9PT1zLnJlZ2lvbixjLmdyYWJiaW5nQmFyKXt2YXIgdT1sLm1hcChlLnVuaXRUb1BhZGRlZFB4KTtjLmdyYWJQb2ludD1yLXVbMF0tbi52ZXJ0aWNhbFBhZGRpbmcsYy5iYXJMZW5ndGg9dVsxXS11WzBdfWMuY2xpY2thYmxlT3JkaW5hbFJhbmdlPXMuY2xpY2thYmxlT3JkaW5hbFJhbmdlLGMuc3RheWluZ0ludGVydmFscz1lLm11bHRpc2VsZWN0JiZvLmZpbHRlclNwZWNpZmllZD9vLmZpbHRlci5nZXRDb25zb2xpZGF0ZWQoKTpbXSxsJiYoYy5zdGF5aW5nSW50ZXJ2YWxzPWMuc3RheWluZ0ludGVydmFscy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0WzBdIT09bFswXSYmdFsxXSE9PWxbMV19KSkpLGMuc3RhcnRFeHRlbnQ9cy5yZWdpb24/bFsicyI9PT1zLnJlZ2lvbj8xOjBdOmEsZS5wYXJlbnQuaW5CcnVzaERyYWc9ITAsYy5icnVzaFN0YXJ0Q2FsbGJhY2soKX0odGhpcyx0KX0pKS5vbigiZHJhZyIsKGZ1bmN0aW9uKHQpe3codGhpcyx0KX0pKS5vbigiZHJhZ2VuZCIsKGZ1bmN0aW9uKHQpeyFmdW5jdGlvbih0LGUpe3ZhciByPWUuYnJ1c2gsbj1yLmZpbHRlcixhPXIuc3ZnQnJ1c2g7YS5fZHJhZ2dpbmd8fChUKHQsZSksdyh0LGUpLGUuYnJ1c2guc3ZnQnJ1c2gud2FzRHJhZ2dlZD0hMSksYS5fZHJhZ2dpbmc9ITEsaS5ldmVudC5zb3VyY2VFdmVudC5zdG9wUHJvcGFnYXRpb24oKTt2YXIgbz1hLmdyYWJiaW5nQmFyO2lmKGEuZ3JhYmJpbmdCYXI9ITEsYS5ncmFiTG9jYXRpb249dm9pZCAwLGUucGFyZW50LmluQnJ1c2hEcmFnPSExLHkoKSwhYS53YXNEcmFnZ2VkKXJldHVybiBhLndhc0RyYWdnZWQ9dm9pZCAwLGEuY2xpY2thYmxlT3JkaW5hbFJhbmdlP3IuZmlsdGVyU3BlY2lmaWVkJiZlLm11bHRpc2VsZWN0P2EuZXh0ZW50LnB1c2goYS5jbGlja2FibGVPcmRpbmFsUmFuZ2UpOihhLmV4dGVudD1bYS5jbGlja2FibGVPcmRpbmFsUmFuZ2VdLHIuZmlsdGVyU3BlY2lmaWVkPSEwKTpvPyhhLmV4dGVudD1hLnN0YXlpbmdJbnRlcnZhbHMsMD09PWEuZXh0ZW50Lmxlbmd0aCYmTShyKSk6TShyKSxhLmJydXNoQ2FsbGJhY2soZSksYih0LnBhcmVudE5vZGUpLHZvaWQgYS5icnVzaEVuZENhbGxiYWNrKHIuZmlsdGVyU3BlY2lmaWVkP24uZ2V0Q29uc29saWRhdGVkKCk6W10pO3ZhciBzPWZ1bmN0aW9uKCl7bi5zZXQobi5nZXRDb25zb2xpZGF0ZWQoKSl9O2lmKGUub3JkaW5hbCl7dmFyIGw9ZS51bml0VGlja3ZhbHM7bFtsLmxlbmd0aC0xXTxsWzBdJiZsLnJldmVyc2UoKSxhLm5ld0V4dGVudD1bcCgwLGwsYS5uZXdFeHRlbnRbMF0sYS5zdGF5aW5nSW50ZXJ2YWxzKSxwKDEsbCxhLm5ld0V4dGVudFsxXSxhLnN0YXlpbmdJbnRlcnZhbHMpXTt2YXIgYz1hLm5ld0V4dGVudFsxXT5hLm5ld0V4dGVudFswXTthLmV4dGVudD1hLnN0YXlpbmdJbnRlcnZhbHMuY29uY2F0KGM/W2EubmV3RXh0ZW50XTpbXSksYS5leHRlbnQubGVuZ3RofHxNKHIpLGEuYnJ1c2hDYWxsYmFjayhlKSxjP2IodC5wYXJlbnROb2RlLHMpOihzKCksYih0LnBhcmVudE5vZGUpKX1lbHNlIHMoKTthLmJydXNoRW5kQ2FsbGJhY2soci5maWx0ZXJTcGVjaWZpZWQ/bi5nZXRDb25zb2xpZGF0ZWQoKTpbXSl9KHRoaXMsdCl9KSkpfWZ1bmN0aW9uIEEodCxlKXtyZXR1cm4gdFswXS1lWzBdfWZ1bmN0aW9uIE0odCl7dC5maWx0ZXJTcGVjaWZpZWQ9ITEsdC5zdmdCcnVzaC5leHRlbnQ9W1stMS8wLDEvMF1dfWZ1bmN0aW9uIFModCl7Zm9yKHZhciBlLHI9dC5zbGljZSgpLG49W10saT1yLnNoaWZ0KCk7aTspe2ZvcihlPWkuc2xpY2UoKTsoaT1yLnNoaWZ0KCkpJiZpWzBdPD1lWzFdOyllWzFdPU1hdGgubWF4KGVbMV0saVsxXSk7bi5wdXNoKGUpfXJldHVybiAxPT09bi5sZW5ndGgmJm5bMF1bMF0+blswXVsxXSYmKG49W10pLG59ZS5leHBvcnRzPXttYWtlQnJ1c2g6ZnVuY3Rpb24odCxlLHIsbixpLGEpe3ZhciBvLGw9ZnVuY3Rpb24oKXt2YXIgdCxlLHI9W107cmV0dXJue3NldDpmdW5jdGlvbihuKXsxPT09KHI9bi5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnNsaWNlKCkuc29ydChzKX0pKS5zb3J0KEEpKS5sZW5ndGgmJnJbMF1bMF09PT0tMS8wJiZyWzBdWzFdPT09MS8wJiYocj1bWzAsLTFdXSksdD1TKHIpLGU9ci5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuW01hdGgubWluKHRbMF0sZVswXSksTWF0aC5tYXgodFsxXSxlWzFdKV19KSxbMS8wLC0xLzBdKX0sZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHIuc2xpY2UoKX0sZ2V0Q29uc29saWRhdGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHR9LGdldEJvdW5kczpmdW5jdGlvbigpe3JldHVybiBlfX19KCk7cmV0dXJuIGwuc2V0KHIpLHtmaWx0ZXI6bCxmaWx0ZXJTcGVjaWZpZWQ6ZSxzdmdCcnVzaDp7ZXh0ZW50OltdLGJydXNoU3RhcnRDYWxsYmFjazpuLGJydXNoQ2FsbGJhY2s6KG89aSxmdW5jdGlvbih0KXt2YXIgZT10LmJydXNoLHI9ZnVuY3Rpb24odCl7cmV0dXJuIHQuc3ZnQnJ1c2guZXh0ZW50Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuc2xpY2UoKX0pKX0oZSkuc2xpY2UoKTtlLmZpbHRlci5zZXQociksbygpfSksYnJ1c2hFbmRDYWxsYmFjazphfX19LGVuc3VyZUF4aXNCcnVzaDpmdW5jdGlvbih0LGUpe3ZhciByPXQuc2VsZWN0QWxsKCIuIituLmNuLmF4aXNCcnVzaCkuZGF0YShvLGEpO3IuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKG4uY24uYXhpc0JydXNoLCEwKSxmdW5jdGlvbih0LGUpe3ZhciByPXQuc2VsZWN0QWxsKCIuYmFja2dyb3VuZCIpLmRhdGEobyk7ci5lbnRlcigpLmFwcGVuZCgicmVjdCIpLmNsYXNzZWQoImJhY2tncm91bmQiLCEwKS5jYWxsKGQpLmNhbGwobSkuc3R5bGUoInBvaW50ZXItZXZlbnRzIiwiYXV0byIpLmF0dHIoInRyYW5zZm9ybSIsbCgwLG4udmVydGljYWxQYWRkaW5nKSksci5jYWxsKGspLmF0dHIoImhlaWdodCIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LmhlaWdodC1uLnZlcnRpY2FsUGFkZGluZ30pKTt2YXIgaT10LnNlbGVjdEFsbCgiLmhpZ2hsaWdodC1zaGFkb3ciKS5kYXRhKG8pO2kuZW50ZXIoKS5hcHBlbmQoImxpbmUiKS5jbGFzc2VkKCJoaWdobGlnaHQtc2hhZG93IiwhMCkuYXR0cigieCIsLW4uYmFyLndpZHRoLzIpLmF0dHIoInN0cm9rZS13aWR0aCIsbi5iYXIud2lkdGgrbi5iYXIuc3Ryb2tlV2lkdGgpLmF0dHIoInN0cm9rZSIsZSkuYXR0cigib3BhY2l0eSIsbi5iYXIuc3Ryb2tlT3BhY2l0eSkuYXR0cigic3Ryb2tlLWxpbmVjYXAiLCJidXR0IiksaS5hdHRyKCJ5MSIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LmhlaWdodH0pKS5jYWxsKHgpO3ZhciBhPXQuc2VsZWN0QWxsKCIuaGlnaGxpZ2h0IikuZGF0YShvKTthLmVudGVyKCkuYXBwZW5kKCJsaW5lIikuY2xhc3NlZCgiaGlnaGxpZ2h0IiwhMCkuYXR0cigieCIsLW4uYmFyLndpZHRoLzIpLmF0dHIoInN0cm9rZS13aWR0aCIsbi5iYXIud2lkdGgtbi5iYXIuc3Ryb2tlV2lkdGgpLmF0dHIoInN0cm9rZSIsbi5iYXIuZmlsbENvbG9yKS5hdHRyKCJvcGFjaXR5IixuLmJhci5maWxsT3BhY2l0eSkuYXR0cigic3Ryb2tlLWxpbmVjYXAiLCJidXR0IiksYS5hdHRyKCJ5MSIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LmhlaWdodH0pKS5jYWxsKHgpfShyLGUpfSxjbGVhblJhbmdlczpmdW5jdGlvbih0LGUpe2lmKEFycmF5LmlzQXJyYXkodFswXSk/KHQ9dC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnNvcnQocyl9KSksdD1lLm11bHRpc2VsZWN0P1ModC5zb3J0KEEpKTpbdFswXV0pOnQ9W3Quc29ydChzKV0sZS50aWNrdmFscyl7dmFyIHI9ZS50aWNrdmFscy5zbGljZSgpLnNvcnQocyk7aWYoISh0PXQubWFwKChmdW5jdGlvbih0KXt2YXIgZT1bcCgwLHIsdFswXSxbXSkscCgxLHIsdFsxXSxbXSldO2lmKGVbMV0+ZVswXSlyZXR1cm4gZX0pKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0fSkpKS5sZW5ndGgpcmV0dXJufXJldHVybiB0Lmxlbmd0aD4xP3Q6dFswXX19fSx7Ii4uLy4uL2xpYiI6NTE1LCIuLi8uLi9saWIvZ3VwIjo1MTIsIi4vY29uc3RhbnRzIjo5MDIsIkBwbG90bHkvZDMiOjU4fV0sODk5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksY2FsYzp0KCIuL2NhbGMiKSxjb2xvcmJhcjp7Y29udGFpbmVyOiJsaW5lIixtaW46ImNtaW4iLG1heDoiY21heCJ9LG1vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJwYXJjb29yZHMiLGJhc2VQbG90TW9kdWxlOnQoIi4vYmFzZV9wbG90IiksY2F0ZWdvcmllczpbImdsIiwicmVnbCIsIm5vT3BhY2l0eSIsIm5vSG92ZXIiXSxtZXRhOnt9fX0seyIuL2F0dHJpYnV0ZXMiOjg5NywiLi9iYXNlX3Bsb3QiOjkwMCwiLi9jYWxjIjo5MDEsIi4vZGVmYXVsdHMiOjkwM31dLDkwMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9wbG90cy9nZXRfZGF0YSIpLmdldE1vZHVsZUNhbGNEYXRhLGE9dCgiLi9wbG90Iiksbz10KCIuLi8uLi9jb25zdGFudHMveG1sbnNfbmFtZXNwYWNlcyIpO3IubmFtZT0icGFyY29vcmRzIixyLnBsb3Q9ZnVuY3Rpb24odCl7dmFyIGU9aSh0LmNhbGNkYXRhLCJwYXJjb29yZHMiKVswXTtlLmxlbmd0aCYmYSh0LGUpfSxyLmNsZWFuPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPW4uX2hhcyYmbi5faGFzKCJwYXJjb29yZHMiKSxhPWUuX2hhcyYmZS5faGFzKCJwYXJjb29yZHMiKTtpJiYhYSYmKG4uX3BhcGVyZGl2LnNlbGVjdEFsbCgiLnBhcmNvb3JkcyIpLnJlbW92ZSgpLG4uX2dsaW1hZ2VzLnNlbGVjdEFsbCgiKiIpLnJlbW92ZSgpKX0sci50b1NWRz1mdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0Ll9nbGltYWdlcyxyPW4uc2VsZWN0KHQpLnNlbGVjdEFsbCgiLnN2Zy1jb250YWluZXIiKTtyLmZpbHRlcigoZnVuY3Rpb24odCxlKXtyZXR1cm4gZT09PXIuc2l6ZSgpLTF9KSkuc2VsZWN0QWxsKCIuZ2wtY2FudmFzLWNvbnRleHQsIC5nbC1jYW52YXMtZm9jdXMiKS5lYWNoKChmdW5jdGlvbigpe3ZhciB0PXRoaXMudG9EYXRhVVJMKCJpbWFnZS9wbmciKTtlLmFwcGVuZCgic3ZnOmltYWdlIikuYXR0cih7eG1sbnM6by5zdmcsInhsaW5rOmhyZWYiOnQscHJlc2VydmVBc3BlY3RSYXRpbzoibm9uZSIseDowLHk6MCx3aWR0aDp0aGlzLnN0eWxlLndpZHRoLGhlaWdodDp0aGlzLnN0eWxlLmhlaWdodH0pfSkpLHdpbmRvdy5zZXRUaW1lb3V0KChmdW5jdGlvbigpe24uc2VsZWN0QWxsKCIjZmlsdGVyQmFyUGF0dGVybiIpLmF0dHIoImlkIiwiZmlsdGVyQmFyUGF0dGVybiIpfSksNjApfX0seyIuLi8uLi9jb25zdGFudHMveG1sbnNfbmFtZXNwYWNlcyI6NDkyLCIuLi8uLi9wbG90cy9nZXRfZGF0YSI6NjAyLCIuL3Bsb3QiOjkwOSwiQHBsb3RseS9kMyI6NTh9XSw5MDE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIikuaXNBcnJheU9yVHlwZWRBcnJheSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSIpLGE9dCgiLi4vLi4vbGliL2d1cCIpLndyYXA7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbztyZXR1cm4gaS5oYXNDb2xvcnNjYWxlKGUsImxpbmUiKSYmbihlLmxpbmUuY29sb3IpPyhyPWUubGluZS5jb2xvcixvPWkuZXh0cmFjdE9wdHMoZS5saW5lKS5jb2xvcnNjYWxlLGkuY2FsYyh0LGUse3ZhbHM6cixjb250YWluZXJTdHI6ImxpbmUiLGNMZXR0ZXI6ImMifSkpOihyPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1uZXcgQXJyYXkodCkscj0wO3I8dDtyKyspZVtyXT0uNTtyZXR1cm4gZX0oZS5fbGVuZ3RoKSxvPVtbMCxlLmxpbmUuY29sb3JdLFsxLGUubGluZS5jb2xvcl1dKSxhKHtsaW5lQ29sb3I6cixjc2NhbGU6b30pfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiOjM3OSwiLi4vLi4vbGliIjo1MTUsIi4uLy4uL2xpYi9ndXAiOjUxMn1dLDkwMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e21heERpbWVuc2lvbkNvdW50OjYwLG92ZXJkcmFnOjQ1LHZlcnRpY2FsUGFkZGluZzoyLHRpY2tEaXN0YW5jZTo1MCxjYW52YXNQaXhlbFJhdGlvOjEsYmxvY2tMaW5lQ291bnQ6NWUzLGxheWVyczpbImNvbnRleHRMaW5lTGF5ZXIiLCJmb2N1c0xpbmVMYXllciIsInBpY2tMaW5lTGF5ZXIiXSxheGlzVGl0bGVPZmZzZXQ6MjgsYXhpc0V4dGVudE9mZnNldDoxMCxiYXI6e3dpZHRoOjQsY2FwdHVyZVdpZHRoOjEwLGZpbGxDb2xvcjoibWFnZW50YSIsZmlsbE9wYWNpdHk6MSxzbmFwRHVyYXRpb246MTUwLHNuYXBSYXRpbzouMjUsc25hcENsb3NlOi4wMSxzdHJva2VPcGFjaXR5OjEsc3Ryb2tlV2lkdGg6MSxoYW5kbGVIZWlnaHQ6OCxoYW5kbGVPcGFjaXR5OjEsaGFuZGxlT3ZlcmxhcDowfSxjbjp7YXhpc0V4dGVudFRleHQ6ImF4aXMtZXh0ZW50LXRleHQiLHBhcmNvb3Jkc0xpbmVMYXllcnM6InBhcmNvb3Jkcy1saW5lLWxheWVycyIscGFyY29vcmRzTGluZUxheWVyOiJwYXJjb29yZHMtbGluZXMiLHBhcmNvb3JkczoicGFyY29vcmRzIixwYXJjb29yZHNDb250cm9sVmlldzoicGFyY29vcmRzLWNvbnRyb2wtdmlldyIseUF4aXM6InktYXhpcyIsYXhpc092ZXJsYXlzOiJheGlzLW92ZXJsYXlzIixheGlzOiJheGlzIixheGlzSGVhZGluZzoiYXhpcy1oZWFkaW5nIixheGlzVGl0bGU6ImF4aXMtdGl0bGUiLGF4aXNFeHRlbnQ6ImF4aXMtZXh0ZW50IixheGlzRXh0ZW50VG9wOiJheGlzLWV4dGVudC10b3AiLGF4aXNFeHRlbnRUb3BUZXh0OiJheGlzLWV4dGVudC10b3AtdGV4dCIsYXhpc0V4dGVudEJvdHRvbToiYXhpcy1leHRlbnQtYm90dG9tIixheGlzRXh0ZW50Qm90dG9tVGV4dDoiYXhpcy1leHRlbnQtYm90dG9tLXRleHQiLGF4aXNCcnVzaDoiYXhpcy1icnVzaCJ9LGlkOntmaWx0ZXJCYXJQYXR0ZXJuOiJmaWx0ZXItYmFyLXBhdHRlcm4ifX19LHt9XSw5MDM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvaGVscGVycyIpLmhhc0NvbG9yc2NhbGUsYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiKSxvPXQoIi4uLy4uL3Bsb3RzL2RvbWFpbiIpLmRlZmF1bHRzLHM9dCgiLi4vLi4vcGxvdHMvYXJyYXlfY29udGFpbmVyX2RlZmF1bHRzIiksbD10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGM9dCgiLi9hdHRyaWJ1dGVzIiksdT10KCIuL2F4aXNicnVzaCIpLGY9dCgiLi9jb25zdGFudHMiKS5tYXhEaW1lbnNpb25Db3VudCxoPXQoIi4vbWVyZ2VfbGVuZ3RoIik7ZnVuY3Rpb24gcCh0LGUscixpKXtmdW5jdGlvbiBhKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxjLmRpbWVuc2lvbnMscixpKX12YXIgbz1hKCJ2YWx1ZXMiKSxzPWEoInZpc2libGUiKTtpZihvJiZvLmxlbmd0aHx8KHM9ZS52aXNpYmxlPSExKSxzKXthKCJsYWJlbCIpLGEoInRpY2t2YWxzIiksYSgidGlja3RleHQiKSxhKCJ0aWNrZm9ybWF0Iik7dmFyIGY9YSgicmFuZ2UiKTtlLl9heD17X2lkOiJ5Iix0eXBlOiJsaW5lYXIiLHNob3dleHBvbmVudDoiYWxsIixleHBvbmVudGZvcm1hdDoiQiIscmFuZ2U6Zn0sbC5zZXRDb252ZXJ0KGUuX2F4LGkubGF5b3V0KSxhKCJtdWx0aXNlbGVjdCIpO3ZhciBoPWEoImNvbnN0cmFpbnRyYW5nZSIpO2gmJihlLmNvbnN0cmFpbnRyYW5nZT11LmNsZWFuUmFuZ2VzKGgsZSkpfX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbCl7ZnVuY3Rpb24gdShyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsYyxyLGkpfXZhciBkPXQuZGltZW5zaW9ucztBcnJheS5pc0FycmF5KGQpJiZkLmxlbmd0aD5mJiYobi5sb2coInBhcmNvb3JkcyB0cmFjZXMgc3VwcG9ydCB1cCB0byAiK2YrIiBkaW1lbnNpb25zIGF0IHRoZSBtb21lbnQiKSxkLnNwbGljZShmKSk7dmFyIG09cyh0LGUse25hbWU6ImRpbWVuc2lvbnMiLGxheW91dDpsLGhhbmRsZUl0ZW1EZWZhdWx0czpwfSksZz1mdW5jdGlvbih0LGUscixvLHMpe3ZhciBsPXMoImxpbmUuY29sb3IiLHIpO2lmKGkodCwibGluZSIpJiZuLmlzQXJyYXlPclR5cGVkQXJyYXkobCkpe2lmKGwubGVuZ3RoKXJldHVybiBzKCJsaW5lLmNvbG9yc2NhbGUiKSxhKHQsZSxvLHMse3ByZWZpeDoibGluZS4iLGNMZXR0ZXI6ImMifSksbC5sZW5ndGg7ZS5saW5lLmNvbG9yPXJ9cmV0dXJuIDEvMH0odCxlLHIsbCx1KTtvKGUsbCx1KSxBcnJheS5pc0FycmF5KG0pJiZtLmxlbmd0aHx8KGUudmlzaWJsZT0hMSksaChlLG0sInZhbHVlcyIsZyk7dmFyIHY9e2ZhbWlseTpsLmZvbnQuZmFtaWx5LHNpemU6TWF0aC5yb3VuZChsLmZvbnQuc2l6ZS8xLjIpLGNvbG9yOmwuZm9udC5jb2xvcn07bi5jb2VyY2VGb250KHUsImxhYmVsZm9udCIsdiksbi5jb2VyY2VGb250KHUsInRpY2tmb250Iix2KSxuLmNvZXJjZUZvbnQodSwicmFuZ2Vmb250Iix2KSx1KCJsYWJlbGFuZ2xlIiksdSgibGFiZWxzaWRlIiksdSgidW5zZWxlY3RlZC5saW5lLmNvbG9yIiksdSgidW5zZWxlY3RlZC5saW5lLm9wYWNpdHkiKX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2RlZmF1bHRzIjozNzcsIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9oZWxwZXJzIjozNzgsIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9wbG90cy9hcnJheV9jb250YWluZXJfZGVmYXVsdHMiOjU2MSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjU2NiwiLi4vLi4vcGxvdHMvZG9tYWluIjo1OTMsIi4vYXR0cmlidXRlcyI6ODk3LCIuL2F4aXNicnVzaCI6ODk4LCIuL2NvbnN0YW50cyI6OTAyLCIuL21lcmdlX2xlbmd0aCI6OTA3fV0sOTA0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLmlzVHlwZWRBcnJheTtyLmNvbnZlcnRUeXBlZEFycmF5PWZ1bmN0aW9uKHQpe3JldHVybiBuKHQpP0FycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQpOnR9LHIuaXNPcmRpbmFsPWZ1bmN0aW9uKHQpe3JldHVybiEhdC50aWNrdmFsc30sci5pc1Zpc2libGU9ZnVuY3Rpb24odCl7cmV0dXJuIHQudmlzaWJsZXx8ISgidmlzaWJsZSJpbiB0KX19LHsiLi4vLi4vbGliIjo1MTV9XSw5MDU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9iYXNlX2luZGV4Iik7bi5wbG90PXQoIi4vcGxvdCIpLGUuZXhwb3J0cz1ufSx7Ii4vYmFzZV9pbmRleCI6ODk5LCIuL3Bsb3QiOjkwOX1dLDkwNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJnbHNsaWZ5IiksaT1uKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxudmFyeWluZyB2ZWM0IGZyYWdDb2xvcjtcblxuYXR0cmlidXRlIHZlYzQgcDAxXzA0LCBwMDVfMDgsIHAwOV8xMiwgcDEzXzE2LFxuICAgICAgICAgICAgICAgcDE3XzIwLCBwMjFfMjQsIHAyNV8yOCwgcDI5XzMyLFxuICAgICAgICAgICAgICAgcDMzXzM2LCBwMzdfNDAsIHA0MV80NCwgcDQ1XzQ4LFxuICAgICAgICAgICAgICAgcDQ5XzUyLCBwNTNfNTYsIHA1N182MCwgY29sb3JzO1xuXG51bmlmb3JtIG1hdDQgZGltMEEsIGRpbTFBLCBkaW0wQiwgZGltMUIsIGRpbTBDLCBkaW0xQywgZGltMEQsIGRpbTFELFxuICAgICAgICAgICAgIGxvQSwgaGlBLCBsb0IsIGhpQiwgbG9DLCBoaUMsIGxvRCwgaGlEO1xuXG51bmlmb3JtIHZlYzIgcmVzb2x1dGlvbiwgdmlld0JveFBvcywgdmlld0JveFNpemU7XG51bmlmb3JtIGZsb2F0IG1hc2tIZWlnaHQ7XG51bmlmb3JtIGZsb2F0IGRyd0xheWVyOyAvLyAwOiBjb250ZXh0LCAxOiBmb2N1cywgMjogcGlja1xudW5pZm9ybSB2ZWM0IGNvbnRleHRDb2xvcjtcbnVuaWZvcm0gc2FtcGxlcjJEIG1hc2tUZXh0dXJlLCBwYWxldHRlO1xuXG5ib29sIGlzUGljayAgICA9IChkcndMYXllciA+IDEuNSk7XG5ib29sIGlzQ29udGV4dCA9IChkcndMYXllciA8IDAuNSk7XG5cbmNvbnN0IHZlYzQgWkVST1MgPSB2ZWM0KDAuMCwgMC4wLCAwLjAsIDAuMCk7XG5jb25zdCB2ZWM0IFVOSVRTID0gdmVjNCgxLjAsIDEuMCwgMS4wLCAxLjApO1xuXG5mbG9hdCB2YWwobWF0NCBwLCBtYXQ0IHYpIHtcbiAgICByZXR1cm4gZG90KG1hdHJpeENvbXBNdWx0KHAsIHYpICogVU5JVFMsIFVOSVRTKTtcbn1cblxuZmxvYXQgYXhpc1koZmxvYXQgcmF0aW8sIG1hdDQgQSwgbWF0NCBCLCBtYXQ0IEMsIG1hdDQgRCkge1xuICAgIGZsb2F0IHkxID0gdmFsKEEsIGRpbTBBKSArIHZhbChCLCBkaW0wQikgKyB2YWwoQywgZGltMEMpICsgdmFsKEQsIGRpbTBEKTtcbiAgICBmbG9hdCB5MiA9IHZhbChBLCBkaW0xQSkgKyB2YWwoQiwgZGltMUIpICsgdmFsKEMsIGRpbTFDKSArIHZhbChELCBkaW0xRCk7XG4gICAgcmV0dXJuIHkxICogKDEuMCAtIHJhdGlvKSArIHkyICogcmF0aW87XG59XG5cbmludCBpTW9kKGludCBhLCBpbnQgYikge1xuICAgIHJldHVybiBhIC0gYiAqIChhIC8gYik7XG59XG5cbmJvb2wgZk91dHNpZGUoZmxvYXQgcCwgZmxvYXQgbG8sIGZsb2F0IGhpKSB7XG4gICAgcmV0dXJuIChsbyA8IGhpKSAmJiAobG8gPiBwIHx8IHAgPiBoaSk7XG59XG5cbmJvb2wgdk91dHNpZGUodmVjNCBwLCB2ZWM0IGxvLCB2ZWM0IGhpKSB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgZk91dHNpZGUocFswXSwgbG9bMF0sIGhpWzBdKSB8fFxuICAgICAgICBmT3V0c2lkZShwWzFdLCBsb1sxXSwgaGlbMV0pIHx8XG4gICAgICAgIGZPdXRzaWRlKHBbMl0sIGxvWzJdLCBoaVsyXSkgfHxcbiAgICAgICAgZk91dHNpZGUocFszXSwgbG9bM10sIGhpWzNdKVxuICAgICk7XG59XG5cbmJvb2wgbU91dHNpZGUobWF0NCBwLCBtYXQ0IGxvLCBtYXQ0IGhpKSB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgdk91dHNpZGUocFswXSwgbG9bMF0sIGhpWzBdKSB8fFxuICAgICAgICB2T3V0c2lkZShwWzFdLCBsb1sxXSwgaGlbMV0pIHx8XG4gICAgICAgIHZPdXRzaWRlKHBbMl0sIGxvWzJdLCBoaVsyXSkgfHxcbiAgICAgICAgdk91dHNpZGUocFszXSwgbG9bM10sIGhpWzNdKVxuICAgICk7XG59XG5cbmJvb2wgb3V0c2lkZUJvdW5kaW5nQm94KG1hdDQgQSwgbWF0NCBCLCBtYXQ0IEMsIG1hdDQgRCkge1xuICAgIHJldHVybiBtT3V0c2lkZShBLCBsb0EsIGhpQSkgfHxcbiAgICAgICAgICAgbU91dHNpZGUoQiwgbG9CLCBoaUIpIHx8XG4gICAgICAgICAgIG1PdXRzaWRlKEMsIGxvQywgaGlDKSB8fFxuICAgICAgICAgICBtT3V0c2lkZShELCBsb0QsIGhpRCk7XG59XG5cbmJvb2wgb3V0c2lkZVJhc3Rlck1hc2sobWF0NCBBLCBtYXQ0IEIsIG1hdDQgQywgbWF0NCBEKSB7XG4gICAgbWF0NCBwbnRzWzRdO1xuICAgIHBudHNbMF0gPSBBO1xuICAgIHBudHNbMV0gPSBCO1xuICAgIHBudHNbMl0gPSBDO1xuICAgIHBudHNbM10gPSBEO1xuXG4gICAgZm9yKGludCBpID0gMDsgaSA8IDQ7ICsraSkge1xuICAgICAgICBmb3IoaW50IGogPSAwOyBqIDwgNDsgKytqKSB7XG4gICAgICAgICAgICBmb3IoaW50IGsgPSAwOyBrIDwgNDsgKytrKSB7XG4gICAgICAgICAgICAgICAgaWYoMCA9PSBpTW9kKFxuICAgICAgICAgICAgICAgICAgICBpbnQoMjU1LjAgKiB0ZXh0dXJlMkQobWFza1RleHR1cmUsXG4gICAgICAgICAgICAgICAgICAgICAgICB2ZWMyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmbG9hdChpICogMiArIGogLyAyKSArIDAuNSkgLyA4LjAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBudHNbaV1bal1ba10gKiAobWFza0hlaWdodCAtIDEuMCkgKyAxLjApIC8gbWFza0hlaWdodFxuICAgICAgICAgICAgICAgICAgICAgICAgKSlbM11cbiAgICAgICAgICAgICAgICAgICAgKSAvIGludChwb3coMi4wLCBmbG9hdChpTW9kKGogKiA0ICsgaywgOCkpKSksXG4gICAgICAgICAgICAgICAgICAgIDJcbiAgICAgICAgICAgICAgICApKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG5cbnZlYzQgcG9zaXRpb24oYm9vbCBpc0NvbnRleHQsIGZsb2F0IHYsIG1hdDQgQSwgbWF0NCBCLCBtYXQ0IEMsIG1hdDQgRCkge1xuICAgIGZsb2F0IHggPSAwLjUgKiBzaWduKHYpICsgMC41O1xuICAgIGZsb2F0IHkgPSBheGlzWSh4LCBBLCBCLCBDLCBEKTtcbiAgICBmbG9hdCB6ID0gMS4wIC0gYWJzKHYpO1xuXG4gICAgeiArPSBpc0NvbnRleHQgPyAwLjAgOiAyLjAgKiBmbG9hdChcbiAgICAgICAgb3V0c2lkZUJvdW5kaW5nQm94KEEsIEIsIEMsIEQpIHx8XG4gICAgICAgIG91dHNpZGVSYXN0ZXJNYXNrKEEsIEIsIEMsIEQpXG4gICAgKTtcblxuICAgIHJldHVybiB2ZWM0KFxuICAgICAgICAyLjAgKiAodmVjMih4LCB5KSAqIHZpZXdCb3hTaXplICsgdmlld0JveFBvcykgLyByZXNvbHV0aW9uIC0gMS4wLFxuICAgICAgICB6LFxuICAgICAgICAxLjBcbiAgICApO1xufVxuXG52b2lkIG1haW4oKSB7XG4gICAgbWF0NCBBID0gbWF0NChwMDFfMDQsIHAwNV8wOCwgcDA5XzEyLCBwMTNfMTYpO1xuICAgIG1hdDQgQiA9IG1hdDQocDE3XzIwLCBwMjFfMjQsIHAyNV8yOCwgcDI5XzMyKTtcbiAgICBtYXQ0IEMgPSBtYXQ0KHAzM18zNiwgcDM3XzQwLCBwNDFfNDQsIHA0NV80OCk7XG4gICAgbWF0NCBEID0gbWF0NChwNDlfNTIsIHA1M181NiwgcDU3XzYwLCBaRVJPUyk7XG5cbiAgICBmbG9hdCB2ID0gY29sb3JzWzNdO1xuXG4gICAgZ2xfUG9zaXRpb24gPSBwb3NpdGlvbihpc0NvbnRleHQsIHYsIEEsIEIsIEMsIEQpO1xuXG4gICAgZnJhZ0NvbG9yID1cbiAgICAgICAgaXNDb250ZXh0ID8gdmVjNChjb250ZXh0Q29sb3IpIDpcbiAgICAgICAgaXNQaWNrID8gdmVjNChjb2xvcnMucmdiLCAxLjApIDogdGV4dHVyZTJEKHBhbGV0dGUsIHZlYzIoYWJzKHYpLCAwLjUpKTtcbn1cbiJdKSxhPW4oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG52YXJ5aW5nIHZlYzQgZnJhZ0NvbG9yO1xuXG52b2lkIG1haW4oKSB7XG4gICAgZ2xfRnJhZ0NvbG9yID0gZnJhZ0NvbG9yO1xufVxuIl0pLG89dCgiLi9jb25zdGFudHMiKS5tYXhEaW1lbnNpb25Db3VudCxzPXQoIi4uLy4uL2xpYiIpLGw9bmV3IFVpbnQ4QXJyYXkoNCksYz1uZXcgVWludDhBcnJheSg0KSx1PXtzaGFwZTpbMjU2LDFdLGZvcm1hdDoicmdiYSIsdHlwZToidWludDgiLG1hZzoibmVhcmVzdCIsbWluOiJuZWFyZXN0In07ZnVuY3Rpb24gZih0LGUscixuLGkpe3ZhciBhPXQuX2dsO2EuZW5hYmxlKGEuU0NJU1NPUl9URVNUKSxhLnNjaXNzb3IoZSxyLG4saSksdC5jbGVhcih7Y29sb3I6WzAsMCwwLDBdLGRlcHRoOjF9KX1mdW5jdGlvbiBoKHQsZSxyLG4saSxhKXt2YXIgbz1hLmtleTtyLmRyYXdDb21wbGV0ZWR8fCghZnVuY3Rpb24odCl7dC5yZWFkKHt4OjAseTowLHdpZHRoOjEsaGVpZ2h0OjEsZGF0YTpsfSl9KHQpLHIuZHJhd0NvbXBsZXRlZD0hMCksZnVuY3Rpb24gcyhsKXt2YXIgYz1NYXRoLm1pbihuLGktbCpuKTswPT09bCYmKHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZShyLmN1cnJlbnRSYWZzW29dKSxkZWxldGUgci5jdXJyZW50UmFmc1tvXSxmKHQsYS5zY2lzc29yWCxhLnNjaXNzb3JZLGEuc2Npc3NvcldpZHRoLGEudmlld0JveFNpemVbMV0pKSxyLmNsZWFyT25seXx8KGEuY291bnQ9MipjLGEub2Zmc2V0PTIqbCpuLGUoYSksbCpuK2M8aSYmKHIuY3VycmVudFJhZnNbb109d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoZnVuY3Rpb24oKXtzKGwrMSl9KSkpLHIuZHJhd0NvbXBsZXRlZD0hMSl9KDApfWZ1bmN0aW9uIHAodCxlKXtmb3IodmFyIHI9bmV3IEFycmF5KDI1Niksbj0wO248MjU2O24rKylyW25dPXQobi8yNTUpLmNvbmNhdChlKTtyZXR1cm4gcn1mdW5jdGlvbiBkKHQsZSl7cmV0dXJuKHQ+Pj44KmUpJTI1Ni8yNTV9ZnVuY3Rpb24gbSh0LGUscil7Zm9yKHZhciBuPW5ldyBBcnJheSg4KmUpLGk9MCxhPTA7YTxlO2ErKylmb3IodmFyIG89MDtvPDI7bysrKWZvcih2YXIgcz0wO3M8NDtzKyspe3ZhciBsPTQqdCtzLGM9cls2NCphK2xdOzYzPT09bCYmMD09PW8mJihjKj0tMSksbltpKytdPWN9cmV0dXJuIG59ZnVuY3Rpb24gZyh0KXt2YXIgZT0iMCIrdDtyZXR1cm4gZS5zdWJzdHIoZS5sZW5ndGgtMil9ZnVuY3Rpb24gdih0KXtyZXR1cm4gdDxvPyJwIitnKHQrMSkrIl8iK2codCs0KToiY29sb3JzIn1mdW5jdGlvbiB5KHQsZSxyLG4saSxhLG8sbCxjLHUsZixoLHAsZCl7Zm9yKHZhciBtPVtbXSxbXV0sZz0wO2c8NjQ7ZysrKW1bMF1bZ109Zz09PWk/MTowLG1bMV1bZ109Zz09PWE/MTowO28qPWQsbCo9ZCxjKj1kLHUqPWQ7dmFyIHY9dC5saW5lcy5jYW52YXNPdmVyZHJhZypkLHk9dC5kb21haW4seD10LmNhbnZhc1dpZHRoKmQsYj10LmNhbnZhc0hlaWdodCpkLF89dC5wYWQubCpkLHc9dC5wYWQuYipkLFQ9dC5sYXlvdXRIZWlnaHQqZCxrPXQubGF5b3V0V2lkdGgqZCxBPXQuZGVzZWxlY3RlZExpbmVzLmNvbG9yLE09dC5kZXNlbGVjdGVkTGluZXMub3BhY2l0eTtyZXR1cm4gcy5leHRlbmRGbGF0KHtrZXk6ZixyZXNvbHV0aW9uOlt4LGJdLHZpZXdCb3hQb3M6W28rdixsXSx2aWV3Qm94U2l6ZTpbYyx1XSxpMDppLGkxOmEsZGltMEE6bVswXS5zbGljZSgwLDE2KSxkaW0wQjptWzBdLnNsaWNlKDE2LDMyKSxkaW0wQzptWzBdLnNsaWNlKDMyLDQ4KSxkaW0wRDptWzBdLnNsaWNlKDQ4LDY0KSxkaW0xQTptWzFdLnNsaWNlKDAsMTYpLGRpbTFCOm1bMV0uc2xpY2UoMTYsMzIpLGRpbTFDOm1bMV0uc2xpY2UoMzIsNDgpLGRpbTFEOm1bMV0uc2xpY2UoNDgsNjQpLGRyd0xheWVyOmgsY29udGV4dENvbG9yOltBWzBdLzI1NSxBWzFdLzI1NSxBWzJdLzI1NSwiYXV0byIhPT1NP0FbM10qTTpNYXRoLm1heCgxLzI1NSxNYXRoLnBvdygxL3QubGluZXMuY29sb3IubGVuZ3RoLDEvMykpXSxzY2lzc29yWDoobj09PWU/MDpvK3YpKyhfLXYpK2sqeS54WzBdLHNjaXNzb3JXaWR0aDoobj09PXI/eC1vK3Y6YysuNSkrKG49PT1lP28rdjowKSxzY2lzc29yWTpsK3crVCp5LnlbMF0sc2Npc3NvckhlaWdodDp1LHZpZXdwb3J0WDpfLXYrayp5LnhbMF0sdmlld3BvcnRZOncrVCp5LnlbMF0sdmlld3BvcnRXaWR0aDp4LHZpZXdwb3J0SGVpZ2h0OmJ9LHApfWZ1bmN0aW9uIHgodCl7dmFyIGU9TWF0aC5tYXgoMCxNYXRoLmZsb29yKDIwNDcqdFswXSksMCkscj1NYXRoLm1pbigyMDQ3LE1hdGguY2VpbCgyMDQ3KnRbMV0pLDIwNDcpO3JldHVybltNYXRoLm1pbihlLHIpLE1hdGgubWF4KGUscildfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLG4sbCxnLGIsXz1lLmNvbnRleHQsdz1lLnBpY2ssVD1lLnJlZ2wsaz1ULl9nbCxBPWsuZ2V0UGFyYW1ldGVyKGsuQUxJQVNFRF9MSU5FX1dJRFRIX1JBTkdFKSxNPU1hdGgubWF4KEFbMF0sTWF0aC5taW4oQVsxXSxlLnZpZXdNb2RlbC5wbG90R2xQaXhlbFJhdGlvKSksUz17Y3VycmVudFJhZnM6e30sZHJhd0NvbXBsZXRlZDohMCxjbGVhck9ubHk6ITF9LEU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXt9LHI9MDtyPD1vO3IrPTQpZVt2KHIpXT10LmJ1ZmZlcih7dXNhZ2U6ImR5bmFtaWMiLHR5cGU6ImZsb2F0IixkYXRhOm5ldyBVaW50OEFycmF5KDApfSk7cmV0dXJuIGV9KFQpLEw9VC50ZXh0dXJlKHUpLEM9W107SShlKTt2YXIgUD1UKHtwcm9maWxlOiExLGJsZW5kOntlbmFibGU6XyxmdW5jOntzcmNSR0I6InNyYyBhbHBoYSIsZHN0UkdCOiJvbmUgbWludXMgc3JjIGFscGhhIixzcmNBbHBoYToxLGRzdEFscGhhOjF9LGVxdWF0aW9uOntyZ2I6ImFkZCIsYWxwaGE6ImFkZCJ9LGNvbG9yOlswLDAsMCwwXX0sZGVwdGg6e2VuYWJsZTohXyxtYXNrOiEwLGZ1bmM6Imxlc3MiLHJhbmdlOlswLDFdfSxjdWxsOntlbmFibGU6ITAsZmFjZToiYmFjayJ9LHNjaXNzb3I6e2VuYWJsZTohMCxib3g6e3g6VC5wcm9wKCJzY2lzc29yWCIpLHk6VC5wcm9wKCJzY2lzc29yWSIpLHdpZHRoOlQucHJvcCgic2Npc3NvcldpZHRoIiksaGVpZ2h0OlQucHJvcCgic2Npc3NvckhlaWdodCIpfX0sdmlld3BvcnQ6e3g6VC5wcm9wKCJ2aWV3cG9ydFgiKSx5OlQucHJvcCgidmlld3BvcnRZIiksd2lkdGg6VC5wcm9wKCJ2aWV3cG9ydFdpZHRoIiksaGVpZ2h0OlQucHJvcCgidmlld3BvcnRIZWlnaHQiKX0sZGl0aGVyOiExLHZlcnQ6aSxmcmFnOmEscHJpbWl0aXZlOiJsaW5lcyIsbGluZVdpZHRoOk0sYXR0cmlidXRlczpFLHVuaWZvcm1zOntyZXNvbHV0aW9uOlQucHJvcCgicmVzb2x1dGlvbiIpLHZpZXdCb3hQb3M6VC5wcm9wKCJ2aWV3Qm94UG9zIiksdmlld0JveFNpemU6VC5wcm9wKCJ2aWV3Qm94U2l6ZSIpLGRpbTBBOlQucHJvcCgiZGltMEEiKSxkaW0xQTpULnByb3AoImRpbTFBIiksZGltMEI6VC5wcm9wKCJkaW0wQiIpLGRpbTFCOlQucHJvcCgiZGltMUIiKSxkaW0wQzpULnByb3AoImRpbTBDIiksZGltMUM6VC5wcm9wKCJkaW0xQyIpLGRpbTBEOlQucHJvcCgiZGltMEQiKSxkaW0xRDpULnByb3AoImRpbTFEIiksbG9BOlQucHJvcCgibG9BIiksaGlBOlQucHJvcCgiaGlBIiksbG9COlQucHJvcCgibG9CIiksaGlCOlQucHJvcCgiaGlCIiksbG9DOlQucHJvcCgibG9DIiksaGlDOlQucHJvcCgiaGlDIiksbG9EOlQucHJvcCgibG9EIiksaGlEOlQucHJvcCgiaGlEIikscGFsZXR0ZTpMLGNvbnRleHRDb2xvcjpULnByb3AoImNvbnRleHRDb2xvciIpLG1hc2tUZXh0dXJlOlQucHJvcCgibWFza1RleHR1cmUiKSxkcndMYXllcjpULnByb3AoImRyd0xheWVyIiksbWFza0hlaWdodDpULnByb3AoIm1hc2tIZWlnaHQiKX0sb2Zmc2V0OlQucHJvcCgib2Zmc2V0IiksY291bnQ6VC5wcm9wKCJjb3VudCIpfSk7ZnVuY3Rpb24gSSh0KXtyPXQubW9kZWwsbj10LnZpZXdNb2RlbCxsPW4uZGltZW5zaW9ucy5zbGljZSgpLGc9bFswXT9sWzBdLnZhbHVlcy5sZW5ndGg6MDt2YXIgZT1yLmxpbmVzLGk9dz9lLmNvbG9yLm1hcCgoZnVuY3Rpb24odCxyKXtyZXR1cm4gci9lLmNvbG9yLmxlbmd0aH0pKTplLmNvbG9yLGE9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbixpPW5ldyBBcnJheSh0KihvKzQpKSxhPTAscz0wO3M8dDtzKyspe2Zvcih2YXIgbD0wO2w8bztsKyspaVthKytdPWw8ZS5sZW5ndGg/ZVtsXS5wYWRkZWRVbml0VmFsdWVzW3NdOi41O2lbYSsrXT1kKHMsMiksaVthKytdPWQocywxKSxpW2ErK109ZChzLDApLGlbYSsrXT0obj1yW3NdLE1hdGgubWF4KDFlLTYsTWF0aC5taW4oLjk5OTk5OSxuKSkpfXJldHVybiBpfShnLGwsaSk7IWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG49MDtuPD1vO24rPTQpdFt2KG4pXShtKG4vNCxlLHIpKX0oRSxnLGEpLF98fHd8fChMPVQudGV4dHVyZShzLmV4dGVuZEZsYXQoe2RhdGE6cChyLnVuaXRUb0NvbG9yLDI1NSl9LHUpKSl9cmV0dXJue3JlbmRlcjpmdW5jdGlvbih0LGUsbil7dmFyIGksYSxvLHM9dC5sZW5ndGgsYz0xLzAsdT0tMS8wO2ZvcihpPTA7aTxzO2krKyl0W2ldLmRpbTAuY2FudmFzWDxjJiYoYz10W2ldLmRpbTAuY2FudmFzWCxhPWkpLHRbaV0uZGltMS5jYW52YXNYPnUmJih1PXRbaV0uZGltMS5jYW52YXNYLG89aSk7MD09PXMmJmYoVCwwLDAsci5jYW52YXNXaWR0aCxyLmNhbnZhc0hlaWdodCk7dmFyIHA9ZnVuY3Rpb24odCl7dmFyIGUscixuLGk9W1tdLFtdXTtmb3Iobj0wO248NjQ7bisrKXt2YXIgYT0hdCYmbjxsLmxlbmd0aD9sW25dLmJydXNoLmZpbHRlci5nZXRCb3VuZHMoKTpbLTEvMCwxLzBdO2lbMF1bbl09YVswXSxpWzFdW25dPWFbMV19dmFyIG89bmV3IEFycmF5KDE2Mzg0KTtmb3IoZT0wO2U8MTYzODQ7ZSsrKW9bZV09MjU1O2lmKCF0KWZvcihlPTA7ZTxsLmxlbmd0aDtlKyspe3ZhciBzPWUlOCxjPShlLXMpLzgsdT1NYXRoLnBvdygyLHMpLGY9bFtlXS5icnVzaC5maWx0ZXIuZ2V0KCk7aWYoIShmLmxlbmd0aDwyKSl7dmFyIGg9eChmWzBdKVsxXTtmb3Iocj0xO3I8Zi5sZW5ndGg7cisrKXt2YXIgcD14KGZbcl0pO2ZvcihuPWgrMTtuPHBbMF07bisrKW9bOCpuK2NdJj1+dTtoPU1hdGgubWF4KGgscFsxXSl9fX12YXIgZD17c2hhcGU6WzgsMjA0OF0sZm9ybWF0OiJhbHBoYSIsdHlwZToidWludDgiLG1hZzoibmVhcmVzdCIsbWluOiJuZWFyZXN0IixkYXRhOm99O3JldHVybiBiP2IoZCk6Yj1ULnRleHR1cmUoZCkse21hc2tUZXh0dXJlOmIsbWFza0hlaWdodDoyMDQ4LGxvQTppWzBdLnNsaWNlKDAsMTYpLGxvQjppWzBdLnNsaWNlKDE2LDMyKSxsb0M6aVswXS5zbGljZSgzMiw0OCksbG9EOmlbMF0uc2xpY2UoNDgsNjQpLGhpQTppWzFdLnNsaWNlKDAsMTYpLGhpQjppWzFdLnNsaWNlKDE2LDMyKSxoaUM6aVsxXS5zbGljZSgzMiw0OCksaGlEOmlbMV0uc2xpY2UoNDgsNjQpfX0oXyk7Zm9yKGk9MDtpPHM7aSsrKXt2YXIgZD10W2ldLG09ZC5kaW0wLmNyb3NzZmlsdGVyRGltZW5zaW9uSW5kZXgsdj1kLmRpbTEuY3Jvc3NmaWx0ZXJEaW1lbnNpb25JbmRleCxrPWQuY2FudmFzWCxBPWQuY2FudmFzWSxNPWsrZC5wYW5lbFNpemVYLEU9ZC5wbG90R2xQaXhlbFJhdGlvO2lmKGV8fCFDW21dfHxDW21dWzBdIT09a3x8Q1ttXVsxXSE9PU0pe0NbbV09W2ssTV07dmFyIEw9eShyLGEsbyxpLG0sdixrLEEsZC5wYW5lbFNpemVYLGQucGFuZWxTaXplWSxkLmRpbTAuY3Jvc3NmaWx0ZXJEaW1lbnNpb25JbmRleCxfPzA6dz8yOjEscCxFKTtTLmNsZWFyT25seT1uO3ZhciBJPWU/ci5saW5lcy5ibG9ja0xpbmVDb3VudDpnO2goVCxQLFMsSSxnLEwpfX19LHJlYWRQaXhlbDpmdW5jdGlvbih0LGUpe3JldHVybiBULnJlYWQoe3g6dCx5OmUsd2lkdGg6MSxoZWlnaHQ6MSxkYXRhOmN9KSxjfSxyZWFkUGl4ZWxzOmZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPW5ldyBVaW50OEFycmF5KDQqcipuKTtyZXR1cm4gVC5yZWFkKHt4OnQseTplLHdpZHRoOnIsaGVpZ2h0Om4sZGF0YTppfSksaX0sZGVzdHJveTpmdW5jdGlvbigpe2Zvcih2YXIgZSBpbiB0LnN0eWxlWyJwb2ludGVyLWV2ZW50cyJdPSJub25lIixMLmRlc3Ryb3koKSxiJiZiLmRlc3Ryb3koKSxFKUVbZV0uZGVzdHJveSgpfSx1cGRhdGU6SX19fSx7Ii4uLy4uL2xpYiI6NTE1LCIuL2NvbnN0YW50cyI6OTAyLGdsc2xpZnk6MjI3fV0sOTA3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuKXt2YXIgaSxhO2ZvcihufHwobj0xLzApLGk9MDtpPGUubGVuZ3RoO2krKykoYT1lW2ldKS52aXNpYmxlJiYobj1NYXRoLm1pbihuLGFbcl0ubGVuZ3RoKSk7Zm9yKG49PT0xLzAmJihuPTApLHQuX2xlbmd0aD1uLGk9MDtpPGUubGVuZ3RoO2krKykoYT1lW2ldKS52aXNpYmxlJiYoYS5fbGVuZ3RoPW4pO3JldHVybiBufX0se31dLDkwODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9saWIiKSxhPWkubnVtYmVyRm9ybWF0LG89dCgiY29sb3ItcmdiYSIpLHM9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxsPWkuc3RyUm90YXRlLGM9aS5zdHJUcmFuc2xhdGUsdT10KCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiKSxmPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLGg9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIikscD10KCIuLi8uLi9saWIvZ3VwIiksZD1wLmtleUZ1bixtPXAucmVwZWF0LGc9cC51bndyYXAsdj10KCIuL2hlbHBlcnMiKSx5PXQoIi4vY29uc3RhbnRzIikseD10KCIuL2F4aXNicnVzaCIpLGI9dCgiLi9saW5lcyIpO2Z1bmN0aW9uIF8odCxlLHIpe3JldHVybiBpLmFnZ051bXModCxudWxsLGUscil9ZnVuY3Rpb24gdyh0LGUpe3JldHVybiBrKF8oTWF0aC5taW4sdCxlKSxfKE1hdGgubWF4LHQsZSkpfWZ1bmN0aW9uIFQodCl7dmFyIGU9dC5yYW5nZTtyZXR1cm4gZT9rKGVbMF0sZVsxXSk6dyh0LnZhbHVlcyx0Ll9sZW5ndGgpfWZ1bmN0aW9uIGsodCxlKXtyZXR1cm4haXNOYU4odCkmJmlzRmluaXRlKHQpfHwodD0wKSwhaXNOYU4oZSkmJmlzRmluaXRlKGUpfHwoZT0wKSx0PT09ZSYmKDA9PT10Pyh0LT0xLGUrPTEpOih0Kj0uOSxlKj0xLjEpKSxbdCxlXX1mdW5jdGlvbiBBKHQsZSxyLGksbyl7dmFyIHMsbCxjPVQocik7cmV0dXJuIGk/bi5zY2FsZS5vcmRpbmFsKCkuZG9tYWluKGkubWFwKChzPWEoci50aWNrZm9ybWF0KSxsPW8sbD9mdW5jdGlvbih0LGUpe3ZhciByPWxbZV07cmV0dXJuIG51bGw9PXI/cyh0KTpyfTpzKSkpLnJhbmdlKGkubWFwKChmdW5jdGlvbihyKXt2YXIgbj0oci1jWzBdKS8oY1sxXS1jWzBdKTtyZXR1cm4gdC1lK24qKDIqZS10KX0pKSk6bi5zY2FsZS5saW5lYXIoKS5kb21haW4oYykucmFuZ2UoW3QtZSxlXSl9ZnVuY3Rpb24gTSh0KXtpZih0LnRpY2t2YWxzKXt2YXIgZT1UKHQpO3JldHVybiBuLnNjYWxlLm9yZGluYWwoKS5kb21haW4odC50aWNrdmFscykucmFuZ2UodC50aWNrdmFscy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybih0LWVbMF0pLyhlWzFdLWVbMF0pfSkpKX19ZnVuY3Rpb24gUyh0KXt2YXIgZT10Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHRbMF19KSkscj10Lm1hcCgoZnVuY3Rpb24odCl7dmFyIGU9byh0WzFdKTtyZXR1cm4gbi5yZ2IoInJnYigiK2VbMF0rIiwiK2VbMV0rIiwiK2VbMl0rIikiKX0pKSxpPSJyZ2IiLnNwbGl0KCIiKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBuLnNjYWxlLmxpbmVhcigpLmNsYW1wKCEwKS5kb21haW4oZSkucmFuZ2Uoci5tYXAoKGk9dCxmdW5jdGlvbih0KXtyZXR1cm4gdFtpXX0pKSk7dmFyIGl9KSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUodCl9KSl9fWZ1bmN0aW9uIEUodCl7cmV0dXJuIHQuZGltZW5zaW9ucy5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gdC5icnVzaC5maWx0ZXJTcGVjaWZpZWR9KSl9ZnVuY3Rpb24gTCh0LGUscil7dmFyIGE9ZyhlKSxzPWEudHJhY2UsbD12LmNvbnZlcnRUeXBlZEFycmF5KGEubGluZUNvbG9yKSxjPXMubGluZSx1PXtjb2xvcjpvKHMudW5zZWxlY3RlZC5saW5lLmNvbG9yKSxvcGFjaXR5OnMudW5zZWxlY3RlZC5saW5lLm9wYWNpdHl9LGY9aC5leHRyYWN0T3B0cyhjKSxwPWYucmV2ZXJzZXNjYWxlP2guZmxpcFNjYWxlKGEuY3NjYWxlKTphLmNzY2FsZSxkPXMuZG9tYWluLG09cy5kaW1lbnNpb25zLHg9dC53aWR0aCxiPXMubGFiZWxhbmdsZSxfPXMubGFiZWxzaWRlLHc9cy5sYWJlbGZvbnQsaz1zLnRpY2tmb250LEE9cy5yYW5nZWZvbnQsTT1pLmV4dGVuZERlZXBOb0FycmF5cyh7fSxjLHtjb2xvcjpsLm1hcChuLnNjYWxlLmxpbmVhcigpLmRvbWFpbihUKHt2YWx1ZXM6bCxyYW5nZTpbZi5taW4sZi5tYXhdLF9sZW5ndGg6cy5fbGVuZ3RofSkpKSxibG9ja0xpbmVDb3VudDp5LmJsb2NrTGluZUNvdW50LGNhbnZhc092ZXJkcmFnOnkub3ZlcmRyYWcqeS5jYW52YXNQaXhlbFJhdGlvfSksRT1NYXRoLmZsb29yKHgqKGQueFsxXS1kLnhbMF0pKSxMPU1hdGguZmxvb3IodC5oZWlnaHQqKGQueVsxXS1kLnlbMF0pKSxDPXQubWFyZ2lufHx7bDo4MCxyOjgwLHQ6MTAwLGI6ODB9LFA9RSxJPUw7cmV0dXJue2tleTpyLGNvbENvdW50Om0uZmlsdGVyKHYuaXNWaXNpYmxlKS5sZW5ndGgsZGltZW5zaW9uczptLHRpY2tEaXN0YW5jZTp5LnRpY2tEaXN0YW5jZSx1bml0VG9Db2xvcjpTKHApLGxpbmVzOk0sZGVzZWxlY3RlZExpbmVzOnUsbGFiZWxBbmdsZTpiLGxhYmVsU2lkZTpfLGxhYmVsRm9udDp3LHRpY2tGb250OmsscmFuZ2VGb250OkEsbGF5b3V0V2lkdGg6eCxsYXlvdXRIZWlnaHQ6dC5oZWlnaHQsZG9tYWluOmQsdHJhbnNsYXRlWDpkLnhbMF0qeCx0cmFuc2xhdGVZOnQuaGVpZ2h0LWQueVsxXSp0LmhlaWdodCxwYWQ6QyxjYW52YXNXaWR0aDpQKnkuY2FudmFzUGl4ZWxSYXRpbysyKk0uY2FudmFzT3ZlcmRyYWcsY2FudmFzSGVpZ2h0OkkqeS5jYW52YXNQaXhlbFJhdGlvLHdpZHRoOlAsaGVpZ2h0OkksY2FudmFzUGl4ZWxSYXRpbzp5LmNhbnZhc1BpeGVsUmF0aW99fWZ1bmN0aW9uIEModCxlLHIpe3ZhciBvPXIud2lkdGgscz1yLmhlaWdodCxsPXIuZGltZW5zaW9ucyxjPXIuY2FudmFzUGl4ZWxSYXRpbyx1PWZ1bmN0aW9uKHQpe3JldHVybiBvKnQvTWF0aC5tYXgoMSxyLmNvbENvdW50LTEpfSxmPXkudmVydGljYWxQYWRkaW5nL3MsaD1mdW5jdGlvbih0LGUpe3JldHVybiBuLnNjYWxlLmxpbmVhcigpLnJhbmdlKFtlLHQtZV0pfShzLHkudmVydGljYWxQYWRkaW5nKSxwPXtrZXk6ci5rZXkseFNjYWxlOnUsbW9kZWw6cixpbkJydXNoRHJhZzohMX0sZD17fTtyZXR1cm4gcC5kaW1lbnNpb25zPWwuZmlsdGVyKHYuaXNWaXNpYmxlKS5tYXAoKGZ1bmN0aW9uKG8sbCl7dmFyIG09ZnVuY3Rpb24odCxlKXtyZXR1cm4gbi5zY2FsZS5saW5lYXIoKS5kb21haW4oVCh0KSkucmFuZ2UoW2UsMS1lXSl9KG8sZiksZz1kW28ubGFiZWxdO2Rbby5sYWJlbF09KGd8fDApKzE7dmFyIGI9by5sYWJlbCsoZz8iX18iK2c6IiIpLF89by5jb25zdHJhaW50cmFuZ2Usdz1fJiZfLmxlbmd0aDt3JiYhQXJyYXkuaXNBcnJheShfWzBdKSYmKF89W19dKTt2YXIgaz13P18ubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5tYXAobSl9KSk6W1stMS8wLDEvMF1dLFM9by52YWx1ZXM7Uy5sZW5ndGg+by5fbGVuZ3RoJiYoUz1TLnNsaWNlKDAsby5fbGVuZ3RoKSk7dmFyIEwsQz1vLnRpY2t2YWxzO2Z1bmN0aW9uIFAodCxlKXtyZXR1cm57dmFsOnQsdGV4dDpMW2VdfX1mdW5jdGlvbiBJKHQsZSl7cmV0dXJuIHQudmFsLWUudmFsfWlmKEFycmF5LmlzQXJyYXkoQykmJkMubGVuZ3RoKXtMPW8udGlja3RleHQsQXJyYXkuaXNBcnJheShMKSYmTC5sZW5ndGg/TC5sZW5ndGg+Qy5sZW5ndGg/TD1MLnNsaWNlKDAsQy5sZW5ndGgpOkMubGVuZ3RoPkwubGVuZ3RoJiYoQz1DLnNsaWNlKDAsTC5sZW5ndGgpKTpMPUMubWFwKGEoby50aWNrZm9ybWF0KSk7Zm9yKHZhciBPPTE7TzxDLmxlbmd0aDtPKyspaWYoQ1tPXTxDW08tMV0pe2Zvcih2YXIgej1DLm1hcChQKS5zb3J0KEkpLEQ9MDtEPEMubGVuZ3RoO0QrKylDW0RdPXpbRF0udmFsLExbRF09eltEXS50ZXh0O2JyZWFrfX1lbHNlIEM9dm9pZCAwO3JldHVybiBTPXYuY29udmVydFR5cGVkQXJyYXkoUykse2tleTpiLGxhYmVsOm8ubGFiZWwsdGlja0Zvcm1hdDpvLnRpY2tmb3JtYXQsdGlja3ZhbHM6Qyx0aWNrdGV4dDpMLG9yZGluYWw6di5pc09yZGluYWwobyksbXVsdGlzZWxlY3Q6by5tdWx0aXNlbGVjdCx4SW5kZXg6bCxjcm9zc2ZpbHRlckRpbWVuc2lvbkluZGV4OmwsdmlzaWJsZUluZGV4Om8uX2luZGV4LGhlaWdodDpzLHZhbHVlczpTLHBhZGRlZFVuaXRWYWx1ZXM6Uy5tYXAobSksdW5pdFRpY2t2YWxzOkMmJkMubWFwKG0pLHhTY2FsZTp1LHg6dShsKSxjYW52YXNYOnUobCkqYyx1bml0VG9QYWRkZWRQeDpoLGRvbWFpblNjYWxlOkEocyx5LnZlcnRpY2FsUGFkZGluZyxvLEMsTCksb3JkaW5hbFNjYWxlOk0obykscGFyZW50OnAsbW9kZWw6cixicnVzaDp4Lm1ha2VCcnVzaCh0LHcsaywoZnVuY3Rpb24oKXt0LmxpbmVQaWNrQWN0aXZlKCExKX0pLChmdW5jdGlvbigpe3ZhciBlPXA7ZS5mb2N1c0xheWVyJiZlLmZvY3VzTGF5ZXIucmVuZGVyKGUucGFuZWxzLCEwKTt2YXIgcj1FKGUpOyF0LmNvbnRleHRTaG93bigpJiZyPyhlLmNvbnRleHRMYXllciYmZS5jb250ZXh0TGF5ZXIucmVuZGVyKGUucGFuZWxzLCEwKSx0LmNvbnRleHRTaG93bighMCkpOnQuY29udGV4dFNob3duKCkmJiFyJiYoZS5jb250ZXh0TGF5ZXImJmUuY29udGV4dExheWVyLnJlbmRlcihlLnBhbmVscywhMCwhMCksdC5jb250ZXh0U2hvd24oITEpKX0pLChmdW5jdGlvbihyKXtpZihwLmZvY3VzTGF5ZXIucmVuZGVyKHAucGFuZWxzLCEwKSxwLnBpY2tMYXllciYmcC5waWNrTGF5ZXIucmVuZGVyKHAucGFuZWxzLCEwKSx0LmxpbmVQaWNrQWN0aXZlKCEwKSxlJiZlLmZpbHRlckNoYW5nZWQpe3ZhciBuPW0uaW52ZXJ0LGE9ci5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm1hcChuKS5zb3J0KGkuc29ydGVyQXNjKX0pKS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0WzBdLWVbMF19KSk7ZS5maWx0ZXJDaGFuZ2VkKHAua2V5LG8uX2luZGV4LGEpfX0pKX19KSkscH1mdW5jdGlvbiBQKHQpe3QuY2xhc3NlZCh5LmNuLmF4aXNFeHRlbnRUZXh0LCEwKS5hdHRyKCJ0ZXh0LWFuY2hvciIsIm1pZGRsZSIpLnN0eWxlKCJjdXJzb3IiLCJkZWZhdWx0Iil9ZnVuY3Rpb24gSSh0LGUpe3ZhciByPSJ0b3AiPT09ZT8xOi0xLG49dCpNYXRoLlBJLzE4MDtyZXR1cm57ZGlyOnIsZHg6TWF0aC5zaW4obiksZHk6TWF0aC5jb3MobiksZGVncmVlczp0fX1mdW5jdGlvbiBPKHQsZSxyKXtmb3IodmFyIG49ZS5wYW5lbHN8fChlLnBhbmVscz1bXSksaT10LmRhdGEoKSxhPTA7YTxpLmxlbmd0aC0xO2ErKyl7dmFyIG89blthXXx8KG5bYV09e30pLHM9aVthXSxsPWlbYSsxXTtvLmRpbTA9cyxvLmRpbTE9bCxvLmNhbnZhc1g9cy5jYW52YXNYLG8ucGFuZWxTaXplWD1sLmNhbnZhc1gtcy5jYW52YXNYLG8ucGFuZWxTaXplWT1lLm1vZGVsLmNhbnZhc0hlaWdodCxvLnk9MCxvLmNhbnZhc1k9MCxvLnBsb3RHbFBpeGVsUmF0aW89cn19ZnVuY3Rpb24geih0LGUpe3JldHVybiBzLnRpY2tUZXh0KHQuX2F4LGUsITEpLnRleHR9ZnVuY3Rpb24gRCh0LGUpe2lmKHQub3JkaW5hbClyZXR1cm4iIjt2YXIgcj10LmRvbWFpblNjYWxlLmRvbWFpbigpLG49cltlP3IubGVuZ3RoLTE6MF07cmV0dXJuIHoodC5tb2RlbC5kaW1lbnNpb25zW3QudmlzaWJsZUluZGV4XSxuKX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYSl7dmFyIG89dC5fZnVsbExheW91dCxoPW8uX3RvcHBhcGVyLHA9by5fZ2xjb250YWluZXIsXz10Ll9jb250ZXh0LnBsb3RHbFBpeGVsUmF0aW8sVD10Ll9mdWxsTGF5b3V0LnBhcGVyX2JnY29sb3I7IWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKWZvcih2YXIgcj0wO3I8dFtlXS5sZW5ndGg7cisrKWZvcih2YXIgbj10W2VdW3JdLnRyYWNlLGk9bi5kaW1lbnNpb25zLGE9MDthPGkubGVuZ3RoO2ErKyl7dmFyIG89aVthXS52YWx1ZXMsbD1pW2FdLl9heDtsJiYobC5yYW5nZT9sLnJhbmdlPWsobC5yYW5nZVswXSxsLnJhbmdlWzFdKTpsLnJhbmdlPXcobyxuLl9sZW5ndGgpLGwuZHRpY2t8fChsLmR0aWNrPS4wMSooTWF0aC5hYnMobC5yYW5nZVsxXS1sLnJhbmdlWzBdKXx8MSkpLGwudGlja2Zvcm1hdD1pW2FdLnRpY2tmb3JtYXQscy5jYWxjVGlja3MobCksbC5jbGVhblJhbmdlKCkpfX0oZSk7dmFyIEEsTSxTPShBPSEwLE09ITEse2xpbmVQaWNrQWN0aXZlOmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP0E9ISF0OkF9LGNvbnRleHRTaG93bjpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9NPSEhdDpNfX0pLFI9ZS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBnKHQpLnRyYWNlLnZpc2libGV9KSkubWFwKEwuYmluZCgwLHIpKS5tYXAoQy5iaW5kKDAsUyxhKSk7cC5lYWNoKChmdW5jdGlvbih0LGUpe3JldHVybiBpLmV4dGVuZEZsYXQodCxSW2VdKX0pKTt2YXIgRj1wLnNlbGVjdEFsbCgiLmdsLWNhbnZhcyIpLmVhY2goKGZ1bmN0aW9uKHQpe3Qudmlld01vZGVsPVJbMF0sdC52aWV3TW9kZWwucGxvdEdsUGl4ZWxSYXRpbz1fLHQudmlld01vZGVsLnBhcGVyQ29sb3I9VCx0Lm1vZGVsPXQudmlld01vZGVsP3Qudmlld01vZGVsLm1vZGVsOm51bGx9KSksQj1udWxsO0YuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC5waWNrfSkpLnN0eWxlKCJwb2ludGVyLWV2ZW50cyIsImF1dG8iKS5vbigibW91c2Vtb3ZlIiwoZnVuY3Rpb24odCl7aWYoUy5saW5lUGlja0FjdGl2ZSgpJiZ0LmxpbmVMYXllciYmYSYmYS5ob3Zlcil7dmFyIGU9bi5ldmVudCxyPXRoaXMud2lkdGgsaT10aGlzLmhlaWdodCxvPW4ubW91c2UodGhpcykscz1vWzBdLGw9b1sxXTtpZihzPDB8fGw8MHx8cz49cnx8bD49aSlyZXR1cm47dmFyIGM9dC5saW5lTGF5ZXIucmVhZFBpeGVsKHMsaS0xLWwpLHU9MCE9PWNbM10sZj11P2NbMl0rMjU2KihjWzFdKzI1NipjWzBdKTpudWxsLGg9e3g6cyx5OmwsY2xpZW50WDplLmNsaWVudFgsY2xpZW50WTplLmNsaWVudFksZGF0YUluZGV4OnQubW9kZWwua2V5LGN1cnZlTnVtYmVyOmZ9O2YhPT1CJiYodT9hLmhvdmVyKGgpOmEudW5ob3ZlciYmYS51bmhvdmVyKGgpLEI9Zil9fSkpLEYuc3R5bGUoIm9wYWNpdHkiLChmdW5jdGlvbih0KXtyZXR1cm4gdC5waWNrPzA6MX0pKSxoLnN0eWxlKCJiYWNrZ3JvdW5kIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwKSIpO3ZhciBOPWguc2VsZWN0QWxsKCIuIit5LmNuLnBhcmNvb3JkcykuZGF0YShSLGQpO04uZXhpdCgpLnJlbW92ZSgpLE4uZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKHkuY24ucGFyY29vcmRzLCEwKS5zdHlsZSgic2hhcGUtcmVuZGVyaW5nIiwiY3Jpc3BFZGdlcyIpLnN0eWxlKCJwb2ludGVyLWV2ZW50cyIsIm5vbmUiKSxOLmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQpe3JldHVybiBjKHQubW9kZWwudHJhbnNsYXRlWCx0Lm1vZGVsLnRyYW5zbGF0ZVkpfSkpO3ZhciBqPU4uc2VsZWN0QWxsKCIuIit5LmNuLnBhcmNvb3Jkc0NvbnRyb2xWaWV3KS5kYXRhKG0sZCk7ai5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoeS5jbi5wYXJjb29yZHNDb250cm9sVmlldywhMCksai5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbih0KXtyZXR1cm4gYyh0Lm1vZGVsLnBhZC5sLHQubW9kZWwucGFkLnQpfSkpO3ZhciBVPWouc2VsZWN0QWxsKCIuIit5LmNuLnlBeGlzKS5kYXRhKChmdW5jdGlvbih0KXtyZXR1cm4gdC5kaW1lbnNpb25zfSksZCk7VS5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoeS5jbi55QXhpcywhMCksai5lYWNoKChmdW5jdGlvbih0KXtPKFUsdCxfKX0pKSxGLmVhY2goKGZ1bmN0aW9uKHQpe2lmKHQudmlld01vZGVsKXshdC5saW5lTGF5ZXJ8fGE/dC5saW5lTGF5ZXI9Yih0aGlzLHQpOnQubGluZUxheWVyLnVwZGF0ZSh0KSwodC5rZXl8fDA9PT10LmtleSkmJih0LnZpZXdNb2RlbFt0LmtleV09dC5saW5lTGF5ZXIpO3ZhciBlPSF0LmNvbnRleHR8fGE7dC5saW5lTGF5ZXIucmVuZGVyKHQudmlld01vZGVsLnBhbmVscyxlKX19KSksVS5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbih0KXtyZXR1cm4gYyh0LnhTY2FsZSh0LnhJbmRleCksMCl9KSksVS5jYWxsKG4uYmVoYXZpb3IuZHJhZygpLm9yaWdpbigoZnVuY3Rpb24odCl7cmV0dXJuIHR9KSkub24oImRyYWciLChmdW5jdGlvbih0KXt2YXIgZT10LnBhcmVudDtTLmxpbmVQaWNrQWN0aXZlKCExKSx0Lng9TWF0aC5tYXgoLXkub3ZlcmRyYWcsTWF0aC5taW4odC5tb2RlbC53aWR0aCt5Lm92ZXJkcmFnLG4uZXZlbnQueCkpLHQuY2FudmFzWD10LngqdC5tb2RlbC5jYW52YXNQaXhlbFJhdGlvLFUuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC54LWUueH0pKS5lYWNoKChmdW5jdGlvbihlLHIpe2UueEluZGV4PXIsZS54PXQ9PT1lP2UueDplLnhTY2FsZShlLnhJbmRleCksZS5jYW52YXNYPWUueCplLm1vZGVsLmNhbnZhc1BpeGVsUmF0aW99KSksTyhVLGUsXyksVS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiAwIT09TWF0aC5hYnModC54SW5kZXgtZS54SW5kZXgpfSkpLmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQpe3JldHVybiBjKHQueFNjYWxlKHQueEluZGV4KSwwKX0pKSxuLnNlbGVjdCh0aGlzKS5hdHRyKCJ0cmFuc2Zvcm0iLGModC54LDApKSxVLmVhY2goKGZ1bmN0aW9uKHIsbixpKXtpPT09dC5wYXJlbnQua2V5JiYoZS5kaW1lbnNpb25zW25dPXIpfSkpLGUuY29udGV4dExheWVyJiZlLmNvbnRleHRMYXllci5yZW5kZXIoZS5wYW5lbHMsITEsIUUoZSkpLGUuZm9jdXNMYXllci5yZW5kZXImJmUuZm9jdXNMYXllci5yZW5kZXIoZS5wYW5lbHMpfSkpLm9uKCJkcmFnZW5kIiwoZnVuY3Rpb24odCl7dmFyIGU9dC5wYXJlbnQ7dC54PXQueFNjYWxlKHQueEluZGV4KSx0LmNhbnZhc1g9dC54KnQubW9kZWwuY2FudmFzUGl4ZWxSYXRpbyxPKFUsZSxfKSxuLnNlbGVjdCh0aGlzKS5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbih0KXtyZXR1cm4gYyh0LngsMCl9KSksZS5jb250ZXh0TGF5ZXImJmUuY29udGV4dExheWVyLnJlbmRlcihlLnBhbmVscywhMSwhRShlKSksZS5mb2N1c0xheWVyJiZlLmZvY3VzTGF5ZXIucmVuZGVyKGUucGFuZWxzKSxlLnBpY2tMYXllciYmZS5waWNrTGF5ZXIucmVuZGVyKGUucGFuZWxzLCEwKSxTLmxpbmVQaWNrQWN0aXZlKCEwKSxhJiZhLmF4ZXNNb3ZlZCYmYS5heGVzTW92ZWQoZS5rZXksZS5kaW1lbnNpb25zLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuY3Jvc3NmaWx0ZXJEaW1lbnNpb25JbmRleH0pKSl9KSkpLFUuZXhpdCgpLnJlbW92ZSgpO3ZhciBWPVUuc2VsZWN0QWxsKCIuIit5LmNuLmF4aXNPdmVybGF5cykuZGF0YShtLGQpO1YuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKHkuY24uYXhpc092ZXJsYXlzLCEwKSxWLnNlbGVjdEFsbCgiLiIreS5jbi5heGlzKS5yZW1vdmUoKTt2YXIgSD1WLnNlbGVjdEFsbCgiLiIreS5jbi5heGlzKS5kYXRhKG0sZCk7SC5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoeS5jbi5heGlzLCEwKSxILmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPXQubW9kZWwuaGVpZ2h0L3QubW9kZWwudGlja0Rpc3RhbmNlLHI9dC5kb21haW5TY2FsZSxpPXIuZG9tYWluKCk7bi5zZWxlY3QodGhpcykuY2FsbChuLnN2Zy5heGlzKCkub3JpZW50KCJsZWZ0IikudGlja1NpemUoNCkub3V0ZXJUaWNrU2l6ZSgyKS50aWNrcyhlLHQudGlja0Zvcm1hdCkudGlja1ZhbHVlcyh0Lm9yZGluYWw/aTpudWxsKS50aWNrRm9ybWF0KChmdW5jdGlvbihlKXtyZXR1cm4gdi5pc09yZGluYWwodCk/ZTp6KHQubW9kZWwuZGltZW5zaW9uc1t0LnZpc2libGVJbmRleF0sZSl9KSkuc2NhbGUocikpLGYuZm9udChILnNlbGVjdEFsbCgidGV4dCIpLHQubW9kZWwudGlja0ZvbnQpfSkpLEguc2VsZWN0QWxsKCIuZG9tYWluLCAudGljaz5saW5lIikuYXR0cigiZmlsbCIsIm5vbmUiKS5hdHRyKCJzdHJva2UiLCJibGFjayIpLmF0dHIoInN0cm9rZS1vcGFjaXR5IiwuMjUpLmF0dHIoInN0cm9rZS13aWR0aCIsIjFweCIpLEguc2VsZWN0QWxsKCJ0ZXh0Iikuc3R5bGUoInRleHQtc2hhZG93Iix1Lm1ha2VUZXh0U2hhZG93KFQpKS5zdHlsZSgiY3Vyc29yIiwiZGVmYXVsdCIpO3ZhciBxPVYuc2VsZWN0QWxsKCIuIit5LmNuLmF4aXNIZWFkaW5nKS5kYXRhKG0sZCk7cS5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoeS5jbi5heGlzSGVhZGluZywhMCk7dmFyIEc9cS5zZWxlY3RBbGwoIi4iK3kuY24uYXhpc1RpdGxlKS5kYXRhKG0sZCk7Ry5lbnRlcigpLmFwcGVuZCgidGV4dCIpLmNsYXNzZWQoeS5jbi5heGlzVGl0bGUsITApLmF0dHIoInRleHQtYW5jaG9yIiwibWlkZGxlIikuc3R5bGUoImN1cnNvciIsImV3LXJlc2l6ZSIpLnN0eWxlKCJwb2ludGVyLWV2ZW50cyIsImF1dG8iKSxHLnRleHQoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmxhYmVsfSkpLmVhY2goKGZ1bmN0aW9uKGUpe3ZhciByPW4uc2VsZWN0KHRoaXMpO2YuZm9udChyLGUubW9kZWwubGFiZWxGb250KSx1LmNvbnZlcnRUb1RzcGFucyhyLHQpfSkpLmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQpe3ZhciBlPUkodC5tb2RlbC5sYWJlbEFuZ2xlLHQubW9kZWwubGFiZWxTaWRlKSxyPXkuYXhpc1RpdGxlT2Zmc2V0O3JldHVybihlLmRpcj4wPyIiOmMoMCwyKnIrdC5tb2RlbC5oZWlnaHQpKStsKGUuZGVncmVlcykrYygtciplLmR4LC1yKmUuZHkpfSkpLmF0dHIoInRleHQtYW5jaG9yIiwoZnVuY3Rpb24odCl7dmFyIGU9SSh0Lm1vZGVsLmxhYmVsQW5nbGUsdC5tb2RlbC5sYWJlbFNpZGUpO3JldHVybiAyKk1hdGguYWJzKGUuZHgpPk1hdGguYWJzKGUuZHkpP2UuZGlyKmUuZHg8MD8ic3RhcnQiOiJlbmQiOiJtaWRkbGUifSkpO3ZhciBZPVYuc2VsZWN0QWxsKCIuIit5LmNuLmF4aXNFeHRlbnQpLmRhdGEobSxkKTtZLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCh5LmNuLmF4aXNFeHRlbnQsITApO3ZhciBXPVkuc2VsZWN0QWxsKCIuIit5LmNuLmF4aXNFeHRlbnRUb3ApLmRhdGEobSxkKTtXLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCh5LmNuLmF4aXNFeHRlbnRUb3AsITApLFcuYXR0cigidHJhbnNmb3JtIixjKDAsLXkuYXhpc0V4dGVudE9mZnNldCkpO3ZhciBYPVcuc2VsZWN0QWxsKCIuIit5LmNuLmF4aXNFeHRlbnRUb3BUZXh0KS5kYXRhKG0sZCk7WC5lbnRlcigpLmFwcGVuZCgidGV4dCIpLmNsYXNzZWQoeS5jbi5heGlzRXh0ZW50VG9wVGV4dCwhMCkuY2FsbChQKSxYLnRleHQoKGZ1bmN0aW9uKHQpe3JldHVybiBEKHQsITApfSkpLmVhY2goKGZ1bmN0aW9uKHQpe2YuZm9udChuLnNlbGVjdCh0aGlzKSx0Lm1vZGVsLnJhbmdlRm9udCl9KSk7dmFyIFo9WS5zZWxlY3RBbGwoIi4iK3kuY24uYXhpc0V4dGVudEJvdHRvbSkuZGF0YShtLGQpO1ouZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKHkuY24uYXhpc0V4dGVudEJvdHRvbSwhMCksWi5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbih0KXtyZXR1cm4gYygwLHQubW9kZWwuaGVpZ2h0K3kuYXhpc0V4dGVudE9mZnNldCl9KSk7dmFyIEo9Wi5zZWxlY3RBbGwoIi4iK3kuY24uYXhpc0V4dGVudEJvdHRvbVRleHQpLmRhdGEobSxkKTtKLmVudGVyKCkuYXBwZW5kKCJ0ZXh0IikuY2xhc3NlZCh5LmNuLmF4aXNFeHRlbnRCb3R0b21UZXh0LCEwKS5hdHRyKCJkeSIsIjAuNzVlbSIpLmNhbGwoUCksSi50ZXh0KChmdW5jdGlvbih0KXtyZXR1cm4gRCh0LCExKX0pKS5lYWNoKChmdW5jdGlvbih0KXtmLmZvbnQobi5zZWxlY3QodGhpcyksdC5tb2RlbC5yYW5nZUZvbnQpfSkpLHguZW5zdXJlQXhpc0JydXNoKFYsVCl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSI6Mzc5LCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjM4OSwiLi4vLi4vbGliIjo1MTUsIi4uLy4uL2xpYi9ndXAiOjUxMiwiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIjo1NDEsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo1NjYsIi4vYXhpc2JydXNoIjo4OTgsIi4vY29uc3RhbnRzIjo5MDIsIi4vaGVscGVycyI6OTA0LCIuL2xpbmVzIjo5MDYsIkBwbG90bHkvZDMiOjU4LCJjb2xvci1yZ2JhIjo5MX1dLDkwOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL3BhcmNvb3JkcyIpLGk9dCgiLi4vLi4vbGliL3ByZXBhcmVfcmVnbCIpLGE9dCgiLi9oZWxwZXJzIikuaXNWaXNpYmxlLG89e307ZnVuY3Rpb24gcyh0LGUscil7dmFyIG49ZS5pbmRleE9mKHIpLGk9dC5pbmRleE9mKG4pO3JldHVybi0xPT09aSYmKGkrPWUubGVuZ3RoKSxpfShlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10Ll9mdWxsTGF5b3V0O2lmKGkodCxbXSxvKSl7dmFyIGw9e30sYz17fSx1PXt9LGY9e30saD1yLl9zaXplO2UuZm9yRWFjaCgoZnVuY3Rpb24oZSxyKXt2YXIgbj1lWzBdLnRyYWNlO3Vbcl09bi5pbmRleDt2YXIgaT1mW3JdPW4uX2Z1bGxJbnB1dC5pbmRleDtsW3JdPXQuZGF0YVtpXS5kaW1lbnNpb25zLGNbcl09dC5kYXRhW2ldLmRpbWVuc2lvbnMuc2xpY2UoKX0pKTtuKHQsZSx7d2lkdGg6aC53LGhlaWdodDpoLmgsbWFyZ2luOnt0OmgudCxyOmgucixiOmguYixsOmgubH19LHtmaWx0ZXJDaGFuZ2VkOmZ1bmN0aW9uKGUsbixpKXt2YXIgYT1jW2VdW25dLG89aS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnNsaWNlKCl9KSkscz0iZGltZW5zaW9uc1siK24rIl0uY29uc3RyYWludHJhbmdlIixsPXIuX3RyYWNlUHJlR1VJW3QuX2Z1bGxEYXRhW3VbZV1dLl9mdWxsSW5wdXQudWlkXTtpZih2b2lkIDA9PT1sW3NdKXt2YXIgaD1hLmNvbnN0cmFpbnRyYW5nZTtsW3NdPWh8fG51bGx9dmFyIHA9dC5fZnVsbERhdGFbdVtlXV0uZGltZW5zaW9uc1tuXTtvLmxlbmd0aD8oMT09PW8ubGVuZ3RoJiYobz1vWzBdKSxhLmNvbnN0cmFpbnRyYW5nZT1vLHAuY29uc3RyYWludHJhbmdlPW8uc2xpY2UoKSxvPVtvXSk6KGRlbGV0ZSBhLmNvbnN0cmFpbnRyYW5nZSxkZWxldGUgcC5jb25zdHJhaW50cmFuZ2Usbz1udWxsKTt2YXIgZD17fTtkW3NdPW8sdC5lbWl0KCJwbG90bHlfcmVzdHlsZSIsW2QsW2ZbZV1dXSl9LGhvdmVyOmZ1bmN0aW9uKGUpe3QuZW1pdCgicGxvdGx5X2hvdmVyIixlKX0sdW5ob3ZlcjpmdW5jdGlvbihlKXt0LmVtaXQoInBsb3RseV91bmhvdmVyIixlKX0sYXhlc01vdmVkOmZ1bmN0aW9uKGUscil7dmFyIG49ZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24ocixuKXtyZXR1cm4gcyh0LGUsciktcyh0LGUsbil9fShyLGNbZV0uZmlsdGVyKGEpKTtsW2VdLnNvcnQobiksY1tlXS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiFhKHQpfSkpLnNvcnQoKGZ1bmN0aW9uKHQpe3JldHVybiBjW2VdLmluZGV4T2YodCl9KSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7bFtlXS5zcGxpY2UobFtlXS5pbmRleE9mKHQpLDEpLGxbZV0uc3BsaWNlKGNbZV0uaW5kZXhPZih0KSwwLHQpfSkpLHQuZW1pdCgicGxvdGx5X3Jlc3R5bGUiLFt7ZGltZW5zaW9uczpbbFtlXV19LFtmW2VdXV0pfX0pfX0pLnJlZ2xQcmVjb21waWxlZD1vfSx7Ii4uLy4uL2xpYi9wcmVwYXJlX3JlZ2wiOjUyOCwiLi9oZWxwZXJzIjo5MDQsIi4vcGFyY29vcmRzIjo5MDh9XSw5MTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vcGxvdHMvZG9tYWluIikuYXR0cmlidXRlcyxhPXQoIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIikscz10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikuaG92ZXJ0ZW1wbGF0ZUF0dHJzLGw9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLnRleHR0ZW1wbGF0ZUF0dHJzLGM9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsdT1hKHtlZGl0VHlwZToicGxvdCIsYXJyYXlPazohMCxjb2xvckVkaXRUeXBlOiJwbG90In0pO2UuZXhwb3J0cz17bGFiZWxzOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LGxhYmVsMDp7dmFsVHlwZToibnVtYmVyIixkZmx0OjAsZWRpdFR5cGU6ImNhbGMifSxkbGFiZWw6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDoxLGVkaXRUeXBlOiJjYWxjIn0sdmFsdWVzOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LG1hcmtlcjp7Y29sb3JzOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LGxpbmU6e2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpvLmRlZmF1bHRMaW5lLGFycmF5T2s6ITAsZWRpdFR5cGU6InN0eWxlIn0sd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDowLGFycmF5T2s6ITAsZWRpdFR5cGU6InN0eWxlIn0sZWRpdFR5cGU6ImNhbGMifSxlZGl0VHlwZToiY2FsYyJ9LHRleHQ6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJwbG90In0saG92ZXJ0ZXh0Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsYXJyYXlPazohMCxlZGl0VHlwZToic3R5bGUifSxzY2FsZWdyb3VwOnt2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6ImNhbGMifSx0ZXh0aW5mbzp7dmFsVHlwZToiZmxhZ2xpc3QiLGZsYWdzOlsibGFiZWwiLCJ0ZXh0IiwidmFsdWUiLCJwZXJjZW50Il0sZXh0cmFzOlsibm9uZSJdLGVkaXRUeXBlOiJjYWxjIn0saG92ZXJpbmZvOmMoe30sbi5ob3ZlcmluZm8se2ZsYWdzOlsibGFiZWwiLCJ0ZXh0IiwidmFsdWUiLCJwZXJjZW50IiwibmFtZSJdfSksaG92ZXJ0ZW1wbGF0ZTpzKHt9LHtrZXlzOlsibGFiZWwiLCJjb2xvciIsInZhbHVlIiwicGVyY2VudCIsInRleHQiXX0pLHRleHR0ZW1wbGF0ZTpsKHtlZGl0VHlwZToicGxvdCJ9LHtrZXlzOlsibGFiZWwiLCJjb2xvciIsInZhbHVlIiwicGVyY2VudCIsInRleHQiXX0pLHRleHRwb3NpdGlvbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiaW5zaWRlIiwib3V0c2lkZSIsImF1dG8iLCJub25lIl0sZGZsdDoiYXV0byIsYXJyYXlPazohMCxlZGl0VHlwZToicGxvdCJ9LHRleHRmb250OmMoe30sdSx7fSksaW5zaWRldGV4dG9yaWVudGF0aW9uOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJob3Jpem9udGFsIiwicmFkaWFsIiwidGFuZ2VudGlhbCIsImF1dG8iXSxkZmx0OiJhdXRvIixlZGl0VHlwZToicGxvdCJ9LGluc2lkZXRleHRmb250OmMoe30sdSx7fSksb3V0c2lkZXRleHRmb250OmMoe30sdSx7fSksYXV0b21hcmdpbjp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMSxlZGl0VHlwZToicGxvdCJ9LHRpdGxlOnt0ZXh0Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6InBsb3QifSxmb250OmMoe30sdSx7fSkscG9zaXRpb246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInRvcCBsZWZ0IiwidG9wIGNlbnRlciIsInRvcCByaWdodCIsIm1pZGRsZSBjZW50ZXIiLCJib3R0b20gbGVmdCIsImJvdHRvbSBjZW50ZXIiLCJib3R0b20gcmlnaHQiXSxlZGl0VHlwZToicGxvdCJ9LGVkaXRUeXBlOiJwbG90In0sZG9tYWluOmkoe25hbWU6InBpZSIsdHJhY2U6ITAsZWRpdFR5cGU6ImNhbGMifSksaG9sZTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0OjAsZWRpdFR5cGU6ImNhbGMifSxzb3J0Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJjYWxjIn0sZGlyZWN0aW9uOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJjbG9ja3dpc2UiLCJjb3VudGVyY2xvY2t3aXNlIl0sZGZsdDoiY291bnRlcmNsb2Nrd2lzZSIsZWRpdFR5cGU6ImNhbGMifSxyb3RhdGlvbjp7dmFsVHlwZToibnVtYmVyIixtaW46LTM2MCxtYXg6MzYwLGRmbHQ6MCxlZGl0VHlwZToiY2FsYyJ9LHB1bGw6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDowLGFycmF5T2s6ITAsZWRpdFR5cGU6ImNhbGMifSxfZGVwcmVjYXRlZDp7dGl0bGU6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIixlZGl0VHlwZToiY2FsYyJ9LHRpdGxlZm9udDpjKHt9LHUse30pLHRpdGxlcG9zaXRpb246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInRvcCBsZWZ0IiwidG9wIGNlbnRlciIsInRvcCByaWdodCIsIm1pZGRsZSBjZW50ZXIiLCJib3R0b20gbGVmdCIsImJvdHRvbSBjZW50ZXIiLCJib3R0b20gcmlnaHQiXSxlZGl0VHlwZToiY2FsYyJ9fX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIjozNjYsIi4uLy4uL2xpYi9leHRlbmQiOjUwNSwiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyI6NTYyLCIuLi8uLi9wbG90cy9kb21haW4iOjU5MywiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIjo1OTQsIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjY0Mn1dLDkxMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9wbG90cyIpO3IubmFtZT0icGllIixyLnBsb3Q9ZnVuY3Rpb24odCxlLGksYSl7bi5wbG90QmFzZVBsb3Qoci5uYW1lLHQsZSxpLGEpfSxyLmNsZWFuPWZ1bmN0aW9uKHQsZSxpLGEpe24uY2xlYW5CYXNlUGxvdChyLm5hbWUsdCxlLGksYSl9fSx7Ii4uLy4uL3Bsb3RzL3Bsb3RzIjo2Mjh9XSw5MTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxpPXQoInRpbnljb2xvcjIiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxvPXt9O2Z1bmN0aW9uIHModCl7cmV0dXJuIGZ1bmN0aW9uKGUscil7cmV0dXJuISFlJiYoISEoZT1pKGUpKS5pc1ZhbGlkKCkmJihlPWEuYWRkT3BhY2l0eShlLGUuZ2V0QWxwaGEoKSksdFtyXXx8KHRbcl09ZSksZSkpfX1mdW5jdGlvbiBsKHQsZSl7dmFyIHIsbj1KU09OLnN0cmluZ2lmeSh0KSxhPWVbbl07aWYoIWEpe2ZvcihhPXQuc2xpY2UoKSxyPTA7cjx0Lmxlbmd0aDtyKyspYS5wdXNoKGkodFtyXSkubGlnaHRlbigyMCkudG9IZXhTdHJpbmcoKSk7Zm9yKHI9MDtyPHQubGVuZ3RoO3IrKylhLnB1c2goaSh0W3JdKS5kYXJrZW4oMjApLnRvSGV4U3RyaW5nKCkpO2Vbbl09YX1yZXR1cm4gYX1lLmV4cG9ydHM9e2NhbGM6ZnVuY3Rpb24odCxlKXt2YXIgcixpLGE9W10sbz10Ll9mdWxsTGF5b3V0LGw9by5oaWRkZW5sYWJlbHN8fFtdLGM9ZS5sYWJlbHMsdT1lLm1hcmtlci5jb2xvcnN8fFtdLGY9ZS52YWx1ZXMsaD1lLl9sZW5ndGgscD1lLl9oYXNWYWx1ZXMmJmg7aWYoZS5kbGFiZWwpZm9yKGM9bmV3IEFycmF5KGgpLHI9MDtyPGg7cisrKWNbcl09U3RyaW5nKGUubGFiZWwwK3IqZS5kbGFiZWwpO3ZhciBkPXt9LG09cyhvWyJfIitlLnR5cGUrImNvbG9ybWFwIl0pLGc9MCx2PSExO2ZvcihyPTA7cjxoO3IrKyl7dmFyIHkseCxiO2lmKHApe2lmKHk9ZltyXSwhbih5KSljb250aW51ZTt5PSt5fWVsc2UgeT0xO3ZvaWQgMCE9PSh4PWNbcl0pJiYiIiE9PXh8fCh4PXIpO3ZhciBfPWRbeD1TdHJpbmcoeCldO3ZvaWQgMD09PV8/KGRbeF09YS5sZW5ndGgsKGI9LTEhPT1sLmluZGV4T2YoeCkpfHwoZys9eSksYS5wdXNoKHt2OnksbGFiZWw6eCxjb2xvcjptKHVbcl0seCksaTpyLHB0czpbcl0saGlkZGVuOmJ9KSk6KHY9ITAsKGk9YVtfXSkudis9eSxpLnB0cy5wdXNoKHIpLGkuaGlkZGVufHwoZys9eSksITE9PT1pLmNvbG9yJiZ1W3JdJiYoaS5jb2xvcj1tKHVbcl0seCkpKX1yZXR1cm4gYT1hLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQudj49MH0pKSwoImZ1bm5lbGFyZWEiPT09ZS50eXBlP3Y6ZS5zb3J0KSYmYS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiBlLnYtdC52fSkpLGFbMF0mJihhWzBdLnZUb3RhbD1nKSxhfSxjcm9zc1RyYWNlQ2FsYzpmdW5jdGlvbih0LGUpe3ZhciByPShlfHx7fSkudHlwZTtyfHwocj0icGllIik7dmFyIG49dC5fZnVsbExheW91dCxpPXQuY2FsY2RhdGEsYT1uW3IrImNvbG9yd2F5Il0scz1uWyJfIityKyJjb2xvcm1hcCJdO25bImV4dGVuZCIrcisiY29sb3JzIl0mJihhPWwoYSxvKSk7Zm9yKHZhciBjPTAsdT0wO3U8aS5sZW5ndGg7dSsrKXt2YXIgZj1pW3VdO2lmKGZbMF0udHJhY2UudHlwZT09PXIpZm9yKHZhciBoPTA7aDxmLmxlbmd0aDtoKyspe3ZhciBwPWZbaF07ITE9PT1wLmNvbG9yJiYoc1twLmxhYmVsXT9wLmNvbG9yPXNbcC5sYWJlbF06KHNbcC5sYWJlbF09cC5jb2xvcj1hW2MlYS5sZW5ndGhdLGMrKykpfX19LG1ha2VQdWxsQ29sb3JGbjpzLGdlbmVyYXRlRXh0ZW5kZWRDb2xvcnM6bH19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6MzY3LCJmYXN0LWlzbnVtZXJpYyI6MTkwLHRpbnljb2xvcjI6MzEzfV0sOTEzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksaT10KCIuLi8uLi9saWIiKSxhPXQoIi4vYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vcGxvdHMvZG9tYWluIikuZGVmYXVsdHMscz10KCIuLi9iYXIvZGVmYXVsdHMiKS5oYW5kbGVUZXh0O2Z1bmN0aW9uIGwodCxlKXt2YXIgcj1BcnJheS5pc0FycmF5KHQpLGE9aS5pc0FycmF5T3JUeXBlZEFycmF5KGUpLG89TWF0aC5taW4ocj90Lmxlbmd0aDoxLzAsYT9lLmxlbmd0aDoxLzApO2lmKGlzRmluaXRlKG8pfHwobz0wKSxvJiZhKXtmb3IodmFyIHMsbD0wO2w8bztsKyspe3ZhciBjPWVbbF07aWYobihjKSYmYz4wKXtzPSEwO2JyZWFrfX1zfHwobz0wKX1yZXR1cm57aGFzTGFiZWxzOnIsaGFzVmFsdWVzOmEsbGVuOm99fWUuZXhwb3J0cz17aGFuZGxlTGFiZWxzQW5kVmFsdWVzOmwsc3VwcGx5RGVmYXVsdHM6ZnVuY3Rpb24odCxlLHIsbil7ZnVuY3Rpb24gYyhyLG4pe3JldHVybiBpLmNvZXJjZSh0LGUsYSxyLG4pfXZhciB1PWwoYygibGFiZWxzIiksYygidmFsdWVzIikpLGY9dS5sZW47aWYoZS5faGFzTGFiZWxzPXUuaGFzTGFiZWxzLGUuX2hhc1ZhbHVlcz11Lmhhc1ZhbHVlcywhZS5faGFzTGFiZWxzJiZlLl9oYXNWYWx1ZXMmJihjKCJsYWJlbDAiKSxjKCJkbGFiZWwiKSksZil7ZS5fbGVuZ3RoPWYsYygibWFya2VyLmxpbmUud2lkdGgiKSYmYygibWFya2VyLmxpbmUuY29sb3IiKSxjKCJtYXJrZXIuY29sb3JzIiksYygic2NhbGVncm91cCIpO3ZhciBoLHA9YygidGV4dCIpLGQ9YygidGV4dHRlbXBsYXRlIik7aWYoZHx8KGg9YygidGV4dGluZm8iLEFycmF5LmlzQXJyYXkocCk/InRleHQrcGVyY2VudCI6InBlcmNlbnQiKSksYygiaG92ZXJ0ZXh0IiksYygiaG92ZXJ0ZW1wbGF0ZSIpLGR8fGgmJiJub25lIiE9PWgpe3ZhciBtPWMoInRleHRwb3NpdGlvbiIpO3ModCxlLG4sYyxtLHttb2R1bGVIYXNTZWxlY3RlZDohMSxtb2R1bGVIYXNVbnNlbGVjdGVkOiExLG1vZHVsZUhhc0NvbnN0cmFpbjohMSxtb2R1bGVIYXNDbGlwb25heGlzOiExLG1vZHVsZUhhc1RleHRhbmdsZTohMSxtb2R1bGVIYXNJbnNpZGVhbmNob3I6ITF9KSwoQXJyYXkuaXNBcnJheShtKXx8ImF1dG8iPT09bXx8Im91dHNpZGUiPT09bSkmJmMoImF1dG9tYXJnaW4iKSwoImluc2lkZSI9PT1tfHwiYXV0byI9PT1tfHxBcnJheS5pc0FycmF5KG0pKSYmYygiaW5zaWRldGV4dG9yaWVudGF0aW9uIil9byhlLG4sYyk7dmFyIGc9YygiaG9sZSIpO2lmKGMoInRpdGxlLnRleHQiKSl7dmFyIHY9YygidGl0bGUucG9zaXRpb24iLGc/Im1pZGRsZSBjZW50ZXIiOiJ0b3AgY2VudGVyIik7Z3x8Im1pZGRsZSBjZW50ZXIiIT09dnx8KGUudGl0bGUucG9zaXRpb249InRvcCBjZW50ZXIiKSxpLmNvZXJjZUZvbnQoYywidGl0bGUuZm9udCIsbi5mb250KX1jKCJzb3J0IiksYygiZGlyZWN0aW9uIiksYygicm90YXRpb24iKSxjKCJwdWxsIil9ZWxzZSBlLnZpc2libGU9ITF9fX0seyIuLi8uLi9saWIiOjUxNSwiLi4vLi4vcGxvdHMvZG9tYWluIjo1OTMsIi4uL2Jhci9kZWZhdWx0cyI6NjYxLCIuL2F0dHJpYnV0ZXMiOjkxMCwiZmFzdC1pc251bWVyaWMiOjE5MH1dLDkxNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2Z4L2hlbHBlcnMiKS5hcHBlbmRBcnJheU11bHRpUG9pbnRWYWx1ZXM7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9e2N1cnZlTnVtYmVyOmUuaW5kZXgscG9pbnROdW1iZXJzOnQucHRzLGRhdGE6ZS5faW5wdXQsZnVsbERhdGE6ZSxsYWJlbDp0LmxhYmVsLGNvbG9yOnQuY29sb3IsdmFsdWU6dC52LHBlcmNlbnQ6dC5wZXJjZW50LHRleHQ6dC50ZXh0LGJib3g6dC5iYm94LHY6dC52fTtyZXR1cm4gMT09PXQucHRzLmxlbmd0aCYmKHIucG9pbnROdW1iZXI9ci5pPXQucHRzWzBdKSxuKHIsZSx0LnB0cyksImZ1bm5lbGFyZWEiPT09ZS50eXBlJiYoZGVsZXRlIHIudixkZWxldGUgci5pKSxyfX0seyIuLi8uLi9jb21wb25lbnRzL2Z4L2hlbHBlcnMiOjQwM31dLDkxNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKTtmdW5jdGlvbiBpKHQpe3JldHVybi0xIT09dC5pbmRleE9mKCJlIik/dC5yZXBsYWNlKC9bLl0/MCtlLywiZSIpOi0xIT09dC5pbmRleE9mKCIuIik/dC5yZXBsYWNlKC9bLl0/MCskLywiIik6dH1yLmZvcm1hdFBpZVBlcmNlbnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj1pKCgxMDAqdCkudG9QcmVjaXNpb24oMykpO3JldHVybiBuLm51bVNlcGFyYXRlKHIsZSkrIiUifSxyLmZvcm1hdFBpZVZhbHVlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9aSh0LnRvUHJlY2lzaW9uKDEwKSk7cmV0dXJuIG4ubnVtU2VwYXJhdGUocixlKX0sci5nZXRGaXJzdEZpbGxlZD1mdW5jdGlvbih0LGUpe2lmKEFycmF5LmlzQXJyYXkodCkpZm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBuPXRbZVtyXV07aWYobnx8MD09PW58fCIiPT09bilyZXR1cm4gbn19LHIuY2FzdE9wdGlvbj1mdW5jdGlvbih0LGUpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP3IuZ2V0Rmlyc3RGaWxsZWQodCxlKTp0fHx2b2lkIDB9LHIuZ2V0Um90YXRpb25BbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4oImF1dG8iPT09dD8wOnQpKk1hdGguUEkvMTgwfX0seyIuLi8uLi9saWIiOjUxNX1dLDkxNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2F0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLnN1cHBseURlZmF1bHRzLHN1cHBseUxheW91dERlZmF1bHRzOnQoIi4vbGF5b3V0X2RlZmF1bHRzIiksbGF5b3V0QXR0cmlidXRlczp0KCIuL2xheW91dF9hdHRyaWJ1dGVzIiksY2FsYzp0KCIuL2NhbGMiKS5jYWxjLGNyb3NzVHJhY2VDYWxjOnQoIi4vY2FsYyIpLmNyb3NzVHJhY2VDYWxjLHBsb3Q6dCgiLi9wbG90IikucGxvdCxzdHlsZTp0KCIuL3N0eWxlIiksc3R5bGVPbmU6dCgiLi9zdHlsZV9vbmUiKSxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToicGllIixiYXNlUGxvdE1vZHVsZTp0KCIuL2Jhc2VfcGxvdCIpLGNhdGVnb3JpZXM6WyJwaWUtbGlrZSIsInBpZSIsInNob3dMZWdlbmQiXSxtZXRhOnt9fX0seyIuL2F0dHJpYnV0ZXMiOjkxMCwiLi9iYXNlX3Bsb3QiOjkxMSwiLi9jYWxjIjo5MTIsIi4vZGVmYXVsdHMiOjkxMywiLi9sYXlvdXRfYXR0cmlidXRlcyI6OTE3LCIuL2xheW91dF9kZWZhdWx0cyI6OTE4LCIuL3Bsb3QiOjkxOSwiLi9zdHlsZSI6OTIwLCIuL3N0eWxlX29uZSI6OTIxfV0sOTE3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17aGlkZGVubGFiZWxzOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LHBpZWNvbG9yd2F5Ont2YWxUeXBlOiJjb2xvcmxpc3QiLGVkaXRUeXBlOiJjYWxjIn0sZXh0ZW5kcGllY29sb3JzOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJjYWxjIn19fSx7fV0sOTE4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Z1bmN0aW9uIHIocixhKXtyZXR1cm4gbi5jb2VyY2UodCxlLGkscixhKX1yKCJoaWRkZW5sYWJlbHMiKSxyKCJwaWVjb2xvcndheSIsZS5jb2xvcndheSkscigiZXh0ZW5kcGllY29sb3JzIil9fSx7Ii4uLy4uL2xpYiI6NTE1LCIuL2xheW91dF9hdHRyaWJ1dGVzIjo5MTd9XSw5MTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vLi4vcGxvdHMvcGxvdHMiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvZngiKSxvPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxzPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLGw9dCgiLi4vLi4vbGliIiksYz1sLnN0clNjYWxlLHU9bC5zdHJUcmFuc2xhdGUsZj10KCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiKSxoPXQoIi4uL2Jhci91bmlmb3JtX3RleHQiKSxwPWgucmVjb3JkTWluVGV4dFNpemUsZD1oLmNsZWFyTWluVGV4dFNpemUsbT10KCIuLi9iYXIvY29uc3RhbnRzIikuVEVYVFBBRCxnPXQoIi4vaGVscGVycyIpLHY9dCgiLi9ldmVudF9kYXRhIikseT10KCIuLi8uLi9saWIiKS5pc1ZhbGlkVGV4dFZhbHVlO2Z1bmN0aW9uIHgodCxlLHIpe3ZhciBpPXJbMF0sbz1pLmN4LHM9aS5jeSxjPWkudHJhY2UsdT0iZnVubmVsYXJlYSI9PT1jLnR5cGU7Il9oYXNIb3ZlckxhYmVsImluIGN8fChjLl9oYXNIb3ZlckxhYmVsPSExKSwiX2hhc0hvdmVyRXZlbnQiaW4gY3x8KGMuX2hhc0hvdmVyRXZlbnQ9ITEpLHQub24oIm1vdXNlb3ZlciIsKGZ1bmN0aW9uKHQpe3ZhciByPWUuX2Z1bGxMYXlvdXQsZj1lLl9mdWxsRGF0YVtjLmluZGV4XTtpZighZS5fZHJhZ2dpbmcmJiExIT09ci5ob3Zlcm1vZGUpe3ZhciBoPWYuaG92ZXJpbmZvO2lmKEFycmF5LmlzQXJyYXkoaCkmJihoPWEuY2FzdEhvdmVyaW5mbyh7aG92ZXJpbmZvOltnLmNhc3RPcHRpb24oaCx0LnB0cyldLF9tb2R1bGU6Yy5fbW9kdWxlfSxyLDApKSwiYWxsIj09PWgmJihoPSJsYWJlbCt0ZXh0K3ZhbHVlK3BlcmNlbnQrbmFtZSIpLGYuaG92ZXJ0ZW1wbGF0ZXx8Im5vbmUiIT09aCYmInNraXAiIT09aCYmaCl7dmFyIHA9dC5ySW5zY3JpYmVkfHwwLGQ9byt0LnB4bWlkWzBdKigxLXApLG09cyt0LnB4bWlkWzFdKigxLXApLHk9ci5zZXBhcmF0b3JzLHg9W107aWYoaCYmLTEhPT1oLmluZGV4T2YoImxhYmVsIikmJngucHVzaCh0LmxhYmVsKSx0LnRleHQ9Zy5jYXN0T3B0aW9uKGYuaG92ZXJ0ZXh0fHxmLnRleHQsdC5wdHMpLGgmJi0xIT09aC5pbmRleE9mKCJ0ZXh0Iikpe3ZhciBiPXQudGV4dDtsLmlzVmFsaWRUZXh0VmFsdWUoYikmJngucHVzaChiKX10LnZhbHVlPXQudix0LnZhbHVlTGFiZWw9Zy5mb3JtYXRQaWVWYWx1ZSh0LnYseSksaCYmLTEhPT1oLmluZGV4T2YoInZhbHVlIikmJngucHVzaCh0LnZhbHVlTGFiZWwpLHQucGVyY2VudD10LnYvaS52VG90YWwsdC5wZXJjZW50TGFiZWw9Zy5mb3JtYXRQaWVQZXJjZW50KHQucGVyY2VudCx5KSxoJiYtMSE9PWguaW5kZXhPZigicGVyY2VudCIpJiZ4LnB1c2godC5wZXJjZW50TGFiZWwpO3ZhciBfPWYuaG92ZXJsYWJlbCx3PV8uZm9udCxUPVtdO2EubG9uZUhvdmVyKHt0cmFjZTpjLHgwOmQtcCppLnIseDE6ZCtwKmkucix5Om0sX3gwOnU/byt0LlRMWzBdOmQtcCppLnIsX3gxOnU/byt0LlRSWzBdOmQrcCppLnIsX3kwOnU/cyt0LlRMWzFdOm0tcCppLnIsX3kxOnU/cyt0LkJMWzFdOm0rcCppLnIsdGV4dDp4LmpvaW4oIjxicj4iKSxuYW1lOmYuaG92ZXJ0ZW1wbGF0ZXx8LTEhPT1oLmluZGV4T2YoIm5hbWUiKT9mLm5hbWU6dm9pZCAwLGlkZWFsQWxpZ246dC5weG1pZFswXTwwPyJsZWZ0IjoicmlnaHQiLGNvbG9yOmcuY2FzdE9wdGlvbihfLmJnY29sb3IsdC5wdHMpfHx0LmNvbG9yLGJvcmRlckNvbG9yOmcuY2FzdE9wdGlvbihfLmJvcmRlcmNvbG9yLHQucHRzKSxmb250RmFtaWx5OmcuY2FzdE9wdGlvbih3LmZhbWlseSx0LnB0cyksZm9udFNpemU6Zy5jYXN0T3B0aW9uKHcuc2l6ZSx0LnB0cyksZm9udENvbG9yOmcuY2FzdE9wdGlvbih3LmNvbG9yLHQucHRzKSxuYW1lTGVuZ3RoOmcuY2FzdE9wdGlvbihfLm5hbWVsZW5ndGgsdC5wdHMpLHRleHRBbGlnbjpnLmNhc3RPcHRpb24oXy5hbGlnbix0LnB0cyksaG92ZXJ0ZW1wbGF0ZTpnLmNhc3RPcHRpb24oZi5ob3ZlcnRlbXBsYXRlLHQucHRzKSxob3ZlcnRlbXBsYXRlTGFiZWxzOnQsZXZlbnREYXRhOlt2KHQsZildfSx7Y29udGFpbmVyOnIuX2hvdmVybGF5ZXIubm9kZSgpLG91dGVyQ29udGFpbmVyOnIuX3BhcGVyLm5vZGUoKSxnZDplLGluT3V0X2Jib3g6VH0pLHQuYmJveD1UWzBdLGMuX2hhc0hvdmVyTGFiZWw9ITB9Yy5faGFzSG92ZXJFdmVudD0hMCxlLmVtaXQoInBsb3RseV9ob3ZlciIse3BvaW50czpbdih0LGYpXSxldmVudDpuLmV2ZW50fSl9fSkpLHQub24oIm1vdXNlb3V0IiwoZnVuY3Rpb24odCl7dmFyIHI9ZS5fZnVsbExheW91dCxpPWUuX2Z1bGxEYXRhW2MuaW5kZXhdLG89bi5zZWxlY3QodGhpcykuZGF0dW0oKTtjLl9oYXNIb3ZlckV2ZW50JiYodC5vcmlnaW5hbEV2ZW50PW4uZXZlbnQsZS5lbWl0KCJwbG90bHlfdW5ob3ZlciIse3BvaW50czpbdihvLGkpXSxldmVudDpuLmV2ZW50fSksYy5faGFzSG92ZXJFdmVudD0hMSksYy5faGFzSG92ZXJMYWJlbCYmKGEubG9uZVVuaG92ZXIoci5faG92ZXJsYXllci5ub2RlKCkpLGMuX2hhc0hvdmVyTGFiZWw9ITEpfSkpLHQub24oImNsaWNrIiwoZnVuY3Rpb24odCl7dmFyIHI9ZS5fZnVsbExheW91dCxpPWUuX2Z1bGxEYXRhW2MuaW5kZXhdO2UuX2RyYWdnaW5nfHwhMT09PXIuaG92ZXJtb2RlfHwoZS5faG92ZXJkYXRhPVt2KHQsaSldLGEuY2xpY2soZSxuLmV2ZW50KSl9KSl9ZnVuY3Rpb24gYih0LGUscil7dmFyIG49Zy5jYXN0T3B0aW9uKHQuaW5zaWRldGV4dGZvbnQuY29sb3IsZS5wdHMpOyFuJiZ0Ll9pbnB1dC50ZXh0Zm9udCYmKG49Zy5jYXN0T3B0aW9uKHQuX2lucHV0LnRleHRmb250LmNvbG9yLGUucHRzKSk7dmFyIGk9Zy5jYXN0T3B0aW9uKHQuaW5zaWRldGV4dGZvbnQuZmFtaWx5LGUucHRzKXx8Zy5jYXN0T3B0aW9uKHQudGV4dGZvbnQuZmFtaWx5LGUucHRzKXx8ci5mYW1pbHksYT1nLmNhc3RPcHRpb24odC5pbnNpZGV0ZXh0Zm9udC5zaXplLGUucHRzKXx8Zy5jYXN0T3B0aW9uKHQudGV4dGZvbnQuc2l6ZSxlLnB0cyl8fHIuc2l6ZTtyZXR1cm57Y29sb3I6bnx8by5jb250cmFzdChlLmNvbG9yKSxmYW1pbHk6aSxzaXplOmF9fWZ1bmN0aW9uIF8odCxlKXtmb3IodmFyIHIsbixpPTA7aTx0Lmxlbmd0aDtpKyspaWYoKG49KHI9dFtpXVswXSkudHJhY2UpLnRpdGxlLnRleHQpe3ZhciBhPW4udGl0bGUudGV4dDtuLl9tZXRhJiYoYT1sLnRlbXBsYXRlU3RyaW5nKGEsbi5fbWV0YSkpO3ZhciBvPXMudGVzdGVyLmFwcGVuZCgidGV4dCIpLmF0dHIoImRhdGEtbm90ZXgiLDEpLnRleHQoYSkuY2FsbChzLmZvbnQsbi50aXRsZS5mb250KS5jYWxsKGYuY29udmVydFRvVHNwYW5zLGUpLGM9cy5iQm94KG8ubm9kZSgpLCEwKTtyLnRpdGxlQm94PXt3aWR0aDpjLndpZHRoLGhlaWdodDpjLmhlaWdodH0sby5yZW1vdmUoKX19ZnVuY3Rpb24gdyh0LGUscil7dmFyIG49ci5yfHxlLnJweDEsaT1lLnJJbnNjcmliZWQ7aWYoZS5zdGFydGFuZ2xlPT09ZS5zdG9wYW5nbGUpcmV0dXJue3JDZW50ZXI6MS1pLHNjYWxlOjAscm90YXRlOjAsdGV4dFBvc0FuZ2xlOjB9O3ZhciBhLG89ZS5yaW5nLHM9MT09PW8mJk1hdGguYWJzKGUuc3RhcnRhbmdsZS1lLnN0b3BhbmdsZSk9PT0yKk1hdGguUEksbD1lLmhhbGZhbmdsZSxjPWUubWlkYW5nbGUsdT1yLnRyYWNlLmluc2lkZXRleHRvcmllbnRhdGlvbixmPSJob3Jpem9udGFsIj09PXUsaD0idGFuZ2VudGlhbCI9PT11LHA9InJhZGlhbCI9PT11LGQ9ImF1dG8iPT09dSxtPVtdO2lmKCFkKXt2YXIgZyx2PWZ1bmN0aW9uKHIsaSl7aWYoZnVuY3Rpb24odCxlKXt2YXIgcj10LnN0YXJ0YW5nbGUsbj10LnN0b3BhbmdsZTtyZXR1cm4gcj5lJiZlPm58fHI8ZSYmZTxufShlLHIpKXt2YXIgcz1NYXRoLmFicyhyLWUuc3RhcnRhbmdsZSksbD1NYXRoLmFicyhyLWUuc3RvcGFuZ2xlKSxjPXM8bD9zOmw7KGE9InRhbiI9PT1pP2sodCxuLG8sYywwKTpUKHQsbixvLGMsTWF0aC5QSS8yKSkudGV4dFBvc0FuZ2xlPXIsbS5wdXNoKGEpfX07aWYoZnx8aCl7Zm9yKGc9NDtnPj0tNDtnLT0yKXYoTWF0aC5QSSpnLCJ0YW4iKTtmb3IoZz00O2c+PS00O2ctPTIpdihNYXRoLlBJKihnKzEpLCJ0YW4iKX1pZihmfHxwKXtmb3IoZz00O2c+PS00O2ctPTIpdihNYXRoLlBJKihnKzEuNSksInJhZCIpO2ZvcihnPTQ7Zz49LTQ7Zy09Mil2KE1hdGguUEkqKGcrLjUpLCJyYWQiKX19aWYoc3x8ZHx8Zil7dmFyIHk9TWF0aC5zcXJ0KHQud2lkdGgqdC53aWR0aCt0LmhlaWdodCp0LmhlaWdodCk7aWYoKGE9e3NjYWxlOmkqbioyL3ksckNlbnRlcjoxLWkscm90YXRlOjB9KS50ZXh0UG9zQW5nbGU9KGUuc3RhcnRhbmdsZStlLnN0b3BhbmdsZSkvMixhLnNjYWxlPj0xKXJldHVybiBhO20ucHVzaChhKX0oZHx8cCkmJigoYT1UKHQsbixvLGwsYykpLnRleHRQb3NBbmdsZT0oZS5zdGFydGFuZ2xlK2Uuc3RvcGFuZ2xlKS8yLG0ucHVzaChhKSksKGR8fGgpJiYoKGE9ayh0LG4sbyxsLGMpKS50ZXh0UG9zQW5nbGU9KGUuc3RhcnRhbmdsZStlLnN0b3BhbmdsZSkvMixtLnB1c2goYSkpO2Zvcih2YXIgeD0wLGI9MCxfPTA7XzxtLmxlbmd0aDtfKyspe3ZhciB3PW1bX10uc2NhbGU7aWYoYjx3JiYoYj13LHg9XyksIWQmJmI+PTEpYnJlYWt9cmV0dXJuIG1beF19ZnVuY3Rpb24gVCh0LGUscixuLGkpe2U9TWF0aC5tYXgoMCxlLTIqbSk7dmFyIGE9dC53aWR0aC90LmhlaWdodCxvPVMoYSxuLGUscik7cmV0dXJue3NjYWxlOjIqby90LmhlaWdodCxyQ2VudGVyOkEoYSxvL2UpLHJvdGF0ZTpNKGkpfX1mdW5jdGlvbiBrKHQsZSxyLG4saSl7ZT1NYXRoLm1heCgwLGUtMiptKTt2YXIgYT10LmhlaWdodC90LndpZHRoLG89UyhhLG4sZSxyKTtyZXR1cm57c2NhbGU6MipvL3Qud2lkdGgsckNlbnRlcjpBKGEsby9lKSxyb3RhdGU6TShpK01hdGguUEkvMil9fWZ1bmN0aW9uIEEodCxlKXtyZXR1cm4gTWF0aC5jb3MoZSktdCplfWZ1bmN0aW9uIE0odCl7cmV0dXJuKDE4MC9NYXRoLlBJKnQrNzIwKSUxODAtOTB9ZnVuY3Rpb24gUyh0LGUscixuKXt2YXIgaT10KzEvKDIqTWF0aC50YW4oZSkpO3JldHVybiByKk1hdGgubWluKDEvKE1hdGguc3FydChpKmkrLjUpK2kpLG4vKE1hdGguc3FydCh0KnQrbi8yKSt0KSl9ZnVuY3Rpb24gRSh0LGUpe3JldHVybiB0LnYhPT1lLnZUb3RhbHx8ZS50cmFjZS5ob2xlP01hdGgubWluKDEvKDErMS9NYXRoLnNpbih0LmhhbGZhbmdsZSkpLHQucmluZy8yKToxfWZ1bmN0aW9uIEwodCxlKXt2YXIgcj1lLnB4bWlkWzBdLG49ZS5weG1pZFsxXSxpPXQud2lkdGgvMixhPXQuaGVpZ2h0LzI7cmV0dXJuIHI8MCYmKGkqPS0xKSxuPDAmJihhKj0tMSkse3NjYWxlOjEsckNlbnRlcjoxLHJvdGF0ZTowLHg6aStNYXRoLmFicyhhKSooaT4wPzE6LTEpLzIseTphLygxK3Iqci8obipuKSksb3V0c2lkZTohMH19ZnVuY3Rpb24gQyh0LGUpe3ZhciByLG4saSxhPXQudHJhY2Usbz17eDp0LmN4LHk6dC5jeX0scz17dHg6MCx0eTowfTtzLnR5Kz1hLnRpdGxlLmZvbnQuc2l6ZSxpPUkoYSksLTEhPT1hLnRpdGxlLnBvc2l0aW9uLmluZGV4T2YoInRvcCIpPyhvLnktPSgxK2kpKnQucixzLnR5LT10LnRpdGxlQm94LmhlaWdodCk6LTEhPT1hLnRpdGxlLnBvc2l0aW9uLmluZGV4T2YoImJvdHRvbSIpJiYoby55Kz0oMStpKSp0LnIpO3ZhciBsLGMsdT0obD10LnIsYz10LnRyYWNlLmFzcGVjdHJhdGlvLGwvKHZvaWQgMD09PWM/MTpjKSksZj1lLncqKGEuZG9tYWluLnhbMV0tYS5kb21haW4ueFswXSkvMjtyZXR1cm4tMSE9PWEudGl0bGUucG9zaXRpb24uaW5kZXhPZigibGVmdCIpPyhmKz11LG8ueC09KDEraSkqdSxzLnR4Kz10LnRpdGxlQm94LndpZHRoLzIpOi0xIT09YS50aXRsZS5wb3NpdGlvbi5pbmRleE9mKCJjZW50ZXIiKT9mKj0yOi0xIT09YS50aXRsZS5wb3NpdGlvbi5pbmRleE9mKCJyaWdodCIpJiYoZis9dSxvLngrPSgxK2kpKnUscy50eC09dC50aXRsZUJveC53aWR0aC8yKSxyPWYvdC50aXRsZUJveC53aWR0aCxuPVAodCxlKS90LnRpdGxlQm94LmhlaWdodCx7eDpvLngseTpvLnksc2NhbGU6TWF0aC5taW4ocixuKSx0eDpzLnR4LHR5OnMudHl9fWZ1bmN0aW9uIFAodCxlKXt2YXIgcj10LnRyYWNlLG49ZS5oKihyLmRvbWFpbi55WzFdLXIuZG9tYWluLnlbMF0pO3JldHVybiBNYXRoLm1pbih0LnRpdGxlQm94LmhlaWdodCxuLzIpfWZ1bmN0aW9uIEkodCl7dmFyIGUscj10LnB1bGw7aWYoIXIpcmV0dXJuIDA7aWYoQXJyYXkuaXNBcnJheShyKSlmb3Iocj0wLGU9MDtlPHQucHVsbC5sZW5ndGg7ZSsrKXQucHVsbFtlXT5yJiYocj10LnB1bGxbZV0pO3JldHVybiByfWZ1bmN0aW9uIE8odCxlKXtmb3IodmFyIHI9W10sbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dWzBdLGE9aS50cmFjZSxvPWEuZG9tYWluLHM9ZS53KihvLnhbMV0tby54WzBdKSxsPWUuaCooby55WzFdLW8ueVswXSk7YS50aXRsZS50ZXh0JiYibWlkZGxlIGNlbnRlciIhPT1hLnRpdGxlLnBvc2l0aW9uJiYobC09UChpLGUpKTt2YXIgYz1zLzIsdT1sLzI7ImZ1bm5lbGFyZWEiIT09YS50eXBlfHxhLnNjYWxlZ3JvdXB8fCh1Lz1hLmFzcGVjdHJhdGlvKSxpLnI9TWF0aC5taW4oYyx1KS8oMStJKGEpKSxpLmN4PWUubCtlLncqKGEuZG9tYWluLnhbMV0rYS5kb21haW4ueFswXSkvMixpLmN5PWUudCtlLmgqKDEtYS5kb21haW4ueVswXSktbC8yLGEudGl0bGUudGV4dCYmLTEhPT1hLnRpdGxlLnBvc2l0aW9uLmluZGV4T2YoImJvdHRvbSIpJiYoaS5jeS09UChpLGUpKSxhLnNjYWxlZ3JvdXAmJi0xPT09ci5pbmRleE9mKGEuc2NhbGVncm91cCkmJnIucHVzaChhLnNjYWxlZ3JvdXApfSFmdW5jdGlvbih0LGUpe2Zvcih2YXIgcixuLGksYT0wO2E8ZS5sZW5ndGg7YSsrKXt2YXIgbz0xLzAscz1lW2FdO2ZvcihuPTA7bjx0Lmxlbmd0aDtuKyspaWYocj10W25dWzBdLChpPXIudHJhY2UpLnNjYWxlZ3JvdXA9PT1zKXt2YXIgbDtpZigicGllIj09PWkudHlwZSlsPXIucipyLnI7ZWxzZSBpZigiZnVubmVsYXJlYSI9PT1pLnR5cGUpe3ZhciBjLHU7aS5hc3BlY3RyYXRpbz4xPyhjPXIucix1PWMvaS5hc3BlY3RyYXRpbyk6KHU9ci5yLGM9dSppLmFzcGVjdHJhdGlvKSxjKj0oMStpLmJhc2VyYXRpbykvMixsPWMqdX1vPU1hdGgubWluKG8sbC9yLnZUb3RhbCl9Zm9yKG49MDtuPHQubGVuZ3RoO24rKylpZihyPXRbbl1bMF0sKGk9ci50cmFjZSkuc2NhbGVncm91cD09PXMpe3ZhciBmPW8qci52VG90YWw7ImZ1bm5lbGFyZWEiPT09aS50eXBlJiYoZi89KDEraS5iYXNlcmF0aW8pLzIsZi89aS5hc3BlY3RyYXRpbyksci5yPU1hdGguc3FydChmKX19fSh0LHIpfWZ1bmN0aW9uIHoodCxlKXtyZXR1cm5bdCpNYXRoLnNpbihlKSwtdCpNYXRoLmNvcyhlKV19ZnVuY3Rpb24gRCh0LGUscil7dmFyIG49dC5fZnVsbExheW91dCxpPXIudHJhY2UsYT1pLnRleHR0ZW1wbGF0ZSxvPWkudGV4dGluZm87aWYoIWEmJm8mJiJub25lIiE9PW8pe3ZhciBzLGM9by5zcGxpdCgiKyIpLHU9ZnVuY3Rpb24odCl7cmV0dXJuLTEhPT1jLmluZGV4T2YodCl9LGY9dSgibGFiZWwiKSxoPXUoInRleHQiKSxwPXUoInZhbHVlIiksZD11KCJwZXJjZW50IiksbT1uLnNlcGFyYXRvcnM7aWYocz1mP1tlLmxhYmVsXTpbXSxoKXt2YXIgdj1nLmdldEZpcnN0RmlsbGVkKGkudGV4dCxlLnB0cyk7eSh2KSYmcy5wdXNoKHYpfXAmJnMucHVzaChnLmZvcm1hdFBpZVZhbHVlKGUudixtKSksZCYmcy5wdXNoKGcuZm9ybWF0UGllUGVyY2VudChlLnYvci52VG90YWwsbSkpLGUudGV4dD1zLmpvaW4oIjxicj4iKX1pZihhKXt2YXIgeD1sLmNhc3RPcHRpb24oaSxlLmksInRleHR0ZW1wbGF0ZSIpO2lmKHgpe3ZhciBiPWZ1bmN0aW9uKHQpe3JldHVybntsYWJlbDp0LmxhYmVsLHZhbHVlOnQudix2YWx1ZUxhYmVsOmcuZm9ybWF0UGllVmFsdWUodC52LG4uc2VwYXJhdG9ycykscGVyY2VudDp0LnYvci52VG90YWwscGVyY2VudExhYmVsOmcuZm9ybWF0UGllUGVyY2VudCh0LnYvci52VG90YWwsbi5zZXBhcmF0b3JzKSxjb2xvcjp0LmNvbG9yLHRleHQ6dC50ZXh0LGN1c3RvbWRhdGE6bC5jYXN0T3B0aW9uKGksdC5pLCJjdXN0b21kYXRhIil9fShlKSxfPWcuZ2V0Rmlyc3RGaWxsZWQoaS50ZXh0LGUucHRzKTsoeShfKXx8IiI9PT1fKSYmKGIudGV4dD1fKSxlLnRleHQ9bC50ZXh0dGVtcGxhdGVTdHJpbmcoeCxiLHQuX2Z1bGxMYXlvdXQuX2QzbG9jYWxlLGIsaS5fbWV0YXx8e30pfWVsc2UgZS50ZXh0PSIifX1mdW5jdGlvbiBSKHQsZSl7dmFyIHI9dC5yb3RhdGUqTWF0aC5QSS8xODAsbj1NYXRoLmNvcyhyKSxpPU1hdGguc2luKHIpLGE9KGUubGVmdCtlLnJpZ2h0KS8yLG89KGUudG9wK2UuYm90dG9tKS8yO3QudGV4dFg9YSpuLW8qaSx0LnRleHRZPWEqaStvKm4sdC5ub0NlbnRlcj0hMH1lLmV4cG9ydHM9e3Bsb3Q6ZnVuY3Rpb24odCxlKXt2YXIgcj10Ll9mdWxsTGF5b3V0LGE9ci5fc2l6ZTtkKCJwaWUiLHIpLF8oZSx0KSxPKGUsYSk7dmFyIGg9bC5tYWtlVHJhY2VHcm91cHMoci5fcGllbGF5ZXIsZSwidHJhY2UiKS5lYWNoKChmdW5jdGlvbihlKXt2YXIgaD1uLnNlbGVjdCh0aGlzKSxkPWVbMF0sbT1kLnRyYWNlOyFmdW5jdGlvbih0KXt2YXIgZSxyLG4saT10WzBdLGE9aS5yLG89aS50cmFjZSxzPWcuZ2V0Um90YXRpb25BbmdsZShvLnJvdGF0aW9uKSxsPTIqTWF0aC5QSS9pLnZUb3RhbCxjPSJweDAiLHU9InB4MSI7aWYoImNvdW50ZXJjbG9ja3dpc2UiPT09by5kaXJlY3Rpb24pe2ZvcihlPTA7ZTx0Lmxlbmd0aCYmdFtlXS5oaWRkZW47ZSsrKTtpZihlPT09dC5sZW5ndGgpcmV0dXJuO3MrPWwqdFtlXS52LGwqPS0xLGM9InB4MSIsdT0icHgwIn1mb3Iobj16KGEscyksZT0wO2U8dC5sZW5ndGg7ZSsrKShyPXRbZV0pLmhpZGRlbnx8KHJbY109bixyLnN0YXJ0YW5nbGU9cyxzKz1sKnIudi8yLHIucHhtaWQ9eihhLHMpLHIubWlkYW5nbGU9cyxzKz1sKnIudi8yLG49eihhLHMpLHIuc3RvcGFuZ2xlPXMsclt1XT1uLHIubGFyZ2VBcmM9ci52PmkudlRvdGFsLzI/MTowLHIuaGFsZmFuZ2xlPU1hdGguUEkqTWF0aC5taW4oci52L2kudlRvdGFsLC41KSxyLnJpbmc9MS1vLmhvbGUsci5ySW5zY3JpYmVkPUUocixpKSl9KGUpLGguYXR0cigic3Ryb2tlLWxpbmVqb2luIiwicm91bmQiKSxoLmVhY2goKGZ1bmN0aW9uKCl7dmFyIHY9bi5zZWxlY3QodGhpcykuc2VsZWN0QWxsKCJnLnNsaWNlIikuZGF0YShlKTt2LmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgic2xpY2UiLCEwKSx2LmV4aXQoKS5yZW1vdmUoKTt2YXIgeT1bW1tdLFtdXSxbW10sW11dXSxfPSExO3YuZWFjaCgoZnVuY3Rpb24oaSxhKXtpZihpLmhpZGRlbiluLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoInBhdGgsZyIpLnJlbW92ZSgpO2Vsc2V7aS5wb2ludE51bWJlcj1pLmksaS5jdXJ2ZU51bWJlcj1tLmluZGV4LHlbaS5weG1pZFsxXTwwPzA6MV1baS5weG1pZFswXTwwPzA6MV0ucHVzaChpKTt2YXIgbz1kLmN4LGM9ZC5jeSx1PW4uc2VsZWN0KHRoaXMpLGg9dS5zZWxlY3RBbGwoInBhdGguc3VyZmFjZSIpLmRhdGEoW2ldKTtpZihoLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuY2xhc3NlZCgic3VyZmFjZSIsITApLnN0eWxlKHsicG9pbnRlci1ldmVudHMiOiJhbGwifSksdS5jYWxsKHgsdCxlKSxtLnB1bGwpe3ZhciB2PStnLmNhc3RPcHRpb24obS5wdWxsLGkucHRzKXx8MDt2PjAmJihvKz12KmkucHhtaWRbMF0sYys9dippLnB4bWlkWzFdKX1pLmN4RmluYWw9byxpLmN5RmluYWw9Yzt2YXIgVD1tLmhvbGU7aWYoaS52PT09ZC52VG90YWwpe3ZhciBrPSJNIisobytpLnB4MFswXSkrIiwiKyhjK2kucHgwWzFdKStDKGkucHgwLGkucHhtaWQsITAsMSkrQyhpLnB4bWlkLGkucHgwLCEwLDEpKyJaIjtUP2guYXR0cigiZCIsIk0iKyhvK1QqaS5weDBbMF0pKyIsIisoYytUKmkucHgwWzFdKStDKGkucHgwLGkucHhtaWQsITEsVCkrQyhpLnB4bWlkLGkucHgwLCExLFQpKyJaIitrKTpoLmF0dHIoImQiLGspfWVsc2V7dmFyIEE9QyhpLnB4MCxpLnB4MSwhMCwxKTtpZihUKXt2YXIgTT0xLVQ7aC5hdHRyKCJkIiwiTSIrKG8rVCppLnB4MVswXSkrIiwiKyhjK1QqaS5weDFbMV0pK0MoaS5weDEsaS5weDAsITEsVCkrImwiK00qaS5weDBbMF0rIiwiK00qaS5weDBbMV0rQSsiWiIpfWVsc2UgaC5hdHRyKCJkIiwiTSIrbysiLCIrYysibCIraS5weDBbMF0rIiwiK2kucHgwWzFdK0ErIloiKX1EKHQsaSxkKTt2YXIgUz1nLmNhc3RPcHRpb24obS50ZXh0cG9zaXRpb24saS5wdHMpLEU9dS5zZWxlY3RBbGwoImcuc2xpY2V0ZXh0IikuZGF0YShpLnRleHQmJiJub25lIiE9PVM/WzBdOltdKTtFLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgic2xpY2V0ZXh0IiwhMCksRS5leGl0KCkucmVtb3ZlKCksRS5lYWNoKChmdW5jdGlvbigpe3ZhciB1PWwuZW5zdXJlU2luZ2xlKG4uc2VsZWN0KHRoaXMpLCJ0ZXh0IiwiIiwoZnVuY3Rpb24odCl7dC5hdHRyKCJkYXRhLW5vdGV4IiwxKX0pKSxoPWwuZW5zdXJlVW5pZm9ybUZvbnRTaXplKHQsIm91dHNpZGUiPT09Uz9mdW5jdGlvbih0LGUscil7dmFyIG49Zy5jYXN0T3B0aW9uKHQub3V0c2lkZXRleHRmb250LmNvbG9yLGUucHRzKXx8Zy5jYXN0T3B0aW9uKHQudGV4dGZvbnQuY29sb3IsZS5wdHMpfHxyLmNvbG9yLGk9Zy5jYXN0T3B0aW9uKHQub3V0c2lkZXRleHRmb250LmZhbWlseSxlLnB0cyl8fGcuY2FzdE9wdGlvbih0LnRleHRmb250LmZhbWlseSxlLnB0cyl8fHIuZmFtaWx5LGE9Zy5jYXN0T3B0aW9uKHQub3V0c2lkZXRleHRmb250LnNpemUsZS5wdHMpfHxnLmNhc3RPcHRpb24odC50ZXh0Zm9udC5zaXplLGUucHRzKXx8ci5zaXplO3JldHVybntjb2xvcjpuLGZhbWlseTppLHNpemU6YX19KG0saSxyLmZvbnQpOmIobSxpLHIuZm9udCkpO3UudGV4dChpLnRleHQpLmF0dHIoe2NsYXNzOiJzbGljZXRleHQiLHRyYW5zZm9ybToiIiwidGV4dC1hbmNob3IiOiJtaWRkbGUifSkuY2FsbChzLmZvbnQsaCkuY2FsbChmLmNvbnZlcnRUb1RzcGFucyx0KTt2YXIgdix5PXMuYkJveCh1Lm5vZGUoKSk7aWYoIm91dHNpZGUiPT09Uyl2PUwoeSxpKTtlbHNlIGlmKHY9dyh5LGksZCksImF1dG8iPT09UyYmdi5zY2FsZTwxKXt2YXIgeD1sLmVuc3VyZVVuaWZvcm1Gb250U2l6ZSh0LG0ub3V0c2lkZXRleHRmb250KTt1LmNhbGwocy5mb250LHgpLHY9TCh5PXMuYkJveCh1Lm5vZGUoKSksaSl9dmFyIFQ9di50ZXh0UG9zQW5nbGUsaz12b2lkIDA9PT1UP2kucHhtaWQ6eihkLnIsVCk7aWYodi50YXJnZXRYPW8ra1swXSp2LnJDZW50ZXIrKHYueHx8MCksdi50YXJnZXRZPWMra1sxXSp2LnJDZW50ZXIrKHYueXx8MCksUih2LHkpLHYub3V0c2lkZSl7dmFyIEE9di50YXJnZXRZO2kueUxhYmVsTWluPUEteS5oZWlnaHQvMixpLnlMYWJlbE1pZD1BLGkueUxhYmVsTWF4PUEreS5oZWlnaHQvMixpLmxhYmVsRXh0cmFYPTAsaS5sYWJlbEV4dHJhWT0wLF89ITB9di5mb250U2l6ZT1oLnNpemUscChtLnR5cGUsdixyKSxlW2FdLnRyYW5zZm9ybT12LHUuYXR0cigidHJhbnNmb3JtIixsLmdldFRleHRUcmFuc2Zvcm0odikpfSkpfWZ1bmN0aW9uIEModCxlLHIsbil7dmFyIGE9biooZVswXS10WzBdKSxvPW4qKGVbMV0tdFsxXSk7cmV0dXJuImEiK24qZC5yKyIsIituKmQucisiIDAgIitpLmxhcmdlQXJjKyhyPyIgMSAiOiIgMCAiKSthKyIsIitvfX0pKTt2YXIgVD1uLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoImcudGl0bGV0ZXh0IikuZGF0YShtLnRpdGxlLnRleHQ/WzBdOltdKTtpZihULmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgidGl0bGV0ZXh0IiwhMCksVC5leGl0KCkucmVtb3ZlKCksVC5lYWNoKChmdW5jdGlvbigpe3ZhciBlLHI9bC5lbnN1cmVTaW5nbGUobi5zZWxlY3QodGhpcyksInRleHQiLCIiLChmdW5jdGlvbih0KXt0LmF0dHIoImRhdGEtbm90ZXgiLDEpfSkpLGk9bS50aXRsZS50ZXh0O20uX21ldGEmJihpPWwudGVtcGxhdGVTdHJpbmcoaSxtLl9tZXRhKSksci50ZXh0KGkpLmF0dHIoe2NsYXNzOiJ0aXRsZXRleHQiLHRyYW5zZm9ybToiIiwidGV4dC1hbmNob3IiOiJtaWRkbGUifSkuY2FsbChzLmZvbnQsbS50aXRsZS5mb250KS5jYWxsKGYuY29udmVydFRvVHNwYW5zLHQpLGU9Im1pZGRsZSBjZW50ZXIiPT09bS50aXRsZS5wb3NpdGlvbj9mdW5jdGlvbih0KXt2YXIgZT1NYXRoLnNxcnQodC50aXRsZUJveC53aWR0aCp0LnRpdGxlQm94LndpZHRoK3QudGl0bGVCb3guaGVpZ2h0KnQudGl0bGVCb3guaGVpZ2h0KTtyZXR1cm57eDp0LmN4LHk6dC5jeSxzY2FsZTp0LnRyYWNlLmhvbGUqdC5yKjIvZSx0eDowLHR5Oi10LnRpdGxlQm94LmhlaWdodC8yK3QudHJhY2UudGl0bGUuZm9udC5zaXplfX0oZCk6QyhkLGEpLHIuYXR0cigidHJhbnNmb3JtIix1KGUueCxlLnkpK2MoTWF0aC5taW4oMSxlLnNjYWxlKSkrdShlLnR4LGUudHkpKX0pKSxfJiZmdW5jdGlvbih0LGUpe3ZhciByLG4saSxhLG8scyxsLGMsdSxmLGgscCxkO2Z1bmN0aW9uIG0odCxlKXtyZXR1cm4gdC5weG1pZFsxXS1lLnB4bWlkWzFdfWZ1bmN0aW9uIHYodCxlKXtyZXR1cm4gZS5weG1pZFsxXS10LnB4bWlkWzFdfWZ1bmN0aW9uIHkodCxyKXtyfHwocj17fSk7dmFyIGksYyx1LGgscD1yLmxhYmVsRXh0cmFZKyhuP3IueUxhYmVsTWF4OnIueUxhYmVsTWluKSxkPW4/dC55TGFiZWxNaW46dC55TGFiZWxNYXgsbT1uP3QueUxhYmVsTWF4OnQueUxhYmVsTWluLHY9dC5jeUZpbmFsK28odC5weDBbMV0sdC5weDFbMV0pLHk9cC1kO2lmKHkqbD4wJiYodC5sYWJlbEV4dHJhWT15KSxBcnJheS5pc0FycmF5KGUucHVsbCkpZm9yKGM9MDtjPGYubGVuZ3RoO2MrKykodT1mW2NdKT09PXR8fChnLmNhc3RPcHRpb24oZS5wdWxsLHQucHRzKXx8MCk+PShnLmNhc3RPcHRpb24oZS5wdWxsLHUucHRzKXx8MCl8fCgodC5weG1pZFsxXS11LnB4bWlkWzFdKSpsPjA/KHk9dS5jeUZpbmFsK28odS5weDBbMV0sdS5weDFbMV0pLWQtdC5sYWJlbEV4dHJhWSkqbD4wJiYodC5sYWJlbEV4dHJhWSs9eSk6KG0rdC5sYWJlbEV4dHJhWS12KSpsPjAmJihpPTMqcypNYXRoLmFicyhjLWYuaW5kZXhPZih0KSksKGg9dS5jeEZpbmFsK2EodS5weDBbMF0sdS5weDFbMF0pK2ktKHQuY3hGaW5hbCt0LnB4bWlkWzBdKS10LmxhYmVsRXh0cmFYKSpzPjAmJih0LmxhYmVsRXh0cmFYKz1oKSkpfWZvcihuPTA7bjwyO24rKylmb3IoaT1uP206dixvPW4/TWF0aC5tYXg6TWF0aC5taW4sbD1uPzE6LTEscj0wO3I8MjtyKyspe2ZvcihhPXI/TWF0aC5tYXg6TWF0aC5taW4scz1yPzE6LTEsKGM9dFtuXVtyXSkuc29ydChpKSx1PXRbMS1uXVtyXSxmPXUuY29uY2F0KGMpLHA9W10saD0wO2g8Yy5sZW5ndGg7aCsrKXZvaWQgMCE9PWNbaF0ueUxhYmVsTWlkJiZwLnB1c2goY1toXSk7Zm9yKGQ9ITEsaD0wO24mJmg8dS5sZW5ndGg7aCsrKWlmKHZvaWQgMCE9PXVbaF0ueUxhYmVsTWlkKXtkPXVbaF07YnJlYWt9Zm9yKGg9MDtoPHAubGVuZ3RoO2grKyl7dmFyIHg9aCYmcFtoLTFdO2QmJiFoJiYoeD1kKSx5KHBbaF0seCl9fX0oeSxtKSxmdW5jdGlvbih0LGUpe3QuZWFjaCgoZnVuY3Rpb24odCl7dmFyIHI9bi5zZWxlY3QodGhpcyk7aWYodC5sYWJlbEV4dHJhWHx8dC5sYWJlbEV4dHJhWSl7dmFyIGk9ci5zZWxlY3QoImcuc2xpY2V0ZXh0IHRleHQiKTt0LnRyYW5zZm9ybS50YXJnZXRYKz10LmxhYmVsRXh0cmFYLHQudHJhbnNmb3JtLnRhcmdldFkrPXQubGFiZWxFeHRyYVksaS5hdHRyKCJ0cmFuc2Zvcm0iLGwuZ2V0VGV4dFRyYW5zZm9ybSh0LnRyYW5zZm9ybSkpO3ZhciBhPXQuY3hGaW5hbCt0LnB4bWlkWzBdLHM9Ik0iK2ErIiwiKyh0LmN5RmluYWwrdC5weG1pZFsxXSksYz0odC55TGFiZWxNYXgtdC55TGFiZWxNaW4pKih0LnB4bWlkWzBdPDA/LTE6MSkvNDtpZih0LmxhYmVsRXh0cmFYKXt2YXIgdT10LmxhYmVsRXh0cmFYKnQucHhtaWRbMV0vdC5weG1pZFswXSxmPXQueUxhYmVsTWlkK3QubGFiZWxFeHRyYVktKHQuY3lGaW5hbCt0LnB4bWlkWzFdKTtNYXRoLmFicyh1KT5NYXRoLmFicyhmKT9zKz0ibCIrZip0LnB4bWlkWzBdL3QucHhtaWRbMV0rIiwiK2YrIkgiKyhhK3QubGFiZWxFeHRyYVgrYyk6cys9ImwiK3QubGFiZWxFeHRyYVgrIiwiK3UrInYiKyhmLXUpKyJoIitjfWVsc2Ugcys9IlYiKyh0LnlMYWJlbE1pZCt0LmxhYmVsRXh0cmFZKSsiaCIrYztsLmVuc3VyZVNpbmdsZShyLCJwYXRoIiwidGV4dGxpbmUiKS5jYWxsKG8uc3Ryb2tlLGUub3V0c2lkZXRleHRmb250LmNvbG9yKS5hdHRyKHsic3Ryb2tlLXdpZHRoIjpNYXRoLm1pbigyLGUub3V0c2lkZXRleHRmb250LnNpemUvOCksZDpzLGZpbGw6Im5vbmUifSl9ZWxzZSByLnNlbGVjdCgicGF0aC50ZXh0bGluZSIpLnJlbW92ZSgpfSkpfSh2LG0pLF8mJm0uYXV0b21hcmdpbil7dmFyIGs9cy5iQm94KGgubm9kZSgpKSxBPW0uZG9tYWluLE09YS53KihBLnhbMV0tQS54WzBdKSxTPWEuaCooQS55WzFdLUEueVswXSksRT0oLjUqTS1kLnIpL2EudyxQPSguNSpTLWQucikvYS5oO2kuYXV0b01hcmdpbih0LCJwaWUuIittLnVpZCsiLmF1dG9tYXJnaW4iLHt4bDpBLnhbMF0tRSx4cjpBLnhbMV0rRSx5YjpBLnlbMF0tUCx5dDpBLnlbMV0rUCxsOk1hdGgubWF4KGQuY3gtZC5yLWsubGVmdCwwKSxyOk1hdGgubWF4KGsucmlnaHQtKGQuY3grZC5yKSwwKSxiOk1hdGgubWF4KGsuYm90dG9tLShkLmN5K2QuciksMCksdDpNYXRoLm1heChkLmN5LWQuci1rLnRvcCwwKSxwYWQ6NX0pfX0pKX0pKTtzZXRUaW1lb3V0KChmdW5jdGlvbigpe2guc2VsZWN0QWxsKCJ0c3BhbiIpLmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQ9bi5zZWxlY3QodGhpcyk7dC5hdHRyKCJkeSIpJiZ0LmF0dHIoImR5Iix0LmF0dHIoImR5IikpfSkpfSksMCl9LGZvcm1hdFNsaWNlTGFiZWw6RCx0cmFuc2Zvcm1JbnNpZGVUZXh0OncsZGV0ZXJtaW5lSW5zaWRlVGV4dEZvbnQ6Yixwb3NpdGlvblRpdGxlT3V0c2lkZTpDLHByZXJlbmRlclRpdGxlczpfLGxheW91dEFyZWFzOk8sYXR0YWNoRnhIYW5kbGVyczp4LGNvbXB1dGVUcmFuc2Zvcm06Un19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6MzY3LCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjM4OSwiLi4vLi4vY29tcG9uZW50cy9meCI6NDA3LCIuLi8uLi9saWIiOjUxNSwiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIjo1NDEsIi4uLy4uL3Bsb3RzL3Bsb3RzIjo2MjgsIi4uL2Jhci9jb25zdGFudHMiOjY1OSwiLi4vYmFyL3VuaWZvcm1fdGV4dCI6NjczLCIuL2V2ZW50X2RhdGEiOjkxNCwiLi9oZWxwZXJzIjo5MTUsIkBwbG90bHkvZDMiOjU4fV0sOTIwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4vc3R5bGVfb25lIiksYT10KCIuLi9iYXIvdW5pZm9ybV90ZXh0IikucmVzaXplVGV4dDtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5fZnVsbExheW91dC5fcGllbGF5ZXIuc2VsZWN0QWxsKCIudHJhY2UiKTthKHQsZSwicGllIiksZS5lYWNoKChmdW5jdGlvbih0KXt2YXIgZT10WzBdLnRyYWNlLHI9bi5zZWxlY3QodGhpcyk7ci5zdHlsZSh7b3BhY2l0eTplLm9wYWNpdHl9KSxyLnNlbGVjdEFsbCgicGF0aC5zdXJmYWNlIikuZWFjaCgoZnVuY3Rpb24odCl7bi5zZWxlY3QodGhpcykuY2FsbChpLHQsZSl9KSl9KSl9fSx7Ii4uL2Jhci91bmlmb3JtX3RleHQiOjY3MywiLi9zdHlsZV9vbmUiOjkyMSwiQHBsb3RseS9kMyI6NTh9XSw5MjE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLGk9dCgiLi9oZWxwZXJzIikuY2FzdE9wdGlvbjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBhPXIubWFya2VyLmxpbmUsbz1pKGEuY29sb3IsZS5wdHMpfHxuLmRlZmF1bHRMaW5lLHM9aShhLndpZHRoLGUucHRzKXx8MDt0LnN0eWxlKCJzdHJva2Utd2lkdGgiLHMpLmNhbGwobi5maWxsLGUuY29sb3IpLmNhbGwobi5zdHJva2Usbyl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjM2NywiLi9oZWxwZXJzIjo5MTV9XSw5MjI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPXt4Om4ueCx5Om4ueSx4eTp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxpbmRpY2VzOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LHhib3VuZHM6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0seWJvdW5kczp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSx0ZXh0Om4udGV4dCxtYXJrZXI6e2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsYXJyYXlPazohMSxlZGl0VHlwZToiY2FsYyJ9LG9wYWNpdHk6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDoxLGFycmF5T2s6ITEsZWRpdFR5cGU6ImNhbGMifSxibGVuZDp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDpudWxsLGVkaXRUeXBlOiJjYWxjIn0sc2l6ZW1pbjp7dmFsVHlwZToibnVtYmVyIixtaW46LjEsbWF4OjIsZGZsdDouNSxlZGl0VHlwZToiY2FsYyJ9LHNpemVtYXg6e3ZhbFR5cGU6Im51bWJlciIsbWluOi4xLGRmbHQ6MjAsZWRpdFR5cGU6ImNhbGMifSxib3JkZXI6e2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsYXJyYXlPazohMSxlZGl0VHlwZToiY2FsYyJ9LGFyZWFyYXRpbzp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0OjAsZWRpdFR5cGU6ImNhbGMifSxlZGl0VHlwZToiY2FsYyJ9LGVkaXRUeXBlOiJjYWxjIn0sdHJhbnNmb3Jtczp2b2lkIDB9fSx7Ii4uL3NjYXR0ZXIvYXR0cmlidXRlcyI6OTM2fV0sOTIzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uLy4uL3N0YWNrZ2xfbW9kdWxlcyIpLmdsX3BvaW50Y2xvdWQyZCxpPXQoIi4uLy4uL2xpYi9zdHIycmdiYXJyYXkiKSxhPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9hdXRvcmFuZ2UiKS5maW5kRXh0cmVtZXMsbz10KCIuLi9zY2F0dGVyL2dldF90cmFjZV9jb2xvciIpO2Z1bmN0aW9uIHModCxlKXt0aGlzLnNjZW5lPXQsdGhpcy51aWQ9ZSx0aGlzLnR5cGU9InBvaW50Y2xvdWQiLHRoaXMucGlja1hEYXRhPVtdLHRoaXMucGlja1lEYXRhPVtdLHRoaXMueERhdGE9W10sdGhpcy55RGF0YT1bXSx0aGlzLnRleHRMYWJlbHM9W10sdGhpcy5jb2xvcj0icmdiKDAsIDAsIDApIix0aGlzLm5hbWU9IiIsdGhpcy5ob3ZlcmluZm89ImFsbCIsdGhpcy5pZFRvSW5kZXg9bmV3IEludDMyQXJyYXkoMCksdGhpcy5ib3VuZHM9WzAsMCwwLDBdLHRoaXMucG9pbnRjbG91ZE9wdGlvbnM9e3Bvc2l0aW9uczpuZXcgRmxvYXQzMkFycmF5KDApLGlkVG9JbmRleDp0aGlzLmlkVG9JbmRleCxzaXplbWluOi41LHNpemVtYXg6MTIsY29sb3I6WzAsMCwwLDFdLGFyZWFSYXRpbzoxLGJvcmRlckNvbG9yOlswLDAsMCwxXX0sdGhpcy5wb2ludGNsb3VkPW4odC5nbHBsb3QsdGhpcy5wb2ludGNsb3VkT3B0aW9ucyksdGhpcy5wb2ludGNsb3VkLl90cmFjZT10aGlzfXZhciBsPXMucHJvdG90eXBlO2wuaGFuZGxlUGljaz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmlkVG9JbmRleFt0LnBvaW50SWRdO3JldHVybnt0cmFjZTp0aGlzLGRhdGFDb29yZDp0LmRhdGFDb29yZCx0cmFjZUNvb3JkOnRoaXMucGlja1hZRGF0YT9bdGhpcy5waWNrWFlEYXRhWzIqZV0sdGhpcy5waWNrWFlEYXRhWzIqZSsxXV06W3RoaXMucGlja1hEYXRhW2VdLHRoaXMucGlja1lEYXRhW2VdXSx0ZXh0TGFiZWw6QXJyYXkuaXNBcnJheSh0aGlzLnRleHRMYWJlbHMpP3RoaXMudGV4dExhYmVsc1tlXTp0aGlzLnRleHRMYWJlbHMsY29sb3I6dGhpcy5jb2xvcixuYW1lOnRoaXMubmFtZSxwb2ludEluZGV4OmUsaG92ZXJpbmZvOnRoaXMuaG92ZXJpbmZvfX0sbC51cGRhdGU9ZnVuY3Rpb24odCl7dGhpcy5pbmRleD10LmluZGV4LHRoaXMudGV4dExhYmVscz10LnRleHQsdGhpcy5uYW1lPXQubmFtZSx0aGlzLmhvdmVyaW5mbz10LmhvdmVyaW5mbyx0aGlzLmJvdW5kcz1bMS8wLDEvMCwtMS8wLC0xLzBdLHRoaXMudXBkYXRlRmFzdCh0KSx0aGlzLmNvbG9yPW8odCx7fSl9LGwudXBkYXRlRmFzdD1mdW5jdGlvbih0KXt2YXIgZSxyLG4sbyxzLGwsYz10aGlzLnhEYXRhPXRoaXMucGlja1hEYXRhPXQueCx1PXRoaXMueURhdGE9dGhpcy5waWNrWURhdGE9dC55LGY9dGhpcy5waWNrWFlEYXRhPXQueHksaD10Lnhib3VuZHMmJnQueWJvdW5kcyxwPXQuaW5kaWNlcyxkPXRoaXMuYm91bmRzO2lmKGYpe2lmKG49ZixlPWYubGVuZ3RoPj4+MSxoKWRbMF09dC54Ym91bmRzWzBdLGRbMl09dC54Ym91bmRzWzFdLGRbMV09dC55Ym91bmRzWzBdLGRbM109dC55Ym91bmRzWzFdO2Vsc2UgZm9yKGw9MDtsPGU7bCsrKW89blsyKmxdLHM9blsyKmwrMV0sbzxkWzBdJiYoZFswXT1vKSxvPmRbMl0mJihkWzJdPW8pLHM8ZFsxXSYmKGRbMV09cykscz5kWzNdJiYoZFszXT1zKTtpZihwKXI9cDtlbHNlIGZvcihyPW5ldyBJbnQzMkFycmF5KGUpLGw9MDtsPGU7bCsrKXJbbF09bH1lbHNlIGZvcihlPWMubGVuZ3RoLG49bmV3IEZsb2F0MzJBcnJheSgyKmUpLHI9bmV3IEludDMyQXJyYXkoZSksbD0wO2w8ZTtsKyspbz1jW2xdLHM9dVtsXSxyW2xdPWwsblsyKmxdPW8sblsyKmwrMV09cyxvPGRbMF0mJihkWzBdPW8pLG8+ZFsyXSYmKGRbMl09byksczxkWzFdJiYoZFsxXT1zKSxzPmRbM10mJihkWzNdPXMpO3RoaXMuaWRUb0luZGV4PXIsdGhpcy5wb2ludGNsb3VkT3B0aW9ucy5pZFRvSW5kZXg9cix0aGlzLnBvaW50Y2xvdWRPcHRpb25zLnBvc2l0aW9ucz1uO3ZhciBtPWkodC5tYXJrZXIuY29sb3IpLGc9aSh0Lm1hcmtlci5ib3JkZXIuY29sb3IpLHY9dC5vcGFjaXR5KnQubWFya2VyLm9wYWNpdHk7bVszXSo9dix0aGlzLnBvaW50Y2xvdWRPcHRpb25zLmNvbG9yPW07dmFyIHk9dC5tYXJrZXIuYmxlbmQ7aWYobnVsbD09PXkpe3k9Yy5sZW5ndGg8MTAwfHx1Lmxlbmd0aDwxMDB9dGhpcy5wb2ludGNsb3VkT3B0aW9ucy5ibGVuZD15LGdbM10qPXYsdGhpcy5wb2ludGNsb3VkT3B0aW9ucy5ib3JkZXJDb2xvcj1nO3ZhciB4PXQubWFya2VyLnNpemVtaW4sYj1NYXRoLm1heCh0Lm1hcmtlci5zaXplbWF4LHQubWFya2VyLnNpemVtaW4pO3RoaXMucG9pbnRjbG91ZE9wdGlvbnMuc2l6ZU1pbj14LHRoaXMucG9pbnRjbG91ZE9wdGlvbnMuc2l6ZU1heD1iLHRoaXMucG9pbnRjbG91ZE9wdGlvbnMuYXJlYVJhdGlvPXQubWFya2VyLmJvcmRlci5hcmVhcmF0aW8sdGhpcy5wb2ludGNsb3VkLnVwZGF0ZSh0aGlzLnBvaW50Y2xvdWRPcHRpb25zKTt2YXIgXz10aGlzLnNjZW5lLnhheGlzLHc9dGhpcy5zY2VuZS55YXhpcyxUPWIvMnx8LjU7dC5fZXh0cmVtZXNbXy5faWRdPWEoXyxbZFswXSxkWzJdXSx7cHBhZDpUfSksdC5fZXh0cmVtZXNbdy5faWRdPWEodyxbZFsxXSxkWzNdXSx7cHBhZDpUfSl9LGwuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMucG9pbnRjbG91ZC5kaXNwb3NlKCl9LGUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPW5ldyBzKHQsZS51aWQpO3JldHVybiByLnVwZGF0ZShlKSxyfX0seyIuLi8uLi8uLi9zdGFja2dsX21vZHVsZXMiOjExMzMsIi4uLy4uL2xpYi9zdHIycmdiYXJyYXkiOjU0MCwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F1dG9yYW5nZSI6NTY1LCIuLi9zY2F0dGVyL2dldF90cmFjZV9jb2xvciI6OTQ2fV0sOTI0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBhKHIsYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxpLHIsYSl9YSgieCIpLGEoInkiKSxhKCJ4Ym91bmRzIiksYSgieWJvdW5kcyIpLHQueHkmJnQueHkgaW5zdGFuY2VvZiBGbG9hdDMyQXJyYXkmJihlLnh5PXQueHkpLHQuaW5kaWNlcyYmdC5pbmRpY2VzIGluc3RhbmNlb2YgSW50MzJBcnJheSYmKGUuaW5kaWNlcz10LmluZGljZXMpLGEoInRleHQiKSxhKCJtYXJrZXIuY29sb3IiLHIpLGEoIm1hcmtlci5vcGFjaXR5IiksYSgibWFya2VyLmJsZW5kIiksYSgibWFya2VyLnNpemVtaW4iKSxhKCJtYXJrZXIuc2l6ZW1heCIpLGEoIm1hcmtlci5ib3JkZXIuY29sb3IiLHIpLGEoIm1hcmtlci5ib3JkZXIuYXJlYXJhdGlvIiksZS5fbGVuZ3RoPW51bGx9fSx7Ii4uLy4uL2xpYiI6NTE1LCIuL2F0dHJpYnV0ZXMiOjkyMn1dLDkyNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtbIipwb2ludGNsb3VkKiB0cmFjZSBpcyBkZXByZWNhdGVkISIsIlBsZWFzZSBjb25zaWRlciBzd2l0Y2hpbmcgdG8gdGhlICpzY2F0dGVyZ2wqIHRyYWNlIHR5cGUuIl0uam9pbigiICIpO2UuZXhwb3J0cz17YXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksY2FsYzp0KCIuLi9zY2F0dGVyM2QvY2FsYyIpLHBsb3Q6dCgiLi9jb252ZXJ0IiksbW9kdWxlVHlwZToidHJhY2UiLG5hbWU6InBvaW50Y2xvdWQiLGJhc2VQbG90TW9kdWxlOnQoIi4uLy4uL3Bsb3RzL2dsMmQiKSxjYXRlZ29yaWVzOlsiZ2wiLCJnbDJkIiwic2hvd0xlZ2VuZCJdLG1ldGE6e319fSx7Ii4uLy4uL3Bsb3RzL2dsMmQiOjYwNSwiLi4vc2NhdHRlcjNkL2NhbGMiOjk2NSwiLi9hdHRyaWJ1dGVzIjo5MjIsIi4vY29udmVydCI6OTIzLCIuL2RlZmF1bHRzIjo5MjR9XSw5MjY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIiksaT10KCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yL2F0dHJpYnV0ZXMiKSxvPXQoIi4uLy4uL2NvbXBvbmVudHMvZngvYXR0cmlidXRlcyIpLHM9dCgiLi4vLi4vcGxvdHMvZG9tYWluIikuYXR0cmlidXRlcyxsPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS5ob3ZlcnRlbXBsYXRlQXR0cnMsYz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyIpLHU9dCgiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpLnRlbXBsYXRlZEFycmF5LGY9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfZm9ybWF0X2F0dHJpYnV0ZXMiKS5kZXNjcmlwdGlvbk9ubHlOdW1iZXJzLGg9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQscD10KCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIikub3ZlcnJpZGVBbGw7KGUuZXhwb3J0cz1wKHtob3ZlcmluZm86aCh7fSxpLmhvdmVyaW5mbyx7ZmxhZ3M6W10sYXJyYXlPazohMX0pLGhvdmVybGFiZWw6by5ob3ZlcmxhYmVsLGRvbWFpbjpzKHtuYW1lOiJzYW5rZXkiLHRyYWNlOiEwfSksb3JpZW50YXRpb246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInYiLCJoIl0sZGZsdDoiaCJ9LHZhbHVlZm9ybWF0Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6Ii4zcyIsZGVzY3JpcHRpb246ZigidmFsdWUiKX0sdmFsdWVzdWZmaXg6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIn0sYXJyYW5nZW1lbnQ6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInNuYXAiLCJwZXJwZW5kaWN1bGFyIiwiZnJlZWZvcm0iLCJmaXhlZCJdLGRmbHQ6InNuYXAifSx0ZXh0Zm9udDpuKHt9KSxjdXN0b21kYXRhOnZvaWQgMCxub2RlOntsYWJlbDp7dmFsVHlwZToiZGF0YV9hcnJheSIsZGZsdDpbXX0sZ3JvdXBzOnt2YWxUeXBlOiJpbmZvX2FycmF5IixpbXBsaWVkRWRpdHM6e3g6W10seTpbXX0sZGltZW5zaW9uczoyLGZyZWVMZW5ndGg6ITAsZGZsdDpbXSxpdGVtczp7dmFsVHlwZToibnVtYmVyIixlZGl0VHlwZToiY2FsYyJ9fSx4Ont2YWxUeXBlOiJkYXRhX2FycmF5IixkZmx0OltdfSx5Ont2YWxUeXBlOiJkYXRhX2FycmF5IixkZmx0OltdfSxjb2xvcjp7dmFsVHlwZToiY29sb3IiLGFycmF5T2s6ITB9LGN1c3RvbWRhdGE6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sbGluZTp7Y29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OmEuZGVmYXVsdExpbmUsYXJyYXlPazohMH0sd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDouNSxhcnJheU9rOiEwfX0scGFkOnt2YWxUeXBlOiJudW1iZXIiLGFycmF5T2s6ITEsbWluOjAsZGZsdDoyMH0sdGhpY2tuZXNzOnt2YWxUeXBlOiJudW1iZXIiLGFycmF5T2s6ITEsbWluOjEsZGZsdDoyMH0saG92ZXJpbmZvOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJhbGwiLCJub25lIiwic2tpcCJdLGRmbHQ6ImFsbCJ9LGhvdmVybGFiZWw6by5ob3ZlcmxhYmVsLGhvdmVydGVtcGxhdGU6bCh7fSx7a2V5czpbInZhbHVlIiwibGFiZWwiXX0pfSxsaW5rOntsYWJlbDp7dmFsVHlwZToiZGF0YV9hcnJheSIsZGZsdDpbXX0sY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixhcnJheU9rOiEwfSxjdXN0b21kYXRhOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LGxpbmU6e2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDphLmRlZmF1bHRMaW5lLGFycmF5T2s6ITB9LHdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MCxhcnJheU9rOiEwfX0sc291cmNlOnt2YWxUeXBlOiJkYXRhX2FycmF5IixkZmx0OltdfSx0YXJnZXQ6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGRmbHQ6W119LHZhbHVlOnt2YWxUeXBlOiJkYXRhX2FycmF5IixkZmx0OltdfSxob3ZlcmluZm86e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImFsbCIsIm5vbmUiLCJza2lwIl0sZGZsdDoiYWxsIn0saG92ZXJsYWJlbDpvLmhvdmVybGFiZWwsaG92ZXJ0ZW1wbGF0ZTpsKHt9LHtrZXlzOlsidmFsdWUiLCJsYWJlbCJdfSksY29sb3JzY2FsZXM6dSgiY29uY2VudHJhdGlvbnNjYWxlcyIse2VkaXRUeXBlOiJjYWxjIixsYWJlbDp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToiY2FsYyIsZGZsdDoiIn0sY21heDp7dmFsVHlwZToibnVtYmVyIixlZGl0VHlwZToiY2FsYyIsZGZsdDoxfSxjbWluOnt2YWxUeXBlOiJudW1iZXIiLGVkaXRUeXBlOiJjYWxjIixkZmx0OjB9LGNvbG9yc2NhbGU6aChjKCkuY29sb3JzY2FsZSx7ZGZsdDpbWzAsIndoaXRlIl0sWzEsImJsYWNrIl1dfSl9KX19LCJjYWxjIiwibmVzdGVkIikpLnRyYW5zZm9ybXM9dm9pZCAwfSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IvYXR0cmlidXRlcyI6MzY2LCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6Mzc0LCIuLi8uLi9jb21wb25lbnRzL2Z4L2F0dHJpYnV0ZXMiOjM5OCwiLi4vLi4vbGliL2V4dGVuZCI6NTA1LCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIjo1NDgsIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiOjU1NSwiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyI6NTYyLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19mb3JtYXRfYXR0cmlidXRlcyI6NTY5LCIuLi8uLi9wbG90cy9kb21haW4iOjU5MywiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIjo1OTQsIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjY0Mn1dLDkyNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIikub3ZlcnJpZGVBbGwsaT10KCIuLi8uLi9wbG90cy9nZXRfZGF0YSIpLmdldE1vZHVsZUNhbGNEYXRhLGE9dCgiLi9wbG90Iiksbz10KCIuLi8uLi9jb21wb25lbnRzL2Z4L2xheW91dF9hdHRyaWJ1dGVzIikscz10KCIuLi8uLi9saWIvc2V0Y3Vyc29yIiksbD10KCIuLi8uLi9jb21wb25lbnRzL2RyYWdlbGVtZW50IiksYz10KCIuLi8uLi9jb21wb25lbnRzL3NlbGVjdGlvbnMiKS5wcmVwU2VsZWN0LHU9dCgiLi4vLi4vbGliIiksZj10KCIuLi8uLi9yZWdpc3RyeSIpO2Z1bmN0aW9uIGgodCxlKXt2YXIgcj10Ll9mdWxsRGF0YVtlXSxuPXQuX2Z1bGxMYXlvdXQsaT1uLmRyYWdtb2RlLGE9InBhbiI9PT1uLmRyYWdtb2RlPyJtb3ZlIjoiY3Jvc3NoYWlyIixvPXIuX2JnUmVjdDtpZihvJiYicGFuIiE9PWkmJiJ6b29tIiE9PWkpe3MobyxhKTt2YXIgaD17X2lkOiJ4IixjMnA6dS5pZGVudGl0eSxfb2Zmc2V0OnIuX3NhbmtleS50cmFuc2xhdGVYLF9sZW5ndGg6ci5fc2Fua2V5LndpZHRofSxwPXtfaWQ6InkiLGMycDp1LmlkZW50aXR5LF9vZmZzZXQ6ci5fc2Fua2V5LnRyYW5zbGF0ZVksX2xlbmd0aDpyLl9zYW5rZXkuaGVpZ2h0fSxkPXtnZDp0LGVsZW1lbnQ6by5ub2RlKCkscGxvdGluZm86e2lkOmUseGF4aXM6aCx5YXhpczpwLGZpbGxSYW5nZUl0ZW1zOnUubm9vcH0sc3VicGxvdDplLHhheGVzOltoXSx5YXhlczpbcF0sZG9uZUZuQ29tcGxldGVkOmZ1bmN0aW9uKHIpe3ZhciBuLGk9dC5fZnVsbERhdGFbZV0sYT1pLm5vZGUuZ3JvdXBzLnNsaWNlKCksbz1bXTtmdW5jdGlvbiBzKHQpe2Zvcih2YXIgZT1pLl9zYW5rZXkuZ3JhcGgubm9kZXMscj0wO3I8ZS5sZW5ndGg7cisrKWlmKGVbcl0ucG9pbnROdW1iZXI9PT10KXJldHVybiBlW3JdfWZvcih2YXIgbD0wO2w8ci5sZW5ndGg7bCsrKXt2YXIgYz1zKHJbbF0ucG9pbnROdW1iZXIpO2lmKGMpaWYoYy5ncm91cCl7Zm9yKHZhciB1PTA7dTxjLmNoaWxkcmVuTm9kZXMubGVuZ3RoO3UrKylvLnB1c2goYy5jaGlsZHJlbk5vZGVzW3VdLnBvaW50TnVtYmVyKTthW2MucG9pbnROdW1iZXItaS5ub2RlLl9jb3VudF09ITF9ZWxzZSBvLnB1c2goYy5wb2ludE51bWJlcil9bj1hLmZpbHRlcihCb29sZWFuKS5jb25jYXQoW29dKSxmLmNhbGwoIl9ndWlSZXN0eWxlIix0LHsibm9kZS5ncm91cHMiOltuXX0sZSl9LHByZXBGbjpmdW5jdGlvbih0LGUscil7Yyh0LGUscixkLGkpfX07bC5pbml0KGQpfX1yLm5hbWU9InNhbmtleSIsci5iYXNlTGF5b3V0QXR0ck92ZXJyaWRlcz1uKHtob3ZlcmxhYmVsOm8uaG92ZXJsYWJlbH0sInBsb3QiLCJuZXN0ZWQiKSxyLnBsb3Q9ZnVuY3Rpb24odCl7dmFyIGU9aSh0LmNhbGNkYXRhLCJzYW5rZXkiKVswXTthKHQsZSksci51cGRhdGVGeCh0KX0sci5jbGVhbj1mdW5jdGlvbih0LGUscixuKXt2YXIgaT1uLl9oYXMmJm4uX2hhcygic2Fua2V5IiksYT1lLl9oYXMmJmUuX2hhcygic2Fua2V5Iik7aSYmIWEmJihuLl9wYXBlcmRpdi5zZWxlY3RBbGwoIi5zYW5rZXkiKS5yZW1vdmUoKSxuLl9wYXBlcmRpdi5zZWxlY3RBbGwoIi5iZ3NhbmtleSIpLnJlbW92ZSgpKX0sci51cGRhdGVGeD1mdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPHQuX2Z1bGxEYXRhLmxlbmd0aDtlKyspaCh0LGUpfX0seyIuLi8uLi9jb21wb25lbnRzL2RyYWdlbGVtZW50IjozODYsIi4uLy4uL2NvbXBvbmVudHMvZngvbGF5b3V0X2F0dHJpYnV0ZXMiOjQwOCwiLi4vLi4vY29tcG9uZW50cy9zZWxlY3Rpb25zIjo0NTUsIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9saWIvc2V0Y3Vyc29yIjo1MzYsIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiOjU0OCwiLi4vLi4vcGxvdHMvZ2V0X2RhdGEiOjYwMiwiLi4vLi4vcmVnaXN0cnkiOjY0NywiLi9wbG90Ijo5MzJ9XSw5Mjg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgic3Ryb25nbHktY29ubmVjdGVkLWNvbXBvbmVudHMiKSxpPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vLi4vbGliL2d1cCIpLndyYXAsbz1pLmlzQXJyYXlPclR5cGVkQXJyYXkscz1pLmlzSW5kZXgsbD10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiKTtmdW5jdGlvbiBjKHQpe3ZhciBlLHI9dC5ub2RlLGE9dC5saW5rLGM9W10sdT1vKGEuY29sb3IpLGY9byhhLmN1c3RvbWRhdGEpLGg9e30scD17fSxkPWEuY29sb3JzY2FsZXMubGVuZ3RoO2ZvcihlPTA7ZTxkO2UrKyl7dmFyIG09YS5jb2xvcnNjYWxlc1tlXSxnPWwuZXh0cmFjdFNjYWxlKG0se2NMZXR0ZXI6ImMifSksdj1sLm1ha2VDb2xvclNjYWxlRnVuYyhnKTtwW20ubGFiZWxdPXZ9dmFyIHk9MDtmb3IoZT0wO2U8YS52YWx1ZS5sZW5ndGg7ZSsrKWEuc291cmNlW2VdPnkmJih5PWEuc291cmNlW2VdKSxhLnRhcmdldFtlXT55JiYoeT1hLnRhcmdldFtlXSk7dmFyIHgsYj15KzE7dC5ub2RlLl9jb3VudD1iO3ZhciBfPXQubm9kZS5ncm91cHMsdz17fTtmb3IoZT0wO2U8Xy5sZW5ndGg7ZSsrKXt2YXIgVD1fW2VdO2Zvcih4PTA7eDxULmxlbmd0aDt4Kyspe3ZhciBrPVRbeF0sQT1iK2U7dy5oYXNPd25Qcm9wZXJ0eShrKT9pLndhcm4oIk5vZGUgIitrKyIgaXMgYWxyZWFkeSBwYXJ0IG9mIGEgZ3JvdXAuIik6d1trXT1BfX12YXIgTT17c291cmNlOltdLHRhcmdldDpbXX07Zm9yKGU9MDtlPGEudmFsdWUubGVuZ3RoO2UrKyl7dmFyIFM9YS52YWx1ZVtlXSxFPWEuc291cmNlW2VdLEw9YS50YXJnZXRbZV07aWYoUz4wJiZzKEUsYikmJnMoTCxiKSYmKCF3Lmhhc093blByb3BlcnR5KEUpfHwhdy5oYXNPd25Qcm9wZXJ0eShMKXx8d1tFXSE9PXdbTF0pKXt3Lmhhc093blByb3BlcnR5KEwpJiYoTD13W0xdKSx3Lmhhc093blByb3BlcnR5KEUpJiYoRT13W0VdKSxMPStMLGhbRT0rRV09aFtMXT0hMDt2YXIgQz0iIjthLmxhYmVsJiZhLmxhYmVsW2VdJiYoQz1hLmxhYmVsW2VdKTt2YXIgUD1udWxsO0MmJnAuaGFzT3duUHJvcGVydHkoQykmJihQPXBbQ10pLGMucHVzaCh7cG9pbnROdW1iZXI6ZSxsYWJlbDpDLGNvbG9yOnU/YS5jb2xvcltlXTphLmNvbG9yLGN1c3RvbWRhdGE6Zj9hLmN1c3RvbWRhdGFbZV06YS5jdXN0b21kYXRhLGNvbmNlbnRyYXRpb25zY2FsZTpQLHNvdXJjZTpFLHRhcmdldDpMLHZhbHVlOitTfSksTS5zb3VyY2UucHVzaChFKSxNLnRhcmdldC5wdXNoKEwpfX12YXIgST1iK18ubGVuZ3RoLE89byhyLmNvbG9yKSx6PW8oci5jdXN0b21kYXRhKSxEPVtdO2ZvcihlPTA7ZTxJO2UrKylpZihoW2VdKXt2YXIgUj1yLmxhYmVsW2VdO0QucHVzaCh7Z3JvdXA6ZT5iLTEsY2hpbGRyZW5Ob2RlczpbXSxwb2ludE51bWJlcjplLGxhYmVsOlIsY29sb3I6Tz9yLmNvbG9yW2VdOnIuY29sb3IsY3VzdG9tZGF0YTp6P3IuY3VzdG9tZGF0YVtlXTpyLmN1c3RvbWRhdGF9KX12YXIgRj0hMTtyZXR1cm4gZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1pLmluaXQyZEFycmF5KHQsMCksbz0wO288TWF0aC5taW4oZS5sZW5ndGgsci5sZW5ndGgpO28rKylpZihpLmlzSW5kZXgoZVtvXSx0KSYmaS5pc0luZGV4KHJbb10sdCkpe2lmKGVbb109PT1yW29dKXJldHVybiEwO2FbZVtvXV0ucHVzaChyW29dKX1yZXR1cm4gbihhKS5jb21wb25lbnRzLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmxlbmd0aD4xfSkpfShJLE0uc291cmNlLE0udGFyZ2V0KSYmKEY9ITApLHtjaXJjdWxhcjpGLGxpbmtzOmMsbm9kZXM6RCxncm91cHM6Xyxncm91cExvb2t1cDp3fX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1jKGUpO3JldHVybiBhKHtjaXJjdWxhcjpyLmNpcmN1bGFyLF9ub2RlczpyLm5vZGVzLF9saW5rczpyLmxpbmtzLF9ncm91cHM6ci5ncm91cHMsX2dyb3VwTG9va3VwOnIuZ3JvdXBMb29rdXB9KX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIjozNzksIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9saWIvZ3VwIjo1MTIsInN0cm9uZ2x5LWNvbm5lY3RlZC1jb21wb25lbnRzIjozMDd9XSw5Mjk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtub2RlVGV4dE9mZnNldEhvcml6b250YWw6NCxub2RlVGV4dE9mZnNldFZlcnRpY2FsOjMsbm9kZVBhZEFjcm9zczoxMCxzYW5rZXlJdGVyYXRpb25zOjUwLGZvcmNlSXRlcmF0aW9uczo1LGZvcmNlVGlja3NQZXJGcmFtZToxMCxkdXJhdGlvbjo1MDAsZWFzZToibGluZWFyIixjbjp7c2Fua2V5OiJzYW5rZXkiLHNhbmtleUxpbmtzOiJzYW5rZXktbGlua3MiLHNhbmtleUxpbms6InNhbmtleS1saW5rIixzYW5rZXlOb2RlU2V0OiJzYW5rZXktbm9kZS1zZXQiLHNhbmtleU5vZGU6InNhbmtleS1ub2RlIixub2RlUmVjdDoibm9kZS1yZWN0Iixub2RlTGFiZWw6Im5vZGUtbGFiZWwifX19LHt9XSw5MzA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuL2F0dHJpYnV0ZXMiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxvPXQoInRpbnljb2xvcjIiKSxzPXQoIi4uLy4uL3Bsb3RzL2RvbWFpbiIpLmRlZmF1bHRzLGw9dCgiLi4vLi4vY29tcG9uZW50cy9meC9ob3ZlcmxhYmVsX2RlZmF1bHRzIiksYz10KCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIiksdT10KCIuLi8uLi9wbG90cy9hcnJheV9jb250YWluZXJfZGVmYXVsdHMiKTtmdW5jdGlvbiBmKHQsZSl7ZnVuY3Rpb24gcihyLGEpe3JldHVybiBuLmNvZXJjZSh0LGUsaS5saW5rLmNvbG9yc2NhbGVzLHIsYSl9cigibGFiZWwiKSxyKCJjbWluIikscigiY21heCIpLHIoImNvbG9yc2NhbGUiKX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsaCl7ZnVuY3Rpb24gcChyLGEpe3JldHVybiBuLmNvZXJjZSh0LGUsaSxyLGEpfXZhciBkPW4uZXh0ZW5kRGVlcChoLmhvdmVybGFiZWwsdC5ob3ZlcmxhYmVsKSxtPXQubm9kZSxnPWMubmV3Q29udGFpbmVyKGUsIm5vZGUiKTtmdW5jdGlvbiB2KHQsZSl7cmV0dXJuIG4uY29lcmNlKG0sZyxpLm5vZGUsdCxlKX12KCJsYWJlbCIpLHYoImdyb3VwcyIpLHYoIngiKSx2KCJ5IiksdigicGFkIiksdigidGhpY2tuZXNzIiksdigibGluZS5jb2xvciIpLHYoImxpbmUud2lkdGgiKSx2KCJob3ZlcmluZm8iLHQuaG92ZXJpbmZvKSxsKG0sZyx2LGQpLHYoImhvdmVydGVtcGxhdGUiKTt2YXIgeT1oLmNvbG9yd2F5O3YoImNvbG9yIixnLmxhYmVsLm1hcCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gYS5hZGRPcGFjaXR5KGZ1bmN0aW9uKHQpe3JldHVybiB5W3QleS5sZW5ndGhdfShlKSwuOCl9KSkpLHYoImN1c3RvbWRhdGEiKTt2YXIgeD10Lmxpbmt8fHt9LGI9Yy5uZXdDb250YWluZXIoZSwibGluayIpO2Z1bmN0aW9uIF8odCxlKXtyZXR1cm4gbi5jb2VyY2UoeCxiLGkubGluayx0LGUpfV8oImxhYmVsIiksXygic291cmNlIiksXygidGFyZ2V0IiksXygidmFsdWUiKSxfKCJsaW5lLmNvbG9yIiksXygibGluZS53aWR0aCIpLF8oImhvdmVyaW5mbyIsdC5ob3ZlcmluZm8pLGwoeCxiLF8sZCksXygiaG92ZXJ0ZW1wbGF0ZSIpO3ZhciB3LFQ9byhoLnBhcGVyX2JnY29sb3IpLmdldEx1bWluYW5jZSgpPC4zMzM/InJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KSI6InJnYmEoMCwgMCwgMCwgMC4yKSI7XygiY29sb3IiLG4ucmVwZWF0KFQsYi52YWx1ZS5sZW5ndGgpKSxfKCJjdXN0b21kYXRhIiksdSh4LGIse25hbWU6ImNvbG9yc2NhbGVzIixoYW5kbGVJdGVtRGVmYXVsdHM6Zn0pLHMoZSxoLHApLHAoIm9yaWVudGF0aW9uIikscCgidmFsdWVmb3JtYXQiKSxwKCJ2YWx1ZXN1ZmZpeCIpLGcueC5sZW5ndGgmJmcueS5sZW5ndGgmJih3PSJmcmVlZm9ybSIpLHAoImFycmFuZ2VtZW50Iix3KSxuLmNvZXJjZUZvbnQocCwidGV4dGZvbnQiLG4uZXh0ZW5kRmxhdCh7fSxoLmZvbnQpKSxlLl9sZW5ndGg9bnVsbH19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6MzY3LCIuLi8uLi9jb21wb25lbnRzL2Z4L2hvdmVybGFiZWxfZGVmYXVsdHMiOjQwNSwiLi4vLi4vbGliIjo1MTUsIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiOjU1NSwiLi4vLi4vcGxvdHMvYXJyYXlfY29udGFpbmVyX2RlZmF1bHRzIjo1NjEsIi4uLy4uL3Bsb3RzL2RvbWFpbiI6NTkzLCIuL2F0dHJpYnV0ZXMiOjkyNix0aW55Y29sb3IyOjMxM31dLDkzMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2F0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNhbGM6dCgiLi9jYWxjIikscGxvdDp0KCIuL3Bsb3QiKSxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToic2Fua2V5IixiYXNlUGxvdE1vZHVsZTp0KCIuL2Jhc2VfcGxvdCIpLHNlbGVjdFBvaW50czp0KCIuL3NlbGVjdC5qcyIpLGNhdGVnb3JpZXM6WyJub09wYWNpdHkiXSxtZXRhOnt9fX0seyIuL2F0dHJpYnV0ZXMiOjkyNiwiLi9iYXNlX3Bsb3QiOjkyNywiLi9jYWxjIjo5MjgsIi4vZGVmYXVsdHMiOjkzMCwiLi9wbG90Ijo5MzIsIi4vc2VsZWN0LmpzIjo5MzR9XSw5MzI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vLi4vbGliIiksYT1pLm51bWJlckZvcm1hdCxvPXQoIi4vcmVuZGVyIikscz10KCIuLi8uLi9jb21wb25lbnRzL2Z4IiksbD10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksYz10KCIuL2NvbnN0YW50cyIpLmNuLHU9aS5fO2Z1bmN0aW9uIGYodCl7cmV0dXJuIiIhPT10fWZ1bmN0aW9uIGgodCxlKXtyZXR1cm4gdC5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmtleT09PWUudHJhY2VJZH0pKX1mdW5jdGlvbiBwKHQsZSl7bi5zZWxlY3QodCkuc2VsZWN0KCJwYXRoIikuc3R5bGUoImZpbGwtb3BhY2l0eSIsZSksbi5zZWxlY3QodCkuc2VsZWN0KCJyZWN0Iikuc3R5bGUoImZpbGwtb3BhY2l0eSIsZSl9ZnVuY3Rpb24gZCh0KXtuLnNlbGVjdCh0KS5zZWxlY3QoInRleHQubmFtZSIpLnN0eWxlKCJmaWxsIiwiYmxhY2siKX1mdW5jdGlvbiBtKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4tMSE9PXQubm9kZS5zb3VyY2VMaW5rcy5pbmRleE9mKGUubGluayl8fC0xIT09dC5ub2RlLnRhcmdldExpbmtzLmluZGV4T2YoZS5saW5rKX19ZnVuY3Rpb24gZyh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuLTEhPT1lLm5vZGUuc291cmNlTGlua3MuaW5kZXhPZih0LmxpbmspfHwtMSE9PWUubm9kZS50YXJnZXRMaW5rcy5pbmRleE9mKHQubGluayl9fWZ1bmN0aW9uIHYodCxlLHIpe2UmJnImJmgocixlKS5zZWxlY3RBbGwoIi4iK2Muc2Fua2V5TGluaykuZmlsdGVyKG0oZSkpLmNhbGwoeC5iaW5kKDAsZSxyLCExKSl9ZnVuY3Rpb24geSh0LGUscil7ZSYmciYmaChyLGUpLnNlbGVjdEFsbCgiLiIrYy5zYW5rZXlMaW5rKS5maWx0ZXIobShlKSkuY2FsbChiLmJpbmQoMCxlLHIsITEpKX1mdW5jdGlvbiB4KHQsZSxyLG4pe3ZhciBpPW4uZGF0dW0oKS5saW5rLmxhYmVsO24uc3R5bGUoImZpbGwtb3BhY2l0eSIsKGZ1bmN0aW9uKHQpe2lmKCF0LmxpbmsuY29uY2VudHJhdGlvbnNjYWxlKXJldHVybi40fSkpLGkmJmgoZSx0KS5zZWxlY3RBbGwoIi4iK2Muc2Fua2V5TGluaykuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC5saW5rLmxhYmVsPT09aX0pKS5zdHlsZSgiZmlsbC1vcGFjaXR5IiwoZnVuY3Rpb24odCl7aWYoIXQubGluay5jb25jZW50cmF0aW9uc2NhbGUpcmV0dXJuLjR9KSksciYmaChlLHQpLnNlbGVjdEFsbCgiLiIrYy5zYW5rZXlOb2RlKS5maWx0ZXIoZyh0KSkuY2FsbCh2KX1mdW5jdGlvbiBiKHQsZSxyLG4pe3ZhciBpPW4uZGF0dW0oKS5saW5rLmxhYmVsO24uc3R5bGUoImZpbGwtb3BhY2l0eSIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRpbnlDb2xvckFscGhhfSkpLGkmJmgoZSx0KS5zZWxlY3RBbGwoIi4iK2Muc2Fua2V5TGluaykuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC5saW5rLmxhYmVsPT09aX0pKS5zdHlsZSgiZmlsbC1vcGFjaXR5IiwoZnVuY3Rpb24odCl7cmV0dXJuIHQudGlueUNvbG9yQWxwaGF9KSksciYmaChlLHQpLnNlbGVjdEFsbChjLnNhbmtleU5vZGUpLmZpbHRlcihnKHQpKS5jYWxsKHkpfWZ1bmN0aW9uIF8odCxlKXt2YXIgcj10LmhvdmVybGFiZWx8fHt9LG49aS5uZXN0ZWRQcm9wZXJ0eShyLGUpLmdldCgpO3JldHVybiFBcnJheS5pc0FycmF5KG4pJiZufWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10Ll9mdWxsTGF5b3V0LGk9ci5fcGFwZXIsaD1yLl9zaXplLG09MDttPHQuX2Z1bGxEYXRhLmxlbmd0aDttKyspaWYodC5fZnVsbERhdGFbbV0udmlzaWJsZSYmdC5fZnVsbERhdGFbbV0udHlwZT09PWMuc2Fua2V5JiYhdC5fZnVsbERhdGFbbV0uX3ZpZXdJbml0aWFsKXt2YXIgZz10Ll9mdWxsRGF0YVttXS5ub2RlO3QuX2Z1bGxEYXRhW21dLl92aWV3SW5pdGlhbD17bm9kZTp7Z3JvdXBzOmcuZ3JvdXBzLnNsaWNlKCkseDpnLnguc2xpY2UoKSx5OmcueS5zbGljZSgpfX19dmFyIHc9dSh0LCJzb3VyY2U6IikrIiAiLFQ9dSh0LCJ0YXJnZXQ6IikrIiAiLGs9dSh0LCJjb25jZW50cmF0aW9uOiIpKyIgIixBPXUodCwiaW5jb21pbmcgZmxvdyBjb3VudDoiKSsiICIsTT11KHQsIm91dGdvaW5nIGZsb3cgY291bnQ6IikrIiAiO28odCxpLGUse3dpZHRoOmgudyxoZWlnaHQ6aC5oLG1hcmdpbjp7dDpoLnQscjpoLnIsYjpoLmIsbDpoLmx9fSx7bGlua0V2ZW50czp7aG92ZXI6ZnVuY3Rpb24oZSxyLGkpeyExIT09dC5fZnVsbExheW91dC5ob3Zlcm1vZGUmJihuLnNlbGVjdChlKS5jYWxsKHguYmluZCgwLHIsaSwhMCkpLCJza2lwIiE9PXIubGluay50cmFjZS5saW5rLmhvdmVyaW5mbyYmKHIubGluay5mdWxsRGF0YT1yLmxpbmsudHJhY2UsdC5lbWl0KCJwbG90bHlfaG92ZXIiLHtldmVudDpuLmV2ZW50LHBvaW50czpbci5saW5rXX0pKSl9LGZvbGxvdzpmdW5jdGlvbihlLGkpe2lmKCExIT09dC5fZnVsbExheW91dC5ob3Zlcm1vZGUpe3ZhciBvPWkubGluay50cmFjZS5saW5rO2lmKCJub25lIiE9PW8uaG92ZXJpbmZvJiYic2tpcCIhPT1vLmhvdmVyaW5mbyl7Zm9yKHZhciBjPVtdLHU9MCxoPTA7aDxpLmZsb3cubGlua3MubGVuZ3RoO2grKyl7dmFyIG09aS5mbG93LmxpbmtzW2hdO2lmKCJjbG9zZXN0IiE9PXQuX2Z1bGxMYXlvdXQuaG92ZXJtb2RlfHxpLmxpbmsucG9pbnROdW1iZXI9PT1tLnBvaW50TnVtYmVyKXtpLmxpbmsucG9pbnROdW1iZXI9PT1tLnBvaW50TnVtYmVyJiYodT1oKSxtLmZ1bGxEYXRhPW0udHJhY2Usbz1pLmxpbmsudHJhY2UubGluazt2YXIgZz15KG0pLHY9e3ZhbHVlTGFiZWw6YShpLnZhbHVlRm9ybWF0KShtLnZhbHVlKStpLnZhbHVlU3VmZml4fTtjLnB1c2goe3g6Z1swXSx5OmdbMV0sbmFtZTp2LnZhbHVlTGFiZWwsdGV4dDpbbS5sYWJlbHx8IiIsdyttLnNvdXJjZS5sYWJlbCxUK20udGFyZ2V0LmxhYmVsLG0uY29uY2VudHJhdGlvbnNjYWxlP2srYSgiJTAuMmYiKShtLmZsb3cubGFiZWxDb25jZW50cmF0aW9uKToiIl0uZmlsdGVyKGYpLmpvaW4oIjxicj4iKSxjb2xvcjpfKG8sImJnY29sb3IiKXx8bC5hZGRPcGFjaXR5KG0uY29sb3IsMSksYm9yZGVyQ29sb3I6XyhvLCJib3JkZXJjb2xvciIpLGZvbnRGYW1pbHk6XyhvLCJmb250LmZhbWlseSIpLGZvbnRTaXplOl8obywiZm9udC5zaXplIiksZm9udENvbG9yOl8obywiZm9udC5jb2xvciIpLG5hbWVMZW5ndGg6XyhvLCJuYW1lbGVuZ3RoIiksdGV4dEFsaWduOl8obywiYWxpZ24iKSxpZGVhbEFsaWduOm4uZXZlbnQueDxnWzBdPyJyaWdodCI6ImxlZnQiLGhvdmVydGVtcGxhdGU6by5ob3ZlcnRlbXBsYXRlLGhvdmVydGVtcGxhdGVMYWJlbHM6dixldmVudERhdGE6W21dfSl9fXMubG9uZUhvdmVyKGMse2NvbnRhaW5lcjpyLl9ob3ZlcmxheWVyLm5vZGUoKSxvdXRlckNvbnRhaW5lcjpyLl9wYXBlci5ub2RlKCksZ2Q6dCxhbmNob3JJbmRleDp1fSkuZWFjaCgoZnVuY3Rpb24oKXtpLmxpbmsuY29uY2VudHJhdGlvbnNjYWxlfHxwKHRoaXMsLjY1KSxkKHRoaXMpfSkpfX1mdW5jdGlvbiB5KHQpe3ZhciBlLHI7dC5jaXJjdWxhcj8oZT0odC5jaXJjdWxhclBhdGhEYXRhLmxlZnRJbm5lckV4dGVudCt0LmNpcmN1bGFyUGF0aERhdGEucmlnaHRJbm5lckV4dGVudCkvMixyPXQuY2lyY3VsYXJQYXRoRGF0YS52ZXJ0aWNhbEZ1bGxFeHRlbnQpOihlPSh0LnNvdXJjZS54MSt0LnRhcmdldC54MCkvMixyPSh0LnkwK3QueTEpLzIpO3ZhciBuPVtlLHJdO3JldHVybiJ2Ij09PXQudHJhY2Uub3JpZW50YXRpb24mJm4ucmV2ZXJzZSgpLG5bMF0rPWkucGFyZW50LnRyYW5zbGF0ZVgsblsxXSs9aS5wYXJlbnQudHJhbnNsYXRlWSxufX0sdW5ob3ZlcjpmdW5jdGlvbihlLGksYSl7ITEhPT10Ll9mdWxsTGF5b3V0LmhvdmVybW9kZSYmKG4uc2VsZWN0KGUpLmNhbGwoYi5iaW5kKDAsaSxhLCEwKSksInNraXAiIT09aS5saW5rLnRyYWNlLmxpbmsuaG92ZXJpbmZvJiYoaS5saW5rLmZ1bGxEYXRhPWkubGluay50cmFjZSx0LmVtaXQoInBsb3RseV91bmhvdmVyIix7ZXZlbnQ6bi5ldmVudCxwb2ludHM6W2kubGlua119KSkscy5sb25lVW5ob3ZlcihyLl9ob3ZlcmxheWVyLm5vZGUoKSkpfSxzZWxlY3Q6ZnVuY3Rpb24oZSxyKXt2YXIgaT1yLmxpbms7aS5vcmlnaW5hbEV2ZW50PW4uZXZlbnQsdC5faG92ZXJkYXRhPVtpXSxzLmNsaWNrKHQse3RhcmdldDohMH0pfX0sbm9kZUV2ZW50czp7aG92ZXI6ZnVuY3Rpb24oZSxyLGkpeyExIT09dC5fZnVsbExheW91dC5ob3Zlcm1vZGUmJihuLnNlbGVjdChlKS5jYWxsKHYscixpKSwic2tpcCIhPT1yLm5vZGUudHJhY2Uubm9kZS5ob3ZlcmluZm8mJihyLm5vZGUuZnVsbERhdGE9ci5ub2RlLnRyYWNlLHQuZW1pdCgicGxvdGx5X2hvdmVyIix7ZXZlbnQ6bi5ldmVudCxwb2ludHM6W3Iubm9kZV19KSkpfSxmb2xsb3c6ZnVuY3Rpb24oZSxpKXtpZighMSE9PXQuX2Z1bGxMYXlvdXQuaG92ZXJtb2RlKXt2YXIgbz1pLm5vZGUudHJhY2Uubm9kZTtpZigibm9uZSIhPT1vLmhvdmVyaW5mbyYmInNraXAiIT09by5ob3ZlcmluZm8pe3ZhciBsPW4uc2VsZWN0KGUpLnNlbGVjdCgiLiIrYy5ub2RlUmVjdCksdT10Ll9mdWxsTGF5b3V0Ll9wYXBlcmRpdi5ub2RlKCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaD1sLm5vZGUoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxtPWgubGVmdC0yLXUubGVmdCxnPWgucmlnaHQrMi11LmxlZnQsdj1oLnRvcCtoLmhlaWdodC80LXUudG9wLHk9e3ZhbHVlTGFiZWw6YShpLnZhbHVlRm9ybWF0KShpLm5vZGUudmFsdWUpK2kudmFsdWVTdWZmaXh9O2kubm9kZS5mdWxsRGF0YT1pLm5vZGUudHJhY2UsdC5fZnVsbExheW91dC5fY2FsY0ludmVyc2VUcmFuc2Zvcm0odCk7dmFyIHg9dC5fZnVsbExheW91dC5faW52U2NhbGVYLGI9dC5fZnVsbExheW91dC5faW52U2NhbGVZLHc9cy5sb25lSG92ZXIoe3gwOngqbSx4MTp4KmcseTpiKnYsbmFtZTphKGkudmFsdWVGb3JtYXQpKGkubm9kZS52YWx1ZSkraS52YWx1ZVN1ZmZpeCx0ZXh0OltpLm5vZGUubGFiZWwsQStpLm5vZGUudGFyZ2V0TGlua3MubGVuZ3RoLE0raS5ub2RlLnNvdXJjZUxpbmtzLmxlbmd0aF0uZmlsdGVyKGYpLmpvaW4oIjxicj4iKSxjb2xvcjpfKG8sImJnY29sb3IiKXx8aS50aW55Q29sb3JIdWUsYm9yZGVyQ29sb3I6XyhvLCJib3JkZXJjb2xvciIpLGZvbnRGYW1pbHk6XyhvLCJmb250LmZhbWlseSIpLGZvbnRTaXplOl8obywiZm9udC5zaXplIiksZm9udENvbG9yOl8obywiZm9udC5jb2xvciIpLG5hbWVMZW5ndGg6XyhvLCJuYW1lbGVuZ3RoIiksdGV4dEFsaWduOl8obywiYWxpZ24iKSxpZGVhbEFsaWduOiJsZWZ0Iixob3ZlcnRlbXBsYXRlOm8uaG92ZXJ0ZW1wbGF0ZSxob3ZlcnRlbXBsYXRlTGFiZWxzOnksZXZlbnREYXRhOltpLm5vZGVdfSx7Y29udGFpbmVyOnIuX2hvdmVybGF5ZXIubm9kZSgpLG91dGVyQ29udGFpbmVyOnIuX3BhcGVyLm5vZGUoKSxnZDp0fSk7cCh3LC44NSksZCh3KX19fSx1bmhvdmVyOmZ1bmN0aW9uKGUsaSxhKXshMSE9PXQuX2Z1bGxMYXlvdXQuaG92ZXJtb2RlJiYobi5zZWxlY3QoZSkuY2FsbCh5LGksYSksInNraXAiIT09aS5ub2RlLnRyYWNlLm5vZGUuaG92ZXJpbmZvJiYoaS5ub2RlLmZ1bGxEYXRhPWkubm9kZS50cmFjZSx0LmVtaXQoInBsb3RseV91bmhvdmVyIix7ZXZlbnQ6bi5ldmVudCxwb2ludHM6W2kubm9kZV19KSkscy5sb25lVW5ob3ZlcihyLl9ob3ZlcmxheWVyLm5vZGUoKSkpfSxzZWxlY3Q6ZnVuY3Rpb24oZSxyLGkpe3ZhciBhPXIubm9kZTthLm9yaWdpbmFsRXZlbnQ9bi5ldmVudCx0Ll9ob3ZlcmRhdGE9W2FdLG4uc2VsZWN0KGUpLmNhbGwoeSxyLGkpLHMuY2xpY2sodCx7dGFyZ2V0OiEwfSl9fX0pfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjozNjcsIi4uLy4uL2NvbXBvbmVudHMvZngiOjQwNywiLi4vLi4vbGliIjo1MTUsIi4vY29uc3RhbnRzIjo5MjksIi4vcmVuZGVyIjo5MzMsIkBwbG90bHkvZDMiOjU4fV0sOTMzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzLWZvcmNlIiksaT10KCJkMy1pbnRlcnBvbGF0ZSIpLmludGVycG9sYXRlTnVtYmVyLGE9dCgiQHBsb3RseS9kMyIpLG89dCgiQHBsb3RseS9kMy1zYW5rZXkiKSxzPXQoIkBwbG90bHkvZDMtc2Fua2V5LWNpcmN1bGFyIiksbD10KCIuL2NvbnN0YW50cyIpLGM9dCgidGlueWNvbG9yMiIpLHU9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLGY9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIiksaD10KCIuLi8uLi9saWIiKSxwPWguc3RyVHJhbnNsYXRlLGQ9aC5zdHJSb3RhdGUsbT10KCIuLi8uLi9saWIvZ3VwIiksZz1tLmtleUZ1bix2PW0ucmVwZWF0LHk9bS51bndyYXAseD10KCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiKSxiPXQoIi4uLy4uL3JlZ2lzdHJ5IiksXz10KCIuLi8uLi9jb25zdGFudHMvYWxpZ25tZW50Iiksdz1fLkNBUF9TSElGVCxUPV8uTElORV9TUEFDSU5HO2Z1bmN0aW9uIGsodCxlLHIpe3ZhciBuLGk9eShlKSxhPWkudHJhY2UsdT1hLmRvbWFpbixmPSJoIj09PWEub3JpZW50YXRpb24scD1hLm5vZGUucGFkLGQ9YS5ub2RlLnRoaWNrbmVzcyxtPXQud2lkdGgqKHUueFsxXS11LnhbMF0pLGc9dC5oZWlnaHQqKHUueVsxXS11LnlbMF0pLHY9aS5fbm9kZXMseD1pLl9saW5rcyxiPWkuY2lyY3VsYXI7KG49Yj9zLnNhbmtleUNpcmN1bGFyKCkuY2lyY3VsYXJMaW5rR2FwKDApOm8uc2Fua2V5KCkpLml0ZXJhdGlvbnMobC5zYW5rZXlJdGVyYXRpb25zKS5zaXplKGY/W20sZ106W2csbV0pLm5vZGVXaWR0aChkKS5ub2RlUGFkZGluZyhwKS5ub2RlSWQoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnBvaW50TnVtYmVyfSkpLm5vZGVzKHYpLmxpbmtzKHgpO3ZhciBfLHcsVCxrPW4oKTtmb3IodmFyIEEgaW4gbi5ub2RlUGFkZGluZygpPHAmJmgud2Fybigibm9kZS5wYWQgd2FzIHJlZHVjZWQgdG8gIixuLm5vZGVQYWRkaW5nKCksIiB0byBmaXQgd2l0aGluIHRoZSBmaWd1cmUuIiksaS5fZ3JvdXBMb29rdXApe3ZhciBNLFM9cGFyc2VJbnQoaS5fZ3JvdXBMb29rdXBbQV0pO2ZvcihfPTA7XzxrLm5vZGVzLmxlbmd0aDtfKyspaWYoay5ub2Rlc1tfXS5wb2ludE51bWJlcj09PVMpe009ay5ub2Rlc1tfXTticmVha31pZihNKXt2YXIgRT17cG9pbnROdW1iZXI6cGFyc2VJbnQoQSkseDA6TS54MCx4MTpNLngxLHkwOk0ueTAseTE6TS55MSxwYXJ0T2ZHcm91cDohMCxzb3VyY2VMaW5rczpbXSx0YXJnZXRMaW5rczpbXX07ay5ub2Rlcy51bnNoaWZ0KEUpLE0uY2hpbGRyZW5Ob2Rlcy51bnNoaWZ0KEUpfX1pZihmdW5jdGlvbigpe2ZvcihfPTA7XzxrLm5vZGVzLmxlbmd0aDtfKyspe3ZhciB0LGUscj1rLm5vZGVzW19dLG49e307Zm9yKHc9MDt3PHIudGFyZ2V0TGlua3MubGVuZ3RoO3crKyl0PShlPXIudGFyZ2V0TGlua3Nbd10pLnNvdXJjZS5wb2ludE51bWJlcisiOiIrZS50YXJnZXQucG9pbnROdW1iZXIsbi5oYXNPd25Qcm9wZXJ0eSh0KXx8KG5bdF09W10pLG5bdF0ucHVzaChlKTt2YXIgaT1PYmplY3Qua2V5cyhuKTtmb3Iodz0wO3c8aS5sZW5ndGg7dysrKXt2YXIgYT1uW3Q9aVt3XV0sbz0wLHM9e307Zm9yKFQ9MDtUPGEubGVuZ3RoO1QrKylzWyhlPWFbVF0pLmxhYmVsXXx8KHNbZS5sYWJlbF09MCksc1tlLmxhYmVsXSs9ZS52YWx1ZSxvKz1lLnZhbHVlO2ZvcihUPTA7VDxhLmxlbmd0aDtUKyspKGU9YVtUXSkuZmxvdz17dmFsdWU6byxsYWJlbENvbmNlbnRyYXRpb246c1tlLmxhYmVsXS9vLGNvbmNlbnRyYXRpb246ZS52YWx1ZS9vLGxpbmtzOmF9LGUuY29uY2VudHJhdGlvbnNjYWxlJiYoZS5jb2xvcj1jKGUuY29uY2VudHJhdGlvbnNjYWxlKGUuZmxvdy5sYWJlbENvbmNlbnRyYXRpb24pKSl9dmFyIGw9MDtmb3Iodz0wO3c8ci5zb3VyY2VMaW5rcy5sZW5ndGg7dysrKWwrPXIuc291cmNlTGlua3Nbd10udmFsdWU7Zm9yKHc9MDt3PHIuc291cmNlTGlua3MubGVuZ3RoO3crKykoZT1yLnNvdXJjZUxpbmtzW3ddKS5jb25jZW50cmF0aW9uT3V0PWUudmFsdWUvbDt2YXIgdT0wO2Zvcih3PTA7dzxyLnRhcmdldExpbmtzLmxlbmd0aDt3KyspdSs9ci50YXJnZXRMaW5rc1t3XS52YWx1ZTtmb3Iodz0wO3c8ci50YXJnZXRMaW5rcy5sZW5ndGg7dysrKShlPXIudGFyZ2V0TGlua3Nbd10pLmNvbmNlbnJhdGlvbkluPWUudmFsdWUvdX19KCksYS5ub2RlLngubGVuZ3RoJiZhLm5vZGUueS5sZW5ndGgpe2ZvcihfPTA7XzxNYXRoLm1pbihhLm5vZGUueC5sZW5ndGgsYS5ub2RlLnkubGVuZ3RoLGsubm9kZXMubGVuZ3RoKTtfKyspaWYoYS5ub2RlLnhbX10mJmEubm9kZS55W19dKXt2YXIgTD1bYS5ub2RlLnhbX10qbSxhLm5vZGUueVtfXSpnXTtrLm5vZGVzW19dLngwPUxbMF0tZC8yLGsubm9kZXNbX10ueDE9TFswXStkLzI7dmFyIEM9ay5ub2Rlc1tfXS55MS1rLm5vZGVzW19dLnkwO2subm9kZXNbX10ueTA9TFsxXS1DLzIsay5ub2Rlc1tfXS55MT1MWzFdK0MvMn1pZigic25hcCI9PT1hLmFycmFuZ2VtZW50KSFmdW5jdGlvbih0KXt0LmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlLHIsbixpPTAsYT10Lmxlbmd0aDtmb3IodC5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0LnkwLWUueTB9KSksbj0wO248YTsrK24pKGU9dFtuXSkueTA+PWl8fChyPWktZS55MCk+MWUtNiYmKGUueTArPXIsZS55MSs9ciksaT1lLnkxK3B9KSl9KGZ1bmN0aW9uKHQpe3ZhciBlLHIsbj10Lm1hcCgoZnVuY3Rpb24odCxlKXtyZXR1cm57eDA6dC54MCxpbmRleDplfX0pKS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0LngwLWUueDB9KSksaT1bXSxhPS0xLG89LTEvMDtmb3IoXz0wO188bi5sZW5ndGg7XysrKXt2YXIgcz10W25bX10uaW5kZXhdO3MueDA+bytkJiYoYSs9MSxlPXMueDApLG89cy54MCxpW2FdfHwoaVthXT1bXSksaVthXS5wdXNoKHMpLHI9ZS1zLngwLHMueDArPXIscy54MSs9cn1yZXR1cm4gaX0odj1rLm5vZGVzKSk7bi51cGRhdGUoayl9cmV0dXJue2NpcmN1bGFyOmIsa2V5OnIsdHJhY2U6YSxndWlkOmgucmFuZHN0cigpLGhvcml6b250YWw6Zix3aWR0aDptLGhlaWdodDpnLG5vZGVQYWQ6YS5ub2RlLnBhZCxub2RlTGluZUNvbG9yOmEubm9kZS5saW5lLmNvbG9yLG5vZGVMaW5lV2lkdGg6YS5ub2RlLmxpbmUud2lkdGgsbGlua0xpbmVDb2xvcjphLmxpbmsubGluZS5jb2xvcixsaW5rTGluZVdpZHRoOmEubGluay5saW5lLndpZHRoLHZhbHVlRm9ybWF0OmEudmFsdWVmb3JtYXQsdmFsdWVTdWZmaXg6YS52YWx1ZXN1ZmZpeCx0ZXh0Rm9udDphLnRleHRmb250LHRyYW5zbGF0ZVg6dS54WzBdKnQud2lkdGgrdC5tYXJnaW4ubCx0cmFuc2xhdGVZOnQuaGVpZ2h0LXUueVsxXSp0LmhlaWdodCt0Lm1hcmdpbi50LGRyYWdQYXJhbGxlbDpmP2c6bSxkcmFnUGVycGVuZGljdWxhcjpmP206ZyxhcnJhbmdlbWVudDphLmFycmFuZ2VtZW50LHNhbmtleTpuLGdyYXBoOmssZm9yY2VMYXlvdXRzOnt9LGludGVyYWN0aW9uU3RhdGU6e2RyYWdJblByb2dyZXNzOiExLGhvdmVyZWQ6ITF9fX1mdW5jdGlvbiBBKHQsZSxyKXt2YXIgbj1jKGUuY29sb3IpLGk9ZS5zb3VyY2UubGFiZWwrInwiK2UudGFyZ2V0LmxhYmVsKyJfXyIrcjtyZXR1cm4gZS50cmFjZT10LnRyYWNlLGUuY3VydmVOdW1iZXI9dC50cmFjZS5pbmRleCx7Y2lyY3VsYXI6dC5jaXJjdWxhcixrZXk6aSx0cmFjZUlkOnQua2V5LHBvaW50TnVtYmVyOmUucG9pbnROdW1iZXIsbGluazplLHRpbnlDb2xvckh1ZTp1LnRpbnlSR0IobiksdGlueUNvbG9yQWxwaGE6bi5nZXRBbHBoYSgpLGxpbmtQYXRoOk0sbGlua0xpbmVDb2xvcjp0LmxpbmtMaW5lQ29sb3IsbGlua0xpbmVXaWR0aDp0LmxpbmtMaW5lV2lkdGgsdmFsdWVGb3JtYXQ6dC52YWx1ZUZvcm1hdCx2YWx1ZVN1ZmZpeDp0LnZhbHVlU3VmZml4LHNhbmtleTp0LnNhbmtleSxwYXJlbnQ6dCxpbnRlcmFjdGlvblN0YXRlOnQuaW50ZXJhY3Rpb25TdGF0ZSxmbG93OmUuZmxvd319ZnVuY3Rpb24gTSgpe3JldHVybiBmdW5jdGlvbih0KXtpZih0LmxpbmsuY2lyY3VsYXIpcmV0dXJuIGU9dC5saW5rLHI9ZS53aWR0aC8yLG49ZS5jaXJjdWxhclBhdGhEYXRhLCJ0b3AiPT09ZS5jaXJjdWxhckxpbmtUeXBlPyJNICIrbi50YXJnZXRYKyIgIisobi50YXJnZXRZK3IpKyIgTCIrbi5yaWdodElubmVyRXh0ZW50KyIgIisobi50YXJnZXRZK3IpKyJBIisobi5yaWdodExhcmdlQXJjUmFkaXVzK3IpKyIgIisobi5yaWdodFNtYWxsQXJjUmFkaXVzK3IpKyIgMCAwIDEgIisobi5yaWdodEZ1bGxFeHRlbnQtcikrIiAiKyhuLnRhcmdldFktbi5yaWdodFNtYWxsQXJjUmFkaXVzKSsiTCIrKG4ucmlnaHRGdWxsRXh0ZW50LXIpKyIgIituLnZlcnRpY2FsUmlnaHRJbm5lckV4dGVudCsiQSIrKG4ucmlnaHRMYXJnZUFyY1JhZGl1cytyKSsiICIrKG4ucmlnaHRMYXJnZUFyY1JhZGl1cytyKSsiIDAgMCAxICIrbi5yaWdodElubmVyRXh0ZW50KyIgIisobi52ZXJ0aWNhbEZ1bGxFeHRlbnQtcikrIkwiK24ubGVmdElubmVyRXh0ZW50KyIgIisobi52ZXJ0aWNhbEZ1bGxFeHRlbnQtcikrIkEiKyhuLmxlZnRMYXJnZUFyY1JhZGl1cytyKSsiICIrKG4ubGVmdExhcmdlQXJjUmFkaXVzK3IpKyIgMCAwIDEgIisobi5sZWZ0RnVsbEV4dGVudCtyKSsiICIrbi52ZXJ0aWNhbExlZnRJbm5lckV4dGVudCsiTCIrKG4ubGVmdEZ1bGxFeHRlbnQrcikrIiAiKyhuLnNvdXJjZVktbi5sZWZ0U21hbGxBcmNSYWRpdXMpKyJBIisobi5sZWZ0TGFyZ2VBcmNSYWRpdXMrcikrIiAiKyhuLmxlZnRTbWFsbEFyY1JhZGl1cytyKSsiIDAgMCAxICIrbi5sZWZ0SW5uZXJFeHRlbnQrIiAiKyhuLnNvdXJjZVkrcikrIkwiK24uc291cmNlWCsiICIrKG4uc291cmNlWStyKSsiTCIrbi5zb3VyY2VYKyIgIisobi5zb3VyY2VZLXIpKyJMIituLmxlZnRJbm5lckV4dGVudCsiICIrKG4uc291cmNlWS1yKSsiQSIrKG4ubGVmdExhcmdlQXJjUmFkaXVzLXIpKyIgIisobi5sZWZ0U21hbGxBcmNSYWRpdXMtcikrIiAwIDAgMCAiKyhuLmxlZnRGdWxsRXh0ZW50LXIpKyIgIisobi5zb3VyY2VZLW4ubGVmdFNtYWxsQXJjUmFkaXVzKSsiTCIrKG4ubGVmdEZ1bGxFeHRlbnQtcikrIiAiK24udmVydGljYWxMZWZ0SW5uZXJFeHRlbnQrIkEiKyhuLmxlZnRMYXJnZUFyY1JhZGl1cy1yKSsiICIrKG4ubGVmdExhcmdlQXJjUmFkaXVzLXIpKyIgMCAwIDAgIituLmxlZnRJbm5lckV4dGVudCsiICIrKG4udmVydGljYWxGdWxsRXh0ZW50K3IpKyJMIituLnJpZ2h0SW5uZXJFeHRlbnQrIiAiKyhuLnZlcnRpY2FsRnVsbEV4dGVudCtyKSsiQSIrKG4ucmlnaHRMYXJnZUFyY1JhZGl1cy1yKSsiICIrKG4ucmlnaHRMYXJnZUFyY1JhZGl1cy1yKSsiIDAgMCAwICIrKG4ucmlnaHRGdWxsRXh0ZW50K3IpKyIgIituLnZlcnRpY2FsUmlnaHRJbm5lckV4dGVudCsiTCIrKG4ucmlnaHRGdWxsRXh0ZW50K3IpKyIgIisobi50YXJnZXRZLW4ucmlnaHRTbWFsbEFyY1JhZGl1cykrIkEiKyhuLnJpZ2h0TGFyZ2VBcmNSYWRpdXMtcikrIiAiKyhuLnJpZ2h0U21hbGxBcmNSYWRpdXMtcikrIiAwIDAgMCAiK24ucmlnaHRJbm5lckV4dGVudCsiICIrKG4udGFyZ2V0WS1yKSsiTCIrbi50YXJnZXRYKyIgIisobi50YXJnZXRZLXIpKyJaIjoiTSAiK24udGFyZ2V0WCsiICIrKG4udGFyZ2V0WS1yKSsiIEwiK24ucmlnaHRJbm5lckV4dGVudCsiICIrKG4udGFyZ2V0WS1yKSsiQSIrKG4ucmlnaHRMYXJnZUFyY1JhZGl1cytyKSsiICIrKG4ucmlnaHRTbWFsbEFyY1JhZGl1cytyKSsiIDAgMCAwICIrKG4ucmlnaHRGdWxsRXh0ZW50LXIpKyIgIisobi50YXJnZXRZK24ucmlnaHRTbWFsbEFyY1JhZGl1cykrIkwiKyhuLnJpZ2h0RnVsbEV4dGVudC1yKSsiICIrbi52ZXJ0aWNhbFJpZ2h0SW5uZXJFeHRlbnQrIkEiKyhuLnJpZ2h0TGFyZ2VBcmNSYWRpdXMrcikrIiAiKyhuLnJpZ2h0TGFyZ2VBcmNSYWRpdXMrcikrIiAwIDAgMCAiK24ucmlnaHRJbm5lckV4dGVudCsiICIrKG4udmVydGljYWxGdWxsRXh0ZW50K3IpKyJMIituLmxlZnRJbm5lckV4dGVudCsiICIrKG4udmVydGljYWxGdWxsRXh0ZW50K3IpKyJBIisobi5sZWZ0TGFyZ2VBcmNSYWRpdXMrcikrIiAiKyhuLmxlZnRMYXJnZUFyY1JhZGl1cytyKSsiIDAgMCAwICIrKG4ubGVmdEZ1bGxFeHRlbnQrcikrIiAiK24udmVydGljYWxMZWZ0SW5uZXJFeHRlbnQrIkwiKyhuLmxlZnRGdWxsRXh0ZW50K3IpKyIgIisobi5zb3VyY2VZK24ubGVmdFNtYWxsQXJjUmFkaXVzKSsiQSIrKG4ubGVmdExhcmdlQXJjUmFkaXVzK3IpKyIgIisobi5sZWZ0U21hbGxBcmNSYWRpdXMrcikrIiAwIDAgMCAiK24ubGVmdElubmVyRXh0ZW50KyIgIisobi5zb3VyY2VZLXIpKyJMIituLnNvdXJjZVgrIiAiKyhuLnNvdXJjZVktcikrIkwiK24uc291cmNlWCsiICIrKG4uc291cmNlWStyKSsiTCIrbi5sZWZ0SW5uZXJFeHRlbnQrIiAiKyhuLnNvdXJjZVkrcikrIkEiKyhuLmxlZnRMYXJnZUFyY1JhZGl1cy1yKSsiICIrKG4ubGVmdFNtYWxsQXJjUmFkaXVzLXIpKyIgMCAwIDEgIisobi5sZWZ0RnVsbEV4dGVudC1yKSsiICIrKG4uc291cmNlWStuLmxlZnRTbWFsbEFyY1JhZGl1cykrIkwiKyhuLmxlZnRGdWxsRXh0ZW50LXIpKyIgIituLnZlcnRpY2FsTGVmdElubmVyRXh0ZW50KyJBIisobi5sZWZ0TGFyZ2VBcmNSYWRpdXMtcikrIiAiKyhuLmxlZnRMYXJnZUFyY1JhZGl1cy1yKSsiIDAgMCAxICIrbi5sZWZ0SW5uZXJFeHRlbnQrIiAiKyhuLnZlcnRpY2FsRnVsbEV4dGVudC1yKSsiTCIrbi5yaWdodElubmVyRXh0ZW50KyIgIisobi52ZXJ0aWNhbEZ1bGxFeHRlbnQtcikrIkEiKyhuLnJpZ2h0TGFyZ2VBcmNSYWRpdXMtcikrIiAiKyhuLnJpZ2h0TGFyZ2VBcmNSYWRpdXMtcikrIiAwIDAgMSAiKyhuLnJpZ2h0RnVsbEV4dGVudCtyKSsiICIrbi52ZXJ0aWNhbFJpZ2h0SW5uZXJFeHRlbnQrIkwiKyhuLnJpZ2h0RnVsbEV4dGVudCtyKSsiICIrKG4udGFyZ2V0WStuLnJpZ2h0U21hbGxBcmNSYWRpdXMpKyJBIisobi5yaWdodExhcmdlQXJjUmFkaXVzLXIpKyIgIisobi5yaWdodFNtYWxsQXJjUmFkaXVzLXIpKyIgMCAwIDEgIituLnJpZ2h0SW5uZXJFeHRlbnQrIiAiKyhuLnRhcmdldFkrcikrIkwiK24udGFyZ2V0WCsiICIrKG4udGFyZ2V0WStyKSsiWiI7dmFyIGUscixuLGE9dC5saW5rLnNvdXJjZS54MSxvPXQubGluay50YXJnZXQueDAscz1pKGEsbyksbD1zKC41KSxjPXMoLjUpLHU9dC5saW5rLnkwLXQubGluay53aWR0aC8yLGY9dC5saW5rLnkwK3QubGluay53aWR0aC8yLGg9dC5saW5rLnkxLXQubGluay53aWR0aC8yLHA9dC5saW5rLnkxK3QubGluay53aWR0aC8yO3JldHVybiJNIithKyIsIit1KyJDIitsKyIsIit1KyIgIitjKyIsIitoKyIgIitvKyIsIitoKyJMIitvKyIsIitwKyJDIitjKyIsIitwKyIgIitsKyIsIitmKyIgIithKyIsIitmKyJaIn19ZnVuY3Rpb24gUyh0LGUpe3ZhciByPWMoZS5jb2xvciksbj1sLm5vZGVQYWRBY3Jvc3MsaT10Lm5vZGVQYWQvMjtlLmR4PWUueDEtZS54MCxlLmR5PWUueTEtZS55MDt2YXIgYT1lLmR4LG89TWF0aC5tYXgoLjUsZS5keSkscz0ibm9kZV8iK2UucG9pbnROdW1iZXI7cmV0dXJuIGUuZ3JvdXAmJihzPWgucmFuZHN0cigpKSxlLnRyYWNlPXQudHJhY2UsZS5jdXJ2ZU51bWJlcj10LnRyYWNlLmluZGV4LHtpbmRleDplLnBvaW50TnVtYmVyLGtleTpzLHBhcnRPZkdyb3VwOmUucGFydE9mR3JvdXB8fCExLGdyb3VwOmUuZ3JvdXAsdHJhY2VJZDp0LmtleSx0cmFjZTp0LnRyYWNlLG5vZGU6ZSxub2RlUGFkOnQubm9kZVBhZCxub2RlTGluZUNvbG9yOnQubm9kZUxpbmVDb2xvcixub2RlTGluZVdpZHRoOnQubm9kZUxpbmVXaWR0aCx0ZXh0Rm9udDp0LnRleHRGb250LHNpemU6dC5ob3Jpem9udGFsP3QuaGVpZ2h0OnQud2lkdGgsdmlzaWJsZVdpZHRoOk1hdGguY2VpbChhKSx2aXNpYmxlSGVpZ2h0Om8sem9uZVg6LW4sem9uZVk6LWksem9uZVdpZHRoOmErMipuLHpvbmVIZWlnaHQ6bysyKmksbGFiZWxZOnQuaG9yaXpvbnRhbD9lLmR5LzIrMTplLmR4LzIrMSxsZWZ0OjE9PT1lLm9yaWdpbmFsTGF5ZXIsc2l6ZUFjcm9zczp0LndpZHRoLGZvcmNlTGF5b3V0czp0LmZvcmNlTGF5b3V0cyxob3Jpem9udGFsOnQuaG9yaXpvbnRhbCxkYXJrQmFja2dyb3VuZDpyLmdldEJyaWdodG5lc3MoKTw9MTI4LHRpbnlDb2xvckh1ZTp1LnRpbnlSR0IociksdGlueUNvbG9yQWxwaGE6ci5nZXRBbHBoYSgpLHZhbHVlRm9ybWF0OnQudmFsdWVGb3JtYXQsdmFsdWVTdWZmaXg6dC52YWx1ZVN1ZmZpeCxzYW5rZXk6dC5zYW5rZXksZ3JhcGg6dC5ncmFwaCxhcnJhbmdlbWVudDp0LmFycmFuZ2VtZW50LHVuaXF1ZU5vZGVMYWJlbFBhdGhJZDpbdC5ndWlkLHQua2V5LHNdLmpvaW4oIl8iKSxpbnRlcmFjdGlvblN0YXRlOnQuaW50ZXJhY3Rpb25TdGF0ZSxmaWd1cmU6dH19ZnVuY3Rpb24gRSh0KXt0LmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQpe3JldHVybiBwKHQubm9kZS54MC50b0ZpeGVkKDMpLHQubm9kZS55MC50b0ZpeGVkKDMpKX0pKX1mdW5jdGlvbiBMKHQpe3QuY2FsbChFKX1mdW5jdGlvbiBDKHQsZSl7dC5jYWxsKEwpLGUuYXR0cigiZCIsTSgpKX1mdW5jdGlvbiBQKHQpe3QuYXR0cigid2lkdGgiLChmdW5jdGlvbih0KXtyZXR1cm4gdC5ub2RlLngxLXQubm9kZS54MH0pKS5hdHRyKCJoZWlnaHQiLChmdW5jdGlvbih0KXtyZXR1cm4gdC52aXNpYmxlSGVpZ2h0fSkpfWZ1bmN0aW9uIEkodCl7cmV0dXJuIHQubGluay53aWR0aD4xfHx0LmxpbmtMaW5lV2lkdGg+MH1mdW5jdGlvbiBPKHQpe3JldHVybiBwKHQudHJhbnNsYXRlWCx0LnRyYW5zbGF0ZVkpKyh0Lmhvcml6b250YWw/Im1hdHJpeCgxIDAgMCAxIDAgMCkiOiJtYXRyaXgoMCAxIDEgMCAwIDApIil9ZnVuY3Rpb24geih0LGUscil7dC5vbigiLmJhc2ljIixudWxsKS5vbigibW91c2VvdmVyLmJhc2ljIiwoZnVuY3Rpb24odCl7dC5pbnRlcmFjdGlvblN0YXRlLmRyYWdJblByb2dyZXNzfHx0LnBhcnRPZkdyb3VwfHwoci5ob3Zlcih0aGlzLHQsZSksdC5pbnRlcmFjdGlvblN0YXRlLmhvdmVyZWQ9W3RoaXMsdF0pfSkpLm9uKCJtb3VzZW1vdmUuYmFzaWMiLChmdW5jdGlvbih0KXt0LmludGVyYWN0aW9uU3RhdGUuZHJhZ0luUHJvZ3Jlc3N8fHQucGFydE9mR3JvdXB8fChyLmZvbGxvdyh0aGlzLHQpLHQuaW50ZXJhY3Rpb25TdGF0ZS5ob3ZlcmVkPVt0aGlzLHRdKX0pKS5vbigibW91c2VvdXQuYmFzaWMiLChmdW5jdGlvbih0KXt0LmludGVyYWN0aW9uU3RhdGUuZHJhZ0luUHJvZ3Jlc3N8fHQucGFydE9mR3JvdXB8fChyLnVuaG92ZXIodGhpcyx0LGUpLHQuaW50ZXJhY3Rpb25TdGF0ZS5ob3ZlcmVkPSExKX0pKS5vbigiY2xpY2suYmFzaWMiLChmdW5jdGlvbih0KXt0LmludGVyYWN0aW9uU3RhdGUuaG92ZXJlZCYmKHIudW5ob3Zlcih0aGlzLHQsZSksdC5pbnRlcmFjdGlvblN0YXRlLmhvdmVyZWQ9ITEpLHQuaW50ZXJhY3Rpb25TdGF0ZS5kcmFnSW5Qcm9ncmVzc3x8dC5wYXJ0T2ZHcm91cHx8ci5zZWxlY3QodGhpcyx0LGUpfSkpfWZ1bmN0aW9uIEQodCxlLHIsaSl7dmFyIG89YS5iZWhhdmlvci5kcmFnKCkub3JpZ2luKChmdW5jdGlvbih0KXtyZXR1cm57eDp0Lm5vZGUueDArdC52aXNpYmxlV2lkdGgvMix5OnQubm9kZS55MCt0LnZpc2libGVIZWlnaHQvMn19KSkub24oImRyYWdzdGFydCIsKGZ1bmN0aW9uKGEpe2lmKCJmaXhlZCIhPT1hLmFycmFuZ2VtZW50JiYoaC5lbnN1cmVTaW5nbGUoaS5fZnVsbExheW91dC5faW5mb2xheWVyLCJnIiwiZHJhZ2NvdmVyIiwoZnVuY3Rpb24odCl7aS5fZnVsbExheW91dC5fZHJhZ0NvdmVyPXR9KSksaC5yYWlzZVRvVG9wKHRoaXMpLGEuaW50ZXJhY3Rpb25TdGF0ZS5kcmFnSW5Qcm9ncmVzcz1hLm5vZGUsRihhLm5vZGUpLGEuaW50ZXJhY3Rpb25TdGF0ZS5ob3ZlcmVkJiYoci5ub2RlRXZlbnRzLnVuaG92ZXIuYXBwbHkoMCxhLmludGVyYWN0aW9uU3RhdGUuaG92ZXJlZCksYS5pbnRlcmFjdGlvblN0YXRlLmhvdmVyZWQ9ITEpLCJzbmFwIj09PWEuYXJyYW5nZW1lbnQpKXt2YXIgbz1hLnRyYWNlSWQrInwiK2Eua2V5O2EuZm9yY2VMYXlvdXRzW29dP2EuZm9yY2VMYXlvdXRzW29dLmFscGhhKDEpOmZ1bmN0aW9uKHQsZSxyLGkpeyFmdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPHQubGVuZ3RoO2UrKyl0W2VdLnk9KHRbZV0ueTArdFtlXS55MSkvMix0W2VdLng9KHRbZV0ueDArdFtlXS54MSkvMn0oci5ncmFwaC5ub2Rlcyk7dmFyIGE9ci5ncmFwaC5ub2Rlcy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm9yaWdpbmFsWD09PXIubm9kZS5vcmlnaW5hbFh9KSkuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4hdC5wYXJ0T2ZHcm91cH0pKTtyLmZvcmNlTGF5b3V0c1tlXT1uLmZvcmNlU2ltdWxhdGlvbihhKS5hbHBoYURlY2F5KDApLmZvcmNlKCJjb2xsaWRlIixuLmZvcmNlQ29sbGlkZSgpLnJhZGl1cygoZnVuY3Rpb24odCl7cmV0dXJuIHQuZHkvMityLm5vZGVQYWQvMn0pKS5zdHJlbmd0aCgxKS5pdGVyYXRpb25zKGwuZm9yY2VJdGVyYXRpb25zKSkuZm9yY2UoImNvbnN0cmFpbiIsZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciB0PTAsaT0wO2k8ci5sZW5ndGg7aSsrKXt2YXIgYT1yW2ldO2E9PT1uLmludGVyYWN0aW9uU3RhdGUuZHJhZ0luUHJvZ3Jlc3M/KGEueD1hLmxhc3REcmFnZ2VkWCxhLnk9YS5sYXN0RHJhZ2dlZFkpOihhLnZ4PShhLm9yaWdpbmFsWC1hLngpL2wuZm9yY2VUaWNrc1BlckZyYW1lLGEueT1NYXRoLm1pbihuLnNpemUtYS5keS8yLE1hdGgubWF4KGEuZHkvMixhLnkpKSksdD1NYXRoLm1heCh0LE1hdGguYWJzKGEudngpLE1hdGguYWJzKGEudnkpKX0hbi5pbnRlcmFjdGlvblN0YXRlLmRyYWdJblByb2dyZXNzJiZ0PC4xJiZuLmZvcmNlTGF5b3V0c1tlXS5hbHBoYSgpPjAmJm4uZm9yY2VMYXlvdXRzW2VdLmFscGhhKDApfX0oMCxlLGEscikpLnN0b3AoKX0oMCxvLGEpLGZ1bmN0aW9uKHQsZSxyLG4saSl7d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoZnVuY3Rpb24gYSgpe3ZhciBvO2ZvcihvPTA7bzxsLmZvcmNlVGlja3NQZXJGcmFtZTtvKyspci5mb3JjZUxheW91dHNbbl0udGljaygpO2lmKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXRbZV0ueTA9dFtlXS55LXRbZV0uZHkvMix0W2VdLnkxPXRbZV0ueTArdFtlXS5keSx0W2VdLngwPXRbZV0ueC10W2VdLmR4LzIsdFtlXS54MT10W2VdLngwK3RbZV0uZHh9KHIuZ3JhcGgubm9kZXMpLHIuc2Fua2V5LnVwZGF0ZShyLmdyYXBoKSxDKHQuZmlsdGVyKEIocikpLGUpLHIuZm9yY2VMYXlvdXRzW25dLmFscGhhKCk+MCl3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGEpO2Vsc2V7dmFyIHM9ci5ub2RlLm9yaWdpbmFsWDtyLm5vZGUueDA9cy1yLnZpc2libGVXaWR0aC8yLHIubm9kZS54MT1zK3IudmlzaWJsZVdpZHRoLzIsUihyLGkpfX0pKX0odCxlLGEsbyxpKX19KSkub24oImRyYWciLChmdW5jdGlvbihyKXtpZigiZml4ZWQiIT09ci5hcnJhbmdlbWVudCl7dmFyIG49YS5ldmVudC54LGk9YS5ldmVudC55OyJzbmFwIj09PXIuYXJyYW5nZW1lbnQ/KHIubm9kZS54MD1uLXIudmlzaWJsZVdpZHRoLzIsci5ub2RlLngxPW4rci52aXNpYmxlV2lkdGgvMixyLm5vZGUueTA9aS1yLnZpc2libGVIZWlnaHQvMixyLm5vZGUueTE9aStyLnZpc2libGVIZWlnaHQvMik6KCJmcmVlZm9ybSI9PT1yLmFycmFuZ2VtZW50JiYoci5ub2RlLngwPW4tci52aXNpYmxlV2lkdGgvMixyLm5vZGUueDE9bityLnZpc2libGVXaWR0aC8yKSxpPU1hdGgubWF4KDAsTWF0aC5taW4oci5zaXplLXIudmlzaWJsZUhlaWdodC8yLGkpKSxyLm5vZGUueTA9aS1yLnZpc2libGVIZWlnaHQvMixyLm5vZGUueTE9aStyLnZpc2libGVIZWlnaHQvMiksRihyLm5vZGUpLCJzbmFwIiE9PXIuYXJyYW5nZW1lbnQmJihyLnNhbmtleS51cGRhdGUoci5ncmFwaCksQyh0LmZpbHRlcihCKHIpKSxlKSl9fSkpLm9uKCJkcmFnZW5kIiwoZnVuY3Rpb24odCl7aWYoImZpeGVkIiE9PXQuYXJyYW5nZW1lbnQpe3QuaW50ZXJhY3Rpb25TdGF0ZS5kcmFnSW5Qcm9ncmVzcz0hMTtmb3IodmFyIGU9MDtlPHQubm9kZS5jaGlsZHJlbk5vZGVzLmxlbmd0aDtlKyspdC5ub2RlLmNoaWxkcmVuTm9kZXNbZV0ueD10Lm5vZGUueCx0Lm5vZGUuY2hpbGRyZW5Ob2Rlc1tlXS55PXQubm9kZS55OyJzbmFwIiE9PXQuYXJyYW5nZW1lbnQmJlIodCxpKX19KSk7dC5vbigiLmRyYWciLG51bGwpLmNhbGwobyl9ZnVuY3Rpb24gUih0LGUpe2Zvcih2YXIgcj1bXSxuPVtdLGk9MDtpPHQuZ3JhcGgubm9kZXMubGVuZ3RoO2krKyl7dmFyIGE9KHQuZ3JhcGgubm9kZXNbaV0ueDArdC5ncmFwaC5ub2Rlc1tpXS54MSkvMixvPSh0LmdyYXBoLm5vZGVzW2ldLnkwK3QuZ3JhcGgubm9kZXNbaV0ueTEpLzI7ci5wdXNoKGEvdC5maWd1cmUud2lkdGgpLG4ucHVzaChvL3QuZmlndXJlLmhlaWdodCl9Yi5jYWxsKCJfZ3VpUmVzdHlsZSIsZSx7Im5vZGUueCI6W3JdLCJub2RlLnkiOltuXX0sdC50cmFjZS5pbmRleCkudGhlbigoZnVuY3Rpb24oKXtlLl9mdWxsTGF5b3V0Ll9kcmFnQ292ZXImJmUuX2Z1bGxMYXlvdXQuX2RyYWdDb3Zlci5yZW1vdmUoKX0pKX1mdW5jdGlvbiBGKHQpe3QubGFzdERyYWdnZWRYPXQueDArdC5keC8yLHQubGFzdERyYWdnZWRZPXQueTArdC5keS8yfWZ1bmN0aW9uIEIodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBlLm5vZGUub3JpZ2luYWxYPT09dC5ub2RlLm9yaWdpbmFsWH19ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIG89ITE7aC5lbnN1cmVTaW5nbGUodC5fZnVsbExheW91dC5faW5mb2xheWVyLCJnIiwiZmlyc3QtcmVuZGVyIiwoZnVuY3Rpb24oKXtvPSEwfSkpO3ZhciBzPXQuX2Z1bGxMYXlvdXQuX2RyYWdDb3ZlcixtPXIuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4geSh0KS50cmFjZS52aXNpYmxlfSkpLm1hcChrLmJpbmQobnVsbCxuKSksYj1lLnNlbGVjdEFsbCgiLiIrbC5jbi5zYW5rZXkpLmRhdGEobSxnKTtiLmV4aXQoKS5yZW1vdmUoKSxiLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChsLmNuLnNhbmtleSwhMCkuc3R5bGUoImJveC1zaXppbmciLCJjb250ZW50LWJveCIpLnN0eWxlKCJwb3NpdGlvbiIsImFic29sdXRlIikuc3R5bGUoImxlZnQiLDApLnN0eWxlKCJzaGFwZS1yZW5kZXJpbmciLCJnZW9tZXRyaWNQcmVjaXNpb24iKS5zdHlsZSgicG9pbnRlci1ldmVudHMiLCJhdXRvIikuYXR0cigidHJhbnNmb3JtIixPKSxiLmVhY2goKGZ1bmN0aW9uKGUscil7dC5fZnVsbERhdGFbcl0uX3NhbmtleT1lO3ZhciBuPSJiZ3NhbmtleS0iK2UudHJhY2UudWlkKyItIityO2guZW5zdXJlU2luZ2xlKHQuX2Z1bGxMYXlvdXQuX2RyYWdnZXJzLCJyZWN0IixuKSx0Ll9mdWxsRGF0YVtyXS5fYmdSZWN0PWEuc2VsZWN0KCIuIituKSx0Ll9mdWxsRGF0YVtyXS5fYmdSZWN0LnN0eWxlKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpLmF0dHIoIndpZHRoIixlLndpZHRoKS5hdHRyKCJoZWlnaHQiLGUuaGVpZ2h0KS5hdHRyKCJ4IixlLnRyYW5zbGF0ZVgpLmF0dHIoInkiLGUudHJhbnNsYXRlWSkuY2xhc3NlZCgiYmdzYW5rZXkiLCEwKS5zdHlsZSh7ZmlsbDoidHJhbnNwYXJlbnQiLCJzdHJva2Utd2lkdGgiOjB9KX0pKSxiLnRyYW5zaXRpb24oKS5lYXNlKGwuZWFzZSkuZHVyYXRpb24obC5kdXJhdGlvbikuYXR0cigidHJhbnNmb3JtIixPKTt2YXIgXz1iLnNlbGVjdEFsbCgiLiIrbC5jbi5zYW5rZXlMaW5rcykuZGF0YSh2LGcpO18uZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKGwuY24uc2Fua2V5TGlua3MsITApLnN0eWxlKCJmaWxsIiwibm9uZSIpO3ZhciBMPV8uc2VsZWN0QWxsKCIuIitsLmNuLnNhbmtleUxpbmspLmRhdGEoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdyYXBoLmxpbmtzLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQudmFsdWV9KSkubWFwKEEuYmluZChudWxsLHQpKX0pLGcpO0wuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKGwuY24uc2Fua2V5TGluaywhMCkuY2FsbCh6LGIsaS5saW5rRXZlbnRzKSxMLnN0eWxlKCJzdHJva2UiLChmdW5jdGlvbih0KXtyZXR1cm4gSSh0KT91LnRpbnlSR0IoYyh0LmxpbmtMaW5lQ29sb3IpKTp0LnRpbnlDb2xvckh1ZX0pKS5zdHlsZSgic3Ryb2tlLW9wYWNpdHkiLChmdW5jdGlvbih0KXtyZXR1cm4gSSh0KT91Lm9wYWNpdHkodC5saW5rTGluZUNvbG9yKTp0LnRpbnlDb2xvckFscGhhfSkpLnN0eWxlKCJmaWxsIiwoZnVuY3Rpb24odCl7cmV0dXJuIHQudGlueUNvbG9ySHVlfSkpLnN0eWxlKCJmaWxsLW9wYWNpdHkiLChmdW5jdGlvbih0KXtyZXR1cm4gdC50aW55Q29sb3JBbHBoYX0pKS5zdHlsZSgic3Ryb2tlLXdpZHRoIiwoZnVuY3Rpb24odCl7cmV0dXJuIEkodCk/dC5saW5rTGluZVdpZHRoOjF9KSkuYXR0cigiZCIsTSgpKSxMLnN0eWxlKCJvcGFjaXR5IiwoZnVuY3Rpb24oKXtyZXR1cm4gdC5fY29udGV4dC5zdGF0aWNQbG90fHxvfHxzPzE6MH0pKS50cmFuc2l0aW9uKCkuZWFzZShsLmVhc2UpLmR1cmF0aW9uKGwuZHVyYXRpb24pLnN0eWxlKCJvcGFjaXR5IiwxKSxMLmV4aXQoKS50cmFuc2l0aW9uKCkuZWFzZShsLmVhc2UpLmR1cmF0aW9uKGwuZHVyYXRpb24pLnN0eWxlKCJvcGFjaXR5IiwwKS5yZW1vdmUoKTt2YXIgQz1iLnNlbGVjdEFsbCgiLiIrbC5jbi5zYW5rZXlOb2RlU2V0KS5kYXRhKHYsZyk7Qy5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQobC5jbi5zYW5rZXlOb2RlU2V0LCEwKSxDLnN0eWxlKCJjdXJzb3IiLChmdW5jdGlvbih0KXtzd2l0Y2godC5hcnJhbmdlbWVudCl7Y2FzZSJmaXhlZCI6cmV0dXJuImRlZmF1bHQiO2Nhc2UicGVycGVuZGljdWxhciI6cmV0dXJuIm5zLXJlc2l6ZSI7ZGVmYXVsdDpyZXR1cm4ibW92ZSJ9fSkpO3ZhciBSPUMuc2VsZWN0QWxsKCIuIitsLmNuLnNhbmtleU5vZGUpLmRhdGEoKGZ1bmN0aW9uKHQpe3ZhciBlPXQuZ3JhcGgubm9kZXM7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBlLHI9W107Zm9yKGU9MDtlPHQubGVuZ3RoO2UrKyl0W2VdLm9yaWdpbmFsWD0odFtlXS54MCt0W2VdLngxKS8yLHRbZV0ub3JpZ2luYWxZPSh0W2VdLnkwK3RbZV0ueTEpLzIsLTE9PT1yLmluZGV4T2YodFtlXS5vcmlnaW5hbFgpJiZyLnB1c2godFtlXS5vcmlnaW5hbFgpO2ZvcihyLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQtZX0pKSxlPTA7ZTx0Lmxlbmd0aDtlKyspdFtlXS5vcmlnaW5hbExheWVySW5kZXg9ci5pbmRleE9mKHRbZV0ub3JpZ2luYWxYKSx0W2VdLm9yaWdpbmFsTGF5ZXI9dFtlXS5vcmlnaW5hbExheWVySW5kZXgvKHIubGVuZ3RoLTEpfShlKSxlLm1hcChTLmJpbmQobnVsbCx0KSl9KSxnKTtSLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChsLmNuLnNhbmtleU5vZGUsITApLmNhbGwoRSkuc3R5bGUoIm9wYWNpdHkiLChmdW5jdGlvbihlKXtyZXR1cm4hdC5fY29udGV4dC5zdGF0aWNQbG90JiYhb3x8ZS5wYXJ0T2ZHcm91cD8wOjF9KSksUi5jYWxsKHosYixpLm5vZGVFdmVudHMpLmNhbGwoRCxMLGksdCksUi50cmFuc2l0aW9uKCkuZWFzZShsLmVhc2UpLmR1cmF0aW9uKGwuZHVyYXRpb24pLmNhbGwoRSkuc3R5bGUoIm9wYWNpdHkiLChmdW5jdGlvbih0KXtyZXR1cm4gdC5wYXJ0T2ZHcm91cD8wOjF9KSksUi5leGl0KCkudHJhbnNpdGlvbigpLmVhc2UobC5lYXNlKS5kdXJhdGlvbihsLmR1cmF0aW9uKS5zdHlsZSgib3BhY2l0eSIsMCkucmVtb3ZlKCk7dmFyIEY9Ui5zZWxlY3RBbGwoIi4iK2wuY24ubm9kZVJlY3QpLmRhdGEodik7Ri5lbnRlcigpLmFwcGVuZCgicmVjdCIpLmNsYXNzZWQobC5jbi5ub2RlUmVjdCwhMCkuY2FsbChQKSxGLnN0eWxlKCJzdHJva2Utd2lkdGgiLChmdW5jdGlvbih0KXtyZXR1cm4gdC5ub2RlTGluZVdpZHRofSkpLnN0eWxlKCJzdHJva2UiLChmdW5jdGlvbih0KXtyZXR1cm4gdS50aW55UkdCKGModC5ub2RlTGluZUNvbG9yKSl9KSkuc3R5bGUoInN0cm9rZS1vcGFjaXR5IiwoZnVuY3Rpb24odCl7cmV0dXJuIHUub3BhY2l0eSh0Lm5vZGVMaW5lQ29sb3IpfSkpLnN0eWxlKCJmaWxsIiwoZnVuY3Rpb24odCl7cmV0dXJuIHQudGlueUNvbG9ySHVlfSkpLnN0eWxlKCJmaWxsLW9wYWNpdHkiLChmdW5jdGlvbih0KXtyZXR1cm4gdC50aW55Q29sb3JBbHBoYX0pKSxGLnRyYW5zaXRpb24oKS5lYXNlKGwuZWFzZSkuZHVyYXRpb24obC5kdXJhdGlvbikuY2FsbChQKTt2YXIgQj1SLnNlbGVjdEFsbCgiLiIrbC5jbi5ub2RlTGFiZWwpLmRhdGEodik7Qi5lbnRlcigpLmFwcGVuZCgidGV4dCIpLmNsYXNzZWQobC5jbi5ub2RlTGFiZWwsITApLnN0eWxlKCJjdXJzb3IiLCJkZWZhdWx0IiksQi5hdHRyKCJkYXRhLW5vdGV4IiwxKS50ZXh0KChmdW5jdGlvbih0KXtyZXR1cm4gdC5ub2RlLmxhYmVsfSkpLmVhY2goKGZ1bmN0aW9uKGUpe3ZhciByPWEuc2VsZWN0KHRoaXMpO2YuZm9udChyLGUudGV4dEZvbnQpLHguY29udmVydFRvVHNwYW5zKHIsdCl9KSkuc3R5bGUoInRleHQtc2hhZG93Iix4Lm1ha2VUZXh0U2hhZG93KHQuX2Z1bGxMYXlvdXQucGFwZXJfYmdjb2xvcikpLmF0dHIoInRleHQtYW5jaG9yIiwoZnVuY3Rpb24odCl7cmV0dXJuIHQuaG9yaXpvbnRhbCYmdC5sZWZ0PyJlbmQiOiJzdGFydCJ9KSkuYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24odCl7dmFyIGU9YS5zZWxlY3QodGhpcykscj14LmxpbmVDb3VudChlKSxuPXQudGV4dEZvbnQuc2l6ZSooKHItMSkqVC13KSxpPXQubm9kZUxpbmVXaWR0aC8yKzMsbz0oKHQuaG9yaXpvbnRhbD90LnZpc2libGVIZWlnaHQ6dC52aXNpYmxlV2lkdGgpLW4pLzI7dC5ob3Jpem9udGFsJiYodC5sZWZ0P2k9LWk6aSs9dC52aXNpYmxlV2lkdGgpO3ZhciBzPXQuaG9yaXpvbnRhbD8iIjoic2NhbGUoLTEsMSkiK2QoOTApO3JldHVybiBwKHQuaG9yaXpvbnRhbD9pOm8sdC5ob3Jpem9udGFsP286aSkrc30pKSxCLnRyYW5zaXRpb24oKS5lYXNlKGwuZWFzZSkuZHVyYXRpb24obC5kdXJhdGlvbil9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjM2NywiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjozODksIi4uLy4uL2NvbnN0YW50cy9hbGlnbm1lbnQiOjQ4MywiLi4vLi4vbGliIjo1MTUsIi4uLy4uL2xpYi9ndXAiOjUxMiwiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIjo1NDEsIi4uLy4uL3JlZ2lzdHJ5Ijo2NDcsIi4vY29uc3RhbnRzIjo5MjksIkBwbG90bHkvZDMiOjU4LCJAcGxvdGx5L2QzLXNhbmtleSI6NTcsIkBwbG90bHkvZDMtc2Fua2V5LWNpcmN1bGFyIjo1NiwiZDMtZm9yY2UiOjExMSwiZDMtaW50ZXJwb2xhdGUiOjExNix0aW55Y29sb3IyOjMxM31dLDkzNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9W10sbj10LmNkWzBdLnRyYWNlLGk9bi5fc2Fua2V5LmdyYXBoLm5vZGVzLGE9MDthPGkubGVuZ3RoO2ErKyl7dmFyIG89aVthXTtpZighby5wYXJ0T2ZHcm91cCl7dmFyIHM9WyhvLngwK28ueDEpLzIsKG8ueTArby55MSkvMl07InYiPT09bi5vcmllbnRhdGlvbiYmcy5yZXZlcnNlKCksZSYmZS5jb250YWlucyhzLCExLGEsdCkmJnIucHVzaCh7cG9pbnROdW1iZXI6by5wb2ludE51bWJlcn0pfX1yZXR1cm4gcn19LHt9XSw5MzU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspdFtyXS5pPXI7bi5tZXJnZUFycmF5KGUudGV4dCx0LCJ0eCIpLG4ubWVyZ2VBcnJheShlLnRleHR0ZW1wbGF0ZSx0LCJ0eHQiKSxuLm1lcmdlQXJyYXkoZS5ob3ZlcnRleHQsdCwiaHR4Iiksbi5tZXJnZUFycmF5KGUuY3VzdG9tZGF0YSx0LCJkYXRhIiksbi5tZXJnZUFycmF5KGUudGV4dHBvc2l0aW9uLHQsInRwIiksZS50ZXh0Zm9udCYmKG4ubWVyZ2VBcnJheUNhc3RQb3NpdGl2ZShlLnRleHRmb250LnNpemUsdCwidHMiKSxuLm1lcmdlQXJyYXkoZS50ZXh0Zm9udC5jb2xvcix0LCJ0YyIpLG4ubWVyZ2VBcnJheShlLnRleHRmb250LmZhbWlseSx0LCJ0ZiIpKTt2YXIgaT1lLm1hcmtlcjtpZihpKXtuLm1lcmdlQXJyYXlDYXN0UG9zaXRpdmUoaS5zaXplLHQsIm1zIiksbi5tZXJnZUFycmF5Q2FzdFBvc2l0aXZlKGkub3BhY2l0eSx0LCJtbyIpLG4ubWVyZ2VBcnJheShpLnN5bWJvbCx0LCJteCIpLG4ubWVyZ2VBcnJheShpLmNvbG9yLHQsIm1jIik7dmFyIGE9aS5saW5lO2kubGluZSYmKG4ubWVyZ2VBcnJheShhLmNvbG9yLHQsIm1sYyIpLG4ubWVyZ2VBcnJheUNhc3RQb3NpdGl2ZShhLndpZHRoLHQsIm1sdyIpKTt2YXIgbz1pLmdyYWRpZW50O28mJiJub25lIiE9PW8udHlwZSYmKG4ubWVyZ2VBcnJheShvLnR5cGUsdCwibWd0Iiksbi5tZXJnZUFycmF5KG8uY29sb3IsdCwibWdjIikpfX19LHsiLi4vLi4vbGliIjo1MTV9XSw5MzY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfZm9ybWF0X2F0dHJpYnV0ZXMiKS5heGlzSG92ZXJGb3JtYXQsaT10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikudGV4dHRlbXBsYXRlQXR0cnMsYT10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikuaG92ZXJ0ZW1wbGF0ZUF0dHJzLG89dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiKSxzPXQoIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyIpLGw9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nL2F0dHJpYnV0ZXMiKS5kYXNoLGM9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nL2F0dHJpYnV0ZXMiKS5wYXR0ZXJuLHU9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIiksZj10KCIuL2NvbnN0YW50cyIpLGg9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQ7ZS5leHBvcnRzPXt4Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyIsYW5pbTohMH0seDA6e3ZhbFR5cGU6ImFueSIsZGZsdDowLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIixhbmltOiEwfSxkeDp7dmFsVHlwZToibnVtYmVyIixkZmx0OjEsZWRpdFR5cGU6ImNhbGMiLGFuaW06ITB9LHk6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIixhbmltOiEwfSx5MDp7dmFsVHlwZToiYW55IixkZmx0OjAsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMiLGFuaW06ITB9LGR5Ont2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MSxlZGl0VHlwZToiY2FsYyIsYW5pbTohMH0seHBlcmlvZDp7dmFsVHlwZToiYW55IixkZmx0OjAsZWRpdFR5cGU6ImNhbGMifSx5cGVyaW9kOnt2YWxUeXBlOiJhbnkiLGRmbHQ6MCxlZGl0VHlwZToiY2FsYyJ9LHhwZXJpb2QwOnt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJjYWxjIn0seXBlcmlvZDA6e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6ImNhbGMifSx4cGVyaW9kYWxpZ25tZW50Ont2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJzdGFydCIsIm1pZGRsZSIsImVuZCJdLGRmbHQ6Im1pZGRsZSIsZWRpdFR5cGU6ImNhbGMifSx5cGVyaW9kYWxpZ25tZW50Ont2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJzdGFydCIsIm1pZGRsZSIsImVuZCJdLGRmbHQ6Im1pZGRsZSIsZWRpdFR5cGU6ImNhbGMifSx4aG92ZXJmb3JtYXQ6bigieCIpLHlob3ZlcmZvcm1hdDpuKCJ5Iiksc3RhY2tncm91cDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGVkaXRUeXBlOiJjYWxjIn0sb3JpZW50YXRpb246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInYiLCJoIl0sZWRpdFR5cGU6ImNhbGMifSxncm91cG5vcm06e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbIiIsImZyYWN0aW9uIiwicGVyY2VudCJdLGRmbHQ6IiIsZWRpdFR5cGU6ImNhbGMifSxzdGFja2dhcHM6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImluZmVyIHplcm8iLCJpbnRlcnBvbGF0ZSJdLGRmbHQ6ImluZmVyIHplcm8iLGVkaXRUeXBlOiJjYWxjIn0sdGV4dDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGFycmF5T2s6ITAsZWRpdFR5cGU6ImNhbGMifSx0ZXh0dGVtcGxhdGU6aSh7fSx7fSksaG92ZXJ0ZXh0Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsYXJyYXlPazohMCxlZGl0VHlwZToic3R5bGUifSxtb2RlOnt2YWxUeXBlOiJmbGFnbGlzdCIsZmxhZ3M6WyJsaW5lcyIsIm1hcmtlcnMiLCJ0ZXh0Il0sZXh0cmFzOlsibm9uZSJdLGVkaXRUeXBlOiJjYWxjIn0saG92ZXJvbjp7dmFsVHlwZToiZmxhZ2xpc3QiLGZsYWdzOlsicG9pbnRzIiwiZmlsbHMiXSxlZGl0VHlwZToic3R5bGUifSxob3ZlcnRlbXBsYXRlOmEoe30se2tleXM6Zi5ldmVudERhdGFLZXlzfSksbGluZTp7Y29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToic3R5bGUiLGFuaW06ITB9LHdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MixlZGl0VHlwZToic3R5bGUiLGFuaW06ITB9LHNoYXBlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJsaW5lYXIiLCJzcGxpbmUiLCJodiIsInZoIiwiaHZoIiwidmh2Il0sZGZsdDoibGluZWFyIixlZGl0VHlwZToicGxvdCJ9LHNtb290aGluZzp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MS4zLGRmbHQ6MSxlZGl0VHlwZToicGxvdCJ9LGRhc2g6aCh7fSxsLHtlZGl0VHlwZToic3R5bGUifSksc2ltcGxpZnk6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6InBsb3QifSxlZGl0VHlwZToicGxvdCJ9LGNvbm5lY3RnYXBzOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExLGVkaXRUeXBlOiJjYWxjIn0sY2xpcG9uYXhpczp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToicGxvdCJ9LGZpbGw6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbIm5vbmUiLCJ0b3plcm95IiwidG96ZXJveCIsInRvbmV4dHkiLCJ0b25leHR4IiwidG9zZWxmIiwidG9uZXh0Il0sZWRpdFR5cGU6ImNhbGMifSxmaWxsY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToic3R5bGUiLGFuaW06ITB9LGZpbGxwYXR0ZXJuOmMsbWFya2VyOmgoe3N5bWJvbDp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOnUuc3ltYm9sTGlzdCxkZmx0OiJjaXJjbGUiLGFycmF5T2s6ITAsZWRpdFR5cGU6InN0eWxlIn0sb3BhY2l0eTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxhcnJheU9rOiEwLGVkaXRUeXBlOiJzdHlsZSIsYW5pbTohMH0sc2l6ZTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjYsYXJyYXlPazohMCxlZGl0VHlwZToiY2FsYyIsYW5pbTohMH0sbWF4ZGlzcGxheWVkOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MCxlZGl0VHlwZToicGxvdCJ9LHNpemVyZWY6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDoxLGVkaXRUeXBlOiJjYWxjIn0sc2l6ZW1pbjp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjAsZWRpdFR5cGU6ImNhbGMifSxzaXplbW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiZGlhbWV0ZXIiLCJhcmVhIl0sZGZsdDoiZGlhbWV0ZXIiLGVkaXRUeXBlOiJjYWxjIn0sbGluZTpoKHt3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxhcnJheU9rOiEwLGVkaXRUeXBlOiJzdHlsZSIsYW5pbTohMH0sZWRpdFR5cGU6ImNhbGMifSxvKCJtYXJrZXIubGluZSIse2FuaW06ITB9KSksZ3JhZGllbnQ6e3R5cGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInJhZGlhbCIsImhvcml6b250YWwiLCJ2ZXJ0aWNhbCIsIm5vbmUiXSxhcnJheU9rOiEwLGRmbHQ6Im5vbmUiLGVkaXRUeXBlOiJjYWxjIn0sY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixhcnJheU9rOiEwLGVkaXRUeXBlOiJjYWxjIn0sZWRpdFR5cGU6ImNhbGMifSxlZGl0VHlwZToiY2FsYyJ9LG8oIm1hcmtlciIse2FuaW06ITB9KSksc2VsZWN0ZWQ6e21hcmtlcjp7b3BhY2l0eTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxlZGl0VHlwZToic3R5bGUifSxjb2xvcjp7dmFsVHlwZToiY29sb3IiLGVkaXRUeXBlOiJzdHlsZSJ9LHNpemU6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZWRpdFR5cGU6InN0eWxlIn0sZWRpdFR5cGU6InN0eWxlIn0sdGV4dGZvbnQ6e2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6InN0eWxlIn0sZWRpdFR5cGU6InN0eWxlIn0sZWRpdFR5cGU6InN0eWxlIn0sdW5zZWxlY3RlZDp7bWFya2VyOntvcGFjaXR5Ont2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGVkaXRUeXBlOiJzdHlsZSJ9LGNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6InN0eWxlIn0sc2l6ZTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxlZGl0VHlwZToic3R5bGUifSxlZGl0VHlwZToic3R5bGUifSx0ZXh0Zm9udDp7Y29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToic3R5bGUifSxlZGl0VHlwZToic3R5bGUifSxlZGl0VHlwZToic3R5bGUifSx0ZXh0cG9zaXRpb246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInRvcCBsZWZ0IiwidG9wIGNlbnRlciIsInRvcCByaWdodCIsIm1pZGRsZSBsZWZ0IiwibWlkZGxlIGNlbnRlciIsIm1pZGRsZSByaWdodCIsImJvdHRvbSBsZWZ0IiwiYm90dG9tIGNlbnRlciIsImJvdHRvbSByaWdodCJdLGRmbHQ6Im1pZGRsZSBjZW50ZXIiLGFycmF5T2s6ITAsZWRpdFR5cGU6ImNhbGMifSx0ZXh0Zm9udDpzKHtlZGl0VHlwZToiY2FsYyIsY29sb3JFZGl0VHlwZToic3R5bGUiLGFycmF5T2s6ITB9KX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiOjM3NCwiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjozODksIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZy9hdHRyaWJ1dGVzIjozODgsIi4uLy4uL2xpYi9leHRlbmQiOjUwNSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfZm9ybWF0X2F0dHJpYnV0ZXMiOjU2OSwiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIjo1OTQsIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjY0MiwiLi9jb25zdGFudHMiOjk0MH1dLDkzNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLG89dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2FsaWduX3BlcmlvZCIpLHM9dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTSxsPXQoIi4vc3VidHlwZXMiKSxjPXQoIi4vY29sb3JzY2FsZV9jYWxjIiksdT10KCIuL2FycmF5c190b19jYWxjZGF0YSIpLGY9dCgiLi9jYWxjX3NlbGVjdGlvbiIpO2Z1bmN0aW9uIGgodCxlLHIsbixpLG8scyl7dmFyIGM9ZS5fbGVuZ3RoLHU9dC5fZnVsbExheW91dCxmPXIuX2lkLGg9bi5faWQscD11Ll9maXJzdFNjYXR0ZXJbbShlKV09PT1lLnVpZCxkPShnKGUsdSxyLG4pfHx7fSkub3JpZW50YXRpb24sdj1lLmZpbGw7ci5fbWluRHRpY2s9MCxuLl9taW5EdGljaz0wO3ZhciB5PXtwYWRkZWQ6ITB9LHg9e3BhZGRlZDohMH07cyYmKHkucHBhZD14LnBwYWQ9cyk7dmFyIGI9YzwyfHxpWzBdIT09aVtjLTFdfHxvWzBdIT09b1tjLTFdO2ImJigidG96ZXJveCI9PT12fHwidG9uZXh0eCI9PT12JiYocHx8ImgiPT09ZCkpP3kudG96ZXJvPSEwOihlLmVycm9yX3l8fHt9KS52aXNpYmxlfHwidG9uZXh0eSIhPT12JiYidG96ZXJveSIhPT12JiYobC5oYXNNYXJrZXJzKGUpfHxsLmhhc1RleHQoZSkpfHwoeS5wYWRkZWQ9ITEseS5wcGFkPTApLGImJigidG96ZXJveSI9PT12fHwidG9uZXh0eSI9PT12JiYocHx8InYiPT09ZCkpP3gudG96ZXJvPSEwOiJ0b25leHR4IiE9PXYmJiJ0b3plcm94IiE9PXZ8fCh4LnBhZGRlZD0hMSksZiYmKGUuX2V4dHJlbWVzW2ZdPWEuZmluZEV4dHJlbWVzKHIsaSx5KSksaCYmKGUuX2V4dHJlbWVzW2hdPWEuZmluZEV4dHJlbWVzKG4sbyx4KSl9ZnVuY3Rpb24gcCh0LGUpe2lmKGwuaGFzTWFya2Vycyh0KSl7dmFyIHIsbj10Lm1hcmtlcixvPTEuNioodC5tYXJrZXIuc2l6ZXJlZnx8MSk7aWYocj0iYXJlYSI9PT10Lm1hcmtlci5zaXplbW9kZT9mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5tYXgoTWF0aC5zcXJ0KCh0fHwwKS9vKSwzKX06ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgubWF4KCh0fHwwKS9vLDMpfSxpLmlzQXJyYXlPclR5cGVkQXJyYXkobi5zaXplKSl7dmFyIHM9e3R5cGU6ImxpbmVhciJ9O2Euc2V0Q29udmVydChzKTtmb3IodmFyIGM9cy5tYWtlQ2FsY2RhdGEodC5tYXJrZXIsInNpemUiKSx1PW5ldyBBcnJheShlKSxmPTA7ZjxlO2YrKyl1W2ZdPXIoY1tmXSk7cmV0dXJuIHV9cmV0dXJuIHIobi5zaXplKX19ZnVuY3Rpb24gZCh0LGUpe3ZhciByPW0oZSksbj10Ll9maXJzdFNjYXR0ZXI7bltyXXx8KG5bcl09ZS51aWQpfWZ1bmN0aW9uIG0odCl7dmFyIGU9dC5zdGFja2dyb3VwO3JldHVybiB0LnhheGlzK3QueWF4aXMrdC50eXBlKyhlPyItIitlOiIiKX1mdW5jdGlvbiBnKHQsZSxyLG4pe3ZhciBpPXQuc3RhY2tncm91cDtpZihpKXt2YXIgYT1lLl9zY2F0dGVyU3RhY2tPcHRzW3IuX2lkK24uX2lkXVtpXSxvPSJ2Ij09PWEub3JpZW50YXRpb24/bjpyO3JldHVybiJsaW5lYXIiPT09by50eXBlfHwibG9nIj09PW8udHlwZT9hOnZvaWQgMH19ZS5leHBvcnRzPXtjYWxjOmZ1bmN0aW9uKHQsZSl7dmFyIHIsbCxtLHYseSx4LGI9dC5fZnVsbExheW91dCxfPWEuZ2V0RnJvbUlkKHQsZS54YXhpc3x8IngiKSx3PWEuZ2V0RnJvbUlkKHQsZS55YXhpc3x8InkiKSxUPV8ubWFrZUNhbGNkYXRhKGUsIngiKSxrPXcubWFrZUNhbGNkYXRhKGUsInkiKSxBPW8oZSxfLCJ4IixUKSxNPW8oZSx3LCJ5IixrKSxTPUEudmFscyxFPU0udmFscyxMPWUuX2xlbmd0aCxDPW5ldyBBcnJheShMKSxQPWUuaWRzLEk9ZyhlLGIsXyx3KSxPPSExO2QoYixlKTt2YXIgeixEPSJ4IixSPSJ5IjtJPyhpLnB1c2hVbmlxdWUoSS50cmFjZUluZGljZXMsZS5fZXhwYW5kZWRJbmRleCksKHI9InYiPT09SS5vcmllbnRhdGlvbik/KFI9InMiLHo9IngiKTooRD0icyIsej0ieSIpLHk9ImludGVycG9sYXRlIj09PUkuc3RhY2tnYXBzKTpoKHQsZSxfLHcsUyxFLHAoZSxMKSk7dmFyIEY9ISFlLnhwZXJpb2RhbGlnbm1lbnQsQj0hIWUueXBlcmlvZGFsaWdubWVudDtmb3IobD0wO2w8TDtsKyspe3ZhciBOPUNbbF09e30saj1uKFNbbF0pLFU9bihFW2xdKTtqJiZVPyhOW0RdPVNbbF0sTltSXT1FW2xdLEYmJihOLm9yaWdfeD1UW2xdLE4ueEVuZD1BLmVuZHNbbF0sTi54U3RhcnQ9QS5zdGFydHNbbF0pLEImJihOLm9yaWdfeT1rW2xdLE4ueUVuZD1NLmVuZHNbbF0sTi55U3RhcnQ9TS5zdGFydHNbbF0pKTpJJiYocj9qOlUpPyhOW3pdPXI/U1tsXTpFW2xdLE4uZ2FwPSEwLHk/KE4ucz1zLE89ITApOk4ucz0wKTpOW0RdPU5bUl09cyxQJiYoTi5pZD1TdHJpbmcoUFtsXSkpfWlmKHUoQyxlKSxjKHQsZSksZihDLGUpLEkpe2ZvcihsPTA7bDxDLmxlbmd0aDspQ1tsXVt6XT09PXM/Qy5zcGxpY2UobCwxKTpsKys7aWYoaS5zb3J0KEMsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbel0tZVt6XXx8dC5pLWUuaX0pKSxPKXtmb3IobD0wO2w8Qy5sZW5ndGgtMSYmQ1tsXS5nYXA7KWwrKztmb3IoKHg9Q1tsXS5zKXx8KHg9Q1tsXS5zPTApLG09MDttPGw7bSsrKUNbbV0ucz14O2Zvcih2PUMubGVuZ3RoLTE7dj5sJiZDW3ZdLmdhcDspdi0tO2Zvcih4PUNbdl0ucyxtPUMubGVuZ3RoLTE7bT52O20tLSlDW21dLnM9eDtmb3IoO2w8djspaWYoQ1srK2xdLmdhcCl7Zm9yKG09bCsxO0NbbV0uZ2FwOyltKys7Zm9yKHZhciBWPUNbbC0xXVt6XSxIPUNbbC0xXS5zLHE9KENbbV0ucy1IKS8oQ1ttXVt6XS1WKTtsPG07KUNbbF0ucz1IKyhDW2xdW3pdLVYpKnEsbCsrfX19cmV0dXJuIEN9LGNhbGNNYXJrZXJTaXplOnAsY2FsY0F4aXNFeHBhbnNpb246aCxzZXRGaXJzdFNjYXR0ZXI6ZCxnZXRTdGFja09wdHM6Z319LHsiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NDkxLCIuLi8uLi9saWIiOjUxNSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2FsaWduX3BlcmlvZCI6NTYzLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NTY2LCIuL2FycmF5c190b19jYWxjZGF0YSI6OTM1LCIuL2NhbGNfc2VsZWN0aW9uIjo5MzgsIi4vY29sb3JzY2FsZV9jYWxjIjo5MzksIi4vc3VidHlwZXMiOjk2MSwiZmFzdC1pc251bWVyaWMiOjE5MH1dLDkzODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtuLmlzQXJyYXlPclR5cGVkQXJyYXkoZS5zZWxlY3RlZHBvaW50cykmJm4udGFnU2VsZWN0ZWQodCxlKX19LHsiLi4vLi4vbGliIjo1MTV9XSw5Mzk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2hlbHBlcnMiKS5oYXNDb2xvcnNjYWxlLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2NhbGMiKSxhPXQoIi4vc3VidHlwZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXthLmhhc0xpbmVzKGUpJiZuKGUsImxpbmUiKSYmaSh0LGUse3ZhbHM6ZS5saW5lLmNvbG9yLGNvbnRhaW5lclN0cjoibGluZSIsY0xldHRlcjoiYyJ9KSxhLmhhc01hcmtlcnMoZSkmJihuKGUsIm1hcmtlciIpJiZpKHQsZSx7dmFsczplLm1hcmtlci5jb2xvcixjb250YWluZXJTdHI6Im1hcmtlciIsY0xldHRlcjoiYyJ9KSxuKGUsIm1hcmtlci5saW5lIikmJmkodCxlLHt2YWxzOmUubWFya2VyLmxpbmUuY29sb3IsY29udGFpbmVyU3RyOiJtYXJrZXIubGluZSIsY0xldHRlcjoiYyJ9KSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jYWxjIjozNzUsIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9oZWxwZXJzIjozNzgsIi4vc3VidHlwZXMiOjk2MX1dLDk0MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e1BUU19MSU5FU09OTFk6MjAsbWluVG9sZXJhbmNlOi4yLHRvbGVyYW5jZUdyb3d0aDoxMCxtYXhTY3JlZW5zQXdheToyMCxldmVudERhdGFLZXlzOltdfX0se31dLDk0MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2NhbGMiKTtmdW5jdGlvbiBpKHQsZSxyLG4saSxhLG8pe2lbbl09ITA7dmFyIHM9e2k6bnVsbCxnYXA6ITAsczowfTtpZihzW29dPXIsdC5zcGxpY2UoZSwwLHMpLGUmJnI9PT10W2UtMV1bb10pe3ZhciBsPXRbZS0xXTtzLnM9bC5zLHMuaT1sLmkscy5nYXA9bC5nYXB9ZWxzZSBhJiYocy5zPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPXRbZS0xXSxhPXRbZSsxXTtyZXR1cm4gYT9pP2kucysoYS5zLWkucykqKHItaVtuXSkvKGFbbl0taVtuXSk6YS5zOmkuc30odCxlLHIsbykpO2V8fCh0WzBdLnQ9dFsxXS50LHRbMF0udHJhY2U9dFsxXS50cmFjZSxkZWxldGUgdFsxXS50LGRlbGV0ZSB0WzFdLnRyYWNlKX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1lLnhheGlzLGE9ZS55YXhpcyxvPXIuX2lkK2EuX2lkLHM9dC5fZnVsbExheW91dC5fc2NhdHRlclN0YWNrT3B0c1tvXTtpZihzKXt2YXIgbCxjLHUsZixoLHAsZCxtLGcsdix5LHgsYixfLHcsVD10LmNhbGNkYXRhO2Zvcih2YXIgayBpbiBzKXt2YXIgQT0odj1zW2tdKS50cmFjZUluZGljZXM7aWYoQS5sZW5ndGgpe2Zvcih5PSJpbnRlcnBvbGF0ZSI9PT12LnN0YWNrZ2Fwcyx4PXYuZ3JvdXBub3JtLCJ2Ij09PXYub3JpZW50YXRpb24/KGI9IngiLF89InkiKTooYj0ieSIsXz0ieCIpLHc9bmV3IEFycmF5KEEubGVuZ3RoKSxsPTA7bDx3Lmxlbmd0aDtsKyspd1tsXT0hMTtwPVRbQVswXV07dmFyIE09bmV3IEFycmF5KHAubGVuZ3RoKTtmb3IobD0wO2w8cC5sZW5ndGg7bCsrKU1bbF09cFtsXVtiXTtmb3IobD0xO2w8QS5sZW5ndGg7bCsrKXtmb3IoaD1UW0FbbF1dLGM9dT0wO2M8aC5sZW5ndGg7YysrKXtmb3IoZD1oW2NdW2JdO2Q+TVt1XSYmdTxNLmxlbmd0aDt1KyspaShoLGMsTVt1XSxsLHcseSxiKSxjKys7aWYoZCE9PU1bdV0pe2ZvcihmPTA7ZjxsO2YrKylpKFRbQVtmXV0sdSxkLGYsdyx5LGIpO00uc3BsaWNlKHUsMCxkKX11Kyt9Zm9yKDt1PE0ubGVuZ3RoO3UrKylpKGgsYyxNW3VdLGwsdyx5LGIpLGMrK312YXIgUz1NLmxlbmd0aDtmb3IoYz0wO2M8cC5sZW5ndGg7YysrKXtmb3IobT1wW2NdW19dPXBbY10ucyxsPTE7bDxBLmxlbmd0aDtsKyspKGg9VFtBW2xdXSlbMF0udHJhY2UuX3Jhd0xlbmd0aD1oWzBdLnRyYWNlLl9sZW5ndGgsaFswXS50cmFjZS5fbGVuZ3RoPVMsbSs9aFtjXS5zLGhbY11bX109bTtpZih4KWZvcihnPSgiZnJhY3Rpb24iPT09eD9tOm0vMTAwKXx8MSxsPTA7bDxBLmxlbmd0aDtsKyspe3ZhciBFPVRbQVtsXV1bY107RVtfXS89ZyxFLnNOb3JtPUUucy9nfX1mb3IobD0wO2w8QS5sZW5ndGg7bCsrKXt2YXIgTD0oaD1UW0FbbF1dKVswXS50cmFjZSxDPW4uY2FsY01hcmtlclNpemUoTCxMLl9yYXdMZW5ndGgpLFA9QXJyYXkuaXNBcnJheShDKTtpZihDJiZ3W2xdfHxQKXt2YXIgST1DO2ZvcihDPW5ldyBBcnJheShTKSxjPTA7YzxTO2MrKylDW2NdPWhbY10uZ2FwPzA6UD9JW2hbY10uaV06SX12YXIgTz1uZXcgQXJyYXkoUyksej1uZXcgQXJyYXkoUyk7Zm9yKGM9MDtjPFM7YysrKU9bY109aFtjXS54LHpbY109aFtjXS55O24uY2FsY0F4aXNFeHBhbnNpb24odCxMLHIsYSxPLHosQyksaFswXS50Lm9yaWVudGF0aW9uPXYub3JpZW50YXRpb259fX19fX0seyIuL2NhbGMiOjkzN31dLDk0MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7ZTx0Lmxlbmd0aDtlKyspe3ZhciByPXRbZV07aWYoInNjYXR0ZXIiPT09ci50eXBlKXt2YXIgbj1yLmZpbGw7aWYoIm5vbmUiIT09biYmInRvc2VsZiIhPT1uJiYoci5vcGFjaXR5PXZvaWQgMCwidG9uZXh0eSI9PT1ufHwidG9uZXh0eCI9PT1uKSlmb3IodmFyIGk9ZS0xO2k+PTA7aS0tKXt2YXIgYT10W2ldO2lmKCJzY2F0dGVyIj09PWEudHlwZSYmYS54YXhpcz09PXIueGF4aXMmJmEueWF4aXM9PT1yLnlheGlzKXthLm9wYWNpdHk9dm9pZCAwO2JyZWFrfX19fX19LHt9XSw5NDM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9yZWdpc3RyeSIpLGE9dCgiLi9hdHRyaWJ1dGVzIiksbz10KCIuL2NvbnN0YW50cyIpLHM9dCgiLi9zdWJ0eXBlcyIpLGw9dCgiLi94eV9kZWZhdWx0cyIpLGM9dCgiLi9wZXJpb2RfZGVmYXVsdHMiKSx1PXQoIi4vc3RhY2tfZGVmYXVsdHMiKSxmPXQoIi4vbWFya2VyX2RlZmF1bHRzIiksaD10KCIuL2xpbmVfZGVmYXVsdHMiKSxwPXQoIi4vbGluZV9zaGFwZV9kZWZhdWx0cyIpLGQ9dCgiLi90ZXh0X2RlZmF1bHRzIiksbT10KCIuL2ZpbGxjb2xvcl9kZWZhdWx0cyIpLGc9dCgiLi4vLi4vbGliIikuY29lcmNlUGF0dGVybjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsdil7ZnVuY3Rpb24geShyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsYSxyLGkpfXZhciB4PWwodCxlLHYseSk7aWYoeHx8KGUudmlzaWJsZT0hMSksZS52aXNpYmxlKXtjKHQsZSx2LHkpLHkoInhob3ZlcmZvcm1hdCIpLHkoInlob3ZlcmZvcm1hdCIpO3ZhciBiPXUodCxlLHYseSksXz0hYiYmeDxvLlBUU19MSU5FU09OTFk/ImxpbmVzK21hcmtlcnMiOiJsaW5lcyI7eSgidGV4dCIpLHkoImhvdmVydGV4dCIpLHkoIm1vZGUiLF8pLHMuaGFzTGluZXMoZSkmJihoKHQsZSxyLHYseSkscCh0LGUseSkseSgiY29ubmVjdGdhcHMiKSx5KCJsaW5lLnNpbXBsaWZ5IikpLHMuaGFzTWFya2VycyhlKSYmZih0LGUscix2LHkse2dyYWRpZW50OiEwfSkscy5oYXNUZXh0KGUpJiYoeSgidGV4dHRlbXBsYXRlIiksZCh0LGUsdix5KSk7dmFyIHc9W107KHMuaGFzTWFya2VycyhlKXx8cy5oYXNUZXh0KGUpKSYmKHkoImNsaXBvbmF4aXMiKSx5KCJtYXJrZXIubWF4ZGlzcGxheWVkIiksdy5wdXNoKCJwb2ludHMiKSkseSgiZmlsbCIsYj9iLmZpbGxEZmx0OiJub25lIiksIm5vbmUiIT09ZS5maWxsJiYobSh0LGUscix5KSxzLmhhc0xpbmVzKGUpfHxwKHQsZSx5KSxnKHksImZpbGxwYXR0ZXJuIixlLmZpbGxjb2xvciwhMSkpO3ZhciBUPShlLmxpbmV8fHt9KS5jb2xvcixrPShlLm1hcmtlcnx8e30pLmNvbG9yOyJ0b25leHQiIT09ZS5maWxsJiYidG9zZWxmIiE9PWUuZmlsbHx8dy5wdXNoKCJmaWxscyIpLHkoImhvdmVyb24iLHcuam9pbigiKyIpfHwicG9pbnRzIiksImZpbGxzIiE9PWUuaG92ZXJvbiYmeSgiaG92ZXJ0ZW1wbGF0ZSIpO3ZhciBBPWkuZ2V0Q29tcG9uZW50TWV0aG9kKCJlcnJvcmJhcnMiLCJzdXBwbHlEZWZhdWx0cyIpO0EodCxlLFR8fGt8fHIse2F4aXM6InkifSksQSh0LGUsVHx8a3x8cix7YXhpczoieCIsaW5oZXJpdDoieSJ9KSxuLmNvZXJjZVNlbGVjdGlvbk1hcmtlck9wYWNpdHkoZSx5KX19fSx7Ii4uLy4uL2xpYiI6NTE1LCIuLi8uLi9yZWdpc3RyeSI6NjQ3LCIuL2F0dHJpYnV0ZXMiOjkzNiwiLi9jb25zdGFudHMiOjk0MCwiLi9maWxsY29sb3JfZGVmYXVsdHMiOjk0NCwiLi9saW5lX2RlZmF1bHRzIjo5NDksIi4vbGluZV9zaGFwZV9kZWZhdWx0cyI6OTUxLCIuL21hcmtlcl9kZWZhdWx0cyI6OTU1LCIuL3BlcmlvZF9kZWZhdWx0cyI6OTU2LCIuL3N0YWNrX2RlZmF1bHRzIjo5NTksIi4vc3VidHlwZXMiOjk2MSwiLi90ZXh0X2RlZmF1bHRzIjo5NjIsIi4veHlfZGVmYXVsdHMiOjk2M31dLDk0NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksaT10KCIuLi8uLi9saWIiKS5pc0FycmF5T3JUeXBlZEFycmF5O2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixhKXt2YXIgbz0hMTtpZihlLm1hcmtlcil7dmFyIHM9ZS5tYXJrZXIuY29sb3IsbD0oZS5tYXJrZXIubGluZXx8e30pLmNvbG9yO3MmJiFpKHMpP289czpsJiYhaShsKSYmKG89bCl9YSgiZmlsbGNvbG9yIixuLmFkZE9wYWNpdHkoKGUubGluZXx8e30pLmNvbG9yfHxvfHxyLC41KSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjM2NywiLi4vLi4vbGliIjo1MTV9XSw5NDU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBpPXt9LGE9e19mdWxsTGF5b3V0OnJ9LG89bi5nZXRGcm9tVHJhY2UoYSxlLCJ4Iikscz1uLmdldEZyb21UcmFjZShhLGUsInkiKTtyZXR1cm4gaS54TGFiZWw9bi50aWNrVGV4dChvLG8uYzJsKHQueCksITApLnRleHQsaS55TGFiZWw9bi50aWNrVGV4dChzLHMuYzJsKHQueSksITApLnRleHQsaX19LHsiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjU2Nn1dLDk0NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksaT10KCIuL3N1YnR5cGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsYTtpZigibGluZXMiPT09dC5tb2RlKXJldHVybihyPXQubGluZS5jb2xvcikmJm4ub3BhY2l0eShyKT9yOnQuZmlsbGNvbG9yO2lmKCJub25lIj09PXQubW9kZSlyZXR1cm4gdC5maWxsP3QuZmlsbGNvbG9yOiIiO3ZhciBvPWUubWNjfHwodC5tYXJrZXJ8fHt9KS5jb2xvcixzPWUubWxjY3x8KCh0Lm1hcmtlcnx8e30pLmxpbmV8fHt9KS5jb2xvcjtyZXR1cm4oYT1vJiZuLm9wYWNpdHkobyk/bzpzJiZuLm9wYWNpdHkocykmJihlLm1sd3x8KCh0Lm1hcmtlcnx8e30pLmxpbmV8fHt9KS53aWR0aCk/czoiIik/bi5vcGFjaXR5KGEpPC4zP24uYWRkT3BhY2l0eShhLC4zKTphOihyPSh0LmxpbmV8fHt9KS5jb2xvcikmJm4ub3BhY2l0eShyKSYmaS5oYXNMaW5lcyh0KSYmdC5saW5lLndpZHRoP3I6dC5maWxsY29sb3J9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjM2NywiLi9zdWJ0eXBlcyI6OTYxfV0sOTQ3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9meCIpLGE9dCgiLi4vLi4vcmVnaXN0cnkiKSxvPXQoIi4vZ2V0X3RyYWNlX2NvbG9yIikscz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksbD1uLmZpbGxUZXh0O2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixjKXt2YXIgdT10LmNkLGY9dVswXS50cmFjZSxoPXQueGEscD10LnlhLGQ9aC5jMnAoZSksbT1wLmMycChyKSxnPVtkLG1dLHY9Zi5ob3Zlcm9ufHwiIix5PS0xIT09Zi5tb2RlLmluZGV4T2YoIm1hcmtlcnMiKT8zOi41LHg9ISFmLnhwZXJpb2RhbGlnbm1lbnQsYj0hIWYueXBlcmlvZGFsaWdubWVudDtpZigtMSE9PXYuaW5kZXhPZigicG9pbnRzIikpe3ZhciBfPWZ1bmN0aW9uKHQpe3ZhciBlPU1hdGgubWF4KHksdC5tcmN8fDApLHI9aC5jMnAodC54KS1kLG49cC5jMnAodC55KS1tO3JldHVybiBNYXRoLm1heChNYXRoLnNxcnQocipyK24qbiktZSwxLXkvZSl9LHc9aS5nZXREaXN0YW5jZUZ1bmN0aW9uKGMsKGZ1bmN0aW9uKHQpe2lmKHgpe3ZhciBlPWguYzJwKHQueFN0YXJ0KSxyPWguYzJwKHQueEVuZCk7cmV0dXJuIGQ+PU1hdGgubWluKGUscikmJmQ8PU1hdGgubWF4KGUscik/MDoxLzB9dmFyIG49TWF0aC5tYXgoMyx0Lm1yY3x8MCksaT0xLTEvbixhPU1hdGguYWJzKGguYzJwKHQueCktZCk7cmV0dXJuIGE8bj9pKmEvbjphLW4raX0pLChmdW5jdGlvbih0KXtpZihiKXt2YXIgZT1wLmMycCh0LnlTdGFydCkscj1wLmMycCh0LnlFbmQpO3JldHVybiBtPj1NYXRoLm1pbihlLHIpJiZtPD1NYXRoLm1heChlLHIpPzA6MS8wfXZhciBuPU1hdGgubWF4KDMsdC5tcmN8fDApLGk9MS0xL24sYT1NYXRoLmFicyhwLmMycCh0LnkpLW0pO3JldHVybiBhPG4/aSphL246YS1uK2l9KSxfKTtpZihpLmdldENsb3Nlc3QodSx3LHQpLCExIT09dC5pbmRleCl7dmFyIFQ9dVt0LmluZGV4XSxrPWguYzJwKFQueCwhMCksQT1wLmMycChULnksITApLE09VC5tcmN8fDE7dC5pbmRleD1ULmk7dmFyIFM9dVswXS50Lm9yaWVudGF0aW9uLEU9UyYmKFQuc05vcm18fFQucyksTD0iaCI9PT1TP0U6dm9pZCAwIT09VC5vcmlnX3g/VC5vcmlnX3g6VC54LEM9InYiPT09Uz9FOnZvaWQgMCE9PVQub3JpZ195P1Qub3JpZ195OlQueTtyZXR1cm4gbi5leHRlbmRGbGF0KHQse2NvbG9yOm8oZixUKSx4MDprLU0seDE6aytNLHhMYWJlbFZhbDpMLHkwOkEtTSx5MTpBK00seUxhYmVsVmFsOkMsc3Bpa2VEaXN0YW5jZTpfKFQpLGhvdmVydGVtcGxhdGU6Zi5ob3ZlcnRlbXBsYXRlfSksbChULGYsdCksYS5nZXRDb21wb25lbnRNZXRob2QoImVycm9yYmFycyIsImhvdmVySW5mbyIpKFQsZix0KSxbdF19fWlmKC0xIT09di5pbmRleE9mKCJmaWxscyIpJiZmLl9wb2x5Z29ucyl7dmFyIFAsSSxPLHosRCxSLEYsQixOLGo9Zi5fcG9seWdvbnMsVT1bXSxWPSExLEg9MS8wLHE9LTEvMCxHPTEvMCxZPS0xLzA7Zm9yKFA9MDtQPGoubGVuZ3RoO1ArKykoTz1qW1BdKS5jb250YWlucyhnKSYmKFY9IVYsVS5wdXNoKE8pLEc9TWF0aC5taW4oRyxPLnltaW4pLFk9TWF0aC5tYXgoWSxPLnltYXgpKTtpZihWKXt2YXIgVz0oKEc9TWF0aC5tYXgoRywwKSkrKFk9TWF0aC5taW4oWSxwLl9sZW5ndGgpKSkvMjtmb3IoUD0wO1A8VS5sZW5ndGg7UCsrKWZvcih6PVVbUF0ucHRzLEk9MTtJPHoubGVuZ3RoO0krKykoQj16W0ktMV1bMV0pPlchPShOPXpbSV1bMV0pPj1XJiYoUj16W0ktMV1bMF0sRj16W0ldWzBdLE4tQiYmKEQ9UisoRi1SKSooVy1CKS8oTi1CKSxIPU1hdGgubWluKEgsRCkscT1NYXRoLm1heChxLEQpKSk7SD1NYXRoLm1heChILDApLHE9TWF0aC5taW4ocSxoLl9sZW5ndGgpO3ZhciBYPXMuZGVmYXVsdExpbmU7cmV0dXJuIHMub3BhY2l0eShmLmZpbGxjb2xvcik/WD1mLmZpbGxjb2xvcjpzLm9wYWNpdHkoKGYubGluZXx8e30pLmNvbG9yKSYmKFg9Zi5saW5lLmNvbG9yKSxuLmV4dGVuZEZsYXQodCx7ZGlzdGFuY2U6dC5tYXhIb3ZlckRpc3RhbmNlLHgwOkgseDE6cSx5MDpXLHkxOlcsY29sb3I6WCxob3ZlcnRlbXBsYXRlOiExfSksZGVsZXRlIHQuaW5kZXgsZi50ZXh0JiYhQXJyYXkuaXNBcnJheShmLnRleHQpP3QudGV4dD1TdHJpbmcoZi50ZXh0KTp0LnRleHQ9Zi5uYW1lLFt0XX19fX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjozNjcsIi4uLy4uL2NvbXBvbmVudHMvZngiOjQwNywiLi4vLi4vbGliIjo1MTUsIi4uLy4uL3JlZ2lzdHJ5Ijo2NDcsIi4vZ2V0X3RyYWNlX2NvbG9yIjo5NDZ9XSw5NDg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9zdWJ0eXBlcyIpO2UuZXhwb3J0cz17aGFzTGluZXM6bi5oYXNMaW5lcyxoYXNNYXJrZXJzOm4uaGFzTWFya2VycyxoYXNUZXh0Om4uaGFzVGV4dCxpc0J1YmJsZTpuLmlzQnViYmxlLGF0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNyb3NzVHJhY2VEZWZhdWx0czp0KCIuL2Nyb3NzX3RyYWNlX2RlZmF1bHRzIiksY2FsYzp0KCIuL2NhbGMiKS5jYWxjLGNyb3NzVHJhY2VDYWxjOnQoIi4vY3Jvc3NfdHJhY2VfY2FsYyIpLGFycmF5c1RvQ2FsY2RhdGE6dCgiLi9hcnJheXNfdG9fY2FsY2RhdGEiKSxwbG90OnQoIi4vcGxvdCIpLGNvbG9yYmFyOnQoIi4vbWFya2VyX2NvbG9yYmFyIiksZm9ybWF0TGFiZWxzOnQoIi4vZm9ybWF0X2xhYmVscyIpLHN0eWxlOnQoIi4vc3R5bGUiKS5zdHlsZSxzdHlsZU9uU2VsZWN0OnQoIi4vc3R5bGUiKS5zdHlsZU9uU2VsZWN0LGhvdmVyUG9pbnRzOnQoIi4vaG92ZXIiKSxzZWxlY3RQb2ludHM6dCgiLi9zZWxlY3QiKSxhbmltYXRhYmxlOiEwLG1vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJzY2F0dGVyIixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iKSxjYXRlZ29yaWVzOlsiY2FydGVzaWFuIiwic3ZnIiwic3ltYm9scyIsImVycm9yQmFyc09LIiwic2hvd0xlZ2VuZCIsInNjYXR0ZXItbGlrZSIsInpvb21TY2FsZSJdLG1ldGE6e319fSx7Ii4uLy4uL3Bsb3RzL2NhcnRlc2lhbiI6NTc4LCIuL2FycmF5c190b19jYWxjZGF0YSI6OTM1LCIuL2F0dHJpYnV0ZXMiOjkzNiwiLi9jYWxjIjo5MzcsIi4vY3Jvc3NfdHJhY2VfY2FsYyI6OTQxLCIuL2Nyb3NzX3RyYWNlX2RlZmF1bHRzIjo5NDIsIi4vZGVmYXVsdHMiOjk0MywiLi9mb3JtYXRfbGFiZWxzIjo5NDUsIi4vaG92ZXIiOjk0NywiLi9tYXJrZXJfY29sb3JiYXIiOjk1NCwiLi9wbG90Ijo5NTcsIi4vc2VsZWN0Ijo5NTgsIi4vc3R5bGUiOjk2MCwiLi9zdWJ0eXBlcyI6OTYxfV0sOTQ5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLmlzQXJyYXlPclR5cGVkQXJyYXksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvaGVscGVycyIpLmhhc0NvbG9yc2NhbGUsYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbyxzLGwpe3ZhciBjPSh0Lm1hcmtlcnx8e30pLmNvbG9yOyhzKCJsaW5lLmNvbG9yIixyKSxpKHQsImxpbmUiKSk/YSh0LGUsbyxzLHtwcmVmaXg6ImxpbmUuIixjTGV0dGVyOiJjIn0pOnMoImxpbmUuY29sb3IiLCFuKGMpJiZjfHxyKTtzKCJsaW5lLndpZHRoIiksKGx8fHt9KS5ub0Rhc2h8fHMoImxpbmUuZGFzaCIpfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiOjM3NywiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2hlbHBlcnMiOjM3OCwiLi4vLi4vbGliIjo1MTV9XSw5NTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLGk9bi5CQUROVU0sYT1uLkxPR19DTElQLG89YSsuNSxzPWEtLjUsbD10KCIuLi8uLi9saWIiKSxjPWwuc2VnbWVudHNJbnRlcnNlY3QsdT1sLmNvbnN0cmFpbixmPXQoIi4vY29uc3RhbnRzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixhLGgscCxkLG0sZyx2LHkseCxiLF8sdyxULGssQSxNLFM9ZS54YXhpcyxFPWUueWF4aXMsTD0ibG9nIj09PVMudHlwZSxDPSJsb2ciPT09RS50eXBlLFA9Uy5fbGVuZ3RoLEk9RS5fbGVuZ3RoLE89ZS5jb25uZWN0R2Fwcyx6PWUuYmFzZVRvbGVyYW5jZSxEPWUuc2hhcGUsUj0ibGluZWFyIj09PUQsRj1lLmZpbGwmJiJub25lIiE9PWUuZmlsbCxCPVtdLE49Zi5taW5Ub2xlcmFuY2Usaj10Lmxlbmd0aCxVPW5ldyBBcnJheShqKSxWPTA7ZnVuY3Rpb24gSChyKXt2YXIgbj10W3JdO2lmKCFuKXJldHVybiExO3ZhciBhPWUubGluZWFyaXplZD9TLmwycChuLngpOlMuYzJwKG4ueCksbD1lLmxpbmVhcml6ZWQ/RS5sMnAobi55KTpFLmMycChuLnkpO2lmKGE9PT1pKXtpZihMJiYoYT1TLmMycChuLngsITApKSxhPT09aSlyZXR1cm4hMTtDJiZsPT09aSYmKGEqPU1hdGguYWJzKFMuX20qSSooUy5fbT4wP286cykvKEUuX20qUCooRS5fbT4wP286cykpKSksYSo9MWUzfWlmKGw9PT1pKXtpZihDJiYobD1FLmMycChuLnksITApKSxsPT09aSlyZXR1cm4hMTtsKj0xZTN9cmV0dXJuW2EsbF19ZnVuY3Rpb24gcSh0LGUscixuKXt2YXIgaT1yLXQsYT1uLWUsbz0uNS10LHM9LjUtZSxsPWkqaSthKmEsYz1pKm8rYSpzO2lmKGM+MCYmYzxsKXt2YXIgdT1vKmEtcyppO2lmKHUqdTxsKXJldHVybiEwfX1mdW5jdGlvbiBHKHQsZSl7dmFyIHI9dFswXS9QLG49dFsxXS9JLGk9TWF0aC5tYXgoMCwtcixyLTEsLW4sbi0xKTtyZXR1cm4gaSYmdm9pZCAwIT09QSYmcShyLG4sQSxNKSYmKGk9MCksaSYmZSYmcShyLG4sZVswXS9QLGVbMV0vSSkmJihpPTApLCgxK2YudG9sZXJhbmNlR3Jvd3RoKmkpKnp9ZnVuY3Rpb24gWSh0LGUpe3ZhciByPXRbMF0tZVswXSxuPXRbMV0tZVsxXTtyZXR1cm4gTWF0aC5zcXJ0KHIqcituKm4pfXZhciBXLFgsWixKLEssUSwkLHR0PWYubWF4U2NyZWVuc0F3YXksZXQ9LVAqdHQscnQ9UCooMSt0dCksbnQ9LUkqdHQsaXQ9SSooMSt0dCksYXQ9W1tldCxudCxydCxudF0sW3J0LG50LHJ0LGl0XSxbcnQsaXQsZXQsaXRdLFtldCxpdCxldCxudF1dO2Z1bmN0aW9uIG90KHQpe2lmKHRbMF08ZXR8fHRbMF0+cnR8fHRbMV08bnR8fHRbMV0+aXQpcmV0dXJuW3UodFswXSxldCxydCksdSh0WzFdLG50LGl0KV19ZnVuY3Rpb24gc3QodCxlKXtyZXR1cm4gdFswXT09PWVbMF0mJih0WzBdPT09ZXR8fHRbMF09PT1ydCl8fCh0WzFdPT09ZVsxXSYmKHRbMV09PT1udHx8dFsxXT09PWl0KXx8dm9pZCAwKX1mdW5jdGlvbiBsdCh0LGUscil7cmV0dXJuIGZ1bmN0aW9uKG4saSl7dmFyIGE9b3Qobiksbz1vdChpKSxzPVtdO2lmKGEmJm8mJnN0KGEsbykpcmV0dXJuIHM7YSYmcy5wdXNoKGEpLG8mJnMucHVzaChvKTt2YXIgYz0yKmwuY29uc3RyYWluKChuW3RdK2lbdF0pLzIsZSxyKS0oKGF8fG4pW3RdKyhvfHxpKVt0XSk7YyYmKChhJiZvP2M+MD09YVt0XT5vW3RdP2E6bzphfHxvKVt0XSs9Yyk7cmV0dXJuIHN9fWZ1bmN0aW9uIGN0KHQpe3ZhciBlPXRbMF0scj10WzFdLG49ZT09PVVbVi0xXVswXSxpPXI9PT1VW1YtMV1bMV07aWYoIW58fCFpKWlmKFY+MSl7dmFyIGE9ZT09PVVbVi0yXVswXSxvPXI9PT1VW1YtMl1bMV07biYmKGU9PT1ldHx8ZT09PXJ0KSYmYT9vP1YtLTpVW1YtMV09dDppJiYocj09PW50fHxyPT09aXQpJiZvP2E/Vi0tOlVbVi0xXT10OlVbVisrXT10fWVsc2UgVVtWKytdPXR9ZnVuY3Rpb24gdXQodCl7VVtWLTFdWzBdIT09dFswXSYmVVtWLTFdWzFdIT09dFsxXSYmY3QoW1osSl0pLGN0KHQpLEs9bnVsbCxaPUo9MH1mdW5jdGlvbiBmdCh0KXtpZihBPXRbMF0vUCxNPXRbMV0vSSxXPXRbMF08ZXQ/ZXQ6dFswXT5ydD9ydDowLFg9dFsxXTxudD9udDp0WzFdPml0P2l0OjAsV3x8WCl7aWYoVilpZihLKXt2YXIgZT0kKEssdCk7ZS5sZW5ndGg+MSYmKHV0KGVbMF0pLFVbVisrXT1lWzFdKX1lbHNlIFE9JChVW1YtMV0sdClbMF0sVVtWKytdPVE7ZWxzZSBVW1YrK109W1d8fHRbMF0sWHx8dFsxXV07dmFyIHI9VVtWLTFdO1cmJlgmJihyWzBdIT09V3x8clsxXSE9PVgpPyhLJiYoWiE9PVcmJkohPT1YP2N0KFomJko/KG49SyxhPShpPXQpWzBdLW5bMF0sbz0oaVsxXS1uWzFdKS9hLChuWzFdKmlbMF0taVsxXSpuWzBdKS9hPjA/W28+MD9ldDpydCxpdF06W28+MD9ydDpldCxudF0pOltafHxXLEp8fFhdKTpaJiZKJiZjdChbWixKXSkpLGN0KFtXLFhdKSk6Wi1XJiZKLVgmJmN0KFtXfHxaLFh8fEpdKSxLPXQsWj1XLEo9WH1lbHNlIEsmJnV0KCQoSyx0KVswXSksVVtWKytdPXQ7dmFyIG4saSxhLG99Zm9yKCJsaW5lYXIiPT09RHx8InNwbGluZSI9PT1EPyQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9W10sbj0wLGk9MDtpPDQ7aSsrKXt2YXIgYT1hdFtpXSxvPWModFswXSx0WzFdLGVbMF0sZVsxXSxhWzBdLGFbMV0sYVsyXSxhWzNdKTtvJiYoIW58fE1hdGguYWJzKG8ueC1yWzBdWzBdKT4xfHxNYXRoLmFicyhvLnktclswXVsxXSk+MSkmJihvPVtvLngsby55XSxuJiZZKG8sdCk8WShyWzBdLHQpP3IudW5zaGlmdChvKTpyLnB1c2gobyksbisrKX1yZXR1cm4gcn06Imh2Ij09PUR8fCJ2aCI9PT1EPyQ9ZnVuY3Rpb24odCxlKXt2YXIgcj1bXSxuPW90KHQpLGk9b3QoZSk7cmV0dXJuIG4mJmkmJnN0KG4saSl8fChuJiZyLnB1c2gobiksaSYmci5wdXNoKGkpKSxyfToiaHZoIj09PUQ/JD1sdCgwLGV0LHJ0KToidmh2Ij09PUQmJigkPWx0KDEsbnQsaXQpKSxyPTA7cjxqO3IrKylpZihuPUgocikpe2ZvcihWPTAsSz1udWxsLGZ0KG4pLHIrKztyPGo7cisrKXtpZighKGg9SChyKSkpe2lmKE8pY29udGludWU7YnJlYWt9aWYoUiYmZS5zaW1wbGlmeSl7dmFyIGh0PUgocisxKTtpZih5PVkoaCxuKSxGJiYoMD09PVZ8fFY9PT1qLTEpfHwhKHk8RyhoLGh0KSpOKSl7Zm9yKGc9WyhoWzBdLW5bMF0pL3ksKGhbMV0tblsxXSkveV0scD1uLHg9eSxiPXc9VD0wLG09ITEsYT1oLHIrKztyPHQubGVuZ3RoO3IrKyl7aWYoZD1odCxodD1IKHIrMSksIWQpe2lmKE8pY29udGludWU7YnJlYWt9aWYoaz0odj1bZFswXS1uWzBdLGRbMV0tblsxXV0pWzBdKmdbMV0tdlsxXSpnWzBdLHc9TWF0aC5taW4odyxrKSwoVD1NYXRoLm1heChULGspKS13PkcoZCxodCkpYnJlYWs7YT1kLChfPXZbMF0qZ1swXSt2WzFdKmdbMV0pPng/KHg9XyxoPWQsbT0hMSk6XzxiJiYoYj1fLHA9ZCxtPSEwKX1pZihtPyhmdChoKSxhIT09cCYmZnQocCkpOihwIT09biYmZnQocCksYSE9PWgmJmZ0KGgpKSxmdChhKSxyPj10Lmxlbmd0aHx8IWQpYnJlYWs7ZnQoZCksbj1kfX1lbHNlIGZ0KGgpfUsmJmN0KFtafHxLWzBdLEp8fEtbMV1dKSxCLnB1c2goVS5zbGljZSgwLFYpKX1yZXR1cm4gQn19LHsiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NDkxLCIuLi8uLi9saWIiOjUxNSwiLi9jb25zdGFudHMiOjk0MH1dLDk1MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpeyJzcGxpbmUiPT09cigibGluZS5zaGFwZSIpJiZyKCJsaW5lLnNtb290aGluZyIpfX0se31dLDk1MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj17dG9uZXh0eDoxLHRvbmV4dHk6MSx0b25leHQ6MX07ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgaSxhLG8scyxsLGM9e30sdT0hMSxmPS0xLGg9MCxwPS0xO2ZvcihhPTA7YTxyLmxlbmd0aDthKyspKG89KGk9clthXVswXS50cmFjZSkuc3RhY2tncm91cHx8IiIpP28gaW4gYz9sPWNbb106KGw9Y1tvXT1oLGgrKyk6aS5maWxsIGluIG4mJnA+PTA/bD1wOihsPXA9aCxoKyspLGw8ZiYmKHU9ITApLGkuX2dyb3VwSW5kZXg9Zj1sO3ZhciBkPXIuc2xpY2UoKTt1JiZkLnNvcnQoKGZ1bmN0aW9uKHQsZSl7dmFyIHI9dFswXS50cmFjZSxuPWVbMF0udHJhY2U7cmV0dXJuIHIuX2dyb3VwSW5kZXgtbi5fZ3JvdXBJbmRleHx8ci5pbmRleC1uLmluZGV4fSkpO3ZhciBtPXt9O2ZvcihhPTA7YTxkLmxlbmd0aDthKyspbz0oaT1kW2FdWzBdLnRyYWNlKS5zdGFja2dyb3VwfHwiIiwhMD09PWkudmlzaWJsZT8oaS5fbmV4dHRyYWNlPW51bGwsaS5maWxsIGluIG4mJihzPW1bb10saS5fcHJldnRyYWNlPXN8fG51bGwscyYmKHMuX25leHR0cmFjZT1pKSksaS5fb3duZmlsbD1pLmZpbGwmJigidG96ZXJvIj09PWkuZmlsbC5zdWJzdHIoMCw2KXx8InRvc2VsZiI9PT1pLmZpbGx8fCJ0byI9PT1pLmZpbGwuc3Vic3RyKDAsMikmJiFpLl9wcmV2dHJhY2UpLG1bb109aSk6aS5fcHJldnRyYWNlPWkuX25leHR0cmFjZT1pLl9vd25maWxsPW51bGw7cmV0dXJuIGR9fSx7fV0sOTUzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7ZXx8KGU9Mik7dmFyIHI9dC5tYXJrZXIsaT1yLnNpemVyZWZ8fDEsYT1yLnNpemVtaW58fDAsbz0iYXJlYSI9PT1yLnNpemVtb2RlP2Z1bmN0aW9uKHQpe3JldHVybiBNYXRoLnNxcnQodC9pKX06ZnVuY3Rpb24odCl7cmV0dXJuIHQvaX07cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciByPW8odC9lKTtyZXR1cm4gbihyKSYmcj4wP01hdGgubWF4KHIsYSk6MH19fSx7ImZhc3QtaXNudW1lcmljIjoxOTB9XSw5NTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtjb250YWluZXI6Im1hcmtlciIsbWluOiJjbWluIixtYXg6ImNtYXgifX0se31dLDk1NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvaGVscGVycyIpLmhhc0NvbG9yc2NhbGUsYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiKSxvPXQoIi4vc3VidHlwZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIscyxsLGMpe3ZhciB1PW8uaXNCdWJibGUodCksZj0odC5saW5lfHx7fSkuY29sb3I7KGM9Y3x8e30sZiYmKHI9ZiksbCgibWFya2VyLnN5bWJvbCIpLGwoIm1hcmtlci5vcGFjaXR5Iix1Py43OjEpLGwoIm1hcmtlci5zaXplIiksbCgibWFya2VyLmNvbG9yIixyKSxpKHQsIm1hcmtlciIpJiZhKHQsZSxzLGwse3ByZWZpeDoibWFya2VyLiIsY0xldHRlcjoiYyJ9KSxjLm5vU2VsZWN0fHwobCgic2VsZWN0ZWQubWFya2VyLmNvbG9yIiksbCgidW5zZWxlY3RlZC5tYXJrZXIuY29sb3IiKSxsKCJzZWxlY3RlZC5tYXJrZXIuc2l6ZSIpLGwoInVuc2VsZWN0ZWQubWFya2VyLnNpemUiKSksYy5ub0xpbmV8fChsKCJtYXJrZXIubGluZS5jb2xvciIsZiYmIUFycmF5LmlzQXJyYXkoZikmJmUubWFya2VyLmNvbG9yIT09Zj9mOnU/bi5iYWNrZ3JvdW5kOm4uZGVmYXVsdExpbmUpLGkodCwibWFya2VyLmxpbmUiKSYmYSh0LGUscyxsLHtwcmVmaXg6Im1hcmtlci5saW5lLiIsY0xldHRlcjoiYyJ9KSxsKCJtYXJrZXIubGluZS53aWR0aCIsdT8xOjApKSx1JiYobCgibWFya2VyLnNpemVyZWYiKSxsKCJtYXJrZXIuc2l6ZW1pbiIpLGwoIm1hcmtlci5zaXplbW9kZSIpKSxjLmdyYWRpZW50KSYmKCJub25lIiE9PWwoIm1hcmtlci5ncmFkaWVudC50eXBlIikmJmwoIm1hcmtlci5ncmFkaWVudC5jb2xvciIpKX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6MzY3LCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiOjM3NywiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2hlbHBlcnMiOjM3OCwiLi9zdWJ0eXBlcyI6OTYxfV0sOTU2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLmRhdGVUaWNrMCxpPXQoIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiKS5PTkVXRUVLO2Z1bmN0aW9uIGEodCxlKXtyZXR1cm4gbihlLHQlaT09MD8xOjApfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuLGkpe2lmKGl8fChpPXt4OiEwLHk6ITB9KSxpLngpe3ZhciBvPW4oInhwZXJpb2QiKTtvJiYobigieHBlcmlvZDAiLGEobyxlLnhjYWxlbmRhcikpLG4oInhwZXJpb2RhbGlnbm1lbnQiKSl9aWYoaS55KXt2YXIgcz1uKCJ5cGVyaW9kIik7cyYmKG4oInlwZXJpb2QwIixhKHMsZS55Y2FsZW5kYXIpKSxuKCJ5cGVyaW9kYWxpZ25tZW50IikpfX19LHsiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NDkxLCIuLi8uLi9saWIiOjUxNX1dLDk1NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9yZWdpc3RyeSIpLGE9dCgiLi4vLi4vbGliIiksbz1hLmVuc3VyZVNpbmdsZSxzPWEuaWRlbnRpdHksbD10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxjPXQoIi4vc3VidHlwZXMiKSx1PXQoIi4vbGluZV9wb2ludHMiKSxmPXQoIi4vbGlua190cmFjZXMiKSxoPXQoIi4uLy4uL2xpYi9wb2x5Z29uIikudGVzdGVyO2Z1bmN0aW9uIHAodCxlLHIsZixwLGQsbSl7dmFyIGc7IWZ1bmN0aW9uKHQsZSxyLGksbyl7dmFyIHM9ci54YXhpcyxsPXIueWF4aXMsdT1uLmV4dGVudChhLnNpbXBsZU1hcChzLnJhbmdlLHMucjJjKSksZj1uLmV4dGVudChhLnNpbXBsZU1hcChsLnJhbmdlLGwucjJjKSksaD1pWzBdLnRyYWNlO2lmKCFjLmhhc01hcmtlcnMoaCkpcmV0dXJuO3ZhciBwPWgubWFya2VyLm1heGRpc3BsYXllZDtpZigwPT09cClyZXR1cm47dmFyIGQ9aS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lng+PXVbMF0mJnQueDw9dVsxXSYmdC55Pj1mWzBdJiZ0Lnk8PWZbMV19KSksbT1NYXRoLmNlaWwoZC5sZW5ndGgvcCksZz0wO28uZm9yRWFjaCgoZnVuY3Rpb24odCxyKXt2YXIgbj10WzBdLnRyYWNlO2MuaGFzTWFya2VycyhuKSYmbi5tYXJrZXIubWF4ZGlzcGxheWVkPjAmJnI8ZSYmZysrfSkpO3ZhciB2PU1hdGgucm91bmQoZyptLzMrTWF0aC5mbG9vcihnLzMpKm0vNy4xKTtpLmZvckVhY2goKGZ1bmN0aW9uKHQpe2RlbGV0ZSB0LnZpc30pKSxkLmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7MD09PU1hdGgucm91bmQoKGUrdiklbSkmJih0LnZpcz0hMCl9KSl9KDAsZSxyLGYscCk7dmFyIHY9ISFtJiZtLmR1cmF0aW9uPjA7ZnVuY3Rpb24geSh0KXtyZXR1cm4gdj90LnRyYW5zaXRpb24oKTp0fXZhciB4PXIueGF4aXMsYj1yLnlheGlzLF89ZlswXS50cmFjZSx3PV8ubGluZSxUPW4uc2VsZWN0KGQpLGs9byhULCJnIiwiZXJyb3JiYXJzIiksQT1vKFQsImciLCJsaW5lcyIpLE09byhULCJnIiwicG9pbnRzIiksUz1vKFQsImciLCJ0ZXh0Iik7aWYoaS5nZXRDb21wb25lbnRNZXRob2QoImVycm9yYmFycyIsInBsb3QiKSh0LGsscixtKSwhMD09PV8udmlzaWJsZSl7dmFyIEUsTDt5KFQpLnN0eWxlKCJvcGFjaXR5IixfLm9wYWNpdHkpO3ZhciBDPV8uZmlsbC5jaGFyQXQoXy5maWxsLmxlbmd0aC0xKTsieCIhPT1DJiYieSIhPT1DJiYoQz0iIiksZlswXVtyLmlzUmFuZ2VQbG90PyJub2RlUmFuZ2VQbG90MyI6Im5vZGUzIl09VDt2YXIgUCxJLE89IiIsej1bXSxEPV8uX3ByZXZ0cmFjZTtEJiYoTz1ELl9wcmV2UmV2cGF0aHx8IiIsTD1ELl9uZXh0RmlsbCx6PUQuX3BvbHlnb25zKTt2YXIgUixGLEIsTixqLFUsVixIPSIiLHE9IiIsRz1bXSxZPWEubm9vcDtpZihFPV8uX293bkZpbGwsYy5oYXNMaW5lcyhfKXx8Im5vbmUiIT09Xy5maWxsKXtmb3IoTCYmTC5kYXR1bShmKSwtMSE9PVsiaHYiLCJ2aCIsImh2aCIsInZodiJdLmluZGV4T2Yody5zaGFwZSk/KFI9bC5zdGVwcyh3LnNoYXBlKSxGPWwuc3RlcHMody5zaGFwZS5zcGxpdCgiIikucmV2ZXJzZSgpLmpvaW4oIiIpKSk6Uj1GPSJzcGxpbmUiPT09dy5zaGFwZT9mdW5jdGlvbih0KXt2YXIgZT10W3QubGVuZ3RoLTFdO3JldHVybiB0Lmxlbmd0aD4xJiZ0WzBdWzBdPT09ZVswXSYmdFswXVsxXT09PWVbMV0/bC5zbW9vdGhjbG9zZWQodC5zbGljZSgxKSx3LnNtb290aGluZyk6bC5zbW9vdGhvcGVuKHQsdy5zbW9vdGhpbmcpfTpmdW5jdGlvbih0KXtyZXR1cm4iTSIrdC5qb2luKCJMIil9LEI9ZnVuY3Rpb24odCl7cmV0dXJuIEYodC5yZXZlcnNlKCkpfSxHPXUoZix7eGF4aXM6eCx5YXhpczpiLGNvbm5lY3RHYXBzOl8uY29ubmVjdGdhcHMsYmFzZVRvbGVyYW5jZTpNYXRoLm1heCh3LndpZHRofHwxLDMpLzQsc2hhcGU6dy5zaGFwZSxzaW1wbGlmeTp3LnNpbXBsaWZ5LGZpbGw6Xy5maWxsfSksVj1fLl9wb2x5Z29ucz1uZXcgQXJyYXkoRy5sZW5ndGgpLGc9MDtnPEcubGVuZ3RoO2crKylfLl9wb2x5Z29uc1tnXT1oKEdbZ10pO0cubGVuZ3RoJiYoTj1HWzBdWzBdLFU9KGo9R1tHLmxlbmd0aC0xXSlbai5sZW5ndGgtMV0pLFk9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKFA9UihlKSxJPUIoZSksSD9DPyhIKz0iTCIrUC5zdWJzdHIoMSkscT1JKyJMIitxLnN1YnN0cigxKSk6KEgrPSJaIitQLHE9SSsiWiIrcSk6KEg9UCxxPUkpLGMuaGFzTGluZXMoXykmJmUubGVuZ3RoPjEpe3ZhciByPW4uc2VsZWN0KHRoaXMpO2lmKHIuZGF0dW0oZiksdCl5KHIuc3R5bGUoIm9wYWNpdHkiLDApLmF0dHIoImQiLFApLmNhbGwobC5saW5lR3JvdXBTdHlsZSkpLnN0eWxlKCJvcGFjaXR5IiwxKTtlbHNle3ZhciBpPXkocik7aS5hdHRyKCJkIixQKSxsLnNpbmdsZUxpbmVTdHlsZShmLGkpfX19fX12YXIgVz1BLnNlbGVjdEFsbCgiLmpzLWxpbmUiKS5kYXRhKEcpO3koVy5leGl0KCkpLnN0eWxlKCJvcGFjaXR5IiwwKS5yZW1vdmUoKSxXLmVhY2goWSghMSkpLFcuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKCJqcy1saW5lIiwhMCkuc3R5bGUoInZlY3Rvci1lZmZlY3QiLCJub24tc2NhbGluZy1zdHJva2UiKS5jYWxsKGwubGluZUdyb3VwU3R5bGUpLmVhY2goWSghMCkpLGwuc2V0Q2xpcFVybChXLHIubGF5ZXJDbGlwSWQsdCksRy5sZW5ndGg/KEU/KEUuZGF0dW0oZiksTiYmVSYmKEM/KCJ5Ij09PUM/TlsxXT1VWzFdPWIuYzJwKDAsITApOiJ4Ij09PUMmJihOWzBdPVVbMF09eC5jMnAoMCwhMCkpLHkoRSkuYXR0cigiZCIsIk0iK1UrIkwiK04rIkwiK0guc3Vic3RyKDEpKS5jYWxsKGwuc2luZ2xlRmlsbFN0eWxlLHQpKTp5KEUpLmF0dHIoImQiLEgrIloiKS5jYWxsKGwuc2luZ2xlRmlsbFN0eWxlLHQpKSk6TCYmKCJ0b25leHQiPT09Xy5maWxsLnN1YnN0cigwLDYpJiZIJiZPPygidG9uZXh0Ij09PV8uZmlsbD95KEwpLmF0dHIoImQiLEgrIloiK08rIloiKS5jYWxsKGwuc2luZ2xlRmlsbFN0eWxlLHQpOnkoTCkuYXR0cigiZCIsSCsiTCIrTy5zdWJzdHIoMSkrIloiKS5jYWxsKGwuc2luZ2xlRmlsbFN0eWxlLHQpLF8uX3BvbHlnb25zPV8uX3BvbHlnb25zLmNvbmNhdCh6KSk6KFooTCksXy5fcG9seWdvbnM9bnVsbCkpLF8uX3ByZXZSZXZwYXRoPXEsXy5fcHJldlBvbHlnb25zPVYpOihFP1ooRSk6TCYmWihMKSxfLl9wb2x5Z29ucz1fLl9wcmV2UmV2cGF0aD1fLl9wcmV2UG9seWdvbnM9bnVsbCksTS5kYXR1bShmKSxTLmRhdHVtKGYpLGZ1bmN0aW9uKGUsaSxhKXt2YXIgbyx1PWFbMF0udHJhY2UsZj1jLmhhc01hcmtlcnModSksaD1jLmhhc1RleHQodSkscD10dCh1KSxkPWV0LG09ZXQ7aWYoZnx8aCl7dmFyIGc9cyxfPXUuc3RhY2tncm91cCx3PV8mJiJpbmZlciB6ZXJvIj09PXQuX2Z1bGxMYXlvdXQuX3NjYXR0ZXJTdGFja09wdHNbeC5faWQrYi5faWRdW19dLnN0YWNrZ2Fwczt1Lm1hcmtlci5tYXhkaXNwbGF5ZWR8fHUuX25lZWRzQ3VsbD9nPXc/SzpKOl8mJiF3JiYoZz1RKSxmJiYoZD1nKSxoJiYobT1nKX12YXIgVCxrPShvPWUuc2VsZWN0QWxsKCJwYXRoLnBvaW50IikuZGF0YShkLHApKS5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmNsYXNzZWQoInBvaW50IiwhMCk7diYmay5jYWxsKGwucG9pbnRTdHlsZSx1LHQpLmNhbGwobC50cmFuc2xhdGVQb2ludHMseCxiKS5zdHlsZSgib3BhY2l0eSIsMCkudHJhbnNpdGlvbigpLnN0eWxlKCJvcGFjaXR5IiwxKSxvLm9yZGVyKCksZiYmKFQ9bC5tYWtlUG9pbnRTdHlsZUZucyh1KSksby5lYWNoKChmdW5jdGlvbihlKXt2YXIgaT1uLnNlbGVjdCh0aGlzKSxhPXkoaSk7bC50cmFuc2xhdGVQb2ludChlLGEseCxiKT8obC5zaW5nbGVQb2ludFN0eWxlKGUsYSx1LFQsdCksci5sYXllckNsaXBJZCYmbC5oaWRlT3V0c2lkZVJhbmdlUG9pbnQoZSxhLHgsYix1LnhjYWxlbmRhcix1LnljYWxlbmRhciksdS5jdXN0b21kYXRhJiZpLmNsYXNzZWQoInBsb3RseS1jdXN0b21kYXRhIixudWxsIT09ZS5kYXRhJiZ2b2lkIDAhPT1lLmRhdGEpKTphLnJlbW92ZSgpfSkpLHY/by5leGl0KCkudHJhbnNpdGlvbigpLnN0eWxlKCJvcGFjaXR5IiwwKS5yZW1vdmUoKTpvLmV4aXQoKS5yZW1vdmUoKSwobz1pLnNlbGVjdEFsbCgiZyIpLmRhdGEobSxwKSkuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJ0ZXh0cG9pbnQiLCEwKS5hcHBlbmQoInRleHQiKSxvLm9yZGVyKCksby5lYWNoKChmdW5jdGlvbih0KXt2YXIgZT1uLnNlbGVjdCh0aGlzKSxpPXkoZS5zZWxlY3QoInRleHQiKSk7bC50cmFuc2xhdGVQb2ludCh0LGkseCxiKT9yLmxheWVyQ2xpcElkJiZsLmhpZGVPdXRzaWRlUmFuZ2VQb2ludCh0LGUseCxiLHUueGNhbGVuZGFyLHUueWNhbGVuZGFyKTplLnJlbW92ZSgpfSkpLG8uc2VsZWN0QWxsKCJ0ZXh0IikuY2FsbChsLnRleHRQb2ludFN0eWxlLHUsdCkuZWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9eC5jMnAodC54KSxyPWIuYzJwKHQueSk7bi5zZWxlY3QodGhpcykuc2VsZWN0QWxsKCJ0c3Bhbi5saW5lIikuZWFjaCgoZnVuY3Rpb24oKXt5KG4uc2VsZWN0KHRoaXMpKS5hdHRyKHt4OmUseTpyfSl9KSl9KSksby5leGl0KCkucmVtb3ZlKCl9KE0sUyxmKTt2YXIgWD0hMT09PV8uY2xpcG9uYXhpcz9udWxsOnIubGF5ZXJDbGlwSWQ7bC5zZXRDbGlwVXJsKE0sWCx0KSxsLnNldENsaXBVcmwoUyxYLHQpfWZ1bmN0aW9uIFoodCl7eSh0KS5hdHRyKCJkIiwiTTAsMFoiKX1mdW5jdGlvbiBKKHQpe3JldHVybiB0LmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIXQuZ2FwJiZ0LnZpc30pKX1mdW5jdGlvbiBLKHQpe3JldHVybiB0LmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQudmlzfSkpfWZ1bmN0aW9uIFEodCl7cmV0dXJuIHQuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4hdC5nYXB9KSl9ZnVuY3Rpb24gJCh0KXtyZXR1cm4gdC5pZH1mdW5jdGlvbiB0dCh0KXtpZih0LmlkcylyZXR1cm4gJH1mdW5jdGlvbiBldCgpe3JldHVybiExfX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsaSxhLGMpe3ZhciB1LGgsZD0hYSxtPSEhYSYmYS5kdXJhdGlvbj4wLGc9Zih0LGUscik7KCh1PWkuc2VsZWN0QWxsKCJnLnRyYWNlIikuZGF0YShnLChmdW5jdGlvbih0KXtyZXR1cm4gdFswXS50cmFjZS51aWR9KSkpLmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLChmdW5jdGlvbih0KXtyZXR1cm4idHJhY2Ugc2NhdHRlciB0cmFjZSIrdFswXS50cmFjZS51aWR9KSkuc3R5bGUoInN0cm9rZS1taXRlcmxpbWl0IiwyKSx1Lm9yZGVyKCksZnVuY3Rpb24odCxlLHIpe2UuZWFjaCgoZnVuY3Rpb24oZSl7dmFyIGk9byhuLnNlbGVjdCh0aGlzKSwiZyIsImZpbGxzIik7bC5zZXRDbGlwVXJsKGksci5sYXllckNsaXBJZCx0KTt2YXIgYT1lWzBdLnRyYWNlLGM9W107YS5fb3duZmlsbCYmYy5wdXNoKCJfb3duRmlsbCIpLGEuX25leHR0cmFjZSYmYy5wdXNoKCJfbmV4dEZpbGwiKTt2YXIgdT1pLnNlbGVjdEFsbCgiZyIpLmRhdGEoYyxzKTt1LmVudGVyKCkuYXBwZW5kKCJnIiksdS5leGl0KCkuZWFjaCgoZnVuY3Rpb24odCl7YVt0XT1udWxsfSkpLnJlbW92ZSgpLHUub3JkZXIoKS5lYWNoKChmdW5jdGlvbih0KXthW3RdPW8obi5zZWxlY3QodGhpcyksInBhdGgiLCJqcy1maWxsIil9KSl9KSl9KHQsdSxlKSxtKT8oYyYmKGg9YygpKSxuLnRyYW5zaXRpb24oKS5kdXJhdGlvbihhLmR1cmF0aW9uKS5lYXNlKGEuZWFzaW5nKS5lYWNoKCJlbmQiLChmdW5jdGlvbigpe2gmJmgoKX0pKS5lYWNoKCJpbnRlcnJ1cHQiLChmdW5jdGlvbigpe2gmJmgoKX0pKS5lYWNoKChmdW5jdGlvbigpe2kuc2VsZWN0QWxsKCJnLnRyYWNlIikuZWFjaCgoZnVuY3Rpb24ocixuKXtwKHQsbixlLHIsZyx0aGlzLGEpfSkpfSkpKTp1LmVhY2goKGZ1bmN0aW9uKHIsbil7cCh0LG4sZSxyLGcsdGhpcyxhKX0pKTtkJiZ1LmV4aXQoKS5yZW1vdmUoKSxpLnNlbGVjdEFsbCgicGF0aDpub3QoW2RdKSIpLnJlbW92ZSgpfX0seyIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjM4OSwiLi4vLi4vbGliIjo1MTUsIi4uLy4uL2xpYi9wb2x5Z29uIjo1MjcsIi4uLy4uL3JlZ2lzdHJ5Ijo2NDcsIi4vbGluZV9wb2ludHMiOjk1MCwiLi9saW5rX3RyYWNlcyI6OTUyLCIuL3N1YnR5cGVzIjo5NjEsIkBwbG90bHkvZDMiOjU4fV0sOTU4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vc3VidHlwZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixpLGEsbyxzPXQuY2QsbD10LnhheGlzLGM9dC55YXhpcyx1PVtdLGY9c1swXS50cmFjZTtpZighbi5oYXNNYXJrZXJzKGYpJiYhbi5oYXNUZXh0KGYpKXJldHVybltdO2lmKCExPT09ZSlmb3Iocj0wO3I8cy5sZW5ndGg7cisrKXNbcl0uc2VsZWN0ZWQ9MDtlbHNlIGZvcihyPTA7cjxzLmxlbmd0aDtyKyspaT1zW3JdLGE9bC5jMnAoaS54KSxvPWMuYzJwKGkueSksbnVsbCE9PWkuaSYmZS5jb250YWlucyhbYSxvXSwhMSxyLHQpPyh1LnB1c2goe3BvaW50TnVtYmVyOmkuaSx4OmwuYzJkKGkueCkseTpjLmMyZChpLnkpfSksaS5zZWxlY3RlZD0xKTppLnNlbGVjdGVkPTA7cmV0dXJuIHV9fSx7Ii4vc3VidHlwZXMiOjk2MX1dLDk1OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1bIm9yaWVudGF0aW9uIiwiZ3JvdXBub3JtIiwic3RhY2tnYXBzIl07ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGkpe3ZhciBhPXIuX3NjYXR0ZXJTdGFja09wdHMsbz1pKCJzdGFja2dyb3VwIik7aWYobyl7dmFyIHM9ZS54YXhpcytlLnlheGlzLGw9YVtzXTtsfHwobD1hW3NdPXt9KTt2YXIgYz1sW29dLHU9ITE7Yz9jLnRyYWNlcy5wdXNoKGUpOihjPWxbb109e3RyYWNlSW5kaWNlczpbXSx0cmFjZXM6W2VdfSx1PSEwKTtmb3IodmFyIGY9e29yaWVudGF0aW9uOmUueCYmIWUueT8iaCI6InYifSxoPTA7aDxuLmxlbmd0aDtoKyspe3ZhciBwPW5baF0sZD1wKyJGb3VuZCI7aWYoIWNbZF0pe3ZhciBtPXZvaWQgMCE9PXRbcF0sZz0ib3JpZW50YXRpb24iPT09cDtpZigobXx8dSkmJihjW3BdPWkocCxmW3BdKSxnJiYoYy5maWxsRGZsdD0iaCI9PT1jW3BdPyJ0b25leHR4IjoidG9uZXh0eSIpLG0mJihjW2RdPSEwLCF1JiYoZGVsZXRlIGMudHJhY2VzWzBdW3BdLGcpKSkpZm9yKHZhciB2PTA7djxjLnRyYWNlcy5sZW5ndGgtMTt2Kyspe3ZhciB5PWMudHJhY2VzW3ZdO3kuX2lucHV0LmZpbGwhPT15LmZpbGwmJih5LmZpbGw9Yy5maWxsRGZsdCl9fX1yZXR1cm4gY319fSx7fV0sOTYwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLGE9dCgiLi4vLi4vcmVnaXN0cnkiKTtmdW5jdGlvbiBvKHQsZSxyKXtpLnBvaW50U3R5bGUodC5zZWxlY3RBbGwoInBhdGgucG9pbnQiKSxlLHIpfWZ1bmN0aW9uIHModCxlLHIpe2kudGV4dFBvaW50U3R5bGUodC5zZWxlY3RBbGwoInRleHQiKSxlLHIpfWUuZXhwb3J0cz17c3R5bGU6ZnVuY3Rpb24odCl7dmFyIGU9bi5zZWxlY3QodCkuc2VsZWN0QWxsKCJnLnRyYWNlLnNjYXR0ZXIiKTtlLnN0eWxlKCJvcGFjaXR5IiwoZnVuY3Rpb24odCl7cmV0dXJuIHRbMF0udHJhY2Uub3BhY2l0eX0pKSxlLnNlbGVjdEFsbCgiZy5wb2ludHMiKS5lYWNoKChmdW5jdGlvbihlKXtvKG4uc2VsZWN0KHRoaXMpLGUudHJhY2V8fGVbMF0udHJhY2UsdCl9KSksZS5zZWxlY3RBbGwoImcudGV4dCIpLmVhY2goKGZ1bmN0aW9uKGUpe3Mobi5zZWxlY3QodGhpcyksZS50cmFjZXx8ZVswXS50cmFjZSx0KX0pKSxlLnNlbGVjdEFsbCgiZy50cmFjZSBwYXRoLmpzLWxpbmUiKS5jYWxsKGkubGluZUdyb3VwU3R5bGUpLGUuc2VsZWN0QWxsKCJnLnRyYWNlIHBhdGguanMtZmlsbCIpLmNhbGwoaS5maWxsR3JvdXBTdHlsZSx0KSxhLmdldENvbXBvbmVudE1ldGhvZCgiZXJyb3JiYXJzIiwic3R5bGUiKShlKX0sc3R5bGVQb2ludHM6byxzdHlsZVRleHQ6cyxzdHlsZU9uU2VsZWN0OmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1lWzBdLnRyYWNlO24uc2VsZWN0ZWRwb2ludHM/KGkuc2VsZWN0ZWRQb2ludFN0eWxlKHIuc2VsZWN0QWxsKCJwYXRoLnBvaW50IiksbiksaS5zZWxlY3RlZFRleHRTdHlsZShyLnNlbGVjdEFsbCgidGV4dCIpLG4pKToobyhyLG4sdCkscyhyLG4sdCkpfX19LHsiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjozODksIi4uLy4uL3JlZ2lzdHJ5Ijo2NDcsIkBwbG90bHkvZDMiOjU4fV0sOTYxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpO2UuZXhwb3J0cz17aGFzTGluZXM6ZnVuY3Rpb24odCl7cmV0dXJuIHQudmlzaWJsZSYmdC5tb2RlJiYtMSE9PXQubW9kZS5pbmRleE9mKCJsaW5lcyIpfSxoYXNNYXJrZXJzOmZ1bmN0aW9uKHQpe3JldHVybiB0LnZpc2libGUmJih0Lm1vZGUmJi0xIT09dC5tb2RlLmluZGV4T2YoIm1hcmtlcnMiKXx8InNwbG9tIj09PXQudHlwZSl9LGhhc1RleHQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQudmlzaWJsZSYmdC5tb2RlJiYtMSE9PXQubW9kZS5pbmRleE9mKCJ0ZXh0Iil9LGlzQnViYmxlOmZ1bmN0aW9uKHQpe3JldHVybiBuLmlzUGxhaW5PYmplY3QodC5tYXJrZXIpJiZuLmlzQXJyYXlPclR5cGVkQXJyYXkodC5tYXJrZXIuc2l6ZSl9fX0seyIuLi8uLi9saWIiOjUxNX1dLDk2MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsaSxhKXthPWF8fHt9LGkoInRleHRwb3NpdGlvbiIpLG4uY29lcmNlRm9udChpLCJ0ZXh0Zm9udCIsci5mb250KSxhLm5vU2VsZWN0fHwoaSgic2VsZWN0ZWQudGV4dGZvbnQuY29sb3IiKSxpKCJ1bnNlbGVjdGVkLnRleHRmb250LmNvbG9yIikpfX0seyIuLi8uLi9saWIiOjUxNX1dLDk2MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL3JlZ2lzdHJ5Iik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGEpe3ZhciBvLHM9YSgieCIpLGw9YSgieSIpO2lmKGkuZ2V0Q29tcG9uZW50TWV0aG9kKCJjYWxlbmRhcnMiLCJoYW5kbGVUcmFjZURlZmF1bHRzIikodCxlLFsieCIsInkiXSxyKSxzKXt2YXIgYz1uLm1pblJvd0xlbmd0aChzKTtsP289TWF0aC5taW4oYyxuLm1pblJvd0xlbmd0aChsKSk6KG89YyxhKCJ5MCIpLGEoImR5IikpfWVsc2V7aWYoIWwpcmV0dXJuIDA7bz1uLm1pblJvd0xlbmd0aChsKSxhKCJ4MCIpLGEoImR4Iil9cmV0dXJuIGUuX2xlbmd0aD1vLG99fSx7Ii4uLy4uL2xpYiI6NTE1LCIuLi8uLi9yZWdpc3RyeSI6NjQ3fV0sOTY0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NjYXR0ZXIvYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiKSxhPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2Zvcm1hdF9hdHRyaWJ1dGVzIikuYXhpc0hvdmVyRm9ybWF0LG89dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxzPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS50ZXh0dGVtcGxhdGVBdHRycyxsPXQoIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiKSxjPXQoIi4uLy4uL2NvbnN0YW50cy9nbDNkX2Rhc2hlcyIpLHU9dCgiLi4vLi4vY29uc3RhbnRzL2dsM2RfbWFya2VycyIpLGY9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsaD10KCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIikub3ZlcnJpZGVBbGwscD10KCIuLi8uLi9saWIvc29ydF9vYmplY3Rfa2V5cyIpLGQ9bi5saW5lLG09bi5tYXJrZXIsZz1tLmxpbmUsdj1mKHt3aWR0aDpkLndpZHRoLGRhc2g6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpwKGMpLGRmbHQ6InNvbGlkIn19LGkoImxpbmUiKSk7dmFyIHk9ZS5leHBvcnRzPWgoe3g6bi54LHk6bi55LHo6e3ZhbFR5cGU6ImRhdGFfYXJyYXkifSx0ZXh0OmYoe30sbi50ZXh0LHt9KSx0ZXh0dGVtcGxhdGU6cyh7fSx7fSksaG92ZXJ0ZXh0OmYoe30sbi5ob3ZlcnRleHQse30pLGhvdmVydGVtcGxhdGU6bygpLHhob3ZlcmZvcm1hdDphKCJ4IikseWhvdmVyZm9ybWF0OmEoInkiKSx6aG92ZXJmb3JtYXQ6YSgieiIpLG1vZGU6Zih7fSxuLm1vZGUse2RmbHQ6ImxpbmVzK21hcmtlcnMifSksc3VyZmFjZWF4aXM6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbLTEsMCwxLDJdLGRmbHQ6LTF9LHN1cmZhY2Vjb2xvcjp7dmFsVHlwZToiY29sb3IifSxwcm9qZWN0aW9uOnt4OntzaG93Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxvcGFjaXR5Ont2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6MX0sc2NhbGU6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEwLGRmbHQ6Mi8zfX0seTp7c2hvdzp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0sb3BhY2l0eTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0OjF9LHNjYWxlOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxMCxkZmx0OjIvM319LHo6e3Nob3c6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LG9wYWNpdHk6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDoxfSxzY2FsZTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MTAsZGZsdDoyLzN9fX0sY29ubmVjdGdhcHM6bi5jb25uZWN0Z2FwcyxsaW5lOnYsbWFya2VyOmYoe3N5bWJvbDp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOnAodSksZGZsdDoiY2lyY2xlIixhcnJheU9rOiEwfSxzaXplOmYoe30sbS5zaXplLHtkZmx0Ojh9KSxzaXplcmVmOm0uc2l6ZXJlZixzaXplbWluOm0uc2l6ZW1pbixzaXplbW9kZTptLnNpemVtb2RlLG9wYWNpdHk6Zih7fSxtLm9wYWNpdHkse2FycmF5T2s6ITF9KSxjb2xvcmJhcjptLmNvbG9yYmFyLGxpbmU6Zih7d2lkdGg6Zih7fSxnLndpZHRoLHthcnJheU9rOiExfSl9LGkoIm1hcmtlci5saW5lIikpfSxpKCJtYXJrZXIiKSksdGV4dHBvc2l0aW9uOmYoe30sbi50ZXh0cG9zaXRpb24se2RmbHQ6InRvcCBjZW50ZXIifSksdGV4dGZvbnQ6e2NvbG9yOm4udGV4dGZvbnQuY29sb3Isc2l6ZTpuLnRleHRmb250LnNpemUsZmFtaWx5OmYoe30sbi50ZXh0Zm9udC5mYW1pbHkse2FycmF5T2s6ITF9KX0sb3BhY2l0eTpsLm9wYWNpdHksaG92ZXJpbmZvOmYoe30sbC5ob3ZlcmluZm8pfSwiY2FsYyIsIm5lc3RlZCIpO3kueC5lZGl0VHlwZT15LnkuZWRpdFR5cGU9eS56LmVkaXRUeXBlPSJjYWxjK2NsZWFyQXhpc1R5cGVzIn0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6Mzc0LCIuLi8uLi9jb25zdGFudHMvZ2wzZF9kYXNoZXMiOjQ4OCwiLi4vLi4vY29uc3RhbnRzL2dsM2RfbWFya2VycyI6NDg5LCIuLi8uLi9saWIvZXh0ZW5kIjo1MDUsIi4uLy4uL2xpYi9zb3J0X29iamVjdF9rZXlzIjo1MzgsIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiOjU0OCwiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyI6NTYyLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19mb3JtYXRfYXR0cmlidXRlcyI6NTY5LCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo2NDIsIi4uL3NjYXR0ZXIvYXR0cmlidXRlcyI6OTM2fV0sOTY1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NjYXR0ZXIvYXJyYXlzX3RvX2NhbGNkYXRhIiksaT10KCIuLi9zY2F0dGVyL2NvbG9yc2NhbGVfY2FsYyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPVt7eDohMSx5OiExLHRyYWNlOmUsdDp7fX1dO3JldHVybiBuKHIsZSksaSh0LGUpLHJ9fSx7Ii4uL3NjYXR0ZXIvYXJyYXlzX3RvX2NhbGNkYXRhIjo5MzUsIi4uL3NjYXR0ZXIvY29sb3JzY2FsZV9jYWxjIjo5Mzl9XSw5NjY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcmVnaXN0cnkiKTtmdW5jdGlvbiBpKHQsZSxyLGkpe2lmKCFlfHwhZS52aXNpYmxlKXJldHVybiBudWxsO2Zvcih2YXIgYT1uLmdldENvbXBvbmVudE1ldGhvZCgiZXJyb3JiYXJzIiwibWFrZUNvbXB1dGVFcnJvciIpKGUpLG89bmV3IEFycmF5KHQubGVuZ3RoKSxzPTA7czx0Lmxlbmd0aDtzKyspe3ZhciBsPWEoK3Rbc10scyk7aWYoImxvZyI9PT1pLnR5cGUpe3ZhciBjPWkuYzJsKHRbc10pLHU9dFtzXS1sWzBdLGY9dFtzXStsWzFdO2lmKG9bc109WyhpLmMybCh1LCEwKS1jKSpyLChpLmMybChmLCEwKS1jKSpyXSx1PjApe3ZhciBoPWkuYzJsKHUpO2kuX2xvd2VyTG9nRXJyb3JCb3VuZHx8KGkuX2xvd2VyTG9nRXJyb3JCb3VuZD1oKSxpLl9sb3dlckVycm9yQm91bmQ9TWF0aC5taW4oaS5fbG93ZXJMb2dFcnJvckJvdW5kLGgpfX1lbHNlIG9bc109Wy1sWzBdKnIsbFsxXSpyXX1yZXR1cm4gb31lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPVtpKHQueCx0LmVycm9yX3gsZVswXSxyLnhheGlzKSxpKHQueSx0LmVycm9yX3ksZVsxXSxyLnlheGlzKSxpKHQueix0LmVycm9yX3osZVsyXSxyLnpheGlzKV0sYT1mdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPHQubGVuZ3RoO2UrKylpZih0W2VdKXJldHVybiB0W2VdLmxlbmd0aDtyZXR1cm4gMH0obik7aWYoMD09PWEpcmV0dXJuIG51bGw7Zm9yKHZhciBvPW5ldyBBcnJheShhKSxzPTA7czxhO3MrKyl7Zm9yKHZhciBsPVtbMCwwLDBdLFswLDAsMF1dLGM9MDtjPDM7YysrKWlmKG5bY10pZm9yKHZhciB1PTA7dTwyO3UrKylsW3VdW2NdPW5bY11bc11bdV07b1tzXT1sfXJldHVybiBvfX0seyIuLi8uLi9yZWdpc3RyeSI6NjQ3fV0sOTY3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uLy4uL3N0YWNrZ2xfbW9kdWxlcyIpLmdsX2xpbmUzZCxpPXQoIi4uLy4uLy4uL3N0YWNrZ2xfbW9kdWxlcyIpLmdsX3NjYXR0ZXIzZCxhPXQoIi4uLy4uLy4uL3N0YWNrZ2xfbW9kdWxlcyIpLmdsX2Vycm9yM2Qsbz10KCIuLi8uLi8uLi9zdGFja2dsX21vZHVsZXMiKS5nbF9tZXNoM2Qscz10KCIuLi8uLi8uLi9zdGFja2dsX21vZHVsZXMiKS5kZWxhdW5heV90cmlhbmd1bGF0ZSxsPXQoIi4uLy4uL2xpYiIpLGM9dCgiLi4vLi4vbGliL3N0cjJyZ2JhcnJheSIpLHU9dCgiLi4vLi4vbGliL2dsX2Zvcm1hdF9jb2xvciIpLmZvcm1hdENvbG9yLGY9dCgiLi4vc2NhdHRlci9tYWtlX2J1YmJsZV9zaXplX2Z1bmMiKSxoPXQoIi4uLy4uL2NvbnN0YW50cy9nbDNkX2Rhc2hlcyIpLHA9dCgiLi4vLi4vY29uc3RhbnRzL2dsM2RfbWFya2VycyIpLGQ9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxtPXQoIi4uLy4uL2NvbXBvbmVudHMvZngvaGVscGVycyIpLmFwcGVuZEFycmF5UG9pbnRWYWx1ZSxnPXQoIi4vY2FsY19lcnJvcnMiKTtmdW5jdGlvbiB2KHQsZSl7dGhpcy5zY2VuZT10LHRoaXMudWlkPWUsdGhpcy5saW5lUGxvdD1udWxsLHRoaXMuc2NhdHRlclBsb3Q9bnVsbCx0aGlzLmVycm9yQmFycz1udWxsLHRoaXMudGV4dE1hcmtlcnM9bnVsbCx0aGlzLmRlbGF1bmF5TWVzaD1udWxsLHRoaXMuY29sb3I9bnVsbCx0aGlzLm1vZGU9IiIsdGhpcy5kYXRhUG9pbnRzPVtdLHRoaXMuYXhlc0JvdW5kcz1bWy0xLzAsLTEvMCwtMS8wXSxbMS8wLDEvMCwxLzBdXSx0aGlzLnRleHRMYWJlbHM9bnVsbCx0aGlzLmRhdGE9bnVsbH12YXIgeT12LnByb3RvdHlwZTtmdW5jdGlvbiB4KHQpe3JldHVybiBudWxsPT10PzA6dC5pbmRleE9mKCJsZWZ0Iik+LTE/LTE6dC5pbmRleE9mKCJyaWdodCIpPi0xPzE6MH1mdW5jdGlvbiBiKHQpe3JldHVybiBudWxsPT10PzA6dC5pbmRleE9mKCJ0b3AiKT4tMT8tMTp0LmluZGV4T2YoImJvdHRvbSIpPi0xPzE6MH1mdW5jdGlvbiBfKHQsZSl7cmV0dXJuIGUoNCp0KX1mdW5jdGlvbiB3KHQpe3JldHVybiBwW3RdfWZ1bmN0aW9uIFQodCxlLHIsbixpKXt2YXIgYT1udWxsO2lmKGwuaXNBcnJheU9yVHlwZWRBcnJheSh0KSl7YT1bXTtmb3IodmFyIG89MDtvPGU7bysrKXZvaWQgMD09PXRbb10/YVtvXT1uOmFbb109cih0W29dLGkpfWVsc2UgYT1yKHQsbC5pZGVudGl0eSk7cmV0dXJuIGF9ZnVuY3Rpb24gayh0LGUpe3ZhciByLG4saSxhLG8scyxoPVtdLHA9dC5mdWxsU2NlbmVMYXlvdXQsdj10LmRhdGFTY2FsZSx5PXAueGF4aXMsaz1wLnlheGlzLEE9cC56YXhpcyxNPWUubWFya2VyLFM9ZS5saW5lLEU9ZS54fHxbXSxMPWUueXx8W10sQz1lLnp8fFtdLFA9RS5sZW5ndGgsST1lLnhjYWxlbmRhcixPPWUueWNhbGVuZGFyLHo9ZS56Y2FsZW5kYXI7Zm9yKG89MDtvPFA7bysrKXI9eS5kMmwoRVtvXSwwLEkpKnZbMF0sbj1rLmQybChMW29dLDAsTykqdlsxXSxpPUEuZDJsKENbb10sMCx6KSp2WzJdLGhbb109W3IsbixpXTtpZihBcnJheS5pc0FycmF5KGUudGV4dCkpcz1lLnRleHQ7ZWxzZSBpZih2b2lkIDAhPT1lLnRleHQpZm9yKHM9bmV3IEFycmF5KFApLG89MDtvPFA7bysrKXNbb109ZS50ZXh0O2Z1bmN0aW9uIEQodCxlKXt2YXIgcj1wW3RdO3JldHVybiBkLnRpY2tUZXh0KHIsci5kMmwoZSksITApLnRleHR9dmFyIFI9ZS50ZXh0dGVtcGxhdGU7aWYoUil7dmFyIEY9dC5mdWxsTGF5b3V0Ll9kM2xvY2FsZSxCPUFycmF5LmlzQXJyYXkoUiksTj1CP01hdGgubWluKFIubGVuZ3RoLFApOlAsaj1CP2Z1bmN0aW9uKHQpe3JldHVybiBSW3RdfTpmdW5jdGlvbigpe3JldHVybiBSfTtmb3Iocz1uZXcgQXJyYXkoTiksbz0wO288TjtvKyspe3ZhciBVPXt4OkVbb10seTpMW29dLHo6Q1tvXX0sVj17eExhYmVsOkQoInhheGlzIixFW29dKSx5TGFiZWw6RCgieWF4aXMiLExbb10pLHpMYWJlbDpEKCJ6YXhpcyIsQ1tvXSl9LEg9e307bShILGUsbyk7dmFyIHE9ZS5fbWV0YXx8e307c1tvXT1sLnRleHR0ZW1wbGF0ZVN0cmluZyhqKG8pLFYsRixILFUscSl9fWlmKGE9e3Bvc2l0aW9uOmgsbW9kZTplLm1vZGUsdGV4dDpzfSwibGluZSJpbiBlJiYoYS5saW5lQ29sb3I9dShTLDEsUCksYS5saW5lV2lkdGg9Uy53aWR0aCxhLmxpbmVEYXNoZXM9Uy5kYXNoKSwibWFya2VyImluIGUpe3ZhciBHPWYoZSk7YS5zY2F0dGVyQ29sb3I9dShNLDEsUCksYS5zY2F0dGVyU2l6ZT1UKE0uc2l6ZSxQLF8sMjAsRyksYS5zY2F0dGVyTWFya2VyPVQoTS5zeW1ib2wsUCx3LCJcdTI1Y2YiKSxhLnNjYXR0ZXJMaW5lV2lkdGg9TS5saW5lLndpZHRoLGEuc2NhdHRlckxpbmVDb2xvcj11KE0ubGluZSwxLFApLGEuc2NhdHRlckFuZ2xlPTB9InRleHRwb3NpdGlvbiJpbiBlJiYoYS50ZXh0T2Zmc2V0PWZ1bmN0aW9uKHQpe3ZhciBlPVswLDBdO2lmKEFycmF5LmlzQXJyYXkodCkpZm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspZVtyXT1bMCwwXSx0W3JdJiYoZVtyXVswXT14KHRbcl0pLGVbcl1bMV09Yih0W3JdKSk7ZWxzZSBlWzBdPXgodCksZVsxXT1iKHQpO3JldHVybiBlfShlLnRleHRwb3NpdGlvbiksYS50ZXh0Q29sb3I9dShlLnRleHRmb250LDEsUCksYS50ZXh0U2l6ZT1UKGUudGV4dGZvbnQuc2l6ZSxQLGwuaWRlbnRpdHksMTIpLGEudGV4dEZvbnQ9ZS50ZXh0Zm9udC5mYW1pbHksYS50ZXh0QW5nbGU9MCk7dmFyIFk9WyJ4IiwieSIsInoiXTtmb3IoYS5wcm9qZWN0PVshMSwhMSwhMV0sYS5wcm9qZWN0U2NhbGU9WzEsMSwxXSxhLnByb2plY3RPcGFjaXR5PVsxLDEsMV0sbz0wO288MzsrK28pe3ZhciBXPWUucHJvamVjdGlvbltZW29dXTsoYS5wcm9qZWN0W29dPVcuc2hvdykmJihhLnByb2plY3RPcGFjaXR5W29dPVcub3BhY2l0eSxhLnByb2plY3RTY2FsZVtvXT1XLnNjYWxlKX1hLmVycm9yQm91bmRzPWcoZSx2LHApO3ZhciBYPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bMCwwLDBdLHI9W1swLDAsMF0sWzAsMCwwXSxbMCwwLDBdXSxuPVsxLDEsMV0saT0wO2k8MztpKyspe3ZhciBhPXRbaV07YSYmITEhPT1hLmNvcHlfenN0eWxlJiYhMSE9PXRbMl0udmlzaWJsZSYmKGE9dFsyXSksYSYmYS52aXNpYmxlJiYoZVtpXT1hLndpZHRoLzIscltpXT1jKGEuY29sb3IpLG5baV09YS50aGlja25lc3MpfXJldHVybntjYXBTaXplOmUsY29sb3I6cixsaW5lV2lkdGg6bn19KFtlLmVycm9yX3gsZS5lcnJvcl95LGUuZXJyb3Jfel0pO3JldHVybiBhLmVycm9yQ29sb3I9WC5jb2xvcixhLmVycm9yTGluZVdpZHRoPVgubGluZVdpZHRoLGEuZXJyb3JDYXBTaXplPVguY2FwU2l6ZSxhLmRlbGF1bmF5QXhpcz1lLnN1cmZhY2VheGlzLGEuZGVsYXVuYXlDb2xvcj1jKGUuc3VyZmFjZWNvbG9yKSxhfWZ1bmN0aW9uIEEodCl7aWYobC5pc0FycmF5T3JUeXBlZEFycmF5KHQpKXt2YXIgZT10WzBdO3JldHVybiBsLmlzQXJyYXlPclR5cGVkQXJyYXkoZSkmJih0PWUpLCJyZ2IoIit0LnNsaWNlKDAsMykubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCgyNTUqdCl9KSkrIikifXJldHVybiBudWxsfWZ1bmN0aW9uIE0odCl7cmV0dXJuIGwuaXNBcnJheU9yVHlwZWRBcnJheSh0KT80PT09dC5sZW5ndGgmJiJudW1iZXIiPT10eXBlb2YgdFswXT9BKHQpOnQubWFwKEEpOm51bGx9eS5oYW5kbGVQaWNrPWZ1bmN0aW9uKHQpe2lmKHQub2JqZWN0JiYodC5vYmplY3Q9PT10aGlzLmxpbmVQbG90fHx0Lm9iamVjdD09PXRoaXMuZGVsYXVuYXlNZXNofHx0Lm9iamVjdD09PXRoaXMudGV4dE1hcmtlcnN8fHQub2JqZWN0PT09dGhpcy5zY2F0dGVyUGxvdCkpe3ZhciBlPXQuaW5kZXg9dC5kYXRhLmluZGV4O3JldHVybiB0Lm9iamVjdC5oaWdobGlnaHQmJnQub2JqZWN0LmhpZ2hsaWdodChudWxsKSx0aGlzLnNjYXR0ZXJQbG90JiYodC5vYmplY3Q9dGhpcy5zY2F0dGVyUGxvdCx0aGlzLnNjYXR0ZXJQbG90LmhpZ2hsaWdodCh0LmRhdGEpKSx0LnRleHRMYWJlbD0iIix0aGlzLnRleHRMYWJlbHMmJihBcnJheS5pc0FycmF5KHRoaXMudGV4dExhYmVscyk/KHRoaXMudGV4dExhYmVsc1tlXXx8MD09PXRoaXMudGV4dExhYmVsc1tlXSkmJih0LnRleHRMYWJlbD10aGlzLnRleHRMYWJlbHNbZV0pOnQudGV4dExhYmVsPXRoaXMudGV4dExhYmVscyksdC50cmFjZUNvb3JkaW5hdGU9W3RoaXMuZGF0YS54W2VdLHRoaXMuZGF0YS55W2VdLHRoaXMuZGF0YS56W2VdXSwhMH19LHkudXBkYXRlPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbCxjLHU9dGhpcy5zY2VuZS5nbHBsb3QuZ2wsZj1oLnNvbGlkO3RoaXMuZGF0YT10O3ZhciBwPWsodGhpcy5zY2VuZSx0KTsibW9kZSJpbiBwJiYodGhpcy5tb2RlPXAubW9kZSksImxpbmVEYXNoZXMiaW4gcCYmcC5saW5lRGFzaGVzIGluIGgmJihmPWhbcC5saW5lRGFzaGVzXSksdGhpcy5jb2xvcj1NKHAuc2NhdHRlckNvbG9yKXx8TShwLmxpbmVDb2xvciksdGhpcy5kYXRhUG9pbnRzPXAucG9zaXRpb24sZT17Z2w6dGhpcy5zY2VuZS5nbHBsb3QuZ2wscG9zaXRpb246cC5wb3NpdGlvbixjb2xvcjpwLmxpbmVDb2xvcixsaW5lV2lkdGg6cC5saW5lV2lkdGh8fDEsZGFzaGVzOmZbMF0sZGFzaFNjYWxlOmZbMV0sb3BhY2l0eTp0Lm9wYWNpdHksY29ubmVjdEdhcHM6dC5jb25uZWN0Z2Fwc30sLTEhPT10aGlzLm1vZGUuaW5kZXhPZigibGluZXMiKT90aGlzLmxpbmVQbG90P3RoaXMubGluZVBsb3QudXBkYXRlKGUpOih0aGlzLmxpbmVQbG90PW4oZSksdGhpcy5saW5lUGxvdC5fdHJhY2U9dGhpcyx0aGlzLnNjZW5lLmdscGxvdC5hZGQodGhpcy5saW5lUGxvdCkpOnRoaXMubGluZVBsb3QmJih0aGlzLnNjZW5lLmdscGxvdC5yZW1vdmUodGhpcy5saW5lUGxvdCksdGhpcy5saW5lUGxvdC5kaXNwb3NlKCksdGhpcy5saW5lUGxvdD1udWxsKTt2YXIgZD10Lm9wYWNpdHk7aWYodC5tYXJrZXImJnQubWFya2VyLm9wYWNpdHkmJihkKj10Lm1hcmtlci5vcGFjaXR5KSxyPXtnbDp0aGlzLnNjZW5lLmdscGxvdC5nbCxwb3NpdGlvbjpwLnBvc2l0aW9uLGNvbG9yOnAuc2NhdHRlckNvbG9yLHNpemU6cC5zY2F0dGVyU2l6ZSxnbHlwaDpwLnNjYXR0ZXJNYXJrZXIsb3BhY2l0eTpkLG9ydGhvZ3JhcGhpYzohMCxsaW5lV2lkdGg6cC5zY2F0dGVyTGluZVdpZHRoLGxpbmVDb2xvcjpwLnNjYXR0ZXJMaW5lQ29sb3IscHJvamVjdDpwLnByb2plY3QscHJvamVjdFNjYWxlOnAucHJvamVjdFNjYWxlLHByb2plY3RPcGFjaXR5OnAucHJvamVjdE9wYWNpdHl9LC0xIT09dGhpcy5tb2RlLmluZGV4T2YoIm1hcmtlcnMiKT90aGlzLnNjYXR0ZXJQbG90P3RoaXMuc2NhdHRlclBsb3QudXBkYXRlKHIpOih0aGlzLnNjYXR0ZXJQbG90PWkociksdGhpcy5zY2F0dGVyUGxvdC5fdHJhY2U9dGhpcyx0aGlzLnNjYXR0ZXJQbG90LmhpZ2hsaWdodFNjYWxlPTEsdGhpcy5zY2VuZS5nbHBsb3QuYWRkKHRoaXMuc2NhdHRlclBsb3QpKTp0aGlzLnNjYXR0ZXJQbG90JiYodGhpcy5zY2VuZS5nbHBsb3QucmVtb3ZlKHRoaXMuc2NhdHRlclBsb3QpLHRoaXMuc2NhdHRlclBsb3QuZGlzcG9zZSgpLHRoaXMuc2NhdHRlclBsb3Q9bnVsbCksYz17Z2w6dGhpcy5zY2VuZS5nbHBsb3QuZ2wscG9zaXRpb246cC5wb3NpdGlvbixnbHlwaDpwLnRleHQsY29sb3I6cC50ZXh0Q29sb3Isc2l6ZTpwLnRleHRTaXplLGFuZ2xlOnAudGV4dEFuZ2xlLGFsaWdubWVudDpwLnRleHRPZmZzZXQsZm9udDpwLnRleHRGb250LG9ydGhvZ3JhcGhpYzohMCxsaW5lV2lkdGg6MCxwcm9qZWN0OiExLG9wYWNpdHk6dC5vcGFjaXR5fSx0aGlzLnRleHRMYWJlbHM9dC5ob3ZlcnRleHR8fHQudGV4dCwtMSE9PXRoaXMubW9kZS5pbmRleE9mKCJ0ZXh0Iik/dGhpcy50ZXh0TWFya2Vycz90aGlzLnRleHRNYXJrZXJzLnVwZGF0ZShjKToodGhpcy50ZXh0TWFya2Vycz1pKGMpLHRoaXMudGV4dE1hcmtlcnMuX3RyYWNlPXRoaXMsdGhpcy50ZXh0TWFya2Vycy5oaWdobGlnaHRTY2FsZT0xLHRoaXMuc2NlbmUuZ2xwbG90LmFkZCh0aGlzLnRleHRNYXJrZXJzKSk6dGhpcy50ZXh0TWFya2VycyYmKHRoaXMuc2NlbmUuZ2xwbG90LnJlbW92ZSh0aGlzLnRleHRNYXJrZXJzKSx0aGlzLnRleHRNYXJrZXJzLmRpc3Bvc2UoKSx0aGlzLnRleHRNYXJrZXJzPW51bGwpLGw9e2dsOnRoaXMuc2NlbmUuZ2xwbG90LmdsLHBvc2l0aW9uOnAucG9zaXRpb24sY29sb3I6cC5lcnJvckNvbG9yLGVycm9yOnAuZXJyb3JCb3VuZHMsbGluZVdpZHRoOnAuZXJyb3JMaW5lV2lkdGgsY2FwU2l6ZTpwLmVycm9yQ2FwU2l6ZSxvcGFjaXR5OnQub3BhY2l0eX0sdGhpcy5lcnJvckJhcnM/cC5lcnJvckJvdW5kcz90aGlzLmVycm9yQmFycy51cGRhdGUobCk6KHRoaXMuc2NlbmUuZ2xwbG90LnJlbW92ZSh0aGlzLmVycm9yQmFycyksdGhpcy5lcnJvckJhcnMuZGlzcG9zZSgpLHRoaXMuZXJyb3JCYXJzPW51bGwpOnAuZXJyb3JCb3VuZHMmJih0aGlzLmVycm9yQmFycz1hKGwpLHRoaXMuZXJyb3JCYXJzLl90cmFjZT10aGlzLHRoaXMuc2NlbmUuZ2xwbG90LmFkZCh0aGlzLmVycm9yQmFycykpLHAuZGVsYXVuYXlBeGlzPj0wKXt2YXIgbT1mdW5jdGlvbih0LGUscil7dmFyIG4saT0ocisxKSUzLGE9KHIrMiklMyxvPVtdLGw9W107Zm9yKG49MDtuPHQubGVuZ3RoOysrbil7dmFyIGM9dFtuXTshaXNOYU4oY1tpXSkmJmlzRmluaXRlKGNbaV0pJiYhaXNOYU4oY1thXSkmJmlzRmluaXRlKGNbYV0pJiYoby5wdXNoKFtjW2ldLGNbYV1dKSxsLnB1c2gobikpfXZhciB1PXMobyk7Zm9yKG49MDtuPHUubGVuZ3RoOysrbilmb3IodmFyIGY9dVtuXSxoPTA7aDxmLmxlbmd0aDsrK2gpZltoXT1sW2ZbaF1dO3JldHVybntwb3NpdGlvbnM6dCxjZWxsczp1LG1lc2hDb2xvcjplfX0ocC5wb3NpdGlvbixwLmRlbGF1bmF5Q29sb3IscC5kZWxhdW5heUF4aXMpO20ub3BhY2l0eT10Lm9wYWNpdHksdGhpcy5kZWxhdW5heU1lc2g/dGhpcy5kZWxhdW5heU1lc2gudXBkYXRlKG0pOihtLmdsPXUsdGhpcy5kZWxhdW5heU1lc2g9byhtKSx0aGlzLmRlbGF1bmF5TWVzaC5fdHJhY2U9dGhpcyx0aGlzLnNjZW5lLmdscGxvdC5hZGQodGhpcy5kZWxhdW5heU1lc2gpKX1lbHNlIHRoaXMuZGVsYXVuYXlNZXNoJiYodGhpcy5zY2VuZS5nbHBsb3QucmVtb3ZlKHRoaXMuZGVsYXVuYXlNZXNoKSx0aGlzLmRlbGF1bmF5TWVzaC5kaXNwb3NlKCksdGhpcy5kZWxhdW5heU1lc2g9bnVsbCl9LHkuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMubGluZVBsb3QmJih0aGlzLnNjZW5lLmdscGxvdC5yZW1vdmUodGhpcy5saW5lUGxvdCksdGhpcy5saW5lUGxvdC5kaXNwb3NlKCkpLHRoaXMuc2NhdHRlclBsb3QmJih0aGlzLnNjZW5lLmdscGxvdC5yZW1vdmUodGhpcy5zY2F0dGVyUGxvdCksdGhpcy5zY2F0dGVyUGxvdC5kaXNwb3NlKCkpLHRoaXMuZXJyb3JCYXJzJiYodGhpcy5zY2VuZS5nbHBsb3QucmVtb3ZlKHRoaXMuZXJyb3JCYXJzKSx0aGlzLmVycm9yQmFycy5kaXNwb3NlKCkpLHRoaXMudGV4dE1hcmtlcnMmJih0aGlzLnNjZW5lLmdscGxvdC5yZW1vdmUodGhpcy50ZXh0TWFya2VycyksdGhpcy50ZXh0TWFya2Vycy5kaXNwb3NlKCkpLHRoaXMuZGVsYXVuYXlNZXNoJiYodGhpcy5zY2VuZS5nbHBsb3QucmVtb3ZlKHRoaXMuZGVsYXVuYXlNZXNoKSx0aGlzLmRlbGF1bmF5TWVzaC5kaXNwb3NlKCkpfSxlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1uZXcgdih0LGUudWlkKTtyZXR1cm4gci51cGRhdGUoZSkscn19LHsiLi4vLi4vLi4vc3RhY2tnbF9tb2R1bGVzIjoxMTMzLCIuLi8uLi9jb21wb25lbnRzL2Z4L2hlbHBlcnMiOjQwMywiLi4vLi4vY29uc3RhbnRzL2dsM2RfZGFzaGVzIjo0ODgsIi4uLy4uL2NvbnN0YW50cy9nbDNkX21hcmtlcnMiOjQ4OSwiLi4vLi4vbGliIjo1MTUsIi4uLy4uL2xpYi9nbF9mb3JtYXRfY29sb3IiOjUxMSwiLi4vLi4vbGliL3N0cjJyZ2JhcnJheSI6NTQwLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NTY2LCIuLi9zY2F0dGVyL21ha2VfYnViYmxlX3NpemVfZnVuYyI6OTUzLCIuL2NhbGNfZXJyb3JzIjo5NjZ9XSw5Njg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcmVnaXN0cnkiKSxpPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vc2NhdHRlci9zdWJ0eXBlcyIpLG89dCgiLi4vc2NhdHRlci9tYXJrZXJfZGVmYXVsdHMiKSxzPXQoIi4uL3NjYXR0ZXIvbGluZV9kZWZhdWx0cyIpLGw9dCgiLi4vc2NhdHRlci90ZXh0X2RlZmF1bHRzIiksYz10KCIuL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsdSl7ZnVuY3Rpb24gZihyLG4pe3JldHVybiBpLmNvZXJjZSh0LGUsYyxyLG4pfWlmKGZ1bmN0aW9uKHQsZSxyLGkpe3ZhciBhPTAsbz1yKCJ4Iikscz1yKCJ5IiksbD1yKCJ6Iik7bi5nZXRDb21wb25lbnRNZXRob2QoImNhbGVuZGFycyIsImhhbmRsZVRyYWNlRGVmYXVsdHMiKSh0LGUsWyJ4IiwieSIsInoiXSxpKSxvJiZzJiZsJiYoYT1NYXRoLm1pbihvLmxlbmd0aCxzLmxlbmd0aCxsLmxlbmd0aCksZS5fbGVuZ3RoPWUuX3hsZW5ndGg9ZS5feWxlbmd0aD1lLl96bGVuZ3RoPWEpO3JldHVybiBhfSh0LGUsZix1KSl7ZigidGV4dCIpLGYoImhvdmVydGV4dCIpLGYoImhvdmVydGVtcGxhdGUiKSxmKCJ4aG92ZXJmb3JtYXQiKSxmKCJ5aG92ZXJmb3JtYXQiKSxmKCJ6aG92ZXJmb3JtYXQiKSxmKCJtb2RlIiksYS5oYXNMaW5lcyhlKSYmKGYoImNvbm5lY3RnYXBzIikscyh0LGUscix1LGYpKSxhLmhhc01hcmtlcnMoZSkmJm8odCxlLHIsdSxmLHtub1NlbGVjdDohMH0pLGEuaGFzVGV4dChlKSYmKGYoInRleHR0ZW1wbGF0ZSIpLGwodCxlLHUsZix7bm9TZWxlY3Q6ITB9KSk7dmFyIGg9KGUubGluZXx8e30pLmNvbG9yLHA9KGUubWFya2VyfHx7fSkuY29sb3I7Zigic3VyZmFjZWF4aXMiKT49MCYmZigic3VyZmFjZWNvbG9yIixofHxwKTtmb3IodmFyIGQ9WyJ4IiwieSIsInoiXSxtPTA7bTwzOysrbSl7dmFyIGc9InByb2plY3Rpb24uIitkW21dO2YoZysiLnNob3ciKSYmKGYoZysiLm9wYWNpdHkiKSxmKGcrIi5zY2FsZSIpKX12YXIgdj1uLmdldENvbXBvbmVudE1ldGhvZCgiZXJyb3JiYXJzIiwic3VwcGx5RGVmYXVsdHMiKTt2KHQsZSxofHxwfHxyLHtheGlzOiJ6In0pLHYodCxlLGh8fHB8fHIse2F4aXM6InkiLGluaGVyaXQ6InoifSksdih0LGUsaHx8cHx8cix7YXhpczoieCIsaW5oZXJpdDoieiJ9KX1lbHNlIGUudmlzaWJsZT0hMX19LHsiLi4vLi4vbGliIjo1MTUsIi4uLy4uL3JlZ2lzdHJ5Ijo2NDcsIi4uL3NjYXR0ZXIvbGluZV9kZWZhdWx0cyI6OTQ5LCIuLi9zY2F0dGVyL21hcmtlcl9kZWZhdWx0cyI6OTU1LCIuLi9zY2F0dGVyL3N1YnR5cGVzIjo5NjEsIi4uL3NjYXR0ZXIvdGV4dF9kZWZhdWx0cyI6OTYyLCIuL2F0dHJpYnV0ZXMiOjk2NH1dLDk2OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e3Bsb3Q6dCgiLi9jb252ZXJ0IiksYXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxtYXJrZXJTeW1ib2xzOnQoIi4uLy4uL2NvbnN0YW50cy9nbDNkX21hcmtlcnMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksY29sb3JiYXI6W3tjb250YWluZXI6Im1hcmtlciIsbWluOiJjbWluIixtYXg6ImNtYXgifSx7Y29udGFpbmVyOiJsaW5lIixtaW46ImNtaW4iLG1heDoiY21heCJ9XSxjYWxjOnQoIi4vY2FsYyIpLG1vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJzY2F0dGVyM2QiLGJhc2VQbG90TW9kdWxlOnQoIi4uLy4uL3Bsb3RzL2dsM2QiKSxjYXRlZ29yaWVzOlsiZ2wzZCIsInN5bWJvbHMiLCJzaG93TGVnZW5kIiwic2NhdHRlci1saWtlIl0sbWV0YTp7fX19LHsiLi4vLi4vY29uc3RhbnRzL2dsM2RfbWFya2VycyI6NDg5LCIuLi8uLi9wbG90cy9nbDNkIjo2MDcsIi4vYXR0cmlidXRlcyI6OTY0LCIuL2NhbGMiOjk2NSwiLi9jb252ZXJ0Ijo5NjcsIi4vZGVmYXVsdHMiOjk2OH1dLDk3MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9zY2F0dGVyL2F0dHJpYnV0ZXMiKSxpPXQoIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiKSxhPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS5ob3ZlcnRlbXBsYXRlQXR0cnMsbz10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikudGV4dHRlbXBsYXRlQXR0cnMscz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyIpLGw9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsYz1uLm1hcmtlcix1PW4ubGluZSxmPWMubGluZTtlLmV4cG9ydHM9e2NhcnBldDp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToiY2FsYyJ9LGE6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sYjp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxtb2RlOmwoe30sbi5tb2RlLHtkZmx0OiJtYXJrZXJzIn0pLHRleHQ6bCh7fSxuLnRleHQse30pLHRleHR0ZW1wbGF0ZTpvKHtlZGl0VHlwZToicGxvdCJ9LHtrZXlzOlsiYSIsImIiLCJ0ZXh0Il19KSxob3ZlcnRleHQ6bCh7fSxuLmhvdmVydGV4dCx7fSksbGluZTp7Y29sb3I6dS5jb2xvcix3aWR0aDp1LndpZHRoLGRhc2g6dS5kYXNoLHNoYXBlOmwoe30sdS5zaGFwZSx7dmFsdWVzOlsibGluZWFyIiwic3BsaW5lIl19KSxzbW9vdGhpbmc6dS5zbW9vdGhpbmcsZWRpdFR5cGU6ImNhbGMifSxjb25uZWN0Z2FwczpuLmNvbm5lY3RnYXBzLGZpbGw6bCh7fSxuLmZpbGwse3ZhbHVlczpbIm5vbmUiLCJ0b3NlbGYiLCJ0b25leHQiXSxkZmx0OiJub25lIn0pLGZpbGxjb2xvcjpuLmZpbGxjb2xvcixtYXJrZXI6bCh7c3ltYm9sOmMuc3ltYm9sLG9wYWNpdHk6Yy5vcGFjaXR5LG1heGRpc3BsYXllZDpjLm1heGRpc3BsYXllZCxzaXplOmMuc2l6ZSxzaXplcmVmOmMuc2l6ZXJlZixzaXplbWluOmMuc2l6ZW1pbixzaXplbW9kZTpjLnNpemVtb2RlLGxpbmU6bCh7d2lkdGg6Zi53aWR0aCxlZGl0VHlwZToiY2FsYyJ9LHMoIm1hcmtlci5saW5lIikpLGdyYWRpZW50OmMuZ3JhZGllbnQsZWRpdFR5cGU6ImNhbGMifSxzKCJtYXJrZXIiKSksdGV4dGZvbnQ6bi50ZXh0Zm9udCx0ZXh0cG9zaXRpb246bi50ZXh0cG9zaXRpb24sc2VsZWN0ZWQ6bi5zZWxlY3RlZCx1bnNlbGVjdGVkOm4udW5zZWxlY3RlZCxob3ZlcmluZm86bCh7fSxpLmhvdmVyaW5mbyx7ZmxhZ3M6WyJhIiwiYiIsInRleHQiLCJuYW1lIl19KSxob3Zlcm9uOm4uaG92ZXJvbixob3ZlcnRlbXBsYXRlOmEoKX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiOjM3NCwiLi4vLi4vbGliL2V4dGVuZCI6NTA1LCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIjo1NjIsIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjY0MiwiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIjo5MzZ9XSw5NzE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxpPXQoIi4uL3NjYXR0ZXIvY29sb3JzY2FsZV9jYWxjIiksYT10KCIuLi9zY2F0dGVyL2FycmF5c190b19jYWxjZGF0YSIpLG89dCgiLi4vc2NhdHRlci9jYWxjX3NlbGVjdGlvbiIpLHM9dCgiLi4vc2NhdHRlci9jYWxjIikuY2FsY01hcmtlclNpemUsbD10KCIuLi9jYXJwZXQvbG9va3VwX2NhcnBldGlkIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS5fY2FycGV0VHJhY2U9bCh0LGUpO2lmKHImJnIudmlzaWJsZSYmImxlZ2VuZG9ubHkiIT09ci52aXNpYmxlKXt2YXIgYztlLnhheGlzPXIueGF4aXMsZS55YXhpcz1yLnlheGlzO3ZhciB1LGYsaD1lLl9sZW5ndGgscD1uZXcgQXJyYXkoaCksZD0hMTtmb3IoYz0wO2M8aDtjKyspaWYodT1lLmFbY10sZj1lLmJbY10sbih1KSYmbihmKSl7dmFyIG09ci5hYjJ4eSgrdSwrZiwhMCksZz1yLmlzVmlzaWJsZSgrdSwrZik7Z3x8KGQ9ITApLHBbY109e3g6bVswXSx5Om1bMV0sYTp1LGI6Zix2aXM6Z319ZWxzZSBwW2NdPXt4OiExLHk6ITF9O3JldHVybiBlLl9uZWVkc0N1bGw9ZCxwWzBdLmNhcnBldD1yLHBbMF0udHJhY2U9ZSxzKGUsaCksaSh0LGUpLGEocCxlKSxvKHAsZSkscH19fSx7Ii4uL2NhcnBldC9sb29rdXBfY2FycGV0aWQiOjcxNywiLi4vc2NhdHRlci9hcnJheXNfdG9fY2FsY2RhdGEiOjkzNSwiLi4vc2NhdHRlci9jYWxjIjo5MzcsIi4uL3NjYXR0ZXIvY2FsY19zZWxlY3Rpb24iOjkzOCwiLi4vc2NhdHRlci9jb2xvcnNjYWxlX2NhbGMiOjkzOSwiZmFzdC1pc251bWVyaWMiOjE5MH1dLDk3MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uL3NjYXR0ZXIvY29uc3RhbnRzIiksYT10KCIuLi9zY2F0dGVyL3N1YnR5cGVzIiksbz10KCIuLi9zY2F0dGVyL21hcmtlcl9kZWZhdWx0cyIpLHM9dCgiLi4vc2NhdHRlci9saW5lX2RlZmF1bHRzIiksbD10KCIuLi9zY2F0dGVyL2xpbmVfc2hhcGVfZGVmYXVsdHMiKSxjPXQoIi4uL3NjYXR0ZXIvdGV4dF9kZWZhdWx0cyIpLHU9dCgiLi4vc2NhdHRlci9maWxsY29sb3JfZGVmYXVsdHMiKSxmPXQoIi4vYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixoKXtmdW5jdGlvbiBwKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxmLHIsaSl9cCgiY2FycGV0IiksZS54YXhpcz0ieCIsZS55YXhpcz0ieSI7dmFyIGQ9cCgiYSIpLG09cCgiYiIpLGc9TWF0aC5taW4oZC5sZW5ndGgsbS5sZW5ndGgpO2lmKGcpe2UuX2xlbmd0aD1nLHAoInRleHQiKSxwKCJ0ZXh0dGVtcGxhdGUiKSxwKCJob3ZlcnRleHQiKSxwKCJtb2RlIixnPGkuUFRTX0xJTkVTT05MWT8ibGluZXMrbWFya2VycyI6ImxpbmVzIiksYS5oYXNMaW5lcyhlKSYmKHModCxlLHIsaCxwKSxsKHQsZSxwKSxwKCJjb25uZWN0Z2FwcyIpKSxhLmhhc01hcmtlcnMoZSkmJm8odCxlLHIsaCxwLHtncmFkaWVudDohMH0pLGEuaGFzVGV4dChlKSYmYyh0LGUsaCxwKTt2YXIgdj1bXTsoYS5oYXNNYXJrZXJzKGUpfHxhLmhhc1RleHQoZSkpJiYocCgibWFya2VyLm1heGRpc3BsYXllZCIpLHYucHVzaCgicG9pbnRzIikpLHAoImZpbGwiKSwibm9uZSIhPT1lLmZpbGwmJih1KHQsZSxyLHApLGEuaGFzTGluZXMoZSl8fGwodCxlLHApKSwidG9uZXh0IiE9PWUuZmlsbCYmInRvc2VsZiIhPT1lLmZpbGx8fHYucHVzaCgiZmlsbHMiKSwiZmlsbHMiIT09cCgiaG92ZXJvbiIsdi5qb2luKCIrIil8fCJwb2ludHMiKSYmcCgiaG92ZXJ0ZW1wbGF0ZSIpLG4uY29lcmNlU2VsZWN0aW9uTWFya2VyT3BhY2l0eShlLHApfWVsc2UgZS52aXNpYmxlPSExfX0seyIuLi8uLi9saWIiOjUxNSwiLi4vc2NhdHRlci9jb25zdGFudHMiOjk0MCwiLi4vc2NhdHRlci9maWxsY29sb3JfZGVmYXVsdHMiOjk0NCwiLi4vc2NhdHRlci9saW5lX2RlZmF1bHRzIjo5NDksIi4uL3NjYXR0ZXIvbGluZV9zaGFwZV9kZWZhdWx0cyI6OTUxLCIuLi9zY2F0dGVyL21hcmtlcl9kZWZhdWx0cyI6OTU1LCIuLi9zY2F0dGVyL3N1YnR5cGVzIjo5NjEsIi4uL3NjYXR0ZXIvdGV4dF9kZWZhdWx0cyI6OTYyLCIuL2F0dHJpYnV0ZXMiOjk3MH1dLDk3MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbixpKXt2YXIgYT1uW2ldO3JldHVybiB0LmE9YS5hLHQuYj1hLmIsdC55PWEueSx0fX0se31dLDk3NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj17fSxuPWUuX2NhcnBldCxpPW4uYWIyaWooW3QuYSx0LmJdKSxhPU1hdGguZmxvb3IoaVswXSksbz1pWzBdLWEscz1NYXRoLmZsb29yKGlbMV0pLGw9aVsxXS1zLGM9bi5ldmFseHkoW10sYSxzLG8sbCk7cmV0dXJuIHIueUxhYmVsPWNbMV0udG9GaXhlZCgzKSxyfX0se31dLDk3NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9zY2F0dGVyL2hvdmVyIiksaT10KCIuLi8uLi9saWIiKS5maWxsVGV4dDtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYSl7dmFyIG89bih0LGUscixhKTtpZihvJiYhMSE9PW9bMF0uaW5kZXgpe3ZhciBzPW9bMF07aWYodm9pZCAwPT09cy5pbmRleCl7dmFyIGw9MS1zLnkwL3QueWEuX2xlbmd0aCxjPXQueGEuX2xlbmd0aCx1PWMqbC8yLGY9Yy11O3JldHVybiBzLngwPU1hdGgubWF4KE1hdGgubWluKHMueDAsZiksdSkscy54MT1NYXRoLm1heChNYXRoLm1pbihzLngxLGYpLHUpLG99dmFyIGg9cy5jZFtzLmluZGV4XTtzLmE9aC5hLHMuYj1oLmIscy54TGFiZWxWYWw9dm9pZCAwLHMueUxhYmVsVmFsPXZvaWQgMDt2YXIgcD1zLnRyYWNlLGQ9cC5fY2FycGV0LG09cC5fbW9kdWxlLmZvcm1hdExhYmVscyhoLHApO3MueUxhYmVsPW0ueUxhYmVsLGRlbGV0ZSBzLnRleHQ7dmFyIGc9W107aWYoIXAuaG92ZXJ0ZW1wbGF0ZSl7dmFyIHY9KGguaGl8fHAuaG92ZXJpbmZvKS5zcGxpdCgiKyIpOy0xIT09di5pbmRleE9mKCJhbGwiKSYmKHY9WyJhIiwiYiIsInRleHQiXSksLTEhPT12LmluZGV4T2YoImEiKSYmeShkLmFheGlzLGguYSksLTEhPT12LmluZGV4T2YoImIiKSYmeShkLmJheGlzLGguYiksZy5wdXNoKCJ5OiAiK3MueUxhYmVsKSwtMSE9PXYuaW5kZXhPZigidGV4dCIpJiZpKGgscCxnKSxzLmV4dHJhVGV4dD1nLmpvaW4oIjxicj4iKX1yZXR1cm4gb31mdW5jdGlvbiB5KHQsZSl7dmFyIHI7cj10LmxhYmVscHJlZml4JiZ0LmxhYmVscHJlZml4Lmxlbmd0aD4wP3QubGFiZWxwcmVmaXgucmVwbGFjZSgvID0gJC8sIiIpOnQuX2hvdmVydGl0bGUsZy5wdXNoKHIrIjogIitlLnRvRml4ZWQoMykrdC5sYWJlbHN1ZmZpeCl9fX0seyIuLi8uLi9saWIiOjUxNSwiLi4vc2NhdHRlci9ob3ZlciI6OTQ3fV0sOTc2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksY29sb3JiYXI6dCgiLi4vc2NhdHRlci9tYXJrZXJfY29sb3JiYXIiKSxmb3JtYXRMYWJlbHM6dCgiLi9mb3JtYXRfbGFiZWxzIiksY2FsYzp0KCIuL2NhbGMiKSxwbG90OnQoIi4vcGxvdCIpLHN0eWxlOnQoIi4uL3NjYXR0ZXIvc3R5bGUiKS5zdHlsZSxzdHlsZU9uU2VsZWN0OnQoIi4uL3NjYXR0ZXIvc3R5bGUiKS5zdHlsZU9uU2VsZWN0LGhvdmVyUG9pbnRzOnQoIi4vaG92ZXIiKSxzZWxlY3RQb2ludHM6dCgiLi4vc2NhdHRlci9zZWxlY3QiKSxldmVudERhdGE6dCgiLi9ldmVudF9kYXRhIiksbW9kdWxlVHlwZToidHJhY2UiLG5hbWU6InNjYXR0ZXJjYXJwZXQiLGJhc2VQbG90TW9kdWxlOnQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbiIpLGNhdGVnb3JpZXM6WyJzdmciLCJjYXJwZXQiLCJzeW1ib2xzIiwic2hvd0xlZ2VuZCIsImNhcnBldERlcGVuZGVudCIsInpvb21TY2FsZSJdLG1ldGE6e319fSx7Ii4uLy4uL3Bsb3RzL2NhcnRlc2lhbiI6NTc4LCIuLi9zY2F0dGVyL21hcmtlcl9jb2xvcmJhciI6OTU0LCIuLi9zY2F0dGVyL3NlbGVjdCI6OTU4LCIuLi9zY2F0dGVyL3N0eWxlIjo5NjAsIi4vYXR0cmlidXRlcyI6OTcwLCIuL2NhbGMiOjk3MSwiLi9kZWZhdWx0cyI6OTcyLCIuL2V2ZW50X2RhdGEiOjk3MywiLi9mb3JtYXRfbGFiZWxzIjo5NzQsIi4vaG92ZXIiOjk3NSwiLi9wbG90Ijo5Nzd9XSw5Nzc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vc2NhdHRlci9wbG90IiksaT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGE9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG8pe3ZhciBzLGwsYyx1PXJbMF1bMF0uY2FycGV0LGY9e3hheGlzOmkuZ2V0RnJvbUlkKHQsdS54YXhpc3x8IngiKSx5YXhpczppLmdldEZyb21JZCh0LHUueWF4aXN8fCJ5IikscGxvdDplLnBsb3R9O2ZvcihuKHQsZixyLG8pLHM9MDtzPHIubGVuZ3RoO3MrKylsPXJbc11bMF0udHJhY2UsYz1vLnNlbGVjdEFsbCgiZy50cmFjZSIrbC51aWQrIiAuanMtbGluZSIpLGEuc2V0Q2xpcFVybChjLHJbc11bMF0uY2FycGV0Ll9jbGlwUGF0aElkLHQpfX0seyIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjM4OSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjU2NiwiLi4vc2NhdHRlci9wbG90Ijo5NTd9XSw5Nzg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxpPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS50ZXh0dGVtcGxhdGVBdHRycyxhPXQoIi4uL3NjYXR0ZXIvYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyIpLHM9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiKSxsPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZy9hdHRyaWJ1dGVzIikuZGFzaCxjPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LHU9dCgiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyIpLm92ZXJyaWRlQWxsLGY9YS5tYXJrZXIsaD1hLmxpbmUscD1mLmxpbmU7ZS5leHBvcnRzPXUoe2xvbjp7dmFsVHlwZToiZGF0YV9hcnJheSJ9LGxhdDp7dmFsVHlwZToiZGF0YV9hcnJheSJ9LGxvY2F0aW9uczp7dmFsVHlwZToiZGF0YV9hcnJheSJ9LGxvY2F0aW9ubW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiSVNPLTMiLCJVU0Etc3RhdGVzIiwiY291bnRyeSBuYW1lcyIsImdlb2pzb24taWQiXSxkZmx0OiJJU08tMyJ9LGdlb2pzb246e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6ImNhbGMifSxmZWF0dXJlaWRrZXk6e3ZhbFR5cGU6InN0cmluZyIsZWRpdFR5cGU6ImNhbGMiLGRmbHQ6ImlkIn0sbW9kZTpjKHt9LGEubW9kZSx7ZGZsdDoibWFya2VycyJ9KSx0ZXh0OmMoe30sYS50ZXh0LHt9KSx0ZXh0dGVtcGxhdGU6aSh7ZWRpdFR5cGU6InBsb3QifSx7a2V5czpbImxhdCIsImxvbiIsImxvY2F0aW9uIiwidGV4dCJdfSksaG92ZXJ0ZXh0OmMoe30sYS5ob3ZlcnRleHQse30pLHRleHRmb250OmEudGV4dGZvbnQsdGV4dHBvc2l0aW9uOmEudGV4dHBvc2l0aW9uLGxpbmU6e2NvbG9yOmguY29sb3Isd2lkdGg6aC53aWR0aCxkYXNoOmx9LGNvbm5lY3RnYXBzOmEuY29ubmVjdGdhcHMsbWFya2VyOmMoe3N5bWJvbDpmLnN5bWJvbCxvcGFjaXR5OmYub3BhY2l0eSxzaXplOmYuc2l6ZSxzaXplcmVmOmYuc2l6ZXJlZixzaXplbWluOmYuc2l6ZW1pbixzaXplbW9kZTpmLnNpemVtb2RlLGNvbG9yYmFyOmYuY29sb3JiYXIsbGluZTpjKHt3aWR0aDpwLndpZHRofSxzKCJtYXJrZXIubGluZSIpKSxncmFkaWVudDpmLmdyYWRpZW50fSxzKCJtYXJrZXIiKSksZmlsbDp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsibm9uZSIsInRvc2VsZiJdLGRmbHQ6Im5vbmUifSxmaWxsY29sb3I6YS5maWxsY29sb3Isc2VsZWN0ZWQ6YS5zZWxlY3RlZCx1bnNlbGVjdGVkOmEudW5zZWxlY3RlZCxob3ZlcmluZm86Yyh7fSxvLmhvdmVyaW5mbyx7ZmxhZ3M6WyJsb24iLCJsYXQiLCJsb2NhdGlvbiIsInRleHQiLCJuYW1lIl19KSxob3ZlcnRlbXBsYXRlOm4oKX0sImNhbGMiLCJuZXN0ZWQiKX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6Mzc0LCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmcvYXR0cmlidXRlcyI6Mzg4LCIuLi8uLi9saWIvZXh0ZW5kIjo1MDUsIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiOjU0OCwiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyI6NTYyLCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo2NDIsIi4uL3NjYXR0ZXIvYXR0cmlidXRlcyI6OTM2fV0sOTc5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksaT10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQkFETlVNLGE9dCgiLi4vc2NhdHRlci9jb2xvcnNjYWxlX2NhbGMiKSxvPXQoIi4uL3NjYXR0ZXIvYXJyYXlzX3RvX2NhbGNkYXRhIikscz10KCIuLi9zY2F0dGVyL2NhbGNfc2VsZWN0aW9uIiksbD10KCIuLi8uLi9saWIiKS5fO2Z1bmN0aW9uIGModCl7cmV0dXJuIHQmJiJzdHJpbmciPT10eXBlb2YgdH1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcix1PUFycmF5LmlzQXJyYXkoZS5sb2NhdGlvbnMpLGY9dT9lLmxvY2F0aW9ucy5sZW5ndGg6ZS5fbGVuZ3RoLGg9bmV3IEFycmF5KGYpO3I9ZS5nZW9qc29uP2Z1bmN0aW9uKHQpe3JldHVybiBjKHQpfHxuKHQpfTpjO2Zvcih2YXIgcD0wO3A8ZjtwKyspe3ZhciBkPWhbcF09e307aWYodSl7dmFyIG09ZS5sb2NhdGlvbnNbcF07ZC5sb2M9cihtKT9tOm51bGx9ZWxzZXt2YXIgZz1lLmxvbltwXSx2PWUubGF0W3BdO24oZykmJm4odik/ZC5sb25sYXQ9WytnLCt2XTpkLmxvbmxhdD1baSxpXX19cmV0dXJuIG8oaCxlKSxhKHQsZSkscyhoLGUpLGYmJihoWzBdLnQ9e2xhYmVsczp7bGF0OmwodCwibGF0OiIpKyIgIixsb246bCh0LCJsb246IikrIiAifX0pLGh9fSx7Ii4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiOjQ5MSwiLi4vLi4vbGliIjo1MTUsIi4uL3NjYXR0ZXIvYXJyYXlzX3RvX2NhbGNkYXRhIjo5MzUsIi4uL3NjYXR0ZXIvY2FsY19zZWxlY3Rpb24iOjkzOCwiLi4vc2NhdHRlci9jb2xvcnNjYWxlX2NhbGMiOjkzOSwiZmFzdC1pc251bWVyaWMiOjE5MH1dLDk4MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uL3NjYXR0ZXIvc3VidHlwZXMiKSxhPXQoIi4uL3NjYXR0ZXIvbWFya2VyX2RlZmF1bHRzIiksbz10KCIuLi9zY2F0dGVyL2xpbmVfZGVmYXVsdHMiKSxzPXQoIi4uL3NjYXR0ZXIvdGV4dF9kZWZhdWx0cyIpLGw9dCgiLi4vc2NhdHRlci9maWxsY29sb3JfZGVmYXVsdHMiKSxjPXQoIi4vYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscix1KXtmdW5jdGlvbiBmKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxjLHIsaSl9dmFyIGgscD1mKCJsb2NhdGlvbnMiKTtpZihwJiZwLmxlbmd0aCl7dmFyIGQsbT1mKCJnZW9qc29uIik7KCJzdHJpbmciPT10eXBlb2YgbSYmIiIhPT1tfHxuLmlzUGxhaW5PYmplY3QobSkpJiYoZD0iZ2VvanNvbi1pZCIpLCJnZW9qc29uLWlkIj09PWYoImxvY2F0aW9ubW9kZSIsZCkmJmYoImZlYXR1cmVpZGtleSIpLGg9cC5sZW5ndGh9ZWxzZXt2YXIgZz1mKCJsb24iKXx8W10sdj1mKCJsYXQiKXx8W107aD1NYXRoLm1pbihnLmxlbmd0aCx2Lmxlbmd0aCl9aD8oZS5fbGVuZ3RoPWgsZigidGV4dCIpLGYoImhvdmVydGV4dCIpLGYoImhvdmVydGVtcGxhdGUiKSxmKCJtb2RlIiksaS5oYXNMaW5lcyhlKSYmKG8odCxlLHIsdSxmKSxmKCJjb25uZWN0Z2FwcyIpKSxpLmhhc01hcmtlcnMoZSkmJmEodCxlLHIsdSxmLHtncmFkaWVudDohMH0pLGkuaGFzVGV4dChlKSYmKGYoInRleHR0ZW1wbGF0ZSIpLHModCxlLHUsZikpLGYoImZpbGwiKSwibm9uZSIhPT1lLmZpbGwmJmwodCxlLHIsZiksbi5jb2VyY2VTZWxlY3Rpb25NYXJrZXJPcGFjaXR5KGUsZikpOmUudmlzaWJsZT0hMX19LHsiLi4vLi4vbGliIjo1MTUsIi4uL3NjYXR0ZXIvZmlsbGNvbG9yX2RlZmF1bHRzIjo5NDQsIi4uL3NjYXR0ZXIvbGluZV9kZWZhdWx0cyI6OTQ5LCIuLi9zY2F0dGVyL21hcmtlcl9kZWZhdWx0cyI6OTU1LCIuLi9zY2F0dGVyL3N1YnR5cGVzIjo5NjEsIi4uL3NjYXR0ZXIvdGV4dF9kZWZhdWx0cyI6OTYyLCIuL2F0dHJpYnV0ZXMiOjk3OH1dLDk4MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbixpKXt0Lmxvbj1lLmxvbix0LmxhdD1lLmxhdCx0LmxvY2F0aW9uPWUubG9jP2UubG9jOm51bGw7dmFyIGE9bltpXTtyZXR1cm4gYS5mSW4mJmEuZkluLnByb3BlcnRpZXMmJih0LnByb3BlcnRpZXM9YS5mSW4ucHJvcGVydGllcyksdH19LHt9XSw5ODI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBpPXt9LGE9cltlLmdlb10uX3N1YnBsb3QubW9ja0F4aXMsbz10LmxvbmxhdDtyZXR1cm4gaS5sb25MYWJlbD1uLnRpY2tUZXh0KGEsYS5jMmwob1swXSksITApLnRleHQsaS5sYXRMYWJlbD1uLnRpY2tUZXh0KGEsYS5jMmwob1sxXSksITApLnRleHQsaX19LHsiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjU2Nn1dLDk4MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2Z4IiksaT10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQkFETlVNLGE9dCgiLi4vc2NhdHRlci9nZXRfdHJhY2VfY29sb3IiKSxvPXQoIi4uLy4uL2xpYiIpLmZpbGxUZXh0LHM9dCgiLi9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbD10LmNkLGM9bFswXS50cmFjZSx1PXQueGEsZj10LnlhLGg9dC5zdWJwbG90LHA9aC5wcm9qZWN0aW9uLmlzTG9uTGF0T3ZlckVkZ2VzLGQ9aC5wcm9qZWN0O2lmKG4uZ2V0Q2xvc2VzdChsLChmdW5jdGlvbih0KXt2YXIgbj10LmxvbmxhdDtpZihuWzBdPT09aSlyZXR1cm4gMS8wO2lmKHAobikpcmV0dXJuIDEvMDt2YXIgYT1kKG4pLG89ZChbZSxyXSkscz1NYXRoLmFicyhhWzBdLW9bMF0pLGw9TWF0aC5hYnMoYVsxXS1vWzFdKSxjPU1hdGgubWF4KDMsdC5tcmN8fDApO3JldHVybiBNYXRoLm1heChNYXRoLnNxcnQocypzK2wqbCktYywxLTMvYyl9KSx0KSwhMSE9PXQuaW5kZXgpe3ZhciBtPWxbdC5pbmRleF0sZz1tLmxvbmxhdCx2PVt1LmMycChnKSxmLmMycChnKV0seT1tLm1yY3x8MTt0LngwPXZbMF0teSx0LngxPXZbMF0reSx0LnkwPXZbMV0teSx0LnkxPXZbMV0reSx0LmxvYz1tLmxvYyx0Lmxvbj1nWzBdLHQubGF0PWdbMV07dmFyIHg9e307eFtjLmdlb109e19zdWJwbG90Omh9O3ZhciBiPWMuX21vZHVsZS5mb3JtYXRMYWJlbHMobSxjLHgpO3JldHVybiB0LmxvbkxhYmVsPWIubG9uTGFiZWwsdC5sYXRMYWJlbD1iLmxhdExhYmVsLHQuY29sb3I9YShjLG0pLHQuZXh0cmFUZXh0PWZ1bmN0aW9uKHQsZSxyLG4pe2lmKHQuaG92ZXJ0ZW1wbGF0ZSlyZXR1cm47dmFyIGk9ZS5oaXx8dC5ob3ZlcmluZm8sYT0iYWxsIj09PWk/cy5ob3ZlcmluZm8uZmxhZ3M6aS5zcGxpdCgiKyIpLGw9LTEhPT1hLmluZGV4T2YoImxvY2F0aW9uIikmJkFycmF5LmlzQXJyYXkodC5sb2NhdGlvbnMpLGM9LTEhPT1hLmluZGV4T2YoImxvbiIpLHU9LTEhPT1hLmluZGV4T2YoImxhdCIpLGY9LTEhPT1hLmluZGV4T2YoInRleHQiKSxoPVtdO2Z1bmN0aW9uIHAodCl7cmV0dXJuIHQrIlx4YjAifWw/aC5wdXNoKGUubG9jKTpjJiZ1P2gucHVzaCgiKCIrcChyLmxhdExhYmVsKSsiLCAiK3Aoci5sb25MYWJlbCkrIikiKTpjP2gucHVzaChuLmxvbitwKHIubG9uTGFiZWwpKTp1JiZoLnB1c2gobi5sYXQrcChyLmxhdExhYmVsKSk7ZiYmbyhlLHQsaCk7cmV0dXJuIGguam9pbigiPGJyPiIpfShjLG0sdCxsWzBdLnQubGFiZWxzKSx0LmhvdmVydGVtcGxhdGU9Yy5ob3ZlcnRlbXBsYXRlLFt0XX19fSx7Ii4uLy4uL2NvbXBvbmVudHMvZngiOjQwNywiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NDkxLCIuLi8uLi9saWIiOjUxNSwiLi4vc2NhdHRlci9nZXRfdHJhY2VfY29sb3IiOjk0NiwiLi9hdHRyaWJ1dGVzIjo5Nzh9XSw5ODQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXthdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxjb2xvcmJhcjp0KCIuLi9zY2F0dGVyL21hcmtlcl9jb2xvcmJhciIpLGZvcm1hdExhYmVsczp0KCIuL2Zvcm1hdF9sYWJlbHMiKSxjYWxjOnQoIi4vY2FsYyIpLGNhbGNHZW9KU09OOnQoIi4vcGxvdCIpLmNhbGNHZW9KU09OLHBsb3Q6dCgiLi9wbG90IikucGxvdCxzdHlsZTp0KCIuL3N0eWxlIiksc3R5bGVPblNlbGVjdDp0KCIuLi9zY2F0dGVyL3N0eWxlIikuc3R5bGVPblNlbGVjdCxob3ZlclBvaW50czp0KCIuL2hvdmVyIiksZXZlbnREYXRhOnQoIi4vZXZlbnRfZGF0YSIpLHNlbGVjdFBvaW50czp0KCIuL3NlbGVjdCIpLG1vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJzY2F0dGVyZ2VvIixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9nZW8iKSxjYXRlZ29yaWVzOlsiZ2VvIiwic3ltYm9scyIsInNob3dMZWdlbmQiLCJzY2F0dGVyLWxpa2UiXSxtZXRhOnt9fX0seyIuLi8uLi9wbG90cy9nZW8iOjU5OCwiLi4vc2NhdHRlci9tYXJrZXJfY29sb3JiYXIiOjk1NCwiLi4vc2NhdHRlci9zdHlsZSI6OTYwLCIuL2F0dHJpYnV0ZXMiOjk3OCwiLi9jYWxjIjo5NzksIi4vZGVmYXVsdHMiOjk4MCwiLi9ldmVudF9kYXRhIjo5ODEsIi4vZm9ybWF0X2xhYmVscyI6OTgyLCIuL2hvdmVyIjo5ODMsIi4vcGxvdCI6OTg1LCIuL3NlbGVjdCI6OTg2LCIuL3N0eWxlIjo5ODd9XSw5ODU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9saWIvdG9wb2pzb25fdXRpbHMiKS5nZXRUb3BvanNvbkZlYXR1cmVzLG89dCgiLi4vLi4vbGliL2dlb2pzb25fdXRpbHMiKSxzPXQoIi4uLy4uL2xpYi9nZW9fbG9jYXRpb25fdXRpbHMiKSxsPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9hdXRvcmFuZ2UiKS5maW5kRXh0cmVtZXMsYz10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQkFETlVNLHU9dCgiLi4vc2NhdHRlci9jYWxjIikuY2FsY01hcmtlclNpemUsZj10KCIuLi9zY2F0dGVyL3N1YnR5cGVzIiksaD10KCIuL3N0eWxlIik7ZS5leHBvcnRzPXtjYWxjR2VvSlNPTjpmdW5jdGlvbih0LGUpe3ZhciByLG4saT10WzBdLnRyYWNlLG89ZVtpLmdlb10sZj1vLl9zdWJwbG90LGg9aS5fbGVuZ3RoO2lmKEFycmF5LmlzQXJyYXkoaS5sb2NhdGlvbnMpKXt2YXIgcD1pLmxvY2F0aW9ubW9kZSxkPSJnZW9qc29uLWlkIj09PXA/cy5leHRyYWN0VHJhY2VGZWF0dXJlKHQpOmEoaSxmLnRvcG9qc29uKTtmb3Iocj0wO3I8aDtyKyspe249dFtyXTt2YXIgbT0iZ2VvanNvbi1pZCI9PT1wP24uZk91dDpzLmxvY2F0aW9uVG9GZWF0dXJlKHAsbi5sb2MsZCk7bi5sb25sYXQ9bT9tLnByb3BlcnRpZXMuY3Q6W2MsY119fXZhciBnLHYseT17cGFkZGVkOiEwfTtpZigiZ2VvanNvbiI9PT1vLmZpdGJvdW5kcyYmImdlb2pzb24taWQiPT09aS5sb2NhdGlvbm1vZGUpe3ZhciB4PXMuY29tcHV0ZUJib3gocy5nZXRUcmFjZUdlb2pzb24oaSkpO2c9W3hbMF0seFsyXV0sdj1beFsxXSx4WzNdXX1lbHNle2ZvcihnPW5ldyBBcnJheShoKSx2PW5ldyBBcnJheShoKSxyPTA7cjxoO3IrKyluPXRbcl0sZ1tyXT1uLmxvbmxhdFswXSx2W3JdPW4ubG9ubGF0WzFdO3kucHBhZD11KGksaCl9aS5fZXh0cmVtZXMubG9uPWwoby5sb25heGlzLl9heCxnLHkpLGkuX2V4dHJlbWVzLmxhdD1sKG8ubGF0YXhpcy5fYXgsdix5KX0scGxvdDpmdW5jdGlvbih0LGUscil7dmFyIGE9ZS5sYXllcnMuZnJvbnRwbG90LnNlbGVjdCgiLnNjYXR0ZXJsYXllciIpLHM9aS5tYWtlVHJhY2VHcm91cHMoYSxyLCJ0cmFjZSBzY2F0dGVyZ2VvIik7ZnVuY3Rpb24gbCh0LGUpe3QubG9ubGF0WzBdPT09YyYmbi5zZWxlY3QoZSkucmVtb3ZlKCl9cy5zZWxlY3RBbGwoIioiKS5yZW1vdmUoKSxzLmVhY2goKGZ1bmN0aW9uKGUpe3ZhciByPW4uc2VsZWN0KHRoaXMpLGE9ZVswXS50cmFjZTtpZihmLmhhc0xpbmVzKGEpfHwibm9uZSIhPT1hLmZpbGwpe3ZhciBzPW8uY2FsY1RyYWNlVG9MaW5lQ29vcmRzKGUpLGM9Im5vbmUiIT09YS5maWxsP28ubWFrZVBvbHlnb24ocyk6by5tYWtlTGluZShzKTtyLnNlbGVjdEFsbCgicGF0aC5qcy1saW5lIikuZGF0YShbe2dlb2pzb246Yyx0cmFjZTphfV0pLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuY2xhc3NlZCgianMtbGluZSIsITApLnN0eWxlKCJzdHJva2UtbWl0ZXJsaW1pdCIsMil9Zi5oYXNNYXJrZXJzKGEpJiZyLnNlbGVjdEFsbCgicGF0aC5wb2ludCIpLmRhdGEoaS5pZGVudGl0eSkuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKCJwb2ludCIsITApLmVhY2goKGZ1bmN0aW9uKHQpe2wodCx0aGlzKX0pKSxmLmhhc1RleHQoYSkmJnIuc2VsZWN0QWxsKCJnIikuZGF0YShpLmlkZW50aXR5KS5lbnRlcigpLmFwcGVuZCgiZyIpLmFwcGVuZCgidGV4dCIpLmVhY2goKGZ1bmN0aW9uKHQpe2wodCx0aGlzKX0pKSxoKHQsZSl9KSl9fX0seyIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo0OTEsIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9saWIvZ2VvX2xvY2F0aW9uX3V0aWxzIjo1MDgsIi4uLy4uL2xpYi9nZW9qc29uX3V0aWxzIjo1MDksIi4uLy4uL2xpYi90b3BvanNvbl91dGlscyI6NTQ0LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXV0b3JhbmdlIjo1NjUsIi4uL3NjYXR0ZXIvY2FsYyI6OTM3LCIuLi9zY2F0dGVyL3N1YnR5cGVzIjo5NjEsIi4vc3R5bGUiOjk4NywiQHBsb3RseS9kMyI6NTh9XSw5ODY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vc2NhdHRlci9zdWJ0eXBlcyIpLGk9dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixhLG8scyxsLGM9dC5jZCx1PXQueGF4aXMsZj10LnlheGlzLGg9W10scD1jWzBdLnRyYWNlO2lmKCFuLmhhc01hcmtlcnMocCkmJiFuLmhhc1RleHQocCkpcmV0dXJuW107aWYoITE9PT1lKWZvcihsPTA7bDxjLmxlbmd0aDtsKyspY1tsXS5zZWxlY3RlZD0wO2Vsc2UgZm9yKGw9MDtsPGMubGVuZ3RoO2wrKykoYT0ocj1jW2xdKS5sb25sYXQpWzBdIT09aSYmKG89dS5jMnAoYSkscz1mLmMycChhKSxlLmNvbnRhaW5zKFtvLHNdLG51bGwsbCx0KT8oaC5wdXNoKHtwb2ludE51bWJlcjpsLGxvbjphWzBdLGxhdDphWzFdfSksci5zZWxlY3RlZD0xKTpyLnNlbGVjdGVkPTApO3JldHVybiBofX0seyIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo0OTEsIi4uL3NjYXR0ZXIvc3VidHlwZXMiOjk2MX1dLDk4NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxvPXQoIi4uL3NjYXR0ZXIvc3R5bGUiKSxzPW8uc3R5bGVQb2ludHMsbD1vLnN0eWxlVGV4dDtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtlJiZmdW5jdGlvbih0LGUpe3ZhciByPWVbMF0udHJhY2Usbz1lWzBdLm5vZGUzO28uc3R5bGUoIm9wYWNpdHkiLGVbMF0udHJhY2Uub3BhY2l0eSkscyhvLHIsdCksbChvLHIsdCksby5zZWxlY3RBbGwoInBhdGguanMtbGluZSIpLnN0eWxlKCJmaWxsIiwibm9uZSIpLmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPW4uc2VsZWN0KHRoaXMpLHI9dC50cmFjZSxvPXIubGluZXx8e307ZS5jYWxsKGEuc3Ryb2tlLG8uY29sb3IpLmNhbGwoaS5kYXNoTGluZSxvLmRhc2h8fCIiLG8ud2lkdGh8fDApLCJub25lIiE9PXIuZmlsbCYmZS5jYWxsKGEuZmlsbCxyLmZpbGxjb2xvcil9KSl9KHQsZSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjM2NywiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjozODksIi4uL3NjYXR0ZXIvc3R5bGUiOjk2MCwiQHBsb3RseS9kMyI6NTh9XSw5ODg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyIpLGk9dCgiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19mb3JtYXRfYXR0cmlidXRlcyIpLmF4aXNIb3ZlckZvcm1hdCxvPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIikscz10KCIuLi8uLi9saWIvc29ydF9vYmplY3Rfa2V5cyIpLGw9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsYz10KCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIikub3ZlcnJpZGVBbGwsdT10KCIuL2NvbnN0YW50cyIpLkRBU0hFUyxmPWkubGluZSxoPWkubWFya2VyLHA9aC5saW5lLGQ9ZS5leHBvcnRzPWMoe3g6aS54LHgwOmkueDAsZHg6aS5keCx5OmkueSx5MDppLnkwLGR5OmkuZHkseHBlcmlvZDppLnhwZXJpb2QseXBlcmlvZDppLnlwZXJpb2QseHBlcmlvZDA6aS54cGVyaW9kMCx5cGVyaW9kMDppLnlwZXJpb2QwLHhwZXJpb2RhbGlnbm1lbnQ6aS54cGVyaW9kYWxpZ25tZW50LHlwZXJpb2RhbGlnbm1lbnQ6aS55cGVyaW9kYWxpZ25tZW50LHhob3ZlcmZvcm1hdDphKCJ4IikseWhvdmVyZm9ybWF0OmEoInkiKSx0ZXh0OmkudGV4dCxob3ZlcnRleHQ6aS5ob3ZlcnRleHQsdGV4dHBvc2l0aW9uOmkudGV4dHBvc2l0aW9uLHRleHRmb250OmkudGV4dGZvbnQsbW9kZTp7dmFsVHlwZToiZmxhZ2xpc3QiLGZsYWdzOlsibGluZXMiLCJtYXJrZXJzIiwidGV4dCJdLGV4dHJhczpbIm5vbmUiXX0sbGluZTp7Y29sb3I6Zi5jb2xvcix3aWR0aDpmLndpZHRoLHNoYXBlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJsaW5lYXIiLCJodiIsInZoIiwiaHZoIiwidmh2Il0sZGZsdDoibGluZWFyIixlZGl0VHlwZToicGxvdCJ9LGRhc2g6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpzKHUpLGRmbHQ6InNvbGlkIn19LG1hcmtlcjpsKHt9LG8oIm1hcmtlciIpLHtzeW1ib2w6aC5zeW1ib2wsc2l6ZTpoLnNpemUsc2l6ZXJlZjpoLnNpemVyZWYsc2l6ZW1pbjpoLnNpemVtaW4sc2l6ZW1vZGU6aC5zaXplbW9kZSxvcGFjaXR5Omgub3BhY2l0eSxjb2xvcmJhcjpoLmNvbG9yYmFyLGxpbmU6bCh7fSxvKCJtYXJrZXIubGluZSIpLHt3aWR0aDpwLndpZHRofSl9KSxjb25uZWN0Z2FwczppLmNvbm5lY3RnYXBzLGZpbGw6bCh7fSxpLmZpbGwse2RmbHQ6Im5vbmUifSksZmlsbGNvbG9yOmkuZmlsbGNvbG9yLHNlbGVjdGVkOnttYXJrZXI6aS5zZWxlY3RlZC5tYXJrZXIsdGV4dGZvbnQ6aS5zZWxlY3RlZC50ZXh0Zm9udH0sdW5zZWxlY3RlZDp7bWFya2VyOmkudW5zZWxlY3RlZC5tYXJrZXIsdGV4dGZvbnQ6aS51bnNlbGVjdGVkLnRleHRmb250fSxvcGFjaXR5Om4ub3BhY2l0eX0sImNhbGMiLCJuZXN0ZWQiKTtkLnguZWRpdFR5cGU9ZC55LmVkaXRUeXBlPWQueDAuZWRpdFR5cGU9ZC55MC5lZGl0VHlwZT0iY2FsYytjbGVhckF4aXNUeXBlcyIsZC5ob3ZlcnRlbXBsYXRlPWkuaG92ZXJ0ZW1wbGF0ZSxkLnRleHR0ZW1wbGF0ZT1pLnRleHR0ZW1wbGF0ZX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6Mzc0LCIuLi8uLi9saWIvZXh0ZW5kIjo1MDUsIi4uLy4uL2xpYi9zb3J0X29iamVjdF9rZXlzIjo1MzgsIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiOjU0OCwiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyI6NTYyLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19mb3JtYXRfYXR0cmlidXRlcyI6NTY5LCIuLi9zY2F0dGVyL2F0dHJpYnV0ZXMiOjkzNiwiLi9jb25zdGFudHMiOjk5MX1dLDk4OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2hvdmVyIik7ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToic2NhdHRlcmdsIixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iKSxjYXRlZ29yaWVzOlsiZ2wiLCJyZWdsIiwiY2FydGVzaWFuIiwic3ltYm9scyIsImVycm9yQmFyc09LIiwic2hvd0xlZ2VuZCIsInNjYXR0ZXItbGlrZSJdLGF0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNyb3NzVHJhY2VEZWZhdWx0czp0KCIuLi9zY2F0dGVyL2Nyb3NzX3RyYWNlX2RlZmF1bHRzIiksY29sb3JiYXI6dCgiLi4vc2NhdHRlci9tYXJrZXJfY29sb3JiYXIiKSxmb3JtYXRMYWJlbHM6dCgiLi9mb3JtYXRfbGFiZWxzIiksY2FsYzp0KCIuL2NhbGMiKSxob3ZlclBvaW50czpuLmhvdmVyUG9pbnRzLHNlbGVjdFBvaW50czp0KCIuL3NlbGVjdCIpLG1ldGE6e319fSx7Ii4uLy4uL3Bsb3RzL2NhcnRlc2lhbiI6NTc4LCIuLi9zY2F0dGVyL2Nyb3NzX3RyYWNlX2RlZmF1bHRzIjo5NDIsIi4uL3NjYXR0ZXIvbWFya2VyX2NvbG9yYmFyIjo5NTQsIi4vYXR0cmlidXRlcyI6OTg4LCIuL2NhbGMiOjk5MCwiLi9kZWZhdWx0cyI6OTkzLCIuL2Zvcm1hdF9sYWJlbHMiOjk5NSwiLi9ob3ZlciI6OTk3LCIuL3NlbGVjdCI6MTAwMX1dLDk5MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L3BvaW50LWNsdXN0ZXIiKSxpPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIiksbz10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXV0b3JhbmdlIikuZmluZEV4dHJlbWVzLHM9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2FsaWduX3BlcmlvZCIpLGw9dCgiLi4vc2NhdHRlci9jYWxjIiksYz1sLmNhbGNNYXJrZXJTaXplLHU9bC5jYWxjQXhpc0V4cGFuc2lvbixmPWwuc2V0Rmlyc3RTY2F0dGVyLGg9dCgiLi4vc2NhdHRlci9jb2xvcnNjYWxlX2NhbGMiKSxwPXQoIi4vY29udmVydCIpLGQ9dCgiLi9zY2VuZV91cGRhdGUiKSxtPXQoIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiKS5CQUROVU0sZz10KCIuL2NvbnN0YW50cyIpLlRPT19NQU5ZX1BPSU5UUztmdW5jdGlvbiB2KHQsZSxyKXt2YXIgbj10Ll9leHRyZW1lc1tlLl9pZF0saT1vKGUsci5fYm5kcyx7cGFkZGVkOiEwfSk7bi5taW49bi5taW4uY29uY2F0KGkubWluKSxuLm1heD1uLm1heC5jb25jYXQoaS5tYXgpfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLG89dC5fZnVsbExheW91dCxsPWEuZ2V0RnJvbUlkKHQsZS54YXhpcykseT1hLmdldEZyb21JZCh0LGUueWF4aXMpLHg9by5fcGxvdHNbZS54YXhpcytlLnlheGlzXSxiPWUuX2xlbmd0aCxfPWI+PWcsdz0yKmIsVD17fSxrPWwubWFrZUNhbGNkYXRhKGUsIngiKSxBPXkubWFrZUNhbGNkYXRhKGUsInkiKSxNPXMoZSxsLCJ4IixrKSxTPXMoZSx5LCJ5IixBKSxFPU0udmFscyxMPVMudmFscztlLl94PUUsZS5feT1MLGUueHBlcmlvZGFsaWdubWVudCYmKGUuX29yaWdYPWssZS5feFN0YXJ0cz1NLnN0YXJ0cyxlLl94RW5kcz1NLmVuZHMpLGUueXBlcmlvZGFsaWdubWVudCYmKGUuX29yaWdZPUEsZS5feVN0YXJ0cz1TLnN0YXJ0cyxlLl95RW5kcz1TLmVuZHMpO3ZhciBDPW5ldyBBcnJheSh3KSxQPW5ldyBBcnJheShiKTtmb3Iocj0wO3I8YjtyKyspQ1syKnJdPUVbcl09PT1tP05hTjpFW3JdLENbMipyKzFdPUxbcl09PT1tP05hTjpMW3JdLFBbcl09cjtpZigibG9nIj09PWwudHlwZSlmb3Iocj0wO3I8dztyKz0yKUNbcl09bC5jMmwoQ1tyXSk7aWYoImxvZyI9PT15LnR5cGUpZm9yKHI9MTtyPHc7cis9MilDW3JdPXkuYzJsKENbcl0pO18mJiJsb2ciIT09bC50eXBlJiYibG9nIiE9PXkudHlwZT9ULnRyZWU9bihDKTpULmlkcz1QLGgodCxlKTt2YXIgSSxPPWZ1bmN0aW9uKHQsZSxyLG4sYSxvKXt2YXIgcz1wLnN0eWxlKHQscik7cy5tYXJrZXImJihzLm1hcmtlci5wb3NpdGlvbnM9bik7cy5saW5lJiZuLmxlbmd0aD4xJiZpLmV4dGVuZEZsYXQocy5saW5lLHAubGluZVBvc2l0aW9ucyh0LHIsbikpO2lmKHMuZXJyb3JYfHxzLmVycm9yWSl7dmFyIGw9cC5lcnJvckJhclBvc2l0aW9ucyh0LHIsbixhLG8pO3MuZXJyb3JYJiZpLmV4dGVuZEZsYXQocy5lcnJvclgsbC54KSxzLmVycm9yWSYmaS5leHRlbmRGbGF0KHMuZXJyb3JZLGwueSl9cy50ZXh0JiYoaS5leHRlbmRGbGF0KHMudGV4dCx7cG9zaXRpb25zOm59LHAudGV4dFBvc2l0aW9uKHQscixzLnRleHQscy5tYXJrZXIpKSxpLmV4dGVuZEZsYXQocy50ZXh0U2VsLHtwb3NpdGlvbnM6bn0scC50ZXh0UG9zaXRpb24odCxyLHMudGV4dCxzLm1hcmtlclNlbCkpLGkuZXh0ZW5kRmxhdChzLnRleHRVbnNlbCx7cG9zaXRpb25zOm59LHAudGV4dFBvc2l0aW9uKHQscixzLnRleHQscy5tYXJrZXJVbnNlbCkpKTtyZXR1cm4gc30odCwwLGUsQyxFLEwpLHo9ZCh0LHgpO3JldHVybiBmKG8sZSksXz9PLm1hcmtlciYmKEk9Ty5tYXJrZXIuc2l6ZUF2Z3x8TWF0aC5tYXgoTy5tYXJrZXIuc2l6ZSwzKSk6ST1jKGUsYiksdSh0LGUsbCx5LEUsTCxJKSxPLmVycm9yWCYmdihlLGwsTy5lcnJvclgpLE8uZXJyb3JZJiZ2KGUseSxPLmVycm9yWSksTy5maWxsJiYhei5maWxsMmQmJih6LmZpbGwyZD0hMCksTy5tYXJrZXImJiF6LnNjYXR0ZXIyZCYmKHouc2NhdHRlcjJkPSEwKSxPLmxpbmUmJiF6LmxpbmUyZCYmKHoubGluZTJkPSEwKSwhTy5lcnJvclgmJiFPLmVycm9yWXx8ei5lcnJvcjJkfHwoei5lcnJvcjJkPSEwKSxPLnRleHQmJiF6LmdsVGV4dCYmKHouZ2xUZXh0PSEwKSxPLm1hcmtlciYmKE8ubWFya2VyLnNuYXA9Yiksei5saW5lT3B0aW9ucy5wdXNoKE8ubGluZSksei5lcnJvclhPcHRpb25zLnB1c2goTy5lcnJvclgpLHouZXJyb3JZT3B0aW9ucy5wdXNoKE8uZXJyb3JZKSx6LmZpbGxPcHRpb25zLnB1c2goTy5maWxsKSx6Lm1hcmtlck9wdGlvbnMucHVzaChPLm1hcmtlciksei5tYXJrZXJTZWxlY3RlZE9wdGlvbnMucHVzaChPLm1hcmtlclNlbCksei5tYXJrZXJVbnNlbGVjdGVkT3B0aW9ucy5wdXNoKE8ubWFya2VyVW5zZWwpLHoudGV4dE9wdGlvbnMucHVzaChPLnRleHQpLHoudGV4dFNlbGVjdGVkT3B0aW9ucy5wdXNoKE8udGV4dFNlbCksei50ZXh0VW5zZWxlY3RlZE9wdGlvbnMucHVzaChPLnRleHRVbnNlbCksei5zZWxlY3RCYXRjaC5wdXNoKFtdKSx6LnVuc2VsZWN0QmF0Y2gucHVzaChbXSksVC5fc2NlbmU9eixULmluZGV4PXouY291bnQsVC54PUUsVC55PUwsVC5wb3NpdGlvbnM9Qyx6LmNvdW50KyssW3t4OiExLHk6ITEsdDpULHRyYWNlOmV9XX19LHsiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NDkxLCIuLi8uLi9saWIiOjUxNSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2FsaWduX3BlcmlvZCI6NTYzLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXV0b3JhbmdlIjo1NjUsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2lkcyI6NTcwLCIuLi9zY2F0dGVyL2NhbGMiOjkzNywiLi4vc2NhdHRlci9jb2xvcnNjYWxlX2NhbGMiOjkzOSwiLi9jb25zdGFudHMiOjk5MSwiLi9jb252ZXJ0Ijo5OTIsIi4vc2NlbmVfdXBkYXRlIjoxZTMsIkBwbG90bHkvcG9pbnQtY2x1c3RlciI6NTl9XSw5OTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtUT09fTUFOWV9QT0lOVFM6MWU1LFNZTUJPTF9TREZfU0laRToyMDAsU1lNQk9MX1NJWkU6MjAsU1lNQk9MX1NUUk9LRToxLERPVF9SRTovLWRvdC8sT1BFTl9SRTovLW9wZW4vLERBU0hFUzp7c29saWQ6WzFdLGRvdDpbMSwxXSxkYXNoOls0LDFdLGxvbmdkYXNoOls4LDFdLGRhc2hkb3Q6WzQsMSwxLDFdLGxvbmdkYXNoZG90Ols4LDEsMSwxXX19fSx7fV0sOTkyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksaT10KCJzdmctcGF0aC1zZGYiKSxhPXQoImNvbG9yLW5vcm1hbGl6ZSIpLG89dCgiLi4vLi4vcmVnaXN0cnkiKSxzPXQoIi4uLy4uL2xpYiIpLGw9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIiksYz10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19pZHMiKSx1PXQoIi4uLy4uL2xpYi9nbF9mb3JtYXRfY29sb3IiKS5mb3JtYXRDb2xvcixmPXQoIi4uL3NjYXR0ZXIvc3VidHlwZXMiKSxoPXQoIi4uL3NjYXR0ZXIvbWFrZV9idWJibGVfc2l6ZV9mdW5jIikscD10KCIuL2hlbHBlcnMiKSxkPXQoIi4vY29uc3RhbnRzIiksbT10KCIuLi8uLi9jb25zdGFudHMvaW50ZXJhY3Rpb25zIikuREVTRUxFQ1RESU0sZz17c3RhcnQ6MSxsZWZ0OjEsZW5kOi0xLHJpZ2h0Oi0xLG1pZGRsZTowLGNlbnRlcjowLGJvdHRvbToxLHRvcDotMX0sdj10KCIuLi8uLi9jb21wb25lbnRzL2Z4L2hlbHBlcnMiKS5hcHBlbmRBcnJheVBvaW50VmFsdWU7ZnVuY3Rpb24geSh0LGUpe3ZhciByLGk9dC5fZnVsbExheW91dCxhPWUuX2xlbmd0aCxvPWUudGV4dGZvbnQsbD1lLnRleHRwb3NpdGlvbixjPUFycmF5LmlzQXJyYXkobCk/bDpbbF0sdT1vLmNvbG9yLGY9by5zaXplLGg9by5mYW1pbHkscD17fSxkPXQuX2NvbnRleHQucGxvdEdsUGl4ZWxSYXRpbyxtPWUudGV4dHRlbXBsYXRlO2lmKG0pe3AudGV4dD1bXTt2YXIgZz1pLl9kM2xvY2FsZSx5PUFycmF5LmlzQXJyYXkobSkseD15P01hdGgubWluKG0ubGVuZ3RoLGEpOmEsYj15P2Z1bmN0aW9uKHQpe3JldHVybiBtW3RdfTpmdW5jdGlvbigpe3JldHVybiBtfTtmb3Iocj0wO3I8eDtyKyspe3ZhciBfPXtpOnJ9LHc9ZS5fbW9kdWxlLmZvcm1hdExhYmVscyhfLGUsaSksVD17fTt2KFQsZSxyKTt2YXIgaz1lLl9tZXRhfHx7fTtwLnRleHQucHVzaChzLnRleHR0ZW1wbGF0ZVN0cmluZyhiKHIpLHcsZyxULF8saykpfX1lbHNlIEFycmF5LmlzQXJyYXkoZS50ZXh0KSYmZS50ZXh0Lmxlbmd0aDxhP3AudGV4dD1lLnRleHQuc2xpY2UoKTpwLnRleHQ9ZS50ZXh0O2lmKEFycmF5LmlzQXJyYXkocC50ZXh0KSlmb3Iocj1wLnRleHQubGVuZ3RoO3I8YTtyKyspcC50ZXh0W3JdPSIiO2ZvcihwLm9wYWNpdHk9ZS5vcGFjaXR5LHAuZm9udD17fSxwLmFsaWduPVtdLHAuYmFzZWxpbmU9W10scj0wO3I8Yy5sZW5ndGg7cisrKXt2YXIgQT1jW3JdLnNwbGl0KC9ccysvKTtzd2l0Y2goQVsxXSl7Y2FzZSJsZWZ0IjpwLmFsaWduLnB1c2goInJpZ2h0Iik7YnJlYWs7Y2FzZSJyaWdodCI6cC5hbGlnbi5wdXNoKCJsZWZ0Iik7YnJlYWs7ZGVmYXVsdDpwLmFsaWduLnB1c2goQVsxXSl9c3dpdGNoKEFbMF0pe2Nhc2UidG9wIjpwLmJhc2VsaW5lLnB1c2goImJvdHRvbSIpO2JyZWFrO2Nhc2UiYm90dG9tIjpwLmJhc2VsaW5lLnB1c2goInRvcCIpO2JyZWFrO2RlZmF1bHQ6cC5iYXNlbGluZS5wdXNoKEFbMF0pfX1pZihBcnJheS5pc0FycmF5KHUpKWZvcihwLmNvbG9yPW5ldyBBcnJheShhKSxyPTA7cjxhO3IrKylwLmNvbG9yW3JdPXVbcl07ZWxzZSBwLmNvbG9yPXU7aWYocy5pc0FycmF5T3JUeXBlZEFycmF5KGYpfHxBcnJheS5pc0FycmF5KGgpKWZvcihwLmZvbnQ9bmV3IEFycmF5KGEpLHI9MDtyPGE7cisrKXt2YXIgTT1wLmZvbnRbcl09e307TS5zaXplPShzLmlzVHlwZWRBcnJheShmKT9mW3JdOkFycmF5LmlzQXJyYXkoZik/bihmW3JdKT9mW3JdOjA6ZikqZCxNLmZhbWlseT1BcnJheS5pc0FycmF5KGgpP2hbcl06aH1lbHNlIHAuZm9udD17c2l6ZTpmKmQsZmFtaWx5Omh9O3JldHVybiBwfWZ1bmN0aW9uIHgodCl7dmFyIGUscixuPXQuX2xlbmd0aCxpPXQubWFya2VyLG89e30sbD1zLmlzQXJyYXlPclR5cGVkQXJyYXkoaS5zeW1ib2wpLGM9cy5pc0FycmF5T3JUeXBlZEFycmF5KGkuY29sb3IpLGY9cy5pc0FycmF5T3JUeXBlZEFycmF5KGkubGluZS5jb2xvciksZD1zLmlzQXJyYXlPclR5cGVkQXJyYXkoaS5vcGFjaXR5KSxtPXMuaXNBcnJheU9yVHlwZWRBcnJheShpLnNpemUpLGc9cy5pc0FycmF5T3JUeXBlZEFycmF5KGkubGluZS53aWR0aCk7aWYobHx8KHI9cC5pc09wZW5TeW1ib2woaS5zeW1ib2wpKSxsfHxjfHxmfHxkKXtvLmNvbG9ycz1uZXcgQXJyYXkobiksby5ib3JkZXJDb2xvcnM9bmV3IEFycmF5KG4pO3ZhciB2PXUoaSxpLm9wYWNpdHksbikseT11KGkubGluZSxpLm9wYWNpdHksbik7aWYoIUFycmF5LmlzQXJyYXkoeVswXSkpe3ZhciB4PXk7Zm9yKHk9QXJyYXkobiksZT0wO2U8bjtlKyspeVtlXT14fWlmKCFBcnJheS5pc0FycmF5KHZbMF0pKXt2YXIgYj12O2Zvcih2PUFycmF5KG4pLGU9MDtlPG47ZSsrKXZbZV09Yn1mb3Ioby5jb2xvcnM9dixvLmJvcmRlckNvbG9ycz15LGU9MDtlPG47ZSsrKXtpZihsKXt2YXIgXz1pLnN5bWJvbFtlXTtyPXAuaXNPcGVuU3ltYm9sKF8pfXImJih5W2VdPXZbZV0uc2xpY2UoKSx2W2VdPXZbZV0uc2xpY2UoKSx2W2VdWzNdPTApfW8ub3BhY2l0eT10Lm9wYWNpdHl9ZWxzZSByPyhvLmNvbG9yPWEoaS5jb2xvciwidWludDgiKSxvLmNvbG9yWzNdPTAsby5ib3JkZXJDb2xvcj1hKGkuY29sb3IsInVpbnQ4IikpOihvLmNvbG9yPWEoaS5jb2xvciwidWludDgiKSxvLmJvcmRlckNvbG9yPWEoaS5saW5lLmNvbG9yLCJ1aW50OCIpKSxvLm9wYWNpdHk9dC5vcGFjaXR5Kmkub3BhY2l0eTtpZihsKWZvcihvLm1hcmtlcnM9bmV3IEFycmF5KG4pLGU9MDtlPG47ZSsrKW8ubWFya2Vyc1tlXT1FKGkuc3ltYm9sW2VdKTtlbHNlIG8ubWFya2VyPUUoaS5zeW1ib2wpO3ZhciB3LFQ9aCh0LDEpO2lmKG18fGcpe3ZhciBrLEE9by5zaXplcz1uZXcgQXJyYXkobiksTT1vLmJvcmRlclNpemVzPW5ldyBBcnJheShuKSxTPTA7aWYobSl7Zm9yKGU9MDtlPG47ZSsrKUFbZV09VChpLnNpemVbZV0pLFMrPUFbZV07az1TL259ZWxzZSBmb3Iodz1UKGkuc2l6ZSksZT0wO2U8bjtlKyspQVtlXT13O2lmKGcpZm9yKGU9MDtlPG47ZSsrKU1bZV09aS5saW5lLndpZHRoW2VdO2Vsc2UgZm9yKHc9aS5saW5lLndpZHRoLGU9MDtlPG47ZSsrKU1bZV09dztvLnNpemVBdmc9a31lbHNlIG8uc2l6ZT1UKGkmJmkuc2l6ZXx8MTApLG8uYm9yZGVyU2l6ZXM9VChpLmxpbmUud2lkdGgpO3JldHVybiBvfWZ1bmN0aW9uIGIodCxlKXt2YXIgcj10Lm1hcmtlcixuPXt9O3JldHVybiBlPyhlLm1hcmtlciYmZS5tYXJrZXIuc3ltYm9sP249eChzLmV4dGVuZEZsYXQoe30scixlLm1hcmtlcikpOmUubWFya2VyJiYoZS5tYXJrZXIuc2l6ZSYmKG4uc2l6ZT1lLm1hcmtlci5zaXplKSxlLm1hcmtlci5jb2xvciYmKG4uY29sb3JzPWUubWFya2VyLmNvbG9yKSx2b2lkIDAhPT1lLm1hcmtlci5vcGFjaXR5JiYobi5vcGFjaXR5PWUubWFya2VyLm9wYWNpdHkpKSxuKTpufWZ1bmN0aW9uIF8odCxlLHIpe3ZhciBuPXt9O2lmKCFyKXJldHVybiBuO2lmKHIudGV4dGZvbnQpe3ZhciBpPXtvcGFjaXR5OjEsdGV4dDplLnRleHQsdGV4dHRlbXBsYXRlOmUudGV4dHRlbXBsYXRlLHRleHRwb3NpdGlvbjplLnRleHRwb3NpdGlvbix0ZXh0Zm9udDpzLmV4dGVuZEZsYXQoe30sZS50ZXh0Zm9udCl9O3IudGV4dGZvbnQmJnMuZXh0ZW5kRmxhdChpLnRleHRmb250LHIudGV4dGZvbnQpLG49eSh0LGkpfXJldHVybiBufWZ1bmN0aW9uIHcodCxlLHIpe3ZhciBuPXtjYXBTaXplOjIqZS53aWR0aCpyLGxpbmVXaWR0aDplLnRoaWNrbmVzcypyLGNvbG9yOmUuY29sb3J9O3JldHVybiBlLmNvcHlfeXN0eWxlJiYobj10LmVycm9yX3kpLG59dmFyIFQ9ZC5TWU1CT0xfU0RGX1NJWkUsaz1kLlNZTUJPTF9TSVpFLEE9ZC5TWU1CT0xfU1RST0tFLE09e30sUz1sLnN5bWJvbEZ1bmNzWzBdKC4wNSprKTtmdW5jdGlvbiBFKHQpe2lmKCJjaXJjbGUiPT09dClyZXR1cm4gbnVsbDt2YXIgZSxyLG49bC5zeW1ib2xOdW1iZXIodCksYT1sLnN5bWJvbEZ1bmNzW24lMTAwXSxvPSEhbC5zeW1ib2xOb0RvdFtuJTEwMF0scz0hIWwuc3ltYm9sTm9GaWxsW24lMTAwXSxjPXAuaXNEb3RTeW1ib2wodCk7cmV0dXJuIE1bdF0/TVt0XTooZT1jJiYhbz9hKDEuMSprKStTOmEoaykscj1pKGUse3c6VCxoOlQsdmlld0JveDpbLWssLWssayxrXSxzdHJva2U6cz9BOi1BfSksTVt0XT1yLHJ8fG51bGwpfWUuZXhwb3J0cz17c3R5bGU6ZnVuY3Rpb24odCxlKXt2YXIgcixuPXttYXJrZXI6dm9pZCAwLG1hcmtlclNlbDp2b2lkIDAsbWFya2VyVW5zZWw6dm9pZCAwLGxpbmU6dm9pZCAwLGZpbGw6dm9pZCAwLGVycm9yWDp2b2lkIDAsZXJyb3JZOnZvaWQgMCx0ZXh0OnZvaWQgMCx0ZXh0U2VsOnZvaWQgMCx0ZXh0VW5zZWw6dm9pZCAwfSxpPXQuX2NvbnRleHQucGxvdEdsUGl4ZWxSYXRpbztpZighMCE9PWUudmlzaWJsZSlyZXR1cm4gbjtpZihmLmhhc1RleHQoZSkmJihuLnRleHQ9eSh0LGUpLG4udGV4dFNlbD1fKHQsZSxlLnNlbGVjdGVkKSxuLnRleHRVbnNlbD1fKHQsZSxlLnVuc2VsZWN0ZWQpKSxmLmhhc01hcmtlcnMoZSkmJihuLm1hcmtlcj14KGUpLG4ubWFya2VyU2VsPWIoZSxlLnNlbGVjdGVkKSxuLm1hcmtlclVuc2VsPWIoZSxlLnVuc2VsZWN0ZWQpLCFlLnVuc2VsZWN0ZWQmJnMuaXNBcnJheU9yVHlwZWRBcnJheShlLm1hcmtlci5vcGFjaXR5KSkpe3ZhciBhPWUubWFya2VyLm9wYWNpdHk7Zm9yKG4ubWFya2VyVW5zZWwub3BhY2l0eT1uZXcgQXJyYXkoYS5sZW5ndGgpLHI9MDtyPGEubGVuZ3RoO3IrKyluLm1hcmtlclVuc2VsLm9wYWNpdHlbcl09bSphW3JdfWlmKGYuaGFzTGluZXMoZSkpe24ubGluZT17b3ZlcmxheTohMCx0aGlja25lc3M6ZS5saW5lLndpZHRoKmksY29sb3I6ZS5saW5lLmNvbG9yLG9wYWNpdHk6ZS5vcGFjaXR5fTt2YXIgbz0oZC5EQVNIRVNbZS5saW5lLmRhc2hdfHxbMV0pLnNsaWNlKCk7Zm9yKHI9MDtyPG8ubGVuZ3RoOysrcilvW3JdKj1lLmxpbmUud2lkdGgqaTtuLmxpbmUuZGFzaGVzPW99cmV0dXJuIGUuZXJyb3JfeCYmZS5lcnJvcl94LnZpc2libGUmJihuLmVycm9yWD13KGUsZS5lcnJvcl94LGkpKSxlLmVycm9yX3kmJmUuZXJyb3JfeS52aXNpYmxlJiYobi5lcnJvclk9dyhlLGUuZXJyb3JfeSxpKSksZS5maWxsJiYibm9uZSIhPT1lLmZpbGwmJihuLmZpbGw9e2Nsb3NlZDohMCxmaWxsOmUuZmlsbGNvbG9yLHRoaWNrbmVzczowfSksbn0sbWFya2VyU3R5bGU6eCxtYXJrZXJTZWxlY3Rpb246YixsaW5lUG9zaXRpb25zOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbixpLGE9ci5sZW5ndGgsbz1hLzI7aWYoZi5oYXNMaW5lcyhlKSYmbylpZigiaHYiPT09ZS5saW5lLnNoYXBlKXtmb3Iobj1bXSxpPTA7aTxvLTE7aSsrKWlzTmFOKHJbMippXSl8fGlzTmFOKHJbMippKzFdKT9uLnB1c2goTmFOLE5hTixOYU4sTmFOKToobi5wdXNoKHJbMippXSxyWzIqaSsxXSksaXNOYU4oclsyKmkrMl0pfHxpc05hTihyWzIqaSszXSk/bi5wdXNoKE5hTixOYU4pOm4ucHVzaChyWzIqaSsyXSxyWzIqaSsxXSkpO24ucHVzaChyW2EtMl0sclthLTFdKX1lbHNlIGlmKCJodmgiPT09ZS5saW5lLnNoYXBlKXtmb3Iobj1bXSxpPTA7aTxvLTE7aSsrKWlmKGlzTmFOKHJbMippXSl8fGlzTmFOKHJbMippKzFdKXx8aXNOYU4oclsyKmkrMl0pfHxpc05hTihyWzIqaSszXSkpaXNOYU4oclsyKmldKXx8aXNOYU4oclsyKmkrMV0pP24ucHVzaChOYU4sTmFOKTpuLnB1c2goclsyKmldLHJbMippKzFdKSxuLnB1c2goTmFOLE5hTik7ZWxzZXt2YXIgcz0oclsyKmldK3JbMippKzJdKS8yO24ucHVzaChyWzIqaV0sclsyKmkrMV0scyxyWzIqaSsxXSxzLHJbMippKzNdKX1uLnB1c2goclthLTJdLHJbYS0xXSl9ZWxzZSBpZigidmh2Ij09PWUubGluZS5zaGFwZSl7Zm9yKG49W10saT0wO2k8by0xO2krKylpZihpc05hTihyWzIqaV0pfHxpc05hTihyWzIqaSsxXSl8fGlzTmFOKHJbMippKzJdKXx8aXNOYU4oclsyKmkrM10pKWlzTmFOKHJbMippXSl8fGlzTmFOKHJbMippKzFdKT9uLnB1c2goTmFOLE5hTik6bi5wdXNoKHJbMippXSxyWzIqaSsxXSksbi5wdXNoKE5hTixOYU4pO2Vsc2V7dmFyIGw9KHJbMippKzFdK3JbMippKzNdKS8yO24ucHVzaChyWzIqaV0sclsyKmkrMV0sclsyKmldLGwsclsyKmkrMl0sbCl9bi5wdXNoKHJbYS0yXSxyW2EtMV0pfWVsc2UgaWYoInZoIj09PWUubGluZS5zaGFwZSl7Zm9yKG49W10saT0wO2k8by0xO2krKylpc05hTihyWzIqaV0pfHxpc05hTihyWzIqaSsxXSk/bi5wdXNoKE5hTixOYU4sTmFOLE5hTik6KG4ucHVzaChyWzIqaV0sclsyKmkrMV0pLGlzTmFOKHJbMippKzJdKXx8aXNOYU4oclsyKmkrM10pP24ucHVzaChOYU4sTmFOKTpuLnB1c2goclsyKmldLHJbMippKzNdKSk7bi5wdXNoKHJbYS0yXSxyW2EtMV0pfWVsc2Ugbj1yO3ZhciBjPSExO2ZvcihpPTA7aTxuLmxlbmd0aDtpKyspaWYoaXNOYU4obltpXSkpe2M9ITA7YnJlYWt9dmFyIHU9Y3x8bi5sZW5ndGg+ZC5UT09fTUFOWV9QT0lOVFN8fGYuaGFzTWFya2VycyhlKT8icmVjdCI6InJvdW5kIjtpZihjJiZlLmNvbm5lY3RnYXBzKXt2YXIgaD1uWzBdLHA9blsxXTtmb3IoaT0wO2k8bi5sZW5ndGg7aSs9Milpc05hTihuW2ldKXx8aXNOYU4obltpKzFdKT8obltpXT1oLG5baSsxXT1wKTooaD1uW2ldLHA9bltpKzFdKX1yZXR1cm57am9pbjp1LHBvc2l0aW9uczpufX0sZXJyb3JCYXJQb3NpdGlvbnM6ZnVuY3Rpb24odCxlLHIsaSxhKXt2YXIgcz1vLmdldENvbXBvbmVudE1ldGhvZCgiZXJyb3JiYXJzIiwibWFrZUNvbXB1dGVFcnJvciIpLGw9Yy5nZXRGcm9tSWQodCxlLnhheGlzKSx1PWMuZ2V0RnJvbUlkKHQsZS55YXhpcyksZj1yLmxlbmd0aC8yLGg9e307ZnVuY3Rpb24gcCh0LGkpe3ZhciBhPWkuX2lkLmNoYXJBdCgwKSxvPWVbImVycm9yXyIrYV07aWYobyYmby52aXNpYmxlJiYoImxpbmVhciI9PT1pLnR5cGV8fCJsb2ciPT09aS50eXBlKSl7Zm9yKHZhciBsPXMobyksYz17eDowLHk6MX1bYV0sdT17eDpbMCwxLDIsM10seTpbMiwzLDAsMV19W2FdLHA9bmV3IEZsb2F0NjRBcnJheSg0KmYpLGQ9MS8wLG09LTEvMCxnPTAsdj0wO2c8ZjtnKyssdis9NCl7dmFyIHk9dFtnXTtpZihuKHkpKXt2YXIgeD1yWzIqZytjXSxiPWwoeSxnKSxfPWJbMF0sdz1iWzFdO2lmKG4oXykmJm4odykpe3ZhciBUPXktXyxrPXkrdztwW3YrdVswXV09eC1pLmMybChUKSxwW3YrdVsxXV09aS5jMmwoaykteCxwW3YrdVsyXV09MCxwW3YrdVszXV09MCxkPU1hdGgubWluKGQseS1fKSxtPU1hdGgubWF4KG0seSt3KX19fWhbYV09e3Bvc2l0aW9uczpyLGVycm9yczpwLF9ibmRzOltkLG1dfX19cmV0dXJuIHAoaSxsKSxwKGEsdSksaH0sdGV4dFBvc2l0aW9uOmZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpLGE9ZS5fbGVuZ3RoLG89e307aWYoZi5oYXNNYXJrZXJzKGUpKXt2YXIgcz1yLmZvbnQsbD1yLmFsaWduLGM9ci5iYXNlbGluZTtmb3Ioby5vZmZzZXQ9bmV3IEFycmF5KGEpLGk9MDtpPGE7aSsrKXt2YXIgdT1uLnNpemVzP24uc2l6ZXNbaV06bi5zaXplLGg9QXJyYXkuaXNBcnJheShzKT9zW2ldLnNpemU6cy5zaXplLHA9QXJyYXkuaXNBcnJheShsKT9sLmxlbmd0aD4xP2xbaV06bFswXTpsLGQ9QXJyYXkuaXNBcnJheShjKT9jLmxlbmd0aD4xP2NbaV06Y1swXTpjLG09Z1twXSx2PWdbZF0seT11P3UvLjgrMTowLHg9LXYqeS0uNSp2O28ub2Zmc2V0W2ldPVttKnkvaCx4L2hdfX1yZXR1cm4gb319fSx7Ii4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6Mzg5LCIuLi8uLi9jb21wb25lbnRzL2Z4L2hlbHBlcnMiOjQwMywiLi4vLi4vY29uc3RhbnRzL2ludGVyYWN0aW9ucyI6NDkwLCIuLi8uLi9saWIiOjUxNSwiLi4vLi4vbGliL2dsX2Zvcm1hdF9jb2xvciI6NTExLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19pZHMiOjU3MCwiLi4vLi4vcmVnaXN0cnkiOjY0NywiLi4vc2NhdHRlci9tYWtlX2J1YmJsZV9zaXplX2Z1bmMiOjk1MywiLi4vc2NhdHRlci9zdWJ0eXBlcyI6OTYxLCIuL2NvbnN0YW50cyI6OTkxLCIuL2hlbHBlcnMiOjk5NiwiY29sb3Itbm9ybWFsaXplIjo4OSwiZmFzdC1pc251bWVyaWMiOjE5MCwic3ZnLXBhdGgtc2RmIjozMTF9XSw5OTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9yZWdpc3RyeSIpLGE9dCgiLi9oZWxwZXJzIiksbz10KCIuL2F0dHJpYnV0ZXMiKSxzPXQoIi4uL3NjYXR0ZXIvY29uc3RhbnRzIiksbD10KCIuLi9zY2F0dGVyL3N1YnR5cGVzIiksYz10KCIuLi9zY2F0dGVyL3h5X2RlZmF1bHRzIiksdT10KCIuLi9zY2F0dGVyL3BlcmlvZF9kZWZhdWx0cyIpLGY9dCgiLi4vc2NhdHRlci9tYXJrZXJfZGVmYXVsdHMiKSxoPXQoIi4uL3NjYXR0ZXIvbGluZV9kZWZhdWx0cyIpLHA9dCgiLi4vc2NhdHRlci9maWxsY29sb3JfZGVmYXVsdHMiKSxkPXQoIi4uL3NjYXR0ZXIvdGV4dF9kZWZhdWx0cyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixtKXtmdW5jdGlvbiBnKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxvLHIsaSl9dmFyIHY9ISF0Lm1hcmtlciYmYS5pc09wZW5TeW1ib2wodC5tYXJrZXIuc3ltYm9sKSx5PWwuaXNCdWJibGUodCkseD1jKHQsZSxtLGcpO2lmKHgpe3UodCxlLG0sZyksZygieGhvdmVyZm9ybWF0IiksZygieWhvdmVyZm9ybWF0Iik7dmFyIGI9eDxzLlBUU19MSU5FU09OTFk/ImxpbmVzK21hcmtlcnMiOiJsaW5lcyI7ZygidGV4dCIpLGcoImhvdmVydGV4dCIpLGcoImhvdmVydGVtcGxhdGUiKSxnKCJtb2RlIixiKSxsLmhhc0xpbmVzKGUpJiYoZygiY29ubmVjdGdhcHMiKSxoKHQsZSxyLG0sZyksZygibGluZS5zaGFwZSIpKSxsLmhhc01hcmtlcnMoZSkmJihmKHQsZSxyLG0sZyksZygibWFya2VyLmxpbmUud2lkdGgiLHZ8fHk/MTowKSksbC5oYXNUZXh0KGUpJiYoZygidGV4dHRlbXBsYXRlIiksZCh0LGUsbSxnKSk7dmFyIF89KGUubGluZXx8e30pLmNvbG9yLHc9KGUubWFya2VyfHx7fSkuY29sb3I7ZygiZmlsbCIpLCJub25lIiE9PWUuZmlsbCYmcCh0LGUscixnKTt2YXIgVD1pLmdldENvbXBvbmVudE1ldGhvZCgiZXJyb3JiYXJzIiwic3VwcGx5RGVmYXVsdHMiKTtUKHQsZSxffHx3fHxyLHtheGlzOiJ5In0pLFQodCxlLF98fHd8fHIse2F4aXM6IngiLGluaGVyaXQ6InkifSksbi5jb2VyY2VTZWxlY3Rpb25NYXJrZXJPcGFjaXR5KGUsZyl9ZWxzZSBlLnZpc2libGU9ITF9fSx7Ii4uLy4uL2xpYiI6NTE1LCIuLi8uLi9yZWdpc3RyeSI6NjQ3LCIuLi9zY2F0dGVyL2NvbnN0YW50cyI6OTQwLCIuLi9zY2F0dGVyL2ZpbGxjb2xvcl9kZWZhdWx0cyI6OTQ0LCIuLi9zY2F0dGVyL2xpbmVfZGVmYXVsdHMiOjk0OSwiLi4vc2NhdHRlci9tYXJrZXJfZGVmYXVsdHMiOjk1NSwiLi4vc2NhdHRlci9wZXJpb2RfZGVmYXVsdHMiOjk1NiwiLi4vc2NhdHRlci9zdWJ0eXBlcyI6OTYxLCIuLi9zY2F0dGVyL3RleHRfZGVmYXVsdHMiOjk2MiwiLi4vc2NhdHRlci94eV9kZWZhdWx0cyI6OTYzLCIuL2F0dHJpYnV0ZXMiOjk4OCwiLi9oZWxwZXJzIjo5OTZ9XSw5OTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksYT10KCIuLi8uLi9jb25zdGFudHMvaW50ZXJhY3Rpb25zIikuREVTRUxFQ1RESU07ZS5leHBvcnRzPXtzdHlsZVRleHRTZWxlY3Rpb246ZnVuY3Rpb24odCl7dmFyIGUscixvPXRbMF0scz1vLnRyYWNlLGw9by50LGM9bC5fc2NlbmUsdT1sLmluZGV4LGY9Yy5zZWxlY3RCYXRjaFt1XSxoPWMudW5zZWxlY3RCYXRjaFt1XSxwPWMudGV4dE9wdGlvbnNbdV0sZD1jLnRleHRTZWxlY3RlZE9wdGlvbnNbdV18fHt9LG09Yy50ZXh0VW5zZWxlY3RlZE9wdGlvbnNbdV18fHt9LGc9bi5leHRlbmRGbGF0KHt9LHApO2lmKGYubGVuZ3RofHxoLmxlbmd0aCl7dmFyIHY9ZC5jb2xvcix5PW0uY29sb3IseD1wLmNvbG9yLGI9QXJyYXkuaXNBcnJheSh4KTtmb3IoZy5jb2xvcj1uZXcgQXJyYXkocy5fbGVuZ3RoKSxlPTA7ZTxmLmxlbmd0aDtlKyspcj1mW2VdLGcuY29sb3Jbcl09dnx8KGI/eFtyXTp4KTtmb3IoZT0wO2U8aC5sZW5ndGg7ZSsrKXtyPWhbZV07dmFyIF89Yj94W3JdOng7Zy5jb2xvcltyXT15fHwodj9fOmkuYWRkT3BhY2l0eShfLGEpKX19Yy5nbFRleHRbdV0udXBkYXRlKGcpfX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6MzY3LCIuLi8uLi9jb25zdGFudHMvaW50ZXJhY3Rpb25zIjo0OTAsIi4uLy4uL2xpYiI6NTE1fV0sOTk1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NjYXR0ZXIvZm9ybWF0X2xhYmVscyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIGk9dC5pO3JldHVybiJ4ImluIHR8fCh0Lng9ZS5feFtpXSksInkiaW4gdHx8KHQueT1lLl95W2ldKSxuKHQsZSxyKX19LHsiLi4vc2NhdHRlci9mb3JtYXRfbGFiZWxzIjo5NDV9XSw5OTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9jb25zdGFudHMiKTtyLmlzT3BlblN5bWJvbD1mdW5jdGlvbih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/bi5PUEVOX1JFLnRlc3QodCk6dCUyMDA+MTAwfSxyLmlzRG90U3ltYm9sPWZ1bmN0aW9uKHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdD9uLkRPVF9SRS50ZXN0KHQpOnQ+MjAwfX0seyIuL2NvbnN0YW50cyI6OTkxfV0sOTk3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3JlZ2lzdHJ5IiksaT10KCIuLi8uLi9saWIiKSxhPXQoIi4uL3NjYXR0ZXIvZ2V0X3RyYWNlX2NvbG9yIik7ZnVuY3Rpb24gbyh0LGUscixvKXt2YXIgcz10LnhhLGw9dC55YSxjPXQuZGlzdGFuY2UsdT10LmR4eSxmPXQuaW5kZXgsaD17cG9pbnROdW1iZXI6Zix4OmVbZl0seTpyW2ZdfTtoLnR4PUFycmF5LmlzQXJyYXkoby50ZXh0KT9vLnRleHRbZl06by50ZXh0LGguaHR4PUFycmF5LmlzQXJyYXkoby5ob3ZlcnRleHQpP28uaG92ZXJ0ZXh0W2ZdOm8uaG92ZXJ0ZXh0LGguZGF0YT1BcnJheS5pc0FycmF5KG8uY3VzdG9tZGF0YSk/by5jdXN0b21kYXRhW2ZdOm8uY3VzdG9tZGF0YSxoLnRwPUFycmF5LmlzQXJyYXkoby50ZXh0cG9zaXRpb24pP28udGV4dHBvc2l0aW9uW2ZdOm8udGV4dHBvc2l0aW9uO3ZhciBwPW8udGV4dGZvbnQ7cCYmKGgudHM9aS5pc0FycmF5T3JUeXBlZEFycmF5KHAuc2l6ZSk/cC5zaXplW2ZdOnAuc2l6ZSxoLnRjPUFycmF5LmlzQXJyYXkocC5jb2xvcik/cC5jb2xvcltmXTpwLmNvbG9yLGgudGY9QXJyYXkuaXNBcnJheShwLmZhbWlseSk/cC5mYW1pbHlbZl06cC5mYW1pbHkpO3ZhciBkPW8ubWFya2VyO2QmJihoLm1zPWkuaXNBcnJheU9yVHlwZWRBcnJheShkLnNpemUpP2Quc2l6ZVtmXTpkLnNpemUsaC5tbz1pLmlzQXJyYXlPclR5cGVkQXJyYXkoZC5vcGFjaXR5KT9kLm9wYWNpdHlbZl06ZC5vcGFjaXR5LGgubXg9aS5pc0FycmF5T3JUeXBlZEFycmF5KGQuc3ltYm9sKT9kLnN5bWJvbFtmXTpkLnN5bWJvbCxoLm1jPWkuaXNBcnJheU9yVHlwZWRBcnJheShkLmNvbG9yKT9kLmNvbG9yW2ZdOmQuY29sb3IpO3ZhciBtPWQmJmQubGluZTttJiYoaC5tbGM9QXJyYXkuaXNBcnJheShtLmNvbG9yKT9tLmNvbG9yW2ZdOm0uY29sb3IsaC5tbHc9aS5pc0FycmF5T3JUeXBlZEFycmF5KG0ud2lkdGgpP20ud2lkdGhbZl06bS53aWR0aCk7dmFyIGc9ZCYmZC5ncmFkaWVudDtnJiYibm9uZSIhPT1nLnR5cGUmJihoLm1ndD1BcnJheS5pc0FycmF5KGcudHlwZSk/Zy50eXBlW2ZdOmcudHlwZSxoLm1nYz1BcnJheS5pc0FycmF5KGcuY29sb3IpP2cuY29sb3JbZl06Zy5jb2xvcik7dmFyIHY9cy5jMnAoaC54LCEwKSx5PWwuYzJwKGgueSwhMCkseD1oLm1yY3x8MSxiPW8uaG92ZXJsYWJlbDtiJiYoaC5oYmc9QXJyYXkuaXNBcnJheShiLmJnY29sb3IpP2IuYmdjb2xvcltmXTpiLmJnY29sb3IsaC5oYmM9QXJyYXkuaXNBcnJheShiLmJvcmRlcmNvbG9yKT9iLmJvcmRlcmNvbG9yW2ZdOmIuYm9yZGVyY29sb3IsaC5odHM9aS5pc0FycmF5T3JUeXBlZEFycmF5KGIuZm9udC5zaXplKT9iLmZvbnQuc2l6ZVtmXTpiLmZvbnQuc2l6ZSxoLmh0Yz1BcnJheS5pc0FycmF5KGIuZm9udC5jb2xvcik/Yi5mb250LmNvbG9yW2ZdOmIuZm9udC5jb2xvcixoLmh0Zj1BcnJheS5pc0FycmF5KGIuZm9udC5mYW1pbHkpP2IuZm9udC5mYW1pbHlbZl06Yi5mb250LmZhbWlseSxoLmhubD1pLmlzQXJyYXlPclR5cGVkQXJyYXkoYi5uYW1lbGVuZ3RoKT9iLm5hbWVsZW5ndGhbZl06Yi5uYW1lbGVuZ3RoKTt2YXIgXz1vLmhvdmVyaW5mbztfJiYoaC5oaT1BcnJheS5pc0FycmF5KF8pP19bZl06Xyk7dmFyIHc9by5ob3ZlcnRlbXBsYXRlO3cmJihoLmh0PUFycmF5LmlzQXJyYXkodyk/d1tmXTp3KTt2YXIgVD17fTtUW3QuaW5kZXhdPWg7dmFyIGs9by5fb3JpZ1gsQT1vLl9vcmlnWSxNPWkuZXh0ZW5kRmxhdCh7fSx0LHtjb2xvcjphKG8saCkseDA6di14LHgxOnYreCx4TGFiZWxWYWw6az9rW2ZdOmgueCx5MDp5LXgseTE6eSt4LHlMYWJlbFZhbDpBP0FbZl06aC55LGNkOlQsZGlzdGFuY2U6YyxzcGlrZURpc3RhbmNlOnUsaG92ZXJ0ZW1wbGF0ZTpoLmh0fSk7cmV0dXJuIGguaHR4P00udGV4dD1oLmh0eDpoLnR4P00udGV4dD1oLnR4Om8udGV4dCYmKE0udGV4dD1vLnRleHQpLGkuZmlsbFRleHQoaCxvLE0pLG4uZ2V0Q29tcG9uZW50TWV0aG9kKCJlcnJvcmJhcnMiLCJob3ZlckluZm8iKShoLG8sTSksTX1lLmV4cG9ydHM9e2hvdmVyUG9pbnRzOmZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpLGEscyxsLGMsdSxmLGgscCxkLG09dC5jZCxnPW1bMF0udCx2PW1bMF0udHJhY2UseT10LnhhLHg9dC55YSxiPWcueCxfPWcueSx3PXkuYzJwKGUpLFQ9eC5jMnAociksaz10LmRpc3RhbmNlO2lmKGcudHJlZSl7dmFyIEE9eS5wMmMody1rKSxNPXkucDJjKHcrayksUz14LnAyYyhULWspLEU9eC5wMmMoVCtrKTtpPSJ4Ij09PW4/Zy50cmVlLnJhbmdlKE1hdGgubWluKEEsTSksTWF0aC5taW4oeC5fcmxbMF0seC5fcmxbMV0pLE1hdGgubWF4KEEsTSksTWF0aC5tYXgoeC5fcmxbMF0seC5fcmxbMV0pKTpnLnRyZWUucmFuZ2UoTWF0aC5taW4oQSxNKSxNYXRoLm1pbihTLEUpLE1hdGgubWF4KEEsTSksTWF0aC5tYXgoUyxFKSl9ZWxzZSBpPWcuaWRzO3ZhciBMPWs7aWYoIngiPT09bil7dmFyIEM9ISF2LnhwZXJpb2RhbGlnbm1lbnQsUD0hIXYueXBlcmlvZGFsaWdubWVudDtmb3IodT0wO3U8aS5sZW5ndGg7dSsrKXtpZihsPWJbYT1pW3VdXSxmPU1hdGguYWJzKHkuYzJwKGwpLXcpLEMpe3ZhciBJPXkuYzJwKHYuX3hTdGFydHNbYV0pLE89eS5jMnAodi5feEVuZHNbYV0pO2Y9dz49TWF0aC5taW4oSSxPKSYmdzw9TWF0aC5tYXgoSSxPKT8wOjEvMH1pZihmPEwpe2lmKEw9ZixjPV9bYV0saD14LmMycChjKS1ULFApe3ZhciB6PXguYzJwKHYuX3lTdGFydHNbYV0pLEQ9eC5jMnAodi5feUVuZHNbYV0pO2g9VD49TWF0aC5taW4oeixEKSYmVDw9TWF0aC5tYXgoeixEKT8wOjEvMH1kPU1hdGguc3FydChmKmYraCpoKSxzPWlbdV19fX1lbHNlIGZvcih1PWkubGVuZ3RoLTE7dT4tMTt1LS0pbD1iW2E9aVt1XV0sYz1fW2FdLGY9eS5jMnAobCktdyxoPXguYzJwKGMpLVQsKHA9TWF0aC5zcXJ0KGYqZitoKmgpKTxMJiYoTD1kPXAscz1hKTtyZXR1cm4gdC5pbmRleD1zLHQuZGlzdGFuY2U9TCx0LmR4eT1kLHZvaWQgMD09PXM/W3RdOltvKHQsYixfLHYpXX0sY2FsY0hvdmVyOm99fSx7Ii4uLy4uL2xpYiI6NTE1LCIuLi8uLi9yZWdpc3RyeSI6NjQ3LCIuLi9zY2F0dGVyL2dldF90cmFjZV9jb2xvciI6OTQ2fV0sOTk4OltmdW5jdGlvbih0LGUscil7YXJndW1lbnRzWzRdWzkwNV1bMF0uYXBwbHkocixhcmd1bWVudHMpfSx7Ii4vYmFzZV9pbmRleCI6OTg5LCIuL3Bsb3QiOjk5OSxkdXA6OTA1fV0sOTk5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInJlZ2wtc2NhdHRlcjJkIiksaT10KCJyZWdsLWxpbmUyZCIpLGE9dCgicmVnbC1lcnJvcjJkIiksbz10KCJnbC10ZXh0Iikscz10KCIuLi8uLi9saWIiKSxsPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhZ2VsZW1lbnQvaGVscGVycyIpLnNlbGVjdE1vZGUsYz10KCIuLi8uLi9saWIvcHJlcGFyZV9yZWdsIiksdT10KCIuLi9zY2F0dGVyL3N1YnR5cGVzIiksZj10KCIuLi9zY2F0dGVyL2xpbmtfdHJhY2VzIiksaD10KCIuL2VkaXRfc3R5bGUiKS5zdHlsZVRleHRTZWxlY3Rpb24scD17fTtmdW5jdGlvbiBkKHQsZSxyLG4pe3ZhciBpPXQuX3NpemUsYT10LndpZHRoKm4sbz10LmhlaWdodCpuLHM9aS5sKm4sbD1pLmIqbixjPWkucipuLHU9aS50Km4sZj1pLncqbixoPWkuaCpuO3JldHVybltzK2UuZG9tYWluWzBdKmYsbCtyLmRvbWFpblswXSpoLGEtYy0oMS1lLmRvbWFpblsxXSkqZixvLXUtKDEtci5kb21haW5bMV0pKmhdfShlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe2lmKHIubGVuZ3RoKXt2YXIgbSxnLHY9dC5fZnVsbExheW91dCx5PWUuX3NjZW5lLHg9ZS54YXhpcyxiPWUueWF4aXM7aWYoeSlpZihjKHQsWyJBTkdMRV9pbnN0YW5jZWRfYXJyYXlzIiwiT0VTX2VsZW1lbnRfaW5kZXhfdWludCJdLHApKXt2YXIgXz15LmNvdW50LHc9di5fZ2xjYW52YXMuZGF0YSgpWzBdLnJlZ2w7aWYoZih0LGUscikseS5kaXJ0eSl7aWYoITA9PT15LmVycm9yMmQmJih5LmVycm9yMmQ9YSh3KSksITA9PT15LmxpbmUyZCYmKHkubGluZTJkPWkodykpLCEwPT09eS5zY2F0dGVyMmQmJih5LnNjYXR0ZXIyZD1uKHcpKSwhMD09PXkuZmlsbDJkJiYoeS5maWxsMmQ9aSh3KSksITA9PT15LmdsVGV4dClmb3IoeS5nbFRleHQ9bmV3IEFycmF5KF8pLG09MDttPF87bSsrKXkuZ2xUZXh0W21dPW5ldyBvKHcpO2lmKHkuZ2xUZXh0KXtpZihfPnkuZ2xUZXh0Lmxlbmd0aCl7dmFyIFQ9Xy15LmdsVGV4dC5sZW5ndGg7Zm9yKG09MDttPFQ7bSsrKXkuZ2xUZXh0LnB1c2gobmV3IG8odykpfWVsc2UgaWYoXzx5LmdsVGV4dC5sZW5ndGgpe3ZhciBrPXkuZ2xUZXh0Lmxlbmd0aC1fO3kuZ2xUZXh0LnNwbGljZShfLGspLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuZGVzdHJveSgpfSkpfWZvcihtPTA7bTxfO20rKyl5LmdsVGV4dFttXS51cGRhdGUoeS50ZXh0T3B0aW9uc1ttXSl9aWYoeS5saW5lMmQmJih5LmxpbmUyZC51cGRhdGUoeS5saW5lT3B0aW9ucykseS5saW5lT3B0aW9ucz15LmxpbmVPcHRpb25zLm1hcCgoZnVuY3Rpb24odCl7aWYodCYmdC5wb3NpdGlvbnMpe2Zvcih2YXIgZT10LnBvc2l0aW9ucyxyPTA7cjxlLmxlbmd0aCYmKGlzTmFOKGVbcl0pfHxpc05hTihlW3IrMV0pKTspcis9Mjtmb3IodmFyIG49ZS5sZW5ndGgtMjtuPnImJihpc05hTihlW25dKXx8aXNOYU4oZVtuKzFdKSk7KW4tPTI7dC5wb3NpdGlvbnM9ZS5zbGljZShyLG4rMil9cmV0dXJuIHR9KSkseS5saW5lMmQudXBkYXRlKHkubGluZU9wdGlvbnMpKSx5LmVycm9yMmQpe3ZhciBBPSh5LmVycm9yWE9wdGlvbnN8fFtdKS5jb25jYXQoeS5lcnJvcllPcHRpb25zfHxbXSk7eS5lcnJvcjJkLnVwZGF0ZShBKX15LnNjYXR0ZXIyZCYmeS5zY2F0dGVyMmQudXBkYXRlKHkubWFya2VyT3B0aW9ucykseS5maWxsT3JkZXI9cy5yZXBlYXQobnVsbCxfKSx5LmZpbGwyZCYmKHkuZmlsbE9wdGlvbnM9eS5maWxsT3B0aW9ucy5tYXAoKGZ1bmN0aW9uKHQsZSl7dmFyIG49cltlXTtpZih0JiZuJiZuWzBdJiZuWzBdLnRyYWNlKXt2YXIgaSxhLG89blswXSxzPW8udHJhY2UsbD1vLnQsYz15LmxpbmVPcHRpb25zW2VdLHU9W107cy5fb3duZmlsbCYmdS5wdXNoKGUpLHMuX25leHR0cmFjZSYmdS5wdXNoKGUrMSksdS5sZW5ndGgmJih5LmZpbGxPcmRlcltlXT11KTt2YXIgZixoLHA9W10sZD1jJiZjLnBvc2l0aW9uc3x8bC5wb3NpdGlvbnM7aWYoInRvemVyb3kiPT09cy5maWxsKXtmb3IoZj0wO2Y8ZC5sZW5ndGgmJmlzTmFOKGRbZisxXSk7KWYrPTI7Zm9yKGg9ZC5sZW5ndGgtMjtoPmYmJmlzTmFOKGRbaCsxXSk7KWgtPTI7MCE9PWRbZisxXSYmKHA9W2RbZl0sMF0pLHA9cC5jb25jYXQoZC5zbGljZShmLGgrMikpLDAhPT1kW2grMV0mJihwPXAuY29uY2F0KFtkW2hdLDBdKSl9ZWxzZSBpZigidG96ZXJveCI9PT1zLmZpbGwpe2ZvcihmPTA7ZjxkLmxlbmd0aCYmaXNOYU4oZFtmXSk7KWYrPTI7Zm9yKGg9ZC5sZW5ndGgtMjtoPmYmJmlzTmFOKGRbaF0pOyloLT0yOzAhPT1kW2ZdJiYocD1bMCxkW2YrMV1dKSxwPXAuY29uY2F0KGQuc2xpY2UoZixoKzIpKSwwIT09ZFtoXSYmKHA9cC5jb25jYXQoWzAsZFtoKzFdXSkpfWVsc2UgaWYoInRvc2VsZiI9PT1zLmZpbGx8fCJ0b25leHQiPT09cy5maWxsKXtmb3IocD1bXSxpPTAsdC5zcGxpdE51bGw9ITAsYT0wO2E8ZC5sZW5ndGg7YSs9MikoaXNOYU4oZFthXSl8fGlzTmFOKGRbYSsxXSkpJiYoKHA9cC5jb25jYXQoZC5zbGljZShpLGEpKSkucHVzaChkW2ldLGRbaSsxXSkscC5wdXNoKG51bGwsbnVsbCksaT1hKzIpO3A9cC5jb25jYXQoZC5zbGljZShpKSksaSYmcC5wdXNoKGRbaV0sZFtpKzFdKX1lbHNle3ZhciBtPXMuX25leHR0cmFjZTtpZihtKXt2YXIgZz15LmxpbmVPcHRpb25zW2UrMV07aWYoZyl7dmFyIHY9Zy5wb3NpdGlvbnM7aWYoInRvbmV4dHkiPT09cy5maWxsKXtmb3IocD1kLnNsaWNlKCksZT1NYXRoLmZsb29yKHYubGVuZ3RoLzIpO2UtLTspe3ZhciB4PXZbMiplXSxiPXZbMiplKzFdO2lzTmFOKHgpfHxpc05hTihiKXx8cC5wdXNoKHgsYil9dC5maWxsPW0uZmlsbGNvbG9yfX19fWlmKHMuX3ByZXZ0cmFjZSYmInRvbmV4dCI9PT1zLl9wcmV2dHJhY2UuZmlsbCl7dmFyIF89eS5saW5lT3B0aW9uc1tlLTFdLnBvc2l0aW9ucyx3PXAubGVuZ3RoLzIsVD1baT13XTtmb3IoYT0wO2E8Xy5sZW5ndGg7YSs9MikoaXNOYU4oX1thXSl8fGlzTmFOKF9bYSsxXSkpJiYoVC5wdXNoKGEvMit3KzEpLGk9YSsyKTtwPXAuY29uY2F0KF8pLHQuaG9sZT1UfXJldHVybiB0LmZpbGxtb2RlPXMuZmlsbCx0Lm9wYWNpdHk9cy5vcGFjaXR5LHQucG9zaXRpb25zPXAsdH19KSkseS5maWxsMmQudXBkYXRlKHkuZmlsbE9wdGlvbnMpKX12YXIgTT12LmRyYWdtb2RlLFM9bChNKSxFPXYuY2xpY2ttb2RlLmluZGV4T2YoInNlbGVjdCIpPi0xO2ZvcihtPTA7bTxfO20rKyl7dmFyIEw9clttXVswXSxDPUwudHJhY2UsUD1MLnQsST1QLmluZGV4LE89Qy5fbGVuZ3RoLHo9UC54LEQ9UC55O2lmKEMuc2VsZWN0ZWRwb2ludHN8fFN8fEUpe2lmKFN8fChTPSEwKSxDLnNlbGVjdGVkcG9pbnRzKXt2YXIgUj15LnNlbGVjdEJhdGNoW0ldPXMuc2VsSW5kaWNlczJzZWxQb2ludHMoQyksRj17fTtmb3IoZz0wO2c8Ui5sZW5ndGg7ZysrKUZbUltnXV09MTt2YXIgQj1bXTtmb3IoZz0wO2c8TztnKyspRltnXXx8Qi5wdXNoKGcpO3kudW5zZWxlY3RCYXRjaFtJXT1CfXZhciBOPVAueHB4PW5ldyBBcnJheShPKSxqPVAueXB4PW5ldyBBcnJheShPKTtmb3IoZz0wO2c8TztnKyspTltnXT14LmMycCh6W2ddKSxqW2ddPWIuYzJwKERbZ10pfWVsc2UgUC54cHg9UC55cHg9bnVsbH1pZihTKXtpZih5LnNlbGVjdDJkfHwoeS5zZWxlY3QyZD1uKHYuX2dsY2FudmFzLmRhdGEoKVsxXS5yZWdsKSkseS5zY2F0dGVyMmQpe3ZhciBVPW5ldyBBcnJheShfKTtmb3IobT0wO208XzttKyspVVttXT15LnNlbGVjdEJhdGNoW21dLmxlbmd0aHx8eS51bnNlbGVjdEJhdGNoW21dLmxlbmd0aD95Lm1hcmtlclVuc2VsZWN0ZWRPcHRpb25zW21dOnt9O3kuc2NhdHRlcjJkLnVwZGF0ZShVKX15LnNlbGVjdDJkJiYoeS5zZWxlY3QyZC51cGRhdGUoeS5tYXJrZXJPcHRpb25zKSx5LnNlbGVjdDJkLnVwZGF0ZSh5Lm1hcmtlclNlbGVjdGVkT3B0aW9ucykpLHkuZ2xUZXh0JiZyLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPSgodHx8W10pWzBdfHx7fSkudHJhY2V8fHt9O3UuaGFzVGV4dChlKSYmaCh0KX0pKX1lbHNlIHkuc2NhdHRlcjJkJiZ5LnNjYXR0ZXIyZC51cGRhdGUoeS5tYXJrZXJPcHRpb25zKTt2YXIgVj17dmlld3BvcnQ6ZCh2LHgsYix0Ll9jb250ZXh0LnBsb3RHbFBpeGVsUmF0aW8pLHJhbmdlOlsoeC5fcmx8fHgucmFuZ2UpWzBdLChiLl9ybHx8Yi5yYW5nZSlbMF0sKHguX3JsfHx4LnJhbmdlKVsxXSwoYi5fcmx8fGIucmFuZ2UpWzFdXX0sSD1zLnJlcGVhdChWLHkuY291bnQpO3kuZmlsbDJkJiZ5LmZpbGwyZC51cGRhdGUoSCkseS5saW5lMmQmJnkubGluZTJkLnVwZGF0ZShIKSx5LmVycm9yMmQmJnkuZXJyb3IyZC51cGRhdGUoSC5jb25jYXQoSCkpLHkuc2NhdHRlcjJkJiZ5LnNjYXR0ZXIyZC51cGRhdGUoSCkseS5zZWxlY3QyZCYmeS5zZWxlY3QyZC51cGRhdGUoSCkseS5nbFRleHQmJnkuZ2xUZXh0LmZvckVhY2goKGZ1bmN0aW9uKHQpe3QudXBkYXRlKFYpfSkpfWVsc2UgeS5pbml0KCl9fSkucmVnbFByZWNvbXBpbGVkPXB9LHsiLi4vLi4vY29tcG9uZW50cy9kcmFnZWxlbWVudC9oZWxwZXJzIjozODUsIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9saWIvcHJlcGFyZV9yZWdsIjo1MjgsIi4uL3NjYXR0ZXIvbGlua190cmFjZXMiOjk1MiwiLi4vc2NhdHRlci9zdWJ0eXBlcyI6OTYxLCIuL2VkaXRfc3R5bGUiOjk5NCwiZ2wtdGV4dCI6MjI1LCJyZWdsLWVycm9yMmQiOjI4MCwicmVnbC1saW5lMmQiOjI4MSwicmVnbC1zY2F0dGVyMmQiOjI4Mn1dLDFlMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1lLl9zY2VuZSxpPXtjb3VudDowLGRpcnR5OiEwLGxpbmVPcHRpb25zOltdLGZpbGxPcHRpb25zOltdLG1hcmtlck9wdGlvbnM6W10sbWFya2VyU2VsZWN0ZWRPcHRpb25zOltdLG1hcmtlclVuc2VsZWN0ZWRPcHRpb25zOltdLGVycm9yWE9wdGlvbnM6W10sZXJyb3JZT3B0aW9uczpbXSx0ZXh0T3B0aW9uczpbXSx0ZXh0U2VsZWN0ZWRPcHRpb25zOltdLHRleHRVbnNlbGVjdGVkT3B0aW9uczpbXSxzZWxlY3RCYXRjaDpbXSx1bnNlbGVjdEJhdGNoOltdfSxhPXtmaWxsMmQ6ITEsc2NhdHRlcjJkOiExLGVycm9yMmQ6ITEsbGluZTJkOiExLGdsVGV4dDohMSxzZWxlY3QyZDohMX07cmV0dXJuIGUuX3NjZW5lfHwoKHI9ZS5fc2NlbmU9e30pLmluaXQ9ZnVuY3Rpb24oKXtuLmV4dGVuZEZsYXQocixhLGkpfSxyLmluaXQoKSxyLnVwZGF0ZT1mdW5jdGlvbih0KXt2YXIgZT1uLnJlcGVhdCh0LHIuY291bnQpO2lmKHIuZmlsbDJkJiZyLmZpbGwyZC51cGRhdGUoZSksci5zY2F0dGVyMmQmJnIuc2NhdHRlcjJkLnVwZGF0ZShlKSxyLmxpbmUyZCYmci5saW5lMmQudXBkYXRlKGUpLHIuZXJyb3IyZCYmci5lcnJvcjJkLnVwZGF0ZShlLmNvbmNhdChlKSksci5zZWxlY3QyZCYmci5zZWxlY3QyZC51cGRhdGUoZSksci5nbFRleHQpZm9yKHZhciBpPTA7aTxyLmNvdW50O2krKylyLmdsVGV4dFtpXS51cGRhdGUodCl9LHIuZHJhdz1mdW5jdGlvbigpe2Zvcih2YXIgdD1yLmNvdW50LGU9ci5maWxsMmQsaT1yLmVycm9yMmQsYT1yLmxpbmUyZCxvPXIuc2NhdHRlcjJkLHM9ci5nbFRleHQsbD1yLnNlbGVjdDJkLGM9ci5zZWxlY3RCYXRjaCx1PXIudW5zZWxlY3RCYXRjaCxmPTA7Zjx0O2YrKyl7aWYoZSYmci5maWxsT3JkZXJbZl0mJmUuZHJhdyhyLmZpbGxPcmRlcltmXSksYSYmci5saW5lT3B0aW9uc1tmXSYmYS5kcmF3KGYpLGkmJihyLmVycm9yWE9wdGlvbnNbZl0mJmkuZHJhdyhmKSxyLmVycm9yWU9wdGlvbnNbZl0mJmkuZHJhdyhmK3QpKSxvJiZyLm1hcmtlck9wdGlvbnNbZl0paWYodVtmXS5sZW5ndGgpe3ZhciBoPW4ucmVwZWF0KFtdLHIuY291bnQpO2hbZl09dVtmXSxvLmRyYXcoaCl9ZWxzZSBjW2ZdLmxlbmd0aHx8by5kcmF3KGYpO3NbZl0mJnIudGV4dE9wdGlvbnNbZl0mJnNbZl0ucmVuZGVyKCl9bCYmbC5kcmF3KGMpLHIuZGlydHk9ITF9LHIuZGVzdHJveT1mdW5jdGlvbigpe3IuZmlsbDJkJiZyLmZpbGwyZC5kZXN0cm95JiZyLmZpbGwyZC5kZXN0cm95KCksci5zY2F0dGVyMmQmJnIuc2NhdHRlcjJkLmRlc3Ryb3kmJnIuc2NhdHRlcjJkLmRlc3Ryb3koKSxyLmVycm9yMmQmJnIuZXJyb3IyZC5kZXN0cm95JiZyLmVycm9yMmQuZGVzdHJveSgpLHIubGluZTJkJiZyLmxpbmUyZC5kZXN0cm95JiZyLmxpbmUyZC5kZXN0cm95KCksci5zZWxlY3QyZCYmci5zZWxlY3QyZC5kZXN0cm95JiZyLnNlbGVjdDJkLmRlc3Ryb3koKSxyLmdsVGV4dCYmci5nbFRleHQuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5kZXN0cm95JiZ0LmRlc3Ryb3koKX0pKSxyLmxpbmVPcHRpb25zPW51bGwsci5maWxsT3B0aW9ucz1udWxsLHIubWFya2VyT3B0aW9ucz1udWxsLHIubWFya2VyU2VsZWN0ZWRPcHRpb25zPW51bGwsci5tYXJrZXJVbnNlbGVjdGVkT3B0aW9ucz1udWxsLHIuZXJyb3JYT3B0aW9ucz1udWxsLHIuZXJyb3JZT3B0aW9ucz1udWxsLHIudGV4dE9wdGlvbnM9bnVsbCxyLnRleHRTZWxlY3RlZE9wdGlvbnM9bnVsbCxyLnRleHRVbnNlbGVjdGVkT3B0aW9ucz1udWxsLHIuc2VsZWN0QmF0Y2g9bnVsbCxyLnVuc2VsZWN0QmF0Y2g9bnVsbCxlLl9zY2VuZT1udWxsfSksci5kaXJ0eXx8bi5leHRlbmRGbGF0KHIsaSkscn19LHsiLi4vLi4vbGliIjo1MTV9XSwxMDAxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NjYXR0ZXIvc3VidHlwZXMiKSxpPXQoIi4vZWRpdF9zdHlsZSIpLnN0eWxlVGV4dFNlbGVjdGlvbjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10LmNkLGE9dC54YXhpcyxvPXQueWF4aXMscz1bXSxsPXJbMF0udHJhY2UsYz1yWzBdLnQsdT1sLl9sZW5ndGgsZj1jLngsaD1jLnkscD1jLl9zY2VuZSxkPWMuaW5kZXg7aWYoIXApcmV0dXJuIHM7dmFyIG09bi5oYXNUZXh0KGwpLGc9bi5oYXNNYXJrZXJzKGwpLHY9IWcmJiFtO2lmKCEwIT09bC52aXNpYmxlfHx2KXJldHVybiBzO3ZhciB5PVtdLHg9W107aWYoITEhPT1lJiYhZS5kZWdlbmVyYXRlKWZvcih2YXIgYj0wO2I8dTtiKyspZS5jb250YWlucyhbYy54cHhbYl0sYy55cHhbYl1dLCExLGIsdCk/KHkucHVzaChiKSxzLnB1c2goe3BvaW50TnVtYmVyOmIseDphLmMyZChmW2JdKSx5Om8uYzJkKGhbYl0pfSkpOngucHVzaChiKTtpZihnKXt2YXIgXz1wLnNjYXR0ZXIyZDtpZih5Lmxlbmd0aHx8eC5sZW5ndGgpe2lmKCFwLnNlbGVjdEJhdGNoW2RdLmxlbmd0aCYmIXAudW5zZWxlY3RCYXRjaFtkXS5sZW5ndGgpe3ZhciB3PW5ldyBBcnJheShwLmNvdW50KTt3W2RdPXAubWFya2VyVW5zZWxlY3RlZE9wdGlvbnNbZF0sXy51cGRhdGUuYXBwbHkoXyx3KX19ZWxzZXt2YXIgVD1uZXcgQXJyYXkocC5jb3VudCk7VFtkXT1wLm1hcmtlck9wdGlvbnNbZF0sXy51cGRhdGUuYXBwbHkoXyxUKX19cmV0dXJuIHAuc2VsZWN0QmF0Y2hbZF09eSxwLnVuc2VsZWN0QmF0Y2hbZF09eCxtJiZpKHIpLHN9fSx7Ii4uL3NjYXR0ZXIvc3VidHlwZXMiOjk2MSwiLi9lZGl0X3N0eWxlIjo5OTR9XSwxMDAyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS5ob3ZlcnRlbXBsYXRlQXR0cnMsaT10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikudGV4dHRlbXBsYXRlQXR0cnMsYT10KCIuLi9zY2F0dGVyZ2VvL2F0dHJpYnV0ZXMiKSxvPXQoIi4uL3NjYXR0ZXIvYXR0cmlidXRlcyIpLHM9dCgiLi4vLi4vcGxvdHMvbWFwYm94L2xheW91dF9hdHRyaWJ1dGVzIiksbD10KCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIiksYz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyIpLHU9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsZj10KCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIikub3ZlcnJpZGVBbGwsaD1hLmxpbmUscD1hLm1hcmtlcjtlLmV4cG9ydHM9Zih7bG9uOmEubG9uLGxhdDphLmxhdCxtb2RlOnUoe30sby5tb2RlLHtkZmx0OiJtYXJrZXJzIn0pLHRleHQ6dSh7fSxvLnRleHQse30pLHRleHR0ZW1wbGF0ZTppKHtlZGl0VHlwZToicGxvdCJ9LHtrZXlzOlsibGF0IiwibG9uIiwidGV4dCJdfSksaG92ZXJ0ZXh0OnUoe30sby5ob3ZlcnRleHQse30pLGxpbmU6e2NvbG9yOmguY29sb3Isd2lkdGg6aC53aWR0aH0sY29ubmVjdGdhcHM6by5jb25uZWN0Z2FwcyxtYXJrZXI6dSh7c3ltYm9sOnt2YWxUeXBlOiJzdHJpbmciLGRmbHQ6ImNpcmNsZSIsYXJyYXlPazohMH0sYW5nbGU6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDoiYXV0byIsYXJyYXlPazohMH0sYWxsb3dvdmVybGFwOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxvcGFjaXR5OnAub3BhY2l0eSxzaXplOnAuc2l6ZSxzaXplcmVmOnAuc2l6ZXJlZixzaXplbWluOnAuc2l6ZW1pbixzaXplbW9kZTpwLnNpemVtb2RlfSxjKCJtYXJrZXIiKSksZmlsbDphLmZpbGwsZmlsbGNvbG9yOm8uZmlsbGNvbG9yLHRleHRmb250OnMubGF5ZXJzLnN5bWJvbC50ZXh0Zm9udCx0ZXh0cG9zaXRpb246cy5sYXllcnMuc3ltYm9sLnRleHRwb3NpdGlvbixiZWxvdzp7dmFsVHlwZToic3RyaW5nIn0sc2VsZWN0ZWQ6e21hcmtlcjpvLnNlbGVjdGVkLm1hcmtlcn0sdW5zZWxlY3RlZDp7bWFya2VyOm8udW5zZWxlY3RlZC5tYXJrZXJ9LGhvdmVyaW5mbzp1KHt9LGwuaG92ZXJpbmZvLHtmbGFnczpbImxvbiIsImxhdCIsInRleHQiLCJuYW1lIl19KSxob3ZlcnRlbXBsYXRlOm4oKX0sImNhbGMiLCJuZXN0ZWQiKX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6Mzc0LCIuLi8uLi9saWIvZXh0ZW5kIjo1MDUsIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiOjU0OCwiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyI6NTYyLCIuLi8uLi9wbG90cy9tYXBib3gvbGF5b3V0X2F0dHJpYnV0ZXMiOjYyNCwiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyI6NjQyLCIuLi9zY2F0dGVyL2F0dHJpYnV0ZXMiOjkzNiwiLi4vc2NhdHRlcmdlby9hdHRyaWJ1dGVzIjo5Nzh9XSwxMDAzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksaT10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiKS5CQUROVU0sbz10KCIuLi8uLi9saWIvZ2VvanNvbl91dGlscyIpLHM9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIiksbD10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxjPXQoIi4uL3NjYXR0ZXIvbWFrZV9idWJibGVfc2l6ZV9mdW5jIiksdT10KCIuLi9zY2F0dGVyL3N1YnR5cGVzIiksZj10KCIuLi8uLi9wbG90cy9tYXBib3gvY29udmVydF90ZXh0X29wdHMiKSxoPXQoIi4uLy4uL2NvbXBvbmVudHMvZngvaGVscGVycyIpLmFwcGVuZEFycmF5UG9pbnRWYWx1ZSxwPXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpLk5FV0xJTkVTLGQ9dCgiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIikuQlJfVEFHX0FMTDtmdW5jdGlvbiBtKCl7cmV0dXJue2dlb2pzb246by5tYWtlQmxhbmsoKSxsYXlvdXQ6e3Zpc2liaWxpdHk6Im5vbmUifSxwYWludDp7fX19ZnVuY3Rpb24gZyh0LGUpe3JldHVybiBpLmlzQXJyYXlPclR5cGVkQXJyYXkodCk/ZT9mdW5jdGlvbihlKXtyZXR1cm4gbih0W2VdKT8rdFtlXTowfTpmdW5jdGlvbihlKXtyZXR1cm4gdFtlXX06dD9mdW5jdGlvbigpe3JldHVybiB0fTp2fWZ1bmN0aW9uIHYoKXtyZXR1cm4iIn1mdW5jdGlvbiB5KHQpe3JldHVybiB0WzBdPT09YX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixhPWVbMF0udHJhY2UseD0hMD09PWEudmlzaWJsZSYmMCE9PWEuX2xlbmd0aCxiPSJub25lIiE9PWEuZmlsbCxfPXUuaGFzTGluZXMoYSksdz11Lmhhc01hcmtlcnMoYSksVD11Lmhhc1RleHQoYSksaz13JiYiY2lyY2xlIj09PWEubWFya2VyLnN5bWJvbCxBPXcmJiJjaXJjbGUiIT09YS5tYXJrZXIuc3ltYm9sLE09bSgpLFM9bSgpLEU9bSgpLEw9bSgpLEM9e2ZpbGw6TSxsaW5lOlMsY2lyY2xlOkUsc3ltYm9sOkx9O2lmKCF4KXJldHVybiBDO2lmKChifHxfKSYmKHI9by5jYWxjVHJhY2VUb0xpbmVDb29yZHMoZSkpLGImJihNLmdlb2pzb249by5tYWtlUG9seWdvbihyKSxNLmxheW91dC52aXNpYmlsaXR5PSJ2aXNpYmxlIixpLmV4dGVuZEZsYXQoTS5wYWludCx7ImZpbGwtY29sb3IiOmEuZmlsbGNvbG9yfSkpLF8mJihTLmdlb2pzb249by5tYWtlTGluZShyKSxTLmxheW91dC52aXNpYmlsaXR5PSJ2aXNpYmxlIixpLmV4dGVuZEZsYXQoUy5wYWludCx7ImxpbmUtd2lkdGgiOmEubGluZS53aWR0aCwibGluZS1jb2xvciI6YS5saW5lLmNvbG9yLCJsaW5lLW9wYWNpdHkiOmEub3BhY2l0eX0pKSxrKXt2YXIgUD1mdW5jdGlvbih0KXt2YXIgZSxyLGEsbyx1PXRbMF0udHJhY2UsZj11Lm1hcmtlcixoPXUuc2VsZWN0ZWRwb2ludHMscD1pLmlzQXJyYXlPclR5cGVkQXJyYXkoZi5jb2xvciksZD1pLmlzQXJyYXlPclR5cGVkQXJyYXkoZi5zaXplKSxtPWkuaXNBcnJheU9yVHlwZWRBcnJheShmLm9wYWNpdHkpO2Z1bmN0aW9uIGcodCl7cmV0dXJuIHUub3BhY2l0eSp0fXAmJihyPXMuaGFzQ29sb3JzY2FsZSh1LCJtYXJrZXIiKT9zLm1ha2VDb2xvclNjYWxlRnVuY0Zyb21UcmFjZShmKTppLmlkZW50aXR5KTtkJiYoYT1jKHUpKTttJiYobz1mdW5jdGlvbih0KXtyZXR1cm4gZyhuKHQpPytpLmNvbnN0cmFpbih0LDAsMSk6MCl9KTt2YXIgdix4PVtdO2ZvcihlPTA7ZTx0Lmxlbmd0aDtlKyspe3ZhciBiPXRbZV0sXz1iLmxvbmxhdDtpZigheShfKSl7dmFyIHc9e307ciYmKHcubWNjPWIubWNjPXIoYi5tYykpLGEmJih3Lm1yYz1iLm1yYz1hKGIubXMpKSxvJiYody5tbz1vKGIubW8pKSxoJiYody5zZWxlY3RlZD1iLnNlbGVjdGVkfHwwKSx4LnB1c2goe3R5cGU6IkZlYXR1cmUiLGdlb21ldHJ5Ont0eXBlOiJQb2ludCIsY29vcmRpbmF0ZXM6X30scHJvcGVydGllczp3fSl9fWlmKGgpZm9yKHY9bC5tYWtlU2VsZWN0ZWRQb2ludFN0eWxlRm5zKHUpLGU9MDtlPHgubGVuZ3RoO2UrKyl7dmFyIFQ9eFtlXS5wcm9wZXJ0aWVzO3Yuc2VsZWN0ZWRPcGFjaXR5Rm4mJihULm1vPWcodi5zZWxlY3RlZE9wYWNpdHlGbihUKSkpLHYuc2VsZWN0ZWRDb2xvckZuJiYoVC5tY2M9di5zZWxlY3RlZENvbG9yRm4oVCkpLHYuc2VsZWN0ZWRTaXplRm4mJihULm1yYz12LnNlbGVjdGVkU2l6ZUZuKFQpKX1yZXR1cm57Z2VvanNvbjp7dHlwZToiRmVhdHVyZUNvbGxlY3Rpb24iLGZlYXR1cmVzOnh9LG1jYzpwfHx2JiZ2LnNlbGVjdGVkQ29sb3JGbj97dHlwZToiaWRlbnRpdHkiLHByb3BlcnR5OiJtY2MifTpmLmNvbG9yLG1yYzpkfHx2JiZ2LnNlbGVjdGVkU2l6ZUZuP3t0eXBlOiJpZGVudGl0eSIscHJvcGVydHk6Im1yYyJ9OihrPWYuc2l6ZSxrLzIpLG1vOm18fHYmJnYuc2VsZWN0ZWRPcGFjaXR5Rm4/e3R5cGU6ImlkZW50aXR5Iixwcm9wZXJ0eToibW8ifTpnKGYub3BhY2l0eSl9O3ZhciBrfShlKTtFLmdlb2pzb249UC5nZW9qc29uLEUubGF5b3V0LnZpc2liaWxpdHk9InZpc2libGUiLGkuZXh0ZW5kRmxhdChFLnBhaW50LHsiY2lyY2xlLWNvbG9yIjpQLm1jYywiY2lyY2xlLXJhZGl1cyI6UC5tcmMsImNpcmNsZS1vcGFjaXR5IjpQLm1vfSl9aWYoKEF8fFQpJiYoTC5nZW9qc29uPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPWUuX2Z1bGxMYXlvdXQsbj10WzBdLnRyYWNlLGE9bi5tYXJrZXJ8fHt9LG89YS5zeW1ib2wscz1hLmFuZ2xlLGw9ImNpcmNsZSIhPT1vP2cobyk6dixjPSJhdXRvIiE9PXM/ZyhzLCEwKTp2LGY9dS5oYXNUZXh0KG4pP2cobi50ZXh0KTp2LG09W10seD0wO3g8dC5sZW5ndGg7eCsrKXt2YXIgYj10W3hdO2lmKCF5KGIubG9ubGF0KSl7dmFyIF8sdz1uLnRleHR0ZW1wbGF0ZTtpZih3KXt2YXIgVD1BcnJheS5pc0FycmF5KHcpP3dbeF18fCIiOncsaz1uLl9tb2R1bGUuZm9ybWF0TGFiZWxzKGIsbixyKSxBPXt9O2goQSxuLGIuaSk7dmFyIE09bi5fbWV0YXx8e307Xz1pLnRleHR0ZW1wbGF0ZVN0cmluZyhULGssci5fZDNsb2NhbGUsQSxiLE0pfWVsc2UgXz1mKHgpO18mJihfPV8ucmVwbGFjZShwLCIiKS5yZXBsYWNlKGQsIlxuIikpLG0ucHVzaCh7dHlwZToiRmVhdHVyZSIsZ2VvbWV0cnk6e3R5cGU6IlBvaW50Iixjb29yZGluYXRlczpiLmxvbmxhdH0scHJvcGVydGllczp7c3ltYm9sOmwoeCksYW5nbGU6Yyh4KSx0ZXh0Ol99fSl9fXJldHVybnt0eXBlOiJGZWF0dXJlQ29sbGVjdGlvbiIsZmVhdHVyZXM6bX19KGUsdCksaS5leHRlbmRGbGF0KEwubGF5b3V0LHt2aXNpYmlsaXR5OiJ2aXNpYmxlIiwiaWNvbi1pbWFnZSI6IntzeW1ib2x9LTE1IiwidGV4dC1maWVsZCI6Int0ZXh0fSJ9KSxBJiYoaS5leHRlbmRGbGF0KEwubGF5b3V0LHsiaWNvbi1zaXplIjphLm1hcmtlci5zaXplLzEwfSksImFuZ2xlImluIGEubWFya2VyJiYiYXV0byIhPT1hLm1hcmtlci5hbmdsZSYmaS5leHRlbmRGbGF0KEwubGF5b3V0LHsiaWNvbi1yb3RhdGUiOnt0eXBlOiJpZGVudGl0eSIscHJvcGVydHk6ImFuZ2xlIn0sImljb24tcm90YXRpb24tYWxpZ25tZW50IjoibWFwIn0pLEwubGF5b3V0WyJpY29uLWFsbG93LW92ZXJsYXAiXT1hLm1hcmtlci5hbGxvd292ZXJsYXAsaS5leHRlbmRGbGF0KEwucGFpbnQseyJpY29uLW9wYWNpdHkiOmEub3BhY2l0eSphLm1hcmtlci5vcGFjaXR5LCJpY29uLWNvbG9yIjphLm1hcmtlci5jb2xvcn0pKSxUKSl7dmFyIEk9KGEubWFya2VyfHx7fSkuc2l6ZSxPPWYoYS50ZXh0cG9zaXRpb24sSSk7aS5leHRlbmRGbGF0KEwubGF5b3V0LHsidGV4dC1zaXplIjphLnRleHRmb250LnNpemUsInRleHQtYW5jaG9yIjpPLmFuY2hvciwidGV4dC1vZmZzZXQiOk8ub2Zmc2V0fSksaS5leHRlbmRGbGF0KEwucGFpbnQseyJ0ZXh0LWNvbG9yIjphLnRleHRmb250LmNvbG9yLCJ0ZXh0LW9wYWNpdHkiOmEub3BhY2l0eX0pfXJldHVybiBDfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiOjM3OSwiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjozODksIi4uLy4uL2NvbXBvbmVudHMvZngvaGVscGVycyI6NDAzLCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo0OTEsIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9saWIvZ2VvanNvbl91dGlscyI6NTA5LCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiOjU0MSwiLi4vLi4vcGxvdHMvbWFwYm94L2NvbnZlcnRfdGV4dF9vcHRzIjo2MjEsIi4uL3NjYXR0ZXIvbWFrZV9idWJibGVfc2l6ZV9mdW5jIjo5NTMsIi4uL3NjYXR0ZXIvc3VidHlwZXMiOjk2MSwiZmFzdC1pc251bWVyaWMiOjE5MH1dLDEwMDQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi9zY2F0dGVyL3N1YnR5cGVzIiksYT10KCIuLi9zY2F0dGVyL21hcmtlcl9kZWZhdWx0cyIpLG89dCgiLi4vc2NhdHRlci9saW5lX2RlZmF1bHRzIikscz10KCIuLi9zY2F0dGVyL3RleHRfZGVmYXVsdHMiKSxsPXQoIi4uL3NjYXR0ZXIvZmlsbGNvbG9yX2RlZmF1bHRzIiksYz10KCIuL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsdSl7ZnVuY3Rpb24gZihyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsYyxyLGkpfWlmKGZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1yKCJsb24iKXx8W10saT1yKCJsYXQiKXx8W10sYT1NYXRoLm1pbihuLmxlbmd0aCxpLmxlbmd0aCk7cmV0dXJuIGUuX2xlbmd0aD1hLGF9KDAsZSxmKSl7aWYoZigidGV4dCIpLGYoInRleHR0ZW1wbGF0ZSIpLGYoImhvdmVydGV4dCIpLGYoImhvdmVydGVtcGxhdGUiKSxmKCJtb2RlIiksZigiYmVsb3ciKSxpLmhhc0xpbmVzKGUpJiYobyh0LGUscix1LGYse25vRGFzaDohMH0pLGYoImNvbm5lY3RnYXBzIikpLGkuaGFzTWFya2VycyhlKSl7YSh0LGUscix1LGYse25vTGluZTohMH0pLGYoIm1hcmtlci5hbGxvd292ZXJsYXAiKSxmKCJtYXJrZXIuYW5nbGUiKTt2YXIgaD1lLm1hcmtlcjsiY2lyY2xlIiE9PWguc3ltYm9sJiYobi5pc0FycmF5T3JUeXBlZEFycmF5KGguc2l6ZSkmJihoLnNpemU9aC5zaXplWzBdKSxuLmlzQXJyYXlPclR5cGVkQXJyYXkoaC5jb2xvcikmJihoLmNvbG9yPWguY29sb3JbMF0pKX1pLmhhc1RleHQoZSkmJnModCxlLHUsZix7bm9TZWxlY3Q6ITB9KSxmKCJmaWxsIiksIm5vbmUiIT09ZS5maWxsJiZsKHQsZSxyLGYpLG4uY29lcmNlU2VsZWN0aW9uTWFya2VyT3BhY2l0eShlLGYpfWVsc2UgZS52aXNpYmxlPSExfX0seyIuLi8uLi9saWIiOjUxNSwiLi4vc2NhdHRlci9maWxsY29sb3JfZGVmYXVsdHMiOjk0NCwiLi4vc2NhdHRlci9saW5lX2RlZmF1bHRzIjo5NDksIi4uL3NjYXR0ZXIvbWFya2VyX2RlZmF1bHRzIjo5NTUsIi4uL3NjYXR0ZXIvc3VidHlwZXMiOjk2MSwiLi4vc2NhdHRlci90ZXh0X2RlZmF1bHRzIjo5NjIsIi4vYXR0cmlidXRlcyI6MTAwMn1dLDEwMDU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQubG9uPWUubG9uLHQubGF0PWUubGF0LHR9fSx7fV0sMTAwNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIGk9e30sYT1yW2Uuc3VicGxvdF0uX3N1YnBsb3QubW9ja0F4aXMsbz10LmxvbmxhdDtyZXR1cm4gaS5sb25MYWJlbD1uLnRpY2tUZXh0KGEsYS5jMmwob1swXSksITApLnRleHQsaS5sYXRMYWJlbD1uLnRpY2tUZXh0KGEsYS5jMmwob1sxXSksITApLnRleHQsaX19LHsiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjU2Nn1dLDEwMDc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9meCIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuLi9zY2F0dGVyL2dldF90cmFjZV9jb2xvciIpLG89aS5maWxsVGV4dCxzPXQoIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiKS5CQUROVU07ZnVuY3Rpb24gbCh0LGUscil7aWYoIXQuaG92ZXJ0ZW1wbGF0ZSl7dmFyIG49KGUuaGl8fHQuaG92ZXJpbmZvKS5zcGxpdCgiKyIpLGk9LTEhPT1uLmluZGV4T2YoImFsbCIpLGE9LTEhPT1uLmluZGV4T2YoImxvbiIpLHM9LTEhPT1uLmluZGV4T2YoImxhdCIpLGw9ZS5sb25sYXQsYz1bXTtyZXR1cm4gaXx8YSYmcz9jLnB1c2goIigiK3UobFsxXSkrIiwgIit1KGxbMF0pKyIpIik6YT9jLnB1c2goci5sb24rdShsWzBdKSk6cyYmYy5wdXNoKHIubGF0K3UobFsxXSkpLChpfHwtMSE9PW4uaW5kZXhPZigidGV4dCIpKSYmbyhlLHQsYyksYy5qb2luKCI8YnI+Iil9ZnVuY3Rpb24gdSh0KXtyZXR1cm4gdCsiXHhiMCJ9fWUuZXhwb3J0cz17aG92ZXJQb2ludHM6ZnVuY3Rpb24odCxlLHIpe3ZhciBvPXQuY2QsYz1vWzBdLnRyYWNlLHU9dC54YSxmPXQueWEsaD10LnN1YnBsb3QscD0zNjAqKGU+PTA/TWF0aC5mbG9vcigoZSsxODApLzM2MCk6TWF0aC5jZWlsKChlLTE4MCkvMzYwKSksZD1lLXA7aWYobi5nZXRDbG9zZXN0KG8sKGZ1bmN0aW9uKHQpe3ZhciBlPXQubG9ubGF0O2lmKGVbMF09PT1zKXJldHVybiAxLzA7dmFyIG49aS5tb2RIYWxmKGVbMF0sMzYwKSxhPWVbMV0sbz1oLnByb2plY3QoW24sYV0pLGw9by54LXUuYzJwKFtkLGFdKSxjPW8ueS1mLmMycChbbixyXSkscD1NYXRoLm1heCgzLHQubXJjfHwwKTtyZXR1cm4gTWF0aC5tYXgoTWF0aC5zcXJ0KGwqbCtjKmMpLXAsMS0zL3ApfSksdCksITEhPT10LmluZGV4KXt2YXIgbT1vW3QuaW5kZXhdLGc9bS5sb25sYXQsdj1baS5tb2RIYWxmKGdbMF0sMzYwKStwLGdbMV1dLHk9dS5jMnAodikseD1mLmMycCh2KSxiPW0ubXJjfHwxO3QueDA9eS1iLHQueDE9eStiLHQueTA9eC1iLHQueTE9eCtiO3ZhciBfPXt9O19bYy5zdWJwbG90XT17X3N1YnBsb3Q6aH07dmFyIHc9Yy5fbW9kdWxlLmZvcm1hdExhYmVscyhtLGMsXyk7cmV0dXJuIHQubG9uTGFiZWw9dy5sb25MYWJlbCx0LmxhdExhYmVsPXcubGF0TGFiZWwsdC5jb2xvcj1hKGMsbSksdC5leHRyYVRleHQ9bChjLG0sb1swXS50LmxhYmVscyksdC5ob3ZlcnRlbXBsYXRlPWMuaG92ZXJ0ZW1wbGF0ZSxbdF19fSxnZXRFeHRyYVRleHQ6bH19LHsiLi4vLi4vY29tcG9uZW50cy9meCI6NDA3LCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo0OTEsIi4uLy4uL2xpYiI6NTE1LCIuLi9zY2F0dGVyL2dldF90cmFjZV9jb2xvciI6OTQ2fV0sMTAwODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2F0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNvbG9yYmFyOnQoIi4uL3NjYXR0ZXIvbWFya2VyX2NvbG9yYmFyIiksZm9ybWF0TGFiZWxzOnQoIi4vZm9ybWF0X2xhYmVscyIpLGNhbGM6dCgiLi4vc2NhdHRlcmdlby9jYWxjIikscGxvdDp0KCIuL3Bsb3QiKSxob3ZlclBvaW50czp0KCIuL2hvdmVyIikuaG92ZXJQb2ludHMsZXZlbnREYXRhOnQoIi4vZXZlbnRfZGF0YSIpLHNlbGVjdFBvaW50czp0KCIuL3NlbGVjdCIpLHN0eWxlT25TZWxlY3Q6ZnVuY3Rpb24odCxlKXtlJiZlWzBdLnRyYWNlLl9nbFRyYWNlLnVwZGF0ZShlKX0sbW9kdWxlVHlwZToidHJhY2UiLG5hbWU6InNjYXR0ZXJtYXBib3giLGJhc2VQbG90TW9kdWxlOnQoIi4uLy4uL3Bsb3RzL21hcGJveCIpLGNhdGVnb3JpZXM6WyJtYXBib3giLCJnbCIsInN5bWJvbHMiLCJzaG93TGVnZW5kIiwic2NhdHRlci1saWtlIl0sbWV0YTp7fX19LHsiLi4vLi4vcGxvdHMvbWFwYm94Ijo2MjIsIi4uL3NjYXR0ZXIvbWFya2VyX2NvbG9yYmFyIjo5NTQsIi4uL3NjYXR0ZXJnZW8vY2FsYyI6OTc5LCIuL2F0dHJpYnV0ZXMiOjEwMDIsIi4vZGVmYXVsdHMiOjEwMDQsIi4vZXZlbnRfZGF0YSI6MTAwNSwiLi9mb3JtYXRfbGFiZWxzIjoxMDA2LCIuL2hvdmVyIjoxMDA3LCIuL3Bsb3QiOjEwMDksIi4vc2VsZWN0IjoxMDEwfV0sMTAwOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2NvbnZlcnQiKSxpPXQoIi4uLy4uL3Bsb3RzL21hcGJveC9jb25zdGFudHMiKS50cmFjZUxheWVyUHJlZml4LGE9WyJmaWxsIiwibGluZSIsImNpcmNsZSIsInN5bWJvbCJdO2Z1bmN0aW9uIG8odCxlKXt0aGlzLnR5cGU9InNjYXR0ZXJtYXBib3giLHRoaXMuc3VicGxvdD10LHRoaXMudWlkPWUsdGhpcy5zb3VyY2VJZHM9e2ZpbGw6InNvdXJjZS0iK2UrIi1maWxsIixsaW5lOiJzb3VyY2UtIitlKyItbGluZSIsY2lyY2xlOiJzb3VyY2UtIitlKyItY2lyY2xlIixzeW1ib2w6InNvdXJjZS0iK2UrIi1zeW1ib2wifSx0aGlzLmxheWVySWRzPXtmaWxsOmkrZSsiLWZpbGwiLGxpbmU6aStlKyItbGluZSIsY2lyY2xlOmkrZSsiLWNpcmNsZSIsc3ltYm9sOmkrZSsiLXN5bWJvbCJ9LHRoaXMuYmVsb3c9bnVsbH12YXIgcz1vLnByb3RvdHlwZTtzLmFkZFNvdXJjZT1mdW5jdGlvbih0LGUpe3RoaXMuc3VicGxvdC5tYXAuYWRkU291cmNlKHRoaXMuc291cmNlSWRzW3RdLHt0eXBlOiJnZW9qc29uIixkYXRhOmUuZ2VvanNvbn0pfSxzLnNldFNvdXJjZURhdGE9ZnVuY3Rpb24odCxlKXt0aGlzLnN1YnBsb3QubWFwLmdldFNvdXJjZSh0aGlzLnNvdXJjZUlkc1t0XSkuc2V0RGF0YShlLmdlb2pzb24pfSxzLmFkZExheWVyPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLnN1YnBsb3QuYWRkTGF5ZXIoe3R5cGU6dCxpZDp0aGlzLmxheWVySWRzW3RdLHNvdXJjZTp0aGlzLnNvdXJjZUlkc1t0XSxsYXlvdXQ6ZS5sYXlvdXQscGFpbnQ6ZS5wYWludH0scil9LHMudXBkYXRlPWZ1bmN0aW9uKHQpe3ZhciBlLHIsaSxvPXRoaXMuc3VicGxvdCxzPW8ubWFwLGw9bihvLmdkLHQpLGM9by5iZWxvd0xvb2t1cFsidHJhY2UtIit0aGlzLnVpZF07aWYoYyE9PXRoaXMuYmVsb3cpe2ZvcihlPWEubGVuZ3RoLTE7ZT49MDtlLS0pcj1hW2VdLHMucmVtb3ZlTGF5ZXIodGhpcy5sYXllcklkc1tyXSk7Zm9yKGU9MDtlPGEubGVuZ3RoO2UrKylpPWxbcj1hW2VdXSx0aGlzLmFkZExheWVyKHIsaSxjKTt0aGlzLmJlbG93PWN9Zm9yKGU9MDtlPGEubGVuZ3RoO2UrKylpPWxbcj1hW2VdXSxvLnNldE9wdGlvbnModGhpcy5sYXllcklkc1tyXSwic2V0TGF5b3V0UHJvcGVydHkiLGkubGF5b3V0KSwidmlzaWJsZSI9PT1pLmxheW91dC52aXNpYmlsaXR5JiYodGhpcy5zZXRTb3VyY2VEYXRhKHIsaSksby5zZXRPcHRpb25zKHRoaXMubGF5ZXJJZHNbcl0sInNldFBhaW50UHJvcGVydHkiLGkucGFpbnQpKTt0WzBdLnRyYWNlLl9nbFRyYWNlPXRoaXN9LHMuZGlzcG9zZT1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLnN1YnBsb3QubWFwLGU9YS5sZW5ndGgtMTtlPj0wO2UtLSl7dmFyIHI9YVtlXTt0LnJlbW92ZUxheWVyKHRoaXMubGF5ZXJJZHNbcl0pLHQucmVtb3ZlU291cmNlKHRoaXMuc291cmNlSWRzW3JdKX19LGUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1lWzBdLnRyYWNlLGk9bmV3IG8odCxyLnVpZCkscz1uKHQuZ2QsZSksbD1pLmJlbG93PXQuYmVsb3dMb29rdXBbInRyYWNlLSIrci51aWRdLGM9MDtjPGEubGVuZ3RoO2MrKyl7dmFyIHU9YVtjXSxmPXNbdV07aS5hZGRTb3VyY2UodSxmKSxpLmFkZExheWVyKHUsZixsKX1yZXR1cm4gZVswXS50cmFjZS5fZ2xUcmFjZT1pLGl9fSx7Ii4uLy4uL3Bsb3RzL21hcGJveC9jb25zdGFudHMiOjYyMCwiLi9jb252ZXJ0IjoxMDAzfV0sMTAxMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uL3NjYXR0ZXIvc3VidHlwZXMiKSxhPXQoIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiKS5CQUROVU07ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbz10LmNkLHM9dC54YXhpcyxsPXQueWF4aXMsYz1bXSx1PW9bMF0udHJhY2U7aWYoIWkuaGFzTWFya2Vycyh1KSlyZXR1cm5bXTtpZighMT09PWUpZm9yKHI9MDtyPG8ubGVuZ3RoO3IrKylvW3JdLnNlbGVjdGVkPTA7ZWxzZSBmb3Iocj0wO3I8by5sZW5ndGg7cisrKXt2YXIgZj1vW3JdLGg9Zi5sb25sYXQ7aWYoaFswXSE9PWEpe3ZhciBwPVtuLm1vZEhhbGYoaFswXSwzNjApLGhbMV1dLGQ9W3MuYzJwKHApLGwuYzJwKHApXTtlLmNvbnRhaW5zKGQsbnVsbCxyLHQpPyhjLnB1c2goe3BvaW50TnVtYmVyOnIsbG9uOmhbMF0sbGF0OmhbMV19KSxmLnNlbGVjdGVkPTEpOmYuc2VsZWN0ZWQ9MH19cmV0dXJuIGN9fSx7Ii4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiOjQ5MSwiLi4vLi4vbGliIjo1MTUsIi4uL3NjYXR0ZXIvc3VidHlwZXMiOjk2MX1dLDEwMTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxpPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS50ZXh0dGVtcGxhdGVBdHRycyxhPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LG89dCgiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIikscz10KCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIiksbD1vLmxpbmU7ZS5leHBvcnRzPXttb2RlOm8ubW9kZSxyOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LHRoZXRhOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LHIwOnt2YWxUeXBlOiJhbnkiLGRmbHQ6MCxlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LGRyOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MSxlZGl0VHlwZToiY2FsYyJ9LHRoZXRhMDp7dmFsVHlwZToiYW55IixkZmx0OjAsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSxkdGhldGE6e3ZhbFR5cGU6Im51bWJlciIsZWRpdFR5cGU6ImNhbGMifSx0aGV0YXVuaXQ6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInJhZGlhbnMiLCJkZWdyZWVzIiwiZ3JhZGlhbnMiXSxkZmx0OiJkZWdyZWVzIixlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LHRleHQ6by50ZXh0LHRleHR0ZW1wbGF0ZTppKHtlZGl0VHlwZToicGxvdCJ9LHtrZXlzOlsiciIsInRoZXRhIiwidGV4dCJdfSksaG92ZXJ0ZXh0Om8uaG92ZXJ0ZXh0LGxpbmU6e2NvbG9yOmwuY29sb3Isd2lkdGg6bC53aWR0aCxkYXNoOmwuZGFzaCxzaGFwZTphKHt9LGwuc2hhcGUse3ZhbHVlczpbImxpbmVhciIsInNwbGluZSJdfSksc21vb3RoaW5nOmwuc21vb3RoaW5nLGVkaXRUeXBlOiJjYWxjIn0sY29ubmVjdGdhcHM6by5jb25uZWN0Z2FwcyxtYXJrZXI6by5tYXJrZXIsY2xpcG9uYXhpczphKHt9LG8uY2xpcG9uYXhpcyx7ZGZsdDohMX0pLHRleHRwb3NpdGlvbjpvLnRleHRwb3NpdGlvbix0ZXh0Zm9udDpvLnRleHRmb250LGZpbGw6YSh7fSxvLmZpbGwse3ZhbHVlczpbIm5vbmUiLCJ0b3NlbGYiLCJ0b25leHQiXSxkZmx0OiJub25lIn0pLGZpbGxjb2xvcjpvLmZpbGxjb2xvcixob3ZlcmluZm86YSh7fSxzLmhvdmVyaW5mbyx7ZmxhZ3M6WyJyIiwidGhldGEiLCJ0ZXh0IiwibmFtZSJdfSksaG92ZXJvbjpvLmhvdmVyb24saG92ZXJ0ZW1wbGF0ZTpuKCksc2VsZWN0ZWQ6by5zZWxlY3RlZCx1bnNlbGVjdGVkOm8udW5zZWxlY3RlZH19LHsiLi4vLi4vbGliL2V4dGVuZCI6NTA1LCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIjo1NjIsIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjY0MiwiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIjo5MzZ9XSwxMDEyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksaT10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQkFETlVNLGE9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxvPXQoIi4uL3NjYXR0ZXIvY29sb3JzY2FsZV9jYWxjIikscz10KCIuLi9zY2F0dGVyL2FycmF5c190b19jYWxjZGF0YSIpLGw9dCgiLi4vc2NhdHRlci9jYWxjX3NlbGVjdGlvbiIpLGM9dCgiLi4vc2NhdHRlci9jYWxjIikuY2FsY01hcmtlclNpemU7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQuX2Z1bGxMYXlvdXQsdT1lLnN1YnBsb3QsZj1yW3VdLnJhZGlhbGF4aXMsaD1yW3VdLmFuZ3VsYXJheGlzLHA9Zi5tYWtlQ2FsY2RhdGEoZSwiciIpLGQ9aC5tYWtlQ2FsY2RhdGEoZSwidGhldGEiKSxtPWUuX2xlbmd0aCxnPW5ldyBBcnJheShtKSx2PTA7djxtO3YrKyl7dmFyIHk9cFt2XSx4PWRbdl0sYj1nW3ZdPXt9O24oeSkmJm4oeCk/KGIucj15LGIudGhldGE9eCk6Yi5yPWl9dmFyIF89YyhlLG0pO3JldHVybiBlLl9leHRyZW1lcy54PWEuZmluZEV4dHJlbWVzKGYscCx7cHBhZDpffSksbyh0LGUpLHMoZyxlKSxsKGcsZSksZ319LHsiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NDkxLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NTY2LCIuLi9zY2F0dGVyL2FycmF5c190b19jYWxjZGF0YSI6OTM1LCIuLi9zY2F0dGVyL2NhbGMiOjkzNywiLi4vc2NhdHRlci9jYWxjX3NlbGVjdGlvbiI6OTM4LCIuLi9zY2F0dGVyL2NvbG9yc2NhbGVfY2FsYyI6OTM5LCJmYXN0LWlzbnVtZXJpYyI6MTkwfV0sMTAxMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uL3NjYXR0ZXIvc3VidHlwZXMiKSxhPXQoIi4uL3NjYXR0ZXIvbWFya2VyX2RlZmF1bHRzIiksbz10KCIuLi9zY2F0dGVyL2xpbmVfZGVmYXVsdHMiKSxzPXQoIi4uL3NjYXR0ZXIvbGluZV9zaGFwZV9kZWZhdWx0cyIpLGw9dCgiLi4vc2NhdHRlci90ZXh0X2RlZmF1bHRzIiksYz10KCIuLi9zY2F0dGVyL2ZpbGxjb2xvcl9kZWZhdWx0cyIpLHU9dCgiLi4vc2NhdHRlci9jb25zdGFudHMiKS5QVFNfTElORVNPTkxZLGY9dCgiLi9hdHRyaWJ1dGVzIik7ZnVuY3Rpb24gaCh0LGUscixuKXt2YXIgaSxhPW4oInIiKSxvPW4oInRoZXRhIik7aWYoYSlvP2k9TWF0aC5taW4oYS5sZW5ndGgsby5sZW5ndGgpOihpPWEubGVuZ3RoLG4oInRoZXRhMCIpLG4oImR0aGV0YSIpKTtlbHNle2lmKCFvKXJldHVybiAwO2k9ZS50aGV0YS5sZW5ndGgsbigicjAiKSxuKCJkciIpfXJldHVybiBlLl9sZW5ndGg9aSxpfWUuZXhwb3J0cz17aGFuZGxlUlRoZXRhRGVmYXVsdHM6aCxzdXBwbHlEZWZhdWx0czpmdW5jdGlvbih0LGUscixwKXtmdW5jdGlvbiBkKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxmLHIsaSl9dmFyIG09aCh0LGUscCxkKTtpZihtKXtkKCJ0aGV0YXVuaXQiKSxkKCJtb2RlIixtPHU/ImxpbmVzK21hcmtlcnMiOiJsaW5lcyIpLGQoInRleHQiKSxkKCJob3ZlcnRleHQiKSwiZmlsbHMiIT09ZS5ob3Zlcm9uJiZkKCJob3ZlcnRlbXBsYXRlIiksaS5oYXNMaW5lcyhlKSYmKG8odCxlLHIscCxkKSxzKHQsZSxkKSxkKCJjb25uZWN0Z2FwcyIpKSxpLmhhc01hcmtlcnMoZSkmJmEodCxlLHIscCxkLHtncmFkaWVudDohMH0pLGkuaGFzVGV4dChlKSYmKGQoInRleHR0ZW1wbGF0ZSIpLGwodCxlLHAsZCkpO3ZhciBnPVtdOyhpLmhhc01hcmtlcnMoZSl8fGkuaGFzVGV4dChlKSkmJihkKCJjbGlwb25heGlzIiksZCgibWFya2VyLm1heGRpc3BsYXllZCIpLGcucHVzaCgicG9pbnRzIikpLGQoImZpbGwiKSwibm9uZSIhPT1lLmZpbGwmJihjKHQsZSxyLGQpLGkuaGFzTGluZXMoZSl8fHModCxlLGQpKSwidG9uZXh0IiE9PWUuZmlsbCYmInRvc2VsZiIhPT1lLmZpbGx8fGcucHVzaCgiZmlsbHMiKSxkKCJob3Zlcm9uIixnLmpvaW4oIisiKXx8InBvaW50cyIpLG4uY29lcmNlU2VsZWN0aW9uTWFya2VyT3BhY2l0eShlLGQpfWVsc2UgZS52aXNpYmxlPSExfX19LHsiLi4vLi4vbGliIjo1MTUsIi4uL3NjYXR0ZXIvY29uc3RhbnRzIjo5NDAsIi4uL3NjYXR0ZXIvZmlsbGNvbG9yX2RlZmF1bHRzIjo5NDQsIi4uL3NjYXR0ZXIvbGluZV9kZWZhdWx0cyI6OTQ5LCIuLi9zY2F0dGVyL2xpbmVfc2hhcGVfZGVmYXVsdHMiOjk1MSwiLi4vc2NhdHRlci9tYXJrZXJfZGVmYXVsdHMiOjk1NSwiLi4vc2NhdHRlci9zdWJ0eXBlcyI6OTYxLCIuLi9zY2F0dGVyL3RleHRfZGVmYXVsdHMiOjk2MiwiLi9hdHRyaWJ1dGVzIjoxMDExfV0sMTAxNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgYSxvLHM9e30sbD1yW2Uuc3VicGxvdF0uX3N1YnBsb3Q7bD8oYT1sLnJhZGlhbEF4aXMsbz1sLmFuZ3VsYXJBeGlzKTooYT0obD1yW2Uuc3VicGxvdF0pLnJhZGlhbGF4aXMsbz1sLmFuZ3VsYXJheGlzKTt2YXIgYz1hLmMybCh0LnIpO3MuckxhYmVsPWkudGlja1RleHQoYSxjLCEwKS50ZXh0O3ZhciB1PSJkZWdyZWVzIj09PW8udGhldGF1bml0P24ucmFkMmRlZyh0LnRoZXRhKTp0LnRoZXRhO3JldHVybiBzLnRoZXRhTGFiZWw9aS50aWNrVGV4dChvLHUsITApLnRleHQsc319LHsiLi4vLi4vbGliIjo1MTUsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo1NjZ9XSwxMDE1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NjYXR0ZXIvaG92ZXIiKTtmdW5jdGlvbiBpKHQsZSxyLG4pe3ZhciBpPXIucmFkaWFsQXhpcyxhPXIuYW5ndWxhckF4aXM7aS5faG92ZXJ0aXRsZT0iciIsYS5faG92ZXJ0aXRsZT0iXHUwM2I4Ijt2YXIgbz17fTtvW2Uuc3VicGxvdF09e19zdWJwbG90OnJ9O3ZhciBzPWUuX21vZHVsZS5mb3JtYXRMYWJlbHModCxlLG8pO24uckxhYmVsPXMuckxhYmVsLG4udGhldGFMYWJlbD1zLnRoZXRhTGFiZWw7dmFyIGw9dC5oaXx8ZS5ob3ZlcmluZm8sYz1bXTtmdW5jdGlvbiB1KHQsZSl7Yy5wdXNoKHQuX2hvdmVydGl0bGUrIjogIitlKX1pZighZS5ob3ZlcnRlbXBsYXRlKXt2YXIgZj1sLnNwbGl0KCIrIik7LTEhPT1mLmluZGV4T2YoImFsbCIpJiYoZj1bInIiLCJ0aGV0YSIsInRleHQiXSksLTEhPT1mLmluZGV4T2YoInIiKSYmdShpLG4uckxhYmVsKSwtMSE9PWYuaW5kZXhPZigidGhldGEiKSYmdShhLG4udGhldGFMYWJlbCksLTEhPT1mLmluZGV4T2YoInRleHQiKSYmbi50ZXh0JiYoYy5wdXNoKG4udGV4dCksZGVsZXRlIG4udGV4dCksbi5leHRyYVRleHQ9Yy5qb2luKCI8YnI+Iil9fWUuZXhwb3J0cz17aG92ZXJQb2ludHM6ZnVuY3Rpb24odCxlLHIsYSl7dmFyIG89bih0LGUscixhKTtpZihvJiYhMSE9PW9bMF0uaW5kZXgpe3ZhciBzPW9bMF07aWYodm9pZCAwPT09cy5pbmRleClyZXR1cm4gbzt2YXIgbD10LnN1YnBsb3QsYz1zLmNkW3MuaW5kZXhdLHU9cy50cmFjZTtpZihsLmlzUHRJbnNpZGUoYykpcmV0dXJuIHMueExhYmVsVmFsPXZvaWQgMCxzLnlMYWJlbFZhbD12b2lkIDAsaShjLHUsbCxzKSxzLmhvdmVydGVtcGxhdGU9dS5ob3ZlcnRlbXBsYXRlLG99fSxtYWtlSG92ZXJQb2ludFRleHQ6aX19LHsiLi4vc2NhdHRlci9ob3ZlciI6OTQ3fV0sMTAxNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e21vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJzY2F0dGVycG9sYXIiLGJhc2VQbG90TW9kdWxlOnQoIi4uLy4uL3Bsb3RzL3BvbGFyIiksY2F0ZWdvcmllczpbInBvbGFyIiwic3ltYm9scyIsInNob3dMZWdlbmQiLCJzY2F0dGVyLWxpa2UiXSxhdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKS5zdXBwbHlEZWZhdWx0cyxjb2xvcmJhcjp0KCIuLi9zY2F0dGVyL21hcmtlcl9jb2xvcmJhciIpLGZvcm1hdExhYmVsczp0KCIuL2Zvcm1hdF9sYWJlbHMiKSxjYWxjOnQoIi4vY2FsYyIpLHBsb3Q6dCgiLi9wbG90Iiksc3R5bGU6dCgiLi4vc2NhdHRlci9zdHlsZSIpLnN0eWxlLHN0eWxlT25TZWxlY3Q6dCgiLi4vc2NhdHRlci9zdHlsZSIpLnN0eWxlT25TZWxlY3QsaG92ZXJQb2ludHM6dCgiLi9ob3ZlciIpLmhvdmVyUG9pbnRzLHNlbGVjdFBvaW50czp0KCIuLi9zY2F0dGVyL3NlbGVjdCIpLG1ldGE6e319fSx7Ii4uLy4uL3Bsb3RzL3BvbGFyIjo2MzEsIi4uL3NjYXR0ZXIvbWFya2VyX2NvbG9yYmFyIjo5NTQsIi4uL3NjYXR0ZXIvc2VsZWN0Ijo5NTgsIi4uL3NjYXR0ZXIvc3R5bGUiOjk2MCwiLi9hdHRyaWJ1dGVzIjoxMDExLCIuL2NhbGMiOjEwMTIsIi4vZGVmYXVsdHMiOjEwMTMsIi4vZm9ybWF0X2xhYmVscyI6MTAxNCwiLi9ob3ZlciI6MTAxNSwiLi9wbG90IjoxMDE3fV0sMTAxNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9zY2F0dGVyL3Bsb3QiKSxpPXQoIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiKS5CQUROVU07ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGE9ZS5sYXllcnMuZnJvbnRwbG90LnNlbGVjdCgiZy5zY2F0dGVybGF5ZXIiKSxvPXt4YXhpczplLnhheGlzLHlheGlzOmUueWF4aXMscGxvdDplLmZyYW1ld29yayxsYXllckNsaXBJZDplLl9oYXNDbGlwT25BeGlzRmFsc2U/ZS5jbGlwSWRzLmZvclRyYWNlczpudWxsfSxzPWUucmFkaWFsQXhpcyxsPWUuYW5ndWxhckF4aXMsYz0wO2M8ci5sZW5ndGg7YysrKWZvcih2YXIgdT1yW2NdLGY9MDtmPHUubGVuZ3RoO2YrKyl7dmFyIGg9dVtmXSxwPWgucjtpZihwPT09aSloLng9aC55PWk7ZWxzZXt2YXIgZD1zLmMyZyhwKSxtPWwuYzJnKGgudGhldGEpO2gueD1kKk1hdGguY29zKG0pLGgueT1kKk1hdGguc2luKG0pfX1uKHQsbyxyLGEpfX0seyIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo0OTEsIi4uL3NjYXR0ZXIvcGxvdCI6OTU3fV0sMTAxODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9zY2F0dGVycG9sYXIvYXR0cmlidXRlcyIpLGk9dCgiLi4vc2NhdHRlcmdsL2F0dHJpYnV0ZXMiKSxhPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS50ZXh0dGVtcGxhdGVBdHRycztlLmV4cG9ydHM9e21vZGU6bi5tb2RlLHI6bi5yLHRoZXRhOm4udGhldGEscjA6bi5yMCxkcjpuLmRyLHRoZXRhMDpuLnRoZXRhMCxkdGhldGE6bi5kdGhldGEsdGhldGF1bml0Om4udGhldGF1bml0LHRleHQ6bi50ZXh0LHRleHR0ZW1wbGF0ZTphKHtlZGl0VHlwZToicGxvdCJ9LHtrZXlzOlsiciIsInRoZXRhIiwidGV4dCJdfSksaG92ZXJ0ZXh0Om4uaG92ZXJ0ZXh0LGhvdmVydGVtcGxhdGU6bi5ob3ZlcnRlbXBsYXRlLGxpbmU6aS5saW5lLGNvbm5lY3RnYXBzOmkuY29ubmVjdGdhcHMsbWFya2VyOmkubWFya2VyLGZpbGw6aS5maWxsLGZpbGxjb2xvcjppLmZpbGxjb2xvcix0ZXh0cG9zaXRpb246aS50ZXh0cG9zaXRpb24sdGV4dGZvbnQ6aS50ZXh0Zm9udCxob3ZlcmluZm86bi5ob3ZlcmluZm8sc2VsZWN0ZWQ6bi5zZWxlY3RlZCx1bnNlbGVjdGVkOm4udW5zZWxlY3RlZH19LHsiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyI6NjQyLCIuLi9zY2F0dGVyZ2wvYXR0cmlidXRlcyI6OTg4LCIuLi9zY2F0dGVycG9sYXIvYXR0cmlidXRlcyI6MTAxMX1dLDEwMTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToic2NhdHRlcnBvbGFyZ2wiLGJhc2VQbG90TW9kdWxlOnQoIi4uLy4uL3Bsb3RzL3BvbGFyIiksY2F0ZWdvcmllczpbImdsIiwicmVnbCIsInBvbGFyIiwic3ltYm9scyIsInNob3dMZWdlbmQiLCJzY2F0dGVyLWxpa2UiXSxhdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxjb2xvcmJhcjp0KCIuLi9zY2F0dGVyL21hcmtlcl9jb2xvcmJhciIpLGZvcm1hdExhYmVsczp0KCIuL2Zvcm1hdF9sYWJlbHMiKSxjYWxjOnQoIi4vY2FsYyIpLGhvdmVyUG9pbnRzOnQoIi4vaG92ZXIiKS5ob3ZlclBvaW50cyxzZWxlY3RQb2ludHM6dCgiLi4vc2NhdHRlcmdsL3NlbGVjdCIpLG1ldGE6e319fSx7Ii4uLy4uL3Bsb3RzL3BvbGFyIjo2MzEsIi4uL3NjYXR0ZXIvbWFya2VyX2NvbG9yYmFyIjo5NTQsIi4uL3NjYXR0ZXJnbC9zZWxlY3QiOjEwMDEsIi4vYXR0cmlidXRlcyI6MTAxOCwiLi9jYWxjIjoxMDIwLCIuL2RlZmF1bHRzIjoxMDIxLCIuL2Zvcm1hdF9sYWJlbHMiOjEwMjIsIi4vaG92ZXIiOjEwMjN9XSwxMDIwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NjYXR0ZXIvY29sb3JzY2FsZV9jYWxjIiksaT10KCIuLi9zY2F0dGVyL2NhbGMiKS5jYWxjTWFya2VyU2l6ZSxhPXQoIi4uL3NjYXR0ZXJnbC9jb252ZXJ0Iiksbz10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLHM9dCgiLi4vc2NhdHRlcmdsL2NvbnN0YW50cyIpLlRPT19NQU5ZX1BPSU5UUztlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10Ll9mdWxsTGF5b3V0LGw9ZS5zdWJwbG90LGM9cltsXS5yYWRpYWxheGlzLHU9cltsXS5hbmd1bGFyYXhpcyxmPWUuX3I9Yy5tYWtlQ2FsY2RhdGEoZSwiciIpLGg9ZS5fdGhldGE9dS5tYWtlQ2FsY2RhdGEoZSwidGhldGEiKSxwPWUuX2xlbmd0aCxkPXt9O3A8Zi5sZW5ndGgmJihmPWYuc2xpY2UoMCxwKSkscDxoLmxlbmd0aCYmKGg9aC5zbGljZSgwLHApKSxkLnI9ZixkLnRoZXRhPWgsbih0LGUpO3ZhciBtLGc9ZC5vcHRzPWEuc3R5bGUodCxlKTtyZXR1cm4gcDxzP209aShlLHApOmcubWFya2VyJiYobT0yKihnLm1hcmtlci5zaXplQXZnfHxNYXRoLm1heChnLm1hcmtlci5zaXplLDMpKSksZS5fZXh0cmVtZXMueD1vLmZpbmRFeHRyZW1lcyhjLGYse3BwYWQ6bX0pLFt7eDohMSx5OiExLHQ6ZCx0cmFjZTplfV19fSx7Ii4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo1NjYsIi4uL3NjYXR0ZXIvY2FsYyI6OTM3LCIuLi9zY2F0dGVyL2NvbG9yc2NhbGVfY2FsYyI6OTM5LCIuLi9zY2F0dGVyZ2wvY29uc3RhbnRzIjo5OTEsIi4uL3NjYXR0ZXJnbC9jb252ZXJ0Ijo5OTJ9XSwxMDIxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vc2NhdHRlci9zdWJ0eXBlcyIpLGE9dCgiLi4vc2NhdHRlcnBvbGFyL2RlZmF1bHRzIikuaGFuZGxlUlRoZXRhRGVmYXVsdHMsbz10KCIuLi9zY2F0dGVyL21hcmtlcl9kZWZhdWx0cyIpLHM9dCgiLi4vc2NhdHRlci9saW5lX2RlZmF1bHRzIiksbD10KCIuLi9zY2F0dGVyL3RleHRfZGVmYXVsdHMiKSxjPXQoIi4uL3NjYXR0ZXIvZmlsbGNvbG9yX2RlZmF1bHRzIiksdT10KCIuLi9zY2F0dGVyL2NvbnN0YW50cyIpLlBUU19MSU5FU09OTFksZj10KCIuL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsaCl7ZnVuY3Rpb24gcChyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsZixyLGkpfXZhciBkPWEodCxlLGgscCk7ZD8ocCgidGhldGF1bml0IikscCgibW9kZSIsZDx1PyJsaW5lcyttYXJrZXJzIjoibGluZXMiKSxwKCJ0ZXh0IikscCgiaG92ZXJ0ZXh0IiksImZpbGxzIiE9PWUuaG92ZXJvbiYmcCgiaG92ZXJ0ZW1wbGF0ZSIpLGkuaGFzTGluZXMoZSkmJihzKHQsZSxyLGgscCkscCgiY29ubmVjdGdhcHMiKSksaS5oYXNNYXJrZXJzKGUpJiZvKHQsZSxyLGgscCksaS5oYXNUZXh0KGUpJiYocCgidGV4dHRlbXBsYXRlIiksbCh0LGUsaCxwKSkscCgiZmlsbCIpLCJub25lIiE9PWUuZmlsbCYmYyh0LGUscixwKSxuLmNvZXJjZVNlbGVjdGlvbk1hcmtlck9wYWNpdHkoZSxwKSk6ZS52aXNpYmxlPSExfX0seyIuLi8uLi9saWIiOjUxNSwiLi4vc2NhdHRlci9jb25zdGFudHMiOjk0MCwiLi4vc2NhdHRlci9maWxsY29sb3JfZGVmYXVsdHMiOjk0NCwiLi4vc2NhdHRlci9saW5lX2RlZmF1bHRzIjo5NDksIi4uL3NjYXR0ZXIvbWFya2VyX2RlZmF1bHRzIjo5NTUsIi4uL3NjYXR0ZXIvc3VidHlwZXMiOjk2MSwiLi4vc2NhdHRlci90ZXh0X2RlZmF1bHRzIjo5NjIsIi4uL3NjYXR0ZXJwb2xhci9kZWZhdWx0cyI6MTAxMywiLi9hdHRyaWJ1dGVzIjoxMDE4fV0sMTAyMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9zY2F0dGVycG9sYXIvZm9ybWF0X2xhYmVscyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIGk9dC5pO3JldHVybiJyImluIHR8fCh0LnI9ZS5fcltpXSksInRoZXRhImluIHR8fCh0LnRoZXRhPWUuX3RoZXRhW2ldKSxuKHQsZSxyKX19LHsiLi4vc2NhdHRlcnBvbGFyL2Zvcm1hdF9sYWJlbHMiOjEwMTR9XSwxMDIzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NjYXR0ZXJnbC9ob3ZlciIpLGk9dCgiLi4vc2NhdHRlcnBvbGFyL2hvdmVyIikubWFrZUhvdmVyUG9pbnRUZXh0O2UuZXhwb3J0cz17aG92ZXJQb2ludHM6ZnVuY3Rpb24odCxlLHIsYSl7dmFyIG89dC5jZFswXS50LHM9by5yLGw9by50aGV0YSxjPW4uaG92ZXJQb2ludHModCxlLHIsYSk7aWYoYyYmITEhPT1jWzBdLmluZGV4KXt2YXIgdT1jWzBdO2lmKHZvaWQgMD09PXUuaW5kZXgpcmV0dXJuIGM7dmFyIGY9dC5zdWJwbG90LGg9dS5jZFt1LmluZGV4XSxwPXUudHJhY2U7aWYoaC5yPXNbdS5pbmRleF0saC50aGV0YT1sW3UuaW5kZXhdLGYuaXNQdEluc2lkZShoKSlyZXR1cm4gdS54TGFiZWxWYWw9dm9pZCAwLHUueUxhYmVsVmFsPXZvaWQgMCxpKGgscCxmLHUpLGN9fX19LHsiLi4vc2NhdHRlcmdsL2hvdmVyIjo5OTcsIi4uL3NjYXR0ZXJwb2xhci9ob3ZlciI6MTAxNX1dLDEwMjQ6W2Z1bmN0aW9uKHQsZSxyKXthcmd1bWVudHNbNF1bOTA1XVswXS5hcHBseShyLGFyZ3VtZW50cyl9LHsiLi9iYXNlX2luZGV4IjoxMDE5LCIuL3Bsb3QiOjEwMjUsZHVwOjkwNX1dLDEwMjU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9wb2ludC1jbHVzdGVyIiksaT10KCJmYXN0LWlzbnVtZXJpYyIpLGE9dCgiLi4vc2NhdHRlcmdsL3Bsb3QiKSxvPXQoIi4uL3NjYXR0ZXJnbC9zY2VuZV91cGRhdGUiKSxzPXQoIi4uL3NjYXR0ZXJnbC9jb252ZXJ0IiksbD10KCIuLi8uLi9saWIiKSxjPXQoIi4uL3NjYXR0ZXJnbC9jb25zdGFudHMiKS5UT09fTUFOWV9QT0lOVFM7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtpZihyLmxlbmd0aCl7dmFyIHU9ZS5yYWRpYWxBeGlzLGY9ZS5hbmd1bGFyQXhpcyxoPW8odCxlKTtyZXR1cm4gci5mb3JFYWNoKChmdW5jdGlvbihyKXtpZihyJiZyWzBdJiZyWzBdLnRyYWNlKXt2YXIgYSxvPXJbMF0scD1vLnRyYWNlLGQ9by50LG09cC5fbGVuZ3RoLGc9ZC5yLHY9ZC50aGV0YSx5PWQub3B0cyx4PWcuc2xpY2UoKSxiPXYuc2xpY2UoKTtmb3IoYT0wO2E8Zy5sZW5ndGg7YSsrKWUuaXNQdEluc2lkZSh7cjpnW2FdLHRoZXRhOnZbYV19KXx8KHhbYV09TmFOLGJbYV09TmFOKTt2YXIgXz1uZXcgQXJyYXkoMiptKSx3PUFycmF5KG0pLFQ9QXJyYXkobSk7Zm9yKGE9MDthPG07YSsrKXt2YXIgayxBLE09eFthXTtpZihpKE0pKXt2YXIgUz11LmMyZyhNKSxFPWYuYzJnKGJbYV0scC50aGV0YXVuaXQpO2s9UypNYXRoLmNvcyhFKSxBPVMqTWF0aC5zaW4oRSl9ZWxzZSBrPUE9TmFOO3dbYV09X1syKmFdPWssVFthXT1fWzIqYSsxXT1BfWQudHJlZT1uKF8pLHkubWFya2VyJiZtPj1jJiYoeS5tYXJrZXIuY2x1c3Rlcj1kLnRyZWUpLHkubWFya2VyJiYoeS5tYXJrZXJTZWwucG9zaXRpb25zPXkubWFya2VyVW5zZWwucG9zaXRpb25zPXkubWFya2VyLnBvc2l0aW9ucz1fKSx5LmxpbmUmJl8ubGVuZ3RoPjEmJmwuZXh0ZW5kRmxhdCh5LmxpbmUscy5saW5lUG9zaXRpb25zKHQscCxfKSkseS50ZXh0JiYobC5leHRlbmRGbGF0KHkudGV4dCx7cG9zaXRpb25zOl99LHMudGV4dFBvc2l0aW9uKHQscCx5LnRleHQseS5tYXJrZXIpKSxsLmV4dGVuZEZsYXQoeS50ZXh0U2VsLHtwb3NpdGlvbnM6X30scy50ZXh0UG9zaXRpb24odCxwLHkudGV4dCx5Lm1hcmtlclNlbCkpLGwuZXh0ZW5kRmxhdCh5LnRleHRVbnNlbCx7cG9zaXRpb25zOl99LHMudGV4dFBvc2l0aW9uKHQscCx5LnRleHQseS5tYXJrZXJVbnNlbCkpKSx5LmZpbGwmJiFoLmZpbGwyZCYmKGguZmlsbDJkPSEwKSx5Lm1hcmtlciYmIWguc2NhdHRlcjJkJiYoaC5zY2F0dGVyMmQ9ITApLHkubGluZSYmIWgubGluZTJkJiYoaC5saW5lMmQ9ITApLHkudGV4dCYmIWguZ2xUZXh0JiYoaC5nbFRleHQ9ITApLGgubGluZU9wdGlvbnMucHVzaCh5LmxpbmUpLGguZmlsbE9wdGlvbnMucHVzaCh5LmZpbGwpLGgubWFya2VyT3B0aW9ucy5wdXNoKHkubWFya2VyKSxoLm1hcmtlclNlbGVjdGVkT3B0aW9ucy5wdXNoKHkubWFya2VyU2VsKSxoLm1hcmtlclVuc2VsZWN0ZWRPcHRpb25zLnB1c2goeS5tYXJrZXJVbnNlbCksaC50ZXh0T3B0aW9ucy5wdXNoKHkudGV4dCksaC50ZXh0U2VsZWN0ZWRPcHRpb25zLnB1c2goeS50ZXh0U2VsKSxoLnRleHRVbnNlbGVjdGVkT3B0aW9ucy5wdXNoKHkudGV4dFVuc2VsKSxoLnNlbGVjdEJhdGNoLnB1c2goW10pLGgudW5zZWxlY3RCYXRjaC5wdXNoKFtdKSxkLng9dyxkLnk9VCxkLnJhd3g9dyxkLnJhd3k9VCxkLnI9ZyxkLnRoZXRhPXYsZC5wb3NpdGlvbnM9XyxkLl9zY2VuZT1oLGQuaW5kZXg9aC5jb3VudCxoLmNvdW50Kyt9fSkpLGEodCxlLHIpfX0sZS5leHBvcnRzLnJlZ2xQcmVjb21waWxlZD17fX0seyIuLi8uLi9saWIiOjUxNSwiLi4vc2NhdHRlcmdsL2NvbnN0YW50cyI6OTkxLCIuLi9zY2F0dGVyZ2wvY29udmVydCI6OTkyLCIuLi9zY2F0dGVyZ2wvcGxvdCI6OTk5LCIuLi9zY2F0dGVyZ2wvc2NlbmVfdXBkYXRlIjoxZTMsIkBwbG90bHkvcG9pbnQtY2x1c3RlciI6NTksImZhc3QtaXNudW1lcmljIjoxOTB9XSwxMDI2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS5ob3ZlcnRlbXBsYXRlQXR0cnMsaT10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikudGV4dHRlbXBsYXRlQXR0cnMsYT10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxvPXQoIi4uL3NjYXR0ZXIvYXR0cmlidXRlcyIpLHM9dCgiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyIpLGw9by5saW5lO2UuZXhwb3J0cz17bW9kZTpvLm1vZGUscmVhbDp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSxpbWFnOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LHRleHQ6by50ZXh0LHRleHR0ZW1wbGF0ZTppKHtlZGl0VHlwZToicGxvdCJ9LHtrZXlzOlsicmVhbCIsImltYWciLCJ0ZXh0Il19KSxob3ZlcnRleHQ6by5ob3ZlcnRleHQsbGluZTp7Y29sb3I6bC5jb2xvcix3aWR0aDpsLndpZHRoLGRhc2g6bC5kYXNoLHNoYXBlOmEoe30sbC5zaGFwZSx7dmFsdWVzOlsibGluZWFyIiwic3BsaW5lIl19KSxzbW9vdGhpbmc6bC5zbW9vdGhpbmcsZWRpdFR5cGU6ImNhbGMifSxjb25uZWN0Z2FwczpvLmNvbm5lY3RnYXBzLG1hcmtlcjpvLm1hcmtlcixjbGlwb25heGlzOmEoe30sby5jbGlwb25heGlzLHtkZmx0OiExfSksdGV4dHBvc2l0aW9uOm8udGV4dHBvc2l0aW9uLHRleHRmb250Om8udGV4dGZvbnQsZmlsbDphKHt9LG8uZmlsbCx7dmFsdWVzOlsibm9uZSIsInRvc2VsZiIsInRvbmV4dCJdLGRmbHQ6Im5vbmUifSksZmlsbGNvbG9yOm8uZmlsbGNvbG9yLGhvdmVyaW5mbzphKHt9LHMuaG92ZXJpbmZvLHtmbGFnczpbInJlYWwiLCJpbWFnIiwidGV4dCIsIm5hbWUiXX0pLGhvdmVyb246by5ob3Zlcm9uLGhvdmVydGVtcGxhdGU6bigpLHNlbGVjdGVkOm8uc2VsZWN0ZWQsdW5zZWxlY3RlZDpvLnVuc2VsZWN0ZWR9fSx7Ii4uLy4uL2xpYi9leHRlbmQiOjUwNSwiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyI6NTYyLCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo2NDIsIi4uL3NjYXR0ZXIvYXR0cmlidXRlcyI6OTM2fV0sMTAyNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGk9dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTSxhPXQoIi4uL3NjYXR0ZXIvY29sb3JzY2FsZV9jYWxjIiksbz10KCIuLi9zY2F0dGVyL2FycmF5c190b19jYWxjZGF0YSIpLHM9dCgiLi4vc2NhdHRlci9jYWxjX3NlbGVjdGlvbiIpLGw9dCgiLi4vc2NhdHRlci9jYWxjIikuY2FsY01hcmtlclNpemU7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQuX2Z1bGxMYXlvdXQsYz1lLnN1YnBsb3QsdT1yW2NdLnJlYWxheGlzLGY9cltjXS5pbWFnaW5hcnlheGlzLGg9dS5tYWtlQ2FsY2RhdGEoZSwicmVhbCIpLHA9Zi5tYWtlQ2FsY2RhdGEoZSwiaW1hZyIpLGQ9ZS5fbGVuZ3RoLG09bmV3IEFycmF5KGQpLGc9MDtnPGQ7ZysrKXt2YXIgdj1oW2ddLHk9cFtnXSx4PW1bZ109e307bih2KSYmbih5KT8oeC5yZWFsPXYseC5pbWFnPXkpOngucmVhbD1pfXJldHVybiBsKGUsZCksYSh0LGUpLG8obSxlKSxzKG0sZSksbX19LHsiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NDkxLCIuLi9zY2F0dGVyL2FycmF5c190b19jYWxjZGF0YSI6OTM1LCIuLi9zY2F0dGVyL2NhbGMiOjkzNywiLi4vc2NhdHRlci9jYWxjX3NlbGVjdGlvbiI6OTM4LCIuLi9zY2F0dGVyL2NvbG9yc2NhbGVfY2FsYyI6OTM5LCJmYXN0LWlzbnVtZXJpYyI6MTkwfV0sMTAyODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uL3NjYXR0ZXIvc3VidHlwZXMiKSxhPXQoIi4uL3NjYXR0ZXIvbWFya2VyX2RlZmF1bHRzIiksbz10KCIuLi9zY2F0dGVyL2xpbmVfZGVmYXVsdHMiKSxzPXQoIi4uL3NjYXR0ZXIvbGluZV9zaGFwZV9kZWZhdWx0cyIpLGw9dCgiLi4vc2NhdHRlci90ZXh0X2RlZmF1bHRzIiksYz10KCIuLi9zY2F0dGVyL2ZpbGxjb2xvcl9kZWZhdWx0cyIpLHU9dCgiLi4vc2NhdHRlci9jb25zdGFudHMiKS5QVFNfTElORVNPTkxZLGY9dCgiLi9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGgpe2Z1bmN0aW9uIHAocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLGYscixpKX12YXIgZD1mdW5jdGlvbih0LGUscixuKXt2YXIgaSxhPW4oInJlYWwiKSxvPW4oImltYWciKTthJiZvJiYoaT1NYXRoLm1pbihhLmxlbmd0aCxvLmxlbmd0aCkpO3JldHVybiBlLl9sZW5ndGg9aSxpfSgwLGUsMCxwKTtpZihkKXtwKCJtb2RlIixkPHU/ImxpbmVzK21hcmtlcnMiOiJsaW5lcyIpLHAoInRleHQiKSxwKCJob3ZlcnRleHQiKSwiZmlsbHMiIT09ZS5ob3Zlcm9uJiZwKCJob3ZlcnRlbXBsYXRlIiksaS5oYXNMaW5lcyhlKSYmKG8odCxlLHIsaCxwKSxzKHQsZSxwKSxwKCJjb25uZWN0Z2FwcyIpKSxpLmhhc01hcmtlcnMoZSkmJmEodCxlLHIsaCxwLHtncmFkaWVudDohMH0pLGkuaGFzVGV4dChlKSYmKHAoInRleHR0ZW1wbGF0ZSIpLGwodCxlLGgscCkpO3ZhciBtPVtdOyhpLmhhc01hcmtlcnMoZSl8fGkuaGFzVGV4dChlKSkmJihwKCJjbGlwb25heGlzIikscCgibWFya2VyLm1heGRpc3BsYXllZCIpLG0ucHVzaCgicG9pbnRzIikpLHAoImZpbGwiKSwibm9uZSIhPT1lLmZpbGwmJihjKHQsZSxyLHApLGkuaGFzTGluZXMoZSl8fHModCxlLHApKSwidG9uZXh0IiE9PWUuZmlsbCYmInRvc2VsZiIhPT1lLmZpbGx8fG0ucHVzaCgiZmlsbHMiKSxwKCJob3Zlcm9uIixtLmpvaW4oIisiKXx8InBvaW50cyIpLG4uY29lcmNlU2VsZWN0aW9uTWFya2VyT3BhY2l0eShlLHApfWVsc2UgZS52aXNpYmxlPSExfX0seyIuLi8uLi9saWIiOjUxNSwiLi4vc2NhdHRlci9jb25zdGFudHMiOjk0MCwiLi4vc2NhdHRlci9maWxsY29sb3JfZGVmYXVsdHMiOjk0NCwiLi4vc2NhdHRlci9saW5lX2RlZmF1bHRzIjo5NDksIi4uL3NjYXR0ZXIvbGluZV9zaGFwZV9kZWZhdWx0cyI6OTUxLCIuLi9zY2F0dGVyL21hcmtlcl9kZWZhdWx0cyI6OTU1LCIuLi9zY2F0dGVyL3N1YnR5cGVzIjo5NjEsIi4uL3NjYXR0ZXIvdGV4dF9kZWZhdWx0cyI6OTYyLCIuL2F0dHJpYnV0ZXMiOjEwMjZ9XSwxMDI5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgaT17fSxhPXJbZS5zdWJwbG90XS5fc3VicGxvdDtyZXR1cm4gaS5yZWFsTGFiZWw9bi50aWNrVGV4dChhLnJhZGlhbEF4aXMsdC5yZWFsLCEwKS50ZXh0LGkuaW1hZ0xhYmVsPW4udGlja1RleHQoYS5hbmd1bGFyQXhpcyx0LmltYWcsITApLnRleHQsaX19LHsiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjU2Nn1dLDEwMzA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vc2NhdHRlci9ob3ZlciIpO2Z1bmN0aW9uIGkodCxlLHIsbil7dmFyIGk9ci5yYWRpYWxBeGlzLGE9ci5hbmd1bGFyQXhpcztpLl9ob3ZlcnRpdGxlPSJyZWFsIixhLl9ob3ZlcnRpdGxlPSJpbWFnIjt2YXIgbz17fTtvW2Uuc3VicGxvdF09e19zdWJwbG90OnJ9O3ZhciBzPWUuX21vZHVsZS5mb3JtYXRMYWJlbHModCxlLG8pO24ucmVhbExhYmVsPXMucmVhbExhYmVsLG4uaW1hZ0xhYmVsPXMuaW1hZ0xhYmVsO3ZhciBsPXQuaGl8fGUuaG92ZXJpbmZvLGM9W107ZnVuY3Rpb24gdSh0LGUpe2MucHVzaCh0Ll9ob3ZlcnRpdGxlKyI6ICIrZSl9aWYoIWUuaG92ZXJ0ZW1wbGF0ZSl7dmFyIGY9bC5zcGxpdCgiKyIpOy0xIT09Zi5pbmRleE9mKCJhbGwiKSYmKGY9WyJyZWFsIiwiaW1hZyIsInRleHQiXSksLTEhPT1mLmluZGV4T2YoInJlYWwiKSYmdShpLG4ucmVhbExhYmVsKSwtMSE9PWYuaW5kZXhPZigiaW1hZyIpJiZ1KGEsbi5pbWFnTGFiZWwpLC0xIT09Zi5pbmRleE9mKCJ0ZXh0IikmJm4udGV4dCYmKGMucHVzaChuLnRleHQpLGRlbGV0ZSBuLnRleHQpLG4uZXh0cmFUZXh0PWMuam9pbigiPGJyPiIpfX1lLmV4cG9ydHM9e2hvdmVyUG9pbnRzOmZ1bmN0aW9uKHQsZSxyLGEpe3ZhciBvPW4odCxlLHIsYSk7aWYobyYmITEhPT1vWzBdLmluZGV4KXt2YXIgcz1vWzBdO2lmKHZvaWQgMD09PXMuaW5kZXgpcmV0dXJuIG87dmFyIGw9dC5zdWJwbG90LGM9cy5jZFtzLmluZGV4XSx1PXMudHJhY2U7aWYobC5pc1B0SW5zaWRlKGMpKXJldHVybiBzLnhMYWJlbFZhbD12b2lkIDAscy55TGFiZWxWYWw9dm9pZCAwLGkoYyx1LGwscykscy5ob3ZlcnRlbXBsYXRlPXUuaG92ZXJ0ZW1wbGF0ZSxvfX0sbWFrZUhvdmVyUG9pbnRUZXh0Oml9fSx7Ii4uL3NjYXR0ZXIvaG92ZXIiOjk0N31dLDEwMzE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToic2NhdHRlcnNtaXRoIixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9zbWl0aCIpLGNhdGVnb3JpZXM6WyJzbWl0aCIsInN5bWJvbHMiLCJzaG93TGVnZW5kIiwic2NhdHRlci1saWtlIl0sYXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksY29sb3JiYXI6dCgiLi4vc2NhdHRlci9tYXJrZXJfY29sb3JiYXIiKSxmb3JtYXRMYWJlbHM6dCgiLi9mb3JtYXRfbGFiZWxzIiksY2FsYzp0KCIuL2NhbGMiKSxwbG90OnQoIi4vcGxvdCIpLHN0eWxlOnQoIi4uL3NjYXR0ZXIvc3R5bGUiKS5zdHlsZSxzdHlsZU9uU2VsZWN0OnQoIi4uL3NjYXR0ZXIvc3R5bGUiKS5zdHlsZU9uU2VsZWN0LGhvdmVyUG9pbnRzOnQoIi4vaG92ZXIiKS5ob3ZlclBvaW50cyxzZWxlY3RQb2ludHM6dCgiLi4vc2NhdHRlci9zZWxlY3QiKSxtZXRhOnt9fX0seyIuLi8uLi9wbG90cy9zbWl0aCI6NjM4LCIuLi9zY2F0dGVyL21hcmtlcl9jb2xvcmJhciI6OTU0LCIuLi9zY2F0dGVyL3NlbGVjdCI6OTU4LCIuLi9zY2F0dGVyL3N0eWxlIjo5NjAsIi4vYXR0cmlidXRlcyI6MTAyNiwiLi9jYWxjIjoxMDI3LCIuL2RlZmF1bHRzIjoxMDI4LCIuL2Zvcm1hdF9sYWJlbHMiOjEwMjksIi4vaG92ZXIiOjEwMzAsIi4vcGxvdCI6MTAzMn1dLDEwMzI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vc2NhdHRlci9wbG90IiksaT10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQkFETlVNLGE9dCgiLi4vLi4vcGxvdHMvc21pdGgvaGVscGVycyIpLnNtaXRoO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBvPWUubGF5ZXJzLmZyb250cGxvdC5zZWxlY3QoImcuc2NhdHRlcmxheWVyIikscz17eGF4aXM6ZS54YXhpcyx5YXhpczplLnlheGlzLHBsb3Q6ZS5mcmFtZXdvcmssbGF5ZXJDbGlwSWQ6ZS5faGFzQ2xpcE9uQXhpc0ZhbHNlP2UuY2xpcElkcy5mb3JUcmFjZXM6bnVsbH0sbD0wO2w8ci5sZW5ndGg7bCsrKWZvcih2YXIgYz1yW2xdLHU9MDt1PGMubGVuZ3RoO3UrKyl7dmFyIGY9Y1t1XSxoPWYucmVhbDtpZihoPT09aSlmLng9Zi55PWk7ZWxzZXt2YXIgcD1hKFtoLGYuaW1hZ10pO2YueD1wWzBdLGYueT1wWzFdfX1uKHQscyxyLG8pfX0seyIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo0OTEsIi4uLy4uL3Bsb3RzL3NtaXRoL2hlbHBlcnMiOjYzNywiLi4vc2NhdHRlci9wbG90Ijo5NTd9XSwxMDMzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS5ob3ZlcnRlbXBsYXRlQXR0cnMsaT10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikudGV4dHRlbXBsYXRlQXR0cnMsYT10KCIuLi9zY2F0dGVyL2F0dHJpYnV0ZXMiKSxvPXQoIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiKSxzPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIiksbD10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmcvYXR0cmlidXRlcyIpLmRhc2gsYz10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCx1PWEubWFya2VyLGY9YS5saW5lLGg9dS5saW5lO2UuZXhwb3J0cz17YTp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxiOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LGM6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sc3VtOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MCxtaW46MCxlZGl0VHlwZToiY2FsYyJ9LG1vZGU6Yyh7fSxhLm1vZGUse2RmbHQ6Im1hcmtlcnMifSksdGV4dDpjKHt9LGEudGV4dCx7fSksdGV4dHRlbXBsYXRlOmkoe2VkaXRUeXBlOiJwbG90In0se2tleXM6WyJhIiwiYiIsImMiLCJ0ZXh0Il19KSxob3ZlcnRleHQ6Yyh7fSxhLmhvdmVydGV4dCx7fSksbGluZTp7Y29sb3I6Zi5jb2xvcix3aWR0aDpmLndpZHRoLGRhc2g6bCxzaGFwZTpjKHt9LGYuc2hhcGUse3ZhbHVlczpbImxpbmVhciIsInNwbGluZSJdfSksc21vb3RoaW5nOmYuc21vb3RoaW5nLGVkaXRUeXBlOiJjYWxjIn0sY29ubmVjdGdhcHM6YS5jb25uZWN0Z2FwcyxjbGlwb25heGlzOmEuY2xpcG9uYXhpcyxmaWxsOmMoe30sYS5maWxsLHt2YWx1ZXM6WyJub25lIiwidG9zZWxmIiwidG9uZXh0Il0sZGZsdDoibm9uZSJ9KSxmaWxsY29sb3I6YS5maWxsY29sb3IsbWFya2VyOmMoe3N5bWJvbDp1LnN5bWJvbCxvcGFjaXR5OnUub3BhY2l0eSxtYXhkaXNwbGF5ZWQ6dS5tYXhkaXNwbGF5ZWQsc2l6ZTp1LnNpemUsc2l6ZXJlZjp1LnNpemVyZWYsc2l6ZW1pbjp1LnNpemVtaW4sc2l6ZW1vZGU6dS5zaXplbW9kZSxsaW5lOmMoe3dpZHRoOmgud2lkdGgsZWRpdFR5cGU6ImNhbGMifSxzKCJtYXJrZXIubGluZSIpKSxncmFkaWVudDp1LmdyYWRpZW50LGVkaXRUeXBlOiJjYWxjIn0scygibWFya2VyIikpLHRleHRmb250OmEudGV4dGZvbnQsdGV4dHBvc2l0aW9uOmEudGV4dHBvc2l0aW9uLHNlbGVjdGVkOmEuc2VsZWN0ZWQsdW5zZWxlY3RlZDphLnVuc2VsZWN0ZWQsaG92ZXJpbmZvOmMoe30sby5ob3ZlcmluZm8se2ZsYWdzOlsiYSIsImIiLCJjIiwidGV4dCIsIm5hbWUiXX0pLGhvdmVyb246YS5ob3Zlcm9uLGhvdmVydGVtcGxhdGU6bigpfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6Mzc0LCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmcvYXR0cmlidXRlcyI6Mzg4LCIuLi8uLi9saWIvZXh0ZW5kIjo1MDUsIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiOjU2MiwiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyI6NjQyLCIuLi9zY2F0dGVyL2F0dHJpYnV0ZXMiOjkzNn1dLDEwMzQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxpPXQoIi4uL3NjYXR0ZXIvY29sb3JzY2FsZV9jYWxjIiksYT10KCIuLi9zY2F0dGVyL2FycmF5c190b19jYWxjZGF0YSIpLG89dCgiLi4vc2NhdHRlci9jYWxjX3NlbGVjdGlvbiIpLHM9dCgiLi4vc2NhdHRlci9jYWxjIikuY2FsY01hcmtlclNpemUsbD1bImEiLCJiIiwiYyJdLGM9e2E6WyJiIiwiYyJdLGI6WyJhIiwiYyJdLGM6WyJhIiwiYiJdfTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcix1LGYsaCxwLGQsbT10Ll9mdWxsTGF5b3V0W2Uuc3VicGxvdF0uc3VtLGc9ZS5zdW18fG0sdj17YTplLmEsYjplLmIsYzplLmN9O2ZvcihyPTA7cjxsLmxlbmd0aDtyKyspaWYoIXZbZj1sW3JdXSl7Zm9yKHA9dltjW2ZdWzBdXSxkPXZbY1tmXVsxXV0saD1uZXcgQXJyYXkocC5sZW5ndGgpLHU9MDt1PHAubGVuZ3RoO3UrKyloW3VdPWctcFt1XS1kW3VdO3ZbZl09aH12YXIgeSx4LGIsXyx3LFQsaz1lLl9sZW5ndGgsQT1uZXcgQXJyYXkoayk7Zm9yKHI9MDtyPGs7cisrKXk9di5hW3JdLHg9di5iW3JdLGI9di5jW3JdLG4oeSkmJm4oeCkmJm4oYik/KDEhPT0oXz1tLygoeT0reSkrKHg9K3gpKyhiPStiKSkpJiYoeSo9Xyx4Kj1fLGIqPV8pLFQ9eSx3PWIteCxBW3JdPXt4OncseTpULGE6eSxiOngsYzpifSk6QVtyXT17eDohMSx5OiExfTtyZXR1cm4gcyhlLGspLGkodCxlKSxhKEEsZSksbyhBLGUpLEF9fSx7Ii4uL3NjYXR0ZXIvYXJyYXlzX3RvX2NhbGNkYXRhIjo5MzUsIi4uL3NjYXR0ZXIvY2FsYyI6OTM3LCIuLi9zY2F0dGVyL2NhbGNfc2VsZWN0aW9uIjo5MzgsIi4uL3NjYXR0ZXIvY29sb3JzY2FsZV9jYWxjIjo5MzksImZhc3QtaXNudW1lcmljIjoxOTB9XSwxMDM1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vc2NhdHRlci9jb25zdGFudHMiKSxhPXQoIi4uL3NjYXR0ZXIvc3VidHlwZXMiKSxvPXQoIi4uL3NjYXR0ZXIvbWFya2VyX2RlZmF1bHRzIikscz10KCIuLi9zY2F0dGVyL2xpbmVfZGVmYXVsdHMiKSxsPXQoIi4uL3NjYXR0ZXIvbGluZV9zaGFwZV9kZWZhdWx0cyIpLGM9dCgiLi4vc2NhdHRlci90ZXh0X2RlZmF1bHRzIiksdT10KCIuLi9zY2F0dGVyL2ZpbGxjb2xvcl9kZWZhdWx0cyIpLGY9dCgiLi9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGgpe2Z1bmN0aW9uIHAocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLGYscixpKX12YXIgZCxtPXAoImEiKSxnPXAoImIiKSx2PXAoImMiKTtpZihtPyhkPW0ubGVuZ3RoLGc/KGQ9TWF0aC5taW4oZCxnLmxlbmd0aCksdiYmKGQ9TWF0aC5taW4oZCx2Lmxlbmd0aCkpKTpkPXY/TWF0aC5taW4oZCx2Lmxlbmd0aCk6MCk6ZyYmdiYmKGQ9TWF0aC5taW4oZy5sZW5ndGgsdi5sZW5ndGgpKSxkKXtlLl9sZW5ndGg9ZCxwKCJzdW0iKSxwKCJ0ZXh0IikscCgiaG92ZXJ0ZXh0IiksImZpbGxzIiE9PWUuaG92ZXJvbiYmcCgiaG92ZXJ0ZW1wbGF0ZSIpLHAoIm1vZGUiLGQ8aS5QVFNfTElORVNPTkxZPyJsaW5lcyttYXJrZXJzIjoibGluZXMiKSxhLmhhc0xpbmVzKGUpJiYocyh0LGUscixoLHApLGwodCxlLHApLHAoImNvbm5lY3RnYXBzIikpLGEuaGFzTWFya2VycyhlKSYmbyh0LGUscixoLHAse2dyYWRpZW50OiEwfSksYS5oYXNUZXh0KGUpJiYocCgidGV4dHRlbXBsYXRlIiksYyh0LGUsaCxwKSk7dmFyIHk9W107KGEuaGFzTWFya2VycyhlKXx8YS5oYXNUZXh0KGUpKSYmKHAoImNsaXBvbmF4aXMiKSxwKCJtYXJrZXIubWF4ZGlzcGxheWVkIikseS5wdXNoKCJwb2ludHMiKSkscCgiZmlsbCIpLCJub25lIiE9PWUuZmlsbCYmKHUodCxlLHIscCksYS5oYXNMaW5lcyhlKXx8bCh0LGUscCkpLCJ0b25leHQiIT09ZS5maWxsJiYidG9zZWxmIiE9PWUuZmlsbHx8eS5wdXNoKCJmaWxscyIpLHAoImhvdmVyb24iLHkuam9pbigiKyIpfHwicG9pbnRzIiksbi5jb2VyY2VTZWxlY3Rpb25NYXJrZXJPcGFjaXR5KGUscCl9ZWxzZSBlLnZpc2libGU9ITF9fSx7Ii4uLy4uL2xpYiI6NTE1LCIuLi9zY2F0dGVyL2NvbnN0YW50cyI6OTQwLCIuLi9zY2F0dGVyL2ZpbGxjb2xvcl9kZWZhdWx0cyI6OTQ0LCIuLi9zY2F0dGVyL2xpbmVfZGVmYXVsdHMiOjk0OSwiLi4vc2NhdHRlci9saW5lX3NoYXBlX2RlZmF1bHRzIjo5NTEsIi4uL3NjYXR0ZXIvbWFya2VyX2RlZmF1bHRzIjo5NTUsIi4uL3NjYXR0ZXIvc3VidHlwZXMiOjk2MSwiLi4vc2NhdHRlci90ZXh0X2RlZmF1bHRzIjo5NjIsIi4vYXR0cmlidXRlcyI6MTAzM31dLDEwMzY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG4saSl7aWYoZS54YSYmKHQueGF4aXM9ZS54YSksZS55YSYmKHQueWF4aXM9ZS55YSksbltpXSl7dmFyIGE9bltpXTt0LmE9YS5hLHQuYj1hLmIsdC5jPWEuY31lbHNlIHQuYT1lLmEsdC5iPWUuYix0LmM9ZS5jO3JldHVybiB0fX0se31dLDEwMzc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBpPXt9LGE9cltlLnN1YnBsb3RdLl9zdWJwbG90O3JldHVybiBpLmFMYWJlbD1uLnRpY2tUZXh0KGEuYWF4aXMsdC5hLCEwKS50ZXh0LGkuYkxhYmVsPW4udGlja1RleHQoYS5iYXhpcyx0LmIsITApLnRleHQsaS5jTGFiZWw9bi50aWNrVGV4dChhLmNheGlzLHQuYywhMCkudGV4dCxpfX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NTY2fV0sMTAzODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9zY2F0dGVyL2hvdmVyIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGkpe3ZhciBhPW4odCxlLHIsaSk7aWYoYSYmITEhPT1hWzBdLmluZGV4KXt2YXIgbz1hWzBdO2lmKHZvaWQgMD09PW8uaW5kZXgpe3ZhciBzPTEtby55MC90LnlhLl9sZW5ndGgsbD10LnhhLl9sZW5ndGgsYz1sKnMvMix1PWwtYztyZXR1cm4gby54MD1NYXRoLm1heChNYXRoLm1pbihvLngwLHUpLGMpLG8ueDE9TWF0aC5tYXgoTWF0aC5taW4oby54MSx1KSxjKSxhfXZhciBmPW8uY2Rbby5pbmRleF0saD1vLnRyYWNlLHA9by5zdWJwbG90O28uYT1mLmEsby5iPWYuYixvLmM9Zi5jLG8ueExhYmVsVmFsPXZvaWQgMCxvLnlMYWJlbFZhbD12b2lkIDA7dmFyIGQ9e307ZFtoLnN1YnBsb3RdPXtfc3VicGxvdDpwfTt2YXIgbT1oLl9tb2R1bGUuZm9ybWF0TGFiZWxzKGYsaCxkKTtvLmFMYWJlbD1tLmFMYWJlbCxvLmJMYWJlbD1tLmJMYWJlbCxvLmNMYWJlbD1tLmNMYWJlbDt2YXIgZz1mLmhpfHxoLmhvdmVyaW5mbyx2PVtdO2lmKCFoLmhvdmVydGVtcGxhdGUpe3ZhciB5PWcuc3BsaXQoIisiKTstMSE9PXkuaW5kZXhPZigiYWxsIikmJih5PVsiYSIsImIiLCJjIl0pLC0xIT09eS5pbmRleE9mKCJhIikmJngocC5hYXhpcyxvLmFMYWJlbCksLTEhPT15LmluZGV4T2YoImIiKSYmeChwLmJheGlzLG8uYkxhYmVsKSwtMSE9PXkuaW5kZXhPZigiYyIpJiZ4KHAuY2F4aXMsby5jTGFiZWwpfXJldHVybiBvLmV4dHJhVGV4dD12LmpvaW4oIjxicj4iKSxvLmhvdmVydGVtcGxhdGU9aC5ob3ZlcnRlbXBsYXRlLGF9ZnVuY3Rpb24geCh0LGUpe3YucHVzaCh0Ll9ob3ZlcnRpdGxlKyI6ICIrZSl9fX0seyIuLi9zY2F0dGVyL2hvdmVyIjo5NDd9XSwxMDM5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksY29sb3JiYXI6dCgiLi4vc2NhdHRlci9tYXJrZXJfY29sb3JiYXIiKSxmb3JtYXRMYWJlbHM6dCgiLi9mb3JtYXRfbGFiZWxzIiksY2FsYzp0KCIuL2NhbGMiKSxwbG90OnQoIi4vcGxvdCIpLHN0eWxlOnQoIi4uL3NjYXR0ZXIvc3R5bGUiKS5zdHlsZSxzdHlsZU9uU2VsZWN0OnQoIi4uL3NjYXR0ZXIvc3R5bGUiKS5zdHlsZU9uU2VsZWN0LGhvdmVyUG9pbnRzOnQoIi4vaG92ZXIiKSxzZWxlY3RQb2ludHM6dCgiLi4vc2NhdHRlci9zZWxlY3QiKSxldmVudERhdGE6dCgiLi9ldmVudF9kYXRhIiksbW9kdWxlVHlwZToidHJhY2UiLG5hbWU6InNjYXR0ZXJ0ZXJuYXJ5IixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy90ZXJuYXJ5IiksY2F0ZWdvcmllczpbInRlcm5hcnkiLCJzeW1ib2xzIiwic2hvd0xlZ2VuZCIsInNjYXR0ZXItbGlrZSJdLG1ldGE6e319fSx7Ii4uLy4uL3Bsb3RzL3Rlcm5hcnkiOjY0MywiLi4vc2NhdHRlci9tYXJrZXJfY29sb3JiYXIiOjk1NCwiLi4vc2NhdHRlci9zZWxlY3QiOjk1OCwiLi4vc2NhdHRlci9zdHlsZSI6OTYwLCIuL2F0dHJpYnV0ZXMiOjEwMzMsIi4vY2FsYyI6MTAzNCwiLi9kZWZhdWx0cyI6MTAzNSwiLi9ldmVudF9kYXRhIjoxMDM2LCIuL2Zvcm1hdF9sYWJlbHMiOjEwMzcsIi4vaG92ZXIiOjEwMzgsIi4vcGxvdCI6MTA0MH1dLDEwNDA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vc2NhdHRlci9wbG90Iik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgaT1lLnBsb3RDb250YWluZXI7aS5zZWxlY3QoIi5zY2F0dGVybGF5ZXIiKS5zZWxlY3RBbGwoIioiKS5yZW1vdmUoKTt2YXIgYT17eGF4aXM6ZS54YXhpcyx5YXhpczplLnlheGlzLHBsb3Q6aSxsYXllckNsaXBJZDplLl9oYXNDbGlwT25BeGlzRmFsc2U/ZS5jbGlwSWRSZWxhdGl2ZTpudWxsfSxvPWUubGF5ZXJzLmZyb250cGxvdC5zZWxlY3QoImcuc2NhdHRlcmxheWVyIik7bih0LGEscixvKX19LHsiLi4vc2NhdHRlci9wbG90Ijo5NTd9XSwxMDQxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NjYXR0ZXIvYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiKSxhPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2Zvcm1hdF9hdHRyaWJ1dGVzIikuYXhpc0hvdmVyRm9ybWF0LG89dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxzPXQoIi4uL3NjYXR0ZXJnbC9hdHRyaWJ1dGVzIiksbD10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vY29uc3RhbnRzIikuaWRSZWdleCxjPXQoIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKS50ZW1wbGF0ZWRBcnJheSx1PXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LGY9bi5tYXJrZXIsaD1mLmxpbmUscD11KGkoIm1hcmtlci5saW5lIix7ZWRpdFR5cGVPdmVycmlkZToiY2FsYyJ9KSx7d2lkdGg6dSh7fSxoLndpZHRoLHtlZGl0VHlwZToiY2FsYyJ9KSxlZGl0VHlwZToiY2FsYyJ9KSxkPXUoaSgibWFya2VyIikse3N5bWJvbDpmLnN5bWJvbCxzaXplOnUoe30sZi5zaXplLHtlZGl0VHlwZToibWFya2VyU2l6ZSJ9KSxzaXplcmVmOmYuc2l6ZXJlZixzaXplbWluOmYuc2l6ZW1pbixzaXplbW9kZTpmLnNpemVtb2RlLG9wYWNpdHk6Zi5vcGFjaXR5LGNvbG9yYmFyOmYuY29sb3JiYXIsbGluZTpwLGVkaXRUeXBlOiJjYWxjIn0pO2Z1bmN0aW9uIG0odCl7cmV0dXJue3ZhbFR5cGU6ImluZm9fYXJyYXkiLGZyZWVMZW5ndGg6ITAsZWRpdFR5cGU6ImNhbGMiLGl0ZW1zOnt2YWxUeXBlOiJzdWJwbG90aWQiLHJlZ2V4OmxbdF0sZWRpdFR5cGU6InBsb3QifX19ZC5jb2xvci5lZGl0VHlwZT1kLmNtaW4uZWRpdFR5cGU9ZC5jbWF4LmVkaXRUeXBlPSJzdHlsZSIsZS5leHBvcnRzPXtkaW1lbnNpb25zOmMoImRpbWVuc2lvbiIse3Zpc2libGU6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6ImNhbGMifSxsYWJlbDp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToiY2FsYyJ9LHZhbHVlczp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSxheGlzOnt0eXBlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJsaW5lYXIiLCJsb2ciLCJkYXRlIiwiY2F0ZWdvcnkiXSxlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LG1hdGNoZXM6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITEsZWRpdFR5cGU6ImNhbGMifSxlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIn0pLHRleHQ6dSh7fSxzLnRleHQse30pLGhvdmVydGV4dDp1KHt9LHMuaG92ZXJ0ZXh0LHt9KSxob3ZlcnRlbXBsYXRlOm8oKSx4aG92ZXJmb3JtYXQ6YSgieCIpLHlob3ZlcmZvcm1hdDphKCJ5IiksbWFya2VyOmQseGF4ZXM6bSgieCIpLHlheGVzOm0oInkiKSxkaWFnb25hbDp7dmlzaWJsZTp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToiY2FsYyJ9LGVkaXRUeXBlOiJjYWxjIn0sc2hvd3VwcGVyaGFsZjp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToiY2FsYyJ9LHNob3dsb3dlcmhhbGY6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6ImNhbGMifSxzZWxlY3RlZDp7bWFya2VyOnMuc2VsZWN0ZWQubWFya2VyLGVkaXRUeXBlOiJjYWxjIn0sdW5zZWxlY3RlZDp7bWFya2VyOnMudW5zZWxlY3RlZC5tYXJrZXIsZWRpdFR5cGU6ImNhbGMifSxvcGFjaXR5OnMub3BhY2l0eX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiOjM3NCwiLi4vLi4vbGliL2V4dGVuZCI6NTA1LCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIjo1NTUsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2Zvcm1hdF9hdHRyaWJ1dGVzIjo1NjksIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9jb25zdGFudHMiOjU3MywiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyI6NjQyLCIuLi9zY2F0dGVyL2F0dHJpYnV0ZXMiOjkzNiwiLi4vc2NhdHRlcmdsL2F0dHJpYnV0ZXMiOjk4OH1dLDEwNDI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcmVnaXN0cnkiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvZ3JpZCIpO2UuZXhwb3J0cz17bW9kdWxlVHlwZToidHJhY2UiLG5hbWU6InNwbG9tIixjYXRlZ29yaWVzOlsiZ2wiLCJyZWdsIiwiY2FydGVzaWFuIiwic3ltYm9scyIsInNob3dMZWdlbmQiLCJzY2F0dGVyLWxpa2UiXSxhdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxjb2xvcmJhcjp0KCIuLi9zY2F0dGVyL21hcmtlcl9jb2xvcmJhciIpLGNhbGM6dCgiLi9jYWxjIikscGxvdDp0KCIuL3Bsb3QiKSxob3ZlclBvaW50czp0KCIuL2hvdmVyIikuaG92ZXJQb2ludHMsc2VsZWN0UG9pbnRzOnQoIi4vc2VsZWN0IiksZWRpdFN0eWxlOnQoIi4vZWRpdF9zdHlsZSIpLG1ldGE6e319LG4ucmVnaXN0ZXIoaSl9LHsiLi4vLi4vY29tcG9uZW50cy9ncmlkIjo0MTEsIi4uLy4uL3JlZ2lzdHJ5Ijo2NDcsIi4uL3NjYXR0ZXIvbWFya2VyX2NvbG9yYmFyIjo5NTQsIi4vYXR0cmlidXRlcyI6MTA0MSwiLi9jYWxjIjoxMDQ0LCIuL2RlZmF1bHRzIjoxMDQ1LCIuL2VkaXRfc3R5bGUiOjEwNDYsIi4vaG92ZXIiOjEwNDgsIi4vcGxvdCI6MTA1MCwiLi9zZWxlY3QiOjEwNTJ9XSwxMDQzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInJlZ2wtbGluZTJkIiksaT10KCIuLi8uLi9yZWdpc3RyeSIpLGE9dCgiLi4vLi4vbGliL3ByZXBhcmVfcmVnbCIpLG89dCgiLi4vLi4vcGxvdHMvZ2V0X2RhdGEiKS5nZXRNb2R1bGVDYWxjRGF0YSxzPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbiIpLGw9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIikuZ2V0RnJvbUlkLGM9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKS5zaG91bGRTaG93WmVyb0xpbmUsdT17fTtmdW5jdGlvbiBmKHQsZSxyKXtmb3IodmFyIG49ci5tYXRyaXhPcHRpb25zLmRhdGEubGVuZ3RoLGk9ZS5fdmlzaWJsZURpbXMsYT1yLnZpZXdPcHRzLnJhbmdlcz1uZXcgQXJyYXkobiksbz0wO288aS5sZW5ndGg7bysrKXt2YXIgcz1pW29dLGM9YVtvXT1uZXcgQXJyYXkoNCksdT1sKHQsZS5fZGlhZ1tzXVswXSk7dSYmKGNbMF09dS5yMmwodS5yYW5nZVswXSksY1syXT11LnIybCh1LnJhbmdlWzFdKSk7dmFyIGY9bCh0LGUuX2RpYWdbc11bMV0pO2YmJihjWzFdPWYucjJsKGYucmFuZ2VbMF0pLGNbM109Zi5yMmwoZi5yYW5nZVsxXSkpfXIuc2VsZWN0QmF0Y2gubGVuZ3RofHxyLnVuc2VsZWN0QmF0Y2gubGVuZ3RoP3IubWF0cml4LnVwZGF0ZSh7cmFuZ2VzOmF9LHtyYW5nZXM6YX0pOnIubWF0cml4LnVwZGF0ZSh7cmFuZ2VzOmF9KX1mdW5jdGlvbiBoKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQscj1lLl9nbGNhbnZhcy5kYXRhKClbMF0ucmVnbCxpPWUuX3NwbG9tR3JpZDtpfHwoaT1lLl9zcGxvbUdyaWQ9bihyKSksaS51cGRhdGUoZnVuY3Rpb24odCl7dmFyIGUscj10Ll9jb250ZXh0LnBsb3RHbFBpeGVsUmF0aW8sbj10Ll9mdWxsTGF5b3V0LGk9bi5fc2l6ZSxhPVswLDAsbi53aWR0aCpyLG4uaGVpZ2h0KnJdLG89e307ZnVuY3Rpb24gcyh0LGUsbixpLHMsbCl7bio9cixpKj1yLHMqPXIsbCo9cjt2YXIgYz1lW3QrImNvbG9yIl0sdT1lW3QrIndpZHRoIl0sZj1TdHJpbmcoYyt1KTtmIGluIG8/b1tmXS5kYXRhLnB1c2goTmFOLE5hTixuLGkscyxsKTpvW2ZdPXtkYXRhOltuLGkscyxsXSxqb2luOiJyZWN0Iix0aGlja25lc3M6dSpyLGNvbG9yOmMsdmlld3BvcnQ6YSxyYW5nZTphLG92ZXJsYXk6ITF9fWZvcihlIGluIG4uX3NwbG9tU3VicGxvdHMpe3ZhciBsLHUsZj1uLl9wbG90c1tlXSxoPWYueGF4aXMscD1mLnlheGlzLGQ9aC5fZ3JpZFZhbHMsbT1wLl9ncmlkVmFscyxnPWguX29mZnNldCx2PWguX2xlbmd0aCx5PXAuX2xlbmd0aCx4PWkuYitwLmRvbWFpblswXSppLmgsYj0tcC5fbSxfPS1iKnAucjJsKHAucmFuZ2VbMF0scC5jYWxlbmRhcik7aWYoaC5zaG93Z3JpZClmb3IoZT0wO2U8ZC5sZW5ndGg7ZSsrKWw9ZytoLmwycChkW2VdLngpLHMoImdyaWQiLGgsbCx4LGwseCt5KTtpZihwLnNob3dncmlkKWZvcihlPTA7ZTxtLmxlbmd0aDtlKyspdT14K18rYiptW2VdLngscygiZ3JpZCIscCxnLHUsZyt2LHUpO2ModCxoLHApJiYobD1nK2gubDJwKDApLHMoInplcm9saW5lIixoLGwseCxsLHgreSkpLGModCxwLGgpJiZzKCJ6ZXJvbGluZSIscCxnLHU9eCtfKzAsZyt2LHUpfXZhciB3PVtdO2ZvcihlIGluIG8pdy5wdXNoKG9bZV0pO3JldHVybiB3fSh0KSl9ZS5leHBvcnRzPXtuYW1lOiJzcGxvbSIsYXR0cjpzLmF0dHIsYXR0clJlZ2V4OnMuYXR0clJlZ2V4LGxheW91dEF0dHJpYnV0ZXM6cy5sYXlvdXRBdHRyaWJ1dGVzLHN1cHBseUxheW91dERlZmF1bHRzOnMuc3VwcGx5TGF5b3V0RGVmYXVsdHMsZHJhd0ZyYW1ld29yazpzLmRyYXdGcmFtZXdvcmsscGxvdDpmdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0LHI9aS5nZXRNb2R1bGUoInNwbG9tIiksbj1vKHQuY2FsY2RhdGEscilbMF07YSh0LFsiQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIsIk9FU19lbGVtZW50X2luZGV4X3VpbnQiXSx1KSYmKGUuX2hhc09ubHlMYXJnZVNwbG9tcyYmaCh0KSxyLnBsb3QodCx7fSxuKSl9LGRyYWc6ZnVuY3Rpb24odCl7dmFyIGU9dC5jYWxjZGF0YSxyPXQuX2Z1bGxMYXlvdXQ7ci5faGFzT25seUxhcmdlU3Bsb21zJiZoKHQpO2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgaT1lW25dWzBdLnRyYWNlLGE9ci5fc3Bsb21TY2VuZXNbaS51aWRdOyJzcGxvbSI9PT1pLnR5cGUmJmEmJmEubWF0cml4JiZmKHQsaSxhKX19LHVwZGF0ZUdyaWQ6aCxjbGVhbjpmdW5jdGlvbih0LGUscixuKXt2YXIgaSxhPXt9O2lmKG4uX3NwbG9tU2NlbmVzKXtmb3IoaT0wO2k8dC5sZW5ndGg7aSsrKXt2YXIgbz10W2ldOyJzcGxvbSI9PT1vLnR5cGUmJihhW28udWlkXT0xKX1mb3IoaT0wO2k8ci5sZW5ndGg7aSsrKXt2YXIgbD1yW2ldO2lmKCFhW2wudWlkXSl7dmFyIGM9bi5fc3Bsb21TY2VuZXNbbC51aWRdO2MmJmMuZGVzdHJveSYmYy5kZXN0cm95KCksbi5fc3Bsb21TY2VuZXNbbC51aWRdPW51bGwsZGVsZXRlIG4uX3NwbG9tU2NlbmVzW2wudWlkXX19fTA9PT1PYmplY3Qua2V5cyhuLl9zcGxvbVNjZW5lc3x8e30pLmxlbmd0aCYmZGVsZXRlIG4uX3NwbG9tU2NlbmVzLG4uX3NwbG9tR3JpZCYmIWUuX2hhc09ubHlMYXJnZVNwbG9tcyYmbi5faGFzT25seUxhcmdlU3Bsb21zJiYobi5fc3Bsb21HcmlkLmRlc3Ryb3koKSxuLl9zcGxvbUdyaWQ9bnVsbCxkZWxldGUgbi5fc3Bsb21HcmlkKSxzLmNsZWFuKHQsZSxyLG4pfSx1cGRhdGVGeDpzLnVwZGF0ZUZ4LHRvU1ZHOnMudG9TVkcscmVnbFByZWNvbXBpbGVkOnV9fSx7Ii4uLy4uL2xpYi9wcmVwYXJlX3JlZ2wiOjUyOCwiLi4vLi4vcGxvdHMvY2FydGVzaWFuIjo1NzgsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo1NjYsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2lkcyI6NTcwLCIuLi8uLi9wbG90cy9nZXRfZGF0YSI6NjAyLCIuLi8uLi9yZWdpc3RyeSI6NjQ3LCJyZWdsLWxpbmUyZCI6MjgxfV0sMTA0NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2lkcyIpLGE9dCgiLi4vc2NhdHRlci9jYWxjIikuY2FsY01hcmtlclNpemUsbz10KCIuLi9zY2F0dGVyL2NhbGMiKS5jYWxjQXhpc0V4cGFuc2lvbixzPXQoIi4uL3NjYXR0ZXIvY29sb3JzY2FsZV9jYWxjIiksbD10KCIuLi9zY2F0dGVyZ2wvY29udmVydCIpLm1hcmtlclNlbGVjdGlvbixjPXQoIi4uL3NjYXR0ZXJnbC9jb252ZXJ0IikubWFya2VyU3R5bGUsdT10KCIuL3NjZW5lX3VwZGF0ZSIpLGY9dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTSxoPXQoIi4uL3NjYXR0ZXJnbC9jb25zdGFudHMiKS5UT09fTUFOWV9QT0lOVFM7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIscCxkLG0sZyx2LHk9ZS5kaW1lbnNpb25zLHg9ZS5fbGVuZ3RoLGI9e30sXz1iLmNkYXRhPVtdLHc9Yi5kYXRhPVtdLFQ9ZS5fdmlzaWJsZURpbXM9W107ZnVuY3Rpb24gayh0LHIpe2Zvcih2YXIgaT10Lm1ha2VDYWxjZGF0YSh7djpyLnZhbHVlcyx2Y2FsZW5kYXI6ZS5jYWxlbmRhcn0sInYiKSxhPTA7YTxpLmxlbmd0aDthKyspaVthXT1pW2FdPT09Zj9OYU46aVthXTtfLnB1c2goaSksdy5wdXNoKCJsb2ciPT09dC50eXBlP24uc2ltcGxlTWFwKGksdC5jMmwpOmkpfWZvcihyPTA7cjx5Lmxlbmd0aDtyKyspaWYoKGQ9eVtyXSkudmlzaWJsZSl7aWYobT1pLmdldEZyb21JZCh0LGUuX2RpYWdbcl1bMF0pLGc9aS5nZXRGcm9tSWQodCxlLl9kaWFnW3JdWzFdKSxtJiZnJiZtLnR5cGUhPT1nLnR5cGUpe24ubG9nKCJTa2lwcGluZyBzcGxvbSBkaW1lbnNpb24gIityKyIgd2l0aCBjb25mbGljdGluZyBheGlzIHR5cGVzIik7Y29udGludWV9bT8oayhtLGQpLGcmJiJjYXRlZ29yeSI9PT1nLnR5cGUmJihnLl9jYXRlZ29yaWVzPW0uX2NhdGVnb3JpZXMuc2xpY2UoKSkpOmsoZyxkKSxULnB1c2gocil9Zm9yKHModCxlKSxuLmV4dGVuZEZsYXQoYixjKGUpKSx2PV8ubGVuZ3RoKng+aD9iLnNpemVBdmd8fE1hdGgubWF4KGIuc2l6ZSwzKTphKGUseCkscD0wO3A8VC5sZW5ndGg7cCsrKWQ9eVtyPVRbcF1dLG09aS5nZXRGcm9tSWQodCxlLl9kaWFnW3JdWzBdKXx8e30sZz1pLmdldEZyb21JZCh0LGUuX2RpYWdbcl1bMV0pfHx7fSxvKHQsZSxtLGcsX1twXSxfW3BdLHYpO3ZhciBBPXUodCxlKTtyZXR1cm4gQS5tYXRyaXh8fChBLm1hdHJpeD0hMCksQS5tYXRyaXhPcHRpb25zPWIsQS5zZWxlY3RlZE9wdGlvbnM9bChlLGUuc2VsZWN0ZWQpLEEudW5zZWxlY3RlZE9wdGlvbnM9bChlLGUudW5zZWxlY3RlZCksW3t4OiExLHk6ITEsdDp7fSx0cmFjZTplfV19fSx7Ii4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiOjQ5MSwiLi4vLi4vbGliIjo1MTUsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2lkcyI6NTcwLCIuLi9zY2F0dGVyL2NhbGMiOjkzNywiLi4vc2NhdHRlci9jb2xvcnNjYWxlX2NhbGMiOjkzOSwiLi4vc2NhdHRlcmdsL2NvbnN0YW50cyI6OTkxLCIuLi9zY2F0dGVyZ2wvY29udmVydCI6OTkyLCIuL3NjZW5lX3VwZGF0ZSI6MTA1MX1dLDEwNDU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9wbG90cy9hcnJheV9jb250YWluZXJfZGVmYXVsdHMiKSxhPXQoIi4vYXR0cmlidXRlcyIpLG89dCgiLi4vc2NhdHRlci9zdWJ0eXBlcyIpLHM9dCgiLi4vc2NhdHRlci9tYXJrZXJfZGVmYXVsdHMiKSxsPXQoIi4uL3BhcmNvb3Jkcy9tZXJnZV9sZW5ndGgiKSxjPXQoIi4uL3NjYXR0ZXJnbC9oZWxwZXJzIikuaXNPcGVuU3ltYm9sO2Z1bmN0aW9uIHUodCxlKXtmdW5jdGlvbiByKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxhLmRpbWVuc2lvbnMscixpKX1yKCJsYWJlbCIpO3ZhciBpPXIoInZhbHVlcyIpO2kmJmkubGVuZ3RoP3IoInZpc2libGUiKTplLnZpc2libGU9ITEscigiYXhpcy50eXBlIikscigiYXhpcy5tYXRjaGVzIil9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGYpe2Z1bmN0aW9uIGgocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLGEscixpKX12YXIgcD1pKHQsZSx7bmFtZToiZGltZW5zaW9ucyIsaGFuZGxlSXRlbURlZmF1bHRzOnV9KSxkPWgoImRpYWdvbmFsLnZpc2libGUiKSxtPWgoInNob3d1cHBlcmhhbGYiKSxnPWgoInNob3dsb3dlcmhhbGYiKTtpZihsKGUscCwidmFsdWVzIikmJihkfHxtfHxnKSl7aCgidGV4dCIpLGgoImhvdmVydGV4dCIpLGgoImhvdmVydGVtcGxhdGUiKSxoKCJ4aG92ZXJmb3JtYXQiKSxoKCJ5aG92ZXJmb3JtYXQiKSxzKHQsZSxyLGYsaCk7dmFyIHY9YyhlLm1hcmtlci5zeW1ib2wpLHk9by5pc0J1YmJsZShlKTtoKCJtYXJrZXIubGluZS53aWR0aCIsdnx8eT8xOjApLGZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpLGEsbz1lLmRpbWVuc2lvbnMscz1vLmxlbmd0aCxsPWUuc2hvd3VwcGVyaGFsZixjPWUuc2hvd2xvd2VyaGFsZix1PWUuZGlhZ29uYWwudmlzaWJsZSxmPW5ldyBBcnJheShzKSxoPW5ldyBBcnJheShzKTtmb3IoaT0wO2k8cztpKyspe3ZhciBwPWk/aSsxOiIiO2ZbaV09IngiK3AsaFtpXT0ieSIrcH12YXIgZD1uKCJ4YXhlcyIsZiksbT1uKCJ5YXhlcyIsaCksZz1lLl9kaWFnPW5ldyBBcnJheShzKTtlLl94YXhlcz17fSxlLl95YXhlcz17fTt2YXIgdj1bXSx5PVtdO2Z1bmN0aW9uIHgodCxuLGksYSl7aWYodCl7dmFyIG89dC5jaGFyQXQoMCkscz1yLl9zcGxvbUF4ZXNbb107aWYoZVsiXyIrbysiYXhlcyJdW3RdPTEsYS5wdXNoKHQpLCEodCBpbiBzKSl7dmFyIGw9c1t0XT17fTtpJiYobC5sYWJlbD1pLmxhYmVsfHwiIixpLnZpc2libGUmJmkuYXhpcyYmKGkuYXhpcy50eXBlJiYobC50eXBlPWkuYXhpcy50eXBlKSxpLmF4aXMubWF0Y2hlcyYmKGwubWF0Y2hlcz1uKSkpfX19dmFyIGI9IXUmJiFjLF89IXUmJiFsO2ZvcihlLl9heGVzRGltPXt9LGk9MDtpPHM7aSsrKXt2YXIgdz1vW2ldLFQ9MD09PWksaz1pPT09cy0xLEE9VCYmYnx8ayYmXz92b2lkIDA6ZFtpXSxNPVQmJl98fGsmJmI/dm9pZCAwOm1baV07eChBLE0sdyx2KSx4KE0sQSx3LHkpLGdbaV09W0EsTV0sZS5fYXhlc0RpbVtBXT1pLGUuX2F4ZXNEaW1bTV09aX1mb3IoaT0wO2k8di5sZW5ndGg7aSsrKWZvcihhPTA7YTx5Lmxlbmd0aDthKyspe3ZhciBTPXZbaV0reVthXTtpPmEmJmx8fGk8YSYmYz9yLl9zcGxvbVN1YnBsb3RzW1NdPTE6aSE9PWF8fCF1JiZjJiZsfHwoci5fc3Bsb21TdWJwbG90c1tTXT0xKX0oIWN8fCF1JiZsJiZjKSYmKHIuX3NwbG9tR3JpZERmbHQueHNpZGU9ImJvdHRvbSIsci5fc3Bsb21HcmlkRGZsdC55c2lkZT0ibGVmdCIpfSgwLGUsZixoKSxuLmNvZXJjZVNlbGVjdGlvbk1hcmtlck9wYWNpdHkoZSxoKX1lbHNlIGUudmlzaWJsZT0hMX19LHsiLi4vLi4vbGliIjo1MTUsIi4uLy4uL3Bsb3RzL2FycmF5X2NvbnRhaW5lcl9kZWZhdWx0cyI6NTYxLCIuLi9wYXJjb29yZHMvbWVyZ2VfbGVuZ3RoIjo5MDcsIi4uL3NjYXR0ZXIvbWFya2VyX2RlZmF1bHRzIjo5NTUsIi4uL3NjYXR0ZXIvc3VidHlwZXMiOjk2MSwiLi4vc2NhdHRlcmdsL2hlbHBlcnMiOjk5NiwiLi9hdHRyaWJ1dGVzIjoxMDQxfV0sMTA0NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uL3NjYXR0ZXIvY29sb3JzY2FsZV9jYWxjIiksYT10KCIuLi9zY2F0dGVyZ2wvY29udmVydCIpLm1hcmtlclN0eWxlO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPWUudHJhY2Usbz10Ll9mdWxsTGF5b3V0Ll9zcGxvbVNjZW5lc1tyLnVpZF07aWYobyl7aSh0LHIpLG4uZXh0ZW5kRmxhdChvLm1hdHJpeE9wdGlvbnMsYShyKSk7dmFyIHM9bi5leHRlbmRGbGF0KHt9LG8ubWF0cml4T3B0aW9ucyxvLnZpZXdPcHRzKTtvLm1hdHJpeC51cGRhdGUocyxudWxsKX19fSx7Ii4uLy4uL2xpYiI6NTE1LCIuLi9zY2F0dGVyL2NvbG9yc2NhbGVfY2FsYyI6OTM5LCIuLi9zY2F0dGVyZ2wvY29udmVydCI6OTkyfV0sMTA0NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmdldERpbUluZGV4PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPWUuX2lkLG49e3g6MCx5OjF9W3IuY2hhckF0KDApXSxpPXQuX3Zpc2libGVEaW1zLGE9MDthPGkubGVuZ3RoO2ErKyl7dmFyIG89aVthXTtpZih0Ll9kaWFnW29dW25dPT09cilyZXR1cm4gYX1yZXR1cm4hMX19LHt9XSwxMDQ4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vaGVscGVycyIpLGk9dCgiLi4vc2NhdHRlcmdsL2hvdmVyIikuY2FsY0hvdmVyO2UuZXhwb3J0cz17aG92ZXJQb2ludHM6ZnVuY3Rpb24odCxlLHIpe3ZhciBhPXQuY2RbMF0udHJhY2Usbz10LnNjZW5lLm1hdHJpeE9wdGlvbnMuY2RhdGEscz10LnhhLGw9dC55YSxjPXMuYzJwKGUpLHU9bC5jMnAociksZj10LmRpc3RhbmNlLGg9bi5nZXREaW1JbmRleChhLHMpLHA9bi5nZXREaW1JbmRleChhLGwpO2lmKCExPT09aHx8ITE9PT1wKXJldHVyblt0XTtmb3IodmFyIGQsbSxnPW9baF0sdj1vW3BdLHk9Zix4PTA7eDxnLmxlbmd0aDt4Kyspe3ZhciBiPWdbeF0sXz12W3hdLHc9cy5jMnAoYiktYyxUPWwuYzJwKF8pLXUsaz1NYXRoLnNxcnQodyp3K1QqVCk7azx5JiYoeT1tPWssZD14KX1yZXR1cm4gdC5pbmRleD1kLHQuZGlzdGFuY2U9eSx0LmR4eT1tLHZvaWQgMD09PWQ/W3RdOltpKHQsZyx2LGEpXX19fSx7Ii4uL3NjYXR0ZXJnbC9ob3ZlciI6OTk3LCIuL2hlbHBlcnMiOjEwNDd9XSwxMDQ5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vYmFzZV9pbmRleCIpO24uYmFzZVBsb3RNb2R1bGU9dCgiLi9iYXNlX3Bsb3QiKSxlLmV4cG9ydHM9bn0seyIuL2Jhc2VfaW5kZXgiOjEwNDIsIi4vYmFzZV9wbG90IjoxMDQzfV0sMTA1MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJyZWdsLXNwbG9tIiksaT10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2lkcyIpLG89dCgiLi4vLi4vY29tcG9uZW50cy9kcmFnZWxlbWVudC9oZWxwZXJzIikuc2VsZWN0TW9kZTtmdW5jdGlvbiBzKHQsZSl7dmFyIHIscyxsLGMsdSxmPXQuX2Z1bGxMYXlvdXQsaD1mLl9zaXplLHA9ZS50cmFjZSxkPWUudCxtPWYuX3NwbG9tU2NlbmVzW3AudWlkXSxnPW0ubWF0cml4T3B0aW9ucyx2PWcuY2RhdGEseT1mLl9nbGNhbnZhcy5kYXRhKClbMF0ucmVnbCx4PWYuZHJhZ21vZGU7aWYoMCE9PXYubGVuZ3RoKXtnLmxvd2VyPXAuc2hvd3VwcGVyaGFsZixnLnVwcGVyPXAuc2hvd2xvd2VyaGFsZixnLmRpYWdvbmFsPXAuZGlhZ29uYWwudmlzaWJsZTt2YXIgYj1wLl92aXNpYmxlRGltcyxfPXYubGVuZ3RoLHc9bS52aWV3T3B0cz17fTtmb3Iody5yYW5nZXM9bmV3IEFycmF5KF8pLHcuZG9tYWlucz1uZXcgQXJyYXkoXyksdT0wO3U8Yi5sZW5ndGg7dSsrKXtsPWJbdV07dmFyIFQ9dy5yYW5nZXNbdV09bmV3IEFycmF5KDQpLGs9dy5kb21haW5zW3VdPW5ldyBBcnJheSg0KTsocj1hLmdldEZyb21JZCh0LHAuX2RpYWdbbF1bMF0pKSYmKFRbMF09ci5fcmxbMF0sVFsyXT1yLl9ybFsxXSxrWzBdPXIuZG9tYWluWzBdLGtbMl09ci5kb21haW5bMV0pLChzPWEuZ2V0RnJvbUlkKHQscC5fZGlhZ1tsXVsxXSkpJiYoVFsxXT1zLl9ybFswXSxUWzNdPXMuX3JsWzFdLGtbMV09cy5kb21haW5bMF0sa1szXT1zLmRvbWFpblsxXSl9dmFyIEE9dC5fY29udGV4dC5wbG90R2xQaXhlbFJhdGlvLE09aC5sKkEsUz1oLmIqQSxFPWgudypBLEw9aC5oKkE7dy52aWV3cG9ydD1bTSxTLEUrTSxMK1NdLCEwPT09bS5tYXRyaXgmJihtLm1hdHJpeD1uKHkpKTt2YXIgQz1mLmNsaWNrbW9kZS5pbmRleE9mKCJzZWxlY3QiKT4tMSxQPSEwO2lmKG8oeCl8fCEhcC5zZWxlY3RlZHBvaW50c3x8Qyl7dmFyIEk9cC5fbGVuZ3RoO2lmKHAuc2VsZWN0ZWRwb2ludHMpe20uc2VsZWN0QmF0Y2g9cC5zZWxlY3RlZHBvaW50czt2YXIgTz1wLnNlbGVjdGVkcG9pbnRzLHo9e307Zm9yKGw9MDtsPE8ubGVuZ3RoO2wrKyl6W09bbF1dPSEwO3ZhciBEPVtdO2ZvcihsPTA7bDxJO2wrKyl6W2xdfHxELnB1c2gobCk7bS51bnNlbGVjdEJhdGNoPUR9dmFyIFI9ZC54cHg9bmV3IEFycmF5KF8pLEY9ZC55cHg9bmV3IEFycmF5KF8pO2Zvcih1PTA7dTxiLmxlbmd0aDt1Kyspe2lmKGw9Ylt1XSxyPWEuZ2V0RnJvbUlkKHQscC5fZGlhZ1tsXVswXSkpZm9yKFJbdV09bmV3IEFycmF5KEkpLGM9MDtjPEk7YysrKVJbdV1bY109ci5jMnAodlt1XVtjXSk7aWYocz1hLmdldEZyb21JZCh0LHAuX2RpYWdbbF1bMV0pKWZvcihGW3VdPW5ldyBBcnJheShJKSxjPTA7YzxJO2MrKylGW3VdW2NdPXMuYzJwKHZbdV1bY10pfWlmKG0uc2VsZWN0QmF0Y2gubGVuZ3RofHxtLnVuc2VsZWN0QmF0Y2gubGVuZ3RoKXt2YXIgQj1pLmV4dGVuZEZsYXQoe30sZyxtLnVuc2VsZWN0ZWRPcHRpb25zLHcpLE49aS5leHRlbmRGbGF0KHt9LGcsbS5zZWxlY3RlZE9wdGlvbnMsdyk7bS5tYXRyaXgudXBkYXRlKEIsTiksUD0hMX19ZWxzZSBkLnhweD1kLnlweD1udWxsO2lmKFApe3ZhciBqPWkuZXh0ZW5kRmxhdCh7fSxnLHcpO20ubWF0cml4LnVwZGF0ZShqLG51bGwpfX19ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtpZihyLmxlbmd0aClmb3IodmFyIG49MDtuPHIubGVuZ3RoO24rKylzKHQscltuXVswXSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvZHJhZ2VsZW1lbnQvaGVscGVycyI6Mzg1LCIuLi8uLi9saWIiOjUxNSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIjo1NzAsInJlZ2wtc3Bsb20iOjI4M31dLDEwNTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5fZnVsbExheW91dCxpPWUudWlkLGE9ci5fc3Bsb21TY2VuZXM7YXx8KGE9ci5fc3Bsb21TY2VuZXM9e30pO3ZhciBvPXtkaXJ0eTohMCxzZWxlY3RCYXRjaDpbXSx1bnNlbGVjdEJhdGNoOltdfSxzPWFbZS51aWRdO3JldHVybiBzfHwoKHM9YVtpXT1uLmV4dGVuZEZsYXQoe30sbyx7bWF0cml4OiExLHNlbGVjdEJhdGNoOltdLHVuc2VsZWN0QmF0Y2g6W119KSkuZHJhdz1mdW5jdGlvbigpe3MubWF0cml4JiZzLm1hdHJpeC5kcmF3JiYocy5zZWxlY3RCYXRjaC5sZW5ndGh8fHMudW5zZWxlY3RCYXRjaC5sZW5ndGg/cy5tYXRyaXguZHJhdyhzLnVuc2VsZWN0QmF0Y2gscy5zZWxlY3RCYXRjaCk6cy5tYXRyaXguZHJhdygpKSxzLmRpcnR5PSExfSxzLmRlc3Ryb3k9ZnVuY3Rpb24oKXtzLm1hdHJpeCYmcy5tYXRyaXguZGVzdHJveSYmcy5tYXRyaXguZGVzdHJveSgpLHMubWF0cml4T3B0aW9ucz1udWxsLHMuc2VsZWN0QmF0Y2g9bnVsbCxzLnVuc2VsZWN0QmF0Y2g9bnVsbCxzPW51bGx9KSxzLmRpcnR5fHxuLmV4dGVuZEZsYXQocyxvKSxzfX0seyIuLi8uLi9saWIiOjUxNX1dLDEwNTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT1uLnB1c2hVbmlxdWUsYT10KCIuLi9zY2F0dGVyL3N1YnR5cGVzIiksbz10KCIuL2hlbHBlcnMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10LmNkLHM9clswXS50cmFjZSxsPXJbMF0udCxjPXQuc2NlbmUsdT1jLm1hdHJpeE9wdGlvbnMuY2RhdGEsZj10LnhheGlzLGg9dC55YXhpcyxwPVtdO2lmKCFjKXJldHVybiBwO3ZhciBkPSFhLmhhc01hcmtlcnMocykmJiFhLmhhc1RleHQocyk7aWYoITAhPT1zLnZpc2libGV8fGQpcmV0dXJuIHA7dmFyIG09by5nZXREaW1JbmRleChzLGYpLGc9by5nZXREaW1JbmRleChzLGgpO2lmKCExPT09bXx8ITE9PT1nKXJldHVybiBwO3ZhciB2PWwueHB4W21dLHk9bC55cHhbZ10seD11W21dLGI9dVtnXSxfPSh0LnNjZW5lLnNlbGVjdEJhdGNofHxbXSkuc2xpY2UoKSx3PVtdO2lmKCExIT09ZSYmIWUuZGVnZW5lcmF0ZSlmb3IodmFyIFQ9MDtUPHgubGVuZ3RoO1QrKyllLmNvbnRhaW5zKFt2W1RdLHlbVF1dLG51bGwsVCx0KT8ocC5wdXNoKHtwb2ludE51bWJlcjpULHg6eFtUXSx5OmJbVF19KSxpKF8sVCkpOi0xIT09Xy5pbmRleE9mKFQpP2koXyxUKTp3LnB1c2goVCk7dmFyIGs9Yy5tYXRyaXhPcHRpb25zO3JldHVybiBfLmxlbmd0aHx8dy5sZW5ndGg/Yy5zZWxlY3RCYXRjaC5sZW5ndGh8fGMudW5zZWxlY3RCYXRjaC5sZW5ndGh8fGMubWF0cml4LnVwZGF0ZShjLnVuc2VsZWN0ZWRPcHRpb25zLG4uZXh0ZW5kRmxhdCh7fSxrLGMuc2VsZWN0ZWRPcHRpb25zLGMudmlld09wdHMpKTpjLm1hdHJpeC51cGRhdGUoayxudWxsKSxjLnNlbGVjdEJhdGNoPV8sYy51bnNlbGVjdEJhdGNoPXcscH19LHsiLi4vLi4vbGliIjo1MTUsIi4uL3NjYXR0ZXIvc3VidHlwZXMiOjk2MSwiLi9oZWxwZXJzIjoxMDQ3fV0sMTA1MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfZm9ybWF0X2F0dHJpYnV0ZXMiKS5heGlzSG92ZXJGb3JtYXQsYT10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikuaG92ZXJ0ZW1wbGF0ZUF0dHJzLG89dCgiLi4vbWVzaDNkL2F0dHJpYnV0ZXMiKSxzPXQoIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiKSxsPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LGM9e3g6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIn0seTp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSx6Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LHU6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sdjp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSx3Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LHN0YXJ0czp7eDp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSx5Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LHo6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sZWRpdFR5cGU6ImNhbGMifSxtYXhkaXNwbGF5ZWQ6e3ZhbFR5cGU6ImludGVnZXIiLG1pbjowLGRmbHQ6MWUzLGVkaXRUeXBlOiJjYWxjIn0sc2l6ZXJlZjp7dmFsVHlwZToibnVtYmVyIixlZGl0VHlwZToiY2FsYyIsbWluOjAsZGZsdDoxfSx0ZXh0Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6ImNhbGMifSxob3ZlcnRleHQ6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIixlZGl0VHlwZToiY2FsYyJ9LGhvdmVydGVtcGxhdGU6YSh7ZWRpdFR5cGU6ImNhbGMifSx7a2V5czpbInR1YmV4IiwidHViZXkiLCJ0dWJleiIsInR1YmV1IiwidHViZXYiLCJ0dWJldyIsIm5vcm0iLCJkaXZlcmdlbmNlIl19KSx1aG92ZXJmb3JtYXQ6aSgidSIsMSksdmhvdmVyZm9ybWF0OmkoInYiLDEpLHdob3ZlcmZvcm1hdDppKCJ3IiwxKSx4aG92ZXJmb3JtYXQ6aSgieCIpLHlob3ZlcmZvcm1hdDppKCJ5IiksemhvdmVyZm9ybWF0OmkoInoiKSxzaG93bGVnZW5kOmwoe30scy5zaG93bGVnZW5kLHtkZmx0OiExfSl9O2woYyxuKCIiLHtjb2xvckF0dHI6InUvdi93IG5vcm0iLHNob3dTY2FsZURmbHQ6ITAsZWRpdFR5cGVPdmVycmlkZToiY2FsYyJ9KSk7WyJvcGFjaXR5IiwibGlnaHRwb3NpdGlvbiIsImxpZ2h0aW5nIl0uZm9yRWFjaCgoZnVuY3Rpb24odCl7Y1t0XT1vW3RdfSkpLGMuaG92ZXJpbmZvPWwoe30scy5ob3ZlcmluZm8se2VkaXRUeXBlOiJjYWxjIixmbGFnczpbIngiLCJ5IiwieiIsInUiLCJ2IiwidyIsIm5vcm0iLCJkaXZlcmdlbmNlIiwidGV4dCIsIm5hbWUiXSxkZmx0OiJ4K3kreitub3JtK3RleHQrbmFtZSJ9KSxjLnRyYW5zZm9ybXM9dm9pZCAwLGUuZXhwb3J0cz1jfSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjozNzQsIi4uLy4uL2xpYi9leHRlbmQiOjUwNSwiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyI6NTYyLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19mb3JtYXRfYXR0cmlidXRlcyI6NTY5LCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo2NDIsIi4uL21lc2gzZC9hdHRyaWJ1dGVzIjo4NzZ9XSwxMDU0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2NhbGMiKTtmdW5jdGlvbiBhKHQpe3ZhciBlLHIsaSxhLHMsbCxjLHUsZixoLHAsZCxtPXQuX3gsZz10Ll95LHY9dC5feix5PXQuX2xlbix4PS0xLzAsYj0xLzAsXz0tMS8wLHc9MS8wLFQ9LTEvMCxrPTEvMCxBPSIiO2Zvcih5JiYoYz1tWzBdLGY9Z1swXSxwPXZbMF0pLHk+MSYmKHU9bVt5LTFdLGg9Z1t5LTFdLGQ9dlt5LTFdKSxlPTA7ZTx5O2UrKyl4PU1hdGgubWF4KHgsbVtlXSksYj1NYXRoLm1pbihiLG1bZV0pLF89TWF0aC5tYXgoXyxnW2VdKSx3PU1hdGgubWluKHcsZ1tlXSksVD1NYXRoLm1heChULHZbZV0pLGs9TWF0aC5taW4oayx2W2VdKSxhfHxtW2VdPT09Y3x8KGE9ITAsQSs9IngiKSxzfHxnW2VdPT09Znx8KHM9ITAsQSs9InkiKSxsfHx2W2VdPT09cHx8KGw9ITAsQSs9InoiKTthfHwoQSs9IngiKSxzfHwoQSs9InkiKSxsfHwoQSs9InoiKTt2YXIgTT1vKHQuX3gpLFM9byh0Ll95KSxFPW8odC5feik7QT0oQT0oQT1BLnJlcGxhY2UoIngiLChjPnU/Ii0iOiIrIikrIngiKSkucmVwbGFjZSgieSIsKGY+aD8iLSI6IisiKSsieSIpKS5yZXBsYWNlKCJ6IiwocD5kPyItIjoiKyIpKyJ6Iik7dmFyIEw9ZnVuY3Rpb24oKXt5PTAsTT1bXSxTPVtdLEU9W119OygheXx8eTxNLmxlbmd0aCpTLmxlbmd0aCpFLmxlbmd0aCkmJkwoKTt2YXIgQz1mdW5jdGlvbih0KXtyZXR1cm4ieCI9PT10P206InkiPT09dD9nOnZ9LFA9ZnVuY3Rpb24odCl7cmV0dXJuIngiPT09dD9NOiJ5Ij09PXQ/UzpFfSxJPWZ1bmN0aW9uKHQpe3JldHVybiB0W3ktMV08dFswXT8tMToxfSxPPUMoQVsxXSksej1DKEFbM10pLEQ9QyhBWzVdKSxSPVAoQVsxXSkubGVuZ3RoLEY9UChBWzNdKS5sZW5ndGgsQj1QKEFbNV0pLmxlbmd0aCxOPSExLGo9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBSKihGKnQrZSkrcn0sVT1JKEMoQVsxXSkpLFY9SShDKEFbM10pKSxIPUkoQyhBWzVdKSk7Zm9yKGU9MDtlPEItMTtlKyspe2ZvcihyPTA7cjxGLTE7cisrKXtmb3IoaT0wO2k8Ui0xO2krKyl7dmFyIHE9aihlLHIsaSksRz1qKGUscixpKzEpLFk9aihlLHIrMSxpKSxXPWooZSsxLHIsaSk7aWYoT1txXSpVPE9bR10qVSYmeltxXSpWPHpbWV0qViYmRFtxXSpIPERbV10qSHx8KE49ITApLE4pYnJlYWt9aWYoTilicmVha31pZihOKWJyZWFrfXJldHVybiBOJiYobi53YXJuKCJFbmNvdW50ZXJlZCBhcmJpdHJhcnkgY29vcmRpbmF0ZXMhIFVuYWJsZSB0byBpbnB1dCBkYXRhIGdyaWQuIiksTCgpKSx7eE1pbjpiLHlNaW46dyx6TWluOmsseE1heDp4LHlNYXg6Xyx6TWF4OlQsWHM6TSxZczpTLFpzOkUsbGVuOnksZmlsbDpBfX1mdW5jdGlvbiBvKHQpe3JldHVybiBuLmRpc3RpbmN0VmFscyh0KS52YWxzfWZ1bmN0aW9uIHModCxlKXtpZih2b2lkIDA9PT1lJiYoZT10Lmxlbmd0aCksbi5pc1R5cGVkQXJyYXkodCkpcmV0dXJuIHQuc3ViYXJyYXkoMCxlKTtmb3IodmFyIHI9W10saT0wO2k8ZTtpKyspcltpXT0rdFtpXTtyZXR1cm4gcn1lLmV4cG9ydHM9e2NhbGM6ZnVuY3Rpb24odCxlKXtlLl9sZW49TWF0aC5taW4oZS51Lmxlbmd0aCxlLnYubGVuZ3RoLGUudy5sZW5ndGgsZS54Lmxlbmd0aCxlLnkubGVuZ3RoLGUuei5sZW5ndGgpLGUuX3U9cyhlLnUsZS5fbGVuKSxlLl92PXMoZS52LGUuX2xlbiksZS5fdz1zKGUudyxlLl9sZW4pLGUuX3g9cyhlLngsZS5fbGVuKSxlLl95PXMoZS55LGUuX2xlbiksZS5fej1zKGUueixlLl9sZW4pO3ZhciByPWEoZSk7ZS5fZ3JpZEZpbGw9ci5maWxsLGUuX1hzPXIuWHMsZS5fWXM9ci5ZcyxlLl9acz1yLlpzLGUuX2xlbj1yLmxlbjt2YXIgbixvLGwsYz0wO2Uuc3RhcnRzJiYobj1zKGUuc3RhcnRzLnh8fFtdKSxvPXMoZS5zdGFydHMueXx8W10pLGw9cyhlLnN0YXJ0cy56fHxbXSksYz1NYXRoLm1pbihuLmxlbmd0aCxvLmxlbmd0aCxsLmxlbmd0aCkpLGUuX3N0YXJ0c1g9bnx8W10sZS5fc3RhcnRzWT1vfHxbXSxlLl9zdGFydHNaPWx8fFtdO3ZhciB1LGY9MCxoPTEvMDtmb3IodT0wO3U8ZS5fbGVuO3UrKyl7dmFyIHA9ZS5fdVt1XSxkPWUuX3ZbdV0sbT1lLl93W3VdLGc9TWF0aC5zcXJ0KHAqcCtkKmQrbSptKTtmPU1hdGgubWF4KGYsZyksaD1NYXRoLm1pbihoLGcpfWZvcihpKHQsZSx7dmFsczpbaCxmXSxjb250YWluZXJTdHI6IiIsY0xldHRlcjoiYyJ9KSx1PTA7dTxjO3UrKyl7dmFyIHY9blt1XTtyLnhNYXg9TWF0aC5tYXgoci54TWF4LHYpLHIueE1pbj1NYXRoLm1pbihyLnhNaW4sdik7dmFyIHk9b1t1XTtyLnlNYXg9TWF0aC5tYXgoci55TWF4LHkpLHIueU1pbj1NYXRoLm1pbihyLnlNaW4seSk7dmFyIHg9bFt1XTtyLnpNYXg9TWF0aC5tYXgoci56TWF4LHgpLHIuek1pbj1NYXRoLm1pbihyLnpNaW4seCl9ZS5fc2xlbj1jLGUuX25vcm1NYXg9ZixlLl94Ym5kcz1bci54TWluLHIueE1heF0sZS5feWJuZHM9W3IueU1pbixyLnlNYXhdLGUuX3pibmRzPVtyLnpNaW4sci56TWF4XX0sZmlsdGVyOnMscHJvY2Vzc0dyaWQ6YX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2NhbGMiOjM3NSwiLi4vLi4vbGliIjo1MTV9XSwxMDU1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uLy4uL3N0YWNrZ2xfbW9kdWxlcyIpLmdsX3N0cmVhbXR1YmUzZCxpPW4uY3JlYXRlVHViZU1lc2gsYT10KCIuLi8uLi9saWIiKSxvPXQoIi4uLy4uL2xpYi9nbF9mb3JtYXRfY29sb3IiKS5wYXJzZUNvbG9yU2NhbGUscz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiKS5leHRyYWN0T3B0cyxsPXQoIi4uLy4uL3Bsb3RzL2dsM2QvemlwMyIpLGM9e3hheGlzOjAseWF4aXM6MSx6YXhpczoyfTtmdW5jdGlvbiB1KHQsZSl7dGhpcy5zY2VuZT10LHRoaXMudWlkPWUsdGhpcy5tZXNoPW51bGwsdGhpcy5kYXRhPW51bGx9dmFyIGY9dS5wcm90b3R5cGU7ZnVuY3Rpb24gaCh0KXt2YXIgZT10Lmxlbmd0aDtyZXR1cm4gZT4yP3Quc2xpY2UoMSxlLTEpOjI9PT1lP1sodFswXSt0WzFdKS8yXTp0fWZ1bmN0aW9uIHAodCl7dmFyIGU9dC5sZW5ndGg7cmV0dXJuIDE9PT1lP1suNSwuNV06W3RbMV0tdFswXSx0W2UtMV0tdFtlLTJdXX1mdW5jdGlvbiBkKHQsZSl7dmFyIHI9dC5mdWxsU2NlbmVMYXlvdXQsaT10LmRhdGFTY2FsZSx1PWUuX2xlbixmPXt9O2Z1bmN0aW9uIGQodCxlKXt2YXIgbj1yW2VdLG89aVtjW2VdXTtyZXR1cm4gYS5zaW1wbGVNYXAodCwoZnVuY3Rpb24odCl7cmV0dXJuIG4uZDJsKHQpKm99KSl9aWYoZi52ZWN0b3JzPWwoZChlLl91LCJ4YXhpcyIpLGQoZS5fdiwieWF4aXMiKSxkKGUuX3csInpheGlzIiksdSksIXUpcmV0dXJue3Bvc2l0aW9uczpbXSxjZWxsczpbXX07dmFyIG09ZChlLl9YcywieGF4aXMiKSxnPWQoZS5fWXMsInlheGlzIiksdj1kKGUuX1pzLCJ6YXhpcyIpO2lmKGYubWVzaGdyaWQ9W20sZyx2XSxmLmdyaWRGaWxsPWUuX2dyaWRGaWxsLGUuX3NsZW4pZi5zdGFydGluZ1Bvc2l0aW9ucz1sKGQoZS5fc3RhcnRzWCwieGF4aXMiKSxkKGUuX3N0YXJ0c1ksInlheGlzIiksZChlLl9zdGFydHNaLCJ6YXhpcyIpKTtlbHNle2Zvcih2YXIgeT1nWzBdLHg9aChtKSxiPWgodiksXz1uZXcgQXJyYXkoeC5sZW5ndGgqYi5sZW5ndGgpLHc9MCxUPTA7VDx4Lmxlbmd0aDtUKyspZm9yKHZhciBrPTA7azxiLmxlbmd0aDtrKyspX1t3KytdPVt4W1RdLHksYltrXV07Zi5zdGFydGluZ1Bvc2l0aW9ucz1ffWYuY29sb3JtYXA9byhlKSxmLnR1YmVTaXplPWUuc2l6ZXJlZixmLm1heExlbmd0aD1lLm1heGRpc3BsYXllZDt2YXIgQT1kKGUuX3hibmRzLCJ4YXhpcyIpLE09ZChlLl95Ym5kcywieWF4aXMiKSxTPWQoZS5femJuZHMsInpheGlzIiksRT1wKG0pLEw9cChnKSxDPXAodiksUD1bW0FbMF0tRVswXSxNWzBdLUxbMF0sU1swXS1DWzBdXSxbQVsxXStFWzFdLE1bMV0rTFsxXSxTWzFdK0NbMV1dXSxJPW4oZixQKSxPPXMoZSk7SS52ZXJ0ZXhJbnRlbnNpdHlCb3VuZHM9W08ubWluL2UuX25vcm1NYXgsTy5tYXgvZS5fbm9ybU1heF07dmFyIHo9ZS5saWdodHBvc2l0aW9uO3JldHVybiBJLmxpZ2h0UG9zaXRpb249W3oueCx6Lnksei56XSxJLmFtYmllbnQ9ZS5saWdodGluZy5hbWJpZW50LEkuZGlmZnVzZT1lLmxpZ2h0aW5nLmRpZmZ1c2UsSS5zcGVjdWxhcj1lLmxpZ2h0aW5nLnNwZWN1bGFyLEkucm91Z2huZXNzPWUubGlnaHRpbmcucm91Z2huZXNzLEkuZnJlc25lbD1lLmxpZ2h0aW5nLmZyZXNuZWwsSS5vcGFjaXR5PWUub3BhY2l0eSxlLl9wYWQ9SS50dWJlU2NhbGUqZS5zaXplcmVmKjIsSX1mLmhhbmRsZVBpY2s9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5zY2VuZS5mdWxsU2NlbmVMYXlvdXQscj10aGlzLnNjZW5lLmRhdGFTY2FsZTtmdW5jdGlvbiBuKHQsbil7dmFyIGk9ZVtuXSxhPXJbY1tuXV07cmV0dXJuIGkubDJjKHQpL2F9aWYodC5vYmplY3Q9PT10aGlzLm1lc2gpe3ZhciBpPXQuZGF0YS5wb3NpdGlvbixhPXQuZGF0YS52ZWxvY2l0eTtyZXR1cm4gdC50cmFjZUNvb3JkaW5hdGU9W24oaVswXSwieGF4aXMiKSxuKGlbMV0sInlheGlzIiksbihpWzJdLCJ6YXhpcyIpLG4oYVswXSwieGF4aXMiKSxuKGFbMV0sInlheGlzIiksbihhWzJdLCJ6YXhpcyIpLHQuZGF0YS5pbnRlbnNpdHkqdGhpcy5kYXRhLl9ub3JtTWF4LHQuZGF0YS5kaXZlcmdlbmNlXSx0LnRleHRMYWJlbD10aGlzLmRhdGEuaG92ZXJ0ZXh0fHx0aGlzLmRhdGEudGV4dCwhMH19LGYudXBkYXRlPWZ1bmN0aW9uKHQpe3RoaXMuZGF0YT10O3ZhciBlPWQodGhpcy5zY2VuZSx0KTt0aGlzLm1lc2gudXBkYXRlKGUpfSxmLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLnNjZW5lLmdscGxvdC5yZW1vdmUodGhpcy5tZXNoKSx0aGlzLm1lc2guZGlzcG9zZSgpfSxlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10LmdscGxvdC5nbCxuPWQodCxlKSxhPWkocixuKSxvPW5ldyB1KHQsZS51aWQpO3JldHVybiBvLm1lc2g9YSxvLmRhdGE9ZSxhLl90cmFjZT1vLHQuZ2xwbG90LmFkZChhKSxvfX0seyIuLi8uLi8uLi9zdGFja2dsX21vZHVsZXMiOjExMzMsIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSI6Mzc5LCIuLi8uLi9saWIiOjUxNSwiLi4vLi4vbGliL2dsX2Zvcm1hdF9jb2xvciI6NTExLCIuLi8uLi9wbG90cy9nbDNkL3ppcDMiOjYxOH1dLDEwNTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiKSxhPXQoIi4vYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixvKXtmdW5jdGlvbiBzKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxhLHIsaSl9dmFyIGw9cygidSIpLGM9cygidiIpLHU9cygidyIpLGY9cygieCIpLGg9cygieSIpLHA9cygieiIpO2wmJmwubGVuZ3RoJiZjJiZjLmxlbmd0aCYmdSYmdS5sZW5ndGgmJmYmJmYubGVuZ3RoJiZoJiZoLmxlbmd0aCYmcCYmcC5sZW5ndGg/KHMoInN0YXJ0cy54Iikscygic3RhcnRzLnkiKSxzKCJzdGFydHMueiIpLHMoIm1heGRpc3BsYXllZCIpLHMoInNpemVyZWYiKSxzKCJsaWdodGluZy5hbWJpZW50IikscygibGlnaHRpbmcuZGlmZnVzZSIpLHMoImxpZ2h0aW5nLnNwZWN1bGFyIikscygibGlnaHRpbmcucm91Z2huZXNzIikscygibGlnaHRpbmcuZnJlc25lbCIpLHMoImxpZ2h0cG9zaXRpb24ueCIpLHMoImxpZ2h0cG9zaXRpb24ueSIpLHMoImxpZ2h0cG9zaXRpb24ueiIpLGkodCxlLG8scyx7cHJlZml4OiIiLGNMZXR0ZXI6ImMifSkscygidGV4dCIpLHMoImhvdmVydGV4dCIpLHMoImhvdmVydGVtcGxhdGUiKSxzKCJ1aG92ZXJmb3JtYXQiKSxzKCJ2aG92ZXJmb3JtYXQiKSxzKCJ3aG92ZXJmb3JtYXQiKSxzKCJ4aG92ZXJmb3JtYXQiKSxzKCJ5aG92ZXJmb3JtYXQiKSxzKCJ6aG92ZXJmb3JtYXQiKSxlLl9sZW5ndGg9bnVsbCk6ZS52aXNpYmxlPSExfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiOjM3NywiLi4vLi4vbGliIjo1MTUsIi4vYXR0cmlidXRlcyI6MTA1M31dLDEwNTc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToic3RyZWFtdHViZSIsYmFzZVBsb3RNb2R1bGU6dCgiLi4vLi4vcGxvdHMvZ2wzZCIpLGNhdGVnb3JpZXM6WyJnbDNkIiwic2hvd0xlZ2VuZCJdLGF0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNvbG9yYmFyOnttaW46ImNtaW4iLG1heDoiY21heCJ9LGNhbGM6dCgiLi9jYWxjIikuY2FsYyxwbG90OnQoIi4vY29udmVydCIpLGV2ZW50RGF0YTpmdW5jdGlvbih0LGUpe3JldHVybiB0LnR1YmV4PXQueCx0LnR1YmV5PXQueSx0LnR1YmV6PXQueix0LnR1YmV1PWUudHJhY2VDb29yZGluYXRlWzNdLHQudHViZXY9ZS50cmFjZUNvb3JkaW5hdGVbNF0sdC50dWJldz1lLnRyYWNlQ29vcmRpbmF0ZVs1XSx0Lm5vcm09ZS50cmFjZUNvb3JkaW5hdGVbNl0sdC5kaXZlcmdlbmNlPWUudHJhY2VDb29yZGluYXRlWzddLGRlbGV0ZSB0LngsZGVsZXRlIHQueSxkZWxldGUgdC56LHR9LG1ldGE6e319fSx7Ii4uLy4uL3Bsb3RzL2dsM2QiOjYwNywiLi9hdHRyaWJ1dGVzIjoxMDUzLCIuL2NhbGMiOjEwNTQsIi4vY29udmVydCI6MTA1NSwiLi9kZWZhdWx0cyI6MTA1Nn1dLDEwNTg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxhPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS50ZXh0dGVtcGxhdGVBdHRycyxvPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIikscz10KCIuLi8uLi9wbG90cy9kb21haW4iKS5hdHRyaWJ1dGVzLGw9dCgiLi4vcGllL2F0dHJpYnV0ZXMiKSxjPXQoIi4vY29uc3RhbnRzIiksdT10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdDtlLmV4cG9ydHM9e2xhYmVsczp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxwYXJlbnRzOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LHZhbHVlczp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxicmFuY2h2YWx1ZXM6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInJlbWFpbmRlciIsInRvdGFsIl0sZGZsdDoicmVtYWluZGVyIixlZGl0VHlwZToiY2FsYyJ9LGNvdW50Ont2YWxUeXBlOiJmbGFnbGlzdCIsZmxhZ3M6WyJicmFuY2hlcyIsImxlYXZlcyJdLGRmbHQ6ImxlYXZlcyIsZWRpdFR5cGU6ImNhbGMifSxsZXZlbDp7dmFsVHlwZToiYW55IixlZGl0VHlwZToicGxvdCIsYW5pbTohMH0sbWF4ZGVwdGg6e3ZhbFR5cGU6ImludGVnZXIiLGVkaXRUeXBlOiJwbG90IixkZmx0Oi0xfSxtYXJrZXI6dSh7Y29sb3JzOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LGxpbmU6e2NvbG9yOnUoe30sbC5tYXJrZXIubGluZS5jb2xvcix7ZGZsdDpudWxsfSksd2lkdGg6dSh7fSxsLm1hcmtlci5saW5lLndpZHRoLHtkZmx0OjF9KSxlZGl0VHlwZToiY2FsYyJ9LGVkaXRUeXBlOiJjYWxjIn0sbygibWFya2VyIix7Y29sb3JBdHRyOiJjb2xvcnMiLGFuaW06ITF9KSksbGVhZjp7b3BhY2l0eTp7dmFsVHlwZToibnVtYmVyIixlZGl0VHlwZToic3R5bGUiLG1pbjowLG1heDoxfSxlZGl0VHlwZToicGxvdCJ9LHRleHQ6bC50ZXh0LHRleHRpbmZvOnt2YWxUeXBlOiJmbGFnbGlzdCIsZmxhZ3M6WyJsYWJlbCIsInRleHQiLCJ2YWx1ZSIsImN1cnJlbnQgcGF0aCIsInBlcmNlbnQgcm9vdCIsInBlcmNlbnQgZW50cnkiLCJwZXJjZW50IHBhcmVudCJdLGV4dHJhczpbIm5vbmUiXSxlZGl0VHlwZToicGxvdCJ9LHRleHR0ZW1wbGF0ZTphKHtlZGl0VHlwZToicGxvdCJ9LHtrZXlzOmMuZXZlbnREYXRhS2V5cy5jb25jYXQoWyJsYWJlbCIsInZhbHVlIl0pfSksaG92ZXJ0ZXh0OmwuaG92ZXJ0ZXh0LGhvdmVyaW5mbzp1KHt9LG4uaG92ZXJpbmZvLHtmbGFnczpbImxhYmVsIiwidGV4dCIsInZhbHVlIiwibmFtZSIsImN1cnJlbnQgcGF0aCIsInBlcmNlbnQgcm9vdCIsInBlcmNlbnQgZW50cnkiLCJwZXJjZW50IHBhcmVudCJdLGRmbHQ6ImxhYmVsK3RleHQrdmFsdWUrbmFtZSJ9KSxob3ZlcnRlbXBsYXRlOmkoe30se2tleXM6Yy5ldmVudERhdGFLZXlzfSksdGV4dGZvbnQ6bC50ZXh0Zm9udCxpbnNpZGV0ZXh0b3JpZW50YXRpb246bC5pbnNpZGV0ZXh0b3JpZW50YXRpb24saW5zaWRldGV4dGZvbnQ6bC5pbnNpZGV0ZXh0Zm9udCxvdXRzaWRldGV4dGZvbnQ6dSh7fSxsLm91dHNpZGV0ZXh0Zm9udCx7fSkscm90YXRpb246e3ZhbFR5cGU6ImFuZ2xlIixkZmx0OjAsZWRpdFR5cGU6InBsb3QifSxzb3J0Omwuc29ydCxyb290Ontjb2xvcjp7dmFsVHlwZToiY29sb3IiLGVkaXRUeXBlOiJjYWxjIixkZmx0OiJyZ2JhKDAsMCwwLDApIn0sZWRpdFR5cGU6ImNhbGMifSxkb21haW46cyh7bmFtZToic3VuYnVyc3QiLHRyYWNlOiEwLGVkaXRUeXBlOiJjYWxjIn0pfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6Mzc0LCIuLi8uLi9saWIvZXh0ZW5kIjo1MDUsIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiOjU2MiwiLi4vLi4vcGxvdHMvZG9tYWluIjo1OTMsIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjY0MiwiLi4vcGllL2F0dHJpYnV0ZXMiOjkxMCwiLi9jb25zdGFudHMiOjEwNjF9XSwxMDU5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL3Bsb3RzIik7ci5uYW1lPSJzdW5idXJzdCIsci5wbG90PWZ1bmN0aW9uKHQsZSxpLGEpe24ucGxvdEJhc2VQbG90KHIubmFtZSx0LGUsaSxhKX0sci5jbGVhbj1mdW5jdGlvbih0LGUsaSxhKXtuLmNsZWFuQmFzZVBsb3Qoci5uYW1lLHQsZSxpLGEpfX0seyIuLi8uLi9wbG90cy9wbG90cyI6NjI4fV0sMTA2MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMy1oaWVyYXJjaHkiKSxpPXQoImZhc3QtaXNudW1lcmljIiksYT10KCIuLi8uLi9saWIiKSxvPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSIpLm1ha2VDb2xvclNjYWxlRnVuY0Zyb21UcmFjZSxzPXQoIi4uL3BpZS9jYWxjIikubWFrZVB1bGxDb2xvckZuLGw9dCgiLi4vcGllL2NhbGMiKS5nZW5lcmF0ZUV4dGVuZGVkQ29sb3JzLGM9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIikuY2FsYyx1PXQoIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiKS5BTE1PU1RfRVFVQUwsZj17fSxoPXt9LHA9e307ci5jYWxjPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbCxmLGgscCxkLG09dC5fZnVsbExheW91dCxnPWUuaWRzLHY9YS5pc0FycmF5T3JUeXBlZEFycmF5KGcpLHk9ZS5sYWJlbHMseD1lLnBhcmVudHMsYj1lLnZhbHVlcyxfPWEuaXNBcnJheU9yVHlwZWRBcnJheShiKSx3PVtdLFQ9e30saz17fSxBPWZ1bmN0aW9uKHQpe3JldHVybiB0fHwibnVtYmVyIj09dHlwZW9mIHR9LE09ZnVuY3Rpb24odCl7cmV0dXJuIV98fGkoYlt0XSkmJmJbdF0+PTB9O3Y/KHI9TWF0aC5taW4oZy5sZW5ndGgseC5sZW5ndGgpLGw9ZnVuY3Rpb24odCl7cmV0dXJuIEEoZ1t0XSkmJk0odCl9LGY9ZnVuY3Rpb24odCl7cmV0dXJuIFN0cmluZyhnW3RdKX0pOihyPU1hdGgubWluKHkubGVuZ3RoLHgubGVuZ3RoKSxsPWZ1bmN0aW9uKHQpe3JldHVybiBBKHlbdF0pJiZNKHQpfSxmPWZ1bmN0aW9uKHQpe3JldHVybiBTdHJpbmcoeVt0XSl9KSxfJiYocj1NYXRoLm1pbihyLGIubGVuZ3RoKSk7Zm9yKHZhciBTPTA7UzxyO1MrKylpZihsKFMpKXt2YXIgRT1mKFMpLEw9QSh4W1NdKT9TdHJpbmcoeFtTXSk6IiIsQz17aTpTLGlkOkUscGlkOkwsbGFiZWw6QSh5W1NdKT9TdHJpbmcoeVtTXSk6IiJ9O18mJihDLnY9K2JbU10pLHcucHVzaChDKSxwPUUsVFtoPUxdP1RbaF0ucHVzaChwKTpUW2hdPVtwXSxrW3BdPTF9aWYoVFsiIl0pe2lmKFRbIiJdLmxlbmd0aD4xKXtmb3IodmFyIFA9YS5yYW5kc3RyKCksST0wO0k8dy5sZW5ndGg7SSsrKSIiPT09d1tJXS5waWQmJih3W0ldLnBpZD1QKTt3LnVuc2hpZnQoe2hhc011bHRpcGxlUm9vdHM6ITAsaWQ6UCxwaWQ6IiIsbGFiZWw6IiJ9KX19ZWxzZXt2YXIgTyx6PVtdO2ZvcihPIGluIFQpa1tPXXx8ei5wdXNoKE8pO2lmKDEhPT16Lmxlbmd0aClyZXR1cm4gYS53YXJuKFsiTXVsdGlwbGUgaW1wbGllZCByb290cywgY2Fubm90IGJ1aWxkIixlLnR5cGUsImhpZXJhcmNoeSBvZiIsZS5uYW1lKyIuIiwiVGhlc2Ugcm9vdHMgaW5jbHVkZToiLHouam9pbigiLCAiKV0uam9pbigiICIpKTtPPXpbMF0sdy51bnNoaWZ0KHtoYXNJbXBsaWVkUm9vdDohMCxpZDpPLHBpZDoiIixsYWJlbDpPfSl9dHJ5e2Q9bi5zdHJhdGlmeSgpLmlkKChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZH0pKS5wYXJlbnRJZCgoZnVuY3Rpb24odCl7cmV0dXJuIHQucGlkfSkpKHcpfWNhdGNoKHQpe3JldHVybiBhLndhcm4oWyJGYWlsZWQgdG8gYnVpbGQiLGUudHlwZSwiaGllcmFyY2h5IG9mIixlLm5hbWUrIi4iLCJFcnJvcjoiLHQubWVzc2FnZV0uam9pbigiICIpKX12YXIgRD1uLmhpZXJhcmNoeShkKSxSPSExO2lmKF8pc3dpdGNoKGUuYnJhbmNodmFsdWVzKXtjYXNlInJlbWFpbmRlciI6RC5zdW0oKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRhdGEudn0pKTticmVhaztjYXNlInRvdGFsIjpELmVhY2goKGZ1bmN0aW9uKHQpe3ZhciByPXQuZGF0YS5kYXRhLG49ci52O2lmKHQuY2hpbGRyZW4pe3ZhciBpPXQuY2hpbGRyZW4ucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0K2UuZGF0YS5kYXRhLnZ9KSwwKTtpZigoci5oYXNJbXBsaWVkUm9vdHx8ci5oYXNNdWx0aXBsZVJvb3RzKSYmKG49aSksbjxpKnUpcmV0dXJuIFI9ITAsYS53YXJuKFsiVG90YWwgdmFsdWUgZm9yIG5vZGUiLHQuZGF0YS5kYXRhLmlkLCJvZiIsZS5uYW1lLCJpcyBzbWFsbGVyIHRoYW4gdGhlIHN1bSBvZiBpdHMgY2hpbGRyZW4uIiwiXG5wYXJlbnQgdmFsdWUgPSIsbiwiXG5jaGlsZHJlbiBzdW0gPSIsaV0uam9pbigiICIpKX10LnZhbHVlPW59KSl9ZWxzZSFmdW5jdGlvbiB0KGUscixuKXt2YXIgaT0wLGE9ZS5jaGlsZHJlbjtpZihhKXtmb3IodmFyIG89YS5sZW5ndGgscz0wO3M8bztzKyspaSs9dChhW3NdLHIsbik7bi5icmFuY2hlcyYmaSsrfWVsc2Ugbi5sZWF2ZXMmJmkrKztlLnZhbHVlPWUuZGF0YS5kYXRhLnZhbHVlPWksci5fdmFsdWVzfHwoci5fdmFsdWVzPVtdKTtyZXR1cm4gci5fdmFsdWVzW2UuZGF0YS5kYXRhLmldPWksaX0oRCxlLHticmFuY2hlczotMSE9PWUuY291bnQuaW5kZXhPZigiYnJhbmNoZXMiKSxsZWF2ZXM6LTEhPT1lLmNvdW50LmluZGV4T2YoImxlYXZlcyIpfSk7aWYoIVIpe3ZhciBGLEI7ZS5zb3J0JiZELnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUudmFsdWUtdC52YWx1ZX0pKTt2YXIgTj1lLm1hcmtlci5jb2xvcnN8fFtdLGo9ISFOLmxlbmd0aDtyZXR1cm4gZS5faGFzQ29sb3JzY2FsZT8oanx8KE49Xz9lLnZhbHVlczplLl92YWx1ZXMpLGModCxlLHt2YWxzOk4sY29udGFpbmVyU3RyOiJtYXJrZXIiLGNMZXR0ZXI6ImMifSksQj1vKGUubWFya2VyKSk6Rj1zKG1bIl8iK2UudHlwZSsiY29sb3JtYXAiXSksRC5lYWNoKChmdW5jdGlvbih0KXt2YXIgcj10LmRhdGEuZGF0YTtyLmNvbG9yPWUuX2hhc0NvbG9yc2NhbGU/QihOW3IuaV0pOkYoTltyLmldLHIuaWQpfSkpLHdbMF0uaGllcmFyY2h5PUQsd319LHIuX3J1bkNyb3NzVHJhY2VDYWxjPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS5fZnVsbExheW91dCxuPWUuY2FsY2RhdGEsaT1yW3QrImNvbG9yd2F5Il0sYT1yWyJfIit0KyJjb2xvcm1hcCJdO3JbImV4dGVuZCIrdCsiY29sb3JzIl0mJihpPWwoaSwiaWNpY2xlIj09PXQ/cDoidHJlZW1hcCI9PT10P2g6ZikpO3ZhciBvLHM9MDtmdW5jdGlvbiBjKHQpe3ZhciBlPXQuZGF0YS5kYXRhLHI9ZS5pZDshMT09PWUuY29sb3ImJihhW3JdP2UuY29sb3I9YVtyXTp0LnBhcmVudD90LnBhcmVudC5wYXJlbnQ/ZS5jb2xvcj10LnBhcmVudC5kYXRhLmRhdGEuY29sb3I6KGFbcl09ZS5jb2xvcj1pW3MlaS5sZW5ndGhdLHMrKyk6ZS5jb2xvcj1vKX1mb3IodmFyIHU9MDt1PG4ubGVuZ3RoO3UrKyl7dmFyIGQ9blt1XVswXTtkLnRyYWNlLnR5cGU9PT10JiZkLmhpZXJhcmNoeSYmKG89ZC50cmFjZS5yb290LmNvbG9yLGQuaGllcmFyY2h5LmVhY2goYykpfX0sci5jcm9zc1RyYWNlQ2FsYz1mdW5jdGlvbih0KXtyZXR1cm4gci5fcnVuQ3Jvc3NUcmFjZUNhbGMoInN1bmJ1cnN0Iix0KX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIjozNzksIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiOjQ5MSwiLi4vLi4vbGliIjo1MTUsIi4uL3BpZS9jYWxjIjo5MTIsImQzLWhpZXJhcmNoeSI6MTE1LCJmYXN0LWlzbnVtZXJpYyI6MTkwfV0sMTA2MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e0NMSUNLX1RSQU5TSVRJT05fVElNRTo3NTAsQ0xJQ0tfVFJBTlNJVElPTl9FQVNJTkc6ImxpbmVhciIsZXZlbnREYXRhS2V5czpbImN1cnJlbnRQYXRoIiwicm9vdCIsImVudHJ5IiwicGVyY2VudFJvb3QiLCJwZXJjZW50RW50cnkiLCJwZXJjZW50UGFyZW50Il19fSx7fV0sMTA2MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4vYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vcGxvdHMvZG9tYWluIikuZGVmYXVsdHMsbz10KCIuLi9iYXIvZGVmYXVsdHMiKS5oYW5kbGVUZXh0LHM9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIiksbD1zLmhhc0NvbG9yc2NhbGUsYz1zLmhhbmRsZURlZmF1bHRzO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixzKXtmdW5jdGlvbiB1KHIsYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxpLHIsYSl9dmFyIGY9dSgibGFiZWxzIiksaD11KCJwYXJlbnRzIik7aWYoZiYmZi5sZW5ndGgmJmgmJmgubGVuZ3RoKXt2YXIgcD11KCJ2YWx1ZXMiKTtwJiZwLmxlbmd0aD91KCJicmFuY2h2YWx1ZXMiKTp1KCJjb3VudCIpLHUoImxldmVsIiksdSgibWF4ZGVwdGgiKSx1KCJtYXJrZXIubGluZS53aWR0aCIpJiZ1KCJtYXJrZXIubGluZS5jb2xvciIscy5wYXBlcl9iZ2NvbG9yKSx1KCJtYXJrZXIuY29sb3JzIik7dmFyIGQ9ZS5faGFzQ29sb3JzY2FsZT1sKHQsIm1hcmtlciIsImNvbG9ycyIpfHwodC5tYXJrZXJ8fHt9KS5jb2xvcmF4aXM7ZCYmYyh0LGUscyx1LHtwcmVmaXg6Im1hcmtlci4iLGNMZXR0ZXI6ImMifSksdSgibGVhZi5vcGFjaXR5IixkPzE6LjcpO3ZhciBtPXUoInRleHQiKTt1KCJ0ZXh0dGVtcGxhdGUiKSxlLnRleHR0ZW1wbGF0ZXx8dSgidGV4dGluZm8iLEFycmF5LmlzQXJyYXkobSk/InRleHQrbGFiZWwiOiJsYWJlbCIpLHUoImhvdmVydGV4dCIpLHUoImhvdmVydGVtcGxhdGUiKTtvKHQsZSxzLHUsImF1dG8iLHttb2R1bGVIYXNTZWxlY3RlZDohMSxtb2R1bGVIYXNVbnNlbGVjdGVkOiExLG1vZHVsZUhhc0NvbnN0cmFpbjohMSxtb2R1bGVIYXNDbGlwb25heGlzOiExLG1vZHVsZUhhc1RleHRhbmdsZTohMSxtb2R1bGVIYXNJbnNpZGVhbmNob3I6ITF9KSx1KCJpbnNpZGV0ZXh0b3JpZW50YXRpb24iKSx1KCJzb3J0IiksdSgicm90YXRpb24iKSx1KCJyb290LmNvbG9yIiksYShlLHMsdSksZS5fbGVuZ3RoPW51bGx9ZWxzZSBlLnZpc2libGU9ITF9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSI6Mzc5LCIuLi8uLi9saWIiOjUxNSwiLi4vLi4vcGxvdHMvZG9tYWluIjo1OTMsIi4uL2Jhci9kZWZhdWx0cyI6NjYxLCIuL2F0dHJpYnV0ZXMiOjEwNTh9XSwxMDYzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4uLy4uL3JlZ2lzdHJ5IiksYT10KCIuLi8uLi9jb21wb25lbnRzL2Z4L2hlbHBlcnMiKS5hcHBlbmRBcnJheVBvaW50VmFsdWUsbz10KCIuLi8uLi9jb21wb25lbnRzL2Z4Iikscz10KCIuLi8uLi9saWIiKSxsPXQoIi4uLy4uL2xpYi9ldmVudHMiKSxjPXQoIi4vaGVscGVycyIpLHU9dCgiLi4vcGllL2hlbHBlcnMiKS5mb3JtYXRQaWVWYWx1ZTtmdW5jdGlvbiBmKHQsZSxyKXtmb3IodmFyIG49dC5kYXRhLmRhdGEsaT17Y3VydmVOdW1iZXI6ZS5pbmRleCxwb2ludE51bWJlcjpuLmksZGF0YTplLl9pbnB1dCxmdWxsRGF0YTplfSxvPTA7bzxyLmxlbmd0aDtvKyspe3ZhciBzPXJbb107cyBpbiB0JiYoaVtzXT10W3NdKX1yZXR1cm4icGFyZW50U3RyaW5nImluIHQmJiFjLmlzSGllcmFyY2h5Um9vdCh0KSYmKGkucGFyZW50PXQucGFyZW50U3RyaW5nKSxhKGksZSxuLmkpLGl9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGEsaCl7dmFyIHA9YVswXSxkPXAudHJhY2UsbT1wLmhpZXJhcmNoeSxnPSJzdW5idXJzdCI9PT1kLnR5cGUsdj0idHJlZW1hcCI9PT1kLnR5cGV8fCJpY2ljbGUiPT09ZC50eXBlOyJfaGFzSG92ZXJMYWJlbCJpbiBkfHwoZC5faGFzSG92ZXJMYWJlbD0hMSksIl9oYXNIb3ZlckV2ZW50ImluIGR8fChkLl9oYXNIb3ZlckV2ZW50PSExKTt0Lm9uKCJtb3VzZW92ZXIiLChmdW5jdGlvbihpKXt2YXIgYT1yLl9mdWxsTGF5b3V0O2lmKCFyLl9kcmFnZ2luZyYmITEhPT1hLmhvdmVybW9kZSl7dmFyIGwseT1yLl9mdWxsRGF0YVtkLmluZGV4XSx4PWkuZGF0YS5kYXRhLGI9eC5pLF89Yy5pc0hpZXJhcmNoeVJvb3QoaSksdz1jLmdldFBhcmVudChtLGkpLFQ9Yy5nZXRWYWx1ZShpKSxrPWZ1bmN0aW9uKHQpe3JldHVybiBzLmNhc3RPcHRpb24oeSxiLHQpfSxBPWsoImhvdmVydGVtcGxhdGUiKSxNPW8uY2FzdEhvdmVyaW5mbyh5LGEsYiksUz1hLnNlcGFyYXRvcnM7aWYoQXx8TSYmIm5vbmUiIT09TSYmInNraXAiIT09TSl7dmFyIEUsTDtnJiYoRT1wLmN4K2kucHhtaWRbMF0qKDEtaS5ySW5zY3JpYmVkKSxMPXAuY3kraS5weG1pZFsxXSooMS1pLnJJbnNjcmliZWQpKSx2JiYoRT1pLl9ob3ZlclgsTD1pLl9ob3ZlclkpO3ZhciBDLFA9e30sST1bXSxPPVtdLHo9ZnVuY3Rpb24odCl7cmV0dXJuLTEhPT1JLmluZGV4T2YodCl9O00mJihJPSJhbGwiPT09TT95Ll9tb2R1bGUuYXR0cmlidXRlcy5ob3ZlcmluZm8uZmxhZ3M6TS5zcGxpdCgiKyIpKSxQLmxhYmVsPXgubGFiZWwseigibGFiZWwiKSYmUC5sYWJlbCYmTy5wdXNoKFAubGFiZWwpLHguaGFzT3duUHJvcGVydHkoInYiKSYmKFAudmFsdWU9eC52LFAudmFsdWVMYWJlbD11KFAudmFsdWUsUykseigidmFsdWUiKSYmTy5wdXNoKFAudmFsdWVMYWJlbCkpLFAuY3VycmVudFBhdGg9aS5jdXJyZW50UGF0aD1jLmdldFBhdGgoaS5kYXRhKSx6KCJjdXJyZW50IHBhdGgiKSYmIV8mJk8ucHVzaChQLmN1cnJlbnRQYXRoKTt2YXIgRD1bXSxSPWZ1bmN0aW9uKCl7LTE9PT1ELmluZGV4T2YoQykmJihPLnB1c2goQyksRC5wdXNoKEMpKX07UC5wZXJjZW50UGFyZW50PWkucGVyY2VudFBhcmVudD1UL2MuZ2V0VmFsdWUodyksUC5wYXJlbnQ9aS5wYXJlbnRTdHJpbmc9Yy5nZXRQdExhYmVsKHcpLHooInBlcmNlbnQgcGFyZW50IikmJihDPWMuZm9ybWF0UGVyY2VudChQLnBlcmNlbnRQYXJlbnQsUykrIiBvZiAiK1AucGFyZW50LFIoKSksUC5wZXJjZW50RW50cnk9aS5wZXJjZW50RW50cnk9VC9jLmdldFZhbHVlKGUpLFAuZW50cnk9aS5lbnRyeT1jLmdldFB0TGFiZWwoZSksIXooInBlcmNlbnQgZW50cnkiKXx8X3x8aS5vblBhdGhiYXJ8fChDPWMuZm9ybWF0UGVyY2VudChQLnBlcmNlbnRFbnRyeSxTKSsiIG9mICIrUC5lbnRyeSxSKCkpLFAucGVyY2VudFJvb3Q9aS5wZXJjZW50Um9vdD1UL2MuZ2V0VmFsdWUobSksUC5yb290PWkucm9vdD1jLmdldFB0TGFiZWwobSkseigicGVyY2VudCByb290IikmJiFfJiYoQz1jLmZvcm1hdFBlcmNlbnQoUC5wZXJjZW50Um9vdCxTKSsiIG9mICIrUC5yb290LFIoKSksUC50ZXh0PWsoImhvdmVydGV4dCIpfHxrKCJ0ZXh0IikseigidGV4dCIpJiYoQz1QLnRleHQscy5pc1ZhbGlkVGV4dFZhbHVlKEMpJiZPLnB1c2goQykpLGw9W2YoaSx5LGguZXZlbnREYXRhS2V5cyldO3ZhciBGPXt0cmFjZTp5LHk6TCxfeDA6aS5feDAsX3gxOmkuX3gxLF95MDppLl95MCxfeTE6aS5feTEsdGV4dDpPLmpvaW4oIjxicj4iKSxuYW1lOkF8fHooIm5hbWUiKT95Lm5hbWU6dm9pZCAwLGNvbG9yOmsoImhvdmVybGFiZWwuYmdjb2xvciIpfHx4LmNvbG9yLGJvcmRlckNvbG9yOmsoImhvdmVybGFiZWwuYm9yZGVyY29sb3IiKSxmb250RmFtaWx5OmsoImhvdmVybGFiZWwuZm9udC5mYW1pbHkiKSxmb250U2l6ZTprKCJob3ZlcmxhYmVsLmZvbnQuc2l6ZSIpLGZvbnRDb2xvcjprKCJob3ZlcmxhYmVsLmZvbnQuY29sb3IiKSxuYW1lTGVuZ3RoOmsoImhvdmVybGFiZWwubmFtZWxlbmd0aCIpLHRleHRBbGlnbjprKCJob3ZlcmxhYmVsLmFsaWduIiksaG92ZXJ0ZW1wbGF0ZTpBLGhvdmVydGVtcGxhdGVMYWJlbHM6UCxldmVudERhdGE6bH07ZyYmKEYueDA9RS1pLnJJbnNjcmliZWQqaS5ycHgxLEYueDE9RStpLnJJbnNjcmliZWQqaS5ycHgxLEYuaWRlYWxBbGlnbj1pLnB4bWlkWzBdPDA/ImxlZnQiOiJyaWdodCIpLHYmJihGLng9RSxGLmlkZWFsQWxpZ249RTwwPyJsZWZ0IjoicmlnaHQiKTt2YXIgQj1bXTtvLmxvbmVIb3ZlcihGLHtjb250YWluZXI6YS5faG92ZXJsYXllci5ub2RlKCksb3V0ZXJDb250YWluZXI6YS5fcGFwZXIubm9kZSgpLGdkOnIsaW5PdXRfYmJveDpCfSksbFswXS5iYm94PUJbMF0sZC5faGFzSG92ZXJMYWJlbD0hMH1pZih2KXt2YXIgTj10LnNlbGVjdCgicGF0aC5zdXJmYWNlIik7aC5zdHlsZU9uZShOLGkseSx7aG92ZXJlZDohMH0pfWQuX2hhc0hvdmVyRXZlbnQ9ITAsci5lbWl0KCJwbG90bHlfaG92ZXIiLHtwb2ludHM6bHx8W2YoaSx5LGguZXZlbnREYXRhS2V5cyldLGV2ZW50Om4uZXZlbnR9KX19KSksdC5vbigibW91c2VvdXQiLChmdW5jdGlvbihlKXt2YXIgaT1yLl9mdWxsTGF5b3V0LGE9ci5fZnVsbERhdGFbZC5pbmRleF0scz1uLnNlbGVjdCh0aGlzKS5kYXR1bSgpO2lmKGQuX2hhc0hvdmVyRXZlbnQmJihlLm9yaWdpbmFsRXZlbnQ9bi5ldmVudCxyLmVtaXQoInBsb3RseV91bmhvdmVyIix7cG9pbnRzOltmKHMsYSxoLmV2ZW50RGF0YUtleXMpXSxldmVudDpuLmV2ZW50fSksZC5faGFzSG92ZXJFdmVudD0hMSksZC5faGFzSG92ZXJMYWJlbCYmKG8ubG9uZVVuaG92ZXIoaS5faG92ZXJsYXllci5ub2RlKCkpLGQuX2hhc0hvdmVyTGFiZWw9ITEpLHYpe3ZhciBsPXQuc2VsZWN0KCJwYXRoLnN1cmZhY2UiKTtoLnN0eWxlT25lKGwscyxhLHtob3ZlcmVkOiExfSl9fSkpLHQub24oImNsaWNrIiwoZnVuY3Rpb24odCl7dmFyIGU9ci5fZnVsbExheW91dCxhPXIuX2Z1bGxEYXRhW2QuaW5kZXhdLHM9ZyYmKGMuaXNIaWVyYXJjaHlSb290KHQpfHxjLmlzTGVhZih0KSksdT1jLmdldFB0SWQodCkscD1jLmlzRW50cnkodCk/Yy5maW5kRW50cnlXaXRoQ2hpbGQobSx1KTpjLmZpbmRFbnRyeVdpdGhMZXZlbChtLHUpLHY9Yy5nZXRQdElkKHApLHk9e3BvaW50czpbZih0LGEsaC5ldmVudERhdGFLZXlzKV0sZXZlbnQ6bi5ldmVudH07c3x8KHkubmV4dExldmVsPXYpO3ZhciB4PWwudHJpZ2dlckhhbmRsZXIociwicGxvdGx5XyIrZC50eXBlKyJjbGljayIseSk7aWYoITEhPT14JiZlLmhvdmVybW9kZSYmKHIuX2hvdmVyZGF0YT1bZih0LGEsaC5ldmVudERhdGFLZXlzKV0sby5jbGljayhyLG4uZXZlbnQpKSwhcyYmITEhPT14JiYhci5fZHJhZ2dpbmcmJiFyLl90cmFuc2l0aW9uaW5nKXtpLmNhbGwoIl9zdG9yZURpcmVjdEdVSUVkaXQiLGEsZS5fdHJhY2VQcmVHVUlbYS51aWRdLHtsZXZlbDphLmxldmVsfSk7dmFyIGI9e2RhdGE6W3tsZXZlbDp2fV0sdHJhY2VzOltkLmluZGV4XX0sXz17ZnJhbWU6e3JlZHJhdzohMSxkdXJhdGlvbjpoLnRyYW5zaXRpb25UaW1lfSx0cmFuc2l0aW9uOntkdXJhdGlvbjpoLnRyYW5zaXRpb25UaW1lLGVhc2luZzpoLnRyYW5zaXRpb25FYXNpbmd9LG1vZGU6ImltbWVkaWF0ZSIsZnJvbWN1cnJlbnQ6ITB9O28ubG9uZVVuaG92ZXIoZS5faG92ZXJsYXllci5ub2RlKCkpLGkuY2FsbCgiYW5pbWF0ZSIscixiLF8pfX0pKX19LHsiLi4vLi4vY29tcG9uZW50cy9meCI6NDA3LCIuLi8uLi9jb21wb25lbnRzL2Z4L2hlbHBlcnMiOjQwMywiLi4vLi4vbGliIjo1MTUsIi4uLy4uL2xpYi9ldmVudHMiOjUwNCwiLi4vLi4vcmVnaXN0cnkiOjY0NywiLi4vcGllL2hlbHBlcnMiOjkxNSwiLi9oZWxwZXJzIjoxMDY0LCJAcGxvdGx5L2QzIjo1OH1dLDEwNjQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksYT10KCIuLi8uLi9saWIvc2V0Y3Vyc29yIiksbz10KCIuLi9waWUvaGVscGVycyIpO2Z1bmN0aW9uIHModCl7cmV0dXJuIHQuZGF0YS5kYXRhLnBpZH1yLmZpbmRFbnRyeVdpdGhMZXZlbD1mdW5jdGlvbih0LGUpe3ZhciBuO3JldHVybiBlJiZ0LmVhY2hBZnRlcigoZnVuY3Rpb24odCl7aWYoci5nZXRQdElkKHQpPT09ZSlyZXR1cm4gbj10LmNvcHkoKX0pKSxufHx0fSxyLmZpbmRFbnRyeVdpdGhDaGlsZD1mdW5jdGlvbih0LGUpe3ZhciBuO3JldHVybiB0LmVhY2hBZnRlcigoZnVuY3Rpb24odCl7Zm9yKHZhciBpPXQuY2hpbGRyZW58fFtdLGE9MDthPGkubGVuZ3RoO2ErKyl7dmFyIG89aVthXTtpZihyLmdldFB0SWQobyk9PT1lKXJldHVybiBuPXQuY29weSgpfX0pKSxufHx0fSxyLmlzRW50cnk9ZnVuY3Rpb24odCl7cmV0dXJuIXQucGFyZW50fSxyLmlzTGVhZj1mdW5jdGlvbih0KXtyZXR1cm4hdC5jaGlsZHJlbn0sci5nZXRQdElkPWZ1bmN0aW9uKHQpe3JldHVybiB0LmRhdGEuZGF0YS5pZH0sci5nZXRQdExhYmVsPWZ1bmN0aW9uKHQpe3JldHVybiB0LmRhdGEuZGF0YS5sYWJlbH0sci5nZXRWYWx1ZT1mdW5jdGlvbih0KXtyZXR1cm4gdC52YWx1ZX0sci5pc0hpZXJhcmNoeVJvb3Q9ZnVuY3Rpb24odCl7cmV0dXJuIiI9PT1zKHQpfSxyLnNldFNsaWNlQ3Vyc29yPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uLmlzVHJhbnNpdGlvbmluZztpZighaSl7dmFyIG89dC5kYXR1bSgpO2k9bi5oaWRlT25Sb290JiZyLmlzSGllcmFyY2h5Um9vdChvKXx8bi5oaWRlT25MZWF2ZXMmJnIuaXNMZWFmKG8pfWEodCxpP251bGw6InBvaW50ZXIiKX0sci5nZXRJbnNpZGVUZXh0Rm9udEtleT1mdW5jdGlvbih0LGUscixpLGEpe3ZhciBvPShhfHx7fSkub25QYXRoYmFyPyJwYXRoYmFyLnRleHRmb250IjoiaW5zaWRldGV4dGZvbnQiLHM9ci5kYXRhLmRhdGEuaTtyZXR1cm4gbi5jYXN0T3B0aW9uKGUscyxvKyIuIit0KXx8bi5jYXN0T3B0aW9uKGUscywidGV4dGZvbnQuIit0KXx8aS5zaXplfSxyLmdldE91dHNpZGVUZXh0Rm9udEtleT1mdW5jdGlvbih0LGUscixpKXt2YXIgYT1yLmRhdGEuZGF0YS5pO3JldHVybiBuLmNhc3RPcHRpb24oZSxhLCJvdXRzaWRldGV4dGZvbnQuIit0KXx8bi5jYXN0T3B0aW9uKGUsYSwidGV4dGZvbnQuIit0KXx8aS5zaXplfSxyLmlzT3V0c2lkZVRleHQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4hdC5faGFzQ29sb3JzY2FsZSYmci5pc0hpZXJhcmNoeVJvb3QoZSl9LHIuZGV0ZXJtaW5lVGV4dEZvbnQ9ZnVuY3Rpb24odCxlLGEsbyl7cmV0dXJuIHIuaXNPdXRzaWRlVGV4dCh0LGUpP2Z1bmN0aW9uKHQsZSxuKXtyZXR1cm57Y29sb3I6ci5nZXRPdXRzaWRlVGV4dEZvbnRLZXkoImNvbG9yIix0LGUsbiksZmFtaWx5OnIuZ2V0T3V0c2lkZVRleHRGb250S2V5KCJmYW1pbHkiLHQsZSxuKSxzaXplOnIuZ2V0T3V0c2lkZVRleHRGb250S2V5KCJzaXplIix0LGUsbil9fSh0LGUsYSk6ZnVuY3Rpb24odCxlLGEsbyl7dmFyIHM9KG98fHt9KS5vblBhdGhiYXIsbD1lLmRhdGEuZGF0YSxjPWwuaSx1PW4uY2FzdE9wdGlvbih0LGMsKHM/InBhdGhiYXIudGV4dGZvbnQiOiJpbnNpZGV0ZXh0Zm9udCIpKyIuY29sb3IiKTtyZXR1cm4hdSYmdC5faW5wdXQudGV4dGZvbnQmJih1PW4uY2FzdE9wdGlvbih0Ll9pbnB1dCxjLCJ0ZXh0Zm9udC5jb2xvciIpKSx7Y29sb3I6dXx8aS5jb250cmFzdChsLmNvbG9yKSxmYW1pbHk6ci5nZXRJbnNpZGVUZXh0Rm9udEtleSgiZmFtaWx5Iix0LGUsYSxvKSxzaXplOnIuZ2V0SW5zaWRlVGV4dEZvbnRLZXkoInNpemUiLHQsZSxhLG8pfX0odCxlLGEsbyl9LHIuaGFzVHJhbnNpdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4hISh0JiZ0LmR1cmF0aW9uPjApfSxyLmdldE1heERlcHRoPWZ1bmN0aW9uKHQpe3JldHVybiB0Lm1heGRlcHRoPj0wP3QubWF4ZGVwdGg6MS8wfSxyLmlzSGVhZGVyPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIShyLmlzTGVhZih0KXx8dC5kZXB0aD09PWUuX21heERlcHRoLTEpfSxyLmdldFBhcmVudD1mdW5jdGlvbih0LGUpe3JldHVybiByLmZpbmRFbnRyeVdpdGhMZXZlbCh0LHMoZSkpfSxyLmxpc3RQYXRoPWZ1bmN0aW9uKHQsZSl7dmFyIG49dC5wYXJlbnQ7aWYoIW4pcmV0dXJuW107dmFyIGk9ZT9bbi5kYXRhW2VdXTpbbl07cmV0dXJuIHIubGlzdFBhdGgobixlKS5jb25jYXQoaSl9LHIuZ2V0UGF0aD1mdW5jdGlvbih0KXtyZXR1cm4gci5saXN0UGF0aCh0LCJsYWJlbCIpLmpvaW4oIi8iKSsiLyJ9LHIuZm9ybWF0VmFsdWU9by5mb3JtYXRQaWVWYWx1ZSxyLmZvcm1hdFBlcmNlbnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj1uLmZvcm1hdFBlcmNlbnQodCwwKTtyZXR1cm4iMCUiPT09ciYmKHI9by5mb3JtYXRQaWVQZXJjZW50KHQsZSkpLHJ9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjM2NywiLi4vLi4vbGliIjo1MTUsIi4uLy4uL2xpYi9zZXRjdXJzb3IiOjUzNiwiLi4vcGllL2hlbHBlcnMiOjkxNX1dLDEwNjU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToic3VuYnVyc3QiLGJhc2VQbG90TW9kdWxlOnQoIi4vYmFzZV9wbG90IiksY2F0ZWdvcmllczpbXSxhbmltYXRhYmxlOiEwLGF0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksbGF5b3V0QXR0cmlidXRlczp0KCIuL2xheW91dF9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLHN1cHBseUxheW91dERlZmF1bHRzOnQoIi4vbGF5b3V0X2RlZmF1bHRzIiksY2FsYzp0KCIuL2NhbGMiKS5jYWxjLGNyb3NzVHJhY2VDYWxjOnQoIi4vY2FsYyIpLmNyb3NzVHJhY2VDYWxjLHBsb3Q6dCgiLi9wbG90IikucGxvdCxzdHlsZTp0KCIuL3N0eWxlIikuc3R5bGUsY29sb3JiYXI6dCgiLi4vc2NhdHRlci9tYXJrZXJfY29sb3JiYXIiKSxtZXRhOnt9fX0seyIuLi9zY2F0dGVyL21hcmtlcl9jb2xvcmJhciI6OTU0LCIuL2F0dHJpYnV0ZXMiOjEwNTgsIi4vYmFzZV9wbG90IjoxMDU5LCIuL2NhbGMiOjEwNjAsIi4vZGVmYXVsdHMiOjEwNjIsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjEwNjYsIi4vbGF5b3V0X2RlZmF1bHRzIjoxMDY3LCIuL3Bsb3QiOjEwNjgsIi4vc3R5bGUiOjEwNjl9XSwxMDY2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17c3VuYnVyc3Rjb2xvcndheTp7dmFsVHlwZToiY29sb3JsaXN0IixlZGl0VHlwZToiY2FsYyJ9LGV4dGVuZHN1bmJ1cnN0Y29sb3JzOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJjYWxjIn19fSx7fV0sMTA2NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiByKHIsYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxpLHIsYSl9cigic3VuYnVyc3Rjb2xvcndheSIsZS5jb2xvcndheSkscigiZXh0ZW5kc3VuYnVyc3Rjb2xvcnMiKX19LHsiLi4vLi4vbGliIjo1MTUsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjEwNjZ9XSwxMDY4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoImQzLWhpZXJhcmNoeSIpLGE9dCgiZDMtaW50ZXJwb2xhdGUiKS5pbnRlcnBvbGF0ZSxvPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLHM9dCgiLi4vLi4vbGliIiksbD10KCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiKSxjPXQoIi4uL2Jhci91bmlmb3JtX3RleHQiKSx1PWMucmVjb3JkTWluVGV4dFNpemUsZj1jLmNsZWFyTWluVGV4dFNpemUsaD10KCIuLi9waWUvcGxvdCIpLHA9dCgiLi4vcGllL2hlbHBlcnMiKS5nZXRSb3RhdGlvbkFuZ2xlLGQ9aC5jb21wdXRlVHJhbnNmb3JtLG09aC50cmFuc2Zvcm1JbnNpZGVUZXh0LGc9dCgiLi9zdHlsZSIpLnN0eWxlT25lLHY9dCgiLi4vYmFyL3N0eWxlIikucmVzaXplVGV4dCx5PXQoIi4vZngiKSx4PXQoIi4vY29uc3RhbnRzIiksYj10KCIuL2hlbHBlcnMiKTtmdW5jdGlvbiBfKHQsZSxjLGYpe3ZhciBoPXQuX2Z1bGxMYXlvdXQsdj0haC51bmlmb3JtdGV4dC5tb2RlJiZiLmhhc1RyYW5zaXRpb24oZiksXz1uLnNlbGVjdChjKS5zZWxlY3RBbGwoImcuc2xpY2UiKSxUPWVbMF0saz1ULnRyYWNlLEE9VC5oaWVyYXJjaHksTT1iLmZpbmRFbnRyeVdpdGhMZXZlbChBLGsubGV2ZWwpLFM9Yi5nZXRNYXhEZXB0aChrKSxFPWguX3NpemUsTD1rLmRvbWFpbixDPUUudyooTC54WzFdLUwueFswXSksUD1FLmgqKEwueVsxXS1MLnlbMF0pLEk9LjUqTWF0aC5taW4oQyxQKSxPPVQuY3g9RS5sK0UudyooTC54WzFdK0wueFswXSkvMix6PVQuY3k9RS50K0UuaCooMS1MLnlbMF0pLVAvMjtpZighTSlyZXR1cm4gXy5yZW1vdmUoKTt2YXIgRD1udWxsLFI9e307diYmXy5lYWNoKChmdW5jdGlvbih0KXtSW2IuZ2V0UHRJZCh0KV09e3JweDA6dC5ycHgwLHJweDE6dC5ycHgxLHgwOnQueDAseDE6dC54MSx0cmFuc2Zvcm06dC50cmFuc2Zvcm19LCFEJiZiLmlzRW50cnkodCkmJihEPXQpfSkpO3ZhciBGPWZ1bmN0aW9uKHQpe3JldHVybiBpLnBhcnRpdGlvbigpLnNpemUoWzIqTWF0aC5QSSx0LmhlaWdodCsxXSkodCl9KE0pLmRlc2NlbmRhbnRzKCksQj1NLmhlaWdodCsxLE49MCxqPVM7VC5oYXNNdWx0aXBsZVJvb3RzJiZiLmlzSGllcmFyY2h5Um9vdChNKSYmKEY9Ri5zbGljZSgxKSxCLT0xLE49MSxqKz0xKSxGPUYuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC55MTw9an0pKTt2YXIgVT1wKGsucm90YXRpb24pO1UmJkYuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC54MCs9VSx0LngxKz1VfSkpO3ZhciBWPU1hdGgubWluKEIsUyksSD1mdW5jdGlvbih0KXtyZXR1cm4odC1OKS9WKkl9LHE9ZnVuY3Rpb24odCxlKXtyZXR1cm5bdCpNYXRoLmNvcyhlKSwtdCpNYXRoLnNpbihlKV19LEc9ZnVuY3Rpb24odCl7cmV0dXJuIHMucGF0aEFubnVsdXModC5ycHgwLHQucnB4MSx0LngwLHQueDEsTyx6KX0sWT1mdW5jdGlvbih0KXtyZXR1cm4gTyt3KHQpWzBdKih0LnRyYW5zZm9ybS5yQ2VudGVyfHwwKSsodC50cmFuc2Zvcm0ueHx8MCl9LFc9ZnVuY3Rpb24odCl7cmV0dXJuIHordyh0KVsxXSoodC50cmFuc2Zvcm0uckNlbnRlcnx8MCkrKHQudHJhbnNmb3JtLnl8fDApfTsoXz1fLmRhdGEoRixiLmdldFB0SWQpKS5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoInNsaWNlIiwhMCksdj9fLmV4aXQoKS50cmFuc2l0aW9uKCkuZWFjaCgoZnVuY3Rpb24oKXt2YXIgdD1uLnNlbGVjdCh0aGlzKTt0LnNlbGVjdCgicGF0aC5zdXJmYWNlIikudHJhbnNpdGlvbigpLmF0dHJUd2VlbigiZCIsKGZ1bmN0aW9uKHQpe3ZhciBlPWZ1bmN0aW9uKHQpe3ZhciBlLHI9Yi5nZXRQdElkKHQpLG49UltyXSxpPVJbYi5nZXRQdElkKE0pXTtpZihpKXt2YXIgbz0odC54MT5pLngxPzIqTWF0aC5QSTowKStVO2U9dC5ycHgxPGkucnB4MT97eDA6dC54MCx4MTp0LngxLHJweDA6MCxycHgxOjB9Ont4MDpvLHgxOm8scnB4MDp0LnJweDAscnB4MTp0LnJweDF9fWVsc2V7dmFyIHMsbD1iLmdldFB0SWQodC5wYXJlbnQpO18uZWFjaCgoZnVuY3Rpb24odCl7aWYoYi5nZXRQdElkKHQpPT09bClyZXR1cm4gcz10fSkpO3ZhciBjLHU9cy5jaGlsZHJlbjt1LmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7aWYoYi5nZXRQdElkKHQpPT09cilyZXR1cm4gYz1lfSkpO3ZhciBmPXUubGVuZ3RoLGg9YShzLngwLHMueDEpO2U9e3JweDA6SSxycHgxOkkseDA6aChjL2YpLHgxOmgoKGMrMSkvZil9fXJldHVybiBhKG4sZSl9KHQpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gRyhlKHQpKX19KSksdC5zZWxlY3QoImcuc2xpY2V0ZXh0IikuYXR0cigib3BhY2l0eSIsMCl9KSkucmVtb3ZlKCk6Xy5leGl0KCkucmVtb3ZlKCksXy5vcmRlcigpO3ZhciBYPW51bGw7aWYodiYmRCl7dmFyIFo9Yi5nZXRQdElkKEQpO18uZWFjaCgoZnVuY3Rpb24odCl7bnVsbD09PVgmJmIuZ2V0UHRJZCh0KT09PVomJihYPXQueDEpfSkpfXZhciBKPV87ZnVuY3Rpb24gSyh0KXt2YXIgZT10LnBhcmVudCxyPVJbYi5nZXRQdElkKGUpXSxuPXt9O2lmKHIpe3ZhciBpPWUuY2hpbGRyZW4sbz1pLmluZGV4T2YodCkscz1pLmxlbmd0aCxsPWEoci54MCxyLngxKTtuLngwPWwoby9zKSxuLngxPWwoby9zKX1lbHNlIG4ueDA9bi54MT0wO3JldHVybiBufXYmJihKPUoudHJhbnNpdGlvbigpLmVhY2goImVuZCIsKGZ1bmN0aW9uKCl7dmFyIGU9bi5zZWxlY3QodGhpcyk7Yi5zZXRTbGljZUN1cnNvcihlLHQse2hpZGVPblJvb3Q6ITAsaGlkZU9uTGVhdmVzOiEwLGlzVHJhbnNpdGlvbmluZzohMX0pfSkpKSxKLmVhY2goKGZ1bmN0aW9uKGkpe3ZhciBjPW4uc2VsZWN0KHRoaXMpLGY9cy5lbnN1cmVTaW5nbGUoYywicGF0aCIsInN1cmZhY2UiLChmdW5jdGlvbih0KXt0LnN0eWxlKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpfSkpO2kucnB4MD1IKGkueTApLGkucnB4MT1IKGkueTEpLGkueG1pZD0oaS54MCtpLngxKS8yLGkucHhtaWQ9cShpLnJweDEsaS54bWlkKSxpLm1pZGFuZ2xlPS0oaS54bWlkLU1hdGguUEkvMiksaS5zdGFydGFuZ2xlPS0oaS54MC1NYXRoLlBJLzIpLGkuc3RvcGFuZ2xlPS0oaS54MS1NYXRoLlBJLzIpLGkuaGFsZmFuZ2xlPS41Kk1hdGgubWluKHMuYW5nbGVEZWx0YShpLngwLGkueDEpfHxNYXRoLlBJLE1hdGguUEkpLGkucmluZz0xLWkucnB4MC9pLnJweDEsaS5ySW5zY3JpYmVkPWZ1bmN0aW9uKHQpe3JldHVybiAwPT09dC5ycHgwJiZzLmlzRnVsbENpcmNsZShbdC54MCx0LngxXSk/MTpNYXRoLm1heCgwLE1hdGgubWluKDEvKDErMS9NYXRoLnNpbih0LmhhbGZhbmdsZSkpLHQucmluZy8yKSl9KGkpLHY/Zi50cmFuc2l0aW9uKCkuYXR0clR3ZWVuKCJkIiwoZnVuY3Rpb24odCl7dmFyIGU9ZnVuY3Rpb24odCl7dmFyIGUscj1SW2IuZ2V0UHRJZCh0KV0sbj17eDA6dC54MCx4MTp0LngxLHJweDA6dC5ycHgwLHJweDE6dC5ycHgxfTtpZihyKWU9cjtlbHNlIGlmKEQpaWYodC5wYXJlbnQpaWYoWCl7dmFyIGk9KHQueDE+WD8yKk1hdGguUEk6MCkrVTtlPXt4MDppLHgxOml9fWVsc2UgZT17cnB4MDpJLHJweDE6SX0scy5leHRlbmRGbGF0KGUsSyh0KSk7ZWxzZSBlPXtycHgwOjAscnB4MTowfTtlbHNlIGU9e3gwOlUseDE6VX07cmV0dXJuIGEoZSxuKX0odCk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBHKGUodCkpfX0pKTpmLmF0dHIoImQiLEcpLGMuY2FsbCh5LE0sdCxlLHtldmVudERhdGFLZXlzOnguZXZlbnREYXRhS2V5cyx0cmFuc2l0aW9uVGltZTp4LkNMSUNLX1RSQU5TSVRJT05fVElNRSx0cmFuc2l0aW9uRWFzaW5nOnguQ0xJQ0tfVFJBTlNJVElPTl9FQVNJTkd9KS5jYWxsKGIuc2V0U2xpY2VDdXJzb3IsdCx7aGlkZU9uUm9vdDohMCxoaWRlT25MZWF2ZXM6ITAsaXNUcmFuc2l0aW9uaW5nOnQuX3RyYW5zaXRpb25pbmd9KSxmLmNhbGwoZyxpLGspO3ZhciBwPXMuZW5zdXJlU2luZ2xlKGMsImciLCJzbGljZXRleHQiKSxfPXMuZW5zdXJlU2luZ2xlKHAsInRleHQiLCIiLChmdW5jdGlvbih0KXt0LmF0dHIoImRhdGEtbm90ZXgiLDEpfSkpLHc9cy5lbnN1cmVVbmlmb3JtRm9udFNpemUodCxiLmRldGVybWluZVRleHRGb250KGssaSxoLmZvbnQpKTtfLnRleHQoci5mb3JtYXRTbGljZUxhYmVsKGksTSxrLGUsaCkpLmNsYXNzZWQoInNsaWNldGV4dCIsITApLmF0dHIoInRleHQtYW5jaG9yIiwibWlkZGxlIikuY2FsbChvLmZvbnQsdykuY2FsbChsLmNvbnZlcnRUb1RzcGFucyx0KTt2YXIgQT1vLmJCb3goXy5ub2RlKCkpO2kudHJhbnNmb3JtPW0oQSxpLFQpLGkudHJhbnNmb3JtLnRhcmdldFg9WShpKSxpLnRyYW5zZm9ybS50YXJnZXRZPVcoaSk7dmFyIFM9ZnVuY3Rpb24odCxlKXt2YXIgcj10LnRyYW5zZm9ybTtyZXR1cm4gZChyLGUpLHIuZm9udFNpemU9dy5zaXplLHUoay50eXBlLHIsaCkscy5nZXRUZXh0VHJhbnNmb3JtKHIpfTt2P18udHJhbnNpdGlvbigpLmF0dHJUd2VlbigidHJhbnNmb3JtIiwoZnVuY3Rpb24odCl7dmFyIGU9ZnVuY3Rpb24odCl7dmFyIGUscj1SW2IuZ2V0UHRJZCh0KV0sbj10LnRyYW5zZm9ybTtpZihyKWU9cjtlbHNlIGlmKGU9e3JweDE6dC5ycHgxLHRyYW5zZm9ybTp7dGV4dFBvc0FuZ2xlOm4udGV4dFBvc0FuZ2xlLHNjYWxlOjAscm90YXRlOm4ucm90YXRlLHJDZW50ZXI6bi5yQ2VudGVyLHg6bi54LHk6bi55fX0sRClpZih0LnBhcmVudClpZihYKXt2YXIgaT10LngxPlg/MipNYXRoLlBJOjA7ZS54MD1lLngxPWl9ZWxzZSBzLmV4dGVuZEZsYXQoZSxLKHQpKTtlbHNlIGUueDA9ZS54MT1VO2Vsc2UgZS54MD1lLngxPVU7dmFyIG89YShlLnRyYW5zZm9ybS50ZXh0UG9zQW5nbGUsdC50cmFuc2Zvcm0udGV4dFBvc0FuZ2xlKSxsPWEoZS5ycHgxLHQucnB4MSksYz1hKGUueDAsdC54MCksZj1hKGUueDEsdC54MSkscD1hKGUudHJhbnNmb3JtLnNjYWxlLG4uc2NhbGUpLGQ9YShlLnRyYW5zZm9ybS5yb3RhdGUsbi5yb3RhdGUpLG09MD09PW4uckNlbnRlcj8zOjA9PT1lLnRyYW5zZm9ybS5yQ2VudGVyPzEvMzoxLGc9YShlLnRyYW5zZm9ybS5yQ2VudGVyLG4uckNlbnRlcik7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBlPWwodCkscj1jKHQpLGk9Zih0KSxhPWZ1bmN0aW9uKHQpe3JldHVybiBnKE1hdGgucG93KHQsbSkpfSh0KSxzPXtweG1pZDpxKGUsKHIraSkvMikscnB4MTplLHRyYW5zZm9ybTp7dGV4dFBvc0FuZ2xlOm8odCksckNlbnRlcjphLHg6bi54LHk6bi55fX07cmV0dXJuIHUoay50eXBlLG4saCkse3RyYW5zZm9ybTp7dGFyZ2V0WDpZKHMpLHRhcmdldFk6VyhzKSxzY2FsZTpwKHQpLHJvdGF0ZTpkKHQpLHJDZW50ZXI6YX19fX0odCk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBTKGUodCksQSl9fSkpOl8uYXR0cigidHJhbnNmb3JtIixTKGksQSkpfSkpfWZ1bmN0aW9uIHcodCl7cmV0dXJuIGU9dC5ycHgxLHI9dC50cmFuc2Zvcm0udGV4dFBvc0FuZ2xlLFtlKk1hdGguc2luKHIpLC1lKk1hdGguY29zKHIpXTt2YXIgZSxyfXIucGxvdD1mdW5jdGlvbih0LGUscixpKXt2YXIgYSxvLHM9dC5fZnVsbExheW91dCxsPXMuX3N1bmJ1cnN0bGF5ZXIsYz0hcix1PSFzLnVuaWZvcm10ZXh0Lm1vZGUmJmIuaGFzVHJhbnNpdGlvbihyKTsoZigic3VuYnVyc3QiLHMpLChhPWwuc2VsZWN0QWxsKCJnLnRyYWNlLnN1bmJ1cnN0IikuZGF0YShlLChmdW5jdGlvbih0KXtyZXR1cm4gdFswXS50cmFjZS51aWR9KSkpLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgidHJhY2UiLCEwKS5jbGFzc2VkKCJzdW5idXJzdCIsITApLmF0dHIoInN0cm9rZS1saW5lam9pbiIsInJvdW5kIiksYS5vcmRlcigpLHUpPyhpJiYobz1pKCkpLG4udHJhbnNpdGlvbigpLmR1cmF0aW9uKHIuZHVyYXRpb24pLmVhc2Uoci5lYXNpbmcpLmVhY2goImVuZCIsKGZ1bmN0aW9uKCl7byYmbygpfSkpLmVhY2goImludGVycnVwdCIsKGZ1bmN0aW9uKCl7byYmbygpfSkpLmVhY2goKGZ1bmN0aW9uKCl7bC5zZWxlY3RBbGwoImcudHJhY2UiKS5lYWNoKChmdW5jdGlvbihlKXtfKHQsZSx0aGlzLHIpfSkpfSkpKTooYS5lYWNoKChmdW5jdGlvbihlKXtfKHQsZSx0aGlzLHIpfSkpLHMudW5pZm9ybXRleHQubW9kZSYmdih0LHMuX3N1bmJ1cnN0bGF5ZXIuc2VsZWN0QWxsKCIudHJhY2UiKSwic3VuYnVyc3QiKSk7YyYmYS5leGl0KCkucmVtb3ZlKCl9LHIuZm9ybWF0U2xpY2VMYWJlbD1mdW5jdGlvbih0LGUscixuLGkpe3ZhciBhPXIudGV4dHRlbXBsYXRlLG89ci50ZXh0aW5mbztpZighKGF8fG8mJiJub25lIiE9PW8pKXJldHVybiIiO3ZhciBsPWkuc2VwYXJhdG9ycyxjPW5bMF0sdT10LmRhdGEuZGF0YSxmPWMuaGllcmFyY2h5LGg9Yi5pc0hpZXJhcmNoeVJvb3QodCkscD1iLmdldFBhcmVudChmLHQpLGQ9Yi5nZXRWYWx1ZSh0KTtpZighYSl7dmFyIG0sZz1vLnNwbGl0KCIrIiksdj1mdW5jdGlvbih0KXtyZXR1cm4tMSE9PWcuaW5kZXhPZih0KX0seT1bXTtpZih2KCJsYWJlbCIpJiZ1LmxhYmVsJiZ5LnB1c2godS5sYWJlbCksdS5oYXNPd25Qcm9wZXJ0eSgidiIpJiZ2KCJ2YWx1ZSIpJiZ5LnB1c2goYi5mb3JtYXRWYWx1ZSh1LnYsbCkpLCFoKXt2KCJjdXJyZW50IHBhdGgiKSYmeS5wdXNoKGIuZ2V0UGF0aCh0LmRhdGEpKTt2YXIgeD0wO3YoInBlcmNlbnQgcGFyZW50IikmJngrKyx2KCJwZXJjZW50IGVudHJ5IikmJngrKyx2KCJwZXJjZW50IHJvb3QiKSYmeCsrO3ZhciBfPXg+MTtpZih4KXt2YXIgdyxUPWZ1bmN0aW9uKHQpe209Yi5mb3JtYXRQZXJjZW50KHcsbCksXyYmKG0rPSIgb2YgIit0KSx5LnB1c2gobSl9O3YoInBlcmNlbnQgcGFyZW50IikmJiFoJiYodz1kL2IuZ2V0VmFsdWUocCksVCgicGFyZW50IikpLHYoInBlcmNlbnQgZW50cnkiKSYmKHc9ZC9iLmdldFZhbHVlKGUpLFQoImVudHJ5IikpLHYoInBlcmNlbnQgcm9vdCIpJiYodz1kL2IuZ2V0VmFsdWUoZiksVCgicm9vdCIpKX19cmV0dXJuIHYoInRleHQiKSYmKG09cy5jYXN0T3B0aW9uKHIsdS5pLCJ0ZXh0Iikscy5pc1ZhbGlkVGV4dFZhbHVlKG0pJiZ5LnB1c2gobSkpLHkuam9pbigiPGJyPiIpfXZhciBrPXMuY2FzdE9wdGlvbihyLHUuaSwidGV4dHRlbXBsYXRlIik7aWYoIWspcmV0dXJuIiI7dmFyIEE9e307dS5sYWJlbCYmKEEubGFiZWw9dS5sYWJlbCksdS5oYXNPd25Qcm9wZXJ0eSgidiIpJiYoQS52YWx1ZT11LnYsQS52YWx1ZUxhYmVsPWIuZm9ybWF0VmFsdWUodS52LGwpKSxBLmN1cnJlbnRQYXRoPWIuZ2V0UGF0aCh0LmRhdGEpLGh8fChBLnBlcmNlbnRQYXJlbnQ9ZC9iLmdldFZhbHVlKHApLEEucGVyY2VudFBhcmVudExhYmVsPWIuZm9ybWF0UGVyY2VudChBLnBlcmNlbnRQYXJlbnQsbCksQS5wYXJlbnQ9Yi5nZXRQdExhYmVsKHApKSxBLnBlcmNlbnRFbnRyeT1kL2IuZ2V0VmFsdWUoZSksQS5wZXJjZW50RW50cnlMYWJlbD1iLmZvcm1hdFBlcmNlbnQoQS5wZXJjZW50RW50cnksbCksQS5lbnRyeT1iLmdldFB0TGFiZWwoZSksQS5wZXJjZW50Um9vdD1kL2IuZ2V0VmFsdWUoZiksQS5wZXJjZW50Um9vdExhYmVsPWIuZm9ybWF0UGVyY2VudChBLnBlcmNlbnRSb290LGwpLEEucm9vdD1iLmdldFB0TGFiZWwoZiksdS5oYXNPd25Qcm9wZXJ0eSgiY29sb3IiKSYmKEEuY29sb3I9dS5jb2xvcik7dmFyIE09cy5jYXN0T3B0aW9uKHIsdS5pLCJ0ZXh0Iik7cmV0dXJuKHMuaXNWYWxpZFRleHRWYWx1ZShNKXx8IiI9PT1NKSYmKEEudGV4dD1NKSxBLmN1c3RvbWRhdGE9cy5jYXN0T3B0aW9uKHIsdS5pLCJjdXN0b21kYXRhIikscy50ZXh0dGVtcGxhdGVTdHJpbmcoayxBLGkuX2QzbG9jYWxlLEEsci5fbWV0YXx8e30pfX0seyIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjM4OSwiLi4vLi4vbGliIjo1MTUsIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyI6NTQxLCIuLi9iYXIvc3R5bGUiOjY3MSwiLi4vYmFyL3VuaWZvcm1fdGV4dCI6NjczLCIuLi9waWUvaGVscGVycyI6OTE1LCIuLi9waWUvcGxvdCI6OTE5LCIuL2NvbnN0YW50cyI6MTA2MSwiLi9meCI6MTA2MywiLi9oZWxwZXJzIjoxMDY0LCIuL3N0eWxlIjoxMDY5LCJAcGxvdGx5L2QzIjo1OCwiZDMtaGllcmFyY2h5IjoxMTUsImQzLWludGVycG9sYXRlIjoxMTZ9XSwxMDY5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxhPXQoIi4uLy4uL2xpYiIpLG89dCgiLi4vYmFyL3VuaWZvcm1fdGV4dCIpLnJlc2l6ZVRleHQ7ZnVuY3Rpb24gcyh0LGUscil7dmFyIG49ZS5kYXRhLmRhdGEsbz0hZS5jaGlsZHJlbixzPW4uaSxsPWEuY2FzdE9wdGlvbihyLHMsIm1hcmtlci5saW5lLmNvbG9yIil8fGkuZGVmYXVsdExpbmUsYz1hLmNhc3RPcHRpb24ocixzLCJtYXJrZXIubGluZS53aWR0aCIpfHwwO3Quc3R5bGUoInN0cm9rZS13aWR0aCIsYykuY2FsbChpLmZpbGwsbi5jb2xvcikuY2FsbChpLnN0cm9rZSxsKS5zdHlsZSgib3BhY2l0eSIsbz9yLmxlYWYub3BhY2l0eTpudWxsKX1lLmV4cG9ydHM9e3N0eWxlOmZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQuX3N1bmJ1cnN0bGF5ZXIuc2VsZWN0QWxsKCIudHJhY2UiKTtvKHQsZSwic3VuYnVyc3QiKSxlLmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPW4uc2VsZWN0KHRoaXMpLHI9dFswXS50cmFjZTtlLnN0eWxlKCJvcGFjaXR5IixyLm9wYWNpdHkpLGUuc2VsZWN0QWxsKCJwYXRoLnN1cmZhY2UiKS5lYWNoKChmdW5jdGlvbih0KXtuLnNlbGVjdCh0aGlzKS5jYWxsKHMsdCxyKX0pKX0pKX0sc3R5bGVPbmU6c319LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6MzY3LCIuLi8uLi9saWIiOjUxNSwiLi4vYmFyL3VuaWZvcm1fdGV4dCI6NjczLCJAcGxvdGx5L2QzIjo1OH1dLDEwNzA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiKSxhPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2Zvcm1hdF9hdHRyaWJ1dGVzIikuYXhpc0hvdmVyRm9ybWF0LG89dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxzPXQoIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiKSxsPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LGM9dCgiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyIpLm92ZXJyaWRlQWxsO2Z1bmN0aW9uIHUodCl7cmV0dXJue3Nob3c6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LHN0YXJ0Ont2YWxUeXBlOiJudW1iZXIiLGRmbHQ6bnVsbCxlZGl0VHlwZToicGxvdCJ9LGVuZDp7dmFsVHlwZToibnVtYmVyIixkZmx0Om51bGwsZWRpdFR5cGU6InBsb3QifSxzaXplOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6bnVsbCxtaW46MCxlZGl0VHlwZToicGxvdCJ9LHByb2plY3Q6e3g6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LHk6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LHo6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9fSxjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6bi5kZWZhdWx0TGluZX0sdXNlY29sb3JtYXA6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LHdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjoxLG1heDoxNixkZmx0OjJ9LGhpZ2hsaWdodDp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMH0saGlnaGxpZ2h0Y29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0Om4uZGVmYXVsdExpbmV9LGhpZ2hsaWdodHdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjoxLG1heDoxNixkZmx0OjJ9fX12YXIgZj1lLmV4cG9ydHM9YyhsKHt6Ont2YWxUeXBlOiJkYXRhX2FycmF5In0seDp7dmFsVHlwZToiZGF0YV9hcnJheSJ9LHk6e3ZhbFR5cGU6ImRhdGFfYXJyYXkifSx0ZXh0Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsYXJyYXlPazohMH0saG92ZXJ0ZXh0Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsYXJyYXlPazohMH0saG92ZXJ0ZW1wbGF0ZTpvKCkseGhvdmVyZm9ybWF0OmEoIngiKSx5aG92ZXJmb3JtYXQ6YSgieSIpLHpob3ZlcmZvcm1hdDphKCJ6IiksY29ubmVjdGdhcHM6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITEsZWRpdFR5cGU6ImNhbGMifSxzdXJmYWNlY29sb3I6e3ZhbFR5cGU6ImRhdGFfYXJyYXkifX0saSgiIix7Y29sb3JBdHRyOiJ6IG9yIHN1cmZhY2Vjb2xvciIsc2hvd1NjYWxlRGZsdDohMCxhdXRvQ29sb3JEZmx0OiExLGVkaXRUeXBlT3ZlcnJpZGU6ImNhbGMifSkse2NvbnRvdXJzOnt4OnUoKSx5OnUoKSx6OnUoKX0saGlkZXN1cmZhY2U6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LGxpZ2h0cG9zaXRpb246e3g6e3ZhbFR5cGU6Im51bWJlciIsbWluOi0xZTUsbWF4OjFlNSxkZmx0OjEwfSx5Ont2YWxUeXBlOiJudW1iZXIiLG1pbjotMWU1LG1heDoxZTUsZGZsdDoxZTR9LHo6e3ZhbFR5cGU6Im51bWJlciIsbWluOi0xZTUsbWF4OjFlNSxkZmx0OjB9fSxsaWdodGluZzp7YW1iaWVudDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0Oi44fSxkaWZmdXNlOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6Ljh9LHNwZWN1bGFyOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoyLGRmbHQ6LjA1fSxyb3VnaG5lc3M6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDouNX0sZnJlc25lbDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6NSxkZmx0Oi4yfX0sb3BhY2l0eTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0OjF9LG9wYWNpdHlzY2FsZTp7dmFsVHlwZToiYW55IixlZGl0VHlwZToiY2FsYyJ9LF9kZXByZWNhdGVkOnt6YXV0bzpsKHt9LGkuemF1dG8se30pLHptaW46bCh7fSxpLnptaW4se30pLHptYXg6bCh7fSxpLnptYXgse30pfSxob3ZlcmluZm86bCh7fSxzLmhvdmVyaW5mbyksc2hvd2xlZ2VuZDpsKHt9LHMuc2hvd2xlZ2VuZCx7ZGZsdDohMX0pfSksImNhbGMiLCJuZXN0ZWQiKTtmLnguZWRpdFR5cGU9Zi55LmVkaXRUeXBlPWYuei5lZGl0VHlwZT0iY2FsYytjbGVhckF4aXNUeXBlcyIsZi50cmFuc2Zvcm1zPXZvaWQgMH0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjozNjcsIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjozNzQsIi4uLy4uL2xpYi9leHRlbmQiOjUwNSwiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyI6NTQ4LCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIjo1NjIsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2Zvcm1hdF9hdHRyaWJ1dGVzIjo1NjksIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjY0Mn1dLDEwNzE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2NhbGMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtlLnN1cmZhY2Vjb2xvcj9uKHQsZSx7dmFsczplLnN1cmZhY2Vjb2xvcixjb250YWluZXJTdHI6IiIsY0xldHRlcjoiYyJ9KTpuKHQsZSx7dmFsczplLnosY29udGFpbmVyU3RyOiIiLGNMZXR0ZXI6ImMifSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jYWxjIjozNzV9XSwxMDcyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uLy4uL3N0YWNrZ2xfbW9kdWxlcyIpLmdsX3N1cmZhY2UzZCxpPXQoIi4uLy4uLy4uL3N0YWNrZ2xfbW9kdWxlcyIpLm5kYXJyYXksYT10KCIuLi8uLi8uLi9zdGFja2dsX21vZHVsZXMiKS5uZGFycmF5X2xpbmVhcl9pbnRlcnBvbGF0ZS5kMixvPXQoIi4uL2hlYXRtYXAvaW50ZXJwMmQiKSxzPXQoIi4uL2hlYXRtYXAvZmluZF9lbXB0aWVzIiksbD10KCIuLi8uLi9saWIiKS5pc0FycmF5T3JUeXBlZEFycmF5LGM9dCgiLi4vLi4vbGliL2dsX2Zvcm1hdF9jb2xvciIpLnBhcnNlQ29sb3JTY2FsZSx1PXQoIi4uLy4uL2xpYi9zdHIycmdiYXJyYXkiKSxmPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSIpLmV4dHJhY3RPcHRzO2Z1bmN0aW9uIGgodCxlLHIpe3RoaXMuc2NlbmU9dCx0aGlzLnVpZD1yLHRoaXMuc3VyZmFjZT1lLHRoaXMuZGF0YT1udWxsLHRoaXMuc2hvd0NvbnRvdXI9WyExLCExLCExXSx0aGlzLmNvbnRvdXJTdGFydD1bbnVsbCxudWxsLG51bGxdLHRoaXMuY29udG91ckVuZD1bbnVsbCxudWxsLG51bGxdLHRoaXMuY29udG91clNpemU9WzAsMCwwXSx0aGlzLm1pblZhbHVlcz1bMS8wLDEvMCwxLzBdLHRoaXMubWF4VmFsdWVzPVstMS8wLC0xLzAsLTEvMF0sdGhpcy5kYXRhU2NhbGVYPTEsdGhpcy5kYXRhU2NhbGVZPTEsdGhpcy5yZWZpbmVEYXRhPSEwLHRoaXMub2JqZWN0T2Zmc2V0PVswLDAsMF19dmFyIHA9aC5wcm90b3R5cGU7cC5nZXRYYXQ9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9bCh0aGlzLmRhdGEueCk/bCh0aGlzLmRhdGEueFswXSk/dGhpcy5kYXRhLnhbZV1bdF06dGhpcy5kYXRhLnhbdF06dDtyZXR1cm4gdm9pZCAwPT09cj9pOm4uZDJsKGksMCxyKX0scC5nZXRZYXQ9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9bCh0aGlzLmRhdGEueSk/bCh0aGlzLmRhdGEueVswXSk/dGhpcy5kYXRhLnlbZV1bdF06dGhpcy5kYXRhLnlbZV06ZTtyZXR1cm4gdm9pZCAwPT09cj9pOm4uZDJsKGksMCxyKX0scC5nZXRaYXQ9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9dGhpcy5kYXRhLnpbZV1bdF07cmV0dXJuIG51bGw9PT1pJiZ0aGlzLmRhdGEuY29ubmVjdGdhcHMmJnRoaXMuZGF0YS5faW50ZXJwb2xhdGVkWiYmKGk9dGhpcy5kYXRhLl9pbnRlcnBvbGF0ZWRaW2VdW3RdKSx2b2lkIDA9PT1yP2k6bi5kMmwoaSwwLHIpfSxwLmhhbmRsZVBpY2s9ZnVuY3Rpb24odCl7aWYodC5vYmplY3Q9PT10aGlzLnN1cmZhY2Upe3ZhciBlPSh0LmRhdGEuaW5kZXhbMF0tMSkvdGhpcy5kYXRhU2NhbGVYLTEscj0odC5kYXRhLmluZGV4WzFdLTEpL3RoaXMuZGF0YVNjYWxlWS0xLG49TWF0aC5tYXgoTWF0aC5taW4oTWF0aC5yb3VuZChlKSx0aGlzLmRhdGEuelswXS5sZW5ndGgtMSksMCksaT1NYXRoLm1heChNYXRoLm1pbihNYXRoLnJvdW5kKHIpLHRoaXMuZGF0YS5feWxlbmd0aC0xKSwwKTt0LmluZGV4PVtuLGldLHQudHJhY2VDb29yZGluYXRlPVt0aGlzLmdldFhhdChuLGkpLHRoaXMuZ2V0WWF0KG4saSksdGhpcy5nZXRaYXQobixpKV0sdC5kYXRhQ29vcmRpbmF0ZT1bdGhpcy5nZXRYYXQobixpLHRoaXMuZGF0YS54Y2FsZW5kYXIsdGhpcy5zY2VuZS5mdWxsU2NlbmVMYXlvdXQueGF4aXMpLHRoaXMuZ2V0WWF0KG4saSx0aGlzLmRhdGEueWNhbGVuZGFyLHRoaXMuc2NlbmUuZnVsbFNjZW5lTGF5b3V0LnlheGlzKSx0aGlzLmdldFphdChuLGksdGhpcy5kYXRhLnpjYWxlbmRhcix0aGlzLnNjZW5lLmZ1bGxTY2VuZUxheW91dC56YXhpcyldO2Zvcih2YXIgYT0wO2E8MzthKyspe3ZhciBvPXQuZGF0YUNvb3JkaW5hdGVbYV07bnVsbCE9byYmKHQuZGF0YUNvb3JkaW5hdGVbYV0qPXRoaXMuc2NlbmUuZGF0YVNjYWxlW2FdKX12YXIgcz10aGlzLmRhdGEuaG92ZXJ0ZXh0fHx0aGlzLmRhdGEudGV4dDtyZXR1cm4gQXJyYXkuaXNBcnJheShzKSYmc1tpXSYmdm9pZCAwIT09c1tpXVtuXT90LnRleHRMYWJlbD1zW2ldW25dOnQudGV4dExhYmVsPXN8fCIiLHQuZGF0YS5kYXRhQ29vcmRpbmF0ZT10LmRhdGFDb29yZGluYXRlLnNsaWNlKCksdGhpcy5zdXJmYWNlLmhpZ2hsaWdodCh0LmRhdGEpLHRoaXMuc2NlbmUuZ2xwbG90LnNwaWtlcy5wb3NpdGlvbj10LmRhdGFDb29yZGluYXRlLCEwfX07dmFyIGQ9WzIsMyw1LDcsMTEsMTMsMTcsMTksMjMsMjksMzEsMzcsNDEsNDMsNDcsNTMsNTksNjEsNjcsNzEsNzMsNzksODMsODksOTcsMTAxLDEwMywxMDcsMTA5LDExMywxMjcsMTMxLDEzNywxMzksMTQ5LDE1MSwxNTcsMTYzLDE2NywxNzMsMTc5LDE4MSwxOTEsMTkzLDE5NywxOTksMjExLDIyMywyMjcsMjI5LDIzMywyMzksMjQxLDI1MSwyNTcsMjYzLDI2OSwyNzEsMjc3LDI4MSwyODMsMjkzLDMwNywzMTEsMzEzLDMxNywzMzEsMzM3LDM0NywzNDksMzUzLDM1OSwzNjcsMzczLDM3OSwzODMsMzg5LDM5Nyw0MDEsNDA5LDQxOSw0MjEsNDMxLDQzMyw0MzksNDQzLDQ0OSw0NTcsNDYxLDQ2Myw0NjcsNDc5LDQ4Nyw0OTEsNDk5LDUwMyw1MDksNTIxLDUyMyw1NDEsNTQ3LDU1Nyw1NjMsNTY5LDU3MSw1NzcsNTg3LDU5Myw1OTksNjAxLDYwNyw2MTMsNjE3LDYxOSw2MzEsNjQxLDY0Myw2NDcsNjUzLDY1OSw2NjEsNjczLDY3Nyw2ODMsNjkxLDcwMSw3MDksNzE5LDcyNyw3MzMsNzM5LDc0Myw3NTEsNzU3LDc2MSw3NjksNzczLDc4Nyw3OTcsODA5LDgxMSw4MjEsODIzLDgyNyw4MjksODM5LDg1Myw4NTcsODU5LDg2Myw4NzcsODgxLDg4Myw4ODcsOTA3LDkxMSw5MTksOTI5LDkzNyw5NDEsOTQ3LDk1Myw5NjcsOTcxLDk3Nyw5ODMsOTkxLDk5NywxMDA5LDEwMTMsMTAxOSwxMDIxLDEwMzEsMTAzMywxMDM5LDEwNDksMTA1MSwxMDYxLDEwNjMsMTA2OSwxMDg3LDEwOTEsMTA5MywxMDk3LDExMDMsMTEwOSwxMTE3LDExMjMsMTEyOSwxMTUxLDExNTMsMTE2MywxMTcxLDExODEsMTE4NywxMTkzLDEyMDEsMTIxMywxMjE3LDEyMjMsMTIyOSwxMjMxLDEyMzcsMTI0OSwxMjU5LDEyNzcsMTI3OSwxMjgzLDEyODksMTI5MSwxMjk3LDEzMDEsMTMwMywxMzA3LDEzMTksMTMyMSwxMzI3LDEzNjEsMTM2NywxMzczLDEzODEsMTM5OSwxNDA5LDE0MjMsMTQyNywxNDI5LDE0MzMsMTQzOSwxNDQ3LDE0NTEsMTQ1MywxNDU5LDE0NzEsMTQ4MSwxNDgzLDE0ODcsMTQ4OSwxNDkzLDE0OTksMTUxMSwxNTIzLDE1MzEsMTU0MywxNTQ5LDE1NTMsMTU1OSwxNTY3LDE1NzEsMTU3OSwxNTgzLDE1OTcsMTYwMSwxNjA3LDE2MDksMTYxMywxNjE5LDE2MjEsMTYyNywxNjM3LDE2NTcsMTY2MywxNjY3LDE2NjksMTY5MywxNjk3LDE2OTksMTcwOSwxNzIxLDE3MjMsMTczMywxNzQxLDE3NDcsMTc1MywxNzU5LDE3NzcsMTc4MywxNzg3LDE3ODksMTgwMSwxODExLDE4MjMsMTgzMSwxODQ3LDE4NjEsMTg2NywxODcxLDE4NzMsMTg3NywxODc5LDE4ODksMTkwMSwxOTA3LDE5MTMsMTkzMSwxOTMzLDE5NDksMTk1MSwxOTczLDE5NzksMTk4NywxOTkzLDE5OTcsMTk5OSwyMDAzLDIwMTEsMjAxNywyMDI3LDIwMjksMjAzOSwyMDUzLDIwNjMsMjA2OSwyMDgxLDIwODMsMjA4NywyMDg5LDIwOTksMjExMSwyMTEzLDIxMjksMjEzMSwyMTM3LDIxNDEsMjE0MywyMTUzLDIxNjEsMjE3OSwyMjAzLDIyMDcsMjIxMywyMjIxLDIyMzcsMjIzOSwyMjQzLDIyNTEsMjI2NywyMjY5LDIyNzMsMjI4MSwyMjg3LDIyOTMsMjI5NywyMzA5LDIzMTEsMjMzMywyMzM5LDIzNDEsMjM0NywyMzUxLDIzNTcsMjM3MSwyMzc3LDIzODEsMjM4MywyMzg5LDIzOTMsMjM5OSwyNDExLDI0MTcsMjQyMywyNDM3LDI0NDEsMjQ0NywyNDU5LDI0NjcsMjQ3MywyNDc3LDI1MDMsMjUyMSwyNTMxLDI1MzksMjU0MywyNTQ5LDI1NTEsMjU1NywyNTc5LDI1OTEsMjU5MywyNjA5LDI2MTcsMjYyMSwyNjMzLDI2NDcsMjY1NywyNjU5LDI2NjMsMjY3MSwyNjc3LDI2ODMsMjY4NywyNjg5LDI2OTMsMjY5OSwyNzA3LDI3MTEsMjcxMywyNzE5LDI3MjksMjczMSwyNzQxLDI3NDksMjc1MywyNzY3LDI3NzcsMjc4OSwyNzkxLDI3OTcsMjgwMSwyODAzLDI4MTksMjgzMywyODM3LDI4NDMsMjg1MSwyODU3LDI4NjEsMjg3OSwyODg3LDI4OTcsMjkwMywyOTA5LDI5MTcsMjkyNywyOTM5LDI5NTMsMjk1NywyOTYzLDI5NjksMjk3MSwyOTk5XTtmdW5jdGlvbiBtKHQsZSl7aWYodDxlKXJldHVybiAwO2Zvcih2YXIgcj0wOzA9PT1NYXRoLmZsb29yKHQlZSk7KXQvPWUscisrO3JldHVybiByfWZ1bmN0aW9uIGcodCl7Zm9yKHZhciBlPVtdLHI9MDtyPGQubGVuZ3RoO3IrKyl7dmFyIG49ZFtyXTtlLnB1c2gobSh0LG4pKX1yZXR1cm4gZX1mdW5jdGlvbiB2KHQpe2Zvcih2YXIgZT1nKHQpLHI9dCxuPTA7bjxkLmxlbmd0aDtuKyspaWYoZVtuXT4wKXtyPWRbbl07YnJlYWt9cmV0dXJuIHJ9ZnVuY3Rpb24geSh0LGUpe2lmKCEodDwxfHxlPDEpKXtmb3IodmFyIHI9Zyh0KSxuPWcoZSksaT0xLGE9MDthPGQubGVuZ3RoO2ErKylpKj1NYXRoLnBvdyhkW2FdLE1hdGgubWF4KHJbYV0sblthXSkpO3JldHVybiBpfX1wLmNhbGNYbnVtcz1mdW5jdGlvbih0KXt2YXIgZSxyPVtdO2ZvcihlPTE7ZTx0O2UrKyl7dmFyIG49dGhpcy5nZXRYYXQoZS0xLDApLGk9dGhpcy5nZXRYYXQoZSwwKTtyW2UtMV09aSE9PW4mJm51bGwhPW4mJm51bGwhPWk/TWF0aC5hYnMoaS1uKTowfXZhciBhPTA7Zm9yKGU9MTtlPHQ7ZSsrKWErPXJbZS0xXTtmb3IoZT0xO2U8dDtlKyspMD09PXJbZS0xXT9yW2UtMV09MTpyW2UtMV09TWF0aC5yb3VuZChhL3JbZS0xXSk7cmV0dXJuIHJ9LHAuY2FsY1ludW1zPWZ1bmN0aW9uKHQpe3ZhciBlLHI9W107Zm9yKGU9MTtlPHQ7ZSsrKXt2YXIgbj10aGlzLmdldFlhdCgwLGUtMSksaT10aGlzLmdldFlhdCgwLGUpO3JbZS0xXT1pIT09biYmbnVsbCE9biYmbnVsbCE9aT9NYXRoLmFicyhpLW4pOjB9dmFyIGE9MDtmb3IoZT0xO2U8dDtlKyspYSs9cltlLTFdO2ZvcihlPTE7ZTx0O2UrKykwPT09cltlLTFdP3JbZS0xXT0xOnJbZS0xXT1NYXRoLnJvdW5kKGEvcltlLTFdKTtyZXR1cm4gcn07dmFyIHg9WzEsMiw0LDYsMTIsMjQsMzYsNDgsNjAsMTIwLDE4MCwyNDAsMzYwLDcyMCw4NDAsMTI2MF0sYj14WzldLF89eFsxM107ZnVuY3Rpb24gdyh0LGUscil7dmFyIG49cls4XStyWzJdKmVbMF0rcls1XSplWzFdO3JldHVybiB0WzBdPShyWzZdK3JbMF0qZVswXStyWzNdKmVbMV0pL24sdFsxXT0ocls3XStyWzFdKmVbMF0rcls0XSplWzFdKS9uLHR9ZnVuY3Rpb24gVCh0LGUscil7cmV0dXJuIGZ1bmN0aW9uKHQsZSxyLG4pe2Zvcih2YXIgaT1bMCwwXSxvPXQuc2hhcGVbMF0scz10LnNoYXBlWzFdLGw9MDtsPG87bCsrKWZvcih2YXIgYz0wO2M8cztjKyspcihpLFtsLGNdLG4pLHQuc2V0KGwsYyxhKGUsaVswXSxpWzFdKSl9KHQsZSx3LHIpLHR9ZnVuY3Rpb24gayh0LGUpe2Zvcih2YXIgcj0hMSxuPTA7bjx0Lmxlbmd0aDtuKyspaWYoZT09PXRbbl0pe3I9ITA7YnJlYWt9ITE9PT1yJiZ0LnB1c2goZSl9cC5lc3RpbWF0ZVNjYWxlPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTErZnVuY3Rpb24odCl7aWYoMCE9PXQubGVuZ3RoKXtmb3IodmFyIGU9MSxyPTA7cjx0Lmxlbmd0aDtyKyspZT15KGUsdFtyXSk7cmV0dXJuIGV9fSgwPT09ZT90aGlzLmNhbGNYbnVtcyh0KTp0aGlzLmNhbGNZbnVtcyh0KSk7cjxiOylyKj0yO2Zvcig7cj5fOylyLS0sci89dihyKSwrK3I8YiYmKHI9Xyk7dmFyIG49TWF0aC5yb3VuZChyL3QpO3JldHVybiBuPjE/bjoxfSxwLnJlZmluZUNvb3Jkcz1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy5kYXRhU2NhbGVYLHI9dGhpcy5kYXRhU2NhbGVZLG49dFswXS5zaGFwZVswXSxhPXRbMF0uc2hhcGVbMV0sbz0wfE1hdGguZmxvb3IodFswXS5zaGFwZVswXSplKzEpLHM9MHxNYXRoLmZsb29yKHRbMF0uc2hhcGVbMV0qcisxKSxsPTErbisxLGM9MSthKzEsdT1pKG5ldyBGbG9hdDMyQXJyYXkobCpjKSxbbCxjXSksZj1bMS9lLDAsMCwwLDEvciwwLDAsMCwxXSxoPTA7aDx0Lmxlbmd0aDsrK2gpe3RoaXMuc3VyZmFjZS5wYWRGaWVsZCh1LHRbaF0pO3ZhciBwPWkobmV3IEZsb2F0MzJBcnJheShvKnMpLFtvLHNdKTtUKHAsdSxmKSx0W2hdPXB9fSxwLnNldENvbnRvdXJMZXZlbHM9ZnVuY3Rpb24oKXt2YXIgdCxlLHIsbj1bW10sW10sW11dLGk9WyExLCExLCExXSxhPSExO2Zvcih0PTA7dDwzOysrdClpZih0aGlzLnNob3dDb250b3VyW3RdJiYoYT0hMCx0aGlzLmNvbnRvdXJTaXplW3RdPjAmJm51bGwhPT10aGlzLmNvbnRvdXJTdGFydFt0XSYmbnVsbCE9PXRoaXMuY29udG91ckVuZFt0XSYmdGhpcy5jb250b3VyRW5kW3RdPnRoaXMuY29udG91clN0YXJ0W3RdKSlmb3IoaVt0XT0hMCxlPXRoaXMuY29udG91clN0YXJ0W3RdO2U8dGhpcy5jb250b3VyRW5kW3RdO2UrPXRoaXMuY29udG91clNpemVbdF0pcj1lKnRoaXMuc2NlbmUuZGF0YVNjYWxlW3RdLGsoblt0XSxyKTtpZihhKXt2YXIgbz1bW10sW10sW11dO2Zvcih0PTA7dDwzOysrdCl0aGlzLnNob3dDb250b3VyW3RdJiYob1t0XT1pW3RdP25bdF06dGhpcy5zY2VuZS5jb250b3VyTGV2ZWxzW3RdKTt0aGlzLnN1cmZhY2UudXBkYXRlKHtsZXZlbHM6b30pfX0scC51cGRhdGU9ZnVuY3Rpb24odCl7dmFyIGUscixuLGEsbD10aGlzLnNjZW5lLGg9bC5mdWxsU2NlbmVMYXlvdXQscD10aGlzLnN1cmZhY2UsZD1jKHQpLG09bC5kYXRhU2NhbGUsZz10LnpbMF0ubGVuZ3RoLHY9dC5feWxlbmd0aCx5PWwuY29udG91ckxldmVsczt0aGlzLmRhdGE9dDt2YXIgeD1bXTtmb3IoZT0wO2U8MztlKyspZm9yKHhbZV09W10scj0wO3I8ZztyKyspeFtlXVtyXT1bXTtmb3Iocj0wO3I8ZztyKyspZm9yKG49MDtuPHY7bisrKXhbMF1bcl1bbl09dGhpcy5nZXRYYXQocixuLHQueGNhbGVuZGFyLGgueGF4aXMpLHhbMV1bcl1bbl09dGhpcy5nZXRZYXQocixuLHQueWNhbGVuZGFyLGgueWF4aXMpLHhbMl1bcl1bbl09dGhpcy5nZXRaYXQocixuLHQuemNhbGVuZGFyLGguemF4aXMpO2lmKHQuY29ubmVjdGdhcHMpZm9yKHQuX2VtcHR5cG9pbnRzPXMoeFsyXSksbyh4WzJdLHQuX2VtcHR5cG9pbnRzKSx0Ll9pbnRlcnBvbGF0ZWRaPVtdLHI9MDtyPGc7cisrKWZvcih0Ll9pbnRlcnBvbGF0ZWRaW3JdPVtdLG49MDtuPHY7bisrKXQuX2ludGVycG9sYXRlZFpbcl1bbl09eFsyXVtyXVtuXTtmb3IoZT0wO2U8MztlKyspZm9yKHI9MDtyPGc7cisrKWZvcihuPTA7bjx2O24rKyludWxsPT0oYT14W2VdW3JdW25dKT94W2VdW3JdW25dPU5hTjphPXhbZV1bcl1bbl0qPW1bZV07Zm9yKGU9MDtlPDM7ZSsrKWZvcihyPTA7cjxnO3IrKylmb3Iobj0wO248djtuKyspbnVsbCE9KGE9eFtlXVtyXVtuXSkmJih0aGlzLm1pblZhbHVlc1tlXT5hJiYodGhpcy5taW5WYWx1ZXNbZV09YSksdGhpcy5tYXhWYWx1ZXNbZV08YSYmKHRoaXMubWF4VmFsdWVzW2VdPWEpKTtmb3IoZT0wO2U8MztlKyspdGhpcy5vYmplY3RPZmZzZXRbZV09LjUqKHRoaXMubWluVmFsdWVzW2VdK3RoaXMubWF4VmFsdWVzW2VdKTtmb3IoZT0wO2U8MztlKyspZm9yKHI9MDtyPGc7cisrKWZvcihuPTA7bjx2O24rKyludWxsIT0oYT14W2VdW3JdW25dKSYmKHhbZV1bcl1bbl0tPXRoaXMub2JqZWN0T2Zmc2V0W2VdKTt2YXIgYj1baShuZXcgRmxvYXQzMkFycmF5KGcqdiksW2csdl0pLGkobmV3IEZsb2F0MzJBcnJheShnKnYpLFtnLHZdKSxpKG5ldyBGbG9hdDMyQXJyYXkoZyp2KSxbZyx2XSldO2ZvcihlPTA7ZTwzO2UrKylmb3Iocj0wO3I8ZztyKyspZm9yKG49MDtuPHY7bisrKWJbZV0uc2V0KHIsbix4W2VdW3JdW25dKTt4PVtdO3ZhciB3PXtjb2xvcm1hcDpkLGxldmVsczpbW10sW10sW11dLHNob3dDb250b3VyOlshMCwhMCwhMF0sc2hvd1N1cmZhY2U6IXQuaGlkZXN1cmZhY2UsY29udG91clByb2plY3Q6W1shMSwhMSwhMV0sWyExLCExLCExXSxbITEsITEsITFdXSxjb250b3VyV2lkdGg6WzEsMSwxXSxjb250b3VyQ29sb3I6W1sxLDEsMSwxXSxbMSwxLDEsMV0sWzEsMSwxLDFdXSxjb250b3VyVGludDpbMSwxLDFdLGR5bmFtaWNDb2xvcjpbWzEsMSwxLDFdLFsxLDEsMSwxXSxbMSwxLDEsMV1dLGR5bmFtaWNXaWR0aDpbMSwxLDFdLGR5bmFtaWNUaW50OlsxLDEsMV0sb3BhY2l0eXNjYWxlOnQub3BhY2l0eXNjYWxlLG9wYWNpdHk6dC5vcGFjaXR5fSxUPWYodCk7aWYody5pbnRlbnNpdHlCb3VuZHM9W1QubWluLFQubWF4XSx0LnN1cmZhY2Vjb2xvcil7dmFyIGs9aShuZXcgRmxvYXQzMkFycmF5KGcqdiksW2csdl0pO2ZvcihyPTA7cjxnO3IrKylmb3Iobj0wO248djtuKyspay5zZXQocixuLHQuc3VyZmFjZWNvbG9yW25dW3JdKTtiLnB1c2goayl9ZWxzZSB3LmludGVuc2l0eUJvdW5kc1swXSo9bVsyXSx3LmludGVuc2l0eUJvdW5kc1sxXSo9bVsyXTsoXzxiWzBdLnNoYXBlWzBdfHxfPGJbMF0uc2hhcGVbMV0pJiYodGhpcy5yZWZpbmVEYXRhPSExKSwhMD09PXRoaXMucmVmaW5lRGF0YSYmKHRoaXMuZGF0YVNjYWxlWD10aGlzLmVzdGltYXRlU2NhbGUoYlswXS5zaGFwZVswXSwwKSx0aGlzLmRhdGFTY2FsZVk9dGhpcy5lc3RpbWF0ZVNjYWxlKGJbMF0uc2hhcGVbMV0sMSksMT09PXRoaXMuZGF0YVNjYWxlWCYmMT09PXRoaXMuZGF0YVNjYWxlWXx8dGhpcy5yZWZpbmVDb29yZHMoYikpLHQuc3VyZmFjZWNvbG9yJiYody5pbnRlbnNpdHk9Yi5wb3AoKSk7dmFyIEE9WyEwLCEwLCEwXSxNPVsieCIsInkiLCJ6Il07Zm9yKGU9MDtlPDM7KytlKXt2YXIgUz10LmNvbnRvdXJzW01bZV1dO0FbZV09Uy5oaWdobGlnaHQsdy5zaG93Q29udG91cltlXT1TLnNob3d8fFMuaGlnaGxpZ2h0LHcuc2hvd0NvbnRvdXJbZV0mJih3LmNvbnRvdXJQcm9qZWN0W2VdPVtTLnByb2plY3QueCxTLnByb2plY3QueSxTLnByb2plY3Quel0sUy5zaG93Pyh0aGlzLnNob3dDb250b3VyW2VdPSEwLHcubGV2ZWxzW2VdPXlbZV0scC5oaWdobGlnaHRDb2xvcltlXT13LmNvbnRvdXJDb2xvcltlXT11KFMuY29sb3IpLFMudXNlY29sb3JtYXA/cC5oaWdobGlnaHRUaW50W2VdPXcuY29udG91clRpbnRbZV09MDpwLmhpZ2hsaWdodFRpbnRbZV09dy5jb250b3VyVGludFtlXT0xLHcuY29udG91cldpZHRoW2VdPVMud2lkdGgsdGhpcy5jb250b3VyU3RhcnRbZV09Uy5zdGFydCx0aGlzLmNvbnRvdXJFbmRbZV09Uy5lbmQsdGhpcy5jb250b3VyU2l6ZVtlXT1TLnNpemUpOih0aGlzLnNob3dDb250b3VyW2VdPSExLHRoaXMuY29udG91clN0YXJ0W2VdPW51bGwsdGhpcy5jb250b3VyRW5kW2VdPW51bGwsdGhpcy5jb250b3VyU2l6ZVtlXT0wKSxTLmhpZ2hsaWdodCYmKHcuZHluYW1pY0NvbG9yW2VdPXUoUy5oaWdobGlnaHRjb2xvciksdy5keW5hbWljV2lkdGhbZV09Uy5oaWdobGlnaHR3aWR0aCkpfShmdW5jdGlvbih0KXt2YXIgZT10WzBdLnJnYixyPXRbdC5sZW5ndGgtMV0ucmdiO3JldHVybiBlWzBdPT09clswXSYmZVsxXT09PXJbMV0mJmVbMl09PT1yWzJdJiZlWzNdPT09clszXX0pKGQpJiYody52ZXJ0ZXhDb2xvcj0hMCksdy5vYmplY3RPZmZzZXQ9dGhpcy5vYmplY3RPZmZzZXQsdy5jb29yZHM9YixwLnVwZGF0ZSh3KSxwLnZpc2libGU9dC52aXNpYmxlLHAuZW5hYmxlRHluYW1pYz1BLHAuZW5hYmxlSGlnaGxpZ2h0PUEscC5zbmFwVG9EYXRhPSEwLCJsaWdodGluZyJpbiB0JiYocC5hbWJpZW50TGlnaHQ9dC5saWdodGluZy5hbWJpZW50LHAuZGlmZnVzZUxpZ2h0PXQubGlnaHRpbmcuZGlmZnVzZSxwLnNwZWN1bGFyTGlnaHQ9dC5saWdodGluZy5zcGVjdWxhcixwLnJvdWdobmVzcz10LmxpZ2h0aW5nLnJvdWdobmVzcyxwLmZyZXNuZWw9dC5saWdodGluZy5mcmVzbmVsKSwibGlnaHRwb3NpdGlvbiJpbiB0JiYocC5saWdodFBvc2l0aW9uPVt0LmxpZ2h0cG9zaXRpb24ueCx0LmxpZ2h0cG9zaXRpb24ueSx0LmxpZ2h0cG9zaXRpb24uel0pfSxwLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLnNjZW5lLmdscGxvdC5yZW1vdmUodGhpcy5zdXJmYWNlKSx0aGlzLnN1cmZhY2UuZGlzcG9zZSgpfSxlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10LmdscGxvdC5nbCxpPW4oe2dsOnJ9KSxhPW5ldyBoKHQsaSxlLnVpZCk7cmV0dXJuIGkuX3RyYWNlPWEsYS51cGRhdGUoZSksdC5nbHBsb3QuYWRkKGkpLGF9fSx7Ii4uLy4uLy4uL3N0YWNrZ2xfbW9kdWxlcyI6MTEzMywiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIjozNzksIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9saWIvZ2xfZm9ybWF0X2NvbG9yIjo1MTEsIi4uLy4uL2xpYi9zdHIycmdiYXJyYXkiOjU0MCwiLi4vaGVhdG1hcC9maW5kX2VtcHRpZXMiOjgwNywiLi4vaGVhdG1hcC9pbnRlcnAyZCI6ODEwfV0sMTA3MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9yZWdpc3RyeSIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiKSxvPXQoIi4vYXR0cmlidXRlcyIpO2Z1bmN0aW9uIHModCxlLHIsbil7dmFyIGk9bigib3BhY2l0eXNjYWxlIik7Im1heCI9PT1pP2Uub3BhY2l0eXNjYWxlPVtbMCwuMV0sWzEsMV1dOiJtaW4iPT09aT9lLm9wYWNpdHlzY2FsZT1bWzAsMV0sWzEsLjFdXToiZXh0cmVtZXMiPT09aT9lLm9wYWNpdHlzY2FsZT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1bXSxuPTA7bjwzMjtuKyspe3ZhciBpPW4vMzEsYT1lKygxLWUpKigxLU1hdGgucG93KE1hdGguc2luKHQqaSpNYXRoLlBJKSwyKSk7ci5wdXNoKFtpLE1hdGgubWF4KDAsTWF0aC5taW4oMSxhKSldKX1yZXR1cm4gcn0oMSwuMSk6ZnVuY3Rpb24odCl7dmFyIGU9MDtpZighQXJyYXkuaXNBcnJheSh0KXx8dC5sZW5ndGg8MilyZXR1cm4hMTtpZighdFswXXx8IXRbdC5sZW5ndGgtMV0pcmV0dXJuITE7aWYoMCE9K3RbMF1bMF18fDEhPSt0W3QubGVuZ3RoLTFdWzBdKXJldHVybiExO2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgbj10W3JdO2lmKDIhPT1uLmxlbmd0aHx8K25bMF08ZSlyZXR1cm4hMTtlPStuWzBdfXJldHVybiEwfShpKXx8KGUub3BhY2l0eXNjYWxlPXZvaWQgMCl9ZnVuY3Rpb24gbCh0LGUscil7ZSBpbiB0JiYhKHIgaW4gdCkmJih0W3JdPXRbZV0pfWUuZXhwb3J0cz17c3VwcGx5RGVmYXVsdHM6ZnVuY3Rpb24odCxlLHIsYyl7dmFyIHUsZjtmdW5jdGlvbiBoKHIsbil7cmV0dXJuIGkuY29lcmNlKHQsZSxvLHIsbil9dmFyIHA9aCgieCIpLGQ9aCgieSIpLG09aCgieiIpO2lmKCFtfHwhbS5sZW5ndGh8fHAmJnAubGVuZ3RoPDF8fGQmJmQubGVuZ3RoPDEpZS52aXNpYmxlPSExO2Vsc2V7ZS5feGxlbmd0aD1BcnJheS5pc0FycmF5KHApJiZpLmlzQXJyYXlPclR5cGVkQXJyYXkocFswXSk/bS5sZW5ndGg6bVswXS5sZW5ndGgsZS5feWxlbmd0aD1tLmxlbmd0aCxuLmdldENvbXBvbmVudE1ldGhvZCgiY2FsZW5kYXJzIiwiaGFuZGxlVHJhY2VEZWZhdWx0cyIpKHQsZSxbIngiLCJ5IiwieiJdLGMpLGgoInRleHQiKSxoKCJob3ZlcnRleHQiKSxoKCJob3ZlcnRlbXBsYXRlIiksaCgieGhvdmVyZm9ybWF0IiksaCgieWhvdmVyZm9ybWF0IiksaCgiemhvdmVyZm9ybWF0IiksWyJsaWdodGluZy5hbWJpZW50IiwibGlnaHRpbmcuZGlmZnVzZSIsImxpZ2h0aW5nLnNwZWN1bGFyIiwibGlnaHRpbmcucm91Z2huZXNzIiwibGlnaHRpbmcuZnJlc25lbCIsImxpZ2h0cG9zaXRpb24ueCIsImxpZ2h0cG9zaXRpb24ueSIsImxpZ2h0cG9zaXRpb24ueiIsImhpZGVzdXJmYWNlIiwiY29ubmVjdGdhcHMiLCJvcGFjaXR5Il0uZm9yRWFjaCgoZnVuY3Rpb24odCl7aCh0KX0pKTt2YXIgZz1oKCJzdXJmYWNlY29sb3IiKSx2PVsieCIsInkiLCJ6Il07Zm9yKHU9MDt1PDM7Kyt1KXt2YXIgeT0iY29udG91cnMuIit2W3VdLHg9aCh5KyIuc2hvdyIpLGI9aCh5KyIuaGlnaGxpZ2h0Iik7aWYoeHx8Yilmb3IoZj0wO2Y8MzsrK2YpaCh5KyIucHJvamVjdC4iK3ZbZl0pO3gmJihoKHkrIi5jb2xvciIpLGgoeSsiLndpZHRoIiksaCh5KyIudXNlY29sb3JtYXAiKSksYiYmKGgoeSsiLmhpZ2hsaWdodGNvbG9yIiksaCh5KyIuaGlnaGxpZ2h0d2lkdGgiKSksaCh5KyIuc3RhcnQiKSxoKHkrIi5lbmQiKSxoKHkrIi5zaXplIil9Z3x8KGwodCwiem1pbiIsImNtaW4iKSxsKHQsInptYXgiLCJjbWF4IiksbCh0LCJ6YXV0byIsImNhdXRvIikpLGEodCxlLGMsaCx7cHJlZml4OiIiLGNMZXR0ZXI6ImMifSkscyh0LGUsYyxoKSxlLl9sZW5ndGg9bnVsbH19LG9wYWNpdHlzY2FsZURlZmF1bHRzOnN9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9kZWZhdWx0cyI6Mzc3LCIuLi8uLi9saWIiOjUxNSwiLi4vLi4vcmVnaXN0cnkiOjY0NywiLi9hdHRyaWJ1dGVzIjoxMDcwfV0sMTA3NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2F0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLnN1cHBseURlZmF1bHRzLGNvbG9yYmFyOnttaW46ImNtaW4iLG1heDoiY21heCJ9LGNhbGM6dCgiLi9jYWxjIikscGxvdDp0KCIuL2NvbnZlcnQiKSxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToic3VyZmFjZSIsYmFzZVBsb3RNb2R1bGU6dCgiLi4vLi4vcGxvdHMvZ2wzZCIpLGNhdGVnb3JpZXM6WyJnbDNkIiwiMmRNYXAiLCJzaG93TGVnZW5kIl0sbWV0YTp7fX19LHsiLi4vLi4vcGxvdHMvZ2wzZCI6NjA3LCIuL2F0dHJpYnV0ZXMiOjEwNzAsIi4vY2FsYyI6MTA3MSwiLi9jb252ZXJ0IjoxMDcyLCIuL2RlZmF1bHRzIjoxMDczfV0sMTA3NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2Fubm90YXRpb25zL2F0dHJpYnV0ZXMiKSxpPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LGE9dCgiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyIpLm92ZXJyaWRlQWxsLG89dCgiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIikscz10KCIuLi8uLi9wbG90cy9kb21haW4iKS5hdHRyaWJ1dGVzLGw9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfZm9ybWF0X2F0dHJpYnV0ZXMiKS5kZXNjcmlwdGlvbk9ubHlOdW1iZXJzOyhlLmV4cG9ydHM9YSh7ZG9tYWluOnMoe25hbWU6InRhYmxlIix0cmFjZTohMH0pLGNvbHVtbndpZHRoOnt2YWxUeXBlOiJudW1iZXIiLGFycmF5T2s6ITAsZGZsdDpudWxsfSxjb2x1bW5vcmRlcjp7dmFsVHlwZToiZGF0YV9hcnJheSJ9LGhlYWRlcjp7dmFsdWVzOnt2YWxUeXBlOiJkYXRhX2FycmF5IixkZmx0OltdfSxmb3JtYXQ6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGRmbHQ6W10sZGVzY3JpcHRpb246bCgiY2VsbCB2YWx1ZSIpfSxwcmVmaXg6e3ZhbFR5cGU6InN0cmluZyIsYXJyYXlPazohMCxkZmx0Om51bGx9LHN1ZmZpeDp7dmFsVHlwZToic3RyaW5nIixhcnJheU9rOiEwLGRmbHQ6bnVsbH0saGVpZ2h0Ont2YWxUeXBlOiJudW1iZXIiLGRmbHQ6Mjh9LGFsaWduOmkoe30sbi5hbGlnbix7YXJyYXlPazohMH0pLGxpbmU6e3dpZHRoOnt2YWxUeXBlOiJudW1iZXIiLGFycmF5T2s6ITAsZGZsdDoxfSxjb2xvcjp7dmFsVHlwZToiY29sb3IiLGFycmF5T2s6ITAsZGZsdDoiZ3JleSJ9fSxmaWxsOntjb2xvcjp7dmFsVHlwZToiY29sb3IiLGFycmF5T2s6ITAsZGZsdDoid2hpdGUifX0sZm9udDppKHt9LG8oe2FycmF5T2s6ITB9KSl9LGNlbGxzOnt2YWx1ZXM6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGRmbHQ6W119LGZvcm1hdDp7dmFsVHlwZToiZGF0YV9hcnJheSIsZGZsdDpbXSxkZXNjcmlwdGlvbjpsKCJjZWxsIHZhbHVlIil9LHByZWZpeDp7dmFsVHlwZToic3RyaW5nIixhcnJheU9rOiEwLGRmbHQ6bnVsbH0sc3VmZml4Ont2YWxUeXBlOiJzdHJpbmciLGFycmF5T2s6ITAsZGZsdDpudWxsfSxoZWlnaHQ6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDoyMH0sYWxpZ246aSh7fSxuLmFsaWduLHthcnJheU9rOiEwfSksbGluZTp7d2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsYXJyYXlPazohMCxkZmx0OjF9LGNvbG9yOnt2YWxUeXBlOiJjb2xvciIsYXJyYXlPazohMCxkZmx0OiJncmV5In19LGZpbGw6e2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsYXJyYXlPazohMCxkZmx0OiJ3aGl0ZSJ9fSxmb250Omkoe30sbyh7YXJyYXlPazohMH0pKX19LCJjYWxjIiwiZnJvbS1yb290IikpLnRyYW5zZm9ybXM9dm9pZCAwfSx7Ii4uLy4uL2NvbXBvbmVudHMvYW5ub3RhdGlvbnMvYXR0cmlidXRlcyI6MzUwLCIuLi8uLi9saWIvZXh0ZW5kIjo1MDUsIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiOjU0OCwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfZm9ybWF0X2F0dHJpYnV0ZXMiOjU2OSwiLi4vLi4vcGxvdHMvZG9tYWluIjo1OTMsIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyI6NTk0fV0sMTA3NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9nZXRfZGF0YSIpLmdldE1vZHVsZUNhbGNEYXRhLGk9dCgiLi9wbG90Iik7ci5uYW1lPSJ0YWJsZSIsci5wbG90PWZ1bmN0aW9uKHQpe3ZhciBlPW4odC5jYWxjZGF0YSwidGFibGUiKVswXTtlLmxlbmd0aCYmaSh0LGUpfSxyLmNsZWFuPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPW4uX2hhcyYmbi5faGFzKCJ0YWJsZSIpLGE9ZS5faGFzJiZlLl9oYXMoInRhYmxlIik7aSYmIWEmJm4uX3BhcGVyZGl2LnNlbGVjdEFsbCgiLnRhYmxlIikucmVtb3ZlKCl9fSx7Ii4uLy4uL3Bsb3RzL2dldF9kYXRhIjo2MDIsIi4vcGxvdCI6MTA4M31dLDEwNzc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliL2d1cCIpLndyYXA7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7cmV0dXJuIG4oe30pfX0seyIuLi8uLi9saWIvZ3VwIjo1MTJ9XSwxMDc4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17Y2VsbFBhZDo4LGNvbHVtbkV4dGVudE9mZnNldDoxMCxjb2x1bW5UaXRsZU9mZnNldDoyOCxlbXB0eUhlYWRlckhlaWdodDoxNixsYXRleENoZWNrOi9eXCQuKlwkJC8sZ29sZGVuUmF0aW86MS42MTgsbGluZUJyZWFrZXI6Ijxicj4iLG1heERpbWVuc2lvbkNvdW50OjYwLG92ZXJkcmFnOjQ1LHJlbGVhc2VUcmFuc2l0aW9uRHVyYXRpb246MTIwLHJlbGVhc2VUcmFuc2l0aW9uRWFzZToiY3ViaWMtb3V0IixzY3JvbGxiYXJDYXB0dXJlV2lkdGg6MTgsc2Nyb2xsYmFySGlkZURlbGF5OjFlMyxzY3JvbGxiYXJIaWRlRHVyYXRpb246MWUzLHNjcm9sbGJhck9mZnNldDo1LHNjcm9sbGJhcldpZHRoOjgsdHJhbnNpdGlvbkR1cmF0aW9uOjEwMCx0cmFuc2l0aW9uRWFzZToiY3ViaWMtb3V0Iix1cGxpZnQ6NSx3cmFwU3BhY2VyOiIgIix3cmFwU3BsaXRDaGFyYWN0ZXI6IiAiLGNuOnt0YWJsZToidGFibGUiLHRhYmxlQ29udHJvbFZpZXc6InRhYmxlLWNvbnRyb2wtdmlldyIsc2Nyb2xsQmFja2dyb3VuZDoic2Nyb2xsLWJhY2tncm91bmQiLHlDb2x1bW46InktY29sdW1uIixjb2x1bW5CbG9jazoiY29sdW1uLWJsb2NrIixzY3JvbGxBcmVhQ2xpcDoic2Nyb2xsLWFyZWEtY2xpcCIsc2Nyb2xsQXJlYUNsaXBSZWN0OiJzY3JvbGwtYXJlYS1jbGlwLXJlY3QiLGNvbHVtbkJvdW5kYXJ5OiJjb2x1bW4tYm91bmRhcnkiLGNvbHVtbkJvdW5kYXJ5Q2xpcHBhdGg6ImNvbHVtbi1ib3VuZGFyeS1jbGlwcGF0aCIsY29sdW1uQm91bmRhcnlSZWN0OiJjb2x1bW4tYm91bmRhcnktcmVjdCIsY29sdW1uQ2VsbHM6ImNvbHVtbi1jZWxscyIsY29sdW1uQ2VsbDoiY29sdW1uLWNlbGwiLGNlbGxSZWN0OiJjZWxsLXJlY3QiLGNlbGxUZXh0OiJjZWxsLXRleHQiLGNlbGxUZXh0SG9sZGVyOiJjZWxsLXRleHQtaG9sZGVyIixzY3JvbGxiYXJLaXQ6InNjcm9sbGJhci1raXQiLHNjcm9sbGJhcjoic2Nyb2xsYmFyIixzY3JvbGxiYXJTbGlkZXI6InNjcm9sbGJhci1zbGlkZXIiLHNjcm9sbGJhckdseXBoOiJzY3JvbGxiYXItZ2x5cGgiLHNjcm9sbGJhckNhcHR1cmVab25lOiJzY3JvbGxiYXItY2FwdHVyZS16b25lIn19fSx7fV0sMTA3OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2NvbnN0YW50cyIpLGk9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsYT10KCJmYXN0LWlzbnVtZXJpYyIpO2Z1bmN0aW9uIG8odCl7aWYoQXJyYXkuaXNBcnJheSh0KSl7Zm9yKHZhciBlPTAscj0wO3I8dC5sZW5ndGg7cisrKWU9TWF0aC5tYXgoZSxvKHRbcl0pKTtyZXR1cm4gZX1yZXR1cm4gdH1mdW5jdGlvbiBzKHQsZSl7cmV0dXJuIHQrZX1mdW5jdGlvbiBsKHQpe3ZhciBlLHI9dC5zbGljZSgpLG49MS8wLGk9MDtmb3IoZT0wO2U8ci5sZW5ndGg7ZSsrKUFycmF5LmlzQXJyYXkocltlXSl8fChyW2VdPVtyW2VdXSksbj1NYXRoLm1pbihuLHJbZV0ubGVuZ3RoKSxpPU1hdGgubWF4KGkscltlXS5sZW5ndGgpO2lmKG4hPT1pKWZvcihlPTA7ZTxyLmxlbmd0aDtlKyspe3ZhciBhPWktcltlXS5sZW5ndGg7YSYmKHJbZV09cltlXS5jb25jYXQoYyhhKSkpfXJldHVybiByfWZ1bmN0aW9uIGModCl7Zm9yKHZhciBlPW5ldyBBcnJheSh0KSxyPTA7cjx0O3IrKyllW3JdPSIiO3JldHVybiBlfWZ1bmN0aW9uIHUodCl7cmV0dXJuIHQuY2FsY2RhdGEuY29sdW1ucy5yZWR1Y2UoKGZ1bmN0aW9uKGUscil7cmV0dXJuIHIueEluZGV4PHQueEluZGV4P2Urci5jb2x1bW5XaWR0aDplfSksMCl9ZnVuY3Rpb24gZih0LGUpe3JldHVybiBPYmplY3Qua2V5cyh0KS5tYXAoKGZ1bmN0aW9uKHIpe3JldHVybiBpKHt9LHRbcl0se2F1eGlsaWFyeUJsb2NrczplfSl9KSl9ZnVuY3Rpb24gaCh0LGUpe2Zvcih2YXIgcixuPXt9LGk9MCxhPTAsbz17Zmlyc3RSb3dJbmRleDpudWxsLGxhc3RSb3dJbmRleDpudWxsLHJvd3M6W119LHM9MCxsPTAsYz0wO2M8dC5sZW5ndGg7YysrKXI9dFtjXSxvLnJvd3MucHVzaCh7cm93SW5kZXg6Yyxyb3dIZWlnaHQ6cn0pLCgoYSs9cik+PWV8fGM9PT10Lmxlbmd0aC0xKSYmKG5baV09byxvLmtleT1sKyssby5maXJzdFJvd0luZGV4PXMsby5sYXN0Um93SW5kZXg9YyxvPXtmaXJzdFJvd0luZGV4Om51bGwsbGFzdFJvd0luZGV4Om51bGwscm93czpbXX0saSs9YSxzPWMrMSxhPTApO3JldHVybiBufWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPWwoZS5jZWxscy52YWx1ZXMpLHA9ZnVuY3Rpb24odCl7cmV0dXJuIHQuc2xpY2UoZS5oZWFkZXIudmFsdWVzLmxlbmd0aCx0Lmxlbmd0aCl9LGQ9bChlLmhlYWRlci52YWx1ZXMpO2QubGVuZ3RoJiYhZFswXS5sZW5ndGgmJihkWzBdPVsiIl0sZD1sKGQpKTt2YXIgbT1kLmNvbmNhdChwKHIpLm1hcCgoZnVuY3Rpb24oKXtyZXR1cm4gYygoZFswXXx8WyIiXSkubGVuZ3RoKX0pKSksZz1lLmRvbWFpbix2PU1hdGguZmxvb3IodC5fZnVsbExheW91dC5fc2l6ZS53KihnLnhbMV0tZy54WzBdKSkseT1NYXRoLmZsb29yKHQuX2Z1bGxMYXlvdXQuX3NpemUuaCooZy55WzFdLWcueVswXSkpLHg9ZS5oZWFkZXIudmFsdWVzLmxlbmd0aD9tWzBdLm1hcCgoZnVuY3Rpb24oKXtyZXR1cm4gZS5oZWFkZXIuaGVpZ2h0fSkpOltuLmVtcHR5SGVhZGVySGVpZ2h0XSxiPXIubGVuZ3RoP3JbMF0ubWFwKChmdW5jdGlvbigpe3JldHVybiBlLmNlbGxzLmhlaWdodH0pKTpbXSxfPXgucmVkdWNlKHMsMCksdz1oKGIseS1fK24udXBsaWZ0KSxUPWYoaCh4LF8pLFtdKSxrPWYodyxUKSxBPXt9LE09ZS5fZnVsbElucHV0LmNvbHVtbm9yZGVyLmNvbmNhdChwKHIubWFwKChmdW5jdGlvbih0LGUpe3JldHVybiBlfSkpKSksUz1tLm1hcCgoZnVuY3Rpb24odCxyKXt2YXIgbj1BcnJheS5pc0FycmF5KGUuY29sdW1ud2lkdGgpP2UuY29sdW1ud2lkdGhbTWF0aC5taW4ocixlLmNvbHVtbndpZHRoLmxlbmd0aC0xKV06ZS5jb2x1bW53aWR0aDtyZXR1cm4gYShuKT9OdW1iZXIobik6MX0pKSxFPVMucmVkdWNlKHMsMCk7Uz1TLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQvRSp2fSkpO3ZhciBMPU1hdGgubWF4KG8oZS5oZWFkZXIubGluZS53aWR0aCksbyhlLmNlbGxzLmxpbmUud2lkdGgpKSxDPXtrZXk6ZS51aWQrdC5fY29udGV4dC5zdGF0aWNQbG90LHRyYW5zbGF0ZVg6Zy54WzBdKnQuX2Z1bGxMYXlvdXQuX3NpemUudyx0cmFuc2xhdGVZOnQuX2Z1bGxMYXlvdXQuX3NpemUuaCooMS1nLnlbMV0pLHNpemU6dC5fZnVsbExheW91dC5fc2l6ZSx3aWR0aDp2LG1heExpbmVXaWR0aDpMLGhlaWdodDp5LGNvbHVtbk9yZGVyOk0sZ3JvdXBIZWlnaHQ6eSxyb3dCbG9ja3M6ayxoZWFkZXJSb3dCbG9ja3M6VCxzY3JvbGxZOjAsY2VsbHM6aSh7fSxlLmNlbGxzLHt2YWx1ZXM6cn0pLGhlYWRlckNlbGxzOmkoe30sZS5oZWFkZXIse3ZhbHVlczptfSksZ2RDb2x1bW5zOm0ubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdFswXX0pKSxnZENvbHVtbnNPcmlnaW5hbE9yZGVyOm0ubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdFswXX0pKSxwcmV2UGFnZXM6WzAsMF0sc2Nyb2xsYmFyU3RhdGU6e3Njcm9sbGJhclNjcm9sbEluUHJvZ3Jlc3M6ITF9LGNvbHVtbnM6bS5tYXAoKGZ1bmN0aW9uKHQsZSl7dmFyIHI9QVt0XTtyZXR1cm4gQVt0XT0ocnx8MCkrMSx7a2V5OnQrIl9fIitBW3RdLGxhYmVsOnQsc3BlY0luZGV4OmUseEluZGV4Ok1bZV0seFNjYWxlOnUseDp2b2lkIDAsY2FsY2RhdGE6dm9pZCAwLGNvbHVtbldpZHRoOlNbZV19fSkpfTtyZXR1cm4gQy5jb2x1bW5zLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuY2FsY2RhdGE9Qyx0Lng9dSh0KX0pKSxDfX0seyIuLi8uLi9saWIvZXh0ZW5kIjo1MDUsIi4vY29uc3RhbnRzIjoxMDc4LCJmYXN0LWlzbnVtZXJpYyI6MTkwfV0sMTA4MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdDtyLnNwbGl0VG9QYW5lbHM9ZnVuY3Rpb24odCl7dmFyIGU9WzAsMF0scj1uKHt9LHQse2tleToiaGVhZGVyIix0eXBlOiJoZWFkZXIiLHBhZ2U6MCxwcmV2UGFnZXM6ZSxjdXJyZW50UmVwYWludDpbbnVsbCxudWxsXSxkcmFnSGFuZGxlOiEwLHZhbHVlczp0LmNhbGNkYXRhLmhlYWRlckNlbGxzLnZhbHVlc1t0LnNwZWNJbmRleF0scm93QmxvY2tzOnQuY2FsY2RhdGEuaGVhZGVyUm93QmxvY2tzLGNhbGNkYXRhOm4oe30sdC5jYWxjZGF0YSx7Y2VsbHM6dC5jYWxjZGF0YS5oZWFkZXJDZWxsc30pfSk7cmV0dXJuW24oe30sdCx7a2V5OiJjZWxsczEiLHR5cGU6ImNlbGxzIixwYWdlOjAscHJldlBhZ2VzOmUsY3VycmVudFJlcGFpbnQ6W251bGwsbnVsbF0sZHJhZ0hhbmRsZTohMSx2YWx1ZXM6dC5jYWxjZGF0YS5jZWxscy52YWx1ZXNbdC5zcGVjSW5kZXhdLHJvd0Jsb2Nrczp0LmNhbGNkYXRhLnJvd0Jsb2Nrc30pLG4oe30sdCx7a2V5OiJjZWxsczIiLHR5cGU6ImNlbGxzIixwYWdlOjEscHJldlBhZ2VzOmUsY3VycmVudFJlcGFpbnQ6W251bGwsbnVsbF0sZHJhZ0hhbmRsZTohMSx2YWx1ZXM6dC5jYWxjZGF0YS5jZWxscy52YWx1ZXNbdC5zcGVjSW5kZXhdLHJvd0Jsb2Nrczp0LmNhbGNkYXRhLnJvd0Jsb2Nrc30pLHJdfSxyLnNwbGl0VG9DZWxscz1mdW5jdGlvbih0KXt2YXIgZT1mdW5jdGlvbih0KXt2YXIgZT10LnJvd0Jsb2Nrc1t0LnBhZ2VdLHI9ZT9lLnJvd3NbMF0ucm93SW5kZXg6MCxuPWU/citlLnJvd3MubGVuZ3RoOjA7cmV0dXJuW3Isbl19KHQpO3JldHVybih0LnZhbHVlc3x8W10pLnNsaWNlKGVbMF0sZVsxXSkubWFwKChmdW5jdGlvbihyLG4pe3JldHVybntrZXlXaXRoaW5CbG9jazpuKygic3RyaW5nIj09dHlwZW9mIHImJnIubWF0Y2goL1s8JCY+IF0vKT8iX2tleWJ1c3Rlcl8iK01hdGgucmFuZG9tKCk6IiIpLGtleTplWzBdK24sY29sdW1uOnQsY2FsY2RhdGE6dC5jYWxjZGF0YSxwYWdlOnQucGFnZSxyb3dCbG9ja3M6dC5yb3dCbG9ja3MsdmFsdWU6cn19KSl9fSx7Ii4uLy4uL2xpYi9leHRlbmQiOjUwNX1dLDEwODE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuL2F0dHJpYnV0ZXMiKSxhPXQoIi4uLy4uL3Bsb3RzL2RvbWFpbiIpLmRlZmF1bHRzO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixvKXtmdW5jdGlvbiBzKHIsYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxpLHIsYSl9YShlLG8scykscygiY29sdW1ud2lkdGgiKSxzKCJoZWFkZXIudmFsdWVzIikscygiaGVhZGVyLmZvcm1hdCIpLHMoImhlYWRlci5hbGlnbiIpLHMoImhlYWRlci5wcmVmaXgiKSxzKCJoZWFkZXIuc3VmZml4IikscygiaGVhZGVyLmhlaWdodCIpLHMoImhlYWRlci5saW5lLndpZHRoIikscygiaGVhZGVyLmxpbmUuY29sb3IiKSxzKCJoZWFkZXIuZmlsbC5jb2xvciIpLG4uY29lcmNlRm9udChzLCJoZWFkZXIuZm9udCIsbi5leHRlbmRGbGF0KHt9LG8uZm9udCkpLGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQuY29sdW1ub3JkZXJ8fFtdLG49dC5oZWFkZXIudmFsdWVzLmxlbmd0aCxpPXIuc2xpY2UoMCxuKSxhPWkuc2xpY2UoKS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0LWV9KSksbz1pLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGEuaW5kZXhPZih0KX0pKSxzPW8ubGVuZ3RoO3M8bjtzKyspby5wdXNoKHMpO2UoImNvbHVtbm9yZGVyIixvKX0oZSxzKSxzKCJjZWxscy52YWx1ZXMiKSxzKCJjZWxscy5mb3JtYXQiKSxzKCJjZWxscy5hbGlnbiIpLHMoImNlbGxzLnByZWZpeCIpLHMoImNlbGxzLnN1ZmZpeCIpLHMoImNlbGxzLmhlaWdodCIpLHMoImNlbGxzLmxpbmUud2lkdGgiKSxzKCJjZWxscy5saW5lLmNvbG9yIikscygiY2VsbHMuZmlsbC5jb2xvciIpLG4uY29lcmNlRm9udChzLCJjZWxscy5mb250IixuLmV4dGVuZEZsYXQoe30sby5mb250KSksZS5fbGVuZ3RoPW51bGx9fSx7Ii4uLy4uL2xpYiI6NTE1LCIuLi8uLi9wbG90cy9kb21haW4iOjU5MywiLi9hdHRyaWJ1dGVzIjoxMDc1fV0sMTA4MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2F0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNhbGM6dCgiLi9jYWxjIikscGxvdDp0KCIuL3Bsb3QiKSxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToidGFibGUiLGJhc2VQbG90TW9kdWxlOnQoIi4vYmFzZV9wbG90IiksY2F0ZWdvcmllczpbIm5vT3BhY2l0eSJdLG1ldGE6e319fSx7Ii4vYXR0cmlidXRlcyI6MTA3NSwiLi9iYXNlX3Bsb3QiOjEwNzYsIi4vY2FsYyI6MTA3NywiLi9kZWZhdWx0cyI6MTA4MSwiLi9wbG90IjoxMDgzfV0sMTA4MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2NvbnN0YW50cyIpLGk9dCgiQHBsb3RseS9kMyIpLGE9dCgiLi4vLi4vbGliIikubnVtYmVyRm9ybWF0LG89dCgiLi4vLi4vbGliL2d1cCIpLHM9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIiksbD10KCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiKSxjPXQoIi4uLy4uL2xpYiIpLnJhaXNlVG9Ub3AsdT10KCIuLi8uLi9saWIiKS5zdHJUcmFuc2xhdGUsZj10KCIuLi8uLi9saWIiKS5jYW5jZWxUcmFuc2l0aW9uLGg9dCgiLi9kYXRhX3ByZXBhcmF0aW9uX2hlbHBlciIpLHA9dCgiLi9kYXRhX3NwbGl0X2hlbHBlcnMiKSxkPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKTtmdW5jdGlvbiBtKHQpe3JldHVybiBNYXRoLmNlaWwodC5jYWxjZGF0YS5tYXhMaW5lV2lkdGgvMil9ZnVuY3Rpb24gZyh0LGUpe3JldHVybiJjbGlwIit0Ll9mdWxsTGF5b3V0Ll91aWQrIl9zY3JvbGxBcmVhQm90dG9tQ2xpcF8iK2Uua2V5fWZ1bmN0aW9uIHYodCxlKXtyZXR1cm4iY2xpcCIrdC5fZnVsbExheW91dC5fdWlkKyJfY29sdW1uQm91bmRhcnlDbGlwcGF0aF8iK2UuY2FsY2RhdGEua2V5KyJfIitlLnNwZWNJbmRleH1mdW5jdGlvbiB5KHQpe3JldHVybltdLmNvbmNhdC5hcHBseShbXSx0Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHR9KSkpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuX19kYXRhX199KSl9ZnVuY3Rpb24geCh0LGUscil7dmFyIGE9dC5zZWxlY3RBbGwoIi4iK24uY24uc2Nyb2xsYmFyS2l0KS5kYXRhKG8ucmVwZWF0LG8ua2V5RnVuKTthLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChuLmNuLnNjcm9sbGJhcktpdCwhMCkuc3R5bGUoInNoYXBlLXJlbmRlcmluZyIsImdlb21ldHJpY1ByZWNpc2lvbiIpLGEuZWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9dC5zY3JvbGxiYXJTdGF0ZTtlLnRvdGFsSGVpZ2h0PWZ1bmN0aW9uKHQpe3ZhciBlPXQucm93QmxvY2tzO3JldHVybiBEKGUsZS5sZW5ndGgtMSkrKGUubGVuZ3RoP1IoZVtlLmxlbmd0aC0xXSwxLzApOjEpfSh0KSxlLnNjcm9sbGFibGVBcmVhSGVpZ2h0PXQuZ3JvdXBIZWlnaHQtUyh0KSxlLmN1cnJlbnRseVZpc2libGVIZWlnaHQ9TWF0aC5taW4oZS50b3RhbEhlaWdodCxlLnNjcm9sbGFibGVBcmVhSGVpZ2h0KSxlLnJhdGlvPWUuY3VycmVudGx5VmlzaWJsZUhlaWdodC9lLnRvdGFsSGVpZ2h0LGUuYmFyTGVuZ3RoPU1hdGgubWF4KGUucmF0aW8qZS5jdXJyZW50bHlWaXNpYmxlSGVpZ2h0LG4uZ29sZGVuUmF0aW8qbi5zY3JvbGxiYXJXaWR0aCksZS5iYXJXaWdnbGVSb29tPWUuY3VycmVudGx5VmlzaWJsZUhlaWdodC1lLmJhckxlbmd0aCxlLndpZ2dsZVJvb209TWF0aC5tYXgoMCxlLnRvdGFsSGVpZ2h0LWUuc2Nyb2xsYWJsZUFyZWFIZWlnaHQpLGUudG9wWT0wPT09ZS5iYXJXaWdnbGVSb29tPzA6dC5zY3JvbGxZL2Uud2lnZ2xlUm9vbSplLmJhcldpZ2dsZVJvb20sZS5ib3R0b21ZPWUudG9wWStlLmJhckxlbmd0aCxlLmRyYWdNdWx0aXBsaWVyPWUud2lnZ2xlUm9vbS9lLmJhcldpZ2dsZVJvb219KSkuYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24odCl7dmFyIGU9dC53aWR0aCtuLnNjcm9sbGJhcldpZHRoLzIrbi5zY3JvbGxiYXJPZmZzZXQ7cmV0dXJuIHUoZSxTKHQpKX0pKTt2YXIgcz1hLnNlbGVjdEFsbCgiLiIrbi5jbi5zY3JvbGxiYXIpLmRhdGEoby5yZXBlYXQsby5rZXlGdW4pO3MuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKG4uY24uc2Nyb2xsYmFyLCEwKTt2YXIgbD1zLnNlbGVjdEFsbCgiLiIrbi5jbi5zY3JvbGxiYXJTbGlkZXIpLmRhdGEoby5yZXBlYXQsby5rZXlGdW4pO2wuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKG4uY24uc2Nyb2xsYmFyU2xpZGVyLCEwKSxsLmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQpe3JldHVybiB1KDAsdC5zY3JvbGxiYXJTdGF0ZS50b3BZfHwwKX0pKTt2YXIgYz1sLnNlbGVjdEFsbCgiLiIrbi5jbi5zY3JvbGxiYXJHbHlwaCkuZGF0YShvLnJlcGVhdCxvLmtleUZ1bik7Yy5lbnRlcigpLmFwcGVuZCgibGluZSIpLmNsYXNzZWQobi5jbi5zY3JvbGxiYXJHbHlwaCwhMCkuYXR0cigic3Ryb2tlIiwiYmxhY2siKS5hdHRyKCJzdHJva2Utd2lkdGgiLG4uc2Nyb2xsYmFyV2lkdGgpLmF0dHIoInN0cm9rZS1saW5lY2FwIiwicm91bmQiKS5hdHRyKCJ5MSIsbi5zY3JvbGxiYXJXaWR0aC8yKSxjLmF0dHIoInkyIiwoZnVuY3Rpb24odCl7cmV0dXJuIHQuc2Nyb2xsYmFyU3RhdGUuYmFyTGVuZ3RoLW4uc2Nyb2xsYmFyV2lkdGgvMn0pKS5hdHRyKCJzdHJva2Utb3BhY2l0eSIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LmNvbHVtbkRyYWdJblByb2dyZXNzfHwhdC5zY3JvbGxiYXJTdGF0ZS5iYXJXaWdnbGVSb29tfHxyPzA6LjR9KSksYy50cmFuc2l0aW9uKCkuZGVsYXkoMCkuZHVyYXRpb24oMCksYy50cmFuc2l0aW9uKCkuZGVsYXkobi5zY3JvbGxiYXJIaWRlRGVsYXkpLmR1cmF0aW9uKG4uc2Nyb2xsYmFySGlkZUR1cmF0aW9uKS5hdHRyKCJzdHJva2Utb3BhY2l0eSIsMCk7dmFyIGY9cy5zZWxlY3RBbGwoIi4iK24uY24uc2Nyb2xsYmFyQ2FwdHVyZVpvbmUpLmRhdGEoby5yZXBlYXQsby5rZXlGdW4pO2YuZW50ZXIoKS5hcHBlbmQoImxpbmUiKS5jbGFzc2VkKG4uY24uc2Nyb2xsYmFyQ2FwdHVyZVpvbmUsITApLmF0dHIoInN0cm9rZSIsIndoaXRlIikuYXR0cigic3Ryb2tlLW9wYWNpdHkiLC4wMSkuYXR0cigic3Ryb2tlLXdpZHRoIixuLnNjcm9sbGJhckNhcHR1cmVXaWR0aCkuYXR0cigic3Ryb2tlLWxpbmVjYXAiLCJidXR0IikuYXR0cigieTEiLDApLm9uKCJtb3VzZWRvd24iLChmdW5jdGlvbihyKXt2YXIgbj1pLmV2ZW50LnksYT10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG89ci5zY3JvbGxiYXJTdGF0ZSxzPW4tYS50b3AsbD1pLnNjYWxlLmxpbmVhcigpLmRvbWFpbihbMCxvLnNjcm9sbGFibGVBcmVhSGVpZ2h0XSkucmFuZ2UoWzAsby50b3RhbEhlaWdodF0pLmNsYW1wKCEwKTtvLnRvcFk8PXMmJnM8PW8uYm90dG9tWXx8TChlLHQsbnVsbCxsKHMtby5iYXJMZW5ndGgvMikpKHIpfSkpLmNhbGwoaS5iZWhhdmlvci5kcmFnKCkub3JpZ2luKChmdW5jdGlvbih0KXtyZXR1cm4gaS5ldmVudC5zdG9wUHJvcGFnYXRpb24oKSx0LnNjcm9sbGJhclN0YXRlLnNjcm9sbGJhclNjcm9sbEluUHJvZ3Jlc3M9ITAsdH0pKS5vbigiZHJhZyIsTChlLHQpKS5vbigiZHJhZ2VuZCIsKGZ1bmN0aW9uKCl7fSkpKSxmLmF0dHIoInkyIiwoZnVuY3Rpb24odCl7cmV0dXJuIHQuc2Nyb2xsYmFyU3RhdGUuc2Nyb2xsYWJsZUFyZWFIZWlnaHR9KSksZS5fY29udGV4dC5zdGF0aWNQbG90JiYoYy5yZW1vdmUoKSxmLnJlbW92ZSgpKX1mdW5jdGlvbiBiKHQsZSxyLGEpe3ZhciBsPWZ1bmN0aW9uKHQpe3ZhciBlPXQuc2VsZWN0QWxsKCIuIituLmNuLmNvbHVtbkNlbGwpLmRhdGEocC5zcGxpdFRvQ2VsbHMsKGZ1bmN0aW9uKHQpe3JldHVybiB0LmtleVdpdGhpbkJsb2NrfSkpO3JldHVybiBlLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChuLmNuLmNvbHVtbkNlbGwsITApLGUuZXhpdCgpLnJlbW92ZSgpLGV9KGZ1bmN0aW9uKHQpe3ZhciBlPXQuc2VsZWN0QWxsKCIuIituLmNuLmNvbHVtbkNlbGxzKS5kYXRhKG8ucmVwZWF0LG8ua2V5RnVuKTtyZXR1cm4gZS5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQobi5jbi5jb2x1bW5DZWxscywhMCksZS5leGl0KCkucmVtb3ZlKCksZX0ocikpOyFmdW5jdGlvbih0KXt0LmVhY2goKGZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5jYWxjZGF0YS5jZWxscy5mb250LG49dC5jb2x1bW4uc3BlY0luZGV4LGk9e3NpemU6VChyLnNpemUsbixlKSxjb2xvcjpUKHIuY29sb3IsbixlKSxmYW1pbHk6VChyLmZhbWlseSxuLGUpfTt0LnJvd051bWJlcj10LmtleSx0LmFsaWduPVQodC5jYWxjZGF0YS5jZWxscy5hbGlnbixuLGUpLHQuY2VsbEJvcmRlcldpZHRoPVQodC5jYWxjZGF0YS5jZWxscy5saW5lLndpZHRoLG4sZSksdC5mb250PWl9KSl9KGwpLGZ1bmN0aW9uKHQpe3QuYXR0cigid2lkdGgiLChmdW5jdGlvbih0KXtyZXR1cm4gdC5jb2x1bW4uY29sdW1uV2lkdGh9KSkuYXR0cigic3Ryb2tlLXdpZHRoIiwoZnVuY3Rpb24odCl7cmV0dXJuIHQuY2VsbEJvcmRlcldpZHRofSkpLmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPWkuc2VsZWN0KHRoaXMpO2Quc3Ryb2tlKGUsVCh0LmNhbGNkYXRhLmNlbGxzLmxpbmUuY29sb3IsdC5jb2x1bW4uc3BlY0luZGV4LHQucm93TnVtYmVyKSksZC5maWxsKGUsVCh0LmNhbGNkYXRhLmNlbGxzLmZpbGwuY29sb3IsdC5jb2x1bW4uc3BlY0luZGV4LHQucm93TnVtYmVyKSl9KSl9KGZ1bmN0aW9uKHQpe3ZhciBlPXQuc2VsZWN0QWxsKCIuIituLmNuLmNlbGxSZWN0KS5kYXRhKG8ucmVwZWF0LChmdW5jdGlvbih0KXtyZXR1cm4gdC5rZXlXaXRoaW5CbG9ja30pKTtyZXR1cm4gZS5lbnRlcigpLmFwcGVuZCgicmVjdCIpLmNsYXNzZWQobi5jbi5jZWxsUmVjdCwhMCksZX0obCkpO3ZhciBjPWZ1bmN0aW9uKHQpe3ZhciBlPXQuc2VsZWN0QWxsKCIuIituLmNuLmNlbGxUZXh0KS5kYXRhKG8ucmVwZWF0LChmdW5jdGlvbih0KXtyZXR1cm4gdC5rZXlXaXRoaW5CbG9ja30pKTtyZXR1cm4gZS5lbnRlcigpLmFwcGVuZCgidGV4dCIpLmNsYXNzZWQobi5jbi5jZWxsVGV4dCwhMCkuc3R5bGUoImN1cnNvciIsKGZ1bmN0aW9uKCl7cmV0dXJuImF1dG8ifSkpLm9uKCJtb3VzZWRvd24iLChmdW5jdGlvbigpe2kuZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCl9KSksZX0oZnVuY3Rpb24odCl7dmFyIGU9dC5zZWxlY3RBbGwoIi4iK24uY24uY2VsbFRleHRIb2xkZXIpLmRhdGEoby5yZXBlYXQsKGZ1bmN0aW9uKHQpe3JldHVybiB0LmtleVdpdGhpbkJsb2NrfSkpO3JldHVybiBlLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChuLmNuLmNlbGxUZXh0SG9sZGVyLCEwKS5zdHlsZSgic2hhcGUtcmVuZGVyaW5nIiwiZ2VvbWV0cmljUHJlY2lzaW9uIiksZX0obCkpOyFmdW5jdGlvbih0KXt0LmVhY2goKGZ1bmN0aW9uKHQpe3MuZm9udChpLnNlbGVjdCh0aGlzKSx0LmZvbnQpfSkpfShjKSxfKGMsZSxhLHQpLHoobCl9ZnVuY3Rpb24gXyh0LGUscixvKXt0LnRleHQoKGZ1bmN0aW9uKHQpe3ZhciBlPXQuY29sdW1uLnNwZWNJbmRleCxyPXQucm93TnVtYmVyLGk9dC52YWx1ZSxvPSJzdHJpbmciPT10eXBlb2YgaSxzPW8mJmkubWF0Y2goLzxicj4vaSksbD0hb3x8czt0Lm1heUhhdmVNYXJrdXA9byYmaS5tYXRjaCgvWzwmPl0vKTt2YXIgYyx1PSJzdHJpbmciPT10eXBlb2YoYz1pKSYmYy5tYXRjaChuLmxhdGV4Q2hlY2spO3QubGF0ZXg9dTt2YXIgZixoLHA9dT8iIjpUKHQuY2FsY2RhdGEuY2VsbHMucHJlZml4LGUscil8fCIiLGQ9dT8iIjpUKHQuY2FsY2RhdGEuY2VsbHMuc3VmZml4LGUscil8fCIiLG09dT9udWxsOlQodC5jYWxjZGF0YS5jZWxscy5mb3JtYXQsZSxyKXx8bnVsbCxnPXArKG0/YShtKSh0LnZhbHVlKTp0LnZhbHVlKStkO2lmKHQud3JhcHBpbmdOZWVkZWQ9IXQud3JhcHBlZCYmIWwmJiF1JiYoZj13KGcpKSx0LmNlbGxIZWlnaHRNYXlJbmNyZWFzZT1zfHx1fHx0Lm1heUhhdmVNYXJrdXB8fCh2b2lkIDA9PT1mP3coZyk6ZiksdC5uZWVkc0NvbnZlcnRUb1RzcGFucz10Lm1heUhhdmVNYXJrdXB8fHQud3JhcHBpbmdOZWVkZWR8fHQubGF0ZXgsdC53cmFwcGluZ05lZWRlZCl7dmFyIHY9KCIgIj09PW4ud3JhcFNwbGl0Q2hhcmFjdGVyP2cucmVwbGFjZSgvPGEgaHJlZj0vZ2ksIjxhX2hyZWY9Iik6Zykuc3BsaXQobi53cmFwU3BsaXRDaGFyYWN0ZXIpLHk9IiAiPT09bi53cmFwU3BsaXRDaGFyYWN0ZXI/di5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlcGxhY2UoLzxhX2hyZWY9L2dpLCI8YSBocmVmPSIpfSkpOnY7dC5mcmFnbWVudHM9eS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybnt0ZXh0OnQsd2lkdGg6bnVsbH19KSksdC5mcmFnbWVudHMucHVzaCh7ZnJhZ21lbnQ6bi53cmFwU3BhY2VyLHdpZHRoOm51bGx9KSxoPXkuam9pbihuLmxpbmVCcmVha2VyKStuLmxpbmVCcmVha2VyK24ud3JhcFNwYWNlcn1lbHNlIGRlbGV0ZSB0LmZyYWdtZW50cyxoPWc7cmV0dXJuIGh9KSkuYXR0cigiZHkiLChmdW5jdGlvbih0KXtyZXR1cm4gdC5uZWVkc0NvbnZlcnRUb1RzcGFucz8wOiIwLjc1ZW0ifSkpLmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBhPWkuc2VsZWN0KHRoaXMpLHM9dC53cmFwcGluZ05lZWRlZD9QOkk7dC5uZWVkc0NvbnZlcnRUb1RzcGFucz9sLmNvbnZlcnRUb1RzcGFucyhhLG8scyhyLHRoaXMsZSxvLHQpKTppLnNlbGVjdCh0aGlzLnBhcmVudE5vZGUpLmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQpe3JldHVybiB1KE8odCksbi5jZWxsUGFkKX0pKS5hdHRyKCJ0ZXh0LWFuY2hvciIsKGZ1bmN0aW9uKHQpe3JldHVybntsZWZ0OiJzdGFydCIsY2VudGVyOiJtaWRkbGUiLHJpZ2h0OiJlbmQifVt0LmFsaWduXX0pKX0pKX1mdW5jdGlvbiB3KHQpe3JldHVybi0xIT09dC5pbmRleE9mKG4ud3JhcFNwbGl0Q2hhcmFjdGVyKX1mdW5jdGlvbiBUKHQsZSxyKXtpZihBcnJheS5pc0FycmF5KHQpKXt2YXIgbj10W01hdGgubWluKGUsdC5sZW5ndGgtMSldO3JldHVybiBBcnJheS5pc0FycmF5KG4pP25bTWF0aC5taW4ocixuLmxlbmd0aC0xKV06bn1yZXR1cm4gdH1mdW5jdGlvbiBrKHQsZSxyKXt0LnRyYW5zaXRpb24oKS5lYXNlKG4ucmVsZWFzZVRyYW5zaXRpb25FYXNlKS5kdXJhdGlvbihuLnJlbGVhc2VUcmFuc2l0aW9uRHVyYXRpb24pLmF0dHIoInRyYW5zZm9ybSIsdShlLngscikpfWZ1bmN0aW9uIEEodCl7cmV0dXJuImNlbGxzIj09PXQudHlwZX1mdW5jdGlvbiBNKHQpe3JldHVybiJoZWFkZXIiPT09dC50eXBlfWZ1bmN0aW9uIFModCl7cmV0dXJuKHQucm93QmxvY2tzLmxlbmd0aD90LnJvd0Jsb2Nrc1swXS5hdXhpbGlhcnlCbG9ja3M6W10pLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtSKGUsMS8wKX0pLDApfWZ1bmN0aW9uIEUodCxlLHIpe3ZhciBuPXkoZSlbMF07aWYodm9pZCAwIT09bil7dmFyIGk9bi5yb3dCbG9ja3MsYT1uLmNhbGNkYXRhLG89RChpLGkubGVuZ3RoKSxzPW4uY2FsY2RhdGEuZ3JvdXBIZWlnaHQtUyhuKSxsPWEuc2Nyb2xsWT1NYXRoLm1heCgwLE1hdGgubWluKG8tcyxhLnNjcm9sbFkpKSxjPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG49W10saT0wLGE9MDthPHQubGVuZ3RoO2ErKyl7Zm9yKHZhciBvPXRbYV0scz1vLnJvd3MsbD0wLGM9MDtjPHMubGVuZ3RoO2MrKylsKz1zW2NdLnJvd0hlaWdodDtvLmFsbFJvd3NIZWlnaHQ9bDtlPGkrbCYmZStyPmkmJm4ucHVzaChhKSxpKz1sfXJldHVybiBufShpLGwscyk7MT09PWMubGVuZ3RoJiYoY1swXT09PWkubGVuZ3RoLTE/Yy51bnNoaWZ0KGNbMF0tMSk6Yy5wdXNoKGNbMF0rMSkpLGNbMF0lMiYmYy5yZXZlcnNlKCksZS5lYWNoKChmdW5jdGlvbih0LGUpe3QucGFnZT1jW2VdLHQuc2Nyb2xsWT1sfSkpLGUuYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24odCl7dmFyIGU9RCh0LnJvd0Jsb2Nrcyx0LnBhZ2UpLXQuc2Nyb2xsWTtyZXR1cm4gdSgwLGUpfSkpLHQmJihDKHQscixlLGMsbi5wcmV2UGFnZXMsbiwwKSxDKHQscixlLGMsbi5wcmV2UGFnZXMsbiwxKSx4KHIsdCkpfX1mdW5jdGlvbiBMKHQsZSxyLGEpe3JldHVybiBmdW5jdGlvbihvKXt2YXIgcz1vLmNhbGNkYXRhP28uY2FsY2RhdGE6byxsPWUuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gcy5rZXk9PT10LmtleX0pKSxjPXJ8fHMuc2Nyb2xsYmFyU3RhdGUuZHJhZ011bHRpcGxpZXIsdT1zLnNjcm9sbFk7cy5zY3JvbGxZPXZvaWQgMD09PWE/cy5zY3JvbGxZK2MqaS5ldmVudC5keTphO3ZhciBmPWwuc2VsZWN0QWxsKCIuIituLmNuLnlDb2x1bW4pLnNlbGVjdEFsbCgiLiIrbi5jbi5jb2x1bW5CbG9jaykuZmlsdGVyKEEpO3JldHVybiBFKHQsZixsKSxzLnNjcm9sbFk9PT11fX1mdW5jdGlvbiBDKHQsZSxyLG4saSxhLG8pe25bb10hPT1pW29dJiYoY2xlYXJUaW1lb3V0KGEuY3VycmVudFJlcGFpbnRbb10pLGEuY3VycmVudFJlcGFpbnRbb109c2V0VGltZW91dCgoZnVuY3Rpb24oKXt2YXIgYT1yLmZpbHRlcigoZnVuY3Rpb24odCxlKXtyZXR1cm4gZT09PW8mJm5bZV0hPT1pW2VdfSkpO2IodCxlLGEsciksaVtvXT1uW29dfSkpKX1mdW5jdGlvbiBQKHQsZSxyLGEpe3JldHVybiBmdW5jdGlvbigpe3ZhciBvPWkuc2VsZWN0KGUucGFyZW50Tm9kZSk7by5lYWNoKChmdW5jdGlvbih0KXt2YXIgZT10LmZyYWdtZW50cztvLnNlbGVjdEFsbCgidHNwYW4ubGluZSIpLmVhY2goKGZ1bmN0aW9uKHQscil7ZVtyXS53aWR0aD10aGlzLmdldENvbXB1dGVkVGV4dExlbmd0aCgpfSkpO3ZhciByLGksYT1lW2UubGVuZ3RoLTFdLndpZHRoLHM9ZS5zbGljZSgwLC0xKSxsPVtdLGM9MCx1PXQuY29sdW1uLmNvbHVtbldpZHRoLTIqbi5jZWxsUGFkO2Zvcih0LnZhbHVlPSIiO3MubGVuZ3RoOyljKyhpPShyPXMuc2hpZnQoKSkud2lkdGgrYSk+dSYmKHQudmFsdWUrPWwuam9pbihuLndyYXBTcGFjZXIpK24ubGluZUJyZWFrZXIsbD1bXSxjPTApLGwucHVzaChyLnRleHQpLGMrPWk7YyYmKHQudmFsdWUrPWwuam9pbihuLndyYXBTcGFjZXIpKSx0LndyYXBwZWQ9ITB9KSksby5zZWxlY3RBbGwoInRzcGFuLmxpbmUiKS5yZW1vdmUoKSxfKG8uc2VsZWN0KCIuIituLmNuLmNlbGxUZXh0KSxyLHQsYSksaS5zZWxlY3QoZS5wYXJlbnROb2RlLnBhcmVudE5vZGUpLmNhbGwoeil9fWZ1bmN0aW9uIEkodCxlLHIsYSxvKXtyZXR1cm4gZnVuY3Rpb24oKXtpZighby5zZXR0bGVkWSl7dmFyIHM9aS5zZWxlY3QoZS5wYXJlbnROb2RlKSxsPUIobyksYz1vLmtleS1sLmZpcnN0Um93SW5kZXgsZj1sLnJvd3NbY10ucm93SGVpZ2h0LGg9by5jZWxsSGVpZ2h0TWF5SW5jcmVhc2U/ZS5wYXJlbnROb2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCsyKm4uY2VsbFBhZDpmLHA9TWF0aC5tYXgoaCxmKTtwLWwucm93c1tjXS5yb3dIZWlnaHQmJihsLnJvd3NbY10ucm93SGVpZ2h0PXAsdC5zZWxlY3RBbGwoIi4iK24uY24uY29sdW1uQ2VsbCkuY2FsbCh6KSxFKG51bGwsdC5maWx0ZXIoQSksMCkseChyLGEsITApKSxzLmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5wYXJlbnROb2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGU9aS5zZWxlY3QodGhpcy5wYXJlbnROb2RlKS5zZWxlY3QoIi4iK24uY24uY2VsbFJlY3QpLm5vZGUoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxyPXRoaXMudHJhbnNmb3JtLmJhc2VWYWwuY29uc29saWRhdGUoKSxhPWUudG9wLXQudG9wKyhyP3IubWF0cml4LmY6bi5jZWxsUGFkKTtyZXR1cm4gdShPKG8saS5zZWxlY3QodGhpcy5wYXJlbnROb2RlKS5zZWxlY3QoIi4iK24uY24uY2VsbFRleHRIb2xkZXIpLm5vZGUoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCksYSl9KSksby5zZXR0bGVkWT0hMH19fWZ1bmN0aW9uIE8odCxlKXtzd2l0Y2godC5hbGlnbil7Y2FzZSJsZWZ0IjpyZXR1cm4gbi5jZWxsUGFkO2Nhc2UicmlnaHQiOnJldHVybiB0LmNvbHVtbi5jb2x1bW5XaWR0aC0oZXx8MCktbi5jZWxsUGFkO2Nhc2UiY2VudGVyIjpyZXR1cm4odC5jb2x1bW4uY29sdW1uV2lkdGgtKGV8fDApKS8yO2RlZmF1bHQ6cmV0dXJuIG4uY2VsbFBhZH19ZnVuY3Rpb24geih0KXt0LmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQpe3ZhciBlPXQucm93QmxvY2tzWzBdLmF1eGlsaWFyeUJsb2Nrcy5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrUihlLDEvMCl9KSwwKSxyPVIoQih0KSx0LmtleSk7cmV0dXJuIHUoMCxyK2UpfSkpLnNlbGVjdEFsbCgiLiIrbi5jbi5jZWxsUmVjdCkuYXR0cigiaGVpZ2h0IiwoZnVuY3Rpb24odCl7cmV0dXJuKGU9Qih0KSxyPXQua2V5LGUucm93c1tyLWUuZmlyc3RSb3dJbmRleF0pLnJvd0hlaWdodDt2YXIgZSxyfSkpfWZ1bmN0aW9uIEQodCxlKXtmb3IodmFyIHI9MCxuPWUtMTtuPj0wO24tLSlyKz1GKHRbbl0pO3JldHVybiByfWZ1bmN0aW9uIFIodCxlKXtmb3IodmFyIHI9MCxuPTA7bjx0LnJvd3MubGVuZ3RoJiZ0LnJvd3Nbbl0ucm93SW5kZXg8ZTtuKyspcis9dC5yb3dzW25dLnJvd0hlaWdodDtyZXR1cm4gcn1mdW5jdGlvbiBGKHQpe3ZhciBlPXQuYWxsUm93c0hlaWdodDtpZih2b2lkIDAhPT1lKXJldHVybiBlO2Zvcih2YXIgcj0wLG49MDtuPHQucm93cy5sZW5ndGg7bisrKXIrPXQucm93c1tuXS5yb3dIZWlnaHQ7cmV0dXJuIHQuYWxsUm93c0hlaWdodD1yLHJ9ZnVuY3Rpb24gQih0KXtyZXR1cm4gdC5yb3dCbG9ja3NbdC5wYWdlXX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj0hdC5fY29udGV4dC5zdGF0aWNQbG90LGE9dC5fZnVsbExheW91dC5fcGFwZXIuc2VsZWN0QWxsKCIuIituLmNuLnRhYmxlKS5kYXRhKGUubWFwKChmdW5jdGlvbihlKXt2YXIgcj1vLnVud3JhcChlKS50cmFjZTtyZXR1cm4gaCh0LHIpfSkpLG8ua2V5RnVuKTthLmV4aXQoKS5yZW1vdmUoKSxhLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChuLmNuLnRhYmxlLCEwKS5hdHRyKCJvdmVyZmxvdyIsInZpc2libGUiKS5zdHlsZSgiYm94LXNpemluZyIsImNvbnRlbnQtYm94Iikuc3R5bGUoInBvc2l0aW9uIiwiYWJzb2x1dGUiKS5zdHlsZSgibGVmdCIsMCkuc3R5bGUoIm92ZXJmbG93IiwidmlzaWJsZSIpLnN0eWxlKCJzaGFwZS1yZW5kZXJpbmciLCJjcmlzcEVkZ2VzIikuc3R5bGUoInBvaW50ZXItZXZlbnRzIiwiYWxsIiksYS5hdHRyKCJ3aWR0aCIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LndpZHRoK3Quc2l6ZS5sK3Quc2l6ZS5yfSkpLmF0dHIoImhlaWdodCIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LmhlaWdodCt0LnNpemUudCt0LnNpemUuYn0pKS5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbih0KXtyZXR1cm4gdSh0LnRyYW5zbGF0ZVgsdC50cmFuc2xhdGVZKX0pKTt2YXIgbD1hLnNlbGVjdEFsbCgiLiIrbi5jbi50YWJsZUNvbnRyb2xWaWV3KS5kYXRhKG8ucmVwZWF0LG8ua2V5RnVuKSxkPWwuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKG4uY24udGFibGVDb250cm9sVmlldywhMCkuc3R5bGUoImJveC1zaXppbmciLCJjb250ZW50LWJveCIpO2lmKHIpe3ZhciBfPSJvbndoZWVsImluIGRvY3VtZW50PyJ3aGVlbCI6Im1vdXNld2hlZWwiO2Qub24oIm1vdXNlbW92ZSIsKGZ1bmN0aW9uKGUpe2wuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gZT09PXR9KSkuY2FsbCh4LHQpfSkpLm9uKF8sKGZ1bmN0aW9uKGUpe2lmKCFlLnNjcm9sbGJhclN0YXRlLndoZWVsaW5nKXtlLnNjcm9sbGJhclN0YXRlLndoZWVsaW5nPSEwO3ZhciByPWUuc2Nyb2xsWStpLmV2ZW50LmRlbHRhWTtMKHQsbCxudWxsLHIpKGUpfHwoaS5ldmVudC5zdG9wUHJvcGFnYXRpb24oKSxpLmV2ZW50LnByZXZlbnREZWZhdWx0KCkpLGUuc2Nyb2xsYmFyU3RhdGUud2hlZWxpbmc9ITF9fSkpLmNhbGwoeCx0LCEwKX1sLmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQpe3JldHVybiB1KHQuc2l6ZS5sLHQuc2l6ZS50KX0pKTt2YXIgdz1sLnNlbGVjdEFsbCgiLiIrbi5jbi5zY3JvbGxCYWNrZ3JvdW5kKS5kYXRhKG8ucmVwZWF0LG8ua2V5RnVuKTt3LmVudGVyKCkuYXBwZW5kKCJyZWN0IikuY2xhc3NlZChuLmNuLnNjcm9sbEJhY2tncm91bmQsITApLmF0dHIoImZpbGwiLCJub25lIiksdy5hdHRyKCJ3aWR0aCIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LndpZHRofSkpLmF0dHIoImhlaWdodCIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LmhlaWdodH0pKSxsLmVhY2goKGZ1bmN0aW9uKGUpe3Muc2V0Q2xpcFVybChpLnNlbGVjdCh0aGlzKSxnKHQsZSksdCl9KSk7dmFyIFQ9bC5zZWxlY3RBbGwoIi4iK24uY24ueUNvbHVtbikuZGF0YSgoZnVuY3Rpb24odCl7cmV0dXJuIHQuY29sdW1uc30pLG8ua2V5RnVuKTtULmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChuLmNuLnlDb2x1bW4sITApLFQuZXhpdCgpLnJlbW92ZSgpLFQuYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24odCl7cmV0dXJuIHUodC54LDApfSkpLHImJlQuY2FsbChpLmJlaGF2aW9yLmRyYWcoKS5vcmlnaW4oKGZ1bmN0aW9uKGUpe3JldHVybiBrKGkuc2VsZWN0KHRoaXMpLGUsLW4udXBsaWZ0KSxjKHRoaXMpLGUuY2FsY2RhdGEuY29sdW1uRHJhZ0luUHJvZ3Jlc3M9ITAseChsLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIGUuY2FsY2RhdGEua2V5PT09dC5rZXl9KSksdCksZX0pKS5vbigiZHJhZyIsKGZ1bmN0aW9uKHQpe3ZhciBlPWkuc2VsZWN0KHRoaXMpLHI9ZnVuY3Rpb24oZSl7cmV0dXJuKHQ9PT1lP2kuZXZlbnQueDplLngpK2UuY29sdW1uV2lkdGgvMn07dC54PU1hdGgubWF4KC1uLm92ZXJkcmFnLE1hdGgubWluKHQuY2FsY2RhdGEud2lkdGgrbi5vdmVyZHJhZy10LmNvbHVtbldpZHRoLGkuZXZlbnQueCkpLHkoVCkuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gZS5jYWxjZGF0YS5rZXk9PT10LmNhbGNkYXRhLmtleX0pKS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiByKHQpLXIoZSl9KSkuZm9yRWFjaCgoZnVuY3Rpb24oZSxyKXtlLnhJbmRleD1yLGUueD10PT09ZT9lLng6ZS54U2NhbGUoZSl9KSksVC5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiB0IT09ZX0pKS50cmFuc2l0aW9uKCkuZWFzZShuLnRyYW5zaXRpb25FYXNlKS5kdXJhdGlvbihuLnRyYW5zaXRpb25EdXJhdGlvbikuYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24odCl7cmV0dXJuIHUodC54LDApfSkpLGUuY2FsbChmKS5hdHRyKCJ0cmFuc2Zvcm0iLHUodC54LC1uLnVwbGlmdCkpfSkpLm9uKCJkcmFnZW5kIiwoZnVuY3Rpb24oZSl7dmFyIHI9aS5zZWxlY3QodGhpcyksbj1lLmNhbGNkYXRhO2UueD1lLnhTY2FsZShlKSxlLmNhbGNkYXRhLmNvbHVtbkRyYWdJblByb2dyZXNzPSExLGsocixlLDApLGZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1lLmdkQ29sdW1uc09yaWdpbmFsT3JkZXI7ZS5nZENvbHVtbnMuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gcltuLmluZGV4T2YodCldLXJbbi5pbmRleE9mKGUpXX0pKSxlLmNvbHVtbm9yZGVyPXIsdC5lbWl0KCJwbG90bHlfcmVzdHlsZSIpfSh0LG4sbi5jb2x1bW5zLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQueEluZGV4fSkpKX0pKSksVC5lYWNoKChmdW5jdGlvbihlKXtzLnNldENsaXBVcmwoaS5zZWxlY3QodGhpcyksdih0LGUpLHQpfSkpO3ZhciBTPVQuc2VsZWN0QWxsKCIuIituLmNuLmNvbHVtbkJsb2NrKS5kYXRhKHAuc3BsaXRUb1BhbmVscyxvLmtleUZ1bik7Uy5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQobi5jbi5jb2x1bW5CbG9jaywhMCkuYXR0cigiaWQiLChmdW5jdGlvbih0KXtyZXR1cm4gdC5rZXl9KSksUy5zdHlsZSgiY3Vyc29yIiwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZHJhZ0hhbmRsZT8iZXctcmVzaXplIjp0LmNhbGNkYXRhLnNjcm9sbGJhclN0YXRlLmJhcldpZ2dsZVJvb20/Im5zLXJlc2l6ZSI6ImRlZmF1bHQifSkpO3ZhciBDPVMuZmlsdGVyKE0pLFA9Uy5maWx0ZXIoQSk7ciYmUC5jYWxsKGkuYmVoYXZpb3IuZHJhZygpLm9yaWdpbigoZnVuY3Rpb24odCl7cmV0dXJuIGkuZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCksdH0pKS5vbigiZHJhZyIsTCh0LGwsLTEpKS5vbigiZHJhZ2VuZCIsKGZ1bmN0aW9uKCl7fSkpKSxiKHQsbCxDLFMpLGIodCxsLFAsUyk7dmFyIEk9bC5zZWxlY3RBbGwoIi4iK24uY24uc2Nyb2xsQXJlYUNsaXApLmRhdGEoby5yZXBlYXQsby5rZXlGdW4pO0kuZW50ZXIoKS5hcHBlbmQoImNsaXBQYXRoIikuY2xhc3NlZChuLmNuLnNjcm9sbEFyZWFDbGlwLCEwKS5hdHRyKCJpZCIsKGZ1bmN0aW9uKGUpe3JldHVybiBnKHQsZSl9KSk7dmFyIE89SS5zZWxlY3RBbGwoIi4iK24uY24uc2Nyb2xsQXJlYUNsaXBSZWN0KS5kYXRhKG8ucmVwZWF0LG8ua2V5RnVuKTtPLmVudGVyKCkuYXBwZW5kKCJyZWN0IikuY2xhc3NlZChuLmNuLnNjcm9sbEFyZWFDbGlwUmVjdCwhMCkuYXR0cigieCIsLW4ub3ZlcmRyYWcpLmF0dHIoInkiLC1uLnVwbGlmdCkuYXR0cigiZmlsbCIsIm5vbmUiKSxPLmF0dHIoIndpZHRoIiwoZnVuY3Rpb24odCl7cmV0dXJuIHQud2lkdGgrMipuLm92ZXJkcmFnfSkpLmF0dHIoImhlaWdodCIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LmhlaWdodCtuLnVwbGlmdH0pKSxULnNlbGVjdEFsbCgiLiIrbi5jbi5jb2x1bW5Cb3VuZGFyeSkuZGF0YShvLnJlcGVhdCxvLmtleUZ1bikuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKG4uY24uY29sdW1uQm91bmRhcnksITApO3ZhciB6PVQuc2VsZWN0QWxsKCIuIituLmNuLmNvbHVtbkJvdW5kYXJ5Q2xpcHBhdGgpLmRhdGEoby5yZXBlYXQsby5rZXlGdW4pO3ouZW50ZXIoKS5hcHBlbmQoImNsaXBQYXRoIikuY2xhc3NlZChuLmNuLmNvbHVtbkJvdW5kYXJ5Q2xpcHBhdGgsITApLHouYXR0cigiaWQiLChmdW5jdGlvbihlKXtyZXR1cm4gdih0LGUpfSkpO3ZhciBEPXouc2VsZWN0QWxsKCIuIituLmNuLmNvbHVtbkJvdW5kYXJ5UmVjdCkuZGF0YShvLnJlcGVhdCxvLmtleUZ1bik7RC5lbnRlcigpLmFwcGVuZCgicmVjdCIpLmNsYXNzZWQobi5jbi5jb2x1bW5Cb3VuZGFyeVJlY3QsITApLmF0dHIoImZpbGwiLCJub25lIiksRC5hdHRyKCJ3aWR0aCIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LmNvbHVtbldpZHRoKzIqbSh0KX0pKS5hdHRyKCJoZWlnaHQiLChmdW5jdGlvbih0KXtyZXR1cm4gdC5jYWxjZGF0YS5oZWlnaHQrMiptKHQpK24udXBsaWZ0fSkpLmF0dHIoIngiLChmdW5jdGlvbih0KXtyZXR1cm4tbSh0KX0pKS5hdHRyKCJ5IiwoZnVuY3Rpb24odCl7cmV0dXJuLW0odCl9KSksRShudWxsLFAsbCl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjM2NywiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjozODksIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9saWIvZ3VwIjo1MTIsIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyI6NTQxLCIuL2NvbnN0YW50cyI6MTA3OCwiLi9kYXRhX3ByZXBhcmF0aW9uX2hlbHBlciI6MTA3OSwiLi9kYXRhX3NwbGl0X2hlbHBlcnMiOjEwODAsIkBwbG90bHkvZDMiOjU4fV0sMTA4NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikuaG92ZXJ0ZW1wbGF0ZUF0dHJzLGk9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLnRleHR0ZW1wbGF0ZUF0dHJzLGE9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiKSxvPXQoIi4uLy4uL3Bsb3RzL2RvbWFpbiIpLmF0dHJpYnV0ZXMscz10KCIuLi9waWUvYXR0cmlidXRlcyIpLGw9dCgiLi4vc3VuYnVyc3QvYXR0cmlidXRlcyIpLGM9dCgiLi9jb25zdGFudHMiKSx1PXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0O2UuZXhwb3J0cz17bGFiZWxzOmwubGFiZWxzLHBhcmVudHM6bC5wYXJlbnRzLHZhbHVlczpsLnZhbHVlcyxicmFuY2h2YWx1ZXM6bC5icmFuY2h2YWx1ZXMsY291bnQ6bC5jb3VudCxsZXZlbDpsLmxldmVsLG1heGRlcHRoOmwubWF4ZGVwdGgsdGlsaW5nOntwYWNraW5nOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJzcXVhcmlmeSIsImJpbmFyeSIsImRpY2UiLCJzbGljZSIsInNsaWNlLWRpY2UiLCJkaWNlLXNsaWNlIl0sZGZsdDoic3F1YXJpZnkiLGVkaXRUeXBlOiJwbG90In0sc3F1YXJpZnlyYXRpbzp7dmFsVHlwZToibnVtYmVyIixtaW46MSxkZmx0OjEsZWRpdFR5cGU6InBsb3QifSxmbGlwOnt2YWxUeXBlOiJmbGFnbGlzdCIsZmxhZ3M6WyJ4IiwieSJdLGRmbHQ6IiIsZWRpdFR5cGU6InBsb3QifSxwYWQ6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDozLGVkaXRUeXBlOiJwbG90In0sZWRpdFR5cGU6ImNhbGMifSxtYXJrZXI6dSh7cGFkOnt0Ont2YWxUeXBlOiJudW1iZXIiLG1pbjowLGVkaXRUeXBlOiJwbG90In0sbDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxlZGl0VHlwZToicGxvdCJ9LHI6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZWRpdFR5cGU6InBsb3QifSxiOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGVkaXRUeXBlOiJwbG90In0sZWRpdFR5cGU6ImNhbGMifSxjb2xvcnM6bC5tYXJrZXIuY29sb3JzLGRlcHRoZmFkZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlshMCwhMSwicmV2ZXJzZWQiXSxlZGl0VHlwZToic3R5bGUifSxsaW5lOmwubWFya2VyLmxpbmUsZWRpdFR5cGU6ImNhbGMifSxhKCJtYXJrZXIiLHtjb2xvckF0dHI6ImNvbG9ycyIsYW5pbTohMX0pKSxwYXRoYmFyOnt2aXNpYmxlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJwbG90In0sc2lkZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsidG9wIiwiYm90dG9tIl0sZGZsdDoidG9wIixlZGl0VHlwZToicGxvdCJ9LGVkZ2VzaGFwZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiPiIsIjwiLCJ8IiwiLyIsIlxcIl0sZGZsdDoiPiIsZWRpdFR5cGU6InBsb3QifSx0aGlja25lc3M6e3ZhbFR5cGU6Im51bWJlciIsbWluOjEyLGVkaXRUeXBlOiJwbG90In0sdGV4dGZvbnQ6dSh7fSxzLnRleHRmb250LHt9KSxlZGl0VHlwZToiY2FsYyJ9LHRleHQ6cy50ZXh0LHRleHRpbmZvOmwudGV4dGluZm8sdGV4dHRlbXBsYXRlOmkoe2VkaXRUeXBlOiJwbG90In0se2tleXM6Yy5ldmVudERhdGFLZXlzLmNvbmNhdChbImxhYmVsIiwidmFsdWUiXSl9KSxob3ZlcnRleHQ6cy5ob3ZlcnRleHQsaG92ZXJpbmZvOmwuaG92ZXJpbmZvLGhvdmVydGVtcGxhdGU6bih7fSx7a2V5czpjLmV2ZW50RGF0YUtleXN9KSx0ZXh0Zm9udDpzLnRleHRmb250LGluc2lkZXRleHRmb250OnMuaW5zaWRldGV4dGZvbnQsb3V0c2lkZXRleHRmb250OnUoe30scy5vdXRzaWRldGV4dGZvbnQse30pLHRleHRwb3NpdGlvbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsidG9wIGxlZnQiLCJ0b3AgY2VudGVyIiwidG9wIHJpZ2h0IiwibWlkZGxlIGxlZnQiLCJtaWRkbGUgY2VudGVyIiwibWlkZGxlIHJpZ2h0IiwiYm90dG9tIGxlZnQiLCJib3R0b20gY2VudGVyIiwiYm90dG9tIHJpZ2h0Il0sZGZsdDoidG9wIGxlZnQiLGVkaXRUeXBlOiJwbG90In0sc29ydDpzLnNvcnQscm9vdDpsLnJvb3QsZG9tYWluOm8oe25hbWU6InRyZWVtYXAiLHRyYWNlOiEwLGVkaXRUeXBlOiJjYWxjIn0pfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6Mzc0LCIuLi8uLi9saWIvZXh0ZW5kIjo1MDUsIi4uLy4uL3Bsb3RzL2RvbWFpbiI6NTkzLCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo2NDIsIi4uL3BpZS9hdHRyaWJ1dGVzIjo5MTAsIi4uL3N1bmJ1cnN0L2F0dHJpYnV0ZXMiOjEwNTgsIi4vY29uc3RhbnRzIjoxMDg3fV0sMTA4NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9wbG90cyIpO3IubmFtZT0idHJlZW1hcCIsci5wbG90PWZ1bmN0aW9uKHQsZSxpLGEpe24ucGxvdEJhc2VQbG90KHIubmFtZSx0LGUsaSxhKX0sci5jbGVhbj1mdW5jdGlvbih0LGUsaSxhKXtuLmNsZWFuQmFzZVBsb3Qoci5uYW1lLHQsZSxpLGEpfX0seyIuLi8uLi9wbG90cy9wbG90cyI6NjI4fV0sMTA4NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9zdW5idXJzdC9jYWxjIik7ci5jYWxjPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4uY2FsYyh0LGUpfSxyLmNyb3NzVHJhY2VDYWxjPWZ1bmN0aW9uKHQpe3JldHVybiBuLl9ydW5Dcm9zc1RyYWNlQ2FsYygidHJlZW1hcCIsdCl9fSx7Ii4uL3N1bmJ1cnN0L2NhbGMiOjEwNjB9XSwxMDg3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17Q0xJQ0tfVFJBTlNJVElPTl9USU1FOjc1MCxDTElDS19UUkFOU0lUSU9OX0VBU0lORzoicG9seSIsZXZlbnREYXRhS2V5czpbImN1cnJlbnRQYXRoIiwicm9vdCIsImVudHJ5IiwicGVyY2VudFJvb3QiLCJwZXJjZW50RW50cnkiLCJwZXJjZW50UGFyZW50Il0sZ2FwV2l0aFBhdGhiYXI6MX19LHt9XSwxMDg4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksbz10KCIuLi8uLi9wbG90cy9kb21haW4iKS5kZWZhdWx0cyxzPXQoIi4uL2Jhci9kZWZhdWx0cyIpLmhhbmRsZVRleHQsbD10KCIuLi9iYXIvY29uc3RhbnRzIikuVEVYVFBBRCxjPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSIpLHU9Yy5oYXNDb2xvcnNjYWxlLGY9Yy5oYW5kbGVEZWZhdWx0cztlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYyl7ZnVuY3Rpb24gaChyLGEpe3JldHVybiBuLmNvZXJjZSh0LGUsaSxyLGEpfXZhciBwPWgoImxhYmVscyIpLGQ9aCgicGFyZW50cyIpO2lmKHAmJnAubGVuZ3RoJiZkJiZkLmxlbmd0aCl7dmFyIG09aCgidmFsdWVzIik7bSYmbS5sZW5ndGg/aCgiYnJhbmNodmFsdWVzIik6aCgiY291bnQiKSxoKCJsZXZlbCIpLGgoIm1heGRlcHRoIiksInNxdWFyaWZ5Ij09PWgoInRpbGluZy5wYWNraW5nIikmJmgoInRpbGluZy5zcXVhcmlmeXJhdGlvIiksaCgidGlsaW5nLmZsaXAiKSxoKCJ0aWxpbmcucGFkIik7dmFyIGc9aCgidGV4dCIpO2goInRleHR0ZW1wbGF0ZSIpLGUudGV4dHRlbXBsYXRlfHxoKCJ0ZXh0aW5mbyIsQXJyYXkuaXNBcnJheShnKT8idGV4dCtsYWJlbCI6ImxhYmVsIiksaCgiaG92ZXJ0ZXh0IiksaCgiaG92ZXJ0ZW1wbGF0ZSIpO3ZhciB2PWgoInBhdGhiYXIudmlzaWJsZSIpO3ModCxlLGMsaCwiYXV0byIse2hhc1BhdGhiYXI6dixtb2R1bGVIYXNTZWxlY3RlZDohMSxtb2R1bGVIYXNVbnNlbGVjdGVkOiExLG1vZHVsZUhhc0NvbnN0cmFpbjohMSxtb2R1bGVIYXNDbGlwb25heGlzOiExLG1vZHVsZUhhc1RleHRhbmdsZTohMSxtb2R1bGVIYXNJbnNpZGVhbmNob3I6ITF9KSxoKCJ0ZXh0cG9zaXRpb24iKTt2YXIgeT0tMSE9PWUudGV4dHBvc2l0aW9uLmluZGV4T2YoImJvdHRvbSIpO2goIm1hcmtlci5saW5lLndpZHRoIikmJmgoIm1hcmtlci5saW5lLmNvbG9yIixjLnBhcGVyX2JnY29sb3IpO3ZhciB4PWgoIm1hcmtlci5jb2xvcnMiKTsoZS5faGFzQ29sb3JzY2FsZT11KHQsIm1hcmtlciIsImNvbG9ycyIpfHwodC5tYXJrZXJ8fHt9KS5jb2xvcmF4aXMpP2YodCxlLGMsaCx7cHJlZml4OiJtYXJrZXIuIixjTGV0dGVyOiJjIn0pOmgoIm1hcmtlci5kZXB0aGZhZGUiLCEoeHx8W10pLmxlbmd0aCk7dmFyIGI9MiplLnRleHRmb250LnNpemU7aCgibWFya2VyLnBhZC50Iix5P2IvNDpiKSxoKCJtYXJrZXIucGFkLmwiLGIvNCksaCgibWFya2VyLnBhZC5yIixiLzQpLGgoIm1hcmtlci5wYWQuYiIseT9iOmIvNCksZS5faG92ZXJlZD17bWFya2VyOntsaW5lOnt3aWR0aDoyLGNvbG9yOmEuY29udHJhc3QoYy5wYXBlcl9iZ2NvbG9yKX19fSx2JiYoaCgicGF0aGJhci50aGlja25lc3MiLGUucGF0aGJhci50ZXh0Zm9udC5zaXplKzIqbCksaCgicGF0aGJhci5zaWRlIiksaCgicGF0aGJhci5lZGdlc2hhcGUiKSksaCgic29ydCIpLGgoInJvb3QuY29sb3IiKSxvKGUsYyxoKSxlLl9sZW5ndGg9bnVsbH1lbHNlIGUudmlzaWJsZT0hMX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6MzY3LCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiOjM3OSwiLi4vLi4vbGliIjo1MTUsIi4uLy4uL3Bsb3RzL2RvbWFpbiI6NTkzLCIuLi9iYXIvY29uc3RhbnRzIjo2NTksIi4uL2Jhci9kZWZhdWx0cyI6NjYxLCIuL2F0dHJpYnV0ZXMiOjEwODR9XSwxMDg5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4uL3N1bmJ1cnN0L2hlbHBlcnMiKSxhPXQoIi4uL2Jhci91bmlmb3JtX3RleHQiKS5jbGVhck1pblRleHRTaXplLG89dCgiLi4vYmFyL3N0eWxlIikucmVzaXplVGV4dCxzPXQoIi4vcGxvdF9vbmUiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbCxjKXt2YXIgdSxmLGg9Yy50eXBlLHA9Yy5kcmF3RGVzY2VuZGFudHMsZD10Ll9mdWxsTGF5b3V0LG09ZFsiXyIraCsibGF5ZXIiXSxnPSFyOyhhKGgsZCksKHU9bS5zZWxlY3RBbGwoImcudHJhY2UuIitoKS5kYXRhKGUsKGZ1bmN0aW9uKHQpe3JldHVybiB0WzBdLnRyYWNlLnVpZH0pKSkuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJ0cmFjZSIsITApLmNsYXNzZWQoaCwhMCksdS5vcmRlcigpLCFkLnVuaWZvcm10ZXh0Lm1vZGUmJmkuaGFzVHJhbnNpdGlvbihyKSk/KGwmJihmPWwoKSksbi50cmFuc2l0aW9uKCkuZHVyYXRpb24oci5kdXJhdGlvbikuZWFzZShyLmVhc2luZykuZWFjaCgiZW5kIiwoZnVuY3Rpb24oKXtmJiZmKCl9KSkuZWFjaCgiaW50ZXJydXB0IiwoZnVuY3Rpb24oKXtmJiZmKCl9KSkuZWFjaCgoZnVuY3Rpb24oKXttLnNlbGVjdEFsbCgiZy50cmFjZSIpLmVhY2goKGZ1bmN0aW9uKGUpe3ModCxlLHRoaXMscixwKX0pKX0pKSk6KHUuZWFjaCgoZnVuY3Rpb24oZSl7cyh0LGUsdGhpcyxyLHApfSkpLGQudW5pZm9ybXRleHQubW9kZSYmbyh0LG0uc2VsZWN0QWxsKCIudHJhY2UiKSxoKSk7ZyYmdS5leGl0KCkucmVtb3ZlKCl9fSx7Ii4uL2Jhci9zdHlsZSI6NjcxLCIuLi9iYXIvdW5pZm9ybV90ZXh0Ijo2NzMsIi4uL3N1bmJ1cnN0L2hlbHBlcnMiOjEwNjQsIi4vcGxvdF9vbmUiOjEwOTgsIkBwbG90bHkvZDMiOjU4fV0sMTA5MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLG89dCgiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIikscz10KCIuL3BhcnRpdGlvbiIpLGw9dCgiLi9zdHlsZSIpLnN0eWxlT25lLGM9dCgiLi9jb25zdGFudHMiKSx1PXQoIi4uL3N1bmJ1cnN0L2hlbHBlcnMiKSxmPXQoIi4uL3N1bmJ1cnN0L2Z4Iik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGgscCl7dmFyIGQ9cC5iYXJEaWZZLG09cC53aWR0aCxnPXAuaGVpZ2h0LHY9cC52aWV3WCx5PXAudmlld1kseD1wLnBhdGhTbGljZSxiPXAudG9Nb3ZlSW5zaWRlU2xpY2UsXz1wLnN0clRyYW5zZm9ybSx3PXAuaGFzVHJhbnNpdGlvbixUPXAuaGFuZGxlU2xpY2VzRXhpdCxrPXAubWFrZVVwZGF0ZVNsaWNlSW50ZXJwb2xhdG9yLEE9cC5tYWtlVXBkYXRlVGV4dEludGVycG9sYXRvcixNPXt9LFM9dC5fZnVsbExheW91dCxFPWVbMF0sTD1FLnRyYWNlLEM9RS5oaWVyYXJjaHksUD1tL0wuX2VudHJ5RGVwdGgsST11Lmxpc3RQYXRoKHIuZGF0YSwiaWQiKSxPPXMoQy5jb3B5KCksW20sZ10se3BhY2tpbmc6ImRpY2UiLHBhZDp7aW5uZXI6MCx0b3A6MCxsZWZ0OjAscmlnaHQ6MCxib3R0b206MH19KS5kZXNjZW5kYW50cygpOyhPPU8uZmlsdGVyKChmdW5jdGlvbih0KXt2YXIgZT1JLmluZGV4T2YodC5kYXRhLmlkKTtyZXR1cm4tMSE9PWUmJih0LngwPVAqZSx0LngxPVAqKGUrMSksdC55MD1kLHQueTE9ZCtnLHQub25QYXRoYmFyPSEwLCEwKX0pKSkucmV2ZXJzZSgpLChoPWguZGF0YShPLHUuZ2V0UHRJZCkpLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgicGF0aGJhciIsITApLFQoaCwhMCxNLFttLGddLHgpLGgub3JkZXIoKTt2YXIgej1oO3cmJih6PXoudHJhbnNpdGlvbigpLmVhY2goImVuZCIsKGZ1bmN0aW9uKCl7dmFyIGU9bi5zZWxlY3QodGhpcyk7dS5zZXRTbGljZUN1cnNvcihlLHQse2hpZGVPblJvb3Q6ITEsaGlkZU9uTGVhdmVzOiExLGlzVHJhbnNpdGlvbmluZzohMX0pfSkpKSx6LmVhY2goKGZ1bmN0aW9uKHMpe3MuX3gwPXYocy54MCkscy5feDE9dihzLngxKSxzLl95MD15KHMueTApLHMuX3kxPXkocy55MSkscy5faG92ZXJYPXYocy54MS1NYXRoLm1pbihtLGcpLzIpLHMuX2hvdmVyWT15KHMueTEtZy8yKTt2YXIgaD1uLnNlbGVjdCh0aGlzKSxwPWkuZW5zdXJlU2luZ2xlKGgsInBhdGgiLCJzdXJmYWNlIiwoZnVuY3Rpb24odCl7dC5zdHlsZSgicG9pbnRlci1ldmVudHMiLCJhbGwiKX0pKTt3P3AudHJhbnNpdGlvbigpLmF0dHJUd2VlbigiZCIsKGZ1bmN0aW9uKHQpe3ZhciBlPWsodCwhMCxNLFttLGddKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHgoZSh0KSl9fSkpOnAuYXR0cigiZCIseCksaC5jYWxsKGYscix0LGUse3N0eWxlT25lOmwsZXZlbnREYXRhS2V5czpjLmV2ZW50RGF0YUtleXMsdHJhbnNpdGlvblRpbWU6Yy5DTElDS19UUkFOU0lUSU9OX1RJTUUsdHJhbnNpdGlvbkVhc2luZzpjLkNMSUNLX1RSQU5TSVRJT05fRUFTSU5HfSkuY2FsbCh1LnNldFNsaWNlQ3Vyc29yLHQse2hpZGVPblJvb3Q6ITEsaGlkZU9uTGVhdmVzOiExLGlzVHJhbnNpdGlvbmluZzp0Ll90cmFuc2l0aW9uaW5nfSkscC5jYWxsKGwscyxMLHtob3ZlcmVkOiExfSkscy5fdGV4dD0odS5nZXRQdExhYmVsKHMpfHwiIikuc3BsaXQoIjxicj4iKS5qb2luKCIgIil8fCIiO3ZhciBkPWkuZW5zdXJlU2luZ2xlKGgsImciLCJzbGljZXRleHQiKSxUPWkuZW5zdXJlU2luZ2xlKGQsInRleHQiLCIiLChmdW5jdGlvbih0KXt0LmF0dHIoImRhdGEtbm90ZXgiLDEpfSkpLEU9aS5lbnN1cmVVbmlmb3JtRm9udFNpemUodCx1LmRldGVybWluZVRleHRGb250KEwscyxTLmZvbnQse29uUGF0aGJhcjohMH0pKTtULnRleHQocy5fdGV4dHx8IiAiKS5jbGFzc2VkKCJzbGljZXRleHQiLCEwKS5hdHRyKCJ0ZXh0LWFuY2hvciIsInN0YXJ0IikuY2FsbChhLmZvbnQsRSkuY2FsbChvLmNvbnZlcnRUb1RzcGFucyx0KSxzLnRleHRCQj1hLmJCb3goVC5ub2RlKCkpLHMudHJhbnNmb3JtPWIocyx7Zm9udFNpemU6RS5zaXplLG9uUGF0aGJhcjohMH0pLHMudHJhbnNmb3JtLmZvbnRTaXplPUUuc2l6ZSx3P1QudHJhbnNpdGlvbigpLmF0dHJUd2VlbigidHJhbnNmb3JtIiwoZnVuY3Rpb24odCl7dmFyIGU9QSh0LCEwLE0sW20sZ10pO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gXyhlKHQpKX19KSk6VC5hdHRyKCJ0cmFuc2Zvcm0iLF8ocykpfSkpfX0seyIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjM4OSwiLi4vLi4vbGliIjo1MTUsIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyI6NTQxLCIuLi9zdW5idXJzdC9meCI6MTA2MywiLi4vc3VuYnVyc3QvaGVscGVycyI6MTA2NCwiLi9jb25zdGFudHMiOjEwODcsIi4vcGFydGl0aW9uIjoxMDk2LCIuL3N0eWxlIjoxMDk5LCJAcGxvdGx5L2QzIjo1OH1dLDEwOTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxvPXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpLHM9dCgiLi9wYXJ0aXRpb24iKSxsPXQoIi4vc3R5bGUiKS5zdHlsZU9uZSxjPXQoIi4vY29uc3RhbnRzIiksdT10KCIuLi9zdW5idXJzdC9oZWxwZXJzIiksZj10KCIuLi9zdW5idXJzdC9meCIpLGg9dCgiLi4vc3VuYnVyc3QvcGxvdCIpLmZvcm1hdFNsaWNlTGFiZWw7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHAsZCl7dmFyIG09ZC53aWR0aCxnPWQuaGVpZ2h0LHY9ZC52aWV3WCx5PWQudmlld1kseD1kLnBhdGhTbGljZSxiPWQudG9Nb3ZlSW5zaWRlU2xpY2UsXz1kLnN0clRyYW5zZm9ybSx3PWQuaGFzVHJhbnNpdGlvbixUPWQuaGFuZGxlU2xpY2VzRXhpdCxrPWQubWFrZVVwZGF0ZVNsaWNlSW50ZXJwb2xhdG9yLEE9ZC5tYWtlVXBkYXRlVGV4dEludGVycG9sYXRvcixNPWQucHJldkVudHJ5LFM9dC5fZnVsbExheW91dCxFPWVbMF0udHJhY2UsTD0tMSE9PUUudGV4dHBvc2l0aW9uLmluZGV4T2YoImxlZnQiKSxDPS0xIT09RS50ZXh0cG9zaXRpb24uaW5kZXhPZigicmlnaHQiKSxQPS0xIT09RS50ZXh0cG9zaXRpb24uaW5kZXhPZigiYm90dG9tIiksST0hUCYmIUUubWFya2VyLnBhZC50fHxQJiYhRS5tYXJrZXIucGFkLmIsTz1zKHIsW20sZ10se3BhY2tpbmc6RS50aWxpbmcucGFja2luZyxzcXVhcmlmeXJhdGlvOkUudGlsaW5nLnNxdWFyaWZ5cmF0aW8sZmxpcFg6RS50aWxpbmcuZmxpcC5pbmRleE9mKCJ4Iik+LTEsZmxpcFk6RS50aWxpbmcuZmxpcC5pbmRleE9mKCJ5Iik+LTEscGFkOntpbm5lcjpFLnRpbGluZy5wYWQsdG9wOkUubWFya2VyLnBhZC50LGxlZnQ6RS5tYXJrZXIucGFkLmwscmlnaHQ6RS5tYXJrZXIucGFkLnIsYm90dG9tOkUubWFya2VyLnBhZC5ifX0pLmRlc2NlbmRhbnRzKCksej0xLzAsRD0tMS8wO08uZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9dC5kZXB0aDtlPj1FLl9tYXhEZXB0aD8odC54MD10LngxPSh0LngwK3QueDEpLzIsdC55MD10LnkxPSh0LnkwK3QueTEpLzIpOih6PU1hdGgubWluKHosZSksRD1NYXRoLm1heChELGUpKX0pKSxwPXAuZGF0YShPLHUuZ2V0UHRJZCksRS5fbWF4VmlzaWJsZUxheWVycz1pc0Zpbml0ZShEKT9ELXorMTowLHAuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJzbGljZSIsITApLFQocCwhMSx7fSxbbSxnXSx4KSxwLm9yZGVyKCk7dmFyIFI9bnVsbDtpZih3JiZNKXt2YXIgRj11LmdldFB0SWQoTSk7cC5lYWNoKChmdW5jdGlvbih0KXtudWxsPT09UiYmdS5nZXRQdElkKHQpPT09RiYmKFI9e3gwOnQueDAseDE6dC54MSx5MDp0LnkwLHkxOnQueTF9KX0pKX12YXIgQj1mdW5jdGlvbigpe3JldHVybiBSfHx7eDA6MCx4MTptLHkwOjAseTE6Z319LE49cDtyZXR1cm4gdyYmKE49Ti50cmFuc2l0aW9uKCkuZWFjaCgiZW5kIiwoZnVuY3Rpb24oKXt2YXIgZT1uLnNlbGVjdCh0aGlzKTt1LnNldFNsaWNlQ3Vyc29yKGUsdCx7aGlkZU9uUm9vdDohMCxoaWRlT25MZWF2ZXM6ITEsaXNUcmFuc2l0aW9uaW5nOiExfSl9KSkpLE4uZWFjaCgoZnVuY3Rpb24ocyl7dmFyIHA9dS5pc0hlYWRlcihzLEUpO3MuX3gwPXYocy54MCkscy5feDE9dihzLngxKSxzLl95MD15KHMueTApLHMuX3kxPXkocy55MSkscy5faG92ZXJYPXYocy54MS1FLm1hcmtlci5wYWQucikscy5faG92ZXJZPXkoUD9zLnkxLUUubWFya2VyLnBhZC5iLzI6cy55MCtFLm1hcmtlci5wYWQudC8yKTt2YXIgZD1uLnNlbGVjdCh0aGlzKSxUPWkuZW5zdXJlU2luZ2xlKGQsInBhdGgiLCJzdXJmYWNlIiwoZnVuY3Rpb24odCl7dC5zdHlsZSgicG9pbnRlci1ldmVudHMiLCJhbGwiKX0pKTt3P1QudHJhbnNpdGlvbigpLmF0dHJUd2VlbigiZCIsKGZ1bmN0aW9uKHQpe3ZhciBlPWsodCwhMSxCKCksW20sZ10pO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4geChlKHQpKX19KSk6VC5hdHRyKCJkIix4KSxkLmNhbGwoZixyLHQsZSx7c3R5bGVPbmU6bCxldmVudERhdGFLZXlzOmMuZXZlbnREYXRhS2V5cyx0cmFuc2l0aW9uVGltZTpjLkNMSUNLX1RSQU5TSVRJT05fVElNRSx0cmFuc2l0aW9uRWFzaW5nOmMuQ0xJQ0tfVFJBTlNJVElPTl9FQVNJTkd9KS5jYWxsKHUuc2V0U2xpY2VDdXJzb3IsdCx7aXNUcmFuc2l0aW9uaW5nOnQuX3RyYW5zaXRpb25pbmd9KSxULmNhbGwobCxzLEUse2hvdmVyZWQ6ITF9KSxzLngwPT09cy54MXx8cy55MD09PXMueTE/cy5fdGV4dD0iIjpzLl90ZXh0PXA/ST8iIjp1LmdldFB0TGFiZWwocyl8fCIiOmgocyxyLEUsZSxTKXx8IiI7dmFyIE09aS5lbnN1cmVTaW5nbGUoZCwiZyIsInNsaWNldGV4dCIpLE89aS5lbnN1cmVTaW5nbGUoTSwidGV4dCIsIiIsKGZ1bmN0aW9uKHQpe3QuYXR0cigiZGF0YS1ub3RleCIsMSl9KSksej1pLmVuc3VyZVVuaWZvcm1Gb250U2l6ZSh0LHUuZGV0ZXJtaW5lVGV4dEZvbnQoRSxzLFMuZm9udCkpO08udGV4dChzLl90ZXh0fHwiICIpLmNsYXNzZWQoInNsaWNldGV4dCIsITApLmF0dHIoInRleHQtYW5jaG9yIixDPyJlbmQiOkx8fHA/InN0YXJ0IjoibWlkZGxlIikuY2FsbChhLmZvbnQseikuY2FsbChvLmNvbnZlcnRUb1RzcGFucyx0KSxzLnRleHRCQj1hLmJCb3goTy5ub2RlKCkpLHMudHJhbnNmb3JtPWIocyx7Zm9udFNpemU6ei5zaXplLGlzSGVhZGVyOnB9KSxzLnRyYW5zZm9ybS5mb250U2l6ZT16LnNpemUsdz9PLnRyYW5zaXRpb24oKS5hdHRyVHdlZW4oInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQpe3ZhciBlPUEodCwhMSxCKCksW20sZ10pO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gXyhlKHQpKX19KSk6Ty5hdHRyKCJ0cmFuc2Zvcm0iLF8ocykpfSkpLFJ9fSx7Ii4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6Mzg5LCIuLi8uLi9saWIiOjUxNSwiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIjo1NDEsIi4uL3N1bmJ1cnN0L2Z4IjoxMDYzLCIuLi9zdW5idXJzdC9oZWxwZXJzIjoxMDY0LCIuLi9zdW5idXJzdC9wbG90IjoxMDY4LCIuL2NvbnN0YW50cyI6MTA4NywiLi9wYXJ0aXRpb24iOjEwOTYsIi4vc3R5bGUiOjEwOTksIkBwbG90bHkvZDMiOjU4fV0sMTA5MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24gdChlLHIsbil7dmFyIGk7bi5zd2FwWFkmJihpPWUueDAsZS54MD1lLnkwLGUueTA9aSxpPWUueDEsZS54MT1lLnkxLGUueTE9aSksbi5mbGlwWCYmKGk9ZS54MCxlLngwPXJbMF0tZS54MSxlLngxPXJbMF0taSksbi5mbGlwWSYmKGk9ZS55MCxlLnkwPXJbMV0tZS55MSxlLnkxPXJbMV0taSk7dmFyIGE9ZS5jaGlsZHJlbjtpZihhKWZvcih2YXIgbz0wO288YS5sZW5ndGg7bysrKXQoYVtvXSxyLG4pfX0se31dLDEwOTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToidHJlZW1hcCIsYmFzZVBsb3RNb2R1bGU6dCgiLi9iYXNlX3Bsb3QiKSxjYXRlZ29yaWVzOltdLGFuaW1hdGFibGU6ITAsYXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxsYXlvdXRBdHRyaWJ1dGVzOnQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksc3VwcGx5TGF5b3V0RGVmYXVsdHM6dCgiLi9sYXlvdXRfZGVmYXVsdHMiKSxjYWxjOnQoIi4vY2FsYyIpLmNhbGMsY3Jvc3NUcmFjZUNhbGM6dCgiLi9jYWxjIikuY3Jvc3NUcmFjZUNhbGMscGxvdDp0KCIuL3Bsb3QiKSxzdHlsZTp0KCIuL3N0eWxlIikuc3R5bGUsY29sb3JiYXI6dCgiLi4vc2NhdHRlci9tYXJrZXJfY29sb3JiYXIiKSxtZXRhOnt9fX0seyIuLi9zY2F0dGVyL21hcmtlcl9jb2xvcmJhciI6OTU0LCIuL2F0dHJpYnV0ZXMiOjEwODQsIi4vYmFzZV9wbG90IjoxMDg1LCIuL2NhbGMiOjEwODYsIi4vZGVmYXVsdHMiOjEwODgsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjEwOTQsIi4vbGF5b3V0X2RlZmF1bHRzIjoxMDk1LCIuL3Bsb3QiOjEwOTcsIi4vc3R5bGUiOjEwOTl9XSwxMDk0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17dHJlZW1hcGNvbG9yd2F5Ont2YWxUeXBlOiJjb2xvcmxpc3QiLGVkaXRUeXBlOiJjYWxjIn0sZXh0ZW5kdHJlZW1hcGNvbG9yczp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToiY2FsYyJ9fX0se31dLDEwOTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuL2xheW91dF9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gcihyLGEpe3JldHVybiBuLmNvZXJjZSh0LGUsaSxyLGEpfXIoInRyZWVtYXBjb2xvcndheSIsZS5jb2xvcndheSkscigiZXh0ZW5kdHJlZW1hcGNvbG9ycyIpfX0seyIuLi8uLi9saWIiOjUxNSwiLi9sYXlvdXRfYXR0cmlidXRlcyI6MTA5NH1dLDEwOTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMtaGllcmFyY2h5IiksaT10KCIuL2ZsaXBfdHJlZSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIGEsbz1yLmZsaXBYLHM9ci5mbGlwWSxsPSJkaWNlLXNsaWNlIj09PXIucGFja2luZyxjPXIucGFkW3M/ImJvdHRvbSI6InRvcCJdLHU9ci5wYWRbbz8icmlnaHQiOiJsZWZ0Il0sZj1yLnBhZFtvPyJsZWZ0IjoicmlnaHQiXSxoPXIucGFkW3M/InRvcCI6ImJvdHRvbSJdO2wmJihhPXUsdT1jLGM9YSxhPWYsZj1oLGg9YSk7dmFyIHA9bi50cmVlbWFwKCkudGlsZShmdW5jdGlvbih0LGUpe3N3aXRjaCh0KXtjYXNlInNxdWFyaWZ5IjpyZXR1cm4gbi50cmVlbWFwU3F1YXJpZnkucmF0aW8oZSk7Y2FzZSJiaW5hcnkiOnJldHVybiBuLnRyZWVtYXBCaW5hcnk7Y2FzZSJkaWNlIjpyZXR1cm4gbi50cmVlbWFwRGljZTtjYXNlInNsaWNlIjpyZXR1cm4gbi50cmVlbWFwU2xpY2U7ZGVmYXVsdDpyZXR1cm4gbi50cmVlbWFwU2xpY2VEaWNlfX0oci5wYWNraW5nLHIuc3F1YXJpZnlyYXRpbykpLnBhZGRpbmdJbm5lcihyLnBhZC5pbm5lcikucGFkZGluZ0xlZnQodSkucGFkZGluZ1JpZ2h0KGYpLnBhZGRpbmdUb3AoYykucGFkZGluZ0JvdHRvbShoKS5zaXplKGw/W2VbMV0sZVswXV06ZSkodCk7cmV0dXJuKGx8fG98fHMpJiZpKHAsZSx7c3dhcFhZOmwsZmxpcFg6byxmbGlwWTpzfSkscH19LHsiLi9mbGlwX3RyZWUiOjEwOTIsImQzLWhpZXJhcmNoeSI6MTE1fV0sMTA5NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2RyYXciKSxpPXQoIi4vZHJhd19kZXNjZW5kYW50cyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixhKXtyZXR1cm4gbih0LGUscixhLHt0eXBlOiJ0cmVlbWFwIixkcmF3RGVzY2VuZGFudHM6aX0pfX0seyIuL2RyYXciOjEwODksIi4vZHJhd19kZXNjZW5kYW50cyI6MTA5MX1dLDEwOTg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiZDMtaW50ZXJwb2xhdGUiKS5pbnRlcnBvbGF0ZSxhPXQoIi4uL3N1bmJ1cnN0L2hlbHBlcnMiKSxvPXQoIi4uLy4uL2xpYiIpLHM9dCgiLi4vYmFyL2NvbnN0YW50cyIpLlRFWFRQQUQsbD10KCIuLi9iYXIvcGxvdCIpLnRvTW92ZUluc2lkZUJhcixjPXQoIi4uL2Jhci91bmlmb3JtX3RleHQiKS5yZWNvcmRNaW5UZXh0U2l6ZSx1PXQoIi4vY29uc3RhbnRzIiksZj10KCIuL2RyYXdfYW5jZXN0b3JzIik7ZnVuY3Rpb24gaCh0KXtyZXR1cm4gYS5pc0hpZXJhcmNoeVJvb3QodCk/IiI6YS5nZXRQdElkKHQpfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscixwLGQpe3ZhciBtPXQuX2Z1bGxMYXlvdXQsZz1lWzBdLHY9Zy50cmFjZSx5PSJpY2ljbGUiPT09di50eXBlLHg9Zy5oaWVyYXJjaHksYj1hLmZpbmRFbnRyeVdpdGhMZXZlbCh4LHYubGV2ZWwpLF89bi5zZWxlY3Qociksdz1fLnNlbGVjdEFsbCgiZy5wYXRoYmFyIiksVD1fLnNlbGVjdEFsbCgiZy5zbGljZSIpO2lmKCFiKXJldHVybiB3LnJlbW92ZSgpLHZvaWQgVC5yZW1vdmUoKTt2YXIgaz1hLmlzSGllcmFyY2h5Um9vdChiKSxBPSFtLnVuaWZvcm10ZXh0Lm1vZGUmJmEuaGFzVHJhbnNpdGlvbihwKSxNPWEuZ2V0TWF4RGVwdGgodiksUz1tLl9zaXplLEU9di5kb21haW4sTD1TLncqKEUueFsxXS1FLnhbMF0pLEM9Uy5oKihFLnlbMV0tRS55WzBdKSxQPUwsST12LnBhdGhiYXIudGhpY2tuZXNzLE89di5tYXJrZXIubGluZS53aWR0aCt1LmdhcFdpdGhQYXRoYmFyLHo9di5wYXRoYmFyLnZpc2libGU/di5wYXRoYmFyLnNpZGUuaW5kZXhPZigiYm90dG9tIik+LTE/QytPOi0oSStPKTowLEQ9e3gwOlAseDE6UCx5MDp6LHkxOnorSX0sUj1mdW5jdGlvbih0LGUscil7dmFyIG49di50aWxpbmcucGFkLGk9ZnVuY3Rpb24odCl7cmV0dXJuIHQtbjw9ZS54MH0sYT1mdW5jdGlvbih0KXtyZXR1cm4gdCtuPj1lLngxfSxvPWZ1bmN0aW9uKHQpe3JldHVybiB0LW48PWUueTB9LHM9ZnVuY3Rpb24odCl7cmV0dXJuIHQrbj49ZS55MX07cmV0dXJuIHQueDA9PT1lLngwJiZ0LngxPT09ZS54MSYmdC55MD09PWUueTAmJnQueTE9PT1lLnkxP3t4MDp0LngwLHgxOnQueDEseTA6dC55MCx5MTp0LnkxfTp7eDA6aSh0LngwLW4pPzA6YSh0LngwLW4pP3JbMF06dC54MCx4MTppKHQueDErbik/MDphKHQueDErbik/clswXTp0LngxLHkwOm8odC55MC1uKT8wOnModC55MC1uKT9yWzFdOnQueTAseTE6byh0LnkxK24pPzA6cyh0LnkxK24pP3JbMV06dC55MX19LEY9bnVsbCxCPXt9LE49e30saj1udWxsLFU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZT9CW2godCldOk5baCh0KV19LFY9ZnVuY3Rpb24odCxlLHIsbil7aWYoZSlyZXR1cm4gQltoKHgpXXx8RDt2YXIgaT1OW3YubGV2ZWxdfHxyO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gdC5kYXRhLmRlcHRoLWIuZGF0YS5kZXB0aDxNfSh0KT9SKHQsaSxuKTp7fX07Zy5oYXNNdWx0aXBsZVJvb3RzJiZrJiZNKyssdi5fbWF4RGVwdGg9TSx2Ll9iYWNrZ3JvdW5kQ29sb3I9bS5wYXBlcl9iZ2NvbG9yLHYuX2VudHJ5RGVwdGg9Yi5kYXRhLmRlcHRoLHYuX2F0Um9vdExldmVsPWs7dmFyIEg9LUwvMitTLmwrUy53KihFLnhbMV0rRS54WzBdKS8yLHE9LUMvMitTLnQrUy5oKigxLShFLnlbMV0rRS55WzBdKS8yKSxHPWZ1bmN0aW9uKHQpe3JldHVybiBIK3R9LFk9ZnVuY3Rpb24odCl7cmV0dXJuIHErdH0sVz1ZKDApLFg9RygwKSxaPWZ1bmN0aW9uKHQpe3JldHVybiBYK3R9LEo9ZnVuY3Rpb24odCl7cmV0dXJuIFcrdH07ZnVuY3Rpb24gSyh0LGUpe3JldHVybiB0KyIsIitlfXZhciBRPVooMCksJD1mdW5jdGlvbih0KXt0Lng9TWF0aC5tYXgoUSx0LngpfSx0dD12LnBhdGhiYXIuZWRnZXNoYXBlLGV0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC54MCxuPXQueDEsaT10LnkwLGE9dC55MSxvPXQudGV4dEJCLHU9ZnVuY3Rpb24odCl7cmV0dXJuLTEhPT12LnRleHRwb3NpdGlvbi5pbmRleE9mKHQpfSxmPXUoImJvdHRvbSIpLGg9dSgidG9wIil8fGUuaXNIZWFkZXImJiFmPyJzdGFydCI6Zj8iZW5kIjoibWlkZGxlIixwPXUoInJpZ2h0IiksZD11KCJsZWZ0Iil8fGUub25QYXRoYmFyPy0xOnA/MTowLGc9dlt5PyJ0aWxpbmciOiJtYXJrZXIiXS5wYWQ7aWYoZS5pc0hlYWRlcil7aWYoKHIrPSh5P2c6Zy5sKS1zKT49KG4tPSh5P2c6Zy5yKS1zKSl7dmFyIHg9KHIrbikvMjtyPXgsbj14fXZhciBiO2Y/aTwoYj1hLSh5P2c6Zy5iKSkmJmI8YSYmKGk9Yik6aTwoYj1pKyh5P2c6Zy50KSkmJmI8YSYmKGE9Yil9dmFyIF89bChyLG4saSxhLG8se2lzSG9yaXpvbnRhbDohMSxjb25zdHJhaW5lZDohMCxhbmdsZTowLGFuY2hvcjpoLGxlZnRUb1JpZ2h0OmR9KTtyZXR1cm4gXy5mb250U2l6ZT1lLmZvbnRTaXplLF8udGFyZ2V0WD1HKF8udGFyZ2V0WCksXy50YXJnZXRZPVkoXy50YXJnZXRZKSxpc05hTihfLnRhcmdldFgpfHxpc05hTihfLnRhcmdldFkpP3t9OihyIT09biYmaSE9PWEmJmModi50eXBlLF8sbSkse3NjYWxlOl8uc2NhbGUscm90YXRlOl8ucm90YXRlLHRleHRYOl8udGV4dFgsdGV4dFk6Xy50ZXh0WSxhbmNob3JYOl8uYW5jaG9yWCxhbmNob3JZOl8uYW5jaG9yWSx0YXJnZXRYOl8udGFyZ2V0WCx0YXJnZXRZOl8udGFyZ2V0WX0pfSxydD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcixuPTAsaT10OyFyJiZuPE07KW4rKywoaT1pLnBhcmVudCk/cj1VKGksZSk6bj1NO3JldHVybiByfHx7fX0sbnQ9ZnVuY3Rpb24odCxlLHIsbixhKXt2YXIgcyxsPVUodCxlKTtpZihsKXM9bDtlbHNlIGlmKGUpcz1EO2Vsc2UgaWYoRilpZih0LnBhcmVudCl7dmFyIGM9anx8cjtjJiYhZT9zPVIodCxjLG4pOihzPXt9LG8uZXh0ZW5kRmxhdChzLHJ0KHQsZSkpKX1lbHNlIHM9by5leHRlbmRGbGF0KHt9LHQpLHkmJigiaCI9PT1hLm9yaWVudGF0aW9uP2EuZmxpcFg/cy54MD10LngxOnMueDE9MDphLmZsaXBZP3MueTA9dC55MTpzLnkxPTApO2Vsc2Ugcz17fTtyZXR1cm4gaShzLHt4MDp0LngwLHgxOnQueDEseTA6dC55MCx5MTp0LnkxfSl9LGl0PWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBzPVUodCxlKSxsPXt9LHU9Vih0LGUscixuKTtvLmV4dGVuZEZsYXQobCx7dHJhbnNmb3JtOmV0KHt4MDp1LngwLHgxOnUueDEseTA6dS55MCx5MTp1LnkxLHRleHRCQjp0LnRleHRCQixfdGV4dDp0Ll90ZXh0fSx7aXNIZWFkZXI6YS5pc0hlYWRlcih0LHYpfSl9KSxzP2w9czp0LnBhcmVudCYmby5leHRlbmRGbGF0KGwscnQodCxlKSk7dmFyIGY9dC50cmFuc2Zvcm07cmV0dXJuIHQueDAhPT10LngxJiZ0LnkwIT09dC55MSYmYyh2LnR5cGUsZixtKSxpKGwse3RyYW5zZm9ybTp7c2NhbGU6Zi5zY2FsZSxyb3RhdGU6Zi5yb3RhdGUsdGV4dFg6Zi50ZXh0WCx0ZXh0WTpmLnRleHRZLGFuY2hvclg6Zi5hbmNob3JYLGFuY2hvclk6Zi5hbmNob3JZLHRhcmdldFg6Zi50YXJnZXRYLHRhcmdldFk6Zi50YXJnZXRZfX0pfSxhdD1mdW5jdGlvbih0LGUscixhLG8pe3ZhciBzPWFbMF0sbD1hWzFdO0E/dC5leGl0KCkudHJhbnNpdGlvbigpLmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQ9bi5zZWxlY3QodGhpcyk7dC5zZWxlY3QoInBhdGguc3VyZmFjZSIpLnRyYW5zaXRpb24oKS5hdHRyVHdlZW4oImQiLChmdW5jdGlvbih0KXt2YXIgcj1mdW5jdGlvbih0LGUscixuKXt2YXIgYSxvPVUodCxlKTtpZihlKWE9RDtlbHNle3ZhciBzPVUoYixlKTthPXM/Uih0LHMsbik6e319cmV0dXJuIGkobyxhKX0odCxlLDAsW3MsbF0pO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gbyhyKHQpKX19KSksdC5zZWxlY3QoImcuc2xpY2V0ZXh0IikuYXR0cigib3BhY2l0eSIsMCl9KSkucmVtb3ZlKCk6dC5leGl0KCkucmVtb3ZlKCl9LG90PWZ1bmN0aW9uKHQpe3ZhciBlPXQudHJhbnNmb3JtO3JldHVybiB0LngwIT09dC54MSYmdC55MCE9PXQueTEmJmModi50eXBlLGUsbSksby5nZXRUZXh0VHJhbnNmb3JtKHt0ZXh0WDplLnRleHRYLHRleHRZOmUudGV4dFksYW5jaG9yWDplLmFuY2hvclgsYW5jaG9yWTplLmFuY2hvclksdGFyZ2V0WDplLnRhcmdldFgsdGFyZ2V0WTplLnRhcmdldFksc2NhbGU6ZS5zY2FsZSxyb3RhdGU6ZS5yb3RhdGV9KX07QSYmKHcuZWFjaCgoZnVuY3Rpb24odCl7QltoKHQpXT17eDA6dC54MCx4MTp0LngxLHkwOnQueTAseTE6dC55MX0sdC50cmFuc2Zvcm0mJihCW2godCldLnRyYW5zZm9ybT17dGV4dFg6dC50cmFuc2Zvcm0udGV4dFgsdGV4dFk6dC50cmFuc2Zvcm0udGV4dFksYW5jaG9yWDp0LnRyYW5zZm9ybS5hbmNob3JYLGFuY2hvclk6dC50cmFuc2Zvcm0uYW5jaG9yWSx0YXJnZXRYOnQudHJhbnNmb3JtLnRhcmdldFgsdGFyZ2V0WTp0LnRyYW5zZm9ybS50YXJnZXRZLHNjYWxlOnQudHJhbnNmb3JtLnNjYWxlLHJvdGF0ZTp0LnRyYW5zZm9ybS5yb3RhdGV9KX0pKSxULmVhY2goKGZ1bmN0aW9uKHQpe05baCh0KV09e3gwOnQueDAseDE6dC54MSx5MDp0LnkwLHkxOnQueTF9LHQudHJhbnNmb3JtJiYoTltoKHQpXS50cmFuc2Zvcm09e3RleHRYOnQudHJhbnNmb3JtLnRleHRYLHRleHRZOnQudHJhbnNmb3JtLnRleHRZLGFuY2hvclg6dC50cmFuc2Zvcm0uYW5jaG9yWCxhbmNob3JZOnQudHJhbnNmb3JtLmFuY2hvclksdGFyZ2V0WDp0LnRyYW5zZm9ybS50YXJnZXRYLHRhcmdldFk6dC50cmFuc2Zvcm0udGFyZ2V0WSxzY2FsZTp0LnRyYW5zZm9ybS5zY2FsZSxyb3RhdGU6dC50cmFuc2Zvcm0ucm90YXRlfSksIUYmJmEuaXNFbnRyeSh0KSYmKEY9dCl9KSkpLGo9ZCh0LGUsYixULHt3aWR0aDpMLGhlaWdodDpDLHZpZXdYOkcsdmlld1k6WSxwYXRoU2xpY2U6ZnVuY3Rpb24odCl7dmFyIGU9Ryh0LngwKSxyPUcodC54MSksbj1ZKHQueTApLGk9WSh0LnkxKSxhPXItZSxvPWktbjtpZighYXx8IW8pcmV0dXJuIiI7cmV0dXJuIk0iK0soZSxuKzApKyJMIitLKHItMCxuKSsiTCIrSyhyLGktMCkrIkwiK0soZSswLGkpKyJaIn0sdG9Nb3ZlSW5zaWRlU2xpY2U6ZXQscHJldkVudHJ5OkYsbWFrZVVwZGF0ZVNsaWNlSW50ZXJwb2xhdG9yOm50LG1ha2VVcGRhdGVUZXh0SW50ZXJwb2xhdG9yOml0LGhhbmRsZVNsaWNlc0V4aXQ6YXQsaGFzVHJhbnNpdGlvbjpBLHN0clRyYW5zZm9ybTpvdH0pLHYucGF0aGJhci52aXNpYmxlP2YodCxlLGIsdyx7YmFyRGlmWTp6LHdpZHRoOlAsaGVpZ2h0Okksdmlld1g6Wix2aWV3WTpKLHBhdGhTbGljZTpmdW5jdGlvbih0KXt2YXIgZT1aKE1hdGgubWF4KE1hdGgubWluKHQueDAsdC54MCksMCkpLHI9WihNYXRoLm1pbihNYXRoLm1heCh0LngxLHQueDEpLFApKSxuPUoodC55MCksaT1KKHQueTEpLGE9SS8yLG89e30scz17fTtvLng9ZSxzLng9cixvLnk9cy55PShuK2kpLzI7dmFyIGw9e3g6ZSx5Om59LGM9e3g6cix5Om59LHU9e3g6cix5Oml9LGY9e3g6ZSx5Oml9O3JldHVybiI+Ij09PXR0PyhsLngtPWEsYy54LT1hLHUueC09YSxmLngtPWEpOiIvIj09PXR0Pyh1LngtPWEsZi54LT1hLG8ueC09YS8yLHMueC09YS8yKToiXFwiPT09dHQ/KGwueC09YSxjLngtPWEsby54LT1hLzIscy54LT1hLzIpOiI8Ij09PXR0JiYoby54LT1hLHMueC09YSksJChsKSwkKGYpLCQobyksJChjKSwkKHUpLCQocyksIk0iK0sobC54LGwueSkrIkwiK0soYy54LGMueSkrIkwiK0socy54LHMueSkrIkwiK0sodS54LHUueSkrIkwiK0soZi54LGYueSkrIkwiK0soby54LG8ueSkrIloifSx0b01vdmVJbnNpZGVTbGljZTpldCxtYWtlVXBkYXRlU2xpY2VJbnRlcnBvbGF0b3I6bnQsbWFrZVVwZGF0ZVRleHRJbnRlcnBvbGF0b3I6aXQsaGFuZGxlU2xpY2VzRXhpdDphdCxoYXNUcmFuc2l0aW9uOkEsc3RyVHJhbnNmb3JtOm90fSk6dy5yZW1vdmUoKX19LHsiLi4vLi4vbGliIjo1MTUsIi4uL2Jhci9jb25zdGFudHMiOjY1OSwiLi4vYmFyL3Bsb3QiOjY2OCwiLi4vYmFyL3VuaWZvcm1fdGV4dCI6NjczLCIuLi9zdW5idXJzdC9oZWxwZXJzIjoxMDY0LCIuL2NvbnN0YW50cyI6MTA4NywiLi9kcmF3X2FuY2VzdG9ycyI6MTA5MCwiQHBsb3RseS9kMyI6NTgsImQzLWludGVycG9sYXRlIjoxMTZ9XSwxMDk5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxhPXQoIi4uLy4uL2xpYiIpLG89dCgiLi4vc3VuYnVyc3QvaGVscGVycyIpLHM9dCgiLi4vYmFyL3VuaWZvcm1fdGV4dCIpLnJlc2l6ZVRleHQ7ZnVuY3Rpb24gbCh0LGUscixuKXt2YXIgcyxsLGM9KG58fHt9KS5ob3ZlcmVkLHU9ZS5kYXRhLmRhdGEsZj11LmksaD11LmNvbG9yLHA9by5pc0hpZXJhcmNoeVJvb3QoZSksZD0xO2lmKGMpcz1yLl9ob3ZlcmVkLm1hcmtlci5saW5lLmNvbG9yLGw9ci5faG92ZXJlZC5tYXJrZXIubGluZS53aWR0aDtlbHNlIGlmKHAmJmg9PT1yLnJvb3QuY29sb3IpZD0xMDAscz0icmdiYSgwLDAsMCwwKSIsbD0wO2Vsc2UgaWYocz1hLmNhc3RPcHRpb24ocixmLCJtYXJrZXIubGluZS5jb2xvciIpfHxpLmRlZmF1bHRMaW5lLGw9YS5jYXN0T3B0aW9uKHIsZiwibWFya2VyLmxpbmUud2lkdGgiKXx8MCwhci5faGFzQ29sb3JzY2FsZSYmIWUub25QYXRoYmFyKXt2YXIgbT1yLm1hcmtlci5kZXB0aGZhZGU7aWYobSl7dmFyIGcsdj1pLmNvbWJpbmUoaS5hZGRPcGFjaXR5KHIuX2JhY2tncm91bmRDb2xvciwuNzUpLGgpO2lmKCEwPT09bSl7dmFyIHk9by5nZXRNYXhEZXB0aChyKTtnPWlzRmluaXRlKHkpP28uaXNMZWFmKGUpPzA6ci5fbWF4VmlzaWJsZUxheWVycy0oZS5kYXRhLmRlcHRoLXIuX2VudHJ5RGVwdGgpOmUuZGF0YS5oZWlnaHQrMX1lbHNlIGc9ZS5kYXRhLmRlcHRoLXIuX2VudHJ5RGVwdGgsci5fYXRSb290TGV2ZWx8fGcrKztpZihnPjApZm9yKHZhciB4PTA7eDxnO3grKyl7dmFyIGI9LjUqeC9nO2g9aS5jb21iaW5lKGkuYWRkT3BhY2l0eSh2LGIpLGgpfX19dC5zdHlsZSgic3Ryb2tlLXdpZHRoIixsKS5jYWxsKGkuZmlsbCxoKS5jYWxsKGkuc3Ryb2tlLHMpLnN0eWxlKCJvcGFjaXR5IixkKX1lLmV4cG9ydHM9e3N0eWxlOmZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQuX3RyZWVtYXBsYXllci5zZWxlY3RBbGwoIi50cmFjZSIpO3ModCxlLCJ0cmVlbWFwIiksZS5lYWNoKChmdW5jdGlvbih0KXt2YXIgZT1uLnNlbGVjdCh0aGlzKSxyPXRbMF0udHJhY2U7ZS5zdHlsZSgib3BhY2l0eSIsci5vcGFjaXR5KSxlLnNlbGVjdEFsbCgicGF0aC5zdXJmYWNlIikuZWFjaCgoZnVuY3Rpb24odCl7bi5zZWxlY3QodGhpcykuY2FsbChsLHQscix7aG92ZXJlZDohMX0pfSkpfSkpfSxzdHlsZU9uZTpsfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjozNjcsIi4uLy4uL2xpYiI6NTE1LCIuLi9iYXIvdW5pZm9ybV90ZXh0Ijo2NzMsIi4uL3N1bmJ1cnN0L2hlbHBlcnMiOjEwNjQsIkBwbG90bHkvZDMiOjU4fV0sMTEwMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9ib3gvYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsYT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19mb3JtYXRfYXR0cmlidXRlcyIpLmF4aXNIb3ZlckZvcm1hdDtlLmV4cG9ydHM9e3k6bi55LHg6bi54LHgwOm4ueDAseTA6bi55MCx4aG92ZXJmb3JtYXQ6YSgieCIpLHlob3ZlcmZvcm1hdDphKCJ5IiksbmFtZTppKHt9LG4ubmFtZSx7fSksb3JpZW50YXRpb246aSh7fSxuLm9yaWVudGF0aW9uLHt9KSxiYW5kd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZWRpdFR5cGU6ImNhbGMifSxzY2FsZWdyb3VwOnt2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6ImNhbGMifSxzY2FsZW1vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbIndpZHRoIiwiY291bnQiXSxkZmx0OiJ3aWR0aCIsZWRpdFR5cGU6ImNhbGMifSxzcGFubW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsic29mdCIsImhhcmQiLCJtYW51YWwiXSxkZmx0OiJzb2Z0IixlZGl0VHlwZToiY2FsYyJ9LHNwYW46e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGl0ZW1zOlt7dmFsVHlwZToiYW55IixlZGl0VHlwZToiY2FsYyJ9LHt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJjYWxjIn1dLGVkaXRUeXBlOiJjYWxjIn0sbGluZTp7Y29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToic3R5bGUifSx3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjIsZWRpdFR5cGU6InN0eWxlIn0sZWRpdFR5cGU6InBsb3QifSxmaWxsY29sb3I6bi5maWxsY29sb3IscG9pbnRzOmkoe30sbi5ib3hwb2ludHMse30pLGppdHRlcjppKHt9LG4uaml0dGVyLHt9KSxwb2ludHBvczppKHt9LG4ucG9pbnRwb3Mse30pLHdpZHRoOmkoe30sbi53aWR0aCx7fSksbWFya2VyOm4ubWFya2VyLHRleHQ6bi50ZXh0LGhvdmVydGV4dDpuLmhvdmVydGV4dCxob3ZlcnRlbXBsYXRlOm4uaG92ZXJ0ZW1wbGF0ZSxxdWFydGlsZW1ldGhvZDpuLnF1YXJ0aWxlbWV0aG9kLGJveDp7dmlzaWJsZTp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMSxlZGl0VHlwZToicGxvdCJ9LHdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6LjI1LGVkaXRUeXBlOiJwbG90In0sZmlsbGNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6InN0eWxlIn0sbGluZTp7Y29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToic3R5bGUifSx3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxlZGl0VHlwZToic3R5bGUifSxlZGl0VHlwZToic3R5bGUifSxlZGl0VHlwZToicGxvdCJ9LG1lYW5saW5lOnt2aXNpYmxlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExLGVkaXRUeXBlOiJwbG90In0sY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToic3R5bGUifSx3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxlZGl0VHlwZToic3R5bGUifSxlZGl0VHlwZToicGxvdCJ9LHNpZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImJvdGgiLCJwb3NpdGl2ZSIsIm5lZ2F0aXZlIl0sZGZsdDoiYm90aCIsZWRpdFR5cGU6ImNhbGMifSxvZmZzZXRncm91cDpuLm9mZnNldGdyb3VwLGFsaWdubWVudGdyb3VwOm4uYWxpZ25tZW50Z3JvdXAsc2VsZWN0ZWQ6bi5zZWxlY3RlZCx1bnNlbGVjdGVkOm4udW5zZWxlY3RlZCxob3Zlcm9uOnt2YWxUeXBlOiJmbGFnbGlzdCIsZmxhZ3M6WyJ2aW9saW5zIiwicG9pbnRzIiwia2RlIl0sZGZsdDoidmlvbGlucytwb2ludHMra2RlIixleHRyYXM6WyJhbGwiXSxlZGl0VHlwZToic3R5bGUifX19LHsiLi4vLi4vbGliL2V4dGVuZCI6NTA1LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19mb3JtYXRfYXR0cmlidXRlcyI6NTY5LCIuLi9ib3gvYXR0cmlidXRlcyI6NjgyfV0sMTEwMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksYT10KCIuLi9ib3gvY2FsYyIpLG89dCgiLi9oZWxwZXJzIikscz10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQkFETlVNO2Z1bmN0aW9uIGwodCxlLHIpe3ZhciBpPWUubWF4LWUubWluO2lmKCFpKXJldHVybiB0LmJhbmR3aWR0aD90LmJhbmR3aWR0aDowO2lmKHQuYmFuZHdpZHRoKXJldHVybiBNYXRoLm1heCh0LmJhbmR3aWR0aCxpLzFlNCk7dmFyIGE9ci5sZW5ndGgsbz1uLnN0ZGV2KHIsYS0xLGUubWVhbik7cmV0dXJuIE1hdGgubWF4KGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gMS4wNTkqTWF0aC5taW4oZSxyLzEuMzQ5KSpNYXRoLnBvdyh0LC0uMil9KGEsbyxlLnEzLWUucTEpLGkvMTAwKX1mdW5jdGlvbiBjKHQsZSxyLG4pe3ZhciBhLG89dC5zcGFubW9kZSxsPXQuc3Bhbnx8W10sYz1bZS5taW4sZS5tYXhdLHU9W2UubWluLTIqbixlLm1heCsyKm5dO2Z1bmN0aW9uIGYobil7dmFyIGk9bFtuXSxhPSJtdWx0aWNhdGVnb3J5Ij09PXIudHlwZT9yLnIyYyhpKTpyLmQyYyhpLDAsdFtlLnZhbExldHRlcisiY2FsZW5kYXIiXSk7cmV0dXJuIGE9PT1zP3Vbbl06YX12YXIgaD17dHlwZToibGluZWFyIixyYW5nZTphPSJzb2Z0Ij09PW8/dToiaGFyZCI9PT1vP2M6W2YoMCksZigxKV19O3JldHVybiBpLnNldENvbnZlcnQoaCksaC5jbGVhblJhbmdlKCksYX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1hKHQsZSk7aWYoclswXS50LmVtcHR5KXJldHVybiByO2Zvcih2YXIgcz10Ll9mdWxsTGF5b3V0LHU9aS5nZXRGcm9tSWQodCxlWyJoIj09PWUub3JpZW50YXRpb24/InhheGlzIjoieWF4aXMiXSksZj0xLzAsaD0tMS8wLHA9MCxkPTAsbT0wO208ci5sZW5ndGg7bSsrKXt2YXIgZz1yW21dLHY9Zy5wdHMubWFwKG8uZXh0cmFjdFZhbCkseT1nLmJhbmR3aWR0aD1sKGUsZyx2KSx4PWcuc3Bhbj1jKGUsZyx1LHkpO2lmKGcubWluPT09Zy5tYXgmJjA9PT15KXg9Zy5zcGFuPVtnLm1pbixnLm1heF0sZy5kZW5zaXR5PVt7djoxLHQ6eFswXX1dLGcuYmFuZHdpZHRoPXkscD1NYXRoLm1heChwLDEpO2Vsc2V7dmFyIGI9eFsxXS14WzBdLF89TWF0aC5jZWlsKGIvKHkvMykpLHc9Yi9fO2lmKCFpc0Zpbml0ZSh3KXx8IWlzRmluaXRlKF8pKXJldHVybiBuLmVycm9yKCJTb21ldGhpbmcgd2VudCB3cm9uZyB3aXRoIGNvbXB1dGluZyB0aGUgdmlvbGluIHNwYW4iKSxyWzBdLnQuZW1wdHk9ITAscjt2YXIgVD1vLm1ha2VLREUoZyxlLHYpO2cuZGVuc2l0eT1uZXcgQXJyYXkoXyk7Zm9yKHZhciBrPTAsQT14WzBdO0E8eFsxXSt3LzI7aysrLEErPXcpe3ZhciBNPVQoQSk7Zy5kZW5zaXR5W2tdPXt2Ok0sdDpBfSxwPU1hdGgubWF4KHAsTSl9fWQ9TWF0aC5tYXgoZCx2Lmxlbmd0aCksZj1NYXRoLm1pbihmLHhbMF0pLGg9TWF0aC5tYXgoaCx4WzFdKX12YXIgUz1pLmZpbmRFeHRyZW1lcyh1LFtmLGhdLHtwYWRkZWQ6ITB9KTtpZihlLl9leHRyZW1lc1t1Ll9pZF09UyxlLndpZHRoKXJbMF0udC5tYXhLREU9cDtlbHNle3ZhciBFPXMuX3Zpb2xpblNjYWxlR3JvdXBTdGF0cyxMPWUuc2NhbGVncm91cCxDPUVbTF07Qz8oQy5tYXhLREU9TWF0aC5tYXgoQy5tYXhLREUscCksQy5tYXhDb3VudD1NYXRoLm1heChDLm1heENvdW50LGQpKTpFW0xdPXttYXhLREU6cCxtYXhDb3VudDpkfX1yZXR1cm4gclswXS50LmxhYmVscy5rZGU9bi5fKHQsImtkZToiKSxyfX0seyIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo0OTEsIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NTY2LCIuLi9ib3gvY2FsYyI6NjgzLCIuL2hlbHBlcnMiOjExMDR9XSwxMTAyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2JveC9jcm9zc190cmFjZV9jYWxjIikuc2V0UG9zaXRpb25PZmZzZXQsaT1bInYiLCJoIl07ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQuY2FsY2RhdGEsYT1lLnhheGlzLG89ZS55YXhpcyxzPTA7czxpLmxlbmd0aDtzKyspe2Zvcih2YXIgbD1pW3NdLGM9ImgiPT09bD9vOmEsdT1bXSxmPTA7ZjxyLmxlbmd0aDtmKyspe3ZhciBoPXJbZl0scD1oWzBdLnQsZD1oWzBdLnRyYWNlOyEwIT09ZC52aXNpYmxlfHwidmlvbGluIiE9PWQudHlwZXx8cC5lbXB0eXx8ZC5vcmllbnRhdGlvbiE9PWx8fGQueGF4aXMhPT1hLl9pZHx8ZC55YXhpcyE9PW8uX2lkfHx1LnB1c2goZil9bigidmlvbGluIix0LHUsYyl9fX0seyIuLi9ib3gvY3Jvc3NfdHJhY2VfY2FsYyI6Njg0fV0sMTEwMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxhPXQoIi4uL2JveC9kZWZhdWx0cyIpLG89dCgiLi9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHMpe2Z1bmN0aW9uIGwocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLG8scixpKX1mdW5jdGlvbiBjKHIsaSl7cmV0dXJuIG4uY29lcmNlMih0LGUsbyxyLGkpfWlmKGEuaGFuZGxlU2FtcGxlRGVmYXVsdHModCxlLGwscyksITEhPT1lLnZpc2libGUpe2woImJhbmR3aWR0aCIpLGwoInNpZGUiKSxsKCJ3aWR0aCIpfHwobCgic2NhbGVncm91cCIsZS5uYW1lKSxsKCJzY2FsZW1vZGUiKSk7dmFyIHUsZj1sKCJzcGFuIik7QXJyYXkuaXNBcnJheShmKSYmKHU9Im1hbnVhbCIpLGwoInNwYW5tb2RlIix1KTt2YXIgaD1sKCJsaW5lLmNvbG9yIiwodC5tYXJrZXJ8fHt9KS5jb2xvcnx8cikscD1sKCJsaW5lLndpZHRoIiksZD1sKCJmaWxsY29sb3IiLGkuYWRkT3BhY2l0eShlLmxpbmUuY29sb3IsLjUpKTthLmhhbmRsZVBvaW50c0RlZmF1bHRzKHQsZSxsLHtwcmVmaXg6IiJ9KTt2YXIgbT1jKCJib3gud2lkdGgiKSxnPWMoImJveC5maWxsY29sb3IiLGQpLHY9YygiYm94LmxpbmUuY29sb3IiLGgpLHk9YygiYm94LmxpbmUud2lkdGgiLHApO2woImJveC52aXNpYmxlIixCb29sZWFuKG18fGd8fHZ8fHkpKXx8KGUuYm94PXt2aXNpYmxlOiExfSk7dmFyIHg9YygibWVhbmxpbmUuY29sb3IiLGgpLGI9YygibWVhbmxpbmUud2lkdGgiLHApO2woIm1lYW5saW5lLnZpc2libGUiLEJvb2xlYW4oeHx8YikpfHwoZS5tZWFubGluZT17dmlzaWJsZTohMX0pLGwoInF1YXJ0aWxlbWV0aG9kIil9fX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjozNjcsIi4uLy4uL2xpYiI6NTE1LCIuLi9ib3gvZGVmYXVsdHMiOjY4NSwiLi9hdHRyaWJ1dGVzIjoxMTAwfV0sMTEwNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPWZ1bmN0aW9uKHQpe3JldHVybiAxL01hdGguc3FydCgyKk1hdGguUEkpKk1hdGguZXhwKC0uNSp0KnQpfTtyLm1ha2VLREU9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXIubGVuZ3RoLGE9aSxvPXQuYmFuZHdpZHRoLHM9MS8obipvKTtyZXR1cm4gZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAsaT0wO2k8bjtpKyspZSs9YSgodC1yW2ldKS9vKTtyZXR1cm4gcyplfX0sci5nZXRQb3NpdGlvbk9uS2RlUGF0aD1mdW5jdGlvbih0LGUscil7dmFyIGksYTsiaCI9PT1lLm9yaWVudGF0aW9uPyhpPSJ5IixhPSJ4Iik6KGk9IngiLGE9InkiKTt2YXIgbz1uLmZpbmRQb2ludE9uUGF0aCh0LnBhdGgscixhLHtwYXRoTGVuZ3RoOnQucGF0aExlbmd0aH0pLHM9dC5wb3NDZW50ZXJQeCxsPW9baV07cmV0dXJuW2wsImJvdGgiPT09ZS5zaWRlPzIqcy1sOnNdfSxyLmdldEtkZVZhbHVlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT10LnB0cy5tYXAoci5leHRyYWN0VmFsKTtyZXR1cm4gci5tYWtlS0RFKHQsZSxpKShuKS90LnBvc0RlbnNpdHlTY2FsZX0sci5leHRyYWN0VmFsPWZ1bmN0aW9uKHQpe3JldHVybiB0LnZ9fSx7Ii4uLy4uL2xpYiI6NTE1fV0sMTEwNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksYT10KCIuLi9ib3gvaG92ZXIiKSxvPXQoIi4vaGVscGVycyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixzLGwpe2x8fChsPXt9KTt2YXIgYyx1LGY9bC5ob3ZlckxheWVyLGg9dC5jZCxwPWhbMF0udHJhY2UsZD1wLmhvdmVyb24sbT0tMSE9PWQuaW5kZXhPZigidmlvbGlucyIpLGc9LTEhPT1kLmluZGV4T2YoImtkZSIpLHY9W107aWYobXx8Zyl7dmFyIHk9YS5ob3Zlck9uQm94ZXModCxlLHIscyk7aWYoZyYmeS5sZW5ndGg+MCl7dmFyIHgsYixfLHcsVCxrPXQueGEsQT10LnlhOyJoIj09PXAub3JpZW50YXRpb24/KFQ9ZSx4PSJ5IixfPUEsYj0ieCIsdz1rKTooVD1yLHg9IngiLF89ayxiPSJ5Iix3PUEpO3ZhciBNPWhbdC5pbmRleF07aWYoVD49TS5zcGFuWzBdJiZUPD1NLnNwYW5bMV0pe3ZhciBTPW4uZXh0ZW5kRmxhdCh7fSx0KSxFPXcuYzJwKFQsITApLEw9by5nZXRLZGVWYWx1ZShNLHAsVCksQz1vLmdldFBvc2l0aW9uT25LZGVQYXRoKE0scCxFKSxQPV8uX29mZnNldCxJPV8uX2xlbmd0aDtTW3grIjAiXT1DWzBdLFNbeCsiMSJdPUNbMV0sU1tiKyIwIl09U1tiKyIxIl09RSxTW2IrIkxhYmVsIl09YisiOiAiK2kuaG92ZXJMYWJlbFRleHQodyxULHBbYisiaG92ZXJmb3JtYXQiXSkrIiwgIitoWzBdLnQubGFiZWxzLmtkZSsiICIrTC50b0ZpeGVkKDMpO2Zvcih2YXIgTz0wLHo9MDt6PHkubGVuZ3RoO3orKylpZigibWVkIj09PXlbel0uYXR0cil7Tz16O2JyZWFrfVMuc3Bpa2VEaXN0YW5jZT15W09dLnNwaWtlRGlzdGFuY2U7dmFyIEQ9eCsiU3Bpa2UiO1NbRF09eVtPXVtEXSx5W09dLnNwaWtlRGlzdGFuY2U9dm9pZCAwLHlbT11bRF09dm9pZCAwLFMuaG92ZXJ0ZW1wbGF0ZT0hMSx2LnB1c2goUyksKHU9e3N0cm9rZTp0LmNvbG9yfSlbeCsiMSJdPW4uY29uc3RyYWluKFArQ1swXSxQLFArSSksdVt4KyIyIl09bi5jb25zdHJhaW4oUCtDWzFdLFAsUCtJKSx1W2IrIjEiXT11W2IrIjIiXT13Ll9vZmZzZXQrRX19bSYmKHY9di5jb25jYXQoeSkpfS0xIT09ZC5pbmRleE9mKCJwb2ludHMiKSYmKGM9YS5ob3Zlck9uUG9pbnRzKHQsZSxyKSk7dmFyIFI9Zi5zZWxlY3RBbGwoIi52aW9saW5saW5lLSIrcC51aWQpLmRhdGEodT9bMF06W10pO3JldHVybiBSLmVudGVyKCkuYXBwZW5kKCJsaW5lIikuY2xhc3NlZCgidmlvbGlubGluZS0iK3AudWlkLCEwKS5hdHRyKCJzdHJva2Utd2lkdGgiLDEuNSksUi5leGl0KCkucmVtb3ZlKCksUi5hdHRyKHUpLCJjbG9zZXN0Ij09PXM/Yz9bY106djpjPyh2LnB1c2goYyksdik6dn19LHsiLi4vLi4vbGliIjo1MTUsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo1NjYsIi4uL2JveC9ob3ZlciI6Njg3LCIuL2hlbHBlcnMiOjExMDR9XSwxMTA2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxsYXlvdXRBdHRyaWJ1dGVzOnQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksY3Jvc3NUcmFjZURlZmF1bHRzOnQoIi4uL2JveC9kZWZhdWx0cyIpLmNyb3NzVHJhY2VEZWZhdWx0cyxzdXBwbHlMYXlvdXREZWZhdWx0czp0KCIuL2xheW91dF9kZWZhdWx0cyIpLGNhbGM6dCgiLi9jYWxjIiksY3Jvc3NUcmFjZUNhbGM6dCgiLi9jcm9zc190cmFjZV9jYWxjIikscGxvdDp0KCIuL3Bsb3QiKSxzdHlsZTp0KCIuL3N0eWxlIiksc3R5bGVPblNlbGVjdDp0KCIuLi9zY2F0dGVyL3N0eWxlIikuc3R5bGVPblNlbGVjdCxob3ZlclBvaW50czp0KCIuL2hvdmVyIiksc2VsZWN0UG9pbnRzOnQoIi4uL2JveC9zZWxlY3QiKSxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToidmlvbGluIixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iKSxjYXRlZ29yaWVzOlsiY2FydGVzaWFuIiwic3ZnIiwic3ltYm9scyIsIm9yaWVudGVkIiwiYm94LXZpb2xpbiIsInNob3dMZWdlbmQiLCJ2aW9saW5MYXlvdXQiLCJ6b29tU2NhbGUiXSxtZXRhOnt9fX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iOjU3OCwiLi4vYm94L2RlZmF1bHRzIjo2ODUsIi4uL2JveC9zZWxlY3QiOjY5MiwiLi4vc2NhdHRlci9zdHlsZSI6OTYwLCIuL2F0dHJpYnV0ZXMiOjExMDAsIi4vY2FsYyI6MTEwMSwiLi9jcm9zc190cmFjZV9jYWxjIjoxMTAyLCIuL2RlZmF1bHRzIjoxMTAzLCIuL2hvdmVyIjoxMTA1LCIuL2xheW91dF9hdHRyaWJ1dGVzIjoxMTA3LCIuL2xheW91dF9kZWZhdWx0cyI6MTEwOCwiLi9wbG90IjoxMTA5LCIuL3N0eWxlIjoxMTEwfV0sMTEwNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9ib3gvbGF5b3V0X2F0dHJpYnV0ZXMiKSxpPXQoIi4uLy4uL2xpYiIpLmV4dGVuZEZsYXQ7ZS5leHBvcnRzPXt2aW9saW5tb2RlOmkoe30sbi5ib3htb2RlLHt9KSx2aW9saW5nYXA6aSh7fSxuLmJveGdhcCx7fSksdmlvbGluZ3JvdXBnYXA6aSh7fSxuLmJveGdyb3VwZ2FwLHt9KX19LHsiLi4vLi4vbGliIjo1MTUsIi4uL2JveC9sYXlvdXRfYXR0cmlidXRlcyI6Njg5fV0sMTEwODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxhPXQoIi4uL2JveC9sYXlvdXRfZGVmYXVsdHMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe2EuX3N1cHBseSh0LGUsciwoZnVuY3Rpb24ocixhKXtyZXR1cm4gbi5jb2VyY2UodCxlLGkscixhKX0pLCJ2aW9saW4iKX19LHsiLi4vLi4vbGliIjo1MTUsIi4uL2JveC9sYXlvdXRfZGVmYXVsdHMiOjY5MCwiLi9sYXlvdXRfYXR0cmlidXRlcyI6MTEwN31dLDExMDk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxvPXQoIi4uL2JveC9wbG90Iikscz10KCIuLi9zY2F0dGVyL2xpbmVfcG9pbnRzIiksbD10KCIuL2hlbHBlcnMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYyl7dmFyIHU9dC5fZnVsbExheW91dCxmPWUueGF4aXMsaD1lLnlheGlzO2Z1bmN0aW9uIHAodCl7dmFyIGU9cyh0LHt4YXhpczpmLHlheGlzOmgsY29ubmVjdEdhcHM6ITAsYmFzZVRvbGVyYW5jZTouNzUsc2hhcGU6InNwbGluZSIsc2ltcGxpZnk6ITAsbGluZWFyaXplZDohMH0pO3JldHVybiBhLnNtb290aG9wZW4oZVswXSwxKX1pLm1ha2VUcmFjZUdyb3VwcyhjLHIsInRyYWNlIHZpb2xpbnMiKS5lYWNoKChmdW5jdGlvbih0KXt2YXIgcj1uLnNlbGVjdCh0aGlzKSxhPXRbMF0scz1hLnQsYz1hLnRyYWNlO2lmKCEwIT09Yy52aXNpYmxlfHxzLmVtcHR5KXIucmVtb3ZlKCk7ZWxzZXt2YXIgZD1zLmJQb3MsbT1zLmJkUG9zLGc9ZVtzLnZhbExldHRlcisiYXhpcyJdLHY9ZVtzLnBvc0xldHRlcisiYXhpcyJdLHk9ImJvdGgiPT09Yy5zaWRlLHg9eXx8InBvc2l0aXZlIj09PWMuc2lkZSxiPXl8fCJuZWdhdGl2ZSI9PT1jLnNpZGUsXz1yLnNlbGVjdEFsbCgicGF0aC52aW9saW4iKS5kYXRhKGkuaWRlbnRpdHkpO18uZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5zdHlsZSgidmVjdG9yLWVmZmVjdCIsIm5vbi1zY2FsaW5nLXN0cm9rZSIpLmF0dHIoImNsYXNzIiwidmlvbGluIiksXy5leGl0KCkucmVtb3ZlKCksXy5lYWNoKChmdW5jdGlvbih0KXt2YXIgZSxyLGksYSxvLGwsZixoLF89bi5zZWxlY3QodGhpcyksdz10LmRlbnNpdHksVD13Lmxlbmd0aCxrPXYuYzJsKHQucG9zK2QsITApLEE9di5sMnAoayk7aWYoYy53aWR0aCllPXMubWF4S0RFL207ZWxzZXt2YXIgTT11Ll92aW9saW5TY2FsZUdyb3VwU3RhdHNbYy5zY2FsZWdyb3VwXTtlPSJjb3VudCI9PT1jLnNjYWxlbW9kZT9NLm1heEtERS9tKihNLm1heENvdW50L3QucHRzLmxlbmd0aCk6TS5tYXhLREUvbX1pZih4KXtmb3IoZj1uZXcgQXJyYXkoVCksbz0wO288VDtvKyspKGg9ZltvXT17fSlbcy5wb3NMZXR0ZXJdPWsrd1tvXS52L2UsaFtzLnZhbExldHRlcl09Zy5jMmwod1tvXS50LCEwKTtyPXAoZil9aWYoYil7Zm9yKGY9bmV3IEFycmF5KFQpLGw9MCxvPVQtMTtsPFQ7bCsrLG8tLSkoaD1mW2xdPXt9KVtzLnBvc0xldHRlcl09ay13W29dLnYvZSxoW3MudmFsTGV0dGVyXT1nLmMybCh3W29dLnQsITApO2k9cChmKX1pZih5KWE9cisiTCIraS5zdWJzdHIoMSkrIloiO2Vsc2V7dmFyIFM9W0EsZy5jMnAod1swXS50KV0sRT1bQSxnLmMycCh3W1QtMV0udCldOyJoIj09PWMub3JpZW50YXRpb24mJihTLnJldmVyc2UoKSxFLnJldmVyc2UoKSksYT14PyJNIitTKyJMIityLnN1YnN0cigxKSsiTCIrRToiTSIrRSsiTCIraS5zdWJzdHIoMSkrIkwiK1N9Xy5hdHRyKCJkIixhKSx0LnBvc0NlbnRlclB4PUEsdC5wb3NEZW5zaXR5U2NhbGU9ZSptLHQucGF0aD1fLm5vZGUoKSx0LnBhdGhMZW5ndGg9dC5wYXRoLmdldFRvdGFsTGVuZ3RoKCkvKHk/MjoxKX0pKTt2YXIgdyxULGssQT1jLmJveCxNPUEud2lkdGgsUz0oQS5saW5lfHx7fSkud2lkdGg7eT8odz1tKk0sVD0wKTp4Pyh3PVswLG0qTS8yXSxUPVMqe3g6MSx5Oi0xfVtzLnBvc0xldHRlcl0pOih3PVttKk0vMiwwXSxUPVMqe3g6LTEseToxfVtzLnBvc0xldHRlcl0pLG8ucGxvdEJveEFuZFdoaXNrZXJzKHIse3Bvczp2LHZhbDpnfSxjLHtiUG9zOmQsYmRQb3M6dyxiUG9zUHhPZmZzZXQ6VH0pLG8ucGxvdEJveE1lYW4ocix7cG9zOnYsdmFsOmd9LGMse2JQb3M6ZCxiZFBvczp3LGJQb3NQeE9mZnNldDpUfSksIWMuYm94LnZpc2libGUmJmMubWVhbmxpbmUudmlzaWJsZSYmKGs9aS5pZGVudGl0eSk7dmFyIEU9ci5zZWxlY3RBbGwoInBhdGgubWVhbmxpbmUiKS5kYXRhKGt8fFtdKTtFLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuYXR0cigiY2xhc3MiLCJtZWFubGluZSIpLnN0eWxlKCJmaWxsIiwibm9uZSIpLnN0eWxlKCJ2ZWN0b3ItZWZmZWN0Iiwibm9uLXNjYWxpbmctc3Ryb2tlIiksRS5leGl0KCkucmVtb3ZlKCksRS5lYWNoKChmdW5jdGlvbih0KXt2YXIgZT1nLmMycCh0Lm1lYW4sITApLHI9bC5nZXRQb3NpdGlvbk9uS2RlUGF0aCh0LGMsZSk7bi5zZWxlY3QodGhpcykuYXR0cigiZCIsImgiPT09Yy5vcmllbnRhdGlvbj8iTSIrZSsiLCIrclswXSsiViIrclsxXToiTSIrclswXSsiLCIrZSsiSCIrclsxXSl9KSksby5wbG90UG9pbnRzKHIse3g6Zix5Omh9LGMscyl9fSkpfX0seyIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjM4OSwiLi4vLi4vbGliIjo1MTUsIi4uL2JveC9wbG90Ijo2OTEsIi4uL3NjYXR0ZXIvbGluZV9wb2ludHMiOjk1MCwiLi9oZWxwZXJzIjoxMTA0LCJAcGxvdGx5L2QzIjo1OH1dLDExMTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLGE9dCgiLi4vc2NhdHRlci9zdHlsZSIpLnN0eWxlUG9pbnRzO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1uLnNlbGVjdCh0KS5zZWxlY3RBbGwoImcudHJhY2UudmlvbGlucyIpO2Uuc3R5bGUoIm9wYWNpdHkiLChmdW5jdGlvbih0KXtyZXR1cm4gdFswXS50cmFjZS5vcGFjaXR5fSkpLGUuZWFjaCgoZnVuY3Rpb24oZSl7dmFyIHI9ZVswXS50cmFjZSxvPW4uc2VsZWN0KHRoaXMpLHM9ci5ib3h8fHt9LGw9cy5saW5lfHx7fSxjPXIubWVhbmxpbmV8fHt9LHU9Yy53aWR0aDtvLnNlbGVjdEFsbCgicGF0aC52aW9saW4iKS5zdHlsZSgic3Ryb2tlLXdpZHRoIixyLmxpbmUud2lkdGgrInB4IikuY2FsbChpLnN0cm9rZSxyLmxpbmUuY29sb3IpLmNhbGwoaS5maWxsLHIuZmlsbGNvbG9yKSxvLnNlbGVjdEFsbCgicGF0aC5ib3giKS5zdHlsZSgic3Ryb2tlLXdpZHRoIixsLndpZHRoKyJweCIpLmNhbGwoaS5zdHJva2UsbC5jb2xvcikuY2FsbChpLmZpbGwscy5maWxsY29sb3IpO3ZhciBmPXsic3Ryb2tlLXdpZHRoIjp1KyJweCIsInN0cm9rZS1kYXNoYXJyYXkiOjIqdSsicHgsIit1KyJweCJ9O28uc2VsZWN0QWxsKCJwYXRoLm1lYW4iKS5zdHlsZShmKS5jYWxsKGkuc3Ryb2tlLGMuY29sb3IpLG8uc2VsZWN0QWxsKCJwYXRoLm1lYW5saW5lIikuc3R5bGUoZikuY2FsbChpLnN0cm9rZSxjLmNvbG9yKSxhKG8scix0KX0pKX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6MzY3LCIuLi9zY2F0dGVyL3N0eWxlIjo5NjAsIkBwbG90bHkvZDMiOjU4fV0sMTExMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyIpLGk9dCgiLi4vaXNvc3VyZmFjZS9hdHRyaWJ1dGVzIiksYT10KCIuLi9zdXJmYWNlL2F0dHJpYnV0ZXMiKSxvPXQoIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiKSxzPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LGw9dCgiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyIpLm92ZXJyaWRlQWxsLGM9ZS5leHBvcnRzPWwocyh7eDppLngseTppLnksejppLnosdmFsdWU6aS52YWx1ZSxpc29taW46aS5pc29taW4saXNvbWF4OmkuaXNvbWF4LHN1cmZhY2U6aS5zdXJmYWNlLHNwYWNlZnJhbWU6e3Nob3c6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LGZpbGw6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDoxfX0sc2xpY2VzOmkuc2xpY2VzLGNhcHM6aS5jYXBzLHRleHQ6aS50ZXh0LGhvdmVydGV4dDppLmhvdmVydGV4dCx4aG92ZXJmb3JtYXQ6aS54aG92ZXJmb3JtYXQseWhvdmVyZm9ybWF0OmkueWhvdmVyZm9ybWF0LHpob3ZlcmZvcm1hdDppLnpob3ZlcmZvcm1hdCx2YWx1ZWhvdmVyZm9ybWF0OmkudmFsdWVob3ZlcmZvcm1hdCxob3ZlcnRlbXBsYXRlOmkuaG92ZXJ0ZW1wbGF0ZX0sbigiIix7Y29sb3JBdHRyOiJgdmFsdWVgIixzaG93U2NhbGVEZmx0OiEwLGVkaXRUeXBlT3ZlcnJpZGU6ImNhbGMifSkse2NvbG9yYmFyOmkuY29sb3JiYXIsb3BhY2l0eTppLm9wYWNpdHksb3BhY2l0eXNjYWxlOmEub3BhY2l0eXNjYWxlLGxpZ2h0cG9zaXRpb246aS5saWdodHBvc2l0aW9uLGxpZ2h0aW5nOmkubGlnaHRpbmcsZmxhdHNoYWRpbmc6aS5mbGF0c2hhZGluZyxjb250b3VyOmkuY29udG91cixob3ZlcmluZm86cyh7fSxvLmhvdmVyaW5mbyksc2hvd2xlZ2VuZDpzKHt9LG8uc2hvd2xlZ2VuZCx7ZGZsdDohMX0pfSksImNhbGMiLCJuZXN0ZWQiKTtjLnguZWRpdFR5cGU9Yy55LmVkaXRUeXBlPWMuei5lZGl0VHlwZT1jLnZhbHVlLmVkaXRUeXBlPSJjYWxjK2NsZWFyQXhpc1R5cGVzIixjLnRyYW5zZm9ybXM9dm9pZCAwfSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjozNzQsIi4uLy4uL2xpYi9leHRlbmQiOjUwNSwiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyI6NTQ4LCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIjo1NjIsIi4uL2lzb3N1cmZhY2UvYXR0cmlidXRlcyI6ODcxLCIuLi9zdXJmYWNlL2F0dHJpYnV0ZXMiOjEwNzB9XSwxMTEyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uLy4uL3N0YWNrZ2xfbW9kdWxlcyIpLmdsX21lc2gzZCxpPXQoIi4uLy4uL2xpYi9nbF9mb3JtYXRfY29sb3IiKS5wYXJzZUNvbG9yU2NhbGUsYT10KCIuLi8uLi9saWIvc3RyMnJnYmFycmF5Iiksbz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiKS5leHRyYWN0T3B0cyxzPXQoIi4uLy4uL3Bsb3RzL2dsM2QvemlwMyIpLGw9dCgiLi4vaXNvc3VyZmFjZS9jb252ZXJ0IikuZmluZE5lYXJlc3RPbkF4aXMsYz10KCIuLi9pc29zdXJmYWNlL2NvbnZlcnQiKS5nZW5lcmF0ZUlzb01lc2hlcztmdW5jdGlvbiB1KHQsZSxyKXt0aGlzLnNjZW5lPXQsdGhpcy51aWQ9cix0aGlzLm1lc2g9ZSx0aGlzLm5hbWU9IiIsdGhpcy5kYXRhPW51bGwsdGhpcy5zaG93Q29udG91cj0hMX12YXIgZj11LnByb3RvdHlwZTtmLmhhbmRsZVBpY2s9ZnVuY3Rpb24odCl7aWYodC5vYmplY3Q9PT10aGlzLm1lc2gpe3ZhciBlPXQuZGF0YS5pbmRleCxyPXRoaXMuZGF0YS5fbWVzaFhbZV0sbj10aGlzLmRhdGEuX21lc2hZW2VdLGk9dGhpcy5kYXRhLl9tZXNoWltlXSxhPXRoaXMuZGF0YS5fWXMubGVuZ3RoLG89dGhpcy5kYXRhLl9acy5sZW5ndGgscz1sKHIsdGhpcy5kYXRhLl9YcykuaWQsYz1sKG4sdGhpcy5kYXRhLl9ZcykuaWQsdT1sKGksdGhpcy5kYXRhLl9acykuaWQsZj10LmluZGV4PXUrbypjK28qYSpzO3QudHJhY2VDb29yZGluYXRlPVt0aGlzLmRhdGEuX21lc2hYW2ZdLHRoaXMuZGF0YS5fbWVzaFlbZl0sdGhpcy5kYXRhLl9tZXNoWltmXSx0aGlzLmRhdGEuX3ZhbHVlW2ZdXTt2YXIgaD10aGlzLmRhdGEuaG92ZXJ0ZXh0fHx0aGlzLmRhdGEudGV4dDtyZXR1cm4gQXJyYXkuaXNBcnJheShoKSYmdm9pZCAwIT09aFtmXT90LnRleHRMYWJlbD1oW2ZdOmgmJih0LnRleHRMYWJlbD1oKSwhMH19LGYudXBkYXRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuc2NlbmUscj1lLmZ1bGxTY2VuZUxheW91dDtmdW5jdGlvbiBuKHQsZSxyLG4pe3JldHVybiBlLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQuZDJsKGUsMCxuKSpyfSkpfXRoaXMuZGF0YT1jKHQpO3ZhciBsPXtwb3NpdGlvbnM6cyhuKHIueGF4aXMsdC5fbWVzaFgsZS5kYXRhU2NhbGVbMF0sdC54Y2FsZW5kYXIpLG4oci55YXhpcyx0Ll9tZXNoWSxlLmRhdGFTY2FsZVsxXSx0LnljYWxlbmRhciksbihyLnpheGlzLHQuX21lc2haLGUuZGF0YVNjYWxlWzJdLHQuemNhbGVuZGFyKSksY2VsbHM6cyh0Ll9tZXNoSSx0Ll9tZXNoSix0Ll9tZXNoSyksbGlnaHRQb3NpdGlvbjpbdC5saWdodHBvc2l0aW9uLngsdC5saWdodHBvc2l0aW9uLnksdC5saWdodHBvc2l0aW9uLnpdLGFtYmllbnQ6dC5saWdodGluZy5hbWJpZW50LGRpZmZ1c2U6dC5saWdodGluZy5kaWZmdXNlLHNwZWN1bGFyOnQubGlnaHRpbmcuc3BlY3VsYXIscm91Z2huZXNzOnQubGlnaHRpbmcucm91Z2huZXNzLGZyZXNuZWw6dC5saWdodGluZy5mcmVzbmVsLHZlcnRleE5vcm1hbHNFcHNpbG9uOnQubGlnaHRpbmcudmVydGV4bm9ybWFsc2Vwc2lsb24sZmFjZU5vcm1hbHNFcHNpbG9uOnQubGlnaHRpbmcuZmFjZW5vcm1hbHNlcHNpbG9uLG9wYWNpdHk6dC5vcGFjaXR5LG9wYWNpdHlzY2FsZTp0Lm9wYWNpdHlzY2FsZSxjb250b3VyRW5hYmxlOnQuY29udG91ci5zaG93LGNvbnRvdXJDb2xvcjphKHQuY29udG91ci5jb2xvcikuc2xpY2UoMCwzKSxjb250b3VyV2lkdGg6dC5jb250b3VyLndpZHRoLHVzZUZhY2V0Tm9ybWFsczp0LmZsYXRzaGFkaW5nfSx1PW8odCk7bC52ZXJ0ZXhJbnRlbnNpdHk9dC5fbWVzaEludGVuc2l0eSxsLnZlcnRleEludGVuc2l0eUJvdW5kcz1bdS5taW4sdS5tYXhdLGwuY29sb3JtYXA9aSh0KSx0aGlzLm1lc2gudXBkYXRlKGwpfSxmLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLnNjZW5lLmdscGxvdC5yZW1vdmUodGhpcy5tZXNoKSx0aGlzLm1lc2guZGlzcG9zZSgpfSxlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10LmdscGxvdC5nbCxpPW4oe2dsOnJ9KSxhPW5ldyB1KHQsaSxlLnVpZCk7cmV0dXJuIGkuX3RyYWNlPWEsYS51cGRhdGUoZSksdC5nbHBsb3QuYWRkKGkpLGF9fSx7Ii4uLy4uLy4uL3N0YWNrZ2xfbW9kdWxlcyI6MTEzMywiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIjozNzksIi4uLy4uL2xpYi9nbF9mb3JtYXRfY29sb3IiOjUxMSwiLi4vLi4vbGliL3N0cjJyZ2JhcnJheSI6NTQwLCIuLi8uLi9wbG90cy9nbDNkL3ppcDMiOjYxOCwiLi4vaXNvc3VyZmFjZS9jb252ZXJ0Ijo4NzN9XSwxMTEzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi9hdHRyaWJ1dGVzIiksYT10KCIuLi9pc29zdXJmYWNlL2RlZmF1bHRzIikuc3VwcGx5SXNvRGVmYXVsdHMsbz10KCIuLi9zdXJmYWNlL2RlZmF1bHRzIikub3BhY2l0eXNjYWxlRGVmYXVsdHM7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHMpe2Z1bmN0aW9uIGwocixhKXtyZXR1cm4gbi5jb2VyY2UodCxlLGkscixhKX1hKHQsZSxyLHMsbCksbyh0LGUscyxsKX19LHsiLi4vLi4vbGliIjo1MTUsIi4uL2lzb3N1cmZhY2UvZGVmYXVsdHMiOjg3NCwiLi4vc3VyZmFjZS9kZWZhdWx0cyI6MTA3MywiLi9hdHRyaWJ1dGVzIjoxMTExfV0sMTExNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2F0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNhbGM6dCgiLi4vaXNvc3VyZmFjZS9jYWxjIiksY29sb3JiYXI6e21pbjoiY21pbiIsbWF4OiJjbWF4In0scGxvdDp0KCIuL2NvbnZlcnQiKSxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToidm9sdW1lIixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9nbDNkIiksY2F0ZWdvcmllczpbImdsM2QiLCJzaG93TGVnZW5kIl0sbWV0YTp7fX19LHsiLi4vLi4vcGxvdHMvZ2wzZCI6NjA3LCIuLi9pc29zdXJmYWNlL2NhbGMiOjg3MiwiLi9hdHRyaWJ1dGVzIjoxMTExLCIuL2NvbnZlcnQiOjExMTIsIi4vZGVmYXVsdHMiOjExMTN9XSwxMTE1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2Jhci9hdHRyaWJ1dGVzIiksaT10KCIuLi9zY2F0dGVyL2F0dHJpYnV0ZXMiKS5saW5lLGE9dCgiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfZm9ybWF0X2F0dHJpYnV0ZXMiKS5heGlzSG92ZXJGb3JtYXQscz10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikuaG92ZXJ0ZW1wbGF0ZUF0dHJzLGw9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLnRleHR0ZW1wbGF0ZUF0dHJzLGM9dCgiLi9jb25zdGFudHMiKSx1PXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LGY9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpO2Z1bmN0aW9uIGgodCl7cmV0dXJue21hcmtlcjp7Y29sb3I6dSh7fSxuLm1hcmtlci5jb2xvcix7YXJyYXlPazohMSxlZGl0VHlwZToic3R5bGUifSksbGluZTp7Y29sb3I6dSh7fSxuLm1hcmtlci5saW5lLmNvbG9yLHthcnJheU9rOiExLGVkaXRUeXBlOiJzdHlsZSJ9KSx3aWR0aDp1KHt9LG4ubWFya2VyLmxpbmUud2lkdGgse2FycmF5T2s6ITEsZWRpdFR5cGU6InN0eWxlIn0pLGVkaXRUeXBlOiJzdHlsZSJ9LGVkaXRUeXBlOiJzdHlsZSJ9LGVkaXRUeXBlOiJzdHlsZSJ9fWUuZXhwb3J0cz17bWVhc3VyZTp7dmFsVHlwZToiZGF0YV9hcnJheSIsZGZsdDpbXSxlZGl0VHlwZToiY2FsYyJ9LGJhc2U6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDpudWxsLGFycmF5T2s6ITEsZWRpdFR5cGU6ImNhbGMifSx4Om4ueCx4MDpuLngwLGR4Om4uZHgseTpuLnkseTA6bi55MCxkeTpuLmR5LHhwZXJpb2Q6bi54cGVyaW9kLHlwZXJpb2Q6bi55cGVyaW9kLHhwZXJpb2QwOm4ueHBlcmlvZDAseXBlcmlvZDA6bi55cGVyaW9kMCx4cGVyaW9kYWxpZ25tZW50Om4ueHBlcmlvZGFsaWdubWVudCx5cGVyaW9kYWxpZ25tZW50Om4ueXBlcmlvZGFsaWdubWVudCx4aG92ZXJmb3JtYXQ6bygieCIpLHlob3ZlcmZvcm1hdDpvKCJ5IiksaG92ZXJ0ZXh0Om4uaG92ZXJ0ZXh0LGhvdmVydGVtcGxhdGU6cyh7fSx7a2V5czpjLmV2ZW50RGF0YUtleXN9KSxob3ZlcmluZm86dSh7fSxhLmhvdmVyaW5mbyx7ZmxhZ3M6WyJuYW1lIiwieCIsInkiLCJ0ZXh0IiwiaW5pdGlhbCIsImRlbHRhIiwiZmluYWwiXX0pLHRleHRpbmZvOnt2YWxUeXBlOiJmbGFnbGlzdCIsZmxhZ3M6WyJsYWJlbCIsInRleHQiLCJpbml0aWFsIiwiZGVsdGEiLCJmaW5hbCJdLGV4dHJhczpbIm5vbmUiXSxlZGl0VHlwZToicGxvdCIsYXJyYXlPazohMX0sdGV4dHRlbXBsYXRlOmwoe2VkaXRUeXBlOiJwbG90In0se2tleXM6Yy5ldmVudERhdGFLZXlzLmNvbmNhdChbImxhYmVsIl0pfSksdGV4dDpuLnRleHQsdGV4dHBvc2l0aW9uOm4udGV4dHBvc2l0aW9uLGluc2lkZXRleHRhbmNob3I6bi5pbnNpZGV0ZXh0YW5jaG9yLHRleHRhbmdsZTpuLnRleHRhbmdsZSx0ZXh0Zm9udDpuLnRleHRmb250LGluc2lkZXRleHRmb250Om4uaW5zaWRldGV4dGZvbnQsb3V0c2lkZXRleHRmb250Om4ub3V0c2lkZXRleHRmb250LGNvbnN0cmFpbnRleHQ6bi5jb25zdHJhaW50ZXh0LGNsaXBvbmF4aXM6bi5jbGlwb25heGlzLG9yaWVudGF0aW9uOm4ub3JpZW50YXRpb24sb2Zmc2V0Om4ub2Zmc2V0LHdpZHRoOm4ud2lkdGgsaW5jcmVhc2luZzpoKCksZGVjcmVhc2luZzpoKCksdG90YWxzOmgoKSxjb25uZWN0b3I6e2xpbmU6e2NvbG9yOnUoe30saS5jb2xvcix7ZGZsdDpmLmRlZmF1bHRMaW5lfSksd2lkdGg6dSh7fSxpLndpZHRoLHtlZGl0VHlwZToicGxvdCJ9KSxkYXNoOmkuZGFzaCxlZGl0VHlwZToicGxvdCJ9LG1vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInNwYW5uaW5nIiwiYmV0d2VlbiJdLGRmbHQ6ImJldHdlZW4iLGVkaXRUeXBlOiJwbG90In0sdmlzaWJsZTp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToicGxvdCJ9LGVkaXRUeXBlOiJwbG90In0sb2Zmc2V0Z3JvdXA6bi5vZmZzZXRncm91cCxhbGlnbm1lbnRncm91cDpuLmFsaWdubWVudGdyb3VwfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjozNjcsIi4uLy4uL2xpYi9leHRlbmQiOjUwNSwiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyI6NTYyLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19mb3JtYXRfYXR0cmlidXRlcyI6NTY5LCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo2NDIsIi4uL2Jhci9hdHRyaWJ1dGVzIjo2NTcsIi4uL3NjYXR0ZXIvYXR0cmlidXRlcyI6OTM2LCIuL2NvbnN0YW50cyI6MTExN31dLDExMTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9hbGlnbl9wZXJpb2QiKSxhPXQoIi4uLy4uL2xpYiIpLm1lcmdlQXJyYXksbz10KCIuLi9zY2F0dGVyL2NhbGNfc2VsZWN0aW9uIikscz10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQkFETlVNO2Z1bmN0aW9uIGwodCl7cmV0dXJuImEiPT09dHx8ImFic29sdXRlIj09PXR9ZnVuY3Rpb24gYyh0KXtyZXR1cm4idCI9PT10fHwidG90YWwiPT09dH1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcix1LGYsaCxwLGQsbT1uLmdldEZyb21JZCh0LGUueGF4aXN8fCJ4IiksZz1uLmdldEZyb21JZCh0LGUueWF4aXN8fCJ5Iik7ImgiPT09ZS5vcmllbnRhdGlvbj8ocj1tLm1ha2VDYWxjZGF0YShlLCJ4IiksZj1nLm1ha2VDYWxjZGF0YShlLCJ5IiksaD1pKGUsZywieSIsZikscD0hIWUueXBlcmlvZGFsaWdubWVudCxkPSJ5Iik6KHI9Zy5tYWtlQ2FsY2RhdGEoZSwieSIpLGY9bS5tYWtlQ2FsY2RhdGEoZSwieCIpLGg9aShlLG0sIngiLGYpLHA9ISFlLnhwZXJpb2RhbGlnbm1lbnQsZD0ieCIpLHU9aC52YWxzO2Zvcih2YXIgdix5PU1hdGgubWluKHUubGVuZ3RoLHIubGVuZ3RoKSx4PW5ldyBBcnJheSh5KSxiPTAsXz0hMSx3PTA7dzx5O3crKyl7dmFyIFQ9clt3XXx8MCxrPSExOyhyW3ddIT09c3x8YyhlLm1lYXN1cmVbd10pfHxsKGUubWVhc3VyZVt3XSkpJiZ3KzE8eSYmKHJbdysxXSE9PXN8fGMoZS5tZWFzdXJlW3crMV0pfHxsKGUubWVhc3VyZVt3KzFdKSkmJihrPSEwKTt2YXIgQT14W3ddPXtpOncscDp1W3ddLHM6VCxyYXdTOlQsY05leHQ6a307bChlLm1lYXN1cmVbd10pPyhiPUEucyxBLmlzU3VtPSEwLEEuZGlyPSJ0b3RhbHMiLEEucz1iKTpjKGUubWVhc3VyZVt3XSk/KEEuaXNTdW09ITAsQS5kaXI9InRvdGFscyIsQS5zPWIpOihBLmlzU3VtPSExLEEuZGlyPUEucmF3UzwwPyJkZWNyZWFzaW5nIjoiaW5jcmVhc2luZyIsdj1BLnMsQS5zPWIrdixiKz12KSwidG90YWxzIj09PUEuZGlyJiYoXz0hMCkscCYmKHhbd10ub3JpZ19wPWZbd10seFt3XVtkKyJFbmQiXT1oLmVuZHNbd10seFt3XVtkKyJTdGFydCJdPWguc3RhcnRzW3ddKSxlLmlkcyYmKEEuaWQ9U3RyaW5nKGUuaWRzW3ddKSksQS52PShlLmJhc2V8fDApK2J9cmV0dXJuIHgubGVuZ3RoJiYoeFswXS5oYXNUb3RhbHM9XyksYShlLnRleHQseCwidHgiKSxhKGUuaG92ZXJ0ZXh0LHgsImh0eCIpLG8oeCxlKSx4fX0seyIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo0OTEsIi4uLy4uL2xpYiI6NTE1LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYWxpZ25fcGVyaW9kIjo1NjMsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo1NjYsIi4uL3NjYXR0ZXIvY2FsY19zZWxlY3Rpb24iOjkzOH1dLDExMTc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtldmVudERhdGFLZXlzOlsiaW5pdGlhbCIsImRlbHRhIiwiZmluYWwiXX19LHt9XSwxMTE4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2Jhci9jcm9zc190cmFjZV9jYWxjIikuc2V0R3JvdXBQb3NpdGlvbnM7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsaSxhPXQuX2Z1bGxMYXlvdXQsbz10Ll9mdWxsRGF0YSxzPXQuY2FsY2RhdGEsbD1lLnhheGlzLGM9ZS55YXhpcyx1PVtdLGY9W10saD1bXTtmb3IoaT0wO2k8by5sZW5ndGg7aSsrKXt2YXIgcD1vW2ldOyEwPT09cC52aXNpYmxlJiZwLnhheGlzPT09bC5faWQmJnAueWF4aXM9PT1jLl9pZCYmIndhdGVyZmFsbCI9PT1wLnR5cGUmJihyPXNbaV0sImgiPT09cC5vcmllbnRhdGlvbj9oLnB1c2gocik6Zi5wdXNoKHIpLHUucHVzaChyKSl9dmFyIGQ9e21vZGU6YS53YXRlcmZhbGxtb2RlLG5vcm06YS53YXRlcmZhbGxub3JtLGdhcDphLndhdGVyZmFsbGdhcCxncm91cGdhcDphLndhdGVyZmFsbGdyb3VwZ2FwfTtmb3Iobih0LGwsYyxmLGQpLG4odCxjLGwsaCxkKSxpPTA7aTx1Lmxlbmd0aDtpKyspe3I9dVtpXTtmb3IodmFyIG09MDttPHIubGVuZ3RoO20rKyl7dmFyIGc9clttXTshMT09PWcuaXNTdW0mJihnLnMwKz0wPT09bT8wOnJbbS0xXS5zKSxtKzE8ci5sZW5ndGgmJihyW21dLm5leHRQMD1yW20rMV0ucDAsclttXS5uZXh0UzA9clttKzFdLnMwKX19fX0seyIuLi9iYXIvY3Jvc3NfdHJhY2VfY2FsYyI6NjYwfV0sMTExOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uL2Jhci9kZWZhdWx0cyIpLmhhbmRsZUdyb3VwaW5nRGVmYXVsdHMsYT10KCIuLi9iYXIvZGVmYXVsdHMiKS5oYW5kbGVUZXh0LG89dCgiLi4vc2NhdHRlci94eV9kZWZhdWx0cyIpLHM9dCgiLi4vc2NhdHRlci9wZXJpb2RfZGVmYXVsdHMiKSxsPXQoIi4vYXR0cmlidXRlcyIpLGM9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLHU9dCgiLi4vLi4vY29uc3RhbnRzL2RlbHRhLmpzIiksZj11LklOQ1JFQVNJTkcuQ09MT1IsaD11LkRFQ1JFQVNJTkcuQ09MT1I7ZnVuY3Rpb24gcCh0LGUscil7dChlKyIubWFya2VyLmNvbG9yIixyKSx0KGUrIi5tYXJrZXIubGluZS5jb2xvciIsYy5kZWZhdWx0TGluZSksdChlKyIubWFya2VyLmxpbmUud2lkdGgiKX1lLmV4cG9ydHM9e3N1cHBseURlZmF1bHRzOmZ1bmN0aW9uKHQsZSxyLGkpe2Z1bmN0aW9uIGMocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLGwscixpKX1pZihvKHQsZSxpLGMpKXtzKHQsZSxpLGMpLGMoInhob3ZlcmZvcm1hdCIpLGMoInlob3ZlcmZvcm1hdCIpLGMoIm1lYXN1cmUiKSxjKCJvcmllbnRhdGlvbiIsZS54JiYhZS55PyJoIjoidiIpLGMoImJhc2UiKSxjKCJvZmZzZXQiKSxjKCJ3aWR0aCIpLGMoInRleHQiKSxjKCJob3ZlcnRleHQiKSxjKCJob3ZlcnRlbXBsYXRlIik7dmFyIHU9YygidGV4dHBvc2l0aW9uIik7aWYoYSh0LGUsaSxjLHUse21vZHVsZUhhc1NlbGVjdGVkOiExLG1vZHVsZUhhc1Vuc2VsZWN0ZWQ6ITEsbW9kdWxlSGFzQ29uc3RyYWluOiEwLG1vZHVsZUhhc0NsaXBvbmF4aXM6ITAsbW9kdWxlSGFzVGV4dGFuZ2xlOiEwLG1vZHVsZUhhc0luc2lkZWFuY2hvcjohMH0pLCJub25lIiE9PWUudGV4dHBvc2l0aW9uJiYoYygidGV4dHRlbXBsYXRlIiksZS50ZXh0dGVtcGxhdGV8fGMoInRleHRpbmZvIikpLHAoYywiaW5jcmVhc2luZyIsZikscChjLCJkZWNyZWFzaW5nIixoKSxwKGMsInRvdGFscyIsIiM0NDk5RkYiKSxjKCJjb25uZWN0b3IudmlzaWJsZSIpKWMoImNvbm5lY3Rvci5tb2RlIiksYygiY29ubmVjdG9yLmxpbmUud2lkdGgiKSYmKGMoImNvbm5lY3Rvci5saW5lLmNvbG9yIiksYygiY29ubmVjdG9yLmxpbmUuZGFzaCIpKX1lbHNlIGUudmlzaWJsZT0hMX0sY3Jvc3NUcmFjZURlZmF1bHRzOmZ1bmN0aW9uKHQsZSl7dmFyIHIsYTtmdW5jdGlvbiBvKHQpe3JldHVybiBuLmNvZXJjZShhLl9pbnB1dCxhLGwsdCl9aWYoImdyb3VwIj09PWUud2F0ZXJmYWxsbW9kZSlmb3IodmFyIHM9MDtzPHQubGVuZ3RoO3MrKylyPShhPXRbc10pLl9pbnB1dCxpKHIsYSxlLG8pfX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6MzY3LCIuLi8uLi9jb25zdGFudHMvZGVsdGEuanMiOjQ4NSwiLi4vLi4vbGliIjo1MTUsIi4uL2Jhci9kZWZhdWx0cyI6NjYxLCIuLi9zY2F0dGVyL3BlcmlvZF9kZWZhdWx0cyI6OTU2LCIuLi9zY2F0dGVyL3h5X2RlZmF1bHRzIjo5NjMsIi4vYXR0cmlidXRlcyI6MTExNX1dLDExMjA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQueD0ieFZhbCJpbiBlP2UueFZhbDplLngsdC55PSJ5VmFsImluIGU/ZS55VmFsOmUueSwiaW5pdGlhbCJpbiBlJiYodC5pbml0aWFsPWUuaW5pdGlhbCksImRlbHRhImluIGUmJih0LmRlbHRhPWUuZGVsdGEpLCJmaW5hbCJpbiBlJiYodC5maW5hbD1lLmZpbmFsKSxlLnhhJiYodC54YXhpcz1lLnhhKSxlLnlhJiYodC55YXhpcz1lLnlhKSx0fX0se31dLDExMjE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKS5ob3ZlckxhYmVsVGV4dCxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKS5vcGFjaXR5LGE9dCgiLi4vYmFyL2hvdmVyIikuaG92ZXJPbkJhcnMsbz10KCIuLi8uLi9jb25zdGFudHMvZGVsdGEuanMiKSxzPW8uSU5DUkVBU0lORy5TWU1CT0wsbD1vLkRFQ1JFQVNJTkcuU1lNQk9MO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixvLGMpe3ZhciB1PWEodCxlLHIsbyxjKTtpZih1KXt2YXIgZj11LmNkLGg9ZlswXS50cmFjZSxwPSJoIj09PWgub3JpZW50YXRpb24sZD1wPyJ4IjoieSIsbT1wP3QueGE6dC55YSxnPWZbdS5pbmRleF0sdj1nLmlzU3VtP2cuYitnLnM6Zy5yYXdTO2lmKCFnLmlzU3VtKXt1LmluaXRpYWw9Zy5iK2cucy12LHUuZGVsdGE9dix1LmZpbmFsPXUuaW5pdGlhbCt1LmRlbHRhO3ZhciB5PWsoTWF0aC5hYnModS5kZWx0YSkpO3UuZGVsdGFMYWJlbD12PDA/IigiK3krIikiOnksdS5maW5hbExhYmVsPWsodS5maW5hbCksdS5pbml0aWFsTGFiZWw9ayh1LmluaXRpYWwpfXZhciB4PWcuaGl8fGguaG92ZXJpbmZvLGI9W107aWYoeCYmIm5vbmUiIT09eCYmInNraXAiIT09eCl7dmFyIF89ImFsbCI9PT14LHc9eC5zcGxpdCgiKyIpLFQ9ZnVuY3Rpb24odCl7cmV0dXJuIF98fC0xIT09dy5pbmRleE9mKHQpfTtnLmlzU3VtfHwoIVQoImZpbmFsIil8fFQocD8ieCI6InkiKXx8Yi5wdXNoKHUuZmluYWxMYWJlbCksVCgiZGVsdGEiKSYmKHY8MD9iLnB1c2godS5kZWx0YUxhYmVsKyIgIitsKTpiLnB1c2godS5kZWx0YUxhYmVsKyIgIitzKSksVCgiaW5pdGlhbCIpJiZiLnB1c2goIkluaXRpYWw6ICIrdS5pbml0aWFsTGFiZWwpKX1yZXR1cm4gYi5sZW5ndGgmJih1LmV4dHJhVGV4dD1iLmpvaW4oIjxicj4iKSksdS5jb2xvcj1mdW5jdGlvbih0LGUpe3ZhciByPXRbZS5kaXJdLm1hcmtlcixuPXIuY29sb3IsYT1yLmxpbmUuY29sb3Isbz1yLmxpbmUud2lkdGg7aWYoaShuKSlyZXR1cm4gbjtpZihpKGEpJiZvKXJldHVybiBhfShoLGcpLFt1XX1mdW5jdGlvbiBrKHQpe3JldHVybiBuKG0sdCxoW2QrImhvdmVyZm9ybWF0Il0pfX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6MzY3LCIuLi8uLi9jb25zdGFudHMvZGVsdGEuanMiOjQ4NSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjU2NiwiLi4vYmFyL2hvdmVyIjo2NjR9XSwxMTIyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxsYXlvdXRBdHRyaWJ1dGVzOnQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIikuc3VwcGx5RGVmYXVsdHMsY3Jvc3NUcmFjZURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKS5jcm9zc1RyYWNlRGVmYXVsdHMsc3VwcGx5TGF5b3V0RGVmYXVsdHM6dCgiLi9sYXlvdXRfZGVmYXVsdHMiKSxjYWxjOnQoIi4vY2FsYyIpLGNyb3NzVHJhY2VDYWxjOnQoIi4vY3Jvc3NfdHJhY2VfY2FsYyIpLHBsb3Q6dCgiLi9wbG90Iiksc3R5bGU6dCgiLi9zdHlsZSIpLnN0eWxlLGhvdmVyUG9pbnRzOnQoIi4vaG92ZXIiKSxldmVudERhdGE6dCgiLi9ldmVudF9kYXRhIiksc2VsZWN0UG9pbnRzOnQoIi4uL2Jhci9zZWxlY3QiKSxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToid2F0ZXJmYWxsIixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iKSxjYXRlZ29yaWVzOlsiYmFyLWxpa2UiLCJjYXJ0ZXNpYW4iLCJzdmciLCJvcmllbnRlZCIsInNob3dMZWdlbmQiLCJ6b29tU2NhbGUiXSxtZXRhOnt9fX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iOjU3OCwiLi4vYmFyL3NlbGVjdCI6NjY5LCIuL2F0dHJpYnV0ZXMiOjExMTUsIi4vY2FsYyI6MTExNiwiLi9jcm9zc190cmFjZV9jYWxjIjoxMTE4LCIuL2RlZmF1bHRzIjoxMTE5LCIuL2V2ZW50X2RhdGEiOjExMjAsIi4vaG92ZXIiOjExMjEsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjExMjMsIi4vbGF5b3V0X2RlZmF1bHRzIjoxMTI0LCIuL3Bsb3QiOjExMjUsIi4vc3R5bGUiOjExMjZ9XSwxMTIzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17d2F0ZXJmYWxsbW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiZ3JvdXAiLCJvdmVybGF5Il0sZGZsdDoiZ3JvdXAiLGVkaXRUeXBlOiJjYWxjIn0sd2F0ZXJmYWxsZ2FwOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGVkaXRUeXBlOiJjYWxjIn0sd2F0ZXJmYWxsZ3JvdXBnYXA6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDowLGVkaXRUeXBlOiJjYWxjIn19fSx7fV0sMTEyNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBhPSExO2Z1bmN0aW9uIG8ocixhKXtyZXR1cm4gbi5jb2VyY2UodCxlLGkscixhKX1mb3IodmFyIHM9MDtzPHIubGVuZ3RoO3MrKyl7dmFyIGw9cltzXTtpZihsLnZpc2libGUmJiJ3YXRlcmZhbGwiPT09bC50eXBlKXthPSEwO2JyZWFrfX1hJiYobygid2F0ZXJmYWxsbW9kZSIpLG8oIndhdGVyZmFsbGdhcCIsLjIpLG8oIndhdGVyZmFsbGdyb3VwZ2FwIikpfX0seyIuLi8uLi9saWIiOjUxNSwiLi9sYXlvdXRfYXR0cmlidXRlcyI6MTEyM31dLDExMjU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxvPXQoIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiKS5CQUROVU0scz10KCIuLi9iYXIvcGxvdCIpLGw9dCgiLi4vYmFyL3VuaWZvcm1fdGV4dCIpLmNsZWFyTWluVGV4dFNpemU7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGMpe3ZhciB1PXQuX2Z1bGxMYXlvdXQ7bCgid2F0ZXJmYWxsIix1KSxzLnBsb3QodCxlLHIsYyx7bW9kZTp1LndhdGVyZmFsbG1vZGUsbm9ybTp1LndhdGVyZmFsbG1vZGUsZ2FwOnUud2F0ZXJmYWxsZ2FwLGdyb3VwZ2FwOnUud2F0ZXJmYWxsZ3JvdXBnYXB9KSxmdW5jdGlvbih0LGUscixzKXt2YXIgbD1lLnhheGlzLGM9ZS55YXhpcztpLm1ha2VUcmFjZUdyb3VwcyhzLHIsInRyYWNlIGJhcnMiKS5lYWNoKChmdW5jdGlvbihyKXt2YXIgcz1uLnNlbGVjdCh0aGlzKSx1PXJbMF0udHJhY2UsZj1pLmVuc3VyZVNpbmdsZShzLCJnIiwibGluZXMiKTtpZih1LmNvbm5lY3RvciYmdS5jb25uZWN0b3IudmlzaWJsZSl7dmFyIGg9ImgiPT09dS5vcmllbnRhdGlvbixwPXUuY29ubmVjdG9yLm1vZGUsZD1mLnNlbGVjdEFsbCgiZy5saW5lIikuZGF0YShpLmlkZW50aXR5KTtkLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgibGluZSIsITApLGQuZXhpdCgpLnJlbW92ZSgpO3ZhciBtPWQuc2l6ZSgpO2QuZWFjaCgoZnVuY3Rpb24ocixzKXtpZihzPT09bS0xfHxyLmNOZXh0KXt2YXIgdT1mdW5jdGlvbih0LGUscixuKXt2YXIgaT1bXSxhPVtdLG89bj9lOnIscz1uP3I6ZTtyZXR1cm4gaVswXT1vLmMycCh0LnMwLCEwKSxhWzBdPXMuYzJwKHQucDAsITApLGlbMV09by5jMnAodC5zMSwhMCksYVsxXT1zLmMycCh0LnAxLCEwKSxpWzJdPW8uYzJwKHQubmV4dFMwLCEwKSxhWzJdPXMuYzJwKHQubmV4dFAwLCEwKSxuP1tpLGFdOlthLGldfShyLGwsYyxoKSxmPXVbMF0sZD11WzFdLGc9IiI7ZlswXSE9PW8mJmRbMF0hPT1vJiZmWzFdIT09byYmZFsxXSE9PW8mJigic3Bhbm5pbmciPT09cCYmIXIuaXNTdW0mJnM+MCYmKGcrPWg/Ik0iK2ZbMF0rIiwiK2RbMV0rIlYiK2RbMF06Ik0iK2ZbMV0rIiwiK2RbMF0rIkgiK2ZbMF0pLCJiZXR3ZWVuIiE9PXAmJihyLmlzU3VtfHxzPG0tMSkmJihnKz1oPyJNIitmWzFdKyIsIitkWzBdKyJWIitkWzFdOiJNIitmWzBdKyIsIitkWzFdKyJIIitmWzFdKSxmWzJdIT09byYmZFsyXSE9PW8mJihnKz1oPyJNIitmWzFdKyIsIitkWzFdKyJWIitkWzJdOiJNIitmWzFdKyIsIitkWzFdKyJIIitmWzJdKSksIiI9PT1nJiYoZz0iTTAsMFoiKSxpLmVuc3VyZVNpbmdsZShuLnNlbGVjdCh0aGlzKSwicGF0aCIpLmF0dHIoImQiLGcpLmNhbGwoYS5zZXRDbGlwVXJsLGUubGF5ZXJDbGlwSWQsdCl9fSkpfWVsc2UgZi5yZW1vdmUoKX0pKX0odCxlLHIsYyl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6Mzg5LCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo0OTEsIi4uLy4uL2xpYiI6NTE1LCIuLi9iYXIvcGxvdCI6NjY4LCIuLi9iYXIvdW5pZm9ybV90ZXh0Ijo2NzMsIkBwbG90bHkvZDMiOjU4fV0sMTEyNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxvPXQoIi4uLy4uL2NvbnN0YW50cy9pbnRlcmFjdGlvbnMiKS5ERVNFTEVDVERJTSxzPXQoIi4uL2Jhci9zdHlsZSIpLGw9dCgiLi4vYmFyL3VuaWZvcm1fdGV4dCIpLnJlc2l6ZVRleHQsYz1zLnN0eWxlVGV4dFBvaW50cztlLmV4cG9ydHM9e3N0eWxlOmZ1bmN0aW9uKHQsZSxyKXt2YXIgcz1yfHxuLnNlbGVjdCh0KS5zZWxlY3RBbGwoImcud2F0ZXJmYWxsbGF5ZXIiKS5zZWxlY3RBbGwoImcudHJhY2UiKTtsKHQscywid2F0ZXJmYWxsIikscy5zdHlsZSgib3BhY2l0eSIsKGZ1bmN0aW9uKHQpe3JldHVybiB0WzBdLnRyYWNlLm9wYWNpdHl9KSkscy5lYWNoKChmdW5jdGlvbihlKXt2YXIgcj1uLnNlbGVjdCh0aGlzKSxzPWVbMF0udHJhY2U7ci5zZWxlY3RBbGwoIi5wb2ludCA+IHBhdGgiKS5lYWNoKChmdW5jdGlvbih0KXtpZighdC5pc0JsYW5rKXt2YXIgZT1zW3QuZGlyXS5tYXJrZXI7bi5zZWxlY3QodGhpcykuY2FsbChhLmZpbGwsZS5jb2xvcikuY2FsbChhLnN0cm9rZSxlLmxpbmUuY29sb3IpLmNhbGwoaS5kYXNoTGluZSxlLmxpbmUuZGFzaCxlLmxpbmUud2lkdGgpLnN0eWxlKCJvcGFjaXR5IixzLnNlbGVjdGVkcG9pbnRzJiYhdC5zZWxlY3RlZD9vOjEpfX0pKSxjKHIscyx0KSxyLnNlbGVjdEFsbCgiLmxpbmVzIikuZWFjaCgoZnVuY3Rpb24oKXt2YXIgdD1zLmNvbm5lY3Rvci5saW5lO2kubGluZUdyb3VwU3R5bGUobi5zZWxlY3QodGhpcykuc2VsZWN0QWxsKCJwYXRoIiksdC53aWR0aCx0LmNvbG9yLHQuZGFzaCl9KSl9KSl9fX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjozNjcsIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6Mzg5LCIuLi8uLi9jb25zdGFudHMvaW50ZXJhY3Rpb25zIjo0OTAsIi4uL2Jhci9zdHlsZSI6NjcxLCIuLi9iYXIvdW5pZm9ybV90ZXh0Ijo2NzMsIkBwbG90bHkvZDMiOjU4fV0sMTEyNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGk9dCgiLi4vbGliIiksYT10KCIuLi9wbG90X2FwaS9wbG90X3NjaGVtYSIpLG89dCgiLi9oZWxwZXJzIikucG9pbnRzQWNjZXNzb3JGdW5jdGlvbixzPXQoIi4uL2NvbnN0YW50cy9udW1lcmljYWwiKS5CQUROVU07ci5tb2R1bGVUeXBlPSJ0cmFuc2Zvcm0iLHIubmFtZT0iYWdncmVnYXRlIjt2YXIgbD1yLmF0dHJpYnV0ZXM9e2VuYWJsZWQ6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6ImNhbGMifSxncm91cHM6e3ZhbFR5cGU6InN0cmluZyIsc3RyaWN0OiEwLG5vQmxhbms6ITAsYXJyYXlPazohMCxkZmx0OiJ4IixlZGl0VHlwZToiY2FsYyJ9LGFnZ3JlZ2F0aW9uczp7X2lzTGlua2VkVG9BcnJheToiYWdncmVnYXRpb24iLHRhcmdldDp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToiY2FsYyJ9LGZ1bmM6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImNvdW50Iiwic3VtIiwiYXZnIiwibWVkaWFuIiwibW9kZSIsInJtcyIsInN0ZGRldiIsIm1pbiIsIm1heCIsImZpcnN0IiwibGFzdCIsImNoYW5nZSIsInJhbmdlIl0sZGZsdDoiZmlyc3QiLGVkaXRUeXBlOiJjYWxjIn0sZnVuY21vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInNhbXBsZSIsInBvcHVsYXRpb24iXSxkZmx0OiJzYW1wbGUiLGVkaXRUeXBlOiJjYWxjIn0sZW5hYmxlZDp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToiY2FsYyJ9LGVkaXRUeXBlOiJjYWxjIn0sZWRpdFR5cGU6ImNhbGMifSxjPWwuYWdncmVnYXRpb25zO2Z1bmN0aW9uIHUodCxlLHIsYSl7aWYoYS5lbmFibGVkKXtmb3IodmFyIG89YS50YXJnZXQsbD1pLm5lc3RlZFByb3BlcnR5KGUsbyksYz1sLmdldCgpLHU9ZnVuY3Rpb24odCxlKXt2YXIgcj10LmZ1bmMsbj1lLmQyYyxhPWUuYzJkO3N3aXRjaChyKXtjYXNlImNvdW50IjpyZXR1cm4gZjtjYXNlImZpcnN0IjpyZXR1cm4gaDtjYXNlImxhc3QiOnJldHVybiBwO2Nhc2Uic3VtIjpyZXR1cm4gZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9MCxpPTA7aTxlLmxlbmd0aDtpKyspe3ZhciBvPW4odFtlW2ldXSk7byE9PXMmJihyKz1vKX1yZXR1cm4gYShyKX07Y2FzZSJhdmciOnJldHVybiBmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wLGk9MCxvPTA7bzxlLmxlbmd0aDtvKyspe3ZhciBsPW4odFtlW29dXSk7bCE9PXMmJihyKz1sLGkrKyl9cmV0dXJuIGk/YShyL2kpOnN9O2Nhc2UibWluIjpyZXR1cm4gZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9MS8wLGk9MDtpPGUubGVuZ3RoO2krKyl7dmFyIG89bih0W2VbaV1dKTtvIT09cyYmKHI9TWF0aC5taW4ocixvKSl9cmV0dXJuIHI9PT0xLzA/czphKHIpfTtjYXNlIm1heCI6cmV0dXJuIGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPS0xLzAsaT0wO2k8ZS5sZW5ndGg7aSsrKXt2YXIgbz1uKHRbZVtpXV0pO28hPT1zJiYocj1NYXRoLm1heChyLG8pKX1yZXR1cm4gcj09PS0xLzA/czphKHIpfTtjYXNlInJhbmdlIjpyZXR1cm4gZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9MS8wLGk9LTEvMCxvPTA7bzxlLmxlbmd0aDtvKyspe3ZhciBsPW4odFtlW29dXSk7bCE9PXMmJihyPU1hdGgubWluKHIsbCksaT1NYXRoLm1heChpLGwpKX1yZXR1cm4gaT09PS0xLzB8fHI9PT0xLzA/czphKGktcil9O2Nhc2UiY2hhbmdlIjpyZXR1cm4gZnVuY3Rpb24odCxlKXt2YXIgcj1uKHRbZVswXV0pLGk9bih0W2VbZS5sZW5ndGgtMV1dKTtyZXR1cm4gcj09PXN8fGk9PT1zP3M6YShpLXIpfTtjYXNlIm1lZGlhbiI6cmV0dXJuIGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPVtdLG89MDtvPGUubGVuZ3RoO28rKyl7dmFyIGw9bih0W2Vbb11dKTtsIT09cyYmci5wdXNoKGwpfWlmKCFyLmxlbmd0aClyZXR1cm4gcztyLnNvcnQoaS5zb3J0ZXJBc2MpO3ZhciBjPShyLmxlbmd0aC0xKS8yO3JldHVybiBhKChyW01hdGguZmxvb3IoYyldK3JbTWF0aC5jZWlsKGMpXSkvMil9O2Nhc2UibW9kZSI6cmV0dXJuIGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXt9LGk9MCxvPXMsbD0wO2w8ZS5sZW5ndGg7bCsrKXt2YXIgYz1uKHRbZVtsXV0pO2lmKGMhPT1zKXt2YXIgdT1yW2NdPShyW2NdfHwwKSsxO3U+aSYmKGk9dSxvPWMpfX1yZXR1cm4gaT9hKG8pOnN9O2Nhc2Uicm1zIjpyZXR1cm4gZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9MCxpPTAsbz0wO288ZS5sZW5ndGg7bysrKXt2YXIgbD1uKHRbZVtvXV0pO2whPT1zJiYocis9bCpsLGkrKyl9cmV0dXJuIGk/YShNYXRoLnNxcnQoci9pKSk6c307Y2FzZSJzdGRkZXYiOnJldHVybiBmdW5jdGlvbihlLHIpe3ZhciBpLGE9MCxvPTAsbD0xLGM9cztmb3IoaT0wO2k8ci5sZW5ndGgmJmM9PT1zO2krKyljPW4oZVtyW2ldXSk7aWYoYz09PXMpcmV0dXJuIHM7Zm9yKDtpPHIubGVuZ3RoO2krKyl7dmFyIHU9bihlW3JbaV1dKTtpZih1IT09cyl7dmFyIGY9dS1jO2ErPWYsbys9ZipmLGwrK319dmFyIGg9InNhbXBsZSI9PT10LmZ1bmNtb2RlP2wtMTpsO3JldHVybiBoP01hdGguc3FydCgoby1hKmEvbCkvaCk6MH19fShhLG4uZ2V0RGF0YUNvbnZlcnNpb25zKHQsZSxvLGMpKSxkPW5ldyBBcnJheShyLmxlbmd0aCksbT0wO208ci5sZW5ndGg7bSsrKWRbbV09dShjLHJbbV0pO2wuc2V0KGQpLCJjb3VudCI9PT1hLmZ1bmMmJmkucHVzaFVuaXF1ZShlLl9hcnJheUF0dHJzLG8pfX1mdW5jdGlvbiBmKHQsZSl7cmV0dXJuIGUubGVuZ3RofWZ1bmN0aW9uIGgodCxlKXtyZXR1cm4gdFtlWzBdXX1mdW5jdGlvbiBwKHQsZSl7cmV0dXJuIHRbZVtlLmxlbmd0aC0xXV19ci5zdXBwbHlEZWZhdWx0cz1mdW5jdGlvbih0LGUpe3ZhciByLG49e307ZnVuY3Rpb24gbyhlLHIpe3JldHVybiBpLmNvZXJjZSh0LG4sbCxlLHIpfWlmKCFvKCJlbmFibGVkIikpcmV0dXJuIG47dmFyIHM9YS5maW5kQXJyYXlBdHRyaWJ1dGVzKGUpLHU9e307Zm9yKHI9MDtyPHMubGVuZ3RoO3IrKyl1W3Nbcl1dPTE7dmFyIGY9bygiZ3JvdXBzIik7aWYoIUFycmF5LmlzQXJyYXkoZikpe2lmKCF1W2ZdKXJldHVybiBuLmVuYWJsZWQ9ITEsbjt1W2ZdPTB9dmFyIGgscD10LmFnZ3JlZ2F0aW9uc3x8W10sZD1uLmFnZ3JlZ2F0aW9ucz1uZXcgQXJyYXkocC5sZW5ndGgpO2Z1bmN0aW9uIG0odCxlKXtyZXR1cm4gaS5jb2VyY2UocFtyXSxoLGMsdCxlKX1mb3Iocj0wO3I8cC5sZW5ndGg7cisrKXtoPXtfaW5kZXg6cn07dmFyIGc9bSgidGFyZ2V0Iiksdj1tKCJmdW5jIik7bSgiZW5hYmxlZCIpJiZnJiYodVtnXXx8ImNvdW50Ij09PXYmJnZvaWQgMD09PXVbZ10pPygic3RkZGV2Ij09PXYmJm0oImZ1bmNtb2RlIiksdVtnXT0wLGRbcl09aCk6ZFtyXT17ZW5hYmxlZDohMSxfaW5kZXg6cn19Zm9yKHI9MDtyPHMubGVuZ3RoO3IrKyl1W3Nbcl1dJiZkLnB1c2goe3RhcmdldDpzW3JdLGZ1bmM6Yy5mdW5jLmRmbHQsZW5hYmxlZDohMCxfaW5kZXg6LTF9KTtyZXR1cm4gbn0sci5jYWxjVHJhbnNmb3JtPWZ1bmN0aW9uKHQsZSxyKXtpZihyLmVuYWJsZWQpe3ZhciBuPXIuZ3JvdXBzLGE9aS5nZXRUYXJnZXRBcnJheShlLHt0YXJnZXQ6bn0pO2lmKGEpe3ZhciBzLGwsYyxmLGg9e30scD17fSxkPVtdLG09byhlLnRyYW5zZm9ybXMsciksZz1hLmxlbmd0aDtmb3IoZS5fbGVuZ3RoJiYoZz1NYXRoLm1pbihnLGUuX2xlbmd0aCkpLHM9MDtzPGc7cysrKXZvaWQgMD09PShjPWhbbD1hW3NdXSk/KGhbbF09ZC5sZW5ndGgsZj1bc10sZC5wdXNoKGYpLHBbaFtsXV09bShzKSk6KGRbY10ucHVzaChzKSxwW2hbbF1dPShwW2hbbF1dfHxbXSkuY29uY2F0KG0ocykpKTtyLl9pbmRleFRvUG9pbnRzPXA7dmFyIHY9ci5hZ2dyZWdhdGlvbnM7Zm9yKHM9MDtzPHYubGVuZ3RoO3MrKyl1KHQsZSxkLHZbc10pOyJzdHJpbmciPT10eXBlb2YgbiYmdSh0LGUsZCx7dGFyZ2V0Om4sZnVuYzoiZmlyc3QiLGVuYWJsZWQ6ITB9KSxlLl9sZW5ndGg9ZC5sZW5ndGh9fX19LHsiLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NDkxLCIuLi9saWIiOjUxNSwiLi4vcGxvdF9hcGkvcGxvdF9zY2hlbWEiOjU1NCwiLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjU2NiwiLi9oZWxwZXJzIjoxMTMwfV0sMTEyODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9saWIiKSxpPXQoIi4uL3JlZ2lzdHJ5IiksYT10KCIuLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLG89dCgiLi9oZWxwZXJzIikucG9pbnRzQWNjZXNzb3JGdW5jdGlvbixzPXQoIi4uL2NvbnN0YW50cy9maWx0ZXJfb3BzIiksbD1zLkNPTVBBUklTT05fT1BTLGM9cy5JTlRFUlZBTF9PUFMsdT1zLlNFVF9PUFM7ci5tb2R1bGVUeXBlPSJ0cmFuc2Zvcm0iLHIubmFtZT0iZmlsdGVyIixyLmF0dHJpYnV0ZXM9e2VuYWJsZWQ6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6ImNhbGMifSx0YXJnZXQ6e3ZhbFR5cGU6InN0cmluZyIsc3RyaWN0OiEwLG5vQmxhbms6ITAsYXJyYXlPazohMCxkZmx0OiJ4IixlZGl0VHlwZToiY2FsYyJ9LG9wZXJhdGlvbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOltdLmNvbmNhdChsKS5jb25jYXQoYykuY29uY2F0KHUpLGRmbHQ6Ij0iLGVkaXRUeXBlOiJjYWxjIn0sdmFsdWU6e3ZhbFR5cGU6ImFueSIsZGZsdDowLGVkaXRUeXBlOiJjYWxjIn0scHJlc2VydmVnYXBzOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExLGVkaXRUeXBlOiJjYWxjIn0sZWRpdFR5cGU6ImNhbGMifSxyLnN1cHBseURlZmF1bHRzPWZ1bmN0aW9uKHQpe3ZhciBlPXt9O2Z1bmN0aW9uIGEoaSxhKXtyZXR1cm4gbi5jb2VyY2UodCxlLHIuYXR0cmlidXRlcyxpLGEpfWlmKGEoImVuYWJsZWQiKSl7dmFyIG89YSgidGFyZ2V0Iik7aWYobi5pc0FycmF5T3JUeXBlZEFycmF5KG8pJiYwPT09by5sZW5ndGgpcmV0dXJuIGUuZW5hYmxlZD0hMSxlO2EoInByZXNlcnZlZ2FwcyIpLGEoIm9wZXJhdGlvbiIpLGEoInZhbHVlIik7dmFyIHM9aS5nZXRDb21wb25lbnRNZXRob2QoImNhbGVuZGFycyIsImhhbmRsZURlZmF1bHRzIik7cyh0LGUsInZhbHVlY2FsZW5kYXIiLG51bGwpLHModCxlLCJ0YXJnZXRjYWxlbmRhciIsbnVsbCl9cmV0dXJuIGV9LHIuY2FsY1RyYW5zZm9ybT1mdW5jdGlvbih0LGUscil7aWYoci5lbmFibGVkKXt2YXIgaT1uLmdldFRhcmdldEFycmF5KGUscik7aWYoaSl7dmFyIHM9ci50YXJnZXQsZj1pLmxlbmd0aDtlLl9sZW5ndGgmJihmPU1hdGgubWluKGYsZS5fbGVuZ3RoKSk7dmFyIGg9ci50YXJnZXRjYWxlbmRhcixwPWUuX2FycmF5QXR0cnMsZD1yLnByZXNlcnZlZ2FwcztpZigic3RyaW5nIj09dHlwZW9mIHMpe3ZhciBtPW4ubmVzdGVkUHJvcGVydHkoZSxzKyJjYWxlbmRhciIpLmdldCgpO20mJihoPW0pfXZhciBnLHYseT1mdW5jdGlvbih0LGUscil7dmFyIG49dC5vcGVyYXRpb24saT10LnZhbHVlLGE9QXJyYXkuaXNBcnJheShpKTtmdW5jdGlvbiBvKHQpe3JldHVybi0xIT09dC5pbmRleE9mKG4pfXZhciBzLGY9ZnVuY3Rpb24ocil7cmV0dXJuIGUociwwLHQudmFsdWVjYWxlbmRhcil9LGg9ZnVuY3Rpb24odCl7cmV0dXJuIGUodCwwLHIpfTtvKGwpP3M9ZihhP2lbMF06aSk6byhjKT9zPWE/W2YoaVswXSksZihpWzFdKV06W2YoaSksZihpKV06byh1KSYmKHM9YT9pLm1hcChmKTpbZihpKV0pO3N3aXRjaChuKXtjYXNlIj0iOnJldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gaCh0KT09PXN9O2Nhc2UiIT0iOnJldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gaCh0KSE9PXN9O2Nhc2UiPCI6cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBoKHQpPHN9O2Nhc2UiPD0iOnJldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gaCh0KTw9c307Y2FzZSI+IjpyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGgodCk+c307Y2FzZSI+PSI6cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBoKHQpPj1zfTtjYXNlIltdIjpyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU9aCh0KTtyZXR1cm4gZT49c1swXSYmZTw9c1sxXX07Y2FzZSIoKSI6cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBlPWgodCk7cmV0dXJuIGU+c1swXSYmZTxzWzFdfTtjYXNlIlspIjpyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU9aCh0KTtyZXR1cm4gZT49c1swXSYmZTxzWzFdfTtjYXNlIihdIjpyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU9aCh0KTtyZXR1cm4gZT5zWzBdJiZlPD1zWzFdfTtjYXNlIl1bIjpyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU9aCh0KTtyZXR1cm4gZTw9c1swXXx8ZT49c1sxXX07Y2FzZSIpKCI6cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBlPWgodCk7cmV0dXJuIGU8c1swXXx8ZT5zWzFdfTtjYXNlIl0oIjpyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU9aCh0KTtyZXR1cm4gZTw9c1swXXx8ZT5zWzFdfTtjYXNlIilbIjpyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU9aCh0KTtyZXR1cm4gZTxzWzBdfHxlPj1zWzFdfTtjYXNlInt9IjpyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuLTEhPT1zLmluZGV4T2YoaCh0KSl9O2Nhc2UifXsiOnJldHVybiBmdW5jdGlvbih0KXtyZXR1cm4tMT09PXMuaW5kZXhPZihoKHQpKX19fShyLGEuZ2V0RGF0YVRvQ29vcmRGdW5jKHQsZSxzLGkpLGgpLHg9e30sYj17fSxfPTA7ZD8oZz1mdW5jdGlvbih0KXt4W3QuYXN0cl09bi5leHRlbmREZWVwKFtdLHQuZ2V0KCkpLHQuc2V0KG5ldyBBcnJheShmKSl9LHY9ZnVuY3Rpb24odCxlKXt2YXIgcj14W3QuYXN0cl1bZV07dC5nZXQoKVtlXT1yfSk6KGc9ZnVuY3Rpb24odCl7eFt0LmFzdHJdPW4uZXh0ZW5kRGVlcChbXSx0LmdldCgpKSx0LnNldChbXSl9LHY9ZnVuY3Rpb24odCxlKXt2YXIgcj14W3QuYXN0cl1bZV07dC5nZXQoKS5wdXNoKHIpfSksayhnKTtmb3IodmFyIHc9byhlLnRyYW5zZm9ybXMsciksVD0wO1Q8ZjtUKyspe3koaVtUXSk/KGsodixUKSxiW18rK109dyhUKSk6ZCYmXysrfXIuX2luZGV4VG9Qb2ludHM9YixlLl9sZW5ndGg9X319ZnVuY3Rpb24gayh0LHIpe2Zvcih2YXIgaT0wO2k8cC5sZW5ndGg7aSsrKXt0KG4ubmVzdGVkUHJvcGVydHkoZSxwW2ldKSxyKX19fX0seyIuLi9jb25zdGFudHMvZmlsdGVyX29wcyI6NDg3LCIuLi9saWIiOjUxNSwiLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjU2NiwiLi4vcmVnaXN0cnkiOjY0NywiLi9oZWxwZXJzIjoxMTMwfV0sMTEyOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9saWIiKSxpPXQoIi4uL3Bsb3RfYXBpL3Bsb3Rfc2NoZW1hIiksYT10KCIuLi9wbG90cy9wbG90cyIpLG89dCgiLi9oZWxwZXJzIikucG9pbnRzQWNjZXNzb3JGdW5jdGlvbjtmdW5jdGlvbiBzKHQsZSl7dmFyIHIscyxsLGMsdSxmLGgscCxkLG0sZz1lLnRyYW5zZm9ybSx2PWUudHJhbnNmb3JtSW5kZXgseT10LnRyYW5zZm9ybXNbdl0uZ3JvdXBzLHg9byh0LnRyYW5zZm9ybXMsZyk7aWYoIW4uaXNBcnJheU9yVHlwZWRBcnJheSh5KXx8MD09PXkubGVuZ3RoKXJldHVyblt0XTt2YXIgYj1uLmZpbHRlclVuaXF1ZSh5KSxfPW5ldyBBcnJheShiLmxlbmd0aCksdz15Lmxlbmd0aCxUPWkuZmluZEFycmF5QXR0cmlidXRlcyh0KSxrPWcuc3R5bGVzfHxbXSxBPXt9O2ZvcihyPTA7cjxrLmxlbmd0aDtyKyspQVtrW3JdLnRhcmdldF09a1tyXS52YWx1ZTtnLnN0eWxlcyYmKG09bi5rZXllZENvbnRhaW5lcihnLCJzdHlsZXMiLCJ0YXJnZXQiLCJ2YWx1ZS5uYW1lIikpO3ZhciBNPXt9LFM9e307Zm9yKHI9MDtyPGIubGVuZ3RoO3IrKyl7TVtmPWJbcl1dPXIsU1tmXT0wLChoPV9bcl09bi5leHRlbmREZWVwTm9BcnJheXMoe30sdCkpLl9ncm91cD1mLGgudHJhbnNmb3Jtc1t2XS5faW5kZXhUb1BvaW50cz17fTt2YXIgRT1udWxsO2ZvcihtJiYoRT1tLmdldChmKSksaC5uYW1lPUV8fCIiPT09RT9FOm4udGVtcGxhdGVTdHJpbmcoZy5uYW1lZm9ybWF0LHt0cmFjZTp0Lm5hbWUsZ3JvdXA6Zn0pLHA9aC50cmFuc2Zvcm1zLGgudHJhbnNmb3Jtcz1bXSxzPTA7czxwLmxlbmd0aDtzKyspaC50cmFuc2Zvcm1zW3NdPW4uZXh0ZW5kRGVlcE5vQXJyYXlzKHt9LHBbc10pO2ZvcihzPTA7czxULmxlbmd0aDtzKyspbi5uZXN0ZWRQcm9wZXJ0eShoLFRbc10pLnNldChbXSl9Zm9yKGw9MDtsPFQubGVuZ3RoO2wrKyl7Zm9yKGM9VFtsXSxzPTAsZD1bXTtzPGIubGVuZ3RoO3MrKylkW3NdPW4ubmVzdGVkUHJvcGVydHkoX1tzXSxjKS5nZXQoKTtmb3IodT1uLm5lc3RlZFByb3BlcnR5KHQsYykuZ2V0KCkscz0wO3M8dztzKyspZFtNW3lbc11dXS5wdXNoKHVbc10pfWZvcihzPTA7czx3O3MrKyl7KGg9X1tNW3lbc11dXSkudHJhbnNmb3Jtc1t2XS5faW5kZXhUb1BvaW50c1tTW3lbc11dXT14KHMpLFNbeVtzXV0rK31mb3Iocj0wO3I8Yi5sZW5ndGg7cisrKWY9YltyXSxoPV9bcl0sYS5jbGVhckV4cGFuZGVkVHJhY2VEZWZhdWx0Q29sb3JzKGgpLGg9bi5leHRlbmREZWVwTm9BcnJheXMoaCxBW2ZdfHx7fSk7cmV0dXJuIF99ci5tb2R1bGVUeXBlPSJ0cmFuc2Zvcm0iLHIubmFtZT0iZ3JvdXBieSIsci5hdHRyaWJ1dGVzPXtlbmFibGVkOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJjYWxjIn0sZ3JvdXBzOnt2YWxUeXBlOiJkYXRhX2FycmF5IixkZmx0OltdLGVkaXRUeXBlOiJjYWxjIn0sbmFtZWZvcm1hdDp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToiY2FsYyJ9LHN0eWxlczp7X2lzTGlua2VkVG9BcnJheToic3R5bGUiLHRhcmdldDp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToiY2FsYyJ9LHZhbHVlOnt2YWxUeXBlOiJhbnkiLGRmbHQ6e30sZWRpdFR5cGU6ImNhbGMiLF9jb21wYXJlQXNKU09OOiEwfSxlZGl0VHlwZToiY2FsYyJ9LGVkaXRUeXBlOiJjYWxjIn0sci5zdXBwbHlEZWZhdWx0cz1mdW5jdGlvbih0LGUsaSl7dmFyIGEsbz17fTtmdW5jdGlvbiBzKGUsaSl7cmV0dXJuIG4uY29lcmNlKHQsbyxyLmF0dHJpYnV0ZXMsZSxpKX1pZighcygiZW5hYmxlZCIpKXJldHVybiBvO3MoImdyb3VwcyIpLHMoIm5hbWVmb3JtYXQiLGkuX2RhdGFMZW5ndGg+MT8iJXtncm91cH0gKCV7dHJhY2V9KSI6IiV7Z3JvdXB9Iik7dmFyIGw9dC5zdHlsZXMsYz1vLnN0eWxlcz1bXTtpZihsKWZvcihhPTA7YTxsLmxlbmd0aDthKyspe3ZhciB1PWNbYV09e307bi5jb2VyY2UobFthXSxjW2FdLHIuYXR0cmlidXRlcy5zdHlsZXMsInRhcmdldCIpO3ZhciBmPW4uY29lcmNlKGxbYV0sY1thXSxyLmF0dHJpYnV0ZXMuc3R5bGVzLCJ2YWx1ZSIpO24uaXNQbGFpbk9iamVjdChmKT91LnZhbHVlPW4uZXh0ZW5kRGVlcCh7fSxmKTpmJiZkZWxldGUgdS52YWx1ZX1yZXR1cm4gb30sci50cmFuc2Zvcm09ZnVuY3Rpb24odCxlKXt2YXIgcixuLGksYT1bXTtmb3Iobj0wO248dC5sZW5ndGg7bisrKWZvcihyPXModFtuXSxlKSxpPTA7aTxyLmxlbmd0aDtpKyspYS5wdXNoKHJbaV0pO3JldHVybiBhfX0seyIuLi9saWIiOjUxNSwiLi4vcGxvdF9hcGkvcGxvdF9zY2hlbWEiOjU1NCwiLi4vcGxvdHMvcGxvdHMiOjYyOCwiLi9oZWxwZXJzIjoxMTMwfV0sMTEzMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLnBvaW50c0FjY2Vzc29yRnVuY3Rpb249ZnVuY3Rpb24odCxlKXtmb3IodmFyIHIsbixpPTA7aTx0Lmxlbmd0aCYmKHI9dFtpXSkhPT1lO2krKylyLl9pbmRleFRvUG9pbnRzJiYhMSE9PXIuZW5hYmxlZCYmKG49ci5faW5kZXhUb1BvaW50cyk7cmV0dXJuIG4/ZnVuY3Rpb24odCl7cmV0dXJuIG5bdF19OmZ1bmN0aW9uKHQpe3JldHVyblt0XX19fSx7fV0sMTEzMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9saWIiKSxpPXQoIi4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksYT10KCIuL2hlbHBlcnMiKS5wb2ludHNBY2Nlc3NvckZ1bmN0aW9uLG89dCgiLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTTtyLm1vZHVsZVR5cGU9InRyYW5zZm9ybSIsci5uYW1lPSJzb3J0IixyLmF0dHJpYnV0ZXM9e2VuYWJsZWQ6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6ImNhbGMifSx0YXJnZXQ6e3ZhbFR5cGU6InN0cmluZyIsc3RyaWN0OiEwLG5vQmxhbms6ITAsYXJyYXlPazohMCxkZmx0OiJ4IixlZGl0VHlwZToiY2FsYyJ9LG9yZGVyOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJhc2NlbmRpbmciLCJkZXNjZW5kaW5nIl0sZGZsdDoiYXNjZW5kaW5nIixlZGl0VHlwZToiY2FsYyJ9LGVkaXRUeXBlOiJjYWxjIn0sci5zdXBwbHlEZWZhdWx0cz1mdW5jdGlvbih0KXt2YXIgZT17fTtmdW5jdGlvbiBpKGksYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxyLmF0dHJpYnV0ZXMsaSxhKX1yZXR1cm4gaSgiZW5hYmxlZCIpJiYoaSgidGFyZ2V0IiksaSgib3JkZXIiKSksZX0sci5jYWxjVHJhbnNmb3JtPWZ1bmN0aW9uKHQsZSxyKXtpZihyLmVuYWJsZWQpe3ZhciBzPW4uZ2V0VGFyZ2V0QXJyYXkoZSxyKTtpZihzKXt2YXIgbD1yLnRhcmdldCxjPXMubGVuZ3RoO2UuX2xlbmd0aCYmKGM9TWF0aC5taW4oYyxlLl9sZW5ndGgpKTt2YXIgdSxmLGg9ZS5fYXJyYXlBdHRycyxwPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpLGE9bmV3IEFycmF5KG4pLHM9bmV3IEFycmF5KG4pO2ZvcihpPTA7aTxuO2krKylhW2ldPXt2OmVbaV0saTppfTtmb3IoYS5zb3J0KGZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQub3JkZXIpe2Nhc2UiYXNjZW5kaW5nIjpyZXR1cm4gZnVuY3Rpb24odCxyKXt2YXIgbj1lKHQudiksaT1lKHIudik7cmV0dXJuIG49PT1vPzE6aT09PW8/LTE6bi1pfTtjYXNlImRlc2NlbmRpbmciOnJldHVybiBmdW5jdGlvbih0LHIpe3ZhciBuPWUodC52KSxpPWUoci52KTtyZXR1cm4gbj09PW8/MTppPT09bz8tMTppLW59fX0odCxyKSksaT0wO2k8bjtpKyspc1tpXT1hW2ldLmk7cmV0dXJuIHN9KHIscyxpLmdldERhdGFUb0Nvb3JkRnVuYyh0LGUsbCxzKSxjKSxkPWEoZS50cmFuc2Zvcm1zLHIpLG09e307Zm9yKHU9MDt1PGgubGVuZ3RoO3UrKyl7dmFyIGc9bi5uZXN0ZWRQcm9wZXJ0eShlLGhbdV0pLHY9Zy5nZXQoKSx5PW5ldyBBcnJheShjKTtmb3IoZj0wO2Y8YztmKyspeVtmXT12W3BbZl1dO2cuc2V0KHkpfWZvcihmPTA7ZjxjO2YrKyltW2ZdPWQocFtmXSk7ci5faW5kZXhUb1BvaW50cz1tLGUuX2xlbmd0aD1jfX19fSx7Ii4uL2NvbnN0YW50cy9udW1lcmljYWwiOjQ5MSwiLi4vbGliIjo1MTUsIi4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo1NjYsIi4vaGVscGVycyI6MTEzMH1dLDExMzI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ci52ZXJzaW9uPSIyLjEzLjMifSx7fV0sMTEzMzpbZnVuY3Rpb24odCxlLHIpeyhmdW5jdGlvbihuKXsoZnVuY3Rpb24oKXshZnVuY3Rpb24odCl7Im9iamVjdCI9PXR5cGVvZiByJiZ2b2lkIDAhPT1lP2UuZXhwb3J0cz10KCk6KCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp2b2lkIDAhPT1uP246InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6dGhpcykuc3RhY2tnbD10KCl9KChmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBlKHIsbixpKXtmdW5jdGlvbiBhKHMsbCl7aWYoIW5bc10pe2lmKCFyW3NdKXt2YXIgYz0iZnVuY3Rpb24iPT10eXBlb2YgdCYmdDtpZighbCYmYylyZXR1cm4gYyhzLCEwKTtpZihvKXJldHVybiBvKHMsITApO3ZhciB1PW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK3MrIiciKTt0aHJvdyB1LmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLHV9dmFyIGY9bltzXT17ZXhwb3J0czp7fX07cltzXVswXS5jYWxsKGYuZXhwb3J0cywoZnVuY3Rpb24odCl7cmV0dXJuIGEocltzXVsxXVt0XXx8dCl9KSxmLGYuZXhwb3J0cyxlLHIsbixpKX1yZXR1cm4gbltzXS5leHBvcnRzfWZvcih2YXIgbz0iZnVuY3Rpb24iPT10eXBlb2YgdCYmdCxzPTA7czxpLmxlbmd0aDtzKyspYShpW3NdKTtyZXR1cm4gYX0oezE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ci5ieXRlTGVuZ3RoPWZ1bmN0aW9uKHQpe3ZhciBlPWModCkscj1lWzBdLG49ZVsxXTtyZXR1cm4gMyoocituKS80LW59LHIudG9CeXRlQXJyYXk9ZnVuY3Rpb24odCl7dmFyIGUscixuPWModCksbz1uWzBdLHM9blsxXSxsPW5ldyBhKGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gMyooZStyKS80LXJ9KDAsbyxzKSksdT0wLGY9cz4wP28tNDpvO2ZvcihyPTA7cjxmO3IrPTQpZT1pW3QuY2hhckNvZGVBdChyKV08PDE4fGlbdC5jaGFyQ29kZUF0KHIrMSldPDwxMnxpW3QuY2hhckNvZGVBdChyKzIpXTw8NnxpW3QuY2hhckNvZGVBdChyKzMpXSxsW3UrK109ZT4+MTYmMjU1LGxbdSsrXT1lPj44JjI1NSxsW3UrK109MjU1JmU7Mj09PXMmJihlPWlbdC5jaGFyQ29kZUF0KHIpXTw8MnxpW3QuY2hhckNvZGVBdChyKzEpXT4+NCxsW3UrK109MjU1JmUpOzE9PT1zJiYoZT1pW3QuY2hhckNvZGVBdChyKV08PDEwfGlbdC5jaGFyQ29kZUF0KHIrMSldPDw0fGlbdC5jaGFyQ29kZUF0KHIrMildPj4yLGxbdSsrXT1lPj44JjI1NSxsW3UrK109MjU1JmUpO3JldHVybiBsfSxyLmZyb21CeXRlQXJyYXk9ZnVuY3Rpb24odCl7Zm9yKHZhciBlLHI9dC5sZW5ndGgsaT1yJTMsYT1bXSxvPTAscz1yLWk7bzxzO28rPTE2MzgzKWEucHVzaCh1KHQsbyxvKzE2MzgzPnM/czpvKzE2MzgzKSk7MT09PWk/KGU9dFtyLTFdLGEucHVzaChuW2U+PjJdK25bZTw8NCY2M10rIj09IikpOjI9PT1pJiYoZT0odFtyLTJdPDw4KSt0W3ItMV0sYS5wdXNoKG5bZT4+MTBdK25bZT4+NCY2M10rbltlPDwyJjYzXSsiPSIpKTtyZXR1cm4gYS5qb2luKCIiKX07Zm9yKHZhciBuPVtdLGk9W10sYT0idW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQ4QXJyYXk/VWludDhBcnJheTpBcnJheSxvPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIixzPTAsbD1vLmxlbmd0aDtzPGw7KytzKW5bc109b1tzXSxpW28uY2hhckNvZGVBdChzKV09cztmdW5jdGlvbiBjKHQpe3ZhciBlPXQubGVuZ3RoO2lmKGUlND4wKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBzdHJpbmcuIExlbmd0aCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNCIpO3ZhciByPXQuaW5kZXhPZigiPSIpO3JldHVybi0xPT09ciYmKHI9ZSksW3Iscj09PWU/MDo0LXIlNF19ZnVuY3Rpb24gdSh0LGUscil7Zm9yKHZhciBpLGEsbz1bXSxzPWU7czxyO3MrPTMpaT0odFtzXTw8MTYmMTY3MTE2ODApKyh0W3MrMV08PDgmNjUyODApKygyNTUmdFtzKzJdKSxvLnB1c2goblsoYT1pKT4+MTgmNjNdK25bYT4+MTImNjNdK25bYT4+NiY2M10rbls2MyZhXSk7cmV0dXJuIG8uam9pbigiIil9aVsiLSIuY2hhckNvZGVBdCgwKV09NjIsaVsiXyIuY2hhckNvZGVBdCgwKV09NjN9LHt9XSwyOltmdW5jdGlvbih0LGUscil7fSx7fV0sMzpbZnVuY3Rpb24odCxlLHIpeyhmdW5jdGlvbihlKXsoZnVuY3Rpb24oKXsKLyohCiAqIFRoZSBidWZmZXIgbW9kdWxlIGZyb20gbm9kZS5qcywgZm9yIHRoZSBicm93c2VyLgogKgogKiBAYXV0aG9yICAgRmVyb3NzIEFib3VraGFkaWplaCA8aHR0cHM6Ly9mZXJvc3Mub3JnPgogKiBAbGljZW5zZSAgTUlUCiAqLwoidXNlIHN0cmljdCI7dmFyIGU9dCgiYmFzZTY0LWpzIiksbj10KCJpZWVlNzU0Iik7ci5CdWZmZXI9YSxyLlNsb3dCdWZmZXI9ZnVuY3Rpb24odCl7K3QhPXQmJih0PTApO3JldHVybiBhLmFsbG9jKCt0KX0sci5JTlNQRUNUX01BWF9CWVRFUz01MDtmdW5jdGlvbiBpKHQpe2lmKHQ+MjE0NzQ4MzY0Nyl0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlICInK3QrJyIgaXMgaW52YWxpZCBmb3Igb3B0aW9uICJzaXplIicpO3ZhciBlPW5ldyBVaW50OEFycmF5KHQpO3JldHVybiBlLl9fcHJvdG9fXz1hLnByb3RvdHlwZSxlfWZ1bmN0aW9uIGEodCxlLHIpe2lmKCJudW1iZXIiPT10eXBlb2YgdCl7aWYoInN0cmluZyI9PXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAic3RyaW5nIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgc3RyaW5nLiBSZWNlaXZlZCB0eXBlIG51bWJlcicpO3JldHVybiBsKHQpfXJldHVybiBvKHQsZSxyKX1mdW5jdGlvbiBvKHQsZSxyKXtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIGZ1bmN0aW9uKHQsZSl7InN0cmluZyI9PXR5cGVvZiBlJiYiIiE9PWV8fChlPSJ1dGY4Iik7aWYoIWEuaXNFbmNvZGluZyhlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK2UpO3ZhciByPTB8Zih0LGUpLG49aShyKSxvPW4ud3JpdGUodCxlKTtvIT09ciYmKG49bi5zbGljZSgwLG8pKTtyZXR1cm4gbn0odCxlKTtpZihBcnJheUJ1ZmZlci5pc1ZpZXcodCkpcmV0dXJuIGModCk7aWYobnVsbD09dCl0aHJvdyBUeXBlRXJyb3IoIlRoZSBmaXJzdCBhcmd1bWVudCBtdXN0IGJlIG9uZSBvZiB0eXBlIHN0cmluZywgQnVmZmVyLCBBcnJheUJ1ZmZlciwgQXJyYXksIG9yIEFycmF5LWxpa2UgT2JqZWN0LiBSZWNlaXZlZCB0eXBlICIrdHlwZW9mIHQpO2lmKEIodCxBcnJheUJ1ZmZlcil8fHQmJkIodC5idWZmZXIsQXJyYXlCdWZmZXIpKXJldHVybiBmdW5jdGlvbih0LGUscil7aWYoZTwwfHx0LmJ5dGVMZW5ndGg8ZSl0aHJvdyBuZXcgUmFuZ2VFcnJvcignIm9mZnNldCIgaXMgb3V0c2lkZSBvZiBidWZmZXIgYm91bmRzJyk7aWYodC5ieXRlTGVuZ3RoPGUrKHJ8fDApKXRocm93IG5ldyBSYW5nZUVycm9yKCcibGVuZ3RoIiBpcyBvdXRzaWRlIG9mIGJ1ZmZlciBib3VuZHMnKTt2YXIgbjtuPXZvaWQgMD09PWUmJnZvaWQgMD09PXI/bmV3IFVpbnQ4QXJyYXkodCk6dm9pZCAwPT09cj9uZXcgVWludDhBcnJheSh0LGUpOm5ldyBVaW50OEFycmF5KHQsZSxyKTtyZXR1cm4gbi5fX3Byb3RvX189YS5wcm90b3R5cGUsbn0odCxlLHIpO2lmKCJudW1iZXIiPT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInZhbHVlIiBhcmd1bWVudCBtdXN0IG5vdCBiZSBvZiB0eXBlIG51bWJlci4gUmVjZWl2ZWQgdHlwZSBudW1iZXInKTt2YXIgbj10LnZhbHVlT2YmJnQudmFsdWVPZigpO2lmKG51bGwhPW4mJm4hPT10KXJldHVybiBhLmZyb20obixlLHIpO3ZhciBvPWZ1bmN0aW9uKHQpe2lmKGEuaXNCdWZmZXIodCkpe3ZhciBlPTB8dSh0Lmxlbmd0aCkscj1pKGUpO3JldHVybiAwPT09ci5sZW5ndGh8fHQuY29weShyLDAsMCxlKSxyfWlmKHZvaWQgMCE9PXQubGVuZ3RoKXJldHVybiJudW1iZXIiIT10eXBlb2YgdC5sZW5ndGh8fE4odC5sZW5ndGgpP2koMCk6Yyh0KTtpZigiQnVmZmVyIj09PXQudHlwZSYmQXJyYXkuaXNBcnJheSh0LmRhdGEpKXJldHVybiBjKHQuZGF0YSl9KHQpO2lmKG8pcmV0dXJuIG87aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPVN5bWJvbC50b1ByaW1pdGl2ZSYmImZ1bmN0aW9uIj09dHlwZW9mIHRbU3ltYm9sLnRvUHJpbWl0aXZlXSlyZXR1cm4gYS5mcm9tKHRbU3ltYm9sLnRvUHJpbWl0aXZlXSgic3RyaW5nIiksZSxyKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGUgZmlyc3QgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBzdHJpbmcsIEJ1ZmZlciwgQXJyYXlCdWZmZXIsIEFycmF5LCBvciBBcnJheS1saWtlIE9iamVjdC4gUmVjZWl2ZWQgdHlwZSAiK3R5cGVvZiB0KX1mdW5jdGlvbiBzKHQpe2lmKCJudW1iZXIiIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCcic2l6ZSIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIG51bWJlcicpO2lmKHQ8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlICInK3QrJyIgaXMgaW52YWxpZCBmb3Igb3B0aW9uICJzaXplIicpfWZ1bmN0aW9uIGwodCl7cmV0dXJuIHModCksaSh0PDA/MDowfHUodCkpfWZ1bmN0aW9uIGModCl7Zm9yKHZhciBlPXQubGVuZ3RoPDA/MDowfHUodC5sZW5ndGgpLHI9aShlKSxuPTA7bjxlO24rPTEpcltuXT0yNTUmdFtuXTtyZXR1cm4gcn1mdW5jdGlvbiB1KHQpe2lmKHQ+PTIxNDc0ODM2NDcpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkF0dGVtcHQgdG8gYWxsb2NhdGUgQnVmZmVyIGxhcmdlciB0aGFuIG1heGltdW0gc2l6ZTogMHgiKzIxNDc0ODM2NDcuLnRvU3RyaW5nKDE2KSsiIGJ5dGVzIik7cmV0dXJuIDB8dH1mdW5jdGlvbiBmKHQsZSl7aWYoYS5pc0J1ZmZlcih0KSlyZXR1cm4gdC5sZW5ndGg7aWYoQXJyYXlCdWZmZXIuaXNWaWV3KHQpfHxCKHQsQXJyYXlCdWZmZXIpKXJldHVybiB0LmJ5dGVMZW5ndGg7aWYoInN0cmluZyIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAic3RyaW5nIiBhcmd1bWVudCBtdXN0IGJlIG9uZSBvZiB0eXBlIHN0cmluZywgQnVmZmVyLCBvciBBcnJheUJ1ZmZlci4gUmVjZWl2ZWQgdHlwZSAnK3R5cGVvZiB0KTt2YXIgcj10Lmxlbmd0aCxuPWFyZ3VtZW50cy5sZW5ndGg+MiYmITA9PT1hcmd1bWVudHNbMl07aWYoIW4mJjA9PT1yKXJldHVybiAwO2Zvcih2YXIgaT0hMTs7KXN3aXRjaChlKXtjYXNlImFzY2lpIjpjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiByO2Nhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6cmV0dXJuIEQodCkubGVuZ3RoO2Nhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4gMipyO2Nhc2UiaGV4IjpyZXR1cm4gcj4+PjE7Y2FzZSJiYXNlNjQiOnJldHVybiBSKHQpLmxlbmd0aDtkZWZhdWx0OmlmKGkpcmV0dXJuIG4/LTE6RCh0KS5sZW5ndGg7ZT0oIiIrZSkudG9Mb3dlckNhc2UoKSxpPSEwfX1mdW5jdGlvbiBoKHQsZSxyKXt2YXIgbj0hMTtpZigodm9pZCAwPT09ZXx8ZTwwKSYmKGU9MCksZT50aGlzLmxlbmd0aClyZXR1cm4iIjtpZigodm9pZCAwPT09cnx8cj50aGlzLmxlbmd0aCkmJihyPXRoaXMubGVuZ3RoKSxyPD0wKXJldHVybiIiO2lmKChyPj4+PTApPD0oZT4+Pj0wKSlyZXR1cm4iIjtmb3IodHx8KHQ9InV0ZjgiKTs7KXN3aXRjaCh0KXtjYXNlImhleCI6cmV0dXJuIE0odGhpcyxlLHIpO2Nhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6cmV0dXJuIFQodGhpcyxlLHIpO2Nhc2UiYXNjaWkiOnJldHVybiBrKHRoaXMsZSxyKTtjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiBBKHRoaXMsZSxyKTtjYXNlImJhc2U2NCI6cmV0dXJuIHcodGhpcyxlLHIpO2Nhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4gUyh0aGlzLGUscik7ZGVmYXVsdDppZihuKXRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrdCk7dD0odCsiIikudG9Mb3dlckNhc2UoKSxuPSEwfX1mdW5jdGlvbiBwKHQsZSxyKXt2YXIgbj10W2VdO3RbZV09dFtyXSx0W3JdPW59ZnVuY3Rpb24gZCh0LGUscixuLGkpe2lmKDA9PT10Lmxlbmd0aClyZXR1cm4tMTtpZigic3RyaW5nIj09dHlwZW9mIHI/KG49cixyPTApOnI+MjE0NzQ4MzY0Nz9yPTIxNDc0ODM2NDc6cjwtMjE0NzQ4MzY0OCYmKHI9LTIxNDc0ODM2NDgpLE4ocj0rcikmJihyPWk/MDp0Lmxlbmd0aC0xKSxyPDAmJihyPXQubGVuZ3RoK3IpLHI+PXQubGVuZ3RoKXtpZihpKXJldHVybi0xO3I9dC5sZW5ndGgtMX1lbHNlIGlmKHI8MCl7aWYoIWkpcmV0dXJuLTE7cj0wfWlmKCJzdHJpbmciPT10eXBlb2YgZSYmKGU9YS5mcm9tKGUsbikpLGEuaXNCdWZmZXIoZSkpcmV0dXJuIDA9PT1lLmxlbmd0aD8tMTptKHQsZSxyLG4saSk7aWYoIm51bWJlciI9PXR5cGVvZiBlKXJldHVybiBlJj0yNTUsImZ1bmN0aW9uIj09dHlwZW9mIFVpbnQ4QXJyYXkucHJvdG90eXBlLmluZGV4T2Y/aT9VaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwodCxlLHIpOlVpbnQ4QXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mLmNhbGwodCxlLHIpOm0odCxbZV0scixuLGkpO3Rocm93IG5ldyBUeXBlRXJyb3IoInZhbCBtdXN0IGJlIHN0cmluZywgbnVtYmVyIG9yIEJ1ZmZlciIpfWZ1bmN0aW9uIG0odCxlLHIsbixpKXt2YXIgYSxvPTEscz10Lmxlbmd0aCxsPWUubGVuZ3RoO2lmKHZvaWQgMCE9PW4mJigidWNzMiI9PT0obj1TdHJpbmcobikudG9Mb3dlckNhc2UoKSl8fCJ1Y3MtMiI9PT1ufHwidXRmMTZsZSI9PT1ufHwidXRmLTE2bGUiPT09bikpe2lmKHQubGVuZ3RoPDJ8fGUubGVuZ3RoPDIpcmV0dXJuLTE7bz0yLHMvPTIsbC89MixyLz0yfWZ1bmN0aW9uIGModCxlKXtyZXR1cm4gMT09PW8/dFtlXTp0LnJlYWRVSW50MTZCRShlKm8pfWlmKGkpe3ZhciB1PS0xO2ZvcihhPXI7YTxzO2ErKylpZihjKHQsYSk9PT1jKGUsLTE9PT11PzA6YS11KSl7aWYoLTE9PT11JiYodT1hKSxhLXUrMT09PWwpcmV0dXJuIHUqb31lbHNlLTEhPT11JiYoYS09YS11KSx1PS0xfWVsc2UgZm9yKHIrbD5zJiYocj1zLWwpLGE9cjthPj0wO2EtLSl7Zm9yKHZhciBmPSEwLGg9MDtoPGw7aCsrKWlmKGModCxhK2gpIT09YyhlLGgpKXtmPSExO2JyZWFrfWlmKGYpcmV0dXJuIGF9cmV0dXJuLTF9ZnVuY3Rpb24gZyh0LGUscixuKXtyPU51bWJlcihyKXx8MDt2YXIgaT10Lmxlbmd0aC1yO24/KG49TnVtYmVyKG4pKT5pJiYobj1pKTpuPWk7dmFyIGE9ZS5sZW5ndGg7bj5hLzImJihuPWEvMik7Zm9yKHZhciBvPTA7bzxuOysrbyl7dmFyIHM9cGFyc2VJbnQoZS5zdWJzdHIoMipvLDIpLDE2KTtpZihOKHMpKXJldHVybiBvO3RbcitvXT1zfXJldHVybiBvfWZ1bmN0aW9uIHYodCxlLHIsbil7cmV0dXJuIEYoRChlLHQubGVuZ3RoLXIpLHQscixuKX1mdW5jdGlvbiB5KHQsZSxyLG4pe3JldHVybiBGKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxyPTA7cjx0Lmxlbmd0aDsrK3IpZS5wdXNoKDI1NSZ0LmNoYXJDb2RlQXQocikpO3JldHVybiBlfShlKSx0LHIsbil9ZnVuY3Rpb24geCh0LGUscixuKXtyZXR1cm4geSh0LGUscixuKX1mdW5jdGlvbiBiKHQsZSxyLG4pe3JldHVybiBGKFIoZSksdCxyLG4pfWZ1bmN0aW9uIF8odCxlLHIsbil7cmV0dXJuIEYoZnVuY3Rpb24odCxlKXtmb3IodmFyIHIsbixpLGE9W10sbz0wO288dC5sZW5ndGgmJiEoKGUtPTIpPDApOysrbylyPXQuY2hhckNvZGVBdChvKSxuPXI+PjgsaT1yJTI1NixhLnB1c2goaSksYS5wdXNoKG4pO3JldHVybiBhfShlLHQubGVuZ3RoLXIpLHQscixuKX1mdW5jdGlvbiB3KHQscixuKXtyZXR1cm4gMD09PXImJm49PT10Lmxlbmd0aD9lLmZyb21CeXRlQXJyYXkodCk6ZS5mcm9tQnl0ZUFycmF5KHQuc2xpY2UocixuKSl9ZnVuY3Rpb24gVCh0LGUscil7cj1NYXRoLm1pbih0Lmxlbmd0aCxyKTtmb3IodmFyIG49W10saT1lO2k8cjspe3ZhciBhLG8scyxsLGM9dFtpXSx1PW51bGwsZj1jPjIzOT80OmM+MjIzPzM6Yz4xOTE/MjoxO2lmKGkrZjw9cilzd2l0Y2goZil7Y2FzZSAxOmM8MTI4JiYodT1jKTticmVhaztjYXNlIDI6MTI4PT0oMTkyJihhPXRbaSsxXSkpJiYobD0oMzEmYyk8PDZ8NjMmYSk+MTI3JiYodT1sKTticmVhaztjYXNlIDM6YT10W2krMV0sbz10W2krMl0sMTI4PT0oMTkyJmEpJiYxMjg9PSgxOTImbykmJihsPSgxNSZjKTw8MTJ8KDYzJmEpPDw2fDYzJm8pPjIwNDcmJihsPDU1Mjk2fHxsPjU3MzQzKSYmKHU9bCk7YnJlYWs7Y2FzZSA0OmE9dFtpKzFdLG89dFtpKzJdLHM9dFtpKzNdLDEyOD09KDE5MiZhKSYmMTI4PT0oMTkyJm8pJiYxMjg9PSgxOTImcykmJihsPSgxNSZjKTw8MTh8KDYzJmEpPDwxMnwoNjMmbyk8PDZ8NjMmcyk+NjU1MzUmJmw8MTExNDExMiYmKHU9bCl9bnVsbD09PXU/KHU9NjU1MzMsZj0xKTp1PjY1NTM1JiYodS09NjU1MzYsbi5wdXNoKHU+Pj4xMCYxMDIzfDU1Mjk2KSx1PTU2MzIwfDEwMjMmdSksbi5wdXNoKHUpLGkrPWZ9cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBlPXQubGVuZ3RoO2lmKGU8PTQwOTYpcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLHQpO3ZhciByPSIiLG49MDtmb3IoO248ZTspcis9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsdC5zbGljZShuLG4rPTQwOTYpKTtyZXR1cm4gcn0obil9ci5rTWF4TGVuZ3RoPTIxNDc0ODM2NDcsYS5UWVBFRF9BUlJBWV9TVVBQT1JUPWZ1bmN0aW9uKCl7dHJ5e3ZhciB0PW5ldyBVaW50OEFycmF5KDEpO3JldHVybiB0Ll9fcHJvdG9fXz17X19wcm90b19fOlVpbnQ4QXJyYXkucHJvdG90eXBlLGZvbzpmdW5jdGlvbigpe3JldHVybiA0Mn19LDQyPT09dC5mb28oKX1jYXRjaCh0KXtyZXR1cm4hMX19KCksYS5UWVBFRF9BUlJBWV9TVVBQT1JUfHwidW5kZWZpbmVkIj09dHlwZW9mIGNvbnNvbGV8fCJmdW5jdGlvbiIhPXR5cGVvZiBjb25zb2xlLmVycm9yfHxjb25zb2xlLmVycm9yKCJUaGlzIGJyb3dzZXIgbGFja3MgdHlwZWQgYXJyYXkgKFVpbnQ4QXJyYXkpIHN1cHBvcnQgd2hpY2ggaXMgcmVxdWlyZWQgYnkgYGJ1ZmZlcmAgdjUueC4gVXNlIGBidWZmZXJgIHY0LnggaWYgeW91IHJlcXVpcmUgb2xkIGJyb3dzZXIgc3VwcG9ydC4iKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYS5wcm90b3R5cGUsInBhcmVudCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7aWYoYS5pc0J1ZmZlcih0aGlzKSlyZXR1cm4gdGhpcy5idWZmZXJ9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGEucHJvdG90eXBlLCJvZmZzZXQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe2lmKGEuaXNCdWZmZXIodGhpcykpcmV0dXJuIHRoaXMuYnl0ZU9mZnNldH19KSwidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9U3ltYm9sLnNwZWNpZXMmJmFbU3ltYm9sLnNwZWNpZXNdPT09YSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsU3ltYm9sLnNwZWNpZXMse3ZhbHVlOm51bGwsY29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITF9KSxhLnBvb2xTaXplPTgxOTIsYS5mcm9tPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gbyh0LGUscil9LGEucHJvdG90eXBlLl9fcHJvdG9fXz1VaW50OEFycmF5LnByb3RvdHlwZSxhLl9fcHJvdG9fXz1VaW50OEFycmF5LGEuYWxsb2M9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBmdW5jdGlvbih0LGUscil7cmV0dXJuIHModCksdDw9MD9pKHQpOnZvaWQgMCE9PWU/InN0cmluZyI9PXR5cGVvZiByP2kodCkuZmlsbChlLHIpOmkodCkuZmlsbChlKTppKHQpfSh0LGUscil9LGEuYWxsb2NVbnNhZmU9ZnVuY3Rpb24odCl7cmV0dXJuIGwodCl9LGEuYWxsb2NVbnNhZmVTbG93PWZ1bmN0aW9uKHQpe3JldHVybiBsKHQpfSxhLmlzQnVmZmVyPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT10JiYhMD09PXQuX2lzQnVmZmVyJiZ0IT09YS5wcm90b3R5cGV9LGEuY29tcGFyZT1mdW5jdGlvbih0LGUpe2lmKEIodCxVaW50OEFycmF5KSYmKHQ9YS5mcm9tKHQsdC5vZmZzZXQsdC5ieXRlTGVuZ3RoKSksQihlLFVpbnQ4QXJyYXkpJiYoZT1hLmZyb20oZSxlLm9mZnNldCxlLmJ5dGVMZW5ndGgpKSwhYS5pc0J1ZmZlcih0KXx8IWEuaXNCdWZmZXIoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJidWYxIiwgImJ1ZjIiIGFyZ3VtZW50cyBtdXN0IGJlIG9uZSBvZiB0eXBlIEJ1ZmZlciBvciBVaW50OEFycmF5Jyk7aWYodD09PWUpcmV0dXJuIDA7Zm9yKHZhciByPXQubGVuZ3RoLG49ZS5sZW5ndGgsaT0wLG89TWF0aC5taW4ocixuKTtpPG87KytpKWlmKHRbaV0hPT1lW2ldKXtyPXRbaV0sbj1lW2ldO2JyZWFrfXJldHVybiByPG4/LTE6bjxyPzE6MH0sYS5pc0VuY29kaW5nPWZ1bmN0aW9uKHQpe3N3aXRjaChTdHJpbmcodCkudG9Mb3dlckNhc2UoKSl7Y2FzZSJoZXgiOmNhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6Y2FzZSJhc2NpaSI6Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpjYXNlImJhc2U2NCI6Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fSxhLmNvbmNhdD1mdW5jdGlvbih0LGUpe2lmKCFBcnJheS5pc0FycmF5KHQpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJsaXN0IiBhcmd1bWVudCBtdXN0IGJlIGFuIEFycmF5IG9mIEJ1ZmZlcnMnKTtpZigwPT09dC5sZW5ndGgpcmV0dXJuIGEuYWxsb2MoMCk7dmFyIHI7aWYodm9pZCAwPT09ZSlmb3IoZT0wLHI9MDtyPHQubGVuZ3RoOysrcillKz10W3JdLmxlbmd0aDt2YXIgbj1hLmFsbG9jVW5zYWZlKGUpLGk9MDtmb3Iocj0wO3I8dC5sZW5ndGg7KytyKXt2YXIgbz10W3JdO2lmKEIobyxVaW50OEFycmF5KSYmKG89YS5mcm9tKG8pKSwhYS5pc0J1ZmZlcihvKSl0aHJvdyBuZXcgVHlwZUVycm9yKCcibGlzdCIgYXJndW1lbnQgbXVzdCBiZSBhbiBBcnJheSBvZiBCdWZmZXJzJyk7by5jb3B5KG4saSksaSs9by5sZW5ndGh9cmV0dXJuIG59LGEuYnl0ZUxlbmd0aD1mLGEucHJvdG90eXBlLl9pc0J1ZmZlcj0hMCxhLnByb3RvdHlwZS5zd2FwMTY9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmxlbmd0aDtpZih0JTIhPTApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkJ1ZmZlciBzaXplIG11c3QgYmUgYSBtdWx0aXBsZSBvZiAxNi1iaXRzIik7Zm9yKHZhciBlPTA7ZTx0O2UrPTIpcCh0aGlzLGUsZSsxKTtyZXR1cm4gdGhpc30sYS5wcm90b3R5cGUuc3dhcDMyPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5sZW5ndGg7aWYodCU0IT0wKXRocm93IG5ldyBSYW5nZUVycm9yKCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMzItYml0cyIpO2Zvcih2YXIgZT0wO2U8dDtlKz00KXAodGhpcyxlLGUrMykscCh0aGlzLGUrMSxlKzIpO3JldHVybiB0aGlzfSxhLnByb3RvdHlwZS5zd2FwNjQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmxlbmd0aDtpZih0JTghPTApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkJ1ZmZlciBzaXplIG11c3QgYmUgYSBtdWx0aXBsZSBvZiA2NC1iaXRzIik7Zm9yKHZhciBlPTA7ZTx0O2UrPTgpcCh0aGlzLGUsZSs3KSxwKHRoaXMsZSsxLGUrNikscCh0aGlzLGUrMixlKzUpLHAodGhpcyxlKzMsZSs0KTtyZXR1cm4gdGhpc30sYS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmxlbmd0aDtyZXR1cm4gMD09PXQ/IiI6MD09PWFyZ3VtZW50cy5sZW5ndGg/VCh0aGlzLDAsdCk6aC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGEucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nPWEucHJvdG90eXBlLnRvU3RyaW5nLGEucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbih0KXtpZighYS5pc0J1ZmZlcih0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIik7cmV0dXJuIHRoaXM9PT10fHwwPT09YS5jb21wYXJlKHRoaXMsdCl9LGEucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24oKXt2YXIgdD0iIixlPXIuSU5TUEVDVF9NQVhfQllURVM7cmV0dXJuIHQ9dGhpcy50b1N0cmluZygiaGV4IiwwLGUpLnJlcGxhY2UoLyguezJ9KS9nLCIkMSAiKS50cmltKCksdGhpcy5sZW5ndGg+ZSYmKHQrPSIgLi4uICIpLCI8QnVmZmVyICIrdCsiPiJ9LGEucHJvdG90eXBlLmNvbXBhcmU9ZnVuY3Rpb24odCxlLHIsbixpKXtpZihCKHQsVWludDhBcnJheSkmJih0PWEuZnJvbSh0LHQub2Zmc2V0LHQuYnl0ZUxlbmd0aCkpLCFhLmlzQnVmZmVyKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAidGFyZ2V0IiBhcmd1bWVudCBtdXN0IGJlIG9uZSBvZiB0eXBlIEJ1ZmZlciBvciBVaW50OEFycmF5LiBSZWNlaXZlZCB0eXBlICcrdHlwZW9mIHQpO2lmKHZvaWQgMD09PWUmJihlPTApLHZvaWQgMD09PXImJihyPXQ/dC5sZW5ndGg6MCksdm9pZCAwPT09biYmKG49MCksdm9pZCAwPT09aSYmKGk9dGhpcy5sZW5ndGgpLGU8MHx8cj50Lmxlbmd0aHx8bjwwfHxpPnRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJvdXQgb2YgcmFuZ2UgaW5kZXgiKTtpZihuPj1pJiZlPj1yKXJldHVybiAwO2lmKG4+PWkpcmV0dXJuLTE7aWYoZT49cilyZXR1cm4gMTtpZih0aGlzPT09dClyZXR1cm4gMDtmb3IodmFyIG89KGk+Pj49MCktKG4+Pj49MCkscz0ocj4+Pj0wKS0oZT4+Pj0wKSxsPU1hdGgubWluKG8scyksYz10aGlzLnNsaWNlKG4saSksdT10LnNsaWNlKGUsciksZj0wO2Y8bDsrK2YpaWYoY1tmXSE9PXVbZl0pe289Y1tmXSxzPXVbZl07YnJlYWt9cmV0dXJuIG88cz8tMTpzPG8/MTowfSxhLnByb3RvdHlwZS5pbmNsdWRlcz1mdW5jdGlvbih0LGUscil7cmV0dXJuLTEhPT10aGlzLmluZGV4T2YodCxlLHIpfSxhLnByb3RvdHlwZS5pbmRleE9mPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZCh0aGlzLHQsZSxyLCEwKX0sYS5wcm90b3R5cGUubGFzdEluZGV4T2Y9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBkKHRoaXMsdCxlLHIsITEpfSxhLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbih0LGUscixuKXtpZih2b2lkIDA9PT1lKW49InV0ZjgiLHI9dGhpcy5sZW5ndGgsZT0wO2Vsc2UgaWYodm9pZCAwPT09ciYmInN0cmluZyI9PXR5cGVvZiBlKW49ZSxyPXRoaXMubGVuZ3RoLGU9MDtlbHNle2lmKCFpc0Zpbml0ZShlKSl0aHJvdyBuZXcgRXJyb3IoIkJ1ZmZlci53cml0ZShzdHJpbmcsIGVuY29kaW5nLCBvZmZzZXRbLCBsZW5ndGhdKSBpcyBubyBsb25nZXIgc3VwcG9ydGVkIik7ZT4+Pj0wLGlzRmluaXRlKHIpPyhyPj4+PTAsdm9pZCAwPT09biYmKG49InV0ZjgiKSk6KG49cixyPXZvaWQgMCl9dmFyIGk9dGhpcy5sZW5ndGgtZTtpZigodm9pZCAwPT09cnx8cj5pKSYmKHI9aSksdC5sZW5ndGg+MCYmKHI8MHx8ZTwwKXx8ZT50aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQXR0ZW1wdCB0byB3cml0ZSBvdXRzaWRlIGJ1ZmZlciBib3VuZHMiKTtufHwobj0idXRmOCIpO2Zvcih2YXIgYT0hMTs7KXN3aXRjaChuKXtjYXNlImhleCI6cmV0dXJuIGcodGhpcyx0LGUscik7Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpyZXR1cm4gdih0aGlzLHQsZSxyKTtjYXNlImFzY2lpIjpyZXR1cm4geSh0aGlzLHQsZSxyKTtjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiB4KHRoaXMsdCxlLHIpO2Nhc2UiYmFzZTY0IjpyZXR1cm4gYih0aGlzLHQsZSxyKTtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuIF8odGhpcyx0LGUscik7ZGVmYXVsdDppZihhKXRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrbik7bj0oIiIrbikudG9Mb3dlckNhc2UoKSxhPSEwfX0sYS5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6IkJ1ZmZlciIsZGF0YTpBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aGlzLl9hcnJ8fHRoaXMsMCl9fTtmdW5jdGlvbiBrKHQsZSxyKXt2YXIgbj0iIjtyPU1hdGgubWluKHQubGVuZ3RoLHIpO2Zvcih2YXIgaT1lO2k8cjsrK2kpbis9U3RyaW5nLmZyb21DaGFyQ29kZSgxMjcmdFtpXSk7cmV0dXJuIG59ZnVuY3Rpb24gQSh0LGUscil7dmFyIG49IiI7cj1NYXRoLm1pbih0Lmxlbmd0aCxyKTtmb3IodmFyIGk9ZTtpPHI7KytpKW4rPVN0cmluZy5mcm9tQ2hhckNvZGUodFtpXSk7cmV0dXJuIG59ZnVuY3Rpb24gTSh0LGUscil7dmFyIG49dC5sZW5ndGg7KCFlfHxlPDApJiYoZT0wKSwoIXJ8fHI8MHx8cj5uKSYmKHI9bik7Zm9yKHZhciBpPSIiLGE9ZTthPHI7KythKWkrPXoodFthXSk7cmV0dXJuIGl9ZnVuY3Rpb24gUyh0LGUscil7Zm9yKHZhciBuPXQuc2xpY2UoZSxyKSxpPSIiLGE9MDthPG4ubGVuZ3RoO2ErPTIpaSs9U3RyaW5nLmZyb21DaGFyQ29kZShuW2FdKzI1NipuW2ErMV0pO3JldHVybiBpfWZ1bmN0aW9uIEUodCxlLHIpe2lmKHQlMSE9MHx8dDwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJvZmZzZXQgaXMgbm90IHVpbnQiKTtpZih0K2U+cil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiVHJ5aW5nIHRvIGFjY2VzcyBiZXlvbmQgYnVmZmVyIGxlbmd0aCIpfWZ1bmN0aW9uIEwodCxlLHIsbixpLG8pe2lmKCFhLmlzQnVmZmVyKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJidWZmZXIiIGFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIgaW5zdGFuY2UnKTtpZihlPml8fGU8byl0aHJvdyBuZXcgUmFuZ2VFcnJvcignInZhbHVlIiBhcmd1bWVudCBpcyBvdXQgb2YgYm91bmRzJyk7aWYocituPnQubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbmRleCBvdXQgb2YgcmFuZ2UiKX1mdW5jdGlvbiBDKHQsZSxyLG4saSxhKXtpZihyK24+dC5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkluZGV4IG91dCBvZiByYW5nZSIpO2lmKHI8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gUCh0LGUscixpLGEpe3JldHVybiBlPStlLHI+Pj49MCxhfHxDKHQsMCxyLDQpLG4ud3JpdGUodCxlLHIsaSwyMyw0KSxyKzR9ZnVuY3Rpb24gSSh0LGUscixpLGEpe3JldHVybiBlPStlLHI+Pj49MCxhfHxDKHQsMCxyLDgpLG4ud3JpdGUodCxlLHIsaSw1Miw4KSxyKzh9YS5wcm90b3R5cGUuc2xpY2U9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmxlbmd0aDsodD1+fnQpPDA/KHQrPXIpPDAmJih0PTApOnQ+ciYmKHQ9ciksKGU9dm9pZCAwPT09ZT9yOn5+ZSk8MD8oZSs9cik8MCYmKGU9MCk6ZT5yJiYoZT1yKSxlPHQmJihlPXQpO3ZhciBuPXRoaXMuc3ViYXJyYXkodCxlKTtyZXR1cm4gbi5fX3Byb3RvX189YS5wcm90b3R5cGUsbn0sYS5wcm90b3R5cGUucmVhZFVJbnRMRT1mdW5jdGlvbih0LGUscil7dD4+Pj0wLGU+Pj49MCxyfHxFKHQsZSx0aGlzLmxlbmd0aCk7Zm9yKHZhciBuPXRoaXNbdF0saT0xLGE9MDsrK2E8ZSYmKGkqPTI1Nik7KW4rPXRoaXNbdCthXSppO3JldHVybiBufSxhLnByb3RvdHlwZS5yZWFkVUludEJFPWZ1bmN0aW9uKHQsZSxyKXt0Pj4+PTAsZT4+Pj0wLHJ8fEUodCxlLHRoaXMubGVuZ3RoKTtmb3IodmFyIG49dGhpc1t0Ky0tZV0saT0xO2U+MCYmKGkqPTI1Nik7KW4rPXRoaXNbdCstLWVdKmk7cmV0dXJuIG59LGEucHJvdG90eXBlLnJlYWRVSW50OD1mdW5jdGlvbih0LGUpe3JldHVybiB0Pj4+PTAsZXx8RSh0LDEsdGhpcy5sZW5ndGgpLHRoaXNbdF19LGEucHJvdG90eXBlLnJlYWRVSW50MTZMRT1mdW5jdGlvbih0LGUpe3JldHVybiB0Pj4+PTAsZXx8RSh0LDIsdGhpcy5sZW5ndGgpLHRoaXNbdF18dGhpc1t0KzFdPDw4fSxhLnByb3RvdHlwZS5yZWFkVUludDE2QkU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD4+Pj0wLGV8fEUodCwyLHRoaXMubGVuZ3RoKSx0aGlzW3RdPDw4fHRoaXNbdCsxXX0sYS5wcm90b3R5cGUucmVhZFVJbnQzMkxFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ+Pj49MCxlfHxFKHQsNCx0aGlzLmxlbmd0aCksKHRoaXNbdF18dGhpc1t0KzFdPDw4fHRoaXNbdCsyXTw8MTYpKzE2Nzc3MjE2KnRoaXNbdCszXX0sYS5wcm90b3R5cGUucmVhZFVJbnQzMkJFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ+Pj49MCxlfHxFKHQsNCx0aGlzLmxlbmd0aCksMTY3NzcyMTYqdGhpc1t0XSsodGhpc1t0KzFdPDwxNnx0aGlzW3QrMl08PDh8dGhpc1t0KzNdKX0sYS5wcm90b3R5cGUucmVhZEludExFPWZ1bmN0aW9uKHQsZSxyKXt0Pj4+PTAsZT4+Pj0wLHJ8fEUodCxlLHRoaXMubGVuZ3RoKTtmb3IodmFyIG49dGhpc1t0XSxpPTEsYT0wOysrYTxlJiYoaSo9MjU2KTspbis9dGhpc1t0K2FdKmk7cmV0dXJuIG4+PShpKj0xMjgpJiYobi09TWF0aC5wb3coMiw4KmUpKSxufSxhLnByb3RvdHlwZS5yZWFkSW50QkU9ZnVuY3Rpb24odCxlLHIpe3Q+Pj49MCxlPj4+PTAscnx8RSh0LGUsdGhpcy5sZW5ndGgpO2Zvcih2YXIgbj1lLGk9MSxhPXRoaXNbdCstLW5dO24+MCYmKGkqPTI1Nik7KWErPXRoaXNbdCstLW5dKmk7cmV0dXJuIGE+PShpKj0xMjgpJiYoYS09TWF0aC5wb3coMiw4KmUpKSxhfSxhLnByb3RvdHlwZS5yZWFkSW50OD1mdW5jdGlvbih0LGUpe3JldHVybiB0Pj4+PTAsZXx8RSh0LDEsdGhpcy5sZW5ndGgpLDEyOCZ0aGlzW3RdPy0xKigyNTUtdGhpc1t0XSsxKTp0aGlzW3RdfSxhLnByb3RvdHlwZS5yZWFkSW50MTZMRT1mdW5jdGlvbih0LGUpe3Q+Pj49MCxlfHxFKHQsMix0aGlzLmxlbmd0aCk7dmFyIHI9dGhpc1t0XXx0aGlzW3QrMV08PDg7cmV0dXJuIDMyNzY4JnI/NDI5NDkwMTc2MHxyOnJ9LGEucHJvdG90eXBlLnJlYWRJbnQxNkJFPWZ1bmN0aW9uKHQsZSl7dD4+Pj0wLGV8fEUodCwyLHRoaXMubGVuZ3RoKTt2YXIgcj10aGlzW3QrMV18dGhpc1t0XTw8ODtyZXR1cm4gMzI3Njgmcj80Mjk0OTAxNzYwfHI6cn0sYS5wcm90b3R5cGUucmVhZEludDMyTEU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD4+Pj0wLGV8fEUodCw0LHRoaXMubGVuZ3RoKSx0aGlzW3RdfHRoaXNbdCsxXTw8OHx0aGlzW3QrMl08PDE2fHRoaXNbdCszXTw8MjR9LGEucHJvdG90eXBlLnJlYWRJbnQzMkJFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ+Pj49MCxlfHxFKHQsNCx0aGlzLmxlbmd0aCksdGhpc1t0XTw8MjR8dGhpc1t0KzFdPDwxNnx0aGlzW3QrMl08PDh8dGhpc1t0KzNdfSxhLnByb3RvdHlwZS5yZWFkRmxvYXRMRT1mdW5jdGlvbih0LGUpe3JldHVybiB0Pj4+PTAsZXx8RSh0LDQsdGhpcy5sZW5ndGgpLG4ucmVhZCh0aGlzLHQsITAsMjMsNCl9LGEucHJvdG90eXBlLnJlYWRGbG9hdEJFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ+Pj49MCxlfHxFKHQsNCx0aGlzLmxlbmd0aCksbi5yZWFkKHRoaXMsdCwhMSwyMyw0KX0sYS5wcm90b3R5cGUucmVhZERvdWJsZUxFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ+Pj49MCxlfHxFKHQsOCx0aGlzLmxlbmd0aCksbi5yZWFkKHRoaXMsdCwhMCw1Miw4KX0sYS5wcm90b3R5cGUucmVhZERvdWJsZUJFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ+Pj49MCxlfHxFKHQsOCx0aGlzLmxlbmd0aCksbi5yZWFkKHRoaXMsdCwhMSw1Miw4KX0sYS5wcm90b3R5cGUud3JpdGVVSW50TEU9ZnVuY3Rpb24odCxlLHIsbil7KHQ9K3QsZT4+Pj0wLHI+Pj49MCxuKXx8TCh0aGlzLHQsZSxyLE1hdGgucG93KDIsOCpyKS0xLDApO3ZhciBpPTEsYT0wO2Zvcih0aGlzW2VdPTI1NSZ0OysrYTxyJiYoaSo9MjU2KTspdGhpc1tlK2FdPXQvaSYyNTU7cmV0dXJuIGUrcn0sYS5wcm90b3R5cGUud3JpdGVVSW50QkU9ZnVuY3Rpb24odCxlLHIsbil7KHQ9K3QsZT4+Pj0wLHI+Pj49MCxuKXx8TCh0aGlzLHQsZSxyLE1hdGgucG93KDIsOCpyKS0xLDApO3ZhciBpPXItMSxhPTE7Zm9yKHRoaXNbZStpXT0yNTUmdDstLWk+PTAmJihhKj0yNTYpOyl0aGlzW2UraV09dC9hJjI1NTtyZXR1cm4gZStyfSxhLnByb3RvdHlwZS53cml0ZVVJbnQ4PWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0rdCxlPj4+PTAscnx8TCh0aGlzLHQsZSwxLDI1NSwwKSx0aGlzW2VdPTI1NSZ0LGUrMX0sYS5wcm90b3R5cGUud3JpdGVVSW50MTZMRT1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQ9K3QsZT4+Pj0wLHJ8fEwodGhpcyx0LGUsMiw2NTUzNSwwKSx0aGlzW2VdPTI1NSZ0LHRoaXNbZSsxXT10Pj4+OCxlKzJ9LGEucHJvdG90eXBlLndyaXRlVUludDE2QkU9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PSt0LGU+Pj49MCxyfHxMKHRoaXMsdCxlLDIsNjU1MzUsMCksdGhpc1tlXT10Pj4+OCx0aGlzW2UrMV09MjU1JnQsZSsyfSxhLnByb3RvdHlwZS53cml0ZVVJbnQzMkxFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0rdCxlPj4+PTAscnx8TCh0aGlzLHQsZSw0LDQyOTQ5NjcyOTUsMCksdGhpc1tlKzNdPXQ+Pj4yNCx0aGlzW2UrMl09dD4+PjE2LHRoaXNbZSsxXT10Pj4+OCx0aGlzW2VdPTI1NSZ0LGUrNH0sYS5wcm90b3R5cGUud3JpdGVVSW50MzJCRT1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQ9K3QsZT4+Pj0wLHJ8fEwodGhpcyx0LGUsNCw0Mjk0OTY3Mjk1LDApLHRoaXNbZV09dD4+PjI0LHRoaXNbZSsxXT10Pj4+MTYsdGhpc1tlKzJdPXQ+Pj44LHRoaXNbZSszXT0yNTUmdCxlKzR9LGEucHJvdG90eXBlLndyaXRlSW50TEU9ZnVuY3Rpb24odCxlLHIsbil7aWYodD0rdCxlPj4+PTAsIW4pe3ZhciBpPU1hdGgucG93KDIsOCpyLTEpO0wodGhpcyx0LGUscixpLTEsLWkpfXZhciBhPTAsbz0xLHM9MDtmb3IodGhpc1tlXT0yNTUmdDsrK2E8ciYmKG8qPTI1Nik7KXQ8MCYmMD09PXMmJjAhPT10aGlzW2UrYS0xXSYmKHM9MSksdGhpc1tlK2FdPSh0L28+PjApLXMmMjU1O3JldHVybiBlK3J9LGEucHJvdG90eXBlLndyaXRlSW50QkU9ZnVuY3Rpb24odCxlLHIsbil7aWYodD0rdCxlPj4+PTAsIW4pe3ZhciBpPU1hdGgucG93KDIsOCpyLTEpO0wodGhpcyx0LGUscixpLTEsLWkpfXZhciBhPXItMSxvPTEscz0wO2Zvcih0aGlzW2UrYV09MjU1JnQ7LS1hPj0wJiYobyo9MjU2KTspdDwwJiYwPT09cyYmMCE9PXRoaXNbZSthKzFdJiYocz0xKSx0aGlzW2UrYV09KHQvbz4+MCktcyYyNTU7cmV0dXJuIGUrcn0sYS5wcm90b3R5cGUud3JpdGVJbnQ4PWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0rdCxlPj4+PTAscnx8TCh0aGlzLHQsZSwxLDEyNywtMTI4KSx0PDAmJih0PTI1NSt0KzEpLHRoaXNbZV09MjU1JnQsZSsxfSxhLnByb3RvdHlwZS53cml0ZUludDE2TEU9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PSt0LGU+Pj49MCxyfHxMKHRoaXMsdCxlLDIsMzI3NjcsLTMyNzY4KSx0aGlzW2VdPTI1NSZ0LHRoaXNbZSsxXT10Pj4+OCxlKzJ9LGEucHJvdG90eXBlLndyaXRlSW50MTZCRT1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQ9K3QsZT4+Pj0wLHJ8fEwodGhpcyx0LGUsMiwzMjc2NywtMzI3NjgpLHRoaXNbZV09dD4+PjgsdGhpc1tlKzFdPTI1NSZ0LGUrMn0sYS5wcm90b3R5cGUud3JpdGVJbnQzMkxFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0rdCxlPj4+PTAscnx8TCh0aGlzLHQsZSw0LDIxNDc0ODM2NDcsLTIxNDc0ODM2NDgpLHRoaXNbZV09MjU1JnQsdGhpc1tlKzFdPXQ+Pj44LHRoaXNbZSsyXT10Pj4+MTYsdGhpc1tlKzNdPXQ+Pj4yNCxlKzR9LGEucHJvdG90eXBlLndyaXRlSW50MzJCRT1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQ9K3QsZT4+Pj0wLHJ8fEwodGhpcyx0LGUsNCwyMTQ3NDgzNjQ3LC0yMTQ3NDgzNjQ4KSx0PDAmJih0PTQyOTQ5NjcyOTUrdCsxKSx0aGlzW2VdPXQ+Pj4yNCx0aGlzW2UrMV09dD4+PjE2LHRoaXNbZSsyXT10Pj4+OCx0aGlzW2UrM109MjU1JnQsZSs0fSxhLnByb3RvdHlwZS53cml0ZUZsb2F0TEU9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBQKHRoaXMsdCxlLCEwLHIpfSxhLnByb3RvdHlwZS53cml0ZUZsb2F0QkU9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBQKHRoaXMsdCxlLCExLHIpfSxhLnByb3RvdHlwZS53cml0ZURvdWJsZUxFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gSSh0aGlzLHQsZSwhMCxyKX0sYS5wcm90b3R5cGUud3JpdGVEb3VibGVCRT1mdW5jdGlvbih0LGUscil7cmV0dXJuIEkodGhpcyx0LGUsITEscil9LGEucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24odCxlLHIsbil7aWYoIWEuaXNCdWZmZXIodCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXJndW1lbnQgc2hvdWxkIGJlIGEgQnVmZmVyIik7aWYocnx8KHI9MCksbnx8MD09PW58fChuPXRoaXMubGVuZ3RoKSxlPj10Lmxlbmd0aCYmKGU9dC5sZW5ndGgpLGV8fChlPTApLG4+MCYmbjxyJiYobj1yKSxuPT09cilyZXR1cm4gMDtpZigwPT09dC5sZW5ndGh8fDA9PT10aGlzLmxlbmd0aClyZXR1cm4gMDtpZihlPDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoInRhcmdldFN0YXJ0IG91dCBvZiBib3VuZHMiKTtpZihyPDB8fHI+PXRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbmRleCBvdXQgb2YgcmFuZ2UiKTtpZihuPDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoInNvdXJjZUVuZCBvdXQgb2YgYm91bmRzIik7bj50aGlzLmxlbmd0aCYmKG49dGhpcy5sZW5ndGgpLHQubGVuZ3RoLWU8bi1yJiYobj10Lmxlbmd0aC1lK3IpO3ZhciBpPW4tcjtpZih0aGlzPT09dCYmImZ1bmN0aW9uIj09dHlwZW9mIFVpbnQ4QXJyYXkucHJvdG90eXBlLmNvcHlXaXRoaW4pdGhpcy5jb3B5V2l0aGluKGUscixuKTtlbHNlIGlmKHRoaXM9PT10JiZyPGUmJmU8bilmb3IodmFyIG89aS0xO28+PTA7LS1vKXRbbytlXT10aGlzW28rcl07ZWxzZSBVaW50OEFycmF5LnByb3RvdHlwZS5zZXQuY2FsbCh0LHRoaXMuc3ViYXJyYXkocixuKSxlKTtyZXR1cm4gaX0sYS5wcm90b3R5cGUuZmlsbD1mdW5jdGlvbih0LGUscixuKXtpZigic3RyaW5nIj09dHlwZW9mIHQpe2lmKCJzdHJpbmciPT10eXBlb2YgZT8obj1lLGU9MCxyPXRoaXMubGVuZ3RoKToic3RyaW5nIj09dHlwZW9mIHImJihuPXIscj10aGlzLmxlbmd0aCksdm9pZCAwIT09biYmInN0cmluZyIhPXR5cGVvZiBuKXRocm93IG5ldyBUeXBlRXJyb3IoImVuY29kaW5nIG11c3QgYmUgYSBzdHJpbmciKTtpZigic3RyaW5nIj09dHlwZW9mIG4mJiFhLmlzRW5jb2RpbmcobikpdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIituKTtpZigxPT09dC5sZW5ndGgpe3ZhciBpPXQuY2hhckNvZGVBdCgwKTsoInV0ZjgiPT09biYmaTwxMjh8fCJsYXRpbjEiPT09bikmJih0PWkpfX1lbHNlIm51bWJlciI9PXR5cGVvZiB0JiYodCY9MjU1KTtpZihlPDB8fHRoaXMubGVuZ3RoPGV8fHRoaXMubGVuZ3RoPHIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIk91dCBvZiByYW5nZSBpbmRleCIpO2lmKHI8PWUpcmV0dXJuIHRoaXM7dmFyIG87aWYoZT4+Pj0wLHI9dm9pZCAwPT09cj90aGlzLmxlbmd0aDpyPj4+MCx0fHwodD0wKSwibnVtYmVyIj09dHlwZW9mIHQpZm9yKG89ZTtvPHI7KytvKXRoaXNbb109dDtlbHNle3ZhciBzPWEuaXNCdWZmZXIodCk/dDphLmZyb20odCxuKSxsPXMubGVuZ3RoO2lmKDA9PT1sKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSB2YWx1ZSAiJyt0KyciIGlzIGludmFsaWQgZm9yIGFyZ3VtZW50ICJ2YWx1ZSInKTtmb3Iobz0wO288ci1lOysrbyl0aGlzW28rZV09c1tvJWxdfXJldHVybiB0aGlzfTt2YXIgTz0vW14rLzAtOUEtWmEtei1fXS9nO2Z1bmN0aW9uIHoodCl7cmV0dXJuIHQ8MTY/IjAiK3QudG9TdHJpbmcoMTYpOnQudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIEQodCxlKXt2YXIgcjtlPWV8fDEvMDtmb3IodmFyIG49dC5sZW5ndGgsaT1udWxsLGE9W10sbz0wO288bjsrK28pe2lmKChyPXQuY2hhckNvZGVBdChvKSk+NTUyOTUmJnI8NTczNDQpe2lmKCFpKXtpZihyPjU2MzE5KXsoZS09Myk+LTEmJmEucHVzaCgyMzksMTkxLDE4OSk7Y29udGludWV9aWYobysxPT09bil7KGUtPTMpPi0xJiZhLnB1c2goMjM5LDE5MSwxODkpO2NvbnRpbnVlfWk9cjtjb250aW51ZX1pZihyPDU2MzIwKXsoZS09Myk+LTEmJmEucHVzaCgyMzksMTkxLDE4OSksaT1yO2NvbnRpbnVlfXI9NjU1MzYrKGktNTUyOTY8PDEwfHItNTYzMjApfWVsc2UgaSYmKGUtPTMpPi0xJiZhLnB1c2goMjM5LDE5MSwxODkpO2lmKGk9bnVsbCxyPDEyOCl7aWYoKGUtPTEpPDApYnJlYWs7YS5wdXNoKHIpfWVsc2UgaWYocjwyMDQ4KXtpZigoZS09Mik8MClicmVhazthLnB1c2gocj4+NnwxOTIsNjMmcnwxMjgpfWVsc2UgaWYocjw2NTUzNil7aWYoKGUtPTMpPDApYnJlYWs7YS5wdXNoKHI+PjEyfDIyNCxyPj42JjYzfDEyOCw2MyZyfDEyOCl9ZWxzZXtpZighKHI8MTExNDExMikpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGNvZGUgcG9pbnQiKTtpZigoZS09NCk8MClicmVhazthLnB1c2gocj4+MTh8MjQwLHI+PjEyJjYzfDEyOCxyPj42JjYzfDEyOCw2MyZyfDEyOCl9fXJldHVybiBhfWZ1bmN0aW9uIFIodCl7cmV0dXJuIGUudG9CeXRlQXJyYXkoZnVuY3Rpb24odCl7aWYoKHQ9KHQ9dC5zcGxpdCgiPSIpWzBdKS50cmltKCkucmVwbGFjZShPLCIiKSkubGVuZ3RoPDIpcmV0dXJuIiI7Zm9yKDt0Lmxlbmd0aCU0IT0wOyl0Kz0iPSI7cmV0dXJuIHR9KHQpKX1mdW5jdGlvbiBGKHQsZSxyLG4pe2Zvcih2YXIgaT0wO2k8biYmIShpK3I+PWUubGVuZ3RofHxpPj10Lmxlbmd0aCk7KytpKWVbaStyXT10W2ldO3JldHVybiBpfWZ1bmN0aW9uIEIodCxlKXtyZXR1cm4gdCBpbnN0YW5jZW9mIGV8fG51bGwhPXQmJm51bGwhPXQuY29uc3RydWN0b3ImJm51bGwhPXQuY29uc3RydWN0b3IubmFtZSYmdC5jb25zdHJ1Y3Rvci5uYW1lPT09ZS5uYW1lfWZ1bmN0aW9uIE4odCl7cmV0dXJuIHQhPXR9fSkuY2FsbCh0aGlzKX0pLmNhbGwodGhpcyx0KCJidWZmZXIiKS5CdWZmZXIpfSx7ImJhc2U2NC1qcyI6MSxidWZmZXI6MyxpZWVlNzU0OjR9XSw0OltmdW5jdGlvbih0LGUscil7ci5yZWFkPWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGEsbyxzPTgqaS1uLTEsbD0oMTw8cyktMSxjPWw+PjEsdT0tNyxmPXI/aS0xOjAsaD1yPy0xOjEscD10W2UrZl07Zm9yKGYrPWgsYT1wJigxPDwtdSktMSxwPj49LXUsdSs9czt1PjA7YT0yNTYqYSt0W2UrZl0sZis9aCx1LT04KTtmb3Iobz1hJigxPDwtdSktMSxhPj49LXUsdSs9bjt1PjA7bz0yNTYqbyt0W2UrZl0sZis9aCx1LT04KTtpZigwPT09YSlhPTEtYztlbHNle2lmKGE9PT1sKXJldHVybiBvP05hTjoxLzAqKHA/LTE6MSk7bys9TWF0aC5wb3coMixuKSxhLT1jfXJldHVybihwPy0xOjEpKm8qTWF0aC5wb3coMixhLW4pfSxyLndyaXRlPWZ1bmN0aW9uKHQsZSxyLG4saSxhKXt2YXIgbyxzLGwsYz04KmEtaS0xLHU9KDE8PGMpLTEsZj11Pj4xLGg9MjM9PT1pP01hdGgucG93KDIsLTI0KS1NYXRoLnBvdygyLC03Nyk6MCxwPW4/MDphLTEsZD1uPzE6LTEsbT1lPDB8fDA9PT1lJiYxL2U8MD8xOjA7Zm9yKGU9TWF0aC5hYnMoZSksaXNOYU4oZSl8fGU9PT0xLzA/KHM9aXNOYU4oZSk/MTowLG89dSk6KG89TWF0aC5mbG9vcihNYXRoLmxvZyhlKS9NYXRoLkxOMiksZSoobD1NYXRoLnBvdygyLC1vKSk8MSYmKG8tLSxsKj0yKSwoZSs9bytmPj0xP2gvbDpoKk1hdGgucG93KDIsMS1mKSkqbD49MiYmKG8rKyxsLz0yKSxvK2Y+PXU/KHM9MCxvPXUpOm8rZj49MT8ocz0oZSpsLTEpKk1hdGgucG93KDIsaSksbys9Zik6KHM9ZSpNYXRoLnBvdygyLGYtMSkqTWF0aC5wb3coMixpKSxvPTApKTtpPj04O3RbcitwXT0yNTUmcyxwKz1kLHMvPTI1NixpLT04KTtmb3Iobz1vPDxpfHMsYys9aTtjPjA7dFtyK3BdPTI1NSZvLHArPWQsby89MjU2LGMtPTgpO3RbcitwLWRdfD0xMjgqbX19LHt9XSw1OltmdW5jdGlvbih0LGUscil7dmFyIG4saSxhPWUuZXhwb3J0cz17fTtmdW5jdGlvbiBvKCl7dGhyb3cgbmV3IEVycm9yKCJzZXRUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkIil9ZnVuY3Rpb24gcygpe3Rocm93IG5ldyBFcnJvcigiY2xlYXJUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkIil9ZnVuY3Rpb24gbCh0KXtpZihuPT09c2V0VGltZW91dClyZXR1cm4gc2V0VGltZW91dCh0LDApO2lmKChuPT09b3x8IW4pJiZzZXRUaW1lb3V0KXJldHVybiBuPXNldFRpbWVvdXQsc2V0VGltZW91dCh0LDApO3RyeXtyZXR1cm4gbih0LDApfWNhdGNoKGUpe3RyeXtyZXR1cm4gbi5jYWxsKG51bGwsdCwwKX1jYXRjaChlKXtyZXR1cm4gbi5jYWxsKHRoaXMsdCwwKX19fSFmdW5jdGlvbigpe3RyeXtuPSJmdW5jdGlvbiI9PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6b31jYXRjaCh0KXtuPW99dHJ5e2k9ImZ1bmN0aW9uIj09dHlwZW9mIGNsZWFyVGltZW91dD9jbGVhclRpbWVvdXQ6c31jYXRjaCh0KXtpPXN9fSgpO3ZhciBjLHU9W10sZj0hMSxoPS0xO2Z1bmN0aW9uIHAoKXtmJiZjJiYoZj0hMSxjLmxlbmd0aD91PWMuY29uY2F0KHUpOmg9LTEsdS5sZW5ndGgmJmQoKSl9ZnVuY3Rpb24gZCgpe2lmKCFmKXt2YXIgdD1sKHApO2Y9ITA7Zm9yKHZhciBlPXUubGVuZ3RoO2U7KXtmb3IoYz11LHU9W107KytoPGU7KWMmJmNbaF0ucnVuKCk7aD0tMSxlPXUubGVuZ3RofWM9bnVsbCxmPSExLGZ1bmN0aW9uKHQpe2lmKGk9PT1jbGVhclRpbWVvdXQpcmV0dXJuIGNsZWFyVGltZW91dCh0KTtpZigoaT09PXN8fCFpKSYmY2xlYXJUaW1lb3V0KXJldHVybiBpPWNsZWFyVGltZW91dCxjbGVhclRpbWVvdXQodCk7dHJ5e2kodCl9Y2F0Y2goZSl7dHJ5e3JldHVybiBpLmNhbGwobnVsbCx0KX1jYXRjaChlKXtyZXR1cm4gaS5jYWxsKHRoaXMsdCl9fX0odCl9fWZ1bmN0aW9uIG0odCxlKXt0aGlzLmZ1bj10LHRoaXMuYXJyYXk9ZX1mdW5jdGlvbiBnKCl7fWEubmV4dFRpY2s9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgtMSk7aWYoYXJndW1lbnRzLmxlbmd0aD4xKWZvcih2YXIgcj0xO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspZVtyLTFdPWFyZ3VtZW50c1tyXTt1LnB1c2gobmV3IG0odCxlKSksMSE9PXUubGVuZ3RofHxmfHxsKGQpfSxtLnByb3RvdHlwZS5ydW49ZnVuY3Rpb24oKXt0aGlzLmZ1bi5hcHBseShudWxsLHRoaXMuYXJyYXkpfSxhLnRpdGxlPSJicm93c2VyIixhLmJyb3dzZXI9ITAsYS5lbnY9e30sYS5hcmd2PVtdLGEudmVyc2lvbj0iIixhLnZlcnNpb25zPXt9LGEub249ZyxhLmFkZExpc3RlbmVyPWcsYS5vbmNlPWcsYS5vZmY9ZyxhLnJlbW92ZUxpc3RlbmVyPWcsYS5yZW1vdmVBbGxMaXN0ZW5lcnM9ZyxhLmVtaXQ9ZyxhLnByZXBlbmRMaXN0ZW5lcj1nLGEucHJlcGVuZE9uY2VMaXN0ZW5lcj1nLGEubGlzdGVuZXJzPWZ1bmN0aW9uKHQpe3JldHVybltdfSxhLmJpbmRpbmc9ZnVuY3Rpb24odCl7dGhyb3cgbmV3IEVycm9yKCJwcm9jZXNzLmJpbmRpbmcgaXMgbm90IHN1cHBvcnRlZCIpfSxhLmN3ZD1mdW5jdGlvbigpe3JldHVybiIvIn0sYS5jaGRpcj1mdW5jdGlvbih0KXt0aHJvdyBuZXcgRXJyb3IoInByb2Nlc3MuY2hkaXIgaXMgbm90IHN1cHBvcnRlZCIpfSxhLnVtYXNrPWZ1bmN0aW9uKCl7cmV0dXJuIDB9fSx7fV0sNjpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz17YWxwaGFfc2hhcGU6dCgiYWxwaGEtc2hhcGUiKSxjb252ZXhfaHVsbDp0KCJjb252ZXgtaHVsbCIpLGRlbGF1bmF5X3RyaWFuZ3VsYXRlOnQoImRlbGF1bmF5LXRyaWFuZ3VsYXRlIiksZ2xfY29uZTNkOnQoImdsLWNvbmUzZCIpLGdsX2Vycm9yM2Q6dCgiZ2wtZXJyb3IzZCIpLGdsX2hlYXRtYXAyZDp0KCJnbC1oZWF0bWFwMmQiKSxnbF9saW5lM2Q6dCgiZ2wtbGluZTNkIiksZ2xfbWVzaDNkOnQoImdsLW1lc2gzZCIpLGdsX3Bsb3QyZDp0KCJnbC1wbG90MmQiKSxnbF9wbG90M2Q6dCgiZ2wtcGxvdDNkIiksZ2xfcG9pbnRjbG91ZDJkOnQoImdsLXBvaW50Y2xvdWQyZCIpLGdsX3NjYXR0ZXIzZDp0KCJnbC1zY2F0dGVyM2QiKSxnbF9zZWxlY3RfYm94OnQoImdsLXNlbGVjdC1ib3giKSxnbF9zcGlrZXMyZDp0KCJnbC1zcGlrZXMyZCIpLGdsX3N0cmVhbXR1YmUzZDp0KCJnbC1zdHJlYW10dWJlM2QiKSxnbF9zdXJmYWNlM2Q6dCgiZ2wtc3VyZmFjZTNkIiksbmRhcnJheTp0KCJuZGFycmF5IiksbmRhcnJheV9saW5lYXJfaW50ZXJwb2xhdGU6dCgibmRhcnJheS1saW5lYXItaW50ZXJwb2xhdGUiKX19LHsiYWxwaGEtc2hhcGUiOjEyLCJjb252ZXgtaHVsbCI6NTgsImRlbGF1bmF5LXRyaWFuZ3VsYXRlIjo2MywiZ2wtY29uZTNkIjo3OSwiZ2wtZXJyb3IzZCI6ODQsImdsLWhlYXRtYXAyZCI6ODgsImdsLWxpbmUzZCI6OTEsImdsLW1lc2gzZCI6MTEyLCJnbC1wbG90MmQiOjExOCwiZ2wtcGxvdDNkIjoxMjEsImdsLXBvaW50Y2xvdWQyZCI6MTIzLCJnbC1zY2F0dGVyM2QiOjEyOCwiZ2wtc2VsZWN0LWJveCI6MTMwLCJnbC1zcGlrZXMyZCI6MTM5LCJnbC1zdHJlYW10dWJlM2QiOjE0MywiZ2wtc3VyZmFjZTNkIjoxNDUsbmRhcnJheToyNTksIm5kYXJyYXktbGluZWFyLWludGVycG9sYXRlIjoyNTN9XSw3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT0odD10fHx7fSkuZXllfHxbMCwwLDFdLHI9dC5jZW50ZXJ8fFswLDAsMF0scz10LnVwfHxbMCwxLDBdLGw9dC5kaXN0YW5jZUxpbWl0c3x8WzAsMS8wXSxjPXQubW9kZXx8InR1cm50YWJsZSIsdT1uKCksZj1pKCksaD1hKCk7cmV0dXJuIHUuc2V0RGlzdGFuY2VMaW1pdHMobFswXSxsWzFdKSx1Lmxvb2tBdCgwLGUscixzKSxmLnNldERpc3RhbmNlTGltaXRzKGxbMF0sbFsxXSksZi5sb29rQXQoMCxlLHIscyksaC5zZXREaXN0YW5jZUxpbWl0cyhsWzBdLGxbMV0pLGgubG9va0F0KDAsZSxyLHMpLG5ldyBvKHt0dXJudGFibGU6dSxvcmJpdDpmLG1hdHJpeDpofSxjKX07dmFyIG49dCgidHVybnRhYmxlLWNhbWVyYS1jb250cm9sbGVyIiksaT10KCJvcmJpdC1jYW1lcmEtY29udHJvbGxlciIpLGE9dCgibWF0cml4LWNhbWVyYS1jb250cm9sbGVyIik7ZnVuY3Rpb24gbyh0LGUpe3RoaXMuX2NvbnRyb2xsZXJOYW1lcz1PYmplY3Qua2V5cyh0KSx0aGlzLl9jb250cm9sbGVyTGlzdD10aGlzLl9jb250cm9sbGVyTmFtZXMubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gdFtlXX0pKSx0aGlzLl9tb2RlPWUsdGhpcy5fYWN0aXZlPXRbZV0sdGhpcy5fYWN0aXZlfHwodGhpcy5fbW9kZT0idHVybnRhYmxlIix0aGlzLl9hY3RpdmU9dC50dXJudGFibGUpLHRoaXMubW9kZXM9dGhpcy5fY29udHJvbGxlck5hbWVzLHRoaXMuY29tcHV0ZWRNYXRyaXg9dGhpcy5fYWN0aXZlLmNvbXB1dGVkTWF0cml4LHRoaXMuY29tcHV0ZWRFeWU9dGhpcy5fYWN0aXZlLmNvbXB1dGVkRXllLHRoaXMuY29tcHV0ZWRVcD10aGlzLl9hY3RpdmUuY29tcHV0ZWRVcCx0aGlzLmNvbXB1dGVkQ2VudGVyPXRoaXMuX2FjdGl2ZS5jb21wdXRlZENlbnRlcix0aGlzLmNvbXB1dGVkUmFkaXVzPXRoaXMuX2FjdGl2ZS5jb21wdXRlZFJhZGl1c312YXIgcz1vLnByb3RvdHlwZTtzLmZsdXNoPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLl9jb250cm9sbGVyTGlzdCxyPTA7cjxlLmxlbmd0aDsrK3IpZVtyXS5mbHVzaCh0KX0scy5pZGxlPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLl9jb250cm9sbGVyTGlzdCxyPTA7cjxlLmxlbmd0aDsrK3IpZVtyXS5pZGxlKHQpfSxzLmxvb2tBdD1mdW5jdGlvbih0LGUscixuKXtmb3IodmFyIGk9dGhpcy5fY29udHJvbGxlckxpc3QsYT0wO2E8aS5sZW5ndGg7KythKWlbYV0ubG9va0F0KHQsZSxyLG4pfSxzLnJvdGF0ZT1mdW5jdGlvbih0LGUscixuKXtmb3IodmFyIGk9dGhpcy5fY29udHJvbGxlckxpc3QsYT0wO2E8aS5sZW5ndGg7KythKWlbYV0ucm90YXRlKHQsZSxyLG4pfSxzLnBhbj1mdW5jdGlvbih0LGUscixuKXtmb3IodmFyIGk9dGhpcy5fY29udHJvbGxlckxpc3QsYT0wO2E8aS5sZW5ndGg7KythKWlbYV0ucGFuKHQsZSxyLG4pfSxzLnRyYW5zbGF0ZT1mdW5jdGlvbih0LGUscixuKXtmb3IodmFyIGk9dGhpcy5fY29udHJvbGxlckxpc3QsYT0wO2E8aS5sZW5ndGg7KythKWlbYV0udHJhbnNsYXRlKHQsZSxyLG4pfSxzLnNldE1hdHJpeD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10aGlzLl9jb250cm9sbGVyTGlzdCxuPTA7bjxyLmxlbmd0aDsrK24pcltuXS5zZXRNYXRyaXgodCxlKX0scy5zZXREaXN0YW5jZUxpbWl0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10aGlzLl9jb250cm9sbGVyTGlzdCxuPTA7bjxyLmxlbmd0aDsrK24pcltuXS5zZXREaXN0YW5jZUxpbWl0cyh0LGUpfSxzLnNldERpc3RhbmNlPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXRoaXMuX2NvbnRyb2xsZXJMaXN0LG49MDtuPHIubGVuZ3RoOysrbilyW25dLnNldERpc3RhbmNlKHQsZSl9LHMucmVjYWxjTWF0cml4PWZ1bmN0aW9uKHQpe3RoaXMuX2FjdGl2ZS5yZWNhbGNNYXRyaXgodCl9LHMuZ2V0RGlzdGFuY2U9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2FjdGl2ZS5nZXREaXN0YW5jZSh0KX0scy5nZXREaXN0YW5jZUxpbWl0cz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fYWN0aXZlLmdldERpc3RhbmNlTGltaXRzKHQpfSxzLmxhc3RUPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FjdGl2ZS5sYXN0VCgpfSxzLnNldE1vZGU9ZnVuY3Rpb24odCl7aWYodCE9PXRoaXMuX21vZGUpe3ZhciBlPXRoaXMuX2NvbnRyb2xsZXJOYW1lcy5pbmRleE9mKHQpO2lmKCEoZTwwKSl7dmFyIHI9dGhpcy5fYWN0aXZlLG49dGhpcy5fY29udHJvbGxlckxpc3RbZV0saT1NYXRoLm1heChyLmxhc3RUKCksbi5sYXN0VCgpKTtyLnJlY2FsY01hdHJpeChpKSxuLnNldE1hdHJpeChpLHIuY29tcHV0ZWRNYXRyaXgpLHRoaXMuX2FjdGl2ZT1uLHRoaXMuX21vZGU9dCx0aGlzLmNvbXB1dGVkTWF0cml4PXRoaXMuX2FjdGl2ZS5jb21wdXRlZE1hdHJpeCx0aGlzLmNvbXB1dGVkRXllPXRoaXMuX2FjdGl2ZS5jb21wdXRlZEV5ZSx0aGlzLmNvbXB1dGVkVXA9dGhpcy5fYWN0aXZlLmNvbXB1dGVkVXAsdGhpcy5jb21wdXRlZENlbnRlcj10aGlzLl9hY3RpdmUuY29tcHV0ZWRDZW50ZXIsdGhpcy5jb21wdXRlZFJhZGl1cz10aGlzLl9hY3RpdmUuY29tcHV0ZWRSYWRpdXN9fX0scy5nZXRNb2RlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21vZGV9fSx7Im1hdHJpeC1jYW1lcmEtY29udHJvbGxlciI6MjQ1LCJvcmJpdC1jYW1lcmEtY29udHJvbGxlciI6MjYzLCJ0dXJudGFibGUtY2FtZXJhLWNvbnRyb2xsZXIiOjMwNX1dLDg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49InVuZGVmaW5lZCI9PXR5cGVvZiBXZWFrTWFwP3QoIndlYWstbWFwIik6V2Vha01hcCxpPXQoImdsLWJ1ZmZlciIpLGE9dCgiZ2wtdmFvIiksbz1uZXcgbjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9by5nZXQodCkscj1lJiYoZS5fdHJpYW5nbGVCdWZmZXIuaGFuZGxlfHxlLl90cmlhbmdsZUJ1ZmZlci5idWZmZXIpO2lmKCFyfHwhdC5pc0J1ZmZlcihyKSl7dmFyIG49aSh0LG5ldyBGbG9hdDMyQXJyYXkoWy0xLC0xLC0xLDQsNCwtMV0pKTsoZT1hKHQsW3tidWZmZXI6bix0eXBlOnQuRkxPQVQsc2l6ZToyfV0pKS5fdHJpYW5nbGVCdWZmZXI9bixvLnNldCh0LGUpfWUuYmluZCgpLHQuZHJhd0FycmF5cyh0LlRSSUFOR0xFUywwLDMpLGUudW5iaW5kKCl9fSx7ImdsLWJ1ZmZlciI6NzgsImdsLXZhbyI6MTUwLCJ3ZWFrLW1hcCI6MzEzfV0sOTpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoInBhZC1sZWZ0Iik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtlPSJudW1iZXIiPT10eXBlb2YgZT9lOjEscj1yfHwiOiAiO3ZhciBpPXQuc3BsaXQoL1xyP1xuLyksYT1TdHJpbmcoaS5sZW5ndGgrZS0xKS5sZW5ndGg7cmV0dXJuIGkubWFwKChmdW5jdGlvbih0LGkpe3ZhciBvPWkrZSxzPVN0cmluZyhvKS5sZW5ndGg7cmV0dXJuIG4obyxhLXMpK3IrdH0pKS5qb2luKCJcbiIpfX0seyJwYWQtbGVmdCI6MjY0fV0sMTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQubGVuZ3RoO2lmKDA9PT1lKXJldHVybltdO2lmKDE9PT1lKXJldHVyblswXTtmb3IodmFyIHI9dFswXS5sZW5ndGgsbj1bdFswXV0sYT1bMF0sbz0xO288ZTsrK28paWYobi5wdXNoKHRbb10pLGkobixyKSl7aWYoYS5wdXNoKG8pLGEubGVuZ3RoPT09cisxKXJldHVybiBhfWVsc2Ugbi5wb3AoKTtyZXR1cm4gYX07dmFyIG49dCgicm9idXN0LW9yaWVudGF0aW9uIik7ZnVuY3Rpb24gaSh0LGUpe2Zvcih2YXIgcj1uZXcgQXJyYXkoZSsxKSxpPTA7aTx0Lmxlbmd0aDsrK2kpcltpXT10W2ldO2ZvcihpPTA7aTw9dC5sZW5ndGg7KytpKXtmb3IodmFyIGE9dC5sZW5ndGg7YTw9ZTsrK2Epe2Zvcih2YXIgbz1uZXcgQXJyYXkoZSkscz0wO3M8ZTsrK3Mpb1tzXT1NYXRoLnBvdyhhKzEtaSxzKTtyW2FdPW99aWYobi5hcHBseSh2b2lkIDAscikpcmV0dXJuITB9cmV0dXJuITF9fSx7InJvYnVzdC1vcmllbnRhdGlvbiI6Mjg0fV0sMTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4oZSkuZmlsdGVyKChmdW5jdGlvbihyKXtmb3IodmFyIG49bmV3IEFycmF5KHIubGVuZ3RoKSxhPTA7YTxyLmxlbmd0aDsrK2EpblthXT1lW3JbYV1dO3JldHVybiBpKG4pKnQ8MX0pKX07dmFyIG49dCgiZGVsYXVuYXktdHJpYW5ndWxhdGUiKSxpPXQoImNpcmN1bXJhZGl1cyIpfSx7Y2lyY3VtcmFkaXVzOjQ5LCJkZWxhdW5heS10cmlhbmd1bGF0ZSI6NjN9XSwxMjpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiBpKG4odCxlKSl9O3ZhciBuPXQoImFscGhhLWNvbXBsZXgiKSxpPXQoInNpbXBsaWNpYWwtY29tcGxleC1ib3VuZGFyeSIpfSx7ImFscGhhLWNvbXBsZXgiOjExLCJzaW1wbGljaWFsLWNvbXBsZXgtYm91bmRhcnkiOjI5MH1dLDEzOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBhdG9iKHQpfX0se31dLDE0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1lLmxlbmd0aCxhPW5ldyBBcnJheShyKzEpLG89MDtvPHI7KytvKXtmb3IodmFyIHM9bmV3IEFycmF5KHIrMSksbD0wO2w8PXI7KytsKXNbbF09dFtsXVtvXTthW29dPXN9YVtyXT1uZXcgQXJyYXkocisxKTtmb3Iobz0wO288PXI7KytvKWFbcl1bb109MTt2YXIgYz1uZXcgQXJyYXkocisxKTtmb3Iobz0wO288cjsrK28pY1tvXT1lW29dO2Nbcl09MTt2YXIgdT1uKGEsYyksZj1pKHVbcisxXSk7MD09PWYmJihmPTEpO3ZhciBoPW5ldyBBcnJheShyKzEpO2ZvcihvPTA7bzw9cjsrK28paFtvXT1pKHVbb10pL2Y7cmV0dXJuIGh9O3ZhciBuPXQoInJvYnVzdC1saW5lYXItc29sdmUiKTtmdW5jdGlvbiBpKHQpe2Zvcih2YXIgZT0wLHI9MDtyPHQubGVuZ3RoOysrcillKz10W3JdO3JldHVybiBlfX0seyJyb2J1c3QtbGluZWFyLXNvbHZlIjoyODN9XSwxNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2xpYi9yYXRpb25hbGl6ZSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiBuKHRbMF0ubXVsKGVbMV0pLmFkZChlWzBdLm11bCh0WzFdKSksdFsxXS5tdWwoZVsxXSkpfX0seyIuL2xpYi9yYXRpb25hbGl6ZSI6MjV9XSwxNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXS5tdWwoZVsxXSkuY21wKGVbMF0ubXVsKHRbMV0pKX19LHt9XSwxNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2xpYi9yYXRpb25hbGl6ZSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiBuKHRbMF0ubXVsKGVbMV0pLHRbMV0ubXVsKGVbMF0pKX19LHsiLi9saWIvcmF0aW9uYWxpemUiOjI1fV0sMTg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9pcy1yYXQiKSxpPXQoIi4vbGliL2lzLWJuIiksYT10KCIuL2xpYi9udW0tdG8tYm4iKSxvPXQoIi4vbGliL3N0ci10by1ibiIpLHM9dCgiLi9saWIvcmF0aW9uYWxpemUiKSxsPXQoIi4vZGl2Iik7ZS5leHBvcnRzPWZ1bmN0aW9uIHQoZSxyKXtpZihuKGUpKXJldHVybiByP2woZSx0KHIpKTpbZVswXS5jbG9uZSgpLGVbMV0uY2xvbmUoKV07dmFyIGMsdSxmPTA7aWYoaShlKSljPWUuY2xvbmUoKTtlbHNlIGlmKCJzdHJpbmciPT10eXBlb2YgZSljPW8oZSk7ZWxzZXtpZigwPT09ZSlyZXR1cm5bYSgwKSxhKDEpXTtpZihlPT09TWF0aC5mbG9vcihlKSljPWEoZSk7ZWxzZXtmb3IoO2UhPT1NYXRoLmZsb29yKGUpOyllKj1NYXRoLnBvdygyLDI1NiksZi09MjU2O2M9YShlKX19aWYobihyKSljLm11bChyWzFdKSx1PXJbMF0uY2xvbmUoKTtlbHNlIGlmKGkocikpdT1yLmNsb25lKCk7ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIHIpdT1vKHIpO2Vsc2UgaWYocilpZihyPT09TWF0aC5mbG9vcihyKSl1PWEocik7ZWxzZXtmb3IoO3IhPT1NYXRoLmZsb29yKHIpOylyKj1NYXRoLnBvdygyLDI1NiksZis9MjU2O3U9YShyKX1lbHNlIHU9YSgxKTtmPjA/Yz1jLnVzaGxuKGYpOmY8MCYmKHU9dS51c2hsbigtZikpO3JldHVybiBzKGMsdSl9fSx7Ii4vZGl2IjoxNywiLi9pcy1yYXQiOjE5LCIuL2xpYi9pcy1ibiI6MjMsIi4vbGliL251bS10by1ibiI6MjQsIi4vbGliL3JhdGlvbmFsaXplIjoyNSwiLi9saWIvc3RyLXRvLWJuIjoyNn1dLDE5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vbGliL2lzLWJuIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpJiYyPT09dC5sZW5ndGgmJm4odFswXSkmJm4odFsxXSl9fSx7Ii4vbGliL2lzLWJuIjoyM31dLDIwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImJuLmpzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiB0LmNtcChuZXcgbigwKSl9fSx7ImJuLmpzIjozM31dLDIxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vYm4tc2lnbiIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10Lmxlbmd0aCxyPXQud29yZHMsaT0wO2lmKDE9PT1lKWk9clswXTtlbHNlIGlmKDI9PT1lKWk9clswXSs2NzEwODg2NCpyWzFdO2Vsc2UgZm9yKHZhciBhPTA7YTxlO2ErKyl7dmFyIG89clthXTtpKz1vKk1hdGgucG93KDY3MTA4ODY0LGEpfXJldHVybiBuKHQpKml9fSx7Ii4vYm4tc2lnbiI6MjB9XSwyMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkb3VibGUtYml0cyIpLGk9dCgiYml0LXR3aWRkbGUiKS5jb3VudFRyYWlsaW5nWmVyb3M7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPWkobi5sbyh0KSk7aWYoZTwzMilyZXR1cm4gZTt2YXIgcj1pKG4uaGkodCkpO2lmKHI+MjApcmV0dXJuIDUyO3JldHVybiByKzMyfX0seyJiaXQtdHdpZGRsZSI6MzIsImRvdWJsZS1iaXRzIjo2NH1dLDIzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3QoImJuLmpzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiB0JiYib2JqZWN0Ij09dHlwZW9mIHQmJkJvb2xlYW4odC53b3Jkcyl9fSx7ImJuLmpzIjozM31dLDI0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImJuLmpzIiksaT10KCJkb3VibGUtYml0cyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1pLmV4cG9uZW50KHQpO3JldHVybiBlPDUyP25ldyBuKHQpOm5ldyBuKHQqTWF0aC5wb3coMiw1Mi1lKSkudXNobG4oZS01Mil9fSx7ImJuLmpzIjozMywiZG91YmxlLWJpdHMiOjY0fV0sMjU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9udW0tdG8tYm4iKSxpPXQoIi4vYm4tc2lnbiIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPWkodCksYT1pKGUpO2lmKDA9PT1yKXJldHVybltuKDApLG4oMSldO2lmKDA9PT1hKXJldHVybltuKDApLG4oMCldO2E8MCYmKHQ9dC5uZWcoKSxlPWUubmVnKCkpO3ZhciBvPXQuZ2NkKGUpO2lmKG8uY21wbigxKSlyZXR1cm5bdC5kaXYobyksZS5kaXYobyldO3JldHVyblt0LGVdfX0seyIuL2JuLXNpZ24iOjIwLCIuL251bS10by1ibiI6MjR9XSwyNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJibi5qcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IG4odCl9fSx7ImJuLmpzIjozM31dLDI3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vbGliL3JhdGlvbmFsaXplIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4odFswXS5tdWwoZVswXSksdFsxXS5tdWwoZVsxXSkpfX0seyIuL2xpYi9yYXRpb25hbGl6ZSI6MjV9XSwyODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2xpYi9ibi1zaWduIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBuKHRbMF0pKm4odFsxXSl9fSx7Ii4vbGliL2JuLXNpZ24iOjIwfV0sMjk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9saWIvcmF0aW9uYWxpemUiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbih0WzBdLm11bChlWzFdKS5zdWIodFsxXS5tdWwoZVswXSkpLHRbMV0ubXVsKGVbMV0pKX19LHsiLi9saWIvcmF0aW9uYWxpemUiOjI1fV0sMzA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9saWIvYm4tdG8tbnVtIiksaT10KCIuL2xpYi9jdHoiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dFswXSxyPXRbMV07aWYoMD09PWUuY21wbigwKSlyZXR1cm4gMDt2YXIgYT1lLmFicygpLmRpdm1vZChyLmFicygpKSxvPWEuZGl2LHM9bihvKSxsPWEubW9kLGM9ZS5uZWdhdGl2ZSE9PXIubmVnYXRpdmU/LTE6MTtpZigwPT09bC5jbXBuKDApKXJldHVybiBjKnM7aWYocyl7dmFyIHU9aShzKSs0LGY9bihsLnVzaGxuKHUpLmRpdlJvdW5kKHIpKTtyZXR1cm4gYyoocytmKk1hdGgucG93KDIsLXUpKX12YXIgaD1yLmJpdExlbmd0aCgpLWwuYml0TGVuZ3RoKCkrNTM7Zj1uKGwudXNobG4oaCkuZGl2Um91bmQocikpO3JldHVybiBoPDEwMjM/YypmKk1hdGgucG93KDIsLWgpOihmKj1NYXRoLnBvdygyLC0xMDIzKSxjKmYqTWF0aC5wb3coMiwxMDIzLWgpKX19LHsiLi9saWIvYm4tdG8tbnVtIjoyMSwiLi9saWIvY3R6IjoyMn1dLDMxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIsbixpKXtmb3IodmFyIGE9aSsxO248PWk7KXt2YXIgbz1uK2k+Pj4xLHM9dFtvXTsodm9pZCAwIT09cj9yKHMsZSk6cy1lKT49MD8oYT1vLGk9by0xKTpuPW8rMX1yZXR1cm4gYX1mdW5jdGlvbiBpKHQsZSxyLG4saSl7Zm9yKHZhciBhPWkrMTtuPD1pOyl7dmFyIG89bitpPj4+MSxzPXRbb107KHZvaWQgMCE9PXI/cihzLGUpOnMtZSk+MD8oYT1vLGk9by0xKTpuPW8rMX1yZXR1cm4gYX1mdW5jdGlvbiBhKHQsZSxyLG4saSl7Zm9yKHZhciBhPW4tMTtuPD1pOyl7dmFyIG89bitpPj4+MSxzPXRbb107KHZvaWQgMCE9PXI/cihzLGUpOnMtZSk8MD8oYT1vLG49bysxKTppPW8tMX1yZXR1cm4gYX1mdW5jdGlvbiBvKHQsZSxyLG4saSl7Zm9yKHZhciBhPW4tMTtuPD1pOyl7dmFyIG89bitpPj4+MSxzPXRbb107KHZvaWQgMCE9PXI/cihzLGUpOnMtZSk8PTA/KGE9byxuPW8rMSk6aT1vLTF9cmV0dXJuIGF9ZnVuY3Rpb24gcyh0LGUscixuLGkpe2Zvcig7bjw9aTspe3ZhciBhPW4raT4+PjEsbz10W2FdLHM9dm9pZCAwIT09cj9yKG8sZSk6by1lO2lmKDA9PT1zKXJldHVybiBhO3M8PTA/bj1hKzE6aT1hLTF9cmV0dXJuLTF9ZnVuY3Rpb24gbCh0LGUscixuLGksYSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHI/YSh0LGUscix2b2lkIDA9PT1uPzA6MHxuLHZvaWQgMD09PWk/dC5sZW5ndGgtMTowfGkpOmEodCxlLHZvaWQgMCx2b2lkIDA9PT1yPzA6MHxyLHZvaWQgMD09PW4/dC5sZW5ndGgtMTowfG4pfWUuZXhwb3J0cz17Z2U6ZnVuY3Rpb24odCxlLHIsaSxhKXtyZXR1cm4gbCh0LGUscixpLGEsbil9LGd0OmZ1bmN0aW9uKHQsZSxyLG4sYSl7cmV0dXJuIGwodCxlLHIsbixhLGkpfSxsdDpmdW5jdGlvbih0LGUscixuLGkpe3JldHVybiBsKHQsZSxyLG4saSxhKX0sbGU6ZnVuY3Rpb24odCxlLHIsbixpKXtyZXR1cm4gbCh0LGUscixuLGksbyl9LGVxOmZ1bmN0aW9uKHQsZSxyLG4saSl7cmV0dXJuIGwodCxlLHIsbixpLHMpfX19LHt9XSwzMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3ZhciBlPTMyO3JldHVybih0Jj0tdCkmJmUtLSw2NTUzNSZ0JiYoZS09MTYpLDE2NzExOTM1JnQmJihlLT04KSwyNTI2NDUxMzUmdCYmKGUtPTQpLDg1ODk5MzQ1OSZ0JiYoZS09MiksMTQzMTY1NTc2NSZ0JiYoZS09MSksZX1yLklOVF9CSVRTPTMyLHIuSU5UX01BWD0yMTQ3NDgzNjQ3LHIuSU5UX01JTj0tMTw8MzEsci5zaWduPWZ1bmN0aW9uKHQpe3JldHVybih0PjApLSh0PDApfSxyLmFicz1mdW5jdGlvbih0KXt2YXIgZT10Pj4zMTtyZXR1cm4odF5lKS1lfSxyLm1pbj1mdW5jdGlvbih0LGUpe3JldHVybiBlXih0XmUpJi0odDxlKX0sci5tYXg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdF4odF5lKSYtKHQ8ZSl9LHIuaXNQb3cyPWZ1bmN0aW9uKHQpe3JldHVybiEodCZ0LTF8fCF0KX0sci5sb2cyPWZ1bmN0aW9uKHQpe3ZhciBlLHI7cmV0dXJuIGU9KHQ+NjU1MzUpPDw0LGV8PXI9KCh0Pj4+PWUpPjI1NSk8PDMsZXw9cj0oKHQ+Pj49cik+MTUpPDwyLChlfD1yPSgodD4+Pj1yKT4zKTw8MSl8KHQ+Pj49cik+PjF9LHIubG9nMTA9ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTFlOT85OnQ+PTFlOD84OnQ+PTFlNz83OnQ+PTFlNj82OnQ+PTFlNT81OnQ+PTFlND80OnQ+PTFlMz8zOnQ+PTEwMD8yOnQ+PTEwPzE6MH0sci5wb3BDb3VudD1mdW5jdGlvbih0KXtyZXR1cm4gMTY4NDMwMDkqKCh0PSg4NTg5OTM0NTkmKHQtPXQ+Pj4xJjE0MzE2NTU3NjUpKSsodD4+PjImODU4OTkzNDU5KSkrKHQ+Pj40KSYyNTI2NDUxMzUpPj4+MjR9LHIuY291bnRUcmFpbGluZ1plcm9zPW4sci5uZXh0UG93Mj1mdW5jdGlvbih0KXtyZXR1cm4gdCs9MD09PXQsLS10LHR8PXQ+Pj4xLHR8PXQ+Pj4yLHR8PXQ+Pj40LHR8PXQ+Pj44LCh0fD10Pj4+MTYpKzF9LHIucHJldlBvdzI9ZnVuY3Rpb24odCl7cmV0dXJuIHR8PXQ+Pj4xLHR8PXQ+Pj4yLHR8PXQ+Pj40LHR8PXQ+Pj44LCh0fD10Pj4+MTYpLSh0Pj4+MSl9LHIucGFyaXR5PWZ1bmN0aW9uKHQpe3JldHVybiB0Xj10Pj4+MTYsdF49dD4+PjgsdF49dD4+PjQsMjcwMzA+Pj4odCY9MTUpJjF9O3ZhciBpPW5ldyBBcnJheSgyNTYpOyFmdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPDI1NjsrK2Upe3ZhciByPWUsbj1lLGk9Nztmb3Iocj4+Pj0xO3I7cj4+Pj0xKW48PD0xLG58PTEmciwtLWk7dFtlXT1uPDxpJjI1NX19KGkpLHIucmV2ZXJzZT1mdW5jdGlvbih0KXtyZXR1cm4gaVsyNTUmdF08PDI0fGlbdD4+PjgmMjU1XTw8MTZ8aVt0Pj4+MTYmMjU1XTw8OHxpW3Q+Pj4yNCYyNTVdfSxyLmludGVybGVhdmUyPWZ1bmN0aW9uKHQsZSl7cmV0dXJuKHQ9MTQzMTY1NTc2NSYoKHQ9ODU4OTkzNDU5JigodD0yNTI2NDUxMzUmKCh0PTE2NzExOTM1JigodCY9NjU1MzUpfHQ8PDgpKXx0PDw0KSl8dDw8MikpfHQ8PDEpKXwoZT0xNDMxNjU1NzY1JigoZT04NTg5OTM0NTkmKChlPTI1MjY0NTEzNSYoKGU9MTY3MTE5MzUmKChlJj02NTUzNSl8ZTw8OCkpfGU8PDQpKXxlPDwyKSl8ZTw8MSkpPDwxfSxyLmRlaW50ZXJsZWF2ZTI9ZnVuY3Rpb24odCxlKXtyZXR1cm4odD02NTUzNSYoKHQ9MTY3MTE5MzUmKCh0PTI1MjY0NTEzNSYoKHQ9ODU4OTkzNDU5JigodD10Pj4+ZSYxNDMxNjU1NzY1KXx0Pj4+MSkpfHQ+Pj4yKSl8dD4+PjQpKXx0Pj4+MTYpKTw8MTY+PjE2fSxyLmludGVybGVhdmUzPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0xMjI3MTMzNTEzJigodD0zMjcyMzU2MDM1JigodD0yNTE3MTk2OTUmKCh0PTQyNzgxOTAzMzUmKCh0Jj0xMDIzKXx0PDwxNikpfHQ8PDgpKXx0PDw0KSl8dDw8MiksKHR8PShlPTEyMjcxMzM1MTMmKChlPTMyNzIzNTYwMzUmKChlPTI1MTcxOTY5NSYoKGU9NDI3ODE5MDMzNSYoKGUmPTEwMjMpfGU8PDE2KSl8ZTw8OCkpfGU8PDQpKXxlPDwyKSk8PDEpfChyPTEyMjcxMzM1MTMmKChyPTMyNzIzNTYwMzUmKChyPTI1MTcxOTY5NSYoKHI9NDI3ODE5MDMzNSYoKHImPTEwMjMpfHI8PDE2KSl8cjw8OCkpfHI8PDQpKXxyPDwyKSk8PDJ9LHIuZGVpbnRlcmxlYXZlMz1mdW5jdGlvbih0LGUpe3JldHVybih0PTEwMjMmKCh0PTQyNzgxOTAzMzUmKCh0PTI1MTcxOTY5NSYoKHQ9MzI3MjM1NjAzNSYoKHQ9dD4+PmUmMTIyNzEzMzUxMyl8dD4+PjIpKXx0Pj4+NCkpfHQ+Pj44KSl8dD4+PjE2KSk8PDIyPj4yMn0sci5uZXh0Q29tYmluYXRpb249ZnVuY3Rpb24odCl7dmFyIGU9dHx0LTE7cmV0dXJuIGUrMXwofmUmLX5lKS0xPj4+bih0KSsxfX0se31dLDMzOltmdW5jdGlvbih0LGUscil7IWZ1bmN0aW9uKGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXtpZighdCl0aHJvdyBuZXcgRXJyb3IoZXx8IkFzc2VydGlvbiBmYWlsZWQiKX1mdW5jdGlvbiBpKHQsZSl7dC5zdXBlcl89ZTt2YXIgcj1mdW5jdGlvbigpe307ci5wcm90b3R5cGU9ZS5wcm90b3R5cGUsdC5wcm90b3R5cGU9bmV3IHIsdC5wcm90b3R5cGUuY29uc3RydWN0b3I9dH1mdW5jdGlvbiBhKHQsZSxyKXtpZihhLmlzQk4odCkpcmV0dXJuIHQ7dGhpcy5uZWdhdGl2ZT0wLHRoaXMud29yZHM9bnVsbCx0aGlzLmxlbmd0aD0wLHRoaXMucmVkPW51bGwsbnVsbCE9PXQmJigibGUiIT09ZSYmImJlIiE9PWV8fChyPWUsZT0xMCksdGhpcy5faW5pdCh0fHwwLGV8fDEwLHJ8fCJiZSIpKX12YXIgbzsib2JqZWN0Ij09dHlwZW9mIGU/ZS5leHBvcnRzPWE6ci5CTj1hLGEuQk49YSxhLndvcmRTaXplPTI2O3RyeXtvPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ2b2lkIDAhPT13aW5kb3cuQnVmZmVyP3dpbmRvdy5CdWZmZXI6dCgiYnVmZmVyIikuQnVmZmVyfWNhdGNoKHQpe31mdW5jdGlvbiBzKHQsZSl7dmFyIHI9dC5jaGFyQ29kZUF0KGUpO3JldHVybiByPj02NSYmcjw9NzA/ci01NTpyPj05NyYmcjw9MTAyP3ItODc6ci00OCYxNX1mdW5jdGlvbiBsKHQsZSxyKXt2YXIgbj1zKHQscik7cmV0dXJuIHItMT49ZSYmKG58PXModCxyLTEpPDw0KSxufWZ1bmN0aW9uIGModCxlLHIsbil7Zm9yKHZhciBpPTAsYT1NYXRoLm1pbih0Lmxlbmd0aCxyKSxvPWU7bzxhO28rKyl7dmFyIHM9dC5jaGFyQ29kZUF0KG8pLTQ4O2kqPW4saSs9cz49NDk/cy00OSsxMDpzPj0xNz9zLTE3KzEwOnN9cmV0dXJuIGl9YS5pc0JOPWZ1bmN0aW9uKHQpe3JldHVybiB0IGluc3RhbmNlb2YgYXx8bnVsbCE9PXQmJiJvYmplY3QiPT10eXBlb2YgdCYmdC5jb25zdHJ1Y3Rvci53b3JkU2l6ZT09PWEud29yZFNpemUmJkFycmF5LmlzQXJyYXkodC53b3Jkcyl9LGEubWF4PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuY21wKGUpPjA/dDplfSxhLm1pbj1mdW5jdGlvbih0LGUpe3JldHVybiB0LmNtcChlKTwwP3Q6ZX0sYS5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24odCxlLHIpe2lmKCJudW1iZXIiPT10eXBlb2YgdClyZXR1cm4gdGhpcy5faW5pdE51bWJlcih0LGUscik7aWYoIm9iamVjdCI9PXR5cGVvZiB0KXJldHVybiB0aGlzLl9pbml0QXJyYXkodCxlLHIpOyJoZXgiPT09ZSYmKGU9MTYpLG4oZT09PSgwfGUpJiZlPj0yJiZlPD0zNik7dmFyIGk9MDsiLSI9PT0odD10LnRvU3RyaW5nKCkucmVwbGFjZSgvXHMrL2csIiIpKVswXSYmKGkrKyx0aGlzLm5lZ2F0aXZlPTEpLGk8dC5sZW5ndGgmJigxNj09PWU/dGhpcy5fcGFyc2VIZXgodCxpLHIpOih0aGlzLl9wYXJzZUJhc2UodCxlLGkpLCJsZSI9PT1yJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCksZSxyKSkpfSxhLnByb3RvdHlwZS5faW5pdE51bWJlcj1mdW5jdGlvbih0LGUscil7dDwwJiYodGhpcy5uZWdhdGl2ZT0xLHQ9LXQpLHQ8NjcxMDg4NjQ/KHRoaXMud29yZHM9WzY3MTA4ODYzJnRdLHRoaXMubGVuZ3RoPTEpOnQ8NDUwMzU5OTYyNzM3MDQ5Nj8odGhpcy53b3Jkcz1bNjcxMDg4NjMmdCx0LzY3MTA4ODY0JjY3MTA4ODYzXSx0aGlzLmxlbmd0aD0yKToobih0PDkwMDcxOTkyNTQ3NDA5OTIpLHRoaXMud29yZHM9WzY3MTA4ODYzJnQsdC82NzEwODg2NCY2NzEwODg2MywxXSx0aGlzLmxlbmd0aD0zKSwibGUiPT09ciYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLGUscil9LGEucHJvdG90eXBlLl9pbml0QXJyYXk9ZnVuY3Rpb24odCxlLHIpe2lmKG4oIm51bWJlciI9PXR5cGVvZiB0Lmxlbmd0aCksdC5sZW5ndGg8PTApcmV0dXJuIHRoaXMud29yZHM9WzBdLHRoaXMubGVuZ3RoPTEsdGhpczt0aGlzLmxlbmd0aD1NYXRoLmNlaWwodC5sZW5ndGgvMyksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgaT0wO2k8dGhpcy5sZW5ndGg7aSsrKXRoaXMud29yZHNbaV09MDt2YXIgYSxvLHM9MDtpZigiYmUiPT09cilmb3IoaT10Lmxlbmd0aC0xLGE9MDtpPj0wO2ktPTMpbz10W2ldfHRbaS0xXTw8OHx0W2ktMl08PDE2LHRoaXMud29yZHNbYV18PW88PHMmNjcxMDg4NjMsdGhpcy53b3Jkc1thKzFdPW8+Pj4yNi1zJjY3MTA4ODYzLChzKz0yNCk+PTI2JiYocy09MjYsYSsrKTtlbHNlIGlmKCJsZSI9PT1yKWZvcihpPTAsYT0wO2k8dC5sZW5ndGg7aSs9MylvPXRbaV18dFtpKzFdPDw4fHRbaSsyXTw8MTYsdGhpcy53b3Jkc1thXXw9bzw8cyY2NzEwODg2Myx0aGlzLndvcmRzW2ErMV09bz4+PjI2LXMmNjcxMDg4NjMsKHMrPTI0KT49MjYmJihzLT0yNixhKyspO3JldHVybiB0aGlzLnN0cmlwKCl9LGEucHJvdG90eXBlLl9wYXJzZUhleD1mdW5jdGlvbih0LGUscil7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKCh0Lmxlbmd0aC1lKS82KSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBuPTA7bjx0aGlzLmxlbmd0aDtuKyspdGhpcy53b3Jkc1tuXT0wO3ZhciBpLGE9MCxvPTA7aWYoImJlIj09PXIpZm9yKG49dC5sZW5ndGgtMTtuPj1lO24tPTIpaT1sKHQsZSxuKTw8YSx0aGlzLndvcmRzW29dfD02NzEwODg2MyZpLGE+PTE4PyhhLT0xOCxvKz0xLHRoaXMud29yZHNbb118PWk+Pj4yNik6YSs9ODtlbHNlIGZvcihuPSh0Lmxlbmd0aC1lKSUyPT0wP2UrMTplO248dC5sZW5ndGg7bis9MilpPWwodCxlLG4pPDxhLHRoaXMud29yZHNbb118PTY3MTA4ODYzJmksYT49MTg/KGEtPTE4LG8rPTEsdGhpcy53b3Jkc1tvXXw9aT4+PjI2KTphKz04O3RoaXMuc3RyaXAoKX0sYS5wcm90b3R5cGUuX3BhcnNlQmFzZT1mdW5jdGlvbih0LGUscil7dGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MTtmb3IodmFyIG49MCxpPTE7aTw9NjcxMDg4NjM7aSo9ZSluKys7bi0tLGk9aS9lfDA7Zm9yKHZhciBhPXQubGVuZ3RoLXIsbz1hJW4scz1NYXRoLm1pbihhLGEtbykrcixsPTAsdT1yO3U8czt1Kz1uKWw9Yyh0LHUsdStuLGUpLHRoaXMuaW11bG4oaSksdGhpcy53b3Jkc1swXStsPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPWw6dGhpcy5faWFkZG4obCk7aWYoMCE9PW8pe3ZhciBmPTE7Zm9yKGw9Yyh0LHUsdC5sZW5ndGgsZSksdT0wO3U8bzt1KyspZio9ZTt0aGlzLmltdWxuKGYpLHRoaXMud29yZHNbMF0rbDw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1sOnRoaXMuX2lhZGRuKGwpfXRoaXMuc3RyaXAoKX0sYS5wcm90b3R5cGUuY29weT1mdW5jdGlvbih0KXt0LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBlPTA7ZTx0aGlzLmxlbmd0aDtlKyspdC53b3Jkc1tlXT10aGlzLndvcmRzW2VdO3QubGVuZ3RoPXRoaXMubGVuZ3RoLHQubmVnYXRpdmU9dGhpcy5uZWdhdGl2ZSx0LnJlZD10aGlzLnJlZH0sYS5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgYShudWxsKTtyZXR1cm4gdGhpcy5jb3B5KHQpLHR9LGEucHJvdG90eXBlLl9leHBhbmQ9ZnVuY3Rpb24odCl7Zm9yKDt0aGlzLmxlbmd0aDx0Oyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7cmV0dXJuIHRoaXN9LGEucHJvdG90eXBlLnN0cmlwPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmxlbmd0aD4xJiYwPT09dGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXTspdGhpcy5sZW5ndGgtLTtyZXR1cm4gdGhpcy5fbm9ybVNpZ24oKX0sYS5wcm90b3R5cGUuX25vcm1TaWduPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF0mJih0aGlzLm5lZ2F0aXZlPTApLHRoaXN9LGEucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5yZWQ/IjxCTi1SOiAiOiI8Qk46ICIpK3RoaXMudG9TdHJpbmcoMTYpKyI+In07dmFyIHU9WyIiLCIwIiwiMDAiLCIwMDAiLCIwMDAwIiwiMDAwMDAiLCIwMDAwMDAiLCIwMDAwMDAwIiwiMDAwMDAwMDAiLCIwMDAwMDAwMDAiLCIwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIl0sZj1bMCwwLDI1LDE2LDEyLDExLDEwLDksOCw4LDcsNyw3LDcsNiw2LDYsNiw2LDYsNiw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1XSxoPVswLDAsMzM1NTQ0MzIsNDMwNDY3MjEsMTY3NzcyMTYsNDg4MjgxMjUsNjA0NjYxNzYsNDAzNTM2MDcsMTY3NzcyMTYsNDMwNDY3MjEsMWU3LDE5NDg3MTcxLDM1ODMxODA4LDYyNzQ4NTE3LDc1Mjk1MzYsMTEzOTA2MjUsMTY3NzcyMTYsMjQxMzc1NjksMzQwMTIyMjQsNDcwNDU4ODEsNjRlNiw0MDg0MTAxLDUxNTM2MzIsNjQzNjM0Myw3OTYyNjI0LDk3NjU2MjUsMTE4ODEzNzYsMTQzNDg5MDcsMTcyMTAzNjgsMjA1MTExNDksMjQzZTUsMjg2MjkxNTEsMzM1NTQ0MzIsMzkxMzUzOTMsNDU0MzU0MjQsNTI1MjE4NzUsNjA0NjYxNzZdO2Z1bmN0aW9uIHAodCxlLHIpe3IubmVnYXRpdmU9ZS5uZWdhdGl2ZV50Lm5lZ2F0aXZlO3ZhciBuPXQubGVuZ3RoK2UubGVuZ3RofDA7ci5sZW5ndGg9bixuPW4tMXwwO3ZhciBpPTB8dC53b3Jkc1swXSxhPTB8ZS53b3Jkc1swXSxvPWkqYSxzPTY3MTA4ODYzJm8sbD1vLzY3MTA4ODY0fDA7ci53b3Jkc1swXT1zO2Zvcih2YXIgYz0xO2M8bjtjKyspe2Zvcih2YXIgdT1sPj4+MjYsZj02NzEwODg2MyZsLGg9TWF0aC5taW4oYyxlLmxlbmd0aC0xKSxwPU1hdGgubWF4KDAsYy10Lmxlbmd0aCsxKTtwPD1oO3ArKyl7dmFyIGQ9Yy1wfDA7dSs9KG89KGk9MHx0LndvcmRzW2RdKSooYT0wfGUud29yZHNbcF0pK2YpLzY3MTA4ODY0fDAsZj02NzEwODg2MyZvfXIud29yZHNbY109MHxmLGw9MHx1fXJldHVybiAwIT09bD9yLndvcmRzW2NdPTB8bDpyLmxlbmd0aC0tLHIuc3RyaXAoKX1hLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbih0LGUpe3ZhciByO2lmKGU9MHxlfHwxLDE2PT09KHQ9dHx8MTApfHwiaGV4Ij09PXQpe3I9IiI7Zm9yKHZhciBpPTAsYT0wLG89MDtvPHRoaXMubGVuZ3RoO28rKyl7dmFyIHM9dGhpcy53b3Jkc1tvXSxsPSgxNjc3NzIxNSYoczw8aXxhKSkudG9TdHJpbmcoMTYpO3I9MCE9PShhPXM+Pj4yNC1pJjE2Nzc3MjE1KXx8byE9PXRoaXMubGVuZ3RoLTE/dVs2LWwubGVuZ3RoXStsK3I6bCtyLChpKz0yKT49MjYmJihpLT0yNixvLS0pfWZvcigwIT09YSYmKHI9YS50b1N0cmluZygxNikrcik7ci5sZW5ndGglZSE9MDspcj0iMCIrcjtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihyPSItIityKSxyfWlmKHQ9PT0oMHx0KSYmdD49MiYmdDw9MzYpe3ZhciBjPWZbdF0scD1oW3RdO3I9IiI7dmFyIGQ9dGhpcy5jbG9uZSgpO2ZvcihkLm5lZ2F0aXZlPTA7IWQuaXNaZXJvKCk7KXt2YXIgbT1kLm1vZG4ocCkudG9TdHJpbmcodCk7cj0oZD1kLmlkaXZuKHApKS5pc1plcm8oKT9tK3I6dVtjLW0ubGVuZ3RoXSttK3J9Zm9yKHRoaXMuaXNaZXJvKCkmJihyPSIwIityKTtyLmxlbmd0aCVlIT0wOylyPSIwIityO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKHI9Ii0iK3IpLHJ9bighMSwiQmFzZSBzaG91bGQgYmUgYmV0d2VlbiAyIGFuZCAzNiIpfSxhLnByb3RvdHlwZS50b051bWJlcj1mdW5jdGlvbigpe3ZhciB0PXRoaXMud29yZHNbMF07cmV0dXJuIDI9PT10aGlzLmxlbmd0aD90Kz02NzEwODg2NCp0aGlzLndvcmRzWzFdOjM9PT10aGlzLmxlbmd0aCYmMT09PXRoaXMud29yZHNbMl0/dCs9NDUwMzU5OTYyNzM3MDQ5Nis2NzEwODg2NCp0aGlzLndvcmRzWzFdOnRoaXMubGVuZ3RoPjImJm4oITEsIk51bWJlciBjYW4gb25seSBzYWZlbHkgc3RvcmUgdXAgdG8gNTMgYml0cyIpLDAhPT10aGlzLm5lZ2F0aXZlPy10OnR9LGEucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU3RyaW5nKDE2KX0sYS5wcm90b3R5cGUudG9CdWZmZXI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbih2b2lkIDAhPT1vKSx0aGlzLnRvQXJyYXlMaWtlKG8sdCxlKX0sYS5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnRvQXJyYXlMaWtlKEFycmF5LHQsZSl9LGEucHJvdG90eXBlLnRvQXJyYXlMaWtlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgaT10aGlzLmJ5dGVMZW5ndGgoKSxhPXJ8fE1hdGgubWF4KDEsaSk7bihpPD1hLCJieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoIiksbihhPjAsIlJlcXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpLHRoaXMuc3RyaXAoKTt2YXIgbyxzLGw9ImxlIj09PWUsYz1uZXcgdChhKSx1PXRoaXMuY2xvbmUoKTtpZihsKXtmb3Iocz0wOyF1LmlzWmVybygpO3MrKylvPXUuYW5kbG4oMjU1KSx1Lml1c2hybig4KSxjW3NdPW87Zm9yKDtzPGE7cysrKWNbc109MH1lbHNle2ZvcihzPTA7czxhLWk7cysrKWNbc109MDtmb3Iocz0wOyF1LmlzWmVybygpO3MrKylvPXUuYW5kbG4oMjU1KSx1Lml1c2hybig4KSxjW2Etcy0xXT1vfXJldHVybiBjfSxNYXRoLmNsejMyP2EucHJvdG90eXBlLl9jb3VudEJpdHM9ZnVuY3Rpb24odCl7cmV0dXJuIDMyLU1hdGguY2x6MzIodCl9OmEucHJvdG90eXBlLl9jb3VudEJpdHM9ZnVuY3Rpb24odCl7dmFyIGU9dCxyPTA7cmV0dXJuIGU+PTQwOTYmJihyKz0xMyxlPj4+PTEzKSxlPj02NCYmKHIrPTcsZT4+Pj03KSxlPj04JiYocis9NCxlPj4+PTQpLGU+PTImJihyKz0yLGU+Pj49MikscitlfSxhLnByb3RvdHlwZS5femVyb0JpdHM9ZnVuY3Rpb24odCl7aWYoMD09PXQpcmV0dXJuIDI2O3ZhciBlPXQscj0wO3JldHVybiAwPT0oODE5MSZlKSYmKHIrPTEzLGU+Pj49MTMpLDA9PSgxMjcmZSkmJihyKz03LGU+Pj49NyksMD09KDE1JmUpJiYocis9NCxlPj4+PTQpLDA9PSgzJmUpJiYocis9MixlPj4+PTIpLDA9PSgxJmUpJiZyKysscn0sYS5wcm90b3R5cGUuYml0TGVuZ3RoPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSxlPXRoaXMuX2NvdW50Qml0cyh0KTtyZXR1cm4gMjYqKHRoaXMubGVuZ3RoLTEpK2V9LGEucHJvdG90eXBlLnplcm9CaXRzPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gMDtmb3IodmFyIHQ9MCxlPTA7ZTx0aGlzLmxlbmd0aDtlKyspe3ZhciByPXRoaXMuX3plcm9CaXRzKHRoaXMud29yZHNbZV0pO2lmKHQrPXIsMjYhPT1yKWJyZWFrfXJldHVybiB0fSxhLnByb3RvdHlwZS5ieXRlTGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguY2VpbCh0aGlzLmJpdExlbmd0aCgpLzgpfSxhLnByb3RvdHlwZS50b1R3b3M9ZnVuY3Rpb24odCl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlP3RoaXMuYWJzKCkuaW5vdG4odCkuaWFkZG4oMSk6dGhpcy5jbG9uZSgpfSxhLnByb3RvdHlwZS5mcm9tVHdvcz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy50ZXN0bih0LTEpP3RoaXMubm90bih0KS5pYWRkbigxKS5pbmVnKCk6dGhpcy5jbG9uZSgpfSxhLnByb3RvdHlwZS5pc05lZz1mdW5jdGlvbigpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZX0sYS5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbmVnKCl9LGEucHJvdG90eXBlLmluZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1plcm8oKXx8KHRoaXMubmVnYXRpdmVePTEpLHRoaXN9LGEucHJvdG90eXBlLml1b3I9ZnVuY3Rpb24odCl7Zm9yKDt0aGlzLmxlbmd0aDx0Lmxlbmd0aDspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXRoaXMud29yZHNbZV09dGhpcy53b3Jkc1tlXXx0LndvcmRzW2VdO3JldHVybiB0aGlzLnN0cmlwKCl9LGEucHJvdG90eXBlLmlvcj1mdW5jdGlvbih0KXtyZXR1cm4gbigwPT0odGhpcy5uZWdhdGl2ZXx0Lm5lZ2F0aXZlKSksdGhpcy5pdW9yKHQpfSxhLnByb3RvdHlwZS5vcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5sZW5ndGg+dC5sZW5ndGg/dGhpcy5jbG9uZSgpLmlvcih0KTp0LmNsb25lKCkuaW9yKHRoaXMpfSxhLnByb3RvdHlwZS51b3I9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubGVuZ3RoPnQubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdW9yKHQpOnQuY2xvbmUoKS5pdW9yKHRoaXMpfSxhLnByb3RvdHlwZS5pdWFuZD1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXMubGVuZ3RoPnQubGVuZ3RoP3Q6dGhpcztmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl0aGlzLndvcmRzW3JdPXRoaXMud29yZHNbcl0mdC53b3Jkc1tyXTtyZXR1cm4gdGhpcy5sZW5ndGg9ZS5sZW5ndGgsdGhpcy5zdHJpcCgpfSxhLnByb3RvdHlwZS5pYW5kPWZ1bmN0aW9uKHQpe3JldHVybiBuKDA9PSh0aGlzLm5lZ2F0aXZlfHQubmVnYXRpdmUpKSx0aGlzLml1YW5kKHQpfSxhLnByb3RvdHlwZS5hbmQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubGVuZ3RoPnQubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYW5kKHQpOnQuY2xvbmUoKS5pYW5kKHRoaXMpfSxhLnByb3RvdHlwZS51YW5kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxlbmd0aD50Lmxlbmd0aD90aGlzLmNsb25lKCkuaXVhbmQodCk6dC5jbG9uZSgpLml1YW5kKHRoaXMpfSxhLnByb3RvdHlwZS5pdXhvcj1mdW5jdGlvbih0KXt2YXIgZSxyO3RoaXMubGVuZ3RoPnQubGVuZ3RoPyhlPXRoaXMscj10KTooZT10LHI9dGhpcyk7Zm9yKHZhciBuPTA7bjxyLmxlbmd0aDtuKyspdGhpcy53b3Jkc1tuXT1lLndvcmRzW25dXnIud29yZHNbbl07aWYodGhpcyE9PWUpZm9yKDtuPGUubGVuZ3RoO24rKyl0aGlzLndvcmRzW25dPWUud29yZHNbbl07cmV0dXJuIHRoaXMubGVuZ3RoPWUubGVuZ3RoLHRoaXMuc3RyaXAoKX0sYS5wcm90b3R5cGUuaXhvcj1mdW5jdGlvbih0KXtyZXR1cm4gbigwPT0odGhpcy5uZWdhdGl2ZXx0Lm5lZ2F0aXZlKSksdGhpcy5pdXhvcih0KX0sYS5wcm90b3R5cGUueG9yPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxlbmd0aD50Lmxlbmd0aD90aGlzLmNsb25lKCkuaXhvcih0KTp0LmNsb25lKCkuaXhvcih0aGlzKX0sYS5wcm90b3R5cGUudXhvcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5sZW5ndGg+dC5sZW5ndGg/dGhpcy5jbG9uZSgpLml1eG9yKHQpOnQuY2xvbmUoKS5pdXhvcih0aGlzKX0sYS5wcm90b3R5cGUuaW5vdG49ZnVuY3Rpb24odCl7bigibnVtYmVyIj09dHlwZW9mIHQmJnQ+PTApO3ZhciBlPTB8TWF0aC5jZWlsKHQvMjYpLHI9dCUyNjt0aGlzLl9leHBhbmQoZSkscj4wJiZlLS07Zm9yKHZhciBpPTA7aTxlO2krKyl0aGlzLndvcmRzW2ldPTY3MTA4ODYzJn50aGlzLndvcmRzW2ldO3JldHVybiByPjAmJih0aGlzLndvcmRzW2ldPX50aGlzLndvcmRzW2ldJjY3MTA4ODYzPj4yNi1yKSx0aGlzLnN0cmlwKCl9LGEucHJvdG90eXBlLm5vdG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbm90bih0KX0sYS5wcm90b3R5cGUuc2V0bj1mdW5jdGlvbih0LGUpe24oIm51bWJlciI9PXR5cGVvZiB0JiZ0Pj0wKTt2YXIgcj10LzI2fDAsaT10JTI2O3JldHVybiB0aGlzLl9leHBhbmQocisxKSx0aGlzLndvcmRzW3JdPWU/dGhpcy53b3Jkc1tyXXwxPDxpOnRoaXMud29yZHNbcl0mfigxPDxpKSx0aGlzLnN0cmlwKCl9LGEucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24odCl7dmFyIGUscixuO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09dC5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLGU9dGhpcy5pc3ViKHQpLHRoaXMubmVnYXRpdmVePTEsdGhpcy5fbm9ybVNpZ24oKTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PXQubmVnYXRpdmUpcmV0dXJuIHQubmVnYXRpdmU9MCxlPXRoaXMuaXN1Yih0KSx0Lm5lZ2F0aXZlPTEsZS5fbm9ybVNpZ24oKTt0aGlzLmxlbmd0aD50Lmxlbmd0aD8ocj10aGlzLG49dCk6KHI9dCxuPXRoaXMpO2Zvcih2YXIgaT0wLGE9MDthPG4ubGVuZ3RoO2ErKyllPSgwfHIud29yZHNbYV0pKygwfG4ud29yZHNbYV0pK2ksdGhpcy53b3Jkc1thXT02NzEwODg2MyZlLGk9ZT4+PjI2O2Zvcig7MCE9PWkmJmE8ci5sZW5ndGg7YSsrKWU9KDB8ci53b3Jkc1thXSkraSx0aGlzLndvcmRzW2FdPTY3MTA4ODYzJmUsaT1lPj4+MjY7aWYodGhpcy5sZW5ndGg9ci5sZW5ndGgsMCE9PWkpdGhpcy53b3Jkc1t0aGlzLmxlbmd0aF09aSx0aGlzLmxlbmd0aCsrO2Vsc2UgaWYociE9PXRoaXMpZm9yKDthPHIubGVuZ3RoO2ErKyl0aGlzLndvcmRzW2FdPXIud29yZHNbYV07cmV0dXJuIHRoaXN9LGEucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gMCE9PXQubmVnYXRpdmUmJjA9PT10aGlzLm5lZ2F0aXZlPyh0Lm5lZ2F0aXZlPTAsZT10aGlzLnN1Yih0KSx0Lm5lZ2F0aXZlXj0xLGUpOjA9PT10Lm5lZ2F0aXZlJiYwIT09dGhpcy5uZWdhdGl2ZT8odGhpcy5uZWdhdGl2ZT0wLGU9dC5zdWIodGhpcyksdGhpcy5uZWdhdGl2ZT0xLGUpOnRoaXMubGVuZ3RoPnQubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYWRkKHQpOnQuY2xvbmUoKS5pYWRkKHRoaXMpfSxhLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKHQpe2lmKDAhPT10Lm5lZ2F0aXZlKXt0Lm5lZ2F0aXZlPTA7dmFyIGU9dGhpcy5pYWRkKHQpO3JldHVybiB0Lm5lZ2F0aXZlPTEsZS5fbm9ybVNpZ24oKX1pZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZCh0KSx0aGlzLm5lZ2F0aXZlPTEsdGhpcy5fbm9ybVNpZ24oKTt2YXIgcixuLGk9dGhpcy5jbXAodCk7aWYoMD09PWkpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmxlbmd0aD0xLHRoaXMud29yZHNbMF09MCx0aGlzO2k+MD8ocj10aGlzLG49dCk6KHI9dCxuPXRoaXMpO2Zvcih2YXIgYT0wLG89MDtvPG4ubGVuZ3RoO28rKylhPShlPSgwfHIud29yZHNbb10pLSgwfG4ud29yZHNbb10pK2EpPj4yNix0aGlzLndvcmRzW29dPTY3MTA4ODYzJmU7Zm9yKDswIT09YSYmbzxyLmxlbmd0aDtvKyspYT0oZT0oMHxyLndvcmRzW29dKSthKT4+MjYsdGhpcy53b3Jkc1tvXT02NzEwODg2MyZlO2lmKDA9PT1hJiZvPHIubGVuZ3RoJiZyIT09dGhpcylmb3IoO288ci5sZW5ndGg7bysrKXRoaXMud29yZHNbb109ci53b3Jkc1tvXTtyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgsbyksciE9PXRoaXMmJih0aGlzLm5lZ2F0aXZlPTEpLHRoaXMuc3RyaXAoKX0sYS5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1Yih0KX07dmFyIGQ9ZnVuY3Rpb24odCxlLHIpe3ZhciBuLGksYSxvPXQud29yZHMscz1lLndvcmRzLGw9ci53b3JkcyxjPTAsdT0wfG9bMF0sZj04MTkxJnUsaD11Pj4+MTMscD0wfG9bMV0sZD04MTkxJnAsbT1wPj4+MTMsZz0wfG9bMl0sdj04MTkxJmcseT1nPj4+MTMseD0wfG9bM10sYj04MTkxJngsXz14Pj4+MTMsdz0wfG9bNF0sVD04MTkxJncsaz13Pj4+MTMsQT0wfG9bNV0sTT04MTkxJkEsUz1BPj4+MTMsRT0wfG9bNl0sTD04MTkxJkUsQz1FPj4+MTMsUD0wfG9bN10sST04MTkxJlAsTz1QPj4+MTMsej0wfG9bOF0sRD04MTkxJnosUj16Pj4+MTMsRj0wfG9bOV0sQj04MTkxJkYsTj1GPj4+MTMsaj0wfHNbMF0sVT04MTkxJmosVj1qPj4+MTMsSD0wfHNbMV0scT04MTkxJkgsRz1IPj4+MTMsWT0wfHNbMl0sVz04MTkxJlksWD1ZPj4+MTMsWj0wfHNbM10sSj04MTkxJlosSz1aPj4+MTMsUT0wfHNbNF0sJD04MTkxJlEsdHQ9UT4+PjEzLGV0PTB8c1s1XSxydD04MTkxJmV0LG50PWV0Pj4+MTMsaXQ9MHxzWzZdLGF0PTgxOTEmaXQsb3Q9aXQ+Pj4xMyxzdD0wfHNbN10sbHQ9ODE5MSZzdCxjdD1zdD4+PjEzLHV0PTB8c1s4XSxmdD04MTkxJnV0LGh0PXV0Pj4+MTMscHQ9MHxzWzldLGR0PTgxOTEmcHQsbXQ9cHQ+Pj4xMztyLm5lZ2F0aXZlPXQubmVnYXRpdmVeZS5uZWdhdGl2ZSxyLmxlbmd0aD0xOTt2YXIgZ3Q9KGMrKG49TWF0aC5pbXVsKGYsVSkpfDApKygoODE5MSYoaT0oaT1NYXRoLmltdWwoZixWKSkrTWF0aC5pbXVsKGgsVSl8MCkpPDwxMyl8MDtjPSgoYT1NYXRoLmltdWwoaCxWKSkrKGk+Pj4xMyl8MCkrKGd0Pj4+MjYpfDAsZ3QmPTY3MTA4ODYzLG49TWF0aC5pbXVsKGQsVSksaT0oaT1NYXRoLmltdWwoZCxWKSkrTWF0aC5pbXVsKG0sVSl8MCxhPU1hdGguaW11bChtLFYpO3ZhciB2dD0oYysobj1uK01hdGguaW11bChmLHEpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChmLEcpfDApK01hdGguaW11bChoLHEpfDApKTw8MTMpfDA7Yz0oKGE9YStNYXRoLmltdWwoaCxHKXwwKSsoaT4+PjEzKXwwKSsodnQ+Pj4yNil8MCx2dCY9NjcxMDg4NjMsbj1NYXRoLmltdWwodixVKSxpPShpPU1hdGguaW11bCh2LFYpKStNYXRoLmltdWwoeSxVKXwwLGE9TWF0aC5pbXVsKHksViksbj1uK01hdGguaW11bChkLHEpfDAsaT0oaT1pK01hdGguaW11bChkLEcpfDApK01hdGguaW11bChtLHEpfDAsYT1hK01hdGguaW11bChtLEcpfDA7dmFyIHl0PShjKyhuPW4rTWF0aC5pbXVsKGYsVyl8MCl8MCkrKCg4MTkxJihpPShpPWkrTWF0aC5pbXVsKGYsWCl8MCkrTWF0aC5pbXVsKGgsVyl8MCkpPDwxMyl8MDtjPSgoYT1hK01hdGguaW11bChoLFgpfDApKyhpPj4+MTMpfDApKyh5dD4+PjI2KXwwLHl0Jj02NzEwODg2MyxuPU1hdGguaW11bChiLFUpLGk9KGk9TWF0aC5pbXVsKGIsVikpK01hdGguaW11bChfLFUpfDAsYT1NYXRoLmltdWwoXyxWKSxuPW4rTWF0aC5pbXVsKHYscSl8MCxpPShpPWkrTWF0aC5pbXVsKHYsRyl8MCkrTWF0aC5pbXVsKHkscSl8MCxhPWErTWF0aC5pbXVsKHksRyl8MCxuPW4rTWF0aC5pbXVsKGQsVyl8MCxpPShpPWkrTWF0aC5pbXVsKGQsWCl8MCkrTWF0aC5pbXVsKG0sVyl8MCxhPWErTWF0aC5pbXVsKG0sWCl8MDt2YXIgeHQ9KGMrKG49bitNYXRoLmltdWwoZixKKXwwKXwwKSsoKDgxOTEmKGk9KGk9aStNYXRoLmltdWwoZixLKXwwKStNYXRoLmltdWwoaCxKKXwwKSk8PDEzKXwwO2M9KChhPWErTWF0aC5pbXVsKGgsSyl8MCkrKGk+Pj4xMyl8MCkrKHh0Pj4+MjYpfDAseHQmPTY3MTA4ODYzLG49TWF0aC5pbXVsKFQsVSksaT0oaT1NYXRoLmltdWwoVCxWKSkrTWF0aC5pbXVsKGssVSl8MCxhPU1hdGguaW11bChrLFYpLG49bitNYXRoLmltdWwoYixxKXwwLGk9KGk9aStNYXRoLmltdWwoYixHKXwwKStNYXRoLmltdWwoXyxxKXwwLGE9YStNYXRoLmltdWwoXyxHKXwwLG49bitNYXRoLmltdWwodixXKXwwLGk9KGk9aStNYXRoLmltdWwodixYKXwwKStNYXRoLmltdWwoeSxXKXwwLGE9YStNYXRoLmltdWwoeSxYKXwwLG49bitNYXRoLmltdWwoZCxKKXwwLGk9KGk9aStNYXRoLmltdWwoZCxLKXwwKStNYXRoLmltdWwobSxKKXwwLGE9YStNYXRoLmltdWwobSxLKXwwO3ZhciBidD0oYysobj1uK01hdGguaW11bChmLCQpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChmLHR0KXwwKStNYXRoLmltdWwoaCwkKXwwKSk8PDEzKXwwO2M9KChhPWErTWF0aC5pbXVsKGgsdHQpfDApKyhpPj4+MTMpfDApKyhidD4+PjI2KXwwLGJ0Jj02NzEwODg2MyxuPU1hdGguaW11bChNLFUpLGk9KGk9TWF0aC5pbXVsKE0sVikpK01hdGguaW11bChTLFUpfDAsYT1NYXRoLmltdWwoUyxWKSxuPW4rTWF0aC5pbXVsKFQscSl8MCxpPShpPWkrTWF0aC5pbXVsKFQsRyl8MCkrTWF0aC5pbXVsKGsscSl8MCxhPWErTWF0aC5pbXVsKGssRyl8MCxuPW4rTWF0aC5pbXVsKGIsVyl8MCxpPShpPWkrTWF0aC5pbXVsKGIsWCl8MCkrTWF0aC5pbXVsKF8sVyl8MCxhPWErTWF0aC5pbXVsKF8sWCl8MCxuPW4rTWF0aC5pbXVsKHYsSil8MCxpPShpPWkrTWF0aC5pbXVsKHYsSyl8MCkrTWF0aC5pbXVsKHksSil8MCxhPWErTWF0aC5pbXVsKHksSyl8MCxuPW4rTWF0aC5pbXVsKGQsJCl8MCxpPShpPWkrTWF0aC5pbXVsKGQsdHQpfDApK01hdGguaW11bChtLCQpfDAsYT1hK01hdGguaW11bChtLHR0KXwwO3ZhciBfdD0oYysobj1uK01hdGguaW11bChmLHJ0KXwwKXwwKSsoKDgxOTEmKGk9KGk9aStNYXRoLmltdWwoZixudCl8MCkrTWF0aC5pbXVsKGgscnQpfDApKTw8MTMpfDA7Yz0oKGE9YStNYXRoLmltdWwoaCxudCl8MCkrKGk+Pj4xMyl8MCkrKF90Pj4+MjYpfDAsX3QmPTY3MTA4ODYzLG49TWF0aC5pbXVsKEwsVSksaT0oaT1NYXRoLmltdWwoTCxWKSkrTWF0aC5pbXVsKEMsVSl8MCxhPU1hdGguaW11bChDLFYpLG49bitNYXRoLmltdWwoTSxxKXwwLGk9KGk9aStNYXRoLmltdWwoTSxHKXwwKStNYXRoLmltdWwoUyxxKXwwLGE9YStNYXRoLmltdWwoUyxHKXwwLG49bitNYXRoLmltdWwoVCxXKXwwLGk9KGk9aStNYXRoLmltdWwoVCxYKXwwKStNYXRoLmltdWwoayxXKXwwLGE9YStNYXRoLmltdWwoayxYKXwwLG49bitNYXRoLmltdWwoYixKKXwwLGk9KGk9aStNYXRoLmltdWwoYixLKXwwKStNYXRoLmltdWwoXyxKKXwwLGE9YStNYXRoLmltdWwoXyxLKXwwLG49bitNYXRoLmltdWwodiwkKXwwLGk9KGk9aStNYXRoLmltdWwodix0dCl8MCkrTWF0aC5pbXVsKHksJCl8MCxhPWErTWF0aC5pbXVsKHksdHQpfDAsbj1uK01hdGguaW11bChkLHJ0KXwwLGk9KGk9aStNYXRoLmltdWwoZCxudCl8MCkrTWF0aC5pbXVsKG0scnQpfDAsYT1hK01hdGguaW11bChtLG50KXwwO3ZhciB3dD0oYysobj1uK01hdGguaW11bChmLGF0KXwwKXwwKSsoKDgxOTEmKGk9KGk9aStNYXRoLmltdWwoZixvdCl8MCkrTWF0aC5pbXVsKGgsYXQpfDApKTw8MTMpfDA7Yz0oKGE9YStNYXRoLmltdWwoaCxvdCl8MCkrKGk+Pj4xMyl8MCkrKHd0Pj4+MjYpfDAsd3QmPTY3MTA4ODYzLG49TWF0aC5pbXVsKEksVSksaT0oaT1NYXRoLmltdWwoSSxWKSkrTWF0aC5pbXVsKE8sVSl8MCxhPU1hdGguaW11bChPLFYpLG49bitNYXRoLmltdWwoTCxxKXwwLGk9KGk9aStNYXRoLmltdWwoTCxHKXwwKStNYXRoLmltdWwoQyxxKXwwLGE9YStNYXRoLmltdWwoQyxHKXwwLG49bitNYXRoLmltdWwoTSxXKXwwLGk9KGk9aStNYXRoLmltdWwoTSxYKXwwKStNYXRoLmltdWwoUyxXKXwwLGE9YStNYXRoLmltdWwoUyxYKXwwLG49bitNYXRoLmltdWwoVCxKKXwwLGk9KGk9aStNYXRoLmltdWwoVCxLKXwwKStNYXRoLmltdWwoayxKKXwwLGE9YStNYXRoLmltdWwoayxLKXwwLG49bitNYXRoLmltdWwoYiwkKXwwLGk9KGk9aStNYXRoLmltdWwoYix0dCl8MCkrTWF0aC5pbXVsKF8sJCl8MCxhPWErTWF0aC5pbXVsKF8sdHQpfDAsbj1uK01hdGguaW11bCh2LHJ0KXwwLGk9KGk9aStNYXRoLmltdWwodixudCl8MCkrTWF0aC5pbXVsKHkscnQpfDAsYT1hK01hdGguaW11bCh5LG50KXwwLG49bitNYXRoLmltdWwoZCxhdCl8MCxpPShpPWkrTWF0aC5pbXVsKGQsb3QpfDApK01hdGguaW11bChtLGF0KXwwLGE9YStNYXRoLmltdWwobSxvdCl8MDt2YXIgVHQ9KGMrKG49bitNYXRoLmltdWwoZixsdCl8MCl8MCkrKCg4MTkxJihpPShpPWkrTWF0aC5pbXVsKGYsY3QpfDApK01hdGguaW11bChoLGx0KXwwKSk8PDEzKXwwO2M9KChhPWErTWF0aC5pbXVsKGgsY3QpfDApKyhpPj4+MTMpfDApKyhUdD4+PjI2KXwwLFR0Jj02NzEwODg2MyxuPU1hdGguaW11bChELFUpLGk9KGk9TWF0aC5pbXVsKEQsVikpK01hdGguaW11bChSLFUpfDAsYT1NYXRoLmltdWwoUixWKSxuPW4rTWF0aC5pbXVsKEkscSl8MCxpPShpPWkrTWF0aC5pbXVsKEksRyl8MCkrTWF0aC5pbXVsKE8scSl8MCxhPWErTWF0aC5pbXVsKE8sRyl8MCxuPW4rTWF0aC5pbXVsKEwsVyl8MCxpPShpPWkrTWF0aC5pbXVsKEwsWCl8MCkrTWF0aC5pbXVsKEMsVyl8MCxhPWErTWF0aC5pbXVsKEMsWCl8MCxuPW4rTWF0aC5pbXVsKE0sSil8MCxpPShpPWkrTWF0aC5pbXVsKE0sSyl8MCkrTWF0aC5pbXVsKFMsSil8MCxhPWErTWF0aC5pbXVsKFMsSyl8MCxuPW4rTWF0aC5pbXVsKFQsJCl8MCxpPShpPWkrTWF0aC5pbXVsKFQsdHQpfDApK01hdGguaW11bChrLCQpfDAsYT1hK01hdGguaW11bChrLHR0KXwwLG49bitNYXRoLmltdWwoYixydCl8MCxpPShpPWkrTWF0aC5pbXVsKGIsbnQpfDApK01hdGguaW11bChfLHJ0KXwwLGE9YStNYXRoLmltdWwoXyxudCl8MCxuPW4rTWF0aC5pbXVsKHYsYXQpfDAsaT0oaT1pK01hdGguaW11bCh2LG90KXwwKStNYXRoLmltdWwoeSxhdCl8MCxhPWErTWF0aC5pbXVsKHksb3QpfDAsbj1uK01hdGguaW11bChkLGx0KXwwLGk9KGk9aStNYXRoLmltdWwoZCxjdCl8MCkrTWF0aC5pbXVsKG0sbHQpfDAsYT1hK01hdGguaW11bChtLGN0KXwwO3ZhciBrdD0oYysobj1uK01hdGguaW11bChmLGZ0KXwwKXwwKSsoKDgxOTEmKGk9KGk9aStNYXRoLmltdWwoZixodCl8MCkrTWF0aC5pbXVsKGgsZnQpfDApKTw8MTMpfDA7Yz0oKGE9YStNYXRoLmltdWwoaCxodCl8MCkrKGk+Pj4xMyl8MCkrKGt0Pj4+MjYpfDAsa3QmPTY3MTA4ODYzLG49TWF0aC5pbXVsKEIsVSksaT0oaT1NYXRoLmltdWwoQixWKSkrTWF0aC5pbXVsKE4sVSl8MCxhPU1hdGguaW11bChOLFYpLG49bitNYXRoLmltdWwoRCxxKXwwLGk9KGk9aStNYXRoLmltdWwoRCxHKXwwKStNYXRoLmltdWwoUixxKXwwLGE9YStNYXRoLmltdWwoUixHKXwwLG49bitNYXRoLmltdWwoSSxXKXwwLGk9KGk9aStNYXRoLmltdWwoSSxYKXwwKStNYXRoLmltdWwoTyxXKXwwLGE9YStNYXRoLmltdWwoTyxYKXwwLG49bitNYXRoLmltdWwoTCxKKXwwLGk9KGk9aStNYXRoLmltdWwoTCxLKXwwKStNYXRoLmltdWwoQyxKKXwwLGE9YStNYXRoLmltdWwoQyxLKXwwLG49bitNYXRoLmltdWwoTSwkKXwwLGk9KGk9aStNYXRoLmltdWwoTSx0dCl8MCkrTWF0aC5pbXVsKFMsJCl8MCxhPWErTWF0aC5pbXVsKFMsdHQpfDAsbj1uK01hdGguaW11bChULHJ0KXwwLGk9KGk9aStNYXRoLmltdWwoVCxudCl8MCkrTWF0aC5pbXVsKGsscnQpfDAsYT1hK01hdGguaW11bChrLG50KXwwLG49bitNYXRoLmltdWwoYixhdCl8MCxpPShpPWkrTWF0aC5pbXVsKGIsb3QpfDApK01hdGguaW11bChfLGF0KXwwLGE9YStNYXRoLmltdWwoXyxvdCl8MCxuPW4rTWF0aC5pbXVsKHYsbHQpfDAsaT0oaT1pK01hdGguaW11bCh2LGN0KXwwKStNYXRoLmltdWwoeSxsdCl8MCxhPWErTWF0aC5pbXVsKHksY3QpfDAsbj1uK01hdGguaW11bChkLGZ0KXwwLGk9KGk9aStNYXRoLmltdWwoZCxodCl8MCkrTWF0aC5pbXVsKG0sZnQpfDAsYT1hK01hdGguaW11bChtLGh0KXwwO3ZhciBBdD0oYysobj1uK01hdGguaW11bChmLGR0KXwwKXwwKSsoKDgxOTEmKGk9KGk9aStNYXRoLmltdWwoZixtdCl8MCkrTWF0aC5pbXVsKGgsZHQpfDApKTw8MTMpfDA7Yz0oKGE9YStNYXRoLmltdWwoaCxtdCl8MCkrKGk+Pj4xMyl8MCkrKEF0Pj4+MjYpfDAsQXQmPTY3MTA4ODYzLG49TWF0aC5pbXVsKEIscSksaT0oaT1NYXRoLmltdWwoQixHKSkrTWF0aC5pbXVsKE4scSl8MCxhPU1hdGguaW11bChOLEcpLG49bitNYXRoLmltdWwoRCxXKXwwLGk9KGk9aStNYXRoLmltdWwoRCxYKXwwKStNYXRoLmltdWwoUixXKXwwLGE9YStNYXRoLmltdWwoUixYKXwwLG49bitNYXRoLmltdWwoSSxKKXwwLGk9KGk9aStNYXRoLmltdWwoSSxLKXwwKStNYXRoLmltdWwoTyxKKXwwLGE9YStNYXRoLmltdWwoTyxLKXwwLG49bitNYXRoLmltdWwoTCwkKXwwLGk9KGk9aStNYXRoLmltdWwoTCx0dCl8MCkrTWF0aC5pbXVsKEMsJCl8MCxhPWErTWF0aC5pbXVsKEMsdHQpfDAsbj1uK01hdGguaW11bChNLHJ0KXwwLGk9KGk9aStNYXRoLmltdWwoTSxudCl8MCkrTWF0aC5pbXVsKFMscnQpfDAsYT1hK01hdGguaW11bChTLG50KXwwLG49bitNYXRoLmltdWwoVCxhdCl8MCxpPShpPWkrTWF0aC5pbXVsKFQsb3QpfDApK01hdGguaW11bChrLGF0KXwwLGE9YStNYXRoLmltdWwoayxvdCl8MCxuPW4rTWF0aC5pbXVsKGIsbHQpfDAsaT0oaT1pK01hdGguaW11bChiLGN0KXwwKStNYXRoLmltdWwoXyxsdCl8MCxhPWErTWF0aC5pbXVsKF8sY3QpfDAsbj1uK01hdGguaW11bCh2LGZ0KXwwLGk9KGk9aStNYXRoLmltdWwodixodCl8MCkrTWF0aC5pbXVsKHksZnQpfDAsYT1hK01hdGguaW11bCh5LGh0KXwwO3ZhciBNdD0oYysobj1uK01hdGguaW11bChkLGR0KXwwKXwwKSsoKDgxOTEmKGk9KGk9aStNYXRoLmltdWwoZCxtdCl8MCkrTWF0aC5pbXVsKG0sZHQpfDApKTw8MTMpfDA7Yz0oKGE9YStNYXRoLmltdWwobSxtdCl8MCkrKGk+Pj4xMyl8MCkrKE10Pj4+MjYpfDAsTXQmPTY3MTA4ODYzLG49TWF0aC5pbXVsKEIsVyksaT0oaT1NYXRoLmltdWwoQixYKSkrTWF0aC5pbXVsKE4sVyl8MCxhPU1hdGguaW11bChOLFgpLG49bitNYXRoLmltdWwoRCxKKXwwLGk9KGk9aStNYXRoLmltdWwoRCxLKXwwKStNYXRoLmltdWwoUixKKXwwLGE9YStNYXRoLmltdWwoUixLKXwwLG49bitNYXRoLmltdWwoSSwkKXwwLGk9KGk9aStNYXRoLmltdWwoSSx0dCl8MCkrTWF0aC5pbXVsKE8sJCl8MCxhPWErTWF0aC5pbXVsKE8sdHQpfDAsbj1uK01hdGguaW11bChMLHJ0KXwwLGk9KGk9aStNYXRoLmltdWwoTCxudCl8MCkrTWF0aC5pbXVsKEMscnQpfDAsYT1hK01hdGguaW11bChDLG50KXwwLG49bitNYXRoLmltdWwoTSxhdCl8MCxpPShpPWkrTWF0aC5pbXVsKE0sb3QpfDApK01hdGguaW11bChTLGF0KXwwLGE9YStNYXRoLmltdWwoUyxvdCl8MCxuPW4rTWF0aC5pbXVsKFQsbHQpfDAsaT0oaT1pK01hdGguaW11bChULGN0KXwwKStNYXRoLmltdWwoayxsdCl8MCxhPWErTWF0aC5pbXVsKGssY3QpfDAsbj1uK01hdGguaW11bChiLGZ0KXwwLGk9KGk9aStNYXRoLmltdWwoYixodCl8MCkrTWF0aC5pbXVsKF8sZnQpfDAsYT1hK01hdGguaW11bChfLGh0KXwwO3ZhciBTdD0oYysobj1uK01hdGguaW11bCh2LGR0KXwwKXwwKSsoKDgxOTEmKGk9KGk9aStNYXRoLmltdWwodixtdCl8MCkrTWF0aC5pbXVsKHksZHQpfDApKTw8MTMpfDA7Yz0oKGE9YStNYXRoLmltdWwoeSxtdCl8MCkrKGk+Pj4xMyl8MCkrKFN0Pj4+MjYpfDAsU3QmPTY3MTA4ODYzLG49TWF0aC5pbXVsKEIsSiksaT0oaT1NYXRoLmltdWwoQixLKSkrTWF0aC5pbXVsKE4sSil8MCxhPU1hdGguaW11bChOLEspLG49bitNYXRoLmltdWwoRCwkKXwwLGk9KGk9aStNYXRoLmltdWwoRCx0dCl8MCkrTWF0aC5pbXVsKFIsJCl8MCxhPWErTWF0aC5pbXVsKFIsdHQpfDAsbj1uK01hdGguaW11bChJLHJ0KXwwLGk9KGk9aStNYXRoLmltdWwoSSxudCl8MCkrTWF0aC5pbXVsKE8scnQpfDAsYT1hK01hdGguaW11bChPLG50KXwwLG49bitNYXRoLmltdWwoTCxhdCl8MCxpPShpPWkrTWF0aC5pbXVsKEwsb3QpfDApK01hdGguaW11bChDLGF0KXwwLGE9YStNYXRoLmltdWwoQyxvdCl8MCxuPW4rTWF0aC5pbXVsKE0sbHQpfDAsaT0oaT1pK01hdGguaW11bChNLGN0KXwwKStNYXRoLmltdWwoUyxsdCl8MCxhPWErTWF0aC5pbXVsKFMsY3QpfDAsbj1uK01hdGguaW11bChULGZ0KXwwLGk9KGk9aStNYXRoLmltdWwoVCxodCl8MCkrTWF0aC5pbXVsKGssZnQpfDAsYT1hK01hdGguaW11bChrLGh0KXwwO3ZhciBFdD0oYysobj1uK01hdGguaW11bChiLGR0KXwwKXwwKSsoKDgxOTEmKGk9KGk9aStNYXRoLmltdWwoYixtdCl8MCkrTWF0aC5pbXVsKF8sZHQpfDApKTw8MTMpfDA7Yz0oKGE9YStNYXRoLmltdWwoXyxtdCl8MCkrKGk+Pj4xMyl8MCkrKEV0Pj4+MjYpfDAsRXQmPTY3MTA4ODYzLG49TWF0aC5pbXVsKEIsJCksaT0oaT1NYXRoLmltdWwoQix0dCkpK01hdGguaW11bChOLCQpfDAsYT1NYXRoLmltdWwoTix0dCksbj1uK01hdGguaW11bChELHJ0KXwwLGk9KGk9aStNYXRoLmltdWwoRCxudCl8MCkrTWF0aC5pbXVsKFIscnQpfDAsYT1hK01hdGguaW11bChSLG50KXwwLG49bitNYXRoLmltdWwoSSxhdCl8MCxpPShpPWkrTWF0aC5pbXVsKEksb3QpfDApK01hdGguaW11bChPLGF0KXwwLGE9YStNYXRoLmltdWwoTyxvdCl8MCxuPW4rTWF0aC5pbXVsKEwsbHQpfDAsaT0oaT1pK01hdGguaW11bChMLGN0KXwwKStNYXRoLmltdWwoQyxsdCl8MCxhPWErTWF0aC5pbXVsKEMsY3QpfDAsbj1uK01hdGguaW11bChNLGZ0KXwwLGk9KGk9aStNYXRoLmltdWwoTSxodCl8MCkrTWF0aC5pbXVsKFMsZnQpfDAsYT1hK01hdGguaW11bChTLGh0KXwwO3ZhciBMdD0oYysobj1uK01hdGguaW11bChULGR0KXwwKXwwKSsoKDgxOTEmKGk9KGk9aStNYXRoLmltdWwoVCxtdCl8MCkrTWF0aC5pbXVsKGssZHQpfDApKTw8MTMpfDA7Yz0oKGE9YStNYXRoLmltdWwoayxtdCl8MCkrKGk+Pj4xMyl8MCkrKEx0Pj4+MjYpfDAsTHQmPTY3MTA4ODYzLG49TWF0aC5pbXVsKEIscnQpLGk9KGk9TWF0aC5pbXVsKEIsbnQpKStNYXRoLmltdWwoTixydCl8MCxhPU1hdGguaW11bChOLG50KSxuPW4rTWF0aC5pbXVsKEQsYXQpfDAsaT0oaT1pK01hdGguaW11bChELG90KXwwKStNYXRoLmltdWwoUixhdCl8MCxhPWErTWF0aC5pbXVsKFIsb3QpfDAsbj1uK01hdGguaW11bChJLGx0KXwwLGk9KGk9aStNYXRoLmltdWwoSSxjdCl8MCkrTWF0aC5pbXVsKE8sbHQpfDAsYT1hK01hdGguaW11bChPLGN0KXwwLG49bitNYXRoLmltdWwoTCxmdCl8MCxpPShpPWkrTWF0aC5pbXVsKEwsaHQpfDApK01hdGguaW11bChDLGZ0KXwwLGE9YStNYXRoLmltdWwoQyxodCl8MDt2YXIgQ3Q9KGMrKG49bitNYXRoLmltdWwoTSxkdCl8MCl8MCkrKCg4MTkxJihpPShpPWkrTWF0aC5pbXVsKE0sbXQpfDApK01hdGguaW11bChTLGR0KXwwKSk8PDEzKXwwO2M9KChhPWErTWF0aC5pbXVsKFMsbXQpfDApKyhpPj4+MTMpfDApKyhDdD4+PjI2KXwwLEN0Jj02NzEwODg2MyxuPU1hdGguaW11bChCLGF0KSxpPShpPU1hdGguaW11bChCLG90KSkrTWF0aC5pbXVsKE4sYXQpfDAsYT1NYXRoLmltdWwoTixvdCksbj1uK01hdGguaW11bChELGx0KXwwLGk9KGk9aStNYXRoLmltdWwoRCxjdCl8MCkrTWF0aC5pbXVsKFIsbHQpfDAsYT1hK01hdGguaW11bChSLGN0KXwwLG49bitNYXRoLmltdWwoSSxmdCl8MCxpPShpPWkrTWF0aC5pbXVsKEksaHQpfDApK01hdGguaW11bChPLGZ0KXwwLGE9YStNYXRoLmltdWwoTyxodCl8MDt2YXIgUHQ9KGMrKG49bitNYXRoLmltdWwoTCxkdCl8MCl8MCkrKCg4MTkxJihpPShpPWkrTWF0aC5pbXVsKEwsbXQpfDApK01hdGguaW11bChDLGR0KXwwKSk8PDEzKXwwO2M9KChhPWErTWF0aC5pbXVsKEMsbXQpfDApKyhpPj4+MTMpfDApKyhQdD4+PjI2KXwwLFB0Jj02NzEwODg2MyxuPU1hdGguaW11bChCLGx0KSxpPShpPU1hdGguaW11bChCLGN0KSkrTWF0aC5pbXVsKE4sbHQpfDAsYT1NYXRoLmltdWwoTixjdCksbj1uK01hdGguaW11bChELGZ0KXwwLGk9KGk9aStNYXRoLmltdWwoRCxodCl8MCkrTWF0aC5pbXVsKFIsZnQpfDAsYT1hK01hdGguaW11bChSLGh0KXwwO3ZhciBJdD0oYysobj1uK01hdGguaW11bChJLGR0KXwwKXwwKSsoKDgxOTEmKGk9KGk9aStNYXRoLmltdWwoSSxtdCl8MCkrTWF0aC5pbXVsKE8sZHQpfDApKTw8MTMpfDA7Yz0oKGE9YStNYXRoLmltdWwoTyxtdCl8MCkrKGk+Pj4xMyl8MCkrKEl0Pj4+MjYpfDAsSXQmPTY3MTA4ODYzLG49TWF0aC5pbXVsKEIsZnQpLGk9KGk9TWF0aC5pbXVsKEIsaHQpKStNYXRoLmltdWwoTixmdCl8MCxhPU1hdGguaW11bChOLGh0KTt2YXIgT3Q9KGMrKG49bitNYXRoLmltdWwoRCxkdCl8MCl8MCkrKCg4MTkxJihpPShpPWkrTWF0aC5pbXVsKEQsbXQpfDApK01hdGguaW11bChSLGR0KXwwKSk8PDEzKXwwO2M9KChhPWErTWF0aC5pbXVsKFIsbXQpfDApKyhpPj4+MTMpfDApKyhPdD4+PjI2KXwwLE90Jj02NzEwODg2Mzt2YXIgenQ9KGMrKG49TWF0aC5pbXVsKEIsZHQpKXwwKSsoKDgxOTEmKGk9KGk9TWF0aC5pbXVsKEIsbXQpKStNYXRoLmltdWwoTixkdCl8MCkpPDwxMyl8MDtyZXR1cm4gYz0oKGE9TWF0aC5pbXVsKE4sbXQpKSsoaT4+PjEzKXwwKSsoenQ+Pj4yNil8MCx6dCY9NjcxMDg4NjMsbFswXT1ndCxsWzFdPXZ0LGxbMl09eXQsbFszXT14dCxsWzRdPWJ0LGxbNV09X3QsbFs2XT13dCxsWzddPVR0LGxbOF09a3QsbFs5XT1BdCxsWzEwXT1NdCxsWzExXT1TdCxsWzEyXT1FdCxsWzEzXT1MdCxsWzE0XT1DdCxsWzE1XT1QdCxsWzE2XT1JdCxsWzE3XT1PdCxsWzE4XT16dCwwIT09YyYmKGxbMTldPWMsci5sZW5ndGgrKykscn07ZnVuY3Rpb24gbSh0LGUscil7cmV0dXJuKG5ldyBnKS5tdWxwKHQsZSxyKX1mdW5jdGlvbiBnKHQsZSl7dGhpcy54PXQsdGhpcy55PWV9TWF0aC5pbXVsfHwoZD1wKSxhLnByb3RvdHlwZS5tdWxUbz1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMubGVuZ3RoK3QubGVuZ3RoO3JldHVybiAxMD09PXRoaXMubGVuZ3RoJiYxMD09PXQubGVuZ3RoP2QodGhpcyx0LGUpOnI8NjM/cCh0aGlzLHQsZSk6cjwxMDI0P2Z1bmN0aW9uKHQsZSxyKXtyLm5lZ2F0aXZlPWUubmVnYXRpdmVedC5uZWdhdGl2ZSxyLmxlbmd0aD10Lmxlbmd0aCtlLmxlbmd0aDtmb3IodmFyIG49MCxpPTAsYT0wO2E8ci5sZW5ndGgtMTthKyspe3ZhciBvPWk7aT0wO2Zvcih2YXIgcz02NzEwODg2MyZuLGw9TWF0aC5taW4oYSxlLmxlbmd0aC0xKSxjPU1hdGgubWF4KDAsYS10Lmxlbmd0aCsxKTtjPD1sO2MrKyl7dmFyIHU9YS1jLGY9KDB8dC53b3Jkc1t1XSkqKDB8ZS53b3Jkc1tjXSksaD02NzEwODg2MyZmO3M9NjcxMDg4NjMmKGg9aCtzfDApLGkrPShvPShvPW8rKGYvNjcxMDg4NjR8MCl8MCkrKGg+Pj4yNil8MCk+Pj4yNixvJj02NzEwODg2M31yLndvcmRzW2FdPXMsbj1vLG89aX1yZXR1cm4gMCE9PW4/ci53b3Jkc1thXT1uOnIubGVuZ3RoLS0sci5zdHJpcCgpfSh0aGlzLHQsZSk6bSh0aGlzLHQsZSl9LGcucHJvdG90eXBlLm1ha2VSQlQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPW5ldyBBcnJheSh0KSxyPWEucHJvdG90eXBlLl9jb3VudEJpdHModCktMSxuPTA7bjx0O24rKyllW25dPXRoaXMucmV2QmluKG4scix0KTtyZXR1cm4gZX0sZy5wcm90b3R5cGUucmV2QmluPWZ1bmN0aW9uKHQsZSxyKXtpZigwPT09dHx8dD09PXItMSlyZXR1cm4gdDtmb3IodmFyIG49MCxpPTA7aTxlO2krKylufD0oMSZ0KTw8ZS1pLTEsdD4+PTE7cmV0dXJuIG59LGcucHJvdG90eXBlLnBlcm11dGU9ZnVuY3Rpb24odCxlLHIsbixpLGEpe2Zvcih2YXIgbz0wO288YTtvKyspbltvXT1lW3Rbb11dLGlbb109clt0W29dXX0sZy5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKHQsZSxyLG4saSxhKXt0aGlzLnBlcm11dGUoYSx0LGUscixuLGkpO2Zvcih2YXIgbz0xO288aTtvPDw9MSlmb3IodmFyIHM9bzw8MSxsPU1hdGguY29zKDIqTWF0aC5QSS9zKSxjPU1hdGguc2luKDIqTWF0aC5QSS9zKSx1PTA7dTxpO3UrPXMpZm9yKHZhciBmPWwsaD1jLHA9MDtwPG87cCsrKXt2YXIgZD1yW3UrcF0sbT1uW3UrcF0sZz1yW3UrcCtvXSx2PW5bdStwK29dLHk9ZipnLWgqdjt2PWYqditoKmcsZz15LHJbdStwXT1kK2csblt1K3BdPW0rdixyW3UrcCtvXT1kLWcsblt1K3Arb109bS12LHAhPT1zJiYoeT1sKmYtYypoLGg9bCpoK2MqZixmPXkpfX0sZy5wcm90b3R5cGUuZ3Vlc3NMZW4xM2I9ZnVuY3Rpb24odCxlKXt2YXIgcj0xfE1hdGgubWF4KGUsdCksbj0xJnIsaT0wO2ZvcihyPXIvMnwwO3I7cj4+Pj0xKWkrKztyZXR1cm4gMTw8aSsxK259LGcucHJvdG90eXBlLmNvbmp1Z2F0ZT1mdW5jdGlvbih0LGUscil7aWYoIShyPD0xKSlmb3IodmFyIG49MDtuPHIvMjtuKyspe3ZhciBpPXRbbl07dFtuXT10W3Itbi0xXSx0W3Itbi0xXT1pLGk9ZVtuXSxlW25dPS1lW3Itbi0xXSxlW3Itbi0xXT0taX19LGcucHJvdG90eXBlLm5vcm1hbGl6ZTEzYj1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wLG49MDtuPGUvMjtuKyspe3ZhciBpPTgxOTIqTWF0aC5yb3VuZCh0WzIqbisxXS9lKStNYXRoLnJvdW5kKHRbMipuXS9lKStyO3Rbbl09NjcxMDg4NjMmaSxyPWk8NjcxMDg4NjQ/MDppLzY3MTA4ODY0fDB9cmV0dXJuIHR9LGcucHJvdG90eXBlLmNvbnZlcnQxM2I9ZnVuY3Rpb24odCxlLHIsaSl7Zm9yKHZhciBhPTAsbz0wO288ZTtvKyspYSs9MHx0W29dLHJbMipvXT04MTkxJmEsYT4+Pj0xMyxyWzIqbysxXT04MTkxJmEsYT4+Pj0xMztmb3Iobz0yKmU7bzxpOysrbylyW29dPTA7bigwPT09YSksbigwPT0oLTgxOTImYSkpfSxnLnByb3RvdHlwZS5zdHViPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1uZXcgQXJyYXkodCkscj0wO3I8dDtyKyspZVtyXT0wO3JldHVybiBlfSxnLnByb3RvdHlwZS5tdWxwPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj0yKnRoaXMuZ3Vlc3NMZW4xM2IodC5sZW5ndGgsZS5sZW5ndGgpLGk9dGhpcy5tYWtlUkJUKG4pLGE9dGhpcy5zdHViKG4pLG89bmV3IEFycmF5KG4pLHM9bmV3IEFycmF5KG4pLGw9bmV3IEFycmF5KG4pLGM9bmV3IEFycmF5KG4pLHU9bmV3IEFycmF5KG4pLGY9bmV3IEFycmF5KG4pLGg9ci53b3JkcztoLmxlbmd0aD1uLHRoaXMuY29udmVydDEzYih0LndvcmRzLHQubGVuZ3RoLG8sbiksdGhpcy5jb252ZXJ0MTNiKGUud29yZHMsZS5sZW5ndGgsYyxuKSx0aGlzLnRyYW5zZm9ybShvLGEscyxsLG4saSksdGhpcy50cmFuc2Zvcm0oYyxhLHUsZixuLGkpO2Zvcih2YXIgcD0wO3A8bjtwKyspe3ZhciBkPXNbcF0qdVtwXS1sW3BdKmZbcF07bFtwXT1zW3BdKmZbcF0rbFtwXSp1W3BdLHNbcF09ZH1yZXR1cm4gdGhpcy5jb25qdWdhdGUocyxsLG4pLHRoaXMudHJhbnNmb3JtKHMsbCxoLGEsbixpKSx0aGlzLmNvbmp1Z2F0ZShoLGEsbiksdGhpcy5ub3JtYWxpemUxM2IoaCxuKSxyLm5lZ2F0aXZlPXQubmVnYXRpdmVeZS5uZWdhdGl2ZSxyLmxlbmd0aD10Lmxlbmd0aCtlLmxlbmd0aCxyLnN0cmlwKCl9LGEucHJvdG90eXBlLm11bD1mdW5jdGlvbih0KXt2YXIgZT1uZXcgYShudWxsKTtyZXR1cm4gZS53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrdC5sZW5ndGgpLHRoaXMubXVsVG8odCxlKX0sYS5wcm90b3R5cGUubXVsZj1mdW5jdGlvbih0KXt2YXIgZT1uZXcgYShudWxsKTtyZXR1cm4gZS53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrdC5sZW5ndGgpLG0odGhpcyx0LGUpfSxhLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkubXVsVG8odCx0aGlzKX0sYS5wcm90b3R5cGUuaW11bG49ZnVuY3Rpb24odCl7bigibnVtYmVyIj09dHlwZW9mIHQpLG4odDw2NzEwODg2NCk7Zm9yKHZhciBlPTAscj0wO3I8dGhpcy5sZW5ndGg7cisrKXt2YXIgaT0oMHx0aGlzLndvcmRzW3JdKSp0LGE9KDY3MTA4ODYzJmkpKyg2NzEwODg2MyZlKTtlPj49MjYsZSs9aS82NzEwODg2NHwwLGUrPWE+Pj4yNix0aGlzLndvcmRzW3JdPTY3MTA4ODYzJmF9cmV0dXJuIDAhPT1lJiYodGhpcy53b3Jkc1tyXT1lLHRoaXMubGVuZ3RoKyspLHRoaXN9LGEucHJvdG90eXBlLm11bG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbXVsbih0KX0sYS5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXVsKHRoaXMpfSxhLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW11bCh0aGlzLmNsb25lKCkpfSxhLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24odCl7dmFyIGU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPW5ldyBBcnJheSh0LmJpdExlbmd0aCgpKSxyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBuPXIvMjZ8MCxpPXIlMjY7ZVtyXT0odC53b3Jkc1tuXSYxPDxpKT4+Pml9cmV0dXJuIGV9KHQpO2lmKDA9PT1lLmxlbmd0aClyZXR1cm4gbmV3IGEoMSk7Zm9yKHZhciByPXRoaXMsbj0wO248ZS5sZW5ndGgmJjA9PT1lW25dO24rKyxyPXIuc3FyKCkpO2lmKCsrbjxlLmxlbmd0aClmb3IodmFyIGk9ci5zcXIoKTtuPGUubGVuZ3RoO24rKyxpPWkuc3FyKCkpMCE9PWVbbl0mJihyPXIubXVsKGkpKTtyZXR1cm4gcn0sYS5wcm90b3R5cGUuaXVzaGxuPWZ1bmN0aW9uKHQpe24oIm51bWJlciI9PXR5cGVvZiB0JiZ0Pj0wKTt2YXIgZSxyPXQlMjYsaT0odC1yKS8yNixhPTY3MTA4ODYzPj4+MjYtcjw8MjYtcjtpZigwIT09cil7dmFyIG89MDtmb3IoZT0wO2U8dGhpcy5sZW5ndGg7ZSsrKXt2YXIgcz10aGlzLndvcmRzW2VdJmEsbD0oMHx0aGlzLndvcmRzW2VdKS1zPDxyO3RoaXMud29yZHNbZV09bHxvLG89cz4+PjI2LXJ9byYmKHRoaXMud29yZHNbZV09byx0aGlzLmxlbmd0aCsrKX1pZigwIT09aSl7Zm9yKGU9dGhpcy5sZW5ndGgtMTtlPj0wO2UtLSl0aGlzLndvcmRzW2UraV09dGhpcy53b3Jkc1tlXTtmb3IoZT0wO2U8aTtlKyspdGhpcy53b3Jkc1tlXT0wO3RoaXMubGVuZ3RoKz1pfXJldHVybiB0aGlzLnN0cmlwKCl9LGEucHJvdG90eXBlLmlzaGxuPWZ1bmN0aW9uKHQpe3JldHVybiBuKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hsbih0KX0sYS5wcm90b3R5cGUuaXVzaHJuPWZ1bmN0aW9uKHQsZSxyKXt2YXIgaTtuKCJudW1iZXIiPT10eXBlb2YgdCYmdD49MCksaT1lPyhlLWUlMjYpLzI2OjA7dmFyIGE9dCUyNixvPU1hdGgubWluKCh0LWEpLzI2LHRoaXMubGVuZ3RoKSxzPTY3MTA4ODYzXjY3MTA4ODYzPj4+YTw8YSxsPXI7aWYoaS09byxpPU1hdGgubWF4KDAsaSksbCl7Zm9yKHZhciBjPTA7YzxvO2MrKylsLndvcmRzW2NdPXRoaXMud29yZHNbY107bC5sZW5ndGg9b31pZigwPT09byk7ZWxzZSBpZih0aGlzLmxlbmd0aD5vKWZvcih0aGlzLmxlbmd0aC09byxjPTA7Yzx0aGlzLmxlbmd0aDtjKyspdGhpcy53b3Jkc1tjXT10aGlzLndvcmRzW2Mrb107ZWxzZSB0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MTt2YXIgdT0wO2ZvcihjPXRoaXMubGVuZ3RoLTE7Yz49MCYmKDAhPT11fHxjPj1pKTtjLS0pe3ZhciBmPTB8dGhpcy53b3Jkc1tjXTt0aGlzLndvcmRzW2NdPXU8PDI2LWF8Zj4+PmEsdT1mJnN9cmV0dXJuIGwmJjAhPT11JiYobC53b3Jkc1tsLmxlbmd0aCsrXT11KSwwPT09dGhpcy5sZW5ndGgmJih0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MSksdGhpcy5zdHJpcCgpfSxhLnByb3RvdHlwZS5pc2hybj1mdW5jdGlvbih0LGUscil7cmV0dXJuIG4oMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaHJuKHQsZSxyKX0sYS5wcm90b3R5cGUuc2hsbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaGxuKHQpfSxhLnByb3RvdHlwZS51c2hsbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hsbih0KX0sYS5wcm90b3R5cGUuc2hybj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaHJuKHQpfSxhLnByb3RvdHlwZS51c2hybj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hybih0KX0sYS5wcm90b3R5cGUudGVzdG49ZnVuY3Rpb24odCl7bigibnVtYmVyIj09dHlwZW9mIHQmJnQ+PTApO3ZhciBlPXQlMjYscj0odC1lKS8yNixpPTE8PGU7cmV0dXJuISh0aGlzLmxlbmd0aDw9cikmJiEhKHRoaXMud29yZHNbcl0maSl9LGEucHJvdG90eXBlLmltYXNrbj1mdW5jdGlvbih0KXtuKCJudW1iZXIiPT10eXBlb2YgdCYmdD49MCk7dmFyIGU9dCUyNixyPSh0LWUpLzI2O2lmKG4oMD09PXRoaXMubmVnYXRpdmUsImltYXNrbiB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmUgbnVtYmVycyIpLHRoaXMubGVuZ3RoPD1yKXJldHVybiB0aGlzO2lmKDAhPT1lJiZyKyssdGhpcy5sZW5ndGg9TWF0aC5taW4ocix0aGlzLmxlbmd0aCksMCE9PWUpe3ZhciBpPTY3MTA4ODYzXjY3MTA4ODYzPj4+ZTw8ZTt0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdJj1pfXJldHVybiB0aGlzLnN0cmlwKCl9LGEucHJvdG90eXBlLm1hc2tuPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkuaW1hc2tuKHQpfSxhLnByb3RvdHlwZS5pYWRkbj1mdW5jdGlvbih0KXtyZXR1cm4gbigibnVtYmVyIj09dHlwZW9mIHQpLG4odDw2NzEwODg2NCksdDwwP3RoaXMuaXN1Ym4oLXQpOjAhPT10aGlzLm5lZ2F0aXZlPzE9PT10aGlzLmxlbmd0aCYmKDB8dGhpcy53b3Jkc1swXSk8dD8odGhpcy53b3Jkc1swXT10LSgwfHRoaXMud29yZHNbMF0pLHRoaXMubmVnYXRpdmU9MCx0aGlzKToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4odCksdGhpcy5uZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lhZGRuKHQpfSxhLnByb3RvdHlwZS5faWFkZG49ZnVuY3Rpb24odCl7dGhpcy53b3Jkc1swXSs9dDtmb3IodmFyIGU9MDtlPHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW2VdPj02NzEwODg2NDtlKyspdGhpcy53b3Jkc1tlXS09NjcxMDg4NjQsZT09PXRoaXMubGVuZ3RoLTE/dGhpcy53b3Jkc1tlKzFdPTE6dGhpcy53b3Jkc1tlKzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLGUrMSksdGhpc30sYS5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24odCl7aWYobigibnVtYmVyIj09dHlwZW9mIHQpLG4odDw2NzEwODg2NCksdDwwKXJldHVybiB0aGlzLmlhZGRuKC10KTtpZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZG4odCksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jkc1swXS09dCwxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBdLHRoaXMubmVnYXRpdmU9MTtlbHNlIGZvcih2YXIgZT0wO2U8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbZV08MDtlKyspdGhpcy53b3Jkc1tlXSs9NjcxMDg4NjQsdGhpcy53b3Jkc1tlKzFdLT0xO3JldHVybiB0aGlzLnN0cmlwKCl9LGEucHJvdG90eXBlLmFkZG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWRkbih0KX0sYS5wcm90b3R5cGUuc3Vibj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJuKHQpfSxhLnByb3RvdHlwZS5pYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzfSxhLnByb3RvdHlwZS5hYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhYnMoKX0sYS5wcm90b3R5cGUuX2lzaGxuc3VibXVsPWZ1bmN0aW9uKHQsZSxyKXt2YXIgaSxhLG89dC5sZW5ndGgrcjt0aGlzLl9leHBhbmQobyk7dmFyIHM9MDtmb3IoaT0wO2k8dC5sZW5ndGg7aSsrKXthPSgwfHRoaXMud29yZHNbaStyXSkrczt2YXIgbD0oMHx0LndvcmRzW2ldKSplO3M9KChhLT02NzEwODg2MyZsKT4+MjYpLShsLzY3MTA4ODY0fDApLHRoaXMud29yZHNbaStyXT02NzEwODg2MyZhfWZvcig7aTx0aGlzLmxlbmd0aC1yO2krKylzPShhPSgwfHRoaXMud29yZHNbaStyXSkrcyk+PjI2LHRoaXMud29yZHNbaStyXT02NzEwODg2MyZhO2lmKDA9PT1zKXJldHVybiB0aGlzLnN0cmlwKCk7Zm9yKG4oLTE9PT1zKSxzPTAsaT0wO2k8dGhpcy5sZW5ndGg7aSsrKXM9KGE9LSgwfHRoaXMud29yZHNbaV0pK3MpPj4yNix0aGlzLndvcmRzW2ldPTY3MTA4ODYzJmE7cmV0dXJuIHRoaXMubmVnYXRpdmU9MSx0aGlzLnN0cmlwKCl9LGEucHJvdG90eXBlLl93b3JkRGl2PWZ1bmN0aW9uKHQsZSl7dmFyIHI9KHRoaXMubGVuZ3RoLHQubGVuZ3RoKSxuPXRoaXMuY2xvbmUoKSxpPXQsbz0wfGkud29yZHNbaS5sZW5ndGgtMV07MCE9PShyPTI2LXRoaXMuX2NvdW50Qml0cyhvKSkmJihpPWkudXNobG4ociksbi5pdXNobG4ociksbz0wfGkud29yZHNbaS5sZW5ndGgtMV0pO3ZhciBzLGw9bi5sZW5ndGgtaS5sZW5ndGg7aWYoIm1vZCIhPT1lKXsocz1uZXcgYShudWxsKSkubGVuZ3RoPWwrMSxzLndvcmRzPW5ldyBBcnJheShzLmxlbmd0aCk7Zm9yKHZhciBjPTA7YzxzLmxlbmd0aDtjKyspcy53b3Jkc1tjXT0wfXZhciB1PW4uY2xvbmUoKS5faXNobG5zdWJtdWwoaSwxLGwpOzA9PT11Lm5lZ2F0aXZlJiYobj11LHMmJihzLndvcmRzW2xdPTEpKTtmb3IodmFyIGY9bC0xO2Y+PTA7Zi0tKXt2YXIgaD02NzEwODg2NCooMHxuLndvcmRzW2kubGVuZ3RoK2ZdKSsoMHxuLndvcmRzW2kubGVuZ3RoK2YtMV0pO2ZvcihoPU1hdGgubWluKGgvb3wwLDY3MTA4ODYzKSxuLl9pc2hsbnN1Ym11bChpLGgsZik7MCE9PW4ubmVnYXRpdmU7KWgtLSxuLm5lZ2F0aXZlPTAsbi5faXNobG5zdWJtdWwoaSwxLGYpLG4uaXNaZXJvKCl8fChuLm5lZ2F0aXZlXj0xKTtzJiYocy53b3Jkc1tmXT1oKX1yZXR1cm4gcyYmcy5zdHJpcCgpLG4uc3RyaXAoKSwiZGl2IiE9PWUmJjAhPT1yJiZuLml1c2hybihyKSx7ZGl2OnN8fG51bGwsbW9kOm59fSxhLnByb3RvdHlwZS5kaXZtb2Q9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBuKCF0LmlzWmVybygpKSx0aGlzLmlzWmVybygpP3tkaXY6bmV3IGEoMCksbW9kOm5ldyBhKDApfTowIT09dGhpcy5uZWdhdGl2ZSYmMD09PXQubmVnYXRpdmU/KHM9dGhpcy5uZWcoKS5kaXZtb2QodCxlKSwibW9kIiE9PWUmJihpPXMuZGl2Lm5lZygpKSwiZGl2IiE9PWUmJihvPXMubW9kLm5lZygpLHImJjAhPT1vLm5lZ2F0aXZlJiZvLmlhZGQodCkpLHtkaXY6aSxtb2Q6b30pOjA9PT10aGlzLm5lZ2F0aXZlJiYwIT09dC5uZWdhdGl2ZT8ocz10aGlzLmRpdm1vZCh0Lm5lZygpLGUpLCJtb2QiIT09ZSYmKGk9cy5kaXYubmVnKCkpLHtkaXY6aSxtb2Q6cy5tb2R9KTowIT0odGhpcy5uZWdhdGl2ZSZ0Lm5lZ2F0aXZlKT8ocz10aGlzLm5lZygpLmRpdm1vZCh0Lm5lZygpLGUpLCJkaXYiIT09ZSYmKG89cy5tb2QubmVnKCksciYmMCE9PW8ubmVnYXRpdmUmJm8uaXN1Yih0KSkse2RpdjpzLmRpdixtb2Q6b30pOnQubGVuZ3RoPnRoaXMubGVuZ3RofHx0aGlzLmNtcCh0KTwwP3tkaXY6bmV3IGEoMCksbW9kOnRoaXN9OjE9PT10Lmxlbmd0aD8iZGl2Ij09PWU/e2Rpdjp0aGlzLmRpdm4odC53b3Jkc1swXSksbW9kOm51bGx9OiJtb2QiPT09ZT97ZGl2Om51bGwsbW9kOm5ldyBhKHRoaXMubW9kbih0LndvcmRzWzBdKSl9OntkaXY6dGhpcy5kaXZuKHQud29yZHNbMF0pLG1vZDpuZXcgYSh0aGlzLm1vZG4odC53b3Jkc1swXSkpfTp0aGlzLl93b3JkRGl2KHQsZSk7dmFyIGksbyxzfSxhLnByb3RvdHlwZS5kaXY9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZGl2bW9kKHQsImRpdiIsITEpLmRpdn0sYS5wcm90b3R5cGUubW9kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmRpdm1vZCh0LCJtb2QiLCExKS5tb2R9LGEucHJvdG90eXBlLnVtb2Q9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZGl2bW9kKHQsIm1vZCIsITApLm1vZH0sYS5wcm90b3R5cGUuZGl2Um91bmQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5kaXZtb2QodCk7aWYoZS5tb2QuaXNaZXJvKCkpcmV0dXJuIGUuZGl2O3ZhciByPTAhPT1lLmRpdi5uZWdhdGl2ZT9lLm1vZC5pc3ViKHQpOmUubW9kLG49dC51c2hybigxKSxpPXQuYW5kbG4oMSksYT1yLmNtcChuKTtyZXR1cm4gYTwwfHwxPT09aSYmMD09PWE/ZS5kaXY6MCE9PWUuZGl2Lm5lZ2F0aXZlP2UuZGl2LmlzdWJuKDEpOmUuZGl2LmlhZGRuKDEpfSxhLnByb3RvdHlwZS5tb2RuPWZ1bmN0aW9uKHQpe24odDw9NjcxMDg4NjMpO2Zvcih2YXIgZT0oMTw8MjYpJXQscj0wLGk9dGhpcy5sZW5ndGgtMTtpPj0wO2ktLSlyPShlKnIrKDB8dGhpcy53b3Jkc1tpXSkpJXQ7cmV0dXJuIHJ9LGEucHJvdG90eXBlLmlkaXZuPWZ1bmN0aW9uKHQpe24odDw9NjcxMDg4NjMpO2Zvcih2YXIgZT0wLHI9dGhpcy5sZW5ndGgtMTtyPj0wO3ItLSl7dmFyIGk9KDB8dGhpcy53b3Jkc1tyXSkrNjcxMDg4NjQqZTt0aGlzLndvcmRzW3JdPWkvdHwwLGU9aSV0fXJldHVybiB0aGlzLnN0cmlwKCl9LGEucHJvdG90eXBlLmRpdm49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pZGl2bih0KX0sYS5wcm90b3R5cGUuZWdjZD1mdW5jdGlvbih0KXtuKDA9PT10Lm5lZ2F0aXZlKSxuKCF0LmlzWmVybygpKTt2YXIgZT10aGlzLHI9dC5jbG9uZSgpO2U9MCE9PWUubmVnYXRpdmU/ZS51bW9kKHQpOmUuY2xvbmUoKTtmb3IodmFyIGk9bmV3IGEoMSksbz1uZXcgYSgwKSxzPW5ldyBhKDApLGw9bmV3IGEoMSksYz0wO2UuaXNFdmVuKCkmJnIuaXNFdmVuKCk7KWUuaXVzaHJuKDEpLHIuaXVzaHJuKDEpLCsrYztmb3IodmFyIHU9ci5jbG9uZSgpLGY9ZS5jbG9uZSgpOyFlLmlzWmVybygpOyl7Zm9yKHZhciBoPTAscD0xOzA9PShlLndvcmRzWzBdJnApJiZoPDI2OysraCxwPDw9MSk7aWYoaD4wKWZvcihlLml1c2hybihoKTtoLS0gPjA7KShpLmlzT2RkKCl8fG8uaXNPZGQoKSkmJihpLmlhZGQodSksby5pc3ViKGYpKSxpLml1c2hybigxKSxvLml1c2hybigxKTtmb3IodmFyIGQ9MCxtPTE7MD09KHIud29yZHNbMF0mbSkmJmQ8MjY7KytkLG08PD0xKTtpZihkPjApZm9yKHIuaXVzaHJuKGQpO2QtLSA+MDspKHMuaXNPZGQoKXx8bC5pc09kZCgpKSYmKHMuaWFkZCh1KSxsLmlzdWIoZikpLHMuaXVzaHJuKDEpLGwuaXVzaHJuKDEpO2UuY21wKHIpPj0wPyhlLmlzdWIociksaS5pc3ViKHMpLG8uaXN1YihsKSk6KHIuaXN1YihlKSxzLmlzdWIoaSksbC5pc3ViKG8pKX1yZXR1cm57YTpzLGI6bCxnY2Q6ci5pdXNobG4oYyl9fSxhLnByb3RvdHlwZS5faW52bXA9ZnVuY3Rpb24odCl7bigwPT09dC5uZWdhdGl2ZSksbighdC5pc1plcm8oKSk7dmFyIGU9dGhpcyxyPXQuY2xvbmUoKTtlPTAhPT1lLm5lZ2F0aXZlP2UudW1vZCh0KTplLmNsb25lKCk7Zm9yKHZhciBpLG89bmV3IGEoMSkscz1uZXcgYSgwKSxsPXIuY2xvbmUoKTtlLmNtcG4oMSk+MCYmci5jbXBuKDEpPjA7KXtmb3IodmFyIGM9MCx1PTE7MD09KGUud29yZHNbMF0mdSkmJmM8MjY7KytjLHU8PD0xKTtpZihjPjApZm9yKGUuaXVzaHJuKGMpO2MtLSA+MDspby5pc09kZCgpJiZvLmlhZGQobCksby5pdXNocm4oMSk7Zm9yKHZhciBmPTAsaD0xOzA9PShyLndvcmRzWzBdJmgpJiZmPDI2OysrZixoPDw9MSk7aWYoZj4wKWZvcihyLml1c2hybihmKTtmLS0gPjA7KXMuaXNPZGQoKSYmcy5pYWRkKGwpLHMuaXVzaHJuKDEpO2UuY21wKHIpPj0wPyhlLmlzdWIociksby5pc3ViKHMpKTooci5pc3ViKGUpLHMuaXN1YihvKSl9cmV0dXJuKGk9MD09PWUuY21wbigxKT9vOnMpLmNtcG4oMCk8MCYmaS5pYWRkKHQpLGl9LGEucHJvdG90eXBlLmdjZD1mdW5jdGlvbih0KXtpZih0aGlzLmlzWmVybygpKXJldHVybiB0LmFicygpO2lmKHQuaXNaZXJvKCkpcmV0dXJuIHRoaXMuYWJzKCk7dmFyIGU9dGhpcy5jbG9uZSgpLHI9dC5jbG9uZSgpO2UubmVnYXRpdmU9MCxyLm5lZ2F0aXZlPTA7Zm9yKHZhciBuPTA7ZS5pc0V2ZW4oKSYmci5pc0V2ZW4oKTtuKyspZS5pdXNocm4oMSksci5pdXNocm4oMSk7Zm9yKDs7KXtmb3IoO2UuaXNFdmVuKCk7KWUuaXVzaHJuKDEpO2Zvcig7ci5pc0V2ZW4oKTspci5pdXNocm4oMSk7dmFyIGk9ZS5jbXAocik7aWYoaTwwKXt2YXIgYT1lO2U9cixyPWF9ZWxzZSBpZigwPT09aXx8MD09PXIuY21wbigxKSlicmVhaztlLmlzdWIocil9cmV0dXJuIHIuaXVzaGxuKG4pfSxhLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmVnY2QodCkuYS51bW9kKHQpfSxhLnByb3RvdHlwZS5pc0V2ZW49ZnVuY3Rpb24oKXtyZXR1cm4gMD09KDEmdGhpcy53b3Jkc1swXSl9LGEucHJvdG90eXBlLmlzT2RkPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PSgxJnRoaXMud29yZHNbMF0pfSxhLnByb3RvdHlwZS5hbmRsbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy53b3Jkc1swXSZ0fSxhLnByb3RvdHlwZS5iaW5jbj1mdW5jdGlvbih0KXtuKCJudW1iZXIiPT10eXBlb2YgdCk7dmFyIGU9dCUyNixyPSh0LWUpLzI2LGk9MTw8ZTtpZih0aGlzLmxlbmd0aDw9cilyZXR1cm4gdGhpcy5fZXhwYW5kKHIrMSksdGhpcy53b3Jkc1tyXXw9aSx0aGlzO2Zvcih2YXIgYT1pLG89cjswIT09YSYmbzx0aGlzLmxlbmd0aDtvKyspe3ZhciBzPTB8dGhpcy53b3Jkc1tvXTthPShzKz1hKT4+PjI2LHMmPTY3MTA4ODYzLHRoaXMud29yZHNbb109c31yZXR1cm4gMCE9PWEmJih0aGlzLndvcmRzW29dPWEsdGhpcy5sZW5ndGgrKyksdGhpc30sYS5wcm90b3R5cGUuaXNaZXJvPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF19LGEucHJvdG90eXBlLmNtcG49ZnVuY3Rpb24odCl7dmFyIGUscj10PDA7aWYoMCE9PXRoaXMubmVnYXRpdmUmJiFyKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiZyKXJldHVybiAxO2lmKHRoaXMuc3RyaXAoKSx0aGlzLmxlbmd0aD4xKWU9MTtlbHNle3ImJih0PS10KSxuKHQ8PTY3MTA4ODYzLCJOdW1iZXIgaXMgdG9vIGJpZyIpO3ZhciBpPTB8dGhpcy53b3Jkc1swXTtlPWk9PT10PzA6aTx0Py0xOjF9cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LWU6ZX0sYS5wcm90b3R5cGUuY21wPWZ1bmN0aW9uKHQpe2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09dC5uZWdhdGl2ZSlyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PXQubmVnYXRpdmUpcmV0dXJuIDE7dmFyIGU9dGhpcy51Y21wKHQpO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC1lOmV9LGEucHJvdG90eXBlLnVjbXA9ZnVuY3Rpb24odCl7aWYodGhpcy5sZW5ndGg+dC5sZW5ndGgpcmV0dXJuIDE7aWYodGhpcy5sZW5ndGg8dC5sZW5ndGgpcmV0dXJuLTE7Zm9yKHZhciBlPTAscj10aGlzLmxlbmd0aC0xO3I+PTA7ci0tKXt2YXIgbj0wfHRoaXMud29yZHNbcl0saT0wfHQud29yZHNbcl07aWYobiE9PWkpe248aT9lPS0xOm4+aSYmKGU9MSk7YnJlYWt9fXJldHVybiBlfSxhLnByb3RvdHlwZS5ndG49ZnVuY3Rpb24odCl7cmV0dXJuIDE9PT10aGlzLmNtcG4odCl9LGEucHJvdG90eXBlLmd0PWZ1bmN0aW9uKHQpe3JldHVybiAxPT09dGhpcy5jbXAodCl9LGEucHJvdG90eXBlLmd0ZW49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY21wbih0KT49MH0sYS5wcm90b3R5cGUuZ3RlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNtcCh0KT49MH0sYS5wcm90b3R5cGUubHRuPWZ1bmN0aW9uKHQpe3JldHVybi0xPT09dGhpcy5jbXBuKHQpfSxhLnByb3RvdHlwZS5sdD1mdW5jdGlvbih0KXtyZXR1cm4tMT09PXRoaXMuY21wKHQpfSxhLnByb3RvdHlwZS5sdGVuPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNtcG4odCk8PTB9LGEucHJvdG90eXBlLmx0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbXAodCk8PTB9LGEucHJvdG90eXBlLmVxbj1mdW5jdGlvbih0KXtyZXR1cm4gMD09PXRoaXMuY21wbih0KX0sYS5wcm90b3R5cGUuZXE9ZnVuY3Rpb24odCl7cmV0dXJuIDA9PT10aGlzLmNtcCh0KX0sYS5yZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBUKHQpfSxhLnByb3RvdHlwZS50b1JlZD1mdW5jdGlvbih0KXtyZXR1cm4gbighdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSxuKDA9PT10aGlzLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLHQuY29udmVydFRvKHRoaXMpLl9mb3JjZVJlZCh0KX0sYS5wcm90b3R5cGUuZnJvbVJlZD1mdW5jdGlvbigpe3JldHVybiBuKHRoaXMucmVkLCJmcm9tUmVkIHdvcmtzIG9ubHkgd2l0aCBudW1iZXJzIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5yZWQuY29udmVydEZyb20odGhpcyl9LGEucHJvdG90eXBlLl9mb3JjZVJlZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yZWQ9dCx0aGlzfSxhLnByb3RvdHlwZS5mb3JjZVJlZD1mdW5jdGlvbih0KXtyZXR1cm4gbighdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLl9mb3JjZVJlZCh0KX0sYS5wcm90b3R5cGUucmVkQWRkPWZ1bmN0aW9uKHQpe3JldHVybiBuKHRoaXMucmVkLCJyZWRBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuYWRkKHRoaXMsdCl9LGEucHJvdG90eXBlLnJlZElBZGQ9ZnVuY3Rpb24odCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZElBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaWFkZCh0aGlzLHQpfSxhLnByb3RvdHlwZS5yZWRTdWI9ZnVuY3Rpb24odCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZFN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zdWIodGhpcyx0KX0sYS5wcm90b3R5cGUucmVkSVN1Yj1mdW5jdGlvbih0KXtyZXR1cm4gbih0aGlzLnJlZCwicmVkSVN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pc3ViKHRoaXMsdCl9LGEucHJvdG90eXBlLnJlZFNobD1mdW5jdGlvbih0KXtyZXR1cm4gbih0aGlzLnJlZCwicmVkU2hsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnNobCh0aGlzLHQpfSxhLnByb3RvdHlwZS5yZWRNdWw9ZnVuY3Rpb24odCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLHQpLHRoaXMucmVkLm11bCh0aGlzLHQpfSxhLnByb3RvdHlwZS5yZWRJTXVsPWZ1bmN0aW9uKHQpe3JldHVybiBuKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyx0KSx0aGlzLnJlZC5pbXVsKHRoaXMsdCl9LGEucHJvdG90eXBlLnJlZFNxcj1mdW5jdGlvbigpe3JldHVybiBuKHRoaXMucmVkLCJyZWRTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FyKHRoaXMpfSxhLnByb3RvdHlwZS5yZWRJU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZElTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaXNxcih0aGlzKX0sYS5wcm90b3R5cGUucmVkU3FydD1mdW5jdGlvbigpe3JldHVybiBuKHRoaXMucmVkLCJyZWRTcXJ0IHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcnQodGhpcyl9LGEucHJvdG90eXBlLnJlZEludm09ZnVuY3Rpb24oKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkSW52bSB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pbnZtKHRoaXMpfSxhLnByb3RvdHlwZS5yZWROZWc9ZnVuY3Rpb24oKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkTmVnIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLm5lZyh0aGlzKX0sYS5wcm90b3R5cGUucmVkUG93PWZ1bmN0aW9uKHQpe3JldHVybiBuKHRoaXMucmVkJiYhdC5yZWQsInJlZFBvdyhub3JtYWxOdW0pIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQucG93KHRoaXMsdCl9O3ZhciB2PXtrMjU2Om51bGwscDIyNDpudWxsLHAxOTI6bnVsbCxwMjU1MTk6bnVsbH07ZnVuY3Rpb24geSh0LGUpe3RoaXMubmFtZT10LHRoaXMucD1uZXcgYShlLDE2KSx0aGlzLm49dGhpcy5wLmJpdExlbmd0aCgpLHRoaXMuaz1uZXcgYSgxKS5pdXNobG4odGhpcy5uKS5pc3ViKHRoaXMucCksdGhpcy50bXA9dGhpcy5fdG1wKCl9ZnVuY3Rpb24geCgpe3kuY2FsbCh0aGlzLCJrMjU2IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5jdGlvbiBiKCl7eS5jYWxsKHRoaXMsInAyMjQiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIpfWZ1bmN0aW9uIF8oKXt5LmNhbGwodGhpcywicDE5MiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmIil9ZnVuY3Rpb24gdygpe3kuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiBUKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdCl7dmFyIGU9YS5fcHJpbWUodCk7dGhpcy5tPWUucCx0aGlzLnByaW1lPWV9ZWxzZSBuKHQuZ3RuKDEpLCJtb2R1bHVzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDEiKSx0aGlzLm09dCx0aGlzLnByaW1lPW51bGx9ZnVuY3Rpb24gayh0KXtULmNhbGwodGhpcyx0KSx0aGlzLnNoaWZ0PXRoaXMubS5iaXRMZW5ndGgoKSx0aGlzLnNoaWZ0JTI2IT0wJiYodGhpcy5zaGlmdCs9MjYtdGhpcy5zaGlmdCUyNiksdGhpcy5yPW5ldyBhKDEpLml1c2hsbih0aGlzLnNoaWZ0KSx0aGlzLnIyPXRoaXMuaW1vZCh0aGlzLnIuc3FyKCkpLHRoaXMucmludj10aGlzLnIuX2ludm1wKHRoaXMubSksdGhpcy5taW52PXRoaXMucmludi5tdWwodGhpcy5yKS5pc3VibigxKS5kaXYodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5taW52LnVtb2QodGhpcy5yKSx0aGlzLm1pbnY9dGhpcy5yLnN1Yih0aGlzLm1pbnYpfXkucHJvdG90eXBlLl90bXA9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgYShudWxsKTtyZXR1cm4gdC53b3Jkcz1uZXcgQXJyYXkoTWF0aC5jZWlsKHRoaXMubi8xMykpLHR9LHkucHJvdG90eXBlLmlyZWR1Y2U9ZnVuY3Rpb24odCl7dmFyIGUscj10O2Rve3RoaXMuc3BsaXQocix0aGlzLnRtcCksZT0ocj0ocj10aGlzLmltdWxLKHIpKS5pYWRkKHRoaXMudG1wKSkuYml0TGVuZ3RoKCl9d2hpbGUoZT50aGlzLm4pO3ZhciBuPWU8dGhpcy5uPy0xOnIudWNtcCh0aGlzLnApO3JldHVybiAwPT09bj8oci53b3Jkc1swXT0wLHIubGVuZ3RoPTEpOm4+MD9yLmlzdWIodGhpcy5wKTp2b2lkIDAhPT1yLnN0cmlwP3Iuc3RyaXAoKTpyLl9zdHJpcCgpLHJ9LHkucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKHQsZSl7dC5pdXNocm4odGhpcy5uLDAsZSl9LHkucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKHQpe3JldHVybiB0LmltdWwodGhpcy5rKX0saSh4LHkpLHgucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPU1hdGgubWluKHQubGVuZ3RoLDkpLG49MDtuPHI7bisrKWUud29yZHNbbl09dC53b3Jkc1tuXTtpZihlLmxlbmd0aD1yLHQubGVuZ3RoPD05KXJldHVybiB0LndvcmRzWzBdPTAsdm9pZCh0Lmxlbmd0aD0xKTt2YXIgaT10LndvcmRzWzldO2ZvcihlLndvcmRzW2UubGVuZ3RoKytdPTQxOTQzMDMmaSxuPTEwO248dC5sZW5ndGg7bisrKXt2YXIgYT0wfHQud29yZHNbbl07dC53b3Jkc1tuLTEwXT0oNDE5NDMwMyZhKTw8NHxpPj4+MjIsaT1hfWk+Pj49MjIsdC53b3Jkc1tuLTEwXT1pLDA9PT1pJiZ0Lmxlbmd0aD4xMD90Lmxlbmd0aC09MTA6dC5sZW5ndGgtPTl9LHgucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKHQpe3Qud29yZHNbdC5sZW5ndGhdPTAsdC53b3Jkc1t0Lmxlbmd0aCsxXT0wLHQubGVuZ3RoKz0yO2Zvcih2YXIgZT0wLHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIG49MHx0LndvcmRzW3JdO2UrPTk3NypuLHQud29yZHNbcl09NjcxMDg4NjMmZSxlPTY0Km4rKGUvNjcxMDg4NjR8MCl9cmV0dXJuIDA9PT10LndvcmRzW3QubGVuZ3RoLTFdJiYodC5sZW5ndGgtLSwwPT09dC53b3Jkc1t0Lmxlbmd0aC0xXSYmdC5sZW5ndGgtLSksdH0saShiLHkpLGkoXyx5KSxpKHcseSksdy5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAscj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgbj0xOSooMHx0LndvcmRzW3JdKStlLGk9NjcxMDg4NjMmbjtuPj4+PTI2LHQud29yZHNbcl09aSxlPW59cmV0dXJuIDAhPT1lJiYodC53b3Jkc1t0Lmxlbmd0aCsrXT1lKSx0fSxhLl9wcmltZT1mdW5jdGlvbih0KXtpZih2W3RdKXJldHVybiB2W3RdO3ZhciBlO2lmKCJrMjU2Ij09PXQpZT1uZXcgeDtlbHNlIGlmKCJwMjI0Ij09PXQpZT1uZXcgYjtlbHNlIGlmKCJwMTkyIj09PXQpZT1uZXcgXztlbHNle2lmKCJwMjU1MTkiIT09dCl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gcHJpbWUgIit0KTtlPW5ldyB3fXJldHVybiB2W3RdPWUsZX0sVC5wcm90b3R5cGUuX3ZlcmlmeTE9ZnVuY3Rpb24odCl7bigwPT09dC5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxuKHQucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LFQucHJvdG90eXBlLl92ZXJpZnkyPWZ1bmN0aW9uKHQsZSl7bigwPT0odC5uZWdhdGl2ZXxlLm5lZ2F0aXZlKSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxuKHQucmVkJiZ0LnJlZD09PWUucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LFQucHJvdG90eXBlLmltb2Q9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucHJpbWU/dGhpcy5wcmltZS5pcmVkdWNlKHQpLl9mb3JjZVJlZCh0aGlzKTp0LnVtb2QodGhpcy5tKS5fZm9yY2VSZWQodGhpcyl9LFQucHJvdG90eXBlLm5lZz1mdW5jdGlvbih0KXtyZXR1cm4gdC5pc1plcm8oKT90LmNsb25lKCk6dGhpcy5tLnN1Yih0KS5fZm9yY2VSZWQodGhpcyl9LFQucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0LGUpe3RoaXMuX3ZlcmlmeTIodCxlKTt2YXIgcj10LmFkZChlKTtyZXR1cm4gci5jbXAodGhpcy5tKT49MCYmci5pc3ViKHRoaXMubSksci5fZm9yY2VSZWQodGhpcyl9LFQucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24odCxlKXt0aGlzLl92ZXJpZnkyKHQsZSk7dmFyIHI9dC5pYWRkKGUpO3JldHVybiByLmNtcCh0aGlzLm0pPj0wJiZyLmlzdWIodGhpcy5tKSxyfSxULnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24odCxlKXt0aGlzLl92ZXJpZnkyKHQsZSk7dmFyIHI9dC5zdWIoZSk7cmV0dXJuIHIuY21wbigwKTwwJiZyLmlhZGQodGhpcy5tKSxyLl9mb3JjZVJlZCh0aGlzKX0sVC5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbih0LGUpe3RoaXMuX3ZlcmlmeTIodCxlKTt2YXIgcj10LmlzdWIoZSk7cmV0dXJuIHIuY21wbigwKTwwJiZyLmlhZGQodGhpcy5tKSxyfSxULnByb3RvdHlwZS5zaGw9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fdmVyaWZ5MSh0KSx0aGlzLmltb2QodC51c2hsbihlKSl9LFQucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fdmVyaWZ5Mih0LGUpLHRoaXMuaW1vZCh0LmltdWwoZSkpfSxULnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fdmVyaWZ5Mih0LGUpLHRoaXMuaW1vZCh0Lm11bChlKSl9LFQucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaW11bCh0LHQuY2xvbmUoKSl9LFQucHJvdG90eXBlLnNxcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5tdWwodCx0KX0sVC5wcm90b3R5cGUuc3FydD1mdW5jdGlvbih0KXtpZih0LmlzWmVybygpKXJldHVybiB0LmNsb25lKCk7dmFyIGU9dGhpcy5tLmFuZGxuKDMpO2lmKG4oZSUyPT0xKSwzPT09ZSl7dmFyIHI9dGhpcy5tLmFkZChuZXcgYSgxKSkuaXVzaHJuKDIpO3JldHVybiB0aGlzLnBvdyh0LHIpfWZvcih2YXIgaT10aGlzLm0uc3VibigxKSxvPTA7IWkuaXNaZXJvKCkmJjA9PT1pLmFuZGxuKDEpOylvKyssaS5pdXNocm4oMSk7bighaS5pc1plcm8oKSk7dmFyIHM9bmV3IGEoMSkudG9SZWQodGhpcyksbD1zLnJlZE5lZygpLGM9dGhpcy5tLnN1Ym4oMSkuaXVzaHJuKDEpLHU9dGhpcy5tLmJpdExlbmd0aCgpO2Zvcih1PW5ldyBhKDIqdSp1KS50b1JlZCh0aGlzKTswIT09dGhpcy5wb3codSxjKS5jbXAobCk7KXUucmVkSUFkZChsKTtmb3IodmFyIGY9dGhpcy5wb3codSxpKSxoPXRoaXMucG93KHQsaS5hZGRuKDEpLml1c2hybigxKSkscD10aGlzLnBvdyh0LGkpLGQ9bzswIT09cC5jbXAocyk7KXtmb3IodmFyIG09cCxnPTA7MCE9PW0uY21wKHMpO2crKyltPW0ucmVkU3FyKCk7bihnPGQpO3ZhciB2PXRoaXMucG93KGYsbmV3IGEoMSkuaXVzaGxuKGQtZy0xKSk7aD1oLnJlZE11bCh2KSxmPXYucmVkU3FyKCkscD1wLnJlZE11bChmKSxkPWd9cmV0dXJuIGh9LFQucHJvdG90eXBlLmludm09ZnVuY3Rpb24odCl7dmFyIGU9dC5faW52bXAodGhpcy5tKTtyZXR1cm4gMCE9PWUubmVnYXRpdmU/KGUubmVnYXRpdmU9MCx0aGlzLmltb2QoZSkucmVkTmVnKCkpOnRoaXMuaW1vZChlKX0sVC5wcm90b3R5cGUucG93PWZ1bmN0aW9uKHQsZSl7aWYoZS5pc1plcm8oKSlyZXR1cm4gbmV3IGEoMSkudG9SZWQodGhpcyk7aWYoMD09PWUuY21wbigxKSlyZXR1cm4gdC5jbG9uZSgpO3ZhciByPW5ldyBBcnJheSgxNik7clswXT1uZXcgYSgxKS50b1JlZCh0aGlzKSxyWzFdPXQ7Zm9yKHZhciBuPTI7bjxyLmxlbmd0aDtuKyspcltuXT10aGlzLm11bChyW24tMV0sdCk7dmFyIGk9clswXSxvPTAscz0wLGw9ZS5iaXRMZW5ndGgoKSUyNjtmb3IoMD09PWwmJihsPTI2KSxuPWUubGVuZ3RoLTE7bj49MDtuLS0pe2Zvcih2YXIgYz1lLndvcmRzW25dLHU9bC0xO3U+PTA7dS0tKXt2YXIgZj1jPj51JjE7aSE9PXJbMF0mJihpPXRoaXMuc3FyKGkpKSwwIT09Znx8MCE9PW8/KG88PD0xLG98PWYsKDQ9PT0rK3N8fDA9PT1uJiYwPT09dSkmJihpPXRoaXMubXVsKGkscltvXSkscz0wLG89MCkpOnM9MH1sPTI2fXJldHVybiBpfSxULnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24odCl7dmFyIGU9dC51bW9kKHRoaXMubSk7cmV0dXJuIGU9PT10P2UuY2xvbmUoKTplfSxULnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbih0KXt2YXIgZT10LmNsb25lKCk7cmV0dXJuIGUucmVkPW51bGwsZX0sYS5tb250PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgayh0KX0saShrLFQpLGsucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pbW9kKHQudXNobG4odGhpcy5zaGlmdCkpfSxrLnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmltb2QodC5tdWwodGhpcy5yaW52KSk7cmV0dXJuIGUucmVkPW51bGwsZX0say5wcm90b3R5cGUuaW11bD1mdW5jdGlvbih0LGUpe2lmKHQuaXNaZXJvKCl8fGUuaXNaZXJvKCkpcmV0dXJuIHQud29yZHNbMF09MCx0Lmxlbmd0aD0xLHQ7dmFyIHI9dC5pbXVsKGUpLG49ci5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSksaT1yLmlzdWIobikuaXVzaHJuKHRoaXMuc2hpZnQpLGE9aTtyZXR1cm4gaS5jbXAodGhpcy5tKT49MD9hPWkuaXN1Yih0aGlzLm0pOmkuY21wbigwKTwwJiYoYT1pLmlhZGQodGhpcy5tKSksYS5fZm9yY2VSZWQodGhpcyl9LGsucHJvdG90eXBlLm11bD1mdW5jdGlvbih0LGUpe2lmKHQuaXNaZXJvKCl8fGUuaXNaZXJvKCkpcmV0dXJuIG5ldyBhKDApLl9mb3JjZVJlZCh0aGlzKTt2YXIgcj10Lm11bChlKSxuPXIubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLGk9ci5pc3ViKG4pLml1c2hybih0aGlzLnNoaWZ0KSxvPWk7cmV0dXJuIGkuY21wKHRoaXMubSk+PTA/bz1pLmlzdWIodGhpcy5tKTppLmNtcG4oMCk8MCYmKG89aS5pYWRkKHRoaXMubSkpLG8uX2ZvcmNlUmVkKHRoaXMpfSxrLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmltb2QodC5faW52bXAodGhpcy5tKS5tdWwodGhpcy5yMikpLl9mb3JjZVJlZCh0aGlzKX19KHZvaWQgMD09PWV8fGUsdGhpcyl9LHtidWZmZXI6Mn1dLDM0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZSxyLG4saT10Lmxlbmd0aCxhPTA7Zm9yKGU9MDtlPGk7KytlKWErPXRbZV0ubGVuZ3RoO3ZhciBvPW5ldyBBcnJheShhKSxzPTA7Zm9yKGU9MDtlPGk7KytlKXt2YXIgbD10W2VdLGM9bC5sZW5ndGg7Zm9yKHI9MDtyPGM7KytyKXt2YXIgdT1vW3MrK109bmV3IEFycmF5KGMtMSksZj0wO2ZvcihuPTA7bjxjOysrbiluIT09ciYmKHVbZisrXT1sW25dKTtpZigxJnIpe3ZhciBoPXVbMV07dVsxXT11WzBdLHVbMF09aH19fXJldHVybiBvfX0se31dLDM1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7c3dpdGNoKGFyZ3VtZW50cy5sZW5ndGgpe2Nhc2UgMTpyZXR1cm4gZih0KTtjYXNlIDI6cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGU/Yyh0LHQsZSwhMCk6aCh0LGUpO2Nhc2UgMzpyZXR1cm4gYyh0LGUsciwhMSk7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoImJveC1pbnRlcnNlY3Q6IEludmFsaWQgYXJndW1lbnRzIil9fTt2YXIgbixpPXQoInR5cGVkYXJyYXktcG9vbCIpLGE9dCgiLi9saWIvc3dlZXAiKSxvPXQoIi4vbGliL2ludGVyc2VjdCIpO2Z1bmN0aW9uIHModCxlKXtmb3IodmFyIHI9MDtyPHQ7KytyKWlmKCEoZVtyXTw9ZVtyK3RdKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBsKHQsZSxyLG4pe2Zvcih2YXIgaT0wLGE9MCxvPTAsbD10Lmxlbmd0aDtvPGw7KytvKXt2YXIgYz10W29dO2lmKCFzKGUsYykpe2Zvcih2YXIgdT0wO3U8MiplOysrdSlyW2krK109Y1t1XTtuW2ErK109b319cmV0dXJuIGF9ZnVuY3Rpb24gYyh0LGUscixuKXt2YXIgcz10Lmxlbmd0aCxjPWUubGVuZ3RoO2lmKCEoczw9MHx8Yzw9MCkpe3ZhciB1PXRbMF0ubGVuZ3RoPj4+MTtpZighKHU8PTApKXt2YXIgZixoPWkubWFsbG9jRG91YmxlKDIqdSpzKSxwPWkubWFsbG9jSW50MzIocyk7aWYoKHM9bCh0LHUsaCxwKSk+MCl7aWYoMT09PXUmJm4pYS5pbml0KHMpLGY9YS5zd2VlcENvbXBsZXRlKHUsciwwLHMsaCxwLDAscyxoLHApO2Vsc2V7dmFyIGQ9aS5tYWxsb2NEb3VibGUoMip1KmMpLG09aS5tYWxsb2NJbnQzMihjKTsoYz1sKGUsdSxkLG0pKT4wJiYoYS5pbml0KHMrYyksZj0xPT09dT9hLnN3ZWVwQmlwYXJ0aXRlKHUsciwwLHMsaCxwLDAsYyxkLG0pOm8odSxyLG4scyxoLHAsYyxkLG0pLGkuZnJlZShkKSxpLmZyZWUobSkpfWkuZnJlZShoKSxpLmZyZWUocCl9cmV0dXJuIGZ9fX1mdW5jdGlvbiB1KHQsZSl7bi5wdXNoKFt0LGVdKX1mdW5jdGlvbiBmKHQpe3JldHVybiBuPVtdLGModCx0LHUsITApLG59ZnVuY3Rpb24gaCh0LGUpe3JldHVybiBuPVtdLGModCxlLHUsITEpLG59fSx7Ii4vbGliL2ludGVyc2VjdCI6MzcsIi4vbGliL3N3ZWVwIjo0MSwidHlwZWRhcnJheS1wb29sIjozMDh9XSwzNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3JldHVybiB0P2Z1bmN0aW9uKHQsZSxyLG4saSxhLG8scyxsLGMsdSl7cmV0dXJuIGktbj5sLXM/ZnVuY3Rpb24odCxlLHIsbixpLGEsbyxzLGwsYyx1KXtmb3IodmFyIGY9Mip0LGg9bixwPWYqbjtoPGk7KytoLHArPWYpe3ZhciBkPWFbZStwXSxtPWFbZStwK3RdLGc9b1toXTt0OmZvcih2YXIgdj1zLHk9ZipzO3Y8bDsrK3YseSs9Zil7dmFyIHg9Y1tlK3ldLGI9Y1tlK3krdF0sXz11W3ZdO2lmKCEoYjxkfHxtPHgpKXtmb3IodmFyIHc9ZSsxO3c8dDsrK3cpe3ZhciBUPWFbdytwXSxrPWFbdyt0K3BdLEE9Y1t3K3ldLE09Y1t3K3QreV07aWYoazxBfHxNPFQpY29udGludWUgdH12YXIgUz1yKGcsXyk7aWYodm9pZCAwIT09UylyZXR1cm4gU319fX0odCxlLHIsbixpLGEsbyxzLGwsYyx1KTpmdW5jdGlvbih0LGUscixuLGksYSxvLHMsbCxjLHUpe2Zvcih2YXIgZj0yKnQsaD1zLHA9ZipzO2g8bDsrK2gscCs9Zil7dmFyIGQ9Y1tlK3BdLG09Y1tlK3ArdF0sZz11W2hdO3Q6Zm9yKHZhciB2PW4seT1mKm47djxpOysrdix5Kz1mKXt2YXIgeD1hW2UreV0sYj1hW2UreSt0XSxfPW9bdl07aWYoIShtPHh8fGI8ZCkpe2Zvcih2YXIgdz1lKzE7dzx0Oysrdyl7dmFyIFQ9YVt3K3ldLGs9YVt3K3QreV0sQT1jW3crcF0sTT1jW3crdCtwXTtpZihrPEF8fE08VCljb250aW51ZSB0fXZhciBTPXIoXyxnKTtpZih2b2lkIDAhPT1TKXJldHVybiBTfX19fSh0LGUscixuLGksYSxvLHMsbCxjLHUpfTpmdW5jdGlvbih0LGUscixuLGksYSxvLHMsbCxjLHUsZil7cmV0dXJuIGEtaT5jLWw/bj9mdW5jdGlvbih0LGUscixuLGksYSxvLHMsbCxjLHUpe2Zvcih2YXIgZj0yKnQsaD1uLHA9ZipuO2g8aTsrK2gscCs9Zil7dmFyIGQ9YVtlK3BdLG09YVtlK3ArdF0sZz1vW2hdO3Q6Zm9yKHZhciB2PXMseT1mKnM7djxsOysrdix5Kz1mKXt2YXIgeD1jW2UreV0sYj11W3ZdO2lmKCEoeDw9ZHx8bTx4KSl7Zm9yKHZhciBfPWUrMTtfPHQ7KytfKXt2YXIgdz1hW18rcF0sVD1hW18rdCtwXSxrPWNbXyt5XSxBPWNbXyt0K3ldO2lmKFQ8a3x8QTx3KWNvbnRpbnVlIHR9dmFyIE09cihiLGcpO2lmKHZvaWQgMCE9PU0pcmV0dXJuIE19fX19KHQsZSxyLGksYSxvLHMsbCxjLHUsZik6ZnVuY3Rpb24odCxlLHIsbixpLGEsbyxzLGwsYyx1KXtmb3IodmFyIGY9Mip0LGg9bixwPWYqbjtoPGk7KytoLHArPWYpe3ZhciBkPWFbZStwXSxtPWFbZStwK3RdLGc9b1toXTt0OmZvcih2YXIgdj1zLHk9ZipzO3Y8bDsrK3YseSs9Zil7dmFyIHg9Y1tlK3ldLGI9dVt2XTtpZighKHg8ZHx8bTx4KSl7Zm9yKHZhciBfPWUrMTtfPHQ7KytfKXt2YXIgdz1hW18rcF0sVD1hW18rdCtwXSxrPWNbXyt5XSxBPWNbXyt0K3ldO2lmKFQ8a3x8QTx3KWNvbnRpbnVlIHR9dmFyIE09cihnLGIpO2lmKHZvaWQgMCE9PU0pcmV0dXJuIE19fX19KHQsZSxyLGksYSxvLHMsbCxjLHUsZik6bj9mdW5jdGlvbih0LGUscixuLGksYSxvLHMsbCxjLHUpe2Zvcih2YXIgZj0yKnQsaD1zLHA9ZipzO2g8bDsrK2gscCs9Zil7dmFyIGQ9Y1tlK3BdLG09dVtoXTt0OmZvcih2YXIgZz1uLHY9ZipuO2c8aTsrK2csdis9Zil7dmFyIHk9YVtlK3ZdLHg9YVtlK3YrdF0sYj1vW2ddO2lmKCEoZDw9eXx8eDxkKSl7Zm9yKHZhciBfPWUrMTtfPHQ7KytfKXt2YXIgdz1hW18rdl0sVD1hW18rdCt2XSxrPWNbXytwXSxBPWNbXyt0K3BdO2lmKFQ8a3x8QTx3KWNvbnRpbnVlIHR9dmFyIE09cihtLGIpO2lmKHZvaWQgMCE9PU0pcmV0dXJuIE19fX19KHQsZSxyLGksYSxvLHMsbCxjLHUsZik6ZnVuY3Rpb24odCxlLHIsbixpLGEsbyxzLGwsYyx1KXtmb3IodmFyIGY9Mip0LGg9cyxwPWYqcztoPGw7KytoLHArPWYpe3ZhciBkPWNbZStwXSxtPXVbaF07dDpmb3IodmFyIGc9bix2PWYqbjtnPGk7KytnLHYrPWYpe3ZhciB5PWFbZSt2XSx4PWFbZSt2K3RdLGI9b1tnXTtpZighKGQ8eXx8eDxkKSl7Zm9yKHZhciBfPWUrMTtfPHQ7KytfKXt2YXIgdz1hW18rdl0sVD1hW18rdCt2XSxrPWNbXytwXSxBPWNbXyt0K3BdO2lmKFQ8a3x8QTx3KWNvbnRpbnVlIHR9dmFyIE09cihiLG0pO2lmKHZvaWQgMCE9PU0pcmV0dXJuIE19fX19KHQsZSxyLGksYSxvLHMsbCxjLHUsZil9fXIucGFydGlhbD1uKCExKSxyLmZ1bGw9bighMCl9LHt9XSwzNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYSx1LHcsVCxrLEEpeyFmdW5jdGlvbih0LGUpe3ZhciByPTgqaS5sb2cyKGUrMSkqKHQrMSl8MCxhPWkubmV4dFBvdzIoNipyKTt2Lmxlbmd0aDxhJiYobi5mcmVlKHYpLHY9bi5tYWxsb2NJbnQzMihhKSk7dmFyIG89aS5uZXh0UG93MigyKnIpO3kubGVuZ3RoPG8mJihuLmZyZWUoeSkseT1uLm1hbGxvY0RvdWJsZShvKSl9KHQsYStUKTt2YXIgTSxTPTAsRT0yKnQ7eChTKyssMCwwLGEsMCxULHI/MTY6MCwtMS8wLDEvMCkscnx8eChTKyssMCwwLFQsMCxhLDEsLTEvMCwxLzApO2Zvcig7Uz4wOyl7dmFyIEw9NiooUy09MSksQz12W0xdLFA9dltMKzFdLEk9dltMKzJdLE89dltMKzNdLHo9dltMKzRdLEQ9dltMKzVdLFI9MipTLEY9eVtSXSxCPXlbUisxXSxOPTEmRCxqPSEhKDE2JkQpLFU9dSxWPXcsSD1rLHE9QTtpZihOJiYoVT1rLFY9QSxIPXUscT13KSwhKDImRCYmKEk9cCh0LEMsUCxJLFUsVixCKSxQPj1JKXx8NCZEJiYoUD1kKHQsQyxQLEksVSxWLEYpKT49SSkpe3ZhciBHPUktUCxZPXotTztpZihqKXtpZih0KkcqKEcrWSk8MTw8MjIpe2lmKHZvaWQgMCE9PShNPWwuc2NhbkNvbXBsZXRlKHQsQyxlLFAsSSxVLFYsTyx6LEgscSkpKXJldHVybiBNO2NvbnRpbnVlfX1lbHNle2lmKHQqTWF0aC5taW4oRyxZKTwxMjgpe2lmKHZvaWQgMCE9PShNPW8odCxDLGUsTixQLEksVSxWLE8seixILHEpKSlyZXR1cm4gTTtjb250aW51ZX1pZih0KkcqWTwxPDwyMil7aWYodm9pZCAwIT09KE09bC5zY2FuQmlwYXJ0aXRlKHQsQyxlLE4sUCxJLFUsVixPLHosSCxxKSkpcmV0dXJuIE07Y29udGludWV9fXZhciBXPWYodCxDLFAsSSxVLFYsRixCKTtpZihQPFcpaWYodCooVy1QKTwxMjgpe2lmKHZvaWQgMCE9PShNPXModCxDKzEsZSxQLFcsVSxWLE8seixILHEpKSlyZXR1cm4gTX1lbHNlIGlmKEM9PT10LTIpe2lmKHZvaWQgMCE9PShNPU4/bC5zd2VlcEJpcGFydGl0ZSh0LGUsTyx6LEgscSxQLFcsVSxWKTpsLnN3ZWVwQmlwYXJ0aXRlKHQsZSxQLFcsVSxWLE8seixILHEpKSlyZXR1cm4gTX1lbHNlIHgoUysrLEMrMSxQLFcsTyx6LE4sLTEvMCwxLzApLHgoUysrLEMrMSxPLHosUCxXLDFeTiwtMS8wLDEvMCk7aWYoVzxJKXt2YXIgWD1jKHQsQyxPLHosSCxxKSxaPUhbRSpYK0NdLEo9aCh0LEMsWCx6LEgscSxaKTtpZihKPHomJngoUysrLEMsVyxJLEoseiwoNHxOKSsoaj8xNjowKSxaLEIpLE88WCYmeChTKyssQyxXLEksTyxYLCgyfE4pKyhqPzE2OjApLEYsWiksWCsxPT09Sil7aWYodm9pZCAwIT09KE09aj9fKHQsQyxlLFcsSSxVLFYsWCxILHFbWF0pOmIodCxDLGUsTixXLEksVSxWLFgsSCxxW1hdKSkpcmV0dXJuIE19ZWxzZSBpZihYPEope3ZhciBLO2lmKGope2lmKEs9bSh0LEMsVyxJLFUsVixaKSxXPEspe3ZhciBRPWgodCxDLFcsSyxVLFYsWik7aWYoQz09PXQtMil7aWYoVzxRJiZ2b2lkIDAhPT0oTT1sLnN3ZWVwQ29tcGxldGUodCxlLFcsUSxVLFYsWCxKLEgscSkpKXJldHVybiBNO2lmKFE8SyYmdm9pZCAwIT09KE09bC5zd2VlcEJpcGFydGl0ZSh0LGUsUSxLLFUsVixYLEosSCxxKSkpcmV0dXJuIE19ZWxzZSBXPFEmJngoUysrLEMrMSxXLFEsWCxKLDE2LC0xLzAsMS8wKSxRPEsmJih4KFMrKyxDKzEsUSxLLFgsSiwwLC0xLzAsMS8wKSx4KFMrKyxDKzEsWCxKLFEsSywxLC0xLzAsMS8wKSl9fWVsc2UgSz1OP2codCxDLFcsSSxVLFYsWik6bSh0LEMsVyxJLFUsVixaKSxXPEsmJihDPT09dC0yP009Tj9sLnN3ZWVwQmlwYXJ0aXRlKHQsZSxYLEosSCxxLFcsSyxVLFYpOmwuc3dlZXBCaXBhcnRpdGUodCxlLFcsSyxVLFYsWCxKLEgscSk6KHgoUysrLEMrMSxXLEssWCxKLE4sLTEvMCwxLzApLHgoUysrLEMrMSxYLEosVyxLLDFeTiwtMS8wLDEvMCkpKX19fX19O3ZhciBuPXQoInR5cGVkYXJyYXktcG9vbCIpLGk9dCgiYml0LXR3aWRkbGUiKSxhPXQoIi4vYnJ1dGUiKSxvPWEucGFydGlhbCxzPWEuZnVsbCxsPXQoIi4vc3dlZXAiKSxjPXQoIi4vbWVkaWFuIiksdT10KCIuL3BhcnRpdGlvbiIpLGY9dSgiIShsbz49cDApJiYhKHAxPj1oaSkiKSxoPXUoImxvPT09cDAiKSxwPXUoImxvPHAwIiksZD11KCJoaTw9cDAiKSxtPXUoImxvPD1wMCYmcDA8PWhpIiksZz11KCJsbzxwMCYmcDA8PWhpIiksdj1uLm1hbGxvY0ludDMyKDEwMjQpLHk9bi5tYWxsb2NEb3VibGUoMTAyNCk7ZnVuY3Rpb24geCh0LGUscixuLGksYSxvLHMsbCl7dmFyIGM9Nip0O3ZbY109ZSx2W2MrMV09cix2W2MrMl09bix2W2MrM109aSx2W2MrNF09YSx2W2MrNV09bzt2YXIgdT0yKnQ7eVt1XT1zLHlbdSsxXT1sfWZ1bmN0aW9uIGIodCxlLHIsbixpLGEsbyxzLGwsYyx1KXt2YXIgZj0yKnQsaD1sKmYscD1jW2grZV07dDpmb3IodmFyIGQ9aSxtPWkqZjtkPGE7KytkLG0rPWYpe3ZhciBnPW9bbStlXSx2PW9bbStlK3RdO2lmKCEocDxnfHx2PHApJiYoIW58fHAhPT1nKSl7Zm9yKHZhciB5LHg9c1tkXSxiPWUrMTtiPHQ7KytiKXtnPW9bbStiXSx2PW9bbStiK3RdO3ZhciBfPWNbaCtiXSx3PWNbaCtiK3RdO2lmKHY8X3x8dzxnKWNvbnRpbnVlIHR9aWYodm9pZCAwIT09KHk9bj9yKHUseCk6cih4LHUpKSlyZXR1cm4geX19fWZ1bmN0aW9uIF8odCxlLHIsbixpLGEsbyxzLGwsYyl7dmFyIHU9Mip0LGY9cyp1LGg9bFtmK2VdO3Q6Zm9yKHZhciBwPW4sZD1uKnU7cDxpOysrcCxkKz11KXt2YXIgbT1vW3BdO2lmKG0hPT1jKXt2YXIgZz1hW2QrZV0sdj1hW2QrZSt0XTtpZighKGg8Z3x8djxoKSl7Zm9yKHZhciB5PWUrMTt5PHQ7Kyt5KXtnPWFbZCt5XSx2PWFbZCt5K3RdO3ZhciB4PWxbZit5XSxiPWxbZit5K3RdO2lmKHY8eHx8YjxnKWNvbnRpbnVlIHR9dmFyIF89cihtLGMpO2lmKHZvaWQgMCE9PV8pcmV0dXJuIF99fX19fSx7Ii4vYnJ1dGUiOjM2LCIuL21lZGlhbiI6MzgsIi4vcGFydGl0aW9uIjozOSwiLi9zd2VlcCI6NDEsImJpdC10d2lkZGxlIjozMiwidHlwZWRhcnJheS1wb29sIjozMDh9XSwzODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYSxvLHMpe2lmKGE8PXIrMSlyZXR1cm4gcjt2YXIgbD1yLGM9YSx1PWErcj4+PjEsZj0yKnQsaD11LHA9b1tmKnUrZV07Zm9yKDtsPGM7KXtpZihjLWw8OCl7aSh0LGUsbCxjLG8scykscD1vW2YqdStlXTticmVha312YXIgZD1jLWwsbT1NYXRoLnJhbmRvbSgpKmQrbHwwLGc9b1tmKm0rZV0sdj1NYXRoLnJhbmRvbSgpKmQrbHwwLHk9b1tmKnYrZV0seD1NYXRoLnJhbmRvbSgpKmQrbHwwLGI9b1tmKngrZV07Zzw9eT9iPj15PyhoPXYscD15KTpnPj1iPyhoPW0scD1nKTooaD14LHA9Yik6eT49Yj8oaD12LHA9eSk6Yj49Zz8oaD1tLHA9Zyk6KGg9eCxwPWIpO2Zvcih2YXIgXz1mKihjLTEpLHc9ZipoLFQ9MDtUPGY7KytULCsrXywrK3cpe3ZhciBrPW9bX107b1tfXT1vW3ddLG9bd109a312YXIgQT1zW2MtMV07c1tjLTFdPXNbaF0sc1toXT1BLGg9bih0LGUsbCxjLTEsbyxzLHApO2ZvcihfPWYqKGMtMSksdz1mKmgsVD0wO1Q8ZjsrK1QsKytfLCsrdyl7az1vW19dO29bX109b1t3XSxvW3ddPWt9QT1zW2MtMV07aWYoc1tjLTFdPXNbaF0sc1toXT1BLHU8aCl7Zm9yKGM9aC0xO2w8YyYmb1tmKihjLTEpK2VdPT09cDspYy09MTtjKz0xfWVsc2V7aWYoIShoPHUpKWJyZWFrO2ZvcihsPWgrMTtsPGMmJm9bZipsK2VdPT09cDspbCs9MX19cmV0dXJuIG4odCxlLHIsdSxvLHMsb1tmKnUrZV0pfTt2YXIgbj10KCIuL3BhcnRpdGlvbiIpKCJsbzxwMCIpO2Z1bmN0aW9uIGkodCxlLHIsbixpLGEpe2Zvcih2YXIgbz0yKnQscz1vKihyKzEpK2UsbD1yKzE7bDxuOysrbCxzKz1vKWZvcih2YXIgYz1pW3NdLHU9bCxmPW8qKGwtMSk7dT5yJiZpW2YrZV0+YzstLXUsZi09byl7Zm9yKHZhciBoPWYscD1mK28sZD0wO2Q8bzsrK2QsKytoLCsrcCl7dmFyIG09aVtoXTtpW2hdPWlbcF0saVtwXT1tfXZhciBnPWFbdV07YVt1XT1hW3UtMV0sYVt1LTFdPWd9fX0seyIuL3BhcnRpdGlvbiI6Mzl9XSwzOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG5bdF19O3ZhciBuPXsibG89PT1wMCI6ZnVuY3Rpb24odCxlLHIsbixpLGEsbyl7Zm9yKHZhciBzPTIqdCxsPXMqcixjPWwsdT1yLGY9ZSxoPXI7bj5oOysraCxsKz1zKXtpZihpW2wrZl09PT1vKWlmKHU9PT1oKXUrPTEsYys9cztlbHNle2Zvcih2YXIgcD0wO3M+cDsrK3Ape3ZhciBkPWlbbCtwXTtpW2wrcF09aVtjXSxpW2MrK109ZH12YXIgbT1hW2hdO2FbaF09YVt1XSxhW3UrK109bX19cmV0dXJuIHV9LCJsbzxwMCI6ZnVuY3Rpb24odCxlLHIsbixpLGEsbyl7Zm9yKHZhciBzPTIqdCxsPXMqcixjPWwsdT1yLGY9ZSxoPXI7bj5oOysraCxsKz1zKXtpZihpW2wrZl08bylpZih1PT09aCl1Kz0xLGMrPXM7ZWxzZXtmb3IodmFyIHA9MDtzPnA7KytwKXt2YXIgZD1pW2wrcF07aVtsK3BdPWlbY10saVtjKytdPWR9dmFyIG09YVtoXTthW2hdPWFbdV0sYVt1KytdPW19fXJldHVybiB1fSwibG88PXAwIjpmdW5jdGlvbih0LGUscixuLGksYSxvKXtmb3IodmFyIHM9Mip0LGw9cypyLGM9bCx1PXIsZj10K2UsaD1yO24+aDsrK2gsbCs9cyl7aWYoaVtsK2ZdPD1vKWlmKHU9PT1oKXUrPTEsYys9cztlbHNle2Zvcih2YXIgcD0wO3M+cDsrK3Ape3ZhciBkPWlbbCtwXTtpW2wrcF09aVtjXSxpW2MrK109ZH12YXIgbT1hW2hdO2FbaF09YVt1XSxhW3UrK109bX19cmV0dXJuIHV9LCJoaTw9cDAiOmZ1bmN0aW9uKHQsZSxyLG4saSxhLG8pe2Zvcih2YXIgcz0yKnQsbD1zKnIsYz1sLHU9cixmPXQrZSxoPXI7bj5oOysraCxsKz1zKXtpZihpW2wrZl08PW8paWYodT09PWgpdSs9MSxjKz1zO2Vsc2V7Zm9yKHZhciBwPTA7cz5wOysrcCl7dmFyIGQ9aVtsK3BdO2lbbCtwXT1pW2NdLGlbYysrXT1kfXZhciBtPWFbaF07YVtoXT1hW3VdLGFbdSsrXT1tfX1yZXR1cm4gdX0sImxvPHAwJiZwMDw9aGkiOmZ1bmN0aW9uKHQsZSxyLG4saSxhLG8pe2Zvcih2YXIgcz0yKnQsbD1zKnIsYz1sLHU9cixmPWUsaD10K2UscD1yO24+cDsrK3AsbCs9cyl7dmFyIGQ9aVtsK2ZdLG09aVtsK2hdO2lmKGQ8byYmbzw9bSlpZih1PT09cCl1Kz0xLGMrPXM7ZWxzZXtmb3IodmFyIGc9MDtzPmc7KytnKXt2YXIgdj1pW2wrZ107aVtsK2ddPWlbY10saVtjKytdPXZ9dmFyIHk9YVtwXTthW3BdPWFbdV0sYVt1KytdPXl9fXJldHVybiB1fSwibG88PXAwJiZwMDw9aGkiOmZ1bmN0aW9uKHQsZSxyLG4saSxhLG8pe2Zvcih2YXIgcz0yKnQsbD1zKnIsYz1sLHU9cixmPWUsaD10K2UscD1yO24+cDsrK3AsbCs9cyl7dmFyIGQ9aVtsK2ZdLG09aVtsK2hdO2lmKGQ8PW8mJm88PW0paWYodT09PXApdSs9MSxjKz1zO2Vsc2V7Zm9yKHZhciBnPTA7cz5nOysrZyl7dmFyIHY9aVtsK2ddO2lbbCtnXT1pW2NdLGlbYysrXT12fXZhciB5PWFbcF07YVtwXT1hW3VdLGFbdSsrXT15fX1yZXR1cm4gdX0sIiEobG8+PXAwKSYmIShwMT49aGkpIjpmdW5jdGlvbih0LGUscixuLGksYSxvLHMpe2Zvcih2YXIgbD0yKnQsYz1sKnIsdT1jLGY9cixoPWUscD10K2UsZD1yO24+ZDsrK2QsYys9bCl7dmFyIG09aVtjK2hdLGc9aVtjK3BdO2lmKCEobT49b3x8cz49ZykpaWYoZj09PWQpZis9MSx1Kz1sO2Vsc2V7Zm9yKHZhciB2PTA7bD52Oysrdil7dmFyIHk9aVtjK3ZdO2lbYyt2XT1pW3VdLGlbdSsrXT15fXZhciB4PWFbZF07YVtkXT1hW2ZdLGFbZisrXT14fX1yZXR1cm4gZn19fSx7fV0sNDA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7ZTw9MTI4P24oMCxlLTEsdCk6ZnVuY3Rpb24gdChlLHIsdSl7dmFyIGY9KHItZSsxKS82fDAsaD1lK2YscD1yLWYsZD1lK3I+PjEsbT1kLWYsZz1kK2Ysdj1oLHk9bSx4PWQsYj1nLF89cCx3PWUrMSxUPXItMSxrPTA7bCh2LHksdSkmJihrPXYsdj15LHk9ayk7bChiLF8sdSkmJihrPWIsYj1fLF89ayk7bCh2LHgsdSkmJihrPXYsdj14LHg9ayk7bCh5LHgsdSkmJihrPXkseT14LHg9ayk7bCh2LGIsdSkmJihrPXYsdj1iLGI9ayk7bCh4LGIsdSkmJihrPXgseD1iLGI9ayk7bCh5LF8sdSkmJihrPXkseT1fLF89ayk7bCh5LHgsdSkmJihrPXkseT14LHg9ayk7bChiLF8sdSkmJihrPWIsYj1fLF89ayk7Zm9yKHZhciBBPXVbMip5XSxNPXVbMip5KzFdLFM9dVsyKmJdLEU9dVsyKmIrMV0sTD0yKnYsQz0yKngsUD0yKl8sST0yKmgsTz0yKmQsej0yKnAsRD0wO0Q8MjsrK0Qpe3ZhciBSPXVbTCtEXSxGPXVbQytEXSxCPXVbUCtEXTt1W0krRF09Uix1W08rRF09Rix1W3orRF09Qn1hKG0sZSx1KSxhKGcscix1KTtmb3IodmFyIE49dztOPD1UOysrTilpZihjKE4sQSxNLHUpKU4hPT13JiZpKE4sdyx1KSwrK3c7ZWxzZSBpZighYyhOLFMsRSx1KSlmb3IoOzspe2lmKGMoVCxTLEUsdSkpe2MoVCxBLE0sdSk/KG8oTix3LFQsdSksKyt3LC0tVCk6KGkoTixULHUpLC0tVCk7YnJlYWt9aWYoLS1UPE4pYnJlYWt9cyhlLHctMSxBLE0sdSkscyhyLFQrMSxTLEUsdSksdy0yLWU8PTMyP24oZSx3LTIsdSk6dChlLHctMix1KTtyLShUKzIpPD0zMj9uKFQrMixyLHUpOnQoVCsyLHIsdSk7VC13PD0zMj9uKHcsVCx1KTp0KHcsVCx1KX0oMCxlLTEsdCl9O2Z1bmN0aW9uIG4odCxlLHIpe2Zvcih2YXIgbj0yKih0KzEpLGk9dCsxO2k8PWU7KytpKXtmb3IodmFyIGE9cltuKytdLG89cltuKytdLHM9aSxsPW4tMjtzLS0gPnQ7KXt2YXIgYz1yW2wtMl0sdT1yW2wtMV07aWYoYzxhKWJyZWFrO2lmKGM9PT1hJiZ1PG8pYnJlYWs7cltsXT1jLHJbbCsxXT11LGwtPTJ9cltsXT1hLHJbbCsxXT1vfX1mdW5jdGlvbiBpKHQsZSxyKXtlKj0yO3ZhciBuPXJbdCo9Ml0saT1yW3QrMV07clt0XT1yW2VdLHJbdCsxXT1yW2UrMV0scltlXT1uLHJbZSsxXT1pfWZ1bmN0aW9uIGEodCxlLHIpe2UqPTIsclt0Kj0yXT1yW2VdLHJbdCsxXT1yW2UrMV19ZnVuY3Rpb24gbyh0LGUscixuKXtlKj0yLHIqPTI7dmFyIGk9blt0Kj0yXSxhPW5bdCsxXTtuW3RdPW5bZV0sblt0KzFdPW5bZSsxXSxuW2VdPW5bcl0sbltlKzFdPW5bcisxXSxuW3JdPWksbltyKzFdPWF9ZnVuY3Rpb24gcyh0LGUscixuLGkpe2UqPTIsaVt0Kj0yXT1pW2VdLGlbZV09cixpW3QrMV09aVtlKzFdLGlbZSsxXT1ufWZ1bmN0aW9uIGwodCxlLHIpe2UqPTI7dmFyIG49clt0Kj0yXSxpPXJbZV07cmV0dXJuIShuPGkpJiYobiE9PWl8fHJbdCsxXT5yW2UrMV0pfWZ1bmN0aW9uIGModCxlLHIsbil7dmFyIGk9blt0Kj0yXTtyZXR1cm4gaTxlfHxpPT09ZSYmblt0KzFdPHJ9fSx7fV0sNDE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtpbml0OmZ1bmN0aW9uKHQpe3ZhciBlPWkubmV4dFBvdzIodCk7by5sZW5ndGg8ZSYmKG4uZnJlZShvKSxvPW4ubWFsbG9jSW50MzIoZSkpO3MubGVuZ3RoPGUmJihuLmZyZWUocykscz1uLm1hbGxvY0ludDMyKGUpKTtsLmxlbmd0aDxlJiYobi5mcmVlKGwpLGw9bi5tYWxsb2NJbnQzMihlKSk7Yy5sZW5ndGg8ZSYmKG4uZnJlZShjKSxjPW4ubWFsbG9jSW50MzIoZSkpO3UubGVuZ3RoPGUmJihuLmZyZWUodSksdT1uLm1hbGxvY0ludDMyKGUpKTtmLmxlbmd0aDxlJiYobi5mcmVlKGYpLGY9bi5tYWxsb2NJbnQzMihlKSk7dmFyIHI9OCplO2gubGVuZ3RoPHImJihuLmZyZWUoaCksaD1uLm1hbGxvY0RvdWJsZShyKSl9LHN3ZWVwQmlwYXJ0aXRlOmZ1bmN0aW9uKHQsZSxyLG4saSx1LGYsbSxnLHYpe2Zvcih2YXIgeT0wLHg9Mip0LGI9dC0xLF89eC0xLHc9cjt3PG47Kyt3KXt2YXIgVD11W3ddLGs9eCp3O2hbeSsrXT1pW2srYl0saFt5KytdPS0oVCsxKSxoW3krK109aVtrK19dLGhbeSsrXT1UfWZvcih3PWY7dzxtOysrdyl7VD12W3ddKygxPDwyOCk7dmFyIEE9eCp3O2hbeSsrXT1nW0ErYl0saFt5KytdPS1ULGhbeSsrXT1nW0ErX10saFt5KytdPVR9dmFyIE09eT4+PjE7YShoLE0pO3ZhciBTPTAsRT0wO2Zvcih3PTA7dzxNOysrdyl7dmFyIEw9MHxoWzIqdysxXTtpZihMPj0xPDwyOClwKGwsYyxFLS0sTD1MLSgxPDwyOCl8MCk7ZWxzZSBpZihMPj0wKXAobyxzLFMtLSxMKTtlbHNlIGlmKEw8PS0oMTw8MjgpKXtMPS1MLSgxPDwyOCl8MDtmb3IodmFyIEM9MDtDPFM7KytDKXtpZih2b2lkIDAhPT0oUD1lKG9bQ10sTCkpKXJldHVybiBQfWQobCxjLEUrKyxMKX1lbHNle0w9LUwtMXwwO2ZvcihDPTA7QzxFOysrQyl7dmFyIFA7aWYodm9pZCAwIT09KFA9ZShMLGxbQ10pKSlyZXR1cm4gUH1kKG8scyxTKyssTCl9fX0sc3dlZXBDb21wbGV0ZTpmdW5jdGlvbih0LGUscixuLGksbSxnLHYseSx4KXtmb3IodmFyIGI9MCxfPTIqdCx3PXQtMSxUPV8tMSxrPXI7azxuOysrayl7dmFyIEE9bVtrXSsxPDwxLE09XyprO2hbYisrXT1pW00rd10saFtiKytdPS1BLGhbYisrXT1pW00rVF0saFtiKytdPUF9Zm9yKGs9ZztrPHY7KytrKXtBPXhba10rMTw8MTt2YXIgUz1fKms7aFtiKytdPXlbUyt3XSxoW2IrK109MXwtQSxoW2IrK109eVtTK1RdLGhbYisrXT0xfEF9dmFyIEU9Yj4+PjE7YShoLEUpO3ZhciBMPTAsQz0wLFA9MDtmb3Ioaz0wO2s8RTsrK2spe3ZhciBJPTB8aFsyKmsrMV0sTz0xJkk7aWYoazxFLTEmJkk+PjE9PWhbMiprKzNdPj4xJiYoTz0yLGsrPTEpLEk8MCl7Zm9yKHZhciB6PS0oST4+MSktMSxEPTA7RDxQOysrRCl7aWYodm9pZCAwIT09KFI9ZSh1W0RdLHopKSlyZXR1cm4gUn1pZigwIT09Tylmb3IoRD0wO0Q8TDsrK0Qpe2lmKHZvaWQgMCE9PShSPWUob1tEXSx6KSkpcmV0dXJuIFJ9aWYoMSE9PU8pZm9yKEQ9MDtEPEM7KytEKXt2YXIgUjtpZih2b2lkIDAhPT0oUj1lKGxbRF0seikpKXJldHVybiBSfTA9PT1PP2QobyxzLEwrKyx6KToxPT09Tz9kKGwsYyxDKysseik6Mj09PU8mJmQodSxmLFArKyx6KX1lbHNle3o9KEk+PjEpLTE7MD09PU8/cChvLHMsTC0tLHopOjE9PT1PP3AobCxjLEMtLSx6KToyPT09TyYmcCh1LGYsUC0tLHopfX19LHNjYW5CaXBhcnRpdGU6ZnVuY3Rpb24odCxlLHIsbixpLGwsYyx1LGYsbSxnLHYpe3ZhciB5PTAseD0yKnQsYj1lLF89ZSt0LHc9MSxUPTE7bj9UPTE8PDI4Onc9MTw8Mjg7Zm9yKHZhciBrPWk7azxsOysrayl7dmFyIEE9ayt3LE09eCprO2hbeSsrXT1jW00rYl0saFt5KytdPS1BLGhbeSsrXT1jW00rX10saFt5KytdPUF9Zm9yKGs9ZjtrPG07KytrKXtBPWsrVDt2YXIgUz14Kms7aFt5KytdPWdbUytiXSxoW3krK109LUF9dmFyIEU9eT4+PjE7YShoLEUpO3ZhciBMPTA7Zm9yKGs9MDtrPEU7KytrKXt2YXIgQz0wfGhbMiprKzFdO2lmKEM8MCl7dmFyIFA9ITE7aWYoKEE9LUMpPj0xPDwyOD8oUD0hbixBLT0xPDwyOCk6KFA9ISFuLEEtPTEpLFApZChvLHMsTCsrLEEpO2Vsc2V7dmFyIEk9dltBXSxPPXgqQSx6PWdbTytlKzFdLEQ9Z1tPK2UrMSt0XTt0OmZvcih2YXIgUj0wO1I8TDsrK1Ipe3ZhciBGPW9bUl0sQj14KkY7aWYoIShEPGNbQitlKzFdfHxjW0IrZSsxK3RdPHopKXtmb3IodmFyIE49ZSsyO048dDsrK04paWYoZ1tPK04rdF08Y1tCK05dfHxjW0IrTit0XTxnW08rTl0pY29udGludWUgdDt2YXIgaixVPXVbRl07aWYodm9pZCAwIT09KGo9bj9yKEksVSk6cihVLEkpKSlyZXR1cm4gan19fX1lbHNlIHAobyxzLEwtLSxDLXcpfX0sc2NhbkNvbXBsZXRlOmZ1bmN0aW9uKHQsZSxyLG4saSxzLGwsYyx1LGYscCl7Zm9yKHZhciBkPTAsbT0yKnQsZz1lLHY9ZSt0LHk9bjt5PGk7Kyt5KXt2YXIgeD15KygxPDwyOCksYj1tKnk7aFtkKytdPXNbYitnXSxoW2QrK109LXgsaFtkKytdPXNbYit2XSxoW2QrK109eH1mb3IoeT1jO3k8dTsrK3kpe3g9eSsxO3ZhciBfPW0qeTtoW2QrK109ZltfK2ddLGhbZCsrXT0teH12YXIgdz1kPj4+MTthKGgsdyk7dmFyIFQ9MDtmb3IoeT0wO3k8dzsrK3kpe3ZhciBrPTB8aFsyKnkrMV07aWYoazwwKXtpZigoeD0tayk+PTE8PDI4KW9bVCsrXT14LSgxPDwyOCk7ZWxzZXt2YXIgQT1wW3gtPTFdLE09bSp4LFM9ZltNK2UrMV0sRT1mW00rZSsxK3RdO3Q6Zm9yKHZhciBMPTA7TDxUOysrTCl7dmFyIEM9b1tMXSxQPWxbQ107aWYoUD09PUEpYnJlYWs7dmFyIEk9bSpDO2lmKCEoRTxzW0krZSsxXXx8c1tJK2UrMSt0XTxTKSl7Zm9yKHZhciBPPWUrMjtPPHQ7KytPKWlmKGZbTStPK3RdPHNbSStPXXx8c1tJK08rdF08ZltNK09dKWNvbnRpbnVlIHQ7dmFyIHo9cihQLEEpO2lmKHZvaWQgMCE9PXopcmV0dXJuIHp9fX19ZWxzZXtmb3IoeD1rLSgxPDwyOCksTD1ULTE7TD49MDstLUwpaWYob1tMXT09PXgpe2ZvcihPPUwrMTtPPFQ7KytPKW9bTy0xXT1vW09dO2JyZWFrfS0tVH19fX07dmFyIG49dCgidHlwZWRhcnJheS1wb29sIiksaT10KCJiaXQtdHdpZGRsZSIpLGE9dCgiLi9zb3J0Iiksbz1uLm1hbGxvY0ludDMyKDEwMjQpLHM9bi5tYWxsb2NJbnQzMigxMDI0KSxsPW4ubWFsbG9jSW50MzIoMTAyNCksYz1uLm1hbGxvY0ludDMyKDEwMjQpLHU9bi5tYWxsb2NJbnQzMigxMDI0KSxmPW4ubWFsbG9jSW50MzIoMTAyNCksaD1uLm1hbGxvY0RvdWJsZSg4MTkyKTtmdW5jdGlvbiBwKHQsZSxyLG4pe3ZhciBpPWVbbl0sYT10W3ItMV07dFtpXT1hLGVbYV09aX1mdW5jdGlvbiBkKHQsZSxyLG4pe3Rbcl09bixlW25dPXJ9fSx7Ii4vc29ydCI6NDAsImJpdC10d2lkZGxlIjozMiwidHlwZWRhcnJheS1wb29sIjozMDh9XSw0MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2xpYi9tb25vdG9uZSIpLGk9dCgiLi9saWIvdHJpYW5ndWxhdGlvbiIpLGE9dCgiLi9saWIvZGVsYXVuYXkiKSxvPXQoIi4vbGliL2ZpbHRlciIpO2Z1bmN0aW9uIHModCl7cmV0dXJuW01hdGgubWluKHRbMF0sdFsxXSksTWF0aC5tYXgodFswXSx0WzFdKV19ZnVuY3Rpb24gbCh0LGUpe3JldHVybiB0WzBdLWVbMF18fHRbMV0tZVsxXX1mdW5jdGlvbiBjKHQsZSxyKXtyZXR1cm4gZSBpbiB0P3RbZV06cn1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe0FycmF5LmlzQXJyYXkoZSk/KHI9cnx8e30sZT1lfHxbXSk6KHI9ZXx8e30sZT1bXSk7dmFyIHU9ISFjKHIsImRlbGF1bmF5IiwhMCksZj0hIWMociwiaW50ZXJpb3IiLCEwKSxoPSEhYyhyLCJleHRlcmlvciIsITApLHA9ISFjKHIsImluZmluaXR5IiwhMSk7aWYoIWYmJiFofHwwPT09dC5sZW5ndGgpcmV0dXJuW107dmFyIGQ9bih0LGUpO2lmKHV8fGYhPT1ofHxwKXtmb3IodmFyIG09aSh0Lmxlbmd0aCxmdW5jdGlvbih0KXtyZXR1cm4gdC5tYXAocykuc29ydChsKX0oZSkpLGc9MDtnPGQubGVuZ3RoOysrZyl7dmFyIHY9ZFtnXTttLmFkZFRyaWFuZ2xlKHZbMF0sdlsxXSx2WzJdKX1yZXR1cm4gdSYmYSh0LG0pLGg/Zj9wP28obSwwLHApOm0uY2VsbHMoKTpvKG0sMSxwKTpvKG0sLTEpfXJldHVybiBkfX0seyIuL2xpYi9kZWxhdW5heSI6NDMsIi4vbGliL2ZpbHRlciI6NDQsIi4vbGliL21vbm90b25lIjo0NSwiLi9saWIvdHJpYW5ndWxhdGlvbiI6NDZ9XSw0MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJyb2J1c3QtaW4tc3BoZXJlIilbNF07dCgiYmluYXJ5LXNlYXJjaC1ib3VuZHMiKTtmdW5jdGlvbiBpKHQsZSxyLGksYSxvKXt2YXIgcz1lLm9wcG9zaXRlKGksYSk7aWYoIShzPDApKXtpZihhPGkpe3ZhciBsPWk7aT1hLGE9bCxsPW8sbz1zLHM9bH1lLmlzQ29uc3RyYWludChpLGEpfHxuKHRbaV0sdFthXSx0W29dLHRbc10pPDAmJnIucHVzaChpLGEpfX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9W10sYT10Lmxlbmd0aCxvPWUuc3RhcnMscz0wO3M8YTsrK3MpZm9yKHZhciBsPW9bc10sYz0xO2M8bC5sZW5ndGg7Yys9Mil7aWYoISgocD1sW2NdKTxzKSYmIWUuaXNDb25zdHJhaW50KHMscCkpe2Zvcih2YXIgdT1sW2MtMV0sZj0tMSxoPTE7aDxsLmxlbmd0aDtoKz0yKWlmKGxbaC0xXT09PXApe2Y9bFtoXTticmVha31mPDB8fG4odFtzXSx0W3BdLHRbdV0sdFtmXSk8MCYmci5wdXNoKHMscCl9fWZvcig7ci5sZW5ndGg+MDspe2Zvcih2YXIgcD1yLnBvcCgpLGQ9KHM9ci5wb3AoKSx1PS0xLGY9LTEsbD1vW3NdLDEpO2Q8bC5sZW5ndGg7ZCs9Mil7dmFyIG09bFtkLTFdLGc9bFtkXTttPT09cD9mPWc6Zz09PXAmJih1PW0pfXU8MHx8ZjwwfHwobih0W3NdLHRbcF0sdFt1XSx0W2ZdKT49MHx8KGUuZmxpcChzLHApLGkodCxlLHIsdSxzLGYpLGkodCxlLHIscyxmLHUpLGkodCxlLHIsZixwLHUpLGkodCxlLHIscCx1LGYpKSl9fX0seyJiaW5hcnktc2VhcmNoLWJvdW5kcyI6MzEsInJvYnVzdC1pbi1zcGhlcmUiOjI4Mn1dLDQ0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuLGk9dCgiYmluYXJ5LXNlYXJjaC1ib3VuZHMiKTtmdW5jdGlvbiBhKHQsZSxyLG4saSxhLG8pe3RoaXMuY2VsbHM9dCx0aGlzLm5laWdoYm9yPWUsdGhpcy5mbGFncz1uLHRoaXMuY29uc3RyYWludD1yLHRoaXMuYWN0aXZlPWksdGhpcy5uZXh0PWEsdGhpcy5ib3VuZGFyeT1vfWZ1bmN0aW9uIG8odCxlKXtyZXR1cm4gdFswXS1lWzBdfHx0WzFdLWVbMV18fHRbMl0tZVsyXX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQuY2VsbHMoKSxuPXIubGVuZ3RoLGk9MDtpPG47KytpKXt2YXIgcz0odj1yW2ldKVswXSxsPXZbMV0sYz12WzJdO2w8Yz9sPHMmJih2WzBdPWwsdlsxXT1jLHZbMl09cyk6YzxzJiYodlswXT1jLHZbMV09cyx2WzJdPWwpfXIuc29ydChvKTt2YXIgdT1uZXcgQXJyYXkobik7Zm9yKGk9MDtpPHUubGVuZ3RoOysraSl1W2ldPTA7dmFyIGY9W10saD1bXSxwPW5ldyBBcnJheSgzKm4pLGQ9bmV3IEFycmF5KDMqbiksbT1udWxsO2UmJihtPVtdKTt2YXIgZz1uZXcgYShyLHAsZCx1LGYsaCxtKTtmb3IoaT0wO2k8bjsrK2kpZm9yKHZhciB2PXJbaV0seT0wO3k8MzsrK3kpe3M9dlt5XSxsPXZbKHkrMSklM107dmFyIHg9cFszKmkreV09Zy5sb2NhdGUobCxzLHQub3Bwb3NpdGUobCxzKSksYj1kWzMqaSt5XT10LmlzQ29uc3RyYWludChzLGwpO3g8MCYmKGI/aC5wdXNoKGkpOihmLnB1c2goaSksdVtpXT0xKSxlJiZtLnB1c2goW2wscywtMV0pKX1yZXR1cm4gZ30odCxyKTtpZigwPT09ZSlyZXR1cm4gcj9uLmNlbGxzLmNvbmNhdChuLmJvdW5kYXJ5KTpuLmNlbGxzO3ZhciBpPTEscz1uLmFjdGl2ZSxsPW4ubmV4dCxjPW4uZmxhZ3MsdT1uLmNlbGxzLGY9bi5jb25zdHJhaW50LGg9bi5uZWlnaGJvcjtmb3IoO3MubGVuZ3RoPjB8fGwubGVuZ3RoPjA7KXtmb3IoO3MubGVuZ3RoPjA7KXt2YXIgcD1zLnBvcCgpO2lmKGNbcF0hPT0taSl7Y1twXT1pO3VbcF07Zm9yKHZhciBkPTA7ZDwzOysrZCl7dmFyIG09aFszKnArZF07bT49MCYmMD09PWNbbV0mJihmWzMqcCtkXT9sLnB1c2gobSk6KHMucHVzaChtKSxjW21dPWkpKX19fXZhciBnPWw7bD1zLHM9ZyxsLmxlbmd0aD0wLGk9LWl9dmFyIHY9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj0wLGk9MDtpPHQubGVuZ3RoOysraSllW2ldPT09ciYmKHRbbisrXT10W2ldKTtyZXR1cm4gdC5sZW5ndGg9bix0fSh1LGMsZSk7aWYocilyZXR1cm4gdi5jb25jYXQobi5ib3VuZGFyeSk7cmV0dXJuIHZ9LGEucHJvdG90eXBlLmxvY2F0ZT0obj1bMCwwLDBdLGZ1bmN0aW9uKHQsZSxyKXt2YXIgYT10LHM9ZSxsPXI7cmV0dXJuIGU8cj9lPHQmJihhPWUscz1yLGw9dCk6cjx0JiYoYT1yLHM9dCxsPWUpLGE8MD8tMTooblswXT1hLG5bMV09cyxuWzJdPWwsaS5lcSh0aGlzLmNlbGxzLG4sbykpfSl9LHsiYmluYXJ5LXNlYXJjaC1ib3VuZHMiOjMxfV0sNDU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiYmluYXJ5LXNlYXJjaC1ib3VuZHMiKSxpPXQoInJvYnVzdC1vcmllbnRhdGlvbiIpWzNdO2Z1bmN0aW9uIGEodCxlLHIsbixpKXt0aGlzLmE9dCx0aGlzLmI9ZSx0aGlzLmlkeD1yLHRoaXMubG93ZXJJZHM9bix0aGlzLnVwcGVySWRzPWl9ZnVuY3Rpb24gbyh0LGUscixuKXt0aGlzLmE9dCx0aGlzLmI9ZSx0aGlzLnR5cGU9cix0aGlzLmlkeD1ufWZ1bmN0aW9uIHModCxlKXt2YXIgcj10LmFbMF0tZS5hWzBdfHx0LmFbMV0tZS5hWzFdfHx0LnR5cGUtZS50eXBlO3JldHVybiByfHwoMCE9PXQudHlwZSYmKHI9aSh0LmEsdC5iLGUuYikpP3I6dC5pZHgtZS5pZHgpfWZ1bmN0aW9uIGwodCxlKXtyZXR1cm4gaSh0LmEsdC5iLGUpfWZ1bmN0aW9uIGModCxlLHIsYSxvKXtmb3IodmFyIHM9bi5sdChlLGEsbCksYz1uLmd0KGUsYSxsKSx1PXM7dTxjOysrdSl7Zm9yKHZhciBmPWVbdV0saD1mLmxvd2VySWRzLHA9aC5sZW5ndGg7cD4xJiZpKHJbaFtwLTJdXSxyW2hbcC0xXV0sYSk+MDspdC5wdXNoKFtoW3AtMV0saFtwLTJdLG9dKSxwLT0xO2gubGVuZ3RoPXAsaC5wdXNoKG8pO3ZhciBkPWYudXBwZXJJZHM7Zm9yKHA9ZC5sZW5ndGg7cD4xJiZpKHJbZFtwLTJdXSxyW2RbcC0xXV0sYSk8MDspdC5wdXNoKFtkW3AtMl0sZFtwLTFdLG9dKSxwLT0xO2QubGVuZ3RoPXAsZC5wdXNoKG8pfX1mdW5jdGlvbiB1KHQsZSl7dmFyIHI7cmV0dXJuKHI9dC5hWzBdPGUuYVswXT9pKHQuYSx0LmIsZS5hKTppKGUuYixlLmEsdC5hKSk/cjoocj1lLmJbMF08dC5iWzBdP2kodC5hLHQuYixlLmIpOmkoZS5iLGUuYSx0LmIpKXx8dC5pZHgtZS5pZHh9ZnVuY3Rpb24gZih0LGUscil7dmFyIGk9bi5sZSh0LHIsdSksbz10W2ldLHM9by51cHBlcklkcyxsPXNbcy5sZW5ndGgtMV07by51cHBlcklkcz1bbF0sdC5zcGxpY2UoaSsxLDAsbmV3IGEoci5hLHIuYixyLmlkeCxbbF0scykpfWZ1bmN0aW9uIGgodCxlLHIpe3ZhciBpPXIuYTtyLmE9ci5iLHIuYj1pO3ZhciBhPW4uZXEodCxyLHUpLG89dFthXTt0W2EtMV0udXBwZXJJZHM9by51cHBlcklkcyx0LnNwbGljZShhLDEpfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10Lmxlbmd0aCxuPWUubGVuZ3RoLGk9W10sbD0wO2w8cjsrK2wpaS5wdXNoKG5ldyBvKHRbbF0sbnVsbCwwLGwpKTtmb3IobD0wO2w8bjsrK2wpe3ZhciB1PWVbbF0scD10W3VbMF1dLGQ9dFt1WzFdXTtwWzBdPGRbMF0/aS5wdXNoKG5ldyBvKHAsZCwyLGwpLG5ldyBvKGQscCwxLGwpKTpwWzBdPmRbMF0mJmkucHVzaChuZXcgbyhkLHAsMixsKSxuZXcgbyhwLGQsMSxsKSl9aS5zb3J0KHMpO2Zvcih2YXIgbT1pWzBdLmFbMF0tKDErTWF0aC5hYnMoaVswXS5hWzBdKSkqTWF0aC5wb3coMiwtNTIpLGc9W25ldyBhKFttLDFdLFttLDBdLC0xLFtdLFtdLFtdLFtdKV0sdj1bXSx5PShsPTAsaS5sZW5ndGgpO2w8eTsrK2wpe3ZhciB4PWlbbF0sYj14LnR5cGU7MD09PWI/Yyh2LGcsdCx4LmEseC5pZHgpOjI9PT1iP2YoZyx0LHgpOmgoZyx0LHgpfXJldHVybiB2fX0seyJiaW5hcnktc2VhcmNoLWJvdW5kcyI6MzEsInJvYnVzdC1vcmllbnRhdGlvbiI6Mjg0fV0sNDY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiYmluYXJ5LXNlYXJjaC1ib3VuZHMiKTtmdW5jdGlvbiBpKHQsZSl7dGhpcy5zdGFycz10LHRoaXMuZWRnZXM9ZX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9bmV3IEFycmF5KHQpLG49MDtuPHQ7KytuKXJbbl09W107cmV0dXJuIG5ldyBpKHIsZSl9O3ZhciBhPWkucHJvdG90eXBlO2Z1bmN0aW9uIG8odCxlLHIpe2Zvcih2YXIgbj0xLGk9dC5sZW5ndGg7bjxpO24rPTIpaWYodFtuLTFdPT09ZSYmdFtuXT09PXIpcmV0dXJuIHRbbi0xXT10W2ktMl0sdFtuXT10W2ktMV0sdm9pZCh0Lmxlbmd0aD1pLTIpfWEuaXNDb25zdHJhaW50PWZ1bmN0aW9uKCl7dmFyIHQ9WzAsMF07ZnVuY3Rpb24gZSh0LGUpe3JldHVybiB0WzBdLWVbMF18fHRbMV0tZVsxXX1yZXR1cm4gZnVuY3Rpb24ocixpKXtyZXR1cm4gdFswXT1NYXRoLm1pbihyLGkpLHRbMV09TWF0aC5tYXgocixpKSxuLmVxKHRoaXMuZWRnZXMsdCxlKT49MH19KCksYS5yZW1vdmVUcmlhbmdsZT1mdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5zdGFycztvKG5bdF0sZSxyKSxvKG5bZV0scix0KSxvKG5bcl0sdCxlKX0sYS5hZGRUcmlhbmdsZT1mdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5zdGFycztuW3RdLnB1c2goZSxyKSxuW2VdLnB1c2gocix0KSxuW3JdLnB1c2godCxlKX0sYS5vcHBvc2l0ZT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10aGlzLnN0YXJzW2VdLG49MSxpPXIubGVuZ3RoO248aTtuKz0yKWlmKHJbbl09PT10KXJldHVybiByW24tMV07cmV0dXJuLTF9LGEuZmxpcD1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMub3Bwb3NpdGUodCxlKSxuPXRoaXMub3Bwb3NpdGUoZSx0KTt0aGlzLnJlbW92ZVRyaWFuZ2xlKHQsZSxyKSx0aGlzLnJlbW92ZVRyaWFuZ2xlKGUsdCxuKSx0aGlzLmFkZFRyaWFuZ2xlKHQsbixyKSx0aGlzLmFkZFRyaWFuZ2xlKGUscixuKX0sYS5lZGdlcz1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLnN0YXJzLGU9W10scj0wLG49dC5sZW5ndGg7cjxuOysrcilmb3IodmFyIGk9dFtyXSxhPTAsbz1pLmxlbmd0aDthPG87YSs9MillLnB1c2goW2lbYV0saVthKzFdXSk7cmV0dXJuIGV9LGEuY2VsbHM9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5zdGFycyxlPVtdLHI9MCxuPXQubGVuZ3RoO3I8bjsrK3IpZm9yKHZhciBpPXRbcl0sYT0wLG89aS5sZW5ndGg7YTxvO2ErPTIpe3ZhciBzPWlbYV0sbD1pW2ErMV07cjxNYXRoLm1pbihzLGwpJiZlLnB1c2goW3IscyxsXSl9cmV0dXJuIGV9fSx7ImJpbmFyeS1zZWFyY2gtYm91bmRzIjozMX1dLDQ3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtmb3IodmFyIGU9MSxyPTE7cjx0Lmxlbmd0aDsrK3IpZm9yKHZhciBuPTA7bjxyOysrbilpZih0W3JdPHRbbl0pZT0tZTtlbHNlIGlmKHRbbl09PT10W3JdKXJldHVybiAwO3JldHVybiBlfX0se31dLDQ4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImR1cCIpLGk9dCgicm9idXN0LWxpbmVhci1zb2x2ZSIpO2Z1bmN0aW9uIGEodCxlKXtmb3IodmFyIHI9MCxuPXQubGVuZ3RoLGk9MDtpPG47KytpKXIrPXRbaV0qZVtpXTtyZXR1cm4gcn1mdW5jdGlvbiBvKHQpe3ZhciBlPXQubGVuZ3RoO2lmKDA9PT1lKXJldHVybltdO3RbMF0ubGVuZ3RoO3ZhciByPW4oW3QubGVuZ3RoKzEsdC5sZW5ndGgrMV0sMSksbz1uKFt0Lmxlbmd0aCsxXSwxKTtyW2VdW2VdPTA7Zm9yKHZhciBzPTA7czxlOysrcyl7Zm9yKHZhciBsPTA7bDw9czsrK2wpcltsXVtzXT1yW3NdW2xdPTIqYSh0W3NdLHRbbF0pO29bc109YSh0W3NdLHRbc10pfXZhciBjPWkocixvKSx1PTAsZj1jW2UrMV07Zm9yKHM9MDtzPGYubGVuZ3RoOysrcyl1Kz1mW3NdO3ZhciBoPW5ldyBBcnJheShlKTtmb3Iocz0wO3M8ZTsrK3Mpe2Y9Y1tzXTt2YXIgcD0wO2ZvcihsPTA7bDxmLmxlbmd0aDsrK2wpcCs9ZltsXTtoW3NdPXAvdX1yZXR1cm4gaH1mdW5jdGlvbiBzKHQpe2lmKDA9PT10Lmxlbmd0aClyZXR1cm5bXTtmb3IodmFyIGU9dFswXS5sZW5ndGgscj1uKFtlXSksaT1vKHQpLGE9MDthPHQubGVuZ3RoOysrYSlmb3IodmFyIHM9MDtzPGU7KytzKXJbc10rPXRbYV1bc10qaVthXTtyZXR1cm4gcn1zLmJhcnljZW5ldHJpYz1vLGUuZXhwb3J0cz1zfSx7ZHVwOjY1LCJyb2J1c3QtbGluZWFyLXNvbHZlIjoyODN9XSw0OTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0KXtmb3IodmFyIGU9bih0KSxyPTAsaT0wO2k8dC5sZW5ndGg7KytpKWZvcih2YXIgYT10W2ldLG89MDtvPGUubGVuZ3RoOysrbylyKz1NYXRoLnBvdyhhW29dLWVbb10sMik7cmV0dXJuIE1hdGguc3FydChyL3QubGVuZ3RoKX07dmFyIG49dCgiY2lyY3VtY2VudGVyIil9LHtjaXJjdW1jZW50ZXI6NDh9XSw1MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuO2lmKHIpe249ZTtmb3IodmFyIGk9bmV3IEFycmF5KGUubGVuZ3RoKSxhPTA7YTxlLmxlbmd0aDsrK2Epe3ZhciBvPWVbYV07aVthXT1bb1swXSxvWzFdLHJbYV1dfWU9aX12YXIgcz1mdW5jdGlvbih0LGUscil7dmFyIG49ZCh0LFtdLHAodCkpO3JldHVybiB2KGUsbixyKSwhIW59KHQsZSwhIXIpO2Zvcig7eSh0LGUsISFyKTspcz0hMDtpZihyJiZzKXtuLmxlbmd0aD0wLHIubGVuZ3RoPTA7Zm9yKGE9MDthPGUubGVuZ3RoOysrYSl7bz1lW2FdO24ucHVzaChbb1swXSxvWzFdXSksci5wdXNoKG9bMl0pfX1yZXR1cm4gc307dmFyIG49dCgidW5pb24tZmluZCIpLGk9dCgiYm94LWludGVyc2VjdCIpLGE9dCgicm9idXN0LXNlZ21lbnQtaW50ZXJzZWN0Iiksbz10KCJiaWctcmF0Iikscz10KCJiaWctcmF0L2NtcCIpLGw9dCgiYmlnLXJhdC90by1mbG9hdCIpLGM9dCgicmF0LXZlYyIpLHU9dCgibmV4dGFmdGVyIiksZj10KCIuL2xpYi9yYXQtc2VnLWludGVyc2VjdCIpO2Z1bmN0aW9uIGgodCl7dmFyIGU9bCh0KTtyZXR1cm5bdShlLC0xLzApLHUoZSwxLzApXX1mdW5jdGlvbiBwKHQpe2Zvcih2YXIgZT1uZXcgQXJyYXkodC5sZW5ndGgpLHI9MDtyPHQubGVuZ3RoOysrcil7dmFyIG49dFtyXTtlW3JdPVt1KG5bMF0sLTEvMCksdShuWzFdLC0xLzApLHUoblswXSwxLzApLHUoblsxXSwxLzApXX1yZXR1cm4gZX1mdW5jdGlvbiBkKHQsZSxyKXtmb3IodmFyIGE9ZS5sZW5ndGgsbz1uZXcgbihhKSxzPVtdLGw9MDtsPGUubGVuZ3RoOysrbCl7dmFyIGM9ZVtsXSxmPWgoY1swXSkscD1oKGNbMV0pO3MucHVzaChbdShmWzBdLC0xLzApLHUocFswXSwtMS8wKSx1KGZbMV0sMS8wKSx1KHBbMV0sMS8wKV0pfWkocywoZnVuY3Rpb24odCxlKXtvLmxpbmsodCxlKX0pKTt2YXIgZD0hMCxtPW5ldyBBcnJheShhKTtmb3IobD0wO2w8YTsrK2wpeyh2PW8uZmluZChsKSkhPT1sJiYoZD0hMSx0W3ZdPVtNYXRoLm1pbih0W2xdWzBdLHRbdl1bMF0pLE1hdGgubWluKHRbbF1bMV0sdFt2XVsxXSldKX1pZihkKXJldHVybiBudWxsO3ZhciBnPTA7Zm9yKGw9MDtsPGE7KytsKXt2YXIgdjsodj1vLmZpbmQobCkpPT09bD8obVtsXT1nLHRbZysrXT10W2xdKTptW2xdPS0xfXQubGVuZ3RoPWc7Zm9yKGw9MDtsPGE7KytsKW1bbF08MCYmKG1bbF09bVtvLmZpbmQobCldKTtyZXR1cm4gbX1mdW5jdGlvbiBtKHQsZSl7cmV0dXJuIHRbMF0tZVswXXx8dFsxXS1lWzFdfWZ1bmN0aW9uIGcodCxlKXt2YXIgcj10WzBdLWVbMF18fHRbMV0tZVsxXTtyZXR1cm4gcnx8KHRbMl08ZVsyXT8tMTp0WzJdPmVbMl0/MTowKX1mdW5jdGlvbiB2KHQsZSxyKXtpZigwIT09dC5sZW5ndGgpe2lmKGUpZm9yKHZhciBuPTA7bjx0Lmxlbmd0aDsrK24pe3ZhciBpPWVbKG89dFtuXSlbMF1dLGE9ZVtvWzFdXTtvWzBdPU1hdGgubWluKGksYSksb1sxXT1NYXRoLm1heChpLGEpfWVsc2UgZm9yKG49MDtuPHQubGVuZ3RoOysrbil7dmFyIG87aT0obz10W25dKVswXSxhPW9bMV07b1swXT1NYXRoLm1pbihpLGEpLG9bMV09TWF0aC5tYXgoaSxhKX1yP3Quc29ydChnKTp0LnNvcnQobSk7dmFyIHM9MTtmb3Iobj0xO248dC5sZW5ndGg7KytuKXt2YXIgbD10W24tMV0sYz10W25dOyhjWzBdIT09bFswXXx8Y1sxXSE9PWxbMV18fHImJmNbMl0hPT1sWzJdKSYmKHRbcysrXT1jKX10Lmxlbmd0aD1zfX1mdW5jdGlvbiB5KHQsZSxyKXt2YXIgbj1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1uZXcgQXJyYXkoZS5sZW5ndGgpLG49MDtuPGUubGVuZ3RoOysrbil7dmFyIGk9ZVtuXSxhPXRbaVswXV0sbz10W2lbMV1dO3Jbbl09W3UoTWF0aC5taW4oYVswXSxvWzBdKSwtMS8wKSx1KE1hdGgubWluKGFbMV0sb1sxXSksLTEvMCksdShNYXRoLm1heChhWzBdLG9bMF0pLDEvMCksdShNYXRoLm1heChhWzFdLG9bMV0pLDEvMCldfXJldHVybiByfSh0LGUpLGg9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPVtdO3JldHVybiBpKHIsKGZ1bmN0aW9uKHIsaSl7dmFyIG89ZVtyXSxzPWVbaV07aWYob1swXSE9PXNbMF0mJm9bMF0hPT1zWzFdJiZvWzFdIT09c1swXSYmb1sxXSE9PXNbMV0pe3ZhciBsPXRbb1swXV0sYz10W29bMV1dLHU9dFtzWzBdXSxmPXRbc1sxXV07YShsLGMsdSxmKSYmbi5wdXNoKFtyLGldKX19KSksbn0odCxlLG4pLG09cCh0KSxnPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBvPVtdO3JldHVybiBpKHIsbiwoZnVuY3Rpb24ocixuKXt2YXIgaT1lW3JdO2lmKGlbMF0hPT1uJiZpWzFdIT09bil7dmFyIHM9dFtuXSxsPXRbaVswXV0sYz10W2lbMV1dO2EobCxjLHMscykmJm8ucHVzaChbcixuXSl9fSkpLG99KHQsZSxuLG0pLHk9ZCh0LGZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGEsdSxoPXQubWFwKChmdW5jdGlvbih0KXtyZXR1cm5bbyh0WzBdKSxvKHRbMV0pXX0pKTtmb3IoYT0wO2E8ci5sZW5ndGg7KythKXt2YXIgcD1yW2FdO3U9cFswXTt2YXIgZD1wWzFdLG09ZVt1XSxnPWVbZF0sdj1mKGModFttWzBdXSksYyh0W21bMV1dKSxjKHRbZ1swXV0pLGModFtnWzFdXSkpO2lmKHYpe3ZhciB5PXQubGVuZ3RoO3QucHVzaChbbCh2WzBdKSxsKHZbMV0pXSksaC5wdXNoKHYpLG4ucHVzaChbdSx5XSxbZCx5XSl9fWZvcihuLnNvcnQoKGZ1bmN0aW9uKHQsZSl7aWYodFswXSE9PWVbMF0pcmV0dXJuIHRbMF0tZVswXTt2YXIgcj1oW3RbMV1dLG49aFtlWzFdXTtyZXR1cm4gcyhyWzBdLG5bMF0pfHxzKHJbMV0sblsxXSl9KSksYT1uLmxlbmd0aC0xO2E+PTA7LS1hKXt2YXIgeD1lW3U9KFM9blthXSlbMF1dLGI9eFswXSxfPXhbMV0sdz10W2JdLFQ9dFtfXTtpZigod1swXS1UWzBdfHx3WzFdLVRbMV0pPDApe3ZhciBrPWI7Yj1fLF89a314WzBdPWI7dmFyIEEsTT14WzFdPVNbMV07Zm9yKGkmJihBPXhbMl0pO2E+MCYmblthLTFdWzBdPT09dTspe3ZhciBTLEU9KFM9blstLWFdKVsxXTtpP2UucHVzaChbTSxFLEFdKTplLnB1c2goW00sRV0pLE09RX1pP2UucHVzaChbTSxfLEFdKTplLnB1c2goW00sX10pfXJldHVybiBofSh0LGUsaCxnLHIpKTtyZXR1cm4gdihlLHksciksISF5fHwoaC5sZW5ndGg+MHx8Zy5sZW5ndGg+MCl9fSx7Ii4vbGliL3JhdC1zZWctaW50ZXJzZWN0Ijo1MSwiYmlnLXJhdCI6MTgsImJpZy1yYXQvY21wIjoxNiwiYmlnLXJhdC90by1mbG9hdCI6MzAsImJveC1pbnRlcnNlY3QiOjM1LG5leHRhZnRlcjoyNjAsInJhdC12ZWMiOjI3Mywicm9idXN0LXNlZ21lbnQtaW50ZXJzZWN0IjoyODcsInVuaW9uLWZpbmQiOjMwOX1dLDUxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuKXt2YXIgYT1zKGUsdCksZj1zKG4sciksaD11KGEsZik7aWYoMD09PW8oaCkpcmV0dXJuIG51bGw7dmFyIHA9cyh0LHIpLGQ9dShmLHApLG09aShkLGgpLGc9YyhhLG0pO3JldHVybiBsKHQsZyl9O3ZhciBuPXQoImJpZy1yYXQvbXVsIiksaT10KCJiaWctcmF0L2RpdiIpLGE9dCgiYmlnLXJhdC9zdWIiKSxvPXQoImJpZy1yYXQvc2lnbiIpLHM9dCgicmF0LXZlYy9zdWIiKSxsPXQoInJhdC12ZWMvYWRkIiksYz10KCJyYXQtdmVjL211bHMiKTtmdW5jdGlvbiB1KHQsZSl7cmV0dXJuIGEobih0WzBdLGVbMV0pLG4odFsxXSxlWzBdKSl9fSx7ImJpZy1yYXQvZGl2IjoxNywiYmlnLXJhdC9tdWwiOjI3LCJiaWctcmF0L3NpZ24iOjI4LCJiaWctcmF0L3N1YiI6MjksInJhdC12ZWMvYWRkIjoyNzIsInJhdC12ZWMvbXVscyI6Mjc0LCJyYXQtdmVjL3N1YiI6Mjc1fV0sNTI6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9e2pldDpbe2luZGV4OjAscmdiOlswLDAsMTMxXX0se2luZGV4Oi4xMjUscmdiOlswLDYwLDE3MF19LHtpbmRleDouMzc1LHJnYjpbNSwyNTUsMjU1XX0se2luZGV4Oi42MjUscmdiOlsyNTUsMjU1LDBdfSx7aW5kZXg6Ljg3NSxyZ2I6WzI1MCwwLDBdfSx7aW5kZXg6MSxyZ2I6WzEyOCwwLDBdfV0saHN2Olt7aW5kZXg6MCxyZ2I6WzI1NSwwLDBdfSx7aW5kZXg6LjE2OSxyZ2I6WzI1MywyNTUsMl19LHtpbmRleDouMTczLHJnYjpbMjQ3LDI1NSwyXX0se2luZGV4Oi4zMzcscmdiOlswLDI1Miw0XX0se2luZGV4Oi4zNDEscmdiOlswLDI1MiwxMF19LHtpbmRleDouNTA2LHJnYjpbMSwyNDksMjU1XX0se2luZGV4Oi42NzEscmdiOlsyLDAsMjUzXX0se2luZGV4Oi42NzUscmdiOls4LDAsMjUzXX0se2luZGV4Oi44MzkscmdiOlsyNTUsMCwyNTFdfSx7aW5kZXg6Ljg0MyxyZ2I6WzI1NSwwLDI0NV19LHtpbmRleDoxLHJnYjpbMjU1LDAsNl19XSxob3Q6W3tpbmRleDowLHJnYjpbMCwwLDBdfSx7aW5kZXg6LjMscmdiOlsyMzAsMCwwXX0se2luZGV4Oi42LHJnYjpbMjU1LDIxMCwwXX0se2luZGV4OjEscmdiOlsyNTUsMjU1LDI1NV19XSxzcHJpbmc6W3tpbmRleDowLHJnYjpbMjU1LDAsMjU1XX0se2luZGV4OjEscmdiOlsyNTUsMjU1LDBdfV0sc3VtbWVyOlt7aW5kZXg6MCxyZ2I6WzAsMTI4LDEwMl19LHtpbmRleDoxLHJnYjpbMjU1LDI1NSwxMDJdfV0sYXV0dW1uOlt7aW5kZXg6MCxyZ2I6WzI1NSwwLDBdfSx7aW5kZXg6MSxyZ2I6WzI1NSwyNTUsMF19XSx3aW50ZXI6W3tpbmRleDowLHJnYjpbMCwwLDI1NV19LHtpbmRleDoxLHJnYjpbMCwyNTUsMTI4XX1dLGJvbmU6W3tpbmRleDowLHJnYjpbMCwwLDBdfSx7aW5kZXg6LjM3NixyZ2I6Wzg0LDg0LDExNl19LHtpbmRleDouNzUzLHJnYjpbMTY5LDIwMCwyMDBdfSx7aW5kZXg6MSxyZ2I6WzI1NSwyNTUsMjU1XX1dLGNvcHBlcjpbe2luZGV4OjAscmdiOlswLDAsMF19LHtpbmRleDouODA0LHJnYjpbMjU1LDE2MCwxMDJdfSx7aW5kZXg6MSxyZ2I6WzI1NSwxOTksMTI3XX1dLGdyZXlzOlt7aW5kZXg6MCxyZ2I6WzAsMCwwXX0se2luZGV4OjEscmdiOlsyNTUsMjU1LDI1NV19XSx5aWduYnU6W3tpbmRleDowLHJnYjpbOCwyOSw4OF19LHtpbmRleDouMTI1LHJnYjpbMzcsNTIsMTQ4XX0se2luZGV4Oi4yNSxyZ2I6WzM0LDk0LDE2OF19LHtpbmRleDouMzc1LHJnYjpbMjksMTQ1LDE5Ml19LHtpbmRleDouNSxyZ2I6WzY1LDE4MiwxOTZdfSx7aW5kZXg6LjYyNSxyZ2I6WzEyNywyMDUsMTg3XX0se2luZGV4Oi43NSxyZ2I6WzE5OSwyMzMsMTgwXX0se2luZGV4Oi44NzUscmdiOlsyMzcsMjQ4LDIxN119LHtpbmRleDoxLHJnYjpbMjU1LDI1NSwyMTddfV0sZ3JlZW5zOlt7aW5kZXg6MCxyZ2I6WzAsNjgsMjddfSx7aW5kZXg6LjEyNSxyZ2I6WzAsMTA5LDQ0XX0se2luZGV4Oi4yNSxyZ2I6WzM1LDEzOSw2OV19LHtpbmRleDouMzc1LHJnYjpbNjUsMTcxLDkzXX0se2luZGV4Oi41LHJnYjpbMTE2LDE5NiwxMThdfSx7aW5kZXg6LjYyNSxyZ2I6WzE2MSwyMTcsMTU1XX0se2luZGV4Oi43NSxyZ2I6WzE5OSwyMzMsMTkyXX0se2luZGV4Oi44NzUscmdiOlsyMjksMjQ1LDIyNF19LHtpbmRleDoxLHJnYjpbMjQ3LDI1MiwyNDVdfV0seWlvcnJkOlt7aW5kZXg6MCxyZ2I6WzEyOCwwLDM4XX0se2luZGV4Oi4xMjUscmdiOlsxODksMCwzOF19LHtpbmRleDouMjUscmdiOlsyMjcsMjYsMjhdfSx7aW5kZXg6LjM3NSxyZ2I6WzI1Miw3OCw0Ml19LHtpbmRleDouNSxyZ2I6WzI1MywxNDEsNjBdfSx7aW5kZXg6LjYyNSxyZ2I6WzI1NCwxNzgsNzZdfSx7aW5kZXg6Ljc1LHJnYjpbMjU0LDIxNywxMThdfSx7aW5kZXg6Ljg3NSxyZ2I6WzI1NSwyMzcsMTYwXX0se2luZGV4OjEscmdiOlsyNTUsMjU1LDIwNF19XSxibHVlcmVkOlt7aW5kZXg6MCxyZ2I6WzAsMCwyNTVdfSx7aW5kZXg6MSxyZ2I6WzI1NSwwLDBdfV0scmRidTpbe2luZGV4OjAscmdiOls1LDEwLDE3Ml19LHtpbmRleDouMzUscmdiOlsxMDYsMTM3LDI0N119LHtpbmRleDouNSxyZ2I6WzE5MCwxOTAsMTkwXX0se2luZGV4Oi42LHJnYjpbMjIwLDE3MCwxMzJdfSx7aW5kZXg6LjcscmdiOlsyMzAsMTQ1LDkwXX0se2luZGV4OjEscmdiOlsxNzgsMTAsMjhdfV0scGljbmljOlt7aW5kZXg6MCxyZ2I6WzAsMCwyNTVdfSx7aW5kZXg6LjEscmdiOls1MSwxNTMsMjU1XX0se2luZGV4Oi4yLHJnYjpbMTAyLDIwNCwyNTVdfSx7aW5kZXg6LjMscmdiOlsxNTMsMjA0LDI1NV19LHtpbmRleDouNCxyZ2I6WzIwNCwyMDQsMjU1XX0se2luZGV4Oi41LHJnYjpbMjU1LDI1NSwyNTVdfSx7aW5kZXg6LjYscmdiOlsyNTUsMjA0LDI1NV19LHtpbmRleDouNyxyZ2I6WzI1NSwxNTMsMjU1XX0se2luZGV4Oi44LHJnYjpbMjU1LDEwMiwyMDRdfSx7aW5kZXg6LjkscmdiOlsyNTUsMTAyLDEwMl19LHtpbmRleDoxLHJnYjpbMjU1LDAsMF19XSxyYWluYm93Olt7aW5kZXg6MCxyZ2I6WzE1MCwwLDkwXX0se2luZGV4Oi4xMjUscmdiOlswLDAsMjAwXX0se2luZGV4Oi4yNSxyZ2I6WzAsMjUsMjU1XX0se2luZGV4Oi4zNzUscmdiOlswLDE1MiwyNTVdfSx7aW5kZXg6LjUscmdiOls0NCwyNTUsMTUwXX0se2luZGV4Oi42MjUscmdiOlsxNTEsMjU1LDBdfSx7aW5kZXg6Ljc1LHJnYjpbMjU1LDIzNCwwXX0se2luZGV4Oi44NzUscmdiOlsyNTUsMTExLDBdfSx7aW5kZXg6MSxyZ2I6WzI1NSwwLDBdfV0scG9ydGxhbmQ6W3tpbmRleDowLHJnYjpbMTIsNTEsMTMxXX0se2luZGV4Oi4yNSxyZ2I6WzEwLDEzNiwxODZdfSx7aW5kZXg6LjUscmdiOlsyNDIsMjExLDU2XX0se2luZGV4Oi43NSxyZ2I6WzI0MiwxNDMsNTZdfSx7aW5kZXg6MSxyZ2I6WzIxNywzMCwzMF19XSxibGFja2JvZHk6W3tpbmRleDowLHJnYjpbMCwwLDBdfSx7aW5kZXg6LjIscmdiOlsyMzAsMCwwXX0se2luZGV4Oi40LHJnYjpbMjMwLDIxMCwwXX0se2luZGV4Oi43LHJnYjpbMjU1LDI1NSwyNTVdfSx7aW5kZXg6MSxyZ2I6WzE2MCwyMDAsMjU1XX1dLGVhcnRoOlt7aW5kZXg6MCxyZ2I6WzAsMCwxMzBdfSx7aW5kZXg6LjEscmdiOlswLDE4MCwxODBdfSx7aW5kZXg6LjIscmdiOls0MCwyMTAsNDBdfSx7aW5kZXg6LjQscmdiOlsyMzAsMjMwLDUwXX0se2luZGV4Oi42LHJnYjpbMTIwLDcwLDIwXX0se2luZGV4OjEscmdiOlsyNTUsMjU1LDI1NV19XSxlbGVjdHJpYzpbe2luZGV4OjAscmdiOlswLDAsMF19LHtpbmRleDouMTUscmdiOlszMCwwLDEwMF19LHtpbmRleDouNCxyZ2I6WzEyMCwwLDEwMF19LHtpbmRleDouNixyZ2I6WzE2MCw5MCwwXX0se2luZGV4Oi44LHJnYjpbMjMwLDIwMCwwXX0se2luZGV4OjEscmdiOlsyNTUsMjUwLDIyMF19XSxhbHBoYTpbe2luZGV4OjAscmdiOlsyNTUsMjU1LDI1NSwwXX0se2luZGV4OjEscmdiOlsyNTUsMjU1LDI1NSwxXX1dLHZpcmlkaXM6W3tpbmRleDowLHJnYjpbNjgsMSw4NF19LHtpbmRleDouMTMscmdiOls3MSw0NCwxMjJdfSx7aW5kZXg6LjI1LHJnYjpbNTksODEsMTM5XX0se2luZGV4Oi4zOCxyZ2I6WzQ0LDExMywxNDJdfSx7aW5kZXg6LjUscmdiOlszMywxNDQsMTQxXX0se2luZGV4Oi42MyxyZ2I6WzM5LDE3MywxMjldfSx7aW5kZXg6Ljc1LHJnYjpbOTIsMjAwLDk5XX0se2luZGV4Oi44OCxyZ2I6WzE3MCwyMjAsNTBdfSx7aW5kZXg6MSxyZ2I6WzI1MywyMzEsMzddfV0saW5mZXJubzpbe2luZGV4OjAscmdiOlswLDAsNF19LHtpbmRleDouMTMscmdiOlszMSwxMiw3Ml19LHtpbmRleDouMjUscmdiOls4NSwxNSwxMDldfSx7aW5kZXg6LjM4LHJnYjpbMTM2LDM0LDEwNl19LHtpbmRleDouNSxyZ2I6WzE4Niw1NCw4NV19LHtpbmRleDouNjMscmdiOlsyMjcsODksNTFdfSx7aW5kZXg6Ljc1LHJnYjpbMjQ5LDE0MCwxMF19LHtpbmRleDouODgscmdiOlsyNDksMjAxLDUwXX0se2luZGV4OjEscmdiOlsyNTIsMjU1LDE2NF19XSxtYWdtYTpbe2luZGV4OjAscmdiOlswLDAsNF19LHtpbmRleDouMTMscmdiOlsyOCwxNiw2OF19LHtpbmRleDouMjUscmdiOls3OSwxOCwxMjNdfSx7aW5kZXg6LjM4LHJnYjpbMTI5LDM3LDEyOV19LHtpbmRleDouNSxyZ2I6WzE4MSw1NCwxMjJdfSx7aW5kZXg6LjYzLHJnYjpbMjI5LDgwLDEwMF19LHtpbmRleDouNzUscmdiOlsyNTEsMTM1LDk3XX0se2luZGV4Oi44OCxyZ2I6WzI1NCwxOTQsMTM1XX0se2luZGV4OjEscmdiOlsyNTIsMjUzLDE5MV19XSxwbGFzbWE6W3tpbmRleDowLHJnYjpbMTMsOCwxMzVdfSx7aW5kZXg6LjEzLHJnYjpbNzUsMywxNjFdfSx7aW5kZXg6LjI1LHJnYjpbMTI1LDMsMTY4XX0se2luZGV4Oi4zOCxyZ2I6WzE2OCwzNCwxNTBdfSx7aW5kZXg6LjUscmdiOlsyMDMsNzAsMTIxXX0se2luZGV4Oi42MyxyZ2I6WzIyOSwxMDcsOTNdfSx7aW5kZXg6Ljc1LHJnYjpbMjQ4LDE0OCw2NV19LHtpbmRleDouODgscmdiOlsyNTMsMTk1LDQwXX0se2luZGV4OjEscmdiOlsyNDAsMjQ5LDMzXX1dLHdhcm06W3tpbmRleDowLHJnYjpbMTI1LDAsMTc5XX0se2luZGV4Oi4xMyxyZ2I6WzE3MiwwLDE4N119LHtpbmRleDouMjUscmdiOlsyMTksMCwxNzBdfSx7aW5kZXg6LjM4LHJnYjpbMjU1LDAsMTMwXX0se2luZGV4Oi41LHJnYjpbMjU1LDYzLDc0XX0se2luZGV4Oi42MyxyZ2I6WzI1NSwxMjMsMF19LHtpbmRleDouNzUscmdiOlsyMzQsMTc2LDBdfSx7aW5kZXg6Ljg4LHJnYjpbMTkwLDIyOCwwXX0se2luZGV4OjEscmdiOlsxNDcsMjU1LDBdfV0sY29vbDpbe2luZGV4OjAscmdiOlsxMjUsMCwxNzldfSx7aW5kZXg6LjEzLHJnYjpbMTE2LDAsMjE4XX0se2luZGV4Oi4yNSxyZ2I6Wzk4LDc0LDIzN119LHtpbmRleDouMzgscmdiOls2OCwxNDYsMjMxXX0se2luZGV4Oi41LHJnYjpbMCwyMDQsMTk3XX0se2luZGV4Oi42MyxyZ2I6WzAsMjQ3LDE0Nl19LHtpbmRleDouNzUscmdiOlswLDI1NSw4OF19LHtpbmRleDouODgscmdiOls0MCwyNTUsOF19LHtpbmRleDoxLHJnYjpbMTQ3LDI1NSwwXX1dLCJyYWluYm93LXNvZnQiOlt7aW5kZXg6MCxyZ2I6WzEyNSwwLDE3OV19LHtpbmRleDouMSxyZ2I6WzE5OSwwLDE4MF19LHtpbmRleDouMixyZ2I6WzI1NSwwLDEyMV19LHtpbmRleDouMyxyZ2I6WzI1NSwxMDgsMF19LHtpbmRleDouNCxyZ2I6WzIyMiwxOTQsMF19LHtpbmRleDouNSxyZ2I6WzE1MCwyNTUsMF19LHtpbmRleDouNixyZ2I6WzAsMjU1LDU1XX0se2luZGV4Oi43LHJnYjpbMCwyNDYsMTUwXX0se2luZGV4Oi44LHJnYjpbNTAsMTY3LDIyMl19LHtpbmRleDouOSxyZ2I6WzEwMyw1MSwyMzVdfSx7aW5kZXg6MSxyZ2I6WzEyNCwwLDE4Nl19XSxiYXRoeW1ldHJ5Olt7aW5kZXg6MCxyZ2I6WzQwLDI2LDQ0XX0se2luZGV4Oi4xMyxyZ2I6WzU5LDQ5LDkwXX0se2luZGV4Oi4yNSxyZ2I6WzY0LDc2LDEzOV19LHtpbmRleDouMzgscmdiOls2MywxMTAsMTUxXX0se2luZGV4Oi41LHJnYjpbNzIsMTQyLDE1OF19LHtpbmRleDouNjMscmdiOls4NSwxNzQsMTYzXX0se2luZGV4Oi43NSxyZ2I6WzEyMCwyMDYsMTYzXX0se2luZGV4Oi44OCxyZ2I6WzE4NywyMzAsMTcyXX0se2luZGV4OjEscmdiOlsyNTMsMjU0LDIwNF19XSxjZG9tOlt7aW5kZXg6MCxyZ2I6WzQ3LDE1LDYyXX0se2luZGV4Oi4xMyxyZ2I6Wzg3LDIzLDg2XX0se2luZGV4Oi4yNSxyZ2I6WzEzMCwyOCw5OV19LHtpbmRleDouMzgscmdiOlsxNzEsNDEsOTZdfSx7aW5kZXg6LjUscmdiOlsyMDYsNjcsODZdfSx7aW5kZXg6LjYzLHJnYjpbMjMwLDEwNiw4NF19LHtpbmRleDouNzUscmdiOlsyNDIsMTQ5LDEwM119LHtpbmRleDouODgscmdiOlsyNDksMTkzLDEzNV19LHtpbmRleDoxLHJnYjpbMjU0LDIzNywxNzZdfV0sY2hsb3JvcGh5bGw6W3tpbmRleDowLHJnYjpbMTgsMzYsMjBdfSx7aW5kZXg6LjEzLHJnYjpbMjUsNjMsNDFdfSx7aW5kZXg6LjI1LHJnYjpbMjQsOTEsNTldfSx7aW5kZXg6LjM4LHJnYjpbMTMsMTE5LDcyXX0se2luZGV4Oi41LHJnYjpbMTgsMTQ4LDgwXX0se2luZGV4Oi42MyxyZ2I6WzgwLDE3Myw4OV19LHtpbmRleDouNzUscmdiOlsxMzIsMTk2LDEyMl19LHtpbmRleDouODgscmdiOlsxNzUsMjIxLDE2Ml19LHtpbmRleDoxLHJnYjpbMjE1LDI0OSwyMDhdfV0sZGVuc2l0eTpbe2luZGV4OjAscmdiOls1NCwxNCwzNl19LHtpbmRleDouMTMscmdiOls4OSwyMyw4MF19LHtpbmRleDouMjUscmdiOlsxMTAsNDUsMTMyXX0se2luZGV4Oi4zOCxyZ2I6WzEyMCw3NywxNzhdfSx7aW5kZXg6LjUscmdiOlsxMjAsMTEzLDIxM119LHtpbmRleDouNjMscmdiOlsxMTUsMTUxLDIyOF19LHtpbmRleDouNzUscmdiOlsxMzQsMTg1LDIyN119LHtpbmRleDouODgscmdiOlsxNzcsMjE0LDIyN119LHtpbmRleDoxLHJnYjpbMjMwLDI0MSwyNDFdfV0sImZyZWVzdXJmYWNlLWJsdWUiOlt7aW5kZXg6MCxyZ2I6WzMwLDQsMTEwXX0se2luZGV4Oi4xMyxyZ2I6WzQ3LDE0LDE3Nl19LHtpbmRleDouMjUscmdiOls0MSw0NSwyMzZdfSx7aW5kZXg6LjM4LHJnYjpbMjUsOTksMjEyXX0se2luZGV4Oi41LHJnYjpbNjgsMTMxLDIwMF19LHtpbmRleDouNjMscmdiOlsxMTQsMTU2LDE5N119LHtpbmRleDouNzUscmdiOlsxNTcsMTgxLDIwM119LHtpbmRleDouODgscmdiOlsyMDAsMjA4LDIxNl19LHtpbmRleDoxLHJnYjpbMjQxLDIzNywyMzZdfV0sImZyZWVzdXJmYWNlLXJlZCI6W3tpbmRleDowLHJnYjpbNjAsOSwxOF19LHtpbmRleDouMTMscmdiOlsxMDAsMTcsMjddfSx7aW5kZXg6LjI1LHJnYjpbMTQyLDIwLDI5XX0se2luZGV4Oi4zOCxyZ2I6WzE3Nyw0MywyN119LHtpbmRleDouNSxyZ2I6WzE5Miw4Nyw2M119LHtpbmRleDouNjMscmdiOlsyMDUsMTI1LDEwNV19LHtpbmRleDouNzUscmdiOlsyMTYsMTYyLDE0OF19LHtpbmRleDouODgscmdiOlsyMjcsMTk5LDE5M119LHtpbmRleDoxLHJnYjpbMjQxLDIzNywyMzZdfV0sb3h5Z2VuOlt7aW5kZXg6MCxyZ2I6WzY0LDUsNV19LHtpbmRleDouMTMscmdiOlsxMDYsNiwxNV19LHtpbmRleDouMjUscmdiOlsxNDQsMjYsN119LHtpbmRleDouMzgscmdiOlsxNjgsNjQsM119LHtpbmRleDouNSxyZ2I6WzE4OCwxMDAsNF19LHtpbmRleDouNjMscmdiOlsyMDYsMTM2LDExXX0se2luZGV4Oi43NSxyZ2I6WzIyMCwxNzQsMjVdfSx7aW5kZXg6Ljg4LHJnYjpbMjMxLDIxNSw0NF19LHtpbmRleDoxLHJnYjpbMjQ4LDI1NCwxMDVdfV0scGFyOlt7aW5kZXg6MCxyZ2I6WzUxLDIwLDI0XX0se2luZGV4Oi4xMyxyZ2I6WzkwLDMyLDM1XX0se2luZGV4Oi4yNSxyZ2I6WzEyOSw0NCwzNF19LHtpbmRleDouMzgscmdiOlsxNTksNjgsMjVdfSx7aW5kZXg6LjUscmdiOlsxODIsOTksMTldfSx7aW5kZXg6LjYzLHJnYjpbMTk5LDEzNCwyMl19LHtpbmRleDouNzUscmdiOlsyMTIsMTcxLDM1XX0se2luZGV4Oi44OCxyZ2I6WzIyMSwyMTAsNTRdfSx7aW5kZXg6MSxyZ2I6WzIyNSwyNTMsNzVdfV0scGhhc2U6W3tpbmRleDowLHJnYjpbMTQ1LDEwNSwxOF19LHtpbmRleDouMTMscmdiOlsxODQsNzEsMzhdfSx7aW5kZXg6LjI1LHJnYjpbMTg2LDU4LDExNV19LHtpbmRleDouMzgscmdiOlsxNjAsNzEsMTg1XX0se2luZGV4Oi41LHJnYjpbMTEwLDk3LDIxOF19LHtpbmRleDouNjMscmdiOls1MCwxMjMsMTY0XX0se2luZGV4Oi43NSxyZ2I6WzMxLDEzMSwxMTBdfSx7aW5kZXg6Ljg4LHJnYjpbNzcsMTI5LDM0XX0se2luZGV4OjEscmdiOlsxNDUsMTA1LDE4XX1dLHNhbGluaXR5Olt7aW5kZXg6MCxyZ2I6WzQyLDI0LDEwOF19LHtpbmRleDouMTMscmdiOlszMyw1MCwxNjJdfSx7aW5kZXg6LjI1LHJnYjpbMTUsOTAsMTQ1XX0se2luZGV4Oi4zOCxyZ2I6WzQwLDExOCwxMzddfSx7aW5kZXg6LjUscmdiOls1OSwxNDYsMTM1XX0se2luZGV4Oi42MyxyZ2I6Wzc5LDE3NSwxMjZdfSx7aW5kZXg6Ljc1LHJnYjpbMTIwLDIwMywxMDRdfSx7aW5kZXg6Ljg4LHJnYjpbMTkzLDIyMSwxMDBdfSx7aW5kZXg6MSxyZ2I6WzI1MywyMzksMTU0XX1dLHRlbXBlcmF0dXJlOlt7aW5kZXg6MCxyZ2I6WzQsMzUsNTFdfSx7aW5kZXg6LjEzLHJnYjpbMjMsNTEsMTIyXX0se2luZGV4Oi4yNSxyZ2I6Wzg1LDU5LDE1N119LHtpbmRleDouMzgscmdiOlsxMjksNzksMTQzXX0se2luZGV4Oi41LHJnYjpbMTc1LDk1LDEzMF19LHtpbmRleDouNjMscmdiOlsyMjIsMTEyLDEwMV19LHtpbmRleDouNzUscmdiOlsyNDksMTQ2LDY2XX0se2luZGV4Oi44OCxyZ2I6WzI0OSwxOTYsNjVdfSx7aW5kZXg6MSxyZ2I6WzIzMiwyNTAsOTFdfV0sdHVyYmlkaXR5Olt7aW5kZXg6MCxyZ2I6WzM0LDMxLDI3XX0se2luZGV4Oi4xMyxyZ2I6WzY1LDUwLDQxXX0se2luZGV4Oi4yNSxyZ2I6Wzk4LDY5LDUyXX0se2luZGV4Oi4zOCxyZ2I6WzEzMSw4OSw1N119LHtpbmRleDouNSxyZ2I6WzE2MSwxMTIsNTldfSx7aW5kZXg6LjYzLHJnYjpbMTg1LDE0MCw2Nl19LHtpbmRleDouNzUscmdiOlsyMDIsMTc0LDg4XX0se2luZGV4Oi44OCxyZ2I6WzIxNiwyMDksMTI2XX0se2luZGV4OjEscmdiOlsyMzMsMjQ2LDE3MV19XSwidmVsb2NpdHktYmx1ZSI6W3tpbmRleDowLHJnYjpbMTcsMzIsNjRdfSx7aW5kZXg6LjEzLHJnYjpbMzUsNTIsMTE2XX0se2luZGV4Oi4yNSxyZ2I6WzI5LDgxLDE1Nl19LHtpbmRleDouMzgscmdiOlszMSwxMTMsMTYyXX0se2luZGV4Oi41LHJnYjpbNTAsMTQ0LDE2OV19LHtpbmRleDouNjMscmdiOls4NywxNzMsMTc2XX0se2luZGV4Oi43NSxyZ2I6WzE0OSwxOTYsMTg5XX0se2luZGV4Oi44OCxyZ2I6WzIwMywyMjEsMjExXX0se2luZGV4OjEscmdiOlsyNTQsMjUxLDIzMF19XSwidmVsb2NpdHktZ3JlZW4iOlt7aW5kZXg6MCxyZ2I6WzIzLDM1LDE5XX0se2luZGV4Oi4xMyxyZ2I6WzI0LDY0LDM4XX0se2luZGV4Oi4yNSxyZ2I6WzExLDk1LDQ1XX0se2luZGV4Oi4zOCxyZ2I6WzM5LDEyMywzNV19LHtpbmRleDouNSxyZ2I6Wzk1LDE0NiwxMl19LHtpbmRleDouNjMscmdiOlsxNTIsMTY1LDE4XX0se2luZGV4Oi43NSxyZ2I6WzIwMSwxODYsNjldfSx7aW5kZXg6Ljg4LHJnYjpbMjMzLDIxNiwxMzddfSx7aW5kZXg6MSxyZ2I6WzI1NSwyNTMsMjA1XX1dLGN1YmVoZWxpeDpbe2luZGV4OjAscmdiOlswLDAsMF19LHtpbmRleDouMDcscmdiOlsyMiw1LDU5XX0se2luZGV4Oi4xMyxyZ2I6WzYwLDQsMTA1XX0se2luZGV4Oi4yLHJnYjpbMTA5LDEsMTM1XX0se2luZGV4Oi4yNyxyZ2I6WzE2MSwwLDE0N119LHtpbmRleDouMzMscmdiOlsyMTAsMiwxNDJdfSx7aW5kZXg6LjQscmdiOlsyNTEsMTEsMTIzXX0se2luZGV4Oi40NyxyZ2I6WzI1NSwyOSw5N119LHtpbmRleDouNTMscmdiOlsyNTUsNTQsNjldfSx7aW5kZXg6LjYscmdiOlsyNTUsODUsNDZdfSx7aW5kZXg6LjY3LHJnYjpbMjU1LDEyMCwzNF19LHtpbmRleDouNzMscmdiOlsyNTUsMTU3LDM3XX0se2luZGV4Oi44LHJnYjpbMjQxLDE5MSw1N119LHtpbmRleDouODcscmdiOlsyMjQsMjIwLDkzXX0se2luZGV4Oi45MyxyZ2I6WzIxOCwyNDEsMTQyXX0se2luZGV4OjEscmdiOlsyMjcsMjUzLDE5OF19XX19LHt9XSw1MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2NvbG9yU2NhbGUiKSxpPXQoImxlcnAiKTtmdW5jdGlvbiBhKHQpe3JldHVyblt0WzBdLzI1NSx0WzFdLzI1NSx0WzJdLzI1NSx0WzNdXX1mdW5jdGlvbiBvKHQpe2Zvcih2YXIgZSxyPSIjIixuPTA7bjwzOysrbilyKz0oIjAwIisoZT0oZT10W25dKS50b1N0cmluZygxNikpKS5zdWJzdHIoZS5sZW5ndGgpO3JldHVybiByfWZ1bmN0aW9uIHModCl7cmV0dXJuInJnYmEoIit0LmpvaW4oIiwiKSsiKSJ9ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbCxjLHUsZixoLHAsZCxtO3R8fCh0PXt9KTtwPSh0Lm5zaGFkZXN8fDcyKS0xLGg9dC5mb3JtYXR8fCJoZXgiLChmPXQuY29sb3JtYXApfHwoZj0iamV0Iik7aWYoInN0cmluZyI9PXR5cGVvZiBmKXtpZihmPWYudG9Mb3dlckNhc2UoKSwhbltmXSl0aHJvdyBFcnJvcihmKyIgbm90IGEgc3VwcG9ydGVkIGNvbG9yc2NhbGUiKTt1PW5bZl19ZWxzZXtpZighQXJyYXkuaXNBcnJheShmKSl0aHJvdyBFcnJvcigidW5zdXBwb3J0ZWQgY29sb3JtYXAgb3B0aW9uIixmKTt1PWYuc2xpY2UoKX1pZih1Lmxlbmd0aD5wKzEpdGhyb3cgbmV3IEVycm9yKGYrIiBtYXAgcmVxdWlyZXMgbnNoYWRlcyB0byBiZSBhdCBsZWFzdCBzaXplICIrdS5sZW5ndGgpO2Q9QXJyYXkuaXNBcnJheSh0LmFscGhhKT8yIT09dC5hbHBoYS5sZW5ndGg/WzEsMV06dC5hbHBoYS5zbGljZSgpOiJudW1iZXIiPT10eXBlb2YgdC5hbHBoYT9bdC5hbHBoYSx0LmFscGhhXTpbMSwxXTtlPXUubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0LmluZGV4KnApfSkpLGRbMF09TWF0aC5taW4oTWF0aC5tYXgoZFswXSwwKSwxKSxkWzFdPU1hdGgubWluKE1hdGgubWF4KGRbMV0sMCksMSk7dmFyIGc9dS5tYXAoKGZ1bmN0aW9uKHQsZSl7dmFyIHI9dVtlXS5pbmRleCxuPXVbZV0ucmdiLnNsaWNlKCk7cmV0dXJuIDQ9PT1uLmxlbmd0aCYmblszXT49MCYmblszXTw9MXx8KG5bM109ZFswXSsoZFsxXS1kWzBdKSpyKSxufSkpLHY9W107Zm9yKG09MDttPGUubGVuZ3RoLTE7KyttKXtjPWVbbSsxXS1lW21dLHI9Z1ttXSxsPWdbbSsxXTtmb3IodmFyIHk9MDt5PGM7eSsrKXt2YXIgeD15L2M7di5wdXNoKFtNYXRoLnJvdW5kKGkoclswXSxsWzBdLHgpKSxNYXRoLnJvdW5kKGkoclsxXSxsWzFdLHgpKSxNYXRoLnJvdW5kKGkoclsyXSxsWzJdLHgpKSxpKHJbM10sbFszXSx4KV0pfX12LnB1c2godVt1Lmxlbmd0aC0xXS5yZ2IuY29uY2F0KGRbMV0pKSwiaGV4Ij09PWg/dj12Lm1hcChvKToicmdiYVN0cmluZyI9PT1oP3Y9di5tYXAocyk6ImZsb2F0Ij09PWgmJih2PXYubWFwKGEpKTtyZXR1cm4gdn19LHsiLi9jb2xvclNjYWxlIjo1MixsZXJwOjI0MH1dLDU0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixhKXt2YXIgbz1uKGUscixhKTtpZigwPT09byl7dmFyIHM9aShuKHQsZSxyKSksYz1pKG4odCxlLGEpKTtpZihzPT09Yyl7aWYoMD09PXMpe3ZhciB1PWwodCxlLHIpLGY9bCh0LGUsYSk7cmV0dXJuIHU9PT1mPzA6dT8xOi0xfXJldHVybiAwfXJldHVybiAwPT09Yz9zPjB8fGwodCxlLGEpPy0xOjE6MD09PXM/Yz4wfHxsKHQsZSxyKT8xOi0xOmkoYy1zKX12YXIgaD1uKHQsZSxyKTtyZXR1cm4gaD4wP28+MCYmbih0LGUsYSk+MD8xOi0xOmg8MD9vPjB8fG4odCxlLGEpPjA/MTotMTpuKHQsZSxhKT4wfHxsKHQsZSxyKT8xOi0xfTt2YXIgbj10KCJyb2J1c3Qtb3JpZW50YXRpb24iKSxpPXQoInNpZ251bSIpLGE9dCgidHdvLXN1bSIpLG89dCgicm9idXN0LXByb2R1Y3QiKSxzPXQoInJvYnVzdC1zdW0iKTtmdW5jdGlvbiBsKHQsZSxyKXt2YXIgbj1hKHRbMF0sLWVbMF0pLGk9YSh0WzFdLC1lWzFdKSxsPWEoclswXSwtZVswXSksYz1hKHJbMV0sLWVbMV0pLHU9cyhvKG4sbCksbyhpLGMpKTtyZXR1cm4gdVt1Lmxlbmd0aC0xXT49MH19LHsicm9idXN0LW9yaWVudGF0aW9uIjoyODQsInJvYnVzdC1wcm9kdWN0IjoyODUsInJvYnVzdC1zdW0iOjI4OSxzaWdudW06NTUsInR3by1zdW0iOjMwN31dLDU1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gdDwwPy0xOnQ+MD8xOjB9fSx7fV0sNTY6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10Lmxlbmd0aCxhPXQubGVuZ3RoLWUubGVuZ3RoO2lmKGEpcmV0dXJuIGE7c3dpdGNoKHIpe2Nhc2UgMDpyZXR1cm4gMDtjYXNlIDE6cmV0dXJuIHRbMF0tZVswXTtjYXNlIDI6cmV0dXJuIHRbMF0rdFsxXS1lWzBdLWVbMV18fG4odFswXSx0WzFdKS1uKGVbMF0sZVsxXSk7Y2FzZSAzOnZhciBvPXRbMF0rdFsxXSxzPWVbMF0rZVsxXTtpZihhPW8rdFsyXS0ocytlWzJdKSlyZXR1cm4gYTt2YXIgbD1uKHRbMF0sdFsxXSksYz1uKGVbMF0sZVsxXSk7cmV0dXJuIG4obCx0WzJdKS1uKGMsZVsyXSl8fG4obCt0WzJdLG8pLW4oYytlWzJdLHMpO2Nhc2UgNDp2YXIgdT10WzBdLGY9dFsxXSxoPXRbMl0scD10WzNdLGQ9ZVswXSxtPWVbMV0sZz1lWzJdLHY9ZVszXTtyZXR1cm4gdStmK2grcC0oZCttK2crdil8fG4odSxmLGgscCktbihkLG0sZyx2LGQpfHxuKHUrZix1K2gsdStwLGYraCxmK3AsaCtwKS1uKGQrbSxkK2csZCt2LG0rZyxtK3YsZyt2KXx8bih1K2YraCx1K2YrcCx1K2grcCxmK2grcCktbihkK20rZyxkK20rdixkK2crdixtK2crdik7ZGVmYXVsdDpmb3IodmFyIHk9dC5zbGljZSgpLnNvcnQoaSkseD1lLnNsaWNlKCkuc29ydChpKSxiPTA7YjxyOysrYilpZihhPXlbYl0teFtiXSlyZXR1cm4gYTtyZXR1cm4gMH19O3ZhciBuPU1hdGgubWluO2Z1bmN0aW9uIGkodCxlKXtyZXR1cm4gdC1lfX0se31dLDU3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImNvbXBhcmUtY2VsbCIpLGk9dCgiY2VsbC1vcmllbnRhdGlvbiIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiBuKHQsZSl8fGkodCktaShlKX19LHsiY2VsbC1vcmllbnRhdGlvbiI6NDcsImNvbXBhcmUtY2VsbCI6NTZ9XSw1ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2xpYi9jaDFkIiksaT10KCIuL2xpYi9jaDJkIiksYT10KCIuL2xpYi9jaG5kIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQubGVuZ3RoO2lmKDA9PT1lKXJldHVybltdO2lmKDE9PT1lKXJldHVybltbMF1dO3ZhciByPXRbMF0ubGVuZ3RoO2lmKDA9PT1yKXJldHVybltdO2lmKDE9PT1yKXJldHVybiBuKHQpO2lmKDI9PT1yKXJldHVybiBpKHQpO3JldHVybiBhKHQscil9fSx7Ii4vbGliL2NoMWQiOjU5LCIuL2xpYi9jaDJkIjo2MCwiLi9saWIvY2huZCI6NjF9XSw1OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAscj0wLG49MTtuPHQubGVuZ3RoOysrbil0W25dWzBdPHRbZV1bMF0mJihlPW4pLHRbbl1bMF0+dFtyXVswXSYmKHI9bik7cmV0dXJuIGU8cj9bW2VdLFtyXV06ZT5yP1tbcl0sW2VdXTpbW2VdXX19LHt9XSw2MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9bih0KSxyPWUubGVuZ3RoO2lmKHI8PTIpcmV0dXJuW107Zm9yKHZhciBpPW5ldyBBcnJheShyKSxhPWVbci0xXSxvPTA7bzxyOysrbyl7dmFyIHM9ZVtvXTtpW29dPVthLHNdLGE9c31yZXR1cm4gaX07dmFyIG49dCgibW9ub3RvbmUtY29udmV4LWh1bGwtMmQiKX0seyJtb25vdG9uZS1jb252ZXgtaHVsbC0yZCI6MjQ2fV0sNjE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiBuKHQsITApfWNhdGNoKG8pe3ZhciByPWkodCk7aWYoci5sZW5ndGg8PWUpcmV0dXJuW107dmFyIGE9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5sZW5ndGgsbj1uZXcgQXJyYXkociksaT0wO2k8ZS5sZW5ndGg7KytpKW5baV09dFtlW2ldXTt2YXIgYT1lLmxlbmd0aDtmb3IoaT0wO2k8cjsrK2kpZS5pbmRleE9mKGkpPDAmJihuW2ErK109dFtpXSk7cmV0dXJuIG59KHQscik7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQubGVuZ3RoLG49ZS5sZW5ndGgsaT0wO2k8cjsrK2kpZm9yKHZhciBhPXRbaV0sbz0wO288YS5sZW5ndGg7KytvKXt2YXIgcz1hW29dO2lmKHM8bilhW29dPWVbc107ZWxzZXtzLT1uO2Zvcih2YXIgbD0wO2w8bjsrK2wpcz49ZVtsXSYmKHMrPTEpO2Fbb109c319cmV0dXJuIHR9KG4oYSwhMCkscil9fTt2YXIgbj10KCJpbmNyZW1lbnRhbC1jb252ZXgtaHVsbCIpLGk9dCgiYWZmaW5lLWh1bGwiKX0seyJhZmZpbmUtaHVsbCI6MTAsImluY3JlbWVudGFsLWNvbnZleC1odWxsIjoyMzN9XSw2MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbixpLGEpe3ZhciBvPWktMSxzPWkqaSxsPW8qbyxjPSgxKzIqaSkqbCx1PWkqbCxmPXMqKDMtMippKSxoPXMqbztpZih0Lmxlbmd0aCl7YXx8KGE9bmV3IEFycmF5KHQubGVuZ3RoKSk7Zm9yKHZhciBwPXQubGVuZ3RoLTE7cD49MDstLXApYVtwXT1jKnRbcF0rdSplW3BdK2YqcltwXStoKm5bcF07cmV0dXJuIGF9cmV0dXJuIGMqdCt1KmUrZipyK2gqbn0sZS5leHBvcnRzLmRlcml2YXRpdmU9ZnVuY3Rpb24odCxlLHIsbixpLGEpe3ZhciBvPTYqaSppLTYqaSxzPTMqaSppLTQqaSsxLGw9LTYqaSppKzYqaSxjPTMqaSppLTIqaTtpZih0Lmxlbmd0aCl7YXx8KGE9bmV3IEFycmF5KHQubGVuZ3RoKSk7Zm9yKHZhciB1PXQubGVuZ3RoLTE7dT49MDstLXUpYVt1XT1vKnRbdV0rcyplW3VdK2wqclt1XStjKm5bdV07cmV0dXJuIGF9cmV0dXJuIG8qdCtzKmUrbCpyW3VdK2Mqbn19LHt9XSw2MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJpbmNyZW1lbnRhbC1jb252ZXgtaHVsbCIpLGk9dCgidW5pcSIpO2Z1bmN0aW9uIGEodCxlKXt0aGlzLnBvaW50PXQsdGhpcy5pbmRleD1lfWZ1bmN0aW9uIG8odCxlKXtmb3IodmFyIHI9dC5wb2ludCxuPWUucG9pbnQsaT1yLmxlbmd0aCxhPTA7YTxpOysrYSl7dmFyIG89blthXS1yW2FdO2lmKG8pcmV0dXJuIG99cmV0dXJuIDB9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5sZW5ndGg7aWYoMD09PXIpcmV0dXJuW107dmFyIHM9dFswXS5sZW5ndGg7aWYoczwxKXJldHVybltdO2lmKDE9PT1zKXJldHVybiBmdW5jdGlvbih0LGUscil7aWYoMT09PXQpcmV0dXJuIHI/W1stMSwwXV06W107dmFyIG49ZS5tYXAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuW3RbMF0sZV19KSk7bi5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0WzBdLWVbMF19KSk7Zm9yKHZhciBpPW5ldyBBcnJheSh0LTEpLGE9MTthPHQ7KythKXt2YXIgbz1uW2EtMV0scz1uW2FdO2lbYS0xXT1bb1sxXSxzWzFdXX1yJiZpLnB1c2goWy0xLGlbMF1bMV1dLFtpW3QtMV1bMV0sLTFdKTtyZXR1cm4gaX0ocix0LGUpO2Zvcih2YXIgbD1uZXcgQXJyYXkociksYz0xLHU9MDt1PHI7Kyt1KXtmb3IodmFyIGY9dFt1XSxoPW5ldyBBcnJheShzKzEpLHA9MCxkPTA7ZDxzOysrZCl7dmFyIG09ZltkXTtoW2RdPW0scCs9bSptfWhbc109cCxsW3VdPW5ldyBhKGgsdSksYz1NYXRoLm1heChwLGMpfWkobCxvKSxyPWwubGVuZ3RoO3ZhciBnPW5ldyBBcnJheShyK3MrMSksdj1uZXcgQXJyYXkocitzKzEpLHk9KHMrMSkqKHMrMSkqYyx4PW5ldyBBcnJheShzKzEpO2Zvcih1PTA7dTw9czsrK3UpeFt1XT0wO3hbc109eSxnWzBdPXguc2xpY2UoKSx2WzBdPS0xO2Zvcih1PTA7dTw9czsrK3UpeyhoPXguc2xpY2UoKSlbdV09MSxnW3UrMV09aCx2W3UrMV09LTF9Zm9yKHU9MDt1PHI7Kyt1KXt2YXIgYj1sW3VdO2dbdStzKzFdPWIucG9pbnQsdlt1K3MrMV09Yi5pbmRleH12YXIgXz1uKGcsITEpO189ZT9fLmZpbHRlcigoZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAscj0wO3I8PXM7KytyKXt2YXIgbj12W3Rbcl1dO2lmKG48MCYmKytlPj0yKXJldHVybiExO3Rbcl09bn1yZXR1cm4hMH0pKTpfLmZpbHRlcigoZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7ZTw9czsrK2Upe3ZhciByPXZbdFtlXV07aWYocjwwKXJldHVybiExO3RbZV09cn1yZXR1cm4hMH0pKTtpZigxJnMpZm9yKHU9MDt1PF8ubGVuZ3RoOysrdSl7aD0oYj1fW3VdKVswXTtiWzBdPWJbMV0sYlsxXT1ofXJldHVybiBffX0seyJpbmNyZW1lbnRhbC1jb252ZXgtaHVsbCI6MjMzLHVuaXE6MzEwfV0sNjQ6W2Z1bmN0aW9uKHQsZSxyKXsoZnVuY3Rpb24odCl7KGZ1bmN0aW9uKCl7dmFyIHI9ITE7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBGbG9hdDY0QXJyYXkpe3ZhciBuPW5ldyBGbG9hdDY0QXJyYXkoMSksaT1uZXcgVWludDMyQXJyYXkobi5idWZmZXIpO2lmKG5bMF09MSxyPSEwLDEwNzI2OTMyNDg9PT1pWzFdKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG5bMF09dCxbaVswXSxpWzFdXX0sZS5leHBvcnRzLnBhY2s9ZnVuY3Rpb24odCxlKXtyZXR1cm4gaVswXT10LGlbMV09ZSxuWzBdfSxlLmV4cG9ydHMubG89ZnVuY3Rpb24odCl7cmV0dXJuIG5bMF09dCxpWzBdfSxlLmV4cG9ydHMuaGk9ZnVuY3Rpb24odCl7cmV0dXJuIG5bMF09dCxpWzFdfX1lbHNlIGlmKDEwNzI2OTMyNDg9PT1pWzBdKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG5bMF09dCxbaVsxXSxpWzBdXX0sZS5leHBvcnRzLnBhY2s9ZnVuY3Rpb24odCxlKXtyZXR1cm4gaVsxXT10LGlbMF09ZSxuWzBdfSxlLmV4cG9ydHMubG89ZnVuY3Rpb24odCl7cmV0dXJuIG5bMF09dCxpWzFdfSxlLmV4cG9ydHMuaGk9ZnVuY3Rpb24odCl7cmV0dXJuIG5bMF09dCxpWzBdfX1lbHNlIHI9ITF9aWYoIXIpe3ZhciBhPW5ldyB0KDgpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gYS53cml0ZURvdWJsZUxFKHQsMCwhMCksW2EucmVhZFVJbnQzMkxFKDAsITApLGEucmVhZFVJbnQzMkxFKDQsITApXX0sZS5leHBvcnRzLnBhY2s9ZnVuY3Rpb24odCxlKXtyZXR1cm4gYS53cml0ZVVJbnQzMkxFKHQsMCwhMCksYS53cml0ZVVJbnQzMkxFKGUsNCwhMCksYS5yZWFkRG91YmxlTEUoMCwhMCl9LGUuZXhwb3J0cy5sbz1mdW5jdGlvbih0KXtyZXR1cm4gYS53cml0ZURvdWJsZUxFKHQsMCwhMCksYS5yZWFkVUludDMyTEUoMCwhMCl9LGUuZXhwb3J0cy5oaT1mdW5jdGlvbih0KXtyZXR1cm4gYS53cml0ZURvdWJsZUxFKHQsMCwhMCksYS5yZWFkVUludDMyTEUoNCwhMCl9fWUuZXhwb3J0cy5zaWduPWZ1bmN0aW9uKHQpe3JldHVybiBlLmV4cG9ydHMuaGkodCk+Pj4zMX0sZS5leHBvcnRzLmV4cG9uZW50PWZ1bmN0aW9uKHQpe3JldHVybihlLmV4cG9ydHMuaGkodCk8PDE+Pj4yMSktMTAyM30sZS5leHBvcnRzLmZyYWN0aW9uPWZ1bmN0aW9uKHQpe3ZhciByPWUuZXhwb3J0cy5sbyh0KSxuPWUuZXhwb3J0cy5oaSh0KSxpPTEwNDg1NzUmbjtyZXR1cm4gMjE0NjQzNTA3MiZuJiYoaSs9MTw8MjApLFtyLGldfSxlLmV4cG9ydHMuZGVub3JtYWxpemVkPWZ1bmN0aW9uKHQpe3JldHVybiEoMjE0NjQzNTA3MiZlLmV4cG9ydHMuaGkodCkpfX0pLmNhbGwodGhpcyl9KS5jYWxsKHRoaXMsdCgiYnVmZmVyIikuQnVmZmVyKX0se2J1ZmZlcjozfV0sNjU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7c3dpdGNoKHZvaWQgMD09PWUmJihlPTApLHR5cGVvZiB0KXtjYXNlIm51bWJlciI6aWYodD4wKXJldHVybiBmdW5jdGlvbih0LGUpe3ZhciByLG47Zm9yKHI9bmV3IEFycmF5KHQpLG49MDtuPHQ7KytuKXJbbl09ZTtyZXR1cm4gcn0oMHx0LGUpO2JyZWFrO2Nhc2Uib2JqZWN0IjppZigibnVtYmVyIj09dHlwZW9mIHQubGVuZ3RoKXJldHVybiBmdW5jdGlvbiB0KGUscixuKXt2YXIgaT0wfGVbbl07aWYoaTw9MClyZXR1cm5bXTt2YXIgYSxvPW5ldyBBcnJheShpKTtpZihuPT09ZS5sZW5ndGgtMSlmb3IoYT0wO2E8aTsrK2Epb1thXT1yO2Vsc2UgZm9yKGE9MDthPGk7KythKW9bYV09dChlLHIsbisxKTtyZXR1cm4gb30odCxlLDApfXJldHVybltdfX0se31dLDY2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPXQubGVuZ3RoO2lmKCJudW1iZXIiIT10eXBlb2YgZSl7ZT0wO2Zvcih2YXIgaT0wO2k8cjsrK2kpe3ZhciBhPXRbaV07ZT1NYXRoLm1heChlLGFbMF0sYVsxXSl9ZT0xKygwfGUpfWV8PTA7dmFyIG89bmV3IEFycmF5KGUpO2ZvcihpPTA7aTxlOysraSlvW2ldPVtdO2ZvcihpPTA7aTxyOysraSl7YT10W2ldO29bYVswXV0ucHVzaChhWzFdKSxvW2FbMV1dLnB1c2goYVswXSl9Zm9yKHZhciBzPTA7czxlOysrcyluKG9bc10sKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQtZX0pKTtyZXR1cm4gb307dmFyIG49dCgidW5pcSIpfSx7dW5pcTozMTB9XSw2NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWV8fDAsaT1yfHwxO3JldHVybltbdFsxMl0rdFswXSx0WzEzXSt0WzFdLHRbMTRdK3RbMl0sdFsxNV0rdFszXV0sW3RbMTJdLXRbMF0sdFsxM10tdFsxXSx0WzE0XS10WzJdLHRbMTVdLXRbM11dLFt0WzEyXSt0WzRdLHRbMTNdK3RbNV0sdFsxNF0rdFs2XSx0WzE1XSt0WzddXSxbdFsxMl0tdFs0XSx0WzEzXS10WzVdLHRbMTRdLXRbNl0sdFsxNV0tdFs3XV0sW24qdFsxMl0rdFs4XSxuKnRbMTNdK3RbOV0sbip0WzE0XSt0WzEwXSxuKnRbMTVdK3RbMTFdXSxbaSp0WzEyXS10WzhdLGkqdFsxM10tdFs5XSxpKnRbMTRdLXRbMTBdLGkqdFsxNV0tdFsxMV1dXX19LHt9XSw2ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3N3aXRjaChhcmd1bWVudHMubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIG5ldyBvKFswXSxbMF0sMCk7Y2FzZSAxOnJldHVybiJudW1iZXIiPT10eXBlb2YgdD9uZXcgbyhuPWwodCksbiwwKTpuZXcgbyh0LGwodC5sZW5ndGgpLDApO2Nhc2UgMjppZigibnVtYmVyIj09dHlwZW9mIGUpe3ZhciBuPWwodC5sZW5ndGgpO3JldHVybiBuZXcgbyh0LG4sK2UpfXI9MDtjYXNlIDM6aWYodC5sZW5ndGghPT1lLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoInN0YXRlIGFuZCB2ZWxvY2l0eSBsZW5ndGhzIG11c3QgbWF0Y2giKTtyZXR1cm4gbmV3IG8odCxlLHIpfX07dmFyIG49dCgiY3ViaWMtaGVybWl0ZSIpLGk9dCgiYmluYXJ5LXNlYXJjaC1ib3VuZHMiKTtmdW5jdGlvbiBhKHQsZSxyKXtyZXR1cm4gTWF0aC5taW4oZSxNYXRoLm1heCh0LHIpKX1mdW5jdGlvbiBvKHQsZSxyKXt0aGlzLmRpbWVuc2lvbj10Lmxlbmd0aCx0aGlzLmJvdW5kcz1bbmV3IEFycmF5KHRoaXMuZGltZW5zaW9uKSxuZXcgQXJyYXkodGhpcy5kaW1lbnNpb24pXTtmb3IodmFyIG49MDtuPHRoaXMuZGltZW5zaW9uOysrbil0aGlzLmJvdW5kc1swXVtuXT0tMS8wLHRoaXMuYm91bmRzWzFdW25dPTEvMDt0aGlzLl9zdGF0ZT10LnNsaWNlKCkucmV2ZXJzZSgpLHRoaXMuX3ZlbG9jaXR5PWUuc2xpY2UoKS5yZXZlcnNlKCksdGhpcy5fdGltZT1bcl0sdGhpcy5fc2NyYXRjaD1bdC5zbGljZSgpLHQuc2xpY2UoKSx0LnNsaWNlKCksdC5zbGljZSgpLHQuc2xpY2UoKV19dmFyIHM9by5wcm90b3R5cGU7ZnVuY3Rpb24gbCh0KXtmb3IodmFyIGU9bmV3IEFycmF5KHQpLHI9MDtyPHQ7KytyKWVbcl09MDtyZXR1cm4gZX1zLmZsdXNoPWZ1bmN0aW9uKHQpe3ZhciBlPWkuZ3QodGhpcy5fdGltZSx0KS0xO2U8PTB8fCh0aGlzLl90aW1lLnNwbGljZSgwLGUpLHRoaXMuX3N0YXRlLnNwbGljZSgwLGUqdGhpcy5kaW1lbnNpb24pLHRoaXMuX3ZlbG9jaXR5LnNwbGljZSgwLGUqdGhpcy5kaW1lbnNpb24pKX0scy5jdXJ2ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl90aW1lLHI9ZS5sZW5ndGgsbz1pLmxlKGUsdCkscz10aGlzLl9zY3JhdGNoWzBdLGw9dGhpcy5fc3RhdGUsYz10aGlzLl92ZWxvY2l0eSx1PXRoaXMuZGltZW5zaW9uLGY9dGhpcy5ib3VuZHM7aWYobzwwKWZvcih2YXIgaD11LTEscD0wO3A8dTsrK3AsLS1oKXNbcF09bFtoXTtlbHNlIGlmKG8+PXItMSl7aD1sLmxlbmd0aC0xO3ZhciBkPXQtZVtyLTFdO2ZvcihwPTA7cDx1OysrcCwtLWgpc1twXT1sW2hdK2QqY1toXX1lbHNle2g9dSoobysxKS0xO3ZhciBtPWVbb10sZz1lW28rMV0tbXx8MSx2PXRoaXMuX3NjcmF0Y2hbMV0seT10aGlzLl9zY3JhdGNoWzJdLHg9dGhpcy5fc2NyYXRjaFszXSxiPXRoaXMuX3NjcmF0Y2hbNF0sXz0hMDtmb3IocD0wO3A8dTsrK3AsLS1oKXZbcF09bFtoXSx4W3BdPWNbaF0qZyx5W3BdPWxbaCt1XSxiW3BdPWNbaCt1XSpnLF89XyYmdltwXT09PXlbcF0mJnhbcF09PT1iW3BdJiYwPT09eFtwXTtpZihfKWZvcihwPTA7cDx1OysrcClzW3BdPXZbcF07ZWxzZSBuKHYseCx5LGIsKHQtbSkvZyxzKX12YXIgdz1mWzBdLFQ9ZlsxXTtmb3IocD0wO3A8dTsrK3Apc1twXT1hKHdbcF0sVFtwXSxzW3BdKTtyZXR1cm4gc30scy5kY3VydmU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdGltZSxyPWUubGVuZ3RoLGE9aS5sZShlLHQpLG89dGhpcy5fc2NyYXRjaFswXSxzPXRoaXMuX3N0YXRlLGw9dGhpcy5fdmVsb2NpdHksYz10aGlzLmRpbWVuc2lvbjtpZihhPj1yLTEpZm9yKHZhciB1PXMubGVuZ3RoLTEsZj0oZVtyLTFdLDApO2Y8YzsrK2YsLS11KW9bZl09bFt1XTtlbHNle3U9YyooYSsxKS0xO3ZhciBoPWVbYV0scD1lW2ErMV0taHx8MSxkPXRoaXMuX3NjcmF0Y2hbMV0sbT10aGlzLl9zY3JhdGNoWzJdLGc9dGhpcy5fc2NyYXRjaFszXSx2PXRoaXMuX3NjcmF0Y2hbNF0seT0hMDtmb3IoZj0wO2Y8YzsrK2YsLS11KWRbZl09c1t1XSxnW2ZdPWxbdV0qcCxtW2ZdPXNbdStjXSx2W2ZdPWxbdStjXSpwLHk9eSYmZFtmXT09PW1bZl0mJmdbZl09PT12W2ZdJiYwPT09Z1tmXTtpZih5KWZvcihmPTA7ZjxjOysrZilvW2ZdPTA7ZWxzZXtuLmRlcml2YXRpdmUoZCxnLG0sdiwodC1oKS9wLG8pO2ZvcihmPTA7ZjxjOysrZilvW2ZdLz1wfX1yZXR1cm4gb30scy5sYXN0VD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX3RpbWU7cmV0dXJuIHRbdC5sZW5ndGgtMV19LHMuc3RhYmxlPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuX3ZlbG9jaXR5LGU9dC5sZW5ndGgscj10aGlzLmRpbWVuc2lvbi0xO3I+PTA7LS1yKWlmKHRbLS1lXSlyZXR1cm4hMTtyZXR1cm4hMH0scy5qdW1wPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubGFzdFQoKSxyPXRoaXMuZGltZW5zaW9uO2lmKCEodDxlfHxhcmd1bWVudHMubGVuZ3RoIT09cisxKSl7dmFyIG49dGhpcy5fc3RhdGUsaT10aGlzLl92ZWxvY2l0eSxvPW4ubGVuZ3RoLXRoaXMuZGltZW5zaW9uLHM9dGhpcy5ib3VuZHMsbD1zWzBdLGM9c1sxXTt0aGlzLl90aW1lLnB1c2goZSx0KTtmb3IodmFyIHU9MDt1PDI7Kyt1KWZvcih2YXIgZj0wO2Y8cjsrK2Ypbi5wdXNoKG5bbysrXSksaS5wdXNoKDApO3RoaXMuX3RpbWUucHVzaCh0KTtmb3IoZj1yO2Y+MDstLWYpbi5wdXNoKGEobFtmLTFdLGNbZi0xXSxhcmd1bWVudHNbZl0pKSxpLnB1c2goMCl9fSxzLnB1c2g9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5sYXN0VCgpLHI9dGhpcy5kaW1lbnNpb247aWYoISh0PGV8fGFyZ3VtZW50cy5sZW5ndGghPT1yKzEpKXt2YXIgbj10aGlzLl9zdGF0ZSxpPXRoaXMuX3ZlbG9jaXR5LG89bi5sZW5ndGgtdGhpcy5kaW1lbnNpb24scz10LWUsbD10aGlzLmJvdW5kcyxjPWxbMF0sdT1sWzFdLGY9cz4xZS02PzEvczowO3RoaXMuX3RpbWUucHVzaCh0KTtmb3IodmFyIGg9cjtoPjA7LS1oKXt2YXIgcD1hKGNbaC0xXSx1W2gtMV0sYXJndW1lbnRzW2hdKTtuLnB1c2gocCksaS5wdXNoKChwLW5bbysrXSkqZil9fX0scy5zZXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5kaW1lbnNpb247aWYoISh0PHRoaXMubGFzdFQoKXx8YXJndW1lbnRzLmxlbmd0aCE9PWUrMSkpe3ZhciByPXRoaXMuX3N0YXRlLG49dGhpcy5fdmVsb2NpdHksaT10aGlzLmJvdW5kcyxvPWlbMF0scz1pWzFdO3RoaXMuX3RpbWUucHVzaCh0KTtmb3IodmFyIGw9ZTtsPjA7LS1sKXIucHVzaChhKG9bbC0xXSxzW2wtMV0sYXJndW1lbnRzW2xdKSksbi5wdXNoKDApfX0scy5tb3ZlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubGFzdFQoKSxyPXRoaXMuZGltZW5zaW9uO2lmKCEodDw9ZXx8YXJndW1lbnRzLmxlbmd0aCE9PXIrMSkpe3ZhciBuPXRoaXMuX3N0YXRlLGk9dGhpcy5fdmVsb2NpdHksbz1uLmxlbmd0aC10aGlzLmRpbWVuc2lvbixzPXRoaXMuYm91bmRzLGw9c1swXSxjPXNbMV0sdT10LWUsZj11PjFlLTY/MS91OjA7dGhpcy5fdGltZS5wdXNoKHQpO2Zvcih2YXIgaD1yO2g+MDstLWgpe3ZhciBwPWFyZ3VtZW50c1toXTtuLnB1c2goYShsW2gtMV0sY1toLTFdLG5bbysrXStwKSksaS5wdXNoKHAqZil9fX0scy5pZGxlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubGFzdFQoKTtpZighKHQ8ZSkpe3ZhciByPXRoaXMuZGltZW5zaW9uLG49dGhpcy5fc3RhdGUsaT10aGlzLl92ZWxvY2l0eSxvPW4ubGVuZ3RoLXIscz10aGlzLmJvdW5kcyxsPXNbMF0sYz1zWzFdLHU9dC1lO3RoaXMuX3RpbWUucHVzaCh0KTtmb3IodmFyIGY9ci0xO2Y+PTA7LS1mKW4ucHVzaChhKGxbZl0sY1tmXSxuW29dK3UqaVtvXSkpLGkucHVzaCgwKSxvKz0xfX19LHsiYmluYXJ5LXNlYXJjaC1ib3VuZHMiOjMxLCJjdWJpYy1oZXJtaXRlIjo2Mn1dLDY5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHModHx8bSxudWxsKX07ZnVuY3Rpb24gbih0LGUscixuLGksYSl7dGhpcy5fY29sb3I9dCx0aGlzLmtleT1lLHRoaXMudmFsdWU9cix0aGlzLmxlZnQ9bix0aGlzLnJpZ2h0PWksdGhpcy5fY291bnQ9YX1mdW5jdGlvbiBpKHQpe3JldHVybiBuZXcgbih0Ll9jb2xvcix0LmtleSx0LnZhbHVlLHQubGVmdCx0LnJpZ2h0LHQuX2NvdW50KX1mdW5jdGlvbiBhKHQsZSl7cmV0dXJuIG5ldyBuKHQsZS5rZXksZS52YWx1ZSxlLmxlZnQsZS5yaWdodCxlLl9jb3VudCl9ZnVuY3Rpb24gbyh0KXt0Ll9jb3VudD0xKyh0LmxlZnQ/dC5sZWZ0Ll9jb3VudDowKSsodC5yaWdodD90LnJpZ2h0Ll9jb3VudDowKX1mdW5jdGlvbiBzKHQsZSl7dGhpcy5fY29tcGFyZT10LHRoaXMucm9vdD1lfXZhciBsPXMucHJvdG90eXBlO2Z1bmN0aW9uIGModCxlKXt2YXIgcjtpZihlLmxlZnQmJihyPWModCxlLmxlZnQpKSlyZXR1cm4gcjtyZXR1cm4ocj10KGUua2V5LGUudmFsdWUpKXx8KGUucmlnaHQ/Yyh0LGUucmlnaHQpOnZvaWQgMCl9ZnVuY3Rpb24gdSh0LGUscixuKXtpZihlKHQsbi5rZXkpPD0wKXt2YXIgaTtpZihuLmxlZnQpaWYoaT11KHQsZSxyLG4ubGVmdCkpcmV0dXJuIGk7aWYoaT1yKG4ua2V5LG4udmFsdWUpKXJldHVybiBpfWlmKG4ucmlnaHQpcmV0dXJuIHUodCxlLHIsbi5yaWdodCl9ZnVuY3Rpb24gZih0LGUscixuLGkpe3ZhciBhLG89cih0LGkua2V5KSxzPXIoZSxpLmtleSk7aWYobzw9MCl7aWYoaS5sZWZ0JiYoYT1mKHQsZSxyLG4saS5sZWZ0KSkpcmV0dXJuIGE7aWYocz4wJiYoYT1uKGkua2V5LGkudmFsdWUpKSlyZXR1cm4gYX1pZihzPjAmJmkucmlnaHQpcmV0dXJuIGYodCxlLHIsbixpLnJpZ2h0KX1mdW5jdGlvbiBoKHQsZSl7dGhpcy50cmVlPXQsdGhpcy5fc3RhY2s9ZX1PYmplY3QuZGVmaW5lUHJvcGVydHkobCwia2V5cyIse2dldDpmdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0aGlzLmZvckVhY2goKGZ1bmN0aW9uKGUscil7dC5wdXNoKGUpfSkpLHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGwsInZhbHVlcyIse2dldDpmdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0aGlzLmZvckVhY2goKGZ1bmN0aW9uKGUscil7dC5wdXNoKHIpfSkpLHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGwsImxlbmd0aCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJvb3Q/dGhpcy5yb290Ll9jb3VudDowfX0pLGwuaW5zZXJ0PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXRoaXMuX2NvbXBhcmUsaT10aGlzLnJvb3QsbD1bXSxjPVtdO2k7KXt2YXIgdT1yKHQsaS5rZXkpO2wucHVzaChpKSxjLnB1c2godSksaT11PD0wP2kubGVmdDppLnJpZ2h0fWwucHVzaChuZXcgbigwLHQsZSxudWxsLG51bGwsMSkpO2Zvcih2YXIgZj1sLmxlbmd0aC0yO2Y+PTA7LS1mKXtpPWxbZl07Y1tmXTw9MD9sW2ZdPW5ldyBuKGkuX2NvbG9yLGkua2V5LGkudmFsdWUsbFtmKzFdLGkucmlnaHQsaS5fY291bnQrMSk6bFtmXT1uZXcgbihpLl9jb2xvcixpLmtleSxpLnZhbHVlLGkubGVmdCxsW2YrMV0saS5fY291bnQrMSl9Zm9yKGY9bC5sZW5ndGgtMTtmPjE7LS1mKXt2YXIgaD1sW2YtMV07aT1sW2ZdO2lmKDE9PT1oLl9jb2xvcnx8MT09PWkuX2NvbG9yKWJyZWFrO3ZhciBwPWxbZi0yXTtpZihwLmxlZnQ9PT1oKWlmKGgubGVmdD09PWkpe2lmKCEoZD1wLnJpZ2h0KXx8MCE9PWQuX2NvbG9yKXtpZihwLl9jb2xvcj0wLHAubGVmdD1oLnJpZ2h0LGguX2NvbG9yPTEsaC5yaWdodD1wLGxbZi0yXT1oLGxbZi0xXT1pLG8ocCksbyhoKSxmPj0zKShtPWxbZi0zXSkubGVmdD09PXA/bS5sZWZ0PWg6bS5yaWdodD1oO2JyZWFrfWguX2NvbG9yPTEscC5yaWdodD1hKDEsZCkscC5fY29sb3I9MCxmLT0xfWVsc2V7aWYoIShkPXAucmlnaHQpfHwwIT09ZC5fY29sb3Ipe2lmKGgucmlnaHQ9aS5sZWZ0LHAuX2NvbG9yPTAscC5sZWZ0PWkucmlnaHQsaS5fY29sb3I9MSxpLmxlZnQ9aCxpLnJpZ2h0PXAsbFtmLTJdPWksbFtmLTFdPWgsbyhwKSxvKGgpLG8oaSksZj49MykobT1sW2YtM10pLmxlZnQ9PT1wP20ubGVmdD1pOm0ucmlnaHQ9aTticmVha31oLl9jb2xvcj0xLHAucmlnaHQ9YSgxLGQpLHAuX2NvbG9yPTAsZi09MX1lbHNlIGlmKGgucmlnaHQ9PT1pKXtpZighKGQ9cC5sZWZ0KXx8MCE9PWQuX2NvbG9yKXtpZihwLl9jb2xvcj0wLHAucmlnaHQ9aC5sZWZ0LGguX2NvbG9yPTEsaC5sZWZ0PXAsbFtmLTJdPWgsbFtmLTFdPWksbyhwKSxvKGgpLGY+PTMpKG09bFtmLTNdKS5yaWdodD09PXA/bS5yaWdodD1oOm0ubGVmdD1oO2JyZWFrfWguX2NvbG9yPTEscC5sZWZ0PWEoMSxkKSxwLl9jb2xvcj0wLGYtPTF9ZWxzZXt2YXIgZDtpZighKGQ9cC5sZWZ0KXx8MCE9PWQuX2NvbG9yKXt2YXIgbTtpZihoLmxlZnQ9aS5yaWdodCxwLl9jb2xvcj0wLHAucmlnaHQ9aS5sZWZ0LGkuX2NvbG9yPTEsaS5yaWdodD1oLGkubGVmdD1wLGxbZi0yXT1pLGxbZi0xXT1oLG8ocCksbyhoKSxvKGkpLGY+PTMpKG09bFtmLTNdKS5yaWdodD09PXA/bS5yaWdodD1pOm0ubGVmdD1pO2JyZWFrfWguX2NvbG9yPTEscC5sZWZ0PWEoMSxkKSxwLl9jb2xvcj0wLGYtPTF9fXJldHVybiBsWzBdLl9jb2xvcj0xLG5ldyBzKHIsbFswXSl9LGwuZm9yRWFjaD1mdW5jdGlvbih0LGUscil7aWYodGhpcy5yb290KXN3aXRjaChhcmd1bWVudHMubGVuZ3RoKXtjYXNlIDE6cmV0dXJuIGModCx0aGlzLnJvb3QpO2Nhc2UgMjpyZXR1cm4gdShlLHRoaXMuX2NvbXBhcmUsdCx0aGlzLnJvb3QpO2Nhc2UgMzppZih0aGlzLl9jb21wYXJlKGUscik+PTApcmV0dXJuO3JldHVybiBmKGUscix0aGlzLl9jb21wYXJlLHQsdGhpcy5yb290KX19LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsLCJiZWdpbiIse2dldDpmdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxlPXRoaXMucm9vdDtlOyl0LnB1c2goZSksZT1lLmxlZnQ7cmV0dXJuIG5ldyBoKHRoaXMsdCl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGwsImVuZCIse2dldDpmdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxlPXRoaXMucm9vdDtlOyl0LnB1c2goZSksZT1lLnJpZ2h0O3JldHVybiBuZXcgaCh0aGlzLHQpfX0pLGwuYXQ9ZnVuY3Rpb24odCl7aWYodDwwKXJldHVybiBuZXcgaCh0aGlzLFtdKTtmb3IodmFyIGU9dGhpcy5yb290LHI9W107Oyl7aWYoci5wdXNoKGUpLGUubGVmdCl7aWYodDxlLmxlZnQuX2NvdW50KXtlPWUubGVmdDtjb250aW51ZX10LT1lLmxlZnQuX2NvdW50fWlmKCF0KXJldHVybiBuZXcgaCh0aGlzLHIpO2lmKHQtPTEsIWUucmlnaHQpYnJlYWs7aWYodD49ZS5yaWdodC5fY291bnQpYnJlYWs7ZT1lLnJpZ2h0fXJldHVybiBuZXcgaCh0aGlzLFtdKX0sbC5nZT1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy5fY29tcGFyZSxyPXRoaXMucm9vdCxuPVtdLGk9MDtyOyl7dmFyIGE9ZSh0LHIua2V5KTtuLnB1c2gociksYTw9MCYmKGk9bi5sZW5ndGgpLHI9YTw9MD9yLmxlZnQ6ci5yaWdodH1yZXR1cm4gbi5sZW5ndGg9aSxuZXcgaCh0aGlzLG4pfSxsLmd0PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLl9jb21wYXJlLHI9dGhpcy5yb290LG49W10saT0wO3I7KXt2YXIgYT1lKHQsci5rZXkpO24ucHVzaChyKSxhPDAmJihpPW4ubGVuZ3RoKSxyPWE8MD9yLmxlZnQ6ci5yaWdodH1yZXR1cm4gbi5sZW5ndGg9aSxuZXcgaCh0aGlzLG4pfSxsLmx0PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLl9jb21wYXJlLHI9dGhpcy5yb290LG49W10saT0wO3I7KXt2YXIgYT1lKHQsci5rZXkpO24ucHVzaChyKSxhPjAmJihpPW4ubGVuZ3RoKSxyPWE8PTA/ci5sZWZ0OnIucmlnaHR9cmV0dXJuIG4ubGVuZ3RoPWksbmV3IGgodGhpcyxuKX0sbC5sZT1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy5fY29tcGFyZSxyPXRoaXMucm9vdCxuPVtdLGk9MDtyOyl7dmFyIGE9ZSh0LHIua2V5KTtuLnB1c2gociksYT49MCYmKGk9bi5sZW5ndGgpLHI9YTwwP3IubGVmdDpyLnJpZ2h0fXJldHVybiBuLmxlbmd0aD1pLG5ldyBoKHRoaXMsbil9LGwuZmluZD1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy5fY29tcGFyZSxyPXRoaXMucm9vdCxuPVtdO3I7KXt2YXIgaT1lKHQsci5rZXkpO2lmKG4ucHVzaChyKSwwPT09aSlyZXR1cm4gbmV3IGgodGhpcyxuKTtyPWk8PTA/ci5sZWZ0OnIucmlnaHR9cmV0dXJuIG5ldyBoKHRoaXMsW10pfSxsLnJlbW92ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmZpbmQodCk7cmV0dXJuIGU/ZS5yZW1vdmUoKTp0aGlzfSxsLmdldD1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy5fY29tcGFyZSxyPXRoaXMucm9vdDtyOyl7dmFyIG49ZSh0LHIua2V5KTtpZigwPT09bilyZXR1cm4gci52YWx1ZTtyPW48PTA/ci5sZWZ0OnIucmlnaHR9fTt2YXIgcD1oLnByb3RvdHlwZTtmdW5jdGlvbiBkKHQsZSl7dC5rZXk9ZS5rZXksdC52YWx1ZT1lLnZhbHVlLHQubGVmdD1lLmxlZnQsdC5yaWdodD1lLnJpZ2h0LHQuX2NvbG9yPWUuX2NvbG9yLHQuX2NvdW50PWUuX2NvdW50fWZ1bmN0aW9uIG0odCxlKXtyZXR1cm4gdDxlPy0xOnQ+ZT8xOjB9T2JqZWN0LmRlZmluZVByb3BlcnR5KHAsInZhbGlkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0YWNrLmxlbmd0aD4wfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwLCJub2RlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0YWNrLmxlbmd0aD4wP3RoaXMuX3N0YWNrW3RoaXMuX3N0YWNrLmxlbmd0aC0xXTpudWxsfSxlbnVtZXJhYmxlOiEwfSkscC5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgaCh0aGlzLnRyZWUsdGhpcy5fc3RhY2suc2xpY2UoKSl9LHAucmVtb3ZlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fc3RhY2s7aWYoMD09PXQubGVuZ3RoKXJldHVybiB0aGlzLnRyZWU7dmFyIGU9bmV3IEFycmF5KHQubGVuZ3RoKSxyPXRbdC5sZW5ndGgtMV07ZVtlLmxlbmd0aC0xXT1uZXcgbihyLl9jb2xvcixyLmtleSxyLnZhbHVlLHIubGVmdCxyLnJpZ2h0LHIuX2NvdW50KTtmb3IodmFyIGw9dC5sZW5ndGgtMjtsPj0wOy0tbCl7KHI9dFtsXSkubGVmdD09PXRbbCsxXT9lW2xdPW5ldyBuKHIuX2NvbG9yLHIua2V5LHIudmFsdWUsZVtsKzFdLHIucmlnaHQsci5fY291bnQpOmVbbF09bmV3IG4oci5fY29sb3Isci5rZXksci52YWx1ZSxyLmxlZnQsZVtsKzFdLHIuX2NvdW50KX1pZigocj1lW2UubGVuZ3RoLTFdKS5sZWZ0JiZyLnJpZ2h0KXt2YXIgYz1lLmxlbmd0aDtmb3Iocj1yLmxlZnQ7ci5yaWdodDspZS5wdXNoKHIpLHI9ci5yaWdodDt2YXIgdT1lW2MtMV07ZS5wdXNoKG5ldyBuKHIuX2NvbG9yLHUua2V5LHUudmFsdWUsci5sZWZ0LHIucmlnaHQsci5fY291bnQpKSxlW2MtMV0ua2V5PXIua2V5LGVbYy0xXS52YWx1ZT1yLnZhbHVlO2ZvcihsPWUubGVuZ3RoLTI7bD49YzstLWwpcj1lW2xdLGVbbF09bmV3IG4oci5fY29sb3Isci5rZXksci52YWx1ZSxyLmxlZnQsZVtsKzFdLHIuX2NvdW50KTtlW2MtMV0ubGVmdD1lW2NdfWlmKDA9PT0ocj1lW2UubGVuZ3RoLTFdKS5fY29sb3Ipe3ZhciBmPWVbZS5sZW5ndGgtMl07Zi5sZWZ0PT09cj9mLmxlZnQ9bnVsbDpmLnJpZ2h0PT09ciYmKGYucmlnaHQ9bnVsbCksZS5wb3AoKTtmb3IobD0wO2w8ZS5sZW5ndGg7KytsKWVbbF0uX2NvdW50LS07cmV0dXJuIG5ldyBzKHRoaXMudHJlZS5fY29tcGFyZSxlWzBdKX1pZihyLmxlZnR8fHIucmlnaHQpe3IubGVmdD9kKHIsci5sZWZ0KTpyLnJpZ2h0JiZkKHIsci5yaWdodCksci5fY29sb3I9MTtmb3IobD0wO2w8ZS5sZW5ndGgtMTsrK2wpZVtsXS5fY291bnQtLTtyZXR1cm4gbmV3IHModGhpcy50cmVlLl9jb21wYXJlLGVbMF0pfWlmKDE9PT1lLmxlbmd0aClyZXR1cm4gbmV3IHModGhpcy50cmVlLl9jb21wYXJlLG51bGwpO2ZvcihsPTA7bDxlLmxlbmd0aDsrK2wpZVtsXS5fY291bnQtLTt2YXIgaD1lW2UubGVuZ3RoLTJdO3JldHVybiBmdW5jdGlvbih0KXtmb3IodmFyIGUscixuLHMsbD10Lmxlbmd0aC0xO2w+PTA7LS1sKXtpZihlPXRbbF0sMD09PWwpcmV0dXJuIHZvaWQoZS5fY29sb3I9MSk7aWYoKHI9dFtsLTFdKS5sZWZ0PT09ZSl7aWYoKG49ci5yaWdodCkucmlnaHQmJjA9PT1uLnJpZ2h0Ll9jb2xvcil7aWYocz0obj1yLnJpZ2h0PWkobikpLnJpZ2h0PWkobi5yaWdodCksci5yaWdodD1uLmxlZnQsbi5sZWZ0PXIsbi5yaWdodD1zLG4uX2NvbG9yPXIuX2NvbG9yLGUuX2NvbG9yPTEsci5fY29sb3I9MSxzLl9jb2xvcj0xLG8ociksbyhuKSxsPjEpKGM9dFtsLTJdKS5sZWZ0PT09cj9jLmxlZnQ9bjpjLnJpZ2h0PW47cmV0dXJuIHZvaWQodFtsLTFdPW4pfWlmKG4ubGVmdCYmMD09PW4ubGVmdC5fY29sb3Ipe2lmKHM9KG49ci5yaWdodD1pKG4pKS5sZWZ0PWkobi5sZWZ0KSxyLnJpZ2h0PXMubGVmdCxuLmxlZnQ9cy5yaWdodCxzLmxlZnQ9cixzLnJpZ2h0PW4scy5fY29sb3I9ci5fY29sb3Isci5fY29sb3I9MSxuLl9jb2xvcj0xLGUuX2NvbG9yPTEsbyhyKSxvKG4pLG8ocyksbD4xKShjPXRbbC0yXSkubGVmdD09PXI/Yy5sZWZ0PXM6Yy5yaWdodD1zO3JldHVybiB2b2lkKHRbbC0xXT1zKX1pZigxPT09bi5fY29sb3Ipe2lmKDA9PT1yLl9jb2xvcilyZXR1cm4gci5fY29sb3I9MSx2b2lkKHIucmlnaHQ9YSgwLG4pKTtyLnJpZ2h0PWEoMCxuKTtjb250aW51ZX1uPWkobiksci5yaWdodD1uLmxlZnQsbi5sZWZ0PXIsbi5fY29sb3I9ci5fY29sb3Isci5fY29sb3I9MCxvKHIpLG8obiksbD4xJiYoKGM9dFtsLTJdKS5sZWZ0PT09cj9jLmxlZnQ9bjpjLnJpZ2h0PW4pLHRbbC0xXT1uLHRbbF09cixsKzE8dC5sZW5ndGg/dFtsKzFdPWU6dC5wdXNoKGUpLGwrPTJ9ZWxzZXtpZigobj1yLmxlZnQpLmxlZnQmJjA9PT1uLmxlZnQuX2NvbG9yKXtpZihzPShuPXIubGVmdD1pKG4pKS5sZWZ0PWkobi5sZWZ0KSxyLmxlZnQ9bi5yaWdodCxuLnJpZ2h0PXIsbi5sZWZ0PXMsbi5fY29sb3I9ci5fY29sb3IsZS5fY29sb3I9MSxyLl9jb2xvcj0xLHMuX2NvbG9yPTEsbyhyKSxvKG4pLGw+MSkoYz10W2wtMl0pLnJpZ2h0PT09cj9jLnJpZ2h0PW46Yy5sZWZ0PW47cmV0dXJuIHZvaWQodFtsLTFdPW4pfWlmKG4ucmlnaHQmJjA9PT1uLnJpZ2h0Ll9jb2xvcil7aWYocz0obj1yLmxlZnQ9aShuKSkucmlnaHQ9aShuLnJpZ2h0KSxyLmxlZnQ9cy5yaWdodCxuLnJpZ2h0PXMubGVmdCxzLnJpZ2h0PXIscy5sZWZ0PW4scy5fY29sb3I9ci5fY29sb3Isci5fY29sb3I9MSxuLl9jb2xvcj0xLGUuX2NvbG9yPTEsbyhyKSxvKG4pLG8ocyksbD4xKShjPXRbbC0yXSkucmlnaHQ9PT1yP2MucmlnaHQ9czpjLmxlZnQ9cztyZXR1cm4gdm9pZCh0W2wtMV09cyl9aWYoMT09PW4uX2NvbG9yKXtpZigwPT09ci5fY29sb3IpcmV0dXJuIHIuX2NvbG9yPTEsdm9pZChyLmxlZnQ9YSgwLG4pKTtyLmxlZnQ9YSgwLG4pO2NvbnRpbnVlfXZhciBjO249aShuKSxyLmxlZnQ9bi5yaWdodCxuLnJpZ2h0PXIsbi5fY29sb3I9ci5fY29sb3Isci5fY29sb3I9MCxvKHIpLG8obiksbD4xJiYoKGM9dFtsLTJdKS5yaWdodD09PXI/Yy5yaWdodD1uOmMubGVmdD1uKSx0W2wtMV09bix0W2xdPXIsbCsxPHQubGVuZ3RoP3RbbCsxXT1lOnQucHVzaChlKSxsKz0yfX19KGUpLGgubGVmdD09PXI/aC5sZWZ0PW51bGw6aC5yaWdodD1udWxsLG5ldyBzKHRoaXMudHJlZS5fY29tcGFyZSxlWzBdKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KHAsImtleSIse2dldDpmdW5jdGlvbigpe2lmKHRoaXMuX3N0YWNrLmxlbmd0aD4wKXJldHVybiB0aGlzLl9zdGFja1t0aGlzLl9zdGFjay5sZW5ndGgtMV0ua2V5fSxlbnVtZXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHAsInZhbHVlIix7Z2V0OmZ1bmN0aW9uKCl7aWYodGhpcy5fc3RhY2subGVuZ3RoPjApcmV0dXJuIHRoaXMuX3N0YWNrW3RoaXMuX3N0YWNrLmxlbmd0aC0xXS52YWx1ZX0sZW51bWVyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwLCJpbmRleCIse2dldDpmdW5jdGlvbigpe3ZhciB0PTAsZT10aGlzLl9zdGFjaztpZigwPT09ZS5sZW5ndGgpe3ZhciByPXRoaXMudHJlZS5yb290O3JldHVybiByP3IuX2NvdW50OjB9ZVtlLmxlbmd0aC0xXS5sZWZ0JiYodD1lW2UubGVuZ3RoLTFdLmxlZnQuX2NvdW50KTtmb3IodmFyIG49ZS5sZW5ndGgtMjtuPj0wOy0tbillW24rMV09PT1lW25dLnJpZ2h0JiYoKyt0LGVbbl0ubGVmdCYmKHQrPWVbbl0ubGVmdC5fY291bnQpKTtyZXR1cm4gdH0sZW51bWVyYWJsZTohMH0pLHAubmV4dD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX3N0YWNrO2lmKDAhPT10Lmxlbmd0aCl7dmFyIGU9dFt0Lmxlbmd0aC0xXTtpZihlLnJpZ2h0KWZvcihlPWUucmlnaHQ7ZTspdC5wdXNoKGUpLGU9ZS5sZWZ0O2Vsc2UgZm9yKHQucG9wKCk7dC5sZW5ndGg+MCYmdFt0Lmxlbmd0aC0xXS5yaWdodD09PWU7KWU9dFt0Lmxlbmd0aC0xXSx0LnBvcCgpfX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KHAsImhhc05leHQiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9zdGFjaztpZigwPT09dC5sZW5ndGgpcmV0dXJuITE7aWYodFt0Lmxlbmd0aC0xXS5yaWdodClyZXR1cm4hMDtmb3IodmFyIGU9dC5sZW5ndGgtMTtlPjA7LS1lKWlmKHRbZS0xXS5sZWZ0PT09dFtlXSlyZXR1cm4hMDtyZXR1cm4hMX19KSxwLnVwZGF0ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9zdGFjaztpZigwPT09ZS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJDYW4ndCB1cGRhdGUgZW1wdHkgbm9kZSEiKTt2YXIgcj1uZXcgQXJyYXkoZS5sZW5ndGgpLGk9ZVtlLmxlbmd0aC0xXTtyW3IubGVuZ3RoLTFdPW5ldyBuKGkuX2NvbG9yLGkua2V5LHQsaS5sZWZ0LGkucmlnaHQsaS5fY291bnQpO2Zvcih2YXIgYT1lLmxlbmd0aC0yO2E+PTA7LS1hKShpPWVbYV0pLmxlZnQ9PT1lW2ErMV0/clthXT1uZXcgbihpLl9jb2xvcixpLmtleSxpLnZhbHVlLHJbYSsxXSxpLnJpZ2h0LGkuX2NvdW50KTpyW2FdPW5ldyBuKGkuX2NvbG9yLGkua2V5LGkudmFsdWUsaS5sZWZ0LHJbYSsxXSxpLl9jb3VudCk7cmV0dXJuIG5ldyBzKHRoaXMudHJlZS5fY29tcGFyZSxyWzBdKX0scC5wcmV2PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fc3RhY2s7aWYoMCE9PXQubGVuZ3RoKXt2YXIgZT10W3QubGVuZ3RoLTFdO2lmKGUubGVmdClmb3IoZT1lLmxlZnQ7ZTspdC5wdXNoKGUpLGU9ZS5yaWdodDtlbHNlIGZvcih0LnBvcCgpO3QubGVuZ3RoPjAmJnRbdC5sZW5ndGgtMV0ubGVmdD09PWU7KWU9dFt0Lmxlbmd0aC0xXSx0LnBvcCgpfX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KHAsImhhc1ByZXYiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9zdGFjaztpZigwPT09dC5sZW5ndGgpcmV0dXJuITE7aWYodFt0Lmxlbmd0aC0xXS5sZWZ0KXJldHVybiEwO2Zvcih2YXIgZT10Lmxlbmd0aC0xO2U+MDstLWUpaWYodFtlLTFdLnJpZ2h0PT09dFtlXSlyZXR1cm4hMDtyZXR1cm4hMX19KX0se31dLDcwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPW5ldyB1KHQpO3JldHVybiByLnVwZGF0ZShlKSxyfTt2YXIgbj10KCIuL2xpYi90ZXh0LmpzIiksaT10KCIuL2xpYi9saW5lcy5qcyIpLGE9dCgiLi9saWIvYmFja2dyb3VuZC5qcyIpLG89dCgiLi9saWIvY3ViZS5qcyIpLHM9dCgiLi9saWIvdGlja3MuanMiKSxsPW5ldyBGbG9hdDMyQXJyYXkoWzEsMCwwLDAsMCwxLDAsMCwwLDAsMSwwLDAsMCwwLDFdKTtmdW5jdGlvbiBjKHQsZSl7cmV0dXJuIHRbMF09ZVswXSx0WzFdPWVbMV0sdFsyXT1lWzJdLHR9ZnVuY3Rpb24gdSh0KXt0aGlzLmdsPXQsdGhpcy5waXhlbFJhdGlvPTEsdGhpcy5ib3VuZHM9W1stMTAsLTEwLC0xMF0sWzEwLDEwLDEwXV0sdGhpcy50aWNrcz1bW10sW10sW11dLHRoaXMuYXV0b1RpY2tzPSEwLHRoaXMudGlja1NwYWNpbmc9WzEsMSwxXSx0aGlzLnRpY2tFbmFibGU9WyEwLCEwLCEwXSx0aGlzLnRpY2tGb250PVsic2Fucy1zZXJpZiIsInNhbnMtc2VyaWYiLCJzYW5zLXNlcmlmIl0sdGhpcy50aWNrU2l6ZT1bMTIsMTIsMTJdLHRoaXMudGlja0FuZ2xlPVswLDAsMF0sdGhpcy50aWNrQWxpZ249WyJhdXRvIiwiYXV0byIsImF1dG8iXSx0aGlzLnRpY2tDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMudGlja1BhZD1bMTAsMTAsMTBdLHRoaXMubGFzdEN1YmVQcm9wcz17Y3ViZUVkZ2VzOlswLDAsMF0sYXhpczpbMCwwLDBdfSx0aGlzLmxhYmVscz1bIngiLCJ5IiwieiJdLHRoaXMubGFiZWxFbmFibGU9WyEwLCEwLCEwXSx0aGlzLmxhYmVsRm9udD0ic2Fucy1zZXJpZiIsdGhpcy5sYWJlbFNpemU9WzIwLDIwLDIwXSx0aGlzLmxhYmVsQW5nbGU9WzAsMCwwXSx0aGlzLmxhYmVsQWxpZ249WyJhdXRvIiwiYXV0byIsImF1dG8iXSx0aGlzLmxhYmVsQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLmxhYmVsUGFkPVsxMCwxMCwxMF0sdGhpcy5saW5lRW5hYmxlPVshMCwhMCwhMF0sdGhpcy5saW5lTWlycm9yPVshMSwhMSwhMV0sdGhpcy5saW5lV2lkdGg9WzEsMSwxXSx0aGlzLmxpbmVDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMubGluZVRpY2tFbmFibGU9WyEwLCEwLCEwXSx0aGlzLmxpbmVUaWNrTWlycm9yPVshMSwhMSwhMV0sdGhpcy5saW5lVGlja0xlbmd0aD1bMCwwLDBdLHRoaXMubGluZVRpY2tXaWR0aD1bMSwxLDFdLHRoaXMubGluZVRpY2tDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMuZ3JpZEVuYWJsZT1bITAsITAsITBdLHRoaXMuZ3JpZFdpZHRoPVsxLDEsMV0sdGhpcy5ncmlkQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLnplcm9FbmFibGU9WyEwLCEwLCEwXSx0aGlzLnplcm9MaW5lQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLnplcm9MaW5lV2lkdGg9WzIsMiwyXSx0aGlzLmJhY2tncm91bmRFbmFibGU9WyExLCExLCExXSx0aGlzLmJhY2tncm91bmRDb2xvcj1bWy44LC44LC44LC41XSxbLjgsLjgsLjgsLjVdLFsuOCwuOCwuOCwuNV1dLHRoaXMuX2ZpcnN0SW5pdD0hMCx0aGlzLl90ZXh0PW51bGwsdGhpcy5fbGluZXM9bnVsbCx0aGlzLl9iYWNrZ3JvdW5kPWEodCl9dmFyIGY9dS5wcm90b3R5cGU7ZnVuY3Rpb24gaCgpe3RoaXMucHJpbWFsT2Zmc2V0PVswLDAsMF0sdGhpcy5wcmltYWxNaW5vcj1bMCwwLDBdLHRoaXMubWlycm9yT2Zmc2V0PVswLDAsMF0sdGhpcy5taXJyb3JNaW5vcj1bMCwwLDBdfWYudXBkYXRlPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSxyLG4pe2lmKG4gaW4gdCl7dmFyIGksYT10W25dLG89dGhpc1tuXTsoZT9BcnJheS5pc0FycmF5KGEpJiZBcnJheS5pc0FycmF5KGFbMF0pOkFycmF5LmlzQXJyYXkoYSkpP3RoaXNbbl09aT1bcihhWzBdKSxyKGFbMV0pLHIoYVsyXSldOnRoaXNbbl09aT1bcihhKSxyKGEpLHIoYSldO2Zvcih2YXIgcz0wO3M8MzsrK3MpaWYoaVtzXSE9PW9bc10pcmV0dXJuITB9cmV0dXJuITF9dD10fHx7fTt2YXIgcixhPWUuYmluZCh0aGlzLCExLE51bWJlciksbz1lLmJpbmQodGhpcywhMSxCb29sZWFuKSxsPWUuYmluZCh0aGlzLCExLFN0cmluZyksYz1lLmJpbmQodGhpcywhMCwoZnVuY3Rpb24odCl7aWYoQXJyYXkuaXNBcnJheSh0KSl7aWYoMz09PXQubGVuZ3RoKXJldHVyblsrdFswXSwrdFsxXSwrdFsyXSwxXTtpZig0PT09dC5sZW5ndGgpcmV0dXJuWyt0WzBdLCt0WzFdLCt0WzJdLCt0WzNdXX1yZXR1cm5bMCwwLDAsMV19KSksdT0hMSxmPSExO2lmKCJib3VuZHMiaW4gdClmb3IodmFyIGg9dC5ib3VuZHMscD0wO3A8MjsrK3ApZm9yKHZhciBkPTA7ZDwzOysrZCloW3BdW2RdIT09dGhpcy5ib3VuZHNbcF1bZF0mJihmPSEwKSx0aGlzLmJvdW5kc1twXVtkXT1oW3BdW2RdO2lmKCJ0aWNrcyJpbiB0KXtyPXQudGlja3MsdT0hMCx0aGlzLmF1dG9UaWNrcz0hMTtmb3IocD0wO3A8MzsrK3ApdGhpcy50aWNrU3BhY2luZ1twXT0wfWVsc2UgYSgidGlja1NwYWNpbmciKSYmKHRoaXMuYXV0b1RpY2tzPSEwLGY9ITApO2lmKHRoaXMuX2ZpcnN0SW5pdCYmKCJ0aWNrcyJpbiB0fHwidGlja1NwYWNpbmciaW4gdHx8KHRoaXMuYXV0b1RpY2tzPSEwKSxmPSEwLHU9ITAsdGhpcy5fZmlyc3RJbml0PSExKSxmJiZ0aGlzLmF1dG9UaWNrcyYmKHI9cy5jcmVhdGUodGhpcy5ib3VuZHMsdGhpcy50aWNrU3BhY2luZyksdT0hMCksdSl7Zm9yKHA9MDtwPDM7KytwKXJbcF0uc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC54LWUueH0pKTtzLmVxdWFsKHIsdGhpcy50aWNrcyk/dT0hMTp0aGlzLnRpY2tzPXJ9bygidGlja0VuYWJsZSIpLGwoInRpY2tGb250IikmJih1PSEwKSxhKCJ0aWNrU2l6ZSIpLGEoInRpY2tBbmdsZSIpLGEoInRpY2tQYWQiKSxjKCJ0aWNrQ29sb3IiKTt2YXIgbT1sKCJsYWJlbHMiKTtsKCJsYWJlbEZvbnQiKSYmKG09ITApLG8oImxhYmVsRW5hYmxlIiksYSgibGFiZWxTaXplIiksYSgibGFiZWxQYWQiKSxjKCJsYWJlbENvbG9yIiksbygibGluZUVuYWJsZSIpLG8oImxpbmVNaXJyb3IiKSxhKCJsaW5lV2lkdGgiKSxjKCJsaW5lQ29sb3IiKSxvKCJsaW5lVGlja0VuYWJsZSIpLG8oImxpbmVUaWNrTWlycm9yIiksYSgibGluZVRpY2tMZW5ndGgiKSxhKCJsaW5lVGlja1dpZHRoIiksYygibGluZVRpY2tDb2xvciIpLG8oImdyaWRFbmFibGUiKSxhKCJncmlkV2lkdGgiKSxjKCJncmlkQ29sb3IiKSxvKCJ6ZXJvRW5hYmxlIiksYygiemVyb0xpbmVDb2xvciIpLGEoInplcm9MaW5lV2lkdGgiKSxvKCJiYWNrZ3JvdW5kRW5hYmxlIiksYygiYmFja2dyb3VuZENvbG9yIiksdGhpcy5fdGV4dD90aGlzLl90ZXh0JiYobXx8dSkmJnRoaXMuX3RleHQudXBkYXRlKHRoaXMuYm91bmRzLHRoaXMubGFiZWxzLHRoaXMubGFiZWxGb250LHRoaXMudGlja3MsdGhpcy50aWNrRm9udCk6dGhpcy5fdGV4dD1uKHRoaXMuZ2wsdGhpcy5ib3VuZHMsdGhpcy5sYWJlbHMsdGhpcy5sYWJlbEZvbnQsdGhpcy50aWNrcyx0aGlzLnRpY2tGb250KSx0aGlzLl9saW5lcyYmdSYmKHRoaXMuX2xpbmVzLmRpc3Bvc2UoKSx0aGlzLl9saW5lcz1udWxsKSx0aGlzLl9saW5lc3x8KHRoaXMuX2xpbmVzPWkodGhpcy5nbCx0aGlzLmJvdW5kcyx0aGlzLnRpY2tzKSl9O3ZhciBwPVtuZXcgaCxuZXcgaCxuZXcgaF07ZnVuY3Rpb24gZCh0LGUscixuLGkpe2Zvcih2YXIgYT10LnByaW1hbE9mZnNldCxvPXQucHJpbWFsTWlub3Iscz10Lm1pcnJvck9mZnNldCxsPXQubWlycm9yTWlub3IsYz1uW2VdLHU9MDt1PDM7Kyt1KWlmKGUhPT11KXt2YXIgZj1hLGg9cyxwPW8sZD1sO2MmMTw8dSYmKGY9cyxoPWEscD1sLGQ9byksZlt1XT1yWzBdW3VdLGhbdV09clsxXVt1XSxpW3VdPjA/KHBbdV09LTEsZFt1XT0wKToocFt1XT0wLGRbdV09MSl9fXZhciBtPVswLDAsMF0sZz17bW9kZWw6bCx2aWV3OmwscHJvamVjdGlvbjpsLF9vcnRobzohMX07Zi5pc09wYXF1ZT1mdW5jdGlvbigpe3JldHVybiEwfSxmLmlzVHJhbnNwYXJlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4hMX0sZi5kcmF3VHJhbnNwYXJlbnQ9ZnVuY3Rpb24odCl7fTt2YXIgdj1bMCwwLDBdLHk9WzAsMCwwXSx4PVswLDAsMF07Zi5kcmF3PWZ1bmN0aW9uKHQpe3Q9dHx8Zztmb3IodmFyIGU9dGhpcy5nbCxyPXQubW9kZWx8fGwsbj10LnZpZXd8fGwsaT10LnByb2plY3Rpb258fGwsYT10aGlzLmJvdW5kcyxzPXQuX29ydGhvfHwhMSx1PW8ocixuLGksYSxzKSxmPXUuY3ViZUVkZ2VzLGg9dS5heGlzLGI9blsxMl0sXz1uWzEzXSx3PW5bMTRdLFQ9blsxNV0saz0ocz8yOjEpKnRoaXMucGl4ZWxSYXRpbyooaVszXSpiK2lbN10qXytpWzExXSp3K2lbMTVdKlQpL2UuZHJhd2luZ0J1ZmZlckhlaWdodCxBPTA7QTwzOysrQSl0aGlzLmxhc3RDdWJlUHJvcHMuY3ViZUVkZ2VzW0FdPWZbQV0sdGhpcy5sYXN0Q3ViZVByb3BzLmF4aXNbQV09aFtBXTt2YXIgTT1wO2ZvcihBPTA7QTwzOysrQSlkKHBbQV0sQSx0aGlzLmJvdW5kcyxmLGgpO2U9dGhpcy5nbDt2YXIgUyxFPW07Zm9yKEE9MDtBPDM7KytBKXRoaXMuYmFja2dyb3VuZEVuYWJsZVtBXT9FW0FdPWhbQV06RVtBXT0wO3RoaXMuX2JhY2tncm91bmQuZHJhdyhyLG4saSxhLEUsdGhpcy5iYWNrZ3JvdW5kQ29sb3IpLHRoaXMuX2xpbmVzLmJpbmQocixuLGksdGhpcyk7Zm9yKEE9MDtBPDM7KytBKXt2YXIgTD1bMCwwLDBdO2hbQV0+MD9MW0FdPWFbMV1bQV06TFtBXT1hWzBdW0FdO2Zvcih2YXIgQz0wO0M8MjsrK0Mpe3ZhciBQPShBKzErQyklMyxJPShBKzErKDFeQykpJTM7dGhpcy5ncmlkRW5hYmxlW1BdJiZ0aGlzLl9saW5lcy5kcmF3R3JpZChQLEksdGhpcy5ib3VuZHMsTCx0aGlzLmdyaWRDb2xvcltQXSx0aGlzLmdyaWRXaWR0aFtQXSp0aGlzLnBpeGVsUmF0aW8pfWZvcihDPTA7QzwyOysrQyl7UD0oQSsxK0MpJTMsST0oQSsxKygxXkMpKSUzO3RoaXMuemVyb0VuYWJsZVtJXSYmTWF0aC5taW4oYVswXVtJXSxhWzFdW0ldKTw9MCYmTWF0aC5tYXgoYVswXVtJXSxhWzFdW0ldKT49MCYmdGhpcy5fbGluZXMuZHJhd1plcm8oUCxJLHRoaXMuYm91bmRzLEwsdGhpcy56ZXJvTGluZUNvbG9yW0ldLHRoaXMuemVyb0xpbmVXaWR0aFtJXSp0aGlzLnBpeGVsUmF0aW8pfX1mb3IoQT0wO0E8MzsrK0Epe3RoaXMubGluZUVuYWJsZVtBXSYmdGhpcy5fbGluZXMuZHJhd0F4aXNMaW5lKEEsdGhpcy5ib3VuZHMsTVtBXS5wcmltYWxPZmZzZXQsdGhpcy5saW5lQ29sb3JbQV0sdGhpcy5saW5lV2lkdGhbQV0qdGhpcy5waXhlbFJhdGlvKSx0aGlzLmxpbmVNaXJyb3JbQV0mJnRoaXMuX2xpbmVzLmRyYXdBeGlzTGluZShBLHRoaXMuYm91bmRzLE1bQV0ubWlycm9yT2Zmc2V0LHRoaXMubGluZUNvbG9yW0FdLHRoaXMubGluZVdpZHRoW0FdKnRoaXMucGl4ZWxSYXRpbyk7dmFyIE89Yyh2LE1bQV0ucHJpbWFsTWlub3IpLHo9Yyh5LE1bQV0ubWlycm9yTWlub3IpLEQ9dGhpcy5saW5lVGlja0xlbmd0aDtmb3IoQz0wO0M8MzsrK0Mpe3ZhciBSPWsvcls1KkNdO09bQ10qPURbQ10qUix6W0NdKj1EW0NdKlJ9dGhpcy5saW5lVGlja0VuYWJsZVtBXSYmdGhpcy5fbGluZXMuZHJhd0F4aXNUaWNrcyhBLE1bQV0ucHJpbWFsT2Zmc2V0LE8sdGhpcy5saW5lVGlja0NvbG9yW0FdLHRoaXMubGluZVRpY2tXaWR0aFtBXSp0aGlzLnBpeGVsUmF0aW8pLHRoaXMubGluZVRpY2tNaXJyb3JbQV0mJnRoaXMuX2xpbmVzLmRyYXdBeGlzVGlja3MoQSxNW0FdLm1pcnJvck9mZnNldCx6LHRoaXMubGluZVRpY2tDb2xvcltBXSx0aGlzLmxpbmVUaWNrV2lkdGhbQV0qdGhpcy5waXhlbFJhdGlvKX10aGlzLl9saW5lcy51bmJpbmQoKSx0aGlzLl90ZXh0LmJpbmQocixuLGksdGhpcy5waXhlbFJhdGlvKTt2YXIgRixCO2Z1bmN0aW9uIE4odCl7KEI9WzAsMCwwXSlbdF09MX1mdW5jdGlvbiBqKHQsZSxyKXt2YXIgbj0odCsxKSUzLGk9KHQrMiklMyxhPWVbbl0sbz1lW2ldLHM9cltuXSxsPXJbaV07YT4wJiZsPjB8fGE+MCYmbDwwfHxhPDAmJmw+MHx8YTwwJiZsPDA/TihuKToobz4wJiZzPjB8fG8+MCYmczwwfHxvPDAmJnM+MHx8bzwwJiZzPDApJiZOKGkpfWZvcihBPTA7QTwzOysrQSl7dmFyIFU9TVtBXS5wcmltYWxNaW5vcixWPU1bQV0ubWlycm9yTWlub3IsSD1jKHgsTVtBXS5wcmltYWxPZmZzZXQpO2ZvcihDPTA7QzwzOysrQyl0aGlzLmxpbmVUaWNrRW5hYmxlW0FdJiYoSFtDXSs9aypVW0NdKk1hdGgubWF4KHRoaXMubGluZVRpY2tMZW5ndGhbQ10sMCkvcls1KkNdKTt2YXIgcT1bMCwwLDBdO2lmKHFbQV09MSx0aGlzLnRpY2tFbmFibGVbQV0pey0zNjAwPT09dGhpcy50aWNrQW5nbGVbQV0/KHRoaXMudGlja0FuZ2xlW0FdPTAsdGhpcy50aWNrQWxpZ25bQV09ImF1dG8iKTp0aGlzLnRpY2tBbGlnbltBXT0tMSxGPTEsImF1dG8iPT09KFM9W3RoaXMudGlja0FsaWduW0FdLC41LEZdKVswXT9TWzBdPTA6U1swXT1wYXJzZUludCgiIitTWzBdKSxCPVswLDAsMF0saihBLFUsVik7Zm9yKEM9MDtDPDM7KytDKUhbQ10rPWsqVVtDXSp0aGlzLnRpY2tQYWRbQ10vcls1KkNdO3RoaXMuX3RleHQuZHJhd1RpY2tzKEEsdGhpcy50aWNrU2l6ZVtBXSx0aGlzLnRpY2tBbmdsZVtBXSxILHRoaXMudGlja0NvbG9yW0FdLHEsQixTKX1pZih0aGlzLmxhYmVsRW5hYmxlW0FdKXtGPTAsQj1bMCwwLDBdLHRoaXMubGFiZWxzW0FdLmxlbmd0aD40JiYoTihBKSxGPTEpLCJhdXRvIj09PShTPVt0aGlzLmxhYmVsQWxpZ25bQV0sLjUsRl0pWzBdP1NbMF09MDpTWzBdPXBhcnNlSW50KCIiK1NbMF0pO2ZvcihDPTA7QzwzOysrQylIW0NdKz1rKlVbQ10qdGhpcy5sYWJlbFBhZFtDXS9yWzUqQ107SFtBXSs9LjUqKGFbMF1bQV0rYVsxXVtBXSksdGhpcy5fdGV4dC5kcmF3TGFiZWwoQSx0aGlzLmxhYmVsU2l6ZVtBXSx0aGlzLmxhYmVsQW5nbGVbQV0sSCx0aGlzLmxhYmVsQ29sb3JbQV0sWzAsMCwwXSxCLFMpfX10aGlzLl90ZXh0LnVuYmluZCgpfSxmLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLl90ZXh0LmRpc3Bvc2UoKSx0aGlzLl9saW5lcy5kaXNwb3NlKCksdGhpcy5fYmFja2dyb3VuZC5kaXNwb3NlKCksdGhpcy5fbGluZXM9bnVsbCx0aGlzLl90ZXh0PW51bGwsdGhpcy5fYmFja2dyb3VuZD1udWxsLHRoaXMuZ2w9bnVsbH19LHsiLi9saWIvYmFja2dyb3VuZC5qcyI6NzEsIi4vbGliL2N1YmUuanMiOjcyLCIuL2xpYi9saW5lcy5qcyI6NzMsIi4vbGliL3RleHQuanMiOjc1LCIuL2xpYi90aWNrcy5qcyI6NzZ9XSw3MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLHI9W10scz0wLGw9MDtsPDM7KytsKWZvcih2YXIgYz0obCsxKSUzLHU9KGwrMiklMyxmPVswLDAsMF0saD1bMCwwLDBdLHA9LTE7cDw9MTtwKz0yKXtyLnB1c2gocyxzKzIscysxLHMrMSxzKzIscyszKSxmW2xdPXAsaFtsXT1wO2Zvcih2YXIgZD0tMTtkPD0xO2QrPTIpe2ZbY109ZDtmb3IodmFyIG09LTE7bTw9MTttKz0yKWZbdV09bSxlLnB1c2goZlswXSxmWzFdLGZbMl0saFswXSxoWzFdLGhbMl0pLHMrPTF9dmFyIGc9YztjPXUsdT1nfXZhciB2PW4odCxuZXcgRmxvYXQzMkFycmF5KGUpKSx5PW4odCxuZXcgVWludDE2QXJyYXkociksdC5FTEVNRU5UX0FSUkFZX0JVRkZFUikseD1pKHQsW3tidWZmZXI6dix0eXBlOnQuRkxPQVQsc2l6ZTozLG9mZnNldDowLHN0cmlkZToyNH0se2J1ZmZlcjp2LHR5cGU6dC5GTE9BVCxzaXplOjMsb2Zmc2V0OjEyLHN0cmlkZToyNH1dLHkpLGI9YSh0KTtyZXR1cm4gYi5hdHRyaWJ1dGVzLnBvc2l0aW9uLmxvY2F0aW9uPTAsYi5hdHRyaWJ1dGVzLm5vcm1hbC5sb2NhdGlvbj0xLG5ldyBvKHQsdix4LGIpfTt2YXIgbj10KCJnbC1idWZmZXIiKSxpPXQoImdsLXZhbyIpLGE9dCgiLi9zaGFkZXJzIikuYmc7ZnVuY3Rpb24gbyh0LGUscixuKXt0aGlzLmdsPXQsdGhpcy5idWZmZXI9ZSx0aGlzLnZhbz1yLHRoaXMuc2hhZGVyPW59dmFyIHM9by5wcm90b3R5cGU7cy5kcmF3PWZ1bmN0aW9uKHQsZSxyLG4saSxhKXtmb3IodmFyIG89ITEscz0wO3M8MzsrK3Mpbz1vfHxpW3NdO2lmKG8pe3ZhciBsPXRoaXMuZ2w7bC5lbmFibGUobC5QT0xZR09OX09GRlNFVF9GSUxMKSxsLnBvbHlnb25PZmZzZXQoMSwyKSx0aGlzLnNoYWRlci5iaW5kKCksdGhpcy5zaGFkZXIudW5pZm9ybXM9e21vZGVsOnQsdmlldzplLHByb2plY3Rpb246cixib3VuZHM6bixlbmFibGU6aSxjb2xvcnM6YX0sdGhpcy52YW8uYmluZCgpLHRoaXMudmFvLmRyYXcodGhpcy5nbC5UUklBTkdMRVMsMzYpLHRoaXMudmFvLnVuYmluZCgpLGwuZGlzYWJsZShsLlBPTFlHT05fT0ZGU0VUX0ZJTEwpfX0scy5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy52YW8uZGlzcG9zZSgpLHRoaXMuYnVmZmVyLmRpc3Bvc2UoKSx0aGlzLnNoYWRlci5kaXNwb3NlKCl9fSx7Ii4vc2hhZGVycyI6NzQsImdsLWJ1ZmZlciI6NzgsImdsLXZhbyI6MTUwfV0sNzI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGEscCl7aShzLGUsdCksaShzLHIscyk7Zm9yKHZhciB5PTAseD0wO3g8MjsrK3gpe3VbMl09YVt4XVsyXTtmb3IodmFyIGI9MDtiPDI7KytiKXt1WzFdPWFbYl1bMV07Zm9yKHZhciBfPTA7XzwyOysrXyl1WzBdPWFbX11bMF0saChsW3ldLHUscykseSs9MX19dmFyIHc9LTE7Zm9yKHg9MDt4PDg7Kyt4KXtmb3IodmFyIFQ9bFt4XVszXSxrPTA7azwzOysrayljW3hdW2tdPWxbeF1ba10vVDtwJiYoY1t4XVsyXSo9LTEpLFQ8MCYmKHc8MHx8Y1t4XVsyXTxjW3ddWzJdKSYmKHc9eCl9aWYodzwwKXt3PTA7Zm9yKHZhciBBPTA7QTwzOysrQSl7Zm9yKHZhciBNPShBKzIpJTMsUz0oQSsxKSUzLEU9LTEsTD0tMSxDPTA7QzwyOysrQyl7dmFyIFA9KE89Qzw8QSkrKEM8PE0pKygxLUM8PFMpLEk9TysoMS1DPDxNKSsoQzw8Uyk7byhjW09dLGNbUF0sY1tJXSxmKTwwfHwoQz9FPTE6TD0xKX1pZihFPDB8fEw8MClMPkUmJih3fD0xPDxBKTtlbHNle2ZvcihDPTA7QzwyOysrQyl7UD0oTz1DPDxBKSsoQzw8TSkrKDEtQzw8UyksST1PKygxLUM8PE0pKyhDPDxTKTt2YXIgTyx6PWQoW2xbT10sbFtQXSxsW0ldLGxbTysoMTw8TSkrKDE8PFMpXV0pO0M/RT16Okw9en1MPkUmJih3fD0xPDxBKX19fXZhciBEPTdedyxSPS0xO2Zvcih4PTA7eDw4OysreCl4IT09dyYmeCE9PUQmJihSPDB8fGNbUl1bMV0+Y1t4XVsxXSkmJihSPXgpO3ZhciBGPS0xO2Zvcih4PTA7eDwzOysreCl7aWYoKE49Ul4xPDx4KSE9PXcmJk4hPT1EKUY8MCYmKEY9TiksKFM9Y1tOXSlbMF08Y1tGXVswXSYmKEY9Til9dmFyIEI9LTE7Zm9yKHg9MDt4PDM7Kyt4KXt2YXIgTjtpZigoTj1SXjE8PHgpIT09dyYmTiE9PUQmJk4hPT1GKUI8MCYmKEI9TiksKFM9Y1tOXSlbMF0+Y1tCXVswXSYmKEI9Til9dmFyIGo9bTtqWzBdPWpbMV09alsyXT0wLGpbbi5sb2cyKEZeUildPVImRixqW24ubG9nMihSXkIpXT1SJkI7dmFyIFU9N15CO1U9PT13fHxVPT09RD8oVT03XkYsaltuLmxvZzIoQl5VKV09VSZCKTpqW24ubG9nMihGXlUpXT1VJkY7dmFyIFY9ZyxIPXc7Zm9yKEE9MDtBPDM7KytBKVZbQV09SCYxPDxBPy0xOjE7cmV0dXJuIHZ9O3ZhciBuPXQoImJpdC10d2lkZGxlIiksaT10KCJnbC1tYXQ0L211bHRpcGx5IiksYT10KCJzcGxpdC1wb2x5Z29uIiksbz10KCJyb2J1c3Qtb3JpZW50YXRpb24iKSxzPW5ldyBBcnJheSgxNiksbD1uZXcgQXJyYXkoOCksYz1uZXcgQXJyYXkoOCksdT1uZXcgQXJyYXkoMyksZj1bMCwwLDBdO2Z1bmN0aW9uIGgodCxlLHIpe2Zvcih2YXIgbj0wO248NDsrK24pe3Rbbl09clsxMituXTtmb3IodmFyIGk9MDtpPDM7KytpKXRbbl0rPWVbaV0qcls0Kmkrbl19fSFmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8ODsrK3QpbFt0XT1bMSwxLDEsMV0sY1t0XT1bMSwxLDFdfSgpO3ZhciBwPVtbMCwwLDEsMCwwXSxbMCwwLC0xLDEsMF0sWzAsLTEsMCwxLDBdLFswLDEsMCwxLDBdLFstMSwwLDAsMSwwXSxbMSwwLDAsMSwwXV07ZnVuY3Rpb24gZCh0KXtmb3IodmFyIGU9MDtlPHAubGVuZ3RoOysrZSlpZigodD1hLnBvc2l0aXZlKHQscFtlXSkpLmxlbmd0aDwzKXJldHVybiAwO3ZhciByPXRbMF0sbj1yWzBdL3JbM10saT1yWzFdL3JbM10sbz0wO2ZvcihlPTE7ZSsxPHQubGVuZ3RoOysrZSl7dmFyIHM9dFtlXSxsPXRbZSsxXSxjPXNbMF0vc1szXS1uLHU9c1sxXS9zWzNdLWksZj1sWzBdL2xbM10tbixoPWxbMV0vbFszXS1pO28rPU1hdGguYWJzKGMqaC11KmYpfXJldHVybiBvfXZhciBtPVsxLDEsMV0sZz1bMCwwLDBdLHY9e2N1YmVFZGdlczptLGF4aXM6Z319LHsiYml0LXR3aWRkbGUiOjMyLCJnbC1tYXQ0L211bHRpcGx5IjoxMDAsInJvYnVzdC1vcmllbnRhdGlvbiI6Mjg0LCJzcGxpdC1wb2x5Z29uIjozMDB9XSw3MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBvPVtdLHM9WzAsMCwwXSxsPVswLDAsMF0sYz1bMCwwLDBdLHU9WzAsMCwwXTtvLnB1c2goMCwwLDEsMCwxLDEsMCwwLC0xLDAsMCwtMSwwLDEsMSwwLDEsLTEpO2Zvcih2YXIgZj0wO2Y8MzsrK2Ype2Zvcih2YXIgaD1vLmxlbmd0aC8zfDAsZD0wO2Q8cltmXS5sZW5ndGg7KytkKXt2YXIgbT0rcltmXVtkXS54O28ucHVzaChtLDAsMSxtLDEsMSxtLDAsLTEsbSwwLC0xLG0sMSwxLG0sMSwtMSl9dmFyIGc9by5sZW5ndGgvM3wwO3NbZl09aCxsW2ZdPWctaDtoPW8ubGVuZ3RoLzN8MDtmb3IodmFyIHY9MDt2PHJbZl0ubGVuZ3RoOysrdil7bT0rcltmXVt2XS54O28ucHVzaChtLDAsMSxtLDEsMSxtLDAsLTEsbSwwLC0xLG0sMSwxLG0sMSwtMSl9Zz1vLmxlbmd0aC8zfDA7Y1tmXT1oLHVbZl09Zy1ofXZhciB5PW4odCxuZXcgRmxvYXQzMkFycmF5KG8pKSx4PWkodCxbe2J1ZmZlcjp5LHR5cGU6dC5GTE9BVCxzaXplOjMsc3RyaWRlOjAsb2Zmc2V0OjB9XSksYj1hKHQpO3JldHVybiBiLmF0dHJpYnV0ZXMucG9zaXRpb24ubG9jYXRpb249MCxuZXcgcCh0LHkseCxiLGwscyx1LGMpfTt2YXIgbj10KCJnbC1idWZmZXIiKSxpPXQoImdsLXZhbyIpLGE9dCgiLi9zaGFkZXJzIikubGluZSxvPVswLDAsMF0scz1bMCwwLDBdLGw9WzAsMCwwXSxjPVswLDAsMF0sdT1bMSwxXTtmdW5jdGlvbiBmKHQpe3JldHVybiB0WzBdPXRbMV09dFsyXT0wLHR9ZnVuY3Rpb24gaCh0LGUpe3JldHVybiB0WzBdPWVbMF0sdFsxXT1lWzFdLHRbMl09ZVsyXSx0fWZ1bmN0aW9uIHAodCxlLHIsbixpLGEsbyxzKXt0aGlzLmdsPXQsdGhpcy52ZXJ0QnVmZmVyPWUsdGhpcy52YW89cix0aGlzLnNoYWRlcj1uLHRoaXMudGlja0NvdW50PWksdGhpcy50aWNrT2Zmc2V0PWEsdGhpcy5ncmlkQ291bnQ9byx0aGlzLmdyaWRPZmZzZXQ9c312YXIgZD1wLnByb3RvdHlwZTtkLmJpbmQ9ZnVuY3Rpb24odCxlLHIpe3RoaXMuc2hhZGVyLmJpbmQoKSx0aGlzLnNoYWRlci51bmlmb3Jtcy5tb2RlbD10LHRoaXMuc2hhZGVyLnVuaWZvcm1zLnZpZXc9ZSx0aGlzLnNoYWRlci51bmlmb3Jtcy5wcm9qZWN0aW9uPXIsdVswXT10aGlzLmdsLmRyYXdpbmdCdWZmZXJXaWR0aCx1WzFdPXRoaXMuZ2wuZHJhd2luZ0J1ZmZlckhlaWdodCx0aGlzLnNoYWRlci51bmlmb3Jtcy5zY3JlZW5TaGFwZT11LHRoaXMudmFvLmJpbmQoKX0sZC51bmJpbmQ9ZnVuY3Rpb24oKXt0aGlzLnZhby51bmJpbmQoKX0sZC5kcmF3QXhpc0xpbmU9ZnVuY3Rpb24odCxlLHIsbixpKXt2YXIgYT1mKHMpO3RoaXMuc2hhZGVyLnVuaWZvcm1zLm1ham9yQXhpcz1zLGFbdF09ZVsxXVt0XS1lWzBdW3RdLHRoaXMuc2hhZGVyLnVuaWZvcm1zLm1pbm9yQXhpcz1hO3ZhciBvLHU9aChjLHIpO3VbdF0rPWVbMF1bdF0sdGhpcy5zaGFkZXIudW5pZm9ybXMub2Zmc2V0PXUsdGhpcy5zaGFkZXIudW5pZm9ybXMubGluZVdpZHRoPWksdGhpcy5zaGFkZXIudW5pZm9ybXMuY29sb3I9biwobz1mKGwpKVsodCsyKSUzXT0xLHRoaXMuc2hhZGVyLnVuaWZvcm1zLnNjcmVlbkF4aXM9byx0aGlzLnZhby5kcmF3KHRoaXMuZ2wuVFJJQU5HTEVTLDYpLChvPWYobCkpWyh0KzEpJTNdPTEsdGhpcy5zaGFkZXIudW5pZm9ybXMuc2NyZWVuQXhpcz1vLHRoaXMudmFvLmRyYXcodGhpcy5nbC5UUklBTkdMRVMsNil9LGQuZHJhd0F4aXNUaWNrcz1mdW5jdGlvbih0LGUscixuLGkpe2lmKHRoaXMudGlja0NvdW50W3RdKXt2YXIgYT1mKG8pO2FbdF09MSx0aGlzLnNoYWRlci51bmlmb3Jtcy5tYWpvckF4aXM9YSx0aGlzLnNoYWRlci51bmlmb3Jtcy5vZmZzZXQ9ZSx0aGlzLnNoYWRlci51bmlmb3Jtcy5taW5vckF4aXM9cix0aGlzLnNoYWRlci51bmlmb3Jtcy5jb2xvcj1uLHRoaXMuc2hhZGVyLnVuaWZvcm1zLmxpbmVXaWR0aD1pO3ZhciBzPWYobCk7c1t0XT0xLHRoaXMuc2hhZGVyLnVuaWZvcm1zLnNjcmVlbkF4aXM9cyx0aGlzLnZhby5kcmF3KHRoaXMuZ2wuVFJJQU5HTEVTLHRoaXMudGlja0NvdW50W3RdLHRoaXMudGlja09mZnNldFt0XSl9fSxkLmRyYXdHcmlkPWZ1bmN0aW9uKHQsZSxyLG4saSxhKXtpZih0aGlzLmdyaWRDb3VudFt0XSl7dmFyIHU9ZihzKTt1W2VdPXJbMV1bZV0tclswXVtlXSx0aGlzLnNoYWRlci51bmlmb3Jtcy5taW5vckF4aXM9dTt2YXIgcD1oKGMsbik7cFtlXSs9clswXVtlXSx0aGlzLnNoYWRlci51bmlmb3Jtcy5vZmZzZXQ9cDt2YXIgZD1mKG8pO2RbdF09MSx0aGlzLnNoYWRlci51bmlmb3Jtcy5tYWpvckF4aXM9ZDt2YXIgbT1mKGwpO21bdF09MSx0aGlzLnNoYWRlci51bmlmb3Jtcy5zY3JlZW5BeGlzPW0sdGhpcy5zaGFkZXIudW5pZm9ybXMubGluZVdpZHRoPWEsdGhpcy5zaGFkZXIudW5pZm9ybXMuY29sb3I9aSx0aGlzLnZhby5kcmF3KHRoaXMuZ2wuVFJJQU5HTEVTLHRoaXMuZ3JpZENvdW50W3RdLHRoaXMuZ3JpZE9mZnNldFt0XSl9fSxkLmRyYXdaZXJvPWZ1bmN0aW9uKHQsZSxyLG4saSxhKXt2YXIgbz1mKHMpO3RoaXMuc2hhZGVyLnVuaWZvcm1zLm1ham9yQXhpcz1vLG9bdF09clsxXVt0XS1yWzBdW3RdLHRoaXMuc2hhZGVyLnVuaWZvcm1zLm1pbm9yQXhpcz1vO3ZhciB1PWgoYyxuKTt1W3RdKz1yWzBdW3RdLHRoaXMuc2hhZGVyLnVuaWZvcm1zLm9mZnNldD11O3ZhciBwPWYobCk7cFtlXT0xLHRoaXMuc2hhZGVyLnVuaWZvcm1zLnNjcmVlbkF4aXM9cCx0aGlzLnNoYWRlci51bmlmb3Jtcy5saW5lV2lkdGg9YSx0aGlzLnNoYWRlci51bmlmb3Jtcy5jb2xvcj1pLHRoaXMudmFvLmRyYXcodGhpcy5nbC5UUklBTkdMRVMsNil9LGQuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMudmFvLmRpc3Bvc2UoKSx0aGlzLnZlcnRCdWZmZXIuZGlzcG9zZSgpLHRoaXMuc2hhZGVyLmRpc3Bvc2UoKX19LHsiLi9zaGFkZXJzIjo3NCwiZ2wtYnVmZmVyIjo3OCwiZ2wtdmFvIjoxNTB9XSw3NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJnbHNsaWZ5IiksaT10KCJnbC1zaGFkZXIiKSxhPW4oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5hdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbjtcblxudW5pZm9ybSBtYXQ0IG1vZGVsLCB2aWV3LCBwcm9qZWN0aW9uO1xudW5pZm9ybSB2ZWMzIG9mZnNldCwgbWFqb3JBeGlzLCBtaW5vckF4aXMsIHNjcmVlbkF4aXM7XG51bmlmb3JtIGZsb2F0IGxpbmVXaWR0aDtcbnVuaWZvcm0gdmVjMiBzY3JlZW5TaGFwZTtcblxudmVjMyBwcm9qZWN0KHZlYzMgcCkge1xuICB2ZWM0IHBwID0gcHJvamVjdGlvbiAqIHZpZXcgKiBtb2RlbCAqIHZlYzQocCwgMS4wKTtcbiAgcmV0dXJuIHBwLnh5eiAvIG1heChwcC53LCAwLjAwMDEpO1xufVxuXG52b2lkIG1haW4oKSB7XG4gIHZlYzMgbWFqb3IgPSBwb3NpdGlvbi54ICogbWFqb3JBeGlzO1xuICB2ZWMzIG1pbm9yID0gcG9zaXRpb24ueSAqIG1pbm9yQXhpcztcblxuICB2ZWMzIHZQb3NpdGlvbiA9IG1ham9yICsgbWlub3IgKyBvZmZzZXQ7XG4gIHZlYzMgcFBvc2l0aW9uID0gcHJvamVjdCh2UG9zaXRpb24pO1xuICB2ZWMzIG9mZnNldCA9IHByb2plY3QodlBvc2l0aW9uICsgc2NyZWVuQXhpcyAqIHBvc2l0aW9uLnopO1xuXG4gIHZlYzIgc2NyZWVuID0gbm9ybWFsaXplKChvZmZzZXQgLSBwUG9zaXRpb24pLnh5ICogc2NyZWVuU2hhcGUpIC8gc2NyZWVuU2hhcGU7XG5cbiAgZ2xfUG9zaXRpb24gPSB2ZWM0KHBQb3NpdGlvbiArIHZlYzMoMC41ICogc2NyZWVuICogbGluZVdpZHRoLCAwKSwgMS4wKTtcbn1cbiJdKSxvPW4oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG51bmlmb3JtIHZlYzQgY29sb3I7XG52b2lkIG1haW4oKSB7XG4gIGdsX0ZyYWdDb2xvciA9IGNvbG9yO1xufSJdKTtyLmxpbmU9ZnVuY3Rpb24odCl7cmV0dXJuIGkodCxhLG8sbnVsbCxbe25hbWU6InBvc2l0aW9uIix0eXBlOiJ2ZWMzIn1dKX07dmFyIHM9bihbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmF0dHJpYnV0ZSB2ZWMzIHBvc2l0aW9uO1xuXG51bmlmb3JtIG1hdDQgbW9kZWwsIHZpZXcsIHByb2plY3Rpb247XG51bmlmb3JtIHZlYzMgb2Zmc2V0LCBheGlzLCBhbGlnbkRpciwgYWxpZ25PcHQ7XG51bmlmb3JtIGZsb2F0IHNjYWxlLCBhbmdsZSwgcGl4ZWxTY2FsZTtcbnVuaWZvcm0gdmVjMiByZXNvbHV0aW9uO1xuXG52ZWMzIHByb2plY3QodmVjMyBwKSB7XG4gIHZlYzQgcHAgPSBwcm9qZWN0aW9uICogdmlldyAqIG1vZGVsICogdmVjNChwLCAxLjApO1xuICByZXR1cm4gcHAueHl6IC8gbWF4KHBwLncsIDAuMDAwMSk7XG59XG5cbmZsb2F0IGNvbXB1dGVWaWV3QW5nbGUodmVjMyBhLCB2ZWMzIGIpIHtcbiAgdmVjMyBBID0gcHJvamVjdChhKTtcbiAgdmVjMyBCID0gcHJvamVjdChiKTtcblxuICByZXR1cm4gYXRhbihcbiAgICAoQi55IC0gQS55KSAqIHJlc29sdXRpb24ueSxcbiAgICAoQi54IC0gQS54KSAqIHJlc29sdXRpb24ueFxuICApO1xufVxuXG5jb25zdCBmbG9hdCBQSSA9IDMuMTQxNTkyO1xuY29uc3QgZmxvYXQgVFdPX1BJID0gMi4wICogUEk7XG5jb25zdCBmbG9hdCBIQUxGX1BJID0gMC41ICogUEk7XG5jb25zdCBmbG9hdCBPTkVfQU5EX0hBTEZfUEkgPSAxLjUgKiBQSTtcblxuaW50IG9wdGlvbiA9IGludChmbG9vcihhbGlnbk9wdC54ICsgMC4wMDEpKTtcbmZsb2F0IGh2X3JhdGlvID0gICAgICAgYWxpZ25PcHQueTtcbmJvb2wgZW5hYmxlQWxpZ24gPSAgICAoYWxpZ25PcHQueiAhPSAwLjApO1xuXG5mbG9hdCBtb2RfYW5nbGUoZmxvYXQgYSkge1xuICByZXR1cm4gbW9kKGEsIFBJKTtcbn1cblxuZmxvYXQgcG9zaXRpdmVfYW5nbGUoZmxvYXQgYSkge1xuICByZXR1cm4gbW9kX2FuZ2xlKChhIDwgMC4wKSA/XG4gICAgYSArIFRXT19QSSA6XG4gICAgYVxuICApO1xufVxuXG5mbG9hdCBsb29rX3Vwd2FyZHMoZmxvYXQgYSkge1xuICBmbG9hdCBiID0gcG9zaXRpdmVfYW5nbGUoYSk7XG4gIHJldHVybiAoKGIgPiBIQUxGX1BJKSAmJiAoYiA8PSBPTkVfQU5EX0hBTEZfUEkpKSA/XG4gICAgYiAtIFBJIDpcbiAgICBiO1xufVxuXG5mbG9hdCBsb29rX2hvcml6b250YWxfb3JfdmVydGljYWwoZmxvYXQgYSwgZmxvYXQgcmF0aW8pIHtcbiAgLy8gcmF0aW8gY29udHJvbHMgdGhlIHJhdGlvIGJldHdlZW4gYmVpbmcgaG9yaXpvbnRhbCB0byAodmVydGljYWwgKyBob3Jpem9udGFsKVxuICAvLyBpZiByYXRpbyBpcyBzZXQgdG8gMC41IHRoZW4gaXQgaXMgNTAlLCA1MCUuXG4gIC8vIHdoZW4gdXNpbmcgYSBoaWdoZXIgcmF0aW8gZS5nLiAwLjc1IHRoZSByZXN1bHQgd291bGRcbiAgLy8gbGlrZWx5IGJlIG1vcmUgaG9yaXpvbnRhbCB0aGFuIHZlcnRpY2FsLlxuXG4gIGZsb2F0IGIgPSBwb3NpdGl2ZV9hbmdsZShhKTtcblxuICByZXR1cm5cbiAgICAoYiA8ICggICAgICByYXRpbykgKiBIQUxGX1BJKSA/IDAuMCA6XG4gICAgKGIgPCAoMi4wIC0gcmF0aW8pICogSEFMRl9QSSkgPyAtSEFMRl9QSSA6XG4gICAgKGIgPCAoMi4wICsgcmF0aW8pICogSEFMRl9QSSkgPyAwLjAgOlxuICAgIChiIDwgKDQuMCAtIHJhdGlvKSAqIEhBTEZfUEkpID8gSEFMRl9QSSA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjA7XG59XG5cbmZsb2F0IHJvdW5kVG8oZmxvYXQgYSwgZmxvYXQgYikge1xuICByZXR1cm4gZmxvYXQoYiAqIGZsb29yKChhICsgMC41ICogYikgLyBiKSk7XG59XG5cbmZsb2F0IGxvb2tfcm91bmRfbl9kaXJlY3Rpb25zKGZsb2F0IGEsIGludCBuKSB7XG4gIGZsb2F0IGIgPSBwb3NpdGl2ZV9hbmdsZShhKTtcbiAgZmxvYXQgZGl2ID0gVFdPX1BJIC8gZmxvYXQobik7XG4gIGZsb2F0IGMgPSByb3VuZFRvKGIsIGRpdik7XG4gIHJldHVybiBsb29rX3Vwd2FyZHMoYyk7XG59XG5cbmZsb2F0IGFwcGx5QWxpZ25PcHRpb24oZmxvYXQgcmF3QW5nbGUsIGZsb2F0IGRlbHRhKSB7XG4gIHJldHVyblxuICAgIChvcHRpb24gPiAgMikgPyBsb29rX3JvdW5kX25fZGlyZWN0aW9ucyhyYXdBbmdsZSArIGRlbHRhLCBvcHRpb24pIDogICAgICAgLy8gb3B0aW9uIDMtbjogcm91bmQgdG8gbiBkaXJlY3Rpb25zXG4gICAgKG9wdGlvbiA9PSAyKSA/IGxvb2tfaG9yaXpvbnRhbF9vcl92ZXJ0aWNhbChyYXdBbmdsZSArIGRlbHRhLCBodl9yYXRpbykgOiAvLyBob3Jpem9udGFsIG9yIHZlcnRpY2FsXG4gICAgKG9wdGlvbiA9PSAxKSA/IHJhd0FuZ2xlICsgZGVsdGEgOiAgICAgICAvLyB1c2UgZnJlZSBhbmdsZSwgYW5kIGZsaXAgdG8gYWxpZ24gd2l0aCBvbmUgZGlyZWN0aW9uIG9mIHRoZSBheGlzXG4gICAgKG9wdGlvbiA9PSAwKSA/IGxvb2tfdXB3YXJkcyhyYXdBbmdsZSkgOiAvLyB1c2UgZnJlZSBhbmdsZSwgYW5kIHN0YXkgdXB3YXJkc1xuICAgIChvcHRpb24gPT0tMSkgPyAwLjAgOiAgICAgICAgICAgICAgICAgICAgLy8gdXNlZnVsIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCBhbGwgdGV4dHMgcmVtYWlucyBob3Jpem9udGFsXG4gICAgICAgICAgICAgICAgICAgIHJhd0FuZ2xlOyAgICAgICAgICAgICAgICAvLyBvdGhlcndpc2UgcmV0dXJuIGJhY2sgcmF3IGlucHV0IGFuZ2xlXG59XG5cbmJvb2wgaXNBeGlzVGl0bGUgPSAoYXhpcy54ID09IDAuMCkgJiZcbiAgICAgICAgICAgICAgICAgICAoYXhpcy55ID09IDAuMCkgJiZcbiAgICAgICAgICAgICAgICAgICAoYXhpcy56ID09IDAuMCk7XG5cbnZvaWQgbWFpbigpIHtcbiAgLy9Db21wdXRlIHdvcmxkIG9mZnNldFxuICBmbG9hdCBheGlzRGlzdGFuY2UgPSBwb3NpdGlvbi56O1xuICB2ZWMzIGRhdGFQb3NpdGlvbiA9IGF4aXNEaXN0YW5jZSAqIGF4aXMgKyBvZmZzZXQ7XG5cbiAgZmxvYXQgYmV0YSA9IGFuZ2xlOyAvLyBpLmUuIHVzZXIgZGVmaW5lZCBhdHRyaWJ1dGVzIGZvciBlYWNoIHRpY2tcblxuICBmbG9hdCBheGlzQW5nbGU7XG4gIGZsb2F0IGNsaXBBbmdsZTtcbiAgZmxvYXQgZmxpcDtcblxuICBpZiAoZW5hYmxlQWxpZ24pIHtcbiAgICBheGlzQW5nbGUgPSAoaXNBeGlzVGl0bGUpID8gSEFMRl9QSSA6XG4gICAgICAgICAgICAgICAgICAgICAgY29tcHV0ZVZpZXdBbmdsZShkYXRhUG9zaXRpb24sIGRhdGFQb3NpdGlvbiArIGF4aXMpO1xuICAgIGNsaXBBbmdsZSA9IGNvbXB1dGVWaWV3QW5nbGUoZGF0YVBvc2l0aW9uLCBkYXRhUG9zaXRpb24gKyBhbGlnbkRpcik7XG5cbiAgICBheGlzQW5nbGUgKz0gKHNpbihheGlzQW5nbGUpIDwgMC4wKSA/IFBJIDogMC4wO1xuICAgIGNsaXBBbmdsZSArPSAoc2luKGNsaXBBbmdsZSkgPCAwLjApID8gUEkgOiAwLjA7XG5cbiAgICBmbGlwID0gKGRvdCh2ZWMyKGNvcyhheGlzQW5nbGUpLCBzaW4oYXhpc0FuZ2xlKSksXG4gICAgICAgICAgICAgICAgdmVjMihzaW4oY2xpcEFuZ2xlKSwtY29zKGNsaXBBbmdsZSkpKSA+IDAuMCkgPyAxLjAgOiAwLjA7XG5cbiAgICBiZXRhICs9IGFwcGx5QWxpZ25PcHRpb24oY2xpcEFuZ2xlLCBmbGlwICogUEkpO1xuICB9XG5cbiAgLy9Db21wdXRlIHBsYW5lIG9mZnNldFxuICB2ZWMyIHBsYW5lQ29vcmQgPSBwb3NpdGlvbi54eSAqIHBpeGVsU2NhbGU7XG5cbiAgbWF0MiBwbGFuZVhmb3JtID0gc2NhbGUgKiBtYXQyKFxuICAgICBjb3MoYmV0YSksIHNpbihiZXRhKSxcbiAgICAtc2luKGJldGEpLCBjb3MoYmV0YSlcbiAgKTtcblxuICB2ZWMyIHZpZXdPZmZzZXQgPSAyLjAgKiBwbGFuZVhmb3JtICogcGxhbmVDb29yZCAvIHJlc29sdXRpb247XG5cbiAgLy9Db21wdXRlIGNsaXAgcG9zaXRpb25cbiAgdmVjMyBjbGlwUG9zaXRpb24gPSBwcm9qZWN0KGRhdGFQb3NpdGlvbik7XG5cbiAgLy9BcHBseSB0ZXh0IG9mZnNldCBpbiBjbGlwIGNvb3JkaW5hdGVzXG4gIGNsaXBQb3NpdGlvbiArPSB2ZWMzKHZpZXdPZmZzZXQsIDAuMCk7XG5cbiAgLy9Eb25lXG4gIGdsX1Bvc2l0aW9uID0gdmVjNChjbGlwUG9zaXRpb24sIDEuMCk7XG59Il0pLGw9bihbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbnVuaWZvcm0gdmVjNCBjb2xvcjtcbnZvaWQgbWFpbigpIHtcbiAgZ2xfRnJhZ0NvbG9yID0gY29sb3I7XG59Il0pO3IudGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gaSh0LHMsbCxudWxsLFt7bmFtZToicG9zaXRpb24iLHR5cGU6InZlYzMifV0pfTt2YXIgYz1uKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYXR0cmlidXRlIHZlYzMgcG9zaXRpb247XG5hdHRyaWJ1dGUgdmVjMyBub3JtYWw7XG5cbnVuaWZvcm0gbWF0NCBtb2RlbCwgdmlldywgcHJvamVjdGlvbjtcbnVuaWZvcm0gdmVjMyBlbmFibGU7XG51bmlmb3JtIHZlYzMgYm91bmRzWzJdO1xuXG52YXJ5aW5nIHZlYzMgY29sb3JDaGFubmVsO1xuXG52b2lkIG1haW4oKSB7XG5cbiAgdmVjMyBzaWduQXhpcyA9IHNpZ24oYm91bmRzWzFdIC0gYm91bmRzWzBdKTtcblxuICB2ZWMzIHJlYWxOb3JtYWwgPSBzaWduQXhpcyAqIG5vcm1hbDtcblxuICBpZihkb3QocmVhbE5vcm1hbCwgZW5hYmxlKSA+IDAuMCkge1xuICAgIHZlYzMgbWluUmFuZ2UgPSBtaW4oYm91bmRzWzBdLCBib3VuZHNbMV0pO1xuICAgIHZlYzMgbWF4UmFuZ2UgPSBtYXgoYm91bmRzWzBdLCBib3VuZHNbMV0pO1xuICAgIHZlYzMgblBvc2l0aW9uID0gbWl4KG1pblJhbmdlLCBtYXhSYW5nZSwgMC41ICogKHBvc2l0aW9uICsgMS4wKSk7XG4gICAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uICogdmlldyAqIG1vZGVsICogdmVjNChuUG9zaXRpb24sIDEuMCk7XG4gIH0gZWxzZSB7XG4gICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDAsMCwwLDApO1xuICB9XG5cbiAgY29sb3JDaGFubmVsID0gYWJzKHJlYWxOb3JtYWwpO1xufSJdKSx1PW4oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG51bmlmb3JtIHZlYzQgY29sb3JzWzNdO1xuXG52YXJ5aW5nIHZlYzMgY29sb3JDaGFubmVsO1xuXG52b2lkIG1haW4oKSB7XG4gIGdsX0ZyYWdDb2xvciA9IGNvbG9yQ2hhbm5lbC54ICogY29sb3JzWzBdICtcbiAgICAgICAgICAgICAgICAgY29sb3JDaGFubmVsLnkgKiBjb2xvcnNbMV0gK1xuICAgICAgICAgICAgICAgICBjb2xvckNoYW5uZWwueiAqIGNvbG9yc1syXTtcbn0iXSk7ci5iZz1mdW5jdGlvbih0KXtyZXR1cm4gaSh0LGMsdSxudWxsLFt7bmFtZToicG9zaXRpb24iLHR5cGU6InZlYzMifSx7bmFtZToibm9ybWFsIix0eXBlOiJ2ZWMzIn1dKX19LHsiZ2wtc2hhZGVyIjoxMzIsZ2xzbGlmeToyMzF9XSw3NTpbZnVuY3Rpb24odCxlLHIpeyhmdW5jdGlvbihyKXsoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGEscyxsKXt2YXIgdT1uKHQpLGY9aSh0LFt7YnVmZmVyOnUsc2l6ZTozfV0pLGg9byh0KTtoLmF0dHJpYnV0ZXMucG9zaXRpb24ubG9jYXRpb249MDt2YXIgcD1uZXcgYyh0LGgsdSxmKTtyZXR1cm4gcC51cGRhdGUoZSxyLGEscyxsKSxwfTt2YXIgbj10KCJnbC1idWZmZXIiKSxpPXQoImdsLXZhbyIpLGE9dCgidmVjdG9yaXplLXRleHQiKSxvPXQoIi4vc2hhZGVycyIpLnRleHQscz13aW5kb3d8fHIuZ2xvYmFsfHx7fSxsPXMuX19URVhUX0NBQ0hFfHx7fTtzLl9fVEVYVF9DQUNIRT17fTtmdW5jdGlvbiBjKHQsZSxyLG4pe3RoaXMuZ2w9dCx0aGlzLnNoYWRlcj1lLHRoaXMuYnVmZmVyPXIsdGhpcy52YW89bix0aGlzLnRpY2tPZmZzZXQ9dGhpcy50aWNrQ291bnQ9dGhpcy5sYWJlbE9mZnNldD10aGlzLmxhYmVsQ291bnQ9bnVsbH12YXIgdT1jLnByb3RvdHlwZSxmPVswLDBdO3UuYmluZD1mdW5jdGlvbih0LGUscixuKXt0aGlzLnZhby5iaW5kKCksdGhpcy5zaGFkZXIuYmluZCgpO3ZhciBpPXRoaXMuc2hhZGVyLnVuaWZvcm1zO2kubW9kZWw9dCxpLnZpZXc9ZSxpLnByb2plY3Rpb249cixpLnBpeGVsU2NhbGU9bixmWzBdPXRoaXMuZ2wuZHJhd2luZ0J1ZmZlcldpZHRoLGZbMV09dGhpcy5nbC5kcmF3aW5nQnVmZmVySGVpZ2h0LHRoaXMuc2hhZGVyLnVuaWZvcm1zLnJlc29sdXRpb249Zn0sdS51bmJpbmQ9ZnVuY3Rpb24oKXt0aGlzLnZhby51bmJpbmQoKX0sdS51cGRhdGU9ZnVuY3Rpb24odCxlLHIsbixpKXt2YXIgbz1bXTtmdW5jdGlvbiBzKHQsZSxyLG4saSxzKXt2YXIgYz1sW3JdO2N8fChjPWxbcl09e30pO3ZhciB1PWNbZV07dXx8KHU9Y1tlXT1mdW5jdGlvbih0LGUpe3RyeXtyZXR1cm4gYSh0LGUpfWNhdGNoKGUpe3JldHVybiBjb25zb2xlLndhcm4oJ2Vycm9yIHZlY3Rvcml6aW5nIHRleHQ6IicrdCsnIiBlcnJvcjonLGUpLHtjZWxsczpbXSxwb3NpdGlvbnM6W119fX0oZSx7dHJpYW5nbGVzOiEwLGZvbnQ6cix0ZXh0QWxpZ246ImNlbnRlciIsdGV4dEJhc2VsaW5lOiJtaWRkbGUiLGxpbmVTcGFjaW5nOmksc3R5bGV0YWdzOnN9KSk7Zm9yKHZhciBmPShufHwxMikvMTIsaD11LnBvc2l0aW9ucyxwPXUuY2VsbHMsZD0wLG09cC5sZW5ndGg7ZDxtOysrZClmb3IodmFyIGc9cFtkXSx2PTI7dj49MDstLXYpe3ZhciB5PWhbZ1t2XV07by5wdXNoKGYqeVswXSwtZip5WzFdLHQpfX1mb3IodmFyIGM9WzAsMCwwXSx1PVswLDAsMF0sZj1bMCwwLDBdLGg9WzAsMCwwXSxwPXticmVha2xpbmVzOiEwLGJvbGRzOiEwLGl0YWxpY3M6ITAsc3Vic2NyaXB0czohMCxzdXBlcnNjcmlwdHM6ITB9LGQ9MDtkPDM7KytkKXtmW2RdPW8ubGVuZ3RoLzN8MCxzKC41Kih0WzBdW2RdK3RbMV1bZF0pLGVbZF0scltkXSwxMiwxLjI1LHApLGhbZF09KG8ubGVuZ3RoLzN8MCktZltkXSxjW2RdPW8ubGVuZ3RoLzN8MDtmb3IodmFyIG09MDttPG5bZF0ubGVuZ3RoOysrbSluW2RdW21dLnRleHQmJnMobltkXVttXS54LG5bZF1bbV0udGV4dCxuW2RdW21dLmZvbnR8fGksbltkXVttXS5mb250U2l6ZXx8MTIsMS4yNSxwKTt1W2RdPShvLmxlbmd0aC8zfDApLWNbZF19dGhpcy5idWZmZXIudXBkYXRlKG8pLHRoaXMudGlja09mZnNldD1jLHRoaXMudGlja0NvdW50PXUsdGhpcy5sYWJlbE9mZnNldD1mLHRoaXMubGFiZWxDb3VudD1ofSx1LmRyYXdUaWNrcz1mdW5jdGlvbih0LGUscixuLGksYSxvLHMpe3RoaXMudGlja0NvdW50W3RdJiYodGhpcy5zaGFkZXIudW5pZm9ybXMuYXhpcz1hLHRoaXMuc2hhZGVyLnVuaWZvcm1zLmNvbG9yPWksdGhpcy5zaGFkZXIudW5pZm9ybXMuYW5nbGU9cix0aGlzLnNoYWRlci51bmlmb3Jtcy5zY2FsZT1lLHRoaXMuc2hhZGVyLnVuaWZvcm1zLm9mZnNldD1uLHRoaXMuc2hhZGVyLnVuaWZvcm1zLmFsaWduRGlyPW8sdGhpcy5zaGFkZXIudW5pZm9ybXMuYWxpZ25PcHQ9cyx0aGlzLnZhby5kcmF3KHRoaXMuZ2wuVFJJQU5HTEVTLHRoaXMudGlja0NvdW50W3RdLHRoaXMudGlja09mZnNldFt0XSkpfSx1LmRyYXdMYWJlbD1mdW5jdGlvbih0LGUscixuLGksYSxvLHMpe3RoaXMubGFiZWxDb3VudFt0XSYmKHRoaXMuc2hhZGVyLnVuaWZvcm1zLmF4aXM9YSx0aGlzLnNoYWRlci51bmlmb3Jtcy5jb2xvcj1pLHRoaXMuc2hhZGVyLnVuaWZvcm1zLmFuZ2xlPXIsdGhpcy5zaGFkZXIudW5pZm9ybXMuc2NhbGU9ZSx0aGlzLnNoYWRlci51bmlmb3Jtcy5vZmZzZXQ9bix0aGlzLnNoYWRlci51bmlmb3Jtcy5hbGlnbkRpcj1vLHRoaXMuc2hhZGVyLnVuaWZvcm1zLmFsaWduT3B0PXMsdGhpcy52YW8uZHJhdyh0aGlzLmdsLlRSSUFOR0xFUyx0aGlzLmxhYmVsQ291bnRbdF0sdGhpcy5sYWJlbE9mZnNldFt0XSkpfSx1LmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLnNoYWRlci5kaXNwb3NlKCksdGhpcy52YW8uZGlzcG9zZSgpLHRoaXMuYnVmZmVyLmRpc3Bvc2UoKX19KS5jYWxsKHRoaXMpfSkuY2FsbCh0aGlzLHQoIl9wcm9jZXNzIikpfSx7Ii4vc2hhZGVycyI6NzQsX3Byb2Nlc3M6NSwiZ2wtYnVmZmVyIjo3OCwiZ2wtdmFvIjoxNTAsInZlY3Rvcml6ZS10ZXh0IjozMTF9XSw3NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7dmFyIHI9dCsiIixuPXIuaW5kZXhPZigiLiIpLGk9MDtuPj0wJiYoaT1yLmxlbmd0aC1uLTEpO3ZhciBhPU1hdGgucG93KDEwLGkpLG89TWF0aC5yb3VuZCh0KmUqYSkscz1vKyIiO2lmKHMuaW5kZXhPZigiZSIpPj0wKXJldHVybiBzO3ZhciBsPW8vYSxjPW8lYTtvPDA/KGw9MHwtTWF0aC5jZWlsKGwpLGM9MHwtYyk6KGw9MHxNYXRoLmZsb29yKGwpLGN8PTApO3ZhciB1PSIiK2w7aWYobzwwJiYodT0iLSIrdSksaSl7Zm9yKHZhciBmPSIiK2M7Zi5sZW5ndGg8aTspZj0iMCIrZjtyZXR1cm4gdSsiLiIrZn1yZXR1cm4gdX1yLmNyZWF0ZT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1bXSxpPTA7aTwzOysraSl7Zm9yKHZhciBhPVtdLG89KHRbMF1baV0sdFsxXVtpXSwwKTtvKmVbaV08PXRbMV1baV07KytvKWEucHVzaCh7eDpvKmVbaV0sdGV4dDpuKGVbaV0sbyl9KTtmb3Iobz0tMTtvKmVbaV0+PXRbMF1baV07LS1vKWEucHVzaCh7eDpvKmVbaV0sdGV4dDpuKGVbaV0sbyl9KTtyLnB1c2goYSl9cmV0dXJuIHJ9LHIuZXF1YWw9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9MDtyPDM7KytyKXtpZih0W3JdLmxlbmd0aCE9PWVbcl0ubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgbj0wO248dFtyXS5sZW5ndGg7KytuKXt2YXIgaT10W3JdW25dLGE9ZVtyXVtuXTtpZihpLnghPT1hLnh8fGkudGV4dCE9PWEudGV4dHx8aS5mb250IT09YS5mb250fHxpLmZvbnRDb2xvciE9PWEuZm9udENvbG9yfHxpLmZvbnRTaXplIT09YS5mb250U2l6ZXx8aS5keCE9PWEuZHh8fGkuZHkhPT1hLmR5KXJldHVybiExfX1yZXR1cm4hMH19LHt9XSw3NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbCxmKXt2YXIgaD1lLm1vZGVsfHxjLHA9ZS52aWV3fHxjLHY9ZS5wcm9qZWN0aW9ufHxjLHk9ZS5fb3J0aG98fCExLHg9dC5ib3VuZHMsYj0oZj1mfHxhKGgscCx2LHgseSkpLmF4aXM7byh1LHAsaCksbyh1LHYsdSk7Zm9yKHZhciBfPW0sdz0wO3c8MzsrK3cpX1t3XS5sbz0xLzAsX1t3XS5oaT0tMS8wLF9bd10ucGl4ZWxzUGVyRGF0YVVuaXQ9MS8wO3ZhciBUPW4ocyh1LHUpKTtzKHUsdSk7Zm9yKHZhciBrPTA7azwzOysrayl7dmFyIEE9KGsrMSklMyxNPShrKzIpJTMsUz1nO3Q6Zm9yKHc9MDt3PDI7Kyt3KXt2YXIgRT1bXTtpZihiW2tdPDAhPSEhdyl7U1trXT14W3ddW2tdO2Zvcih2YXIgTD0wO0w8MjsrK0wpe1NbQV09eFtMXnddW0FdO2Zvcih2YXIgQz0wO0M8MjsrK0MpU1tNXT14W0NeTF53XVtNXSxFLnB1c2goUy5zbGljZSgpKX12YXIgUD15PzU6NDtmb3IoTD1QO0w9PT1QOysrTCl7aWYoMD09PUUubGVuZ3RoKWNvbnRpbnVlIHQ7RT1pLnBvc2l0aXZlKEUsVFtMXSl9Zm9yKEw9MDtMPEUubGVuZ3RoOysrTCl7TT1FW0xdO3ZhciBJPWQoZyx1LE0scixsKTtmb3IoQz0wO0M8MzsrK0MpX1tDXS5sbz1NYXRoLm1pbihfW0NdLmxvLE1bQ10pLF9bQ10uaGk9TWF0aC5tYXgoX1tDXS5oaSxNW0NdKSxDIT09ayYmKF9bQ10ucGl4ZWxzUGVyRGF0YVVuaXQ9TWF0aC5taW4oX1tDXS5waXhlbHNQZXJEYXRhVW5pdCxNYXRoLmFicyhJW0NdKSkpfX19fXJldHVybiBffTt2YXIgbj10KCJleHRyYWN0LWZydXN0dW0tcGxhbmVzIiksaT10KCJzcGxpdC1wb2x5Z29uIiksYT10KCIuL2xpYi9jdWJlLmpzIiksbz10KCJnbC1tYXQ0L211bHRpcGx5Iikscz10KCJnbC1tYXQ0L3RyYW5zcG9zZSIpLGw9dCgiZ2wtdmVjNC90cmFuc2Zvcm1NYXQ0IiksYz1uZXcgRmxvYXQzMkFycmF5KFsxLDAsMCwwLDAsMSwwLDAsMCwwLDEsMCwwLDAsMCwxXSksdT1uZXcgRmxvYXQzMkFycmF5KDE2KTtmdW5jdGlvbiBmKHQsZSxyKXt0aGlzLmxvPXQsdGhpcy5oaT1lLHRoaXMucGl4ZWxzUGVyRGF0YVVuaXQ9cn12YXIgaD1bMCwwLDAsMV0scD1bMCwwLDAsMV07ZnVuY3Rpb24gZCh0LGUscixuLGkpe2Zvcih2YXIgYT0wO2E8MzsrK2Epe2Zvcih2YXIgbz1oLHM9cCxjPTA7YzwzOysrYylzW2NdPW9bY109cltjXTtzWzNdPW9bM109MSxzW2FdKz0xLGwocyxzLGUpLHNbM108MCYmKHRbYV09MS8wKSxvW2FdLT0xLGwobyxvLGUpLG9bM108MCYmKHRbYV09MS8wKTt2YXIgdT0ob1swXS9vWzNdLXNbMF0vc1szXSkqbixmPShvWzFdL29bM10tc1sxXS9zWzNdKSppO3RbYV09LjI1Kk1hdGguc3FydCh1KnUrZipmKX1yZXR1cm4gdH12YXIgbT1bbmV3IGYoMS8wLC0xLzAsMS8wKSxuZXcgZigxLzAsLTEvMCwxLzApLG5ldyBmKDEvMCwtMS8wLDEvMCldLGc9WzAsMCwwXX0seyIuL2xpYi9jdWJlLmpzIjo3MiwiZXh0cmFjdC1mcnVzdHVtLXBsYW5lcyI6NjcsImdsLW1hdDQvbXVsdGlwbHkiOjEwMCwiZ2wtbWF0NC90cmFuc3Bvc2UiOjEwOSwiZ2wtdmVjNC90cmFuc2Zvcm1NYXQ0IjoyMjEsInNwbGl0LXBvbHlnb24iOjMwMH1dLDc4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInR5cGVkYXJyYXktcG9vbCIpLGk9dCgibmRhcnJheS1vcHMiKSxhPXQoIm5kYXJyYXkiKSxvPVsidWludDgiLCJ1aW50OF9jbGFtcGVkIiwidWludDE2IiwidWludDMyIiwiaW50OCIsImludDE2IiwiaW50MzIiLCJmbG9hdDMyIl07ZnVuY3Rpb24gcyh0LGUscixuLGkpe3RoaXMuZ2w9dCx0aGlzLnR5cGU9ZSx0aGlzLmhhbmRsZT1yLHRoaXMubGVuZ3RoPW4sdGhpcy51c2FnZT1pfXZhciBsPXMucHJvdG90eXBlO2Z1bmN0aW9uIGModCxlLHIsbixpLGEpe3ZhciBvPWkubGVuZ3RoKmkuQllURVNfUEVSX0VMRU1FTlQ7aWYoYTwwKXJldHVybiB0LmJ1ZmZlckRhdGEoZSxpLG4pLG87aWYobythPnIpdGhyb3cgbmV3IEVycm9yKCJnbC1idWZmZXI6IElmIHJlc2l6aW5nIGJ1ZmZlciwgbXVzdCBub3Qgc3BlY2lmeSBvZmZzZXQiKTtyZXR1cm4gdC5idWZmZXJTdWJEYXRhKGUsYSxpKSxyfWZ1bmN0aW9uIHUodCxlKXtmb3IodmFyIHI9bi5tYWxsb2ModC5sZW5ndGgsZSksaT10Lmxlbmd0aCxhPTA7YTxpOysrYSlyW2FdPXRbYV07cmV0dXJuIHJ9bC5iaW5kPWZ1bmN0aW9uKCl7dGhpcy5nbC5iaW5kQnVmZmVyKHRoaXMudHlwZSx0aGlzLmhhbmRsZSl9LGwudW5iaW5kPWZ1bmN0aW9uKCl7dGhpcy5nbC5iaW5kQnVmZmVyKHRoaXMudHlwZSxudWxsKX0sbC5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5nbC5kZWxldGVCdWZmZXIodGhpcy5oYW5kbGUpfSxsLnVwZGF0ZT1mdW5jdGlvbih0LGUpe2lmKCJudW1iZXIiIT10eXBlb2YgZSYmKGU9LTEpLHRoaXMuYmluZCgpLCJvYmplY3QiPT10eXBlb2YgdCYmdm9pZCAwIT09dC5zaGFwZSl7dmFyIHI9dC5kdHlwZTtpZihvLmluZGV4T2Yocik8MCYmKHI9ImZsb2F0MzIiKSx0aGlzLnR5cGU9PT10aGlzLmdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSKXI9Z2wuZ2V0RXh0ZW5zaW9uKCJPRVNfZWxlbWVudF9pbmRleF91aW50IikmJiJ1aW50MTYiIT09cj8idWludDMyIjoidWludDE2IjtpZihyPT09dC5kdHlwZSYmZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9MSxuPWUubGVuZ3RoLTE7bj49MDstLW4pe2lmKGVbbl0hPT1yKXJldHVybiExO3IqPXRbbl19cmV0dXJuITB9KHQuc2hhcGUsdC5zdHJpZGUpKTA9PT10Lm9mZnNldCYmdC5kYXRhLmxlbmd0aD09PXQuc2hhcGVbMF0/dGhpcy5sZW5ndGg9Yyh0aGlzLmdsLHRoaXMudHlwZSx0aGlzLmxlbmd0aCx0aGlzLnVzYWdlLHQuZGF0YSxlKTp0aGlzLmxlbmd0aD1jKHRoaXMuZ2wsdGhpcy50eXBlLHRoaXMubGVuZ3RoLHRoaXMudXNhZ2UsdC5kYXRhLnN1YmFycmF5KHQub2Zmc2V0LHQuc2hhcGVbMF0pLGUpO2Vsc2V7dmFyIHM9bi5tYWxsb2ModC5zaXplLHIpLGw9YShzLHQuc2hhcGUpO2kuYXNzaWduKGwsdCksdGhpcy5sZW5ndGg9Yyh0aGlzLmdsLHRoaXMudHlwZSx0aGlzLmxlbmd0aCx0aGlzLnVzYWdlLGU8MD9zOnMuc3ViYXJyYXkoMCx0LnNpemUpLGUpLG4uZnJlZShzKX19ZWxzZSBpZihBcnJheS5pc0FycmF5KHQpKXt2YXIgZjtmPXRoaXMudHlwZT09PXRoaXMuZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVI/dSh0LCJ1aW50MTYiKTp1KHQsImZsb2F0MzIiKSx0aGlzLmxlbmd0aD1jKHRoaXMuZ2wsdGhpcy50eXBlLHRoaXMubGVuZ3RoLHRoaXMudXNhZ2UsZTwwP2Y6Zi5zdWJhcnJheSgwLHQubGVuZ3RoKSxlKSxuLmZyZWUoZil9ZWxzZSBpZigib2JqZWN0Ij09dHlwZW9mIHQmJiJudW1iZXIiPT10eXBlb2YgdC5sZW5ndGgpdGhpcy5sZW5ndGg9Yyh0aGlzLmdsLHRoaXMudHlwZSx0aGlzLmxlbmd0aCx0aGlzLnVzYWdlLHQsZSk7ZWxzZXtpZigibnVtYmVyIiE9dHlwZW9mIHQmJnZvaWQgMCE9PXQpdGhyb3cgbmV3IEVycm9yKCJnbC1idWZmZXI6IEludmFsaWQgZGF0YSB0eXBlIik7aWYoZT49MCl0aHJvdyBuZXcgRXJyb3IoImdsLWJ1ZmZlcjogQ2Fubm90IHNwZWNpZnkgb2Zmc2V0IHdoZW4gcmVzaXppbmcgYnVmZmVyIik7KHR8PTApPD0wJiYodD0xKSx0aGlzLmdsLmJ1ZmZlckRhdGEodGhpcy50eXBlLDB8dCx0aGlzLnVzYWdlKSx0aGlzLmxlbmd0aD10fX0sZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG4pe2lmKHI9cnx8dC5BUlJBWV9CVUZGRVIsbj1ufHx0LkRZTkFNSUNfRFJBVyxyIT09dC5BUlJBWV9CVUZGRVImJnIhPT10LkVMRU1FTlRfQVJSQVlfQlVGRkVSKXRocm93IG5ldyBFcnJvcigiZ2wtYnVmZmVyOiBJbnZhbGlkIHR5cGUgZm9yIHdlYmdsIGJ1ZmZlciwgbXVzdCBiZSBlaXRoZXIgZ2wuQVJSQVlfQlVGRkVSIG9yIGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSIik7aWYobiE9PXQuRFlOQU1JQ19EUkFXJiZuIT09dC5TVEFUSUNfRFJBVyYmbiE9PXQuU1RSRUFNX0RSQVcpdGhyb3cgbmV3IEVycm9yKCJnbC1idWZmZXI6IEludmFsaWQgdXNhZ2UgZm9yIGJ1ZmZlciwgbXVzdCBiZSBlaXRoZXIgZ2wuRFlOQU1JQ19EUkFXLCBnbC5TVEFUSUNfRFJBVyBvciBnbC5TVFJFQU1fRFJBVyIpO3ZhciBpPXQuY3JlYXRlQnVmZmVyKCksYT1uZXcgcyh0LHIsaSwwLG4pO3JldHVybiBhLnVwZGF0ZShlKSxhfX0se25kYXJyYXk6MjU5LCJuZGFycmF5LW9wcyI6MjU0LCJ0eXBlZGFycmF5LXBvb2wiOjMwOH1dLDc5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImdsLXZlYzMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10LnBvc2l0aW9ucyxpPXQudmVjdG9ycyxhPXtwb3NpdGlvbnM6W10sdmVydGV4SW50ZW5zaXR5OltdLHZlcnRleEludGVuc2l0eUJvdW5kczp0LnZlcnRleEludGVuc2l0eUJvdW5kcyx2ZWN0b3JzOltdLGNlbGxzOltdLGNvbmVPZmZzZXQ6dC5jb25lT2Zmc2V0LGNvbG9ybWFwOnQuY29sb3JtYXB9O2lmKDA9PT10LnBvc2l0aW9ucy5sZW5ndGgpcmV0dXJuIGUmJihlWzBdPVswLDAsMF0sZVsxXT1bMCwwLDBdKSxhO2Zvcih2YXIgbz0wLHM9MS8wLGw9LTEvMCxjPTEvMCx1PS0xLzAsZj0xLzAsaD0tMS8wLHA9bnVsbCxkPW51bGwsbT1bXSxnPTEvMCx2PSExLHk9MDt5PHIubGVuZ3RoO3krKyl7dmFyIHg9clt5XTtzPU1hdGgubWluKHhbMF0scyksbD1NYXRoLm1heCh4WzBdLGwpLGM9TWF0aC5taW4oeFsxXSxjKSx1PU1hdGgubWF4KHhbMV0sdSksZj1NYXRoLm1pbih4WzJdLGYpLGg9TWF0aC5tYXgoeFsyXSxoKTt2YXIgYj1pW3ldO2lmKG4ubGVuZ3RoKGIpPm8mJihvPW4ubGVuZ3RoKGIpKSx5KXt2YXIgXz0yKm4uZGlzdGFuY2UocCx4KS8obi5sZW5ndGgoZCkrbi5sZW5ndGgoYikpO18/KGc9TWF0aC5taW4oZyxfKSx2PSExKTp2PSEwfXZ8fChwPXgsZD1iKSxtLnB1c2goYil9dmFyIHc9W3MsYyxmXSxUPVtsLHUsaF07ZSYmKGVbMF09dyxlWzFdPVQpLDA9PT1vJiYobz0xKTt2YXIgaz0xL287aXNGaW5pdGUoZyl8fChnPTEpLGEudmVjdG9yU2NhbGU9Zzt2YXIgQT10LmNvbmVTaXplfHwuNTt0LmFic29sdXRlQ29uZVNpemUmJihBPXQuYWJzb2x1dGVDb25lU2l6ZSprKSxhLmNvbmVTY2FsZT1BO3k9MDtmb3IodmFyIE09MDt5PHIubGVuZ3RoO3krKylmb3IodmFyIFM9KHg9clt5XSlbMF0sRT14WzFdLEw9eFsyXSxDPW1beV0sUD1uLmxlbmd0aChDKSprLEk9MDtJPDg7SSsrKXthLnBvc2l0aW9ucy5wdXNoKFtTLEUsTCxNKytdKSxhLnBvc2l0aW9ucy5wdXNoKFtTLEUsTCxNKytdKSxhLnBvc2l0aW9ucy5wdXNoKFtTLEUsTCxNKytdKSxhLnBvc2l0aW9ucy5wdXNoKFtTLEUsTCxNKytdKSxhLnBvc2l0aW9ucy5wdXNoKFtTLEUsTCxNKytdKSxhLnBvc2l0aW9ucy5wdXNoKFtTLEUsTCxNKytdKSxhLnZlY3RvcnMucHVzaChDKSxhLnZlY3RvcnMucHVzaChDKSxhLnZlY3RvcnMucHVzaChDKSxhLnZlY3RvcnMucHVzaChDKSxhLnZlY3RvcnMucHVzaChDKSxhLnZlY3RvcnMucHVzaChDKSxhLnZlcnRleEludGVuc2l0eS5wdXNoKFAsUCxQKSxhLnZlcnRleEludGVuc2l0eS5wdXNoKFAsUCxQKTt2YXIgTz1hLnBvc2l0aW9ucy5sZW5ndGg7YS5jZWxscy5wdXNoKFtPLTYsTy01LE8tNF0sW08tMyxPLTIsTy0xXSl9cmV0dXJuIGF9O3ZhciBpPXQoIi4vbGliL3NoYWRlcnMiKTtlLmV4cG9ydHMuY3JlYXRlTWVzaD10KCIuL2NyZWF0ZV9tZXNoIiksZS5leHBvcnRzLmNyZWF0ZUNvbmVNZXNoPWZ1bmN0aW9uKHQscil7cmV0dXJuIGUuZXhwb3J0cy5jcmVhdGVNZXNoKHQscix7c2hhZGVyczppLHRyYWNlVHlwZToiY29uZSJ9KX19LHsiLi9jcmVhdGVfbWVzaCI6ODAsIi4vbGliL3NoYWRlcnMiOjgxLCJnbC12ZWMzIjoxNjl9XSw4MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJnbC1zaGFkZXIiKSxpPXQoImdsLWJ1ZmZlciIpLGE9dCgiZ2wtdmFvIiksbz10KCJnbC10ZXh0dXJlMmQiKSxzPXQoImdsLW1hdDQvbXVsdGlwbHkiKSxsPXQoImdsLW1hdDQvaW52ZXJ0IiksYz10KCJuZGFycmF5IiksdT10KCJjb2xvcm1hcCIpLGY9WzEsMCwwLDAsMCwxLDAsMCwwLDAsMSwwLDAsMCwwLDFdO2Z1bmN0aW9uIGgodCxlLHIsbixpLGEsbyxzLGwsYyx1KXt0aGlzLmdsPXQsdGhpcy5waXhlbFJhdGlvPTEsdGhpcy5jZWxscz1bXSx0aGlzLnBvc2l0aW9ucz1bXSx0aGlzLmludGVuc2l0eT1bXSx0aGlzLnRleHR1cmU9ZSx0aGlzLmRpcnR5PSEwLHRoaXMudHJpU2hhZGVyPXIsdGhpcy5waWNrU2hhZGVyPW4sdGhpcy50cmlhbmdsZVBvc2l0aW9ucz1pLHRoaXMudHJpYW5nbGVWZWN0b3JzPWEsdGhpcy50cmlhbmdsZUNvbG9ycz1zLHRoaXMudHJpYW5nbGVVVnM9bCx0aGlzLnRyaWFuZ2xlSWRzPW8sdGhpcy50cmlhbmdsZVZBTz1jLHRoaXMudHJpYW5nbGVDb3VudD0wLHRoaXMucGlja0lkPTEsdGhpcy5ib3VuZHM9W1sxLzAsMS8wLDEvMF0sWy0xLzAsLTEvMCwtMS8wXV0sdGhpcy5jbGlwQm91bmRzPVtbLTEvMCwtMS8wLC0xLzBdLFsxLzAsMS8wLDEvMF1dLHRoaXMubGlnaHRQb3NpdGlvbj1bMWU1LDFlNSwwXSx0aGlzLmFtYmllbnRMaWdodD0uOCx0aGlzLmRpZmZ1c2VMaWdodD0uOCx0aGlzLnNwZWN1bGFyTGlnaHQ9Mix0aGlzLnJvdWdobmVzcz0uNSx0aGlzLmZyZXNuZWw9MS41LHRoaXMub3BhY2l0eT0xLHRoaXMudHJhY2VUeXBlPXUsdGhpcy50dWJlU2NhbGU9MSx0aGlzLmNvbmVTY2FsZT0yLHRoaXMudmVjdG9yU2NhbGU9MSx0aGlzLmNvbmVPZmZzZXQ9LjI1LHRoaXMuX21vZGVsPWYsdGhpcy5fdmlldz1mLHRoaXMuX3Byb2plY3Rpb249Zix0aGlzLl9yZXNvbHV0aW9uPVsxLDFdfXZhciBwPWgucHJvdG90eXBlO2Z1bmN0aW9uIGQodCxlKXt2YXIgcj1uKHQsZS5tZXNoU2hhZGVyLnZlcnRleCxlLm1lc2hTaGFkZXIuZnJhZ21lbnQsbnVsbCxlLm1lc2hTaGFkZXIuYXR0cmlidXRlcyk7cmV0dXJuIHIuYXR0cmlidXRlcy5wb3NpdGlvbi5sb2NhdGlvbj0wLHIuYXR0cmlidXRlcy5jb2xvci5sb2NhdGlvbj0yLHIuYXR0cmlidXRlcy51di5sb2NhdGlvbj0zLHIuYXR0cmlidXRlcy52ZWN0b3IubG9jYXRpb249NCxyfWZ1bmN0aW9uIG0odCxlKXt2YXIgcj1uKHQsZS5waWNrU2hhZGVyLnZlcnRleCxlLnBpY2tTaGFkZXIuZnJhZ21lbnQsbnVsbCxlLnBpY2tTaGFkZXIuYXR0cmlidXRlcyk7cmV0dXJuIHIuYXR0cmlidXRlcy5wb3NpdGlvbi5sb2NhdGlvbj0wLHIuYXR0cmlidXRlcy5pZC5sb2NhdGlvbj0xLHIuYXR0cmlidXRlcy52ZWN0b3IubG9jYXRpb249NCxyfXAuaXNPcGFxdWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vcGFjaXR5Pj0xfSxwLmlzVHJhbnNwYXJlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vcGFjaXR5PDF9LHAucGlja1Nsb3RzPTEscC5zZXRQaWNrQmFzZT1mdW5jdGlvbih0KXt0aGlzLnBpY2tJZD10fSxwLnVwZGF0ZT1mdW5jdGlvbih0KXt0PXR8fHt9O3ZhciBlPXRoaXMuZ2w7dGhpcy5kaXJ0eT0hMCwibGlnaHRQb3NpdGlvbiJpbiB0JiYodGhpcy5saWdodFBvc2l0aW9uPXQubGlnaHRQb3NpdGlvbiksIm9wYWNpdHkiaW4gdCYmKHRoaXMub3BhY2l0eT10Lm9wYWNpdHkpLCJhbWJpZW50ImluIHQmJih0aGlzLmFtYmllbnRMaWdodD10LmFtYmllbnQpLCJkaWZmdXNlImluIHQmJih0aGlzLmRpZmZ1c2VMaWdodD10LmRpZmZ1c2UpLCJzcGVjdWxhciJpbiB0JiYodGhpcy5zcGVjdWxhckxpZ2h0PXQuc3BlY3VsYXIpLCJyb3VnaG5lc3MiaW4gdCYmKHRoaXMucm91Z2huZXNzPXQucm91Z2huZXNzKSwiZnJlc25lbCJpbiB0JiYodGhpcy5mcmVzbmVsPXQuZnJlc25lbCksdm9pZCAwIT09dC50dWJlU2NhbGUmJih0aGlzLnR1YmVTY2FsZT10LnR1YmVTY2FsZSksdm9pZCAwIT09dC52ZWN0b3JTY2FsZSYmKHRoaXMudmVjdG9yU2NhbGU9dC52ZWN0b3JTY2FsZSksdm9pZCAwIT09dC5jb25lU2NhbGUmJih0aGlzLmNvbmVTY2FsZT10LmNvbmVTY2FsZSksdm9pZCAwIT09dC5jb25lT2Zmc2V0JiYodGhpcy5jb25lT2Zmc2V0PXQuY29uZU9mZnNldCksdC5jb2xvcm1hcCYmKHRoaXMudGV4dHVyZS5zaGFwZT1bMjU2LDI1Nl0sdGhpcy50ZXh0dXJlLm1pbkZpbHRlcj1lLkxJTkVBUl9NSVBNQVBfTElORUFSLHRoaXMudGV4dHVyZS5tYWdGaWx0ZXI9ZS5MSU5FQVIsdGhpcy50ZXh0dXJlLnNldFBpeGVscyhmdW5jdGlvbih0KXtmb3IodmFyIGU9dSh7Y29sb3JtYXA6dCxuc2hhZGVzOjI1Nixmb3JtYXQ6InJnYmEifSkscj1uZXcgVWludDhBcnJheSgxMDI0KSxuPTA7bjwyNTY7KytuKXtmb3IodmFyIGk9ZVtuXSxhPTA7YTwzOysrYSlyWzQqbithXT1pW2FdO3JbNCpuKzNdPTI1NSppWzNdfXJldHVybiBjKHIsWzI1NiwyNTYsNF0sWzQsMCwxXSl9KHQuY29sb3JtYXApKSx0aGlzLnRleHR1cmUuZ2VuZXJhdGVNaXBtYXAoKSk7dmFyIHI9dC5jZWxscyxuPXQucG9zaXRpb25zLGk9dC52ZWN0b3JzO2lmKG4mJnImJmkpe3ZhciBhPVtdLG89W10scz1bXSxsPVtdLGY9W107dGhpcy5jZWxscz1yLHRoaXMucG9zaXRpb25zPW4sdGhpcy52ZWN0b3JzPWk7dmFyIGg9dC5tZXNoQ29sb3J8fFsxLDEsMSwxXSxwPXQudmVydGV4SW50ZW5zaXR5LGQ9MS8wLG09LTEvMDtpZihwKWlmKHQudmVydGV4SW50ZW5zaXR5Qm91bmRzKWQ9K3QudmVydGV4SW50ZW5zaXR5Qm91bmRzWzBdLG09K3QudmVydGV4SW50ZW5zaXR5Qm91bmRzWzFdO2Vsc2UgZm9yKHZhciBnPTA7ZzxwLmxlbmd0aDsrK2cpe3ZhciB2PXBbZ107ZD1NYXRoLm1pbihkLHYpLG09TWF0aC5tYXgobSx2KX1lbHNlIGZvcihnPTA7ZzxuLmxlbmd0aDsrK2cpe3Y9bltnXVsyXTtkPU1hdGgubWluKGQsdiksbT1NYXRoLm1heChtLHYpfXRoaXMuaW50ZW5zaXR5PXB8fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Lmxlbmd0aCxyPW5ldyBBcnJheShlKSxuPTA7bjxlOysrbilyW25dPXRbbl1bMl07cmV0dXJuIHJ9KG4pLHRoaXMuYm91bmRzPVtbMS8wLDEvMCwxLzBdLFstMS8wLC0xLzAsLTEvMF1dO2ZvcihnPTA7ZzxuLmxlbmd0aDsrK2cpZm9yKHZhciB5PW5bZ10seD0wO3g8MzsrK3gpIWlzTmFOKHlbeF0pJiZpc0Zpbml0ZSh5W3hdKSYmKHRoaXMuYm91bmRzWzBdW3hdPU1hdGgubWluKHRoaXMuYm91bmRzWzBdW3hdLHlbeF0pLHRoaXMuYm91bmRzWzFdW3hdPU1hdGgubWF4KHRoaXMuYm91bmRzWzFdW3hdLHlbeF0pKTt2YXIgYj0wO3Q6Zm9yKGc9MDtnPHIubGVuZ3RoOysrZyl7dmFyIF89cltnXTtzd2l0Y2goXy5sZW5ndGgpe2Nhc2UgMzpmb3IoeD0wO3g8MzsrK3gpe3k9bltUPV9beF1dO2Zvcih2YXIgdz0wO3c8MzsrK3cpaWYoaXNOYU4oeVt3XSl8fCFpc0Zpbml0ZSh5W3ddKSljb250aW51ZSB0fWZvcih4PTA7eDwzOysreCl7dmFyIFQ7eT1uW1Q9X1syLXhdXTthLnB1c2goeVswXSx5WzFdLHlbMl0seVszXSk7dmFyIGs9aVtUXTtvLnB1c2goa1swXSxrWzFdLGtbMl0sa1szXXx8MCk7dmFyIEEsTT1oOzM9PT1NLmxlbmd0aD9zLnB1c2goTVswXSxNWzFdLE1bMl0sMSk6cy5wdXNoKE1bMF0sTVsxXSxNWzJdLE1bM10pLEE9cD9bKHBbVF0tZCkvKG0tZCksMF06Wyh5WzJdLWQpLyhtLWQpLDBdLGwucHVzaChBWzBdLEFbMV0pLGYucHVzaChnKX1iKz0xfX10aGlzLnRyaWFuZ2xlQ291bnQ9Yix0aGlzLnRyaWFuZ2xlUG9zaXRpb25zLnVwZGF0ZShhKSx0aGlzLnRyaWFuZ2xlVmVjdG9ycy51cGRhdGUobyksdGhpcy50cmlhbmdsZUNvbG9ycy51cGRhdGUocyksdGhpcy50cmlhbmdsZVVWcy51cGRhdGUobCksdGhpcy50cmlhbmdsZUlkcy51cGRhdGUobmV3IFVpbnQzMkFycmF5KGYpKX19LHAuZHJhd1RyYW5zcGFyZW50PXAuZHJhdz1mdW5jdGlvbih0KXt0PXR8fHt9O2Zvcih2YXIgZT10aGlzLmdsLHI9dC5tb2RlbHx8ZixuPXQudmlld3x8ZixpPXQucHJvamVjdGlvbnx8ZixhPVtbLTFlNiwtMWU2LC0xZTZdLFsxZTYsMWU2LDFlNl1dLG89MDtvPDM7KytvKWFbMF1bb109TWF0aC5tYXgoYVswXVtvXSx0aGlzLmNsaXBCb3VuZHNbMF1bb10pLGFbMV1bb109TWF0aC5taW4oYVsxXVtvXSx0aGlzLmNsaXBCb3VuZHNbMV1bb10pO3ZhciBjPXttb2RlbDpyLHZpZXc6bixwcm9qZWN0aW9uOmksaW52ZXJzZU1vZGVsOmYuc2xpY2UoKSxjbGlwQm91bmRzOmEsa2FtYmllbnQ6dGhpcy5hbWJpZW50TGlnaHQsa2RpZmZ1c2U6dGhpcy5kaWZmdXNlTGlnaHQsa3NwZWN1bGFyOnRoaXMuc3BlY3VsYXJMaWdodCxyb3VnaG5lc3M6dGhpcy5yb3VnaG5lc3MsZnJlc25lbDp0aGlzLmZyZXNuZWwsZXllUG9zaXRpb246WzAsMCwwXSxsaWdodFBvc2l0aW9uOlswLDAsMF0sb3BhY2l0eTp0aGlzLm9wYWNpdHksdHViZVNjYWxlOnRoaXMudHViZVNjYWxlLHZlY3RvclNjYWxlOnRoaXMudmVjdG9yU2NhbGUsY29uZVNjYWxlOnRoaXMuY29uZVNjYWxlLGNvbmVPZmZzZXQ6dGhpcy5jb25lT2Zmc2V0LHRleHR1cmU6MH07Yy5pbnZlcnNlTW9kZWw9bChjLmludmVyc2VNb2RlbCxjLm1vZGVsKSxlLmRpc2FibGUoZS5DVUxMX0ZBQ0UpLHRoaXMudGV4dHVyZS5iaW5kKDApO3ZhciB1PW5ldyBBcnJheSgxNik7cyh1LGMudmlldyxjLm1vZGVsKSxzKHUsYy5wcm9qZWN0aW9uLHUpLGwodSx1KTtmb3Iobz0wO288MzsrK28pYy5leWVQb3NpdGlvbltvXT11WzEyK29dL3VbMTVdO3ZhciBoPXVbMTVdO2ZvcihvPTA7bzwzOysrbyloKz10aGlzLmxpZ2h0UG9zaXRpb25bb10qdVs0Km8rM107Zm9yKG89MDtvPDM7KytvKXtmb3IodmFyIHA9dVsxMitvXSxkPTA7ZDwzOysrZClwKz11WzQqZCtvXSp0aGlzLmxpZ2h0UG9zaXRpb25bZF07Yy5saWdodFBvc2l0aW9uW29dPXAvaH1pZih0aGlzLnRyaWFuZ2xlQ291bnQ+MCl7dmFyIG09dGhpcy50cmlTaGFkZXI7bS5iaW5kKCksbS51bmlmb3Jtcz1jLHRoaXMudHJpYW5nbGVWQU8uYmluZCgpLGUuZHJhd0FycmF5cyhlLlRSSUFOR0xFUywwLDMqdGhpcy50cmlhbmdsZUNvdW50KSx0aGlzLnRyaWFuZ2xlVkFPLnVuYmluZCgpfX0scC5kcmF3UGljaz1mdW5jdGlvbih0KXt0PXR8fHt9O2Zvcih2YXIgZT10aGlzLmdsLHI9dC5tb2RlbHx8ZixuPXQudmlld3x8ZixpPXQucHJvamVjdGlvbnx8ZixhPVtbLTFlNiwtMWU2LC0xZTZdLFsxZTYsMWU2LDFlNl1dLG89MDtvPDM7KytvKWFbMF1bb109TWF0aC5tYXgoYVswXVtvXSx0aGlzLmNsaXBCb3VuZHNbMF1bb10pLGFbMV1bb109TWF0aC5taW4oYVsxXVtvXSx0aGlzLmNsaXBCb3VuZHNbMV1bb10pO3RoaXMuX21vZGVsPVtdLnNsaWNlLmNhbGwociksdGhpcy5fdmlldz1bXS5zbGljZS5jYWxsKG4pLHRoaXMuX3Byb2plY3Rpb249W10uc2xpY2UuY2FsbChpKSx0aGlzLl9yZXNvbHV0aW9uPVtlLmRyYXdpbmdCdWZmZXJXaWR0aCxlLmRyYXdpbmdCdWZmZXJIZWlnaHRdO3ZhciBzPXttb2RlbDpyLHZpZXc6bixwcm9qZWN0aW9uOmksY2xpcEJvdW5kczphLHR1YmVTY2FsZTp0aGlzLnR1YmVTY2FsZSx2ZWN0b3JTY2FsZTp0aGlzLnZlY3RvclNjYWxlLGNvbmVTY2FsZTp0aGlzLmNvbmVTY2FsZSxjb25lT2Zmc2V0OnRoaXMuY29uZU9mZnNldCxwaWNrSWQ6dGhpcy5waWNrSWQvMjU1fSxsPXRoaXMucGlja1NoYWRlcjtsLmJpbmQoKSxsLnVuaWZvcm1zPXMsdGhpcy50cmlhbmdsZUNvdW50PjAmJih0aGlzLnRyaWFuZ2xlVkFPLmJpbmQoKSxlLmRyYXdBcnJheXMoZS5UUklBTkdMRVMsMCwzKnRoaXMudHJpYW5nbGVDb3VudCksdGhpcy50cmlhbmdsZVZBTy51bmJpbmQoKSl9LHAucGljaz1mdW5jdGlvbih0KXtpZighdClyZXR1cm4gbnVsbDtpZih0LmlkIT09dGhpcy5waWNrSWQpcmV0dXJuIG51bGw7dmFyIGU9dC52YWx1ZVswXSsyNTYqdC52YWx1ZVsxXSs2NTUzNip0LnZhbHVlWzJdLHI9dGhpcy5jZWxsc1tlXSxuPXRoaXMucG9zaXRpb25zW3JbMV1dLnNsaWNlKDAsMyksaT17cG9zaXRpb246bixkYXRhQ29vcmRpbmF0ZTpuLGluZGV4Ok1hdGguZmxvb3IoclsxXS80OCl9O3JldHVybiJjb25lIj09PXRoaXMudHJhY2VUeXBlP2kuaW5kZXg9TWF0aC5mbG9vcihyWzFdLzQ4KToic3RyZWFtdHViZSI9PT10aGlzLnRyYWNlVHlwZSYmKGkuaW50ZW5zaXR5PXRoaXMuaW50ZW5zaXR5W3JbMV1dLGkudmVsb2NpdHk9dGhpcy52ZWN0b3JzW3JbMV1dLnNsaWNlKDAsMyksaS5kaXZlcmdlbmNlPXRoaXMudmVjdG9yc1tyWzFdXVszXSxpLmluZGV4PWUpLGl9LHAuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMudGV4dHVyZS5kaXNwb3NlKCksdGhpcy50cmlTaGFkZXIuZGlzcG9zZSgpLHRoaXMucGlja1NoYWRlci5kaXNwb3NlKCksdGhpcy50cmlhbmdsZVZBTy5kaXNwb3NlKCksdGhpcy50cmlhbmdsZVBvc2l0aW9ucy5kaXNwb3NlKCksdGhpcy50cmlhbmdsZVZlY3RvcnMuZGlzcG9zZSgpLHRoaXMudHJpYW5nbGVDb2xvcnMuZGlzcG9zZSgpLHRoaXMudHJpYW5nbGVVVnMuZGlzcG9zZSgpLHRoaXMudHJpYW5nbGVJZHMuZGlzcG9zZSgpfSxlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXIuc2hhZGVyczsxPT09YXJndW1lbnRzLmxlbmd0aCYmKHQ9KGU9dCkuZ2wpO3ZhciBzPWQodCxuKSxsPW0odCxuKSx1PW8odCxjKG5ldyBVaW50OEFycmF5KFsyNTUsMjU1LDI1NSwyNTVdKSxbMSwxLDRdKSk7dS5nZW5lcmF0ZU1pcG1hcCgpLHUubWluRmlsdGVyPXQuTElORUFSX01JUE1BUF9MSU5FQVIsdS5tYWdGaWx0ZXI9dC5MSU5FQVI7dmFyIGY9aSh0KSxwPWkodCksZz1pKHQpLHY9aSh0KSx5PWkodCkseD1hKHQsW3tidWZmZXI6Zix0eXBlOnQuRkxPQVQsc2l6ZTo0fSx7YnVmZmVyOnksdHlwZTp0LlVOU0lHTkVEX0JZVEUsc2l6ZTo0LG5vcm1hbGl6ZWQ6ITB9LHtidWZmZXI6Zyx0eXBlOnQuRkxPQVQsc2l6ZTo0fSx7YnVmZmVyOnYsdHlwZTp0LkZMT0FULHNpemU6Mn0se2J1ZmZlcjpwLHR5cGU6dC5GTE9BVCxzaXplOjR9XSksYj1uZXcgaCh0LHUscyxsLGYscCx5LGcsdix4LHIudHJhY2VUeXBlfHwiY29uZSIpO3JldHVybiBiLnVwZGF0ZShlKSxifX0se2NvbG9ybWFwOjUzLCJnbC1idWZmZXIiOjc4LCJnbC1tYXQ0L2ludmVydCI6OTgsImdsLW1hdDQvbXVsdGlwbHkiOjEwMCwiZ2wtc2hhZGVyIjoxMzIsImdsLXRleHR1cmUyZCI6MTQ2LCJnbC12YW8iOjE1MCxuZGFycmF5OjI1OX1dLDgxOltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiZ2xzbGlmeSIpLGk9bihbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcblxucHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxudmVjMyBnZXRPcnRob2dvbmFsVmVjdG9yKHZlYzMgdikge1xuICAvLyBSZXR1cm4gdXAtdmVjdG9yIGZvciBvbmx5LXogdmVjdG9yLlxuICAvLyBSZXR1cm4gYXggKyBieSArIGN6ID0gMCwgYSBwb2ludCB0aGF0IGxpZXMgb24gdGhlIHBsYW5lIHRoYXQgaGFzIHYgYXMgYSBub3JtYWwgYW5kIHRoYXQgaXNuJ3QgKDAsMCwwKS5cbiAgLy8gRnJvbSB0aGUgYWJvdmUgaWYtc3RhdGVtZW50IHdlIGhhdmUgfHxhfHwgPiAwICBVICB8fGJ8fCA+IDAuXG4gIC8vIEFzc2lnbiB6ID0gMCwgeCA9IC1iLCB5ID0gYTpcbiAgLy8gYSotYiArIGIqYSArIGMqMCA9IC1iYSArIGJhICsgMCA9IDBcbiAgaWYgKHYueCp2LnggPiB2Lnoqdi56IHx8IHYueSp2LnkgPiB2Lnoqdi56KSB7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZSh2ZWMzKC12LnksIHYueCwgMC4wKSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZSh2ZWMzKDAuMCwgdi56LCAtdi55KSk7XG4gIH1cbn1cblxuLy8gQ2FsY3VsYXRlIHRoZSBjb25lIHZlcnRleCBhbmQgbm9ybWFsIGF0IHRoZSBnaXZlbiBpbmRleC5cbi8vXG4vLyBUaGUgcmV0dXJuZWQgdmVydGV4IGlzIGZvciBhIGNvbmUgd2l0aCBpdHMgdG9wIGF0IG9yaWdpbiBhbmQgaGVpZ2h0IG9mIDEuMCxcbi8vIHBvaW50aW5nIGluIHRoZSBkaXJlY3Rpb24gb2YgdGhlIHZlY3RvciBhdHRyaWJ1dGUuXG4vL1xuLy8gRWFjaCBjb25lIGlzIG1hZGUgdXAgb2YgYSB0b3AgdmVydGV4LCBhIGNlbnRlciBiYXNlIHZlcnRleCBhbmQgYmFzZSBwZXJpbWV0ZXIgdmVydGljZXMuXG4vLyBUaGVzZSB2ZXJ0aWNlcyBhcmUgdXNlZCB0byBtYWtlIHVwIHRoZSB0cmlhbmdsZXMgb2YgdGhlIGNvbmUgYnkgdGhlIGZvbGxvd2luZzpcbi8vICAgc2VnbWVudCArIDAgdG9wIHZlcnRleFxuLy8gICBzZWdtZW50ICsgMSBwZXJpbWV0ZXIgdmVydGV4IGErMVxuLy8gICBzZWdtZW50ICsgMiBwZXJpbWV0ZXIgdmVydGV4IGFcbi8vICAgc2VnbWVudCArIDMgY2VudGVyIGJhc2UgdmVydGV4XG4vLyAgIHNlZ21lbnQgKyA0IHBlcmltZXRlciB2ZXJ0ZXggYVxuLy8gICBzZWdtZW50ICsgNSBwZXJpbWV0ZXIgdmVydGV4IGErMVxuLy8gV2hlcmUgc2VnbWVudCBpcyB0aGUgbnVtYmVyIG9mIHRoZSByYWRpYWwgc2VnbWVudCAqIDYgYW5kIGEgaXMgdGhlIGFuZ2xlIGF0IHRoYXQgcmFkaWFsIHNlZ21lbnQuXG4vLyBUbyBnbyBmcm9tIGluZGV4IHRvIHNlZ21lbnQsIGZsb29yKGluZGV4IC8gNilcbi8vIFRvIGdvIGZyb20gc2VnbWVudCB0byBhbmdsZSwgMipwaSAqIChzZWdtZW50L3NlZ21lbnRDb3VudClcbi8vIFRvIGdvIGZyb20gaW5kZXggdG8gc2VnbWVudCBpbmRleCwgaW5kZXggLSAoc2VnbWVudCo2KVxuLy9cbnZlYzMgZ2V0Q29uZVBvc2l0aW9uKHZlYzMgZCwgZmxvYXQgcmF3SW5kZXgsIGZsb2F0IGNvbmVPZmZzZXQsIG91dCB2ZWMzIG5vcm1hbCkge1xuXG4gIGNvbnN0IGZsb2F0IHNlZ21lbnRDb3VudCA9IDguMDtcblxuICBmbG9hdCBpbmRleCA9IHJhd0luZGV4IC0gZmxvb3IocmF3SW5kZXggL1xuICAgIChzZWdtZW50Q291bnQgKiA2LjApKSAqXG4gICAgKHNlZ21lbnRDb3VudCAqIDYuMCk7XG5cbiAgZmxvYXQgc2VnbWVudCA9IGZsb29yKDAuMDAxICsgaW5kZXgvNi4wKTtcbiAgZmxvYXQgc2VnbWVudEluZGV4ID0gaW5kZXggLSAoc2VnbWVudCo2LjApO1xuXG4gIG5vcm1hbCA9IC1ub3JtYWxpemUoZCk7XG5cbiAgaWYgKHNlZ21lbnRJbmRleCA+IDIuOTkgJiYgc2VnbWVudEluZGV4IDwgMy4wMSkge1xuICAgIHJldHVybiBtaXgodmVjMygwLjApLCAtZCwgY29uZU9mZnNldCk7XG4gIH1cblxuICBmbG9hdCBuZXh0QW5nbGUgPSAoXG4gICAgKHNlZ21lbnRJbmRleCA+IDAuOTkgJiYgIHNlZ21lbnRJbmRleCA8IDEuMDEpIHx8XG4gICAgKHNlZ21lbnRJbmRleCA+IDQuOTkgJiYgIHNlZ21lbnRJbmRleCA8IDUuMDEpXG4gICkgPyAxLjAgOiAwLjA7XG4gIGZsb2F0IGFuZ2xlID0gMi4wICogMy4xNDE1OSAqICgoc2VnbWVudCArIG5leHRBbmdsZSkgLyBzZWdtZW50Q291bnQpO1xuXG4gIHZlYzMgdjEgPSBtaXgoZCwgdmVjMygwLjApLCBjb25lT2Zmc2V0KTtcbiAgdmVjMyB2MiA9IHYxIC0gZDtcblxuICB2ZWMzIHUgPSBnZXRPcnRob2dvbmFsVmVjdG9yKGQpO1xuICB2ZWMzIHYgPSBub3JtYWxpemUoY3Jvc3ModSwgZCkpO1xuXG4gIHZlYzMgeCA9IHUgKiBjb3MoYW5nbGUpICogbGVuZ3RoKGQpKjAuMjU7XG4gIHZlYzMgeSA9IHYgKiBzaW4oYW5nbGUpICogbGVuZ3RoKGQpKjAuMjU7XG4gIHZlYzMgdjMgPSB2MiArIHggKyB5O1xuICBpZiAoc2VnbWVudEluZGV4IDwgMy4wKSB7XG4gICAgdmVjMyB0eCA9IHUgKiBzaW4oYW5nbGUpO1xuICAgIHZlYzMgdHkgPSB2ICogLWNvcyhhbmdsZSk7XG4gICAgdmVjMyB0YW5nZW50ID0gdHggKyB0eTtcbiAgICBub3JtYWwgPSBub3JtYWxpemUoY3Jvc3ModjMgLSB2MSwgdGFuZ2VudCkpO1xuICB9XG5cbiAgaWYgKHNlZ21lbnRJbmRleCA9PSAwLjApIHtcbiAgICByZXR1cm4gbWl4KGQsIHZlYzMoMC4wKSwgY29uZU9mZnNldCk7XG4gIH1cbiAgcmV0dXJuIHYzO1xufVxuXG5hdHRyaWJ1dGUgdmVjMyB2ZWN0b3I7XG5hdHRyaWJ1dGUgdmVjNCBjb2xvciwgcG9zaXRpb247XG5hdHRyaWJ1dGUgdmVjMiB1djtcblxudW5pZm9ybSBmbG9hdCB2ZWN0b3JTY2FsZSwgY29uZVNjYWxlLCBjb25lT2Zmc2V0O1xudW5pZm9ybSBtYXQ0IG1vZGVsLCB2aWV3LCBwcm9qZWN0aW9uLCBpbnZlcnNlTW9kZWw7XG51bmlmb3JtIHZlYzMgZXllUG9zaXRpb24sIGxpZ2h0UG9zaXRpb247XG5cbnZhcnlpbmcgdmVjMyBmX25vcm1hbCwgZl9saWdodERpcmVjdGlvbiwgZl9leWVEaXJlY3Rpb24sIGZfZGF0YSwgZl9wb3NpdGlvbjtcbnZhcnlpbmcgdmVjNCBmX2NvbG9yO1xudmFyeWluZyB2ZWMyIGZfdXY7XG5cbnZvaWQgbWFpbigpIHtcbiAgLy8gU2NhbGUgdGhlIHZlY3RvciBtYWduaXR1ZGUgdG8gc3RheSBjb25zdGFudCB3aXRoXG4gIC8vIG1vZGVsICYgdmlldyBjaGFuZ2VzLlxuICB2ZWMzIG5vcm1hbDtcbiAgdmVjMyBYWVogPSBnZXRDb25lUG9zaXRpb24obWF0Myhtb2RlbCkgKiAoKHZlY3RvclNjYWxlICogY29uZVNjYWxlKSAqIHZlY3RvciksIHBvc2l0aW9uLncsIGNvbmVPZmZzZXQsIG5vcm1hbCk7XG4gIHZlYzQgY29uZVBvc2l0aW9uID0gbW9kZWwgKiB2ZWM0KHBvc2l0aW9uLnh5eiwgMS4wKSArIHZlYzQoWFlaLCAwLjApO1xuXG4gIC8vTGlnaHRpbmcgZ2VvbWV0cnkgcGFyYW1ldGVyc1xuICB2ZWM0IGNhbWVyYUNvb3JkaW5hdGUgPSB2aWV3ICogY29uZVBvc2l0aW9uO1xuICBjYW1lcmFDb29yZGluYXRlLnh5eiAvPSBjYW1lcmFDb29yZGluYXRlLnc7XG4gIGZfbGlnaHREaXJlY3Rpb24gPSBsaWdodFBvc2l0aW9uIC0gY2FtZXJhQ29vcmRpbmF0ZS54eXo7XG4gIGZfZXllRGlyZWN0aW9uICAgPSBleWVQb3NpdGlvbiAtIGNhbWVyYUNvb3JkaW5hdGUueHl6O1xuICBmX25vcm1hbCA9IG5vcm1hbGl6ZSgodmVjNChub3JtYWwsIDAuMCkgKiBpbnZlcnNlTW9kZWwpLnh5eik7XG5cbiAgLy8gdmVjNCBtX3Bvc2l0aW9uICA9IG1vZGVsICogdmVjNChjb25lUG9zaXRpb24sIDEuMCk7XG4gIHZlYzQgdF9wb3NpdGlvbiAgPSB2aWV3ICogY29uZVBvc2l0aW9uO1xuICBnbF9Qb3NpdGlvbiAgICAgID0gcHJvamVjdGlvbiAqIHRfcG9zaXRpb247XG5cbiAgZl9jb2xvciAgICAgICAgICA9IGNvbG9yO1xuICBmX2RhdGEgICAgICAgICAgID0gY29uZVBvc2l0aW9uLnh5ejtcbiAgZl9wb3NpdGlvbiAgICAgICA9IHBvc2l0aW9uLnh5ejtcbiAgZl91diAgICAgICAgICAgICA9IHV2O1xufVxuIl0pLGE9bihbIiNleHRlbnNpb24gR0xfT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIDogZW5hYmxlXG5cbnByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmZsb2F0IGJlY2ttYW5uRGlzdHJpYnV0aW9uKGZsb2F0IHgsIGZsb2F0IHJvdWdobmVzcykge1xuICBmbG9hdCBOZG90SCA9IG1heCh4LCAwLjAwMDEpO1xuICBmbG9hdCBjb3MyQWxwaGEgPSBOZG90SCAqIE5kb3RIO1xuICBmbG9hdCB0YW4yQWxwaGEgPSAoY29zMkFscGhhIC0gMS4wKSAvIGNvczJBbHBoYTtcbiAgZmxvYXQgcm91Z2huZXNzMiA9IHJvdWdobmVzcyAqIHJvdWdobmVzcztcbiAgZmxvYXQgZGVub20gPSAzLjE0MTU5MjY1MzU4OTc5MyAqIHJvdWdobmVzczIgKiBjb3MyQWxwaGEgKiBjb3MyQWxwaGE7XG4gIHJldHVybiBleHAodGFuMkFscGhhIC8gcm91Z2huZXNzMikgLyBkZW5vbTtcbn1cblxuZmxvYXQgY29va1RvcnJhbmNlU3BlY3VsYXIoXG4gIHZlYzMgbGlnaHREaXJlY3Rpb24sXG4gIHZlYzMgdmlld0RpcmVjdGlvbixcbiAgdmVjMyBzdXJmYWNlTm9ybWFsLFxuICBmbG9hdCByb3VnaG5lc3MsXG4gIGZsb2F0IGZyZXNuZWwpIHtcblxuICBmbG9hdCBWZG90TiA9IG1heChkb3Qodmlld0RpcmVjdGlvbiwgc3VyZmFjZU5vcm1hbCksIDAuMCk7XG4gIGZsb2F0IExkb3ROID0gbWF4KGRvdChsaWdodERpcmVjdGlvbiwgc3VyZmFjZU5vcm1hbCksIDAuMCk7XG5cbiAgLy9IYWxmIGFuZ2xlIHZlY3RvclxuICB2ZWMzIEggPSBub3JtYWxpemUobGlnaHREaXJlY3Rpb24gKyB2aWV3RGlyZWN0aW9uKTtcblxuICAvL0dlb21ldHJpYyB0ZXJtXG4gIGZsb2F0IE5kb3RIID0gbWF4KGRvdChzdXJmYWNlTm9ybWFsLCBIKSwgMC4wKTtcbiAgZmxvYXQgVmRvdEggPSBtYXgoZG90KHZpZXdEaXJlY3Rpb24sIEgpLCAwLjAwMDAwMSk7XG4gIGZsb2F0IExkb3RIID0gbWF4KGRvdChsaWdodERpcmVjdGlvbiwgSCksIDAuMDAwMDAxKTtcbiAgZmxvYXQgRzEgPSAoMi4wICogTmRvdEggKiBWZG90TikgLyBWZG90SDtcbiAgZmxvYXQgRzIgPSAoMi4wICogTmRvdEggKiBMZG90TikgLyBMZG90SDtcbiAgZmxvYXQgRyA9IG1pbigxLjAsIG1pbihHMSwgRzIpKTtcbiAgXG4gIC8vRGlzdHJpYnV0aW9uIHRlcm1cbiAgZmxvYXQgRCA9IGJlY2ttYW5uRGlzdHJpYnV0aW9uKE5kb3RILCByb3VnaG5lc3MpO1xuXG4gIC8vRnJlc25lbCB0ZXJtXG4gIGZsb2F0IEYgPSBwb3coMS4wIC0gVmRvdE4sIGZyZXNuZWwpO1xuXG4gIC8vTXVsdGlwbHkgdGVybXMgYW5kIGRvbmVcbiAgcmV0dXJuICBHICogRiAqIEQgLyBtYXgoMy4xNDE1OTI2NSAqIFZkb3ROLCAwLjAwMDAwMSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZShmbG9hdCBhLCBmbG9hdCBiLCBmbG9hdCBwKSB7XG4gIHJldHVybiAoKHAgPiBtYXgoYSwgYikpIHx8IFxuICAgICAgICAgIChwIDwgbWluKGEsIGIpKSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWMyIGEsIHZlYzIgYiwgdmVjMiBwKSB7XG4gIHJldHVybiAob3V0T2ZSYW5nZShhLngsIGIueCwgcC54KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS55LCBiLnksIHAueSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMyBhLCB2ZWMzIGIsIHZlYzMgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnosIGIueiwgcC56KSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWM0IGEsIHZlYzQgYiwgdmVjNCBwKSB7XG4gIHJldHVybiBvdXRPZlJhbmdlKGEueHl6LCBiLnh5eiwgcC54eXopO1xufVxuXG51bmlmb3JtIHZlYzMgY2xpcEJvdW5kc1syXTtcbnVuaWZvcm0gZmxvYXQgcm91Z2huZXNzLCBmcmVzbmVsLCBrYW1iaWVudCwga2RpZmZ1c2UsIGtzcGVjdWxhciwgb3BhY2l0eTtcbnVuaWZvcm0gc2FtcGxlcjJEIHRleHR1cmU7XG5cbnZhcnlpbmcgdmVjMyBmX25vcm1hbCwgZl9saWdodERpcmVjdGlvbiwgZl9leWVEaXJlY3Rpb24sIGZfZGF0YSwgZl9wb3NpdGlvbjtcbnZhcnlpbmcgdmVjNCBmX2NvbG9yO1xudmFyeWluZyB2ZWMyIGZfdXY7XG5cbnZvaWQgbWFpbigpIHtcbiAgaWYgKG91dE9mUmFuZ2UoY2xpcEJvdW5kc1swXSwgY2xpcEJvdW5kc1sxXSwgZl9wb3NpdGlvbikpIGRpc2NhcmQ7XG4gIHZlYzMgTiA9IG5vcm1hbGl6ZShmX25vcm1hbCk7XG4gIHZlYzMgTCA9IG5vcm1hbGl6ZShmX2xpZ2h0RGlyZWN0aW9uKTtcbiAgdmVjMyBWID0gbm9ybWFsaXplKGZfZXllRGlyZWN0aW9uKTtcblxuICBpZihnbF9Gcm9udEZhY2luZykge1xuICAgIE4gPSAtTjtcbiAgfVxuXG4gIGZsb2F0IHNwZWN1bGFyID0gbWluKDEuMCwgbWF4KDAuMCwgY29va1RvcnJhbmNlU3BlY3VsYXIoTCwgViwgTiwgcm91Z2huZXNzLCBmcmVzbmVsKSkpO1xuICBmbG9hdCBkaWZmdXNlICA9IG1pbihrYW1iaWVudCArIGtkaWZmdXNlICogbWF4KGRvdChOLCBMKSwgMC4wKSwgMS4wKTtcblxuICB2ZWM0IHN1cmZhY2VDb2xvciA9IGZfY29sb3IgKiB0ZXh0dXJlMkQodGV4dHVyZSwgZl91dik7XG4gIHZlYzQgbGl0Q29sb3IgPSBzdXJmYWNlQ29sb3IuYSAqIHZlYzQoZGlmZnVzZSAqIHN1cmZhY2VDb2xvci5yZ2IgKyBrc3BlY3VsYXIgKiB2ZWMzKDEsMSwxKSAqIHNwZWN1bGFyLCAgMS4wKTtcblxuICBnbF9GcmFnQ29sb3IgPSBsaXRDb2xvciAqIG9wYWNpdHk7XG59XG4iXSksbz1uKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuXG5wcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG52ZWMzIGdldE9ydGhvZ29uYWxWZWN0b3IodmVjMyB2KSB7XG4gIC8vIFJldHVybiB1cC12ZWN0b3IgZm9yIG9ubHkteiB2ZWN0b3IuXG4gIC8vIFJldHVybiBheCArIGJ5ICsgY3ogPSAwLCBhIHBvaW50IHRoYXQgbGllcyBvbiB0aGUgcGxhbmUgdGhhdCBoYXMgdiBhcyBhIG5vcm1hbCBhbmQgdGhhdCBpc24ndCAoMCwwLDApLlxuICAvLyBGcm9tIHRoZSBhYm92ZSBpZi1zdGF0ZW1lbnQgd2UgaGF2ZSB8fGF8fCA+IDAgIFUgIHx8Ynx8ID4gMC5cbiAgLy8gQXNzaWduIHogPSAwLCB4ID0gLWIsIHkgPSBhOlxuICAvLyBhKi1iICsgYiphICsgYyowID0gLWJhICsgYmEgKyAwID0gMFxuICBpZiAodi54KnYueCA+IHYueip2LnogfHwgdi55KnYueSA+IHYueip2LnopIHtcbiAgICByZXR1cm4gbm9ybWFsaXplKHZlYzMoLXYueSwgdi54LCAwLjApKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbm9ybWFsaXplKHZlYzMoMC4wLCB2LnosIC12LnkpKTtcbiAgfVxufVxuXG4vLyBDYWxjdWxhdGUgdGhlIGNvbmUgdmVydGV4IGFuZCBub3JtYWwgYXQgdGhlIGdpdmVuIGluZGV4LlxuLy9cbi8vIFRoZSByZXR1cm5lZCB2ZXJ0ZXggaXMgZm9yIGEgY29uZSB3aXRoIGl0cyB0b3AgYXQgb3JpZ2luIGFuZCBoZWlnaHQgb2YgMS4wLFxuLy8gcG9pbnRpbmcgaW4gdGhlIGRpcmVjdGlvbiBvZiB0aGUgdmVjdG9yIGF0dHJpYnV0ZS5cbi8vXG4vLyBFYWNoIGNvbmUgaXMgbWFkZSB1cCBvZiBhIHRvcCB2ZXJ0ZXgsIGEgY2VudGVyIGJhc2UgdmVydGV4IGFuZCBiYXNlIHBlcmltZXRlciB2ZXJ0aWNlcy5cbi8vIFRoZXNlIHZlcnRpY2VzIGFyZSB1c2VkIHRvIG1ha2UgdXAgdGhlIHRyaWFuZ2xlcyBvZiB0aGUgY29uZSBieSB0aGUgZm9sbG93aW5nOlxuLy8gICBzZWdtZW50ICsgMCB0b3AgdmVydGV4XG4vLyAgIHNlZ21lbnQgKyAxIHBlcmltZXRlciB2ZXJ0ZXggYSsxXG4vLyAgIHNlZ21lbnQgKyAyIHBlcmltZXRlciB2ZXJ0ZXggYVxuLy8gICBzZWdtZW50ICsgMyBjZW50ZXIgYmFzZSB2ZXJ0ZXhcbi8vICAgc2VnbWVudCArIDQgcGVyaW1ldGVyIHZlcnRleCBhXG4vLyAgIHNlZ21lbnQgKyA1IHBlcmltZXRlciB2ZXJ0ZXggYSsxXG4vLyBXaGVyZSBzZWdtZW50IGlzIHRoZSBudW1iZXIgb2YgdGhlIHJhZGlhbCBzZWdtZW50ICogNiBhbmQgYSBpcyB0aGUgYW5nbGUgYXQgdGhhdCByYWRpYWwgc2VnbWVudC5cbi8vIFRvIGdvIGZyb20gaW5kZXggdG8gc2VnbWVudCwgZmxvb3IoaW5kZXggLyA2KVxuLy8gVG8gZ28gZnJvbSBzZWdtZW50IHRvIGFuZ2xlLCAyKnBpICogKHNlZ21lbnQvc2VnbWVudENvdW50KVxuLy8gVG8gZ28gZnJvbSBpbmRleCB0byBzZWdtZW50IGluZGV4LCBpbmRleCAtIChzZWdtZW50KjYpXG4vL1xudmVjMyBnZXRDb25lUG9zaXRpb24odmVjMyBkLCBmbG9hdCByYXdJbmRleCwgZmxvYXQgY29uZU9mZnNldCwgb3V0IHZlYzMgbm9ybWFsKSB7XG5cbiAgY29uc3QgZmxvYXQgc2VnbWVudENvdW50ID0gOC4wO1xuXG4gIGZsb2F0IGluZGV4ID0gcmF3SW5kZXggLSBmbG9vcihyYXdJbmRleCAvXG4gICAgKHNlZ21lbnRDb3VudCAqIDYuMCkpICpcbiAgICAoc2VnbWVudENvdW50ICogNi4wKTtcblxuICBmbG9hdCBzZWdtZW50ID0gZmxvb3IoMC4wMDEgKyBpbmRleC82LjApO1xuICBmbG9hdCBzZWdtZW50SW5kZXggPSBpbmRleCAtIChzZWdtZW50KjYuMCk7XG5cbiAgbm9ybWFsID0gLW5vcm1hbGl6ZShkKTtcblxuICBpZiAoc2VnbWVudEluZGV4ID4gMi45OSAmJiBzZWdtZW50SW5kZXggPCAzLjAxKSB7XG4gICAgcmV0dXJuIG1peCh2ZWMzKDAuMCksIC1kLCBjb25lT2Zmc2V0KTtcbiAgfVxuXG4gIGZsb2F0IG5leHRBbmdsZSA9IChcbiAgICAoc2VnbWVudEluZGV4ID4gMC45OSAmJiAgc2VnbWVudEluZGV4IDwgMS4wMSkgfHxcbiAgICAoc2VnbWVudEluZGV4ID4gNC45OSAmJiAgc2VnbWVudEluZGV4IDwgNS4wMSlcbiAgKSA/IDEuMCA6IDAuMDtcbiAgZmxvYXQgYW5nbGUgPSAyLjAgKiAzLjE0MTU5ICogKChzZWdtZW50ICsgbmV4dEFuZ2xlKSAvIHNlZ21lbnRDb3VudCk7XG5cbiAgdmVjMyB2MSA9IG1peChkLCB2ZWMzKDAuMCksIGNvbmVPZmZzZXQpO1xuICB2ZWMzIHYyID0gdjEgLSBkO1xuXG4gIHZlYzMgdSA9IGdldE9ydGhvZ29uYWxWZWN0b3IoZCk7XG4gIHZlYzMgdiA9IG5vcm1hbGl6ZShjcm9zcyh1LCBkKSk7XG5cbiAgdmVjMyB4ID0gdSAqIGNvcyhhbmdsZSkgKiBsZW5ndGgoZCkqMC4yNTtcbiAgdmVjMyB5ID0gdiAqIHNpbihhbmdsZSkgKiBsZW5ndGgoZCkqMC4yNTtcbiAgdmVjMyB2MyA9IHYyICsgeCArIHk7XG4gIGlmIChzZWdtZW50SW5kZXggPCAzLjApIHtcbiAgICB2ZWMzIHR4ID0gdSAqIHNpbihhbmdsZSk7XG4gICAgdmVjMyB0eSA9IHYgKiAtY29zKGFuZ2xlKTtcbiAgICB2ZWMzIHRhbmdlbnQgPSB0eCArIHR5O1xuICAgIG5vcm1hbCA9IG5vcm1hbGl6ZShjcm9zcyh2MyAtIHYxLCB0YW5nZW50KSk7XG4gIH1cblxuICBpZiAoc2VnbWVudEluZGV4ID09IDAuMCkge1xuICAgIHJldHVybiBtaXgoZCwgdmVjMygwLjApLCBjb25lT2Zmc2V0KTtcbiAgfVxuICByZXR1cm4gdjM7XG59XG5cbmF0dHJpYnV0ZSB2ZWM0IHZlY3RvcjtcbmF0dHJpYnV0ZSB2ZWM0IHBvc2l0aW9uO1xuYXR0cmlidXRlIHZlYzQgaWQ7XG5cbnVuaWZvcm0gbWF0NCBtb2RlbCwgdmlldywgcHJvamVjdGlvbjtcbnVuaWZvcm0gZmxvYXQgdmVjdG9yU2NhbGUsIGNvbmVTY2FsZSwgY29uZU9mZnNldDtcblxudmFyeWluZyB2ZWMzIGZfcG9zaXRpb247XG52YXJ5aW5nIHZlYzQgZl9pZDtcblxudm9pZCBtYWluKCkge1xuICB2ZWMzIG5vcm1hbDtcbiAgdmVjMyBYWVogPSBnZXRDb25lUG9zaXRpb24obWF0Myhtb2RlbCkgKiAoKHZlY3RvclNjYWxlICogY29uZVNjYWxlKSAqIHZlY3Rvci54eXopLCBwb3NpdGlvbi53LCBjb25lT2Zmc2V0LCBub3JtYWwpO1xuICB2ZWM0IGNvbmVQb3NpdGlvbiA9IG1vZGVsICogdmVjNChwb3NpdGlvbi54eXosIDEuMCkgKyB2ZWM0KFhZWiwgMC4wKTtcbiAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uICogdmlldyAqIGNvbmVQb3NpdGlvbjtcbiAgZl9pZCAgICAgICAgPSBpZDtcbiAgZl9wb3NpdGlvbiAgPSBwb3NpdGlvbi54eXo7XG59XG4iXSkscz1uKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYm9vbCBvdXRPZlJhbmdlKGZsb2F0IGEsIGZsb2F0IGIsIGZsb2F0IHApIHtcbiAgcmV0dXJuICgocCA+IG1heChhLCBiKSkgfHwgXG4gICAgICAgICAgKHAgPCBtaW4oYSwgYikpKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzIgYSwgdmVjMiBiLCB2ZWMyIHApIHtcbiAgcmV0dXJuIChvdXRPZlJhbmdlKGEueCwgYi54LCBwLngpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnksIGIueSwgcC55KSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWMzIGEsIHZlYzMgYiwgdmVjMyBwKSB7XG4gIHJldHVybiAob3V0T2ZSYW5nZShhLngsIGIueCwgcC54KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS55LCBiLnksIHAueSkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueiwgYi56LCBwLnopKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzQgYSwgdmVjNCBiLCB2ZWM0IHApIHtcbiAgcmV0dXJuIG91dE9mUmFuZ2UoYS54eXosIGIueHl6LCBwLnh5eik7XG59XG5cbnVuaWZvcm0gdmVjMyAgY2xpcEJvdW5kc1syXTtcbnVuaWZvcm0gZmxvYXQgcGlja0lkO1xuXG52YXJ5aW5nIHZlYzMgZl9wb3NpdGlvbjtcbnZhcnlpbmcgdmVjNCBmX2lkO1xuXG52b2lkIG1haW4oKSB7XG4gIGlmIChvdXRPZlJhbmdlKGNsaXBCb3VuZHNbMF0sIGNsaXBCb3VuZHNbMV0sIGZfcG9zaXRpb24pKSBkaXNjYXJkO1xuXG4gIGdsX0ZyYWdDb2xvciA9IHZlYzQocGlja0lkLCBmX2lkLnh5eik7XG59Il0pO3IubWVzaFNoYWRlcj17dmVydGV4OmksZnJhZ21lbnQ6YSxhdHRyaWJ1dGVzOlt7bmFtZToicG9zaXRpb24iLHR5cGU6InZlYzQifSx7bmFtZToiY29sb3IiLHR5cGU6InZlYzQifSx7bmFtZToidXYiLHR5cGU6InZlYzIifSx7bmFtZToidmVjdG9yIix0eXBlOiJ2ZWMzIn1dfSxyLnBpY2tTaGFkZXI9e3ZlcnRleDpvLGZyYWdtZW50OnMsYXR0cmlidXRlczpbe25hbWU6InBvc2l0aW9uIix0eXBlOiJ2ZWM0In0se25hbWU6ImlkIix0eXBlOiJ2ZWM0In0se25hbWU6InZlY3RvciIsdHlwZToidmVjMyJ9XX19LHtnbHNsaWZ5OjIzMX1dLDgyOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPXswOiJOT05FIiwxOiJPTkUiLDI6IkxJTkVfTE9PUCIsMzoiTElORV9TVFJJUCIsNDoiVFJJQU5HTEVTIiw1OiJUUklBTkdMRV9TVFJJUCIsNjoiVFJJQU5HTEVfRkFOIiwyNTY6IkRFUFRIX0JVRkZFUl9CSVQiLDUxMjoiTkVWRVIiLDUxMzoiTEVTUyIsNTE0OiJFUVVBTCIsNTE1OiJMRVFVQUwiLDUxNjoiR1JFQVRFUiIsNTE3OiJOT1RFUVVBTCIsNTE4OiJHRVFVQUwiLDUxOToiQUxXQVlTIiw3Njg6IlNSQ19DT0xPUiIsNzY5OiJPTkVfTUlOVVNfU1JDX0NPTE9SIiw3NzA6IlNSQ19BTFBIQSIsNzcxOiJPTkVfTUlOVVNfU1JDX0FMUEhBIiw3NzI6IkRTVF9BTFBIQSIsNzczOiJPTkVfTUlOVVNfRFNUX0FMUEhBIiw3NzQ6IkRTVF9DT0xPUiIsNzc1OiJPTkVfTUlOVVNfRFNUX0NPTE9SIiw3NzY6IlNSQ19BTFBIQV9TQVRVUkFURSIsMTAyNDoiU1RFTkNJTF9CVUZGRVJfQklUIiwxMDI4OiJGUk9OVCIsMTAyOToiQkFDSyIsMTAzMjoiRlJPTlRfQU5EX0JBQ0siLDEyODA6IklOVkFMSURfRU5VTSIsMTI4MToiSU5WQUxJRF9WQUxVRSIsMTI4MjoiSU5WQUxJRF9PUEVSQVRJT04iLDEyODU6Ik9VVF9PRl9NRU1PUlkiLDEyODY6IklOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIiwyMzA0OiJDVyIsMjMwNToiQ0NXIiwyODQ5OiJMSU5FX1dJRFRIIiwyODg0OiJDVUxMX0ZBQ0UiLDI4ODU6IkNVTExfRkFDRV9NT0RFIiwyODg2OiJGUk9OVF9GQUNFIiwyOTI4OiJERVBUSF9SQU5HRSIsMjkyOToiREVQVEhfVEVTVCIsMjkzMDoiREVQVEhfV1JJVEVNQVNLIiwyOTMxOiJERVBUSF9DTEVBUl9WQUxVRSIsMjkzMjoiREVQVEhfRlVOQyIsMjk2MDoiU1RFTkNJTF9URVNUIiwyOTYxOiJTVEVOQ0lMX0NMRUFSX1ZBTFVFIiwyOTYyOiJTVEVOQ0lMX0ZVTkMiLDI5NjM6IlNURU5DSUxfVkFMVUVfTUFTSyIsMjk2NDoiU1RFTkNJTF9GQUlMIiwyOTY1OiJTVEVOQ0lMX1BBU1NfREVQVEhfRkFJTCIsMjk2NjoiU1RFTkNJTF9QQVNTX0RFUFRIX1BBU1MiLDI5Njc6IlNURU5DSUxfUkVGIiwyOTY4OiJTVEVOQ0lMX1dSSVRFTUFTSyIsMjk3ODoiVklFV1BPUlQiLDMwMjQ6IkRJVEhFUiIsMzA0MjoiQkxFTkQiLDMwODg6IlNDSVNTT1JfQk9YIiwzMDg5OiJTQ0lTU09SX1RFU1QiLDMxMDY6IkNPTE9SX0NMRUFSX1ZBTFVFIiwzMTA3OiJDT0xPUl9XUklURU1BU0siLDMzMTc6IlVOUEFDS19BTElHTk1FTlQiLDMzMzM6IlBBQ0tfQUxJR05NRU5UIiwzMzc5OiJNQVhfVEVYVFVSRV9TSVpFIiwzMzg2OiJNQVhfVklFV1BPUlRfRElNUyIsMzQwODoiU1VCUElYRUxfQklUUyIsMzQxMDoiUkVEX0JJVFMiLDM0MTE6IkdSRUVOX0JJVFMiLDM0MTI6IkJMVUVfQklUUyIsMzQxMzoiQUxQSEFfQklUUyIsMzQxNDoiREVQVEhfQklUUyIsMzQxNToiU1RFTkNJTF9CSVRTIiwzNTUzOiJURVhUVVJFXzJEIiw0MzUyOiJET05UX0NBUkUiLDQzNTM6IkZBU1RFU1QiLDQzNTQ6Ik5JQ0VTVCIsNTEyMDoiQllURSIsNTEyMToiVU5TSUdORURfQllURSIsNTEyMjoiU0hPUlQiLDUxMjM6IlVOU0lHTkVEX1NIT1JUIiw1MTI0OiJJTlQiLDUxMjU6IlVOU0lHTkVEX0lOVCIsNTEyNjoiRkxPQVQiLDUzODY6IklOVkVSVCIsNTg5MDoiVEVYVFVSRSIsNjQwMToiU1RFTkNJTF9JTkRFWCIsNjQwMjoiREVQVEhfQ09NUE9ORU5UIiw2NDA2OiJBTFBIQSIsNjQwNzoiUkdCIiw2NDA4OiJSR0JBIiw2NDA5OiJMVU1JTkFOQ0UiLDY0MTA6IkxVTUlOQU5DRV9BTFBIQSIsNzY4MDoiS0VFUCIsNzY4MToiUkVQTEFDRSIsNzY4MjoiSU5DUiIsNzY4MzoiREVDUiIsNzkzNjoiVkVORE9SIiw3OTM3OiJSRU5ERVJFUiIsNzkzODoiVkVSU0lPTiIsOTcyODoiTkVBUkVTVCIsOTcyOToiTElORUFSIiw5OTg0OiJORUFSRVNUX01JUE1BUF9ORUFSRVNUIiw5OTg1OiJMSU5FQVJfTUlQTUFQX05FQVJFU1QiLDk5ODY6Ik5FQVJFU1RfTUlQTUFQX0xJTkVBUiIsOTk4NzoiTElORUFSX01JUE1BUF9MSU5FQVIiLDEwMjQwOiJURVhUVVJFX01BR19GSUxURVIiLDEwMjQxOiJURVhUVVJFX01JTl9GSUxURVIiLDEwMjQyOiJURVhUVVJFX1dSQVBfUyIsMTAyNDM6IlRFWFRVUkVfV1JBUF9UIiwxMDQ5NzoiUkVQRUFUIiwxMDc1MjoiUE9MWUdPTl9PRkZTRVRfVU5JVFMiLDE2Mzg0OiJDT0xPUl9CVUZGRVJfQklUIiwzMjc2OToiQ09OU1RBTlRfQ09MT1IiLDMyNzcwOiJPTkVfTUlOVVNfQ09OU1RBTlRfQ09MT1IiLDMyNzcxOiJDT05TVEFOVF9BTFBIQSIsMzI3NzI6Ik9ORV9NSU5VU19DT05TVEFOVF9BTFBIQSIsMzI3NzM6IkJMRU5EX0NPTE9SIiwzMjc3NDoiRlVOQ19BREQiLDMyNzc3OiJCTEVORF9FUVVBVElPTl9SR0IiLDMyNzc4OiJGVU5DX1NVQlRSQUNUIiwzMjc3OToiRlVOQ19SRVZFUlNFX1NVQlRSQUNUIiwzMjgxOToiVU5TSUdORURfU0hPUlRfNF80XzRfNCIsMzI4MjA6IlVOU0lHTkVEX1NIT1JUXzVfNV81XzEiLDMyODIzOiJQT0xZR09OX09GRlNFVF9GSUxMIiwzMjgyNDoiUE9MWUdPTl9PRkZTRVRfRkFDVE9SIiwzMjg1NDoiUkdCQTQiLDMyODU1OiJSR0I1X0ExIiwzMjg3MzoiVEVYVFVSRV9CSU5ESU5HXzJEIiwzMjkyNjoiU0FNUExFX0FMUEhBX1RPX0NPVkVSQUdFIiwzMjkyODoiU0FNUExFX0NPVkVSQUdFIiwzMjkzNjoiU0FNUExFX0JVRkZFUlMiLDMyOTM3OiJTQU1QTEVTIiwzMjkzODoiU0FNUExFX0NPVkVSQUdFX1ZBTFVFIiwzMjkzOToiU0FNUExFX0NPVkVSQUdFX0lOVkVSVCIsMzI5Njg6IkJMRU5EX0RTVF9SR0IiLDMyOTY5OiJCTEVORF9TUkNfUkdCIiwzMjk3MDoiQkxFTkRfRFNUX0FMUEhBIiwzMjk3MToiQkxFTkRfU1JDX0FMUEhBIiwzMzA3MToiQ0xBTVBfVE9fRURHRSIsMzMxNzA6IkdFTkVSQVRFX01JUE1BUF9ISU5UIiwzMzE4OToiREVQVEhfQ09NUE9ORU5UMTYiLDMzMzA2OiJERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQiLDMzNjM1OiJVTlNJR05FRF9TSE9SVF81XzZfNSIsMzM2NDg6Ik1JUlJPUkVEX1JFUEVBVCIsMzM5MDE6IkFMSUFTRURfUE9JTlRfU0laRV9SQU5HRSIsMzM5MDI6IkFMSUFTRURfTElORV9XSURUSF9SQU5HRSIsMzM5ODQ6IlRFWFRVUkUwIiwzMzk4NToiVEVYVFVSRTEiLDMzOTg2OiJURVhUVVJFMiIsMzM5ODc6IlRFWFRVUkUzIiwzMzk4ODoiVEVYVFVSRTQiLDMzOTg5OiJURVhUVVJFNSIsMzM5OTA6IlRFWFRVUkU2IiwzMzk5MToiVEVYVFVSRTciLDMzOTkyOiJURVhUVVJFOCIsMzM5OTM6IlRFWFRVUkU5IiwzMzk5NDoiVEVYVFVSRTEwIiwzMzk5NToiVEVYVFVSRTExIiwzMzk5NjoiVEVYVFVSRTEyIiwzMzk5NzoiVEVYVFVSRTEzIiwzMzk5ODoiVEVYVFVSRTE0IiwzMzk5OToiVEVYVFVSRTE1IiwzNGUzOiJURVhUVVJFMTYiLDM0MDAxOiJURVhUVVJFMTciLDM0MDAyOiJURVhUVVJFMTgiLDM0MDAzOiJURVhUVVJFMTkiLDM0MDA0OiJURVhUVVJFMjAiLDM0MDA1OiJURVhUVVJFMjEiLDM0MDA2OiJURVhUVVJFMjIiLDM0MDA3OiJURVhUVVJFMjMiLDM0MDA4OiJURVhUVVJFMjQiLDM0MDA5OiJURVhUVVJFMjUiLDM0MDEwOiJURVhUVVJFMjYiLDM0MDExOiJURVhUVVJFMjciLDM0MDEyOiJURVhUVVJFMjgiLDM0MDEzOiJURVhUVVJFMjkiLDM0MDE0OiJURVhUVVJFMzAiLDM0MDE1OiJURVhUVVJFMzEiLDM0MDE2OiJBQ1RJVkVfVEVYVFVSRSIsMzQwMjQ6Ik1BWF9SRU5ERVJCVUZGRVJfU0laRSIsMzQwNDE6IkRFUFRIX1NURU5DSUwiLDM0MDU1OiJJTkNSX1dSQVAiLDM0MDU2OiJERUNSX1dSQVAiLDM0MDY3OiJURVhUVVJFX0NVQkVfTUFQIiwzNDA2ODoiVEVYVFVSRV9CSU5ESU5HX0NVQkVfTUFQIiwzNDA2OToiVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9YIiwzNDA3MDoiVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9YIiwzNDA3MToiVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9ZIiwzNDA3MjoiVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9ZIiwzNDA3MzoiVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9aIiwzNDA3NDoiVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9aIiwzNDA3NjoiTUFYX0NVQkVfTUFQX1RFWFRVUkVfU0laRSIsMzQzMzg6IlZFUlRFWF9BVFRSSUJfQVJSQVlfRU5BQkxFRCIsMzQzMzk6IlZFUlRFWF9BVFRSSUJfQVJSQVlfU0laRSIsMzQzNDA6IlZFUlRFWF9BVFRSSUJfQVJSQVlfU1RSSURFIiwzNDM0MToiVkVSVEVYX0FUVFJJQl9BUlJBWV9UWVBFIiwzNDM0MjoiQ1VSUkVOVF9WRVJURVhfQVRUUklCIiwzNDM3MzoiVkVSVEVYX0FUVFJJQl9BUlJBWV9QT0lOVEVSIiwzNDQ2NjoiTlVNX0NPTVBSRVNTRURfVEVYVFVSRV9GT1JNQVRTIiwzNDQ2NzoiQ09NUFJFU1NFRF9URVhUVVJFX0ZPUk1BVFMiLDM0NjYwOiJCVUZGRVJfU0laRSIsMzQ2NjE6IkJVRkZFUl9VU0FHRSIsMzQ4MTY6IlNURU5DSUxfQkFDS19GVU5DIiwzNDgxNzoiU1RFTkNJTF9CQUNLX0ZBSUwiLDM0ODE4OiJTVEVOQ0lMX0JBQ0tfUEFTU19ERVBUSF9GQUlMIiwzNDgxOToiU1RFTkNJTF9CQUNLX1BBU1NfREVQVEhfUEFTUyIsMzQ4Nzc6IkJMRU5EX0VRVUFUSU9OX0FMUEhBIiwzNDkyMToiTUFYX1ZFUlRFWF9BVFRSSUJTIiwzNDkyMjoiVkVSVEVYX0FUVFJJQl9BUlJBWV9OT1JNQUxJWkVEIiwzNDkzMDoiTUFYX1RFWFRVUkVfSU1BR0VfVU5JVFMiLDM0OTYyOiJBUlJBWV9CVUZGRVIiLDM0OTYzOiJFTEVNRU5UX0FSUkFZX0JVRkZFUiIsMzQ5NjQ6IkFSUkFZX0JVRkZFUl9CSU5ESU5HIiwzNDk2NToiRUxFTUVOVF9BUlJBWV9CVUZGRVJfQklORElORyIsMzQ5NzU6IlZFUlRFWF9BVFRSSUJfQVJSQVlfQlVGRkVSX0JJTkRJTkciLDM1MDQwOiJTVFJFQU1fRFJBVyIsMzUwNDQ6IlNUQVRJQ19EUkFXIiwzNTA0ODoiRFlOQU1JQ19EUkFXIiwzNTYzMjoiRlJBR01FTlRfU0hBREVSIiwzNTYzMzoiVkVSVEVYX1NIQURFUiIsMzU2NjA6Ik1BWF9WRVJURVhfVEVYVFVSRV9JTUFHRV9VTklUUyIsMzU2NjE6Ik1BWF9DT01CSU5FRF9URVhUVVJFX0lNQUdFX1VOSVRTIiwzNTY2MzoiU0hBREVSX1RZUEUiLDM1NjY0OiJGTE9BVF9WRUMyIiwzNTY2NToiRkxPQVRfVkVDMyIsMzU2NjY6IkZMT0FUX1ZFQzQiLDM1NjY3OiJJTlRfVkVDMiIsMzU2Njg6IklOVF9WRUMzIiwzNTY2OToiSU5UX1ZFQzQiLDM1NjcwOiJCT09MIiwzNTY3MToiQk9PTF9WRUMyIiwzNTY3MjoiQk9PTF9WRUMzIiwzNTY3MzoiQk9PTF9WRUM0IiwzNTY3NDoiRkxPQVRfTUFUMiIsMzU2NzU6IkZMT0FUX01BVDMiLDM1Njc2OiJGTE9BVF9NQVQ0IiwzNTY3ODoiU0FNUExFUl8yRCIsMzU2ODA6IlNBTVBMRVJfQ1VCRSIsMzU3MTI6IkRFTEVURV9TVEFUVVMiLDM1NzEzOiJDT01QSUxFX1NUQVRVUyIsMzU3MTQ6IkxJTktfU1RBVFVTIiwzNTcxNToiVkFMSURBVEVfU1RBVFVTIiwzNTcxNjoiSU5GT19MT0dfTEVOR1RIIiwzNTcxNzoiQVRUQUNIRURfU0hBREVSUyIsMzU3MTg6IkFDVElWRV9VTklGT1JNUyIsMzU3MTk6IkFDVElWRV9VTklGT1JNX01BWF9MRU5HVEgiLDM1NzIwOiJTSEFERVJfU09VUkNFX0xFTkdUSCIsMzU3MjE6IkFDVElWRV9BVFRSSUJVVEVTIiwzNTcyMjoiQUNUSVZFX0FUVFJJQlVURV9NQVhfTEVOR1RIIiwzNTcyNDoiU0hBRElOR19MQU5HVUFHRV9WRVJTSU9OIiwzNTcyNToiQ1VSUkVOVF9QUk9HUkFNIiwzNjAwMzoiU1RFTkNJTF9CQUNLX1JFRiIsMzYwMDQ6IlNURU5DSUxfQkFDS19WQUxVRV9NQVNLIiwzNjAwNToiU1RFTkNJTF9CQUNLX1dSSVRFTUFTSyIsMzYwMDY6IkZSQU1FQlVGRkVSX0JJTkRJTkciLDM2MDA3OiJSRU5ERVJCVUZGRVJfQklORElORyIsMzYwNDg6IkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZUEUiLDM2MDQ5OiJGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9OQU1FIiwzNjA1MDoiRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0xFVkVMIiwzNjA1MToiRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0NVQkVfTUFQX0ZBQ0UiLDM2MDUzOiJGUkFNRUJVRkZFUl9DT01QTEVURSIsMzYwNTQ6IkZSQU1FQlVGRkVSX0lOQ09NUExFVEVfQVRUQUNITUVOVCIsMzYwNTU6IkZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTUlTU0lOR19BVFRBQ0hNRU5UIiwzNjA1NzoiRlJBTUVCVUZGRVJfSU5DT01QTEVURV9ESU1FTlNJT05TIiwzNjA2MToiRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQiLDM2MDY0OiJDT0xPUl9BVFRBQ0hNRU5UMCIsMzYwOTY6IkRFUFRIX0FUVEFDSE1FTlQiLDM2MTI4OiJTVEVOQ0lMX0FUVEFDSE1FTlQiLDM2MTYwOiJGUkFNRUJVRkZFUiIsMzYxNjE6IlJFTkRFUkJVRkZFUiIsMzYxNjI6IlJFTkRFUkJVRkZFUl9XSURUSCIsMzYxNjM6IlJFTkRFUkJVRkZFUl9IRUlHSFQiLDM2MTY0OiJSRU5ERVJCVUZGRVJfSU5URVJOQUxfRk9STUFUIiwzNjE2ODoiU1RFTkNJTF9JTkRFWDgiLDM2MTc2OiJSRU5ERVJCVUZGRVJfUkVEX1NJWkUiLDM2MTc3OiJSRU5ERVJCVUZGRVJfR1JFRU5fU0laRSIsMzYxNzg6IlJFTkRFUkJVRkZFUl9CTFVFX1NJWkUiLDM2MTc5OiJSRU5ERVJCVUZGRVJfQUxQSEFfU0laRSIsMzYxODA6IlJFTkRFUkJVRkZFUl9ERVBUSF9TSVpFIiwzNjE4MToiUkVOREVSQlVGRkVSX1NURU5DSUxfU0laRSIsMzYxOTQ6IlJHQjU2NSIsMzYzMzY6IkxPV19GTE9BVCIsMzYzMzc6Ik1FRElVTV9GTE9BVCIsMzYzMzg6IkhJR0hfRkxPQVQiLDM2MzM5OiJMT1dfSU5UIiwzNjM0MDoiTUVESVVNX0lOVCIsMzYzNDE6IkhJR0hfSU5UIiwzNjM0NjoiU0hBREVSX0NPTVBJTEVSIiwzNjM0NzoiTUFYX1ZFUlRFWF9VTklGT1JNX1ZFQ1RPUlMiLDM2MzQ4OiJNQVhfVkFSWUlOR19WRUNUT1JTIiwzNjM0OToiTUFYX0ZSQUdNRU5UX1VOSUZPUk1fVkVDVE9SUyIsMzc0NDA6IlVOUEFDS19GTElQX1lfV0VCR0wiLDM3NDQxOiJVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wiLDM3NDQyOiJDT05URVhUX0xPU1RfV0VCR0wiLDM3NDQzOiJVTlBBQ0tfQ09MT1JTUEFDRV9DT05WRVJTSU9OX1dFQkdMIiwzNzQ0NDoiQlJPV1NFUl9ERUZBVUxUX1dFQkdMIn19LHt9XSw4MzpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoIi4vMS4wL251bWJlcnMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG5bdF19fSx7Ii4vMS4wL251bWJlcnMiOjgyfV0sODQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQuZ2wscj1uKGUpLG89aShlLFt7YnVmZmVyOnIsdHlwZTplLkZMT0FULHNpemU6MyxvZmZzZXQ6MCxzdHJpZGU6NDB9LHtidWZmZXI6cix0eXBlOmUuRkxPQVQsc2l6ZTo0LG9mZnNldDoxMixzdHJpZGU6NDB9LHtidWZmZXI6cix0eXBlOmUuRkxPQVQsc2l6ZTozLG9mZnNldDoyOCxzdHJpZGU6NDB9XSksbD1hKGUpO2wuYXR0cmlidXRlcy5wb3NpdGlvbi5sb2NhdGlvbj0wLGwuYXR0cmlidXRlcy5jb2xvci5sb2NhdGlvbj0xLGwuYXR0cmlidXRlcy5vZmZzZXQubG9jYXRpb249Mjt2YXIgYz1uZXcgcyhlLHIsbyxsKTtyZXR1cm4gYy51cGRhdGUodCksY307dmFyIG49dCgiZ2wtYnVmZmVyIiksaT10KCJnbC12YW8iKSxhPXQoIi4vc2hhZGVycy9pbmRleCIpLG89WzEsMCwwLDAsMCwxLDAsMCwwLDAsMSwwLDAsMCwwLDFdO2Z1bmN0aW9uIHModCxlLHIsbil7dGhpcy5nbD10LHRoaXMuc2hhZGVyPW4sdGhpcy5idWZmZXI9ZSx0aGlzLnZhbz1yLHRoaXMucGl4ZWxSYXRpbz0xLHRoaXMuYm91bmRzPVtbMS8wLDEvMCwxLzBdLFstMS8wLC0xLzAsLTEvMF1dLHRoaXMuY2xpcEJvdW5kcz1bWy0xLzAsLTEvMCwtMS8wXSxbMS8wLDEvMCwxLzBdXSx0aGlzLmxpbmVXaWR0aD1bMSwxLDFdLHRoaXMuY2FwU2l6ZT1bMTAsMTAsMTBdLHRoaXMubGluZUNvdW50PVswLDAsMF0sdGhpcy5saW5lT2Zmc2V0PVswLDAsMF0sdGhpcy5vcGFjaXR5PTEsdGhpcy5oYXNBbHBoYT0hMX12YXIgbD1zLnByb3RvdHlwZTtmdW5jdGlvbiBjKHQsZSl7Zm9yKHZhciByPTA7cjwzOysrcil0WzBdW3JdPU1hdGgubWluKHRbMF1bcl0sZVtyXSksdFsxXVtyXT1NYXRoLm1heCh0WzFdW3JdLGVbcl0pfWwuaXNPcGFxdWU9ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5oYXNBbHBoYX0sbC5pc1RyYW5zcGFyZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGFzQWxwaGF9LGwuZHJhd1RyYW5zcGFyZW50PWwuZHJhdz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmdsLHI9dGhpcy5zaGFkZXIudW5pZm9ybXM7dGhpcy5zaGFkZXIuYmluZCgpO3ZhciBuPXIudmlldz10LnZpZXd8fG8saT1yLnByb2plY3Rpb249dC5wcm9qZWN0aW9ufHxvO3IubW9kZWw9dC5tb2RlbHx8byxyLmNsaXBCb3VuZHM9dGhpcy5jbGlwQm91bmRzLHIub3BhY2l0eT10aGlzLm9wYWNpdHk7dmFyIGE9blsxMl0scz1uWzEzXSxsPW5bMTRdLGM9blsxNV0sdT0odC5fb3J0aG98fCExPzI6MSkqdGhpcy5waXhlbFJhdGlvKihpWzNdKmEraVs3XSpzK2lbMTFdKmwraVsxNV0qYykvZS5kcmF3aW5nQnVmZmVySGVpZ2h0O3RoaXMudmFvLmJpbmQoKTtmb3IodmFyIGY9MDtmPDM7KytmKWUubGluZVdpZHRoKHRoaXMubGluZVdpZHRoW2ZdKnRoaXMucGl4ZWxSYXRpbyksci5jYXBTaXplPXRoaXMuY2FwU2l6ZVtmXSp1LHRoaXMubGluZUNvdW50W2ZdJiZlLmRyYXdBcnJheXMoZS5MSU5FUyx0aGlzLmxpbmVPZmZzZXRbZl0sdGhpcy5saW5lQ291bnRbZl0pO3RoaXMudmFvLnVuYmluZCgpfTt2YXIgdT1mdW5jdGlvbigpe2Zvcih2YXIgdD1uZXcgQXJyYXkoMyksZT0wO2U8MzsrK2Upe2Zvcih2YXIgcj1bXSxuPTE7bjw9MjsrK24pZm9yKHZhciBpPS0xO2k8PTE7aSs9Mil7dmFyIGE9WzAsMCwwXTthWyhuK2UpJTNdPWksci5wdXNoKGEpfXRbZV09cn1yZXR1cm4gdH0oKTtmdW5jdGlvbiBmKHQsZSxyLG4pe2Zvcih2YXIgaT11W25dLGE9MDthPGkubGVuZ3RoOysrYSl7dmFyIG89aVthXTt0LnB1c2goZVswXSxlWzFdLGVbMl0sclswXSxyWzFdLHJbMl0sclszXSxvWzBdLG9bMV0sb1syXSl9cmV0dXJuIGkubGVuZ3RofWwudXBkYXRlPWZ1bmN0aW9uKHQpeyJsaW5lV2lkdGgiaW4odD10fHx7fSkmJih0aGlzLmxpbmVXaWR0aD10LmxpbmVXaWR0aCxBcnJheS5pc0FycmF5KHRoaXMubGluZVdpZHRoKXx8KHRoaXMubGluZVdpZHRoPVt0aGlzLmxpbmVXaWR0aCx0aGlzLmxpbmVXaWR0aCx0aGlzLmxpbmVXaWR0aF0pKSwiY2FwU2l6ZSJpbiB0JiYodGhpcy5jYXBTaXplPXQuY2FwU2l6ZSxBcnJheS5pc0FycmF5KHRoaXMuY2FwU2l6ZSl8fCh0aGlzLmNhcFNpemU9W3RoaXMuY2FwU2l6ZSx0aGlzLmNhcFNpemUsdGhpcy5jYXBTaXplXSkpLHRoaXMuaGFzQWxwaGE9ITEsIm9wYWNpdHkiaW4gdCYmKHRoaXMub3BhY2l0eT0rdC5vcGFjaXR5LHRoaXMub3BhY2l0eTwxJiYodGhpcy5oYXNBbHBoYT0hMCkpO3ZhciBlPXQuY29sb3J8fFtbMCwwLDBdLFswLDAsMF0sWzAsMCwwXV0scj10LnBvc2l0aW9uLG49dC5lcnJvcjtpZihBcnJheS5pc0FycmF5KGVbMF0pfHwoZT1bZSxlLGVdKSxyJiZuKXt2YXIgaT1bXSxhPXIubGVuZ3RoLG89MDt0aGlzLmJvdW5kcz1bWzEvMCwxLzAsMS8wXSxbLTEvMCwtMS8wLC0xLzBdXSx0aGlzLmxpbmVDb3VudD1bMCwwLDBdO2Zvcih2YXIgcz0wO3M8MzsrK3Mpe3RoaXMubGluZU9mZnNldFtzXT1vO3Q6Zm9yKHZhciBsPTA7bDxhOysrbCl7Zm9yKHZhciB1PXJbbF0saD0wO2g8MzsrK2gpaWYoaXNOYU4odVtoXSl8fCFpc0Zpbml0ZSh1W2hdKSljb250aW51ZSB0O3ZhciBwPW5bbF0sZD1lW3NdO2lmKEFycmF5LmlzQXJyYXkoZFswXSkmJihkPWVbbF0pLDM9PT1kLmxlbmd0aD9kPVtkWzBdLGRbMV0sZFsyXSwxXTo0PT09ZC5sZW5ndGgmJihkPVtkWzBdLGRbMV0sZFsyXSxkWzNdXSwhdGhpcy5oYXNBbHBoYSYmZFszXTwxJiYodGhpcy5oYXNBbHBoYT0hMCkpLCFpc05hTihwWzBdW3NdKSYmIWlzTmFOKHBbMV1bc10pKXt2YXIgbTtpZihwWzBdW3NdPDApKG09dS5zbGljZSgpKVtzXSs9cFswXVtzXSxpLnB1c2godVswXSx1WzFdLHVbMl0sZFswXSxkWzFdLGRbMl0sZFszXSwwLDAsMCxtWzBdLG1bMV0sbVsyXSxkWzBdLGRbMV0sZFsyXSxkWzNdLDAsMCwwKSxjKHRoaXMuYm91bmRzLG0pLG8rPTIrZihpLG0sZCxzKTtpZihwWzFdW3NdPjApKG09dS5zbGljZSgpKVtzXSs9cFsxXVtzXSxpLnB1c2godVswXSx1WzFdLHVbMl0sZFswXSxkWzFdLGRbMl0sZFszXSwwLDAsMCxtWzBdLG1bMV0sbVsyXSxkWzBdLGRbMV0sZFsyXSxkWzNdLDAsMCwwKSxjKHRoaXMuYm91bmRzLG0pLG8rPTIrZihpLG0sZCxzKX19dGhpcy5saW5lQ291bnRbc109by10aGlzLmxpbmVPZmZzZXRbc119dGhpcy5idWZmZXIudXBkYXRlKGkpfX0sbC5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5zaGFkZXIuZGlzcG9zZSgpLHRoaXMuYnVmZmVyLmRpc3Bvc2UoKSx0aGlzLnZhby5kaXNwb3NlKCl9fSx7Ii4vc2hhZGVycy9pbmRleCI6ODUsImdsLWJ1ZmZlciI6NzgsImdsLXZhbyI6MTUwfV0sODU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZ2xzbGlmeSIpLGk9dCgiZ2wtc2hhZGVyIiksYT1uKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYXR0cmlidXRlIHZlYzMgcG9zaXRpb24sIG9mZnNldDtcbmF0dHJpYnV0ZSB2ZWM0IGNvbG9yO1xudW5pZm9ybSBtYXQ0IG1vZGVsLCB2aWV3LCBwcm9qZWN0aW9uO1xudW5pZm9ybSBmbG9hdCBjYXBTaXplO1xudmFyeWluZyB2ZWM0IGZyYWdDb2xvcjtcbnZhcnlpbmcgdmVjMyBmcmFnUG9zaXRpb247XG5cbnZvaWQgbWFpbigpIHtcbiAgdmVjNCB3b3JsZFBvc2l0aW9uICA9IG1vZGVsICogdmVjNChwb3NpdGlvbiwgMS4wKTtcbiAgd29ybGRQb3NpdGlvbiAgICAgICA9ICh3b3JsZFBvc2l0aW9uIC8gd29ybGRQb3NpdGlvbi53KSArIHZlYzQoY2FwU2l6ZSAqIG9mZnNldCwgMC4wKTtcbiAgZ2xfUG9zaXRpb24gICAgICAgICA9IHByb2plY3Rpb24gKiB2aWV3ICogd29ybGRQb3NpdGlvbjtcbiAgZnJhZ0NvbG9yICAgICAgICAgICA9IGNvbG9yO1xuICBmcmFnUG9zaXRpb24gICAgICAgID0gcG9zaXRpb247XG59Il0pLG89bihbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmJvb2wgb3V0T2ZSYW5nZShmbG9hdCBhLCBmbG9hdCBiLCBmbG9hdCBwKSB7XG4gIHJldHVybiAoKHAgPiBtYXgoYSwgYikpIHx8IFxuICAgICAgICAgIChwIDwgbWluKGEsIGIpKSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWMyIGEsIHZlYzIgYiwgdmVjMiBwKSB7XG4gIHJldHVybiAob3V0T2ZSYW5nZShhLngsIGIueCwgcC54KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS55LCBiLnksIHAueSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMyBhLCB2ZWMzIGIsIHZlYzMgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnosIGIueiwgcC56KSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWM0IGEsIHZlYzQgYiwgdmVjNCBwKSB7XG4gIHJldHVybiBvdXRPZlJhbmdlKGEueHl6LCBiLnh5eiwgcC54eXopO1xufVxuXG51bmlmb3JtIHZlYzMgY2xpcEJvdW5kc1syXTtcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcbnZhcnlpbmcgdmVjMyBmcmFnUG9zaXRpb247XG52YXJ5aW5nIHZlYzQgZnJhZ0NvbG9yO1xuXG52b2lkIG1haW4oKSB7XG4gIGlmIChcbiAgICBvdXRPZlJhbmdlKGNsaXBCb3VuZHNbMF0sIGNsaXBCb3VuZHNbMV0sIGZyYWdQb3NpdGlvbikgfHxcbiAgICBmcmFnQ29sb3IuYSAqIG9wYWNpdHkgPT0gMC5cbiAgKSBkaXNjYXJkO1xuXG4gIGdsX0ZyYWdDb2xvciA9IG9wYWNpdHkgKiBmcmFnQ29sb3I7XG59Il0pO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gaSh0LGEsbyxudWxsLFt7bmFtZToicG9zaXRpb24iLHR5cGU6InZlYzMifSx7bmFtZToiY29sb3IiLHR5cGU6InZlYzQifSx7bmFtZToib2Zmc2V0Iix0eXBlOiJ2ZWMzIn1dKX19LHsiZ2wtc2hhZGVyIjoxMzIsZ2xzbGlmeToyMzF9XSw4NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJnbC10ZXh0dXJlMmQiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbil7aXx8KGk9dC5GUkFNRUJVRkZFUl9VTlNVUFBPUlRFRCxhPXQuRlJBTUVCVUZGRVJfSU5DT01QTEVURV9BVFRBQ0hNRU5ULG89dC5GUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJTUVOU0lPTlMscz10LkZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTUlTU0lOR19BVFRBQ0hNRU5UKTt2YXIgYz10LmdldEV4dGVuc2lvbigiV0VCR0xfZHJhd19idWZmZXJzIik7IWwmJmMmJmZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5nZXRQYXJhbWV0ZXIoZS5NQVhfQ09MT1JfQVRUQUNITUVOVFNfV0VCR0wpO2w9bmV3IEFycmF5KHIrMSk7Zm9yKHZhciBuPTA7bjw9cjsrK24pe2Zvcih2YXIgaT1uZXcgQXJyYXkociksYT0wO2E8bjsrK2EpaVthXT10LkNPTE9SX0FUVEFDSE1FTlQwK2E7Zm9yKGE9bjthPHI7KythKWlbYV09dC5OT05FO2xbbl09aX19KHQsYyk7QXJyYXkuaXNBcnJheShlKSYmKG49cixyPTB8ZVsxXSxlPTB8ZVswXSk7aWYoIm51bWJlciIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcigiZ2wtZmJvOiBNaXNzaW5nIHNoYXBlIHBhcmFtZXRlciIpO3ZhciB1PXQuZ2V0UGFyYW1ldGVyKHQuTUFYX1JFTkRFUkJVRkZFUl9TSVpFKTtpZihlPDB8fGU+dXx8cjwwfHxyPnUpdGhyb3cgbmV3IEVycm9yKCJnbC1mYm86IFBhcmFtZXRlcnMgYXJlIHRvbyBsYXJnZSBmb3IgRkJPIik7dmFyIGY9MTtpZigiY29sb3IiaW4obj1ufHx7fSkpe2lmKChmPU1hdGgubWF4KDB8bi5jb2xvciwwKSk8MCl0aHJvdyBuZXcgRXJyb3IoImdsLWZibzogTXVzdCBzcGVjaWZ5IGEgbm9ubmVnYXRpdmUgbnVtYmVyIG9mIGNvbG9ycyIpO2lmKGY+MSl7aWYoIWMpdGhyb3cgbmV3IEVycm9yKCJnbC1mYm86IE11bHRpcGxlIGRyYXcgYnVmZmVyIGV4dGVuc2lvbiBub3Qgc3VwcG9ydGVkIik7aWYoZj50LmdldFBhcmFtZXRlcihjLk1BWF9DT0xPUl9BVFRBQ0hNRU5UU19XRUJHTCkpdGhyb3cgbmV3IEVycm9yKCJnbC1mYm86IENvbnRleHQgZG9lcyBub3Qgc3VwcG9ydCAiK2YrIiBkcmF3IGJ1ZmZlcnMiKX19dmFyIGg9dC5VTlNJR05FRF9CWVRFLHA9dC5nZXRFeHRlbnNpb24oIk9FU190ZXh0dXJlX2Zsb2F0Iik7aWYobi5mbG9hdCYmZj4wKXtpZighcCl0aHJvdyBuZXcgRXJyb3IoImdsLWZibzogQ29udGV4dCBkb2VzIG5vdCBzdXBwb3J0IGZsb2F0aW5nIHBvaW50IHRleHR1cmVzIik7aD10LkZMT0FUfWVsc2Ugbi5wcmVmZXJGbG9hdCYmZj4wJiZwJiYoaD10LkZMT0FUKTt2YXIgbT0hMDsiZGVwdGgiaW4gbiYmKG09ISFuLmRlcHRoKTt2YXIgZz0hMTsic3RlbmNpbCJpbiBuJiYoZz0hIW4uc3RlbmNpbCk7cmV0dXJuIG5ldyBkKHQsZSxyLGgsZixtLGcsYyl9O3ZhciBpLGEsbyxzLGw9bnVsbDtmdW5jdGlvbiBjKHQpe3JldHVyblt0LmdldFBhcmFtZXRlcih0LkZSQU1FQlVGRkVSX0JJTkRJTkcpLHQuZ2V0UGFyYW1ldGVyKHQuUkVOREVSQlVGRkVSX0JJTkRJTkcpLHQuZ2V0UGFyYW1ldGVyKHQuVEVYVFVSRV9CSU5ESU5HXzJEKV19ZnVuY3Rpb24gdSh0LGUpe3QuYmluZEZyYW1lYnVmZmVyKHQuRlJBTUVCVUZGRVIsZVswXSksdC5iaW5kUmVuZGVyYnVmZmVyKHQuUkVOREVSQlVGRkVSLGVbMV0pLHQuYmluZFRleHR1cmUodC5URVhUVVJFXzJELGVbMl0pfWZ1bmN0aW9uIGYodCl7c3dpdGNoKHQpe2Nhc2UgaTp0aHJvdyBuZXcgRXJyb3IoImdsLWZibzogRnJhbWVidWZmZXIgdW5zdXBwb3J0ZWQiKTtjYXNlIGE6dGhyb3cgbmV3IEVycm9yKCJnbC1mYm86IEZyYW1lYnVmZmVyIGluY29tcGxldGUgYXR0YWNobWVudCIpO2Nhc2Ugbzp0aHJvdyBuZXcgRXJyb3IoImdsLWZibzogRnJhbWVidWZmZXIgaW5jb21wbGV0ZSBkaW1lbnNpb25zIik7Y2FzZSBzOnRocm93IG5ldyBFcnJvcigiZ2wtZmJvOiBGcmFtZWJ1ZmZlciBpbmNvbXBsZXRlIG1pc3NpbmcgYXR0YWNobWVudCIpO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJnbC1mYm86IEZyYW1lYnVmZmVyIGZhaWxlZCBmb3IgdW5zcGVjaWZpZWQgcmVhc29uIil9fWZ1bmN0aW9uIGgodCxlLHIsaSxhLG8pe2lmKCFpKXJldHVybiBudWxsO3ZhciBzPW4odCxlLHIsYSxpKTtyZXR1cm4gcy5tYWdGaWx0ZXI9dC5ORUFSRVNULHMubWluRmlsdGVyPXQuTkVBUkVTVCxzLm1pcFNhbXBsZXM9MSxzLmJpbmQoKSx0LmZyYW1lYnVmZmVyVGV4dHVyZTJEKHQuRlJBTUVCVUZGRVIsbyx0LlRFWFRVUkVfMkQscy5oYW5kbGUsMCksc31mdW5jdGlvbiBwKHQsZSxyLG4saSl7dmFyIGE9dC5jcmVhdGVSZW5kZXJidWZmZXIoKTtyZXR1cm4gdC5iaW5kUmVuZGVyYnVmZmVyKHQuUkVOREVSQlVGRkVSLGEpLHQucmVuZGVyYnVmZmVyU3RvcmFnZSh0LlJFTkRFUkJVRkZFUixuLGUsciksdC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcih0LkZSQU1FQlVGRkVSLGksdC5SRU5ERVJCVUZGRVIsYSksYX1mdW5jdGlvbiBkKHQsZSxyLG4saSxhLG8scyl7dGhpcy5nbD10LHRoaXMuX3NoYXBlPVswfGUsMHxyXSx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fZXh0PXMsdGhpcy5jb2xvcj1uZXcgQXJyYXkoaSk7Zm9yKHZhciBkPTA7ZDxpOysrZCl0aGlzLmNvbG9yW2RdPW51bGw7dGhpcy5fY29sb3JfcmI9bnVsbCx0aGlzLmRlcHRoPW51bGwsdGhpcy5fZGVwdGhfcmI9bnVsbCx0aGlzLl9jb2xvclR5cGU9bix0aGlzLl91c2VEZXB0aD1hLHRoaXMuX3VzZVN0ZW5jaWw9bzt2YXIgbT10aGlzLGc9WzB8ZSwwfHJdO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGcsezA6e2dldDpmdW5jdGlvbigpe3JldHVybiBtLl9zaGFwZVswXX0sc2V0OmZ1bmN0aW9uKHQpe3JldHVybiBtLndpZHRoPXR9fSwxOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbS5fc2hhcGVbMV19LHNldDpmdW5jdGlvbih0KXtyZXR1cm4gbS5oZWlnaHQ9dH19fSksdGhpcy5fc2hhcGVWZWN0b3I9ZyxmdW5jdGlvbih0KXt2YXIgZT1jKHQuZ2wpLHI9dC5nbCxuPXQuaGFuZGxlPXIuY3JlYXRlRnJhbWVidWZmZXIoKSxpPXQuX3NoYXBlWzBdLGE9dC5fc2hhcGVbMV0sbz10LmNvbG9yLmxlbmd0aCxzPXQuX2V4dCxkPXQuX3VzZVN0ZW5jaWwsbT10Ll91c2VEZXB0aCxnPXQuX2NvbG9yVHlwZTtyLmJpbmRGcmFtZWJ1ZmZlcihyLkZSQU1FQlVGRkVSLG4pO2Zvcih2YXIgdj0wO3Y8bzsrK3YpdC5jb2xvclt2XT1oKHIsaSxhLGcsci5SR0JBLHIuQ09MT1JfQVRUQUNITUVOVDArdik7MD09PW8/KHQuX2NvbG9yX3JiPXAocixpLGEsci5SR0JBNCxyLkNPTE9SX0FUVEFDSE1FTlQwKSxzJiZzLmRyYXdCdWZmZXJzV0VCR0wobFswXSkpOm8+MSYmcy5kcmF3QnVmZmVyc1dFQkdMKGxbb10pO3ZhciB5PXIuZ2V0RXh0ZW5zaW9uKCJXRUJHTF9kZXB0aF90ZXh0dXJlIik7eT9kP3QuZGVwdGg9aChyLGksYSx5LlVOU0lHTkVEX0lOVF8yNF84X1dFQkdMLHIuREVQVEhfU1RFTkNJTCxyLkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVCk6bSYmKHQuZGVwdGg9aChyLGksYSxyLlVOU0lHTkVEX1NIT1JULHIuREVQVEhfQ09NUE9ORU5ULHIuREVQVEhfQVRUQUNITUVOVCkpOm0mJmQ/dC5fZGVwdGhfcmI9cChyLGksYSxyLkRFUFRIX1NURU5DSUwsci5ERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQpOm0/dC5fZGVwdGhfcmI9cChyLGksYSxyLkRFUFRIX0NPTVBPTkVOVDE2LHIuREVQVEhfQVRUQUNITUVOVCk6ZCYmKHQuX2RlcHRoX3JiPXAocixpLGEsci5TVEVOQ0lMX0lOREVYLHIuU1RFTkNJTF9BVFRBQ0hNRU5UKSk7dmFyIHg9ci5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKHIuRlJBTUVCVUZGRVIpO2lmKHghPT1yLkZSQU1FQlVGRkVSX0NPTVBMRVRFKXt0Ll9kZXN0cm95ZWQ9ITAsci5iaW5kRnJhbWVidWZmZXIoci5GUkFNRUJVRkZFUixudWxsKSxyLmRlbGV0ZUZyYW1lYnVmZmVyKHQuaGFuZGxlKSx0LmhhbmRsZT1udWxsLHQuZGVwdGgmJih0LmRlcHRoLmRpc3Bvc2UoKSx0LmRlcHRoPW51bGwpLHQuX2RlcHRoX3JiJiYoci5kZWxldGVSZW5kZXJidWZmZXIodC5fZGVwdGhfcmIpLHQuX2RlcHRoX3JiPW51bGwpO2Zvcih2PTA7djx0LmNvbG9yLmxlbmd0aDsrK3YpdC5jb2xvclt2XS5kaXNwb3NlKCksdC5jb2xvclt2XT1udWxsO3QuX2NvbG9yX3JiJiYoci5kZWxldGVSZW5kZXJidWZmZXIodC5fY29sb3JfcmIpLHQuX2NvbG9yX3JiPW51bGwpLHUocixlKSxmKHgpfXUocixlKX0odGhpcyl9dmFyIG09ZC5wcm90b3R5cGU7ZnVuY3Rpb24gZyh0LGUscil7aWYodC5fZGVzdHJveWVkKXRocm93IG5ldyBFcnJvcigiZ2wtZmJvOiBDYW4ndCByZXNpemUgZGVzdHJveWVkIEZCTyIpO2lmKHQuX3NoYXBlWzBdIT09ZXx8dC5fc2hhcGVbMV0hPT1yKXt2YXIgbj10LmdsLGk9bi5nZXRQYXJhbWV0ZXIobi5NQVhfUkVOREVSQlVGRkVSX1NJWkUpO2lmKGU8MHx8ZT5pfHxyPDB8fHI+aSl0aHJvdyBuZXcgRXJyb3IoImdsLWZibzogQ2FuJ3QgcmVzaXplIEZCTywgaW52YWxpZCBkaW1lbnNpb25zIik7dC5fc2hhcGVbMF09ZSx0Ll9zaGFwZVsxXT1yO2Zvcih2YXIgYT1jKG4pLG89MDtvPHQuY29sb3IubGVuZ3RoOysrbyl0LmNvbG9yW29dLnNoYXBlPXQuX3NoYXBlO3QuX2NvbG9yX3JiJiYobi5iaW5kUmVuZGVyYnVmZmVyKG4uUkVOREVSQlVGRkVSLHQuX2NvbG9yX3JiKSxuLnJlbmRlcmJ1ZmZlclN0b3JhZ2Uobi5SRU5ERVJCVUZGRVIsbi5SR0JBNCx0Ll9zaGFwZVswXSx0Ll9zaGFwZVsxXSkpLHQuZGVwdGgmJih0LmRlcHRoLnNoYXBlPXQuX3NoYXBlKSx0Ll9kZXB0aF9yYiYmKG4uYmluZFJlbmRlcmJ1ZmZlcihuLlJFTkRFUkJVRkZFUix0Ll9kZXB0aF9yYiksdC5fdXNlRGVwdGgmJnQuX3VzZVN0ZW5jaWw/bi5yZW5kZXJidWZmZXJTdG9yYWdlKG4uUkVOREVSQlVGRkVSLG4uREVQVEhfU1RFTkNJTCx0Ll9zaGFwZVswXSx0Ll9zaGFwZVsxXSk6dC5fdXNlRGVwdGg/bi5yZW5kZXJidWZmZXJTdG9yYWdlKG4uUkVOREVSQlVGRkVSLG4uREVQVEhfQ09NUE9ORU5UMTYsdC5fc2hhcGVbMF0sdC5fc2hhcGVbMV0pOnQuX3VzZVN0ZW5jaWwmJm4ucmVuZGVyYnVmZmVyU3RvcmFnZShuLlJFTkRFUkJVRkZFUixuLlNURU5DSUxfSU5ERVgsdC5fc2hhcGVbMF0sdC5fc2hhcGVbMV0pKSxuLmJpbmRGcmFtZWJ1ZmZlcihuLkZSQU1FQlVGRkVSLHQuaGFuZGxlKTt2YXIgcz1uLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMobi5GUkFNRUJVRkZFUik7cyE9PW4uRlJBTUVCVUZGRVJfQ09NUExFVEUmJih0LmRpc3Bvc2UoKSx1KG4sYSksZihzKSksdShuLGEpfX1PYmplY3QuZGVmaW5lUHJvcGVydGllcyhtLHtzaGFwZTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Rlc3Ryb3llZD9bMCwwXTp0aGlzLl9zaGFwZVZlY3Rvcn0sc2V0OmZ1bmN0aW9uKHQpe2lmKEFycmF5LmlzQXJyYXkodCl8fCh0PVswfHQsMHx0XSksMiE9PXQubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiZ2wtZmJvOiBTaGFwZSB2ZWN0b3IgbXVzdCBiZSBsZW5ndGggMiIpO3ZhciBlPTB8dFswXSxyPTB8dFsxXTtyZXR1cm4gZyh0aGlzLGUsciksW2Uscl19LGVudW1lcmFibGU6ITF9LHdpZHRoOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGVzdHJveWVkPzA6dGhpcy5fc2hhcGVbMF19LHNldDpmdW5jdGlvbih0KXtyZXR1cm4gZyh0aGlzLHR8PTAsdGhpcy5fc2hhcGVbMV0pLHR9LGVudW1lcmFibGU6ITF9LGhlaWdodDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Rlc3Ryb3llZD8wOnRoaXMuX3NoYXBlWzFdfSxzZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHR8PTAsZyh0aGlzLHRoaXMuX3NoYXBlWzBdLHQpLHR9LGVudW1lcmFibGU6ITF9fSksbS5iaW5kPWZ1bmN0aW9uKCl7aWYoIXRoaXMuX2Rlc3Ryb3llZCl7dmFyIHQ9dGhpcy5nbDt0LmJpbmRGcmFtZWJ1ZmZlcih0LkZSQU1FQlVGRkVSLHRoaXMuaGFuZGxlKSx0LnZpZXdwb3J0KDAsMCx0aGlzLl9zaGFwZVswXSx0aGlzLl9zaGFwZVsxXSl9fSxtLmRpc3Bvc2U9ZnVuY3Rpb24oKXtpZighdGhpcy5fZGVzdHJveWVkKXt0aGlzLl9kZXN0cm95ZWQ9ITA7dmFyIHQ9dGhpcy5nbDt0LmRlbGV0ZUZyYW1lYnVmZmVyKHRoaXMuaGFuZGxlKSx0aGlzLmhhbmRsZT1udWxsLHRoaXMuZGVwdGgmJih0aGlzLmRlcHRoLmRpc3Bvc2UoKSx0aGlzLmRlcHRoPW51bGwpLHRoaXMuX2RlcHRoX3JiJiYodC5kZWxldGVSZW5kZXJidWZmZXIodGhpcy5fZGVwdGhfcmIpLHRoaXMuX2RlcHRoX3JiPW51bGwpO2Zvcih2YXIgZT0wO2U8dGhpcy5jb2xvci5sZW5ndGg7KytlKXRoaXMuY29sb3JbZV0uZGlzcG9zZSgpLHRoaXMuY29sb3JbZV09bnVsbDt0aGlzLl9jb2xvcl9yYiYmKHQuZGVsZXRlUmVuZGVyYnVmZmVyKHRoaXMuX2NvbG9yX3JiKSx0aGlzLl9jb2xvcl9yYj1udWxsKX19fSx7ImdsLXRleHR1cmUyZCI6MTQ2fV0sODc6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCJzcHJpbnRmLWpzIikuc3ByaW50ZixpPXQoImdsLWNvbnN0YW50cy9sb29rdXAiKSxhPXQoImdsc2wtc2hhZGVyLW5hbWUiKSxvPXQoImFkZC1saW5lLW51bWJlcnMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgcz1hKGUpfHwib2YgdW5rbm93biBuYW1lIChzZWUgbnBtIGdsc2wtc2hhZGVyLW5hbWUpIixsPSJ1bmtub3duIHR5cGUiO3ZvaWQgMCE9PXImJihsPXI9PT1pLkZSQUdNRU5UX1NIQURFUj8iZnJhZ21lbnQiOiJ2ZXJ0ZXgiKTtmb3IodmFyIGM9bigiRXJyb3IgY29tcGlsaW5nICVzIHNoYWRlciAlczpcbiIsbCxzKSx1PW4oIiVzJXMiLGMsdCksZj10LnNwbGl0KCJcbiIpLGg9e30scD0wO3A8Zi5sZW5ndGg7cCsrKXt2YXIgZD1mW3BdO2lmKCIiIT09ZCYmIlwwIiE9PWQpe3ZhciBtPXBhcnNlSW50KGQuc3BsaXQoIjoiKVsyXSk7aWYoaXNOYU4obSkpdGhyb3cgbmV3IEVycm9yKG4oIkNvdWxkIG5vdCBwYXJzZSBlcnJvcjogJXMiLGQpKTtoW21dPWR9fXZhciBnPW8oZSkuc3BsaXQoIlxuIik7Zm9yKHA9MDtwPGcubGVuZ3RoO3ArKylpZihoW3ArM118fGhbcCsyXXx8aFtwKzFdKXt2YXIgdj1nW3BdO2lmKGMrPXYrIlxuIixoW3ArMV0pe3ZhciB5PWhbcCsxXTt5PXkuc3Vic3RyKHkuc3BsaXQoIjoiLDMpLmpvaW4oIjoiKS5sZW5ndGgrMSkudHJpbSgpLGMrPW4oIl5eXiAlc1xuXG4iLHkpfX1yZXR1cm57bG9uZzpjLnRyaW0oKSxzaG9ydDp1LnRyaW0oKX19fSx7ImFkZC1saW5lLW51bWJlcnMiOjksImdsLWNvbnN0YW50cy9sb29rdXAiOjgzLCJnbHNsLXNoYWRlci1uYW1lIjoyMjMsInNwcmludGYtanMiOjMwMX1dLDg4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPXQuZ2wsbj1vKHIsbC52ZXJ0ZXgsbC5mcmFnbWVudCksaT1vKHIsbC5waWNrVmVydGV4LGwucGlja0ZyYWdtZW50KSxhPXMociksdT1zKHIpLGY9cyhyKSxoPXMocikscD1uZXcgYyh0LG4saSxhLHUsZixoKTtyZXR1cm4gcC51cGRhdGUoZSksdC5hZGRPYmplY3QocCkscH07dmFyIG49dCgiYmluYXJ5LXNlYXJjaC1ib3VuZHMiKSxpPXQoImlvdGEtYXJyYXkiKSxhPXQoInR5cGVkYXJyYXktcG9vbCIpLG89dCgiZ2wtc2hhZGVyIikscz10KCJnbC1idWZmZXIiKSxsPXQoIi4vbGliL3NoYWRlcnMiKTtmdW5jdGlvbiBjKHQsZSxyLG4saSxhLG8pe3RoaXMucGxvdD10LHRoaXMuc2hhZGVyPWUsdGhpcy5waWNrU2hhZGVyPXIsdGhpcy5wb3NpdGlvbkJ1ZmZlcj1uLHRoaXMud2VpZ2h0QnVmZmVyPWksdGhpcy5jb2xvckJ1ZmZlcj1hLHRoaXMuaWRCdWZmZXI9byx0aGlzLnhEYXRhPVtdLHRoaXMueURhdGE9W10sdGhpcy5zaGFwZT1bMCwwXSx0aGlzLmJvdW5kcz1bMS8wLDEvMCwtMS8wLC0xLzBdLHRoaXMucGlja09mZnNldD0wfXZhciB1LGY9Yy5wcm90b3R5cGUsaD1bMCwwLDEsMCwwLDEsMSwwLDEsMSwwLDFdO2YuZHJhdz0odT1bMSwwLDAsMCwxLDAsMCwwLDFdLGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5wbG90LGU9dGhpcy5zaGFkZXIscj10aGlzLmJvdW5kcyxuPXRoaXMubnVtVmVydGljZXM7aWYoIShuPD0wKSl7dmFyIGk9dC5nbCxhPXQuZGF0YUJveCxvPXJbMl0tclswXSxzPXJbM10tclsxXSxsPWFbMl0tYVswXSxjPWFbM10tYVsxXTt1WzBdPTIqby9sLHVbNF09MipzL2MsdVs2XT0yKihyWzBdLWFbMF0pL2wtMSx1WzddPTIqKHJbMV0tYVsxXSkvYy0xLGUuYmluZCgpO3ZhciBmPWUudW5pZm9ybXM7Zi52aWV3VHJhbnNmb3JtPXUsZi5zaGFwZT10aGlzLnNoYXBlO3ZhciBoPWUuYXR0cmlidXRlczt0aGlzLnBvc2l0aW9uQnVmZmVyLmJpbmQoKSxoLnBvc2l0aW9uLnBvaW50ZXIoKSx0aGlzLndlaWdodEJ1ZmZlci5iaW5kKCksaC53ZWlnaHQucG9pbnRlcihpLlVOU0lHTkVEX0JZVEUsITEpLHRoaXMuY29sb3JCdWZmZXIuYmluZCgpLGguY29sb3IucG9pbnRlcihpLlVOU0lHTkVEX0JZVEUsITApLGkuZHJhd0FycmF5cyhpLlRSSUFOR0xFUywwLG4pfX0pLGYuZHJhd1BpY2s9ZnVuY3Rpb24oKXt2YXIgdD1bMSwwLDAsMCwxLDAsMCwwLDFdLGU9WzAsMCwwLDBdO3JldHVybiBmdW5jdGlvbihyKXt2YXIgbj10aGlzLnBsb3QsaT10aGlzLnBpY2tTaGFkZXIsYT10aGlzLmJvdW5kcyxvPXRoaXMubnVtVmVydGljZXM7aWYoIShvPD0wKSl7dmFyIHM9bi5nbCxsPW4uZGF0YUJveCxjPWFbMl0tYVswXSx1PWFbM10tYVsxXSxmPWxbMl0tbFswXSxoPWxbM10tbFsxXTt0WzBdPTIqYy9mLHRbNF09Mip1L2gsdFs2XT0yKihhWzBdLWxbMF0pL2YtMSx0WzddPTIqKGFbMV0tbFsxXSkvaC0xO2Zvcih2YXIgcD0wO3A8NDsrK3ApZVtwXT1yPj44KnAmMjU1O3RoaXMucGlja09mZnNldD1yLGkuYmluZCgpO3ZhciBkPWkudW5pZm9ybXM7ZC52aWV3VHJhbnNmb3JtPXQsZC5waWNrT2Zmc2V0PWUsZC5zaGFwZT10aGlzLnNoYXBlO3ZhciBtPWkuYXR0cmlidXRlcztyZXR1cm4gdGhpcy5wb3NpdGlvbkJ1ZmZlci5iaW5kKCksbS5wb3NpdGlvbi5wb2ludGVyKCksdGhpcy53ZWlnaHRCdWZmZXIuYmluZCgpLG0ud2VpZ2h0LnBvaW50ZXIocy5VTlNJR05FRF9CWVRFLCExKSx0aGlzLmlkQnVmZmVyLmJpbmQoKSxtLnBpY2tJZC5wb2ludGVyKHMuVU5TSUdORURfQllURSwhMSkscy5kcmF3QXJyYXlzKHMuVFJJQU5HTEVTLDAsbykscit0aGlzLnNoYXBlWzBdKnRoaXMuc2hhcGVbMV19fX0oKSxmLnBpY2s9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMucGlja09mZnNldCxpPXRoaXMuc2hhcGVbMF0qdGhpcy5zaGFwZVsxXTtpZihyPG58fHI+PW4raSlyZXR1cm4gbnVsbDt2YXIgYT1yLW4sbz10aGlzLnhEYXRhLHM9dGhpcy55RGF0YTtyZXR1cm57b2JqZWN0OnRoaXMscG9pbnRJZDphLGRhdGFDb29yZDpbb1thJXRoaXMuc2hhcGVbMF1dLHNbYS90aGlzLnNoYXBlWzBdfDBdXX19LGYudXBkYXRlPWZ1bmN0aW9uKHQpe3ZhciBlPSh0PXR8fHt9KS5zaGFwZXx8WzAsMF0scj10Lnh8fGkoZVswXSksbz10Lnl8fGkoZVsxXSkscz10Lnp8fG5ldyBGbG9hdDMyQXJyYXkoZVswXSplWzFdKSxsPSExIT09dC56c21vb3RoO3RoaXMueERhdGE9cix0aGlzLnlEYXRhPW87dmFyIGMsdSxmLHAsZD10LmNvbG9yTGV2ZWxzfHxbMF0sbT10LmNvbG9yVmFsdWVzfHxbMCwwLDAsMV0sZz1kLmxlbmd0aCx2PXRoaXMuYm91bmRzO2w/KGM9dlswXT1yWzBdLHU9dlsxXT1vWzBdLGY9dlsyXT1yW3IubGVuZ3RoLTFdLHA9dlszXT1vW28ubGVuZ3RoLTFdKTooYz12WzBdPXJbMF0rKHJbMV0tclswXSkvMix1PXZbMV09b1swXSsob1sxXS1vWzBdKS8yLGY9dlsyXT1yW3IubGVuZ3RoLTFdKyhyW3IubGVuZ3RoLTFdLXJbci5sZW5ndGgtMl0pLzIscD12WzNdPW9bby5sZW5ndGgtMV0rKG9bby5sZW5ndGgtMV0tb1tvLmxlbmd0aC0yXSkvMik7dmFyIHk9MS8oZi1jKSx4PTEvKHAtdSksYj1lWzBdLF89ZVsxXTt0aGlzLnNoYXBlPVtiLF9dO3ZhciB3PShsPyhiLTEpKihfLTEpOmIqXykqKGgubGVuZ3RoPj4+MSk7dGhpcy5udW1WZXJ0aWNlcz13O2Zvcih2YXIgVD1hLm1hbGxvY1VpbnQ4KDQqdyksaz1hLm1hbGxvY0Zsb2F0MzIoMip3KSxBPWEubWFsbG9jVWludDgoMip3KSxNPWEubWFsbG9jVWludDMyKHcpLFM9MCxFPWw/Yi0xOmIsTD1sP18tMTpfLEM9MDtDPEw7KytDKXt2YXIgUCxJO2w/KFA9eCoob1tDXS11KSxJPXgqKG9bQysxXS11KSk6KFA9QzxfLTE/eCoob1tDXS0ob1tDKzFdLW9bQ10pLzItdSk6eCoob1tDXS0ob1tDXS1vW0MtMV0pLzItdSksST1DPF8tMT94KihvW0NdKyhvW0MrMV0tb1tDXSkvMi11KTp4KihvW0NdKyhvW0NdLW9bQy0xXSkvMi11KSk7Zm9yKHZhciBPPTA7TzxFOysrTyl7dmFyIHosRDtsPyh6PXkqKHJbT10tYyksRD15KihyW08rMV0tYykpOih6PU88Yi0xP3kqKHJbT10tKHJbTysxXS1yW09dKS8yLWMpOnkqKHJbT10tKHJbT10tcltPLTFdKS8yLWMpLEQ9TzxiLTE/eSoocltPXSsocltPKzFdLXJbT10pLzItYyk6eSoocltPXSsocltPXS1yW08tMV0pLzItYykpO2Zvcih2YXIgUj0wO1I8aC5sZW5ndGg7Uis9Mil7dmFyIEYsQixOLGosVT1oW1JdLFY9aFtSKzFdLEg9c1tsPyhDK1YpKmIrKE8rVSk6QypiK09dLHE9bi5sZShkLEgpO2lmKHE8MClGPW1bMF0sQj1tWzFdLE49bVsyXSxqPW1bM107ZWxzZSBpZihxPT09Zy0xKUY9bVs0KmctNF0sQj1tWzQqZy0zXSxOPW1bNCpnLTJdLGo9bVs0KmctMV07ZWxzZXt2YXIgRz0oSC1kW3FdKS8oZFtxKzFdLWRbcV0pLFk9MS1HLFc9NCpxLFg9NCoocSsxKTtGPVkqbVtXXStHKm1bWF0sQj1ZKm1bVysxXStHKm1bWCsxXSxOPVkqbVtXKzJdK0cqbVtYKzJdLGo9WSptW1crM10rRyptW1grM119VFs0KlNdPTI1NSpGLFRbNCpTKzFdPTI1NSpCLFRbNCpTKzJdPTI1NSpOLFRbNCpTKzNdPTI1NSpqLGtbMipTXT0uNSp6Ky41KkQsa1syKlMrMV09LjUqUCsuNSpJLEFbMipTXT1VLEFbMipTKzFdPVYsTVtTXT1DKmIrTyxTKz0xfX19dGhpcy5wb3NpdGlvbkJ1ZmZlci51cGRhdGUoayksdGhpcy53ZWlnaHRCdWZmZXIudXBkYXRlKEEpLHRoaXMuY29sb3JCdWZmZXIudXBkYXRlKFQpLHRoaXMuaWRCdWZmZXIudXBkYXRlKE0pLGEuZnJlZShrKSxhLmZyZWUoVCksYS5mcmVlKEEpLGEuZnJlZShNKX0sZi5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5zaGFkZXIuZGlzcG9zZSgpLHRoaXMucGlja1NoYWRlci5kaXNwb3NlKCksdGhpcy5wb3NpdGlvbkJ1ZmZlci5kaXNwb3NlKCksdGhpcy53ZWlnaHRCdWZmZXIuZGlzcG9zZSgpLHRoaXMuY29sb3JCdWZmZXIuZGlzcG9zZSgpLHRoaXMuaWRCdWZmZXIuZGlzcG9zZSgpLHRoaXMucGxvdC5yZW1vdmVPYmplY3QodGhpcyl9fSx7Ii4vbGliL3NoYWRlcnMiOjg5LCJiaW5hcnktc2VhcmNoLWJvdW5kcyI6MzEsImdsLWJ1ZmZlciI6NzgsImdsLXNoYWRlciI6MTMyLCJpb3RhLWFycmF5IjoyMzUsInR5cGVkYXJyYXktcG9vbCI6MzA4fV0sODk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZ2xzbGlmeSIpO2UuZXhwb3J0cz17ZnJhZ21lbnQ6bihbInByZWNpc2lvbiBsb3dwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcbnZhcnlpbmcgdmVjNCBmcmFnQ29sb3I7XG52b2lkIG1haW4oKSB7XG4gIGdsX0ZyYWdDb2xvciA9IHZlYzQoZnJhZ0NvbG9yLnJnYiAqIGZyYWdDb2xvci5hLCBmcmFnQ29sb3IuYSk7XG59XG4iXSksdmVydGV4Om4oWyJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmF0dHJpYnV0ZSB2ZWMyIHBvc2l0aW9uO1xuYXR0cmlidXRlIHZlYzQgY29sb3I7XG5hdHRyaWJ1dGUgdmVjMiB3ZWlnaHQ7XG5cbnVuaWZvcm0gdmVjMiBzaGFwZTtcbnVuaWZvcm0gbWF0MyB2aWV3VHJhbnNmb3JtO1xuXG52YXJ5aW5nIHZlYzQgZnJhZ0NvbG9yO1xuXG52b2lkIG1haW4oKSB7XG4gIHZlYzMgdlBvc2l0aW9uID0gdmlld1RyYW5zZm9ybSAqIHZlYzMoIHBvc2l0aW9uICsgKHdlaWdodC0uNSkvKHNoYXBlLTEuKSAsIDEuMCk7XG4gIGZyYWdDb2xvciA9IGNvbG9yO1xuICBnbF9Qb3NpdGlvbiA9IHZlYzQodlBvc2l0aW9uLnh5LCAwLCB2UG9zaXRpb24ueik7XG59XG4iXSkscGlja0ZyYWdtZW50Om4oWyJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbnZhcnlpbmcgdmVjNCBmcmFnSWQ7XG52YXJ5aW5nIHZlYzIgdldlaWdodDtcblxudW5pZm9ybSB2ZWMyIHNoYXBlO1xudW5pZm9ybSB2ZWM0IHBpY2tPZmZzZXQ7XG5cbnZvaWQgbWFpbigpIHtcbiAgdmVjMiBkID0gc3RlcCguNSwgdldlaWdodCk7XG4gIHZlYzQgaWQgPSBmcmFnSWQgKyBwaWNrT2Zmc2V0O1xuICBpZC54ICs9IGQueCArIGQueSpzaGFwZS54O1xuXG4gIGlkLnkgKz0gZmxvb3IoaWQueCAvIDI1Ni4wKTtcbiAgaWQueCAtPSBmbG9vcihpZC54IC8gMjU2LjApICogMjU2LjA7XG5cbiAgaWQueiArPSBmbG9vcihpZC55IC8gMjU2LjApO1xuICBpZC55IC09IGZsb29yKGlkLnkgLyAyNTYuMCkgKiAyNTYuMDtcblxuICBpZC53ICs9IGZsb29yKGlkLnogLyAyNTYuMCk7XG4gIGlkLnogLT0gZmxvb3IoaWQueiAvIDI1Ni4wKSAqIDI1Ni4wO1xuXG4gIGdsX0ZyYWdDb2xvciA9IGlkLzI1NS47XG59XG4iXSkscGlja1ZlcnRleDpuKFsicHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5hdHRyaWJ1dGUgdmVjMiBwb3NpdGlvbjtcbmF0dHJpYnV0ZSB2ZWM0IHBpY2tJZDtcbmF0dHJpYnV0ZSB2ZWMyIHdlaWdodDtcblxudW5pZm9ybSB2ZWMyIHNoYXBlO1xudW5pZm9ybSBtYXQzIHZpZXdUcmFuc2Zvcm07XG5cbnZhcnlpbmcgdmVjNCBmcmFnSWQ7XG52YXJ5aW5nIHZlYzIgdldlaWdodDtcblxudm9pZCBtYWluKCkge1xuICB2V2VpZ2h0ID0gd2VpZ2h0O1xuXG4gIGZyYWdJZCA9IHBpY2tJZDtcblxuICB2ZWMzIHZQb3NpdGlvbiA9IHZpZXdUcmFuc2Zvcm0gKiB2ZWMzKCBwb3NpdGlvbiArICh3ZWlnaHQtLjUpLyhzaGFwZS0xLikgLCAxLjApO1xuICBnbF9Qb3NpdGlvbiA9IHZlYzQodlBvc2l0aW9uLnh5LCAwLCB2UG9zaXRpb24ueik7XG59XG4iXSl9fSx7Z2xzbGlmeToyMzF9XSw5MDpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoImdsc2xpZnkiKSxpPXQoImdsLXNoYWRlciIpLGE9bihbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmF0dHJpYnV0ZSB2ZWMzIHBvc2l0aW9uLCBuZXh0UG9zaXRpb247XG5hdHRyaWJ1dGUgZmxvYXQgYXJjTGVuZ3RoLCBsaW5lV2lkdGg7XG5hdHRyaWJ1dGUgdmVjNCBjb2xvcjtcblxudW5pZm9ybSB2ZWMyIHNjcmVlblNoYXBlO1xudW5pZm9ybSBmbG9hdCBwaXhlbFJhdGlvO1xudW5pZm9ybSBtYXQ0IG1vZGVsLCB2aWV3LCBwcm9qZWN0aW9uO1xuXG52YXJ5aW5nIHZlYzQgZnJhZ0NvbG9yO1xudmFyeWluZyB2ZWMzIHdvcmxkUG9zaXRpb247XG52YXJ5aW5nIGZsb2F0IHBpeGVsQXJjTGVuZ3RoO1xuXG52ZWM0IHByb2plY3QodmVjMyBwKSB7XG4gIHJldHVybiBwcm9qZWN0aW9uICogdmlldyAqIG1vZGVsICogdmVjNChwLCAxLjApO1xufVxuXG52b2lkIG1haW4oKSB7XG4gIHZlYzQgc3RhcnRQb2ludCA9IHByb2plY3QocG9zaXRpb24pO1xuICB2ZWM0IGVuZFBvaW50ICAgPSBwcm9qZWN0KG5leHRQb3NpdGlvbik7XG5cbiAgdmVjMiBBID0gc3RhcnRQb2ludC54eSAvIHN0YXJ0UG9pbnQudztcbiAgdmVjMiBCID0gICBlbmRQb2ludC54eSAvICAgZW5kUG9pbnQudztcblxuICBmbG9hdCBjbGlwQW5nbGUgPSBhdGFuKFxuICAgIChCLnkgLSBBLnkpICogc2NyZWVuU2hhcGUueSxcbiAgICAoQi54IC0gQS54KSAqIHNjcmVlblNoYXBlLnhcbiAgKTtcblxuICB2ZWMyIG9mZnNldCA9IDAuNSAqIHBpeGVsUmF0aW8gKiBsaW5lV2lkdGggKiB2ZWMyKFxuICAgIHNpbihjbGlwQW5nbGUpLFxuICAgIC1jb3MoY2xpcEFuZ2xlKVxuICApIC8gc2NyZWVuU2hhcGU7XG5cbiAgZ2xfUG9zaXRpb24gPSB2ZWM0KHN0YXJ0UG9pbnQueHkgKyBzdGFydFBvaW50LncgKiBvZmZzZXQsIHN0YXJ0UG9pbnQuencpO1xuXG4gIHdvcmxkUG9zaXRpb24gPSBwb3NpdGlvbjtcbiAgcGl4ZWxBcmNMZW5ndGggPSBhcmNMZW5ndGg7XG4gIGZyYWdDb2xvciA9IGNvbG9yO1xufVxuIl0pLG89bihbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmJvb2wgb3V0T2ZSYW5nZShmbG9hdCBhLCBmbG9hdCBiLCBmbG9hdCBwKSB7XG4gIHJldHVybiAoKHAgPiBtYXgoYSwgYikpIHx8IFxuICAgICAgICAgIChwIDwgbWluKGEsIGIpKSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWMyIGEsIHZlYzIgYiwgdmVjMiBwKSB7XG4gIHJldHVybiAob3V0T2ZSYW5nZShhLngsIGIueCwgcC54KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS55LCBiLnksIHAueSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMyBhLCB2ZWMzIGIsIHZlYzMgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnosIGIueiwgcC56KSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWM0IGEsIHZlYzQgYiwgdmVjNCBwKSB7XG4gIHJldHVybiBvdXRPZlJhbmdlKGEueHl6LCBiLnh5eiwgcC54eXopO1xufVxuXG51bmlmb3JtIHZlYzMgICAgICBjbGlwQm91bmRzWzJdO1xudW5pZm9ybSBzYW1wbGVyMkQgZGFzaFRleHR1cmU7XG51bmlmb3JtIGZsb2F0ICAgICBkYXNoU2NhbGU7XG51bmlmb3JtIGZsb2F0ICAgICBvcGFjaXR5O1xuXG52YXJ5aW5nIHZlYzMgICAgd29ybGRQb3NpdGlvbjtcbnZhcnlpbmcgZmxvYXQgICBwaXhlbEFyY0xlbmd0aDtcbnZhcnlpbmcgdmVjNCAgICBmcmFnQ29sb3I7XG5cbnZvaWQgbWFpbigpIHtcbiAgaWYgKFxuICAgIG91dE9mUmFuZ2UoY2xpcEJvdW5kc1swXSwgY2xpcEJvdW5kc1sxXSwgd29ybGRQb3NpdGlvbikgfHxcbiAgICBmcmFnQ29sb3IuYSAqIG9wYWNpdHkgPT0gMC5cbiAgKSBkaXNjYXJkO1xuXG4gIGZsb2F0IGRhc2hXZWlnaHQgPSB0ZXh0dXJlMkQoZGFzaFRleHR1cmUsIHZlYzIoZGFzaFNjYWxlICogcGl4ZWxBcmNMZW5ndGgsIDApKS5yO1xuICBpZihkYXNoV2VpZ2h0IDwgMC41KSB7XG4gICAgZGlzY2FyZDtcbiAgfVxuICBnbF9GcmFnQ29sb3IgPSBmcmFnQ29sb3IgKiBvcGFjaXR5O1xufVxuIl0pLHM9bihbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbiNkZWZpbmUgRkxPQVRfTUFYICAxLjcwMTQxMTg0ZTM4XG4jZGVmaW5lIEZMT0FUX01JTiAgMS4xNzU0OTQzNWUtMzhcblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL21pa29sYWx5c2Vua28vZ2xzbC1yZWFkLWZsb2F0L2Jsb2IvbWFzdGVyL2luZGV4Lmdsc2xcbnZlYzQgcGFja0Zsb2F0KGZsb2F0IHYpIHtcbiAgZmxvYXQgYXYgPSBhYnModik7XG5cbiAgLy9IYW5kbGUgc3BlY2lhbCBjYXNlc1xuICBpZihhdiA8IEZMT0FUX01JTikge1xuICAgIHJldHVybiB2ZWM0KDAuMCwgMC4wLCAwLjAsIDAuMCk7XG4gIH0gZWxzZSBpZih2ID4gRkxPQVRfTUFYKSB7XG4gICAgcmV0dXJuIHZlYzQoMTI3LjAsIDEyOC4wLCAwLjAsIDAuMCkgLyAyNTUuMDtcbiAgfSBlbHNlIGlmKHYgPCAtRkxPQVRfTUFYKSB7XG4gICAgcmV0dXJuIHZlYzQoMjU1LjAsIDEyOC4wLCAwLjAsIDAuMCkgLyAyNTUuMDtcbiAgfVxuXG4gIHZlYzQgYyA9IHZlYzQoMCwwLDAsMCk7XG5cbiAgLy9Db21wdXRlIGV4cG9uZW50IGFuZCBtYW50aXNzYVxuICBmbG9hdCBlID0gZmxvb3IobG9nMihhdikpO1xuICBmbG9hdCBtID0gYXYgKiBwb3coMi4wLCAtZSkgLSAxLjA7XG5cbiAgLy9VbnBhY2sgbWFudGlzc2FcbiAgY1sxXSA9IGZsb29yKDEyOC4wICogbSk7XG4gIG0gLT0gY1sxXSAvIDEyOC4wO1xuICBjWzJdID0gZmxvb3IoMzI3NjguMCAqIG0pO1xuICBtIC09IGNbMl0gLyAzMjc2OC4wO1xuICBjWzNdID0gZmxvb3IoODM4ODYwOC4wICogbSk7XG5cbiAgLy9VbnBhY2sgZXhwb25lbnRcbiAgZmxvYXQgZWJpYXMgPSBlICsgMTI3LjA7XG4gIGNbMF0gPSBmbG9vcihlYmlhcyAvIDIuMCk7XG4gIGViaWFzIC09IGNbMF0gKiAyLjA7XG4gIGNbMV0gKz0gZmxvb3IoZWJpYXMpICogMTI4LjA7XG5cbiAgLy9VbnBhY2sgc2lnbiBiaXRcbiAgY1swXSArPSAxMjguMCAqIHN0ZXAoMC4wLCAtdik7XG5cbiAgLy9TY2FsZSBiYWNrIHRvIHJhbmdlXG4gIHJldHVybiBjIC8gMjU1LjA7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZShmbG9hdCBhLCBmbG9hdCBiLCBmbG9hdCBwKSB7XG4gIHJldHVybiAoKHAgPiBtYXgoYSwgYikpIHx8IFxuICAgICAgICAgIChwIDwgbWluKGEsIGIpKSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWMyIGEsIHZlYzIgYiwgdmVjMiBwKSB7XG4gIHJldHVybiAob3V0T2ZSYW5nZShhLngsIGIueCwgcC54KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS55LCBiLnksIHAueSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMyBhLCB2ZWMzIGIsIHZlYzMgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnosIGIueiwgcC56KSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWM0IGEsIHZlYzQgYiwgdmVjNCBwKSB7XG4gIHJldHVybiBvdXRPZlJhbmdlKGEueHl6LCBiLnh5eiwgcC54eXopO1xufVxuXG51bmlmb3JtIGZsb2F0IHBpY2tJZDtcbnVuaWZvcm0gdmVjMyBjbGlwQm91bmRzWzJdO1xuXG52YXJ5aW5nIHZlYzMgd29ybGRQb3NpdGlvbjtcbnZhcnlpbmcgZmxvYXQgcGl4ZWxBcmNMZW5ndGg7XG52YXJ5aW5nIHZlYzQgZnJhZ0NvbG9yO1xuXG52b2lkIG1haW4oKSB7XG4gIGlmIChvdXRPZlJhbmdlKGNsaXBCb3VuZHNbMF0sIGNsaXBCb3VuZHNbMV0sIHdvcmxkUG9zaXRpb24pKSBkaXNjYXJkO1xuXG4gIGdsX0ZyYWdDb2xvciA9IHZlYzQocGlja0lkLzI1NS4wLCBwYWNrRmxvYXQocGl4ZWxBcmNMZW5ndGgpLnh5eik7XG59Il0pLGw9W3tuYW1lOiJwb3NpdGlvbiIsdHlwZToidmVjMyJ9LHtuYW1lOiJuZXh0UG9zaXRpb24iLHR5cGU6InZlYzMifSx7bmFtZToiYXJjTGVuZ3RoIix0eXBlOiJmbG9hdCJ9LHtuYW1lOiJsaW5lV2lkdGgiLHR5cGU6ImZsb2F0In0se25hbWU6ImNvbG9yIix0eXBlOiJ2ZWM0In1dO3IuY3JlYXRlU2hhZGVyPWZ1bmN0aW9uKHQpe3JldHVybiBpKHQsYSxvLG51bGwsbCl9LHIuY3JlYXRlUGlja1NoYWRlcj1mdW5jdGlvbih0KXtyZXR1cm4gaSh0LGEscyxudWxsLGwpfX0seyJnbC1zaGFkZXIiOjEzMixnbHNsaWZ5OjIzMX1dLDkxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10LmdsfHx0LnNjZW5lJiZ0LnNjZW5lLmdsLHI9ZihlKTtyLmF0dHJpYnV0ZXMucG9zaXRpb24ubG9jYXRpb249MCxyLmF0dHJpYnV0ZXMubmV4dFBvc2l0aW9uLmxvY2F0aW9uPTEsci5hdHRyaWJ1dGVzLmFyY0xlbmd0aC5sb2NhdGlvbj0yLHIuYXR0cmlidXRlcy5saW5lV2lkdGgubG9jYXRpb249MyxyLmF0dHJpYnV0ZXMuY29sb3IubG9jYXRpb249NDt2YXIgbz1oKGUpO28uYXR0cmlidXRlcy5wb3NpdGlvbi5sb2NhdGlvbj0wLG8uYXR0cmlidXRlcy5uZXh0UG9zaXRpb24ubG9jYXRpb249MSxvLmF0dHJpYnV0ZXMuYXJjTGVuZ3RoLmxvY2F0aW9uPTIsby5hdHRyaWJ1dGVzLmxpbmVXaWR0aC5sb2NhdGlvbj0zLG8uYXR0cmlidXRlcy5jb2xvci5sb2NhdGlvbj00O2Zvcih2YXIgcz1uKGUpLGw9aShlLFt7YnVmZmVyOnMsc2l6ZTozLG9mZnNldDowLHN0cmlkZTo0OH0se2J1ZmZlcjpzLHNpemU6MyxvZmZzZXQ6MTIsc3RyaWRlOjQ4fSx7YnVmZmVyOnMsc2l6ZToxLG9mZnNldDoyNCxzdHJpZGU6NDh9LHtidWZmZXI6cyxzaXplOjEsb2Zmc2V0OjI4LHN0cmlkZTo0OH0se2J1ZmZlcjpzLHNpemU6NCxvZmZzZXQ6MzIsc3RyaWRlOjQ4fV0pLHU9YyhuZXcgQXJyYXkoMTAyNCksWzI1NiwxLDRdKSxwPTA7cDwxMDI0OysrcCl1LmRhdGFbcF09MjU1O3ZhciBkPWEoZSx1KTtkLndyYXA9ZS5SRVBFQVQ7dmFyIG09bmV3IHYoZSxyLG8scyxsLGQpO3JldHVybiBtLnVwZGF0ZSh0KSxtfTt2YXIgbj10KCJnbC1idWZmZXIiKSxpPXQoImdsLXZhbyIpLGE9dCgiZ2wtdGV4dHVyZTJkIiksbz1uZXcgVWludDhBcnJheSg0KSxzPW5ldyBGbG9hdDMyQXJyYXkoby5idWZmZXIpO3ZhciBsPXQoImJpbmFyeS1zZWFyY2gtYm91bmRzIiksYz10KCJuZGFycmF5IiksdT10KCIuL2xpYi9zaGFkZXJzIiksZj11LmNyZWF0ZVNoYWRlcixoPXUuY3JlYXRlUGlja1NoYWRlcixwPVsxLDAsMCwwLDAsMSwwLDAsMCwwLDEsMCwwLDAsMCwxXTtmdW5jdGlvbiBkKHQsZSl7Zm9yKHZhciByPTAsbj0wO248MzsrK24pe3ZhciBpPXRbbl0tZVtuXTtyKz1pKml9cmV0dXJuIE1hdGguc3FydChyKX1mdW5jdGlvbiBtKHQpe2Zvcih2YXIgZT1bWy0xZTYsLTFlNiwtMWU2XSxbMWU2LDFlNiwxZTZdXSxyPTA7cjwzOysrcillWzBdW3JdPU1hdGgubWF4KHRbMF1bcl0sZVswXVtyXSksZVsxXVtyXT1NYXRoLm1pbih0WzFdW3JdLGVbMV1bcl0pO3JldHVybiBlfWZ1bmN0aW9uIGcodCxlLHIsbil7dGhpcy5hcmNMZW5ndGg9dCx0aGlzLnBvc2l0aW9uPWUsdGhpcy5pbmRleD1yLHRoaXMuZGF0YUNvb3JkaW5hdGU9bn1mdW5jdGlvbiB2KHQsZSxyLG4saSxhKXt0aGlzLmdsPXQsdGhpcy5zaGFkZXI9ZSx0aGlzLnBpY2tTaGFkZXI9cix0aGlzLmJ1ZmZlcj1uLHRoaXMudmFvPWksdGhpcy5jbGlwQm91bmRzPVtbLTEvMCwtMS8wLC0xLzBdLFsxLzAsMS8wLDEvMF1dLHRoaXMucG9pbnRzPVtdLHRoaXMuYXJjTGVuZ3RoPVtdLHRoaXMudmVydGV4Q291bnQ9MCx0aGlzLmJvdW5kcz1bWzAsMCwwXSxbMCwwLDBdXSx0aGlzLnBpY2tJZD0wLHRoaXMubGluZVdpZHRoPTEsdGhpcy50ZXh0dXJlPWEsdGhpcy5kYXNoU2NhbGU9MSx0aGlzLm9wYWNpdHk9MSx0aGlzLmhhc0FscGhhPSExLHRoaXMuZGlydHk9ITAsdGhpcy5waXhlbFJhdGlvPTF9dmFyIHk9di5wcm90b3R5cGU7eS5pc1RyYW5zcGFyZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGFzQWxwaGF9LHkuaXNPcGFxdWU9ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5oYXNBbHBoYX0seS5waWNrU2xvdHM9MSx5LnNldFBpY2tCYXNlPWZ1bmN0aW9uKHQpe3RoaXMucGlja0lkPXR9LHkuZHJhd1RyYW5zcGFyZW50PXkuZHJhdz1mdW5jdGlvbih0KXtpZih0aGlzLnZlcnRleENvdW50KXt2YXIgZT10aGlzLmdsLHI9dGhpcy5zaGFkZXIsbj10aGlzLnZhbztyLmJpbmQoKSxyLnVuaWZvcm1zPXttb2RlbDp0Lm1vZGVsfHxwLHZpZXc6dC52aWV3fHxwLHByb2plY3Rpb246dC5wcm9qZWN0aW9ufHxwLGNsaXBCb3VuZHM6bSh0aGlzLmNsaXBCb3VuZHMpLGRhc2hUZXh0dXJlOnRoaXMudGV4dHVyZS5iaW5kKCksZGFzaFNjYWxlOnRoaXMuZGFzaFNjYWxlL3RoaXMuYXJjTGVuZ3RoW3RoaXMuYXJjTGVuZ3RoLmxlbmd0aC0xXSxvcGFjaXR5OnRoaXMub3BhY2l0eSxzY3JlZW5TaGFwZTpbZS5kcmF3aW5nQnVmZmVyV2lkdGgsZS5kcmF3aW5nQnVmZmVySGVpZ2h0XSxwaXhlbFJhdGlvOnRoaXMucGl4ZWxSYXRpb30sbi5iaW5kKCksbi5kcmF3KGUuVFJJQU5HTEVfU1RSSVAsdGhpcy52ZXJ0ZXhDb3VudCksbi51bmJpbmQoKX19LHkuZHJhd1BpY2s9ZnVuY3Rpb24odCl7aWYodGhpcy52ZXJ0ZXhDb3VudCl7dmFyIGU9dGhpcy5nbCxyPXRoaXMucGlja1NoYWRlcixuPXRoaXMudmFvO3IuYmluZCgpLHIudW5pZm9ybXM9e21vZGVsOnQubW9kZWx8fHAsdmlldzp0LnZpZXd8fHAscHJvamVjdGlvbjp0LnByb2plY3Rpb258fHAscGlja0lkOnRoaXMucGlja0lkLGNsaXBCb3VuZHM6bSh0aGlzLmNsaXBCb3VuZHMpLHNjcmVlblNoYXBlOltlLmRyYXdpbmdCdWZmZXJXaWR0aCxlLmRyYXdpbmdCdWZmZXJIZWlnaHRdLHBpeGVsUmF0aW86dGhpcy5waXhlbFJhdGlvfSxuLmJpbmQoKSxuLmRyYXcoZS5UUklBTkdMRV9TVFJJUCx0aGlzLnZlcnRleENvdW50KSxuLnVuYmluZCgpfX0seS51cGRhdGU9ZnVuY3Rpb24odCl7dmFyIGUscjt0aGlzLmRpcnR5PSEwO3ZhciBuPSEhdC5jb25uZWN0R2FwczsiZGFzaFNjYWxlImluIHQmJih0aGlzLmRhc2hTY2FsZT10LmRhc2hTY2FsZSksdGhpcy5oYXNBbHBoYT0hMSwib3BhY2l0eSJpbiB0JiYodGhpcy5vcGFjaXR5PSt0Lm9wYWNpdHksdGhpcy5vcGFjaXR5PDEmJih0aGlzLmhhc0FscGhhPSEwKSk7dmFyIGk9W10sYT1bXSxvPVtdLHM9MCx1PTAsZj1bWzEvMCwxLzAsMS8wXSxbLTEvMCwtMS8wLC0xLzBdXSxoPXQucG9zaXRpb258fHQucG9zaXRpb25zO2lmKGgpe3ZhciBwPXQuY29sb3J8fHQuY29sb3JzfHxbMCwwLDAsMV0sbT10LmxpbmVXaWR0aHx8MSxnPSExO3Q6Zm9yKGU9MTtlPGgubGVuZ3RoOysrZSl7dmFyIHYseSx4LGI9aFtlLTFdLF89aFtlXTtmb3IoYS5wdXNoKHMpLG8ucHVzaChiLnNsaWNlKCkpLHI9MDtyPDM7KytyKXtpZihpc05hTihiW3JdKXx8aXNOYU4oX1tyXSl8fCFpc0Zpbml0ZShiW3JdKXx8IWlzRmluaXRlKF9bcl0pKXtpZighbiYmaS5sZW5ndGg+MCl7Zm9yKHZhciB3PTA7dzwyNDsrK3cpaS5wdXNoKGlbaS5sZW5ndGgtMTJdKTt1Kz0yLGc9ITB9Y29udGludWUgdH1mWzBdW3JdPU1hdGgubWluKGZbMF1bcl0sYltyXSxfW3JdKSxmWzFdW3JdPU1hdGgubWF4KGZbMV1bcl0sYltyXSxfW3JdKX1BcnJheS5pc0FycmF5KHBbMF0pPyh2PXAubGVuZ3RoPmUtMT9wW2UtMV06cC5sZW5ndGg+MD9wW3AubGVuZ3RoLTFdOlswLDAsMCwxXSx5PXAubGVuZ3RoPmU/cFtlXTpwLmxlbmd0aD4wP3BbcC5sZW5ndGgtMV06WzAsMCwwLDFdKTp2PXk9cCwzPT09di5sZW5ndGgmJih2PVt2WzBdLHZbMV0sdlsyXSwxXSksMz09PXkubGVuZ3RoJiYoeT1beVswXSx5WzFdLHlbMl0sMV0pLCF0aGlzLmhhc0FscGhhJiZ2WzNdPDEmJih0aGlzLmhhc0FscGhhPSEwKSx4PUFycmF5LmlzQXJyYXkobSk/bS5sZW5ndGg+ZS0xP21bZS0xXTptLmxlbmd0aD4wP21bbS5sZW5ndGgtMV06WzAsMCwwLDFdOm07dmFyIFQ9cztpZihzKz1kKGIsXyksZyl7Zm9yKHI9MDtyPDI7KytyKWkucHVzaChiWzBdLGJbMV0sYlsyXSxfWzBdLF9bMV0sX1syXSxULHgsdlswXSx2WzFdLHZbMl0sdlszXSk7dSs9MixnPSExfWkucHVzaChiWzBdLGJbMV0sYlsyXSxfWzBdLF9bMV0sX1syXSxULHgsdlswXSx2WzFdLHZbMl0sdlszXSxiWzBdLGJbMV0sYlsyXSxfWzBdLF9bMV0sX1syXSxULC14LHZbMF0sdlsxXSx2WzJdLHZbM10sX1swXSxfWzFdLF9bMl0sYlswXSxiWzFdLGJbMl0scywteCx5WzBdLHlbMV0seVsyXSx5WzNdLF9bMF0sX1sxXSxfWzJdLGJbMF0sYlsxXSxiWzJdLHMseCx5WzBdLHlbMV0seVsyXSx5WzNdKSx1Kz00fX1pZih0aGlzLmJ1ZmZlci51cGRhdGUoaSksYS5wdXNoKHMpLG8ucHVzaChoW2gubGVuZ3RoLTFdLnNsaWNlKCkpLHRoaXMuYm91bmRzPWYsdGhpcy52ZXJ0ZXhDb3VudD11LHRoaXMucG9pbnRzPW8sdGhpcy5hcmNMZW5ndGg9YSwiZGFzaGVzImluIHQpe3ZhciBrPXQuZGFzaGVzLnNsaWNlKCk7Zm9yKGsudW5zaGlmdCgwKSxlPTE7ZTxrLmxlbmd0aDsrK2Upa1tlXT1rW2UtMV0ra1tlXTt2YXIgQT1jKG5ldyBBcnJheSgxMDI0KSxbMjU2LDEsNF0pO2ZvcihlPTA7ZTwyNTY7KytlKXtmb3Iocj0wO3I8NDsrK3IpQS5zZXQoZSwwLHIsMCk7MSZsLmxlKGssa1trLmxlbmd0aC0xXSplLzI1NSk/QS5zZXQoZSwwLDAsMCk6QS5zZXQoZSwwLDAsMjU1KX10aGlzLnRleHR1cmUuc2V0UGl4ZWxzKEEpfX0seS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5zaGFkZXIuZGlzcG9zZSgpLHRoaXMudmFvLmRpc3Bvc2UoKSx0aGlzLmJ1ZmZlci5kaXNwb3NlKCl9LHkucGljaz1mdW5jdGlvbih0KXtpZighdClyZXR1cm4gbnVsbDtpZih0LmlkIT09dGhpcy5waWNrSWQpcmV0dXJuIG51bGw7dmFyIGU9ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIG9bMF09bixvWzFdPXIsb1syXT1lLG9bM109dCxzWzBdfSh0LnZhbHVlWzBdLHQudmFsdWVbMV0sdC52YWx1ZVsyXSwwKSxyPWwubGUodGhpcy5hcmNMZW5ndGgsZSk7aWYocjwwKXJldHVybiBudWxsO2lmKHI9PT10aGlzLmFyY0xlbmd0aC5sZW5ndGgtMSlyZXR1cm4gbmV3IGcodGhpcy5hcmNMZW5ndGhbdGhpcy5hcmNMZW5ndGgubGVuZ3RoLTFdLHRoaXMucG9pbnRzW3RoaXMucG9pbnRzLmxlbmd0aC0xXS5zbGljZSgpLHIpO2Zvcih2YXIgbj10aGlzLnBvaW50c1tyXSxpPXRoaXMucG9pbnRzW01hdGgubWluKHIrMSx0aGlzLnBvaW50cy5sZW5ndGgtMSldLGE9KGUtdGhpcy5hcmNMZW5ndGhbcl0pLyh0aGlzLmFyY0xlbmd0aFtyKzFdLXRoaXMuYXJjTGVuZ3RoW3JdKSxjPTEtYSx1PVswLDAsMF0sZj0wO2Y8MzsrK2YpdVtmXT1jKm5bZl0rYSppW2ZdO3ZhciBoPU1hdGgubWluKGE8LjU/cjpyKzEsdGhpcy5wb2ludHMubGVuZ3RoLTEpO3JldHVybiBuZXcgZyhlLHUsaCx0aGlzLnBvaW50c1toXSl9fSx7Ii4vbGliL3NoYWRlcnMiOjkwLCJiaW5hcnktc2VhcmNoLWJvdW5kcyI6MzEsImdsLWJ1ZmZlciI6NzgsImdsLXRleHR1cmUyZCI6MTQ2LCJnbC12YW8iOjE1MCxuZGFycmF5OjI1OX1dLDkyOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBGbG9hdDMyQXJyYXkoMTYpO3JldHVybiBlWzBdPXRbMF0sZVsxXT10WzFdLGVbMl09dFsyXSxlWzNdPXRbM10sZVs0XT10WzRdLGVbNV09dFs1XSxlWzZdPXRbNl0sZVs3XT10WzddLGVbOF09dFs4XSxlWzldPXRbOV0sZVsxMF09dFsxMF0sZVsxMV09dFsxMV0sZVsxMl09dFsxMl0sZVsxM109dFsxM10sZVsxNF09dFsxNF0sZVsxNV09dFsxNV0sZX19LHt9XSw5MzpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbigpe3ZhciB0PW5ldyBGbG9hdDMyQXJyYXkoMTYpO3JldHVybiB0WzBdPTEsdFsxXT0wLHRbMl09MCx0WzNdPTAsdFs0XT0wLHRbNV09MSx0WzZdPTAsdFs3XT0wLHRbOF09MCx0WzldPTAsdFsxMF09MSx0WzExXT0wLHRbMTJdPTAsdFsxM109MCx0WzE0XT0wLHRbMTVdPTEsdH19LHt9XSw5NDpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10WzBdLHI9dFsxXSxuPXRbMl0saT10WzNdLGE9dFs0XSxvPXRbNV0scz10WzZdLGw9dFs3XSxjPXRbOF0sdT10WzldLGY9dFsxMF0saD10WzExXSxwPXRbMTJdLGQ9dFsxM10sbT10WzE0XSxnPXRbMTVdO3JldHVybihlKm8tciphKSooZipnLWgqbSktKGUqcy1uKmEpKih1KmctaCpkKSsoZSpsLWkqYSkqKHUqbS1mKmQpKyhyKnMtbipvKSooYypnLWgqcCktKHIqbC1pKm8pKihjKm0tZipwKSsobipsLWkqcykqKGMqZC11KnApfX0se31dLDk1OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxuPWVbMV0saT1lWzJdLGE9ZVszXSxvPXIrcixzPW4rbixsPWkraSxjPXIqbyx1PW4qbyxmPW4qcyxoPWkqbyxwPWkqcyxkPWkqbCxtPWEqbyxnPWEqcyx2PWEqbDtyZXR1cm4gdFswXT0xLWYtZCx0WzFdPXUrdix0WzJdPWgtZyx0WzNdPTAsdFs0XT11LXYsdFs1XT0xLWMtZCx0WzZdPXArbSx0WzddPTAsdFs4XT1oK2csdFs5XT1wLW0sdFsxMF09MS1jLWYsdFsxMV09MCx0WzEyXT0wLHRbMTNdPTAsdFsxNF09MCx0WzE1XT0xLHR9fSx7fV0sOTY6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWVbMF0saT1lWzFdLGE9ZVsyXSxvPWVbM10scz1uK24sbD1pK2ksYz1hK2EsdT1uKnMsZj1uKmwsaD1uKmMscD1pKmwsZD1pKmMsbT1hKmMsZz1vKnMsdj1vKmwseT1vKmM7cmV0dXJuIHRbMF09MS0ocCttKSx0WzFdPWYreSx0WzJdPWgtdix0WzNdPTAsdFs0XT1mLXksdFs1XT0xLSh1K20pLHRbNl09ZCtnLHRbN109MCx0WzhdPWgrdix0WzldPWQtZyx0WzEwXT0xLSh1K3ApLHRbMTFdPTAsdFsxMl09clswXSx0WzEzXT1yWzFdLHRbMTRdPXJbMl0sdFsxNV09MSx0fX0se31dLDk3OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiB0WzBdPTEsdFsxXT0wLHRbMl09MCx0WzNdPTAsdFs0XT0wLHRbNV09MSx0WzZdPTAsdFs3XT0wLHRbOF09MCx0WzldPTAsdFsxMF09MSx0WzExXT0wLHRbMTJdPTAsdFsxM109MCx0WzE0XT0wLHRbMTVdPTEsdH19LHt9XSw5ODpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPWVbMF0sbj1lWzFdLGk9ZVsyXSxhPWVbM10sbz1lWzRdLHM9ZVs1XSxsPWVbNl0sYz1lWzddLHU9ZVs4XSxmPWVbOV0saD1lWzEwXSxwPWVbMTFdLGQ9ZVsxMl0sbT1lWzEzXSxnPWVbMTRdLHY9ZVsxNV0seT1yKnMtbipvLHg9cipsLWkqbyxiPXIqYy1hKm8sXz1uKmwtaSpzLHc9bipjLWEqcyxUPWkqYy1hKmwsaz11Km0tZipkLEE9dSpnLWgqZCxNPXUqdi1wKmQsUz1mKmctaCptLEU9Zip2LXAqbSxMPWgqdi1wKmcsQz15KkwteCpFK2IqUytfKk0tdypBK1QqaztpZighQylyZXR1cm4gbnVsbDtyZXR1cm4gQz0xL0MsdFswXT0ocypMLWwqRStjKlMpKkMsdFsxXT0oaSpFLW4qTC1hKlMpKkMsdFsyXT0obSpULWcqdyt2Kl8pKkMsdFszXT0oaCp3LWYqVC1wKl8pKkMsdFs0XT0obCpNLW8qTC1jKkEpKkMsdFs1XT0ocipMLWkqTSthKkEpKkMsdFs2XT0oZypiLWQqVC12KngpKkMsdFs3XT0odSpULWgqYitwKngpKkMsdFs4XT0obypFLXMqTStjKmspKkMsdFs5XT0obipNLXIqRS1hKmspKkMsdFsxMF09KGQqdy1tKmIrdip5KSpDLHRbMTFdPShmKmItdSp3LXAqeSkqQyx0WzEyXT0ocypBLW8qUy1sKmspKkMsdFsxM109KHIqUy1uKkEraSprKSpDLHRbMTRdPShtKngtZCpfLWcqeSkqQyx0WzE1XT0odSpfLWYqeCtoKnkpKkMsdH19LHt9XSw5OTpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoIi4vaWRlbnRpdHkiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsaSl7dmFyIGEsbyxzLGwsYyx1LGYsaCxwLGQsbT1lWzBdLGc9ZVsxXSx2PWVbMl0seT1pWzBdLHg9aVsxXSxiPWlbMl0sXz1yWzBdLHc9clsxXSxUPXJbMl07aWYoTWF0aC5hYnMobS1fKTwxZS02JiZNYXRoLmFicyhnLXcpPDFlLTYmJk1hdGguYWJzKHYtVCk8MWUtNilyZXR1cm4gbih0KTtmPW0tXyxoPWctdyxwPXYtVCxkPTEvTWF0aC5zcXJ0KGYqZitoKmgrcCpwKSxhPXgqKHAqPWQpLWIqKGgqPWQpLG89YiooZio9ZCkteSpwLHM9eSpoLXgqZiwoZD1NYXRoLnNxcnQoYSphK28qbytzKnMpKT8oYSo9ZD0xL2Qsbyo9ZCxzKj1kKTooYT0wLG89MCxzPTApO2w9aCpzLXAqbyxjPXAqYS1mKnMsdT1mKm8taCphLChkPU1hdGguc3FydChsKmwrYypjK3UqdSkpPyhsKj1kPTEvZCxjKj1kLHUqPWQpOihsPTAsYz0wLHU9MCk7cmV0dXJuIHRbMF09YSx0WzFdPWwsdFsyXT1mLHRbM109MCx0WzRdPW8sdFs1XT1jLHRbNl09aCx0WzddPTAsdFs4XT1zLHRbOV09dSx0WzEwXT1wLHRbMTFdPTAsdFsxMl09LShhKm0rbypnK3MqdiksdFsxM109LShsKm0rYypnK3UqdiksdFsxNF09LShmKm0raCpnK3AqdiksdFsxNV09MSx0fX0seyIuL2lkZW50aXR5Ijo5N31dLDEwMDpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG49ZVswXSxpPWVbMV0sYT1lWzJdLG89ZVszXSxzPWVbNF0sbD1lWzVdLGM9ZVs2XSx1PWVbN10sZj1lWzhdLGg9ZVs5XSxwPWVbMTBdLGQ9ZVsxMV0sbT1lWzEyXSxnPWVbMTNdLHY9ZVsxNF0seT1lWzE1XSx4PXJbMF0sYj1yWzFdLF89clsyXSx3PXJbM107cmV0dXJuIHRbMF09eCpuK2IqcytfKmYrdyptLHRbMV09eCppK2IqbCtfKmgrdypnLHRbMl09eCphK2IqYytfKnArdyp2LHRbM109eCpvK2IqdStfKmQrdyp5LHg9cls0XSxiPXJbNV0sXz1yWzZdLHc9cls3XSx0WzRdPXgqbitiKnMrXypmK3cqbSx0WzVdPXgqaStiKmwrXypoK3cqZyx0WzZdPXgqYStiKmMrXypwK3cqdix0WzddPXgqbytiKnUrXypkK3cqeSx4PXJbOF0sYj1yWzldLF89clsxMF0sdz1yWzExXSx0WzhdPXgqbitiKnMrXypmK3cqbSx0WzldPXgqaStiKmwrXypoK3cqZyx0WzEwXT14KmErYipjK18qcCt3KnYsdFsxMV09eCpvK2IqdStfKmQrdyp5LHg9clsxMl0sYj1yWzEzXSxfPXJbMTRdLHc9clsxNV0sdFsxMl09eCpuK2IqcytfKmYrdyptLHRbMTNdPXgqaStiKmwrXypoK3cqZyx0WzE0XT14KmErYipjK18qcCt3KnYsdFsxNV09eCpvK2IqdStfKmQrdyp5LHR9fSx7fV0sMTAxOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG4saSxhLG8pe3ZhciBzPTEvKGUtciksbD0xLyhuLWkpLGM9MS8oYS1vKTtyZXR1cm4gdFswXT0tMipzLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09MCx0WzVdPS0yKmwsdFs2XT0wLHRbN109MCx0WzhdPTAsdFs5XT0wLHRbMTBdPTIqYyx0WzExXT0wLHRbMTJdPShlK3IpKnMsdFsxM109KGkrbikqbCx0WzE0XT0obythKSpjLHRbMTVdPTEsdH19LHt9XSwxMDI6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbixpKXt2YXIgYT0xL01hdGgudGFuKGUvMiksbz0xLyhuLWkpO3JldHVybiB0WzBdPWEvcix0WzFdPTAsdFsyXT0wLHRbM109MCx0WzRdPTAsdFs1XT1hLHRbNl09MCx0WzddPTAsdFs4XT0wLHRbOV09MCx0WzEwXT0oaStuKSpvLHRbMTFdPS0xLHRbMTJdPTAsdFsxM109MCx0WzE0XT0yKmkqbipvLHRbMTVdPTAsdH19LHt9XSwxMDM6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGksYSxvLHMsbCxjLHUsZixoLHAsZCxtLGcsdix5LHgsYixfLHcsVCxrLEEsTSxTLEU9blswXSxMPW5bMV0sQz1uWzJdLFA9TWF0aC5zcXJ0KEUqRStMKkwrQypDKTtpZihNYXRoLmFicyhQKTwxZS02KXJldHVybiBudWxsO0UqPVA9MS9QLEwqPVAsQyo9UCxpPU1hdGguc2luKHIpLGE9TWF0aC5jb3Mociksbz0xLWEscz1lWzBdLGw9ZVsxXSxjPWVbMl0sdT1lWzNdLGY9ZVs0XSxoPWVbNV0scD1lWzZdLGQ9ZVs3XSxtPWVbOF0sZz1lWzldLHY9ZVsxMF0seT1lWzExXSx4PUUqRSpvK2EsYj1MKkUqbytDKmksXz1DKkUqby1MKmksdz1FKkwqby1DKmksVD1MKkwqbythLGs9QypMKm8rRSppLEE9RSpDKm8rTCppLE09TCpDKm8tRSppLFM9QypDKm8rYSx0WzBdPXMqeCtmKmIrbSpfLHRbMV09bCp4K2gqYitnKl8sdFsyXT1jKngrcCpiK3YqXyx0WzNdPXUqeCtkKmIreSpfLHRbNF09cyp3K2YqVCttKmssdFs1XT1sKncraCpUK2cqayx0WzZdPWMqdytwKlQrdiprLHRbN109dSp3K2QqVCt5KmssdFs4XT1zKkErZipNK20qUyx0WzldPWwqQStoKk0rZypTLHRbMTBdPWMqQStwKk0rdipTLHRbMTFdPXUqQStkKk0reSpTLGUhPT10JiYodFsxMl09ZVsxMl0sdFsxM109ZVsxM10sdFsxNF09ZVsxNF0sdFsxNV09ZVsxNV0pO3JldHVybiB0fX0se31dLDEwNDpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG49TWF0aC5zaW4ociksaT1NYXRoLmNvcyhyKSxhPWVbNF0sbz1lWzVdLHM9ZVs2XSxsPWVbN10sYz1lWzhdLHU9ZVs5XSxmPWVbMTBdLGg9ZVsxMV07ZSE9PXQmJih0WzBdPWVbMF0sdFsxXT1lWzFdLHRbMl09ZVsyXSx0WzNdPWVbM10sdFsxMl09ZVsxMl0sdFsxM109ZVsxM10sdFsxNF09ZVsxNF0sdFsxNV09ZVsxNV0pO3JldHVybiB0WzRdPWEqaStjKm4sdFs1XT1vKmkrdSpuLHRbNl09cyppK2Yqbix0WzddPWwqaStoKm4sdFs4XT1jKmktYSpuLHRbOV09dSppLW8qbix0WzEwXT1mKmktcypuLHRbMTFdPWgqaS1sKm4sdH19LHt9XSwxMDU6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPU1hdGguc2luKHIpLGk9TWF0aC5jb3MociksYT1lWzBdLG89ZVsxXSxzPWVbMl0sbD1lWzNdLGM9ZVs4XSx1PWVbOV0sZj1lWzEwXSxoPWVbMTFdO2UhPT10JiYodFs0XT1lWzRdLHRbNV09ZVs1XSx0WzZdPWVbNl0sdFs3XT1lWzddLHRbMTJdPWVbMTJdLHRbMTNdPWVbMTNdLHRbMTRdPWVbMTRdLHRbMTVdPWVbMTVdKTtyZXR1cm4gdFswXT1hKmktYypuLHRbMV09byppLXUqbix0WzJdPXMqaS1mKm4sdFszXT1sKmktaCpuLHRbOF09YSpuK2MqaSx0WzldPW8qbit1KmksdFsxMF09cypuK2YqaSx0WzExXT1sKm4raCppLHR9fSx7fV0sMTA2OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1NYXRoLnNpbihyKSxpPU1hdGguY29zKHIpLGE9ZVswXSxvPWVbMV0scz1lWzJdLGw9ZVszXSxjPWVbNF0sdT1lWzVdLGY9ZVs2XSxoPWVbN107ZSE9PXQmJih0WzhdPWVbOF0sdFs5XT1lWzldLHRbMTBdPWVbMTBdLHRbMTFdPWVbMTFdLHRbMTJdPWVbMTJdLHRbMTNdPWVbMTNdLHRbMTRdPWVbMTRdLHRbMTVdPWVbMTVdKTtyZXR1cm4gdFswXT1hKmkrYypuLHRbMV09byppK3Uqbix0WzJdPXMqaStmKm4sdFszXT1sKmkraCpuLHRbNF09YyppLWEqbix0WzVdPXUqaS1vKm4sdFs2XT1mKmktcypuLHRbN109aCppLWwqbix0fX0se31dLDEwNzpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG49clswXSxpPXJbMV0sYT1yWzJdO3JldHVybiB0WzBdPWVbMF0qbix0WzFdPWVbMV0qbix0WzJdPWVbMl0qbix0WzNdPWVbM10qbix0WzRdPWVbNF0qaSx0WzVdPWVbNV0qaSx0WzZdPWVbNl0qaSx0WzddPWVbN10qaSx0WzhdPWVbOF0qYSx0WzldPWVbOV0qYSx0WzEwXT1lWzEwXSphLHRbMTFdPWVbMTFdKmEsdFsxMl09ZVsxMl0sdFsxM109ZVsxM10sdFsxNF09ZVsxNF0sdFsxNV09ZVsxNV0sdH19LHt9XSwxMDg6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuLGksYSxvLHMsbCxjLHUsZixoLHAsZCxtPXJbMF0sZz1yWzFdLHY9clsyXTtlPT09dD8odFsxMl09ZVswXSptK2VbNF0qZytlWzhdKnYrZVsxMl0sdFsxM109ZVsxXSptK2VbNV0qZytlWzldKnYrZVsxM10sdFsxNF09ZVsyXSptK2VbNl0qZytlWzEwXSp2K2VbMTRdLHRbMTVdPWVbM10qbStlWzddKmcrZVsxMV0qditlWzE1XSk6KG49ZVswXSxpPWVbMV0sYT1lWzJdLG89ZVszXSxzPWVbNF0sbD1lWzVdLGM9ZVs2XSx1PWVbN10sZj1lWzhdLGg9ZVs5XSxwPWVbMTBdLGQ9ZVsxMV0sdFswXT1uLHRbMV09aSx0WzJdPWEsdFszXT1vLHRbNF09cyx0WzVdPWwsdFs2XT1jLHRbN109dSx0WzhdPWYsdFs5XT1oLHRbMTBdPXAsdFsxMV09ZCx0WzEyXT1uKm0rcypnK2YqditlWzEyXSx0WzEzXT1pKm0rbCpnK2gqditlWzEzXSx0WzE0XT1hKm0rYypnK3AqditlWzE0XSx0WzE1XT1vKm0rdSpnK2QqditlWzE1XSk7cmV0dXJuIHR9fSx7fV0sMTA5OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aWYodD09PWUpe3ZhciByPWVbMV0sbj1lWzJdLGk9ZVszXSxhPWVbNl0sbz1lWzddLHM9ZVsxMV07dFsxXT1lWzRdLHRbMl09ZVs4XSx0WzNdPWVbMTJdLHRbNF09cix0WzZdPWVbOV0sdFs3XT1lWzEzXSx0WzhdPW4sdFs5XT1hLHRbMTFdPWVbMTRdLHRbMTJdPWksdFsxM109byx0WzE0XT1zfWVsc2UgdFswXT1lWzBdLHRbMV09ZVs0XSx0WzJdPWVbOF0sdFszXT1lWzEyXSx0WzRdPWVbMV0sdFs1XT1lWzVdLHRbNl09ZVs5XSx0WzddPWVbMTNdLHRbOF09ZVsyXSx0WzldPWVbNl0sdFsxMF09ZVsxMF0sdFsxMV09ZVsxNF0sdFsxMl09ZVszXSx0WzEzXT1lWzddLHRbMTRdPWVbMTFdLHRbMTVdPWVbMTVdO3JldHVybiB0fX0se31dLDExMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJiYXJ5Y2VudHJpYyIpLGk9dCgicG9seXRvcGUtY2xvc2VzdC1wb2ludC9saWIvY2xvc2VzdF9wb2ludF8yZC5qcyIpO2Z1bmN0aW9uIGEodCxlKXtmb3IodmFyIHI9WzAsMCwwLDBdLG49MDtuPDQ7KytuKWZvcih2YXIgaT0wO2k8NDsrK2kpcltpXSs9dFs0Km4raV0qZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiBvKHQsZSxyLG4saSl7Zm9yKHZhciBvPWEobixhKHIsYShlLFt0WzBdLHRbMV0sdFsyXSwxXSkpKSxzPTA7czwzOysrcylvW3NdLz1vWzNdO3JldHVyblsuNSppWzBdKigxK29bMF0pLC41KmlbMV0qKDEtb1sxXSldfWZ1bmN0aW9uIHModCxlKXtmb3IodmFyIHI9WzAsMCwwXSxuPTA7bjx0Lmxlbmd0aDsrK24pZm9yKHZhciBpPXRbbl0sYT1lW25dLG89MDtvPDM7KytvKXJbb10rPWEqaVtvXTtyZXR1cm4gcn1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYSxsLGMpe2lmKDE9PT10Lmxlbmd0aClyZXR1cm5bMCx0WzBdLnNsaWNlKCldO2Zvcih2YXIgdT1uZXcgQXJyYXkodC5sZW5ndGgpLGY9MDtmPHQubGVuZ3RoOysrZil1W2ZdPW8odFtmXSxyLGEsbCxjKTt2YXIgaD0wLHA9MS8wO2ZvcihmPTA7Zjx1Lmxlbmd0aDsrK2Ype2Zvcih2YXIgZD0wLG09MDttPDI7KyttKWQrPU1hdGgucG93KHVbZl1bbV0tZVttXSwyKTtkPHAmJihwPWQsaD1mKX12YXIgZz1mdW5jdGlvbih0LGUpe2lmKDI9PT10Lmxlbmd0aCl7Zm9yKHZhciByPTAsYT0wLG89MDtvPDI7KytvKXIrPU1hdGgucG93KGVbb10tdFswXVtvXSwyKSxhKz1NYXRoLnBvdyhlW29dLXRbMV1bb10sMik7cmV0dXJuIHI9TWF0aC5zcXJ0KHIpLGE9TWF0aC5zcXJ0KGEpLHIrYTwxZS02P1sxLDBdOlthLyhyK2EpLHIvKGErcildfWlmKDM9PT10Lmxlbmd0aCl7dmFyIHM9WzAsMF07cmV0dXJuIGkodFswXSx0WzFdLHRbMl0sZSxzKSxuKHQscyl9cmV0dXJuW119KHUsZSksdj0wO2ZvcihmPTA7ZjwzOysrZil7aWYoZ1tmXTwtLjAwMXx8Z1tmXT4xLjAwMDEpcmV0dXJuIG51bGw7dis9Z1tmXX1pZihNYXRoLmFicyh2LTEpPi4wMDEpcmV0dXJuIG51bGw7cmV0dXJuW2gscyh0LGcpLGddfX0se2JhcnljZW50cmljOjE0LCJwb2x5dG9wZS1jbG9zZXN0LXBvaW50L2xpYi9jbG9zZXN0X3BvaW50XzJkLmpzIjoyNzB9XSwxMTE6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCJnbHNsaWZ5IiksaT1uKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYXR0cmlidXRlIHZlYzMgcG9zaXRpb24sIG5vcm1hbDtcbmF0dHJpYnV0ZSB2ZWM0IGNvbG9yO1xuYXR0cmlidXRlIHZlYzIgdXY7XG5cbnVuaWZvcm0gbWF0NCBtb2RlbFxuICAgICAgICAgICAsIHZpZXdcbiAgICAgICAgICAgLCBwcm9qZWN0aW9uXG4gICAgICAgICAgICwgaW52ZXJzZU1vZGVsO1xudW5pZm9ybSB2ZWMzIGV5ZVBvc2l0aW9uXG4gICAgICAgICAgICwgbGlnaHRQb3NpdGlvbjtcblxudmFyeWluZyB2ZWMzIGZfbm9ybWFsXG4gICAgICAgICAgICwgZl9saWdodERpcmVjdGlvblxuICAgICAgICAgICAsIGZfZXllRGlyZWN0aW9uXG4gICAgICAgICAgICwgZl9kYXRhO1xudmFyeWluZyB2ZWM0IGZfY29sb3I7XG52YXJ5aW5nIHZlYzIgZl91djtcblxudmVjNCBwcm9qZWN0KHZlYzMgcCkge1xuICByZXR1cm4gcHJvamVjdGlvbiAqIHZpZXcgKiBtb2RlbCAqIHZlYzQocCwgMS4wKTtcbn1cblxudm9pZCBtYWluKCkge1xuICBnbF9Qb3NpdGlvbiAgICAgID0gcHJvamVjdChwb3NpdGlvbik7XG5cbiAgLy9MaWdodGluZyBnZW9tZXRyeSBwYXJhbWV0ZXJzXG4gIHZlYzQgY2FtZXJhQ29vcmRpbmF0ZSA9IHZpZXcgKiB2ZWM0KHBvc2l0aW9uICwgMS4wKTtcbiAgY2FtZXJhQ29vcmRpbmF0ZS54eXogLz0gY2FtZXJhQ29vcmRpbmF0ZS53O1xuICBmX2xpZ2h0RGlyZWN0aW9uID0gbGlnaHRQb3NpdGlvbiAtIGNhbWVyYUNvb3JkaW5hdGUueHl6O1xuICBmX2V5ZURpcmVjdGlvbiAgID0gZXllUG9zaXRpb24gLSBjYW1lcmFDb29yZGluYXRlLnh5ejtcbiAgZl9ub3JtYWwgID0gbm9ybWFsaXplKCh2ZWM0KG5vcm1hbCwgMC4wKSAqIGludmVyc2VNb2RlbCkueHl6KTtcblxuICBmX2NvbG9yICAgICAgICAgID0gY29sb3I7XG4gIGZfZGF0YSAgICAgICAgICAgPSBwb3NpdGlvbjtcbiAgZl91diAgICAgICAgICAgICA9IHV2O1xufVxuIl0pLGE9bihbIiNleHRlbnNpb24gR0xfT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIDogZW5hYmxlXG5cbnByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmZsb2F0IGJlY2ttYW5uRGlzdHJpYnV0aW9uKGZsb2F0IHgsIGZsb2F0IHJvdWdobmVzcykge1xuICBmbG9hdCBOZG90SCA9IG1heCh4LCAwLjAwMDEpO1xuICBmbG9hdCBjb3MyQWxwaGEgPSBOZG90SCAqIE5kb3RIO1xuICBmbG9hdCB0YW4yQWxwaGEgPSAoY29zMkFscGhhIC0gMS4wKSAvIGNvczJBbHBoYTtcbiAgZmxvYXQgcm91Z2huZXNzMiA9IHJvdWdobmVzcyAqIHJvdWdobmVzcztcbiAgZmxvYXQgZGVub20gPSAzLjE0MTU5MjY1MzU4OTc5MyAqIHJvdWdobmVzczIgKiBjb3MyQWxwaGEgKiBjb3MyQWxwaGE7XG4gIHJldHVybiBleHAodGFuMkFscGhhIC8gcm91Z2huZXNzMikgLyBkZW5vbTtcbn1cblxuZmxvYXQgY29va1RvcnJhbmNlU3BlY3VsYXIoXG4gIHZlYzMgbGlnaHREaXJlY3Rpb24sXG4gIHZlYzMgdmlld0RpcmVjdGlvbixcbiAgdmVjMyBzdXJmYWNlTm9ybWFsLFxuICBmbG9hdCByb3VnaG5lc3MsXG4gIGZsb2F0IGZyZXNuZWwpIHtcblxuICBmbG9hdCBWZG90TiA9IG1heChkb3Qodmlld0RpcmVjdGlvbiwgc3VyZmFjZU5vcm1hbCksIDAuMCk7XG4gIGZsb2F0IExkb3ROID0gbWF4KGRvdChsaWdodERpcmVjdGlvbiwgc3VyZmFjZU5vcm1hbCksIDAuMCk7XG5cbiAgLy9IYWxmIGFuZ2xlIHZlY3RvclxuICB2ZWMzIEggPSBub3JtYWxpemUobGlnaHREaXJlY3Rpb24gKyB2aWV3RGlyZWN0aW9uKTtcblxuICAvL0dlb21ldHJpYyB0ZXJtXG4gIGZsb2F0IE5kb3RIID0gbWF4KGRvdChzdXJmYWNlTm9ybWFsLCBIKSwgMC4wKTtcbiAgZmxvYXQgVmRvdEggPSBtYXgoZG90KHZpZXdEaXJlY3Rpb24sIEgpLCAwLjAwMDAwMSk7XG4gIGZsb2F0IExkb3RIID0gbWF4KGRvdChsaWdodERpcmVjdGlvbiwgSCksIDAuMDAwMDAxKTtcbiAgZmxvYXQgRzEgPSAoMi4wICogTmRvdEggKiBWZG90TikgLyBWZG90SDtcbiAgZmxvYXQgRzIgPSAoMi4wICogTmRvdEggKiBMZG90TikgLyBMZG90SDtcbiAgZmxvYXQgRyA9IG1pbigxLjAsIG1pbihHMSwgRzIpKTtcbiAgXG4gIC8vRGlzdHJpYnV0aW9uIHRlcm1cbiAgZmxvYXQgRCA9IGJlY2ttYW5uRGlzdHJpYnV0aW9uKE5kb3RILCByb3VnaG5lc3MpO1xuXG4gIC8vRnJlc25lbCB0ZXJtXG4gIGZsb2F0IEYgPSBwb3coMS4wIC0gVmRvdE4sIGZyZXNuZWwpO1xuXG4gIC8vTXVsdGlwbHkgdGVybXMgYW5kIGRvbmVcbiAgcmV0dXJuICBHICogRiAqIEQgLyBtYXgoMy4xNDE1OTI2NSAqIFZkb3ROLCAwLjAwMDAwMSk7XG59XG5cbi8vI3ByYWdtYSBnbHNsaWZ5OiBiZWNrbWFubiA9IHJlcXVpcmUoZ2xzbC1zcGVjdWxhci1iZWNrbWFubikgLy8gdXNlZCBpbiBnbC1zdXJmYWNlM2RcblxuYm9vbCBvdXRPZlJhbmdlKGZsb2F0IGEsIGZsb2F0IGIsIGZsb2F0IHApIHtcbiAgcmV0dXJuICgocCA+IG1heChhLCBiKSkgfHwgXG4gICAgICAgICAgKHAgPCBtaW4oYSwgYikpKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzIgYSwgdmVjMiBiLCB2ZWMyIHApIHtcbiAgcmV0dXJuIChvdXRPZlJhbmdlKGEueCwgYi54LCBwLngpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnksIGIueSwgcC55KSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWMzIGEsIHZlYzMgYiwgdmVjMyBwKSB7XG4gIHJldHVybiAob3V0T2ZSYW5nZShhLngsIGIueCwgcC54KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS55LCBiLnksIHAueSkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueiwgYi56LCBwLnopKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzQgYSwgdmVjNCBiLCB2ZWM0IHApIHtcbiAgcmV0dXJuIG91dE9mUmFuZ2UoYS54eXosIGIueHl6LCBwLnh5eik7XG59XG5cbnVuaWZvcm0gdmVjMyBjbGlwQm91bmRzWzJdO1xudW5pZm9ybSBmbG9hdCByb3VnaG5lc3NcbiAgICAgICAgICAgICwgZnJlc25lbFxuICAgICAgICAgICAgLCBrYW1iaWVudFxuICAgICAgICAgICAgLCBrZGlmZnVzZVxuICAgICAgICAgICAgLCBrc3BlY3VsYXI7XG51bmlmb3JtIHNhbXBsZXIyRCB0ZXh0dXJlO1xuXG52YXJ5aW5nIHZlYzMgZl9ub3JtYWxcbiAgICAgICAgICAgLCBmX2xpZ2h0RGlyZWN0aW9uXG4gICAgICAgICAgICwgZl9leWVEaXJlY3Rpb25cbiAgICAgICAgICAgLCBmX2RhdGE7XG52YXJ5aW5nIHZlYzQgZl9jb2xvcjtcbnZhcnlpbmcgdmVjMiBmX3V2O1xuXG52b2lkIG1haW4oKSB7XG4gIGlmIChmX2NvbG9yLmEgPT0gMC4wIHx8XG4gICAgb3V0T2ZSYW5nZShjbGlwQm91bmRzWzBdLCBjbGlwQm91bmRzWzFdLCBmX2RhdGEpXG4gICkgZGlzY2FyZDtcblxuICB2ZWMzIE4gPSBub3JtYWxpemUoZl9ub3JtYWwpO1xuICB2ZWMzIEwgPSBub3JtYWxpemUoZl9saWdodERpcmVjdGlvbik7XG4gIHZlYzMgViA9IG5vcm1hbGl6ZShmX2V5ZURpcmVjdGlvbik7XG5cbiAgaWYoZ2xfRnJvbnRGYWNpbmcpIHtcbiAgICBOID0gLU47XG4gIH1cblxuICBmbG9hdCBzcGVjdWxhciA9IG1pbigxLjAsIG1heCgwLjAsIGNvb2tUb3JyYW5jZVNwZWN1bGFyKEwsIFYsIE4sIHJvdWdobmVzcywgZnJlc25lbCkpKTtcbiAgLy9mbG9hdCBzcGVjdWxhciA9IG1heCgwLjAsIGJlY2ttYW5uKEwsIFYsIE4sIHJvdWdobmVzcykpOyAvLyB1c2VkIGluIGdsLXN1cmZhY2UzZFxuXG4gIGZsb2F0IGRpZmZ1c2UgID0gbWluKGthbWJpZW50ICsga2RpZmZ1c2UgKiBtYXgoZG90KE4sIEwpLCAwLjApLCAxLjApO1xuXG4gIHZlYzQgc3VyZmFjZUNvbG9yID0gdmVjNChmX2NvbG9yLnJnYiwgMS4wKSAqIHRleHR1cmUyRCh0ZXh0dXJlLCBmX3V2KTtcbiAgdmVjNCBsaXRDb2xvciA9IHN1cmZhY2VDb2xvci5hICogdmVjNChkaWZmdXNlICogc3VyZmFjZUNvbG9yLnJnYiArIGtzcGVjdWxhciAqIHZlYzMoMSwxLDEpICogc3BlY3VsYXIsICAxLjApO1xuXG4gIGdsX0ZyYWdDb2xvciA9IGxpdENvbG9yICogZl9jb2xvci5hO1xufVxuIl0pLG89bihbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmF0dHJpYnV0ZSB2ZWMzIHBvc2l0aW9uO1xuYXR0cmlidXRlIHZlYzQgY29sb3I7XG5hdHRyaWJ1dGUgdmVjMiB1djtcblxudW5pZm9ybSBtYXQ0IG1vZGVsLCB2aWV3LCBwcm9qZWN0aW9uO1xuXG52YXJ5aW5nIHZlYzQgZl9jb2xvcjtcbnZhcnlpbmcgdmVjMyBmX2RhdGE7XG52YXJ5aW5nIHZlYzIgZl91djtcblxudm9pZCBtYWluKCkge1xuICBnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb24gKiB2aWV3ICogbW9kZWwgKiB2ZWM0KHBvc2l0aW9uLCAxLjApO1xuICBmX2NvbG9yID0gY29sb3I7XG4gIGZfZGF0YSAgPSBwb3NpdGlvbjtcbiAgZl91diAgICA9IHV2O1xufSJdKSxzPW4oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5ib29sIG91dE9mUmFuZ2UoZmxvYXQgYSwgZmxvYXQgYiwgZmxvYXQgcCkge1xuICByZXR1cm4gKChwID4gbWF4KGEsIGIpKSB8fCBcbiAgICAgICAgICAocCA8IG1pbihhLCBiKSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMiBhLCB2ZWMyIGIsIHZlYzIgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzMgYSwgdmVjMyBiLCB2ZWMzIHApIHtcbiAgcmV0dXJuIChvdXRPZlJhbmdlKGEueCwgYi54LCBwLngpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnksIGIueSwgcC55KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS56LCBiLnosIHAueikpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjNCBhLCB2ZWM0IGIsIHZlYzQgcCkge1xuICByZXR1cm4gb3V0T2ZSYW5nZShhLnh5eiwgYi54eXosIHAueHl6KTtcbn1cblxudW5pZm9ybSB2ZWMzIGNsaXBCb3VuZHNbMl07XG51bmlmb3JtIHNhbXBsZXIyRCB0ZXh0dXJlO1xudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xuXG52YXJ5aW5nIHZlYzQgZl9jb2xvcjtcbnZhcnlpbmcgdmVjMyBmX2RhdGE7XG52YXJ5aW5nIHZlYzIgZl91djtcblxudm9pZCBtYWluKCkge1xuICBpZiAob3V0T2ZSYW5nZShjbGlwQm91bmRzWzBdLCBjbGlwQm91bmRzWzFdLCBmX2RhdGEpKSBkaXNjYXJkO1xuXG4gIGdsX0ZyYWdDb2xvciA9IGZfY29sb3IgKiB0ZXh0dXJlMkQodGV4dHVyZSwgZl91dikgKiBvcGFjaXR5O1xufSJdKSxsPW4oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5ib29sIG91dE9mUmFuZ2UoZmxvYXQgYSwgZmxvYXQgYiwgZmxvYXQgcCkge1xuICByZXR1cm4gKChwID4gbWF4KGEsIGIpKSB8fCBcbiAgICAgICAgICAocCA8IG1pbihhLCBiKSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMiBhLCB2ZWMyIGIsIHZlYzIgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzMgYSwgdmVjMyBiLCB2ZWMzIHApIHtcbiAgcmV0dXJuIChvdXRPZlJhbmdlKGEueCwgYi54LCBwLngpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnksIGIueSwgcC55KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS56LCBiLnosIHAueikpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjNCBhLCB2ZWM0IGIsIHZlYzQgcCkge1xuICByZXR1cm4gb3V0T2ZSYW5nZShhLnh5eiwgYi54eXosIHAueHl6KTtcbn1cblxuYXR0cmlidXRlIHZlYzMgcG9zaXRpb247XG5hdHRyaWJ1dGUgdmVjNCBjb2xvcjtcbmF0dHJpYnV0ZSB2ZWMyIHV2O1xuYXR0cmlidXRlIGZsb2F0IHBvaW50U2l6ZTtcblxudW5pZm9ybSBtYXQ0IG1vZGVsLCB2aWV3LCBwcm9qZWN0aW9uO1xudW5pZm9ybSB2ZWMzIGNsaXBCb3VuZHNbMl07XG5cbnZhcnlpbmcgdmVjNCBmX2NvbG9yO1xudmFyeWluZyB2ZWMyIGZfdXY7XG5cbnZvaWQgbWFpbigpIHtcbiAgaWYgKG91dE9mUmFuZ2UoY2xpcEJvdW5kc1swXSwgY2xpcEJvdW5kc1sxXSwgcG9zaXRpb24pKSB7XG5cbiAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoMC4wLCAwLjAgLDAuMCAsMC4wKTtcbiAgfSBlbHNlIHtcbiAgICBnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb24gKiB2aWV3ICogbW9kZWwgKiB2ZWM0KHBvc2l0aW9uLCAxLjApO1xuICB9XG4gIGdsX1BvaW50U2l6ZSA9IHBvaW50U2l6ZTtcbiAgZl9jb2xvciA9IGNvbG9yO1xuICBmX3V2ID0gdXY7XG59Il0pLGM9bihbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbnVuaWZvcm0gc2FtcGxlcjJEIHRleHR1cmU7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG5cbnZhcnlpbmcgdmVjNCBmX2NvbG9yO1xudmFyeWluZyB2ZWMyIGZfdXY7XG5cbnZvaWQgbWFpbigpIHtcbiAgdmVjMiBwb2ludFIgPSBnbF9Qb2ludENvb3JkLnh5IC0gdmVjMigwLjUsIDAuNSk7XG4gIGlmKGRvdChwb2ludFIsIHBvaW50UikgPiAwLjI1KSB7XG4gICAgZGlzY2FyZDtcbiAgfVxuICBnbF9GcmFnQ29sb3IgPSBmX2NvbG9yICogdGV4dHVyZTJEKHRleHR1cmUsIGZfdXYpICogb3BhY2l0eTtcbn0iXSksdT1uKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYXR0cmlidXRlIHZlYzMgcG9zaXRpb247XG5hdHRyaWJ1dGUgdmVjNCBpZDtcblxudW5pZm9ybSBtYXQ0IG1vZGVsLCB2aWV3LCBwcm9qZWN0aW9uO1xuXG52YXJ5aW5nIHZlYzMgZl9wb3NpdGlvbjtcbnZhcnlpbmcgdmVjNCBmX2lkO1xuXG52b2lkIG1haW4oKSB7XG4gIGdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbiAqIHZpZXcgKiBtb2RlbCAqIHZlYzQocG9zaXRpb24sIDEuMCk7XG4gIGZfaWQgICAgICAgID0gaWQ7XG4gIGZfcG9zaXRpb24gID0gcG9zaXRpb247XG59Il0pLGY9bihbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmJvb2wgb3V0T2ZSYW5nZShmbG9hdCBhLCBmbG9hdCBiLCBmbG9hdCBwKSB7XG4gIHJldHVybiAoKHAgPiBtYXgoYSwgYikpIHx8IFxuICAgICAgICAgIChwIDwgbWluKGEsIGIpKSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWMyIGEsIHZlYzIgYiwgdmVjMiBwKSB7XG4gIHJldHVybiAob3V0T2ZSYW5nZShhLngsIGIueCwgcC54KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS55LCBiLnksIHAueSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMyBhLCB2ZWMzIGIsIHZlYzMgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnosIGIueiwgcC56KSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWM0IGEsIHZlYzQgYiwgdmVjNCBwKSB7XG4gIHJldHVybiBvdXRPZlJhbmdlKGEueHl6LCBiLnh5eiwgcC54eXopO1xufVxuXG51bmlmb3JtIHZlYzMgIGNsaXBCb3VuZHNbMl07XG51bmlmb3JtIGZsb2F0IHBpY2tJZDtcblxudmFyeWluZyB2ZWMzIGZfcG9zaXRpb247XG52YXJ5aW5nIHZlYzQgZl9pZDtcblxudm9pZCBtYWluKCkge1xuICBpZiAob3V0T2ZSYW5nZShjbGlwQm91bmRzWzBdLCBjbGlwQm91bmRzWzFdLCBmX3Bvc2l0aW9uKSkgZGlzY2FyZDtcblxuICBnbF9GcmFnQ29sb3IgPSB2ZWM0KHBpY2tJZCwgZl9pZC54eXopO1xufSJdKSxoPW4oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5ib29sIG91dE9mUmFuZ2UoZmxvYXQgYSwgZmxvYXQgYiwgZmxvYXQgcCkge1xuICByZXR1cm4gKChwID4gbWF4KGEsIGIpKSB8fCBcbiAgICAgICAgICAocCA8IG1pbihhLCBiKSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMiBhLCB2ZWMyIGIsIHZlYzIgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzMgYSwgdmVjMyBiLCB2ZWMzIHApIHtcbiAgcmV0dXJuIChvdXRPZlJhbmdlKGEueCwgYi54LCBwLngpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnksIGIueSwgcC55KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS56LCBiLnosIHAueikpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjNCBhLCB2ZWM0IGIsIHZlYzQgcCkge1xuICByZXR1cm4gb3V0T2ZSYW5nZShhLnh5eiwgYi54eXosIHAueHl6KTtcbn1cblxuYXR0cmlidXRlIHZlYzMgIHBvc2l0aW9uO1xuYXR0cmlidXRlIGZsb2F0IHBvaW50U2l6ZTtcbmF0dHJpYnV0ZSB2ZWM0ICBpZDtcblxudW5pZm9ybSBtYXQ0IG1vZGVsLCB2aWV3LCBwcm9qZWN0aW9uO1xudW5pZm9ybSB2ZWMzIGNsaXBCb3VuZHNbMl07XG5cbnZhcnlpbmcgdmVjMyBmX3Bvc2l0aW9uO1xudmFyeWluZyB2ZWM0IGZfaWQ7XG5cbnZvaWQgbWFpbigpIHtcbiAgaWYgKG91dE9mUmFuZ2UoY2xpcEJvdW5kc1swXSwgY2xpcEJvdW5kc1sxXSwgcG9zaXRpb24pKSB7XG5cbiAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoMC4wLCAwLjAsIDAuMCwgMC4wKTtcbiAgfSBlbHNlIHtcbiAgICBnbF9Qb3NpdGlvbiAgPSBwcm9qZWN0aW9uICogdmlldyAqIG1vZGVsICogdmVjNChwb3NpdGlvbiwgMS4wKTtcbiAgICBnbF9Qb2ludFNpemUgPSBwb2ludFNpemU7XG4gIH1cbiAgZl9pZCAgICAgICAgID0gaWQ7XG4gIGZfcG9zaXRpb24gICA9IHBvc2l0aW9uO1xufSJdKSxwPW4oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5hdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbjtcblxudW5pZm9ybSBtYXQ0IG1vZGVsLCB2aWV3LCBwcm9qZWN0aW9uO1xuXG52b2lkIG1haW4oKSB7XG4gIGdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbiAqIHZpZXcgKiBtb2RlbCAqIHZlYzQocG9zaXRpb24sIDEuMCk7XG59Il0pLGQ9bihbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbnVuaWZvcm0gdmVjMyBjb250b3VyQ29sb3I7XG5cbnZvaWQgbWFpbigpIHtcbiAgZ2xfRnJhZ0NvbG9yID0gdmVjNChjb250b3VyQ29sb3IsIDEuMCk7XG59XG4iXSk7ci5tZXNoU2hhZGVyPXt2ZXJ0ZXg6aSxmcmFnbWVudDphLGF0dHJpYnV0ZXM6W3tuYW1lOiJwb3NpdGlvbiIsdHlwZToidmVjMyJ9LHtuYW1lOiJub3JtYWwiLHR5cGU6InZlYzMifSx7bmFtZToiY29sb3IiLHR5cGU6InZlYzQifSx7bmFtZToidXYiLHR5cGU6InZlYzIifV19LHIud2lyZVNoYWRlcj17dmVydGV4Om8sZnJhZ21lbnQ6cyxhdHRyaWJ1dGVzOlt7bmFtZToicG9zaXRpb24iLHR5cGU6InZlYzMifSx7bmFtZToiY29sb3IiLHR5cGU6InZlYzQifSx7bmFtZToidXYiLHR5cGU6InZlYzIifV19LHIucG9pbnRTaGFkZXI9e3ZlcnRleDpsLGZyYWdtZW50OmMsYXR0cmlidXRlczpbe25hbWU6InBvc2l0aW9uIix0eXBlOiJ2ZWMzIn0se25hbWU6ImNvbG9yIix0eXBlOiJ2ZWM0In0se25hbWU6InV2Iix0eXBlOiJ2ZWMyIn0se25hbWU6InBvaW50U2l6ZSIsdHlwZToiZmxvYXQifV19LHIucGlja1NoYWRlcj17dmVydGV4OnUsZnJhZ21lbnQ6ZixhdHRyaWJ1dGVzOlt7bmFtZToicG9zaXRpb24iLHR5cGU6InZlYzMifSx7bmFtZToiaWQiLHR5cGU6InZlYzQifV19LHIucG9pbnRQaWNrU2hhZGVyPXt2ZXJ0ZXg6aCxmcmFnbWVudDpmLGF0dHJpYnV0ZXM6W3tuYW1lOiJwb3NpdGlvbiIsdHlwZToidmVjMyJ9LHtuYW1lOiJwb2ludFNpemUiLHR5cGU6ImZsb2F0In0se25hbWU6ImlkIix0eXBlOiJ2ZWM0In1dfSxyLmNvbnRvdXJTaGFkZXI9e3ZlcnRleDpwLGZyYWdtZW50OmQsYXR0cmlidXRlczpbe25hbWU6InBvc2l0aW9uIix0eXBlOiJ2ZWMzIn1dfX0se2dsc2xpZnk6MjMxfV0sMTEyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImdsLXNoYWRlciIpLGk9dCgiZ2wtYnVmZmVyIiksYT10KCJnbC12YW8iKSxvPXQoImdsLXRleHR1cmUyZCIpLHM9dCgibm9ybWFscyIpLGw9dCgiZ2wtbWF0NC9tdWx0aXBseSIpLGM9dCgiZ2wtbWF0NC9pbnZlcnQiKSx1PXQoIm5kYXJyYXkiKSxmPXQoImNvbG9ybWFwIiksaD10KCJzaW1wbGljaWFsLWNvbXBsZXgtY29udG91ciIpLHA9dCgidHlwZWRhcnJheS1wb29sIiksZD10KCIuL2xpYi9zaGFkZXJzIiksbT10KCIuL2xpYi9jbG9zZXN0LXBvaW50IiksZz1kLm1lc2hTaGFkZXIsdj1kLndpcmVTaGFkZXIseT1kLnBvaW50U2hhZGVyLHg9ZC5waWNrU2hhZGVyLGI9ZC5wb2ludFBpY2tTaGFkZXIsXz1kLmNvbnRvdXJTaGFkZXIsdz1bMSwwLDAsMCwwLDEsMCwwLDAsMCwxLDAsMCwwLDAsMV07ZnVuY3Rpb24gVCh0LGUscixuLGksYSxvLHMsbCxjLHUsZixoLHAsZCxtLGcsdix5LHgsYixfLFQsayxBLE0sUyl7dGhpcy5nbD10LHRoaXMucGl4ZWxSYXRpbz0xLHRoaXMuY2VsbHM9W10sdGhpcy5wb3NpdGlvbnM9W10sdGhpcy5pbnRlbnNpdHk9W10sdGhpcy50ZXh0dXJlPWUsdGhpcy5kaXJ0eT0hMCx0aGlzLnRyaVNoYWRlcj1yLHRoaXMubGluZVNoYWRlcj1uLHRoaXMucG9pbnRTaGFkZXI9aSx0aGlzLnBpY2tTaGFkZXI9YSx0aGlzLnBvaW50UGlja1NoYWRlcj1vLHRoaXMuY29udG91clNoYWRlcj1zLHRoaXMudHJpYW5nbGVQb3NpdGlvbnM9bCx0aGlzLnRyaWFuZ2xlQ29sb3JzPXUsdGhpcy50cmlhbmdsZU5vcm1hbHM9aCx0aGlzLnRyaWFuZ2xlVVZzPWYsdGhpcy50cmlhbmdsZUlkcz1jLHRoaXMudHJpYW5nbGVWQU89cCx0aGlzLnRyaWFuZ2xlQ291bnQ9MCx0aGlzLmxpbmVXaWR0aD0xLHRoaXMuZWRnZVBvc2l0aW9ucz1kLHRoaXMuZWRnZUNvbG9ycz1nLHRoaXMuZWRnZVVWcz12LHRoaXMuZWRnZUlkcz1tLHRoaXMuZWRnZVZBTz15LHRoaXMuZWRnZUNvdW50PTAsdGhpcy5wb2ludFBvc2l0aW9ucz14LHRoaXMucG9pbnRDb2xvcnM9Xyx0aGlzLnBvaW50VVZzPVQsdGhpcy5wb2ludFNpemVzPWssdGhpcy5wb2ludElkcz1iLHRoaXMucG9pbnRWQU89QSx0aGlzLnBvaW50Q291bnQ9MCx0aGlzLmNvbnRvdXJMaW5lV2lkdGg9MSx0aGlzLmNvbnRvdXJQb3NpdGlvbnM9TSx0aGlzLmNvbnRvdXJWQU89Uyx0aGlzLmNvbnRvdXJDb3VudD0wLHRoaXMuY29udG91ckNvbG9yPVswLDAsMF0sdGhpcy5jb250b3VyRW5hYmxlPSEwLHRoaXMucGlja1ZlcnRleD0hMCx0aGlzLnBpY2tJZD0xLHRoaXMuYm91bmRzPVtbMS8wLDEvMCwxLzBdLFstMS8wLC0xLzAsLTEvMF1dLHRoaXMuY2xpcEJvdW5kcz1bWy0xLzAsLTEvMCwtMS8wXSxbMS8wLDEvMCwxLzBdXSx0aGlzLmxpZ2h0UG9zaXRpb249WzFlNSwxZTUsMF0sdGhpcy5hbWJpZW50TGlnaHQ9LjgsdGhpcy5kaWZmdXNlTGlnaHQ9LjgsdGhpcy5zcGVjdWxhckxpZ2h0PTIsdGhpcy5yb3VnaG5lc3M9LjUsdGhpcy5mcmVzbmVsPTEuNSx0aGlzLm9wYWNpdHk9MSx0aGlzLmhhc0FscGhhPSExLHRoaXMub3BhY2l0eXNjYWxlPSExLHRoaXMuX21vZGVsPXcsdGhpcy5fdmlldz13LHRoaXMuX3Byb2plY3Rpb249dyx0aGlzLl9yZXNvbHV0aW9uPVsxLDFdfXZhciBrPVQucHJvdG90eXBlO2Z1bmN0aW9uIEEodCxlKXtpZighZSlyZXR1cm4gMTtpZighZS5sZW5ndGgpcmV0dXJuIDE7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDsrK3Ipe2lmKGUubGVuZ3RoPDIpcmV0dXJuIDE7aWYoZVtyXVswXT09PXQpcmV0dXJuIGVbcl1bMV07aWYoZVtyXVswXT50JiZyPjApe3ZhciBuPShlW3JdWzBdLXQpLyhlW3JdWzBdLWVbci0xXVswXSk7cmV0dXJuIGVbcl1bMV0qKDEtbikrbiplW3ItMV1bMV19fXJldHVybiAxfWZ1bmN0aW9uIE0odCl7dmFyIGU9bih0LGcudmVydGV4LGcuZnJhZ21lbnQpO3JldHVybiBlLmF0dHJpYnV0ZXMucG9zaXRpb24ubG9jYXRpb249MCxlLmF0dHJpYnV0ZXMuY29sb3IubG9jYXRpb249MixlLmF0dHJpYnV0ZXMudXYubG9jYXRpb249MyxlLmF0dHJpYnV0ZXMubm9ybWFsLmxvY2F0aW9uPTQsZX1mdW5jdGlvbiBTKHQpe3ZhciBlPW4odCx2LnZlcnRleCx2LmZyYWdtZW50KTtyZXR1cm4gZS5hdHRyaWJ1dGVzLnBvc2l0aW9uLmxvY2F0aW9uPTAsZS5hdHRyaWJ1dGVzLmNvbG9yLmxvY2F0aW9uPTIsZS5hdHRyaWJ1dGVzLnV2LmxvY2F0aW9uPTMsZX1mdW5jdGlvbiBFKHQpe3ZhciBlPW4odCx5LnZlcnRleCx5LmZyYWdtZW50KTtyZXR1cm4gZS5hdHRyaWJ1dGVzLnBvc2l0aW9uLmxvY2F0aW9uPTAsZS5hdHRyaWJ1dGVzLmNvbG9yLmxvY2F0aW9uPTIsZS5hdHRyaWJ1dGVzLnV2LmxvY2F0aW9uPTMsZS5hdHRyaWJ1dGVzLnBvaW50U2l6ZS5sb2NhdGlvbj00LGV9ZnVuY3Rpb24gTCh0KXt2YXIgZT1uKHQseC52ZXJ0ZXgseC5mcmFnbWVudCk7cmV0dXJuIGUuYXR0cmlidXRlcy5wb3NpdGlvbi5sb2NhdGlvbj0wLGUuYXR0cmlidXRlcy5pZC5sb2NhdGlvbj0xLGV9ZnVuY3Rpb24gQyh0KXt2YXIgZT1uKHQsYi52ZXJ0ZXgsYi5mcmFnbWVudCk7cmV0dXJuIGUuYXR0cmlidXRlcy5wb3NpdGlvbi5sb2NhdGlvbj0wLGUuYXR0cmlidXRlcy5pZC5sb2NhdGlvbj0xLGUuYXR0cmlidXRlcy5wb2ludFNpemUubG9jYXRpb249NCxlfWZ1bmN0aW9uIFAodCl7dmFyIGU9bih0LF8udmVydGV4LF8uZnJhZ21lbnQpO3JldHVybiBlLmF0dHJpYnV0ZXMucG9zaXRpb24ubG9jYXRpb249MCxlfWsuaXNPcGFxdWU9ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5oYXNBbHBoYX0say5pc1RyYW5zcGFyZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGFzQWxwaGF9LGsucGlja1Nsb3RzPTEsay5zZXRQaWNrQmFzZT1mdW5jdGlvbih0KXt0aGlzLnBpY2tJZD10fSxrLmhpZ2hsaWdodD1mdW5jdGlvbih0KXtpZih0JiZ0aGlzLmNvbnRvdXJFbmFibGUpe2Zvcih2YXIgZT1oKHRoaXMuY2VsbHMsdGhpcy5pbnRlbnNpdHksdC5pbnRlbnNpdHkpLHI9ZS5jZWxscyxuPWUudmVydGV4SWRzLGk9ZS52ZXJ0ZXhXZWlnaHRzLGE9ci5sZW5ndGgsbz1wLm1hbGxvY0Zsb2F0MzIoNiphKSxzPTAsbD0wO2w8YTsrK2wpZm9yKHZhciBjPXJbbF0sdT0wO3U8MjsrK3Upe3ZhciBmPWNbMF07Mj09PWMubGVuZ3RoJiYoZj1jW3VdKTtmb3IodmFyIGQ9bltmXVswXSxtPW5bZl1bMV0sZz1pW2ZdLHY9MS1nLHk9dGhpcy5wb3NpdGlvbnNbZF0seD10aGlzLnBvc2l0aW9uc1ttXSxiPTA7YjwzOysrYilvW3MrK109Zyp5W2JdK3YqeFtiXX10aGlzLmNvbnRvdXJDb3VudD1zLzN8MCx0aGlzLmNvbnRvdXJQb3NpdGlvbnMudXBkYXRlKG8uc3ViYXJyYXkoMCxzKSkscC5mcmVlKG8pfWVsc2UgdGhpcy5jb250b3VyQ291bnQ9MH0say51cGRhdGU9ZnVuY3Rpb24odCl7dD10fHx7fTt2YXIgZT10aGlzLmdsO3RoaXMuZGlydHk9ITAsImNvbnRvdXJFbmFibGUiaW4gdCYmKHRoaXMuY29udG91ckVuYWJsZT10LmNvbnRvdXJFbmFibGUpLCJjb250b3VyQ29sb3IiaW4gdCYmKHRoaXMuY29udG91ckNvbG9yPXQuY29udG91ckNvbG9yKSwibGluZVdpZHRoImluIHQmJih0aGlzLmxpbmVXaWR0aD10LmxpbmVXaWR0aCksImxpZ2h0UG9zaXRpb24iaW4gdCYmKHRoaXMubGlnaHRQb3NpdGlvbj10LmxpZ2h0UG9zaXRpb24pLHRoaXMuaGFzQWxwaGE9ITEsIm9wYWNpdHkiaW4gdCYmKHRoaXMub3BhY2l0eT10Lm9wYWNpdHksdGhpcy5vcGFjaXR5PDEmJih0aGlzLmhhc0FscGhhPSEwKSksIm9wYWNpdHlzY2FsZSJpbiB0JiYodGhpcy5vcGFjaXR5c2NhbGU9dC5vcGFjaXR5c2NhbGUsdGhpcy5oYXNBbHBoYT0hMCksImFtYmllbnQiaW4gdCYmKHRoaXMuYW1iaWVudExpZ2h0PXQuYW1iaWVudCksImRpZmZ1c2UiaW4gdCYmKHRoaXMuZGlmZnVzZUxpZ2h0PXQuZGlmZnVzZSksInNwZWN1bGFyImluIHQmJih0aGlzLnNwZWN1bGFyTGlnaHQ9dC5zcGVjdWxhciksInJvdWdobmVzcyJpbiB0JiYodGhpcy5yb3VnaG5lc3M9dC5yb3VnaG5lc3MpLCJmcmVzbmVsImluIHQmJih0aGlzLmZyZXNuZWw9dC5mcmVzbmVsKSx0LnRleHR1cmU/KHRoaXMudGV4dHVyZS5kaXNwb3NlKCksdGhpcy50ZXh0dXJlPW8oZSx0LnRleHR1cmUpKTp0LmNvbG9ybWFwJiYodGhpcy50ZXh0dXJlLnNoYXBlPVsyNTYsMjU2XSx0aGlzLnRleHR1cmUubWluRmlsdGVyPWUuTElORUFSX01JUE1BUF9MSU5FQVIsdGhpcy50ZXh0dXJlLm1hZ0ZpbHRlcj1lLkxJTkVBUix0aGlzLnRleHR1cmUuc2V0UGl4ZWxzKGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPWYoe2NvbG9ybWFwOnQsbnNoYWRlczoyNTYsZm9ybWF0OiJyZ2JhIn0pLG49bmV3IFVpbnQ4QXJyYXkoMTAyNCksaT0wO2k8MjU2OysraSl7Zm9yKHZhciBhPXJbaV0sbz0wO288MzsrK28pbls0Kmkrb109YVtvXTtuWzQqaSszXT1lPzI1NSpBKGkvMjU1LGUpOjI1NSphWzNdfXJldHVybiB1KG4sWzI1NiwyNTYsNF0sWzQsMCwxXSl9KHQuY29sb3JtYXAsdGhpcy5vcGFjaXR5c2NhbGUpKSx0aGlzLnRleHR1cmUuZ2VuZXJhdGVNaXBtYXAoKSk7dmFyIHI9dC5jZWxscyxuPXQucG9zaXRpb25zO2lmKG4mJnIpe3ZhciBpPVtdLGE9W10sbD1bXSxjPVtdLGg9W10scD1bXSxkPVtdLG09W10sZz1bXSx2PVtdLHk9W10seD1bXSxiPVtdLF89W107dGhpcy5jZWxscz1yLHRoaXMucG9zaXRpb25zPW47dmFyIHc9dC52ZXJ0ZXhOb3JtYWxzLFQ9dC5jZWxsTm9ybWFscyxrPXZvaWQgMD09PXQudmVydGV4Tm9ybWFsc0Vwc2lsb24/MWUtNjp0LnZlcnRleE5vcm1hbHNFcHNpbG9uLE09dm9pZCAwPT09dC5mYWNlTm9ybWFsc0Vwc2lsb24/MWUtNjp0LmZhY2VOb3JtYWxzRXBzaWxvbjt0LnVzZUZhY2V0Tm9ybWFscyYmIVQmJihUPXMuZmFjZU5vcm1hbHMocixuLE0pKSxUfHx3fHwodz1zLnZlcnRleE5vcm1hbHMocixuLGspKTt2YXIgUz10LnZlcnRleENvbG9ycyxFPXQuY2VsbENvbG9ycyxMPXQubWVzaENvbG9yfHxbMSwxLDEsMV0sQz10LnZlcnRleFVWcyxQPXQudmVydGV4SW50ZW5zaXR5LEk9dC5jZWxsVVZzLE89dC5jZWxsSW50ZW5zaXR5LHo9MS8wLEQ9LTEvMDtpZighQyYmIUkpaWYoUClpZih0LnZlcnRleEludGVuc2l0eUJvdW5kcyl6PSt0LnZlcnRleEludGVuc2l0eUJvdW5kc1swXSxEPSt0LnZlcnRleEludGVuc2l0eUJvdW5kc1sxXTtlbHNlIGZvcih2YXIgUj0wO1I8UC5sZW5ndGg7KytSKXt2YXIgRj1QW1JdO3o9TWF0aC5taW4oeixGKSxEPU1hdGgubWF4KEQsRil9ZWxzZSBpZihPKWlmKHQuY2VsbEludGVuc2l0eUJvdW5kcyl6PSt0LmNlbGxJbnRlbnNpdHlCb3VuZHNbMF0sRD0rdC5jZWxsSW50ZW5zaXR5Qm91bmRzWzFdO2Vsc2UgZm9yKFI9MDtSPE8ubGVuZ3RoOysrUil7Rj1PW1JdO3o9TWF0aC5taW4oeixGKSxEPU1hdGgubWF4KEQsRil9ZWxzZSBmb3IoUj0wO1I8bi5sZW5ndGg7KytSKXtGPW5bUl1bMl07ej1NYXRoLm1pbih6LEYpLEQ9TWF0aC5tYXgoRCxGKX10aGlzLmludGVuc2l0eT1QfHwoT3x8ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQubGVuZ3RoLHI9bmV3IEFycmF5KGUpLG49MDtuPGU7KytuKXJbbl09dFtuXVsyXTtyZXR1cm4gcn0obikpLHRoaXMucGlja1ZlcnRleD0hKE98fEUpO3ZhciBCPXQucG9pbnRTaXplcyxOPXQucG9pbnRTaXplfHwxO3RoaXMuYm91bmRzPVtbMS8wLDEvMCwxLzBdLFstMS8wLC0xLzAsLTEvMF1dO2ZvcihSPTA7UjxuLmxlbmd0aDsrK1IpZm9yKHZhciBqPW5bUl0sVT0wO1U8MzsrK1UpIWlzTmFOKGpbVV0pJiZpc0Zpbml0ZShqW1VdKSYmKHRoaXMuYm91bmRzWzBdW1VdPU1hdGgubWluKHRoaXMuYm91bmRzWzBdW1VdLGpbVV0pLHRoaXMuYm91bmRzWzFdW1VdPU1hdGgubWF4KHRoaXMuYm91bmRzWzFdW1VdLGpbVV0pKTt2YXIgVj0wLEg9MCxxPTA7dDpmb3IoUj0wO1I8ci5sZW5ndGg7KytSKXt2YXIgRz1yW1JdO3N3aXRjaChHLmxlbmd0aCl7Y2FzZSAxOmZvcihqPW5bVz1HWzBdXSxVPTA7VTwzOysrVSlpZihpc05hTihqW1VdKXx8IWlzRmluaXRlKGpbVV0pKWNvbnRpbnVlIHQ7di5wdXNoKGpbMF0salsxXSxqWzJdKSxYPVM/U1tXXTpFP0VbUl06TCx0aGlzLm9wYWNpdHlzY2FsZSYmUD9hLnB1c2goWFswXSxYWzFdLFhbMl0sdGhpcy5vcGFjaXR5KkEoKFBbV10teikvKEQteiksdGhpcy5vcGFjaXR5c2NhbGUpKTozPT09WC5sZW5ndGg/eS5wdXNoKFhbMF0sWFsxXSxYWzJdLHRoaXMub3BhY2l0eSk6KHkucHVzaChYWzBdLFhbMV0sWFsyXSxYWzNdKnRoaXMub3BhY2l0eSksWFszXTwxJiYodGhpcy5oYXNBbHBoYT0hMCkpLFo9Qz9DW1ddOlA/WyhQW1ddLXopLyhELXopLDBdOkk/SVtSXTpPP1soT1tSXS16KS8oRC16KSwwXTpbKGpbMl0teikvKEQteiksMF0seC5wdXNoKFpbMF0sWlsxXSksQj9iLnB1c2goQltXXSk6Yi5wdXNoKE4pLF8ucHVzaChSKSxxKz0xO2JyZWFrO2Nhc2UgMjpmb3IoVT0wO1U8MjsrK1Upe2o9bltXPUdbVV1dO2Zvcih2YXIgWT0wO1k8MzsrK1kpaWYoaXNOYU4oaltZXSl8fCFpc0Zpbml0ZShqW1ldKSljb250aW51ZSB0fWZvcihVPTA7VTwyOysrVSl7aj1uW1c9R1tVXV07cC5wdXNoKGpbMF0salsxXSxqWzJdKSxYPVM/U1tXXTpFP0VbUl06TCx0aGlzLm9wYWNpdHlzY2FsZSYmUD9hLnB1c2goWFswXSxYWzFdLFhbMl0sdGhpcy5vcGFjaXR5KkEoKFBbV10teikvKEQteiksdGhpcy5vcGFjaXR5c2NhbGUpKTozPT09WC5sZW5ndGg/ZC5wdXNoKFhbMF0sWFsxXSxYWzJdLHRoaXMub3BhY2l0eSk6KGQucHVzaChYWzBdLFhbMV0sWFsyXSxYWzNdKnRoaXMub3BhY2l0eSksWFszXTwxJiYodGhpcy5oYXNBbHBoYT0hMCkpLFo9Qz9DW1ddOlA/WyhQW1ddLXopLyhELXopLDBdOkk/SVtSXTpPP1soT1tSXS16KS8oRC16KSwwXTpbKGpbMl0teikvKEQteiksMF0sbS5wdXNoKFpbMF0sWlsxXSksZy5wdXNoKFIpfUgrPTE7YnJlYWs7Y2FzZSAzOmZvcihVPTA7VTwzOysrVSlmb3Ioaj1uW1c9R1tVXV0sWT0wO1k8MzsrK1kpaWYoaXNOYU4oaltZXSl8fCFpc0Zpbml0ZShqW1ldKSljb250aW51ZSB0O2ZvcihVPTA7VTwzOysrVSl7dmFyIFcsWCxaLEo7aj1uW1c9R1syLVVdXTtpLnB1c2goalswXSxqWzFdLGpbMl0pLChYPVM/U1tXXTpFP0VbUl06TCk/dGhpcy5vcGFjaXR5c2NhbGUmJlA/YS5wdXNoKFhbMF0sWFsxXSxYWzJdLHRoaXMub3BhY2l0eSpBKChQW1ddLXopLyhELXopLHRoaXMub3BhY2l0eXNjYWxlKSk6Mz09PVgubGVuZ3RoP2EucHVzaChYWzBdLFhbMV0sWFsyXSx0aGlzLm9wYWNpdHkpOihhLnB1c2goWFswXSxYWzFdLFhbMl0sWFszXSp0aGlzLm9wYWNpdHkpLFhbM108MSYmKHRoaXMuaGFzQWxwaGE9ITApKTphLnB1c2goLjUsLjUsLjUsMSksWj1DP0NbV106UD9bKFBbV10teikvKEQteiksMF06ST9JW1JdOk8/WyhPW1JdLXopLyhELXopLDBdOlsoalsyXS16KS8oRC16KSwwXSxjLnB1c2goWlswXSxaWzFdKSxKPXc/d1tXXTpUW1JdLGwucHVzaChKWzBdLEpbMV0sSlsyXSksaC5wdXNoKFIpfVYrPTF9fXRoaXMucG9pbnRDb3VudD1xLHRoaXMuZWRnZUNvdW50PUgsdGhpcy50cmlhbmdsZUNvdW50PVYsdGhpcy5wb2ludFBvc2l0aW9ucy51cGRhdGUodiksdGhpcy5wb2ludENvbG9ycy51cGRhdGUoeSksdGhpcy5wb2ludFVWcy51cGRhdGUoeCksdGhpcy5wb2ludFNpemVzLnVwZGF0ZShiKSx0aGlzLnBvaW50SWRzLnVwZGF0ZShuZXcgVWludDMyQXJyYXkoXykpLHRoaXMuZWRnZVBvc2l0aW9ucy51cGRhdGUocCksdGhpcy5lZGdlQ29sb3JzLnVwZGF0ZShkKSx0aGlzLmVkZ2VVVnMudXBkYXRlKG0pLHRoaXMuZWRnZUlkcy51cGRhdGUobmV3IFVpbnQzMkFycmF5KGcpKSx0aGlzLnRyaWFuZ2xlUG9zaXRpb25zLnVwZGF0ZShpKSx0aGlzLnRyaWFuZ2xlQ29sb3JzLnVwZGF0ZShhKSx0aGlzLnRyaWFuZ2xlVVZzLnVwZGF0ZShjKSx0aGlzLnRyaWFuZ2xlTm9ybWFscy51cGRhdGUobCksdGhpcy50cmlhbmdsZUlkcy51cGRhdGUobmV3IFVpbnQzMkFycmF5KGgpKX19LGsuZHJhd1RyYW5zcGFyZW50PWsuZHJhdz1mdW5jdGlvbih0KXt0PXR8fHt9O2Zvcih2YXIgZT10aGlzLmdsLHI9dC5tb2RlbHx8dyxuPXQudmlld3x8dyxpPXQucHJvamVjdGlvbnx8dyxhPVtbLTFlNiwtMWU2LC0xZTZdLFsxZTYsMWU2LDFlNl1dLG89MDtvPDM7KytvKWFbMF1bb109TWF0aC5tYXgoYVswXVtvXSx0aGlzLmNsaXBCb3VuZHNbMF1bb10pLGFbMV1bb109TWF0aC5taW4oYVsxXVtvXSx0aGlzLmNsaXBCb3VuZHNbMV1bb10pO3ZhciBzPXttb2RlbDpyLHZpZXc6bixwcm9qZWN0aW9uOmksaW52ZXJzZU1vZGVsOncuc2xpY2UoKSxjbGlwQm91bmRzOmEsa2FtYmllbnQ6dGhpcy5hbWJpZW50TGlnaHQsa2RpZmZ1c2U6dGhpcy5kaWZmdXNlTGlnaHQsa3NwZWN1bGFyOnRoaXMuc3BlY3VsYXJMaWdodCxyb3VnaG5lc3M6dGhpcy5yb3VnaG5lc3MsZnJlc25lbDp0aGlzLmZyZXNuZWwsZXllUG9zaXRpb246WzAsMCwwXSxsaWdodFBvc2l0aW9uOlswLDAsMF0sY29udG91ckNvbG9yOnRoaXMuY29udG91ckNvbG9yLHRleHR1cmU6MH07cy5pbnZlcnNlTW9kZWw9YyhzLmludmVyc2VNb2RlbCxzLm1vZGVsKSxlLmRpc2FibGUoZS5DVUxMX0ZBQ0UpLHRoaXMudGV4dHVyZS5iaW5kKDApO3ZhciB1PW5ldyBBcnJheSgxNik7bCh1LHMudmlldyxzLm1vZGVsKSxsKHUscy5wcm9qZWN0aW9uLHUpLGModSx1KTtmb3Iobz0wO288MzsrK28pcy5leWVQb3NpdGlvbltvXT11WzEyK29dL3VbMTVdO3ZhciBmLGg9dVsxNV07Zm9yKG89MDtvPDM7KytvKWgrPXRoaXMubGlnaHRQb3NpdGlvbltvXSp1WzQqbyszXTtmb3Iobz0wO288MzsrK28pe2Zvcih2YXIgcD11WzEyK29dLGQ9MDtkPDM7KytkKXArPXVbNCpkK29dKnRoaXMubGlnaHRQb3NpdGlvbltkXTtzLmxpZ2h0UG9zaXRpb25bb109cC9ofXRoaXMudHJpYW5nbGVDb3VudD4wJiYoKGY9dGhpcy50cmlTaGFkZXIpLmJpbmQoKSxmLnVuaWZvcm1zPXMsdGhpcy50cmlhbmdsZVZBTy5iaW5kKCksZS5kcmF3QXJyYXlzKGUuVFJJQU5HTEVTLDAsMyp0aGlzLnRyaWFuZ2xlQ291bnQpLHRoaXMudHJpYW5nbGVWQU8udW5iaW5kKCkpO3RoaXMuZWRnZUNvdW50PjAmJnRoaXMubGluZVdpZHRoPjAmJigoZj10aGlzLmxpbmVTaGFkZXIpLmJpbmQoKSxmLnVuaWZvcm1zPXMsdGhpcy5lZGdlVkFPLmJpbmQoKSxlLmxpbmVXaWR0aCh0aGlzLmxpbmVXaWR0aCp0aGlzLnBpeGVsUmF0aW8pLGUuZHJhd0FycmF5cyhlLkxJTkVTLDAsMip0aGlzLmVkZ2VDb3VudCksdGhpcy5lZGdlVkFPLnVuYmluZCgpKTt0aGlzLnBvaW50Q291bnQ+MCYmKChmPXRoaXMucG9pbnRTaGFkZXIpLmJpbmQoKSxmLnVuaWZvcm1zPXMsdGhpcy5wb2ludFZBTy5iaW5kKCksZS5kcmF3QXJyYXlzKGUuUE9JTlRTLDAsdGhpcy5wb2ludENvdW50KSx0aGlzLnBvaW50VkFPLnVuYmluZCgpKTt0aGlzLmNvbnRvdXJFbmFibGUmJnRoaXMuY29udG91ckNvdW50PjAmJnRoaXMuY29udG91ckxpbmVXaWR0aD4wJiYoKGY9dGhpcy5jb250b3VyU2hhZGVyKS5iaW5kKCksZi51bmlmb3Jtcz1zLHRoaXMuY29udG91clZBTy5iaW5kKCksZS5kcmF3QXJyYXlzKGUuTElORVMsMCx0aGlzLmNvbnRvdXJDb3VudCksdGhpcy5jb250b3VyVkFPLnVuYmluZCgpKX0say5kcmF3UGljaz1mdW5jdGlvbih0KXt0PXR8fHt9O2Zvcih2YXIgZT10aGlzLmdsLHI9dC5tb2RlbHx8dyxuPXQudmlld3x8dyxpPXQucHJvamVjdGlvbnx8dyxhPVtbLTFlNiwtMWU2LC0xZTZdLFsxZTYsMWU2LDFlNl1dLG89MDtvPDM7KytvKWFbMF1bb109TWF0aC5tYXgoYVswXVtvXSx0aGlzLmNsaXBCb3VuZHNbMF1bb10pLGFbMV1bb109TWF0aC5taW4oYVsxXVtvXSx0aGlzLmNsaXBCb3VuZHNbMV1bb10pO3RoaXMuX21vZGVsPVtdLnNsaWNlLmNhbGwociksdGhpcy5fdmlldz1bXS5zbGljZS5jYWxsKG4pLHRoaXMuX3Byb2plY3Rpb249W10uc2xpY2UuY2FsbChpKSx0aGlzLl9yZXNvbHV0aW9uPVtlLmRyYXdpbmdCdWZmZXJXaWR0aCxlLmRyYXdpbmdCdWZmZXJIZWlnaHRdO3ZhciBzLGw9e21vZGVsOnIsdmlldzpuLHByb2plY3Rpb246aSxjbGlwQm91bmRzOmEscGlja0lkOnRoaXMucGlja0lkLzI1NX07KChzPXRoaXMucGlja1NoYWRlcikuYmluZCgpLHMudW5pZm9ybXM9bCx0aGlzLnRyaWFuZ2xlQ291bnQ+MCYmKHRoaXMudHJpYW5nbGVWQU8uYmluZCgpLGUuZHJhd0FycmF5cyhlLlRSSUFOR0xFUywwLDMqdGhpcy50cmlhbmdsZUNvdW50KSx0aGlzLnRyaWFuZ2xlVkFPLnVuYmluZCgpKSx0aGlzLmVkZ2VDb3VudD4wJiYodGhpcy5lZGdlVkFPLmJpbmQoKSxlLmxpbmVXaWR0aCh0aGlzLmxpbmVXaWR0aCp0aGlzLnBpeGVsUmF0aW8pLGUuZHJhd0FycmF5cyhlLkxJTkVTLDAsMip0aGlzLmVkZ2VDb3VudCksdGhpcy5lZGdlVkFPLnVuYmluZCgpKSx0aGlzLnBvaW50Q291bnQ+MCkmJigocz10aGlzLnBvaW50UGlja1NoYWRlcikuYmluZCgpLHMudW5pZm9ybXM9bCx0aGlzLnBvaW50VkFPLmJpbmQoKSxlLmRyYXdBcnJheXMoZS5QT0lOVFMsMCx0aGlzLnBvaW50Q291bnQpLHRoaXMucG9pbnRWQU8udW5iaW5kKCkpfSxrLnBpY2s9ZnVuY3Rpb24odCl7aWYoIXQpcmV0dXJuIG51bGw7aWYodC5pZCE9PXRoaXMucGlja0lkKXJldHVybiBudWxsO2Zvcih2YXIgZT10LnZhbHVlWzBdKzI1Nip0LnZhbHVlWzFdKzY1NTM2KnQudmFsdWVbMl0scj10aGlzLmNlbGxzW2VdLG49dGhpcy5wb3NpdGlvbnMsaT1uZXcgQXJyYXkoci5sZW5ndGgpLGE9MDthPHIubGVuZ3RoOysrYSlpW2FdPW5bclthXV07dmFyIG89dC5jb29yZFswXSxzPXQuY29vcmRbMV07aWYoIXRoaXMucGlja1ZlcnRleCl7dmFyIGw9dGhpcy5wb3NpdGlvbnNbclswXV0sYz10aGlzLnBvc2l0aW9uc1tyWzFdXSx1PXRoaXMucG9zaXRpb25zW3JbMl1dLGY9WyhsWzBdK2NbMF0rdVswXSkvMywobFsxXStjWzFdK3VbMV0pLzMsKGxbMl0rY1syXSt1WzJdKS8zXTtyZXR1cm57X2NlbGxDZW50ZXI6ITAscG9zaXRpb246W28sc10saW5kZXg6ZSxjZWxsOnIsY2VsbElkOmUsaW50ZW5zaXR5OnRoaXMuaW50ZW5zaXR5W2VdLGRhdGFDb29yZGluYXRlOmZ9fXZhciBoPW0oaSxbbyp0aGlzLnBpeGVsUmF0aW8sdGhpcy5fcmVzb2x1dGlvblsxXS1zKnRoaXMucGl4ZWxSYXRpb10sdGhpcy5fbW9kZWwsdGhpcy5fdmlldyx0aGlzLl9wcm9qZWN0aW9uLHRoaXMuX3Jlc29sdXRpb24pO2lmKCFoKXJldHVybiBudWxsO3ZhciBwPWhbMl0sZD0wO2ZvcihhPTA7YTxyLmxlbmd0aDsrK2EpZCs9cFthXSp0aGlzLmludGVuc2l0eVtyW2FdXTtyZXR1cm57cG9zaXRpb246aFsxXSxpbmRleDpyW2hbMF1dLGNlbGw6cixjZWxsSWQ6ZSxpbnRlbnNpdHk6ZCxkYXRhQ29vcmRpbmF0ZTp0aGlzLnBvc2l0aW9uc1tyW2hbMF1dXX19LGsuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMudGV4dHVyZS5kaXNwb3NlKCksdGhpcy50cmlTaGFkZXIuZGlzcG9zZSgpLHRoaXMubGluZVNoYWRlci5kaXNwb3NlKCksdGhpcy5wb2ludFNoYWRlci5kaXNwb3NlKCksdGhpcy5waWNrU2hhZGVyLmRpc3Bvc2UoKSx0aGlzLnBvaW50UGlja1NoYWRlci5kaXNwb3NlKCksdGhpcy50cmlhbmdsZVZBTy5kaXNwb3NlKCksdGhpcy50cmlhbmdsZVBvc2l0aW9ucy5kaXNwb3NlKCksdGhpcy50cmlhbmdsZUNvbG9ycy5kaXNwb3NlKCksdGhpcy50cmlhbmdsZVVWcy5kaXNwb3NlKCksdGhpcy50cmlhbmdsZU5vcm1hbHMuZGlzcG9zZSgpLHRoaXMudHJpYW5nbGVJZHMuZGlzcG9zZSgpLHRoaXMuZWRnZVZBTy5kaXNwb3NlKCksdGhpcy5lZGdlUG9zaXRpb25zLmRpc3Bvc2UoKSx0aGlzLmVkZ2VDb2xvcnMuZGlzcG9zZSgpLHRoaXMuZWRnZVVWcy5kaXNwb3NlKCksdGhpcy5lZGdlSWRzLmRpc3Bvc2UoKSx0aGlzLnBvaW50VkFPLmRpc3Bvc2UoKSx0aGlzLnBvaW50UG9zaXRpb25zLmRpc3Bvc2UoKSx0aGlzLnBvaW50Q29sb3JzLmRpc3Bvc2UoKSx0aGlzLnBvaW50VVZzLmRpc3Bvc2UoKSx0aGlzLnBvaW50U2l6ZXMuZGlzcG9zZSgpLHRoaXMucG9pbnRJZHMuZGlzcG9zZSgpLHRoaXMuY29udG91clZBTy5kaXNwb3NlKCksdGhpcy5jb250b3VyUG9zaXRpb25zLmRpc3Bvc2UoKSx0aGlzLmNvbnRvdXJTaGFkZXIuZGlzcG9zZSgpfSxlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXsxPT09YXJndW1lbnRzLmxlbmd0aCYmKHQ9KGU9dCkuZ2wpO3ZhciByPXQuZ2V0RXh0ZW5zaW9uKCJPRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKXx8dC5nZXRFeHRlbnNpb24oIk1PWl9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKXx8dC5nZXRFeHRlbnNpb24oIldFQktJVF9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKTtpZighcil0aHJvdyBuZXcgRXJyb3IoImRlcml2YXRpdmVzIG5vdCBzdXBwb3J0ZWQiKTt2YXIgbj1NKHQpLHM9Uyh0KSxsPUUodCksYz1MKHQpLGY9Qyh0KSxoPVAodCkscD1vKHQsdShuZXcgVWludDhBcnJheShbMjU1LDI1NSwyNTUsMjU1XSksWzEsMSw0XSkpO3AuZ2VuZXJhdGVNaXBtYXAoKSxwLm1pbkZpbHRlcj10LkxJTkVBUl9NSVBNQVBfTElORUFSLHAubWFnRmlsdGVyPXQuTElORUFSO3ZhciBkPWkodCksbT1pKHQpLGc9aSh0KSx2PWkodCkseT1pKHQpLHg9YSh0LFt7YnVmZmVyOmQsdHlwZTp0LkZMT0FULHNpemU6M30se2J1ZmZlcjp5LHR5cGU6dC5VTlNJR05FRF9CWVRFLHNpemU6NCxub3JtYWxpemVkOiEwfSx7YnVmZmVyOm0sdHlwZTp0LkZMT0FULHNpemU6NH0se2J1ZmZlcjpnLHR5cGU6dC5GTE9BVCxzaXplOjJ9LHtidWZmZXI6dix0eXBlOnQuRkxPQVQsc2l6ZTozfV0pLGI9aSh0KSxfPWkodCksdz1pKHQpLGs9aSh0KSxBPWEodCxbe2J1ZmZlcjpiLHR5cGU6dC5GTE9BVCxzaXplOjN9LHtidWZmZXI6ayx0eXBlOnQuVU5TSUdORURfQllURSxzaXplOjQsbm9ybWFsaXplZDohMH0se2J1ZmZlcjpfLHR5cGU6dC5GTE9BVCxzaXplOjR9LHtidWZmZXI6dyx0eXBlOnQuRkxPQVQsc2l6ZToyfV0pLEk9aSh0KSxPPWkodCksej1pKHQpLEQ9aSh0KSxSPWkodCksRj1hKHQsW3tidWZmZXI6SSx0eXBlOnQuRkxPQVQsc2l6ZTozfSx7YnVmZmVyOlIsdHlwZTp0LlVOU0lHTkVEX0JZVEUsc2l6ZTo0LG5vcm1hbGl6ZWQ6ITB9LHtidWZmZXI6Tyx0eXBlOnQuRkxPQVQsc2l6ZTo0fSx7YnVmZmVyOnosdHlwZTp0LkZMT0FULHNpemU6Mn0se2J1ZmZlcjpELHR5cGU6dC5GTE9BVCxzaXplOjF9XSksQj1pKHQpLE49YSh0LFt7YnVmZmVyOkIsdHlwZTp0LkZMT0FULHNpemU6M31dKSxqPW5ldyBUKHQscCxuLHMsbCxjLGYsaCxkLHksbSxnLHYseCxiLGssXyx3LEEsSSxSLE8seixELEYsQixOKTtyZXR1cm4gai51cGRhdGUoZSksan19LHsiLi9saWIvY2xvc2VzdC1wb2ludCI6MTEwLCIuL2xpYi9zaGFkZXJzIjoxMTEsY29sb3JtYXA6NTMsImdsLWJ1ZmZlciI6NzgsImdsLW1hdDQvaW52ZXJ0Ijo5OCwiZ2wtbWF0NC9tdWx0aXBseSI6MTAwLCJnbC1zaGFkZXIiOjEzMiwiZ2wtdGV4dHVyZTJkIjoxNDYsImdsLXZhbyI6MTUwLG5kYXJyYXk6MjU5LG5vcm1hbHM6MjYxLCJzaW1wbGljaWFsLWNvbXBsZXgtY29udG91ciI6MjkxLCJ0eXBlZGFycmF5LXBvb2wiOjMwOH1dLDExMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5nbCxyPW4oZSxbMCwwLDAsMSwxLDAsMSwxXSkscz1pKGUsYS5ib3hWZXJ0LGEubGluZUZyYWcpO3JldHVybiBuZXcgbyh0LHIscyl9O3ZhciBuPXQoImdsLWJ1ZmZlciIpLGk9dCgiZ2wtc2hhZGVyIiksYT10KCIuL3NoYWRlcnMiKTtmdW5jdGlvbiBvKHQsZSxyKXt0aGlzLnBsb3Q9dCx0aGlzLnZibz1lLHRoaXMuc2hhZGVyPXJ9dmFyIHMsbCxjPW8ucHJvdG90eXBlO2MuYmluZD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuc2hhZGVyO3RoaXMudmJvLmJpbmQoKSx0aGlzLnNoYWRlci5iaW5kKCksdC5hdHRyaWJ1dGVzLmNvb3JkLnBvaW50ZXIoKSx0LnVuaWZvcm1zLnNjcmVlbkJveD10aGlzLnBsb3Quc2NyZWVuQm94fSxjLmRyYXdCb3g9KHM9WzAsMF0sbD1bMCwwXSxmdW5jdGlvbih0LGUscixuLGkpe3ZhciBhPXRoaXMucGxvdCxvPXRoaXMuc2hhZGVyLGM9YS5nbDtzWzBdPXQsc1sxXT1lLGxbMF09cixsWzFdPW4sby51bmlmb3Jtcy5sbz1zLG8udW5pZm9ybXMuaGk9bCxvLnVuaWZvcm1zLmNvbG9yPWksYy5kcmF3QXJyYXlzKGMuVFJJQU5HTEVfU1RSSVAsMCw0KX0pLGMuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMudmJvLmRpc3Bvc2UoKSx0aGlzLnNoYWRlci5kaXNwb3NlKCl9fSx7Ii4vc2hhZGVycyI6MTE2LCJnbC1idWZmZXIiOjc4LCJnbC1zaGFkZXIiOjEzMn1dLDExNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5nbCxyPW4oZSksYT1pKGUsby5ncmlkVmVydCxvLmdyaWRGcmFnKSxsPWkoZSxvLnRpY2tWZXJ0LG8uZ3JpZEZyYWcpO3JldHVybiBuZXcgcyh0LHIsYSxsKX07dmFyIG49dCgiZ2wtYnVmZmVyIiksaT10KCJnbC1zaGFkZXIiKSxhPXQoImJpbmFyeS1zZWFyY2gtYm91bmRzIiksbz10KCIuL3NoYWRlcnMiKTtmdW5jdGlvbiBzKHQsZSxyLG4pe3RoaXMucGxvdD10LHRoaXMudmJvPWUsdGhpcy5zaGFkZXI9cix0aGlzLnRpY2tTaGFkZXI9bix0aGlzLnRpY2tzPVtbXSxbXV19ZnVuY3Rpb24gbCh0LGUpe3JldHVybiB0LWV9dmFyIGMsdSxmLGgscCxkPXMucHJvdG90eXBlO2QuZHJhdz0oYz1bMCwwXSx1PVswLDBdLGY9WzAsMF0sZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5wbG90LGU9dGhpcy52Ym8scj10aGlzLnNoYWRlcixuPXRoaXMudGlja3MsaT10LmdsLGE9dC5fdGlja0JvdW5kcyxvPXQuZGF0YUJveCxzPXQudmlld0JveCxsPXQuZ3JpZExpbmVXaWR0aCxoPXQuZ3JpZExpbmVDb2xvcixwPXQuZ3JpZExpbmVFbmFibGUsZD10LnBpeGVsUmF0aW8sbT0wO208MjsrK20pe3ZhciBnPWFbbV0sdj1hW20rMl0tZyx5PS41KihvW20rMl0rb1ttXSkseD1vW20rMl0tb1ttXTt1W21dPTIqdi94LGNbbV09MiooZy15KS94fXIuYmluZCgpLGUuYmluZCgpLHIuYXR0cmlidXRlcy5kYXRhQ29vcmQucG9pbnRlcigpLHIudW5pZm9ybXMuZGF0YVNoaWZ0PWMsci51bmlmb3Jtcy5kYXRhU2NhbGU9dTt2YXIgYj0wO2ZvcihtPTA7bTwyOysrbSl7ZlswXT1mWzFdPTAsZlttXT0xLHIudW5pZm9ybXMuZGF0YUF4aXM9ZixyLnVuaWZvcm1zLmxpbmVXaWR0aD1sW21dLyhzW20rMl0tc1ttXSkqZCxyLnVuaWZvcm1zLmNvbG9yPWhbbV07dmFyIF89NipuW21dLmxlbmd0aDtwW21dJiZfJiZpLmRyYXdBcnJheXMoaS5UUklBTkdMRVMsYixfKSxiKz1ffX0pLGQuZHJhd1RpY2tNYXJrcz1mdW5jdGlvbigpe3ZhciB0PVswLDBdLGU9WzAsMF0scj1bMSwwXSxuPVswLDFdLGk9WzAsMF0sbz1bMCwwXTtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIHM9dGhpcy5wbG90LGM9dGhpcy52Ym8sdT10aGlzLnRpY2tTaGFkZXIsZj10aGlzLnRpY2tzLGg9cy5nbCxwPXMuX3RpY2tCb3VuZHMsZD1zLmRhdGFCb3gsbT1zLnZpZXdCb3gsZz1zLnBpeGVsUmF0aW8sdj1zLnNjcmVlbkJveCx5PXZbMl0tdlswXSx4PXZbM10tdlsxXSxiPW1bMl0tbVswXSxfPW1bM10tbVsxXSx3PTA7dzwyOysrdyl7dmFyIFQ9cFt3XSxrPXBbdysyXS1ULEE9LjUqKGRbdysyXStkW3ddKSxNPWRbdysyXS1kW3ddO2Vbd109MiprL00sdFt3XT0yKihULUEpL019ZVswXSo9Yi95LHRbMF0qPWIveSxlWzFdKj1fL3gsdFsxXSo9Xy94LHUuYmluZCgpLGMuYmluZCgpLHUuYXR0cmlidXRlcy5kYXRhQ29vcmQucG9pbnRlcigpO3ZhciBTPXUudW5pZm9ybXM7Uy5kYXRhU2hpZnQ9dCxTLmRhdGFTY2FsZT1lO3ZhciBFPXMudGlja01hcmtMZW5ndGgsTD1zLnRpY2tNYXJrV2lkdGgsQz1zLnRpY2tNYXJrQ29sb3IsUD02KmZbMF0ubGVuZ3RoLEk9TWF0aC5taW4oYS5nZShmWzBdLChkWzBdLXBbMF0pLyhwWzJdLXBbMF0pLGwpLGZbMF0ubGVuZ3RoKSxPPU1hdGgubWluKGEuZ3QoZlswXSwoZFsyXS1wWzBdKS8ocFsyXS1wWzBdKSxsKSxmWzBdLmxlbmd0aCksej0wKzYqSSxEPTYqTWF0aC5tYXgoMCxPLUkpLFI9TWF0aC5taW4oYS5nZShmWzFdLChkWzFdLXBbMV0pLyhwWzNdLXBbMV0pLGwpLGZbMV0ubGVuZ3RoKSxGPU1hdGgubWluKGEuZ3QoZlsxXSwoZFszXS1wWzFdKS8ocFszXS1wWzFdKSxsKSxmWzFdLmxlbmd0aCksQj1QKzYqUixOPTYqTWF0aC5tYXgoMCxGLVIpO2lbMF09MioobVswXS1FWzFdKS95LTEsaVsxXT0obVszXSttWzFdKS94LTEsb1swXT1FWzFdKmcveSxvWzFdPUxbMV0qZy94LE4mJihTLmNvbG9yPUNbMV0sUy50aWNrU2NhbGU9byxTLmRhdGFBeGlzPW4sUy5zY3JlZW5PZmZzZXQ9aSxoLmRyYXdBcnJheXMoaC5UUklBTkdMRVMsQixOKSksaVswXT0obVsyXSttWzBdKS95LTEsaVsxXT0yKihtWzFdLUVbMF0pL3gtMSxvWzBdPUxbMF0qZy95LG9bMV09RVswXSpnL3gsRCYmKFMuY29sb3I9Q1swXSxTLnRpY2tTY2FsZT1vLFMuZGF0YUF4aXM9cixTLnNjcmVlbk9mZnNldD1pLGguZHJhd0FycmF5cyhoLlRSSUFOR0xFUyx6LEQpKSxpWzBdPTIqKG1bMl0rRVszXSkveS0xLGlbMV09KG1bM10rbVsxXSkveC0xLG9bMF09RVszXSpnL3ksb1sxXT1MWzNdKmcveCxOJiYoUy5jb2xvcj1DWzNdLFMudGlja1NjYWxlPW8sUy5kYXRhQXhpcz1uLFMuc2NyZWVuT2Zmc2V0PWksaC5kcmF3QXJyYXlzKGguVFJJQU5HTEVTLEIsTikpLGlbMF09KG1bMl0rbVswXSkveS0xLGlbMV09MioobVszXStFWzJdKS94LTEsb1swXT1MWzJdKmcveSxvWzFdPUVbMl0qZy94LEQmJihTLmNvbG9yPUNbMl0sUy50aWNrU2NhbGU9byxTLmRhdGFBeGlzPXIsUy5zY3JlZW5PZmZzZXQ9aSxoLmRyYXdBcnJheXMoaC5UUklBTkdMRVMseixEKSl9fSgpLGQudXBkYXRlPShoPVsxLDEsLTEsLTEsMSwtMV0scD1bMSwtMSwxLDEsLTEsLTFdLGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10LnRpY2tzLHI9dC5ib3VuZHMsbj1uZXcgRmxvYXQzMkFycmF5KDE4KihlWzBdLmxlbmd0aCtlWzFdLmxlbmd0aCkpLGk9KHRoaXMucGxvdC56ZXJvTGluZUVuYWJsZSwwKSxhPVtbXSxbXV0sbz0wO288MjsrK28pZm9yKHZhciBzPWFbb10sbD1lW29dLGM9cltvXSx1PXJbbysyXSxmPTA7ZjxsLmxlbmd0aDsrK2Ype3ZhciBkPShsW2ZdLngtYykvKHUtYyk7cy5wdXNoKGQpO2Zvcih2YXIgbT0wO208NjsrK20pbltpKytdPWQsbltpKytdPWhbbV0sbltpKytdPXBbbV19dGhpcy50aWNrcz1hLHRoaXMudmJvLnVwZGF0ZShuKX0pLGQuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMudmJvLmRpc3Bvc2UoKSx0aGlzLnNoYWRlci5kaXNwb3NlKCksdGhpcy50aWNrU2hhZGVyLmRpc3Bvc2UoKX19LHsiLi9zaGFkZXJzIjoxMTYsImJpbmFyeS1zZWFyY2gtYm91bmRzIjozMSwiZ2wtYnVmZmVyIjo3OCwiZ2wtc2hhZGVyIjoxMzJ9XSwxMTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQuZ2wscj1uKGUsWy0xLC0xLC0xLDEsMSwtMSwxLDFdKSxzPWkoZSxhLmxpbmVWZXJ0LGEubGluZUZyYWcpO3JldHVybiBuZXcgbyh0LHIscyl9O3ZhciBuPXQoImdsLWJ1ZmZlciIpLGk9dCgiZ2wtc2hhZGVyIiksYT10KCIuL3NoYWRlcnMiKTtmdW5jdGlvbiBvKHQsZSxyKXt0aGlzLnBsb3Q9dCx0aGlzLnZibz1lLHRoaXMuc2hhZGVyPXJ9dmFyIHMsbCxjPW8ucHJvdG90eXBlO2MuYmluZD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuc2hhZGVyO3RoaXMudmJvLmJpbmQoKSx0aGlzLnNoYWRlci5iaW5kKCksdC5hdHRyaWJ1dGVzLmNvb3JkLnBvaW50ZXIoKSx0LnVuaWZvcm1zLnNjcmVlbkJveD10aGlzLnBsb3Quc2NyZWVuQm94fSxjLmRyYXdMaW5lPShzPVswLDBdLGw9WzAsMF0sZnVuY3Rpb24odCxlLHIsbixpLGEpe3ZhciBvPXRoaXMucGxvdCxjPXRoaXMuc2hhZGVyLHU9by5nbDtzWzBdPXQsc1sxXT1lLGxbMF09cixsWzFdPW4sYy51bmlmb3Jtcy5zdGFydD1zLGMudW5pZm9ybXMuZW5kPWwsYy51bmlmb3Jtcy53aWR0aD1pKm8ucGl4ZWxSYXRpbyxjLnVuaWZvcm1zLmNvbG9yPWEsdS5kcmF3QXJyYXlzKHUuVFJJQU5HTEVfU1RSSVAsMCw0KX0pLGMuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMudmJvLmRpc3Bvc2UoKSx0aGlzLnNoYWRlci5kaXNwb3NlKCl9fSx7Ii4vc2hhZGVycyI6MTE2LCJnbC1idWZmZXIiOjc4LCJnbC1zaGFkZXIiOjEzMn1dLDExNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJnbHNsaWZ5IiksaT1uKFsicHJlY2lzaW9uIGxvd3AgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxudW5pZm9ybSB2ZWM0IGNvbG9yO1xudm9pZCBtYWluKCkge1xuICBnbF9GcmFnQ29sb3IgPSB2ZWM0KGNvbG9yLnh5eiAqIGNvbG9yLncsIGNvbG9yLncpO1xufVxuIl0pO2UuZXhwb3J0cz17bGluZVZlcnQ6bihbInByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYXR0cmlidXRlIHZlYzIgY29vcmQ7XG5cbnVuaWZvcm0gdmVjNCBzY3JlZW5Cb3g7XG51bmlmb3JtIHZlYzIgc3RhcnQsIGVuZDtcbnVuaWZvcm0gZmxvYXQgd2lkdGg7XG5cbnZlYzIgcGVycCh2ZWMyIHYpIHtcbiAgcmV0dXJuIHZlYzIodi55LCAtdi54KTtcbn1cblxudmVjMiBzY3JlZW4odmVjMiB2KSB7XG4gIHJldHVybiAyLjAgKiAodiAtIHNjcmVlbkJveC54eSkgLyAoc2NyZWVuQm94Lnp3IC0gc2NyZWVuQm94Lnh5KSAtIDEuMDtcbn1cblxudm9pZCBtYWluKCkge1xuICB2ZWMyIGRlbHRhID0gbm9ybWFsaXplKHBlcnAoc3RhcnQgLSBlbmQpKTtcbiAgdmVjMiBvZmZzZXQgPSBtaXgoc3RhcnQsIGVuZCwgMC41ICogKGNvb3JkLnkrMS4wKSk7XG4gIGdsX1Bvc2l0aW9uID0gdmVjNChzY3JlZW4ob2Zmc2V0ICsgMC41ICogd2lkdGggKiBkZWx0YSAqIGNvb3JkLngpLCAwLCAxKTtcbn1cbiJdKSxsaW5lRnJhZzppLHRleHRWZXJ0Om4oWyIjZGVmaW5lIEdMU0xJRlkgMVxuYXR0cmlidXRlIHZlYzMgdGV4dENvb3JkaW5hdGU7XG5cbnVuaWZvcm0gdmVjMiBkYXRhU2NhbGUsIGRhdGFTaGlmdCwgZGF0YUF4aXMsIHNjcmVlbk9mZnNldCwgdGV4dFNjYWxlO1xudW5pZm9ybSBmbG9hdCBhbmdsZTtcblxudm9pZCBtYWluKCkge1xuICBmbG9hdCBkYXRhT2Zmc2V0ICA9IHRleHRDb29yZGluYXRlLno7XG4gIHZlYzIgZ2x5cGhPZmZzZXQgID0gdGV4dENvb3JkaW5hdGUueHk7XG4gIG1hdDIgZ2x5cGhNYXRyaXggPSBtYXQyKGNvcyhhbmdsZSksIHNpbihhbmdsZSksIC1zaW4oYW5nbGUpLCBjb3MoYW5nbGUpKTtcbiAgdmVjMiBzY3JlZW5Db29yZGluYXRlID0gZGF0YUF4aXMgKiAoZGF0YVNjYWxlICogZGF0YU9mZnNldCArIGRhdGFTaGlmdCkgK1xuICAgIGdseXBoTWF0cml4ICogZ2x5cGhPZmZzZXQgKiB0ZXh0U2NhbGUgKyBzY3JlZW5PZmZzZXQ7XG4gIGdsX1Bvc2l0aW9uID0gdmVjNChzY3JlZW5Db29yZGluYXRlLCAwLCAxKTtcbn1cbiJdKSx0ZXh0RnJhZzppLGdyaWRWZXJ0Om4oWyJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmF0dHJpYnV0ZSB2ZWMzIGRhdGFDb29yZDtcblxudW5pZm9ybSB2ZWMyIGRhdGFBeGlzLCBkYXRhU2hpZnQsIGRhdGFTY2FsZTtcbnVuaWZvcm0gZmxvYXQgbGluZVdpZHRoO1xuXG52b2lkIG1haW4oKSB7XG4gIHZlYzIgcG9zID0gZGF0YUF4aXMgKiAoZGF0YVNjYWxlICogZGF0YUNvb3JkLnggKyBkYXRhU2hpZnQpO1xuICBwb3MgKz0gMTAuMCAqIGRhdGFDb29yZC55ICogdmVjMihkYXRhQXhpcy55LCAtZGF0YUF4aXMueCkgKyBkYXRhQ29vcmQueiAqIGxpbmVXaWR0aDtcbiAgZ2xfUG9zaXRpb24gPSB2ZWM0KHBvcywgMCwgMSk7XG59XG4iXSksZ3JpZEZyYWc6aSxib3hWZXJ0Om4oWyJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmF0dHJpYnV0ZSB2ZWMyIGNvb3JkO1xuXG51bmlmb3JtIHZlYzQgc2NyZWVuQm94O1xudW5pZm9ybSB2ZWMyIGxvLCBoaTtcblxudmVjMiBzY3JlZW4odmVjMiB2KSB7XG4gIHJldHVybiAyLjAgKiAodiAtIHNjcmVlbkJveC54eSkgLyAoc2NyZWVuQm94Lnp3IC0gc2NyZWVuQm94Lnh5KSAtIDEuMDtcbn1cblxudm9pZCBtYWluKCkge1xuICBnbF9Qb3NpdGlvbiA9IHZlYzQoc2NyZWVuKG1peChsbywgaGksIGNvb3JkKSksIDAsIDEpO1xufVxuIl0pLHRpY2tWZXJ0Om4oWyJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmF0dHJpYnV0ZSB2ZWMzIGRhdGFDb29yZDtcblxudW5pZm9ybSB2ZWMyIGRhdGFBeGlzLCBkYXRhU2hpZnQsIGRhdGFTY2FsZSwgc2NyZWVuT2Zmc2V0LCB0aWNrU2NhbGU7XG5cbnZvaWQgbWFpbigpIHtcbiAgdmVjMiBwb3MgPSBkYXRhQXhpcyAqIChkYXRhU2NhbGUgKiBkYXRhQ29vcmQueCArIGRhdGFTaGlmdCk7XG4gIGdsX1Bvc2l0aW9uID0gdmVjNChwb3MgKyB0aWNrU2NhbGUqZGF0YUNvb3JkLnl6ICsgc2NyZWVuT2Zmc2V0LCAwLCAxKTtcbn1cbiJdKX19LHtnbHNsaWZ5OjIzMX1dLDExNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5nbCxyPW4oZSksYT1pKGUscy50ZXh0VmVydCxzLnRleHRGcmFnKTtyZXR1cm4gbmV3IGwodCxyLGEpfTt2YXIgbj10KCJnbC1idWZmZXIiKSxpPXQoImdsLXNoYWRlciIpLGE9dCgidGV4dC1jYWNoZSIpLG89dCgiYmluYXJ5LXNlYXJjaC1ib3VuZHMiKSxzPXQoIi4vc2hhZGVycyIpO2Z1bmN0aW9uIGwodCxlLHIpe3RoaXMucGxvdD10LHRoaXMudmJvPWUsdGhpcy5zaGFkZXI9cix0aGlzLnRpY2tPZmZzZXQ9W1tdLFtdXSx0aGlzLnRpY2tYPVtbXSxbXV0sdGhpcy5sYWJlbE9mZnNldD1bMCwwXSx0aGlzLmxhYmVsQ291bnQ9WzAsMF19dmFyIGMsdSxmLGgscCxkLG09bC5wcm90b3R5cGU7bS5kcmF3VGlja3M9KGM9WzAsMF0sdT1bMCwwXSxmPVswLDBdLGZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMucGxvdCxyPXRoaXMuc2hhZGVyLG49dGhpcy50aWNrWFt0XSxpPXRoaXMudGlja09mZnNldFt0XSxhPWUuZ2wscz1lLnZpZXdCb3gsbD1lLmRhdGFCb3gsaD1lLnNjcmVlbkJveCxwPWUucGl4ZWxSYXRpbyxkPWUudGlja0VuYWJsZSxtPWUudGlja1BhZCxnPWUudGlja0NvbG9yLHY9ZS50aWNrQW5nbGUseT1lLmxhYmVsRW5hYmxlLHg9ZS5sYWJlbFBhZCxiPWUubGFiZWxDb2xvcixfPWUubGFiZWxBbmdsZSx3PXRoaXMubGFiZWxPZmZzZXRbdF0sVD10aGlzLmxhYmVsQ291bnRbdF0saz1vLmx0KG4sbFt0XSksQT1vLmxlKG4sbFt0KzJdKTtjWzBdPWNbMV09MCxjW3RdPTEsdVt0XT0oc1syK3RdK3NbdF0pLyhoWzIrdF0taFt0XSktMTt2YXIgTT0yL2hbMisoMV50KV0taFsxXnRdO3VbMV50XT1NKnNbMV50XS0xLGRbdF0mJih1WzFedF0tPU0qcCptW3RdLGs8QSYmaVtBXT5pW2tdJiYoci51bmlmb3Jtcy5kYXRhQXhpcz1jLHIudW5pZm9ybXMuc2NyZWVuT2Zmc2V0PXUsci51bmlmb3Jtcy5jb2xvcj1nW3RdLHIudW5pZm9ybXMuYW5nbGU9dlt0XSxhLmRyYXdBcnJheXMoYS5UUklBTkdMRVMsaVtrXSxpW0FdLWlba10pKSkseVt0XSYmVCYmKHVbMV50XS09TSpwKnhbdF0sci51bmlmb3Jtcy5kYXRhQXhpcz1mLHIudW5pZm9ybXMuc2NyZWVuT2Zmc2V0PXUsci51bmlmb3Jtcy5jb2xvcj1iW3RdLHIudW5pZm9ybXMuYW5nbGU9X1t0XSxhLmRyYXdBcnJheXMoYS5UUklBTkdMRVMsdyxUKSksdVsxXnRdPU0qc1syKygxXnQpXS0xLGRbdCsyXSYmKHVbMV50XSs9TSpwKm1bdCsyXSxrPEEmJmlbQV0+aVtrXSYmKHIudW5pZm9ybXMuZGF0YUF4aXM9YyxyLnVuaWZvcm1zLnNjcmVlbk9mZnNldD11LHIudW5pZm9ybXMuY29sb3I9Z1t0KzJdLHIudW5pZm9ybXMuYW5nbGU9dlt0KzJdLGEuZHJhd0FycmF5cyhhLlRSSUFOR0xFUyxpW2tdLGlbQV0taVtrXSkpKSx5W3QrMl0mJlQmJih1WzFedF0rPU0qcCp4W3QrMl0sci51bmlmb3Jtcy5kYXRhQXhpcz1mLHIudW5pZm9ybXMuc2NyZWVuT2Zmc2V0PXUsci51bmlmb3Jtcy5jb2xvcj1iW3QrMl0sci51bmlmb3Jtcy5hbmdsZT1fW3QrMl0sYS5kcmF3QXJyYXlzKGEuVFJJQU5HTEVTLHcsVCkpfSksbS5kcmF3VGl0bGU9ZnVuY3Rpb24oKXt2YXIgdD1bMCwwXSxlPVswLDBdO3JldHVybiBmdW5jdGlvbigpe3ZhciByPXRoaXMucGxvdCxuPXRoaXMuc2hhZGVyLGk9ci5nbCxhPXIuc2NyZWVuQm94LG89ci50aXRsZUNlbnRlcixzPXIudGl0bGVBbmdsZSxsPXIudGl0bGVDb2xvcixjPXIucGl4ZWxSYXRpbztpZih0aGlzLnRpdGxlQ291bnQpe2Zvcih2YXIgdT0wO3U8MjsrK3UpZVt1XT0yKihvW3VdKmMtYVt1XSkvKGFbMit1XS1hW3VdKS0xO24uYmluZCgpLG4udW5pZm9ybXMuZGF0YUF4aXM9dCxuLnVuaWZvcm1zLnNjcmVlbk9mZnNldD1lLG4udW5pZm9ybXMuYW5nbGU9cyxuLnVuaWZvcm1zLmNvbG9yPWwsaS5kcmF3QXJyYXlzKGkuVFJJQU5HTEVTLHRoaXMudGl0bGVPZmZzZXQsdGhpcy50aXRsZUNvdW50KX19fSgpLG0uYmluZD0oaD1bMCwwXSxwPVswLDBdLGQ9WzAsMF0sZnVuY3Rpb24oKXt2YXIgdD10aGlzLnBsb3QsZT10aGlzLnNoYWRlcixyPXQuX3RpY2tCb3VuZHMsbj10LmRhdGFCb3gsaT10LnNjcmVlbkJveCxhPXQudmlld0JveDtlLmJpbmQoKTtmb3IodmFyIG89MDtvPDI7KytvKXt2YXIgcz1yW29dLGw9cltvKzJdLXMsYz0uNSoobltvKzJdK25bb10pLHU9bltvKzJdLW5bb10sZj1hW29dLG09YVtvKzJdLWYsZz1pW29dLHY9aVtvKzJdLWc7cFtvXT0yKmwvdSptL3YsaFtvXT0yKihzLWMpL3UqbS92fWRbMV09Mip0LnBpeGVsUmF0aW8vKGlbM10taVsxXSksZFswXT1kWzFdKihpWzNdLWlbMV0pLyhpWzJdLWlbMF0pLGUudW5pZm9ybXMuZGF0YVNjYWxlPXAsZS51bmlmb3Jtcy5kYXRhU2hpZnQ9aCxlLnVuaWZvcm1zLnRleHRTY2FsZT1kLHRoaXMudmJvLmJpbmQoKSxlLmF0dHJpYnV0ZXMudGV4dENvb3JkaW5hdGUucG9pbnRlcigpfSksbS51cGRhdGU9ZnVuY3Rpb24odCl7dmFyIGUscixuLGksbyxzPVtdLGw9dC50aWNrcyxjPXQuYm91bmRzO2ZvcihvPTA7bzwyOysrbyl7dmFyIHU9W01hdGguZmxvb3Iocy5sZW5ndGgvMyldLGY9Wy0xLzBdLGg9bFtvXTtmb3IoZT0wO2U8aC5sZW5ndGg7KytlKXt2YXIgcD1oW2VdLGQ9cC54LG09cC50ZXh0LGc9cC5mb250fHwic2Fucy1zZXJpZiI7aT1wLmZvbnRTaXplfHwxMjtmb3IodmFyIHY9MS8oY1tvKzJdLWNbb10pLHk9Y1tvXSx4PW0uc3BsaXQoIlxuIiksYj0wO2I8eC5sZW5ndGg7YisrKWZvcihuPWEoZyx4W2JdKS5kYXRhLHI9MDtyPG4ubGVuZ3RoO3IrPTIpcy5wdXNoKG5bcl0qaSwtbltyKzFdKmktYippKjEuMiwoZC15KSp2KTt1LnB1c2goTWF0aC5mbG9vcihzLmxlbmd0aC8zKSksZi5wdXNoKGQpfXRoaXMudGlja09mZnNldFtvXT11LHRoaXMudGlja1hbb109Zn1mb3Iobz0wO288MjsrK28pe2Zvcih0aGlzLmxhYmVsT2Zmc2V0W29dPU1hdGguZmxvb3Iocy5sZW5ndGgvMyksbj1hKHQubGFiZWxGb250W29dLHQubGFiZWxzW29dLHt0ZXh0QWxpZ246ImNlbnRlciJ9KS5kYXRhLGk9dC5sYWJlbFNpemVbb10sZT0wO2U8bi5sZW5ndGg7ZSs9MilzLnB1c2gobltlXSppLC1uW2UrMV0qaSwwKTt0aGlzLmxhYmVsQ291bnRbb109TWF0aC5mbG9vcihzLmxlbmd0aC8zKS10aGlzLmxhYmVsT2Zmc2V0W29dfWZvcih0aGlzLnRpdGxlT2Zmc2V0PU1hdGguZmxvb3Iocy5sZW5ndGgvMyksbj1hKHQudGl0bGVGb250LHQudGl0bGUpLmRhdGEsaT10LnRpdGxlU2l6ZSxlPTA7ZTxuLmxlbmd0aDtlKz0yKXMucHVzaChuW2VdKmksLW5bZSsxXSppLDApO3RoaXMudGl0bGVDb3VudD1NYXRoLmZsb29yKHMubGVuZ3RoLzMpLXRoaXMudGl0bGVPZmZzZXQsdGhpcy52Ym8udXBkYXRlKHMpfSxtLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLnZiby5kaXNwb3NlKCksdGhpcy5zaGFkZXIuZGlzcG9zZSgpfX0seyIuL3NoYWRlcnMiOjExNiwiYmluYXJ5LXNlYXJjaC1ib3VuZHMiOjMxLCJnbC1idWZmZXIiOjc4LCJnbC1zaGFkZXIiOjEzMiwidGV4dC1jYWNoZSI6MzAzfV0sMTE4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10LmdsLHI9bihlLFtlLmRyYXdpbmdCdWZmZXJXaWR0aCxlLmRyYXdpbmdCdWZmZXJIZWlnaHRdKSxjPW5ldyBsKGUscik7cmV0dXJuIGMuZ3JpZD1pKGMpLGMudGV4dD1hKGMpLGMubGluZT1vKGMpLGMuYm94PXMoYyksYy51cGRhdGUodCksY307dmFyIG49dCgiZ2wtc2VsZWN0LXN0YXRpYyIpLGk9dCgiLi9saWIvZ3JpZCIpLGE9dCgiLi9saWIvdGV4dCIpLG89dCgiLi9saWIvbGluZSIpLHM9dCgiLi9saWIvYm94Iik7ZnVuY3Rpb24gbCh0LGUpe3RoaXMuZ2w9dCx0aGlzLnBpY2tCdWZmZXI9ZSx0aGlzLnNjcmVlbkJveD1bMCwwLHQuZHJhd2luZ0J1ZmZlcldpZHRoLHQuZHJhd2luZ0J1ZmZlckhlaWdodF0sdGhpcy52aWV3Qm94PVswLDAsMCwwXSx0aGlzLmRhdGFCb3g9Wy0xMCwtMTAsMTAsMTBdLHRoaXMuZ3JpZExpbmVFbmFibGU9WyEwLCEwXSx0aGlzLmdyaWRMaW5lV2lkdGg9WzEsMV0sdGhpcy5ncmlkTGluZUNvbG9yPVtbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLnBpeGVsUmF0aW89MSx0aGlzLnRpY2tNYXJrTGVuZ3RoPVswLDAsMCwwXSx0aGlzLnRpY2tNYXJrV2lkdGg9WzAsMCwwLDBdLHRoaXMudGlja01hcmtDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLnRpY2tQYWQ9WzE1LDE1LDE1LDE1XSx0aGlzLnRpY2tBbmdsZT1bMCwwLDAsMF0sdGhpcy50aWNrRW5hYmxlPVshMCwhMCwhMCwhMF0sdGhpcy50aWNrQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXV0sdGhpcy5sYWJlbFBhZD1bMTUsMTUsMTUsMTVdLHRoaXMubGFiZWxBbmdsZT1bMCxNYXRoLlBJLzIsMCwzKk1hdGguUEkvMl0sdGhpcy5sYWJlbEVuYWJsZT1bITAsITAsITAsITBdLHRoaXMubGFiZWxDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLnRpdGxlQ2VudGVyPVswLDBdLHRoaXMudGl0bGVFbmFibGU9ITAsdGhpcy50aXRsZUFuZ2xlPTAsdGhpcy50aXRsZUNvbG9yPVswLDAsMCwxXSx0aGlzLmJvcmRlckNvbG9yPVswLDAsMCwwXSx0aGlzLmJhY2tncm91bmRDb2xvcj1bMCwwLDAsMF0sdGhpcy56ZXJvTGluZUVuYWJsZT1bITAsITBdLHRoaXMuemVyb0xpbmVXaWR0aD1bNCw0XSx0aGlzLnplcm9MaW5lQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMuYm9yZGVyTGluZUVuYWJsZT1bITAsITAsITAsITBdLHRoaXMuYm9yZGVyTGluZVdpZHRoPVsyLDIsMiwyXSx0aGlzLmJvcmRlckxpbmVDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLmdyaWQ9bnVsbCx0aGlzLnRleHQ9bnVsbCx0aGlzLmxpbmU9bnVsbCx0aGlzLmJveD1udWxsLHRoaXMub2JqZWN0cz1bXSx0aGlzLm92ZXJsYXlzPVtdLHRoaXMuX3RpY2tCb3VuZHM9WzEvMCwxLzAsLTEvMCwtMS8wXSx0aGlzLnN0YXRpYz0hMSx0aGlzLmRpcnR5PSExLHRoaXMucGlja0RpcnR5PSExLHRoaXMucGlja0RlbGF5PTEyMCx0aGlzLnBpY2tSYWRpdXM9MTAsdGhpcy5fcGlja1RpbWVvdXQ9bnVsbCx0aGlzLl9kcmF3UGljaz10aGlzLmRyYXdQaWNrLmJpbmQodGhpcyksdGhpcy5fZGVwdGhDb3VudGVyPTB9dmFyIGM9bC5wcm90b3R5cGU7ZnVuY3Rpb24gdSh0KXtmb3IodmFyIGU9dC5zbGljZSgpLHI9MDtyPGUubGVuZ3RoOysrcillW3JdPWVbcl0uc2xpY2UoKTtyZXR1cm4gZX1mdW5jdGlvbiBmKHQsZSl7cmV0dXJuIHQueC1lLnh9Yy5zZXREaXJ0eT1mdW5jdGlvbigpe3RoaXMuZGlydHk9dGhpcy5waWNrRGlydHk9ITB9LGMuc2V0T3ZlcmxheURpcnR5PWZ1bmN0aW9uKCl7dGhpcy5kaXJ0eT0hMH0sYy5uZXh0RGVwdGhWYWx1ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZXB0aENvdW50ZXIrKy82NTUzNn0sYy5kcmF3PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5nbCxlPXRoaXMuc2NyZWVuQm94LHI9dGhpcy52aWV3Qm94LG49dGhpcy5kYXRhQm94LGk9dGhpcy5waXhlbFJhdGlvLGE9dGhpcy5ncmlkLG89dGhpcy5saW5lLHM9dGhpcy50ZXh0LGw9dGhpcy5vYmplY3RzO2lmKHRoaXMuX2RlcHRoQ291bnRlcj0wLHRoaXMucGlja0RpcnR5JiYodGhpcy5fcGlja1RpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLl9waWNrVGltZW91dCksdGhpcy5waWNrRGlydHk9ITEsdGhpcy5fcGlja1RpbWVvdXQ9c2V0VGltZW91dCh0aGlzLl9kcmF3UGljayx0aGlzLnBpY2tEZWxheSkpLHRoaXMuZGlydHkpe2lmKHRoaXMuZGlydHk9ITEsdC5iaW5kRnJhbWVidWZmZXIodC5GUkFNRUJVRkZFUixudWxsKSx0LmVuYWJsZSh0LlNDSVNTT1JfVEVTVCksdC5kaXNhYmxlKHQuREVQVEhfVEVTVCksdC5kZXB0aEZ1bmModC5MRVNTKSx0LmRlcHRoTWFzayghMSksdC5lbmFibGUodC5CTEVORCksdC5ibGVuZEVxdWF0aW9uKHQuRlVOQ19BREQsdC5GVU5DX0FERCksdC5ibGVuZEZ1bmModC5PTkUsdC5PTkVfTUlOVVNfU1JDX0FMUEhBKSx0aGlzLmJvcmRlckNvbG9yKXt0LnNjaXNzb3IoZVswXSxlWzFdLGVbMl0tZVswXSxlWzNdLWVbMV0pO3ZhciBjPXRoaXMuYm9yZGVyQ29sb3I7dC5jbGVhckNvbG9yKGNbMF0qY1szXSxjWzFdKmNbM10sY1syXSpjWzNdLGNbM10pLHQuY2xlYXIodC5DT0xPUl9CVUZGRVJfQklUfHQuREVQVEhfQlVGRkVSX0JJVCl9dC5zY2lzc29yKHJbMF0sclsxXSxyWzJdLXJbMF0sclszXS1yWzFdKSx0LnZpZXdwb3J0KHJbMF0sclsxXSxyWzJdLXJbMF0sclszXS1yWzFdKTt2YXIgdT10aGlzLmJhY2tncm91bmRDb2xvcjt0LmNsZWFyQ29sb3IodVswXSp1WzNdLHVbMV0qdVszXSx1WzJdKnVbM10sdVszXSksdC5jbGVhcih0LkNPTE9SX0JVRkZFUl9CSVQpLGEuZHJhdygpO3ZhciBmPXRoaXMuemVyb0xpbmVFbmFibGUsaD10aGlzLnplcm9MaW5lQ29sb3IscD10aGlzLnplcm9MaW5lV2lkdGg7aWYoZlswXXx8ZlsxXSl7by5iaW5kKCk7Zm9yKHZhciBkPTA7ZDwyOysrZClpZihmW2RdJiZuW2RdPD0wJiZuW2QrMl0+PTApe3ZhciBtPWVbZF0tbltkXSooZVtkKzJdLWVbZF0pLyhuW2QrMl0tbltkXSk7MD09PWQ/by5kcmF3TGluZShtLGVbMV0sbSxlWzNdLHBbZF0saFtkXSk6by5kcmF3TGluZShlWzBdLG0sZVsyXSxtLHBbZF0saFtkXSl9fWZvcihkPTA7ZDxsLmxlbmd0aDsrK2QpbFtkXS5kcmF3KCk7dC52aWV3cG9ydChlWzBdLGVbMV0sZVsyXS1lWzBdLGVbM10tZVsxXSksdC5zY2lzc29yKGVbMF0sZVsxXSxlWzJdLWVbMF0sZVszXS1lWzFdKSx0aGlzLmdyaWQuZHJhd1RpY2tNYXJrcygpLG8uYmluZCgpO3ZhciBnPXRoaXMuYm9yZGVyTGluZUVuYWJsZSx2PXRoaXMuYm9yZGVyTGluZVdpZHRoLHk9dGhpcy5ib3JkZXJMaW5lQ29sb3I7Zm9yKGdbMV0mJm8uZHJhd0xpbmUoclswXSxyWzFdLS41KnZbMV0qaSxyWzBdLHJbM10rLjUqdlszXSppLHZbMV0seVsxXSksZ1swXSYmby5kcmF3TGluZShyWzBdLS41KnZbMF0qaSxyWzFdLHJbMl0rLjUqdlsyXSppLHJbMV0sdlswXSx5WzBdKSxnWzNdJiZvLmRyYXdMaW5lKHJbMl0sclsxXS0uNSp2WzFdKmksclsyXSxyWzNdKy41KnZbM10qaSx2WzNdLHlbM10pLGdbMl0mJm8uZHJhd0xpbmUoclswXS0uNSp2WzBdKmksclszXSxyWzJdKy41KnZbMl0qaSxyWzNdLHZbMl0seVsyXSkscy5iaW5kKCksZD0wO2Q8MjsrK2Qpcy5kcmF3VGlja3MoZCk7dGhpcy50aXRsZUVuYWJsZSYmcy5kcmF3VGl0bGUoKTt2YXIgeD10aGlzLm92ZXJsYXlzO2ZvcihkPTA7ZDx4Lmxlbmd0aDsrK2QpeFtkXS5kcmF3KCk7dC5kaXNhYmxlKHQuU0NJU1NPUl9URVNUKSx0LmRpc2FibGUodC5CTEVORCksdC5kZXB0aE1hc2soITApfX0sYy5kcmF3UGljaz1mdW5jdGlvbigpe2lmKCF0aGlzLnN0YXRpYyl7dmFyIHQ9dGhpcy5waWNrQnVmZmVyO3RoaXMuZ2wsdGhpcy5fcGlja1RpbWVvdXQ9bnVsbCx0LmJlZ2luKCk7Zm9yKHZhciBlPTEscj10aGlzLm9iamVjdHMsbj0wO248ci5sZW5ndGg7KytuKWU9cltuXS5kcmF3UGljayhlKTt0LmVuZCgpfX0sYy5waWNrPWZ1bmN0aW9uKHQsZSl7aWYoIXRoaXMuc3RhdGljKXt2YXIgcj10aGlzLnBpeGVsUmF0aW8sbj10aGlzLnBpY2tQaXhlbFJhdGlvLGk9dGhpcy52aWV3Qm94LGE9MHxNYXRoLnJvdW5kKCh0LWlbMF0vcikqbiksbz0wfE1hdGgucm91bmQoKGUtaVsxXS9yKSpuKSxzPXRoaXMucGlja0J1ZmZlci5xdWVyeShhLG8sdGhpcy5waWNrUmFkaXVzKTtpZighcylyZXR1cm4gbnVsbDtmb3IodmFyIGw9cy5pZCsocy52YWx1ZVswXTw8OCkrKHMudmFsdWVbMV08PDE2KSsocy52YWx1ZVsyXTw8MjQpLGM9dGhpcy5vYmplY3RzLHU9MDt1PGMubGVuZ3RoOysrdSl7dmFyIGY9Y1t1XS5waWNrKGEsbyxsKTtpZihmKXJldHVybiBmfXJldHVybiBudWxsfX0sYy5zZXRTY3JlZW5Cb3g9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5zY3JlZW5Cb3gscj10aGlzLnBpeGVsUmF0aW87ZVswXT0wfE1hdGgucm91bmQodFswXSpyKSxlWzFdPTB8TWF0aC5yb3VuZCh0WzFdKnIpLGVbMl09MHxNYXRoLnJvdW5kKHRbMl0qciksZVszXT0wfE1hdGgucm91bmQodFszXSpyKSx0aGlzLnNldERpcnR5KCl9LGMuc2V0RGF0YUJveD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmRhdGFCb3g7KGVbMF0hPT10WzBdfHxlWzFdIT09dFsxXXx8ZVsyXSE9PXRbMl18fGVbM10hPT10WzNdKSYmKGVbMF09dFswXSxlWzFdPXRbMV0sZVsyXT10WzJdLGVbM109dFszXSx0aGlzLnNldERpcnR5KCkpfSxjLnNldFZpZXdCb3g9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5waXhlbFJhdGlvLHI9dGhpcy52aWV3Qm94O3JbMF09MHxNYXRoLnJvdW5kKHRbMF0qZSksclsxXT0wfE1hdGgucm91bmQodFsxXSplKSxyWzJdPTB8TWF0aC5yb3VuZCh0WzJdKmUpLHJbM109MHxNYXRoLnJvdW5kKHRbM10qZSk7dmFyIG49dGhpcy5waWNrUGl4ZWxSYXRpbzt0aGlzLnBpY2tCdWZmZXIuc2hhcGU9WzB8TWF0aC5yb3VuZCgodFsyXS10WzBdKSpuKSwwfE1hdGgucm91bmQoKHRbM10tdFsxXSkqbildLHRoaXMuc2V0RGlydHkoKX0sYy51cGRhdGU9ZnVuY3Rpb24odCl7dD10fHx7fTt2YXIgZT10aGlzLmdsO3RoaXMucGl4ZWxSYXRpbz10LnBpeGVsUmF0aW98fDE7dmFyIHI9dGhpcy5waXhlbFJhdGlvO3RoaXMucGlja1BpeGVsUmF0aW89TWF0aC5tYXgociwxKSx0aGlzLnNldFNjcmVlbkJveCh0LnNjcmVlbkJveHx8WzAsMCxlLmRyYXdpbmdCdWZmZXJXaWR0aC9yLGUuZHJhd2luZ0J1ZmZlckhlaWdodC9yXSk7dGhpcy5zY3JlZW5Cb3g7dGhpcy5zZXRWaWV3Qm94KHQudmlld0JveHx8Wy4xMjUqKHRoaXMuc2NyZWVuQm94WzJdLXRoaXMuc2NyZWVuQm94WzBdKS9yLC4xMjUqKHRoaXMuc2NyZWVuQm94WzNdLXRoaXMuc2NyZWVuQm94WzFdKS9yLC44NzUqKHRoaXMuc2NyZWVuQm94WzJdLXRoaXMuc2NyZWVuQm94WzBdKS9yLC44NzUqKHRoaXMuc2NyZWVuQm94WzNdLXRoaXMuc2NyZWVuQm94WzFdKS9yXSk7dmFyIG49dGhpcy52aWV3Qm94LGk9KG5bMl0tblswXSkvKG5bM10tblsxXSk7dGhpcy5zZXREYXRhQm94KHQuZGF0YUJveHx8Wy0xMCwtMTAvaSwxMCwxMC9pXSksdGhpcy5ib3JkZXJDb2xvcj0hMSE9PXQuYm9yZGVyQ29sb3ImJih0LmJvcmRlckNvbG9yfHxbMCwwLDAsMF0pLnNsaWNlKCksdGhpcy5iYWNrZ3JvdW5kQ29sb3I9KHQuYmFja2dyb3VuZENvbG9yfHxbMCwwLDAsMF0pLnNsaWNlKCksdGhpcy5ncmlkTGluZUVuYWJsZT0odC5ncmlkTGluZUVuYWJsZXx8WyEwLCEwXSkuc2xpY2UoKSx0aGlzLmdyaWRMaW5lV2lkdGg9KHQuZ3JpZExpbmVXaWR0aHx8WzEsMV0pLnNsaWNlKCksdGhpcy5ncmlkTGluZUNvbG9yPXUodC5ncmlkTGluZUNvbG9yfHxbWy41LC41LC41LDFdLFsuNSwuNSwuNSwxXV0pLHRoaXMuemVyb0xpbmVFbmFibGU9KHQuemVyb0xpbmVFbmFibGV8fFshMCwhMF0pLnNsaWNlKCksdGhpcy56ZXJvTGluZVdpZHRoPSh0Lnplcm9MaW5lV2lkdGh8fFs0LDRdKS5zbGljZSgpLHRoaXMuemVyb0xpbmVDb2xvcj11KHQuemVyb0xpbmVDb2xvcnx8W1swLDAsMCwxXSxbMCwwLDAsMV1dKSx0aGlzLnRpY2tNYXJrTGVuZ3RoPSh0LnRpY2tNYXJrTGVuZ3RofHxbMCwwLDAsMF0pLnNsaWNlKCksdGhpcy50aWNrTWFya1dpZHRoPSh0LnRpY2tNYXJrV2lkdGh8fFswLDAsMCwwXSkuc2xpY2UoKSx0aGlzLnRpY2tNYXJrQ29sb3I9dSh0LnRpY2tNYXJrQ29sb3J8fFtbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dKSx0aGlzLnRpdGxlQ2VudGVyPSh0LnRpdGxlQ2VudGVyfHxbLjUqKG5bMF0rblsyXSkvciwoblszXSsxMjApL3JdKS5zbGljZSgpLHRoaXMudGl0bGVFbmFibGU9ISgidGl0bGVFbmFibGUiaW4gdCl8fCEhdC50aXRsZUVuYWJsZSx0aGlzLnRpdGxlQW5nbGU9dC50aXRsZUFuZ2xlfHwwLHRoaXMudGl0bGVDb2xvcj0odC50aXRsZUNvbG9yfHxbMCwwLDAsMV0pLnNsaWNlKCksdGhpcy5sYWJlbFBhZD0odC5sYWJlbFBhZHx8WzE1LDE1LDE1LDE1XSkuc2xpY2UoKSx0aGlzLmxhYmVsQW5nbGU9KHQubGFiZWxBbmdsZXx8WzAsTWF0aC5QSS8yLDAsMypNYXRoLlBJLzJdKS5zbGljZSgpLHRoaXMubGFiZWxFbmFibGU9KHQubGFiZWxFbmFibGV8fFshMCwhMCwhMCwhMF0pLnNsaWNlKCksdGhpcy5sYWJlbENvbG9yPXUodC5sYWJlbENvbG9yfHxbWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSksdGhpcy50aWNrUGFkPSh0LnRpY2tQYWR8fFsxNSwxNSwxNSwxNV0pLnNsaWNlKCksdGhpcy50aWNrQW5nbGU9KHQudGlja0FuZ2xlfHxbMCwwLDAsMF0pLnNsaWNlKCksdGhpcy50aWNrRW5hYmxlPSh0LnRpY2tFbmFibGV8fFshMCwhMCwhMCwhMF0pLnNsaWNlKCksdGhpcy50aWNrQ29sb3I9dSh0LnRpY2tDb2xvcnx8W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXV0pLHRoaXMuYm9yZGVyTGluZUVuYWJsZT0odC5ib3JkZXJMaW5lRW5hYmxlfHxbITAsITAsITAsITBdKS5zbGljZSgpLHRoaXMuYm9yZGVyTGluZVdpZHRoPSh0LmJvcmRlckxpbmVXaWR0aHx8WzIsMiwyLDJdKS5zbGljZSgpLHRoaXMuYm9yZGVyTGluZUNvbG9yPXUodC5ib3JkZXJMaW5lQ29sb3J8fFtbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dKTt2YXIgYT10LnRpY2tzfHxbW10sW11dLG89dGhpcy5fdGlja0JvdW5kcztvWzBdPW9bMV09MS8wLG9bMl09b1szXT0tMS8wO2Zvcih2YXIgcz0wO3M8MjsrK3Mpe3ZhciBsPWFbc10uc2xpY2UoMCk7MCE9PWwubGVuZ3RoJiYobC5zb3J0KGYpLG9bc109TWF0aC5taW4ob1tzXSxsWzBdLngpLG9bcysyXT1NYXRoLm1heChvW3MrMl0sbFtsLmxlbmd0aC0xXS54KSl9dGhpcy5ncmlkLnVwZGF0ZSh7Ym91bmRzOm8sdGlja3M6YX0pLHRoaXMudGV4dC51cGRhdGUoe2JvdW5kczpvLHRpY2tzOmEsbGFiZWxzOnQubGFiZWxzfHxbIngiLCJ5Il0sbGFiZWxTaXplOnQubGFiZWxTaXplfHxbMTIsMTJdLGxhYmVsRm9udDp0LmxhYmVsRm9udHx8WyJzYW5zLXNlcmlmIiwic2Fucy1zZXJpZiJdLHRpdGxlOnQudGl0bGV8fCIiLHRpdGxlU2l6ZTp0LnRpdGxlU2l6ZXx8MTgsdGl0bGVGb250OnQudGl0bGVGb250fHwic2Fucy1zZXJpZiJ9KSx0aGlzLnN0YXRpYz0hIXQuc3RhdGljLHRoaXMuc2V0RGlydHkoKX0sYy5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5ib3guZGlzcG9zZSgpLHRoaXMuZ3JpZC5kaXNwb3NlKCksdGhpcy50ZXh0LmRpc3Bvc2UoKSx0aGlzLmxpbmUuZGlzcG9zZSgpO2Zvcih2YXIgdD10aGlzLm9iamVjdHMubGVuZ3RoLTE7dD49MDstLXQpdGhpcy5vYmplY3RzW3RdLmRpc3Bvc2UoKTt0aGlzLm9iamVjdHMubGVuZ3RoPTA7Zm9yKHQ9dGhpcy5vdmVybGF5cy5sZW5ndGgtMTt0Pj0wOy0tdCl0aGlzLm92ZXJsYXlzW3RdLmRpc3Bvc2UoKTt0aGlzLm92ZXJsYXlzLmxlbmd0aD0wLHRoaXMuZ2w9bnVsbH0sYy5hZGRPYmplY3Q9ZnVuY3Rpb24odCl7dGhpcy5vYmplY3RzLmluZGV4T2YodCk8MCYmKHRoaXMub2JqZWN0cy5wdXNoKHQpLHRoaXMuc2V0RGlydHkoKSl9LGMucmVtb3ZlT2JqZWN0PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLm9iamVjdHMscj0wO3I8ZS5sZW5ndGg7KytyKWlmKGVbcl09PT10KXtlLnNwbGljZShyLDEpLHRoaXMuc2V0RGlydHkoKTticmVha319LGMuYWRkT3ZlcmxheT1mdW5jdGlvbih0KXt0aGlzLm92ZXJsYXlzLmluZGV4T2YodCk8MCYmKHRoaXMub3ZlcmxheXMucHVzaCh0KSx0aGlzLnNldE92ZXJsYXlEaXJ0eSgpKX0sYy5yZW1vdmVPdmVybGF5PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLm92ZXJsYXlzLHI9MDtyPGUubGVuZ3RoOysrcilpZihlW3JdPT09dCl7ZS5zcGxpY2UociwxKSx0aGlzLnNldE92ZXJsYXlEaXJ0eSgpO2JyZWFrfX19LHsiLi9saWIvYm94IjoxMTMsIi4vbGliL2dyaWQiOjExNCwiLi9saWIvbGluZSI6MTE1LCIuL2xpYi90ZXh0IjoxMTcsImdsLXNlbGVjdC1zdGF0aWMiOjEzMX1dLDExOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt0PXR8fGRvY3VtZW50LmJvZHksZT1lfHx7fTt2YXIgcj1bLjAxLDEvMF07ImRpc3RhbmNlTGltaXRzImluIGUmJihyWzBdPWUuZGlzdGFuY2VMaW1pdHNbMF0sclsxXT1lLmRpc3RhbmNlTGltaXRzWzFdKTsiem9vbU1pbiJpbiBlJiYoclswXT1lLnpvb21NaW4pOyJ6b29tTWF4ImluIGUmJihyWzFdPWUuem9vbU1heCk7dmFyIGM9aSh7Y2VudGVyOmUuY2VudGVyfHxbMCwwLDBdLHVwOmUudXB8fFswLDEsMF0sZXllOmUuZXllfHxbMCwwLDEwXSxtb2RlOmUubW9kZXx8Im9yYml0IixkaXN0YW5jZUxpbWl0czpyfSksdT1bMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMF0sZj0wLGg9dC5jbGllbnRXaWR0aCxwPXQuY2xpZW50SGVpZ2h0LGQ9e2tleUJpbmRpbmdNb2RlOiJyb3RhdGUiLGVuYWJsZVdoZWVsOiEwLHZpZXc6YyxlbGVtZW50OnQsZGVsYXk6ZS5kZWxheXx8MTYscm90YXRlU3BlZWQ6ZS5yb3RhdGVTcGVlZHx8MSx6b29tU3BlZWQ6ZS56b29tU3BlZWR8fDEsdHJhbnNsYXRlU3BlZWQ6ZS50cmFuc2xhdGVTcGVlZHx8MSxmbGlwWDohIWUuZmxpcFgsZmxpcFk6ISFlLmZsaXBZLG1vZGVzOmMubW9kZXMsX29ydGhvOmUuX29ydGhvfHxlLnByb2plY3Rpb24mJiJvcnRob2dyYXBoaWMiPT09ZS5wcm9qZWN0aW9uLnR5cGV8fCExLHRpY2s6ZnVuY3Rpb24oKXt2YXIgZT1uKCkscj10aGlzLmRlbGF5LGk9ZS0yKnI7Yy5pZGxlKGUtciksYy5yZWNhbGNNYXRyaXgoaSksYy5mbHVzaChlLSgxMDArMipyKSk7Zm9yKHZhciBhPSEwLG89Yy5jb21wdXRlZE1hdHJpeCxzPTA7czwxNjsrK3MpYT1hJiZ1W3NdPT09b1tzXSx1W3NdPW9bc107dmFyIGw9dC5jbGllbnRXaWR0aD09PWgmJnQuY2xpZW50SGVpZ2h0PT09cDtyZXR1cm4gaD10LmNsaWVudFdpZHRoLHA9dC5jbGllbnRIZWlnaHQsYT8hbDooZj1NYXRoLmV4cChjLmNvbXB1dGVkUmFkaXVzWzBdKSwhMCl9LGxvb2tBdDpmdW5jdGlvbih0LGUscil7Yy5sb29rQXQoYy5sYXN0VCgpLHQsZSxyKX0scm90YXRlOmZ1bmN0aW9uKHQsZSxyKXtjLnJvdGF0ZShjLmxhc3RUKCksdCxlLHIpfSxwYW46ZnVuY3Rpb24odCxlLHIpe2MucGFuKGMubGFzdFQoKSx0LGUscil9LHRyYW5zbGF0ZTpmdW5jdGlvbih0LGUscil7Yy50cmFuc2xhdGUoYy5sYXN0VCgpLHQsZSxyKX19O3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhkLHttYXRyaXg6e2dldDpmdW5jdGlvbigpe3JldHVybiBjLmNvbXB1dGVkTWF0cml4fSxzZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGMuc2V0TWF0cml4KGMubGFzdFQoKSx0KSxjLmNvbXB1dGVkTWF0cml4fSxlbnVtZXJhYmxlOiEwfSxtb2RlOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYy5nZXRNb2RlKCl9LHNldDpmdW5jdGlvbih0KXt2YXIgZT1jLmNvbXB1dGVkVXAuc2xpY2UoKSxyPWMuY29tcHV0ZWRFeWUuc2xpY2UoKSxpPWMuY29tcHV0ZWRDZW50ZXIuc2xpY2UoKTtpZihjLnNldE1vZGUodCksInR1cm50YWJsZSI9PT10KXt2YXIgYT1uKCk7Yy5fYWN0aXZlLmxvb2tBdChhLHIsaSxlKSxjLl9hY3RpdmUubG9va0F0KGErNTAwLHIsaSxbMCwwLDFdKSxjLl9hY3RpdmUuZmx1c2goYSl9cmV0dXJuIGMuZ2V0TW9kZSgpfSxlbnVtZXJhYmxlOiEwfSxjZW50ZXI6e2dldDpmdW5jdGlvbigpe3JldHVybiBjLmNvbXB1dGVkQ2VudGVyfSxzZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGMubG9va0F0KGMubGFzdFQoKSxudWxsLHQpLGMuY29tcHV0ZWRDZW50ZXJ9LGVudW1lcmFibGU6ITB9LGV5ZTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGMuY29tcHV0ZWRFeWV9LHNldDpmdW5jdGlvbih0KXtyZXR1cm4gYy5sb29rQXQoYy5sYXN0VCgpLHQpLGMuY29tcHV0ZWRFeWV9LGVudW1lcmFibGU6ITB9LHVwOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYy5jb21wdXRlZFVwfSxzZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGMubG9va0F0KGMubGFzdFQoKSxudWxsLG51bGwsdCksYy5jb21wdXRlZFVwfSxlbnVtZXJhYmxlOiEwfSxkaXN0YW5jZTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGZ9LHNldDpmdW5jdGlvbih0KXtyZXR1cm4gYy5zZXREaXN0YW5jZShjLmxhc3RUKCksdCksdH0sZW51bWVyYWJsZTohMH0sZGlzdGFuY2VMaW1pdHM6e2dldDpmdW5jdGlvbigpe3JldHVybiBjLmdldERpc3RhbmNlTGltaXRzKHIpfSxzZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGMuc2V0RGlzdGFuY2VMaW1pdHModCksdH0sZW51bWVyYWJsZTohMH19KSx0LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IiwoZnVuY3Rpb24odCl7cmV0dXJuIHQucHJldmVudERlZmF1bHQoKSwhMX0pKSxkLl9sYXN0WD0tMSxkLl9sYXN0WT0tMSxkLl9sYXN0TW9kcz17c2hpZnQ6ITEsY29udHJvbDohMSxhbHQ6ITEsbWV0YTohMX0sZC5lbmFibGVNb3VzZUxpc3RlbmVycz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSxyLGksYSl7dmFyIG89ZC5rZXlCaW5kaW5nTW9kZTtpZighMSE9PW8pe3ZhciBzPSJyb3RhdGUiPT09byxsPSJwYW4iPT09byx1PSJ6b29tIj09PW8saD0hIWEuY29udHJvbCxwPSEhYS5hbHQsbT0hIWEuc2hpZnQsZz0hISgxJmUpLHY9ISEoMiZlKSx5PSEhKDQmZSkseD0xL3QuY2xpZW50SGVpZ2h0LGI9eCooci1kLl9sYXN0WCksXz14KihpLWQuX2xhc3RZKSx3PWQuZmxpcFg/MTotMSxUPWQuZmxpcFk/MTotMSxrPU1hdGguUEkqZC5yb3RhdGVTcGVlZCxBPW4oKTtpZigtMSE9PWQuX2xhc3RYJiYtMSE9PWQuX2xhc3RZJiYoKHMmJmcmJiFoJiYhcCYmIW18fGcmJiFoJiYhcCYmbSkmJmMucm90YXRlKEEsdyprKmIsLVQqaypfLDApLChsJiZnJiYhaCYmIXAmJiFtfHx2fHxnJiZoJiYhcCYmIW0pJiZjLnBhbihBLC1kLnRyYW5zbGF0ZVNwZWVkKmIqZixkLnRyYW5zbGF0ZVNwZWVkKl8qZiwwKSx1JiZnJiYhaCYmIXAmJiFtfHx5fHxnJiYhaCYmcCYmIW0pKXt2YXIgTT0tZC56b29tU3BlZWQqXy93aW5kb3cuaW5uZXJIZWlnaHQqKEEtYy5sYXN0VCgpKSoxMDA7Yy5wYW4oQSwwLDAsZiooTWF0aC5leHAoTSktMSkpfXJldHVybiBkLl9sYXN0WD1yLGQuX2xhc3RZPWksZC5fbGFzdE1vZHM9YSwhMH19ZC5tb3VzZUxpc3RlbmVyPWEodCxlKSx0LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLChmdW5jdGlvbihyKXt2YXIgbj1zKHIuY2hhbmdlZFRvdWNoZXNbMF0sdCk7ZSgwLG5bMF0sblsxXSxkLl9sYXN0TW9kcyksZSgxLG5bMF0sblsxXSxkLl9sYXN0TW9kcyl9KSwhIWwmJntwYXNzaXZlOiEwfSksdC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLChmdW5jdGlvbihyKXt2YXIgbj1zKHIuY2hhbmdlZFRvdWNoZXNbMF0sdCk7ZSgxLG5bMF0sblsxXSxkLl9sYXN0TW9kcyksci5wcmV2ZW50RGVmYXVsdCgpfSksISFsJiZ7cGFzc2l2ZTohMX0pLHQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLChmdW5jdGlvbih0KXtlKDAsZC5fbGFzdFgsZC5fbGFzdFksZC5fbGFzdE1vZHMpfSksISFsJiZ7cGFzc2l2ZTohMH0pLGQud2hlZWxMaXN0ZW5lcj1vKHQsKGZ1bmN0aW9uKHQsZSl7aWYoITEhPT1kLmtleUJpbmRpbmdNb2RlJiZkLmVuYWJsZVdoZWVsKXt2YXIgcj1kLmZsaXBYPzE6LTEsaT1kLmZsaXBZPzE6LTEsYT1uKCk7aWYoTWF0aC5hYnModCk+TWF0aC5hYnMoZSkpYy5yb3RhdGUoYSwwLDAsLXQqcipNYXRoLlBJKmQucm90YXRlU3BlZWQvd2luZG93LmlubmVyV2lkdGgpO2Vsc2UgaWYoIWQuX29ydGhvKXt2YXIgbz0tZC56b29tU3BlZWQqaSplL3dpbmRvdy5pbm5lckhlaWdodCooYS1jLmxhc3RUKCkpLzIwO2MucGFuKGEsMCwwLGYqKE1hdGguZXhwKG8pLTEpKX19fSksITApfSxkLmVuYWJsZU1vdXNlTGlzdGVuZXJzKCksZH07dmFyIG49dCgicmlnaHQtbm93IiksaT10KCIzZC12aWV3IiksYT10KCJtb3VzZS1jaGFuZ2UiKSxvPXQoIm1vdXNlLXdoZWVsIikscz10KCJtb3VzZS1ldmVudC1vZmZzZXQiKSxsPXQoImhhcy1wYXNzaXZlLWV2ZW50cyIpfSx7IjNkLXZpZXciOjcsImhhcy1wYXNzaXZlLWV2ZW50cyI6MjMyLCJtb3VzZS1jaGFuZ2UiOjI0NywibW91c2UtZXZlbnQtb2Zmc2V0IjoyNDgsIm1vdXNlLXdoZWVsIjoyNTAsInJpZ2h0LW5vdyI6Mjc4fV0sMTIwOltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiZ2xzbGlmeSIpLGk9dCgiZ2wtc2hhZGVyIiksYT1uKFsicHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuYXR0cmlidXRlIHZlYzIgcG9zaXRpb247XG52YXJ5aW5nIHZlYzIgdXY7XG52b2lkIG1haW4oKSB7XG4gIHV2ID0gcG9zaXRpb247XG4gIGdsX1Bvc2l0aW9uID0gdmVjNChwb3NpdGlvbiwgMCwgMSk7XG59Il0pLG89bihbInByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxudW5pZm9ybSBzYW1wbGVyMkQgYWNjdW1CdWZmZXI7XG52YXJ5aW5nIHZlYzIgdXY7XG5cbnZvaWQgbWFpbigpIHtcbiAgdmVjNCBhY2N1bSA9IHRleHR1cmUyRChhY2N1bUJ1ZmZlciwgMC41ICogKHV2ICsgMS4wKSk7XG4gIGdsX0ZyYWdDb2xvciA9IG1pbih2ZWM0KDEsMSwxLDEpLCBhY2N1bSk7XG59Il0pO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gaSh0LGEsbyxudWxsLFt7bmFtZToicG9zaXRpb24iLHR5cGU6InZlYzIifV0pfX0seyJnbC1zaGFkZXIiOjEzMixnbHNsaWZ5OjIzMX1dLDEyMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2NhbWVyYS5qcyIpLGk9dCgiZ2wtYXhlczNkIiksYT10KCJnbC1heGVzM2QvcHJvcGVydGllcyIpLG89dCgiZ2wtc3Bpa2VzM2QiKSxzPXQoImdsLXNlbGVjdC1zdGF0aWMiKSxsPXQoImdsLWZibyIpLGM9dCgiYS1iaWctdHJpYW5nbGUiKSx1PXQoIm1vdXNlLWNoYW5nZSIpLGY9dCgiZ2wtbWF0NC9wZXJzcGVjdGl2ZSIpLGg9dCgiZ2wtbWF0NC9vcnRobyIpLHA9dCgiLi9saWIvc2hhZGVyIiksZD10KCJpcy1tb2JpbGUiKSh7dGFibGV0OiEwLGZlYXR1cmVEZXRlY3Q6ITB9KTtmdW5jdGlvbiBtKCl7dGhpcy5tb3VzZT1bLTEsLTFdLHRoaXMuc2NyZWVuPW51bGwsdGhpcy5kaXN0YW5jZT0xLzAsdGhpcy5pbmRleD1udWxsLHRoaXMuZGF0YUNvb3JkaW5hdGU9bnVsbCx0aGlzLmRhdGFQb3NpdGlvbj1udWxsLHRoaXMub2JqZWN0PW51bGwsdGhpcy5kYXRhPW51bGx9ZnVuY3Rpb24gZyh0KXt2YXIgZT1NYXRoLnJvdW5kKE1hdGgubG9nKE1hdGguYWJzKHQpKS9NYXRoLmxvZygxMCkpO2lmKGU8MCl7dmFyIHI9TWF0aC5yb3VuZChNYXRoLnBvdygxMCwtZSkpO3JldHVybiBNYXRoLmNlaWwodCpyKS9yfWlmKGU+MCl7cj1NYXRoLnJvdW5kKE1hdGgucG93KDEwLGUpKTtyZXR1cm4gTWF0aC5jZWlsKHQvcikqcn1yZXR1cm4gTWF0aC5jZWlsKHQpfWZ1bmN0aW9uIHYodCl7cmV0dXJuImJvb2xlYW4iIT10eXBlb2YgdHx8dH1lLmV4cG9ydHM9e2NyZWF0ZVNjZW5lOmZ1bmN0aW9uKHQpeyh0PXR8fHt9KS5jYW1lcmE9dC5jYW1lcmF8fHt9O3ZhciBlPXQuY2FudmFzO2lmKCFlKXtpZihlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLHQuY29udGFpbmVyKXQuY29udGFpbmVyLmFwcGVuZENoaWxkKGUpO2Vsc2UgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKX12YXIgcj10LmdsO3J8fCh0LmdsT3B0aW9ucyYmKGQ9ISF0LmdsT3B0aW9ucy5wcmVzZXJ2ZURyYXdpbmdCdWZmZXIpLHI9ZnVuY3Rpb24odCxlKXt2YXIgcj1udWxsO3RyeXsocj10LmdldENvbnRleHQoIndlYmdsIixlKSl8fChyPXQuZ2V0Q29udGV4dCgiZXhwZXJpbWVudGFsLXdlYmdsIixlKSl9Y2F0Y2godCl7cmV0dXJuIG51bGx9cmV0dXJuIHJ9KGUsdC5nbE9wdGlvbnN8fHtwcmVtdWx0aXBsaWVkQWxwaGE6ITAsYW50aWFsaWFzOiEwLHByZXNlcnZlRHJhd2luZ0J1ZmZlcjpkfSkpO2lmKCFyKXRocm93IG5ldyBFcnJvcigid2ViZ2wgbm90IHN1cHBvcnRlZCIpO3ZhciB5PXQuYm91bmRzfHxbWy0xMCwtMTAsLTEwXSxbMTAsMTAsMTBdXSx4PW5ldyBtLGI9bChyLHIuZHJhd2luZ0J1ZmZlcldpZHRoLHIuZHJhd2luZ0J1ZmZlckhlaWdodCx7cHJlZmVyRmxvYXQ6IWR9KSxfPXAociksdz10LmNhbWVyYU9iamVjdCYmITA9PT10LmNhbWVyYU9iamVjdC5fb3J0aG98fHQuY2FtZXJhLnByb2plY3Rpb24mJiJvcnRob2dyYXBoaWMiPT09dC5jYW1lcmEucHJvamVjdGlvbi50eXBlfHwhMSxUPXtleWU6dC5jYW1lcmEuZXllfHxbMiwwLDBdLGNlbnRlcjp0LmNhbWVyYS5jZW50ZXJ8fFswLDAsMF0sdXA6dC5jYW1lcmEudXB8fFswLDEsMF0sem9vbU1pbjp0LmNhbWVyYS56b29tTWF4fHwuMSx6b29tTWF4OnQuY2FtZXJhLnpvb21NaW58fDEwMCxtb2RlOnQuY2FtZXJhLm1vZGV8fCJ0dXJudGFibGUiLF9vcnRobzp3fSxrPXQuYXhlc3x8e30sQT1pKHIsayk7QS5lbmFibGU9IWsuZGlzYWJsZTt2YXIgTT10LnNwaWtlc3x8e30sUz1vKHIsTSksRT1bXSxMPVtdLEM9W10sUD1bXSxJPSEwLE89ITAsej1uZXcgQXJyYXkoMTYpLEQ9bmV3IEFycmF5KDE2KSxSPXt2aWV3Om51bGwscHJvamVjdGlvbjp6LG1vZGVsOkQsX29ydGhvOiExfSxGPShPPSEwLFtyLmRyYXdpbmdCdWZmZXJXaWR0aCxyLmRyYXdpbmdCdWZmZXJIZWlnaHRdKSxCPXQuY2FtZXJhT2JqZWN0fHxuKGUsVCksTj17Z2w6cixjb250ZXh0TG9zdDohMSxwaXhlbFJhdGlvOnQucGl4ZWxSYXRpb3x8MSxjYW52YXM6ZSxzZWxlY3Rpb246eCxjYW1lcmE6QixheGVzOkEsYXhlc1BpeGVsczpudWxsLHNwaWtlczpTLGJvdW5kczp5LG9iamVjdHM6RSxzaGFwZTpGLGFzcGVjdDp0LmFzcGVjdFJhdGlvfHxbMSwxLDFdLHBpY2tSYWRpdXM6dC5waWNrUmFkaXVzfHwxMCx6TmVhcjp0LnpOZWFyfHwuMDEsekZhcjp0LnpGYXJ8fDFlMyxmb3Z5OnQuZm92eXx8TWF0aC5QSS80LGNsZWFyQ29sb3I6dC5jbGVhckNvbG9yfHxbMCwwLDAsMF0sYXV0b1Jlc2l6ZTp2KHQuYXV0b1Jlc2l6ZSksYXV0b0JvdW5kczp2KHQuYXV0b0JvdW5kcyksYXV0b1NjYWxlOiEhdC5hdXRvU2NhbGUsYXV0b0NlbnRlcjp2KHQuYXV0b0NlbnRlciksY2xpcFRvQm91bmRzOnYodC5jbGlwVG9Cb3VuZHMpLHNuYXBUb0RhdGE6ISF0LnNuYXBUb0RhdGEsb25zZWxlY3Q6dC5vbnNlbGVjdHx8bnVsbCxvbnJlbmRlcjp0Lm9ucmVuZGVyfHxudWxsLG9uY2xpY2s6dC5vbmNsaWNrfHxudWxsLGNhbWVyYVBhcmFtczpSLG9uY29udGV4dGxvc3M6bnVsbCxtb3VzZUxpc3RlbmVyOm51bGwsX3N0b3BwZWQ6ITEsZ2V0QXNwZWN0cmF0aW86ZnVuY3Rpb24oKXtyZXR1cm57eDp0aGlzLmFzcGVjdFswXSx5OnRoaXMuYXNwZWN0WzFdLHo6dGhpcy5hc3BlY3RbMl19fSxzZXRBc3BlY3RyYXRpbzpmdW5jdGlvbih0KXt0aGlzLmFzcGVjdFswXT10LngsdGhpcy5hc3BlY3RbMV09dC55LHRoaXMuYXNwZWN0WzJdPXQueixPPSEwfSxzZXRCb3VuZHM6ZnVuY3Rpb24odCxlKXt0aGlzLmJvdW5kc1swXVt0XT1lLm1pbix0aGlzLmJvdW5kc1sxXVt0XT1lLm1heH0sc2V0Q2xlYXJDb2xvcjpmdW5jdGlvbih0KXt0aGlzLmNsZWFyQ29sb3I9dH0sY2xlYXJSR0JBOmZ1bmN0aW9uKCl7dGhpcy5nbC5jbGVhckNvbG9yKHRoaXMuY2xlYXJDb2xvclswXSx0aGlzLmNsZWFyQ29sb3JbMV0sdGhpcy5jbGVhckNvbG9yWzJdLHRoaXMuY2xlYXJDb2xvclszXSksdGhpcy5nbC5jbGVhcih0aGlzLmdsLkNPTE9SX0JVRkZFUl9CSVR8dGhpcy5nbC5ERVBUSF9CVUZGRVJfQklUKX19LGo9W3IuZHJhd2luZ0J1ZmZlcldpZHRoL04ucGl4ZWxSYXRpb3wwLHIuZHJhd2luZ0J1ZmZlckhlaWdodC9OLnBpeGVsUmF0aW98MF07ZnVuY3Rpb24gVSgpe2lmKCFOLl9zdG9wcGVkJiZOLmF1dG9SZXNpemUpe3ZhciB0PWUucGFyZW50Tm9kZSxyPTEsbj0xO3QmJnQhPT1kb2N1bWVudC5ib2R5PyhyPXQuY2xpZW50V2lkdGgsbj10LmNsaWVudEhlaWdodCk6KHI9d2luZG93LmlubmVyV2lkdGgsbj13aW5kb3cuaW5uZXJIZWlnaHQpO3ZhciBpPTB8TWF0aC5jZWlsKHIqTi5waXhlbFJhdGlvKSxhPTB8TWF0aC5jZWlsKG4qTi5waXhlbFJhdGlvKTtpZihpIT09ZS53aWR0aHx8YSE9PWUuaGVpZ2h0KXtlLndpZHRoPWksZS5oZWlnaHQ9YTt2YXIgbz1lLnN0eWxlO28ucG9zaXRpb249by5wb3NpdGlvbnx8ImFic29sdXRlIixvLmxlZnQ9IjBweCIsby50b3A9IjBweCIsby53aWR0aD1yKyJweCIsby5oZWlnaHQ9bisicHgiLEk9ITB9fX1OLmF1dG9SZXNpemUmJlUoKTtmdW5jdGlvbiBWKCl7Zm9yKHZhciB0PUUubGVuZ3RoLGU9UC5sZW5ndGgsbj0wO248ZTsrK24pQ1tuXT0wO3Q6Zm9yKG49MDtuPHQ7KytuKXt2YXIgaT1FW25dLGE9aS5waWNrU2xvdHM7aWYoYSl7Zm9yKHZhciBvPTA7bzxlOysrbylpZihDW29dK2E8MjU1KXtMW25dPW8saS5zZXRQaWNrQmFzZShDW29dKzEpLENbb10rPWE7Y29udGludWUgdH12YXIgbD1zKHIsRik7TFtuXT1lLFAucHVzaChsKSxDLnB1c2goYSksaS5zZXRQaWNrQmFzZSgxKSxlKz0xfWVsc2UgTFtuXT0tMX1mb3IoO2U+MCYmMD09PUNbZS0xXTspQy5wb3AoKSxQLnBvcCgpLmRpc3Bvc2UoKX1mdW5jdGlvbiBIKCl7aWYoTi5jb250ZXh0TG9zdClyZXR1cm4hMDtyLmlzQ29udGV4dExvc3QoKSYmKE4uY29udGV4dExvc3Q9ITAsTi5tb3VzZUxpc3RlbmVyLmVuYWJsZWQ9ITEsTi5zZWxlY3Rpb24ub2JqZWN0PW51bGwsTi5vbmNvbnRleHRsb3NzJiZOLm9uY29udGV4dGxvc3MoKSl9d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsVSksTi51cGRhdGU9ZnVuY3Rpb24odCl7Ti5fc3RvcHBlZHx8KHQ9dHx8e30sST0hMCxPPSEwKX0sTi5hZGQ9ZnVuY3Rpb24odCl7Ti5fc3RvcHBlZHx8KHQuYXhlcz1BLEUucHVzaCh0KSxMLnB1c2goLTEpLEk9ITAsTz0hMCxWKCkpfSxOLnJlbW92ZT1mdW5jdGlvbih0KXtpZighTi5fc3RvcHBlZCl7dmFyIGU9RS5pbmRleE9mKHQpO2U8MHx8KEUuc3BsaWNlKGUsMSksTC5wb3AoKSxJPSEwLE89ITAsVigpKX19LE4uZGlzcG9zZT1mdW5jdGlvbigpe2lmKCFOLl9zdG9wcGVkJiYoTi5fc3RvcHBlZD0hMCx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIixVKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmdsY29udGV4dGxvc3QiLEgpLE4ubW91c2VMaXN0ZW5lci5lbmFibGVkPSExLCFOLmNvbnRleHRMb3N0KSl7QS5kaXNwb3NlKCksUy5kaXNwb3NlKCk7Zm9yKHZhciB0PTA7dDxFLmxlbmd0aDsrK3QpRVt0XS5kaXNwb3NlKCk7Yi5kaXNwb3NlKCk7Zm9yKHQ9MDt0PFAubGVuZ3RoOysrdClQW3RdLmRpc3Bvc2UoKTtfLmRpc3Bvc2UoKSxyPW51bGwsQT1udWxsLFM9bnVsbCxFPVtdfX0sTi5fbW91c2VSb3RhdGluZz0hMSxOLl9wcmV2QnV0dG9ucz0wLE4uZW5hYmxlTW91c2VMaXN0ZW5lcnM9ZnVuY3Rpb24oKXtOLm1vdXNlTGlzdGVuZXI9dShlLChmdW5jdGlvbih0LGUscil7aWYoIU4uX3N0b3BwZWQpe3ZhciBuPVAubGVuZ3RoLGk9RS5sZW5ndGgsYT14Lm9iamVjdDt4LmRpc3RhbmNlPTEvMCx4Lm1vdXNlWzBdPWUseC5tb3VzZVsxXT1yLHgub2JqZWN0PW51bGwseC5zY3JlZW49bnVsbCx4LmRhdGFDb29yZGluYXRlPXguZGF0YVBvc2l0aW9uPW51bGw7dmFyIG89ITE7aWYodCYmTi5fcHJldkJ1dHRvbnMpTi5fbW91c2VSb3RhdGluZz0hMDtlbHNle04uX21vdXNlUm90YXRpbmcmJihPPSEwKSxOLl9tb3VzZVJvdGF0aW5nPSExO2Zvcih2YXIgcz0wO3M8bjsrK3Mpe3ZhciBsPVBbc10ucXVlcnkoZSxqWzFdLXItMSxOLnBpY2tSYWRpdXMpO2lmKGwpe2lmKGwuZGlzdGFuY2U+eC5kaXN0YW5jZSljb250aW51ZTtmb3IodmFyIGM9MDtjPGk7KytjKXt2YXIgdT1FW2NdO2lmKExbY109PT1zKXt2YXIgZj11LnBpY2sobCk7ZiYmKHguYnV0dG9ucz10LHguc2NyZWVuPWwuY29vcmQseC5kaXN0YW5jZT1sLmRpc3RhbmNlLHgub2JqZWN0PXUseC5pbmRleD1mLmRpc3RhbmNlLHguZGF0YVBvc2l0aW9uPWYucG9zaXRpb24seC5kYXRhQ29vcmRpbmF0ZT1mLmRhdGFDb29yZGluYXRlLHguZGF0YT1mLG89ITApfX19fX1hJiZhIT09eC5vYmplY3QmJihhLmhpZ2hsaWdodCYmYS5oaWdobGlnaHQobnVsbCksST0hMCkseC5vYmplY3QmJih4Lm9iamVjdC5oaWdobGlnaHQmJngub2JqZWN0LmhpZ2hsaWdodCh4LmRhdGEpLEk9ITApLChvPW98fHgub2JqZWN0IT09YSkmJk4ub25zZWxlY3QmJk4ub25zZWxlY3QoeCksMSZ0JiYhKDEmTi5fcHJldkJ1dHRvbnMpJiZOLm9uY2xpY2smJk4ub25jbGljayh4KSxOLl9wcmV2QnV0dG9ucz10fX0pKX0sZS5hZGRFdmVudExpc3RlbmVyKCJ3ZWJnbGNvbnRleHRsb3N0IixIKTt2YXIgcT1bWzEvMCwxLzAsMS8wXSxbLTEvMCwtMS8wLC0xLzBdXSxHPVtxWzBdLnNsaWNlKCkscVsxXS5zbGljZSgpXTtmdW5jdGlvbiBZKCl7aWYoIUgoKSl7VSgpO3ZhciB0PU4uY2FtZXJhLnRpY2soKTtSLnZpZXc9Ti5jYW1lcmEubWF0cml4LEk9SXx8dCxPPU98fHQsQS5waXhlbFJhdGlvPU4ucGl4ZWxSYXRpbyxTLnBpeGVsUmF0aW89Ti5waXhlbFJhdGlvO3ZhciBlPUUubGVuZ3RoLG49cVswXSxpPXFbMV07blswXT1uWzFdPW5bMl09MS8wLGlbMF09aVsxXT1pWzJdPS0xLzA7Zm9yKHZhciBvPTA7bzxlOysrbyl7KEM9RVtvXSkucGl4ZWxSYXRpbz1OLnBpeGVsUmF0aW8sQy5heGVzPU4uYXhlcyxJPUl8fCEhQy5kaXJ0eSxPPU98fCEhQy5kaXJ0eTt2YXIgcz1DLmJvdW5kcztpZihzKWZvcih2YXIgbD1zWzBdLHU9c1sxXSxwPTA7cDwzOysrcCluW3BdPU1hdGgubWluKG5bcF0sbFtwXSksaVtwXT1NYXRoLm1heChpW3BdLHVbcF0pfXZhciBkPU4uYm91bmRzO2lmKE4uYXV0b0JvdW5kcylmb3IocD0wO3A8MzsrK3Ape2lmKGlbcF08bltwXSluW3BdPS0xLGlbcF09MTtlbHNle25bcF09PT1pW3BdJiYobltwXS09MSxpW3BdKz0xKTt2YXIgbT0uMDUqKGlbcF0tbltwXSk7bltwXT1uW3BdLW0saVtwXT1pW3BdK219ZFswXVtwXT1uW3BdLGRbMV1bcF09aVtwXX12YXIgdj0hMTtmb3IocD0wO3A8MzsrK3Apdj12fHxHWzBdW3BdIT09ZFswXVtwXXx8R1sxXVtwXSE9PWRbMV1bcF0sR1swXVtwXT1kWzBdW3BdLEdbMV1bcF09ZFsxXVtwXTtpZihPPU98fHYsST1JfHx2KXtpZih2KXt2YXIgeT1bMCwwLDBdO2ZvcihvPTA7bzwzOysrbyl5W29dPWcoKGRbMV1bb10tZFswXVtvXSkvMTApO0EuYXV0b1RpY2tzP0EudXBkYXRlKHtib3VuZHM6ZCx0aWNrU3BhY2luZzp5fSk6QS51cGRhdGUoe2JvdW5kczpkfSl9dmFyIFQ9ci5kcmF3aW5nQnVmZmVyV2lkdGgsaz1yLmRyYXdpbmdCdWZmZXJIZWlnaHQ7RlswXT1ULEZbMV09ayxqWzBdPTB8TWF0aC5tYXgoVC9OLnBpeGVsUmF0aW8sMSksalsxXT0wfE1hdGgubWF4KGsvTi5waXhlbFJhdGlvLDEpLGZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5ib3VuZHMsbj10LmNhbWVyYVBhcmFtcyxpPW4ucHJvamVjdGlvbixhPW4ubW9kZWwsbz10LmdsLmRyYXdpbmdCdWZmZXJXaWR0aCxzPXQuZ2wuZHJhd2luZ0J1ZmZlckhlaWdodCxsPXQuek5lYXIsYz10LnpGYXIsdT10LmZvdnkscD1vL3M7ZT8oaChpLC1wLHAsLTEsMSxsLGMpLG4uX29ydGhvPSEwKTooZihpLHUscCxsLGMpLG4uX29ydGhvPSExKTtmb3IodmFyIGQ9MDtkPDE2OysrZClhW2RdPTA7YVsxNV09MTt2YXIgbT0wO2ZvcihkPTA7ZDwzOysrZCltPU1hdGgubWF4KG0sclsxXVtkXS1yWzBdW2RdKTtmb3IoZD0wO2Q8MzsrK2QpdC5hdXRvU2NhbGU/YVs1KmRdPXQuYXNwZWN0W2RdLyhyWzFdW2RdLXJbMF1bZF0pOmFbNSpkXT0xL20sdC5hdXRvQ2VudGVyJiYoYVsxMitkXT0uNSotYVs1KmRdKihyWzBdW2RdK3JbMV1bZF0pKX0oTix3KTtmb3Iobz0wO288ZTsrK28peyhDPUVbb10pLmF4ZXNCb3VuZHM9ZCxOLmNsaXBUb0JvdW5kcyYmKEMuY2xpcEJvdW5kcz1kKX14Lm9iamVjdCYmKE4uc25hcFRvRGF0YT9TLnBvc2l0aW9uPXguZGF0YUNvb3JkaW5hdGU6Uy5wb3NpdGlvbj14LmRhdGFQb3NpdGlvbixTLmJvdW5kcz1kKSxPJiYoTz0hMSxmdW5jdGlvbigpe2lmKCFIKCkpe3IuY29sb3JNYXNrKCEwLCEwLCEwLCEwKSxyLmRlcHRoTWFzayghMCksci5kaXNhYmxlKHIuQkxFTkQpLHIuZW5hYmxlKHIuREVQVEhfVEVTVCksci5kZXB0aEZ1bmMoci5MRVFVQUwpO2Zvcih2YXIgdD1FLmxlbmd0aCxlPVAubGVuZ3RoLG49MDtuPGU7KytuKXt2YXIgaT1QW25dO2kuc2hhcGU9aixpLmJlZ2luKCk7Zm9yKHZhciBhPTA7YTx0OysrYSlpZihMW2FdPT09bil7dmFyIG89RVthXTtvLmRyYXdQaWNrJiYoby5waXhlbFJhdGlvPTEsby5kcmF3UGljayhSKSl9aS5lbmQoKX19fSgpKSxOLmF4ZXNQaXhlbHM9YShOLmF4ZXMsUixULGspLE4ub25yZW5kZXImJk4ub25yZW5kZXIoKSxyLmJpbmRGcmFtZWJ1ZmZlcihyLkZSQU1FQlVGRkVSLG51bGwpLHIudmlld3BvcnQoMCwwLFQsayksTi5jbGVhclJHQkEoKSxyLmRlcHRoTWFzayghMCksci5jb2xvck1hc2soITAsITAsITAsITApLHIuZW5hYmxlKHIuREVQVEhfVEVTVCksci5kZXB0aEZ1bmMoci5MRVFVQUwpLHIuZGlzYWJsZShyLkJMRU5EKSxyLmRpc2FibGUoci5DVUxMX0ZBQ0UpO3ZhciBNPSExO0EuZW5hYmxlJiYoTT1NfHxBLmlzVHJhbnNwYXJlbnQoKSxBLmRyYXcoUikpLFMuYXhlcz1BLHgub2JqZWN0JiZTLmRyYXcoUiksci5kaXNhYmxlKHIuQ1VMTF9GQUNFKTtmb3Iobz0wO288ZTsrK28peyhDPUVbb10pLmF4ZXM9QSxDLnBpeGVsUmF0aW89Ti5waXhlbFJhdGlvLEMuaXNPcGFxdWUmJkMuaXNPcGFxdWUoKSYmQy5kcmF3KFIpLEMuaXNUcmFuc3BhcmVudCYmQy5pc1RyYW5zcGFyZW50KCkmJihNPSEwKX1pZihNKXtiLnNoYXBlPUYsYi5iaW5kKCksci5jbGVhcihyLkRFUFRIX0JVRkZFUl9CSVQpLHIuY29sb3JNYXNrKCExLCExLCExLCExKSxyLmRlcHRoTWFzayghMCksci5kZXB0aEZ1bmMoci5MRVNTKSxBLmVuYWJsZSYmQS5pc1RyYW5zcGFyZW50KCkmJkEuZHJhd1RyYW5zcGFyZW50KFIpO2ZvcihvPTA7bzxlOysrbyl7KEM9RVtvXSkuaXNPcGFxdWUmJkMuaXNPcGFxdWUoKSYmQy5kcmF3KFIpfXIuZW5hYmxlKHIuQkxFTkQpLHIuYmxlbmRFcXVhdGlvbihyLkZVTkNfQUREKSxyLmJsZW5kRnVuYyhyLk9ORSxyLk9ORV9NSU5VU19TUkNfQUxQSEEpLHIuY29sb3JNYXNrKCEwLCEwLCEwLCEwKSxyLmRlcHRoTWFzayghMSksci5jbGVhckNvbG9yKDAsMCwwLDApLHIuY2xlYXIoci5DT0xPUl9CVUZGRVJfQklUKSxBLmlzVHJhbnNwYXJlbnQoKSYmQS5kcmF3VHJhbnNwYXJlbnQoUik7Zm9yKG89MDtvPGU7KytvKXt2YXIgQzsoQz1FW29dKS5pc1RyYW5zcGFyZW50JiZDLmlzVHJhbnNwYXJlbnQoKSYmQy5kcmF3VHJhbnNwYXJlbnQoUil9ci5iaW5kRnJhbWVidWZmZXIoci5GUkFNRUJVRkZFUixudWxsKSxyLmJsZW5kRnVuYyhyLk9ORSxyLk9ORV9NSU5VU19TUkNfQUxQSEEpLHIuZGlzYWJsZShyLkRFUFRIX1RFU1QpLF8uYmluZCgpLGIuY29sb3JbMF0uYmluZCgwKSxfLnVuaWZvcm1zLmFjY3VtQnVmZmVyPTAsYyhyKSxyLmRpc2FibGUoci5CTEVORCl9ST0hMTtmb3Iobz0wO288ZTsrK28pRVtvXS5kaXJ0eT0hMX19fXJldHVybiBOLmVuYWJsZU1vdXNlTGlzdGVuZXJzKCksZnVuY3Rpb24gdCgpe2lmKE4uX3N0b3BwZWR8fE4uY29udGV4dExvc3QpcmV0dXJuO1koKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUodCl9KCksTi5yZWRyYXc9ZnVuY3Rpb24oKXtOLl9zdG9wcGVkfHwoST0hMCxZKCkpfSxOfSxjcmVhdGVDYW1lcmE6bn19LHsiLi9jYW1lcmEuanMiOjExOSwiLi9saWIvc2hhZGVyIjoxMjAsImEtYmlnLXRyaWFuZ2xlIjo4LCJnbC1heGVzM2QiOjcwLCJnbC1heGVzM2QvcHJvcGVydGllcyI6NzcsImdsLWZibyI6ODYsImdsLW1hdDQvb3J0aG8iOjEwMSwiZ2wtbWF0NC9wZXJzcGVjdGl2ZSI6MTAyLCJnbC1zZWxlY3Qtc3RhdGljIjoxMzEsImdsLXNwaWtlczNkIjoxNDEsImlzLW1vYmlsZSI6MjM4LCJtb3VzZS1jaGFuZ2UiOjI0N31dLDEyMjpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoImdsc2xpZnkiKTtyLnBvaW50VmVydGV4PW4oWyJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmF0dHJpYnV0ZSB2ZWMyIHBvc2l0aW9uO1xuXG51bmlmb3JtIG1hdDMgbWF0cml4O1xudW5pZm9ybSBmbG9hdCBwb2ludFNpemU7XG51bmlmb3JtIGZsb2F0IHBvaW50Q2xvdWQ7XG5cbmhpZ2hwIGZsb2F0IHJhbmQodmVjMiBjbykge1xuICBoaWdocCBmbG9hdCBhID0gMTIuOTg5ODtcbiAgaGlnaHAgZmxvYXQgYiA9IDc4LjIzMztcbiAgaGlnaHAgZmxvYXQgYyA9IDQzNzU4LjU0NTM7XG4gIGhpZ2hwIGZsb2F0IGQgPSBkb3QoY28ueHksIHZlYzIoYSwgYikpO1xuICBoaWdocCBmbG9hdCBlID0gbW9kKGQsIDMuMTQpO1xuICByZXR1cm4gZnJhY3Qoc2luKGUpICogYyk7XG59XG5cbnZvaWQgbWFpbigpIHtcbiAgdmVjMyBoZ1Bvc2l0aW9uID0gbWF0cml4ICogdmVjMyhwb3NpdGlvbiwgMSk7XG4gIGdsX1Bvc2l0aW9uICA9IHZlYzQoaGdQb3NpdGlvbi54eSwgMCwgaGdQb3NpdGlvbi56KTtcbiAgICAvLyBpZiB3ZSBkb24ndCBqaXR0ZXIgdGhlIHBvaW50IHNpemUgYSBiaXQsIG92ZXJhbGwgcG9pbnQgY2xvdWRcbiAgICAvLyBzYXR1cmF0aW9uICdqdW1wcycgb24gem9vbWluZywgd2hpY2ggaXMgZGlzdHVyYmluZyBhbmQgY29uZnVzaW5nXG4gIGdsX1BvaW50U2l6ZSA9IHBvaW50U2l6ZSAqICgoMTkuNSArIHJhbmQocG9zaXRpb24pKSAvIDIwLjApO1xuICBpZihwb2ludENsb3VkICE9IDAuMCkgeyAvLyBwb2ludENsb3VkIGlzIHRydXRoeVxuICAgIC8vIGdldCB0aGUgc2FtZSBzcXVhcmUgc3VyZmFjZSBhcyBjaXJjbGUgd291bGQgYmVcbiAgICBnbF9Qb2ludFNpemUgKj0gMC44ODY7XG4gIH1cbn0iXSksci5wb2ludEZyYWdtZW50PW4oWyJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbnVuaWZvcm0gdmVjNCBjb2xvciwgYm9yZGVyQ29sb3I7XG51bmlmb3JtIGZsb2F0IGNlbnRlckZyYWN0aW9uO1xudW5pZm9ybSBmbG9hdCBwb2ludENsb3VkO1xuXG52b2lkIG1haW4oKSB7XG4gIGZsb2F0IHJhZGl1cztcbiAgdmVjNCBiYXNlQ29sb3I7XG4gIGlmKHBvaW50Q2xvdWQgIT0gMC4wKSB7IC8vIHBvaW50Q2xvdWQgaXMgdHJ1dGh5XG4gICAgaWYoY2VudGVyRnJhY3Rpb24gPT0gMS4wKSB7XG4gICAgICBnbF9GcmFnQ29sb3IgPSBjb2xvcjtcbiAgICB9IGVsc2Uge1xuICAgICAgZ2xfRnJhZ0NvbG9yID0gbWl4KGJvcmRlckNvbG9yLCBjb2xvciwgY2VudGVyRnJhY3Rpb24pO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICByYWRpdXMgPSBsZW5ndGgoMi4wICogZ2xfUG9pbnRDb29yZC54eSAtIDEuMCk7XG4gICAgaWYocmFkaXVzID4gMS4wKSB7XG4gICAgICBkaXNjYXJkO1xuICAgIH1cbiAgICBiYXNlQ29sb3IgPSBtaXgoYm9yZGVyQ29sb3IsIGNvbG9yLCBzdGVwKHJhZGl1cywgY2VudGVyRnJhY3Rpb24pKTtcbiAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KGJhc2VDb2xvci5yZ2IgKiBiYXNlQ29sb3IuYSwgYmFzZUNvbG9yLmEpO1xuICB9XG59XG4iXSksci5waWNrVmVydGV4PW4oWyJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmF0dHJpYnV0ZSB2ZWMyIHBvc2l0aW9uO1xuYXR0cmlidXRlIHZlYzQgcGlja0lkO1xuXG51bmlmb3JtIG1hdDMgbWF0cml4O1xudW5pZm9ybSBmbG9hdCBwb2ludFNpemU7XG51bmlmb3JtIHZlYzQgcGlja09mZnNldDtcblxudmFyeWluZyB2ZWM0IGZyYWdJZDtcblxudm9pZCBtYWluKCkge1xuICB2ZWMzIGhnUG9zaXRpb24gPSBtYXRyaXggKiB2ZWMzKHBvc2l0aW9uLCAxKTtcbiAgZ2xfUG9zaXRpb24gID0gdmVjNChoZ1Bvc2l0aW9uLnh5LCAwLCBoZ1Bvc2l0aW9uLnopO1xuICBnbF9Qb2ludFNpemUgPSBwb2ludFNpemU7XG5cbiAgdmVjNCBpZCA9IHBpY2tJZCArIHBpY2tPZmZzZXQ7XG4gIGlkLnkgKz0gZmxvb3IoaWQueCAvIDI1Ni4wKTtcbiAgaWQueCAtPSBmbG9vcihpZC54IC8gMjU2LjApICogMjU2LjA7XG5cbiAgaWQueiArPSBmbG9vcihpZC55IC8gMjU2LjApO1xuICBpZC55IC09IGZsb29yKGlkLnkgLyAyNTYuMCkgKiAyNTYuMDtcblxuICBpZC53ICs9IGZsb29yKGlkLnogLyAyNTYuMCk7XG4gIGlkLnogLT0gZmxvb3IoaWQueiAvIDI1Ni4wKSAqIDI1Ni4wO1xuXG4gIGZyYWdJZCA9IGlkO1xufVxuIl0pLHIucGlja0ZyYWdtZW50PW4oWyJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbnZhcnlpbmcgdmVjNCBmcmFnSWQ7XG5cbnZvaWQgbWFpbigpIHtcbiAgZmxvYXQgcmFkaXVzID0gbGVuZ3RoKDIuMCAqIGdsX1BvaW50Q29vcmQueHkgLSAxLjApO1xuICBpZihyYWRpdXMgPiAxLjApIHtcbiAgICBkaXNjYXJkO1xuICB9XG4gIGdsX0ZyYWdDb2xvciA9IGZyYWdJZCAvIDI1NS4wO1xufVxuIl0pfSx7Z2xzbGlmeToyMzF9XSwxMjM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZ2wtc2hhZGVyIiksaT10KCJnbC1idWZmZXIiKSxhPXQoInR5cGVkYXJyYXktcG9vbCIpLG89dCgiLi9saWIvc2hhZGVyIik7ZnVuY3Rpb24gcyh0LGUscixuLGkpe3RoaXMucGxvdD10LHRoaXMub2Zmc2V0QnVmZmVyPWUsdGhpcy5waWNrQnVmZmVyPXIsdGhpcy5zaGFkZXI9bix0aGlzLnBpY2tTaGFkZXI9aSx0aGlzLnNpemVNaW49LjUsdGhpcy5zaXplTWluQ2FwPTIsdGhpcy5zaXplTWF4PTIwLHRoaXMuYXJlYVJhdGlvPTEsdGhpcy5wb2ludENvdW50PTAsdGhpcy5jb2xvcj1bMSwwLDAsMV0sdGhpcy5ib3JkZXJDb2xvcj1bMCwwLDAsMV0sdGhpcy5ibGVuZD0hMSx0aGlzLnBpY2tPZmZzZXQ9MCx0aGlzLnBvaW50cz1udWxsfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPXQuZ2wsYT1pKHIpLGw9aShyKSxjPW4ocixvLnBvaW50VmVydGV4LG8ucG9pbnRGcmFnbWVudCksdT1uKHIsby5waWNrVmVydGV4LG8ucGlja0ZyYWdtZW50KSxmPW5ldyBzKHQsYSxsLGMsdSk7cmV0dXJuIGYudXBkYXRlKGUpLHQuYWRkT2JqZWN0KGYpLGZ9O3ZhciBsLGMsdT1zLnByb3RvdHlwZTt1LmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLnNoYWRlci5kaXNwb3NlKCksdGhpcy5waWNrU2hhZGVyLmRpc3Bvc2UoKSx0aGlzLm9mZnNldEJ1ZmZlci5kaXNwb3NlKCksdGhpcy5waWNrQnVmZmVyLmRpc3Bvc2UoKSx0aGlzLnBsb3QucmVtb3ZlT2JqZWN0KHRoaXMpfSx1LnVwZGF0ZT1mdW5jdGlvbih0KXt2YXIgZTtmdW5jdGlvbiByKGUscil7cmV0dXJuIGUgaW4gdD90W2VdOnJ9dD10fHx7fSx0aGlzLnNpemVNaW49cigic2l6ZU1pbiIsLjUpLHRoaXMuc2l6ZU1heD1yKCJzaXplTWF4IiwyMCksdGhpcy5jb2xvcj1yKCJjb2xvciIsWzEsMCwwLDFdKS5zbGljZSgpLHRoaXMuYXJlYVJhdGlvPXIoImFyZWFSYXRpbyIsMSksdGhpcy5ib3JkZXJDb2xvcj1yKCJib3JkZXJDb2xvciIsWzAsMCwwLDFdKS5zbGljZSgpLHRoaXMuYmxlbmQ9cigiYmxlbmQiLCExKTt2YXIgbj10LnBvc2l0aW9ucy5sZW5ndGg+Pj4xLGk9dC5wb3NpdGlvbnMgaW5zdGFuY2VvZiBGbG9hdDMyQXJyYXksbz10LmlkVG9JbmRleCBpbnN0YW5jZW9mIEludDMyQXJyYXkmJnQuaWRUb0luZGV4Lmxlbmd0aD49bixzPXQucG9zaXRpb25zLGw9aT9zOmEubWFsbG9jRmxvYXQzMihzLmxlbmd0aCksYz1vP3QuaWRUb0luZGV4OmEubWFsbG9jSW50MzIobik7aWYoaXx8bC5zZXQocyksIW8pZm9yKGwuc2V0KHMpLGU9MDtlPG47ZSsrKWNbZV09ZTt0aGlzLnBvaW50cz1zLHRoaXMub2Zmc2V0QnVmZmVyLnVwZGF0ZShsKSx0aGlzLnBpY2tCdWZmZXIudXBkYXRlKGMpLGl8fGEuZnJlZShsKSxvfHxhLmZyZWUoYyksdGhpcy5wb2ludENvdW50PW4sdGhpcy5waWNrT2Zmc2V0PTB9LHUudW5pZmllZERyYXc9KGw9WzEsMCwwLDAsMSwwLDAsMCwxXSxjPVswLDAsMCwwXSxmdW5jdGlvbih0KXt2YXIgZT12b2lkIDAhPT10LHI9ZT90aGlzLnBpY2tTaGFkZXI6dGhpcy5zaGFkZXIsbj10aGlzLnBsb3QuZ2wsaT10aGlzLnBsb3QuZGF0YUJveDtpZigwPT09dGhpcy5wb2ludENvdW50KXJldHVybiB0O3ZhciBhPWlbMl0taVswXSxvPWlbM10taVsxXSxzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbj0wLGk9dC5sZW5ndGg+Pj4xO2ZvcihyPTA7cjxpO3IrKyl7dmFyIGE9dFsyKnJdLG89dFsyKnIrMV07YT49ZVswXSYmYTw9ZVsyXSYmbz49ZVsxXSYmbzw9ZVszXSYmbisrfXJldHVybiBufSh0aGlzLnBvaW50cyxpKSx1PXRoaXMucGxvdC5waWNrUGl4ZWxSYXRpbypNYXRoLm1heChNYXRoLm1pbih0aGlzLnNpemVNaW5DYXAsdGhpcy5zaXplTWluKSxNYXRoLm1pbih0aGlzLnNpemVNYXgsdGhpcy5zaXplTWF4L01hdGgucG93KHMsLjMzMzMzKSkpO2xbMF09Mi9hLGxbNF09Mi9vLGxbNl09LTIqaVswXS9hLTEsbFs3XT0tMippWzFdL28tMSx0aGlzLm9mZnNldEJ1ZmZlci5iaW5kKCksci5iaW5kKCksci5hdHRyaWJ1dGVzLnBvc2l0aW9uLnBvaW50ZXIoKSxyLnVuaWZvcm1zLm1hdHJpeD1sLHIudW5pZm9ybXMuY29sb3I9dGhpcy5jb2xvcixyLnVuaWZvcm1zLmJvcmRlckNvbG9yPXRoaXMuYm9yZGVyQ29sb3Isci51bmlmb3Jtcy5wb2ludENsb3VkPXU8NSxyLnVuaWZvcm1zLnBvaW50U2l6ZT11LHIudW5pZm9ybXMuY2VudGVyRnJhY3Rpb249TWF0aC5taW4oMSxNYXRoLm1heCgwLE1hdGguc3FydCgxLXRoaXMuYXJlYVJhdGlvKSkpLGUmJihjWzBdPTI1NSZ0LGNbMV09dD4+OCYyNTUsY1syXT10Pj4xNiYyNTUsY1szXT10Pj4yNCYyNTUsdGhpcy5waWNrQnVmZmVyLmJpbmQoKSxyLmF0dHJpYnV0ZXMucGlja0lkLnBvaW50ZXIobi5VTlNJR05FRF9CWVRFKSxyLnVuaWZvcm1zLnBpY2tPZmZzZXQ9Yyx0aGlzLnBpY2tPZmZzZXQ9dCk7dmFyIGY9bi5nZXRQYXJhbWV0ZXIobi5CTEVORCksaD1uLmdldFBhcmFtZXRlcihuLkRJVEhFUik7cmV0dXJuIGYmJiF0aGlzLmJsZW5kJiZuLmRpc2FibGUobi5CTEVORCksaCYmbi5kaXNhYmxlKG4uRElUSEVSKSxuLmRyYXdBcnJheXMobi5QT0lOVFMsMCx0aGlzLnBvaW50Q291bnQpLGYmJiF0aGlzLmJsZW5kJiZuLmVuYWJsZShuLkJMRU5EKSxoJiZuLmVuYWJsZShuLkRJVEhFUiksdCt0aGlzLnBvaW50Q291bnR9KSx1LmRyYXc9dS51bmlmaWVkRHJhdyx1LmRyYXdQaWNrPXUudW5pZmllZERyYXcsdS5waWNrPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLnBpY2tPZmZzZXQsaT10aGlzLnBvaW50Q291bnQ7aWYocjxufHxyPj1uK2kpcmV0dXJuIG51bGw7dmFyIGE9ci1uLG89dGhpcy5wb2ludHM7cmV0dXJue29iamVjdDp0aGlzLHBvaW50SWQ6YSxkYXRhQ29vcmQ6W29bMiphXSxvWzIqYSsxXV19fX0seyIuL2xpYi9zaGFkZXIiOjEyMiwiZ2wtYnVmZmVyIjo3OCwiZ2wtc2hhZGVyIjoxMzIsInR5cGVkYXJyYXktcG9vbCI6MzA4fV0sMTI0OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpLGEsbyxzLGwsYz1lWzBdLHU9ZVsxXSxmPWVbMl0saD1lWzNdLHA9clswXSxkPXJbMV0sbT1yWzJdLGc9clszXTsoYT1jKnArdSpkK2YqbStoKmcpPDAmJihhPS1hLHA9LXAsZD0tZCxtPS1tLGc9LWcpOzEtYT4xZS02PyhpPU1hdGguYWNvcyhhKSxvPU1hdGguc2luKGkpLHM9TWF0aC5zaW4oKDEtbikqaSkvbyxsPU1hdGguc2luKG4qaSkvbyk6KHM9MS1uLGw9bik7cmV0dXJuIHRbMF09cypjK2wqcCx0WzFdPXMqdStsKmQsdFsyXT1zKmYrbCptLHRbM109cypoK2wqZyx0fX0se31dLDEyNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHR8fDA9PT10P3QudG9TdHJpbmcoKToiIn19LHt9XSwxMjY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgidmVjdG9yaXplLXRleHQiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBhPWlbZV07YXx8KGE9aVtlXT17fSk7aWYodCBpbiBhKXJldHVybiBhW3RdO3ZhciBvPXt0ZXh0QWxpZ246ImNlbnRlciIsdGV4dEJhc2VsaW5lOiJtaWRkbGUiLGxpbmVIZWlnaHQ6MSxmb250OmUsbGluZVNwYWNpbmc6MS4yNSxzdHlsZXRhZ3M6e2JyZWFrbGluZXM6ITAsYm9sZHM6ITAsaXRhbGljczohMCxzdWJzY3JpcHRzOiEwLHN1cGVyc2NyaXB0czohMH0sdHJpYW5nbGVzOiEwfSxzPW4odCxvKTtvLnRyaWFuZ2xlcz0hMTt2YXIgbCxjLHU9bih0LG8pO2lmKHImJjEhPT1yKXtmb3IobD0wO2w8cy5wb3NpdGlvbnMubGVuZ3RoOysrbClmb3IoYz0wO2M8cy5wb3NpdGlvbnNbbF0ubGVuZ3RoOysrYylzLnBvc2l0aW9uc1tsXVtjXS89cjtmb3IobD0wO2w8dS5wb3NpdGlvbnMubGVuZ3RoOysrbClmb3IoYz0wO2M8dS5wb3NpdGlvbnNbbF0ubGVuZ3RoOysrYyl1LnBvc2l0aW9uc1tsXVtjXS89cn12YXIgZj1bWzEvMCwxLzBdLFstMS8wLC0xLzBdXSxoPXUucG9zaXRpb25zLmxlbmd0aDtmb3IobD0wO2w8aDsrK2wpe3ZhciBwPXUucG9zaXRpb25zW2xdO2ZvcihjPTA7YzwyOysrYylmWzBdW2NdPU1hdGgubWluKGZbMF1bY10scFtjXSksZlsxXVtjXT1NYXRoLm1heChmWzFdW2NdLHBbY10pfXJldHVybiBhW3RdPVtzLHUsZl19O3ZhciBpPXt9fSx7InZlY3Rvcml6ZS10ZXh0IjozMTF9XSwxMjc6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCJnbC1zaGFkZXIiKSxpPXQoImdsc2xpZnkiKSxhPWkoWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5ib29sIG91dE9mUmFuZ2UoZmxvYXQgYSwgZmxvYXQgYiwgZmxvYXQgcCkge1xuICByZXR1cm4gKChwID4gbWF4KGEsIGIpKSB8fCBcbiAgICAgICAgICAocCA8IG1pbihhLCBiKSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMiBhLCB2ZWMyIGIsIHZlYzIgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzMgYSwgdmVjMyBiLCB2ZWMzIHApIHtcbiAgcmV0dXJuIChvdXRPZlJhbmdlKGEueCwgYi54LCBwLngpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnksIGIueSwgcC55KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS56LCBiLnosIHAueikpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjNCBhLCB2ZWM0IGIsIHZlYzQgcCkge1xuICByZXR1cm4gb3V0T2ZSYW5nZShhLnh5eiwgYi54eXosIHAueHl6KTtcbn1cblxuYXR0cmlidXRlIHZlYzMgcG9zaXRpb247XG5hdHRyaWJ1dGUgdmVjNCBjb2xvcjtcbmF0dHJpYnV0ZSB2ZWMyIGdseXBoO1xuYXR0cmlidXRlIHZlYzQgaWQ7XG5cbnVuaWZvcm0gdmVjNCBoaWdobGlnaHRJZDtcbnVuaWZvcm0gZmxvYXQgaGlnaGxpZ2h0U2NhbGU7XG51bmlmb3JtIG1hdDQgbW9kZWwsIHZpZXcsIHByb2plY3Rpb247XG51bmlmb3JtIHZlYzMgY2xpcEJvdW5kc1syXTtcblxudmFyeWluZyB2ZWM0IGludGVycENvbG9yO1xudmFyeWluZyB2ZWM0IHBpY2tJZDtcbnZhcnlpbmcgdmVjMyBkYXRhQ29vcmRpbmF0ZTtcblxudm9pZCBtYWluKCkge1xuICBpZiAob3V0T2ZSYW5nZShjbGlwQm91bmRzWzBdLCBjbGlwQm91bmRzWzFdLCBwb3NpdGlvbikpIHtcblxuICAgIGdsX1Bvc2l0aW9uID0gdmVjNCgwLDAsMCwwKTtcbiAgfSBlbHNlIHtcbiAgICBmbG9hdCBzY2FsZSA9IDEuMDtcbiAgICBpZihkaXN0YW5jZShoaWdobGlnaHRJZCwgaWQpIDwgMC4wMDAxKSB7XG4gICAgICBzY2FsZSA9IGhpZ2hsaWdodFNjYWxlO1xuICAgIH1cblxuICAgIHZlYzQgd29ybGRQb3NpdGlvbiA9IG1vZGVsICogdmVjNChwb3NpdGlvbiwgMSk7XG4gICAgdmVjNCB2aWV3UG9zaXRpb24gPSB2aWV3ICogd29ybGRQb3NpdGlvbjtcbiAgICB2aWV3UG9zaXRpb24gPSB2aWV3UG9zaXRpb24gLyB2aWV3UG9zaXRpb24udztcbiAgICB2ZWM0IGNsaXBQb3NpdGlvbiA9IHByb2plY3Rpb24gKiAodmlld1Bvc2l0aW9uICsgc2NhbGUgKiB2ZWM0KGdseXBoLngsIC1nbHlwaC55LCAwLCAwKSk7XG5cbiAgICBnbF9Qb3NpdGlvbiA9IGNsaXBQb3NpdGlvbjtcbiAgICBpbnRlcnBDb2xvciA9IGNvbG9yO1xuICAgIHBpY2tJZCA9IGlkO1xuICAgIGRhdGFDb29yZGluYXRlID0gcG9zaXRpb247XG4gIH1cbn0iXSksbz1pKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYm9vbCBvdXRPZlJhbmdlKGZsb2F0IGEsIGZsb2F0IGIsIGZsb2F0IHApIHtcbiAgcmV0dXJuICgocCA+IG1heChhLCBiKSkgfHwgXG4gICAgICAgICAgKHAgPCBtaW4oYSwgYikpKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzIgYSwgdmVjMiBiLCB2ZWMyIHApIHtcbiAgcmV0dXJuIChvdXRPZlJhbmdlKGEueCwgYi54LCBwLngpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnksIGIueSwgcC55KSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWMzIGEsIHZlYzMgYiwgdmVjMyBwKSB7XG4gIHJldHVybiAob3V0T2ZSYW5nZShhLngsIGIueCwgcC54KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS55LCBiLnksIHAueSkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueiwgYi56LCBwLnopKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzQgYSwgdmVjNCBiLCB2ZWM0IHApIHtcbiAgcmV0dXJuIG91dE9mUmFuZ2UoYS54eXosIGIueHl6LCBwLnh5eik7XG59XG5cbmF0dHJpYnV0ZSB2ZWMzIHBvc2l0aW9uO1xuYXR0cmlidXRlIHZlYzQgY29sb3I7XG5hdHRyaWJ1dGUgdmVjMiBnbHlwaDtcbmF0dHJpYnV0ZSB2ZWM0IGlkO1xuXG51bmlmb3JtIG1hdDQgbW9kZWwsIHZpZXcsIHByb2plY3Rpb247XG51bmlmb3JtIHZlYzIgc2NyZWVuU2l6ZTtcbnVuaWZvcm0gdmVjMyBjbGlwQm91bmRzWzJdO1xudW5pZm9ybSBmbG9hdCBoaWdobGlnaHRTY2FsZSwgcGl4ZWxSYXRpbztcbnVuaWZvcm0gdmVjNCBoaWdobGlnaHRJZDtcblxudmFyeWluZyB2ZWM0IGludGVycENvbG9yO1xudmFyeWluZyB2ZWM0IHBpY2tJZDtcbnZhcnlpbmcgdmVjMyBkYXRhQ29vcmRpbmF0ZTtcblxudm9pZCBtYWluKCkge1xuICBpZiAob3V0T2ZSYW5nZShjbGlwQm91bmRzWzBdLCBjbGlwQm91bmRzWzFdLCBwb3NpdGlvbikpIHtcblxuICAgIGdsX1Bvc2l0aW9uID0gdmVjNCgwLDAsMCwwKTtcbiAgfSBlbHNlIHtcbiAgICBmbG9hdCBzY2FsZSA9IHBpeGVsUmF0aW87XG4gICAgaWYoZGlzdGFuY2UoaGlnaGxpZ2h0SWQuYmdyLCBpZC5iZ3IpIDwgMC4wMDEpIHtcbiAgICAgIHNjYWxlICo9IGhpZ2hsaWdodFNjYWxlO1xuICAgIH1cblxuICAgIHZlYzQgd29ybGRQb3NpdGlvbiA9IG1vZGVsICogdmVjNChwb3NpdGlvbiwgMS4wKTtcbiAgICB2ZWM0IHZpZXdQb3NpdGlvbiA9IHZpZXcgKiB3b3JsZFBvc2l0aW9uO1xuICAgIHZlYzQgY2xpcFBvc2l0aW9uID0gcHJvamVjdGlvbiAqIHZpZXdQb3NpdGlvbjtcbiAgICBjbGlwUG9zaXRpb24gLz0gY2xpcFBvc2l0aW9uLnc7XG5cbiAgICBnbF9Qb3NpdGlvbiA9IGNsaXBQb3NpdGlvbiArIHZlYzQoc2NyZWVuU2l6ZSAqIHNjYWxlICogdmVjMihnbHlwaC54LCAtZ2x5cGgueSksIDAuMCwgMC4wKTtcbiAgICBpbnRlcnBDb2xvciA9IGNvbG9yO1xuICAgIHBpY2tJZCA9IGlkO1xuICAgIGRhdGFDb29yZGluYXRlID0gcG9zaXRpb247XG4gIH1cbn0iXSkscz1pKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYm9vbCBvdXRPZlJhbmdlKGZsb2F0IGEsIGZsb2F0IGIsIGZsb2F0IHApIHtcbiAgcmV0dXJuICgocCA+IG1heChhLCBiKSkgfHwgXG4gICAgICAgICAgKHAgPCBtaW4oYSwgYikpKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzIgYSwgdmVjMiBiLCB2ZWMyIHApIHtcbiAgcmV0dXJuIChvdXRPZlJhbmdlKGEueCwgYi54LCBwLngpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnksIGIueSwgcC55KSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWMzIGEsIHZlYzMgYiwgdmVjMyBwKSB7XG4gIHJldHVybiAob3V0T2ZSYW5nZShhLngsIGIueCwgcC54KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS55LCBiLnksIHAueSkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueiwgYi56LCBwLnopKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzQgYSwgdmVjNCBiLCB2ZWM0IHApIHtcbiAgcmV0dXJuIG91dE9mUmFuZ2UoYS54eXosIGIueHl6LCBwLnh5eik7XG59XG5cbmF0dHJpYnV0ZSB2ZWMzIHBvc2l0aW9uO1xuYXR0cmlidXRlIHZlYzQgY29sb3I7XG5hdHRyaWJ1dGUgdmVjMiBnbHlwaDtcbmF0dHJpYnV0ZSB2ZWM0IGlkO1xuXG51bmlmb3JtIGZsb2F0IGhpZ2hsaWdodFNjYWxlO1xudW5pZm9ybSB2ZWM0IGhpZ2hsaWdodElkO1xudW5pZm9ybSB2ZWMzIGF4ZXNbMl07XG51bmlmb3JtIG1hdDQgbW9kZWwsIHZpZXcsIHByb2plY3Rpb247XG51bmlmb3JtIHZlYzIgc2NyZWVuU2l6ZTtcbnVuaWZvcm0gdmVjMyBjbGlwQm91bmRzWzJdO1xudW5pZm9ybSBmbG9hdCBzY2FsZSwgcGl4ZWxSYXRpbztcblxudmFyeWluZyB2ZWM0IGludGVycENvbG9yO1xudmFyeWluZyB2ZWM0IHBpY2tJZDtcbnZhcnlpbmcgdmVjMyBkYXRhQ29vcmRpbmF0ZTtcblxudm9pZCBtYWluKCkge1xuICBpZiAob3V0T2ZSYW5nZShjbGlwQm91bmRzWzBdLCBjbGlwQm91bmRzWzFdLCBwb3NpdGlvbikpIHtcblxuICAgIGdsX1Bvc2l0aW9uID0gdmVjNCgwLDAsMCwwKTtcbiAgfSBlbHNlIHtcbiAgICBmbG9hdCBsc2NhbGUgPSBwaXhlbFJhdGlvICogc2NhbGU7XG4gICAgaWYoZGlzdGFuY2UoaGlnaGxpZ2h0SWQsIGlkKSA8IDAuMDAwMSkge1xuICAgICAgbHNjYWxlICo9IGhpZ2hsaWdodFNjYWxlO1xuICAgIH1cblxuICAgIHZlYzQgY2xpcENlbnRlciAgID0gcHJvamVjdGlvbiAqIHZpZXcgKiBtb2RlbCAqIHZlYzQocG9zaXRpb24sIDEpO1xuICAgIHZlYzMgZGF0YVBvc2l0aW9uID0gcG9zaXRpb24gKyAwLjUqbHNjYWxlKihheGVzWzBdICogZ2x5cGgueCArIGF4ZXNbMV0gKiBnbHlwaC55KSAqIGNsaXBDZW50ZXIudyAqIHNjcmVlblNpemUueTtcbiAgICB2ZWM0IGNsaXBQb3NpdGlvbiA9IHByb2plY3Rpb24gKiB2aWV3ICogbW9kZWwgKiB2ZWM0KGRhdGFQb3NpdGlvbiwgMSk7XG5cbiAgICBnbF9Qb3NpdGlvbiA9IGNsaXBQb3NpdGlvbjtcbiAgICBpbnRlcnBDb2xvciA9IGNvbG9yO1xuICAgIHBpY2tJZCA9IGlkO1xuICAgIGRhdGFDb29yZGluYXRlID0gZGF0YVBvc2l0aW9uO1xuICB9XG59XG4iXSksbD1pKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYm9vbCBvdXRPZlJhbmdlKGZsb2F0IGEsIGZsb2F0IGIsIGZsb2F0IHApIHtcbiAgcmV0dXJuICgocCA+IG1heChhLCBiKSkgfHwgXG4gICAgICAgICAgKHAgPCBtaW4oYSwgYikpKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzIgYSwgdmVjMiBiLCB2ZWMyIHApIHtcbiAgcmV0dXJuIChvdXRPZlJhbmdlKGEueCwgYi54LCBwLngpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnksIGIueSwgcC55KSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWMzIGEsIHZlYzMgYiwgdmVjMyBwKSB7XG4gIHJldHVybiAob3V0T2ZSYW5nZShhLngsIGIueCwgcC54KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS55LCBiLnksIHAueSkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueiwgYi56LCBwLnopKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzQgYSwgdmVjNCBiLCB2ZWM0IHApIHtcbiAgcmV0dXJuIG91dE9mUmFuZ2UoYS54eXosIGIueHl6LCBwLnh5eik7XG59XG5cbnVuaWZvcm0gdmVjMyBmcmFnQ2xpcEJvdW5kc1syXTtcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcblxudmFyeWluZyB2ZWM0IGludGVycENvbG9yO1xudmFyeWluZyB2ZWMzIGRhdGFDb29yZGluYXRlO1xuXG52b2lkIG1haW4oKSB7XG4gIGlmIChcbiAgICBvdXRPZlJhbmdlKGZyYWdDbGlwQm91bmRzWzBdLCBmcmFnQ2xpcEJvdW5kc1sxXSwgZGF0YUNvb3JkaW5hdGUpIHx8XG4gICAgaW50ZXJwQ29sb3IuYSAqIG9wYWNpdHkgPT0gMC5cbiAgKSBkaXNjYXJkO1xuICBnbF9GcmFnQ29sb3IgPSBpbnRlcnBDb2xvciAqIG9wYWNpdHk7XG59XG4iXSksYz1pKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYm9vbCBvdXRPZlJhbmdlKGZsb2F0IGEsIGZsb2F0IGIsIGZsb2F0IHApIHtcbiAgcmV0dXJuICgocCA+IG1heChhLCBiKSkgfHwgXG4gICAgICAgICAgKHAgPCBtaW4oYSwgYikpKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzIgYSwgdmVjMiBiLCB2ZWMyIHApIHtcbiAgcmV0dXJuIChvdXRPZlJhbmdlKGEueCwgYi54LCBwLngpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnksIGIueSwgcC55KSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWMzIGEsIHZlYzMgYiwgdmVjMyBwKSB7XG4gIHJldHVybiAob3V0T2ZSYW5nZShhLngsIGIueCwgcC54KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS55LCBiLnksIHAueSkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueiwgYi56LCBwLnopKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzQgYSwgdmVjNCBiLCB2ZWM0IHApIHtcbiAgcmV0dXJuIG91dE9mUmFuZ2UoYS54eXosIGIueHl6LCBwLnh5eik7XG59XG5cbnVuaWZvcm0gdmVjMyBmcmFnQ2xpcEJvdW5kc1syXTtcbnVuaWZvcm0gZmxvYXQgcGlja0dyb3VwO1xuXG52YXJ5aW5nIHZlYzQgcGlja0lkO1xudmFyeWluZyB2ZWMzIGRhdGFDb29yZGluYXRlO1xuXG52b2lkIG1haW4oKSB7XG4gIGlmIChvdXRPZlJhbmdlKGZyYWdDbGlwQm91bmRzWzBdLCBmcmFnQ2xpcEJvdW5kc1sxXSwgZGF0YUNvb3JkaW5hdGUpKSBkaXNjYXJkO1xuXG4gIGdsX0ZyYWdDb2xvciA9IHZlYzQocGlja0dyb3VwLCBwaWNrSWQuYmdyKTtcbn0iXSksdT1be25hbWU6InBvc2l0aW9uIix0eXBlOiJ2ZWMzIn0se25hbWU6ImNvbG9yIix0eXBlOiJ2ZWM0In0se25hbWU6ImdseXBoIix0eXBlOiJ2ZWMyIn0se25hbWU6ImlkIix0eXBlOiJ2ZWM0In1dLGY9e3ZlcnRleDphLGZyYWdtZW50OmwsYXR0cmlidXRlczp1fSxoPXt2ZXJ0ZXg6byxmcmFnbWVudDpsLGF0dHJpYnV0ZXM6dX0scD17dmVydGV4OnMsZnJhZ21lbnQ6bCxhdHRyaWJ1dGVzOnV9LGQ9e3ZlcnRleDphLGZyYWdtZW50OmMsYXR0cmlidXRlczp1fSxtPXt2ZXJ0ZXg6byxmcmFnbWVudDpjLGF0dHJpYnV0ZXM6dX0sZz17dmVydGV4OnMsZnJhZ21lbnQ6YyxhdHRyaWJ1dGVzOnV9O2Z1bmN0aW9uIHYodCxlKXt2YXIgcj1uKHQsZSksaT1yLmF0dHJpYnV0ZXM7cmV0dXJuIGkucG9zaXRpb24ubG9jYXRpb249MCxpLmNvbG9yLmxvY2F0aW9uPTEsaS5nbHlwaC5sb2NhdGlvbj0yLGkuaWQubG9jYXRpb249MyxyfXIuY3JlYXRlUGVyc3BlY3RpdmU9ZnVuY3Rpb24odCl7cmV0dXJuIHYodCxmKX0sci5jcmVhdGVPcnRobz1mdW5jdGlvbih0KXtyZXR1cm4gdih0LGgpfSxyLmNyZWF0ZVByb2plY3Q9ZnVuY3Rpb24odCl7cmV0dXJuIHYodCxwKX0sci5jcmVhdGVQaWNrUGVyc3BlY3RpdmU9ZnVuY3Rpb24odCl7cmV0dXJuIHYodCxkKX0sci5jcmVhdGVQaWNrT3J0aG89ZnVuY3Rpb24odCl7cmV0dXJuIHYodCxtKX0sci5jcmVhdGVQaWNrUHJvamVjdD1mdW5jdGlvbih0KXtyZXR1cm4gdih0LGcpfX0seyJnbC1zaGFkZXIiOjEzMixnbHNsaWZ5OjIzMX1dLDEyODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJpcy1zdHJpbmctYmxhbmsiKSxpPXQoImdsLWJ1ZmZlciIpLGE9dCgiZ2wtdmFvIiksbz10KCJ0eXBlZGFycmF5LXBvb2wiKSxzPXQoImdsLW1hdDQvbXVsdGlwbHkiKSxsPXQoIi4vbGliL3NoYWRlcnMiKSxjPXQoIi4vbGliL2dseXBocyIpLHU9dCgiLi9saWIvZ2V0LXNpbXBsZS1zdHJpbmciKSxmPVsxLDAsMCwwLDAsMSwwLDAsMCwwLDEsMCwwLDAsMCwxXTtmdW5jdGlvbiBoKHQsZSl7dmFyIHI9dFswXSxuPXRbMV0saT10WzJdLGE9dFszXTtyZXR1cm4gdFswXT1lWzBdKnIrZVs0XSpuK2VbOF0qaStlWzEyXSphLHRbMV09ZVsxXSpyK2VbNV0qbitlWzldKmkrZVsxM10qYSx0WzJdPWVbMl0qcitlWzZdKm4rZVsxMF0qaStlWzE0XSphLHRbM109ZVszXSpyK2VbN10qbitlWzExXSppK2VbMTVdKmEsdH1mdW5jdGlvbiBwKHQsZSxyLG4pe3JldHVybiBoKG4sbiksaChuLG4pLGgobixuKX1mdW5jdGlvbiBkKHQsZSl7dGhpcy5pbmRleD10LHRoaXMuZGF0YUNvb3JkaW5hdGU9dGhpcy5wb3NpdGlvbj1lfWZ1bmN0aW9uIG0odCl7cmV0dXJuITA9PT10fHx0PjE/MTp0fWZ1bmN0aW9uIGcodCxlLHIsbixpLGEsbyxzLGwsYyx1LGYpe3RoaXMuZ2w9dCx0aGlzLnBpeGVsUmF0aW89MSx0aGlzLnNoYWRlcj1lLHRoaXMub3J0aG9TaGFkZXI9cix0aGlzLnByb2plY3RTaGFkZXI9bix0aGlzLnBvaW50QnVmZmVyPWksdGhpcy5jb2xvckJ1ZmZlcj1hLHRoaXMuZ2x5cGhCdWZmZXI9byx0aGlzLmlkQnVmZmVyPXMsdGhpcy52YW89bCx0aGlzLnZlcnRleENvdW50PTAsdGhpcy5saW5lVmVydGV4Q291bnQ9MCx0aGlzLm9wYWNpdHk9MSx0aGlzLmhhc0FscGhhPSExLHRoaXMubGluZVdpZHRoPTAsdGhpcy5wcm9qZWN0U2NhbGU9WzIvMywyLzMsMi8zXSx0aGlzLnByb2plY3RPcGFjaXR5PVsxLDEsMV0sdGhpcy5wcm9qZWN0SGFzQWxwaGE9ITEsdGhpcy5waWNrSWQ9MCx0aGlzLnBpY2tQZXJzcGVjdGl2ZVNoYWRlcj1jLHRoaXMucGlja09ydGhvU2hhZGVyPXUsdGhpcy5waWNrUHJvamVjdFNoYWRlcj1mLHRoaXMucG9pbnRzPVtdLHRoaXMuX3NlbGVjdFJlc3VsdD1uZXcgZCgwLFswLDAsMF0pLHRoaXMudXNlT3J0aG89ITAsdGhpcy5ib3VuZHM9W1sxLzAsMS8wLDEvMF0sWy0xLzAsLTEvMCwtMS8wXV0sdGhpcy5heGVzUHJvamVjdD1bITAsITAsITBdLHRoaXMuYXhlc0JvdW5kcz1bWy0xLzAsLTEvMCwtMS8wXSxbMS8wLDEvMCwxLzBdXSx0aGlzLmhpZ2hsaWdodElkPVsxLDEsMSwxXSx0aGlzLmhpZ2hsaWdodFNjYWxlPTIsdGhpcy5jbGlwQm91bmRzPVtbLTEvMCwtMS8wLC0xLzBdLFsxLzAsMS8wLDEvMF1dLHRoaXMuZGlydHk9ITB9ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQuZ2wscj1sLmNyZWF0ZVBlcnNwZWN0aXZlKGUpLG49bC5jcmVhdGVPcnRobyhlKSxvPWwuY3JlYXRlUHJvamVjdChlKSxzPWwuY3JlYXRlUGlja1BlcnNwZWN0aXZlKGUpLGM9bC5jcmVhdGVQaWNrT3J0aG8oZSksdT1sLmNyZWF0ZVBpY2tQcm9qZWN0KGUpLGY9aShlKSxoPWkoZSkscD1pKGUpLGQ9aShlKSxtPWEoZSxbe2J1ZmZlcjpmLHNpemU6Myx0eXBlOmUuRkxPQVR9LHtidWZmZXI6aCxzaXplOjQsdHlwZTplLkZMT0FUfSx7YnVmZmVyOnAsc2l6ZToyLHR5cGU6ZS5GTE9BVH0se2J1ZmZlcjpkLHNpemU6NCx0eXBlOmUuVU5TSUdORURfQllURSxub3JtYWxpemVkOiEwfV0pLHY9bmV3IGcoZSxyLG4sbyxmLGgscCxkLG0scyxjLHUpO3JldHVybiB2LnVwZGF0ZSh0KSx2fTt2YXIgdj1nLnByb3RvdHlwZTt2LnBpY2tTbG90cz0xLHYuc2V0UGlja0Jhc2U9ZnVuY3Rpb24odCl7dGhpcy5waWNrSWQ9dH0sdi5pc1RyYW5zcGFyZW50PWZ1bmN0aW9uKCl7aWYodGhpcy5oYXNBbHBoYSlyZXR1cm4hMDtmb3IodmFyIHQ9MDt0PDM7Kyt0KWlmKHRoaXMuYXhlc1Byb2plY3RbdF0mJnRoaXMucHJvamVjdEhhc0FscGhhKXJldHVybiEwO3JldHVybiExfSx2LmlzT3BhcXVlPWZ1bmN0aW9uKCl7aWYoIXRoaXMuaGFzQWxwaGEpcmV0dXJuITA7Zm9yKHZhciB0PTA7dDwzOysrdClpZih0aGlzLmF4ZXNQcm9qZWN0W3RdJiYhdGhpcy5wcm9qZWN0SGFzQWxwaGEpcmV0dXJuITA7cmV0dXJuITF9O3ZhciB5PVswLDBdLHg9WzAsMCwwXSxiPVswLDAsMF0sXz1bMCwwLDAsMV0sdz1bMCwwLDAsMV0sVD1mLnNsaWNlKCksaz1bMCwwLDBdLEE9W1swLDAsMF0sWzAsMCwwXV07ZnVuY3Rpb24gTSh0KXtyZXR1cm4gdFswXT10WzFdPXRbMl09MCx0fWZ1bmN0aW9uIFModCxlKXtyZXR1cm4gdFswXT1lWzBdLHRbMV09ZVsxXSx0WzJdPWVbMl0sdFszXT0xLHR9ZnVuY3Rpb24gRSh0LGUscixuKXtyZXR1cm4gdFswXT1lWzBdLHRbMV09ZVsxXSx0WzJdPWVbMl0sdFtyXT1uLHR9ZnVuY3Rpb24gTCh0LGUscixuKXt2YXIgaSxhPWUuYXhlc1Byb2plY3Qsbz1lLmdsLGw9dC51bmlmb3JtcyxjPXIubW9kZWx8fGYsdT1yLnZpZXd8fGYsaD1yLnByb2plY3Rpb258fGYsZD1lLmF4ZXNCb3VuZHMsbT1mdW5jdGlvbih0KXtmb3IodmFyIGU9QSxyPTA7cjwyOysrcilmb3IodmFyIG49MDtuPDM7KytuKWVbcl1bbl09TWF0aC5tYXgoTWF0aC5taW4odFtyXVtuXSwxZTgpLC0xZTgpO3JldHVybiBlfShlLmNsaXBCb3VuZHMpO2k9ZS5heGVzJiZlLmF4ZXMubGFzdEN1YmVQcm9wcz9lLmF4ZXMubGFzdEN1YmVQcm9wcy5heGlzOlsxLDEsMV0seVswXT0yL28uZHJhd2luZ0J1ZmZlcldpZHRoLHlbMV09Mi9vLmRyYXdpbmdCdWZmZXJIZWlnaHQsdC5iaW5kKCksbC52aWV3PXUsbC5wcm9qZWN0aW9uPWgsbC5zY3JlZW5TaXplPXksbC5oaWdobGlnaHRJZD1lLmhpZ2hsaWdodElkLGwuaGlnaGxpZ2h0U2NhbGU9ZS5oaWdobGlnaHRTY2FsZSxsLmNsaXBCb3VuZHM9bSxsLnBpY2tHcm91cD1lLnBpY2tJZC8yNTUsbC5waXhlbFJhdGlvPW47Zm9yKHZhciBnPTA7ZzwzOysrZylpZihhW2ddKXtsLnNjYWxlPWUucHJvamVjdFNjYWxlW2ddLGwub3BhY2l0eT1lLnByb2plY3RPcGFjaXR5W2ddO2Zvcih2YXIgdj1ULEw9MDtMPDE2OysrTCl2W0xdPTA7Zm9yKEw9MDtMPDQ7KytMKXZbNSpMXT0xO3ZbNSpnXT0wLGlbZ108MD92WzEyK2ddPWRbMF1bZ106dlsxMitnXT1kWzFdW2ddLHModixjLHYpLGwubW9kZWw9djt2YXIgQz0oZysxKSUzLFA9KGcrMiklMyxJPU0oeCksTz1NKGIpO0lbQ109MSxPW1BdPTE7dmFyIHo9cCgwLDAsMCxTKF8sSSkpLEQ9cCgwLDAsMCxTKHcsTykpO2lmKE1hdGguYWJzKHpbMV0pPk1hdGguYWJzKERbMV0pKXt2YXIgUj16O3o9RCxEPVIsUj1JLEk9TyxPPVI7dmFyIEY9QztDPVAsUD1GfXpbMF08MCYmKElbQ109LTEpLERbMV0+MCYmKE9bUF09LTEpO3ZhciBCPTAsTj0wO2ZvcihMPTA7TDw0OysrTClCKz1NYXRoLnBvdyhjWzQqQytMXSwyKSxOKz1NYXRoLnBvdyhjWzQqUCtMXSwyKTtJW0NdLz1NYXRoLnNxcnQoQiksT1tQXS89TWF0aC5zcXJ0KE4pLGwuYXhlc1swXT1JLGwuYXhlc1sxXT1PLGwuZnJhZ0NsaXBCb3VuZHNbMF09RShrLG1bMF0sZywtMWU4KSxsLmZyYWdDbGlwQm91bmRzWzFdPUUoayxtWzFdLGcsMWU4KSxlLnZhby5iaW5kKCksZS52YW8uZHJhdyhvLlRSSUFOR0xFUyxlLnZlcnRleENvdW50KSxlLmxpbmVXaWR0aD4wJiYoby5saW5lV2lkdGgoZS5saW5lV2lkdGgqbiksZS52YW8uZHJhdyhvLkxJTkVTLGUubGluZVZlcnRleENvdW50LGUudmVydGV4Q291bnQpKSxlLnZhby51bmJpbmQoKX19dmFyIEM9W1stMWU4LC0xZTgsLTFlOF0sWzFlOCwxZTgsMWU4XV07ZnVuY3Rpb24gUCh0LGUscixuLGksYSxvKXt2YXIgcz1yLmdsO2lmKChhPT09ci5wcm9qZWN0SGFzQWxwaGF8fG8pJiZMKGUscixuLGkpLGE9PT1yLmhhc0FscGhhfHxvKXt0LmJpbmQoKTt2YXIgbD10LnVuaWZvcm1zO2wubW9kZWw9bi5tb2RlbHx8ZixsLnZpZXc9bi52aWV3fHxmLGwucHJvamVjdGlvbj1uLnByb2plY3Rpb258fGYseVswXT0yL3MuZHJhd2luZ0J1ZmZlcldpZHRoLHlbMV09Mi9zLmRyYXdpbmdCdWZmZXJIZWlnaHQsbC5zY3JlZW5TaXplPXksbC5oaWdobGlnaHRJZD1yLmhpZ2hsaWdodElkLGwuaGlnaGxpZ2h0U2NhbGU9ci5oaWdobGlnaHRTY2FsZSxsLmZyYWdDbGlwQm91bmRzPUMsbC5jbGlwQm91bmRzPXIuYXhlcy5ib3VuZHMsbC5vcGFjaXR5PXIub3BhY2l0eSxsLnBpY2tHcm91cD1yLnBpY2tJZC8yNTUsbC5waXhlbFJhdGlvPWksci52YW8uYmluZCgpLHIudmFvLmRyYXcocy5UUklBTkdMRVMsci52ZXJ0ZXhDb3VudCksci5saW5lV2lkdGg+MCYmKHMubGluZVdpZHRoKHIubGluZVdpZHRoKmkpLHIudmFvLmRyYXcocy5MSU5FUyxyLmxpbmVWZXJ0ZXhDb3VudCxyLnZlcnRleENvdW50KSksci52YW8udW5iaW5kKCl9fWZ1bmN0aW9uIEkodCxlLHIsaSl7dmFyIGE7YT1BcnJheS5pc0FycmF5KHQpP2U8dC5sZW5ndGg/dFtlXTp2b2lkIDA6dCxhPXUoYSk7dmFyIG89ITA7bihhKSYmKGE9Ilx1MjViYyIsbz0hMSk7dmFyIHM9YyhhLHIsaSk7cmV0dXJue21lc2g6c1swXSxsaW5lczpzWzFdLGJvdW5kczpzWzJdLHZpc2libGU6b319di5kcmF3PWZ1bmN0aW9uKHQpe1AodGhpcy51c2VPcnRobz90aGlzLm9ydGhvU2hhZGVyOnRoaXMuc2hhZGVyLHRoaXMucHJvamVjdFNoYWRlcix0aGlzLHQsdGhpcy5waXhlbFJhdGlvLCExLCExKX0sdi5kcmF3VHJhbnNwYXJlbnQ9ZnVuY3Rpb24odCl7UCh0aGlzLnVzZU9ydGhvP3RoaXMub3J0aG9TaGFkZXI6dGhpcy5zaGFkZXIsdGhpcy5wcm9qZWN0U2hhZGVyLHRoaXMsdCx0aGlzLnBpeGVsUmF0aW8sITAsITEpfSx2LmRyYXdQaWNrPWZ1bmN0aW9uKHQpe1AodGhpcy51c2VPcnRobz90aGlzLnBpY2tPcnRob1NoYWRlcjp0aGlzLnBpY2tQZXJzcGVjdGl2ZVNoYWRlcix0aGlzLnBpY2tQcm9qZWN0U2hhZGVyLHRoaXMsdCwxLCEwLCEwKX0sdi5waWNrPWZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiBudWxsO2lmKHQuaWQhPT10aGlzLnBpY2tJZClyZXR1cm4gbnVsbDt2YXIgZT10LnZhbHVlWzJdKyh0LnZhbHVlWzFdPDw4KSsodC52YWx1ZVswXTw8MTYpO2lmKGU+PXRoaXMucG9pbnRDb3VudHx8ZTwwKXJldHVybiBudWxsO3ZhciByPXRoaXMucG9pbnRzW2VdLG49dGhpcy5fc2VsZWN0UmVzdWx0O24uaW5kZXg9ZTtmb3IodmFyIGk9MDtpPDM7KytpKW4ucG9zaXRpb25baV09bi5kYXRhQ29vcmRpbmF0ZVtpXT1yW2ldO3JldHVybiBufSx2LmhpZ2hsaWdodD1mdW5jdGlvbih0KXtpZih0KXt2YXIgZT10LmluZGV4LHI9MjU1JmUsbj1lPj44JjI1NSxpPWU+PjE2JjI1NTt0aGlzLmhpZ2hsaWdodElkPVtyLzI1NSxuLzI1NSxpLzI1NSwwXX1lbHNlIHRoaXMuaGlnaGxpZ2h0SWQ9WzEsMSwxLDFdfSx2LnVwZGF0ZT1mdW5jdGlvbih0KXtpZigicGVyc3BlY3RpdmUiaW4odD10fHx7fSkmJih0aGlzLnVzZU9ydGhvPSF0LnBlcnNwZWN0aXZlKSwib3J0aG9ncmFwaGljImluIHQmJih0aGlzLnVzZU9ydGhvPSEhdC5vcnRob2dyYXBoaWMpLCJsaW5lV2lkdGgiaW4gdCYmKHRoaXMubGluZVdpZHRoPXQubGluZVdpZHRoKSwicHJvamVjdCJpbiB0KWlmKEFycmF5LmlzQXJyYXkodC5wcm9qZWN0KSl0aGlzLmF4ZXNQcm9qZWN0PXQucHJvamVjdDtlbHNle3ZhciBlPSEhdC5wcm9qZWN0O3RoaXMuYXhlc1Byb2plY3Q9W2UsZSxlXX1pZigicHJvamVjdFNjYWxlImluIHQpaWYoQXJyYXkuaXNBcnJheSh0LnByb2plY3RTY2FsZSkpdGhpcy5wcm9qZWN0U2NhbGU9dC5wcm9qZWN0U2NhbGUuc2xpY2UoKTtlbHNle3ZhciByPSt0LnByb2plY3RTY2FsZTt0aGlzLnByb2plY3RTY2FsZT1bcixyLHJdfWlmKHRoaXMucHJvamVjdEhhc0FscGhhPSExLCJwcm9qZWN0T3BhY2l0eSJpbiB0KXtpZihBcnJheS5pc0FycmF5KHQucHJvamVjdE9wYWNpdHkpKXRoaXMucHJvamVjdE9wYWNpdHk9dC5wcm9qZWN0T3BhY2l0eS5zbGljZSgpO2Vsc2V7cj0rdC5wcm9qZWN0T3BhY2l0eTt0aGlzLnByb2plY3RPcGFjaXR5PVtyLHIscl19Zm9yKHZhciBuPTA7bjwzOysrbil0aGlzLnByb2plY3RPcGFjaXR5W25dPW0odGhpcy5wcm9qZWN0T3BhY2l0eVtuXSksdGhpcy5wcm9qZWN0T3BhY2l0eVtuXTwxJiYodGhpcy5wcm9qZWN0SGFzQWxwaGE9ITApfXRoaXMuaGFzQWxwaGE9ITEsIm9wYWNpdHkiaW4gdCYmKHRoaXMub3BhY2l0eT1tKHQub3BhY2l0eSksdGhpcy5vcGFjaXR5PDEmJih0aGlzLmhhc0FscGhhPSEwKSksdGhpcy5kaXJ0eT0hMDt2YXIgaSxhLHM9dC5wb3NpdGlvbixsPXQuZm9udHx8Im5vcm1hbCIsYz10LmFsaWdubWVudHx8WzAsMF07aWYoMj09PWMubGVuZ3RoKWk9Y1swXSxhPWNbMV07ZWxzZXtpPVtdLGE9W107Zm9yKG49MDtuPGMubGVuZ3RoOysrbilpW25dPWNbbl1bMF0sYVtuXT1jW25dWzFdfXZhciB1PVsxLzAsMS8wLDEvMF0sZj1bLTEvMCwtMS8wLC0xLzBdLGg9dC5nbHlwaCxwPXQuY29sb3IsZD10LnNpemUsZz10LmFuZ2xlLHY9dC5saW5lQ29sb3IseT0tMSx4PTAsYj0wLF89MDtpZihzLmxlbmd0aCl7Xz1zLmxlbmd0aDt0OmZvcihuPTA7bjxfOysrbil7Zm9yKHZhciB3PXNbbl0sVD0wO1Q8MzsrK1QpaWYoaXNOYU4od1tUXSl8fCFpc0Zpbml0ZSh3W1RdKSljb250aW51ZSB0O3ZhciBrPShOPUkoaCxuLGwsdGhpcy5waXhlbFJhdGlvKSkubWVzaCxBPU4ubGluZXMsTT1OLmJvdW5kczt4Kz0zKmsuY2VsbHMubGVuZ3RoLGIrPTIqQS5lZGdlcy5sZW5ndGh9fXZhciBTPXgrYixFPW8ubWFsbG9jRmxvYXQoMypTKSxMPW8ubWFsbG9jRmxvYXQoNCpTKSxDPW8ubWFsbG9jRmxvYXQoMipTKSxQPW8ubWFsbG9jVWludDMyKFMpO2lmKFM+MCl7dmFyIE89MCx6PXgsRD1bMCwwLDAsMV0sUj1bMCwwLDAsMV0sRj1BcnJheS5pc0FycmF5KHApJiZBcnJheS5pc0FycmF5KHBbMF0pLEI9QXJyYXkuaXNBcnJheSh2KSYmQXJyYXkuaXNBcnJheSh2WzBdKTt0OmZvcihuPTA7bjxfOysrbil7eSs9MTtmb3Iodz1zW25dLFQ9MDtUPDM7KytUKXtpZihpc05hTih3W1RdKXx8IWlzRmluaXRlKHdbVF0pKWNvbnRpbnVlIHQ7ZltUXT1NYXRoLm1heChmW1RdLHdbVF0pLHVbVF09TWF0aC5taW4odVtUXSx3W1RdKX1rPShOPUkoaCxuLGwsdGhpcy5waXhlbFJhdGlvKSkubWVzaCxBPU4ubGluZXMsTT1OLmJvdW5kczt2YXIgTixqPU4udmlzaWJsZTtpZihqKWlmKEFycmF5LmlzQXJyYXkocCkpe2lmKDM9PT0oVT1GP248cC5sZW5ndGg/cFtuXTpbMCwwLDAsMF06cCkubGVuZ3RoKXtmb3IoVD0wO1Q8MzsrK1QpRFtUXT1VW1RdO0RbM109MX1lbHNlIGlmKDQ9PT1VLmxlbmd0aCl7Zm9yKFQ9MDtUPDQ7KytUKURbVF09VVtUXTshdGhpcy5oYXNBbHBoYSYmVVszXTwxJiYodGhpcy5oYXNBbHBoYT0hMCl9fWVsc2UgRFswXT1EWzFdPURbMl09MCxEWzNdPTE7ZWxzZSBEPVsxLDEsMSwwXTtpZihqKWlmKEFycmF5LmlzQXJyYXkodikpe3ZhciBVO2lmKDM9PT0oVT1CP248di5sZW5ndGg/dltuXTpbMCwwLDAsMF06dikubGVuZ3RoKXtmb3IoVD0wO1Q8MzsrK1QpUltUXT1VW1RdO1JbVF09MX1lbHNlIGlmKDQ9PT1VLmxlbmd0aCl7Zm9yKFQ9MDtUPDQ7KytUKVJbVF09VVtUXTshdGhpcy5oYXNBbHBoYSYmVVszXTwxJiYodGhpcy5oYXNBbHBoYT0hMCl9fWVsc2UgUlswXT1SWzFdPVJbMl09MCxSWzNdPTE7ZWxzZSBSPVsxLDEsMSwwXTt2YXIgVj0uNTtqP0FycmF5LmlzQXJyYXkoZCk/Vj1uPGQubGVuZ3RoPytkW25dOjEyOmQ/Vj0rZDp0aGlzLnVzZU9ydGhvJiYoVj0xMik6Vj0wO3ZhciBIPTA7QXJyYXkuaXNBcnJheShnKT9IPW48Zy5sZW5ndGg/K2dbbl06MDpnJiYoSD0rZyk7dmFyIHE9TWF0aC5jb3MoSCksRz1NYXRoLnNpbihIKTtmb3Iodz1zW25dLFQ9MDtUPDM7KytUKWZbVF09TWF0aC5tYXgoZltUXSx3W1RdKSx1W1RdPU1hdGgubWluKHVbVF0sd1tUXSk7dmFyIFk9aSxXPWE7WT0wO0FycmF5LmlzQXJyYXkoaSk/WT1uPGkubGVuZ3RoP2lbbl06MDppJiYoWT1pKTtXPTA7QXJyYXkuaXNBcnJheShhKT9XPW48YS5sZW5ndGg/YVtuXTowOmEmJihXPWEpO3ZhciBYPVtZKj1ZPjA/MS1NWzBdWzBdOlk8MD8xK01bMV1bMF06MSxXKj1XPjA/MS1NWzBdWzFdOlc8MD8xK01bMV1bMV06MV0sWj1rLmNlbGxzfHxbXSxKPWsucG9zaXRpb25zfHxbXTtmb3IoVD0wO1Q8Wi5sZW5ndGg7KytUKWZvcih2YXIgSz1aW1RdLFE9MDtRPDM7KytRKXtmb3IodmFyICQ9MDskPDM7KyskKUVbMypPKyRdPXdbJF07Zm9yKCQ9MDskPDQ7KyskKUxbNCpPKyRdPURbJF07UFtPXT15O3ZhciB0dD1KW0tbUV1dO0NbMipPXT1WKihxKnR0WzBdLUcqdHRbMV0rWFswXSksQ1syKk8rMV09ViooRyp0dFswXStxKnR0WzFdK1hbMV0pLE8rPTF9Zm9yKFo9QS5lZGdlcyxKPUEucG9zaXRpb25zLFQ9MDtUPFoubGVuZ3RoOysrVClmb3IoSz1aW1RdLFE9MDtRPDI7KytRKXtmb3IoJD0wOyQ8MzsrKyQpRVszKnorJF09d1skXTtmb3IoJD0wOyQ8NDsrKyQpTFs0KnorJF09UlskXTtQW3pdPXk7dHQ9SltLW1FdXTtDWzIqel09VioocSp0dFswXS1HKnR0WzFdK1hbMF0pLENbMip6KzFdPVYqKEcqdHRbMF0rcSp0dFsxXStYWzFdKSx6Kz0xfX19dGhpcy5ib3VuZHM9W3UsZl0sdGhpcy5wb2ludHM9cyx0aGlzLnBvaW50Q291bnQ9cy5sZW5ndGgsdGhpcy52ZXJ0ZXhDb3VudD14LHRoaXMubGluZVZlcnRleENvdW50PWIsdGhpcy5wb2ludEJ1ZmZlci51cGRhdGUoRSksdGhpcy5jb2xvckJ1ZmZlci51cGRhdGUoTCksdGhpcy5nbHlwaEJ1ZmZlci51cGRhdGUoQyksdGhpcy5pZEJ1ZmZlci51cGRhdGUoUCksby5mcmVlKEUpLG8uZnJlZShMKSxvLmZyZWUoQyksby5mcmVlKFApfSx2LmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLnNoYWRlci5kaXNwb3NlKCksdGhpcy5vcnRob1NoYWRlci5kaXNwb3NlKCksdGhpcy5waWNrUGVyc3BlY3RpdmVTaGFkZXIuZGlzcG9zZSgpLHRoaXMucGlja09ydGhvU2hhZGVyLmRpc3Bvc2UoKSx0aGlzLnZhby5kaXNwb3NlKCksdGhpcy5wb2ludEJ1ZmZlci5kaXNwb3NlKCksdGhpcy5jb2xvckJ1ZmZlci5kaXNwb3NlKCksdGhpcy5nbHlwaEJ1ZmZlci5kaXNwb3NlKCksdGhpcy5pZEJ1ZmZlci5kaXNwb3NlKCl9fSx7Ii4vbGliL2dldC1zaW1wbGUtc3RyaW5nIjoxMjUsIi4vbGliL2dseXBocyI6MTI2LCIuL2xpYi9zaGFkZXJzIjoxMjcsImdsLWJ1ZmZlciI6NzgsImdsLW1hdDQvbXVsdGlwbHkiOjEwMCwiZ2wtdmFvIjoxNTAsImlzLXN0cmluZy1ibGFuayI6MjM5LCJ0eXBlZGFycmF5LXBvb2wiOjMwOH1dLDEyOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJnbHNsaWZ5Iik7ci5ib3hWZXJ0ZXg9bihbInByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYXR0cmlidXRlIHZlYzIgdmVydGV4O1xuXG51bmlmb3JtIHZlYzIgY29ybmVyQSwgY29ybmVyQjtcblxudm9pZCBtYWluKCkge1xuICBnbF9Qb3NpdGlvbiA9IHZlYzQobWl4KGNvcm5lckEsIGNvcm5lckIsIHZlcnRleCksIDAsIDEpO1xufVxuIl0pLHIuYm94RnJhZ21lbnQ9bihbInByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxudW5pZm9ybSB2ZWM0IGNvbG9yO1xuXG52b2lkIG1haW4oKSB7XG4gIGdsX0ZyYWdDb2xvciA9IGNvbG9yO1xufVxuIl0pfSx7Z2xzbGlmeToyMzF9XSwxMzA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZ2wtc2hhZGVyIiksaT10KCJnbC1idWZmZXIiKSxhPXQoIi4vbGliL3NoYWRlcnMiKTtmdW5jdGlvbiBvKHQsZSxyKXt0aGlzLnBsb3Q9dCx0aGlzLmJveEJ1ZmZlcj1lLHRoaXMuYm94U2hhZGVyPXIsdGhpcy5lbmFibGVkPSEwLHRoaXMuc2VsZWN0Qm94PVsxLzAsMS8wLC0xLzAsLTEvMF0sdGhpcy5ib3JkZXJDb2xvcj1bMCwwLDAsMV0sdGhpcy5pbm5lckZpbGw9ITEsdGhpcy5pbm5lckNvbG9yPVswLDAsMCwuMjVdLHRoaXMub3V0ZXJGaWxsPSEwLHRoaXMub3V0ZXJDb2xvcj1bMCwwLDAsLjVdLHRoaXMuYm9yZGVyV2lkdGg9MTB9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5nbCxzPWkocixbMCwwLDAsMSwxLDAsMSwxXSksbD1uKHIsYS5ib3hWZXJ0ZXgsYS5ib3hGcmFnbWVudCksYz1uZXcgbyh0LHMsbCk7cmV0dXJuIGMudXBkYXRlKGUpLHQuYWRkT3ZlcmxheShjKSxjfTt2YXIgcz1vLnByb3RvdHlwZTtzLmRyYXc9ZnVuY3Rpb24oKXtpZih0aGlzLmVuYWJsZWQpe3ZhciB0PXRoaXMucGxvdCxlPXRoaXMuc2VsZWN0Qm94LHI9dGhpcy5ib3JkZXJXaWR0aCxuPSh0aGlzLmlubmVyRmlsbCx0aGlzLmlubmVyQ29sb3IpLGk9KHRoaXMub3V0ZXJGaWxsLHRoaXMub3V0ZXJDb2xvciksYT10aGlzLmJvcmRlckNvbG9yLG89dC5ib3gscz10LnNjcmVlbkJveCxsPXQuZGF0YUJveCxjPXQudmlld0JveCx1PXQucGl4ZWxSYXRpbyxmPShlWzBdLWxbMF0pKihjWzJdLWNbMF0pLyhsWzJdLWxbMF0pK2NbMF0saD0oZVsxXS1sWzFdKSooY1szXS1jWzFdKS8obFszXS1sWzFdKStjWzFdLHA9KGVbMl0tbFswXSkqKGNbMl0tY1swXSkvKGxbMl0tbFswXSkrY1swXSxkPShlWzNdLWxbMV0pKihjWzNdLWNbMV0pLyhsWzNdLWxbMV0pK2NbMV07aWYoZj1NYXRoLm1heChmLGNbMF0pLGg9TWF0aC5tYXgoaCxjWzFdKSxwPU1hdGgubWluKHAsY1syXSksZD1NYXRoLm1pbihkLGNbM10pLCEocDxmfHxkPGgpKXtvLmJpbmQoKTt2YXIgbT1zWzJdLXNbMF0sZz1zWzNdLXNbMV07aWYodGhpcy5vdXRlckZpbGwmJihvLmRyYXdCb3goMCwwLG0saCxpKSxvLmRyYXdCb3goMCxoLGYsZCxpKSxvLmRyYXdCb3goMCxkLG0sZyxpKSxvLmRyYXdCb3gocCxoLG0sZCxpKSksdGhpcy5pbm5lckZpbGwmJm8uZHJhd0JveChmLGgscCxkLG4pLHI+MCl7dmFyIHY9cip1O28uZHJhd0JveChmLXYsaC12LHArdixoK3YsYSksby5kcmF3Qm94KGYtdixkLXYscCt2LGQrdixhKSxvLmRyYXdCb3goZi12LGgtdixmK3YsZCt2LGEpLG8uZHJhd0JveChwLXYsaC12LHArdixkK3YsYSl9fX19LHMudXBkYXRlPWZ1bmN0aW9uKHQpe3Q9dHx8e30sdGhpcy5pbm5lckZpbGw9ISF0LmlubmVyRmlsbCx0aGlzLm91dGVyRmlsbD0hIXQub3V0ZXJGaWxsLHRoaXMuaW5uZXJDb2xvcj0odC5pbm5lckNvbG9yfHxbMCwwLDAsLjVdKS5zbGljZSgpLHRoaXMub3V0ZXJDb2xvcj0odC5vdXRlckNvbG9yfHxbMCwwLDAsLjVdKS5zbGljZSgpLHRoaXMuYm9yZGVyQ29sb3I9KHQuYm9yZGVyQ29sb3J8fFswLDAsMCwxXSkuc2xpY2UoKSx0aGlzLmJvcmRlcldpZHRoPXQuYm9yZGVyV2lkdGh8fDAsdGhpcy5zZWxlY3RCb3g9KHQuc2VsZWN0Qm94fHx0aGlzLnNlbGVjdEJveCkuc2xpY2UoKX0scy5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5ib3hCdWZmZXIuZGlzcG9zZSgpLHRoaXMuYm94U2hhZGVyLmRpc3Bvc2UoKSx0aGlzLnBsb3QucmVtb3ZlT3ZlcmxheSh0aGlzKX19LHsiLi9saWIvc2hhZGVycyI6MTI5LCJnbC1idWZmZXIiOjc4LCJnbC1zaGFkZXIiOjEzMn1dLDEzMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLGE9ZVsxXSxvPW4odCxyLGEse30pLHM9aS5tYWxsb2NVaW50OChyKmEqNCk7cmV0dXJuIG5ldyBsKHQsbyxzKX07dmFyIG49dCgiZ2wtZmJvIiksaT10KCJ0eXBlZGFycmF5LXBvb2wiKSxhPXQoIm5kYXJyYXkiKSxvPXQoImJpdC10d2lkZGxlIikubmV4dFBvdzI7ZnVuY3Rpb24gcyh0LGUscixuLGkpe3RoaXMuY29vcmQ9W3QsZV0sdGhpcy5pZD1yLHRoaXMudmFsdWU9bix0aGlzLmRpc3RhbmNlPWl9ZnVuY3Rpb24gbCh0LGUscil7dGhpcy5nbD10LHRoaXMuZmJvPWUsdGhpcy5idWZmZXI9cix0aGlzLl9yZWFkVGltZW91dD1udWxsO3ZhciBuPXRoaXM7dGhpcy5fcmVhZENhbGxiYWNrPWZ1bmN0aW9uKCl7bi5nbCYmKGUuYmluZCgpLHQucmVhZFBpeGVscygwLDAsZS5zaGFwZVswXSxlLnNoYXBlWzFdLHQuUkdCQSx0LlVOU0lHTkVEX0JZVEUsbi5idWZmZXIpLG4uX3JlYWRUaW1lb3V0PW51bGwpfX12YXIgYz1sLnByb3RvdHlwZTtPYmplY3QuZGVmaW5lUHJvcGVydHkoYywic2hhcGUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nbD90aGlzLmZiby5zaGFwZS5zbGljZSgpOlswLDBdfSxzZXQ6ZnVuY3Rpb24odCl7aWYodGhpcy5nbCl7dGhpcy5mYm8uc2hhcGU9dDt2YXIgZT10aGlzLmZiby5zaGFwZVswXSxyPXRoaXMuZmJvLnNoYXBlWzFdO2lmKHIqZSo0PnRoaXMuYnVmZmVyLmxlbmd0aCl7aS5mcmVlKHRoaXMuYnVmZmVyKTtmb3IodmFyIG49dGhpcy5idWZmZXI9aS5tYWxsb2NVaW50OChvKHIqZSo0KSksYT0wO2E8ciplKjQ7KythKW5bYV09MjU1fXJldHVybiB0fX19KSxjLmJlZ2luPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5nbDt0aGlzLnNoYXBlO3QmJih0aGlzLmZiby5iaW5kKCksdC5jbGVhckNvbG9yKDEsMSwxLDEpLHQuY2xlYXIodC5DT0xPUl9CVUZGRVJfQklUfHQuREVQVEhfQlVGRkVSX0JJVCkpfSxjLmVuZD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuZ2w7dCYmKHQuYmluZEZyYW1lYnVmZmVyKHQuRlJBTUVCVUZGRVIsbnVsbCksdGhpcy5fcmVhZFRpbWVvdXR8fGNsZWFyVGltZW91dCh0aGlzLl9yZWFkVGltZW91dCksdGhpcy5fcmVhZFRpbWVvdXQ9c2V0VGltZW91dCh0aGlzLl9yZWFkQ2FsbGJhY2ssMSkpfSxjLnF1ZXJ5PWZ1bmN0aW9uKHQsZSxyKXtpZighdGhpcy5nbClyZXR1cm4gbnVsbDt2YXIgbj10aGlzLmZiby5zaGFwZS5zbGljZSgpO3R8PTAsZXw9MCwibnVtYmVyIiE9dHlwZW9mIHImJihyPTEpO3ZhciBpPTB8TWF0aC5taW4oTWF0aC5tYXgodC1yLDApLG5bMF0pLG89MHxNYXRoLm1pbihNYXRoLm1heCh0K3IsMCksblswXSksbD0wfE1hdGgubWluKE1hdGgubWF4KGUtciwwKSxuWzFdKSxjPTB8TWF0aC5taW4oTWF0aC5tYXgoZStyLDApLG5bMV0pO2lmKG88PWl8fGM8PWwpcmV0dXJuIG51bGw7dmFyIHU9W28taSxjLWxdLGY9YSh0aGlzLmJ1ZmZlcixbdVswXSx1WzFdLDRdLFs0LDQqblswXSwxXSw0KihpK25bMF0qbCkpLGg9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj0xZTgsaT0tMSxhPS0xLG89dC5zaGFwZVswXSxzPXQuc2hhcGVbMV0sbD0wO2w8bztsKyspZm9yKHZhciBjPTA7YzxzO2MrKyl7dmFyIHU9dC5nZXQobCxjLDApLGY9dC5nZXQobCxjLDEpLGg9dC5nZXQobCxjLDIpLHA9dC5nZXQobCxjLDMpO2lmKHU8MjU1fHxmPDI1NXx8aDwyNTV8fHA8MjU1KXt2YXIgZD1lLWwsbT1yLWMsZz1kKmQrbSptO2c8biYmKG49ZyxpPWwsYT1jKX19cmV0dXJuW2ksYSxuXX0oZi5oaSh1WzBdLHVbMV0sMSkscixyKSxwPWhbMF0sZD1oWzFdO3JldHVybiBwPDB8fE1hdGgucG93KHRoaXMucmFkaXVzLDIpPGhbMl0/bnVsbDpuZXcgcyhwK2l8MCxkK2x8MCxmLmdldChwLGQsMCksW2YuZ2V0KHAsZCwxKSxmLmdldChwLGQsMiksZi5nZXQocCxkLDMpXSxNYXRoLnNxcnQoaFsyXSkpfSxjLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLmdsJiYodGhpcy5mYm8uZGlzcG9zZSgpLGkuZnJlZSh0aGlzLmJ1ZmZlciksdGhpcy5nbD1udWxsLHRoaXMuX3JlYWRUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5fcmVhZFRpbWVvdXQpKX19LHsiYml0LXR3aWRkbGUiOjMyLCJnbC1mYm8iOjg2LG5kYXJyYXk6MjU5LCJ0eXBlZGFycmF5LXBvb2wiOjMwOH1dLDEzMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2xpYi9jcmVhdGUtdW5pZm9ybXMiKSxpPXQoIi4vbGliL2NyZWF0ZS1hdHRyaWJ1dGVzIiksYT10KCIuL2xpYi9yZWZsZWN0Iiksbz10KCIuL2xpYi9zaGFkZXItY2FjaGUiKSxzPXQoIi4vbGliL3J1bnRpbWUtcmVmbGVjdCIpLGw9dCgiLi9saWIvR0xFcnJvciIpO2Z1bmN0aW9uIGModCl7dGhpcy5nbD10LHRoaXMuZ2wubGFzdEF0dHJpYkNvdW50PTAsdGhpcy5fdnJlZj10aGlzLl9mcmVmPXRoaXMuX3JlbGluaz10aGlzLnZlcnRTaGFkZXI9dGhpcy5mcmFnU2hhZGVyPXRoaXMucHJvZ3JhbT10aGlzLmF0dHJpYnV0ZXM9dGhpcy51bmlmb3Jtcz10aGlzLnR5cGVzPW51bGx9dmFyIHU9Yy5wcm90b3R5cGU7ZnVuY3Rpb24gZih0LGUpe3JldHVybiB0Lm5hbWU8ZS5uYW1lPy0xOjF9dS5iaW5kPWZ1bmN0aW9uKCl7dmFyIHQ7dGhpcy5wcm9ncmFtfHx0aGlzLl9yZWxpbmsoKTt2YXIgZT10aGlzLmdsLmdldFByb2dyYW1QYXJhbWV0ZXIodGhpcy5wcm9ncmFtLHRoaXMuZ2wuQUNUSVZFX0FUVFJJQlVURVMpLHI9dGhpcy5nbC5sYXN0QXR0cmliQ291bnQ7aWYoZT5yKWZvcih0PXI7dDxlO3QrKyl0aGlzLmdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KHQpO2Vsc2UgaWYocj5lKWZvcih0PWU7dDxyO3QrKyl0aGlzLmdsLmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheSh0KTt0aGlzLmdsLmxhc3RBdHRyaWJDb3VudD1lLHRoaXMuZ2wudXNlUHJvZ3JhbSh0aGlzLnByb2dyYW0pfSx1LmRpc3Bvc2U9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5nbC5sYXN0QXR0cmliQ291bnQsZT0wO2U8dDtlKyspdGhpcy5nbC5kaXNhYmxlVmVydGV4QXR0cmliQXJyYXkoZSk7dGhpcy5nbC5sYXN0QXR0cmliQ291bnQ9MCx0aGlzLl9mcmVmJiZ0aGlzLl9mcmVmLmRpc3Bvc2UoKSx0aGlzLl92cmVmJiZ0aGlzLl92cmVmLmRpc3Bvc2UoKSx0aGlzLmF0dHJpYnV0ZXM9dGhpcy50eXBlcz10aGlzLnZlcnRTaGFkZXI9dGhpcy5mcmFnU2hhZGVyPXRoaXMucHJvZ3JhbT10aGlzLl9yZWxpbms9dGhpcy5fZnJlZj10aGlzLl92cmVmPW51bGx9LHUudXBkYXRlPWZ1bmN0aW9uKHQsZSxyLGMpe2lmKCFlfHwxPT09YXJndW1lbnRzLmxlbmd0aCl7dmFyIHU9dDt0PXUudmVydGV4LGU9dS5mcmFnbWVudCxyPXUudW5pZm9ybXMsYz11LmF0dHJpYnV0ZXN9dmFyIGg9dGhpcyxwPWguZ2wsZD1oLl92cmVmO2guX3ZyZWY9by5zaGFkZXIocCxwLlZFUlRFWF9TSEFERVIsdCksZCYmZC5kaXNwb3NlKCksaC52ZXJ0U2hhZGVyPWguX3ZyZWYuc2hhZGVyO3ZhciBtPXRoaXMuX2ZyZWY7aWYoaC5fZnJlZj1vLnNoYWRlcihwLHAuRlJBR01FTlRfU0hBREVSLGUpLG0mJm0uZGlzcG9zZSgpLGguZnJhZ1NoYWRlcj1oLl9mcmVmLnNoYWRlciwhcnx8IWMpe3ZhciBnPXAuY3JlYXRlUHJvZ3JhbSgpO2lmKHAuYXR0YWNoU2hhZGVyKGcsaC5mcmFnU2hhZGVyKSxwLmF0dGFjaFNoYWRlcihnLGgudmVydFNoYWRlcikscC5saW5rUHJvZ3JhbShnKSwhcC5nZXRQcm9ncmFtUGFyYW1ldGVyKGcscC5MSU5LX1NUQVRVUykpe3ZhciB2PXAuZ2V0UHJvZ3JhbUluZm9Mb2coZyk7dGhyb3cgbmV3IGwodiwiRXJyb3IgbGlua2luZyBwcm9ncmFtOiIrdil9cj1yfHxzLnVuaWZvcm1zKHAsZyksYz1jfHxzLmF0dHJpYnV0ZXMocCxnKSxwLmRlbGV0ZVByb2dyYW0oZyl9KGM9Yy5zbGljZSgpKS5zb3J0KGYpO3ZhciB5LHg9W10sYj1bXSxfPVtdO2Zvcih5PTA7eTxjLmxlbmd0aDsrK3kpe3ZhciB3PWNbeV07aWYody50eXBlLmluZGV4T2YoIm1hdCIpPj0wKXtmb3IodmFyIFQ9MHx3LnR5cGUuY2hhckF0KHcudHlwZS5sZW5ndGgtMSksaz1uZXcgQXJyYXkoVCksQT0wO0E8VDsrK0Epa1tBXT1fLmxlbmd0aCxiLnB1c2gody5uYW1lKyJbIitBKyJdIiksIm51bWJlciI9PXR5cGVvZiB3LmxvY2F0aW9uP18ucHVzaCh3LmxvY2F0aW9uK0EpOkFycmF5LmlzQXJyYXkody5sb2NhdGlvbikmJncubG9jYXRpb24ubGVuZ3RoPT09VCYmIm51bWJlciI9PXR5cGVvZiB3LmxvY2F0aW9uW0FdP18ucHVzaCgwfHcubG9jYXRpb25bQV0pOl8ucHVzaCgtMSk7eC5wdXNoKHtuYW1lOncubmFtZSx0eXBlOncudHlwZSxsb2NhdGlvbnM6a30pfWVsc2UgeC5wdXNoKHtuYW1lOncubmFtZSx0eXBlOncudHlwZSxsb2NhdGlvbnM6W18ubGVuZ3RoXX0pLGIucHVzaCh3Lm5hbWUpLCJudW1iZXIiPT10eXBlb2Ygdy5sb2NhdGlvbj9fLnB1c2goMHx3LmxvY2F0aW9uKTpfLnB1c2goLTEpfXZhciBNPTA7Zm9yKHk9MDt5PF8ubGVuZ3RoOysreSlpZihfW3ldPDApe2Zvcig7Xy5pbmRleE9mKE0pPj0wOylNKz0xO19beV09TX12YXIgUz1uZXcgQXJyYXkoci5sZW5ndGgpO2Z1bmN0aW9uIEUoKXtoLnByb2dyYW09by5wcm9ncmFtKHAsaC5fdnJlZixoLl9mcmVmLGIsXyk7Zm9yKHZhciB0PTA7dDxyLmxlbmd0aDsrK3QpU1t0XT1wLmdldFVuaWZvcm1Mb2NhdGlvbihoLnByb2dyYW0sclt0XS5uYW1lKX1FKCksaC5fcmVsaW5rPUUsaC50eXBlcz17dW5pZm9ybXM6YShyKSxhdHRyaWJ1dGVzOmEoYyl9LGguYXR0cmlidXRlcz1pKHAsaCx4LF8pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShoLCJ1bmlmb3JtcyIsbihwLGgscixTKSl9LGUuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuLGkpe3ZhciBhPW5ldyBjKHQpO3JldHVybiBhLnVwZGF0ZShlLHIsbixpKSxhfX0seyIuL2xpYi9HTEVycm9yIjoxMzMsIi4vbGliL2NyZWF0ZS1hdHRyaWJ1dGVzIjoxMzQsIi4vbGliL2NyZWF0ZS11bmlmb3JtcyI6MTM1LCIuL2xpYi9yZWZsZWN0IjoxMzYsIi4vbGliL3J1bnRpbWUtcmVmbGVjdCI6MTM3LCIuL2xpYi9zaGFkZXItY2FjaGUiOjEzOH1dLDEzMzpbZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4odCxlLHIpe3RoaXMuc2hvcnRNZXNzYWdlPWV8fCIiLHRoaXMubG9uZ01lc3NhZ2U9cnx8IiIsdGhpcy5yYXdFcnJvcj10fHwiIix0aGlzLm1lc3NhZ2U9ImdsLXNoYWRlcjogIisoZXx8dHx8IiIpKyhyPyJcbiIrcjoiIiksdGhpcy5zdGFjaz0obmV3IEVycm9yKS5zdGFja31uLnByb3RvdHlwZT1uZXcgRXJyb3Isbi5wcm90b3R5cGUubmFtZT0iR0xFcnJvciIsbi5wcm90b3R5cGUuY29uc3RydWN0b3I9bixlLmV4cG9ydHM9bn0se31dLDEzNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsaSl7Zm9yKHZhciBhPXt9LG89MCxjPXIubGVuZ3RoO288YzsrK28pe3ZhciB1PXJbb10sZj11Lm5hbWUsaD11LnR5cGUscD11LmxvY2F0aW9ucztzd2l0Y2goaCl7Y2FzZSJib29sIjpjYXNlImludCI6Y2FzZSJmbG9hdCI6cyh0LGUscFswXSxpLDEsYSxmKTticmVhaztkZWZhdWx0OmlmKGguaW5kZXhPZigidmVjIik+PTApe2lmKChkPWguY2hhckNvZGVBdChoLmxlbmd0aC0xKS00OCk8Mnx8ZD40KXRocm93IG5ldyBuKCIiLCJJbnZhbGlkIGRhdGEgdHlwZSBmb3IgYXR0cmlidXRlICIrZisiOiAiK2gpO3ModCxlLHBbMF0saSxkLGEsZil9ZWxzZXtpZighKGguaW5kZXhPZigibWF0Iik+PTApKXRocm93IG5ldyBuKCIiLCJVbmtub3duIGRhdGEgdHlwZSBmb3IgYXR0cmlidXRlICIrZisiOiAiK2gpO3ZhciBkO2lmKChkPWguY2hhckNvZGVBdChoLmxlbmd0aC0xKS00OCk8Mnx8ZD40KXRocm93IG5ldyBuKCIiLCJJbnZhbGlkIGRhdGEgdHlwZSBmb3IgYXR0cmlidXRlICIrZisiOiAiK2gpO2wodCxlLHAsaSxkLGEsZil9fX1yZXR1cm4gYX07dmFyIG49dCgiLi9HTEVycm9yIik7ZnVuY3Rpb24gaSh0LGUscixuLGksYSl7dGhpcy5fZ2w9dCx0aGlzLl93cmFwcGVyPWUsdGhpcy5faW5kZXg9cix0aGlzLl9sb2NhdGlvbnM9bix0aGlzLl9kaW1lbnNpb249aSx0aGlzLl9jb25zdEZ1bmM9YX12YXIgYT1pLnByb3RvdHlwZTthLnBvaW50ZXI9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9dGhpcy5fZ2wsYT10aGlzLl9sb2NhdGlvbnNbdGhpcy5faW5kZXhdO2kudmVydGV4QXR0cmliUG9pbnRlcihhLHRoaXMuX2RpbWVuc2lvbix0fHxpLkZMT0FULCEhZSxyfHwwLG58fDApLGkuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoYSl9LGEuc2V0PWZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiB0aGlzLl9jb25zdEZ1bmModGhpcy5fbG9jYXRpb25zW3RoaXMuX2luZGV4XSx0LGUscixuKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsImxvY2F0aW9uIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xvY2F0aW9uc1t0aGlzLl9pbmRleF19LHNldDpmdW5jdGlvbih0KXtyZXR1cm4gdCE9PXRoaXMuX2xvY2F0aW9uc1t0aGlzLl9pbmRleF0mJih0aGlzLl9sb2NhdGlvbnNbdGhpcy5faW5kZXhdPTB8dCx0aGlzLl93cmFwcGVyLnByb2dyYW09bnVsbCksMHx0fX0pO3ZhciBvPVtmdW5jdGlvbih0LGUscil7cmV0dXJuIHZvaWQgMD09PXIubGVuZ3RoP3QudmVydGV4QXR0cmliMWYoZSxyKTp0LnZlcnRleEF0dHJpYjFmdihlLHIpfSxmdW5jdGlvbih0LGUscixuKXtyZXR1cm4gdm9pZCAwPT09ci5sZW5ndGg/dC52ZXJ0ZXhBdHRyaWIyZihlLHIsbik6dC52ZXJ0ZXhBdHRyaWIyZnYoZSxyKX0sZnVuY3Rpb24odCxlLHIsbixpKXtyZXR1cm4gdm9pZCAwPT09ci5sZW5ndGg/dC52ZXJ0ZXhBdHRyaWIzZihlLHIsbixpKTp0LnZlcnRleEF0dHJpYjNmdihlLHIpfSxmdW5jdGlvbih0LGUscixuLGksYSl7cmV0dXJuIHZvaWQgMD09PXIubGVuZ3RoP3QudmVydGV4QXR0cmliNGYoZSxyLG4saSxhKTp0LnZlcnRleEF0dHJpYjRmdihlLHIpfV07ZnVuY3Rpb24gcyh0LGUscixuLGEscyxsKXt2YXIgYz1vW2FdLHU9bmV3IGkodCxlLHIsbixhLGMpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShzLGwse3NldDpmdW5jdGlvbihlKXtyZXR1cm4gdC5kaXNhYmxlVmVydGV4QXR0cmliQXJyYXkobltyXSksYyh0LG5bcl0sZSksZX0sZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHV9LGVudW1lcmFibGU6ITB9KX1mdW5jdGlvbiBsKHQsZSxyLG4saSxhLG8pe2Zvcih2YXIgbD1uZXcgQXJyYXkoaSksYz1uZXcgQXJyYXkoaSksdT0wO3U8aTsrK3Upcyh0LGUsclt1XSxuLGksbCx1KSxjW3VdPWxbdV07T2JqZWN0LmRlZmluZVByb3BlcnR5KGwsImxvY2F0aW9uIix7c2V0OmZ1bmN0aW9uKHQpe2lmKEFycmF5LmlzQXJyYXkodCkpZm9yKHZhciBlPTA7ZTxpOysrZSljW2VdLmxvY2F0aW9uPXRbZV07ZWxzZSBmb3IoZT0wO2U8aTsrK2UpY1tlXS5sb2NhdGlvbj10K2U7cmV0dXJuIHR9LGdldDpmdW5jdGlvbigpe2Zvcih2YXIgdD1uZXcgQXJyYXkoaSksZT0wO2U8aTsrK2UpdFtlXT1uW3JbZV1dO3JldHVybiB0fSxlbnVtZXJhYmxlOiEwfSksbC5wb2ludGVyPWZ1bmN0aW9uKGUsYSxvLHMpe2U9ZXx8dC5GTE9BVCxhPSEhYSxvPW98fGkqaSxzPXN8fDA7Zm9yKHZhciBsPTA7bDxpOysrbCl7dmFyIGM9bltyW2xdXTt0LnZlcnRleEF0dHJpYlBvaW50ZXIoYyxpLGUsYSxvLHMrbCppKSx0LmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KGMpfX07dmFyIGY9bmV3IEFycmF5KGkpLGg9dFsidmVydGV4QXR0cmliIitpKyJmdiJdO09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLG8se3NldDpmdW5jdGlvbihlKXtmb3IodmFyIGE9MDthPGk7KythKXt2YXIgbz1uW3JbYV1dO2lmKHQuZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KG8pLEFycmF5LmlzQXJyYXkoZVswXSkpaC5jYWxsKHQsbyxlW2FdKTtlbHNle2Zvcih2YXIgcz0wO3M8aTsrK3MpZltzXT1lW2kqYStzXTtoLmNhbGwodCxvLGYpfX1yZXR1cm4gZX0sZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGx9LGVudW1lcmFibGU6ITB9KX19LHsiLi9HTEVycm9yIjoxMzN9XSwxMzU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9yZWZsZWN0IiksaT10KCIuL0dMRXJyb3IiKTtmdW5jdGlvbiBhKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBvKHQsZSl7Zm9yKHZhciByPW5ldyBBcnJheSh0KSxuPTA7bjx0OysrbilyW25dPWU7cmV0dXJuIHJ9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHMpe2Z1bmN0aW9uIGwoZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe2Zvcih2YXIgYT1mdW5jdGlvbiB0KGUscil7aWYoIm9iamVjdCIhPXR5cGVvZiByKXJldHVybltbZSxyXV07dmFyIG49W107Zm9yKHZhciBpIGluIHIpe3ZhciBhPXJbaV0sbz1lO3BhcnNlSW50KGkpKyIiPT09aT9vKz0iWyIraSsiXSI6bys9Ii4iK2ksIm9iamVjdCI9PXR5cGVvZiBhP24ucHVzaC5hcHBseShuLHQobyxhKSk6bi5wdXNoKFtvLGFdKX1yZXR1cm4gbn0oIiIsZSksbz0wO288YS5sZW5ndGg7KytvKXt2YXIgbD1hW29dLGM9bFswXSx1PWxbMV07aWYoc1t1XSl7dmFyIGY9bjtpZigic3RyaW5nIj09dHlwZW9mIGMmJigwPT09Yy5pbmRleE9mKCIuIil8fDA9PT1jLmluZGV4T2YoIlsiKSkpe3ZhciBoPWM7aWYoMD09PWMuaW5kZXhPZigiLiIpJiYoaD1jLnNsaWNlKDEpKSxoLmluZGV4T2YoIl0iKT09PWgubGVuZ3RoLTEpe3ZhciBwPWguaW5kZXhPZigiWyIpLGQ9aC5zbGljZSgwLHApLG09aC5zbGljZShwKzEsaC5sZW5ndGgtMSk7Zj1kP25bZF1bbV06blttXX1lbHNlIGY9bltoXX12YXIgZyx2PXJbdV0udHlwZTtzd2l0Y2godil7Y2FzZSJib29sIjpjYXNlImludCI6Y2FzZSJzYW1wbGVyMkQiOmNhc2Uic2FtcGxlckN1YmUiOnQudW5pZm9ybTFpKHNbdV0sZik7YnJlYWs7Y2FzZSJmbG9hdCI6dC51bmlmb3JtMWYoc1t1XSxmKTticmVhaztkZWZhdWx0OnZhciB5PXYuaW5kZXhPZigidmVjIik7aWYoISgwPD15JiZ5PD0xJiZ2Lmxlbmd0aD09PTQreSkpe2lmKDA9PT12LmluZGV4T2YoIm1hdCIpJiY0PT09di5sZW5ndGgpe2lmKChnPXYuY2hhckNvZGVBdCh2Lmxlbmd0aC0xKS00OCk8Mnx8Zz40KXRocm93IG5ldyBpKCIiLCJJbnZhbGlkIHVuaWZvcm0gZGltZW5zaW9uIHR5cGUgZm9yIG1hdHJpeCAiK25hbWUrIjogIit2KTt0WyJ1bmlmb3JtTWF0cml4IitnKyJmdiJdKHNbdV0sITEsZik7YnJlYWt9dGhyb3cgbmV3IGkoIiIsIlVua25vd24gdW5pZm9ybSBkYXRhIHR5cGUgZm9yICIrbmFtZSsiOiAiK3YpfWlmKChnPXYuY2hhckNvZGVBdCh2Lmxlbmd0aC0xKS00OCk8Mnx8Zz40KXRocm93IG5ldyBpKCIiLCJJbnZhbGlkIGRhdGEgdHlwZSIpO3N3aXRjaCh2LmNoYXJBdCgwKSl7Y2FzZSJiIjpjYXNlImkiOnRbInVuaWZvcm0iK2crIml2Il0oc1t1XSxmKTticmVhaztjYXNlInYiOnRbInVuaWZvcm0iK2crImZ2Il0oc1t1XSxmKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBpKCIiLCJVbnJlY29nbml6ZWQgZGF0YSB0eXBlIGZvciB2ZWN0b3IgIituYW1lKyI6ICIrdil9fX19fX1mdW5jdGlvbiBjKHQsZSxuKXtpZigib2JqZWN0Ij09dHlwZW9mIG4pe3ZhciBjPXUobik7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7Z2V0OmEoYyksc2V0OmwobiksZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITF9KX1lbHNlIHNbbl0/T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7Z2V0OihmPW4sZnVuY3Rpb24odCxlLHIpe3JldHVybiB0LmdldFVuaWZvcm0oZS5wcm9ncmFtLHJbZl0pfSksc2V0OmwobiksZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITF9KTp0W2VdPWZ1bmN0aW9uKHQpe3N3aXRjaCh0KXtjYXNlImJvb2wiOnJldHVybiExO2Nhc2UiaW50IjpjYXNlInNhbXBsZXIyRCI6Y2FzZSJzYW1wbGVyQ3ViZSI6Y2FzZSJmbG9hdCI6cmV0dXJuIDA7ZGVmYXVsdDp2YXIgZT10LmluZGV4T2YoInZlYyIpO2lmKDA8PWUmJmU8PTEmJnQubGVuZ3RoPT09NCtlKXtpZigocj10LmNoYXJDb2RlQXQodC5sZW5ndGgtMSktNDgpPDJ8fHI+NCl0aHJvdyBuZXcgaSgiIiwiSW52YWxpZCBkYXRhIHR5cGUiKTtyZXR1cm4iYiI9PT10LmNoYXJBdCgwKT9vKHIsITEpOm8ociwwKX1pZigwPT09dC5pbmRleE9mKCJtYXQiKSYmND09PXQubGVuZ3RoKXt2YXIgcjtpZigocj10LmNoYXJDb2RlQXQodC5sZW5ndGgtMSktNDgpPDJ8fHI+NCl0aHJvdyBuZXcgaSgiIiwiSW52YWxpZCB1bmlmb3JtIGRpbWVuc2lvbiB0eXBlIGZvciBtYXRyaXggIituYW1lKyI6ICIrdCk7cmV0dXJuIG8ocipyLDApfXRocm93IG5ldyBpKCIiLCJVbmtub3duIHVuaWZvcm0gZGF0YSB0eXBlIGZvciAiK25hbWUrIjogIit0KX19KHJbbl0udHlwZSk7dmFyIGZ9ZnVuY3Rpb24gdSh0KXt2YXIgZTtpZihBcnJheS5pc0FycmF5KHQpKXtlPW5ldyBBcnJheSh0Lmxlbmd0aCk7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDsrK3IpYyhlLHIsdFtyXSl9ZWxzZSBmb3IodmFyIG4gaW4gZT17fSx0KWMoZSxuLHRbbl0pO3JldHVybiBlfXZhciBmPW4ociwhMCk7cmV0dXJue2dldDphKHUoZikpLHNldDpsKGYpLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfX19LHsiLi9HTEVycm9yIjoxMzMsIi4vcmVmbGVjdCI6MTM2fV0sMTM2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj17fSxuPTA7bjx0Lmxlbmd0aDsrK24pZm9yKHZhciBpPXRbbl0ubmFtZS5zcGxpdCgiLiIpLGE9cixvPTA7bzxpLmxlbmd0aDsrK28pe3ZhciBzPWlbb10uc3BsaXQoIlsiKTtpZihzLmxlbmd0aD4xKXtzWzBdaW4gYXx8KGFbc1swXV09W10pLGE9YVtzWzBdXTtmb3IodmFyIGw9MTtsPHMubGVuZ3RoOysrbCl7dmFyIGM9cGFyc2VJbnQoc1tsXSk7bDxzLmxlbmd0aC0xfHxvPGkubGVuZ3RoLTE/KGMgaW4gYXx8KGw8cy5sZW5ndGgtMT9hW2NdPVtdOmFbY109e30pLGE9YVtjXSk6YVtjXT1lP246dFtuXS50eXBlfX1lbHNlIG88aS5sZW5ndGgtMT8oc1swXWluIGF8fChhW3NbMF1dPXt9KSxhPWFbc1swXV0pOmFbc1swXV09ZT9uOnRbbl0udHlwZX1yZXR1cm4gcn19LHt9XSwxMzc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ci51bmlmb3Jtcz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10LmdldFByb2dyYW1QYXJhbWV0ZXIoZSx0LkFDVElWRV9VTklGT1JNUyksbj1bXSxpPTA7aTxyOysraSl7dmFyIG89dC5nZXRBY3RpdmVVbmlmb3JtKGUsaSk7aWYobyl7dmFyIHM9YSh0LG8udHlwZSk7aWYoby5zaXplPjEpZm9yKHZhciBsPTA7bDxvLnNpemU7KytsKW4ucHVzaCh7bmFtZTpvLm5hbWUucmVwbGFjZSgiWzBdIiwiWyIrbCsiXSIpLHR5cGU6c30pO2Vsc2Ugbi5wdXNoKHtuYW1lOm8ubmFtZSx0eXBlOnN9KX19cmV0dXJuIG59LHIuYXR0cmlidXRlcz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10LmdldFByb2dyYW1QYXJhbWV0ZXIoZSx0LkFDVElWRV9BVFRSSUJVVEVTKSxuPVtdLGk9MDtpPHI7KytpKXt2YXIgbz10LmdldEFjdGl2ZUF0dHJpYihlLGkpO28mJm4ucHVzaCh7bmFtZTpvLm5hbWUsdHlwZTphKHQsby50eXBlKX0pfXJldHVybiBufTt2YXIgbj17RkxPQVQ6ImZsb2F0IixGTE9BVF9WRUMyOiJ2ZWMyIixGTE9BVF9WRUMzOiJ2ZWMzIixGTE9BVF9WRUM0OiJ2ZWM0IixJTlQ6ImludCIsSU5UX1ZFQzI6Iml2ZWMyIixJTlRfVkVDMzoiaXZlYzMiLElOVF9WRUM0OiJpdmVjNCIsQk9PTDoiYm9vbCIsQk9PTF9WRUMyOiJidmVjMiIsQk9PTF9WRUMzOiJidmVjMyIsQk9PTF9WRUM0OiJidmVjNCIsRkxPQVRfTUFUMjoibWF0MiIsRkxPQVRfTUFUMzoibWF0MyIsRkxPQVRfTUFUNDoibWF0NCIsU0FNUExFUl8yRDoic2FtcGxlcjJEIixTQU1QTEVSX0NVQkU6InNhbXBsZXJDdWJlIn0saT1udWxsO2Z1bmN0aW9uIGEodCxlKXtpZighaSl7dmFyIHI9T2JqZWN0LmtleXMobik7aT17fTtmb3IodmFyIGE9MDthPHIubGVuZ3RoOysrYSl7dmFyIG89clthXTtpW3Rbb11dPW5bb119fXJldHVybiBpW2VdfX0se31dLDEzODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLnNoYWRlcj1mdW5jdGlvbih0LGUscil7cmV0dXJuIHUodCkuZ2V0U2hhZGVyUmVmZXJlbmNlKGUscil9LHIucHJvZ3JhbT1mdW5jdGlvbih0LGUscixuLGkpe3JldHVybiB1KHQpLmdldFByb2dyYW0oZSxyLG4saSl9O3ZhciBuPXQoIi4vR0xFcnJvciIpLGk9dCgiZ2wtZm9ybWF0LWNvbXBpbGVyLWVycm9yIiksYT1uZXcoInVuZGVmaW5lZCI9PXR5cGVvZiBXZWFrTWFwP3QoIndlYWttYXAtc2hpbSIpOldlYWtNYXApLG89MDtmdW5jdGlvbiBzKHQsZSxyLG4saSxhLG8pe3RoaXMuaWQ9dCx0aGlzLnNyYz1lLHRoaXMudHlwZT1yLHRoaXMuc2hhZGVyPW4sdGhpcy5jb3VudD1hLHRoaXMucHJvZ3JhbXM9W10sdGhpcy5jYWNoZT1vfWZ1bmN0aW9uIGwodCl7dGhpcy5nbD10LHRoaXMuc2hhZGVycz1be30se31dLHRoaXMucHJvZ3JhbXM9e319cy5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe2lmKDA9PS0tdGhpcy5jb3VudCl7Zm9yKHZhciB0PXRoaXMuY2FjaGUsZT10LmdsLHI9dGhpcy5wcm9ncmFtcyxuPTAsaT1yLmxlbmd0aDtuPGk7KytuKXt2YXIgYT10LnByb2dyYW1zW3Jbbl1dO2EmJihkZWxldGUgdC5wcm9ncmFtc1tuXSxlLmRlbGV0ZVByb2dyYW0oYSkpfWUuZGVsZXRlU2hhZGVyKHRoaXMuc2hhZGVyKSxkZWxldGUgdC5zaGFkZXJzW3RoaXMudHlwZT09PWUuRlJBR01FTlRfU0hBREVSfDBdW3RoaXMuc3JjXX19O3ZhciBjPWwucHJvdG90eXBlO2Z1bmN0aW9uIHUodCl7dmFyIGU9YS5nZXQodCk7cmV0dXJuIGV8fChlPW5ldyBsKHQpLGEuc2V0KHQsZSkpLGV9Yy5nZXRTaGFkZXJSZWZlcmVuY2U9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmdsLGE9dGhpcy5zaGFkZXJzW3Q9PT1yLkZSQUdNRU5UX1NIQURFUnwwXSxsPWFbZV07aWYobCYmci5pc1NoYWRlcihsLnNoYWRlcikpbC5jb3VudCs9MTtlbHNle3ZhciBjPWZ1bmN0aW9uKHQsZSxyKXt2YXIgYT10LmNyZWF0ZVNoYWRlcihlKTtpZih0LnNoYWRlclNvdXJjZShhLHIpLHQuY29tcGlsZVNoYWRlcihhKSwhdC5nZXRTaGFkZXJQYXJhbWV0ZXIoYSx0LkNPTVBJTEVfU1RBVFVTKSl7dmFyIG89dC5nZXRTaGFkZXJJbmZvTG9nKGEpO3RyeXt2YXIgcz1pKG8scixlKX1jYXRjaCh0KXt0aHJvdyBjb25zb2xlLndhcm4oIkZhaWxlZCB0byBmb3JtYXQgY29tcGlsZXIgZXJyb3I6ICIrdCksbmV3IG4obywiRXJyb3IgY29tcGlsaW5nIHNoYWRlcjpcbiIrbyl9dGhyb3cgbmV3IG4obyxzLnNob3J0LHMubG9uZyl9cmV0dXJuIGF9KHIsdCxlKTtsPWFbZV09bmV3IHMobysrLGUsdCxjLFtdLDEsdGhpcyl9cmV0dXJuIGx9LGMuZ2V0UHJvZ3JhbT1mdW5jdGlvbih0LGUscixpKXt2YXIgYT1bdC5pZCxlLmlkLHIuam9pbigiOiIpLGkuam9pbigiOiIpXS5qb2luKCJAIiksbz10aGlzLnByb2dyYW1zW2FdO3JldHVybiBvJiZ0aGlzLmdsLmlzUHJvZ3JhbShvKXx8KHRoaXMucHJvZ3JhbXNbYV09bz1mdW5jdGlvbih0LGUscixpLGEpe3ZhciBvPXQuY3JlYXRlUHJvZ3JhbSgpO3QuYXR0YWNoU2hhZGVyKG8sZSksdC5hdHRhY2hTaGFkZXIobyxyKTtmb3IodmFyIHM9MDtzPGkubGVuZ3RoOysrcyl0LmJpbmRBdHRyaWJMb2NhdGlvbihvLGFbc10saVtzXSk7aWYodC5saW5rUHJvZ3JhbShvKSwhdC5nZXRQcm9ncmFtUGFyYW1ldGVyKG8sdC5MSU5LX1NUQVRVUykpe3ZhciBsPXQuZ2V0UHJvZ3JhbUluZm9Mb2cobyk7dGhyb3cgbmV3IG4obCwiRXJyb3IgbGlua2luZyBwcm9ncmFtOiAiK2wpfXJldHVybiBvfSh0aGlzLmdsLHQuc2hhZGVyLGUuc2hhZGVyLHIsaSksdC5wcm9ncmFtcy5wdXNoKGEpLGUucHJvZ3JhbXMucHVzaChhKSksb319LHsiLi9HTEVycm9yIjoxMzMsImdsLWZvcm1hdC1jb21waWxlci1lcnJvciI6ODcsIndlYWttYXAtc2hpbSI6MzE2fV0sMTM5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7dGhpcy5wbG90PXQsdGhpcy5lbmFibGU9WyEwLCEwLCExLCExXSx0aGlzLndpZHRoPVsxLDEsMSwxXSx0aGlzLmNvbG9yPVtbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMuY2VudGVyPVsxLzAsMS8wXX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1uZXcgbih0KTtyZXR1cm4gci51cGRhdGUoZSksdC5hZGRPdmVybGF5KHIpLHJ9O3ZhciBpPW4ucHJvdG90eXBlO2kudXBkYXRlPWZ1bmN0aW9uKHQpe3Q9dHx8e30sdGhpcy5lbmFibGU9KHQuZW5hYmxlfHxbITAsITAsITEsITFdKS5zbGljZSgpLHRoaXMud2lkdGg9KHQud2lkdGh8fFsxLDEsMSwxXSkuc2xpY2UoKSx0aGlzLmNvbG9yPSh0LmNvbG9yfHxbWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5zbGljZSgpfSkpLHRoaXMuY2VudGVyPSh0LmNlbnRlcnx8WzEvMCwxLzBdKS5zbGljZSgpLHRoaXMucGxvdC5zZXRPdmVybGF5RGlydHkoKX0saS5kcmF3PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lbmFibGUsZT10aGlzLndpZHRoLHI9dGhpcy5jb2xvcixuPXRoaXMuY2VudGVyLGk9dGhpcy5wbG90LGE9aS5saW5lLG89aS5kYXRhQm94LHM9aS52aWV3Qm94O2lmKGEuYmluZCgpLG9bMF08PW5bMF0mJm5bMF08PW9bMl0mJm9bMV08PW5bMV0mJm5bMV08PW9bM10pe3ZhciBsPXNbMF0rKG5bMF0tb1swXSkvKG9bMl0tb1swXSkqKHNbMl0tc1swXSksYz1zWzFdKyhuWzFdLW9bMV0pLyhvWzNdLW9bMV0pKihzWzNdLXNbMV0pO3RbMF0mJmEuZHJhd0xpbmUobCxjLHNbMF0sYyxlWzBdLHJbMF0pLHRbMV0mJmEuZHJhd0xpbmUobCxjLGwsc1sxXSxlWzFdLHJbMV0pLHRbMl0mJmEuZHJhd0xpbmUobCxjLHNbMl0sYyxlWzJdLHJbMl0pLHRbM10mJmEuZHJhd0xpbmUobCxjLGwsc1szXSxlWzNdLHJbM10pfX0saS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5wbG90LnJlbW92ZU92ZXJsYXkodGhpcyl9fSx7fV0sMTQwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImdsc2xpZnkiKSxpPXQoImdsLXNoYWRlciIpLGE9bihbInByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYXR0cmlidXRlIHZlYzMgcG9zaXRpb24sIGNvbG9yO1xuYXR0cmlidXRlIGZsb2F0IHdlaWdodDtcblxudW5pZm9ybSBtYXQ0IG1vZGVsLCB2aWV3LCBwcm9qZWN0aW9uO1xudW5pZm9ybSB2ZWMzIGNvb3JkaW5hdGVzWzNdO1xudW5pZm9ybSB2ZWM0IGNvbG9yc1szXTtcbnVuaWZvcm0gdmVjMiBzY3JlZW5TaGFwZTtcbnVuaWZvcm0gZmxvYXQgbGluZVdpZHRoO1xuXG52YXJ5aW5nIHZlYzQgZnJhZ0NvbG9yO1xuXG52b2lkIG1haW4oKSB7XG4gIHZlYzMgdmVydGV4UG9zaXRpb24gPSBtaXgoY29vcmRpbmF0ZXNbMF0sXG4gICAgbWl4KGNvb3JkaW5hdGVzWzJdLCBjb29yZGluYXRlc1sxXSwgMC41ICogKHBvc2l0aW9uICsgMS4wKSksIGFicyhwb3NpdGlvbikpO1xuXG4gIHZlYzQgY2xpcFBvcyA9IHByb2plY3Rpb24gKiB2aWV3ICogbW9kZWwgKiB2ZWM0KHZlcnRleFBvc2l0aW9uLCAxLjApO1xuICB2ZWMyIGNsaXBPZmZzZXQgPSAocHJvamVjdGlvbiAqIHZpZXcgKiBtb2RlbCAqIHZlYzQoY29sb3IsIDAuMCkpLnh5O1xuICB2ZWMyIGRlbHRhID0gd2VpZ2h0ICogY2xpcE9mZnNldCAqIHNjcmVlblNoYXBlO1xuICB2ZWMyIGxpbmVPZmZzZXQgPSBub3JtYWxpemUodmVjMihkZWx0YS55LCAtZGVsdGEueCkpIC8gc2NyZWVuU2hhcGU7XG5cbiAgZ2xfUG9zaXRpb24gICA9IHZlYzQoY2xpcFBvcy54eSArIGNsaXBQb3MudyAqIDAuNSAqIGxpbmVXaWR0aCAqIGxpbmVPZmZzZXQsIGNsaXBQb3MueiwgY2xpcFBvcy53KTtcbiAgZnJhZ0NvbG9yICAgICA9IGNvbG9yLnggKiBjb2xvcnNbMF0gKyBjb2xvci55ICogY29sb3JzWzFdICsgY29sb3IueiAqIGNvbG9yc1syXTtcbn1cbiJdKSxvPW4oWyJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbnZhcnlpbmcgdmVjNCBmcmFnQ29sb3I7XG5cbnZvaWQgbWFpbigpIHtcbiAgZ2xfRnJhZ0NvbG9yID0gZnJhZ0NvbG9yO1xufSJdKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGkodCxhLG8sbnVsbCxbe25hbWU6InBvc2l0aW9uIix0eXBlOiJ2ZWMzIn0se25hbWU6ImNvbG9yIix0eXBlOiJ2ZWMzIn0se25hbWU6IndlaWdodCIsdHlwZToiZmxvYXQifV0pfX0seyJnbC1zaGFkZXIiOjEzMixnbHNsaWZ5OjIzMX1dLDE0MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJnbC1idWZmZXIiKSxpPXQoImdsLXZhbyIpLGE9dCgiLi9zaGFkZXJzL2luZGV4Iik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9W107ZnVuY3Rpb24gbyh0LGUsbixpLGEsbyl7dmFyIHM9W3QsZSxuLDAsMCwwLDFdO3NbaSszXT0xLHNbaV09YSxyLnB1c2guYXBwbHkocixzKSxzWzZdPS0xLHIucHVzaC5hcHBseShyLHMpLHNbaV09byxyLnB1c2guYXBwbHkocixzKSxyLnB1c2guYXBwbHkocixzKSxzWzZdPTEsci5wdXNoLmFwcGx5KHIscyksc1tpXT1hLHIucHVzaC5hcHBseShyLHMpfW8oMCwwLDAsMCwwLDEpLG8oMCwwLDAsMSwwLDEpLG8oMCwwLDAsMiwwLDEpLG8oMSwwLDAsMSwtMSwxKSxvKDEsMCwwLDIsLTEsMSksbygwLDEsMCwwLC0xLDEpLG8oMCwxLDAsMiwtMSwxKSxvKDAsMCwxLDAsLTEsMSksbygwLDAsMSwxLC0xLDEpO3ZhciBsPW4odCxyKSxjPWkodCxbe3R5cGU6dC5GTE9BVCxidWZmZXI6bCxzaXplOjMsb2Zmc2V0OjAsc3RyaWRlOjI4fSx7dHlwZTp0LkZMT0FULGJ1ZmZlcjpsLHNpemU6MyxvZmZzZXQ6MTIsc3RyaWRlOjI4fSx7dHlwZTp0LkZMT0FULGJ1ZmZlcjpsLHNpemU6MSxvZmZzZXQ6MjQsc3RyaWRlOjI4fV0pLHU9YSh0KTt1LmF0dHJpYnV0ZXMucG9zaXRpb24ubG9jYXRpb249MCx1LmF0dHJpYnV0ZXMuY29sb3IubG9jYXRpb249MSx1LmF0dHJpYnV0ZXMud2VpZ2h0LmxvY2F0aW9uPTI7dmFyIGY9bmV3IHModCxsLGMsdSk7cmV0dXJuIGYudXBkYXRlKGUpLGZ9O3ZhciBvPVsxLDAsMCwwLDAsMSwwLDAsMCwwLDEsMCwwLDAsMCwxXTtmdW5jdGlvbiBzKHQsZSxyLG4pe3RoaXMuZ2w9dCx0aGlzLmJ1ZmZlcj1lLHRoaXMudmFvPXIsdGhpcy5zaGFkZXI9bix0aGlzLnBpeGVsUmF0aW89MSx0aGlzLmJvdW5kcz1bWy0xZTMsLTFlMywtMWUzXSxbMWUzLDFlMywxZTNdXSx0aGlzLnBvc2l0aW9uPVswLDAsMF0sdGhpcy5saW5lV2lkdGg9WzIsMiwyXSx0aGlzLmNvbG9ycz1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMuZW5hYmxlZD1bITAsITAsITBdLHRoaXMuZHJhd1NpZGVzPVshMCwhMCwhMF0sdGhpcy5heGVzPW51bGx9dmFyIGw9cy5wcm90b3R5cGUsYz1bMCwwLDBdLHU9WzAsMCwwXSxmPVswLDBdO2wuaXNUcmFuc3BhcmVudD1mdW5jdGlvbigpe3JldHVybiExfSxsLmRyYXdUcmFuc3BhcmVudD1mdW5jdGlvbih0KXt9LGwuZHJhdz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmdsLHI9dGhpcy52YW8sbj10aGlzLnNoYWRlcjtyLmJpbmQoKSxuLmJpbmQoKTt2YXIgaSxhPXQubW9kZWx8fG8scz10LnZpZXd8fG8sbD10LnByb2plY3Rpb258fG87dGhpcy5heGVzJiYoaT10aGlzLmF4ZXMubGFzdEN1YmVQcm9wcy5heGlzKTtmb3IodmFyIGg9YyxwPXUsZD0wO2Q8MzsrK2QpaSYmaVtkXTwwPyhoW2RdPXRoaXMuYm91bmRzWzBdW2RdLHBbZF09dGhpcy5ib3VuZHNbMV1bZF0pOihoW2RdPXRoaXMuYm91bmRzWzFdW2RdLHBbZF09dGhpcy5ib3VuZHNbMF1bZF0pO2ZbMF09ZS5kcmF3aW5nQnVmZmVyV2lkdGgsZlsxXT1lLmRyYXdpbmdCdWZmZXJIZWlnaHQsbi51bmlmb3Jtcy5tb2RlbD1hLG4udW5pZm9ybXMudmlldz1zLG4udW5pZm9ybXMucHJvamVjdGlvbj1sLG4udW5pZm9ybXMuY29vcmRpbmF0ZXM9W3RoaXMucG9zaXRpb24saCxwXSxuLnVuaWZvcm1zLmNvbG9ycz10aGlzLmNvbG9ycyxuLnVuaWZvcm1zLnNjcmVlblNoYXBlPWY7Zm9yKGQ9MDtkPDM7KytkKW4udW5pZm9ybXMubGluZVdpZHRoPXRoaXMubGluZVdpZHRoW2RdKnRoaXMucGl4ZWxSYXRpbyx0aGlzLmVuYWJsZWRbZF0mJihyLmRyYXcoZS5UUklBTkdMRVMsNiw2KmQpLHRoaXMuZHJhd1NpZGVzW2RdJiZyLmRyYXcoZS5UUklBTkdMRVMsMTIsMTgrMTIqZCkpO3IudW5iaW5kKCl9LGwudXBkYXRlPWZ1bmN0aW9uKHQpe3QmJigiYm91bmRzImluIHQmJih0aGlzLmJvdW5kcz10LmJvdW5kcyksInBvc2l0aW9uImluIHQmJih0aGlzLnBvc2l0aW9uPXQucG9zaXRpb24pLCJsaW5lV2lkdGgiaW4gdCYmKHRoaXMubGluZVdpZHRoPXQubGluZVdpZHRoKSwiY29sb3JzImluIHQmJih0aGlzLmNvbG9ycz10LmNvbG9ycyksImVuYWJsZWQiaW4gdCYmKHRoaXMuZW5hYmxlZD10LmVuYWJsZWQpLCJkcmF3U2lkZXMiaW4gdCYmKHRoaXMuZHJhd1NpZGVzPXQuZHJhd1NpZGVzKSl9LGwuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMudmFvLmRpc3Bvc2UoKSx0aGlzLmJ1ZmZlci5kaXNwb3NlKCksdGhpcy5zaGFkZXIuZGlzcG9zZSgpfX0seyIuL3NoYWRlcnMvaW5kZXgiOjE0MCwiZ2wtYnVmZmVyIjo3OCwiZ2wtdmFvIjoxNTB9XSwxNDI6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCJnbHNsaWZ5IiksaT1uKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuXG5wcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG52ZWMzIGdldE9ydGhvZ29uYWxWZWN0b3IodmVjMyB2KSB7XG4gIC8vIFJldHVybiB1cC12ZWN0b3IgZm9yIG9ubHkteiB2ZWN0b3IuXG4gIC8vIFJldHVybiBheCArIGJ5ICsgY3ogPSAwLCBhIHBvaW50IHRoYXQgbGllcyBvbiB0aGUgcGxhbmUgdGhhdCBoYXMgdiBhcyBhIG5vcm1hbCBhbmQgdGhhdCBpc24ndCAoMCwwLDApLlxuICAvLyBGcm9tIHRoZSBhYm92ZSBpZi1zdGF0ZW1lbnQgd2UgaGF2ZSB8fGF8fCA+IDAgIFUgIHx8Ynx8ID4gMC5cbiAgLy8gQXNzaWduIHogPSAwLCB4ID0gLWIsIHkgPSBhOlxuICAvLyBhKi1iICsgYiphICsgYyowID0gLWJhICsgYmEgKyAwID0gMFxuICBpZiAodi54KnYueCA+IHYueip2LnogfHwgdi55KnYueSA+IHYueip2LnopIHtcbiAgICByZXR1cm4gbm9ybWFsaXplKHZlYzMoLXYueSwgdi54LCAwLjApKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbm9ybWFsaXplKHZlYzMoMC4wLCB2LnosIC12LnkpKTtcbiAgfVxufVxuXG4vLyBDYWxjdWxhdGUgdGhlIHR1YmUgdmVydGV4IGFuZCBub3JtYWwgYXQgdGhlIGdpdmVuIGluZGV4LlxuLy9cbi8vIFRoZSByZXR1cm5lZCB2ZXJ0ZXggaXMgZm9yIGEgdHViZSByaW5nIHdpdGggaXRzIGNlbnRlciBhdCBvcmlnaW4sIHJhZGl1cyBvZiBsZW5ndGgoZCksIHBvaW50aW5nIGluIHRoZSBkaXJlY3Rpb24gb2YgZC5cbi8vXG4vLyBFYWNoIHR1YmUgc2VnbWVudCBpcyBtYWRlIHVwIG9mIGEgcmluZyBvZiB2ZXJ0aWNlcy5cbi8vIFRoZXNlIHZlcnRpY2VzIGFyZSB1c2VkIHRvIG1ha2UgdXAgdGhlIHRyaWFuZ2xlcyBvZiB0aGUgdHViZSBieSBjb25uZWN0aW5nIHRoZW0gdG9nZXRoZXIgaW4gdGhlIHZlcnRleCBhcnJheS5cbi8vIFRoZSBpbmRleGVzIG9mIHR1YmUgc2VnbWVudHMgcnVuIGZyb20gMCB0byA4LlxuLy9cbnZlYzMgZ2V0VHViZVBvc2l0aW9uKHZlYzMgZCwgZmxvYXQgaW5kZXgsIG91dCB2ZWMzIG5vcm1hbCkge1xuICBmbG9hdCBzZWdtZW50Q291bnQgPSA4LjA7XG5cbiAgZmxvYXQgYW5nbGUgPSAyLjAgKiAzLjE0MTU5ICogKGluZGV4IC8gc2VnbWVudENvdW50KTtcblxuICB2ZWMzIHUgPSBnZXRPcnRob2dvbmFsVmVjdG9yKGQpO1xuICB2ZWMzIHYgPSBub3JtYWxpemUoY3Jvc3ModSwgZCkpO1xuXG4gIHZlYzMgeCA9IHUgKiBjb3MoYW5nbGUpICogbGVuZ3RoKGQpO1xuICB2ZWMzIHkgPSB2ICogc2luKGFuZ2xlKSAqIGxlbmd0aChkKTtcbiAgdmVjMyB2MyA9IHggKyB5O1xuXG4gIG5vcm1hbCA9IG5vcm1hbGl6ZSh2Myk7XG5cbiAgcmV0dXJuIHYzO1xufVxuXG5hdHRyaWJ1dGUgdmVjNCB2ZWN0b3I7XG5hdHRyaWJ1dGUgdmVjNCBjb2xvciwgcG9zaXRpb247XG5hdHRyaWJ1dGUgdmVjMiB1djtcblxudW5pZm9ybSBmbG9hdCB2ZWN0b3JTY2FsZSwgdHViZVNjYWxlO1xudW5pZm9ybSBtYXQ0IG1vZGVsLCB2aWV3LCBwcm9qZWN0aW9uLCBpbnZlcnNlTW9kZWw7XG51bmlmb3JtIHZlYzMgZXllUG9zaXRpb24sIGxpZ2h0UG9zaXRpb247XG5cbnZhcnlpbmcgdmVjMyBmX25vcm1hbCwgZl9saWdodERpcmVjdGlvbiwgZl9leWVEaXJlY3Rpb24sIGZfZGF0YSwgZl9wb3NpdGlvbjtcbnZhcnlpbmcgdmVjNCBmX2NvbG9yO1xudmFyeWluZyB2ZWMyIGZfdXY7XG5cbnZvaWQgbWFpbigpIHtcbiAgLy8gU2NhbGUgdGhlIHZlY3RvciBtYWduaXR1ZGUgdG8gc3RheSBjb25zdGFudCB3aXRoXG4gIC8vIG1vZGVsICYgdmlldyBjaGFuZ2VzLlxuICB2ZWMzIG5vcm1hbDtcbiAgdmVjMyBYWVogPSBnZXRUdWJlUG9zaXRpb24obWF0Myhtb2RlbCkgKiAodHViZVNjYWxlICogdmVjdG9yLncgKiBub3JtYWxpemUodmVjdG9yLnh5eikpLCBwb3NpdGlvbi53LCBub3JtYWwpO1xuICB2ZWM0IHR1YmVQb3NpdGlvbiA9IG1vZGVsICogdmVjNChwb3NpdGlvbi54eXosIDEuMCkgKyB2ZWM0KFhZWiwgMC4wKTtcblxuICAvL0xpZ2h0aW5nIGdlb21ldHJ5IHBhcmFtZXRlcnNcbiAgdmVjNCBjYW1lcmFDb29yZGluYXRlID0gdmlldyAqIHR1YmVQb3NpdGlvbjtcbiAgY2FtZXJhQ29vcmRpbmF0ZS54eXogLz0gY2FtZXJhQ29vcmRpbmF0ZS53O1xuICBmX2xpZ2h0RGlyZWN0aW9uID0gbGlnaHRQb3NpdGlvbiAtIGNhbWVyYUNvb3JkaW5hdGUueHl6O1xuICBmX2V5ZURpcmVjdGlvbiAgID0gZXllUG9zaXRpb24gLSBjYW1lcmFDb29yZGluYXRlLnh5ejtcbiAgZl9ub3JtYWwgPSBub3JtYWxpemUoKHZlYzQobm9ybWFsLCAwLjApICogaW52ZXJzZU1vZGVsKS54eXopO1xuXG4gIC8vIHZlYzQgbV9wb3NpdGlvbiAgPSBtb2RlbCAqIHZlYzQodHViZVBvc2l0aW9uLCAxLjApO1xuICB2ZWM0IHRfcG9zaXRpb24gID0gdmlldyAqIHR1YmVQb3NpdGlvbjtcbiAgZ2xfUG9zaXRpb24gICAgICA9IHByb2plY3Rpb24gKiB0X3Bvc2l0aW9uO1xuXG4gIGZfY29sb3IgICAgICAgICAgPSBjb2xvcjtcbiAgZl9kYXRhICAgICAgICAgICA9IHR1YmVQb3NpdGlvbi54eXo7XG4gIGZfcG9zaXRpb24gICAgICAgPSBwb3NpdGlvbi54eXo7XG4gIGZfdXYgICAgICAgICAgICAgPSB1djtcbn1cbiJdKSxhPW4oWyIjZXh0ZW5zaW9uIEdMX09FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyA6IGVuYWJsZVxuXG5wcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5mbG9hdCBiZWNrbWFubkRpc3RyaWJ1dGlvbihmbG9hdCB4LCBmbG9hdCByb3VnaG5lc3MpIHtcbiAgZmxvYXQgTmRvdEggPSBtYXgoeCwgMC4wMDAxKTtcbiAgZmxvYXQgY29zMkFscGhhID0gTmRvdEggKiBOZG90SDtcbiAgZmxvYXQgdGFuMkFscGhhID0gKGNvczJBbHBoYSAtIDEuMCkgLyBjb3MyQWxwaGE7XG4gIGZsb2F0IHJvdWdobmVzczIgPSByb3VnaG5lc3MgKiByb3VnaG5lc3M7XG4gIGZsb2F0IGRlbm9tID0gMy4xNDE1OTI2NTM1ODk3OTMgKiByb3VnaG5lc3MyICogY29zMkFscGhhICogY29zMkFscGhhO1xuICByZXR1cm4gZXhwKHRhbjJBbHBoYSAvIHJvdWdobmVzczIpIC8gZGVub207XG59XG5cbmZsb2F0IGNvb2tUb3JyYW5jZVNwZWN1bGFyKFxuICB2ZWMzIGxpZ2h0RGlyZWN0aW9uLFxuICB2ZWMzIHZpZXdEaXJlY3Rpb24sXG4gIHZlYzMgc3VyZmFjZU5vcm1hbCxcbiAgZmxvYXQgcm91Z2huZXNzLFxuICBmbG9hdCBmcmVzbmVsKSB7XG5cbiAgZmxvYXQgVmRvdE4gPSBtYXgoZG90KHZpZXdEaXJlY3Rpb24sIHN1cmZhY2VOb3JtYWwpLCAwLjApO1xuICBmbG9hdCBMZG90TiA9IG1heChkb3QobGlnaHREaXJlY3Rpb24sIHN1cmZhY2VOb3JtYWwpLCAwLjApO1xuXG4gIC8vSGFsZiBhbmdsZSB2ZWN0b3JcbiAgdmVjMyBIID0gbm9ybWFsaXplKGxpZ2h0RGlyZWN0aW9uICsgdmlld0RpcmVjdGlvbik7XG5cbiAgLy9HZW9tZXRyaWMgdGVybVxuICBmbG9hdCBOZG90SCA9IG1heChkb3Qoc3VyZmFjZU5vcm1hbCwgSCksIDAuMCk7XG4gIGZsb2F0IFZkb3RIID0gbWF4KGRvdCh2aWV3RGlyZWN0aW9uLCBIKSwgMC4wMDAwMDEpO1xuICBmbG9hdCBMZG90SCA9IG1heChkb3QobGlnaHREaXJlY3Rpb24sIEgpLCAwLjAwMDAwMSk7XG4gIGZsb2F0IEcxID0gKDIuMCAqIE5kb3RIICogVmRvdE4pIC8gVmRvdEg7XG4gIGZsb2F0IEcyID0gKDIuMCAqIE5kb3RIICogTGRvdE4pIC8gTGRvdEg7XG4gIGZsb2F0IEcgPSBtaW4oMS4wLCBtaW4oRzEsIEcyKSk7XG4gIFxuICAvL0Rpc3RyaWJ1dGlvbiB0ZXJtXG4gIGZsb2F0IEQgPSBiZWNrbWFubkRpc3RyaWJ1dGlvbihOZG90SCwgcm91Z2huZXNzKTtcblxuICAvL0ZyZXNuZWwgdGVybVxuICBmbG9hdCBGID0gcG93KDEuMCAtIFZkb3ROLCBmcmVzbmVsKTtcblxuICAvL011bHRpcGx5IHRlcm1zIGFuZCBkb25lXG4gIHJldHVybiAgRyAqIEYgKiBEIC8gbWF4KDMuMTQxNTkyNjUgKiBWZG90TiwgMC4wMDAwMDEpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UoZmxvYXQgYSwgZmxvYXQgYiwgZmxvYXQgcCkge1xuICByZXR1cm4gKChwID4gbWF4KGEsIGIpKSB8fCBcbiAgICAgICAgICAocCA8IG1pbihhLCBiKSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMiBhLCB2ZWMyIGIsIHZlYzIgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzMgYSwgdmVjMyBiLCB2ZWMzIHApIHtcbiAgcmV0dXJuIChvdXRPZlJhbmdlKGEueCwgYi54LCBwLngpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnksIGIueSwgcC55KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS56LCBiLnosIHAueikpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjNCBhLCB2ZWM0IGIsIHZlYzQgcCkge1xuICByZXR1cm4gb3V0T2ZSYW5nZShhLnh5eiwgYi54eXosIHAueHl6KTtcbn1cblxudW5pZm9ybSB2ZWMzIGNsaXBCb3VuZHNbMl07XG51bmlmb3JtIGZsb2F0IHJvdWdobmVzcywgZnJlc25lbCwga2FtYmllbnQsIGtkaWZmdXNlLCBrc3BlY3VsYXIsIG9wYWNpdHk7XG51bmlmb3JtIHNhbXBsZXIyRCB0ZXh0dXJlO1xuXG52YXJ5aW5nIHZlYzMgZl9ub3JtYWwsIGZfbGlnaHREaXJlY3Rpb24sIGZfZXllRGlyZWN0aW9uLCBmX2RhdGEsIGZfcG9zaXRpb247XG52YXJ5aW5nIHZlYzQgZl9jb2xvcjtcbnZhcnlpbmcgdmVjMiBmX3V2O1xuXG52b2lkIG1haW4oKSB7XG4gIGlmIChvdXRPZlJhbmdlKGNsaXBCb3VuZHNbMF0sIGNsaXBCb3VuZHNbMV0sIGZfcG9zaXRpb24pKSBkaXNjYXJkO1xuICB2ZWMzIE4gPSBub3JtYWxpemUoZl9ub3JtYWwpO1xuICB2ZWMzIEwgPSBub3JtYWxpemUoZl9saWdodERpcmVjdGlvbik7XG4gIHZlYzMgViA9IG5vcm1hbGl6ZShmX2V5ZURpcmVjdGlvbik7XG5cbiAgaWYoZ2xfRnJvbnRGYWNpbmcpIHtcbiAgICBOID0gLU47XG4gIH1cblxuICBmbG9hdCBzcGVjdWxhciA9IG1pbigxLjAsIG1heCgwLjAsIGNvb2tUb3JyYW5jZVNwZWN1bGFyKEwsIFYsIE4sIHJvdWdobmVzcywgZnJlc25lbCkpKTtcbiAgZmxvYXQgZGlmZnVzZSAgPSBtaW4oa2FtYmllbnQgKyBrZGlmZnVzZSAqIG1heChkb3QoTiwgTCksIDAuMCksIDEuMCk7XG5cbiAgdmVjNCBzdXJmYWNlQ29sb3IgPSBmX2NvbG9yICogdGV4dHVyZTJEKHRleHR1cmUsIGZfdXYpO1xuICB2ZWM0IGxpdENvbG9yID0gc3VyZmFjZUNvbG9yLmEgKiB2ZWM0KGRpZmZ1c2UgKiBzdXJmYWNlQ29sb3IucmdiICsga3NwZWN1bGFyICogdmVjMygxLDEsMSkgKiBzcGVjdWxhciwgIDEuMCk7XG5cbiAgZ2xfRnJhZ0NvbG9yID0gbGl0Q29sb3IgKiBvcGFjaXR5O1xufVxuIl0pLG89bihbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcblxucHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxudmVjMyBnZXRPcnRob2dvbmFsVmVjdG9yKHZlYzMgdikge1xuICAvLyBSZXR1cm4gdXAtdmVjdG9yIGZvciBvbmx5LXogdmVjdG9yLlxuICAvLyBSZXR1cm4gYXggKyBieSArIGN6ID0gMCwgYSBwb2ludCB0aGF0IGxpZXMgb24gdGhlIHBsYW5lIHRoYXQgaGFzIHYgYXMgYSBub3JtYWwgYW5kIHRoYXQgaXNuJ3QgKDAsMCwwKS5cbiAgLy8gRnJvbSB0aGUgYWJvdmUgaWYtc3RhdGVtZW50IHdlIGhhdmUgfHxhfHwgPiAwICBVICB8fGJ8fCA+IDAuXG4gIC8vIEFzc2lnbiB6ID0gMCwgeCA9IC1iLCB5ID0gYTpcbiAgLy8gYSotYiArIGIqYSArIGMqMCA9IC1iYSArIGJhICsgMCA9IDBcbiAgaWYgKHYueCp2LnggPiB2Lnoqdi56IHx8IHYueSp2LnkgPiB2Lnoqdi56KSB7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZSh2ZWMzKC12LnksIHYueCwgMC4wKSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZSh2ZWMzKDAuMCwgdi56LCAtdi55KSk7XG4gIH1cbn1cblxuLy8gQ2FsY3VsYXRlIHRoZSB0dWJlIHZlcnRleCBhbmQgbm9ybWFsIGF0IHRoZSBnaXZlbiBpbmRleC5cbi8vXG4vLyBUaGUgcmV0dXJuZWQgdmVydGV4IGlzIGZvciBhIHR1YmUgcmluZyB3aXRoIGl0cyBjZW50ZXIgYXQgb3JpZ2luLCByYWRpdXMgb2YgbGVuZ3RoKGQpLCBwb2ludGluZyBpbiB0aGUgZGlyZWN0aW9uIG9mIGQuXG4vL1xuLy8gRWFjaCB0dWJlIHNlZ21lbnQgaXMgbWFkZSB1cCBvZiBhIHJpbmcgb2YgdmVydGljZXMuXG4vLyBUaGVzZSB2ZXJ0aWNlcyBhcmUgdXNlZCB0byBtYWtlIHVwIHRoZSB0cmlhbmdsZXMgb2YgdGhlIHR1YmUgYnkgY29ubmVjdGluZyB0aGVtIHRvZ2V0aGVyIGluIHRoZSB2ZXJ0ZXggYXJyYXkuXG4vLyBUaGUgaW5kZXhlcyBvZiB0dWJlIHNlZ21lbnRzIHJ1biBmcm9tIDAgdG8gOC5cbi8vXG52ZWMzIGdldFR1YmVQb3NpdGlvbih2ZWMzIGQsIGZsb2F0IGluZGV4LCBvdXQgdmVjMyBub3JtYWwpIHtcbiAgZmxvYXQgc2VnbWVudENvdW50ID0gOC4wO1xuXG4gIGZsb2F0IGFuZ2xlID0gMi4wICogMy4xNDE1OSAqIChpbmRleCAvIHNlZ21lbnRDb3VudCk7XG5cbiAgdmVjMyB1ID0gZ2V0T3J0aG9nb25hbFZlY3RvcihkKTtcbiAgdmVjMyB2ID0gbm9ybWFsaXplKGNyb3NzKHUsIGQpKTtcblxuICB2ZWMzIHggPSB1ICogY29zKGFuZ2xlKSAqIGxlbmd0aChkKTtcbiAgdmVjMyB5ID0gdiAqIHNpbihhbmdsZSkgKiBsZW5ndGgoZCk7XG4gIHZlYzMgdjMgPSB4ICsgeTtcblxuICBub3JtYWwgPSBub3JtYWxpemUodjMpO1xuXG4gIHJldHVybiB2Mztcbn1cblxuYXR0cmlidXRlIHZlYzQgdmVjdG9yO1xuYXR0cmlidXRlIHZlYzQgcG9zaXRpb247XG5hdHRyaWJ1dGUgdmVjNCBpZDtcblxudW5pZm9ybSBtYXQ0IG1vZGVsLCB2aWV3LCBwcm9qZWN0aW9uO1xudW5pZm9ybSBmbG9hdCB0dWJlU2NhbGU7XG5cbnZhcnlpbmcgdmVjMyBmX3Bvc2l0aW9uO1xudmFyeWluZyB2ZWM0IGZfaWQ7XG5cbnZvaWQgbWFpbigpIHtcbiAgdmVjMyBub3JtYWw7XG4gIHZlYzMgWFlaID0gZ2V0VHViZVBvc2l0aW9uKG1hdDMobW9kZWwpICogKHR1YmVTY2FsZSAqIHZlY3Rvci53ICogbm9ybWFsaXplKHZlY3Rvci54eXopKSwgcG9zaXRpb24udywgbm9ybWFsKTtcbiAgdmVjNCB0dWJlUG9zaXRpb24gPSBtb2RlbCAqIHZlYzQocG9zaXRpb24ueHl6LCAxLjApICsgdmVjNChYWVosIDAuMCk7XG5cbiAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uICogdmlldyAqIHR1YmVQb3NpdGlvbjtcbiAgZl9pZCAgICAgICAgPSBpZDtcbiAgZl9wb3NpdGlvbiAgPSBwb3NpdGlvbi54eXo7XG59XG4iXSkscz1uKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYm9vbCBvdXRPZlJhbmdlKGZsb2F0IGEsIGZsb2F0IGIsIGZsb2F0IHApIHtcbiAgcmV0dXJuICgocCA+IG1heChhLCBiKSkgfHwgXG4gICAgICAgICAgKHAgPCBtaW4oYSwgYikpKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzIgYSwgdmVjMiBiLCB2ZWMyIHApIHtcbiAgcmV0dXJuIChvdXRPZlJhbmdlKGEueCwgYi54LCBwLngpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnksIGIueSwgcC55KSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWMzIGEsIHZlYzMgYiwgdmVjMyBwKSB7XG4gIHJldHVybiAob3V0T2ZSYW5nZShhLngsIGIueCwgcC54KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS55LCBiLnksIHAueSkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueiwgYi56LCBwLnopKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzQgYSwgdmVjNCBiLCB2ZWM0IHApIHtcbiAgcmV0dXJuIG91dE9mUmFuZ2UoYS54eXosIGIueHl6LCBwLnh5eik7XG59XG5cbnVuaWZvcm0gdmVjMyAgY2xpcEJvdW5kc1syXTtcbnVuaWZvcm0gZmxvYXQgcGlja0lkO1xuXG52YXJ5aW5nIHZlYzMgZl9wb3NpdGlvbjtcbnZhcnlpbmcgdmVjNCBmX2lkO1xuXG52b2lkIG1haW4oKSB7XG4gIGlmIChvdXRPZlJhbmdlKGNsaXBCb3VuZHNbMF0sIGNsaXBCb3VuZHNbMV0sIGZfcG9zaXRpb24pKSBkaXNjYXJkO1xuXG4gIGdsX0ZyYWdDb2xvciA9IHZlYzQocGlja0lkLCBmX2lkLnh5eik7XG59Il0pO3IubWVzaFNoYWRlcj17dmVydGV4OmksZnJhZ21lbnQ6YSxhdHRyaWJ1dGVzOlt7bmFtZToicG9zaXRpb24iLHR5cGU6InZlYzQifSx7bmFtZToiY29sb3IiLHR5cGU6InZlYzQifSx7bmFtZToidXYiLHR5cGU6InZlYzIifSx7bmFtZToidmVjdG9yIix0eXBlOiJ2ZWM0In1dfSxyLnBpY2tTaGFkZXI9e3ZlcnRleDpvLGZyYWdtZW50OnMsYXR0cmlidXRlczpbe25hbWU6InBvc2l0aW9uIix0eXBlOiJ2ZWM0In0se25hbWU6ImlkIix0eXBlOiJ2ZWM0In0se25hbWU6InZlY3RvciIsdHlwZToidmVjNCJ9XX19LHtnbHNsaWZ5OjIzMX1dLDE0MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJnbC12ZWMzIiksaT10KCJnbC12ZWM0IiksYT1bInh5eiIsInh6eSIsInl4eiIsInl6eCIsInp4eSIsInp5eCJdLG89ZnVuY3Rpb24odCxlLHIsYSl7Zm9yKHZhciBvPTAscz0wO3M8dC5sZW5ndGg7cysrKWZvcih2YXIgbD10W3NdLnZlbG9jaXRpZXMsYz0wO2M8bC5sZW5ndGg7YysrKW89TWF0aC5tYXgobyxuLmxlbmd0aChsW2NdKSk7dmFyIHU9dC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbih0LGUscixhKXtmb3IodmFyIG89dC5wb2ludHMscz10LnZlbG9jaXRpZXMsbD10LmRpdmVyZ2VuY2VzLGM9W10sdT1bXSxmPVtdLGg9W10scD1bXSxkPVtdLG09MCxnPTAsdj1pLmNyZWF0ZSgpLHk9aS5jcmVhdGUoKSx4PTA7eDxvLmxlbmd0aDt4Kyspe3ZhciBiPW9beF0sXz1zW3hdLHc9bFt4XTswPT09ZSYmKHc9LjA1KnIpLGc9bi5sZW5ndGgoXykvYSx2PWkuY3JlYXRlKCksbi5jb3B5KHYsXyksdlszXT13O2Zvcih2YXIgVD0wO1Q8ODtUKyspcFtUXT1bYlswXSxiWzFdLGJbMl0sVF07aWYoaC5sZW5ndGg+MClmb3IoVD0wO1Q8ODtUKyspe3ZhciBrPShUKzEpJTg7Yy5wdXNoKGhbVF0scFtUXSxwW2tdLHBba10saFtrXSxoW1RdKSxmLnB1c2goeSx2LHYsdix5LHkpLGQucHVzaChtLGcsZyxnLG0sbSk7dmFyIEE9Yy5sZW5ndGg7dS5wdXNoKFtBLTYsQS01LEEtNF0sW0EtMyxBLTIsQS0xXSl9dmFyIE09aDtoPXAscD1NO3ZhciBTPXk7eT12LHY9Uzt2YXIgRT1tO209ZyxnPUV9cmV0dXJue3Bvc2l0aW9uczpjLGNlbGxzOnUsdmVjdG9yczpmLHZlcnRleEludGVuc2l0eTpkfX0odCxyLGEsbyl9KSksZj1bXSxoPVtdLHA9W10sZD1bXTtmb3Iocz0wO3M8dS5sZW5ndGg7cysrKXt2YXIgbT11W3NdLGc9Zi5sZW5ndGg7Zj1mLmNvbmNhdChtLnBvc2l0aW9ucykscD1wLmNvbmNhdChtLnZlY3RvcnMpLGQ9ZC5jb25jYXQobS52ZXJ0ZXhJbnRlbnNpdHkpO2ZvcihjPTA7YzxtLmNlbGxzLmxlbmd0aDtjKyspe3ZhciB2PW0uY2VsbHNbY10seT1bXTtoLnB1c2goeSk7Zm9yKHZhciB4PTA7eDx2Lmxlbmd0aDt4KyspeS5wdXNoKHZbeF0rZyl9fXJldHVybntwb3NpdGlvbnM6ZixjZWxsczpoLHZlY3RvcnM6cCx2ZXJ0ZXhJbnRlbnNpdHk6ZCxjb2xvcm1hcDplfX0scz1mdW5jdGlvbih0LGUpe3ZhciByLG49dC5sZW5ndGg7Zm9yKHI9MDtyPG47cisrKXt2YXIgaT10W3JdO2lmKGk9PT1lKXJldHVybiByO2lmKGk+ZSlyZXR1cm4gci0xfXJldHVybiByfSxsPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdDxlP2U6dD5yP3I6dH0sYz1mdW5jdGlvbih0KXt2YXIgZT0xLzA7dC5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0LWV9KSk7Zm9yKHZhciByPXQubGVuZ3RoLG49MTtuPHI7bisrKXt2YXIgaT1NYXRoLmFicyh0W25dLXRbbi0xXSk7aTxlJiYoZT1pKX1yZXR1cm4gZX07ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5zdGFydGluZ1Bvc2l0aW9ucyxpPXQubWF4TGVuZ3RofHwxZTMsdT10LnR1YmVTaXplfHwxLGY9dC5hYnNvbHV0ZVR1YmVTaXplLGg9dC5ncmlkRmlsbHx8Iit4K3kreiIscD17fTstMSE9PWguaW5kZXhPZigiLXgiKSYmKHAucmV2ZXJzZWRYPSEwKSwtMSE9PWguaW5kZXhPZigiLXkiKSYmKHAucmV2ZXJzZWRZPSEwKSwtMSE9PWguaW5kZXhPZigiLXoiKSYmKHAucmV2ZXJzZWRaPSEwKSxwLmZpbGxlZD1hLmluZGV4T2YoaC5yZXBsYWNlKC8tL2csIiIpLnJlcGxhY2UoL1wrL2csIiIpKTt2YXIgZD10LmdldFZlbG9jaXR5fHxmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxlLHIpe3ZhciBpPWUudmVjdG9ycyxhPWUubWVzaGdyaWQsbz10WzBdLGM9dFsxXSx1PXRbMl0sZj1hWzBdLmxlbmd0aCxoPWFbMV0ubGVuZ3RoLHA9YVsyXS5sZW5ndGgsZD1zKGFbMF0sbyksbT1zKGFbMV0sYyksZz1zKGFbMl0sdSksdj1kKzEseT1tKzEseD1nKzE7aWYoZD1sKGQsMCxmLTEpLHY9bCh2LDAsZi0xKSxtPWwobSwwLGgtMSkseT1sKHksMCxoLTEpLGc9bChnLDAscC0xKSx4PWwoeCwwLHAtMSksZDwwfHxtPDB8fGc8MHx8dj5mLTF8fHk+aC0xfHx4PnAtMSlyZXR1cm4gbi5jcmVhdGUoKTt2YXIgYixfLHcsVCxrLEEsTT1hWzBdW2RdLFM9YVswXVt2XSxFPWFbMV1bbV0sTD1hWzFdW3ldLEM9YVsyXVtnXSxQPShvLU0pLyhTLU0pLEk9KGMtRSkvKEwtRSksTz0odS1DKS8oYVsyXVt4XS1DKTtzd2l0Y2goaXNGaW5pdGUoUCl8fChQPS41KSxpc0Zpbml0ZShJKXx8KEk9LjUpLGlzRmluaXRlKE8pfHwoTz0uNSksci5yZXZlcnNlZFgmJihkPWYtMS1kLHY9Zi0xLXYpLHIucmV2ZXJzZWRZJiYobT1oLTEtbSx5PWgtMS15KSxyLnJldmVyc2VkWiYmKGc9cC0xLWcseD1wLTEteCksci5maWxsZWQpe2Nhc2UgNTprPWcsQT14LHc9bSpwLFQ9eSpwLGI9ZCpwKmgsXz12KnAqaDticmVhaztjYXNlIDQ6az1nLEE9eCxiPWQqcCxfPXYqcCx3PW0qcCpmLFQ9eSpwKmY7YnJlYWs7Y2FzZSAzOnc9bSxUPXksaz1nKmgsQT14KmgsYj1kKmgqcCxfPXYqaCpwO2JyZWFrO2Nhc2UgMjp3PW0sVD15LGI9ZCpoLF89dipoLGs9ZypoKmYsQT14KmgqZjticmVhaztjYXNlIDE6Yj1kLF89dixrPWcqZixBPXgqZix3PW0qZipwLFQ9eSpmKnA7YnJlYWs7ZGVmYXVsdDpiPWQsXz12LHc9bSpmLFQ9eSpmLGs9ZypmKmgsQT14KmYqaH12YXIgej1pW2IrdytrXSxEPWlbYit3K0FdLFI9aVtiK1Qra10sRj1pW2IrVCtBXSxCPWlbXyt3K2tdLE49aVtfK3crQV0saj1pW18rVCtrXSxVPWlbXytUK0FdLFY9bi5jcmVhdGUoKSxIPW4uY3JlYXRlKCkscT1uLmNyZWF0ZSgpLEc9bi5jcmVhdGUoKTtuLmxlcnAoVix6LEIsUCksbi5sZXJwKEgsRCxOLFApLG4ubGVycChxLFIsaixQKSxuLmxlcnAoRyxGLFUsUCk7dmFyIFk9bi5jcmVhdGUoKSxXPW4uY3JlYXRlKCk7bi5sZXJwKFksVixxLEkpLG4ubGVycChXLEgsRyxJKTt2YXIgWD1uLmNyZWF0ZSgpO3JldHVybiBuLmxlcnAoWCxZLFcsTyksWH0oZSx0LHApfSxtPXQuZ2V0RGl2ZXJnZW5jZXx8ZnVuY3Rpb24odCxlKXt2YXIgcj1uLmNyZWF0ZSgpLGk9MWUtNDtuLmFkZChyLHQsW2ksMCwwXSk7dmFyIGE9ZChyKTtuLnN1YnRyYWN0KGEsYSxlKSxuLnNjYWxlKGEsYSwxL2kpLG4uYWRkKHIsdCxbMCxpLDBdKTt2YXIgbz1kKHIpO24uc3VidHJhY3QobyxvLGUpLG4uc2NhbGUobyxvLDEvaSksbi5hZGQocix0LFswLDAsaV0pO3ZhciBzPWQocik7cmV0dXJuIG4uc3VidHJhY3QocyxzLGUpLG4uc2NhbGUocyxzLDEvaSksbi5hZGQocixhLG8pLG4uYWRkKHIscixzKSxyfSxnPVtdLHY9ZVswXVswXSx5PWVbMF1bMV0seD1lWzBdWzJdLGI9ZVsxXVswXSxfPWVbMV1bMV0sdz1lWzFdWzJdLFQ9ZnVuY3Rpb24odCl7dmFyIGU9dFswXSxyPXRbMV0sbj10WzJdO3JldHVybiEoZTx2fHxlPmJ8fHI8eXx8cj5ffHxuPHh8fG4+dyl9LGs9MTAqbi5kaXN0YW5jZShlWzBdLGVbMV0pL2ksQT1rKmssTT0xLFM9MCxFPXIubGVuZ3RoO0U+MSYmKE09ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLHI9W10sbj1bXSxpPXt9LGE9e30sbz17fSxzPXQubGVuZ3RoLGw9MDtsPHM7bCsrKXt2YXIgdT10W2xdLGY9dVswXSxoPXVbMV0scD11WzJdO2lbZl18fChlLnB1c2goZiksaVtmXT0hMCksYVtoXXx8KHIucHVzaChoKSxhW2hdPSEwKSxvW3BdfHwobi5wdXNoKHApLG9bcF09ITApfXZhciBkPWMoZSksbT1jKHIpLGc9YyhuKSx2PU1hdGgubWluKGQsbSxnKTtyZXR1cm4gaXNGaW5pdGUodik/djoxfShyKSk7Zm9yKHZhciBMPTA7TDxFO0wrKyl7dmFyIEM9bi5jcmVhdGUoKTtuLmNvcHkoQyxyW0xdKTt2YXIgUD1bQ10sST1bXSxPPWQoQyksej1DO0kucHVzaChPKTt2YXIgRD1bXSxSPW0oQyxPKSxGPW4ubGVuZ3RoKFIpO2lzRmluaXRlKEYpJiZGPlMmJihTPUYpLEQucHVzaChGKSxnLnB1c2goe3BvaW50czpQLHZlbG9jaXRpZXM6SSxkaXZlcmdlbmNlczpEfSk7Zm9yKHZhciBCPTA7QjwxMDAqaSYmUC5sZW5ndGg8aSYmVChDKTspe0IrKzt2YXIgTj1uLmNsb25lKE8pLGo9bi5zcXVhcmVkTGVuZ3RoKE4pO2lmKDA9PT1qKWJyZWFrO2lmKGo+QSYmbi5zY2FsZShOLE4say9NYXRoLnNxcnQoaikpLG4uYWRkKE4sTixDKSxPPWQoTiksbi5zcXVhcmVkRGlzdGFuY2UoeixOKS1BPi0xZS00KkEpe1AucHVzaChOKSx6PU4sSS5wdXNoKE8pO1I9bShOLE8pLEY9bi5sZW5ndGgoUik7aXNGaW5pdGUoRikmJkY+UyYmKFM9RiksRC5wdXNoKEYpfUM9Tn19dmFyIFU9byhnLHQuY29sb3JtYXAsUyxNKTtyZXR1cm4gZj9VLnR1YmVTY2FsZT1mOigwPT09UyYmKFM9MSksVS50dWJlU2NhbGU9LjUqdSpNL1MpLFV9O3ZhciB1PXQoIi4vbGliL3NoYWRlcnMiKSxmPXQoImdsLWNvbmUzZCIpLmNyZWF0ZU1lc2g7ZS5leHBvcnRzLmNyZWF0ZVR1YmVNZXNoPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGYodCxlLHtzaGFkZXJzOnUsdHJhY2VUeXBlOiJzdHJlYW10dWJlIn0pfX0seyIuL2xpYi9zaGFkZXJzIjoxNDIsImdsLWNvbmUzZCI6NzksImdsLXZlYzMiOjE2OSwiZ2wtdmVjNCI6MjA1fV0sMTQ0OltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiZ2wtc2hhZGVyIiksaT10KCJnbHNsaWZ5IiksYT1pKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYXR0cmlidXRlIHZlYzQgdXY7XG5hdHRyaWJ1dGUgdmVjMyBmO1xuYXR0cmlidXRlIHZlYzMgbm9ybWFsO1xuXG51bmlmb3JtIHZlYzMgb2JqZWN0T2Zmc2V0O1xudW5pZm9ybSBtYXQ0IG1vZGVsLCB2aWV3LCBwcm9qZWN0aW9uLCBpbnZlcnNlTW9kZWw7XG51bmlmb3JtIHZlYzMgbGlnaHRQb3NpdGlvbiwgZXllUG9zaXRpb247XG51bmlmb3JtIHNhbXBsZXIyRCBjb2xvcm1hcDtcblxudmFyeWluZyBmbG9hdCB2YWx1ZSwga2lsbDtcbnZhcnlpbmcgdmVjMyB3b3JsZENvb3JkaW5hdGU7XG52YXJ5aW5nIHZlYzIgcGxhbmVDb29yZGluYXRlO1xudmFyeWluZyB2ZWMzIGxpZ2h0RGlyZWN0aW9uLCBleWVEaXJlY3Rpb24sIHN1cmZhY2VOb3JtYWw7XG52YXJ5aW5nIHZlYzQgdkNvbG9yO1xuXG52b2lkIG1haW4oKSB7XG4gIHZlYzMgbG9jYWxDb29yZGluYXRlID0gdmVjMyh1di56dywgZi54KTtcbiAgd29ybGRDb29yZGluYXRlID0gb2JqZWN0T2Zmc2V0ICsgbG9jYWxDb29yZGluYXRlO1xuICB2ZWM0IHdvcmxkUG9zaXRpb24gPSBtb2RlbCAqIHZlYzQod29ybGRDb29yZGluYXRlLCAxLjApO1xuICB2ZWM0IGNsaXBQb3NpdGlvbiA9IHByb2plY3Rpb24gKiB2aWV3ICogd29ybGRQb3NpdGlvbjtcbiAgZ2xfUG9zaXRpb24gPSBjbGlwUG9zaXRpb247XG4gIGtpbGwgPSBmLnk7XG4gIHZhbHVlID0gZi56O1xuICBwbGFuZUNvb3JkaW5hdGUgPSB1di54eTtcblxuICB2Q29sb3IgPSB0ZXh0dXJlMkQoY29sb3JtYXAsIHZlYzIodmFsdWUsIHZhbHVlKSk7XG5cbiAgLy9MaWdodGluZyBnZW9tZXRyeSBwYXJhbWV0ZXJzXG4gIHZlYzQgY2FtZXJhQ29vcmRpbmF0ZSA9IHZpZXcgKiB3b3JsZFBvc2l0aW9uO1xuICBjYW1lcmFDb29yZGluYXRlLnh5eiAvPSBjYW1lcmFDb29yZGluYXRlLnc7XG4gIGxpZ2h0RGlyZWN0aW9uID0gbGlnaHRQb3NpdGlvbiAtIGNhbWVyYUNvb3JkaW5hdGUueHl6O1xuICBleWVEaXJlY3Rpb24gICA9IGV5ZVBvc2l0aW9uIC0gY2FtZXJhQ29vcmRpbmF0ZS54eXo7XG4gIHN1cmZhY2VOb3JtYWwgID0gbm9ybWFsaXplKCh2ZWM0KG5vcm1hbCwwKSAqIGludmVyc2VNb2RlbCkueHl6KTtcbn1cbiJdKSxvPWkoWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5mbG9hdCBiZWNrbWFubkRpc3RyaWJ1dGlvbihmbG9hdCB4LCBmbG9hdCByb3VnaG5lc3MpIHtcbiAgZmxvYXQgTmRvdEggPSBtYXgoeCwgMC4wMDAxKTtcbiAgZmxvYXQgY29zMkFscGhhID0gTmRvdEggKiBOZG90SDtcbiAgZmxvYXQgdGFuMkFscGhhID0gKGNvczJBbHBoYSAtIDEuMCkgLyBjb3MyQWxwaGE7XG4gIGZsb2F0IHJvdWdobmVzczIgPSByb3VnaG5lc3MgKiByb3VnaG5lc3M7XG4gIGZsb2F0IGRlbm9tID0gMy4xNDE1OTI2NTM1ODk3OTMgKiByb3VnaG5lc3MyICogY29zMkFscGhhICogY29zMkFscGhhO1xuICByZXR1cm4gZXhwKHRhbjJBbHBoYSAvIHJvdWdobmVzczIpIC8gZGVub207XG59XG5cbmZsb2F0IGJlY2ttYW5uU3BlY3VsYXIoXG4gIHZlYzMgbGlnaHREaXJlY3Rpb24sXG4gIHZlYzMgdmlld0RpcmVjdGlvbixcbiAgdmVjMyBzdXJmYWNlTm9ybWFsLFxuICBmbG9hdCByb3VnaG5lc3MpIHtcbiAgcmV0dXJuIGJlY2ttYW5uRGlzdHJpYnV0aW9uKGRvdChzdXJmYWNlTm9ybWFsLCBub3JtYWxpemUobGlnaHREaXJlY3Rpb24gKyB2aWV3RGlyZWN0aW9uKSksIHJvdWdobmVzcyk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZShmbG9hdCBhLCBmbG9hdCBiLCBmbG9hdCBwKSB7XG4gIHJldHVybiAoKHAgPiBtYXgoYSwgYikpIHx8IFxuICAgICAgICAgIChwIDwgbWluKGEsIGIpKSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWMyIGEsIHZlYzIgYiwgdmVjMiBwKSB7XG4gIHJldHVybiAob3V0T2ZSYW5nZShhLngsIGIueCwgcC54KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS55LCBiLnksIHAueSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMyBhLCB2ZWMzIGIsIHZlYzMgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnosIGIueiwgcC56KSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWM0IGEsIHZlYzQgYiwgdmVjNCBwKSB7XG4gIHJldHVybiBvdXRPZlJhbmdlKGEueHl6LCBiLnh5eiwgcC54eXopO1xufVxuXG51bmlmb3JtIHZlYzMgbG93ZXJCb3VuZCwgdXBwZXJCb3VuZDtcbnVuaWZvcm0gZmxvYXQgY29udG91clRpbnQ7XG51bmlmb3JtIHZlYzQgY29udG91ckNvbG9yO1xudW5pZm9ybSBzYW1wbGVyMkQgY29sb3JtYXA7XG51bmlmb3JtIHZlYzMgY2xpcEJvdW5kc1syXTtcbnVuaWZvcm0gZmxvYXQgcm91Z2huZXNzLCBmcmVzbmVsLCBrYW1iaWVudCwga2RpZmZ1c2UsIGtzcGVjdWxhciwgb3BhY2l0eTtcbnVuaWZvcm0gZmxvYXQgdmVydGV4Q29sb3I7XG5cbnZhcnlpbmcgZmxvYXQgdmFsdWUsIGtpbGw7XG52YXJ5aW5nIHZlYzMgd29ybGRDb29yZGluYXRlO1xudmFyeWluZyB2ZWMzIGxpZ2h0RGlyZWN0aW9uLCBleWVEaXJlY3Rpb24sIHN1cmZhY2VOb3JtYWw7XG52YXJ5aW5nIHZlYzQgdkNvbG9yO1xuXG52b2lkIG1haW4oKSB7XG4gIGlmIChcbiAgICBraWxsID4gMC4wIHx8XG4gICAgdkNvbG9yLmEgPT0gMC4wIHx8XG4gICAgb3V0T2ZSYW5nZShjbGlwQm91bmRzWzBdLCBjbGlwQm91bmRzWzFdLCB3b3JsZENvb3JkaW5hdGUpXG4gICkgZGlzY2FyZDtcblxuICB2ZWMzIE4gPSBub3JtYWxpemUoc3VyZmFjZU5vcm1hbCk7XG4gIHZlYzMgViA9IG5vcm1hbGl6ZShleWVEaXJlY3Rpb24pO1xuICB2ZWMzIEwgPSBub3JtYWxpemUobGlnaHREaXJlY3Rpb24pO1xuXG4gIGlmKGdsX0Zyb250RmFjaW5nKSB7XG4gICAgTiA9IC1OO1xuICB9XG5cbiAgZmxvYXQgc3BlY3VsYXIgPSBtYXgoYmVja21hbm5TcGVjdWxhcihMLCBWLCBOLCByb3VnaG5lc3MpLCAwLik7XG4gIGZsb2F0IGRpZmZ1c2UgID0gbWluKGthbWJpZW50ICsga2RpZmZ1c2UgKiBtYXgoZG90KE4sIEwpLCAwLjApLCAxLjApO1xuXG4gIC8vZGVjaWRlIGhvdyB0byBpbnRlcnBvbGF0ZSBjb2xvciBcdTIwMTQgaW4gdmVydGV4IG9yIGluIGZyYWdtZW50XG4gIHZlYzQgc3VyZmFjZUNvbG9yID1cbiAgICBzdGVwKHZlcnRleENvbG9yLCAuNSkgKiB0ZXh0dXJlMkQoY29sb3JtYXAsIHZlYzIodmFsdWUsIHZhbHVlKSkgK1xuICAgIHN0ZXAoLjUsIHZlcnRleENvbG9yKSAqIHZDb2xvcjtcblxuICB2ZWM0IGxpdENvbG9yID0gc3VyZmFjZUNvbG9yLmEgKiB2ZWM0KGRpZmZ1c2UgKiBzdXJmYWNlQ29sb3IucmdiICsga3NwZWN1bGFyICogdmVjMygxLDEsMSkgKiBzcGVjdWxhciwgIDEuMCk7XG5cbiAgZ2xfRnJhZ0NvbG9yID0gbWl4KGxpdENvbG9yLCBjb250b3VyQ29sb3IsIGNvbnRvdXJUaW50KSAqIG9wYWNpdHk7XG59XG4iXSkscz1pKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYXR0cmlidXRlIHZlYzQgdXY7XG5hdHRyaWJ1dGUgZmxvYXQgZjtcblxudW5pZm9ybSB2ZWMzIG9iamVjdE9mZnNldDtcbnVuaWZvcm0gbWF0MyBwZXJtdXRhdGlvbjtcbnVuaWZvcm0gbWF0NCBtb2RlbCwgdmlldywgcHJvamVjdGlvbjtcbnVuaWZvcm0gZmxvYXQgaGVpZ2h0LCB6T2Zmc2V0O1xudW5pZm9ybSBzYW1wbGVyMkQgY29sb3JtYXA7XG5cbnZhcnlpbmcgZmxvYXQgdmFsdWUsIGtpbGw7XG52YXJ5aW5nIHZlYzMgd29ybGRDb29yZGluYXRlO1xudmFyeWluZyB2ZWMyIHBsYW5lQ29vcmRpbmF0ZTtcbnZhcnlpbmcgdmVjMyBsaWdodERpcmVjdGlvbiwgZXllRGlyZWN0aW9uLCBzdXJmYWNlTm9ybWFsO1xudmFyeWluZyB2ZWM0IHZDb2xvcjtcblxudm9pZCBtYWluKCkge1xuICB2ZWMzIGRhdGFDb29yZGluYXRlID0gcGVybXV0YXRpb24gKiB2ZWMzKHV2Lnh5LCBoZWlnaHQpO1xuICB3b3JsZENvb3JkaW5hdGUgPSBvYmplY3RPZmZzZXQgKyBkYXRhQ29vcmRpbmF0ZTtcbiAgdmVjNCB3b3JsZFBvc2l0aW9uID0gbW9kZWwgKiB2ZWM0KHdvcmxkQ29vcmRpbmF0ZSwgMS4wKTtcblxuICB2ZWM0IGNsaXBQb3NpdGlvbiA9IHByb2plY3Rpb24gKiB2aWV3ICogd29ybGRQb3NpdGlvbjtcbiAgY2xpcFBvc2l0aW9uLnogKz0gek9mZnNldDtcblxuICBnbF9Qb3NpdGlvbiA9IGNsaXBQb3NpdGlvbjtcbiAgdmFsdWUgPSBmICsgb2JqZWN0T2Zmc2V0Lno7XG4gIGtpbGwgPSAtMS4wO1xuICBwbGFuZUNvb3JkaW5hdGUgPSB1di56dztcblxuICB2Q29sb3IgPSB0ZXh0dXJlMkQoY29sb3JtYXAsIHZlYzIodmFsdWUsIHZhbHVlKSk7XG5cbiAgLy9Eb24ndCBkbyBsaWdodGluZyBmb3IgY29udG91cnNcbiAgc3VyZmFjZU5vcm1hbCAgID0gdmVjMygxLDAsMCk7XG4gIGV5ZURpcmVjdGlvbiAgICA9IHZlYzMoMCwxLDApO1xuICBsaWdodERpcmVjdGlvbiAgPSB2ZWMzKDAsMCwxKTtcbn1cbiJdKSxsPWkoWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5ib29sIG91dE9mUmFuZ2UoZmxvYXQgYSwgZmxvYXQgYiwgZmxvYXQgcCkge1xuICByZXR1cm4gKChwID4gbWF4KGEsIGIpKSB8fCBcbiAgICAgICAgICAocCA8IG1pbihhLCBiKSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMiBhLCB2ZWMyIGIsIHZlYzIgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzMgYSwgdmVjMyBiLCB2ZWMzIHApIHtcbiAgcmV0dXJuIChvdXRPZlJhbmdlKGEueCwgYi54LCBwLngpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnksIGIueSwgcC55KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS56LCBiLnosIHAueikpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjNCBhLCB2ZWM0IGIsIHZlYzQgcCkge1xuICByZXR1cm4gb3V0T2ZSYW5nZShhLnh5eiwgYi54eXosIHAueHl6KTtcbn1cblxudW5pZm9ybSB2ZWMyIHNoYXBlO1xudW5pZm9ybSB2ZWMzIGNsaXBCb3VuZHNbMl07XG51bmlmb3JtIGZsb2F0IHBpY2tJZDtcblxudmFyeWluZyBmbG9hdCB2YWx1ZSwga2lsbDtcbnZhcnlpbmcgdmVjMyB3b3JsZENvb3JkaW5hdGU7XG52YXJ5aW5nIHZlYzIgcGxhbmVDb29yZGluYXRlO1xudmFyeWluZyB2ZWMzIHN1cmZhY2VOb3JtYWw7XG5cbnZlYzIgc3BsaXRGbG9hdChmbG9hdCB2KSB7XG4gIGZsb2F0IHZoID0gMjU1LjAgKiB2O1xuICBmbG9hdCB1cHBlciA9IGZsb29yKHZoKTtcbiAgZmxvYXQgbG93ZXIgPSBmcmFjdCh2aCk7XG4gIHJldHVybiB2ZWMyKHVwcGVyIC8gMjU1LjAsIGZsb29yKGxvd2VyICogMTYuMCkgLyAxNi4wKTtcbn1cblxudm9pZCBtYWluKCkge1xuICBpZiAoKGtpbGwgPiAwLjApIHx8XG4gICAgICAob3V0T2ZSYW5nZShjbGlwQm91bmRzWzBdLCBjbGlwQm91bmRzWzFdLCB3b3JsZENvb3JkaW5hdGUpKSkgZGlzY2FyZDtcblxuICB2ZWMyIHV4ID0gc3BsaXRGbG9hdChwbGFuZUNvb3JkaW5hdGUueCAvIHNoYXBlLngpO1xuICB2ZWMyIHV5ID0gc3BsaXRGbG9hdChwbGFuZUNvb3JkaW5hdGUueSAvIHNoYXBlLnkpO1xuICBnbF9GcmFnQ29sb3IgPSB2ZWM0KHBpY2tJZCwgdXgueCwgdXkueCwgdXgueSArICh1eS55LzE2LjApKTtcbn1cbiJdKTtyLmNyZWF0ZVNoYWRlcj1mdW5jdGlvbih0KXt2YXIgZT1uKHQsYSxvLG51bGwsW3tuYW1lOiJ1diIsdHlwZToidmVjNCJ9LHtuYW1lOiJmIix0eXBlOiJ2ZWMzIn0se25hbWU6Im5vcm1hbCIsdHlwZToidmVjMyJ9XSk7cmV0dXJuIGUuYXR0cmlidXRlcy51di5sb2NhdGlvbj0wLGUuYXR0cmlidXRlcy5mLmxvY2F0aW9uPTEsZS5hdHRyaWJ1dGVzLm5vcm1hbC5sb2NhdGlvbj0yLGV9LHIuY3JlYXRlUGlja1NoYWRlcj1mdW5jdGlvbih0KXt2YXIgZT1uKHQsYSxsLG51bGwsW3tuYW1lOiJ1diIsdHlwZToidmVjNCJ9LHtuYW1lOiJmIix0eXBlOiJ2ZWMzIn0se25hbWU6Im5vcm1hbCIsdHlwZToidmVjMyJ9XSk7cmV0dXJuIGUuYXR0cmlidXRlcy51di5sb2NhdGlvbj0wLGUuYXR0cmlidXRlcy5mLmxvY2F0aW9uPTEsZS5hdHRyaWJ1dGVzLm5vcm1hbC5sb2NhdGlvbj0yLGV9LHIuY3JlYXRlQ29udG91clNoYWRlcj1mdW5jdGlvbih0KXt2YXIgZT1uKHQscyxvLG51bGwsW3tuYW1lOiJ1diIsdHlwZToidmVjNCJ9LHtuYW1lOiJmIix0eXBlOiJmbG9hdCJ9XSk7cmV0dXJuIGUuYXR0cmlidXRlcy51di5sb2NhdGlvbj0wLGUuYXR0cmlidXRlcy5mLmxvY2F0aW9uPTEsZX0sci5jcmVhdGVQaWNrQ29udG91clNoYWRlcj1mdW5jdGlvbih0KXt2YXIgZT1uKHQscyxsLG51bGwsW3tuYW1lOiJ1diIsdHlwZToidmVjNCJ9LHtuYW1lOiJmIix0eXBlOiJmbG9hdCJ9XSk7cmV0dXJuIGUuYXR0cmlidXRlcy51di5sb2NhdGlvbj0wLGUuYXR0cmlidXRlcy5mLmxvY2F0aW9uPTEsZX19LHsiZ2wtc2hhZGVyIjoxMzIsZ2xzbGlmeToyMzF9XSwxNDU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQuZ2wscj15KGUpLG49YihlKSxzPXgoZSksbD1fKGUpLGM9aShlKSx1PWEoZSxbe2J1ZmZlcjpjLHNpemU6NCxzdHJpZGU6NDAsb2Zmc2V0OjB9LHtidWZmZXI6YyxzaXplOjMsc3RyaWRlOjQwLG9mZnNldDoxNn0se2J1ZmZlcjpjLHNpemU6MyxzdHJpZGU6NDAsb2Zmc2V0OjI4fV0pLGY9aShlKSxoPWEoZSxbe2J1ZmZlcjpmLHNpemU6NCxzdHJpZGU6MjAsb2Zmc2V0OjB9LHtidWZmZXI6ZixzaXplOjEsc3RyaWRlOjIwLG9mZnNldDoxNn1dKSxwPWkoZSksZD1hKGUsW3tidWZmZXI6cCxzaXplOjIsdHlwZTplLkZMT0FUfV0pLG09byhlLDEsMjU2LGUuUkdCQSxlLlVOU0lHTkVEX0JZVEUpO20ubWluRmlsdGVyPWUuTElORUFSLG0ubWFnRmlsdGVyPWUuTElORUFSO3ZhciBnPW5ldyBNKGUsWzAsMF0sW1swLDAsMF0sWzAsMCwwXV0scixuLGMsdSxtLHMsbCxmLGgscCxkLFswLDAsMF0pLHY9e2xldmVsczpbW10sW10sW11dfTtmb3IodmFyIHcgaW4gdCl2W3ddPXRbd107cmV0dXJuIHYuY29sb3JtYXA9di5jb2xvcm1hcHx8ImpldCIsZy51cGRhdGUodiksZ307dmFyIG49dCgiYml0LXR3aWRkbGUiKSxpPXQoImdsLWJ1ZmZlciIpLGE9dCgiZ2wtdmFvIiksbz10KCJnbC10ZXh0dXJlMmQiKSxzPXQoInR5cGVkYXJyYXktcG9vbCIpLGw9dCgiY29sb3JtYXAiKSxjPXQoIm5kYXJyYXktb3BzIiksdT10KCJuZGFycmF5LXBhY2siKSxmPXQoIm5kYXJyYXkiKSxoPXQoInN1cmZhY2UtbmV0cyIpLHA9dCgiZ2wtbWF0NC9tdWx0aXBseSIpLGQ9dCgiZ2wtbWF0NC9pbnZlcnQiKSxtPXQoImJpbmFyeS1zZWFyY2gtYm91bmRzIiksZz10KCJuZGFycmF5LWdyYWRpZW50Iiksdj10KCIuL2xpYi9zaGFkZXJzIikseT12LmNyZWF0ZVNoYWRlcix4PXYuY3JlYXRlQ29udG91clNoYWRlcixiPXYuY3JlYXRlUGlja1NoYWRlcixfPXYuY3JlYXRlUGlja0NvbnRvdXJTaGFkZXIsdz1bMSwwLDAsMCwwLDEsMCwwLDAsMCwxLDAsMCwwLDAsMV0sVD1bWzAsMF0sWzAsMV0sWzEsMF0sWzEsMV0sWzEsMF0sWzAsMV1dLGs9W1swLDAsMCwwLDAsMCwwLDAsMF0sWzAsMCwwLDAsMCwwLDAsMCwwXSxbMCwwLDAsMCwwLDAsMCwwLDBdXTtmdW5jdGlvbiBBKHQsZSxyLG4saSl7dGhpcy5wb3NpdGlvbj10LHRoaXMuaW5kZXg9ZSx0aGlzLnV2PXIsdGhpcy5sZXZlbD1uLHRoaXMuZGF0YUNvb3JkaW5hdGU9aX0hZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PDM7Kyt0KXt2YXIgZT1rW3RdLHI9KHQrMiklMztlWyh0KzEpJTMrMF09MSxlW3IrM109MSxlW3QrNl09MX19KCk7ZnVuY3Rpb24gTSh0LGUscixuLGksYSxvLGwsYyx1LGgscCxkLG0sZyl7dGhpcy5nbD10LHRoaXMuc2hhcGU9ZSx0aGlzLmJvdW5kcz1yLHRoaXMub2JqZWN0T2Zmc2V0PWcsdGhpcy5pbnRlbnNpdHlCb3VuZHM9W10sdGhpcy5fc2hhZGVyPW4sdGhpcy5fcGlja1NoYWRlcj1pLHRoaXMuX2Nvb3JkaW5hdGVCdWZmZXI9YSx0aGlzLl92YW89byx0aGlzLl9jb2xvck1hcD1sLHRoaXMuX2NvbnRvdXJTaGFkZXI9Yyx0aGlzLl9jb250b3VyUGlja1NoYWRlcj11LHRoaXMuX2NvbnRvdXJCdWZmZXI9aCx0aGlzLl9jb250b3VyVkFPPXAsdGhpcy5fY29udG91ck9mZnNldHM9W1tdLFtdLFtdXSx0aGlzLl9jb250b3VyQ291bnRzPVtbXSxbXSxbXV0sdGhpcy5fdmVydGV4Q291bnQ9MCx0aGlzLl9waWNrUmVzdWx0PW5ldyBBKFswLDAsMF0sWzAsMF0sWzAsMF0sWzAsMCwwXSxbMCwwLDBdKSx0aGlzLl9keW5hbWljQnVmZmVyPWQsdGhpcy5fZHluYW1pY1ZBTz1tLHRoaXMuX2R5bmFtaWNPZmZzZXRzPVswLDAsMF0sdGhpcy5fZHluYW1pY0NvdW50cz1bMCwwLDBdLHRoaXMuY29udG91cldpZHRoPVsxLDEsMV0sdGhpcy5jb250b3VyTGV2ZWxzPVtbMV0sWzFdLFsxXV0sdGhpcy5jb250b3VyVGludD1bMCwwLDBdLHRoaXMuY29udG91ckNvbG9yPVtbLjUsLjUsLjUsMV0sWy41LC41LC41LDFdLFsuNSwuNSwuNSwxXV0sdGhpcy5zaG93Q29udG91cj0hMCx0aGlzLnNob3dTdXJmYWNlPSEwLHRoaXMuZW5hYmxlSGlnaGxpZ2h0PVshMCwhMCwhMF0sdGhpcy5oaWdobGlnaHRDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMuaGlnaGxpZ2h0VGludD1bMSwxLDFdLHRoaXMuaGlnaGxpZ2h0TGV2ZWw9Wy0xLC0xLC0xXSx0aGlzLmVuYWJsZUR5bmFtaWM9WyEwLCEwLCEwXSx0aGlzLmR5bmFtaWNMZXZlbD1bTmFOLE5hTixOYU5dLHRoaXMuZHluYW1pY0NvbG9yPVtbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXV0sdGhpcy5keW5hbWljVGludD1bMSwxLDFdLHRoaXMuZHluYW1pY1dpZHRoPVsxLDEsMV0sdGhpcy5heGVzQm91bmRzPVtbMS8wLDEvMCwxLzBdLFstMS8wLC0xLzAsLTEvMF1dLHRoaXMuc3VyZmFjZVByb2plY3Q9WyExLCExLCExXSx0aGlzLmNvbnRvdXJQcm9qZWN0PVtbITEsITEsITFdLFshMSwhMSwhMV0sWyExLCExLCExXV0sdGhpcy5jb2xvckJvdW5kcz1bITEsITFdLHRoaXMuX2ZpZWxkPVtmKHMubWFsbG9jRmxvYXQoMTAyNCksWzAsMF0pLGYocy5tYWxsb2NGbG9hdCgxMDI0KSxbMCwwXSksZihzLm1hbGxvY0Zsb2F0KDEwMjQpLFswLDBdKV0sdGhpcy5waWNrSWQ9MSx0aGlzLmNsaXBCb3VuZHM9W1stMS8wLC0xLzAsLTEvMF0sWzEvMCwxLzAsMS8wXV0sdGhpcy5zbmFwVG9EYXRhPSExLHRoaXMucGl4ZWxSYXRpbz0xLHRoaXMub3BhY2l0eT0xLHRoaXMubGlnaHRQb3NpdGlvbj1bMTAsMWU0LDBdLHRoaXMuYW1iaWVudExpZ2h0PS44LHRoaXMuZGlmZnVzZUxpZ2h0PS44LHRoaXMuc3BlY3VsYXJMaWdodD0yLHRoaXMucm91Z2huZXNzPS41LHRoaXMuZnJlc25lbD0xLjUsdGhpcy52ZXJ0ZXhDb2xvcj0wLHRoaXMuZGlydHk9ITB9dmFyIFM9TS5wcm90b3R5cGU7Uy5nZW5Db2xvcm1hcD1mdW5jdGlvbih0LGUpe3ZhciByPSExLG49dShbbCh7Y29sb3JtYXA6dCxuc2hhZGVzOjI1Nixmb3JtYXQ6InJnYmEifSkubWFwKChmdW5jdGlvbih0LG4pe3ZhciBpPWU/ZnVuY3Rpb24odCxlKXtpZighZSlyZXR1cm4gMTtpZighZS5sZW5ndGgpcmV0dXJuIDE7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDsrK3Ipe2lmKGUubGVuZ3RoPDIpcmV0dXJuIDE7aWYoZVtyXVswXT09PXQpcmV0dXJuIGVbcl1bMV07aWYoZVtyXVswXT50JiZyPjApe3ZhciBuPShlW3JdWzBdLXQpLyhlW3JdWzBdLWVbci0xXVswXSk7cmV0dXJuIGVbcl1bMV0qKDEtbikrbiplW3ItMV1bMV19fXJldHVybiAxfShuLzI1NSxlKTp0WzNdO3JldHVybiBpPDEmJihyPSEwKSxbdFswXSx0WzFdLHRbMl0sMjU1KmldfSkpXSk7cmV0dXJuIGMuZGl2c2VxKG4sMjU1KSx0aGlzLmhhc0FscGhhU2NhbGU9cixufSxTLmlzVHJhbnNwYXJlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vcGFjaXR5PDF8fHRoaXMuaGFzQWxwaGFTY2FsZX0sUy5pc09wYXF1ZT1mdW5jdGlvbigpe3JldHVybiF0aGlzLmlzVHJhbnNwYXJlbnQoKX0sUy5waWNrU2xvdHM9MSxTLnNldFBpY2tCYXNlPWZ1bmN0aW9uKHQpe3RoaXMucGlja0lkPXR9O3ZhciBFPVswLDAsMF0sTD17c2hvd1N1cmZhY2U6ITEsc2hvd0NvbnRvdXI6ITEscHJvamVjdGlvbnM6W3cuc2xpY2UoKSx3LnNsaWNlKCksdy5zbGljZSgpXSxjbGlwQm91bmRzOltbWzAsMCwwXSxbMCwwLDBdXSxbWzAsMCwwXSxbMCwwLDBdXSxbWzAsMCwwXSxbMCwwLDBdXV19O2Z1bmN0aW9uIEModCxlKXt2YXIgcixuLGksYT1lLmF4ZXMmJmUuYXhlcy5sYXN0Q3ViZVByb3BzLmF4aXN8fEUsbz1lLnNob3dTdXJmYWNlLHM9ZS5zaG93Q29udG91cjtmb3Iocj0wO3I8MzsrK3IpZm9yKG89b3x8ZS5zdXJmYWNlUHJvamVjdFtyXSxuPTA7bjwzOysrbilzPXN8fGUuY29udG91clByb2plY3Rbcl1bbl07Zm9yKHI9MDtyPDM7KytyKXt2YXIgbD1MLnByb2plY3Rpb25zW3JdO2ZvcihuPTA7bjwxNjsrK24pbFtuXT0wO2ZvcihuPTA7bjw0OysrbilsWzUqbl09MTtsWzUqcl09MCxsWzEyK3JdPWUuYXhlc0JvdW5kc1srKGFbcl0+MCldW3JdLHAobCx0Lm1vZGVsLGwpO3ZhciBjPUwuY2xpcEJvdW5kc1tyXTtmb3IoaT0wO2k8MjsrK2kpZm9yKG49MDtuPDM7KytuKWNbaV1bbl09dC5jbGlwQm91bmRzW2ldW25dO2NbMF1bcl09LTFlOCxjWzFdW3JdPTFlOH1yZXR1cm4gTC5zaG93U3VyZmFjZT1vLEwuc2hvd0NvbnRvdXI9cyxMfXZhciBQPXttb2RlbDp3LHZpZXc6dyxwcm9qZWN0aW9uOncsaW52ZXJzZU1vZGVsOncuc2xpY2UoKSxsb3dlckJvdW5kOlswLDAsMF0sdXBwZXJCb3VuZDpbMCwwLDBdLGNvbG9yTWFwOjAsY2xpcEJvdW5kczpbWzAsMCwwXSxbMCwwLDBdXSxoZWlnaHQ6MCxjb250b3VyVGludDowLGNvbnRvdXJDb2xvcjpbMCwwLDAsMV0scGVybXV0YXRpb246WzEsMCwwLDAsMSwwLDAsMCwxXSx6T2Zmc2V0Oi0xZS00LG9iamVjdE9mZnNldDpbMCwwLDBdLGthbWJpZW50OjEsa2RpZmZ1c2U6MSxrc3BlY3VsYXI6MSxsaWdodFBvc2l0aW9uOlsxZTMsMWUzLDFlM10sZXllUG9zaXRpb246WzAsMCwwXSxyb3VnaG5lc3M6MSxmcmVzbmVsOjEsb3BhY2l0eToxLHZlcnRleENvbG9yOjB9LEk9dy5zbGljZSgpLE89WzEsMCwwLDAsMSwwLDAsMCwxXTtmdW5jdGlvbiB6KHQsZSl7dD10fHx7fTt2YXIgcj10aGlzLmdsO3IuZGlzYWJsZShyLkNVTExfRkFDRSksdGhpcy5fY29sb3JNYXAuYmluZCgwKTt2YXIgbj1QO24ubW9kZWw9dC5tb2RlbHx8dyxuLnZpZXc9dC52aWV3fHx3LG4ucHJvamVjdGlvbj10LnByb2plY3Rpb258fHcsbi5sb3dlckJvdW5kPVt0aGlzLmJvdW5kc1swXVswXSx0aGlzLmJvdW5kc1swXVsxXSx0aGlzLmNvbG9yQm91bmRzWzBdfHx0aGlzLmJvdW5kc1swXVsyXV0sbi51cHBlckJvdW5kPVt0aGlzLmJvdW5kc1sxXVswXSx0aGlzLmJvdW5kc1sxXVsxXSx0aGlzLmNvbG9yQm91bmRzWzFdfHx0aGlzLmJvdW5kc1sxXVsyXV0sbi5vYmplY3RPZmZzZXQ9dGhpcy5vYmplY3RPZmZzZXQsbi5jb250b3VyQ29sb3I9dGhpcy5jb250b3VyQ29sb3JbMF0sbi5pbnZlcnNlTW9kZWw9ZChuLmludmVyc2VNb2RlbCxuLm1vZGVsKTtmb3IodmFyIGk9MDtpPDI7KytpKWZvcih2YXIgYT1uLmNsaXBCb3VuZHNbaV0sbz0wO288MzsrK28pYVtvXT1NYXRoLm1pbihNYXRoLm1heCh0aGlzLmNsaXBCb3VuZHNbaV1bb10sLTFlOCksMWU4KTtuLmthbWJpZW50PXRoaXMuYW1iaWVudExpZ2h0LG4ua2RpZmZ1c2U9dGhpcy5kaWZmdXNlTGlnaHQsbi5rc3BlY3VsYXI9dGhpcy5zcGVjdWxhckxpZ2h0LG4ucm91Z2huZXNzPXRoaXMucm91Z2huZXNzLG4uZnJlc25lbD10aGlzLmZyZXNuZWwsbi5vcGFjaXR5PXRoaXMub3BhY2l0eSxuLmhlaWdodD0wLG4ucGVybXV0YXRpb249TyxuLnZlcnRleENvbG9yPXRoaXMudmVydGV4Q29sb3I7dmFyIHM9STtmb3IocChzLG4udmlldyxuLm1vZGVsKSxwKHMsbi5wcm9qZWN0aW9uLHMpLGQocyxzKSxpPTA7aTwzOysraSluLmV5ZVBvc2l0aW9uW2ldPXNbMTIraV0vc1sxNV07dmFyIGw9c1sxNV07Zm9yKGk9MDtpPDM7KytpKWwrPXRoaXMubGlnaHRQb3NpdGlvbltpXSpzWzQqaSszXTtmb3IoaT0wO2k8MzsrK2kpe3ZhciBjPXNbMTIraV07Zm9yKG89MDtvPDM7KytvKWMrPXNbNCpvK2ldKnRoaXMubGlnaHRQb3NpdGlvbltvXTtuLmxpZ2h0UG9zaXRpb25baV09Yy9sfXZhciB1PUMobix0aGlzKTtpZih1LnNob3dTdXJmYWNlKXtmb3IodGhpcy5fc2hhZGVyLmJpbmQoKSx0aGlzLl9zaGFkZXIudW5pZm9ybXM9bix0aGlzLl92YW8uYmluZCgpLHRoaXMuc2hvd1N1cmZhY2UmJnRoaXMuX3ZlcnRleENvdW50JiZ0aGlzLl92YW8uZHJhdyhyLlRSSUFOR0xFUyx0aGlzLl92ZXJ0ZXhDb3VudCksaT0wO2k8MzsrK2kpdGhpcy5zdXJmYWNlUHJvamVjdFtpXSYmdGhpcy52ZXJ0ZXhDb3VudCYmKHRoaXMuX3NoYWRlci51bmlmb3Jtcy5tb2RlbD11LnByb2plY3Rpb25zW2ldLHRoaXMuX3NoYWRlci51bmlmb3Jtcy5jbGlwQm91bmRzPXUuY2xpcEJvdW5kc1tpXSx0aGlzLl92YW8uZHJhdyhyLlRSSUFOR0xFUyx0aGlzLl92ZXJ0ZXhDb3VudCkpO3RoaXMuX3Zhby51bmJpbmQoKX1pZih1LnNob3dDb250b3VyKXt2YXIgZj10aGlzLl9jb250b3VyU2hhZGVyO24ua2FtYmllbnQ9MSxuLmtkaWZmdXNlPTAsbi5rc3BlY3VsYXI9MCxuLm9wYWNpdHk9MSxmLmJpbmQoKSxmLnVuaWZvcm1zPW47dmFyIGg9dGhpcy5fY29udG91clZBTztmb3IoaC5iaW5kKCksaT0wO2k8MzsrK2kpZm9yKGYudW5pZm9ybXMucGVybXV0YXRpb249a1tpXSxyLmxpbmVXaWR0aCh0aGlzLmNvbnRvdXJXaWR0aFtpXSp0aGlzLnBpeGVsUmF0aW8pLG89MDtvPHRoaXMuY29udG91ckxldmVsc1tpXS5sZW5ndGg7KytvKW89PT10aGlzLmhpZ2hsaWdodExldmVsW2ldPyhmLnVuaWZvcm1zLmNvbnRvdXJDb2xvcj10aGlzLmhpZ2hsaWdodENvbG9yW2ldLGYudW5pZm9ybXMuY29udG91clRpbnQ9dGhpcy5oaWdobGlnaHRUaW50W2ldKTowIT09byYmby0xIT09dGhpcy5oaWdobGlnaHRMZXZlbFtpXXx8KGYudW5pZm9ybXMuY29udG91ckNvbG9yPXRoaXMuY29udG91ckNvbG9yW2ldLGYudW5pZm9ybXMuY29udG91clRpbnQ9dGhpcy5jb250b3VyVGludFtpXSksdGhpcy5fY29udG91ckNvdW50c1tpXVtvXSYmKGYudW5pZm9ybXMuaGVpZ2h0PXRoaXMuY29udG91ckxldmVsc1tpXVtvXSxoLmRyYXcoci5MSU5FUyx0aGlzLl9jb250b3VyQ291bnRzW2ldW29dLHRoaXMuX2NvbnRvdXJPZmZzZXRzW2ldW29dKSk7Zm9yKGk9MDtpPDM7KytpKWZvcihmLnVuaWZvcm1zLm1vZGVsPXUucHJvamVjdGlvbnNbaV0sZi51bmlmb3Jtcy5jbGlwQm91bmRzPXUuY2xpcEJvdW5kc1tpXSxvPTA7bzwzOysrbylpZih0aGlzLmNvbnRvdXJQcm9qZWN0W2ldW29dKXtmLnVuaWZvcm1zLnBlcm11dGF0aW9uPWtbb10sci5saW5lV2lkdGgodGhpcy5jb250b3VyV2lkdGhbb10qdGhpcy5waXhlbFJhdGlvKTtmb3IodmFyIG09MDttPHRoaXMuY29udG91ckxldmVsc1tvXS5sZW5ndGg7KyttKW09PT10aGlzLmhpZ2hsaWdodExldmVsW29dPyhmLnVuaWZvcm1zLmNvbnRvdXJDb2xvcj10aGlzLmhpZ2hsaWdodENvbG9yW29dLGYudW5pZm9ybXMuY29udG91clRpbnQ9dGhpcy5oaWdobGlnaHRUaW50W29dKTowIT09bSYmbS0xIT09dGhpcy5oaWdobGlnaHRMZXZlbFtvXXx8KGYudW5pZm9ybXMuY29udG91ckNvbG9yPXRoaXMuY29udG91ckNvbG9yW29dLGYudW5pZm9ybXMuY29udG91clRpbnQ9dGhpcy5jb250b3VyVGludFtvXSksdGhpcy5fY29udG91ckNvdW50c1tvXVttXSYmKGYudW5pZm9ybXMuaGVpZ2h0PXRoaXMuY29udG91ckxldmVsc1tvXVttXSxoLmRyYXcoci5MSU5FUyx0aGlzLl9jb250b3VyQ291bnRzW29dW21dLHRoaXMuX2NvbnRvdXJPZmZzZXRzW29dW21dKSl9Zm9yKGgudW5iaW5kKCksKGg9dGhpcy5fZHluYW1pY1ZBTykuYmluZCgpLGk9MDtpPDM7KytpKWlmKDAhPT10aGlzLl9keW5hbWljQ291bnRzW2ldKWZvcihmLnVuaWZvcm1zLm1vZGVsPW4ubW9kZWwsZi51bmlmb3Jtcy5jbGlwQm91bmRzPW4uY2xpcEJvdW5kcyxmLnVuaWZvcm1zLnBlcm11dGF0aW9uPWtbaV0sci5saW5lV2lkdGgodGhpcy5keW5hbWljV2lkdGhbaV0qdGhpcy5waXhlbFJhdGlvKSxmLnVuaWZvcm1zLmNvbnRvdXJDb2xvcj10aGlzLmR5bmFtaWNDb2xvcltpXSxmLnVuaWZvcm1zLmNvbnRvdXJUaW50PXRoaXMuZHluYW1pY1RpbnRbaV0sZi51bmlmb3Jtcy5oZWlnaHQ9dGhpcy5keW5hbWljTGV2ZWxbaV0saC5kcmF3KHIuTElORVMsdGhpcy5fZHluYW1pY0NvdW50c1tpXSx0aGlzLl9keW5hbWljT2Zmc2V0c1tpXSksbz0wO288MzsrK28pdGhpcy5jb250b3VyUHJvamVjdFtvXVtpXSYmKGYudW5pZm9ybXMubW9kZWw9dS5wcm9qZWN0aW9uc1tvXSxmLnVuaWZvcm1zLmNsaXBCb3VuZHM9dS5jbGlwQm91bmRzW29dLGguZHJhdyhyLkxJTkVTLHRoaXMuX2R5bmFtaWNDb3VudHNbaV0sdGhpcy5fZHluYW1pY09mZnNldHNbaV0pKTtoLnVuYmluZCgpfX1TLmRyYXc9ZnVuY3Rpb24odCl7cmV0dXJuIHouY2FsbCh0aGlzLHQsITEpfSxTLmRyYXdUcmFuc3BhcmVudD1mdW5jdGlvbih0KXtyZXR1cm4gei5jYWxsKHRoaXMsdCwhMCl9O3ZhciBEPXttb2RlbDp3LHZpZXc6dyxwcm9qZWN0aW9uOncsaW52ZXJzZU1vZGVsOncsY2xpcEJvdW5kczpbWzAsMCwwXSxbMCwwLDBdXSxoZWlnaHQ6MCxzaGFwZTpbMCwwXSxwaWNrSWQ6MCxsb3dlckJvdW5kOlswLDAsMF0sdXBwZXJCb3VuZDpbMCwwLDBdLHpPZmZzZXQ6MCxvYmplY3RPZmZzZXQ6WzAsMCwwXSxwZXJtdXRhdGlvbjpbMSwwLDAsMCwxLDAsMCwwLDFdLGxpZ2h0UG9zaXRpb246WzAsMCwwXSxleWVQb3NpdGlvbjpbMCwwLDBdfTtmdW5jdGlvbiBSKHQsZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/W2UodFswXSksZSh0WzFdKSxlKHRbMl0pXTpbZSh0KSxlKHQpLGUodCldfWZ1bmN0aW9uIEYodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/Mz09PXQubGVuZ3RoP1t0WzBdLHRbMV0sdFsyXSwxXTpbdFswXSx0WzFdLHRbMl0sdFszXV06WzAsMCwwLDFdfWZ1bmN0aW9uIEIodCl7aWYoQXJyYXkuaXNBcnJheSh0KSl7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm5bRih0WzBdKSxGKHRbMV0pLEYodFsyXSldO3ZhciBlPUYodCk7cmV0dXJuW2Uuc2xpY2UoKSxlLnNsaWNlKCksZS5zbGljZSgpXX19Uy5kcmF3UGljaz1mdW5jdGlvbih0KXt0PXR8fHt9O3ZhciBlPXRoaXMuZ2w7ZS5kaXNhYmxlKGUuQ1VMTF9GQUNFKTt2YXIgcj1EO3IubW9kZWw9dC5tb2RlbHx8dyxyLnZpZXc9dC52aWV3fHx3LHIucHJvamVjdGlvbj10LnByb2plY3Rpb258fHcsci5zaGFwZT10aGlzLl9maWVsZFsyXS5zaGFwZSxyLnBpY2tJZD10aGlzLnBpY2tJZC8yNTUsci5sb3dlckJvdW5kPXRoaXMuYm91bmRzWzBdLHIudXBwZXJCb3VuZD10aGlzLmJvdW5kc1sxXSxyLm9iamVjdE9mZnNldD10aGlzLm9iamVjdE9mZnNldCxyLnBlcm11dGF0aW9uPU87Zm9yKHZhciBuPTA7bjwyOysrbilmb3IodmFyIGk9ci5jbGlwQm91bmRzW25dLGE9MDthPDM7KythKWlbYV09TWF0aC5taW4oTWF0aC5tYXgodGhpcy5jbGlwQm91bmRzW25dW2FdLC0xZTgpLDFlOCk7dmFyIG89QyhyLHRoaXMpO2lmKG8uc2hvd1N1cmZhY2Upe2Zvcih0aGlzLl9waWNrU2hhZGVyLmJpbmQoKSx0aGlzLl9waWNrU2hhZGVyLnVuaWZvcm1zPXIsdGhpcy5fdmFvLmJpbmQoKSx0aGlzLl92YW8uZHJhdyhlLlRSSUFOR0xFUyx0aGlzLl92ZXJ0ZXhDb3VudCksbj0wO248MzsrK24pdGhpcy5zdXJmYWNlUHJvamVjdFtuXSYmKHRoaXMuX3BpY2tTaGFkZXIudW5pZm9ybXMubW9kZWw9by5wcm9qZWN0aW9uc1tuXSx0aGlzLl9waWNrU2hhZGVyLnVuaWZvcm1zLmNsaXBCb3VuZHM9by5jbGlwQm91bmRzW25dLHRoaXMuX3Zhby5kcmF3KGUuVFJJQU5HTEVTLHRoaXMuX3ZlcnRleENvdW50KSk7dGhpcy5fdmFvLnVuYmluZCgpfWlmKG8uc2hvd0NvbnRvdXIpe3ZhciBzPXRoaXMuX2NvbnRvdXJQaWNrU2hhZGVyO3MuYmluZCgpLHMudW5pZm9ybXM9cjt2YXIgbD10aGlzLl9jb250b3VyVkFPO2ZvcihsLmJpbmQoKSxhPTA7YTwzOysrYSlmb3IoZS5saW5lV2lkdGgodGhpcy5jb250b3VyV2lkdGhbYV0qdGhpcy5waXhlbFJhdGlvKSxzLnVuaWZvcm1zLnBlcm11dGF0aW9uPWtbYV0sbj0wO248dGhpcy5jb250b3VyTGV2ZWxzW2FdLmxlbmd0aDsrK24pdGhpcy5fY29udG91ckNvdW50c1thXVtuXSYmKHMudW5pZm9ybXMuaGVpZ2h0PXRoaXMuY29udG91ckxldmVsc1thXVtuXSxsLmRyYXcoZS5MSU5FUyx0aGlzLl9jb250b3VyQ291bnRzW2FdW25dLHRoaXMuX2NvbnRvdXJPZmZzZXRzW2FdW25dKSk7Zm9yKG49MDtuPDM7KytuKWZvcihzLnVuaWZvcm1zLm1vZGVsPW8ucHJvamVjdGlvbnNbbl0scy51bmlmb3Jtcy5jbGlwQm91bmRzPW8uY2xpcEJvdW5kc1tuXSxhPTA7YTwzOysrYSlpZih0aGlzLmNvbnRvdXJQcm9qZWN0W25dW2FdKXtzLnVuaWZvcm1zLnBlcm11dGF0aW9uPWtbYV0sZS5saW5lV2lkdGgodGhpcy5jb250b3VyV2lkdGhbYV0qdGhpcy5waXhlbFJhdGlvKTtmb3IodmFyIGM9MDtjPHRoaXMuY29udG91ckxldmVsc1thXS5sZW5ndGg7KytjKXRoaXMuX2NvbnRvdXJDb3VudHNbYV1bY10mJihzLnVuaWZvcm1zLmhlaWdodD10aGlzLmNvbnRvdXJMZXZlbHNbYV1bY10sbC5kcmF3KGUuTElORVMsdGhpcy5fY29udG91ckNvdW50c1thXVtjXSx0aGlzLl9jb250b3VyT2Zmc2V0c1thXVtjXSkpfWwudW5iaW5kKCl9fSxTLnBpY2s9ZnVuY3Rpb24odCl7aWYoIXQpcmV0dXJuIG51bGw7aWYodC5pZCE9PXRoaXMucGlja0lkKXJldHVybiBudWxsO3ZhciBlPXRoaXMuX2ZpZWxkWzJdLnNoYXBlLHI9dGhpcy5fcGlja1Jlc3VsdCxuPWVbMF0qKHQudmFsdWVbMF0rKHQudmFsdWVbMl0+PjQpLzE2KS8yNTUsaT1NYXRoLmZsb29yKG4pLGE9bi1pLG89ZVsxXSoodC52YWx1ZVsxXSsoMTUmdC52YWx1ZVsyXSkvMTYpLzI1NSxzPU1hdGguZmxvb3IobyksbD1vLXM7aSs9MSxzKz0xO3ZhciBjPXIucG9zaXRpb247Y1swXT1jWzFdPWNbMl09MDtmb3IodmFyIHU9MDt1PDI7Kyt1KWZvcih2YXIgZj11P2E6MS1hLGg9MDtoPDI7KytoKWZvcih2YXIgcD1pK3UsZD1zK2gsZz1mKihoP2w6MS1sKSx2PTA7djwzOysrdiljW3ZdKz10aGlzLl9maWVsZFt2XS5nZXQocCxkKSpnO2Zvcih2YXIgeT10aGlzLl9waWNrUmVzdWx0LmxldmVsLHg9MDt4PDM7Kyt4KWlmKHlbeF09bS5sZSh0aGlzLmNvbnRvdXJMZXZlbHNbeF0sY1t4XSkseVt4XTwwKXRoaXMuY29udG91ckxldmVsc1t4XS5sZW5ndGg+MCYmKHlbeF09MCk7ZWxzZSBpZih5W3hdPHRoaXMuY29udG91ckxldmVsc1t4XS5sZW5ndGgtMSl7dmFyIGI9dGhpcy5jb250b3VyTGV2ZWxzW3hdW3lbeF1dLF89dGhpcy5jb250b3VyTGV2ZWxzW3hdW3lbeF0rMV07TWF0aC5hYnMoYi1jW3hdKT5NYXRoLmFicyhfLWNbeF0pJiYoeVt4XSs9MSl9Zm9yKHIuaW5kZXhbMF09YTwuNT9pOmkrMSxyLmluZGV4WzFdPWw8LjU/czpzKzEsci51dlswXT1uL2VbMF0sci51dlsxXT1vL2VbMV0sdj0wO3Y8MzsrK3Ypci5kYXRhQ29vcmRpbmF0ZVt2XT10aGlzLl9maWVsZFt2XS5nZXQoci5pbmRleFswXSxyLmluZGV4WzFdKTtyZXR1cm4gcn0sUy5wYWRGaWVsZD1mdW5jdGlvbih0LGUpe3ZhciByPWUuc2hhcGUuc2xpY2UoKSxuPXQuc2hhcGUuc2xpY2UoKTtjLmFzc2lnbih0LmxvKDEsMSkuaGkoclswXSxyWzFdKSxlKSxjLmFzc2lnbih0LmxvKDEpLmhpKHJbMF0sMSksZS5oaShyWzBdLDEpKSxjLmFzc2lnbih0LmxvKDEsblsxXS0xKS5oaShyWzBdLDEpLGUubG8oMCxyWzFdLTEpLmhpKHJbMF0sMSkpLGMuYXNzaWduKHQubG8oMCwxKS5oaSgxLHJbMV0pLGUuaGkoMSkpLGMuYXNzaWduKHQubG8oblswXS0xLDEpLmhpKDEsclsxXSksZS5sbyhyWzBdLTEpKSx0LnNldCgwLDAsZS5nZXQoMCwwKSksdC5zZXQoMCxuWzFdLTEsZS5nZXQoMCxyWzFdLTEpKSx0LnNldChuWzBdLTEsMCxlLmdldChyWzBdLTEsMCkpLHQuc2V0KG5bMF0tMSxuWzFdLTEsZS5nZXQoclswXS0xLHJbMV0tMSkpfSxTLnVwZGF0ZT1mdW5jdGlvbih0KXt0PXR8fHt9LHRoaXMub2JqZWN0T2Zmc2V0PXQub2JqZWN0T2Zmc2V0fHx0aGlzLm9iamVjdE9mZnNldCx0aGlzLmRpcnR5PSEwLCJjb250b3VyV2lkdGgiaW4gdCYmKHRoaXMuY29udG91cldpZHRoPVIodC5jb250b3VyV2lkdGgsTnVtYmVyKSksInNob3dDb250b3VyImluIHQmJih0aGlzLnNob3dDb250b3VyPVIodC5zaG93Q29udG91cixCb29sZWFuKSksInNob3dTdXJmYWNlImluIHQmJih0aGlzLnNob3dTdXJmYWNlPSEhdC5zaG93U3VyZmFjZSksImNvbnRvdXJUaW50ImluIHQmJih0aGlzLmNvbnRvdXJUaW50PVIodC5jb250b3VyVGludCxCb29sZWFuKSksImNvbnRvdXJDb2xvciJpbiB0JiYodGhpcy5jb250b3VyQ29sb3I9Qih0LmNvbnRvdXJDb2xvcikpLCJjb250b3VyUHJvamVjdCJpbiB0JiYodGhpcy5jb250b3VyUHJvamVjdD1SKHQuY29udG91clByb2plY3QsKGZ1bmN0aW9uKHQpe3JldHVybiBSKHQsQm9vbGVhbil9KSkpLCJzdXJmYWNlUHJvamVjdCJpbiB0JiYodGhpcy5zdXJmYWNlUHJvamVjdD10LnN1cmZhY2VQcm9qZWN0KSwiZHluYW1pY0NvbG9yImluIHQmJih0aGlzLmR5bmFtaWNDb2xvcj1CKHQuZHluYW1pY0NvbG9yKSksImR5bmFtaWNUaW50ImluIHQmJih0aGlzLmR5bmFtaWNUaW50PVIodC5keW5hbWljVGludCxOdW1iZXIpKSwiZHluYW1pY1dpZHRoImluIHQmJih0aGlzLmR5bmFtaWNXaWR0aD1SKHQuZHluYW1pY1dpZHRoLE51bWJlcikpLCJvcGFjaXR5ImluIHQmJih0aGlzLm9wYWNpdHk9dC5vcGFjaXR5KSwib3BhY2l0eXNjYWxlImluIHQmJih0aGlzLm9wYWNpdHlzY2FsZT10Lm9wYWNpdHlzY2FsZSksImNvbG9yQm91bmRzImluIHQmJih0aGlzLmNvbG9yQm91bmRzPXQuY29sb3JCb3VuZHMpLCJ2ZXJ0ZXhDb2xvciJpbiB0JiYodGhpcy52ZXJ0ZXhDb2xvcj10LnZlcnRleENvbG9yPzE6MCksImNvbG9ybWFwImluIHQmJnRoaXMuX2NvbG9yTWFwLnNldFBpeGVscyh0aGlzLmdlbkNvbG9ybWFwKHQuY29sb3JtYXAsdGhpcy5vcGFjaXR5c2NhbGUpKTt2YXIgZT10LmZpZWxkfHx0LmNvb3JkcyYmdC5jb29yZHNbMl18fG51bGwscj0hMTtpZihlfHwoZT10aGlzLl9maWVsZFsyXS5zaGFwZVswXXx8dGhpcy5fZmllbGRbMl0uc2hhcGVbMl0/dGhpcy5fZmllbGRbMl0ubG8oMSwxKS5oaSh0aGlzLl9maWVsZFsyXS5zaGFwZVswXS0yLHRoaXMuX2ZpZWxkWzJdLnNoYXBlWzFdLTIpOnRoaXMuX2ZpZWxkWzJdLmhpKDAsMCkpLCJmaWVsZCJpbiB0fHwiY29vcmRzImluIHQpe3ZhciBpPShlLnNoYXBlWzBdKzIpKihlLnNoYXBlWzFdKzIpO2k+dGhpcy5fZmllbGRbMl0uZGF0YS5sZW5ndGgmJihzLmZyZWVGbG9hdCh0aGlzLl9maWVsZFsyXS5kYXRhKSx0aGlzLl9maWVsZFsyXS5kYXRhPXMubWFsbG9jRmxvYXQobi5uZXh0UG93MihpKSkpLHRoaXMuX2ZpZWxkWzJdPWYodGhpcy5fZmllbGRbMl0uZGF0YSxbZS5zaGFwZVswXSsyLGUuc2hhcGVbMV0rMl0pLHRoaXMucGFkRmllbGQodGhpcy5fZmllbGRbMl0sZSksdGhpcy5zaGFwZT1lLnNoYXBlLnNsaWNlKCk7Zm9yKHZhciBhPXRoaXMuc2hhcGUsbz0wO288MjsrK28pdGhpcy5fZmllbGRbMl0uc2l6ZT50aGlzLl9maWVsZFtvXS5kYXRhLmxlbmd0aCYmKHMuZnJlZUZsb2F0KHRoaXMuX2ZpZWxkW29dLmRhdGEpLHRoaXMuX2ZpZWxkW29dLmRhdGE9cy5tYWxsb2NGbG9hdCh0aGlzLl9maWVsZFsyXS5zaXplKSksdGhpcy5fZmllbGRbb109Zih0aGlzLl9maWVsZFtvXS5kYXRhLFthWzBdKzIsYVsxXSsyXSk7aWYodC5jb29yZHMpe3ZhciBsPXQuY29vcmRzO2lmKCFBcnJheS5pc0FycmF5KGwpfHwzIT09bC5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJnbC1zdXJmYWNlOiBpbnZhbGlkIGNvb3JkaW5hdGVzIGZvciB4L3kiKTtmb3Iobz0wO288MjsrK28pe3ZhciBjPWxbb107Zm9yKHY9MDt2PDI7Kyt2KWlmKGMuc2hhcGVbdl0hPT1hW3ZdKXRocm93IG5ldyBFcnJvcigiZ2wtc3VyZmFjZTogY29vcmRzIGhhdmUgaW5jb3JyZWN0IHNoYXBlIik7dGhpcy5wYWRGaWVsZCh0aGlzLl9maWVsZFtvXSxjKX19ZWxzZSBpZih0LnRpY2tzKXt2YXIgdT10LnRpY2tzO2lmKCFBcnJheS5pc0FycmF5KHUpfHwyIT09dS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJnbC1zdXJmYWNlOiBpbnZhbGlkIHRpY2tzIik7Zm9yKG89MDtvPDI7KytvKXt2YXIgcD11W29dO2lmKChBcnJheS5pc0FycmF5KHApfHxwLmxlbmd0aCkmJihwPWYocCkpLHAuc2hhcGVbMF0hPT1hW29dKXRocm93IG5ldyBFcnJvcigiZ2wtc3VyZmFjZTogaW52YWxpZCB0aWNrIGxlbmd0aCIpO3ZhciBkPWYocC5kYXRhLGEpO2Quc3RyaWRlW29dPXAuc3RyaWRlWzBdLGQuc3RyaWRlWzFeb109MCx0aGlzLnBhZEZpZWxkKHRoaXMuX2ZpZWxkW29dLGQpfX1lbHNle2ZvcihvPTA7bzwyOysrbyl7dmFyIG09WzAsMF07bVtvXT0xLHRoaXMuX2ZpZWxkW29dPWYodGhpcy5fZmllbGRbb10uZGF0YSxbYVswXSsyLGFbMV0rMl0sbSwwKX10aGlzLl9maWVsZFswXS5zZXQoMCwwLDApO2Zvcih2YXIgdj0wO3Y8YVswXTsrK3YpdGhpcy5fZmllbGRbMF0uc2V0KHYrMSwwLHYpO2Zvcih0aGlzLl9maWVsZFswXS5zZXQoYVswXSsxLDAsYVswXS0xKSx0aGlzLl9maWVsZFsxXS5zZXQoMCwwLDApLHY9MDt2PGFbMV07Kyt2KXRoaXMuX2ZpZWxkWzFdLnNldCgwLHYrMSx2KTt0aGlzLl9maWVsZFsxXS5zZXQoMCxhWzFdKzEsYVsxXS0xKX12YXIgeT10aGlzLl9maWVsZCx4PWYocy5tYWxsb2NGbG9hdCgzKnlbMl0uc2l6ZSoyKSxbMyxhWzBdKzIsYVsxXSsyLDJdKTtmb3Iobz0wO288MzsrK28pZyh4LnBpY2sobykseVtvXSwibWlycm9yIik7dmFyIGI9ZihzLm1hbGxvY0Zsb2F0KDMqeVsyXS5zaXplKSxbYVswXSsyLGFbMV0rMiwzXSk7Zm9yKG89MDtvPGFbMF0rMjsrK28pZm9yKHY9MDt2PGFbMV0rMjsrK3Ype3ZhciBfPXguZ2V0KDAsbyx2LDApLHc9eC5nZXQoMCxvLHYsMSksaz14LmdldCgxLG8sdiwwKSxBPXguZ2V0KDEsbyx2LDEpLE09eC5nZXQoMixvLHYsMCksUz14LmdldCgyLG8sdiwxKSxFPWsqUy1BKk0sTD1NKnctUypfLEM9XypBLXcqayxQPU1hdGguc3FydChFKkUrTCpMK0MqQyk7UDwxZS04PyhQPU1hdGgubWF4KE1hdGguYWJzKEUpLE1hdGguYWJzKEwpLE1hdGguYWJzKEMpKSk8MWUtOD8oQz0xLEw9RT0wLFA9MSk6UD0xL1A6UD0xL01hdGguc3FydChQKSxiLnNldChvLHYsMCxFKlApLGIuc2V0KG8sdiwxLEwqUCksYi5zZXQobyx2LDIsQypQKX1zLmZyZWUoeC5kYXRhKTt2YXIgST1bMS8wLDEvMCwxLzBdLE89Wy0xLzAsLTEvMCwtMS8wXSx6PTEvMCxEPS0xLzAsRj0oYVswXS0xKSooYVsxXS0xKSo2LE49cy5tYWxsb2NGbG9hdChuLm5leHRQb3cyKDEwKkYpKSxqPTAsVT0wO2ZvcihvPTA7bzxhWzBdLTE7KytvKXQ6Zm9yKHY9MDt2PGFbMV0tMTsrK3Ype2Zvcih2YXIgVj0wO1Y8MjsrK1YpZm9yKHZhciBIPTA7SDwyOysrSClmb3IodmFyIHE9MDtxPDM7KytxKXt2YXIgRz10aGlzLl9maWVsZFtxXS5nZXQoMStvK1YsMSt2K0gpO2lmKGlzTmFOKEcpfHwhaXNGaW5pdGUoRykpY29udGludWUgdH1mb3IocT0wO3E8NjsrK3Epe3ZhciBZPW8rVFtxXVswXSxXPXYrVFtxXVsxXSxYPXRoaXMuX2ZpZWxkWzBdLmdldChZKzEsVysxKSxaPXRoaXMuX2ZpZWxkWzFdLmdldChZKzEsVysxKTtHPXRoaXMuX2ZpZWxkWzJdLmdldChZKzEsVysxKSxFPWIuZ2V0KFkrMSxXKzEsMCksTD1iLmdldChZKzEsVysxLDEpLEM9Yi5nZXQoWSsxLFcrMSwyKSx0LmludGVuc2l0eSYmKEo9dC5pbnRlbnNpdHkuZ2V0KFksVykpO3ZhciBKPXQuaW50ZW5zaXR5P3QuaW50ZW5zaXR5LmdldChZLFcpOkcrdGhpcy5vYmplY3RPZmZzZXRbMl07TltqKytdPVksTltqKytdPVcsTltqKytdPVgsTltqKytdPVosTltqKytdPUcsTltqKytdPTAsTltqKytdPUosTltqKytdPUUsTltqKytdPUwsTltqKytdPUMsSVswXT1NYXRoLm1pbihJWzBdLFgrdGhpcy5vYmplY3RPZmZzZXRbMF0pLElbMV09TWF0aC5taW4oSVsxXSxaK3RoaXMub2JqZWN0T2Zmc2V0WzFdKSxJWzJdPU1hdGgubWluKElbMl0sRyt0aGlzLm9iamVjdE9mZnNldFsyXSksej1NYXRoLm1pbih6LEopLE9bMF09TWF0aC5tYXgoT1swXSxYK3RoaXMub2JqZWN0T2Zmc2V0WzBdKSxPWzFdPU1hdGgubWF4KE9bMV0sWit0aGlzLm9iamVjdE9mZnNldFsxXSksT1syXT1NYXRoLm1heChPWzJdLEcrdGhpcy5vYmplY3RPZmZzZXRbMl0pLEQ9TWF0aC5tYXgoRCxKKSxVKz0xfX1mb3IodC5pbnRlbnNpdHlCb3VuZHMmJih6PSt0LmludGVuc2l0eUJvdW5kc1swXSxEPSt0LmludGVuc2l0eUJvdW5kc1sxXSksbz02O288ajtvKz0xMClOW29dPShOW29dLXopLyhELXopO3RoaXMuX3ZlcnRleENvdW50PVUsdGhpcy5fY29vcmRpbmF0ZUJ1ZmZlci51cGRhdGUoTi5zdWJhcnJheSgwLGopKSxzLmZyZWVGbG9hdChOKSxzLmZyZWUoYi5kYXRhKSx0aGlzLmJvdW5kcz1bSSxPXSx0aGlzLmludGVuc2l0eT10LmludGVuc2l0eXx8dGhpcy5fZmllbGRbMl0sdGhpcy5pbnRlbnNpdHlCb3VuZHNbMF09PT16JiZ0aGlzLmludGVuc2l0eUJvdW5kc1sxXT09PUR8fChyPSEwKSx0aGlzLmludGVuc2l0eUJvdW5kcz1beixEXX1pZigibGV2ZWxzImluIHQpe3ZhciBLPXQubGV2ZWxzO2ZvcihLPUFycmF5LmlzQXJyYXkoS1swXSk/Sy5zbGljZSgpOltbXSxbXSxLXSxvPTA7bzwzOysrbylLW29dPUtbb10uc2xpY2UoKSxLW29dLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQtZX0pKTtmb3Iobz0wO288MzsrK28pZm9yKHY9MDt2PEtbb10ubGVuZ3RoOysrdilLW29dW3ZdLT10aGlzLm9iamVjdE9mZnNldFtvXTt0OmZvcihvPTA7bzwzOysrbyl7aWYoS1tvXS5sZW5ndGghPT10aGlzLmNvbnRvdXJMZXZlbHNbb10ubGVuZ3RoKXtyPSEwO2JyZWFrfWZvcih2PTA7djxLW29dLmxlbmd0aDsrK3YpaWYoS1tvXVt2XSE9PXRoaXMuY29udG91ckxldmVsc1tvXVt2XSl7cj0hMDticmVhayB0fX10aGlzLmNvbnRvdXJMZXZlbHM9S31pZihyKXt5PXRoaXMuX2ZpZWxkLGE9dGhpcy5zaGFwZTtmb3IodmFyIFE9W10sJD0wOyQ8MzsrKyQpe3ZhciB0dD10aGlzLmNvbnRvdXJMZXZlbHNbJF0sZXQ9W10scnQ9W10sbnQ9WzAsMCwwXTtmb3Iobz0wO288dHQubGVuZ3RoOysrbyl7dmFyIGl0PWgodGhpcy5fZmllbGRbJF0sdHRbb10pO2V0LnB1c2goUS5sZW5ndGgvNXwwKSxVPTA7dDpmb3Iodj0wO3Y8aXQuY2VsbHMubGVuZ3RoOysrdil7dmFyIGF0PWl0LmNlbGxzW3ZdO2ZvcihxPTA7cTwyOysrcSl7dmFyIG90PWl0LnBvc2l0aW9uc1thdFtxXV0sc3Q9b3RbMF0sbHQ9MHxNYXRoLmZsb29yKHN0KSxjdD1zdC1sdCx1dD1vdFsxXSxmdD0wfE1hdGguZmxvb3IodXQpLGh0PXV0LWZ0LHB0PSExO2U6Zm9yKHZhciBkdD0wO2R0PDM7KytkdCl7bnRbZHRdPTA7dmFyIG10PSgkK2R0KzEpJTM7Zm9yKFY9MDtWPDI7KytWKXt2YXIgZ3Q9Vj9jdDoxLWN0O2ZvcihZPTB8TWF0aC5taW4oTWF0aC5tYXgobHQrViwwKSxhWzBdKSxIPTA7SDwyOysrSCl7dmFyIHZ0PUg/aHQ6MS1odDtpZihXPTB8TWF0aC5taW4oTWF0aC5tYXgoZnQrSCwwKSxhWzFdKSxHPWR0PDI/dGhpcy5fZmllbGRbbXRdLmdldChZLFcpOih0aGlzLmludGVuc2l0eS5nZXQoWSxXKS10aGlzLmludGVuc2l0eUJvdW5kc1swXSkvKHRoaXMuaW50ZW5zaXR5Qm91bmRzWzFdLXRoaXMuaW50ZW5zaXR5Qm91bmRzWzBdKSwhaXNGaW5pdGUoRyl8fGlzTmFOKEcpKXtwdD0hMDticmVhayBlfXZhciB5dD1ndCp2dDtudFtkdF0rPXl0Kkd9fX1pZihwdCl7aWYocT4wKXtmb3IodmFyIHh0PTA7eHQ8NTsrK3h0KVEucG9wKCk7VS09MX1jb250aW51ZSB0fVEucHVzaChudFswXSxudFsxXSxvdFswXSxvdFsxXSxudFsyXSksVSs9MX19cnQucHVzaChVKX10aGlzLl9jb250b3VyT2Zmc2V0c1skXT1ldCx0aGlzLl9jb250b3VyQ291bnRzWyRdPXJ0fXZhciBidD1zLm1hbGxvY0Zsb2F0KFEubGVuZ3RoKTtmb3Iobz0wO288US5sZW5ndGg7KytvKWJ0W29dPVFbb107dGhpcy5fY29udG91ckJ1ZmZlci51cGRhdGUoYnQpLHMuZnJlZUZsb2F0KGJ0KX19LFMuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuX3NoYWRlci5kaXNwb3NlKCksdGhpcy5fdmFvLmRpc3Bvc2UoKSx0aGlzLl9jb29yZGluYXRlQnVmZmVyLmRpc3Bvc2UoKSx0aGlzLl9jb2xvck1hcC5kaXNwb3NlKCksdGhpcy5fY29udG91ckJ1ZmZlci5kaXNwb3NlKCksdGhpcy5fY29udG91clZBTy5kaXNwb3NlKCksdGhpcy5fY29udG91clNoYWRlci5kaXNwb3NlKCksdGhpcy5fY29udG91clBpY2tTaGFkZXIuZGlzcG9zZSgpLHRoaXMuX2R5bmFtaWNCdWZmZXIuZGlzcG9zZSgpLHRoaXMuX2R5bmFtaWNWQU8uZGlzcG9zZSgpO2Zvcih2YXIgdD0wO3Q8MzsrK3Qpcy5mcmVlRmxvYXQodGhpcy5fZmllbGRbdF0uZGF0YSl9LFMuaGlnaGxpZ2h0PWZ1bmN0aW9uKHQpe3ZhciBlLHI7aWYoIXQpcmV0dXJuIHRoaXMuX2R5bmFtaWNDb3VudHM9WzAsMCwwXSx0aGlzLmR5YW5hbWljTGV2ZWw9W05hTixOYU4sTmFOXSx2b2lkKHRoaXMuaGlnaGxpZ2h0TGV2ZWw9Wy0xLC0xLC0xXSk7Zm9yKGU9MDtlPDM7KytlKXRoaXMuZW5hYmxlSGlnaGxpZ2h0W2VdP3RoaXMuaGlnaGxpZ2h0TGV2ZWxbZV09dC5sZXZlbFtlXTp0aGlzLmhpZ2hsaWdodExldmVsW2VdPS0xO2ZvcihyPXRoaXMuc25hcFRvRGF0YT90LmRhdGFDb29yZGluYXRlOnQucG9zaXRpb24sZT0wO2U8MzsrK2UpcltlXS09dGhpcy5vYmplY3RPZmZzZXRbZV07aWYodGhpcy5lbmFibGVEeW5hbWljWzBdJiZyWzBdIT09dGhpcy5keW5hbWljTGV2ZWxbMF18fHRoaXMuZW5hYmxlRHluYW1pY1sxXSYmclsxXSE9PXRoaXMuZHluYW1pY0xldmVsWzFdfHx0aGlzLmVuYWJsZUR5bmFtaWNbMl0mJnJbMl0hPT10aGlzLmR5bmFtaWNMZXZlbFsyXSl7Zm9yKHZhciBuPTAsaT10aGlzLnNoYXBlLGE9cy5tYWxsb2NGbG9hdCgxMippWzBdKmlbMV0pLG89MDtvPDM7KytvKWlmKHRoaXMuZW5hYmxlRHluYW1pY1tvXSl7dGhpcy5keW5hbWljTGV2ZWxbb109cltvXTt2YXIgbD0obysxKSUzLGM9KG8rMiklMyx1PXRoaXMuX2ZpZWxkW29dLGY9dGhpcy5fZmllbGRbbF0scD10aGlzLl9maWVsZFtjXSxkPWgodSxyW29dKSxtPWQuY2VsbHMsZz1kLnBvc2l0aW9ucztmb3IodGhpcy5fZHluYW1pY09mZnNldHNbb109bixlPTA7ZTxtLmxlbmd0aDsrK2UpZm9yKHZhciB2PW1bZV0seT0wO3k8MjsrK3kpe3ZhciB4PWdbdlt5XV0sYj0reFswXSxfPTB8Yix3PTB8TWF0aC5taW4oXysxLGlbMF0pLFQ9Yi1fLGs9MS1ULEE9K3hbMV0sTT0wfEEsUz0wfE1hdGgubWluKE0rMSxpWzFdKSxFPUEtTSxMPTEtRSxDPWsqTCxQPWsqRSxJPVQqTCxPPVQqRSx6PUMqZi5nZXQoXyxNKStQKmYuZ2V0KF8sUykrSSpmLmdldCh3LE0pK08qZi5nZXQodyxTKSxEPUMqcC5nZXQoXyxNKStQKnAuZ2V0KF8sUykrSSpwLmdldCh3LE0pK08qcC5nZXQodyxTKTtpZihpc05hTih6KXx8aXNOYU4oRCkpe3kmJihuLT0xKTticmVha31hWzIqbiswXT16LGFbMipuKzFdPUQsbis9MX10aGlzLl9keW5hbWljQ291bnRzW29dPW4tdGhpcy5fZHluYW1pY09mZnNldHNbb119ZWxzZSB0aGlzLmR5bmFtaWNMZXZlbFtvXT1OYU4sdGhpcy5fZHluYW1pY0NvdW50c1tvXT0wO3RoaXMuX2R5bmFtaWNCdWZmZXIudXBkYXRlKGEuc3ViYXJyYXkoMCwyKm4pKSxzLmZyZWVGbG9hdChhKX19fSx7Ii4vbGliL3NoYWRlcnMiOjE0NCwiYmluYXJ5LXNlYXJjaC1ib3VuZHMiOjMxLCJiaXQtdHdpZGRsZSI6MzIsY29sb3JtYXA6NTMsImdsLWJ1ZmZlciI6NzgsImdsLW1hdDQvaW52ZXJ0Ijo5OCwiZ2wtbWF0NC9tdWx0aXBseSI6MTAwLCJnbC10ZXh0dXJlMmQiOjE0NiwiZ2wtdmFvIjoxNTAsbmRhcnJheToyNTksIm5kYXJyYXktZ3JhZGllbnQiOjI1MiwibmRhcnJheS1vcHMiOjI1NCwibmRhcnJheS1wYWNrIjoyNTUsInN1cmZhY2UtbmV0cyI6MzAyLCJ0eXBlZGFycmF5LXBvb2wiOjMwOH1dLDE0NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJuZGFycmF5IiksaT10KCJuZGFycmF5LW9wcyIpLGE9dCgidHlwZWRhcnJheS1wb29sIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKGFyZ3VtZW50cy5sZW5ndGg8PTEpdGhyb3cgbmV3IEVycm9yKCJnbC10ZXh0dXJlMmQ6IE1pc3NpbmcgYXJndW1lbnRzIGZvciB0ZXh0dXJlMmQgY29uc3RydWN0b3IiKTtvfHxjKHQpO2lmKCJudW1iZXIiPT10eXBlb2YgYXJndW1lbnRzWzFdKXJldHVybiB2KHQsYXJndW1lbnRzWzFdLGFyZ3VtZW50c1syXSxhcmd1bWVudHNbM118fHQuUkdCQSxhcmd1bWVudHNbNF18fHQuVU5TSUdORURfQllURSk7aWYoQXJyYXkuaXNBcnJheShhcmd1bWVudHNbMV0pKXJldHVybiB2KHQsMHxhcmd1bWVudHNbMV1bMF0sMHxhcmd1bWVudHNbMV1bMV0sYXJndW1lbnRzWzJdfHx0LlJHQkEsYXJndW1lbnRzWzNdfHx0LlVOU0lHTkVEX0JZVEUpO2lmKCJvYmplY3QiPT10eXBlb2YgYXJndW1lbnRzWzFdKXt2YXIgZT1hcmd1bWVudHNbMV0scj11KGUpP2U6ZS5yYXc7aWYocilyZXR1cm4geSh0LHIsMHxlLndpZHRoLDB8ZS5oZWlnaHQsYXJndW1lbnRzWzJdfHx0LlJHQkEsYXJndW1lbnRzWzNdfHx0LlVOU0lHTkVEX0JZVEUpO2lmKGUuc2hhcGUmJmUuZGF0YSYmZS5zdHJpZGUpcmV0dXJuIHgodCxlKX10aHJvdyBuZXcgRXJyb3IoImdsLXRleHR1cmUyZDogSW52YWxpZCBhcmd1bWVudHMgZm9yIHRleHR1cmUyZCBjb25zdHJ1Y3RvciIpfTt2YXIgbz1udWxsLHM9bnVsbCxsPW51bGw7ZnVuY3Rpb24gYyh0KXtvPVt0LkxJTkVBUix0Lk5FQVJFU1RfTUlQTUFQX0xJTkVBUix0LkxJTkVBUl9NSVBNQVBfTkVBUkVTVCx0LkxJTkVBUl9NSVBNQVBfTkVBUkVTVF0scz1bdC5ORUFSRVNULHQuTElORUFSLHQuTkVBUkVTVF9NSVBNQVBfTkVBUkVTVCx0Lk5FQVJFU1RfTUlQTUFQX0xJTkVBUix0LkxJTkVBUl9NSVBNQVBfTkVBUkVTVCx0LkxJTkVBUl9NSVBNQVBfTElORUFSXSxsPVt0LlJFUEVBVCx0LkNMQU1QX1RPX0VER0UsdC5NSVJST1JFRF9SRVBFQVRdfWZ1bmN0aW9uIHUodCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBIVE1MQ2FudmFzRWxlbWVudCYmdCBpbnN0YW5jZW9mIEhUTUxDYW52YXNFbGVtZW50fHwidW5kZWZpbmVkIiE9dHlwZW9mIEhUTUxJbWFnZUVsZW1lbnQmJnQgaW5zdGFuY2VvZiBIVE1MSW1hZ2VFbGVtZW50fHwidW5kZWZpbmVkIiE9dHlwZW9mIEhUTUxWaWRlb0VsZW1lbnQmJnQgaW5zdGFuY2VvZiBIVE1MVmlkZW9FbGVtZW50fHwidW5kZWZpbmVkIiE9dHlwZW9mIEltYWdlRGF0YSYmdCBpbnN0YW5jZW9mIEltYWdlRGF0YX12YXIgZj1mdW5jdGlvbih0LGUpe2kubXVscyh0LGUsMjU1KX07ZnVuY3Rpb24gaCh0LGUscil7dmFyIG49dC5nbCxpPW4uZ2V0UGFyYW1ldGVyKG4uTUFYX1RFWFRVUkVfU0laRSk7aWYoZTwwfHxlPml8fHI8MHx8cj5pKXRocm93IG5ldyBFcnJvcigiZ2wtdGV4dHVyZTJkOiBJbnZhbGlkIHRleHR1cmUgc2l6ZSIpO3JldHVybiB0Ll9zaGFwZT1bZSxyXSx0LmJpbmQoKSxuLnRleEltYWdlMkQobi5URVhUVVJFXzJELDAsdC5mb3JtYXQsZSxyLDAsdC5mb3JtYXQsdC50eXBlLG51bGwpLHQuX21pcExldmVscz1bMF0sdH1mdW5jdGlvbiBwKHQsZSxyLG4saSxhKXt0aGlzLmdsPXQsdGhpcy5oYW5kbGU9ZSx0aGlzLmZvcm1hdD1pLHRoaXMudHlwZT1hLHRoaXMuX3NoYXBlPVtyLG5dLHRoaXMuX21pcExldmVscz1bMF0sdGhpcy5fbWFnRmlsdGVyPXQuTkVBUkVTVCx0aGlzLl9taW5GaWx0ZXI9dC5ORUFSRVNULHRoaXMuX3dyYXBTPXQuQ0xBTVBfVE9fRURHRSx0aGlzLl93cmFwVD10LkNMQU1QX1RPX0VER0UsdGhpcy5fYW5pc29TYW1wbGVzPTE7dmFyIG89dGhpcyxzPVt0aGlzLl93cmFwUyx0aGlzLl93cmFwVF07T2JqZWN0LmRlZmluZVByb3BlcnRpZXMocyxbe2dldDpmdW5jdGlvbigpe3JldHVybiBvLl93cmFwU30sc2V0OmZ1bmN0aW9uKHQpe3JldHVybiBvLndyYXBTPXR9fSx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8uX3dyYXBUfSxzZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIG8ud3JhcFQ9dH19XSksdGhpcy5fd3JhcFZlY3Rvcj1zO3ZhciBsPVt0aGlzLl9zaGFwZVswXSx0aGlzLl9zaGFwZVsxXV07T2JqZWN0LmRlZmluZVByb3BlcnRpZXMobCxbe2dldDpmdW5jdGlvbigpe3JldHVybiBvLl9zaGFwZVswXX0sc2V0OmZ1bmN0aW9uKHQpe3JldHVybiBvLndpZHRoPXR9fSx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8uX3NoYXBlWzFdfSxzZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIG8uaGVpZ2h0PXR9fV0pLHRoaXMuX3NoYXBlVmVjdG9yPWx9dmFyIGQ9cC5wcm90b3R5cGU7ZnVuY3Rpb24gbSh0LGUpe3JldHVybiAzPT09dC5sZW5ndGg/MT09PWVbMl0mJmVbMV09PT10WzBdKnRbMl0mJmVbMF09PT10WzJdOjE9PT1lWzBdJiZlWzFdPT09dFswXX1mdW5jdGlvbiBnKHQpe3ZhciBlPXQuY3JlYXRlVGV4dHVyZSgpO3JldHVybiB0LmJpbmRUZXh0dXJlKHQuVEVYVFVSRV8yRCxlKSx0LnRleFBhcmFtZXRlcmkodC5URVhUVVJFXzJELHQuVEVYVFVSRV9NSU5fRklMVEVSLHQuTkVBUkVTVCksdC50ZXhQYXJhbWV0ZXJpKHQuVEVYVFVSRV8yRCx0LlRFWFRVUkVfTUFHX0ZJTFRFUix0Lk5FQVJFU1QpLHQudGV4UGFyYW1ldGVyaSh0LlRFWFRVUkVfMkQsdC5URVhUVVJFX1dSQVBfUyx0LkNMQU1QX1RPX0VER0UpLHQudGV4UGFyYW1ldGVyaSh0LlRFWFRVUkVfMkQsdC5URVhUVVJFX1dSQVBfVCx0LkNMQU1QX1RPX0VER0UpLGV9ZnVuY3Rpb24gdih0LGUscixuLGkpe3ZhciBhPXQuZ2V0UGFyYW1ldGVyKHQuTUFYX1RFWFRVUkVfU0laRSk7aWYoZTwwfHxlPmF8fHI8MHx8cj5hKXRocm93IG5ldyBFcnJvcigiZ2wtdGV4dHVyZTJkOiBJbnZhbGlkIHRleHR1cmUgc2hhcGUiKTtpZihpPT09dC5GTE9BVCYmIXQuZ2V0RXh0ZW5zaW9uKCJPRVNfdGV4dHVyZV9mbG9hdCIpKXRocm93IG5ldyBFcnJvcigiZ2wtdGV4dHVyZTJkOiBGbG9hdGluZyBwb2ludCB0ZXh0dXJlcyBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgcGxhdGZvcm0iKTt2YXIgbz1nKHQpO3JldHVybiB0LnRleEltYWdlMkQodC5URVhUVVJFXzJELDAsbixlLHIsMCxuLGksbnVsbCksbmV3IHAodCxvLGUscixuLGkpfWZ1bmN0aW9uIHkodCxlLHIsbixpLGEpe3ZhciBvPWcodCk7cmV0dXJuIHQudGV4SW1hZ2UyRCh0LlRFWFRVUkVfMkQsMCxpLGksYSxlKSxuZXcgcCh0LG8scixuLGksYSl9ZnVuY3Rpb24geCh0LGUpe3ZhciByPWUuZHR5cGUsbz1lLnNoYXBlLnNsaWNlKCkscz10LmdldFBhcmFtZXRlcih0Lk1BWF9URVhUVVJFX1NJWkUpO2lmKG9bMF08MHx8b1swXT5zfHxvWzFdPDB8fG9bMV0+cyl0aHJvdyBuZXcgRXJyb3IoImdsLXRleHR1cmUyZDogSW52YWxpZCB0ZXh0dXJlIHNpemUiKTt2YXIgbD1tKG8sZS5zdHJpZGUuc2xpY2UoKSksYz0wOyJmbG9hdDMyIj09PXI/Yz10LkZMT0FUOiJmbG9hdDY0Ij09PXI/KGM9dC5GTE9BVCxsPSExLHI9ImZsb2F0MzIiKToidWludDgiPT09cj9jPXQuVU5TSUdORURfQllURTooYz10LlVOU0lHTkVEX0JZVEUsbD0hMSxyPSJ1aW50OCIpO3ZhciB1LGgsZD0wO2lmKDI9PT1vLmxlbmd0aClkPXQuTFVNSU5BTkNFLG89W29bMF0sb1sxXSwxXSxlPW4oZS5kYXRhLG8sW2Uuc3RyaWRlWzBdLGUuc3RyaWRlWzFdLDFdLGUub2Zmc2V0KTtlbHNle2lmKDMhPT1vLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoImdsLXRleHR1cmUyZDogSW52YWxpZCBzaGFwZSBmb3IgdGV4dHVyZSIpO2lmKDE9PT1vWzJdKWQ9dC5BTFBIQTtlbHNlIGlmKDI9PT1vWzJdKWQ9dC5MVU1JTkFOQ0VfQUxQSEE7ZWxzZSBpZigzPT09b1syXSlkPXQuUkdCO2Vsc2V7aWYoNCE9PW9bMl0pdGhyb3cgbmV3IEVycm9yKCJnbC10ZXh0dXJlMmQ6IEludmFsaWQgc2hhcGUgZm9yIHBpeGVsIGNvb3JkcyIpO2Q9dC5SR0JBfX1jIT09dC5GTE9BVHx8dC5nZXRFeHRlbnNpb24oIk9FU190ZXh0dXJlX2Zsb2F0Iil8fChjPXQuVU5TSUdORURfQllURSxsPSExKTt2YXIgdj1lLnNpemU7aWYobCl1PTA9PT1lLm9mZnNldCYmZS5kYXRhLmxlbmd0aD09PXY/ZS5kYXRhOmUuZGF0YS5zdWJhcnJheShlLm9mZnNldCxlLm9mZnNldCt2KTtlbHNle3ZhciB5PVtvWzJdLG9bMl0qb1swXSwxXTtoPWEubWFsbG9jKHYscik7dmFyIHg9bihoLG8seSwwKTsiZmxvYXQzMiIhPT1yJiYiZmxvYXQ2NCIhPT1yfHxjIT09dC5VTlNJR05FRF9CWVRFP2kuYXNzaWduKHgsZSk6Zih4LGUpLHU9aC5zdWJhcnJheSgwLHYpfXZhciBiPWcodCk7cmV0dXJuIHQudGV4SW1hZ2UyRCh0LlRFWFRVUkVfMkQsMCxkLG9bMF0sb1sxXSwwLGQsYyx1KSxsfHxhLmZyZWUoaCksbmV3IHAodCxiLG9bMF0sb1sxXSxkLGMpfU9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGQse21pbkZpbHRlcjp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21pbkZpbHRlcn0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuYmluZCgpO3ZhciBlPXRoaXMuZ2w7aWYodGhpcy50eXBlPT09ZS5GTE9BVCYmby5pbmRleE9mKHQpPj0wJiYoZS5nZXRFeHRlbnNpb24oIk9FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpfHwodD1lLk5FQVJFU1QpKSxzLmluZGV4T2YodCk8MCl0aHJvdyBuZXcgRXJyb3IoImdsLXRleHR1cmUyZDogVW5rbm93biBmaWx0ZXIgbW9kZSAiK3QpO3JldHVybiBlLnRleFBhcmFtZXRlcmkoZS5URVhUVVJFXzJELGUuVEVYVFVSRV9NSU5fRklMVEVSLHQpLHRoaXMuX21pbkZpbHRlcj10fX0sbWFnRmlsdGVyOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbWFnRmlsdGVyfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5iaW5kKCk7dmFyIGU9dGhpcy5nbDtpZih0aGlzLnR5cGU9PT1lLkZMT0FUJiZvLmluZGV4T2YodCk+PTAmJihlLmdldEV4dGVuc2lvbigiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIil8fCh0PWUuTkVBUkVTVCkpLHMuaW5kZXhPZih0KTwwKXRocm93IG5ldyBFcnJvcigiZ2wtdGV4dHVyZTJkOiBVbmtub3duIGZpbHRlciBtb2RlICIrdCk7cmV0dXJuIGUudGV4UGFyYW1ldGVyaShlLlRFWFRVUkVfMkQsZS5URVhUVVJFX01BR19GSUxURVIsdCksdGhpcy5fbWFnRmlsdGVyPXR9fSxtaXBTYW1wbGVzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYW5pc29TYW1wbGVzfSxzZXQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fYW5pc29TYW1wbGVzO2lmKHRoaXMuX2FuaXNvU2FtcGxlcz0wfE1hdGgubWF4KHQsMSksZSE9PXRoaXMuX2FuaXNvU2FtcGxlcyl7dmFyIHI9dGhpcy5nbC5nZXRFeHRlbnNpb24oIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpO3ImJnRoaXMuZ2wudGV4UGFyYW1ldGVyZih0aGlzLmdsLlRFWFRVUkVfMkQsci5URVhUVVJFX01BWF9BTklTT1RST1BZX0VYVCx0aGlzLl9hbmlzb1NhbXBsZXMpfXJldHVybiB0aGlzLl9hbmlzb1NhbXBsZXN9fSx3cmFwUzp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dyYXBTfSxzZXQ6ZnVuY3Rpb24odCl7aWYodGhpcy5iaW5kKCksbC5pbmRleE9mKHQpPDApdGhyb3cgbmV3IEVycm9yKCJnbC10ZXh0dXJlMmQ6IFVua25vd24gd3JhcCBtb2RlICIrdCk7cmV0dXJuIHRoaXMuZ2wudGV4UGFyYW1ldGVyaSh0aGlzLmdsLlRFWFRVUkVfMkQsdGhpcy5nbC5URVhUVVJFX1dSQVBfUyx0KSx0aGlzLl93cmFwUz10fX0sd3JhcFQ6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93cmFwVH0sc2V0OmZ1bmN0aW9uKHQpe2lmKHRoaXMuYmluZCgpLGwuaW5kZXhPZih0KTwwKXRocm93IG5ldyBFcnJvcigiZ2wtdGV4dHVyZTJkOiBVbmtub3duIHdyYXAgbW9kZSAiK3QpO3JldHVybiB0aGlzLmdsLnRleFBhcmFtZXRlcmkodGhpcy5nbC5URVhUVVJFXzJELHRoaXMuZ2wuVEVYVFVSRV9XUkFQX1QsdCksdGhpcy5fd3JhcFQ9dH19LHdyYXA6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93cmFwVmVjdG9yfSxzZXQ6ZnVuY3Rpb24odCl7aWYoQXJyYXkuaXNBcnJheSh0KXx8KHQ9W3QsdF0pLDIhPT10Lmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoImdsLXRleHR1cmUyZDogTXVzdCBzcGVjaWZ5IHdyYXAgbW9kZSBmb3Igcm93cyBhbmQgY29sdW1ucyIpO2Zvcih2YXIgZT0wO2U8MjsrK2UpaWYobC5pbmRleE9mKHRbZV0pPDApdGhyb3cgbmV3IEVycm9yKCJnbC10ZXh0dXJlMmQ6IFVua25vd24gd3JhcCBtb2RlICIrdCk7dGhpcy5fd3JhcFM9dFswXSx0aGlzLl93cmFwVD10WzFdO3ZhciByPXRoaXMuZ2w7cmV0dXJuIHRoaXMuYmluZCgpLHIudGV4UGFyYW1ldGVyaShyLlRFWFRVUkVfMkQsci5URVhUVVJFX1dSQVBfUyx0aGlzLl93cmFwUyksci50ZXhQYXJhbWV0ZXJpKHIuVEVYVFVSRV8yRCxyLlRFWFRVUkVfV1JBUF9ULHRoaXMuX3dyYXBUKSx0fX0sc2hhcGU6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zaGFwZVZlY3Rvcn0sc2V0OmZ1bmN0aW9uKHQpe2lmKEFycmF5LmlzQXJyYXkodCkpe2lmKDIhPT10Lmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoImdsLXRleHR1cmUyZDogSW52YWxpZCB0ZXh0dXJlIHNoYXBlIil9ZWxzZSB0PVswfHQsMHx0XTtyZXR1cm4gaCh0aGlzLDB8dFswXSwwfHRbMV0pLFswfHRbMF0sMHx0WzFdXX19LHdpZHRoOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2hhcGVbMF19LHNldDpmdW5jdGlvbih0KXtyZXR1cm4gaCh0aGlzLHR8PTAsdGhpcy5fc2hhcGVbMV0pLHR9fSxoZWlnaHQ6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zaGFwZVsxXX0sc2V0OmZ1bmN0aW9uKHQpe3JldHVybiB0fD0wLGgodGhpcyx0aGlzLl9zaGFwZVswXSx0KSx0fX19KSxkLmJpbmQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5nbDtyZXR1cm4gdm9pZCAwIT09dCYmZS5hY3RpdmVUZXh0dXJlKGUuVEVYVFVSRTArKDB8dCkpLGUuYmluZFRleHR1cmUoZS5URVhUVVJFXzJELHRoaXMuaGFuZGxlKSx2b2lkIDAhPT10PzB8dDplLmdldFBhcmFtZXRlcihlLkFDVElWRV9URVhUVVJFKS1lLlRFWFRVUkUwfSxkLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLmdsLmRlbGV0ZVRleHR1cmUodGhpcy5oYW5kbGUpfSxkLmdlbmVyYXRlTWlwbWFwPWZ1bmN0aW9uKCl7dGhpcy5iaW5kKCksdGhpcy5nbC5nZW5lcmF0ZU1pcG1hcCh0aGlzLmdsLlRFWFRVUkVfMkQpO2Zvcih2YXIgdD1NYXRoLm1pbih0aGlzLl9zaGFwZVswXSx0aGlzLl9zaGFwZVsxXSksZT0wO3Q+MDsrK2UsdD4+Pj0xKXRoaXMuX21pcExldmVscy5pbmRleE9mKGUpPDAmJnRoaXMuX21pcExldmVscy5wdXNoKGUpfSxkLnNldFBpeGVscz1mdW5jdGlvbih0LGUscixvKXt2YXIgcz10aGlzLmdsO3RoaXMuYmluZCgpLEFycmF5LmlzQXJyYXkoZSk/KG89cixyPTB8ZVsxXSxlPTB8ZVswXSk6KGU9ZXx8MCxyPXJ8fDApLG89b3x8MDt2YXIgbD11KHQpP3Q6dC5yYXc7aWYobCl7dGhpcy5fbWlwTGV2ZWxzLmluZGV4T2Yobyk8MD8ocy50ZXhJbWFnZTJEKHMuVEVYVFVSRV8yRCwwLHRoaXMuZm9ybWF0LHRoaXMuZm9ybWF0LHRoaXMudHlwZSxsKSx0aGlzLl9taXBMZXZlbHMucHVzaChvKSk6cy50ZXhTdWJJbWFnZTJEKHMuVEVYVFVSRV8yRCxvLGUscix0aGlzLmZvcm1hdCx0aGlzLnR5cGUsbCl9ZWxzZXtpZighKHQuc2hhcGUmJnQuc3RyaWRlJiZ0LmRhdGEpKXRocm93IG5ldyBFcnJvcigiZ2wtdGV4dHVyZTJkOiBVbnN1cHBvcnRlZCBkYXRhIHR5cGUiKTtpZih0LnNoYXBlLmxlbmd0aDwyfHxlK3Quc2hhcGVbMV0+dGhpcy5fc2hhcGVbMV0+Pj5vfHxyK3Quc2hhcGVbMF0+dGhpcy5fc2hhcGVbMF0+Pj5vfHxlPDB8fHI8MCl0aHJvdyBuZXcgRXJyb3IoImdsLXRleHR1cmUyZDogVGV4dHVyZSBkaW1lbnNpb25zIGFyZSBvdXQgb2YgYm91bmRzIik7IWZ1bmN0aW9uKHQsZSxyLG8scyxsLGMsdSl7dmFyIGg9dS5kdHlwZSxwPXUuc2hhcGUuc2xpY2UoKTtpZihwLmxlbmd0aDwyfHxwLmxlbmd0aD4zKXRocm93IG5ldyBFcnJvcigiZ2wtdGV4dHVyZTJkOiBJbnZhbGlkIG5kYXJyYXksIG11c3QgYmUgMmQgb3IgM2QiKTt2YXIgZD0wLGc9MCx2PW0ocCx1LnN0cmlkZS5zbGljZSgpKTsiZmxvYXQzMiI9PT1oP2Q9dC5GTE9BVDoiZmxvYXQ2NCI9PT1oPyhkPXQuRkxPQVQsdj0hMSxoPSJmbG9hdDMyIik6InVpbnQ4Ij09PWg/ZD10LlVOU0lHTkVEX0JZVEU6KGQ9dC5VTlNJR05FRF9CWVRFLHY9ITEsaD0idWludDgiKTtpZigyPT09cC5sZW5ndGgpZz10LkxVTUlOQU5DRSxwPVtwWzBdLHBbMV0sMV0sdT1uKHUuZGF0YSxwLFt1LnN0cmlkZVswXSx1LnN0cmlkZVsxXSwxXSx1Lm9mZnNldCk7ZWxzZXtpZigzIT09cC5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJnbC10ZXh0dXJlMmQ6IEludmFsaWQgc2hhcGUgZm9yIHRleHR1cmUiKTtpZigxPT09cFsyXSlnPXQuQUxQSEE7ZWxzZSBpZigyPT09cFsyXSlnPXQuTFVNSU5BTkNFX0FMUEhBO2Vsc2UgaWYoMz09PXBbMl0pZz10LlJHQjtlbHNle2lmKDQhPT1wWzJdKXRocm93IG5ldyBFcnJvcigiZ2wtdGV4dHVyZTJkOiBJbnZhbGlkIHNoYXBlIGZvciBwaXhlbCBjb29yZHMiKTtnPXQuUkdCQX1wWzJdfWchPT10LkxVTUlOQU5DRSYmZyE9PXQuQUxQSEF8fHMhPT10LkxVTUlOQU5DRSYmcyE9PXQuQUxQSEF8fChnPXMpO2lmKGchPT1zKXRocm93IG5ldyBFcnJvcigiZ2wtdGV4dHVyZTJkOiBJbmNvbXBhdGlibGUgdGV4dHVyZSBmb3JtYXQgZm9yIHNldFBpeGVscyIpO3ZhciB5PXUuc2l6ZSx4PWMuaW5kZXhPZihvKTwwO3gmJmMucHVzaChvKTtpZihkPT09bCYmdikwPT09dS5vZmZzZXQmJnUuZGF0YS5sZW5ndGg9PT15P3g/dC50ZXhJbWFnZTJEKHQuVEVYVFVSRV8yRCxvLHMscFswXSxwWzFdLDAscyxsLHUuZGF0YSk6dC50ZXhTdWJJbWFnZTJEKHQuVEVYVFVSRV8yRCxvLGUscixwWzBdLHBbMV0scyxsLHUuZGF0YSk6eD90LnRleEltYWdlMkQodC5URVhUVVJFXzJELG8scyxwWzBdLHBbMV0sMCxzLGwsdS5kYXRhLnN1YmFycmF5KHUub2Zmc2V0LHUub2Zmc2V0K3kpKTp0LnRleFN1YkltYWdlMkQodC5URVhUVVJFXzJELG8sZSxyLHBbMF0scFsxXSxzLGwsdS5kYXRhLnN1YmFycmF5KHUub2Zmc2V0LHUub2Zmc2V0K3kpKTtlbHNle3ZhciBiO2I9bD09PXQuRkxPQVQ/YS5tYWxsb2NGbG9hdDMyKHkpOmEubWFsbG9jVWludDgoeSk7dmFyIF89bihiLHAsW3BbMl0scFsyXSpwWzBdLDFdKTtkPT09dC5GTE9BVCYmbD09PXQuVU5TSUdORURfQllURT9mKF8sdSk6aS5hc3NpZ24oXyx1KSx4P3QudGV4SW1hZ2UyRCh0LlRFWFRVUkVfMkQsbyxzLHBbMF0scFsxXSwwLHMsbCxiLnN1YmFycmF5KDAseSkpOnQudGV4U3ViSW1hZ2UyRCh0LlRFWFRVUkVfMkQsbyxlLHIscFswXSxwWzFdLHMsbCxiLnN1YmFycmF5KDAseSkpLGw9PT10LkZMT0FUP2EuZnJlZUZsb2F0MzIoYik6YS5mcmVlVWludDgoYil9fShzLGUscixvLHRoaXMuZm9ybWF0LHRoaXMudHlwZSx0aGlzLl9taXBMZXZlbHMsdCl9fX0se25kYXJyYXk6MjU5LCJuZGFycmF5LW9wcyI6MjU0LCJ0eXBlZGFycmF5LXBvb2wiOjMwOH1dLDE0NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe2U/ZS5iaW5kKCk6dC5iaW5kQnVmZmVyKHQuRUxFTUVOVF9BUlJBWV9CVUZGRVIsbnVsbCk7dmFyIG49MHx0LmdldFBhcmFtZXRlcih0Lk1BWF9WRVJURVhfQVRUUklCUyk7aWYocil7aWYoci5sZW5ndGg+bil0aHJvdyBuZXcgRXJyb3IoImdsLXZhbzogVG9vIG1hbnkgdmVydGV4IGF0dHJpYnV0ZXMiKTtmb3IodmFyIGk9MDtpPHIubGVuZ3RoOysraSl7dmFyIGE9cltpXTtpZihhLmJ1ZmZlcil7dmFyIG89YS5idWZmZXIscz1hLnNpemV8fDQsbD1hLnR5cGV8fHQuRkxPQVQsYz0hIWEubm9ybWFsaXplZCx1PWEuc3RyaWRlfHwwLGY9YS5vZmZzZXR8fDA7by5iaW5kKCksdC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShpKSx0LnZlcnRleEF0dHJpYlBvaW50ZXIoaSxzLGwsYyx1LGYpfWVsc2V7aWYoIm51bWJlciI9PXR5cGVvZiBhKXQudmVydGV4QXR0cmliMWYoaSxhKTtlbHNlIGlmKDE9PT1hLmxlbmd0aCl0LnZlcnRleEF0dHJpYjFmKGksYVswXSk7ZWxzZSBpZigyPT09YS5sZW5ndGgpdC52ZXJ0ZXhBdHRyaWIyZihpLGFbMF0sYVsxXSk7ZWxzZSBpZigzPT09YS5sZW5ndGgpdC52ZXJ0ZXhBdHRyaWIzZihpLGFbMF0sYVsxXSxhWzJdKTtlbHNle2lmKDQhPT1hLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoImdsLXZhbzogSW52YWxpZCB2ZXJ0ZXggYXR0cmlidXRlIik7dC52ZXJ0ZXhBdHRyaWI0ZihpLGFbMF0sYVsxXSxhWzJdLGFbM10pfXQuZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KGkpfX1mb3IoO2k8bjsrK2kpdC5kaXNhYmxlVmVydGV4QXR0cmliQXJyYXkoaSl9ZWxzZXt0LmJpbmRCdWZmZXIodC5BUlJBWV9CVUZGRVIsbnVsbCk7Zm9yKGk9MDtpPG47KytpKXQuZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KGkpfX19LHt9XSwxNDg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9kby1iaW5kLmpzIik7ZnVuY3Rpb24gaSh0KXt0aGlzLmdsPXQsdGhpcy5fZWxlbWVudHM9bnVsbCx0aGlzLl9hdHRyaWJ1dGVzPW51bGwsdGhpcy5fZWxlbWVudHNUeXBlPXQuVU5TSUdORURfU0hPUlR9aS5wcm90b3R5cGUuYmluZD1mdW5jdGlvbigpe24odGhpcy5nbCx0aGlzLl9lbGVtZW50cyx0aGlzLl9hdHRyaWJ1dGVzKX0saS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLl9lbGVtZW50cz1lLHRoaXMuX2F0dHJpYnV0ZXM9dCx0aGlzLl9lbGVtZW50c1R5cGU9cnx8dGhpcy5nbC5VTlNJR05FRF9TSE9SVH0saS5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe30saS5wcm90b3R5cGUudW5iaW5kPWZ1bmN0aW9uKCl7fSxpLnByb3RvdHlwZS5kcmF3PWZ1bmN0aW9uKHQsZSxyKXtyPXJ8fDA7dmFyIG49dGhpcy5nbDt0aGlzLl9lbGVtZW50cz9uLmRyYXdFbGVtZW50cyh0LGUsdGhpcy5fZWxlbWVudHNUeXBlLHIpOm4uZHJhd0FycmF5cyh0LHIsZSl9LGUuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGkodCl9fSx7Ii4vZG8tYmluZC5qcyI6MTQ3fV0sMTQ5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vZG8tYmluZC5qcyIpO2Z1bmN0aW9uIGkodCxlLHIsbixpLGEpe3RoaXMubG9jYXRpb249dCx0aGlzLmRpbWVuc2lvbj1lLHRoaXMuYT1yLHRoaXMuYj1uLHRoaXMuYz1pLHRoaXMuZD1hfWZ1bmN0aW9uIGEodCxlLHIpe3RoaXMuZ2w9dCx0aGlzLl9leHQ9ZSx0aGlzLmhhbmRsZT1yLHRoaXMuX2F0dHJpYnM9W10sdGhpcy5fdXNlRWxlbWVudHM9ITEsdGhpcy5fZWxlbWVudHNUeXBlPXQuVU5TSUdORURfU0hPUlR9aS5wcm90b3R5cGUuYmluZD1mdW5jdGlvbih0KXtzd2l0Y2godGhpcy5kaW1lbnNpb24pe2Nhc2UgMTp0LnZlcnRleEF0dHJpYjFmKHRoaXMubG9jYXRpb24sdGhpcy5hKTticmVhaztjYXNlIDI6dC52ZXJ0ZXhBdHRyaWIyZih0aGlzLmxvY2F0aW9uLHRoaXMuYSx0aGlzLmIpO2JyZWFrO2Nhc2UgMzp0LnZlcnRleEF0dHJpYjNmKHRoaXMubG9jYXRpb24sdGhpcy5hLHRoaXMuYix0aGlzLmMpO2JyZWFrO2Nhc2UgNDp0LnZlcnRleEF0dHJpYjRmKHRoaXMubG9jYXRpb24sdGhpcy5hLHRoaXMuYix0aGlzLmMsdGhpcy5kKX19LGEucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXt0aGlzLl9leHQuYmluZFZlcnRleEFycmF5T0VTKHRoaXMuaGFuZGxlKTtmb3IodmFyIHQ9MDt0PHRoaXMuX2F0dHJpYnMubGVuZ3RoOysrdCl0aGlzLl9hdHRyaWJzW3RdLmJpbmQodGhpcy5nbCl9LGEucHJvdG90eXBlLnVuYmluZD1mdW5jdGlvbigpe3RoaXMuX2V4dC5iaW5kVmVydGV4QXJyYXlPRVMobnVsbCl9LGEucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLl9leHQuZGVsZXRlVmVydGV4QXJyYXlPRVModGhpcy5oYW5kbGUpfSxhLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlLHIpe2lmKHRoaXMuYmluZCgpLG4odGhpcy5nbCxlLHQpLHRoaXMudW5iaW5kKCksdGhpcy5fYXR0cmlicy5sZW5ndGg9MCx0KWZvcih2YXIgYT0wO2E8dC5sZW5ndGg7KythKXt2YXIgbz10W2FdOyJudW1iZXIiPT10eXBlb2Ygbz90aGlzLl9hdHRyaWJzLnB1c2gobmV3IGkoYSwxLG8pKTpBcnJheS5pc0FycmF5KG8pJiZ0aGlzLl9hdHRyaWJzLnB1c2gobmV3IGkoYSxvLmxlbmd0aCxvWzBdLG9bMV0sb1syXSxvWzNdKSl9dGhpcy5fdXNlRWxlbWVudHM9ISFlLHRoaXMuX2VsZW1lbnRzVHlwZT1yfHx0aGlzLmdsLlVOU0lHTkVEX1NIT1JUfSxhLnByb3RvdHlwZS5kcmF3PWZ1bmN0aW9uKHQsZSxyKXtyPXJ8fDA7dmFyIG49dGhpcy5nbDt0aGlzLl91c2VFbGVtZW50cz9uLmRyYXdFbGVtZW50cyh0LGUsdGhpcy5fZWxlbWVudHNUeXBlLHIpOm4uZHJhd0FycmF5cyh0LHIsZSl9LGUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiBuZXcgYSh0LGUsZS5jcmVhdGVWZXJ0ZXhBcnJheU9FUygpKX19LHsiLi9kby1iaW5kLmpzIjoxNDd9XSwxNTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9saWIvdmFvLW5hdGl2ZS5qcyIpLGk9dCgiLi9saWIvdmFvLWVtdWxhdGVkLmpzIik7ZnVuY3Rpb24gYSh0KXt0aGlzLmJpbmRWZXJ0ZXhBcnJheU9FUz10LmJpbmRWZXJ0ZXhBcnJheS5iaW5kKHQpLHRoaXMuY3JlYXRlVmVydGV4QXJyYXlPRVM9dC5jcmVhdGVWZXJ0ZXhBcnJheS5iaW5kKHQpLHRoaXMuZGVsZXRlVmVydGV4QXJyYXlPRVM9dC5kZWxldGVWZXJ0ZXhBcnJheS5iaW5kKHQpfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscixvKXt2YXIgcyxsPXQuY3JlYXRlVmVydGV4QXJyYXk/bmV3IGEodCk6dC5nZXRFeHRlbnNpb24oIk9FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0Iik7cmV0dXJuKHM9bD9uKHQsbCk6aSh0KSkudXBkYXRlKGUscixvKSxzfX0seyIuL2xpYi92YW8tZW11bGF0ZWQuanMiOjE0OCwiLi9saWIvdmFvLW5hdGl2ZS5qcyI6MTQ5fV0sMTUxOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdFswXT1lWzBdK3JbMF0sdFsxXT1lWzFdK3JbMV0sdFsyXT1lWzJdK3JbMl0sdH19LHt9XSwxNTI6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1uKHRbMF0sdFsxXSx0WzJdKSxvPW4oZVswXSxlWzFdLGVbMl0pO2kocixyKSxpKG8sbyk7dmFyIHM9YShyLG8pO3JldHVybiBzPjE/MDpNYXRoLmFjb3Mocyl9O3ZhciBuPXQoIi4vZnJvbVZhbHVlcyIpLGk9dCgiLi9ub3JtYWxpemUiKSxhPXQoIi4vZG90Iil9LHsiLi9kb3QiOjE2MiwiLi9mcm9tVmFsdWVzIjoxNjgsIi4vbm9ybWFsaXplIjoxNzl9XSwxNTM6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXT1NYXRoLmNlaWwoZVswXSksdFsxXT1NYXRoLmNlaWwoZVsxXSksdFsyXT1NYXRoLmNlaWwoZVsyXSksdH19LHt9XSwxNTQ6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IEZsb2F0MzJBcnJheSgzKTtyZXR1cm4gZVswXT10WzBdLGVbMV09dFsxXSxlWzJdPXRbMl0sZX19LHt9XSwxNTU6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXT1lWzBdLHRbMV09ZVsxXSx0WzJdPWVbMl0sdH19LHt9XSwxNTY6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgRmxvYXQzMkFycmF5KDMpO3JldHVybiB0WzBdPTAsdFsxXT0wLHRbMl09MCx0fX0se31dLDE1NzpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG49ZVswXSxpPWVbMV0sYT1lWzJdLG89clswXSxzPXJbMV0sbD1yWzJdO3JldHVybiB0WzBdPWkqbC1hKnMsdFsxXT1hKm8tbipsLHRbMl09bipzLWkqbyx0fX0se31dLDE1ODpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz10KCIuL2Rpc3RhbmNlIil9LHsiLi9kaXN0YW5jZSI6MTU5fV0sMTU5OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXS10WzBdLG49ZVsxXS10WzFdLGk9ZVsyXS10WzJdO3JldHVybiBNYXRoLnNxcnQocipyK24qbitpKmkpfX0se31dLDE2MDpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz10KCIuL2RpdmlkZSIpfSx7Ii4vZGl2aWRlIjoxNjF9XSwxNjE6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0WzBdPWVbMF0vclswXSx0WzFdPWVbMV0vclsxXSx0WzJdPWVbMl0vclsyXSx0fX0se31dLDE2MjpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiB0WzBdKmVbMF0rdFsxXSplWzFdK3RbMl0qZVsyXX19LHt9XSwxNjM6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9MWUtNn0se31dLDE2NDpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPXRbMF0saT10WzFdLGE9dFsyXSxvPWVbMF0scz1lWzFdLGw9ZVsyXTtyZXR1cm4gTWF0aC5hYnMoci1vKTw9bipNYXRoLm1heCgxLE1hdGguYWJzKHIpLE1hdGguYWJzKG8pKSYmTWF0aC5hYnMoaS1zKTw9bipNYXRoLm1heCgxLE1hdGguYWJzKGkpLE1hdGguYWJzKHMpKSYmTWF0aC5hYnMoYS1sKTw9bipNYXRoLm1heCgxLE1hdGguYWJzKGEpLE1hdGguYWJzKGwpKX07dmFyIG49dCgiLi9lcHNpbG9uIil9LHsiLi9lcHNpbG9uIjoxNjN9XSwxNjU6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXT09PWVbMF0mJnRbMV09PT1lWzFdJiZ0WzJdPT09ZVsyXX19LHt9XSwxNjY6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXT1NYXRoLmZsb29yKGVbMF0pLHRbMV09TWF0aC5mbG9vcihlWzFdKSx0WzJdPU1hdGguZmxvb3IoZVsyXSksdH19LHt9XSwxNjc6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsaSxhLG8pe3ZhciBzLGw7ZXx8KGU9Myk7cnx8KHI9MCk7bD1pP01hdGgubWluKGkqZStyLHQubGVuZ3RoKTp0Lmxlbmd0aDtmb3Iocz1yO3M8bDtzKz1lKW5bMF09dFtzXSxuWzFdPXRbcysxXSxuWzJdPXRbcysyXSxhKG4sbixvKSx0W3NdPW5bMF0sdFtzKzFdPW5bMV0sdFtzKzJdPW5bMl07cmV0dXJuIHR9O3ZhciBuPXQoIi4vY3JlYXRlIikoKX0seyIuL2NyZWF0ZSI6MTU2fV0sMTY4OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1uZXcgRmxvYXQzMkFycmF5KDMpO3JldHVybiBuWzBdPXQsblsxXT1lLG5bMl09cixufX0se31dLDE2OTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz17RVBTSUxPTjp0KCIuL2Vwc2lsb24iKSxjcmVhdGU6dCgiLi9jcmVhdGUiKSxjbG9uZTp0KCIuL2Nsb25lIiksYW5nbGU6dCgiLi9hbmdsZSIpLGZyb21WYWx1ZXM6dCgiLi9mcm9tVmFsdWVzIiksY29weTp0KCIuL2NvcHkiKSxzZXQ6dCgiLi9zZXQiKSxlcXVhbHM6dCgiLi9lcXVhbHMiKSxleGFjdEVxdWFsczp0KCIuL2V4YWN0RXF1YWxzIiksYWRkOnQoIi4vYWRkIiksc3VidHJhY3Q6dCgiLi9zdWJ0cmFjdCIpLHN1Yjp0KCIuL3N1YiIpLG11bHRpcGx5OnQoIi4vbXVsdGlwbHkiKSxtdWw6dCgiLi9tdWwiKSxkaXZpZGU6dCgiLi9kaXZpZGUiKSxkaXY6dCgiLi9kaXYiKSxtaW46dCgiLi9taW4iKSxtYXg6dCgiLi9tYXgiKSxmbG9vcjp0KCIuL2Zsb29yIiksY2VpbDp0KCIuL2NlaWwiKSxyb3VuZDp0KCIuL3JvdW5kIiksc2NhbGU6dCgiLi9zY2FsZSIpLHNjYWxlQW5kQWRkOnQoIi4vc2NhbGVBbmRBZGQiKSxkaXN0YW5jZTp0KCIuL2Rpc3RhbmNlIiksZGlzdDp0KCIuL2Rpc3QiKSxzcXVhcmVkRGlzdGFuY2U6dCgiLi9zcXVhcmVkRGlzdGFuY2UiKSxzcXJEaXN0OnQoIi4vc3FyRGlzdCIpLGxlbmd0aDp0KCIuL2xlbmd0aCIpLGxlbjp0KCIuL2xlbiIpLHNxdWFyZWRMZW5ndGg6dCgiLi9zcXVhcmVkTGVuZ3RoIiksc3FyTGVuOnQoIi4vc3FyTGVuIiksbmVnYXRlOnQoIi4vbmVnYXRlIiksaW52ZXJzZTp0KCIuL2ludmVyc2UiKSxub3JtYWxpemU6dCgiLi9ub3JtYWxpemUiKSxkb3Q6dCgiLi9kb3QiKSxjcm9zczp0KCIuL2Nyb3NzIiksbGVycDp0KCIuL2xlcnAiKSxyYW5kb206dCgiLi9yYW5kb20iKSx0cmFuc2Zvcm1NYXQ0OnQoIi4vdHJhbnNmb3JtTWF0NCIpLHRyYW5zZm9ybU1hdDM6dCgiLi90cmFuc2Zvcm1NYXQzIiksdHJhbnNmb3JtUXVhdDp0KCIuL3RyYW5zZm9ybVF1YXQiKSxyb3RhdGVYOnQoIi4vcm90YXRlWCIpLHJvdGF0ZVk6dCgiLi9yb3RhdGVZIikscm90YXRlWjp0KCIuL3JvdGF0ZVoiKSxmb3JFYWNoOnQoIi4vZm9yRWFjaCIpfX0seyIuL2FkZCI6MTUxLCIuL2FuZ2xlIjoxNTIsIi4vY2VpbCI6MTUzLCIuL2Nsb25lIjoxNTQsIi4vY29weSI6MTU1LCIuL2NyZWF0ZSI6MTU2LCIuL2Nyb3NzIjoxNTcsIi4vZGlzdCI6MTU4LCIuL2Rpc3RhbmNlIjoxNTksIi4vZGl2IjoxNjAsIi4vZGl2aWRlIjoxNjEsIi4vZG90IjoxNjIsIi4vZXBzaWxvbiI6MTYzLCIuL2VxdWFscyI6MTY0LCIuL2V4YWN0RXF1YWxzIjoxNjUsIi4vZmxvb3IiOjE2NiwiLi9mb3JFYWNoIjoxNjcsIi4vZnJvbVZhbHVlcyI6MTY4LCIuL2ludmVyc2UiOjE3MCwiLi9sZW4iOjE3MSwiLi9sZW5ndGgiOjE3MiwiLi9sZXJwIjoxNzMsIi4vbWF4IjoxNzQsIi4vbWluIjoxNzUsIi4vbXVsIjoxNzYsIi4vbXVsdGlwbHkiOjE3NywiLi9uZWdhdGUiOjE3OCwiLi9ub3JtYWxpemUiOjE3OSwiLi9yYW5kb20iOjE4MCwiLi9yb3RhdGVYIjoxODEsIi4vcm90YXRlWSI6MTgyLCIuL3JvdGF0ZVoiOjE4MywiLi9yb3VuZCI6MTg0LCIuL3NjYWxlIjoxODUsIi4vc2NhbGVBbmRBZGQiOjE4NiwiLi9zZXQiOjE4NywiLi9zcXJEaXN0IjoxODgsIi4vc3FyTGVuIjoxODksIi4vc3F1YXJlZERpc3RhbmNlIjoxOTAsIi4vc3F1YXJlZExlbmd0aCI6MTkxLCIuL3N1YiI6MTkyLCIuL3N1YnRyYWN0IjoxOTMsIi4vdHJhbnNmb3JtTWF0MyI6MTk0LCIuL3RyYW5zZm9ybU1hdDQiOjE5NSwiLi90cmFuc2Zvcm1RdWF0IjoxOTZ9XSwxNzA6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXT0xL2VbMF0sdFsxXT0xL2VbMV0sdFsyXT0xL2VbMl0sdH19LHt9XSwxNzE6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9dCgiLi9sZW5ndGgiKX0seyIuL2xlbmd0aCI6MTcyfV0sMTcyOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0scj10WzFdLG49dFsyXTtyZXR1cm4gTWF0aC5zcXJ0KGUqZStyKnIrbipuKX19LHt9XSwxNzM6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9ZVswXSxhPWVbMV0sbz1lWzJdO3JldHVybiB0WzBdPWkrbiooclswXS1pKSx0WzFdPWErbiooclsxXS1hKSx0WzJdPW8rbiooclsyXS1vKSx0fX0se31dLDE3NDpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRbMF09TWF0aC5tYXgoZVswXSxyWzBdKSx0WzFdPU1hdGgubWF4KGVbMV0sclsxXSksdFsyXT1NYXRoLm1heChlWzJdLHJbMl0pLHR9fSx7fV0sMTc1OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdFswXT1NYXRoLm1pbihlWzBdLHJbMF0pLHRbMV09TWF0aC5taW4oZVsxXSxyWzFdKSx0WzJdPU1hdGgubWluKGVbMl0sclsyXSksdH19LHt9XSwxNzY6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9dCgiLi9tdWx0aXBseSIpfSx7Ii4vbXVsdGlwbHkiOjE3N31dLDE3NzpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRbMF09ZVswXSpyWzBdLHRbMV09ZVsxXSpyWzFdLHRbMl09ZVsyXSpyWzJdLHR9fSx7fV0sMTc4OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMF09LWVbMF0sdFsxXT0tZVsxXSx0WzJdPS1lWzJdLHR9fSx7fV0sMTc5OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxuPWVbMV0saT1lWzJdLGE9cipyK24qbitpKmk7YT4wJiYoYT0xL01hdGguc3FydChhKSx0WzBdPWVbMF0qYSx0WzFdPWVbMV0qYSx0WzJdPWVbMl0qYSk7cmV0dXJuIHR9fSx7fV0sMTgwOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7ZT1lfHwxO3ZhciByPTIqTWF0aC5yYW5kb20oKSpNYXRoLlBJLG49MipNYXRoLnJhbmRvbSgpLTEsaT1NYXRoLnNxcnQoMS1uKm4pKmU7cmV0dXJuIHRbMF09TWF0aC5jb3MocikqaSx0WzFdPU1hdGguc2luKHIpKmksdFsyXT1uKmUsdH19LHt9XSwxODE6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9clsxXSxhPXJbMl0sbz1lWzFdLWkscz1lWzJdLWEsbD1NYXRoLnNpbihuKSxjPU1hdGguY29zKG4pO3JldHVybiB0WzBdPWVbMF0sdFsxXT1pK28qYy1zKmwsdFsyXT1hK28qbCtzKmMsdH19LHt9XSwxODI6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9clswXSxhPXJbMl0sbz1lWzBdLWkscz1lWzJdLWEsbD1NYXRoLnNpbihuKSxjPU1hdGguY29zKG4pO3JldHVybiB0WzBdPWkrcypsK28qYyx0WzFdPWVbMV0sdFsyXT1hK3MqYy1vKmwsdH19LHt9XSwxODM6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9clswXSxhPXJbMV0sbz1lWzBdLWkscz1lWzFdLWEsbD1NYXRoLnNpbihuKSxjPU1hdGguY29zKG4pO3JldHVybiB0WzBdPWkrbypjLXMqbCx0WzFdPWErbypsK3MqYyx0WzJdPWVbMl0sdH19LHt9XSwxODQ6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXT1NYXRoLnJvdW5kKGVbMF0pLHRbMV09TWF0aC5yb3VuZChlWzFdKSx0WzJdPU1hdGgucm91bmQoZVsyXSksdH19LHt9XSwxODU6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0WzBdPWVbMF0qcix0WzFdPWVbMV0qcix0WzJdPWVbMl0qcix0fX0se31dLDE4NjpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuKXtyZXR1cm4gdFswXT1lWzBdK3JbMF0qbix0WzFdPWVbMV0rclsxXSpuLHRbMl09ZVsyXStyWzJdKm4sdH19LHt9XSwxODc6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIHRbMF09ZSx0WzFdPXIsdFsyXT1uLHR9fSx7fV0sMTg4OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPXQoIi4vc3F1YXJlZERpc3RhbmNlIil9LHsiLi9zcXVhcmVkRGlzdGFuY2UiOjE5MH1dLDE4OTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz10KCIuL3NxdWFyZWRMZW5ndGgiKX0seyIuL3NxdWFyZWRMZW5ndGgiOjE5MX1dLDE5MDpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPWVbMF0tdFswXSxuPWVbMV0tdFsxXSxpPWVbMl0tdFsyXTtyZXR1cm4gcipyK24qbitpKml9fSx7fV0sMTkxOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0scj10WzFdLG49dFsyXTtyZXR1cm4gZSplK3IqcituKm59fSx7fV0sMTkyOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPXQoIi4vc3VidHJhY3QiKX0seyIuL3N1YnRyYWN0IjoxOTN9XSwxOTM6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0WzBdPWVbMF0tclswXSx0WzFdPWVbMV0tclsxXSx0WzJdPWVbMl0tclsyXSx0fX0se31dLDE5NDpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG49ZVswXSxpPWVbMV0sYT1lWzJdO3JldHVybiB0WzBdPW4qclswXStpKnJbM10rYSpyWzZdLHRbMV09bipyWzFdK2kqcls0XSthKnJbN10sdFsyXT1uKnJbMl0raSpyWzVdK2Eqcls4XSx0fX0se31dLDE5NTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG49ZVswXSxpPWVbMV0sYT1lWzJdLG89clszXSpuK3JbN10qaStyWzExXSphK3JbMTVdO3JldHVybiBvPW98fDEsdFswXT0oclswXSpuK3JbNF0qaStyWzhdKmErclsxMl0pL28sdFsxXT0oclsxXSpuK3JbNV0qaStyWzldKmErclsxM10pL28sdFsyXT0oclsyXSpuK3JbNl0qaStyWzEwXSphK3JbMTRdKS9vLHR9fSx7fV0sMTk2OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1lWzBdLGk9ZVsxXSxhPWVbMl0sbz1yWzBdLHM9clsxXSxsPXJbMl0sYz1yWzNdLHU9YypuK3MqYS1sKmksZj1jKmkrbCpuLW8qYSxoPWMqYStvKmktcypuLHA9LW8qbi1zKmktbCphO3JldHVybiB0WzBdPXUqYytwKi1vK2YqLWwtaCotcyx0WzFdPWYqYytwKi1zK2gqLW8tdSotbCx0WzJdPWgqYytwKi1sK3UqLXMtZiotbyx0fX0se31dLDE5NzpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRbMF09ZVswXStyWzBdLHRbMV09ZVsxXStyWzFdLHRbMl09ZVsyXStyWzJdLHRbM109ZVszXStyWzNdLHR9fSx7fV0sMTk4OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBGbG9hdDMyQXJyYXkoNCk7cmV0dXJuIGVbMF09dFswXSxlWzFdPXRbMV0sZVsyXT10WzJdLGVbM109dFszXSxlfX0se31dLDE5OTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiB0WzBdPWVbMF0sdFsxXT1lWzFdLHRbMl09ZVsyXSx0WzNdPWVbM10sdH19LHt9XSwyMDA6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgRmxvYXQzMkFycmF5KDQpO3JldHVybiB0WzBdPTAsdFsxXT0wLHRbMl09MCx0WzNdPTAsdH19LHt9XSwyMDE6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLXRbMF0sbj1lWzFdLXRbMV0saT1lWzJdLXRbMl0sYT1lWzNdLXRbM107cmV0dXJuIE1hdGguc3FydChyKnIrbipuK2kqaSthKmEpfX0se31dLDIwMjpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRbMF09ZVswXS9yWzBdLHRbMV09ZVsxXS9yWzFdLHRbMl09ZVsyXS9yWzJdLHRbM109ZVszXS9yWzNdLHR9fSx7fV0sMjAzOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMF0qZVswXSt0WzFdKmVbMV0rdFsyXSplWzJdK3RbM10qZVszXX19LHt9XSwyMDQ6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9bmV3IEZsb2F0MzJBcnJheSg0KTtyZXR1cm4gaVswXT10LGlbMV09ZSxpWzJdPXIsaVszXT1uLGl9fSx7fV0sMjA1OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPXtjcmVhdGU6dCgiLi9jcmVhdGUiKSxjbG9uZTp0KCIuL2Nsb25lIiksZnJvbVZhbHVlczp0KCIuL2Zyb21WYWx1ZXMiKSxjb3B5OnQoIi4vY29weSIpLHNldDp0KCIuL3NldCIpLGFkZDp0KCIuL2FkZCIpLHN1YnRyYWN0OnQoIi4vc3VidHJhY3QiKSxtdWx0aXBseTp0KCIuL211bHRpcGx5IiksZGl2aWRlOnQoIi4vZGl2aWRlIiksbWluOnQoIi4vbWluIiksbWF4OnQoIi4vbWF4Iiksc2NhbGU6dCgiLi9zY2FsZSIpLHNjYWxlQW5kQWRkOnQoIi4vc2NhbGVBbmRBZGQiKSxkaXN0YW5jZTp0KCIuL2Rpc3RhbmNlIiksc3F1YXJlZERpc3RhbmNlOnQoIi4vc3F1YXJlZERpc3RhbmNlIiksbGVuZ3RoOnQoIi4vbGVuZ3RoIiksc3F1YXJlZExlbmd0aDp0KCIuL3NxdWFyZWRMZW5ndGgiKSxuZWdhdGU6dCgiLi9uZWdhdGUiKSxpbnZlcnNlOnQoIi4vaW52ZXJzZSIpLG5vcm1hbGl6ZTp0KCIuL25vcm1hbGl6ZSIpLGRvdDp0KCIuL2RvdCIpLGxlcnA6dCgiLi9sZXJwIikscmFuZG9tOnQoIi4vcmFuZG9tIiksdHJhbnNmb3JtTWF0NDp0KCIuL3RyYW5zZm9ybU1hdDQiKSx0cmFuc2Zvcm1RdWF0OnQoIi4vdHJhbnNmb3JtUXVhdCIpfX0seyIuL2FkZCI6MTk3LCIuL2Nsb25lIjoxOTgsIi4vY29weSI6MTk5LCIuL2NyZWF0ZSI6MjAwLCIuL2Rpc3RhbmNlIjoyMDEsIi4vZGl2aWRlIjoyMDIsIi4vZG90IjoyMDMsIi4vZnJvbVZhbHVlcyI6MjA0LCIuL2ludmVyc2UiOjIwNiwiLi9sZW5ndGgiOjIwNywiLi9sZXJwIjoyMDgsIi4vbWF4IjoyMDksIi4vbWluIjoyMTAsIi4vbXVsdGlwbHkiOjIxMSwiLi9uZWdhdGUiOjIxMiwiLi9ub3JtYWxpemUiOjIxMywiLi9yYW5kb20iOjIxNCwiLi9zY2FsZSI6MjE1LCIuL3NjYWxlQW5kQWRkIjoyMTYsIi4vc2V0IjoyMTcsIi4vc3F1YXJlZERpc3RhbmNlIjoyMTgsIi4vc3F1YXJlZExlbmd0aCI6MjE5LCIuL3N1YnRyYWN0IjoyMjAsIi4vdHJhbnNmb3JtTWF0NCI6MjIxLCIuL3RyYW5zZm9ybVF1YXQiOjIyMn1dLDIwNjpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiB0WzBdPTEvZVswXSx0WzFdPTEvZVsxXSx0WzJdPTEvZVsyXSx0WzNdPTEvZVszXSx0fX0se31dLDIwNzpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10WzBdLHI9dFsxXSxuPXRbMl0saT10WzNdO3JldHVybiBNYXRoLnNxcnQoZSplK3IqcituKm4raSppKX19LHt9XSwyMDg6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9ZVswXSxhPWVbMV0sbz1lWzJdLHM9ZVszXTtyZXR1cm4gdFswXT1pK24qKHJbMF0taSksdFsxXT1hK24qKHJbMV0tYSksdFsyXT1vK24qKHJbMl0tbyksdFszXT1zK24qKHJbM10tcyksdH19LHt9XSwyMDk6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0WzBdPU1hdGgubWF4KGVbMF0sclswXSksdFsxXT1NYXRoLm1heChlWzFdLHJbMV0pLHRbMl09TWF0aC5tYXgoZVsyXSxyWzJdKSx0WzNdPU1hdGgubWF4KGVbM10sclszXSksdH19LHt9XSwyMTA6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0WzBdPU1hdGgubWluKGVbMF0sclswXSksdFsxXT1NYXRoLm1pbihlWzFdLHJbMV0pLHRbMl09TWF0aC5taW4oZVsyXSxyWzJdKSx0WzNdPU1hdGgubWluKGVbM10sclszXSksdH19LHt9XSwyMTE6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0WzBdPWVbMF0qclswXSx0WzFdPWVbMV0qclsxXSx0WzJdPWVbMl0qclsyXSx0WzNdPWVbM10qclszXSx0fX0se31dLDIxMjpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiB0WzBdPS1lWzBdLHRbMV09LWVbMV0sdFsyXT0tZVsyXSx0WzNdPS1lWzNdLHR9fSx7fV0sMjEzOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxuPWVbMV0saT1lWzJdLGE9ZVszXSxvPXIqcituKm4raSppK2EqYTtvPjAmJihvPTEvTWF0aC5zcXJ0KG8pLHRbMF09cipvLHRbMV09bipvLHRbMl09aSpvLHRbM109YSpvKTtyZXR1cm4gdH19LHt9XSwyMTQ6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCIuL25vcm1hbGl6ZSIpLGk9dCgiLi9zY2FsZSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiBlPWV8fDEsdFswXT1NYXRoLnJhbmRvbSgpLHRbMV09TWF0aC5yYW5kb20oKSx0WzJdPU1hdGgucmFuZG9tKCksdFszXT1NYXRoLnJhbmRvbSgpLG4odCx0KSxpKHQsdCxlKSx0fX0seyIuL25vcm1hbGl6ZSI6MjEzLCIuL3NjYWxlIjoyMTV9XSwyMTU6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0WzBdPWVbMF0qcix0WzFdPWVbMV0qcix0WzJdPWVbMl0qcix0WzNdPWVbM10qcix0fX0se31dLDIxNjpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuKXtyZXR1cm4gdFswXT1lWzBdK3JbMF0qbix0WzFdPWVbMV0rclsxXSpuLHRbMl09ZVsyXStyWzJdKm4sdFszXT1lWzNdK3JbM10qbix0fX0se31dLDIxNzpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuLGkpe3JldHVybiB0WzBdPWUsdFsxXT1yLHRbMl09bix0WzNdPWksdH19LHt9XSwyMTg6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLXRbMF0sbj1lWzFdLXRbMV0saT1lWzJdLXRbMl0sYT1lWzNdLXRbM107cmV0dXJuIHIqcituKm4raSppK2EqYX19LHt9XSwyMTk6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dFswXSxyPXRbMV0sbj10WzJdLGk9dFszXTtyZXR1cm4gZSplK3IqcituKm4raSppfX0se31dLDIyMDpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRbMF09ZVswXS1yWzBdLHRbMV09ZVsxXS1yWzFdLHRbMl09ZVsyXS1yWzJdLHRbM109ZVszXS1yWzNdLHR9fSx7fV0sMjIxOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1lWzBdLGk9ZVsxXSxhPWVbMl0sbz1lWzNdO3JldHVybiB0WzBdPXJbMF0qbityWzRdKmkrcls4XSphK3JbMTJdKm8sdFsxXT1yWzFdKm4rcls1XSppK3JbOV0qYStyWzEzXSpvLHRbMl09clsyXSpuK3JbNl0qaStyWzEwXSphK3JbMTRdKm8sdFszXT1yWzNdKm4rcls3XSppK3JbMTFdKmErclsxNV0qbyx0fX0se31dLDIyMjpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG49ZVswXSxpPWVbMV0sYT1lWzJdLG89clswXSxzPXJbMV0sbD1yWzJdLGM9clszXSx1PWMqbitzKmEtbCppLGY9YyppK2wqbi1vKmEsaD1jKmErbyppLXMqbixwPS1vKm4tcyppLWwqYTtyZXR1cm4gdFswXT11KmMrcCotbytmKi1sLWgqLXMsdFsxXT1mKmMrcCotcytoKi1vLXUqLWwsdFsyXT1oKmMrcCotbCt1Ki1zLWYqLW8sdFszXT1lWzNdLHR9fSx7fV0sMjIzOltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiZ2xzbC10b2tlbml6ZXIiKSxpPXQoImF0b2ItbGl0ZSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtmb3IodmFyIGU9QXJyYXkuaXNBcnJheSh0KT90Om4odCkscj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgYT1lW3JdO2lmKCJwcmVwcm9jZXNzb3IiPT09YS50eXBlKXt2YXIgbz1hLmRhdGEubWF0Y2goL1wjZGVmaW5lXHMrU0hBREVSX05BTUUoX0I2NCk/XHMrKC4rKSQvKTtpZihvJiZvWzJdKXt2YXIgcz1vWzFdLGw9b1syXTtyZXR1cm4ocz9pKGwpOmwpLnRyaW0oKX19fX19LHsiYXRvYi1saXRlIjoxMywiZ2xzbC10b2tlbml6ZXIiOjIzMH1dLDIyNDpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZSxyLGMsdT0wLGY9MCxoPTk5OSxwPVtdLGQ9W10sbT0xLGc9MCx2PTAseT0hMSx4PSExLGI9IiIsXz1hLHc9bjsiMzAwIGVzIj09PSh0PXR8fHt9KS52ZXJzaW9uJiYoXz1zLHc9byk7dmFyIFQ9e30saz17fTtmb3IodT0wO3U8Xy5sZW5ndGg7dSsrKVRbX1t1XV09ITA7Zm9yKHU9MDt1PHcubGVuZ3RoO3UrKylrW3dbdV1dPSEwO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZD1bXSxudWxsIT09dD9mdW5jdGlvbih0KXt1PTAsdC50b1N0cmluZyYmKHQ9dC50b1N0cmluZygpKTt2YXIgcjtiKz10LnJlcGxhY2UoL1xyXG4vZywiXG4iKSxjPWIubGVuZ3RoO2Zvcig7ZT1iW3VdLHU8Yzspe3N3aXRjaChyPXUsaCl7Y2FzZSAwOnU9TCgpO2JyZWFrO2Nhc2UgMTpjYXNlIDI6dT1FKCk7YnJlYWs7Y2FzZSAzOnU9QygpO2JyZWFrO2Nhc2UgNDp1PU8oKTticmVhaztjYXNlIDExOnU9SSgpO2JyZWFrO2Nhc2UgNTp1PXooKTticmVhaztjYXNlIDk5OTk6dT1EKCk7YnJlYWs7Y2FzZSA5OnU9UygpO2JyZWFrO2Nhc2UgOTk5OnU9TSgpfWlmKHIhPT11KXN3aXRjaChiW3JdKXtjYXNlIlxuIjpnPTAsKyttO2JyZWFrO2RlZmF1bHQ6KytnfX1yZXR1cm4gZis9dSxiPWIuc2xpY2UodSksZH0odCk6ZnVuY3Rpb24odCl7cC5sZW5ndGgmJkEocC5qb2luKCIiKSk7cmV0dXJuIGg9MTAsQSgiKGVvZikiKSxkfSgpfTtmdW5jdGlvbiBBKHQpe3QubGVuZ3RoJiZkLnB1c2goe3R5cGU6bFtoXSxkYXRhOnQscG9zaXRpb246dixsaW5lOm0sY29sdW1uOmd9KX1mdW5jdGlvbiBNKCl7cmV0dXJuIHA9cC5sZW5ndGg/W106cCwiLyI9PT1yJiYiKiI9PT1lPyh2PWYrdS0xLGg9MCxyPWUsdSsxKToiLyI9PT1yJiYiLyI9PT1lPyh2PWYrdS0xLGg9MSxyPWUsdSsxKToiIyI9PT1lPyhoPTIsdj1mK3UsdSk6L1xzLy50ZXN0KGUpPyhoPTksdj1mK3UsdSk6KHk9L1xkLy50ZXN0KGUpLHg9L1teXHdfXS8udGVzdChlKSx2PWYrdSxoPXk/NDp4PzM6OTk5OSx1KX1mdW5jdGlvbiBTKCl7cmV0dXJuL1teXHNdL2cudGVzdChlKT8oQShwLmpvaW4oIiIpKSxoPTk5OSx1KToocC5wdXNoKGUpLHI9ZSx1KzEpfWZ1bmN0aW9uIEUoKXtyZXR1cm4iXHIiIT09ZSYmIlxuIiE9PWV8fCJcXCI9PT1yPyhwLnB1c2goZSkscj1lLHUrMSk6KEEocC5qb2luKCIiKSksaD05OTksdSl9ZnVuY3Rpb24gTCgpe3JldHVybiIvIj09PWUmJiIqIj09PXI/KHAucHVzaChlKSxBKHAuam9pbigiIikpLGg9OTk5LHUrMSk6KHAucHVzaChlKSxyPWUsdSsxKX1mdW5jdGlvbiBDKCl7aWYoIi4iPT09ciYmL1xkLy50ZXN0KGUpKXJldHVybiBoPTUsdTtpZigiLyI9PT1yJiYiKiI9PT1lKXJldHVybiBoPTAsdTtpZigiLyI9PT1yJiYiLyI9PT1lKXJldHVybiBoPTEsdTtpZigiLiI9PT1lJiZwLmxlbmd0aCl7Zm9yKDtQKHApOyk7cmV0dXJuIGg9NSx1fWlmKCI7Ij09PWV8fCIpIj09PWV8fCIoIj09PWUpe2lmKHAubGVuZ3RoKWZvcig7UChwKTspO3JldHVybiBBKGUpLGg9OTk5LHUrMX12YXIgdD0yPT09cC5sZW5ndGgmJiI9IiE9PWU7aWYoL1tcd19cZFxzXS8udGVzdChlKXx8dCl7Zm9yKDtQKHApOyk7cmV0dXJuIGg9OTk5LHV9cmV0dXJuIHAucHVzaChlKSxyPWUsdSsxfWZ1bmN0aW9uIFAodCl7Zm9yKHZhciBlLHIsbj0wOzspe2lmKGU9aS5pbmRleE9mKHQuc2xpY2UoMCx0Lmxlbmd0aCtuKS5qb2luKCIiKSkscj1pW2VdLC0xPT09ZSl7aWYobi0tK3QubGVuZ3RoPjApY29udGludWU7cj10LnNsaWNlKDAsMSkuam9pbigiIil9cmV0dXJuIEEociksdis9ci5sZW5ndGgsKHA9cC5zbGljZShyLmxlbmd0aCkpLmxlbmd0aH19ZnVuY3Rpb24gSSgpe3JldHVybi9bXmEtZkEtRjAtOV0vLnRlc3QoZSk/KEEocC5qb2luKCIiKSksaD05OTksdSk6KHAucHVzaChlKSxyPWUsdSsxKX1mdW5jdGlvbiBPKCl7cmV0dXJuIi4iPT09ZXx8L1tlRV0vLnRlc3QoZSk/KHAucHVzaChlKSxoPTUscj1lLHUrMSk6IngiPT09ZSYmMT09PXAubGVuZ3RoJiYiMCI9PT1wWzBdPyhoPTExLHAucHVzaChlKSxyPWUsdSsxKTovW15cZF0vLnRlc3QoZSk/KEEocC5qb2luKCIiKSksaD05OTksdSk6KHAucHVzaChlKSxyPWUsdSsxKX1mdW5jdGlvbiB6KCl7cmV0dXJuImYiPT09ZSYmKHAucHVzaChlKSxyPWUsdSs9MSksL1tlRV0vLnRlc3QoZSk/KHAucHVzaChlKSxyPWUsdSsxKTooIi0iIT09ZSYmIisiIT09ZXx8IS9bZUVdLy50ZXN0KHIpKSYmL1teXGRdLy50ZXN0KGUpPyhBKHAuam9pbigiIikpLGg9OTk5LHUpOihwLnB1c2goZSkscj1lLHUrMSl9ZnVuY3Rpb24gRCgpe2lmKC9bXlxkXHdfXS8udGVzdChlKSl7dmFyIHQ9cC5qb2luKCIiKTtyZXR1cm4gaD1rW3RdPzg6VFt0XT83OjYsQShwLmpvaW4oIiIpKSxoPTk5OSx1fXJldHVybiBwLnB1c2goZSkscj1lLHUrMX19O3ZhciBuPXQoIi4vbGliL2xpdGVyYWxzIiksaT10KCIuL2xpYi9vcGVyYXRvcnMiKSxhPXQoIi4vbGliL2J1aWx0aW5zIiksbz10KCIuL2xpYi9saXRlcmFscy0zMDBlcyIpLHM9dCgiLi9saWIvYnVpbHRpbnMtMzAwZXMiKSxsPVsiYmxvY2stY29tbWVudCIsImxpbmUtY29tbWVudCIsInByZXByb2Nlc3NvciIsIm9wZXJhdG9yIiwiaW50ZWdlciIsImZsb2F0IiwiaWRlbnQiLCJidWlsdGluIiwia2V5d29yZCIsIndoaXRlc3BhY2UiLCJlb2YiLCJpbnRlZ2VyIl19LHsiLi9saWIvYnVpbHRpbnMiOjIyNiwiLi9saWIvYnVpbHRpbnMtMzAwZXMiOjIyNSwiLi9saWIvbGl0ZXJhbHMiOjIyOCwiLi9saWIvbGl0ZXJhbHMtMzAwZXMiOjIyNywiLi9saWIvb3BlcmF0b3JzIjoyMjl9XSwyMjU6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCIuL2J1aWx0aW5zIik7bj1uLnNsaWNlKCkuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4hL14oZ2xcX3x0ZXh0dXJlKS8udGVzdCh0KX0pKSxlLmV4cG9ydHM9bi5jb25jYXQoWyJnbF9WZXJ0ZXhJRCIsImdsX0luc3RhbmNlSUQiLCJnbF9Qb3NpdGlvbiIsImdsX1BvaW50U2l6ZSIsImdsX0ZyYWdDb29yZCIsImdsX0Zyb250RmFjaW5nIiwiZ2xfRnJhZ0RlcHRoIiwiZ2xfUG9pbnRDb29yZCIsImdsX01heFZlcnRleEF0dHJpYnMiLCJnbF9NYXhWZXJ0ZXhVbmlmb3JtVmVjdG9ycyIsImdsX01heFZlcnRleE91dHB1dFZlY3RvcnMiLCJnbF9NYXhGcmFnbWVudElucHV0VmVjdG9ycyIsImdsX01heFZlcnRleFRleHR1cmVJbWFnZVVuaXRzIiwiZ2xfTWF4Q29tYmluZWRUZXh0dXJlSW1hZ2VVbml0cyIsImdsX01heFRleHR1cmVJbWFnZVVuaXRzIiwiZ2xfTWF4RnJhZ21lbnRVbmlmb3JtVmVjdG9ycyIsImdsX01heERyYXdCdWZmZXJzIiwiZ2xfTWluUHJvZ3JhbVRleGVsT2Zmc2V0IiwiZ2xfTWF4UHJvZ3JhbVRleGVsT2Zmc2V0IiwiZ2xfRGVwdGhSYW5nZVBhcmFtZXRlcnMiLCJnbF9EZXB0aFJhbmdlIiwidHJ1bmMiLCJyb3VuZCIsInJvdW5kRXZlbiIsImlzbmFuIiwiaXNpbmYiLCJmbG9hdEJpdHNUb0ludCIsImZsb2F0Qml0c1RvVWludCIsImludEJpdHNUb0Zsb2F0IiwidWludEJpdHNUb0Zsb2F0IiwicGFja1Nub3JtMngxNiIsInVucGFja1Nub3JtMngxNiIsInBhY2tVbm9ybTJ4MTYiLCJ1bnBhY2tVbm9ybTJ4MTYiLCJwYWNrSGFsZjJ4MTYiLCJ1bnBhY2tIYWxmMngxNiIsIm91dGVyUHJvZHVjdCIsInRyYW5zcG9zZSIsImRldGVybWluYW50IiwiaW52ZXJzZSIsInRleHR1cmUiLCJ0ZXh0dXJlU2l6ZSIsInRleHR1cmVQcm9qIiwidGV4dHVyZUxvZCIsInRleHR1cmVPZmZzZXQiLCJ0ZXhlbEZldGNoIiwidGV4ZWxGZXRjaE9mZnNldCIsInRleHR1cmVQcm9qT2Zmc2V0IiwidGV4dHVyZUxvZE9mZnNldCIsInRleHR1cmVQcm9qTG9kIiwidGV4dHVyZVByb2pMb2RPZmZzZXQiLCJ0ZXh0dXJlR3JhZCIsInRleHR1cmVHcmFkT2Zmc2V0IiwidGV4dHVyZVByb2pHcmFkIiwidGV4dHVyZVByb2pHcmFkT2Zmc2V0Il0pfSx7Ii4vYnVpbHRpbnMiOjIyNn1dLDIyNjpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1bImFicyIsImFjb3MiLCJhbGwiLCJhbnkiLCJhc2luIiwiYXRhbiIsImNlaWwiLCJjbGFtcCIsImNvcyIsImNyb3NzIiwiZEZkeCIsImRGZHkiLCJkZWdyZWVzIiwiZGlzdGFuY2UiLCJkb3QiLCJlcXVhbCIsImV4cCIsImV4cDIiLCJmYWNlZm9yd2FyZCIsImZsb29yIiwiZnJhY3QiLCJnbF9CYWNrQ29sb3IiLCJnbF9CYWNrTGlnaHRNb2RlbFByb2R1Y3QiLCJnbF9CYWNrTGlnaHRQcm9kdWN0IiwiZ2xfQmFja01hdGVyaWFsIiwiZ2xfQmFja1NlY29uZGFyeUNvbG9yIiwiZ2xfQ2xpcFBsYW5lIiwiZ2xfQ2xpcFZlcnRleCIsImdsX0NvbG9yIiwiZ2xfRGVwdGhSYW5nZSIsImdsX0RlcHRoUmFuZ2VQYXJhbWV0ZXJzIiwiZ2xfRXllUGxhbmVRIiwiZ2xfRXllUGxhbmVSIiwiZ2xfRXllUGxhbmVTIiwiZ2xfRXllUGxhbmVUIiwiZ2xfRm9nIiwiZ2xfRm9nQ29vcmQiLCJnbF9Gb2dGcmFnQ29vcmQiLCJnbF9Gb2dQYXJhbWV0ZXJzIiwiZ2xfRnJhZ0NvbG9yIiwiZ2xfRnJhZ0Nvb3JkIiwiZ2xfRnJhZ0RhdGEiLCJnbF9GcmFnRGVwdGgiLCJnbF9GcmFnRGVwdGhFWFQiLCJnbF9Gcm9udENvbG9yIiwiZ2xfRnJvbnRGYWNpbmciLCJnbF9Gcm9udExpZ2h0TW9kZWxQcm9kdWN0IiwiZ2xfRnJvbnRMaWdodFByb2R1Y3QiLCJnbF9Gcm9udE1hdGVyaWFsIiwiZ2xfRnJvbnRTZWNvbmRhcnlDb2xvciIsImdsX0xpZ2h0TW9kZWwiLCJnbF9MaWdodE1vZGVsUGFyYW1ldGVycyIsImdsX0xpZ2h0TW9kZWxQcm9kdWN0cyIsImdsX0xpZ2h0UHJvZHVjdHMiLCJnbF9MaWdodFNvdXJjZSIsImdsX0xpZ2h0U291cmNlUGFyYW1ldGVycyIsImdsX01hdGVyaWFsUGFyYW1ldGVycyIsImdsX01heENsaXBQbGFuZXMiLCJnbF9NYXhDb21iaW5lZFRleHR1cmVJbWFnZVVuaXRzIiwiZ2xfTWF4RHJhd0J1ZmZlcnMiLCJnbF9NYXhGcmFnbWVudFVuaWZvcm1Db21wb25lbnRzIiwiZ2xfTWF4TGlnaHRzIiwiZ2xfTWF4VGV4dHVyZUNvb3JkcyIsImdsX01heFRleHR1cmVJbWFnZVVuaXRzIiwiZ2xfTWF4VGV4dHVyZVVuaXRzIiwiZ2xfTWF4VmFyeWluZ0Zsb2F0cyIsImdsX01heFZlcnRleEF0dHJpYnMiLCJnbF9NYXhWZXJ0ZXhUZXh0dXJlSW1hZ2VVbml0cyIsImdsX01heFZlcnRleFVuaWZvcm1Db21wb25lbnRzIiwiZ2xfTW9kZWxWaWV3TWF0cml4IiwiZ2xfTW9kZWxWaWV3TWF0cml4SW52ZXJzZSIsImdsX01vZGVsVmlld01hdHJpeEludmVyc2VUcmFuc3Bvc2UiLCJnbF9Nb2RlbFZpZXdNYXRyaXhUcmFuc3Bvc2UiLCJnbF9Nb2RlbFZpZXdQcm9qZWN0aW9uTWF0cml4IiwiZ2xfTW9kZWxWaWV3UHJvamVjdGlvbk1hdHJpeEludmVyc2UiLCJnbF9Nb2RlbFZpZXdQcm9qZWN0aW9uTWF0cml4SW52ZXJzZVRyYW5zcG9zZSIsImdsX01vZGVsVmlld1Byb2plY3Rpb25NYXRyaXhUcmFuc3Bvc2UiLCJnbF9NdWx0aVRleENvb3JkMCIsImdsX011bHRpVGV4Q29vcmQxIiwiZ2xfTXVsdGlUZXhDb29yZDIiLCJnbF9NdWx0aVRleENvb3JkMyIsImdsX011bHRpVGV4Q29vcmQ0IiwiZ2xfTXVsdGlUZXhDb29yZDUiLCJnbF9NdWx0aVRleENvb3JkNiIsImdsX011bHRpVGV4Q29vcmQ3IiwiZ2xfTm9ybWFsIiwiZ2xfTm9ybWFsTWF0cml4IiwiZ2xfTm9ybWFsU2NhbGUiLCJnbF9PYmplY3RQbGFuZVEiLCJnbF9PYmplY3RQbGFuZVIiLCJnbF9PYmplY3RQbGFuZVMiLCJnbF9PYmplY3RQbGFuZVQiLCJnbF9Qb2ludCIsImdsX1BvaW50Q29vcmQiLCJnbF9Qb2ludFBhcmFtZXRlcnMiLCJnbF9Qb2ludFNpemUiLCJnbF9Qb3NpdGlvbiIsImdsX1Byb2plY3Rpb25NYXRyaXgiLCJnbF9Qcm9qZWN0aW9uTWF0cml4SW52ZXJzZSIsImdsX1Byb2plY3Rpb25NYXRyaXhJbnZlcnNlVHJhbnNwb3NlIiwiZ2xfUHJvamVjdGlvbk1hdHJpeFRyYW5zcG9zZSIsImdsX1NlY29uZGFyeUNvbG9yIiwiZ2xfVGV4Q29vcmQiLCJnbF9UZXh0dXJlRW52Q29sb3IiLCJnbF9UZXh0dXJlTWF0cml4IiwiZ2xfVGV4dHVyZU1hdHJpeEludmVyc2UiLCJnbF9UZXh0dXJlTWF0cml4SW52ZXJzZVRyYW5zcG9zZSIsImdsX1RleHR1cmVNYXRyaXhUcmFuc3Bvc2UiLCJnbF9WZXJ0ZXgiLCJncmVhdGVyVGhhbiIsImdyZWF0ZXJUaGFuRXF1YWwiLCJpbnZlcnNlc3FydCIsImxlbmd0aCIsImxlc3NUaGFuIiwibGVzc1RoYW5FcXVhbCIsImxvZyIsImxvZzIiLCJtYXRyaXhDb21wTXVsdCIsIm1heCIsIm1pbiIsIm1peCIsIm1vZCIsIm5vcm1hbGl6ZSIsIm5vdCIsIm5vdEVxdWFsIiwicG93IiwicmFkaWFucyIsInJlZmxlY3QiLCJyZWZyYWN0Iiwic2lnbiIsInNpbiIsInNtb290aHN0ZXAiLCJzcXJ0Iiwic3RlcCIsInRhbiIsInRleHR1cmUyRCIsInRleHR1cmUyRExvZCIsInRleHR1cmUyRFByb2oiLCJ0ZXh0dXJlMkRQcm9qTG9kIiwidGV4dHVyZUN1YmUiLCJ0ZXh0dXJlQ3ViZUxvZCIsInRleHR1cmUyRExvZEVYVCIsInRleHR1cmUyRFByb2pMb2RFWFQiLCJ0ZXh0dXJlQ3ViZUxvZEVYVCIsInRleHR1cmUyREdyYWRFWFQiLCJ0ZXh0dXJlMkRQcm9qR3JhZEVYVCIsInRleHR1cmVDdWJlR3JhZEVYVCJdfSx7fV0sMjI3OltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiLi9saXRlcmFscyIpO2UuZXhwb3J0cz1uLnNsaWNlKCkuY29uY2F0KFsibGF5b3V0IiwiY2VudHJvaWQiLCJzbW9vdGgiLCJjYXNlIiwibWF0MngyIiwibWF0MngzIiwibWF0Mng0IiwibWF0M3gyIiwibWF0M3gzIiwibWF0M3g0IiwibWF0NHgyIiwibWF0NHgzIiwibWF0NHg0IiwidXZlYzIiLCJ1dmVjMyIsInV2ZWM0Iiwic2FtcGxlckN1YmVTaGFkb3ciLCJzYW1wbGVyMkRBcnJheSIsInNhbXBsZXIyREFycmF5U2hhZG93IiwiaXNhbXBsZXIyRCIsImlzYW1wbGVyM0QiLCJpc2FtcGxlckN1YmUiLCJpc2FtcGxlcjJEQXJyYXkiLCJ1c2FtcGxlcjJEIiwidXNhbXBsZXIzRCIsInVzYW1wbGVyQ3ViZSIsInVzYW1wbGVyMkRBcnJheSIsImNvaGVyZW50IiwicmVzdHJpY3QiLCJyZWFkb25seSIsIndyaXRlb25seSIsInJlc291cmNlIiwiYXRvbWljX3VpbnQiLCJub3BlcnNwZWN0aXZlIiwicGF0Y2giLCJzYW1wbGUiLCJzdWJyb3V0aW5lIiwiY29tbW9uIiwicGFydGl0aW9uIiwiYWN0aXZlIiwiZmlsdGVyIiwiaW1hZ2UxRCIsImltYWdlMkQiLCJpbWFnZTNEIiwiaW1hZ2VDdWJlIiwiaWltYWdlMUQiLCJpaW1hZ2UyRCIsImlpbWFnZTNEIiwiaWltYWdlQ3ViZSIsInVpbWFnZTFEIiwidWltYWdlMkQiLCJ1aW1hZ2UzRCIsInVpbWFnZUN1YmUiLCJpbWFnZTFEQXJyYXkiLCJpbWFnZTJEQXJyYXkiLCJpaW1hZ2UxREFycmF5IiwiaWltYWdlMkRBcnJheSIsInVpbWFnZTFEQXJyYXkiLCJ1aW1hZ2UyREFycmF5IiwiaW1hZ2UxRFNoYWRvdyIsImltYWdlMkRTaGFkb3ciLCJpbWFnZTFEQXJyYXlTaGFkb3ciLCJpbWFnZTJEQXJyYXlTaGFkb3ciLCJpbWFnZUJ1ZmZlciIsImlpbWFnZUJ1ZmZlciIsInVpbWFnZUJ1ZmZlciIsInNhbXBsZXIxREFycmF5Iiwic2FtcGxlcjFEQXJyYXlTaGFkb3ciLCJpc2FtcGxlcjFEIiwiaXNhbXBsZXIxREFycmF5IiwidXNhbXBsZXIxRCIsInVzYW1wbGVyMURBcnJheSIsImlzYW1wbGVyMkRSZWN0IiwidXNhbXBsZXIyRFJlY3QiLCJzYW1wbGVyQnVmZmVyIiwiaXNhbXBsZXJCdWZmZXIiLCJ1c2FtcGxlckJ1ZmZlciIsInNhbXBsZXIyRE1TIiwiaXNhbXBsZXIyRE1TIiwidXNhbXBsZXIyRE1TIiwic2FtcGxlcjJETVNBcnJheSIsImlzYW1wbGVyMkRNU0FycmF5IiwidXNhbXBsZXIyRE1TQXJyYXkiXSl9LHsiLi9saXRlcmFscyI6MjI4fV0sMjI4OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPVsicHJlY2lzaW9uIiwiaGlnaHAiLCJtZWRpdW1wIiwibG93cCIsImF0dHJpYnV0ZSIsImNvbnN0IiwidW5pZm9ybSIsInZhcnlpbmciLCJicmVhayIsImNvbnRpbnVlIiwiZG8iLCJmb3IiLCJ3aGlsZSIsImlmIiwiZWxzZSIsImluIiwib3V0IiwiaW5vdXQiLCJmbG9hdCIsImludCIsInVpbnQiLCJ2b2lkIiwiYm9vbCIsInRydWUiLCJmYWxzZSIsImRpc2NhcmQiLCJyZXR1cm4iLCJtYXQyIiwibWF0MyIsIm1hdDQiLCJ2ZWMyIiwidmVjMyIsInZlYzQiLCJpdmVjMiIsIml2ZWMzIiwiaXZlYzQiLCJidmVjMiIsImJ2ZWMzIiwiYnZlYzQiLCJzYW1wbGVyMUQiLCJzYW1wbGVyMkQiLCJzYW1wbGVyM0QiLCJzYW1wbGVyQ3ViZSIsInNhbXBsZXIxRFNoYWRvdyIsInNhbXBsZXIyRFNoYWRvdyIsInN0cnVjdCIsImFzbSIsImNsYXNzIiwidW5pb24iLCJlbnVtIiwidHlwZWRlZiIsInRlbXBsYXRlIiwidGhpcyIsInBhY2tlZCIsImdvdG8iLCJzd2l0Y2giLCJkZWZhdWx0IiwiaW5saW5lIiwibm9pbmxpbmUiLCJ2b2xhdGlsZSIsInB1YmxpYyIsInN0YXRpYyIsImV4dGVybiIsImV4dGVybmFsIiwiaW50ZXJmYWNlIiwibG9uZyIsInNob3J0IiwiZG91YmxlIiwiaGFsZiIsImZpeGVkIiwidW5zaWduZWQiLCJpbnB1dCIsIm91dHB1dCIsImh2ZWMyIiwiaHZlYzMiLCJodmVjNCIsImR2ZWMyIiwiZHZlYzMiLCJkdmVjNCIsImZ2ZWMyIiwiZnZlYzMiLCJmdmVjNCIsInNhbXBsZXIyRFJlY3QiLCJzYW1wbGVyM0RSZWN0Iiwic2FtcGxlcjJEUmVjdFNoYWRvdyIsInNpemVvZiIsImNhc3QiLCJuYW1lc3BhY2UiLCJ1c2luZyJdfSx7fV0sMjI5OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPVsiPDw9IiwiPj49IiwiKysiLCItLSIsIjw8IiwiPj4iLCI8PSIsIj49IiwiPT0iLCIhPSIsIiYmIiwifHwiLCIrPSIsIi09IiwiKj0iLCIvPSIsIiU9IiwiJj0iLCJeXiIsIl49IiwifD0iLCIoIiwiKSIsIlsiLCJdIiwiLiIsIiEiLCJ+IiwiKiIsIi8iLCIlIiwiKyIsIi0iLCI8IiwiPiIsIiYiLCJeIiwifCIsIj8iLCI6IiwiPSIsIiwiLCI7IiwieyIsIn0iXX0se31dLDIzMDpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoIi4vaW5kZXgiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1uKGUpLGk9W107cmV0dXJuIGk9KGk9aS5jb25jYXQocih0KSkpLmNvbmNhdChyKG51bGwpKX19LHsiLi9pbmRleCI6MjI0fV0sMjMxOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpeyJzdHJpbmciPT10eXBlb2YgdCYmKHQ9W3RdKTtmb3IodmFyIGU9W10uc2xpY2UuY2FsbChhcmd1bWVudHMsMSkscj1bXSxuPTA7bjx0Lmxlbmd0aC0xO24rKylyLnB1c2godFtuXSxlW25dfHwiIik7cmV0dXJuIHIucHVzaCh0W25dKSxyLmpvaW4oIiIpfX0se31dLDIzMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJpcy1icm93c2VyIik7ZS5leHBvcnRzPW4mJmZ1bmN0aW9uKCl7dmFyIHQ9ITE7dHJ5e3ZhciBlPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwicGFzc2l2ZSIse2dldDpmdW5jdGlvbigpe3Q9ITB9fSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLG51bGwsZSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRlc3QiLG51bGwsZSl9Y2F0Y2goZSl7dD0hMX1yZXR1cm4gdH0oKX0seyJpcy1icm93c2VyIjoyMzZ9XSwyMzM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5sZW5ndGg7aWYoMD09PXIpdGhyb3cgbmV3IEVycm9yKCJNdXN0IGhhdmUgYXQgbGVhc3QgZCsxIHBvaW50cyIpO3ZhciBpPXRbMF0ubGVuZ3RoO2lmKHI8PWkpdGhyb3cgbmV3IEVycm9yKCJNdXN0IGlucHV0IGF0IGxlYXN0IGQrMSBwb2ludHMiKTt2YXIgbz10LnNsaWNlKDAsaSsxKSxzPW4uYXBwbHkodm9pZCAwLG8pO2lmKDA9PT1zKXRocm93IG5ldyBFcnJvcigiSW5wdXQgbm90IGluIGdlbmVyYWwgcG9zaXRpb24iKTtmb3IodmFyIGw9bmV3IEFycmF5KGkrMSksdT0wO3U8PWk7Kyt1KWxbdV09dTtzPDAmJihsWzBdPTEsbFsxXT0wKTt2YXIgZj1uZXcgYShsLG5ldyBBcnJheShpKzEpLCExKSxoPWYuYWRqYWNlbnQscD1uZXcgQXJyYXkoaSsyKTtmb3IodT0wO3U8PWk7Kyt1KXtmb3IodmFyIGQ9bC5zbGljZSgpLG09MDttPD1pOysrbSltPT09dSYmKGRbbV09LTEpO3ZhciBnPWRbMF07ZFswXT1kWzFdLGRbMV09Zzt2YXIgdj1uZXcgYShkLG5ldyBBcnJheShpKzEpLCEwKTtoW3VdPXYscFt1XT12fXBbaSsxXT1mO2Zvcih1PTA7dTw9aTsrK3Upe2Q9aFt1XS52ZXJ0aWNlczt2YXIgeT1oW3VdLmFkamFjZW50O2ZvcihtPTA7bTw9aTsrK20pe3ZhciB4PWRbbV07aWYoeDwwKXlbbV09ZjtlbHNlIGZvcih2YXIgYj0wO2I8PWk7KytiKWhbYl0udmVydGljZXMuaW5kZXhPZih4KTwwJiYoeVttXT1oW2JdKX19dmFyIF89bmV3IGMoaSxvLHApLHc9ISFlO2Zvcih1PWkrMTt1PHI7Kyt1KV8uaW5zZXJ0KHRbdV0sdyk7cmV0dXJuIF8uYm91bmRhcnkoKX07dmFyIG49dCgicm9idXN0LW9yaWVudGF0aW9uIiksaT10KCJzaW1wbGljaWFsLWNvbXBsZXgiKS5jb21wYXJlQ2VsbHM7ZnVuY3Rpb24gYSh0LGUscil7dGhpcy52ZXJ0aWNlcz10LHRoaXMuYWRqYWNlbnQ9ZSx0aGlzLmJvdW5kYXJ5PXIsdGhpcy5sYXN0VmlzaXRlZD0tMX1mdW5jdGlvbiBvKHQsZSxyKXt0aGlzLnZlcnRpY2VzPXQsdGhpcy5jZWxsPWUsdGhpcy5pbmRleD1yfWZ1bmN0aW9uIHModCxlKXtyZXR1cm4gaSh0LnZlcnRpY2VzLGUudmVydGljZXMpfWEucHJvdG90eXBlLmZsaXA9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnZlcnRpY2VzWzBdO3RoaXMudmVydGljZXNbMF09dGhpcy52ZXJ0aWNlc1sxXSx0aGlzLnZlcnRpY2VzWzFdPXQ7dmFyIGU9dGhpcy5hZGphY2VudFswXTt0aGlzLmFkamFjZW50WzBdPXRoaXMuYWRqYWNlbnRbMV0sdGhpcy5hZGphY2VudFsxXT1lfTt2YXIgbD1bXTtmdW5jdGlvbiBjKHQsZSxyKXt0aGlzLmRpbWVuc2lvbj10LHRoaXMudmVydGljZXM9ZSx0aGlzLnNpbXBsaWNlcz1yLHRoaXMuaW50ZXJpb3I9ci5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiF0LmJvdW5kYXJ5fSkpLHRoaXMudHVwbGU9bmV3IEFycmF5KHQrMSk7Zm9yKHZhciBpPTA7aTw9dDsrK2kpdGhpcy50dXBsZVtpXT10aGlzLnZlcnRpY2VzW2ldO3ZhciBhLG89bFt0XTtvfHwobz1sW3RdPSgoYT1uW3QrMV0pfHwoYT1uKSxmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLnR1cGxlO3JldHVybiB0LmFwcGx5KHRoaXMsZSl9fShhKSkpLHRoaXMub3JpZW50PW99dmFyIHU9Yy5wcm90b3R5cGU7dS5oYW5kbGVCb3VuZGFyeURlZ2VuZXJhY3k9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmRpbWVuc2lvbixuPXRoaXMudmVydGljZXMubGVuZ3RoLTEsaT10aGlzLnR1cGxlLGE9dGhpcy52ZXJ0aWNlcyxvPVt0XTtmb3IodC5sYXN0VmlzaXRlZD0tbjtvLmxlbmd0aD4wOylmb3IodmFyIHM9KHQ9by5wb3AoKSkuYWRqYWNlbnQsbD0wO2w8PXI7KytsKXt2YXIgYz1zW2xdO2lmKGMuYm91bmRhcnkmJiEoYy5sYXN0VmlzaXRlZDw9LW4pKXtmb3IodmFyIHU9Yy52ZXJ0aWNlcyxmPTA7Zjw9cjsrK2Ype3ZhciBoPXVbZl07aVtmXT1oPDA/ZTphW2hdfXZhciBwPXRoaXMub3JpZW50KCk7aWYocD4wKXJldHVybiBjO2MubGFzdFZpc2l0ZWQ9LW4sMD09PXAmJm8ucHVzaChjKX19cmV0dXJuIG51bGx9LHUud2Fsaz1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMudmVydGljZXMubGVuZ3RoLTEsbj10aGlzLmRpbWVuc2lvbixpPXRoaXMudmVydGljZXMsYT10aGlzLnR1cGxlLG89ZT90aGlzLmludGVyaW9yLmxlbmd0aCpNYXRoLnJhbmRvbSgpfDA6dGhpcy5pbnRlcmlvci5sZW5ndGgtMSxzPXRoaXMuaW50ZXJpb3Jbb107dDpmb3IoOyFzLmJvdW5kYXJ5Oyl7Zm9yKHZhciBsPXMudmVydGljZXMsYz1zLmFkamFjZW50LHU9MDt1PD1uOysrdSlhW3VdPWlbbFt1XV07cy5sYXN0VmlzaXRlZD1yO2Zvcih1PTA7dTw9bjsrK3Upe3ZhciBmPWNbdV07aWYoIShmLmxhc3RWaXNpdGVkPj1yKSl7dmFyIGg9YVt1XTthW3VdPXQ7dmFyIHA9dGhpcy5vcmllbnQoKTtpZihhW3VdPWgscDwwKXtzPWY7Y29udGludWUgdH1mLmJvdW5kYXJ5P2YubGFzdFZpc2l0ZWQ9LXI6Zi5sYXN0VmlzaXRlZD1yfX1yZXR1cm59cmV0dXJuIHN9LHUuYWRkUGVha3M9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLnZlcnRpY2VzLmxlbmd0aC0xLG49dGhpcy5kaW1lbnNpb24saT10aGlzLnZlcnRpY2VzLGw9dGhpcy50dXBsZSxjPXRoaXMuaW50ZXJpb3IsdT10aGlzLnNpbXBsaWNlcyxmPVtlXTtlLmxhc3RWaXNpdGVkPXIsZS52ZXJ0aWNlc1tlLnZlcnRpY2VzLmluZGV4T2YoLTEpXT1yLGUuYm91bmRhcnk9ITEsYy5wdXNoKGUpO2Zvcih2YXIgaD1bXTtmLmxlbmd0aD4wOyl7dmFyIHA9KGU9Zi5wb3AoKSkudmVydGljZXMsZD1lLmFkamFjZW50LG09cC5pbmRleE9mKHIpO2lmKCEobTwwKSlmb3IodmFyIGc9MDtnPD1uOysrZylpZihnIT09bSl7dmFyIHY9ZFtnXTtpZih2LmJvdW5kYXJ5JiYhKHYubGFzdFZpc2l0ZWQ+PXIpKXt2YXIgeT12LnZlcnRpY2VzO2lmKHYubGFzdFZpc2l0ZWQhPT0tcil7Zm9yKHZhciB4PTAsYj0wO2I8PW47KytiKXlbYl08MD8oeD1iLGxbYl09dCk6bFtiXT1pW3lbYl1dO2lmKHRoaXMub3JpZW50KCk+MCl7eVt4XT1yLHYuYm91bmRhcnk9ITEsYy5wdXNoKHYpLGYucHVzaCh2KSx2Lmxhc3RWaXNpdGVkPXI7Y29udGludWV9di5sYXN0VmlzaXRlZD0tcn12YXIgXz12LmFkamFjZW50LHc9cC5zbGljZSgpLFQ9ZC5zbGljZSgpLGs9bmV3IGEodyxULCEwKTt1LnB1c2goayk7dmFyIEE9Xy5pbmRleE9mKGUpO2lmKCEoQTwwKSl7X1tBXT1rLFRbbV09dix3W2ddPS0xLFRbZ109ZSxkW2ddPWssay5mbGlwKCk7Zm9yKGI9MDtiPD1uOysrYil7dmFyIE09d1tiXTtpZighKE08MHx8TT09PXIpKXtmb3IodmFyIFM9bmV3IEFycmF5KG4tMSksRT0wLEw9MDtMPD1uOysrTCl7dmFyIEM9d1tMXTtDPDB8fEw9PT1ifHwoU1tFKytdPUMpfWgucHVzaChuZXcgbyhTLGssYikpfX19fX19aC5zb3J0KHMpO2ZvcihnPTA7ZysxPGgubGVuZ3RoO2crPTIpe3ZhciBQPWhbZ10sST1oW2crMV0sTz1QLmluZGV4LHo9SS5pbmRleDtPPDB8fHo8MHx8KFAuY2VsbC5hZGphY2VudFtQLmluZGV4XT1JLmNlbGwsSS5jZWxsLmFkamFjZW50W0kuaW5kZXhdPVAuY2VsbCl9fSx1Lmluc2VydD1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMudmVydGljZXM7ci5wdXNoKHQpO3ZhciBuPXRoaXMud2Fsayh0LGUpO2lmKG4pe2Zvcih2YXIgaT10aGlzLmRpbWVuc2lvbixhPXRoaXMudHVwbGUsbz0wO288PWk7KytvKXt2YXIgcz1uLnZlcnRpY2VzW29dO2Fbb109czwwP3Q6cltzXX12YXIgbD10aGlzLm9yaWVudChhKTtsPDB8fCgwIT09bHx8KG49dGhpcy5oYW5kbGVCb3VuZGFyeURlZ2VuZXJhY3kobix0KSkpJiZ0aGlzLmFkZFBlYWtzKHQsbil9fSx1LmJvdW5kYXJ5PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuZGltZW5zaW9uLGU9W10scj10aGlzLnNpbXBsaWNlcyxuPXIubGVuZ3RoLGk9MDtpPG47KytpKXt2YXIgYT1yW2ldO2lmKGEuYm91bmRhcnkpe2Zvcih2YXIgbz1uZXcgQXJyYXkodCkscz1hLnZlcnRpY2VzLGw9MCxjPTAsdT0wO3U8PXQ7Kyt1KXNbdV0+PTA/b1tsKytdPXNbdV06Yz0xJnU7aWYoYz09PSgxJnQpKXt2YXIgZj1vWzBdO29bMF09b1sxXSxvWzFdPWZ9ZS5wdXNoKG8pfX1yZXR1cm4gZX19LHsicm9idXN0LW9yaWVudGF0aW9uIjoyODQsInNpbXBsaWNpYWwtY29tcGxleCI6MjkzfV0sMjM0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImJpbmFyeS1zZWFyY2gtYm91bmRzIik7ZnVuY3Rpb24gaSh0LGUscixuLGkpe3RoaXMubWlkPXQsdGhpcy5sZWZ0PWUsdGhpcy5yaWdodD1yLHRoaXMubGVmdFBvaW50cz1uLHRoaXMucmlnaHRQb2ludHM9aSx0aGlzLmNvdW50PShlP2UuY291bnQ6MCkrKHI/ci5jb3VudDowKStuLmxlbmd0aH1lLmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoIXR8fDA9PT10Lmxlbmd0aClyZXR1cm4gbmV3IHYobnVsbCk7cmV0dXJuIG5ldyB2KGcodCkpfTt2YXIgYT1pLnByb3RvdHlwZTtmdW5jdGlvbiBvKHQsZSl7dC5taWQ9ZS5taWQsdC5sZWZ0PWUubGVmdCx0LnJpZ2h0PWUucmlnaHQsdC5sZWZ0UG9pbnRzPWUubGVmdFBvaW50cyx0LnJpZ2h0UG9pbnRzPWUucmlnaHRQb2ludHMsdC5jb3VudD1lLmNvdW50fWZ1bmN0aW9uIHModCxlKXt2YXIgcj1nKGUpO3QubWlkPXIubWlkLHQubGVmdD1yLmxlZnQsdC5yaWdodD1yLnJpZ2h0LHQubGVmdFBvaW50cz1yLmxlZnRQb2ludHMsdC5yaWdodFBvaW50cz1yLnJpZ2h0UG9pbnRzLHQuY291bnQ9ci5jb3VudH1mdW5jdGlvbiBsKHQsZSl7dmFyIHI9dC5pbnRlcnZhbHMoW10pO3IucHVzaChlKSxzKHQscil9ZnVuY3Rpb24gYyh0LGUpe3ZhciByPXQuaW50ZXJ2YWxzKFtdKSxuPXIuaW5kZXhPZihlKTtyZXR1cm4gbjwwPzA6KHIuc3BsaWNlKG4sMSkscyh0LHIpLDEpfWZ1bmN0aW9uIHUodCxlLHIpe2Zvcih2YXIgbj0wO248dC5sZW5ndGgmJnRbbl1bMF08PWU7KytuKXt2YXIgaT1yKHRbbl0pO2lmKGkpcmV0dXJuIGl9fWZ1bmN0aW9uIGYodCxlLHIpe2Zvcih2YXIgbj10Lmxlbmd0aC0xO24+PTAmJnRbbl1bMV0+PWU7LS1uKXt2YXIgaT1yKHRbbl0pO2lmKGkpcmV0dXJuIGl9fWZ1bmN0aW9uIGgodCxlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoOysrcil7dmFyIG49ZSh0W3JdKTtpZihuKXJldHVybiBufX1mdW5jdGlvbiBwKHQsZSl7cmV0dXJuIHQtZX1mdW5jdGlvbiBkKHQsZSl7dmFyIHI9dFswXS1lWzBdO3JldHVybiByfHx0WzFdLWVbMV19ZnVuY3Rpb24gbSh0LGUpe3ZhciByPXRbMV0tZVsxXTtyZXR1cm4gcnx8dFswXS1lWzBdfWZ1bmN0aW9uIGcodCl7aWYoMD09PXQubGVuZ3RoKXJldHVybiBudWxsO2Zvcih2YXIgZT1bXSxyPTA7cjx0Lmxlbmd0aDsrK3IpZS5wdXNoKHRbcl1bMF0sdFtyXVsxXSk7ZS5zb3J0KHApO3ZhciBuPWVbZS5sZW5ndGg+PjFdLGE9W10sbz1bXSxzPVtdO2ZvcihyPTA7cjx0Lmxlbmd0aDsrK3Ipe3ZhciBsPXRbcl07bFsxXTxuP2EucHVzaChsKTpuPGxbMF0/by5wdXNoKGwpOnMucHVzaChsKX12YXIgYz1zLHU9cy5zbGljZSgpO3JldHVybiBjLnNvcnQoZCksdS5zb3J0KG0pLG5ldyBpKG4sZyhhKSxnKG8pLGMsdSl9ZnVuY3Rpb24gdih0KXt0aGlzLnJvb3Q9dH1hLmludGVydmFscz1mdW5jdGlvbih0KXtyZXR1cm4gdC5wdXNoLmFwcGx5KHQsdGhpcy5sZWZ0UG9pbnRzKSx0aGlzLmxlZnQmJnRoaXMubGVmdC5pbnRlcnZhbHModCksdGhpcy5yaWdodCYmdGhpcy5yaWdodC5pbnRlcnZhbHModCksdH0sYS5pbnNlcnQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jb3VudC10aGlzLmxlZnRQb2ludHMubGVuZ3RoO2lmKHRoaXMuY291bnQrPTEsdFsxXTx0aGlzLm1pZCl0aGlzLmxlZnQ/NCoodGhpcy5sZWZ0LmNvdW50KzEpPjMqKGUrMSk/bCh0aGlzLHQpOnRoaXMubGVmdC5pbnNlcnQodCk6dGhpcy5sZWZ0PWcoW3RdKTtlbHNlIGlmKHRbMF0+dGhpcy5taWQpdGhpcy5yaWdodD80Kih0aGlzLnJpZ2h0LmNvdW50KzEpPjMqKGUrMSk/bCh0aGlzLHQpOnRoaXMucmlnaHQuaW5zZXJ0KHQpOnRoaXMucmlnaHQ9ZyhbdF0pO2Vsc2V7dmFyIHI9bi5nZSh0aGlzLmxlZnRQb2ludHMsdCxkKSxpPW4uZ2UodGhpcy5yaWdodFBvaW50cyx0LG0pO3RoaXMubGVmdFBvaW50cy5zcGxpY2UociwwLHQpLHRoaXMucmlnaHRQb2ludHMuc3BsaWNlKGksMCx0KX19LGEucmVtb3ZlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY291bnQtdGhpcy5sZWZ0UG9pbnRzO2lmKHRbMV08dGhpcy5taWQpcmV0dXJuIHRoaXMubGVmdD80Kih0aGlzLnJpZ2h0P3RoaXMucmlnaHQuY291bnQ6MCk+MyooZS0xKT9jKHRoaXMsdCk6Mj09PShzPXRoaXMubGVmdC5yZW1vdmUodCkpPyh0aGlzLmxlZnQ9bnVsbCx0aGlzLmNvdW50LT0xLDEpOigxPT09cyYmKHRoaXMuY291bnQtPTEpLHMpOjA7aWYodFswXT50aGlzLm1pZClyZXR1cm4gdGhpcy5yaWdodD80Kih0aGlzLmxlZnQ/dGhpcy5sZWZ0LmNvdW50OjApPjMqKGUtMSk/Yyh0aGlzLHQpOjI9PT0ocz10aGlzLnJpZ2h0LnJlbW92ZSh0KSk/KHRoaXMucmlnaHQ9bnVsbCx0aGlzLmNvdW50LT0xLDEpOigxPT09cyYmKHRoaXMuY291bnQtPTEpLHMpOjA7aWYoMT09PXRoaXMuY291bnQpcmV0dXJuIHRoaXMubGVmdFBvaW50c1swXT09PXQ/MjowO2lmKDE9PT10aGlzLmxlZnRQb2ludHMubGVuZ3RoJiZ0aGlzLmxlZnRQb2ludHNbMF09PT10KXtpZih0aGlzLmxlZnQmJnRoaXMucmlnaHQpe2Zvcih2YXIgcj10aGlzLGk9dGhpcy5sZWZ0O2kucmlnaHQ7KXI9aSxpPWkucmlnaHQ7aWYocj09PXRoaXMpaS5yaWdodD10aGlzLnJpZ2h0O2Vsc2V7dmFyIGE9dGhpcy5sZWZ0LHM9dGhpcy5yaWdodDtyLmNvdW50LT1pLmNvdW50LHIucmlnaHQ9aS5sZWZ0LGkubGVmdD1hLGkucmlnaHQ9c31vKHRoaXMsaSksdGhpcy5jb3VudD0odGhpcy5sZWZ0P3RoaXMubGVmdC5jb3VudDowKSsodGhpcy5yaWdodD90aGlzLnJpZ2h0LmNvdW50OjApK3RoaXMubGVmdFBvaW50cy5sZW5ndGh9ZWxzZSB0aGlzLmxlZnQ/byh0aGlzLHRoaXMubGVmdCk6byh0aGlzLHRoaXMucmlnaHQpO3JldHVybiAxfWZvcihhPW4uZ2UodGhpcy5sZWZ0UG9pbnRzLHQsZCk7YTx0aGlzLmxlZnRQb2ludHMubGVuZ3RoJiZ0aGlzLmxlZnRQb2ludHNbYV1bMF09PT10WzBdOysrYSlpZih0aGlzLmxlZnRQb2ludHNbYV09PT10KXt0aGlzLmNvdW50LT0xLHRoaXMubGVmdFBvaW50cy5zcGxpY2UoYSwxKTtmb3Iocz1uLmdlKHRoaXMucmlnaHRQb2ludHMsdCxtKTtzPHRoaXMucmlnaHRQb2ludHMubGVuZ3RoJiZ0aGlzLnJpZ2h0UG9pbnRzW3NdWzFdPT09dFsxXTsrK3MpaWYodGhpcy5yaWdodFBvaW50c1tzXT09PXQpcmV0dXJuIHRoaXMucmlnaHRQb2ludHMuc3BsaWNlKHMsMSksMX1yZXR1cm4gMH0sYS5xdWVyeVBvaW50PWZ1bmN0aW9uKHQsZSl7aWYodDx0aGlzLm1pZCl7aWYodGhpcy5sZWZ0KWlmKHI9dGhpcy5sZWZ0LnF1ZXJ5UG9pbnQodCxlKSlyZXR1cm4gcjtyZXR1cm4gdSh0aGlzLmxlZnRQb2ludHMsdCxlKX1pZih0PnRoaXMubWlkKXt2YXIgcjtpZih0aGlzLnJpZ2h0KWlmKHI9dGhpcy5yaWdodC5xdWVyeVBvaW50KHQsZSkpcmV0dXJuIHI7cmV0dXJuIGYodGhpcy5yaWdodFBvaW50cyx0LGUpfXJldHVybiBoKHRoaXMubGVmdFBvaW50cyxlKX0sYS5xdWVyeUludGVydmFsPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbjtpZih0PHRoaXMubWlkJiZ0aGlzLmxlZnQmJihuPXRoaXMubGVmdC5xdWVyeUludGVydmFsKHQsZSxyKSkpcmV0dXJuIG47aWYoZT50aGlzLm1pZCYmdGhpcy5yaWdodCYmKG49dGhpcy5yaWdodC5xdWVyeUludGVydmFsKHQsZSxyKSkpcmV0dXJuIG47cmV0dXJuIGU8dGhpcy5taWQ/dSh0aGlzLmxlZnRQb2ludHMsZSxyKTp0PnRoaXMubWlkP2YodGhpcy5yaWdodFBvaW50cyx0LHIpOmgodGhpcy5sZWZ0UG9pbnRzLHIpfTt2YXIgeT12LnByb3RvdHlwZTt5Lmluc2VydD1mdW5jdGlvbih0KXt0aGlzLnJvb3Q/dGhpcy5yb290Lmluc2VydCh0KTp0aGlzLnJvb3Q9bmV3IGkodFswXSxudWxsLG51bGwsW3RdLFt0XSl9LHkucmVtb3ZlPWZ1bmN0aW9uKHQpe2lmKHRoaXMucm9vdCl7dmFyIGU9dGhpcy5yb290LnJlbW92ZSh0KTtyZXR1cm4gMj09PWUmJih0aGlzLnJvb3Q9bnVsbCksMCE9PWV9cmV0dXJuITF9LHkucXVlcnlQb2ludD1mdW5jdGlvbih0LGUpe2lmKHRoaXMucm9vdClyZXR1cm4gdGhpcy5yb290LnF1ZXJ5UG9pbnQodCxlKX0seS5xdWVyeUludGVydmFsPWZ1bmN0aW9uKHQsZSxyKXtpZih0PD1lJiZ0aGlzLnJvb3QpcmV0dXJuIHRoaXMucm9vdC5xdWVyeUludGVydmFsKHQsZSxyKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KHksImNvdW50Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucm9vdD90aGlzLnJvb3QuY291bnQ6MH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoeSwiaW50ZXJ2YWxzIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucm9vdD90aGlzLnJvb3QuaW50ZXJ2YWxzKFtdKTpbXX19KX0seyJiaW5hcnktc2VhcmNoLWJvdW5kcyI6MzF9XSwyMzU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1uZXcgQXJyYXkodCkscj0wO3I8dDsrK3IpZVtyXT1yO3JldHVybiBlfX0se31dLDIzNjpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz0hMH0se31dLDIzNzpbZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4odCl7cmV0dXJuISF0LmNvbnN0cnVjdG9yJiYiZnVuY3Rpb24iPT10eXBlb2YgdC5jb25zdHJ1Y3Rvci5pc0J1ZmZlciYmdC5jb25zdHJ1Y3Rvci5pc0J1ZmZlcih0KX0KLyohCiAqIERldGVybWluZSBpZiBhbiBvYmplY3QgaXMgYSBCdWZmZXIKICoKICogQGF1dGhvciAgIEZlcm9zcyBBYm91a2hhZGlqZWggPGh0dHBzOi8vZmVyb3NzLm9yZz4KICogQGxpY2Vuc2UgIE1JVAogKi8KZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT10JiYobih0KXx8ZnVuY3Rpb24odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQucmVhZEZsb2F0TEUmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LnNsaWNlJiZuKHQuc2xpY2UoMCwwKSl9KHQpfHwhIXQuX2lzQnVmZmVyKX19LHt9XSwyMzg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWEsZS5leHBvcnRzLmlzTW9iaWxlPWEsZS5leHBvcnRzLmRlZmF1bHQ9YTt2YXIgbj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlyaXN8a2luZGxlfGxnZSB8bWFlbW98bWlkcHxtbXB8bW9iaWxlLitmaXJlZm94fG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXNbNDZdMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2ksaT0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlyaXN8a2luZGxlfGxnZSB8bWFlbW98bWlkcHxtbXB8bW9iaWxlLitmaXJlZm94fG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXNbNDZdMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vfGFuZHJvaWR8aXBhZHxwbGF5Ym9va3xzaWxrL2k7ZnVuY3Rpb24gYSh0KXt0fHwodD17fSk7dmFyIGU9dC51YTtpZihlfHwidW5kZWZpbmVkIj09dHlwZW9mIG5hdmlnYXRvcnx8KGU9bmF2aWdhdG9yLnVzZXJBZ2VudCksZSYmZS5oZWFkZXJzJiYic3RyaW5nIj09dHlwZW9mIGUuaGVhZGVyc1sidXNlci1hZ2VudCJdJiYoZT1lLmhlYWRlcnNbInVzZXItYWdlbnQiXSksInN0cmluZyIhPXR5cGVvZiBlKXJldHVybiExO3ZhciByPXQudGFibGV0P2kudGVzdChlKTpuLnRlc3QoZSk7cmV0dXJuIXImJnQudGFibGV0JiZ0LmZlYXR1cmVEZXRlY3QmJm5hdmlnYXRvciYmbmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzPjEmJi0xIT09ZS5pbmRleE9mKCJNYWNpbnRvc2giKSYmLTEhPT1lLmluZGV4T2YoIlNhZmFyaSIpJiYocj0hMCkscn19LHt9XSwyMzk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyPXQubGVuZ3RoLG49MDtuPHI7bisrKWlmKCgoZT10LmNoYXJDb2RlQXQobikpPDl8fGU+MTMpJiYzMiE9PWUmJjEzMyE9PWUmJjE2MCE9PWUmJjU3NjAhPT1lJiY2MTU4IT09ZSYmKGU8ODE5Mnx8ZT44MjA1KSYmODIzMiE9PWUmJjgyMzMhPT1lJiY4MjM5IT09ZSYmODI4NyE9PWUmJjgyODghPT1lJiYxMjI4OCE9PWUmJjY1Mjc5IT09ZSlyZXR1cm4hMTtyZXR1cm4hMH19LHt9XSwyNDA6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0KigxLXIpK2Uqcn19LHt9XSwyNDE6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCIuL25vcm1hbGl6ZSIpLGk9dCgiZ2wtbWF0NC9jcmVhdGUiKSxhPXQoImdsLW1hdDQvY2xvbmUiKSxvPXQoImdsLW1hdDQvZGV0ZXJtaW5hbnQiKSxzPXQoImdsLW1hdDQvaW52ZXJ0IiksbD10KCJnbC1tYXQ0L3RyYW5zcG9zZSIpLGM9e2xlbmd0aDp0KCJnbC12ZWMzL2xlbmd0aCIpLG5vcm1hbGl6ZTp0KCJnbC12ZWMzL25vcm1hbGl6ZSIpLGRvdDp0KCJnbC12ZWMzL2RvdCIpLGNyb3NzOnQoImdsLXZlYzMvY3Jvc3MiKX0sdT1pKCksZj1pKCksaD1bMCwwLDAsMF0scD1bWzAsMCwwXSxbMCwwLDBdLFswLDAsMF1dLGQ9WzAsMCwwXTtmdW5jdGlvbiBtKHQsZSxyLG4saSl7dFswXT1lWzBdKm4rclswXSppLHRbMV09ZVsxXSpuK3JbMV0qaSx0WzJdPWVbMl0qbityWzJdKml9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGksZyx2KXtpZihlfHwoZT1bMCwwLDBdKSxyfHwocj1bMCwwLDBdKSxpfHwoaT1bMCwwLDBdKSxnfHwoZz1bMCwwLDAsMV0pLHZ8fCh2PVswLDAsMCwxXSksIW4odSx0KSlyZXR1cm4hMTtpZihhKGYsdSksZlszXT0wLGZbN109MCxmWzExXT0wLGZbMTVdPTEsTWF0aC5hYnMobyhmKTwxZS04KSlyZXR1cm4hMTt2YXIgeSx4LGIsXyx3LFQsayxBPXVbM10sTT11WzddLFM9dVsxMV0sRT11WzEyXSxMPXVbMTNdLEM9dVsxNF0sUD11WzE1XTtpZigwIT09QXx8MCE9PU18fDAhPT1TKXtpZihoWzBdPUEsaFsxXT1NLGhbMl09UyxoWzNdPVAsIXMoZixmKSlyZXR1cm4hMTtsKGYsZikseT1nLGI9ZixfPSh4PWgpWzBdLHc9eFsxXSxUPXhbMl0saz14WzNdLHlbMF09YlswXSpfK2JbNF0qdytiWzhdKlQrYlsxMl0qayx5WzFdPWJbMV0qXytiWzVdKncrYls5XSpUK2JbMTNdKmsseVsyXT1iWzJdKl8rYls2XSp3K2JbMTBdKlQrYlsxNF0qayx5WzNdPWJbM10qXytiWzddKncrYlsxMV0qVCtiWzE1XSprfWVsc2UgZ1swXT1nWzFdPWdbMl09MCxnWzNdPTE7aWYoZVswXT1FLGVbMV09TCxlWzJdPUMsZnVuY3Rpb24odCxlKXt0WzBdWzBdPWVbMF0sdFswXVsxXT1lWzFdLHRbMF1bMl09ZVsyXSx0WzFdWzBdPWVbNF0sdFsxXVsxXT1lWzVdLHRbMV1bMl09ZVs2XSx0WzJdWzBdPWVbOF0sdFsyXVsxXT1lWzldLHRbMl1bMl09ZVsxMF19KHAsdSksclswXT1jLmxlbmd0aChwWzBdKSxjLm5vcm1hbGl6ZShwWzBdLHBbMF0pLGlbMF09Yy5kb3QocFswXSxwWzFdKSxtKHBbMV0scFsxXSxwWzBdLDEsLWlbMF0pLHJbMV09Yy5sZW5ndGgocFsxXSksYy5ub3JtYWxpemUocFsxXSxwWzFdKSxpWzBdLz1yWzFdLGlbMV09Yy5kb3QocFswXSxwWzJdKSxtKHBbMl0scFsyXSxwWzBdLDEsLWlbMV0pLGlbMl09Yy5kb3QocFsxXSxwWzJdKSxtKHBbMl0scFsyXSxwWzFdLDEsLWlbMl0pLHJbMl09Yy5sZW5ndGgocFsyXSksYy5ub3JtYWxpemUocFsyXSxwWzJdKSxpWzFdLz1yWzJdLGlbMl0vPXJbMl0sYy5jcm9zcyhkLHBbMV0scFsyXSksYy5kb3QocFswXSxkKTwwKWZvcih2YXIgST0wO0k8MztJKyspcltJXSo9LTEscFtJXVswXSo9LTEscFtJXVsxXSo9LTEscFtJXVsyXSo9LTE7cmV0dXJuIHZbMF09LjUqTWF0aC5zcXJ0KE1hdGgubWF4KDErcFswXVswXS1wWzFdWzFdLXBbMl1bMl0sMCkpLHZbMV09LjUqTWF0aC5zcXJ0KE1hdGgubWF4KDEtcFswXVswXStwWzFdWzFdLXBbMl1bMl0sMCkpLHZbMl09LjUqTWF0aC5zcXJ0KE1hdGgubWF4KDEtcFswXVswXS1wWzFdWzFdK3BbMl1bMl0sMCkpLHZbM109LjUqTWF0aC5zcXJ0KE1hdGgubWF4KDErcFswXVswXStwWzFdWzFdK3BbMl1bMl0sMCkpLHBbMl1bMV0+cFsxXVsyXSYmKHZbMF09LXZbMF0pLHBbMF1bMl0+cFsyXVswXSYmKHZbMV09LXZbMV0pLHBbMV1bMF0+cFswXVsxXSYmKHZbMl09LXZbMl0pLCEwfX0seyIuL25vcm1hbGl6ZSI6MjQyLCJnbC1tYXQ0L2Nsb25lIjo5MiwiZ2wtbWF0NC9jcmVhdGUiOjkzLCJnbC1tYXQ0L2RldGVybWluYW50Ijo5NCwiZ2wtbWF0NC9pbnZlcnQiOjk4LCJnbC1tYXQ0L3RyYW5zcG9zZSI6MTA5LCJnbC12ZWMzL2Nyb3NzIjoxNTcsImdsLXZlYzMvZG90IjoxNjIsImdsLXZlYzMvbGVuZ3RoIjoxNzIsImdsLXZlYzMvbm9ybWFsaXplIjoxNzl9XSwyNDI6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1lWzE1XTtpZigwPT09cilyZXR1cm4hMTtmb3IodmFyIG49MS9yLGk9MDtpPDE2O2krKyl0W2ldPWVbaV0qbjtyZXR1cm4hMH19LHt9XSwyNDM6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCJnbC12ZWMzL2xlcnAiKSxpPXQoIm1hdDQtcmVjb21wb3NlIiksYT10KCJtYXQ0LWRlY29tcG9zZSIpLG89dCgiZ2wtbWF0NC9kZXRlcm1pbmFudCIpLHM9dCgicXVhdC1zbGVycCIpLGw9ZigpLGM9ZigpLHU9ZigpO2Z1bmN0aW9uIGYoKXtyZXR1cm57dHJhbnNsYXRlOmgoKSxzY2FsZTpoKDEpLHNrZXc6aCgpLHBlcnNwZWN0aXZlOlswLDAsMCwxXSxxdWF0ZXJuaW9uOlswLDAsMCwxXX19ZnVuY3Rpb24gaCh0KXtyZXR1cm5bdHx8MCx0fHwwLHR8fDBdfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscixmKXtpZigwPT09byhlKXx8MD09PW8ocikpcmV0dXJuITE7dmFyIGg9YShlLGwudHJhbnNsYXRlLGwuc2NhbGUsbC5za2V3LGwucGVyc3BlY3RpdmUsbC5xdWF0ZXJuaW9uKSxwPWEocixjLnRyYW5zbGF0ZSxjLnNjYWxlLGMuc2tldyxjLnBlcnNwZWN0aXZlLGMucXVhdGVybmlvbik7cmV0dXJuISghaHx8IXApJiYobih1LnRyYW5zbGF0ZSxsLnRyYW5zbGF0ZSxjLnRyYW5zbGF0ZSxmKSxuKHUuc2tldyxsLnNrZXcsYy5za2V3LGYpLG4odS5zY2FsZSxsLnNjYWxlLGMuc2NhbGUsZiksbih1LnBlcnNwZWN0aXZlLGwucGVyc3BlY3RpdmUsYy5wZXJzcGVjdGl2ZSxmKSxzKHUucXVhdGVybmlvbixsLnF1YXRlcm5pb24sYy5xdWF0ZXJuaW9uLGYpLGkodCx1LnRyYW5zbGF0ZSx1LnNjYWxlLHUuc2tldyx1LnBlcnNwZWN0aXZlLHUucXVhdGVybmlvbiksITApfX0seyJnbC1tYXQ0L2RldGVybWluYW50Ijo5NCwiZ2wtdmVjMy9sZXJwIjoxNzMsIm1hdDQtZGVjb21wb3NlIjoyNDEsIm1hdDQtcmVjb21wb3NlIjoyNDQsInF1YXQtc2xlcnAiOjI3MX1dLDI0NDpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXtpZGVudGl0eTp0KCJnbC1tYXQ0L2lkZW50aXR5IiksdHJhbnNsYXRlOnQoImdsLW1hdDQvdHJhbnNsYXRlIiksbXVsdGlwbHk6dCgiZ2wtbWF0NC9tdWx0aXBseSIpLGNyZWF0ZTp0KCJnbC1tYXQ0L2NyZWF0ZSIpLHNjYWxlOnQoImdsLW1hdDQvc2NhbGUiKSxmcm9tUm90YXRpb25UcmFuc2xhdGlvbjp0KCJnbC1tYXQ0L2Zyb21Sb3RhdGlvblRyYW5zbGF0aW9uIil9LGk9KG4uY3JlYXRlKCksbi5jcmVhdGUoKSk7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGEsbyxzKXtyZXR1cm4gbi5pZGVudGl0eSh0KSxuLmZyb21Sb3RhdGlvblRyYW5zbGF0aW9uKHQscyxlKSx0WzNdPW9bMF0sdFs3XT1vWzFdLHRbMTFdPW9bMl0sdFsxNV09b1szXSxuLmlkZW50aXR5KGkpLDAhPT1hWzJdJiYoaVs5XT1hWzJdLG4ubXVsdGlwbHkodCx0LGkpKSwwIT09YVsxXSYmKGlbOV09MCxpWzhdPWFbMV0sbi5tdWx0aXBseSh0LHQsaSkpLDAhPT1hWzBdJiYoaVs4XT0wLGlbNF09YVswXSxuLm11bHRpcGx5KHQsdCxpKSksbi5zY2FsZSh0LHQsciksdH19LHsiZ2wtbWF0NC9jcmVhdGUiOjkzLCJnbC1tYXQ0L2Zyb21Sb3RhdGlvblRyYW5zbGF0aW9uIjo5NiwiZ2wtbWF0NC9pZGVudGl0eSI6OTcsImdsLW1hdDQvbXVsdGlwbHkiOjEwMCwiZ2wtbWF0NC9zY2FsZSI6MTA3LCJnbC1tYXQ0L3RyYW5zbGF0ZSI6MTA4fV0sMjQ1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImJpbmFyeS1zZWFyY2gtYm91bmRzIiksaT10KCJtYXQ0LWludGVycG9sYXRlIiksYT10KCJnbC1tYXQ0L2ludmVydCIpLG89dCgiZ2wtbWF0NC9yb3RhdGVYIikscz10KCJnbC1tYXQ0L3JvdGF0ZVkiKSxsPXQoImdsLW1hdDQvcm90YXRlWiIpLGM9dCgiZ2wtbWF0NC9sb29rQXQiKSx1PXQoImdsLW1hdDQvdHJhbnNsYXRlIiksZj0odCgiZ2wtbWF0NC9zY2FsZSIpLHQoImdsLXZlYzMvbm9ybWFsaXplIikpLGg9WzAsMCwwXTtmdW5jdGlvbiBwKHQpe3RoaXMuX2NvbXBvbmVudHM9dC5zbGljZSgpLHRoaXMuX3RpbWU9WzBdLHRoaXMucHJldk1hdHJpeD10LnNsaWNlKCksdGhpcy5uZXh0TWF0cml4PXQuc2xpY2UoKSx0aGlzLmNvbXB1dGVkTWF0cml4PXQuc2xpY2UoKSx0aGlzLmNvbXB1dGVkSW52ZXJzZT10LnNsaWNlKCksdGhpcy5jb21wdXRlZEV5ZT1bMCwwLDBdLHRoaXMuY29tcHV0ZWRVcD1bMCwwLDBdLHRoaXMuY29tcHV0ZWRDZW50ZXI9WzAsMCwwXSx0aGlzLmNvbXB1dGVkUmFkaXVzPVswXSx0aGlzLl9saW1pdHM9Wy0xLzAsMS8wXX1lLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBwKCh0PXR8fHt9KS5tYXRyaXh8fFsxLDAsMCwwLDAsMSwwLDAsMCwwLDEsMCwwLDAsMCwxXSl9O3ZhciBkPXAucHJvdG90eXBlO2QucmVjYWxjTWF0cml4PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3RpbWUscj1uLmxlKGUsdCksbz10aGlzLmNvbXB1dGVkTWF0cml4O2lmKCEocjwwKSl7dmFyIHM9dGhpcy5fY29tcG9uZW50cztpZihyPT09ZS5sZW5ndGgtMSlmb3IodmFyIGw9MTYqcixjPTA7YzwxNjsrK2Mpb1tjXT1zW2wrK107ZWxzZXt2YXIgdT1lW3IrMV0tZVtyXSxoPShsPTE2KnIsdGhpcy5wcmV2TWF0cml4KSxwPSEwO2ZvcihjPTA7YzwxNjsrK2MpaFtjXT1zW2wrK107dmFyIGQ9dGhpcy5uZXh0TWF0cml4O2ZvcihjPTA7YzwxNjsrK2MpZFtjXT1zW2wrK10scD1wJiZoW2NdPT09ZFtjXTtpZih1PDFlLTZ8fHApZm9yKGM9MDtjPDE2OysrYylvW2NdPWhbY107ZWxzZSBpKG8saCxkLCh0LWVbcl0pL3UpfXZhciBtPXRoaXMuY29tcHV0ZWRVcDttWzBdPW9bMV0sbVsxXT1vWzVdLG1bMl09b1s5XSxmKG0sbSk7dmFyIGc9dGhpcy5jb21wdXRlZEludmVyc2U7YShnLG8pO3ZhciB2PXRoaXMuY29tcHV0ZWRFeWUseT1nWzE1XTt2WzBdPWdbMTJdL3ksdlsxXT1nWzEzXS95LHZbMl09Z1sxNF0veTt2YXIgeD10aGlzLmNvbXB1dGVkQ2VudGVyLGI9TWF0aC5leHAodGhpcy5jb21wdXRlZFJhZGl1c1swXSk7Zm9yKGM9MDtjPDM7KytjKXhbY109dltjXS1vWzIrNCpjXSpifX0sZC5pZGxlPWZ1bmN0aW9uKHQpe2lmKCEodDx0aGlzLmxhc3RUKCkpKXtmb3IodmFyIGU9dGhpcy5fY29tcG9uZW50cyxyPWUubGVuZ3RoLTE2LG49MDtuPDE2OysrbillLnB1c2goZVtyKytdKTt0aGlzLl90aW1lLnB1c2godCl9fSxkLmZsdXNoPWZ1bmN0aW9uKHQpe3ZhciBlPW4uZ3QodGhpcy5fdGltZSx0KS0yO2U8MHx8KHRoaXMuX3RpbWUuc3BsaWNlKDAsZSksdGhpcy5fY29tcG9uZW50cy5zcGxpY2UoMCwxNiplKSl9LGQubGFzdFQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdGltZVt0aGlzLl90aW1lLmxlbmd0aC0xXX0sZC5sb29rQXQ9ZnVuY3Rpb24odCxlLHIsbil7dGhpcy5yZWNhbGNNYXRyaXgodCksZT1lfHx0aGlzLmNvbXB1dGVkRXllLHI9cnx8aCxuPW58fHRoaXMuY29tcHV0ZWRVcCx0aGlzLnNldE1hdHJpeCh0LGModGhpcy5jb21wdXRlZE1hdHJpeCxlLHIsbikpO2Zvcih2YXIgaT0wLGE9MDthPDM7KythKWkrPU1hdGgucG93KHJbYV0tZVthXSwyKTtpPU1hdGgubG9nKE1hdGguc3FydChpKSksdGhpcy5jb21wdXRlZFJhZGl1c1swXT1pfSxkLnJvdGF0ZT1mdW5jdGlvbih0LGUscixuKXt0aGlzLnJlY2FsY01hdHJpeCh0KTt2YXIgaT10aGlzLmNvbXB1dGVkSW52ZXJzZTtlJiZzKGksaSxlKSxyJiZvKGksaSxyKSxuJiZsKGksaSxuKSx0aGlzLnNldE1hdHJpeCh0LGEodGhpcy5jb21wdXRlZE1hdHJpeCxpKSl9O3ZhciBtPVswLDAsMF07ZC5wYW49ZnVuY3Rpb24odCxlLHIsbil7bVswXT0tKGV8fDApLG1bMV09LShyfHwwKSxtWzJdPS0obnx8MCksdGhpcy5yZWNhbGNNYXRyaXgodCk7dmFyIGk9dGhpcy5jb21wdXRlZEludmVyc2U7dShpLGksbSksdGhpcy5zZXRNYXRyaXgodCxhKGksaSkpfSxkLnRyYW5zbGF0ZT1mdW5jdGlvbih0LGUscixuKXttWzBdPWV8fDAsbVsxXT1yfHwwLG1bMl09bnx8MCx0aGlzLnJlY2FsY01hdHJpeCh0KTt2YXIgaT10aGlzLmNvbXB1dGVkTWF0cml4O3UoaSxpLG0pLHRoaXMuc2V0TWF0cml4KHQsaSl9LGQuc2V0TWF0cml4PWZ1bmN0aW9uKHQsZSl7aWYoISh0PHRoaXMubGFzdFQoKSkpe3RoaXMuX3RpbWUucHVzaCh0KTtmb3IodmFyIHI9MDtyPDE2Oysrcil0aGlzLl9jb21wb25lbnRzLnB1c2goZVtyXSl9fSxkLnNldERpc3RhbmNlPWZ1bmN0aW9uKHQsZSl7dGhpcy5jb21wdXRlZFJhZGl1c1swXT1lfSxkLnNldERpc3RhbmNlTGltaXRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fbGltaXRzO3JbMF09dCxyWzFdPWV9LGQuZ2V0RGlzdGFuY2VMaW1pdHM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fbGltaXRzO3JldHVybiB0Pyh0WzBdPWVbMF0sdFsxXT1lWzFdLHQpOmV9fSx7ImJpbmFyeS1zZWFyY2gtYm91bmRzIjozMSwiZ2wtbWF0NC9pbnZlcnQiOjk4LCJnbC1tYXQ0L2xvb2tBdCI6OTksImdsLW1hdDQvcm90YXRlWCI6MTA0LCJnbC1tYXQ0L3JvdGF0ZVkiOjEwNSwiZ2wtbWF0NC9yb3RhdGVaIjoxMDYsImdsLW1hdDQvc2NhbGUiOjEwNywiZ2wtbWF0NC90cmFuc2xhdGUiOjEwOCwiZ2wtdmVjMy9ub3JtYWxpemUiOjE3OSwibWF0NC1pbnRlcnBvbGF0ZSI6MjQzfV0sMjQ2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10Lmxlbmd0aDtpZihlPDMpe2Zvcih2YXIgcj1uZXcgQXJyYXkoZSksaT0wO2k8ZTsrK2kpcltpXT1pO3JldHVybiAyPT09ZSYmdFswXVswXT09PXRbMV1bMF0mJnRbMF1bMV09PT10WzFdWzFdP1swXTpyfXZhciBhPW5ldyBBcnJheShlKTtmb3IoaT0wO2k8ZTsrK2kpYVtpXT1pO2Euc29ydCgoZnVuY3Rpb24oZSxyKXt2YXIgbj10W2VdWzBdLXRbcl1bMF07cmV0dXJuIG58fHRbZV1bMV0tdFtyXVsxXX0pKTt2YXIgbz1bYVswXSxhWzFdXSxzPVthWzBdLGFbMV1dO2ZvcihpPTI7aTxlOysraSl7Zm9yKHZhciBsPWFbaV0sYz10W2xdLHU9by5sZW5ndGg7dT4xJiZuKHRbb1t1LTJdXSx0W29bdS0xXV0sYyk8PTA7KXUtPTEsby5wb3AoKTtmb3Ioby5wdXNoKGwpLHU9cy5sZW5ndGg7dT4xJiZuKHRbc1t1LTJdXSx0W3NbdS0xXV0sYyk+PTA7KXUtPTEscy5wb3AoKTtzLnB1c2gobCl9cj1uZXcgQXJyYXkocy5sZW5ndGgrby5sZW5ndGgtMik7Zm9yKHZhciBmPTAsaD0oaT0wLG8ubGVuZ3RoKTtpPGg7KytpKXJbZisrXT1vW2ldO2Zvcih2YXIgcD1zLmxlbmd0aC0yO3A+MDstLXApcltmKytdPXNbcF07cmV0dXJuIHJ9O3ZhciBuPXQoInJvYnVzdC1vcmllbnRhdGlvbiIpWzNdfSx7InJvYnVzdC1vcmllbnRhdGlvbiI6Mjg0fV0sMjQ3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2V8fChlPXQsdD13aW5kb3cpO3ZhciByPTAsaT0wLGE9MCxvPXtzaGlmdDohMSxhbHQ6ITEsY29udHJvbDohMSxtZXRhOiExfSxzPSExO2Z1bmN0aW9uIGwodCl7dmFyIGU9ITE7cmV0dXJuImFsdEtleSJpbiB0JiYoZT1lfHx0LmFsdEtleSE9PW8uYWx0LG8uYWx0PSEhdC5hbHRLZXkpLCJzaGlmdEtleSJpbiB0JiYoZT1lfHx0LnNoaWZ0S2V5IT09by5zaGlmdCxvLnNoaWZ0PSEhdC5zaGlmdEtleSksImN0cmxLZXkiaW4gdCYmKGU9ZXx8dC5jdHJsS2V5IT09by5jb250cm9sLG8uY29udHJvbD0hIXQuY3RybEtleSksIm1ldGFLZXkiaW4gdCYmKGU9ZXx8dC5tZXRhS2V5IT09by5tZXRhLG8ubWV0YT0hIXQubWV0YUtleSksZX1mdW5jdGlvbiBjKHQscyl7dmFyIGM9bi54KHMpLHU9bi55KHMpOyJidXR0b25zImluIHMmJih0PTB8cy5idXR0b25zKSwodCE9PXJ8fGMhPT1pfHx1IT09YXx8bChzKSkmJihyPTB8dCxpPWN8fDAsYT11fHwwLGUmJmUocixpLGEsbykpfWZ1bmN0aW9uIHUodCl7YygwLHQpfWZ1bmN0aW9uIGYoKXsocnx8aXx8YXx8by5zaGlmdHx8by5hbHR8fG8ubWV0YXx8by5jb250cm9sKSYmKGk9YT0wLHI9MCxvLnNoaWZ0PW8uYWx0PW8uY29udHJvbD1vLm1ldGE9ITEsZSYmZSgwLDAsMCxvKSl9ZnVuY3Rpb24gaCh0KXtsKHQpJiZlJiZlKHIsaSxhLG8pfWZ1bmN0aW9uIHAodCl7MD09PW4uYnV0dG9ucyh0KT9jKDAsdCk6YyhyLHQpfWZ1bmN0aW9uIGQodCl7YyhyfG4uYnV0dG9ucyh0KSx0KX1mdW5jdGlvbiBtKHQpe2MociZ+bi5idXR0b25zKHQpLHQpfWZ1bmN0aW9uIGcoKXtzfHwocz0hMCx0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIscCksdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLGQpLHQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsbSksdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIix1KSx0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLHUpLHQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdXQiLHUpLHQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdmVyIix1KSx0LmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLGYpLHQuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLGgpLHQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsaCksdC5hZGRFdmVudExpc3RlbmVyKCJrZXlwcmVzcyIsaCksdCE9PXdpbmRvdyYmKHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJibHVyIixmKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLGgpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixoKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigia2V5cHJlc3MiLGgpKSl9ZygpO3ZhciB2PXtlbGVtZW50OnR9O3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh2LHtlbmFibGVkOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gc30sc2V0OmZ1bmN0aW9uKGUpe2U/ZygpOmZ1bmN0aW9uKCl7aWYoIXMpcmV0dXJuO3M9ITEsdC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHApLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixkKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLG0pLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsdSksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIix1KSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0Iix1KSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlb3ZlciIsdSksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJibHVyIixmKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleXVwIixoKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLGgpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5cHJlc3MiLGgpLHQhPT13aW5kb3cmJih3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYmx1ciIsZiksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleXVwIixoKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsaCksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleXByZXNzIixoKSl9KCl9LGVudW1lcmFibGU6ITB9LGJ1dHRvbnM6e2dldDpmdW5jdGlvbigpe3JldHVybiByfSxlbnVtZXJhYmxlOiEwfSx4OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaX0sZW51bWVyYWJsZTohMH0seTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGF9LGVudW1lcmFibGU6ITB9LG1vZHM6e2dldDpmdW5jdGlvbigpe3JldHVybiBvfSxlbnVtZXJhYmxlOiEwfX0pLHZ9O3ZhciBuPXQoIm1vdXNlLWV2ZW50Iil9LHsibW91c2UtZXZlbnQiOjI0OX1dLDI0ODpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXtsZWZ0OjAsdG9wOjB9O2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7ZT1lfHx0LmN1cnJlbnRUYXJnZXR8fHQuc3JjRWxlbWVudCxBcnJheS5pc0FycmF5KHIpfHwocj1bMCwwXSk7dmFyIGk9dC5jbGllbnRYfHwwLGE9dC5jbGllbnRZfHwwLG89KHM9ZSxzPT09d2luZG93fHxzPT09ZG9jdW1lbnR8fHM9PT1kb2N1bWVudC5ib2R5P246cy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSk7dmFyIHM7cmV0dXJuIHJbMF09aS1vLmxlZnQsclsxXT1hLW8udG9wLHJ9fSx7fV0sMjQ5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7cmV0dXJuIHQudGFyZ2V0fHx0LnNyY0VsZW1lbnR8fHdpbmRvd31yLmJ1dHRvbnM9ZnVuY3Rpb24odCl7aWYoIm9iamVjdCI9PXR5cGVvZiB0KXtpZigiYnV0dG9ucyJpbiB0KXJldHVybiB0LmJ1dHRvbnM7aWYoIndoaWNoImluIHQpe2lmKDI9PT0oZT10LndoaWNoKSlyZXR1cm4gNDtpZigzPT09ZSlyZXR1cm4gMjtpZihlPjApcmV0dXJuIDE8PGUtMX1lbHNlIGlmKCJidXR0b24iaW4gdCl7dmFyIGU7aWYoMT09PShlPXQuYnV0dG9uKSlyZXR1cm4gNDtpZigyPT09ZSlyZXR1cm4gMjtpZihlPj0wKXJldHVybiAxPDxlfX1yZXR1cm4gMH0sci5lbGVtZW50PW4sci54PWZ1bmN0aW9uKHQpe2lmKCJvYmplY3QiPT10eXBlb2YgdCl7aWYoIm9mZnNldFgiaW4gdClyZXR1cm4gdC5vZmZzZXRYO3ZhciBlPW4odCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuIHQuY2xpZW50WC1lLmxlZnR9cmV0dXJuIDB9LHIueT1mdW5jdGlvbih0KXtpZigib2JqZWN0Ij09dHlwZW9mIHQpe2lmKCJvZmZzZXRZImluIHQpcmV0dXJuIHQub2Zmc2V0WTt2YXIgZT1uKHQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiB0LmNsaWVudFktZS50b3B9cmV0dXJuIDB9fSx7fV0sMjUwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInRvLXB4Iik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXsiZnVuY3Rpb24iPT10eXBlb2YgdCYmKHI9ISFlLGU9dCx0PXdpbmRvdyk7dmFyIGk9bigiZXgiLHQpLGE9ZnVuY3Rpb24odCl7ciYmdC5wcmV2ZW50RGVmYXVsdCgpO3ZhciBuPXQuZGVsdGFYfHwwLGE9dC5kZWx0YVl8fDAsbz10LmRlbHRhWnx8MCxzPTE7c3dpdGNoKHQuZGVsdGFNb2RlKXtjYXNlIDE6cz1pO2JyZWFrO2Nhc2UgMjpzPXdpbmRvdy5pbm5lckhlaWdodH1pZihhKj1zLG8qPXMsKG4qPXMpfHxhfHxvKXJldHVybiBlKG4sYSxvLHQpfTtyZXR1cm4gdC5hZGRFdmVudExpc3RlbmVyKCJ3aGVlbCIsYSksYX19LHsidG8tcHgiOjMwNH1dLDI1MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJ0eXBlZGFycmF5LXBvb2wiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0KXt0aHJvdyBuZXcgRXJyb3IoIm5kYXJyYXktZXh0cmFjdC1jb250b3VyOiAiK3QpfSJvYmplY3QiIT10eXBlb2YgdCYmZSgiTXVzdCBzcGVjaWZ5IGFyZ3VtZW50cyIpO3ZhciByPXQub3JkZXI7QXJyYXkuaXNBcnJheShyKXx8ZSgiTXVzdCBzcGVjaWZ5IG9yZGVyIik7dmFyIGE9dC5hcnJheUFyZ3VtZW50c3x8MTthPDEmJmUoIk11c3QgaGF2ZSBhdCBsZWFzdCBvbmUgYXJyYXkgYXJndW1lbnQiKTt2YXIgbz10LnNjYWxhckFyZ3VtZW50c3x8MDtvPDAmJmUoIlNjYWxhciBhcmcgY291bnQgbXVzdCBiZSA+IDAiKTsiZnVuY3Rpb24iIT10eXBlb2YgdC52ZXJ0ZXgmJmUoIk11c3Qgc3BlY2lmeSB2ZXJ0ZXggY3JlYXRpb24gZnVuY3Rpb24iKTsiZnVuY3Rpb24iIT10eXBlb2YgdC5jZWxsJiZlKCJNdXN0IHNwZWNpZnkgY2VsbCBjcmVhdGlvbiBmdW5jdGlvbiIpOyJmdW5jdGlvbiIhPXR5cGVvZiB0LnBoYXNlJiZlKCJNdXN0IHNwZWNpZnkgcGhhc2UgZnVuY3Rpb24iKTtmb3IodmFyIHM9dC5nZXR0ZXJzfHxbXSxsPW5ldyBBcnJheShhKSxjPTA7YzxhOysrYylzLmluZGV4T2YoYyk+PTA/bFtjXT0hMDpsW2NdPSExO3JldHVybiBmdW5jdGlvbih0LGUscixhLG8scyl7dmFyIGw9W3Msb10uam9pbigiLCIpO3JldHVybigwLGlbbF0pKHQsZSxyLG4ubWFsbG9jVWludDMyLG4uZnJlZVVpbnQzMil9KHQudmVydGV4LHQuY2VsbCx0LnBoYXNlLDAscixsKX07dmFyIGk9eyJmYWxzZSwwLDEiOmZ1bmN0aW9uKHQsZSxyLG4saSl7cmV0dXJuIGZ1bmN0aW9uKGEsbyxzLGwpe3ZhciBjLHU9MHxhLnNoYXBlWzBdLGY9MHxhLnNoYXBlWzFdLGg9YS5kYXRhLHA9MHxhLm9mZnNldCxkPTB8YS5zdHJpZGVbMF0sbT0wfGEuc3RyaWRlWzFdLGc9cCx2PTB8LWQseT0wLHg9MHwtbSxiPTAsXz0tZC1tfDAsdz0wLFQ9MHxkLGs9bS1kKnV8MCxBPTAsTT0wLFM9MCxFPTIqdXwwLEw9bihFKSxDPW4oRSksUD0wLEk9MCxPPS0xLHo9LTEsRD0wLFI9MHwtdSxGPTB8dSxCPTAsTj0tdS0xfDAsaj11LTF8MCxVPTAsVj0wLEg9MDtmb3IoQT0wO0E8dTsrK0EpTFtQKytdPXIoaFtnXSxvLHMsbCksZys9VDtpZihnKz1rLGY+MCl7aWYoTT0xLExbUCsrXT1yKGhbZ10sbyxzLGwpLGcrPVQsdT4wKWZvcihBPTEsYz1oW2ddLEk9TFtQXT1yKGMsbyxzLGwpLEQ9TFtQK09dLEI9TFtQK1JdLFU9TFtQK05dLEk9PT1EJiZJPT09QiYmST09PVV8fCh5PWhbZyt2XSxiPWhbZyt4XSx3PWhbZytfXSx0KEEsTSxjLHksYix3LEksRCxCLFUsbyxzLGwpLFY9Q1tQXT1TKyspLFArPTEsZys9VCxBPTI7QTx1OysrQSljPWhbZ10sST1MW1BdPXIoYyxvLHMsbCksRD1MW1ArT10sQj1MW1ArUl0sVT1MW1ArTl0sST09PUQmJkk9PT1CJiZJPT09VXx8KHk9aFtnK3ZdLGI9aFtnK3hdLHc9aFtnK19dLHQoQSxNLGMseSxiLHcsSSxELEIsVSxvLHMsbCksVj1DW1BdPVMrKyxVIT09RCYmZShDW1ArT10sVix3LHksVSxELG8scyxsKSksUCs9MSxnKz1UO2ZvcihnKz1rLFA9MCxIPU8sTz16LHo9SCxIPVIsUj1GLEY9SCxIPU4sTj1qLGo9SCxNPTI7TTxmOysrTSl7aWYoTFtQKytdPXIoaFtnXSxvLHMsbCksZys9VCx1PjApZm9yKEE9MSxjPWhbZ10sST1MW1BdPXIoYyxvLHMsbCksRD1MW1ArT10sQj1MW1ArUl0sVT1MW1ArTl0sST09PUQmJkk9PT1CJiZJPT09VXx8KHk9aFtnK3ZdLGI9aFtnK3hdLHc9aFtnK19dLHQoQSxNLGMseSxiLHcsSSxELEIsVSxvLHMsbCksVj1DW1BdPVMrKyxVIT09QiYmZShDW1ArUl0sVixiLHcsQixVLG8scyxsKSksUCs9MSxnKz1ULEE9MjtBPHU7KytBKWM9aFtnXSxJPUxbUF09cihjLG8scyxsKSxEPUxbUCtPXSxCPUxbUCtSXSxVPUxbUCtOXSxJPT09RCYmST09PUImJkk9PT1VfHwoeT1oW2crdl0sYj1oW2creF0sdz1oW2crX10sdChBLE0sYyx5LGIsdyxJLEQsQixVLG8scyxsKSxWPUNbUF09UysrLFUhPT1CJiZlKENbUCtSXSxWLGIsdyxCLFUsbyxzLGwpLFUhPT1EJiZlKENbUCtPXSxWLHcseSxVLEQsbyxzLGwpKSxQKz0xLGcrPVQ7MSZNJiYoUD0wKSxIPU8sTz16LHo9SCxIPVIsUj1GLEY9SCxIPU4sTj1qLGo9SCxnKz1rfX1pKEMpLGkoTCl9fSwiZmFsc2UsMSwwIjpmdW5jdGlvbih0LGUscixuLGkpe3JldHVybiBmdW5jdGlvbihhLG8scyxsKXt2YXIgYyx1PTB8YS5zaGFwZVswXSxmPTB8YS5zaGFwZVsxXSxoPWEuZGF0YSxwPTB8YS5vZmZzZXQsZD0wfGEuc3RyaWRlWzBdLG09MHxhLnN0cmlkZVsxXSxnPXAsdj0wfC1kLHk9MCx4PTB8LW0sYj0wLF89LWQtbXwwLHc9MCxUPTB8bSxrPWQtbSpmfDAsQT0wLE09MCxTPTAsRT0yKmZ8MCxMPW4oRSksQz1uKEUpLFA9MCxJPTAsTz0tMSx6PS0xLEQ9MCxSPTB8LWYsRj0wfGYsQj0wLE49LWYtMXwwLGo9Zi0xfDAsVT0wLFY9MCxIPTA7Zm9yKE09MDtNPGY7KytNKUxbUCsrXT1yKGhbZ10sbyxzLGwpLGcrPVQ7aWYoZys9ayx1PjApe2lmKEE9MSxMW1ArK109cihoW2ddLG8scyxsKSxnKz1ULGY+MClmb3IoTT0xLGM9aFtnXSxJPUxbUF09cihjLG8scyxsKSxCPUxbUCtSXSxEPUxbUCtPXSxVPUxbUCtOXSxJPT09QiYmST09PUQmJkk9PT1VfHwoeT1oW2crdl0sYj1oW2creF0sdz1oW2crX10sdChBLE0sYyx5LGIsdyxJLEIsRCxVLG8scyxsKSxWPUNbUF09UysrKSxQKz0xLGcrPVQsTT0yO008ZjsrK00pYz1oW2ddLEk9TFtQXT1yKGMsbyxzLGwpLEI9TFtQK1JdLEQ9TFtQK09dLFU9TFtQK05dLEk9PT1CJiZJPT09RCYmST09PVV8fCh5PWhbZyt2XSxiPWhbZyt4XSx3PWhbZytfXSx0KEEsTSxjLHksYix3LEksQixELFUsbyxzLGwpLFY9Q1tQXT1TKyssVSE9PUQmJmUoQ1tQK09dLFYsYix3LEQsVSxvLHMsbCkpLFArPTEsZys9VDtmb3IoZys9ayxQPTAsSD1SLFI9RixGPUgsSD1PLE89eix6PUgsSD1OLE49aixqPUgsQT0yO0E8dTsrK0Epe2lmKExbUCsrXT1yKGhbZ10sbyxzLGwpLGcrPVQsZj4wKWZvcihNPTEsYz1oW2ddLEk9TFtQXT1yKGMsbyxzLGwpLEI9TFtQK1JdLEQ9TFtQK09dLFU9TFtQK05dLEk9PT1CJiZJPT09RCYmST09PVV8fCh5PWhbZyt2XSxiPWhbZyt4XSx3PWhbZytfXSx0KEEsTSxjLHksYix3LEksQixELFUsbyxzLGwpLFY9Q1tQXT1TKyssVSE9PUImJmUoQ1tQK1JdLFYsdyx5LFUsQixvLHMsbCkpLFArPTEsZys9VCxNPTI7TTxmOysrTSljPWhbZ10sST1MW1BdPXIoYyxvLHMsbCksQj1MW1ArUl0sRD1MW1ArT10sVT1MW1ArTl0sST09PUImJkk9PT1EJiZJPT09VXx8KHk9aFtnK3ZdLGI9aFtnK3hdLHc9aFtnK19dLHQoQSxNLGMseSxiLHcsSSxCLEQsVSxvLHMsbCksVj1DW1BdPVMrKyxVIT09RCYmZShDW1ArT10sVixiLHcsRCxVLG8scyxsKSxVIT09QiYmZShDW1ArUl0sVix3LHksVSxCLG8scyxsKSksUCs9MSxnKz1UOzEmQSYmKFA9MCksSD1SLFI9RixGPUgsSD1PLE89eix6PUgsSD1OLE49aixqPUgsZys9a319aShDKSxpKEwpfX19fSx7InR5cGVkYXJyYXktcG9vbCI6MzA4fV0sMjUyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImR1cCIpLGk9e3plcm86ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9dFswXTtufD0wO3ZhciBhPTAsbz1yWzBdO2ZvcihhPTA7YTxpOysrYSllW25dPTAsbis9b30sZmRUZW1wbGF0ZTE6ZnVuY3Rpb24odCxlLHIsbixpLGEsbyl7dmFyIHM9dFswXSxsPXJbMF0sYz0tMSpsLHU9bDtufD0wLG98PTA7dmFyIGY9MCxoPWwscD1hWzBdO2ZvcihmPTA7ZjxzOysrZilpW29dPS41KihlW24rY10tZVtuK3VdKSxuKz1oLG8rPXB9LGZkVGVtcGxhdGUyOmZ1bmN0aW9uKHQsZSxyLG4saSxhLG8scyxsLGMpe3ZhciB1PXRbMF0sZj10WzFdLGg9clswXSxwPXJbMV0sZD1hWzBdLG09YVsxXSxnPWxbMF0sdj1sWzFdLHk9LTEqaCx4PWgsYj0tMSpwLF89cDtufD0wLG98PTAsY3w9MDt2YXIgdz0wLFQ9MCxrPXAsQT1oLWYqcCxNPW0sUz1kLWYqbSxFPXYsTD1nLWYqdjtmb3IoVD0wO1Q8dTsrK1Qpe2Zvcih3PTA7dzxmOysrdylpW29dPS41KihlW24reV0tZVtuK3hdKSxzW2NdPS41KihlW24rYl0tZVtuK19dKSxuKz1rLG8rPU0sYys9RTtuKz1BLG8rPVMsYys9TH19fSxhPXtjZGlmZjpmdW5jdGlvbih0KXt2YXIgZT17fTtyZXR1cm4gZnVuY3Rpb24ocixuLGkpe3ZhciBhPXIuZHR5cGUsbz1yLm9yZGVyLHM9bi5kdHlwZSxsPW4ub3JkZXIsYz1pLmR0eXBlLHU9aS5vcmRlcixmPVthLG8uam9pbigpLHMsbC5qb2luKCksYyx1LmpvaW4oKV0uam9pbigpLGg9ZVtmXTtyZXR1cm4gaHx8KGVbZl09aD10KFthLG8scyxsLGMsdV0pKSxoKHIuc2hhcGUuc2xpY2UoMCksci5kYXRhLHIuc3RyaWRlLDB8ci5vZmZzZXQsbi5kYXRhLG4uc3RyaWRlLDB8bi5vZmZzZXQsaS5kYXRhLGkuc3RyaWRlLDB8aS5vZmZzZXQpfX0semVybzpmdW5jdGlvbih0KXt2YXIgZT17fTtyZXR1cm4gZnVuY3Rpb24ocil7dmFyIG49ci5kdHlwZSxpPXIub3JkZXIsYT1bbixpLmpvaW4oKV0uam9pbigpLG89ZVthXTtyZXR1cm4gb3x8KGVbYV09bz10KFtuLGldKSksbyhyLnNoYXBlLnNsaWNlKDApLHIuZGF0YSxyLnN0cmlkZSwwfHIub2Zmc2V0KX19LGZkVGVtcGxhdGUxOmZ1bmN0aW9uKHQpe3ZhciBlPXt9O3JldHVybiBmdW5jdGlvbihyLG4pe3ZhciBpPXIuZHR5cGUsYT1yLm9yZGVyLG89bi5kdHlwZSxzPW4ub3JkZXIsbD1baSxhLmpvaW4oKSxvLHMuam9pbigpXS5qb2luKCksYz1lW2xdO3JldHVybiBjfHwoZVtsXT1jPXQoW2ksYSxvLHNdKSksYyhyLnNoYXBlLnNsaWNlKDApLHIuZGF0YSxyLnN0cmlkZSwwfHIub2Zmc2V0LG4uZGF0YSxuLnN0cmlkZSwwfG4ub2Zmc2V0KX19LGZkVGVtcGxhdGUyOmZ1bmN0aW9uKHQpe3ZhciBlPXt9O3JldHVybiBmdW5jdGlvbihyLG4saSl7dmFyIGE9ci5kdHlwZSxvPXIub3JkZXIscz1uLmR0eXBlLGw9bi5vcmRlcixjPWkuZHR5cGUsdT1pLm9yZGVyLGY9W2Esby5qb2luKCkscyxsLmpvaW4oKSxjLHUuam9pbigpXS5qb2luKCksaD1lW2ZdO3JldHVybiBofHwoZVtmXT1oPXQoW2EsbyxzLGwsYyx1XSkpLGgoci5zaGFwZS5zbGljZSgwKSxyLmRhdGEsci5zdHJpZGUsMHxyLm9mZnNldCxuLmRhdGEsbi5zdHJpZGUsMHxuLm9mZnNldCxpLmRhdGEsaS5zdHJpZGUsMHxpLm9mZnNldCl9fX07ZnVuY3Rpb24gbyh0KXtyZXR1cm4oMCxhW3QuZnVuY05hbWVdKShzLmJpbmQodm9pZCAwLHQpKX1mdW5jdGlvbiBzKHQpe3JldHVybiBpW3QuZnVuY05hbWVdfWZ1bmN0aW9uIGwodCl7cmV0dXJuIG8oe2Z1bmNOYW1lOnQuZnVuY05hbWV9KX12YXIgYz17fSx1PXt9LGY9bCh7ZnVuY05hbWU6ImNkaWZmIn0pLGg9bCh7ZnVuY05hbWU6Inplcm8ifSk7ZnVuY3Rpb24gcCh0KXtyZXR1cm4gdCBpbiBjP2NbdF06Y1t0XT1sKHtmdW5jTmFtZToiZmRUZW1wbGF0ZSIrdH0pfWZ1bmN0aW9uIGQodCxlLHIsbil7cmV0dXJuIGZ1bmN0aW9uKHQsaSl7dmFyIGE9aS5zaGFwZS5zbGljZSgpO3JldHVybiBhWzBdPjImJmFbMV0+MiYmbihpLnBpY2soLTEsLTEpLmxvKDEsMSkuaGkoYVswXS0yLGFbMV0tMiksdC5waWNrKC0xLC0xLDApLmxvKDEsMSkuaGkoYVswXS0yLGFbMV0tMiksdC5waWNrKC0xLC0xLDEpLmxvKDEsMSkuaGkoYVswXS0yLGFbMV0tMikpLGFbMV0+MiYmKHIoaS5waWNrKDAsLTEpLmxvKDEpLmhpKGFbMV0tMiksdC5waWNrKDAsLTEsMSkubG8oMSkuaGkoYVsxXS0yKSksZSh0LnBpY2soMCwtMSwwKS5sbygxKS5oaShhWzFdLTIpKSksYVsxXT4yJiYocihpLnBpY2soYVswXS0xLC0xKS5sbygxKS5oaShhWzFdLTIpLHQucGljayhhWzBdLTEsLTEsMSkubG8oMSkuaGkoYVsxXS0yKSksZSh0LnBpY2soYVswXS0xLC0xLDApLmxvKDEpLmhpKGFbMV0tMikpKSxhWzBdPjImJihyKGkucGljaygtMSwwKS5sbygxKS5oaShhWzBdLTIpLHQucGljaygtMSwwLDApLmxvKDEpLmhpKGFbMF0tMikpLGUodC5waWNrKC0xLDAsMSkubG8oMSkuaGkoYVswXS0yKSkpLGFbMF0+MiYmKHIoaS5waWNrKC0xLGFbMV0tMSkubG8oMSkuaGkoYVswXS0yKSx0LnBpY2soLTEsYVsxXS0xLDApLmxvKDEpLmhpKGFbMF0tMikpLGUodC5waWNrKC0xLGFbMV0tMSwxKS5sbygxKS5oaShhWzBdLTIpKSksdC5zZXQoMCwwLDAsMCksdC5zZXQoMCwwLDEsMCksdC5zZXQoYVswXS0xLDAsMCwwKSx0LnNldChhWzBdLTEsMCwxLDApLHQuc2V0KDAsYVsxXS0xLDAsMCksdC5zZXQoMCxhWzFdLTEsMSwwKSx0LnNldChhWzBdLTEsYVsxXS0xLDAsMCksdC5zZXQoYVswXS0xLGFbMV0tMSwxLDApLHR9fWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7cmV0dXJuIEFycmF5LmlzQXJyYXkocil8fChyPW4oZS5kaW1lbnNpb24sInN0cmluZyI9PXR5cGVvZiByP3I6ImNsYW1wIikpLDA9PT1lLnNpemU/dDowPT09ZS5kaW1lbnNpb24/KHQuc2V0KDApLHQpOmZ1bmN0aW9uKHQpe3ZhciBlPXQuam9pbigpO2lmKGE9dVtlXSlyZXR1cm4gYTtmb3IodmFyIHI9dC5sZW5ndGgsbj1bZixoXSxpPTE7aTw9cjsrK2kpbi5wdXNoKHAoaSkpO3ZhciBhPWQuYXBwbHkodm9pZCAwLG4pO3JldHVybiB1W2VdPWEsYX0ocikodCxlKX19LHtkdXA6NjV9XSwyNTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3ZhciByPU1hdGguZmxvb3IoZSksbj1lLXIsaT0wPD1yJiZyPHQuc2hhcGVbMF0sYT0wPD1yKzEmJnIrMTx0LnNoYXBlWzBdO3JldHVybigxLW4pKihpPyt0LmdldChyKTowKStuKihhPyt0LmdldChyKzEpOjApfWZ1bmN0aW9uIGkodCxlLHIpe3ZhciBuPU1hdGguZmxvb3IoZSksaT1lLW4sYT0wPD1uJiZuPHQuc2hhcGVbMF0sbz0wPD1uKzEmJm4rMTx0LnNoYXBlWzBdLHM9TWF0aC5mbG9vcihyKSxsPXItcyxjPTA8PXMmJnM8dC5zaGFwZVsxXSx1PTA8PXMrMSYmcysxPHQuc2hhcGVbMV0sZj1hJiZjP3QuZ2V0KG4scyk6MCxoPWEmJnU/dC5nZXQobixzKzEpOjA7cmV0dXJuKDEtbCkqKCgxLWkpKmYraSoobyYmYz90LmdldChuKzEscyk6MCkpK2wqKCgxLWkpKmgraSoobyYmdT90LmdldChuKzEscysxKTowKSl9ZnVuY3Rpb24gYSh0LGUscixuKXt2YXIgaT1NYXRoLmZsb29yKGUpLGE9ZS1pLG89MDw9aSYmaTx0LnNoYXBlWzBdLHM9MDw9aSsxJiZpKzE8dC5zaGFwZVswXSxsPU1hdGguZmxvb3IociksYz1yLWwsdT0wPD1sJiZsPHQuc2hhcGVbMV0sZj0wPD1sKzEmJmwrMTx0LnNoYXBlWzFdLGg9TWF0aC5mbG9vcihuKSxwPW4taCxkPTA8PWgmJmg8dC5zaGFwZVsyXSxtPTA8PWgrMSYmaCsxPHQuc2hhcGVbMl0sZz1vJiZ1JiZkP3QuZ2V0KGksbCxoKTowLHY9byYmZiYmZD90LmdldChpLGwrMSxoKTowLHk9cyYmdSYmZD90LmdldChpKzEsbCxoKTowLHg9cyYmZiYmZD90LmdldChpKzEsbCsxLGgpOjAsYj1vJiZ1JiZtP3QuZ2V0KGksbCxoKzEpOjAsXz1vJiZmJiZtP3QuZ2V0KGksbCsxLGgrMSk6MDtyZXR1cm4oMS1wKSooKDEtYykqKCgxLWEpKmcrYSp5KStjKigoMS1hKSp2K2EqeCkpK3AqKCgxLWMpKigoMS1hKSpiK2EqKHMmJnUmJm0/dC5nZXQoaSsxLGwsaCsxKTowKSkrYyooKDEtYSkqXythKihzJiZmJiZtP3QuZ2V0KGkrMSxsKzEsaCsxKTowKSkpfWZ1bmN0aW9uIG8odCl7dmFyIGUscixuPTB8dC5zaGFwZS5sZW5ndGgsaT1uZXcgQXJyYXkobiksYT1uZXcgQXJyYXkobiksbz1uZXcgQXJyYXkobikscz1uZXcgQXJyYXkobik7Zm9yKGU9MDtlPG47KytlKXI9K2FyZ3VtZW50c1tlKzFdLGlbZV09TWF0aC5mbG9vcihyKSxhW2VdPXItaVtlXSxvW2VdPTA8PWlbZV0mJmlbZV08dC5zaGFwZVtlXSxzW2VdPTA8PWlbZV0rMSYmaVtlXSsxPHQuc2hhcGVbZV07dmFyIGwsYyx1LGY9MDt0OmZvcihlPTA7ZTwxPDxuOysrZSl7Zm9yKGM9MSx1PXQub2Zmc2V0LGw9MDtsPG47KytsKWlmKGUmMTw8bCl7aWYoIXNbbF0pY29udGludWUgdDtjKj1hW2xdLHUrPXQuc3RyaWRlW2xdKihpW2xdKzEpfWVsc2V7aWYoIW9bbF0pY29udGludWUgdDtjKj0xLWFbbF0sdSs9dC5zdHJpZGVbbF0qaVtsXX1mKz1jKnQuZGF0YVt1XX1yZXR1cm4gZn1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIscyl7c3dpdGNoKHQuc2hhcGUubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIDA7Y2FzZSAxOnJldHVybiBuKHQsZSk7Y2FzZSAyOnJldHVybiBpKHQsZSxyKTtjYXNlIDM6cmV0dXJuIGEodCxlLHIscyk7ZGVmYXVsdDpyZXR1cm4gby5hcHBseSh2b2lkIDAsYXJndW1lbnRzKX19LGUuZXhwb3J0cy5kMT1uLGUuZXhwb3J0cy5kMj1pLGUuZXhwb3J0cy5kMz1hfSx7fV0sMjU0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXsiZmxvYXQ2NCwyLDEsMCI6ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24odCxlLHIsbixpKXt2YXIgYT10WzBdLG89dFsxXSxzPXRbMl0sbD1yWzBdLGM9clsxXSx1PXJbMl07bnw9MDt2YXIgZj0wLGg9MCxwPTAsZD11LG09Yy1zKnUsZz1sLW8qYztmb3IocD0wO3A8YTsrK3Ape2ZvcihoPTA7aDxvOysraCl7Zm9yKGY9MDtmPHM7KytmKWVbbl0vPWksbis9ZDtuKz1tfW4rPWd9fX0sInVpbnQ4LDIsMCwxLGZsb2F0NjQsMiwxLDAiOmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKHQsZSxyLG4saSxhLG8scyl7Zm9yKHZhciBsPXRbMF0sYz10WzFdLHU9dFsyXSxmPXJbMF0saD1yWzFdLHA9clsyXSxkPWFbMF0sbT1hWzFdLGc9YVsyXSx2PW58PTAseT1vfD0wLHg9MHx0WzBdO3g+MDspe3g8NjQ/KGw9eCx4PTApOihsPTY0LHgtPTY0KTtmb3IodmFyIGI9MHx0WzFdO2I+MDspe2I8NjQ/KGM9YixiPTApOihjPTY0LGItPTY0KSxuPXYreCpmK2IqaCxvPXkreCpkK2IqbTt2YXIgXz0wLHc9MCxUPTAsaz1wLEE9Zi11KnAsTT1oLWwqZixTPWcsRT1kLXUqZyxMPW0tbCpkO2ZvcihUPTA7VDxjOysrVCl7Zm9yKHc9MDt3PGw7Kyt3KXtmb3IoXz0wO188dTsrK18pZVtuXT1pW29dKnMsbis9ayxvKz1TO24rPUEsbys9RX1uKz1NLG8rPUx9fX19fSwiZmxvYXQzMiwxLDAsZmxvYXQzMiwxLDAiOmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKHQsZSxyLG4saSxhLG8pe3ZhciBzPXRbMF0sbD10WzFdLGM9clswXSx1PXJbMV0sZj1hWzBdLGg9YVsxXTtufD0wLG98PTA7dmFyIHA9MCxkPTAsbT11LGc9Yy1sKnUsdj1oLHk9Zi1sKmg7Zm9yKGQ9MDtkPHM7KytkKXtmb3IocD0wO3A8bDsrK3ApZVtuXT1pW29dLG4rPW0sbys9djtuKz1nLG8rPXl9fX0sImZsb2F0MzIsMSwwLGZsb2F0MzIsMCwxIjpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0LGUscixuLGksYSxvKXtmb3IodmFyIHM9dFswXSxsPXRbMV0sYz1yWzBdLHU9clsxXSxmPWFbMF0saD1hWzFdLHA9bnw9MCxkPW98PTAsbT0wfHRbMV07bT4wOyl7bTw2ND8obD1tLG09MCk6KGw9NjQsbS09NjQpO2Zvcih2YXIgZz0wfHRbMF07Zz4wOyl7Zzw2ND8ocz1nLGc9MCk6KHM9NjQsZy09NjQpLG49cCttKnUrZypjLG89ZCttKmgrZypmO3ZhciB2PTAseT0wLHg9dSxiPWMtbCp1LF89aCx3PWYtbCpoO2Zvcih5PTA7eTxzOysreSl7Zm9yKHY9MDt2PGw7Kyt2KWVbbl09aVtvXSxuKz14LG8rPV87bis9YixvKz13fX19fX0sInVpbnQ4LDIsMCwxLHVpbnQ4LDEsMiwwIjpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0LGUscixuLGksYSxvKXtmb3IodmFyIHM9dFswXSxsPXRbMV0sYz10WzJdLHU9clswXSxmPXJbMV0saD1yWzJdLHA9YVswXSxkPWFbMV0sbT1hWzJdLGc9bnw9MCx2PW98PTAseT0wfHRbMl07eT4wOyl7eTw2ND8oYz15LHk9MCk6KGM9NjQseS09NjQpO2Zvcih2YXIgeD0wfHRbMF07eD4wOyl7eDw2ND8ocz14LHg9MCk6KHM9NjQseC09NjQpO2Zvcih2YXIgYj0wfHRbMV07Yj4wOyl7Yjw2ND8obD1iLGI9MCk6KGw9NjQsYi09NjQpLG49Zyt5KmgreCp1K2IqZixvPXYreSptK3gqcCtiKmQ7dmFyIF89MCx3PTAsVD0wLGs9aCxBPXUtYypoLE09Zi1zKnUsUz1tLEU9cC1jKm0sTD1kLXMqcDtmb3IoVD0wO1Q8bDsrK1Qpe2Zvcih3PTA7dzxzOysrdyl7Zm9yKF89MDtfPGM7KytfKWVbbl09aVtvXSxuKz1rLG8rPVM7bis9QSxvKz1FfW4rPU0sbys9TH19fX19fSwidWludDgsMiwwLDEsYXJyYXksMiwwLDEiOmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKHQsZSxyLG4saSxhLG8pe3ZhciBzPXRbMF0sbD10WzFdLGM9dFsyXSx1PXJbMF0sZj1yWzFdLGg9clsyXSxwPWFbMF0sZD1hWzFdLG09YVsyXTtufD0wLG98PTA7dmFyIGc9MCx2PTAseT0wLHg9aCxiPXUtYypoLF89Zi1zKnUsdz1tLFQ9cC1jKm0saz1kLXMqcDtmb3IoeT0wO3k8bDsrK3kpe2Zvcih2PTA7djxzOysrdil7Zm9yKGc9MDtnPGM7KytnKWVbbl09aVtvXSxuKz14LG8rPXc7bis9YixvKz1UfW4rPV8sbys9a319fX07dmFyIGk9ZnVuY3Rpb24odCxlKXt2YXIgcj1lLmpvaW4oIiwiKTtyZXR1cm4oMCxuW3JdKSgpfSxhPXttdWw6ZnVuY3Rpb24odCl7dmFyIGU9e307cmV0dXJuIGZ1bmN0aW9uKHIsbixpKXt2YXIgYT1yLmR0eXBlLG89ci5vcmRlcixzPW4uZHR5cGUsbD1uLm9yZGVyLGM9aS5kdHlwZSx1PWkub3JkZXIsZj1bYSxvLmpvaW4oKSxzLGwuam9pbigpLGMsdS5qb2luKCldLmpvaW4oKSxoPWVbZl07cmV0dXJuIGh8fChlW2ZdPWg9dChbYSxvLHMsbCxjLHVdKSksaChyLnNoYXBlLnNsaWNlKDApLHIuZGF0YSxyLnN0cmlkZSwwfHIub2Zmc2V0LG4uZGF0YSxuLnN0cmlkZSwwfG4ub2Zmc2V0LGkuZGF0YSxpLnN0cmlkZSwwfGkub2Zmc2V0KX19LG11bHM6ZnVuY3Rpb24odCl7dmFyIGU9e307cmV0dXJuIGZ1bmN0aW9uKHIsbixpKXt2YXIgYT1yLmR0eXBlLG89ci5vcmRlcixzPW4uZHR5cGUsbD1uLm9yZGVyLGM9W2Esby5qb2luKCkscyxsLmpvaW4oKV0uam9pbigpLHU9ZVtjXTtyZXR1cm4gdXx8KGVbY109dT10KFthLG8scyxsXSkpLHUoci5zaGFwZS5zbGljZSgwKSxyLmRhdGEsci5zdHJpZGUsMHxyLm9mZnNldCxuLmRhdGEsbi5zdHJpZGUsMHxuLm9mZnNldCxpKX19LG11bHNlcTpmdW5jdGlvbih0KXt2YXIgZT17fTtyZXR1cm4gZnVuY3Rpb24ocixuKXt2YXIgaT1yLmR0eXBlLGE9ci5vcmRlcixvPVtpLGEuam9pbigpXS5qb2luKCkscz1lW29dO3JldHVybiBzfHwoZVtvXT1zPXQoW2ksYV0pKSxzKHIuc2hhcGUuc2xpY2UoMCksci5kYXRhLHIuc3RyaWRlLDB8ci5vZmZzZXQsbil9fSxkaXY6ZnVuY3Rpb24odCl7dmFyIGU9e307cmV0dXJuIGZ1bmN0aW9uKHIsbixpKXt2YXIgYT1yLmR0eXBlLG89ci5vcmRlcixzPW4uZHR5cGUsbD1uLm9yZGVyLGM9aS5kdHlwZSx1PWkub3JkZXIsZj1bYSxvLmpvaW4oKSxzLGwuam9pbigpLGMsdS5qb2luKCldLmpvaW4oKSxoPWVbZl07cmV0dXJuIGh8fChlW2ZdPWg9dChbYSxvLHMsbCxjLHVdKSksaChyLnNoYXBlLnNsaWNlKDApLHIuZGF0YSxyLnN0cmlkZSwwfHIub2Zmc2V0LG4uZGF0YSxuLnN0cmlkZSwwfG4ub2Zmc2V0LGkuZGF0YSxpLnN0cmlkZSwwfGkub2Zmc2V0KX19LGRpdnM6ZnVuY3Rpb24odCl7dmFyIGU9e307cmV0dXJuIGZ1bmN0aW9uKHIsbixpKXt2YXIgYT1yLmR0eXBlLG89ci5vcmRlcixzPW4uZHR5cGUsbD1uLm9yZGVyLGM9W2Esby5qb2luKCkscyxsLmpvaW4oKV0uam9pbigpLHU9ZVtjXTtyZXR1cm4gdXx8KGVbY109dT10KFthLG8scyxsXSkpLHUoci5zaGFwZS5zbGljZSgwKSxyLmRhdGEsci5zdHJpZGUsMHxyLm9mZnNldCxuLmRhdGEsbi5zdHJpZGUsMHxuLm9mZnNldCxpKX19LGRpdnNlcTpmdW5jdGlvbih0KXt2YXIgZT17fTtyZXR1cm4gZnVuY3Rpb24ocixuKXt2YXIgaT1yLmR0eXBlLGE9ci5vcmRlcixvPVtpLGEuam9pbigpXS5qb2luKCkscz1lW29dO3JldHVybiBzfHwoZVtvXT1zPXQoW2ksYV0pKSxzKHIuc2hhcGUuc2xpY2UoMCksci5kYXRhLHIuc3RyaWRlLDB8ci5vZmZzZXQsbil9fSxhc3NpZ246ZnVuY3Rpb24odCl7dmFyIGU9e307cmV0dXJuIGZ1bmN0aW9uKHIsbil7dmFyIGk9ci5kdHlwZSxhPXIub3JkZXIsbz1uLmR0eXBlLHM9bi5vcmRlcixsPVtpLGEuam9pbigpLG8scy5qb2luKCldLmpvaW4oKSxjPWVbbF07cmV0dXJuIGN8fChlW2xdPWM9dChbaSxhLG8sc10pKSxjKHIuc2hhcGUuc2xpY2UoMCksci5kYXRhLHIuc3RyaWRlLDB8ci5vZmZzZXQsbi5kYXRhLG4uc3RyaWRlLDB8bi5vZmZzZXQpfX19O2Z1bmN0aW9uIG8odCl7cmV0dXJuIGU9e2Z1bmNOYW1lOnQuZnVuY05hbWV9LCgwLGFbZS5mdW5jTmFtZV0pKGkuYmluZCh2b2lkIDAsZSkpO3ZhciBlfXZhciBzPXttdWw6IioiLGRpdjoiLyJ9OyFmdW5jdGlvbigpe2Zvcih2YXIgdCBpbiBzKXJbdF09byh7ZnVuY05hbWU6dH0pLHJbdCsicyJdPW8oe2Z1bmNOYW1lOnQrInMifSksclt0KyJzZXEiXT1vKHtmdW5jTmFtZTp0KyJzZXEifSl9KCksci5hc3NpZ249byh7ZnVuY05hbWU6ImFzc2lnbiJ9KX0se31dLDI1NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJuZGFycmF5IiksaT10KCIuL2RvQ29udmVydC5qcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1bXSxhPXQsbz0xO0FycmF5LmlzQXJyYXkoYSk7KXIucHVzaChhLmxlbmd0aCksbyo9YS5sZW5ndGgsYT1hWzBdO3JldHVybiAwPT09ci5sZW5ndGg/bigpOihlfHwoZT1uKG5ldyBGbG9hdDY0QXJyYXkobykscikpLGkoZSx0KSxlKX19LHsiLi9kb0NvbnZlcnQuanMiOjI1NixuZGFycmF5OjI1OX1dLDI1NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbixpPWZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGE9dFswXSxvPXRbMV0scz10WzJdLGw9clswXSxjPXJbMV0sdT1yWzJdLGY9WzAsMCwwXTtufD0wO3ZhciBoPTAscD0wLGQ9MCxtPXUsZz1jLXMqdSx2PWwtbypjO2ZvcihkPTA7ZDxhOysrZCl7Zm9yKHA9MDtwPG87KytwKXtmb3IoaD0wO2g8czsrK2gpe3ZhciB5LHg9aTtmb3IoeT0wO3k8Zi5sZW5ndGgtMTsrK3kpeD14W2ZbeV1dO2Vbbl09eFtmW2YubGVuZ3RoLTFdXSxuKz1tLCsrZlsyXX1uKz1nLGZbMl0tPXMsKytmWzFdfW4rPXYsZlsxXS09bywrK2ZbMF19fX07ZS5leHBvcnRzPShuPXtmdW5jTmFtZTp7ZnVuY05hbWU6ImNvbnZlcnQifS5mdW5jTmFtZX0sZnVuY3Rpb24odCl7dmFyIGU9e307cmV0dXJuIGZ1bmN0aW9uKHIsbil7dmFyIGk9ci5kdHlwZSxhPXIub3JkZXIsbz1baSxhLmpvaW4oKV0uam9pbigpLHM9ZVtvXTtyZXR1cm4gc3x8KGVbb109cz10KFtpLGFdKSkscyhyLnNoYXBlLnNsaWNlKDApLHIuZGF0YSxyLnN0cmlkZSwwfHIub2Zmc2V0LG4pfX0oaS5iaW5kKHZvaWQgMCxuKSkpfSx7fV0sMjU3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInR5cGVkYXJyYXktcG9vbCIpO2Z1bmN0aW9uIGkodCl7c3dpdGNoKHQpe2Nhc2UidWludDMyIjpyZXR1cm5bbi5tYWxsb2NVaW50MzIsbi5mcmVlVWludDMyXTtkZWZhdWx0OnJldHVybiBudWxsfX12YXIgYT17InVpbnQzMiwxLDAiOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHIsbixpLGEsbyxzLGwsYyx1LGYsaCl7dmFyIHAsZCxtLGcsdix5LHgsYixfPXIqbythLHc9dChjKTtmb3IocD1yKzE7cDw9bjsrK3Ape2ZvcihkPXAsbT1fKz1vLHY9MCx5PV8sZz0wO2c8YzsrK2cpd1t2KytdPWlbeV0seSs9dTt0OmZvcig7ZC0tID5yOyl7dj0wLHk9bS1vO2U6Zm9yKGc9MDtnPGM7KytnKXtpZigoeD1pW3ldKTwoYj13W3ZdKSlicmVhayB0O2lmKHg+YilicmVhayBlO3krPWYsdis9aH1mb3Iodj1tLHk9bS1vLGc9MDtnPGM7KytnKWlbdl09aVt5XSx2Kz11LHkrPXU7bS09b31mb3Iodj1tLHk9MCxnPTA7ZzxjOysrZylpW3ZdPXdbeSsrXSx2Kz11fWUodyl9fX07dmFyIG89eyJ1aW50MzIsMSwwIjpmdW5jdGlvbih0LGUscil7cmV0dXJuIGZ1bmN0aW9uIG4oaSxhLG8scyxsLGMsdSxmLGgscCxkKXt2YXIgbSxnLHYseSx4LGIsXyx3LFQsayxBLE0sUyxFLEwsQyxQLEksTyx6LEQsUixGLEIsTixqPShhLWkrMSkvNnwwLFU9aStqLFY9YS1qLEg9aSthPj4xLHE9SC1qLEc9SCtqLFk9VSxXPXEsWD1ILFo9RyxKPVYsSz1pKzEsUT1hLTEsJD0hMCx0dD0wLGV0PTAscnQ9MCxudD1mLGl0PWUobnQpLGF0PWUobnQpO0E9bCpZLE09bCpXLE49czt0OmZvcihrPTA7azxmOysrayl7aWYodz1NK04sKHJ0PW9bXz1BK05dLW9bd10pPjApe2c9WSxZPVcsVz1nO2JyZWFrIHR9aWYocnQ8MClicmVhayB0O04rPXB9QT1sKlosTT1sKkosTj1zO3Q6Zm9yKGs9MDtrPGY7KytrKXtpZih3PU0rTiwocnQ9b1tfPUErTl0tb1t3XSk+MCl7Zz1aLFo9SixKPWc7YnJlYWsgdH1pZihydDwwKWJyZWFrIHQ7Tis9cH1BPWwqWSxNPWwqWCxOPXM7dDpmb3Ioaz0wO2s8ZjsrK2spe2lmKHc9TStOLChydD1vW189QStOXS1vW3ddKT4wKXtnPVksWT1YLFg9ZzticmVhayB0fWlmKHJ0PDApYnJlYWsgdDtOKz1wfUE9bCpXLE09bCpYLE49czt0OmZvcihrPTA7azxmOysrayl7aWYodz1NK04sKHJ0PW9bXz1BK05dLW9bd10pPjApe2c9VyxXPVgsWD1nO2JyZWFrIHR9aWYocnQ8MClicmVhayB0O04rPXB9QT1sKlksTT1sKlosTj1zO3Q6Zm9yKGs9MDtrPGY7KytrKXtpZih3PU0rTiwocnQ9b1tfPUErTl0tb1t3XSk+MCl7Zz1ZLFk9WixaPWc7YnJlYWsgdH1pZihydDwwKWJyZWFrIHQ7Tis9cH1BPWwqWCxNPWwqWixOPXM7dDpmb3Ioaz0wO2s8ZjsrK2spe2lmKHc9TStOLChydD1vW189QStOXS1vW3ddKT4wKXtnPVgsWD1aLFo9ZzticmVhayB0fWlmKHJ0PDApYnJlYWsgdDtOKz1wfUE9bCpXLE09bCpKLE49czt0OmZvcihrPTA7azxmOysrayl7aWYodz1NK04sKHJ0PW9bXz1BK05dLW9bd10pPjApe2c9VyxXPUosSj1nO2JyZWFrIHR9aWYocnQ8MClicmVhayB0O04rPXB9QT1sKlcsTT1sKlgsTj1zO3Q6Zm9yKGs9MDtrPGY7KytrKXtpZih3PU0rTiwocnQ9b1tfPUErTl0tb1t3XSk+MCl7Zz1XLFc9WCxYPWc7YnJlYWsgdH1pZihydDwwKWJyZWFrIHQ7Tis9cH1BPWwqWixNPWwqSixOPXM7dDpmb3Ioaz0wO2s8ZjsrK2spe2lmKHc9TStOLChydD1vW189QStOXS1vW3ddKT4wKXtnPVosWj1KLEo9ZzticmVhayB0fWlmKHJ0PDApYnJlYWsgdDtOKz1wfWZvcihBPWwqWSxNPWwqVyxTPWwqWCxFPWwqWixMPWwqSixDPWwqVSxQPWwqSCxJPWwqVixCPTAsTj1zLGs9MDtrPGY7KytrKV89QStOLHc9TStOLFQ9UytOLE89RStOLHo9TCtOLEQ9QytOLFI9UCtOLEY9SStOLGl0W0JdPW9bd10sYXRbQl09b1tPXSwkPSQmJml0W0JdPT09YXRbQl0sdj1vW19dLHk9b1tUXSx4PW9bel0sb1tEXT12LG9bUl09eSxvW0ZdPXgsKytCLE4rPWg7Zm9yKEE9bCpxLE09bCppLE49cyxrPTA7azxmOysrayl3PU0rTixvW189QStOXT1vW3ddLE4rPWg7Zm9yKEE9bCpHLE09bCphLE49cyxrPTA7azxmOysrayl3PU0rTixvW189QStOXT1vW3ddLE4rPWg7aWYoJClmb3IoYj1LO2I8PVE7KytiKXtfPXMrYipsLEI9MDt0OmZvcihrPTA7azxmJiYwPT09KHJ0PW9bX10taXRbQl0pOysraylCKz1kLF8rPXA7aWYoMCE9PXJ0KWlmKHJ0PDApe2lmKGIhPT1LKWZvcihBPWwqYixNPWwqSyxOPXMsaz0wO2s8ZjsrK2spdz1NK04sbT1vW189QStOXSxvW19dPW9bd10sb1t3XT1tLE4rPWg7KytLfWVsc2UgZm9yKDs7KXtfPXMrUSpsLEI9MDt0OmZvcihrPTA7azxmJiYwPT09KHJ0PW9bX10taXRbQl0pOysraylCKz1kLF8rPXA7aWYoIShydD4wKSl7aWYocnQ8MCl7Zm9yKEE9bCpiLE09bCpLLFM9bCpRLE49cyxrPTA7azxmOysrayl3PU0rTixUPVMrTixtPW9bXz1BK05dLG9bX109b1t3XSxvW3ddPW9bVF0sb1tUXT1tLE4rPWg7KytLLC0tUTticmVha31mb3IoQT1sKmIsTT1sKlEsTj1zLGs9MDtrPGY7KytrKXc9TStOLG09b1tfPUErTl0sb1tfXT1vW3ddLG9bd109bSxOKz1oOy0tUTticmVha31RLS19fWVsc2UgZm9yKGI9SztiPD1ROysrYil7Xz1zK2IqbCxCPTA7dDpmb3Ioaz0wO2s8ZiYmMD09PSh0dD1vW19dLWl0W0JdKTsrK2spQis9ZCxfKz1wO2lmKHR0PDApe2lmKGIhPT1LKWZvcihBPWwqYixNPWwqSyxOPXMsaz0wO2s8ZjsrK2spdz1NK04sbT1vW189QStOXSxvW19dPW9bd10sb1t3XT1tLE4rPWg7KytLfWVsc2V7Xz1zK2IqbCxCPTA7dDpmb3Ioaz0wO2s8ZiYmMD09PShldD1vW19dLWF0W0JdKTsrK2spQis9ZCxfKz1wO2lmKGV0PjApZm9yKDs7KXtfPXMrUSpsLEI9MDt0OmZvcihrPTA7azxmJiYwPT09KHJ0PW9bX10tYXRbQl0pOysraylCKz1kLF8rPXA7aWYoIShydD4wKSl7Xz1zK1EqbCxCPTA7dDpmb3Ioaz0wO2s8ZiYmMD09PShydD1vW19dLWl0W0JdKTsrK2spQis9ZCxfKz1wO2lmKHJ0PDApe2ZvcihBPWwqYixNPWwqSyxTPWwqUSxOPXMsaz0wO2s8ZjsrK2spdz1NK04sVD1TK04sbT1vW189QStOXSxvW19dPW9bd10sb1t3XT1vW1RdLG9bVF09bSxOKz1oOysrSywtLVF9ZWxzZXtmb3IoQT1sKmIsTT1sKlEsTj1zLGs9MDtrPGY7KytrKXc9TStOLG09b1tfPUErTl0sb1tfXT1vW3ddLG9bd109bSxOKz1oOy0tUX1icmVha31pZigtLVE8YilicmVha319fWZvcihBPWwqaSxNPWwqKEstMSksQj0wLE49cyxrPTA7azxmOysrayl3PU0rTixvW189QStOXT1vW3ddLG9bd109aXRbQl0sKytCLE4rPWg7Zm9yKEE9bCphLE09bCooUSsxKSxCPTAsTj1zLGs9MDtrPGY7KytrKXc9TStOLG9bXz1BK05dPW9bd10sb1t3XT1hdFtCXSwrK0IsTis9aDtpZihLLTItaTw9MzI/dChpLEstMixvLHMsbCxjLHUsZixoLHAsZCk6bihpLEstMixvLHMsbCxjLHUsZixoLHAsZCksYS0oUSsyKTw9MzI/dChRKzIsYSxvLHMsbCxjLHUsZixoLHAsZCk6bihRKzIsYSxvLHMsbCxjLHUsZixoLHAsZCksJClyZXR1cm4gcihpdCksdm9pZCByKGF0KTtpZihLPFUmJlE+Vil7dDpmb3IoOzspe2ZvcihfPXMrSypsLEI9MCxOPXMsaz0wO2s8ZjsrK2spe2lmKG9bX10hPT1pdFtCXSlicmVhayB0OysrQixfKz1ofSsrS310OmZvcig7Oyl7Zm9yKF89cytRKmwsQj0wLE49cyxrPTA7azxmOysrayl7aWYob1tfXSE9PWF0W0JdKWJyZWFrIHQ7KytCLF8rPWh9LS1RfWZvcihiPUs7Yjw9UTsrK2Ipe189cytiKmwsQj0wO3Q6Zm9yKGs9MDtrPGYmJjA9PT0odHQ9b1tfXS1pdFtCXSk7KytrKUIrPWQsXys9cDtpZigwPT09dHQpe2lmKGIhPT1LKWZvcihBPWwqYixNPWwqSyxOPXMsaz0wO2s8ZjsrK2spdz1NK04sbT1vW189QStOXSxvW19dPW9bd10sb1t3XT1tLE4rPWg7KytLfWVsc2V7Xz1zK2IqbCxCPTA7dDpmb3Ioaz0wO2s8ZiYmMD09PShldD1vW19dLWF0W0JdKTsrK2spQis9ZCxfKz1wO2lmKDA9PT1ldClmb3IoOzspe189cytRKmwsQj0wO3Q6Zm9yKGs9MDtrPGYmJjA9PT0ocnQ9b1tfXS1hdFtCXSk7KytrKUIrPWQsXys9cDtpZigwIT09cnQpe189cytRKmwsQj0wO3Q6Zm9yKGs9MDtrPGYmJjA9PT0ocnQ9b1tfXS1pdFtCXSk7KytrKUIrPWQsXys9cDtpZihydDwwKXtmb3IoQT1sKmIsTT1sKkssUz1sKlEsTj1zLGs9MDtrPGY7KytrKXc9TStOLFQ9UytOLG09b1tfPUErTl0sb1tfXT1vW3ddLG9bd109b1tUXSxvW1RdPW0sTis9aDsrK0ssLS1RfWVsc2V7Zm9yKEE9bCpiLE09bCpRLE49cyxrPTA7azxmOysrayl3PU0rTixtPW9bXz1BK05dLG9bX109b1t3XSxvW3ddPW0sTis9aDstLVF9YnJlYWt9aWYoLS1RPGIpYnJlYWt9fX19cihpdCkscihhdCksUS1LPD0zMj90KEssUSxvLHMsbCxjLHUsZixoLHAsZCk6bihLLFEsbyxzLGwsYyx1LGYsaCxwLGQpfX19O3ZhciBzPXsidWludDMyLDEsMCI6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24ocil7dmFyIG49ci5kYXRhLGk9MHxyLm9mZnNldCxhPXIuc2hhcGUsbz1yLnN0cmlkZSxzPTB8b1swXSxsPTB8YVswXSxjPTB8b1sxXSx1PTB8YVsxXSxmPWMsaD1jO2w8PTMyP3QoMCxsLTEsbixpLHMsYyxsLHUsZixoLDEpOmUoMCxsLTEsbixpLHMsYyxsLHUsZixoLDEpfX19O2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPVtlLHRdLmpvaW4oIiwiKSxuPXNbcl0sbD1mdW5jdGlvbih0LGUpe3ZhciByPWkoZSksbj1bZSx0XS5qb2luKCIsIiksbz1hW25dO3JldHVybiByP28oclswXSxyWzFdKTpvKCl9KHQsZSksYz1mdW5jdGlvbih0LGUscil7dmFyIG49aShlKSxhPVtlLHRdLmpvaW4oIiwiKSxzPW9bYV07cmV0dXJuIHQubGVuZ3RoPjEmJm4/cyhyLG5bMF0sblsxXSk6cyhyKX0odCxlLGwpO3JldHVybiBuKGwsYyl9fSx7InR5cGVkYXJyYXktcG9vbCI6MzA4fV0sMjU4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vbGliL2NvbXBpbGVfc29ydC5qcyIpLGk9e307ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQub3JkZXIscj10LmR0eXBlLGE9W2Uscl0uam9pbigiOiIpLG89aVthXTtyZXR1cm4gb3x8KGlbYV09bz1uKGUscikpLG8odCksdH19LHsiLi9saWIvY29tcGlsZV9zb3J0LmpzIjoyNTd9XSwyNTk6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCJpcy1idWZmZXIiKSxpPSJ1bmRlZmluZWQiIT10eXBlb2YgRmxvYXQ2NEFycmF5O2Z1bmN0aW9uIGEodCxlKXtyZXR1cm4gdFswXS1lWzBdfWZ1bmN0aW9uIG8oKXt2YXIgdCxlPXRoaXMuc3RyaWRlLHI9bmV3IEFycmF5KGUubGVuZ3RoKTtmb3IodD0wO3Q8ci5sZW5ndGg7Kyt0KXJbdF09W01hdGguYWJzKGVbdF0pLHRdO3Iuc29ydChhKTt2YXIgbj1uZXcgQXJyYXkoci5sZW5ndGgpO2Zvcih0PTA7dDxuLmxlbmd0aDsrK3Qpblt0XT1yW3RdWzFdO3JldHVybiBufXZhciBzPXtUOmZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUodCl7dGhpcy5kYXRhPXR9dmFyIHI9ZS5wcm90b3R5cGU7cmV0dXJuIHIuZHR5cGU9dCxyLmluZGV4PWZ1bmN0aW9uKCl7cmV0dXJuLTF9LHIuc2l6ZT0wLHIuZGltZW5zaW9uPS0xLHIuc2hhcGU9ci5zdHJpZGU9ci5vcmRlcj1bXSxyLmxvPXIuaGk9ci50cmFuc3Bvc2U9ci5zdGVwPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBlKHRoaXMuZGF0YSl9LHIuZ2V0PXIuc2V0PWZ1bmN0aW9uKCl7fSxyLnBpY2s9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0sZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBlKHQpfX0sMDpmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIHIodCxlKXt0aGlzLmRhdGE9dCx0aGlzLm9mZnNldD1lfXZhciBuPXIucHJvdG90eXBlO3JldHVybiBuLmR0eXBlPXQsbi5pbmRleD1mdW5jdGlvbigpe3JldHVybiB0aGlzLm9mZnNldH0sbi5kaW1lbnNpb249MCxuLnNpemU9MSxuLnNoYXBlPW4uc3RyaWRlPW4ub3JkZXI9W10sbi5sbz1uLmhpPW4udHJhbnNwb3NlPW4uc3RlcD1mdW5jdGlvbigpe3JldHVybiBuZXcgcih0aGlzLmRhdGEsdGhpcy5vZmZzZXQpfSxuLnBpY2s9ZnVuY3Rpb24oKXtyZXR1cm4gZSh0aGlzLmRhdGEpfSxuLnZhbHVlT2Y9bi5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4iZ2VuZXJpYyI9PT10P3RoaXMuZGF0YS5nZXQodGhpcy5vZmZzZXQpOnRoaXMuZGF0YVt0aGlzLm9mZnNldF19LG4uc2V0PWZ1bmN0aW9uKGUpe3JldHVybiJnZW5lcmljIj09PXQ/dGhpcy5kYXRhLnNldCh0aGlzLm9mZnNldCxlKTp0aGlzLmRhdGFbdGhpcy5vZmZzZXRdPWV9LGZ1bmN0aW9uKHQsZSxuLGkpe3JldHVybiBuZXcgcih0LGkpfX0sMTpmdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gbih0LGUscixuKXt0aGlzLmRhdGE9dCx0aGlzLnNoYXBlPVtlXSx0aGlzLnN0cmlkZT1bcl0sdGhpcy5vZmZzZXQ9MHxufXZhciBpPW4ucHJvdG90eXBlO3JldHVybiBpLmR0eXBlPXQsaS5kaW1lbnNpb249MSxPYmplY3QuZGVmaW5lUHJvcGVydHkoaSwic2l6ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNoYXBlWzBdfX0pLGkub3JkZXI9WzBdLGkuc2V0PWZ1bmN0aW9uKGUscil7cmV0dXJuImdlbmVyaWMiPT09dD90aGlzLmRhdGEuc2V0KHRoaXMub2Zmc2V0K3RoaXMuc3RyaWRlWzBdKmUscik6dGhpcy5kYXRhW3RoaXMub2Zmc2V0K3RoaXMuc3RyaWRlWzBdKmVdPXJ9LGkuZ2V0PWZ1bmN0aW9uKGUpe3JldHVybiJnZW5lcmljIj09PXQ/dGhpcy5kYXRhLmdldCh0aGlzLm9mZnNldCt0aGlzLnN0cmlkZVswXSplKTp0aGlzLmRhdGFbdGhpcy5vZmZzZXQrdGhpcy5zdHJpZGVbMF0qZV19LGkuaW5kZXg9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMub2Zmc2V0K3RoaXMuc3RyaWRlWzBdKnR9LGkuaGk9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBuKHRoaXMuZGF0YSwibnVtYmVyIiE9dHlwZW9mIHR8fHQ8MD90aGlzLnNoYXBlWzBdOjB8dCx0aGlzLnN0cmlkZVswXSx0aGlzLm9mZnNldCl9LGkubG89ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5vZmZzZXQscj0wLGk9dGhpcy5zaGFwZVswXSxhPXRoaXMuc3RyaWRlWzBdO3JldHVybiJudW1iZXIiPT10eXBlb2YgdCYmdD49MCYmKGUrPWEqKHI9MHx0KSxpLT1yKSxuZXcgbih0aGlzLmRhdGEsaSxhLGUpfSxpLnN0ZXA9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5zaGFwZVswXSxyPXRoaXMuc3RyaWRlWzBdLGk9dGhpcy5vZmZzZXQsYT0wLG89TWF0aC5jZWlsO3JldHVybiJudW1iZXIiPT10eXBlb2YgdCYmKChhPTB8dCk8MD8oaSs9ciooZS0xKSxlPW8oLWUvYSkpOmU9byhlL2EpLHIqPWEpLG5ldyBuKHRoaXMuZGF0YSxlLHIsaSl9LGkudHJhbnNwb3NlPWZ1bmN0aW9uKHQpe3Q9dm9pZCAwPT09dD8wOjB8dDt2YXIgZT10aGlzLnNoYXBlLHI9dGhpcy5zdHJpZGU7cmV0dXJuIG5ldyBuKHRoaXMuZGF0YSxlW3RdLHJbdF0sdGhpcy5vZmZzZXQpfSxpLnBpY2s9ZnVuY3Rpb24odCl7dmFyIHI9W10sbj1bXSxpPXRoaXMub2Zmc2V0O3JldHVybiJudW1iZXIiPT10eXBlb2YgdCYmdD49MD9pPWkrdGhpcy5zdHJpZGVbMF0qdHwwOihyLnB1c2godGhpcy5zaGFwZVswXSksbi5wdXNoKHRoaXMuc3RyaWRlWzBdKSksKDAsZVtyLmxlbmd0aCsxXSkodGhpcy5kYXRhLHIsbixpKX0sZnVuY3Rpb24odCxlLHIsaSl7cmV0dXJuIG5ldyBuKHQsZVswXSxyWzBdLGkpfX0sMjpmdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gbih0LGUscixuLGksYSl7dGhpcy5kYXRhPXQsdGhpcy5zaGFwZT1bZSxyXSx0aGlzLnN0cmlkZT1bbixpXSx0aGlzLm9mZnNldD0wfGF9dmFyIGk9bi5wcm90b3R5cGU7cmV0dXJuIGkuZHR5cGU9dCxpLmRpbWVuc2lvbj0yLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLCJzaXplIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2hhcGVbMF0qdGhpcy5zaGFwZVsxXX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoaSwib3JkZXIiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5hYnModGhpcy5zdHJpZGVbMF0pPk1hdGguYWJzKHRoaXMuc3RyaWRlWzFdKT9bMSwwXTpbMCwxXX19KSxpLnNldD1mdW5jdGlvbihlLHIsbil7cmV0dXJuImdlbmVyaWMiPT09dD90aGlzLmRhdGEuc2V0KHRoaXMub2Zmc2V0K3RoaXMuc3RyaWRlWzBdKmUrdGhpcy5zdHJpZGVbMV0qcixuKTp0aGlzLmRhdGFbdGhpcy5vZmZzZXQrdGhpcy5zdHJpZGVbMF0qZSt0aGlzLnN0cmlkZVsxXSpyXT1ufSxpLmdldD1mdW5jdGlvbihlLHIpe3JldHVybiJnZW5lcmljIj09PXQ/dGhpcy5kYXRhLmdldCh0aGlzLm9mZnNldCt0aGlzLnN0cmlkZVswXSplK3RoaXMuc3RyaWRlWzFdKnIpOnRoaXMuZGF0YVt0aGlzLm9mZnNldCt0aGlzLnN0cmlkZVswXSplK3RoaXMuc3RyaWRlWzFdKnJdfSxpLmluZGV4PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMub2Zmc2V0K3RoaXMuc3RyaWRlWzBdKnQrdGhpcy5zdHJpZGVbMV0qZX0saS5oaT1mdW5jdGlvbih0LGUpe3JldHVybiBuZXcgbih0aGlzLmRhdGEsIm51bWJlciIhPXR5cGVvZiB0fHx0PDA/dGhpcy5zaGFwZVswXTowfHQsIm51bWJlciIhPXR5cGVvZiBlfHxlPDA/dGhpcy5zaGFwZVsxXTowfGUsdGhpcy5zdHJpZGVbMF0sdGhpcy5zdHJpZGVbMV0sdGhpcy5vZmZzZXQpfSxpLmxvPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5vZmZzZXQsaT0wLGE9dGhpcy5zaGFwZVswXSxvPXRoaXMuc2hhcGVbMV0scz10aGlzLnN0cmlkZVswXSxsPXRoaXMuc3RyaWRlWzFdO3JldHVybiJudW1iZXIiPT10eXBlb2YgdCYmdD49MCYmKHIrPXMqKGk9MHx0KSxhLT1pKSwibnVtYmVyIj09dHlwZW9mIGUmJmU+PTAmJihyKz1sKihpPTB8ZSksby09aSksbmV3IG4odGhpcy5kYXRhLGEsbyxzLGwscil9LGkuc3RlcD1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuc2hhcGVbMF0saT10aGlzLnNoYXBlWzFdLGE9dGhpcy5zdHJpZGVbMF0sbz10aGlzLnN0cmlkZVsxXSxzPXRoaXMub2Zmc2V0LGw9MCxjPU1hdGguY2VpbDtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQmJigobD0wfHQpPDA/KHMrPWEqKHItMSkscj1jKC1yL2wpKTpyPWMoci9sKSxhKj1sKSwibnVtYmVyIj09dHlwZW9mIGUmJigobD0wfGUpPDA/KHMrPW8qKGktMSksaT1jKC1pL2wpKTppPWMoaS9sKSxvKj1sKSxuZXcgbih0aGlzLmRhdGEscixpLGEsbyxzKX0saS50cmFuc3Bvc2U9ZnVuY3Rpb24odCxlKXt0PXZvaWQgMD09PXQ/MDowfHQsZT12b2lkIDA9PT1lPzE6MHxlO3ZhciByPXRoaXMuc2hhcGUsaT10aGlzLnN0cmlkZTtyZXR1cm4gbmV3IG4odGhpcy5kYXRhLHJbdF0scltlXSxpW3RdLGlbZV0sdGhpcy5vZmZzZXQpfSxpLnBpY2s9ZnVuY3Rpb24odCxyKXt2YXIgbj1bXSxpPVtdLGE9dGhpcy5vZmZzZXQ7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0JiZ0Pj0wP2E9YSt0aGlzLnN0cmlkZVswXSp0fDA6KG4ucHVzaCh0aGlzLnNoYXBlWzBdKSxpLnB1c2godGhpcy5zdHJpZGVbMF0pKSwibnVtYmVyIj09dHlwZW9mIHImJnI+PTA/YT1hK3RoaXMuc3RyaWRlWzFdKnJ8MDoobi5wdXNoKHRoaXMuc2hhcGVbMV0pLGkucHVzaCh0aGlzLnN0cmlkZVsxXSkpLCgwLGVbbi5sZW5ndGgrMV0pKHRoaXMuZGF0YSxuLGksYSl9LGZ1bmN0aW9uKHQsZSxyLGkpe3JldHVybiBuZXcgbih0LGVbMF0sZVsxXSxyWzBdLHJbMV0saSl9fSwzOmZ1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBuKHQsZSxyLG4saSxhLG8scyl7dGhpcy5kYXRhPXQsdGhpcy5zaGFwZT1bZSxyLG5dLHRoaXMuc3RyaWRlPVtpLGEsb10sdGhpcy5vZmZzZXQ9MHxzfXZhciBpPW4ucHJvdG90eXBlO3JldHVybiBpLmR0eXBlPXQsaS5kaW1lbnNpb249MyxPYmplY3QuZGVmaW5lUHJvcGVydHkoaSwic2l6ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNoYXBlWzBdKnRoaXMuc2hhcGVbMV0qdGhpcy5zaGFwZVsyXX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoaSwib3JkZXIiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdD1NYXRoLmFicyh0aGlzLnN0cmlkZVswXSksZT1NYXRoLmFicyh0aGlzLnN0cmlkZVsxXSkscj1NYXRoLmFicyh0aGlzLnN0cmlkZVsyXSk7cmV0dXJuIHQ+ZT9lPnI/WzIsMSwwXTp0PnI/WzEsMiwwXTpbMSwwLDJdOnQ+cj9bMiwwLDFdOnI+ZT9bMCwxLDJdOlswLDIsMV19fSksaS5zZXQ9ZnVuY3Rpb24oZSxyLG4saSl7cmV0dXJuImdlbmVyaWMiPT09dD90aGlzLmRhdGEuc2V0KHRoaXMub2Zmc2V0K3RoaXMuc3RyaWRlWzBdKmUrdGhpcy5zdHJpZGVbMV0qcit0aGlzLnN0cmlkZVsyXSpuLGkpOnRoaXMuZGF0YVt0aGlzLm9mZnNldCt0aGlzLnN0cmlkZVswXSplK3RoaXMuc3RyaWRlWzFdKnIrdGhpcy5zdHJpZGVbMl0qbl09aX0saS5nZXQ9ZnVuY3Rpb24oZSxyLG4pe3JldHVybiJnZW5lcmljIj09PXQ/dGhpcy5kYXRhLmdldCh0aGlzLm9mZnNldCt0aGlzLnN0cmlkZVswXSplK3RoaXMuc3RyaWRlWzFdKnIrdGhpcy5zdHJpZGVbMl0qbik6dGhpcy5kYXRhW3RoaXMub2Zmc2V0K3RoaXMuc3RyaWRlWzBdKmUrdGhpcy5zdHJpZGVbMV0qcit0aGlzLnN0cmlkZVsyXSpuXX0saS5pbmRleD1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRoaXMub2Zmc2V0K3RoaXMuc3RyaWRlWzBdKnQrdGhpcy5zdHJpZGVbMV0qZSt0aGlzLnN0cmlkZVsyXSpyfSxpLmhpPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gbmV3IG4odGhpcy5kYXRhLCJudW1iZXIiIT10eXBlb2YgdHx8dDwwP3RoaXMuc2hhcGVbMF06MHx0LCJudW1iZXIiIT10eXBlb2YgZXx8ZTwwP3RoaXMuc2hhcGVbMV06MHxlLCJudW1iZXIiIT10eXBlb2Ygcnx8cjwwP3RoaXMuc2hhcGVbMl06MHxyLHRoaXMuc3RyaWRlWzBdLHRoaXMuc3RyaWRlWzFdLHRoaXMuc3RyaWRlWzJdLHRoaXMub2Zmc2V0KX0saS5sbz1mdW5jdGlvbih0LGUscil7dmFyIGk9dGhpcy5vZmZzZXQsYT0wLG89dGhpcy5zaGFwZVswXSxzPXRoaXMuc2hhcGVbMV0sbD10aGlzLnNoYXBlWzJdLGM9dGhpcy5zdHJpZGVbMF0sdT10aGlzLnN0cmlkZVsxXSxmPXRoaXMuc3RyaWRlWzJdO3JldHVybiJudW1iZXIiPT10eXBlb2YgdCYmdD49MCYmKGkrPWMqKGE9MHx0KSxvLT1hKSwibnVtYmVyIj09dHlwZW9mIGUmJmU+PTAmJihpKz11KihhPTB8ZSkscy09YSksIm51bWJlciI9PXR5cGVvZiByJiZyPj0wJiYoaSs9ZiooYT0wfHIpLGwtPWEpLG5ldyBuKHRoaXMuZGF0YSxvLHMsbCxjLHUsZixpKX0saS5zdGVwPWZ1bmN0aW9uKHQsZSxyKXt2YXIgaT10aGlzLnNoYXBlWzBdLGE9dGhpcy5zaGFwZVsxXSxvPXRoaXMuc2hhcGVbMl0scz10aGlzLnN0cmlkZVswXSxsPXRoaXMuc3RyaWRlWzFdLGM9dGhpcy5zdHJpZGVbMl0sdT10aGlzLm9mZnNldCxmPTAsaD1NYXRoLmNlaWw7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0JiYoKGY9MHx0KTwwPyh1Kz1zKihpLTEpLGk9aCgtaS9mKSk6aT1oKGkvZikscyo9ZiksIm51bWJlciI9PXR5cGVvZiBlJiYoKGY9MHxlKTwwPyh1Kz1sKihhLTEpLGE9aCgtYS9mKSk6YT1oKGEvZiksbCo9ZiksIm51bWJlciI9PXR5cGVvZiByJiYoKGY9MHxyKTwwPyh1Kz1jKihvLTEpLG89aCgtby9mKSk6bz1oKG8vZiksYyo9ZiksbmV3IG4odGhpcy5kYXRhLGksYSxvLHMsbCxjLHUpfSxpLnRyYW5zcG9zZT1mdW5jdGlvbih0LGUscil7dD12b2lkIDA9PT10PzA6MHx0LGU9dm9pZCAwPT09ZT8xOjB8ZSxyPXZvaWQgMD09PXI/MjowfHI7dmFyIGk9dGhpcy5zaGFwZSxhPXRoaXMuc3RyaWRlO3JldHVybiBuZXcgbih0aGlzLmRhdGEsaVt0XSxpW2VdLGlbcl0sYVt0XSxhW2VdLGFbcl0sdGhpcy5vZmZzZXQpfSxpLnBpY2s9ZnVuY3Rpb24odCxyLG4pe3ZhciBpPVtdLGE9W10sbz10aGlzLm9mZnNldDtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQmJnQ+PTA/bz1vK3RoaXMuc3RyaWRlWzBdKnR8MDooaS5wdXNoKHRoaXMuc2hhcGVbMF0pLGEucHVzaCh0aGlzLnN0cmlkZVswXSkpLCJudW1iZXIiPT10eXBlb2YgciYmcj49MD9vPW8rdGhpcy5zdHJpZGVbMV0qcnwwOihpLnB1c2godGhpcy5zaGFwZVsxXSksYS5wdXNoKHRoaXMuc3RyaWRlWzFdKSksIm51bWJlciI9PXR5cGVvZiBuJiZuPj0wP289byt0aGlzLnN0cmlkZVsyXSpufDA6KGkucHVzaCh0aGlzLnNoYXBlWzJdKSxhLnB1c2godGhpcy5zdHJpZGVbMl0pKSwoMCxlW2kubGVuZ3RoKzFdKSh0aGlzLmRhdGEsaSxhLG8pfSxmdW5jdGlvbih0LGUscixpKXtyZXR1cm4gbmV3IG4odCxlWzBdLGVbMV0sZVsyXSxyWzBdLHJbMV0sclsyXSxpKX19LDQ6ZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4odCxlLHIsbixpLGEsbyxzLGwsYyl7dGhpcy5kYXRhPXQsdGhpcy5zaGFwZT1bZSxyLG4saV0sdGhpcy5zdHJpZGU9W2EsbyxzLGxdLHRoaXMub2Zmc2V0PTB8Y312YXIgaT1uLnByb3RvdHlwZTtyZXR1cm4gaS5kdHlwZT10LGkuZGltZW5zaW9uPTQsT2JqZWN0LmRlZmluZVByb3BlcnR5KGksInNpemUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaGFwZVswXSp0aGlzLnNoYXBlWzFdKnRoaXMuc2hhcGVbMl0qdGhpcy5zaGFwZVszXX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoaSwib3JkZXIiLHtnZXQ6cn0pLGkuc2V0PWZ1bmN0aW9uKGUscixuLGksYSl7cmV0dXJuImdlbmVyaWMiPT09dD90aGlzLmRhdGEuc2V0KHRoaXMub2Zmc2V0K3RoaXMuc3RyaWRlWzBdKmUrdGhpcy5zdHJpZGVbMV0qcit0aGlzLnN0cmlkZVsyXSpuK3RoaXMuc3RyaWRlWzNdKmksYSk6dGhpcy5kYXRhW3RoaXMub2Zmc2V0K3RoaXMuc3RyaWRlWzBdKmUrdGhpcy5zdHJpZGVbMV0qcit0aGlzLnN0cmlkZVsyXSpuK3RoaXMuc3RyaWRlWzNdKmldPWF9LGkuZ2V0PWZ1bmN0aW9uKGUscixuLGkpe3JldHVybiJnZW5lcmljIj09PXQ/dGhpcy5kYXRhLmdldCh0aGlzLm9mZnNldCt0aGlzLnN0cmlkZVswXSplK3RoaXMuc3RyaWRlWzFdKnIrdGhpcy5zdHJpZGVbMl0qbit0aGlzLnN0cmlkZVszXSppKTp0aGlzLmRhdGFbdGhpcy5vZmZzZXQrdGhpcy5zdHJpZGVbMF0qZSt0aGlzLnN0cmlkZVsxXSpyK3RoaXMuc3RyaWRlWzJdKm4rdGhpcy5zdHJpZGVbM10qaV19LGkuaW5kZXg9ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIHRoaXMub2Zmc2V0K3RoaXMuc3RyaWRlWzBdKnQrdGhpcy5zdHJpZGVbMV0qZSt0aGlzLnN0cmlkZVsyXSpyK3RoaXMuc3RyaWRlWzNdKm59LGkuaGk9ZnVuY3Rpb24odCxlLHIsaSl7cmV0dXJuIG5ldyBuKHRoaXMuZGF0YSwibnVtYmVyIiE9dHlwZW9mIHR8fHQ8MD90aGlzLnNoYXBlWzBdOjB8dCwibnVtYmVyIiE9dHlwZW9mIGV8fGU8MD90aGlzLnNoYXBlWzFdOjB8ZSwibnVtYmVyIiE9dHlwZW9mIHJ8fHI8MD90aGlzLnNoYXBlWzJdOjB8ciwibnVtYmVyIiE9dHlwZW9mIGl8fGk8MD90aGlzLnNoYXBlWzNdOjB8aSx0aGlzLnN0cmlkZVswXSx0aGlzLnN0cmlkZVsxXSx0aGlzLnN0cmlkZVsyXSx0aGlzLnN0cmlkZVszXSx0aGlzLm9mZnNldCl9LGkubG89ZnVuY3Rpb24odCxlLHIsaSl7dmFyIGE9dGhpcy5vZmZzZXQsbz0wLHM9dGhpcy5zaGFwZVswXSxsPXRoaXMuc2hhcGVbMV0sYz10aGlzLnNoYXBlWzJdLHU9dGhpcy5zaGFwZVszXSxmPXRoaXMuc3RyaWRlWzBdLGg9dGhpcy5zdHJpZGVbMV0scD10aGlzLnN0cmlkZVsyXSxkPXRoaXMuc3RyaWRlWzNdO3JldHVybiJudW1iZXIiPT10eXBlb2YgdCYmdD49MCYmKGErPWYqKG89MHx0KSxzLT1vKSwibnVtYmVyIj09dHlwZW9mIGUmJmU+PTAmJihhKz1oKihvPTB8ZSksbC09byksIm51bWJlciI9PXR5cGVvZiByJiZyPj0wJiYoYSs9cCoobz0wfHIpLGMtPW8pLCJudW1iZXIiPT10eXBlb2YgaSYmaT49MCYmKGErPWQqKG89MHxpKSx1LT1vKSxuZXcgbih0aGlzLmRhdGEscyxsLGMsdSxmLGgscCxkLGEpfSxpLnN0ZXA9ZnVuY3Rpb24odCxlLHIsaSl7dmFyIGE9dGhpcy5zaGFwZVswXSxvPXRoaXMuc2hhcGVbMV0scz10aGlzLnNoYXBlWzJdLGw9dGhpcy5zaGFwZVszXSxjPXRoaXMuc3RyaWRlWzBdLHU9dGhpcy5zdHJpZGVbMV0sZj10aGlzLnN0cmlkZVsyXSxoPXRoaXMuc3RyaWRlWzNdLHA9dGhpcy5vZmZzZXQsZD0wLG09TWF0aC5jZWlsO3JldHVybiJudW1iZXIiPT10eXBlb2YgdCYmKChkPTB8dCk8MD8ocCs9YyooYS0xKSxhPW0oLWEvZCkpOmE9bShhL2QpLGMqPWQpLCJudW1iZXIiPT10eXBlb2YgZSYmKChkPTB8ZSk8MD8ocCs9dSooby0xKSxvPW0oLW8vZCkpOm89bShvL2QpLHUqPWQpLCJudW1iZXIiPT10eXBlb2YgciYmKChkPTB8cik8MD8ocCs9Zioocy0xKSxzPW0oLXMvZCkpOnM9bShzL2QpLGYqPWQpLCJudW1iZXIiPT10eXBlb2YgaSYmKChkPTB8aSk8MD8ocCs9aCoobC0xKSxsPW0oLWwvZCkpOmw9bShsL2QpLGgqPWQpLG5ldyBuKHRoaXMuZGF0YSxhLG8scyxsLGMsdSxmLGgscCl9LGkudHJhbnNwb3NlPWZ1bmN0aW9uKHQsZSxyLGkpe3Q9dm9pZCAwPT09dD8wOjB8dCxlPXZvaWQgMD09PWU/MTowfGUscj12b2lkIDA9PT1yPzI6MHxyLGk9dm9pZCAwPT09aT8zOjB8aTt2YXIgYT10aGlzLnNoYXBlLG89dGhpcy5zdHJpZGU7cmV0dXJuIG5ldyBuKHRoaXMuZGF0YSxhW3RdLGFbZV0sYVtyXSxhW2ldLG9bdF0sb1tlXSxvW3JdLG9baV0sdGhpcy5vZmZzZXQpfSxpLnBpY2s9ZnVuY3Rpb24odCxyLG4saSl7dmFyIGE9W10sbz1bXSxzPXRoaXMub2Zmc2V0O3JldHVybiJudW1iZXIiPT10eXBlb2YgdCYmdD49MD9zPXMrdGhpcy5zdHJpZGVbMF0qdHwwOihhLnB1c2godGhpcy5zaGFwZVswXSksby5wdXNoKHRoaXMuc3RyaWRlWzBdKSksIm51bWJlciI9PXR5cGVvZiByJiZyPj0wP3M9cyt0aGlzLnN0cmlkZVsxXSpyfDA6KGEucHVzaCh0aGlzLnNoYXBlWzFdKSxvLnB1c2godGhpcy5zdHJpZGVbMV0pKSwibnVtYmVyIj09dHlwZW9mIG4mJm4+PTA/cz1zK3RoaXMuc3RyaWRlWzJdKm58MDooYS5wdXNoKHRoaXMuc2hhcGVbMl0pLG8ucHVzaCh0aGlzLnN0cmlkZVsyXSkpLCJudW1iZXIiPT10eXBlb2YgaSYmaT49MD9zPXMrdGhpcy5zdHJpZGVbM10qaXwwOihhLnB1c2godGhpcy5zaGFwZVszXSksby5wdXNoKHRoaXMuc3RyaWRlWzNdKSksKDAsZVthLmxlbmd0aCsxXSkodGhpcy5kYXRhLGEsbyxzKX0sZnVuY3Rpb24odCxlLHIsaSl7cmV0dXJuIG5ldyBuKHQsZVswXSxlWzFdLGVbMl0sZVszXSxyWzBdLHJbMV0sclsyXSxyWzNdLGkpfX0sNTpmdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gbih0LGUscixuLGksYSxvLHMsbCxjLHUsZil7dGhpcy5kYXRhPXQsdGhpcy5zaGFwZT1bZSxyLG4saSxhXSx0aGlzLnN0cmlkZT1bbyxzLGwsYyx1XSx0aGlzLm9mZnNldD0wfGZ9dmFyIGk9bi5wcm90b3R5cGU7cmV0dXJuIGkuZHR5cGU9dCxpLmRpbWVuc2lvbj01LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLCJzaXplIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2hhcGVbMF0qdGhpcy5zaGFwZVsxXSp0aGlzLnNoYXBlWzJdKnRoaXMuc2hhcGVbM10qdGhpcy5zaGFwZVs0XX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoaSwib3JkZXIiLHtnZXQ6cn0pLGkuc2V0PWZ1bmN0aW9uKGUscixuLGksYSxvKXtyZXR1cm4iZ2VuZXJpYyI9PT10P3RoaXMuZGF0YS5zZXQodGhpcy5vZmZzZXQrdGhpcy5zdHJpZGVbMF0qZSt0aGlzLnN0cmlkZVsxXSpyK3RoaXMuc3RyaWRlWzJdKm4rdGhpcy5zdHJpZGVbM10qaSt0aGlzLnN0cmlkZVs0XSphLG8pOnRoaXMuZGF0YVt0aGlzLm9mZnNldCt0aGlzLnN0cmlkZVswXSplK3RoaXMuc3RyaWRlWzFdKnIrdGhpcy5zdHJpZGVbMl0qbit0aGlzLnN0cmlkZVszXSppK3RoaXMuc3RyaWRlWzRdKmFdPW99LGkuZ2V0PWZ1bmN0aW9uKGUscixuLGksYSl7cmV0dXJuImdlbmVyaWMiPT09dD90aGlzLmRhdGEuZ2V0KHRoaXMub2Zmc2V0K3RoaXMuc3RyaWRlWzBdKmUrdGhpcy5zdHJpZGVbMV0qcit0aGlzLnN0cmlkZVsyXSpuK3RoaXMuc3RyaWRlWzNdKmkrdGhpcy5zdHJpZGVbNF0qYSk6dGhpcy5kYXRhW3RoaXMub2Zmc2V0K3RoaXMuc3RyaWRlWzBdKmUrdGhpcy5zdHJpZGVbMV0qcit0aGlzLnN0cmlkZVsyXSpuK3RoaXMuc3RyaWRlWzNdKmkrdGhpcy5zdHJpZGVbNF0qYV19LGkuaW5kZXg9ZnVuY3Rpb24odCxlLHIsbixpKXtyZXR1cm4gdGhpcy5vZmZzZXQrdGhpcy5zdHJpZGVbMF0qdCt0aGlzLnN0cmlkZVsxXSplK3RoaXMuc3RyaWRlWzJdKnIrdGhpcy5zdHJpZGVbM10qbit0aGlzLnN0cmlkZVs0XSppfSxpLmhpPWZ1bmN0aW9uKHQsZSxyLGksYSl7cmV0dXJuIG5ldyBuKHRoaXMuZGF0YSwibnVtYmVyIiE9dHlwZW9mIHR8fHQ8MD90aGlzLnNoYXBlWzBdOjB8dCwibnVtYmVyIiE9dHlwZW9mIGV8fGU8MD90aGlzLnNoYXBlWzFdOjB8ZSwibnVtYmVyIiE9dHlwZW9mIHJ8fHI8MD90aGlzLnNoYXBlWzJdOjB8ciwibnVtYmVyIiE9dHlwZW9mIGl8fGk8MD90aGlzLnNoYXBlWzNdOjB8aSwibnVtYmVyIiE9dHlwZW9mIGF8fGE8MD90aGlzLnNoYXBlWzRdOjB8YSx0aGlzLnN0cmlkZVswXSx0aGlzLnN0cmlkZVsxXSx0aGlzLnN0cmlkZVsyXSx0aGlzLnN0cmlkZVszXSx0aGlzLnN0cmlkZVs0XSx0aGlzLm9mZnNldCl9LGkubG89ZnVuY3Rpb24odCxlLHIsaSxhKXt2YXIgbz10aGlzLm9mZnNldCxzPTAsbD10aGlzLnNoYXBlWzBdLGM9dGhpcy5zaGFwZVsxXSx1PXRoaXMuc2hhcGVbMl0sZj10aGlzLnNoYXBlWzNdLGg9dGhpcy5zaGFwZVs0XSxwPXRoaXMuc3RyaWRlWzBdLGQ9dGhpcy5zdHJpZGVbMV0sbT10aGlzLnN0cmlkZVsyXSxnPXRoaXMuc3RyaWRlWzNdLHY9dGhpcy5zdHJpZGVbNF07cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0JiZ0Pj0wJiYobys9cCoocz0wfHQpLGwtPXMpLCJudW1iZXIiPT10eXBlb2YgZSYmZT49MCYmKG8rPWQqKHM9MHxlKSxjLT1zKSwibnVtYmVyIj09dHlwZW9mIHImJnI+PTAmJihvKz1tKihzPTB8ciksdS09cyksIm51bWJlciI9PXR5cGVvZiBpJiZpPj0wJiYobys9Zyoocz0wfGkpLGYtPXMpLCJudW1iZXIiPT10eXBlb2YgYSYmYT49MCYmKG8rPXYqKHM9MHxhKSxoLT1zKSxuZXcgbih0aGlzLmRhdGEsbCxjLHUsZixoLHAsZCxtLGcsdixvKX0saS5zdGVwPWZ1bmN0aW9uKHQsZSxyLGksYSl7dmFyIG89dGhpcy5zaGFwZVswXSxzPXRoaXMuc2hhcGVbMV0sbD10aGlzLnNoYXBlWzJdLGM9dGhpcy5zaGFwZVszXSx1PXRoaXMuc2hhcGVbNF0sZj10aGlzLnN0cmlkZVswXSxoPXRoaXMuc3RyaWRlWzFdLHA9dGhpcy5zdHJpZGVbMl0sZD10aGlzLnN0cmlkZVszXSxtPXRoaXMuc3RyaWRlWzRdLGc9dGhpcy5vZmZzZXQsdj0wLHk9TWF0aC5jZWlsO3JldHVybiJudW1iZXIiPT10eXBlb2YgdCYmKCh2PTB8dCk8MD8oZys9Ziooby0xKSxvPXkoLW8vdikpOm89eShvL3YpLGYqPXYpLCJudW1iZXIiPT10eXBlb2YgZSYmKCh2PTB8ZSk8MD8oZys9aCoocy0xKSxzPXkoLXMvdikpOnM9eShzL3YpLGgqPXYpLCJudW1iZXIiPT10eXBlb2YgciYmKCh2PTB8cik8MD8oZys9cCoobC0xKSxsPXkoLWwvdikpOmw9eShsL3YpLHAqPXYpLCJudW1iZXIiPT10eXBlb2YgaSYmKCh2PTB8aSk8MD8oZys9ZCooYy0xKSxjPXkoLWMvdikpOmM9eShjL3YpLGQqPXYpLCJudW1iZXIiPT10eXBlb2YgYSYmKCh2PTB8YSk8MD8oZys9bSoodS0xKSx1PXkoLXUvdikpOnU9eSh1L3YpLG0qPXYpLG5ldyBuKHRoaXMuZGF0YSxvLHMsbCxjLHUsZixoLHAsZCxtLGcpfSxpLnRyYW5zcG9zZT1mdW5jdGlvbih0LGUscixpLGEpe3Q9dm9pZCAwPT09dD8wOjB8dCxlPXZvaWQgMD09PWU/MTowfGUscj12b2lkIDA9PT1yPzI6MHxyLGk9dm9pZCAwPT09aT8zOjB8aSxhPXZvaWQgMD09PWE/NDowfGE7dmFyIG89dGhpcy5zaGFwZSxzPXRoaXMuc3RyaWRlO3JldHVybiBuZXcgbih0aGlzLmRhdGEsb1t0XSxvW2VdLG9bcl0sb1tpXSxvW2FdLHNbdF0sc1tlXSxzW3JdLHNbaV0sc1thXSx0aGlzLm9mZnNldCl9LGkucGljaz1mdW5jdGlvbih0LHIsbixpLGEpe3ZhciBvPVtdLHM9W10sbD10aGlzLm9mZnNldDtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQmJnQ+PTA/bD1sK3RoaXMuc3RyaWRlWzBdKnR8MDooby5wdXNoKHRoaXMuc2hhcGVbMF0pLHMucHVzaCh0aGlzLnN0cmlkZVswXSkpLCJudW1iZXIiPT10eXBlb2YgciYmcj49MD9sPWwrdGhpcy5zdHJpZGVbMV0qcnwwOihvLnB1c2godGhpcy5zaGFwZVsxXSkscy5wdXNoKHRoaXMuc3RyaWRlWzFdKSksIm51bWJlciI9PXR5cGVvZiBuJiZuPj0wP2w9bCt0aGlzLnN0cmlkZVsyXSpufDA6KG8ucHVzaCh0aGlzLnNoYXBlWzJdKSxzLnB1c2godGhpcy5zdHJpZGVbMl0pKSwibnVtYmVyIj09dHlwZW9mIGkmJmk+PTA/bD1sK3RoaXMuc3RyaWRlWzNdKml8MDooby5wdXNoKHRoaXMuc2hhcGVbM10pLHMucHVzaCh0aGlzLnN0cmlkZVszXSkpLCJudW1iZXIiPT10eXBlb2YgYSYmYT49MD9sPWwrdGhpcy5zdHJpZGVbNF0qYXwwOihvLnB1c2godGhpcy5zaGFwZVs0XSkscy5wdXNoKHRoaXMuc3RyaWRlWzRdKSksKDAsZVtvLmxlbmd0aCsxXSkodGhpcy5kYXRhLG8scyxsKX0sZnVuY3Rpb24odCxlLHIsaSl7cmV0dXJuIG5ldyBuKHQsZVswXSxlWzFdLGVbMl0sZVszXSxlWzRdLHJbMF0sclsxXSxyWzJdLHJbM10scls0XSxpKX19fTtmdW5jdGlvbiBsKHQsZSl7dmFyIHI9LTE9PT1lPyJUIjpTdHJpbmcoZSksbj1zW3JdO3JldHVybi0xPT09ZT9uKHQpOjA9PT1lP24odCxjW3RdWzBdKTpuKHQsY1t0XSxvKX12YXIgYz17Z2VuZXJpYzpbXSxidWZmZXI6W10sYXJyYXk6W10sZmxvYXQzMjpbXSxmbG9hdDY0OltdLGludDg6W10saW50MTY6W10saW50MzI6W10sdWludDhfY2xhbXBlZDpbXSx1aW50ODpbXSx1aW50MTY6W10sdWludDMyOltdLGJpZ2ludDY0OltdLGJpZ3VpbnQ2NDpbXX07ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGEpe2lmKHZvaWQgMD09PXQpcmV0dXJuKDAsYy5hcnJheVswXSkoW10pOyJudW1iZXIiPT10eXBlb2YgdCYmKHQ9W3RdKSx2b2lkIDA9PT1lJiYoZT1bdC5sZW5ndGhdKTt2YXIgbz1lLmxlbmd0aDtpZih2b2lkIDA9PT1yKXtyPW5ldyBBcnJheShvKTtmb3IodmFyIHM9by0xLHU9MTtzPj0wOy0tcylyW3NdPXUsdSo9ZVtzXX1pZih2b2lkIDA9PT1hKXthPTA7Zm9yKHM9MDtzPG87KytzKXJbc108MCYmKGEtPShlW3NdLTEpKnJbc10pfWZvcih2YXIgZj1mdW5jdGlvbih0KXtpZihuKHQpKXJldHVybiJidWZmZXIiO2lmKGkpc3dpdGNoKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KSl7Y2FzZSJbb2JqZWN0IEZsb2F0NjRBcnJheV0iOnJldHVybiJmbG9hdDY0IjtjYXNlIltvYmplY3QgRmxvYXQzMkFycmF5XSI6cmV0dXJuImZsb2F0MzIiO2Nhc2UiW29iamVjdCBJbnQ4QXJyYXldIjpyZXR1cm4iaW50OCI7Y2FzZSJbb2JqZWN0IEludDE2QXJyYXldIjpyZXR1cm4iaW50MTYiO2Nhc2UiW29iamVjdCBJbnQzMkFycmF5XSI6cmV0dXJuImludDMyIjtjYXNlIltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIjpyZXR1cm4idWludDhfY2xhbXBlZCI7Y2FzZSJbb2JqZWN0IFVpbnQ4QXJyYXldIjpyZXR1cm4idWludDgiO2Nhc2UiW29iamVjdCBVaW50MTZBcnJheV0iOnJldHVybiJ1aW50MTYiO2Nhc2UiW29iamVjdCBVaW50MzJBcnJheV0iOnJldHVybiJ1aW50MzIiO2Nhc2UiW29iamVjdCBCaWdJbnQ2NEFycmF5XSI6cmV0dXJuImJpZ2ludDY0IjtjYXNlIltvYmplY3QgQmlnVWludDY0QXJyYXldIjpyZXR1cm4iYmlndWludDY0In1yZXR1cm4gQXJyYXkuaXNBcnJheSh0KT8iYXJyYXkiOiJnZW5lcmljIn0odCksaD1jW2ZdO2gubGVuZ3RoPD1vKzE7KWgucHVzaChsKGYsaC5sZW5ndGgtMSkpO3JldHVybigwLGhbbysxXSkodCxlLHIsYSl9fSx7ImlzLWJ1ZmZlciI6MjM3fV0sMjYwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImRvdWJsZS1iaXRzIiksaT1NYXRoLnBvdygyLC0xMDc0KTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZihpc05hTih0KXx8aXNOYU4oZSkpcmV0dXJuIE5hTjtpZih0PT09ZSlyZXR1cm4gdDtpZigwPT09dClyZXR1cm4gZTwwPy1pOmk7dmFyIHI9bi5oaSh0KSxhPW4ubG8odCk7ZT50PT10PjA/YT09PS0xPj4+MD8ocis9MSxhPTApOmErPTE6MD09PWE/KGE9LTE+Pj4wLHItPTEpOmEtPTE7cmV0dXJuIG4ucGFjayhhLHIpfX0seyJkb3VibGUtYml0cyI6NjR9XSwyNjE6W2Z1bmN0aW9uKHQsZSxyKXtyLnZlcnRleE5vcm1hbHM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj1lLmxlbmd0aCxpPW5ldyBBcnJheShuKSxhPXZvaWQgMD09PXI/MWUtNjpyLG89MDtvPG47KytvKWlbb109WzAsMCwwXTtmb3Iobz0wO288dC5sZW5ndGg7KytvKWZvcih2YXIgcz10W29dLGw9MCxjPXNbcy5sZW5ndGgtMV0sdT1zWzBdLGY9MDtmPHMubGVuZ3RoOysrZil7bD1jLGM9dSx1PXNbKGYrMSklcy5sZW5ndGhdO2Zvcih2YXIgaD1lW2xdLHA9ZVtjXSxkPWVbdV0sbT1uZXcgQXJyYXkoMyksZz0wLHY9bmV3IEFycmF5KDMpLHk9MCx4PTA7eDwzOysreCltW3hdPWhbeF0tcFt4XSxnKz1tW3hdKm1beF0sdlt4XT1kW3hdLXBbeF0seSs9dlt4XSp2W3hdO2lmKGcqeT5hKXt2YXIgYj1pW2NdLF89MS9NYXRoLnNxcnQoZyp5KTtmb3IoeD0wO3g8MzsrK3gpe3ZhciB3PSh4KzEpJTMsVD0oeCsyKSUzO2JbeF0rPV8qKHZbd10qbVtUXS12W1RdKm1bd10pfX19Zm9yKG89MDtvPG47KytvKXtiPWlbb107dmFyIGs9MDtmb3IoeD0wO3g8MzsrK3gpays9Ylt4XSpiW3hdO2lmKGs+YSlmb3IoXz0xL01hdGguc3FydChrKSx4PTA7eDwzOysreCliW3hdKj1fO2Vsc2UgZm9yKHg9MDt4PDM7Kyt4KWJbeF09MH1yZXR1cm4gaX0sci5mYWNlTm9ybWFscz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuPXQubGVuZ3RoLGk9bmV3IEFycmF5KG4pLGE9dm9pZCAwPT09cj8xZS02OnIsbz0wO288bjsrK28pe2Zvcih2YXIgcz10W29dLGw9bmV3IEFycmF5KDMpLGM9MDtjPDM7KytjKWxbY109ZVtzW2NdXTt2YXIgdT1uZXcgQXJyYXkoMyksZj1uZXcgQXJyYXkoMyk7Zm9yKGM9MDtjPDM7KytjKXVbY109bFsxXVtjXS1sWzBdW2NdLGZbY109bFsyXVtjXS1sWzBdW2NdO3ZhciBoPW5ldyBBcnJheSgzKSxwPTA7Zm9yKGM9MDtjPDM7KytjKXt2YXIgZD0oYysxKSUzLG09KGMrMiklMztoW2NdPXVbZF0qZlttXS11W21dKmZbZF0scCs9aFtjXSpoW2NdfXA9cD5hPzEvTWF0aC5zcXJ0KHApOjA7Zm9yKGM9MDtjPDM7KytjKWhbY10qPXA7aVtvXT1ofXJldHVybiBpfX0se31dLDI2MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbixpLGEsbyxzLGwsYyl7dmFyIHU9ZSthK2M7aWYoZj4wKXt2YXIgZj1NYXRoLnNxcnQodSsxKTt0WzBdPS41KihvLWwpL2YsdFsxXT0uNSoocy1uKS9mLHRbMl09LjUqKHItYSkvZix0WzNdPS41KmZ9ZWxzZXt2YXIgaD1NYXRoLm1heChlLGEsYyk7Zj1NYXRoLnNxcnQoMipoLXUrMSk7ZT49aD8odFswXT0uNSpmLHRbMV09LjUqKGkrcikvZix0WzJdPS41KihzK24pL2YsdFszXT0uNSooby1sKS9mKTphPj1oPyh0WzBdPS41KihyK2kpL2YsdFsxXT0uNSpmLHRbMl09LjUqKGwrbykvZix0WzNdPS41KihzLW4pL2YpOih0WzBdPS41KihuK3MpL2YsdFsxXT0uNSoobytsKS9mLHRbMl09LjUqZix0WzNdPS41KihyLWkpL2YpfXJldHVybiB0fX0se31dLDI2MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9KHQ9dHx8e30pLmNlbnRlcnx8WzAsMCwwXSxyPXQucm90YXRpb258fFswLDAsMCwxXSxuPXQucmFkaXVzfHwxO2U9W10uc2xpY2UuY2FsbChlLDAsMyksdShyPVtdLnNsaWNlLmNhbGwociwwLDQpLHIpO3ZhciBpPW5ldyBmKHIsZSxNYXRoLmxvZyhuKSk7aS5zZXREaXN0YW5jZUxpbWl0cyh0Lnpvb21NaW4sdC56b29tTWF4KSwoImV5ZSJpbiB0fHwidXAiaW4gdCkmJmkubG9va0F0KDAsdC5leWUsdC5jZW50ZXIsdC51cCk7cmV0dXJuIGl9O3ZhciBuPXQoImZpbHRlcmVkLXZlY3RvciIpLGk9dCgiZ2wtbWF0NC9sb29rQXQiKSxhPXQoImdsLW1hdDQvZnJvbVF1YXQiKSxvPXQoImdsLW1hdDQvaW52ZXJ0Iikscz10KCIuL2xpYi9xdWF0RnJvbUZyYW1lIik7ZnVuY3Rpb24gbCh0LGUscil7cmV0dXJuIE1hdGguc3FydChNYXRoLnBvdyh0LDIpK01hdGgucG93KGUsMikrTWF0aC5wb3cociwyKSl9ZnVuY3Rpb24gYyh0LGUscixuKXtyZXR1cm4gTWF0aC5zcXJ0KE1hdGgucG93KHQsMikrTWF0aC5wb3coZSwyKStNYXRoLnBvdyhyLDIpK01hdGgucG93KG4sMikpfWZ1bmN0aW9uIHUodCxlKXt2YXIgcj1lWzBdLG49ZVsxXSxpPWVbMl0sYT1lWzNdLG89YyhyLG4saSxhKTtvPjFlLTY/KHRbMF09ci9vLHRbMV09bi9vLHRbMl09aS9vLHRbM109YS9vKToodFswXT10WzFdPXRbMl09MCx0WzNdPTEpfWZ1bmN0aW9uIGYodCxlLHIpe3RoaXMucmFkaXVzPW4oW3JdKSx0aGlzLmNlbnRlcj1uKGUpLHRoaXMucm90YXRpb249bih0KSx0aGlzLmNvbXB1dGVkUmFkaXVzPXRoaXMucmFkaXVzLmN1cnZlKDApLHRoaXMuY29tcHV0ZWRDZW50ZXI9dGhpcy5jZW50ZXIuY3VydmUoMCksdGhpcy5jb21wdXRlZFJvdGF0aW9uPXRoaXMucm90YXRpb24uY3VydmUoMCksdGhpcy5jb21wdXRlZFVwPVsuMSwwLDBdLHRoaXMuY29tcHV0ZWRFeWU9Wy4xLDAsMF0sdGhpcy5jb21wdXRlZE1hdHJpeD1bLjEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDBdLHRoaXMucmVjYWxjTWF0cml4KDApfXZhciBoPWYucHJvdG90eXBlO2gubGFzdFQ9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5tYXgodGhpcy5yYWRpdXMubGFzdFQoKSx0aGlzLmNlbnRlci5sYXN0VCgpLHRoaXMucm90YXRpb24ubGFzdFQoKSl9LGgucmVjYWxjTWF0cml4PWZ1bmN0aW9uKHQpe3RoaXMucmFkaXVzLmN1cnZlKHQpLHRoaXMuY2VudGVyLmN1cnZlKHQpLHRoaXMucm90YXRpb24uY3VydmUodCk7dmFyIGU9dGhpcy5jb21wdXRlZFJvdGF0aW9uO3UoZSxlKTt2YXIgcj10aGlzLmNvbXB1dGVkTWF0cml4O2EocixlKTt2YXIgbj10aGlzLmNvbXB1dGVkQ2VudGVyLGk9dGhpcy5jb21wdXRlZEV5ZSxvPXRoaXMuY29tcHV0ZWRVcCxzPU1hdGguZXhwKHRoaXMuY29tcHV0ZWRSYWRpdXNbMF0pO2lbMF09blswXStzKnJbMl0saVsxXT1uWzFdK3Mqcls2XSxpWzJdPW5bMl0rcypyWzEwXSxvWzBdPXJbMV0sb1sxXT1yWzVdLG9bMl09cls5XTtmb3IodmFyIGw9MDtsPDM7KytsKXtmb3IodmFyIGM9MCxmPTA7ZjwzOysrZiljKz1yW2wrNCpmXSppW2ZdO3JbMTIrbF09LWN9fSxoLmdldE1hdHJpeD1mdW5jdGlvbih0LGUpe3RoaXMucmVjYWxjTWF0cml4KHQpO3ZhciByPXRoaXMuY29tcHV0ZWRNYXRyaXg7aWYoZSl7Zm9yKHZhciBuPTA7bjwxNjsrK24pZVtuXT1yW25dO3JldHVybiBlfXJldHVybiByfSxoLmlkbGU9ZnVuY3Rpb24odCl7dGhpcy5jZW50ZXIuaWRsZSh0KSx0aGlzLnJhZGl1cy5pZGxlKHQpLHRoaXMucm90YXRpb24uaWRsZSh0KX0saC5mbHVzaD1mdW5jdGlvbih0KXt0aGlzLmNlbnRlci5mbHVzaCh0KSx0aGlzLnJhZGl1cy5mbHVzaCh0KSx0aGlzLnJvdGF0aW9uLmZsdXNoKHQpfSxoLnBhbj1mdW5jdGlvbih0LGUscixuKXtlPWV8fDAscj1yfHwwLG49bnx8MCx0aGlzLnJlY2FsY01hdHJpeCh0KTt2YXIgaT10aGlzLmNvbXB1dGVkTWF0cml4LGE9aVsxXSxvPWlbNV0scz1pWzldLGM9bChhLG8scyk7YS89YyxvLz1jLHMvPWM7dmFyIHU9aVswXSxmPWlbNF0saD1pWzhdLHA9dSphK2YqbytoKnMsZD1sKHUtPWEqcCxmLT1vKnAsaC09cypwKTt1Lz1kLGYvPWQsaC89ZDt2YXIgbT1pWzJdLGc9aVs2XSx2PWlbMTBdLHk9bSphK2cqbyt2KnMseD1tKnUrZypmK3YqaCxiPWwobS09eSphK3gqdSxnLT15Km8reCpmLHYtPXkqcyt4KmgpO20vPWIsZy89Yix2Lz1iO3ZhciBfPXUqZSthKnIsdz1mKmUrbypyLFQ9aCplK3Mqcjt0aGlzLmNlbnRlci5tb3ZlKHQsXyx3LFQpO3ZhciBrPU1hdGguZXhwKHRoaXMuY29tcHV0ZWRSYWRpdXNbMF0pO2s9TWF0aC5tYXgoMWUtNCxrK24pLHRoaXMucmFkaXVzLnNldCh0LE1hdGgubG9nKGspKX0saC5yb3RhdGU9ZnVuY3Rpb24odCxlLHIsbil7dGhpcy5yZWNhbGNNYXRyaXgodCksZT1lfHwwLHI9cnx8MDt2YXIgaT10aGlzLmNvbXB1dGVkTWF0cml4LGE9aVswXSxvPWlbNF0scz1pWzhdLHU9aVsxXSxmPWlbNV0saD1pWzldLHA9aVsyXSxkPWlbNl0sbT1pWzEwXSxnPWUqYStyKnUsdj1lKm8rcipmLHk9ZSpzK3IqaCx4PS0oZCp5LW0qdiksYj0tKG0qZy1wKnkpLF89LShwKnYtZCpnKSx3PU1hdGguc3FydChNYXRoLm1heCgwLDEtTWF0aC5wb3coeCwyKS1NYXRoLnBvdyhiLDIpLU1hdGgucG93KF8sMikpKSxUPWMoeCxiLF8sdyk7VD4xZS02Pyh4Lz1ULGIvPVQsXy89VCx3Lz1UKTooeD1iPV89MCx3PTEpO3ZhciBrPXRoaXMuY29tcHV0ZWRSb3RhdGlvbixBPWtbMF0sTT1rWzFdLFM9a1syXSxFPWtbM10sTD1BKncrRSp4K00qXy1TKmIsQz1NKncrRSpiK1MqeC1BKl8sUD1TKncrRSpfK0EqYi1NKngsST1FKnctQSp4LU0qYi1TKl87aWYobil7eD1wLGI9ZCxfPW07dmFyIE89TWF0aC5zaW4obikvbCh4LGIsXyk7eCo9TyxiKj1PLF8qPU8sST1JKih3PU1hdGguY29zKGUpKS0oTD1MKncrSSp4K0MqXy1QKmIpKngtKEM9Qyp3K0kqYitQKngtTCpfKSpiLShQPVAqdytJKl8rTCpiLUMqeCkqX312YXIgej1jKEwsQyxQLEkpO3o+MWUtNj8oTC89eixDLz16LFAvPXosSS89eik6KEw9Qz1QPTAsST0xKSx0aGlzLnJvdGF0aW9uLnNldCh0LEwsQyxQLEkpfSxoLmxvb2tBdD1mdW5jdGlvbih0LGUscixuKXt0aGlzLnJlY2FsY01hdHJpeCh0KSxyPXJ8fHRoaXMuY29tcHV0ZWRDZW50ZXIsZT1lfHx0aGlzLmNvbXB1dGVkRXllLG49bnx8dGhpcy5jb21wdXRlZFVwO3ZhciBhPXRoaXMuY29tcHV0ZWRNYXRyaXg7aShhLGUscixuKTt2YXIgbz10aGlzLmNvbXB1dGVkUm90YXRpb247cyhvLGFbMF0sYVsxXSxhWzJdLGFbNF0sYVs1XSxhWzZdLGFbOF0sYVs5XSxhWzEwXSksdShvLG8pLHRoaXMucm90YXRpb24uc2V0KHQsb1swXSxvWzFdLG9bMl0sb1szXSk7Zm9yKHZhciBsPTAsYz0wO2M8MzsrK2MpbCs9TWF0aC5wb3cocltjXS1lW2NdLDIpO3RoaXMucmFkaXVzLnNldCh0LC41Kk1hdGgubG9nKE1hdGgubWF4KGwsMWUtNikpKSx0aGlzLmNlbnRlci5zZXQodCxyWzBdLHJbMV0sclsyXSl9LGgudHJhbnNsYXRlPWZ1bmN0aW9uKHQsZSxyLG4pe3RoaXMuY2VudGVyLm1vdmUodCxlfHwwLHJ8fDAsbnx8MCl9LGguc2V0TWF0cml4PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5jb21wdXRlZFJvdGF0aW9uO3MocixlWzBdLGVbMV0sZVsyXSxlWzRdLGVbNV0sZVs2XSxlWzhdLGVbOV0sZVsxMF0pLHUocixyKSx0aGlzLnJvdGF0aW9uLnNldCh0LHJbMF0sclsxXSxyWzJdLHJbM10pO3ZhciBuPXRoaXMuY29tcHV0ZWRNYXRyaXg7byhuLGUpO3ZhciBpPW5bMTVdO2lmKE1hdGguYWJzKGkpPjFlLTYpe3ZhciBhPW5bMTJdL2ksbD1uWzEzXS9pLGM9blsxNF0vaTt0aGlzLnJlY2FsY01hdHJpeCh0KTt2YXIgZj1NYXRoLmV4cCh0aGlzLmNvbXB1dGVkUmFkaXVzWzBdKTt0aGlzLmNlbnRlci5zZXQodCxhLW5bMl0qZixsLW5bNl0qZixjLW5bMTBdKmYpLHRoaXMucmFkaXVzLmlkbGUodCl9ZWxzZSB0aGlzLmNlbnRlci5pZGxlKHQpLHRoaXMucmFkaXVzLmlkbGUodCl9LGguc2V0RGlzdGFuY2U9ZnVuY3Rpb24odCxlKXtlPjAmJnRoaXMucmFkaXVzLnNldCh0LE1hdGgubG9nKGUpKX0saC5zZXREaXN0YW5jZUxpbWl0cz1mdW5jdGlvbih0LGUpe3Q9dD4wP01hdGgubG9nKHQpOi0xLzAsZT1lPjA/TWF0aC5sb2coZSk6MS8wLGU9TWF0aC5tYXgoZSx0KSx0aGlzLnJhZGl1cy5ib3VuZHNbMF1bMF09dCx0aGlzLnJhZGl1cy5ib3VuZHNbMV1bMF09ZX0saC5nZXREaXN0YW5jZUxpbWl0cz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnJhZGl1cy5ib3VuZHM7cmV0dXJuIHQ/KHRbMF09TWF0aC5leHAoZVswXVswXSksdFsxXT1NYXRoLmV4cChlWzFdWzBdKSx0KTpbTWF0aC5leHAoZVswXVswXSksTWF0aC5leHAoZVsxXVswXSldfSxoLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJlY2FsY01hdHJpeCh0aGlzLmxhc3RUKCkpLHtjZW50ZXI6dGhpcy5jb21wdXRlZENlbnRlci5zbGljZSgpLHJvdGF0aW9uOnRoaXMuY29tcHV0ZWRSb3RhdGlvbi5zbGljZSgpLGRpc3RhbmNlOk1hdGgubG9nKHRoaXMuY29tcHV0ZWRSYWRpdXNbMF0pLHpvb21NaW46dGhpcy5yYWRpdXMuYm91bmRzWzBdWzBdLHpvb21NYXg6dGhpcy5yYWRpdXMuYm91bmRzWzFdWzBdfX0saC5mcm9tSlNPTj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmxhc3RUKCkscj10LmNlbnRlcjtyJiZ0aGlzLmNlbnRlci5zZXQoZSxyWzBdLHJbMV0sclsyXSk7dmFyIG49dC5yb3RhdGlvbjtuJiZ0aGlzLnJvdGF0aW9uLnNldChlLG5bMF0sblsxXSxuWzJdLG5bM10pO3ZhciBpPXQuZGlzdGFuY2U7aSYmaT4wJiZ0aGlzLnJhZGl1cy5zZXQoZSxNYXRoLmxvZyhpKSksdGhpcy5zZXREaXN0YW5jZUxpbWl0cyh0Lnpvb21NaW4sdC56b29tTWF4KX19LHsiLi9saWIvcXVhdEZyb21GcmFtZSI6MjYyLCJmaWx0ZXJlZC12ZWN0b3IiOjY4LCJnbC1tYXQ0L2Zyb21RdWF0Ijo5NSwiZ2wtbWF0NC9pbnZlcnQiOjk4LCJnbC1tYXQ0L2xvb2tBdCI6OTl9XSwyNjQ6W2Z1bmN0aW9uKHQsZSxyKXsKLyohCiAqIHBhZC1sZWZ0IDxodHRwczovL2dpdGh1Yi5jb20vam9uc2NobGlua2VydC9wYWQtbGVmdD4KICoKICogQ29weXJpZ2h0IChjKSAyMDE0LTIwMTUsIEpvbiBTY2hsaW5rZXJ0LgogKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuCiAqLwoidXNlIHN0cmljdCI7dmFyIG49dCgicmVwZWF0LXN0cmluZyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7cmV0dXJuIG4ocj12b2lkIDAhPT1yP3IrIiI6IiAiLGUpK3R9fSx7InJlcGVhdC1zdHJpbmciOjI3N31dLDI2NTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2V8fChlPVswLCIiXSksdD1TdHJpbmcodCk7dmFyIHI9cGFyc2VGbG9hdCh0LDEwKTtyZXR1cm4gZVswXT1yLGVbMV09dC5tYXRjaCgvW1xkLlwtXCtdKlxzKiguKikvKVsxXXx8IiIsZX19LHt9XSwyNjY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTB8ZS5sZW5ndGgsaT10Lmxlbmd0aCxhPVtuZXcgQXJyYXkociksbmV3IEFycmF5KHIpXSxvPTA7bzxyOysrbylhWzBdW29dPVtdLGFbMV1bb109W107Zm9yKG89MDtvPGk7KytvKXt2YXIgcz10W29dO2FbMF1bc1swXV0ucHVzaChzKSxhWzFdW3NbMV1dLnB1c2gocyl9dmFyIGw9W107Zm9yKG89MDtvPHI7KytvKWFbMF1bb10ubGVuZ3RoK2FbMV1bb10ubGVuZ3RoPT09MCYmbC5wdXNoKFtvXSk7ZnVuY3Rpb24gYyh0LGUpe3ZhciByPWFbZV1bdFtlXV07ci5zcGxpY2Uoci5pbmRleE9mKHQpLDEpfWZ1bmN0aW9uIHUodCxyLGkpe2Zvcih2YXIgbyxzLGwsdT0wO3U8MjsrK3UpaWYoYVt1XVtyXS5sZW5ndGg+MCl7bz1hW3VdW3JdWzBdLGw9dTticmVha31zPW9bMV5sXTtmb3IodmFyIGY9MDtmPDI7KytmKWZvcih2YXIgaD1hW2ZdW3JdLHA9MDtwPGgubGVuZ3RoOysrcCl7dmFyIGQ9aFtwXSxtPWRbMV5mXTtuKGVbdF0sZVtyXSxlW3NdLGVbbV0pPjAmJihvPWQscz1tLGw9Zil9cmV0dXJuIGl8fG8mJmMobyxsKSxzfWZ1bmN0aW9uIGYodCxyKXt2YXIgaT1hW3JdW3RdWzBdLG89W3RdO2MoaSxyKTtmb3IodmFyIHM9aVsxXnJdOzspe2Zvcig7cyE9PXQ7KW8ucHVzaChzKSxzPXUob1tvLmxlbmd0aC0yXSxzLCExKTtpZihhWzBdW3RdLmxlbmd0aCthWzFdW3RdLmxlbmd0aD09PTApYnJlYWs7dmFyIGw9b1tvLmxlbmd0aC0xXSxmPXQsaD1vWzFdLHA9dShsLGYsITApO2lmKG4oZVtsXSxlW2ZdLGVbaF0sZVtwXSk8MClicmVhaztvLnB1c2godCkscz11KGwsZil9cmV0dXJuIG99ZnVuY3Rpb24gaCh0LGUpe3JldHVybiBlWzFdPT09ZVtlLmxlbmd0aC0xXX1mb3Iobz0wO288cjsrK28pZm9yKHZhciBwPTA7cDwyOysrcCl7Zm9yKHZhciBkPVtdO2FbcF1bb10ubGVuZ3RoPjA7KXthWzBdW29dLmxlbmd0aDt2YXIgbT1mKG8scCk7aCgwLG0pP2QucHVzaC5hcHBseShkLG0pOihkLmxlbmd0aD4wJiZsLnB1c2goZCksZD1tKX1kLmxlbmd0aD4wJiZsLnB1c2goZCl9cmV0dXJuIGx9O3ZhciBuPXQoImNvbXBhcmUtYW5nbGUiKX0seyJjb21wYXJlLWFuZ2xlIjo1NH1dLDI2NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9bih0LGUubGVuZ3RoKSxpPW5ldyBBcnJheShlLmxlbmd0aCksYT1uZXcgQXJyYXkoZS5sZW5ndGgpLG89W10scz0wO3M8ZS5sZW5ndGg7KytzKXt2YXIgbD1yW3NdLmxlbmd0aDthW3NdPWwsaVtzXT0hMCxsPD0xJiZvLnB1c2gocyl9Zm9yKDtvLmxlbmd0aD4wOyl7dmFyIGM9by5wb3AoKTtpW2NdPSExO3ZhciB1PXJbY107Zm9yKHM9MDtzPHUubGVuZ3RoOysrcyl7dmFyIGY9dVtzXTswPT0tLWFbZl0mJm8ucHVzaChmKX19dmFyIGg9bmV3IEFycmF5KGUubGVuZ3RoKSxwPVtdO2ZvcihzPTA7czxlLmxlbmd0aDsrK3MpaWYoaVtzXSl7Yz1wLmxlbmd0aDtoW3NdPWMscC5wdXNoKGVbc10pfWVsc2UgaFtzXT0tMTt2YXIgZD1bXTtmb3Iocz0wO3M8dC5sZW5ndGg7KytzKXt2YXIgbT10W3NdO2lbbVswXV0mJmlbbVsxXV0mJmQucHVzaChbaFttWzBdXSxoW21bMV1dXSl9cmV0dXJuW2QscF19O3ZhciBuPXQoImVkZ2VzLXRvLWFkamFjZW5jeS1saXN0Iil9LHsiZWRnZXMtdG8tYWRqYWNlbmN5LWxpc3QiOjY2fV0sMjY4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPWModCxlKTt0PXJbMF07Zm9yKHZhciBmPShlPXJbMV0pLmxlbmd0aCxoPSh0Lmxlbmd0aCxuKHQsZS5sZW5ndGgpKSxwPTA7cDxmOysrcClpZihoW3BdLmxlbmd0aCUyPT0xKXRocm93IG5ldyBFcnJvcigicGxhbmFyLWdyYXBoLXRvLXBvbHlsaW5lOiBncmFwaCBtdXN0IGJlIG1hbmlmb2xkIik7dmFyIGQ9aSh0LGUpO3ZhciBtPShkPWQuZmlsdGVyKChmdW5jdGlvbih0KXtmb3IodmFyIHI9dC5sZW5ndGgsbj1bMF0saT0wO2k8cjsrK2kpe3ZhciBhPWVbdFtpXV0sbD1lW3RbKGkrMSklcl1dLGM9bygtYVswXSxhWzFdKSx1PW8oLWFbMF0sbFsxXSksZj1vKGxbMF0sYVsxXSksaD1vKGxbMF0sbFsxXSk7bj1zKG4scyhzKGMsdSkscyhmLGgpKSl9cmV0dXJuIG5bbi5sZW5ndGgtMV0+MH0pKSkubGVuZ3RoLGc9bmV3IEFycmF5KG0pLHY9bmV3IEFycmF5KG0pO2ZvcihwPTA7cDxtOysrcCl7Z1twXT1wO3ZhciB5PW5ldyBBcnJheShtKSx4PWRbcF0ubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gZVt0XX0pKSxiPWEoW3hdKSxfPTA7dDpmb3IodmFyIHc9MDt3PG07Kyt3KWlmKHlbd109MCxwIT09dyl7Zm9yKHZhciBUPShIPWRbd10pLmxlbmd0aCxrPTA7azxUOysrayl7dmFyIEE9YihlW0hba11dKTtpZigwIT09QSl7QTwwJiYoeVt3XT0xLF8rPTEpO2NvbnRpbnVlIHR9fXlbd109MSxfKz0xfXZbcF09W18scCx5XX12LnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGVbMF0tdFswXX0pKTtmb3IocD0wO3A8bTsrK3Ape3ZhciBNPSh5PXZbcF0pWzFdLFM9eVsyXTtmb3Iodz0wO3c8bTsrK3cpU1t3XSYmKGdbd109TSl9dmFyIEU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPW5ldyBBcnJheSh0KSxyPTA7cjx0OysrcillW3JdPVtdO3JldHVybiBlfShtKTtmb3IocD0wO3A8bTsrK3ApRVtwXS5wdXNoKGdbcF0pLEVbZ1twXV0ucHVzaChwKTt2YXIgTD17fSxDPXUoZiwhMSk7Zm9yKHA9MDtwPG07KytwKWZvcihUPShIPWRbcF0pLmxlbmd0aCx3PTA7dzxUOysrdyl7dmFyIFA9SFt3XSxJPUhbKHcrMSklVF0sTz1NYXRoLm1pbihQLEkpKyI6IitNYXRoLm1heChQLEkpO2lmKE8gaW4gTCl7dmFyIHo9TFtPXTtFW3pdLnB1c2gocCksRVtwXS5wdXNoKHopLENbUF09Q1tJXT0hMH1lbHNlIExbT109cH1mdW5jdGlvbiBEKHQpe2Zvcih2YXIgZT10Lmxlbmd0aCxyPTA7cjxlOysrcilpZighQ1t0W3JdXSlyZXR1cm4hMTtyZXR1cm4hMH12YXIgUj1bXSxGPXUobSwtMSk7Zm9yKHA9MDtwPG07KytwKWdbcF0hPT1wfHxEKGRbcF0pP0ZbcF09LTE6KFIucHVzaChwKSxGW3BdPTApO3I9W107Zm9yKDtSLmxlbmd0aD4wOyl7dmFyIEI9Ui5wb3AoKSxOPUVbQl07bChOLChmdW5jdGlvbih0LGUpe3JldHVybiB0LWV9KSk7dmFyIGosVT1OLmxlbmd0aCxWPUZbQl07aWYoMD09PVYpe3ZhciBIPWRbQl07aj1bSF19Zm9yKHA9MDtwPFU7KytwKXt2YXIgcT1OW3BdO2lmKCEoRltxXT49MCkpaWYoRltxXT0xXlYsUi5wdXNoKHEpLDA9PT1WKUQoSD1kW3FdKXx8KEgucmV2ZXJzZSgpLGoucHVzaChIKSl9MD09PVYmJnIucHVzaChqKX1yZXR1cm4gcn07dmFyIG49dCgiZWRnZXMtdG8tYWRqYWNlbmN5LWxpc3QiKSxpPXQoInBsYW5hci1kdWFsIiksYT10KCJwb2ludC1pbi1iaWctcG9seWdvbiIpLG89dCgidHdvLXByb2R1Y3QiKSxzPXQoInJvYnVzdC1zdW0iKSxsPXQoInVuaXEiKSxjPXQoIi4vbGliL3RyaW0tbGVhdmVzIik7ZnVuY3Rpb24gdSh0LGUpe2Zvcih2YXIgcj1uZXcgQXJyYXkodCksbj0wO248dDsrK24pcltuXT1lO3JldHVybiByfX0seyIuL2xpYi90cmltLWxlYXZlcyI6MjY3LCJlZGdlcy10by1hZGphY2VuY3ktbGlzdCI6NjYsInBsYW5hci1kdWFsIjoyNjYsInBvaW50LWluLWJpZy1wb2x5Z29uIjoyNjksInJvYnVzdC1zdW0iOjI4OSwidHdvLXByb2R1Y3QiOjMwNix1bmlxOjMxMH1dLDI2OTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0KXtmb3IodmFyIGU9dC5sZW5ndGgscj1bXSxhPVtdLHM9MDtzPGU7KytzKWZvcih2YXIgdT10W3NdLGY9dS5sZW5ndGgsaD1mLTEscD0wO3A8ZjtoPXArKyl7dmFyIGQ9dVtoXSxtPXVbcF07ZFswXT09PW1bMF0/YS5wdXNoKFtkLG1dKTpyLnB1c2goW2QsbV0pfWlmKDA9PT1yLmxlbmd0aClyZXR1cm4gMD09PWEubGVuZ3RoP2M6KGc9bChhKSxmdW5jdGlvbih0KXtyZXR1cm4gZyh0WzBdLHRbMV0pPzA6MX0pO3ZhciBnO3ZhciB2PWkocikseT1mdW5jdGlvbih0LGUpe3JldHVybiBmdW5jdGlvbihyKXt2YXIgaT1vLmxlKGUsclswXSk7aWYoaTwwKXJldHVybiAxO3ZhciBhPXRbaV07aWYoIWEpe2lmKCEoaT4wJiZlW2ldPT09clswXSkpcmV0dXJuIDE7YT10W2ktMV19Zm9yKHZhciBzPTE7YTspe3ZhciBsPWEua2V5LGM9bihyLGxbMF0sbFsxXSk7aWYobFswXVswXTxsWzFdWzBdKWlmKGM8MClhPWEubGVmdDtlbHNle2lmKCEoYz4wKSlyZXR1cm4gMDtzPS0xLGE9YS5yaWdodH1lbHNlIGlmKGM+MClhPWEubGVmdDtlbHNle2lmKCEoYzwwKSlyZXR1cm4gMDtzPTEsYT1hLnJpZ2h0fX1yZXR1cm4gc319KHYuc2xhYnMsdi5jb29yZGluYXRlcyk7cmV0dXJuIDA9PT1hLmxlbmd0aD95OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiB0KHJbMF0sclsxXSk/MDplKHIpfX0obChhKSx5KX07dmFyIG49dCgicm9idXN0LW9yaWVudGF0aW9uIilbM10saT10KCJzbGFiLWRlY29tcG9zaXRpb24iKSxhPXQoImludGVydmFsLXRyZWUtMWQiKSxvPXQoImJpbmFyeS1zZWFyY2gtYm91bmRzIik7ZnVuY3Rpb24gcygpe3JldHVybiEwfWZ1bmN0aW9uIGwodCl7Zm9yKHZhciBlPXt9LHI9MDtyPHQubGVuZ3RoOysrcil7dmFyIG49dFtyXSxpPW5bMF1bMF0sbz1uWzBdWzFdLGw9blsxXVsxXSxjPVtNYXRoLm1pbihvLGwpLE1hdGgubWF4KG8sbCldO2kgaW4gZT9lW2ldLnB1c2goYyk6ZVtpXT1bY119dmFyIHU9e30sZj1PYmplY3Qua2V5cyhlKTtmb3Iocj0wO3I8Zi5sZW5ndGg7KytyKXt2YXIgaD1lW2Zbcl1dO3VbZltyXV09YShoKX1yZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUscil7dmFyIG49dFtlXTtyZXR1cm4hIW4mJiEhbi5xdWVyeVBvaW50KHIscyl9fSh1KX1mdW5jdGlvbiBjKHQpe3JldHVybiAxfX0seyJiaW5hcnktc2VhcmNoLWJvdW5kcyI6MzEsImludGVydmFsLXRyZWUtMWQiOjIzNCwicm9idXN0LW9yaWVudGF0aW9uIjoyODQsInNsYWItZGVjb21wb3NpdGlvbiI6Mjk5fV0sMjcwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPW5ldyBGbG9hdDY0QXJyYXkoNCksaT1uZXcgRmxvYXQ2NEFycmF5KDQpLGE9bmV3IEZsb2F0NjRBcnJheSg0KTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbyxzKXtuLmxlbmd0aDxvLmxlbmd0aCYmKG49bmV3IEZsb2F0NjRBcnJheShvLmxlbmd0aCksaT1uZXcgRmxvYXQ2NEFycmF5KG8ubGVuZ3RoKSxhPW5ldyBGbG9hdDY0QXJyYXkoby5sZW5ndGgpKTtmb3IodmFyIGw9MDtsPG8ubGVuZ3RoOysrbCluW2xdPXRbbF0tb1tsXSxpW2xdPWVbbF0tdFtsXSxhW2xdPXJbbF0tdFtsXTt2YXIgYz0wLHU9MCxmPTAsaD0wLHA9MCxkPTA7Zm9yKGw9MDtsPG8ubGVuZ3RoOysrbCl7dmFyIG09aVtsXSxnPWFbbF0sdj1uW2xdO2MrPW0qbSx1Kz1tKmcsZis9ZypnLGgrPXYqbSxwKz12KmcsZCs9dip2fXZhciB5LHgsYixfLHcsVD1NYXRoLmFicyhjKmYtdSp1KSxrPXUqcC1mKmgsQT11KmgtYypwO2lmKGsrQTw9VClpZihrPDApQTwwJiZoPDA/KEE9MCwtaD49Yz8oaz0xLHk9YysyKmgrZCk6eT1oKihrPS1oL2MpK2QpOihrPTAscD49MD8oQT0wLHk9ZCk6LXA+PWY/KEE9MSx5PWYrMipwK2QpOnk9cCooQT0tcC9mKStkKTtlbHNlIGlmKEE8MClBPTAsaD49MD8oaz0wLHk9ZCk6LWg+PWM/KGs9MSx5PWMrMipoK2QpOnk9aCooaz0taC9jKStkO2Vsc2V7dmFyIE09MS9UO3k9KGsqPU0pKihjKmsrdSooQSo9TSkrMipoKStBKih1KmsrZipBKzIqcCkrZH1lbHNlIGs8MD8oYj1mK3ApPih4PXUraCk/KF89Yi14KT49KHc9Yy0yKnUrZik/KGs9MSxBPTAseT1jKzIqaCtkKTp5PShrPV8vdykqKGMqayt1KihBPTEtaykrMipoKStBKih1KmsrZipBKzIqcCkrZDooaz0wLGI8PTA/KEE9MSx5PWYrMipwK2QpOnA+PTA/KEE9MCx5PWQpOnk9cCooQT0tcC9mKStkKTpBPDA/KGI9YytoKT4oeD11K3ApPyhfPWIteCk+PSh3PWMtMip1K2YpPyhBPTEsaz0wLHk9ZisyKnArZCk6eT0oaz0xLShBPV8vdykpKihjKmsrdSpBKzIqaCkrQSoodSprK2YqQSsyKnApK2Q6KEE9MCxiPD0wPyhrPTEseT1jKzIqaCtkKTpoPj0wPyhrPTAseT1kKTp5PWgqKGs9LWgvYykrZCk6KF89ZitwLXUtaCk8PTA/KGs9MCxBPTEseT1mKzIqcCtkKTpfPj0odz1jLTIqdStmKT8oaz0xLEE9MCx5PWMrMipoK2QpOnk9KGs9Xy93KSooYyprK3UqKEE9MS1rKSsyKmgpK0EqKHUqaytmKkErMipwKStkO3ZhciBTPTEtay1BO2ZvcihsPTA7bDxvLmxlbmd0aDsrK2wpc1tsXT1TKnRbbF0rayplW2xdK0EqcltsXTtyZXR1cm4geTwwPzA6eX19LHt9XSwyNzE6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9dCgiZ2wtcXVhdC9zbGVycCIpfSx7ImdsLXF1YXQvc2xlcnAiOjEyNH1dLDI3MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJiaWctcmF0L2FkZCIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10Lmxlbmd0aCxpPW5ldyBBcnJheShyKSxhPTA7YTxyOysrYSlpW2FdPW4odFthXSxlW2FdKTtyZXR1cm4gaX19LHsiYmlnLXJhdC9hZGQiOjE1fV0sMjczOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtmb3IodmFyIGU9bmV3IEFycmF5KHQubGVuZ3RoKSxyPTA7cjx0Lmxlbmd0aDsrK3IpZVtyXT1uKHRbcl0pO3JldHVybiBlfTt2YXIgbj10KCJiaWctcmF0Iil9LHsiYmlnLXJhdCI6MTh9XSwyNzQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiYmlnLXJhdCIpLGk9dCgiYmlnLXJhdC9tdWwiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9bihlKSxhPXQubGVuZ3RoLG89bmV3IEFycmF5KGEpLHM9MDtzPGE7KytzKW9bc109aSh0W3NdLHIpO3JldHVybiBvfX0seyJiaWctcmF0IjoxOCwiYmlnLXJhdC9tdWwiOjI3fV0sMjc1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImJpZy1yYXQvc3ViIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQubGVuZ3RoLGk9bmV3IEFycmF5KHIpLGE9MDthPHI7KythKWlbYV09bih0W2FdLGVbYV0pO3JldHVybiBpfX0seyJiaWctcmF0L3N1YiI6Mjl9XSwyNzY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiY29tcGFyZS1jZWxsIiksaT10KCJjb21wYXJlLW9yaWVudGVkLWNlbGwiKSxhPXQoImNlbGwtb3JpZW50YXRpb24iKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dC5zb3J0KGkpO2Zvcih2YXIgZT10Lmxlbmd0aCxyPTAsbz0wO288ZTsrK28pe3ZhciBzPXRbb10sbD1hKHMpO2lmKDAhPT1sKXtpZihyPjApe3ZhciBjPXRbci0xXTtpZigwPT09bihzLGMpJiZhKGMpIT09bCl7ci09MTtjb250aW51ZX19dFtyKytdPXN9fXJldHVybiB0Lmxlbmd0aD1yLHR9fSx7ImNlbGwtb3JpZW50YXRpb24iOjQ3LCJjb21wYXJlLWNlbGwiOjU2LCJjb21wYXJlLW9yaWVudGVkLWNlbGwiOjU3fV0sMjc3OltmdW5jdGlvbih0LGUscil7Ci8qIQogKiByZXBlYXQtc3RyaW5nIDxodHRwczovL2dpdGh1Yi5jb20vam9uc2NobGlua2VydC9yZXBlYXQtc3RyaW5nPgogKgogKiBDb3B5cmlnaHQgKGMpIDIwMTQtMjAxNSwgSm9uIFNjaGxpbmtlcnQuCiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4KICovCiJ1c2Ugc3RyaWN0Ijt2YXIgbixpPSIiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2lmKCJzdHJpbmciIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJleHBlY3RlZCBhIHN0cmluZyIpO2lmKDE9PT1lKXJldHVybiB0O2lmKDI9PT1lKXJldHVybiB0K3Q7dmFyIHI9dC5sZW5ndGgqZTtpZihuIT09dHx8dm9pZCAwPT09biluPXQsaT0iIjtlbHNlIGlmKGkubGVuZ3RoPj1yKXJldHVybiBpLnN1YnN0cigwLHIpO2Zvcig7cj5pLmxlbmd0aCYmZT4xOykxJmUmJihpKz10KSxlPj49MSx0Kz10O3JldHVybiBpPShpKz10KS5zdWJzdHIoMCxyKX19LHt9XSwyNzg6W2Z1bmN0aW9uKHQsZSxyKXsoZnVuY3Rpb24odCl7KGZ1bmN0aW9uKCl7ZS5leHBvcnRzPXQucGVyZm9ybWFuY2UmJnQucGVyZm9ybWFuY2Uubm93P2Z1bmN0aW9uKCl7cmV0dXJuIHBlcmZvcm1hbmNlLm5vdygpfTpEYXRlLm5vd3x8ZnVuY3Rpb24oKXtyZXR1cm4rbmV3IERhdGV9fSkuY2FsbCh0aGlzKX0pLmNhbGwodGhpcyx2b2lkIDAhPT1uP246InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9KX0se31dLDI3OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQubGVuZ3RoLHI9dFt0Lmxlbmd0aC0xXSxuPWUsaT1lLTI7aT49MDstLWkpe3ZhciBhPXIsbz10W2ldOyhsPW8tKChyPWErbyktYSkpJiYodFstLW5dPXIscj1sKX12YXIgcz0wO2ZvcihpPW47aTxlOysraSl7dmFyIGw7YT10W2ldOyhsPShvPXIpLSgocj1hK28pLWEpKSYmKHRbcysrXT1sKX1yZXR1cm4gdFtzKytdPXIsdC5sZW5ndGg9cyx0fX0se31dLDI4MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJ0d28tcHJvZHVjdCIpLGk9dCgicm9idXN0LXN1bSIpLGE9dCgicm9idXN0LXNjYWxlIiksbz10KCJyb2J1c3QtY29tcHJlc3MiKTtmdW5jdGlvbiBzKHQsZSxyLG4pe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gbih0KHIoZVswXVswXSxlWzFdWzFdKSxyKC1lWzBdWzFdLGVbMV1bMF0pKSl9fWZ1bmN0aW9uIGwodCxlLHIsbil7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybiBuKHQoZSh0KHIoaVsxXVsxXSxpWzJdWzJdKSxyKC1pWzFdWzJdLGlbMl1bMV0pKSxpWzBdWzBdKSx0KGUodChyKGlbMV1bMF0saVsyXVsyXSkscigtaVsxXVsyXSxpWzJdWzBdKSksLWlbMF1bMV0pLGUodChyKGlbMV1bMF0saVsyXVsxXSkscigtaVsxXVsxXSxpWzJdWzBdKSksaVswXVsyXSkpKSl9fWZ1bmN0aW9uIGModCxlLHIsbil7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybiBuKHQodChlKHQoZSh0KHIoaVsyXVsyXSxpWzNdWzNdKSxyKC1pWzJdWzNdLGlbM11bMl0pKSxpWzFdWzFdKSx0KGUodChyKGlbMl1bMV0saVszXVszXSkscigtaVsyXVszXSxpWzNdWzFdKSksLWlbMV1bMl0pLGUodChyKGlbMl1bMV0saVszXVsyXSkscigtaVsyXVsyXSxpWzNdWzFdKSksaVsxXVszXSkpKSxpWzBdWzBdKSxlKHQoZSh0KHIoaVsyXVsyXSxpWzNdWzNdKSxyKC1pWzJdWzNdLGlbM11bMl0pKSxpWzFdWzBdKSx0KGUodChyKGlbMl1bMF0saVszXVszXSkscigtaVsyXVszXSxpWzNdWzBdKSksLWlbMV1bMl0pLGUodChyKGlbMl1bMF0saVszXVsyXSkscigtaVsyXVsyXSxpWzNdWzBdKSksaVsxXVszXSkpKSwtaVswXVsxXSkpLHQoZSh0KGUodChyKGlbMl1bMV0saVszXVszXSkscigtaVsyXVszXSxpWzNdWzFdKSksaVsxXVswXSksdChlKHQocihpWzJdWzBdLGlbM11bM10pLHIoLWlbMl1bM10saVszXVswXSkpLC1pWzFdWzFdKSxlKHQocihpWzJdWzBdLGlbM11bMV0pLHIoLWlbMl1bMV0saVszXVswXSkpLGlbMV1bM10pKSksaVswXVsyXSksZSh0KGUodChyKGlbMl1bMV0saVszXVsyXSkscigtaVsyXVsyXSxpWzNdWzFdKSksaVsxXVswXSksdChlKHQocihpWzJdWzBdLGlbM11bMl0pLHIoLWlbMl1bMl0saVszXVswXSkpLC1pWzFdWzFdKSxlKHQocihpWzJdWzBdLGlbM11bMV0pLHIoLWlbMl1bMV0saVszXVswXSkpLGlbMV1bMl0pKSksLWlbMF1bM10pKSkpfX1mdW5jdGlvbiB1KHQsZSxyLG4pe3JldHVybiBmdW5jdGlvbihpKXtyZXR1cm4gbih0KHQoZSh0KHQoZSh0KGUodChyKGlbM11bM10saVs0XVs0XSkscigtaVszXVs0XSxpWzRdWzNdKSksaVsyXVsyXSksdChlKHQocihpWzNdWzJdLGlbNF1bNF0pLHIoLWlbM11bNF0saVs0XVsyXSkpLC1pWzJdWzNdKSxlKHQocihpWzNdWzJdLGlbNF1bM10pLHIoLWlbM11bM10saVs0XVsyXSkpLGlbMl1bNF0pKSksaVsxXVsxXSksZSh0KGUodChyKGlbM11bM10saVs0XVs0XSkscigtaVszXVs0XSxpWzRdWzNdKSksaVsyXVsxXSksdChlKHQocihpWzNdWzFdLGlbNF1bNF0pLHIoLWlbM11bNF0saVs0XVsxXSkpLC1pWzJdWzNdKSxlKHQocihpWzNdWzFdLGlbNF1bM10pLHIoLWlbM11bM10saVs0XVsxXSkpLGlbMl1bNF0pKSksLWlbMV1bMl0pKSx0KGUodChlKHQocihpWzNdWzJdLGlbNF1bNF0pLHIoLWlbM11bNF0saVs0XVsyXSkpLGlbMl1bMV0pLHQoZSh0KHIoaVszXVsxXSxpWzRdWzRdKSxyKC1pWzNdWzRdLGlbNF1bMV0pKSwtaVsyXVsyXSksZSh0KHIoaVszXVsxXSxpWzRdWzJdKSxyKC1pWzNdWzJdLGlbNF1bMV0pKSxpWzJdWzRdKSkpLGlbMV1bM10pLGUodChlKHQocihpWzNdWzJdLGlbNF1bM10pLHIoLWlbM11bM10saVs0XVsyXSkpLGlbMl1bMV0pLHQoZSh0KHIoaVszXVsxXSxpWzRdWzNdKSxyKC1pWzNdWzNdLGlbNF1bMV0pKSwtaVsyXVsyXSksZSh0KHIoaVszXVsxXSxpWzRdWzJdKSxyKC1pWzNdWzJdLGlbNF1bMV0pKSxpWzJdWzNdKSkpLC1pWzFdWzRdKSkpLGlbMF1bMF0pLGUodCh0KGUodChlKHQocihpWzNdWzNdLGlbNF1bNF0pLHIoLWlbM11bNF0saVs0XVszXSkpLGlbMl1bMl0pLHQoZSh0KHIoaVszXVsyXSxpWzRdWzRdKSxyKC1pWzNdWzRdLGlbNF1bMl0pKSwtaVsyXVszXSksZSh0KHIoaVszXVsyXSxpWzRdWzNdKSxyKC1pWzNdWzNdLGlbNF1bMl0pKSxpWzJdWzRdKSkpLGlbMV1bMF0pLGUodChlKHQocihpWzNdWzNdLGlbNF1bNF0pLHIoLWlbM11bNF0saVs0XVszXSkpLGlbMl1bMF0pLHQoZSh0KHIoaVszXVswXSxpWzRdWzRdKSxyKC1pWzNdWzRdLGlbNF1bMF0pKSwtaVsyXVszXSksZSh0KHIoaVszXVswXSxpWzRdWzNdKSxyKC1pWzNdWzNdLGlbNF1bMF0pKSxpWzJdWzRdKSkpLC1pWzFdWzJdKSksdChlKHQoZSh0KHIoaVszXVsyXSxpWzRdWzRdKSxyKC1pWzNdWzRdLGlbNF1bMl0pKSxpWzJdWzBdKSx0KGUodChyKGlbM11bMF0saVs0XVs0XSkscigtaVszXVs0XSxpWzRdWzBdKSksLWlbMl1bMl0pLGUodChyKGlbM11bMF0saVs0XVsyXSkscigtaVszXVsyXSxpWzRdWzBdKSksaVsyXVs0XSkpKSxpWzFdWzNdKSxlKHQoZSh0KHIoaVszXVsyXSxpWzRdWzNdKSxyKC1pWzNdWzNdLGlbNF1bMl0pKSxpWzJdWzBdKSx0KGUodChyKGlbM11bMF0saVs0XVszXSkscigtaVszXVszXSxpWzRdWzBdKSksLWlbMl1bMl0pLGUodChyKGlbM11bMF0saVs0XVsyXSkscigtaVszXVsyXSxpWzRdWzBdKSksaVsyXVszXSkpKSwtaVsxXVs0XSkpKSwtaVswXVsxXSkpLHQoZSh0KHQoZSh0KGUodChyKGlbM11bM10saVs0XVs0XSkscigtaVszXVs0XSxpWzRdWzNdKSksaVsyXVsxXSksdChlKHQocihpWzNdWzFdLGlbNF1bNF0pLHIoLWlbM11bNF0saVs0XVsxXSkpLC1pWzJdWzNdKSxlKHQocihpWzNdWzFdLGlbNF1bM10pLHIoLWlbM11bM10saVs0XVsxXSkpLGlbMl1bNF0pKSksaVsxXVswXSksZSh0KGUodChyKGlbM11bM10saVs0XVs0XSkscigtaVszXVs0XSxpWzRdWzNdKSksaVsyXVswXSksdChlKHQocihpWzNdWzBdLGlbNF1bNF0pLHIoLWlbM11bNF0saVs0XVswXSkpLC1pWzJdWzNdKSxlKHQocihpWzNdWzBdLGlbNF1bM10pLHIoLWlbM11bM10saVs0XVswXSkpLGlbMl1bNF0pKSksLWlbMV1bMV0pKSx0KGUodChlKHQocihpWzNdWzFdLGlbNF1bNF0pLHIoLWlbM11bNF0saVs0XVsxXSkpLGlbMl1bMF0pLHQoZSh0KHIoaVszXVswXSxpWzRdWzRdKSxyKC1pWzNdWzRdLGlbNF1bMF0pKSwtaVsyXVsxXSksZSh0KHIoaVszXVswXSxpWzRdWzFdKSxyKC1pWzNdWzFdLGlbNF1bMF0pKSxpWzJdWzRdKSkpLGlbMV1bM10pLGUodChlKHQocihpWzNdWzFdLGlbNF1bM10pLHIoLWlbM11bM10saVs0XVsxXSkpLGlbMl1bMF0pLHQoZSh0KHIoaVszXVswXSxpWzRdWzNdKSxyKC1pWzNdWzNdLGlbNF1bMF0pKSwtaVsyXVsxXSksZSh0KHIoaVszXVswXSxpWzRdWzFdKSxyKC1pWzNdWzFdLGlbNF1bMF0pKSxpWzJdWzNdKSkpLC1pWzFdWzRdKSkpLGlbMF1bMl0pLHQoZSh0KHQoZSh0KGUodChyKGlbM11bMl0saVs0XVs0XSkscigtaVszXVs0XSxpWzRdWzJdKSksaVsyXVsxXSksdChlKHQocihpWzNdWzFdLGlbNF1bNF0pLHIoLWlbM11bNF0saVs0XVsxXSkpLC1pWzJdWzJdKSxlKHQocihpWzNdWzFdLGlbNF1bMl0pLHIoLWlbM11bMl0saVs0XVsxXSkpLGlbMl1bNF0pKSksaVsxXVswXSksZSh0KGUodChyKGlbM11bMl0saVs0XVs0XSkscigtaVszXVs0XSxpWzRdWzJdKSksaVsyXVswXSksdChlKHQocihpWzNdWzBdLGlbNF1bNF0pLHIoLWlbM11bNF0saVs0XVswXSkpLC1pWzJdWzJdKSxlKHQocihpWzNdWzBdLGlbNF1bMl0pLHIoLWlbM11bMl0saVs0XVswXSkpLGlbMl1bNF0pKSksLWlbMV1bMV0pKSx0KGUodChlKHQocihpWzNdWzFdLGlbNF1bNF0pLHIoLWlbM11bNF0saVs0XVsxXSkpLGlbMl1bMF0pLHQoZSh0KHIoaVszXVswXSxpWzRdWzRdKSxyKC1pWzNdWzRdLGlbNF1bMF0pKSwtaVsyXVsxXSksZSh0KHIoaVszXVswXSxpWzRdWzFdKSxyKC1pWzNdWzFdLGlbNF1bMF0pKSxpWzJdWzRdKSkpLGlbMV1bMl0pLGUodChlKHQocihpWzNdWzFdLGlbNF1bMl0pLHIoLWlbM11bMl0saVs0XVsxXSkpLGlbMl1bMF0pLHQoZSh0KHIoaVszXVswXSxpWzRdWzJdKSxyKC1pWzNdWzJdLGlbNF1bMF0pKSwtaVsyXVsxXSksZSh0KHIoaVszXVswXSxpWzRdWzFdKSxyKC1pWzNdWzFdLGlbNF1bMF0pKSxpWzJdWzJdKSkpLC1pWzFdWzRdKSkpLC1pWzBdWzNdKSxlKHQodChlKHQoZSh0KHIoaVszXVsyXSxpWzRdWzNdKSxyKC1pWzNdWzNdLGlbNF1bMl0pKSxpWzJdWzFdKSx0KGUodChyKGlbM11bMV0saVs0XVszXSkscigtaVszXVszXSxpWzRdWzFdKSksLWlbMl1bMl0pLGUodChyKGlbM11bMV0saVs0XVsyXSkscigtaVszXVsyXSxpWzRdWzFdKSksaVsyXVszXSkpKSxpWzFdWzBdKSxlKHQoZSh0KHIoaVszXVsyXSxpWzRdWzNdKSxyKC1pWzNdWzNdLGlbNF1bMl0pKSxpWzJdWzBdKSx0KGUodChyKGlbM11bMF0saVs0XVszXSkscigtaVszXVszXSxpWzRdWzBdKSksLWlbMl1bMl0pLGUodChyKGlbM11bMF0saVs0XVsyXSkscigtaVszXVsyXSxpWzRdWzBdKSksaVsyXVszXSkpKSwtaVsxXVsxXSkpLHQoZSh0KGUodChyKGlbM11bMV0saVs0XVszXSkscigtaVszXVszXSxpWzRdWzFdKSksaVsyXVswXSksdChlKHQocihpWzNdWzBdLGlbNF1bM10pLHIoLWlbM11bM10saVs0XVswXSkpLC1pWzJdWzFdKSxlKHQocihpWzNdWzBdLGlbNF1bMV0pLHIoLWlbM11bMV0saVs0XVswXSkpLGlbMl1bM10pKSksaVsxXVsyXSksZSh0KGUodChyKGlbM11bMV0saVs0XVsyXSkscigtaVszXVsyXSxpWzRdWzFdKSksaVsyXVswXSksdChlKHQocihpWzNdWzBdLGlbNF1bMl0pLHIoLWlbM11bMl0saVs0XVswXSkpLC1pWzJdWzFdKSxlKHQocihpWzNdWzBdLGlbNF1bMV0pLHIoLWlbM11bMV0saVs0XVswXSkpLGlbMl1bMl0pKSksLWlbMV1bM10pKSksaVswXVs0XSkpKSkpfX1mdW5jdGlvbiBmKHQpe3JldHVybigyPT09dD9zOjM9PT10P2w6ND09PXQ/Yzo1PT09dD91OnZvaWQgMCkoaSxhLG4sbyl9dmFyIGg9W2Z1bmN0aW9uKCl7cmV0dXJuWzBdfSxmdW5jdGlvbih0KXtyZXR1cm5bdFswXVswXV19XTtmdW5jdGlvbiBwKHQsZSxyLG4saSxhLG8scyl7cmV0dXJuIGZ1bmN0aW9uKGwpe3N3aXRjaChsLmxlbmd0aCl7Y2FzZSAwOnJldHVybiB0KGwpO2Nhc2UgMTpyZXR1cm4gZShsKTtjYXNlIDI6cmV0dXJuIHIobCk7Y2FzZSAzOnJldHVybiBuKGwpO2Nhc2UgNDpyZXR1cm4gaShsKTtjYXNlIDU6cmV0dXJuIGEobCl9dmFyIGM9b1tsLmxlbmd0aF07cmV0dXJuIGN8fChjPW9bbC5sZW5ndGhdPXMobC5sZW5ndGgpKSxjKGwpfX0hZnVuY3Rpb24oKXtmb3IoO2gubGVuZ3RoPDY7KWgucHVzaChmKGgubGVuZ3RoKSk7ZS5leHBvcnRzPXAuYXBwbHkodm9pZCAwLGguY29uY2F0KFtoLGZdKSk7Zm9yKHZhciB0PTA7dDxoLmxlbmd0aDsrK3QpZS5leHBvcnRzW3RdPWhbdF19KCl9LHsicm9idXN0LWNvbXByZXNzIjoyNzksInJvYnVzdC1zY2FsZSI6Mjg2LCJyb2J1c3Qtc3VtIjoyODksInR3by1wcm9kdWN0IjozMDZ9XSwyODE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgidHdvLXByb2R1Y3QiKSxpPXQoInJvYnVzdC1zdW0iKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9bih0WzBdLGVbMF0pLGE9MTthPHQubGVuZ3RoOysrYSlyPWkocixuKHRbYV0sZVthXSkpO3JldHVybiByfX0seyJyb2J1c3Qtc3VtIjoyODksInR3by1wcm9kdWN0IjozMDZ9XSwyODI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgidHdvLXByb2R1Y3QiKSxpPXQoInJvYnVzdC1zdW0iKSxhPXQoInJvYnVzdC1zdWJ0cmFjdCIpLG89dCgicm9idXN0LXNjYWxlIik7ZnVuY3Rpb24gcyh0KXtyZXR1cm4oMz09PXQ/bDo0PT09dD9jOjU9PT10P3U6ZikoaSxhLG4sbyl9ZnVuY3Rpb24gbCh0LGUscixuKXtyZXR1cm4gZnVuY3Rpb24oaSxhLG8pe3ZhciBzPXIoaVswXSxpWzBdKSxsPW4ocyxhWzBdKSxjPW4ocyxvWzBdKSx1PXIoYVswXSxhWzBdKSxmPW4odSxpWzBdKSxoPW4odSxvWzBdKSxwPXIob1swXSxvWzBdKSxkPW4ocCxpWzBdKSxtPW4ocCxhWzBdKSxnPXQoZShtLGgpLGUoZixsKSksdj1lKGQsYykseT1lKGcsdik7cmV0dXJuIHlbeS5sZW5ndGgtMV19fWZ1bmN0aW9uIGModCxlLHIsbil7cmV0dXJuIGZ1bmN0aW9uKGksYSxvLHMpe3ZhciBsPXQocihpWzBdLGlbMF0pLHIoaVsxXSxpWzFdKSksYz1uKGwsYVswXSksdT1uKGwsb1swXSksZj1uKGwsc1swXSksaD10KHIoYVswXSxhWzBdKSxyKGFbMV0sYVsxXSkpLHA9bihoLGlbMF0pLGQ9bihoLG9bMF0pLG09bihoLHNbMF0pLGc9dChyKG9bMF0sb1swXSkscihvWzFdLG9bMV0pKSx2PW4oZyxpWzBdKSx5PW4oZyxhWzBdKSx4PW4oZyxzWzBdKSxiPXQocihzWzBdLHNbMF0pLHIoc1sxXSxzWzFdKSksXz1uKGIsaVswXSksdz1uKGIsYVswXSksVD1uKGIsb1swXSksaz10KHQobihlKFQseCksYVsxXSksdChuKGUodyxtKSwtb1sxXSksbihlKHksZCksc1sxXSkpKSx0KG4oZSh3LG0pLGlbMV0pLHQobihlKF8sZiksLWFbMV0pLG4oZShwLGMpLHNbMV0pKSkpLEE9dCh0KG4oZShULHgpLGlbMV0pLHQobihlKF8sZiksLW9bMV0pLG4oZSh2LHUpLHNbMV0pKSksdChuKGUoeSxkKSxpWzFdKSx0KG4oZSh2LHUpLC1hWzFdKSxuKGUocCxjKSxvWzFdKSkpKSxNPWUoayxBKTtyZXR1cm4gTVtNLmxlbmd0aC0xXX19ZnVuY3Rpb24gdSh0LGUscixuKXtyZXR1cm4gZnVuY3Rpb24oaSxhLG8scyxsKXt2YXIgYz10KHIoaVswXSxpWzBdKSx0KHIoaVsxXSxpWzFdKSxyKGlbMl0saVsyXSkpKSx1PW4oYyxhWzBdKSxmPW4oYyxvWzBdKSxoPW4oYyxzWzBdKSxwPW4oYyxsWzBdKSxkPXQocihhWzBdLGFbMF0pLHQocihhWzFdLGFbMV0pLHIoYVsyXSxhWzJdKSkpLG09bihkLGlbMF0pLGc9bihkLG9bMF0pLHY9bihkLHNbMF0pLHk9bihkLGxbMF0pLHg9dChyKG9bMF0sb1swXSksdChyKG9bMV0sb1sxXSkscihvWzJdLG9bMl0pKSksYj1uKHgsaVswXSksXz1uKHgsYVswXSksdz1uKHgsc1swXSksVD1uKHgsbFswXSksaz10KHIoc1swXSxzWzBdKSx0KHIoc1sxXSxzWzFdKSxyKHNbMl0sc1syXSkpKSxBPW4oayxpWzBdKSxNPW4oayxhWzBdKSxTPW4oayxvWzBdKSxFPW4oayxsWzBdKSxMPXQocihsWzBdLGxbMF0pLHQocihsWzFdLGxbMV0pLHIobFsyXSxsWzJdKSkpLEM9bihMLGlbMF0pLFA9bihMLGFbMF0pLEk9bihMLG9bMF0pLE89bihMLHNbMF0pLHo9dCh0KHQobih0KG4oZShPLEUpLG9bMV0pLHQobihlKEksVCksLXNbMV0pLG4oZShTLHcpLGxbMV0pKSksYVsyXSksdChuKHQobihlKE8sRSksYVsxXSksdChuKGUoUCx5KSwtc1sxXSksbihlKE0sdiksbFsxXSkpKSwtb1syXSksbih0KG4oZShJLFQpLGFbMV0pLHQobihlKFAseSksLW9bMV0pLG4oZShfLGcpLGxbMV0pKSksc1syXSkpKSx0KG4odChuKGUoUyx3KSxhWzFdKSx0KG4oZShNLHYpLC1vWzFdKSxuKGUoXyxnKSxzWzFdKSkpLC1sWzJdKSx0KG4odChuKGUoTyxFKSxhWzFdKSx0KG4oZShQLHkpLC1zWzFdKSxuKGUoTSx2KSxsWzFdKSkpLGlbMl0pLG4odChuKGUoTyxFKSxpWzFdKSx0KG4oZShDLHApLC1zWzFdKSxuKGUoQSxoKSxsWzFdKSkpLC1hWzJdKSkpKSx0KHQobih0KG4oZShQLHkpLGlbMV0pLHQobihlKEMscCksLWFbMV0pLG4oZShtLHUpLGxbMV0pKSksc1syXSksdChuKHQobihlKE0sdiksaVsxXSksdChuKGUoQSxoKSwtYVsxXSksbihlKG0sdSksc1sxXSkpKSwtbFsyXSksbih0KG4oZShTLHcpLGFbMV0pLHQobihlKE0sdiksLW9bMV0pLG4oZShfLGcpLHNbMV0pKSksaVsyXSkpKSx0KG4odChuKGUoUyx3KSxpWzFdKSx0KG4oZShBLGgpLC1vWzFdKSxuKGUoYixmKSxzWzFdKSkpLC1hWzJdKSx0KG4odChuKGUoTSx2KSxpWzFdKSx0KG4oZShBLGgpLC1hWzFdKSxuKGUobSx1KSxzWzFdKSkpLG9bMl0pLG4odChuKGUoXyxnKSxpWzFdKSx0KG4oZShiLGYpLC1hWzFdKSxuKGUobSx1KSxvWzFdKSkpLC1zWzJdKSkpKSksRD10KHQodChuKHQobihlKE8sRSksb1sxXSksdChuKGUoSSxUKSwtc1sxXSksbihlKFMsdyksbFsxXSkpKSxpWzJdKSxuKHQobihlKE8sRSksaVsxXSksdChuKGUoQyxwKSwtc1sxXSksbihlKEEsaCksbFsxXSkpKSwtb1syXSkpLHQobih0KG4oZShJLFQpLGlbMV0pLHQobihlKEMscCksLW9bMV0pLG4oZShiLGYpLGxbMV0pKSksc1syXSksbih0KG4oZShTLHcpLGlbMV0pLHQobihlKEEsaCksLW9bMV0pLG4oZShiLGYpLHNbMV0pKSksLWxbMl0pKSksdCh0KG4odChuKGUoSSxUKSxhWzFdKSx0KG4oZShQLHkpLC1vWzFdKSxuKGUoXyxnKSxsWzFdKSkpLGlbMl0pLG4odChuKGUoSSxUKSxpWzFdKSx0KG4oZShDLHApLC1vWzFdKSxuKGUoYixmKSxsWzFdKSkpLC1hWzJdKSksdChuKHQobihlKFAseSksaVsxXSksdChuKGUoQyxwKSwtYVsxXSksbihlKG0sdSksbFsxXSkpKSxvWzJdKSxuKHQobihlKF8sZyksaVsxXSksdChuKGUoYixmKSwtYVsxXSksbihlKG0sdSksb1sxXSkpKSwtbFsyXSkpKSksUj1lKHosRCk7cmV0dXJuIFJbUi5sZW5ndGgtMV19fWZ1bmN0aW9uIGYodCxlLHIsbil7cmV0dXJuIGZ1bmN0aW9uKGksYSxvLHMsbCxjKXt2YXIgdT10KHQocihpWzBdLGlbMF0pLHIoaVsxXSxpWzFdKSksdChyKGlbMl0saVsyXSkscihpWzNdLGlbM10pKSksZj1uKHUsYVswXSksaD1uKHUsb1swXSkscD1uKHUsc1swXSksZD1uKHUsbFswXSksbT1uKHUsY1swXSksZz10KHQocihhWzBdLGFbMF0pLHIoYVsxXSxhWzFdKSksdChyKGFbMl0sYVsyXSkscihhWzNdLGFbM10pKSksdj1uKGcsaVswXSkseT1uKGcsb1swXSkseD1uKGcsc1swXSksYj1uKGcsbFswXSksXz1uKGcsY1swXSksdz10KHQocihvWzBdLG9bMF0pLHIob1sxXSxvWzFdKSksdChyKG9bMl0sb1syXSkscihvWzNdLG9bM10pKSksVD1uKHcsaVswXSksaz1uKHcsYVswXSksQT1uKHcsc1swXSksTT1uKHcsbFswXSksUz1uKHcsY1swXSksRT10KHQocihzWzBdLHNbMF0pLHIoc1sxXSxzWzFdKSksdChyKHNbMl0sc1syXSkscihzWzNdLHNbM10pKSksTD1uKEUsaVswXSksQz1uKEUsYVswXSksUD1uKEUsb1swXSksST1uKEUsbFswXSksTz1uKEUsY1swXSksej10KHQocihsWzBdLGxbMF0pLHIobFsxXSxsWzFdKSksdChyKGxbMl0sbFsyXSkscihsWzNdLGxbM10pKSksRD1uKHosaVswXSksUj1uKHosYVswXSksRj1uKHosb1swXSksQj1uKHosc1swXSksTj1uKHosY1swXSksaj10KHQocihjWzBdLGNbMF0pLHIoY1sxXSxjWzFdKSksdChyKGNbMl0sY1syXSkscihjWzNdLGNbM10pKSksVT1uKGosaVswXSksVj1uKGosYVswXSksSD1uKGosb1swXSkscT1uKGosc1swXSksRz1uKGosbFswXSksWT10KHQodChuKHQodChuKHQobihlKEcsTiksc1sxXSksdChuKGUocSxPKSwtbFsxXSksbihlKEIsSSksY1sxXSkpKSxvWzJdKSxuKHQobihlKEcsTiksb1sxXSksdChuKGUoSCxTKSwtbFsxXSksbihlKEYsTSksY1sxXSkpKSwtc1syXSkpLHQobih0KG4oZShxLE8pLG9bMV0pLHQobihlKEgsUyksLXNbMV0pLG4oZShQLEEpLGNbMV0pKSksbFsyXSksbih0KG4oZShCLEkpLG9bMV0pLHQobihlKEYsTSksLXNbMV0pLG4oZShQLEEpLGxbMV0pKSksLWNbMl0pKSksYVszXSksdChuKHQodChuKHQobihlKEcsTiksc1sxXSksdChuKGUocSxPKSwtbFsxXSksbihlKEIsSSksY1sxXSkpKSxhWzJdKSxuKHQobihlKEcsTiksYVsxXSksdChuKGUoVixfKSwtbFsxXSksbihlKFIsYiksY1sxXSkpKSwtc1syXSkpLHQobih0KG4oZShxLE8pLGFbMV0pLHQobihlKFYsXyksLXNbMV0pLG4oZShDLHgpLGNbMV0pKSksbFsyXSksbih0KG4oZShCLEkpLGFbMV0pLHQobihlKFIsYiksLXNbMV0pLG4oZShDLHgpLGxbMV0pKSksLWNbMl0pKSksLW9bM10pLG4odCh0KG4odChuKGUoRyxOKSxvWzFdKSx0KG4oZShILFMpLC1sWzFdKSxuKGUoRixNKSxjWzFdKSkpLGFbMl0pLG4odChuKGUoRyxOKSxhWzFdKSx0KG4oZShWLF8pLC1sWzFdKSxuKGUoUixiKSxjWzFdKSkpLC1vWzJdKSksdChuKHQobihlKEgsUyksYVsxXSksdChuKGUoVixfKSwtb1sxXSksbihlKGsseSksY1sxXSkpKSxsWzJdKSxuKHQobihlKEYsTSksYVsxXSksdChuKGUoUixiKSwtb1sxXSksbihlKGsseSksbFsxXSkpKSwtY1syXSkpKSxzWzNdKSkpLHQodChuKHQodChuKHQobihlKHEsTyksb1sxXSksdChuKGUoSCxTKSwtc1sxXSksbihlKFAsQSksY1sxXSkpKSxhWzJdKSxuKHQobihlKHEsTyksYVsxXSksdChuKGUoVixfKSwtc1sxXSksbihlKEMseCksY1sxXSkpKSwtb1syXSkpLHQobih0KG4oZShILFMpLGFbMV0pLHQobihlKFYsXyksLW9bMV0pLG4oZShrLHkpLGNbMV0pKSksc1syXSksbih0KG4oZShQLEEpLGFbMV0pLHQobihlKEMseCksLW9bMV0pLG4oZShrLHkpLHNbMV0pKSksLWNbMl0pKSksLWxbM10pLG4odCh0KG4odChuKGUoQixJKSxvWzFdKSx0KG4oZShGLE0pLC1zWzFdKSxuKGUoUCxBKSxsWzFdKSkpLGFbMl0pLG4odChuKGUoQixJKSxhWzFdKSx0KG4oZShSLGIpLC1zWzFdKSxuKGUoQyx4KSxsWzFdKSkpLC1vWzJdKSksdChuKHQobihlKEYsTSksYVsxXSksdChuKGUoUixiKSwtb1sxXSksbihlKGsseSksbFsxXSkpKSxzWzJdKSxuKHQobihlKFAsQSksYVsxXSksdChuKGUoQyx4KSwtb1sxXSksbihlKGsseSksc1sxXSkpKSwtbFsyXSkpKSxjWzNdKSksdChuKHQodChuKHQobihlKEcsTiksc1sxXSksdChuKGUocSxPKSwtbFsxXSksbihlKEIsSSksY1sxXSkpKSxhWzJdKSxuKHQobihlKEcsTiksYVsxXSksdChuKGUoVixfKSwtbFsxXSksbihlKFIsYiksY1sxXSkpKSwtc1syXSkpLHQobih0KG4oZShxLE8pLGFbMV0pLHQobihlKFYsXyksLXNbMV0pLG4oZShDLHgpLGNbMV0pKSksbFsyXSksbih0KG4oZShCLEkpLGFbMV0pLHQobihlKFIsYiksLXNbMV0pLG4oZShDLHgpLGxbMV0pKSksLWNbMl0pKSksaVszXSksbih0KHQobih0KG4oZShHLE4pLHNbMV0pLHQobihlKHEsTyksLWxbMV0pLG4oZShCLEkpLGNbMV0pKSksaVsyXSksbih0KG4oZShHLE4pLGlbMV0pLHQobihlKFUsbSksLWxbMV0pLG4oZShELGQpLGNbMV0pKSksLXNbMl0pKSx0KG4odChuKGUocSxPKSxpWzFdKSx0KG4oZShVLG0pLC1zWzFdKSxuKGUoTCxwKSxjWzFdKSkpLGxbMl0pLG4odChuKGUoQixJKSxpWzFdKSx0KG4oZShELGQpLC1zWzFdKSxuKGUoTCxwKSxsWzFdKSkpLC1jWzJdKSkpLC1hWzNdKSkpKSx0KHQodChuKHQodChuKHQobihlKEcsTiksYVsxXSksdChuKGUoVixfKSwtbFsxXSksbihlKFIsYiksY1sxXSkpKSxpWzJdKSxuKHQobihlKEcsTiksaVsxXSksdChuKGUoVSxtKSwtbFsxXSksbihlKEQsZCksY1sxXSkpKSwtYVsyXSkpLHQobih0KG4oZShWLF8pLGlbMV0pLHQobihlKFUsbSksLWFbMV0pLG4oZSh2LGYpLGNbMV0pKSksbFsyXSksbih0KG4oZShSLGIpLGlbMV0pLHQobihlKEQsZCksLWFbMV0pLG4oZSh2LGYpLGxbMV0pKSksLWNbMl0pKSksc1szXSksbih0KHQobih0KG4oZShxLE8pLGFbMV0pLHQobihlKFYsXyksLXNbMV0pLG4oZShDLHgpLGNbMV0pKSksaVsyXSksbih0KG4oZShxLE8pLGlbMV0pLHQobihlKFUsbSksLXNbMV0pLG4oZShMLHApLGNbMV0pKSksLWFbMl0pKSx0KG4odChuKGUoVixfKSxpWzFdKSx0KG4oZShVLG0pLC1hWzFdKSxuKGUodixmKSxjWzFdKSkpLHNbMl0pLG4odChuKGUoQyx4KSxpWzFdKSx0KG4oZShMLHApLC1hWzFdKSxuKGUodixmKSxzWzFdKSkpLC1jWzJdKSkpLC1sWzNdKSksdChuKHQodChuKHQobihlKEIsSSksYVsxXSksdChuKGUoUixiKSwtc1sxXSksbihlKEMseCksbFsxXSkpKSxpWzJdKSxuKHQobihlKEIsSSksaVsxXSksdChuKGUoRCxkKSwtc1sxXSksbihlKEwscCksbFsxXSkpKSwtYVsyXSkpLHQobih0KG4oZShSLGIpLGlbMV0pLHQobihlKEQsZCksLWFbMV0pLG4oZSh2LGYpLGxbMV0pKSksc1syXSksbih0KG4oZShDLHgpLGlbMV0pLHQobihlKEwscCksLWFbMV0pLG4oZSh2LGYpLHNbMV0pKSksLWxbMl0pKSksY1szXSksbih0KHQobih0KG4oZShxLE8pLG9bMV0pLHQobihlKEgsUyksLXNbMV0pLG4oZShQLEEpLGNbMV0pKSksYVsyXSksbih0KG4oZShxLE8pLGFbMV0pLHQobihlKFYsXyksLXNbMV0pLG4oZShDLHgpLGNbMV0pKSksLW9bMl0pKSx0KG4odChuKGUoSCxTKSxhWzFdKSx0KG4oZShWLF8pLC1vWzFdKSxuKGUoayx5KSxjWzFdKSkpLHNbMl0pLG4odChuKGUoUCxBKSxhWzFdKSx0KG4oZShDLHgpLC1vWzFdKSxuKGUoayx5KSxzWzFdKSkpLC1jWzJdKSkpLGlbM10pKSksdCh0KG4odCh0KG4odChuKGUocSxPKSxvWzFdKSx0KG4oZShILFMpLC1zWzFdKSxuKGUoUCxBKSxjWzFdKSkpLGlbMl0pLG4odChuKGUocSxPKSxpWzFdKSx0KG4oZShVLG0pLC1zWzFdKSxuKGUoTCxwKSxjWzFdKSkpLC1vWzJdKSksdChuKHQobihlKEgsUyksaVsxXSksdChuKGUoVSxtKSwtb1sxXSksbihlKFQsaCksY1sxXSkpKSxzWzJdKSxuKHQobihlKFAsQSksaVsxXSksdChuKGUoTCxwKSwtb1sxXSksbihlKFQsaCksc1sxXSkpKSwtY1syXSkpKSwtYVszXSksbih0KHQobih0KG4oZShxLE8pLGFbMV0pLHQobihlKFYsXyksLXNbMV0pLG4oZShDLHgpLGNbMV0pKSksaVsyXSksbih0KG4oZShxLE8pLGlbMV0pLHQobihlKFUsbSksLXNbMV0pLG4oZShMLHApLGNbMV0pKSksLWFbMl0pKSx0KG4odChuKGUoVixfKSxpWzFdKSx0KG4oZShVLG0pLC1hWzFdKSxuKGUodixmKSxjWzFdKSkpLHNbMl0pLG4odChuKGUoQyx4KSxpWzFdKSx0KG4oZShMLHApLC1hWzFdKSxuKGUodixmKSxzWzFdKSkpLC1jWzJdKSkpLG9bM10pKSx0KG4odCh0KG4odChuKGUoSCxTKSxhWzFdKSx0KG4oZShWLF8pLC1vWzFdKSxuKGUoayx5KSxjWzFdKSkpLGlbMl0pLG4odChuKGUoSCxTKSxpWzFdKSx0KG4oZShVLG0pLC1vWzFdKSxuKGUoVCxoKSxjWzFdKSkpLC1hWzJdKSksdChuKHQobihlKFYsXyksaVsxXSksdChuKGUoVSxtKSwtYVsxXSksbihlKHYsZiksY1sxXSkpKSxvWzJdKSxuKHQobihlKGsseSksaVsxXSksdChuKGUoVCxoKSwtYVsxXSksbihlKHYsZiksb1sxXSkpKSwtY1syXSkpKSwtc1szXSksbih0KHQobih0KG4oZShQLEEpLGFbMV0pLHQobihlKEMseCksLW9bMV0pLG4oZShrLHkpLHNbMV0pKSksaVsyXSksbih0KG4oZShQLEEpLGlbMV0pLHQobihlKEwscCksLW9bMV0pLG4oZShULGgpLHNbMV0pKSksLWFbMl0pKSx0KG4odChuKGUoQyx4KSxpWzFdKSx0KG4oZShMLHApLC1hWzFdKSxuKGUodixmKSxzWzFdKSkpLG9bMl0pLG4odChuKGUoayx5KSxpWzFdKSx0KG4oZShULGgpLC1hWzFdKSxuKGUodixmKSxvWzFdKSkpLC1zWzJdKSkpLGNbM10pKSkpKSxXPXQodCh0KG4odCh0KG4odChuKGUoRyxOKSxzWzFdKSx0KG4oZShxLE8pLC1sWzFdKSxuKGUoQixJKSxjWzFdKSkpLG9bMl0pLG4odChuKGUoRyxOKSxvWzFdKSx0KG4oZShILFMpLC1sWzFdKSxuKGUoRixNKSxjWzFdKSkpLC1zWzJdKSksdChuKHQobihlKHEsTyksb1sxXSksdChuKGUoSCxTKSwtc1sxXSksbihlKFAsQSksY1sxXSkpKSxsWzJdKSxuKHQobihlKEIsSSksb1sxXSksdChuKGUoRixNKSwtc1sxXSksbihlKFAsQSksbFsxXSkpKSwtY1syXSkpKSxpWzNdKSx0KG4odCh0KG4odChuKGUoRyxOKSxzWzFdKSx0KG4oZShxLE8pLC1sWzFdKSxuKGUoQixJKSxjWzFdKSkpLGlbMl0pLG4odChuKGUoRyxOKSxpWzFdKSx0KG4oZShVLG0pLC1sWzFdKSxuKGUoRCxkKSxjWzFdKSkpLC1zWzJdKSksdChuKHQobihlKHEsTyksaVsxXSksdChuKGUoVSxtKSwtc1sxXSksbihlKEwscCksY1sxXSkpKSxsWzJdKSxuKHQobihlKEIsSSksaVsxXSksdChuKGUoRCxkKSwtc1sxXSksbihlKEwscCksbFsxXSkpKSwtY1syXSkpKSwtb1szXSksbih0KHQobih0KG4oZShHLE4pLG9bMV0pLHQobihlKEgsUyksLWxbMV0pLG4oZShGLE0pLGNbMV0pKSksaVsyXSksbih0KG4oZShHLE4pLGlbMV0pLHQobihlKFUsbSksLWxbMV0pLG4oZShELGQpLGNbMV0pKSksLW9bMl0pKSx0KG4odChuKGUoSCxTKSxpWzFdKSx0KG4oZShVLG0pLC1vWzFdKSxuKGUoVCxoKSxjWzFdKSkpLGxbMl0pLG4odChuKGUoRixNKSxpWzFdKSx0KG4oZShELGQpLC1vWzFdKSxuKGUoVCxoKSxsWzFdKSkpLC1jWzJdKSkpLHNbM10pKSksdCh0KG4odCh0KG4odChuKGUocSxPKSxvWzFdKSx0KG4oZShILFMpLC1zWzFdKSxuKGUoUCxBKSxjWzFdKSkpLGlbMl0pLG4odChuKGUocSxPKSxpWzFdKSx0KG4oZShVLG0pLC1zWzFdKSxuKGUoTCxwKSxjWzFdKSkpLC1vWzJdKSksdChuKHQobihlKEgsUyksaVsxXSksdChuKGUoVSxtKSwtb1sxXSksbihlKFQsaCksY1sxXSkpKSxzWzJdKSxuKHQobihlKFAsQSksaVsxXSksdChuKGUoTCxwKSwtb1sxXSksbihlKFQsaCksc1sxXSkpKSwtY1syXSkpKSwtbFszXSksbih0KHQobih0KG4oZShCLEkpLG9bMV0pLHQobihlKEYsTSksLXNbMV0pLG4oZShQLEEpLGxbMV0pKSksaVsyXSksbih0KG4oZShCLEkpLGlbMV0pLHQobihlKEQsZCksLXNbMV0pLG4oZShMLHApLGxbMV0pKSksLW9bMl0pKSx0KG4odChuKGUoRixNKSxpWzFdKSx0KG4oZShELGQpLC1vWzFdKSxuKGUoVCxoKSxsWzFdKSkpLHNbMl0pLG4odChuKGUoUCxBKSxpWzFdKSx0KG4oZShMLHApLC1vWzFdKSxuKGUoVCxoKSxzWzFdKSkpLC1sWzJdKSkpLGNbM10pKSx0KG4odCh0KG4odChuKGUoRyxOKSxvWzFdKSx0KG4oZShILFMpLC1sWzFdKSxuKGUoRixNKSxjWzFdKSkpLGFbMl0pLG4odChuKGUoRyxOKSxhWzFdKSx0KG4oZShWLF8pLC1sWzFdKSxuKGUoUixiKSxjWzFdKSkpLC1vWzJdKSksdChuKHQobihlKEgsUyksYVsxXSksdChuKGUoVixfKSwtb1sxXSksbihlKGsseSksY1sxXSkpKSxsWzJdKSxuKHQobihlKEYsTSksYVsxXSksdChuKGUoUixiKSwtb1sxXSksbihlKGsseSksbFsxXSkpKSwtY1syXSkpKSxpWzNdKSxuKHQodChuKHQobihlKEcsTiksb1sxXSksdChuKGUoSCxTKSwtbFsxXSksbihlKEYsTSksY1sxXSkpKSxpWzJdKSxuKHQobihlKEcsTiksaVsxXSksdChuKGUoVSxtKSwtbFsxXSksbihlKEQsZCksY1sxXSkpKSwtb1syXSkpLHQobih0KG4oZShILFMpLGlbMV0pLHQobihlKFUsbSksLW9bMV0pLG4oZShULGgpLGNbMV0pKSksbFsyXSksbih0KG4oZShGLE0pLGlbMV0pLHQobihlKEQsZCksLW9bMV0pLG4oZShULGgpLGxbMV0pKSksLWNbMl0pKSksLWFbM10pKSkpLHQodCh0KG4odCh0KG4odChuKGUoRyxOKSxhWzFdKSx0KG4oZShWLF8pLC1sWzFdKSxuKGUoUixiKSxjWzFdKSkpLGlbMl0pLG4odChuKGUoRyxOKSxpWzFdKSx0KG4oZShVLG0pLC1sWzFdKSxuKGUoRCxkKSxjWzFdKSkpLC1hWzJdKSksdChuKHQobihlKFYsXyksaVsxXSksdChuKGUoVSxtKSwtYVsxXSksbihlKHYsZiksY1sxXSkpKSxsWzJdKSxuKHQobihlKFIsYiksaVsxXSksdChuKGUoRCxkKSwtYVsxXSksbihlKHYsZiksbFsxXSkpKSwtY1syXSkpKSxvWzNdKSxuKHQodChuKHQobihlKEgsUyksYVsxXSksdChuKGUoVixfKSwtb1sxXSksbihlKGsseSksY1sxXSkpKSxpWzJdKSxuKHQobihlKEgsUyksaVsxXSksdChuKGUoVSxtKSwtb1sxXSksbihlKFQsaCksY1sxXSkpKSwtYVsyXSkpLHQobih0KG4oZShWLF8pLGlbMV0pLHQobihlKFUsbSksLWFbMV0pLG4oZSh2LGYpLGNbMV0pKSksb1syXSksbih0KG4oZShrLHkpLGlbMV0pLHQobihlKFQsaCksLWFbMV0pLG4oZSh2LGYpLG9bMV0pKSksLWNbMl0pKSksLWxbM10pKSx0KG4odCh0KG4odChuKGUoRixNKSxhWzFdKSx0KG4oZShSLGIpLC1vWzFdKSxuKGUoayx5KSxsWzFdKSkpLGlbMl0pLG4odChuKGUoRixNKSxpWzFdKSx0KG4oZShELGQpLC1vWzFdKSxuKGUoVCxoKSxsWzFdKSkpLC1hWzJdKSksdChuKHQobihlKFIsYiksaVsxXSksdChuKGUoRCxkKSwtYVsxXSksbihlKHYsZiksbFsxXSkpKSxvWzJdKSxuKHQobihlKGsseSksaVsxXSksdChuKGUoVCxoKSwtYVsxXSksbihlKHYsZiksb1sxXSkpKSwtbFsyXSkpKSxjWzNdKSxuKHQodChuKHQobihlKEIsSSksb1sxXSksdChuKGUoRixNKSwtc1sxXSksbihlKFAsQSksbFsxXSkpKSxhWzJdKSxuKHQobihlKEIsSSksYVsxXSksdChuKGUoUixiKSwtc1sxXSksbihlKEMseCksbFsxXSkpKSwtb1syXSkpLHQobih0KG4oZShGLE0pLGFbMV0pLHQobihlKFIsYiksLW9bMV0pLG4oZShrLHkpLGxbMV0pKSksc1syXSksbih0KG4oZShQLEEpLGFbMV0pLHQobihlKEMseCksLW9bMV0pLG4oZShrLHkpLHNbMV0pKSksLWxbMl0pKSksaVszXSkpKSx0KHQobih0KHQobih0KG4oZShCLEkpLG9bMV0pLHQobihlKEYsTSksLXNbMV0pLG4oZShQLEEpLGxbMV0pKSksaVsyXSksbih0KG4oZShCLEkpLGlbMV0pLHQobihlKEQsZCksLXNbMV0pLG4oZShMLHApLGxbMV0pKSksLW9bMl0pKSx0KG4odChuKGUoRixNKSxpWzFdKSx0KG4oZShELGQpLC1vWzFdKSxuKGUoVCxoKSxsWzFdKSkpLHNbMl0pLG4odChuKGUoUCxBKSxpWzFdKSx0KG4oZShMLHApLC1vWzFdKSxuKGUoVCxoKSxzWzFdKSkpLC1sWzJdKSkpLC1hWzNdKSxuKHQodChuKHQobihlKEIsSSksYVsxXSksdChuKGUoUixiKSwtc1sxXSksbihlKEMseCksbFsxXSkpKSxpWzJdKSxuKHQobihlKEIsSSksaVsxXSksdChuKGUoRCxkKSwtc1sxXSksbihlKEwscCksbFsxXSkpKSwtYVsyXSkpLHQobih0KG4oZShSLGIpLGlbMV0pLHQobihlKEQsZCksLWFbMV0pLG4oZSh2LGYpLGxbMV0pKSksc1syXSksbih0KG4oZShDLHgpLGlbMV0pLHQobihlKEwscCksLWFbMV0pLG4oZSh2LGYpLHNbMV0pKSksLWxbMl0pKSksb1szXSkpLHQobih0KHQobih0KG4oZShGLE0pLGFbMV0pLHQobihlKFIsYiksLW9bMV0pLG4oZShrLHkpLGxbMV0pKSksaVsyXSksbih0KG4oZShGLE0pLGlbMV0pLHQobihlKEQsZCksLW9bMV0pLG4oZShULGgpLGxbMV0pKSksLWFbMl0pKSx0KG4odChuKGUoUixiKSxpWzFdKSx0KG4oZShELGQpLC1hWzFdKSxuKGUodixmKSxsWzFdKSkpLG9bMl0pLG4odChuKGUoayx5KSxpWzFdKSx0KG4oZShULGgpLC1hWzFdKSxuKGUodixmKSxvWzFdKSkpLC1sWzJdKSkpLC1zWzNdKSxuKHQodChuKHQobihlKFAsQSksYVsxXSksdChuKGUoQyx4KSwtb1sxXSksbihlKGsseSksc1sxXSkpKSxpWzJdKSxuKHQobihlKFAsQSksaVsxXSksdChuKGUoTCxwKSwtb1sxXSksbihlKFQsaCksc1sxXSkpKSwtYVsyXSkpLHQobih0KG4oZShDLHgpLGlbMV0pLHQobihlKEwscCksLWFbMV0pLG4oZSh2LGYpLHNbMV0pKSksb1syXSksbih0KG4oZShrLHkpLGlbMV0pLHQobihlKFQsaCksLWFbMV0pLG4oZSh2LGYpLG9bMV0pKSksLXNbMl0pKSksbFszXSkpKSkpLFg9ZShZLFcpO3JldHVybiBYW1gubGVuZ3RoLTFdfX12YXIgaD1bZnVuY3Rpb24oKXtyZXR1cm4gMH0sZnVuY3Rpb24oKXtyZXR1cm4gMH0sZnVuY3Rpb24oKXtyZXR1cm4gMH1dO2Z1bmN0aW9uIHAodCl7dmFyIGU9aFt0Lmxlbmd0aF07cmV0dXJuIGV8fChlPWhbdC5sZW5ndGhdPXModC5sZW5ndGgpKSxlLmFwcGx5KHZvaWQgMCx0KX1mdW5jdGlvbiBkKHQsZSxyLG4saSxhLG8scyl7cmV0dXJuIGZ1bmN0aW9uKGUscixsLGMsdSxmKXtzd2l0Y2goYXJndW1lbnRzLmxlbmd0aCl7Y2FzZSAwOmNhc2UgMTpyZXR1cm4gMDtjYXNlIDI6cmV0dXJuIG4oZSxyKTtjYXNlIDM6cmV0dXJuIGkoZSxyLGwpO2Nhc2UgNDpyZXR1cm4gYShlLHIsbCxjKTtjYXNlIDU6cmV0dXJuIG8oZSxyLGwsYyx1KTtjYXNlIDY6cmV0dXJuIHMoZSxyLGwsYyx1LGYpfWZvcih2YXIgaD1uZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCkscD0wO3A8YXJndW1lbnRzLmxlbmd0aDsrK3ApaFtwXT1hcmd1bWVudHNbcF07cmV0dXJuIHQoaCl9fSFmdW5jdGlvbigpe2Zvcig7aC5sZW5ndGg8PTY7KWgucHVzaChzKGgubGVuZ3RoKSk7ZS5leHBvcnRzPWQuYXBwbHkodm9pZCAwLFtwXS5jb25jYXQoaCkpO2Zvcih2YXIgdD0wO3Q8PTY7Kyt0KWUuZXhwb3J0c1t0XT1oW3RdfSgpfSx7InJvYnVzdC1zY2FsZSI6Mjg2LCJyb2J1c3Qtc3VidHJhY3QiOjI4OCwicm9idXN0LXN1bSI6Mjg5LCJ0d28tcHJvZHVjdCI6MzA2fV0sMjgzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInJvYnVzdC1kZXRlcm1pbmFudCIpO2Z1bmN0aW9uIGkodCl7dmFyIGU9Mj09PXQ/YTozPT09dD9vOjQ9PT10P3M6NT09PXQ/bDpjO3JldHVybiBlKHQ8Nj9uW3RdOm4pfWZ1bmN0aW9uIGEodCl7cmV0dXJuIGZ1bmN0aW9uKGUscil7cmV0dXJuW3QoW1srclswXSwrZVswXVsxXV0sWytyWzFdLCtlWzFdWzFdXV0pLHQoW1srZVswXVswXSwrclswXV0sWytlWzFdWzBdLCtyWzFdXV0pLHQoZSldfX1mdW5jdGlvbiBvKHQpe3JldHVybiBmdW5jdGlvbihlLHIpe3JldHVyblt0KFtbK3JbMF0sK2VbMF1bMV0sK2VbMF1bMl1dLFsrclsxXSwrZVsxXVsxXSwrZVsxXVsyXV0sWytyWzJdLCtlWzJdWzFdLCtlWzJdWzJdXV0pLHQoW1srZVswXVswXSwrclswXSwrZVswXVsyXV0sWytlWzFdWzBdLCtyWzFdLCtlWzFdWzJdXSxbK2VbMl1bMF0sK3JbMl0sK2VbMl1bMl1dXSksdChbWytlWzBdWzBdLCtlWzBdWzFdLCtyWzBdXSxbK2VbMV1bMF0sK2VbMV1bMV0sK3JbMV1dLFsrZVsyXVswXSwrZVsyXVsxXSwrclsyXV1dKSx0KGUpXX19ZnVuY3Rpb24gcyh0KXtyZXR1cm4gZnVuY3Rpb24oZSxyKXtyZXR1cm5bdChbWytyWzBdLCtlWzBdWzFdLCtlWzBdWzJdLCtlWzBdWzNdXSxbK3JbMV0sK2VbMV1bMV0sK2VbMV1bMl0sK2VbMV1bM11dLFsrclsyXSwrZVsyXVsxXSwrZVsyXVsyXSwrZVsyXVszXV0sWytyWzNdLCtlWzNdWzFdLCtlWzNdWzJdLCtlWzNdWzNdXV0pLHQoW1srZVswXVswXSwrclswXSwrZVswXVsyXSwrZVswXVszXV0sWytlWzFdWzBdLCtyWzFdLCtlWzFdWzJdLCtlWzFdWzNdXSxbK2VbMl1bMF0sK3JbMl0sK2VbMl1bMl0sK2VbMl1bM11dLFsrZVszXVswXSwrclszXSwrZVszXVsyXSwrZVszXVszXV1dKSx0KFtbK2VbMF1bMF0sK2VbMF1bMV0sK3JbMF0sK2VbMF1bM11dLFsrZVsxXVswXSwrZVsxXVsxXSwrclsxXSwrZVsxXVszXV0sWytlWzJdWzBdLCtlWzJdWzFdLCtyWzJdLCtlWzJdWzNdXSxbK2VbM11bMF0sK2VbM11bMV0sK3JbM10sK2VbM11bM11dXSksdChbWytlWzBdWzBdLCtlWzBdWzFdLCtlWzBdWzJdLCtyWzBdXSxbK2VbMV1bMF0sK2VbMV1bMV0sK2VbMV1bMl0sK3JbMV1dLFsrZVsyXVswXSwrZVsyXVsxXSwrZVsyXVsyXSwrclsyXV0sWytlWzNdWzBdLCtlWzNdWzFdLCtlWzNdWzJdLCtyWzNdXV0pLHQoZSldfX1mdW5jdGlvbiBsKHQpe3JldHVybiBmdW5jdGlvbihlLHIpe3JldHVyblt0KFtbK3JbMF0sK2VbMF1bMV0sK2VbMF1bMl0sK2VbMF1bM10sK2VbMF1bNF1dLFsrclsxXSwrZVsxXVsxXSwrZVsxXVsyXSwrZVsxXVszXSwrZVsxXVs0XV0sWytyWzJdLCtlWzJdWzFdLCtlWzJdWzJdLCtlWzJdWzNdLCtlWzJdWzRdXSxbK3JbM10sK2VbM11bMV0sK2VbM11bMl0sK2VbM11bM10sK2VbM11bNF1dLFsrcls0XSwrZVs0XVsxXSwrZVs0XVsyXSwrZVs0XVszXSwrZVs0XVs0XV1dKSx0KFtbK2VbMF1bMF0sK3JbMF0sK2VbMF1bMl0sK2VbMF1bM10sK2VbMF1bNF1dLFsrZVsxXVswXSwrclsxXSwrZVsxXVsyXSwrZVsxXVszXSwrZVsxXVs0XV0sWytlWzJdWzBdLCtyWzJdLCtlWzJdWzJdLCtlWzJdWzNdLCtlWzJdWzRdXSxbK2VbM11bMF0sK3JbM10sK2VbM11bMl0sK2VbM11bM10sK2VbM11bNF1dLFsrZVs0XVswXSwrcls0XSwrZVs0XVsyXSwrZVs0XVszXSwrZVs0XVs0XV1dKSx0KFtbK2VbMF1bMF0sK2VbMF1bMV0sK3JbMF0sK2VbMF1bM10sK2VbMF1bNF1dLFsrZVsxXVswXSwrZVsxXVsxXSwrclsxXSwrZVsxXVszXSwrZVsxXVs0XV0sWytlWzJdWzBdLCtlWzJdWzFdLCtyWzJdLCtlWzJdWzNdLCtlWzJdWzRdXSxbK2VbM11bMF0sK2VbM11bMV0sK3JbM10sK2VbM11bM10sK2VbM11bNF1dLFsrZVs0XVswXSwrZVs0XVsxXSwrcls0XSwrZVs0XVszXSwrZVs0XVs0XV1dKSx0KFtbK2VbMF1bMF0sK2VbMF1bMV0sK2VbMF1bMl0sK3JbMF0sK2VbMF1bNF1dLFsrZVsxXVswXSwrZVsxXVsxXSwrZVsxXVsyXSwrclsxXSwrZVsxXVs0XV0sWytlWzJdWzBdLCtlWzJdWzFdLCtlWzJdWzJdLCtyWzJdLCtlWzJdWzRdXSxbK2VbM11bMF0sK2VbM11bMV0sK2VbM11bMl0sK3JbM10sK2VbM11bNF1dLFsrZVs0XVswXSwrZVs0XVsxXSwrZVs0XVsyXSwrcls0XSwrZVs0XVs0XV1dKSx0KFtbK2VbMF1bMF0sK2VbMF1bMV0sK2VbMF1bMl0sK2VbMF1bM10sK3JbMF1dLFsrZVsxXVswXSwrZVsxXVsxXSwrZVsxXVsyXSwrZVsxXVszXSwrclsxXV0sWytlWzJdWzBdLCtlWzJdWzFdLCtlWzJdWzJdLCtlWzJdWzNdLCtyWzJdXSxbK2VbM11bMF0sK2VbM11bMV0sK2VbM11bMl0sK2VbM11bM10sK3JbM11dLFsrZVs0XVswXSwrZVs0XVsxXSwrZVs0XVsyXSwrZVs0XVszXSwrcls0XV1dKSx0KGUpXX19ZnVuY3Rpb24gYyh0KXtyZXR1cm4gZnVuY3Rpb24oZSxyKXtyZXR1cm5bdChbWytyWzBdLCtlWzBdWzFdLCtlWzBdWzJdLCtlWzBdWzNdLCtlWzBdWzRdLCtlWzBdWzVdXSxbK3JbMV0sK2VbMV1bMV0sK2VbMV1bMl0sK2VbMV1bM10sK2VbMV1bNF0sK2VbMV1bNV1dLFsrclsyXSwrZVsyXVsxXSwrZVsyXVsyXSwrZVsyXVszXSwrZVsyXVs0XSwrZVsyXVs1XV0sWytyWzNdLCtlWzNdWzFdLCtlWzNdWzJdLCtlWzNdWzNdLCtlWzNdWzRdLCtlWzNdWzVdXSxbK3JbNF0sK2VbNF1bMV0sK2VbNF1bMl0sK2VbNF1bM10sK2VbNF1bNF0sK2VbNF1bNV1dLFsrcls1XSwrZVs1XVsxXSwrZVs1XVsyXSwrZVs1XVszXSwrZVs1XVs0XSwrZVs1XVs1XV1dKSx0KFtbK2VbMF1bMF0sK3JbMF0sK2VbMF1bMl0sK2VbMF1bM10sK2VbMF1bNF0sK2VbMF1bNV1dLFsrZVsxXVswXSwrclsxXSwrZVsxXVsyXSwrZVsxXVszXSwrZVsxXVs0XSwrZVsxXVs1XV0sWytlWzJdWzBdLCtyWzJdLCtlWzJdWzJdLCtlWzJdWzNdLCtlWzJdWzRdLCtlWzJdWzVdXSxbK2VbM11bMF0sK3JbM10sK2VbM11bMl0sK2VbM11bM10sK2VbM11bNF0sK2VbM11bNV1dLFsrZVs0XVswXSwrcls0XSwrZVs0XVsyXSwrZVs0XVszXSwrZVs0XVs0XSwrZVs0XVs1XV0sWytlWzVdWzBdLCtyWzVdLCtlWzVdWzJdLCtlWzVdWzNdLCtlWzVdWzRdLCtlWzVdWzVdXV0pLHQoW1srZVswXVswXSwrZVswXVsxXSwrclswXSwrZVswXVszXSwrZVswXVs0XSwrZVswXVs1XV0sWytlWzFdWzBdLCtlWzFdWzFdLCtyWzFdLCtlWzFdWzNdLCtlWzFdWzRdLCtlWzFdWzVdXSxbK2VbMl1bMF0sK2VbMl1bMV0sK3JbMl0sK2VbMl1bM10sK2VbMl1bNF0sK2VbMl1bNV1dLFsrZVszXVswXSwrZVszXVsxXSwrclszXSwrZVszXVszXSwrZVszXVs0XSwrZVszXVs1XV0sWytlWzRdWzBdLCtlWzRdWzFdLCtyWzRdLCtlWzRdWzNdLCtlWzRdWzRdLCtlWzRdWzVdXSxbK2VbNV1bMF0sK2VbNV1bMV0sK3JbNV0sK2VbNV1bM10sK2VbNV1bNF0sK2VbNV1bNV1dXSksdChbWytlWzBdWzBdLCtlWzBdWzFdLCtlWzBdWzJdLCtyWzBdLCtlWzBdWzRdLCtlWzBdWzVdXSxbK2VbMV1bMF0sK2VbMV1bMV0sK2VbMV1bMl0sK3JbMV0sK2VbMV1bNF0sK2VbMV1bNV1dLFsrZVsyXVswXSwrZVsyXVsxXSwrZVsyXVsyXSwrclsyXSwrZVsyXVs0XSwrZVsyXVs1XV0sWytlWzNdWzBdLCtlWzNdWzFdLCtlWzNdWzJdLCtyWzNdLCtlWzNdWzRdLCtlWzNdWzVdXSxbK2VbNF1bMF0sK2VbNF1bMV0sK2VbNF1bMl0sK3JbNF0sK2VbNF1bNF0sK2VbNF1bNV1dLFsrZVs1XVswXSwrZVs1XVsxXSwrZVs1XVsyXSwrcls1XSwrZVs1XVs0XSwrZVs1XVs1XV1dKSx0KFtbK2VbMF1bMF0sK2VbMF1bMV0sK2VbMF1bMl0sK2VbMF1bM10sK3JbMF0sK2VbMF1bNV1dLFsrZVsxXVswXSwrZVsxXVsxXSwrZVsxXVsyXSwrZVsxXVszXSwrclsxXSwrZVsxXVs1XV0sWytlWzJdWzBdLCtlWzJdWzFdLCtlWzJdWzJdLCtlWzJdWzNdLCtyWzJdLCtlWzJdWzVdXSxbK2VbM11bMF0sK2VbM11bMV0sK2VbM11bMl0sK2VbM11bM10sK3JbM10sK2VbM11bNV1dLFsrZVs0XVswXSwrZVs0XVsxXSwrZVs0XVsyXSwrZVs0XVszXSwrcls0XSwrZVs0XVs1XV0sWytlWzVdWzBdLCtlWzVdWzFdLCtlWzVdWzJdLCtlWzVdWzNdLCtyWzVdLCtlWzVdWzVdXV0pLHQoW1srZVswXVswXSwrZVswXVsxXSwrZVswXVsyXSwrZVswXVszXSwrZVswXVs0XSwrclswXV0sWytlWzFdWzBdLCtlWzFdWzFdLCtlWzFdWzJdLCtlWzFdWzNdLCtlWzFdWzRdLCtyWzFdXSxbK2VbMl1bMF0sK2VbMl1bMV0sK2VbMl1bMl0sK2VbMl1bM10sK2VbMl1bNF0sK3JbMl1dLFsrZVszXVswXSwrZVszXVsxXSwrZVszXVsyXSwrZVszXVszXSwrZVszXVs0XSwrclszXV0sWytlWzRdWzBdLCtlWzRdWzFdLCtlWzRdWzJdLCtlWzRdWzNdLCtlWzRdWzRdLCtyWzRdXSxbK2VbNV1bMF0sK2VbNV1bMV0sK2VbNV1bMl0sK2VbNV1bM10sK2VbNV1bNF0sK3JbNV1dXSksdChlKV19fXZhciB1PVtmdW5jdGlvbigpe3JldHVybltbMF1dfSxmdW5jdGlvbih0LGUpe3JldHVybltbZVswXV0sW3RbMF1bMF1dXX1dO2Z1bmN0aW9uIGYodCxlLHIsbixpLGEsbyxzKXtyZXR1cm4gZnVuY3Rpb24obCxjKXtzd2l0Y2gobC5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4gdChsLGMpO2Nhc2UgMTpyZXR1cm4gZShsLGMpO2Nhc2UgMjpyZXR1cm4gcihsLGMpO2Nhc2UgMzpyZXR1cm4gbihsLGMpO2Nhc2UgNDpyZXR1cm4gaShsLGMpO2Nhc2UgNTpyZXR1cm4gYShsLGMpfXZhciB1PW9bbC5sZW5ndGhdO3JldHVybiB1fHwodT1vW2wubGVuZ3RoXT1zKGwubGVuZ3RoKSksdShsLGMpfX0hZnVuY3Rpb24oKXtmb3IoO3UubGVuZ3RoPDY7KXUucHVzaChpKHUubGVuZ3RoKSk7ZS5leHBvcnRzPWYuYXBwbHkodm9pZCAwLHUuY29uY2F0KFt1LGldKSk7Zm9yKHZhciB0PTA7dDw2OysrdCllLmV4cG9ydHNbdF09dVt0XX0oKX0seyJyb2J1c3QtZGV0ZXJtaW5hbnQiOjI4MH1dLDI4NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJ0d28tcHJvZHVjdCIpLGk9dCgicm9idXN0LXN1bSIpLGE9dCgicm9idXN0LXNjYWxlIiksbz10KCJyb2J1c3Qtc3VidHJhY3QiKTtmdW5jdGlvbiBzKHQsZSxyLG4pe3JldHVybiBmdW5jdGlvbihyLGksYSl7dmFyIG89dCh0KGUoaVsxXSxhWzBdKSxlKC1hWzFdLGlbMF0pKSx0KGUoclsxXSxpWzBdKSxlKC1pWzFdLHJbMF0pKSkscz10KGUoclsxXSxhWzBdKSxlKC1hWzFdLHJbMF0pKSxsPW4obyxzKTtyZXR1cm4gbFtsLmxlbmd0aC0xXX19ZnVuY3Rpb24gbCh0LGUscixuKXtyZXR1cm4gZnVuY3Rpb24oaSxhLG8scyl7dmFyIGw9dCh0KHIodChlKG9bMV0sc1swXSksZSgtc1sxXSxvWzBdKSksYVsyXSksdChyKHQoZShhWzFdLHNbMF0pLGUoLXNbMV0sYVswXSkpLC1vWzJdKSxyKHQoZShhWzFdLG9bMF0pLGUoLW9bMV0sYVswXSkpLHNbMl0pKSksdChyKHQoZShhWzFdLHNbMF0pLGUoLXNbMV0sYVswXSkpLGlbMl0pLHQocih0KGUoaVsxXSxzWzBdKSxlKC1zWzFdLGlbMF0pKSwtYVsyXSkscih0KGUoaVsxXSxhWzBdKSxlKC1hWzFdLGlbMF0pKSxzWzJdKSkpKSxjPXQodChyKHQoZShvWzFdLHNbMF0pLGUoLXNbMV0sb1swXSkpLGlbMl0pLHQocih0KGUoaVsxXSxzWzBdKSxlKC1zWzFdLGlbMF0pKSwtb1syXSkscih0KGUoaVsxXSxvWzBdKSxlKC1vWzFdLGlbMF0pKSxzWzJdKSkpLHQocih0KGUoYVsxXSxvWzBdKSxlKC1vWzFdLGFbMF0pKSxpWzJdKSx0KHIodChlKGlbMV0sb1swXSksZSgtb1sxXSxpWzBdKSksLWFbMl0pLHIodChlKGlbMV0sYVswXSksZSgtYVsxXSxpWzBdKSksb1syXSkpKSksdT1uKGwsYyk7cmV0dXJuIHVbdS5sZW5ndGgtMV19fWZ1bmN0aW9uIGModCxlLHIsbil7cmV0dXJuIGZ1bmN0aW9uKGksYSxvLHMsbCl7dmFyIGM9dCh0KHQocih0KHIodChlKHNbMV0sbFswXSksZSgtbFsxXSxzWzBdKSksb1syXSksdChyKHQoZShvWzFdLGxbMF0pLGUoLWxbMV0sb1swXSkpLC1zWzJdKSxyKHQoZShvWzFdLHNbMF0pLGUoLXNbMV0sb1swXSkpLGxbMl0pKSksYVszXSksdChyKHQocih0KGUoc1sxXSxsWzBdKSxlKC1sWzFdLHNbMF0pKSxhWzJdKSx0KHIodChlKGFbMV0sbFswXSksZSgtbFsxXSxhWzBdKSksLXNbMl0pLHIodChlKGFbMV0sc1swXSksZSgtc1sxXSxhWzBdKSksbFsyXSkpKSwtb1szXSkscih0KHIodChlKG9bMV0sbFswXSksZSgtbFsxXSxvWzBdKSksYVsyXSksdChyKHQoZShhWzFdLGxbMF0pLGUoLWxbMV0sYVswXSkpLC1vWzJdKSxyKHQoZShhWzFdLG9bMF0pLGUoLW9bMV0sYVswXSkpLGxbMl0pKSksc1szXSkpKSx0KHIodChyKHQoZShvWzFdLHNbMF0pLGUoLXNbMV0sb1swXSkpLGFbMl0pLHQocih0KGUoYVsxXSxzWzBdKSxlKC1zWzFdLGFbMF0pKSwtb1syXSkscih0KGUoYVsxXSxvWzBdKSxlKC1vWzFdLGFbMF0pKSxzWzJdKSkpLC1sWzNdKSx0KHIodChyKHQoZShzWzFdLGxbMF0pLGUoLWxbMV0sc1swXSkpLGFbMl0pLHQocih0KGUoYVsxXSxsWzBdKSxlKC1sWzFdLGFbMF0pKSwtc1syXSkscih0KGUoYVsxXSxzWzBdKSxlKC1zWzFdLGFbMF0pKSxsWzJdKSkpLGlbM10pLHIodChyKHQoZShzWzFdLGxbMF0pLGUoLWxbMV0sc1swXSkpLGlbMl0pLHQocih0KGUoaVsxXSxsWzBdKSxlKC1sWzFdLGlbMF0pKSwtc1syXSkscih0KGUoaVsxXSxzWzBdKSxlKC1zWzFdLGlbMF0pKSxsWzJdKSkpLC1hWzNdKSkpKSx0KHQocih0KHIodChlKGFbMV0sbFswXSksZSgtbFsxXSxhWzBdKSksaVsyXSksdChyKHQoZShpWzFdLGxbMF0pLGUoLWxbMV0saVswXSkpLC1hWzJdKSxyKHQoZShpWzFdLGFbMF0pLGUoLWFbMV0saVswXSkpLGxbMl0pKSksc1szXSksdChyKHQocih0KGUoYVsxXSxzWzBdKSxlKC1zWzFdLGFbMF0pKSxpWzJdKSx0KHIodChlKGlbMV0sc1swXSksZSgtc1sxXSxpWzBdKSksLWFbMl0pLHIodChlKGlbMV0sYVswXSksZSgtYVsxXSxpWzBdKSksc1syXSkpKSwtbFszXSkscih0KHIodChlKG9bMV0sc1swXSksZSgtc1sxXSxvWzBdKSksYVsyXSksdChyKHQoZShhWzFdLHNbMF0pLGUoLXNbMV0sYVswXSkpLC1vWzJdKSxyKHQoZShhWzFdLG9bMF0pLGUoLW9bMV0sYVswXSkpLHNbMl0pKSksaVszXSkpKSx0KHIodChyKHQoZShvWzFdLHNbMF0pLGUoLXNbMV0sb1swXSkpLGlbMl0pLHQocih0KGUoaVsxXSxzWzBdKSxlKC1zWzFdLGlbMF0pKSwtb1syXSkscih0KGUoaVsxXSxvWzBdKSxlKC1vWzFdLGlbMF0pKSxzWzJdKSkpLC1hWzNdKSx0KHIodChyKHQoZShhWzFdLHNbMF0pLGUoLXNbMV0sYVswXSkpLGlbMl0pLHQocih0KGUoaVsxXSxzWzBdKSxlKC1zWzFdLGlbMF0pKSwtYVsyXSkscih0KGUoaVsxXSxhWzBdKSxlKC1hWzFdLGlbMF0pKSxzWzJdKSkpLG9bM10pLHIodChyKHQoZShhWzFdLG9bMF0pLGUoLW9bMV0sYVswXSkpLGlbMl0pLHQocih0KGUoaVsxXSxvWzBdKSxlKC1vWzFdLGlbMF0pKSwtYVsyXSkscih0KGUoaVsxXSxhWzBdKSxlKC1hWzFdLGlbMF0pKSxvWzJdKSkpLC1zWzNdKSkpKSksdT10KHQodChyKHQocih0KGUoc1sxXSxsWzBdKSxlKC1sWzFdLHNbMF0pKSxvWzJdKSx0KHIodChlKG9bMV0sbFswXSksZSgtbFsxXSxvWzBdKSksLXNbMl0pLHIodChlKG9bMV0sc1swXSksZSgtc1sxXSxvWzBdKSksbFsyXSkpKSxpWzNdKSxyKHQocih0KGUoc1sxXSxsWzBdKSxlKC1sWzFdLHNbMF0pKSxpWzJdKSx0KHIodChlKGlbMV0sbFswXSksZSgtbFsxXSxpWzBdKSksLXNbMl0pLHIodChlKGlbMV0sc1swXSksZSgtc1sxXSxpWzBdKSksbFsyXSkpKSwtb1szXSkpLHQocih0KHIodChlKG9bMV0sbFswXSksZSgtbFsxXSxvWzBdKSksaVsyXSksdChyKHQoZShpWzFdLGxbMF0pLGUoLWxbMV0saVswXSkpLC1vWzJdKSxyKHQoZShpWzFdLG9bMF0pLGUoLW9bMV0saVswXSkpLGxbMl0pKSksc1szXSkscih0KHIodChlKG9bMV0sc1swXSksZSgtc1sxXSxvWzBdKSksaVsyXSksdChyKHQoZShpWzFdLHNbMF0pLGUoLXNbMV0saVswXSkpLC1vWzJdKSxyKHQoZShpWzFdLG9bMF0pLGUoLW9bMV0saVswXSkpLHNbMl0pKSksLWxbM10pKSksdCh0KHIodChyKHQoZShvWzFdLGxbMF0pLGUoLWxbMV0sb1swXSkpLGFbMl0pLHQocih0KGUoYVsxXSxsWzBdKSxlKC1sWzFdLGFbMF0pKSwtb1syXSkscih0KGUoYVsxXSxvWzBdKSxlKC1vWzFdLGFbMF0pKSxsWzJdKSkpLGlbM10pLHIodChyKHQoZShvWzFdLGxbMF0pLGUoLWxbMV0sb1swXSkpLGlbMl0pLHQocih0KGUoaVsxXSxsWzBdKSxlKC1sWzFdLGlbMF0pKSwtb1syXSkscih0KGUoaVsxXSxvWzBdKSxlKC1vWzFdLGlbMF0pKSxsWzJdKSkpLC1hWzNdKSksdChyKHQocih0KGUoYVsxXSxsWzBdKSxlKC1sWzFdLGFbMF0pKSxpWzJdKSx0KHIodChlKGlbMV0sbFswXSksZSgtbFsxXSxpWzBdKSksLWFbMl0pLHIodChlKGlbMV0sYVswXSksZSgtYVsxXSxpWzBdKSksbFsyXSkpKSxvWzNdKSxyKHQocih0KGUoYVsxXSxvWzBdKSxlKC1vWzFdLGFbMF0pKSxpWzJdKSx0KHIodChlKGlbMV0sb1swXSksZSgtb1sxXSxpWzBdKSksLWFbMl0pLHIodChlKGlbMV0sYVswXSksZSgtYVsxXSxpWzBdKSksb1syXSkpKSwtbFszXSkpKSksZj1uKGMsdSk7cmV0dXJuIGZbZi5sZW5ndGgtMV19fWZ1bmN0aW9uIHUodCl7cmV0dXJuKDM9PT10P3M6ND09PXQ/bDpjKShpLG4sYSxvKX12YXIgZj11KDMpLGg9dSg0KSxwPVtmdW5jdGlvbigpe3JldHVybiAwfSxmdW5jdGlvbigpe3JldHVybiAwfSxmdW5jdGlvbih0LGUpe3JldHVybiBlWzBdLXRbMF19LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbixpPSh0WzFdLXJbMV0pKihlWzBdLXJbMF0pLGE9KHRbMF0tclswXSkqKGVbMV0tclsxXSksbz1pLWE7aWYoaT4wKXtpZihhPD0wKXJldHVybiBvO249aSthfWVsc2V7aWYoIShpPDApKXJldHVybiBvO2lmKGE+PTApcmV0dXJuIG87bj0tKGkrYSl9dmFyIHM9MzMzMDY2OTA3Mzg3NTQ3MTZlLTMyKm47cmV0dXJuIG8+PXN8fG88PS1zP286Zih0LGUscil9LGZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPXRbMF0tblswXSxhPWVbMF0tblswXSxvPXJbMF0tblswXSxzPXRbMV0tblsxXSxsPWVbMV0tblsxXSxjPXJbMV0tblsxXSx1PXRbMl0tblsyXSxmPWVbMl0tblsyXSxwPXJbMl0tblsyXSxkPWEqYyxtPW8qbCxnPW8qcyx2PWkqYyx5PWkqbCx4PWEqcyxiPXUqKGQtbSkrZiooZy12KStwKih5LXgpLF89Nzc3MTU2MTE3MjM3NjEwM2UtMzEqKChNYXRoLmFicyhkKStNYXRoLmFicyhtKSkqTWF0aC5hYnModSkrKE1hdGguYWJzKGcpK01hdGguYWJzKHYpKSpNYXRoLmFicyhmKSsoTWF0aC5hYnMoeSkrTWF0aC5hYnMoeCkpKk1hdGguYWJzKHApKTtyZXR1cm4gYj5ffHwtYj5fP2I6aCh0LGUscixuKX1dO2Z1bmN0aW9uIGQodCl7dmFyIGU9cFt0Lmxlbmd0aF07cmV0dXJuIGV8fChlPXBbdC5sZW5ndGhdPXUodC5sZW5ndGgpKSxlLmFwcGx5KHZvaWQgMCx0KX1mdW5jdGlvbiBtKHQsZSxyLG4saSxhLG8pe3JldHVybiBmdW5jdGlvbihlLHIscyxsLGMpe3N3aXRjaChhcmd1bWVudHMubGVuZ3RoKXtjYXNlIDA6Y2FzZSAxOnJldHVybiAwO2Nhc2UgMjpyZXR1cm4gbihlLHIpO2Nhc2UgMzpyZXR1cm4gaShlLHIscyk7Y2FzZSA0OnJldHVybiBhKGUscixzLGwpO2Nhc2UgNTpyZXR1cm4gbyhlLHIscyxsLGMpfWZvcih2YXIgdT1uZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCksZj0wO2Y8YXJndW1lbnRzLmxlbmd0aDsrK2YpdVtmXT1hcmd1bWVudHNbZl07cmV0dXJuIHQodSl9fSFmdW5jdGlvbigpe2Zvcig7cC5sZW5ndGg8PTU7KXAucHVzaCh1KHAubGVuZ3RoKSk7ZS5leHBvcnRzPW0uYXBwbHkodm9pZCAwLFtkXS5jb25jYXQocCkpO2Zvcih2YXIgdD0wO3Q8PTU7Kyt0KWUuZXhwb3J0c1t0XT1wW3RdfSgpfSx7InJvYnVzdC1zY2FsZSI6Mjg2LCJyb2J1c3Qtc3VidHJhY3QiOjI4OCwicm9idXN0LXN1bSI6Mjg5LCJ0d28tcHJvZHVjdCI6MzA2fV0sMjg1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInJvYnVzdC1zdW0iKSxpPXQoInJvYnVzdC1zY2FsZSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2lmKDE9PT10Lmxlbmd0aClyZXR1cm4gaShlLHRbMF0pO2lmKDE9PT1lLmxlbmd0aClyZXR1cm4gaSh0LGVbMF0pO2lmKDA9PT10Lmxlbmd0aHx8MD09PWUubGVuZ3RoKXJldHVyblswXTt2YXIgcj1bMF07aWYodC5sZW5ndGg8ZS5sZW5ndGgpZm9yKHZhciBhPTA7YTx0Lmxlbmd0aDsrK2Epcj1uKHIsaShlLHRbYV0pKTtlbHNlIGZvcihhPTA7YTxlLmxlbmd0aDsrK2Epcj1uKHIsaSh0LGVbYV0pKTtyZXR1cm4gcn19LHsicm9idXN0LXNjYWxlIjoyODYsInJvYnVzdC1zdW0iOjI4OX1dLDI4NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJ0d28tcHJvZHVjdCIpLGk9dCgidHdvLXN1bSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPXQubGVuZ3RoO2lmKDE9PT1yKXt2YXIgYT1uKHRbMF0sZSk7cmV0dXJuIGFbMF0/YTpbYVsxXV19dmFyIG89bmV3IEFycmF5KDIqcikscz1bLjEsLjFdLGw9Wy4xLC4xXSxjPTA7bih0WzBdLGUscyksc1swXSYmKG9bYysrXT1zWzBdKTtmb3IodmFyIHU9MTt1PHI7Kyt1KXtuKHRbdV0sZSxsKTt2YXIgZj1zWzFdO2koZixsWzBdLHMpLHNbMF0mJihvW2MrK109c1swXSk7dmFyIGg9bFsxXSxwPXNbMV0sZD1oK3AsbT1wLShkLWgpO3NbMV09ZCxtJiYob1tjKytdPW0pfXNbMV0mJihvW2MrK109c1sxXSk7MD09PWMmJihvW2MrK109MCk7cmV0dXJuIG8ubGVuZ3RoPWMsb319LHsidHdvLXByb2R1Y3QiOjMwNiwidHdvLXN1bSI6MzA3fV0sMjg3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixpKXt2YXIgYT1uKHQscixpKSxvPW4oZSxyLGkpO2lmKGE+MCYmbz4wfHxhPDAmJm88MClyZXR1cm4hMTt2YXIgcz1uKHIsdCxlKSxsPW4oaSx0LGUpO2lmKHM+MCYmbD4wfHxzPDAmJmw8MClyZXR1cm4hMTtpZigwPT09YSYmMD09PW8mJjA9PT1zJiYwPT09bClyZXR1cm4gZnVuY3Rpb24odCxlLHIsbil7Zm9yKHZhciBpPTA7aTwyOysraSl7dmFyIGE9dFtpXSxvPWVbaV0scz1NYXRoLm1pbihhLG8pLGw9TWF0aC5tYXgoYSxvKSxjPXJbaV0sdT1uW2ldLGY9TWF0aC5taW4oYyx1KTtpZihNYXRoLm1heChjLHUpPHN8fGw8ZilyZXR1cm4hMX1yZXR1cm4hMH0odCxlLHIsaSk7cmV0dXJuITB9O3ZhciBuPXQoInJvYnVzdC1vcmllbnRhdGlvbiIpWzNdfSx7InJvYnVzdC1vcmllbnRhdGlvbiI6Mjg0fV0sMjg4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPTB8dC5sZW5ndGgsbj0wfGUubGVuZ3RoO2lmKDE9PT1yJiYxPT09bilyZXR1cm4gZnVuY3Rpb24odCxlKXt2YXIgcj10K2Usbj1yLXQsaT10LShyLW4pKyhlLW4pO2lmKGkpcmV0dXJuW2kscl07cmV0dXJuW3JdfSh0WzBdLC1lWzBdKTt2YXIgaSxhLG89bmV3IEFycmF5KHIrbikscz0wLGw9MCxjPTAsdT1NYXRoLmFicyxmPXRbbF0saD11KGYpLHA9LWVbY10sZD11KHApO2g8ZD8oYT1mLChsKz0xKTxyJiYoZj10W2xdLGg9dShmKSkpOihhPXAsKGMrPTEpPG4mJihwPS1lW2NdLGQ9dShwKSkpO2w8ciYmaDxkfHxjPj1uPyhpPWYsKGwrPTEpPHImJihmPXRbbF0saD11KGYpKSk6KGk9cCwoYys9MSk8biYmKHA9LWVbY10sZD11KHApKSk7dmFyIG0sZyx2PWkrYSx5PXYtaSx4PWEteSxiPXgsXz12O2Zvcig7bDxyJiZjPG47KWg8ZD8oaT1mLChsKz0xKTxyJiYoZj10W2xdLGg9dShmKSkpOihpPXAsKGMrPTEpPG4mJihwPS1lW2NdLGQ9dShwKSkpLCh4PShhPWIpLSh5PSh2PWkrYSktaSkpJiYob1tzKytdPXgpLGI9Xy0oKG09Xyt2KS0oZz1tLV8pKSsodi1nKSxfPW07Zm9yKDtsPHI7KSh4PShhPWIpLSh5PSh2PShpPWYpK2EpLWkpKSYmKG9bcysrXT14KSxiPV8tKChtPV8rdiktKGc9bS1fKSkrKHYtZyksXz1tLChsKz0xKTxyJiYoZj10W2xdKTtmb3IoO2M8bjspKHg9KGE9YiktKHk9KHY9KGk9cCkrYSktaSkpJiYob1tzKytdPXgpLGI9Xy0oKG09Xyt2KS0oZz1tLV8pKSsodi1nKSxfPW0sKGMrPTEpPG4mJihwPS1lW2NdKTtiJiYob1tzKytdPWIpO18mJihvW3MrK109Xyk7c3x8KG9bcysrXT0wKTtyZXR1cm4gby5sZW5ndGg9cyxvfX0se31dLDI4OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj0wfHQubGVuZ3RoLG49MHxlLmxlbmd0aDtpZigxPT09ciYmMT09PW4pcmV0dXJuIGZ1bmN0aW9uKHQsZSl7dmFyIHI9dCtlLG49ci10LGk9dC0oci1uKSsoZS1uKTtpZihpKXJldHVybltpLHJdO3JldHVybltyXX0odFswXSxlWzBdKTt2YXIgaSxhLG89bmV3IEFycmF5KHIrbikscz0wLGw9MCxjPTAsdT1NYXRoLmFicyxmPXRbbF0saD11KGYpLHA9ZVtjXSxkPXUocCk7aDxkPyhhPWYsKGwrPTEpPHImJihmPXRbbF0saD11KGYpKSk6KGE9cCwoYys9MSk8biYmKHA9ZVtjXSxkPXUocCkpKTtsPHImJmg8ZHx8Yz49bj8oaT1mLChsKz0xKTxyJiYoZj10W2xdLGg9dShmKSkpOihpPXAsKGMrPTEpPG4mJihwPWVbY10sZD11KHApKSk7dmFyIG0sZyx2PWkrYSx5PXYtaSx4PWEteSxiPXgsXz12O2Zvcig7bDxyJiZjPG47KWg8ZD8oaT1mLChsKz0xKTxyJiYoZj10W2xdLGg9dShmKSkpOihpPXAsKGMrPTEpPG4mJihwPWVbY10sZD11KHApKSksKHg9KGE9YiktKHk9KHY9aSthKS1pKSkmJihvW3MrK109eCksYj1fLSgobT1fK3YpLShnPW0tXykpKyh2LWcpLF89bTtmb3IoO2w8cjspKHg9KGE9YiktKHk9KHY9KGk9ZikrYSktaSkpJiYob1tzKytdPXgpLGI9Xy0oKG09Xyt2KS0oZz1tLV8pKSsodi1nKSxfPW0sKGwrPTEpPHImJihmPXRbbF0pO2Zvcig7YzxuOykoeD0oYT1iKS0oeT0odj0oaT1wKSthKS1pKSkmJihvW3MrK109eCksYj1fLSgobT1fK3YpLShnPW0tXykpKyh2LWcpLF89bSwoYys9MSk8biYmKHA9ZVtjXSk7YiYmKG9bcysrXT1iKTtfJiYob1tzKytdPV8pO3N8fChvW3MrK109MCk7cmV0dXJuIG8ubGVuZ3RoPXMsb319LHt9XSwyOTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBpKG4odCkpfTt2YXIgbj10KCJib3VuZGFyeS1jZWxscyIpLGk9dCgicmVkdWNlLXNpbXBsaWNpYWwtY29tcGxleCIpfSx7ImJvdW5kYXJ5LWNlbGxzIjozNCwicmVkdWNlLXNpbXBsaWNpYWwtY29tcGxleCI6Mjc2fV0sMjkxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixzKXtyPXJ8fDAsdm9pZCAwPT09cyYmKHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQubGVuZ3RoLHI9MCxuPTA7bjxlOysrbilyPTB8TWF0aC5tYXgocix0W25dLmxlbmd0aCk7cmV0dXJuIHItMX0odCkpO2lmKDA9PT10Lmxlbmd0aHx8czwxKXJldHVybntjZWxsczpbXSx2ZXJ0ZXhJZHM6W10sdmVydGV4V2VpZ2h0czpbXX07dmFyIGw9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5sZW5ndGgsbj1pLm1hbGxvY1VpbnQ4KHIpLGE9MDthPHI7KythKW5bYV09dFthXTxlfDA7cmV0dXJuIG59KGUsK3IpLGM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5sZW5ndGgsbz1lKihlKzEpLzIqcnwwLHM9aS5tYWxsb2NVaW50MzIoMipvKSxsPTAsYz0wO2M8cjsrK2MpZm9yKHZhciB1PXRbY10sZj0oZT11Lmxlbmd0aCwwKTtmPGU7KytmKWZvcih2YXIgaD0wO2g8ZjsrK2gpe3ZhciBwPXVbaF0sZD11W2ZdO3NbbCsrXT0wfE1hdGgubWluKHAsZCksc1tsKytdPTB8TWF0aC5tYXgocCxkKX1hKG4ocyxbbC8yfDAsMl0pKTt2YXIgbT0yO2ZvcihjPTI7YzxsO2MrPTIpc1tjLTJdPT09c1tjXSYmc1tjLTFdPT09c1tjKzFdfHwoc1ttKytdPXNbY10sc1ttKytdPXNbYysxXSk7cmV0dXJuIG4ocyxbbS8yfDAsMl0pfSh0LHMpLHU9ZnVuY3Rpb24odCxlLHIsYSl7Zm9yKHZhciBvPXQuZGF0YSxzPXQuc2hhcGVbMF0sbD1pLm1hbGxvY0RvdWJsZShzKSxjPTAsdT0wO3U8czsrK3Upe3ZhciBmPW9bMip1XSxoPW9bMip1KzFdO2lmKHJbZl0hPT1yW2hdKXt2YXIgcD1lW2ZdLGQ9ZVtoXTtvWzIqY109ZixvWzIqYysxXT1oLGxbYysrXT0oZC1hKS8oZC1wKX19cmV0dXJuIHQuc2hhcGVbMF09YyxuKGwsW2NdKX0oYyxlLGwsK3IpLGY9ZnVuY3Rpb24odCxlKXt2YXIgcj1pLm1hbGxvY0ludDMyKDIqZSksbj10LnNoYXBlWzBdLGE9dC5kYXRhO3JbMF09MDtmb3IodmFyIG89MCxzPTA7czxuOysrcyl7dmFyIGw9YVsyKnNdO2lmKGwhPT1vKXtmb3IoclsyKm8rMV09czsrK288bDspclsyKm9dPXMsclsyKm8rMV09cztyWzIqb109c319clsyKm8rMV09bjtmb3IoOysrbzxlOylyWzIqb109clsyKm8rMV09bjtyZXR1cm4gcn0oYywwfGUubGVuZ3RoKSxoPW8ocykodCxjLmRhdGEsZixsKSxwPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wfHQuc2hhcGVbMF0scj10LmRhdGEsbj1uZXcgQXJyYXkoZSksaT0wO2k8ZTsrK2kpbltpXT1bclsyKmldLHJbMippKzFdXTtyZXR1cm4gbn0oYyksZD1bXS5zbGljZS5jYWxsKHUuZGF0YSwwLHUuc2hhcGVbMF0pO3JldHVybiBpLmZyZWUobCksaS5mcmVlKGMuZGF0YSksaS5mcmVlKHUuZGF0YSksaS5mcmVlKGYpLHtjZWxsczpoLHZlcnRleElkczpwLHZlcnRleFdlaWdodHM6ZH19O3ZhciBuPXQoIm5kYXJyYXkiKSxpPXQoInR5cGVkYXJyYXktcG9vbCIpLGE9dCgibmRhcnJheS1zb3J0Iiksbz10KCIuL2xpYi9jb2RlZ2VuIil9LHsiLi9saWIvY29kZWdlbiI6MjkyLG5kYXJyYXk6MjU5LCJuZGFycmF5LXNvcnQiOjI1OCwidHlwZWRhcnJheS1wb29sIjozMDh9XSwyOTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBuW3RdKCl9O3ZhciBuPVtmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0LGUscixuKXtmb3IodmFyIGk9dC5sZW5ndGgsYT0wO2E8aTsrK2EpdFthXS5sZW5ndGg7cmV0dXJuW119fSxmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLHIsbil7Zm9yKHZhciBpPTB8TWF0aC5taW4ocixuKSxhPTB8TWF0aC5tYXgocixuKSxvPXRbMippXSxzPXRbMippKzFdO288czspe3ZhciBsPW8rcz4+MSxjPWVbMipsKzFdO2lmKGM9PT1hKXJldHVybiBsO2E8Yz9zPWw6bz1sKzF9cmV0dXJuIG99cmV0dXJuIGZ1bmN0aW9uKGUscixuLGkpe2Zvcih2YXIgYT1lLmxlbmd0aCxvPVtdLHM9MDtzPGE7KytzKXt2YXIgbD1lW3NdO2lmKDI9PT1sLmxlbmd0aCl7dmFyIGM9KGlbbFswXV08PDApKyhpW2xbMV1dPDwxKTtpZigwPT09Y3x8Mz09PWMpY29udGludWU7c3dpdGNoKGMpe2Nhc2UgMDpicmVhaztjYXNlIDE6by5wdXNoKFt0KG4scixsWzBdLGxbMV0pXSk7YnJlYWs7Y2FzZSAyOm8ucHVzaChbdChuLHIsbFsxXSxsWzBdKV0pfX19cmV0dXJuIG99fSxmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLHIsbil7Zm9yKHZhciBpPTB8TWF0aC5taW4ocixuKSxhPTB8TWF0aC5tYXgocixuKSxvPXRbMippXSxzPXRbMippKzFdO288czspe3ZhciBsPW8rcz4+MSxjPWVbMipsKzFdO2lmKGM9PT1hKXJldHVybiBsO2E8Yz9zPWw6bz1sKzF9cmV0dXJuIG99cmV0dXJuIGZ1bmN0aW9uKGUscixuLGkpe2Zvcih2YXIgYT1lLmxlbmd0aCxvPVtdLHM9MDtzPGE7KytzKXt2YXIgbD1lW3NdLGM9bC5sZW5ndGg7aWYoMz09PWMpe2lmKDA9PT0odT0oaVtsWzBdXTw8MCkrKGlbbFsxXV08PDEpKyhpW2xbMl1dPDwyKSl8fDc9PT11KWNvbnRpbnVlO3N3aXRjaCh1KXtjYXNlIDA6YnJlYWs7Y2FzZSAxOm8ucHVzaChbdChuLHIsbFswXSxsWzJdKSx0KG4scixsWzBdLGxbMV0pXSk7YnJlYWs7Y2FzZSAyOm8ucHVzaChbdChuLHIsbFsxXSxsWzBdKSx0KG4scixsWzFdLGxbMl0pXSk7YnJlYWs7Y2FzZSAzOm8ucHVzaChbdChuLHIsbFswXSxsWzJdKSx0KG4scixsWzFdLGxbMl0pXSk7YnJlYWs7Y2FzZSA0Om8ucHVzaChbdChuLHIsbFsyXSxsWzFdKSx0KG4scixsWzJdLGxbMF0pXSk7YnJlYWs7Y2FzZSA1Om8ucHVzaChbdChuLHIsbFsyXSxsWzFdKSx0KG4scixsWzBdLGxbMV0pXSk7YnJlYWs7Y2FzZSA2Om8ucHVzaChbdChuLHIsbFsxXSxsWzBdKSx0KG4scixsWzJdLGxbMF0pXSl9fWVsc2UgaWYoMj09PWMpe3ZhciB1O2lmKDA9PT0odT0oaVtsWzBdXTw8MCkrKGlbbFsxXV08PDEpKXx8Mz09PXUpY29udGludWU7c3dpdGNoKHUpe2Nhc2UgMDpicmVhaztjYXNlIDE6by5wdXNoKFt0KG4scixsWzBdLGxbMV0pXSk7YnJlYWs7Y2FzZSAyOm8ucHVzaChbdChuLHIsbFsxXSxsWzBdKV0pfX19cmV0dXJuIG99fSxmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLHIsbil7Zm9yKHZhciBpPTB8TWF0aC5taW4ocixuKSxhPTB8TWF0aC5tYXgocixuKSxvPXRbMippXSxzPXRbMippKzFdO288czspe3ZhciBsPW8rcz4+MSxjPWVbMipsKzFdO2lmKGM9PT1hKXJldHVybiBsO2E8Yz9zPWw6bz1sKzF9cmV0dXJuIG99cmV0dXJuIGZ1bmN0aW9uKGUscixuLGkpe2Zvcih2YXIgYT1lLmxlbmd0aCxvPVtdLHM9MDtzPGE7KytzKXt2YXIgbD1lW3NdLGM9bC5sZW5ndGg7aWYoND09PWMpe2lmKDA9PT0odT0oaVtsWzBdXTw8MCkrKGlbbFsxXV08PDEpKyhpW2xbMl1dPDwyKSsoaVtsWzNdXTw8MykpfHwxNT09PXUpY29udGludWU7c3dpdGNoKHUpe2Nhc2UgMDpicmVhaztjYXNlIDE6by5wdXNoKFt0KG4scixsWzBdLGxbMV0pLHQobixyLGxbMF0sbFsyXSksdChuLHIsbFswXSxsWzNdKV0pO2JyZWFrO2Nhc2UgMjpvLnB1c2goW3QobixyLGxbMV0sbFsyXSksdChuLHIsbFsxXSxsWzBdKSx0KG4scixsWzFdLGxbM10pXSk7YnJlYWs7Y2FzZSAzOm8ucHVzaChbdChuLHIsbFsxXSxsWzJdKSx0KG4scixsWzBdLGxbMl0pLHQobixyLGxbMF0sbFszXSldLFt0KG4scixsWzFdLGxbM10pLHQobixyLGxbMV0sbFsyXSksdChuLHIsbFswXSxsWzNdKV0pO2JyZWFrO2Nhc2UgNDpvLnB1c2goW3QobixyLGxbMl0sbFswXSksdChuLHIsbFsyXSxsWzFdKSx0KG4scixsWzJdLGxbM10pXSk7YnJlYWs7Y2FzZSA1Om8ucHVzaChbdChuLHIsbFswXSxsWzFdKSx0KG4scixsWzJdLGxbMV0pLHQobixyLGxbMF0sbFszXSldLFt0KG4scixsWzJdLGxbMV0pLHQobixyLGxbMl0sbFszXSksdChuLHIsbFswXSxsWzNdKV0pO2JyZWFrO2Nhc2UgNjpvLnB1c2goW3QobixyLGxbMl0sbFswXSksdChuLHIsbFsxXSxsWzBdKSx0KG4scixsWzFdLGxbM10pXSxbdChuLHIsbFsyXSxsWzNdKSx0KG4scixsWzJdLGxbMF0pLHQobixyLGxbMV0sbFszXSldKTticmVhaztjYXNlIDc6by5wdXNoKFt0KG4scixsWzBdLGxbM10pLHQobixyLGxbMV0sbFszXSksdChuLHIsbFsyXSxsWzNdKV0pO2JyZWFrO2Nhc2UgODpvLnB1c2goW3QobixyLGxbM10sbFsxXSksdChuLHIsbFszXSxsWzBdKSx0KG4scixsWzNdLGxbMl0pXSk7YnJlYWs7Y2FzZSA5Om8ucHVzaChbdChuLHIsbFszXSxsWzFdKSx0KG4scixsWzBdLGxbMV0pLHQobixyLGxbMF0sbFsyXSldLFt0KG4scixsWzNdLGxbMl0pLHQobixyLGxbM10sbFsxXSksdChuLHIsbFswXSxsWzJdKV0pO2JyZWFrO2Nhc2UgMTA6by5wdXNoKFt0KG4scixsWzFdLGxbMF0pLHQobixyLGxbM10sbFswXSksdChuLHIsbFsxXSxsWzJdKV0sW3QobixyLGxbM10sbFswXSksdChuLHIsbFszXSxsWzJdKSx0KG4scixsWzFdLGxbMl0pXSk7YnJlYWs7Y2FzZSAxMTpvLnB1c2goW3QobixyLGxbMV0sbFsyXSksdChuLHIsbFswXSxsWzJdKSx0KG4scixsWzNdLGxbMl0pXSk7YnJlYWs7Y2FzZSAxMjpvLnB1c2goW3QobixyLGxbM10sbFswXSksdChuLHIsbFsyXSxsWzBdKSx0KG4scixsWzJdLGxbMV0pXSxbdChuLHIsbFszXSxsWzFdKSx0KG4scixsWzNdLGxbMF0pLHQobixyLGxbMl0sbFsxXSldKTticmVhaztjYXNlIDEzOm8ucHVzaChbdChuLHIsbFswXSxsWzFdKSx0KG4scixsWzJdLGxbMV0pLHQobixyLGxbM10sbFsxXSldKTticmVhaztjYXNlIDE0Om8ucHVzaChbdChuLHIsbFsyXSxsWzBdKSx0KG4scixsWzFdLGxbMF0pLHQobixyLGxbM10sbFswXSldKX19ZWxzZSBpZigzPT09Yyl7aWYoMD09PSh1PShpW2xbMF1dPDwwKSsoaVtsWzFdXTw8MSkrKGlbbFsyXV08PDIpKXx8Nz09PXUpY29udGludWU7c3dpdGNoKHUpe2Nhc2UgMDpicmVhaztjYXNlIDE6by5wdXNoKFt0KG4scixsWzBdLGxbMl0pLHQobixyLGxbMF0sbFsxXSldKTticmVhaztjYXNlIDI6by5wdXNoKFt0KG4scixsWzFdLGxbMF0pLHQobixyLGxbMV0sbFsyXSldKTticmVhaztjYXNlIDM6by5wdXNoKFt0KG4scixsWzBdLGxbMl0pLHQobixyLGxbMV0sbFsyXSldKTticmVhaztjYXNlIDQ6by5wdXNoKFt0KG4scixsWzJdLGxbMV0pLHQobixyLGxbMl0sbFswXSldKTticmVhaztjYXNlIDU6by5wdXNoKFt0KG4scixsWzJdLGxbMV0pLHQobixyLGxbMF0sbFsxXSldKTticmVhaztjYXNlIDY6by5wdXNoKFt0KG4scixsWzFdLGxbMF0pLHQobixyLGxbMl0sbFswXSldKX19ZWxzZSBpZigyPT09Yyl7dmFyIHU7aWYoMD09PSh1PShpW2xbMF1dPDwwKSsoaVtsWzFdXTw8MSkpfHwzPT09dSljb250aW51ZTtzd2l0Y2godSl7Y2FzZSAwOmJyZWFrO2Nhc2UgMTpvLnB1c2goW3QobixyLGxbMF0sbFsxXSldKTticmVhaztjYXNlIDI6by5wdXNoKFt0KG4scixsWzFdLGxbMF0pXSl9fX1yZXR1cm4gb319XX0se31dLDI5MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJiaXQtdHdpZGRsZSIpLGk9dCgidW5pb24tZmluZCIpO2Z1bmN0aW9uIGEodCxlKXt2YXIgcj10Lmxlbmd0aCxuPXQubGVuZ3RoLWUubGVuZ3RoLGk9TWF0aC5taW47aWYobilyZXR1cm4gbjtzd2l0Y2gocil7Y2FzZSAwOnJldHVybiAwO2Nhc2UgMTpyZXR1cm4gdFswXS1lWzBdO2Nhc2UgMjpyZXR1cm4ocz10WzBdK3RbMV0tZVswXS1lWzFdKXx8aSh0WzBdLHRbMV0pLWkoZVswXSxlWzFdKTtjYXNlIDM6dmFyIGE9dFswXSt0WzFdLG89ZVswXStlWzFdO2lmKHM9YSt0WzJdLShvK2VbMl0pKXJldHVybiBzO3ZhciBzLGw9aSh0WzBdLHRbMV0pLGM9aShlWzBdLGVbMV0pO3JldHVybihzPWkobCx0WzJdKS1pKGMsZVsyXSkpfHxpKGwrdFsyXSxhKS1pKGMrZVsyXSxvKTtkZWZhdWx0OnZhciB1PXQuc2xpY2UoMCk7dS5zb3J0KCk7dmFyIGY9ZS5zbGljZSgwKTtmLnNvcnQoKTtmb3IodmFyIGg9MDtoPHI7KytoKWlmKG49dVtoXS1mW2hdKXJldHVybiBuO3JldHVybiAwfX1mdW5jdGlvbiBvKHQsZSl7cmV0dXJuIGEodFswXSxlWzBdKX1mdW5jdGlvbiBzKHQsZSl7aWYoZSl7Zm9yKHZhciByPXQubGVuZ3RoLG49bmV3IEFycmF5KHIpLGk9MDtpPHI7KytpKW5baV09W3RbaV0sZVtpXV07bi5zb3J0KG8pO2ZvcihpPTA7aTxyOysraSl0W2ldPW5baV1bMF0sZVtpXT1uW2ldWzFdO3JldHVybiB0fXJldHVybiB0LnNvcnQoYSksdH1mdW5jdGlvbiBsKHQpe2lmKDA9PT10Lmxlbmd0aClyZXR1cm5bXTtmb3IodmFyIGU9MSxyPXQubGVuZ3RoLG49MTtuPHI7KytuKXt2YXIgaT10W25dO2lmKGEoaSx0W24tMV0pKXtpZihuPT09ZSl7ZSsrO2NvbnRpbnVlfXRbZSsrXT1pfX1yZXR1cm4gdC5sZW5ndGg9ZSx0fWZ1bmN0aW9uIGModCxlKXtmb3IodmFyIHI9MCxuPXQubGVuZ3RoLTEsaT0tMTtyPD1uOyl7dmFyIG89cituPj4xLHM9YSh0W29dLGUpO3M8PTA/KDA9PT1zJiYoaT1vKSxyPW8rMSk6cz4wJiYobj1vLTEpfXJldHVybiBpfWZ1bmN0aW9uIHUodCxlKXtmb3IodmFyIHI9bmV3IEFycmF5KHQubGVuZ3RoKSxpPTAsbz1yLmxlbmd0aDtpPG87KytpKXJbaV09W107Zm9yKHZhciBzPVtdLGw9KGk9MCxlLmxlbmd0aCk7aTxsOysraSlmb3IodmFyIHU9ZVtpXSxmPXUubGVuZ3RoLGg9MSxwPTE8PGY7aDxwOysraCl7cy5sZW5ndGg9bi5wb3BDb3VudChoKTtmb3IodmFyIGQ9MCxtPTA7bTxmOysrbSloJjE8PG0mJihzW2QrK109dVttXSk7dmFyIGc9Yyh0LHMpO2lmKCEoZzwwKSlmb3IoO3JbZysrXS5wdXNoKGkpLCEoZz49dC5sZW5ndGh8fDAhPT1hKHRbZ10scykpOyk7fXJldHVybiByfWZ1bmN0aW9uIGYodCxlKXtpZihlPDApcmV0dXJuW107Zm9yKHZhciByPVtdLGk9KDE8PGUrMSktMSxhPTA7YTx0Lmxlbmd0aDsrK2EpZm9yKHZhciBvPXRbYV0sbD1pO2w8MTw8by5sZW5ndGg7bD1uLm5leHRDb21iaW5hdGlvbihsKSl7Zm9yKHZhciBjPW5ldyBBcnJheShlKzEpLHU9MCxmPTA7ZjxvLmxlbmd0aDsrK2YpbCYxPDxmJiYoY1t1KytdPW9bZl0pO3IucHVzaChjKX1yZXR1cm4gcyhyKX1yLmRpbWVuc2lvbj1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxyPU1hdGgubWF4LG49MCxpPXQubGVuZ3RoO248aTsrK24pZT1yKGUsdFtuXS5sZW5ndGgpO3JldHVybiBlLTF9LHIuY291bnRWZXJ0aWNlcz1mdW5jdGlvbih0KXtmb3IodmFyIGU9LTEscj1NYXRoLm1heCxuPTAsaT10Lmxlbmd0aDtuPGk7KytuKWZvcih2YXIgYT10W25dLG89MCxzPWEubGVuZ3RoO288czsrK28pZT1yKGUsYVtvXSk7cmV0dXJuIGUrMX0sci5jbG9uZUNlbGxzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1uZXcgQXJyYXkodC5sZW5ndGgpLHI9MCxuPXQubGVuZ3RoO3I8bjsrK3IpZVtyXT10W3JdLnNsaWNlKDApO3JldHVybiBlfSxyLmNvbXBhcmVDZWxscz1hLHIubm9ybWFsaXplPXMsci51bmlxdWU9bCxyLmZpbmRDZWxsPWMsci5pbmNpZGVuY2U9dSxyLmR1YWw9ZnVuY3Rpb24odCxlKXtpZighZSlyZXR1cm4gdShsKGYodCwwKSksdCk7Zm9yKHZhciByPW5ldyBBcnJheShlKSxuPTA7bjxlOysrbilyW25dPVtdO249MDtmb3IodmFyIGk9dC5sZW5ndGg7bjxpOysrbilmb3IodmFyIGE9dFtuXSxvPTAscz1hLmxlbmd0aDtvPHM7KytvKXJbYVtvXV0ucHVzaChuKTtyZXR1cm4gcn0sci5leHBsb2RlPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxyPTAsbj10Lmxlbmd0aDtyPG47KytyKWZvcih2YXIgaT10W3JdLGE9MHxpLmxlbmd0aCxvPTEsbD0xPDxhO288bDsrK28pe2Zvcih2YXIgYz1bXSx1PTA7dTxhOysrdSlvPj4+dSYxJiZjLnB1c2goaVt1XSk7ZS5wdXNoKGMpfXJldHVybiBzKGUpfSxyLnNrZWxldG9uPWYsci5ib3VuZGFyeT1mdW5jdGlvbih0KXtmb3IodmFyIGU9W10scj0wLG49dC5sZW5ndGg7cjxuOysrcilmb3IodmFyIGk9dFtyXSxhPTAsbz1pLmxlbmd0aDthPG87KythKXtmb3IodmFyIGw9bmV3IEFycmF5KGkubGVuZ3RoLTEpLGM9MCx1PTA7YzxvOysrYyljIT09YSYmKGxbdSsrXT1pW2NdKTtlLnB1c2gobCl9cmV0dXJuIHMoZSl9LHIuY29ubmVjdGVkQ29tcG9uZW50cz1mdW5jdGlvbih0LGUpe3JldHVybiBlP2Z1bmN0aW9uKHQsZSl7Zm9yKHZhciByPW5ldyBpKGUpLG49MDtuPHQubGVuZ3RoOysrbilmb3IodmFyIGE9dFtuXSxvPTA7bzxhLmxlbmd0aDsrK28pZm9yKHZhciBzPW8rMTtzPGEubGVuZ3RoOysrcylyLmxpbmsoYVtvXSxhW3NdKTt2YXIgbD1bXSxjPXIucmFua3M7Zm9yKG49MDtuPGMubGVuZ3RoOysrbiljW25dPS0xO2ZvcihuPTA7bjx0Lmxlbmd0aDsrK24pe3ZhciB1PXIuZmluZCh0W25dWzBdKTtjW3VdPDA/KGNbdV09bC5sZW5ndGgsbC5wdXNoKFt0W25dLnNsaWNlKDApXSkpOmxbY1t1XV0ucHVzaCh0W25dLnNsaWNlKDApKX1yZXR1cm4gbH0odCxlKTpmdW5jdGlvbih0KXtmb3IodmFyIGU9bChzKGYodCwwKSkpLHI9bmV3IGkoZS5sZW5ndGgpLG49MDtuPHQubGVuZ3RoOysrbilmb3IodmFyIGE9dFtuXSxvPTA7bzxhLmxlbmd0aDsrK28pZm9yKHZhciB1PWMoZSxbYVtvXV0pLGg9bysxO2g8YS5sZW5ndGg7KytoKXIubGluayh1LGMoZSxbYVtoXV0pKTt2YXIgcD1bXSxkPXIucmFua3M7Zm9yKG49MDtuPGQubGVuZ3RoOysrbilkW25dPS0xO2ZvcihuPTA7bjx0Lmxlbmd0aDsrK24pe3ZhciBtPXIuZmluZChjKGUsW3Rbbl1bMF1dKSk7ZFttXTwwPyhkW21dPXAubGVuZ3RoLHAucHVzaChbdFtuXS5zbGljZSgwKV0pKTpwW2RbbV1dLnB1c2godFtuXS5zbGljZSgwKSl9cmV0dXJuIHB9KHQpfX0seyJiaXQtdHdpZGRsZSI6MzIsInVuaW9uLWZpbmQiOjMwOX1dLDI5NDpbZnVuY3Rpb24odCxlLHIpe2FyZ3VtZW50c1s0XVszMl1bMF0uYXBwbHkocixhcmd1bWVudHMpfSx7ZHVwOjMyfV0sMjk1OltmdW5jdGlvbih0LGUscil7YXJndW1lbnRzWzRdWzI5M11bMF0uYXBwbHkocixhcmd1bWVudHMpfSx7ImJpdC10d2lkZGxlIjoyOTQsZHVwOjI5MywidW5pb24tZmluZCI6Mjk2fV0sMjk2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7dGhpcy5yb290cz1uZXcgQXJyYXkodCksdGhpcy5yYW5rcz1uZXcgQXJyYXkodCk7Zm9yKHZhciBlPTA7ZTx0OysrZSl0aGlzLnJvb3RzW2VdPWUsdGhpcy5yYW5rc1tlXT0wfWUuZXhwb3J0cz1uLG4ucHJvdG90eXBlLmxlbmd0aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJvb3RzLmxlbmd0aH0sbi5wcm90b3R5cGUubWFrZVNldD1mdW5jdGlvbigpe3ZhciB0PXRoaXMucm9vdHMubGVuZ3RoO3JldHVybiB0aGlzLnJvb3RzLnB1c2godCksdGhpcy5yYW5rcy5wdXNoKDApLHR9LG4ucHJvdG90eXBlLmZpbmQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMucm9vdHM7ZVt0XSE9PXQ7KXt2YXIgcj1lW3RdO2VbdF09ZVtyXSx0PXJ9cmV0dXJuIHR9LG4ucHJvdG90eXBlLmxpbms9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmZpbmQodCksbj10aGlzLmZpbmQoZSk7aWYociE9PW4pe3ZhciBpPXRoaXMucmFua3MsYT10aGlzLnJvb3RzLG89aVtyXSxzPWlbbl07bzxzP2Fbcl09bjpzPG8/YVtuXT1yOihhW25dPXIsKytpW3JdKX19fSx7fV0sMjk3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWUubGVuZ3RoLG89dC5sZW5ndGgscz1uZXcgQXJyYXkoYSksbD1uZXcgQXJyYXkoYSksYz1uZXcgQXJyYXkoYSksdT1uZXcgQXJyYXkoYSksZj0wO2Y8YTsrK2Ypc1tmXT1sW2ZdPS0xLGNbZl09MS8wLHVbZl09ITE7Zm9yKGY9MDtmPG87KytmKXt2YXIgaD10W2ZdO2lmKDIhPT1oLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIklucHV0IG11c3QgYmUgYSBncmFwaCIpO3ZhciBwPWhbMV0sZD1oWzBdOy0xIT09bFtkXT9sW2RdPS0yOmxbZF09cCwtMSE9PXNbcF0/c1twXT0tMjpzW3BdPWR9ZnVuY3Rpb24gbSh0KXtpZih1W3RdKXJldHVybiAxLzA7dmFyIHIsaSxhLG8sYyxmPXNbdF0saD1sW3RdO3JldHVybiBmPDB8fGg8MD8xLzA6KHI9ZVt0XSxpPWVbZl0sYT1lW2hdLG89TWF0aC5hYnMobihyLGksYSkpLGM9TWF0aC5zcXJ0KE1hdGgucG93KGlbMF0tYVswXSwyKStNYXRoLnBvdyhpWzFdLWFbMV0sMikpLG8vYyl9ZnVuY3Rpb24gZyh0LGUpe3ZhciByPWtbdF0sbj1rW2VdO2tbdF09bixrW2VdPXIsQVtyXT1lLEFbbl09dH1mdW5jdGlvbiB2KHQpe3JldHVybiBjW2tbdF1dfWZ1bmN0aW9uIHkodCl7cmV0dXJuIDEmdD90LTE+PjE6KHQ+PjEpLTF9ZnVuY3Rpb24geCh0KXtmb3IodmFyIGU9dih0KTs7KXt2YXIgcj1lLG49Mip0KzEsaT0yKih0KzEpLGE9dDtpZihuPE0pe3ZhciBvPXYobik7bzxyJiYoYT1uLHI9byl9aWYoaTxNKXYoaSk8ciYmKGE9aSk7aWYoYT09PXQpcmV0dXJuIHQ7Zyh0LGEpLHQ9YX19ZnVuY3Rpb24gYih0KXtmb3IodmFyIGU9dih0KTt0PjA7KXt2YXIgcj15KHQpO2lmKHI+PTApaWYoZTx2KHIpKXtnKHQsciksdD1yO2NvbnRpbnVlfXJldHVybiB0fX1mdW5jdGlvbiBfKCl7aWYoTT4wKXt2YXIgdD1rWzBdO3JldHVybiBnKDAsTS0xKSxNLT0xLHgoMCksdH1yZXR1cm4tMX1mdW5jdGlvbiB3KHQsZSl7dmFyIHI9a1t0XTtyZXR1cm4gY1tyXT09PWU/dDooY1tyXT0tMS8wLGIodCksXygpLGNbcl09ZSxiKChNKz0xKS0xKSl9ZnVuY3Rpb24gVCh0KXtpZighdVt0XSl7dVt0XT0hMDt2YXIgZT1zW3RdLHI9bFt0XTtzW3JdPj0wJiYoc1tyXT1lKSxsW2VdPj0wJiYobFtlXT1yKSxBW2VdPj0wJiZ3KEFbZV0sbShlKSksQVtyXT49MCYmdyhBW3JdLG0ocikpfX12YXIgaz1bXSxBPW5ldyBBcnJheShhKTtmb3IoZj0wO2Y8YTsrK2YpeyhjW2ZdPW0oZikpPDEvMD8oQVtmXT1rLmxlbmd0aCxrLnB1c2goZikpOkFbZl09LTF9dmFyIE09ay5sZW5ndGg7Zm9yKGY9TT4+MTtmPj0wOy0tZil4KGYpO2Zvcig7Oyl7dmFyIFM9XygpO2lmKFM8MHx8Y1tTXT5yKWJyZWFrO1QoUyl9dmFyIEU9W107Zm9yKGY9MDtmPGE7KytmKXVbZl18fChBW2ZdPUUubGVuZ3RoLEUucHVzaChlW2ZdLnNsaWNlKCkpKTtFLmxlbmd0aDtmdW5jdGlvbiBMKHQsZSl7aWYodFtlXTwwKXJldHVybiBlO3ZhciByPWUsbj1lO2Rve3ZhciBpPXRbbl07aWYoIXVbbl18fGk8MHx8aT09PW4pYnJlYWs7aWYoaT10W249aV0sIXVbbl18fGk8MHx8aT09PW4pYnJlYWs7bj1pLHI9dFtyXX13aGlsZShyIT09bik7Zm9yKHZhciBhPWU7YSE9PW47YT10W2FdKXRbYV09bjtyZXR1cm4gbn12YXIgQz1bXTtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT1MKHMsdFswXSkscj1MKGwsdFsxXSk7aWYoZT49MCYmcj49MCYmZSE9PXIpe3ZhciBuPUFbZV0saT1BW3JdO24hPT1pJiZDLnB1c2goW24saV0pfX0pKSxpLnVuaXF1ZShpLm5vcm1hbGl6ZShDKSkse3Bvc2l0aW9uczpFLGVkZ2VzOkN9fTt2YXIgbj10KCJyb2J1c3Qtb3JpZW50YXRpb24iKSxpPXQoInNpbXBsaWNpYWwtY29tcGxleCIpfSx7InJvYnVzdC1vcmllbnRhdGlvbiI6Mjg0LCJzaW1wbGljaWFsLWNvbXBsZXgiOjI5NX1dLDI5ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixhLG8scztpZihlWzBdWzBdPGVbMV1bMF0pcj1lWzBdLGE9ZVsxXTtlbHNle2lmKCEoZVswXVswXT5lWzFdWzBdKSlyZXR1cm4gaShlLHQpO3I9ZVsxXSxhPWVbMF19aWYodFswXVswXTx0WzFdWzBdKW89dFswXSxzPXRbMV07ZWxzZXtpZighKHRbMF1bMF0+dFsxXVswXSkpcmV0dXJuLWkodCxlKTtvPXRbMV0scz10WzBdfXZhciBsPW4ocixhLHMpLGM9bihyLGEsbyk7aWYobDwwKXtpZihjPD0wKXJldHVybiBsfWVsc2UgaWYobD4wKXtpZihjPj0wKXJldHVybiBsfWVsc2UgaWYoYylyZXR1cm4gYztpZihsPW4ocyxvLGEpLGM9bihzLG8sciksbDwwKXtpZihjPD0wKXJldHVybiBsfWVsc2UgaWYobD4wKXtpZihjPj0wKXJldHVybiBsfWVsc2UgaWYoYylyZXR1cm4gYztyZXR1cm4gYVswXS1zWzBdfTt2YXIgbj10KCJyb2J1c3Qtb3JpZW50YXRpb24iKTtmdW5jdGlvbiBpKHQsZSl7dmFyIHIsaSxhLG87aWYoZVswXVswXTxlWzFdWzBdKXI9ZVswXSxpPWVbMV07ZWxzZXtpZighKGVbMF1bMF0+ZVsxXVswXSkpe3ZhciBzPU1hdGgubWluKHRbMF1bMV0sdFsxXVsxXSksbD1NYXRoLm1heCh0WzBdWzFdLHRbMV1bMV0pLGM9TWF0aC5taW4oZVswXVsxXSxlWzFdWzFdKSx1PU1hdGgubWF4KGVbMF1bMV0sZVsxXVsxXSk7cmV0dXJuIGw8Yz9sLWM6cz51P3MtdTpsLXV9cj1lWzFdLGk9ZVswXX10WzBdWzFdPHRbMV1bMV0/KGE9dFswXSxvPXRbMV0pOihhPXRbMV0sbz10WzBdKTt2YXIgZj1uKGkscixhKTtyZXR1cm4gZnx8KChmPW4oaSxyLG8pKXx8by1pKX19LHsicm9idXN0LW9yaWVudGF0aW9uIjoyODR9XSwyOTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Lmxlbmd0aCxyPTIqZSxuPW5ldyBBcnJheShyKSxhPTA7YTxlOysrYSl7dmFyIGw9dFthXSxjPWxbMF1bMF08bFsxXVswXTtuWzIqYV09bmV3IGYobFswXVswXSxsLGMsYSksblsyKmErMV09bmV3IGYobFsxXVswXSxsLCFjLGEpfW4uc29ydCgoZnVuY3Rpb24odCxlKXt2YXIgcj10LngtZS54O3JldHVybiByfHwoKHI9dC5jcmVhdGUtZS5jcmVhdGUpfHxNYXRoLm1pbih0LnNlZ21lbnRbMF1bMV0sdC5zZWdtZW50WzFdWzFdKS1NYXRoLm1pbihlLnNlZ21lbnRbMF1bMV0sZS5zZWdtZW50WzFdWzFdKSl9KSk7dmFyIGg9aShvKSxwPVtdLGQ9W10sbT1bXTtmb3IoYT0wO2E8cjspe2Zvcih2YXIgZz1uW2FdLngsdj1bXTthPHI7KXt2YXIgeT1uW2FdO2lmKHkueCE9PWcpYnJlYWs7YSs9MSx5LnNlZ21lbnRbMF1bMF09PT15LngmJnkuc2VnbWVudFsxXVswXT09PXkueD95LmNyZWF0ZSYmKHkuc2VnbWVudFswXVsxXTx5LnNlZ21lbnRbMV1bMV0/KHYucHVzaChuZXcgdSh5LnNlZ21lbnRbMF1bMV0seS5pbmRleCwhMCwhMCkpLHYucHVzaChuZXcgdSh5LnNlZ21lbnRbMV1bMV0seS5pbmRleCwhMSwhMSkpKToodi5wdXNoKG5ldyB1KHkuc2VnbWVudFsxXVsxXSx5LmluZGV4LCEwLCExKSksdi5wdXNoKG5ldyB1KHkuc2VnbWVudFswXVsxXSx5LmluZGV4LCExLCEwKSkpKTpoPXkuY3JlYXRlP2guaW5zZXJ0KHkuc2VnbWVudCx5LmluZGV4KTpoLnJlbW92ZSh5LnNlZ21lbnQpfXAucHVzaChoLnJvb3QpLGQucHVzaChnKSxtLnB1c2godil9cmV0dXJuIG5ldyBzKHAsZCxtKX07dmFyIG49dCgiYmluYXJ5LXNlYXJjaC1ib3VuZHMiKSxpPXQoImZ1bmN0aW9uYWwtcmVkLWJsYWNrLXRyZWUiKSxhPXQoInJvYnVzdC1vcmllbnRhdGlvbiIpLG89dCgiLi9saWIvb3JkZXItc2VnbWVudHMiKTtmdW5jdGlvbiBzKHQsZSxyKXt0aGlzLnNsYWJzPXQsdGhpcy5jb29yZGluYXRlcz1lLHRoaXMuaG9yaXpvbnRhbD1yfWZ1bmN0aW9uIGwodCxlKXtyZXR1cm4gdC55LWV9ZnVuY3Rpb24gYyh0LGUpe2Zvcih2YXIgcj1udWxsO3Q7KXt2YXIgbixpLG89dC5rZXk7b1swXVswXTxvWzFdWzBdPyhuPW9bMF0saT1vWzFdKToobj1vWzFdLGk9b1swXSk7dmFyIHM9YShuLGksZSk7aWYoczwwKXQ9dC5sZWZ0O2Vsc2UgaWYocz4wKWlmKGVbMF0hPT1vWzFdWzBdKXI9dCx0PXQucmlnaHQ7ZWxzZXtpZihsPWModC5yaWdodCxlKSlyZXR1cm4gbDt0PXQubGVmdH1lbHNle2lmKGVbMF0hPT1vWzFdWzBdKXJldHVybiB0O3ZhciBsO2lmKGw9Yyh0LnJpZ2h0LGUpKXJldHVybiBsO3Q9dC5sZWZ0fX1yZXR1cm4gcn1mdW5jdGlvbiB1KHQsZSxyLG4pe3RoaXMueT10LHRoaXMuaW5kZXg9ZSx0aGlzLnN0YXJ0PXIsdGhpcy5jbG9zZWQ9bn1mdW5jdGlvbiBmKHQsZSxyLG4pe3RoaXMueD10LHRoaXMuc2VnbWVudD1lLHRoaXMuY3JlYXRlPXIsdGhpcy5pbmRleD1ufXMucHJvdG90eXBlLmNhc3RVcD1mdW5jdGlvbih0KXt2YXIgZT1uLmxlKHRoaXMuY29vcmRpbmF0ZXMsdFswXSk7aWYoZTwwKXJldHVybi0xO3RoaXMuc2xhYnNbZV07dmFyIHI9Yyh0aGlzLnNsYWJzW2VdLHQpLGk9LTE7aWYociYmKGk9ci52YWx1ZSksdGhpcy5jb29yZGluYXRlc1tlXT09PXRbMF0pe3ZhciBzPW51bGw7aWYociYmKHM9ci5rZXkpLGU+MCl7dmFyIHU9Yyh0aGlzLnNsYWJzW2UtMV0sdCk7dSYmKHM/byh1LmtleSxzKT4wJiYocz11LmtleSxpPXUudmFsdWUpOihpPXUudmFsdWUscz11LmtleSkpfXZhciBmPXRoaXMuaG9yaXpvbnRhbFtlXTtpZihmLmxlbmd0aD4wKXt2YXIgaD1uLmdlKGYsdFsxXSxsKTtpZihoPGYubGVuZ3RoKXt2YXIgcD1mW2hdO2lmKHRbMV09PT1wLnkpe2lmKHAuY2xvc2VkKXJldHVybiBwLmluZGV4O2Zvcig7aDxmLmxlbmd0aC0xJiZmW2grMV0ueT09PXRbMV07KWlmKChwPWZbaCs9MV0pLmNsb3NlZClyZXR1cm4gcC5pbmRleDtpZihwLnk9PT10WzFdJiYhcC5zdGFydCl7aWYoKGgrPTEpPj1mLmxlbmd0aClyZXR1cm4gaTtwPWZbaF19fWlmKHAuc3RhcnQpaWYocyl7dmFyIGQ9YShzWzBdLHNbMV0sW3RbMF0scC55XSk7c1swXVswXT5zWzFdWzBdJiYoZD0tZCksZD4wJiYoaT1wLmluZGV4KX1lbHNlIGk9cC5pbmRleDtlbHNlIHAueSE9PXRbMV0mJihpPXAuaW5kZXgpfX19cmV0dXJuIGl9fSx7Ii4vbGliL29yZGVyLXNlZ21lbnRzIjoyOTgsImJpbmFyeS1zZWFyY2gtYm91bmRzIjozMSwiZnVuY3Rpb25hbC1yZWQtYmxhY2stdHJlZSI6NjksInJvYnVzdC1vcmllbnRhdGlvbiI6Mjg0fV0sMzAwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInJvYnVzdC1kb3QtcHJvZHVjdCIpLGk9dCgicm9idXN0LXN1bSIpO2Z1bmN0aW9uIGEodCxlKXt2YXIgcj1pKG4odCxlKSxbZVtlLmxlbmd0aC0xXV0pO3JldHVybiByW3IubGVuZ3RoLTFdfWZ1bmN0aW9uIG8odCxlLHIsbil7dmFyIGk9LWUvKG4tZSk7aTwwP2k9MDppPjEmJihpPTEpO2Zvcih2YXIgYT0xLWksbz10Lmxlbmd0aCxzPW5ldyBBcnJheShvKSxsPTA7bDxvOysrbClzW2xdPWkqdFtsXSthKnJbbF07cmV0dXJuIHN9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPVtdLG49W10saT1hKHRbdC5sZW5ndGgtMV0sZSkscz10W3QubGVuZ3RoLTFdLGw9dFswXSxjPTA7Yzx0Lmxlbmd0aDsrK2Mscz1sKXt2YXIgdT1hKGw9dFtjXSxlKTtpZihpPDAmJnU+MHx8aT4wJiZ1PDApe3ZhciBmPW8ocyx1LGwsaSk7ci5wdXNoKGYpLG4ucHVzaChmLnNsaWNlKCkpfXU8MD9uLnB1c2gobC5zbGljZSgpKTp1PjA/ci5wdXNoKGwuc2xpY2UoKSk6KHIucHVzaChsLnNsaWNlKCkpLG4ucHVzaChsLnNsaWNlKCkpKSxpPXV9cmV0dXJue3Bvc2l0aXZlOnIsbmVnYXRpdmU6bn19LGUuZXhwb3J0cy5wb3NpdGl2ZT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1bXSxuPWEodFt0Lmxlbmd0aC0xXSxlKSxpPXRbdC5sZW5ndGgtMV0scz10WzBdLGw9MDtsPHQubGVuZ3RoOysrbCxpPXMpe3ZhciBjPWEocz10W2xdLGUpOyhuPDAmJmM+MHx8bj4wJiZjPDApJiZyLnB1c2gobyhpLGMscyxuKSksYz49MCYmci5wdXNoKHMuc2xpY2UoKSksbj1jfXJldHVybiByfSxlLmV4cG9ydHMubmVnYXRpdmU9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9W10sbj1hKHRbdC5sZW5ndGgtMV0sZSksaT10W3QubGVuZ3RoLTFdLHM9dFswXSxsPTA7bDx0Lmxlbmd0aDsrK2wsaT1zKXt2YXIgYz1hKHM9dFtsXSxlKTsobjwwJiZjPjB8fG4+MCYmYzwwKSYmci5wdXNoKG8oaSxjLHMsbikpLGM8PTAmJnIucHVzaChzLnNsaWNlKCkpLG49Y31yZXR1cm4gcn19LHsicm9idXN0LWRvdC1wcm9kdWN0IjoyODEsInJvYnVzdC1zdW0iOjI4OX1dLDMwMTpbZnVuY3Rpb24odCxlLHIpeyFmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgdD17bm90X3N0cmluZzovW15zXS8sbm90X2Jvb2w6L1tedF0vLG5vdF90eXBlOi9bXlRdLyxub3RfcHJpbWl0aXZlOi9bXnZdLyxudW1iZXI6L1tkaWVmZ10vLG51bWVyaWNfYXJnOi9bYmNkaWVmZ3V4WF0vLGpzb246L1tqXS8sbm90X2pzb246L1teal0vLHRleHQ6L15bXlx4MjVdKy8sbW9kdWxvOi9eXHgyNXsyfS8scGxhY2Vob2xkZXI6L15ceDI1KD86KFsxLTldXGQqKVwkfFwoKFteKV0rKVwpKT8oXCspPygwfCdbXiRdKT8oLSk/KFxkKyk/KD86XC4oXGQrKSk/KFtiLWdpam9zdFR1dnhYXSkvLGtleTovXihbYS16X11bYS16X1xkXSopL2ksa2V5X2FjY2VzczovXlwuKFthLXpfXVthLXpfXGRdKikvaSxpbmRleF9hY2Nlc3M6L15cWyhcZCspXF0vLHNpZ246L15bKy1dL307ZnVuY3Rpb24gZSh0KXtyZXR1cm4gaShvKHQpLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbih0LHIpe3JldHVybiBlLmFwcGx5KG51bGwsW3RdLmNvbmNhdChyfHxbXSkpfWZ1bmN0aW9uIGkocixuKXt2YXIgaSxhLG8scyxsLGMsdSxmLGgscD0xLGQ9ci5sZW5ndGgsbT0iIjtmb3IoYT0wO2E8ZDthKyspaWYoInN0cmluZyI9PXR5cGVvZiByW2FdKW0rPXJbYV07ZWxzZSBpZigib2JqZWN0Ij09dHlwZW9mIHJbYV0pe2lmKChzPXJbYV0pLmtleXMpZm9yKGk9bltwXSxvPTA7bzxzLmtleXMubGVuZ3RoO28rKyl7aWYobnVsbD09aSl0aHJvdyBuZXcgRXJyb3IoZSgnW3NwcmludGZdIENhbm5vdCBhY2Nlc3MgcHJvcGVydHkgIiVzIiBvZiB1bmRlZmluZWQgdmFsdWUgIiVzIicscy5rZXlzW29dLHMua2V5c1tvLTFdKSk7aT1pW3Mua2V5c1tvXV19ZWxzZSBpPXMucGFyYW1fbm8/bltzLnBhcmFtX25vXTpuW3ArK107aWYodC5ub3RfdHlwZS50ZXN0KHMudHlwZSkmJnQubm90X3ByaW1pdGl2ZS50ZXN0KHMudHlwZSkmJmkgaW5zdGFuY2VvZiBGdW5jdGlvbiYmKGk9aSgpKSx0Lm51bWVyaWNfYXJnLnRlc3Qocy50eXBlKSYmIm51bWJlciIhPXR5cGVvZiBpJiZpc05hTihpKSl0aHJvdyBuZXcgVHlwZUVycm9yKGUoIltzcHJpbnRmXSBleHBlY3RpbmcgbnVtYmVyIGJ1dCBmb3VuZCAlVCIsaSkpO3N3aXRjaCh0Lm51bWJlci50ZXN0KHMudHlwZSkmJihmPWk+PTApLHMudHlwZSl7Y2FzZSJiIjppPXBhcnNlSW50KGksMTApLnRvU3RyaW5nKDIpO2JyZWFrO2Nhc2UiYyI6aT1TdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KGksMTApKTticmVhaztjYXNlImQiOmNhc2UiaSI6aT1wYXJzZUludChpLDEwKTticmVhaztjYXNlImoiOmk9SlNPTi5zdHJpbmdpZnkoaSxudWxsLHMud2lkdGg/cGFyc2VJbnQocy53aWR0aCk6MCk7YnJlYWs7Y2FzZSJlIjppPXMucHJlY2lzaW9uP3BhcnNlRmxvYXQoaSkudG9FeHBvbmVudGlhbChzLnByZWNpc2lvbik6cGFyc2VGbG9hdChpKS50b0V4cG9uZW50aWFsKCk7YnJlYWs7Y2FzZSJmIjppPXMucHJlY2lzaW9uP3BhcnNlRmxvYXQoaSkudG9GaXhlZChzLnByZWNpc2lvbik6cGFyc2VGbG9hdChpKTticmVhaztjYXNlImciOmk9cy5wcmVjaXNpb24/U3RyaW5nKE51bWJlcihpLnRvUHJlY2lzaW9uKHMucHJlY2lzaW9uKSkpOnBhcnNlRmxvYXQoaSk7YnJlYWs7Y2FzZSJvIjppPShwYXJzZUludChpLDEwKT4+PjApLnRvU3RyaW5nKDgpO2JyZWFrO2Nhc2UicyI6aT1TdHJpbmcoaSksaT1zLnByZWNpc2lvbj9pLnN1YnN0cmluZygwLHMucHJlY2lzaW9uKTppO2JyZWFrO2Nhc2UidCI6aT1TdHJpbmcoISFpKSxpPXMucHJlY2lzaW9uP2kuc3Vic3RyaW5nKDAscy5wcmVjaXNpb24pOmk7YnJlYWs7Y2FzZSJUIjppPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChpKS5zbGljZSg4LC0xKS50b0xvd2VyQ2FzZSgpLGk9cy5wcmVjaXNpb24/aS5zdWJzdHJpbmcoMCxzLnByZWNpc2lvbik6aTticmVhaztjYXNlInUiOmk9cGFyc2VJbnQoaSwxMCk+Pj4wO2JyZWFrO2Nhc2UidiI6aT1pLnZhbHVlT2YoKSxpPXMucHJlY2lzaW9uP2kuc3Vic3RyaW5nKDAscy5wcmVjaXNpb24pOmk7YnJlYWs7Y2FzZSJ4IjppPShwYXJzZUludChpLDEwKT4+PjApLnRvU3RyaW5nKDE2KTticmVhaztjYXNlIlgiOmk9KHBhcnNlSW50KGksMTApPj4+MCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCl9dC5qc29uLnRlc3Qocy50eXBlKT9tKz1pOighdC5udW1iZXIudGVzdChzLnR5cGUpfHxmJiYhcy5zaWduP2g9IiI6KGg9Zj8iKyI6Ii0iLGk9aS50b1N0cmluZygpLnJlcGxhY2UodC5zaWduLCIiKSksYz1zLnBhZF9jaGFyPyIwIj09PXMucGFkX2NoYXI/IjAiOnMucGFkX2NoYXIuY2hhckF0KDEpOiIgIix1PXMud2lkdGgtKGgraSkubGVuZ3RoLGw9cy53aWR0aCYmdT4wP2MucmVwZWF0KHUpOiIiLG0rPXMuYWxpZ24/aCtpK2w6IjAiPT09Yz9oK2wraTpsK2graSl9cmV0dXJuIG19dmFyIGE9T2JqZWN0LmNyZWF0ZShudWxsKTtmdW5jdGlvbiBvKGUpe2lmKGFbZV0pcmV0dXJuIGFbZV07Zm9yKHZhciByLG49ZSxpPVtdLG89MDtuOyl7aWYobnVsbCE9PShyPXQudGV4dC5leGVjKG4pKSlpLnB1c2goclswXSk7ZWxzZSBpZihudWxsIT09KHI9dC5tb2R1bG8uZXhlYyhuKSkpaS5wdXNoKCIlIik7ZWxzZXtpZihudWxsPT09KHI9dC5wbGFjZWhvbGRlci5leGVjKG4pKSl0aHJvdyBuZXcgU3ludGF4RXJyb3IoIltzcHJpbnRmXSB1bmV4cGVjdGVkIHBsYWNlaG9sZGVyIik7aWYoclsyXSl7b3w9MTt2YXIgcz1bXSxsPXJbMl0sYz1bXTtpZihudWxsPT09KGM9dC5rZXkuZXhlYyhsKSkpdGhyb3cgbmV3IFN5bnRheEVycm9yKCJbc3ByaW50Zl0gZmFpbGVkIHRvIHBhcnNlIG5hbWVkIGFyZ3VtZW50IGtleSIpO2ZvcihzLnB1c2goY1sxXSk7IiIhPT0obD1sLnN1YnN0cmluZyhjWzBdLmxlbmd0aCkpOylpZihudWxsIT09KGM9dC5rZXlfYWNjZXNzLmV4ZWMobCkpKXMucHVzaChjWzFdKTtlbHNle2lmKG51bGw9PT0oYz10LmluZGV4X2FjY2Vzcy5leGVjKGwpKSl0aHJvdyBuZXcgU3ludGF4RXJyb3IoIltzcHJpbnRmXSBmYWlsZWQgdG8gcGFyc2UgbmFtZWQgYXJndW1lbnQga2V5Iik7cy5wdXNoKGNbMV0pfXJbMl09c31lbHNlIG98PTI7aWYoMz09PW8pdGhyb3cgbmV3IEVycm9yKCJbc3ByaW50Zl0gbWl4aW5nIHBvc2l0aW9uYWwgYW5kIG5hbWVkIHBsYWNlaG9sZGVycyBpcyBub3QgKHlldCkgc3VwcG9ydGVkIik7aS5wdXNoKHtwbGFjZWhvbGRlcjpyWzBdLHBhcmFtX25vOnJbMV0sa2V5czpyWzJdLHNpZ246clszXSxwYWRfY2hhcjpyWzRdLGFsaWduOnJbNV0sd2lkdGg6cls2XSxwcmVjaXNpb246cls3XSx0eXBlOnJbOF19KX1uPW4uc3Vic3RyaW5nKHJbMF0ubGVuZ3RoKX1yZXR1cm4gYVtlXT1pfXZvaWQgMCE9PXImJihyLnNwcmludGY9ZSxyLnZzcHJpbnRmPW4pLCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiYod2luZG93LnNwcmludGY9ZSx3aW5kb3cudnNwcmludGY9bil9KCl9LHt9XSwzMDI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aWYodC5kaW1lbnNpb248PTApcmV0dXJue3Bvc2l0aW9uczpbXSxjZWxsczpbXX07aWYoMT09PXQuZGltZW5zaW9uKXJldHVybiBmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1pKHQsZSksbj1yLmxlbmd0aCxhPW5ldyBBcnJheShuKSxvPW5ldyBBcnJheShuKSxzPTA7czxuOysrcylhW3NdPVtyW3NdXSxvW3NdPVtzXTtyZXR1cm57cG9zaXRpb25zOmEsY2VsbHM6b319KHQsZSk7dmFyIHI9dC5vcmRlci5qb2luKCkrIi0iK3QuZHR5cGUscz1vW3JdO2U9K2V8fDA7c3x8KHM9b1tyXT1mdW5jdGlvbih0LGUpe3ZhciByPXQubGVuZ3RoKyJkIixpPWFbcl07aWYoaSlyZXR1cm4gaShuLHQsZSl9KHQub3JkZXIsdC5kdHlwZSkpO3JldHVybiBzKHQsZSl9O3ZhciBuPXQoIm5kYXJyYXktZXh0cmFjdC1jb250b3VyIiksaT10KCJ6ZXJvLWNyb3NzaW5ncyIpLGE9eyIyZCI6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoe29yZGVyOmUsc2NhbGFyQXJndW1lbnRzOjMsZ2V0dGVyczoiZ2VuZXJpYyI9PT1yP1swXTp2b2lkIDAscGhhc2U6ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIHQ+bnwwfSx2ZXJ0ZXg6ZnVuY3Rpb24odCxlLHIsbixpLGEsbyxzLGwsYyx1LGYsaCl7dmFyIHA9KG88PDApKyhzPDwxKSsobDw8MikrKGM8PDMpfDA7aWYoMCE9PXAmJjE1IT09cClzd2l0Y2gocCl7Y2FzZSAwOnUucHVzaChbdC0uNSxlLS41XSk7YnJlYWs7Y2FzZSAxOnUucHVzaChbdC0uMjUtLjI1KihuK3ItMipoKS8oci1uKSxlLS4yNS0uMjUqKGkrci0yKmgpLyhyLWkpXSk7YnJlYWs7Y2FzZSAyOnUucHVzaChbdC0uNzUtLjI1Kigtbi1yKzIqaCkvKG4tciksZS0uMjUtLjI1KihhK24tMipoKS8obi1hKV0pO2JyZWFrO2Nhc2UgMzp1LnB1c2goW3QtLjUsZS0uNS0uNSooaStyK2Erbi00KmgpLyhyLWkrbi1hKV0pO2JyZWFrO2Nhc2UgNDp1LnB1c2goW3QtLjI1LS4yNSooYStpLTIqaCkvKGktYSksZS0uNzUtLjI1KigtaS1yKzIqaCkvKGktcildKTticmVhaztjYXNlIDU6dS5wdXNoKFt0LS41LS41KihuK3IrYStpLTQqaCkvKHItbitpLWEpLGUtLjVdKTticmVhaztjYXNlIDY6dS5wdXNoKFt0LS41LS4yNSooLW4tcithK2kpLyhuLXIraS1hKSxlLS41LS4yNSooLWktcithK24pLyhpLXIrbi1hKV0pO2JyZWFrO2Nhc2UgNzp1LnB1c2goW3QtLjc1LS4yNSooYStpLTIqaCkvKGktYSksZS0uNzUtLjI1KihhK24tMipoKS8obi1hKV0pO2JyZWFrO2Nhc2UgODp1LnB1c2goW3QtLjc1LS4yNSooLWEtaSsyKmgpLyhhLWkpLGUtLjc1LS4yNSooLWEtbisyKmgpLyhhLW4pXSk7YnJlYWs7Y2FzZSA5OnUucHVzaChbdC0uNS0uMjUqKG4rcistYS1pKS8oci1uK2EtaSksZS0uNS0uMjUqKGkrcistYS1uKS8oci1pK2EtbildKTticmVhaztjYXNlIDEwOnUucHVzaChbdC0uNS0uNSooLW4tci1hLWkrNCpoKS8obi1yK2EtaSksZS0uNV0pO2JyZWFrO2Nhc2UgMTE6dS5wdXNoKFt0LS4yNS0uMjUqKC1hLWkrMipoKS8oYS1pKSxlLS43NS0uMjUqKGkrci0yKmgpLyhyLWkpXSk7YnJlYWs7Y2FzZSAxMjp1LnB1c2goW3QtLjUsZS0uNS0uNSooLWktci1hLW4rNCpoKS8oaS1yK2EtbildKTticmVhaztjYXNlIDEzOnUucHVzaChbdC0uNzUtLjI1KihuK3ItMipoKS8oci1uKSxlLS4yNS0uMjUqKC1hLW4rMipoKS8oYS1uKV0pO2JyZWFrO2Nhc2UgMTQ6dS5wdXNoKFt0LS4yNS0uMjUqKC1uLXIrMipoKS8obi1yKSxlLS4yNS0uMjUqKC1pLXIrMipoKS8oaS1yKV0pO2JyZWFrO2Nhc2UgMTU6dS5wdXNoKFt0LS41LGUtLjVdKX19LGNlbGw6ZnVuY3Rpb24odCxlLHIsbixpLGEsbyxzLGwpe2k/cy5wdXNoKFt0LGVdKTpzLnB1c2goW2UsdF0pfX0pO3JldHVybiBmdW5jdGlvbih0LGUpe3ZhciByPVtdLGk9W107cmV0dXJuIG4odCxyLGksZSkse3Bvc2l0aW9uczpyLGNlbGxzOml9fX19O3ZhciBvPXt9fSx7Im5kYXJyYXktZXh0cmFjdC1jb250b3VyIjoyNTEsInplcm8tY3Jvc3NpbmdzIjozMTh9XSwzMDM6W2Z1bmN0aW9uKHQsZSxyKXsoZnVuY3Rpb24ocil7KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbiB0KGUscixpKXtpPWl8fHt9O3ZhciBvPWFbZV07b3x8KG89YVtlXT17IiAiOntkYXRhOm5ldyBGbG9hdDMyQXJyYXkoMCksc2hhcGU6LjJ9fSk7dmFyIHM9b1tyXTtpZighcylpZihyLmxlbmd0aDw9MXx8IS9cZC8udGVzdChyKSlzPW9bcl09ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQuY2VsbHMscj10LnBvc2l0aW9ucyxuPW5ldyBGbG9hdDMyQXJyYXkoNiplLmxlbmd0aCksaT0wLGE9MCxvPTA7bzxlLmxlbmd0aDsrK28pZm9yKHZhciBzPWVbb10sbD0wO2w8MzsrK2wpe3ZhciBjPXJbc1tsXV07bltpKytdPWNbMF0sbltpKytdPWNbMV0rMS40LGE9TWF0aC5tYXgoY1swXSxhKX1yZXR1cm57ZGF0YTpuLHNoYXBlOmF9fShuKHIse3RyaWFuZ2xlczohMCxmb250OmUsdGV4dEFsaWduOmkudGV4dEFsaWdufHwibGVmdCIsdGV4dEJhc2VsaW5lOiJhbHBoYWJldGljIixzdHlsZXRhZ3M6e2JyZWFrbGluZXM6ITAsYm9sZHM6ITAsaXRhbGljczohMCxzdWJzY3JpcHRzOiEwLHN1cGVyc2NyaXB0czohMH19KSk7ZWxzZXtmb3IodmFyIGw9ci5zcGxpdCgvKFxkfFxzKS8pLGM9bmV3IEFycmF5KGwubGVuZ3RoKSx1PTAsZj0wLGg9MDtoPGwubGVuZ3RoOysraCljW2hdPXQoZSxsW2hdKSx1Kz1jW2hdLmRhdGEubGVuZ3RoLGYrPWNbaF0uc2hhcGUsaD4wJiYoZis9LjAyKTt2YXIgcD1uZXcgRmxvYXQzMkFycmF5KHUpLGQ9MCxtPS0uNSpmO2ZvcihoPTA7aDxjLmxlbmd0aDsrK2gpe2Zvcih2YXIgZz1jW2hdLmRhdGEsdj0wO3Y8Zy5sZW5ndGg7dis9MilwW2QrK109Z1t2XSttLHBbZCsrXT1nW3YrMV07bSs9Y1toXS5zaGFwZSsuMDJ9cz1vW3JdPXtkYXRhOnAsc2hhcGU6Zn19cmV0dXJuIHN9O3ZhciBuPXQoInZlY3Rvcml6ZS10ZXh0IiksaT13aW5kb3d8fHIuZ2xvYmFsfHx7fSxhPWkuX19URVhUX0NBQ0hFfHx7fTtpLl9fVEVYVF9DQUNIRT17fX0pLmNhbGwodGhpcyl9KS5jYWxsKHRoaXMsdCgiX3Byb2Nlc3MiKSl9LHtfcHJvY2Vzczo1LCJ2ZWN0b3JpemUtdGV4dCI6MzExfV0sMzA0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInBhcnNlLXVuaXQiKTtlLmV4cG9ydHM9YTtmdW5jdGlvbiBpKHQsZSl7dmFyIHI9bihnZXRDb21wdXRlZFN0eWxlKHQpLmdldFByb3BlcnR5VmFsdWUoZSkpO3JldHVybiByWzBdKmEoclsxXSx0KX1mdW5jdGlvbiBhKHQsZSl7c3dpdGNoKGU9ZXx8ZG9jdW1lbnQuYm9keSx0PSh0fHwicHgiKS50cmltKCkudG9Mb3dlckNhc2UoKSxlIT09d2luZG93JiZlIT09ZG9jdW1lbnR8fChlPWRvY3VtZW50LmJvZHkpLHQpe2Nhc2UiJSI6cmV0dXJuIGUuY2xpZW50SGVpZ2h0LzEwMDtjYXNlImNoIjpjYXNlImV4IjpyZXR1cm4gZnVuY3Rpb24odCxlKXt2YXIgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyLnN0eWxlWyJmb250LXNpemUiXT0iMTI4Iit0LGUuYXBwZW5kQ2hpbGQocik7dmFyIG49aShyLCJmb250LXNpemUiKS8xMjg7cmV0dXJuIGUucmVtb3ZlQ2hpbGQociksbn0odCxlKTtjYXNlImVtIjpyZXR1cm4gaShlLCJmb250LXNpemUiKTtjYXNlInJlbSI6cmV0dXJuIGkoZG9jdW1lbnQuYm9keSwiZm9udC1zaXplIik7Y2FzZSJ2dyI6cmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoLzEwMDtjYXNlInZoIjpyZXR1cm4gd2luZG93LmlubmVySGVpZ2h0LzEwMDtjYXNlInZtaW4iOnJldHVybiBNYXRoLm1pbih3aW5kb3cuaW5uZXJXaWR0aCx3aW5kb3cuaW5uZXJIZWlnaHQpLzEwMDtjYXNlInZtYXgiOnJldHVybiBNYXRoLm1heCh3aW5kb3cuaW5uZXJXaWR0aCx3aW5kb3cuaW5uZXJIZWlnaHQpLzEwMDtjYXNlImluIjpyZXR1cm4gOTY7Y2FzZSJjbSI6cmV0dXJuIDk2LzIuNTQ7Y2FzZSJtbSI6cmV0dXJuIDk2LzI1LjQ7Y2FzZSJwdCI6cmV0dXJuIDk2LzcyO2Nhc2UicGMiOnJldHVybiAxNn1yZXR1cm4gMX19LHsicGFyc2UtdW5pdCI6MjY1fV0sMzA1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT0odD10fHx7fSkuY2VudGVyfHxbMCwwLDBdLHI9dC51cHx8WzAsMSwwXSxuPXQucmlnaHR8fGYociksaT10LnJhZGl1c3x8MSxhPXQudGhldGF8fDAsdT10LnBoaXx8MDtpZihlPVtdLnNsaWNlLmNhbGwoZSwwLDMpLHI9W10uc2xpY2UuY2FsbChyLDAsMykscyhyLHIpLG49W10uc2xpY2UuY2FsbChuLDAsMykscyhuLG4pLCJleWUiaW4gdCl7dmFyIHA9dC5leWUsZD1bcFswXS1lWzBdLHBbMV0tZVsxXSxwWzJdLWVbMl1dO28obixkLHIpLGMoblswXSxuWzFdLG5bMl0pPDFlLTY/bj1mKHIpOnMobixuKSxpPWMoZFswXSxkWzFdLGRbMl0pO3ZhciBtPWwocixkKS9pLGc9bChuLGQpL2k7dT1NYXRoLmFjb3MobSksYT1NYXRoLmFjb3MoZyl9cmV0dXJuIGk9TWF0aC5sb2coaSksbmV3IGgodC56b29tTWluLHQuem9vbU1heCxlLHIsbixpLGEsdSl9O3ZhciBuPXQoImZpbHRlcmVkLXZlY3RvciIpLGk9dCgiZ2wtbWF0NC9pbnZlcnQiKSxhPXQoImdsLW1hdDQvcm90YXRlIiksbz10KCJnbC12ZWMzL2Nyb3NzIikscz10KCJnbC12ZWMzL25vcm1hbGl6ZSIpLGw9dCgiZ2wtdmVjMy9kb3QiKTtmdW5jdGlvbiBjKHQsZSxyKXtyZXR1cm4gTWF0aC5zcXJ0KE1hdGgucG93KHQsMikrTWF0aC5wb3coZSwyKStNYXRoLnBvdyhyLDIpKX1mdW5jdGlvbiB1KHQpe3JldHVybiBNYXRoLm1pbigxLE1hdGgubWF4KC0xLHQpKX1mdW5jdGlvbiBmKHQpe3ZhciBlPU1hdGguYWJzKHRbMF0pLHI9TWF0aC5hYnModFsxXSksbj1NYXRoLmFicyh0WzJdKSxpPVswLDAsMF07ZT5NYXRoLm1heChyLG4pP2lbMl09MTpyPk1hdGgubWF4KGUsbik/aVswXT0xOmlbMV09MTtmb3IodmFyIGE9MCxvPTAsbD0wO2w8MzsrK2wpYSs9dFtsXSp0W2xdLG8rPWlbbF0qdFtsXTtmb3IobD0wO2w8MzsrK2wpaVtsXS09by9hKnRbbF07cmV0dXJuIHMoaSxpKSxpfWZ1bmN0aW9uIGgodCxlLHIsaSxhLG8scyxsKXt0aGlzLmNlbnRlcj1uKHIpLHRoaXMudXA9bihpKSx0aGlzLnJpZ2h0PW4oYSksdGhpcy5yYWRpdXM9bihbb10pLHRoaXMuYW5nbGU9bihbcyxsXSksdGhpcy5hbmdsZS5ib3VuZHM9W1stMS8wLC1NYXRoLlBJLzJdLFsxLzAsTWF0aC5QSS8yXV0sdGhpcy5zZXREaXN0YW5jZUxpbWl0cyh0LGUpLHRoaXMuY29tcHV0ZWRDZW50ZXI9dGhpcy5jZW50ZXIuY3VydmUoMCksdGhpcy5jb21wdXRlZFVwPXRoaXMudXAuY3VydmUoMCksdGhpcy5jb21wdXRlZFJpZ2h0PXRoaXMucmlnaHQuY3VydmUoMCksdGhpcy5jb21wdXRlZFJhZGl1cz10aGlzLnJhZGl1cy5jdXJ2ZSgwKSx0aGlzLmNvbXB1dGVkQW5nbGU9dGhpcy5hbmdsZS5jdXJ2ZSgwKSx0aGlzLmNvbXB1dGVkVG93YXJkPVswLDAsMF0sdGhpcy5jb21wdXRlZEV5ZT1bMCwwLDBdLHRoaXMuY29tcHV0ZWRNYXRyaXg9bmV3IEFycmF5KDE2KTtmb3IodmFyIGM9MDtjPDE2OysrYyl0aGlzLmNvbXB1dGVkTWF0cml4W2NdPS41O3RoaXMucmVjYWxjTWF0cml4KDApfXZhciBwPWgucHJvdG90eXBlO3Auc2V0RGlzdGFuY2VMaW1pdHM9ZnVuY3Rpb24odCxlKXt0PXQ+MD9NYXRoLmxvZyh0KTotMS8wLGU9ZT4wP01hdGgubG9nKGUpOjEvMCxlPU1hdGgubWF4KGUsdCksdGhpcy5yYWRpdXMuYm91bmRzWzBdWzBdPXQsdGhpcy5yYWRpdXMuYm91bmRzWzFdWzBdPWV9LHAuZ2V0RGlzdGFuY2VMaW1pdHM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5yYWRpdXMuYm91bmRzWzBdO3JldHVybiB0Pyh0WzBdPU1hdGguZXhwKGVbMF1bMF0pLHRbMV09TWF0aC5leHAoZVsxXVswXSksdCk6W01hdGguZXhwKGVbMF1bMF0pLE1hdGguZXhwKGVbMV1bMF0pXX0scC5yZWNhbGNNYXRyaXg9ZnVuY3Rpb24odCl7dGhpcy5jZW50ZXIuY3VydmUodCksdGhpcy51cC5jdXJ2ZSh0KSx0aGlzLnJpZ2h0LmN1cnZlKHQpLHRoaXMucmFkaXVzLmN1cnZlKHQpLHRoaXMuYW5nbGUuY3VydmUodCk7Zm9yKHZhciBlPXRoaXMuY29tcHV0ZWRVcCxyPXRoaXMuY29tcHV0ZWRSaWdodCxuPTAsaT0wLGE9MDthPDM7KythKWkrPWVbYV0qclthXSxuKz1lW2FdKmVbYV07dmFyIGw9TWF0aC5zcXJ0KG4pLHU9MDtmb3IoYT0wO2E8MzsrK2EpclthXS09ZVthXSppL24sdSs9clthXSpyW2FdLGVbYV0vPWw7dmFyIGY9TWF0aC5zcXJ0KHUpO2ZvcihhPTA7YTwzOysrYSlyW2FdLz1mO3ZhciBoPXRoaXMuY29tcHV0ZWRUb3dhcmQ7byhoLGUscikscyhoLGgpO3ZhciBwPU1hdGguZXhwKHRoaXMuY29tcHV0ZWRSYWRpdXNbMF0pLGQ9dGhpcy5jb21wdXRlZEFuZ2xlWzBdLG09dGhpcy5jb21wdXRlZEFuZ2xlWzFdLGc9TWF0aC5jb3MoZCksdj1NYXRoLnNpbihkKSx5PU1hdGguY29zKG0pLHg9TWF0aC5zaW4obSksYj10aGlzLmNvbXB1dGVkQ2VudGVyLF89Zyp5LHc9dip5LFQ9eCxrPS1nKngsQT0tdip4LE09eSxTPXRoaXMuY29tcHV0ZWRFeWUsRT10aGlzLmNvbXB1dGVkTWF0cml4O2ZvcihhPTA7YTwzOysrYSl7dmFyIEw9XypyW2FdK3cqaFthXStUKmVbYV07RVs0KmErMV09aypyW2FdK0EqaFthXStNKmVbYV0sRVs0KmErMl09TCxFWzQqYSszXT0wfXZhciBDPUVbMV0sUD1FWzVdLEk9RVs5XSxPPUVbMl0sej1FWzZdLEQ9RVsxMF0sUj1QKkQtSSp6LEY9SSpPLUMqRCxCPUMqei1QKk8sTj1jKFIsRixCKTtSLz1OLEYvPU4sQi89TixFWzBdPVIsRVs0XT1GLEVbOF09Qjtmb3IoYT0wO2E8MzsrK2EpU1thXT1iW2FdK0VbMis0KmFdKnA7Zm9yKGE9MDthPDM7KythKXt1PTA7Zm9yKHZhciBqPTA7ajwzOysrail1Kz1FW2ErNCpqXSpTW2pdO0VbMTIrYV09LXV9RVsxNV09MX0scC5nZXRNYXRyaXg9ZnVuY3Rpb24odCxlKXt0aGlzLnJlY2FsY01hdHJpeCh0KTt2YXIgcj10aGlzLmNvbXB1dGVkTWF0cml4O2lmKGUpe2Zvcih2YXIgbj0wO248MTY7KytuKWVbbl09cltuXTtyZXR1cm4gZX1yZXR1cm4gcn07dmFyIGQ9WzAsMCwwXTtwLnJvdGF0ZT1mdW5jdGlvbih0LGUscixuKXtpZih0aGlzLmFuZ2xlLm1vdmUodCxlLHIpLG4pe3RoaXMucmVjYWxjTWF0cml4KHQpO3ZhciBpPXRoaXMuY29tcHV0ZWRNYXRyaXg7ZFswXT1pWzJdLGRbMV09aVs2XSxkWzJdPWlbMTBdO2Zvcih2YXIgbz10aGlzLmNvbXB1dGVkVXAscz10aGlzLmNvbXB1dGVkUmlnaHQsbD10aGlzLmNvbXB1dGVkVG93YXJkLGM9MDtjPDM7KytjKWlbNCpjXT1vW2NdLGlbNCpjKzFdPXNbY10saVs0KmMrMl09bFtjXTthKGksaSxuLGQpO2ZvcihjPTA7YzwzOysrYylvW2NdPWlbNCpjXSxzW2NdPWlbNCpjKzFdO3RoaXMudXAuc2V0KHQsb1swXSxvWzFdLG9bMl0pLHRoaXMucmlnaHQuc2V0KHQsc1swXSxzWzFdLHNbMl0pfX0scC5wYW49ZnVuY3Rpb24odCxlLHIsbil7ZT1lfHwwLHI9cnx8MCxuPW58fDAsdGhpcy5yZWNhbGNNYXRyaXgodCk7dmFyIGk9dGhpcy5jb21wdXRlZE1hdHJpeCxhPShNYXRoLmV4cCh0aGlzLmNvbXB1dGVkUmFkaXVzWzBdKSxpWzFdKSxvPWlbNV0scz1pWzldLGw9YyhhLG8scyk7YS89bCxvLz1sLHMvPWw7dmFyIHU9aVswXSxmPWlbNF0saD1pWzhdLHA9dSphK2YqbytoKnMsZD1jKHUtPWEqcCxmLT1vKnAsaC09cypwKSxtPSh1Lz1kKSplK2EqcixnPShmLz1kKSplK28qcix2PShoLz1kKSplK3Mqcjt0aGlzLmNlbnRlci5tb3ZlKHQsbSxnLHYpO3ZhciB5PU1hdGguZXhwKHRoaXMuY29tcHV0ZWRSYWRpdXNbMF0pO3k9TWF0aC5tYXgoMWUtNCx5K24pLHRoaXMucmFkaXVzLnNldCh0LE1hdGgubG9nKHkpKX0scC50cmFuc2xhdGU9ZnVuY3Rpb24odCxlLHIsbil7dGhpcy5jZW50ZXIubW92ZSh0LGV8fDAscnx8MCxufHwwKX0scC5zZXRNYXRyaXg9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGE9MTsibnVtYmVyIj09dHlwZW9mIHImJihhPTB8ciksKGE8MHx8YT4zKSYmKGE9MSk7dmFyIG89KGErMiklMztlfHwodGhpcy5yZWNhbGNNYXRyaXgodCksZT10aGlzLmNvbXB1dGVkTWF0cml4KTt2YXIgcz1lW2FdLGw9ZVthKzRdLGY9ZVthKzhdO2lmKG4pe3ZhciBoPU1hdGguYWJzKHMpLHA9TWF0aC5hYnMobCksZD1NYXRoLmFicyhmKSxtPU1hdGgubWF4KGgscCxkKTtoPT09bT8ocz1zPDA/LTE6MSxsPWY9MCk6ZD09PW0/KGY9ZjwwPy0xOjEscz1sPTApOihsPWw8MD8tMToxLHM9Zj0wKX1lbHNle3ZhciBnPWMocyxsLGYpO3MvPWcsbC89ZyxmLz1nfXZhciB2LHkseD1lW29dLGI9ZVtvKzRdLF89ZVtvKzhdLHc9eCpzK2IqbCtfKmYsVD1jKHgtPXMqdyxiLT1sKncsXy09Zip3KSxrPWwqKF8vPVQpLWYqKGIvPVQpLEE9ZiooeC89VCktcypfLE09cypiLWwqeCxTPWMoayxBLE0pO2lmKGsvPVMsQS89UyxNLz1TLHRoaXMuY2VudGVyLmp1bXAodCxxLEcsWSksdGhpcy5yYWRpdXMuaWRsZSh0KSx0aGlzLnVwLmp1bXAodCxzLGwsZiksdGhpcy5yaWdodC5qdW1wKHQseCxiLF8pLDI9PT1hKXt2YXIgRT1lWzFdLEw9ZVs1XSxDPWVbOV0sUD1FKngrTCpiK0MqXyxJPUUqaytMKkErQypNO3Y9UjwwPy1NYXRoLlBJLzI6TWF0aC5QSS8yLHk9TWF0aC5hdGFuMihJLFApfWVsc2V7dmFyIE89ZVsyXSx6PWVbNl0sRD1lWzEwXSxSPU8qcyt6KmwrRCpmLEY9Typ4K3oqYitEKl8sQj1PKmsreipBK0QqTTt2PU1hdGguYXNpbih1KFIpKSx5PU1hdGguYXRhbjIoQixGKX10aGlzLmFuZ2xlLmp1bXAodCx5LHYpLHRoaXMucmVjYWxjTWF0cml4KHQpO3ZhciBOPWVbMl0saj1lWzZdLFU9ZVsxMF0sVj10aGlzLmNvbXB1dGVkTWF0cml4O2koVixlKTt2YXIgSD1WWzE1XSxxPVZbMTJdL0gsRz1WWzEzXS9ILFk9VlsxNF0vSCxXPU1hdGguZXhwKHRoaXMuY29tcHV0ZWRSYWRpdXNbMF0pO3RoaXMuY2VudGVyLmp1bXAodCxxLU4qVyxHLWoqVyxZLVUqVyl9LHAubGFzdFQ9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5tYXgodGhpcy5jZW50ZXIubGFzdFQoKSx0aGlzLnVwLmxhc3RUKCksdGhpcy5yaWdodC5sYXN0VCgpLHRoaXMucmFkaXVzLmxhc3RUKCksdGhpcy5hbmdsZS5sYXN0VCgpKX0scC5pZGxlPWZ1bmN0aW9uKHQpe3RoaXMuY2VudGVyLmlkbGUodCksdGhpcy51cC5pZGxlKHQpLHRoaXMucmlnaHQuaWRsZSh0KSx0aGlzLnJhZGl1cy5pZGxlKHQpLHRoaXMuYW5nbGUuaWRsZSh0KX0scC5mbHVzaD1mdW5jdGlvbih0KXt0aGlzLmNlbnRlci5mbHVzaCh0KSx0aGlzLnVwLmZsdXNoKHQpLHRoaXMucmlnaHQuZmx1c2godCksdGhpcy5yYWRpdXMuZmx1c2godCksdGhpcy5hbmdsZS5mbHVzaCh0KX0scC5zZXREaXN0YW5jZT1mdW5jdGlvbih0LGUpe2U+MCYmdGhpcy5yYWRpdXMuc2V0KHQsTWF0aC5sb2coZSkpfSxwLmxvb2tBdD1mdW5jdGlvbih0LGUscixuKXt0aGlzLnJlY2FsY01hdHJpeCh0KSxlPWV8fHRoaXMuY29tcHV0ZWRFeWUscj1yfHx0aGlzLmNvbXB1dGVkQ2VudGVyO3ZhciBpPShuPW58fHRoaXMuY29tcHV0ZWRVcClbMF0sYT1uWzFdLG89blsyXSxzPWMoaSxhLG8pO2lmKCEoczwxZS02KSl7aS89cyxhLz1zLG8vPXM7dmFyIGw9ZVswXS1yWzBdLGY9ZVsxXS1yWzFdLGg9ZVsyXS1yWzJdLHA9YyhsLGYsaCk7aWYoIShwPDFlLTYpKXtsLz1wLGYvPXAsaC89cDt2YXIgZD10aGlzLmNvbXB1dGVkUmlnaHQsbT1kWzBdLGc9ZFsxXSx2PWRbMl0seT1pKm0rYSpnK28qdix4PWMobS09eSppLGctPXkqYSx2LT15Km8pO2lmKCEoeDwuMDEmJih4PWMobT1hKmgtbypmLGc9bypsLWkqaCx2PWkqZi1hKmwpKTwxZS02KSl7bS89eCxnLz14LHYvPXgsdGhpcy51cC5zZXQodCxpLGEsbyksdGhpcy5yaWdodC5zZXQodCxtLGcsdiksdGhpcy5jZW50ZXIuc2V0KHQsclswXSxyWzFdLHJbMl0pLHRoaXMucmFkaXVzLnNldCh0LE1hdGgubG9nKHApKTt2YXIgYj1hKnYtbypnLF89byptLWkqdix3PWkqZy1hKm0sVD1jKGIsXyx3KSxrPWkqbCthKmYrbypoLEE9bSpsK2cqZit2KmgsTT0oYi89VCkqbCsoXy89VCkqZisody89VCkqaCxTPU1hdGguYXNpbih1KGspKSxFPU1hdGguYXRhbjIoTSxBKSxMPXRoaXMuYW5nbGUuX3N0YXRlLEM9TFtMLmxlbmd0aC0xXSxQPUxbTC5sZW5ndGgtMl07QyU9MipNYXRoLlBJO3ZhciBJPU1hdGguYWJzKEMrMipNYXRoLlBJLUUpLE89TWF0aC5hYnMoQy1FKSx6PU1hdGguYWJzKEMtMipNYXRoLlBJLUUpO0k8TyYmKEMrPTIqTWF0aC5QSSksejxPJiYoQy09MipNYXRoLlBJKSx0aGlzLmFuZ2xlLmp1bXAodGhpcy5hbmdsZS5sYXN0VCgpLEMsUCksdGhpcy5hbmdsZS5zZXQodCxFLFMpfX19fX0seyJmaWx0ZXJlZC12ZWN0b3IiOjY4LCJnbC1tYXQ0L2ludmVydCI6OTgsImdsLW1hdDQvcm90YXRlIjoxMDMsImdsLXZlYzMvY3Jvc3MiOjE1NywiZ2wtdmVjMy9kb3QiOjE2MiwiZ2wtdmVjMy9ub3JtYWxpemUiOjE3OX1dLDMwNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBpPXQqZSxhPW4qdCxvPWEtKGEtdCkscz10LW8sbD1uKmUsYz1sLShsLWUpLHU9ZS1jLGY9cyp1LShpLW8qYy1zKmMtbyp1KTtpZihyKXJldHVybiByWzBdPWYsclsxXT1pLHI7cmV0dXJuW2YsaV19O3ZhciBuPSsoTWF0aC5wb3coMiwyNykrMSl9LHt9XSwzMDc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10K2UsaT1uLXQsYT1lLWksbz10LShuLWkpO2lmKHIpcmV0dXJuIHJbMF09bythLHJbMV09bixyO3JldHVybltvK2Esbl19fSx7fV0sMzA4OltmdW5jdGlvbih0LGUscil7KGZ1bmN0aW9uKGUpeyhmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJiaXQtdHdpZGRsZSIpLGk9dCgiZHVwIiksYT10KCJidWZmZXIiKS5CdWZmZXI7ZS5fX1RZUEVEQVJSQVlfUE9PTHx8KGUuX19UWVBFREFSUkFZX1BPT0w9e1VJTlQ4OmkoWzMyLDBdKSxVSU5UMTY6aShbMzIsMF0pLFVJTlQzMjppKFszMiwwXSksQklHVUlOVDY0OmkoWzMyLDBdKSxJTlQ4OmkoWzMyLDBdKSxJTlQxNjppKFszMiwwXSksSU5UMzI6aShbMzIsMF0pLEJJR0lOVDY0OmkoWzMyLDBdKSxGTE9BVDppKFszMiwwXSksRE9VQkxFOmkoWzMyLDBdKSxEQVRBOmkoWzMyLDBdKSxVSU5UOEM6aShbMzIsMF0pLEJVRkZFUjppKFszMiwwXSl9KTt2YXIgbz0idW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQ4Q2xhbXBlZEFycmF5LHM9InVuZGVmaW5lZCIhPXR5cGVvZiBCaWdVaW50NjRBcnJheSxsPSJ1bmRlZmluZWQiIT10eXBlb2YgQmlnSW50NjRBcnJheSxjPWUuX19UWVBFREFSUkFZX1BPT0w7Yy5VSU5UOEN8fChjLlVJTlQ4Qz1pKFszMiwwXSkpLGMuQklHVUlOVDY0fHwoYy5CSUdVSU5UNjQ9aShbMzIsMF0pKSxjLkJJR0lOVDY0fHwoYy5CSUdJTlQ2ND1pKFszMiwwXSkpLGMuQlVGRkVSfHwoYy5CVUZGRVI9aShbMzIsMF0pKTt2YXIgdT1jLkRBVEEsZj1jLkJVRkZFUjtmdW5jdGlvbiBoKHQpe2lmKHQpe3ZhciBlPXQubGVuZ3RofHx0LmJ5dGVMZW5ndGgscj1uLmxvZzIoZSk7dVtyXS5wdXNoKHQpfX1mdW5jdGlvbiBwKHQpe3Q9bi5uZXh0UG93Mih0KTt2YXIgZT1uLmxvZzIodCkscj11W2VdO3JldHVybiByLmxlbmd0aD4wP3IucG9wKCk6bmV3IEFycmF5QnVmZmVyKHQpfWZ1bmN0aW9uIGQodCl7cmV0dXJuIG5ldyBVaW50OEFycmF5KHAodCksMCx0KX1mdW5jdGlvbiBtKHQpe3JldHVybiBuZXcgVWludDE2QXJyYXkocCgyKnQpLDAsdCl9ZnVuY3Rpb24gZyh0KXtyZXR1cm4gbmV3IFVpbnQzMkFycmF5KHAoNCp0KSwwLHQpfWZ1bmN0aW9uIHYodCl7cmV0dXJuIG5ldyBJbnQ4QXJyYXkocCh0KSwwLHQpfWZ1bmN0aW9uIHkodCl7cmV0dXJuIG5ldyBJbnQxNkFycmF5KHAoMip0KSwwLHQpfWZ1bmN0aW9uIHgodCl7cmV0dXJuIG5ldyBJbnQzMkFycmF5KHAoNCp0KSwwLHQpfWZ1bmN0aW9uIGIodCl7cmV0dXJuIG5ldyBGbG9hdDMyQXJyYXkocCg0KnQpLDAsdCl9ZnVuY3Rpb24gXyh0KXtyZXR1cm4gbmV3IEZsb2F0NjRBcnJheShwKDgqdCksMCx0KX1mdW5jdGlvbiB3KHQpe3JldHVybiBvP25ldyBVaW50OENsYW1wZWRBcnJheShwKHQpLDAsdCk6ZCh0KX1mdW5jdGlvbiBUKHQpe3JldHVybiBzP25ldyBCaWdVaW50NjRBcnJheShwKDgqdCksMCx0KTpudWxsfWZ1bmN0aW9uIGsodCl7cmV0dXJuIGw/bmV3IEJpZ0ludDY0QXJyYXkocCg4KnQpLDAsdCk6bnVsbH1mdW5jdGlvbiBBKHQpe3JldHVybiBuZXcgRGF0YVZpZXcocCh0KSwwLHQpfWZ1bmN0aW9uIE0odCl7dD1uLm5leHRQb3cyKHQpO3ZhciBlPW4ubG9nMih0KSxyPWZbZV07cmV0dXJuIHIubGVuZ3RoPjA/ci5wb3AoKTpuZXcgYSh0KX1yLmZyZWU9ZnVuY3Rpb24odCl7aWYoYS5pc0J1ZmZlcih0KSlmW24ubG9nMih0Lmxlbmd0aCldLnB1c2godCk7ZWxzZXtpZigiW29iamVjdCBBcnJheUJ1ZmZlcl0iIT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpJiYodD10LmJ1ZmZlciksIXQpcmV0dXJuO3ZhciBlPXQubGVuZ3RofHx0LmJ5dGVMZW5ndGgscj0wfG4ubG9nMihlKTt1W3JdLnB1c2godCl9fSxyLmZyZWVVaW50OD1yLmZyZWVVaW50MTY9ci5mcmVlVWludDMyPXIuZnJlZUJpZ1VpbnQ2ND1yLmZyZWVJbnQ4PXIuZnJlZUludDE2PXIuZnJlZUludDMyPXIuZnJlZUJpZ0ludDY0PXIuZnJlZUZsb2F0MzI9ci5mcmVlRmxvYXQ9ci5mcmVlRmxvYXQ2ND1yLmZyZWVEb3VibGU9ci5mcmVlVWludDhDbGFtcGVkPXIuZnJlZURhdGFWaWV3PWZ1bmN0aW9uKHQpe2godC5idWZmZXIpfSxyLmZyZWVBcnJheUJ1ZmZlcj1oLHIuZnJlZUJ1ZmZlcj1mdW5jdGlvbih0KXtmW24ubG9nMih0Lmxlbmd0aCldLnB1c2godCl9LHIubWFsbG9jPWZ1bmN0aW9uKHQsZSl7aWYodm9pZCAwPT09ZXx8ImFycmF5YnVmZmVyIj09PWUpcmV0dXJuIHAodCk7c3dpdGNoKGUpe2Nhc2UidWludDgiOnJldHVybiBkKHQpO2Nhc2UidWludDE2IjpyZXR1cm4gbSh0KTtjYXNlInVpbnQzMiI6cmV0dXJuIGcodCk7Y2FzZSJpbnQ4IjpyZXR1cm4gdih0KTtjYXNlImludDE2IjpyZXR1cm4geSh0KTtjYXNlImludDMyIjpyZXR1cm4geCh0KTtjYXNlImZsb2F0IjpjYXNlImZsb2F0MzIiOnJldHVybiBiKHQpO2Nhc2UiZG91YmxlIjpjYXNlImZsb2F0NjQiOnJldHVybiBfKHQpO2Nhc2UidWludDhfY2xhbXBlZCI6cmV0dXJuIHcodCk7Y2FzZSJiaWdpbnQ2NCI6cmV0dXJuIGsodCk7Y2FzZSJiaWd1aW50NjQiOnJldHVybiBUKHQpO2Nhc2UiYnVmZmVyIjpyZXR1cm4gTSh0KTtjYXNlImRhdGEiOmNhc2UiZGF0YXZpZXciOnJldHVybiBBKHQpO2RlZmF1bHQ6cmV0dXJuIG51bGx9cmV0dXJuIG51bGx9LHIubWFsbG9jQXJyYXlCdWZmZXI9cCxyLm1hbGxvY1VpbnQ4PWQsci5tYWxsb2NVaW50MTY9bSxyLm1hbGxvY1VpbnQzMj1nLHIubWFsbG9jSW50OD12LHIubWFsbG9jSW50MTY9eSxyLm1hbGxvY0ludDMyPXgsci5tYWxsb2NGbG9hdDMyPXIubWFsbG9jRmxvYXQ9YixyLm1hbGxvY0Zsb2F0NjQ9ci5tYWxsb2NEb3VibGU9XyxyLm1hbGxvY1VpbnQ4Q2xhbXBlZD13LHIubWFsbG9jQmlnVWludDY0PVQsci5tYWxsb2NCaWdJbnQ2ND1rLHIubWFsbG9jRGF0YVZpZXc9QSxyLm1hbGxvY0J1ZmZlcj1NLHIuY2xlYXJDYWNoZT1mdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8MzI7Kyt0KWMuVUlOVDhbdF0ubGVuZ3RoPTAsYy5VSU5UMTZbdF0ubGVuZ3RoPTAsYy5VSU5UMzJbdF0ubGVuZ3RoPTAsYy5JTlQ4W3RdLmxlbmd0aD0wLGMuSU5UMTZbdF0ubGVuZ3RoPTAsYy5JTlQzMlt0XS5sZW5ndGg9MCxjLkZMT0FUW3RdLmxlbmd0aD0wLGMuRE9VQkxFW3RdLmxlbmd0aD0wLGMuQklHVUlOVDY0W3RdLmxlbmd0aD0wLGMuQklHSU5UNjRbdF0ubGVuZ3RoPTAsYy5VSU5UOENbdF0ubGVuZ3RoPTAsdVt0XS5sZW5ndGg9MCxmW3RdLmxlbmd0aD0wfX0pLmNhbGwodGhpcyl9KS5jYWxsKHRoaXMsdm9pZCAwIT09bj9uOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSl9LHsiYml0LXR3aWRkbGUiOjMyLGJ1ZmZlcjozLGR1cDo2NX1dLDMwOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3RoaXMucm9vdHM9bmV3IEFycmF5KHQpLHRoaXMucmFua3M9bmV3IEFycmF5KHQpO2Zvcih2YXIgZT0wO2U8dDsrK2UpdGhpcy5yb290c1tlXT1lLHRoaXMucmFua3NbZV09MH1lLmV4cG9ydHM9bjt2YXIgaT1uLnByb3RvdHlwZTtPYmplY3QuZGVmaW5lUHJvcGVydHkoaSwibGVuZ3RoIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucm9vdHMubGVuZ3RofX0pLGkubWFrZVNldD1mdW5jdGlvbigpe3ZhciB0PXRoaXMucm9vdHMubGVuZ3RoO3JldHVybiB0aGlzLnJvb3RzLnB1c2godCksdGhpcy5yYW5rcy5wdXNoKDApLHR9LGkuZmluZD1mdW5jdGlvbih0KXtmb3IodmFyIGU9dCxyPXRoaXMucm9vdHM7clt0XSE9PXQ7KXQ9clt0XTtmb3IoO3JbZV0hPT10Oyl7dmFyIG49cltlXTtyW2VdPXQsZT1ufXJldHVybiB0fSxpLmxpbms9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmZpbmQodCksbj10aGlzLmZpbmQoZSk7aWYociE9PW4pe3ZhciBpPXRoaXMucmFua3MsYT10aGlzLnJvb3RzLG89aVtyXSxzPWlbbl07bzxzP2Fbcl09bjpzPG8/YVtuXT1yOihhW25dPXIsKytpW3JdKX19fSx7fV0sMzEwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7cmV0dXJuIDA9PT10Lmxlbmd0aD90OmU/KHJ8fHQuc29ydChlKSxmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0xLG49dC5sZW5ndGgsaT10WzBdLGE9dFswXSxvPTE7bzxuOysrbylpZihhPWksZShpPXRbb10sYSkpe2lmKG89PT1yKXtyKys7Y29udGludWV9dFtyKytdPWl9cmV0dXJuIHQubGVuZ3RoPXIsdH0odCxlKSk6KHJ8fHQuc29ydCgpLGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xLHI9dC5sZW5ndGgsbj10WzBdLGk9dFswXSxhPTE7YTxyOysrYSxpPW4paWYoaT1uLChuPXRbYV0pIT09aSl7aWYoYT09PWUpe2UrKztjb250aW51ZX10W2UrK109bn1yZXR1cm4gdC5sZW5ndGg9ZSx0fSh0KSl9fSx7fV0sMzExOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpeyJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWV8fChlPXt9KTtyZXR1cm4gbih0LGUuY2FudmFzfHxpLGUuY29udGV4dHx8YSxlKX07dmFyIG49dCgiLi9saWIvdnRleHQiKSxpPW51bGwsYT1udWxsOyJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQmJigoaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSkud2lkdGg9ODE5MixpLmhlaWdodD0xMDI0LGE9aS5nZXRDb250ZXh0KCIyZCIpKX0seyIuL2xpYi92dGV4dCI6MzEyfV0sMzEyOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhPTY0LG89MS4yNSxzPXticmVha2xpbmVzOiExLGJvbGRzOiExLGl0YWxpY3M6ITEsc3Vic2NyaXB0czohMSxzdXBlcnNjcmlwdHM6ITF9O24mJihuLnNpemUmJm4uc2l6ZT4wJiYoYT1uLnNpemUpLG4ubGluZVNwYWNpbmcmJm4ubGluZVNwYWNpbmc+MCYmKG89bi5saW5lU3BhY2luZyksbi5zdHlsZXRhZ3MmJm4uc3R5bGV0YWdzLmJyZWFrbGluZXMmJihzLmJyZWFrbGluZXM9ISFuLnN0eWxldGFncy5icmVha2xpbmVzKSxuLnN0eWxldGFncyYmbi5zdHlsZXRhZ3MuYm9sZHMmJihzLmJvbGRzPSEhbi5zdHlsZXRhZ3MuYm9sZHMpLG4uc3R5bGV0YWdzJiZuLnN0eWxldGFncy5pdGFsaWNzJiYocy5pdGFsaWNzPSEhbi5zdHlsZXRhZ3MuaXRhbGljcyksbi5zdHlsZXRhZ3MmJm4uc3R5bGV0YWdzLnN1YnNjcmlwdHMmJihzLnN1YnNjcmlwdHM9ISFuLnN0eWxldGFncy5zdWJzY3JpcHRzKSxuLnN0eWxldGFncyYmbi5zdHlsZXRhZ3Muc3VwZXJzY3JpcHRzJiYocy5zdXBlcnNjcmlwdHM9ISFuLnN0eWxldGFncy5zdXBlcnNjcmlwdHMpKTtyZXR1cm4gci5mb250PVtuLmZvbnRTdHlsZSxuLmZvbnRWYXJpYW50LG4uZm9udFdlaWdodCxhKyJweCIsbi5mb250XS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0fSkpLmpvaW4oIiAiKSxyLnRleHRBbGlnbj0ic3RhcnQiLHIudGV4dEJhc2VsaW5lPSJhbHBoYWJldGljIixyLmRpcmVjdGlvbj0ibHRyIixoKGZ1bmN0aW9uKHQsZSxyLG4sYSxvKXtyPXIucmVwbGFjZSgvXG4vZywiIikscj0hMD09PW8uYnJlYWtsaW5lcz9yLnJlcGxhY2UoL1w8YnJcPi9nLCJcbiIpOnIucmVwbGFjZSgvXDxiclw+L2csIiAiKTt2YXIgcz0iIixsPVtdO2ZvcihwPTA7cDxyLmxlbmd0aDsrK3ApbFtwXT1zOyEwPT09by5ib2xkcyYmKGw9YygiYiIsImJ8IixyLGwpKTshMD09PW8uaXRhbGljcyYmKGw9YygiaSIsIml8IixyLGwpKTshMD09PW8uc3VwZXJzY3JpcHRzJiYobD1jKCJzdXAiLCIrMSIscixsKSk7ITA9PT1vLnN1YnNjcmlwdHMmJihsPWMoInN1YiIsIi0xIixyLGwpKTt2YXIgdT1bXSxmPSIiO2ZvcihwPTA7cDxyLmxlbmd0aDsrK3ApbnVsbCE9PWxbcF0mJihmKz1yW3BdLHUucHVzaChsW3BdKSk7dmFyIGgscCxkLG0sZyx2PWYuc3BsaXQoIlxuIikseT12Lmxlbmd0aCx4PU1hdGgucm91bmQoYSpuKSxiPW4sXz0yKm4sdz0wLFQ9eSp4K187dC5oZWlnaHQ8VCYmKHQuaGVpZ2h0PVQpO2UuZmlsbFN0eWxlPSIjMDAwIixlLmZpbGxSZWN0KDAsMCx0LndpZHRoLHQuaGVpZ2h0KSxlLmZpbGxTdHlsZT0iI2ZmZiI7dmFyIGs9MCxBPSIiO2Z1bmN0aW9uIE0oKXtpZigiIiE9PUEpe3ZhciB0PWUubWVhc3VyZVRleHQoQSkud2lkdGg7ZS5maWxsVGV4dChBLGIrZCxfK20pLGQrPXR9fWZ1bmN0aW9uIFMoKXtyZXR1cm4gTWF0aC5yb3VuZChnKSsicHggIn1mdW5jdGlvbiBFKHQscil7dmFyIG49IiIrZS5mb250O2lmKCEwPT09by5zdWJzY3JpcHRzKXt2YXIgaT10LmluZGV4T2YoIi0iKSxhPXIuaW5kZXhPZigiLSIpLHM9aT4tMT9wYXJzZUludCh0WzEraV0pOjAsbD1hPi0xP3BhcnNlSW50KHJbMSthXSk6MDtzIT09bCYmKG49bi5yZXBsYWNlKFMoKSwiP3B4ICIpLGcqPU1hdGgucG93KC43NSxsLXMpLG49bi5yZXBsYWNlKCI/cHggIixTKCkpKSxtKz0uMjUqeCoobC1zKX1pZighMD09PW8uc3VwZXJzY3JpcHRzKXt2YXIgYz10LmluZGV4T2YoIisiKSx1PXIuaW5kZXhPZigiKyIpLGY9Yz4tMT9wYXJzZUludCh0WzErY10pOjAsaD11Pi0xP3BhcnNlSW50KHJbMSt1XSk6MDtmIT09aCYmKG49bi5yZXBsYWNlKFMoKSwiP3B4ICIpLGcqPU1hdGgucG93KC43NSxoLWYpLG49bi5yZXBsYWNlKCI/cHggIixTKCkpKSxtLT0uMjUqeCooaC1mKX1pZighMD09PW8uYm9sZHMpe3ZhciBwPXQuaW5kZXhPZigiYnwiKT4tMSxkPXIuaW5kZXhPZigiYnwiKT4tMTshcCYmZCYmKG49dj9uLnJlcGxhY2UoIml0YWxpYyAiLCJpdGFsaWMgYm9sZCAiKToiYm9sZCAiK24pLHAmJiFkJiYobj1uLnJlcGxhY2UoImJvbGQgIiwiIikpfWlmKCEwPT09by5pdGFsaWNzKXt2YXIgdj10LmluZGV4T2YoIml8Iik+LTEseT1yLmluZGV4T2YoIml8Iik+LTE7IXYmJnkmJihuPSJpdGFsaWMgIituKSx2JiYheSYmKG49bi5yZXBsYWNlKCJpdGFsaWMgIiwiIikpfWUuZm9udD1ufWZvcihoPTA7aDx5OysraCl7dmFyIEw9dltoXSsiXG4iO2ZvcihkPTAsbT1oKngsZz1uLEE9IiIscD0wO3A8TC5sZW5ndGg7KytwKXt2YXIgQz1wK2s8dS5sZW5ndGg/dVtwK2tdOnVbdS5sZW5ndGgtMV07cz09PUM/QSs9TFtwXTooTSgpLEE9TFtwXSx2b2lkIDAhPT1DJiYoRShzLEMpLHM9QykpfU0oKSxrKz1MLmxlbmd0aDt2YXIgUD0wfE1hdGgucm91bmQoZCsyKmIpO3c8UCYmKHc9UCl9dmFyIEk9dyxPPV8reCp5O3JldHVybiBpKGUuZ2V0SW1hZ2VEYXRhKDAsMCxJLE8pLmRhdGEsW08sSSw0XSkucGljaygtMSwtMSwwKS50cmFuc3Bvc2UoMSwwKX0oZSxyLHQsYSxvLHMpLG4sYSl9LGUuZXhwb3J0cy5wcm9jZXNzUGl4ZWxzPWg7dmFyIG49dCgic3VyZmFjZS1uZXRzIiksaT10KCJuZGFycmF5IiksYT10KCJzaW1wbGlmeS1wbGFuYXItZ3JhcGgiKSxvPXQoImNsZWFuLXBzbGciKSxzPXQoImNkdDJkIiksbD10KCJwbGFuYXItZ3JhcGgtdG8tcG9seWxpbmUiKTtmdW5jdGlvbiBjKHQsZSxyLG4pe2Zvcih2YXIgaT0iPCIrdCsiPiIsYT0iPC8iK3QrIj4iLG89aS5sZW5ndGgscz1hLmxlbmd0aCxsPSIrIj09PWVbMF18fCItIj09PWVbMF0sYz0wLHU9LXM7Yz4tMSYmLTEhPT0oYz1yLmluZGV4T2YoaSxjKSkmJi0xIT09KHU9ci5pbmRleE9mKGEsYytvKSkmJiEodTw9Yyk7KXtmb3IodmFyIGY9YztmPHUrczsrK2YpaWYoZjxjK298fGY+PXUpbltmXT1udWxsLHI9ci5zdWJzdHIoMCxmKSsiICIrci5zdWJzdHIoZisxKTtlbHNlIGlmKG51bGwhPT1uW2ZdKXt2YXIgaD1uW2ZdLmluZGV4T2YoZVswXSk7LTE9PT1oP25bZl0rPWU6bCYmKG5bZl09bltmXS5zdWJzdHIoMCxoKzEpKygxK3BhcnNlSW50KG5bZl1baCsxXSkpK25bZl0uc3Vic3RyKGgrMikpfXZhciBwPWMrbyxkPXIuc3Vic3RyKHAsdS1wKS5pbmRleE9mKGkpO2M9LTEhPT1kP2Q6dStzfXJldHVybiBufWZ1bmN0aW9uIHUodCxlKXt2YXIgcj1uKHQsMTI4KTtyZXR1cm4gZT9hKHIuY2VsbHMsci5wb3NpdGlvbnMsLjI1KTp7ZWRnZXM6ci5jZWxscyxwb3NpdGlvbnM6ci5wb3NpdGlvbnN9fWZ1bmN0aW9uIGYodCxlLHIsbil7dmFyIGk9dSh0LG4pLGE9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj1lLnRleHRBbGlnbnx8InN0YXJ0IixpPWUudGV4dEJhc2VsaW5lfHwiYWxwaGFiZXRpYyIsYT1bMTw8MzAsMTw8MzBdLG89WzAsMF0scz10Lmxlbmd0aCxsPTA7bDxzOysrbClmb3IodmFyIGM9dFtsXSx1PTA7dTwyOysrdSlhW3VdPTB8TWF0aC5taW4oYVt1XSxjW3VdKSxvW3VdPTB8TWF0aC5tYXgob1t1XSxjW3VdKTt2YXIgZj0wO3N3aXRjaChuKXtjYXNlImNlbnRlciI6Zj0tLjUqKGFbMF0rb1swXSk7YnJlYWs7Y2FzZSJyaWdodCI6Y2FzZSJlbmQiOmY9LW9bMF07YnJlYWs7Y2FzZSJsZWZ0IjpjYXNlInN0YXJ0IjpmPS1hWzBdO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJ2ZWN0b3JpemUtdGV4dDogVW5yZWNvZ25pemVkIHRleHRBbGlnbjogJyIrbisiJyIpfXZhciBoPTA7c3dpdGNoKGkpe2Nhc2UiaGFuZ2luZyI6Y2FzZSJ0b3AiOmg9LWFbMV07YnJlYWs7Y2FzZSJtaWRkbGUiOmg9LS41KihhWzFdK29bMV0pO2JyZWFrO2Nhc2UiYWxwaGFiZXRpYyI6Y2FzZSJpZGVvZ3JhcGhpYyI6aD0tMypyO2JyZWFrO2Nhc2UiYm90dG9tIjpoPS1vWzFdO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJ2ZWN0b3JpemUtdGV4dDogVW5yZWNvZ2luaXplZCB0ZXh0QmFzZWxpbmU6ICciK2krIiciKX12YXIgcD0xL3I7cmV0dXJuImxpbmVIZWlnaHQiaW4gZT9wKj0rZS5saW5lSGVpZ2h0OiJ3aWR0aCJpbiBlP3A9ZS53aWR0aC8ob1swXS1hWzBdKToiaGVpZ2h0ImluIGUmJihwPWUuaGVpZ2h0LyhvWzFdLWFbMV0pKSx0Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuW3AqKHRbMF0rZikscCoodFsxXStoKV19KSl9KGkucG9zaXRpb25zLGUsciksYz1pLmVkZ2VzLGY9ImNjdyI9PT1lLm9yaWVudGF0aW9uO2lmKG8oYSxjKSxlLnBvbHlnb25zfHxlLnBvbHlnb258fGUucG9seWxpbmUpe2Zvcih2YXIgaD1sKGMsYSkscD1uZXcgQXJyYXkoaC5sZW5ndGgpLGQ9MDtkPGgubGVuZ3RoOysrZCl7Zm9yKHZhciBtPWhbZF0sZz1uZXcgQXJyYXkobS5sZW5ndGgpLHY9MDt2PG0ubGVuZ3RoOysrdil7Zm9yKHZhciB5PW1bdl0seD1uZXcgQXJyYXkoeS5sZW5ndGgpLGI9MDtiPHkubGVuZ3RoOysrYil4W2JdPWFbeVtiXV0uc2xpY2UoKTtmJiZ4LnJldmVyc2UoKSxnW3ZdPXh9cFtkXT1nfXJldHVybiBwfXJldHVybiBlLnRyaWFuZ2xlc3x8ZS50cmlhbmd1bGF0ZXx8ZS50cmlhbmdsZT97Y2VsbHM6cyhhLGMse2RlbGF1bmF5OiExLGV4dGVyaW9yOiExLGludGVyaW9yOiEwfSkscG9zaXRpb25zOmF9OntlZGdlczpjLHBvc2l0aW9uczphfX1mdW5jdGlvbiBoKHQsZSxyKXt0cnl7cmV0dXJuIGYodCxlLHIsITApfWNhdGNoKHQpe310cnl7cmV0dXJuIGYodCxlLHIsITEpfWNhdGNoKHQpe31yZXR1cm4gZS5wb2x5Z29uc3x8ZS5wb2x5bGluZXx8ZS5wb2x5Z29uP1tdOmUudHJpYW5nbGVzfHxlLnRyaWFuZ3VsYXRlfHxlLnRyaWFuZ2xlP3tjZWxsczpbXSxwb3NpdGlvbnM6W119OntlZGdlczpbXSxwb3NpdGlvbnM6W119fX0se2NkdDJkOjQyLCJjbGVhbi1wc2xnIjo1MCxuZGFycmF5OjI1OSwicGxhbmFyLWdyYXBoLXRvLXBvbHlsaW5lIjoyNjgsInNpbXBsaWZ5LXBsYW5hci1ncmFwaCI6Mjk3LCJzdXJmYWNlLW5ldHMiOjMwMn1dLDMxMzpbZnVuY3Rpb24odCxlLHIpeyFmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0IjtpZigidW5kZWZpbmVkIj09dHlwZW9mIHNlc3x8IXNlcy5va3x8c2VzLm9rKCkpeyJ1bmRlZmluZWQiIT10eXBlb2Ygc2VzJiYoc2VzLndlYWtNYXBQZXJtaXRIb3N0T2JqZWN0cz1tKTt2YXIgdD0hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgV2Vha01hcCl7dmFyIHI9V2Vha01hcDtpZigidW5kZWZpbmVkIiE9dHlwZW9mIG5hdmlnYXRvciYmL0ZpcmVmb3gvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpO2Vsc2V7dmFyIG49bmV3IHIsaT1PYmplY3QuZnJlZXplKHt9KTtpZihuLnNldChpLDEpLDE9PT1uLmdldChpKSlyZXR1cm4gdm9pZChlLmV4cG9ydHM9V2Vha01hcCk7dD0hMH19T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyxvPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxzPU9iamVjdC5pc0V4dGVuc2libGUsbD0id2Vha21hcDppZGVudDoiK01hdGgucmFuZG9tKCkrIl9fXyI7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBjcnlwdG8mJiJmdW5jdGlvbiI9PXR5cGVvZiBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzJiYiZnVuY3Rpb24iPT10eXBlb2YgQXJyYXlCdWZmZXImJiJmdW5jdGlvbiI9PXR5cGVvZiBVaW50OEFycmF5KXt2YXIgYz1uZXcgQXJyYXlCdWZmZXIoMjUpLHU9bmV3IFVpbnQ4QXJyYXkoYyk7Y3J5cHRvLmdldFJhbmRvbVZhbHVlcyh1KSxsPSJ3ZWFrbWFwOnJhbmQ6IitBcnJheS5wcm90b3R5cGUubWFwLmNhbGwodSwoZnVuY3Rpb24odCl7cmV0dXJuKHQlMzYpLnRvU3RyaW5nKDM2KX0pKS5qb2luKCIiKSsiX19fIn1pZihvKE9iamVjdCwiZ2V0T3duUHJvcGVydHlOYW1lcyIse3ZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiBhKHQpLmZpbHRlcihnKX19KSwiZ2V0UHJvcGVydHlOYW1lcyJpbiBPYmplY3Qpe3ZhciBmPU9iamVjdC5nZXRQcm9wZXJ0eU5hbWVzO28oT2JqZWN0LCJnZXRQcm9wZXJ0eU5hbWVzIix7dmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIGYodCkuZmlsdGVyKGcpfX0pfSFmdW5jdGlvbigpe3ZhciB0PU9iamVjdC5mcmVlemU7byhPYmplY3QsImZyZWV6ZSIse3ZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiB2KGUpLHQoZSl9fSk7dmFyIGU9T2JqZWN0LnNlYWw7byhPYmplY3QsInNlYWwiLHt2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdih0KSxlKHQpfX0pO3ZhciByPU9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucztvKE9iamVjdCwicHJldmVudEV4dGVuc2lvbnMiLHt2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdih0KSxyKHQpfX0pfSgpO3ZhciBoPSExLHA9MCxkPWZ1bmN0aW9uKCl7dGhpcyBpbnN0YW5jZW9mIGR8fHgoKTt2YXIgdD1bXSxlPVtdLHI9cCsrO3JldHVybiBPYmplY3QuY3JlYXRlKGQucHJvdG90eXBlLHtnZXRfX186e3ZhbHVlOnkoKGZ1bmN0aW9uKG4saSl7dmFyIGEsbz12KG4pO3JldHVybiBvP3IgaW4gbz9vW3JdOmk6KGE9dC5pbmRleE9mKG4pKT49MD9lW2FdOml9KSl9LGhhc19fXzp7dmFsdWU6eSgoZnVuY3Rpb24oZSl7dmFyIG49dihlKTtyZXR1cm4gbj9yIGluIG46dC5pbmRleE9mKGUpPj0wfSkpfSxzZXRfX186e3ZhbHVlOnkoKGZ1bmN0aW9uKG4saSl7dmFyIGEsbz12KG4pO3JldHVybiBvP29bcl09aTooYT10LmluZGV4T2YobikpPj0wP2VbYV09aTooYT10Lmxlbmd0aCxlW2FdPWksdFthXT1uKSx0aGlzfSkpfSxkZWxldGVfX186e3ZhbHVlOnkoKGZ1bmN0aW9uKG4pe3ZhciBpLGEsbz12KG4pO3JldHVybiBvP3IgaW4gbyYmZGVsZXRlIG9bcl06ISgoaT10LmluZGV4T2YobikpPDApJiYoYT10Lmxlbmd0aC0xLHRbaV09dm9pZCAwLGVbaV09ZVthXSx0W2ldPXRbYV0sdC5sZW5ndGg9YSxlLmxlbmd0aD1hLCEwKX0pKX19KX07ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShPYmplY3QucHJvdG90eXBlLHtnZXQ6e3ZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuZ2V0X19fKHQsZSl9LHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0saGFzOnt2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5oYXNfX18odCl9LHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0sc2V0Ont2YWx1ZTpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnNldF9fXyh0LGUpfSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9LGRlbGV0ZTp7dmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZGVsZXRlX19fKHQpfSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksImZ1bmN0aW9uIj09dHlwZW9mIHI/ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKCl7dGhpcyBpbnN0YW5jZW9mIGR8fHgoKTt2YXIgZSxuPW5ldyByLGk9dm9pZCAwLGE9ITE7cmV0dXJuIGU9dD9mdW5jdGlvbih0LGUpe3JldHVybiBuLnNldCh0LGUpLG4uaGFzKHQpfHwoaXx8KGk9bmV3IGQpLGkuc2V0KHQsZSkpLHRoaXN9OmZ1bmN0aW9uKHQsZSl7aWYoYSl0cnl7bi5zZXQodCxlKX1jYXRjaChyKXtpfHwoaT1uZXcgZCksaS5zZXRfX18odCxlKX1lbHNlIG4uc2V0KHQsZSk7cmV0dXJuIHRoaXN9LE9iamVjdC5jcmVhdGUoZC5wcm90b3R5cGUse2dldF9fXzp7dmFsdWU6eSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gaT9uLmhhcyh0KT9uLmdldCh0KTppLmdldF9fXyh0LGUpOm4uZ2V0KHQsZSl9KSl9LGhhc19fXzp7dmFsdWU6eSgoZnVuY3Rpb24odCl7cmV0dXJuIG4uaGFzKHQpfHwhIWkmJmkuaGFzX19fKHQpfSkpfSxzZXRfX186e3ZhbHVlOnkoZSl9LGRlbGV0ZV9fXzp7dmFsdWU6eSgoZnVuY3Rpb24odCl7dmFyIGU9ISFuLmRlbGV0ZSh0KTtyZXR1cm4gaSYmaS5kZWxldGVfX18odCl8fGV9KSl9LHBlcm1pdEhvc3RPYmplY3RzX19fOnt2YWx1ZTp5KChmdW5jdGlvbih0KXtpZih0IT09bSl0aHJvdyBuZXcgRXJyb3IoImJvZ3VzIGNhbGwgdG8gcGVybWl0SG9zdE9iamVjdHNfX18iKTthPSEwfSkpfX0pfXQmJiJ1bmRlZmluZWQiIT10eXBlb2YgUHJveHkmJihQcm94eT12b2lkIDApLG4ucHJvdG90eXBlPWQucHJvdG90eXBlLGUuZXhwb3J0cz1uLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXZWFrTWFwLnByb3RvdHlwZSwiY29uc3RydWN0b3IiLHt2YWx1ZTpXZWFrTWFwLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSl9KCk6KCJ1bmRlZmluZWQiIT10eXBlb2YgUHJveHkmJihQcm94eT12b2lkIDApLGUuZXhwb3J0cz1kKX1mdW5jdGlvbiBtKHQpe3QucGVybWl0SG9zdE9iamVjdHNfX18mJnQucGVybWl0SG9zdE9iamVjdHNfX18obSl9ZnVuY3Rpb24gZyh0KXtyZXR1cm4hKCJ3ZWFrbWFwOiI9PXQuc3Vic3RyKDAsIndlYWttYXA6Ii5sZW5ndGgpJiYiX19fIj09PXQuc3Vic3RyKHQubGVuZ3RoLTMpKX1mdW5jdGlvbiB2KHQpe2lmKHQhPT1PYmplY3QodCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiTm90IGFuIG9iamVjdDogIit0KTt2YXIgZT10W2xdO2lmKGUmJmUua2V5PT09dClyZXR1cm4gZTtpZihzKHQpKXtlPXtrZXk6dH07dHJ5e3JldHVybiBvKHQsbCx7dmFsdWU6ZSx3cml0YWJsZTohMSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMX0pLGV9Y2F0Y2godCl7cmV0dXJufX19ZnVuY3Rpb24geSh0KXtyZXR1cm4gdC5wcm90b3R5cGU9bnVsbCxPYmplY3QuZnJlZXplKHQpfWZ1bmN0aW9uIHgoKXtofHwidW5kZWZpbmVkIj09dHlwZW9mIGNvbnNvbGV8fChoPSEwLGNvbnNvbGUud2FybigiV2Vha01hcCBzaG91bGQgYmUgaW52b2tlZCBhcyBuZXcgV2Vha01hcCgpLCBub3QgV2Vha01hcCgpLiBUaGlzIHdpbGwgYmUgYW4gZXJyb3IgaW4gdGhlIGZ1dHVyZS4iKSl9fSgpfSx7fV0sMzE0OltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiLi9oaWRkZW4tc3RvcmUuanMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgdD17fTtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoKCJvYmplY3QiIT10eXBlb2YgZXx8bnVsbD09PWUpJiYiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IoIldlYWttYXAtc2hpbTogS2V5IG11c3QgYmUgb2JqZWN0Iik7dmFyIHI9ZS52YWx1ZU9mKHQpO3JldHVybiByJiZyLmlkZW50aXR5PT09dD9yOm4oZSx0KX19fSx7Ii4vaGlkZGVuLXN0b3JlLmpzIjozMTV9XSwzMTU6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj17aWRlbnRpdHk6ZX0sbj10LnZhbHVlT2Y7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJ2YWx1ZU9mIix7dmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHQhPT1lP24uYXBwbHkodGhpcyxhcmd1bWVudHMpOnJ9LHdyaXRhYmxlOiEwfSkscn19LHt9XSwzMTY6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCIuL2NyZWF0ZS1zdG9yZS5qcyIpO2UuZXhwb3J0cz1mdW5jdGlvbigpe3ZhciB0PW4oKTtyZXR1cm57Z2V0OmZ1bmN0aW9uKGUscil7dmFyIG49dChlKTtyZXR1cm4gbi5oYXNPd25Qcm9wZXJ0eSgidmFsdWUiKT9uLnZhbHVlOnJ9LHNldDpmdW5jdGlvbihlLHIpe3JldHVybiB0KGUpLnZhbHVlPXIsdGhpc30saGFzOmZ1bmN0aW9uKGUpe3JldHVybiJ2YWx1ZSJpbiB0KGUpfSxkZWxldGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGRlbGV0ZSB0KGUpLnZhbHVlfX19fSx7Ii4vY3JlYXRlLXN0b3JlLmpzIjozMTR9XSwzMTc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG4saT1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0LGUscixuLGksYSl7dmFyIG89dFswXSxzPXJbMF0sbD1bMF0sYz1zO258PTA7dmFyIHU9MCxmPXM7Zm9yKHU9MDt1PG87Kyt1KXt2YXIgaD1lW25dLWEscD1lW24rY10tYTtoPj0wIT1wPj0wJiZpLnB1c2gobFswXSsuNSsuNSooaCtwKS8oaC1wKSksbis9ZiwrK2xbMF19fX07ZS5leHBvcnRzPShuPXtmdW5jTmFtZTp7ZnVuY05hbWU6Inplcm9Dcm9zc2luZ3MifS5mdW5jTmFtZX0sZnVuY3Rpb24odCl7dmFyIGU9e307cmV0dXJuIGZ1bmN0aW9uKHIsbixpKXt2YXIgYT1yLmR0eXBlLG89ci5vcmRlcixzPVthLG8uam9pbigpXS5qb2luKCksbD1lW3NdO3JldHVybiBsfHwoZVtzXT1sPXQoW2Esb10pKSxsKHIuc2hhcGUuc2xpY2UoMCksci5kYXRhLHIuc3RyaWRlLDB8ci5vZmZzZXQsbixpKX19KGkuYmluZCh2b2lkIDAsbikpKX0se31dLDMxODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1bXTtyZXR1cm4gZT0rZXx8MCxuKHQuaGkodC5zaGFwZVswXS0xKSxyLGUpLHJ9O3ZhciBuPXQoIi4vbGliL3pjLWNvcmUiKX0seyIuL2xpYi96Yy1jb3JlIjozMTd9XX0se30sWzZdKSg2KX0pKX0pLmNhbGwodGhpcyl9KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSl9LHt9XX0se30sWzI3XSkoMjcpfSkpOw==" ></script>
+
+ <!-- require -->
+ <script src="data:application/javascript;base64,dmFyIHJlcXVpcmVqcyxyZXF1aXJlLGRlZmluZTshZnVuY3Rpb24oZ2xvYmFsLHNldFRpbWVvdXQpe3ZhciByZXEscyxoZWFkLGJhc2VFbGVtZW50LGRhdGFNYWluLHNyYyxpbnRlcmFjdGl2ZVNjcmlwdCxjdXJyZW50bHlBZGRpbmdTY3JpcHQsbWFpblNjcmlwdCxzdWJQYXRoLHZlcnNpb249IjIuMy42Iixjb21tZW50UmVnRXhwPS9cL1wqW1xzXFNdKj9cKlwvfChbXjoiJz1dfF4pXC9cLy4qJC9nbSxjanNSZXF1aXJlUmVnRXhwPS9bXi5dXHMqcmVxdWlyZVxzKlwoXHMqWyInXShbXiciXHNdKylbIiddXHMqXCkvZyxqc1N1ZmZpeFJlZ0V4cD0vXC5qcyQvLGN1cnJEaXJSZWdFeHA9L15cLlwvLyxvcD1PYmplY3QucHJvdG90eXBlLG9zdHJpbmc9b3AudG9TdHJpbmcsaGFzT3duPW9wLmhhc093blByb3BlcnR5LGlzQnJvd3Nlcj0hKCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93fHwidW5kZWZpbmVkIj09dHlwZW9mIG5hdmlnYXRvcnx8IXdpbmRvdy5kb2N1bWVudCksaXNXZWJXb3JrZXI9IWlzQnJvd3NlciYmInVuZGVmaW5lZCIhPXR5cGVvZiBpbXBvcnRTY3JpcHRzLHJlYWR5UmVnRXhwPWlzQnJvd3NlciYmIlBMQVlTVEFUSU9OIDMiPT09bmF2aWdhdG9yLnBsYXRmb3JtPy9eY29tcGxldGUkLzovXihjb21wbGV0ZXxsb2FkZWQpJC8sZGVmQ29udGV4dE5hbWU9Il8iLGlzT3BlcmE9InVuZGVmaW5lZCIhPXR5cGVvZiBvcGVyYSYmIltvYmplY3QgT3BlcmFdIj09PW9wZXJhLnRvU3RyaW5nKCksY29udGV4dHM9e30sY2ZnPXt9LGdsb2JhbERlZlF1ZXVlPVtdLHVzZUludGVyYWN0aXZlPSExO2Z1bmN0aW9uIGNvbW1lbnRSZXBsYWNlKGUsdCl7cmV0dXJuIHR8fCIifWZ1bmN0aW9uIGlzRnVuY3Rpb24oZSl7cmV0dXJuIltvYmplY3QgRnVuY3Rpb25dIj09PW9zdHJpbmcuY2FsbChlKX1mdW5jdGlvbiBpc0FycmF5KGUpe3JldHVybiJbb2JqZWN0IEFycmF5XSI9PT1vc3RyaW5nLmNhbGwoZSl9ZnVuY3Rpb24gZWFjaChlLHQpe3ZhciBpO2lmKGUpZm9yKGk9MDtpPGUubGVuZ3RoJiYoIWVbaV18fCF0KGVbaV0saSxlKSk7aSs9MSk7fWZ1bmN0aW9uIGVhY2hSZXZlcnNlKGUsdCl7dmFyIGk7aWYoZSlmb3IoaT1lLmxlbmd0aC0xOy0xPGkmJighZVtpXXx8IXQoZVtpXSxpLGUpKTtpLT0xKTt9ZnVuY3Rpb24gaGFzUHJvcChlLHQpe3JldHVybiBoYXNPd24uY2FsbChlLHQpfWZ1bmN0aW9uIGdldE93bihlLHQpe3JldHVybiBoYXNQcm9wKGUsdCkmJmVbdF19ZnVuY3Rpb24gZWFjaFByb3AoZSx0KXt2YXIgaTtmb3IoaSBpbiBlKWlmKGhhc1Byb3AoZSxpKSYmdChlW2ldLGkpKWJyZWFrfWZ1bmN0aW9uIG1peGluKGksZSxyLG4pe3JldHVybiBlJiZlYWNoUHJvcChlLGZ1bmN0aW9uKGUsdCl7IXImJmhhc1Byb3AoaSx0KXx8KCFufHwib2JqZWN0IiE9dHlwZW9mIGV8fCFlfHxpc0FycmF5KGUpfHxpc0Z1bmN0aW9uKGUpfHxlIGluc3RhbmNlb2YgUmVnRXhwP2lbdF09ZTooaVt0XXx8KGlbdF09e30pLG1peGluKGlbdF0sZSxyLG4pKSl9KSxpfWZ1bmN0aW9uIGJpbmQoZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdC5hcHBseShlLGFyZ3VtZW50cyl9fWZ1bmN0aW9uIHNjcmlwdHMoKXtyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpfWZ1bmN0aW9uIGRlZmF1bHRPbkVycm9yKGUpe3Rocm93IGV9ZnVuY3Rpb24gZ2V0R2xvYmFsKGUpe2lmKCFlKXJldHVybiBlO3ZhciB0PWdsb2JhbDtyZXR1cm4gZWFjaChlLnNwbGl0KCIuIiksZnVuY3Rpb24oZSl7dD10W2VdfSksdH1mdW5jdGlvbiBtYWtlRXJyb3IoZSx0LGkscil7dmFyIG49bmV3IEVycm9yKHQrIlxuaHR0cHM6Ly9yZXF1aXJlanMub3JnL2RvY3MvZXJyb3JzLmh0bWwjIitlKTtyZXR1cm4gbi5yZXF1aXJlVHlwZT1lLG4ucmVxdWlyZU1vZHVsZXM9cixpJiYobi5vcmlnaW5hbEVycm9yPWkpLG59aWYodm9pZCAwPT09ZGVmaW5lKXtpZih2b2lkIDAhPT1yZXF1aXJlanMpe2lmKGlzRnVuY3Rpb24ocmVxdWlyZWpzKSlyZXR1cm47Y2ZnPXJlcXVpcmVqcyxyZXF1aXJlanM9dm9pZCAwfXZvaWQgMD09PXJlcXVpcmV8fGlzRnVuY3Rpb24ocmVxdWlyZSl8fChjZmc9cmVxdWlyZSxyZXF1aXJlPXZvaWQgMCkscmVxPXJlcXVpcmVqcz1mdW5jdGlvbihlLHQsaSxyKXt2YXIgbixvLGE9ZGVmQ29udGV4dE5hbWU7cmV0dXJuIGlzQXJyYXkoZSl8fCJzdHJpbmciPT10eXBlb2YgZXx8KG89ZSxpc0FycmF5KHQpPyhlPXQsdD1pLGk9cik6ZT1bXSksbyYmby5jb250ZXh0JiYoYT1vLmNvbnRleHQpLChuPWdldE93bihjb250ZXh0cyxhKSl8fChuPWNvbnRleHRzW2FdPXJlcS5zLm5ld0NvbnRleHQoYSkpLG8mJm4uY29uZmlndXJlKG8pLG4ucmVxdWlyZShlLHQsaSl9LHJlcS5jb25maWc9ZnVuY3Rpb24oZSl7cmV0dXJuIHJlcShlKX0scmVxLm5leHRUaWNrPXZvaWQgMCE9PXNldFRpbWVvdXQ/ZnVuY3Rpb24oZSl7c2V0VGltZW91dChlLDQpfTpmdW5jdGlvbihlKXtlKCl9LHJlcXVpcmV8fChyZXF1aXJlPXJlcSkscmVxLnZlcnNpb249dmVyc2lvbixyZXEuanNFeHRSZWdFeHA9L15cL3w6fFw/fFwuanMkLyxyZXEuaXNCcm93c2VyPWlzQnJvd3NlcixzPXJlcS5zPXtjb250ZXh0czpjb250ZXh0cyxuZXdDb250ZXh0Om5ld0NvbnRleHR9LHJlcSh7fSksZWFjaChbInRvVXJsIiwidW5kZWYiLCJkZWZpbmVkIiwic3BlY2lmaWVkIl0sZnVuY3Rpb24odCl7cmVxW3RdPWZ1bmN0aW9uKCl7dmFyIGU9Y29udGV4dHNbZGVmQ29udGV4dE5hbWVdO3JldHVybiBlLnJlcXVpcmVbdF0uYXBwbHkoZSxhcmd1bWVudHMpfX0pLGlzQnJvd3NlciYmKGhlYWQ9cy5oZWFkPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0sYmFzZUVsZW1lbnQ9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJhc2UiKVswXSxiYXNlRWxlbWVudCYmKGhlYWQ9cy5oZWFkPWJhc2VFbGVtZW50LnBhcmVudE5vZGUpKSxyZXEub25FcnJvcj1kZWZhdWx0T25FcnJvcixyZXEuY3JlYXRlTm9kZT1mdW5jdGlvbihlLHQsaSl7dmFyIHI9ZS54aHRtbD9kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJodG1sOnNjcmlwdCIpOmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO3JldHVybiByLnR5cGU9ZS5zY3JpcHRUeXBlfHwidGV4dC9qYXZhc2NyaXB0IixyLmNoYXJzZXQ9InV0Zi04IixyLmFzeW5jPSEwLHJ9LHJlcS5sb2FkPWZ1bmN0aW9uKHQsaSxyKXt2YXIgZSxuPXQmJnQuY29uZmlnfHx7fTtpZihpc0Jyb3dzZXIpcmV0dXJuKGU9cmVxLmNyZWF0ZU5vZGUobixpLHIpKS5zZXRBdHRyaWJ1dGUoImRhdGEtcmVxdWlyZWNvbnRleHQiLHQuY29udGV4dE5hbWUpLGUuc2V0QXR0cmlidXRlKCJkYXRhLXJlcXVpcmVtb2R1bGUiLGkpLCFlLmF0dGFjaEV2ZW50fHxlLmF0dGFjaEV2ZW50LnRvU3RyaW5nJiZlLmF0dGFjaEV2ZW50LnRvU3RyaW5nKCkuaW5kZXhPZigiW25hdGl2ZSBjb2RlIik8MHx8aXNPcGVyYT8oZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIix0Lm9uU2NyaXB0TG9hZCwhMSksZS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsdC5vblNjcmlwdEVycm9yLCExKSk6KHVzZUludGVyYWN0aXZlPSEwLGUuYXR0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsdC5vblNjcmlwdExvYWQpKSxlLnNyYz1yLG4ub25Ob2RlQ3JlYXRlZCYmbi5vbk5vZGVDcmVhdGVkKGUsbixpLHIpLGN1cnJlbnRseUFkZGluZ1NjcmlwdD1lLGJhc2VFbGVtZW50P2hlYWQuaW5zZXJ0QmVmb3JlKGUsYmFzZUVsZW1lbnQpOmhlYWQuYXBwZW5kQ2hpbGQoZSksY3VycmVudGx5QWRkaW5nU2NyaXB0PW51bGwsZTtpZihpc1dlYldvcmtlcil0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe30sMCksaW1wb3J0U2NyaXB0cyhyKSx0LmNvbXBsZXRlTG9hZChpKX1jYXRjaChlKXt0Lm9uRXJyb3IobWFrZUVycm9yKCJpbXBvcnRzY3JpcHRzIiwiaW1wb3J0U2NyaXB0cyBmYWlsZWQgZm9yICIraSsiIGF0ICIrcixlLFtpXSkpfX0saXNCcm93c2VyJiYhY2ZnLnNraXBEYXRhTWFpbiYmZWFjaFJldmVyc2Uoc2NyaXB0cygpLGZ1bmN0aW9uKGUpe2lmKGhlYWR8fChoZWFkPWUucGFyZW50Tm9kZSksZGF0YU1haW49ZS5nZXRBdHRyaWJ1dGUoImRhdGEtbWFpbiIpKXJldHVybiBtYWluU2NyaXB0PWRhdGFNYWluLGNmZy5iYXNlVXJsfHwtMSE9PW1haW5TY3JpcHQuaW5kZXhPZigiISIpfHwobWFpblNjcmlwdD0oc3JjPW1haW5TY3JpcHQuc3BsaXQoIi8iKSkucG9wKCksc3ViUGF0aD1zcmMubGVuZ3RoP3NyYy5qb2luKCIvIikrIi8iOiIuLyIsY2ZnLmJhc2VVcmw9c3ViUGF0aCksbWFpblNjcmlwdD1tYWluU2NyaXB0LnJlcGxhY2UoanNTdWZmaXhSZWdFeHAsIiIpLHJlcS5qc0V4dFJlZ0V4cC50ZXN0KG1haW5TY3JpcHQpJiYobWFpblNjcmlwdD1kYXRhTWFpbiksY2ZnLmRlcHM9Y2ZnLmRlcHM/Y2ZnLmRlcHMuY29uY2F0KG1haW5TY3JpcHQpOlttYWluU2NyaXB0XSwhMH0pLGRlZmluZT1mdW5jdGlvbihlLGksdCl7dmFyIHIsbjsic3RyaW5nIiE9dHlwZW9mIGUmJih0PWksaT1lLGU9bnVsbCksaXNBcnJheShpKXx8KHQ9aSxpPW51bGwpLCFpJiZpc0Z1bmN0aW9uKHQpJiYoaT1bXSx0Lmxlbmd0aCYmKHQudG9TdHJpbmcoKS5yZXBsYWNlKGNvbW1lbnRSZWdFeHAsY29tbWVudFJlcGxhY2UpLnJlcGxhY2UoY2pzUmVxdWlyZVJlZ0V4cCxmdW5jdGlvbihlLHQpe2kucHVzaCh0KX0pLGk9KDE9PT10Lmxlbmd0aD9bInJlcXVpcmUiXTpbInJlcXVpcmUiLCJleHBvcnRzIiwibW9kdWxlIl0pLmNvbmNhdChpKSkpLHVzZUludGVyYWN0aXZlJiYocj1jdXJyZW50bHlBZGRpbmdTY3JpcHR8fGdldEludGVyYWN0aXZlU2NyaXB0KCkpJiYoZXx8KGU9ci5nZXRBdHRyaWJ1dGUoImRhdGEtcmVxdWlyZW1vZHVsZSIpKSxuPWNvbnRleHRzW3IuZ2V0QXR0cmlidXRlKCJkYXRhLXJlcXVpcmVjb250ZXh0IildKSxuPyhuLmRlZlF1ZXVlLnB1c2goW2UsaSx0XSksbi5kZWZRdWV1ZU1hcFtlXT0hMCk6Z2xvYmFsRGVmUXVldWUucHVzaChbZSxpLHRdKX0sZGVmaW5lLmFtZD17alF1ZXJ5OiEwfSxyZXEuZXhlYz1mdW5jdGlvbih0ZXh0KXtyZXR1cm4gZXZhbCh0ZXh0KX0scmVxKGNmZyl9ZnVuY3Rpb24gbmV3Q29udGV4dCh1KXt2YXIgaSxlLGwsYyxkLGc9e3dhaXRTZWNvbmRzOjcsYmFzZVVybDoiLi8iLHBhdGhzOnt9LGJ1bmRsZXM6e30scGtnczp7fSxzaGltOnt9LGNvbmZpZzp7fX0scD17fSxmPXt9LHI9e30saD1bXSxtPXt9LG49e30sdj17fSx4PTEsYj0xO2Z1bmN0aW9uIHEoZSx0LGkpe3ZhciByLG4sbyxhLHMsdSxjLGQscCxmLGw9dCYmdC5zcGxpdCgiLyIpLGg9Zy5tYXAsbT1oJiZoWyIqIl07aWYoZSYmKHU9KGU9ZS5zcGxpdCgiLyIpKS5sZW5ndGgtMSxnLm5vZGVJZENvbXBhdCYmanNTdWZmaXhSZWdFeHAudGVzdChlW3VdKSYmKGVbdV09ZVt1XS5yZXBsYWNlKGpzU3VmZml4UmVnRXhwLCIiKSksIi4iPT09ZVswXS5jaGFyQXQoMCkmJmwmJihlPWwuc2xpY2UoMCxsLmxlbmd0aC0xKS5jb25jYXQoZSkpLGZ1bmN0aW9uKGUpe3ZhciB0LGk7Zm9yKHQ9MDt0PGUubGVuZ3RoO3QrKylpZigiLiI9PT0oaT1lW3RdKSllLnNwbGljZSh0LDEpLHQtPTE7ZWxzZSBpZigiLi4iPT09aSl7aWYoMD09PXR8fDE9PT10JiYiLi4iPT09ZVsyXXx8Ii4uIj09PWVbdC0xXSljb250aW51ZTswPHQmJihlLnNwbGljZSh0LTEsMiksdC09Mil9fShlKSxlPWUuam9pbigiLyIpKSxpJiZoJiYobHx8bSkpe2U6Zm9yKG89KG49ZS5zcGxpdCgiLyIpKS5sZW5ndGg7MDxvO28tPTEpe2lmKHM9bi5zbGljZSgwLG8pLmpvaW4oIi8iKSxsKWZvcihhPWwubGVuZ3RoOzA8YTthLT0xKWlmKChyPWdldE93bihoLGwuc2xpY2UoMCxhKS5qb2luKCIvIikpKSYmKHI9Z2V0T3duKHIscykpKXtjPXIsZD1vO2JyZWFrIGV9IXAmJm0mJmdldE93bihtLHMpJiYocD1nZXRPd24obSxzKSxmPW8pfSFjJiZwJiYoYz1wLGQ9ZiksYyYmKG4uc3BsaWNlKDAsZCxjKSxlPW4uam9pbigiLyIpKX1yZXR1cm4gZ2V0T3duKGcucGtncyxlKXx8ZX1mdW5jdGlvbiBFKHQpe2lzQnJvd3NlciYmZWFjaChzY3JpcHRzKCksZnVuY3Rpb24oZSl7aWYoZS5nZXRBdHRyaWJ1dGUoImRhdGEtcmVxdWlyZW1vZHVsZSIpPT09dCYmZS5nZXRBdHRyaWJ1dGUoImRhdGEtcmVxdWlyZWNvbnRleHQiKT09PWwuY29udGV4dE5hbWUpcmV0dXJuIGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKSwhMH0pfWZ1bmN0aW9uIHcoZSl7dmFyIHQ9Z2V0T3duKGcucGF0aHMsZSk7aWYodCYmaXNBcnJheSh0KSYmMTx0Lmxlbmd0aClyZXR1cm4gdC5zaGlmdCgpLGwucmVxdWlyZS51bmRlZihlKSxsLm1ha2VSZXF1aXJlKG51bGwse3NraXBNYXA6ITB9KShbZV0pLCEwfWZ1bmN0aW9uIHkoZSl7dmFyIHQsaT1lP2UuaW5kZXhPZigiISIpOi0xO3JldHVybi0xPGkmJih0PWUuc3Vic3RyaW5nKDAsaSksZT1lLnN1YnN0cmluZyhpKzEsZS5sZW5ndGgpKSxbdCxlXX1mdW5jdGlvbiBTKGUsdCxpLHIpe3ZhciBuLG8sYSxzLHU9bnVsbCxjPXQ/dC5uYW1lOm51bGwsZD1lLHA9ITAsZj0iIjtyZXR1cm4gZXx8KHA9ITEsZT0iX0ByIisoeCs9MSkpLHU9KHM9eShlKSlbMF0sZT1zWzFdLHUmJih1PXEodSxjLHIpLG89Z2V0T3duKG0sdSkpLGUmJih1P2Y9aT9lOm8mJm8ubm9ybWFsaXplP28ubm9ybWFsaXplKGUsZnVuY3Rpb24oZSl7cmV0dXJuIHEoZSxjLHIpfSk6LTE9PT1lLmluZGV4T2YoIiEiKT9xKGUsYyxyKTplOih1PShzPXkoZj1xKGUsYyxyKSkpWzBdLGY9c1sxXSxpPSEwLG49bC5uYW1lVG9VcmwoZikpKSx7cHJlZml4OnUsbmFtZTpmLHBhcmVudE1hcDp0LHVubm9ybWFsaXplZDohIShhPSF1fHxvfHxpPyIiOiJfdW5ub3JtYWxpemVkIisoYis9MSkpLHVybDpuLG9yaWdpbmFsTmFtZTpkLGlzRGVmaW5lOnAsaWQ6KHU/dSsiISIrZjpmKSthfX1mdW5jdGlvbiBrKGUpe3ZhciB0PWUuaWQsaT1nZXRPd24ocCx0KTtyZXR1cm4gaXx8KGk9cFt0XT1uZXcgbC5Nb2R1bGUoZSkpLGl9ZnVuY3Rpb24gTShlLHQsaSl7dmFyIHI9ZS5pZCxuPWdldE93bihwLHIpOyFoYXNQcm9wKG0scil8fG4mJiFuLmRlZmluZUVtaXRDb21wbGV0ZT8obj1rKGUpKS5lcnJvciYmImVycm9yIj09PXQ/aShuLmVycm9yKTpuLm9uKHQsaSk6ImRlZmluZWQiPT09dCYmaShtW3JdKX1mdW5jdGlvbiBPKGksZSl7dmFyIHQ9aS5yZXF1aXJlTW9kdWxlcyxyPSExO2U/ZShpKTooZWFjaCh0LGZ1bmN0aW9uKGUpe3ZhciB0PWdldE93bihwLGUpO3QmJih0LmVycm9yPWksdC5ldmVudHMuZXJyb3ImJihyPSEwLHQuZW1pdCgiZXJyb3IiLGkpKSl9KSxyfHxyZXEub25FcnJvcihpKSl9ZnVuY3Rpb24gaigpe2dsb2JhbERlZlF1ZXVlLmxlbmd0aCYmKGVhY2goZ2xvYmFsRGVmUXVldWUsZnVuY3Rpb24oZSl7dmFyIHQ9ZVswXTsic3RyaW5nIj09dHlwZW9mIHQmJihsLmRlZlF1ZXVlTWFwW3RdPSEwKSxoLnB1c2goZSl9KSxnbG9iYWxEZWZRdWV1ZT1bXSl9ZnVuY3Rpb24gUChlKXtkZWxldGUgcFtlXSxkZWxldGUgZltlXX1mdW5jdGlvbiBSKCl7dmFyIGUscix0PTFlMypnLndhaXRTZWNvbmRzLG49dCYmbC5zdGFydFRpbWUrdDwobmV3IERhdGUpLmdldFRpbWUoKSxvPVtdLGE9W10scz0hMSx1PSEwO2lmKCFpKXtpZihpPSEwLGVhY2hQcm9wKGYsZnVuY3Rpb24oZSl7dmFyIHQ9ZS5tYXAsaT10LmlkO2lmKGUuZW5hYmxlZCYmKHQuaXNEZWZpbmV8fGEucHVzaChlKSwhZS5lcnJvcikpaWYoIWUuaW5pdGVkJiZuKXcoaSk/cz1yPSEwOihvLnB1c2goaSksRShpKSk7ZWxzZSBpZighZS5pbml0ZWQmJmUuZmV0Y2hlZCYmdC5pc0RlZmluZSYmKHM9ITAsIXQucHJlZml4KSlyZXR1cm4gdT0hMX0pLG4mJm8ubGVuZ3RoKXJldHVybihlPW1ha2VFcnJvcigidGltZW91dCIsIkxvYWQgdGltZW91dCBmb3IgbW9kdWxlczogIitvLG51bGwsbykpLmNvbnRleHROYW1lPWwuY29udGV4dE5hbWUsTyhlKTt1JiZlYWNoKGEsZnVuY3Rpb24oZSl7IWZ1bmN0aW9uIG4obyxhLHMpe3ZhciBlPW8ubWFwLmlkO28uZXJyb3I/by5lbWl0KCJlcnJvciIsby5lcnJvcik6KGFbZV09ITAsZWFjaChvLmRlcE1hcHMsZnVuY3Rpb24oZSx0KXt2YXIgaT1lLmlkLHI9Z2V0T3duKHAsaSk7IXJ8fG8uZGVwTWF0Y2hlZFt0XXx8c1tpXXx8KGdldE93bihhLGkpPyhvLmRlZmluZURlcCh0LG1baV0pLG8uY2hlY2soKSk6bihyLGEscykpfSksc1tlXT0hMCl9KGUse30se30pfSksbiYmIXJ8fCFzfHwhaXNCcm93c2VyJiYhaXNXZWJXb3JrZXJ8fGR8fChkPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtkPTAsUigpfSw1MCkpLGk9ITF9fWZ1bmN0aW9uIGEoZSl7aGFzUHJvcChtLGVbMF0pfHxrKFMoZVswXSxudWxsLCEwKSkuaW5pdChlWzFdLGVbMl0pfWZ1bmN0aW9uIG8oZSx0LGkscil7ZS5kZXRhY2hFdmVudCYmIWlzT3BlcmE/ciYmZS5kZXRhY2hFdmVudChyLHQpOmUucmVtb3ZlRXZlbnRMaXN0ZW5lcihpLHQsITEpfWZ1bmN0aW9uIHMoZSl7dmFyIHQ9ZS5jdXJyZW50VGFyZ2V0fHxlLnNyY0VsZW1lbnQ7cmV0dXJuIG8odCxsLm9uU2NyaXB0TG9hZCwibG9hZCIsIm9ucmVhZHlzdGF0ZWNoYW5nZSIpLG8odCxsLm9uU2NyaXB0RXJyb3IsImVycm9yIikse25vZGU6dCxpZDp0JiZ0LmdldEF0dHJpYnV0ZSgiZGF0YS1yZXF1aXJlbW9kdWxlIil9fWZ1bmN0aW9uIFQoKXt2YXIgZTtmb3IoaigpO2gubGVuZ3RoOyl7aWYobnVsbD09PShlPWguc2hpZnQoKSlbMF0pcmV0dXJuIE8obWFrZUVycm9yKCJtaXNtYXRjaCIsIk1pc21hdGNoZWQgYW5vbnltb3VzIGRlZmluZSgpIG1vZHVsZTogIitlW2UubGVuZ3RoLTFdKSk7YShlKX1sLmRlZlF1ZXVlTWFwPXt9fXJldHVybiBjPXtyZXF1aXJlOmZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcXVpcmU/ZS5yZXF1aXJlOmUucmVxdWlyZT1sLm1ha2VSZXF1aXJlKGUubWFwKX0sZXhwb3J0czpmdW5jdGlvbihlKXtpZihlLnVzaW5nRXhwb3J0cz0hMCxlLm1hcC5pc0RlZmluZSlyZXR1cm4gZS5leHBvcnRzP21bZS5tYXAuaWRdPWUuZXhwb3J0czplLmV4cG9ydHM9bVtlLm1hcC5pZF09e319LG1vZHVsZTpmdW5jdGlvbihlKXtyZXR1cm4gZS5tb2R1bGU/ZS5tb2R1bGU6ZS5tb2R1bGU9e2lkOmUubWFwLmlkLHVyaTplLm1hcC51cmwsY29uZmlnOmZ1bmN0aW9uKCl7cmV0dXJuIGdldE93bihnLmNvbmZpZyxlLm1hcC5pZCl8fHt9fSxleHBvcnRzOmUuZXhwb3J0c3x8KGUuZXhwb3J0cz17fSl9fX0sKGU9ZnVuY3Rpb24oZSl7dGhpcy5ldmVudHM9Z2V0T3duKHIsZS5pZCl8fHt9LHRoaXMubWFwPWUsdGhpcy5zaGltPWdldE93bihnLnNoaW0sZS5pZCksdGhpcy5kZXBFeHBvcnRzPVtdLHRoaXMuZGVwTWFwcz1bXSx0aGlzLmRlcE1hdGNoZWQ9W10sdGhpcy5wbHVnaW5NYXBzPXt9LHRoaXMuZGVwQ291bnQ9MH0pLnByb3RvdHlwZT17aW5pdDpmdW5jdGlvbihlLHQsaSxyKXtyPXJ8fHt9LHRoaXMuaW5pdGVkfHwodGhpcy5mYWN0b3J5PXQsaT90aGlzLm9uKCJlcnJvciIsaSk6dGhpcy5ldmVudHMuZXJyb3ImJihpPWJpbmQodGhpcyxmdW5jdGlvbihlKXt0aGlzLmVtaXQoImVycm9yIixlKX0pKSx0aGlzLmRlcE1hcHM9ZSYmZS5zbGljZSgwKSx0aGlzLmVycmJhY2s9aSx0aGlzLmluaXRlZD0hMCx0aGlzLmlnbm9yZT1yLmlnbm9yZSxyLmVuYWJsZWR8fHRoaXMuZW5hYmxlZD90aGlzLmVuYWJsZSgpOnRoaXMuY2hlY2soKSl9LGRlZmluZURlcDpmdW5jdGlvbihlLHQpe3RoaXMuZGVwTWF0Y2hlZFtlXXx8KHRoaXMuZGVwTWF0Y2hlZFtlXT0hMCx0aGlzLmRlcENvdW50LT0xLHRoaXMuZGVwRXhwb3J0c1tlXT10KX0sZmV0Y2g6ZnVuY3Rpb24oKXtpZighdGhpcy5mZXRjaGVkKXt0aGlzLmZldGNoZWQ9ITAsbC5zdGFydFRpbWU9KG5ldyBEYXRlKS5nZXRUaW1lKCk7dmFyIGU9dGhpcy5tYXA7aWYoIXRoaXMuc2hpbSlyZXR1cm4gZS5wcmVmaXg/dGhpcy5jYWxsUGx1Z2luKCk6dGhpcy5sb2FkKCk7bC5tYWtlUmVxdWlyZSh0aGlzLm1hcCx7ZW5hYmxlQnVpbGRDYWxsYmFjazohMH0pKHRoaXMuc2hpbS5kZXBzfHxbXSxiaW5kKHRoaXMsZnVuY3Rpb24oKXtyZXR1cm4gZS5wcmVmaXg/dGhpcy5jYWxsUGx1Z2luKCk6dGhpcy5sb2FkKCl9KSl9fSxsb2FkOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5tYXAudXJsO25bZV18fChuW2VdPSEwLGwubG9hZCh0aGlzLm1hcC5pZCxlKSl9LGNoZWNrOmZ1bmN0aW9uKCl7aWYodGhpcy5lbmFibGVkJiYhdGhpcy5lbmFibGluZyl7dmFyIHQsZSxpPXRoaXMubWFwLmlkLHI9dGhpcy5kZXBFeHBvcnRzLG49dGhpcy5leHBvcnRzLG89dGhpcy5mYWN0b3J5O2lmKHRoaXMuaW5pdGVkKXtpZih0aGlzLmVycm9yKXRoaXMuZW1pdCgiZXJyb3IiLHRoaXMuZXJyb3IpO2Vsc2UgaWYoIXRoaXMuZGVmaW5pbmcpe2lmKHRoaXMuZGVmaW5pbmc9ITAsdGhpcy5kZXBDb3VudDwxJiYhdGhpcy5kZWZpbmVkKXtpZihpc0Z1bmN0aW9uKG8pKXtpZih0aGlzLmV2ZW50cy5lcnJvciYmdGhpcy5tYXAuaXNEZWZpbmV8fHJlcS5vbkVycm9yIT09ZGVmYXVsdE9uRXJyb3IpdHJ5e249bC5leGVjQ2IoaSxvLHIsbil9Y2F0Y2goZSl7dD1lfWVsc2Ugbj1sLmV4ZWNDYihpLG8scixuKTtpZih0aGlzLm1hcC5pc0RlZmluZSYmdm9pZCAwPT09biYmKChlPXRoaXMubW9kdWxlKT9uPWUuZXhwb3J0czp0aGlzLnVzaW5nRXhwb3J0cyYmKG49dGhpcy5leHBvcnRzKSksdClyZXR1cm4gdC5yZXF1aXJlTWFwPXRoaXMubWFwLHQucmVxdWlyZU1vZHVsZXM9dGhpcy5tYXAuaXNEZWZpbmU/W3RoaXMubWFwLmlkXTpudWxsLHQucmVxdWlyZVR5cGU9dGhpcy5tYXAuaXNEZWZpbmU/ImRlZmluZSI6InJlcXVpcmUiLE8odGhpcy5lcnJvcj10KX1lbHNlIG49bztpZih0aGlzLmV4cG9ydHM9bix0aGlzLm1hcC5pc0RlZmluZSYmIXRoaXMuaWdub3JlJiYobVtpXT1uLHJlcS5vblJlc291cmNlTG9hZCkpe3ZhciBhPVtdO2VhY2godGhpcy5kZXBNYXBzLGZ1bmN0aW9uKGUpe2EucHVzaChlLm5vcm1hbGl6ZWRNYXB8fGUpfSkscmVxLm9uUmVzb3VyY2VMb2FkKGwsdGhpcy5tYXAsYSl9UChpKSx0aGlzLmRlZmluZWQ9ITB9dGhpcy5kZWZpbmluZz0hMSx0aGlzLmRlZmluZWQmJiF0aGlzLmRlZmluZUVtaXR0ZWQmJih0aGlzLmRlZmluZUVtaXR0ZWQ9ITAsdGhpcy5lbWl0KCJkZWZpbmVkIix0aGlzLmV4cG9ydHMpLHRoaXMuZGVmaW5lRW1pdENvbXBsZXRlPSEwKX19ZWxzZSBoYXNQcm9wKGwuZGVmUXVldWVNYXAsaSl8fHRoaXMuZmV0Y2goKX19LGNhbGxQbHVnaW46ZnVuY3Rpb24oKXt2YXIgdT10aGlzLm1hcCxjPXUuaWQsZT1TKHUucHJlZml4KTt0aGlzLmRlcE1hcHMucHVzaChlKSxNKGUsImRlZmluZWQiLGJpbmQodGhpcyxmdW5jdGlvbihlKXt2YXIgbyx0LGkscj1nZXRPd24odix0aGlzLm1hcC5pZCksbj10aGlzLm1hcC5uYW1lLGE9dGhpcy5tYXAucGFyZW50TWFwP3RoaXMubWFwLnBhcmVudE1hcC5uYW1lOm51bGwscz1sLm1ha2VSZXF1aXJlKHUucGFyZW50TWFwLHtlbmFibGVCdWlsZENhbGxiYWNrOiEwfSk7cmV0dXJuIHRoaXMubWFwLnVubm9ybWFsaXplZD8oZS5ub3JtYWxpemUmJihuPWUubm9ybWFsaXplKG4sZnVuY3Rpb24oZSl7cmV0dXJuIHEoZSxhLCEwKX0pfHwiIiksTSh0PVModS5wcmVmaXgrIiEiK24sdGhpcy5tYXAucGFyZW50TWFwLCEwKSwiZGVmaW5lZCIsYmluZCh0aGlzLGZ1bmN0aW9uKGUpe3RoaXMubWFwLm5vcm1hbGl6ZWRNYXA9dCx0aGlzLmluaXQoW10sZnVuY3Rpb24oKXtyZXR1cm4gZX0sbnVsbCx7ZW5hYmxlZDohMCxpZ25vcmU6ITB9KX0pKSx2b2lkKChpPWdldE93bihwLHQuaWQpKSYmKHRoaXMuZGVwTWFwcy5wdXNoKHQpLHRoaXMuZXZlbnRzLmVycm9yJiZpLm9uKCJlcnJvciIsYmluZCh0aGlzLGZ1bmN0aW9uKGUpe3RoaXMuZW1pdCgiZXJyb3IiLGUpfSkpLGkuZW5hYmxlKCkpKSk6cj8odGhpcy5tYXAudXJsPWwubmFtZVRvVXJsKHIpLHZvaWQgdGhpcy5sb2FkKCkpOigobz1iaW5kKHRoaXMsZnVuY3Rpb24oZSl7dGhpcy5pbml0KFtdLGZ1bmN0aW9uKCl7cmV0dXJuIGV9LG51bGwse2VuYWJsZWQ6ITB9KX0pKS5lcnJvcj1iaW5kKHRoaXMsZnVuY3Rpb24oZSl7dGhpcy5pbml0ZWQ9ITAsKHRoaXMuZXJyb3I9ZSkucmVxdWlyZU1vZHVsZXM9W2NdLGVhY2hQcm9wKHAsZnVuY3Rpb24oZSl7MD09PWUubWFwLmlkLmluZGV4T2YoYysiX3Vubm9ybWFsaXplZCIpJiZQKGUubWFwLmlkKX0pLE8oZSl9KSxvLmZyb21UZXh0PWJpbmQodGhpcyxmdW5jdGlvbihlLHQpe3ZhciBpPXUubmFtZSxyPVMoaSksbj11c2VJbnRlcmFjdGl2ZTt0JiYoZT10KSxuJiYodXNlSW50ZXJhY3RpdmU9ITEpLGsociksaGFzUHJvcChnLmNvbmZpZyxjKSYmKGcuY29uZmlnW2ldPWcuY29uZmlnW2NdKTt0cnl7cmVxLmV4ZWMoZSl9Y2F0Y2goZSl7cmV0dXJuIE8obWFrZUVycm9yKCJmcm9tdGV4dGV2YWwiLCJmcm9tVGV4dCBldmFsIGZvciAiK2MrIiBmYWlsZWQ6ICIrZSxlLFtjXSkpfW4mJih1c2VJbnRlcmFjdGl2ZT0hMCksdGhpcy5kZXBNYXBzLnB1c2gociksbC5jb21wbGV0ZUxvYWQoaSkscyhbaV0sbyl9KSx2b2lkIGUubG9hZCh1Lm5hbWUscyxvLGcpKX0pKSxsLmVuYWJsZShlLHRoaXMpLHRoaXMucGx1Z2luTWFwc1tlLmlkXT1lfSxlbmFibGU6ZnVuY3Rpb24oKXsoZlt0aGlzLm1hcC5pZF09dGhpcykuZW5hYmxlZD0hMCx0aGlzLmVuYWJsaW5nPSEwLGVhY2godGhpcy5kZXBNYXBzLGJpbmQodGhpcyxmdW5jdGlvbihlLHQpe3ZhciBpLHIsbjtpZigic3RyaW5nIj09dHlwZW9mIGUpe2lmKGU9UyhlLHRoaXMubWFwLmlzRGVmaW5lP3RoaXMubWFwOnRoaXMubWFwLnBhcmVudE1hcCwhMSwhdGhpcy5za2lwTWFwKSx0aGlzLmRlcE1hcHNbdF09ZSxuPWdldE93bihjLGUuaWQpKXJldHVybiB2b2lkKHRoaXMuZGVwRXhwb3J0c1t0XT1uKHRoaXMpKTt0aGlzLmRlcENvdW50Kz0xLE0oZSwiZGVmaW5lZCIsYmluZCh0aGlzLGZ1bmN0aW9uKGUpe3RoaXMudW5kZWZlZHx8KHRoaXMuZGVmaW5lRGVwKHQsZSksdGhpcy5jaGVjaygpKX0pKSx0aGlzLmVycmJhY2s/TShlLCJlcnJvciIsYmluZCh0aGlzLHRoaXMuZXJyYmFjaykpOnRoaXMuZXZlbnRzLmVycm9yJiZNKGUsImVycm9yIixiaW5kKHRoaXMsZnVuY3Rpb24oZSl7dGhpcy5lbWl0KCJlcnJvciIsZSl9KSl9aT1lLmlkLHI9cFtpXSxoYXNQcm9wKGMsaSl8fCFyfHxyLmVuYWJsZWR8fGwuZW5hYmxlKGUsdGhpcyl9KSksZWFjaFByb3AodGhpcy5wbHVnaW5NYXBzLGJpbmQodGhpcyxmdW5jdGlvbihlKXt2YXIgdD1nZXRPd24ocCxlLmlkKTt0JiYhdC5lbmFibGVkJiZsLmVuYWJsZShlLHRoaXMpfSkpLHRoaXMuZW5hYmxpbmc9ITEsdGhpcy5jaGVjaygpfSxvbjpmdW5jdGlvbihlLHQpe3ZhciBpPXRoaXMuZXZlbnRzW2VdO2l8fChpPXRoaXMuZXZlbnRzW2VdPVtdKSxpLnB1c2godCl9LGVtaXQ6ZnVuY3Rpb24oZSx0KXtlYWNoKHRoaXMuZXZlbnRzW2VdLGZ1bmN0aW9uKGUpe2UodCl9KSwiZXJyb3IiPT09ZSYmZGVsZXRlIHRoaXMuZXZlbnRzW2VdfX0sKGw9e2NvbmZpZzpnLGNvbnRleHROYW1lOnUscmVnaXN0cnk6cCxkZWZpbmVkOm0sdXJsRmV0Y2hlZDpuLGRlZlF1ZXVlOmgsZGVmUXVldWVNYXA6e30sTW9kdWxlOmUsbWFrZU1vZHVsZU1hcDpTLG5leHRUaWNrOnJlcS5uZXh0VGljayxvbkVycm9yOk8sY29uZmlndXJlOmZ1bmN0aW9uKGUpe2lmKGUuYmFzZVVybCYmIi8iIT09ZS5iYXNlVXJsLmNoYXJBdChlLmJhc2VVcmwubGVuZ3RoLTEpJiYoZS5iYXNlVXJsKz0iLyIpLCJzdHJpbmciPT10eXBlb2YgZS51cmxBcmdzKXt2YXIgaT1lLnVybEFyZ3M7ZS51cmxBcmdzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuKC0xPT09dC5pbmRleE9mKCI/Iik/Ij8iOiImIikraX19dmFyIHI9Zy5zaGltLG49e3BhdGhzOiEwLGJ1bmRsZXM6ITAsY29uZmlnOiEwLG1hcDohMH07ZWFjaFByb3AoZSxmdW5jdGlvbihlLHQpe25bdF0/KGdbdF18fChnW3RdPXt9KSxtaXhpbihnW3RdLGUsITAsITApKTpnW3RdPWV9KSxlLmJ1bmRsZXMmJmVhY2hQcm9wKGUuYnVuZGxlcyxmdW5jdGlvbihlLHQpe2VhY2goZSxmdW5jdGlvbihlKXtlIT09dCYmKHZbZV09dCl9KX0pLGUuc2hpbSYmKGVhY2hQcm9wKGUuc2hpbSxmdW5jdGlvbihlLHQpe2lzQXJyYXkoZSkmJihlPXtkZXBzOmV9KSwhZS5leHBvcnRzJiYhZS5pbml0fHxlLmV4cG9ydHNGbnx8KGUuZXhwb3J0c0ZuPWwubWFrZVNoaW1FeHBvcnRzKGUpKSxyW3RdPWV9KSxnLnNoaW09ciksZS5wYWNrYWdlcyYmZWFjaChlLnBhY2thZ2VzLGZ1bmN0aW9uKGUpe3ZhciB0O3Q9KGU9InN0cmluZyI9PXR5cGVvZiBlP3tuYW1lOmV9OmUpLm5hbWUsZS5sb2NhdGlvbiYmKGcucGF0aHNbdF09ZS5sb2NhdGlvbiksZy5wa2dzW3RdPWUubmFtZSsiLyIrKGUubWFpbnx8Im1haW4iKS5yZXBsYWNlKGN1cnJEaXJSZWdFeHAsIiIpLnJlcGxhY2UoanNTdWZmaXhSZWdFeHAsIiIpfSksZWFjaFByb3AocCxmdW5jdGlvbihlLHQpe2UuaW5pdGVkfHxlLm1hcC51bm5vcm1hbGl6ZWR8fChlLm1hcD1TKHQsbnVsbCwhMCkpfSksKGUuZGVwc3x8ZS5jYWxsYmFjaykmJmwucmVxdWlyZShlLmRlcHN8fFtdLGUuY2FsbGJhY2spfSxtYWtlU2hpbUV4cG9ydHM6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIHQuaW5pdCYmKGU9dC5pbml0LmFwcGx5KGdsb2JhbCxhcmd1bWVudHMpKSxlfHx0LmV4cG9ydHMmJmdldEdsb2JhbCh0LmV4cG9ydHMpfX0sbWFrZVJlcXVpcmU6ZnVuY3Rpb24obyxhKXtmdW5jdGlvbiBzKGUsdCxpKXt2YXIgcixuO3JldHVybiBhLmVuYWJsZUJ1aWxkQ2FsbGJhY2smJnQmJmlzRnVuY3Rpb24odCkmJih0Ll9fcmVxdWlyZUpzQnVpbGQ9ITApLCJzdHJpbmciPT10eXBlb2YgZT9pc0Z1bmN0aW9uKHQpP08obWFrZUVycm9yKCJyZXF1aXJlYXJncyIsIkludmFsaWQgcmVxdWlyZSBjYWxsIiksaSk6byYmaGFzUHJvcChjLGUpP2NbZV0ocFtvLmlkXSk6cmVxLmdldD9yZXEuZ2V0KGwsZSxvLHMpOihyPVMoZSxvLCExLCEwKS5pZCxoYXNQcm9wKG0scik/bVtyXTpPKG1ha2VFcnJvcigibm90bG9hZGVkIiwnTW9kdWxlIG5hbWUgIicrcisnIiBoYXMgbm90IGJlZW4gbG9hZGVkIHlldCBmb3IgY29udGV4dDogJyt1KyhvPyIiOiIuIFVzZSByZXF1aXJlKFtdKSIpKSkpOihUKCksbC5uZXh0VGljayhmdW5jdGlvbigpe1QoKSwobj1rKFMobnVsbCxvKSkpLnNraXBNYXA9YS5za2lwTWFwLG4uaW5pdChlLHQsaSx7ZW5hYmxlZDohMH0pLFIoKX0pLHMpfXJldHVybiBhPWF8fHt9LG1peGluKHMse2lzQnJvd3Nlcjppc0Jyb3dzZXIsdG9Vcmw6ZnVuY3Rpb24oZSl7dmFyIHQsaT1lLmxhc3RJbmRleE9mKCIuIikscj1lLnNwbGl0KCIvIilbMF07cmV0dXJuLTEhPT1pJiYoISgiLiI9PT1yfHwiLi4iPT09cil8fDE8aSkmJih0PWUuc3Vic3RyaW5nKGksZS5sZW5ndGgpLGU9ZS5zdWJzdHJpbmcoMCxpKSksbC5uYW1lVG9VcmwocShlLG8mJm8uaWQsITApLHQsITApfSxkZWZpbmVkOmZ1bmN0aW9uKGUpe3JldHVybiBoYXNQcm9wKG0sUyhlLG8sITEsITApLmlkKX0sc3BlY2lmaWVkOmZ1bmN0aW9uKGUpe3JldHVybiBlPVMoZSxvLCExLCEwKS5pZCxoYXNQcm9wKG0sZSl8fGhhc1Byb3AocCxlKX19KSxvfHwocy51bmRlZj1mdW5jdGlvbihpKXtqKCk7dmFyIGU9UyhpLG8sITApLHQ9Z2V0T3duKHAsaSk7dC51bmRlZmVkPSEwLEUoaSksZGVsZXRlIG1baV0sZGVsZXRlIG5bZS51cmxdLGRlbGV0ZSByW2ldLGVhY2hSZXZlcnNlKGgsZnVuY3Rpb24oZSx0KXtlWzBdPT09aSYmaC5zcGxpY2UodCwxKX0pLGRlbGV0ZSBsLmRlZlF1ZXVlTWFwW2ldLHQmJih0LmV2ZW50cy5kZWZpbmVkJiYocltpXT10LmV2ZW50cyksUChpKSl9KSxzfSxlbmFibGU6ZnVuY3Rpb24oZSl7Z2V0T3duKHAsZS5pZCkmJmsoZSkuZW5hYmxlKCl9LGNvbXBsZXRlTG9hZDpmdW5jdGlvbihlKXt2YXIgdCxpLHIsbj1nZXRPd24oZy5zaGltLGUpfHx7fSxvPW4uZXhwb3J0cztmb3IoaigpO2gubGVuZ3RoOyl7aWYobnVsbD09PShpPWguc2hpZnQoKSlbMF0pe2lmKGlbMF09ZSx0KWJyZWFrO3Q9ITB9ZWxzZSBpWzBdPT09ZSYmKHQ9ITApO2EoaSl9aWYobC5kZWZRdWV1ZU1hcD17fSxyPWdldE93bihwLGUpLCF0JiYhaGFzUHJvcChtLGUpJiZyJiYhci5pbml0ZWQpe2lmKCEoIWcuZW5mb3JjZURlZmluZXx8byYmZ2V0R2xvYmFsKG8pKSlyZXR1cm4gdyhlKT92b2lkIDA6TyhtYWtlRXJyb3IoIm5vZGVmaW5lIiwiTm8gZGVmaW5lIGNhbGwgZm9yICIrZSxudWxsLFtlXSkpO2EoW2Usbi5kZXBzfHxbXSxuLmV4cG9ydHNGbl0pfVIoKX0sbmFtZVRvVXJsOmZ1bmN0aW9uKGUsdCxpKXt2YXIgcixuLG8sYSxzLHUsYz1nZXRPd24oZy5wa2dzLGUpO2lmKGMmJihlPWMpLHU9Z2V0T3duKHYsZSkpcmV0dXJuIGwubmFtZVRvVXJsKHUsdCxpKTtpZihyZXEuanNFeHRSZWdFeHAudGVzdChlKSlhPWUrKHR8fCIiKTtlbHNle2ZvcihyPWcucGF0aHMsbz0obj1lLnNwbGl0KCIvIikpLmxlbmd0aDswPG87by09MSlpZihzPWdldE93bihyLG4uc2xpY2UoMCxvKS5qb2luKCIvIikpKXtpc0FycmF5KHMpJiYocz1zWzBdKSxuLnNwbGljZSgwLG8scyk7YnJlYWt9YT1uLmpvaW4oIi8iKSxhPSgiLyI9PT0oYSs9dHx8KC9eZGF0YVw6fF5ibG9iXDp8XD8vLnRlc3QoYSl8fGk/IiI6Ii5qcyIpKS5jaGFyQXQoMCl8fGEubWF0Y2goL15bXHdcK1wuXC1dKzovKT8iIjpnLmJhc2VVcmwpK2F9cmV0dXJuIGcudXJsQXJncyYmIS9eYmxvYlw6Ly50ZXN0KGEpP2ErZy51cmxBcmdzKGUsYSk6YX0sbG9hZDpmdW5jdGlvbihlLHQpe3JlcS5sb2FkKGwsZSx0KX0sZXhlY0NiOmZ1bmN0aW9uKGUsdCxpLHIpe3JldHVybiB0LmFwcGx5KHIsaSl9LG9uU2NyaXB0TG9hZDpmdW5jdGlvbihlKXtpZigibG9hZCI9PT1lLnR5cGV8fHJlYWR5UmVnRXhwLnRlc3QoKGUuY3VycmVudFRhcmdldHx8ZS5zcmNFbGVtZW50KS5yZWFkeVN0YXRlKSl7aW50ZXJhY3RpdmVTY3JpcHQ9bnVsbDt2YXIgdD1zKGUpO2wuY29tcGxldGVMb2FkKHQuaWQpfX0sb25TY3JpcHRFcnJvcjpmdW5jdGlvbihlKXt2YXIgaT1zKGUpO2lmKCF3KGkuaWQpKXt2YXIgcj1bXTtyZXR1cm4gZWFjaFByb3AocCxmdW5jdGlvbihlLHQpezAhPT10LmluZGV4T2YoIl9AciIpJiZlYWNoKGUuZGVwTWFwcyxmdW5jdGlvbihlKXtpZihlLmlkPT09aS5pZClyZXR1cm4gci5wdXNoKHQpLCEwfSl9KSxPKG1ha2VFcnJvcigic2NyaXB0ZXJyb3IiLCdTY3JpcHQgZXJyb3IgZm9yICInK2kuaWQrKHIubGVuZ3RoPyciLCBuZWVkZWQgYnk6ICcrci5qb2luKCIsICIpOiciJyksZSxbaS5pZF0pKX19fSkucmVxdWlyZT1sLm1ha2VSZXF1aXJlKCksbH1mdW5jdGlvbiBnZXRJbnRlcmFjdGl2ZVNjcmlwdCgpe3JldHVybiBpbnRlcmFjdGl2ZVNjcmlwdCYmImludGVyYWN0aXZlIj09PWludGVyYWN0aXZlU2NyaXB0LnJlYWR5U3RhdGV8fGVhY2hSZXZlcnNlKHNjcmlwdHMoKSxmdW5jdGlvbihlKXtpZigiaW50ZXJhY3RpdmUiPT09ZS5yZWFkeVN0YXRlKXJldHVybiBpbnRlcmFjdGl2ZVNjcmlwdD1lfSksaW50ZXJhY3RpdmVTY3JpcHR9fSh0aGlzLCJ1bmRlZmluZWQiPT10eXBlb2Ygc2V0VGltZW91dD92b2lkIDA6c2V0VGltZW91dCk7"></script>
+
+
+
+ <style type="text/css">
+/* a lot of this code was taken from rmd styles directly included in the output html page, license was not present there but it is GPL3 */
+
+pre {
+ white-space: pre-wrap;
+}
+
+span.smallcaps {
+ font-variant: small-caps;
+}
+
+span.underline {
+ text-decoration: underline;
+}
+
+div.column {
+ display: inline-block;
+ vertical-align: top;
+ width: 50%;
+}
+
+div.hanging-indent {
+ margin-left: 1.5em;
+ text-indent: -1.5em;
+}
+
+ul.task-list {
+ list-style: none;
+}
+
+code {
+ white-space: pre;
+}
+
+.main-container {
+ max-width: 940px;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+img {
+ max-width: 100%;
+}
+
+.tabbed-pane {
+ padding-top: 12px;
+}
+
+.html-widget {
+ margin-bottom: 20px;
+}
+
+button.code-folding-btn:focus {
+ outline: none;
+}
+
+summary {
+ display: list-item;
+}
+
+pre code {
+ padding: 0;
+}
+
+
+h1 {
+ font-size: 34px;
+ text-align: left;
+}
+
+h1.title {
+ font-size: 38px;
+}
+
+h2 {
+ font-size: 30px;
+}
+
+h3 {
+ font-size: 24px;
+}
+
+h4 {
+ font-size: 18px;
+}
+
+h5 {
+ font-size: 16px;
+}
+
+h6 {
+ font-size: 12px;
+}
+
+.table th:not([align]) {
+ text-align: left;
+}
+
+.table-word-wrapped {
+ table-layout: fixed;
+}
+
+.table-word-wrapped td {
+ word-wrap: break-word;
+}
+
+
+h4 em {
+ font-style: normal;
+}
+
+body,
+p {
+ text-align: justify;
+}
+
+body ul,
+body ol {
+ text-align: left;
+}
+
+
+th {
+ text-align: left;
+}
+
+
+@media print {
+
+ h2,
+ h3,
+ h4 {
+ color: #444444 !important;
+ }
+
+ div,
+ p,
+ table {
+ orphans: 3;
+ widows: 3;
+ }
+
+ #TOC {
+ display: none;
+ }
+}
+
+.pagebreak {
+ page-break-before: always;
+}
+
+
+#jup-show-hide-all-menu {
+ margin-right: 15px;
+}
+
+.table-fit {
+ width: 1px;
+}
+
+</style>
+
+
+ <style type="text/css">
+ pre { line-height: 125%; }
+td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
+span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
+td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
+span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
+.highlight .hll { background-color: #ffffcc }
+.highlight { background: #f8f8f8; }
+.highlight .c { color: #3D7B7B; font-style: italic } /* Comment */
+.highlight .err { border: 1px solid #FF0000 } /* Error */
+.highlight .k { color: #008000; font-weight: bold } /* Keyword */
+.highlight .o { color: #666666 } /* Operator */
+.highlight .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */
+.highlight .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */
+.highlight .cp { color: #9C6500 } /* Comment.Preproc */
+.highlight .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */
+.highlight .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */
+.highlight .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */
+.highlight .gd { color: #A00000 } /* Generic.Deleted */
+.highlight .ge { font-style: italic } /* Generic.Emph */
+.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */
+.highlight .gr { color: #E40000 } /* Generic.Error */
+.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.highlight .gi { color: #008400 } /* Generic.Inserted */
+.highlight .go { color: #717171 } /* Generic.Output */
+.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.highlight .gs { font-weight: bold } /* Generic.Strong */
+.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.highlight .gt { color: #0044DD } /* Generic.Traceback */
+.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
+.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
+.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
+.highlight .kp { color: #008000 } /* Keyword.Pseudo */
+.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
+.highlight .kt { color: #B00040 } /* Keyword.Type */
+.highlight .m { color: #666666 } /* Literal.Number */
+.highlight .s { color: #BA2121 } /* Literal.String */
+.highlight .na { color: #687822 } /* Name.Attribute */
+.highlight .nb { color: #008000 } /* Name.Builtin */
+.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
+.highlight .no { color: #880000 } /* Name.Constant */
+.highlight .nd { color: #AA22FF } /* Name.Decorator */
+.highlight .ni { color: #717171; font-weight: bold } /* Name.Entity */
+.highlight .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */
+.highlight .nf { color: #0000FF } /* Name.Function */
+.highlight .nl { color: #767600 } /* Name.Label */
+.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
+.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
+.highlight .nv { color: #19177C } /* Name.Variable */
+.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+.highlight .w { color: #bbbbbb } /* Text.Whitespace */
+.highlight .mb { color: #666666 } /* Literal.Number.Bin */
+.highlight .mf { color: #666666 } /* Literal.Number.Float */
+.highlight .mh { color: #666666 } /* Literal.Number.Hex */
+.highlight .mi { color: #666666 } /* Literal.Number.Integer */
+.highlight .mo { color: #666666 } /* Literal.Number.Oct */
+.highlight .sa { color: #BA2121 } /* Literal.String.Affix */
+.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
+.highlight .sc { color: #BA2121 } /* Literal.String.Char */
+.highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */
+.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
+.highlight .s2 { color: #BA2121 } /* Literal.String.Double */
+.highlight .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */
+.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
+.highlight .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */
+.highlight .sx { color: #008000 } /* Literal.String.Other */
+.highlight .sr { color: #A45A77 } /* Literal.String.Regex */
+.highlight .s1 { color: #BA2121 } /* Literal.String.Single */
+.highlight .ss { color: #19177C } /* Literal.String.Symbol */
+.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
+.highlight .fm { color: #0000FF } /* Name.Function.Magic */
+.highlight .vc { color: #19177C } /* Name.Variable.Class */
+.highlight .vg { color: #19177C } /* Name.Variable.Global */
+.highlight .vi { color: #19177C } /* Name.Variable.Instance */
+.highlight .vm { color: #19177C } /* Name.Variable.Magic */
+.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
+ </style>
+
+</head><body>
+ <div class="container-fluid main-container">
+ <div class="row">
+
+
+
+
+ <div class="col-xs-12 col-sm-4 col-md-3">
+ <div id="TOC" class="tocify"></div>
+ </div>
+
+
+
+ <div class="col-xs-12 col-sm-8 col-md-9">
+
+ <header id="pageHeader">
+
+ <h1 class="title">PHIL3030 Term Paper</h1>
+
+ <h4>Navan Chauhan</h4>
+
+
+ <h4>2024-04-28</h4>
+
+ </header>
+
+
+ <div id="main-content" class="toc-content">
+
+
+
+
+
+
+
+
+<h1 id="Term-Paper-Code">Term Paper Code<a class="anchor-link" href="#Term-Paper-Code">&#182;</a></h1><p>Subset of code that was used to generate assets and queries for the paper.</p>
+
+<h2 id="Imports-and-Configuration">Imports and Configuration<a class="anchor-link" href="#Imports-and-Configuration">&#182;</a></h2>
+
+
+
+
+
+
+<div class="pj-input pj-fold fold-hide">
+<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">glob</span>
+<span class="kn">import</span> <span class="nn">os</span>
+<span class="kn">import</span> <span class="nn">nltk</span>
+<span class="kn">import</span> <span class="nn">seaborn</span> <span class="k">as</span> <span class="nn">sns</span>
+<span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
+<span class="kn">from</span> <span class="nn">wordcloud</span> <span class="kn">import</span> <span class="n">WordCloud</span>
+<span class="kn">from</span> <span class="nn">sklearn.feature_extraction.text</span> <span class="kn">import</span> <span class="n">CountVectorizer</span><span class="p">,</span> <span class="n">TfidfVectorizer</span>
+<span class="kn">from</span> <span class="nn">nltk.corpus</span> <span class="kn">import</span> <span class="n">stopwords</span>
+<span class="kn">import</span> <span class="nn">re</span>
+<span class="kn">from</span> <span class="nn">nltk.tokenize</span> <span class="kn">import</span> <span class="n">word_tokenize</span><span class="p">,</span> <span class="n">sent_tokenize</span>
+<span class="kn">from</span> <span class="nn">sklearn.metrics.pairwise</span> <span class="kn">import</span> <span class="n">cosine_similarity</span>
+<span class="kn">import</span> <span class="nn">pandas</span> <span class="k">as</span> <span class="nn">pd</span>
+<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
+<span class="kn">from</span> <span class="nn">sentence_transformers</span> <span class="kn">import</span> <span class="n">SentenceTransformer</span><span class="p">,</span> <span class="n">util</span>
+<span class="kn">from</span> <span class="nn">tqdm</span> <span class="kn">import</span> <span class="n">tqdm</span>
+</pre></div>
+
+</div>
+
+
+
+
+
+
+<div class="pj-input pj-fold fold-hide">
+<div class=" highlight hl-ipython3"><pre><span></span><span class="n">nltk</span><span class="o">.</span><span class="n">download</span><span class="p">(</span><span class="s1">&#39;stopwords&#39;</span><span class="p">)</span>
+<span class="n">nltk</span><span class="o">.</span><span class="n">download</span><span class="p">(</span><span class="s1">&#39;punkt&#39;</span><span class="p">)</span>
+</pre></div>
+
+</div>
+
+
+
+
+
+
+<div class="pj-input pj-fold fold-hide">
+<div class=" highlight hl-ipython3"><pre><span></span><span class="n">dataset_path</span> <span class="o">=</span> <span class="s2">&quot;./dataset&quot;</span>
+<span class="n">assets_path</span> <span class="o">=</span> <span class="s2">&quot;./assets&quot;</span>
+<span class="n">image_save_path</span> <span class="o">=</span> <span class="s2">&quot;./assets/wordclouds&quot;</span>
+</pre></div>
+
+</div>
+
+
+
+
+
+
+<div class="pj-input pj-fold fold-hide">
+<div class=" highlight hl-ipython3"><pre><span></span><span class="n">glob</span><span class="o">.</span><span class="n">glob</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">dataset_path</span><span class="p">,</span><span class="s2">&quot;*/*&quot;</span><span class="p">))</span>
+</pre></div>
+
+</div>
+
+
+
+
+
+
+<div class="pj-input pj-fold fold-hide">
+<div class=" highlight hl-ipython3"><pre><span></span><span class="n">file_paths</span> <span class="o">=</span> <span class="n">glob</span><span class="o">.</span><span class="n">glob</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">dataset_path</span><span class="p">,</span><span class="s2">&quot;*/*&quot;</span><span class="p">))</span>
+</pre></div>
+
+</div>
+<h2 id="Basic-Motif-Exploration">Basic Motif Exploration<a class="anchor-link" href="#Basic-Motif-Exploration">&#182;</a></h2>
+
+
+
+
+
+
+<div class="pj-input pj-fold fold-hide">
+<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">create_word_cloud</span><span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="n">plot</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+ <span class="n">text</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;[^\x00-\x7F]+&#39;</span><span class="p">,</span> <span class="s1">&#39; &#39;</span><span class="p">,</span> <span class="n">text</span><span class="p">)</span> <span class="c1"># Remove non-ASCII chars. Might not be needed after using clean_text</span>
+ <span class="n">text</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;\d+&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">text</span><span class="p">)</span>
+
+ <span class="n">stop_words_set</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span><span class="n">stopwords</span><span class="o">.</span><span class="n">words</span><span class="p">(</span><span class="s1">&#39;english&#39;</span><span class="p">))</span>
+ <span class="n">stop_words_list</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">stop_words_set</span><span class="o">.</span><span class="n">union</span><span class="p">(</span><span class="nb">set</span><span class="p">([</span><span class="s1">&#39;.&#39;</span><span class="p">,</span> <span class="s1">&#39;,&#39;</span><span class="p">,</span> <span class="s1">&#39;;&#39;</span><span class="p">,</span> <span class="s1">&#39;:&#39;</span><span class="p">,</span> <span class="s1">&#39;!&#39;</span><span class="p">,</span> <span class="s1">&#39;?&#39;</span><span class="p">,</span> <span class="s1">&#39;(&#39;</span><span class="p">,</span> <span class="s1">&#39;)&#39;</span><span class="p">,</span> <span class="s1">&#39;[&#39;</span><span class="p">,</span> <span class="s1">&#39;]&#39;</span><span class="p">])))</span>
+ <span class="n">stop_words_list</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">stop_words_set</span><span class="o">.</span><span class="n">union</span><span class="p">(</span><span class="nb">set</span><span class="p">([</span><span class="s2">&quot;like&quot;</span><span class="p">,</span> <span class="s2">&quot;come&quot;</span><span class="p">,</span><span class="s2">&quot;index&quot;</span><span class="p">,</span><span class="s2">&quot;thou&quot;</span><span class="p">,</span><span class="s2">&quot;thee&quot;</span><span class="p">,</span><span class="s2">&quot;next&quot;</span><span class="p">,</span><span class="s2">&quot;hath&quot;</span><span class="p">,</span><span class="s2">&quot;hymn&quot;</span><span class="p">])))</span>
+
+ <span class="n">token_pattern</span> <span class="o">=</span> <span class="sa">r</span><span class="s1">&#39;(?u)\b\w{4,}\b&#39;</span>
+
+ <span class="n">vectorizer</span> <span class="o">=</span> <span class="n">CountVectorizer</span><span class="p">(</span><span class="n">stop_words</span><span class="o">=</span><span class="n">stop_words_list</span><span class="p">,</span> <span class="n">token_pattern</span><span class="o">=</span><span class="n">token_pattern</span><span class="p">)</span>
+ <span class="n">word_count</span> <span class="o">=</span> <span class="n">vectorizer</span><span class="o">.</span><span class="n">fit_transform</span><span class="p">([</span><span class="n">text</span><span class="p">])</span>
+
+ <span class="n">words_freq</span> <span class="o">=</span> <span class="p">{</span><span class="n">word</span><span class="p">:</span> <span class="n">word_count</span><span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="n">idx</span><span class="p">]</span> <span class="k">for</span> <span class="n">word</span><span class="p">,</span> <span class="n">idx</span> <span class="ow">in</span> <span class="n">vectorizer</span><span class="o">.</span><span class="n">vocabulary_</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
+
+ <span class="n">wordcloud</span> <span class="o">=</span> <span class="n">WordCloud</span><span class="p">(</span><span class="n">width</span><span class="o">=</span><span class="mi">800</span><span class="p">,</span> <span class="n">height</span><span class="o">=</span><span class="mi">400</span><span class="p">,</span> <span class="n">background_color</span><span class="o">=</span><span class="s1">&#39;white&#39;</span><span class="p">,</span>
+ <span class="n">max_words</span><span class="o">=</span><span class="mi">150</span><span class="p">,</span> <span class="n">min_font_size</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">random_state</span><span class="o">=</span><span class="mi">42</span><span class="p">,</span>
+ <span class="n">color_func</span><span class="o">=</span><span class="k">lambda</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="s2">&quot;black&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">generate_from_frequencies</span><span class="p">(</span><span class="n">words_freq</span><span class="p">)</span>
+ <span class="k">if</span> <span class="n">plot</span><span class="p">:</span>
+ <span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">5</span><span class="p">))</span>
+ <span class="n">plt</span><span class="o">.</span><span class="n">imshow</span><span class="p">(</span><span class="n">wordcloud</span><span class="p">,</span> <span class="n">interpolation</span><span class="o">=</span><span class="s1">&#39;bilinear&#39;</span><span class="p">)</span>
+ <span class="n">plt</span><span class="o">.</span><span class="n">axis</span><span class="p">(</span><span class="s1">&#39;off&#39;</span><span class="p">)</span>
+ <span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
+ <span class="k">return</span> <span class="n">wordcloud</span>
+</pre></div>
+
+</div>
+
+
+
+
+
+
+<div class="pj-input pj-fold fold-hide">
+<div class=" highlight hl-ipython3"><pre><span></span><span class="k">for</span> <span class="n">file</span> <span class="ow">in</span> <span class="n">file_paths</span><span class="p">:</span>
+ <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">file</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
+ <span class="n">fname</span> <span class="o">=</span> <span class="n">file</span><span class="o">.</span><span class="n">rsplit</span><span class="p">(</span><span class="s2">&quot;/&quot;</span><span class="p">,</span><span class="mi">1</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">&quot;.txt&quot;</span><span class="p">,</span><span class="s2">&quot;.png&quot;</span><span class="p">)</span>
+ <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Saving as </span><span class="si">{</span><span class="n">fname</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+ <span class="n">image</span> <span class="o">=</span> <span class="n">create_word_cloud</span><span class="p">(</span><span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">())</span>
+ <span class="n">image</span><span class="o">.</span><span class="n">to_file</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">image_save_path</span><span class="p">,</span> <span class="n">fname</span><span class="p">))</span>
+</pre></div>
+
+</div>
+
+<pre>Saving as Mencius.png
+</pre>
+
+
+
+<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAxYAAAGVCAYAAABjBWf4AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOydd1hU1/q2n+mNofdeBUEQEMUu9t5rrDGJRtNMNzGapunFeIxRE40t9t41dgUUUBCkSe+9M0wv3x9+ex1GZmCAQXPy474ursQpe+/ZZa31tuelaTQaDbrppptuuummm2666aabbjoB/XkfQDfddNNNN91000033XTzv0+3YdFNN91000033XTTTTfddJpuw6Kbbrrppptuuummm2666TTdhkU33XTTTTfddNNNN91002m6DYtuuummm2666aabbrrpptN0GxbddNNNN91000033XTTTafpNiy66aabbrrppptuuummm07TbVh000033XTTTTfddNNNN52m27Dopptuuummm2666aabbjoN83kfwNNoNBrIZDJIJBLyGovFgomJic7PK5VKSKVSKBQKAACNRoNAIACLxeqyY1QqlZBIJGAwGOByuaDTjWefUb8HAHg8HhgMhtG2/W9CpVJBJpNBJpOR1zgcjtGvxz8RjUaDhoYGqNXqTm2HwWCAx+N16FnRaDQAnjxv3XTTTTetoVQqIZPJoFQqweVywWazu8eObrr5l/KPW4HJZDL8+uuv8Pb2hru7O2xsbDB9+nS9n09MTMTixYvh5eUFR0dHWFtb48KFC116jImJiRg3bhzeeOMNFBYWGnXbDx8+xPTp07Fw4UKkpqYaddv/JoqLi/Hhhx/C09MTzs7OsLa2xrvvvmv06/FPRCwWo1evXrC0tOzU39ChQ3Hr1q0W2xeJRFCpVHr3r9FoIBaLUVBQ0JU/8x+FXC5HTU0NysrKUF5eDolEQowrCrFYjMrKSpSWlqKiogJqtZp8RqPRQKFQoLq6mjhBuunm/wqpqalYs2YNevXqhT/++AMikeh5H1I3/0dQKBSoqKhAaWlpu/7Ky8v/5+5TtVqN+vr6Fr+loqJCy1nf1fzjIhZsNhsLFy5EeHg40tLS8OWXX7b6+Z49e+Krr75CcXExdu3ahXPnzj2jI+3meWJra4vXXnsNo0ePxp07d3D06NHnfUj/Gn766SdMnz4dAQEBLSJmarUaNTU1OHXqFM6fP4+TJ08+p6NsHSqaQ6PROu0ZVSqVuHr1Kn7//Xc8fvwYHA4HX375JSZMmAAm88kQKpPJsGXLFpw8eRKVlZWwsrLCpUuXYGZmBuCJYZGcnIwPPvgAP//8M4KCgjr3A7vp5n+IoKAgbNq0CQqFAhwOp8v3p1ar0dTUhMbGRsjlcqjVajAYDHA4HFhaWoLFYpFxQa1Wo7GxEQ0NDVAoFKDT6eDz+TAzM9M6VqlUipqaGjCZTFhYWGhFesViMaqqqiAQCGBhYQE6nQ6NRoP6+nrU1dXBxcUFMpkMtbW1kMvlJLPCwsKCjCHAk3GksbERYrEYKpUKNBoNLBYLAoEAQqGwxXgslUpRW1sLqVQKjUYDDocDU1NTmJiYPJOIkEwmQ3V1NYRCIYRCYYe3o1arUVRUBIVCARqNBkdHR3C5XKMcY2pqKmbNmoWsrKx2fc/Ozg7vv/8+3n//faMcx7OgoaEBn376KTZv3qz1uo+PDz7//HPMnz//mRzHP86woNPpsLe3h729Pezs7LBx48ZWP8/n89GzZ0/07NkT0dHRuHz58jM60m6eJ1wuF/7+/vD39weTycT169ef9yH9a4iKisKDBw/w1Vdfwd/fn0xmarUahYWF+PPPP/Hbb79h7Nixz/lI9VNUVAQ6nQ5bW1uw2exObauwsBBHjx6FjY0NPvvsM3A4HNjb22stCOLj47Fz5058+OGHGDp0KEQiEUxNTbUmdw6HA3d3dwgEgk4dTzctUavVKC0tBZ/Ph4WFxfM+nH8tlGOBSkWVSCTg8XhwdHQkC2InJycAIItoCwuLNp9BuVyOsrIySKVS0Ol0WFlZdfg6qlQq5Ofn48iRI7h06RIKCgqgUCjA4/Hg5eWFn3/+GX5+fuSz2dnZ2L17Ny5evIjKykrweDz06dMHCxcuREREBEnDTkhIwCeffAI3NzesW7cOnp6eZJ93797FsmXLMHv2bKxZswZmZmbQaDT4888/8fXXX+PevXu4ceMG/vrrL+Tn54NGo2HUqFFYv3497O3tAQASiQSRkZH466+/8PDhQ9TX14PJZMLOzg6TJk3Ciy++CAcHB7LPhoYGXLhwAX/++ScyMjKgUqng5OSEqVOnYsmSJXBwcOhy4yItLQ3vvPMOXnnlFSxYsKDD25FIJFixYgWys7NRVFSE69evIzw83IhH2s3TUM63rkgd77BhodFoIJVKUVFRgfr6emJpcrlcWFtbw9LSUsubV1tbi7q6OkgkEqjVarDZbFhYWMDe3h4MBuOZ5VtqNBo0NjaipKQEYrEYGo0GAoEANjY2sLS01DoOKuWjvLwc9fX1AAAzM7NnElKi0WgQi8XIyclBfX09NBoNhEIhHB0dwefzW5wvjUYDiUSC0tJSkn/P4/FgbW0NKysrsjgUi8UoLi4m55+6LkqlEhwOB7a2tlrXrvn2pVIp2b5KpQKXy4WVlRVsbGzAYDCg0WhQWVmJoqIi2Nvb6xzY6uvrUVBQAD6fDxcXF60Jp6mpCSUlJRCJROT4bWxsYGVlZZSbXy6Xo7S0FHV1dcRzZmlpCTs7uxZeo9LSUigUCtjb26OhoYGksLBYLFhbW8Pa2lrnZFlXV4fKykqSTsRkMrWuQ3PUajUaGhpQXl6OpqYmAICJiQlsbW1hamr63GpFlixZgm+//RZr167Fhg0b4O/vD41Gg/T0dHz//fe4fPkypk2bhs8+++y5HF9baDQa7N69G9bW1pg7d26L895eqNSnUaNGISQkROdnHj9+DEtLS4wcORJubm4t3qfT6fD398eOHTs6dSzd6EYikeDTTz/FoEGD8NJLLz3vw/nXIpFI8Mcff6CwsBA0Gg05OTnw9/fHunXrcPLkSdy+fRu7d+8GAJw4cQI5OTlYvny5zmeCQqPRIDo6GocPH0ZpaSnodDrCw8Px5ptvgs/nt/sYCwoKsGbNGkRHR6NPnz6YMGECTExMkJ+fj6SkJFhaWpL9lpSUYPXq1YiJicHo0aMRFBSEmpoa3LhxA+vWrcMHH3yAWbNmdco5IZVKsXPnTty5cwcRERGYPXs2CgsLwePxtIynuLg4bNiwASKRCFOmTIGDgwNqa2uRmJiIxsZGKJVK8lmlUom9e/fiq6++woABA7Bq1SrQ6XTcu3cPv/76K3JycvDzzz93KorwLBEIBLhw4QLy8vIQHBz8vA/nuVFdXQ25XA5ra+surRMGgPz8fNDpdLi4uBh9rdEhw0Kj0aCurg5XrlzB0aNH8fjxY+JpMDc3x9y5c/HSSy+RNICUlBTs378fcXFxqKqqglwuB5vNRt++fbFq1SoEBQW1WMh2FZWVlThw4ABOnDiB8vJyaDQa2NraYuzYsVi4cCHc3d3JYrixsRGXL1/G7t27kZGRAQ6HA19fXwQHB0MsFnfpcUqlUly8eBGJiYlITU2FRCKBh4cHXnnlFUydOhVCoZAcp0ajQW1tLc6dO4d9+/YhLy8PCoUCVlZWGDlyJBYtWkQ8zzk5OVi3bh1MTEwwePBg3L59G0lJSairqwOfz8fEiROxYsUKeHl5EWOEMsYuXLiA3bt3Izs7GwqFAubm5hg2bBhefPFFBAYGgkaj4cKFC1izZg1efPFFrF27tsXEcOXKFXz00UcYM2YMPvvsM9jZ2QEAampqcPLkSezduxclJSVQqVSwtrbGqFGjsGjRIvj6+nbq5pdIJLh16xZ27NiBR48eQSqVwsTEBP3798crr7yCvn37knuwrKwM3377LbKzs/HCCy/g3r17iI2NRW1tLVgsFoYPH47ly5ejd+/eZMLRaDTIzc3FsWPHcO7cOZSWlkIul4PD4cDOzg6vvPIKlixZQo5HqVSioKAAx48fx5kzZ1BSUgKNRgNnZ2dMmzYNM2fO1PvAMxgMhISEwM7ODnK5HAqFosVf89ebT0iGsGDBAjCZTHz99ddYu3YtvvzyS9TX1+PTTz9FYWEhVq5ciffee09r0lIqlaipqUFxcTGamprIWODi4kI+V1NTg6KiIjQ0NIDJZMLBwQGOjo5kAE1ISIClpSVZhMjlchQUFECpVMLPzw9qtRoVFRWoqamBjY0NiouLIRKJYGZmBldXV5iZmSE/Px8lJSWIjIyEh4cHXF1diUHu4eGhNc6oVCoUFRWhrKwMCoUCQqEQLi4uZOFRU1ODnJwcxMXFoaysDNnZ2bh16xZMTU3h6ekJMzMz5Obmory8HA8fPoRYLEZsbCzy8vJgY2MDPz8/0Ol0yGQy3L9/H0qlEnw+H76+vjA1NdU65wqFAlVVVSgpKYFEIiFeWxcXF/IM1dbWorCwEA0NDWCxWLC3t4ezszO5R5qampCamgo/Pz8UFBSgvr4eXC4XLi4usLW1bdc90E03+pBKpUhPT8fu3bvh6OgIqVTaqfQmqVSKTz/9FC+88AIWLVqEyspKrFu3DsOGDUP//v3btS21Wo1Dhw4hKioKCxcuxNtvv03mGODJc8ZkMkGj0SCTyXDx4kVcv34db7zxBj777DOw2WyoVCpER0dj9erVOHDgAEJDQ0mEoyNIJBJcuXIFe/fuhb+/PwDd4heFhYUoKirC0qVL8f7775NUIJVKBaVSqTV25efn46effsLgwYOxe/du4mxcsGAB3n33XVy9ehV37tzBhAkTOnzcz4OucKYJBAIEBwfDzMxM5xwpl8shFoufaQ2CPhISElBZWYlx48Z1eeT18OHD4PF4WLFihdHTEzu0mheLxTh9+jQ+//xzODk5Yfr06XB3d4dIJEJGRgbMzc21FpSFhYWoqqpCWFgYfHx8wGKxkJCQgKNHj0IqlWLbtm3PJHwtl8uxdetWbN++HZMnT8bChQuhVqsRExODXbt2oaSkBN988w3Mzc2hVCpx584d/PDDDwCAxYsXw9bWFklJSTh//jyys7P1ei+NQVJSEsrKyhAaGorly5ejqqoKFy5cwOrVq2FhYYExY8aQRa1cLseRI0fw6aefolevXliwYAH4fD4SExNx9OhRFBUVYf369fDy8iLbj4yMREpKCnx8fLBo0SIoFApcvXoV27dvh0AgwLvvvkuuiUajwenTp/H2228jICAA8+fPh1AoxKNHj3DmzBnk5eXhhx9+QI8ePeDn54eePXvi0aNHyMzMRO/evck+qXPa0NCAkSNHwtzcnBz/rl27sH79evTv3x8vv/wyuFwukpKScPToUWRmZuL777+Hh4dHh8/n9evX8frrr8PKygozZsyAnZ0dHj9+jMuXLyM9PR3btm1DYGCg1neSk5OxdetW2NvbY/bs2WAwGIiKisKxY8dAo9FIWBx4Yox89tlnuHz5MkJDQ7F48WJYWFiQBenT6S/l5eXYunUrDh8+jLCwMIwbNw4qlQp3797Fpk2b0NjYiJUrV+pcEHK5XOzevRt1dXUkh7e+vl7nX2ZmJiIjI1stxtbF3LlzwWQysX79enz44YfIzc2FQCDAxx9/jBdffLHFAj0vLw+HDh1CdHQ0cTL07t0bS5YsQVBQEKqrq3H48GFcu3YNtbW1YDKZ8Pb2xrJlyxAYGAgmk4nXXnsNEydOxNq1awE8iW5t3rwZNTU12LdvH1QqFS5cuIADBw5g5syZiI6ORklJCXx9ffHKK68gNDQUkZGROHPmDBITE5GdnY309HSwWCxMnjwZL7/8MklrUKvVePz4Mf7zn/8gJycHSqUSFhYWGDZsGF544QXY2NggOzsbf/zxBx49eoScnBxUVlYiLi4OPXv2xKuvvgozMzPcuHEDV65cQWJiIkpLS7Fp0yZwuVwMGzYMH3/8Meh0OhobG/HTTz+hpKQEdXV12LVrFwYMGKB1/tLS0nD48GHEx8dDJpOBwWAgPDwcS5cuhZeXF+rr63Ho0CHcvHkT1dXV4HK5cHZ2xptvvkkiSjk5OZg5cya+++473Lx5E7m5ubCyssKSJUswfvz4dl3//0VoNBoqKytx//59iMViODo6wsXFBRwOBxKJBBkZGWhoaAAAuLu7w8XFhUR6s7KyUFtbCwCwsrKCn58fmEwm5HI5iouLUVJSArVaDTs7O7i4uEAkEqGmpga1tbXg8/lgMBioqamBl5cX7OzsIJPJkJ6eDpFIBCaTCXd3dzg6Oj7P02M02Gw2+vTpA1dXVwBPoqzNBQk0Gg1oNBrUarVBynVVVVXIzc3F1atXERkZCQDo169fu8cs4El6UHx8PPh8PqZMmaJlVADQ8gLL5XKcOXMG5ubmWLBgAZlPGQwG/P39MWrUKBw6dAgPHjzolGHB4XAwfvx4YlQAutX07OzsYGdnh5iYGFy8eBG9evWCg4MDBAJBi4Xf1atXUVtbCzc3N9y6dYs4AaVSKUxNTdHY2IiHDx92yrCIiYmBq6sr7OzsUF1djcTERAQFBcHa2hoVFRUoKCgg56y+vh5xcXFoaGgAj8eDq6srHBwcyHHV1NQgLy8PtbW1YDAYcHR0hJubW7sWtDKZDIWFhSguLoZKpYK5uTnc3NxaZJo8jaenJ37//fcWcyX1/1VVVYiKisK1a9c6fK6MxahRo57Zvvh8Png8XpdkC7XbsNBoNCgtLcWWLVtgbW2N77//HoMGDSLvU0oozYuMRo8ejdGjR4PD4Wg9ALm5ubhx4wYkEgnMzc27PB0qIyMDW7ZswcyZM/Hrr7+SY5k8eTJWr16Nmzdv4t69exg3bhxqampw69YtVFVVYd26dVi0aBGYTCaamprw1VdfISMjo0uPtb6+Hm+++SaWL19OPKghISF45513sH37dgwcOBCWlpbQaDQoKirC999/D3d3d/z2229kECwuLsb333+P48eP49y5c3jzzTfJ9ktKSjBp0iR88MEHZIIYPXo0XnrpJZw6dQpLly4lhkVVVRU2bNgAe3t7bN26FQEBAQCAiooKbNy4Ebt27cKxY8fw0UcfwdvbG3369MGpU6eQkpKCoKAgcl2LioqQmJgIV1dX+Pn5kUElPT2d5L3u3LmT5OjW1dVhy5Yt2LJlC/bu3Yu1a9d2SH63trYW33//PZRKJTZu3IjBgweDTqejqakJXl5e2LBhA3bu3Imff/5Zy2NSVVWFIUOG4IsvvkDPnj0BPDE23n33Xdy4cQMLFiwghsWhQ4dw8eJFjBs3Dt9//z1JA6PUgJpPknK5HLGxsTh69CiGDx+ODRs2wMXFBcATVbBPPvkER48exYABAzB69GidzwWl7NQW58+fx4MHDzqkbjFz5kwwGAx88803KCwsxG+//YalS5e2+Fx9fT1OnjyJCxcuYNmyZRgyZAiRZKau5aVLl3DmzBlMnjwZY8aMQXV1Nb7++mts2bIF3377LaytrQ0+rsePHyM/Px9vvvkmrKysIJfLyQJizpw5mDJlCmbPno2+ffti5cqVpECyuTEklUrxn//8B3l5efjiiy9ga2uLmzdvYv/+/eDz+cRQ+c9//oM7d+5g27ZtGDduHBYuXAg6nU4WKIsWLcL8+fOxbds2nDhxAjt37oSzszMYDAa5V62trXHs2DHExsbixRdfbPF7KisrsX//fsTHx+Pll19Gv379IJFIoFQqyXm5fv06Tp06hUWLFmHw4MGora3F6tWrsXHjRmzbto3ct3V1dbh69SoWL14Md3d3iMViEjnuCmpraxETE6PX20ej0RAUFKSVj94Z5HI5CgsLkZmZCTqdDh8fH/IM0ul0JCQkoLq6GuXl5TA1NcVrr72GHj164Pr167hz5w7q6uqgUqlgYWGBNWvWgMvl4ubNmzh58iSZuwIDA+Ht7Q06nY60tDQcP34cxcXFoNFosLS0xLRp01BVVYXr16+jqakJDQ0NcHFxQUZGBkaPHo2lS5fi8uXLiI6ORlNTE9RqNZycnPD222/rvBaVlZVISUkhi66AgAAtJ9A/DTqd3qKwlioyVigUJGJZWVlJUjxbg8vlwszMDO+//z7Cw8NBo9HQ2NioV2K+NcrKylBXVwdPT88WUcGnoeoruFxui/vT1NQUzs7OqK2tRVlZWbuPozkMBgM9evRo83OhoaFYtGgRmesCAgIwfPhw9O3bF35+fhAIBGQuyMrKgkKhwIkTJ3Dx4sUW2/Lx8elQGllzvvjiC8yaNQsvvPAC/v77b7z77rv4/vvvMWfOHFy+fBlHjx7Fhg0b0NTUhDt37uDevXuorq6GUqkkmQAuLi6orq7GsWPHcP36dTQ0NIBOp8PR0RGLFy9Gv379DDIu5HI5EhMTsWfPHhQVFUGtVsPU1BRDhw7FjBkzYGNjo/e7dDodFhYWep3XIpEI5ubmBhkWVVVVKC8vR01NDTgcDthsNmpqauDu7g4HBwdER0cjPDwcJiYm0Gg0iIyMhJ+fH6ysrFBeXo60tDSSsePh4UGcpWKxGHl5eSgsLIStrS38/PzA4/EA/LdmqKCgABKJBEwmE3379oWZmVmn1swuLi5ITEzE33//rZW27uPj0+kUunYbFkqlEnl5ecjIyMDixYu1jApAdyiLy+WirKwMBQUFqKmpIZOmVCpFfX19u1M1Osrff/8NkUgEHo+HQ4cOkdepuo+6ujqkpaVh3LhxKC0tRVpaGkl9ohYlAoEA/fv3x9mzZ7v0WD09PREeHq61eJw4cSI2btyIyMhI1NfXw8LCAiqVCrdu3UJFRQUWLVqk5VlxcHDA0KFDsXv3biQlJWlN/o6OjoiIiCALWgDo06cP7O3tcf/+fa3+EHfu3EFhYSFef/11YlQATxZMI0eOxNatW5GQkACxWAwrKyv07t0bx44dw6NHjzBx4kQymUZFRaGoqAizZs3S8sSfO3cOtbW1WLNmjVZxmpmZGSZPnow9e/bg9u3bqK6u7lBKR1xcHDIyMjBq1Cj06dOH3KNU6tfXX3+NmJgYNDY2ak38VlZWGDx4sNY57dmzJ9zd3RETE0MW61RIXaVS4c0334SdnR15SGk0Wov83NraWty7dw9MJhMjRozQuga9evVC7969cevWLeTk5JB0qq4kPj4eRUVFOt9js9kYPnw4MjIykJSUhDNnzpD3LCwsMGTIEJSWliIuLg4DBw7EwoULW+SGKhQKREZGwt3dHRMmTICHhwd8fHywYMECrFu3DlVVVe2qg3BwcMDo0aPRr1+/Fu+xWCxoNBrQ6XQwmUxwOBwyQFNQqX3nz5/Hd999R6IHXC4XiYmJuHbtGhYvXgw2mw0Gg0H+y2KxWmyLxWKRPzqdrnN/FPrC/FRkZcyYMZg1a5bOtNALFy6QFNSoqCgAINLaKpVK654eMWIEIiIiWj+JRiIrKwvLli3Te/8wGAz88ssveOONN4yyv7KyMmzduhW7du0Ci8XC8uXL8dZbb4HH40GlUsHR0RHvvPMO2Gw2VqxYgfv378Pa2po4FEaNGgWJRIKvv/4aEydOhJ+fH/7880/iVKFqybhcLkQiEW7evIn6+np89dVXEAgE2LhxI27evEnGqRUrVpA6pAEDBuDq1auorq7GV199hXnz5sHb2xvl5eXYsWMHxowZoxWpokhJScEHH3yA+/fvg8fj4ZtvvsGqVauMcr6eFQwGA05OTqDT6di/fz8sLCxI9gLw5D7Jzc1FQUEBmEwmbGxs0KdPHzg4OMDKygrTpk3D0aNHUVJSAuDJmDpjxox2KwOpVCqo1WqD1OA0Gg1UKpWWE4CCGj+oz7SFUqlsIT/dfFuGGEmWlpZ48cUX0bt3b1y6dAlxcXHYuHEjXF1dsXz5cowbN44YSwqFAhqNBi+99BJ69erVYmxhsVit1rUYQq9evZCTkwOFQoF79+4hLCwMMTExmD59OnJyctCrVy8AIDWIH330Edzd3XHu3DlcuHABgYGBcHFxwa1bt3Du3DmMGDECEydOhEgkws8//4zff/8drq6uBh1nZWUljhw5gqamJnz55ZcQCoU4d+4czp49CxsbG8yYMaNTv9VQUlNTcfr0aYjFYtTV1cHOzg5lZWUICQnB7NmzsWrVKpw8eRI+Pj4AgHXr1uHzzz9H3759ceLECURHR8PS0hIcDgcRERFahkVycjL27NkDT09PrF69Gs7OzgCeOMSPHDmC8vJy4qykDOfOGBZmZmZk7rGzsyPPwIoVK56PYVFQUAAulwtvb2+DPn///n2cOHECGRkZ5KHXaDTIzs5u9YE0NllZWVAqlfj7779x586dFu/36tWLPLhUqLt5zjWFjY1Nlyu72Nvbt/C4CAQCuLi4ID4+HhUVFXB1dYVarcbDhw+JYs/OnTu1vpOcnAwajYa6ujoS6gcAJycn2NjYaN2YDAYDfD6fDFoU1PbLy8tbbD87Oxt0Op0MLiYmJkStKTExEVlZWejTpw9kMhnu3r0LqVSKQYMGkQkHAB49egSlUonQ0FCt46HRaBAKhfD29kZZWRny8vI6ZFikpKRAKpWioaEB+/bt01r4VlVVkehFRUWFlmFhY2MDZ2dnnedIrVaTCaeqqgqlpaVwdnYm3urWaGhoQGZmJvHCPH1OHz9+DLVajcrKSojF4i43LPbu3atXNpbNZoPP54PNZmPXrl04ceIEeS80NBRDhgwh+akODg46C86oQfhpRSQnJycir6grZUKj0eh0OpiZmbVIcWgvdXV1EIvFJFoHPDEsbGxskJWVBYlE0mk1KUNpbGyESqWCra2tTqNCo9GgrKwMhYWFuHbtmtb9MHz4cK3PUspTzwoTExMEBwfDysoKUqkUUqmUSHd2hcOotLQUd+/eRU1NDQCQFDTK4+zt7U0KH11cXFBVVYWysjIUFxejqKiIOAOmTp0KPp9P6niGDx9O7l3quotEItTV1cHBwYEo93h6eiI9PR21tbWwtraGUCiEiYkJXF1dwWKxIJfLUVVVhaKiIhQWFqKiogIAMGnSJL0G5z+FgoICxMbGwtPTEwEBATrHHSaTiaCgIMjlcq3XqcjUxIkTER8fDxsbGwwaNAhOTk4wMTFBSkoK4uPj4eXlBRaLheTkZLi5uRHhjHfeeQfHjx9HTEwM1Go1PDw8OpRvT6VhU9eaSsvSBZWSU1BQgLKyMi0HT1NTEyorK4kkLPV5BoMBpVLZwtgwVn8aHo+HgQMHol+/fsjNzcXff/+NHTt2YOPGjejRowcpbKZU6RwdHTFp0qQuqVENDAzExYsXSY3YW2+9hU2bNkEqlSI7O5ukV5qamiIiIgIjRowA8CSN7e7duygvL4dCoUBcXBwsLS0xYcIEErmZM2cO1q1bh5KSEoOKh8vLy3H9+nWEhobi/v37AEB6U6SmpmL69OnPTACITqdjzpw5OHz4MFxdXTF8+HDcuHGDpFnqQqlUoqioCK6urpg+fTp5Liisra0xZ84c1NfXIycnR+u7p0+fRkNDA95++214e3ujsbERAoGg0/Uozs7OOpW8Oit2AnQwFYp6qAwxCPLy8rB582Y8ePAAU6dOxbBhw2BnZweBQIC1a9eivLy8/UfdQZRKJeh0OlasWKEzNMlms8lCQ6PR6M0PZTAYXa7Yw+FwdA4W1A1FDZpU4bZcLsft27eRkJDQ4jtUEWvzB4/L5eqcOHQ9nLW1tVAqlYiKisKjR49avO/m5gYPDw/yXS8vLwQHB+Pw4cNIS0tDSEgIcnNzSWEpNblQNDY2QqPR6AxdMxgMksNrSFhdF/X19VCr1UhISCBSf81xcXEhqQ/NYbPZBi0GqIWhoepVCoWCGK7nz5/HjRs3WnzG19cXVlZWz2SwHDhwYIfC5tSzQnns6+vriQewOUwmk3iAqa7ywJPJmM1mQygUgk6ng81may1YlEolKisrW9ynlDdRH5S3srXxiQpjV1ZWktcUCgUaGhogFAqf6SKQw+GQ9A+1Wq3zHuLxeAgNDcUnn3yiFdWjImLNi0G7Wk2kOc7Ozvjoo49QU1MDkUgEkUiExMREnDlzpkuaVVpYWKBHjx5ISkoCm82Gj4+P1kRIqdax2WxUV1cjICAAZmZmsLS0xNSpUzFu3DgwmUzU1NTA3NwcFRUVsLCwQFpaGry8vEjqIofDAZfLhUAgQFVVFerq6sDlclFeXg42mw2BQACpVEqez+bXzMTEBFZWVpgzZw4GDx5MIk1dmZJmDB4+fIi1a9di7ty5cHd31zk/cDgcTJw4Uef3ra2tMW/ePMybN6/Fe0OHDsXQoUP17tvKygrLly/v+MH/f2xsbODl5YUHDx7g/v378PPz05pXqHQ3Kp1x1KhR2LRpEy5fvkxqx9RqNfLz8xEbGwtXV1eSBksZkZSyIIVYLEZcXBwaGxs7fNwajQZyuRwajQZcLhdMJhM+Pj5wd3dHcnIyjh8/TpQpAWDw4MEQCoU4deoUJk2apOUkVKvVkMlkJNLaUQIDA7Ft2zYUFxejsbERQ4YMwfr161FcXIy8vDz06tULGo2GyA1TMJlM0Ol0KBQKkpVCnTsKOzs7qFSqVse85udGIpGgsLAQVlZWWkZdUFAQ/Pz8WjUgjY25uTlMTU0hEAiIg1alUmnNN9T/U/MZn8/HtGnTcP78eVy+fBlWVlYIDw9Hnz592txffn4+goKC4ODgADqdbrRxpEePHnBwcEBVVRUsLS0hFAp1zt8dod2GBaWrLJVKkZ+f3+YFTUxMRGJiIgYOHIhXX32VeJbUajVpXPOsoCxja2trjBkzptXP8ng8mJqaoqGhAXV1dVrhuoaGBq0FUlfwdF4+BdXxlyq6oRrt8Hg8zJw5E0OGDNG5PTs7OyIvC7SvcZhAIACLxcLUqVOJV+Jpmsupmpqaonfv3jhx4gQePXpEUn8KCgqwdOlS4v2joJr56KoDUKvVEIvFRLa1I1CKGSNHjsSUKVN0LryEQmGLaIih54jL5ZKohyHGNoPBAJfLhYODA1HU0oUx8mQNYc6cOZgzZ06Hv29ra4sePXrg/v37JKdUo9GgqamJ5LaGhITg6tWriImJAYvFgkgkwoULFxASEgILCwvQaDS4ubnh4cOHyM/PB5fLRWxsLFJTU9stksBgMCAUConiU/MmU9QEZm1tjX79+uH06dPw9/eHmZkZ4uLi8PjxYwwbNqxLohXUWPf0PeLq6gpHR0cij+nl5QWlUgmxWAw7OzsIhUIMGzYMR48eRVJSEszMzEhur0qleq4LVqFQ2CId9tq1a4iNje0Sw8LFxQWvvPIKvL29weVyMXz4cNjb20MikcDExAQFBQU4cuQIGhsbQaPRSAHsvHnzcPXqVSKxqFar8fLLL0MoFGL69Om4dOkSSedydHTE+PHjIRQKERYWhvPnz+OPP/4Am81GUVERIiIioFKpUF1drfMYLSwssGTJEhw7dgzJyclQq9XgcrlYsGCBUSbtbvTDZrMxadIkxMXFYe/evZBIJOjVqxd4PB5EIhFycnIwZcoUUtQ/ZcoUXLx4ETt27ACTyYSrqytEIhGuXbuG9PR0zJ49m6T82Nvbw9vbG8ePH8exY8dQW1sLOp2O5ORkPHjwoEUUp73ExMQgLi4Onp6epMleSUkJ0tPT4e7urpWe0qdPH0ybNg2HDx/GL7/8gmHDhsHExAQikYh0jF6wYEGnxgYvLy9IJBLcvXsX/v7+MDU1RY8ePRAVFQWJRAIvLy9kZWVp1Zw9DTVv19bWailpUo0GDZVVp6IzM2bMwAsvvKD1HjX/PivodDrZX/P9slgssNlslJWVwcPDA6WlpaQ+h06nw8PDA++//z7i4+Nx4sQJZGZmGmRYUAqINTU1MDExgUQiAYvFIupmHaWkpAR///034uPjMW/ePPTs2RN3795FSEiIlvOqI3TIsPD09IStrS0ePHiA5ORkrYUR5RGg0WjEaqWKEJsvkh4+fEhSoZ4VI0aMwC+//IKjR49i3LhxWuk4VMMfqsDczs4O3t7euH79OlJSUhAQEAAmkwmFQoGkpKQuj7SUl5e3CK1JJBIUFxeTfhNUd0+q7sHU1BSTJk0y+rEEBASARqOBz+cbvP3AwED4+/vj4cOHSE9PR3x8PIAnA+LTg13Pnj3BZDKRnJyMvn37asnoNjU1IS8vD1ZWViTnsL306NGDXNcxY8YYPY2N6oGSnp6Oqqoq2NvbtzrQCYVCuLu74/Hjx3Bzc+uSa/YssbGxwZQpU1BZWYmtW7eSe9PBwQGTJk2CpaUlJk6ciPLycpw9exa3b9+GXC5HdXU1li1bRp7DuXPn4ttvv8W3335L0lQ6UvRLp9MxZswYnDp1Cps2bYK1tTWGDRuGiIgIEh3gcrl46623sHXrVvz000/gcDhoaGiAj48Ppk+fbrRzo1AocO3aNdy/fx95eXmoqqrCn3/+icjISAQHB2PMmDFwdnbG9OnTcfDgQWzZsoVEqtzc3DBt2jQIhUJMmTIFRUVFOH/+PCIjI8FisaBSqRAeHt4pxZr/NXg8HgYNGtTCmKEcHw0NDWhoaIBMJsOSJUsQEBAAFouFxYsX48aNG8jLy4NSqST9k7hcLmbPng0rKyvSm4HyuDIYDPTt2xdsNhsJCQlQKpUYP348+vbti6qqKtKvafr06SRiO2XKFAgEAqxYsQKXL19GcXExNBqNVg5zN13LoEGDsGrVKhw8eBAHDx4Eh8MBh8Mhsq0REREkauHr64uPPvoIO3fuxK+//go+nw+lUgkGg4Hp06dj/vz5ZHwyNzfH1KlTUVxcjL///htRUVHgcrngcrkYPXo08vLyOnzMlAjLkSNHADxZLLPZbCK+sGTJEi1VRB6Ph3fffRd8Ph/Xrl1DdHQ0mEwm8Zz7+vp2usuyUCiEq6srLl26hEGDBoHFYqF37964fPky3NzcDKob4XK5pObyzp074HK5kEgkuHDhAvz8/GBnZ6c1V1LH39zhTKPRYGNjg+DgYERGRqJ///5wcnKCWCxGQ0MDbG1tWzgrnwdsNhujRo3CkSNHEBcXBxaLRdY6EokEJ06cIFEtqt8bRV5eHqKjo3H79m1UVlbi4MGDGDx4MIKCgjB+/HicPHkSu3btglAohFqtxpw5c+Di4tIpwyIqKgrJycl4/PgxSkpK4O/vjxMnTsDS0vLZGxZ0Oh1OTk5YvHgxfv/9d2zYsAHjxo2DnZ0dySOzt7fHqFGjYGpqCi8vLzg6OiIqKgq+vr7w8vJCWVkZTp8+3SLsQoUDi4uLIZVKkZmZCYlEgsbGRiQmJpJ29ZaWluByuVCpVKirq0NNTQ1p3qZUKpGTk4Pk5GTSwM3MzAx0Oh2hoaGYP38+Dh48iA0bNmDQoEEQCARoaGhAUVERKYYyMzODra0tBg0ahBs3bhDPh62tLfLz83Hr1q0u72ORk5ODpKQkhIaGklDuzZs3UVBQgLCwMOLlpdPpiIiIgIWFBS5fvowZM2aQ0C3w5EGlPOkd9V4MHToU9vb2uHTpEubNm0c8OMATQ7KpqYnIdVK4u7sjKCgI+/fvx40bN/D48WMEBQXB3d29xQQ7YcIEbN++HUeOHMGUKVOIwkNTUxNu3ryJqqoqjB49usN59eHh4fD09MTNmzcRHx+PQYMGkcFMrVZDIpFAIpG0S5moOQKBAEOGDEFSUhL2799PJIGbh6abmpqIx8nCwgLh4eE4c+YMbty4gSFDhmjl9yqVSjQ0NIDL5T6TiIU+KOnOvLw8iMVi8Pl8uLm5oU+fPlrXgsVioU+fPjA1NcX9+/dRU1MDBoMBLy8vck69vLywbNkyxMbGEuM4MDAQYWFhJOVi5MiRUKvVyMnJIYo/FhYWJF2JTqcjLCyMNLRsjSlTpsDKygp5eXlgMBha1wN44iAZOnQo+Hw+Hj58CIlEAnt7e/Tt27eFMePh4YH58+e3qtQzYMAAWFhYaDkrmu+Ly+XCx8cHH3zwAYAnKSWUl4/D4WDo0KGwsbHBw4cPUVdXBzabDV9fX/LMuri44I033kBMTAwKCgqgVqtJJIj6Xfb29vjoo4+07qX/K7DZbL3RVOBJXc60adN0vmdlZYXZs2frfE8gEGDgwIEYOHCg1usWFhakQLN54Wjz+pa5c+caePRdi0qlQklJCe7du4fs7Gw0NTWBxWLBzs4O/fr1g7+/v1baE51OJw6h0tJSCAQCeHt7Y9y4cVqLSblcjuzsbCQkJKCwsBAikQgcDgceHh7o378/PD09tVSMLl68iPDwcHA4HMTExJBxwNPTE6NGjdJK/aSK6GNiYhAfH0/SfZszcOBATJ06tcXv5fF4mDZtGnr06IGUlBRUVlZCpVKBz+fD2dlZKy2Yw+Fg7NixcHFxQUJCAlH78fDwQGhoaIu0w379+sHU1BRJSUmoqqoiz2lQUBCcnZ3h4eFBCs5pNBqGDBmCzz//XEv0RBc0Gg2DBw8Gj8dDaWkpidKbmZnBz88PgYGBLRbyXl5eWL16NYYNG4a8vDxIpVLw+XxYW1vDz8+vQ6paTxMUFISdO3di1apVYDKZCAkJwc6dO/HKK68Y9H0ajYYRI0agpKQE169fx927d6FSqSAWi7Fw4UIyj1y5cgXR0dEoLS2FVCrFli1biOTunDlz4ODggIULF2L//v345ZdfSMaGs7MzJk+e/MwMCw8PD7BYLDg6OmLixIlwdHQkjh9ra2ssX74cd+7cgUwmg6urKz799FN4enqCyWTCyckJ+fn5YDAYcHd31+rRQqW0DhgwACqVCiYmJqRxdFhYGKlLampqIoZyZ8nPz4ePjw95FszNzUmPj87SoYofMzMzLF68GBqNBteuXcPmzZtJPh+dTsfkyZPJIO/n54f58+dj3759+P333yEUCsFms9GzZ0+4urri999/J9vVaDQoKCjAxx9/DJlMhvr6elRWVqKxsREfffQR+d6iRYsQEBAAsViMkydP4vz585DL5Xj8+DHEYjH27t2Lq1evgsPhYMaMGZg2bRpMTEzA4/HwzjvvQCgU4saNG4iOjibpLmw2m0jdAU8mqoiICJSXl+PYsWP45ZdfYG5uDmtrawwcOLDTEnRtYWJigtOnT6O+vh4+Pj6ora3F0aNHoVAo8NJLLxGvO7UAW7FiBX799VesW7cOERERRIaztLQUjY2NGDFiBEaOHNmhY3F1dcVbb72Fb775BmvXrsWIESNga2sLuVyOsrIy1NbWYsiQIVqa2VwuF8HBwTh9+jTOnDmD2tparFy5UqeWe1BQEF555RX89ttvWLt2LQYNGgQOh4O0tDScOXMGAQEBWLBgAVmIqdVq0oxNIpEgOTmZdFOPi4tDRUUF+Hw+PDw8wOfz4eDggNdffx1r167F559/jgkTJsDJyYnk8JeUlCAsLKxTC4GFCxciPj4eBw8eRFNTE8LCwmBiYoK6ujqUlJTA3d0dixcvBvDfAr1x48bh+vXr+OKLL9CvXz8IhUKIxWKinDJr1iwtI/FZEhsbiz179iAmJgYlJSUkmufo6IiwsDAsWrRIy2vM4XDQq1cvLaPzadzd3VstLOZyuZg8ebLe9xkMBoKCghAUFNTm8VtbW+tcdDSHxWJhwIABOpV6muPq6qpV5K2L0NBQhIaG6tzHqFGj2tQn5/P56NOnT6uhcScnp1bVT2xtbbFy5cpW99PN/y2USiUSExOxfft24pwzMTGBVCqFSCQCg8FoEfFKSEhAXFwcFAoFGAwGKioqIJfLkZubSwxj4Ek6y86dOxEZGQkTExOwWCw0NDRALBZjxIgRePXVV0ktY35+Pvbu3YuYmBjSTJPBYKC6upqM4R9//DGZ12QyGQ4fPoy//voLAoEA1tbWyMvLQ2xsLMzNzTFy5MhWvbVsNhvBwcEGdXFu72f1jUFPS3HTaDT07dsXffv2bXO7NBrNoHHmaaytrbs04j1z5kw4ODggODiY9NZZu3YtGTOdnJzwxhtvaBlOLi4uWLRoETEanJ2dsWjRIsTHx6O4uBgsFouobVKOM6FQCHt7e5ibm+P7778H8ORcU44aHo+HwYMHw9raGo8ePYJIJAKXy4WHhweRNH8WuLi4EMdNc+cadQyWlpZ6RY1am9vc3NxaVccKCwtDWFhYRw5ZL3w+HyqViqiiJiYmkmh+Z+mQYUG1AX/99dcxbNgw0i2WxWLB3NwcPXr00LphZsyYgR49epAuupQkqUKhQGBgIFFdotFoMDU1xdixY8m+Fi1apLVvGxsb4hlnsVjo2bNnq3ntPj4+WoWeHh4eePfddzFixAiUlZVBLpeDx+PB0tISXl5eWmkylJXcu3dvFBcXA3hyY/n7+yMkJAQcDsegXgIdYdKkSXBwcEBMTAxRBTAzM8Pbb7+NsWPHalmsbDYbL730Evh8Ps6fP0+MNUpvvFevXp3yfNNoNCxevBgsFgunT5/Gjh07yPY5HA7R2H6a4OBg+Pr64tSpU/Dw8NDpdQGeLEpXrlwJLpeLM2fO4N69ewD+q0CycOFCrUFfqVTi2rVr2LFjB+RyOSoqKlBSUoKGhgaUlJRAKBRCKBTi66+/JgvdadOmgUaj4ejRo9i7dy/UajWREHV1de20PKefnx/Wrl2LgwcPkpAmFVEyNTXFwoULtT5PNTezsbHBrVu3EBsbC+C/qlPDhg3TmbdaVFSE0tJSBAUFgcFgQKVSgc1mG7VwLTMzE9999x1SUlIQERFBdK0pNasbN26grKyMNBLrpptu/pkUFRXhjz/+wJ07dzBt2jSMHDkSZmZmkEgkKC8vR8+ePVt4PyMjIzF//nyMGzcO1tbWqKqqwqeffoqtW7di9uzZxDnA5XLRr18/9O7dm3SIr6urw5EjR3D27Fn06tWrhUjKpUuXMH36dMybNw8ODg6ora3Fd999h507d2L69OkkAldbW4tffvkFfD4fX3zxBezs7FBYWIg//vgDSUlJGD9+/DNtJvZ/ld69e2s1uXVwcMCKFSvIv21sbDBz5kyt79jZ2WHcuHFarzk5ObVqAPTv37/NLus8Hg8hISFd2pj434Cha4H+/fvj4sWLuHfvHjIyMmBpaYmwsDCjRLw7rFFGp9NhZWWFYcOGAXgSbcjPz8f58+dx9uxZDB06FDNnzkRpaSkqKirg7++vUxXi6fQCOzs7LFu2zKBj4HK5OvNtW4NGo8Ha2tqgQYnK7dMVYm+r+LujeHh4YPXq1XB0dISVlRUyMzNRWloKjUYDW1tbBAUFtWgmSKfTYWdnh5dffhkDBw4kqWRUcZSzszOxhp2dnbFq1SoolUqd+evvvPMO5s2bpxVZoNFosLCwwIsvvojw8HAUFRWRRi1CoRBOTk46PdEODg54++23MWHCBFhbWyMkJERv7YGDgwNWrlyJQYMGoby8nHTW9PLygpeXl1b6FNVEiooA6ILJZGoVY5uYmGD27NkIDAxEXl4empqawGAwIBAI4OjoqHUurK2tsXTpUkyZMkWnZ2rhwoXo37+/loeaRqNh4MCBcHZ2RlZWFmkUxOFwYGVl1WKCZbFY8PPzwxtvvIExY8YQryCbzYaFhYXOTr1xcXHYt28f8vPzsWPHDkgkEhw8eBAffPCBUQ2L48ePIzk5GR988AFGjRoFOzs7cLlcSKVSlJeXIywsDD/++CNOnDiBNWvWGG2//3QuXLhANMwXL16MiIgIsFgsqNVqZGZmIioqCtnZ2aiqqiL3r729PXr37o3g4OA207eA/+ZaP3jwACkpKSgrK4NYLAaLxYKVlRV8fHwwYMAAeHl5tSkxmZ6ejo0bN0IsFmPgwIF45ZVXwGKxUF1djbi4OOJBlMvlEAgE8PDwQHh4OHr37v2PkEatra3F1q1bkZaWpvczI0eOxOzZsztcN0Upzjx48AAPHz5EXl4eUaoxMzODq6srQkNDERQU1O5UUo1Gg/T0dERGRuLx48eor68nY3VgYCAGDBgAZ2dnUs9hbFQqFR4/foxLly5hyJAhePPNN7XGFH39HigPc2hoKDmu2NhY/Pjjj0hJSSFjvampKaZOnQomk0k+R0WTr127hoKCghbiLra2tpgzZw55doAnvQHi4+Px6NEj9O7dG3Q6HRUVFcjJycHSpUvJ/O7k5ITMzEzcvXsXDQ0NzzVN9J8E1WU7PT0dRUVFqK6uhlgsJqIB5ubmcHZ2hq+vL3r16gV7e/tnpqDUTftRKpXIz89HQkICMjMzUVZWRpQzeTwebGxs4OnpieDgYFL7S0Gj0QweS6jaWQcHB9TX18Pe3h4DBgzocEp4c4wmflxUVIS9e/fi3r17qKiogEAgwJQpU1BTU0Mk0QYPHmys3f1rsbKy0jJ6DK0roHo+6Goa1hxzc/NWvfP63qPUp9oTkmOxWOjXr1+bx0RhYWFBDNXWYDAYbabd6KK1MHZzBAIBwsPD9b6v7xxQBbeGNiaiRAIMvcaHDh1CQEAAIiMjIZfLYW5ujmPHjuH999836PuGEhkZCR8fH4wbNw5OTk5kEuLxeHBzc8P48eO1Ikv/V0hNTcWRI0dQV1eHgIAAhIeHQyQSYe/evbhw4QIyMzNRU1OjNakLhUISJZ01a1ar26+qqsLFixdx6tQppKeno6KiAiKRCAqFAnQ6HXw+H1ZWVnBxccHo0aPx6quvtipJXFFRgcOHD6O+vh5NTU2YOnUqSkpKsHv3bty5c4dIs6pUKrBYLFhYWMDZ2RmjRo3CihUrSMOz54VYLMaVK1dw8+ZNvZ8RCoV6ayfaQqlUIj4+Hn/++Sfu379PujbLZDIi+2lmZkbS/xYuXIh+/foZJOcrk8nw+++/49ixY8jPz0dVVRVkMhkZR+3s7BAcHIwFCxbA1NTUKOkHTyORSEjvprCwsBaOCn3XNiQkBE5OTloLFKqe5GnRkvr6ety4cQPJycmoqKhAU1MT+b2UfGrz+zMgIABubm5a55DKQS8vLyfSo9T7zfO91Wo1FApFuxZPzZHJZHjjjTdIDxTgyf3z1ltv6Uxj1MWpU6dw/PjxFjWWLi4ueP/99w0SGKmtrcWJEydw4cIF8pqJiQmmT5/ernu5oKAAp0+fxs2bN8k5p1LRlEol1Go1UWUyNTWFlZUVXF1dMWDAAEyaNImIpnSUiooKbN68GampqVqv9+rVC4sXL+5U93iJRILdu3fj6tWrWq87Ojpi/vz5baav/i+iVCqRnJyMkydP4u7duygsLER1dTVEIhFpWMxkMklvFQcHBwQFBWHevHkYPHgw6HQ6GV8MgSrG9/f3JxLbnVWaojCaYZGRkYHMzEy8+OKLWtJrVlZWKC4u7vKaBOC/xWTx8fHIyMhAUVERkYal5CYp73RoaCgCAwO7ZEDvCEqlEsXFxUhKSiLHXlVVhaamJigUCnJD2drawsnJCX5+fujdu7fWwu95QvXTSE1NRVpaGvLy8lBeXo76+noyoVLF9A4ODvDx8UHv3r3h7e39THX3DUWpVKK0tBTx8fFITU0lXeMp7Xo+nw9bW1u4ubkhMDCQyKZ25UIsPz8fS5Yswf79+wE88Rh2heyxSCQicoxP31tUPZKFhUWXyIlSqNVqNDQ04NGjR0hOTkZBQQFRSpPL5aDRaCSF0dHREV5eXggMDISXl9cz8bbX1taipKQE+/btw19//YXi4uIW8tBNTU1E2KAtL1BhYSH+/PNP7Nu3DwUFBVoLKqopV319PWmglJaWhpSUFPz4449wcHBocwyoq6vDuXPncOnSJVy7do0ozlHKckqlEhKJBCUlJcjOzkZxcTHWr1/fokHks0QgEGDy5MlwdHREfX09GhoaUFVVheLi4labURmCUqnExYsXsX79eqSkpGgtFCkvPnX9KMnP1NRUEoFtrXhSLpfj66+/xq5du1o8I3Q6HXV1dairq0NeXh7y8/MxZMiQLrlnZTIZampqwOfzDYqWUTg4OLSQW356oa9Wq5GRkYHPP/8cWVlZ8Pb2Jv2SmEwm0tPTdaYo29ra6uxeT6PRyLapTIH+/fvjxo0b2L9/P3x9fZGRkYGjR4/C09PTIJnOp2EymUhMTMSDBw+I6pCZmRkGDhxokGEhlUoRGRmJQ4cOtVCzNDMzw8KFCw2aj+vq6nDp0iWtZqMeHh4Gp+OKxWIcPnwYBw4cQGpqKsrKyvTK9lPFuJRATXJyMu7du4fLly9j1qxZmDVrVocLn5uamnDr1q0WzYZra2tbrScwBMrob36OgCcKj631Q/lfpa6uDmfOnMGuXbvw6NEj1NTU6Hx+5HI55HI5amtrkZOTg4SEBERHR5Ou3wwGw+DI6qlTpyAUCjF69Ggynm3btg3Dhw+Hr69vp36P0QwLSlN94MCByM/PR0lJCQAQ9SZDK81lMhkOHjyIvXv3ar1uamqKadOm4cUXX2zxnYaGBty5c4f0TaAKvsViMekHQWnZ83g80sDI3d0dkydPxtSpU40S/ukINTU1uHPnDi5evEiUJqhjl0qlpDM5JYNIKQWZmpoSVZgpU6Zg5MiRz6xTcHOkUimSkpJw5swZxMTEoKysDPX19aQZWvPzz2AwSNM5oVBIml2NGTMGU6ZMgaWlpdEXMdevX8fWrVu1NOfpdDr69++PDRs26P09R48exd27d1FRUUE8vjKZTOu3UA20zM3N4eDggIiICMyfPx8eHh5dktpgY2ODiooKKBQKqNVqHD9+3ODoSHugUg4aGxthbW2tdU00Gg0aGhqQkZFBvJjGRKVSIT4+HmfOnEFUVBQqKipIl2yJREJ+O/BkodD8fjI3N4e3tzdGjhxJFDu6ytArLy/H5s2bcebMGVRWVmLw4MEYOHAg3N3dYWJiQupR7t27B5FI1OpCqLq6GgcOHMDWrVtRXl4OExMTjBo1CmPGjCG9TKhut+fOncPt27dRUVGBkydPgsvlYuvWrW2qhCQnJ+OXX35BSUkJfH19MXnyZAQGBsLU1BRisRhJSUk4dOgQ0tLSUF1djePHj8PFxQUffvihln7+s0QoFGLhwoWYPn065HI5FAoFcnJysHXrVly6dKnD29VoNIiPj8eHH36Ix48fE9nRmTNnki7iarUaZWVliIyMxMWLF1FQUIC7d+9CrVbD3Nwcw4YN03tvHTp0CDt37iR1eQ4ODliyZAnCw8NhZmYGkUiElJQUnD9/Hvfv30d+fr7OnkWdhWokqVAoIJFIDP4ei8Vq87lpaGjA4cOHERUVhfnz5+PFF18k/VUuXryos+kn8N/maa1Bo9Fgbm6ONWvW4MMPP8Snn34Ka2tr8Hg8eHp6YsGCBR1a+FDiDw8fPiRjiFwubzXVrjklJSUoLCzUKZHf0NCA7Oxs9OrVq01npUgkQlZWltZrdnZ2BhVul5aW4vvvv8eZM2eQl5fX7j5gKpUKlZWViIyMRFZWFtLS0vDGG2/Az8/vH+Gg/L9IZWUl/vrrL2zZsgX5+fntasEgFouRmJiI0tJSFBUV4bPPPjO47jc/P19LyRMA7t+/j8DAwH+OYUFNbM3DjABIKNbQyUmtViM3N7fFwMThcGBnZ6dlWKjVasTHx+P333/HjRs3UFJSolcGVqPRQCaTQSaToa6uDkVFRUhNTcX9+/dx/PhxLF++HJMnT35mWuONjY24ceMGdu/ejYSEBFRWVrbaWZqS4pXL5WhoaCARoOTkZFy5cgXBwcF4/fXXERER8UwGCIVCgZSUFGzfvh03b94k0Ql9Ax2lTU110K6qqkJubi5SUlJw584d7Nq1C0uXLsXChQuNGsGoqKhAVFQUSktLyWs0Gg1lZWVahoVGo0FxcTF27NiB48ePo7CwEA0NDTq9Bs1/S2NjI8rKypCRkYGkpCScOnUKixcvxquvvgoul2vUa7F06VLs2LEDGRkZmDVrFng8HtasWWP0xfPEiRPxySefYO3atVixYgWCg4NJ8XZCQgK2bduGyspKfPjhh0bdb0ZGBn755RfcuHED5eXlqKura1WYgfLGUfcT8CRdKTIyEn/99Rfmz5+PuXPntpCaNQaXLl2CXC6HmZkZvv/+e4waNQo2Njbg8/kkwtDU1IS6ujrSvE0XKpUKt27dwo4dO1BeXg4bGxusWLECCxYsgIODA2nqRzWKHD9+PDZv3owdO3agqakJx44dw5QpU9pMoaDSJCZMmID3338ffn5+EAqFRPt+0KBBGDZsGD755BNERUVBJBJh+/btmDx5Mvr06fNcejAwGIwWTSvZbHanBTMkEglWr16N9PR0sFgsDB06FN988w08PDxgamoKFotFxtsRI0agf//+2LhxI5KSkhAbG4sTJ07Ay8tL50KwrKwMmzZtIuONs7MzduzYgdDQUJibm5PzPWTIEIwYMQLbt2/Hnj17uqRRLJ/Ph5OTE+rr65Gbm9tmh+P2IBaL8eDBA9JgkFKvU6vVUCqVWp2pm2Poc6jRaEiEbtWqVejfvz+59nZ2dh2W2wwJCcGBAweIo1OhULRI5dFHXl4eaaKo63iTkpIwevToVg0LjUaDxsZGZGdna71ORb9bo6ioCGvXrsWZM2faHBvbQqVSobi4GH/99Rdqa2uxevVqBAUFdRsXz5j6+nocO3YMP/30E3FEdISKigocPHgQKpWqzfrhgoICPHz4EA8ePCDNj4EnkaaioqLn03lbHz169ICpqSk2bNgAmUwGhUKBzZs34/r16/D19e20eoxMJkNpaSlqa2thYWEBmUyGCxcuYOPGjYiPj291Ua4PhUKB4uJiVFRUIDs7G48ePcKqVatI34iugCpy37x5M44dO4by8nKSP9cRmpqakJ2dTcKcc+fOxXvvvdelv6GhoQF79+7Ftm3bSCF0R5HJZCguLkZpaSmysrKI/GpHGqPpQp9hUFZWhrKyMtjb20OlUiElJQWfffYZbt26RbqTtwe1Wo3q6mrU1NSgsLAQsbGx+OWXX1osjDpDcHAwPvroI8yaNQsKhQJubm56pe06w6RJk5CcnIw///wTd+/ehUAgAIfDgUwmI6l5r7/+utEEDFQqFfbu3YtNmzYhOztbZwd2Q6HGifLycmRkZODGjRv49NNP0bNnT6MujsvLy2FpaYmPP/4Ys2fPJr1ymmNiYkKuv74Ju7CwEJcvXya9O6ZMmYKXX34ZLi4uWtujuokLhUJ8+OGHuHXrFpKSktDY2IjffvutTcNCo9HAz88PixYtQt++fbWMdyaTSXqrvPXWW8jPz0deXh4qKytx/PhxBAQEGL2p5PPkwoULpD7Izs4OX3/9tVahMgCSukl1+83NzUVWVhbEYjEuXbqEiRMn6jQszp07h5ycHKI6995772H48OFa0WQmkwlzc3OEhoZi4cKFSE9PR3R0tNF/J5vNhre3N1xcXHDr1i1ER0dr1TmqVCpynO01OKiaHyqNjiIrKwvXrl0jjcA6ikwmw61bt6BQKDBs2DAEBgYaxSgKCQnRqitQKpUoKCiASCRqs+9Dfn5+q+mfiYmJEIvFrRq+MpmM7I+CRqPBzs6uVdWk2tparF+/HqdOnUJ9fX2L9/l8PoYOHUpU/CwtLcFkMlFTU4P8/HxERUUhMjKyxeK1oaEBp0+fBpvNxpo1a1qIjHTTdahUKsTExGDTpk06jQoajQZfX1+MGzcOffr0IXVP9fX1KCgoQFRUFK5cuUKcavX19Th69GibhjKLxYJIJEJlZSWKi4vJ3MRkMjF//nyjZCIYzbDw8vLCa6+9hgMHDuDMmTMkV3fs2LF46aWXWtWvN5Ta2loUFBRAIBDg1KlT2LBhA9LT0zvdvVuhUCAzMxNbtmxBXV0d1q5d2yJEZAxUKhUePXqEdevW4ebNm51aQD2NTCZDRkYGfv31V+Tk5OCbb77pcKdqfWg0GlRWVuLzzz/H4cOHUVtb2ymvSXPUajVKS0tx7NgxZGZm4qeffmqX2pc+9C3oqBC4jY0NUlNT8frrryMuLq5TRh7w5BxVVVXh5MmTqKmpwe7du43WvIfNZsPDwwMuLi7QaDRkcWhsL5OpqSk++OAD9O/fH8eOHcPDhw9RU1MDU1NTjBw5EnPmzEF4eLhRGjCJxWJ88cUX2LdvH8rKyox6P1VUVODMmTPIzMzEpk2bMGDAAKNGw6gUxKdV2prT1rXJyMjAzZs3oVar4e7ujqFDhxKlIH04ODhg2LBhSE9Ph1QqJYXHbd1nvXr1wpAhQ/SeAyaTibFjx2L79u0oLCyESqXCuXPnsHr16n+VYbF7927IZDKwWCwMGzYMISEhrRqdQqEQwcHB8PDwQEpKCjEyJBJJi3qBixcvEkeLpaUlFi9erDdFlZLTHj58eJcYFjQaDb169cLy5cvx1Vdf4fXXX8eQIUPg6upKUihGjhyJRYsWtVvxSigUYtSoUTh37hzWr1+PadOmobGxEbdu3UJ2dnanewtwOBxERERg9+7dmDp1KthsNuh0OkxMTBAaGorFixdj0KBB7R77qLrK5oYP5ZxrLqv6NAqFAvn5+Vq1okKhEDKZjNSTUoZFa0gkEmRmZmqNc+bm5nB1ddUb6VCr1fjtt99IX6unGTp0KL744gv4+vrCxMQEbDabGE8qlQpyuRxz585FTk4Odu/ejcOHD2tFlMRiMY4ePQp3d3e89tprRnWGdaOfvLw87N+/H5mZmS3eo1Q4Fy9eDFdXV/B4PFKLRJUWzJ49GyUlJfjxxx9x4MABaDQa1NXVEel6fdjY2GDy5Mmorq6GQCAg/cfodDoEAoFR6r2MZliwWCwEBARgzZo1ePvtt6FUKsmBCgSCTqkPUNTW1iI3NxclJSX4+uuvkZqaarQQskajQUVFBfbt2wcej4e1a9catbBbrVYjOTkZr732Gu7fv2+U7oZPo9FoUFNTg5MnT0Imk+Gnn34yWhdeqjj7jTfewLlz59qVs9seqIXSsmXLsGnTJowePbpT29O3UFUqlXj06BG8vLywatUq0hHUWEilUty4cQPLly/HwYMHO7wwi42NhbOzMxwcHMji/lkUu1tYWGDcuHEYOnQo5HI5SaNgs9la4dPOIBaL8c477xClpa5AJpMhKSkJS5cuxa5duzBw4ECjjEVUx3sXF5cOG3YKhQKFhYXIyckB8KQRnyH1OTQaTUtuViqVIj09vVXDwsTEBO7u7m2mEfH5fISFhSEmJgb19fXIyMhAXV1dl6STPQ9EIhFiY2Oh0WhIU9S27mVKotzKygrAk8VaQUEB6uvrtSbhpqYmpKWlkbG9f//+bS7YqTozgUDQqcivPoRCIRYsWAAnJyfs2bMH58+fh0gkIt20dRVqGwKfz8fkyZNRVVWFvXv3Yv369bCyssL48eOxdOlSHDhwoMPHrFarkZaWhh9++AFubm4YMmQIBAIBVCoVSktLERkZifz8fHz++eftVgcyMTGBj48PqqqqyNwgk8mQnp7eqmFRXl6O/Px8cm3pdDpGjRqFlJQUZGRkAHhSg1FcXExUrnQhFovx+PFjrdesra3h7u6u9/m6efMmTpw4gYqKihbvvfDCC/jxxx9ha2urc59UXSNVV0rJt//4449a2xOLxdi2bRv69OmDcePG/SMFVf5NSCQSREVF4cSJEy3WsKampnj77bexcuVKWFpatpgPqGtKNY78z3/+AysrK/znP/8BgDbXllSbgNmzZ4PBYLRL2MFQjGZYAE9+sKmpKUxNTclDa8zJqK6uDmfPnkVVVRWSk5NbXBCq+2///v3h6uoKKysr8Pl8NDU1ITc3F1FRUbh79y7xMDwN5ZHfv38/XFxc8OqrrxrluDUaDXJzc/HGG28gNja21QUsj8dDz5490b9/f3h4eMDKygpsNpsooiQlJSEyMhLl5eV6F81NTU24ePEihEIhfv7553Z7o3Qhk8mwatUqnDp1qs0b18HBgejhOzk5QSgUQqVSoaamBjk5OYiNjUVCQoJe44TSX3/77bexbds2DBkypMPHre/+U6lUiIqKQlZWFm7fvt3imjCZTLi7u2PgwIHo0aMHrKysIBQKyWLw/v37iI6OJmFIXcjlcly7dg1r1qzBpk2bOnT8Bw8exNSpU+Hg4IAPP/wQq1evfmbhajab3WWCAAqFAh9//HGbRgWDwYCzszMGDhyIgIAAWFtbk87B1dXVyMrKQnR0NDIzM/U+11Td1iuvvIJz587B29u702kV9vb2cHBw6NQEXF9fj7y8PBJxjY6OxqRJkwzaplQqJQtRyinSGkKhELa2tgYVzlLKWvX19VAqlcjJyYGbm9tzqbMwNqmpqcSr3NTUhI8//hhffPFFm99TKBRa3uj6+voWimyFhYVan6F04luDTqfD0tIStra2yM3Nbc9PMQgajQYzMzNMnDgRI0eOhEKhaCEGQt1v48aNw5AhQ8DhcFo41aZOnYr8/HziIKGUm95++228+uqrxPHA4XDAYrEwduxYIn8JAEOGDMGVK1eIgEpzRo8ejYyMDHIsTU1N+OijjyCRSHDhwgWt+UulUuH48eP4+uuv8eDBg3YbFjQaDaGhoYiJiSFjPmVYtEZhYSEKCgrIv+3s7DBo0CBUVlYSw4LqXtyvX78OGRa6kEqlRP3p6fl+9OjRBqvCAU/GUmtrayxbtgwikQgbN27UityUl5dj9+7d6NmzZ5ek2HbzX4qLi3H69OkWWSs0Gg1z587FSy+91EI4RRd0Oh0WFhb47LPPkJWVpSVh3Ba2traor69HZGQkqqqq4OnpCR8fn39WxCItLQ3379/HoEGD4OnpSU7Io0ePEB8fj/79+3e60ry4uBh79uwhxbPAf5vDLVy4EEuXLoW7u7tWziiNRoNGoyHfycvLw3fffYf9+/frXYjk5eXhr7/+Ik2MOmMcUZP+unXrEBUVpdMYoDqZz5s3D4sXL4anpyfodLrO30DltF66dAnfffcdEhISdC70RSIRzpw5AxcXF6xdu7ZTXlqlUomffvoJBw4c0BshYrPZCAkJwWuvvYaxY8fC3NycTCzU+Wt+HfLz87Fnzx78+eefqKioaLFdtVqN9PR0fPDBB9i3bx+8vb2NaqTK5XIcP34cAMgEQ3V+HzNmDFatWoXg4GASfqT+mv+GiooK7NmzB7///juKiop0XluxWIxDhw5h2LBhmD59ert/g0wmQ1VVFUQikZZaWHN0ycJ2FqVSibS0NBw4cAD37t0jtU39+vXDCy+8gF69enX4nlKpVPj1119bhOSbQykjvfXWW+jfvz8YDEaL6wA8uU9UKhWSkpLw22+/4fz58zql+jQaDTIzM4lxIRQKO3XOzMzMOl2cL5VKtX6/UqnssIxqWxFEDodjcNTMwsJC69p2tlD0n0RFRYXWb6EkZdsLpRDXnLq6Oq3XDE0p4XA4Rkkr1AeliNiWwdqaI4HD4bQomKbT6eByuToj+0/vi9o2JRtsYmJC7rGnC/KVSiViYmIwadKkFs3c1Go1TExMoFKpOhzhCQsLA51OJ9eKivg93XODgqqLzM/PJ695enqib9++iIqK0hqP4uPjIZVKdT5rGo0GTU1NLQwLW1tbeHh46DzW69evIy4ursWYLxQKsWHDBoN7IFFQhuacOXOI2Ehzzp07h3nz5hG58W6Mj1qtRmFhIa5fv97ivaCgIEyaNKldbQQoFbX169fj2rVrBqdzJyYm4rvvvkNubi6Rj586dSrefPNNODg4tOs3PY3RDIvHjx/j3LlzCA4O1nqdw+Hg2rVrMDU17bRhAUBr4GYymRg+fDjWrVuHgQMHai3E9dGjRw9s374dY8aMwVtvvYXKykqdn4uLi8OBAwcQFBTU4UGf6up64MABHDx4UOdnuFwuxo4di7Vr12pJUrb2G1gsFqZPn44pU6bg448/xq+//qqzn0FVVRVOnDiBvn37YsKECR1aBGk0Gty9exfr16/XaVRQnqslS5bg/fffJ2G1tvbl4+ODDRs2YP78+XjrrbdI07fmqNVqPHz4EJ988gl27txpdNnL5vcSnU5Hjx49sHbtWsydO5d4Z1v7Hc7Ozvjkk08wcuRIvPPOO3jw4IHOep+qqip8++23iIiIaLeizZgxY/Dzzz/jyy+/JEpmzSdyFouFyMhIo3qTFQoFdu7ciS+//BIikYh01i0oKMCDBw+wZ88efPTRR3j99dfb7bHXaDS4desWfv/99xbNtoD/Nhn88ccfMWPGDK3XW9tmv379EBYWhiNHjuCbb75BSkqKzvv1zp072LJlCz788MNOnTNDZDPb4mkZUB6PBzMzs3afU0OMBl0dlvXBZrO1PttVaY/PA6qDLfDfFKeOpLxSxbHNkUgkWkaLoZ4/Fov1XKTCnzUajQZ//vkn2Gw25syZozcFg06nw9zcHFlZWaiqqiLzr1qtRkFBAa5cuQI+n99hrzplWFDI5XKiXqnr2aMWgs0Ltz08PODg4AAvLy+imAcADx48IPfB08+bQqFAQUGBVpSAxWLBwcFB50JOpVLhxo0bJFWyOUuXLoWvr69WVMhQaDQa/P39MW7cOMTFxWkVDsvlcpw5cwb9+/c3Whp1N9rU1tbi1q1bLZxqNBoNgwcPxpAhQzp0Tb28vDB+/PgWxqI+rl27ht69e2Pr1q0wNzdHSUkJ3nvvPeTk5PxzDAuqcdjTXhpzc3PSfMmYMBgMRERE4LPPPmtXkS/lvZkxYwaYTCZefvllnV5CmUyGyMhIXL9+HZMnT+7wojwnJwfffvutzvd5PB5mzZqF9evXt6sfQfMq/q+//hp8Ph/ffPONzshFeno6Dh8+jIEDB3aoIF0sFmP16tV6ozt2dnZ47bXX8MEHH7RrgqZ+Q0BAAI4cOYIXX3wRly5darEwl8lkiIqKwp49e7By5cp2LwYN8bTSaDR4enris88+w7x589r9GwYMGICtW7di6dKlePTokc7oS3Z2Nvbs2YO33367XffStGnTMGTIEBQXF+Ojjz7C0qVLte4VGo1mdLnZ69ev4/vvv0dAQABWrVqF8PBwWFpaorq6mqhYbNq0CT4+Ppg4cWK7tl1XV4ctW7bonCwBwN3dHcePH0dISIjB26TOJ4PBwAsvvAAej4d169YhJSVF5/X/+eefsWjRIqOLG7QXqisuxejRo7FhwwYEBgYafV9KpVLvM/w0EolE6x7+NxVum5iYkPtFKBTijz/+wNSpU42ybR6Pp/Vst1XIS0FF3ZrT0NBAroFUKoVarSb9WqjoHdVrw8bGBo2NjZBIJKDT6RAKhWQxrlKpIBKJIBaLodFoSHSkufEolUohEolIp2wWiwVTU1OtSKhYLCZd2plMJkxMTMDn80Gj0SCTydDY2AgOhwOpVAq5XE7yuKlz0tjYiMbGRsTFxcHR0RElJSWQyWQQCAQwNTXVGtc5HA5WrlyJH374ATNmzMDQoUPBZrNRUlKC+/fvo7y8HIsWLWpTVlMflIIl5VSkevPk5eXpVMSprKxEXl6e1vND1Sv16NEDZmZmZA2RkZGB2tpaODo6thjnpVJpi54ZlpaWJEPhaQoLC5GamtoiXYbJZGLy5Mnk/HcEKiWsZ8+eLRSJrl27hoqKiufaHPPfjL4Cazs7O/j7+3donUap2E2YMMFgw4LL5cLS0hImJibQaDSwtLTU6TDpCEZbkXA4HCiVSpSUlJDJnEoDUigURvfI9OjRA8uXL++wchCbzSYpL/pOZFpaGm7evGnwBNEcKlrxn//8R2f+M4PBwODBg/H22293qskZk8nEO++8g+HDh+t8X6FQ4P79+7h69Wq70xk0Gg0OHjyIhIQEnd8VCoWYNm0a3n333U4VultZWWH79u0ICAjQ+X5paSkOHTrUoRxkQwZGc3NzLF68uF1GxdOEhIRg9erVetMf6urqcOzYMZ2qHm1hZWWFoKAg9OvXD3379kW/fv3IX9++fY0++B86dAhmZmbYsmULJk6cCBsbG9JTYNKkSdiyZQssLCxw7Nixdm1XrVbjxIkTuH//vs5FrlAoxE8//dQuo0IXU6ZMwZw5c0ix7dPU1NTgt99+e+7pPTweD+bm5uTflG5/V0AtHg2hurpay8DvisaVzws7OzvyWygtf2Nhbm6utUBurf6qORKJpMW12bx5M9577z18/vnnmDlzJkkLfPz4MTE4Ghsb0atXL0RGRmL16tUYO3Yspk6disOHDwN48vsyMjKwYcMGTJkyBePGjcPKlStx4cIFMqfJ5XKcO3cOr776KsaOHYuxY8di4cKFWrWIYrEYu3btwpw5czBy5Ei88MIL2Lp1K/G4xsfHY+HChfjuu+/w0ksvYcyYMZg5cyZ2795N7ufDhw9j7ty5uHDhAv78809MmzYNERER+OGHH1rc8xwOB2+++SZ++uknWFtb4+zZszh8+DCSk5PRp08fbN26FevWretw7SClxvX0NaBqJZ6muLhYa+5hMplwdXWFmZkZfH19tZ5hpVKJxMREnU4+iUSi17DQRWpqKmk03Bw/Pz/4+Ph0usDa398fPj4+LYya0tJSZGRkdFohsZuWUOlwupSg3N3dO5XVw2Kx0LdvX4Odrz169CBy50lJSdi3bx9MTEwgFouRkZGBjIwMg51RT2M0w8LZ2RksFguHDx8mknxpaWk4cuQIaDSaUb2DbDYbI0aM6LDHgkIoFGLRokWkuc/TyOVyPHz4EElJSR3afl5eHg4dOqTzPVdXV7zwwgsIDQ3t0LYpaDQahEIhPvnkE72L+9zcXNy5c6fdUSOqSZauAYZOp6NXr15YtWqVUTyajo6OWL9+Pfh8fov3qPz4o0ePGr1DLZ1Oh4+PD1555ZVOb2vWrFkYOHCg3nA6FcbvKKtXr24RnqY8kcYkNzcXvXr10qkERKPRYGFhgYCAAOTl5bVruzU1NTh37pzOyRIA5s2bh8mTJ3f0sAl0Oh0vvfQSevXqpdMTqFarceTIkQ7XMxgLU1NTuLq6kvulqKgI+fn5XdIsraGhAaWlpW1Kc1PPGjVWUBLHXdXB/FlDKTABT5wucXFxRhtTnJ2dtcbC5OTkNp9NtVqNuro6nUbItWvXwOVy8euvv+LXX39Ffn4+/vzzzxZNaL/55huMGTMGp0+fxtatW0mvioqKCuzfvx/Z2dnYtGkTDhw4gJ49e2Lnzp2IiooC8GSO2rt3L3x9fXH48GEcOXIEL730Ery9vcl9ef78efz2229YvXo1Lly4gDfeeANHjhzBrl27yDFkZ2cjKioKL7/8Mg4dOoThw4fj1KlTpF/I4sWLce7cOURERGDZsmW4efMmkpKS8Pnnn+v00HK5XCxatAgnT55EUlISUlNTERUVhd9//5146ztD87Rj4L8ysLooKirSMiwcHByICpO3t7eWYQE8SYfSZVjoilhYWVnpNSxycnJ0pmoHBQUZRbFSIBAQA+lpEhMTu0Sl7P86lCRscyEACnt7+06ln9HpdFhbWxtcd1NSUoKLFy9i9erVWLBgATZt2oS///4bb731FqZPn47p06d32PFitNnC398fEyZMwK1bt/Dqq6/izTffxPLly3Hp0iWMGzdOrze6I3h4eGDw4MGd7jVBNaZZvHixXo/c48ePkZSU1O7JXqVS4a+//tLZKIjJZKJ3795EP7izMBgM+Pv7Y+DAgTrfl0qlSE1NbVP54mlu3LjRQnObwsLCAlOmTOl048PmUKokuqisrMSNGze0OmgbAxMTE4wfP77TOYXAE4/BsmXL9NaC1NbW4vr16x1eyPB4vBbeiL///rtD22oNLpeLpqYmKJVKnUXQSqUSYrG43ZPbzZs3kZaWpnNxa2Zmhtdff91otSJOTk4YMmSIXq9maWkpbty4YZR9dRRq0U7lilM1LE8vHI2BTCZDbm5uqw2+gCdRk+YNRwMCAmBqavqviViYm5sTQQ65XI7IyEijqTGZmJjA39+fROdjYmJQXV3d6ncaGhqQnZ2tU8TA19cXkyZNQkhICEaMGIEZM2bg7t27Le6P4cOHY9asWfDy8kKfPn2I17OwsBC3b99GcHAw6HQ6RCIRXFxc0NjYiEePHkGj0YDBYMDc3BwymYzIWU+fPl2rl8r27dvRp08fWFhYoKKiAkKhEB4eHrhw4QIZH8zNzTF27FhMmzYNgYGBpL8L1feBzWaT8YtShuLz+S3qeZ4VugwLXRELKqrV/LlxdXWFtbU1AN3qcA8ePGjh6dXlqaZqfHQpQmk0GpSUlOi8L3x8fIxWWO3o6Kiz7i8jI+NfVVv1T4FqkKgrEmBhYUHuq47CZDINzoCZO3cuLl26hKioKPJ38+ZN3Llzh/xbVxNQQzCaYSEQCDB79mxs3rwZs2bNQu/evTFt2jRs2rQJL7zwglELb318fFoMDB3FxMQEI0aM0JvCUlZWhvT09HY3sxOLxTh58qTO92xsbBAREdFuRYfW4PP5mDRpkt738/Pz2+zI2ByNRoMTJ07oHFyoCNTMmTM7dKz6YDAYWLFihc7FJSXZe/v2baPu08zMzGgGHvBkktenSS4Wi0mzOUORSCRkIS4SiVBXV6f1t3nzZqN7uENCQpCamop79+6hqqqKSFQqFApUVlbi7t27SE1NRd++fQ3eJrWI0+cBGT16NHx8fIy6yBg+fLjegVqhUODq1atG21dH6dGjB0aMGAEmkwmFQoHLly/j3LlzaGhoMMjbXVVVZfACIDk5GTdu3ND7eblcjrNnzyIrK4sYv1OmTPnXqcMsXbqUeLxLSkqwceNGrRRefWg0GjQ2NqKhoUFv5Gf8+PFk29XV1di7d6/elBKql44+A9fKykpLOMTZ2Rn19fUtvOG6nHYajQZisRjJyck4dOgQ3nvvPbz33nvYtWsXlEolzM3NodFo4OnpiUWLFqG0tBQbNmzA999/j0uXLpHmp1Sd4J07d/D++++T9KyioiI4OzuTsUcoFGp5WymDoaOpFF1N7969teYZqVSK7OzsFte1rq4OeXl5Wt775oYFJfrRfH3z6NEjiEQirftJpVKhpKQEtbW15DUulwsnJyedDlJKnl1XGrabm5vRUsttbW11Ol+Ki4v/sdfufxmlUqnT2UCn02FmZtbp1gBMJtPgdSWVimtmZkbaRJiamsLMzAzm5uYtUjvbdRwd+pYeuFwuwsLCEBYWZszNasFms+Hu7t6puoTmUOGjgQMH6jQEKInawsLCdkVdUlNT9YZW7ezsEB4e3uFj1gWbzUZQUBDodLrOhWZZWRmysrKI3nhb1NbW6u35weFwEBQUZHSta0oVwdnZWUvaj6K0tBQxMTGYPXu2wfmlrS0WKLEBYxbLcjgcjB49GsnJyTq9VjU1NXj06BFGjBhh0PYePHgADw8PODk54ezZs6itrQWdTie/q6ioyGjHTjFr1ixER0dj3bp1mDFjBgICAojySXJyMk6dOgVnZ2fMnj3b4G0WFxcjLS1Nr4E+YcIEozdl8vPz0ztQU5KWKpXqufZncHZ2xsSJExEZGUlSPjZv3gypVIpBgwbB1tYWfD4fDAYDKpUKMpkMIpEItbW1qKiowL179zBnzhy96ZzNycnJwV9//QUrKyv07duX9MihFjEJCQnYunUriQq6uLhg6tSp/zrDYty4cSR1SCwWY//+/eBwOJgzZw4cHR21mlDK5XKIxWLU19eT/knOzs4YNmyYzntr/Pjx2L59O+7fvw+VSoVNmzbBw8MD/fv3h42NDVgsFlQqFRoaGpCRkYH9+/fj3r175Po2RyKRaI0hTU1NpAN1c1pbZDo7O+Ptt9/GlClTtF7n8/lkO6NHj0Z4eDhiY2Nx9uxZfPbZZ/jkk08wadIkcDgcUiz8tJIag8Eg/6aadrXG01LRzxNnZ2fY2dmRtEyVSoXKykpUVlZqRa9LS0uRnZ2t9V03Nzcth0XPnj0hFAqJw6iurg6ZmZlwcnIi50cmkyElJUVrOxYWFjqLxYEn11pfmuvTxe6dgc/n64w8Uw6lboyLPplkFotFxvnOQKfTYWpqatBn6+vrkZWVhfLycjL2cDgchIWFtVu98mmMaljoIzU1FRYWFkZJN6GKnYxZDG5qaoqwsDC9EYaioiIUFRW1y7C4du2a3p4V9vb2Rk0NA54M7C4uLjA1NdUZPhWJRCgtLUVTU5NB0aP4+PhWewx0RBKtLWg0Gvh8PiIiIrBnz54W7zc1NZEHwdCandaOkc1mIyAgwCgNYZozdOhQbN68WadR1tjYiJSUFIMNi9LSUhJN++uvv2BjY6Pl4eqKArs+ffrg/fffx44dO3DgwAHU1NQQg9TGxgZBQUFYuXJluwyyR48e6U1j43A4pFeFMbGzs4O1tbXORZtGo0FhYSFqamq6pPOoodDpdAwaNAivvfYafvrpJ2RlZSE+Ph4ff/wxwsLCEBoaCnt7e7DZbMjlctTW1qK4uBiPHz9GcnIyRCIRhg8f3qZhYWFhAUtLS8TFxeHjjz/GmDFjEBgYCDMzM5IqeerUKWRmZhKP9uuvvw4fHx+d10WtVqO+vp6IcygUCsjlcigUCiQlJZH6Fapm4/bt26SXAvXH4/Hg5OTUYizXaDSQSqUoLCwk26b+cnNztWSKi4uLER0dDXNz8xbbd3Z21pmLz2az8dVXX6G6uhp3795FfX09fv31V/z9998YPHgwPDw8YGJiArVajYaGBpSXlyM7OxupqakoLi7GW2+9hfDwcJ2GhYODA958802sWbMGhYWFKCoqwhtvvIE5c+YgJCQEQqEQEokEOTk5uHHjBhISEuDu7g6VStXCEZWfn4+0tDR4enpCJpMhJiYGnp6eBtW0UTLg3t7eSEpKwogRI2BhYQGZTAapVEoMp7q6OtJBPDw8HL6+vkhLS0NSUhJGjhwJHo+H0aNHIz4+HlVVVSRK0djY2G5HAJ1OB4/HQ1VVFWpqasDj8cBkMsHhcJ5pDQ/VHDAkJESr3ouaX1ozLLhcLlxcXLSufc+ePVss5uLi4jB48GDy7Mjl8hYZAxYWFnqdczKZTG/EQCAQGO18NW+Q2JympqYuqfX6vw6l0vY0TCbTKGtaag1lCPfu3cORI0cQFxcHPp8PtVoNDoeDTZs2/W8YFnv37kV4eDimT5/e6W1ZWFgYXSaSz+ejZ8+eer0pZWVlOjX3WyM6OlrntrhcLpydnY3ek4FGo4HNZsPGxkavQVBbW4uqqiqDDQtdvTGAJwNbZ4vO9cFkMjFw4ECdhgXwpCAxIyPDKPcAi8Uyao0IBdVYTxcikaiFB6w1mkcFBg0ahIULF2rlPba3gNpQJk+ejMDAQNy+fRvZ2dloamqCiYkJfH19MXToUDg5ObVrexkZGXq7Qzs7O8Pa2troiwvKEKK8xE9DLVSfp2EBPHFszJgxA3Q6HXv27EFiYiLq6upw9erVNtO1LC0tDTKMXV1dMXnyZKSkpOD69eukE3zz5pUU9vb2mD17NhYvXqx3EUvJQP/1118Qi8VafzU1NeRaq9VqHDp0CNeuXQOfzye59Xw+H87Ozvjoo49aOJw0Gg3y8vKwfv16sk2JREIiB83H4lu3buHx48cQCARku9Q+Pv74Y53GL41GQ48ePfDDDz/ghx9+QGRkJMrKypCSktLCq/w0lORra5KMs2fPRkFBAXbs2IHc3FyUlZXhP//5DwBoRZQFAgEGDx6M6dOn48GDBy0MC5VKhdu3b6OsrAzV1dVIS0vD0qVL9aqdPY2rqytmzpyJI0eOYMuWLbC1tYVcLifpv4GBgcjPz8eVK1cgkUggEAjQ2NgIJpOJ0NBQcl+9+uqrWLNmDX799Vd4enpCo9FALpcjLCysXc5CBoOB/v374+LFi9i7dy8cHR3Ru3dv9O3b1yjFyO2BTqcjNDQU58+fJ681NTUhOzub1Pmp1WqUlpZqRc+dnZ3h6Oiodf29vb1hZWWltX6IjY3VGnN0GRbm5uZ6DQuVStVqM1pjOfWoHkVPo6u+rpvOo9FodDoDmUymUSL2lNFsCElJSQgICIC7uzsCAwNhY2ODixcvPt/O23K5HNXV1eByubCwsEBTU5NOZQuNRoOCggKjpZsIhUKDO5oaCovFgr29vVajm+bU1NSgurra4DQihUKhd4Li8Xhdpp9PaZjro7Gx0WA5y/T09FY9JsZOg6JgMBit3ivV1dVGW0yzWCydhXOdxd7eHpaWljrPtUQiQVFRkcH3UnN0NZWaPXt2lxU/uru7G+X8qFQqFBQU6DV4PTw8jKKdrQsTExO9kRCqD8A/AWtrayxYsAA+Pj44e/YsEhISUFBQgOrqalJIT6fTwefzYWZmBjs7Ozg7OyM4ONigtFC5XA5/f39MnToVHh4eiIqKQn5+Purq6qBUKsHhcGBjYwMvLy+MHj0aixcv1pJm1bW95ORkIm3aGhUVFTqNSldXV7z22ms6DYuysjK9TUWb05pE74svvqh3LGEwGAgLC8NPP/2EI0eOkCLusrIyNDY2krGPw+FAKBTC2toajo6O8PX1xbBhw1qNGnA4HLz77ruwsbHB6dOnkZGRgbKyMtJnwtTUFC4uLujXrx/mzZuHoKAgnUppQUFBCAwMJCk6rq6uEIlEOHXqFFxcXBAcHIwlS5aAyWTi+PHjUKvVJL/a19eXRCZef/113LlzBzdv3oRIJML8+fNhbW2NiooKJCYm4urVq0hOToaTkxP69++PV155Ba6urkhNTUVjYyNKS0sRFBQEFouF3NzcFpEqgUCACRMmaKkb2dnZYeTIkS0iaTNnzgSXy0VycjLy8vLg5eX1XBawdDpdZwF380J+kUjUYtzy8PCAo6Oj1veEQiG8vLwQGxtLaiLi4+Mhl8vJIk0qlWoVh1NOD30qQHQ6Xe/8QNW8GQN9BgzVK+V5YmwFyH8K+mpIjXVN23Pd+Hw+MSJDQkKwa9curTqgjtLh2byiogLbtm1Djx49sHjxYiQnJ2PHjh0tPqfRaPDgwQOMHz++UwdKIRAIOq0G9TQ0Gg08Hg/29vY6DQuxWIza2looFAqD8o2rqqr0apjL5XIkJibil19+6exht6C+vr7VwmCpVGpwT46cnBydOZZUP4POFhnpg06nw9nZGTweT2eRaX19vdG05xkMBuzt7Y2yrebQ6XS4uroiLy+vxWBBFW9RHsL2oMuYGzt2bJdNAI2NjcjJyUFVVRXkcjmJiHl4eLQr4tbY2IjKykq9aVvV1dXYvn17l3gtU1NT9RbaUlKfhhIaGooVK1ZAIpHAwcGhxQKjs/B4PAwbNgyhoaHIyMggqTf19fVaTcdsbW3h5uYGPz8/uLi4GOzsUCqVCAsLg4eHB5KSkpCcnIyysjIoFArw+Xy4uroiJCQEPXv2bPNasNlshIWFYdWqVR3+vRYWFlpj+dmzZ9GvXz/Y2NjA2dm5U9sG0KaiCfWcvv3225g5cyaSkpKQm5uL6upqSKVSaDQa8Pl8WFlZwdnZGT4+PvD09NQqqNYHl8vFK6+8gqFDh+L+/fvIyclBY2MjGAwGrK2t0bNnT5LmplKpEBERgfr6erBYLAQHByMyMhIMBgMjR45EYGAgzp8/j0uXLqGwsBAMBgNNTU3EMFq/fj2Ki4vh6uqK9PR0REVFYd26daipqcGePXtw/vx5jBkzBsePH8ft27cxcuRIODg44PHjxxCJROjXrx+CgoJQX1+P5cuXIyAgAPv27cPFixcREBAAhUIBtVqN9957DwwGA7///juZJyMjI2FmZoaVK1dqXUsvLy94eXm1OC/29vZ4+eWX23kljQ+dTkdAQAA4HA4Zl8RisZbTqqqqqkUjT12GBQAEBgbi7NmzZH4tKipCSUkJzMzMoFarUV5eriUdKxAI4OHhoTdthcPh6PVgi8Vio6Up6Uu5al6D8zyg+oD922AwGDrnfYVCYZS0Zn0REV24urqSxpuxsbFEpMgY83CHDQs6nQ4ul0s8jdnZ2bh3716LhY5arTZqPQSXyzV6GhHw5EG2trbW2yRHJBKhqanJIMOisLBQ74Pf2NiIkydP6q3n6EqUSmWbOvbAEwOkpqZGp8eAyWQafUHVHBqNBg6HA1tbW50F3E1NTaiuroZGozFoQd2aF4BOp3c6l1AfraUIyGQy1NXVGaX/x8GDB/Haa68Z1bjQaDSIi4vDxYsXkZCQgNLSUkilUnC5XDg4OCAkJAQTJkxAWFiYQfutqanRKbtMkZCQgISEBKMdv6FQufyGMmLECINrYzqDUChEnz59jKZ8B2h3d7ayssLw4cP1NtU0BB6Ph1GjRnW6l1BzqOgJjUaDj49PlzhfdMFkMuHh4QEPDw+jbpdGo8HX17fNplcMBqPF9YiMjNQauxoaGqBQKBAQEICwsDBYWVmBx+Ohrq4O+/btw+nTp+Hr64vo6GiDO+/yeDw4ODhAIBBALBZjx44dKC4uhr+/P4AnKcAffPABgoKCIJPJwOVykZOTg23btmHu3LmwsbFBfX09bt68ibFjxxr1fu1qKKlXNzc3MufLZDKUlJRALBaDz+ejqqpKy9CghGN0Kc316tULJiYmJDKnUqmQkJAAPz8/0qiw+fU0MzNDjx499B4fldanKz27eVf2ziIWi3UaFubm5l0WRTYESp7330ZrhgXlzOjMXE7VhRnCoEGDIJfLQafTSfPGcePGdVhitjkdvnMcHBywevVqchIYDAYGDhyIb775poVh0dDQYDTrlyr6MzZMJrPVavqmpiaDFyGlpaX/yPzE5ouL1qirq9Nr9TIYjC5bjFPQ6XRYWVnpNCzkcjmZZA0xWFt7SNtKHesMVLdiXfeBQqFAQ0ODQXUKtbW1rd53R48excqVKzt1rE+TlJSE7777DtHR0ejZsyd8fHwgEAggk8lQVFSE33//HY8ePcKnn37aooOtLurq6jrUvb6roSR0/6/wTxyTmrNo0aLnfQj/WCIiIqBQKFBcXIysrCx4e3tj5syZqKurg0Qigb+/P2g0GlxcXFo0bKMWK2q1mjiW5HI5bt26hdTUVLi7u4PBYECpVGrND15eXkTZiCrurKmpQW1tLczNzaFUKuHi4oLevXsbXPfxT4LJZCI4OJgYFhqNBvX19SgtLYWXl1eLtFtbW1u4uLjo9Oj6+/u3mEvu37+PuXPnQqlUtnBYmpqatmpYsNlsUj/19NhZXFwMhUJhlHVQdXW1TqfP0705njVUI7l/G1TfmKdRKpUQiUSQSCSdav7Ynii8s7MzURgcNmwYwsPDSX1aZ+mwYUGj0bRuvODgYFhbW+u8GQMCAoyWckI12DE2DAaj1QeVUjwxBEoD/J+GoXl8IpFIrwFCdfruSlpb8FOhPplM1ulIGBUd6QpaS5dQqVQGG6mHDh1CSkqKXu9RVxRvHzp0CPfv38err76KUaNGwcHBAXw+H3K5HCUlJbh27Rr+/PNPHD582CDDoj1G+bPmn/ic/q/S1NSEhIQEPHz4EI2NjZBIJOjZsyeGDRsGHo+H27dv4/Hjx6DRaBgwYAD69OkDHo+HrKwsXLt2DQUFBXjppZfg6elJFsJFRUU4c+YM3N3dkZycDBMTEwwdOhRBQUFobGxEbGws0tLSSLpYYGAghg0b9twL8jvLiBEjEBISQuZNJpOJGTNmoKqqClevXsX27dsxZswYmJubg8vlIiUlBX5+figpKUF9fT3JKFAoFKioqACfz0deXh7xZkqlUsTFxcHR0RELFy5EWlpaiwUzi8XScszQaDRYWlrC0dERAwYMwIABA4ijx9jpyc8CyrA4cuQIea2pqQn5+flwc3NDRUWFlpKdm5ub3vpIW1tbUpdCrRPi4+NJQ9GnC/PbilgAT5rXmZubtzAssrKyjKYGWFpaqjN92tPTs1MpMZ0dV6m6vH8bbDYbjo6OOtsC1NTUoKqqqlMRA6VSaXCqeEZGBs6ePYuCggKtuo8VK1a0eW+2hdFiXa2FfKdMmWK0xSiNRuuS3D86nd6qwWJoGhEAvfrT/yvIZDK9x0+pT3UlbS34lUql0TzNXdXDoLVzpFarDT7+5ORkmJub633Qr1y50qHja40HDx7A19cXS5cuhaurq9biwtXVFc7OzoiJicGDBw8M2p5cLjf42enmf5eMjAxcuHAB9vb2YDAYiI+PJ9KYp06dQkZGBlxdXaHRaPDXX3+Bw+EgJCQEXC4XdnZ2+PnnnzF69GhSBKzRaFBUVIQtW7Zg+fLlsLOzQ0pKCkpLS+Hu7o7ExERcv34dTk5O0Gg0iImJgZ2d3XP1tLaH7Oxs3L9/HwMHDmxRxDtgwACtf0dHR+PBgwfEKREQEAAWiwVTU1MsXrwYGzduJOeWSqFxcXGBq6sr1q9fD3t7exQUFJDaODabDV9fXzx48ADfffcdOBxOC2ehLhwcHLBo0SLs27cP58+fJ032Fi5c+Fz7wXQESnK2OU1NTSgsLERjYyMKCgq0HCJubm56i60p0ZHbt28TMYHU1FTIZDKoVCpkZWWRz7JYLDg4OLTZyMzT0xO2trYtCvsfPXpklPoDiUSCwsJCneIHAQEBbXqu9a0FOjs/U9EKffLk/8tQDexsbW1bCIdUVVWhrKysw4YF1RTTUGfj7du3kZOTg9DQUJiYmJB53hj1s88kia65WoQx6KpFe2tpM+2p2v9fT69Qq9WtGhbPoqirtX1oNBqj5Zh21b1krOMfOnQogoOD9Rrt586d69DxtQaDwYCNjQ1ZoDSHMvqsrKz0ysc+TWvSif8Xyc3NxZUrV4yWz/pPgZJFXbRoEWg0Gqqrq+Hu7g61Wo2YmBiEh4dj3rx50Gg0+OijjxAXF4cePXrA2dkZzs7O+OGHH1rcb1QDwzFjxsDPzw/nzp3DyZMnUVVVhcLCQkgkEowdOxYikQiVlZXw9PTUmWrwT6S0tBS3bt2Cj4+P3gUrhY+PD1QqFeRyOVgsFkm9odPpWL58Oe7evQuNRgM6nU4Mfjc3N6xcuRJZWVkQCAQYMmQIKf7ncrmYPHkyPD090dTUBAcHB4SGhpL+SgMGDICXl5eWQ5ASOVmyZAkePHhAmnW6ubk913z8jsJgMODt7Q2hUEjSgcRiMemQ3VwhisFgwM3NrdXMi969e4PP55OFem1tLfLy8mBnZ6e1LYFAAB8fnzaNOH9/fzg6OuLhw4dar6enpyM/P7+F7G17yc3NRVZWVosaC6FQCH9//zZTrfTVC0il0k7VR6hUKqKq9W+DRqPBxMQE3t7eLQyLgoICZGVloV+/fh3aNmXAtlbP2Jza2loEBgYSZTljYrSt5efno6ysDGFhYVqeC7FYjJycHNjY2Bjcarw11Gp1lyxSNBpNq/UHDAbD4AV1a54bS0tLLa/cs8TNzc0g+dCnQ+DNoUK7XUlb+6DT6QZ7x9oyHLrqt7R1/IY+yCNHjmy1yPu9994zuqE3aNAgXLlyBVVVVbCystLavlqtRkVFBbKzszF27FiDtken01s12iMiItC3b99nvjihuow+a6qqqnDz5k307du3U4ZFYWEhysvLERoa+lwVXCjc3NwgFArxyy+/wNTUFAKBAD179oRYLIZSqSQFx8ATOdK6ujqDnDBU/xRqIcNisSCTydCjRw/ExMTg559/BpfLha2t7XMZV58F/v7+pKj6aRwcHDBjxgwAT+bhnTt3AnhSANyaCICrq6ve+8/b21unCh2dToe1tbXeZ7+qqgqnTp1CSUkJ5s6d22bhui7EYjHee+89ODk5Ye3ate3+vqFQab0+Pj6Ij48H8GRRXFZWhrq6Oq0aPysrK7i6urbqxacMCwqNRoOkpCSEhoZqSXgKhUKD+ic5OTkhICAAkZGRWgW5IpEIV69eRXBwcKcyQRISEpCent7i9bCwMK2u4fpgMBg661Jra2vb3ferOUqlskscZv8UTE1N0bt3b0RGRmq9XlRUhNTUVEgkkg7Vz8hkMly7ds3gz/fo0QO5ubnIzs6Gl5eXUedfo20pKSkJkZGRCAkJ0bohJRIJjh8/jkGDBhnNsOiKiIBarW41b5HJZBp84nk8nt6FlKmpKcaNG4cJEyZ06Dg7A4vFMkiJiMvl6l2otFdJpyO0tY/2dKlsKwrVVV6R1kLVbaXdNUeXAklz+vfv367j0kVmZqaWFGKPHj1w5coVfPbZZxg9ejQ8PDzA5XIhkUiQnZ2Nq1evwtLSEvPnzzdo+ywWq9VnJzQ0FK+//nqXiDK0BuU9eh4YQ8Xrxo0bEIvFLdI5nhdcLhempqYwMzNDREQEkcWVSqXg8XjIzs4m9WdpaWkYM2aMQXnc+po+8fl8mJiYwMLCAuHh4XB0dGzT899RqqurcenSJURHR0MqlcLLywvz5s2Dp6cnqqurceTIEaSkpEClUmH06NGYOHEi2Gw2CgoKsHPnTpSXl8Pc3BxTp07FwIEDdW7/4sWLoNFomDhx4v9M1OVpmpqaEBcXh/T0dIwYMaJDhoVCocCpU6fg5+fXpYYF8MS50Lt3b2JYSCQSlJWVoba2tkVjvKfTQp/G3d0dtra2yM3NJVH/pKQkWFhYaDlDTUxMWvT30AWbzcawYcNw+fJlJCUlab134MABzJkzBz179uyQU6GgoAA3b95EYWFhi/fGjx9vUI0Sh8PRWXNSVlaGzMxMKJXKdi9WNRoN8vPzcfny5XZ9738JS0tLDBkyBDt27NBac0okEsTGxuLRo0ftjlpQ6WNnz55t9XMXL17E9u3bATwxAKurq3HixAmYm5uT++iLL75A79692/mrtDGaYdHQ0ICysrIWHmKVSoXs7OwODTC6oGS5jI1SqWw1fMflcg0u9G0tR02tVoNGoxm9yZ8xsbCwaLWpmKFN9jpKa4oQNBoNXC7X4MKy1iIWarUaIpGoI4fYJvX19Xr3zWQyjSI1ayx2795NPETUxFlUVITY2FjExMTAxMQETCYTSqWS9KSwsrLC1q1b8cMPP7S5fT6f36ohKJfLYWlp2eWiAIZASUMeOXIEmZmZoNFoGDduHGbNmoXGxkacOXMGUVFRAIAxY8Zg7Nix4HA4+Oabb+Dh4YGEhARUVFRgxIgReOmll8BkMqFQKBAbG4vdu3eDwWDAzMwMNBoNSqUS58+fR1ZWFunZcO7cOVRXV2PChAkwMzPD1atXcfnyZVRWVoLD4eCDDz6Ara0tdu7ciWPHjoFGoyE2Nhampqb4+eefn2vkQqFQoLS0FMnJyUhNTYVAIMC0adMwcuRIzJkzB2fOnMGbb74J4El0Y9CgQeDz+dixYweSkpKQnZ2Nn3/+GZcuXcLLL7/cpvyrXC5HcXExqT8QCoWYN28eBg8ebPQ6sISEBDx69Ajh4eFwdnaGRqOBiYkJ1Go1duzYQbqnKxQKbNmyBS4uLggMDMRXX32FUaNGYeTIkSgoKMD27dvh5OREmhpSKWP3799HWVkZpk6d2ikD29bWFl9++eW/NnJjbNhstpYAhVKpRE1NDQoKCrRqG1xcXNpsRMnhcODv74+EhASyRklJSWkRFWpLEao5gwYNQp8+fZCZmanlrMrJycHmzZvxww8/aOXHG4JMJsPff/+Nq1evtnCm9urVC4MHDzbI4cLn83VG0ZqamvDw4UM8fvyYpNYZilqtxsaNGw1Os/1fhKpv6t27N2JjY7Xei4uLw5UrV9CzZ892zYcKhQKHDh3SquXRha+vLxYvXgzgv3P90+uU1qTyDaVThoVKpUJVVRUyMjLw+PFjlJeXIyoqinhj1Wo1EhMTUVJSYjRvpEwm6xJ9Y4VC0apMl0AgMFiGy97evtWumYbqDD8vTExMyGCly1DU1/zPWLS2Dy6XCzMzM4MXUK0NuF1pJLV2jthsdpc1GOwIPj4+GDRoULu+Q6PRDB6AzMzMWn12ampq/jE1GPn5+di3bx/YbDZWrlwJhUJBvHdHjx5Fbm4uZs2aBQaDgcOHD0MgEKB///64evUq+vbti1mzZqGpqQlr167FyJEj4enpiZqaGvz0008YPXo0AgMDcevWLcTExECj0aCwsBCpqalk/0VFRSguLoZUKkVsbCwuXLiA8PBw+Pj4oLGxEXZ2djAxMcHUqVPx8OFD2NjYYMGCBaT49nlRX1+PmJgYWFhY4JtvvgGTyURcXBzi4+Ph5eWFvn37wtHRkSjQUMWrdDodI0eORJ8+fTB37lyw2WxwuVwyhgYFBWHr1q1kP3369IGrqyt4PB5u3rwJb29vLFu2DAwGA3fu3EFsbGyX9KSwtbVFU1MToqKiMGnSJPTr1w9WVlaora3FtWvXyLXRaDRITk5GSkoKLC0tceLECeTn50MgEEAkEkEkEiE3N5csUmtra3Hs2DEIhUIsX74cnp6enUpJ4PF4CA0NNdbP/tfztGEBAJWVlUhISNBayLu4uOhVhGpOSEgIjh8/TnoSpKWlaUUnOBwO3NzcDB7/zczM8MILL+D+/ft49OgReV2tVuPw4cOwt7fHmjVrDDakFQoFLl68iG3btrWIVjCZTMyfP5+kHbYFh8OBt7c3rKysUF1dTV7XaDSkn4qLi0urMv7NUavV2Lx5M44cOfI/LX7TFpSwwsSJExEXF6f1W+vq6rB//354eXlhxowZBl1XjUaD27dvY9OmTW2mdru7uxNDVyaTaRXgK5VKSKVSozg9O2VYaDQaFBQUYNu2bbh37x4qKyuxbNkyrQmOzWZj8uTJBslSGoJYLO4SfWOZTKaVDtIcGo0GU1NTg40jFxcXvZO8VCr9x6sdMBgMODk5ISkpqUXamUKhQFFRUacbueiDaoyj71oIBAJYWVkZZd8qlapTuaCtUVJSondw5PF4/yjDYtq0aRg3bly7v2doOldb0YjCwkKD+qs8C0pKSpCVlYVPPvkEgYGBRLShvLwcmZmZ8PX1xciRI0Gj0RAXF0dkPuVyOUaNGoX+/fuDRqNhw4YNKCwshLu7OwoKCpCTk4P58+fDxMQEMpkMd+/ebfNYoqOj4eTkhDFjxsDOzg5KpZLUevn5+cHW1hbOzs4t6tooQkJCcOPGDahUKnA4HKN4ovRBFb0KhUIMGDAAKpUKKSkpKCoqIlFGfd2YWzMCzMzMEBwcTP5NdevOy8tDaWkpHBwc0L9/fyiVSkRHR7cagTx27Biio6MxcuRIjB8/vl3RHV9fX7zzzjtITk7GzZs3ceXKFSxbtgzW1taQyWRYuXKlVvqAg4MDampqQKfT8e2335J9UXKTFI2NjZDJZJBKpSgoKOiwzKNarUZpaSn+/vtvxMfHE2lZpVIJU1NTODo6Ijg4GEOHDoW/v3+nlbM0Gg1qampw4MABXL58GSKRCD179sTgwYNbnNf4+Hhs2bIFPj4+ePHFF7UKoO/evYsvv/wS06ZNw5IlS1qNROfm5mLTpk0oLCzEsmXLtMas4uJinDlzBleuXEFFRQUsLS0RERGBF154Afb29nrnCwaDAWdnZ9jY2JA5p6SkBHfu3CGfMTc3J/VDbREaGqr1G4qKirSedT6f3670JRqNhkGDBmHmzJkoKyvTmhfr6uqwefNmlJeXY82aNW2mAVZWVuLIkSP4448/kJqa2mLMHTt2LCZMmGBwGh6dToejoyNGjRqFw4cPa71XXV2NHTt2gMvlYsmSJW2m9BYWFmLLli3Yu3evVj3KvxVzc3OMHj0aly9fRnR0tNZ7GRkZ+OabbyAWizFjxoxWr4dCocDRo0exfv16nWltT0On08m9d+jQIdBoNEyfPh18Ph8ikQi//PILZsyY0en1eqcMCwaDgYCAAHz11Vc4ceIEoqKi8MEHHxALiFKQsbGxMZrONdV52ZhQKTH6FplmZmawtLQ0uGDY0dERFhYWOpuCNTY2IjMzE2q1+h9RcKkPX19fXLt2rYVhodFoUFtbi4qKCqPUzDyNSqVCTk6O3oWmubm5QZ4jitY8H+3RfG4PMplMrwY3h8PRKYlJpXVQXcdpNNozk2/s6nxuCwsL2NjYgMVi6ayPSk5OJhLHz9PrDjwZqJVKJSwsLLSeT4VCAZVKBR6PR8Y3ExMT1NfXEy+Rs7MzET7gcDikfkcul0Oj0RBjUiAQaI2RwH+bmDXvlyMWi2FjY0Nqttq7GBT+P/bOO67Kuv//z3M4h8Peew9BFEQQVNxbyz0qtWGad1qWTb3vdlZ2W1lqS83MNM2dC82Je+FApiAIyB6yOewzfn/4u66vR0BBUbO71+NxHiVnXecan+s9Xu/Xy9T0gc1fWFtbExoayooVKxg9ejRSqRRbW1smTpzY5t0DQHSA//3339m9ezdSqVSUQm3OeHLVqlWcPn0aKyurVifSFRUVGBkZMWjQINzd3Zk/fz7Xrl2jffv2uLm5kZaWxogRI7C2tiY1NRVTU1MMDQ1xcnIiISGBZ599VnR2vrl7Z29vz4QJE8jOzmbHjh1YWFi0SlBAq9VSU1PD4sWL2bhxI4WFhVRXV4syp1qtVvR+2rVrlzh4PWPGjGaHwVuCkpISvv76a9auXYubmxv+/v5kZmayePFiqqqqdKi+lZWVJCUl6VwTAsrLy4mJiaFbt2637VpmZWWxcOFCjh49ygsvvKAzW5acnMw333zD8ePH8fb2pkOHDmRlZfHDDz9w/vx5FixYgLu7e5Nri0QiEUUGhKC9uLhYp5Pt5OSEh4dHi+7XAQEBOhXfuro6Lly4IP7b2Ni41fvdyMiIl156iatXr7Jt2zaduKKkpIS1a9dy6tQphgwZIs61WFlZIZfLxVmRU6dOERERQXR0NKWlpY3ur/7+/rz88sutntmwt7dn3Lhx7Ny5U4eiLhSdFyxYwOHDhxkxYgQ9evTA1dUVIyMjqqurKSkpISEhgdOnT3Pw4EHS09NFNodcLqdr166Ngu7WQKlUUlZWRkVFBZWVlVRWVqJUKqmsrNT5W2lpqThjczPKy8v5448/yMrKwtTUFFNTU0xMTHT+e/Pfra2tMTIyatH+09PTIzAwkOeee47Y2FidgohQlHn//ffZs2cPI0eOFAfq5XI5lZWV5OTkEBkZyb59+4iKihIVphQKBf7+/k3+nluRk5ODubm5SPE3MTHROQb3gntKLCQSCUZGRri7u9OxY0fKy8sJCgpqdNNsy2ChrKyska7zvaKuro5r1641O8hrbW3dqiq5XC7H39+/yaBVpVKRn59Pdnb2X1pqMiAgAIVC0STtrKamhsuXL9+3xOJWeb2bYWVldUeu68243TFryrioLZCamtqs07SRkVGjIcCamhr+/PNPNm7cyIQJE8SuTI8ePR56oN0W0NPTw83NDUtLyya5s2VlZSQnJ2NnZ/fQtfCtrKwwNjbmwIEDPP/88zQ0NFBfX4+NjQ3m5uYkJSWRl5eHXC7n4sWL9OvXT0wYbla/Ev4rVPUEqk5ISAiJiYkUFhYik8nE5CQrKws9PT3i4+PFG1P79u05f/48KSkpdOnShbKyMnG+SCqVYmxsTF5e3l+CNiCXy+nduzcBAQFiYiRQ/u6HCaW+vj7Dhg0TuxVw46Zqbm7eJH0gKytLx0ivtYiNjWXZsmVkZ2ejr69P9+7d8fPzQy6X884777BixQomTJhAbW0tDg4OLF++HFtbW5YsWcL333/PsmXLRGPAzz77TEwS9fX1sbe3p3v37iiVSjZs2ICpqWmLZxKrq6uZPn06e/fupbKysslzQfBgqqmpobi4mMzMTJKTk3nvvffo3bt3q/eFSqXi8uXL/PLLL4SFhfHdd9+Jkq2bNm1iwYIFbTJDKFxDeXl5fPXVVxw6dIgZM2Ywc+ZMsXtQW1vLtm3bOH36NK+99hrjxo1DX1+f+vp6vvvuO3777Tf27NnDlClTmu04GBgYEBAQwPHjx4EbhcabzxFnZ+cWqSnC/w1mZ2RkiOflzQG3kZFRq+cO4AYV77PPPqOyspJ9+/bpzEZUVVURHx9PWlqaSOPU09NDIpGgVqtRqVRUV1eL6my3wtvbm3fffZf+/fu3unihUCjo0aMHzz//vDgULECj0VBcXMzBgwc5ffo0hoaGYuFFUOGsq6ujpqZGx/tLJpMxadIkpkyZwpAhQ1q9rwT8+OOPrF27lrKyMlHyvLlHUwWv2tpaLl68SGxsrFjpv91j5syZzJo1CysrqxZtn5GREY8//jhxcXEsX75cJ7FWq9Xk5+eze/dujh49ioGBATKZTDQOFa7nqqoqcdvlcjkjR47kpZdeYtiwYXekFwvHQdjvbXkfaZPhbYlEwoABA+jdu/d95/oWFxfrqDW0BZRKpQ5/8VY4OTm1mkbQu3dvDh482OTBKioqIjY29i+dWPTo0aNZ6ldVVRXnzp1jwIABbf69KpVKXOCbgr29fYuk+gTc7mKpr6+/7XG/W5w/f75ZrqMgnXkz8vPzkcvl9OjRAzMzM2pqaqitrUWtVj+S+vBNQaDuNJVYaLVaTpw4QVhY2ENPLIThtmXLlrF06VJkMhmTJ09m5syZTJkyhVWrVjFhwgQ0Gg2PP/44Q4YMueOgo4ODA2+88QZz5szBxMQELy8vAgICkEgkhIaGcvr0acaOHYuHhweGhoZi4PHUU09RW1vLv//9b0pLSzEyMmLJkiUih37SpEm8+uqrhIWF4eHhwdatW+/7/mkOAt3pdjr/bf19RkZGLZ57O3PmzD0JNfTu3ZugoCDUarX4WwWfFz8/Pz777DOx66anpyeqrPTq1YvAwECd5EdItLp160anTp0wMjJCJpMxc+ZMGhoaWvyb4IaCy63V4ttBMNE6dOgQ1tbW2NratlpYpaamhoiICORyOU8++aTYDbCysqJv377s3bv3noMUwTOjqKiIL7/8kj179jBr1ixmzZqls3+Sk5M5e/YsAQEBDBgwAHt7ezH+GD58OLt27eLo0aOMHTv2tolFp06dmt2W1iQWEomEkJAQDh8+3OgeIJFIMDc3b5IO2JLPdXNz44cffuDdd9/ljz/+0JkBESjErZ0/DQwM5IMPPmDEiBG3VbO83XY5Ozvz4osvioqBt0KYX20phX3gwIEsXrwYpVLZ7D2jJSgrKyMnJ+eeqPMNDQ0tViEtKytr1aygRCLBxcWFV155hcrKSn7//fdG76+vr2/SGf1WSKVS+vfvzw8//IBSqcTd3V3HO6UptGvXjn379rF161Y6derE/v37kUqlbcIuarOoRV9fv8lsV8iIJBJJmyQcgrNgYWFhm1RFtFotFRUVREZGNvsaV1fXVssYDh8+nHnz5jW5wGZlZbF//36GDx/+l6VDCXzo/Pz8Rm3TyspKjh07xpw5c9o0EBSOxbFjx5p8XjAWaokUnoDbnXNqtZrs7GyuXbvW4hvHnaDVajly5EiziYWZmRkBAQE6f7O2tqaqqorIyEhxEenfv/9DD7LbEsHBwbi4uBAfH9/k82vXrmX27Nno6+s/1C6NQqFgwIAB9OzZUzzv9fX1USgUeHl58dFHH/Huu+8CNypEwvYeOXJEJ+DZuXOnGEAaGBgwefJkxo0bByBWE4X3fv311zQ0NIiVL4G6IpFIePnll5k+fbq4hhoaGoprhr+/P3/++edfnlb5sKHVajl16lSzXcSW4OaE4FY0p+cPN86R5iqY+vr6Ot2V1iQUAOfOneOXX365K5XEhoYGtm/fTlhYGJ6enq1S0aqvryc5OVmk9dzcpbOxscHNze2ei39CZfa7775j8+bNvPLKK8yePbvRMcjNzSUzM5OEhAT+/PNPnTVTqOra2NjcNjgUOhZNiZUIHWZra+sWb3tISEiTsZBCocDPz++uO3hSqRRnZ2eWLVtGt27d+O9//0thYWGrhS+EdWTUqFHMmTOHzp07i9Xwu4Genh5BQUEsWrSIBQsWsGXLlrvyh5JKpTz//PMsXLgQKysrVCoVHTt2/FsrROnp6eHn58e8efOwtrZm1apVraYi6enp8eyzz7Jo0SIsLS1Rq9V06NDhjonFsGHDqKys5KeffiI3N5f27dvz9ttvN+lf01q0WWKRmJjI+fPn6d27t05GHh8fz4ULF+jRo0erKs23Q1paGjExMQwePPiegxC1Wk1WVlYj2S8B+vr6tGvXrlW8frhBJerYsWOTgVRVVRUXL14kJiaGoKCgvyTdRSqVMm7cOC5evNioCqJSqUhOTubMmTN31UpvDhqNhu3btzd7Ybm6utKzZ882DaIqKio4ePAg//rXv9rkOJSVlTVZrQJEHvitrXBTU1OGDRuGtbU1WVlZhISE4O/v/5c8L+4Wrq6uBAYGcvr06SaPb3JyMgcPHmT8+PEP9XcLnglNdYpuJ3V8azX01i6GXC5HLpeLFABBNvtml3uhLa9SqZr01DE0NNTZLj09PUxMTMRqZUVFhUiRurnNLVBhhO8Sijx6enrIZDIx0bkdhG0UPkvg7wv7RTB9lMlkrb4+NRqNSNm41QBV+Oybt/VO2yl8nkB/ENSchApvXV0dlZWVzW6nTCa7Y/VWcMFWqVQoFIrbmoreD2i1WlasWNFil92mUFVVxdGjR+nfv3+r6DnCTKJUKm2UDAmqXi1Fc50NlUrFxYsXOXnyJDKZjOTkZOrr6xsF5bW1tdTU1NC9e3cGDRrUZHLm7Ox82yqsVCrFzs5OnM24GR4eHvj6+rbq2IaGhmJlZdUo4LewsCA4OPiezhNhJmTWrFmMGTOGH3/8kXXr1lFSUiKe8zfTW4TfJ1xDJiYm9OjRg5kzZ9K/f39xrbhX6OnpERAQwHfffcewYcNYsWIFMTEx4myasC9uXTOE6zo4OJh33nmHIUOGiAUXAwMDQkJCRCd5QDTIbAn09fUxMTG5r8IgdXV14tp3t2wdqVSKp6cnn3/+OYMGDeL777/n7NmzImvh5nvErWt3x44dee+99xg1apSYHBoZGREcHKwjQCBIxt8MIyMjnn32WZ5++mnxvtCSe0FL0GaJRXJyMn/++WcjqTuFQsGRI0ewsLBos8RCCGrvhhN4M4RB5K1btzbLu/X29iYgIKDV3yOTyZg+fTpvvfVWk4vn5cuX2bBhA35+fg/cGKylePLJJ/nmm2+abK/m5+ezdu1aunfvfs8KIwKqqqr44YcfmnxOIpHg5eVFnz592uS7BFRUVLBr1y6mTJlyz1xwrVbLhg0bmlW1MDc3p0+fPo2+R6lUUlhYiLe3Nz169BD5lH8nSCQShg4dyoEDB5qdoVmwYAEDBw5sMUf1UYKQUBQWFnLs2DG2b99OdHQ0eXl5VFdXt6jqeOzYMfr27dvo71VVVQQFBZGamkq7du04deoUtra21NXVkZaWxs6dO9m3bx+pqamUlZVhZGSEi4sLXbp0YdSoUfTt2/eO7e+GhgaKi4sJDw8XlYeKi4tpaGjAxsaG9u3bM3ToUB5//HG8vb0xMDC44w2qoaGBmpoa8vLyiIiI4MSJE6I8eVVVFQqFAisrK3x8fOjRowcjRowQqUPNJQUCTTMyMpL4+Hji4uJISUnRqep/9dVXfPXVV81u1+OPP862bdtuGyDHxMSwcuVKduzYwSeffMLTTz/9QL1pGhoaOHr06D2bxcbGxpKZmanTebgThORVpVI1WutUKlWje2lzevlwo/vd1Lmv1WoxNjbmu+++E+c5Fi5cyHvvvadzXAwMDDA0NMTPz4/p06e3ugAobJ+vry8JCQmtfm9TcHR0JC0trU0+qykIAaCbmxtffvklH3zwAQcPHuTEiRMkJCSQmZmJUqkUvVYcHBzw9fWle/fu9O3bl3bt2t2XDqfQsXr++eeZMGECcXFxnDhxgosXL5KZmUlpaSlKpRKZTIaVlRUeHh6EhIQwZMgQndlcAebm5nz99dd8/fXXd7U9n3zyCZ988klb/LRmsXDhQtq1a9ciSuztICQEI0eOZMiQIcTGxnLgwAHOnz9PWlqaeJ2Zmpri5uZGcHAww4YNo2fPno32m6WlJfPnz2f+/Pl3/E49Pb37woxos+iltrYWiUTSiKZiYWEhtiTbCuXl5Zw8eZKYmBhCQkLuOsPSaDRcvXq1kVSaAIlEQseOHe/KhVAqlfLkk0/y9ddfNznEXV5eTnh4OEFBQTzxxBNtbujUFnB2dmbChAksXbq00Q2sqqqKI0eOEBERwdChQ+95oVKpVKxatYqkpKQmn7e3t2fQoEGtpr/dievb0NBATEwMBw8evGdqWnFxMb/++muzlAtbW1uGDh3a6O8ymYzs7Gz27t2LiYkJvXr1Eqtefyf07NmToKAgkpKSmqRvXLp0iS+//JJ58+b9ZZPtu4FWqxVN8j744AOR6idQqYyMjEQu781BllAF09fXb7HbvEqloqCgALlczh9//MFnn33WSKFMkHO+dOkSxcXFeHt73zaxqKqq4s8//+SDDz4gOTm50fNZWVlkZWVx6NAhfvjhB2bNmsXzzz+PnZ3dba+nc+fO8d1337F79+4mrxnBtDQrK4vDhw+zfPlypkyZwltvvYWzs3OT6/61a9dYsGBBozmtm2kud7qZtqRQ0qVLF5YuXUptbe1DWbuTkpLaRL0lMzOTwsLCVimy6evr4+fnx7Fjx0hMTCQsLAypVIpWq6WoqIjs7Gyd1xsbG2NgYEBZWZlOHKBWq7l8+XKTa4Genh4eHh5MmjSJrKws0tPT2bhxI+7u7jz77LNicUYwG0xOTiYtLQ0nJyedc06YiWkrKvZfEaampowfP57x48c/7E0RIXRGevTo8bA35b5i7ty5bf6ZCoWCrl270rVr1zb/7AeFNkssFAoFKpWK3Nxc8YYi6L83NDS0+eJ75swZtmzZgqenJ1ZWVq1eNDQaDTk5OSxZsqRZMzNLS0u6det2V5wzIXt/4403eO+995qsLF25coXly5fj4OBw22Hpu4VarRaroXfrm/Dqq6/yxx9/NLpZwI2b+OLFi8V5jLsNylUqFefPn+eLL75oMhEQ2qx3s3C25LzIz8/n+++/JygoqNmA5U6orq7m+++/58qVK01W4BQKBZ07d25ysTAwMKB379506tSJmJgYNm7cSFVVlcjJ/7vA0NCQyZMnExUVRVxcXKNjrdVq+fHHH+nYsSPjxo1rsbFSa1BXV0d5eTm2trYPLNDQaDTEx8fz8ssvEx8fj0wmw8nJicDAQDp27Ii+vj6ZmZlER0eTmpoqdgh9fX0ZNmwY/v7+eHh46BhtNYeGhgauXr3KqVOn+M9//kNtbS02NjbigDDc4MgLKjGBgYHNyrPCjUHdVatW8e6771JVVYW+vj7W1taiZK5UKqW2thalUklpaSmZmZl8/vnn5Obm8u9//xsnJ6dm93NSUhLHjx+nuroaQ0NDTE1NMTIyEpMpwbCpvLycsrIyiouL+eWXX9BqtXz66adNDuOamZnRq1cvnfVOpVJx+PBhkTbk6+t7W8nPLl26IJFIKCsrEylTNTU1GBsbY2VldcfOZnl5OcXFxajValF2VziXtVotdXV1FBUViUG2mZkZtra2aLVa8bdqNJrbfl9WVtZd8dhvRW1tLaWlpdTX17eYwmRoaMiAAQNYunQpW7ZsoUePHlhbW1NdXc3p06eJi4vTYSfY29tjb29PdHQ0MTEx4r7IyMjgwIEDdxw4dnFx4T//+Q+vv/46y5Ytw8XFhYEDByKXy/Hx8aF3794sXryYHTt2YGNjI85D1NfXk5+fj5ubGzY2Nn+rmbWWor6+nvLycpF2qVAoqKurQ6FQiEqXpaWlYufI1NRUlKqtqKiguLgYlUolxjPCdVVXV0deXh5GRkZUVlaip6eHlZXVQ/Nnqq6upqqqSixiq1QqHBwcMDU1RaVScf36dWpqatBqtVhaWopFO+E54Rw0MjLC0dERqVSKWq0W5WgFqXFra2sMDAyora2lpKQEpVKJtbU1FhYW6OnpiXYITk5OyGQytFot+fn56OvrY2VlRXV1NdevX0elUol/u5dOx18VbZZYuLq6oq+vz6ZNm9DT08PY2Jiamho2bdqEVCq9qxbl7aBUKtm4cSMODg5MmTKlke787aDVaiksLGT16tVs2bKlyddIpVJCQkIYMGDAXQfM+vr6PPvss+zcuZOTJ082uR0nT57kvffe4+2332bAgAFYWFjcEw1Go9FQU1NDWVkZ2dnZnDp1CkNDQ15++eW7+rx27drxyiuvMG/evEa874aGBk6dOsW8efP46KOPWj0ECDcCl9jYWF5++eVmh7ScnZ156qmn2mzA+lY0NDRw9uxZPv/8c95//30cHR1bdRNSKpWEh4ezcuXKZjnP9vb2PPfcc01+bn19PZcvX+bw4cOUlpYyYsSINqd8/VUwYMAAHnvsMbKyspqkjFVVVTF79mwKCwuZNGkS9vb291yUEDj1xcXFxMXFsXfvXn7++ecHllhUVlayfPlyUUq2Q4cOzJs3j9GjR4vXularJSEhgQULFrBt2zZqa2sxNDRk7Nix9OnTp8XbWlNTI9KVFAoF/fr1Y+TIkQQHB2NraysWVC5evMiFCxfo1q1bsz4mGo2GPXv28OGHH1JVVYWZmRkDBw5k6tSphIWFicHw9evXOXHiBOvWrePIkSNUVlayfv16nJ2dmTVrVrM3zrFjx7JlyxZsbGwIDQ2lf//+dOnSBW9vbwwNDVGpVKSlpbF7925++eUXEhMTRXGHU6dONelF4ebmxrx58xrt/27duond0CeeeIKPP/74ttd4XV0d27Zt448//qB9+/ZcuXIFFxcXnn/+ebp3737b9x4/fpzffvtNnEMYNmwYr732GnAjkD916hRr164V17vBgwcza9Ys8vPz2b59O2fPnqWmpgY3Nzeef/55unTp0uieUFFR0WZu9dXV1a1KLGQyGf7+/kybNo3169czZcoUOnbsSEVFBVVVVY1Uj5ydnRk8eDDx8fF89tlnBAQEIJVKSUpKol27dnekIAnKWx9++CFvvfUWixYtwtbWls6dO2NgYMCECRPIzc1l165dotO7INeZlpbG999/z8CBA+8psRBo0/n5+aISkqmp6QPvglRUVJCZmUl9fT1mZmZ4enre9nfl5OSwevVqUlNTxUH20tJSnJycePnll9FqtWzdupXo6Gjq6urw9vZm5syZ+Pr6cvr0adGwTqPRMHDgQP7973+LjuJTp05l7NixXLp0CbVazYgRI3jxxRfbjBrdGly8eJE9e/ZQXV1NQUEBxcXFvPvuu/Tt25dLly6xYcMG0tPTUavVdOrUiblz52JmZkZMTAzLly8nNzcXjUZDp06d+OSTTzA0NKSwsJAdO3Zw7NgxqqqqcHBwYPLkyfTp04fMzEw2bNjAhg0beOmll5g6dSoWFhYkJCTw4YcfsnLlSlxcXERVv0GDBvHkk0+yZ88edu3aRXl5OWZmZowYMYIJEybcF0nuh4k2Syw6dOjAiBEjWLp0KSdPnsTS0lI0j5oxY8ZdaTffCYIhT2VlJRMmTMDd3f2Ow0i1tbWkp6fz+++/s3DhwmapMgJt5V4MpiQSCdbW1sybN49p06Y16Yyo1WqJjIxk7ty5TJw4kZEjR+Lp6YmlpaWOAkxTEAYzBT3jsrIyioqKSExM5NixYxw9epTc3FyeffbZu04sAGbNmsWhQ4c4fPhwo/1VVVXFjh07UCqVvPrqqwQGBooVj9uhrq6O/Px8zpw5w2effUZSUlKTx8LY2JjBgwczceLEu97+lqCiooINGzZQW1vLrFmzaNeuHebm5rfd/w0NDeTn57Nv3z4WLFjQrKO6QqGgb9++zZpyVVVVkZOTg4ODA3379hWHfP+OkMvlzJo1i6SkJPbv39/kkHJlZSUfffQR586dY8qUKfj7+4uVnTsl3Wq1mtraWqqrq6msrKSsrIz09HTRTOjy5cvo6emxYsWK+/UTdSA4FG/btg24QQ2dMGFCo+6bRCIhICCA559/npSUFM6fP090dDQJCQl07dq1xd3MkpISfv/9d+zs7HjjjTd45ZVXGlURhVmlm2kiTSEvL49PP/2UiooK9PT0mDRpEosXL240IOvg4MCTTz5JYGAg8+fPZ8OGDRQVFfHnn3/Ss2fPZgUerK2t+eSTT3B0dMTZ2blRgCSXy2nfvj3u7u64ubnx0ksvUVJSQmZmJpcuXbort/jWoKqqCq1Wy/Tp03F2duaLL77g4MGD+Pn53Zam2K5dO958802MjY1JSkri/fffZ/bs2UgkEjHQ6927Ny+88II4BC6TycTz84UXXsDY2JgVK1Zw6NAhPD09G1GM73W24mbcPFzbUlhZWTF37lxcXFyIiIigoKCADh06MH78eHJycjh16pTYmZBIJEyaNAlLS0v27t1LRkYGJiYmTJ8+nREjRgA3EkJhrdXT06Nr1646hSSZTEa3bt14//33WbVqFSdOnKBDhw4YGhri4eHBe++9R7du3Thw4ACZmZnIZDIcHR0ZNWoUnTp1uuduRX19PZs2beKrr75CX1+f//73v4wePfqBB9GRkZG8+OKLZGRk8Pjjj7Nhw4Y7dgk0Gg1hYWEYGxsTERHBc889x6VLl0hMTCQ6OpqKigpeeukl9PX1+eqrrzh69CjOzs54eXnx6quvYmxsTHZ2NjNnzhSpP2q1mpKSEkJDQ/nggw8IDw9nw4YNjBo1qtUKmm2F5ORk+vbty/z589HT00NfXx+NRsPChQvp3r07EyZMoKGhgdmzZ9O/f3969uzJwoUL6dy5Mz/++CNSqZTKykqMjIxQq9WcOnWKI0eOMGXKFCwsLNiyZQt79+7F19cXX19fPv74Y0pLS3US8tDQUAwNDTl//jwODg5kZ2cTHx/P4sWLyczM5Pvvv+f111/H2dmZs2fPsm3bNoKDg1vUjX6U0GaJhbGxMRMmTKB9+/acPHmS4uJiLC0t6dmzJ507d24Tmo9MJsPIyIj6+nqRl5mVlcUXX3zB6dOnGT9+PJ06ddJp1QsmMdXV1ZSVlZGUlMTq1as5cOBAs99jYGDAgAEDGDdu3D0P0crlcrp3784777zDp59+2qy7d0ZGBgsXLmT79u307duXbt264e3tjampqY6Ur6DIcrPhUUZGBunp6Vy6dIm4uDgd19C2gKmpKV999RXPPfccly9fbvR8dXU14eHhxMfHM27cOAYMGICrqytmZmbiILKQBAnH4erVq4SHhxMeHt4sV1hfX5+ePXvy1ltvtTktRiKRYGpqilqtFtug5eXl/P7770RHRzNx4kTCwsKws7PD1NQUhUKBVCpFo9GI9Iz09HR27NjBjh07mh3Ylkql+Pr68uabbzZ7ExIogzt27MDc3ByJRMLkyZMZPny4zuBjbW2t6Ax986OpvwmP+Pj4ZlUxBP8WQW3odg+5XK7zb8Gk7W7g7u7O22+/TXFxMefOnWvWnGjr1q0cPHiQAQMGEBYWRkBAANbW1uL1IBwP4bcKNKfc3FwyMjJISEggKiqKnJwcnX3wICkRarWa1NRUiouLgRvBdP/+/Zt9vb+/v2iMJ7y3rKysVeunvr4+Y8aM4Y033rithOmd9sPWrVvJyMhAq9Xi5OTEvHnzbvt5Pj4+jBkzhsOHD5Obm8ulS5eIiooiLCys2XW0e/fud/w9gs9At27d2Ldvn3iMH4RTu4uLCz4+Pujr6+Pl5UV6ejolJSXNJhYNDQ0cOnSIpKQk9PX1RW8BwZNGEGoYOnSo2IkzNDQUTRIjIyN1/DaaUheCGxz2tvrtNzvBtxSCak+fPn147rnnGgW3kydP1vm3kZER48aNa5LeeeuMo4mJCbt27Wr0OiMjIyZMmMCECRMaPWdtbc3EiRPvWwGqpKSEqKgorl27BtwYeh8wYMBdzcFpNBpKSkpITU3F0dHxvvtZGRsb4+DggEajEWdS4uLiRLPEhIQE0XTYxMQEY2NjGhoaOHbsGLGxschkMlQqFRUVFajVanHdsLCwYPDgwcjlcmxtbTE2Nm6TuZ/moNFoKCoq4tq1azg5OTViwbi5uREQEKATK+Tm5nLt2jUqKytFB/SAgADxvhEfH8+8efPEjoFwPGtra8nOziYqKkrnPte1a9fbJuFSqZRJkyaxY8cOBg0axNatWxk6dCgWFhbExMRw+fJlHb8hHx+f+6pa9bDQptIzBgYGhIaGEhoa2pYfK8LCwoKwsDCqqqo4ceKEyDGtqalh//79RERE4OnpSceOHXF1dcXc3ByZTEZtbS15eXnEx8cTGxt7W26qIH323HPP3ZWRTVMwMTFh8uTJFBcX89NPPzU5zA03gseUlBRSUlL45ZdfsLS0FPm5ZmZmYnApOFUWFBS0eRLRFCQSiViNfPfdd7ly5UqT256WlsY333zDqlWr6NChg+g5YWxsLEoU5ubmkpiYyJUrV5qsVguQyWSEhoYyd+7c+9Lt0tPTIyQkBEdHR7Zs2SIGtw0NDURHRxMbG4u9vT2dOnXCw8NDDGjr6+spKioiKSmJ2NjYO+5/e3t7Zs2a1Ugt7WZUVFRgbW3N2LFjcXJyIjc3F2NjY53AqaKiggMHDpCTkyPySZt73Py8UqlsVjghPT2djz/+WLyZGBkZNftfExMT8d82NjYMHTr0npzX+/bty5w5c/jiiy+4ePFis9dkeXm5mLwJBmwWFhZiwn2zc2tJSQklJSVtWs29V2g0Gh2Kn0KhuO1+s7Cw0AnSysvLb3udNAVHR0eef/75Vvsi3AyVSqUzVD1o0KA7Hm+B8urj40Nubi4VFRVcu3aN8vLyVvkANAVDQ0PRpFQoqjwIA0mBY21hYSF2bm5HWygrK2PJkiVs3ryZoKAgjh07Rnh4uPi8MJCfm5uLh4eHqBYm0Icfe+wx3n33XaysrKipqUEqlTYZ9LfVzIBcLsfMzOyuqBhZWVl88sknvPvuu4/0oGlLYGBggI2NDSYmJujr62NnZ3fXFM3a2lr27t3LggULmDZt2n0ZAL4ZgvqPRqMRZV7hxrE3MTHhiSeeYObMmZiZmVFVVSXOVyxdupTFixfTu3dvYmJiWLdunc7nSqVSseBxO+WvtkJ1dTW7du1iyZIlvPjii7z++us6zwvFr5uhUCgwNTXl1VdfFZN5oStRVVWFubk5GRkZoklkQ0MDcrlclObt1asXX331Ffb29mIx+07XyrBhw/j+++9JTk5m3759fPfdd6LqU7t27fjqq69wc3OjoaGB+vr6+y5UUltbS0FBgdjFE+afCwsLuXr1KpWVldja2uLr69usiWRr0aarcnV1NYWFhaLU2c1wcXG5Z0c/wak2KCiIyspKkdsnQKVSiYH53UAwK3nxxRfvyUq+KVhaWjJr1iwUCgW//PILKSkpd7wIS0tLm62EP2jIZDKGDx9OXV0dCxYsaHL4VkBpaSmnT5/m9OnTd/Vdggv1v//97zY/DjfDxsaGDz74gJKSEiIiInQCUo1GQ15eXrP0ppbA2tqaF154gRdeeOG2r7OwsMDFxQUzMzOKi4vJycnB19dX5zX5+fl89tlnbeoUrtFoqKysbLUWvtAmv5fEAm5w7OVyOYsWLeLUqVN3DKBra2vFiuGjAolEotOpEjp3zUHovgjQ09NrVWdI8Eq5GyW7m3H9+nXS09PFbamtrWXz5s13rJJnZGTonE/Xr1+ntLT0jomFcPMTBknr6upEnwhBpvdmdSvBq+J+JhYSiYTs7Gz27duHvr4+aWlpdOvWDRsbG1JSUsjKyiInJ4e4uDhsbGwIDg5GLpfj4eFBbGws+fn5nD17VkeG1tbWlrCwMHbs2MH169fRarXY29uLBbk9e/awYcMGXF1dqaqqIjg4GB8fn0ZJhCDpe69wdHTEzs7urpOUv6vS0q2wsLBg5MiR1NfXY2JiwsCBA+966Fa4P+bn59+TG/y9wtTUlF69enH69Gk2b96MnZ0dlZWV9O7dGxMTE9zc3EhMTKS6upqYmJiHrtRXXFzMmTNnKCgoaPF+s7Ky4rHHHiMiIoKqqioMDQ0pLS1l/Pjx6OvrM378eHbu3ElNTY0Y/Pft2xeFQiGKqaxfvx5vb29qamrw8fEhMDCQrKwsMjIyyMjIQKPRcOzYMbp06YKjoyOWlpYMHTqUZcuWYW5uTqdOnZBIJHh6ehISEsLq1asJDg6mrq4OS0tL+vTpc1+V5bKzs/nll19wdHQUKW9FRUX8/vvvrF69moKCAtq3b8/cuXMZPHhw27CL2mC7gf8zBjt69KioJCCVSqmrq8POzo4ZM2bcc2IhVOsHDRpEbW0t3377LVFRUa2u6DUFuVyOv78/L7/8MhMnTrwv3Elra2tmzJiBvb09q1atIioq6oEsLG21+CsUCsaOHYuxsTFLliwhMjLyjooerYWZmRmDBg3itddeuy1l5F6h1WopLi6mXbt2fPrpp8hkMo4cOdJmv8fe3p6pU6fy73//+46LhoWFBZ07dxY7Ot7e3nh5ef1PuCmPGDECa2trfvzxRw4cOPBAXFYfZDAklUpxd3cXu11VVVWkpKQ0cl8XkJubq0OXdHJyalUAo6+vj5ub2z3fqNLT03XW1Y0bN7Jx48ZWf05NTc1t1+eioiLi4uK4fPkycXFxXLt2jby8PJRKJUqlkvr6evHRFipIrYFEIsHCwoLq6mri4+MJDQ1l6NChGBoakpGRwblz52jXrh1qtZqLFy/i4uJCx44def311zl58iQpKSl0795dx03e1tZWFPQ4fvw4enp6dOvWjdDQUPr06YNcLuf48eOkpKRgZmbWLPfa0dERb29v8vLy7mmIOyAgoMWceKHYIlBKBIl5uDGDcO3aNZKSklCpVDg5OdGhQweMjY2Ji4ujurpaVNJxcHCgc+fOImVFqVRy8eJFiouLkUgk+Pv7NyqsPGxIJBJ69epFr1697vmzysrKxH14v2FiYkJAQAAODg7iTJWFhQWdOnXCyckJX19fjI2NiYyMJC4uDktLS7p3746lpSUvvfQSx48fJyMjgx49ejB9+nTxnmRtbc3o0aPF77Gzs6N3797NCkG0BUpKSrh06VKTz9nZ2REaGoqDg4PO3yUSCS+++CK7du3i4sWL1NXViQUxhULBtGnT2LJli2gm1759e1Eso3Pnzmg0GnG+1NjYWFSNzM7OJjIyEhcXF6RSKdHR0WKSLpPJeOqpp1i2bBkTJkwQ59gEldAdO3Zw+PBhkSZ/v+9H+fn5HDlyhEGDBiGTydBoNJw8eZINGzZgb2/P4MGDOXHiBJs2baJ9+/Ztcu21WWJx+fJlfv/9d0xMTKioqKC+vp6QkBAxeG6Ltm1dXR0VFRWYmJgwatQoTE1NWbVqFceOHWtWMrYlMDU1pU+fPkyZMoUxY8a0SSWoOVhYWDBx4kR8fX3ZsGEDR44c4erVq01qed8L9PT0sLe3p2PHjm3qjm1gYMCwYcNwdHRk9erVHDx4kNTU1HvmCerp6eHv78/w4cOZNm1am91YmuuqCHxNuVxOUFAQ8+fPZ9myZezbt4+MjIy7/j49PT0CAwOZNGkSL7/8cotai0Kn7dSpU+IcgVKpxMLC4n+iIhgWFoa7uzuBgYHs2bOHixcv3peE29TUFF9fXzp37vzA9qtUKsXNzY2goCDOnTtHUVER4eHhdO3atRFHuKKigqNHj4pdKQcHB/z9/Vs1XySVSttEvrCsrKzRXMq9+AU1hYSEBP744w+2b99OfHy8mDiYmZlhYWGBpaUlCoUCmUyGWq0mNzeX69ev39U23O12u7q6Nil8MXjwYAYPHtzk+0aPHq0TdI0ZM0b8fyHRFFSibsXAgQMZOHDgHbdNKpUyYcIEzp8/f9ceUSYmJvTu3RtPT887vlar1VJfX8+KFSvIycnBycmJuro6URr36tWrrF+/npqaGuRyOWq1ml69etG/f3/Wr19PdnY2/v7+lJaWkp2dzWuvvSaqa+3atYvk5GTRkf7IkSN8+OGHjQbW/w5QqVTk5OSQlJT0QAa/bW1txQF5gG7dugHorD0jR45k5MiRjd77+OOP8/jjj4v/vvk89vT05LPPPhP/LQw03y80NDSQlZVFcnJykxX19u3bi3SmW2Fpacnzzz/f5HPW1ta89NJLTT5nYGDQrBdHnz59bqvc2KFDB7777judv8lkMnx9ffn3v//d7PsEVFVVcfr0aTFBv5cio1Cg8fHxQSqVUlRUxMmTJ9Fqtbz22ms89thjLFmyhD/++IP8/Py/VmKRl5eHnp4e7777LgcPHkSpVDJ37lxOnDhBeHh4mwQKDQ0N4iCckZERw4YNw9XVlZ07dxIREUFMTAxlZWUt5vkZGxsTGBjIgAEDGDt2LKGhoQ8k4DAwMCAsLAwfHx8GDBjA4cOHiYqKIjk5meLi4rvmKcrlcpycnPDw8MDHx4cuXboQFhbWZo7nAvT19QkJCcHd3Z2wsDAOHjzIhQsXSEtLa3WCZGJiQvv27enatSvDhg1j2LBhbdpybe54arVaKioqUKlUyOVyOnXqxEcffUTnzp3Zt28fFy9eFAdEWwKZTCY6BI8bN46hQ4e2+MZRVlZGQkICFy9exNLSkuzsbGxsbHBycvqf0V53dHTk7bffpnfv3uzfv5/IyEgSExPJzs6+66RVUGVzc3PD09OTwMBAunfvftdVIq1WK869tPT9QoXwxRdf5OrVq5SUlPDnn39iampK//79sbe3R09Pj/LycmJiYti8eTNpaWkYGBgwatQogoKCWkX3uZlDfS9Qq9U65/7jjz+Ov79/q/dbx44dmwwQU1NTWbRoEZs3b0apVIpCDQEBAbi7u2NnZ4eJiQmGhobo6+tTUlLC2rVr2b9//z3/tr8Lxo0bx4YNG4iMjGz1PUMmk9G3b18GDx7c4irz9evX2bBhAzt27KBdu3YcPnyY48ePU1tbS3JysiikYmFhwbp16zh9+jS+vr5UV1djZWXF1KlTsbKyYubMmVy5ckWsCC9dupRu3brh4+NDTU0NP//8sygC0hy0Wi2xsbEcOXIEMzMzevfu3SggunLlCidPnqSsrAx9fX1xyFw4hwVxhPDwcMzMzBg8eLCYZBUXF3P69OkmDSHhBo++ua7jzdBoNGRnZ4tGhHl5eZw8eRKlUomhoSFnzpzhm2++afK9AwcOpHPnzs1ez8LvqK6uFj1wKisraWhoEKvrfn5+uLu7t3hNKCsr48qVK6SlpVFWVkZDQ4M429ahQwfatWvX7BpQUVEhqtlZWlrSo0eP26od5eXlsXfvXkpLS3F0dGTcuHHivV+tVov77fr16+Tk5HDixAmRUXDq1Klm99vQoUPx9/d/pDv+165dY8mSJYwePfqe4zdhtkYocl6+fJmoqCi6d+9OSEiISN8U/I3aAm2WWGg0GnEYyMDAgOLiYpRKJYGBgaxbt67ZgeXWQDAXqqurw8jICD09PXG4dsCAAZw+fZr4+HhSU1PJy8ujpKSE6upqGhoa0NPTw8DAACsrKxwcHPDy8sLf358ePXrQvXv3B25SIrTGxo4dS9++fYmNjSUmJoYrV66QmZkpbn95eTk1NTUi/19w6xWGkqytrbGxscHW1hY3NzfatWtHu3bt8PHxuWcO/J2239bWlsmTJ9O/f3/Onj1LdHQ0ycnJZGZmUlBQQFlZGdXV1SItTi6XY2pqiqWlpaiG4efnR1BQEGFhYQ+8Qi9cSGZmZkilUpycnHjhhRfo06cPJ0+eJDo6mqtXr5KdnS2ez/X19UgkEhQKBebm5tja2uLu7o6fnx+hoaH069cPW1vbVi1qwvCmmZkZJSUl1NfXNzJ9tLa25sUXXyQ/P/9+7IpWwczMrM19aeBGFTYsLIzQ0FDi4+O5dOkSly9f5tq1a+Tk5FBUVERZWRlVVVWiS7UgK6ivr4+xsTGWlpbiNSHMgrRr1w5fX188PDzuiZN/+PBhysvL6du3LzY2Nk2+5tixY2RnZ/PEE0+IQ35CkpCcnMy6devIy8tjxYoV7Nu3D2dnZ2QyGSUlJaLikIWFBUOHDmXatGm4u7vf9fbeC8zMzHSS2hEjRjBjxow2uVlrNBrWr1/Pzp07USqVyGQypkyZwqRJkwgNDcXMzKzROnDt2rUHmlTo6ekRGhr60PZ/S+Dq6srcuXOZO3cuaWlpLX6fQMGYOXMmnTp1avH7BCM9wVzQ1dUVCwsL6urqxDkaYcDe2dmZlJQUUQ3Nz89P9AeytrYWqW2CSpZCoRAVhV588cUWdSuio6P59NNPMTAwYMGCBY0Si4iICNGsUV9fn7CwMLp06SKe1yqVioiICObMmYOXlxeBgYFiYlFQUMCaNWv4448/mvxuS0vLFiUWKpWKtWvXcvDgQfLy8sjPzxd/Z01NDQcPHuTgwYNNvve7774jMDCw2c9WKBTk5eWxc+dODhw4QGJiopgMmJqa4ubmRvfu3Rk/fjz9+/e/7dCxRqMhKiqK3bt3c/r0aZKSkiguLqa+vh4jIyNcXFwICgpixIgRIlvkVpSVlbFt2zaWLl1Ku3btmDdv3m0Ti8zMTL744gtSUlLo1q2bTlGxtraW3377jUOHDon7TZjdqqqqYu/evezdu7fJz125cuVtDTAfBQhxYFvAwMAAuVxOQUGBmPyVlJTQtWtXMUYUZK/byhunzRILCwsLFAoFmZmZODk5cfHiRXbs2IGxsTGFhYVtNmSnUqnEk12AMITUtWtX0RRHCMxrampEnXADAwMsLS3FxMLNze2hmLncDKGqOmDAAPr27UtpaSlZWVk6iUVtbS319fXA7RMLBweH+zoE1BT09PRwcXFhwoQJDB8+XKwyNJVY6OvrY2JiopNYODo63ndll+YgqGzdTDVRKBQEBATQoUMHiouLSUtLE4NapVIpJnhCYmFnZ4ebmxteXl539FBpDlZWVri7u5OSkkJZWRkuLi54enrqBHE2NjbMnj373n/0XxzCsHNwcDBBQUFUV1eTlZUl0mDKy8upqqoSF0EhsVAoFBgZGWFlZSVeEw4ODpiYmLRZ5erAgQNkZGTQsWPHZhOL06dPs3HjRkaMGCHeyIUk/NVXX0UikfDDDz9QXV1NWloaaWlpaLVajIyMsLOzo3v37vTq1YuRI0fSoUOHh3ZtuLi46KwlTSnB3S2uX78umkEChISEMHfuXNq1a9fssRKkqh8UZDJZkxSIvxpGjhxJRUUFP/30ExcuXLjjHIq1tbVocti3b99W0X4tLCyQy+UkJSWJ8x0VFRUoFAosLS25dOkS+fn5WFhYiN1eYa5SUNq5Faamptja2hISEiL6QhQWFt5x2F+4ppydnUlOTqawsBCVSqVzvQiGivB/JqQ3e1qo1WpRPt3ExAQfHx/xvba2towfPx43NzdRZS8qKqpJufXbQehyWltbY21tjZ+fH9euXSM2Nha5XI63t3ezQbC3t/dt7yf19fUsXryYTZs2oVKpxKJiTU0N6enpxMTEkJSUxNWrV5HJZAwaNKjJzxGGj3/44QcOHTpERUUFjo6O+Pv7Y2BgIMrDJyYmcvbsWbKysnjppZfuu8u2VqvFxsYGGxsb/Pz8SE9PJz4+Hn19fdq1a9dsJd/Dw+OO92GlUsmiRYsYP3686Ivj5eXFkCFDyMnJISIiAiMjI/r06SOqUubn53Pw4EE0Gg2DBw/G2dlZ5zPXrFlDeno6s2fPFs9fjUZDZmYmJ0+eJCcnh5qaGoyNjbGzs6NTp0507NhRvAavX79OVFQUiYmJHD58mIyMDHbu3ElGRob4e4KDgxk6dGir6LF2dnY4OzuzZcsW0tPTOXnyJH5+foSFhYnXQl5eHlKptM2M+trsruXt7c2wYcMwNzfH1dWVCxcusHbtWtRqNX5+fm3KmW+u7SsMLt5vXej7BT09PfFCuhdjvocBQVHhfnMt2xrNZeh6enrY2dlhZ2d337dBX1+fTp06YWNjQ0VFBVZWVo80vzgqKorw8HC6devGkCFD7jo4lkgkGBsb4+fn1+J28I4dOwgPD+e5555rc++TlsDIyIiCgoJG55VGo6G4uJhr166hp6dHcHAwY8eOxdzcHK1Wi6GhIdbW1nh6eormjA8Tzs7OODs7k5mZiVqt5tixY9TW1t6ThK2A7OxsSkpKxH00YMAAUQaxOSiVyrtWBLs1yPg76cbL5XKeeeYZXF1dOX78OOfPnyctLY2CggKqq6vRarWYmpri6OhIQEAAPXr0YODAgbRv377VRShbW1smTJjAkiVLcHd3p7a2FisrKwwMDOjSpQtJSUl8++23on9H9+7dGwVft8LMzIwXX3yRo0ePEh8fD9yosL7++ut3XDfs7OxwcXEhPj6egoICKisrxUSmsrKStLQ06urqcHNzIz8/n+joaMaNGycGciqVisuXLyOXy8XuiwAbGxuxWCYY0H7zzTetTizkcjnPPfec6N9RVVXFtm3biI2NxdDQkP79+/Pqq682+V4HB4fbBsgCFaxDhw48++yztG/fHhMTE2pqakhKSmLLli2cPHmSs2fPsnnzZrp06dKkgE58fDxLly5l7969og/D4MGDcXNzQ6FQUFlZSVJSEr/99htxcXF8++23GBkZMWvWrPtG1TUwMGDKlCki9amiooKtW7cSHx+PkZERgwcPZsaMGU2+18nJ6Y6JRXV1NV9++SWVlZVcvXqV1NRUJBIJ165dIysri0uXLlFaWkpqaipz5szB3t6ewsJCNm3ahFqtJiAgoNG5vXHjRo4dO8azzz6LtbU1Wq2WK1euMH/+fC5fvixaBlRXV1NXV8egQYPEjpvwGwWaUlpaGjU1NaKpsvB7rK2tWy2n7u7uzhNPPMHSpUvZsWMHvr6+PPPMM3h5eQE3zsmkpCSsra3bbPi+zRILFxcXbGxsMDAwQE9Pj8mTJ+Pn50d9fT2dOnWiXbt2bfVV/+AftBiPioO1QqEQnWYvXbpEbW3tI3vNJCUlsWLFChoaGpqtkt0vHD16lJUrV9K7d+8H3g5XqVSkpqbqqADB/7lvL168mO3bt+Pm5sbcuXMZNWrUA6dgthQGBgYMGTKE6OholEolSUlJ7N69m6eeeuqeP7uurk4n8TI0NLxtUlFdXU1cXFyzfPc7QV9fX+fzBZnXvwOEDt/AgQPp2rUrV69eJTc3l9LSUurq6holrW5ubneVHAr0z1mzZnH69GmxYzBw4EA8PT0xNzfn2WefJS4ujoaGBlxcXAgMDMTU1JSJEyfqdCCefPJJLCwsMDQ0RCKR8MQTT+Dm5kZeXh4qlQpbW9sWFSOExAJuVJOLiorEwDk9PZ3r169jZWVFWFgYhw4dIjo6WgzKtFotDQ0NJCYmolAoGg3ICr9XoVBgYWGBRqO5Ky8WYVhfQEVFhahcJBSv7tanKSsrC3d3dz799FMGDx6skyj27t0bOzs7rl27RnZ2NrGxsSQmJtKzZ0+dz6ipqeGPP/7gyJEj1NbWMmXKFN588006duyow+YYPHgwPj4+vPLKK+Tm5vLLL7/Qq1ev2/oz3Qv09PR0nNfLyspE2o5MJrun/SZAMAF84403qKur49NPP+X3339n8ODBvP3222zbto2TJ08yYsSIu6aVb9iwgZ07d4rO8IJHSG5urjg2IMDOzo7hw4fTr18/fvvtNzIzMxk9ejTjxo3TUeNqrdeEqakpjz32GE5OThQXF+Pq6kqHDh3E80UqlTJ27Fi0Wq2YbNwr2iyxEHjOAh61yvWjgtOnT7N+/XrGjRtHv3792pwqceHCBdavXy9yY6VSKT/++GOTN6OysjLCw8M5dOgQcGMxHjRoEM8991ybbtO94K+sqqRSqYiOjiYiIkKn8nP58mXGjh37yCYWfyfExcURERFBTU0NZ8+epaysjBUrVjTqKAmGQ7t37xYH4gRoNBqxrd3Q0ICzszPDhw//yyYVAiZPnsymTZtITEyktraWL7/8EgsLC4YMGXLb60qj0ZCfn091dTVOTk6N1g7BbFJATEwM9fX1On4PAhoaGrh06RIrVqxotd+KALlcLhrKqdVqzp49q1Pd/jtAIpFgZmZGly5d7luwJyicNccI6NChQ5Oc+r59++r8+1bJVsEXorWwtbUV5T7z8vIoKioS6UxJSUmUlpbi7e1NaGioOH9ZU1MjJpWFhYUUFhZiaWl5X0xYHwSmTp3KoEGDGlG6jYyM6NatG927dyc7O5uioiKuXr3aKLFITEzk1KlTFBcX4+Pjw9NPP90oqYAb8d2wYcN47rnnWLBgAampqWzYsOG+nWsPChYWFjz55JPk5+ezceNGrl27xmOPPUb//v1FatK9eFklJiYik8kYNWqUOM8kmGLW19frrIOmpqaispUQE7i5uREcHHzPnSFLS0v69evX5HOC0mdbxkptFpVmZGSQkpJCp06d7uvQ8P860tLS2LRpkygj29aJhampqdji27FjB1lZWSxZsqTJ18pkMlG9KCkpicOHD2NiYvKXSiz+ylCr1VRVVWFqaqpzY1OpVE0GWf/gwUOlUpGZmSmqVAkzH7ded1qtVpRMnj17tk4lSmh/C3zvwsJCDh06RJ8+fbC0tHzoc17Nwdvbmzlz5jBnzhxKSkqIjo7mvffe49ixY/Tt2xdvb29MTEzQarXiEG56ejqXL18mISGBrl278q9//atRYuHq6oq7u7tY3T5+/DirV69mypQpomiBIC+7f/9+1q1bx8WLFzEyMrqrOQuJREK3bt24ePEiVVVVJCcnM3/+fKZPn46XlxcKhQKNRoNSqaS0tFQMoP/Bg4dGo+HUqVMkJyczffr0277WwMAAR0dHLCwsxI6FgCtXrlBWVkavXr0IDQ3F0NCQnJwc0tPTxQHzxMRE1Go1BgYGj+Swr0Kh4IknnkAulzcZFJqYmIjFqerq6ibNdmNiYsTB/x49etCuXbsm1yOhMzZp0iS+/vprqqurOXHiBBUVFQ+FctoWELpJcrkcuVyOvb09169fF9cEMzMzGhoa7skKIDQ0lF27dvHVV1/x7LPP0rNnT0xNTZHJZA9tfu5WtEblsKVos1+WkJDArl278PT0/CexeITh6enJtGnTqKurIz4+/rZqXoJLZUhICBEREVy8ePEBbumjD7lcTufOnfH399cZBnZ2dm4TLntzUCqVxMTEiCZe5eXlGBgY4Ofnx7hx4/Dx8Wl0c9FoNCQmJrJ9+3auXr2KUqnEzMwMNzc3evfuTY8ePe6YDF2/fp3ly5cTHx/P9OnTGw2PFhUVsX79etHHwsHBgf79+zN8+PBGn339+nUOHjzIkSNHqKysxN3dnTFjxqBSqdp0kfTx8eHll19m3LhxLF26lNzcXJ544gmcnJx0XieVSjE0NMTR0RE/Pz+dCpPgKePl5UVaWhrp6em8//77uLi4oFAodCgYMpkMU1NTXFxcCA0NpXfv3tja2j6UzpvglVBWVsb8+fMpKSkhKiqK1NRUdu3ahYWFBfr6+iKtpLq6mvLycoqLi8VZoaaGiY2MjJg4cSJRUVFkZGRQVFTEokWL2Lt3L87OzhgbG1NWVkZ2djYZGRkUFBTQvXt3goODWbx48V39lkmTJrFjxw5SU1Opq6tj1apVnDlzBktLSwwMDHRM+Hr37s0nn3xyr7vvH9wFNBoN27Zto6Cg4I6JhUQiwcHBAUdHR3Jzc8Uuu+ALVF5ejo+PDx06dMDKygq4oSTVrVs3pFKpONNhbGzcrAfCXxkuLi44Ojo2uzbo6emJ66YgenMr0tPTRUNOPz+/23bxJBIJLi4uuLq6kpaWJnZBHtWuhTDDJ/y/EOwbGRnpBNv3opQ0adIkUlNT2bFjB9HR0fj5+TFkyBCGDx9+X5QVm4NWq+X69etERkaSnJyMnZ0d/fv3x9XVFZVKRWVlJXK5HCMjozYRO2mzxEKpVFJRUXFfzeXuB4SA6Z133qG2thZ/f3/efvttHTfShoYG1q1bx+bNm1GpVDz99NOMHz/+oQ9Y3g/o6+uLi7CBgcFtAxqpVIqxsTHGxsZYW1v/z3guXLx4kZUrVxIUFMSTTz4p7q/WQiqVNjks5e7ufl8DyZiYGBYtWkRSUhK2trYYGxuTmprKsWPHOHHiBIsXL6Z9+/biAqPVarl48SKzZ8+mtLSUdu3aIZPJuHLlCseOHSMjI0M0XmoOpaWl/PDDD6xevZrRo0fj4eGhk7xkZ2fz5ptvcu7cOdzc3DAzM+PUqVMcOXKEuLg4/vOf/4g3gYKCAn799VdWrVolzqZcuHCBmJiYNjdQE9Ri2rVrx7lz50hNTWXQoEGNAhHhRtTUcZNIJLi6uvLhhx8yb948MjIyuHLlSpNKS0Jl0NjYGBsbG7p06cLrr79OaGjoQ+lsmJmZMXXqVJydnVm8eLFIBysrK7vt+8zNzXF2dm72fvDYY4+Rl5fHwoULyc3NJTs7m+zsbNEQr6GhQVT/GzFiBHPnzqWoqIg1a9ZQUlLS6t/RqVMnPv74Yz788EMyMjIoKyvjzJkzwI3rUAge5HJ5I/fef/DgoFKpOHTokI5C0+3g4OCAk5MTiYmJFBYWUldXR0FBAXl5eTQ0NODj44OlpSU+Pj7ExMQQFRUlqkfFx8cjk8nw8PBoNW/9rwBBvre5e8Wtnja3zhWp1WrKyspEg0VbW9vbekhJJBL09PRwcnIiLS2N+vr6e6IJ/RXQVMxyu312O9yagAjr/vvvv8/w4cPZvXs3hw8fJjIykr179/LSSy8xbNiwu9/4FkKr1RIXF8eSJUs4deoUFRUVor+Zq6srtbW1LF68GLlczgsvvHBHwYWWoM0SC3t7e2xtbcnJyWmTDXtQEA7+3LlziYiIICIiQlQiEKCnp8fAgQNxcnJi0aJFpKamNpn93wvS09PZtWsXZ86cobi4GIVCgZubG3379mXIkCGNBsekUik7duxg165d5OXl4eDgQN++fXnmmWd0FsmKigoiIyOJiIjgypUrVFRUYGpqSrdu3ZgwYQK+vr5/6TmEe0VrhzSLioqIiIhAX19fVPK4FcXFxURGRmJkZERdXV1bbKYO7ncA6eHhwYsvvoi+vr4oUaxUKlm4cCF79+7lyJEjuLi46JxHa9as4fLly/z000+EhISgp6dHbW2taOh4uw5LZWUly5cv57fffmP48OG88soreHl56Szq8+fPZ9++fXz66acMGzYMfX19srOzWbJkCRs2bMDX15dnn30WjUbD+fPnWblyJe3ateOtt97Cy8uLmpoaNmzYwNq1a9vcxR5urBOdO3cWh+dak0TX1tYSERHBjh07KCwsvO1rBYfj+vp6UXq6pKSEr7/+mk6dOj2Ua9XS0pLRo0fj7+/PuXPnOHr0KNHR0eTm5lJZWYlGo8HExARHR0fRmDM0NJROnTo1qzJibm7OlClT6NixI9u2bePUqVNkZGRQXV2NoaEhzs7OhIaGMnjwYPr374+bmxvR0dFigtda6OvrM3bsWDw9Pdm+fTvHjh0jNTUVpVKJVCrFzMwMOzs72rdv36yj9sNEbW0thw4dYv/+/aSkpFBfX4+FhQUdO3Zk5syZuLi4IJFIqKur49KlS+zfv5/4+HhKSkowMDAgMDCQcePG0bVrV/EciomJYfny5QwYMAA7Ozt27tzJ5cuXMTQ0JDAwkGnTpuHm5oaenh4ajYYNGzawfv16fv75Z/bs2cP+/fspLy/H1dWVoUOHMmrUqEadxZSUFHbs2MGZM2coLy/HycmJkSNHMmzYMJ1zY//+/ezatYvLly+TnJxMbm6uzixG586d+f777xtdd/b29jg5OaHRaMjLyxOlUYuLi0Warr6+PgEBAYSHh3Px4kVR/jwhIUF87lE0U7tbeXMBwjoj3CMNDQ3vSM+RSqXibJharb7ruadHFRKJpMmYQqA135pcCLRKJycnQkNDmTZtGrt27WLNmjVotVp8fHzabGC6OeTk5PDbb79x8uRJ+vTpQ2FhIeXl5aKQgYGBAVqtlmPHjjFs2LC/VmIREBBAYmIiv/76K+np6bi4uOicpN7e3s1qvz9MCENvwpBTREREo9cIXDzBEK2tkZiYyKJFizh16hS+vr54enpSXl7O6dOnqa2tJSQkpFFi8ccff5CVlUVAQACenp7ExsZy6tQpMjMz+e9//yu+7urVq/zwww9kZmbi6+uLu7s7GRkZrFixgtTUVObOndvmztx/JbR24c3Ly2P37t0tMj96VOHg4CAOswrXqFarZcyYMZw9e5bExERqamp0Eov8/HykUikBAQGiKINWq0Wj0aBWq5u8IUmlUurq6li5ciUrV65k4MCBvPrqq2LHQ0B8fDy7d++ma9euTJ06VWzHu7m5UVVVxcSJEwkPD2fSpEmUlpYSGRlJfX09w4cPp3///iIdZ9KkSZw9e7ZNzDibQo8ePURX25aiurqa+fPns27dOoqLi7G3t+fJJ5+kc+fOWFhY6ARKarWa6upqcnJyOHz4MCdOnKCsrIzjx49z8OBB3NzcmgzUDQ0N2blzJ/X19Uil0rvuoN0OAg/d09OTYcOGiWaRAtVJ8BMxNDTE1NQUExOTOybIVlZWDBgwgMDAQCoqKqitrRW9SQQzTQsLC3F/d+zYkXXr1qFUKrGyskIul7Nt2zYiIyOZPHkyQUFBt/0+uVzO999/z9NPP83MmTOpra0VpWdlMplIBbgTZ/zUqVOsXbtWlL6cP3++mGzfDyiVSr788ks2b96MkZER/v7+GBoakpWVxaZNm3T8bcrKyvjxxx+5cOECHTp0wMPDQ5TJjI+P55133hED9oqKCuLj44mLixOTQ2dnZ7Kysvjll1+IiYnh559/FiW3c3NzOXz4MG+//TZxcXEEBARgb2/PxYsXOXv2LEVFRTrSqZGRkXz99dfExMTg5eWFo6MjaWlpfPDBByQlJTFr1izxfqpQKER1qRMnTmBra6ujKNdcF1dILCQSCXl5eaJEaElJCb6+vqLpamBgIAYGBiQnJ1NRUSF2aQ0NDR/Ztf5ekyGZTKZzzqpUqjvSfgTaI/yfctbdoi0N2R4E9PX1kcvllJaWil0eAdeuXaOioqLJ3yN0oQXqmp2dHcXFxZw5c4akpKQmEwvh2KjVanFNvFtkZGRw+vRpRo4cydy5c1m1apVOnCt07fbt29dmiWKbJRanTp3i008/RalUsn379kYDRUuWLGH8+PFt9XX3BS0JQu9HxfDy5cucPHmSUaNG8dprr6FQKFCpVFRVVSGVSsVhs5sRGRnJTz/9RN++fZHL5eTk5DBjxgx2797N1KlTxeDPy8uLzz77TBxG0tPTo7Kykm+++Ya9e/cyYsSIv3Vi0RoIyj6XLl26rWPoow49Pb1GC5XAnzUyMmqy8jJ48GB27tzJrFmzeOmllxgxYoQYGDe16Onp6SGVStm4cSPLli2jZ8+evPbaa7Rv375REnLmzBkqKiro27evTlAnl8vFYDonJ4fCwkIqKipISUnBwcEBPz8/UVVDIpHQvn17nJ2d71v1sbUD9SqViu3bt/Pjjz9SWVlJhw4d+Omnn+jYsWOz1UG1Wk1DQwPjx4/nww8/ZOPGjdTV1XHmzBnGjRvXZGIhDI3fbwheNW05/yOXy5k/fz4jRoxg8ODBt01GDA0NG1FkiouLSU9Pb9RlbgoajYarV69ibGyMt7f3XZ0nmZmZ/Pzzz8jlct544w1RueV+Vry3bNnCxo0bCQkJ4c033xQNwOrr66moqNApOllYWDB37lz09PSwtLREJpNRU1PD5s2b+e677zh58mQjVaaoqCjeeOMNnn32WWxsbKirq+P9999n9+7dnD9/nqFDh4rXeF1dHRcuXGDp0qVipf/ChQu888477N+/n9GjR+Pm5kZhYSFbtmwhOjqaWbNmMX78eAwMDKioqGDBggX8+uuvdOrUieHDh2NgYED37t0JCgoS700+Pj689dZb4jbKZLIm770KhUJngLu0tJRr165RVlbGkCFDRLpy586dMTAwoK6ujqSkJNEx3MzM7JFNLO4VMpkMY2Nj5HI5DQ0NlJeXN1IquhUajUakm8pksnvyPVAqlY+Up4ytrS22trYcO3aM5ORkunbtikKhoKamhtWrVzcqaGm1WmJjYwkICBCvH6FoUl5ejp6eXrOJmYWFBaampqSnp1NcXHxP9EzBVDY0NBRHR8cm6amWlpY0NDS0GQOjzRKLvn37sn///mafb+tBlXXr1hEfH8/s2bOpqqpiwYIFODs7M2vWLGpqavjwww95++23CQkJ4fDhw/z4448kJCRgb2/Pc889x7Rp0/4yMwECx7eiogI9PT2xiiOYATa1oPbp04dhw4ZhaWmJRCLB0NCQgQMHsnHjRtLT08XEwtzcHH9/f6RSqfg5tra2Ymu4rKys2e/4X0FpaSm//fYb4eHhJCUlUVBQwMKFC/npp5/E17zxxhu8/vrrOgGEVCrlwIED/Pnnn8THx2NqakpYWBhvv/22ToCrVCpZvnw5hw4d4rfffiMyMpIVK1aQlpaGiYkJ48aN41//+pdORy89PZ3169ezb98+CgsLRY3r6dOnNxrmValUHD9+nJ9++on4+HiRtvPMM8/w2GOPNQp6NBoNly9fZs+ePZw/f57c3FwqKiooLy+noKCA0NDQRvto8uTJ5Ofn88MPP/Daa6/xxRdfMH78eJ577rkmZXH19fU5ePAg1dXVVFdX8/jjj9OxY8cmg+mMjAxUKhXffvstv/76q85zDQ0NFBYW4uTkREVFBTU1NZSWlooO7rd+p6mp6X2nkmVkZIic7ubMip555hkAVq5cKSqnTJgwgbCwsNvSDeRyOQYGBpiYmBAUFMTBgwfJy8sjPz//vlC8/grIycmhsrLyvntLKBQKwsPDxTXzbnDt2jVKS0uZNGkSo0aNAmhWlactUFtby4EDB6ipqeHFF18kJCRE5/wR9pnw/fr6+o3We61WS6dOnUTzxlvX+44dOzJ06FD8/PzEtWLo0KEcOHCA5ORkBg4cKN4r9fX1RXqacJ0FBATQtWtXEhMTycnJwc3NjYSEBE6fPk337t0ZOXIkbm5uSCQS7OzsmDZtGufPn2fHjh2EhYXh5OSEoaGhjp+JXC5vUdAqkUhwcnLCwcGBgoICrl+/TlZWlpjIC4UKe3t7sRsTHR0tFuuMjIz+1kWk20GggdvY2JCXl0dGRgaVlZXNymBrtVrq6upEFSlDQ0MdSwGpVCoeP6GTfTtkZWU9UmuapaWl6InyySefcPjwYWxsbLh8+TL5+flYW1s3osg///zzyGQygoKCsLOzo6amhosXL5KQkMDIkSPp2rVrk9/VtWtXOnTowK+//kpGRga+vr7U1dURHBzMiBEjWj3fe/OxaQoVFRVIpdI2U6pqs8TC3Nz8ti3ktl54heqHoF+dl5dHdXW1qE0ttJ+EasoTTzzBm2++SVZWFp999hlqtZqZM2e26TbdLUJDQxkyZAhr167lwoULjB07lieffJJ27do1m/x06dJFNBiCGyeOnZ0dKpVKZ7BSo9Fw5coVtm7dKtJEKisrKS0tpaKiArVa/T+fWMhkMry8vBg1ahTu7u5s2rSJHj166HCtw8LCGu2jffv2sW3bNtq3b8+gQYNITExk9erVxMXFsWvXLrHCrdFoKCsr48qVK6xatYrffvuNoKAgBgwYwNWrVykpKdGphsfGxjJv3jyio6Pp0qULwcHBpKSksGTJEs6dO8ePP/4oqoGo1Wo2btzIm2++iZubG/369aOhoYFz587x2muv8dprrzF79mxx29VqNZs2beKLL76gsrKSbt26MXz4cKytrcnOzmbNmjWN9o9AF5w7dy4TJ07k999/Z/PmzSxcuJCdO3fyzjvvMGnSJJ331NbWEh0dLcp2btq0iYCAAAIDAxt9vkCn6dKlS7MzP0Lnorq6Go1G0+RCKSh73K/qcXV1NT///DPLli0jPz//tjdOweFXUEozMDCgU6dOLV64bx0Gv9Xk7R+0Hs11f1uDiooK0c36XmggLUV2djb5+fl07NgRZ2fnRufPrdeK0HXdsGEDx48fJzMzUywalJaWNkmt8PLywt7eXuf8srGxQSaTUVpaqtO9lMlkBAcH6yTvCoUCKysr6urqUCqVwA1KaWZmJgMHDhTnP4Tt9ff3x8LCgpiYmBZ1mu4ER0dHHBwciI2N5cqVKxQXF6Onp4ePj48YJOvp6REYGEhUVBRxcXFUVlaip6dHu3bt7qsC360Q1ii4sRbfjxm91sDPzw8XFxfy8vI4d+4cBQUFzV4jGo2GY8eOoVQqkcvleHt767xWEJ2A/xPzuR0uXLhwx9cIuHm/Nadwdb8hlUp58sknkclk/Pzzz+zduxeZTEaXLl1YuHAhhw4danT/nDBhArt27WLXrl3U1tZiZmaGt7c38+bN48knn2xWNMDPz4/333+fpUuXcvLkSSIiIrC0tMTR0bHV9DGBThoXF8eTTz7Z6Pni4mKOHj2KmZnZXZlANoU2FdIVAh2NRiMGq1Kp9L50BhwcHJDL5eTl5ZGVlYWnpydlZWVcv36dq1ev4uTkhKmpKQsWLCAkJITJkydjY2NDUFAQUVFRrFy5khkzZvwlAmpnZ2c+/fRTevTowc8//8w333zD999/z6hRo3jrrbd0KkkCbr0R3ByECFWs+vp6/vzzT+bOnYtUKmXYsGFMmDABa2trjhw5wvr16x/cj3xIaEkV1MTEhMcffxy1Wk14eDi7du2iR48eOtzlpoK6lJQUvvnmGyZNmoSJiQkajYaZM2eKSdyAAQN03peVlcXOnTv59ddf6dy5MxKJBI1Go8NVVSqVrFmzhqtXr7Jo0SKRhqDRaPjvf//LsmXL2LlzJ1OnTsXQ0JCCggLmzp1Lnz59WL16tfg5iYmJvPXWW2zatInevXuLkoAJCQls3ryZ2tpa/vvf/zJmzBiRZnD48GH++OOPJveRQINp3749H330Ea+99hpbtmxh/vz5/PjjjwQGBupowWu1Wp5//nn+85//sG7dOn744Qd++eUX5syZoxNowI1rWSqVMnDgQN58880m1wvhxlJcXIypqSkFBQWN+KCCF8H9uukcOHBA3MczZ87Ex8enWdqAsbGxuBbCjf1RW1vboiRe8L24fPmySDtwcXERFVvCw8P59ttvKSwsRF9fnzfffJPJkyeL2v9Dhw4lPDwcY2NjZsyYwdNPPy1K+W7cuBGlUomPjw9vvvkmffr0Ye7cufTq1UsUf3j88ceZOnUqM2fO5N1338XAwICPPvqI5ORkTE1NmTFjBpMnT+b69eusW7eOoqIikpOTSUpKYsSIEXz88cfU1dWxceNGtmzZQmVlJX369OGll17C19eXxMREvvjiCxISEggKCtLxH7h1P9TW1nLixAm+++474uLigBuFmFdffZUBAwYAN9a59evX85///IecnBz8/f3597//TY8ePcQA+LHHHiMqKoqamhrWrFnD2LFjdVTPSkpKWL16NWvXrqW8vJzg4GD+9a9/MXToUGQyGVu3buWbb74hOTmZyspKjhw5gr6+Pr169eLLL7+8b1Vv4Xy2tra+YydOrVaTkJDA008/TUlJCY899hiPPfYYdnZ2JCUlsXz58ibfJ7hg3wzhfnLr+ilIJ98K4bXC62tra0XTw1upFxYWFigUCioqKpqUI24tnJ2dcXBw4NixY8THx1NcXIyXlxc2NjY6629wcDDr16/n8uXL4lxYYGDgA40B5HK52Gmtrq4mNzf3jvSj+4kePXoQFBREdHQ0Z86c4fjx43h6emJmZqazX7RaLZWVlSxcuBC4Ub2fPHmyzv41MzMTB3+vX79OYmIiJSUljTqEGo2GS5cuERkZ2WJfmps7WEqlkry8vHvabzY2Nly/fl28pmxtbVm6dCkajUY8X5988knGjBmj8x3GxsZMnjyZCRMmiGu7MF/Wv39/Pv74Y51E9T//+Q9vv/22TjIglUqRy+XN0vvgRgIfFhZGSEiITvFX8NxoDXx8fBg0aBBr1qyhtraWkpISqqqqSEhIICUlhQ0bNnDu3Dnef//9NjPlbbPEQljUVq1axaFDhygrK8PS0pKBAwfywgsvEBAQ0KaGII6OjigUCrKyssjKysLX15f4+HgKCwtJTk7Gw8MDMzMzkpKSuHjxIhs3btTRJbaxsUGlUv0lzKmkUimWlpY8/fTTPPHEE0RFRfHzzz+za9cu8vPz+eqrrxoZ+LSkennt2jXWr1+PQqHgk08+EVWOJBIJWVlZ/1RA/z+EoFWQ04P/40LeDr169aJfv36iqRfcoBDs3LmTlJQU+vfvr/N6c3NzRowYQbdu3RolgcK/Y2NjiYqKIiQkBG9vb52KVq9evVi7di2HDx/mqaeewtDQkG3btqFUKpk8ebI4/AuIggQbNmwgKipKTCyuX79Ofn4+nTp1olOnTmLXS61Wiyo5t0JwChXmJvT19bG1teWJJ54gLS2NPXv2kJyc3OgctbKywtHRkVmzZpGTk8O6detwc3PjhRdeEIcqAXr27ImRkREnT57kzTff1KkEC8GKVqsVB5O9vLy4dOkSV69epW/fvkilUrRaLZmZmRQUFNy3gcArV64glUr59NNPGTFiBHD7TmxtbS1+fn5cvHiRiooKduzYwejRozE2Nm4kEyn8RpVKhVKp5JdffuHPP/+koaEBmUxGv379RIpkQEAAK1aswNLSkpSUFCZOnMjkyZOpr6/n6tWrzJgxg5MnT7Jnzx7WrFlD//79SU1N5dq1a3z66aeEhYVRVVUlBpNOTk6UlJRw8uRJXF1dSUlJobi4mOLiYiwsLJgyZQrvvfceISEhpKen88orr+Dv74+DgwNZWVmkpqby3XffYW9vj1qtxtDQkE2bNpGRkcHy5csxNTXlv//9L7t27eL555/niy++ICAggEWLFpGbm8uYMWOapJSpVCpOnDjByy+/zPDhw/nwww/F5NLd3V183cWLF9FqtbzzzjtYWlqyaNEifvzxR+zt7UVZ4D179lBdXU27du0aBbNKpZL169ezZcsWFixYgKOjI+Hh4SxatAitVsuIESMYPXo0w4YNY+/evaxZs4apU6cybNgwZDLZfe1cGBkZIZfLKS4upq6u7raJqVKp5Oeff+b69et8+OGHzJo1C7hxju7du7fZAl9rDbJa8loDAwP09fWpqqqitrZWJ3ERuPyCUdi9wtHREScnJ7RaLVFRUZSUlNCtWzeddRkgJCQEfX19kpKSROGK4ODgRp9385ojPG6l9qhUKp0h5lsfzUGhUODt7Y2lpSWlpaWcP3+eLVu2MGbMGPH4CN+nUCjue3xibGzM008/TXx8PGfPnuWTTz4R/WvMzc3F4ldxcTFvvPEGFy5cQKFQ0Lt3byZMmKDzWQYGBvj4+ODt7S163QhqfjffZy5fvsw777zD1atXm1VZuhWGhoZ4eXmJ++3MmTPs2LGD4cOH39V+u1ndSvj3rQlwU0H8zX4Xt+LWmQmJRIK+vv5dJz/NzS+2FjY2NkyfPp2qqirWrFmDUqlEo9Ewe/ZscT+88sorTJ48uc3MDtss0o+Li+OTTz6hqKiISZMmYW9vT35+PgcOHCAjI4OPPvqIkJCQtvo67O3tMTIyIi4uDnNzc1xdXamsrOT69evEx8fTq1cvjI2NaWhoYOrUqbz22ms6bScha3zYuLnKI5VKUSgU9OjRg5CQEObMmcOGDRvIycm5K2fQqqoqcnNzcXFxoXPnzmIiUVtbS3Z29h216P8OuJ/VKE9PT0xNTXW+Q1iMy8vLG71eqPjf/Ppbty83N5eCggJOnz7N1q1bm9z+mpoa8ZyJjo6mqqqKadOmNZko2tvb6yhYmJubY2lpSWFhociHFoZat27dKpol3YpDhw6Jyip6enpotVqys7NJSEjAxMTktmpplpaWvPnmm+Tk5LBo0SJcXV0ZNWqU6JPSrVs3BgwYQHh4OL/++isTJ04UF+76+nqKi4vRaDT4+/tjb29Pt27dWLduHfv27aNbt264ubnR0NDA1q1bSUhIuG/HXKlUYm9vL3ZY7gSZTMYzzzxDbGwsdXV17N27l+eff55Zs2YREBAgrj9C4iYYGG3dupVTp05RVVWFTCZj+PDh9OrVCyMjIzQaDXFxcWzcuJGamho0Gg0lJSVisGxpackTTzyBgYEBLi4umJubU1JSgo+PD3Z2dnz//ffEx8czZMgQsTrl4+NDSkoKiYmJ4nGIiorCx8eHoqIiEhISxIFguFFxLiwsxMHBAXNzc3r06IGnp6f4u8vLy0lJSWHt2rUcPHhQ/LuNjQ1ZWVkUFBSIM0U2Njb4+Pg0eQMtKytj27Zt+Pn58dVXXzWrse/s7MzTTz/NyJEjAUhNTWXjxo0665tQVWzq3CgqKmLbtm2MHz9eVJbq3bs3UVFRnDx5kuHDh4sBgpGRETKZDENDwwfiOOzi4oKtrS2nT58mLy8PX1/fJmcs4Eawe+3aNUxNTenTp494jtbX15Ofn9/stX0/4OzsjIeHB9euXSMnJwdvb28xiExISKCsrEyc+7gZQvGioaGhxRRdfX19nJycsLS0JDExEY1Gg5+fX6MZjY4dO2JiYkJRURGXLl3CyMioSWqmcH8sKiqioqKCyspKysvLiY6OFl9z4sQJ5HI5ZmZmmJqaYmZmhqWlJZ6enrcNJAWRjCeeeIJff/2VpKQkXnvtNdasWYO3tzeA6BMza9YscY7nfkEikdCvXz9mzJhBeXk5V65cYfbs2SxbtowuXbpgbm5OXl4ex44dE2XwQ0NDWbhwYaNAXFDfGjduHN9//z3Z2dm8++67bNiwgcDAQKRSKSkpKVy8eJG6ujqeeuopcYasJdvp4eHBmDFjxPnaV155hZCQEHHtKS0tpaysjLfeeouhQ4fel/31KEIikeDm5sbnn3/O5MmTiYiIID09Ha1Wi4eHB0OGDCEgIKBNCyRtllikpaWhVqtZsmSJzvDniBEjmDdvHqmpqW2aWAjBTGRkJAEBATg5OVFfX09kZCRVVVXY29tjYGBAUFAQ165dAxD5Y80NXLYkc745EWgrCK6h9vb2YrAhDL0Kqg13A2NjYxwdHcnMzCQ1NRVra2vUarVohHYrR1zQ0BcoHEKwolQqRe66vr6+GFhqNBpRMk4Iduvr60VteCGz/7t2RszNzVtVjdDT07tjMFJXV0dDQwODBw9m0KBBTfJ/nZycRC5rVVUVCoWCOXPmNKkcYWRkROfOncV/+/r60rt3b3744Qc+/PBDAgMDxXmIoKAgnJ2dm7yZv/3221RUVNChQwdsbW2pra3lypUrVFZW8vTTTzc7hCbAx8eH119/nffff5///ve/ODg46FBVFi1aRElJCR9//DHr1q3Dw8OD+vp6cSZo1qxZ4lBqr169mDJlCr/++ivPPfccPj4+YnvX3t6+ya5LW0CYYSouLhY7OLeDTCZj2rRpHDt2jIiICJRKJTt37mTXrl2YmJhgZ2eHXC6nrq6O0tJSysvLdTpYpqam9OjRg3feeUdUQyorK+PDDz9kyZIl9OnTh7S0NMLCwsTvFEwrm9r2t956i8zMTDZv3swHH3zAtGnTGDNmDD4+PkRHRxMXF8eECRMwNTUlKiqK9u3bY2RkhKGhIeHh4aJpaENDA3K5nIKCAvT09BoF/EKB5IUXXuD999/H0NBQdEQX+O+C1KtarW6WDiMcfz8/v9sadzk6OurQc4yMjFCpVC2i2QgDqRcuXCA+Pp4ff/xR5/kOHTrcs9zjvcDIyIiBAwdy4cIFfv75Z8zNzXF3d0cqlaJWq6moqMDBwQFjY2NkMhnu7u5cunSJpKQksWgQHx/P9u3bm73v3Q8EBATQu3dvtm3bxp49e3jiiSdQKBQi1bO4uJjRo0c3kkaWy+Vi1ywzMxNTU1O0Wi16enq3HeZ2cXHBzs6OkpISpFIpPj4+jV5vaGhIhw4dyMrKEmWjm3LcjomJ4cUXXxSduZvCunXrWLdunc7f3N3dOXjw4B3N/ZycnHjllVfIzs7m7NmzVFVVcejQIQ4ePCjeN83MzJosTt0PSCQSpkyZgoWFBYsXLyYhIYHU1FSSkpLETrFCocDBwYE+ffrw9ddfi7NzTf22adOmUVJSQnh4OEqlkgsXLnDu3DkxfjA1NWXy5Mm8++675OXl3dHbR4CbmxuvvPIKubm5nD9/noqKCg4cOCD+BplMhrm5eYvnNv7XoFAoCAkJadM4vDm0WWIhkUiwtLRsxL+0s7PDysrqvgSXTk5OlJeXo1KpcHJyQiaTsWnTJkxMTMSp+enTp/PGG2/w3XffMWDAAORyOdnZ2djb2/PEE0/Q0NBAfn4+RUVFZGZmUlVVRXJyMhKJBGtra2xsbMROiCBnZ2hoSFJSEuXl5Tg7O9/2pncnaLVa/vzzT7788ku8vb1xdXVFLpeTkpLCtWvXGDNmjE41sLX7Z+jQocyfP5/PPvuMbt26UVZWRkpKCvr6+jru4nCjEn7kyBGysrJQKpWkp6ejUqn4+eefsbGxwcLCgl69euHp6YlGoyEzM5OjR4+iVCqJiYmhvLycuLg4fvrpJ9GxODg4uJF6z4NEa5LAW6kpDwPGxsYYGhri7e3NpEmTcHJyuu3rra2tkclkDBgwgH79+t3x883MzJg+fTqWlpbs2bOH2NhYbGxsePnll3niiSf49NNPxcHNmzF37lwOHDhAeno6hYWFmJmZ0a1bN0aPHs3QoUN1Eixzc3Pat2+PnZ2dzj4dOHAgM2bMYPXq1fz555+0b99eXC+cnZ3ZsmULv/76K4cOHSI5ORkDAwPc3d3p06cPw4cPFz/H2dmZN954A1dXV8LDw8nKysLHx4fnn3+eoqIi1q5d26yyyb0gLCyMiIgIDhw4gKOjI46Ojsjl8ibXNlNTU6RSKebm5qxcuZIvv/ySnTt3UlpaSnV1NTU1NaSlpYk3bqEVr1AoMDIywsHBgZEjRzJ16lRRXhRuVKXNzMyorq4mLS2NLVu2tIhOUlBQQHp6OpaWlgwePFjU/IcbAZEwRCvo+m/bto25c+fi4eFBr169+Pnnn3nmmWdQq9UUFRXpJDO3wsTEhICAAPbt28fevXvx9/enqKgIFxcXnJycaN++PSdOnMDS0lLkmTen/y6TycTiRXP3kLvhHd8MgRo7Z86cRvQOIyOjh64e+PTTT3P16lW2bdvG9OnT6dixI2ZmZhQVFRETE8P27dsJCAjAyMiIsWPHsnv3bubPn8+ZM2eor68nKSmJurq6u+p63y2sra2ZOHEimZmZ/PDDD+zfvx9bW1tSU1PJycnh2WefpV+/fk0mpc888wzLli3jmWeeISgoCJVKhbu7O++++26z3+fl5UVoaCh6enqYm5vj4+PTZAV24MCB5Ofn09DQIErQ3gojIyPatWvX6nuAo6NjiwpNUqmUwMBAfvnlF3bu3MmRI0fIyMgQnebt7e3p0KFDk90UExMTfH19MTExwd3d/bbnpp6eHjY2Nvj7+2NlZXVbHzGpVMrYsWMJCwtj7969YlW7trZWNGJ8/PHHm1QZvBUdO3Zk4cKFDB8+nL1795KcnExVVRUmJiZ06NCBESNG0K9fP5GuW1JSgpeXV4vM+UJCQvjll1/YtWsXR48eJSMjQ0wShf32IM/zvwsEgz+BwnivaLPEwtnZGUtLS44fP06vXr2QyWQ0NDRw8uRJUUouNzdXfL2Njc09/wBPT08CAwPFAMXExAQvLy+MjY3F7kRoaCjfffcda9as4fvvv0cikeDt7c3UqVOBGyofy5cv58iRIyKf+fPPP8fa2ppnn31W5B+uWLGCxMRE1Go1hYWFxMXF4eXlxYcffnhPg3sSiYTu3bvz1FNPER8fT1JSktjaFdr7Nydr1tbWonTZrdKnDg4OdO7cWawCCVKmcrmcnTt3cvHiRZHz7u7uzrp163QoLBUVFWzatInExETx/cHBwezZswe4seBaWFjg6emJSqXiypUrLF26VHy/wF/euHEjcEMSVzgvHhZaS4u5mYLzMNSyPDw8cHV1JT4+nvT0dOzt7RuZGAmiCBKJhB49erB69WoOHDhAWFiYzs1Uo9E0qaDk4ODArFmzRA72zbi1Ygs39uHUqVPFa+ZOGDFihDiDcCumTZvGtGnTmnzOwsKCN998kzfffPOO3+Hk5MTs2bN1BuwFTJ48uUXb2VoIlMv169dz9OhRQkJCRGffW/HWW2+JvGIbGxsWLFjAiy++SEREBDExMWRnZ4tFEX19fUxMTLC3t8fT05POnTvTrVu3Rtc43CjUCMkZwLBhwxg6dChSqbSR2ZexsTFeXl4YGhpSVFTExo0buXr1KgqFgp49e4rDzwYGBtjb29OnTx+sra3p2rUrR44cwdfXF4VCwaJFi/j222+ZM2cOWq2WoKAgunfvjkwmw8nJqVFXTSKRMGzYMAB27NjBypUrsbS05KWXXsLFxYXZs2ezfPly/vvf/+Lv78+oUaNwcHBodK0ZGBjQvn17zp49S1pamqiEVl9fr6NA01IIgeLNAaNEIsHExISOHTuSmJgoco7VarVoOPiwYW5uLop77N27l9TUVLKzs7GysuLZZ58Viw9yuZxevXrx/fffs27dOqKiorCysmL8+PH06NGD3bt3Y2JiIu5nExMT/Pz88PDwaHQOm5ub07lzZx3ZbAcHB7p06dKoEyCYf/n7++t0ZIODg5k/fz7bt2/n6NGjpKen4+zszIwZMxg5cmSTRo56enq8+eabmJqacuTIES5duoS5ufkdh0pDQ0NZu3btHfflnDlzmDNnzm1fExgYyPbt2+/4WfcCiUSCo6MjL730Ei+99FKTr6mrq0OlUukE3D169BCr9HeCubk5M2fObJX6pYODw23X6JbCysqKCRMmNErUb8Vnn33GZ5991uLPFahkzd2//sHdobS0lD/++IM+ffq0SWIm0bZRaTYuLo7PP/+c2NhYOnXqhLm5OcXFxSQkJODm5oaPj4/OIv3222/j4eHR6HPq6upYv369eOO8FX379uXf//53szJd/+Af3IyIiAh+/PFHiouLGz1nbW3NypUrdW5wx48fZ/r06QQFBfHRRx9hamqKWq3GwsJCTFYPHDjAO++8w4ABA5gzZ46O5F54eDjPPfcc7777LnPmzEFPT4+Kigq++uor1q1bx08//SQGXU2htraWb7/9lmXLljF+/HgmTZqEra2tSDfLysoiODhYDDqLi4t5/PHHKSws5Ntvv6Vjx4469Bq1Wi1KE/+De8NXX32l421yO1y8ePGezKP+wY0kOioqinfeeQc3Nzf69OkjFqyCgoIIDQ3l559/5uDBg7z++uui8dvWrVtZsWIFH3/8Mb169SI3N5fMzEzKy8uZPHkyr776KoMHDxaD5+rqanbu3MmyZcvo378/Pj4+1NTU0NDQQNeuXenWrZu4Tbt37+bnn3/mxRdfFGc6/sE/uB84efIk1dXVeHp6inS3v0Ki+w/+fkhISGDWrFnMnTu3Tda1NutYCK2unj17AjeqpZaWlvTu3RugkV5zc8otCoWiTTLmf/APAAYNGsSgQYNa/Ho3NzeGDx/O/v37efPNN3F2dkaj0TB+/HhRVet+wsDAgIkTJ1JSUsLevXu5dOkSTk5OqFQqSkpKyM/PZ+XKlWKnydLSki+//JKPPvqId955h44dO2JkZERFRQXXr1+nY8eOotPzP7g3DB8+/I78aQEPUhv/7wrBWOqLL75g06ZNhIeHI5VKCQgIEIN9QZji5iTO3t6ekJAQsVMaFRXFxo0bKSoqomvXrkRGRnLp0iU6dOhA586dMTIyYvTo0ZiZmbFr1y6io6MxMTEhNDS0UVXd1taW4ODg24oV/IN/0BY4ffo04eHhuLu706NHDwIDA3Fzc8PBwaFZIYJ/8A/uBkIhpa3QZh2LBwm1Wo1SqeT69esUFxejVCrFoVdB69fAwABTU1MsLS2xs7N7YNm+Wq2muLiYwsJCSktLqaqqEjnCgsSdQqEQlSSsra2xsLBoUyneRx1arZaqqiqUSiVKpZKqqiqqqqrE1rBKpRIHP+FGACLsW7lcjpGREcbGxhgZGYnzNrfTjL4ZGo2G9PR0du7cSVxcHDU1NVhbWzNhwgQGDhwI3FBiWrt2LZ06dWLMmDE6VK/z58/z7bffMn78eFErv7q6mu3bt3P8+HFeeumlJiUOb4VgWnPy5Eny8/ORy+XY2toSFBTEiBEjdLTBNRoNKSkp7Nixg8TERGpqarCwsMDDw4O+ffuKtJUHjZuH+ZVKJZWVlSiVSmpra8XjKBxL+D9FGOE4ChRKQ0NDTE1NMTc31zGF/Af3D1qtlpqaGqqqqsSZEEFQQhB4uPkhFIoE2t3N16NcLkehUGBgYCAeT2Nj4yZld//BP/gHN1BUVMS5c+c4fPgwMTExoqFfWFgYvr6+eHh4NPLq+AdtA0H6pylBYgABAABJREFU++Y4pKamhrq6Ourr68VYRJAhFtY/gaYsrIGCmpzwMDQ0xMjISHwoFIo2P36VlZVERES06j1JSUmsWrWKRYsWtUnH4pFKLBoaGsjLyyM+Pp64uDji4uK4cuUK+fn5VFRUUF1djUQiwdjYGEtLS5ydnfHy8qJTp0506NABX19fPD0978vNrKqqiqtXr5KUlER0dDTx8fGkpqZSWFhIZWWlyKUWZAodHR1xdXWlffv2dOjQAS8vL7y9vbG2tv6fWyi0Wi0VFRUUFBRQUFBAfn4+WVlZ5OXlkZ+fT35+PtevX6e8vJza2lrq6upEAyZBsUJ4GBsbY2Njg52dHXZ2dtjb2+Ph4YGjoyN2dnbY2tqKg/7/BDRtj/r6ekpKSsjNzSUvL4+cnBxyc3PFR15eHuXl5eIiXVtbS21tLYDOAmxiYoKVlRVWVlZYW1vj5OSEh4cHTk5O2NjY4ODggKOjYyO53/sNrVZLaWkpOTk5lJeXY2Njg4eHBwYGBqjVampra9HX13/kzq+amhpKS0spLi6mqKiI4uJiUfpY+JvwEEzbhBtsfX29OPtzc0IhJBBGRkaiHKdwPG1tbXFwcMDS0hJzc3ORamhtbY2RkdEjte/+F5CSksKFCxdEQ0/Bk+cf3H9oNBpSU1M5deoUBw4c4Pz58zg4ONC7d2+6d+9O586ddQQe/kHrISisXb9+XVznBMEe4VFSUkJ5eTmVlZVUVFRQW1tLQ0OD6Gmi1WpFJUxhDTQ2NsbU1BQTExNMTU2xsrLC1tZWfNjY2GBpaYmFhYW4PpqZmd2TGEViYiKBgYGiB05LICRR27dv/2slFsXFxVy8eJGsrKwWvb579+74+vq2aIBbo9FQVFTEiRMnOHToEIcOHSI1NbVVqg1ubm707duXYcOG0bt37ybnO+4GDQ0NXL58mePHj7N//35OnDjRarkzMzMzAgMD6d+/P3369CE4OBgbG5u//UJRXl5Oeno6KSkpJCcnk5iYSGJiIsnJyW0qGaqnp4ezszPt2rXD19eXzp070759e7y8vHB2dv5bdIvUajUZGRkcOXKkVe/z8vIS9crv5buLi4tJSkoSHZjj4uK4fPkyeXl5jWSN7xaCBKunpycdO3YkMDAQX19f2rVrh6enp85g6v2AVqvlypUr7N69mxMnTpCbm8vjjz/Oyy+/jKOjI0qlkt9//52AgICH1iVqKYRkPisri4yMDNLS0khNTSU9PZ309HSuXbuGUqm8r+poEokEKysrHBwccHV1xdPTUxQvEBJHwSvjUVwL1Wo1W7ZsERW3/mowNzcXfWDuhH379vH9999TUVHBpUuX8PDwuK0c618NRUVFHDp06K6PhY2NDSEhIbi4uLTxlt0ZKpWKvLw8kpKSOH/+PCdPnkSj0aCvr09tbS0+Pj7MmDFDR1b8VghxyoULF+56O7y9venXr98jeS3eCkEuPy8vj4yMDDIyMkhOTiYlJYW0tDTS09O5fv36fTNbFWBkZISjoyMuLi64urri7u4uFtCENdDGxqZVicbly5fp1asXY8aMwcvLq0XvycrKYu/evSxfvvyvlVjExMTw/vvviwpCd8KHH37IG2+80aQyxM0Q5PI2b97M5s2bSUlJuaftFGgtEydOpE+fPveUGRYVFXH48GHWr1/P4cOHqaysvKdtk8lk+Pv7M2bMGMaOHUvHjh3vq6vrw4BKpSI9PZ2EhARiY2M5d+4c586do6io6IFJvOrr6xMQEEBoaCjBwcEEBwfj7+9/XyRKHxTq6+vZvn07kyZNatX7Ro0axfz585uUNmzJd2ZmZhIdHU1kZCQnTpwgISHhvvlI3Ao9PT0cHBwIDQ0VTSUDAwPvGz0gOzubxYsXs3fvXmxtbUlOTuaxxx5j3rx5omTrY489hpeXF0uXLm21atGDgFKpFDurQgIYExNDVlYW9fX1D3vzgBuFFqEIIDj5enh44OnpKUr8Pgqor6/Hy8uLnJych70pTcLX15eFCxcyevToO762srJS7Dj+61//wsDA4JFKLKKiohg9evRdH4vQ0FDmz59/W+GNtoZwrcbExHDp0iVyc3MxNDSkS5cu9OvXDwsLC2JiYli7di1GRkb89ttvzX5WZWUlP/zwA++9995db8/TTz/NunXrHvnEorKyksTERGJjY4mKiiIuLo7ExMQmBV4eBgwNDXFxccHb2xtfX1/at2+Pp6cnnp6euLq63rGje/nyZUaNGsWaNWvEGec74fz587z++uu89957f63h7dYiOTlZpEA0h7q6Os6dO8d3333Hvn372iRgKS4uZuXKlcTGxjJr1iwmTJhwV4OW6enpbNy4kV9//VU0B7xXqFQqYmJiSE1NJS4ujn/961/06dPnb6GApVKpSE1N5fTp0xw9epQzZ86IPhkPGvX19URFRREVFYWpqSlhYWH079+fnj17EhQU9D+l5pOZmUlJSUmr3qNWq8nPzxe7h8KxvN/Vnaa2Iycnh5ycHA4ePEiHDh0YOHAggwcPplu3bm1e6T5z5gynT59m6NChPPXUU8ybN0/neWNjY4KDgzl27NgDNSO7EzQaDcXFxcTExHD+/HnOnDnDpUuX2rSb1JaoqKgQr0/BH8nPzw9/f386dOiAn58fHTp0wNnZ+ZFJMh51mJqa0r59e2xtbUUH+H9wf7F3717Cw8OpqqrCzc2NCRMm0KtXLxwdHUUJcg8PDywtLVssBf6/jJKSEs6fP8/p06c5c+YM586de2AmhK1BTU0NKSkppKSksG/fPtFGQfDoENZBb2/vJof4jY2N6dOnT5OGuc3B0NCwTdfSh5ZYXLlyhZqammafr6ur48yZM3zxxRccPHiwTRcyjUZDZGQk169fR6lU8vzzz7cqubhy5QorVqzg999/p6CgoM22S4BSqWTXrl3k5+fz1ltvMWzYsEc2udBoNKSlpXH06FEOHz7M8ePHycvL+8vcmCorKzl48CCnTp0iODiYgQMHMnz4cIKDg/923aKmkJWVRUlJSYs8O4Sh+mPHjhEeHs7+/ftFV/uHjerqai5evEh8fDxHjx5l2LBhjB8/Hn9//zYx/IEbxRB9fX1Gjx5Nz549m7wmXVxcKCws/Euc3xqNhoKCAk6cOMGpU6c4e/Ysly9ffmAdpbaAVqulpKSE06dPc/r0aYyNjfHx8SEwMJDQ0FAGDx58Tz5C/+D+4Pr160RFRZGUlERVVZUo7du5c2fxuqmvr2fNmjXU19czZcqURtdTeXk5v/32G8bGxjz33HNi4FNVVUV8fDyXLl2itLQUhUKBl5cX3bp1E71O/g4QTA27d+9OcHBws4USHx8fxo4d++A38BFBRUUFp06d4vDhwxw+fJjY2NiHUtC8WyiVSmJjY4mNjUUmk4lzw506dRJlt52cnMRzw87OjrfeegtnZ+cWf4ednR3jx4/H3d29Tbb5oSUWaWlpVFZWNhnQqFQqYmNj+fzzz4mIiLgvFBmtVktaWhrffPMNCoWCKVOmtIgTffXqVZYuXcr69espKipq8+0SoFarOXPmDF9//TUKhYJBgwY9chKW5eXlnDhxgq1bt3L48GFycnL+EgFXU6iurubUqVPExsYSGRnJ6NGjefzxx/H09Pzb3KiaQllZGfn5+dTV1TXpQitAq9WSk5PDypUr2b17N9HR0X/JanddXR3nz58nMTGRS5cu8eyzzzJ8+PA2GfKura0VB5Kbg1qtfujiC8L8xIkTJ9izZw9Hjx7l6tWrj9TNtDlUVVURHR1NdHQ0CQkJYiXvH/x1kJGRwfr169m3bx/19fUYGBhQXV2NhYUFTz31FGPHjhU9gYRiU8+ePencubN47ajVahITE1mwYAFDhw5lypQpwI316s8//2TDhg2UlpZiYGBAXV0dWq2W3r1788ILL+Dj4/O3WLNHjx4tiiDcDtbW1nc0/ftfhEajISYmhh07drBnzx7i4uL+MnTPu4VKpSI5OZnk5GTCw8Np3749wcHBdO/eXWRcGBoatprabG1tzbRp024bA7QGDy2xqKioIDs7m44dO+pUFLVaLXl5eSxcuPC+JRU3f9e1a9f44YcfcHZ2viN/Mj8/n9WrV7Np06b7mlTcjHPnzrFkyRKcnJwICgrScWH+q0KtVpOcnMwff/zB9u3bSUhIaORj8ldFZWUlhw4d4vLly1y6dIlnnnmGnj17/m27FxqNhszMTCoqKppdVLRaLXFxcSxevJjt27f/JdvHt0KpVPLnn39y7do1rl69yowZM7C1tb2ngMPa2pqqqqpm54HKyso4c+YMXl5eD21wu66ujqioKP744w+OHDlCfHz8I38zbQ6urq53dGT+Bw8WlZWV7N27l99//52QkBDGjRuHpaUlBQUF/P777yxfvhx7e3uGDBmCQqFgxIgRREREEBERgZ+fnxhE19XViff/4cOHI5PJUKlUREdHs2LFCmxtbXnrrbews7NDqVQSHh5OeHg4tra2vPDCCzoS4I8qMjIyMDc3x8XFRadYIcxedOjQAYVCgb6+vui+/g9uoKKigvDwcDZv3szx48cpKyt72JvU5qivrxfVUSMiIpg8eTJBQUF39Vl6enqYmZm12bY9VNmSpKQk+vXrJyYWgnb60qVL2b179wMZ5lWr1Vy+fJlly5bRvn37ZtWiqqur2bZtG+vXr78v9KfmoNVqOXnyJCtXruTDDz9sdgEpLy/n66+/bvHnCupYbY2amhpOnDjBL7/8wtGjRyksLGzz77jf0Gg0ZGdns2HDBq5evcoLL7zAyJEj7yg08KgiIyODsrIy7Ozsmnz+0KFDLF68mEOHDv2lZgfuBK1WS0JCAt9//z3FxcXMnTsXBweHu+4odO3alf379/P7778jkUgoKytDLpeTmZnJ1atX2bNnD5GRkXzwwQcPPBEVuhQbN25k/fr1REVFPVKUp9bC0tKSkJCQNlP3+wdtg2vXrrF//36sra2ZPn06vXv3RiqVolarMTAw4IMPPuDPP/8kKCgIFxcXBg0ahJOTE9u2bWP69OlicaOqqopdu3bh6upK//79ASgtLeXIkSNUVFTw9ttvM3LkSLFQYGpqSnx8PCdOnGDo0KF/i8Ri165d+Pn54eTkpLNmlZeXs3TpUj7//PN/jBqbQGZmJuvWrWPdunWkpKT8LTq1d8L169fvGJ/U1taSnp5OUlISpaWlAOL8mqenZ5t1K+AvkFjU1dWJ3EqNRsPx48dZtWrVbecv2hp1dXWcOnWKtWvX8t577zXqCmi1Wk6cOMHatWvJyMh4YNsloL6+ni1btjBw4EBGjhzZZGtUGGQVoNVqyc3NJSUlhfbt22NtbU11dTWpqak4ODi0yo26pSgrK2PPnj0sXbqUqKioOw7n/9Uh0KMKCgrIzMzkueeeazMO4l8JQmLRFPbv388nn3xCZGTkX5bGdicUFhayevVqlEqleDO+m85F586dmTRpEitXruSjjz4iIyMDQ0ND8vPzqaqqIiMjg7FjxzJmzJgHOlQs6Nx/99137Nmzh/T09Af23Q8LPj4+9OjR42/bSXxUkZubS2JiIr1796ZTp05iQKynp0fXrl1xdnbm/PnzFBUV4eLigoODA3379uX3338nISGBHj16ABAXF0dqaipTp04Vg+fi4mKio6PJyclh+fLlbN68Wfze8vJy0tLScHBw+NtUp7OysrC1tW1UYFWpVERGRj4yLIAHicTERJYtW8bWrVvJz89/YEqTDxsCzbApaLVaMjMzRfVS4X4FNwa9hXjw6aefxtXVtU1ohA81sUhMTBQvDq1Wi1Kp5KuvvnooVe6SkhL27NnDsGHD6Natm85zaWlpbNq0iejo6IcWXBUXF7Nq1Sq6d+/e5ME3NTVl7ty54r8zMzPZvHkzffv2ZciQIRgZGdHQ0EBUVBSxsbFt/jvy8/P5/fffWblyJSkpKX9J/v3dQKVSkZSUxNKlSykrK+Pll1/G29u7zT4/Ozub8vJy/P39xb/V1NQQHx9PZWWlKJ96P3Ht2rUmb8YnTpzgk08+4dy5c49sUiGgrKyMDRs2YGJiwueff35XDt4mJiaMHj0aZ2dnjhw5QmxsLMXFxWg0Gtq3b8+//vUvBg8ejLOz8wObs9BqtURERPDVV19x9uzZv3WXQoBcLqdTp0506dLlYW/KP7gF1dXVVFRUYGZm1ohaYWNjg7GxMUlJSWLRSSKRMH78eDZu3MiuXbvo2rUrGo2GnTt3IpfLGTdunHid1tbWUlRUhFwux8DAQCdoNDMzo1+/fri5uYnzG48iVCoV2dnZFBQUUFhYSHp6OufPnxeLnRqNhhMnTojuzv/g/5CQkMC3337L1q1bxYr8/wIkEgmDBw9utntbUFDAmjVrWL16NTY2NvTr1w97e3v09PQoLCwkMjKSn3/+mYaGBl588cVWqUk1h4eaWFy5coXa2lpxgdi0aROnT59+KNui0Wi4cuUKf/zxByEhIeKFXFdXx/79+9m3b99Dr8AfP36cyMhI7OzsGrWt5HK5zhCj4KI7Z84cnb/b2dlx+fJlrl69ysCBA9tku3Jzc1mxYgUrV678y2q23yvy8vJEBZPZs2fj4+PTJp8bFxfHmjVr8Pb2JjAwkCFDhnD06FGOHz+OUqkkOjqaiRMntkrhobW4fv06169fp6GhQay0nz9/no8//pjz58//bZLEqqoq1qxZg5OTE2+//fZdVWYsLS3p378/gYGBFBcXU1tbKxr3OTg4PHDX6O3bt/PJJ58QHx//yCd/LYWzszNhYWH/U7LQjwqEgFetVqNWq3W6/w0NDajVamQymU5Q3LVrV3x9fdm5cyfvvfceKpWKPXv20LFjR4KDg3U+W09PD09PT2bPno2rq2uj79fX17/vhZj7CZVKxaVLl9i0aRORkZFcvHiR/fv3AzcCSK1Wi1arZfLkyW3KiX/UkZqaytKlS9myZcvfpmPVUkgkEqZOndrs/G1aWhrh4eF06dKFt956C7f/x955R0dV7W//My29916BAKkEAoSE3osC0gQUAQVRwYK9Ywf9iSKCqCAdRIpI7yX0TiCBkJBACum9T3//YM15M6SQBon33mctlmbmnDN7zpy997c+j4eHsE9VVFSQlpbGwoUL2blzJwMGDPj3OxYFBQWkp6fj6elJeXk5ixcvbtH0XlFREWfOnCE2Nlboqr9+/Tq7du0iMzOzxcalg67Po3fv3g+th1OpVBQWFlZrtC0tLSU3N7fZapOzsrJYsWIFy5Yte6y9Jy2B3Nxc1q9fj0aj4fXXX2+WxtG8vDyysrLo1q0b0dHRmJqacuPGDTw8POjZsydr1qwhJSXlkToWKpWK5ORkSktLsba2JiMjg6+//prTp0//x9WnFhQU8NNPPxEeHt7oHiOpVIqDg0OtPSmPA1qtlpUrV/Ldd98RFxfXYuNoCbRt25aePXs2uwOnM9oaGwmWy+VIJBIkEsl/BCtRY2BtbY2Liwu5ublkZ2frKVXrsrMeHh56zGqmpqaMGDGCr7/+mrNnz6JWq8nJyeGVV17RY0I0NTXF3d2d+Ph4NBpNs2aOWwoKhYLExETkcjkhISHIZDLCw8Nxc3NDrVbj4eFB//79hWdSLBYLlMv/NpbIR4W8vDzWr1//X+lUAAQGBtKtW7da3y8sLKSsrIyBAwfSrVs3PQfE2toaJycnBg0axMKFC5uNmKVFHQuNRkNcXBxhYWFs3769QaraEokEsViMSqVqtjo6rVbL7du3OXz4MEFBQZSVlXHs2DFOnjzZqM+oSoXXXNi3bx9paWkPVRfWGT6ffPIJw4YNw8nJiaKiIo4dO0Z+fn6zRNzz8vJYtWoVixcvJicnp8nXawikUikSiQSVSvVYI+r5+fmsX78ea2trXn75ZZydnZt0PTMzMyIiInj22WfZtm0bhYWFqFQq7O3tCQ0NZf369Y/F2b5z5w7FxcWYm5uzaNEijh079kg/Vyfso1AoHnsd7L179/jkk0/Yvn17s0f9ioqKOH78OIMHD35k9f8ajYYff/yRn3/+udXoiDwuWFpa0rlzZ7y9vZv92hkZGZw7d47Ro0c36vxt27bh5+dHYGAgMpkMiUTC+++/T2pqKoWFhTX+KyoqavFMeHPC19eXbt26cejQIaKiohg/fjxSqRSlUsm+ffu4ffs2L7zwQrWo6NixY/n+++/ZsWMHWq0WU1PTatoMTk5O9OzZk0OHDrFnzx5CQ0P1sla6unEjI6N/BXsi3GfR2rFjB6WlpQLro5OTE46OjoSEhODn58eAAQP0WOZEItF/reP6IHTZrdWrVz92GwTu2yFSqVTYy1oiuz9p0qQ6KdClUikWFhaYmprWOC/EYjEymQxTU9NmYzNsUccC7suPl5eX8+uvv9ZKiygSiXB0dKRfv35ERkbStm1bbG1tkUgklJWVkZiYyOHDh9m/fz8ZGRlNGk92djZnz56loKCA+Ph49u/fT0lJyUPPs7W1pX///oSHh9OxY0fs7OyEBTU5OZmzZ8+yc+fOJkcXCwsLiYqKon379nVGLLy9vXnrrbdYs2YN69evp7i4GGNjYwICApgzZ06TGaF0DDTff//9I5nQupS3TmXSw8MDJycnQflVNwG0Wi1KpZKSkhKysrLIyMggKSmJ2NhYYmJihBr45kRhYSG//vorTk5OPPPMM1haWjb6WjKZjPLycuLi4rh9+zZ3796loKAAV1dXtFotarX6sRjeOsfi7NmzbN26tcmRC0NDQ7y8vAgJCaFt27a4u7vj6uqKlZUVxsbGer+fXC4nNzeXjIwMQXX+2rVrpKSkNMdXqwatVsv58+dZsmQJ77//frNeOykpiY8++oiePXs+Msdi5cqVLF68mOTk5BZpThSLxVhbW2Nra4uRkZHwTywWI5fLkcvlFBcXk5eXR3FxcbNutl5eXvTp00dgEszPzycvL4+ioiIcHBxwc3OjuLiYW7duCX/LZDJB/0IqlRISEkJubi4JCQkEBQVhY2NDaWkpCQkJQqCgpKSEkpISHBwcUCqVFBcXY2JiglarJSEhAXNzczw9PTE0NCQ9PZ3k5GQSExOFeau7T88++yxKpRKVSiX8U6vVen+Xl5dTWFhIQUGB3r+aXisoKKC0tPSxlr0pFApu3LhBcXExmZmZwtqwd+9ezMzMsLa2xtPTE3NzcxwdHRk9ejQ3btwQMhBubm5CwC4gIIDhw4dXK2Pz8vIiIiJCoJiNjIzEw8ND7xgTExP69+/PhQsX2LBhA8nJyXTr1g2pVMq9e/eIjo5m/PjxTJo06V8TzZfL5YKOUFWIRCJmzJiBoaEhMpnsf45ELYiOjmbz5s2PJMAik8lwcXERVK7d3d1xcnLC1tYWS0tLPUNcJBKh0WhQqVRUVFSQl5cnZO2Sk5O5e/cud+/eJTk5uVkDCRYWFowdO7bOILObmxtt2rQhOjqaMWPGVCP/KS0t5dKlS/j4+DQ5UKpDizsWR44cQalUEh0dXeMmaWtry9SpU3nmmWdwcXHB1NQUQ0NDId2s0WgICQlh8ODBTJ06lYULF3Lw4MFGs0qp1WqSkpI4f/488fHxnDlzps7jbWxsePbZZ3n22Wdxc3PD1NS0WsQkICCAvn378uyzz7JmzRqWLl1KeXl5o8YHcPDgQaZMmVLn4mlgYECnTp3w8fGhtLQUlUqFRCLBxMQES0vLJhk9CoWCU6dO8fXXXzerUyESiejRowdDhgyhT58+uLu7Y2hoiJGRETKZTIgCisViYaHVPTNVN2uFQkFlZaVgTBw8eJCdO3eSlZXVbIZYTk4OCxYswMXFhaFDhzaaqi0oKIiYmBi+/PJL/P396d+/P3l5eZw/f57Dhw8jkUgeSy15bGwsv/76KydPnuTOnTuNuk8mJiaEhoYycuRIIiIicHFxwdjYGAMDAwwMDJDJZHpNh7rfUKPRoFarUSqVwm9XWlrKjRs32LVrFzt27Gj2MruysjJWrFjB5MmTqxkwTUFBQcEjFYLcsWMH//d//0dKSspjcSocHBwIDAwkODiYwMBAgcnHxMREWIN181FXA67RaPQ22YyMDO7cuUNiYiI3b94kNjaW1NTUBlMXS6VS/Pz8BOYguJ/BPXfuHKGhoZiZmVFQUMBff/2FmZkZ//zzD+PHj6dt27bMmzdPYCmytbVl2bJl9O7dm6+//prPPvsMkUhEbm4uMTExdO/enfz8fM6fP4+fnx9lZWWkpaXRuXNnTp48iUKhID09nT59+uDj48PKlSvx8fHh4sWLdOnSRRibSCR6aEZMV36l60mozz+lUklhYSGpqalMmzZNiNQ/KqSnp/P0009TUlKCSqUiPz8fgOnTpyMWi2nbti0ff/wx/fv3RyqV0qNHD7788kvWrFnDgQMHKC4uxsbGhieffJIpU6bg7+9fLXIqlUqZMGECM2bMQCwWM378+GrHiEQivL29+fDDD+nYsSPbt29n8eLFaLVabG1t8ff3p23bto+Vka2pUCqVVFRU1GgYVi21VKvVwlz7H+6juLiY/fv3c/To0WZbb83MzOjevTuDBw+me/fuuLm5CVohBgYGQqXEg3aIDrr1r6o9otvXFAoFpaWlxMfHc/36da5evcqlS5dITU1t9Fo+cuTIh/ZEeHp6MmzYMJYsWcJLL71E7969sbe3R6PRkJGRwbFjx4iLi2PUqFHcvXuX1NRUvfN79+79UJHGB9HijkVsbCwJCQnVHAGRSETbtm2ZP38+/fv3x8zMrMZJJRaLMTY2xtjYmIiICHx8fPj444/ZsmVLoxfclJQUVqxYQVFRUZ3XCAoK4vPPP6dXr15YWFjU+KDB/eitoaEhlpaWvPXWWzg5OfHJJ5802rk4ceIExcXFWFtb1xrJEIlEyGQy7OzssLGxQavVNkt6WKPRkJCQwHvvvUd6enqTrwf3IwNjxozhhRdeICgoCBMTk3qns3XfX5eSrAqtVouHhweDBg3ivffeY/v27SxZsoSkpKRmGXdaWhrz58/H19eXwMDARkWVXFxcePnll5k6daqwgOmIBOLj4/H398fPz69ZxlsXsrKy+OOPPxqVzrW2tmbkyJFMnTqVjh07Cs5/bfPhQeicDZlMJjjLut+uV69evP7662zcuJHly5c3a69TRkYGy5Yt4+uvv262a5aWlj4yg//MmTN89tlnQo35o4BYLMbf359BgwYxdOhQ2rVrp+cc6jbW+j7rWq0WPz8/IiMj9TbZ7OxsLl++zNmzZzl16hQ3b9586HOnoybV0ZPDfYPL39+fsWPHYmBgwOnTp7l69SoikYjk5GQ6dOhAcXExTk5ODBw4EAsLC/766y8SEhJQKpUkJCRw69YtQkJC8PX15cKFC8JnmZqacvHiRWxsbJDL5eTk5HDp0iXKysrIycnBzs6Oe/fu4enpSZ8+fUhKSmpwgEHnkOme//reU41Gg4+Pz2Mxot3c3OoUq5VKpXpZWyMjI8LCwujYsSPl5eVoNBohqFU12/wgRo0aRa9evQBqZXaSSqV4eXnx0ksvMWXKFKHKQSKRYGho2KzlHI3BwIEDiY+Pr/fxKpWK4uJinn322WrvaTQaDh06xO+//86VK1f4/vvvGTp0KFFRUVRWVtK/f/8GG3z/Sbh+/ToHDhxoFsfa2tqayZMn8+yzz+Lr64uxsbEQwG4IRCKR4HhUFX6G/x8Ebdu2LQMHDkShUAg05adPn+bYsWOcP3+evLy8en/elClTMDQ0rHM9PnXqFK+++irFxcVcunSJ7du3I5FIhIBGZWUlGo2GpKSkGudOdHS0Xq9UfdDijoVara4xu+Dl5cWvv/5KREREvRdPqVSKm5sbX375JTk5ORw4cKBRzac5OTls3769TgOhS5cufPfdd/To0aPeqUqxWIyDgwNPP/006enpLFy4sMFjg/tp+uvXr+Pm5lbrIqrVaklMTGTx4sXs2bOH/v37s2DBAoFnPCgoqMHNx1qtlry8PD744ANiYmIaNfYHMXjwYD744AOCg4OFGsDmSvuKRCLBqbOwsODll19m4sSJfP/99/z8889N7iHQarVcunSJFStW8MEHH+Do6Njga0gkEiFyULX8yMfHh8DAQCEy8qihE6dsCExMTBg0aBBvv/02QUFBGBkZNdumLhKJhCyHhYUF77//PiNGjGDBggUPnZv1RXl5OZs3b2bWrFk1Zi3Wr1/PG2+80aBrKhQKiouLmzy2B5GWlsYnn3zySKii4X7vwogRI3jhhRcICAjAxMQEAwODJs9HXYDjwTXcwcGB9u3bM27cOJRKJampqRw5coQ9e/Zw/PjxGuemh4cHAwcO1BuPLgumqzEWi8WEhYURGRmJs7MzhoaG3Lx5E6VSqWd4jh49mrFjx6LRaDA2NhYMe921DQwMsLS05Pz582i1Wjp27IhEIiEwMJAuXboIRn1UVBRZWVl6Iq+PGjrj5XEZ0FKptEHkEdu2bWP79u3MmDGDnj171nmsXC5n/PjxzJw5k0GDBtXrc8RiseCktDZkZGSgVCof2gOpg0KhqHXdPX78OD/++KOQsa6oqBBKf3/77TfCwsL+ax0LuVzOpUuXOHfuXJOuI5PJ6N+/P1999RXt27dvlDNRX1RdW3TrhY7soEuXLrz00kvk5uZy4cIF9u7dy+HDh0lLS6t1TQkLCyM4OPihz5mnpydz5sxp9LirBnLqixZ3LGqCra0t8+fPp1evXg02qkQiEa6urrz33nskJycTGxvb4M/XTd7a4OfnxxdffEFkZGSDN16RSISLiwvjxo3j1KlTjZ4Y586dq9bUVRUpKSn8+OOPxMTEEBAQIERStVotx48fp7y8vEGOhc7w/O2339i1a1eTjBuRSISDgwOffvopTz/9NJaWlo+8IU0kEmFkZISTkxNfffUVw4cP58UXXyQxMbFJ30WtVvPrr78SHh7OyJEjG7zQX758mW+++Ya4uDhsbGyEezB37lyefPLJRo/rUUIsFuPh4cF7773Hs88+K9TXV0XVxbCphqlIJMLY2JiwsDB+/vlngoOD+eGHH5qFwSInJ4fNmzczd+7cauOsrKxEoVBUY7GpC3l5ec2uJaFQKFiwYAHnzp1rVpYusViMvb09kyZNYsaMGXh7ewtN9Y+6plssFuttsBYWFnTo0IFZs2aRm5vLnj17+Oeffzhx4gTl5eWYmprStWvXamvWg+tfWFgYV69e5ZdffgFg1qxZBAYG8s8//zBv3jwA3njjDb766itiY2MxNjbmvffe4+bNmyxfvpzr16+zdu1annjiCXx9fTly5AhpaWlMnDgRiURCbGwsK1asQCKRMGnSJLp168Z3333HtWvXSE5OpkePHk26L7q1qOp80kUWgVbDOKVSqSgoKMDExKTa3FAoFJSUlNSr1E2r1QqUzf8peOedd5g6dWq9slepqal8++23Nb53/PhxOnfuzIwZM3jppZeE1319fblz506tPan/DUhMTOTEiRNN6lcwNjZm9uzZzJs3r8Y97HGgaobDyMgIMzMzPDw8GDVqFCUlJZw9e5a///6bgwcPkpmZiUqlEtaIKVOmYGZm9tC507ZtWz744INGj7ExAYxW51gYGBgwfvx4xo0b1+jFRiQSERkZyfDhwwWKu+aChYUFr7/+Or169Wr0Ii8SiejYsSNjx47lwoULjTJsz58/X6eRce/ePVJTU1m4cCExMTEcOHAAuC9SpNVqyc3NbdDnabVabty4wYIFC5pkiEulUkJDQ/nxxx/p0qWLwKjwuKCLhPfu3Zv9+/czY8YMjh8/3iSDTS6X8+WXX9KpUyfatWvXoO+TkJCAi4sLK1asaFRk4HFDJpPRuXNnli1bJlAy1/R9dRkYV1dXzM3Nm/wb64xdZ2dnXnvtNczNzfnmm28a/Bw/iNLSUrZv384rr7xSoyEQHh7O/Pnzhe/6MOzevZspU6Y0aUxVoVar2bhxI7t27aoXiUR9IBKJMDMzY/Dgwbz55pt06dJFiNK1lIGnK4eTSCS4uLjwwgsvMH36dO7du8eWLVuIiYlhxIgR1Tb/MWPG6P1taGjI7NmzUSgUiMViYVP89NNPUSgUgobCb7/9RmVlpVCyFxgYyKJFi/SuZWlpyUcffaT32pQpU3j66aeFTAzAl19+KfSwNfX+nT17FpVKRUhIiOB4ZWVlceDAARQKBUOHDsXFxaVFa+21Wi2ZmZl8+eWXTJo0SShfagwMDQ3Zt29fM46uZWFsbCz0ID1YClMTTE1NMTMzqzFDl5+fj7u7O1ZWVnrPla6G/78VWq2Wu3fvcvXq1UZfQyaT8corr7BgwQKg5da9B1HV0bCxsWHYsGEMGzaMoqIiDh48yIYNGzh79iwGBgYMGzasXs5rfcQUNRoNCoVC6GNtKlqdY2Fvb8/bb7/dLIbIpEmT2LVrV7M5FiKRiOHDh9OnT58mp2EtLCwExpxbt241+PwbN24IVLs13StditXe3l7vfV0DYEPur1arpaioiA8//LBJxo1MJqNv374sWLCAoKCgFtscdUaql5cXv//+Oy+99BKHDh1q0mIdGxvLtm3bmD17dr2iCDqYmJhga2srGCmtZYGrCQYGBvTp04dff/31oTooe/fuZeHChbz++uu88MILzTYGkUiElZUVU6ZMoaioiIULFzYpQ6BWq7l79y4nT55kwIABeu8ZGBhga2vbIMfI3Ny82Z5rnTO/fPnyZmM90dWoz549mylTpmBtbd0s120uVL3PEokEDw8P5s6dW6/jq/5dEzlF1ddEIlGj1/Cart1cvQ5nzpzhr7/+wtnZmX79+jF+/HgWLVpEQUEBJSUl3Lhxg3fffbdZRKwaA41GQ05ODklJSZw5c4aBAweSlpYmUFpWvafl5eVkZWWhUqmEksaq9eA5OTmCQW1tba13rlqtJi8vDxMTEyorKwWNEFNTU0xNTYU5JpfLKS0tRS6XCwEvXdN81eMeFz788ENCQ0PrHeU1NDTE3t6+xvJJNzc3MjMzuXv3LiqVisrKSgoLC9m5cye+vr6PjHWutUOhUHD37t0m9Up27dqVL774olXvt1XHZmVlxbhx4xg3bhwJCQmkpKTg5OTUbOPPz89n8+bN9OrVC39//yZfr1U5FhKJhDFjxjQbR3lwcDCdOnUiKSmpWSi+7O3tGT58eLOpLru7uxMaGtooxyI9PZ3i4uJaGYPMzc2xtLTkwoULlJSUoFAoyMvL49q1axQXFzeoGUer1bJt2zYh69EYSKVSIiMj+eabbwgODm4VE1okEuHp6cn333/PtGnTuHjxYpNqpJctW8aTTz5Jhw4d6v393NzcOHXqFGvXrqVHjx5ClMvBwaFVKQtLJBK6devGypUrcXFxeejxhYWFWFtb4+Xl9Uh+azs7OyZPnsydO3fYuHFjkzJOJSUlHD9+vJpjER4ejpeXV4N6Z6ytrfHw8GiWqE9lZSV//PEH0dHRTb4W3Ddiunbtyttvv82QIUNaLXuOVqulvLyc/Px8QQdIJpNhZWVV45woKSkhPz8fCwsLLC0t/9XMOUqlkqCgIEaNGsW+ffuIjo4mJyeHyZMn0717d5577jmKiopazLEoKSnhpZdeIiYmhjt37vDaa69hZGSEl5cXb7zxBsOHDwfus65t376dH3/8kYyMDBwdHZk1axbDhg3DzMwMgHfffZfTp0+TlJTEr7/+yqRJkwRjOT8/nyeffJLhw4cTExNDTEwMpqamDBkyhNmzZ+Pg4IBCoeDo0aOsXLmShIQE8vLyyMnJwcHBgY8//phx48Y9dnXqB7U3HgYrKytmzZpVY1BryJAhLFiwgK+//pqEhAR27drFgQMHuHTpEp9++ul/rfJ2fn5+k0qYpVIpH330Ua2OmY4u1tLSUqgiqKiooLCwUGDVzM3NFUrLy8rK0Gg0mJmZCTIIOoY8nV6NSqXC0NAQa2tr4Zo6mmkjIyPKysqQy+UYGBhgbW1dp1Pctm3bZrNBdcjKyuLPP//E3d39P8+xMDIyYuLEic16zUGDBnHo0KFmcSwiIyMJDg5utuYeJycn/P39hYewIdCJ+bm7u9douHl5eREeHs7PP/+MTCYjPT2dL774goSEBMLDw+natWu9Pys/P79JzDkikYigoCA+/PBDgoKCWoVToYOOLvGzzz5j5syZpKWlNfpaKSkprF27lo8++kjYPB+GnJwcTpw4wa5du/jpp5+E1z/++GMmTJjQ6LE0N/z8/Fi2bFm9nApAENx5lMZru3btGDt2LFevXuX69euNvk5ZWRkXLlxAoVDolS+0adOmwQQH7du35++//25yWZtWq+XUqVOcOHGiWUqgjIyM6Nu3L++///5DG2pbErpernXr1vH777+TnZ0NgKurK9OnT2fGjBnVztmzZw/ffvstzzzzDC+++GKLNfWWlJQIRn9jG6vt7OywtbWlV69eXLlyhfz8fCorK9FqtRgbG7f42mlhYcHatWu5fv06EydO5LfffiMiIkKvNAzul3iamZnx7rvvYm9vz9KlS9m4cSO+vr507twZgD/++IOKigqCg4Nr/KzCwkI2btzIBx98wLx584iKimLNmjV4e3szbdo04uPj2bhxI23btmXZsmUkJSXxwQcf8OSTTzJp0qR/RWOzruSlJgQFBTFv3jw2bNhAbm4uSUlJuLm58dVXX9W7DOY/EUVFRdy7d6/R57dt25ZevXrVOpcuX77MZ599xosvviiUWl6+fJlFixYxePBgnn/+eRYtWkR6ejqmpqZcvXqVoqIigoKCeP/99/Hz80MikZCfn8/333/PsWPHKCkpwdnZmZEjRwraVxcuXGD+/PmEhIRw48YNUlJSsLCwYPz48UycOLHW5+Jh0Gq1qFQqRCIRUqlUYJGrC2VlZQ2m/64Lrcqx8PT0JCwsrFmv2bNnT6ysrJrMg29kZET37t0bbGjUBQsLCzw8PDAxMWkUZVpiYiJ9+vSp8T1bW1umTZuGs7MzO3bsoLKykuzsbMaMGcOYMWNwd3ev12dotVrWrVtHcnJyg8eng5OTE7NnzyY8PLxFqQBrg4GBAV27duWFF17gm2++aRJb1Pr165k5cyampqb1MgL69u2rx8sP99P7rYnxxMrKivnz59OhQ4d6n+Pr64upqSnJycnVDPbmRO/evRk6dCi3b99utHaNSqUiJSWFpKQk2rdv36TxGBgY4Onp2aRrwH0jdfv27dy8ebPJ19I5FR988EGThTEfNXRsdu+//z5eXl7MmTMHKysr1Go1AQEBNZ5ja2tLSEgIbm5uLaq4vG/fPnbt2sX333+PnZ1do65hbW3N5cuX+fPPP0lMTOT27dtkZGSQmprK9evX0Wq1LZqR0ZWQ6ZpdDQ0Na1yrnJycGDVqFAMHDgTuB/hWr15NQUGB3nF1UVIbGRkRHh7OM888I3z2mTNnuHPnDnDf8VAqlXh4eGBubo63tze2traCM/ZvcCw0Go1AyVtTBqJt27Z8+umnwrH/U92+vzY2RQi5X79+zbJOHDlyhOeee44lS5aQm5vLxx9/zB9//MEHH3yAjY0NS5YsYd++fcyfPx8fHx9OnjzJ0qVLkUgkzJo1C4Dbt2+jVqt5/fXX8fT0ZOPGjezcuZO2bdsyaNCgRo2rrKyMU6dOYWtrS5cuXcjNzX1oP0psbKygT9McaFVWXp8+fZp90fT09MTd3Z3ExMQmlUv4+PjQvn37Zo0SiEQi7OzscHV1bRD3tQ51UZHB/U1q4sSJTJw4UTiuoYtSbm4uy5cvb3T/gZGREU8//TQDBw5sVcbyg7CxsWH06NEcPHiQU6dONfo6aWlp7N+/n+eff75exnRNVJzx8fFYWFg0e7qzMZBIJEyZMoUhQ4Y06Nnp1q0bly9f5uTJkzg5OdG2bdtamTd0KvWNgaWlJX369OHw4cNcunSpUdeA+5vV1atX6+VYyOVysrOzhVIdHd2po6MjVlZWTV7DdMxtJ0+ebJKQJtx/vsLCwnjzzTdbvVMB942nq1evolareeGFF3j55Zcfes6AAQOqlbE9bmi1Wo4dO0ZKSkqTerV69+5NUVER58+fp3///jg4OFBWVsbJkyc5ePAgAQEBrapEsjbY2dnplRAaGhoK/X31hYGBgd4aKJVKkclkQvWBs7MzDg4OXLp0CXd3d7KyslAqlYKWzr8B5eXlHDt2jPLycsaPH1/nsVXXlevXr9OuXbv/yj6LysrKJmVx27dv3yx2ZocOHRg+fDiBgYHA/TK4zZs3U1JSgrm5OatXr+b1118XKLJtbGy4efMmW7du5fnnnwfu22iDBw9m2LBhwP1AY1xcXJMC4ZmZmbz66qt069aNNWvWcObMGZ566ilMTExqrSBQKpVN3muqolU5Fk1hl6gNYrGY4OBgzpw50yTHomPHjvj6+jbjyO7DysoKJyenRjkWGRkZtToW5eXlZGdnY2dn16Bm4gehi5w1FkFBQTz55JMNFliprKwkLi6ONm3a1KusSK1WExMTIzhqDYWumfvpp5/m8uXLjY5+A6xbt44JEybUKmCoUwc3MTFBLpdXy1YdOHCAdu3atQrHokOHDrz55psNNvxzcnIwMzMjJiaGkydPEhwcjKOjY40L2/vvv1+rIFZ9EBYWRufOnYmOjm70HC8vLychIeGhx+Xl5XH69Gl2797NxYsXycvLQyaT4enpSd++fRk+fDj+/v5NysyVlJRw4MAB4uLiGn0NuL/2+fr68sILL9C3b98mXetRIzMzk9u3b1NSUsLJkyfRaDSkpqayZ88e4L4DGRISIhiMZWVl3L59W68kon379nh5edVoNKSnpxMbG0t4eDhqtZq4uDiKiooQiURYW1vTsWPHao3HaWlpZGZmCnSopqam2Nvb4+rqKhybnZ1NamoqeXl5nDp1CrlczuHDhwXjXyqVMmDAgHobMnZ2dkyfPp3p06frvd6pUycyMzPp0KFDq6qtr0s0r6llkDodotrg7e1Njx49WLZsGYsXL8bFxYXRo0fTp0+fR5YhbW6UlpZy/PhxysrKHupYVMXcuXNZvXp1vUtT/5OgUqmatD/XJSxcGzQaTbVyIltbW701w9XVVeinKCgooKCgQK/CxcDAAHd3dw4fPiw4RhYWFnq2kY7uuyllSVZWVkydOlXPDtIJhNZmh6WlpTWph/ZBtBrHQiKREBoa+kiu3aFDBwwMDBqt0KjboBtqHNcHFhYWODg4NOrcuhyLpKQk1q1bx9SpUxtd3lFUVMSaNWsaXRpkbm7Ok08+SUhISIPP1UVyHBwc6uVYyOVyFi5cyIABA2pUMYX736e0tBQXF5caFxYLCwvCw8MJCgpqkvDOuXPniI2NFWqPH0R2djZxcXH069ePW7dusX//fr0N9OzZs41yjpobBgYGzJkzB0dHxwYvxKdPn2bNmjXA/azVrVu3aiUpeP3115s0Tjs7O0JCQnB0dGx07W15eTm3b9+ulWUNoLi4mC1btvDbb7+hUqlwdnbG09MTlUpFUVERS5cu5ezZs3zzzTd06NCh0VGx6Ohorl692mQBRxsbG8aPH8/YsWNbfUNzTEwMv//+O/fu3SMlJYWKigr++usvYbPr2LEjX331leBYFBYWsnv3bvbs2UNGRgZpaWl8+eWXvPrqqzUao8eOHePVV19l27ZtXLlyhX379pGVlYVcLsfT05Ply5cLRkJpaSnHjh1jw4YNJCUloVAo0Gg0GBoaEh4ezsyZM+nYsSNwn51vy5YtXL9+XXBMFyxYIDiW5ubm9O/fv0H3QhdsqGpcODs7P5SJ7XFCJ56YlpZGSUmJIDDYUINe1wDbmEZcpVJJWloaQUFBvPPOO/9KI1upVApGcnl5uaDZYmxsTFFRUY1RZK1WS0pKSrNq2jQUarWazMxM4uPjhWi3jY0Nfn5+GBsbc/v2bbKystBqtULGWqVSkZiYiKenJ/b29gDExcWhVqtp27YtBgYGlJaWcuXKFUpLS4WM1YPipWq1ukmG98P6WUUiEWKxWO/+lpeXV2MfLCsr09MSKSkpEeirdcrbVUv/NBoNJSUleuKOEomk2fsQ7ezseP/99/Ve8/b25tVXX6VTp041nnPhwoVGkQjVhlbjWDQ20lwf6B7axsLS0lKo42xumJmZNZryMScnp9ZJkpeXx6VLl4SUW2Nw6tQpwdhqDEJCQujVq1ejUvc2NjZNNjgfxLlz58jMzGTSpEm1RpQ9PT0ZNGiQoLjbGKjVanbu3FmrWJZcLicvLw+4b5js3r2b7t27C++XlJQ8FgXfhyE0NJQRI0Y0au7069ev3n08jW1Sq4rg4GB8fHwa7VjI5XJSU1ORy+W1ljtevnyZv/76C09PT6ZPn06XLl2wtbUVlKN3797Njz/+yJo1a5g3b16jarwVCgVnz55tcrZC1zf07LPPtuoSRB06dOjAK6+8glKpZMeOHaxcuZJnn31W6CEzNzfX61twcHBg2rRpDBs2jL///pvffvutXp+zcuVK8vPzGTx4MK6uruTn55Obm6uXMUtKSmLx4sXk5ubyzDPP4ObmRllZGYmJiZiZmekZAr6+vkyaNImysjJmzZqFTCZj3rx5wpqu082oLzIzMzl16hR3795Fo9EI68DYsWPx8fGp93UeJXSUz126dGH79u3k5OTg6OhIt27d6j3G27dvExMTQ15eHsXFxZw+fRqpVIq9vT1Dhw6t1zV0Bm1iYiI7duzAzMwMIyMj2rRpQ7t27VrkuW8ovX1OTg43btygffv2xMTEcPToUXr37k337t05ePAgZ86cqXaOjvK3JVFSUsKff/5JUlISUqmUCxcu4O3tzfvvv4+5uTlnzpzh1q1bggMwceJE3N3d+fXXXxk5ciSDBw9GLBazdOlS/Pz88PT0RCaT8ffffxMTE4NCoUCtVgt2QFUbQmf4NxbZ2dl17q9GRkYYGhqSkJBATk4OCoWC6Ojoan0dd+7cITY2FldXVyorKzlz5gzt27fH2NgYGxsbunfvzr59+wgPD8fKyor4+HguXbpE165dH2vjvY2NDaGhoXVWBRgbGzerg9NqHIsOHTo8MlVRDw+PJt00V1dXXF1dH8nYdPRljUFhYWGtE8TY2Bg7O7tGs2FpNBq2bNnS6Lo7Y2NjevbsWSN1WWJiIllZWWRkZAiRi7S0NHr27ImLiwt37twR6qwHDBggTAi5XE5iYiLx8fFUVFQgl8txc3MjODhYaJZOS0tjz549FBQU4ObmRufOnRGLxZw7d461a9cK1JXGxsY8+eST1RYoa2trOnfujL29vcBI0xgcOHCAzz77rEbj0tvbW6BU9vDwYObMmUyaNEl4/5dffmlSaVBzQCwWM336dD018Iag6nd8HGjTpo3AkNYYp0yr1VJSUkJubm6tmclLly5RVlbGq6++ytChQ4UGQJlMhp+fHz4+Ply9epVdu3bx/vvvN8qxSE1N5eLFi00W/nN1deXZZ58VUvG5ubkUFRXh5ubWKuuydWusSqXi5s2bSKVS/P39ayWnkMlkODs74+zszLVr1+q9UZ8+fZo///yTkJAQvWel6jNeVFREamoqYWFhTJs2TTBqdMJkVdcMd3d33N3dkcvlmJmZYWhoSI8ePRpEUVwVUVFR7NixA1dXV72Sp6aIkj4K2NnZ8cYbb7Bjxw6SkpIEJhq472wNGjRIL4Pg6enJ0KFDhbmVlZXFhQsXyM3N5cknnwT+f6Z2yJAhGBkZMWrUKL39w8LCgl69emFiYoJWqyUtLY2KigqkUinHjx9HJBJRWVmJpaUlc+bMoVOnTo+90fn999/n7t279WbwUqvVlJWV0b59eyorK8nNzRUqKw4dOsSNGzeqlcS2BoG8oqIijh07xgcffICPjw9r1qyhsrKSgIAAcnJy8PPzw8nJCblczoYNG4iNjSUyMhJPT09u3rxJWFgYZWVl3Llzh6lTp2JsbExJSQkLFixg4sSJeHp6kpGRwZYtWxg8eLAewYlu/24srl27hlqtrtUmdHZ2JjQ0lNOnTwtCm8nJydX6dkQiEVFRUdy5c4fc3Fzu3r3Lyy+/jKWlJSKRiLlz5zJ//nwWL16MlZUVmZmZGBoaNquAan3g7++Pvb19nWuSnZ2d3vxsKlqNY9GmTZtHlq53cnJq0mbq6OjY6I3iYdDJuDcGNYnq6ODq6krnzp3Zs2cPSqUSGxsbvftrZWVVZ61ucnIyp06danTK0dvbm7CwsBqj0ZcuXeLo0aNYWVkRGxtLaGgoN2/epLCwkJkzZ1JcXEx0dDR79+7Fz89PMLJTUlLYvHmzIP538eJFevTogZ+fn+BYREdHC4J+27dv591338XX15f09HTu3r2LqakpiYmJtTb3SSQSPD09CQkJaVLNYVxcHElJSQ/lhO7QoUO1EoeuXbu2eB21j48PvXr1+tfUKtvZ2eHu7o6xsXGjnWGFQlGnY1FYWIiZmRn29vY1sorIZDLatWvHvn37Gm0IXrp0qcm6FcbGxkRERAiaAgB3795lx44duLm54e/vT4cOHRpVa/xvR9++fWnfvr3wvWv6/vb29gQEBHD16lWWLVtG9+7d6dChA/b29o9c+yM9PZ3OnTvz8ssvt0oHUAcDAwPCwsJqZHGs6fWgoCA99fqIiAgiIiJqvb65uXm1cg4HBwehzLWsrIy9e/eSmprKRx99hLe3N1qtltjYWD755BNu3LhBYGDgY9dq0Wq19O/fn+7du9erz6qgoIAjR44A9+9J9+7d9QIWzz//PBMnTqymvN2UUt3mgJGREd7e3uzfvx8vLy+BblWlUnH9+nX27duHg4MDUqmUkpISwY4YMGAAK1euJCUlhXPnzhEcHCywueXn55ORkaHX7zZ27Nhqe6GRkVGjg7EAJ0+epLi4WE+ssSocHBx45plnsLOzIy0tDSsrK8aOHUtpaake419QUBAhISHk5uZiamrKrFmzGDx4sBDk6NmzJ2KxmCNHjlBcXEybNm3o06ePMA9cXV0ZPXq0Xh+Gi4sLw4YNE0otmwPW1tYPrYpxcHDgtddea7b50mocC29v70e2yRkZGWFhYdHoaKa9vb0QWW9u1EbXVx/UxYxQUVHBtWvXuHjxIidOnKhmDI0dO5YhQ4bUev6BAwfqLLV6GAIDA2ulh4T7G9PMmTOZPHky3bp1IzAwkL179yIWiwkNDcXe3p6zZ8/qnZOWlkZKSgqvv/46hoaGrF69Gj8/P9zd3QXKPnd3d6ZPn46FhQXPPfccCQkJdOzYkcmTJ3PhwgWcnZ0f2ozs6OhIQEBAkxwLpVLJ0aNHH+pYWFtbY2xsTEZGhlBTb2tr2+IZiyeeeAIHB4cmOftarZbc3FwSEhLIzs7G2dmZjh07Ym5ujlqtpry8HAMDA6FhrSkQi8W4ublhbW3daMeiaolaTTAzM6O8vJyioiI0Gk21e6NSqUhNTW00M1RFRQWxsbFNonaG+5vEhAkT9Eo3HRwc8PDw4M6dO4LSuK+vLyEhIbi7u7dqI7Y54evr+9DfRpdFXLlyJX/++Sd79uwhNDRUMIadnZ0f2V7l5uZGeno6WVlZuLq6tih9bmuGrq9JrVZjbm6OoaEhZWVl5OTkCDS4LeU0Dx8+nGeffbZeWbTU1FRhPZFIJHq/95AhQ3Bzc6sxuNO5c+cWnbMmJia0b9+eI0eO4OLiQmhoKH369EGhUHDlyhXKysp48cUXyc7O1ivnCgoKQiaTce3aNY4dO8bzzz8vOAkWFhZCKVxkZCRqtZqCgoJqRrGZmVmj+1LhfqnjoUOHatVMk0gk+Pr68sorr9R5HYlEQr9+/WrtYRWJRERGRtbKxleTTpKvr+8jIQl6GMRicbPSM7cax+JRKfTqYGtri1gsblQKUSdaBPe5i2NiYup1nqGhIS+++GKdx+jSeo1xeioqKlCpVDU2nIpEItzc3GqNvtblzGi1Wg4fPtzoZnczMzMCAgLqrLG3s7PD2NgYU1NTXF1dyc7Ofmizqr29PZaWlmzevFlQ2H2wprdjx46CE2VjY0NlZWWDf3NdE5qBgYFec1ZDoNVqOXPmDLNnz67zuPT0dPbu3cvNmzf1DJ6nnnpKr+/iccLAwICBAwc2OpMG97//9evX+euvvzh9+jRZWVkMGjSI1157DXNzcyoqKvjll1/w8/Nj0KBBeouaWq0WHJGaoNFohN+l6ubt7OyMlZVVo/ssdOr0taFjx47s3LmTbdu2YWlpqeckZWVlERUVxbFjxxg0aFCjMj337t0jPj6+SWKehoaGhIaGVmPY8/DwYPr06eTm5nLlyhUOHjzI8ePHsbe3p0uXLgwcOBBfX99HHuHduXMnV69eRalU4uXlxejRoxvdY9YY1KdExcTEhN69e+Pt7c3p06e5cOEC586dIyoqiqeeeoopU6ZUayhtLmi1Wvbv38+lS5f0dDmeffbZVsES11pgampK9+7dSU5O5qeffsLU1BSlUklubi7du3cnJCSkRTSTevXqRbt27ertEOr2/5r22qoZxwcxe/bsJkXtmwqVSkVeXh4KhYKioiJBZDQ8PBxXV1eio6P5/fffAYTsANyfW7169eKff/4B7ouc6tZKa2trZsyYwZ9//sm5c+dQq9VYWlry3HPP6d1PKyurJpXsaLVaFi9eTM+ePevdB1jbdVpDL+TDoFAoqKysxMTEpMY5odFoKC4uFmjTmyOY0Woci9qYepoLOkO0oUamRCLByspKMLLu3LkjeOAikQiVSsWVK1ewtLTE1dUVAwMDcnNzSUxMZOzYsQ+9vk4dUSaTNdiI1Wg0tZYqeXt788knn9R6bl2LbmZmJjdv3mx0GZSbmxt+fn51RlSqGtH1je5aWlpiY2Mj0C5269atGuOUVCrVmxhVJ76RkVGdfSk6GBoa4uzsjJ2dHenp6fUa24PQarVcvXq1xsh2VVy/fp2oqChCQ0P1DKzmaGhuLNq2bYuvr2+TNuaUlBRWrVrFgQMH8PHxIS0tjYyMDOEZl0gknD59mvPnzxMeHq7nWJSVlfHjjz/y4YcfUlRUJDihcL8c6fjx4xw7dgwTExMGDRpEeHg4BgYG2NnZNYm/XqVSVWP+qIquXbsycOBA/vrrL5KSkmjTpg2WlpYolUpycnK4ePEibm5uTJ06tVHRxNu3b9eL8rYuWFpaMnLkyBpL6crLy7l79y63b9/GxMSE7t27I5PJSE5OZt26dTz33HOP3HjdvXs3q1evprKykl69etGvX7/H6ljUFzKZDF9fX7y9vRk8eDCXLl3i999/Z8OGDQQEBFRzLHRzvKmGhru7O7169aoWZPlvK1l7GKRSKT169MDc3JzY2FjKysqQyWRERETQuXPnR8LgWB/Mnj0bFxeXeq+dZmZm9OvXr8H0qd26dWvM8JoFKpWK27dvk56eTt++fTEyMiInJ4eDBw/i5OQklNDm5ubi4uIiROZ1z3Dv3r1RKpU4ODjoMQ6KRCKef/55jh49Kug41CR6aW1tjY+PD1KptNHMWBcuXOCHH37gk08++VfowjQF9+7dY+vWrXh6ejJmzJhq9ohGo2H79u0UFBQwbty4Zpk7rcaxaAylZUPQWC0HU1NTrKyshIWif//+Qo2cSCRi165dyGQyhgwZgpeXFzKZjMLCQrZu3VrvOnkdTV9jouO1Gf9isbjRzAOXLl2ioKCg0Zukp6dno9N5CoWCP//8k1u3bnHnzh1WrlxJ586dGTx4MAqFgvz8fNLS0oiJieH27dsolcpa2ZceRGRkJMuXL2fevHlCTWFtsLKywtXVtdGOBdyf0FlZWbVG3uF+OZuLiwsvvfRSq+ln6Nmzp9CA1lhcvnyZc+fOMXToUCZPnszXX3+t976xsTEBAQHs3LmzmhFVWVnJ8uXLyc/Pp6ioiICAAJ577jk8PT25desWmzZtEjazTZs2YWVlRXBwMJaWlk1iglGr1XVmzRwdHZkyZQo2NjYcPHiQY8eOUVxcjEQiwdXVlUGDBjFmzBiCgoIaHPVRq9Xcvn2bpKSkRo9fJBLh5ORUo1hcTEwMmzdvpqKiAicnJ8LCwggKCsLR0ZHU1FTmzZtHamrqf31UXKvVolAoUCgUmJubIxaLcXBwYODAgURHR3P69Olq6tFw31E2MzMjKysLhUJRJ21xXejSpUs1Ssjs7OxW6Xy1NCwsLB7aq/G40dDaeBMTE/r06VPjXnvt2jVUKhXt2rVrUva4uaFUKomLi6O8vJw5c+YgEokEcpTCwkKCg4N56qmnaj3f0dGRyZMn1/ielZUVo0ePrvPzjYyM8PLywtXVtdFlo2q1mlWrVmFsbMyrr77a4B7a4cOHU1ZWhpOTU6M+/3EiLS2NzZs3M3ToUMaMGVPtfbFYTGpqKgcOHKBbt27/OY6FVCp95BHa+rI0PAhzc3O9lKOXl5des+3PP/9Mnz59GDVqlF5Ns5GREe+99x7z5s176GdIJJJGR4d1jkVhYSHffvttvc8bMmRIrYKEZ86caZKypbu7e52MQGFhYfj5+WFpacmbb76Jq6srNjY2vPDCC0gkEry8vLC0tKRDhw6CKJVOAE8kEvHUU09hYGBAfHw8J0+exNXVFR8fH55//nk9JpIpU6Zgb28vOFi671tWVvZQ6mBLS8s6HYL6QKFQcP369Tqv4+zsjJmZGTdv3qRjx46PvdmwJoSFhTWZWjklJQWxWEy/fv0ICQkR+hOqwsnJicLCwmpZRK1Wi1wuRyqV0rVrVxISEti6dStz587l3r17VFRU8M4771BSUsLatWuJjo4mODhYYOVpLKqWWNUGb29vnnvuOXr16kV6ejrl5eVC2V2bNm1wdHRsVCo5Pz+f27dvU1hY2MjR319zunfvXuPzplarcXBwEBq37e3thchVmzZtGDBgwCMjqGhuaLVaCgsLyczMpKKigsTERCorK0lOTuby5csCNa2trW2j5pOujKNjx444OztjYGBAWloa+/fvx8PDo8aNVywWExYWxrp161i0aBHh4eGIxWLkcjlPP/10vT9bKpVW2wsOHTokNJC3BBYuXEhcXBw//PDDv0bR+t+Cumrb9+7di6GhIe7u7q3KsdCRVBw4cICPPvoIsVhMZWUlfn5+zdp0XBt0YrbBwcFN6kcrKChg2bJl5OTk8Pzzz9O1a9d624gtVabcGJSWliKXy/Hx8amxekIsFuPt7U1ZWVmdGfuGoFU4FlZWVs3SwFkXZDJZo65vYmJS52JaVFRESUlJNRaYkpKSetOVisXiRjfJ6lKBGo1GTwZeq9WSnp5OfHy8wKxUUVHB7du3cXZ2ZvDgwTVeT61Wc+nSpUY3wOp6Juqq/6zqdOgayK2trQWnoCaKyezsbIFHfvLkyWg0GrZu3cqlS5cEI/RBR+nBSJaFhQUjRoyo1/cwMzNrsrOr0WhISEhg0KBBeq9fv36db775Brhff5qens6BAwdwcnISjNLp06fXGHl+1DA1NaVt27ZNbgxUKpVIpdI6G8LkcnmNRrhIJMLW1pZ33nkHBwcHDh8+zJ9//ilcVyaT4eHhgUgkwsbGRuB0NzAwaFL51sMcC91cs7CwIDg4mODg4EZ/1oPIzMwkOTm5SaU0JiYmDBkypMa1pG3btnh6euplogoKCpBKpZibmzNixIh/jdGoVCo5fPgwv/zyCwqFgszMTAoKCti5cydXrlzBwMCAAQMGMG3atEaJpmk0GpKSkrhw4QIajQaZTIZMJsPd3Z0ZM2bUKuQ6ffp0ioqKOHDgAIcPH8bAwABvb++HOhY61hwbGxtyc3OrUQ2fOnWqWpPn48T+/fs5duwYCxYs+Nc8I60Nunr82uZ3TdoMGRkZODk5tYpgU1VIJBICAwOZNWsW+fn5gnPUtm3bR0Zy8yC8vLzo1q0b+/bta3QfJNwP6Kxfv574+HhGjhzJmDFjHln/VEtBo9EgEonqzOZLpVKUSmWziS62GsfiUdeQNtbg0DUY14bu3bvzzz//UFxcTGBgIAYGBqSkpLBx48Z6K642RfBFF+01NzfnnXfeEV5PTk5m06ZN9O7dm4EDB2JiYoJSqeTy5ctER0fX2muSmZlJRkZGox8wGxsbXFxcmp062MLCgg4dOrBx40Zmz54tXL9Xr16PRJHW2Ni4ybWXGo2GlJSUaq/b2dkJjXm65/7BDacqrd3jhI+PD7a2tk1u4LKzs0Mul5Oenl4j9Wp+fj4nTpzA09OzmhOjcxiMjY0FZ+HevXvcunWL/Px8NBoNGo1GEPXRXV8mkzVp3FW5+GvCn3/+yfXr1+nbty9du3ZtVrrWrKysRjed62BmZqbH914VVdVedThy5AgODg707NnzsRkED4NYLGbYsGF4e3tX65/SQSKREBISwpw5c2q9zoPBjV69erFmzRrat2//0L2gY8eOfPvtt+Tl5SGXyxGJRBgbG+Pk5ISnp2et0WN/f38++OADUlNTKSsrQywW1ys4ERMTw7179xg7dix79uxh69atep9x6dIlJkyY8NDr/A+tC1qtFqVSyZ9//snRo0frLC8eOnQos2bN0nvNx8eHkpISiouLW1UfgM5IbckSNHNzc7p06YK/vz9Xrlxp0rXKy8s5ceIE8fHxHD16lCeeeILhw4f/K5Xca4KRkZGg8VUbdCXfzcU01iocCx0V7KNEYw3dh2UsnnnmGaRSKUeOHGH37t1oNBrMzMzo1q1btYWiNjTlu+sWKp1Ilw65ubnk5eXx9ttv69Gh2dnZERMTQ0JCAv369at2vdu3bzeaDUp3/UcxIXXCU05OTpSVlSESiTA1NX1kiujGxsZN1pLQaDQ1GouOjo6MHz++znNbimZSpwnSVISGhuLq6srKlSsFliexWExSUhK3bt1i27ZtnDlzhk8++aTafTY0NKRz587MmjULb29v4uPjMTQ05PXXXyc7OxsnJyeio6Oxs7MjNzdXiDBJJJImO7R1ZQzu3bvHhg0b2LlzJ76+vkRGRjJo0CA6dOjQZCXV7OzsJvXzSCQS/Pz89ByE8vLyamqxVXHp0qVajfeWgo7prS4FZ4lEUiNVY12oiyGvKkQiERYWFnTu3Lne1646rrZt2za4T6VNmza4uroC97MXgYGBeurTS5Ys+a+hA/5PglarZcuWLcybNw+5XI6FhQV37tzB09MTpVJJZmYmBgYGdOvWrUb61MGDB7N69WrWrl1Lt27dqtFYBwQEtJq+vMcNkUhEp06dGDBgADExMY0mmtFBo9GQkZHB3r17iY6O5p9//mHo0KFCkOPfDHt7e1xcXDhw4AA9e/bUW9s0Gg0XL17kwIEDuLi4YGdn1yyf+V/jWDT2+oaGhnUaDS4uLkybNo3BgwdTUlKCVqvFyMgIZ2fnBjX2NPf3V6vVFBYWVms0LC0tJScnp9Yof0JCQqPLoOB+b0JzPZxVIRKJsLS0rNbY+Kggk8mabCzq1GEfRNXSN116/FGJQzYUnp6ezcJn3a5dO6ZPn86PP/7IvHnzyM/PRyQSkZCQgFKppLCwkGeeeYYnnnii2ueZmpoyd+5c1q9fT05ODn379mXgwIHk5eVRWlrK3bt3+eyzzygtLSUoKKhGka5HgcmTJ9O+fXuOHz/OkSNH+Pnnn1m/fj0BAQEMGjSIQYMG4eTk1ODfUqVSkZWV1SSldwMDAz1xLbgfCZ87d26tDnJSUlKLcKb/D/qo6gx27doViUSiV2515syZRxI8aQoUCgWnT5/m22+/pU2bNrz99tu4u7tz7949Vq9eTWpqKi+88EI1B+3bb7/l8OHDfPPNN4SGhnLmzBm+/fZb5s6di5GREevWrSMuLg6xWExgYCCTJk2q0fnNyclh37597N+/n/T09GqZxoiICGbNmtVimV+4v7avXr0aIyMjVqxYQXFxMXPnzuXzzz+nTZs2xMfHs27dOqysrGr8jn///Tdr165FpVKxZs2aak7EgQMHmtwH+G+Gra0tAwcOJCoqqtkEA1UqFSkpKWRkZHD58mU2b95M3759GTVqVKvpgWwovL29GTFiBPPnz2f27Nl069YNb29v1Go1SUlJXLx4kbS0NN57771mc6JahWOhY99ojdAxNtUGXdlGS9KD1gRHR0ccHBz4+OOPGTZsGM7OzhQWFnL06FGKiopo165djec11bEwMzP7j2AwkUgkTV5ENBrNQ6PQx44dIyEhgZkzZwqvrVu3Dmdn53qX0jUn3N3da3SolEolv/zyC+PGjUMqlfLll1+Sk5PD3Llz6dKlS7XjjYyM6N27N+7u7hw/fpyzZ8+SmZmJRCLB29ubAQMGEB4ejqOjY7W5r4u+v/7661RWVmJmZoaVlRUajQa1Wk1xcTH+/v4UFxfTvn37OqPbzQk3NzccHBwIDw/nhRdeIDo6mv3793PixAlOnDjBokWLiIiI4IknnqBfv371fn6KiopIT09vUtRNJpNVc7rVajXe3t68/fbbNZ6zZs2a/9XMtzIEBgZWe23KlCmtqnlXpVJx6dIl3nrrLRQKBa+88orgHFVWVhIfH8+tW7coKiqqdm5CQgKnTp0SSAry8/M5d+4cy5cv5/Lly1hZWeHi4kJKSgq//fYbFy9eZPHixXpCo9nZ2Sxfvpw1a9bg6+tL586diYuL49SpUxgbGzNy5Ej69OnT4uVDWq2WmJgYxo8fT69evbh9+zbm5ua4uroSGhpKx44dMTAwYPXq1Zw9e7baOjZ69Og6aWX/E/bZpkAsFtO9e3dGjRpFQkIC+fn5zXZtpVJJRkYG2dnZXL9+nS1bttC9e3fGjh1L9+7dW1RDpKEwMzNj9OjRqNVqfvvtN1atWoWhoSFarZbKykrc3d156623GDNmTLOtM63CsWgKReSjxsMci/LycrZu3UpUVBS5ubl69eSmpqZs2LDhcQyzGry9vXnnnXdYs2YNGzZsoKioCBMTE4KCgnjttddqrY9MTExskmNhbm7+H7HgNYdjAXWro8P9BtoHy1Xu3r3bYrz1rq6uNToWKpWKDRs2MGXKFM6ePUtGRgb9+/dn/fr1NToWcH9ed+zYES8vL8aMGYNSqUQkEmFoaIiFhUWdhA0SiaRa3b9OmdbW1pZevXoJjbWPMyhhYGCAg4MD9vb2eHt7069fP3Jycjh//jyHDx/m4MGDgghcfedBYWFhk7IVcL+H7EEFWDc3NyZOnCjQYz+Ijh071sv4yszMZN++fZw5c4bExESKiopQKpUYGxtja2uLt7c3gYGBhIeHC8KS9UHV3+3WrVvs2rWLU6dOkZWVRXl5OVZWVvj6+tKzZ0+GDRv20D6Qn3/+mTVr1lBeXk5gYCCffPLJQ5mU8vPzeffddzlz5owgDLlgwYJqx61fv57FixdTWlrKW2+9xcSJEzE0NCQ5OVkQG0xNTaW4uBgTExPc3Nzo2rUrEyZMEMqcakNmZia3b9+u85iOHTu2in1SrVZz48YNXnvtNUpKSvjuu+/o379/k7O727Zt4/nnn+fll1/GzMyMoqIilixZwrp169i0aROff/65cGxMTAwbN27E39+fzz77DGdnZ4qLi/n666/Zvn07Xbt2pVevXq2ifEypVAo9azoK+NzcXKFvx8/PDzMzM65fv17t3LZt29ZZ7tdag7GPE2ZmZowbN47Y2Fg2btzYKAHkuqBWq8nPz6egoICkpCT27duHn58fI0aM4Mknn8TT07PFypbrC5FIhL29PVOmTGHAgAHcuXNHqKRwcXHB29sbV1dXzMzMmu2ZahWOhaGhYa0GRnp6Ovv27aNXr14twozxMMdi5cqV/PHHH/j5+eHt7a33wzSnRHpDIZPJCAkJwcfHh7KyMtRqtcDeoDPqHoRCoSA7O7tJkdOdO3dy+vTpf/2ip9Vqm0S5q4NarUahUFS739nZ2Zw8eZJDhw6RlpYmqJQWFRVx6dKlWjNKjxIymaxWik5ddEOj0XD06FEmTJiAm5sbx44dq/OaYrEYMzOzBkVCdPWuv/32G9evX6/W8zNo0CDefPPNel/vUUBnGBgbG2NtbS1oDahUKtLS0mpsWK8NpaWlTaKZhfsZogfT2C4uLnUa4+PGjatzU1SpVCxdupRly5aRlZVFRUUFCoUCjUYjlO/pHHBDQ0PMzc2JjIzkjTfeqNXZfHDMKpWKRYsWsXTpUuEzVCoVGo0GiUTC2bNn2b59O3/88Qdvv/12naxu2dnZ3Lhxg7KyMkxNTeulYK5SqUhOTiY2NhZDQ8NaHZH8/Hxu3rxJcXExN2/eJD8/n+PHj/PTTz9x69YtysrKUKlUwjorlUrZt28fv/76K++99x7Tpk2rdQxXrlxh4cKFwP35kpmZKagO5+bm4uXlxbffftviWXGpVMrdu3eZOXMmOTk5fP/99wwePLhZDHgrKytee+01vLy8BD2WadOm8fvvv3P58mXhOF0WOD09nTFjxtChQweB7rlTp07s27ePoqKiVlNe6uTkRGpqKnA/KGFlZcXly5cZNWoU8P9FdmsSyGsN42/t0FHPzpw5k9TUVI4fP/5IPker1VJeXk55eTmZmZlcvHiRJUuWEBkZybhx4+jZs2erK1esCrFYjLm5Oe3atcPHx0coHdTRWzd3ILNVOBZ1aUykp6ezYcMGunbt+phHdR818YpXRVRUFOPHj2fy5MnV0mMtqZaqU/RuSJlWfn5+vTbjulBaWtpsXMj/CdBqtVRUVFRzLHRsR7m5udy7d0+oEZXJZIwcOZLevXs/9rFaWFjU6uTrmuXXrVvHlStX+Oijj7hx40atTmhV47Oh86CsrIwPP/yQ8+fP069fv2pOSWugA9RoNNy6dYsdO3awfft2bt++jVwuJzQ0lDfeeKNBJUZlZWVNcix0Dc8PPmO6DE9tqGsj1Gq1fPjhh/zxxx/k5eXpNbXroq9KpRKNRoNSqaS8vJyCggLy8/Pr/d3NzMxYuHAh27ZtIzs7W4+IQlf2plarqays5NSpU5SXlyOTyWqlyn5cSE9PZ8mSJWzbto34+HghSqrboHW0xQqFguLiYj788EMMDAxqFQXr27ev0Cd04MABMjIyhH6d5ORkdu7c2eJGpoGBAaWlpUybNo3k5GR++uknRowY0WzNw926dcPW1lb4W1dibGpqqldSVZW5zcjISHi+dZlQqVRKZWVls9FmNgUikYguXbpw/PhxoaTT39+fDRs24ODgQEhICIcOHeLq1as19lhotVrOnTvHqlWrOHv2LBUVFbi4uDBu3DgmT578WHpTGwutVitE+GNiYvDz8+Opp57Cw8MDpVJJXl4eJiYmzRIll0gkdO/enXfeeYeysjIuXrzYTN+iZqhUKoqKiigqKiIlJYXt27fj5eXFiBEjGD9+PO3bt2+1vRgikUigz36UaBWORV0RD52B0lSGnsZCJBLVOXkrKipwd3fH1ta2RTMUD0KpVHLt2jVWrFhBXFxctYjI7Nmzq210ubm5dSoP/w8Nhy7S/6DTaWlpydChQ5FKpcTHx+v1WEil0hZZmHR6MjXBwMCATz/9lM2bN/POO+8gkUgoKCioVfX8xx9/5MKFC3z44YcEBATUeMzChQuJiopi2bJlekQHlZWVnD9/nkWLFhEZGVlt/rVU6lkXLT1w4AB//fUXV65cobS0FHd3d6ZPn86ECRNo06YNRkZGDfr9mpqxEIlEeHp61rlO6TJwN2/eJC0tDVdXVzp06FCrcRIVFcWmTZsETYU+ffrw6quvEhoaKvS76KL3586d49ChQ9y6dYvg4OB6Z9uOHTtGWVkZcrmcHj16MGvWLEH1vaKigtOnT7N06VKOHj2KWq3m6tWrrFy5ssVrnHfv3o1araa0tJSAgACmTp3K4MGDcXJyQqvVcuPGDZYtW8bmzZsF9p8FCxYwZMgQPeNZByMjI6GUSGdwdezYUYjEr1y5slnrxxsDIyMjXnnlFc6fP0+vXr0YPnx4szIS6UgPdM+ibt+VSCR62T+xWCzstcnJyRQXF2NmZoZKpeLOnTuUlpbi4uLSKnqHxGIxU6ZMQaPRUFZWhpWVFRMmTOCff/4R1lCNRkNkZKRAP14V+/bt4+uvv8bY2JgnnngCMzMz7ty5w3fffcft27f59NNPW2Wtv0ajYc+ePXz22WfcuHEDlUrF8OHD6devHx4eHpSXlzNjxgx8fHx4//33m0W9WiaTMWjQIMRiMfPmzRM0aB41dAGE6Ohobty4wY8//kjnzp0ZP348Y8eOxdbWVnCcWsoJ1BHEZGdnc/XqVUFktiaMGDGiWej7W41jUdtNt7OzIygoiEuXLtXIuNIUcbn64GHXj4iI4PLly3Tv3h0XF5dq36Ol6jzj4+P56KOPKC4upnfv3tXqc2tqeM3JyWmS2Mz/UDNqctZ0kYNevXrRrVs3DAwM0Gg0QnlJSyxClpaWtRrEYrGYAQMG0K9fP8EAGDRoEAMHDqzxeLlcTnl5eZ2Lu7GxMTExMTVmybRaLe7u7q3KWV+8eDHffvsthYWFWFtbM3jwYCZNmkT37t31CCga+tuVlpZWY29rCMRi8UNVs2/fvs3ChQs5e/YsTk5OZGVl0blzZ958881qvRkAR48eFZydNm3asHXrVkFvSCQSodVqsbKywt3dnYEDB/Luu++Sn5/foBKU3NxcxGIxr7zyCvPmzdPTM7K0tGT06NF06dKFN998k61bt6JSqbh58yanTp1i2LBhDbtJzYiCggLEYjFjxozhs88+o127dnrfOSIigvDwcOzt7fnpp5/QarXcu3ePHTt21FkSBfcN+NjYWGJiYvDx8eHy5cvk5eU1SfixOVBQUMC5c+eIiIjgwoUL/PDDD7z77rsNGpdWq0WtVtdI6VxfAVuRSERgYCBPPPEE27dvRy6XExERQUxMDLt27WLAgAF07ty5xTM8OvTq1YvIyEghGBIaGsr27dvZuHEjOTk5BAUFMXz48BqNuaNHjxISEsLrr78uvK/Vatm1axcffvghc+fObZWOxbVr11i+fDkqlYrPPvuMM2fOoFKphN/dwsKCjh07cvr0aQoKCprFsYD7AblBgwbh6urKp59+yv79+5vUL9oQaLVawcmIiori5MmTvP/++4wcOZJnn32W8PBwDAwMGi3U3BRUVlaya9cuPv74Y1JSUuqcG76+vv85jkVdEUhHR0e6du3K0qVLuXbtGm3bttUzfvz9/R+pjPzDxOvat2/PunXrOHbsGKGhoXqiWcbGxnz66aePbGx1IS8vT2Dyqa1580H8L2PR/NBqtQ81rouKijh+/Dh37tzBw8NDcFIfd2Te1NS0TkMhPz9fj0pYrVZTXl7eqGyi7r5UVlZWMzQMDQ2JjIxk+/btzJo1q9qYdDX9jxu6puCxY8cKTGvNsUmUl5fXyKBTX+hq0utCdHQ0UqmU/fv34+DgQE5ODvPnz+fSpUs1OhZFRUVCiY+tra1Q5lM1olz1vxKJpFH6NeHh4bz33ns1lmuKRCJcXV158cUX2blzJwqFgpycHG7dutWijgXc1xCYM2dOjT0Zuj3jvffeY/ny5ZSVlVFZWcmlS5ce6lgMHz6cO3fuMG7cOCoqKjAzM+O1117TY0VqCUgkEg4fPoy1tTVPPfUUS5cuxc/Pj1GjRunNz6qO54PrnlKppKSkpMllSh4eHjz33HPcuXOHf/75h4MHD2JnZ8f48eOZPn16q6FQ1t0L3RzRKSB36NBBrxkd7q+HD64lKpUKT09P7Ozs9PYCf3//Fnc068KtW7dIS0vj5ZdfZsaMGbz99tvEx8cL74tEIjw8PNi1a1ez2xs6muLff/+dRYsWsWbNGtLS0pq9qbsu6Bzo4uJi1q5dy/r162nfvj1TpkxhzJgxODo6Ymxs/Nh+w7i4OJYuXYpareaVV16hU6dOtQbsmovOv1U8nXUZ7rdu3eLdd98V/v9BvPnmm4/csajLeDh9+rTAJX337l3u3r0rvNeSFIEikQgjI6MGMYkUFxc3WWjmf2gY7t69yy+//MKtW7fw9fXl+PHjnDhxgpdffrlGg+9Roi6GpcrKSkaMGMHZs2eF12JjY1m8eDHLly8XjikuLkaj0VBSUoJcLic3N5fMzMxq16uoqODo0aPY2NhUy5JIpVLc3Nz44YcfOHz4MO3bt9djnenSpUuLKBHPnTuXN998s9lFqRQKRZN6m0QiUY0CW1VhaGiIg4MDFhYWaDQazM3NsbOzq9VB8/LyEr7nlStXOHDgAP3798fCwqJZHd7nnnuuTmYqqVSKk5MTPj4+xMXFUV5eTl5eXrN9fmMxdOjQh5Z82djY0LFjRy5cuIBKpapxHjwIJycnvvjiC958801KS0uxtrZuVraWpsDR0RELCwt+/vlnxo8fz7x58/D09NTLEBgYGAh9EXl5eUIWVqPRcPPmTTIzM5tcolJQUMC+ffsoKytj06ZN9O/fv1X2Gmi1WuRyOXl5eRQVFVFcXFyrU+Xs7FzNIQoODubWrVvExcXRtm1bodH70KFDhIaGCnpA8P91nloDSkpKMDAwqLMXztzcHLlc/sgMfltbWz777DN69uzJ/PnzuXz5stDU/7ih0Wi4ceMG7733Ht9++y1PPfUUEyZMICgoqM6+xuZCbm4uOTk5vPjii7z11luP7HOqotU7FsHBwcTExNT6fktTytVETdgaYG9vj7u7O3v27GH06NHVHl5TU9NqToeO9ed/eHy4fv06YrGYNWvWYG1tTWFhId999x1Xr1597I5FbewQJSUlwqaoM+p0NZtVU81Xr15l0aJFpKenc+fOHUpKSnj11VerRUeqnvvCCy9Uc8AVCgWXLl0SONyTk5P13q+PgvKjQFXub53jZGJigoWFBVKpVGg41pWy1Wez0DWjNiWKWx+jwsXFhfPnz7Nt2zb8/Py4ceMGBQUFiEQibty4AdzXMNE1dA8ZMoRVq1ZRWFiIQqFg6tSpTJ06lYkTJ+Ll5YWlpSUmJiZNMniNjY0JCwt7aLmbTCYTMhq1Meg8ThgaGhIQEPBQ+tuqDp/O2X4YdNTTzs7ONfZjtDQkEgkdO3bkm2++4dVXX+Xjjz/ml19+EdicbGxs8PHxYd26dURFRREcHIy5uTklJSWsXr2a27dvN9lJKioq4t69e2i1WnJzc4mNjRVKSA0NDQVnrKVpQLVaLbt37+ajjz4iKyurTvadqVOnVrMlXFxc+OOPPzhy5AgBAQEYGRmRlpbGhQsXGDBgAEuXLhWONTIy4osvvnik36e+0NlkZWVlNRryOhE6MzOzR6ocLhKJGDhwIF26dGHFihWsXbuWxMTEaiyDjxP5+fksX76cDRs2EBkZyZQpU4iMjMTW1hZTU9NH4mAolUpkMtljFYts9Y6FRCIRSi10D2lrik4kJyfX+qDqhL5aAsbGxqjVar7//nv27duHp6en3iR+8sknqwmw6agk/4fHB5VKJdAAw/9nOmmJ36G2jMWpU6e4fPkyWVlZwmamUqnIyMjQo4D28PBg8ODBnDhxgvT0dMEZqclo1ukTzJo1q5pRbGVlxY4dO5r52zUdOkMmKiqKgwcPkpiYSP/+/Zk2bRqOjo7I5XLOnDmDh4cH3t7e9TJsdGnzpvzeuuxkXSgoKCAqKop//vlHeE0qlXLw4EEharh48WKBjczPz4833niD7777jvj4eMrKyliyZAl//PEHvXv3ZtiwYURERODk5ISNjU2jdAw8PT3rtZnqmnjh4aWFjwOOjo5YWVnVy0CuWu5Qn3Fv2rQJjUbDnDlzWjxoVhsMDQ0ZMGAAs2fPZsmSJcyfP5+vvvoKOzs7TExMCA8Pp2fPnmzbto0LFy7g5OREdnY2xsbG+Pr6NikrrtFoMDU1xcfHh927dzNnzhzhdzA0NMTZ2ZkxY8YwadIkXF1dW9RW0Gg0fPzxx2i1Wt5++20cHBxq7WGryU5ITEwUnEtd875YLKZbt26UlJToOaqtoVldBzc3N0xMTDh37hxdu3YVMhOVlZXk5uZy69Yt9u7dW28dnabC2tqat956iyeeeIKff/6ZQ4cOkZKS8tj6L2pCeXk5Bw4cICoqitDQUJ555hn69OmDm5sbZmZmzfrcWlhYYG1tTWpqao3U948CrcKxqCu6p0snpqWlkZOTg4WFBX5+figUCoGvvCWFgxYtWsSlS5eEvzUaDeXl5ZSUlBAQEMC2bdtaZFylpaVUVFTQq1cv4e+qqKn04n+OxeOHg4MDKpWKPXv24OnpSUpKChUVFc3W0NYQ1BZRa9OmDSkpKRgZGQmbuJGREZGRkXrUny4uLkydOpUpU6awaNEizp49yzvvvFONFUrH89+YxbOgoIDi4uLHGn3RoaioiN9++43Vq1ejVqvJycnBzc1NmEsKhYK33nqL8PBwvvvuu3qtSzqdk6biYUZor1692LJlC6WlpRgYGGBiYiLUdet+hweNkylTpuDh4cGSJUv02ET27dvH/v37cXR0ZMiQIYwYMYJOnTrh4uLSIAfD0tKyxaPKjYGpqWmTBeFqg+66raH0SQd/f38UCoWek2RlZcXUqVPJysoiPT2dixcvMmTIEAC6du3KvHnz2LRpE9evX0cul9OtWzcmTpzI3bt32bp1qxBMsLa2JiwsrJoGFNx/prt164a7u7vwWmFhIVu3bmX37t307duXkJAQIYhWVFREVFQUP/74I/b29jz99NMtTv5gZGRE7969mTt3boMdxVmzZjFr1iwAwRl7FJoDzY3AwED69evHn3/+SUZGBnfv3qWsrIw9e/ZQWVnJ7t27USqVvPfeew/N+jUn/Pz8WLx4MRcuXOC3337jxIkTpKamtqiDUVlZyenTp7l48aKeg+Hh4dFsDoanpyedOnXiyJEj+Pv7065dO4yNjWtce3WlWU1Fq3As6oIuCvj7779z4cIFgoKCWL58OZmZmURFRREUFER4eHiLjW/IkCF6HNSVlZUkJyezf//+ahmBxwl/f3/Wrl3boHMUCsVjbXL6H+6X+iUnJ7Nu3TqBUeeJJ56gc+fOLT00AW3atMHDw4PU1FQ+/PDDhx4vFovx8PAgNzcXY2PjZo28nj59mqioqBYpQTx58iR79uwhNDSUiRMn8uOPP+q9b2lpSVhYGOfOnat3VFatVjdLX9PD7rFSqSQhIYGzZ88SHBxMeHg4ycnJWFtb1+nE9unTh/DwcA4cOMDWrVu5fv066enp5OTkkJmZyapVq9i6dSsDBgxg2rRpRERE1Fs3x9DQsFUY0A0NpshkskfmELm5uREdHc3x48f1WBB1hkZLQCfe9yBcXFxYtGhRtdclEgmdO3eucQ3r3r07Tz/9tPB3jx499LJoVeHs7MyuXbv0Xrt58ybLly8nKCiIH374oZq6vY4xKS4ujuLi4hZ1LMRiMa+99hp//PEH27Ztw93dvVbHwNHRsUY2nvz8fO7cuUNqaioajQZra2u8vLxwc3NrtVoJdnZ2PPPMMwDs2LGDzMxMKisr+fXXXzE1NcXNzY0ZM2bQu3fvR+ag14WwsDBCQ0M5fvw4GzZs4Pz586SkpDSJQKOpUCgUnD17lqtXr9K1a1fBwXB3d2/yPdJV/cTExPDiiy8SFhZWK+Pis88+2ywl2K3escjIyGDt2rUYGRkxbNgwQYrc0NCQW7duoVarW9SxGDRoUI2v+/n5sW3bNl555ZXHPKL7KCgoIDo6utb3fXx8qjVXKZXKFmlu+m+GpaUlY8eOpUuXLmRmZmJra4uDg8NjSVc2BDKZjNdee42SkhK9bJdMJqsxnR0SEoKTk1O9I1I6ulUrKyu0Wi05OTnVjtHRduq0FR43YmNjAZg+fTqDBg1izZo11Y7x9PRk9+7d9TZW1Wp1k1lydGKYdeHGjRusX7+e2NhYVCoVnTp1YtOmTQQGBjJmzJg6zzU0NOSJJ55g2LBhxMTEcOjQIU6ePEl8fDwpKSmUlJTw999/ExMTw5tvvsmkSZNatQptVeg0BloLLC0tiYuL48qVK7i4uAi/68yZMx8pScm/BSUlJYLK/YOOlq6ZWS6Xtxhld1Xo2I/kcjnTpk3D3d0dCwuLGp3psWPHCiQ1OuTl5bF582b++ecfoRRKIpEQFBTEzJkzCQoKarXsUB4eHrz55ps88cQTQhmtSCTCzc2N7t27C05WS0EikdCvXz969uwp9J6dOnWKpKQkcnNzW8wOqqysJCoqiujoaAYNGsSECRPo0aMHDg4OjQ5m3Lp1i82bNwvz5ebNm9y8ebPGYwcNGvTf4Vjk5+eTlpbG999/T1xcHH/++SeAwE7Skl5mXejQoQNXr15tsc9PTk5m/vz5wt8ajYaKigry8/OxsrLinXfeaRUKxv/tKCgo4Pz588TFxelxvA8YMIDg4OAWHt3/h1arJSUlhVOnTuk5oB4eHowbN67a8b6+vg2ifdy4cSMKhYI5c+ZQUVFRY5RUq9Vy8+bNFmtqLS0txdzcvM66YJlMpsfZ/jA8jM66PtD1adSFlJQULC0tGTNmDBUVFUJWoSFGtUQiITg4mKCgIGbMmMGJEyfYtWsXhw4d4vbt2yQkJLBixQp8fX0ZMGBAk75TY6EzJut7/9VqNdnZ2Y9ySA2Ck5OTXkRfh6o0z//NsLKywtnZmatXr7J37148PDyQSCRUVFSQmprKpk2bUKvVdOrUqcVZkjQaDR999BGZmZlMmDABR0fHWrMMNdEWHz16lAMHDtCrVy969uyJiYkJaWlprFmzhl9//ZX58+dXy9i0JhgaGhIYGEhgYGBLD6VWyGQyIiIiCAsL48aNG+zevZtTp04JlLktpetVVFTE5s2bOX/+POPHj2fMmDEEBgY2quy/Y8eO9c7wNxdhTKt3LHRMKw96tyUlJVRUVLRIKq0qbt++Xa1/QaFQsGvXLr3a0McNHf+7Dmq1WjBiVSpVjYJazVGaIJFIWkV5Q2uBgYFBnZGz6OhoVq1ahZ2dnV4JSWuj/VUqlSxYsABTU1O957q56lMzMjIoLS1Fq9UKjcIjR46sdu8KCgpazLGwsLBALpdTXFxco+FaVlbG9evXcXNzq3d0SSKRNEtJw8P44KVSKVKpVMiOZGRkUFlZ2ahSEZFIhIWFBcOHDyciIoKOHTvy1VdfkZWVxa1btzh9+nSLUIBWLVGqrKx8qLOl0WjIycnh3r17j2N49YKfnx+enp5kZ2cLas12dnattuzlcaNNmzY899xzrFu3ji+++AInJyckEgnl5eVC6eWMGTOIiIho8eZ3ndp97969WbFiRYMj9BcuXKBjx45MnTpVoLQPDQ3FxsaGOXPmUF5eXm/H4lGSHpSWlurR7DcEvr6+Ld4HA/f36ZCQEAICArh37x5HjhwhKiqK69evk5iYKND6Pm4kJyfz448/cvXqVaZMmcLgwYP11LzrA0dHxxqV3R8lWr1jYW1tjbu7O1u3bkUsFlNcXMylS5e4cuUKhYWFj52S80Fs2bJFKJHQQa1Wk56ezvTp01toVPfpZkePHl3t9YiICH7//XcSExPp3r273nuGhoZNqh02MTER6hf/h/swMTGpsyxE1wD8+eeft4oFtjao1Wri4uI4ceJEvQTxCgoKSE1NxdraGldXV8RiMVqtlri4OKKjoykvL6dNmzYC3egnn3yCVqsVShh0VItVF1CtVstff/3F0aNHH+VXrRWBgYHs3buXvXv3Ym1tTVlZGUZGRuTm5lJcXMzJkyc5evQo06ZNq3cpm1QqbZayt4fpYHh5eXHjxg1Onz6NRqOhuLgYQI/VqzGwsrKif//+7Nmzh3379lFSUiKUEjxux8LMzAwjIyOKiorIzMyksLBQ0FGoCXK5nMOHD7cqUdDCwkJOnDjBlStXkMvlGBsb07t3bzp37tyiJCWtBXZ2dkyePJm2bdty8eJFsrOzUavVmJiY4OLiQqdOnQgJCWnxbAXc77EYP348V65cYffu3djZ2WFgYFDj82hvb19jaXJNoqUmJiYNyorC/w/QPgrcuXOHefPmNercBQsWNHkNak5IpVI8PT2ZOnUqI0eO5OLFiwIr4o0bN1oki6FUKjl48CAJCQkkJSUxefJkPD09m7WUTC6Xc/fuXYHxrqlo9Y6Fs7Mzo0aNYvPmzaSnp5OUlMT333+PRCJhwIABdOnSpUXHVxubhY+PT4uVA9QFKysrlEpljXXqTc1YmJmZ8cQTT/Dmm282ZYj/VbC3t8fKyoqMjAw8PDxabc2sRCIhJCSE27dvExAQ8FBjODY2ljVr1tCvXz/Gjh2LWCwmMTGRn3/+mb1791JRUUHbtm35/PPP6dGjh971TExMmDlzZo0Rx5qEpB4XwsLCGDJkCFu3biU+Pp64uDhBMKywsJDz588THBzMxIkT6x0trcqQ1di6Xh1zXl3w8/MTKCpzc3NRq9UMHTq0xhIMjUZDYmIizs7OD6WD1Wq1KJVKwbHRMU61RH27i4sL1tbWZGVlkZuby6lTpwgJCamxjEitVnP9+vUGE1w8aly8eJHjx4/j4uKCr68vSUlJbN++HXt7+xYPorUWWFtbM3jwYD1GutYIrVZLRkYGFy5cIDo6GldXVz1mvaoYPnw4s2fP1nutffv2ArV1ly5dMDAwIC8vj40bN+Lv79+gag2NRtPkXq7aoNPiqYqMjAwSEhKwtLTE09NTCK6VlJSQlJSESqWiT58+rTYTp9NkGTRoEL179+bu3bucO3dO+C1v3rxJXl7eY+3FuHv3LgsXLuTevXvMmTOH9u3bN5u9kJOTw4oVKxgzZoygH9UUtE4rpgpMTU0ZNGgQjo6OXLhwgfz8fGQyGYGBgXTv3v2x0pXVhKoKwGVlZYjFYoyMjFq8caywsJBr167pvaZWqwWvu6aHp7ZoSn1R1cD4H+oHkUjExYsXBeVt3UIxdOjQVpf5kcvlfPzxx3Tu3FkwnL28vJg8eXK1YxMTE7l69SoRERFIJBLUajXbt2/n0KFDDBo0CB8fH9auXcuGDRsIDAzUK28yMzOrVSHU39+/Rah44b6a6+TJk7G2tubIkSM4OjpSXFzMhQsXsLe3Z9y4cUyaNIk2bdrUex7pNBokEkmjN36tVvvQVL1UKqVr16507txZKCE1NjaucZ1Sq9UsXboUU1NT/P398fX1xcXFBXt7e0EkUK1Wk5eXR3x8PP/8849AFOHq6kr79u1bZP0LDAzEy8uLW7duodVq2bBhA1ZWVgwbNgxPT0+h/yUjI4OLFy+ydu1arl27hpGRUatZt27evImbmxsvvvgixsbGlJaW8sYbb5CVlfU/x+JfCCMjI5566qmHHldTaXL//v1JTk7mr7/+Ys+ePchkMoqLi1EqlcyaNatBBAnNQRJRG3x9ffnmm2+Ev7Oysvjzzz9xdHTkiSeeoGPHjkIGqaioiGvXrvHPP//Qv3//RvWIqNVqrl69Sk5OjkBxXBOOHTuGo6Mjvr6+9coK5+XlcerUKUJDQ/VEWA0NDfHz88PPz48RI0YQGxvLxYsXuXr1KtHR0cTHxz820c6ioiJWrVpFWVkZ7777Lh07dmwWhrr8/HzOnj0ryBM0Fa3esQAE0Z3w8PBWKZIXGxvL0aNHuXPnDnA/Ct2/f3+6dOnSYuNMTU3lp59+qva6XC4nICCAsLCwau+ZmJg06SFtjY7FgQMHuHbtGhMmTBBKcloTbG1tCQsLo7y8HKVSKfRWPKpNoLEQi8V07tyZoqIigQgAaq/tLygoEMoTRCIRKSkpHD9+HF9fX1555RU6dOhAVlYWR44cadCi7OTk1GKOBdw3nJ977jn69OnD3bt3KS4uRiKR4ODgQIcOHbC0tGzwMyaTyTA0NGySY1ETi1ZVXL9+neTkZIYNG/ZQOliNRsORI0e4ceMGHh4egmNhZ2eHsbExYrEYuVxOXl4eCQkJXL16laKiIszMzOjdu3ezbU4Nha5p/Nq1a6SnpxMfH88PP/zAqVOn8PLywsjICLlcTnp6OleuXOHWrVuEhobi5OTE7t27W2TMD0IqlVJRUSGUQen691rbulUfxMbGcvz4cQICAujevXurY7p71BCLxXz22Wf1OramyL2vry8vvPACp06d4vbt25SXl9O+fXu6du1K9+7dG9RDotFoHlnfnqmpqR5jWWpqKqmpqYwYMYLnnnuu2ji7du1KSkoKu3btok+fPnWW1iqVSjIzM1Eqlfj4+AD3HYtz584RExNTp2PRUOTm5rJlyxbs7Oz0HIuqsLGxoWfPnoSHh3Pv3j2uX7/O5cuXuXjxIhcuXCA7O/uRa4EpFApBSPPrr7/Gw8NDb31Qq9WUl5cjkUgwMTGpl1ZSUVFRs5aEtnrHQqPRkJGRwcmTJ8nIyKh2gyIjI+nRo0cLje4+jeNPP/1EVlYWNjY2iMViUlJSOHfuHO+8806LUeHa2dnxxBNP6L0mFouxsrLC39+/RoExGxubJi3+CoXisXnu9cXRo0fZsmULvXr1wsXFpaWHUw0dOnSosca0taWIpVIpr7zyCikpKZSVleHv7y+ohtcEjUaDgYGBkK4/ffo0d+7cYebMmUJ9qK+vL1u2bGmQQZ2QkEBKSkqLasQYGBjQtm1b2rZt2yzX0/XhNJb2VKvVkpWVVecx8fHxXLp0qV5NfGKxGEtLSzQaDUlJSSQlJQnv6VisHqzXdnBw4Mknn+SFF16okY//ccDQ0JAxY8aQk5PD6tWryczMJDk5meTkZOD+99Jt+hKJhL59+zJ79mzS0tJajWMRHBzM33//zfz584USSRcXl1oNndaMuLg4Vq1axYQJE4RSnv8miESiJmuPeHt74+3tjVwuR6FQCMJmDQ1YPs69OSMjg5KSEry8vGp0fgwMDPDy8uKff/7RUw+vCeXl5Rw5cgRra2vBsagv+vTp06DjGwJdL4anpyd9+/YlISGB6OhoLly4wMmTJwVa70cFlUrF1q1bsbW15auvvsLc3Fx4JnJzc/nuu+9o27YtL774IrGxsfz66691Xi8zM7PRDfg1odU7Fjk5OSxfvpwTJ07UyOXbrl27FhrZfWzZsgWFQsGsWbNo164dEomEnJwc/vjjD3755ZcWcyycnZ157rnnGnSOg4NDk5g0lEolJSUlyOXyFmfk0GHkyJEEBwfj5eXVKqN+ujKY1g6NRsPJkyfZtGkTJiYmfP/998THx5OQkKBXDqiDubk5lZWV5OTkkJ2dzbFjxzAzMyM0NFTYbOVyeYObEG/evMmxY8da1LHQMQkVFRXVunn06tWr3s6hqakpVlZWZGZmNmo89XEsLC0tsbCwEJiG6oJEIuGdd94hKiqK2NhYkpOTycnJoaSkBIVCgVarxcTEBCsrK9zd3fH396dHjx707NmzQWVgjwJeXl68+OKLtGnThkOHDgmCfqWlpchkMiwsLPDz8yMiIoInnniCTp06ERUV1WLjfRDBwcEoFAouXrxIeXk5vr6+9OnTB1dX15YeWoPRqVMn3nvvPdq0afNf51TA/Xmp03AYMGAABgYGaLVacnNz2bFjB7GxsYJ6fU3U4teuXUOpVOLn54eZmVmT9lS5XF6NvfJRQSKRUFxcTGZmJmq1utr+JpfLSUxMRKFQ1BmYunfvHmvXrmX//v3Y2dlx+fJl2rVrx5gxYxCJRNy7d4/Vq1cTHx+Pi4sLQ4YMwdfXl9TUVI4cOUJMTAzDhg0jPDxcCHBVVFTwww8/EBoaKgiZ9unTp1o/bGlpKWfOnCE3N5chQ4bUWbJlampKSEgIwcHBDBgwgNjYWC5dusTx48eJiop6ZA6dQqFgzZo1BAYG8vzzzwv3uaKigrNnzwrVI3fv3uWPP/7A0dGxVgKI8vJygdCjOdDqHYvMzEyOHz/OqFGj6NGjR7VmlZYsiwC4fPkyI0aMIDIyUjCYPD09qaioaLBh35xQq9WkpKRw+PDhGpkMhgwZUq1kwcHBoUn0vVqtluLiYgoLC2usGW0JdO/evRr71f/QcCiVSpYvX05kZCRbtmxBLBZTWlrKnj17anQs/Pz8MDY2ZsmSJQIf99NPP027du2EzSQpKUnQo0lMTHwoa4lWq+X27dstRv0nl8s5ePAgW7du5e7du1RUVNSa9j548GC9mWl0jkVjodFoHhptsrGxITU1la+++oo2bdoITk+PHj2q1e6LxWKGDx9O165dSU9PJzc3V6D31mmtyGQyTExMsLW1xcXFBVdX13oZPs899xyRkZGo1WocHR3rpc/g5OTE+++/L2yefn5+dR7v7e3N5MmTiYyMJDU1lcLCQiorK4XSACcnJ9q0aYOdnR1arZZOnTqxatUqxGJxjZlcuK8rY2tri1KpxNraul79DhKJhFdffZXRo0cjEonqtVeZmprSs2dPQkJCqKysxMzMDBMTk1YZFHkYfHx8Ghxl/k+CRqNh3bp1xMXFCYZrcXExf/31F4sWLRJY5ZKTk3nnnXeqZfr27NmDoaFhs6iuP07HwsvLCxsbG9asWYNCoRAoclUqFVlZWZw6dYpdu3YRGBhY6xopEokwNTXFx8cHY2NjPD09CQ4OFuaQVqslOzubyspKOnbsyPHjx5FKpQLhhK+vL3/99Re+vr507txZsGsUCgW//vorzz//PIGBgaSkpLB48WLBsROJRJSVlXHw4EEuXrxI37596+0Ui0QiXF1dcXV1pUePHgwePJjLly+zb98+Dh8+/Ej2reLiYr7//nsiIiLw9/cH7pfif/nll3r31sfHh1mzZtW6bt28eZNffvml2cbV6h0LuVyORqNh6NChzVZ60JwwMDCgvLy8moFRXFzcohob9+7dY8mSJVy+fLlGlcua9Afs7e2bPObS0lIKCgrqdCzOnDnD+vXrefnll7l37x4HDhwgIyMDOzs7Bg8ezJAhQ/RSvfn5+fz999/k5ubywgsvcPnyZQ4cOEB2djbm5uYMGjSIfv36CYtvXFwcf/zxh1ACAfDNN99Uy1pUVFSwfft2Ll68yOuvv87Ro0c5e/YsFRUVuLm50adPHyIiIqrdE11E8fjx4yQlJQkGgI+PD0899RReXl5C9EClUnH16lV27drF3bt3EYlEtGnThoEDB9KlS5dqBsPdu3c5dOgQ165do6ioCENDQ1xdXenWrRsREREtpmis1WpJSkriu+++Y8uWLUilUkxNTWvtqQkODmb8+PGsXr2a69evM2DAAMaNGyc0aeuU4du3b4+RkRFz584V1GXrQlZWVo39QY8DFy9e5JdffiE+Pp6AgAA6duxYKytHQ9g6zMzMmuxYJCcn15kpNDIyEihyU1NTheeuNvEqkUiEg4MDDg4OjR5XTdD1yj2Iw4cPs3r1ambOnElERITe/Le0tGTo0KEN+hxjY2Pat2//UAdAJBJhb2//0CBQhw4damTQqgtisZh+/fo16BxdAEj3PKjVaiorKzEwMGgxxjiNRsPx48fZt28fmZmZ1eZ8YGAgH330EQDZ2dls27ZNjxL66aefZsSIEXoZPLlcztdff01xcTHvv/9+teesuLiYjz/+GGNjYz7//HPBuCspKeHMmTMcPnyYjIwMjI2NCQgIYMiQIbRp06ZV9V5qtVpOnjyJm5sbUqkUrVZLamoqK1euxN3dndmzZ3PlyhX279/PyZMnqzkWmZmZODs7N5vOzcPKjpoLgYGBPPPMMyxZsoQFCxbg7Ows1PqXlpaSlpaGj48PM2fOrNVO0LEy9erVi2PHjhEWFibQ5+vmiKurK8OGDcPJyYl79+6Rnp5OcXExTk5OREZG1krJWlZWRt++fYmIiODevXts2bKFe/fuYWxsTFlZGYcOHaKkpIQpU6bQqVOnRmWKzMzM6NSpEwEBAfTo0YMxY8awc+dO9u3bR0FBQYOvVxcSEhL46aef+OWXXxCLxZiamlYrA7Ozs6NPnz61rve2trZs2rSp2cbU6h0LMzMzXFxcSEhIaJWORZ8+fdixYwcSiYSwsDBkMhmJiYksXbq0XmwQjwrp6elER0fz3HPPERYWVi0dWROblrGxMdbW1npCWg1FYWFhjVS2VZGamsquXbsEvnkLCwu0Wi179uwhKiqKoqIiPfXZiooKLl++zNWrVzEyMmLv3r0CDWZ8fHw1al9duYNMJmPv3r3ExMTUGBFSqVQC5WRxcTGxsbE4OTmhUqm4ePEiUVFRvP7663p6IBUVFaxbt441a9ZQVlaGu7s7xsbG3L59m5MnT+o5RSqViv379/P111+jUqnw8PBAqVTy999/c/z4cV566SVGjRolHH/z5k2WLFnC2bNncXJywsLCgvz8fM6dO0dubi4BAQEt5liIRCLs7Oy4d+8eWq2W/Px8Tp8+XWuJhqWlJaNGjRIir66urri4uAjPobGxMfPmzcPa2horKytOnjzJRx99hKmpaa1j0Gq1nDt3rsV0B65cucK9e/eYOXMmI0aMwMzMrNZIckM0SZqasYD7Dn1qamqtnPBeXl7MmDGj2uuPQ9E5MTGRU6dO0aVLF70mz6pISkpi69atDBkyhIiIiEc+ptaKffv2oVAoGDZsGCYmJpSVlbFq1Sr69etHQEBAi4zpzz//5Mcff8TFxYWOHTuSnp7Ozp07EYlETJo0iaCgIOFYXYS9ffv2XL58maioKIKCghg2bJjeNSUSCbm5uWzdupWRI0diY2MjGIE69sINGzYwcuRIYc3Iz89n06ZNrF69GkNDQxwdHcnJyeH8+fOcPXuW1157jbCwsFblXNy7d48hQ4YgFospKyvj5MmT5Ofn88orr/Dkk0/i5OTE+fPniY+Pr3aur68vxcXFFBcXN3l9KC8vb3aDtjZYWloyevRoPD09OX36NDExMeTn5yOVSmnbti3jxo0jIiKCkJCQJgUy7ezshD3F1NSUsrKyetstAQEBiEQijI2NMTExoaKiAmNjY8rLy7lz5w5isZjCwsImlZ+JRCIMDAyEPsouXbowatQoNm3axL59+5pNXFar1fLPP/8wffr0Gtk+fX19mTx5siCyWBOMjY2bta+z1TkWlZWV/PXXX8LfpaWlSCQS5s+fz7lz53B3d9dLTQUHB9dYn/i4MHbsWEpLS9m8eTN//PGHIAwVGRnJrFmzWmxccrkcsVhMz549652OFolEAntKY9OmeXl5pKen1+vYkydP8umnnwqNfYmJicycOZP/+7//o1+/ftWiWLGxsURFRTF16lSCgoKQSqWUlJRgZ2ent0A5ODgwbtw4KisrycrKqnHRroqCggKuXLnCu+++K2zeR44cYdGiRezbt4+IiAhhLEePHmXFihWYm5vz6quvEhAQgEwmo7y8nPz8fLy9vQVNgtzcXObNm4e5uTn/93//h62tLRqNhitXrrBw4ULWrl1LQECA4DBfuXKFI0eOMHz4cKZMmYKxsTEKhYL8/HzB6WspSKVSZsyYwXfffceNGzeYNGkSDg4O1bjXq8LW1rZWlWxDQ0P69u0r/G1iYsK4ceMeWj5kYGDAsWPHGvUdmoqcnBzs7Ozo0aNHg6PXdcHKyqrJtNkqlYpbt27V6lhYWFjUS9jwUSA6Oprdu3fj6upaq2PxP9xHYmIiEolE2OOMjY2JiYnRM94fJxQKBYsXL6a4uJjff/9doFj28vJi2bJltG/fnoEDBwrHm5ub06dPH7p27crmzZurUZ7rIJVKGTp0KDt37mT//v2EhoYKz6dSqWT37t2IxWLBsVCpVFy5coUVK1YQEhLCrFmzsLS0RC6Xs2vXLtauXcv27dvx9PRsNWW4cD9rpQsyFBYWsmvXLlxdXRk6dCgSiUQodSsqKqp27uDBg1m1ahVr1qyhW7duWFtb6wUy6qMnpENpaelDmeOaC7psQ58+fejUqRMFBQXI5XJEIhFGRkbY2Nhgbm5er95CkUiEVCqtMZstFosfeo3a+vd02kEPwsLCgieffBKVSsWOHTuwtrZusq6DzsFo06YNHh4eBAUFMXjwYJYvX86FCxeadG0d8vLyWLFiRa2OhbOzc517q7u7O59//nmzBe9bnWMhl8tZsWKF8LdWq6WyspKioiJ2794t0B3qMH369BZ1LBwcHJg+fTqDBg0iMzOTiooKnJyc8PT0rNNDfNSwtLTEycmJuLi4BtW5+vn5YWpq2mjHIicnh7S0tHod27lzZwYOHChQknp6ejJ69GjWrFnDiRMnGDNmjN7xRkZGhIaG8uSTTwpNSDXRD0ulUsGQepjAF9zfvCMjI3niiScEB0WpVHLgwAHS0tLIzMzEwcEBhULB0aNHSUtL44svvmDEiBF6kWmNRoNIJEIkEqHRaDhw4AAJCQksXryY7t27C+OwsLDg7NmzHDhwgCtXrgiTWa1WI5fLkUgkODs7C9FkrVZbp4Lw44BEImHw4MF4eHgwadIkDA0Nadu2baPF6h78TdasWYOtre1Dyz28vb1r3IQfB4yNjZFKpc1OJ2hjYyNQITf22kqlkosXL9aL9elxQqPRcOPGDe7cufPIlH//k6BbP6r+rdVqH6sQV1Xk5eWRlJRE79698ff3RyqVYm9vT79+/QQ2xKproFgsxsTEBBMTEywtLes0/Hr27Imnpye7du1izpw5Qja2srKSbdu24e7uLvQB5ufnc/jwYTQaDRMmTKBz5856meETJ05w/vx5QT24tcDNzY3Lly9TUVHBpUuXuHbtGtOmTRMCVUqlkvLy8hr3qK1bt7JmzRqUSiVr1qypFlE+dOhQvW2Mx+lY6CCVSusMLtUHFhYW9OjRg+XLl3Ps2DEiIyN56aWX6jxnx44dHDx4kCNHjnDlyhVOnz7N1KlT69VraWBggKenJ35+fpSXl7NhwwbMzMyE/oWGQKvVCqQROm0znSaGm5sbgYGBrFmzhrVr1zaaEVAHXXVEcnJytT4xIyOjh2aGTE1N6dGjR7PZGK3OsTA1NWXZsmX1Pv5xpPLrMwY7OztUKhUajUZYAB5nSra0tJR169YJf5eXl6NQKJg3bx6HDx/G09NTL7rRvXt3QkJCql2nQ4cOdZajPAwFBQXcu3cPpVL50NSav7+/nuEvlUrp1q0bK1as4Pr169UcC1tbWwICAvSYDZrjHpuamtKpUye9yWdmZoatrS137twRnKzs7GxSUlJwc3MTmpOrouqk1Gq1nD59mpKSEj777DMWLlwovKdWq8nJyUEqlZKdnS28HhYWRrdu3VizZg0xMTEMHz6c4cOH4+rq2uLMUbpmus6dOxMUFIRIJEImkzXp/ufn57Nv3z5GjBhBeHh4vRa1Tp06NWu2oCEICQnh0KFDXLx4keDg4GbLAMhkMhwdHbG1tW305q9QKDhz5kyzjKcuVFZWsmPHDv7++2+Sk5MFjaGnn35ab/O9desWW7Zs4eTJk1y7do2CggJefvllvVK+VatWCc+SDhqNhlWrVgk9VW5ubgwcOJCJEydWa2DNyspiz5497N69m/T0dCwsLOjZsydPP/00Pj4+etfdu3cv3377LStXrqS8vJzFixcTExODWCwmNDSUt956S6+sLz09ne3bt3PkyBGysrKQSqW4u7sTGRnJsGHDHhn9q6enJwcPHmTHjh0EBAQQFRWFWq1ucilMY2FqaopUKqWgoEBwbtRqNUVFRXrR+MbAwsKC/v378/PPP3P58mUGDx6MRCLhwoULpKWlMWfOHGGOFRUVcf36dW7dusXs2bP19gC5XE5GRgYeHh7NymxTFY1x7sRiMWPGjOHLL79k8ODBZGRkCCKburWusLCQgoKCGrVlxo4dW2dZYH0z2HK5nPz8/GYrvWkIdEGx2u7dw6hzjY2NGTFiBJ06dUKj0WBpaYlUKmXcuHF6dPrjx49HpVJha2srZJRnzJiBWCwW1leZTIZUKuXIkSPC82NlZcXSpUtxdnZGIpHwxRdfYGtri6mpKRMmTKCoqKhJ2WRd9UXv3r2F13Q0xGFhYbi6uuLh4cEPP/zQZMcvPz+fQ4cO8fzzzzf4XF1mqLnQ6hwLqVTaYoZDY7Bt2zZB5Kw2Kq/HgbKyMlavXi38rdVqBe7qo0ePYmBgoDeBzczMHoljoWOjSk1NfWimxNTUVM+YFIlEODo6otFoamRQ0DWgNjdkMlm1sisdX3/VRbG0tJTy8nKsrKzqtaHm5ORgYGBA7969a0xDWlpa6pU4+Pr68vnnn7Nt2zb++usvPv/8c5YuXcro0aOZOXMmrq6uLVo/rIum6upOKyoqyM3Nxd3dvVHXS0lJ4f/+7/+IiIio1UjXqTzrFj1dNLQl0KVLFyIiIli5ciUXL14kPDwcV1fXGssRBg4c2CA2EUdHR5ydnRu9uajVauLj48nOzm72hmsdKisrmT9/PitWrMDBwYHAwECKi4vZtGkT586d48MPPxQ2UAMDAzw8POjZs6dQChEREaFXqlVTJHPNmjXcuXOHLl26YG9vz5UrVzh//jwZGRl88sknwnHJycn89NNP7Ny5Ex8fH/z9/cnMzGTlypWcO3eOL774Qs9pKSgo4Pr16xw5coSff/4Zd3d3AgMDyczM5Nq1a3pOS3JyMj/88AO7du3Cz8+PwMBASkpKuHnzJuXl5dWUeZsTvXv3Ji8vj+XLl5OTk4OrqyvPP/98i9Gqm5mZMXLkSDZu3Mj3339Pr169SEtL46effsLJyalJAmUikYhRo0axcuVKtm/fTp8+fTAyMmLLli3IZDLGjh0r/H4KhYKCggKhCbWmPcrJyQkPD48aP6sx2g9VoVarG5xxE4lETJ06ldTUVI4ePUr79u2ZM2eOsC9WVFSQkJBARUVFjb+vr69vnXtofaPLxcXFJCcnP7asl1ar5erVq6xYsYJz585RWlpa62dv2bKlzt4hsVhcYxnng8Z+1b91gd7aUHXPlUqlemtS1Wi/tbV1k+wNjUbD9u3b6dq1a43vS6VS3NzceOGFF5BIJHz77bfk5eU1+vPkcjn79u2r5liUlZVRWFiInZ3dY5MBaHWOxYNIT08nKiqKsWPH6nlU5eXl3LhxAxMTkxat2920aRMDBw6kc+fOLTYGuD+Ztm7dWu/jazPkdAbOzZs3G93AfffuXRISEh7qWFRWVlZbcKrWYj4InbHf3Kivt66LeOgMpYfB2NgYIyMjpkyZUqMTJxaL9YxPmUyGj48PL7/8MhMnTuTMmTOsXLmSX3/9VTCsGmvEPwokJyezbt06vvzyy0adX1xcTF5eXrUNW6vVUlRUxJIlS/j7779xdnZm1apVKBQKzp8/j7e3d4vUnP/222/89NNPlJSUEB8fz+7du2ut1Y2Pj28Qd7+DgwOurq611qTXByUlJZw7d66aMGZzQKPRcO7cORYvXkxERAQ//fQTFhYWQhnKxx9/zLJly2jXrh3Ozs64u7szZswY5HI5d+/eJS8vj6eeekqPJakmB/Hy5cts2rSJkJAQxGIx8fHxvPzyy+zfv59JkybRpk0b5HI5Bw4cYO/evTz//POCuq9KpWLVqlUsW7aMHTt24OrqWs3A+PDDD1mwYAGDBw8WzlGpVHqZlJSUFA4dOkTPnj355ptvMDIyEtTmNRrNQ5XLmwJra2smTpzIiBEjUKlUyGQyLC0tW0wXSCwWM2/ePNLS0liwYAFLlizB2tqaoKAgXn755UaViFSFv78/AQEB7Nu3j5KSEjQaDTt37iQkJETv2hKJBENDQ9zc3HjxxRdrLMGUSCS1lnw8GFhrKNRqdYP3Qx3hxeeff05FRYWgo6LbawwNDXn66acZPnx4jQZsc+11BQUFeiKXjxpxcXEsXLiQPXv24ODgQElJCVqtFgcHB3JycsjKysLHx4fRo0cL87OkpIQ+ffqwYcMGfvvtN/bt24eZmRmzZs1i2rRpwP1A3fr16/nrr78oKysjLCyMadOm6WW7z5w5w4oVK7hw4QIajQZfX19ee+01evToIdzvYcOGceHCBQ4dOoStrS3Tp09n2rRpwvORnZ3N+vXr2bx5M+Xl5YSFhQmN0brPycnJYePGjfz9999CtnT06NG8+OKL2NraMnPmTE6fPs2tW7eYNm0axsbGWFlZMXfuXD0GOrFYjJ2dHVOmTCE3N5dFixY9VCW7NiiVSqKjo4VGdB2uX7/Ohx9+SJ8+ffjoo48eS3Cy1TsWqamprFq1ipEjR+oZfwqFggMHDmBpadmijkVFRQXm5uYtRgWog0QiaRZlaYlEQufOnTl79myj08p3794lPj6ewYMHP/S4qpNIq9Vy8+ZNpFJpq+Q/15WrnD9/npycHKFRvyaIRCICAwPZvn07cXFxeqnQuiAWizEzM8PU1JRRo0bRt29fXn31VXbv3s3MmTMfu2MRFxdX64Z669YtoZ9G1welU5GWy+W1UtHqkJ2dXeO1KyoqWLp0KX/99RchISHcuHEDjUaDWq3m2rVr3Lhxo0Uci27dujF37tx6HdtQthNnZ+dao631RVlZGbt3735kjsWGDRvQarW8/vrreHp6CvX/OrG5nTt3cvLkScaNG4dUKkUqlSKTyZDJZELZzMNYzQYPHqwnLujj40NkZCSHDh0SWK9SUlI4ceIEXl5eDB48GEdHR2Ee9uvXjx07dnDmzBnGjh1bzbHo0qULTz75JJaWlsL4Qb+kUidaWVBQIPTMQe2NoM0JXY+V7jOVSiUVFRVIJJJmZW1pCBITEzl37hwLFixg1KhRQkDExMSkyfueTCZj1KhRnD59mqNHj2JiYkJxcTFjx47V+75mZma0adOGU6dOkZ6eTmhoaIM+p6mOhVwubxQbnUgkwsrKqsZSNpFIVCepgo4Fb+XKlZw5c4aKigpcXFwYP348zzzzDBYWFvX6TgUFBSQmJjZ47I1FXFwcV69eZdasWcyePZtvv/0WuVzOnDlzsLW15Z9//uHnn3+mQ4cOwnqg1WpJS0vjlVdeYcSIEfz6668UFhYK2dfCwkL+/PNPduzYweuvv46NjQ27du1i4cKFvPnmm/To0YM7d+6wZMkS7Ozs+PHHH9FoNERHR+Pk5CQ8p1lZWXzwwQe8+eab/Pbbb5w4cYL58+fj7OzM0KFDKSwsZOPGjezatYs33ngDKysrdu7cyffff8+bb75JeHg4xcXFfPPNN5w9e5axY8fSuXNncnJyMDc3FwIAn332GcXFxYSFhTF//nz69OmDRCKp0YHUUXtPmDCBmzdvsmvXrkbf+5KSEm7cuKEX6C4oKCArK6tZ7MP6olU6FroFXKPRoFKphEhR1cimSqWisLCwxanlev4/9s47rMl7f/+vkBA2YUPYspeCIO6NW1v3qLXaaofd63RPe3rssvbY6ehwt3a46mjdG3EhIHvK3hsCJCG/P/zl+RoBRUDFHu/ryqUkz/g84zPe676HDCErK4uqqqpWc87vRmGj4cOHCxSsHUFpaSnx8fGUlJRcNz9R63HUiqRVVlaydu1aTE1NGTNmTIfOfXUu7NX/b25uFgpjO/rOmJiY0LdvXw4ePMjmzZvx8vISuNM1Gg1KpRI9PT0MDAwQiUTMnDmTTz/9lJUrVzJmzBjBKNBoNDQ2NgppVVpF1vLycjQajbDo0RoZWo/pnSjgnDp1KmKxuNX3WKFQCJ7DQ4cO8dxzzzFv3jzef/99vvrqK95///0WxahXQ6VStWp8KBQKdu3axaeffoqFhYXAPGVmZoaJiQlpaWldeIXtx/DhwxkyZEi7tr3ZRaCDgwO+vr4YGxt3OBdaoVBw7NixG/a7jqC5uZlz584hlUrp06eP8ExFIhGWlpb4+/vz448/dvrZhIWF6SxWtQWgSqVSGI9KSkpIT0/nzJkznDhxQufdbG5uprGxkbCwsFYXgmFhYRgZGem0/1r4+voye/ZsPv30U8aOHcvEiROZM2cOvXr1Evr2rcK6detoaGhg4cKFmJmZUVtby/vvv8/s2bMZOHDgLTvv9XDs2DFqa2sJCAjAzMxMuN/aOVlPT0/HSNOOu1f/fe34e/U9nDJlCv/5z3/YuXMnUqkUExMTZsyYodMGOzs7xowZwx9//MGWLVsICwsT3nGNRkNNTQ0ikahNJ19nn1tNTU2X60DcqD179uzho48+wtTUlGnTpmFqakpGRgbLli0jNTWVJUuW3JBFT8tOmJqa2pVNvy7Ky8sxMTFhwIABOrTpxsbG2Nra8vDDD5OZmcnWrVtbpEdqGb+0c6IWOTk57Nu3j9mzZzNp0iTgyhj7xRdfEBkZyYABA2hoaKCurg5vb2/8/f2xsrJiyJAhLaLKvXv35tFHH8XY2Bg/Pz9iY2PZsGED48eP5/Llyxw4cECIJMGVMWjFihVERUXRv39/Tp06RXR0NI899hhz5szRaau2FtLBwQELCwv09PSws7OjR48e171nenp6hISEMGnSJKKiojqcEqtUKsnIyGiRQWNoaCisK24Huq1hUVJSwtGjR0lKSqK4uJjffvtNmKw1Gg3JyclcuHCBuXPn3tG2zpgxgzfffJP333+ffv366Tw8fX39bsfS0h4MGjQIW1tbQbOgI9DqTowaNarNl1k7yAwcOBA7Ozv+/vtv8vPzef3119tUwL0R1Go1MTExZGdnC9oUSqWS7du3k5ycjLm5OUFBQTfs6K1BJBIxa9YsUlJSWL9+PbGxsfTp0wcbGxtKSkqIjIxk5cqVDBs2DLFYjIuLC19//TXPPvssI0eOZMyYMVhYWFBQUEBCQgKenp58++23WFtbo9FoWL16NWvWrKFXr1706NEDsVjMxYsXiY2NZerUqbfV46CFj48Pa9eubdWrFhcXJxAt2NraMmjQIOG5KZVKZDIZ/v7+bXrkCgsLiY6ObvG9Wq2mqKgILy+vFgxQ1zoYbie0BpZarUapVNLc3Cx45fX09ITFVEcGb5FIhLe3N97e3sTExHS4jWVlZezZs4f58+d3+SRSU1ODVCptEXWQSqWYm5ujVCo7zW5yvfoQ7VjU1NREfX09wcHB3Hfffa1GQezt7VvtLzY2Nje8L1ZWVrzwwguEh4fz3XffsWnTJtauXcvQoUMFr+Wtih7U1dUhlUqFmg8LCwvq6+tvGP27VdCK03777beMHTtWMAqMjIzw9fVl0aJFzJ07V1hc5eTkEBMTQ01NDUePHqW6uppz586xefNmLC0t8fDwwMfHRycNTiuMumfPHpRKJRMmTGhRf6Ovr8/QoUN57rnn+Oqrr0hISGDgwIHo6+uTm5sraDY999xzrapUd1a9vLa2VkjpuV2LsyNHjhAaGsqLL76oMx/u2rWLN954g3/96183NCyqqqq4dOnSLVF9bgva1GLtgt7ExITc3Fxqa2sF0o+QkBB27drVwlgLDw9HKpW2IEKpra3l8OHDHD58mDfeeEP4XqPRCIXdvr6+zJ07l2XLlrFjxw4mTJjAnDlz8PHx0emvfn5+SKVSxGIxRkZG+Pj4sG/fPsFAPXz4MEeOHOG1117TOU+fPn1obm4mJycHExMT3NzcBLan1u7B1f9vzzujp6dH37596du3L7t37765m/7/oVQqycnJ0fnOysoKuVxOdnY2arX6thDBdEvDAq5MYnv27OHEiRPk5OTw+uuvt1BjnT179g3TbW41Xn31VY4fPw7Atm3bdH6TyWR3pWGh9TYkJyd32HsaHx9PdHQ0w4cPb3MSXrhwIfr6+vz+++8cO3YMR0dHli1bppPvCFcWdObm5tjY2Nwwb72hoYEVK1awf/9+4TtLS0t+/PFH4Eonf/nll3nppZcED5ednV2LHGaJRIJMJsPa2lqn/RYWFixZsoR+/fqxZcsWzpw5Q2NjI1ZWVkRERNCjRw/Bg6evr8/MmTPx8PBg5cqVnDx5kvr6emxtbQkODmbatGnCokirfZKamsrFixeJjo7GyMgIV1dX3n//fWbOnNnlXuj24JlnnsHExKTVwcjMzEwoOgwPD9chD4Ar0bwlS5bg6+vb6rH37dvXKoOFRCLB3d2d06dP4+rqSnNzM3V1dWRmZpKcnHzHClk1Gg319fVERUWxZ88eUlJSGDp0KA899BD29vY0NjaSlJSEg4MDdnZ2N7UA0Sqyd9awKC8v5+eff2bWrFmdYuxpDZaWlmRlZbVgsWlqaqKysrJVo+Nm0Z7Fn4GBASYmJjg4ODBv3rwOUx63BZFIhLGxMaNHj2bEiBEkJyezdu1afv31V958802WLl0q0KB2NaRSqaCSbGRkJBS+3ilWuISEBJ588klcXFx4/PHHBTHT0tJSjhw5wgcffICRkRGzZ89GqVRy8OBB3nrrLWF/fX19oqKiiIqKAuC+++7jtdde03lmWofN4cOHBdG9a/uOViH9xRdfJDg4mA0bNrB//37UajVyuZxJkyYxZsyYNlMQO1unUlNTQ2lpKU1NTbet3kWtVuPi4tJCv8LPz6/dhm1JSUmXaSW0F9oUraKiIjQaDfb29hw9elSouxSJRFRVVbVaS9DW81Or1Tg5OfH666+3WPOZmpoK/WPmzJmMGjWKgwcPsm7dOn777TeWL1/OqFGjhOd2rZGuUql0xBldXFx47bXXWmRNaLU3bpYCur3baZ1Lfn5+7Nmzp0NO3ebm5hZCiFqtmcOHDzNw4EACAgLazELQGlydRbc0LPT09PDy8uKnn37i7NmzfPDBB2zatEl46UQikZAHe6exdu3aNj2odzpNqzMYPXq0ULzUEdTX13Py5EnGjh3bglJSC5VKxaJFi3j66aeveywHBwc++uijdp3X1NSU9evXt3vbN954Q/CAXA0XFxc+//zzVvczMTFh5syZzJw584bn0FLo3khkRyQSMWTIkHan2twuXC1+BbqDpIeHBy+++GKr+xkbG2Nvb9+q91CLtpSrTUxMmD9/PsuWLSMgIICioiI+/fRTkpKSsLS0FELhtxsKhYLVq1fzzTffUFVVRU1NDdbW1sJEpVAomDdvHqNHj+Y///nPTbNXubu74+Pjg0Qi6TBxgkqlIiEhgb/++ktH1b2z0NPTY+DAgaSkpBAVFcXYsWOFKE1ZWRmXLl3C1ta2hUCfnp4eEolEYNXpCo+v9jzx8fEkJSXh7u6uMxeo1WrBS3iz57o6jUcsFiORSAgMDGTp0qVYWVnx3//+l7S0tFtmWAQGBvLbb7/xww8/4O/vz8mTJzE2NhZqLm43lixZQl5eHqdPn9apZdEy/0yZMoXIyEhmz56NgYEBCxcuZOHChTd9noiIiBsKmcKVxd3kyZOZPHnyTR1fLBZjY2ODWCzucMSzqKiI0tJSHVriW4ng4GCSkpJITEzE29sbkUiESqVi//799O7dW2DKgv+r5bgazc3NFBQUcP78+dvSXi2cnZ2RyWRkZmaiVCoJDAxEpVLx3//+l+zsbAwNDfn++++xsrJqFwOl9trc3NzIzMwU0oO1BfVaZ2NjYyNNTU0YGhpy//33ExERwcKFCzl69Ch9+/YVHHMJCQlUVlZiaWlJRUUFiYmJ+Pr6CudxcXEhKytLqJm49jxubm40NDSQkpJCWFgYxsbGqNVqmpubdXTWtFEbrRGlTW++3rrV1NQUuVyOqalph1LvtCQT18LHx4eoqCjmz5/P0KFD6dGjR6tG3NSpU7ukvrVbGhZaiERXFBwHDBiAoaHhHWPGuB4kEgmGhoatvixX55be6eLum8XIkSNxdXWlrKysw6JdJ06c4OTJk/j5+bX67O6U6NM93Dw0Gg0VFRUUFhaiVCqBK/1TJpO1mrY2adIkFArFdWn/LC0t8fb2buF9MzAwYPbs2VhbW7Nu3TocHBw4f/48Q4cO5eGHH75jdNTHjx/njz/+wM/PjwcffLCF3o5WpfXUqVPCPboZGBoa0rNnT3r06NGpnOji4mI2b95MREREl2lt6OnpMXfuXH777Te+/PJL3NzcsLS0RKlUcuLECfbu3UtoaCgDBgzQ2U8sFmNnZ4dCoSAlJYWePXsilUpRq9VYW1vfFHOWFq6urgwfPpzDhw/z+++/4+TkJCy8m5qaKC4uxsHBQado82agreFwcnIScvPr6+upqKjA2Nj4pgvzbwaDBg1CoVCwefNmtm/fjq+vL48//niXR2Xai8TERFxcXFosALULGC0d9N0ABwcHIZWxI8jLy6OwsPC2GRZyuZwff/yRw4cPExQUhIGBAXl5eZw9e5ZRo0bx7bffCtsaGRnx73//W2f/2tpazp8/T1ZW1m1prxbe3t7MmzdPcJAEBwdz//338+233/L+++8DVyJIb7/9drsF/pydnZk8eTKbN2/GzMwMX19fampqBNamkJAQkpOTiYyMxNDQEFtbW4qKiqioqMDb21unz6alpfHDDz8QFBTE2bNnycjIEJybbm5u3HfffWzZsgUTExN8fX2prq5GoVDQr18/evXqRd++fQkPD+e3336jurqagIAAampq0NPTY9y4cYKBJ5FICAsL448//sDKygpDQ0M8PDxumOZtbm7eYcMCaPF+nz59WmDWAq6bZtWrV69/vmEB4OXlJYRWtfnVbYVx7gSOHz9OUFAQZmZmAgOKNlRWVlZGcnIydXV1eHh44O7uftcYGObm5kyfPl3gbu8IysvL2bdvH4MGDWozanEPdwdUKhXffPMNO3bsIDMzE0dHR+rq6pgwYQJff/11i+3bsxDy8fFh69atrXqtDA0NmTRpEhMnThQM0Dvd52NjY1Gr1Tz99NOMHz+e33//vcU2Hh4e7Nu3r8PGeFhYGCEhIaSlpXXY8G5sbCQqKoo//viD+fPnd0lkV09Pj169evH666/z5ZdfMn/+fHx9famtrSUlJYUePXrw6KOPtlrXMGDAAI4dO8aqVas4deoUFhYWNDU18fbbb3dowSyVShk7dizZ2dls3rxZJz2upKSErKws3n77baZOndqh8fbChQs8/fTTuLq64uzsjKGhIbm5uVy+fJnRo0fTu3fvmz5meyGVSpkwYQLjx4+/Zee4GfTo0YPo6GhiYmLw8PBALBajVCopLCzkl19+QV9fn/Dw8DvdzHbB0dERiUTSIaMfICMjg8uXLxMaGnpb5rKsrCzBy66tkZBIJAwYMIC6ujqdeqZrx1CNRkNeXh579uy55e28FtbW1syZM0fnu0WLFuHn50dUVBRisZjBgwfTu3dvIaqrLV5uSzfCwsKCBx98EEtLS7Zt28bOnTuRyWQMGTJEcJ6YmppSWlrKiRMnqK2txcLCgmnTpjF16lSdFM3Zs2dTXV3NsmXLkMlkvPbaa0RERAjnmTdvHlZWVsJ5LCwsGDJkiBB9l8lkvPTSS2zdupW//vqLP//8E3Nzc+6///4W7f7oo4/47LPPWLp0Ka6urjzxxBM3NCz09PQ6PNfp6em1eBeCgoJYsWJFu/bvLH20FnfFKrexsZHc3Fyys7OpqqrCzMxM4ErvbE5vZ7FixQpGjhyJsbExdnZ29O/fH3t7ezQaDWvWrGH9+vWYmJjg5OTE0qVLu+zB3Q7MnDmTVatWcfny5Q4f49ChQwwYMAA3N7c7ph57D52HSqVi69at/PDDDyxbtoylS5eye/fuTi32tbUz10Kj0aBSqcjJyaGwsBB9fX2Cg4MFfYv20JbeClRVVQl1N23ByMiIxsbGDhsFHh4e9OnThwMHDrTIlb0Z5Ofns27dOgYOHNhmjcvNwsDAQPCeb926lezsbIyMjJg7dy5Tp05tU+hq6NChiEQiduzYQUpKCtXV1Tg7O+sYPHK5nMGDB7co3pZIJLi5uREeHq4T/ZLL5Tz//PP07t2bvXv3Cl5Ze3t7Ro8eTf/+/XWiIXZ2dgwYMABHR8cbLgr9/PxYtGgRcXFxFBUVIRaLsbe3Z8qUKUycOPGWUj7X1taSnZ1NSUmJ4HmUSqUEBgbeEnHQG+Hxxx9nyZIlPPfcc4IIbGVlJampqZSVlTF16tRWF1TdEdo0w44iOzub9PT021Zn8fjjj/P44493aN/Gxkbi4uI4depUF7eq/dA6grXv8aBBg1ooiTc3Nwvsh3///fd1j2dhYcHcuXPbJOzx8PDQqe9pCwYGBrzzzjttRkstLS158MEHefDBB9s8hp2dHYsXL2bx4sVtblNXV4erqyubN2++KUNUoVB0mKxBWyx/NZycnJg1a1aHjtdRdHvDorGxkXPnzrF69Wri4+PRaDTo6enh6urKrFmzGDdu3A2ZEW4lFAoF3333HY6OjtTX1zN16lSef/55JBIJa9eu5d1338XPz48VK1awYcMGPv744zvW1puFl5cXo0aNYt26dR3O+a6pqWHLli307NmTUaNGIZVKcXBwEPL8ukOdzD20H/b29sCVgbVfv358+eWXPPnkk21ur1AoqKmpoaGhoU0vvpOTk046lFqtJi4ujhUrVhAdHY2BgQF79uyhsbGRvXv34uzsfEc8uqampjQ1NVFXV9eq4dDQ0EBiYiJyubzDBpdYLKZfv34EBARw8uTJDrdVq/mxZs0a3njjjesaQzcDqVTK+PHjb+r+SyQSRowYwYgRI9rcZtKkSa3WzpiZmbFgwQIdUSktZDIZ991333V1O7QOKX19fb755hucnJzaHHOamprIy8sjNzeXcePG8dJLL+kUwNfU1JCdnc3hw4dxdXXF1dW1y9mhzp07x7p16zh9+rSw8DE0NOTLL7+8YZ3WrcB9992HTCbjzz//JDU1laamJkxNTRk4cCCDBw9m1KhRN11LdKdwM0XPrUGhUHDx4kWys7Px9vbuwpZ1LbTRis2bN3c426AzaGpqIjc3l8zMTEELpq2xf+LEiddNl70VuF0p2Fra2NmzZ7d7H7VaTUVFBbW1tR06p1gs7hYO3G5vWBQWFrJ+/XrUajXvv/8+crmcyspK9u/fz++//46FhcUdZYYSiUQsXryYefPmkZGRwYsvvsgTTzyBiYkJpaWlDBkyBHt7e6ZOncqqVavuWDs7ikWLFrFnzx4KCgo6fIyLFy+yadMmXF1d8ff3Z+jQobes+PEebg1EIpGQ12plZcWGDRuor69vM4dfrVaTlZXFyZMnSUxMpLy8vM0UhE8++USH8UqhULBy5UoaGxt54IEH2Lp1K3CFYaaoqIiMjIw7YlgEBASwd+9ejhw5gqOjIw0NDRgZGVFVVUV6ejpnz55l//79zJgxo0O1A1oEBwcTFhbGhQsXWi3Eay8qKir4448/8PT0ZP78+e0qlPwnobGxke+//5709HQMDAyYOnUqDg4ObRoWDQ0NxMTEsGnTJpRKJV9++aWOaGF5eTnHjx/np59+ElR2uzqKEBMTg5+fH97e3nh5eSGXyzlw4MB1SRBuNbpqvK6vr6empgaZTNZqnUpVVRV1dXXI5fJbkmrUVq3fzeDcuXNcunRJSAvrjlAoFJw6dYp9+/bdkfOnp6fzxRdfcPDgQUHYsa3nqaVrv1Nobm6muLiYhIQEmpqa0NfXp0ePHnh4eKBUKikoKCAjI4OmpiasrKzw8vLCzMyMhIQEQWOturoaOzs7/P39MTIyoqGhgbi4OH7++Wf09fWxtrbG0NCQwYMH3/C9LisrIy8vr0NijPB/Ed7WoFQqqaiooLS0VJhXjIyMsLW1xdLSskvT9Lu9YaEVd/nkk090cjk9PDz4/PPPiY+Pv6OGhbGxMcHBwVhbW2NmZkZlZSVFRUXY2NgIYT4tI0VXC+zcDvTr14/JkyezevXqDueNazQatm3bhlwu57nnnsPZ2fmO58vfw81BX1+fp59+GjMzM6ZOncqaNWuQyWRtMmPl5OTw1VdfsW3bNkxMTJDJZG1OxNcaHI2NjZw5c4Y1a9YgFosFw8LIyAgTE5MWPN23C/3792f48OHs3r2blJQUUlJSsLCwYO3atZSVlQme7Pnz53dqAaN1lhw/frxVnY+bweXLl1mzZg1yuZwxY8bcNd7lrkBxcTEnT57kgw8+ELz915vYzc3NmTJlCiYmJi2ok+FKYefixYvJzs6+pakwJiYmKJVKRCIRffr04eeff6a0tPSWne92ITk5maSkJAYPHtxqOtnp06cpKSlplW62K+Dg4ICzszNFRUUdnsvS09M5ceKEIP7W3aBSqUhKSmLlypWdckp0BtHR0Rw7dozhw4cTERHRJvsfcNsK4bWIiIjAx8dHaE9DQwPbtm3jxIkTWFlZIZVKGT58OD169CA7O5udO3eSm5sr6BaNGjWKoUOHsnLlSurq6nBycqKkpISqqireeOMNevbsiUKhICoqigsXLiCTyfj777+RyWQMGjTohu91SkoKSUlJHb4+fX39FnVrGo2GyspKTp8+zfHjx0lISKCsrAy4Ug8TGBjIkCFD6NevHxYWFl3S97q9YaFlVbp2QtTy7XY0Raer4Ofnx6FDh6iurqaoqAgjIyM2bdqEgYEBpqamJCUlIZPJyMnJ0eF+v1ugp6fHM888w+7duzu1oFMoFKxfvx6ZTMaiRYsEho57uDugp6fHoEGD0NPTQy6XEx4eTnNzc5th1zNnznD06FEGDhzItGnTcHR0bDMN4dp+oVUxl0gkOmFrhUJBVVXVHVsc29nZ8cgjj2BqasqhQ4cwMDCgtLSUnTt3YmlpybBhw4Qixc56MwcNGsTQoUNJS0vrlENCo9EQFxfHsmXLEIvFRERE/OONC5VKRXR0NKdPn6aiooLIyEjy8vIYNmwYNjY2lJaWcvr0aWprazEzMyM0NLTd7DRtobKykgsXLlBSUoJEIqF37964urqyY8cOJk+eTEVFBYcOHWL48OGIxWISExMJDw9v4bmXy+U0NDSg0WiIjY0lPz+fqqqqbsGIqFaruXTpElVVVZSVleHg4EB9fT1NTU3069cPiURCQkIC2dnZaDQa5HI5QUFBmJiYkJSUxK+//kp2djbl5eXY29szfPhwrK2tUSgUnDlzhg0bNiAWizEwMMDIyIgJEyag0WgoKiriwoUL1NfXI5PJCAoKwsnJidLSUnJzc6mvr6esrIza2lp69+6Nt7d3q/1PLBYzaNAgYmJiWtVQaO892LdvH8OGDWPcuHGdikx2NbT6Ij/++OMdra0wMTGhR48eDB06lOnTp3eLd1eLt99+W+dvtVpNdnY2Li4uTJs2DScnJ0xMTFCpVJw5c4a//vqL+++/HzMzMw4cOMDRo0fx8/MTisOfeuopLCwseOihh0hKSsLX1xdLS0ueeeYZEhMT8fLy4oUXXmjXYl2hUHD+/HkSEhI6dG1aFtVrjfaamhp27drFf//7X8rKynB1dcXc3Bw9PT0qKyvZvHkzf//9Ny+++CL33XdflzAJdnvDwtzcHHt7e7Zu3UpzczMymQyFQsHJkycpLy9n8ODBd7R9M2bM4Pvvv2fz5s00NDSwaNEiysrKyMjI4JFHHmH9+vVERUURGxvL8OHD72hbOwp/f38WLFjAf/7zn07lJ5aUlPDNN9+gVqtZtGgRTk5O/xjjQuu1cHNzu2WqvHcSarWaP/74g9mzZ6Onp4e5uTmlpaUcOnSIkSNHtti+oKAAAwMD5s6de90c+NZgYGBAeHg4mzdvJjAwEIVCQXR0NBkZGSQlJd0xHQu4ojXx3HPPMX78eFJSUqioqEAikSCXy+nduzfW1tZd8k7LZDImT55MZGQkZ86c6dSxVCoVUVFRfPLJJzQ2NjJq1KhukYd7q6DRaCgoKCAzM5Pa2loyMzOpq6ujb9++NDU1sWbNGoqLi4XIQExMDM8++2yHCQFUKhW///47iYmJAr/+qVOnePHFF1m+fDnh4eEkJCTw2WefYWhoiFwu56effiI0NLTFsQYMGIBCoUAikVBdXU1cXByDBw/G3d29k3el81Cr1ezdu5fU1FQsLS3JzMzE19eX4uJiAEJCQkhKSiItLQ2lUklNTQ0TJ05kxIgRQgpjUVER6enplJeX07dvX6ytrVEqlVy+fJmMjAzMzc1JSkoSUr8qKirYsmULVVVVglBmcnIyCxYsIDs7mw0bNqBWq7Gzs6OmpgZHR8cWWipXY8SIEXz//fcdNizgig7C1q1b8ff3x8vLq1uwHWo0Gqqrq9mwYQMbNmy4o23p3bs3/fv3FwgobGxsBBXuazF69Oh2O1yVSiWlpaWCKGJXpKIZGRkxbdo0/vzzT/7++2+srKzo168f/v7+FBcXU1JSQkFBAQUFBbi6uhIQECAYSsHBwUJqpY2NDQqFosOObo1GQ3x8PH///TclJSUdOoZEIiEkJKSF4yg9PZ3169ejr6/Pq6++SmhoKDY2Nujp6VFeXs6FCxdYu3Yt69atIzAwkJCQkA6dX6ctnT7CLYZcLuf+++9ny5YtJCQkYGpqSkNDA1VVVfTr168Fb/rtRnh4OObm5qSlpWFmZiZI0ldVVSGRSPjmm29ITk4mKCioXYJq3REikYhHHnmE/fv3CwqqHUVRURHffPMNNTU1PPzww50uqLuTaGpqIjMzk4sXL3Lu3DlkMhnPPPPMP3LRplQq+eKLL3QK0XJzc1m/fn2rhgVc8Vx1xDtuZGTEI488wpo1a0hMTKS4uJjly5ejp6dH37592zzf7YKBgQFBQUFtsiB1Ffr27cuoUaNIS0ujvLy8U8fSGhdLly6loKCAKVOm4Ozs3C0WRTeLxsZGGhsbMTY2bjUvWF9fn/vvvx8PDw9SU1N54oknhGeVmZnJzz//zJYtW/D19SUpKYlXX32V4cOHM3DgwA61p6ioiG3btvHMM88QERFBbW0tc+bM4dy5cwQHB3P+/HnS09MZOXIkUVFRjBgxAplM1mrNy9XexscffxyFQoGxsXG38ozb2dnx0EMP8eijj/Liiy8SExNDYmIiffv2FeojVCoVO3fu5NKlS0yYMIExY8aQlZVFTk4ODz/8sE66hkwmY8GCBZw7dw43NzdeeuklQW8iMzOTtWvXMn36dGxsbEhISODYsWMCEUB1dTV+fn4sXrwYqVQqCDK2hX79+mFlZdXh4li4kkWxZ88egT3s6vqwOwGNRkNdXR0bN25k+fLlVFdX39H2aI3Kw4cP8/fff2Nvb9+m9kvPnj3bbVjU19dz+PBhTpw4Qb9+/QgNDcXT07NTEViRSISbmxuvvPIKFy5cYNu2bSQnJ/PZZ59hYWFBQEAAixYtokePHgJph3bM1NfXF4wbrcTA1ZBKpe1+Frm5ufzyyy+dIuwwMDBolSCjuLiYnJwcFi5cyKOPPqozlnh4eBASEkJtbS3ff/+94CToLLq9YWFubs59992HlZUV586do7KyEltbW8aNG8eQIUNwdna+003E19e3BaWjlZUVGo2Gl19+mfLyciwsLG6psNKthEgkwtXVlddee40nn3ySoqKiTh2vtLSUlStXcvnyZR566CGBWeRuWOSo1Wry8/OJj48nNjaW8+fPc/bsWXJycrj//vs7zJHenZGcnExBQQG1tbVCiF3L3NRWBEur2ZKSksKAAQNuavDX19dn4MCBWFhYEBkZSf/+/dHT08Pb25tBgwa1qpVwO1FXV0dWVha5ubnU1dUhFouFwj47O7suK+o0MTFhzpw5XLx4kQMHDnTKywr/lyJUXl5Oeno6M2fOJCQk5K4o6lapVBQXFxMbG0tsbCzW1tZMnz79po34goICpFIpXl5e6OnpYWtri4ODA5cvX+6wYVFaWopGo8Hd3R2pVIqVlRWenp5kZmYSGhrKhQsXKCoqYvbs2XzzzTetzhetwcDAoFulkQAC9a5UKsXCwgK5XE5ycjKVlZXEx8ezZ88evLy8BMVipVLZYbX15uZmysrKqK6uxtjYmMbGRjw9PRk0aBAWFhaUlJRgbW2Np6dnu6NN9vb2DB06lM2bN3e4zgKuRKh/+uknrK2tmTlz5h11JlVUVPD999/z9ddfU1hYeMfaocWFCxfYs2cP4eHhDBo0CFNT0zbHxJsxylQqFenp6axevZqdO3fSp08fwsPD6d27N7169eqQIGZjYyNbt26lpqYGkUgk9F+pVEpoaCjJycmsWbMGGxsb1Go1/fv3b7dHv3///vz666+sWLECGxsb5s2b12IbbXR1/fr1guBeR2FpadlqVoxGoxEkD1pzUGgj7kZGRl3GmNXtDQu4YlyMHz+e0aNH09DQgFgsxtDQsNsvRLUvancs8rpZiMViRo8ezWOPPcbHH3/c6dqW+vp6tm7dSkZGBmfPnmXKlCn07t27WzJtaNkhEhMTiYuLIy4ujoSEBIGT/5+O4uJijh07Rnl5uVBIrR2A2mJnCgkJITAwkJ07d1JfXy94ploLifv5+SESiXTYQ7TaFVr9Crh+4e3tgEajISEhgZ07dxIVFUVeXh719fUCxZ+Xlxfjx49n0qRJXTY+BQYG8vDDD5OWlkZKSkoXXMWVgu4ff/yR2NhYJk2axIQJE/Dw8OhWXnG4spAoKCjg0qVLXLp0ifj4eOLj40lNTWXs2LEdSolzdHREqVSSlpaGr68vJSUlFBYW6rA/3SxsbW0RiURkZmbi6elJXV0d6enpjB8/HhcXF3bv3o2hoSGenp5CfcWECRM6fL47jau9tNq0P6VSSWJiImVlZSxZsoSysjKOHTums59UKkWhULTpfDEwMKCqqkr4W09PDysrK5ydnRk5ciShoaE0NDQItRYlJSWIxeKbnjMefPBBfv31104b6ikpKXz11VdoNBrBuLjdY1R8fDxr165l7dq13abAXywW4+DgwLRp03jwwQe7PN1ZrVaTl5dHXl4ehw4dwtvbm6CgIEJCQggNDSUwMBArK6t2nVcsFuPs7ExWVhZisZg+ffrQv39/gQVx3rx5nD9/nurqagwNDbGwsEAqlTJr1iyd9MSpU6fi6Oio4wjQrlfr6+tbHVu1htK6dev4+eefyc7O7vA9kUgkDB8+vNWUSVtbW1xdXcnKyqKpqalFWxoaGkhJScHJyanLGLq6vWFRUVEhUPA5ODjcUdq9/2WIRCKMjY15+OGHiY2NZefOnZ0+pkajITo6mpSUFCFFQDuB3MlFTnNzM9XV1WRkZJCcnEx8fDxpaWlkZGSQkZFBeXn5bePC7g7w9/cH4O+//2bMmDHAlUlfJpPh5+fX6j7x8fFcuHCB6OhoLl68iIuLCzKZrFWP0o8//siGDRuYPHkyPj4+NDQ0sGfPHiZPntxmbu6dwNXeMkdHRwIDA7GwsBAKTI8ePcqFCxfQ19dn4sSJXZLip6enx9ixY4mOjmbVqlWdTonSQpuqkJyczLFjxxgyZAjDhw8nICBAR7vhdkKb0qFlRklKSiIlJYW0tDQyMzO75NqdnJx44IEHWLNmjZBW269fP3r27ElRURE7duzg7NmzxMfHs3r1avr378+QIUOQyWScP3+eyMhITp8+jbGxMfX19YwdOxZ/f3+mTZvGoUOHiIyMRKlU4u/vT9++fdHX16ewsJARI0ZgamqKu7s7CQkJvPTSS11wx7oPJBIJrq6uqNVqli9fjqGhITU1NTrvUkBAAGfOnOG7777DwcGB+fPn67ACDRkyhB9//JElS5ZgZ2fHU089hYeHBxMnTuSnn35i+/btaDQagoKCmDp1aofbOnDgQPz8/IiNje3UNQPExcWxfPly8vLyWLBgAW5ubrfFOVZeXs6uXbvYunUrBw4c0FHhvtPw9fUlODiYkydPolKpsLa2RiqVtjqO9+/fv1M6ZDU1NcI8s3fvXnx8fPDx8SEgIIBevXrRs2fP60aRDQwM2nRQSKVSAgICCAgIaPHbxIkTdf4eN25ci22srKxa1d/RaDQCmcNvv/3G4cOHO1xXoYWhoSGPPPJIq9fp7u7OsGHD2L9/PytXrqRnz56Ym5sL7YiJieHo0aP06dOH2tpaLl68qLN/QEDATa/Hur1hkZeXxw8//MDrr7/+j/D8383QChO+9NJLFBcXc/r06S45bl1dHQcOHOD8+fP8/fffhIaGCiFOLy+vW1qDoWUgKigoIDs7m4yMDFJTU7l8+TL5+fnk5uaSn5/fqZzcux02NjYMGDCAl156STAsboSmpibs7e1bHXCvhZ6eHj/++CNDhgxBo9FQX1/PihUrmDBhQpdya3cWJ0+e5PDhw4wbN47Zs2fj4uKCqakpzc3NVFVVER8fz/vvv8/KlSuJiIjosvfW3NychQsXkpaWxq5du7qURjI/P58dO3Zw+vRpdu/eTXBwMKGhoYSFhQl971YZds3NzZSWlpKZmUl6ejrp6emkpaWRm5vbJf3O0dGRZ555Rid1Tl9fn0cffZTIyEhqamowNTUlLCwMc3NzmpubcXNzQyaTMXjwYExNTbG3txfeQZlMhru7OwsXLhQcLVoP5owZMzh37pzgRe/duzd2dnaoVCpeffVVgf9+7ty55OXldZlg4e2EWCxmzJgxSCQSbG1tefbZZ7GxsWHw4MEoFApcXFyQSCSUlZVhY2NDv379cHBwEN6foKAg5s6dS25uLhKJpEVq8PDhw9FoNCgUCmQyGSKRCEtLS+bPn090dDRVVVWIxWK8vLwQi8W4uroyderUFmrtN4KZmRmLFi3i+eef75L7kpyczLfffkt8fDwzZsxg7Nixtyx6UVBQwKFDhzh48CDHjh0jMzOzUyldtwI5OTkcP36c7Oxs9u3bh7m5eZvjuJYpsrPQaDSUlJRQUlJCZGQk1tbWuLm54e7ujre3N/7+/vj5+eHr64uZmdkdcVap1Woh+n/o0CFOnTpFcnJyp9OnRSIRo0aNalNA8/Lly+zZs4fo6GhiYmJwdnbG2NhYcOTk5OQIQrbR0dEtnKabN2++6T7WfWbtNlBfX09OTs4d86Ldgy709fXp27cvr732Gm+//Tbx8fFdduyKigqOHTvGmTNn2LNnD66urvTo0QMfHx88PT3p0aMHjo6OwmR+M2hsbKSmpoaSkhKB7UFb1JSbm0tZWRkVFRXC4FRTU/M/FZW4EcRi8U2J0g0ePLhdeeRwJTdULBYLXhuVSsXly5e73YSZlZWFsbExU6ZMYciQITreIblcjre3N6dPn2bjxo1dToPt6enJv/71L4qLizl16lSX1/IUFRVRVFREVFQUTk5OuLq64u7ujqenp/CRy+VYW1vfVN5/c3MzCoWCsrIySktLKS4uJj8/n5ycHPLy8iguLqa0tFTod5WVlV3W76ysrFrVOLKxsWmVqexGYqteXl5tMg7JZDIiIiJafC+VSnW8671796Z3797taX6raG5uprGxEYVCQX5+fqf6iFKppLy8nNLSUoyMjDA0NLyut10sFhMcHCz8rXUaXN3PR48e3eb+xsbG12VxlMlkTJkypcU5HR0dW62rsrGx6XDqxrRp01i9enWXzV+lpaVs376d+Ph4du7cSUREBIMHD8bb27tTqUBaCtmYmBiioqKIjo4mLi6OzMzMmxoDTExMcHBwoLa2ttM1kjeCs7MzDz/8cLu2vRXieM3NzcJ4cu7cOczMzLC3t8fBwQG5XI6Hhweenp54eXnRo0cPnJycbonzUqPRCEKx8fHxnD9/npiYGFJSUsjKyqKhoaFLziOTyXj55ZfbrGPUaDRYW1szatSoVn+/VvfiWnTk/e32hoU2fJyXl4eHh8edbs49cCXsNmrUKKqrq3n33Xe5fPlylx5fm/OXkpIiFFNZWlpiaWmJmZkZpqamWFpaIpPJMDIyQiqVCgODSqUSPg0NDdTU1FBTU4NCoRDyHevq6qirq6O2tpbq6mpqa2u73SK2u0HroW0vbnbSHzduHJ988gn79u0TQrRvv/12q56uPn366LBT3S6IxWLhHWyLJ78tVeHOQiQSERYWxrvvvsuLL77IpUuXbsk7W19fT2pqKqmpqejr62NhYYGlpSVWVlaYmZlhYmIifGdoaIhUKsXAwEDQFFKpVDQ1NQkesOrqaurr64VPXV0dNTU1VFVVUVNT848kO2gLGo0GlUol3Ier/23tu9a20epGKJVK4e+OoqioiBUrVrBlyxb09fXR19fHyMgIY2NjjI2NMTExEUQptX9f/Zv2/1d/bmScdAeIRCIcHBx46qmneOaZZ7rMkFWr1SQlJZGamkpkZCRubm54eXkRFBSEl5cXbm5u2NjYCMXBWq95c3Oz8F6Ul5cLdT+ZmZmkpKSQnZ1NXl4eubm5lJeX33S/l0gkDBw4kAULFvDnn3+yZcuWLrnetuDn53ddyt+rcTtSnrVrgLS0NOBKBFg7pmn/lcvlyOVyHB0dsbe3x9LSEgsLC2QyGWZmZsIYd22kQ61Wo1AoqKurE/RdSktLycvLIycnh4yMDAoLCykuLqagoICKioouv75FixbRp0+fNn/39fVlyZIlHT5+RyJK3d6wcHJyYuTIkWzevJmSkhIh3KqFXC6/lyJ1myESiTAxMeG+++6jrq6Ojz766JapITc1NVFYWKjDdqEtitd2drFYLFjVzc3NaDQaYbBWKpU0NTXdMxy6ISorKzly5AgRERE8++yzODs7k5mZSWlpKc3NzVRWVra6SOnMYqozCAwM5OTJk2RmZtKnT58Wk2JVVRWRkZEMHz78lkyYYrGYwYMHs2TJEl5++WUyMzNvaVRNqVQKnr+roa+vLywgtX1PT09PEDPV9j3tAvif3vcSEhLIzMykpqZGcFpc7bzQ/r++vl7guteOTVf/e6PvtJ+ueub19fUt8qnFYjH6+vpIJBLho/376u/b2kYqlQrGiYmJiY5RcvXfpqamhISECDoAtxtisZjJkyeza9cu9u7d26XH1nqps7KyOH36NFZWVlhYWGBqaipEhrT3Cq7McVc7wxQKBfX19VRXV1NZWSkIJnYU3t7eLF68mIiICDIzM2+5YaF9J7orqqurqa6uFhyiWqfZ1caylpHNwMBAoJXV9g2xWIxarUatVuv00aamJuH5aR0oNTU1qNXqW3YtI0eO5Mknn7xuFNnU1BQfH59b1obW0H2f/v9HTk4On3/+OXl5eezfvx8TExMdq/HJJ5/kiSeeuIMt/N+ESCTCwsKC2bNnI5FI+PTTTwWPwK2GRqMRuOzv4e6Ftm+Hhobi7u7OI488QnV1NYWFhZw5c4aXX3651RTIjgqZ3SwKCgp0mJjEYjF2dnb88MMPpKam0qtXL2QyGSqVivz8fA4cOEBpaSnvvvvuLaOWlkqljB07Fj09PV5++WXS09Nve8qeUqn8n4o03Ahbtmxh+/bt1NTUoFKphAXHtQaBWq3u9kaWdsHUGYjFYh2jQyKRtPrd0qVLmTBhwh1JcxaJRNjb2/Paa68RHR19y2haGxsbBYG1a3G1M+xWwc7OjtmzZzN69GghHcrMzIyamppbds67Ddpag/YUwOvp6QmaFdrPnYK7uzvvv/8+7u7u3YbgRItub1g4OzuzbNmyNn+/UX7YPdw6aIvrZs2ahbGxMZ988glxcXF3uln3cJegsrKS7OxsoR7BwsJC8Oz17NkTT0/PO1pbdeLECd566y2d76qqqqiqqiImJgYzMzP09fXRaDQ0NDRQXl6Onp4eL730Env37sXc3PyWtMvIyIgxY8awZs0ann76aRISEm7Jee6hfSgoKCAtLe2ORdK6G7TGyY0cP1VVVXd0YSYWiwkLC+O1117j1Vdfve3G8q02Mk1MTBg/fjyPPvqo4IyxtbVFLpffMyw6iO7iGHB0dGTZsmWEh4d3OZ1vV6DbGxYymey6SrvdzVL7X4NIJMLc3JwpU6ZgZmbGp59+2in1yHu4O6Etjjc0NMTU1LRdEaWSkpJWi5xlMhn//e9/77g4mKura4e0Em6k/tsVMDQ0ZNCgQaxdu5bFixdz4cKFW3q+e7iHfxq0KTCzZ88mPz+fZcuW/WMIOwwNDRk3bhzvvvsucrlc+N7W1hYnJ6cu08S5h9sPBwcHPv/8c8aOHYuBgUG3XAN3e8NCJBJ1+2Kw/3VoB+gxY8bg6OjIN998w6+//nrPg/c/hOPHj/PWW28xY8YMXnnlFX788Uc+//zz6+5TV1fXKn+3WCzGzc3tVjW13QgJCcHb27tD+96qVKiroa+vT2hoKD///DMfffQR69at+8csjO7hHm4H9PT0sLe354knnqC4uJh169bd6SZ1GlKplBEjRvDJJ5/g7u6u49HWGhb3cHfC29ubjz76iLFjx7YoC+hO6PaGhUajobi4mE2bNrFz506Ki4sxNzdnyJAhPPTQQ/Ts2bPb3tz/JYhEIgwNDQkJCWHp0qX4+/vz1VdfkZube6ebdg+3AUZGRjg4OGBiYgJcSXOqrKykR48ewnfXoqysrMsE324FtMV73Rl6enp4eXnx6aefMmDAAN56661uo8B7D/dwN0BPTw93d3feeustxGIxP/30011roEulUkaNGsWKFSvo0aNHizQZW1vbVql776H7Y/jw4XzwwQeEh4d320iFFt3esMjPz+c///kPhw8fZuTIkYwZM4by8nJOnTpFfHw8b7755nW5se/h9kIikeDg4MCzzz5L7969+eyzzzh69ChNTU13umn3cAvRt29fNm7cqMMHPnToUN566602vf4HDx7kmWeeuV1N/EdCJBIhEomwsbHhoYceolevXrz33nvs27fvTjftHu7hroFYLMbT05N3330XmUzGV1991eVaNLcahoaGPPbYY7z33ntYWlq2mnsvk8mQy+UYGBjcIz+5S2BsbMzChQt59tln8fDwaJX2truh2xsWBQUFxMTEsHz5ciIiIoQbGh8fz+eff05UVNQ9w6KbQRu9GDlyJOHh4WzdupUVK1aQmJj4j2KT0abpWVhYcP/997N48WIsLCzudLPuCLQ8+FqIxWKsrKywtbVts4jZzs6uW9MS3k3Q9rm+ffuyZcsW/vrrLz777DNiY2PvugXSjSASiQR2lnu4h66Cnp4erq6uvP322/j4+PDJJ5+QnZ3dbQp224Kenh5WVlZ89NFHzJ8/H319/Tb7hlbDQy6Xk5WVdXsb2klIpVJBY6K6uvqW0rjeaYhEIiQSCWFhYbz++utERER069Sna9HtZ/Xm5mYMDQ3x9/fX4YZ3dnbG0dHxH/1y3c3QLrplMhmPPPIIY8eO5ccff2Tjxo3k5ubS0NDQ7Qfs1nC1hoavry8zZszggQcewNHRsVuyM9wpTJ48mfr6euzs7NrcxtzcHCsrq3v3rYugjV7IZDJmz55NREQEGzdu5PvvvycrK4vGxsa7eryUSCQYGxvj7e3N6NGjbxvt8D3870DLdPjYY48RGhrKRx99xMGDB6mvr+92fUdb2zhq1Cg++ugj/Pz82rXwtLe3x9HR8a4zLExNTXnkkUfo27cv3333Hbt27aK8vPwfpVOlp6eHgYEBPj4+LFq0iFmzZglz6N1iVEA3NCyam5upra0V/pZKpXh4eHDy5EnMzc0Ri8U0NzcTFxeHWq3G19f3Drb2Hm4EbWdwcnLinXfeYdGiRfz+++9s3LiR9PR0amtru32alFgsxsDAAENDQ0Gwcfr06YSGhrZZP/C/jvb0y4CAAA4fPnxvgdjF0PY5W1tbXnjhBR588EH+/PNPNm/eTGxsLLW1tTQ2Nt4VeeRaNWhLS0vCw8N58MEHiYiIuPfO3MMtg9Yp1rdvX3766Sd2797NqlWriI2Npa6u7o5HAMViMSYmJnh4ePDaa68xY8aMm4r82tvb35WiwiKRCH19fUJCQvjmm2944YUX2Lp1K3/++SdpaWkoFIq71mEplUoxNTXFy8uL2bNnM3PmTFxcXO50szqMbmdYKBQKPvzwQ53vqqqqePvtt9mxYwf29vZUVVURGxuLh4cHDzzwwB1q6T10BI6Ojjz33HM88sgj7Nmzh23btnHhwgUqKiqora2loaHhTjdR8BpoVThdXV0ZNGgQERERhIeHY2lpeaebeNdAq4Le1mBvYmJyL2JxCyESibCzs2PRokXMnj2byMhIfv31V6KioiguLqa2thaFQtFtJmM9PT2h38lkMgICApgwYQKjR4+mR48ed7p59/A/BgsLC8GY3b17N7/++ivx8fFUVlbe9n5jZGQk9ImZM2cya9YsLC0tb9qTbWdnp0NBezdCIpHg7+/PW2+9xbPPPsvZs2f566+/OHnyJLm5udTV1aFQKGhsbOw2Y9vV0KaumpqaYmlpSVhYGLNnz2bYsGH/iHTqLjMsDA0NcXd3p1evXje9r729vdA51Go1SUlJLbbp2bMnDQ0Nggy7q6srKpWK1NRUwsLCbngOuVxOz549b7pgydXVVSd3/FbAwsKCgIAAKioq2tymqqqKgoICLC0tsbGxESh4r04Pu5tgZmbG7NmzmT17Nnl5eRw6dIi//vqL6OhoQQWzvr6ehoaGW+pZ1RoRRkZGGBoaYmxsjK2tLUFBQYSFhdGvXz98fX3vqFBbe6BVQu9I/9PCzc2ty1iQlEolZWVlFBcX33ASHjZsGMbGxp0+p0Qi6fAYBGBpaXnd1K27HaampowePZrRo0dTUlLC6dOnOXToEFFRURQVFVFfXy98bodX9upIoNaYcHBwoE+fPgwaNIj+/fvfFQw2zs7OBAUFdQunyN2EjiyK7xQcHBxYtGgRc+bM4cyZM+zYsYOoqCgKCgqoqamhrq6OpqamLp2rJBIJpqammJmZCRG7GTNmMHTo0A6Pl1VVVSiVSnx9fQkODtZpb2VlpaAtZG1tjbW1tQ7Vv6ura6ev6VbA3NyciIgIIiIiUCgUJCQkEBkZyYULF0hMTKSsrExYSzQ0NNDY2Hjbo05isRgjIyOMjY0xMTHBysqK4OBgRo4cyaBBg3Bzc7tr+kJ7INLcDfHwe2Dbtm288cYbPPjggzz//PO3TNX3TkJLLRwbG0tcXByXLl0iJSWFqqoqQXBN+1EqlajVasEbrlar0Wg0Qp65tsBTLBYjkUjQ19dHIpEI9RHaBY1MJsPDwwNvb2+8vb3x8/PD09PztugQ3Ck0NTWhUCiEe3ArkJiYyIoVK9i7dy8qleq6TBbHjx/vdpOWWq2msrJSWHDD/zGqmJqaUltbS2lpKSqVipqaGqysrJBIJBQVFWFiYoKXl5eQtllQUEBxcTFKpRJTU1PkcrkQ9aqoqKC0tBQjIyPBADM2NsbR0RGZTCZEc0pLSyksLKS+vl4w0MRiMb6+vpiZmXVqUqqpqSE1NZVLly4RHx9PQkICBQUF1NfX09jYSFNTk9DvVCqV0N+0fU87hVxdVC0Wi4W+p+1/UqlU6H+GhobY2Njg7u6Op6cnAQEBBAUF/eMm2Hv456K6upqYmBhOnjxJbGwsWVlZVFdXU1dXJ/Qb7UfbV7T9RU9PT5iftP1E6+DSfhwdHQkLC6N///6Eh4djbW3d6eju0aNHSU9PZ/LkyVhbWwvfK5VKVq9ezcGDB1GpVMyYMYOpU6fe9SmHjY2NZGRkkJiYSEZGBpmZmWRlZVFcXNziGSmVSlQqFWq1WvhXu6649gMIY532WWrHOe3n6udpZWWFn58fPXv2pGfPnvj5+f0jIhNt4Z5hcZfgxIkT/PDDD4wZM4bJkyd3iYe3u0Oj0dDQ0EBOTg4FBQUUFhZSUFBAUVERFRUVQk5lY2MjDQ0NqFSqFh3c1NQUc3NzzM3NkclkWFtbI5fLcXR0xMHBQSf6czuup7a2lvT0dGpqajAwMMDR0RG5XH5bRSDT09OJiYkhICAAPz+/W3KOlStX8vnnnzNgwAAGDx6MmZlZm5PixIkTMTU1vSXt6Chqa2vZt28fW7ZsobS0FLVaja2tLQ899BBjxowhNjaWlStXApCamoqXlxdyuZyzZ8+iUqnYvHkz9vb2ZGRk8MUXX5CUlERTUxPW1tZERETwwAMPYGNjw86dO1m1ahU+Pj7k5ORQUlKCvr4+M2bMYNasWVhZWVFRUcGaNWs4c+YMNTU15OXlkZaWxsCBA/n8888JCQnp0sW4RqOhpKSE/Px8CgsLKS4uprCwkKKiIqqrq4U+d7WRf60Rb2RkhKmpqdD/tAxhtra22NnZ4ezsjEwmuyd+eg//GNTV1ZGVlUV6ejqFhYWUlJRQXFxMeXk5CoVCWMCqVCqhj2i92Obm5jg4OODq6oqrqytubm7Y2NjctoyEwsJCnnnmGRYsWMD48eOFRfM/1civra0VnlFJSYmgqaSNPtXW1grpVNcaHM3NzTrrDKlUiqGhIebm5lhYWGBpaYmlpaXwPF1cXP7n0qe7XY3FPbSOwYMH/8/R6opEIoyMjPDx8cHHx+dON6fTqK+vZ+/evXzyySekpqZiZWXF7Nmzefrpp1t47FUqFcnJyTQ3NwvpKS4uLri6uiKVSqmuriYpKYna2lqBocrGxobm5mbKy8tJTU2lsbERExMTevTogY2NDSqVioKCAv766y8uXrxIWVkZRUVF+Pr6Ym9vT1FRETU1NSgUCioqKlCpVPTr1w+FQkFGRgZ9+/ZFJBLR2NhIWloa5ubmbRaYSaVSvLy8mD59OhMmTLjl6YRdDX19fXr06MH8+fPx9fWlrq6OL774gt27dxMYGAhAWloakyZNYuzYsbz//vuMHTuWpUuXMmvWLGJjYxk2bBj//e9/SUxM5IMPPkAul3PkyBE2bNggcM4DpKSkYGJiwrPPPoudnR1r165l9+7dBAUFMXjwYE6dOsWePXv417/+xejRozl58iQLFizg008/JTg4uMsnf21dxj85Lewe7qGrYWJiQmBgoDA+3E4olUpOnz7NwIEDqaqqIi4uTkh1ysvLw83NjcLCQnJzc7GyssLHxwcjIyPUajVZWVmcPXuWyspKMjMzOXnyJIGBgVhZWSESiaivrycxMZGamhrEYjE9evTA2dn5tl9jV0JbKO3l5XVLjn/58mVSU1OprKzEw8PjlpyjO+OuMiyamprIz8/n8uXLVFdXC1S0VlZWuLm56eQEFhcXEx0djY2NDYGBgTopHyqVir1796Kvr8+4ceNobGwkNTWV4uJievXqRVlZGZmZmTQ2NgovoJOTU6vMC42NjaSnp5OTk0N9fT1SqRS5XI6/vz+GhobCpK9UKsnKyiIrK0uoCUlOTqakpASNRoO1tTU+Pj46k3ldXR3nz5+nuLhY+M7f3x8fH582F2oqlYri4mLhpRaJRFhZWeHp6Ym9vb2O11hbBG9hYYGnpyf5+flkZWVRU1ODVCrFycmJwMDAdi8Kq6urSU1NpaCgAJVKJTBXuLi4CJ6XkpISUlJSKC0tRV9fH1dXV53rqa+v59ChQwwZMoTExESKi4sxNDTEz88PuVxOWloaVVVVhISECHUPCoWCuLg4TExM8Pb2RiqVUlJSQnJyMmVlZejr6+Pm5oaPjw8SieSOeWGKi4tZs2YNFy5cAK6koGzdupWgoCAeeughnW0bGhpYsWIFenp6WFhYUFRUhKmpKS+88AKurq78/vvvnDlzRkj/8vb2ZvHixTQ1NfHHH3+QmJhIY2MjIpGI0NBQ5syZg1gsJjk5mWPHjgmMXHFxccybNw97e3tOnjzJvn37sLKyorq6mtraWnx8fCgpKeHVV19l+/btWFhYUFxczMcff8ycOXPaNCwGDhxIXFwc+/btQ6FQYGlp2WY61MCBA7tdDYv23VSr1aSlpdHU1IS+vj5VVVVUVVUBV+rKwsLCCA4O5pNPPmH48OEEBwcjl8spLi6mrq6Obdu28fHHHwtOAWNjY+Li4vj7779ZsGABcIW9aezYsQwbNgyAIUOGkJycLKiSl5WVYWRkhI2NDfr6+ri7u6Onp0dlZeVdwex0Dx1HWVkZeXl5uLq6/qNTJ+6hc1AoFLzxxhv8+uuvXLx4kffee48PP/wQY2NjNm/ezBtvvMHFixdZv3499vb2vPPOO7i5udHc3ExMTAwHDx4kNzeXY8eOkZaWhqWlJRYWFohEIvbu3UtUVBS1tbU0Nzdja2vLyy+/fO99vA6+/PJLfvjhB2QyGatXr2bs2LF3ukm3FXeNYdHY2MiFCxfYsGED0dHRKBQKVCoVIpEIW1tbnnzySSZNmiQsUOLi4nj++ecZOnQoH374oY5h0dDQwKJFi7CwsCAlJYXa2lo2b97Mjh07WLx4MdHR0cTHx1NVVYVUKmXYsGEsXLiQXr166YTu6+rq2L9/P5s2bSIlJQWlUolGo8HJyYn58+cza9Ys4bwNDQ38+eef/PDDD/z73/8mLy+PvXv3UlBQQF1dHZ6enrz00kuMHj1aOH51dTXbt28nKiqKwsJCcnJyePXVV3nllVeQyWQt7pFSqSQhIYENGzZw9OhRoZjQwsKCYcOG8cADD+Dv7y8YFzk5OXzwwQcEBQUxdOhQDh8+THR0NOXl5TQ0NDBhwgSWLl3aLsOioaGB48ePs2XLFoGJQSwWc//992NnZ4dUKqW8vJxffvmFs2fPolAoEIvFGBoa8uijj9K/f3/EYjGlpaXMnz+fzz//nJiYGPLz8zExMWHGjBlYW1tz8OBBDhw4wIcffkjPnj2BK6k9n332GQMGDMDNzU14nufPn6e+vh6JRIKhoSGPP/44ffv2vWOibFeTD2hRVVVFUVFRq9tXVVXh6+vLc889B8CCBQuIjo5GJBKxcuVKli9fzoABA8jKymLhwoUMGDAAQ0NDfvjhBxYsWICtrS3R0dH8/fffDBgwgMDAQEaNGkVtbS2RkZHMmjWrBfFBeno606dPZ/jw4SiVSoyMjHBycsLR0ZFDhw5x//33k5GRQUVFxXUjaNo8+t9++43ffvsNe3t7DAwMWjUstm/fjpOT083ezluKoqIitm/fzvnz54U+n5CQgI2NjcBnb2RkhFgsFgSpTE1NhRC5SqUSmM7c3NyE4xoaGmJnZ0d8fDwKhQK40j/t7e2FbaRSKRqNRigw7NmzJzt37mTnzp2kp6eTnp5OSEgIPj4+9xi1/uGIiopi69atPPXUU4SGht7p5nQKycnJpKSk0LNnT1xcXG5ZGlxZWRlnz55FJpPRq1ev/wlKcLFYTGBgIOfPnyctLY3+/ftz7tw5QkNDMTU1FVKsmpqaOHfunLCfvr4+06ZNIzAwkLq6OhYvXszQoUOF32tra/nkk0+YPHkyffv2pbS0lJUrVzJu3DgGDRp0Jy71rsCuXbuoqqqirq6O48eP3zMsuisKCgr44YcfOHz4sNARACGCYWho2OkFY05ODj///DP+/v4sXLgQkUjEiRMn+PPPPxGJRLzyyis6HtojR46wZMkSTE1NmTlzJq6urhQXF7N161befPNN7O3tW7xQ5eXlbN++HaVSybBhw5DL5VRVVaFWq3UWFwA2NjY8/fTTzJw5k7179wo53a1Bo9FQWFjIsmXLOHLkCFOnTqV37940Nzdz9uxZduzYQUVFBa+88gru7u46+8bExJCdnY2joyPz5s3DyMiI7OxsXFxc2n1PKysrOX78OHV1dbz77rtYW1sLYVetsXf06FEOHjzI9OnTGTZsGLW1tSxZsoRvvvmGXr16CYViWiPl0Ucfxd3dnfr6ekxMTDA1NSU4OFhgsgkKCgLg3LlzqNVqevXqhampKX/88QeHDh1i1qxZDBkyhNraWt577z2++uor1qxZc8fy+fX19bG2tiY1NVX4ztTUVKeI7lp4e3tjYWGBRCLB1dWVoqIiMjIykEgkBAQEIBaLcXBwwMPDg4SEBJydnYXIk9aIGTp0aLuLtL28vPDw8BAKbeHKu7Vw4UJWr17N0KFDOXToEMOHD2/VuNXiyJEjbN++naCgIEJCQq5bY9EdJ/6YmBh+/fVXJk2axLx587CysmL58uWcP39eZ7urDaVrr09bqFxaWip8p1QqqampwdTUVHgm2tqEttCrVy88PT2JjY2lqqoKW1tb3nrrLeRy+T82B/oervS76Oho0tLSUCqVd7o5ncb+/ftZtWoV77zzzi2tK8vMzGTJkiUEBgby7rvvdsvxpashkUgICQnh/PnzlJWVMXr0aH7++WecnZ3x9vbu8HHLy8vJy8ujsLBQiNROmTLlf+KedgY9e/YkJycHc3PzO5Iad6dx1xgWZWVlxMXF4efnxzPPPCN4ATUaDXV1dejp6XU6j7upqQlHR0eWLFki5BAOHjyY+vp6Dhw4QEREhGBYlJeXs2HDBqqrq3n33XcZP368sFDo2bMnM2fO5IsvvmDUqFE6A6g2zerf//43Q4cOFRYjral66uvr4+npiaenJ9nZ2dddHDY2NnLs2DH27t3LjBkz+OCDD4RQ5dixY/n888/ZtWsXISEhLFy4UKdN586d48knn+S5557D0dFRJ32rvYaFkZER7u7uJCQksH//fkJDQwkMDMTW1la4xiNHjlBaWiqkKMGV1K0TJ07Q0NAgGBZSqZQRI0a06hHx9PTEy8uL8+fPM336dAAuXryIq6urIMp25MgRysrKSEpKoqSkRLi/x44do6GhARMTkzuyILOysmLq1Knk5+dTXFyMubk5I0eOpF+/fm3uk5ubS21tLXp6epSUlGBhYYGDgwNqtZrs7GwsLCyorKyksLBQKIh1d3fnkUceISAgQChsv5rdQywWo1KpWhUmlEqlrRoA/fv355tvvuHEiROcP3+ezz///LrXqlarsbOz4/HHH2fKlCl3nWe9vr4epVKJi4sLRkZGxMfHExMTIzBEtQfW1tb069ePnTt30rNnT2QyGRcuXCAhIYH+/fu3m9q3vr6elJQUpk+fzqxZs/5nJ/WqqipOnz6NWq0mJCSE2NhYLl++jEgkws3Njd69e2Nra6vTt8vLy0lKSuLy5ctUVlaiVquxsLAgMDCwRdF7XV0dZ86coaqqioiICLKysoiJiaG6uhpDQ0N69epFUFCQzjhcWlpKTEwMmZmZQj/z9fUlNDRUiGQplUrOnj1Lamoq9913H/Hx8aSkpNDU1ISVlRUBAQH4+voKhnxBQQFxcXFcvnyZv/76i6ysLH755RciIyOF886fP1+HrlWlUpGQkCBE2pubmzEzM8PJyQl/f/9uoVsQHBws1CzdK9rvWkgkEoKDg1m+fDkmJib4+PigVCpJT09n1KhRHT6u1vE1ZcoURowYAVxhsruXBnV9vPjii/j5+WFpacm4cePudHNuO+4aw8LExAQnJyeSk5PZvXs3o0ePxs3NTVAs7ArIZDLCw8N1CpO8vb3p06cPBw8eJD09HaVSib6+PpcuXSI5OZng4GBCQkJ0JpuRI0diY2PDuXPnKCsr06mb0NfXx9/fn0GDBukstjo70CoUCv7++2+MjY2ZPHmyTsd3cnJiyJAhbN++nejoaCorK7G2thbys2UyGSNHjmzhAb0ZQ83c3Jzx48ejVqu5ePEisbGxuLi4MHnyZHr37o1EIqG0tJTq6mpycnIEzQ4HBwdmzJihs8gSi8U66SNXw87OjuDgYLZt20ZcXBxisZiCggLGjBmDg4ODwGhTU1NDTk6OkKcul8uZMWPGHdX90Iot2djYCNGcwYMHt8nMJBaLSUpKYtOmTVRXV2NsbEzPnj3x8vJi/Pjx/P777xw/fpyamhq8vLwIDw9HpVIxfPhw1q5di5ubGyqVih49ejBu3Djh2l1cXNDT02P79u1cunSJESNGXLeITVtEP3v2bH788Ufs7e1v6AULCgoiICCAs2fPIhaLkclkbb5PYWFh3Y7et0ePHnh7e7N9+3bi4+MFRpfrRZeuhb6+Pi+88AJff/01y5cvx9jYmPLyctzc3JgxY0a7j6NlIjl06BB5eXno6+tjbm7O4MGDhajV/wJKS0vZtGkTqampjBkzhujoaKqqqqisrMTY2JiZM2cyZ84cHe2Lw4cPs379eioqKhCJRKjVaioqKvD29ub111+nf//+wrZVVVX88ccfxMbGolar2bNnD7m5udTX11NbW8vcuXPx9fUV3tWcnBw2bdrEwYMHUSgU6OnpoVAosLa2Zt68ecyePRuJREJTUxN79uzhxx9/pLi4mGPHjgnq5w0NDQQEBLB48WIhtbCkpIQzZ84QGxtLZmYmVVVVREVF6eg7TZ8+XWCaUavVnDhxgq+++oqCggKMjIxQKpU0NTVhb2/P4sWLu4VhMWTIEIYMGXKnm/GPhJ6eHm5ubhQUFDBs2DDMzc2Ry+UkJyfz1FNPkZeXR2RkJMeOHSMzM5M//viDAQMG0LNnz+uunywtLVmwYAE7duwgMTGR5uZmDAwMWLBgwf/MuNMRDBo06H86VeyuMSycnJyYNWsWK1asYMWKFRw7dozw8HAGDhxIUFBQl/AtGxsbtxiA9fX1sbW1xdDQUKCN09fXJysri6qqKrKzs/nqq69adE4tvVxhYaGOYaFl6elqlhylUklycjJGRkYtFn0ikQhra2scHBwoKiqipKREZ4Hk4uKClZVVp7zKWq/hY489RnZ2NmfPnuX333+nqakJuVyOs7Mzpqam+Pr68sILL+Dp6amz/9X3TyQStRkp0dfXJyAggP3793PmzBkMDQ2RSqX07NkTfX19NBqNznmuZWToLOd/Z6Cnp4eTkxMLFy5s9z5eXl6YmZmhVqt5/PHH8fb2xtDQkKeeeor9+/dTWlqKra0ts2bNwtraGrVazaOPPsqxY8coLy9HIpHo6CEA+Pj4MHHiRC5duiTUBQEEBARgYmLSKjWeWCwmPDycN954g5UrV97wXSktLeXSpUtkZmby559/Culcrd37TZs2dTshNF9fX5544gnOnDlDQ0MDvXr1YuzYsahUKpycnNBoNMydOxd3d3cMDAxYvHgxPXr0QE9Pj4ULFxISEoJEImHYsGEYGhpy7tw56uvr6dmzJ/379xf6qK+vLw8++KCOYefp6cncuXPx9/enubmZY8eOCdSTFRUVaDQaYmNjOX78OCtXrryj7/SdQHJyMnK5nPvvvx9nZ2eKi4v55Zdf+P7773F2dmby5MmCo8LY2JiBAwfi5OQkpJrGxsby4YcfYmZmpmNYaJGWlsbWrVvx9vZm8uTJGBoaUlRUhJeXl0Dz3djYyK+//sqvv/5KREQEgwcPxtTUlIKCAlauXMl//vMfgoKCCA4OFo5bWlrKL7/8wn333Ud4eDhwJbr6xx9/CKKcFhYWuLi4MG3aNMaOHcu7775LSkoKixcvFlI/4UrBvxYqlYpvv/2W06dP8+GHH+Lm5oZarRZY3hwcHDp9zzUaDRUVFaxatYrp06dz5swZ8vPzCQkJITQ0lBMnTpCSkoK/vz9DhgwRHFuFhYUcOHCAlJQU4VgzZ85s1SA+e/Ys+/bt4+mnnyYmJoYLFy5QV1eHlZUVQUFB9O3bV8cBodFoyM/PJzIykvT0dADhGf0v9Qf4P4HUhQsX0rNnTywsLJg+fTr5+fnY2toKhCqBgYF4e3tjYmKikyVhY2PDjBkzWjj0RCIRjz76KAcOHCA3N5fm5masrKzuGRX3cF3cNYaFmZkZ48aNw9LSkoMHD3Ly5EmioqLYvXs3EydObLVTtAWNRtOqCnBb6VRaTQQtBzUgqNNqFWyv3U9L53ath1yrptnVuDolrDWNCy3fslbsCv4vP9zExKTTnvzKykqysrKQSqVYW1vTt29fTpw4QWlpKfX19YhEIoYOHcr3339PZGQkMpkMIyMjSktLaWpqolevXu1Ou9IK2kVGRmJgYICXl5dARysSiRg2bBg//PCDcB5DQ0PhPMHBwXesePtmoVar8fX1ZdasWS1+s7Oz48EHH2zxvVgsxt3dvUUdzdUwNjZm+PDhDB8+XOd7f39//P39W2yv0WhQq9VcuHABb29vBg4ceMO2m5ubM2LECCF8fj10t2gFXLlH/fv3b3XhqcXs2bOF/2upYwEefvhh4f96enrX9V75+voKKXxaaNMf4Yr3euPGjQwYMICZM2cik8lobm4mMjKS+fPnU1FR0W1ErOrr6wWaxdzcXCorK6mvr0ej0WBoaIipqSmOjo54eHh0StjP1NSUiIgIFixYgL6+vqBf8+GHH3LixAkGDhwoRJ1HjBhBRESEkJYEV7yJGzdu5NSpUwKr2tVQKBTY2dnx7LPPCg6Yq0UA4YrxsWfPHsEA9fT0FH6rq6vj5ZdfZvfu3Toq8BKJBH9/f1544QVh4S2Xy4mJiSE1NZX8/HwdHnylUomlpSWGhoZCelVr0Gg0ZGdnY2RkREREhEBdrZ3nuoo5rLy8nA8//JCSkhKysrJISUnhr7/+YsKECZw4cYKCggKkUilqtZopU6YA0NzcTFVVFTk5OVy8eJHExEQCAwPx8/NrsTi9cOECS5cuRSwWc/jwYWHcKS8vx8bGhieeeEIn0nf58mXWrVvHrl27hKjokSNHsLOzo6ioiICAAJ3jp6WlsXHjRurq6rrkfgwZMoRhw4Zdt9bsdsLExIRFixYJf189vjs7OzNnzpw297W2tmbatGmt/iaTyYS043u4h/bg7lhh/X9YWFgwevRoQkNDmThxIufOnWPnzp189913GBgY8NBDD7Xo5NcOqtrBVsvIcjVUKlWr32uFoAwMDAQDwtjYGH19fcLCwpg3b16rKRJaD/XV0Co1djVEIhHm5uaUlZVRW1vb4vempiYaGhqE6Mu1+3YWtbW1HD16VIdFp6mpiXHjxglRoNGjR1NYWMipU6eIjIwUilYHDx5MYGBguxf8WraPv/76C5FIxPTp03We+5gxYygsLOTkyZOcOnVKOM+QIUMICgq6awyL7oKLFy/y22+/cfnyZZ566ql2qb4PGDCgBeNUW+huVLPdCVpRRe24JBKJqKio4OLFi1hZWbW7TuNWoq6uTmAfi46OJjc3l+LiYmpra2loaECj0SCVSjE2Nsba2honJycCAgKIiIhgxIgRmJub39QY5ODgQEBAgDAWa4kMXF1dSU1NpaSkRDAsJBIJMTExXLx4kfz8fKFNWkeDlr3uatja2tKvXz+dMf3a9l26dIm8vDyqqqr46KOPdN7h3NxclEolcXFxOvuYmJgwcOBAnTRVCwsLnJ2dycjIEIpjbxZisZjJkyfz2Wef8eabbzJ8+HD69++Pn59fl491TU1NJCQk8MILL5CYmMh7770HXDGm6+rqWLVqFSdOnOC+++5DLBZjZ2fHnDlzmDBhAitXriQnJ+e6x1er1QKr3cCBA5FKpURHR/PVV1+xceNGhgwZgr29PY2NjRw+fJiff/6ZsLAw5s6di0wmIyMjg59//pnCwsIWx9ZmF2jTYzsLpVJJWFjYDQ0LtVpNbm4uZ86cISMjg7KyMhobGwUno729PT169CAgIKBNWvtrUVVVxZkzZ4iPj6eoqAiFQoGJiQlyuZzg4GDCwsLaFNHNzc1l165dXLp0CUtLS2bMmKETWbve9X700UdCfeADDzwgMDO2dc3nz58nNTWV0tJSmpubMTU1pUePHvTt2xdPT88bjl+1tbXs3r2b48eP4+XlxeOPP46xsbGgrXHu3DlycnJQKBQC4563tzfh4eHY2Ni0Oa5oxXejoqK4dOkS+fn5wjHs7e3p1asXvXv3bpewXWpqKlu2bGn1nZNIJMyfP79DjG6FhYVCTV5JSQkKhaJVh7gWRkZGPPXUU/To0QO44ug5efIkO3bswMPDgxkzZuDi4kJ+fj5nzpwRal2bm5sxNzfH3d2dAQMG4O7u3mlH8123wtLT08PW1pZhw4YRFhaGs7Mzn376KZGRkYwePVro5Noi1JqamhaF0VlZWQIV69Woq6trMfA1NjZSVFREU1MTNjY2wgTi4eGBTCZDoVAQGBjYIrXndkObDrRnzx4SExN1BOW0dQcFBQWEh4ffEuErS0tLhg4dilwup6GhAX19fUEHQ7sQtbOzY/78+YSFhZGXl4darcbMzExHK8Pa2povv/zyhjn//fr1480330Sj0RAaGqozgNjb2/Pwww8LA4ZarRbYGe4Wo0KbXnO9yMPtgqWlJb169RI8dO2BNsp3D52DpaUls2bN4siRI7z99tuCo6SpqYlXX31VELG6UygrK2PLli1s2rRJKBxuDSqVivr6eoG84eTJkxw9epTx48fz7LPP4ujo2G6Hizb6cTUsLS0xMzMjPz9fGNsbGhr46aef2LZtG2KxGGdnZ8zMzDAwMEAikdDY2NiqN9/Y2PiGY2RpaSl1dXUYGxtTVlamM65IJBLuu+8+QkJCdPaRSqUthMW0UXKtqm9HIJFIeOihhxCLxezevZtly5bh7u5O3759uf/++wkLC+uyd0QsFuPr68vYsWNxdHRk+fLlAitiSkoKu3btElKGTU1NkUgkWFtbY21tjY2NzQ3HX5FIhKenJ88884xggLm5uXH69GkSEhLIzMzE3t6ewsJCIiMjhdovrVp0eJY+42UAAQAASURBVHg4JSUlxMbGdsn1dgYajYampiZ++eUXtm7dKmhl1dTUCFE2Q0NDZDIZdnZ2uLm58cADDzBlypQ2F3YajYajR4/yyy+/cOHCBbKzs6mqqqKpqQlDQ0MsLCzo0aMHgwYNYu7cua0aDPr6+sTGxrJq1SqMjIywt7cXMiyudy0ZGRksX76cqqoqvL2920zpraio4MCBA/zxxx9cunSJwsJCampqBN0x7eJ/4sSJPPDAA1hbW7f5fioUCo4ePcp3333HgAEDmDFjBhUVFWzZsoU///yT9PR0ysrKBJ0hmUyGt7c3S5cuxcbGps3rSUxMZPXq1Zw+fVqo+dQew8LCAjc3NwYMGMCcOXMIDw+/7tiUn5/Pzz//TEJCQovfpFIpAwcOvCnDQqVScerUKTZt2sTZs2fJzc2lurqapqam60YfLS0tmTlzpmBYNDU1ER0dzTfffENoaCh+fn5kZWWxbt06IZVRq01iZGSEnZ0d/v7+zJ8/n3HjxnUqEn5HVlnXhpXbg9raWqqqqpDL5cJDNjU1xcbGBgMDA6HAUQsnJyeMjIyIjo6mpKREEIerr69nzZo1rVp+VVVVnD17lszMTOHhJCYmEhUVhaurK15eXsLAGBQURFBQEEeOHOHo0aPY29vrTHYKhYLS0tI2BcS6GsbGxkycOJGtW7eydetWBg8eLHjcsrOzOXz4MAYGBvTu3VtY6N8oRL53716Cg4NxcHC44aRvYmJC79696d2793W3s7W1bZGCczVMTU1bTfG5Fvb29kyYMOG652lPGk53hb6+frdp/41Sq+7h1kFfX58pU6bg6+srODgMDAywt7cX6oruFEpLS1mzZg2rV68mKyvrpvZtbGwkLi6O3NxcioqK+OSTT7Czs2vXnNDc3Nwqix5cWahrj3H69Gl++OEHTExMeO655wgICMDU1BSxWMzx48eFvPzWjnGj+6o9z6hRo5gxY0ar6a2mpqYt6IhvRYRJJBLh5OTE4sWLGTJkCHFxcYI3/9KlS7zwwgs62gSdgVgsxsnJCZFIhFQqxdbWFltbWyHt18TEBKVS2WF6XD09PZ0aDbjiiXVzcyM6Olog/SguLiYzMxN3d3e8vb2F+cnAwICePXvq1KDcKWg0GrZs2cKHH35IWlqaQA2urZNTKBQUFBRQWFhIXl4eubm5jBgx4rpz7fbt2/nqq684ffo0CoUCc3NzevbsiYmJCZWVlaSmpnLy5EkuXbpEeno6L774Yos0TBsbG3r37o1cLicvL4+zZ88ybty4G6pQ7969m6qqKgwMDOjfv3+rc4LW0fDtt9+SkpKCRqNBLpcLTGD5+fnk5uaSkZFBYmIiRUVFvPjii+0ixWhsbOTSpUtERUXx/fffU1BQgIWFBU5OTiiVSkpLSykqKhLez7bGkosXL/LWW29x5MgR6uvrMTMzIyAgADMzM6qrq8nIyCAqKorExESysrJ4/vnnr7tm8fb25rXXXiM7O5uamhqqq6vZu3cv2dnZN7ym1nD69GmWLVvGoUOHaGpqIjQ0lODgYMzMzCgvL+fYsWNkZWWhVqsRiUQsWrQIHx8fXFxc2nRwV1RUsHPnTnJycjhy5AhSqRQ3NzdkMhk1NTWCPlJGRgaXL19GJpMxbNiwDo9XXWJYaDQaUlNTSUlJoV+/fq12ai1r0d9//01xcTF2dnaMGzeO0aNHtxmyuxoJCQl89NFHODo60qNHD0xMTKioqODEiRPk5eUxdepUnQJQJycn+vXrxy+//MKbb77JsGHDEIvFxMbGcvHixVZZMgwMDMjJyeGVV15h4MCBNDc3c/LkSS5evMjcuXN1UjssLCx47LHHyMzM5IsvvuDs2bP4+fmhp6dHWVkZCQkJ9OnTh1dffbWDd/UKH7dWQO/8+fMoFApSUlI4cOAANjY2GBsbExoaKkyE/fr1Y968eWzZsoUXXniBPn36CDoW586dY+zYsYwePbrdhVfnz59n7dq1BAQEMG7cOPr06dOpoq3i4mKioqKIjo4W1NNFIhEymQw3NzfCwsIYOnTobaHTVKvVJCQkEBkZSUpKCkVFRTQ0NKCnp4dMJkMul+Pl5UWvXr3w9vZu1zvanVFfX09SUhJRUVFCukhDQwNSqRQzMzOcnZ3x9/dnwIAB2Nvbd3lxnkKhIDMzk5iYGFJSUigrKxPUvcViMQYGBlhZWSGXy3Fzc8Pf379L7ruWhvP8+fMkJycL/Unr3dIWzfbu3RtPT89uWZRoaWnZrrqW2wmFQsGBAwf4+uuvyc/P7/BxKioq+O2333Bzc+P1119vV1pcbW2tjjYIXDFyKisrsbW1FcaP6Oho8vLyeOGFFxg1apQQzW5qampTlLK9kMvlmJubU1dXh6OjY4tIRFu4GWeadluNRnNDJ5A2FbZ///707t2boUOHsnv3blasWMHOnTu7zLAQiUQ6qbQSiUTwrl+9mOtMXUdrBcT6+vo0NzcLUR2FQkF1dTX29vYtPKsymaxbpAjW19ezbNky0tLSsLCw4LnnnmPo0KGYm5sLIpo1NTXk5eVx/vx5VCoV4eHhbUZ1zpw5w5dffsnJkydRq9XMmzeP6dOnI5fLkUqlNDQ0kJ2dzS+//MKOHTvYs2cPenp6QoRAC7FYTO/evQkMDCQvL49Tp06Rnp6uUyd0LdRqNVu2bAGuOBGnTZvWop0NDQ0cPnyYL7/8kpSUFNzd3ZkzZw7Dhw8XyGFqamqIjIxkzZo1ZGZmsnr1ajw8PJgzZ84Nx/rS0lI2btzIyZMncXR05PnnnycwMBATExOhlichIQFLS8s2HWGlpaW899577Nu3D4CpU6cyb948HB0dMTAwoLGxkYyMDLZs2cLu3bvZt2+fwLB1bS2cFlpmy8bGRqGGNSsri9zc3OteT2soKSlhx44dHDp0iMbGRhYsWMCCBQtwdXUVnnF6ejrvvvsuZ8+eRaVS4eHhwWOPPYaZmVmb81dBQQFbt24FrqSkz549WyAeaWpqIikpiVWrVnHu3DkuXbrEunXrCAwM7LBwbZcYFlpr6Pvvv2fixIk888wzgscfruTmrVu3jlWrVpGcnExDQwOGhoYcOnSIF154gQULFtzwpTI2NsbAwIAjR44IHcbIyAhnZ2defPFFpkyZojPAGBgY8Nxzz6Gvr89ff/1FbGwsxsbG+Pj48M477/D999+38FjZ2NgwYcIEysvL2bhxI5WVlZibmzN//nzmz5/fIjzet29fPvnkE37++WdOnz7N/v37EYlEGBsb4+bm1uaL2F789NNP7Ny5E6VSSWVlJZWVlRw8eJCYmBghnH/ixAmMjIwQiUTY2Njw7LPPYm9vz86dO4mKigKuePe1SuDtnQAB5syZw4ABA4iLi2PNmjV8++23jBs3joiIiBb34uLFi3z11VdCKtmwYcN4+OGHcXJyoqamhj///JNff/2VpKQkSktLqa2tpampSfB8mZqaYmtri5+fH4888ggTJ07scC3K8uXLOXjwoOA1W7p0qcDSo9FouHz5MitWrODEiRMUFRVRVVWlo+SuzQc3NzfH2tqa+++/n0WLFrW7k2m9De1JbfD392fRokU6RZ43C4VCwZIlS7hw4QJwZdHzwgsv0Lt3b5qamrh48SLr1q3j9OnTFBcXU1VVRUNDAyqVSlCO1rJBubi4MHHiRB566KHr5qi2FxUVFRw6dIjt27cLOZ3a82s9myKRSDAujI2NMTMzw8LCArlczpAhQ5g9e3a7iRm0UKvVnDp1is2bN3PhwgWKioqEYmJtGoJUKsXQ0FAwaAYMGMADDzzQQt/gHnShFeNcsWJFp4wKLerr61m1ahUTJ06kT58+N+z3OTk5nDlzhpEjR2JsbIxKpeLcuXOkpqYyf/58wWmkLdi+unAbYOvWrRQUFHQq1N+nTx88PDw4cOAAkyZNws7OTid9pbKyslXyjpuBWCzGzMyMmpoa6urqaG5ubnFvtEZHaWmpEPExNDTEx8eHoqIi4beuxNX38nqe4Y4euz1GgbZWUUurezW6qli9s7h8+TLJycmIxWJ69erFM88808Lpqk2XioiIQKlUtpm+09jYyI8//sjZs2dRKpU8/PDDvPLKK/j6+grRM41GQ1hYGJ6enujp6bF161YOHTrE5s2beeedd3TeHT8/P0JCQjh69CiXL1/m4sWL9O/fv816kYsXL5KQkIBIJMLFxaVVD356ejqbN28mNTUVR0dHHn30URYtWqSjZQVXdL4kEgnLly+noKCAb775hlGjRuHi4nLdd6mwsJB9+/YRFhbGW2+9Rc+ePXXqs9RqNUOHDkWj0bTZt9etW8fhw4dRq9WMHj2ajz/+GA8PDx0jKSQkBLlcLuiX7d+/n/DwcLy8vFpduGsJc65ew3ZUKyslJYXz589TV1dHaGgos2bNYsCAATrtc3NzIy8vj+TkZMrLyzl8+DD/+te/rusU0873kyZN4t133yUgIECnn/Xq1Qt9fX2WLFlCamoq+/bt49VXX9XRNbsZdIlhUVRUxKlTp0hNTaWysrKFeEpkZCQ///wzcXFxSCQS3NzcKCkpISUlhU8++YSBAwfSs2fP604onp6e/Oc//6GyslIoCNR6HR0cHDA3N2+xv4+PD6+++irz589HoVAgFouxsrLCzc2NgICAFkXOEomEoKAgBg8eTHFxMU1NTRgbG+Po6IiNjU2L4xsYGNC3b1/c3d0pKioSxLOkUqkgZKaFkZERs2bNYuDAgQJrx43w4IMP3lDc5lr9B3d3dx5//HEmTJggXJ+ZmRlyubwFpayHhwfLly8H0DEEtdCqMPfq1YvExETWr1/P0qVL+emnn5gwYQILFiwQipvKy8s5efIkycnJwJVOHhERgVgsZtWqVWzatInLly+3Ogk0NDQIBZVpaWkkJSURGxvLv/71rw55nuLj4zlw4IBwrocfflgo2j5z5gyvvvoqFy9epLq6usW+V7envLycy5cv079//5uKoly6dIn9+/e3y7Corq5m6tSp7b+4VqBWqzl37hwHDx4EwNHRkWHDhuHr68tff/3FZ599Rnx8PDU1NS32ValUAmlBaWkp6enpxMfHEx0dzQcffICbm1uHDDztwn716tWcOnVKJ/f9WmgJFZRKJbW1tRQXFwNX3ueSkhId9qX2oLKykjVr1rBlyxaSkpJaZYFRq9UoFAoUCgUVFRVkZGRw6dIlIiMjWbBgAQ899FC38Hp2RzQ0NHD8+PEWKuSdQVFRERs3bqR37943fN/UajX79u2juLiYoKAgCgoK2LVrF05OTgwbNkwYk/r374+NjQ1r165FJBLh4ODApUuX2LVrF56ensJ71hHI5XIWLlzI+++/z1tvvcXx48fx8PCgvr5eoNv+6aefWh1X2wuRSERISAj79+9n+fLlXLp0CVNTU6qrq3n44YeF66yvr2fKlCmEhITg7e2NTCajpKSEQ4cOYWBgwIABAzrchu4KMzMzbGxsqKiooKysTIdWvKSkpMuYnzqDxsZGgZVLqVS2umjXGlI3ots+d+4cUVFR1NXVIZfLeeKJJ1oIDWqdYsHBwTz22GMcPnyYiooKjhw5wvTp03Xoik1MTAgLC8PDw4PExEROnjzJxIkT2zQs/vjjDxQKBVKplPHjx7fYrqmpidjYWA4dOkRzczP9+vVj1qxZAsXz1bCysmLu3Lls376dwsJC4uLiOHv2LA4ODtc1xLV1ro8//jj9+/dvETERi8XXLbaurKxk06ZN1NXVIRaLee2113RqUbUwNDSkb9++3HfffRw9epSioiLOnDnD/fff3+61W0dRWFgoOGt8fHxwdXVtcZ1apkFtdDcmJqZdxrSHhwfTp08XDLurYWxszPjx41m/fj2pqamUlZWRk5ODv79/h5wjXWJYlJWVkZKSgpWVFX5+fjovXWNjI7t27SI6OhoLCwveeOMNRo4cSWZmJi+//DKXL19m27ZtNyweMjIyuukCaS0rU2ue5tZoNQHB8HFzcyM1NVXg7H/yySdbaCJot3d0dLzhwCCRSHB2dr6piEFrVJQ3gp6eHlZWVlhZWbX6++XLl1m5ciUKhYInn3yyTVYHLdLT0/n99985efIkffv25YEHHqCxsZF9+/axYsUK3n///Vb3y8/PJz4+nn379rFy5UrBe3YjKJVKkpKS+Pbbb1Eqlbz99tudLrjOy8sTWFqeeuopYmJi2szRvhY2NjZ4e3u3iwmpu6C2tpaYmBicnJx45513SE5Obvf1Njc3U1RUxNatWxGLxXzxxRdYWFjclNeioaGBXbt28cUXXxAdHd0q01p7oFWevxlxr5KSEj799FM2bdpEUVHRdVk0roZGo6GyspLTp09TWFhIeXk5Tz/99C1JyysrK2P37t0cOHCAy5cvo9FosLOzIzQ0lClTpujQZJaXl3P8+HEOHTpEWlqaEEUNCwvj0UcfxdXVVWch3tjYyNmzZ/n1119JSUmhvr4eS0tLfHx8GDduHAMGDGgRHa6qqmL37t3s3r2b7OxsTExM6N+/P4888oggpng1ampq2L59e4fz6NuCNh+9Lb0TLXx9fZk8eTJnz57lq6++QqlUEhQUxGOPPcbAgQOFxVZQUBBvv/02K1eu5NtvvxXG9ldffZWsrCxWrFjR4baKxWJGjx6Nubk5mzdvZu/evVRWVgp028HBwV0yZkydOpWqqiq2bdvGf//7X4EUY9asWcIiSiKR0KNHD06ePMnu3buBK+lAPXr04L333mPixImdbkd3g7OzMwEBAWzatIkzZ84QHBwspIpERkZ2SSSts/Dw8MDCwoLS0lKSkpL44IMPePrppzskVnjmzBkhfW/o0KGCZk5rkEgk+Pj40L9/fyHX/8KFCzqGhUgkIjw8nICAABITE4mMjCQzM5OAgIAWx62vr2f79u2o1WpMTU2ZPXt2i/5ZUVFBTEwMVVVVmJubExwcfN26PAcHB3x9fblw4QIKhYJTp04xduzY6y5ixWIxfn5+jBo1qkNrAi1jXXNzM97e3telEjc2NhbmnuzsbDIzM8nMzLzlhoWWgRSuGH9tUbFbWFgI41x7jWgvL68W0Y+rYWlpib29vSBLUFpa2u51w7XoEsOitraW/Px85HI5Hh4eOi9mXFwc586do6amhieeeIJp06YJOdR79+5l06ZNHD58mJdeeumO005eu/Ctr68nPT0dkUjU4cVRd4M2h7Curk6IsLSF559/noSEBMaMGcPSpUuRy+VYWlrS3NyMiYkJ//3vf9vcNzc3l2+//ZaKigphQOzduzejR4+mV69e2NvbCykVx44dY9u2bZSVlQFXnkNBQQEbNmwgICCgVR2Hm0F+fj4ZGRm8+OKLglGhp6eHn58f/fr1w9PTU1gEFBUVkZiYyPnz58nOzqZHjx74+/vflNd+3rx5+Pr6UlpaSkVFBRUVFZSXlwtegNYiJV2J+vp6du/eTXR0NElJSQLrQ69evRgzZgyBgYHY2Nig0WjIzc3l5MmT7NmzR2cyrq+v5/fff2fkyJHMmTOn3V4LlUrF7t27+eCDD0hMTGwRtTE1NaVnz56EhoYil8uxsLAQuOrT0tKIiYkhISGB5uZmLCwsmDx5crvPrVAo+Prrr1m/fj0lJSVCf9bX12fkyJEMGzYMf39/LC0thTz7s2fPsmfPHtLS0oT2Z2Rk8MMPP2BlZcXChQu7jB5aqzfw3nvvceDAAczNzYVUhvT0dGpraxk4cKCOYXHo0CE+++wzampqcHV1xdHRkeTkZM6ePcvx48fZtm0blpaWiEQiGhsb2b17N6+++ipisVhgZMvNzSU6OhqVSkW/fv102qQ1xH777Tesra2FaPLq1as5fPgwP/zwQ4sxXaFQCGmWXYmSkhISExPp27fvdbczMjJi2LBhzJs3T5hUTU1Nsba21pmIDQ0NmTRpEv379xe207KfNDQ0MH36dB2Pr62tLW+99Rb19fXtEpUzMTERqLKrq6tRKpVCvZuZmZmw8DcyMuLZZ5/loYceauHkcnR05L333qOxsbFVJiqtcvasWbOEBYdUKtXZViqVsmzZMurq6gTmGH19fYyNjbG0tGxhHBcWFvLVV1+xY8cOHB0dBYrarkZzczP5+fnk5ORQW1tLYmIijY2NnD9/HplMhkwmw9nZGblcftMLRUtLS0aMGMGRI0dYsWIFCQkJuLi4cOnSJS5fvnxLKN1vFmZmZrzwwgu8/fbbVFZW8vXXX/PXX38xbtw4pk6delOaSklJSQLjWnBwsJD+3BpEIhFmZmYEBQWxd+9eysrKhEyCq+Hi4kLv3r05dOgQZWVlREVF0a9fvxbv4eHDh8nLy0NPT4+wsLAW+iBwxbDQnsPa2hoXF5frXpuenh729vYYGBgI9Xc3ivCbmpri7e3dYR2wCxcuCH0oMDDwuvpJ2ntoZWVFdna2EBm71TA1NRXSuMrLy1uVDoAraxrt/XJwcLih409ba3M9MiGRSISRkZEwJmojbh1BlxgWTU1N1NbWCsWQVyMyMpKkpCSsrKwYO3as4AEzNDSkT58+bN26laSkpA5bRvdw6zB8+HCeffZZbG1tMTMzEwZrjUaDv78/8+bNa3Pfuro6YmNjaW5uxtLSkmeeeYa5c+fi4OAg1IdoBZAmTpzI448/zrPPPissWLSLsJUrVzJs2LBWQ6rtRVZWFm+99Rbnz59HrVbTq1cv3njjDYYMGSIod2uvTa1W09jYSHV1NRcvXqSurk7H09MeDBkyhH79+qFWq1Gr1QKLTWFhIZ9//jkbN27s8LW0ByqViszMTLKzs2lubsbT05PnnnuOKVOmYGFhgYGBgTB4KJVK7r//fubNm8c777xDZGSkMGBpeemvR394Lc6dO8d3331HQkKCTp+2sLBg2rRpPPLII3h4eGBkZIREItG570qlUmBK2bdvH5mZmYwdO7bd171jxw5+++03HaMiKCiIJUuW0L9/f4FqVHtOlUrFxIkTeeKJJ1i1ahXffPON8LzS09PZsGED3t7e7abYvREqKytZt24de/bsYfz48bz55puCUaBQKFrNsR4wYADLly/HxsYGCwsLgdnuqaee4vDhwxw8eJDp06cjEomoqakR3q1Vq1YREBCASCRCqVRSVlYmLDavxi+//MIvv/zC5MmTefzxx3FwcBC0BFasWMGyZctYtmyZMJlr+elb42zvLDQaDefOnbuhYaHRaDAwMGgX456xsXGrXkZjY+MWUV19ff2b9iZLpVLs7e2vOz6JRKI2t5FKpdeNdmsVla9NL776d5FIdFPtViqVQkS5tra21RTJrkBjY6PAGtbc3Cw4s1atWsW6devQ09Nj/vz5vPbaa21G2NuCWCxm2LBhvP/++6xcuZIdO3YglUoZMGAAb775Jl988cUtuaabgTbTQSKR8Mknn1BRUUF0dDTJycmsX7+ewMBAgSr3RvNbWVmZkErq4OBwQ4NE+17CFUdAa4tiiURCv3798PLy4uzZsxw5coQZM2a0MCx+++03GhoaEIvFzJ49u9W5QJtKC1dqoF577TX+/e9/X7eNFRUVgpOtvLz8hotYQ0PD61LT3gha9XGAv//++4YsWA0NDcJ9q6+vv6Ejtivg7e2Nj48PcXFxAnGQr69vC5a6devWCYbmqFGjbnhPtOn5N2K76yoChi5jhdIKDV3d8NLSUqKjoyksLGTixIl4e3vreIjs7OyQSCRUVFR0m4Kre/g/TJgwQYfxQ7tg9fb2xsbGhkmTJrW5r0ajQaVSYWRkxAsvvMCTTz7ZosYDrkzmWi7v9evXM27cODIzM4ErC79Lly6xfv16XnnllQ5fx969e4Uc/vHjx/Pdd98JTBptwcbGBhcXF5qbm286x9DAwKDN/PzbwXgFV7yFzc3NeHl58c477zBz5kwMDQ1bDEASiQQjIyMGDRokhOqv5uM+c+YM6enpBAcH39ALWFBQwO+//86xY8d0jApXV1fefvttpk2bhkwmQywWX1e4SC6XExgYiEqlaneBbWJiIj///LNAcQhXjIpvv/2Wfv36tSjg1V679t17+eWXEYlEQnqMtm5l9+7d9OvXr0vUwYuLi9mwYQOurq688cYbOjSZ2iLca9sol8sFquyrt505cybHjx8nISFBUMxtbm6mpqZGWCBrFwgajQYHBwc0Go3OM8zKyuLo0aPY2NgIOdja35966il+/vlntmzZwnvvvScUI6pUKsFgvRXIyMi4Jce9h87D3d2d9PR0wcj08vJiz549wiLXy8uLVatWAQhFtS+//DJPPvlkm8c0MjIS+vhDDz3ElClTWuTvW1pa8q9//YtnnnlGZzwwNDQkIiKCAQMG0NjYKNQYaFP59PT0Ouzd7gqIRCLBqTZhwgR++OEHfvnlF4qKiqitraWgoICTJ0/i7e3NY489xuzZs1utEWhubqahoUHoc8bGxjcci8ViseBEUCqVbS6Kw8PD8ff35/z58wIBQkBAgDDnFRcXc+TIEUEFvi11bqVSKUQFVSoVJSUllJSUtO9G/f/9bwQt4UZHUV1dLdzDuro6YZ3RHmidhLca3t7ejBw5kpMnT1JUVMTbb79NQkICo0aNwsbGhqKiIn755Re2b99OXV0dtra2PPfcczdkM9TX18fAwOC2kZJ0iWGhZZVpbGwUXi6NRsP58+cF9dFhw4bh5ubW6oXdqkmqvbC0tOTdd9/l9ddfb3UBIRKJiIqK4tNPP+XkyZMCXduzzz5LeHi4zsve3NxMVFQUX3zxBVFRUahUKgICApg/fz5z5szRyR8uKytj//79bN++nbi4OKHwfcSIETz++OM6Ez1c4bB+44032Lx5MyKRiI8//pjTp08LInHLly8XigU1Gg2ZmZl8++237N69m4aGBvr27cvo0aOvey+uNvCuvi6NRkNNTQ1Llixh48aN7eZkj4iIYNKkSTf0NIjFYjw9Pfn3v/+tEwkpKytj3759PPnkkx2eJLThz+DgYFavXt0udiftJHU3QyaTMXny5HalMmkV0IcMGcLly5d1JokzZ87ckLVKo9EQFxfH7t27dSYJGxsb3njjDebNm9eqYXMttAxRN0Mzq9FoOHDgAGfOnBEGf0NDQ9566y3Cw8NbNSquhp6eHs7OzsybN48DBw4QHx8PXPFSRUZGEhUV1emohUqlIi8vj/z8fAYOHIiPj49O326LXUd7P7RRL23/lMvliMVinQWDsbExo0eP5t1332XBggU8/fTTTJgwQYiKXLsYSU1NJTs7Gx8fH+zt7QVjFBAoiFNSUsjIyMDe3l5gnqmsrOzUvbgebuWx76HjEIlESCQSHc+6Vvzu6r+vjayYm5u3u9bkWmYdLfT09DAzM2vhZNCO0a2Nbe1RTL4d0LJEBgYG8vHHH/Ovf/2LvXv38vPPPxMZGUltbS0XL17k1Vdf5fz587z55pu4u7u3YN7SRlqbm5vbFHa8Gtrt4P8cKK3B3Nycfv36cfjwYUHjYODAgcIc+eeffwraIZMmTWozsiQWi4XnYG1tTd++fW9Kw8vLy+uWk2VcPf+EhITcMDJ6NaytrTvN8tkeiMVi5s6dS3l5OV999RXZ2dl8/vnnrFixQnj+SqUStVqNh4cHq1at0qESvh5uJ9NhlxgW5ubmuLi4UFBQQHJyMsOGDaOhoYFDhw5x6dIlAgIC6N27d4uFYXl5OWq1+o5rBGhTs9rqfFFRUcTHx+Pi4sK0adMoKCjg8OHDxMXF8eOPP9K3b19h0v3jjz94+umncXFxYfbs2YjFYk6cOMFLL71ETEwMH3/8seDhSUlJ4YcffqC6uprhw4djaWlJQkICv/32G9nZ2XzwwQc66q1KpVIQX1m3bh29evViwYIFFBUVkZycLKShaTQa0tLSePPNNzly5AiDBg3C39+f+Ph4vvjiC8rKyujTp0+r19oae5D2hayqqropbmZ9fX2GDh1KYGBgu15qPT09Jk2aRK9evQTl1ObmZi5fvsyxY8euK4h3I4jFYj7//HMhd/p/gU7Ux8eHBQsWtFtETSKRMGzYMPbs2aNTEBYXFydEJNuClhUsKSlJ+E4kEglKsu0xKjqKnJwcIiMjddJzxo8fT1hYWLu9NHp6eri6ujJp0iTBsIAri++YmBiGDh3aqfarVCqKioqEaEJ7csC1DGXHjx9n586dxMTEUFxcLKSv1NbW6iwwTExMePTRR2lqauK7775j8eLF2NnZMXv2bB566CF8fHx03oWKigpqamrYunUru3btanF9Wlre6upq4TzNzc23tEaoLeVu+L9x2tjYuFvqjdzDPbQGrdPAwMAAJycnFi5cyLx587h06RLfffcd27ZtExiL5HI5b7zxhk69qUgkwsrKSqhHKCoqumE9QlNTk8B6Zmho2KahJRKJGDJkCH/88Qc5OTns27ePhx9+GEdHRzQaDVu3bqW+vh49PT0eeuihNsdAAwMDwai0s7NjwYIFTJ8+/abu0a2ui7G1tRXGjfDwcL7++ut2j+ldTat8vfPIZDKeffZZqqurhTRCrUPazMwMX19fxo0bx5w5c7Czs9MRBe0u6BLDwsHBgdDQUDZu3MimTZswMDDg8uXL/PLLLzQ1NTF27Fgh3/dqpKWl0djY2O6J9mpoUwe0dG5az96tuMFlZWXMmzePV199VfDQfPrppyxfvpzIyEj8/f0xNzenqKiIN998k+DgYLZu3SoorxYXF7N48WK2b9/OxIkTBUXl3r1789tvv2FsbCxY+42Njbz77rts2LBBSEG59po+/vhjNmzYwIQJE9DX12+hZK5lxjhw4AALFy7ko48+QiqVUldXx9dff81HH33U5rW++OKL5OXltVpIr1KpBC9Ie+Dl5YWvr2+7Pf/awXfSpEmCYQFXFkDnz5/vlGExdOhQQcvifwGGhob4+/u326jTojVRuvLy8ht6yHJycloU9Hp6ejJ06NB2FcJ2BtHR0TrGAFx53love3shk8laRGaKi4vJyMigoaGh0+QSN5u72tDQwIcffsj333+Pvb09o0aNIiAgACsrK+Lj4/nkk09aHN/Kyoo333yT+fPns2nTJn7//Xe+/vprdu3axVtvvcXMmTN1+oCW0nTw4MFtUk1eK5x1KxcA1+ufPXr0YPXq1bfs3PdwD7cS2j4kFosxMjIS0pC0ugxVVVVER0eTkpJCcHCwzr4BAQHIZDIUCgVxcXEoFIoWyu5aaDQaoVgertC7Xq+eIDAwkJ49e3L69GnS0tKIi4sjMDCQ3Nxc4uLiUKlUeHt7M2TIkDaPYWlpia+vL3///TelpaXk5ubqpG92B4SEhGBgYEBtbS2xsbECyUF3g0KhYOXKlaxduxYHBweWLl3KhAkTuiQd93ahS1ZZrq6ujBs3jr/++ovIyEgiIyOBKxNQUFAQY8eObVFcplQquXDhAg0NDfj5+bVrwaflg9Z667RMOw0NDYK42tWTo1KppLm5uVWRpJuBv78/w4YN0wn7hoSEYGtrS15eHg0NDZibm/PXX39RWlrK4sWLKS4uFgp/FAoFoaGhHD9+nDNnzgiGhTa8WVtbS2NjIyqViubmZkxNTYVit9YwduxYhg4dKnSK1qjfTp06hbOzsw6Fmzb39HoUs4GBgXz99dethv3Ky8t55JFH2n3fnJ2db7roWus1X7p0qfBdbW0taWlpreagtxcRERF3VcfsLCwsLNqlCXAtzMzMWvTF63mRAUGE61rmkdDQ0BvSGXcWGo2GrKwsHUYrrUDYzQqgGRgYYGdnh6GhoVAoqdFoKCoqoqio6Lr0iTeCRCLB1tYWlUpFQUEBarX6hl73U6dO8ffff+Pu7s53331H7969hfdfqVS2ub82+vLGG2/wxBNPsHHjRj777LP/x955R0dVbm38NzW990YqJKRC6ITee1MRRRFQ9IqiWK69cvEqKoKiIkgRwUJRpHcIPbRAgBRI7723SaZ9f7DO+TIkgQRC8cqz1izIlHPOzDnnfd+997Ofh19//ZXOnTsTEBAAXFtwWFhY4OnpyXPPPSc+fyMIzvR3Cg3H2LaEXq+ntraW6upq6urqDGhlTUEmk2FlZdUsjUej0VBdXS023QvmdQLHX+ilaul4JfiqCMpOwvaEhnuhSnOz7QnJturqaqqrq0VaotBLdbd6vB6gZTA3Nyc8PJzQ0FCOHj1KRUVFkxXBHj164OTkRF5eHgcPHiQvL69ZA1OdTkdmZibHjh0DrtEmGzIfrodUKqVfv37s3buX+Ph4Dh48yNChQ9m7d6+oSvT444/fUAba3t6ezp07Y2xsTFFREefOnSM7Oxt3d/f7Jpsu+NqUlJRw4cIFYmJi6Nq1631zfAJOnjzJli1bKCws5NVXX2Xo0KF/u7VLmwQWSqWSwYMH88orr7BixQoqKipED4mXXnqJiIiIRp9JTEwkKytLVHe4WWCh1WopLi4mKiqKDRs2EBkZSU5Ojjg5jBw5kvnz5xMeHi5+JjY2ltTUVORyOQMGDGg2wr8ZnJycGiklmJmZoVAoqK6uFsuS8fHx1NfXM3/+/EbZRLi22BPeK3CVjx07xvbt27l69SplZWWigoPQ0N7UYrpjx443jLRVKhVZWVmYm5s34jna2dlhb2/fbLPUY4891myGWaFQNEuhagoODg6tXijIZDJ8fHyQyWQiX16lUpGdnU1NTc0tT4yCzvk/BWZmZk36rtwMDRWyBNys7K7VasnPzxdd1+HagsrLy6vFbuW3irq6OjIzMw1UTwTteCFj1xpkZ2djZGRkYOZXU1Nz24Zbgo+Nm5sbcXFxJCQkNJIxFq53IWAoKCigsrKSQYMG4eDgII4DdXV1nD17ttE9LPCqG9LObG1tGTVqFOfOnSMxMZHc3FwxgGjfvj1eXl7ExcWRkpKCr6+vwbgi8HmVSqW4PalUekf569erCrYFhP6W7du3s337dmJiYigqKrphw6ibmxtvvvkmc+bMMXher9dTXl7OxYsX2bFjBwcPHiQ1NZXq6mosLS0JDAxk+PDhTJgwAR8fn5smtPR6PTU1NVy5coW9e/eyZ88e4uPjqaiowMTEBD8/PwYNGsT48eMJDg6+YeOu4OIcHx/P+vXr2bNnDykpKWg0Gjw8POjfvz8PPfRQk6ZbD9D2KC4upr6+HktLS0xMTJp0TRcU24TkTVO9JADdu3ene/fuJCYmkp2dzbJly3jjjTdEt2qBii0o2q1cuZKioiLMzc3p3r07nTt3vuGx9u7dG19fX65cucLRo0fFAKa6uhpjY+NG0szXw8jIiE6dOjFgwAD27t3LoUOHWLt2LU8//TS2traN1ivCWFVVVYVarRaFfO4kHBwcePzxx/niiy+orq7mzTffZMWKFbi4uDSqRgviM0LywMzM7K55WWVkZIjyvkLfiSCRf78FQc2hzc6kk5MTL7/8MgMHDiQmJgYTExNRyqypCzI7O5tevXoRFBR0UzlLrVZLSkoKP/zwAytXrrxpBlXA0aNHmT9/PiUlJRw4cIDevXvf0sVrYmLSIhpEbW0ter2e5557jg4dOjS6CJRKpVgJqK6uZsOGDXzyySd4enoyduxYAgMDsbGxYcuWLaxevbrZ/TTlMt4Qwk0rlUobfV+5XI5cLm92Ur1e576+vl5cVJmZmfH+++83/wNcBwsLi1b3zwg8Qjs7OwNnXCHgutXAwtnZ+R/FyzYxMbnjFCQBNTU15OXlGahmmJub4+LicsdVWYqKiigqKjLIPufl5fHUU0+12T5UKlWb+Ng4ODgwdepUli5dyoIFC3jllVfEZkiVSkV1dTWOjo6iiabg85GcnExiYiJSqRS1Ws2FCxfYvXt3I1qi4F/SsWNHzM3NkcvlaLVakV7h4OBgsHD39PRkyJAhnDt3jnXr1mFiYoKXl5e4n6KiIqqqqujXr584PstkMjw9PZHL5S1ylm8tgoKC2nR7er2ey5cv88YbbxAZGSnquXt7e6PVaqmsrBTliQXnXkdHxyaDYqF6tXr1an744QcyMjIwNjYWFx1qtZpjx44RGRnJ2rVr+fLLLxk0aFCzTalCkLJt2za+/PJLLl68KFY8LCws0Gq1xMTEcPr0aX7//XfefPNNHn744SbV9YRF6qFDh3jttdeIi4tDJpNhbm6OmZkZhYWFrFmzhr179zJt2rT/GV+m+xkrVqzgzJkzDBs2jM6dO2NpaYlSqRTFGOrq6khKSmLVqlVcunQJExMTgoKCmqyMyuVy/vWvfxEfH09UVBQ//PADer2ep556Suwd0Gg05OTksGrVKn7++WcUCgXdu3dn2rRpN133ODs7061bN06ePElGRgZHjhzh/Pnz1NfXM2zYsEYN5U0hICCAp556iitXrpCWlsbixYtJT0/noYcewt3dXTwGjUZDVVUVCQkJHDt2jNraWhYuXNikj0tb4/nnnxfv0cOHDzN16lRefPFFQkNDxQSKoMKVnZ3N6dOnSUpKYuzYsUyZMqXR9rRaLRqNBo1GIypHCZL1cO2+rKiooLi4GJlMJj6EdVhT6zhLS0uRtbJ+/XoUCgVhYWGYmpqK50AQUzA1NcXe3l5UYbtf0KYhoqmpKT179ryho6GAoUOH3lShCP7fLO3777/n22+/Ra/XY29vj729PaampgYW6NdjwIABfP/99xQUFLB37166dOlyR6Nie3t7ZDIZYWFhjbjM1yM9PZ0dO3bg6OjI+++/z7Bhw4Br3/f48eO3pZQll8uxtLSkpKSEkpISg9caOjveDIJpTmJiIhKJBF9fX3r27NniKoSxsfEtKT0IdIuGgYVGo7ktHelbrVb9XdFaZaXbgVqtbmTkY2FhcVcyPLW1tXd8kaRWq9vEZdrGxoZp06aRnp5OZGQk58+fx9vbW+zDMjMz4+WXXxYDi06dOtG3b182btzIhx9+iJeXF9XV1aSkpDBmzJhGQgoVFRXMnz+f2tpaPD09sbS0RKVSkZmZKZrFXU9xfOSRRygqKuK3337jpZdewt3dHaVSKQo1jBo1ip49exoEFs7Ozri7u5OWlnbbv0lDGBsbt0qppSUoLS3lww8/5PDhw8hkMkaOHMmTTz6Jr68vVVVVnDlzhtWrV4vJsLFjx/LRRx/h7OzcKNlVWloquniXlpbi4+NDjx49CA0NxdLSkqKiIk6fPs25c+eIj49n5syZ/PTTTwwdOrTJBURNTQ1bt27lgw8+IDMzE1dXV7p06UJ4eDgODg5UVFQQExPDmTNnyMzM5O2330aj0fDkk082Wkjo9Xri4+N59dVXiY+Px8zMjPDwcCIiInBzc6OyspKLFy8SFRXF6tWr7xvfqMuXL6NSqcSF3f8Samtr2bx5M3/88QempqZ4e3vj6uqKiYkJ9fX15ObmisaYZmZmDBw4kDFjxjTrWRIeHs7rr7/OZ599xvnz51m6dCm//fYboaGhWFlZUVJSwuXLlykvLxd9wubMmUOXLl1adLyDBw8WjWpXr15Nfn4+EomERx99tEXzuLGxMcOGDRMVjVJSUli+fDk///wzTk5O2NjYiEyN/Px8sSo8ePDgu2Y34ODgwKJFi3j55Zc5deoUUVFRnD59GltbW1xcXEQWSkFBgaiG5ePjI67PrkdqaiqXL1+muLiYqqoq8XHlyhW0Wi0SiYQtW7aQnp6OmZmZGOg7OzvTtWvXJiu0nTt3pmfPnqSkpHDq1KkmzUgVCgU2NjYEBAQwevRoJk6ciJ+f332zxrnv66EqlYojR46wcuVK5HI5oaGhjBs3TpSv/frrr1m4cGGTn+3QoQP29vZIpVJOnz5NfX39HeWYdu/eHTMzM3bt2sXIkSOxsrIST7ROp0Oj0YhRqkqlorS0VMyOCSguLiY5Ofm2TIvMzMzw9/fn/PnzxMXF0bVrVzFLkpWVRVZW1g1NmQSsW7eO3bt306FDB/R6PTt37iQxMZG5c+e26DgUCsUtBXKCRF9D3E5gIZVK71hj//0KmUx2x+X7BDTUMBdwIy+PtoRKpTKgLd3PkEgkeHp6smDBAnbv3s2RI0fIzc0FrmXqu3fvbtA8bm1tzSuvvIKnpycnT56krKwMJycnnnjiCUaMGEFeXh4dOnQQ329lZcXrr79OVFQUOTk5Yu/XhAkTGDZsmOjn0RDW1tbMnTuXLl26sHfvXpKTk9FqtWLf3IgRIxrxe01NTYmIiGjzwKJbt24tcpFtDfbv3090dDT19fUMHDiQH374wYBW1q1bNwIDA3n00UcpKysjOTkZhULRaJGr0WjYvXs369evp7CwkE6dOvHOO+8wcuRIg6pcdXU1P/zwA1988YUo5hEUFCQGiwJ0Oh0XL15k2bJlpKen4+XlxYsvvsj06dMNEjcqlYo//viDzz//nNjYWL744guCg4OJiIgwOJe1tbUsX76c+Ph4jI2NGTp0KAsWLDC4PgQFsAULFrSaJihUa0pLS+nYsWOrPnsjvPzyy6SmpnLs2LEWzUl/J3To0IHw8HDy8/OpqKggKSmJ+Ph40U9GqVSKPU7du3fn6aefplevXjfc5vjx47GysuKHH37gwoUL5Ofni6amCoUCc3NzAgICCA8PZ9asWQxohaN6eHg4AQEBxMXFiWIYbm5uDBw4sMVNzra2tkybNg0XFxfWrl1LbGwsxcXF5OXliVRZhUKBiYkJTk5O2Nvbi0a1dwtBQUGsXLlStA8oKCigvLycuLg4Uf3Q2NgYFxcXbG1t6dy5c7O04h07drBgwQJxHL8eer1epGA2RMeOHfnmm28YMmSIwfMVFRWUlZXh6OiIvb09BQUFBm7Ywja1Wi0lJSUcOXKEo0ePcuzYMb7//vtG48y9wn0fWBQUFLB161aqq6sJDw9n3rx5BhmgG2VljYyMaNeunWj8cidK9w3Rp08f+vTpw86dO4mIiKBnz55iI2hZWRkVFRUMHDgQc3NzrKys8PT0JDY2ltOnTyORSFCpVBw6dIjo6OjbUlOwsrIiIiKC3377jT/++AMvLy8cHR0pLS1l//79LQ4sNm/ezOLFi8XFzuXLl3nhhRdaHFgIil23gqZK/beTZfsnBRUC7pYih06no76+3uA5oeR7pyGUoRvCysqKwMDANquYhIWFNZtFbC0kEgn29vY88cQTN3SuF+Dm5sacOXMacf2BRnRJMzMznnrqqVbTwExMTBg2bFizWbnrYW5uzrhx4/jjjz/aLKgzMjISXYrbEmfOnBGbYR9//PFGmX6FQkFgYCA9e/Zk165dFBUVERcX10hsJD8/n/3793PlyhWsra159tlnGwUVcO0czJ07l6tXr7Jq1SpiY2NZu3Ytb7/9tsH7KioqOHr0KFFRUZiamjJu3LhGQQVcywI/9thjZGZmsmjRIjIyMli3bh3BwcGiS7ter6egoICNGzcC166ZV1991SCogGtVxPHjx5OUlMTChQtbVenT6/X8/vvvxMTE3JCm+wD/j8cee4zAwECRTiNIRQtBgI2NDd7e3nTr1o2uXbu2eIwZMGAA4eHhHDp0iKioKDIzM6mpqcHCwoJ27drRs2dP+vbt2+rxz8TEhIkTJyKTyUS6eY8ePQwC8ZbA3NyciRMn0rt3b7GCl56eLt6HFhYWuLi44O/vT7du3Wjfvn2z1SqlUklISIjooXErfYNNQUhKR0dHc/LkSRISEigtLRV71BwcHPD29qZTp06EhoY2y9Lw9vZm6NChjZghN4OHh4d4/wooKytjx44dfPfddyQkJODt7U3//v3FHhDhHAhCDzk5OZw/f57ExER2797NypUr+fDDD8XtyeVyfH19GTNmDKampi0S5wgJCWHkyJHU1dXh6el5y3P4fR9YlJeXEx0djbm5Of3792fw4MGtWjAJTUEFBQV33IjP3NycDz74AJlMxtdff822bdswMzOjpqaGsrIyXFxc6N27t8g/Hz16NAkJCXz33Xfs3btXzL76+fm1uI+kKSiVSsLDw3nqqafYtGkT//73v/Hw8BDdM1tq9CJUUgQFFa1Wi6enZ4uP41YpJIKCS0MIqiYPcP9ByPA0hFqtbhRs3AkolcpG2TRvb28+++yzFlMAbgaZTHZfyhLeKxgZGdGzZ0/69OnD/v37b3t7EomEwYMHM2LEiDYPhgsLC8Xr0MPDo8mJUqFQiImWurq6JhcJly5dEiUqu3TpQteuXZvtH5LJZDz//PP8+uuvVFdXs2nTJl555RWDeyQnJ4fIyEh0Op24gGhu8SKVSpk0aRJ//vknBQUFbN++nddff100HdXpdJw+fZrCwkIUCgX+/v7NZr4FtTgvL69WVS10Oh27d+/+26nT3EsIUs6CIpNer6e0tJSLFy/SqVOnW05WaLVazp07R5cuXRg7dmyb3jOTJ09m8uTJbbItJycnxo4dy9ixY295G1ZWVjz//PM3dG+/VcjlcrEp/lYxbtw4xo0bd9vHotPpOHnyJAsXLiQmJobhw4fzxhtviMnppqDVatm0aRMzZsxApVKxY8cOg8DC3Nychx56qFV+Ii+88AIvvPDCbX+f+z6wqKurIzc3Fzs7uxbL0jaEIOlaX1/f6uy5jY0NAwcORCKRNBoEHB0dGTt2LL6+vgZVk9DQUBYtWsT27duJjY2luroaV1dX3Nzc6NGjh5hFMDMzY8SIEZiZmYkyc+3atWPAgAE4ODiwc+fORvrxnp6ePPLIIwQFBd00knR2dmb27Nl4e3sTHR2NWq3G39+fQYMGERcXR05OTrMumg23sWTJErp164ZWqyUqKgqZTMaaNWvE32DkyJHNfr6uru6WA4vrqWBCo9Kt4m5xOP+JEEr6DVFTU3NXGkSbcuutqqpCKpU+kNa8Q5BIJDg6OvLiiy+SkpJCSkrKbW2ve/fuvP/++3ekAbGhyllzvWV6vV58rTkKYXp6OhkZGcA1GsPNKr4hISE4OTmRnJxMRkYGaWlpBhnD0tJSkW7i7u5+02yir68vHh4eIv0lKSlJVPHSarVcuHABuFbhuJlfj7u7Ox4eHi0KLFJSUrh69Sr5+fmcOXMGT09PcfyHa5z1hgGhoEiYnp5OSUmJmAF2dXWlY8eOWFtb3/QcazQaTp8+TVpaGsHBwQb0QJVKRVpaGomJiVRUVIiGkwEBAc3Kr94v0Ov1pKSk8N///pevvvrqlgMLtVrNvHnzmDt3Lk5OTrcUWAjS9s01ED/A3UVtbS3nzp3j4sWLWFlZMWbMGPr06XPD+1gmkzF+/HjROLGoqOguHvGN0SaBRV5eHtHR0be1jSFDhjRZDhMy5QInsbWoqqpCq9Vibm7e6huoXbt2vPzyy02+1r59ez7++OMmX3N1deXZZ5+96fZtbGyajXivN8gBWhVdC5N/U9SIlnoLWFtbU1hYKDYPCUoGkZGRwLXf4EaBRVVVVatlOoVqxfVZQyMjozuqn/8At46GrqsCKisrKS4uFvuK7hTMzc0bBTWCmpHgBfAAbQ9jY2P69evHyy+/zNKlSw0c11sKIyMjevfuzb///W/Cw8PvCHUuICBArBofPXqUQYMGNZLULSoqEg05LS0tG6ny6HQ6iouLxTHJ2dn5pjQTmUyGt7c3ycnJaDQaEhMTxeBBSJwIoiNWVlY39fuRyWS4ublhZGSEWq0mMTFR/C56vZ709HTgWiB1M561lZVVi8fS2NhYtm/fTnJyMmVlZUgkEgMqlOBTJSA9PZ2VK1eKPY1arRaVSoW9vT1Tp05lwoQJN0xo6XQ6jhw5wscff4xer+edd94RA4vq6mqOHz/OL7/8wtWrV9HpdOh0OiwtLRk6dChTpkzB09Pzvg0uJBIJDg4OjBkz5rb8WmQyGePGjcPHx+eWx7fk5GRKSkoICAi4o/LRD9Ay1NTUUFJSIq5VraysWjRvZmVliZYEd0Kq+1bRJjP+5cuXef31129rGydOnGgycFAqldjZ2VFdXd1sg0xzUKlUpKamUl9fj7+//z9KbrQt8NJLL92QPnaz37OoqEhUVmgphAbzhtluuVyOvb39g8DiPoWRkRFOTk6Ym5uL6lBC5rKkpOSOyghaWVnh7OxsYGonKBqpVKq7poz1T4SNjQ1PPvkkVlZW/PLLL0RHRxv4iTQHqVSKr68vAwYMYObMmYSHh98xRaBBgwbx22+/UVxczMaNGwkMDKRfv37Y2dlRX19Peno6v//+O3FxcVhYWNC9e/dGLsUajYba2lqxx8vU1LRFwgRCsK3T6QzGQWGxLfQGKZXKFl2nDc0ry8rKDMZmgb8ulUpvGvS0RlghNDQUJycnMTALCgris88+MzimhotbvV6PnZ0dI0eOxMfHBxMTEzIzM1m7di3Lly8nICCA3r17N7u/48eP85///Ae9Xs97770n9v1otVoSEhL45ptvqK2tZdq0abi7u1NZWcmePXtYu3YtxsbGzJgx476dJwTxhpdeeum2tqNQKHjllVdu+fN6vZ4TJ06QmJiIo6Pjg8DiPoCRkZF4L5WXl3PlyhWKiooa9WEI0Gq1XLlyhe+++46amhrRq+1+QZsEFpWVlbdkRiVQjJr78eBaRjIwMJDIyEjOnj1LZmZmI9O35nDy5EmuXr2KWq2md+/e/3NydncaJSUlIp1LoBKZmpresErRENnZ2eTn57dqnxqNhrNnzxo8Z2Zmhre3921lvu/XLNb/AmQyGU5OTvj4+IiZX4ArV66QlJR0RwMLpVKJt7c3zs7OokqRXq/nzJkzDB8+/EFgcYdhY2PD5MmTCQwM5ODBg5w/f56UlBRyc3OpqKgQEwTGxsbY2tri6elJx44d6dOnD4MGDcLJyemOJnyCg4OZPn06xcXFpKen8/HHH9O3b18cHR2pq6sjJSWFI0eOoFAoGDJkCDNmzGiza+ZmxngteV9z22v4ecFItaXbk0qlLc50e3p64unpKdILbWxsbign7+vry0svvST6NcA16k5eXh4//vgj+fn5jUxfBRPBEydOMG/ePLRaLR988IGBYk5lZSWHDx8mJSWF9957jylTpojfwcPDg7S0NCIjIxk0aJABdepOIysri0uXLlFXV0d6ejqhoaEoFArOnDlDu3btmDBhgrhY/PHHH6mrq8Pe3p4xY8YY+KTExsaSnJyMtbU1iYmJojJQRESEQRPtb7/9RlpaGjqdjjFjxhAUFGQwL6pUKk6fPs3FixdFQ1l/f3969OiBhYUFCQkJHDp0iO3bt1NUVERdXR22trZ06NBBpGHDNQrciRMnyM3NxdTUlLCwMHr27CkeR15eHlu3bmX06NEcP36cjIwMbG1t6d27t6galpuby+nTp0lJSUGr1WJjY0OPHj1o3779XVMs/LvAzMyM4OBgfHx8SEpKYtOmTajVarp06YKDgwNGRkbodDpqa2spLS0lPT2dU6dOsWvXLtRqNZ06dWqRGMjdQpsEFn5+fjeNoAW50Pz8fC5fvkxWVhYuLi48/fTTBAQENDuY29vbM2zYMA4dOsSJEydYtmwZ06dPv2EZUGhuWrJkCTk5OSJn7V41nqlUKo4dO8alS5cYNWpUi5un7zWWLVuGVCo1+N1akw1KT08XK0YtCeoEk6c9e/YYPG9tbd1i+tYD3Bs4OzsTEhJiEFhcvHiRc+fO0blz5zvaeN+xY0d8fX0N5E8PHTrE1KlTcXV1fVCpvMMwMTGhW7duhISEkJWVZRBYqFQq9Ho9JiYm2NjY4OnpKcqA343zIpfLmTp1KgDz588nPT2d7OxstFotCoUCa2trwsLCiIiIYNKkSU02/AvCETKZDK1WS01NTYvGNKFKIZVKDaiCgseMQqFArVZTV1dHTU3NTe+RiooKsWpibW0tzn8SiURsJNfpdI08Za5HW/myNAWZTEZhYSEXLlwgIyOD8vJyVCoVUVFRVFZWNtnnYmZmxvnz5/nmm2+oqqpi/vz5DB482OA9paWlnD59mvLycvbv3y/2p8C1BJiguHS3eeZCNaZdu3aiX5afnx9arZa1a9fSvXt3kZqm1+vJyMjgl19+ISwszCCwuHTpEt999x2+vr7Y2tqi0Wg4ePAgaWlpzJw50+C9arWab775BldXV4O+U41Gw6VLl1i0aBFeXl7I5XKysrKoq6sTr2uhWlZTU4NKpRJFNtRqtRicZmVl8d1331FVVYWFhQUajYYDBw7w4osvMnDgQPR6PdnZ2Xz88ceUlJSI57WiokJc25SXl7N161aOHTsmJpZSUlJwd3fH19f3zp+YvxlkMhm9e/dmxowZrFixgoSEBDIyMnB3dzcILGpqaigtLSU7O5vq6mqMjIwYNGgQL7744n21RmqTwMLf3/+mjsyCRFZRURFXrlxh/fr1XLx4kbq6OkaOHNms6oqlpSWDBw+mf//+HDhwgFWrVpGUlET37t3x8fEhNTUVuHYhX7x4kaysLOLj4zl06BDHjx9HpVLxxBNPtJk5XllZGX/88QedOnWic+fOLcr81NXVcfjwYf788086duz4twksUlNTGTp0qJiFAVpV9amqquL06dOMHDmS9u3b3/T9gktuVFSU+JxEIsHZ2fmG5fOW4EHz9p2Fi4sLvXr1YuvWrWLjfVFREdu3bxd7g+5U1SggIIAuXbpw6tQpcVGVkpLC5s2b6dChw11zIL9VFBYWsnfvXkpLSxk5cmSrJl69Xs/Ro0fZv38/kyZNEhVo7gWMjY3x8/NrRCW61xBMr7RaLcHBwTzxxBMoFAoUCgWWlpZ4enoSFBTULEdZKpVib2+Pra0thYWFoi/BjVzlNRqNGOjKZDIDmUwhEHB1dSU9PZ3y8nIKCgpuyLvXarWiNwlcM+0S5jOJRCIuXtVqdbOGsQIqKipE6lRbQqPRcOHCBXGOtra2xtraGoVCQU1NjUjdur5iUVVVxYIFCzh58iRDhw6lT58+jbZdW1tLbm4udXV1ZGRkNKqE+/j44Onp2Way0K1Bfn4+kydPxs3NjWeeeYaBAwcyadIkduzYwZUrV3B3d8fKyorXXnuNqKgojh492uR2iouL6dGjB88++yxmZmb89NNPnD59msGDB4uBxWOPPYZKpWLdunWNPq/VaomPjycuLo63334bPz8/ysrKqK+vF/vQAgIC8PHxobCwkIyMDGbPni0maYVAf+vWraSmpoqO1JWVlbz77rt89913DBw4UNyf4MU1Y8YM7O3tqaurEwUzysrKOHfuHCYmJjz33HNYW1tTUFCAvb39g2pFM3B1dWXatGm4uroSGRkpJuDT09Opr69HKpWK/Yz+/v74+fnRuXNn+vXrR48ePe714RugTQILpVLZ4gWnh4cHYWFhdOjQgeeee46VK1fSvXt3Ro8e3WRwIZVK6dChAy+99BK1tbWcOHGCTZs2cfDgQZydncWGuitXrvDNN9+g0+nIzMykrKwMqVTK+PHjef7551ukRtESJCYmsmbNGlF9oyUQHF2Dg4MJCgq67WO4W/D19WXbtm1cuHBBnMRsbW0babLfCJGRkfTt2xcXF5cbTsRwrdy9ePFiAz6ymZkZXbp0aZXM7QPcfZiZmYl67IcOHRKfF6qMFhYWBAQE3JFmaisrKwYPHszBgwdFGp1Wq2X9+vW0a9dO5F239v4XePA3u26bg06nIzk5mVWrVjFv3rxmkyelpaXs2rWL9PR0goODWx1YREdH8+OPPxIaGnpPA4v7Fbt372b58uXU1NTw9ttv89BDD6FUKlt1PXh5eeHl5UVhYSHx8fHk5OTcUBkqPj5edC52cXFppL9vZ2dHSEiIWEFJSEi4ofFcWloamZmZqNVqbG1tad++vTgmS6VSUexDpVIRExODVqtttiKUl5d30+DjVpCXl8fvv//OgQMHmDBhAmPHjsXBwQETExMxC9sUCgoK6Ny5M5MmTeLo0aP88ssvzJw50+A9EokEiUSCl5eX6BB/PUxMTAwy+3cLpqam+Pr6iuckPDwcDw8PbG1tG/UY3uiac3Z2pmfPnqL/SGBgICdPnmwkgCL8FtdDJpMREBCAp6cnS5cupWfPnkRERBhUNQTpbJlMhlQqbdIM8siRIyQlJbFmzRqRSZKSkkJqaqoopAPXxvw+ffo0ed0KlcBdu3axbNkyevXqRe/evXF0dHwgqNEMhATBlClT6Nu3L2lpaRQWFlJdXY1GoxHPl5mZGTY2Nri5ueHl5YWxsfF9R/W+J3KzUqmUzp07M3jwYL777jt+/fVXhgwZ0uzEa2pqysCBAzExMeHXX39l165d5OXlUVhYKL6nuLjYoHGwXbt2TJw4kSeffJLAwMA2U6aJjY0lOzu7VZ9RKpW3rZd8L3D16lWRBy1cuK3lH+fk5PDjjz9ibm7OmDFjmqVSlZaWsmjRInbs2CE+J5FI8PDw4LHHHrujykIPcPuQSCQEBAQwadIk4uPjycvLA65lI//66y+qq6t58skn6du3703pdDqdjtzcXLEZePr06Tfdf/fu3Rk3bhyZmZliNjM3N5dvv/2WoqIinnzySfz8/G56HalUKlJSUjh37hyxsbF07dqVhx9+uGU/QhPf4+DBg6xdu5aPPvrolrZxM0gkEoYNG4abm9vfbny5W9i+fbsYCAwePLjVQQVc69UICwsjOjqa6Ohozp07R8eOHZuUNNZqtaxYsYLa2loUCoVoUNUQLi4uDBgwgN27d5OWlsaRI0fo379/k4pJOp2OrVu3inK3Q4cOxcHBQVygyWQyevTogbW1NWVlZcTFxXH27Nkms5g1NTVcunSp1RLBwr5uVPnNzc3l3LlztGvXjilTptC5c2fx+IUG+KZgYmLCyy+/jI2NDS+//DJffvklbm5uBmpTJiYmuLu7i0324eHhrTr+OwlB0lgI5AQzM6lU2ipTVwsLC4OxUS6Xi8pXLYFMJiMkJIS3336bqKgoTp48yYEDBxg6dChTp05t0dyt1+spLi7G3t6e9u3bi9d3hw4dkMvljXpjmuufs7S0ZMKECTg5OREdHc3GjRvZvXs3M2bMoHv37veFL5BWqyUuLo4tW7aQlZWFRqPBwcGBQYMGMXTo0EbvLy4u5siRI5w8eZLS0lLkcjn+/v48/PDDTQa6K1asID4+nvfff79VlTRjY2N8fX3/1pSxe7Zak0gkBAcHY2xszOnTp2/qim1ubk6/fv3w9vZm1KhRnD9/ntjYWHJyckT6g5mZGe7u7gQHB9O1a1e6dOmCs7PzbS9KMzMzOXToEOfOnePEiRPk5OSwZMkStmzZIt5ogwYN4rHHHhMVOfR6PXFxccybN0/cjr29PTNmzKBr167ic2q1ml27dnH16lU6derEyZMnKSgoYPz48XTs2JFt27YRExNDSEgIjz76qEG5XK/XU1hYyKZNm4iJiaGmpgYnJyf69evHkCFDbrsJ0crKitLSUmxtbVs9EAh68Gq1mgsXLvDJJ59w6tQp+vfvT2BgoEg7KCkp4fz58+zYsYPdu3cb8IMtLS2ZNGmSwe91q7gbEX1qaipZWVlUVlZSW1tLdXU11dXV4v+Lioo4efKkwWfS09NZvnw5kZGRmJqaYmJiInozCA9LS0s6duzYZk7SdwoWFhaMGTOGhIQEVq1aJS4kSktL2bZtG/Hx8XTu3JlOnTrRvn17bGxsMDU1RaPRUF1dTUFBAVlZWVy5coWMjAyys7NxdnZuUWBhbW3N1KlTSUpK4o8//hCzfCkpKSxfvpyTJ0/SrVs3wsLCcHV1xdLSEr1ej0qloqKigtzcXDIzM0lOTiYzM5OsrCxqampu6zfXarUcOHDglj/fEkgkEgIDAwkMDLyj+/k7Q+hNKC0t5ciRIwwZMqTVFWwnJyeGDx9OVFQUly9fZtWqVTg4ODB8+HCD4KK2tpaff/6ZP/74A61Wi6+vb5PXr4WFBf369aNPnz5ERkayfft2fHx8ePzxxw3G+Lq6Onbs2MGvv/5KUVERjo6OPPHEE42Cczc3N8aMGcO6devIysrim2++4T//+Y9BpUSlUnHgwAE2b97cagNWuVyOpaUleXl5qNXqJucDIZN+fRb80qVLXLhw4YaBhZeXF66urnz88cfMmjWL+fPn4+LiIjZi29nZERERwYEDB9izZw9dunQxuDdra2vR6/UYGRnd9Z6q6ysItzrXNAxObvU4TExM6N+/P506dSIpKYk9e/bw119/ERoaKgaawvFe3/QvwN7eHr1ez5QpUxpV5aRSqfgZiUTS7PFKJBLc3NwYP348PXv25MqVK/zwww/s2LEDLy+ve1JZagghgHrrrbeIj4+nY8eOmJubo1arm1SyrK+vZ+fOnXzzzTfANeaNoMDWnBHs8ePHOX78OG+88cYd/S73I+5pGli4KPPz81sUlSuVSnx9fWnXrh39+vWjuLiYqqoqsRFNoVBgbm6Ovb09NjY2bZblVqlUlJWVoVar0Wq1YuNfwxKUoGzREGZmZvj6+ooLysrKSoYNG2awUNbpdCQkJPDbb78RHR1Nfn4+aWlppKen4+rqSkFBAcnJyezfvx87OzvGjh0rBgzZ2dm8+uqrnD17FldXV8zMzLh48aLY3Pbyyy/fVnARGBhIfn4+qampYsaqpc3bxsbGjBw5ksLCQo4cOUJ8fDzZ2dns3bsXOzs7sVFRpVJRUFBARkaGQWOfUqmkX79+zJo162/j9rp+/Xr++usv8ZrUaDQG/9bX1zeaXAsKCti6dStGRkYoFArRK0TggMvlchwdHfnyyy/ve5qLUGGaNWsWVVVV/PHHH2KgWFtby6VLl7h69Sr79u3DxsYGY2NjMSunVqupqamhsrKS0tJS8VpoDR/Xy8uLuXPnUl1dza5du6ipqQGu9XocOnSI6OhoHBwcMDMzw8jICL1ej0ajob6+nurqaiorK6moqBDHk1vla0dFRbFr1y4SEhI4ePAg1dXVTJo0SbyHHB0dmTp1KoMGDWr0++Xn57N69WqOHz9OeXk5Dg4ODBs2jIEDBxrce2lpabz77rsiV97ExITZs2c3KTmYn5/Pxo0bqaysZOzYsVy4cIEjR45QWlqKnZ0dgwcPZvDgwY2y5XFxcfzxxx/ExcUZKMPBtaD/0UcfNfDgqaysJCoqioMHD5KRkSEqwfj7+zN48GD8/f3viTJfREQEhw8fpqSkhA8++IAff/zR4LoSFgheXl5ERETQt2/fRpUImUzGoEGDuHr1Kt9++y3R0dF88MEH7N69m+DgYCwtLSktLeXcuXMcO3aM3NxcrK2tef/995vsOZFKpQQGBjJr1ixycnJITk5m4cKFnDx5ks6dO2Nvb091dTWXLl3i+PHjJCUloVQqeeGFF+jZs6fB7ygsKGfPns3x48dJTU1l+/btlJaWEhERgaurKzU1NSQkJHD06FHq6+vx8fFpVdVCJpPRv39/9u3bxwcffEBISAhqtRoLCwsmTZoEXKvChIWFsWnTJn788UciIiIoKiri4MGDZGVlNfKbaQrdunVj3rx5zJkzh3nz5olNymZmZgwcOJBjx46xYcMGysrK6Nq1K3K5nIKCAuLi4hg0aBAPP/zwfa0EJ1QwWlqFaG4bgr9XQ9TX13P69Gm0Wi2enp7Y2dmJEuANE7dSqRQrKyvy8vK4fPkyJiYmKJVKrKysUCqVjB8/noULF7Jt2zZGjRqFkZERmZmZ6HQ6+vXr16JjzMnJ4erVq1hYWODo6CgGK7W1tbf13dsKer2eixcvcuzYMR5//HFmz56NUqlEr9c3Kb9bVFTE8ePH0el0zJ49W3S2NzIywsXFpcl9vPzyy0ybNu2e9P3ca9zTwCI1NbXZ7MeNIJTg7qSMZUO4u7vz8MMPU1dXx+LFi0lMTOShhx5i7Nix4mLBwsKi0YDm5ubG3LlzRYrW3r17m91Hamoq/fv35+WXX2b9+vVs3LiRqqoqZs+ejVwu5+233+bIkSMMHDhQ3M8nn3zCnj17+OCDDxg0aBBKpZKMjAy+/fZb1q1bh5+fH4888sgtf++HHnrIYEDSaDRkZWW16LNqtZrQ0FDCw8PRaDRERUW1uGlQoVAwePBg/vOf/9CuXbtbPv6GuBvN2xkZGVy8eLFVjtM6nU6sbDQHBweHVhsN3ivIZDICAwN56623cHR0ZO3atSItCq5lYHNzc1vtSdMSSKVSQkJC+Pjjj3F3d+eXX34xUIkpLy9vdab2VlBdXU19fT2Wlpao1WqkUqkBt9je3r5JBaDCwkJ+/PFHqqqqsLW1pa6ujtOnT3PgwAHee+89Jk6cKPZ7mJmZ0alTJ/Ly8jh27Bjx8fFNGm3CtaDu4sWLnD59mgsXLpCeno6NjY0o7XzgwAH+/e9/8+ijj4rBy8WLF3nrrbdIT08nIiICW1tb9uzZQ1paGp06dWLgwIEGRnJlZWVs2LCBpUuXIpVKcXV1FbXW9+/fj6WlZYsEHO4EJkyYwP79+9m/fz8JCQlNcv0VCgUWFhb89ddfjBo1ipdeeqlRVtXGxobp06cjl8tZtmwZcXFxpKWlYWVlhUKhoL6+XnSb9vT05KOPPmL8+PHNZnUF6W6tVsvXX38tJpYOHjyIsbExarWa8vJysRL9wgsv8NRTT2FjY9MoiSWVSunUqRP//e9/ee+990hOTmbfvn2cPXtWrApWVFTg6OjI7NmzycrKYunSpS3+DaVSKW+++SY6nY7NmzezefNmcbEvBBaOjo489thjlJWVsW/fPg4ePIiNjQ29e/emd+/e/Pzzzzfdj0wmY/jw4bz99tvMmzeP//73v3z22WeYm5vj4+PDm2++yaZNmzh06BBHjx5Fr9djZmYm9jTcj5TZ2tpaVq5cyc6dOykoKCA9PZ25c+fi7u7OyJEjmTVrVou2s3v3bn799Veys7PJysriq6++YsOGDfj6+vLdd9+h0+lITU3l999/p6amBplMho2NDY888oiBYpBEImHAgAFcuXKFhQsXYm5uzrBhw5gyZQouLi6MGDGCyspK9u/fz9atW0VbgClTprTqOx85coTjx4+LCmouLi6MHTv2rq3bbgTBBR2gV69eN1VUKi0tpaCgAHd3d7p27dqiCvH9ngi8k7hnd+HVq1fZtm0bVVVVBAcH39eSkCYmJuJCQJD5c3BwwMvL64alQCEAUiqVN6VUmJmZERgYSLdu3UhKSmL79u107NiRHj16YGNjw8KFCw2y+rGxsWzZsoXu3bvz9NNPi1Gxn58fVVVVzJw5k+3btzNx4sRbHmyvn1jLy8tZsmQJ/fv3v+ln6+vr0ev19O3bFxsbG5YvX87WrVtvaphnY2PDrFmzePrpp/Hz87vvmpIe4OZQKBR06NCBV199lYiICH7//Xf27t3byE39RpBKpbi7uxvwrFsCuVxOx44defPNN+nbty9r165l//79rQrMjI2NCQoKYvz48UyYMKFV+wfo2rUrAQEB1NbWsn//flQqFe+//76YZZbJZE1W/lJTU3F2dmbOnDliVfPAgQMsWrSIX375hR49eoiNnba2tjzzzDOoVCqUSmWLfIQSEhKwsLDgX//6l5hxO3r0KIsWLeL333+nR48eYhPwqlWrOH78OIsXLxYdnidOnMgjjzyCRCJh2rRpBt8hPT2dTZs2YWlpyTvvvCNScGpqasjJycHPz++uVyv0er3YuC0ssD09PXFwcBDHbZ1Oh0qlIi8vj7S0NEpLSyksLMTc3Jy3337bYOwUGrGffvppwsPD2blzJ5GRkaSmplJbW4u5uTnh4eH079+f8ePHExIScsPsubBgmzBhAu3bt2ffvn3s3buXhIQE8vLyMDExoX379vTu3ZuxY8fStWtXbG1tm2x+lUgkGBsbM3bsWFxcXNi4cSORkZFkZGRQXV2Nm5sbw4YNY+LEifTu3Zs///yz1cZoYWFhfPHFFxQXF6NWq5HL5Qa0LYVCQVhYGB9//DGFhYWo1WqMjY1xcnLCyMiIwYMH4+LiYjCmf/3116K3g/A9TE1NefLJJ+natSvm5uZixVqpVBIYGMicOXOYPHmyWEUT5ldHR8e7zt0PDg5m4cKFeHh4iD2g7du3RyqV8uOPP+Lm5oZSqWTUqFF06dLFIFsvl8tFx/XBgwcTFhZmkP2OiIjA19dXfK5z5844ODiIymBw7fcyMzNDIpGgVCoZPnw4QUFB1NfXi+pjLi4ujdYfwcHBvPPOOxQWFqLT6QyM8qytrXn00Ufp06ePmIgxNjYW+wiEfroNGzaI49H1cHNzY9q0aYwaNUq8VmxtbXF1db0jqlCJiYn89ddfnDx5kvLyclxdXRkzZgzDhw83qBgcOXKENWvWkJmZSVJSEtXV1XzyyScsW7YMuNZLMm/ePDw8PMjNzeXPP//kwIEDZGVlkZSUhEQiYfr06eJ9PXv2bMaPHy8mfKKiovjkk0/Euc7IyIgtW7Y0W63TaDRcvXqVzZs3Ex0dTVlZGcbGxnh5eTF+/HgiIiIMqqeJiYls2LCBU6dOUVlZiYuLC6NGjeLRRx+9L/pWBLRJYJGfn8/58+db9N7y8nKuXr3Kzp07OX/+PFqtlmHDhv3jzessLCywsbFBKpWK1Q9XV1csLCwwMzNDoVAYlBEFqkT//v0NJnilUomPjw8WFhZkZmZSWFjYbKmuKWRkZODo6IixsTGxsbEG/MGKigouXbrU4m3V1tYik8no1q0bXl5eTJ48mX379hEVFUVycjKlpaVIJBJsbW3x8/OjX79+jBs3Dj8/P+zs7G45qPjggw+YM2eOQZXiViof2dnZrFixgpycHGbPni0uuprD22+/zXPPPdfmpV65XI63t3ej5zdt2sRXX33Fhx9+yA8//CDKvML/Nzu2Fq6urqxfv95g8mro+NtSSKVSnJ2dGTFiBF27diU5OZno6GhOnTrFlStXKCwspKysjNraWtF52NHREU9PTwIDA+natSshISG3lN2SSqW4uLgwevRounXrRnJyMkeOHOHs2bMkJiaSm5tLdXW1uIixsrLCw8MDHx8fQkJCCA8PF6kEt9JjYWVlhZWVFbW1tcjlcmQyGW5ubjedUI2MjBgyZAgTJkwQJxNHR0e2bdvG+fPnKSsrE98rZCN1Ol2Lj1GhUNCnTx8efvhhcSJ0dnZm7969REZGitUdtVpNVFQU1tbWDBw4ULx3zMzMCAoKIicnR6SDChCkJ93c3AgMDBRNTPV6PYGBga0yZWsrbNmyhU8//ZQLFy4wYsQIUU3o+uZtQR/+xIkTfPDBBxQUFHDs2DGSk5MbSYNLJBLs7Ozo378/YWFhPP/886hUKrRareh3YW1tLVYVbjaGSSQSLCws6Nq1K/7+/kydOpWamhpRfcfY2BhLS0tsbGyapNtevy1TU1NRCWjOnDnU1dWJvQdWVlYiBXHSpEn06tXLQKr2Zsep0+nYtWsXW7ZsobKykq5du/LFF1+I79FqtRw8eJDTp0/z9NNPN9puU43pwcHBTe7LysqKwMBAVq5cyZo1a8T9yOVyHBwcmpUGvtuwsLAwSMA1bCpvOF/4+Pg0UgZriKa+k62trcFv5uTkJAYiTUEikbSYyWFkZCQqnTUFS0vLG44r5ubmTXq+CBAWx81tvy1x6tQpvvzyS2JiYvDx8cHFxUU0UkxISGD27NnibyuoE7q7uyOXy8nJySEkJESsQLi4uIhBg0KhwNXVlfDwcJydnamoqEAikdCzZ09xe56engZzY7t27Xj00UfJy8tj9erVpKWlNdvAr1arOXToEPPmzSM/P58OHTrg4+NDWVkZJ0+eJDQ01CCJe+bMGT788EMyMjIIDAzE0dGRK1eu8M4773D58mU+/fTT+yYR2yaBRXR0NM8880yL3isYtFRVVaHVavHx8WHatGn/eG1jgVMP1xZGEokEIyMjUYlBGNiFxbIg/bZkyRJ++eUXg22pVCoKCwvx9vYWo9qWYvXq1Tz55JP4+PiIi/OGDqoNlbhuBo1GIy5AXF1dsbe3p0ePHlRXV1NXVyfecHK5HCMjI8zNzbG0tLzt6pXgFnu7qK+vJyMjg9TU1BZlvD08PFrsCn8zXL58mT179jBkyJBmy7TFxcVcvHiRioqKNvMOMDIyMpAPnD59OmFhYcyZM+eWFoZGRka4ubnh5ORE586dmTJlCnV1deK1odPpRAUVuVyOUqkUG9iNjIxua6A0NjamXbt2uLq60rlzZ2pqaqirq0OtVovBX1VVFT/++COFhYV8+eWX4r7vBaXCw8ODwMBAgyy3tbU1dnZ2VFdX37apmYuLC8HBwQYZMEtLS+zs7KitrRWTCILDq7GxscE5EBp409PTqaqqMljkODk5ERYWxubNm3nnnXeYOXMmPXr0EI3g7jaqq6tZt24d58+fx8XFhbffflv0MmrqmhJM/Pbv38/GjRspLi4mOzu7Wc8hhULRpgtcuVyOjY2NmDWOi4tj9+7d9O/fv1UUMolEImbCb7QItbOzu6FvxvXQ6/WcOnWKL774gjfeeEM0YGt4bvV6PSUlJaLCzu1Cq9WSnZ1tYHz5AE2joqKCPn36GIwRcrmcwYMHs3jx4jbfX15eHl999RWzZ882CB6ys7PZuHEj27ZtIyIigpdeekmsRl26dIl169Zx5MgRXn75ZcaNG9eoord161ZWrlxJVlYWjo6OjBgxgpkzZzab8S8oKGDjxo1cuHCB2bNnM2nSJIyNjamoqODTTz9l9erVhISEMGrUKIyNjQkMDMTb2xutVstPP/3E8ePHGT16NBMnTgT+37wSrrEnhP62uLg4MjIykEqlTJs2TZwjhTFSgJOTE5MmTUKj0XD06FHS09Ob/Q0TExP59ttvqaio4J133mHYsGEoFAq0Wi3V1dXY2NiICfeqqiq+/vpr8vLyWLhwIaGhochkMmpra3n99df56aefGD16NH379m3lmbwzaJPZU6VS3ZIudkREBP/973/p0KFDswsInU4nmoPI5fL/WQ3khtmtliymhAHkRrr3Pj4+rc64zpkzR7yJTUxM+Pzzz8XJrqys7KYO69ejYdVAqVS2ekL7p+L8+fMcOXLkhlmhtoJgXiW4CzdERkYGrq6ut92jIpfLsbCwaFEDZ1tDLpeLZl3Xo7S0FAsLC4qLi2+4ELsbELKE1yvMyOXyZhVcWgNzc/NGakjC9uH/71WlUomHhwfHjx+nsLBQlJtWqVTExcVhaWnZKFnh7u7O7Nmzqa2tZefOnezbt080oxs9evRdzzALPHS1Wk1wcLCYoWxubBUSOQ2vkXuZ/YuJieHIkSP3jZuuXq/nzJkz2NnZ8dRTT6FQKNDr9QbzsUwmY8KECYwYMaLFIh8P0DbQ6XRcuXLFgGEgl8sJCAi45W0mJSWRmppK3759Gwmo2Nvb88YbbzQ6z05OTkyfPl30E2sYYHbo0IF///vfZGdnGxgmCjh69CgvvPAC+fn5aDQaZDKZmDhrzoA5NjaWEydO0KNHD8aMGUO7du3Eys2MGTM4c+YMf/31Fz179hRpWEZGRmi1WkxNTcUqX1Nzg0wmE5MwFhYWKBQKkVHSXEN2w8DkRgkVrVZLYmIiJ0+e5LHHHmPKlCkGfXcNlbfgWlUmJiaG8ePH06VLFwNGx6OPPiqqav5PBRbt27fn9ddfb9F7lUol9vb2hIeH07FjR2xtbZHJZM0O4tHR0YwaNYqgoCDmz59PREREq47t3XffZevWrYwePZr33nvvls2u7jcIzaDDhw/n+eefb/I9Mpms1YpKDUuvzz//PD4+PuIFb2ZmdkMTpwdoG+h0OmJjY8nKyrorTefr169Hq9Uybty4+6Kx7p+K25WbvBlkMlmLKjESiYQZM2Zw7tw5nnvuOZ577jnMzc355ZdfKC0tZe7cuY2az+VyOaGhoSxZsoTo6GjWrl3Lvn37eOmll9i2bRvvvvvuXfUeEOhJ8P9KPDcKFAT5yVOnTgE0GTzdLeh0OuLj48nIyLgr939LoNfryc/Px9rautm+EYHv35S3x63ifqF2/BMRGRlJeXm52I/VEHK5XKxEXP+8tbU1VlZWjfy+hEW94PNxPTZt2kR+fr6YNNVoNOTm5rJ9+3beeOONJlktubm5ZGRkMGjQINzd3Q2Ss0FBQVhbWxMTE3PfiZ9UVVWRlJSEubk5ISEhjcbT63+fhIQESktLWbx4McuWLTMI6IUqfGv91e4k2iSwCAwMZP78+S16r5CZFzi3Nxs4BPpNSUlJs3rBN4JeryczM1OU2btdKJVKZDKZSKe4V03nvXv3RqFQcPr0aV577TWD42g4Gd3OwDxixAiD7VpaWrJgwYJb3t79Cr1eT3Z2Nt9++y1btmyhqqqKzp07M3LkyCYndmHiX7lyJXv27KG4uBhnZ2cmTJhgwOeUSCSo1WqOHj3Kr7/+ytmzZ8nPz8fY2JjOnTszY8YMRo4cKS72Lly4wKpVqzhw4ABpaWmoVCrGjRtnsBg8dOgQYWFhBue1rq6Ozz77jN9++43CwkKx8WvWrFlN8poFaLVaNBoNZ86cEVWI6urqxOpgw31oNBoD2lLDZIAgfShQ9YTXhcFPo9GIlDrhuYayzcJ2hOf0er04TgjHIWTshf0ATe6n4TlqeCwNtdsbHqtGo7mji5fWbPt+WkSNGzeOlJQUPvvsM15//XWkUin+/v58++23TJkypcljFeg8AwcOpE+fPqSkpLB48WI2btyIn5+fSIm7G/D09BT7HA4fPsyBAweYNGlSo0WNXq9HrVZz8eJFPvjgAy5fvoy5uTlhYWEGFCS9Xs+CBQvYv38/77//Pv3796e2tpYnnniCvXv38scffzBo0CDkcjkffvgh69atIyYmBmNjY44dO8avv/7KmTNnyM/PR6lU0qlTJ6ZPn86YMWPE+/vSpUusXLmS/fv3k5aWRm1tLZMmTTLIfO7evZvu3bsb3DORkZEsWrSImJgYdDodwcHBPPXUUzz88MMG91dcXByffPIJHh4ePPPMM2zcuJENGzZQUFCAo6Mjb731FmPGjGkUGDzzzDMcOnSInJwcNBqN2Hv0zDPP8O677wKwf/9+Zs6cSWVlJYMGDeKTTz4xyJZ/9tlnlJeXI5FIRCGHzp078/HHH9OxY0dkMhkajYbPP/+c1atXo9VqGThw4D+CIp2VlcXly5fFv6+fcyQSCeHh4W2e9MnIyGD58uXs3buXmpoawsPDeffdd7G1tWXBggX8+eefqNVqfv/9d2QyGQcPHkQul7N161YWL15MXV0dq1atarOqWkZGRqMqhl6vFz2gmvK+UKlU1NfXY2Zm1iiJam1tjZGRERUVFW1CzWtLqNVqKisrUSqVLariV1ZWolarGTlyJEFBQY0SRFKplKCgoDt1uK1GmwQWUqn0vh0AhIpISkpKm1xczs7OWFlZERMTQ//+/cWJUiaTGTQFCosWvV5PfX29uGBSq9XU1dWJC7RbRUREBP369WPXrl2sXbuWhx56CJlMJu6juLgYrVbbrGpDS6BWq8XjrKmpQaPR3Nca4bcCIah488032bVrFxEREXTq1IkrV66wZMkSysvLDXjWer2eY8eOiYoaAwYMwMXFhUuXLrFkyRKOHz/OunXrxEmgtraWZcuWERMTQ9++fXFzcyMvL4/9+/fz9ttvU19fz0MPPQRcu1YHDx5Mp06d+Pnnn7ly5QpPPfWUwQR9fQ+HVqtl0aJFlJSUMGbMGCwsLDhy5AgLFiwgOzubRYsWNRv8rlixgu+//56kpCR0Oh3fffcdUqmUxx57jPfff1+8tsvLy3n22WdFE7/hw4fz4YcfYmdnh06n4+rVqyxZsoS9e/eiVquJiIgQlYfkcjmff/45iYmJvPrqq+Ik9PPPP/PTTz+xcuVK/Pz80Gg0fPvtt6xdu5acnBwsLS2JiIjgww8/xNPTk9raWiIjI1m6dClxcXFotVo6d+7M7NmzGTRoEDKZjE8//ZTi4mJxEiwtLSU4OJh58+YRGhqKXC6nvr6e+fPn88svv4iqZU1Jv7YVTE1NRZPE+3WMbAopKSmsXr2ap556io8++khcbDaXDLo+kJPJZHTs2JFnnnmGlJQUkpKSKCoqumuBhaWlJZMnTyYpKYm0tDRmzpwpeiu4uroilUqpqqoiIyODc+fOceHCBTQaDUZGRgwcOJAXXnih0fjs4OBAVVUVBQUF6PV6EhMTKSwsRKVScfHiRXr06IGlpSXnz58XFQPr6upYtmwZ586do1+/fri7u1NQUMC+ffvE+3/y5MnANU73oEGDCA0N5ddff+Xy5cs8+eSTBguGhiIOOp2OX3/9lRdffJGgoCCefPJJ9Ho9R48e5ZVXXiE2NpaPPvpIDEwEBayYmBjee+89srOzRcWvs2fPYm5u3uQ1+vXXX6NWq/n444+JiYnhr7/+Agw9ZgYPHkxiYiKrVq1i+/btjRaI9fX1rFmzhiFDhvD5558jl8t5//33+eqrr/jss89wdHTk119/ZcmSJXzxxReEhISwfft2vvrqKwYOHHh7F8N9jsuXL/P5558D18ZzgVZua2tLfn4+bm5uLF68uM0Di5MnT6LRaPjuu+8ICAigoqICGxsbkQItVBfmzJmDubm5eD9MmjSJ8PBwnn/++TYVKnF3d2/kVi5UwZqjHhkbG6NUKqmurkalUhmM5eXl5dTX19+S+Midhlwux8zMjNraWkpKSsRkWnMwMzNDLpfTt29fnnrqqSaDkfspMXV//dp3ACYmJkilUsrKytrkJujXrx/h4eGsXr2aixcv0q5dO+rr6xk0aBCTJ08WT7hOpxONfAoLC4mKiqK8vJw///yT9PR0LCws6NixI927d7+l45BIJHz33XdMnjyZuXPnsnz5cnx8fKirqyMjI4OKigrmzJlzW4HFf/7zH6ZOnYq3tzczZ84kNjaW9957r1V61vc71Go1586dY9u2bUyZMoUlS5ZgZGREbW0ta9asETNyAsrKylixYoWYrendu7d4Q3/wwQcsXryYv/76ixkzZqBUKjE3N+f77783yKhoNBp27NjB888/z9GjR5k0aRISiYR27drRrl071Go1J0+eJC8vj+HDh99wYhUoCgcPHhTPdWJiIjNnzhQVmJrT3J4xYwZTpkxh1qxZuLu7M2fOHBwdHcUmagG//vorb731Fu+88w5xcXG8//77uLm58eabb5KZmcnixYvJzMxk2bJlmJqa8vPPP/PFF1/w5ptvEhERgV6vbzIT1fC5U6dO8cknn7Bq1SqCg4PJyckhKSlJrP4IajDjxo1j/vz5qFQqfvjhB1avXo2npycdOnRAr9ezYcMGhg8fztdff41cLue9997jm2++YcGCBTg5OfHLL7+wcuVKFi1aRHBwMNu3b+eLL75o0ljudiFk+TMzMzl06BADBw4UKyfChHirqKurQ6fTodVqRWnnuro6ampqREfcm6kI3QixsbGUl5djYWFBfn6+KGkpJFDMzc0NJuv8/HxSUlJEWVlhgRAfH09eXh6+vr5tSpG5GQRZyPr6epYsWUJ2djZnzpzh5MmT4nXXUDTA2NgYOzs7JkyYwCuvvNJIRU5wEpZIJBQVFYnGpjY2NgQGBorSlWZmZiQkJDBq1Cgx4fbtt982uv/37dvH008/zeHDh0UJX3d3d9zd3cUxKTMzk6FDhzJs2LAmv2NeXh5vvfUWAwcOZOPGjWIAkZmZyQsvvMCWLVsYPnx4I1OzyMhInnnmGRYuXChmga/ndDeEmZkZWq1WrNY31bcnVBdvtIDz9vbm6aefFpVuJk6cyLZt20TfnzVr1jB27Fgef/xxpFIpTk5OHDt2rNnt/a9gxIgRjBgxArimZJaTk8OkSZNwcnIiIyODtWvX3hEBhK5du4oN+UOGDGHQoEE4OjqKY1RDdknD5JTwXFsvZB955BH++OMPCgsL0Wq1yGQysRm6ubHDzc0NLy8v0tLSyM7OxtfXV6xMx8bGUlZWdlPZ53sBwZelqqqK+Pj4RkHR9ayTgIAAbGxsOHPmDBMmTDDoxRPm0geBRQMInDohi9TWKC8vFykWrYXguF1XVyfKUrZv356PPvoILy8vjh8/LtJIhMlUgFar5T//+Y+BSoOdnR2nTp0Sebxjx46lW7duWFtb4+7uLt48pqamuLu7GzRaCnzfhgOMh4cH27dv58cff2Tfvn2cP39eVMKZOnUqI0eObP0P1gAHDx5k9uzZHDlyBJ1Ox+rVq3nrrbf+pwKLqqoqDh8+jL29PWPHjhWzcCYmJoSHhxMeHm5w7URHR3PlyhVCQ0ORSqUG7rUdO3bEyMiIyMhInnzySbGCZW1tTUVFBSUlJSKFTnCtLSsru2m24kaQSqVMmjTJIIC0srKie/fu7Nmzh9zc3GYDC+H4BHUXU1PTJgfwrl27MnfuXIyMjHB2dmbfvn1cvnwZvV5PamoqFy5c4N133xWdpKVSKZ9++inHjx9vkp/bHCwsLNBqtRgZGREWFmYQtCkUCkJDQ/Hy8hJll0NCQoiKiqKgoED8/j4+PkyfPl1cTI0fP56tW7eK8rlr165l7NixPPLII0ilUuzs7Dh8+HCLj7E1kMvlzJgxg8jISF588UX69Okjyn4+9thj9O7d+5a3vXXrVnJycqioqODQoUPU19ezbds28vLysLCwwNvbm9GjR9/SdaXVagkKCsLHx4fFixfz9ddfA/8vtdqlSxdeeeUVunfvLo55ly5d4tlnn8XU1BQ/Pz8sLCwoKiri6tWrWFpaMnLkyFuSP74dyOVyZs+ezYgRI9i1axcnTpwgOTmZ8vJydDodpqam2NnZ4evrS5cuXRgwYMANEzHu7u7Y29uLv7sQWNjb25Oenk5NTQ2pqalUVlbSqVMnkYJnbW1NZWWlwf1fV1cnunXf6v2/bds2ysrKGDZsGBkZGeLzgjfU2bNniY6ObhRYdOjQgWHDhhlQS+7GosTT09Mg82xubo5KpRIDvbS0NIM5S6FQ4O3tTUFBwR0/tvsFQsOzIJji6OhIVlZWqzyAWgpPT08+/fRT4uPj+eWXX9ixYwcffPCBKBhyffXgTqNfv34sXbqU5cuXk5GRgYeHB1OmTOGxxx5r9jPBwcH06dOHP//8kx07dvDwww9jZGREVVUVa9asobi4mHHjxt2QEtxWaMhO0el0IkOmqqpKbPwWgnO5XE779u3p2rUrkZGRYkJMoVCI8tcmJiaizHSvXr3o1KkTe/bsYeDAgQwbNgxTU1NR3CgnJ4eOHTve1eTNjXBPAwu9Xs/zzz/P1atXOXbsWJtan+v1ekpLS4mOjqampgYHB4dWBS46nY6TJ0+ybNkyCgoKxBKUoHW/cOHCG35eqVQ26fDaFJ599lmeffZZ8e+BAwc2ylKvW7eu0eckEgn29va8/fbbvP322y3aV2tgZGRETU0NGzdu5JlnnsHLy+u+a4K6XQiSsoJ5VkPY2Njg5ORkoHiWnZ1NcXExGzZsYNu2bY0mZKlUKmYbhIHmwoULbNiwgUuXLlFSUkJtbS0VFRXk5+fTs2fP22rQFJrUGkImk2Fubo5Go6GmpuaWty0gODhYvHekUilmZmYUFhai0WgoLi5Gr9cbZHgdHBywsrKiqKio2f1fr3LUq1cv/vWvf/H+++/Trl07hg4dyqhRo/Dx8UEul1NTU8OxY8f4448/SEtLo7q6moKCAjw8PAwoju3atTMYR8zMzAwWLxkZGYwePVp8XaFQ4OXl1eTiReD3FhcXo1KpxPvN2toajUZDUVGReD/Y2dlhZWVFRUWFKKdtbm6Ov78///73vzlw4ACJiYlUVFQQEBBAXl4eubm51NfXU1hYiIODgzihJCYmAoi+Ay4uLlhYWFBRUUFqair19fX897//Ffth4JqARlJSEklJScA119dRo0aJ39HV1ZXy8vImxStcXFzo2LGj+Fpqairz5s2jtraWGTNm4OrqikQioa6ujrS0NHbu3ElmZiZbtmwRK0r+/v7861//4uTJk+Tk5JCdnY2trS2PPvooDz30EGFhYfeMjuDj48MLL7zACy+8cFvbcXV1xcnJiezsbAoKCkhKSsLR0RE/Pz++//57KioqyMzMRKvVEhYWhlQqRa1WExMTw/r168X7v6amhsrKSvLz8+ncufMt3/9xcXFoNBref/99Pv7440avC1TF63EzKdo7BUE+vTkolcpGfZBt7Ql0v8PW1paoqCgOHjxIu3btiI2Npaam5o5k3FNTUykpKcHS0pLx48fzzTffGMzvLi4unD9/nqtXr2JlZYWPjw96vZ7c3FwxkM7MzMTe3h57e3uMjIyorq6msLBQ9ClKT08XG7orKiooLy+noqKCgoIC0tLS8PT0xMzMTBzHxo8fz/jx41v8Hezs7Hj00UfJyMjg22+/Zc+ePTg4OJCcnEx2djZPPPEE/fv3v6N0VwFqtVpM5lVWVpKUlIRarWbFihXY29tja2tL9+7dRWl4f39/5syZw0cffcTHH3/M77//jpubGyqViqtXr/Lwww/z7LPPYm1tjbm5Oa+//joVFRV89NFH/PXXX7i7u1NdXU1mZiaZmZkcPnz4QWAB1waNy5cvk5iYKEZ5KSkpBll+QcNaoPi0xGFW0GHfvHkzkZGR1NXV0aVLl1ZRD6qqqjh9+jSenp6sWbPmH2ngFxQUxPr168nOzqZPnz4UFBTcNxduW0GgkEgkkkblZoFO0hD19fVoNBpGjhzJwIEDmxywXF1dUSqV6PV6Lly4wJQpU1AqlUyePJnw8HDs7e1JTEzkk08+ue3jl0gkrXbQbQo3kjNtblBu+P6GhnpqtRqNRiPSfRo2XwsoLy83CAikUin//ve/mTp1Kn/99RebN2/mr7/+YtWqVfj4+JCQkMCCBQsIDQ1l2bJluLu7s27dOrZt22ZwTDdbvBgZGYnu9QKay8qVlZWxe/dutm/fTllZGRKJhKeeeopx48Zx7tw5NmzYQEpKClKplO7duzN9+nR27NjBuXPnRPqQvb09Fy9e5I033iA8PJxly5aRlJTEL7/8ws6dO6mvr8fIyIjZs2ejUCjYsGEDy5cvR6/XExwczOOPP87bb79NUlISe/fuZcOGDWRnZxMWFsbnn3+Og4PDTbPNbm5ufPTRR82+/s477/DOO++Ify9dupT9+/fz+++/07dvX4Pfs7KyEnNzc/7880/i4uJEWounpydvvfXWDY/j7w4bGxtcXV25ePEisbGx5OXl0aNHD7p3787SpUtJTk4mISEBS0tLsRfq8uXLPProo0ilUqZMmUJ4eDgODg6kpqbyn//857aOR6AQzZkzp0kjMmNj4yblRo2NjVutFtgSCPf4rUojh4WFce7cOYqLizEzMyM3N5eEhIQm1Yf+VzFkyBByc3P57LPPqKmpwcLCghkzZjRbdb4dZGdns3btWnJzczE2Nmb48OEG+xk3bhzx8fF8/PHHWFhYsHr1ajQaDcuWLSMxMRGJRMKaNWs4d+4c06dPx9PTkytXrojGcCqViiVLljBy5EhGjx7NwYMH2bt3L8XFxRw9epT4+Hiefvppunfvflv9Z507d2b+/Pniei81NRU3NzeeffZZxowZ02S1QiKR4ODgQOfOnVtUzRAqsVKptNn5sK6ujl9++UVkMZiYmBAaGsqOHTuAa4kiIyMjMbAwMjJixIgRuLu7s2nTJs6fP09CQgJmZmZ0796dnj17GgSUnTp14vvvv2fTpk0cOXKEmJgYzMzM8PLyYubMmfeVjP89DSyqq6sNJvX6+nrmzJlDVlaW+JyQ8UxPT+fjjz9u0cJWyAIKJW9LS0seeeSRFkWtgsnPhQsXSEtLE7WUnZ2dcXV1FWW9iouLkUgkuLi4iDrv0dHRhIaGYmxsjE6n4+LFi3h7e2NlZYVarSY3NxeNRkN1dTXV1dXY2tri6+t7z5SlboZXX32VjRs38sEHH2BkZERlZeUNy5J/R8hkMqysrKivrxedhwXU19eLk7cAS0tLTExM8PLyYuLEiTg7Oze7bZVKxbp16ygrK+Pzzz9n1qxZwP+rKLVVmfl2aAwCD7yiooKKigrRoFAo3d4ICoUCDw8PzM3NOXXqFO3bt0cmk3H58mWqq6vx8fFBqVRiZWVFdXU1eXl5Iq/00qVLBtWM4uJi1Go1VlZWTJ8+na5du/L0009z5swZfHx8qKyspKKigt69e+Pi4kJRURGJiYmUl5e36vuGh4eL6jwWFhZkZWURHx/fZGNkdHQ0e/fuZfLkyYwePVp0klepVPz000+EhITw0UcfoVarefbZZ2nfvr0o/bdixQq6du3KypUrCQ4OJjIykvDwcHQ6Hf7+/oSFhbF06VJmz57NxYsXOXv2LEVFRdTW1rJ06VJMTEz4+OOP2bdvHw899BDFxcX4+vry5ZdfisZXcXFx9O3bt83Hj6SkJJRKJc7Ozo3U5urq6qiqqrqv+Lx3CxKJBA8PDy5cuMDFixfRaDT4+PgQGBiIvb09cXFxxMbG0rFjR5HSsHbtWoqKiliwYIEoCy40uTcnJtJQwexGEKrw4eHhjB079p6dk9raWtLS0sjLy+PKlSsUFxdz5swZKioq8PLyarFs78yZM3nttdf49ttv8fPzIykpifLy8n9UYOHo6Mjs2bOZMGECer0eJyenJv2F2gIDBgy4YW+Zm5sb33zzjcFzSqXyhgGxQB9uCg8//DAPP/zwLR3rzeDj48Nrr73Ga6+91qL3S6XSVh2Pr6+vgct8U7CwsGD9+vUt2p4AhUJB586d6dy5c4ve7+7uzty5c5k7d26r9nO3cU8DC8F9W4DAR83MzKS4uNhAYlalUpGamtqq7ctkMtzd3Rk3bhyjRo1qUdVBp9ORnJzMhg0biI6OFvc9fPhwRo0axblz59i6dSt5eXlIJBK8vb156qmnsLe3Z+rUqRw4cIB27dqh0Wh46aWXmD9/Pv369aO8vJw1a9aQlZUlZmO6dOnCCy+8cFfKdLcCPz8/A4pVaGgooaGh9/CI2h7GxsYEBQVx8OBBYmJiRCUjnU4nlnwbnp/27dvj5ubGuXPnSE9Px8HBwWDQr6+vFyVQ9Xo9BQUFGBkZGfxutbW1JCUlkZ+f3+QxCVxMtVqNWq2+rR6Mm0EmkxEWFsbevXvZtGkT7dq1o3379oSGht70uhSu/5EjR7Jv3z7q6uowMjLi7NmzeHt7i2Y9oaGhHDx4kM2bN5OamkpRUVEjQ81Tp05x9uxZnJycMDIyIikpCXd3d9E3xc7Ojnbt2nHgwAG0Wi1ZWVlcuHCh1YZ7M2bM4LXXXmPJkiX4+vqSnp7eKHgUIEiDduvWTTT4A7hy5Qp1dXX4+/uLtKvQ0FCSk5ORy+V4eHhgYmKCra0tHTp0EOkvcO16c3JywtTUFGdnZ7y8vLh69Sr5+flUVVUZLMQ6duxIdnY2paWlAAwaNAgbGxtkMhlubm4iP7+t4ePjw7Fjx9i7dy91dXWYm5uj1WqpqqoiOjqaPXv2EBAQcEeyqPc7PDw80Ov1XLp0CXt7e+zs7DA2Nsbf35+0tDTi4+MZPXq0aGpYUFCAQqGgU6dO4jaE+z8vL6/JfUilUhQKBRqNRmzMb+r+79WrF8bGxuzcuZMhQ4YYZDcFjndbmcpKJBI6dOjQ5LZKS0v566+/OH78OGq1Gmtra9avX4+NjQ3Tpk3DxcVFbN5vSMVzd3enR48e4jgzZMgQ/v3vf7N9+3ZiY2OJiIjg3XffbTGl+H8B5eXlnDlzhujoaAYMGICzszOxsbG4u7vfVxnpB3iAG6HFgYVer6eyspLc3FyUSqXoYgj/3+TcWqSlpRlkbZRKJd9++y0XLlzg/PnzXLp0idjYWM6dO4epqSk+Pj4tcvQUaC0ODg4MGDCAyZMnY2tr26LFmUwmo3v37nh6erJ8+XIUCoVY4i8rK2PTpk14eXnx7rvvotfrmTt3LseOHWtWuaMhqqqqKC0t5eOPP8bOzg6NRnPfBhWthYODA0OGDDEw0AsODr4jahZtCVNTU/r27cuKFSvYtGkTHTp0wMXFhfLycvbu3UtaWprBd+rYsSODBg3ixx9/5LfffkOlUuHg4IBGo6GqqorU1FQGDx6Mk5MTMpmM4OBg9u7dy+HDh7G2tkar1RIbG8umTZuapewIAbFarSYqKgoHBweMjIxQq9W0b9++zfm2kydPRiaTcebMGa5evYqRkZHYt9GnTx+DBYVCoSA4OFjM8Ds4ODBt2jRsbW05evQoGo2G0NBQxo0bJzrC9+jRg2eeeYbdu3dz5MgR2rdvz4svvsjZs2fFCqSrqytVVVUkJCSg0+nw8PDgrbfeEgMyX19fZs+ezR9//MH27dsJCgpi+vTp1NbWihlNf39/bGxsDIINLy8v+vXrJ/5mAwcO5M0332T37t1kZmbSs2dP3n33Xa5evdrodzExMUGr1VJYWIizs7OYBBEyiKWlpaI6U1FREUFBQdTX1xucVyHobKi6I7wuqK3o9Xrx/FZWVlJdXY1cLqe0tBSlUimOs8bGxo0yl3cisHj88cdJS0tj6dKl7N69G2tra+rr6ykpKSE7O5vQ0FBefPHFu+6mfT+gXbt2yGQyLl26xLBhw0QaRXBwMJs2bSI9PV0c96RSKSEhIWzdupXIyEhsbW3R6XTExcWxfv36ZsdGqVSKm5sbGo2G06dP4+rqirGxMWq1Gj8/P/GeGTBgAH379mXz5s306NGDzp07i4p2JSUl1NXV0b9//zYxhZVKpTz99NNNvubq6nrTHr+pU6c2eq6hGpKwj2nTpjFt2rTbO9i/MU6fPs2ff/5JTEwMLi4ueHt7s2LFCiZPnnzfuCo/wAPcDC0OLOrr61m3bh2RkZFYWVnx0EMPiYNCUlISP/30U6t3XlRUREVFhfi3oDoyePBgBg8eTH19PXv27OHRRx/F3d2dV199lW7dut10u1KpFHNzcxwdHTEyMmqzbG9RUREqlQofHx+R196xY0eysrLErGdDfun1pW5TU1NCQkJE+sz9vuhuDUJCQvj222/v9WG0GnK5nKCgIP71r3+xdu1a3njjDTw9PUUKXWhoqEHPj7GxMY8//jjV1dXs3buXmJgYbG1t0Wg0Il1HMDOSy+WMHz+e/fv3s3r1ai5cuIBEIqGiogJra+sbOhEPGDCA8+fP88cffxAVFSXqiH/22WdN8qlvB66ursyZM6fJ1+bNm2fwt6mpKTNmzDB4ztHRkZkzZzJz5swmt6FUKhk5cmQjlbKxY8eK/+/UqZNBVvd6mJqaMmTIEIYMGdLsex599NFGz13/GcGnoyWUPn9/f6Kjo/nrr79ISkpCo9HQsWNH2rdvT3h4OJcuXUKj0aDVaqmsrKRr165ER0dTVVV1021fDxsbG3x9fTlx4gQbNmxAqVSSmZnJkCFD7nqmslu3bvz3v/9l3759JCQkUFlZibGxMV5eXjz++OMMGDDAwDzunwQ3Nzesra1JT0/H2dlZnAdCQkL4+uuvUalUBAYGisaO48aNY9euXaxZs4aLFy8ik8lEGd+uXbs2u5++ffty7tw5tmzZInpMSKVS5s+fL3K0zc3NmTdvHvPmzePLL7/E29sbY2NjURzCz8/vtpTHHuDu4+rVqwQEBIj3vIODA/X19QY9bA/wAPc7WhxYqFQq/vvf/5KdnY1SqaSoqEgMLBITE2+qknQrUCqVeHl54eHhIU5swcHBbb6flsLc3ByFQkFxcbFIbcjPz8fPzw9TU1Pxd3F3dyc/P7+R0sz9aCQo8KYrKyspLy+nqqoKlUpFbW0tKpVKdLYUNPOvd1hu6H4s+B8YGRlhbGws/mtqaoqFhQXm5uaiAsT9xNG2trbmmWeewcPDg7Nnz4rB46BBg8jOzm7Ewffy8uK1116je/fuIjdeqVRib29PSEgIHh4eIk86MDCQzz//nJ07d1JYWIiZmRljxoyhS5cunDp1ivr6+iZ/i27duvHaa69x+PBhUUpS4NsKCAgIYNq0aQamWXCtKUyQyb1ej/9GUKlUYq9FTU0NNTU11NbWUlNTg0qlEhfRwr9NXQNCf4ZgriQ0ipqYmGBubo6VlRWmpqb3bV9RQ3To0IFHHnmEffv2cfLkSRQKBS4uLsjlcqZMmcKePXuIjY0Vm7pDQkKoq6ujvLxcDCqFfpz6+nqMjY0JCQnB2toaGxsbIiIisLKyIjg4GBMTE0JCQlAqlZw6dQqtVsvgwYPp168fZmZmjBw50qCfZ+jQoXh6et4RiW64ljBpWKl7gGuwtLRk+PDhKJVK+vbtK3o6BAQE8Mgjj1BaWoqXl5d4//v7+/Pll1+yY8cOUfxi5MiRdO/enTNnzjTbr9KlSxdeffVVIiMjSU9PB64F8NdXK8PCwli8eDE7d+7kypUr1NbWYmFhIdKMGlbvbGxsGDx4MFqt9rblN3U6nSihW15eTmVlpTh3CH1Gwlwh+B4oFAqUSqXBnGBpaYmNjQ02NjZiMHancD/NOc1BqVSKY6xeryc9PV2saD7A3YdOpxPV3vLz8ykrK6OmpgatVotcLsfIyAgzMzMcHBxwcXHB2dn5jl/HarWavLw88vLyKCwspLq6WrznjIyMMDc3x97eHm9vbxwdHe/JXCvRt7CWXl1dzZNPPsm5c+cwMTHhoYceElVtNm/ezKRJk7C0tMTd3b3FCkoqlYrk5GTUajVFRUVNZuaSk5N56aWXyMrKYvHixXfNhTM/P78RFUqj0fDbb78RFxcncm0vXrzIjBkz6NKlCy+99BKWlpYEBASgUqn4/vvv+e677+jXrx9FRUUsXboUIyMj3njjjbvyHa6HTqejqqqK/Px8MfApKSmhuLiYwsJCCgoKKC0tFScJ4VFbW4tGozF46PV60WFXMEZSKBSYmJhgZmYmPszNzbG2tsbW1hY7OztsbGxEGU07OzuRpyxwx/8Og//fHVqtloqKCnFgKikpobS0lMLCQvLz8ykqKqK8vFyUBqyoqKCqqor6+nqx70PQ4294/oWgQqlUYmZmJgaT5ubmWFhYYGdnh4ODA/b29uJiQhiQHR0db8vQ7QEe4AHuHPR6PUVFRWRkZJCdnU12dja5ublkZ2eTn59PcXGxOHdcn4gQEg5KpRJTU1MxwSCM/66urri5ueHs7IyHhwceHh64ubm1eUX/6NGjTJw4keLi4jbZ3ssvv8y///1vAz+Q28WxY8c4duwYhw4dwtnZGXt7e0xNTZk+fbpILW0KZWVlODk5Gcj1yuVyJkyYwMaNG2/pWPR6PSdPnuTixYsGVXu4lrzq1KkT3bp1a9GYXV9fz6FDh5qknN4ISqWSkJCQNq+8/fXXX2RmZop/W1tbM2HCBAOD48LCQs6ePcuZM2eIiYkhJSWFvLw8KioqUKvV4jxnbW2Np6enWMnu3r27QdWyrVBTU0N8fDxnz54lJiaGpKQkUlNTKS8vF4MLMzMzbGxsaNeuHZ06dcLb27vFMt9mZmYMGzasTfyGWlyxMDY25sMPP+TMmTOYmpo2eaIDAwP517/+1eLSfVZWFu+//34jNZ6GEErGN5L5uhMwNTWlV69eBtGeXC5n7NixWFtbi7K3jz/+OKGhoSgUCl588UX27NlDfn4+vr6+vPnmm+JJMjExERuD7xb0ej0qlYrMzEySk5NJS0sjKyuLjIwM0tPTycrKoqCggJqamlviagtBxvXynTeCTCbDwsJCXFAKUb6zszMuLi54eHjg7u6Oq6trm3CDm4JWq+XkyZNcunQJlUqFh4cHEyZMEM+NTqfjypUrpKWl0atXrzb1V7kXUKvVFBYWkpmZKS4KMjMzSU9PJycnRww0q6qqWq0bL1wDrYFCocDW1hYHBwfc3Nzw9PTE09MTd3d3PDw88PPzw83N7Y5l4x/gAR6gZSgqKiIuLo4rV66I/yYnJ5ORkdFieo5Q6a6vr6eqqqpJzxiJRIKzszO+vr506NCBjh074u/vT0BAQKsWRzeCiYnJfZ+4CA8Pp7a2lvLyckpLSzE3N2fcuHGifPHdgl6v59ixY8yfP59Dhw4ZBBYKhYIBAwbg4+PT4u0JSnq///57q47D0tKS559/vs0DiyVLlnDw4EHxb29vb0JDQwkLC6Ourk7sg9q5cycJCQmNAiu4JsJQW1tLUVERSUlJHDhwADs7OyIiInjooYeYOHEi5ubmbXLNZWRksH37dnbs2MGJEycoLy9vcs0mJALT09M5evRoq/Yh9PTc1cBCUI8JCwtr9j3t2rVj7NixLS6zpqen89lnn90wsBD6OXr27NmI8nEnYWFh0SSf29ramrFjxxrwwwUEBQU1MisTYGZmdkN+eFtBoDYlJiZy6dIlrly5Ij7S0tKavSDvFrRaLWVlZZSVlYlGYHCNJubk5CQuMj09PWnXrh3e3t60b99epMPdLvR6PSkpKfznP/8RpVIFWo8AnU5HTEwMe/fuNVD++btAMHZLTU0lMTGRxMREkpKSSEtLIyMjg5ycnFvqA2grqNVqMZi5fPkycO38Ozs74+npKSoOCXScdu3a3TNztfsder2erKwsVq1ada8P5bZgamrKiy+++D8jZvF3hkaj4erVq5w+fZro6GguXLhAbGzsHXF/FiAYr+Xm5nLs2DGMjIxo3749ISEhdOnSha5du9KpU6cWibc0h7Za5N1JCL1kERERqFQqTE1N27RPtCXQ6/UcOXKETz/9lMjISINFtVwuZ8iQIbz11luNHN3/zqitrSU+Pp6AgABOnz7NV199xd69e1ttMFtcXMzWrVu5ePEi2dnZvPTSS5iamt7W+bt06ZIYlOXm5t7T9VtL0aaztbGxcasM1ISGtBtBkOr8X5M5bWvodDoKCgo4c+YMZ86c4fz588TFxZGVldXIzfR+hCDvmpubS1RUlGj85unpia+vL35+fvj7+4vNs7fDET5x4gTJycksWbJEVOdqWHaXSqWEhoaK5fq/A/R6PVVVVVy+fJmYmBgSEhJITk4mJSWFjIyMexpItAQ6nY6cnBxycnI4efIk5ubm+Pn50bFjRzp16kRERARhYWF3rIr1d0ZmZuYNDfD+DrC3t+eZZ555EFjcQ6jVai5dusShQ4c4ceIEZ86cITs7+564X9fV1XH58mViY2PZuXMnISEh9OzZkwEDBtCzZ89bGpctLCzu+yro1atXqa2tpUOHDiQnJ3PkyBECAgIM+nnuJPR6PZGRkSxYsIDDhw8brB2kUikjR47knXfeoWfPnnf8WO4mamtruXTpEh06dOCzzz5jz549zfpMyWQysc+0OaSlpfHll1/i5OTUSOykNUhOTmbp0qX8/vvvouy4AKlUiq+vL76+vtjY2KBQKKipqSEvL4/ExMRm5eybgqmpKa6urm02/rZJYGFmZkaHDh3w9PRslUN1SwKLB7gxhEzP7t27iYyM5NKlSyQmJlJdXX2vD+22IBgVlpSUcP78eVHi2MfHR/RZ6Nq1KwEBAa0ecFNTU3F1daVDhw5Nvi6VSgkMDPxb6PTX1dVx6dIlzp49y4ULF7hy5QpXr14lLy/vniwI2gpVVVVcuHCBmJgYdu/eLZ7vAQMG0KtXr9sK+HQ6HXv27OHkyZPU1NTg4+PDrFmz2ozT/e233+Ll5cXIkSP/Fk3qD3CNvxwdHU1tbS1Dhw6914dzVyFQP3fu3MmBAwc4ffo0JSUl90VmVK/XU15ezrFjxzh37hwHDx6kX79+jB49mp49e7Yq0WBtbX3frzeioqKora3Fzs6OvXv3kpOTQ3JyMm5ubjdUzWsL6PV6Dh06xBdffMHhw4cbUd3GjRvHu+++e0M1s+ZgbGzME088QXBwMNXV1QY9nMLfeXl5JCUl3ZN5q7a2lkOHDpGXl8e+ffvEoELwJercuTPt27cXfWu0Wi0lJSWkpKRw4sQJMjMzG1GCS0pKWLhwIT179ryltUR1dTW///47f/75Z6Ogwtvbm4cffpiePXvSrl07LCwsUCgU1NbWUlxcTFJSEvv372fHjh0GyqtwLcAODAykffv2ODg44ODggK2trUhFbAu0SWARGhrKokWLaNeuXatKPkqlEltbW/Lz8+/7EuX9iKKiIrZs2cLu3bs5d+4caWlp98VkcCdQX19PWloaaWlpHD16FEdHR/z8/AgICKBLly5ERETg6+t7Q/WMH3/8kdjYWCIjIyksLGTWrFkYGxszaNAgJk6cCEBsbCxLly6lvr6eoKAgHnnkEVxdXYFrZc6NGzfi7u7OoEGDRIWWgoICvvvuO8aOHUunTp2Qy+WcPXuW7du3ix4IAwcOpHfv3m02sWVmZnL06FGOHTtGfHw8ycnJ9yy7eCeh1+spLS3l8OHDnDlzhgMHDtC3b18mTpxIjx49bsnT4+rVq8yfP18MUG5FNKCurg69Xo9SqWx0Tv/880969uzJ8OHDHwQWfxOUlpayYcMGLCws/lGBRVFREbt372bz5s0cP36cwsLC+3YMqa2tJTo6mitXrnDy5ElGjRrFQw89RMeOHVs0rpqYmNz3FbHS0lIkEono5/P444+zZs2aO0pDg2vj7MGDB/niiy84cuRIo6DioYce4t13373l4EaQHB80aJCoNnm9+uSJEyd47733WtWz2VZQq9VcuHCB+Ph4kfrl5OTE2LFjGTFiBP7+/ri6umJhYSGaXwrBUGxsLL/99hu7du1qxAy4evUqa9asYcGCBa0+prNnz7Jjx45GlQfBuHjs2LHY2dk1ee336tWLnj174uHhwffff29wXBKJhF69evHMM8/g4OCApaVlm9Pt2iSwcHZ2ZtSoUa3+nEQi4ZNPPqGsrKxVFCpAlD9tzUL6f0V1RqPRsH//ftauXcvJkyf/pwOKpqBWq8Um5KioKHbv3k379u3FjHaPHj2wsrJqdK6FwCMxMZG6ujp69OiBQqEwaIyzsbGhV69eHDp0iN27dzNkyBAxsDA2NiYxMZELFy7g7+8vavkfO3aMXbt2MXr0aCQSCXFxccybN4+goCB8fHwoLCxk0aJFaDQaBgwYcMvfu66ujujoaA4ePMjp06dJSEggNTW1ycay/0XU1NRw4cIFkpKSOHPmDMOHD+eRRx4hMDCwVfd1VFQURUVFvPTSS1hZWYnSga1BZGQkWq2W3r17/+16cB7AEHq9nrKyMo4fP35b9+ffCUIf2dq1a9mxY8ffahyprq7m9OnTpKSkcP78eZ544gmGDh1608q1VCrF2toaiURy386XxsbGpKSkkJ6ejr+/P8HBwej1+mZpOW2B64MKwZMLrq3RpkyZwhtvvEFoaOhtrZ8EAZ7mgrvq6up7lojR6/ViMzaAh4cHzz33HFOmTMHT07PR/CCRSLC0tMTS0hI/Pz/RRHbbtm0GfRkajYa//vqLV199FScnpxYfT319PQcOHCA2NtbgeYVCwQsvvMDDDz+MhYVFs+dDoVAQEBDAjBkzyMjIMGiaF4x8NRqNgYx+W+Ked0S2NDtUW1vLxYsXOXDgAElJSVRUVLQ6sFi9erVoaPR3RUpKCqtWrWLnzp1cvnz5bzMZ3CnU1dWRnp5Oeno6Z8+eZefOnQQFBfH6668TFhZmMFD1799fdL6tra1l+vTpAAYRv6urK1OmTEGlUrFp0yaDfZmZmdGjRw9+/vlnUlJS8PPzQ6/Xs2vXLsLCwvDw8EAmk7FixQrMzMx47rnnsLW1JSsri3nz5vHLL7/c0sKlpKREDHQuXbpEcnIyxcXF9+3keKdRVVXFqVOnSEpKIiYmhlmzZjFw4MAWZyPT09NxdHRslcdHQwg8ZHNzc7p06XJL23iAlqGiooJNmzaRkpLCzJkzRapOfX09np6eDBkyhB49ehhUKvPy8jhx4gTnzp0Te8wcHByIiIhg3LhxGBsbI5FIqKurY/fu3Rw+fJi4uDgSEhKoqKggLS1N3NawYcOYNWsWUqmUhIQEfv31V5ydnXn44YcNJuWYmBiWLl1K3759mTRpEiYmJuh0OrZt28bWrVv56quvSEpKYtOmTWRmZmJkZET37t155JFHDPrFCgsLOXjwIMeOHaO4uBhLS0u6devG6NGjcXJyapPEWHV1NXv27GHFihWcPHmSsrKy297m3YZer6ewsJCdO3eSmJhIQkICTzzxBJ6enjf8nK2tLVKp9I4u1G8H3bp1Iy8vj/r6erp27UpNTQ3Ozs53LHlxs6Bi2rRpvPbaawQGBt73NLK2goODA08++STPPPNMi4IBqVQqrjliYmK4cuWKwdyck5NDdHR0I4PYGyE7O5u4uLhGNKYuXbowbNiwFgkRSKVSvL29mThxInv27BHpVDqdjqioKE6fPk1ISMgdOa/3PLBoCcrKyvjjjz/44YcfSE9Pp7y8/JYaku9Fia2toNfr2b9/P0uWLOH48eOUlpb+YxeWzUFQm1KpVNTU1DS6YQQTN8G86laUhnr16sWmTZuIiYmhR48eorLR3LlzxaD14MGDVFZW8vzzzwPXshaJiYk4Ozuj1WpbnJXJzc1lz549bN++nUuXLpGZmWkw8P+TIejq7969m/T0dGbOnMnkyZNvmIH54osvOHv2LOfOnaO0tJSRI0diYmLCmDFjmDlzptivIjht63Q6AgMDmThxoqiG99dff7F582aOHj2KVCrl4MGDKJVKhg4dyvTp08VFYn19PQsXLhTlufv27cuTTz4pBj/FxcXs3LmT/fv3o1KpCAkJYfz48QQFBSGVSqmrq+Obb77B39+furo6cWLo378/06ZN+8dUSerq6rh48SJ//vknGRkZJCcn4+Ligkql4uzZsxw/fpzXX3/dYNI+ePAgy5cvR6/Xi4vxw4cPs3fvXkpLS5k5c6bYC6jRaDA1NcXGxgaNRiOaywlomIgqLi7myJEj+Pn5NVokFBQUsHv3bmxsbBg7diwmJibo9XquXr3K5s2bGTZsGD/++CPm5uaYmJiQmpoKYOAAn5GRwY8//ihux9bWlqSkJI4fP87Zs2d54403RPO9W0VBQQG//fYbK1eu5MqVK38LYY8bob6+nri4OJYsWUJaWhovvvjiDRdLdnZ29zVrITAwULzmnJ2d0ev1zJgxAwcHh1ZvSzAmbA43CiqkUilPP/00c+fOxd/f/x9D6ZTL5XTu3Jmnn366VRUGgE6dOjFkyBAyMzMNelw1Gg2nT59uVWCRlJRk4LMhoG/fvjg4OLQ4GDAyMsLX15eOHTty4sQJ8fnCwkISEhIoKyu7bbPMpnDfBxZqtZqzZ8+yYMECkpKSxMW04O5bX19PfX29aNAlGHcJ8Pf3p2vXroSEhBi4kP6doFKp+Pnnn1mxYgUxMTF/+8ngTqN37964ubndkQnExcWF0NBQUXHr6NGj2NraEhwcjJGRETqdjuLiYgYOHMioUaMMjsHGxqZFA0JGRgZbt25l586dxMXFkZub++CcNwOVSkVMTAyff/45paWlPP300yJ17XoMGTKEsLAwpFIpcXFxvPjii8jlcoMsp8AtHjp0KPX19Rw5coTVq1fz+uuv4+7uTlhYGKampmRkZGBvb8+ECROwtrbGw8PDgM65detWxo0bx7hx48jIyGDlypVYWloyZcoUKioq2Lp1K1u2bGHgwIGYmZlx5swZvv/+e55//nlCQ0PRarXExMSwc+dOIiIi6NmzJ2q1GgcHh3/MJN8QeXl5pKWl8cYbbxAQEIBer2fbtm0sW7aMAwcO0K1bN+zt7YFrXgDvv/8+1tbWWFpaIpFIyMnJYdasWSxfvpwnnngCpVKJQqFg4MCB9OzZk+joaHbs2EG3bt148803xf3erlQkQGVlJd999x3Tpk2jV69eGBsbU1NTg1wuF68ZoXqyY8cOxo0bx6RJkzAzM6OmpoZVq1axdetWwsLCmDp16i3PY0Lg8tNPP5GTk3Pf9lK0Fnq9nvz8fDZs2EBeXh5vvvkmPXv2bDJx1Bwn/X6BsbEx3t7eBqpDnp6et3TMUqm02Z7Dho3a1wcVMpmM5557jjlz5uDn5/ePGm8cHR0ZN27cTStfTUEulzNgwAA2bNjQKLCIi4tr1bby8/Ob7KsJCgpqtTKijY0Nfn5+BoGFTqcT3cT/kYFFSUkJO3bsICkpCYVCQbdu3Zg2bRqBgYEYGxuzfPlyVqxYwaxZs5gyZQoymYyUlBT++OMPDhw4gJGREU8//TRhYWH3feNWU6isrOSrr77i559/Jj09/b4t4d4vMDU1ZdCgQc0uLm8Xcrmcvn37cvz4ca5evcqhQ4fo1q2bAU3B09MTmUzGuHHjDAZloVpyM1y6dIlff/2VM2fOtNp87p8IYZD89ttv0Wq1PPfcc7i4uDR6X1hYGHq9nsOHD5OXl8eIESMAxHOiUCgICwvD19cXCwsLcWKPjIwkMzMTd3d3PD09cXFxYfXq1Xh4eDBw4EDx3Dc8txYWFsyePRtnZ2fy8/OJjY3l8OHDTJkyhYyMDPbu3cuAAQN46qmnkMvlODs78+OPP3Lq1CkDaW2FQsHQoUMJDw8Xn7uVhvW/OywtLenfvz8jRowQF0vl5eXs27ePjIwMioqKxMDCz8+P9u3bG9xv3t7eBAcHs2fPHtRqNXq9HqlUiq2tLTqdDnt7eyQSCebm5m0+dshkMnx9fZkyZYq4KBCuLeH40tPTOXLkCG5ubowbN46QkBDxtfHjx3PgwAEiIyMZNWrULQUWKSkpfPPNN6xbt67NnKfvN1RUVLB//37Ky8v56KOP6NOnTyOVSgcHh/u6YpGUlMTq1as5cuSImEyytbXlP//5T6vVmBoGrg0hUDk/++wzjh49atCorVAomD17Ni+88EKbGRP+neDs7HxbohuhoaGN/Lb0en2TppA3QlVVVZMeGg4ODq1WLzQ2Nm6yBaC8vJzKyspWbaulaJOrRlDsqa2tJSgoqEUXY3FxMSkpKdTX19OpU6dmM0OlpaWcOnUKgJ49e/L5558THByMiYkJUqmU3bt3I5fLcXR0pFOnTlhYWBAeHk7//v1ZuHAh69ev5/vvv+f777+/rzMVTaG8vJyFCxeycuXKv40xyr1Gjx49CAwMbJXs8fXQ6/XodDrxcT26dOmCk5MTmzZtIikpiVmzZonUFIlEwnPPPcc777zDunXrGDRokHh/mJubt8hUKCgoCGdn5wdBRStRUFDAt99+i1Qq5bnnnmtUyhbuf2GcuX7yEDKf69ev5+zZs5SWlpKfn4+Tk5OY0ZNKpaKKlEQiQSaTNTkJdenSBQ8PD9Fl3MXFhaysLODamHbgwAFOnDjB6tWrgWuN6QUFBXTp0sXgmgsICBADnX8yrKysCAkJMcjAWlpaYmNj02gS1uv1HD9+nH379hEfH09JSQk1NTUkJiZSU1Nz1zP1SqWS7t27G2Qar5/rcnJySElJIS4ujqlTpxqMX7W1tWRlZWFtbd1it+uGSE1NZdGiRaxdu5by8vJb/yJ/A6hUKqKionj77bdZsGABERERBgsxe3v7+3odcOzYMXQ6HWFhYbi6uiKVSikoKGi1uA1cG9+uT0LodDqOHj3Kp59+ypEjRwzo4Uqlkjlz5vD888/j5eX1j6pUwLUFeGBgIF5eXre8DScnp0brX51O1+r7rra2tknqvrGxcauvX5lM1mTlqr6+/o716LZJYFFYWMiqVavYuHEjDz/8MHPnzm0yY9gQeXl5zJ07l7S0NJYsWcLYsWObjMRqampITk7G1taWAQMG0KVLF4MTJ5fLkcvl1NfXo9FokEgkmJiY4OHhwZtvvsmZM2fYuXMn27dv5/HHH7+hHOn9hIqKCr788ktWrFhBfn7+g6CihRg8eDC+vr63lJXKyMhg8eLF7N69m+LiYqqqqhg3bhyurq7MmTOHKVOmANeauCMiIli8eDEdOnRoNAhPmjQJjUbDL7/8wsKFCzEyMiIgIIBnn322Rcfh4eFB//79OXXqFDk5Oa3+Hv9kFBcXs2TJEjw8PHjkkUdaVTZOSUnho48+QiKR8MILL+Du7s6ePXs4dOhQq++/68vLUqlUpDfU19djaWnJc889R48ePQze5+npaXDtmpmZ3VaQ/L8CY2NjsSIhQKhINEwA1NbWsnDhQn7++WecnZ3p2bMnAwcOxMLCQqwI3W1IpdKbqq/U1NRQWVmJt7c3vXv3brK67unp2WrxkczMTJYsWcJPP/1035tkthXUajXR0dG8+eabLFq0iO7du4trhtbw0+8FKioqcHJywsXFBQ8PD4YMGcLHH398S1Wm6ysWQsA9f/58g4oIXLu/5s6dy7/+9S/c3d3/cUEFXBtr/f39b6tKY25u3mTCqrX3XnMJK5VKhU6na9U1rNFomkxIGBsb37H1cJsEFvn5+URFRZGWlkZZWVmLsmu+vr7o9Xry8vLYuXMnw4cPbzKwUKvVlJeXi+Zo1590gStbU1NjcKNIJBJcXFwYPHgwcXFxbN68mYkTJ/4tAguNRsOqVatYs2bNg6CiFWjfvj1dunS5qezgW2+91WTPgqurK++++y6vvvqqwfNSqdRgmxKJhKlTp4rB8PXStmZmZjz22GOMHj0atVqNRCJBoVC0OOssk8kYPnw4O3bseBBY3AKKior473//i5eXF3379m3xRFFQUEB8fDxvv/02/fv3RyKREBkZ2ahcLFQrbuS+eqOB39zcHCcnJ4yMjOjdu3ejzzW8lu5n2sbdhFAduhmOHDnCli1b8PHx4cMPPxQr6FKplC1bttyx37O2tvaGlZCbHbtcLkepVBIYGMhLL73UZGJOJpO1is5bWFjI6tWrWb58+d/eMLW10Gg0nDt3jrfeeoulS5eKXheOjo739T0ll8upq6tDo9FQUlJCbW0t5eXltyQ8c33F4ty5c3z22WccPnzYIFNtamrKK6+8wr/+9S+xSvJPhImJyW0bxDVHd25tldTS0rLJKpWgGNaa4KempobCwsJGz5ubm98xWm2bXEHl5eWkp6djZ2dHhw4dWlS2MzIyIjQ0FCMjI6Kjo5ulfQgazs1NLCYmJhgbG1NeXt6IkyaRSAgICMDY2Jjz58/fsOyjUqlIS0u7L/inW7duZfXq1WRlZT0IKlqB/v374+/vf8OBUSKRYGVl1aTKhlwux87ODnd3d4OHq6tro8y3qakpzs7O2NnZNXmTGxsb4+joiJubG66urjg4ODTiXt4I7du3p0+fPrflMP1PRnJyMp988gkpKSkt/oxgdhcXF0deXh5btmzhl19+aTQ2yWQynJycuHDhAtHR0SQnJ5OTk9OisrJEIsHLy4v+/fuzdu1aNm3aRGJiIlFRUWzevJn4+PhWf9cH+H+kp6dTWFhInz598Pf3x9LSElNTU+RyORkZGU3OMw3Vc260ABAyfNcnsQDS0tJuiaYkwNHREVdXV3JzcyktLRU18hs+zMzMWrzoq6qqYsuWLXzxxRf/uKBCgFar5cSJE7z//vtiguZ+r1h069aNoKAgunTpwq5du+jUqRNFRUWtViiCa/OZsHBMSEhg0aJF7N2712CcMjMz4/XXX+fFF1/8RwcVcG1N2hb9VU0FFq1dx7m7uze5Rrl48WKrqx8lJSUkJCQ0et7Nze2WrquWoE0qFiqVirKyMhwdHXFxcWlRRkCoKCgUCvLy8pod0OVyOZaWlqhUqiYX/ZaWllhYWJCVlUVxcTE+Pj4GrxsZGSGVSikqKrph43N0dDQjRozgkUceYcWKFeJ3uL7JrjnU19ezZcsW1q1bR3x8PEZGRgQGBvLYY48xatSoFpnz6fV6oqOjWb58OZcuXbrrQYUwwQoZWeF4m8qgNjw2vV7f7ONuwcrKir59+96yN8H9BqH5e//+/Rw9evSeHMP118L1Dco3uxaa61G5GxBUTzZv3sxzzz1nUFUSFOWuh7+/Py+++CKLFy9m9erVdO3alREjRlBZWWkw4UokEmbNmsVXX30lKks9++yzPP3009jY2GBkZGRQfRUqVgKlydHRkRdffBFbW1u++OIL8vLysLW1ZcSIEYSEhIifEaqxNxs3TE1NadeuHWVlZdTX14vn4/r7sKm//9dgbW2NiYkJJSUlVFdXY2FhgU6nY/Xq1Tc0EjU1NcXMzIz09HSqq6tRKpVig3dDGo2trS2XLl0iNTUVb29v4FoWcevWraJO/K2gQ4cORERE8NVXX7Fz5058fX2xtrYWz1dpaSkmJiZYWFjcVEJUrVZz5MgR3n333XtCf2o4j1zf19TQnE74V6j8CWNGW0Kr1bJlyxa8vLx49913cXJyuq8Xz126dBF/l5CQEEpKSrCzs8PKyqrV2xIqFmlpaXz99df8/vvvjX7f6dOnM2vWrDbzSPk7QyaT3VIvy51AUFAQvr6+nD592uD5rVu3ivLDLVlP1tbWEhMTw8WLFw1es7W1xd/f/44oQkEbNm9XVVXh5eV1UxpKQ9jZ2SGTyW5o9mVqaoq3tzfx8fEkJiY24pe5uLjg6OjIpUuXSElJITw8XKxs6PV6MjIyWiTVqdPpqKysJDc3V6Q+aDQadDqd6HlgbGyMUqlsdELVajXvv/8+P/zwAxUVFeLrly9fZuvWrTz55JMsWrTophdtVVUV69ev58iRI3d80pdKpSgUChQKBXK5HBsbG3x8fPDz88PNzQ0XFxccHBywsrISs37CeyUSidhcVFtbS1lZGfn5+eIjIyODpKQkcnNzqa2tRavVotFoxMedQO/evQkODr6vJ43WIiwsjN69e3Px4sU72nQpXN8KhQKZTCZeD+3bt8fT0xNXV1ecnZ1xdXXF1tZWdE8VGsnq6uqoq6ujqqqKgoICcnNzycjIID4+nvj4eAoLC6mrqxP7oO7Wglan0/HNN98wcOBAunTpIo4LH3zwQZPvt7Cw4KmnnuKpp5666bYDAgJYvnx5k6/t3Lmz0XY//fRT8W8hqfLaa6/x2muvNbkNY2NjVq5cedPjgGvXSVpaGjqdjoqKCoqLi5t8lJSUNPq7uroarVYrBoHC4u5G/97P6NWrF0FBQaL6kY+PD3FxcURHRxMUFERUVFSjz0gkEmxtbRk2bBg7d+5k8uTJBAcHo1Kp6N69O1OnTgX+v/cpKiqKV199VZQ0PXnyJA4ODrdFKzAxMWHy5MmkpqaydOlSDh8+TKdOndDpdKSnp3P+/HkWLVrE2LFjb0jnFbwz3nnnnVYr0dwqGgbOVlZW+Pn5ERgYiL+/P97e3tjZ2WFubo65uTlSqZTa2lpqampEikZ6ejppaWmkpqZy8eJFysrKUKvVqNXqNpkvhHEgMDCQ0aNH39f9A4J5n1arxcrK6rYMfWUyGRUVFSxbtowff/yxyaBNUKcbP358q9WG/tfQVLP7vYKzszPdu3fn4MGD5Ofni8+npqby3Xff8d577+Hu7t4o2SdA/3/svXd4VOX2/v2Zkt57r6RBEgIkhB5AOgIi0lFBUYoV5eg5FvSIiuLxUBQ5UgQFC71JlRZaqOkhjTQS0kmvk8zMfv/gnf1jTAIJDIh+va8rlzhlt9n7eZ611r3uWxBEOuA333zTIqkeFhZGaGjoAwsmdRJYaLrOm5qaOlQOVigUCIJwR76Yubk5wcHBREdHk56eTn5+Pm5ubuL7Xl5eeHp6cuHCBXbt2kWnTp3w8/MDbpWA9u7dS2VlJZ06dWoXLy0/P59Vq1Zx6tQp0UjLxMSEkJAQnn76acaOHYuDg4PW4HTy5Em2bt1KdXU1lpaW2NvbY2BgQGFhIeXl5WzduhUvLy/++c9/trnwVavV/Pbbbxw8ePCBmaBJpVIMDQ0xNTXFy8tL1McPDQ3F1dVV502itbW15OXlkZycTHx8PPHx8aIpi0KhoLGxUSvDeq/Q09MTqQ9/payLRCIRpSavXLmis+1q9M011A5nZ2e6detGaGiouCCws7PTidSgSqUiOzubs2fPcuLECS5evEhxcTF1dXUPRfWqoKCAdevW4enpKWZ5NFlTpVJJcXExBgYGotzo7aivr6eqqgpjY2OthElzczN1dXUir14qlWJsbCwunG6v5CgUCurq6mhqahIpnXp6epiamooO0Bo0NTVRXV2Nvr4+xsbG1NXViSpGMpkMCwuLFt9paGigtrZWDNhkMhnW1ta4urq2i3rX2NhIRUWFGGhogg/Nv28PRsrLy7UWfVVVVQ9MVUQDqVSKhYWF2JNyOzTUxdurQW5ubnz00UesXbuWyMhILl26RGBgIBs2bKCsrIx333231THYycmJRYsWYWNjQ2RkJOnp6djb2xMUFCR+RuNEbG5uztatW7lw4QKmpqZMmjSJKVOm8NJLL2FhYaG1fTMzM1xcXO7aGyGRSPD29ubTTz+lV69e7Nq1iyNHjiCTyXBxceGFF14gNDT0jos/jRv16tWriY+Pb9f1vR/IZDJMTU1xcXFh8ODBDBs2jN69e98XvaK5uZmEhASioqI4deoU58+fp6amhvr6+vuSWlepVLz66qt88MEH91VZuhuam5vF5Bv8v6xxexesTU1NpKenExsbS/fu3fHx8aGiogILC4sOL3rr6ur49ddfOX/+fJvX7tq1ayxfvhwbG5sO9aP9FaEZmx8FSCQSRo8ezcmTJzlw4IDW77d+/XrUajVvvvkmLi4uGBgYiEqFarUapVJJfX09V65c4cMPP2xRrbC1tWXkyJFaEuY6h6ADHDt2THB1dRUcHR2F5cuXCyqV6q7fUalUwty5cwVjY2PBy8tLqKioaPVztbW1wnfffSfo6ekJXbp0EXbt2qX1vlKpFJYuXSpYWVkJgBAaGiq88cYbwsKFC4Vu3boJenp6AiDMmzdPqK6ubvN4zpw5IwBafxKJRJDJZIJUKhUAQV9fX5g3b56QmZkpqNVq8bsLFiwQzMzMBAMDA2Hz5s2CQqEQVCqVcObMGaFbt26CRCIRAgMDhRs3brS5//z8fOHFF19scQy6+JPJZIKVlZUQFhYmvPPOO8KlS5eEhoaGu/5GDwINDQ1CQkKCsHbtWuH5558XunXrJri5uQlWVlbib9XRv5CQEOHgwYN/yPk8aCiVSmH+/PmCiYnJfd0DBgYGgrW1teDm5ib06dNHeOONN4Tt27cLWVlZQlNT00M7n/z8fGH9+vXC0KFDBUdHR0Eulz+Qe/72P1NTU+H8+fOCUqkUj0OtVgtZWVmCs7OzMGLECKGxsbHFdf/pp58Ed3d3YdGiReI1amhoEM6cOSO8+OKLQufOnQUnJychICBAmDt3rhAbGys0NTWJY4NSqRT27t0rTJo0SQgKChKcnZ0FNzc3YeDAgcKaNWuEqqoqrX1evnxZGDlypPDee+8J586dE1577TUhMDBQcHZ2Frp06SLs3btX67mtqKgQli9fLvTt21fw9vYWnJ2dhaCgIGHKlCnC4cOHdf7bqdVqQalUCuXl5cKZM2eEkJAQnf1Gtra2Qnl5uc6PWRAEIS8v76Hf5w8barVaaGhoEH788UdBX1//gT5PUqlUsLW1FSIiIoRvv/1WKCoqeiDnpFQqhezsbGHZsmXC4MGDBVtb24cyXrT37/XXX28xp58+fVqoqqoS1Gq1oFarhaKiIuHbb79t9zmfOXNGmDlzptClSxdh06ZNQn5+vvDaa68JZ8+eveP3Kioq7vq7S6VSQV9fX5DJZC3emzBhghAbG6s1Rj5s/Pbbb4KxsbHWcZmbmwv//Oc/db6vxx57rMU16NKli5Cenn7f2/b392+xbW9v73va1i+//CIEBQWJa9Db/5ycnIQ5c+YI3333nXD48GEhMjJS2Ldvn7B8+XJh/Pjxra4ZTExMhLlz5wo5OTn3fZ53gk7CU03TdmRkJNHR0RQVFd21CSYvL4+LFy/S0NBAjx492oyUTUxM6NGjBwMGDMDCwqKFso5GQefixYscOHCA6OhooqOjxfclEgkeHh48++yz7VbUMDAwwN7eHnt7eywsLGhsbBRpPps2bcLPz4/Zs2eLWcz09HTxPIYNGyZmz/r06cOXX37JmDFjuHnzJidPnuTpp59usT+1Ws3ly5e1nBF1AY3hU2BgIFOmTGHixIm4urrqdB8dhaGhIcHBwQQHB/Piiy+iUChISkri7NmznDx5ktTUVKqqqqiurm7VIOb3kEql9O7dW+Sm3w319fVio61EIsHKygoHBweUSiU3b96ksrISQRAwMjLCzs4OExMTmpubKS8vp6amRqywaBrADQwMaG5uFrPwgiBgbW2tM710mUzGk08+yenTp7l69WqHvmtgYIClpSW2trZ07tyZgQMHipWdP8os0tnZmdmzZzN16lT27t3Ld999R2xsrHjdHwRqa2vZvn07Xbp0EZ9ZiUSCjY0N48aN4+DBg1y6dIkBAwaI3yktLSU6OhorKyvCwsLQ09MTNeA/+eQTGhsbGTt2LE5OTmRkZHDw4EESEhLYsGEDfn5+SCQSVCoVv/32G0VFRYwePRpnZ2fKysr47bffWLp0KXK5nOeff77F8UZHR5OcnIxcLhfHi9jYWLEnTYPVq1ezZMkSxo4dy9SpU1GpVGRmZpKTk/NAsrIaAQ0rKytcXV3/NIajs2fPJj09ndOnT2tVu/9KEASBa9eusXjx4nZRf+8Vpqam+Pv78+KLL/LMM888UOqITCbD09OTN954g+eee479+/fzww8/EBcXR3l5+SPpHP7DDz8wbtw4hg0bRllZGd988w2FhYXMnTu3Xd+Pj4+nW7du4vrJ2dlZpI7dDwwNDenUqROdOnUiOzubq1eval2/PXv2iPTMe3X6/hu6x5NPPklRURH/+9//yMrK0qryFxYWsnbt2jYpubdDI1ozbtw4Xn311XtyFu8IdBJYODk50atXL06fPs2pU6fYvHkzM2fOFMvUt6OpqYmioiKWLVtGVlYWUqmUESNG3JGG4+vry7p167C3t29Vlz4kJIT58+ejVCqJiYmhtrZWXBw6OTnx9ttv061bt3aV+fT19enbty9vv/02gwYNwtDQEJVKRUJCAsuXL2fPnj0cOXKEwYMH061bN+CW9rRSqcTNzU1rHzKZTKSYJCQkEBMT02pgUVVVxYULF1rt3L9XyGQynJycGD9+PPPnz6dLly4627YuYWBgQGhoKKGhobz22muiA+3p06eJiYmhtLRUNLhqDfb29oSHh7dbzeHkyZN8++23SKVS8d6bN28eVVVVbN++nRMnTqBUKrG2tmby5Mk8/vjjZGRk8Msvv5CVlUV+fj4FBQVMmjSJ+fPn4+zsTHR0NDt27OD69esolUr8/f156623sLa21gk1a8CAAXTv3p3MzMy7Ug319PSwsbHB0dGRgIAAhgwZwsCBA+nUqdMjNVmYmJgwffp0hg8fzsqVK9m2bRsZGRkPbLGwY8cO5s6dK9KV4Fb/1qRJk9i9ezd79uyhb9++yGQyBEEgMzOTCxcuEBgYKJaMy8rK2LJlC83NzXzxxRcMGDBA3NayZctYsmQJe/fu5ZVXXsHExAQ9PT0+/vhjjI2NRRqPSqVi4MCBzJo1i6ioKJ577rkW90hUVBQLFy7kpZdeEr0bNEHX7Z89deoUJiYmfPXVV6KCiPD/U7wexUXX33gwEASBmpoali9fTnp6+gPbj5OTExMmTGDhwoVi4/rDgqWlJTNmzGDYsGFs2bKFjRs3igm9RwkLFy7kiy++QCqVsn//fvT09Fi1alW7v68ZfzTjSkVFxX1RdGQyGXZ2dgwYMIB58+YRHh7O9u3b+eSTT8jOztZqoP/uu+9wcHBgzpw5j7ws7/8VGBgYMG/ePCwsLNiwYQPx8fHi+rY9kEgkGBsb4+HhwRNPPMHcuXMfeFABOgos7O3tGTJkCPv37ycxMZGVK1eSl5fHqFGjcHJywsDAAEEQaGxs5MaNG2zfvp39+/dTXV1NWFiYqJrUFkxMTFqoPf0eQ4cOxdfXl1OnTpGWloZKpcLd3Z2hQ4e26n/RFjw8PJgzZw4jR44UX5PJZHTv3p358+dz/fp1kpKStBpqNPw3jRv47dDX1ycsLIzLly9z/fr1VveZmprKxYsX74tDejtkMhmdOnVi3rx5vPjiix0yCfsjoZHi9PT0ZMaMGRQVFXHy5ElOnTpFQkIChYWFlJaWai2uQ0ND6dGjR7sXzWfPnqVr1648++yzWo1xhoaG9O3blx49eiAIghhAjh49mosXL6JQKFi8eDHl5eVs3LiRIUOG4OLiQmNjI8uXLyckJET0rVi4cCERERGMHDlSJ4OzoaEhTz31FFFRUW3Kp1paWuLs7Iyvry/Dhg0Tn4dHKZhoDba2tnz88ceEh4fz8ccfExMTo7Pn4Hbk5uZy7Ngx3N3dxd4DuVxOly5dCA4O5tSpUxQWFuLq6kpTUxOpqank5+fz5JNP4uLiAtwSY0hNTcXOzo6ioiIiIyPF7Wua3y9evMicOXNEoQZTU1Ox16q+vh6lUklWVhYGBgZUVVUhCEKLe6RLly5ERERoGcK1dh917dqVCxcu8MsvvzBw4ECcnJywtbV9ZHjCf+PhQK1Wc+XKFbZs2fLA9uHr68vLL7/Myy+//Ifx8CUSCQ4ODsybN49u3brxzTffcOLEiT9cIr6qqkqsEtna2jJ9+nQ++OADnJycWLFiBQqFot1zsKenJwkJCeIapri4GBMTk7saLLYGiUSCm5sbr732GjNmzBC3MX78eEpKSlixYgVFRUXi5xsbG/nqq6+wt7dn2rRpmJmZ/R1cPAIwNDRk5syZODg4sGjRIuLj48U5UjPWayoZmnnI0NBQZFV069aNiRMn0r9//4dWZdbJCCGRSAgNDeWll17iiy++4Pr163zzzTds3rwZNzc3rK2txcay3NxcGhoakEgk+Pv78+GHH7ZLOqs90FCe7gcODg5tNrX4+/vj6urKxYsXW9UGb+0cZDIZrq6uouHN76FWq8nMzNSZfr1EIsHV1ZVXXnmFuXPn/mlce6urq2loaBAzJZqmxaeffpopU6aQl5fHiRMniIyMJDk5mRs3bqBQKOjZs6fYrN8eTJkyhVWrVrFp0yb8/f0JCwvD1taWkpISdu/eTU1NDXp6eiQlJeHm5oZarcbS0pLm5mZiY2NpbGzEzMxMpORVVFRw/fp1amtrSUlJQSKR0K1bN50rjzz22GMEBQVx48YNcRKTSqW4uLjQqVMnwsPDGTlyJL1799YaPGpra8nIyKC8vFxU/tJIF+bk5IgKRe25T9RqNfn5+WRnZwO3grq2lM5u3LhBbW0t7u7u7aJLjB07Fnt7exYuXEhUVNQDoUXt37+fGTNmaDU1m5ubM2nSJD755BMOHz7MCy+8QGFhIefPn8fFxYXevXuLz3VxcTFlZWWkpaWRnJzc4jfWKKhpmsMVCgUnTpxgz5494v2qVCqprq6msLCQbt26tXqeGn+Uu2HOnDlkZ2ezYsUKfvnlF7E61blzZ1xcXP5eFNwBKpWK5ORkCgsLRTW8xsZGMjIyqK+vx8/Pj7y8PEpKSlCr1Zibm+Pu7o69vX2L3/3mzZtcv35dpOeYmZnh6emJo6MjEokEhULBuXPncHV1xd/fH0EQKCkpITo6GkdHR7p27YpcLqe0tJSMjAwcHR3x9PRs1++nqVYsW7bsgWXvg4OD+fe//8348ePvO1HR2NgoSinf6/1pYGDAwIEDcXFx4X//+x8///yz1gL5YePEiRNaSUMNU6G0tJSdO3diYmLCnDlz2rWtfv36UV5ezuXLl7l8+TKOjo4899xzd02stgaZTEZoaCgLFizQutZWVlZMnz6dkpISNm7cqEWbvHnzJv/5z3+ws7Nj1KhRfxq6418ZSqWS5ORk9u3bR1ZWlhhUuLu7Ex4ejkwmo76+HkEQMDU1xczMDCcnJzFp5ufn99CTATrbm6WlJRMnTkQqlfLTTz+RmppKWVlZC164XC7H2dmZzp07M3/+fIYMGfJILH6lUin6+vrI5fI2HyaN3OrtVAOVSnXHRZBUKsXExERcaPwe1dXVpKena1VA7gfm5uZMnjyZF1544ZG4ru3FxYsXKSkpYdq0aS0mHD09Pby9vfH29mbatGkkJiZy/PhxSktLGThwYId4vp6ennz99ddcvHiRrVu3cvToUTZs2EBKSgrnzp1jy5YtyOVyvvrqK9FUqXPnzkRGRrJnzx68vLwYNGgQAQEBwK1JzsLCgtmzZzN69GgMDQ2prq7G2NhYpws7zQL48uXLVFZW4unpSefOnRk+fDiPP/54q70zKpWK+Ph4/ve//2FgYEBgYCAWFhZiYJGSkoJMJsPGxqZd94pKpSI9PZ1t27Zx+fJltmzZ0mZQd/ToUVJSUpg3b167J8Xw8HD+85//8PLLLxMbG9uu73QE58+f5+bNm+LiH25VGTX9W0eOHGHKlCnk5ORw5coVevbsqdW7o5GBfOyxxxg7dmyrWcjbZUdjYmKYP38+1tbWPPvsswQGBmJtbU1WVhbvv/9+m8epkbW+G3x9fVm7di27du3i2LFjHDx4kK1btzJu3DjmzZuHr69vRy/R/wkIgkBsbCzvvfceN2/e5N1338XHx0fkxMfExDBr1iyOHTvG9evXUSgUGBsbM3z4cGbNmqXlzpuTk8PWrVs5fPgwZWVlqNVqjIyMiIiIYPbs2XTu3JmqqirmzZvHqFGj+Oqrr1AoFBw9epSZM2fy+OOPs27dOhwcHLhw4QJLly5lxowZzJs3r93nc/LkSX777bcHcakIDAzks88+Y8SIETqpfmpU4QYNGnTfCUUfHx9ef/11TExMREPZPwJ1dXUt5MAdHR1xdHSkurq6QxVYMzMzpk2bxpgxY6ivr8fc3FxUe7sXtCVH6ubmxvPPP09paSm7d+/W8jvJzMxk6dKl2NjY0KdPnz/VOuKvBkEQuHr1KosXL+bQoUNi8iAgIIBXX32VZ555BlNT00cuiaTTMMbW1pZnn32W0NBQjh07xtWrVykrKxMX1IaGhtjZ2RESEsKoUaPw9vZ+ZMr2+vr62NraUllZSVZWVqtNftevX6e4uBiJREJZWRkNDQ3U1dWJkoutSadqOM9AqwNzYWEhaWlpOsnQymQygoKCmDdvHkZGRtTV1ZGWlkZubi6CIGBnZ0eXLl2wtrZGpVKRm5tLeno6tbW1yGQywsPDcXR0RK1Wk5yczPXr12lqakJfX59hw4aJ/SZFRUXEx8ejUCiwtrYmKCgIKysrrl27RlVVFeHh4QCkpaXR2NiIl5cXaWlpqNVqamtrqaysxNnZmZCQECQSCdHR0fz000+ifKGhoSHDhw9v9WExMTGhd+/ehIeH31OT4okTJ2hubkYmk+Hr60tiYiISiQQTExPMzMw4efIkzc3NpKWlibz1mpoa1Go1nTp1IigoCKVSSVlZGUZGRlhZWTFy5EjOnDlDfX29GFhMnDixhdDA/WLkyJGcPn0aPT09hgwZwmOPPaZl/PZ7NDQ0kJycjJGREatWrWoxQYwaNapD+9fs18vLq9Wm49+jo4OdRCKhZ8+eLF68mJdeeom8vLwOff9uqKys5Pz583h4eIgZHIlEgr29PaNGjeLAgQNERUWRmZlJXV0dvXr10jKmsrCwwNTUFBsbGwYOHHhHM0ZBENixYwdlZWV88MEHzJ49W3y9ubm51STDvcDa2prZs2czbdo0zp49y7Zt2/j555/R09Pj888/18k+/gq4/V6Mj4/nww8/5ObNm7z33ntMmDBB67MpKSls2rSJsLAwxo0bh0Kh4NChQ2zevBl7e3teeOEFjIyMqK6uZt26dWzbto0+ffowbdo0jIyMSExM5JdffqG4uJivv/4afX19/Pz8SE9PRxAEqqurycjIwNramrq6OrKysrC3t6ekpASpVNpuk1m4RcNZtmzZA5Fu9vHxYdGiRQwdOlRnGc9du3Zx9uxZvLy8WnUW7ijc3d2ZN28eKpWK9evXPzTvjtvRWt/k/UAikYhu6wDHjx/H19dX5+avgYGBzJ07VxSWuZ1ifOnSJf773//y6aef0qVLl0fa++OvjLKyMtauXcvRo0fFoMLa2pq33nqLqVOnPjK+G7+HzusjhoaGYjNuXV0dZWVl1NbWigpFGiWdRy3CMjc3JzAwkCtXrrBt2zbs7Ozw9vbG0NCQ5uZm8vPz2bVrF1evXkWpVLJr1y7MzMyorKyktLQUuKWZ//sBXqVScePGDWQyGZaWli32W1ZWprNMi5mZGePGjRMzxHV1dSQkJJCcnIxSqaSxsZHhw4czfvx4MjMz2bVrF4WFhejr66NWq/Hy8sLBwUG8BhrnVEEQGDRoEAYGBlRUVLB+/XrKy8sxMDBArVaTnp7OpEmTOH78OElJSWJgcezYMUpKSpgxYwZr165FpVLh6elJWVkZBQUFLFq0CFdXV1JTU0lJScHc3JwrV65gZmbGsGHD7niPaDw57oTY2FgSExNpbGxk5MiRuLq6olKpiI6OFvXx33zzTeRyOUFBQYwfP574+HicnJwYPXo0ZmZm1NfXi4FZVVUVFy9epLCwkIKCAp566ilsbGx47rnnOHjwICkpKTQ2NuqM2vd72Nra8sEHH2BnZ3dHKoFaraa0tJTjx49z/vx5SktL2bNnD56ennTv3p36+nqSk5PJysrCz8+P4OBgsUpXV1cnKrup1Wo6d+5MYGDgXRcWjY2NXLt2jZSUFAwNDcnJyRHfq6mpISEhgRs3btDc3Cya/7RmpimXyxkyZAjz5s3jk08+0Tm949ixY0ycOFHrfMzNzRk+fDh79+7l559/RhAEPD096devn9Z3fXx88PLyIiYmhtTU1BYqTY2NjaLBINxa9MlkMq2qTl1dHYmJifddoRQEgbq6OkxMTMTAePjw4bi6unL06FHi4uLua/t/NWh+k/j4eD766COKi4tZtGgR48ePb/FZQRDo3r07H330kehM6+rqyvvvv09iYiKlpaW4u7sTHR3N/v37CQkJYdGiRaJAQlNTEzKZjK+//poJEyYwfPhwunTpwqFDh6iurqa6upq8vDxCQkIwMDAgMzOTHj16UFRUhJGREY6Oju0+r+PHj7dw59UFrK2tWbBgAWPGjLmjIV9HUVFRgaen5x0TIh2Fs7Mzs2bN4ubNm2zduvWBmom2B9XV1dy4cQO1Wo2rq2ur8/7taGxsvKND+v79+5kwYYLOAwu4pVz50ksvUVFRwZUrV7TWL/v37xd5/a6uro98v95fEefOneP06dOiaTPcEnMZMWLEIxtUwAMILG6HiYnJfVukC4IgGkvdbj6la9jb2zNixAjOnj3L9u3bKS0tpUePHpibm9PQ0EBKSgrHjx+nuLiYsLAwUlJSWLx4MfX19RQWFmJiYsK1a9dITU3F2toauVyOIAiUlZVx+vRpUe7t96ioqBApN/cLjXymBvr6+ri5uaGnp4dKpRLleJ944gkiIyMpKCjg+eefp2vXrtTX14tGK5s2bcLe3p6XX34ZW1tbqqqqMDU1Ra1Wk5aWxvHjx9m0aRMuLi5ERkayefNmunfvfsdj0/DtNco806ZNIz09HT8/P1544QXi4+Px8PDgzTff1NkAdvDgQZYvX05ZWRn79+/HycmJSZMmMWnSpFavXWtZ+JycHGJjYwkJCeG5555DEAS+/fZbCgsLqa6uxsbGBktLS6ZPn66TY74b2isX3NDQQG5uriihm5mZibGxMSqVSlRm+/nnn+nZsyeenp4YGRkhCAKHDx8mJSVFNNo5fvw477zzDl5eXm0+e4IgkJGRwQ8//IBSqcTBwYFr166JfQJxcXHs3bsXiUSCoaEhVVVVBAUFtRpYwK3kxDPPPMPp06c5cuTIvV2oNnDp0qUWikl6enr4+voSEhLC8ePHcXR0FJW0boe3tzcjR45kxYoVbNy4kcrKSlxcXFAqlVRWVnLt2jUmTJgg8uN79uzJL7/8wt69e8UgPDExka1bt973uKhWq1m9ejUuLi44OjpiYmJCfX09ly9fRhCEDvUd/V+AiYkJqamprFmzhuzsbLFnoDU4ODjQt29fMaiAW4tXJycnKioqxEXgpUuXKC4u5rXXXsPFxUUct/T19Zk+fTqrVq1i3759PP744wQHB7Nz506ys7NRqVTk5eURGhpKXl4eWVlZlJeXU1BQgKOjI05OTu06J4VCwYYNG3RerdDT02Pq1KlMnDhR54sXKysr0VhSl/D19eWFF14gLy+PY8eOPXDjxrZw48YNdu7cSUlJCYIgYG5uztSpU/H09GzzO0lJSezZs6fNAO7SpUuMHj36gRyvVCpl2LBhlJeX8/nnn5OamiqyJwRBEKt0//jHP7C0tHzkEsJ/dcTGxrZIPHfv3v2+548HjUfeZjE/P5+NGzfi4ODA8OHD7/iAtoajR4+SmpqKv78/gwYNapMvaG5uzqhRo7hw4QL79+9n+/bt7Ny5E7lcLnKr5XI5ffv25bXXXiMpKYnNmzdTVFSEm5sbI0aMYNu2bXz55ZdMmzYNd3d3FAoFR44cISYmBmtr6xYZUEEQqKys1En5ViaT4e7ujo+PD3CrUnLt2jX27duHh4eH6IyuoWsVFRVhZ2eHu7s7UqlUiy+emZnJyJEjRS66JuOioUFpmhPhlgShubm5VnCkUbpRKpVa/NKuXbtia2sr8vrv1031YcDExARHR0dSU1NFx8usrCx69eqltfB4lCCVSvH09GTu3LkYGxuTm5vLu+++K75vZGTEhAkTSEtL05ooamtr2bx5s0iZU6vVbN++nZiYGDw8PNosh2vccgsKCvjiiy8wNzdn2bJlFBYWArey9AqFgsDAQPr27Yujo6OWItfvoaEnzZkzh4sXL1JZWambCwNkZ2dTUVGBkZGR1rlr3Ej3798vutD+fqzQ19cXqTH79u3j66+/FgMyjS/K8OHDxft/1KhRHDt2jP3795OSkoKenh5SqZSAgACdNEVGRkZSXFyMsbGxuL2amhpGjhx53yIWfzU0NDSwfPlyTpw4wdChQ7VU/34PExOTFot7PT099PT0aG5uFhfyJSUlNDQ04OLi0qJ66u3tjUQiITMzU1QfU6lUpKamYm5uLioiNjY2cv36dXJzcykpKcHHx6fdFKHY2FguXLig80V67969eeGFF1p1o79fDBw4kHXr1pGeno6Xl5dOqyE9evRg+vTpZGZmPlDZ3Tthy5YtFBUVifL20dHRbNiwgcWLF7f5naysLK5cucLgwYNbff9BN94aGBgwfvx4bt68yYoVK7QoqAqFgtWrV4tqXHp6en8HFw8RVVVVLSTm8/PzxXXco/pbPPKBRV5eHh988AFdu3bF19e3w4HFkSNH+P7774mIiCA8PLzNwEIqleLj48M///lP3NzcOHv2LDk5OdTW1mJkZISbmxs9e/Zk8uTJ9O/fnz59+uDn50dOTg7u7u7079+foqIiDh48SGpqKi4uLigUCtFOPTQ0lIiICK19qlQq6urq7tv8Bm5NfP7+/uIgpFQqSUtLIy8vjw8//JCamhoteoStrS3p6ekUFBRgaWkp0jg0VY6kpCT69++Pvr6+eA2kUikODg7U1taSm5uLk5MTxcXF1NTU4OzsTGlpKQ0NDVRUVCCVSrlx44ZWNk1PT09cnP7+gTAwMKC6uvq+r4OuYWtry/Dhw7lw4QLV1dVIJBIGDRpE7969tfj3f1bc3ttTW1tLaWmp+IxJpVLmzJlzx2oF3AosqqqqMDY2FisqTk5OIiUhNDSU2tpasrKy2L17N+7u7owZM+aOCyh9fX169+7NoEGD2LNnz/2f6P+PxsZGUlNTW/ieGBsb4+fnh4mJCR4eHvTu3bvV7zs6OjJz5ky6d+/O1atXKS8vRy6XY2lpSadOnfDy8hIrq25ubnz88cecPn2a8vJyDA0N8ff3Jzg4mOTkZPF+0sDZ2ZlnnnkGAwODu6pCSaVS/vWvf5GWlkZZWRlKpRJTU1OcnJwICwtrtTr6fxnFxcV06tSJIUOGkJCQwO7du5k2bVqrn5XL5XelWd6O1vrjbv9dpVIp9vb22NjYcPXqVbHBv2fPnty4cYPjx4+TmJhIfX09zs7O7Qo6BUFg06ZNd6TQ3AssLS2ZPXs2fn5+D4RX369fPxISEti1axclJSX4+flhZmbWokotl8sJDAzs0LZvN8stKir6Q+aTEydOsHTpUgIDA5FIJPTv35+nnnrqjoGFp6cns2fPbrWSDrd6N3Xdr/d7mJubM2PGDEpKSli/fr2WhG9lZSVffvklLi4uLfqR/saDhampKQYGBlrBxZEjR/Dy8hL7HS0sLB65gE8ngcX169c5fvz4fW1jxowZOs1eaGBpaSlKC96tZKyvr0+PHj1wdXVl1KhR5OXlUVdXh76+Pk5OTgQFBYnUIg2d53bjqgULFlBdXc3p06e5du0acGsxPXDgQBYsWNCCO6tUKnXGIZfL5Vrb1xjkyeVyvvnmG/T19SkvLxcXfhEREZSWlvLDDz+IyhMTJkwgICCAGTNmsGvXLlasWCFyyF977TXMzc3x9/enf//+rF69GhMTE2prawkNDcXf35+GhgaioqJYunQptra2FBQUtDsQ7NevH5s2beKzzz7Dzs6u3fJ8DxoSiQRfX9//Ewo7pqam2Nvb06VLF1HHvLi4GCsrqzsOWnp6elhYWFBXV8eNGzewsLCguLhYDJjlcjnDhg2jpqaG06dP8+OPPxISEnLHwELjij5x4kQOHDigU2pDXFwcgwcP1jqnxsZG8vLyMDIyolevXjg4OLT5fXNzc/r370///v1bvPfDDz/QrVs3goKCkMlkdO7cmc6dO7f4XGviEM7OzlqUusjISExMTAgKCmqx2JRIJERERLRIVvyN1mFgYMAbb7yBtbU1b775JkuXLsXFxaXN69eeSdrR0REjIyMKCgpobGzUog1lZmYiCIIYlBsYGODr60tKSgr19fV4eHjg6uqKm5ubKGUtkUjaLROcnZ39QCg/o0aNIiIiolUKlFqtJjc3l5qaGlHEAuiQAMvBgwe5evWqaILq6uraqqqNtbU1mzdv7vDx29nZMWXKFC5duvRAek/uBn19fSorK1Gr1chkMsrKyu4apPr7+9/RtGzUqFHtpsDeDzTmeCUlJWzfvl0raM3Ly2PJkiU4OTnRt2/fB34sf+MWunTpgoODg1bfUG5urlh9dXd3x8zMrM1nUNOLamxsjLW1Na6urqIQwINU+9JJYJGamnrHiLw9mDBhwgMJLMzMzJDJZBQXF7eLdiOVSkWpuPbg9gGxf//+fPTRR5w9e1Zs+PXy8qJfv36tZkCbm5vv6qTcXkgkEq3Fh1wup3v37jz//POUlJRga2tLjx49sLGxQSKREBAQwOTJk7l69Sq1tbXo6elhbm6OVCqlX79+GBkZkZmZSVNTE0ZGRmKzsLW1tUhRaWhowNbWltDQUMzMzETjuZycHCwsLMTFo729fQuZxhkzZuDi4iLe3IMHD0apVFJfX3/XZre/cX9ISEjgzJkznDp1SpRBHjZsGN27dxd7G5YsWSL6ibzxxhtYWVnR2NjI5s2buXbtGrm5uaxbt45u3boxYsQIunbtSnR0NEuXLsXZ2ZmcnByRKhYfH8+pU6dQKBQ0Nzfj6enZrgycoaEh3bt3JzAwUKfNyBkZGVr/r/EV2L17N46OjowaNeqesz979uzByMiIzp0733fG19zcvFXTzb/RcRgZGeHv74+bmxsffPABL7/8Mp988gkrV65sNfBrD3r37o2zszNHjhwhIiJCq3l7y5YtqNVqkRuvCSz27NmDoaGh6F1hZ2eHmZkZSUlJWFlZiWaMd8Phw4cpKirSqd+Li4sLkydPxtnZucX9LwgCp06dEhXHVq5cSXJyMsnJyW1WflqDxkl64MCBd/zc/VAFQ0NDGTBgAGlpaQ+9kXvChAl8//33HDt2DJlMRnZ2NjNmzLjjd26XAAeor6+noKCAqqoq7Ozs6Nq160OTfPX29ub111+npKSEY8eOaanXxcXFsXjxYlauXIm/v3+7tqdWq2lqaqKhoUHrr7GxscVr0dHRLZK/TU1NJCYm8tNPP2FkZCT+GRoatvr/hoaGf5iB44OAJoGVn5+v5Z1WWlrKsWPH7vp9jWeMoaEh5ubm2Nvb4+7uTvfu3RkxYoQoIKFr6OQXqK+vb9NV+k6QSqXY2tp2SF6vo9AMvHV1dQ/EdOt2yGQy+vfvT/fu3amoqEAQBGxsbNpsgNM0yOoCGp737bC2tm6TSyyXy9vMpmpoKK0FQzKZDA8Pj1YzLBYWFgwcOLDVSWPEiBFa/z9kyBCt/7e0tGyzFPw37g3GxsYMHTq0BV3CwsICHx8fZs2ahSAIGBsbi70vI0eOxMnJifz8fJqbmzE3NxczbjKZDG9vb2xsbAgKChIrHAYGBuL20tPTMTIyok+fPlhaWopVCY0alVwux8fHp10ZOIlEgq2tLREREToNLG7cuIEgCNTX13PgwAHUajXnzp0jLi6Op59+usMUjAeFtow6/8b9ISIignfffZe3336bzz77jP/85z93rFC1hW7dujF+/Hh+/vlnlixZwoABAzAyMuLq1av8+OOPjBgxgqFDhwK3AouAgABycnKwtbUVF+O2traYmZlx+vRpRo4c2a7AQqVSaWna6wrDhg2jW7durS401Go1a9asoX///vz4449IpVLq6+v59ddfOxRYTJ48+Y79LRrcz+LQyMiIJ554gmPHjhEfH3/P27kXjB07FkNDQ7KyslCr1QwdOrRDst43btxgx44dJCYmIpPJUCqVPPbYYzz++ON37EvTJbp27co///lPSktLiY6OFhOyarWakydPsmTJEr744ot2PTNJSUls376da9euiT2ebf1VV1e3WMMoFAqioqLIyMhAX18fPT099PX1xb/f//9TTz3FyJEjH2nFpI7AxcWFuXPnolar2bt3r5aZYXugSRwqFAqqqqrIy8sjJiaGU6dOcerUKaZNm8a4ceN0Iv18O3QSWAQHB7Ns2bI7fqa5uZmamhry8vK4dOkSGRkZeHh4sHDhQgICAh7YjZCdnY1CocDQ0PChcdDaq4alyQjrAiqVSpS9fZgoLCzkp59+oqSkhMmTJ2NnZ8f+/ftJTEzE0tKSkSNH0qtXL+RyOadPn+bo0aOUlpbi4eHBpEmT8PX1bTGJaKRdr1y5QkJCArm5uVRWVorOks7OznTr1o3w8PD7fiAUCgVnz57lhx9+QK1W4+/vz6xZs1qlqmiQk5NDVFQUiYmJovqHpaUlAQEBDB069I6Nzg8TBgYGdOnSpcXrbQWGGvTp06fV1zU+Fm0hODhYy1BOAzMzs3tyjoVbWfs+ffqwatUqnTWp5ufnA7d6SpYvX059fT16enpMmDCBZ599tkMZnPz8fLZv305OTg7e3t5asoD5+fn88MMPFBcXY25uzujRo+nTpw/19fVcunSJQ4cOUVdXh62tLaNHjxZlmvPz8zly5AiXL19m2LBhDBs2TKzwnDlzhuLiYkpLS0lNTUWlUvHpp59iampKdnY2v/zyC2VlZdjY2DB69GhCQ0N1cs3+SpDJZIwfP56CggKWLVuGk5MTH3zwQYe3Y2ZmxqxZszA2NubgwYPExMQgCAJ6enqMGTOGF198UeyV0dfXx9fXl+bmZhoaGsTg1c7OTqQ6ODg4tGs8y8zMJCUlRadqUFZWVgwfPrxNRSpBELh27RrLli3jxx9/FD2HOhrcPAxKD9wKysPDw8nIyNDK9D5oWFlZ0b9/f9RqNc3NzQwYMKBDIh9RUVHk5OQwbNgwbGxsyM/PJzIyEn9/f3r27PkAj/z/QSKR0KdPH9577z3efPNNsrKyxKRsU1MTe/bswcHBgQ8++KBVk9DbcePGDfHZuBdoBG7aK+DRqVMnBg8e/JcJLDSBlqmpqc483wRBoLy8nJMnT5Kbm0tDQwPTpk27a19fR6CTwMLT05MXX3zxjp/RlMQ0Gs+acuGVK1eYMmWKzstXKpWK48ePExkZSX19vVh6fpQgl8t1VoZqbm4W+zoeJjQ9JUlJSZiamqJUKtm4cSMlJSUYGhpy4cIF3n//fWpqavj666+Jjo6mvr4eCwsLoqOj+frrr3FzcxODvubmZg4fPsx3331HTk4OJSUlVFVVoVAoEAQBfX19TE1NcXR0ZMCAAbzwwgv3nNltamri5MmTvP/++8THxxMQEMDYsWPbbMpuaGjgwIED/PTTTyQlJVFaWipWwgwNDbGxsWHLli3Mnj2byZMnPzLmjw8aFRUV7Nu3j4SEBJ555hm6deums20bGBiI/ioalan7hSawMDc354MPPkCpVGJmZkanTp3aTUWBW2Paxo0bqampISIiQvSsUSqVCILA559/Tq9evQgNDaWwsJA1a9bg4uJCc3MzR44cEftZBEHQuufMzc0JDQ0lMjKSjIwMrQpgTk4OP/zwA1OnTmXkyJHU1dVhYGBAbW0tK1eupE+fPvTs2ZPs7Gw2btyIo6Njh87pz4wrV66wd+9eCgsLGTx4MKNHj8bKyooPP/yQ2tpaoqKiiIyMRKVS8fTTTzN79mwCAwNpbm5m9erVPPXUU8ybN48pU6a0oHq4ubnxzjvvAIhB+datW3FycmLq1KkMHDiQ0tJSVCoV5ubmeHl54erqKo5rUqmUzp07s2PHDiwsLETxACsrK2bNmkXfvn3x9fVtF+UlMjKyw5nLu6Ffv34EBwe3uX+JRIKdnZ2o/ldZWcnZs2cf2XvLxMSEIUOGcOzYMbKzsx/afq9evcry5cvR19dHKpVy6NAhFi5c2O4A/+bNm3h6ejJhwgT09fVpaGjg4sWLWgmLhwG5XM7w4cN57733ePvtt7l586b4Xk1NDT/++CP29vYsWLDgkVtX/RWg8dvaunUrFy5cEJOruoRarebatWt88803uLu7M2rUKJ2tWXRyR8jl8rtGrhrY2tqKg+61a9fYuXMnAwcOZMqUKUgkEr744gutm1izmCgoKGD16tXs27fvrvtobm6mpKSElJQU0tPTUavVDB8+vEOLeJVKRU1NDeXl5a06arcFHx+fdv84mkWyRCK5b5qWUqkkKyuLgoKCFoo3DwNlZWXs3r0bS0tLBgwYQFlZGRcvXiQqKopvv/2W0tJSFAoFEydOJCUlhdjYWI4cOcKJEyeYOnWqVoObQqFg//79SKVSvL29RYlSQRDIzMwkNjaWpKQkcnNz0dPTw9bWtsPmQc3NzZw4cYJ//etfXL16lS5durB48WKGDh3aarWpqamJbdu2sWLFCpKTkzEzM6N37974+PgglUrJzs7mzJkzREZGcv36ddRqNTNmzPg/wY9XKBRcvXqVyMjIFpS3+4VEIhGpW7oKLKqrq6mvr8fMzKxdtIy2UFlZycWLF3nxxRcZOXIkCoWCFStWIJFIKC4uZseOHeTk5GBmZkZNTQ0lJSVkZmbi7++PkZERMTExODs706dPH61n1szMjJCQEC2H8Nthamoq+mwolUrkcjkZGRls27aN69evY2JiQkVFBc3NzVy/fv2RXfzpErW1tezZswe5XM60adNwc3MTefp9+/alvLycqVOn8vzzz+Pk5ISPjw+2traMGTOGhoYGMjIycHBwaLOyZm5uTq9evbReCwsLw9jYGDs7u7tm4jVuymPHjtV6XU9Pj4CAAAICAqioqCA+Ph4bG5s2K6aCIHD06FGdqkFJpVIGDx6Mh4dHm1V9iUTCvHnz+Pzzz0lLS2P69OlYWVnxyiuv3PN+1Wr1Hee9+636RkRE4OLiQk5OzgOnQWuwbt06MZkgl8uJi4vjq6++4ocffmjX9zt16kRGRga5ubm4uLiQlJSEk5OTzqkq7YGhoSFPPfUURUVFLF68WOwHFQSB4uJi1q1bh6Ojo86dx/+vo76+nl27drFu3Tri4+Oprq4W718rKyt69uxJYGAgdnZ2mJiYtLrG0FDjGxsbqaysJD8/n6tXr5Kent6iypiens7OnTvp3LmzzkRq/pBQUyKR4OXlxdChQ0lISGDLli2MHz8euVzOtm3btFx7Nfy+8vJyDh482K7oWK1Wi42icIuiMW3atHY1hFVUVHD06FH27dtHdnY2jY2Ndx0Ab8ehQ4fabXAkk8kwMzPDzMxMJ9J4ZWVlHDt27A/RsK+traWmpobp06czadIkysvLWbp0Kdu2bePIkSN07dqVf/zjH/Tq1YuCggJeeOEFkpKSOHfuHOPHjxcDC7lcTp8+fViwYAE9e/bEz88PCwsLDA0NRbfhs2fPsnLlShISEjhx4gRDhgy5a2Bx+4SpUqk4ceIECxcuJD09nS5duvDFF18QERHR5j1y9uxZNmzYQGJiIqGhobzyyiv06tVLDKjr6+uJi4vj7bffJjs7m48++oj+/fvj5eWloyv8fxcmJib4+vpy5swZnWxPpVKJgcX9QMMNtrS0FDm+mkRBQ0MDSqWSd955R1wg6evr4+HhIVJokpKSiI6O5uzZs4wdO7bdQY6joyOWlpZIpVL09fVRq9WiweU777wjTjSGhoZ3pLz9lVBRUUFZWRkREREtFL8AsRl24MCBLYQ5jIyMWqXw3Q26lvTNzs7m3Llz9O3bt83AIicnh5SUFJqamnS2X29vbwIDA+9I35VIJAwbNkw0GdVQuzq6EFGr1Rw/fpwdO3aQkZHR5nnY2Njct8y0vb09PXv2JCEh4aFJzyYnJ/Pyyy+LflLOzs6sXLmy3d8vKipi/fr1fPfddxgZGVFdXY1CoeDAgQNiYvS7775rcd1NTU05fvy4Fl1U06N2PzA3N+fFF18UK7K3Qy6X3zWg7t27N+vWrdO5LHJb0Kgk3Q3Lly9vUQG4XS79fvDjjz+2sBBorxiBUqlk9+7dfPHFF1p0R03/yNNPP02nTp2wsLAQDY3bSgao1Wqt5vnKykqioqJYt26dVs+iWq0mMjKSGTNm/LkDC7h10/v7+2NgYEBcXBxKpRJjY2OWLVvGqVOnuHDhAtHR0eKAoJk8OwJjY2NGjBjBggUL6NKly12zxwUFBaxatYrNmzdz8+bNe1Js6oj8nyaLZWtrq5OBr7Kykq1btzJhwoR2V5B0BbVajZubG0OGDMHT0xNXV1fCwsI4evQoFRUV9O3bl/79+4vOsr6+vqSnp5OZmal1zSQSCY6Ojvzzn//EzMyshVSfIAjY29uTm5vL1atXyc7OJjc3967Hp9F5FgSB48eP8+qrr5KVlUVwcDArV66kV69ebVa0qqqq+O2337h06ZJo3DZhwgSMjY21HmpXV1cxqMjOzmbTpk18+OGH93hF/4YGRkZGOudm60KNzcrKCisrK+Li4ggJCaGsrIzr16+jUqlwcnIS74cZM2bQ1NREQUEBZmZmYgV00KBB+Pj4sGHDBi5cuNDuwOL345hGptTe3p7CwkImTJhAQ0MDN2/efOjjwP0iPj6eL7/8koqKCvT19XniiSd4+umnOXv2LLt372bFihXALb+A2NhYnnzySWJjY/n555+Jj48nNjaWHTt2MG/ePAYOHIharebLL7/k3LlzZGZmMmfOHIyMjPjqq6+wtrbm2LFjbNq0CUEQ+OSTT8SJValUEh8fz48//kh6ejoymYxp06YxYcIE8vLy+OWXXzhz5gzPPPMM48ePFxczhYWFfP3116SkpCCTyZgxYwZPPvkkarWatLQ0li5dSvfu3Tl58iSWlpbMmDGD/v37c/z4cdasWUNmZia7d+/GysqKuXPnMmzYMK0xJjY2VueUiPDwcNF/pS1IJBKMjY0JDw8XqY4apcCO4OzZs3z++edcvXoVBwcHMjIycHJywsjIiBs3blBVVUVYWFirUs4dhUwmY9CgQezevfuhBRZWVlakpaXh4eGBnp4eSUlJHVrcDx48GHd3d61F/O8ZDa0pVsrlcp1cs9Zga2t7zwGKtbX1I2kk27Vr1we27bCwsHv+7uXLl9m8eTPJycniPSCRSHjhhRd46aWX8PPzQy6X31O/sCAIYpV7yZIlFBcXi+/l5+eTmZlJfX29TvpT/lBynEqlQhAEbt68iSAISKVSIiIi6NGjB7W1tZSXl3Po0CHeeecdXF1dmTp1artkzmQyGRYWFnh4eODo6Ii9vf1df4y6ujqOHj3K//73PyorK0VpVQ8Pj1Z1tttCR3smbGxscHV1JSsrq0Pfaw0aPfSff/75D/GBsLGxESsHcrkcW1tbzM3NqaiowNfXV2wO0sgsyuVyqqqqWjTlymSyNku/GmpMp06dsLKyoqysjJqaGtRq9R0nRhMTEyQSCSdOnODll18mOzubkJAQ1qxZQ0hIyB3pa2lpacTGxtLY2Ejv3r3p1atXi6ACbmWIn3zySb744gvq6urYv3//PQcWgiCwePFicnNzeeuttwgICKCxsZGnn36a1NRUdu7cia+vL2q1msWLFxMTE8Ovv/6KRCKhsrKSXbt2sW/fPvLz8zE3N2fw4MFMmTKlRUbi4sWLLF++nOnTpxMYGMiPP/5IZGQkdXV1uLq6smjRIrp27YpMJhMrRj/88AN79+6lsrISPz8/hg4d2ubzkZyczPbt27lw4QJlZWUYGRnRqVMnhg0bxujRo9tlMmhgYIC9vf09Xce2oAtFHX19febPn8/atWvZv38/AQEBeHl5ifJ+X375JWvXrmXDhg3ALRnMjz76iKKiIv7zn/+QmpqKXC7Hw8ODZ555Rtzu4cOH2blzJ2fPnkUul3Pu3Dlmzpx5x8Z5Ozs7PvzwQzZt2sQ333wjjqVvvfXWn4YDLQgCGzZsoGvXrqLDuVQqFcUcbu8hq6ioIDc3F5VKxeDBg7G1tWXNmjX07duXESNGiGM+wHPPPUdwcDClpaUsWrQIKysrrK2tkcvl9O3bFyMjIz799FOtxFVKSgqbN2/G1dWVF154AYVCgY2NDXp6eri6uvL888+Tk5NDdXW1lmrO4sWLGTx4MM888wzV1dW8/fbb+Pv74+/vT1VVFZGRkfTt25dPP/2Uo0ePsnXrVkJCQujfvz+lpaVERUUxcuRIunbt2uo9Hxsbq9NmZJlMRs+ePdut0gb/b45rbGykpKSkQzTU48ePk5+fz2effUb//v2ZOHEiM2fOZPTo0ahUKtavX8++ffvueK93BOHh4Q9Vvvyll17ik08+4X//+x8SiYSqqiqtOaCqqoqffvqJ1atXY2dnx6xZs5g5c6b4vqur612pzI+CMMjf0D0UCgVnzpzh3LlzWoFlaGio2Pd1P2O5RCLBzMyM8PBwgoKCtAILlUolek/96QMLjQSZkZEREokEiUSCnp6emAl0cXGhsbEROzs7rKysGDp0aLsNoaRSqZilbk9QUFRUxO7du6msrBTddZ955hmsrKw6xJPvaGRvZ2eHp6cnp0+f7tD32kJxcbG4WP49J/hBw8jISGuhaGxsLJqzmJubaz0Umua2jvSvaKDJnpmamnLz5k2x5Hen38nMzIzz588zb948srKyCA0NZePGje16WK9fvy42APr5+d1RHtnT01NsgMzIyKCxsbFDLr6/P8+rV6+KPUfp6ekkJyeTmppKbGysaL515swZMWNaWlrKp59+yvbt2/Hw8BAXVBs2bODKlSu88847WvdFXV0dWVlZnDlzhrVr19LY2Iifnx+NjY1cvnxZK4BqbGxk6dKlrF27Fg8PD8LCwkRlHZVK1eI8L1++zGeffUZycjIhISH4+PhQVlbGhQsX0NPTIyIiot2Bxf2W9H8PXQQWGvWUgIAAmpqaMDAwEJXL9PT0GDBgAIGBgSLdw8jICAMDA9zc3Pjoo49obGxEIpFgaGiodR369+9PSEiI+D25XC56WowfP55Ro0ZpSU9qxs3hw4cTFhYmVgBNTEwemv69LiCRSOjbty/Lli2jvr6e8ePHExAQcNfvWFtb4+7ujoWFhVgNvR0uLi4UFxdjaGiIl5eXVtLC0tISd3f3FomF69evU1FRwUsvvYSvr684RmkMp1xcXLCwsNAaB4qLizl16hTnzp3DxMQEtVpNeXk56enp+Pv7i036TzzxBPb29hQUFJCQkEBFRQX+/v44ODhgaWkpmli1hvj4eJ0GFm5ubnh7e9+Tb0R+fj7r16/ns88+a/d3cnJy8Pf3F/vTLCwsMDExwd3dHSMjI9577z2uXr3Khg0b+Prrrzt8TL+HnZ0dPj4+JCcn65Q+1hb69OnD6tWruXr1KiqViqCgIC06rEa98erVqzg5OWk5XMOt++v/Ql/e32iJvLw8EhMTW9DGBg4c2Kp65r3Cxsam1aRFVVWVzp6RPyywSExMZNeuXdTU1BAaGtpqFC6VSsXsdH19Pfr6+vdlnHMnVFVVERMTg5GREWPGjOHdd9/F1NT0gT/krU2E9wO1Wk1iYiLvv/8+K1aseKia/Hp6elo3vyao09fXb1Ex0vy7raCiubmZlJQUTpw4QVJSEnl5eVRWVlJbW0tjYyNVVVUiJeBugYlcLicrK4v333+frKws9PT0+PDDD+ncuXO7ft+KigpRhWXVqlVs3LjxjsGqRva3ubmZioqKdvfc3A5NH1JtbS1VVVUIgkBCQgKOjo40NzcTHx/P2LFjkcvlpKSkMGfOHBQKBZGRkfz000+MGzeOTz75BBMTE5qamvj111/57LPP2LRpE97e3i0qQuvWrWPhwoU8/fTTYmVJoVCIrttqtZrMzExWrVpFt27d+PHHHzE3Nxe17N9+++0W/SSxsbHEx8fzyiuvMGvWLORyOWq1WlzUt1feriPiEO3F7cZP9wN9ff029dz19fVbpS3c6Ttwiy/d1vlqerJ+D427873ca48SnnjiCXr16sVvv/3GokWLCA8P51//+pf4viAISCQSmpubdfYbtgaNspcmsG5PckqpVIpKYZoeCU2WUAN9fX3s7OyQSCTI5XKkUmm7jFvhFlU3Ly9Pp27bfn5+rRriaZCent7mYiMrK6vD/lVqtRojIyMx6Wdubi6qaUkkEiwtLenbty87d+7s8Lm0BplMRmhoKCdOnKC8vFwn27zb/jp16iT2Nml+47/xN+6GoqIi8vLyWrzu5+enUzrZwwhedRJY5Ofnc+7cuXZ9try8nKtXr/Lrr7+Sl5eHIAiMGTOmzcyapnEzISHhgfpQKBQKSkpKcHZ2pl+/fpiZmT0U3wtjY2P8/Pxwd3dvV69Ae9Dc3MypU6d4+eWXWbJkCb1792735HivkEqlbTYSSaXSdu1bEATUajWpqan861//IjIyUpzgNXQpzcICaLevgUQi4eWXX6a4uBhBEGhqauLDDz8kNDQUBweHux6bQqEQOfn19fXtynZrHt770Zr39vbGxMSEGzduUF9fT3x8PG5ubjg4OJCUlIRSqSQvL4/6+nq6detGTU0NO3bswMrKijlz5uDo6Cjycx977DEuXLjApUuXiImJaaHeFBQUxOjRo/H09GwR9EkkEpRKJYcOHUIQBJ5++mlxMWJqakqfPn3o27dvC9UmAwMDJBIJ+fn5NDY2itfa3Ny8Q9dBs2jWhXqaBu1dzD0K+O233/jggw9EhTupVEpMTAyenp5/9KHpHKmpqfj7+zN16lRsbW356quveO+99zA3N0ehUJCSkoKVlRUxMTEtsr0dhWZc0YhzqNVqVCoVUqkUR0dHpFIpR48eZdq0aTQ2NiIIAubm5uJ9qPlTqVSo1WoxSXTgwAHeeOMNDA0NSUtLa1GVa2tSNzAwQKFQUFlZiVKpbLEASExM1HmvQEBAwB1Vw6ZMmUJTU1Orx6xQKDrc+2Rra0tKSgr19fUIgoCHhweXL1+mvr4eU1NTUc2mo/2Ud0LPnj0xNTV9KIHF9OnTWbZsmXhN6+rqmDp1Kr/++usD3/ff+HOjvr6+haywZo7VZeW5urq61T4tTUO4LqCTwOLy5ctMnz693Z/XDOIymYzu3bvz3HPPtXlClpaWjB49GkdHxwcuuaYpc1tbWz80Mz2JRIKfnx8hISE6CyzgVnBx+vRpZs2axZtvvsnUqVMxMzN75PmZGRkZjBw5koKCAoyMjOjduzdPPfUUISEhuLq6YmlpiZGREbt37+af//xnqxH+79Hc3MzNmzeZOHEitra2oozb888/z88//9yC0vB7aNw9AaZOncqIESPaVZaUy+X3ZTrj7e2NtbU1WVlZVFdXk5iYSHh4OFZWVnz99dcoFAoSEhKQyWT06NEDhUJBYmIipqamBAUFieckkUhwcHDAy8uLX3/9tdX7zNfXt8V9f/u/1Wo1KSkp6OvrExwcrLVtCwsLPD09WwQWmmBm/fr1HDlyhPHjxzNp0iQ6deok0h/bA4lEIiogPcgs9aOK8PBwVqxYQUFBAcuXL+fy5cs6Mwt8lCAIAj/++CMHDhxAT08PFxcX0TsiICCAiIgIpk2bhrOzM25uboSEhIgLXs3Y3dZzKZVKW/RF1dbWsnDhQpKSkrh+/Trz58+nZ8+evP766/To0YNnnnmG1atXs2zZMgwMDJgzZw7PPvssu3fvZtu2bSQmJqKvr8/u3bt5+eWXGTFiBKtWreKzzz5j4MCBKBQKgoOD2bBhAzKZDJlMpqW8JJPJMDQ0FM+hW7duREdH89577/Hhhx/y/vvvM2bMGPHzCQkJOvUz0NPTw9fX947zqre3N998802r41hqairLly/v0D6DgoI4duwYRUVFBAYGMmjQIBYsWMC7777LxIkTKS4u5vvvv9epsePdFK90AU21qqamBoVCIVZ5GhsbRd+cv/E37gRNcvZ2aPoam5ubdRJcaObxpKQkrdclEgmurq46YwboJLCQSqXtinRuNwvS09Nj8ODBLFmyRMtI6PcwMzNj6tSpTJ06VReH2iYMDAxwcHAQM0YPExrO6ZEjR3TKA9W4pS5cuJDDhw/zxhtvEBoaipGR0SMZYKhUKv773/9y48YNTE1NmT9/Pp9++mkL/rOmatGRrPN//vMfXnjhBfT19amqquKXX37h5MmTvPXWW6xYseKOE4+FhQUWFhaUl5fj5eXFuHHjtDjuDwqOjo44OjqSn59PcnIyxcXFdO7cGU9PT5YuXUpGRgYJCQnY2Njg4eEhVi8sLCxaNGDp6+tjbGxMU1NTq4tzc3Pzuw5ctbW1SCSSFnREuVzeah+Jm5sbX3zxBYMGDWL9+vWsWbOG1atXM27cON566y38/f3bfR/q0qX+YWna6wqWlpb07t0bgN27dxMbG/sHH9GDgUQi4csvv+TLL79s8Z6joyMffPBBmw7ZHh4ed1zkduvWjd9++03rNTMzM9auXdvmd4YMGdJqE/G0adOYNm1am8fx7bfftvpeeHg4kZGR4v9HRERo9Qza2Njw9ttv8/bbb7f6/YyMDJ1m8jWNwndKksyfPx9LS8tWxS3Mzc3x8/Pr0D4fe+wxCgoKMDc3R61WM27cOHbt2sWuXbv46aefROGOt956q8Pn0xYcHR2xtbVFKpU+sID8/PnzxMbGkp2dzbp167CwsEAQBPLy8tqUDv4bf+N2mJmZtSo0oDHjvRNlsT3QGOIdPny4BYXRw8MDT0/PR6ti0aVLFz755JO7fk7Dt7exsaFbt254e3s/Mu7E1tbWhIeHc/jwYeLi4pgyZYrOLvLdYGRkRGhoKMHBwURHR+t8+/X19ezdu5fz588zceJEnn32Wfz9/TE1NX2kFGPUajXnz58Hbi2m5syZ0+r9oVKpKCsr65D7rLe3t8h3XblyJfn5+URGRopNzm+++Wabagienp54eXmRnZ1NcnIyeXl5WFpaPvCqlkQiwdvbm+joaOLi4hAEQTTTMjMzIzY2VmyM1iy8LS0tRVOc24OfhoYGqqurMTIyuifVBw2FSa1WaxlYwq1sXVvyrWZmZkyZMoUJEyZw5coVvvvuO/bt20d5eTkrV678Q+g8D6sa2RY0fSZ1dXU0NTWJ9BtDQ0PMzMxE2te9QqVSUVtbS11dnUjF0wR/rZXVGxsbqampET179PT0MDMza9N86W88fKhUKvLy8nQik6yBk5PTXUURhg4dKv5bEASUSiVNTU1ihvP2/pf2wMvLi0WLFmm9tm7dOrZs2UJiYiL29vY8+eSTdOnSpUPbvRv8/Py4cuWKTkQbWoOrqyvp6elIpVLRVFcjA32nIElDq1MoFGL/oKbfRC6XY2RkJM7TdxsTNL9PbW2t6KMjCAIymQwDAwNMTEw6VCluamqivr5erMBogjJN9djIyAgTE5NWEz6aBG1DQwP6+vpYWVm1qz+2vr6ekpIS4JbKYms9ahpo/Mr7RGJoAAEAAElEQVTq6upQKBQolUrxumnGOk0vT2vXqra2lrKyMmQyGY6Ojsjlcpqbm8WxUKNa+vux80HNHw4ODq1SC/fv389jjz3GyJEj72n/mvsrJyeHb775hm3btmm9L5FIGDRokE49t3SyqvTx8eGNN97Qxab+MDg4ODB+/HiOHz/OiRMnOHToEEOGDHlok2tYWBiDBg0iMTHxgalXlJSUsHr1avbs2cNTTz3F5MmT8fPzEzNSf/SCC2jhafF7qFQqUlNTOXfu3D1NEpoGwTVr1jB58mTi4uL45ptvRDnj1jLvAQEBhIaGcu7cOU6fPs2pU6dwd3fH3Ny81XtDqVRSU1MjDmz3g06dOnH69GkSEhJEczUjIyMCAwNFJ01NNc/Q0JCePXty4sQJYmJiGDx4sCjXWVBQQHp6Oq6urvdkmiaVSgkODmb79u3ExcUREREhStBWVFSIqlka3N4XI5PJ0NPTo0+fPoSGhtLY2Mjhw4epqKj4QwKLP7piUVFRwa5du9i7d69IczMwMCAoKIjnnnuOYcOG3TN1Q6lUkpmZyYYNGzhx4gRlZWWo1WpsbGzo06cPs2bN0tJZr66u5ujRo/z0008kJCSIvTBPPvkkM2bMwN3d/ZGsbv5fQ3l5ORUVFTrtDXJ2dm632prmOY+JieHatWsYGBgQGBhIYGDgfdMnTE1NeeGFF+5rG3eDn58fBgYGDyyw8PLyYvbs2WRnZ/P666+3i7atCSoKCgo4efIkO3fuJCYmhps3byKVSvHw8CAiIoKJEycSFhZ2x75PQRAoLy8nNjaWbdu2ERUVxY0bN1AoFNjb29O1a1fGjh3LiBEjcHJyumN1WtNvGhcXx/Hjx7ly5QrXrl2joqICqVSKpaUl/v7+RERE8MQTT9C5c+cW41VaWhoffPABe/fuJSAggKVLlzJ27Ni7rjH27NnDs88+i0QiYezYsezatavVz2l8gU6dOsXevXuJi4ujuLgYmUyGi4sLffr0YdKkSfTs2RMrK6sWY5harWb79u3Mnj0bFxcXDh8+jJOTE1FRUWzdupULFy5QXFyMWq3G2dmZ3r17M2HCBCIiIjqsFNpeuLm50b17d1GdVIOsrCw+/vhjVCoVvXv3xsrKCgMDgzaPQdP7pVAoqK+vp6KigsuXL7N+/XpOnjzZYv5zcXHh8ccf16mZ6qOTrtYhbm86bS8MDQ2JiIjgueeeY82aNbz33nvk5OQwcOBALCwsxEjxbtu8XT+9I7CxsWHo0KGcOnWKK1eudPj7HUFBQQFff/0127Zt4/HHH2fixIl06dIFOzu7DmU0dA2JREJgYCBpaWnU1tayd+9epk6dKg5ajY2N5OXl8eOPP3L48GH09fXvKQjTKC59/fXXPPfcc2RkZPD555/j4ODA0KFDWwQDVlZWjBw5kosXLxIVFcXy5ctpampi2LBhWFpaIpfLxabDxsZGCgsLOXnyJDNnzrxvd14fHx8aGxuJj49n8ODB4iTeo0cPTp48SV5eHt27dwduVQeeeuopjh07xrp167C3txcrGAcOHODixYuMHj36nsyBpFIpQ4cO5fPPP2fLli1ERETg4OBAY2Mj586dIy4urkV2STMZOTg4iNW/6upqqqursbKy+sOqlX90AF1eXs758+eRSqVMnjwZa2trcnJyOHz4MEuXLsXU1FQrU9zRbX/++eccOnSICRMmEBgYSENDA6mpqdTX12tRaRQKBVu3bmXFihWYm5szefJkrKysiI+PZ9WqVWRlZfHpp5+KIgB/dty8eZMbN27g5ub2UPvodAENzVGX6GhgsXbtWvbu3UuXLl1obGzkl19+YdasWcyYMUNnx6QZR6urq3UqMe3j4/NQpJcXLFjQbt8MqVRKYWEhn332GT/88AMqlQoTExNMTU1pbGwkNTWVq1evin5IkyZNalX4QhAE8vPz+frrr/nmm2+or68XqwkGBgZUVlZy6NAhjh07xogRI3j77bcJCwtr83rk5+fz6quvcuzYMZqamtDX18fExESsgNfX13P69GnOnDnDtm3b+Pe//81TTz2ltT0fHx969OjB4cOHuXbtGlevXhUTtW1BpVKxY8cO1Go1pqamTJo0qdXPNTY2cuXKFZYtW8bBgwdRqVSi/LxarSY3N5e0tDR27tzJK6+8wpw5c3B1dW0zQaJQKDh//jzFxcV8+eWXNDY2YmpqKlKHr1+/TkZGBkeOHOGVV15h7ty5d1T1u1fIZDL69u1LREQEBw8e1BJ+iY6O5vnnn2fUqFGMHDmSLl26iJUsTYChEZ9obm6mtraWrKwsLl++LM7PrQnJWFhYMHPmTPr166dT9kq7tyQIAg0NDWJZ7WGioaGB8vJyrK2t2yynaSL2goICqqurReqGq6trm5nl21FdXU1CQgKWlpZ4eHiQlJTEwoULcXR0xN/fHzs7O9F74U5YtmzZPTfs9unTh1GjRnHt2jWqqqruaRsdQXFxMRs2bGDnzp0MGjSICRMm0K1bN1xdXbGwsHjomUqNu21kZCTl5eUsWbKEpKQkAgICkEqlXL9+nXPnzlFSUkJYWBglJSXEx8ff877CwsJYsmQJb7zxBhkZGSxevBgrKyt69uzZ4twjIiKYN28eDQ0NJCYm8s9//pN169bRuXNnLC0tUSqV3Lx5k+zsbDIyMgB48skn7/uaeHl5YWhoyKVLl5g9e7Y4MPfo0YNVq1bR3NwsBgr6+vr07t2b+fPn8/333zNnzhw8PT1FM7GwsDCmT59+TyIIUqkUb29vXn31VdatW8dzzz1HUFCQSKMJCgrSokgJgsC+fftE6U0HBwdkMhlZWVncvHmTZ5555o5l7r8yPD09Wb58OUZGRuJk3NzcjLu7u2icN2TIkHta+NbV1XHlyhWCg4NZunSpKHWqVqtFqoAG6enp7NixA0tLS7744gt69+6NTCZDoVCwaNEi1q5dy5AhQ5g0adIj74dRV1fHzZs3sbS0bNMbZd++fSxYsICVK1cyc+bMP1VgkZubq9PAQiqV4uDg0O5eMbVazdatW9m7dy/u7u40NTURGRnJunXrdBpYAGRnZ/Pzzz/z0Ucf6Wybd+sl0RU6EgzV1dVx8OBBCgsLcXNzE43LDA0Nyc3NJSoqivj4ePLy8vjyyy/x8/Ojb9++Leam6upqli5dyqpVq9DX16dr16706tWLzp07I5fLycnJISoqSlTjVCqVfPTRR3Tv3r3V9YzGvNbR0RFra2t8fX3p3LkzDg4OYt/myZMnSU5O5tq1a/z3v//F39+fHj16iNswNjYmJCQEX19fkpKSuHz5MtnZ2QQFBbV5PQoLCzlz5gxwK0E7bNiwFp9RKpXExcXxySefcOTIEaysrAgJCaFnz57ifZmUlMSFCxfIzMzkiy++QCKR8Prrr2Nra9vqM19XV8emTZtITEzE2tqanj170r17d8zNzSkqKuLChQtER0eLflDe3t5MmTLlgSTGunXrxvTp08nJySE5OVkrGKiqqmLLli1s2bIFIyMjnJ2dsbKywtDQUKSFNTQ0cPPmTdHfqy1IJBJsbW2ZOnUqM2fO1LlMebufNKVSyfHjx2loaKBHjx74+PiI7ykUCqqqqjAwMMDU1FSnC1KlUklCQgIbN25kyJAhYqb0dgiCQG5uLlu2bOGXX34hNTUViURC586dmTFjBpMnT8bZ2fmOx5WUlMTjjz+uVSZSq9UUFBRQUFDQ7uP9+OOP7zmwsLCw4MknnyQ+Pp5Dhw7pVK/8TqiqqmLv3r0cOHCA0NBQxo0bR9++ffH09MTZ2fmh0aQkEgmjR49m/vz57Ny5k6KiIjZv3oxKpRJ5325ubsyZM4dhw4axfv36ew4s4FbDviaD88knnxAbG8uSJUv4/PPP6dy5s9Y5y+VyJk2ahJWVFd9//z1xcXGUlpaSk5Mj8mk1mR0vLy9cXFx04vhqa2vLgAEDkEql9OzZUwysu3XrRr9+/ZDJZFpOrZaWlsyfPx8/Pz8OHjxIQUGBWHEZM2aM1nMLiAOphipwJxgaGvL666/j5OTEsWPHqK6uplOnTowbNw6lUsmePXvEe18ikfDYY49RV1dHWloaN2/eFOk+gwcPFqs9fwT+aCqUXC5HLpeTm5tLRUUFjY2NKJVKSktLUavVohTnvTxzhoaGBAQEkJCQwM6dO+nZsydOTk5YWlq2CA5iYmLIyMjg2WefpXPnzuL4aGBgwIwZM9i6dSu7d+9m7Nixj3xgERcXx9atW3niiSd05tr8KEEjOa0raDLQ7V0cSSQS3Nzc0NPTE+V1jYyMdJ65FQSB1NRU1q5dq9PAwsnJ6ZHp59SgoqKC2tpaevXqxb/+9S+GDRum9ZzFxsayaNEifvvtN1JTU4mKiiI4OLjFuHno0CHWrFmDXC6nd+/efP755/Tp00d8X61Wk5yczOeff86OHTs4efKkaNzXmj+CmZkZc+bMoaysjH79+uHp6am1dlIqlURHR/Pyyy8THR1Nbm4uhw4d0gos4JYCWEhICFevXiU6Opr09HStceb32LdvH7W1tchkMoYPH95qkFZcXMyWLVs4evQo1tbWTJs2jQULFmjNa0qlkoMHD/LRRx8RHx/P6tWr6du3L0OHDm11HGtoaCAqKgo/Pz/eeeedFv21mgBl06ZNXL9+naioKAYNGtRhqeX2QCaTMXbsWJqamli9ejUJCQmtPvcNDQ1kZmbe0z5MTEzo1KkTkyZN4tlnn8Xd3f1+D7sF2h1YKBQKvvrqKy5evMibb77Jv//9b/G9zMxMfvrpJ/z9/RkzZoxOzTw0HOA1a9Zw/vx5li5dysiRI7U+U1ZWxtq1a1mzZg1lZWXihBwbG0tSUhIVFRUsXLjwjg23Gt76/eJ+B6+QkBCmTp1KZmYmycnJD3URpFQquXjxIhcvXsTV1ZWhQ4cyfPhw/P398fT0bPV3NTU1pWfPnkgkkhYUG2dnZwYNGkRVVVWLiDgoKIhRo0ZhZ2cnPsQaR+1FixbRv39/IiMjxYW7mZkZXl5eRERE0KdPHwRBYODAgZSUlODr69vq7+rr68uIESOorq5u06/CzMyMadOmUVtbS1RUFGZmZsTHxxMQENDi83K5nJEjRxIWFsaFCxe4ePEieXl5VFdXizJuZmZmBAUF8Y9//EMn/QMSiaRVJRxXV1d2797d6nfMzMwYP34848ePv+v2u3XrxjfffNPuYzExMeG5557jueeea/H+8OHDtT4bFhamxed/VPBHZqo1ze+HDh3i+PHjlJaW0tzcjFKppKioiIqKivtSrrG2tmbevHl89tlnLFmyBE9PTx577DH69u1LQECAaM4Gt3quqqqqcHFxaUGx6NSpEwYGBqSnpz/ynh+CIJCcnExSUlKLueGvguLiYp02bt+pstMWPD09+e9//0vv3r2pqanhwoULmJiYiB4Nzs7O9y0TKwiCzr064FYG/GEzLdoDV1dXZs6cyejRo1uMS927d+fxxx8nMTGR3NxcYmJiqKys1AosamtrWbZsGc3Nzdjb2/P+++9rBRVwqzoVGBjIs88+S3x8PElJSZw5c4aRI0cyaNCgVo/r8ccfb/OY5XI5wcHBzJ07lzlz5lBVVUVqamqLz3l4eBASEsL+/ftFV+nBgwe3WiVrampi7969NDc3Y2ho2CoNSpNk1vRd9O3bl3nz5rVIlsnlcsaMGUNcXBy5ubncvHmT7du3ExYW1qrjNNxSOJs2bRpPP/10iypOp06dGDt2LOfPnycxMZG0tDTy8/MfSGABt6o9U6ZMwcnJiR9//FFcZ2gSTvcCuVyOtbU1bm5u9OjRg0mTJtGvX797EnJp1/7a+0GVSkVaWhpyubzFj5OWlsaSJUt4/PHH6devn04Di6qqKq5cuYJEIsHZ2bmFWoRarebkyZPs3buXsrIy3NzcCA4OxtjYmOTkZDIyMvjmm28YMmQIAwYMaLMc6uXlxX/+85/7Pt77zcJKpVLGjBnD9evX+frrrztULdElbty4wffff8/PP/9Mr169GDZsGOHh4Xh5eeHu7i42Obu4uLRQ+dCgf//+9O/fv9X35syZw5w5c1p9z8DAgJEjR951kfDss8/y7LPPtvn+5MmTmTx58h23AbeqAhq9/PbA1taWMWPGaGnMNzY2snjxYq5evcqWLVuYNm0aXbp0+VPRLe4FmiZtzeK4ubkZlUqFUqlEpVLd8e9On9Howms+k5iYeF9mg48KNE7lH3/8MQEBATz11FP4+PhgaWnJb7/9xldffXVf2zcwMGDgwIF4eHiwb98+zp49y08//cT27duZOnUq06ZNEyfE21VPfj+Z6unpIZVKaW5u/sMrPG2hsrKSzMxMCgoKOHbsGJmZmZw5c0bL62Hw4MFawZQGaWlpZGVl0djYiImJCa6urvj5+YkZzZqaGpKSkmhqaqJr165ai6Hy8nLi4uIwMTFp0bycn59PRkYGlZWVNDc3Y2RkhLW1NZ6envdFNygvL9eph4ulpWWHjSqVSiW5ubki1VOjwPPdd98Bt8b73wcWiYmJpKSktHsfgiBw9uzZDh1Xe2BkZISNjc0DlZztKCQSCQEBAQwfPrzNeaJLly7Y29uTm5srGo3eDk2goAkeBg8e3Oa+fHx8CAsLIykpidTUVNLS0oiIiLinRmRDQ0O6deuGXC6nqamJyspK0bxTA7lcTvfu3encuTMXLlzg/PnzbUq1X7t2jdjYWFQqFZ06dWoRHMGtZzI2NlZUZQwPD6dz586tHp9UKmXQoEFs376dmzdvcuLECaqrq1sdC+BW4Dl16tQ2r4W7uzteXl4kJiZSWlr6QILf26Gvr8/QoUPp3r07p06dIjIykrS0NIqLi6mqqqKqqgqFQiHOu4IgIJVKkcvlGBgYYGhoiImJCebm5lhbW+Ps7ExwcDADBgwgJCREZ34VbaFDPRbl5eXiA/qwUFtbS1paGoaGhnh5ebWIEktKSjh69Cjp6enY2Njw/PPP8+KLL2JjY8Ovv/7Kv/71L7Kzs9m3b5/owNkaNHSRRwFmZmbMmDGD0tJSNm3a1ELe82GiqamJM2fOcPbsWVxcXIiIiKB///506dKFTp06iTJt/9dhaGjIkiVLKCgooFu3bn/04dw3NLKFdXV1YtOvxnVcI0HY3NxMU1MTTU1NNDQ00NjYSENDg/ia5u/2z7X2Wmvvt/YZXS0I/siFsqZaYWJiwmuvvcbo0aPFY7p8+bJOFOHkcjk+Pj4sWLCAGTNmEBkZyU8//cT69euxtrZm9uzZwK0xz9jYmJs3b4rOxxoUFhbS1NSEl5fXI6sKVVRUxMGDB7l06RJxcXHcvHmTPXv2cOrUKfEzrRnApaWlceLECbKzs6mvr0elUuHn58e8efNEGpVG4OLmzZssXbpUazGUmZnJv//9b7y9vfnggw/E65aRkcH69euJiorSkmU1MzPjhRde6JCJ7O+hCVR0BSsrqw5VLKRSKUuXLtV6TTNGaJJprc0DW7ZsYdmyZR3yTtI0z+oamj6vRyWwMDAwwMPD446Zb3Nzc7HSorlXb8fZs2dRqVTI5XL69Olzx7nYyspKpM1WVFRQVFREU1NTq0qId4NUKsXIyAhDQ0Nqa2vFBNDvF+ZBQUEEBQVx+fJlUVEsODi4xXHu3buXuro6JBIJTz75ZKvHVF5eTkJCAnDLm8TPz++O95Snp6d4H924cYPy8nK8vb1bBBYaJanfVz5uh7GxsZaIjK6UO0tLS7ly5QqWlpaEhoa2oGrZ2NgwYcIExo0bx/Xr17l27Rp5eXliL7Fm3tXMadeuXaOwsJDRo0cTEhKCs7OzmAx+0CaRt6NDK0JNBuZhZmEVCgVFRUVYWFjQqVOnFjfulStXuHz5Ms3NzQwaNIhJkybh4uICwPjx49m2bRv5+fmcO3cOhULxwCM1XcHNzY158+ahVCr55ZdfKC0t/UOPRxAEbty4wc8//8zOnTsJDAwU5UM7d+6Mj48PNjY2f/kM/d3wZzv/5uZmKioqKCsro7KykoqKCiorKykvL6ekpISKigqqqqqorKyksrJSzJZoNNc1et9/JvyRv5FKpaKurg5TU1NxnIJbVJfk5OT7Em3QVI80WXhNg+7EiRNRq9X84x//ICsrS/x8ly5d8PDw4PLly4waNYrOnTsjlUpRKpUcPXqUmpoaBg0a9Mj2Vzg4ODB27FgGDhzI6tWrOXv2LLNnzxbNBIFWVdm2b99O//79mTt3LiYmJsTExLB582aam5vp3r37PVfcf/rpJzZu3MisWbMIDw9HLpdTXFxMVlbWfVWyVSoV1dXVOg0szMzMOjQXagKk21FcXExUVBRTpkxp83uCINC5c2cee+yxdiUkBUHgypUrop+RLvGgZELvFcbGxjg4ONzxmGQymfi+psJ4O9LS0kTfi4yMDP73v/+1ua2mpiYSExOBW9e5pqaGhoaGNgMLlUpFcXEx+fn5lJWViWO+piqdl5enVUVuLWHj4OBA9+7dOXDgAIWFhcTExDBw4ECt3py6ujqOHDmCQqHA2Ni4TdGTuro68vLyxH+fPXuW8vLyNs+3rq5OXDep1WrKyspaDX709PRwc3O74+9wuyu2Wq3WWXJKo0gZHBxMYGBgm2OtXC6nU6dOd1SZrK+v5/PPP+e7775jzJgxjBgxot3HoRmnfHx87kncpcXxtveDEokEKysrGhoaxFLow4BmIraysmrRzFNbW8vly5e5du0aFhYWDB06FG9vb/F9PT09goKCOHbsGNnZ2X+6BZCvry+vv/46pqambN68mfz8/Eci26JQKIiJiSE2NhZLS0u6d+8uKikEBwfj5eXVLjOc+4VSqRQnIAsLC+Li4qiqqsLb25u+ffuKWcaUlBSio6MpKysTe0KCg4NRq9VkZWVx9uxZxo8fL35eoVCIutiDBw9GT0+P9PR0rl69Snl5OTKZDG9vb1Ej+88CtVpNbW0tRUVFFBYWUlhYSH5+Pjdu3KCgoICSkhLxT9ea+Y8S/siKhampKYGBgezYsYODBw+KVZ5z585x/vz5FpO8SqUSmzw1IhlqtZrMzEzUajUGBgbY2NiIXNnS0lLWr1+Pn5+fqGRXWVnJ6dOnMTU11cqOBgcHM3z4cLZv3853333HY489homJCXl5eXz33Xd4e3s/0o3bVlZWWFlZ0dzczJ49ezAyMqJLly5t0i81MDEx4ZNPPhEdkfv06SM+39euXaNXr173dDyZmZmoVCqeeuopQkNDRZ8XjQzkvaKuro6Ghgad3rcas7S7oaysDEtLS6RSaQtabkZGBocPH75jYAG3egVeeeWVdvWcqVQqfv755wcSWFhYWDxSgYWent59Z5E1C2ulUsm2bdtamJ/dCZpKcGu4du0aZ8+eJSYmhvT0dAoKCqisrBRNPZubm9tFk9T02gUEBFBYWMjZs2eZOHGiVmARFxcn9nL16NGDgICANo9XQ0HKy8tj1apV7T5XoM1nSCqVtgiaHxacnJyYMmUKzs7Of+g4e+nSJXbt2sVLL730cAMLmUxGQEAA586dY//+/QQFBeHn5yeW0gFRw/9eLtCdVJs0GcbfZxozMjKIiYmhrq5O5I79frC0sbFBLpeLE/KDQnZ2No2Njfj4+OhUfcLb25vXXnsNBwcHNm7cyNWrVx+aWtTdoDFNOnHiBKdPn8bNzY3Q0FBCQ0Pp3r07Xbt2xd7e/oFRKTTqD0lJSfTq1YuKigrRhTMkJAQrKytSUlJYuXIlDQ0NmJiY0NjYyMmTJ/nHP/5BcHAwN2/e5JtvvsHOzk7smSgqKuLnn3+mqamJgQMHolAoSEhIEL0HGhoaOHToEDNnzmTkyJEPrAFKF2hqaqK4uJhr166RkZFBVlYW169fJy8vj7y8PIqLi3XK3f4z4I+sWFhZWTFu3DiSk5PZunUr586dQyqVYmpqSnh4eIuJr6amhk2bNonmdfHx8TQ1NbF8+XJRfvvpp59m4MCBwK1F6P79+1GpVCJVQbMAmDJlipY/hqWlJdOmTaO5uZnIyEguXryIXC6nrq4OR0dHnn/+eQICAh5ZKtS9YsiQIVr9DkZGRnTu3JmYmJj7qgwPGDCAEydOsHLlSoYOHSpWc/X09O7rGlZWVur8GTU0NGwXBWbXrl1Mnz4dQ0NDPv/8c60FWFlZ2V2vl6+vLy4uLu1euLVWGdEV2iM7/zBxexb8XqHJnkulUvz9/Tskd+vt7d0qderSpUusW7eOX3/9lZKSEqysrPD19aVTp06YmZlhaGgoJiy2bdt21963gIAAgoKCOH/+PAkJCaSnpxMcHCxSvH799Vdqa2sBmDJlyh3pXJo1nLm5Od7e3h26V9ryrpFIJH+YYpinpycvvfTSH7JvDQRBIDY2lszMTJ2tLdsdWOjp6TFu3DhOnz5NdHQ077//Pr6+vhgbG3Pjxg0AUlNTWbZs2T3RjVavXt3q9/T09LCysqKxsZGysjLx9ebmZq5cuUJsbCxyuZx+/frh6+vb4vuaifpBZinVajXffPMN2dnZfPvttzqJ+G6Hg4MDs2fPxsPDgx9//JFDhw5RV1en033cL5RKJdnZ2WRnZ3PkyBH8/f3FSkafPn3w8fG5Jy5ne3Djxg3GjRvHjBkz0NfXR61WiwPsDz/8QEFBAW+++SZdunShpKSEd999l5UrV7Jx40Y6depEjx492LNnDyNGjEAul5OVlUVmZiYTJkzAwsKCpqYmwsLCCA4OxtHRkZqaGj788EOioqIIDw9/5AILjalPfHw8qamppKenk5GRQWZm5l31rf9G24iLi+Ps2bOEhYURGhp6T5ORvr4+YWFh/Pvf/yY6Opra2lrMzMwIDg7GycmJK1euoK+vz+bNmzEwMCA8PBwHBwdxbAsODtbankQi0Ro3HRwc+PDDD8nJyRGze2ZmZnh6etK9e/cWDcS+vr689NJL9OrVi8zMTBQKBdbW1nTv3p2goCBRxjsiIoKIiIg/HdWvNXTq1EnrPCQSiZYW/L3iiSeeoLq6mv379/PFF1/g6+tLeHg4Q4cOpVevXvd87aqrq3XG6dZAE3TeDfb29kilUgRB4Pjx47z++uviewYGBncNLIYNG4YgCO1uFJdIJPj7+/Piiy+26/Mdgbm5+V/i/r0dFhYWYhP9k08+2SH6i7Ozc4s1V2FhIatWrWLnzp3U19czfPhwHn/8cbp06YKjo6NWYJGWlsauXbvuGliYm5sTGhrKwYMHyczM5MKFCwwcOBAXFxfKy8s5ffo09fX12NjYMHz48DaDP7lcLh6vm5sbs2fP7pDZ652kbu8XycnJHDx4kEmTJmFgYMCJEyfIysoSnbuffPJJkQpYV1dHVFQUkZGR4vd79OjBuHHjWp1TBEEgIyODCxcukJeXR0NDg9YcLpVKtVRaJRIJ9fX1HDlyRExI2dnZ0aNHD0JCQsSALi8vj8uXL5Oens7+/fvJzc1l7dq1HDhwQNzWa6+9hr29fYefmw4FFk888QRnzpzhwIEDJCYminw9DfLz89uUwLwbli9f3mpgYWxsjJeXl6h+UFVVhYWFBRkZGRw/fpzCwkJ8fHwIDw9vlRtbXl6OUqnExMTkgQ0qjY2N/PbbbyQmJrJ8+fIHsg8TExPGjh2Ll5cXwcHB/Pzzz1y7du2RXCTW1NSIQd/hw4dFA5t+/foRGhoqDoa6gpeXF71798bLy0vrdQ3FZPTo0fTo0QNzc3Ps7OwYO3YsixcvpqamBgsLC0aPHs3SpUtJSUnB09OThIQEJBIJffv2BW49uBKJhISEBPbv309jYyM5OTnI5XKdSkDeD9RqNeXl5WLPUVxcHCkpKeTm5j5yQegfjXtNMiQlJfH9998jk8kICQm55yyXsbEx4eHhhIeHt3jP29ubpKQk3n77bUxNTQkJCWm3AZkmyBg1alSHjsfJyUlL4ex2ZGVl8eWXX6Knp8eAAQP+EgszY2Pj+zoPTaPq72Fvb8/8+fPp3bs3MTExnD9/ng0bNnDu3DnefPPNVg2/2oMH0cdkbGzcLirUE088AdwaX6ZPn87cuXPF9zIyMsRMc1u4F0lOHx8f3njjjTbf11z/jsrHPmpUKF3Ax8dHPCcTExMiIiLua3vnzp3j3Llz1NfX06VLF95++20iIiJajHWCIKCvr9/uDHevXr3w9fUlMzOT06dPM3PmTFxcXLhy5Qp5eXmo1WoGDx6Mi4tLm8+miYmJ2JcmlUpxdXW97/PVFdLS0li1ahX29vbExMSQlZWFSqWipqYGhULB2LFjtT6vUCgoLS3l+vXrXLx4kSeffJLRo0e3OqfExMSwdu1arl+/jr29PQqFgqioKAoKChg6dCghISFac1p9fT0HDhwQ+1GampqoqKgQqyMaWfjq6moyMjJIS0ujtLSU+vp6UdZWg3tNaLQ7sJBKpXh4ePDhhx/Sq1cv4uPjRRpFaWkp165dw8rKSnQK7ijamqStra3p168fFy5cIDIyki+//BIPDw/Onz/PiRMnABg4cCA9evRoddDIzs5GoVDg4uLywKLVurq6h8JHl0qldO3aFXd3d7p3787OnTvZtWuXlrziowRNg1deXh5nz57l4MGDdO/enUGDBjF48GBsbW11MtC3JZ1YV1cn9ufcXl61s7Ojvr6e5uZmTE1NCQ4OxsXFhYMHDzJ+/HhiY2Pp3LmzGKjEx8eLRn1+fn44OjqKzZh/tBSnIAjk5ORw6NAhzp8/T0pKChkZGQ/Fuf3PintdVIaHh/POO++I9Ja/8WhAIpEgkUgQBKFdz2N7fn+ZTCYunH4/uZaVlbUZrBsbG9OvXz969erF8OHDOXXqFIsWLeLbb7+958BC0yyrSxgYGHRoYS6RSJg5c6bWaw4ODkydOlWnx6Whpdypdy0+Pp7k5GQmT57coXN42MIzDwMak9Tm5mbOnDlDc3PzfY1NycnJYqVzwIABdOvWrdXtaari7b0vvby86Nq1K1FRUaSlpZGWlkZgYCDHjx8X9zdlypQ70uitrKwIDg5m9+7dFBQUkJKSwtixYx8pquaaNWsICwtj9uzZODo60tDQQHFxsVbS28jIiIEDB4rXIycnp83tqVQqdu7cyYkTJ3jllVcYOnQoEomEI0eOsHjxYrp06cKbb76pdQ1qamq4fPkys2bNokePHkgkEk6dOsUPP/zAnj17CA0NxcbGBjc3N5566inq6+u5efMmKSkpvPDCC1qqlm35ftwNHVKFksvlhISE4OPjw40bN0SlisjISBYtWkTnzp1ZsGCBlhNwe9FW9sTS0pLhw4ezd+9esrKyWL16Nebm5pSVlVFTU0PXrl0ZPXq0lsKKBpWVlVy7dg2FQoGvr+8Dk0Wtra19qI2ulpaWjBkzhs6dO9O/f39++eUXTp069Ug321ZWVnLx4kXi4uKIjIxk9+7dDBkyhJEjR97VFf1u0FQUfg8TExPMzMwoLCzUyqxcv34dKysrTE1NkUgk2NvbM2TIEPbu3Yurqys3btxgwoQJ4qR1+fJlUlNTmTt3LsOGDcPQ0FCksfyRyMzMZN++fRw7dozExERu3Ljxhwc6fwbc6zXy8/PDz89Px0fzN+4XMpkMY2NjGhsbqa2tbaGnfy8wMTHBxsaGy5cvk5ubKzZ019XVceXKFW7cuKE1AQuCQGVlJWZmZqKzup+fH9bW1nz22WdaalwdhS6lljXQ09Pr8Hx4u6qTIAgYGBi08JVqL0pLS8VESFVVlSi9GhERgZeX1x0DgNzcXKKjozsc1Ojp6f3lAouwsDC6dOkiiqkcOnSIcePG3fP2br/XjIyMWn2ONPe6xqiuPTAwMKBPnz4cOHCAq1evcuHCBUJDQ7l48SJ1dXV06tSJ8PDwO64DLCwsCAsLw8XFhcLCQk6fPs2IESNaOH7/kWhsbGTWrFl07dpVFG8A7WSGplnczMyM69ev3zE41tgt2NraMnDgQNHE2dLSkuXLl5OXl9eC4qenp0ePHj2YPXu2mHC1sLDg4sWLZGdnU1BQgI2NDebm5pibm9Pc3IyFhQX6+vp4eHi06Q3SEXR4pa0pt2s69zUNvMbGxlhZWdGjR487SmJ1FPr6+vTs2ZM333yTFStWkJ6eLirzBAcH8/LLLxMREdHqIBkdHU1hYSFqtZo+ffo8sK57zWT2MCGRSOjUqROurq6EhIQQGRnJ1q1biYmJeaQXlwqFgtTUVK5du8bFixfZvXs3w4YNY+LEibi4uOi0VG1oaMioUaM4dOgQ3bp1IzQ0lNzcXLZt28a0adPE+8HExISePXuyY8cOfvnlF8zNzbWUYTQGcHBrYXH06FFiY2NbVTnRBHcPMsgrLCzkl19+Eel3f5SJ4p8VHVlcFBYWsmPHDi3TrpkzZzJ8+PAWY86ZM2f44YcfWLRoESkpKRw5coSbN29iZ2dHz549GTdunJYKjCAI5Ofnc+DAAWJiYlAqlQQGBraqta5BdnY2+/fvJzExkfr6ehwcHMQA/ffPTl1dHRcvXuTo0aMUFBSIC8ERI0a0cJbXyHweOnSIrKwsjIyM6Nu3b4dN1P4ISCQSfH19MTU15aeffqKqqgpLS0vq6uoYOXLkPRnTWVtb07VrV3bu3Mn69espLi7G1NSUpKQkoqOjW4z3arWaDz74AH19fXx8fLC1taWhoYGLFy9SU1PD+PHj7/n8HkRgcbuMaXugVqv58MMP+de//oWNjY1omHv8+HEWLFjQoX1rmoMvXrwosh5kMhmWlpb4+voyb968O14vCwsLrKysqK6u7pCn1l/Rb8nS0pLXXnuNuXPncvPmTZYsWUJDQwOjR49u0disUqkoKSkhJiZG7N/6/fPt7OwsJnmjoqIoLy/H0tJSHCs0fmZr1qzh4MGDHTrWXr164ePjQ0pKChcuXKBLly7cuHEDlUrF6NGjsbKyuuPYrKenR7du3Rg/fjzffvstFy5c4L///S/z588nLCysBVOmqamJnJwcLl68SPfu3fH393/gleaePXvi7u4uBkj3G8hqnlONYawGGkGO1gIxExMTevXqpfXbmpub4+TkRFpa2gM394N7CCx+D4lEIrqLPihYWloyZcoUfH19SUxMpKKiAgcHB4KCgggODm5z34WFhWKFZezYsWJTzc6dOzEyMmLatGmiU6jGo+FeoDFfedjQNB2GhYXh5+dHv379OHHiBNu2bWvR//KoQaVSkZOTIzYZ79+/nyeeeIJp06bprPldIpHw7LPP0tTUxPfff8/q1avR09OjZ8+eWlxhqVSKu7s7PXv2ZNu2bbz44otax9C3b1+SkpJYtWoVmzZtwsPDg4CAAK2Be9euXezdu5eCggKqqqr46KOPWL9+PaGhobz33ns6OR+FQsHBgwfZtGkTFy9epKio6JEOIv8KMDQ0xNPTk9LSUi5dukRUVBR9+/bVUlfS4Pr16+zduxeZTEZcXBwODg4YGRlx6tQpjhw5Ql5eHm+//bbW51evXs3+/fuxtbXF0dGRQ4cOIZfLycjIoHv37lrbj4uL47PPPiMjIwNXV1eMjIyIiori+PHjpKWlsWDBAnEiq6qqYseOHaxfvx65XI6joyOlpaVcvnyZqKgoXn/9dfr27St+/vTp0yxbtoz09HR8fX3R19dnzZo1ODg4/ClUw4YMGUJBQQH79u1jxYoV6OvrY2trS8+ePe8psNDX12fIkCEUFhayb98+Vq9eLZq0Tpo0qcWiXCKRoK+vz5kzZ8QFl7GxMcbGxrzyyis8++yz93xuDyKwaKvK2xYEQRDpF5rvNzU1cfbs2Q4FFhkZGaxYsYL4+HiGDBlCt27dsLGxoa6ujszMTLZv385HH32Ei4sLPXv2bHUblpaW5OXl8c4772gtFiMiIu5oTvpXrFgAjBs3joSEBFauXEl0dDQffPABW7Zswc/PD0tLSwRBoKqqisLCQgoKCkQDtaCgoBaBRUREBBs3bqSgoICEhAQWLlwoMkKUSiVZWVmcOnWK2NhYHBwcsLKyIjMzs13HaW9vT2hoKOfOnSM5OZm9e/dSUVEh9u+2p+fH0dGRp59+muvXr3Pw4EF+/fVX0tLSRE8eExMTmpubKSsrIz8/n6KiIgoKCvjiiy90rtjZGpycnHQawBoZGdGzZ0/i4uLYsmUL9fX1yGQytmzZQl1dHY8//niLc9LT02vBGtK4ct+v9HV7oZMr8KADC4lEgrW1NYMGDSI8PByFQoGRkdFd3TyHDBlCaGgogiCI5nqLFy/mypUryOVycnJy2LFjB3Cr8XzZsmX3dHzNzc1/KKddIpFgYWFB79698ff357HHHuPEiRNs376dxMTER3rxKQiCONilpqayf/9+pkyZwuTJk+8qJaevr8/s2bNpampqkwvo7OzM3LlzycnJoa6uDgMDA9zd3VtQ54yMjHBxccHKyorBgwdrLRw6d+7MwoULKSgoQK1Wi/4AgiCI2+nRowe2trY0NTWJi0eZTKYzl/rk5GTWrFnD0aNHycjIeGQkh/+M6MjzYGFhwWOPPUafPn3YvHkzSUlJd/3Ozp07+fDDDxk0aBCGhobk5OTw1ltvsW3bNiZNmoSXlxcKhYLz58+zfft2IiIiePXVVzE3N6e4uJgNGzZoVUjgVvXhq6++Ij09nXfeeYfg4GD09PQoLy/n3XffZfXq1URERBAaGopKpSIpKYn//e9/dO7cmddeew0LCwuam5s5cuQIGzduZOfOnXh5eeHs7ExVVRU//vgjcXFxvP322+L9n5mZybvvvvunuNecnJx4/vnnGTZsGDU1NQiCgLGxMR4eHuJnRo4cyd69e/H399daYJqYmDB16lQGDBggUt0kEglOTk7Mnj2b4cOHU1NTg0QiwcbGBmdnZ/r3749MJhODFolEwuuvv87UqVOpq6tDqVSir6+Pqakpbm5u95Us0XVgocmCdnSRLZFIxHFR8++OHtehQ4e4evUqr7zyCmPGjBHHUo0JYEREBM899xwbN25sM7AwMDDAycmJ+vp6qqurxWO6WwD8Vw0sLC0tWbBgAVZWVnz99dekp6eTmZmJqakpBgYGCIJAc3Mz9fX1NDU1IZVKGTx4cKtrJ19fX+bPn8/ixYvFxXtMTAzGxsaiqV5lZSURERG89NJLbN26td2BhUwmIyIigt27dxMbGys2iYeFheHv798uOrSmavHuu+9ibW3Nnj17iI6OJikpCRMTE3HxrFAoRKdyXVUP2gNd32MymYxp06aRk5PDnj17OHr0KGZmZujr6/Phhx8yatSoFoGMJsnxR0IngYWjoyPjxo3D2Nj4gTpby+XyDpXmnZycWmSrqqqqqKurQyaTif4bcGvwLi4u1tmx/hGQSqXY2NjQq1cvAgICGDlyJKdOnWLr1q3ExsbeVRbuj4QmwCgqKiIlJYUDBw4wd+5chg4d2uaAI5VK8fHxueu2HRwctAx5WkNVVRWpqakEBgYSEhKi9Z6BgUEL10uNEtiaNWsoLS1tkQVYu3atTmRo1Wo1hw4d4quvvuLChQvioulv3Ds6MvBLpVJMTEwwMTHB3Ny8XZNfSEgIkydPFmX6HBwcGDRoEHv27CEzMxMvLy9u3rzJ+fPnMTU15YknnhDFJ7y9vblx4wYXLlzQ2ubly5e5ePEiY8eOZciQIaImu1qtZvLkybzxxhscPXqU0NBQqqqqOH78OPX19UybNo2wsDCtcz537hxXrlwhMzMTZ2dnkpKSSExMFBuOfXx8kEgkeHt7i9WQRx1SqRR7e/s7Nhs6Ozu32v8nl8vx8vJqoSonk8mws7NrNSj4fXOxRCLB3d0dd3f3ezyDtqHrwOJe/BMkEgndu3fnP//5D1OmTKG6upqtW7d2uMciISFBDMxcXV3F+1Izd/Xu3Zu+ffty5syZNrfh5eXFvHnzWrxuYWFxx33/VQUXJBIJrq6uzJ8/n/79+3Pw4EGioqK4du0aVVVVotxvYGAggYGB9O3bl8GDB7fqBq+vr8+ECRNwdHRk27ZtnDlzRjTmtbKyIjAwkJEjRzJ+/HhsbW1JS0vrENOjR48e+Pr6kpSUJIrOjB07tkNKkYaGhoSGhrJ48WJGjx7Nb7/9xpUrV8jNzaWiokJM6IWEhNCtWzdRKvvP+vs3NTWRl5dHREQEEyZMwNbWFhMTE1xdXduUUO7IHHc7zU1X0Elg4erqyquvvopEImn1Zn2UsGLFCnbt2iU+QL+Hp6cn06ZN61AD+vXr1/n++++1ApU/EjKZDGtra5GzOmrUKM6fP88vv/zC+fPnteTEHjWo1Wpu3LhBSUkJiYmJDB8+nFdffbVNN8773Vd9fT3FxcUcP36cuLg43nrrrXaVZHfv3s2aNWuwtbXFycmpVWrE/aKmpoYNGzbw3XffkZaWpnMt+/+reNCBWc+ePbUGfJlMhouLC83NzVRUVAC3AtnMzEzs7e3x8/MT7x/NItfR0VFrmxoK6ObNmzl06JDW/VZVVSVSC+FWz1dcXBzZ2dm88cYbWlS8pqYmCgsLcXZ2prKyEoCcnBzKy8sZNWqUlomUvr7+Pft1/F/AmTNnWLlyJYMHD2b69Ol3VDK6H+g603ov25NKpSxcuJD//ve/PPfccyKldPbs2R3aTmNjI0ZGRhgYGLR6HDKZDAsLizvOUZpG/dTUVKysrPDz86O5ufmuFJRHoVphbm7OnDlzGDduHHK5/K4JL19fX9avX09dXR1GRkZaFbjboWF1DBgwgKCgIKqqqmhoaBCTiXK5HAMDAzFBYmxs3GaPjYWFBUOGDCEkJITq6moUCgWCICCXyzExMcHa2hoLCwtUKhWzZs1i6NChomjB3WBqasoXX3zBO++8gyAIvP7663z33Xds375d6/exsLDg+++/b9OtXV9fH3d3d+zt7YmIiBBlXVUqlagsZmhoiKmpqdiYXFZWxowZMygpKaFXr158/PHHxMTEiEHtneDi4sLHH3/Mm2++ib6+/j3JKN8rEhMTyczMZMiQIfTt21fncv0ymQxzc3Oqq6upqanRifiFTgILfX19nZvCPSj07duXoKCgNh0+nZ2dmTp1Kt7e3u3e5tWrV9m9e/cjE1hoIJVKsbCwEA2yhg0bRmxsLFu3buXo0aOP3PHejqamJjIzM/nhhx+4cuUKL7/8MlOmTOmwdvmdoFQqiYyM5N1338Xc3JzJkyeLGs93Q1RUFL169eKZZ55pdXK43+O8efMmX375JZs3b6aoqOiR9CtpD/T09DAyMhJ1801MTMT/17x2+3+NjY21PmNkZIRcLufixYt8/fXXOjmmB73AcHZ21hqYJRKJmCHWVLaampqora3FxMSkRZXXxMSkRSNiRUUFTU1N9OnTB29v7xYZZ7lcLvaLKZVKysvLsbKyYuDAga1Wke3t7cUMfW1tLU1NTZibm7cIIqysrP5y2v+6QnV1NSkpKQQEBDxQ3rJcLtfpb6BSqe5pPOncuTNLliyhrq4OqVSKubl5h6mezs7OHDt2jJKSEi0PBg3q6+u5dOlSq2a3GuTk5LB+/Xp+++03pk+fjq2tLdu3b6dTp04dMoj7IyCXy1tlUrQFIyOjdivRacYZW1vbDjlwtwZ9ff02K3wa3Kmid6dj9PDwEAMkR0dHLl26RHZ2ttbnrK2t70pt0/T3GhkZtet6KpVKkpKSKCgowNbWFmtr63Yfu4GBAZ6enm0GOu2Fhk6WmppKbW0tV65coaqqitzcXI4cOYKNjQ329va4urqKQh/BwcF4enry5Zdf8r///Q+pVIqenh6Ojo48+eSTPP/88/dFfZJIJPTo0YPffvuNTz/9lMuXL2Nubk5VVRXz58+/p3vpryeTcBfo6endcTA0NDTE3t6+Q5QuOzu7R1pxQiqVYmxsjJubG46OjgwYMECUKtVwJB/FhasgCNTV1REdHc0///lPzp49y1tvvXXHSacj0NPTY/Dgwezfv1+k2bWXvlRfX09AQAAeHh537QXpKEpLS/niiy/YuHEj5eXljxz1ydTUFA8PD1xdXbGzs8PBwQF7e3vs7OywsrLCzMwMc3Nz0aVVJpOJnOzb/9vWv3//WmNj4yNdZfs92jMWaCaHpqb/j72vDo/i+r8+68nG3d0dQgRIAoSQAEFarLi0QFu8QIEWaEuhAjVokeIuBYK7hwCBCBBCEuJG3Da2Wd95/+A382aJJxuk357nyQO7O3J3dubej54jbvLdmjP8OBwOGAwGhgwZgjFjxjSbVSMXFzqdDg6HA2NjY8yePbtZw4ROp1POC4vFAp1OB5/Pb9JPIZVK37n7738N5O+jLHSmgZN8Fvl8PlUyXFxcDE1NzQ6pH4eEhOD69etYvXo1FixYgH79+kFPTw8NDQ1ISkrCpk2bkJGRoUBy8DpevHiBhoYGjBo1CvX19dDV1UVVVVWn9LP+w9vF1q1bsWHDBvB4PFRVVWHt2rVN+sv+TZDJZIiPj8ekSZMgl8upAFNpaSmePXsGOp2OwMBAfPXVV/Dz80NlZSX27NmDgoICBAQEwMLCAgwGAwKBAAkJCfj2229Bo9G6rFQ/duxYCIVCHD16FFu3bgWDwYC1tTVmzJjRqeO9u9ZwJ3DlyhVoamrC29u7XeUszYHNZnfYUFRXV3+nRFpaAtnUQ6Yy3dzc8NlnnyEyMhIHDx5EdHT0O6nSLJPJUFJSgoMHDyI9PR2rVq2ihGK6AhqNRtXPdxQeHh7Iy8tDeXm5Uh2LsrIy/Prrr9i9ezdVqvK2oKKiAicnJ3h6esLLywsODg6wtbWFoaEhFUUlG0Eb/zV2CoCuZwjkcrlSn693wVBWV1eHqakpXrx4geLiYoVa9YqKClRXVyvUjNvb20NdXR1paWlgMpmt1pOTUc7s7Gy8fPmyxSZYEiYmJtDQ0KBU2hsHXnJyct5pfZz/BSjbsSAIAnK5vEMlD3K5HD/++CP279+vUAbi4eGBLVu2tPvcAwYMwKxZs/Dbb7/h448/BofDAYvFglQqpcQIV6xY0aoWg1gsBovFgpGREYqKisBgMN6L9fc/NIWBgQH09fVhZWUFuVyOXbt2ve0hdQrh4eEICgqiMigtgcFgICAgAM+ePWtxGzabTdkkR48exfnz57FixQoMHz6cCh4RBAGhUIjAwECcOnUKM2fOhKqqKpYvX46FCxc2sUnMzc2xYcMGyGSyZu0dLS0tzJw5E5MnT6bK58iyxM5AqY4FuWDL5fJ2q6BSA2Eyu2yAVFdX4+effwaHw8Ho0aMxcuRIGBoaUhHT1o5vZGSETz75BD179uxw0y1ZX9iV8RMEQS3gbyL7QYpKqaqqYsKECRgzZgxSU1MRERGB48eP4+XLl024k982RCIR7t27h3nz5mHx4sWYPn36G1NTvXv3LqKioqjXDQ0NuHbtGqKiouDr69tERXzZsmUdiqARBIH6+nps27YNu3bteqMsY6RDoKWlhZ49e6J///7o168f3NzcKJGkxkwybT1L7zraO3Zy/iLnssavScOMPFZHr4eRkRH8/Pxw8eJFXL9+Hb6+vuByuRAIBHjw4AHS09MV6qkHDhwIOzs7HD9+HMOGDVNoRpTJZKioqICenh5UVFSgq6uL8PBwHDt2DEeOHIG/vz9VrkdmAeVyOTQ1NcFkMtGzZ09YWlri6tWrGD16NOU41tTU4NSpU+8M3axIJMKxY8dw5swZDB8+HEePHkV9fT0WL14MfX19/Pnnn8jLy8PcuXMxceJE6Ojo4PTp01i5ciXmzJmDmTNnUploiUSCQ4cOYc2aNVi/fj0mTZoEABSDTkJCAvbu3YsHDx6goqICqqqqcHBwwPTp0zFixAiFhZsgCJw4cQJnzpxBSkoKtLS0EBAQgG+//VahQbmzULZjAfz/rFhHHIvjx4/j5s2bCqWfHR0Xm83Gp59+it69e+PEiRN4+PAhKisrweVy4eXlhenTp8Pf37/V0g7yvs3Pzwfwam4uKCiAh4dHq+d+FwIK/6EpGgei3teyy/Yq2dNoNHA4nDZ7a0i8ePECLBYLtra2CnoiAKhepcrKSurY6urqzVbbkH0UrY2rLaeoI1CaBUtSfKWmpuLmzZtITk5GVVVVu6kKjx8/3mUxpvHjx2P06NGIi4vDP//8Q8mrT5kyBT169ICGhkaLNHv29vaUt9zRhUBFRYVySDpb6yYSibB27Vpoa2u3mgZWNmg0GqUU26NHD3h5eWHVqlW4c+cOjhw5ghs3blA12O+CkyGXy5GRkYE1a9agsrIS8+fPV3ozU3NIT0/HlStXFN4jHdDHjx832X7x4sUdOr5EIsGxY8ewZ8+eN+JUMBgMsNlsirFo1KhRCAwMpK5l4+v5PjsRXQFBEMjNzUVSUhJqa2tx//591NXV4eHDh9DU1ISOjg7s7Ozg4ODQ4QmZy+Wif//+6N+/P/bu3YunT5/C0dERmZmZqK2tbRIp0tbWxvfff4+FCxdiypQpCAkJgY2NDXg8HtLT05GTk4P79+/DzMwMTCYT/v7+WL58OX799VcqmsbhcFBYWIjExESMGTMGy5Ytg6amJoyMjDBp0iRkZ2fjs88+Q//+/aGhoYHo6GgqMPMugDT6Hzx4ALFYDAsLCyQkJOCnn36CsbExzMzMwOPxsHHjRjg7OyM4OBhSqZSi2XwdEokE9fX1Cmx5IpEI586dw7Jly8BgMBAUFAQ7OztUVlbi6dOnqK2tbRIwOHXqFIRCIfr27YtZs2YhMTERx44dQ0pKCu7cudNl6sfucCykUilkMlmHgli6urowMTFpsfG6vSCVgXv27Klg7Lc3YOHj44Pc3Fz89ttvKC0txfHjxzFnzhwEBQW1up9AIPjPufgP7xU0NDTA4/FQVFQEPp8PFosFgiAglUpx5coV5OfnY+LEie/cGq0Ux4IgCJSWlmLnzp3466+/OiUWpwyudDKy6uXlBXNzc7i6uuLw4cP4+OOP4e7ujpUrV7YoG9+VKCyNRsP+/fu7OHp0OMujbJDXgMvlYtiwYRg2bBiKi4tx6tQp/PPPP1Rtq1AofGtjJFFWVoaNGzdCIpFgwYIF0NPT69aHa/bs2Qp1jFKptNUIC5mBao9RJpPJcPPmTezcuRMFBQVKG3NzYLFYVLng1KlTMXTo0C43+v1bIZFIcOnSJfz000/UexwOB1FRUVT2avTo0VixYgUsLS2hqqoKIyMjcLncJo6ZmpoaDA0NKQeERqPB3d0d69evx/bt23Hr1i0UFBQgMDAQM2bMwOnTp1FXV0cZfjQaDX369MGJEyewd+9e3LhxA48ePYKmpibs7OywatUqqoSJZIiZN28e3N3dceDAAdy6dQtSqRRGRkYIDQ3FsGHDKMeYRqNhwoQJ0NLSwu7duynHady4cZgxYwZCQ0O7lUa8o2AymRg0aBC++OIL/PHHH/j222/x4YcfYsWKFThz5gzWrVuH8vLyDgdCCIJAamoq/vzzTxgZGeHnn39WEEIkM8qvP9MFBQXYs2cPPvjgA8rpmD59Ok6cOIHY2FgEBgZ26fuyWCylO3dCoRBCobDdJBN0Oh2DBw/Gzz//jClTplD3A4vF6tT8IZVKW82Ik+tQc9DQ0MCMGTMwevRo8Hg8aGlpNYnmNoeGhob31rEgCAJisRhCoRBisRgymQwEQVBrEIvFoqLmra1JEokEAoGAOgbw/4NMXC63xcoLMqNeX19PsX+2lJGXy+Xg8/mor68Hg8GAhoaG0iLhrUEul0MoFEIgEFD2JIPBgIqKilKo398GhgwZgkePHmHVqlW4ceMGLC0t0dDQgMTERMTExMDCwgJLlix5Z4I/JJTiWPD5fJw5cwa//fYb+Hw+pWfRkUiLMiIyPB4PL168wM2bNxEdHQ1vb2/s3bsXpqamOHnyJL788ktcvXpV6c22HQE5QfB4PKrEoPGDJxQKUVJSApFIBBUVFejo6IDJZKK4uJgqdQD+f+Mcl8uFVCpFSUkJ1NTUqAdfS0sLmpqakMlk1IQgk8kgk8nA5XKhra3drkXFxMQE8+fPx5w5cxAbG4t//vkH165dQ3l5Oerq6t6qeFZVVRX+/vtvqKur49NPP22R07k7kJCQABMTE6oEqvGEzOfzUVhYiKqqKlhaWsLIyKjFB58gCGRlZeHo0aPNZj6UBSaTSdERfvrppwgICOhUb8n/EjgcDhYsWIAFCxa0a/sxY8ZgzJgxTd5XVVXFZ599pqD2DrwynpycnLBx48Ym+/Tt27fZc9jY2GDdunVYt25dm+NRU1NDeHg4wsPD29yWRqO1uG1ycnKb+79J6OjoUE2Murq6sLS0hIWFBTQ0NKCrqwsul4v6+voOz02ksvCLFy8we/bsJurqLT3D/fv3h4+Pj4KhNXDgQJw6dQo5OTlddixIg0+ZEAgEEAqF7a6hJggC169fR35+Pg4ePEi97+Pjg5MnT7b7vHK5HFVVVXj69ClevHiBysrKZnt4NDQ0sGLFimaPIRKJIJFIKCrR9uJ9dSzEYjHKy8tx584dXLt2DfHx8SguLoZAIICmpib09fXh6uqK4OBgjBo1qon4K/D/meIePnyIU6dOITY2FoWFhQBeMTP5+/tj/Pjx6N27N3R1dZu913/77TesXbsWurq6OHjwIIYNG9bseOvq6vDLL7/gp59+gqOjI3766adm50VlQiwWIycnB6dPn8bZs2eRlpYGmUwGU1NTDBo0CDNmzICFhcU7F9lvC8HBwVBXV8fRo0fx8OFD3L17FxwOBxYWFli6dCmmT58OY2Pjd+57KWW2ysnJwYULF1BfXw9jY2OMGDECI0eOhK2tLdTU1Nr1pbtaBgUABw8exI0bNzBgwADs3LkT5ubmlMPyySef4MiRIy3uK5PJIBaLoaKi0q0/EllDffDgQRQVFQF4JRDz8ccfg06nIy4uDkVFRUhPT4eRkRGWLFkCZ2dnTJgwAb/99hv8/f2p7zNnzhwMGzYMhYWFGDJkCCZNmoSHDx9CKpVi6NChWLBgAcrLy3Hs2DFER0ejqqoKeXl5CAkJweLFizskbsRgMNCnTx/4+/ujoqIC586dw7lz5/D8+XNUVVWBz+e/lUm7vLwcO3bsgKGhIT766KM3EhkBgG3btsHNzQ1WVlbQ1taGp6cn9PT0wGAwEBERgR9//BFyuRxWVlbYtm0bnJycmj2OQCDAjRs3cPny5W4bq7q6Ory9vTF79myMHDlSKc/avwlSqRTl5eUQCAQwNTVFVVUVamtrQRAE1NTUoKen1yQLUV9fj5KSEhgYGFB1riQHOJvNhpmZmcJcIpPJUF1dTdHGMhgMqKurQ1dXV+GeJXVVSNXcqqoqCAQCqgdGT0+vSVSRjCZWVFRQ2URVVVXo6Og0cbYFAgHKysqgoqICbW1tVFdXUzoYTCYThoaGVMnouwo2m01dMyaTSbGPka/pdDoV0e0IGhoakJubCy0trRaf1+Zga2vbJCJKPmO1tbUdGkNz0NbWVrqSLulYtBd0Oh0XL15sck07GiktLCzEt99+i0uXLlF6A82tt4aGhi06FqmpqYiOjkbv3r1hZmZG6RS0tW6/j6VQAoEADx8+xE8//YR79+5BIpFAVVUVKioqVOAwPz8fqampiIqKgpubWxPHQiqVIj09HZs3b8ahQ4cgEomoWnwajYbKykocP34cZ86cwcyZMzF//nzY2tq+00yXjSGRSBAdHY0ffvgBkZGRoNPp0NDQAJfLRU1NDQ4cOIBLly7hl19+eS+JKHx9fdsk4HjXoJQ7p6ysjJJUnzx5Mr799tu3YrwMHjwYEyZMoBRvG4NGo+Hbb79tMX1XVlaG27dvw9vbG/r6+tDW1u4WYajc3FwcPHgQ/fr1w/Tp06mUMJvNpoySBQsWwMrKCl988QXi4+NhYWHR6jHlcjnKysrg5OSElStXIjIyEr/++itGjx6NrKwspKamYs2aNWCxWDhw4ADc3Nw6rJhKglS4nT17NqZMmYLHjx8rKHTyeLw3rvCdlZWFXbt2wcLCAv369XsjE6JQKMQff/wBfX19SKVSTJw4EfPmzYOOjg42b96M+fPnY8CAAfjxxx+xdetW/PXXX02OIZfLkZCQgIiICEo4TZmg0+kwMjLChx9+iEWLFnXIWFIGCIJAcXExCIKAoaHhOyO09rpxUV1djfXr1yMqKgrfffcdTp8+jfj4eDQ0NCg07DaOjkZHR2P58uX44osvoKenh3/++QcJCQng8/nQ1NTEwYMH4enpCRqNBqlUitTUVOzfvx+3bt0Cj8cDh8OBp6cnJk2ahIEDB1LHfvr0KVatWgUfHx9YWVnh0qVLyMjIAAAEBARgwYIF6NGjB3UtCYJAWVkZjh8/jpMnT6KoqAgEQcDCwgIjRoygxD7J+TA1NRXffPMNXFxcEB4ejtOnT+PBgwfg8Xjgcrn44YcfMHTo0HeaurMx4xj5ujPBoNfLcMhSCgaD0aF7lWwm7i5oaWkpVb8HeGWwCgSCdm/fnO4TGYzrCE6dOoWoqCj0798fQ4cOhYmJSbPOSWvfl8lkIiUlBVevXoWnpycCAgLg4OAAY2PjVrOwJGnB+wKpVIq7d+9i1apVePLkCTQ0NODi4gIfHx84OTlBXV2dChYmJCTAwMCgSXaMIAjk5eVh48aN2Lt3L9TV1REYGIiBAwfCyckJNBoNGRkZuHXrFuLj47FlyxaIRCKsXLkSFhYW73SAgURaWhr+/PNP3L59GxoaGujduzfCwsJgbW1N6aJcv34dK1aseOtMi90FgiBQWVmJhoYGWFpavu3hKMexaGhoQEVFBRwcHBAYGPjWIqIkZR1BEM0uNAMGDGhx36ysLHzyySdwcnJCeHg4+vfvDzs7OxgZGSk1gldTUwMej4fQ0FCw2WwqEkVGj3r27AknJyewWCyYmppCLBYrTN7kd3vd8+ZyuRgxYgQVddTS0kJ1dTVUVVXBYrGQlpYGVVVVMBgMpamjq6qqIjAwEL1790ZOTg7OnTuH69evIzU1FWVlZW+UTSY6OhpHjx6FtbU1bGxsuj01SKPRMG3aNMyZMwdFRUX47rvvMH78eOjo6KC4uBgDBgyAq6srZs2apaB83Bg1NTW4c+cOHjx4oPTxMRgM2NjYYPbs2fj000+V9pt3BFKpFLt374ZUKsXcuXObqEm/LbR0b2RlZeGPP/6Ao6MjPv/8c5SVleHatWv45ZdfwGQyMXbs2CYG5PXr18Hj8WBvb4/58+dDKBQiPj6eMuZJJfmVK1ciISEBQ4cOhZubG3g8Hu7cuYO1a9eirq6uifhjREQEHB0d0atXLwwbNgxJSUm4dOkSysvLsWXLFtjY2IBOp0MsFmPLli3YtWsXwsPDMWHCBMhkMkRHR2Pr1q0oLi7Gd99912ROfvz4MfLy8sDlcjFt2jTQ6XQkJSXB3Nz8nXEAlYHGwoSNHUqCIJoIhLJYLGhra6OhoQFlZWUtriOvo7tZ0kjhSDqdrjTDuKGhoUOORXOoqanB48ePERoa2u59UlNTYW5ujtWrV8PLy6tT53Vzc8OmTZuQk5ODK1euYNeuXaDT6Zg7dy6Cg4Nb3K+qquq9cixevnyJHTt24NmzZ9DQ0MBHH32EpUuXwtHRUcEZIwgCtbW1KCsra/Ls8vl83LhxA8eOHYOqqipGjRqFr7/+ukmQafLkyVi7di1OnjyJAwcOwMfHBxMnTnynequag0gkwrVr1xAZGQkmk4kPP/wQK1euhKOjI/VMTp06FefOncOSJUveGYY7ZUMikeDw4cNIS0vD33///baHozxWKIIgoK6u3mElTmVi79698PHxwbhx4zrsCDCZTLBYLDx//hzPnz/Hzp07Kc+3V69eVK28MhgxWCwWSktLYWlpSTX5kosem81uMjkwGAwwmUzU1dVRPRMVFRUKk+TrzW40Gg0EQcDa2hrGxsbYv38/XFxc4OXl1WL9dmfBZDLh4OCApUuXYtKkSbh27RouX76MhIQEFBQUvJFmb4IgcPr0aYoFrLsnRA6HA29vb5iamsLIyAgCgQCVlZUwMTFRaOw2NTVtNkpCEAQyMjJw/fp1pfep0Ol02NjYYP78+fjss8/eWvSZRqPBzs4OBEG80xFwEjQaDV5eXvjll1+gqqoKiUQCd3d3rF69Gjdv3kRQUFCTMoNbt27h999/x6hRo6hoKfks02g0iMViXLlyBXfv3sWiRYuwevVqsNlsyGQyDBo0CF999RWOHz8OX19fuLi4UMel0+n49NNP8cEHH4DFYkEgEIDFYuHQoUOIiYmhSq3S09OxdetWTJ48GZs2baIMjhEjRmD58uW4desWhg0bhoEDByqM++nTp1iyZImCsmrjcf9boKurCxaLRdFnA/+fcjcuLk5hW1VVVdjZ2QEAnj17hrKyMgVaSJJc403TLZPNsiwWS2mGUW1tLerr69vcrr6+nioDfH0ey8zMxPHjxzvkWAiFQhgbG3e5mVYul0NdXR3+/v5QUVHB7du3mziKr6OiouK9KoW5ffs2EhISIJPJEBISghUrVjQrDkv2VDbXb1JQUIBLly6Bz+fDz88P06ZNazZzbWVlhc8//xzPnz9HXFwcDh8+jEGDBrW7lP1tIT8/H48fP0Z1dTUcHBwwZswYBaeCxMiRI3H58mUcPHjwnSCfUSbIpvwrV668lQBic1CKY8HlcmFgYACxWNzlKEhXoKGh0emUsbGxMaZNm4bnz58jLy8PpaWluHLlCq5fvw5ra2sEBwcjKCgILi4usLa2ppqqO3OeHj164OzZsxRzibGxMZydnVvcR0VFBR4eHrh79y4aGhrA5/PbrURMsjh5eHhQ3Pc8Hq9b0vc0Gg2mpqb4+OOPMWLECNy5cwfnz59HXFwc8vLyuv2B5vF4iIiIgI+PD7y9vbs1jWttbY3ExERoamqipqYGUqkUFy9eRHx8PJhMJnJycmBvb4/CwkLo6Og02Z9UzlR2wzaNRoOxsTE+++wzfP7550ovoegImEwmJk+e3OXjNNZ46U7o6elRIkfAqyCAu7s7vLy8kJmZiZycnCaOhb+/P/z8/BRKMBovamKxGBcvXoS2tjYmTZpEZSgZDAacnZ0REhJCNe43diw8PDzg6OhIBRlUVVURFhaGixcv4sGDB1S50uXLlyEUCqGtrY3z589T+9fX14PNZqOyshIvXrxo4lg4OzsjICBAgdHnXTYgOgtbW1sYGRkhKioKd+/ehb29PcRiMeLi4pqIVDEYDDg4OGDQoEGIiYnBjh07EBYWBnV1dar51cDAAA4ODm/cUSb7LJTlWPB4vHbRWt+4cQNDhgwBh8PB7t27FfqBSkpK2jTmX4ejoyMiIyNRWloKGxubTq1BpaWliImJQWpqKrKyssDhcDB27Ng26WZfD8a9yxCLxXj27BmKiorA4XAwZsyYNkuiXwdZihobGws6nQ4nJyf06tWrxe3JagmScaioqAiWlpbvHONQY+Tn5yMrKwsA4OXlBXt7+2bnMRqNhtDQUERERHTaDiFZ48rLy+Hi4gIDAwPIZDLExMSgtLSUmk/pdDqSk5ORl5eHwYMHU5nG0tJSZGZmoqamhmLus7GxUWi+5vF4SElJga6uLnR0dJCTk4OqqirQ6XTo6urC0dERWlpalG2Tn5+P3NxcFBUVIT4+Hi4uLjhz5gw1ZgMDAwQEBLzxuV0plqWhoSE8PT2RkJCAlJQUDBgwQOnNZu2Bra0tnj9/DjabDX19fepienp6thkhsba2xsaNG5GVlYWoqCg8evQIqampyMnJQU5ODrKysvDPP//A09MTAwYMgI+PDxwdHWFlZdUhr97ExARTpkzB2bNnce3aNTAYDAQGBsLV1RVeXl4KBoqnpyfVxDl79mycOnUKt2/fhqOjIz777DNYWVlRoigffvghtZ+2tjbF+lNUVITa2lqIRCJcvHgR1dXV8PLywpQpU2Bqatrxi9xO6OvrY9y4cQgODqYcjAcPHqCgoKBbmaTu37+Pu3fvwsHBodOqke3B0KFDsWvXLmzbtg0CgQBDhgxBfX097ty5g7Fjx+LUqVMoKipCVFRUE6MOeBVJunXrltKVztXU1DB69GjMmjWrWaeivLwcL168QFlZGcRiMQiCAJPJhKenJ+zs7ECj0XDz5k306NEDxcXFlPKys7MzPDw8QBAEqqqqkJycjMrKSkilUujq6sLJyUlh4UtNTcWzZ88gk8lgb28PNzc3hXubpDTl8/koKCiAXC6HiYkJfHx8moybrH3vbnA4HBgYGCi8p62tDX19fWRlZTVriFlaWrZa1y2TyZCdnQ0VFRVYW1srfKapqQlTU1PweDyUlpYqfKajo9PkuObm5pQWBfkMpaenQyKRICIiAhcuXGhyfkdHx2azd4aGhm81u/ymYGlpiYkTJ2Lfvn1Yu3YtLC0tIZfLUVtbi9GjR+PAgQMK21tYWGDOnDkQCASIiIjAzZs3oaurC5lMhsrKSowbNw6WlpZv3LHQ09MDh8NBXV2dUo7XXseiqKiIEtPbtm0bxo0bR31WVVXVpsP/+nnc3Nxw/fp1HD9+HHw+H+bm5k2IEYBXTl5LhnROTg4uXrwIGxsbzJw5E+7u7u3KgLxPjkVVVRVKS0shFotha2sLKyurDt9zUqkUFRUVKCsrg7q6OtXo3hKYTCbs7e2hrq6OyspKZGVlwdvb+40RonQGlZWVKC8vBwCYmZm1OqfZ29t3uczz3LlzOH/+PNasWYOwsDBUVlbim2++wZ07d3D8+HGMHDkSHA4HW7Zswa1bt5CYmAgWi4XU1FTs27cP0dHREAqFIAgCGhoa6NevHyZPngxnZ2eq32Xt2rUwMjKCra0tYmJiUF5eDpFIBC0tLYwfPx5TpkyhgpXx8fE4e/YsMjIyKFbU9evXU+P19fVFnz593rhzqBTHwtLSEkOHDsWTJ09w5coVeHt7w9fX943fkLq6urh69Sqys7Ohp6dHeXXW1tbtmng4HA5cXV3h6uqKSZMm4dmzZ4iOjsaTJ0+QlpaGnJwcREdHIzo6GmZmZvD390ffvn3h6ekJJycnmJqathmBYTAYsLOzw9KlS5t8NmHCBIXXjSdxDw+PFpVFDQ0NsXnzZuq1paUlFi5ciPLycly6dAn6+vpYvXo1aDQazp49i7i4OJSVlXWrY0GCdDACAgJw5coVnD9/Hvfv3wePx+sWhg6RSIQLFy4gJCQEXl5e3eap+/r6QlNTE8nJyeByuejduzc0NDRQXV0NLpeL3377DVevXqUyOI0hl8uRn5+P6OhopY6JFDlcuHBhsynR6upqXLx4EZGRkeBwOCguLsbjx4/h7OyMZcuWwcrKCnK5HN988w0+/PBDCAQCFBQUgM/nY/DgwfDw8IBcLkdeXh4OHToEoVBI9TX16NED8+bNg66uLoBXkZTbt2/jwYMHCAwMxMqVKxUM5e3bt0MikUBLSwv19fUQCATg8Xj49ttv0b9/f4Vxy2QypdbGduS+Ixt55XJ5s/uRfUutgdQzeX07kqaYVPJuC2w2m2I8IiGVSsFisTB//nzY2Ng02YfD4bT4/tsI/nQFDAYDTk5OGDVqFGV02tvb44MPPoC9vT2AV87Xhx9+CCcnJzAYDNBoNMycORPm5uZ4/PgxKisroaOjg+DgYLi6ulKOLwkWiwU/Pz+sX78et2/fRnp6Ovh8PlRUVDBgwAD079+fWkssLCwwevRoeHt7N3GGraysMG3aNIUsVFdgYmKiVGeGZANrq49k3rx5AF7dwx9++CF++eUX6rOMjAxs3bq11fPcvXtXQViURqNBIBBg//79VAapOXpTLS0thXM1hqOjI5YsWQI1NTWKIaktXSGxWNwite27iLq6OqoqwcDAoFOlYxKJhHLqSBaptqCjo0PNC+9D6ZhQKKSuk7q6eqs2p46OTpeqGGg0GszNzakgA0EQSE9Ph1wuh7a2Nl68eIGQkBCw2WwkJyfDw8MDdDod1dXV+O233/Do0SNMnDgRzs7OEIvFiI6OxqlTp9DQ0KCgQwQA165dg6enJ/r16wdHR0dUVFTgyJEj2LhxI0VYQAYEDQwMUF1djdGjR8PLywtr1qyhjqOtrf1WGvCV4lhoaWlh6NChSE1Nxblz5/DDDz/ggw8+gLOzM6W90NaXs7Oz67JXZWdnh1mzZjV5vzP19pqamggKCkJAQABKSkrw+PFjxMXFITExES9evEB+fj5Onz6NCxcuwMXFBb1794avry/FuPQmNRVaApvNhoGBAbKzs3H06FEQBIHMzExYWFjAxMTkjY7F1NQUn3zyCfz8/HDq1CmcOnUKaWlp3ZK9IMscHB0du1UYx8nJqUm9Kjk5fP3115T2yOtjEAgEyMjIoOiGlQVtbW188sknzdbhAkB2djbu3LkDV1dXzJ8/H4WFhVi2bBkGDBiAoKAgiv8feGUQLFiwAHPmzIFIJKKeXzqdDjMzM4wbNw5OTk6g0+k4f/48zp49i+DgYIqVJCwsDMHBwVi+fHmL5ZExMTH4+uuvERoaCoFAgPnz5+PQoUNNHAtlZyxaei7FYnETcU8+n4+amhpoaGh0SveDTqfD3NwcOTk5KCoqgpWVlcKxyWji6+VytbW1TcodKyoqIBaLYWBgQM2VJKW2ubl5u/Qq3mewWCz069cP/fr1o94LCAhAQEAA9drd3R3u7u4K+3G5XIwaNQqjRo1qcszm2NrIyG1jh6M5eHp6wtPTs9nPvL29sW3btlb37wgsLCyUOpc1NDSgqqoKYrG4XeWSZM9PY+jp6WHo0KGt7ldWVoaUlBSF99hsNnr06AHgVQaVjDi/fuzWxpKRkYH79+/D398fYWFhSExMhL6+PhwdHZvdp6KiQunZ4e4EmSUCQDnIHUVjwd329gU13q6lYEpbkMvlbywz1Pg70un0Vr9jS+J/HYG5uTnYbDaV8U9NTYWenh48PT2RlZWFhoYGMJlMitafIAjExcXh/PnzWLJkCb7++mtqLfXz80NlZSXu3buHhIQEhISEUOeh0WgYPXo0pk2bRq07MpkM69evR0JCAry9vaGhoQF7e3vY2dmhoqICNBoNBgYGCvPj24LSdCwuXryI+vp6iMVi3LhxA48fP4adnR1FAdeWY7Fjx44uN9y6uLjAxcVFqQY92YBramqKwYMHIycnB48fP8azZ8/w4sULZGVlISsrC4mJiTh58iR69uwJPz8/KmvzevnDm4Smpib69esHiUSCkpIS0Ol0ODo6IjAwUKEp8U2BRqPBw8MDtra2cHNzw549e3D37l2ll7k0NDQgMjISAwYMUDDklInIyEhkZ2e3+PmUKVNaTOVXVlbiyZMnSp18mUwmvLy8mjWeSIjFYkilUqioqIDFYoHL5YLNZjergOvr64t+/fo1m/kg97tz5w74fD4yMzMhEomaNRBaexbd3NwwePBg6jr16dMH9+7da7KdRCJRih5AW6iursbjx48xbNgwqKioQC6XU3TN9vb2MDc37/Ax2Ww2QkND8ccff+Dq1auYOXMmmEwm5HI5cnNzERMTA0tLyyb0z2lpacjNzYWLiwuYTCakUimio6NRW1sLb29vKno9cOBAbNmyBadOnUJwcLBCVJKkA2Wz2e90nfR/aBsWFhZKFbSUy+UoKSkBj8drN1vb62uZrq4uBg8e3Oo+YWFhncratJZNS01NxfXr11FcXAwNDQ2Ehobi9u3bsLGxadGxyM3Nfatirh0Fl8ulnvHq6upOZWxZLBYV4BQKhe0qo6upqaFYKFsSygNaz/qKRKJ294B2FRwOh7pODQ0NEIlELQogK4Nu2NzcHAYGBigsLERNTQ1SU1Ohq6sLa2trxMbGUjpEDQ0N6NmzJwiCwM2bNyEUCpGXl4fff/+dOlZ9fT3Ky8tRUVGB3NxchfM4OzvD09NT4ZknKYZLS0vf+XtZKY5FcnIyVq5cqXAzVVVVNYn+tYa//vqry47FrVu3YGFhoRBFPn36NAYMGECVaHQFbDYbTk5OcHR0RJ8+fXDlyhVcunQJxcXFaGhoAI/Hw+3bt3H79m3Y29sjICAAoaGhGDx4sEKT5JsCjUaDpaVlk1Kctw01NTWMGTMG5ubm2LRpE86fP6905+L+/fsU81Z3ZI6ePXuG+/fvU68lEgkqKyvx8uVL9O/fHxMmTGhxcaysrMTTp0+VOh5VVVWMHz++VVYIa2truLm54cGDB6iurqaafn19fZtEQ1uiHW1oaMDRo0dx//592NraQkVFBUKhkFJ17wjI6E/j79DcfSASiZr0IHQHGhoacP/+fezYsQNOTk7g8/k4c+YMamtrERgY2OHmSeDVnDFy5EhcvXoVu3btopja6uvrqVKbiRMnws3NTWG/8vJynDx5EtXV1TAxMUFeXh4iIiJgZWWFwMBAajH19/fHBx98gGvXrlECmlwuF7W1tSgsLASTycSECRP+E0V8z2FmZqZUxwJ41T9RXl7eLseCIAhs3boVc+fO7VDmxNraWunBNVLgMSwsDGVlZRQdfGtrSF5eXoc1N94mdHV1KcO+oKAAJSUlkEgkHeoRYDKZMDAwgJ6eHng8HkpKSlBfX9+inSWVSpGTkwM+nw8WiwVra2uF+bmxdk5r2Z/q6mqUlZW1e5xdgZaWFnR1dZGfn4+ysjJUV1e3aGvl5+d3WWPLxMQExsbGKC4uxsuXL5GTkwMPDw+4uLjg6tWrKC8vR2ZmJuh0OjWn5+TkQCqVIjk5mWo0J0Gj0eDv799kzKSWWmNwOBwwGAyqR+NdhlIcC21tbfTp06dLx1AGd/rt27fRt29fBcfi8OHD8PDwUIpj0dDQgPT0dMTExODp06fUjVJXVwdVVVV4eXmBy+UiMTERmZmZVCP406dPMXv27E4JlFVUVCAxMZFiI5BIJNDR0UGPHj0QFBQEFouFhoYGbNy4Ed7e3ggPD4dcLkd6ejoOHDhAqXZzOBxkZmbi5s2bcHZ2Rv/+/VFdXY2kpCSkpKRQjWJaWlrw8PBAYGAg1ZQuEAjwyy+/wMjICJ9//nmTMWZlZeHkyZOwt7fHhx9+2C6mDzqdjj59+kBNTQ1isRiXLl1Sqheem5uLzMxMeHp6dkuj5ZAhQxQYNiQSCaqqqnD69GkYGxu3mKEjCAI1NTXIzMxU6niMjIwwfPjwVrcxNDSElZUVlS2xsbHBiBEj4Onp2eQ3ayltXFdXh927dyM0NJTqqYiMjGxS7tAetDc1/aYcC319fXh4eODmzZs4e/Ys6uvrQafTMWnSJISHh3fqPqLT6bC3t8fXX3+NvXv3Yvfu3ZQYpoqKCsaPH48JEyY0aaokxfWOHDkCgUCAqqoqSpjSwcGBiiSqqanh66+/ho6ODq5du4Y7d+4olK317dv3rZdk/oeuQ1NTEwYGBmCxWEqbJwsLC9vN6iSXy7Fv3z6q56KzqKurA4PBaLE8WiqVorKyklJObg5sNhtMJhN8Ph8EQSAnJwc1NTUUVXBzeN8yFmpqanB2doa+vj5KS0tx48YN+Pr6dihrSqfTYWxsDB8fH1y9ehXp6el4/vx5i7Zaeno60tLSKBZJCwsLhYwFWa4pkUiaGMgkSEG+zqwHnYG5uTmsra2RkJCApKQk5ObmUiQkr+PBgwddDmByuVyYmZkhLi4Oz58/R1VVFezt7eHr60vphSUnJ8PU1BR6enoU7b+amhrmzJnTbHklm81u0u/K4XDeaz0hpTgWrq6u+OGHH7p0jNaiIDKZDIWFhbh//z6Ki4ubRB6cnZ1hZGSEvLw8qKurU8eqra3tstIiqWodFxeHhw8f4smTJ0hKSkJpaSmkUilMTU0xcuRIBAQEoGfPnlBVVUV6ejpiY2Nx5coVZGdnY8eOHairq8O6detgaGjYofNHRUVh7969lPNCEASKioqgqamJpUuX4oMPPoBYLMbx48eRlZWF8PBwCIVCPHz4EL/++iuCg4PRv39/WFtbIzk5GUeOHMGkSZPQv39/xMXFYefOnSgtLaWuWWlpKVRVVTFnzhyMHTuWej8yMhIvX77EsGHDFCK3QqEQ0dHR2L59O2bOnNlqKU5z8PT0xOrVqym6NGWVB0mlUjx//hyhoaHd4lg0118BvIo0rV69GhKJpNnzSiQSlJWVKbW0h8lkolevXm32zQiFQuTn58Pc3Bzz5s3rVDmcXC4Hn8+nyqHS09Nx5cqVZtPsZFNy4zrYzkAoFCq1H6WlsWhqamLYsGFgs9nIycmBXC6HmZkZevbs2WTid3Z2xvLly2Fpadli6p0Eh8PBwIEDYW5ujsTERFRXV4PNZsPKygoeHh7NRoxtbGwwadIkijGKzWbD0dER3t7eTfRqnJyc8PXXX+Px48coKiqCWCwGl8uFvr4+nJycFLY3NzfHp59+CiaT+VbKIf9D50Cn0yk2KmU6Fu2NLNNoNNjY2FCiq53F/fv38fDhQ0yePLlZvQGJRIK1a9ciKCioCZkJCXt7eyQlJeHatWuoq6tDbm4uTExMWiQ3AV6VFr5P4mg0Gg39+/fHxYsXUVZWhnPnzsHCwgLTp09vErgi6bgLCgqgo6OjEKQwMzPD0KFDcf/+faSkpOD48eMwMzNros5cUlKCAwcOIC0tDXQ6HePGjYOBgYHC7+Pm5kaVVd26dQtTp05VsAUIgkBubi4uXryIjIyMbrw6/x/W1tbw8vLC9evXkZaWhitXrsDZ2bmJA/b06VNcunSpy3IINBoNFhYWiImJQWJiIthsNszNzWFhYQEzMzOkp6cjOTkZrq6uVODMxsYGd+/ehZqaGnr37t2l87cE8n54VzIZSnEsdHV1u+2CAUBxcTF27NiB2NhYGBkZNYl0aGhogMfj4eXLl+Dz+VStt0wmw7BhwzpFqygUCpGeno67d+8iJiYGSUlJyM7ORl1dHdhsNtzc3DBgwAD4+/vDw8MD9vb2lHiev78/QkJCMHDgQOzevRtXrlzBhQsXEBAQgGnTpnVoHGZmZhg7diz09PQojuSsrCysWLECf/31F4YNGwYmkwkXFxeKoaCurg5ZWVkwNzeHVCpFZmYmrKysqOtCqgIbGRlh5MiR0NTUhKGhIRgMBvLy8vD9999j+/btCA0NBZfLBYfDwfTp0zF//nxcunRJIWtRXl6O+/fvw8DAAEFBQZ2q5e7VqxdWrVqFGTNmgMfjdXj/lvD8+XPU19c3oRDtTmhpaaG4uLhFB6mhoQH5+flKnQCYTGarirMkaDQa2Gw2YmJisGzZMoopJDAwEP37929Wb+N1qKurY/z48VSPiZqaGgiCUNBhyczMxIULF5CSkoKHDx9CKpWivr4elpaWmD59equaLa+DpAbNz89v9z5toaUIPkkB2BYfPvCKeW3SpEntPiebzW62sbglkCVT7fldycjksGHD2tzWwMAAI0eObNcY/sO7BScnJ6ipqSmNcra8vJwSMG1P8MXR0RGrV6+Gv78/1fBtaGjYZgN3Y9y7d48SbWwOpAZAQUFBi46FpaUlhg0bBh0dHZSXl0NXVxf+/v4tNtuTa/n7VAoFvDLkJ06ciPz8fGRnZ+Pvv//G8+fP4ePjQ5WR1tXVgcfjISMjA5WVlVi+fDnVGA+8CpaEhYUhJiYGJ06cwMmTJ1FTU4P+/fvD0tISdDodBQUFiIqKwuXLl1FZWYkhQ4Zg5MiRTQIm7u7u8PDwQGJiImJjY7Fy5UoMHjwYpqamlFMRGRmJx48fQ1NTs13ZAblcTvVkCAQCqsRKJpOhqKgI2traFPNXc6XF6urqGDRoECIjI3H37l2cOHECfD4fwcHBMDExgUgkQnp6Oi5fvoyamhqw2ewuOxckZfXz589hbGxMiXC6uroiLy8PaWlpVPCGwWBgyJAh2L17N06ePIkBAwYorLMSiQRisRgqKipd6oNjMplQU1NDeXk5pFKp0jXKOjyet3r2dqKwsBCxsbEYPXo0/Pz8mlw0bW1tSKVSJCYmws7OjipRYTKZsLKyareegVwuR1VVFR4+fIjIyEg8ffoUGRkZKCkpofj6hw4dipCQEPTs2RPOzs4wNDRsMh4ajQYzMzN88MEHMDAwQHJyMsrKynDjxo0OOxY9e/aEt7e3QtmIt7c3Dh48iIcPH0Imk4HJZMLDwwNPnz5FRUUF6urqkJeXhx49ekAulyMzMxN9+/ZFSUkJ1NXVqeirq6sr1RxKOmu9evXCuXPncOXKFQgEAoqOcNCgQTA2NkZERAQ+/vhjcDgcEASBwsJCPHjwAD169FCY0DqKsLAwjBkzBnv27FGa0Z2VldVtTCCxsbEoKChQeE8gEODy5cuwsbFpcZIQCAR4+fKlUsfCZDLh4+PT6jZyuRzx8fHIzs5GYGAgzMzMQKPRUFhYiP3790NbWxv9+vUDh8PB2rVr4eDg0OxErqamhlmzZqFXr17g8/nQ0dGBmZkZRCIRVSdKltMZGhpSDBV0Oh1cLpeqG/3000/BZrMVav9HjhwJb29vhfOJRCLk5ua+kebt//Af3mW4u7tDQ0MDJSUlSjmeWCxGRkYGysrKmkSwXwfJOFNTU4OcnBxqzeuosV5cXAwTExNoaWk16+AzGAy4urri7t27LR6DzPbR6XTweDywWCwwGAzU1dU1G0TMy8t7rzQsSKiqqmLUqFGQyWTYunUrUlNTceLECdy5cwfa2tpgMpkQiUTg8/moqKiAmpoaPvvsM4Vj0Gg02NraYuHChQCA8+fP4/jx47h37x5VHl5dXU1p4wwfPhyLFy+Go6OjwhpGo9Ggo6ODVatWYcmSJSgsLMTJkycRExND2VeVlZWor69HWFgY9PX1sW/fvha/m0gkwh9//IGUlBSIxWLKwH7y5AkIgkBDQwPWrFlDKc6T2mTh4eEYMmSIwrh69OiBzz77DLW1tUhISMCRI0dw9+5daGlpQSqVorS0FHQ6HStWrMCePXuQkJDQpd/F0tISbDYb8fHx8PT0pNY0Dw8P3L59G8XFxfDw8KDsKh8fH0yZMgURERFYvnw5AgMDweVyUVVVhezsbOjr6+Ozzz7rdB8cGTDs27cv4uPj8csvv8DZ2Zmic298vd4Uus2xkMvl4PF4KC4uRm1tLeh0OnR0dFoUxGkNQqEQdDodYWFhrdZRTp8+HQYGBp1ibykrK8PRo0dx7949pKWlIT8/n6oHtbGxwaBBg9C/f3+4urrC2toaGhoabX4HBoMBDw8P9O7dGydPnkReXl6Hx0Wj0fD06VM8fPiQqiUVCoVITk5GfX095HI5OBwOvLy8IBAIkJmZCVVVVeTl5SE0NJTq9aiqqkJhYSGMjIwox4JGoyE5ORnR0dHIysoCj8eDQCBAbGwsamtrqWZcclEZOXIk/vnnH8TExKBfv37g8/lISEhAQ0MD+vTp0yVBOhUVFcydOxfHjh1TmjNQVFRENTopu8781q1biIyMVHiPwWCAy+Xiyy+/bDECSPKpKxMsFqtNasy6ujrcvXsXUqkU8+fPp7I4GRkZWLZsGfLy8iCVSsFms1ulLWUwGDA3N2/1GTMwMMCgQYNaHU9jilASzUX0+Xw+kpOT35kU73/4d0AikeD06dO4evUqFi1a1K6gSFpaGo4ePYqkpCQAr+bFr7/+ulU1Y2XCzc2tVXKGziA1NZVSWG4NNBoNY8eObfIcdrQsSiqVQlVVtdWIKpvNbpVVKDc3F4cPH0ZiYqLC+SdPnoywsLAm2yclJb0xliJlw8DAABMmTICzszNu3LiBR48eUYxxUqkUGhoa0NHRwcCBAxEYGNhseS6bzUbPnj3xzTffwN/fHzdu3EBiYiKSkpJAEAT09fURGBiIQYMGITQ0FM7Ozs2uX3Q6HeHh4WAymTh16hTi4uJQWFiI3Nxc6OjowNnZGUOGDMEHH3yA5ORkXLp0qcXvJZFIcPnyZQUClNc/j4qKUnjPyMgI5ubmTQxldXV1DB06FLq6ujhz5gyioqKQn5+PvLw8GBgYoHfv3hg3bhxCQ0MRFxdHPb+dhYmJCXR1dVFVVQVLS0sqA+Hh4UHZuo11dLS0tLBkyRKYmpri+vXrVMk3h8OBrq4udU27AjabjeXLl+O3337D4cOHwWKxoKamhoEDB/47HIuGhgbEx8fj3LlzeP78OUVfRqPRqAvp6+uLMWPGwNnZuV0NKmSpTmZmZquOhZubG6qrq5GSkqJQT+ns7NzmBJifn49ff/0VZWVlkEqlUFNTQ1BQEMLDw9GnTx/Y2trC0NCwXZzfjcFkMikjrKMRE6FQiN27d+PYsWNQVVWFk5MTrKysoKqqihcvXqC4uJhSTnZycqIcBSMjIwgEAvj6+qKhoQE5OTnIzs5GWVkZnJycYGBgAJFIhOPHj1NRBUdHR8rpy8vLQ0FBgcIiwmKxMHHiRBw6dAgnT55Ev379UF5ejlu3bsHExAQDBgzosvHu4uKCwMBAXLt2rUvHIVFXV4eamhrI5XKl022OGjWK0mwgwWAwoK2tDVtb2xbPJ5PJlL7IGRkZtVnnz2AwQKfTUVZWhrKyMmhpaaG6uhp3796FQCCAnp7eO0lJWldXh/j4+Lc9jP/wLwNBEEhJScGlS5daLLl5HZqamhR16s2bN/H06dM3yrinra0NOzs7JCYmKq1fIC0tDYWFhW0GX2g0Guzs7FBaWor09HSoqKjAwcGhw6QoOjo6SExMpPRyXgdBEEhLS2uVRTE1NRVZWVmYPn26gqPVnBAk8EqduKXzvQ/Q0dGhgpoTJkygGP0IggCLxQKHw4G2tjaMjIxa/D1IRktTU1OEhoaisrKSWodUVVWpoK+mpmaLxCM0Gg0sFgsVFRXIzs5GbW0tfHx88OWXX1IOjpmZGaqrq/Hw4UMqQFhVVaVQniORSPDXX39h4MCBWLx4cbudUzab3SLDmLa2NoKDg+Hi4oIZM2agvr4eBEFARUUFRkZGsLS0BIfDwbJlyzBhwoQuieWpqKhg8eLFGDt2LNzc3Ci2NkdHR+zevRtCoRAWFhb4+uuvMWbMGPj4+MDGxgZjx47F8+fPMXPmTBgZGYHD4UBTUxNmZmaUI+fo6IgffvgBLBYLZmZmCuf18PDAjh07YGBgoLDer127FpMnT0afPn2wYcMGioiHxWI16bssKirClStXcPfuXfTt2xcTJkxQerACULJjUVxcjMOHD+Po0aPIyclBbW1tkwgHnU5HTEwMLl++jHnz5mHs2LFNaPT4fD5OnjxJva6vr4dMJsNPP/2EBw8ewMLCQsEh8fHxgbu7Ox49eoT9+/ejqqpKoYzj999/b5MqUigUori4GIaGhggNDcXQoUPh6ekJU1PTLqkXEgQBgUAABoPRrhr2xoiJicGxY8fAYrGwaNEieHh4gMvlgslkIioqCsnJydS2WlpaMDc3x4sXL1BbWwtNTU34+PigoKAAcXFxSEhIgEgkgpmZGVgsFuLj43Hs2DEIhUIsWLAAvXv3hpqaGlgsFpKTk5ukC2k0Guzt7dG7d28qIlBYWIjHjx9j8ODBbUbM2wMWi4UhQ4YozbEgCILKvCjbaHZ2dqZ6BWpqakCj0aCmptYuFWZlOhY0Gk1BZb4lcLlcip7xu+++g0gkohyhqVOnwtfX951zLORyOUpLSxEXF9et59HU1MT8+fMxadKkTjG3KRNubm7YuHEjVFVV260v8B/eDAwNDTFs2DCEhISgvr4eL168eKPnp9PpVKOqshyL8vJyvHjxAjU1Na0aGHK5HFevXsWmTZugp6dHZTe/+OIL+Pr6tvt8PXr0wK1bt3DmzBmYm5srOBAymQwnTpzA48ePMXXq1BaPIRaLYWhoiMGDB7cZ6RUKhe+9YwG8+u2NjIy6RLhAo9GgqanZ6ZIbuVyOuLg4bNmyBVOmTIGJiQk0NTURHh5OrR08Hg9nzpxBZmYmVq5cCXV1dfTo0UNhfZLL5UhKSsKgQYMQFhbWZZkBEmw2G5aWlq1m31xdXZtoBnUUNBoNbm5uTSjCuVyugjhdXFycQimwlZUVvv32W1hbW7dIVkTSvzcHPT29ZsXvRo0aBUNDQ7DZ7Da/H+mkpqamIjc3t9v6jpTmWJSVlWHfvn3466+/UFZWRvU32NjYQFtbGzKZDBUVFVSTUXx8PFavXg0Gg4GxY8cqpN74fD727t1LvSYIghJ4uXz5chOqOg6HA3d3d9y8eRMODg4ICQlR8ILb07xrYmKCb775BoMGDYK1tTX09fW7xH5BgsViITg4mKKy7AjIaNLHH3+Mvn37UvWjMpkMJSUlChkQMiLx4sULyOVy2NnZQVdXF6ampmAwGEhISABBEFRtfU5ODnJzcxEWFob+/ftT3jH5O73OPEIazpMnT8bChQtx6tQpyOVyMJlMDBw4sMOZnOZAo9E6tEi1BwKBoMP6Cu1FdHQ09u/fj8TEREilUhgaGmLKlCkYPXp0i6VQMpmsy81jr6OtbAXwamLz8PDA0qVLqd+XTqdDXV0dJiYm7TrGmwafz0dMTEyXmd3aApvNblGt/E1DW1sbPXv2fNvD+J9CezOtDAYDGhoa0NDQgLq6eqeDTV1Bz549oaam1iGNqNYgk8kQGxuL/Pz8Vh0LgiDw559/4vPPP4eTkxNEIhEePnyIffv2dWjOJgNH+/fvR2xsLHx9faGvr4+amhokJyfj0aNH0NbWxuzZs1s8hoWFBbS1tfHw4UP4+fm1uvakpKSgsLCw29aA/yWQ94qKigpmzZoFVVXVJtUAZWVlyMjIgJubG6ZNmwYGgwEWi6XwrLBYLHz//ffQ0tJSio31vkBFRaXLTk1z6IhdqaqqCnt7e1haWiqtV6s5KMWxkEgkuH//PrZv347KykoEBgZi9uzZ8Pb2hpqaGphMJgiCoBR079y5g82bNyM3Nxdr1qyBn58f7O3tqZtPR0cHO3fubPf5SQpXiUQCb29v+Pj4dHjSt7CwwKJFi6ClpaXUyC2bzaYavjtqfKuoqFCqu42diIiICOTl5Slkg0jHIioqCpqamujbty/odDr09fWho6OD5ORkGBsbU5kbNpsNFosFmUymcOzLly8jLS2tWSEZFouF3r17w9zcHCdOnICxsTHMzMzQv3//jl6WZkE2mikT3SUmExsbi19//RUqKioYM2YMVFVVkZOTg19//RUNDQ2YNm1as83PBEF0WaTndbR3cuZwOLCwsOiw0BtJF0uj0d6oJkJtba3Sslf/4X8DBQUFuHnzJqKiopCVlQWhUAhjY2OEhYVh6tSpzfbG1dbW4tdff8X169fR0NAAd3d3TJ48GUFBQV263+VyOWJiYrB3716kpKSAIAi4urpi7NixCAsL65Rj4uvrCz09vSalql1BTEwMcnJy4O7u3qr+Do/Ho/RcyDXj3r17HTqXsbEx1qxZgy1btuD06dOIiYmh1jihUIg+ffrg+++/b9XRLy0txaFDh7Bz506F33PFihVNmNoePnyoVKbB/2WQVPekeF9zaGhoQENDAxwdHVvMjNDp9HcmkKNMZGRkYNOmTcjNzYWXlxeVVZRKpbhx4wb27t0LmUyG9evXU5nxmpoaXL58GREREairq6MEjckeRJFIhIsXL+Ls2bMoKSmBiooKfvjhB7i7u+Px48fYuXMnUlJSsGXLFnh7e0MmkyE1NRXr16+Hl5cXoqKiYG5ujlmzZjUhRnkdFRUVOHDgAB48eACJRIJhw4Zh0qRJncpwKcWxePnyJS5cuICCggKEhobi+++/h5eXF1RUVJpMzARBwN7eHo6Ojpg7dy6ys7Nx/Phxiv4SeGXAdoSSkoS/vz+ys7ORmpoKR0fHDjXEsNlspYjovQ4yKtwZ+Pn5wdzcHIcOHYJMJoONjQ2SkpJw48YNWFpaoqamhtqWTIMVFBRAT08Pn376KYBXVMCamppISUmBk5MT1e/h6ekJBwcHnD17FkwmE66urkhPT8fNmzehqanZbMSdLLsZOXIkNmzYAHNzc4wfP16pquIktZyylLhZLFa3GMMXLlyAtbU1Pv74Y9jY2IBOp0MkEsHR0REHDhzA+PHjm3UsyDpVZaK5aJxUKkVNTQ3VnNdV/PXXX1i0aBF1vpqaGipL0x2QSCRITU1t0iCvDPzXCP7vxa1bt7B161YqMsdkMvH48WOsW7cOlZWVWLp0qULpbV1dHf766y8IBAK4ubmhtrYWV69eRUpKCr7++utWiQzawqVLl7Bw4ULo6OhQi/6TJ08QHR2NuXPnYt68eR2em7S1teHn54e0tDSlZT7Ly8vx+PFjBAQEtDhXkI27169fR2hoKGpqavDkyZNmSzNaA51Oh6OjI9auXYu5c+ciPT0dlZWVVM+Gubk5jIyMWg3u+fv748iRI03mvdcDJmKxGLdv31Y6WUZryM3NxbRp06hosL29PS5fvvzGzk+Cx+PhyJEjVH/mpEmTMGXKlGbXJOCVg7hv3z48ffoUmpqaGDduHKZMmUJlsRYsWIAHDx4gJycHYrGYchymT5+OBQsW4NmzZ/j++++RlJSEkpISXLt2DTt37oSTkxOWLFlC0WavWrUKZ8+ehUQiwZdffokJEyYoGK4EQSA9PR0bN25EfHw8xGIxHBwc8Mknn1AUxUVFRTh69CjOnz8PkUiE3r17Y/r06VTJlUAgwNKlSxESEoLS0lJERESAx+Phww8/xOLFi6GpqQmZTIYDBw7g2LFjKCkpgY6ODgIDAzF//vwmmkWNIZVK8eOPP+LIkSPUe2S/yM8//wx7e3vMnTsXxcXFFMMlg8FAYGAgtLW18c033yjYNpmZmYiLi8P48ePh7e0NgUCg8AxevHgR165dw5gxY+Du7o7q6mrK3nB3d8d3332HUaNGKRDe1NTUIDo6GiNHjsT69etx5coVbN++Hb/88kuLWUm5XI6dO3dCV1cX69atA0EQWLVqFaytrTFw4MAW75uWoBTHoqioCLGxsTAxMUF4eDh8fHxaNOppNBrU1dURGhqKwYMH4/DhwxQzR0vlIw0NDaisrISBgQFUVFQgEAiQkJCAvLw8+Pr6Ug3djx8/xu7du7FhwwYF4+3WrVtvvXa6M7C3t8d3332HzZs34/DhwyAIAo6Ojli3bh0qKiqwdOlSalsWi0Up8srlcopdR09PD5aWlhCLxTA2NqZuWisrKyxbtgxbt27FuXPnEBERATs7OyxZsgQSiQTffPNNs2NSU1PDiBEj8Oeff4LFYmHw4MFKKwkgF1llpq25XG63lCzk5+fD19cXNjY2VBmRmpoaBgwYgHXr1rXYqE+qzioTrzthUqkUGRkZuHjxIpW9cnd3B5/PR0ZGBmg0GhwdHcHlclFcXIzq6mpUVlbC3t4eQqEQAoEAJSUl6NWrFzQ0NBAdHU3dT3K5HC9fvkRERARUVFTQp08feHt7o6GhAZmZmZBIJHB1dQWXy0V5eTkqKirA4/HAYDBga2sLXV1d1NXVgc/nw8DAoMUJq66uDkePHlV62RjQ/tKXt4nnz5/j4sWLCA0NbZNK+D/8fwwePBh9+/aFhoYG9ZzxeDx89NFHOHToEObMmaPgWEgkEhAEgcOHD8PQ0BASiQRXrlzBypUr8c8//6B3796dCjjxeDwsW7YMdnZ2OHjwIFVTTbKwHT16lBJV7QjodDoGDRqEM2fOKO3ZIAgCV69exfDhw1t0LORyOc6fP4+//vqLKoERiURgs9n46aefALyii962bVub52MwGNDT04OOjg4cHBwgl8tBo9Eoes62nk9tbW14eXk1ef/1/WJjY5Genv5GFbclEgmys7NRWFgIAG9FT0AulyM1NRVr1qwBj8cDjUajnIHXCUeAVyW9v/zyC2xtbfHDDz+grKwMf//9N/h8PubMmQNNTU2sWLECtbW1+O233yjR38Z9o46Ojvjjjz+QkJCAffv2wcXFhaKlb3xPffnll5g5cyamTZuGqqqqJutkSUkJPvroI1hZWWHVqlXQ1NRESUkJ1W9WUVGBQ4cO4d69e5g/fz7U1NRw7tw5bNq0CYsXL0bPnj0hl8tRVFSE9evXY/Dgwfjyyy8pNjJyvYmJicEPP/yAH3/8ERYWFigqKkJ5eXmbJcEEQVDlXiTq6upQVlaG1NRUzJ07Fy4uLnBwcKDKzsneFlNT0yb3A0m8sn//fvB4PAwZMkShjyY2NhYODg4IDAyEnp4e5HI59YxwuVxKqPZ1qKurIywsDBoaGigrK0NSUhKysrJaZLCrqqpCbGwsnj9/jl27dgF4RR+clpaGoKCgt+NY1NbWoqCgAI6OjpTiYFsgeXdPnz6NtLS0Vo3JzMxMbNq0CaNGjUJ4eDjOnz+PH374ATU1NQgICMCKFSvQo0cPLFq0qFmWjs7Qz74LYDKZCAoKgo+PD7UAMplMcLlcyOVyjB07ViEb4uTkhIKCAjAYDCoKQFKdzZkzR6E3hcFgwMfHB3///TfEYjF1bFLde9SoUc3Sx5K9FioqKrC1tYWfn5/Svi/ZS6PMhaA9DdWdgba2NsrKylBfX68wGaWnp0NXV7fFxZFOpyulH6UxXk/1y+Vy1NTUoLKyEhoaGqDT6aivr8e1a9eQm5sLuVyOtLQ0jBo1Cvv27UNVVRXc3d1hZWWF9evXw9TUFNbW1pTRo6Kigj///BMhISGUYF1ZWRnMzc1Bp9NRV1eHW7duISkpCdra2khMTMSUKVNw+vRpPHv2DL6+vlBRUUF2djaCgoJw/fp1ysloDnK5HPn5+YiIiFDqdXqfkJCQgOjoaKU+X/8LMDQ0hKGhoULZnpaWFtzc3HDy5ElqHiXB5XIxbNgwODg4gE6ngyAI9O7dG4GBgUhPT0diYiIGDBjQ4XFcvHgRhYWFWLduHUxMTKix2NvbIyQkBLt27UJcXFyn+mkGDhwILS0tSvBUGXjy5Ani4uLg6urabIadwWDg5MmTra7THe3TotPpHTZYALS7JPPq1auUgf+/BIlEguLiYoVMTXl5OYqKiprd/sKFC9DS0sInn3wCV1dXyOVy1NfXY+/evRg/fjzFXGRgYAAdHR1wuVw4OjoqHENFRQVWVlbUmmNgYNBkG+BVmTtpPzSHI0eOoL6+Hjt37oSenh5oNBplTAOv1te4uDhMmDABH374IVUB8NdffyEhIUHhebK0tMTEiRMVxkHaplVVVeDz+XB2doanpydVEt7Ztbnx/uR93VLFQmOYmppi2bJlSEtLw5kzZ/Dll19i2rRpGDFiBABQ7E5k5UV7bRnyutDpdEoDrbVnVyaTgSAI/PjjjwqUzWQFSUehtB6LhoYGqKiodKjsh+xn4PF4rZYn1NTUoLi4GA4ODsjOzsbdu3cxYsQIjB49Grt378aTJ0/Qo0cP6OrqNpvqae+PQRAE5HI5Kioq8OTJEyQnJ6O6urpDNfFfffWVUum7mExmixP26w8BGQlqDFKYrDkWAiaT2eLv1dwDRjJckfzSw4cP79TC0BIIguiU1kdrUFNT65aMxZAhQ7B+/XqUlZUhJCQEampqSElJwa5duzBz5swWJ6jWrnlnQBAEVW9NTlosFgsWFhZwdHSEu7s7XFxckJaWhri4OJSUlEAsFkMqlaKiogIsFgshISEIDQ2lnJ5Ro0bBxcWFem569OhBPZ8MBgMWFhZwcHCAs7MzvLy8KCrjsWPHQiQS4dmzZ8jNzQWLxUJAQADGjx8PmUyGLVu2IC8vD3l5efDz82t2wiKZvNavX9/tonjk805O3uTiQCqmSiQSqjmxcUmdXC6HTCajJmMA1KRPLlyNFxCCICCTySCVShW2Jyd98v6Uy+WQSqWU2Gd+fj6lSkuCLC8lj09+h8Z9WHQ6HQwGg+JRJyGXyyGRSKjocOPvQL73+j7vE8j56fbt2zh//jySkpJQXl4OPp8PHo8HkUjUJELKZrPh6OhI/QY0Gg3a2tqwsbHB06dPO22YxsfHQygUYsaMGZg1a5bCGKVSKXR0dDpd+6+rq4uAgAC8fPlSaexQMpkMp06dQlBQEDw8PJq9B5TR/0Y+Y+R9RqPRqGtCrrNMJrPL5aLZ2dmIior6n+yvYDKZMDQ0BJfLRUNDA2g0GnR1dZvQlwKvGDcLCwthamoKY2Nj6rr37NkTNTU1KCoqgoWFhcK80Jxj1/iz19/rCJ48eQIvLy8YGRk1W0ZfXV2Na9eu4dq1a5ToHzn/DRo0SOH5dnFxgaGhYbP3UkhICEaNGoWhQ4fC398fkyZNQnh4eKcdCyMjI5iYmFD0+y9fvkR2djY134tEIohEIshkMojFYojFYjCZTFRXV6O8vByOjo6YPXs2Nm/ejLS0NMqx8PT0RFRUFBITE+Ht7Y3q6mpoampCTU2NmvMJgoBYLIZIJKLmsaqqKly9ehX9+/fH8+fPIRQKYWtrS61DUqmUGotUKoW+vj4cHR3x8OFDeHt7w8LCAtnZ2bCwsHh7jgWHw4GGhgYaGho6xOBCaka0FuEF/v9kpKGhgadPn6KyshJjxoyBnZ0dVFVVqXM+e/aMUjUmF3Mmk4ng4OB2pbgaGhpw8eJFrFmzBqmpqe3+HgCohXnevHndwgv8NkFeG+BVCdD27dthY2ODcePGKdUIIQgCz58/V9rx9PX1oa6u3i2G0pAhQ8BkMvHHH39gwYIFEIvF0NPTw+zZszF//vwWHS4Oh9MlysDmwOfzUVxcrCB8SBqWAoEAEokELBYLrq6uGDFiBLy8vKiICqlqShrEHA4HLBaLei2XyyEUCiGVStHQ0ABVVVXQ6XSwWCwIBALKKGez2aitraUmO5J4gDw2g8GAtbU17ty5AxMTE+jr6ze7cMhkMkRGRuLEiRNKvUbNgaRPnDBhAn744QccOnQIaWlpmDp1KoYOHYo///wTjx49ompzSQ71zMxMnDhxAjdu3EBWVhYEAgEMDQ0RHh6OxYsXw9TUVMHwr6ysxN69exEREYHCwkJIpVKYmJigb9++mDZtGnr37g0ASExMxO7du3Hz5k3k5eVBJBJh7NixCoGR27dvK5RGiUQiXLlyBZs3b6aEBF1cXDB16lRMmDABampq1FiSk5Px3XffUb1B//zzD86ePYuysjLo6+vju+++w4gRI5rQf78vqKurw5o1a3Do0CG4u7tj1KhRcHBwgLa2Nv744w9cv369yT40Gq0J+QGbzYaGhgakUmmnDfeamhrQ6XQsWLCgWdpgVVXVTrN/0Wg0jBw5kqoxVxbu3r2Le/fuKZR3Nj6nMhAdHY1bt25h9OjRcHNzo+aoH3/8kWpu/fzzz7F69epOB61kMhmOHTvW4TX83wI6nQ5XV1esWbMG+/btg7a2Nj7//HP06dOnybakgUkSdJAgo9uqqqrvVKBBKpXCzs4Oy5cvb0Ia87qau4qKSotBZRUVFWzduhVLly7F4cOHsXbtWhw6dAh79uzp1PrMYDCwbt06fP/99zh8+DD8/f0xePBgcDgc8Pl8LF26FCkpKcjPz8eiRYvQq1cvLFq0CHw+H+vXr8fz58+hoqKCoKAgqpcEACZMmAC5XI7vv/8eZWVlUFdXx59//glvb2/8+OOPePToEQoKCvDVV1/BxsYGq1atorIVcXFx+Pnnn2FjY4PFixdDT08PkZGR2Lp1K9LT0yEWixEbG4vJkydjzJgxWLZsGXbs2IGPP/4YNTU1MDc3x5YtWzplQynFsdDS0oKVlRVevnyJZ8+eISQkpM1JQSAQ4M6dO+Dz+QgKCmq1fIrL5UJdXZ3y3LS0tODj4wM+nw+JRELtGxkZiRs3blDHz8nJgYODA3r06NGmYyGTyRAdHY2lS5eisLCQKgtiMplU3TmZFiI9ZKFQCJlMBhUVFdjY2KBnz54t8hO/z5BKpVi5ciV1jerq6rB8+fIm2ZGuQi6X4+7du0o7Hikm2B0TI41GQ2hoKNXIyOfzoa+v32azuIqKitL1CaRSKZ48eaLQdKahoQFtbW0cOXIE1dXVGDZsGHJycnDq1ClcuHABISEhCAkJgbq6ukKURktLS+FZJBXpKysrsWvXLkyZMgUaGhqwsLDAkSNHUFFRgXHjxsHBwQH//PMPVFVV4e/vDwsLC3C5XCraQaPR0K9fP5w5cwZTpkxpsZa7qKgIq1evfqMN1qWlpdi9ezecnZ0hl8uxZ88exMXFQUdHB35+fjh79ixFNkGj0fDo0SNcu3YNBgYG6N+/PzgcDh48eICdO3eipqYGv//+O1VGSBpNu3fvxpAhQzBmzBiIRCK8ePECubm5KCsro8ahr6+P8PBw9O7dG/v370dKSgo+/vhjBb70xlFjuVyOAwcOYPny5fD19cW8efMgl8tx7949fPPNN8jIyMDatWubROGSk5Oxbt06qqGRyWTiyZMn0NfXV3qZ3ptEVFQUbt++jcDAQPz4448UtSNBENi+fXuz+xAEgbq6OoX3yAw8m83uNB2mjo4OGAwGhgwZ0qlSqrYwdOhQWFlZobq6WmnPilwux44dO+Dn54devXp1S6b33r17OH78OIKDg6nSs127dlHBKhaLhT///BMuLi6YOHFip86RkZGB69evK7VU7H0CmaFYtmwZli1b1uq2pO2Wk5ODgoIC6OrqQiaT4fHjxzA0NISuru4bpVXu0aMHdu7cieLiYkqfSSaTUQLLenp6MDAwQFFREXR0dBQyzR0hahEKhZDL5VQvR3h4OObOnYuoqCiMGzeuU2N3d3dX0F9rjB07drS437Fjx1r8TFVVFTNnzsTMmTObfPb99983eU8mkyEmJgZaWlr4+eef8fPPPyt8HhwcTDXSN4dvvvmmxf7ajkApjoWpqSn8/f2xa9cuXLhwAV5eXggICGi2vl0ikaCurg5nzpzB3bt3IZPJ8MEHH7TqiFhYWMDV1RWrVq2Cra0tRQubl5cHFotFeZiLFy/G4sWLqf1SUlKwZ8+edj0Y5eXlOH/+PAoLC8HlcuHn54cRI0bAxsYG586dw8GDBzF27FiMGDECQqEQmZmZuHXrFp4/fw4fHx/8/vvv8PDweOdExpQBMpNQUVEBGxsbTJ06FWPGjFH6eerq6ijHUBmwtrbuNp5suVyOuro61NfXUyUujWtYLS0tm73vOBxOtzgWjx49wvDhw6n3yCb7oUOHUiU3oaGhCA4OVpiEG5dpAK9YOxrD2NgYS5YswZIlSxTeHzhwIIKCgqhjBwYGok+fPtSxAWDs2LHU9kKhENXV1ZQKaXOBhPr6enz77bcKwo/dgdcNMQaDARcXF2zduhU3btygRDu3bt2KxMREFBYWorCwEBKJBGw2G6NHj8aoUaPA5XKp572hoQEjRozApUuXsG7dOmhqalJNkyR5xIEDB6jAAxmcaAxzc3OYm5tT9N0vX75EcHAwBg0a1Oz3KCgowHfffYehQ4fi8OHD1DXNz8/HwoULcfnyZYSHhzeJ7N2/fx+ff/45/vzzT0qZtXGJ1vuKyspK1NXVwdPTU4GtjMfjITs7u9mSVpFIhOTkZEpEkyAIVFVVUb1SHaVmJuHv74/du3fjxo0bCAgIUCjHIMvX2tOo3BJUVVUxZcoUpbJDAa9IA06ePAlLS0uqV0WZyM/Ph42NDZWxrKqqwoEDB2BnZ4fz589DQ0MDISEhOHr0aKccC4FAgMOHDyMpKUmp4/63gkajYcSIEdiwYQMOHDiA4OBgVFRU4OTJk5g8ebJSg4f19fWorKxEbW0t+Hw+ysrKkJWVBT09PUq4d/Lkyfjnn3+wcOFCTJw4EWpqaqisrISpqSmCg4Ph6OiI4OBgXLhwAWw2G/b29qiuroZAIEDfvn3h4uLSrrGQ/Yb29vZgsViIjY2Furq60unu/1ehFMfC3Nwcw4YNw/Xr1/Hw4UN8+eWXmDJlCvr37w89PT1q8ZVIJCgsLMS5c+dw7NgxVFVVwc/PD6NHj27VsTAxMcHSpUsxfPhwaGlpUQxPGhoaGDFiRLOcyARBwMbGBmlpae1SOq6qqsLDhw/BYDAwcOBAbNq0iWKbSk9PB5PJhKOjI0aMGEFFYefPn4+ffvoJBw4cwM8//4xffvkFFhYWb0U4qTvBZrNx+/btbj0HQRA4efKkQgS3q7C3t++2DFJRUREOHTqEBw8eoKampknt9rVr15rtpeBwODAxMVEqpa5UKsXNmzfxzTffKEScm2uOVBZLCY1Ga3JssvyqOWRkZODq1avw9/eHlZVVk88FAgGOHDmCw4cPK2V8reF1Y0lFRYWqs9fQ0IClpSUsLCygq6sLNTU1aGpqQiAQQCgUgs1mQ01NDXV1dSgqKoJAIKDKCbS1tZv0ZDEYDDg4OCAuLg6XL1+Gr68vddzW5rz2GHQXL15EXV0devfureCM1dfXw9bWFrGxsXj27FkTx8LJyQkhISGUU9He873rMDQ0hLa2NrKzs5GXl0eV8R0+fBjFxcXNRvYFAgFu3LiB8PBwmJubQyaT4d69e4iJiUFYWBiVLSLrmMViMSVySTa5kmVPZBkhjUbD0KFD4ezsTBlrzs7OYDKZVGBNKBTCxcWlS4GP8ePHY9OmTSgoKOj0MZrDnj174Ofnh+HDhyudwY7P50NbW5s67tWrV1FcXIx169ZRWZ4+ffo0W7bWFmQyGW7cuIELFy4oTUDwfwF9+vTB119/jQMHDuC3336Duro6Jk+ejClTpiisYTQaDSYmJq2uW6qqqrC0tGxWlDgmJgY7d+5Eeno65HI5bt26hcjISFhYWGDnzp0wMjKCqakpDh8+jL/++gu//fYb5HI5RTcLvBI7njVrFgwNDXH27FkcOXIEurq6GDRoELXW0+l0WFtbw9DQsMX1SEdHB4cPH8bx48cBAA4ODvjqq69aZE16n8Dlct+6TohSrAwGg4GAgAAsWLAAv//+O1JTU7Fy5UpwuVwYGhpCS0uLaoouLy+HVCoFi8WCm5sbNmzYAAMDg3ZRzPn7+yu8Z2NjAxsbG+p1VlYWlf4kCAI5OTlURLUtNDQ0IC8vDwYGBhgwYADlVACgas5FIhEkEgk1KRoYGGDlypV48eIFzp49i5CQEEydOrVdiwVZXqWlpfWvc0Q6A5LiTllpfSaT2a4SuM7i2LFjuHLlCvr06QMbG5smE1hLRiOdToeOjg7s7OyUFpmXy+XIyMjA48eP0bdvX6UcU9nw8PBoUSFUIBDg0qVLWL169VtRyG2sNfM62QHZkE02ycnlcuTm5uLSpUt48OABSkpKIBAIIBKJqGbrxk6mqqoqvvjiC3z55ZdYsmQJXFxcEB4ejqCgIFhbW0NHR6fTRn1KSgokEgk2bNiAP/74o8nnLUWcSeakfxu8vb0REBCACxcuoL6+nqKRLC0tRa9evZo08pLU53Z2dli0aBHs7e0hEAjw/PlzqhSHpNMUiUSIjY1FQkIC+Hw+YmNjIRQKcf78eeTk5EBNTQ29e/eGp6cnOBwOtLS08Pvvv2PJkiX4/PPPKerm6upqFBYWwtLSEtu2beuSY2Fubo4RI0Zg586dSn1uqqqq8OOPP8LS0hLe3t5KpUxVV1dHeXk5JBIJ+Hw+zp07B01NTQwaNAhsNhsymQwsFqtJeVpbkMvlyMzMpEoI/0PH4O/v38S+eh0sFgtffvllq9u4uLhQ9MOvgyy/bQ00Gg2urq4tli4Cr+avWbNmNcm2k1BVVcWmTZtaPU///v2VJuz7LoHBYKBHjx6Uw/S2oLQZQ1dXlzKqDx06hKysLFRVVSE3N1dhOy6XC3Nzc3h4eODLL79E7969u8QAUVhYCDqdDhMTE5w8eVJBjIbL5WLKlCntWkTJSJKlpWUTelqy0bWhoQEikUjBWDUwMMDgwYPx+PFjnDp1CqNGjWrXYpGeno7Lly8jMDAQ1tbWMDAweK/rm7uC+vp6bNq0SakLgqWlJezs7JQecSORnp6O4cOHY9asWR3muSezbsos+eHz+di/fz969er1Xt1HDQ0NuHbtGhYvXvxGhawag2Roaul1Y5SUlGDDhg24evUq+vXrhxkzZsDKygoaGhr48ccfceXKFYXtmUwm+vbti3/++QfHjh3DrVu3sGXLFuzduxfTpk3D5MmTO10aJxQKQaPRsGDBAqqxvDE4HE6z+j0qKird9ly8TRgZGeGLL76Aubk5YmJikJ2dTTV61tfXK1A902g02NjYYNSoUfj1119x/PhxREZGQiQSYeTIkRgzZgzVVA+8cizi4+Nx8eJFAK8c0N69e6O4uBjFxcUAXl1XZ2dn6hxBQUGUSFliYiIKCgqgra2NgQMHYuDAgZ1StH0dH3/8MU6cOKH0ZychIQF//PEHvv/+e9jb2yutxNfR0RHx8fGIjIwEi8XCo0ePMHHiRIrAhSAI5Ofnd+jaEASBwsJCbN26Fbdv3+4Qi+O7AqlUiqKiIuTl5VF06ywWC3Z2dm0KBj569KjNqgxdXV1Ku6gjKC0tRVpaGhUMDgwMVGDyqqioQEVFBfh8PkVbz2KxoKamBj09Pejr63d6riEIAiKRCCUlJVQfo0Qi6ZATbWtrS5VZtXYegUCA0tJSVFVVUWQlzX2P9lIdtwapVAoej0eVhZFZUCaTCRUVFWhra1PEM+157giCwP379yGRSKgeRxqNBj6fj/z8fPB4PMjlcmhqasLc3FyBLEkkEqG4uBglJSWULo2+vj7Mzc2bFbhuL5Sq3qKvr4+ZM2ciICAA165dw+PHj1FeXg6xWAwajQYVFRVYW1sjKCgIYWFh0NfX73K0/uTJk1BTU8Ps2bPxxRdfYPbs2aiqqoJYLIaRkRGVXm0PSBq816PNqqqqFPtUfX19k8ZTZ2dncLlcPH/+HGKxuF3nysrKwurVq2FpaYnBgwdj4MCBcHV1hbm5OaU98L8AgUCAs2fPYteuXUrVr/Dz81OqIvjrIB/6zmRYdHR04ObmhtOnTyttPCKRiHrm3tWsxevg8Xi4fv06Vq1a9d7wzcfFxeHRo0fo27cvvvnmG4ojnVRYbe5+YDAYsLGxwVdffYVPP/0U165dw5EjR7Bt2zZwOBzMnz9fYfv2TuakweHu7o6RI0d2/cv9C2Bra4vly5c3+9nAgQOp/7NYLEyfPh3Tp08HAMybNw/z5s1r8bikHtDrvUatgUajwcnJCWvWrGn3Ph2Fj48PRowYgf379yv92CdOnICenh6WLl0Ka2trpaxJoaGhiI6Oxs8//wyxWAxbW1tMnjyZYiJraGhAYmIiJcjZFgiCQElJCXbv3o2TJ0+ipqamy2N80yAFTf/8808cPnwYfD4fLBYLPj4+WLVqFUJCQlq1YaZNm6Yg2NYcBg0ahG3btnW4RObWrVuYO3cuampqoKWlhYKCAkr8NCYmBnfu3MGjR4+Qn5+P6upqyGQyaGlpwdLSEj4+PhgwYAB69+4NMzOzdme+SHbAjIwMxMXFURpJ+fn5qKur6xAT2rp16zB37twWg38ymQxZWVkUW9njx4+pLLS6ujosLS3h7++P4OBg9OnTB8bGxpQuREfXfplMhrKyMiQmJuLevXuIj49HWloaeDwehEIh1NTUYGRkBDc3NwQGBsLf3x8uLi5Uv15rxx01ahQqKythbW2NZ8+eQSaT4fz589i/fz+ePXsGiUQCFxcXjB07FuPGjYO1tTUEAgEePXqEgwcP4ubNm6isrKQIS6ZOnYqwsLBOs2oqXRaSxWJRZQ9SqZRqcCVF29qjhCyTycDj8cBisaClpQWRSNRszSRBEHj58iVVKywUCvHo0SOKt1dPTw8hISFwcHBoMyvCYrGgra0NgUCAiooKhc+0tLSgpaWF/Px8lJWVNYkOkhzPpGfYXshkMuTk5GD79u04fvw4/P39ERISAi8vL1hbW8PMzOydo3tTJqqrq3H16lWsXr1aqTWxHA4HQUFBSnUsysrKFO4LMzMzPH36FEZGRnB1dQWHw1H4nZycnFpcDDQ1NeHu7g51dXXU19crbYylpaX4888/YWtrq/QGcWWjoKAAJ0+exB9//IHCwsI3ygLVlXPV19dDIBDA2tpagVY6JycHWVlZCs4xSeEoFAqpeU9fXx8TJkyggjDN0SuTvTFkTX9jjZLGCAwMxLZt2yiWr8Y0saRmBSmS9B/+vVi0aBGuXLmC0tJSpR6XZNNiMBhYuHAh7OzsurwWubu7Y+nSpbhx4wakUinCw8MV5sqGhgZ4eXlh9OjRbR5LLpcjLy8PBw4cwL59+1BSUtKlsb0NkE7F5s2bceTIEfD5fLDZbPj7+2PFihUYNGhQmxloLS0tqKmpQSQSdWu2RiQSITs7GxoaGti9ezd2797dbE9kWVkZysrKEB8fj4iICIwbNw5z5syBi4tLm84F6VRERUVhy5YtuHTpkkKwlswmt2ZnkSLC6urq0NbWbnEdlslkiI2NxebNm3HmzJkmvSNCoZDSNDt37hw++ugjfPLJJ+BwOOBwOB3qkZRIJEhKSsKRI0dw4sQJShahMUg798WLFzh37hx69eqFqVOnYuTIkTA1NW3XPC4UCpGcnIysrCx89dVXCs9EXFwcsrOzUVdXhwULFiA5ORlr167FvXv3qOtZXFyMc+fO4dmzZ9iyZUu77r/m0K1680wmEzo6OlSdanvB5/Oxe/duGBsbY8aMGZR2wusgCALR0dEUQ9G9e/dw7do1mJiYwMjICMnJySgqKsLixYvbLIficrmwsrJCRkYGMjMzFdQejY2NYWRkhBcvXiAlJQWenp4K6b2MjAwIBIIupYt5PB6uXr2KGzduwNraGn369EGfPn3g4uICGxsbmJiYgM1m/yucDIIgkJubiwsXLuCPP/5Afn6+Ug1LZ2dn+Pj4KFWI7sGDBzh//jz1WiqVIiEhAYmJibCzs2vCob1169YW085sNhu2trZwc3NDTEyM0sYoEolw8+ZN7N+/H3PmzGlWOf1tQygUIikpCceOHcPBgwebOPFvAl15hiwsLGBgYIDExETExsbCxsYGPB4PJ0+eRG1tbZPJXyAQYO/evXB0dISOjg44HA7q6+sRExMDNpvdrGgVnU6HhYUF5HI57t+/D11dXaiqqkIkEikoIwcFBWHgwIE4f/48vL294e3tDRUVFTQ0NKCiogISiYSKOv2HfyfImvQpU6bg999/V/rx5XI5tm3bBoFAgM8++wze3t5ddlR79+6tUGbWGMbGxjh8+HCb5xAKhUhNTcX+/ftx9OjR95JaViaTITMzE1u3bsXhw4dRX18PDoeDPn36YNmyZQgJCWmXUTd16lTk5uairq4OfD4fIpEIlZWViImJURpBCPDqXoiKikJWVhb++usvyOVycLlcGBsbU2LHjUuKyL7affv2gSAILF++XKEntiUkJCRg2bJlePLkCYBXJYYuLi6wsrKiSuRqamqoYA6fz6f2dXd3R8+ePSnBv8DAwGZLseRyOZ49e4ZVq1bhzp071PskuYqOjg7odDoaGhpQVlaGkpISik5cKBSCxWK1+9pKpVLEx8djw4YNOH/+PGXrqKioKFTVkL9bZWUlxGIxHj16RNEAf/rppy0yTTaGSCTC9evXceXKFYjFYnh5eVH9fw0NDaisrMTFixdhYmKCJ0+eIC4uDqampjAwMEBNTQ0KCwshEomQm5uLXbt2wdvbW4Hko73oVseis5DL5aisrKRKkvLz83HixAmEhoY2UbRt/OM+fPgQffv2xZgxY8DhcMDj8TBt2jTU1NS06VhoaWmhR48eePLkCVJTU1FWVkZFfa2trWFnZ4f79+/j1KlT0NXVpdRJ8/Pzce7cOVRXV8PR0bHLiqFkai4rKwsRERFwdnaGr68vPD09YW9vDxsbG1haWnap/u1toqqqCk+fPkVERAROnjyp9NpgOp2O8PBwWFlZKfX6aGtrN2Ezatzg39w4WoOpqSn69u2rVMcCeOWgbt++Hbq6uvjoo4/eGbFGsg767t27OHDgAB48eNAutrZ3DR4eHhg+fDhOnDiBjRs3wsDAAAKBAFwuFwMGDEBERITC9kKhEHv27AGbzYaWlha4XC5EIhGqq6sxePBgSmH1dQwYMADPnj3D5cuXER8fDzU1NbBYLPz888+Uo6Curo7vvvsOP//8M7Zv3w4TExNwOBxKrdvFxUWh/Oc//DvBZDIxc+ZMnDt3DpmZmUo/vkwmw+7du5Gfn48FCxYgMDCw2+YVUtyzJZDG6t27d3Hs2DHcvHmzw43e7wJIp2LLli04ePAg6urqoKKigoCAAHz55ZcIDg5ud6SYVKAm+x7q6+vx5MkTTJ06ler/UQakUikOHTqE58+fg8lkwsPDA/369YOnpyeMjY3BZrNRXV2NFy9e4Pbt24iLi6MY0E6fPg0/Pz+KEbElCAQCbNiwgXIquFwuRowYgRkzZsDHxwd6enqUfRgTE4PDhw/j6tWrqK2tBQD4+vpi9erVbdLG1tbWYv369ZRTQafTYW5ujrCwMPj7+8Pc3BxMJhM8Hg/p6el48OABYmNjcerUKaioqLS75J0gCOTl5WHdunVU/x2bzYaTkxP69esHLy8vmJubg81mo76+Hrm5uYiPj8f9+/eRn5+P0tJS/P3331BVVcVnn33Wph3L5/Nx6tQp1NfXY8GCBfD19aXkHc6fPw+hUIi0tDRs374dQqEQ3t7eGDt2LJycnFBcXIzdu3cjLi4OEokEd+7cQVFREYyMjDocTFCKYyGVSlFdXQ2JRNLuQZDek0wmg6mpqYK4iZaWFn788UfqNZ1Oh7e3N7Zv397EsVi7dq3Cdo2bexpLnLcFXV1dBAQEUNSEqamplGNhbGwMPz8/XL9+HdeuXUNxcTE8PT1Bp9ORnJxM1bANHTpUqfSmQqEQCQkJSEhIAIfDgb29PVVmZm9vD0tLS1hZWXXqh3+TIAgC5eXlSEpKwr1793DhwoUO9aN0BPb29hgwYIDS+yvaEpbpKPT19eHn5wcDAwOlRtvI5sdffvkFAoEAo0eP7jQXv7JQXl6O+Ph4XLt2DefOnUN+fn6HSga7CzQaDcbGxpg9ezZFK2psbIwJEyZQTc+GhoYYOXIk9PX1KcG0GTNmwNrammJlMjU1xaBBgyASiWBqaqpA7qCuro5vvvkG6enpVKmklpYWbG1t0bdv3xYjeD179sSSJUvw4MEDik7UwMCgSfbBw8MDv/zyC27evImsrCwIhUJoaGjA1NQU3t7eCtvr6elh+PDhkMvlShe3/A9vD3Q6HTY2Npg3bx5WrVrVbQ77jRs3kJ+fj4kTJ2Lw4MHo2bNnp9WxOwq5XI7q6mo8efIEt27dwrlz5/DixYs3cu6uoLnglkwmQ3Z2NrZs2YJDhw6hrq4OqqqqCAoKwtKlSzFgwIBOXVdScVlHRweGhoZKZfMCXv0GsbGxYLFY6NevH5YuXYrg4OAmjoJYLMaAAQPwyy+/4MqVK5BIJCgrK8P9+/fRv3//Vo3+lJQUygBnMBjw8vLCd999p6BPwWAwYGhoiGHDhsHAwAA8Ho/Sv4qKikJqaipsbGxaDSxev36dqkAgaXQXL17crHirRCJBSkoKtm3bhoiIiHZT4hMEAYlEgh07duDq1asAXjkVPj4+WLJkCcLCwpqwVpJ6WBEREdi5cydevHiB6upq7N27Fy4uLhg2bFir5EBisRi5ubmYNWsWVqxYAVVVVchkMhgZGSEjIwNPnz6lmO+cnJwwZ84cKhBPioXm5uaiqKgItbW1SEtLg7u7e8fLoQgloLKykti3bx8xf/584vz580RNTU2b+2RlZRHLli0jPv74YyI+Pp6QSqUtbpudnU0cOXKk2c/27NlDHD16lCAIgjhz5gyxdOlS4rfffiN27NhBfPXVV8Tq1auJ0tLSNscjl8uJpKQk4tNPPyV+/PFHIiUlReHzjIwM4vPPPye0tLQIAE3++vbtS8TFxRESiaTNcxEEQZw+fbrZ47Tnj8FgENbW1sSgQYOIOXPmEL/99hsRERFBxMTEEC9fviSEQmG7xtCdkMvlRHV1NfHkyRPi8OHDxOLFiwl/f3+Cy+V2+nu39aeiokJ8/fXXRHFxcbd/v5SUFKK0tJSQy+UK79fX1xPJycmt3s8kkpKSiFGjRnXLtaDRaISpqSnxxRdfEPfv3ycaGhq661I0C6lUShQUFBAXL14kVqxYQfTo0YPgcDhd/k7KuDYsFou4f//+G70e/zbk5OQQvXv3Vtr9qq+vT1RVVb3tr/XeQi6XE0VFRcRHH33UbfMr+aeqqkqEhYURGzduJKKjo9u13ncWEomEyMnJIc6fP0989dVXhL+/P6GiotLt37E9f4sWLSIKCgoUxpuenk6YmZlR23h4eCh8LpVKiczMTGLBggWEpqYmdT2HDBlCXL9+nRCLxUq5bomJiYSFhQU1jkGDBhHp6ekdPs6RI0cUbB4ajUbY2dkRt27danU/iURCHD58mLC3t6f27dWrFxEVFdXqfuvXryfodDoBgFBXVye+++67VrdvaGgg1q1bR6iqqhLAK9to8+bNra53YrGYGDhwIDUuLpdLzJkzh6itrW31XE+ePCGGDx9OjY/8O3HiRLO/m1wuJxITEwk9PT1qW2tra+LkyZOETCZr9Vw8Ho/44YcfCGNjY2rf0aNHE1lZWU22lUgkCuewsLAgHjx4oLBNXl4eMWfOHIVxT58+ncjJyVHYLjo6mvD09KS2Wbt2LVFXV9fqWJuDUlza0tJSnD9/HhcuXIBAIECfPn3a3IfL5eLGjRt49uwZpazdkif2ul5FYwQHB1Op0wEDBkAkEiExMRElJSXQ1tbGBx980K4eD5J+cNWqVdDV1W0SGbSzs8Onn34KLS0tREVFobCwEHK5HPr6+vDy8sKkSZPg7u6u9ChBc5DJZMjNzUVubi5u3rwJFRUVKnthZmYGU1NTmJmZwczMDMbGxjAwMICuri40NDS6TRlcKpWitrYWRUVFyM/PR15eHjIzM5Gamkr1uiiT9ak59OrVC+Hh4W+Eo//EiRMIDAzEgAEDFK4pj8fD5s2b8fvvv7eZvbK2tsagQYNw69YtKpWrLBD/F/nYvXs3nj17hqFDh6J///5wc3NTaPJVJuRyOWpqapCRkYGEhATExcUhLi4O6enpXVIHZrFY8PLyQo8ePXD16tUuC4IRbfTzCIVClJaWgsViwdTUtEvn+jeB+L8InFAoBI/HU+rzTJa40Ol0qKio/Gv6yd4UaDQaDAwMqKbM7lSvJ0UFY2Nj4e3tDT8/P/Ts2RNOTk6wsbHpEo0uQRDg8/l4+fIlsrOzkZycjKSkJDx79gypqaldynIPGDAAOjo6uHjxYrevRSReJ1TIz8/Hpk2bcPDgQdTW1lIllEuXLkVQUFCXS6m7GywWC+Hh4W1qQDCZTHh6esLNzY0qz3v58iWqq6tb3S85OVmhB8Hb27vV7VVVVWFhYQE9PT0UFBRAJpOhuLgY9fX1LdqT6enpePz4MfVaV1cXM2fObFPzys3NDf3798ejR4/a3RvYmApaRUUFQUFBCA8Pb7PCRFtbG6NHj8b9+/dx7do1EASByMhIJCcnU6VTLYEkh2kMXV1dBdIhFosFe3v7JuubqampwnUrLy/vlEaOUqzgyspKpKenQ1VVFaampu1qGjU0NISDgwNSUlJw//79VtkMsrOzceLECVhYWFCquEZGRlBVVVVwOLhcLj788EMEBwdDKBRCW1sbTCaz3cY0l8uFpaVls5/RaDT07NkTJiYmCAsLQ2lpKeRyOXR0dCia2DfhVDQHoVCI9PR0pKenA3iVKtTV1YWxsTEMDQ2hp6cHHR0d6OrqQl9fH7q6utDU1IS6ujo0NDSgrq4OLpdLCQEymUxqgpPL5ZDJZJDJZBAKhZSwH5/PR3V1Naqrq1FVVYWysjKUl5ejpKQEhYWFKCgoQFVV1RvjFDcxMcGECRPg4eHxRsrC0tLS4OTk1MRIlUgkuHHjRrsWLlJUq2/fvlSqVNmor69HZGQkEhMTcf36dfTq1Qs9evSAm5sbpb/QWQNOLpeDz+ejqKgIubm5SE9PR2pqKtLT0/HixQsUFxd3ueSJTqfD2dkZK1euhJ2dHUpLS7vsWLT1fcvLyxEZGQkbG5t/jWNB/B/bikgkUniOm/v39c/J/5NCgCR7SX5+vtLGx+fzsWbNGmhqalKsK6TeRnN/qqqqbb7/v8aIRYqCzps3D19//XW3Uq8SBIHq6mrcvn0b0dHRsLKygr29PWxtbWFtbQ0TExMYGhpSfPzkb8pgMCCVSiGRSCCRSCAQCKg1hMfjUVoO5L9ZWVlKCbqQeiYaGhq4efPmG3MsSCdLLpejoKAAf/zxh4JTMXDgQHz55ZcICAh4a/ZDR6CiooLx48e3y6YyMjJSYCesrq5uM8DUmB2SFJNtC6QcAAlSU6MlREdHU+NgMBhwdHSEp6dnm+dhs9lwd3eHtbV1uxwLgiBw4cIF6rWmpiaGDx/e7nJ5e3t79OzZEw8fPkRNTQ2qqqoQExODvn37tljKymAwoKen18RJIvUxGo/FwMCgiYOioaGh4Nzy+fxOreFKuZMbGhpQXl4OPT09WFlZtcvrptPpsLW1BZvNRk5OTqteEUEQqKmpQXl5OR49egSJRAIOhwNTU1NYWVnBz88Ptra2uHjxIoyNjeHj4wM2m42amhrs27cP48aNU1oU29jY+J2n8pTJZCgvL29Su89isaCpqUnR/pJ/5GJMOmGk2jAASnFYJpNBLBZDJBJBLBZDIBBQVMK1tbWoqanplp6J9kBNTQ2jR4/G8OHDu5UJiRQx4vF44PF4yMvLw/PnzynjRS6X4969ex2Ktjo5OeGDDz7As2fPlNpo1xgEQaCyshI3b97EgwcPYGlpCRsbG1hYWMDc3BxmZmYwNDSEtrY2NDU1FYwy8ncXi8UQCoWUEUA6k4WFhSgrK0NxcTFevnyJiooKpakA02g0WFhYYNGiRRgyZAjq6urg5uamMFkrExKJBBkZGTh8+DAePXoEc3NzREZGok+fPhg0aBCqq6sRGRmJ58+fQyQSwdraGsOHD4eJiQkSExNx8+ZN8Hg8MBgMhIaGok+fPqDRaCgrK8O+ffvg5uaGJ0+egMPhIDg4GP7+/qivr0dcXBweP36M2tpaCIVCuLm5YdCgQQqMUcT/iUU1NvLJv4aGBoXXzW1Dvt/4Ge7Mv21lezoLkUiEo0ePUq9pNBolTMpms8HhcDr1f9LZaPynoqICLpfb5LPmXr9vzomamhpGjhyJ58+fK12RuyWQDaFpaWlgMpnQ0tKiglna2tpQVVUFm81WmFOkUimkUilEIhG1htTV1aGioqLNqHZHoampifnz5yMoKAhyuRxqampvpOGbRqNBQ0MDBEGgoqICv//+u4JTERISghUrVsDf3/+9cCqAV9eyR48e7dqWtC9IkM4k0QJ9NgAF25H4P+G6tkCuTyQ4HE6r1/PZs2eUscxisdCjR492Z4osLCzabf+VlJQgOzubes3lcuHn59eufcmxOTs7U4xNAPD06VPU1dW16FjQ6XTo6ek1ub6kPhupv6GhodFshub1+Y6kO+8olHI3i0Qi1NbWwtDQsEMqxAYGBmAymaioqGjVK7KwsMC8efNQWVmJ8vJy5Obm4tmzZ7h16xYqKyuxcOFC2Nra4uHDh/D19aV+PA6Hg6tXryI0NPSNlMe865BIJBSd2b8FdDodAwcOxPTp07u9SVkqlSIuLg6XLl1CUlISCgoKcP36deohJggC9fX1mDRpUrubndTU1DBo0CA8evQIhw4d6vamZoFAQBkBdDodGhoa0NHRgaamJtTU1CgjgMFgKBgBpIPB5/PB5/MVjIHugqGhIb744guMHTsWqqqqYDAYlLJxR0SS2gs6nQ5NTU2YmJhAVVUVVlZWcHNzg5GREQDg8ePHiImJgZmZGUUBS0bu5HI5TExMYGJigsrKSmzYsAERERFgMpmorKzE33//jUWLFsHJyQkpKSk4ePAgHB0dkZmZievXr8Pa2hoMBgORkZFUNpbE1atXce3aNYqGsDN/EonkvVIkJh2prvzOZDMr6Ww0/n/jv+beJ9/T19fH8OHD3xt2LRqNBiMjI8yePRsvX76klMLfFKRS6Tu1xjCZTMyYMQPjxo2jypKsrKxQWlr6RrRzNDQ0wOfzsXnzZsqpUFVVRUhICFauXAlfX99uK09WNshAT3tLael0uoKRSvyfrk9rjoWjoyNl/IpEIiQlJSEsLKzFc4jFYhQVFVEZBDqd3oRA43Xk5ORQ6yyTyWyV3fF16Ovrtzt4mZ2dTc1fNBoN2traHc6Am5ubK2QasrKyWiVnoNPpzdKLv64YTmYQm9uuMTprjyjNTSZvlo5Ed0gFw7bSkgKBgCr1ycjIQFVVFTgcDtzc3KClpQVXV1dqWzqdTl0cJpMJmUz2RsW3/sObA41GQ58+ffD555/Dw8Oj2ydoJpMJLy8vcLlc5Obmws3NTYHXnTRMfX19O1Qra2VlhXHjxiE5ORnx8fHdNfwmIHsi3kW1Wm1tbSxatAhTp06lJnIWiwUzMzNYWFh0C60mg8GAubk5+vbti8zMTAQEBGDIkCHU52Sks7i4GB4eHnB1daUCKcT/sXEJhULw+XzcvXsXEokETCaTmn/CwsLg6uqKe/fuYcuWLZSQVHV1Nfr37w+CIFBcXAwLCwuFAE1CQgKOHj3abjaS//AKBEE0iWZ2FMbGxrCxsXlvHAvg1Tzl4uKCBQsWoKKiAo8ePXrbQ3prGDVqFGbPng0jIyPKLnB3d0dcXNwbsQtUVVWxZ88e7Ny5k8rEkP0wnp6e741TAbwad3cHaIcMGYKNGzdCLpejoaEBly5dwvjx45vV+wGAFy9eIDo6mjK2raysYGdn1yqlLY/Ho357snSovSArPNqD8vJy6jx0Oh3a2todZvvS0tJS+C5VVVWt2stkprctdKRFoDNQimPBYrGgrq6Ourq6DkUqysrKIJVK26zzTk9Px8qVK2FkZAQ/Pz8EBgbCyMgIurq60NXVpTw6GxsbxMbGwtjYmCpj0NHRafeN8B/eL/j5+WHp0qXo169fqxOJssBkMmFvbw87OztERkaiX79+CA0NpR5QMirQ0Z4FFouFwMBATJ06FaWlpc2qcv4vQV1dHUuXLsWsWbMUJn1yYXN2du6SY9FZg8LDwwMff/wxkpOTceXKFURGRmL69OkwNDTE1q1b0bNnT/j5+UEgEGD79u0K0R4OhwNnZ2fQ6XQqKyQSiWBraws1NTVs2LABmpqa0NXVpahvSZDliP/hzUMul3cqaldcXIwjR44gISEBYrEYpqamGDlyJAYOHAiRSITk5GRcuHABWVlZkMvlcHZ2xsiRI+Hp6Ym8vDxERUWhrKwMOTk5cHV1hZGRESIjI6Gvr4+5c+fCwMAAwKt68ePHj6OkpASmpqYIDw9HSEgIpYmwdOlSrFu3DomJicq+NO88wsLCsHDhQjg6OiqUxri7u7ep3qwMEASBmJgYXLx4USEoIBQKER0djYiICEyZMuW9KbWj0WhKpdNvDj4+PhgwYAClzB4XF4fVq1fjs88+Q8+ePakoe0NDAx4/fozdu3cjKioKBEGATqdjyJAhlBRAS6ivr+/0dyKzme1B42x+Z6/d62Vd9fX1rZY30mi0dpXVdcZO6QiU4lhoaWnBwsKCatoUCARtGvNCoRDx8fEQCARteu76+vro378/CgoKEBsbS3Hwenh4wN3dnUp7DRs2DEePHsXGjRshFAqhpaWFSZMmtVvTQCKRQCQStapUS/yfanRiYiIEAgGsrKzg6ekJLpf7H4vJGwKNRoOPjw+WLVuG0NBQpSsLS6VS3L59G5s3b4ZIJMKgQYMwY8YMKlpDo9Hw6aefQltbW0F/pSvQ0tLC2LFjkZOTgz179ryXok/KgKqqKlatWoWZM2dSxlNjGBkZwcXFpUslHm39XgwGAwRBNGkaFQgElFimtbU1fv/9dwwYMABcLhdJSUmYOnUqAgICEBER0cQRaDzhNz4/i8WChoYGDAwMEBwcDH19/Rajc//h/QCPx8PixYtRW1uLsLAwaGpqUr03JMgG04CAAIjFYkRHR6OqqgpLly5FbW0trly5AhUVFejp6SEiIgLm5uZwd3fHiRMn0KdPHwQHByMlJQWrV69GcHAwevTogYKCAvz++++QSqUYOnQo1NTUEBYWBoFAgPXr1yMlJeUtXpU3i8DAQCxdupTqt2wMd3f3N7ZWJyUlQSwWg8ViwcbGBhkZGZDL5cjMzMT27dthaGiokBV919HdTpC6ujq+/fZbZGRkUGriJ0+eREJCAszMzKg1oaKiAnl5ecjLy0NtbS1oNBrCwsIwZcqUNsuNXrc1O+JgdsQgf73UqDOlqDKZTGF87en5ehfsUKU4FoaGhvDy8kJCQgLu3r2Lu3fvtvmwnDhxAsnJyZBKpW3SrJmbm2PJkiVU2UZZWRmysrJw+fJlbN68GbNnz8aUKVNgYWGB6dOnY/DgwRCLxdDQ0IC1tXW7MhYSiQRRUVHYtGkThgwZgg8++ADm5uYK24jFYpw4cQL79+9Hbm4uZDIZ1ZBDsta8L9GH9xUsFgsBAQFYvnw5goKClO5UAK8mT09PTyxcuBBHjhzB8+fPFRTegdZVtzsLY2NjfP7556iursaJEyfeS2XqroDL5eKHH37AtGnTWkxP6+rqwtHRsdv6LADAzMwMdnZ22L17N86ePYsPP/wQH330EZ49e4Z//vkHlZWVoNPpcHBwgLm5OXR0dDBo0CBs2rQJO3fuhLOzs0LpRWuQSqUoLCxEYmIiHj16BHV1dYwdOxaDBw9+I1m4/6B8XLx4EY8ePcLBgwfh6ekJNpsNgUBAGRokfbKNjQ20tLQgl8vBYDBw9+5dvHz5EmpqahAKhejduzdCQ0Px9OlTODg4YOLEibh9+zby8vIgFouxY8cOWFpaYubMmdDW1kZJSQkyMzNx5MgRDB06FMCrGv8PPvgAALBhw4ZupaF9VxAYGIivv/4agYGBzT5D7u7uYDAYb4QZisxWLVy4EH369MH27dtx7NgxSKVSPHnyBFu3boWhoWGbtKr/S/D19cXff/+NH374AQ8ePACfz0dCQgISExMpJ7GxEDJ5j8+dOxc9e/ZsM2JPVsgQBEGVXLUXJJFFe9C4N0IulytkStoLgUCgcJ92p2SAMqEUx8Lc3BzBwcE4e/YsEhMT8dNPP6G6uhpDhw5t0uhSWVmJf/75B9u2bUNJSQk0NTUxduzYVuvCSDpVsun0xYsXKCgooPQbyEgy2bjTGYpIHo+Hmzdv4tq1axCLxejbt28Tx+Lq1avYvHkznjx5ouB95ubmQiQSYePGjVSj539QPtTU1DBs2DAsW7YM7u7u3WZ40el0GBsbQ11dHffv31dgduhO0Ol02NvbY/ny5RCJRDhz5kwTh+bfCl1dXfz+++/48MMPFSbk18FkMmFmZgZLS0tkZGR021gmTZqEkJAQEARBzS+9evWCubk5RCIR6HQ6dHV1Kco+sp6dIAjo6Ohg1KhRUFVVBY1Gg62tLU6dOkUd39XVFevWrYPK/2vvzOOiqvf//5wZGIZ930FkBxUUFXfBfc/czdS0XOu6ZGa3bLm3upV1LduvZmnlmqmpuWSKiguuGCIgCIgiOyL7zACz/P7wd86XEVRETLt3no+HDxXOnHPmnM/5nM97e70VCn777TdcXV356quvMDExIS4ujgsXLhAUFGTQbdbIX4dTp07h5+dHx44dsbS0bJAGodfrKS4u5ueffyY+Pp7S0lIKCgpwcnJCqVSKIgpC9EqhUODt7Y2zszPW1tYolUp0Oh0nTpygqKiIixcvIpFI0Gq15OXl4e3tjUajEWsYra2tGTVqFObm5nz00UecPXv2EV6dh0u/fv34+9//Tu/eve/oUHRycsLNzY2rV68+9PNxc3Njy5YttG3bVpR1z8vLIzY2lpqaGg4fPoyzszP/+Mc/8PHxeejn87gj1Aj06dMHtVpNVlYWeXl5yGQyzM3NUavVYl2EoAjav39/IiMjcXFxaVJ9gZOTk+j0EZ6ZplJdXd3knkze3t7icXQ6HSUlJVRWVt6zX0Z9iouLDQySpn7HR02LGBZyuZzo6GieeuopvvnmG06dOkV6ejqfffYZgYGBuLi4oNPpKCgoIDU1levXr1NaWopWq+Xll18mKCjorp7+S5cu8fe//52AgACCgoKYOnUqvr6+ODo6Ym5ufteFSFMpKyvj/PnzaLVabG1tCQgIMPh9Tk4OO3bs4I8//kAikTBixAjCw8OJjY3l3Llz7Ny5k9GjRzNy5Mj7b39u5J64uLgwY8YMZs+e/af2DPmzw4qCrvYbb7wBwM6dO//rIxdBQUEsX76cvn373lNxRCKR4O7uTlBQ0EMzLGQyGc7Ozg1Ssezt7e+oq+7q6mrgVKifzmRubm7QsMjS0hI/Pz9yc3MpKCjA2tqaDh06oNVqOX36NEql0hj5/AujUqmwsLBAJpM1On9kZWXx7rvvotVqmTFjBp6enhw4cIDY2FiDotL6nxdSLgVPq9BH4oknnmDcuHEGXkwrKyuD/0skEqysrBg2bBi2trYsX76cgwcPPvQagz8TmUzGqFGjWLx4MREREXd1OslkMtq0afOnGBa2trZ069ZNvB/h4eG8/vrrFBYWkpqaSnV1NTt37sTV1ZVXXnmlSX0b/tvR6/UkJyfzj3/8g+LiYpycnFi4cCFjxowRRYJkMhlmZmZYWlpiY2NzXxLvQiqtoHgo9P9qCkVFRQa9Nu6Gv78/Tk5OouGiVCq5fPkynTp1avLxrl69anC8Nm3aPLQGty1Ji6zOBBmy+fPno1ar2bRpEwUFBRQVFZGQkCA+VBqNRtTFNTU1FQs0Ba/OnQgLC2Pz5s0GjZNMTU1bNCRUXV1NRkYGdnZ2hIaGNkixOX78OCdOnKCuro7Zs2ezcOFCPD09mTJlCtOmTePcuXP8+uuvDBgwwGhYtCCmpqZiqlnPnj2xtra+66JLpVKxYMEChg4dSm5uLj///DNlZWWMGTOGl19+GUtLS0aPHs2QIUOYO3cucMsr8NVXX6FSqfjwww+bfG5nzpxh9erVnD17Fmtra0aOHMmsWbPEKF1BQQEjRoxgw4YNfPHFFxw7dgwXFxfmzp3LuHHj7rhfmUxGcHAwH374IS4uLqxbt67Jk9lfjWHDhvHuu+/Stm3bJr8c3NzcCAoKYs+ePc065uNSCO3i4kKXLl1YuXIlgwYNQiqV4unpydSpU/Hz83vUp2ekmfj6+nL8+HFUKhUKhaLBmC4qKiIpKYlXXnmFfv36IZVKOXHixF1TJW7fh0Qiwd/fn+rq6kZTiRvb3sLCgujoaNzc3Pjss8/YvHkz1dXVD/htHz22trZMmzaNF154AT8/vyYV14aFhbF3796Hfm5SqdRgnSKk8r711lu8+OKL4kJ13bp1uLq68vzzz/9Prx+Ezut/+9vfuHjxItbW1kyfPp2FCxdiZWXVIo6+Dh06iGuI2tpaTp8+jVqtblIGxNWrV5sc4ZDL5XTv3l2MVldWVnLo0KEmGxYqlYrExEQKCwvFn3Xs2PG+Ih6PihZz+woa88uWLaNPnz58//33nD17toG31crKil69ejF37lyioqKwtbW9p3fO3Nz8jh2xW4qamhqKiopwdnbG19fXYACXl5dz6tQpMjMz8ff3Z8SIEQQHByOTybC2tiYqKoq0tDTi4+ObnPcdGhrK1KlT2bVr12Mp9/k44OzszPPPP8+cOXNwdnZu0gtDp9NRWFjI+++/z9ChQ3n99depq6vD3Nxc/HxeXp7BNddqtZSUlNzXSzYlJYX33nuPkJAQli9fTnl5OcuXL0elUrF48WIsLCzQarUkJSXx2muvMWjQICZMmEBlZWWDFLvGEKRP33nnHbFQ+EE7Tj9O2Nra8vLLLzNt2jQ8PDwMZKLvhbOzMwEBAcjl8mZJiT4OxW1wK60rKiqKTp06iamVpqamWFhY3JdcsZHHi0mTJrFmzRrmz5/Piy++iL29PTk5OchkMtEIkEgkpKWlUVRUxJkzZ9i0adN9H2f+/PnMnTuXr7/+muHDh1NbW0tGRgbW1tYMHDiw0c/I5XLatGnD+++/T1hYGJ9//vmflur5MAgICOCll15i4sSJ2NnZNTnSVz+C+GcikUgwNzdn6NChFBYWsnTpUlQqFXl5eXzzzTe4ubkxYcKE/+mI5dGjRzl37pyYVjpp0qQWXUz369cPKysrseFnfn4+v/32G6NGjbrr5+rq6vjjjz/uS5Hw2WefFQ2LiooKduzYwfTp0xsVJrmd48ePk5CQIL4bPD096dat21/CsGjR0SuTyXB1dWXy5Mns2bOHlJQUjh07xi+//MKOHTs4fvw4aWlpbN26FWtra+bMmYO3tzeHDh165M2btFotSqUShUJhEI7U6/VcvHiRhIQEtFotffv2NeiZIJVKCQoKwtzcnOvXrzf5ewQGBvKf//yH33//nZkzZ+Lk5PQ/PZkISCQSbG1tefHFFzlx4gRLly7F3d39vhdavr6+TJ48mf79+zNkyBCio6NbNDdx+/btODo6MnnyZHr37s3w4cMZO3YsW7duNTCmTUxM6Nq1KzNmzKBXr14MGTKEsLCwJh1DyI9+4YUX2Lp1639FQa9UKqVv375s376dRYsW4eXldceUkbvtw9vbm9atWz+8E/0TEPKJ7e3txdSr5midG3m88PPz4+eff6ampoYxY8bQu3dv3njjDQoKCoBbc/+cOXP4+eef6dmzJxs2bKBv375ERkaKz0H9Z0L4t9AnSnhPjBgxglWrVrFnzx769u3Lk08+yQ8//NAk1TPBabN+/XrGjBnzl0ivqI+lpSUTJkxg48aNzJgxA3t7+/t6fzZ1Dn4YCO+4CRMmsGDBAlGFLjU1lS+//JIjR448NlHVPxu9Xk9aWppYmK3X69FoNKLkdktcFwcHB4YPHy4+Jzdv3uTTTz+9Y9NE4bhHjx7l999/vy8HZHR0tNiwWafTkZSUxLJly0SjpjH0ej3Xrl1j3bp1XLhwQfz52LFjGzi9H1daPFFd6HYqeN5u74YsXJQ+ffrQu3dvsUDyUSOVSpHL5eh0OoMqfJ1Ox/nz57lw4QLW1tZ07969wXcSKvWrq6ubnLcqk8mwsLAgMjKSiIgIXnnlFXbs2MHWrVtJSUmhpqYGjUbzWFybh41UKsXU1BR7e3smTpzIggULaNWq1X0vOOvTpk0bnJycGtRi3O1hbip6vZ4rV67w008/sX37dvGFJkjD1Y9amZqa0qlTp2YvFoXFZ5cuXdi+fTtr1qzhs88+4/r16w9NFamlEeaEgIAAFixYwNixY3FwcGi2lrZEIsHLy4vAwMD7yo81YuTPQCqV0qlTJzZv3iy+D4S8cLgVrXvuueeYPn26QWNZQYtfIpGwevVq8d/btm0T/71+/Xpxe4lEwsiRIxk+fLg4f9U/zt0Q5pWuXbuybt06du7cyaeffkpSUhIqleqxfO9IJBIUCgVhYWG8+OKLPPHEE/dMo74Tfn5+WFlZNUuppyUQasVmzJhBYWEh69atQ6vVEhcXx+eff469vT3t27dvsrFU/34Jake3I/RkEa7X47pAre/Nz8/PZ9GiRSxZsoSIiAhsbGwa1A/B/3X5FlLk7/bdJBKJuN6qqKhAo9Fw+vRpZs2axQcffICfn5/4fAlNNo8fP84HH3zA6dOnm9wDRUg//PzzzxkyZAhlZWVUVFSwZs0alEolL7/8skG0Xq/Xo9VqSUxM5N///jd79uwR16KdOnViypQpuLm5Pbb3rT4PtQL2bguH270vAnq9HpVKJU5uMpkMS0tL5HI5Go2GmpoadDodGo0GrVaLubm52ENCiDrUlyITfq/X66mqqqKurk684fVVI+RyOY6OjiiVSlHdBW61ZT916hRlZWUMGDBAlKqrj1qtFiUD7+em1y/MCwwMZMmSJcyfP59z586xfft2YmJiyMnJQa1WU1tb+8ijOi2JTCZDLpeLHdQnT57MU089hZ2dXYs8OGZmZneclIWHWECr1VJdXd3k4+r1eurq6njyySd58cUXG6Q21S/iFULfD4owZufNm8ekSZP45ptv+PbbbyksLESlUj2WhZgmJiYoFAr8/PyYOnUqTz/9dLMU2xrD09OTwMDAZn32cVw0Gfnv4m6NqoTF/90MgPqfvdO/gUbfofeDVCrFwsKCSZMmMWzYMLZs2cI333xDeno61dXVj8U7R1gDBAQEMHPmTCZMmHBf3ZJvR3B0tG3bltOnT7fgmd7/eQQGBvK3v/2N/Px8Dh48iFar5ddff8XFxYXXXnsNHx+fO95fYZ0kGAxarZbKykoqKioaSKTfvHmT+Ph4qqqqsLW1FdMthTWapaUlZmZmj3zRKpFIGDhwIK1ateL69evU1dURFxfH6NGjG91eGBuenp506NCBESNGEBUVhaurq6iK1hghISG89tprvP3226jVatRqNb/++itxcXFERUXRrl07zMzMKCoqIj4+noSEBJRKJe3atcPGxobk5GSxk/rdkEqldOjQgeXLl/PSSy9RUVFBWVkZq1atYtu2bfTs2ZO2bdtibm5OaWkpCQkJxMfHi/uWSqV4eXnx+uuvEx4e/sjvT1P5c6R17oPa2lrWrVvHhg0bqKurw8nJienTpzN27FgyMzP56aefKC4uJi8vj+vXrzN16lRmzZqFQqEgJSWFb7/9lqysLNLT01EqlcydO5e5c+eSlZXFl19+SWZmJjKZjCeffJLnn39e9CRbW1sTEhLCiRMnOHXqFGPGjMHU1JRDhw5x9OhR5HI5vXr1IiQkpME5FxcXU1dXd88O4k1BoVDQq1cvevXqRU1NDUlJSRw6dIhDhw5x+fJlqqqqqKmpEf/8VRZJgodMoVBgYWFBYGAgffr0YejQoXTs2PFPTf+wt7cnPz8flUqFVCqluLiYy5cvExwc3GDbxq6vVColODiYuLg4amtrcXBwQCqVUldXJ3ogHyaOjo689tprzJgxg02bNrFp0yauXLlCdXW1aOQ+KoRIpY2NDe3bt2fChAkMHjxYlGxtKZycnPDz80OhUNy3JO9fZXI2YuTPxNbWllmzZjFp0iT27NnDjz/+SGJiIuXl5SiVyrt2/G1pBIPHxsZGdDyNHDmyxVSTpFIp7dq1e6SGhUDHjh1ZtGgRN27c4I8//kCn07F+/Xrc3NyYN28ezs7Ojc5Za9euZdWqVRQXF1NRUXHXFJ3z588zefJk8f/C9bW2tsba2pqlS5cyfvz4h95ZuynY2dmxfPly/va3v1FcXHzXbbVaLRUVFVRUVHDp0iU2b95Mnz59WLp06R37mMAtg2ThwoUUFhaydu1aKioq0Ov1lJSU8Msvv/DLL78YbG9qakpQUBCLFy9Go9GwbNmyJhkWcMvJ+fTTT2Nqasrrr79OUVERtbW1FBcXs2PHDnbs2NHo58zNzQkODuatt95i6NChf6mi/sfOsJDJZPTq1YsePXpgZmZGTEwMa9euZcyYMQBkZ2djamrK119/ja2tLXq9Xhw8O3fuxMPDg9dee42UlBS+//57xo4di6WlJa+88grTpk3jlVde4caNGzz//PN0795dzH9zcnKib9++xMbGsmfPHlQqFfb29hw8eJDc3Fy6detGr169sLGxMThfnU7H5cuXUalU+Pv7t6gMqpmZGZ06daJTp04sWbKEGzdukJycTEJCAgkJCVy8eJGysjIxoiE0b6mtrX2ki0shJGlmZoa5ubmoyR4aGkrXrl3p06cPgYGBjyyXvE+fPvz444906tQJa2trYmNjKS4uFg0LtVpNUVGR+Ke0tJTLly9TW1uLi4sLNjY2jB49mvj4eFavXs21a9ewsbEhLy8Pc3Nzxo8f/6fUQri4uLBgwQKef/55YmNj+fXXXzl16hQFBQVUV1ejVCof6liQSCQG99jOzo6goCD69u3LgAEDCAwMfGhFyEJtU1RUFNevX7+vz5qYmDT5BapWq8UIprOz8wPfV41Gw82bN6moqBDH0r1wcnIiKCgIJyenBzq2kfvH0dERBweHR30afypWVlZMnDiRCRMmcPHiRXbv3s3vv//OtWvXqKqqQqlUPhQHhuB0sra2xsPDg/79+zNs2DC6dOnS4k3BpFIp3bt3Jy4urtn7cHV1bZH5Tag7e/HFF3n77bfJzMxEpVKxcuVK3NzcmDJlSqNOy/z8fC5fvtysXkdCw7aqqiry8/MpLi5+LKLeJSUlxMfHs2vXLjEaJ6iANpbdItRg1E8dP3z4MBUVFaxYsYLu3bvfcU2mUCh477338PPzY9WqVRQWFopZLUIGipmZmSgHPm/ePAYOHEhsbOx9G7jm5uY89dRTBAYG8umnn3Ly5EkqKytRqVRiDYlMJsPU1BRzc3McHBzo168fc+fOJSws7E+T128pHquz1ev1qNVq9u3bx8WLFzE1NRU9y8Kgd3Z2xt/fv9FGdFZWVpSWlpKVlUVxcTE2NjaYmppSWFhIRkYGa9asYcOGDcAtNYn6+ZX29vYMHTqU3bt3Ex8fz5YtW4BbiycXFxfGjBkjGiH1KSsrIyUlBZVKRZs2bR7qYtnJyYno6Giio6OBW4uUnJwcrly5wpUrV7h69SpZWVnk5ORQXl5OXV0dtbW11NXVUVdXJ6aP3f6nfmFU/T8CQg5g/fQ1ExMTTExMMDU1Ff8WpIDt7Ozw8vLCz8+PNm3aEB4ejp+f35/iDZFKpfj7++Pm5nbHh1Hobr127VpMTEzo06cPr732GtnZ2cAtSbkvv/ySM2fOiKkAr776Kl5eXixYsIB+/frRtm1b3nvvPTZs2MB3331HbW0tnp6eTJo0SZwATU1NCQ8PfyjdwQWESNDAgQMZMGAAarWahIQEsdFaZmYmN2/eRKVSUVNTYzAmtFqtmI9bPxdcuI5CuoYw4ZmamiKXy8XIk42NDQEBAbRt25b27dvToUOHPzUHdPDgwQwePPihHuPy5cu8++676HQ6/vGPfxAeHv5A+ystLWXFihVs27aNf/3rX0yYMOGen5k9ezazZ8+mpqaGzMxMWrduLTbfM2LkYSGRSAgPDyc8PJxXX32VpKQkTp48yfnz50lKSqK0tFScVwSnlkajabTYtn76V/33heCYsLa2JigoiMjISHr06EGHDh0e6rvUxMSEGTNmMGPGjBbdr5mZGWFhYbi4uCCRSPD19W3S5+RyOSNHjqSsrIwNGzaI9XPHjh2je/fudOjQocFn3N3d6dChQ4vU2rm6ujaacuXg4ED79u2prKxEJpM1WTCjrq6O3NxcpFIpERERBvu7EwUFBSxbtoz//Oc/1NXV4ejoSNeuXQkLC8PDw6OBx16n06FSqSgpKSEjI4O0tDTy8/Opq6sjPj6eHTt2EBAQgLu7e6PHE9KLX3jhBZ544gl+++03Tp48SV5eHkqlEltbW/z8/IiOjhbTqwBatWpFx44dxbWBvb19g7k4NzeXkpISAgMDRclpQX62ffv2nD9/niNHjnDx4kWKi4tRq9WiQd2hQweio6MJCQlpkiNLeE7LysrEZpqN4eDgQMeOHdHpdAQEBDTa/01w2FVWVgLQunXrZhk1Ev0jzqXp06cPb775JtHR0chkMtLS0hg6dCixsbE4OzuzdetW1q5dy4EDB8jIyGD9+vUEBgbyzDPPNNhXQkICH330EXDrZo8dO5YePXpQXl5O//79+eGHH4iIiEAikaBUKjE3Nzd4mNRqNUePHmXFihVcuXIFnU6Hg4MDI0eOZNq0aY3KhMbExLBkyRKysrL44IMPeOaZZx55OFGn06FWqykuLqa4uJgbN25w48YNysrKRC9FdXW1+G9hwSk0jBH+1ul0YlG7sKgULGo7Ozvs7e3Fvx0dHfH09MTLywtHR8e/RNv5/wXUajU5OTlkZmaSm5srRmFKSkoM0uqEyEb9F7+lpSVWVlZYWVnh6OiIs7MzLi4uYudrNze3/3pZ1MzMTFFpZ/r06U1eKNyJ4uJiPvnkk/syLAQSEhKYOHEimzZtMtBiN2Lkz0TwEufk5JCRkcH169fJy8ujqKiIsrIyysvLUalUojNLiGArFAqsra2xs7PDyckJDw8P0QHl7+//WOT4G2kZcnJyeOedd3Bzc+Ott9665+JUrVazZMkSVq1aRV1dHa6urixevJjZs2eLfaHuhkqlYseOHbz//vskJSUBt1LMvv32WwPD5s/i1VdfZe3atRw8eJB27dr96eNao9FQXFyMRqO5o6HxMHlkEYuMjAwxJeDSpUtYWVkREhKCRCLB2dmZ1NRUUlNTOXHiRJNzy0pKSrCzsyMyMlKcqNRqNU5OTgwcOJDNmzdTUVGBVCqlrKysgXynQqFgwIABtG/fnqSkJGpqavD398fX1/eO3hOJRMKTTz6JSqVi+PDhj4UcqJA/6ePjg4+Pz6M+HSOPEIVCQUBAQINO8rdTXFxMeno6rq6ueHt7GyVP/z/+/v688847j/o0ADh9+jQVFRWP+jSM/I8jFD/7+vo+sKFt5L+Tq1evcvnyZdzc3Jq0fWJiIps2baKurg4TExNGjhzJ4sWLm+w8MTc354knnuDgwYMkJyeLyo2PSvUrICCAqKioh5qtcDdu3rzJmjVr0Gg0/OMf//jTj//IDIu4uDgSExPx9/fnwoULZGdnM2fOHHx8fHj22WfZvHkzTk5OREZGEhgYiEQiwcrKiuDg4EaVZaqrq8nPz0epVBITE8ORI0coLS1l5syZDBw4kKVLl/Ljjz+yfv16NBoNQUFBDBkypMF+pFIprq6ujaZaNUa/fv3o16/fA1+PvwoajUb0frdt27bJ18nIo0OpVJKXl4eZmdkdvRenT59myZIljBs3jhdffPGBVFceN0pKSjh//jyhoaG4urpy+fJl8vLyqK2txdLSEh8fH4MFUl1dHVlZWaSlpYk/c3FxISQk5I7es9LSUjIzMykpKWnQtM/ExITAwMAGxp3Q0Oz69euoVCrMzMzw8PCgVatWYl+Bmzdvkp2dzY0bN/jtt98oLy/n6NGj5OTkiF6woKCgBsIDOp1OPKfS0lJ0Oh22trb4+Pjg5ubWaESxurqaq1evUlBQQE1NDQqFAg8PD7F2TFDeu3r1KhkZGYSEhDRwXOTk5JCUlISPjw+hoaEGv1MqlWRnZ1NYWIhSqRTzp52dncX0Lr1eT3Z2NpcvX6Zz585UV1eTlZVFVVUVJiYmuLi44Ovr2+h9ENIvrl+/TlVVFTKZDCcnJwICAhrNUdfpdJSUlJCVlSWmjsrlcmxsbPDw8GiQQ69SqcjNzSU/P18slFUoFDg6OuLj44OVlZUxitTCaDQa8vPzycrKorKyskEdgJ2dHcHBwQbiEEqlkmvXrpGfn49arcbMzAx3d3f8/PxEJ2VdXR0xMTFYWFjQu3fvBvdNqVSSnp5OWVkZwcHBBgvkpo4zoflaYmIinTt3xsLCQmyKqNPpsLa2xtfXF09PT+BWZ+a0tDTkcjkeHh4UFBRQUFBAbW2t6Cj09PQUnT51dXUcOnSIdu3aUVlZydWrV7G3txf/n5KSgkwmw9/f3yDbQqPRUFBQwLVr10RHq4ODA/7+/g2aDBYUFJCQkEDHjh3R6/Wkp6eLn3F0dMTf319Mb1KpVGL06uDBg6JhsXv3bnG+cXNzIyQkpEGTt5iYGFQqFXArhXjs2LH3/SxZWVlhY2ODiYmJmPL7ZwoO1GfmzJnMnDnzkRxbr9dTXl7OkSNHHjh1t7k8MsOisVQmgeeff57nn3++wc89PT2ZMmVKo5/Jzs7m5MmTTJw4kcGDB6PT6XjvvfdITU2lV69eODs7s3jx4hY7//9VlEolGzZsYMuWLXz88ccMHz68xfat1+u5ceMGcXFxjBgxwphO1UJcu3aN77//noCAAGbNmvWoT+dPJzk5mWeffZa33noLDw8PNm7cyOXLl6moqEChUPDss8+yaNEicXu1Ws3JkydZuXIl5eXl5Obm0qtXL/71r381Gla/ceMGGzduZMeOHaLc9bVr17h58yZOTk5ERETw3HPPGRgWQhfXI0eOiMo7Go2GsLAwZs2aRd++fbGwsCAjI4OffvqJ8+fPk5iYiFqt5quvvhIljKVSKXPmzDEwLLRaLdeuXWPz5s3s3buXkpIS9Ho9NjY2REVFMWXKFNq1a2eQnlBSUsK+ffvYsmUL165dEz2HQUFBTJ06laFDh2JqakptbS07duzgww8/5F//+hezZ882uBZHjx7lb3/7G3PnzuWDDz4Qf15RUcH+/fv5+eefuXr1KkqlUuzbEBAQwEcffYS/vz86nY7ffvuN119/nWXLlpGUlMSZM2coLy9HrVbj4+PD9OnTGT16tEHhu1qt5vTp02zYsIH4+Hhx/+7u7owfP16UKBUWfTqdjuvXr7NmzRpiYmKorq6mpqYGqVSKjY2NqBooGBbV1dXExsby008/kZqailKpFFNFfXx8ePPNN+nYsWOLGBZlZWVcv34dFxeX/2nHjUajITU1lVWrVnH69GkkEgnl5eXk5OSg0Wjw8vKif//+zJo1SzQsSktLOXDgAD/99BMZGRnU1dUhk8kICAjg6aefZvjw4Zibm6NSqVi0aBE6nY5jx441uM5Xr17l7bffprCwkA8++EA0LO5nnOn1euLi4pg5cyZr165FqVTy888/i0Xwrq6uvPDCCzz99NMAXL9+nWXLlgHQrVs3zpw5Q2ZmJuXl5UgkEqKiopg3bx7t2rXD1NQUpVLJ5MmTWbx4MRkZGcTGxmJnZyemZv/888+o1WrGjx/Piy++iJ2dHbW1tVy4cIGNGzdy4sQJKisrRWGKJ554gqeeegovLy9xHJ8+fZpnn32Wd999l9zcXI4ePUpZWRnV1dU4OzszefJknnnmGezt7bl58yZ79uwhJiaGS5cuUVRUxOHDh0lJSRGva79+/ViwYEEDwyIvL8+gzq+pkY76VFVViX0pALHZaE1NDYcPHyY0NJSioiJycnJwdnamS5cupKWlkZGRgYODg9gnA245fQoKCsjOzqa0tJTa2lpMTU1xc3MjICCgQV1FZmYmycnJonEk0K1bN1q1atXAqVFbWyumKFdUVGBiYoKzszOBgYE4OTk12L6oqIjMzExu3LghnoudnR2tWrWiVatWSKVSNBoNGRkZXLt2jYsXL3LhwgXMzMz46aefxP34+/vTqVMndDodycnJXLt2jfbt29OqVasG1/PEiRMUFhYycOBArKys7iud66EaFoWFhfzxxx/Y2Ng89CJWoZL+4sWLYn5nYWEhQ4YMeeD0pOrqatLT07ly5YroaXN1daVjx44tJn/3V8HU1JSIiAg0Gk2jg/FB0Ov1xMbGMn/+fK5evWo0LFoAvV5Pbm4uZ86cabEeEn9Vjh07xs2bNwkNDWXAgAFinri/v7/BdhYWFgwZMoSQkBAuXLjAd999d9f97t27l+XLl9OtWzcmTpyIra0tx44d45NPPsHHx4cPP/ywQcrIjRs3OHjwIIGBgUyZMgWFQsHZs2fZt28fer0eLy8v2rdvj7u7O8OHD6dv3758/PHHnDhxgnnz5uHn5ycKKtzez6O0tJTVq1ezfv16oqKimDhxIjKZjLNnz7Jz504qKip49dVX8fPzA24ZOb/++isfffQRHh4ePP3007i5uZGXl8euXbv4+9//jq2trSga0RzOnz/Pxx9/jEwmY+TIkXh5eaFUKrl69SrXr19vkF9fWVnJ6tWrsbOzExsqXrp0iZ07d/LVV1/h7e1tEClOSEhg2bJlFBQU0L9/f4KCgqioqOC3337jgw8+QKFQ8NRTT4n1bxqNhs2bN/PJJ58wduxYunfvjlwup6ioiCtXroi1ZQKXLl3iiy++oKCggOHDh+Pv709NTQ3Z2dlkZ2cjl8tbLFqRmJjI5s2bGTVqFIMGDWqRff4VqaysZNWqVfz888/MnDmTqKgobt68yZYtWzh69CjDhg1jwYIFose/rq6O/fv3s2zZMrGztaenJ4WFhezZs4c333wTS0tLBg4ciLm5OaNGjWLVqlXExMSIi3u4ZZhnZWVx4cIF+vTpQ7t27cTf3e84g1uLyL1791JcXExYWBhPPvkk1dXVlJeXN1q3eerUKbKzs+nQoQOzZs1Cq9USExPDtm3bsLGxYenSpQZN5LZv387AgQN57rnn+OKLL0Qj/amnnuLIkSP8+uuv9O3bl+joaC5fvsyKFStISEigb9++hIWFoVKpOHz4MF999RUSiYQZM2Y0KLL+9ttvMTc3Z+TIkbi7u3P16lW2bdvGp59+ire3N2PGjMHKyooePXoQGBhITEwMa9asoV+/fgaCJm5ubo1KjwsFznDL6M/OzqZ9+/ZNHitarZazZ89y6dIlUTDA398fa2trqqqqePnllxkxYgT5+fmcOnUKGxsb/vnPf7JlyxYuXrwoNs2bOHEicEtxa82aNRw7dkx0FtXV1eHs7MykSZMYNWqUgUpfeno6P/30E0VFRWJE68qVK6xbt67BOkmtVnPu3DnWr1/PhQsXqK2tRa/XY29vz8CBA5kwYYJBh+3r16+zceNGDh48SHV1tShrb2JiwsSJE3nhhRcwMzNDo9Fw4sQJfv/9d9LT07l58ybnz5/n5s2b4rFHjx4tRp8OHjzIV199xeLFi3nuuecM1snl5eW8+eab5OXl0alTp/teuzfbsFCr1aJH4E7FMenp6bz//vuEhISwdOnSh2pYtGrVimHDhnHixAkSExORSqX06dOH6OjoByqm1mg0nDp1iq+++orMzEzMzMwwMTEhLCwMLy+v/znDwtzcnNGjR9+xYc2DoNPpiImJafH9/tkUFxeTlpZGTk4OlZWVYtg4NDSUoKAgccIoKyvj3LlzSKVSQkJCSElJIScnB7ilfhYeHo6Hh0cDA+vq1atcvHiRoqIi9Ho9rq6udOjQwSDNqbq6muTkZDIzM4mNjSUlJQVnZ2eDxVKPHj0aNN2RSCRkZGRw9OhRSkpKMDMzw8vLi65duzZQIqqtrSUrK0tUiJHJZHh4eNCuXTs8PDwMts3JyeHUqVOEh4fj7OzMhQsXRM+44El3dXV9qEVue/fu5e2332bWrFnI5XLRq3h7EzCZTCamQ5qamrJr16479ovRarXs3r0btVrNwoUL6datmyiZvWvXLvLy8hpN3VGr1Xh4ePDOO+/Qpk0b4JbKleBdS0tLo3379nh7e4v3ddOmTUilUnr37n3H4u26ujouXrzIxo0biYyM5IMPPhBfbFeuXOG9997jwIED9OrVi9atWyOVSsnKymLz5s3I5XJee+01evfuLY6Tzp0788wzz/DRRx/RvXv3Zl/7S5cukZeXx/z58w0KMgXt+Ns9gBqNhqqqKr788ktRje/GjRtYWlry5ZdfcurUKdGwqKysZNeuXaSmpvLiiy8yffp0cf9du3Zl5syZ/Oc//2HQoEHiGNZqtRw7dgxra2uWLFlC27ZtxfMRBA3qv2gFxb1hw4axcOFCcWGn1+spKyvD0tKyRRwher2elJQUkpOTGTZs2APv76+KXq+ntLSUX375hZCQEJYsWYKtrS1arRaFQkF8fDxarRZPT08xepednc3PP/+MVqvl5ZdfZtCgQWLqU9euXZkxY4boALCzs2PkyJGsXLmSPXv2iMY33IquJSYmUldXR8eOHcVF9v2OMwG1Wk1sbCwffvghTz75pPjc1lfjq8+NGzcYN24cS5YsEY2m3r17c+3aNX777Tfmzp1rYFgolUreeOMN1Go1MTExJCcns2jRIsaNG4erqyv//Oc/ycrKIjIykpiYGOLi4pg8eTKLFi0SF8e9e/fmxRdfZN26dfTr16/B83jlyhW2bt3KgAEDRPEbT09PFi1axIEDBxgzZgy2trZ07dpV/A5yuZzAwECGDRt2z+Lttm3bitvU1dWxceNGwsPD71kjqtfrqaio4I8//mDVqlUkJiYCiGqP9SMf+/btY8aMGXTu3JmlS5fyzjvv0K9fP6Kiovj0009Zt24d48aNQyaTodFoMDU1pVevXgQFBWFpaUlOTg5btmxh1apV+Pr60r9/f3HfQo8zoZfU1q1b+fTTTxucr06nIysrixUrVpCXl8e4cePw9fWlqqqKmJgY1q1bh0QiYc6cOaJq02+//ca3335LVFQUAwYMwMLCgtLSUlJTU0X1MeE79+jRg+DgYFJSUnjppZfEKJeAu7u72LyzW7du/Prrr5w8eZKBAwcaOKhOnz7NlStXGDNmTLOaFjfbsLh58ybr169HoVA8kqr72xF0qR/k5dcY5eXlovzt+PHj6dGjB3Arn6+lm349bHQ6HefOnePs2bN0795dVMiqT1ZWFjExMXh5eREdHS3mPefm5hqE1GxsbOjbt2+jRcFlZWWcPHkSiURC165dxTzNGzduiEV/3bt3F8OOmZmZXLhwgdzcXNEq/+yzz8SJ3sbGhh49etC2bVvKy8s5ffo0N27coGfPng0mnpiYGFJSUnjiiScaSONVVVVx5swZMjIyUKlU2NjYEBISQseOHVu0+czu3bvZuHEjarVa7NJdU1NDZGQkCxYsICwsDLgV0VuzZg0FBQX07NlT7IyqVCoB6N+/P3PmzBE9ywDx8fGsWbOGs2fPGrygunbtyuzZs8V9V1dXc+7cOU6cOEFSUhJlZWUkJiYaNPVxdXUlLCzMYAykp6eLntmamhoqKytRKBTMmjWL5557TtxOSBf6/vvvSU9PFxdrcrmcnj17MmXKFNq0aSPuOy0tjWXLljFp0iQkEgknT56kpKSE6upqqqur2bhxo8Ek+TBwcnJi7NixolEB/1eI2ly0Wi2FhYVYW1vj5OQkjlkzMzN8fX25evUqJSUlDQwLW1tbunXrZlCH4O3tTUBAADt27KC8vLxZ56NUKomLi6Ouro7+/fsbeMt8fHzo2LEjW7duFXvvWFpacvbsWa5cucLw4cMJDQ01MD779+9PWFgYx48fJzs7u1EPa1NwdXXFxsaGU6dOERwcTLdu3UT1uMb6c8jlciIjI4mMjBR/5ujoSLt27aipqaGoqEj8eVZWFomJifj4+NC1a1eDay2kIhw/fpz8/Hzc3d2RyWRIpVL8/Pw4fvw4u3btQqvVEhQUhEKhEP/Ux8HBAQcHBxITEzl06BC9evUSu/u2hHPpxo0bXLhwgStXrrBr1y7S09PZsWOHQZ3PuHHjGqRVpKWlkZCQQElJCRqNBisrKzw8PGjTpo3Bvb98+TK///77HaVJhw4dSmhoqMG+CwoKOHfuHNnZ2dTV1eHg4EBYWBjh4eF/Si2J0EOmV69e4j2VyWTY29vj4OBARUUFVVVV4iL+woULpKWl0bNnT8LDww3m9KioKNq3b8/+/fu5cuUKHTt2pE2bNrRp04b4+Hiys7PFqGJeXh7Hjx/H19eXbt26ifu433FWX7rbx8eHYcOGGVy3O3VN9/T0pGfPngYRZqGe8cSJEw1quARJU41GQ+vWrcnKyhK/v5OTE3V1dVRVVZGXl8f58+dxdHSkZ8+eBs9dhw4dCAwMZMuWLVy/fp3w8HCDebF9+/ZERUWJ/zc3N6dz587i2uBB6dOnD76+vly8eFHsPm5jY0P//v3x9fXFwcHBoD5GpVJRWlpKXl4eKSkpHDx4kPj4eDEVqXPnzgwaNAh7e3txLnVxcWHSpEnY29vzxRdfkJubyyuvvCI6GRITE1EqlVhbW+Pj48NLL72EXC4XDR6NRoNKpeLzzz8nJyfHoBmuoJ4ocP78+UbvrUql4vjx4yQkJPDqq68yY8YMcbvg4GDeeOMNjhw5Qv/+/encuTNwK2KhVCoZOHAgo0ePFq+DTqcTDSC4ZViEhoaK6o4ymQxPT0969erV6DVv164dHTt25Pfffyc1NRV/f3+kUik6nY59+/ZRU1PD0KFDm+WYb5ZhIXhpjh8/3uIL+ceNGzdukJOTQ0BAAGPGjBFv9l8RvV7PxYsX+fe//83kyZPx8/NroGW8b98+3nnnHebNm0fPnj3Fn1dVVYlNXdLS0tDpdDg7OzdqWJSUlLBx40Y0Gg2FhYWcOXOGtLQ0KisrKS8vp3v37oSEhBgYFgcOHODq1avk5eWh0WjYu3ev+NC6urrSqlUr2rZtK4bCExMTcXJyamBYbN++nR9//JGgoCADw6K0tJTvvvuOX375BaVSiYmJCTU1Nbi5ufH000/z1FNPtZiil5mZGT179hSbmqlUKo4ePcqGDRtwcnIyyD2H/5uEBg8eTGhoKEqlki1btvDTTz/Rtm1b3N3dMTc3p6ioiBUrVnDq1CmefvppOnXqhFQqJSEhgTVr1lBZWcknn3yCg4MD1tbW4uS0d+9evvzyS0aMGMFTTz0lHtfb27vBQv7w4cP079+fqVOniukwH3/8MR9++CFDhgzB09NTDFV/+umn3Lx5k2nTptGqVSvUajWHDx/m119/xcTEpNEi8B07duDn50efPn3w8/Ojrq6OzMxMvLy8HrokX3BwMJaWli16HKlUiq2tLRkZGVRXV4t591qtluLiYszMzMRC7PoIL6/65yKVSsWUoNujKE1FrVaTmpqKWq3mxIkTDbrDnj9/Ho1GI0pPW1pakp2dTVlZGX5+fg1yn6VSKW3btuX48eNcunSp2YZFly5dGDVqFFu2bOG9996jS5cuREZG0r17d3x9fRt4NE1NTQkODm4QTRNe9PWvT15enlgQvmnTpgZRT0HbPj8/30BSedKkSaSkpPDVV19x+vRpunTpQpcuXYiIiGgwbtu1a8fo0aP54YcfWLZsmcH5BwQEPLBjorS0lD/++IM//viD9PR0ysvLuXDhAvn5+eI2txuK8fHxfPrpp2RkZGBlZSX2p7GwsGDOnDkG2xYVFREbGys6LeCWUZyamkphYSFeXl4GRm5mZiarV68WG8gJXmpvb29mzJjBsGHDHvrzampqirW1NRUVFajVahQKBXq9HqVSKRoU9a97bm4uN2/exMfHp8F7TSqVEhoayv79+7l06RIREREoFApGjx7Nhx9+SExMDDNnzkSj0XDt2jWSk5PFdEiB5owzuLXgCwkJafIYcXNza9BtWyaTYWFhIcrA10d4jwoNS2UyGTY2NmLvELh1r0tKSsjJyaGsrIxdu3bxxx9/GOwnNTWVuro6sTN0fcOibdu2Yj8r4VhCL5LbDZ3m4OPjw7x583j77bfJzc2lurqa7777jgMHDhAUFGTQnLS2tpbq6mpKSkrIzs4mLy9PbBIolUrp3LkzCxcuJDw83GBe8fHxEftuubi4oFarsbe3p7S0FHt7e7RarWhYSKVSqqqqSEpKIjs7m4qKCmpqajh16hRVVVWi0/B+n4GKigpOnDghOv7qO0hKS0tFB0FBQYH484iICJydnVm/fj0lJSV07tyZtm3bYmlp+UDqjTY2NnTv3p0DBw4QHx9Pjx49cHR0JC8vjzNnzhAcHExISEiz+ljc1ydqa2s5ffo0CQkJJCUlkZSUhFar5fXXXxe36datG8OHDzew1iQSCenp6cTGxnL9+nVMTU3x8fGhb9++ODs7G2yr1WpJT0/n+PHj5OXlIZFI8PLyokuXLoSGhhpsK3i4vb29ad++PfHx8aLVaWNjw6BBgxp0/7169SpHjhzh+vXr6HQ63N3diYyMpH379uK+y8rKOH36NImJiWRlZYkP4DfffCO2eh80aBBdunQxCHmmpqZy8uRJ0Zr18vKid+/eDXKgy8rKOHz4MGq1mqFDh3Lp0iXOnj0rhtSFaEL9fefn53Py5EnR02hvb09ERAQ9e/ZEJpM1aYDLZDLCwsIIDg4mISFB9NwICCFbuOVBqH/81q1b895771FcXMzKlSs5evToPY8nSPYGBQUxa9YsrKysxMaF9QsvQ0JCmDZtGjU1NaSkpFBVVcXbb78t3re7qRk1lfXr17N8+XKxm6udnR3Xrl1jw4YNfPzxx7i7u7dYs7VRo0aJvSCEdJvg4GCx+eLtE5JcLqdv3748//zzotdDIpGIKRGDBw/G3Nyc2NhYjhw5wpgxY1i4cKEYoo+OjqakpIRNmzbx5JNPMnr0aMzNzQkODkar1ZKSkoKpqSne3t73NIzt7OyYO3euQcfS9PR0PvvsMy5evIinp6fY7+XChQu88cYbPPfcc+Kz4+vrS1ZWFsePH2fIkCEGxincGscvv/yygdRz/SZaDxNbW9sWP4YQchdyZoUX0/nz50lNTWXQoEGNeuRNTEwMni+BBz0/rVYrvviEl+LtRERE4OPjIy461Go1Go0GCwuLRl8iwpgUmibdjdubawp4eXkxc+ZM/P39OXLkCAcOHGD//v1EREQwfvx4RowYYWDYS6XSRg0yoa6k/jGE1KWSkhLi4uIaLODs7Ozo1q2bgdEkk8no3Lkz77zzDvv37ycuLo6VK1eya9cuBgwYwPjx4w1yvF1cXJg8eTLe3t4cOnSIkydPEhMTQ1hYGKNHj2bkyJGNNpxqKq6urjzxxBP06dOHzz//nMOHDzN16lR69+4tbnN7LdDatWvZvXs3H3zwAcHBwaL4RVFRUYP5sl27drz55psGKjkJCQl8/fXXBAcHGziI1Go1q1atYs+ePUyePFmM6GZmZvLFF1+wbNkyQkJCGpxPSyKRSLCzs6N///6cOnWKH3/8kcjISCoqKvj111+RSCR07NjRwEss9GNSKBSNjmMLCwskEolYsCyXyxkwYACffPIJ+/fvZ9q0aVRUVBAfHy+mitQfg80ZZ/B/zoemYmZm1uiC8U5zQ/3vKjwft6fl6fV6amtrUalUlJWVcebMGbHfg4BMJqNLly4GIgcCd0pjb6n5VCKRMGnSJOrq6vjxxx85e/asWOuSlZV1z8/LZDJatWpFdHQ048ePp1evXgZrDPi/+w+3jFbhGtW/XjqdDq1WS1paGmvWrCE5ORkLCwtRberGjRtih+/mUFtbS25urugAunr1qsHvnZ2d8fLyMphLoqOjWbBgAdu3b+c///kPnp6eRERE0K9fP6Kjow0i8PdL165dadOmDceOHWPEiBE4OjqKqoMLFixoVhoU3KdhodVqyc7OJjU1laysLJRKJTdv3iQ9PV3cpn7ahsDly5dZtWqVKFNWWlqKWq3mwoULvPLKK2IoWafTcerUKVasWEFOTg42Njbii/LgwYPMmDGDvn37il80Pz+fzZs34+fnx/nz5zl16hQqlUoMoYaEhBhMmImJiSxfvpy0tDRsbW1FWa7ffvvNwAtTU1NDbm6u2MlRkBa8du2a6AGMjIw08BwcPXqUlStXkpaWJnoLysrKiImJYcGCBWLuIdxKr9q7dy/Xrl1DrVazf/9+Kisrqa2t5ebNm5iZmRm81DIyMvjmm284efKk6LErKyvjl19+Yfr06UyfPr3J9zAoKIjw8HC2bdtGWlqaQa72pUuXSE1NJSIiwqDjokQiQaFQiLJ7d+pkKSDcnytXrtCnTx/mzp1r4J0VmiYJCMoGtbW1KBQKamtr6datW4ulJ12/fp3vv/8eJycnXn31VdH7olarsbGx4YUXXmDjxo0MGDCgRfKkTU1NOXv2LMnJyRQVFaFSqbhx4wYVFRWimkz943h7e9OhQweDydvT01NU2hDCuydPnqSiooLhw4eLYwzA0tKSUaNGsXr1ag4fPvxA9S+dOnVq0G1TaPCTl5cH3EqziouLo6KigoMHD3Lp0iVx24qKCq5du9bA6yLQvn17QkNDDRaRf1bzoIeVvjF27FhSU1PZtm0biYmJWFhYUFJSwqBBg1i8eHGjY0pYALQ0MpkMS0tL7O3tmTRpkpi6eTvu7u7iAsjCwgJTU1Oqq6sbjZQIBkV9z2hjCGl/d/Jgtm7dmqlTpxIVFUViYiJxcXFs3bqVtLQ0MU2rPk29X0IH57Zt2zJ9+vQ7ikq0adPG4F6YmprSvXt3wsPDSUpKIj4+noMHD/L9999TWVnJ0qVLDdSCPDw8xHTYxMRETp06xS+//MJHH32Es7Mz/fr1a/acJThbNBoNLi4umJmZ4efnd9c0Y8GBJXTpFQwuoet1fezs7AwWK9nZ2SQmJmJpacnMmTMN0qCSkpLYs2cP0dHRzJkzBwcHByQSCT179iQ3N5dPP/2UQ4cOPVTDAm45AmbPnk1ubi4ffvghbdq0EZvuPfPMMwwdOtRgIUxmHAAAHs9JREFUjJibmyOXy0XxltupqqoS1dEkEglSqZRWrVrRuXNnkpKSxHXM0aNH8fHxafDsNHecwf3NPfc7NzR1W7lcjkKhwM/Pj5kzZxpEY+oTEBDQwLD5M1LfrKyseO655wgKCuL48eNiamBhYSEVFRVikbPwPWxtbcW+S8HBwYSHhxMZGYm3t3ej6a23X6c7XbeSkhJ+/vlnfvnlF4YMGcKYMWNwc3PDwsKCzZs3c/ny5Qf+rh4eHsyfP7/RMaRQKAwiww4ODkyaNEns2H369Gl27tzJ0aNHmTdvHuPHj292Oq+Hhwddu3Zl1apVJCcnExwcTExMDKampvTs2bPZ9cn3ZVjI5XKioqLo0KEDCQkJnDx5kp49e7JkyRJxm8bamyckJDB8+HAmTJiAl5cX5eXlfPbZZ/z4448MHTqUHj16IJPJKC0t5V//+hc3btxgyZIleHl5odVqiY+P5/vvv2fNmjUEBAQ0uBkHDx6kZ8+eDBs2jKCgIOCW0REWFiYukKqrq/nwww9JSEjgtddeEw2glJQUvv76a7766ivRC2NnZ8egQYPo3r07GRkZfP755wC88MIL4v7rh+Zyc3NZsWIFKSkpzJs3j/bt2yORSEhOTuaTTz7ho48+4uuvv24gaZeUlMSBAwfENu9yuZzi4mL8/f3FfavVatauXcvvv//O008/TWRkpJgW8/HHH/PRRx/RuXNnMbf+Xtja2tK+fXt27drFxYsXGThwoOhRPXz4MIWFhcycOfOBvG/CS01oVnh7yk1zQmsPwtmzZ8nJyWHs2LFiHiHcelEIUadLly5x8+ZNg6K45qBSqfjiiy/Yt28fVlZWuLu7Y2FhIXoKG/N02NjYNPBqCx6Vuro60YAtKCgQCxbrX0Mhh1er1YrF383F09OzweJI+L+Qny2oXmi1WtFJUB8/Pz/c3d0brUESJuj/JiwtLampqSE0NJTBgwdjaWmJnZ0d4eHhDfpLPAhCBOxu2uwKhYKQkBBiYmKwtLRskpJT69atsbe3JyMjg4qKCgOPq1ar5eLFi8hkMjFVxszMDK1W2yCCUVVVJeru3wkTExP8/f3x9/enZ8+eWFlZsWLFCo4ePUp4eHizDHt3d3dcXV0pLy/H39//jsZUYwj9kbp160ZERATt27fn/fffF6PDt8/Zgme0VatWYurAxx9/zLFjx+jSpUuL1mrdi5EjR3L8+HGWLl1Kv3796NmzJ2FhYfdcZJSXl7N9+3ZOnTrF+PHj6d+/v8EzefbsWUpKSkhMTOTVV18V5xqdTkdmZia1tbWkpqY+1O8G/xe1EoyaXr16YWpqipeXF+3atWvg4PL29sbJyYmsrCzKysoM3mE6nY6UlBT0er2BEWVhYcGTTz7J0qVLOXjwICEhIVy+fJnRo0c3qNG733HWWGH2o8TR0RFvb28SExPx9PR8IJW3eyHk+N+pQP1OKBQK+vfvT7du3cjKyiIvL4/S0lKUSqUYKTAxMUEul2NlZYWdnR0uLi54enpiY2PTIgbQjRs3OHnyJK6urkyZMkVM99fpdEgkkgaSsveDXC7H29ub3NxcbG1tRWGKe2Fubk6nTp3o0KEDAwcO5Ny5cyxdupQVK1YwcuTIBs+8cB3uFVmRyWRER0ezc+dOjh8/jqurK8nJyXTp0gVvb+9mO1rva4Unk8nw9vYWmy/JZDJR7eZuODs7M3bsWIYPHy5awllZWZw/f56kpCQiIyORyWQcO3aMuLg43nvvPcaNGydenNatW5OamsqxY8eIj49vYFjU1dURFRXFhAkTxAny9vSKM2fOcODAAV544QUmTpwo3oiQkBDS09PZvHkzcXFxYsduwWIUGtno9Xr8/Pwa/a6HDh3i9OnTTJs2jSlTpogTWkREBLm5uaxcuZKDBw8yefJkg89pNBoCAwN59tlnRW/g7eednJzMwYMH6dKlC08//TSenp7i7woLC1m4cCH79u1rsmEhkUjo0KEDwcHBnDt3jqtXr+Lk5ERVVRVxcXFYWFg0SPG6X4Tzc3Z2xtnZ+ZHLxqanp1NTU0NcXByzZ882OB+hWFqlUrWIYSHI9oWEhLBw4UK8vLywsLCgsLCQU6dONfoZYaK8F/XzZW9PpxI8zQ96rYUc3bshePtcXFz429/+1mj3Xblc3qgGf0vKcj4uJCcnc/r0aUaPHs0zzzwjenhbGkdHR+RyOZmZmQ2KUwUsLS3p3bs33333Hb/99hsDBw40mLM0Gg3l5eWYmJiI6RldunQhMDCQw4cPM2LECAP1sN9//52kpCR69uyJt7e3aMQqlUpRx18wnJOTkzl06FCjL7PCwkIUCoVBpM3FxUWcH2pqapqdXuDn50eHDh1Yt24dhw8fJjAw0OA5FtJXXFxcDBbJWVlZ+Pr6Gjga3N3dsbGxEWUjBW7evIlerze4tw4ODri4uCCXy0Vv6p/Jk08+iVarZevWrXz22Wf88ssvREREMGrUKHr16tXoGBQaw23bto2uXbuKUr71qW8clpaWGuzH3t6e0aNH3/Od3xKo1Wri4uLEtIzRo0ffdW6KiIigTZs2nDx5koSEBNzd3cVn5NChQyQmJtKlSxdat24tficzMzO6du2KjY0Ne/bsQaVSoVAoDJTRBJozzh4nPDw86Ny5M7GxscTExBARESGqTgFixoSdnd0D1xtaWlpibW1NcXExJSUl98xyqI9g7IeFhTV5XdOSCM+xXC43MLgvX77M+fPnH6ibt62tLVFRUezZs4c9e/bQpUsXgzS5mpoatFqt+B7W6/VUVlaK0TKZTEbr1q3x8PDgiy++EIvd6yPUosnlcrFm427jMSQkhIiICE6cOAHcUrX829/+1mBeuB/+lNEfHByMn5+fwYPaunVrFAoFRUVF4oU5evSo2ETm2LFj4rY1NTWiN60xBQJ/f39CQ0MNBsHtk2pcXBzV1dXs37+flJQUg7ScK1euiF1nm8PZs2eprKxk4MCBBp03zc3NGTJkCJ988gnHjx9vYFi4uroaNGVp7LwFWdGTJ08yf/58g2tYUFCARqMxUA5pCv7+/oSFhbFhwwbS09OJiIggMTGRjIwMunXrhqen5wMtUIUHU6FQPFBxUXOPffsLXqVSiSkCpaWlDRa2ffr0oVWrVi1SvH38+HGKi4tFKTupVIper0elUlFSUtIg7xOaHspu3bq1uLCsr96j1Wq5fPmyqLh1+76FFImWWviYmprSunVrLl++jFQqfSST/8OkrKyM9PR0lEolSUlJFBYWArfmkPLyciwsLMSOsxKJBBcXF1xcXPjtt99ITU0V74u9vT1t27Zl3Lhx9/VivRNRUVHiIjInJwdHR0dUKpWBepIghf3cc8+xevVqlixZInrWhY7EOp2OiRMnivUv3t7ePPPMM/zrX//ivffe4/Tp07i7u5Obm8vu3buxsrLilVdeEb9XSEgIoaGhHDlyhL///e+EhoaKmunZ2dmNRju3bt3KyZMnxZeiqampuH8LCwuio6MxNTVt1hi1trZmzJgxJCcns2HDBrKysmjXrh0KhYKysjLS0tLw9vZm0aJFYtqtWq3m5ZdfxtXVlYCAAGxtbVGpVCQkJHDmzBl69OhhsHg+ePAgO3bsoFWrVnh5eWFmZkZhYSH79+9Ho9HQo0ePhyqn3hiOjo5MmTKFTp06kZKSwqFDh9i5cycXLlzgpZdeaiBXq9frOXfuHGvXrsXT05Np06Y1Wrsm1OyNGjWKgQMHNpjDhfqHh42JiQne3t5oNBo+//xztmzZIi6a3N3d6dWrF9HR0eLCzN3dnUmTJnHlyhX+/e9/88cff+Dt7U1+fj779u1DJpOxePFiA+NW6EnVs2dP9u7dS1VVFa1atWpUlKY54+xxwsLCgkGDBpGQkMCePXsoLi4WU3ArKirIyMjA0dFRTF1+EAICAmjbti0HDx7EwsKCtm3botVqadWqFd26dXssr4+A0NT0xx9/ZM2aNfTp04eysjKOHDkiptE3F8FoHTx4MDt37qSuro7IyEjkcjk3btwgLS2Njh078tRTT2FpaYler2flypVkZ2cTFBSEi4sLWq1WTN3r169fg2iFRCLB1taWdu3acfLkST7++GP8/PyoqanB19e3Qd2jhYUFffr04ejRo/z++++4u7sTFhb2QOuhP8WwcHJyajDpmpiYIJFIDLxCubm5ouZ//S+lUCjo1KkTdnZ2jaoQ2dnZNSiYup38/Hy0Wi2Ojo4NvPHh4eF0795d1JO/X4qLi9HpdLi6uhosyKVSqZjO1Vi+uaWlZQP1kdu5ceMGarUaT0/PBlrprVu3xs/Pz0CSsSmYm5vTsWNHdu3aRUJCAv369ePYsWNiBORBLNXbeRie2zvtU6fToVKpGuSJ29raIpVK6du3L9OnT2/U2FEoFC3S5VbwDNQfv0qlUpzIG/PuN5WBAweyceNGNm3aRPfu3UWN7srKSn788UesrKwaFKBLJBJxvJeWlqLVah84qmFtbc2AAQP4+eef2bFjBz179jR4UQjFwObm5o88WtUchNqv2tpaKisrRcNixYoVWFlZYWpqyj//+U+GDh2KUqkkNjZWNBp1Oh21tbVoNBry8/PZv38/Fy9e5NNPP33gFLDo6GheeuklNmzYwOrVq8UFniBAIWBnZ8dzzz2Hk5MTu3btYv369aIsob29Pb179zZ4xk1MTBg8eDCmpqZs3LhR7NhrampKaGgob775pvgyEsQ03nnnHb788kt27tzJ3r17cXR0pEePHnTr1o2NGzc2OHdbW1sKCgo4e/YsdXV1yOVyzMzMCAwMZPHixWKt193SvO5Gu3bteOONN0SnlOCYMjMzw9XVle7duxu8gKVSKQ4ODsTFxXHgwAGxjszOzk7soFx/PrCysqKsrIw//viD2tpaTExMREnh6dOnExUV1SJpUPfrCDA3NyciIoKwsDB69OjB0aNHef3119m4cWMDwyIzM5Pvv/8etVrNCy+8INaa3Y6Pjw8KhYKKigp8fX0bdYY8bHQ6HYWFhcTExIhqR0JaaFlZmRgde/7555k6dapYe9i3b19kMhkbN25kx44dqFQqTE1NCQoKYvHixfTr16+B99bGxobhw4ezceNGsrKymDZt2h3fBfc7zh43/Pz8eOmll2jdujUxMTGcO3cOnU6HmZkZzs7OhIaGPlC2gkBgYCCzZs1i9erV7N27l71792JhYcHYsWNp3779Y21YODg4MG7cOHH8Cf1uOnbsyNSpU9m6dWuz9y2VSvH29mbJkiX4+Phw5MgRjh07hl6vx9zcHFdXV6KiogzemyYmJiQkJIjRYIVCgZmZGePHj+fZZ59tdN5xc3Nj0aJF/Oc//+GHH34QlcImT57cwLAA6NmzJ/7+/iQnJ4uOsAdZu/0phoWJiUmTFhjCy+a5554TGxbdvp/GJrmm7F8wZCZNmkT37t0bXDSZTHZP4+ROCJ42IRxef99C/nlji1mpVHrPkKlw3oMHD2bMmDENFicSiaRR9ZR70bFjR4KCgjh79iypqamcP38eJycn0QPzIDzIgDQzMxObljX2wAhpQ2q1WiyqFygoKKCkpKRBTqdgfefn5xMYGPhQPYv9+vXj66+/5vPPP6empgYTExPOnj1LTEzMA3uBOnXqxJQpU1i7di0LFiygd+/eyGQyjh8/TmxsLJMnTzYQCYBb98LT0xNfX19+/fVX5HK52PVYyCu/X+Ryudhl+pdffkGlUtGjRw8xAinIOc6cObPZz1RLEhYWxqZNm3BwcGjSSzM0NJT33nvvrgu7tm3bIpFI2L59O6tWrWLSpEkMHjxY9IbqdDqqqqpYvnw5+/btY86cOXTq1AlbW1tmzJjBiBEjGnWSTJgwgcjIyAZKcnDLYBCKn8vLy9HpdCgUigb7kUqluLu7M3nyZLFbcV1dHSYmJmL/ndtT/mxsbBg8eDBt27alsLCQ2tpaMZ1NkGmsnz4yYMAA/Pz8RJUUCwsLPDw8MDc3p2/fvg0WDkOHDqV9+/aUl5dTU1MjSus6OTnh7e0tdt6VyWSMGDGC4ODgRouDu3Xrxvbt2w0aX8GtMdmhQwc8PT2ZMGECFRUV6PV6TE1NsbW1xcPDw2DulMvlvPHGGxQXF6NUKtFqtZiamop1US4uLgaLbqFnTllZmVhrZGZmhqOjI15eXi0mYyzUFajVaioqKkT54tvR6/UUFxfj5OSEVCoVo5XCfa4vYwm3ClK3bdvGhQsXePbZZxtN9RGIiorC3d2dbdu2MXr0aIPaF51OR0VFBZaWlg91AV1dXc2KFSuIi4vj448/JjQ0VDxeXV0df/zxB19//TWxsbEMGDBAnFsFme2QkBCxF49cLsfZ2RkfH58GHd7h/8bzvn37kMvltGrV6o7rifsZZxKJhN69e7N79+4mzf0+Pj689dZb1NXVNTr233zzTZ5//nmxPtTS0pJt27aJ0rTm5ubMnz+fp59+Wny+O3fuzMaNG8Xjm5qaEhISwty5c3niiSfEeUSQ9nV3dzdwOnTv3p3t27c3msXg4+PDtm3bGp3jzc3N6dOnDwEBARQXF4vytR4eHvd0prY0NjY2rF69GgcHB3GttHz5cvH3lpaWzJ49m3HjxuHg4ICpqSnt2rXjrbfeIjc3VxSV8fDwwNLSkn79+j1QzyW5XE5oaCjz589n9OjR4hgyMzMTx5DwbApr1j59+lBZWYlGoxGlhz09PXFzc2t0rJqbm9O/f3/8/f3FdCihvqMxHBwcsLW1xdramqioqAd2LjfLsBByrOHexSHC9k0hJCSEX3755YE9u40RFBSEiYkJ+fn5BlKLLUFAQAAKhYL09HTatGkjLoi1Wi2XLl3C1NS00UVEU2jVqpWYq+jo6NjghdpcvLy8CA8P54cffmD//v1cvXqVXr164eHh8cA58M1NuREWwbm5uWIB0e3Y2Njg7u7O9evXSUpKYujQoSgUCmpqati9ezdJSUkNjt+1a1fCwsI4fPgw+/fvZ9SoUQYvysrKSioqKh5Y0hZu5au/++67fPvtt7z33nuimtbixYuJj48nPj6+2fu2tLTkhRdewNXVlS1btvD555+j1+txc3PjlVdeYdKkSY0aTe3atWPhwoWsWbOG77//HolEgpOTE+7u7s0yLCQSCa6urrz00kv4+vqye/duvvjiC7RaLdbW1rRq1QpPT8/HxnMneOmbiouLCwMGDGjStrGxsdy8eZMBAwaIfUUE6urqCA4O5sCBA2I/ArlcTkBAwB3ng9atWzcoGq2P0KjtXkilUmxsbBp10NwJc3NzAgMDGzVq6iN49+8U4W2sTsnR0bFJCwohInKnfhnOzs706dOn0d/JZDLc3NyaNEdKpVJ8fX2b/J6xtbV9oBSIpiKRSAgJCcHOzo5vvvlGTHmrrKxk7NixYn2hTqdj2rRpuLm5ERoaipOTE6WlpcTGxorNEQVqa2s5cuQIa9euxdvbG7lczqFDhwyOGxoaSuvWrUVZ6oULF/Lmm28yZ84cRowYgaenJ6WlpWRmZpKTk8O3337bIhHeO6FSqdizZw/e3t4NpIjh1rvV2dmZ0tJSKioqDH6nUChEgYCmIJFIcHBwaPIz39RxJsyTTb1OlpaWhIeH3/H3t//OxMTEoABb6JdRH0dHxwZzn0wmE+sf74WQ5tkYVlZWdy0At7S0JDg4uEUFLJqDoP5Wn06dOhn8XhDlETAzM7vjXNyYfPjtCDVKd3oHCr007tVkWSKR4O7uft+ptILDuanzf1ZWFtnZ2XTs2JHAwMAHrhFq9qeFcIyQ598SxUpPPvkkH330EWvXrmXo0KEGD66gwSxII94vw4YN48MPP2TNmjWMHz/ewIOg0WjEZlHN2ffQoUNZt24d33//vUHHzPLyclavXo21tTXDhw+/7/3CLY9B69at2b17NyNHjsTR0VE8R71eT2lpKZaWlvcdhjc1NSUyMpJdu3axbds2KioqeOmllxp9aPR6vSgvWlRURHJyMtXV1Rw9ehS9Xo+VlRVeXl6i5GFzLXmpVMr48eM5ePAg8+fPZ9iwYcjlckxNTRkwYAAdOnTA2tqaiIgIPDw8+O6778jMzMTb25usrCzS09NFuc36WFtb8/bbbzNz5kwWL17Mjh07CAoKora2luvXr5Odnc2YMWOYN29es867PhYWFkyZMoX+/fujUqmQSqVYW1vj7OzMoEGDqKysFBefPj4+vP/++2g0GoMuq3BLsvDbb7/FzMzM4DlwdXVl6tSpDB48WCwis7CwwMXF5Y4LHxsbG0aMGEHXrl2pqqoSPVT1j9m7d2+2bduGvb19g/3079+fEydOGBT6mZiY4Ovry6xZsxg1ahRKpVL03FlYWODo6GgwJrt06cL69euxsrJ64AL5xwm9Xk91dTUVFRVotVoDh0tRUZHoBW2uY8HI/x4DBw6ktLSUTZs2sXLlSqRSKR4eHvTr1080LCQSCcHBwRw/fpyYmBhRRtXLy4t//vOfjB07VtxfdXU1ly5dIiMjg/z8/EZr8pYsWcIzzzyDra0tJiYmjB49GicnJ3744Qd++uknKisrsbCwwM3Njejo6GZFye8XQWhAqVQaGBZqtZrk5GQuXrxIVFTUf9V8YuSvj06n4+TJk9TV1bW4g/xhoNPp2Lt3L2lpabz88suNNs69X5odsbC3tycyMpLDhw+zYMECQkNDUalUtGvXrkFuZ1MJDAzkrbfe4u2332bMmDEMGTIEW1tbCgsLSUlJwcXFhWXLljUrTOPt7c0777zDokWLxIZGjo6OFBUVkZqaik6nY+XKlc2apNq3b8+cOXP45JNPmDJlipjnefjwYRISEpg3b56BhXw/uLi4sGDBAl599VVeeOEFhg4dir+/P5WVlVy5coXz58+ze/dug0VfU4mMjCQgIIDt27fTqVMnAgMDGw2Pa7Vapk2bJtYvCA241qxZw6ZNm5BKpYwcOZIvv/xSVDJoDlKplNGjR1NUVMS6detYtWoVJiYmdOjQgW7duonbREVF8c9//pNVq1axf/9+pFIpAQEBzJ49m+vXr/PDDz802Hfnzp3ZtGmT2OvhwIEDYoi8a9eu912ncjesra0bDQ9bWloaeB4UCsUdvdOWlpYNvCj32v+dEFQ27pYCdjeP7O0a+AJC46emeHKtra3vqJv+V2bIkCHExsayaNEihgwZQuvWrampqeH69escOnSIa9eusWDBgoeu+W/kvwcHBwemTJnC8OHDxQ6/QsGygEQi4Y033hD7HwkynEKdSP1n3cbGhjlz5hgYG7fj7Oxs8BkrKyv69+9PREQEVVVVYgqGXC7HxsbmoUtGW1hYMGHCBL788ksmTpxI3759sba25ubNmyQnJ3Pq1CkcHR154oknjIaFkUfK1q1bSUpKwtraGplMxtmzZ9m7dy99+/Z9bN95er1eVFm9du0a+/bto3379kRFRbWI06DZYQZPT0/eeOMNVqxYwd69e9m+fTvOzs7Mnj27WfsT1B5mzZqFr68v3377LWvWrBG7TAcGBj5Qww6ZTMaECRPw9PTkq6++4ocffqC6uho7Ozt8fX0ZOXJks3Pv5XI5c+fOxcvLi2+//ZaVK1ei0+kIDg5m+fLljBkzptmFfTKZjAEDBvDtt9+ydu1aDh48yKZNm8Sc5mHDhjU7RO/o6MhXX33FRx99hJmZ2R1lMmUy2R1lJAUsLCxEb22rVq1YsWIFGo3mvtRDhGLUefPm8cwzz6DRaMRxUf87WllZ8cQTTxAdHS3KVJqZmWFtbY1Go2HWrFkNjE8hb/Ldd98VNbElEon4Mv6zFV2M/HcwYsQIzMzM+PHHH9mxYwdlZWXIZDIcHBxo27Yt//jHPxg0aNBjkxZm5PFHIpHc03kgpDM2JS3jflJf6iOXy1ss9fZ+sbCwYNGiRbi4uLB161a+/PJLampqMDc3x9PTk3HjxjFu3DgiIiL+kgIRRv57UKvVxMTEkJmZCdxaV82ZM4fnn3++xWqvWhq9Xs/Zs2f57LPPkEql9OzZk/nz5xMaGtoicvASfTPdy3q9Hq1Wi1KppLa2Viwys7CwEBf/tbW1VFdXi+kp9SeA2tpaKioqUCgUBotSoXurUqmkrq4OvV4vFjkL6VfCjaqrq6O6ulrMJ2tKOpZGo6G6ulr08gj7NjMzEwsIG9teSPm52zFqa2vF84Zb6SIWFhYNjAqtVit2ubW2tm7SoqP+tdZqtWKho5mZmUGreiNGjPy5CGma9ZsZCgW1QjdgI0aM3B96vR61Wi2qzAnCKMJ7z8zM7LHsF2Hkfwu1Wi0KQOj1emQymbiuhYejjPmg6PV6lEolSqUSQFxHClLTD0qzDQsjRowYMWLEiBEjRowYEfjvaoFrxIgRI0aMGDFixIiRR4LRsDBixIgRI0aMGDFixMgDYzQsjBgxYsSIESNGjBgx8sAYDQsjRowYMWLEiBEjRow8MEbDwogRI0aMGDFixIgRIw+M0bAwYsSIESNGjBgxYsTIA2M0LIwYMWLEiBEjRowYMfLAGA0LI0aMGDFixIgRI0aMPDBGw8KIESNGjBgxYsSIESMPjNGwMGLEiBEjRowYMWLEyAPz/wAeJZyqMFeYEgAAAABJRU5ErkJggg=="
+>
+
+
+<pre>Saving as Analects.png
+</pre>
+
+
+
+<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAxYAAAGVCAYAAABjBWf4AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOy9d3hU1fq/fU+f9N47qaRQQiih916kCQgqCkfsDRt+7Yoeu6jYBQtFqdKbdEhoAVIhlYT03pPJZMr7B+/sH0MSkgAB9OS+Li81s2fvPTNrr7We9nlEer1eTyeddNJJJ5100kknnXTSyU0gvtM30EknnXTSSSeddNJJJ5388+k0LDrppJNOOumkk0466aSTm6bTsOikk0466aSTTjrppJNObppOw6KTTjrppJNOOumkk046uWk6DYtOOumkk0466aSTTjrp5KbpNCw66aSTTjrppJNOOumkk5um07DopJNOOumkk0466aSTTm6aTsOik0466aSTTjrppJNOOrlpOg2LTjrppJNOOumkk0466eSmkd7pG/i3o9fr0el0NDY2NnlNIpEglUoRiUR34M46aQ9arZb6+noATExMkEgkd/iOWken06FSqWhoaBD+plQqMTExuYN31Ukn/040Gg319fVotVrkcjkmJib/U3O7VqtFpVKh1+tRKpVIpf/b2wu9Xk9dXR1arRZzc3PE4rvXj6vRaGhoaECj0SASiTAzM0MsFgvjV6VSAaBQKIS/6fV61Go1KpUKkUiEUqlELpcbnbexsRGNRoNMJmvzeNDr9cKzZBhLCoXiFn7aTjqaGx7pWq2W2tpatFrtrbyffx1arZazZ8/y/vvvN/ln8+bN6HS6O32LnbSBlJQU7r//fu6//36SkpJu67XVajWVlZVoNJp2vS8vL4//+7//w9fXFw8PDxwcHHjrrbc65iY76eR/nISEBObPn09QUBBLlixBrVbf6Vu6rSQkJDBnzhxmzJjB2bNn7/Tt3HF0Oh0PPfQQffr0oaSk5E7fznU5deoUDz30EH379mXs2LFcvHjR6PWVK1fy7bffGv2trq6OTZs2MXz4cAYPHsy6deuanPf06dMsX76cuLi4Nt+LVqvlwIEDjBkzhvDwcL7//vsb+1Cd3DFu2KWQk5PDunXrmD9/Pg4ODrfynv5V1NfX8+uvv7J8+fImr82aNYupU6feUe93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fPfdd8ycOVOouVAqlfTo0YOsrCyjdbGsrIyLFy8yduxYIiMjsbe3p6amhr///htHR0dGjhzJmjVriImJISQkhM2bNzNz5kxcXV3Zu3dvp2HRyV1HuwwLuVwuSLxmZWWxfPlyQkJCCAkJaVLEdKtRKpW4urpibW1NUVFRh+UO/1MwMTG5qa62HYVMJsPX15dnnnmGHj168O2333Ls2LGb8vzpdDoqKiqoqKggIyODkydP8uuvvxIZGcmMGTPo06fPbW+4d7NYWloyadIkIiMjsbGxwdnZucUFX6PR8M0337B58+ZWUzNsbGz4z3/+w7Rp067bjCw9PR1bW1vOnTtHly5duHDhAoWFhS0aFps2beLs2bNYWlqiUCh46aWXsLW15eDBg8yYMYOUlBR27tzJgw8+2OS9BhnlfyPNFb3fLdwOg6elz15bW4tWq8XT05OhQ4dSXl5OSkoK9fX1eHh4tMkhUFVVxfbt22loaKBfv368/fbbeHl5IZFIrusJlEgkgpTnpUuXbmjsiUSiW143I5FICAgI4JlnniE3N5fo6Giio6P59ttvcXJyalKUaWpqyn/+8x8qKipYtWoV5eXlpKamkpGRgUwmQ6/XC40cw8PDef/991GpVK0aFh2BVqslMTGR77//ngMHDggRValUauTcMBibjY2NVFZWUllZSV5eHmq1mh9//PGubjbp4uJCt27dhKh1fHw858+fJyEhAXt7e7KysigqKkIul+Pn54dSqSQkJEQYRzKZDFdX12bHroODA926dRMyFZKTk4mNjRXqVnJzcwkKCiIjIwOFQkFoaCiurq54enre1ZGeTv43ueHibXNzc7p27UpGRgYHDhygsLAQU1NTIZ/8Vnd+NjROMTExoaCg4I51heykdQzNf8aPH0+PHj3YunUrP/74I8nJyTe92WlsbKSoqIji4mJSUlLYsWMHERERzJ07l2HDht1WRambQS6X4+7u3qYo059//smvv/5KYWHhdTexSqVSaDrVWrqYVqslPz+furo6+vbty+XLl6+bXiWRSPjwww9xdXXlwoULrFq1ikceeQS1Ws3s2bPZvn07MTExzb7X0EDz38jdalQY0ts6+hotGfSHDx/m119/ZciQIcyePZt9+/Zx8eJFTExMePDBB6+bPmigvr6emJgYrK2tGTp0KN7e3m32aFtbW6NQKCgpKWlx7Gm1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hIQEKioqBH0HpVKJkZERUVFRnT7/uuulVCq58847MTMz46WXXiIlJUVvzkV9fT27d+/ulmOh4ztftWoV3377bbvyEg8PjzYGjkaj4auvvmL//v14enqyZMkSvQd2RCIRc+bMYeTIkWzbto3k5GQaGhqwtrZm6NChjB49usOygt4EfZdb6gQlH3zwQX755RdeffVVBg8eTEZGBmvXriUsLIzx48e3O073zN4M6PRIlEqlXjJ1paWlnD9/vluORWVlJWq1WiBAuXQu1r3fKpWKysrKTrMqHh4eREREdCvrkp+fz+nTp2lpaWHAgAEUFBS0mffVajUODg6Cg5SRkdFO70WlUglsey0tLUIQw9jYGLlcTn19/XXNGceOHUOlUjFmzBjWrVtHVFRUu4DIyZMnOy3LtbCw4KuvvurWd4WEhFzzOHsCuoBWXV2dkKXT9VR0VIpbW1tLfX09ZmZm7YJR14PLz9Pc3ExVVRVyufyGKGXrG7e8Y9Ha2trGc3ZycsLV1ZW///6boKAg3NzcOi13uFTsqTfip59+IikpiQkTJmBnZ9fmN96IiGF3UFtby6+//opGo+Gdd95ps+3OO+/kww8/bHeMVqslPz9fb2wuMpkMLy+vDpk9OoPupb+0Vl8sFndrgnZwcECtVpOYmIhYLKasrAx/f3/ByLG2thbKei4tG7gaVFdX65Ut61rR2trKpk2beOONN3BycuLBBx/ExMSE48eP87///U/gedc9f6WlpezatYv6+npmzpyJpaUlFy5cYM+ePbz33nsYGBgwZsyYdt/z999/c/r0aby8vHjyySepq6vj6NGjODg4tNkvOzubxYsXo1AohF6kAwcO8L///Y+Wlhah3Aku9vh8/PHHFBQUsHz5cnbs2NHlb62urubJJ58EYNasWRgYGHDo0CG++eYb6uvreffdd5HL5Wi1Wvbs2cM777yDpaUlL774IhYWFmzatInt27czZ84cHnnkkW4ZOoBwTd577z1eeukl0tPTu3XclaArt3vqqae6XOC0Wi2FhYV88MEHrFq1ivr6ehQKBQYGBtTX13f6/Lq4uLB7927s7e2ZN28eERERehn3pRCJRNjb2/Poo4/q/dz/VMhkMhYvXkx8fDwbNmxg//79wj26//779SLydr0Gk7u7O9bW1npxLAoLC0lOTmbSpElXHJetrS0GBgbk5+fT1NSE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"
+>
+
+
+<pre>Saving as Buddhist Mahâyâna Texts.png
+</pre>
+
+
+
+<img src="data:image/png;base64,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"
+>
+
+
+<pre>Saving as Tao Te Ching.png
+</pre>
+
+
+
+<img src="data:image/png;base64,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WL7//nt69uzJJ598glqt5vXXXwfuGftfffUVx44do7S0FGdnZ15++WWGDx+ORqPhzp07rFq1ir1791JSUoKDgwNjx45l0qRJ2NnZiXXUp0+fZtWqVaK+hYmJCUOHDuWll17CysqK6upq9u7dy9KlS0lOTsbAwIDu3bvzyiuv1MkO0loQFvX/ofnYu3cvOTk5/PTTT/To0QO5XE5FRQVr1qzh119/JSoqql7HoqCggH//+9+YmZnxxhtvYGhoSFxcHLt376aqqqrBPh+1Wk1BQQEXLlzg66+/5siRI/8VGYoHUVFRQVJSEnfu3OHOnTsAYkDjwd5JT09P9u7dS2JiIjKZjMTERFFfJzs7WyxNzsjIQCaTYWpqSn5+PklJSSQlJZGdnS2SOdy4cYNr165hbGyMubk5dnZ2BAUF4enpSbdu3VCpVDg4OGBsbExeXh5Tp06ltLSUZ555hieffPKROxbFxcXs3r2bFStWkJGRwV9//UVNTY3ITPkwLF68uM76fKBBg7C4uJisrCwyMzO5desW169f5/r169y4cUMkEXgQv/zyC7/88kujf1tISAgffvghI0aMaPQ+90MikWBoaIhSqeT27dusWbOGFStWaNkpApRKJWVlZSKT1vLly+nUqRPPPPMMo0aNwtnZuVH3uqysjN9//71WWfHkyZP58ssvtYRuGwulUslbb72lde0UCgWTJ0/m119/bfLxysrKSEhIYOXKlaxfv57MzMx67ZSqqioKCgq4c+eOWI4ulUpxcXGhf//+jBo1it69e4v080VFRVy9epXMzEyioqLEdViXAOkjfbMeRbbiUUFoRGurc5mYmDx0kZs3bx7z5s1r1bFYW1szevRooqOjuXjxYpONdaEs6aWXXmLevHkMGzYMOzu7Fs1eqNVqiouLuXTpEt9//z1btmzRmYnF1NSUd999F3Nz8zYpS5JKpTz++ONMnTq11neNiba2Fuzt7UWdCKFmODc3l7y8PGpqakhISKBfv37iAnjmzBnMzc357LPPAPj6669599136d69O2q1mhUrVrB3716ef/55AgICOHXqFBs3bhSNPyMjIwoLC1m6dClSqZSPP/4YKysrkpKStBr0Ll68yD/+8Q+mTp3KBx98QEZGBkuWLOH999/n559/bhVa2brwv4xFy6G0tJSOHTvSpUsXsWTS0NCQESNG8McffzSY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8KFDh1i2bBlz5szhwQcfvO37d+zYwX//+1+91/Lz89m5c2eTiQXcaHuOHz8eJycn/vjjD44fP87Vq1dFOkFzMDExwdPTk7CwMGbOnCly6tqDmpoacbDWyMiIgoICbG1tmThxIg8//DCffvopcONmi4uLa5fKQEhISKslE/Pz89mzZw/9+/fnhRdeaGTUJ6iNeHh43BeUqvYG08JQX0eh1WpJT09n6dKlogKIRCIhICCAmTNninSXxMREvv76awYMGMCcOXMwMzNjx44dfPvttzzzzDM4Ojoil8s5fPgwv/zyi9jOl8lkuLq68vnnn2NgYCAmHsuWLeP8+fPiQtajRw8effRRunTp0uHvdDOEquCKFStISEgQ99enTx+mT5+Oh4cHq1at4uLFi1hZWVFUVER5eTmlpaUMHTqUV155RVR4qq2tZcuWLaxevVpUcZLL5fTs2ZOXX34ZiUTCuXPnWLlyJUlJSeK+BgwYwLRp03BxcenU73a/QwiG4+PjycnJoaGhAQsLC7y9vUUNfYCCggKSkpI4f/48MTExODo68tdff4k0jKioKBwcHPRkE8vLyzl27Bi5ubnIZDLs7e0JDAwUPyNQOZKSkkSzRAsLC3x9fXFwcNDrcF2+fJmCggK6dOlCfn4+qampIl22Z8+eWFpail3wiooKEhISyM3NFZNRKysrPD099dTE2ouysjIWLlyIUqlkzpw5zJ49Gzs7O7RaLbm5uSQlJZGamkq3bt0aqfNkZGTw/fffc+jQISIiInjqqaeIiorCysqKgoICNm/ezBdffMGyZcvw8vLizTffFM9pZWUlO3fu5Pvvv8fExISZM2cyadIk3NzcqKur4+TJk/zwww/s37+fn3/+GVdXV4KCghqtocePH+fnn38mIiKCb775hvfff59NmzYxaNAgFixYQF1dHe+99x47duwgJiZGL7FoaGigpqZGHEa+FYsXLyYrK4uFCxf+7WlwQgfnyJEjnR68hYaGNqkm2VooFAp69epFSEgIBQUFaLVarK2t7xs1qPsR1dXVYjH30KFDHDp0qNWfraioaJPan7W1NRYWFqSnp1NRUSF2D7OyskT1wLbM+6pUKtzc3EhJSeH69esihaqoqEhUUrvTaHViUVVVxezZszt15xqNplWBaV5eHlevXuWtt94SWzkqlYpu3bqxbds2kpKSmtUh7iykpqZy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"
+>
+
+
+<pre>Saving as The Mahabharata of Krishna-Dwaipayana Vyasa.png
+</pre>
+
+
+
+<img src="data:image/png;base64,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IhFRUVEsWbKEV155ReB1vvTSS0RHRz+WgWwCpFIpLVu25PXXXyc7O5vY2Fijbl8/MX3++ee4urreVVzgbggMDCQgIAArKys8PDxQqVRER0cLniqnTp2ivLycnJwcYmJicHV1Zdy4cYSEhCASiQSK09mzZ4mJiSE6OprQ0FDMzMwwMzOjpqYGiUSCTCbD3t7+jqZg1tbW9OrVix49egiZlM6dO7Njxw6uX79Ofn4+9vb2nD17luPHj9O1a1e6d+8uNKkBPPXUU2zfvp3t27fTq1cvg8WHQqGgTZs2DBkyRAgk9FWlh23hfTcUFhby448/snTpUry9vRkxYoRAEcjJyeHAgQNs374drVbL22+/3WhJ2HsNvX/JgQMH7ol7/cOKyspK8vPziY+PJzk5GV9fX0pLS6msrESn07F48WI6derE008/TWxsLN999x1ffPHF30L0oKCggGnTprFnz55GucGbmppiaWlJYWEhFy9e5NixY0RGRjbIYFCPpgqs1IeYmBhmzpxZr7CKMWFra8uECRPYunUrEydONKhaqFQqSkpK6NGjBwqFgl27drF9+3ZMTU1JTk5mxowZpKamcvjwYczNzfH19SUlJUWQbK2qquLKlSvU1NTw008/ER0dTevWrVGr1ULvgImJCX369KF///5kZmayd+9ejh8/Ttu2bbl48SLXrl1jxowZ5ObmcurUKc6cOcOePXuwtrZm9OjR/PXXX/fNA+xO0CfFysrKkEgkRERE8J///EdQ/ly9ejX79u3Dw8ODiRMnEhUVhUajoaqqiri4OL755htOnjzJ9u3bGTBgAH5+fk3qXauurmbbtm3MmzdPUFa9mY6kUCjqpepduHCB1157jdraWiIjI1mxYsUd92Nqakrv3r1p3bo1NTU1AlVWP2YLCwu+++47FApFsxgqzQosSkpKKC4u5umnn8bU1BSVSkV5efltTVXuhMTERAN6iL4U1tBMvUajYdu2bcTHx9ehmXTv3p3//ve/BAUFCdlQnU6Hi4sL//73vykoKODYsWPC+zMyMoiNjWXs2LHCpN21a1fatm1bZ796/vK5c+cEibMPPviA8PBwpFKpwLE3MTERXCBvbrB1cHDAzc0NhULBF198wQ8//ICnpydjx46tl4KRmprKhg0bOHHiBEVFRVhaWtK6dWtGjhxp1AVCYWEhOTk5qNVqRo0axZdf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/jAKrVA8uXz5sjiwrdVqW5VEWltbM3v27Dt4lC1DmxMLiUSClZUV7u7uXLhwAUtLSzp37ixWX1NTU0lKSsLCwgInJyckEglubm4olUoxiLh5QE/oVLRVb9jW1hYLCwsKCwsbVGOLiooarWxJpVJcXFyYNGkSw4cPJykpibVr17JlyxY6dep0RxILhUKBjY1NgyqswWAgPz9fpI61FTqdjuzsbE6ePNneQ/3LQhAfaAxCdehuwtvbm8jISHbu3NkguD5//jzJyckEBwe32+m8rq6Os2fPNpg3EjBgwIA2D0ur1WrkcrlYLerUqRPW1tYtVrV6/fXXO/TBHxgY2OS2rVu3Mn36dPr374+ZmRlJSUksXLiQH3/8kb59++Ls7IxWq+XEiRP88MMPdOrUiQcffBAnJycqKipYv349K1aswMXFhalTp4qVODs7O4YPH07nzp1xcnJCp9Nx+vRpPvnkE+zs7IwSCwHJycns2LGDsLAwZsyYgUKhoKCggJCQEKMCg4+PD8899xxVVVXMnz//to7dOTk5bN++nQkTJhAZGYler2fXrl1s3rwZT09PgoODsbGxQafTiYPgjzzyCCNHjkQmk7Fjxw4++eQToqKiePnllztcoetmSKVSnnrqKXJycti8eTMqlYq1a9eybds2bGxsRHnzmpoa3NzcmDVrFv369eO3335rcWIBiM6yP/74I/v27aO2tpZTp05x6tSpJj9jb2/fbKLt7u7OU089hZ2dHb/99huXLl1qYG7VGDw8PO4qDQqga9euRtREExMTlErlPa0u0154eHjw/PPPo1KpWLdu3R0Rw/gHxjAxMaF79+489dRT3HfffR0iaCCRSDA1NW110H/27Fm8vLywtbVttHhtamrKoEGDWLNmDSqVioKCghbTdzsSeXl57Nixg3379nHlyhUKCwubHVBvCp07d/5zJxaAKH11+PBhQkJCiImJQS6X06lTJyQSCRcuXCAgIEAcGOvZsydubm7s2rWL/v37i1rCarWa3377DYD77ruvTccimCglJCRw/fp13N3dkclk1NfXc/jwYaMFRahKV1VViRectbU1ffr0obq6mg0bNpCVldWeU9MkzM3N8fT0bDS4S0lJITU1tV2JRUVFBXv27Llt4PF3R1OLXW1tLQUFBe36DVoLKysrYmJiCAwMJCkpyWibIG/Yo0ePNml/34xL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DSNGjCAyMpLvv/+ehoYGgoKCqKmp4eTJk0yfPp0BAwYAVwIna9as4eGHH6apqYm1a9cydOjQFgKGuvrd6upqgX2ktra2BTObWq2mvr5eUBfWKeLq5jeAVatWsXv3bp544gmWLFmCkZERmZmZZGZm8sQTT2Bqaoq7uzujRo3i559/xtHRkf79+7Nv3z6OHz/epupxb2Qs2sq8ZWVlUVJSQnBwMLa2ti0W+LYMZY1GQ05ODps2beLEiRPk5eVRXV1NZWUllZWVqNXqFnO1LmouEokEZd7mrwEhY3H27Fny8vK45557Wsxfumvg6OjYIT2vDjdS5bm75axisZjly5cL94urqytLlizB0NAQsVjM8OHDGTBgAGq1GrFYLBhLa9as4ZFHHhFILXTzjaurK//5z3+E8y+TyTAwMEAikfDWW2+hVCqFbFpn5u6e7G3T19dn1qxZ7N27t5VjodVqSUtL+0c7Fkqlst371sjI6KaXROuIJa7WUBOLxYSGhrJo0aJu2xNGRkYsX76cyMhIIiMjW62Pn3zyCZMnT+60YxEQECDYIe2hb9++7N27F2dn524d8013LB5//HFWrFiBq6srYrGYrKws3nzzzese197enqeffprs7GwyMzN74EivDZVKJTQF/etf/+Kdd97hrrvuYsmSJQwePBiJRNJuVKYjj1kqlbZZfiCTydpM20ml0muyBUgkEqHmrra2Fo1Gg1wux8TEhNzcXAwMDNq8UXWOoFqtRl9fX/hNbUH3W6+O3sEVx6O5GrtOcbS5SGJbDmHzMXQ9I82PQavVolarsbS05MUXX2TQoEHCmM0NXzMzsxbXwcbGhueee47k5GR++uknDhw4wAsvvNBKVb070BmnvaErcqtApVKhVqvbbPjXaDQd3idw5bp1psm3s+huhDAxMZENGzYwa9asFmVqbeku3IrQsT91dA6tra3517/+xe+//86GDRu4dOkSxsbGBAcHc9dddwnXLzw8HG9vb55++mnKy8sJCwvjvffeEwzOgoIC3njjDTZv3oxKpUKpVPL888/z0ksvMXnyZF566SUqKyt58803hZJItVrNrFmzkEgkPPXUU6xatQoLCwt8fHz4+++/efvtt7n//vtRKpW4uLgwffp0YUE2Nzfnnnvuoaamhi+++AKJRMK8efNYtGgRDQ0Nre67S5cu9WjE3dLSss15uKam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"
+>
+
+
+<pre>Saving as Yajur Veda.png
+</pre>
+
+
+
+<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAxYAAAGVCAYAAABjBWf4AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOydd3hUZfq/7+nJTHpIIyGVhDRIAoSE3ptIBxVs6CoC6uq66tfe1r5rXUVFUVAERekdpNdQE5IQSCe9t0kyk2TK7w9+5ywhnYTibu7ryoVOOeedU97zPu3zSMxms5luuummm2666aabbrrppptOIL3VA+imm2666aabbrrppptu/vx0GxbddNNNN91000033XTTTafpNiy66aabbrrppptuuummm07TbVh000033XTTTTfddNNNN52m27Dopptuuummm2666aabbjpNt2HRTTfddNNNN91000033XSabsOim2666aabbrrppptuuuk03YZFN91000033XTTTTfddNNpug2Lbrrppptuuummm2666abTyG/1ALrppptuuunmVmIymWhoaKC+vh6TyYTZbAZAKpUil8tRKpXI5W0/LoVtGAwGcRsSiQSZTIZSqUSpVN7Q33E7U1dXR11dHQBqtRqZTIZEIrnFo+qmm266mm7DoptuuhGprq6mpqYGBwcHFArFrR4OcGXRp9PpqK2txcbGBpVKdauH1M1/EUajkaysLH755Re2bNlCcnIyWq0WpVKJq6sr0dHRLFy4kOHDh7e6Ha1Wy7Zt2/jll184c+YMxcXFSCQS7O3tCQ4OZv78+Tz88MM36VfdXpjNZr777js++ugj1Go1y5YtIzo6utuwuM0wmUzU19dTX19PQ0MDRqOxiaEtkUiQy+XI5XIUCgVKpRKZTNal4zCbzZhMJvR6vWioG41GzGYzEomkkcGvUqmQy+Vdfi2ZTCbq6uqora2loaEBALlcjqWlJRYWFs3+ZuHzgoNCcCio1epOOxWMRqN4Xq49NxKJRDwuCoVCPC+36hnebVh0081/ASaTCa1Wi5WVVacm+WXLlvHBBx+we/duwsLCunCE109tbS2rVq1i6dKlfPTRR4wfP/5WD6kbwGAwUFVVhUKhwNra+lYP57owmUxkZGSwaNEi9u7di1KpxMrKCnt7e8xmM2VlZVy+fBmdTtfqdvR6PW+88QbL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N29m69atODg44OjoiL6+PpWVlRQUFJCbm9uEdmNoaMj48eN5++23eeGFF8TzfK9gYGDArFmzmDFjhpht/6vk7J1CbW1tq7QkGxubLp2gNzQ0cP78+XYFFgkJCWzdupUPP/ywxe/U1taSl5dHVlYWarWagoKCv5UqlFKpREdHR5wc2drakpeXR3p6OllZWXzzzTeYmZmJniAAX331FT/++CPr169n5MiRIhXkTsLJyYnY2Ng7sm6JREJAQACff/65mInTPmhramr4z3/+Q2RkJFeuXKF79+6oVCoOHjzIqVOn6NOnDy+//DK9e/cW1xcaGsrXX39NVlYW586dY/369bz22mtNqAPa3pxPP/1UlHQ2NTVl2rRpZGVl8dZbb3H9+nXS09PvaGChhaenJ56enjzyyCN3bBtGRkY88sgjFBYWsnv3br799lu+/vrrJt8zMDDA39+f77//vlXPoFt7HjozbgmCQEVFRYtUDEtLSwwMDLh06RLGxsbk5uZibW3daN8sLCzE3/jWqnRZWRkqlYoXX3xR/FwqleLn54dSqeTatWs8/vjjYuJSLpcTHBzc4WO5GxAEgbq6On744QdUKhWmpqZMmTKlSVBxK9zc3Bg2bBinTp0iNTWVo0ePMn/+fLy8vJr97SQSSSPaYnOQyWT4+vrSp08f0tLSKCwsJD8/v109kFKplE8//bRJUHE/QSaTMXv2bAYPHtwiBWno0KEEBARw9uxZVCoVly5dor6+nvj4eGpra9m4cSMnTpzgp59+QqlUEh0djZGRER9//DE7duzg4sWLBAYGkpqaSnh4OEOHDsXOzk6svk+cOBGNRsOFCxcabVcqleLr68srr7wC3KRYX7hwgZqaGj7++GOOHj3KxYsXRT+a/v37i+Od9v44dOgQbm5unRPY6PCS/6LTcHZ25tFHH6W6uprffvuN0tLSFikELTlGarWh33vvPUaOHHnfOEl3NSQSCREREbz88su88cYbpKamNqFTaDQasrKybisha25uzrhx41i+fDk6Ojr069fvngcWgiBQWVlJfn4+5eXloputlrt5JzPvWs+AltBR/mZLSEhI4MqVK7c14LsV+vr6mJmZUVpaKvKd5XJ5o9J99+7d2bx5MydPnqSqqgpfX98W5UbvR9ja2qKnp8eNGzdwcHDgxo0buLq6EhQURHBwMIMHD8bT01PMmOno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"
+>
+
+
+<pre>Saving as The Upanishads (Part 1).png
+</pre>
+
+
+
+<img src="data:image/png;base64,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pEm4u7vfVJn5boDOIboRBEFApVJx7Nixv9X8DleDCSdOnPjb9kLpHANLS0sSExP59ttvOXv2LBqNBi8vLz7//HNsbW2pqKjgyy+/5MiRI0ilUsaMGcO8efOwtbUlOzubnTt3kpSURHp6On379kUul4uU5+7u7iQkJJCamkpGRgaLFi3i4MGDJCUl8e6779KrVy+xlFhXfrtq1SqOHTuGSqXC39+f+++/nx49erB27VokEglPPfWU2Pu5detWzp8/z/33398lWayysjL27t3Ltm3bKCwsxMbGhpkzZ3LvvfeK5UjFxcW89tprJCYmYmdnx9KlS+nTp0+7naorV67www8/cPr0aZRKJVOnTmXSpEnY2Nig1WrZu3cv69evJz09XSTSWbhwYauN1+1FY2Mj9fX1HSI42bFjx22/t3VCyh2BTCbjgQceQC6Xi+XdXTqmLt9jGygpKeH999/n+PHjDBo0CEdHRyoqKrCzs2sRvWxqaiIlJaXLayb/bnjttddE5+eFF14QoxqfffaZSLe6cOFC5HI51tbWfPDBB3p1cQqFgjFjxtCnTx9x4rmVCHdTUxO7d+/m3XffZdasWbz00ktd8jvbQkFBAcuXL6dv3768/vrr4kQoCIIocBcfH09paSmurq5YWlpiamrKzz//zIMPPsg777zDuXPn+Pjjj+nevTuhoaHs3LmTtWvX8uKLL2JmZsbvv//OmjVrWLt2LUqlkvLyclavXs2VK1eIiIhAo9GQmpqKQqFg6NChNDY2cuzYMUJDQ1m4cCEXLlzgP//5DzY2NvTu3RuZTEZjYyMnTpzA3Nyc1157DWtra0pLS+nRo0eHWDykUilmZma35cG/nSgrKyM7O/uu0pK509BlOq2trTE2Nm5RS/wP/josXrz4tjG6XQuVSsXgwYMZP348r7/+OlqtlujoaB566CF69+7NqlWrMDU1JTo6ms8//5wePXrwzDPPkJyczCeffMKJEyfEfX3xxReMGDGiheH1+++/89tvv3Hp0iXS09MpKCjQy4gOHjyY1atX6807EomEuLg4vv32W/78809kMplYHqFjw7sW+/fv56effuLSpUvIZDIiIyOZN2+eXmlGdnY2X375JXl5ebz88st6fP2JiYl89NFH2NjYsHjxYjw9PTly5AgbNmwgOjqaxMREBEGgZ8+eoi1gZ2fH8ePHO8x69Feh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"
+>
+
+
+<pre>Saving as The Upanishads (Part 2).png
+</pre>
+
+
+
+<img src="data:image/png;base64,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uHAh33//vahv4OLiwqBBg4CblHbvvfceVVVVvPfeewQHB7fpOqWlpaxZs6ZJz3dLYG5uzrx585g3b54oAHW3n5fumQQEBPD777/z/fff89lnn92RMrhGo+G9996je/fu9XRfGoOpqSmPPPIITk5OLFu2jNOnT2Ntbc1rr73G448/jqenp15f6NLcdJ6spqBQKBg0aBDLli1j6dKlnDp1CqlUSlhYGPPnz0cul/P555/X896Xl5ezaNEiEhIS6Natm6j9IAgCZWVlnD59mv/85z9UVlby3HPPta2zWglBEKipqaG2thapVIq5ubloKMhksib7WndsUlISR48eJTs7m7q6Oj2hvVvnEl9fX5599tl651GpVKhUKjF9Em5GVpub3GtraxvN0S4sLCQjI4OIiAjRyDt//jy7d+/Gzc2NTz75BA8PD55//nk2bNjA0KFDmy30/QcPLsrLyzlw4ABPPvkkp06dwsfHh8DAQDZv3kyPHj3ud/MeWKjV6vvOMqhLJdbVowYEBPDiiy+yY8cOli5dyvnz56msrGywvrK4uJiXX36ZLl264OPj0+g1qqqq+Prrr1m6dCkSiYRHHnmEefPm4eHhwZ9//kmXLl3473//y++//87ixYtZuHBhq1MUDx8+zCeffIKpqakoynor2isq+lAYFncLOoty+/btvPnmm4wcORK4udi5ceMGu3fvpn///oSFhbFnzx4SExPp1asXGo2GI0eOEBwcLKYJ/PLLL/To0YO+fftiaWkpilOtWLGCefPmPTDFV7rJ2MDAAFNTU1xdXQkKCtLzno8fP56PPvqIoqIirK2tqa6uZvv27bz33ntIJBIKCwvZsGEDEyZMEOkZe/fuzblz5zh69CgjRowQLXndwsXMzEwM9TeFuro6du/e3eb7MzU15a233mLEiBH3RFCopbhVb0AqleLu7s6zzz7Lk08+ycWLF/n777/RarV07dq1xe+KrsjX1tYWiURCdXU1a9eu5bvvviMoKIjx48dTUFDA1q1bxcWTh4cHAQEBrFq1imvXrrXJsNBoNCQkJPDNN9+0+thb4eDgwMKFC5k0adJdTdlqCLo+trS05MUXX8TGxoY333yTkpKSNp8zPz+f77//ni+//JIOHTo0+xx1+e+PPfYYjz32WLPnd3Nzqyew1Rh0NVVjx45l7NixDe4zePDgett+/vlnli5dyjvvvMPMmTP1ima1Wi0XL16kW7dubN++/Z4YFlqtlitXrvDVV1+xc+dOQkND+eOPPygsLOTkyZNi6mBjqK6u5r333uOnn36iqqqq2SjYgAEDGjQs/v77b1asWCFSogN88MEH7N+/v9n2Z2ZmNlh8rKP7dXJyQiKRoNFoOH36NBcvXuSFF16gV69eItnEypUr25UY4W5AEASUSqW4CNSRifyT/vP/IJfLycnJISkpiRkzZoj//w8ahk74s7kC6nsJncPQ0tKS6dOnM378eDZt2sRXX33FhQsX6mmCwU2K8sWLF/PVV181Ov5IJBIGDhzIO++8g1QqZcmSJZw7dw4PDw9yc3MZO3YsPXr0wMrKiueee65NGStZWVl4eHjw7rvvNmnk3Cn+pw0LrVZLYWEhtbW1ep1sZWWFvb09+fn5VFZWEhgYiI+PDwkJCWRkZFBQUEBmZiYjR47E3t4eQRC4fv06SUlJ7N69W+/Fsbe3FzU5HgR4enoydepUFi1axMyZM4mKimLcuHF07doVc3NzJBIJQ4YM4fPPP+fgwYO4u7uze/dutFotY8aMEcOSZ8+eJTExkcWLF+ud39/fH61W2+bJpK6u7o7CcaNHj2bw4MGi9/tBh4GBAWFhYYSFhbX62J9++ok///yTs2fPIpPJKCsr488//yQkJITVq1fj7e3Nxo0b2bp1q3iMTkhSo9G0ScBOEARu3LjBV199dUfpiM7Oznz77beMGDHinhsVt8PMzIzp06ejUql4++2374g5bvXq1cycOZPevXs/lAuqxMREqqqqiIiI0DPMdYapXC7HwMDgnuU864y19PR0RowYIXLMy+VyLly4QGlpaZOGxZo1a1i5ciUSiYTo6GgCAgIwMzNrdHJvbLKtqqoiMzNTz3OakpJCYmIilpaWjY7vutTExliNdIQKADk5OZw7dw57e3vCwsLE/u/QoQMqleqe5pm3BWq1mm3btvHf//6X3NxcxowZw0cffdRuTDMPOwwNDTEzM2PVqlVUV1fTpUsXMjIyHpi1QVvQ0HckCEK7ZZRotVrKy8sfKMPidhgZGTFt2jT69OnDK6+8wubNm+vROyuVSnbs2MG7777baF2YTCajS5cuhIeHi/ILpaWl1NbWolarRRZEd3d3Kioq2pS2qau9bC2DYWvx8L7R7QAdjahEItHL4dPl4uqYaIyMjOjatStr1qwhKSmJpKQkHBwc6NSpEwqFQqS5nDFjBv/5z3/0JhGZTPZADRw6q7hbt26cOHGCv//+m7lz5zJ//nwmT56MqakpVlZWDB48mJ07dzJx4kT+/vtvRo4ciZWVldhntra2vPzyy0ycOFHv/CYmJnpqva2BrkirrWlQpqamDBs27J4KeD1IqK2tFWmVm2KdMTExEVNE2nKN/fv3s23btja308bGhvfee++OagjaG5aWlkycOJGUlBR+/PHHNuf01tTU8PXXX9OlSxesrKwemEhlS+Ho6IhCoWD//v1ibQXcXDQWFxezaNEiDAwM6vGg3y3oKIMXLFhAXl4eS5YsAW46fwwNDZs1jg8cOEBZWRlvvvkmL7zwQpsdDpMmTaJfv356dNwAgwYNYu7cuY1yzNfW1vLNN98QExNT7zdTU1OMjY3JzMykuLiY48ePExsbS1RUFAEBAeJ+1dXVCILwwL9LCoWCKVOmMHz4cD7//HMyMjLud5MeKNjb2/Pcc89x7NgxHnnkEVQqFWZmZnpq8A8TdOQYt4t4qlSqNs0tDaG2tpbk5OR7xgx1J3BxcWHRokVkZWVx/Pjxegv/iooKYmNjxbTk29GhQwdSUlKIi4tDJpORk5NDbW0tVlZWlJaWUlZWRk1NDWVlZS3SMoKbz+LW2qwOHTqg0Wg4ePAg/fv3rxfBtbS0FB0dd4IHZ8V7l6F7MW99QWUyGS4uLtjb23P8+HGCgoJQKBRcu3aN3NxcunXrJlp2Xbt2ZcuWLaKnPjw8XPTESKVSunfvzpUrV1AqlWJoW1d88yBBqVRSXV2NXC4nOjqaiIgI5s+fT2xsLAMGDBCZAcaPH8/69euJj4/nxIkTrFy5Evh/nNwBAQEkJSWJHOMajQaVSqX3skskEgwNDSktLaWiooKamhpRQbKxj6KgoKDN6Sj+/v54e3vfFcaEhwkGBgaNLkR0xfFarbbV7Di6Go6lS5e2WavD2NiYZ599lrFjx97TqFJRURE3btxoUrjI2dmZJ598kvj4+AYXgi3Ftm3biI+PJzo6+oH7/pvDlClTSEhIYPHixezatQsXFxcxGpacnIxGo2HUqFEtYjlpD2g0GpRKJVZWVuTl5Ynba2trxZqHppCbm4uFhQUTJ068Iy2ExkRfXVxc8PPza9QrX1NTg6enZ4Pvk5OTE506dWLnzp0IgkBsbCyVlZVER0eLhoparSYnJwdjY+N2mfDvBe42QUZ7oal2tqfXXQcjIyOio6Pp3r27KKQYFRV1T1nK2hMymQxzc/MGDQudxtadOlWrqqo4e/bsHZ3jXsLe3p7Zs2eTkJBQry5EpVI1ST8fGhrKsWPHePnllxEEATc3NyorK/niiy+wsLAgLi4OR0dH4uPj8fb2blHUITU1VS+rRKPRcO3aNWJiYtiwYQNOTk56z+jpp5++I9FnHf7PGxaZmZlkZWWRnZ2NSqUiPj4eExMTbGxsCAwMxM7OjmnTprFx40bkcjkWFhacPXsWMzMzRowYIZ7H09OToKAgtm/fjlqtZvbs2XohrVmzZvHqq6/yww8/0K1bN+RyOQUFBSJj0oOCjIwMDh48SF1dHTY2NpSVlVFUVERERITeQi88PBxvb28+//xznJyc9IrLbG1tefTRR1myZAnff/89nTp1QqlUUldXR7du3ejevTtwc+Dx8/MjMTGRDRs24Ofnh4eHB4GBgQ1O8ro0m7bCw8OjVbz/arWa7OxscnNzqaurQ6FQYGNjg5ubmziJV1dXc+PGDZFO1draGhcXF0xNTcVJqaamhqysLAoLC8XzODs74+bmhkQiQa1Wk5WVRW5uLmq1GgsLC1xdXcW25ufnU1xcjJGRkcggY2pqiru7O1ZWVkilUpG9LCsrS/Ri3J4aYWBggIeHBxcvXiQnJ6eecrcgCBQWFnLp0iWMjY1bXahVV1fHgQMHOH36dKuO00EikdC/f39mzJhxz3nxd+7cyccff8zRo0cbZRKSSCT4+Pgwa9YsEhMT2xx+12g0/Prrr/Ts2bPBnH5dIX9kZGSr6GnvBcLDw1m0aBGbNm3i3LlzFBYWIggC5ubmjB49mj59+jB06NB7Vr+kqwPbv38/CoWCmpoaMjIyuHz5Mrm5uc2mEBobG4sMbO0NX19fHBwcmuwLnfBWQ4tHDw8PJk2axKeffsqff/6JiYkJ06dPp2/fvuI7U1BQQHZ2Nj4+Pm1Sd28vCILAuXPncHZ2pqioiNLSUoyMjHBxccHR0bHFhkRtbS25ubkUFBRQU1ODXC7H3t4ed3d3cYGjc36kpaVRXl6OIAjie6AbN5RKpTguC4KAlZUVrq6uTaa5NYTGIqY6R1l7QqVSceXKFc6fPy+K1MLN9+heRQDbE3K5HEtLS3Jzc/W26+aZgoKCenNQayAIAiUlJRw5cuROm3pP0a1btwa/d11aV2MICgri1Vdf5dixY6jVanr37o2npydlZWUoFAqWLFnCokWLkEgkvPrqqy0icmio8N3Dw0PULbvdKGwvtr//84bFyZMn2bBhAyUlJfTo0YMDBw5w9OhRIiIiCAwMxMLCgsceewwzMzP27t2LUqkkMDCQCRMm6FluUqmU6Oho0tPTsbW1xdfXV28ACw0N5YsvvmD16tVs2bIFiUSCl5cXvXv3vh+33Sh0C/pTp05RUVGBmZkZw4YNY8KECXqGklwu5/HHH+fvv//mqaee0rNqTUxMGDNmDBYWFmzZsoXz589jZmbWoKDXqFGjqK2t5ciRI1y4cIFhw4bh4+PTqPfwTvLbraysWrzg0RVVfvbZZ2RnZ1NTU4OBgQERERH8+9//xt7enpqaGo4dO8batWvFsL69vT0TJkxg4MCBmJubo1KpOHjwIH///TfZ2dloNBoUCgUTJkwQvbpJSUl8//33pKamolarsba2pn///kydOhVbW1sOHDjAX3/9hbe3Nzdu3BB1B6ZNmyY+l8LCQhYvXiwW73p6eqJSqfQiB7rF35IlS/jiiy+YNGkSmZmZqNVqcnNziY2N5eDBg+zZs4fu3bvj7+/f4r7VUQzrUlHaAmdnZ2bPnk3Hjh0fWI+miYkJUVFRDBs2jL/++qvN59m6dSvZ2dl4enrW+83S0pJZs2Yxa9asO2jp3YOvry+vvvrq/W4GcPN7GzVqFCtXrkQmk3H9+nUWLFhAfn4+Xbt2bXZ8DQ4OJi4ujoyMDDw9Pds1LfXNN99sVm1bKpUSGBjYoI6PsbGxKBx64cIFXF1d6dGjh57RXVFRQWRkJJ6enne0SLtTaDQannzySYYMGUJJSQnXr18HoGfPnsydO7fFjoLS0lJWrVolzj9wc1x45513xHGhsrKSVatWsXXrVqqqqpBIJDg5OfHoo48ybNgwamtrOXXqFKtXrxY9wHZ2dowZM4YhQ4a02ADTGX0NQalUUlJS0q59XlhYyKeffopSqdRzKDxIJCOtgYGBAU5OTg2mLmdmZpKSknJH/VdbW8vp06e5dOnSnTTznqOxSJhOH6MpeHl51Uvl1jnC5s+fz/Tp08V09ZY4SwIDA/n9999b0fr2wUNpWOiYdVqCyZMnM3ny5Cb3sbS0ZObMmcycObPJ/aKiooiKimr09y5dutClS5cWtet+wcXFhTlz5jBnzpxm950+fTrTp09v8DdTU1NGjhwpMmk1BkdHR55//vl64lCN4faip9agIV2IxqBWqzl16hT79u3jt99+w9vbm9zcXCorK8XJ5urVq6xduxZLS0u++OIL5HI5y5cvZ8WKFWIU5+rVq3z22Wf4+fnx3nvv4eHhQU5ODqampkilUiorK/nuu+/Izs7mgw8+wNbWlv3797N27VpMTU3Fdy4pKQlra2v+85//YG1tzY8//sjWrVvp0qWLyMKzb98+5syZQ3R0NNeuXeM///mP3negK0I+f/48K1euZNu2bZiYmFBcXMy6devYuHEjN27cICAggClTprSqFkWr1XL48GHOnDnT4mNuhVwuZ/z48URERDzwoX93d3eGDh3Kzp0721TgDjdrAzZs2MC8efPauXX/WzAzM2PixIk4ODiwc+dOzMzMUCgUTJw4kVGjRumlIDWUvjJ27FiOHz/Or7/+ikKhoHPnzk2q2LYmjaclC0K5XM7AgQMZOHBgg7+bmprSq1evRvPsfX19eeONN1rUnrsNtVrN3r17+eqrr/Dw8CAmJoaffvqJjh07Njt36mBmZkZYWBj9+vXDxcWFzMxMnn76afbs2cOTTz6JgYEBJ06c4OOPP2bOnDmMGzcOY2NjCgsLxfqW1NRU1q5di4GBAQsXLsTAwIAVK1awcuVKHBwcREr45iCRSBpMb4ObFKHXrl3Tq3W5U1RVVVFQUMC6detaxJD4oMPExITAwEAOHTpU77crV64QGxtL9+7d2zTe6xx/d6pndT9w6dKlBqNdcrm8zVTyuuPd3d3vpGkUFxejUqlwcHDQG+fq6uooLi7GwsKiXeoeH0rDQiqVIpPJRD799PR08vLyqKioQKvVYmhoiLW1NW5ubri4uLQ5516lUpGfn09WVhbFxcVUV1ej0WgwMDDA3NwcR0dH3N3dMTMza7GhcysEQaCiooKMjAxycnIoLy8Xz9+hQwex/YaGhkil0ibzQUtKSkT2JplMhru7O1FRUa3yDNfU1BATE0NRURGCIGBmZsbQoUPvOoNAe6GysrLFRbdSqRRbW1vs7e05e/YsWq0WHx8fnJycxGeZlJREYmIi0dHRxMfHAzf7OikpiczMTLp3786hQ4dQqVTMmTOH0NBQpFKpmB+t4/7fs2cPCxYsIDIyErjp6UlISODgwYPMmDEDuGmADR06lJ49ewI36XuvXbsmhjFjYmLo3LkzgwcPxsXFBW9vb/r06cOJEyf07snT05NPPvmE33//ndOnT1NYWIi7uztqtRozMzPGjRvHlClT6NmzZ4vTQ3SUf7///nubB3kPDw+GDRum56nbv38/3t7euLu7k5+fz5EjR4iMjMTV1ZXs7GwuXbrE0KFDqa6u5vLly6Snp6NWq3FwcMDf31/0kmo0Gs6dOycSB1y7do3q6mrc3Nzo0qVLPUVRXeH6kSNHMDU1pUePHnqebENDQ4KDg4mMjBSFBduC9evXM3fu3P/5mp/WQKdPcevzMDU1ZejQoQwdOlRPf+J2nDlzpp73VCKR4OLiwubNm0lNTaVv3764u7s3ahQ4OTk1WlzZ3tCRhCgUijbNH/caMpmM6Oho+vfvD9wcx2JiYoiJiWmxYWFkZISvry9paWmcPXsWjUaDiYkJ6enpaDQatFotmzZtwt3dnXnz5okpqbdG/q5du8a5c+fo1asXCQkJwE2jJyUlhdTUVPr06dOieU8ul9O5c+cGf8vOzubkyZMMGjSo3SIKRkZGeHl5UVBQgImJyQNF6tIWmJqaimKut88Lubm57Nu3j759+xISEtKqdYgu7Xf58uUcPny4vZsN3GRgKykpwdPTs10jRsXFxWzYsKFBKlhjY+NWZQncDZw6dYqsrCxmzpypNy+Vl5ezYcMGoqOjCQwMvOPrPJRvtkwmQ6PREB8fz549e4iJiSEpKYmCggLUajWmpqZ4eHjQtWtXBg0aRL9+/bC1tW3x4K1Wq7lx4wbHjx/n+PHjxMXFkZaWRklJCXV1dZiYmODo6Ii/vz9RUVH06dOHkJAQUdm5JaitreXatWvs27ePQ4cOcfHiRXJzc1GpVGJ+fXh4uNh+nXHREHQ5jW+88Qbp6enI5XKGDBnC77//3qhHpiFcvnyZV199VRysBwwYQHR09D01LO6kwDI7O7vF6rQymYzIyEhmzpxJTEwMZ86cwcPDg0GDBtGnTx8UCgXl5eVkZGQQGxurV3QVHBwseh7y8vKwsbHB3Ny83vPRGXw1NTV6rDG6Gh9dChbcrN249VkZGBig0WhEZoni4mJ8fHz0vD+urq71rimTyfD19eXdd98lPT2dlJQUKisrUSgUuLm5tTlXOzU1tc25rjomssDAQD1jZvHixQwZMoTHHnuM/fv388orr/Df//6XJ554goMHD7J69Wqio6M5evQof/zxByqVShQqioyMZMqUKTg4OKBSqfjtt9+oqqqiU6dOpKWlUVZWJqrC6wwL3bdZW1vLhg0bWLFiBWPHjqVbt2712qyrgdizZ0+b804TExPJyMigY8eObTr+fxEajYb169czYMAA7OzsqKysJDk5WRQdbGp8/eOPP+rRXwMiPe6xY8c4duxYk9cfNGhQg4ZFenq6+Cx1xrHO6DczM2tTDUdqaipxcXH079+/yXFaR2d++fJlysvLsba2Jjw8HBsbm3tqkEilUj2Pq84Blpqa2uJzxMfHs3btWkpKSkQSj6KiItHDKwiCmELYULH6rfUXJiYmZGVlib8FBATg4uLSYgYtuVxOt27dUCgU9erVSkpKxIWxbv69U8hkMmpra/nwww/p3r27eM5OnTq1OMryIMHIyIjAwEBcXFz0noMOR44c4ZdffmHu3Ll07NixRd+IVqslOTmZP//8k2+//bbNJCHN4dSpU/z111/06tWL4OBgOnbsiKOj4x2tdbKysli7di27du2q5+CUy+V06tQJX1/fO236HSE1NZWkpKR6/VpXV8fBgwfp2LHj/65hodVqiY2NZenSpezbt69eXn5NTQ1FRUWcO3eOvXv38vjjj/P000/j6OjY7ECsUqm4cOECf/zxB5s3byY9Pb3BfUpLS7l8+TI7d+6kV69ePPHEE4wePVrUgmgKOh2I77//np07d9YrrqmtraW4uJjz589z8OBBHnnkEaKjoxv9MKVSKY6OjowfP55FixahVqu5cuUKhw8fblXh+O7du8VCLIlEwtSpU+85HeidFPVeuXKFrKwsunbt2qw3SMduNXv2bEaNGsXRo0fZtWsX3333HU5OTvj7+6NQKPD29mbOnDkMGDBA73hd8ba5ubkYKbl9QtOxYikUCr1C4NraWioqKjA3NxcHsuZoiU1NTamsrNRb5FZUVDQaQTA0NMTX17fdBrKNGze2WZna1taW3r171ytUDgwMJD09HZVKxalTp4iKiuLMmTM89thjXL16lS5dupCXl8fy5cuxsLDg9ddfx8TEhJ07d7Jz506ReEGHhIQEoqKimDJlikgDfWsOtVwup66ujvXr17Nq1SqmTp3Ko48+2mC/W1lZERQUhJOTE5mZmW2675qaGvbt2/ePYdEK6LRENmzYgJ2dHTdu3OC7777jxx9/bHZh0qNHjzuq0QIanVRjYmJYt24dzz77rPgeb968GUEQGDlyZKscODpcuHCBr776CmNjY+zs7CgvL8fY2Bhvb28cHBzE+01PT2fx4sVs3bqVkpISHB0dmTx5Mi+88EKLhBjbC7o6Kx3q6uqorKxslTNozZo1XLhwgblz59KrVy+MjIxISkqqR3lZWFjYKKuQXC7Hy8uL2bNn16tdMTExabGxJZVK8fLyIjg4mHPnztX7PSEhgS+//JKysjJ69uyJo6Njk2O0rj8qKiqwsLDA0tJS777kcjl2dnaUlZVx/vx5cbsuEvSwQSaT4eHhwahRo1i6dGm938vKyli9ejXV1dVMnDiR0NBQ7O3tG4zglpeXk5WVRXx8PFu3bmXDhg3i4lynvXB7ofGdoLS0lPXr17N582YCAgKIiIgQWSXd3Nywt7fH2tpaj6TlduiM3Bs3bnD58mUOHDjA33//3WD6rLm5OdOnT78vzG5arZaKigqKioooLCykvLyc1NRU0UkpCAKXL1+mtLS03caSh9KwSE5OZvHixezcuRMrKytCQkJEa1PHGnLp0iXRs/H1118jkUiYP39+ky+KWq3mwoULLFiwgG3btqFUKpHL5Tg7O+Pr64utrS0ymYyqqiqysrJITk6moqKC/fv3k5GRQUVFBf/617+aDK1pNBqSk5P58ssv2bp1K2q1GqlUipOTE507d8be3h6JREJZWRnXr18X6cJycnKa9MabmJgwduxYfvvtN0pLS8nJyWHPnj2MGDGiRVZ4cXExx44dEz8Kd3d3oqOj72k+vEQiwdnZGblc3iYvcW5uLidPnqRXr17NMh7paNc0Gg12dnb069ePmpoafv75Z3JycggICKBjx47Y2tpy5swZgoKCsLa2FtWuXVxcMDAwoFu3bqxfv54dO3ZgaGiIjY0NFRUVqFQqfHx8sLe3Jzw8nC1btoj53WfOnOH69esMGDCgxf0bHh7Ojh07RI7r/Px8Tp8+3SaPTlVVFampqSKTSnOora1l/fr1rb6ODiEhIXTu3LnevQYFBbF582aUSiWxsbHMnz+fjz/+mNraWq5evcqoUaPIzc0lKSmJBQsWiGQKgwYN4vTp05w9e5bx48eL5/P19aVv37506tSpwXYYGhqyceNGfvnlF+bNm8e0adMaXaxKJBLc3Nzo3Llzmw0LjUbD7t27eeaZZ9p0/P8qVCqVmEqgVCq5dOlSi97zCRMmNFvz1RwaS1vLy8sjMzNTz7O9bds2tFotvXr1apNhATeNhqVLl6JSqSguLsbU1JSIiAimTZtGWFgYcrmcnTt3ivVWnTp1Ii4ujh9++IGQkBBGjhx5z1LtdMrgCQkJODg4EBcXR0pKCqNHj9bbT1fr0lDNS3FxMebm5jg5OVFXV8fx48dJT08XaxmkUikDBgzgww8/ZNu2bfTo0QOFQkFFRQUGBga4uLjg4eGBi4sLp0+fJjQ0FFtbW6qqqqiursbJyanFizeJRIKFhQX/+te/OH/+fL13rLa2loMHD5KVlUV0dDT+/v7Y2tpibGwssv3V1tZSU1NDVVUVlZWVlJWVUVJSwrRp0+jbt6+eIWJra8sHH3ygdw2lUtluTDz3A7a2towaNYodO3Y0qFtSVFTEX3/9RVxcHJGRkfj6+mJjY6OnpaQTn7xy5QonTpwgOztbPF6hUBAUFESnTp1Ys2ZNu7e/rq6O+Ph44uPjUSgUuLu706lTJ1xdXXF0dMTe3h4zMzNR00wqlaJWq0U9iby8PK5fv05sbCypqakNiljK5XL69evHmDFj2r39LYFGoyElJYWNGzcSExNDQUEBH3/8sWiA62jkXVxccHFxaZdrPpSGRUJCAsnJyYSFhTFp0iS6d++Os7MzxsbGKJVK0tLS2L9/P3/99RfZ2dmUl5fzww8/0L17dwYPHtyg10EXgv3xxx/ZtGkTdXV1WFpa0rdvX0aPHk2XLl2wt7cXDYv09HSOHz/OmjVruHr1KlevXmXhwoW4ubkxZMiQRgf7oqIiVq9eLdLW6han06dPp1u3bmJRTWlpKVeuXGH37t1s3ryZNWvWNFnYrMsX7du3L5s3b6aqqoq4uDguXrxI165dm+3T06dPc+3aNXGQGzlyJA4ODvc899fCwgI3N7dWhdd1EASBbdu2ER0dzZAhQ5qcYHR5+TExMRgZGSGVSiktLaVnz55i3m1QUBBjx44VCxaNjY0RBAFvb2/GjRuHpaUl3bp1Y+rUqRw9epSrV69iZmaGVqsV6XpNTU157rnn+OWXX/jiiy8wNDSkvLyczp07t2qgGTNmDImJifz222/s3r0bU1NTnJyc2lRcnJubyx9//EFERARTpkxpdv8rV65w+fLlVl8Hbi4Uunbt2mCheGBgIIsXLyYjI4OamhqioqKora0lIyODlJQUAgMDyc/PF40/HUxMTDA1NRW50nXvqJ2dXZPaGGVlZezbt4/i4mJsbGya9YA7OTnh6+vL3r1723TvWq2Wc+fOUVVVVa/O4x80DJlMRteuXfnuu++IjIwkLy+PgoICli9f3uCYGhoaKtJbm5qa1uvnwsJCjIyMWuXJbqiOQ5eW2N6FpDk5OZw8eZKQkBD8/PwoLS1l69atVFdX88orr+Dt7c358+cxNjbmpZdeIioqinPnzvGvf/2L9evXM3jw4HtmWEgkEkxMTPjzzz+pra0lJycHLy8vRo0aJd7L/v37uXz5MocPH6asrIxvvvkGT09PhgwZgp+fH/3792fNmjUsWbIEa2trVCoVHh4e4j1IpVKGDRtGbGwsv/32G/v27UOhUGBiYkL//v1F3ZCJEyeybds2vv76a3GR6unpyZgxYxpVNm4IRkZGjBgxgs2bN3Pw4MF6v6vValEU19TUFGtr63qGhVKprFff17VrV/r06aN3Lp3n/VZcv36dlJSU+7bovFPomBRnzpzJokWLGqRTValUnD9/nvPnz2NiYiKyNwqCIPZdQ9F3qVSKj48Pr776KoaGhqxdu/auFnLX1dWRkpJCSkoKcPN9NzIyEjMLDA0NxeeuVCopKyvTow1uCBKJhO7du/Pqq6+22flwp9Cxn3Xs2FEsLNfpE+naGBQURJ8+fdpNXPihNCxqa2vx8/PjxRdfZMyYMfVCsZ06dSIsLAxDQ0MWL15MUVER+fn5LFmyREwpuj1qUV1dzaFDh1i/fj11dXUYGxszePBgXnvtNUJDQ+sZI507dyYqKgpvb28++OADUlNTuX79Ol988QURERFi5OFW6KIVq1evFnNKg4KCePnllxk2bJheZMHd3V1P3v3vv/9uVsLd0tKSyZMns2PHDurq6khLS2PPnj2EhYU1OalqNBoOHDggakiYmJgwevToO6p3aAt0+fPh4eFtMizg5iJ4+fLluLq6Ehwc3GjoWiaT0aVLF6qqqigvLxdFDrt27Spa7VZWVowdOxZPT08uXbok6ksEBASIk5epqSlPPPEEAQEBXL16lZqaGkxNTQkMDBTp5fr164e5uTnnz5+npqYGJycnunfvLn7EISEhGBgY6KXM+Pv788QTT4je906dOvHiiy9y9uxZKioq8PT0ZOrUqcTFxbU6fFlaWkpCQkKLvRMHDhxo0BPTElhbW+Pv79/gZO/l5SV6Lf39/TE3NycgIIAjR45QW1uLj48PVVVVSKVS8vPzxeN03klHR0cMDQ3FtjWXg69SqXjkkUfw8/Nj4cKF2NnZNWl029ra4unpKdZ0tQWlpaWkpKTUY4srLCzk0KFDXLp0CUEQ6NmzJ/3792+Xgs68vDw2bdpEREREi5wKDxLkcjlz585l1apVHD9+XAzdHzp0qEFD0NzcXDQsGsJPP/2Ej48PI0aMaHY8Ky8v5/Dhw8TGxqJSqXB2dqZnz54EBweLKY8JCQl069YNGxsbtFotgiCgVqub/T50Y9vtsLS0ZOzYscyePRt7e3vKy8tZvXo1x48f59KlS3h7e1NaWoqNjQ3W1tZiXUBYWBjnz59v83fZFshkMvr06UPnzp3JyMgQGet8fHzEe1QoFFhaWoqRI106qG7+GTZsGBYWFly7dk0cg0eMGIFUKhU1X+zt7Xnttdc4evQoOTk5CIKAg4ODWMBtYWHBiBEjcHV1JTExkerqakxMTPD3929Uo6YxSKVS3NzcmD9/PkVFRWJ9YUOoqqpqdTqOVqslPz8fR0dHVCqVnjce4Ny5c1y5cuWhNSzgpkPnkUce4caNG6xZs6ZJrYbq6uoWMT9KJBI6duzIyy+/zNixY4mPj8fGxobCwsL2bHqT0Bk+DRVitwQSiYRBgwbx8ssv6+mA3WvIZDK8vb3x8vISBaBfeeUVMYNAx7LanimVD6VhYWJiwoABAxg+fHijk4WtrS1PPvkkhw4d4vjx46jVag4ePMiVK1cIDQ2tt39ubi4bN24UPcB+fn48/vjjhIeHN7oot7CwYNKkSZw/f57ly5dTXl7O0aNH2b9/P1OmTKk3kVRUVHDixAmxENja2pphw4YxaNCgRtOVvL29mT17NqdOnWpy0IOb3peIiAhCQkI4e/YsRUVFYmixMWVYgLS0NM6dOycOCN26dWtSofhuQqFQ0Ldv3zan3mi1Wvbs2YOZmRnz5s0T1dRvh0wmIzAwsNlCJSsrK/r27Uvfvn2b3EfHWtMQDA0N6dmzp8j4dDv8/f3rsUX4+PiIEzbc/PjDwsLqCYKFhIQ02f6GUFNT02L2LLhpWLS1iE7H+tTQolBHsrB3714GDBiAXC4nLCyMHTt24O3tjZmZGS4uLnTu3JmNGzfi5uaGqakpBw4coKSkhJEjR4p1Ey2BsbExffv2JSoqSuSU//zzz/H29m5wfwMDA+zs7LC0tGwz7axarSY+Pl7PsKiuriYmJoZff/2Vzp07Y2ZmJhamtwZKpVLUUbj12KKiIlauXImxsfFDZ1joFq/e3t7k5+dz8eJF8vLyePbZZxuMQDaXyrdr1y78/PxwdHSkpKSEqqoqPDw86N69u964oFQqOXDgAB988AFJSUnU1dVha2tL3759efbZZ/H19cXe3p6VK1eSlJSElZWVmCf/0UcfNUuIYGtry/vvv19vu7OzM0OHDtWjMS8tLeXMmTPiIkqtViOTycR5SCfkeCffZVthamrKpEmTGvzN0dGRqVOnNnl8hw4dmk1X0zHr3Vo/dTssLCzo3bt3u+hEGRkZ0bdvX9566y2WLl3K4cOH2+xIuB11dXX8+eefvPLKKxQUFPDuu+/q1X1lZGQ0OTc/DNDVqrz00ktYWVmxevXqBou5W3O+3r178+yzzzJmzBhR5LJjx47tZlg4Ozvj6OhITk5Ou5zvdnh4eDBhwgQmT55MZGTkA6HbJJFIiIyMJCAgAENDw7siGqrDQ2lYODs7Ex4e3mzI083Njb59+xIfH09ZWRmVlZUcPXqULl266HWqRqMhOztbpDYzMDAgLCyM3r17Nxs+NzU1ZerUqWzZsoXy8nLUajWrV69m/Pjx9RbmpaWlHDt2TAydeXh4EB0d3awnLSQkhKCgIK5cuSKyCDUEiUSCg4MDEyZMEKn8kpOTOXr0aKN6FADHjh0jNTVVbNe4ceOwtra+Lx+DXC6nb9++mJubt7kQs7q6mo0bN1JaWsrs2bMZNGjQ/8lUlB9//BGJRMLs2bORSqWUlJTw008/NXvc9evX9ViumkJRUVGD+ccthY+PT5OLv+DgYJYsWcLLL7+MQqGga9eufPPNN8yZMweJRIKjoyNPPvkkf/31Fx9++KHoXRk4cGCTxl5TcHR05KWXXuK///0vn3/+OR9++GGDpAESiQQbGxscHBzuyLA4f/48jz32mLitrKyMM2fOYGFhwX/+8x+MjY1RKBStHuhXr16Nv78/3bt3fyAmrvaCVCrF3d0dd3d3zM3NCQoKomfPnm1mbDl48CBXr14VGdp0onvz5s0TjYuCggL++OMP8vPzeeGFF3BycuLMmTMcOnQIGxsbnn32WZ566ilWrFjBwYMHxVorgBs3bjQ7T3h5edUzLORyeYO0o7oImUqlora2VoyM3AojI6NWOQfaCw+bpkBLYWZmxqhRo3B0dGTz5s3s3r2b5OTkNtU/yOVyMV1KKpWKjkylUkl6ejpjx44V942Pj29yTn9YoFAo8Pf358UXXyQoKIidO3cSExNTT5W7KUgkEgICAhg9ejSjRo3SM/7NzMzo1KkTp06dapf2hoeH8/XXX3P8+HFOnTpFUlJSk5GWlsDAwICAgAAiIyMZNGgQvXv3bjBz5X7iXhGJPJSGhYODQ4tywSQSCd26dcPU1FRkXjpz5ky9wbGmpobLly9TUlIC3PSqBAQEtJiWs0uXLjg7O5OWloZWq+X48eNUV1fXo5+tqqri4sWL4r8dHR1bJMBjaGhIYGAgu3fvbnYQMjc3Jzo6Gg8PD9LT08nMzCQmJqbR1Kbq6mqOHTsmpkF5eHjQs2fP+6YGqiua7devH1u3bm3zeaqqqti1axcZGRkcP36cRx55hICAgIeeO/xWLFu2jJqaGp588kng5oL1yy+/bPY4lUrV4pB+XFyc+F20Be7u7k2KAk2ePJlOnToRHh6OTCYjIiKCb775RpyMjY2NiY6Oxt7enuvXr+vpWOgEsxQKBY8//niTSrq9evViwYIFmJmZIZFI8PPz46233iIzM7NJ5jMLC4t6avKtgUaj4cqVK3rblEolxcXFuLi4tKh4viFotVpWrFjB008/3WQq0MMOZ2dnXnzxxTuqI0hJSaGsrIyIiAhMTEyIj4/nu+++ExcxcDOaHBcXR2hoKC+//DKWlpYkJiaiVqs5c+YMY8eOZcKECQQHB5Obm0tNTQ2LFi1CEARmzJjRrPBVQ2OvpaUlMpmM/fv3Ex4ejpubG0VFRcTExHDt2jX27t0rCoVJJBK9yFxRUREmJiYP1KLlYYeJiQk9e/bEx8eHoUOHkpCQQGJiIteuXSM7O5uysjKqq6upq6tDJpNhZGSEhYUFHTp0wMHBQSws9/b2FlOupVIpgwcPBm5Gth9//HG9iI+uCB5uponZ2dnVW58YGxu3q1BfeHg4n376aYNkMN27d2+zAa+LNE2ZMoUePXqI/ZeUlERKSgoFBQVUVlZSVVWFIAgYGhrSoUMHnJyc8PPzIzQ0lJCQELGe9VbY2trywgsvMGTIEL3t3t7ejY75TcHGxobJkyfTp08fUlNTyczMJDU1ldTUVLKzs8nLy6OkpITy8nKUSiW1tbVoNBqkUimGhoYYGxtjYmKCg4MDbm5ueHh44O/vj6+vL97e3no1DHeKjIwMFAoFtra2D40m0kO5yrKysmoxLamPj4/eh5KSklLvw1UqlVy7dk38t7W1NZ6enq1SYO3YsSNnz54VqW4zMzP1FiSCIFBdXS2GCKVSKdbW1i1WYvTw8GgR9atMJsPLy4uhQ4fy008/oVQqSUhI4Pz58w2GjRMTE7l48aJosAwaNAhXV9e7GiZrChKJBFNTUx599FF27tx5R4wZarWahIQE0bgYPHgwU6dOpVOnTg+FIFVzeOqpp/RSaDQaDdXV1QwfPlwU42sI165dY9euXS26RlxcXJufgU7vpalo0e2UuDY2NvVSIIyNjRtMA9NBLpc3u7j28vLSc0bIZDJCQ0MbTIu8/R6aKghvDhqNRmSVys3N5dtvvyUxMZGEhAQMDQ1JTU3FycmJyZMn07dvXyoqKjh27BiHDh0iOztbJHcYP368OFZ8++23xMbGEhsby1dffcXff/+NkZERU6dOFb2hOu2D9957j5SUFOzs7Bg2bBj9+vUTc2uvX7/Otm3biIuLQy6X06NHD0aPHi162aqrq3nppZd444032LVrF8ePH8fAwIBx48bVYwJqLwiCQG1trThmm5ubN6gz0hpYWlrywQcf0LNnTwwMDMjMzOTZZ59lxYoV4n3oKMRdXV3FRU1QUBD9+vXj3LlzpKamMnToUPE9EwSBXbt2UVNTw/Dhw/XSFlsKLy8vIiMjWbduHcnJyVhZWYlikAEBAZSXl/PVV1+JNRxnzpwRBdZOnDiBl5fXPRunpVIpX3zxxR0r/z7o0LFAOjo6EhkZSUFBAcXFxZSXl1NbW0tdXR0ajYaamhpWrlzJpUuXeOyxx+jXrx82NjZYWlpiZWXVYL2XrmbvVgQGBorOhYZSYgEWLVrEv//9byZMmMCoUaPuWLXb1dW1zQ6NW5GXl8fXX39NUVEREyZMYPjw4cDN8bpz58507NiRgQMHin1YVVWFSqWirq4OQRDEyI6ZmRm2trbiXNHQusvExITu3bu3mxNFIpGILJTOzs4iJWtJSQkVFRViRFLXXrVaLdLJy+Vy5HI5CoUCU1NT8Znb2NjUS0ttDxw6dAgnJyd69er1j2FxN2FoaNji1BYbGxs9L/WtPNw61NXV6W03NjZutRVsZ2end53c3Fy9/HetVktVVZUYvlYoFFhYWLSYbtTKyqrFL5WtrS3Dhw9n9erVlJeXc+XKFWJiYoiKiqo3ER09elRkQTA0NGTYsGGtLoBrbygUCiIjI+nXrx/79u274/OVlpZy9OhRUXdk8ODBTJo0qV5B7cOGadOm1dPOMDU1ZciQIU3mOp88eZLExMQWXSMxMbHN+cZ2dnYik9rDijs1LHQiidXV1ZiZmTFkyBA8PDyorq7G3NycRx55BDMzM9Ho0Wq1FBYWYmZmRp8+fSguLmbt2rUYGhoyadIkzM3NiYqKws3NjS1bttCrVy969eqFXC7X82oWFRWxf/9+Bg4cSFRUFHFxcSxbtgwzMzN69uxJdnY2y5YtIz8/n65du6LRaNi+fTvFxcXMmjULW1tb1Go1O3bsQKVS0alTJ/r160dlZeVdFcxUqVS89NJLzJs3D19fX/Lz89m9ezfTp09vc7QxJCSEYcOGic6iTp061VOt1yl+31rHYWhoiJOTEwqFol4qnC5NrqH5pKVwdHRk1qxZSCQStm/fzqlTp+jQoQMDBw7k8ccfRy6Xc/r0aRwdHTl69Cg///wza9asoaqqioSEBD766KN7xouvSz/8X4FUKsXCwkLM7b8dV65cYcWKFWJxeadOnZpNzZbL5fWYgaytrZuNiJ4+fZqNGzfSuXPneh77+4mqqioOHTpEZmZmg7V+CoUCGxub+76eaAmkUimWlpZtEo+9HXFxcaLu09WrV+nduzfz5s1DqVSyevVq4uLiMDAwICgoiAkTJnD69GkKCwt57LHHKCgoYO/evbi6uhISEsKuXbv47bffMDU1Zdu2bURGRjJixAiOHDnCvn37qKurw8LCgldffRVjY2PWrFlDYWEheXl5hISEEB8fT2hoKNOnTxcpZ69fv46RkRGDBw9mwIABd2UMeSgNC5212BLoqER10IXhboXO03vr+Vvb2bfTGd6er6fVavXYBWQyWauuYWxs3GIvu0KhoHPnzvTq1YudO3dSUlLC2bNnSU1N1fOs5efnExsbS0FBAQAREREN6g3ca+hqRebMmcPJkyfbLMx2OwoLCyksLOTKlSvs2LGDyMhIJkyYQK9eve6LcM2doqEFr1wux9HRsUmvlrW1dYtT3S5evNjmiIWNjU2rqB8fRBgaGt7xQlqlUpGfn4+Hhwd9+vTB2dmZ06dPY2Njw5gxY0TvGfw/w1Cr1WJmZkZNTQ1Xrlzh4sWLDBkyBHNzc8LDwwkMDMTAwIDw8HDGjBlTj9VDKpXi7e3NU089hbm5OR4eHixbtoyLFy/Ss2dPjh49Snp6OpMmTaJ///5otVrUajU7d+5k+PDhegsgiUTCjBkzsLe3F9NA7hZ0Bs68efOAm7UPK1euZPLkyW0yLORyOR06dBCpIuHm/ehUveH/GRW6326FoaEhcrm8wRTUkSNHUllZ2eZUOYVCQUBAAK+++iqPPPIISqUSAwMDnJyccHR0RCaTERQUhIGBAd27d+e7775j165daLVa5syZw6RJkx4aD+b/NVhaWorjm7Oz80M5f/yDu4NFixYxYcIEnJ2dmT9/Ph4eHshkMnG8DgkJIS8vj9OnT3PmzBkyMzPFTJaamhpSUlKQyWRERkYSGRnJnj178PT0ZMCAAbi4uIgimtOnT0cikbBq1Sr27t3LiBEjRCexnZ0du3btYvDgwZw8eZJx48aJRDR9+vThwoULXLhwAS8vL5Fevz3xUBoWWq22xcWkurCbDg2FqnTMKreev7WLqduvc/tAczvd4K2TWUtw6+KjJfu6uroyatQo9uzZg0ajITExkRMnTugZFrGxsSQlJYntGD58OM7Ozg9E3q6BgQG9evXiscceY8mSJe167uLiYoqLi0lOTmbv3r0EBAQwduxYhg4dipOTU7te617CycmJv/76SxSSawympqbY2dk1m1pXUFBAbm5umws2rays7jhsf78hk8nuePGm0WjIyckRqWt1RkBDFKSCIHDt2jW2bdvG5cuXqaqq4vLly/Tr10+PVleXaiGVSvUYg3QwNzcnLCxMpBR2cnLCxMRErDVLSUlh//79nD9/Xsz/LywsJDc3l7KyMr1nHhkZiaur6z1bxBoZGZGRkYGvry9qtZqioqI2v4P29vYkJydTWVmpF92Lj49HqVRy/Phxkd5aq9XWMyB0aRANGVM9evRAq9XekeGpUCjEdIyGoIuce3t789prrzF79mwEQSAuLg5ra2vxuWu1WnJycjhy5AheXl73ld7yfwE2Nja8//77zJs3Dw8Pj7saxfsHDxeuXr2Kn58fvr6+ODg44OzsjFQqpa6ujkuXLnH27Flqa2vJz89vlJEQbq6BPDw8sLOzw9PTk9DQUDFT58aNG+zatQuJREJ8fLzoCJLL5Xh6euLo6MjVq1fp3LkzZ8+epbq6msrKSk6ePCnWuygUinpaK+2Fh9KwqKurazGTQmVlpd4CvqGFjkwm09vemuJWHcrLy/WMnds9tTKZTC99Syey0lJUVVW1yhAxMTEhLCyM4OBgzp8/T3p6OidPnmT06NFYWVmh0Wg4efKkWFvi7OxMVFRUu4QC2wM6r+Ls2bOJj4/n+PHj7X6NyspKrly5QlpaGidPnuSHH36gf//+jBs3jvDw8IfOC2VsbEzv3r2b9Sh7eXnxySefNJtOeO3atTtiLLG0tHzoDQtdPu2dQKvVtjjqtm/fPn7++Wc6d+7MCy+8gLW1NV9++WWro4gKhUIvnVNnyOgYhqqrq+nUqROPPvqoqA+gw+0UzPeSIU4ulzN06FCeffZZAgMDqa2tJSUlhccff7zB93rs2LFN0pJ2796dI0eO8PrrrzNx4kSsrKw4cOAAJ0+exMLCgpkzZ9K5c2eRcS8jI4Py8nIsLCyoq6sjJyeHqqqqBlNjW1Lz1l6QSqV6Bsg777zDkSNHkMlkzJ07F3d3d15//XUsLCzYsWMHubm59fL5/0H7QS6XN7ko/Afti/Lycq5fv463t3eL5pRTp06xfv16UlJS+Pjjjxv0yuuU5Ddv3sxnn33Wbm199NFHefPNN3F2dqZDhw6EhYWhVqtJTExk06ZNfPjhhxQXF7Nly5Z6DvK6urpm6dNzcnL44YcfeP755/Hy8uLnn3/Wi7iamJhgYGAgkgdJJBIqKirEtLU5c+Zw4cIFzp49e9foqh9Kw6KiooLi4uIWMUNlZmaKYnQALi4u9SZJIyMjvaK08vLyVvMbp6amiteRSqX1Jmv4f7UbpaWl1NXVUVpaSkVFRYtyuIuKivTuoznoUiGGDh0qCinppOv79u3L9evXSUhIEBc8/fv3Fz2qDwp0WhNvvvkmL7zwQptF85qDSqUiNzeX/Px8kpKSWL16NQEBAYwfP55hw4bh5ub2QERxmkNjIly34/b3vTFkZWXdEZ/73r17OXfu3H1PrbsTqNXqNlPN6qATWmoJ4uPj0Wq1jBo1Sixa1mq19b59XdSjqefTVOqkra0tJiYmeHt716Ptlcvleu/7vXz3FQoFb7/9Nt26dePy5cukpqaKjCgNvdvNGcfTp09n37597Nu3j6NHjyKVSqmqqsLOzo7ly5fzyy+/sGHDBszNzRk/fjzp6em88847jBo1irS0NH777Tfs7OzaVJwN6EWL58yZ0+A+OkrntLS0Jilkx44dK0agrl+/TlRUFLa2tnz88cd8//33XL58mS1btpCQkMDatWv/MSz+wf8Z5ObmsmHDBp555pkWGRbBwcEYGRnx3nvvNTr2CoJARUUF6enpzZ7vwoULLF26lNjYWPr378/s2bMbpW5VKpX06tWLCRMmYGpqipmZmV4dry6KkJKSQnBwMBqNhuLiYpRKJampqaSkpOg5d4yMjMRCclNTU0pKSqisrKRTp044ODiQmJhIREREk+2vra2lpKQEMzMzOnbsyIkTJ/SogH/44Qd+//13SkpKkMvlrFy5sllik6bwUBoWhYWFZGdnt0j86eLFi3ovVpcuXepNlKampqK2hUajoaCggCtXrqDValtU15CTk0NGRoZoafr5+dXLu9WxHXXq1IkzZ86I95Gent5s6grcTF1oiWLlrbCzs6N37978+eef3Lhxg8TERM6cOUN0dDTnzp3j8uXLIjvDoEGDGg3H308YGBjQv39/PvvsM15++WWRYeduQOdZrqys5MaNGxw/fpyFCxfSq1cvJk+eTK9evdpEbfewIjc3944MC11f/q9DEIQWR35MTEwoLS0lKysLFxcXNm3axNmzZ+sxI8nlctzc3MSCPrlcjrm5eb3i0IYgkUjo27cvhw4d4tdffxW94VlZWZSXl9O3b9/7VnCpq6+aOnUqKpWKixcvkp2dzbvvvttghKC5qKKDgwNLly5lxYoVHDhwgKqqKsLCwnj22Wfx9/enS5cu/Pe//0UqlSKVSvnll19YtGgRf/31l5gOO2vWrEbFLZuDRqPh+PHjLFmypJ5hoVariYmJ4f333+fSpUsi80xjCA4OFg2Ljh07Mn36dOzs7Ni2bZt4nKOjI6Wlpa2OuLcW165dY/Dgwbi7u/Ppp5822D8bNmxg4cKFODo68sYbb+gx+kybNo24uDg2bdqEhYUFS5YsYd++fRQUFODk5MTIkSN55plnGqxfqaqqIjY2lm3btnH27Fmys7PRaDTY2toSFhbG9OnT6datW4PvS8+ePSkoKCA+Pp6cnBy+/fZbjh8/TnFxMR06dCAqKopHH320wVSyQ4cOsXDhQuLj4/W2L1iwgPHjxzdbt1ZTU8PRo0dZtWoV8fHxlJaWYmRkhJOTE4GBgQwZMoSoqKhG69KkUimFhYUsX76cnTt3kpmZKRYBz5w5kxEjRtQ7RqlUEh8fz9atWzl9+jSZmZnU1dVhY2NDly5dmDJlCr17926y7SdPnuTnn3/m9OnTqFQq/Pz8mDZtGt26dWsyPTI3N5cdO3awfft2rly5glKpxNLSEhcXF7p3787w4cMJCgpq8htWqVTExsby+eefExcXx+nTp/H19WX69OlERUWRkZHBihUrOHz4MNbW1sycOZN+/fphYmKCnZ1dg06tAwcO8Nlnn+mRZjSFmpoadu7cyW+//UZNTQ1JSUn4+fk16oitrq5m+/bt7Nq1C41Gw1NPPcW0adMICgpCIpGI9Q4dO3ZEoVAQHBzM4cOHGTVqFJ06daqXVjd48GAWL17M+vXrGTt2LBMnTiQwMJBnn30WExMTfHx8mnX+WFpaEhQUxA8//MCkSZOws7PD0dFR/L24uJiUlBSKiopQKBR3rK3yUBoW6enpJCYmMnr06CY7VKvVsn//fr1C6l69etU7RiaT4eLiQmhoKLGxsVRVVZGYmCjmyjWHXbt26SlCDhkyBIVCUe86ZmZmhISEiIZFZmYmZ8+ebdawqKmp4cyZM60WcJFKpfj5+TFgwABWrFhBWVkZCQkJpKamiv+Fm7zW/v7+D2Tqj0QiwdjYmFGjRiGXy3n77bdJSkq669dVq9WUl5eLHo3169fj6enJqFGjmDZtGv7+/g+tJ764uJjjx4/j6urapFfiTg2Lf3ATrTEsRo8eTUZGBm+++SYAQ4cOZdSoUfUcHBKJhAULFvDWW2/Rt29fXFxcePvtt1vspQ4ODubtt99m2bJlzJkzh6qqKhwdHXn00Udbd3N3CUZGRhgZGWFvb09wcDBWVlZtymOXSqW4ubkxb948/v3vf+vRXEqlUjp06CAu5ARB4LnnnsPW1pYdO3Ygk8kYOXIkkydPbrNDQRAEkWrzdly5coXFixdz5swZkWzDysqq0TntVopQAwMDzpw5g42NDRcuXODDDz+koqJCpEO9E5rulqCurk6kQ24sylJdXU1OTg4ymazePjoSjUOHDrF8+XIuXrwoRuDS0tI4f/48u3fv5o8//tCLriqVSlauXMkrr7xCTU0NarUauVyOIAikpqaKxsqnn37K5MmT60W0cnNzSUtLY8eOHcyfP5+8vDyx9iYtLY0LFy5w9OhR3nnnHSZMmKB3rJ2dHV27dkUqlZKfn09ycjJlZWUNEsLcjsrKSn744Qc+/vhjlEql+B6q1WouX77MkSNHOHPmDO+++y5Dhw5t8BxFRUU88cQTXLhwgbq6OqRSKbW1tVy9epWDBw/yzjvvMHfuXHH/2tpatm3bxtNPP41SqRRrhXT3qjM43nrrLWbOnNlgJGDFihW88cYb5OXloVarMTU1JTU1lRMnTjRpkFy6dIlPP/2UjRs3UltbK0ZY09LSSEhIYO/evSQnJ/Ppp582SX2rUCiIiIhg/vz5fPfdd7z33nu4urqKXvytW7dSW1vLsmXLuHDhAocOHcLKyqpRWlqlUskrr7zC4sWL8fT05IMPPmjqsQE3n11ubq7o2C0vLyc/P5+ampp679fhw4cpKChg9erVWFlZUVxczJQpU5g2bRru7u789ttvoh6GTCZDLpcjk8n47rvv9J7PrQZbjx49CA4ORqvVYmhoiKGhIR999JH4jesizMbGxsybN0+suYuIiMDQ0BB/f3+MjY3p168fPXr0QBAE8fp3rW5OeAgQHx8v9OjRQwDEv6FDhwpnzpwRNBpNg8doNBph+/btgpeXl3iMt7e3UFJSImi12nr7l5aWCl988YUglUoFQOjQoYPw7rvvCtXV1Q3ur7tGenq60KtXL/E4ExMT4cKFCw22q7a2Vli3bp0gl8sFQJBKpcLkyZOFrKysJq+xatUqwdvbW+/+X3nlFaG6urrZvlOpVMKvv/4qmJiYCIDQtWtXYdGiRcL48ePFc7355ptCfn5+s+e6n9BqtUJdXZ1w8uRJYcSIEWIf3ss/iUQiyGQywczMTOjXr5/w448/CpmZmUJtba2g0WgafYYPGuLj44UxY8YI3377bZP7zZo1SzA0NLzn/fx/7c/S0lL46aefxH7VaDRCbW2toFKp6vW5VqsVVCqVUF1dLVRXV4v7qVSqemOKRqMRlEqlUF1dLSiVSqGurk7cXlNTI/67sWvqtumupVQqBZVKJb7HWq1WqK6uFurq6lr0bhcWFgpvv/32HfXVwYMH9a6la+O9+rZ040xNTY3Yh7duU6vV4r4qlUpQKpVN/pWWlgrz588XvL29611r9+7dgrOzs/Doo48KN27c0HvWDf3d+vxjY2OFCRMmCL179xa2bNkiLF68WPjss8+EgQMHCmPGjBEWLFggCIIgJCcnC5MmTWrz8/Dy8mpwbrh06ZKgUCgEX19f4cCBAw325Z9//il4eHgIvXr1Eg4fPqz328CBAwW4OV8OGDBAiImJEcrLy4WKigph3bp1gqurq2BkZCRMnTpV7z3WarXCsWPHhKeeekr45ptvhISEBKGsrEwoLS0Vdu/eLfTt21eQyWRCz549hXPnztVrk249YGZmJoSGhgq7d+8WysvLheLiYmHTpk1CaGioIJVKhdGjRwt5eXl6x2o0GkGlUgk1NTVCVlaWMHLkSAEQfvzxR6GysrLBPtAdd/HiRcHU1FSwt7cXFi5cKNy4cUOoqqoSCgsLhRMnTggfffSR8PXXXwu5ubn1jp8+fboglUoFQ0NDwcPDQ1iyZImQm5srVFZWCgkJCcKQIUMEiUQiuLi4COnp6Xp9FR8fL8yePVtYuHChcO7cOaG0tFQoLS0VDh48KAwfPlyQy+VC165dhZiYmHrXjYuLE7y9vQWpVCqMGzdOSE5OFqqqqoSsrCxhwYIFgqWlpSCXywVnZ2fhu+++E4+rra0VvvzyS8HQ0FCIiooS1q9fLxQWFgqVlZVCVlaWsH37duHf//63sH379hatYQRBEM6dOyc88sgjQmZmprgtNTVV+OSTT4QVK1YIWq1WKCsrE1588UVh7dq1giAIQnZ2tjBlyhS99yAhIUGIjo4WKisrBZVKJaxdu1aYNm1ak9eurq4WPvzwQ3HNYWpqKixfvlxvLNBh69atwosvvijk5uYKSqVSOHDggDB48OAW3eP9xIcffijY2NgIgKBQKIQTJ07c0fkeyoiFRCLh4MGDfPXVV7z++uv4+PiIVpsgCNTV1ZGQkMB///tfMX9OJpPx/PPPN2phW1hYMHToULZv386hQ4coKSlh2bJlGBkZMWvWLCwsLMQcX901UlNTef3118UiGJlMxr///W+8vLwa9Drpwl6DBg0SaQN37dqFg4MDr7zyih7nv1arpa6ujlOnTvHFF1+QkZHRpr6Sy+UEBwfTu3dv9uzZQ2pqqljcBzdD57pc3QcZEokEmUxG9+7d+eWXX/jll1/46aefyM3NveveOR2E/5/Jq7KykkOHDnHo0CHs7OwYN24cM2fOxN/fH1NT0wajVQ8SlEol1dXVzRZu/ROxaD8It3g0b2ehuxU6b1VLPElSqbRBL75OHfb2bbdfsyE2PKVSKdbq6Lxg9xNN9VVtbS1arbZd23irANatWL16NX/99Rdz5swRo0Lvvfce+/fvb/J8Wq2WjIyMBmtBlEolcrmcrl274ujo2KoxIywsjHXr1ultU6lU9OzZE41G06AY6oMIa2trvv/+e/z8/MT7Hzt2rCjEeOLECY4dOybWAUkkEqKiooiKiqp3rsGDB1NaWkp+fj7nz5+nsLCwns6PDkZGRqxfv14vFWb48OGo1WpmzJhBZmYm58+f19ON0KXLwc0UvJbSv+vU06uqqvD29mb27NkiSYqxsTE9evRoEYuXVCrlyy+/ZNSoUeI3ERQUxE8//URgYCAVFRUcPHiQxx9/XOyr4OBgfvrpp3rn6tu3r+iJv3TpkqjHoesrQRD4+eefyc3Nxd/fn19++UVMSzM2NuaZZ56hrq6Ot99+u965KysrycvLo7a2lj59+jBs2DDxGzUxMcHZ2VkU02sNdOu7W/tDKpWK23TEFC35jnRzX0ueoZGREaNGjeLq1aucPn2a8ePHM3DgwAaPHTRoEEeOHOHJJ59EEARMTU355ptvWnqL/2fw0BkWhoaGODg4oFarWb16NWfPnmX48OF07doVa2trysrKOHHiBBs2bBALsGUyGb179+bxxx9vdNEnkUjo3Lkzr7/+OtnZ2aSkpJCdnc3777/P1q1bGT58OJ07d8bIyIjCwkLOnDnD1q1byc7ORhAEDAwM6NevH/PmzcPExKTRa3h6evL888+LOZ4VFRUsXbqUU6dOMXbsWPz9/ZHL5SJ14J49eygpKaFHjx5cvHiR0tLSVvWXRCLB19eXfv36ceDAAUpKSjh9+rS4YOzbt2+LcvQeBOja6OTkxOuvv05UVBRff/01x44dq8f+da9QUFDAzz//zK+//kp0dDQzZ86kf//+WFtbY2xsfFf7tbi4uE2sDgUFBS2qfaioqGgzzec/ePhQVlbGJ598wqxZsxpUAH7Q8Pfff1NcXMxLL710x+fSUc1qNJoGyTTKysq4du2aXiH/1atXRbrexkgvBEGgqqqqQcPC0NAQS0vLFi9Qb4VEIkGtVus5VSQSyV2jj7xbGDRoELa2tnp9IJfLiYyMxNfXl7y8PI4ePapHMNDUmOrr64u9vT1JSUnU1NQ0utAcPnx4PQeggYEBrq6uODs7U11dfUfih7dCKpXi6uqKubk5+fn5/P7770yfPh0zM7N6OltNISoqiuDg4HpOAycnJ7y9vbl+/To3btzQ+62pvvLy8sLFxYW4uDgxPUu3v0ql4uTJkyiVSqZOnVpPEdvc3JyhQ4fy8ccf1zuvmZkZjo6OGBkZcfz4cQ4cOEDPnj0xNTVtszK1gYEBxsbGpKamYmpqiqmpKfb29nTo0IFr166RlpZGYmIipqamuLu7iwQ/uqLl0tJSzM3N6dixIzU1NcTHx+Ph4aEnktkYJBIJoaGh/P77783ua2RkxIIFC1p9f//X8NAZFo6Ojrzwwgui9X79+nW+/fbbRvc3MjKiS5cufPvtt03mr8LNAS06OpovvviCDz74QCz8PnHiRKMvoEQiwdLSkgEDBrBw4ULs7OyavIaBgQF9+vTh7bff5uOPPxZzF8+cOSPWXtwKY2NjoqOj+fzzz5k7dy4nTpxo9WLP3NyciIgIAgICSEhIEI0TQ0ND+vTpg4eHR6vO9yBAoVAwaNAgQkNDWbt2Lb/99huXL1+msrLyrlGoNQW1Ws2BAwc4cOAAQUFBzJo1izFjxmBnZ4e5ufldMTCeeuopUZegNSgpKRGFdJpCbW3tP4bFAw5BEMjLy8POzo6cnBysra3FIuCamhq0Wi0GBgZYWloil8uprKykqqpKjADqRPiqq6vFHP37fT9KpVKMxmg0mkZZXfLy8tr0/jeEiooK1q9fT05ODm+99Va936dOncqAAQOwt7fX2z548GDmzp3baJ54bW0t3377LTExMfV+c3JywsPDg4SEBAoLC7GxsWnxIrOkpIT4+Hjy8/PF8c7Y2PihY4Ly9vZuMCKlUCgIDAwkPT29HhugLmOgqqoKpVIp1pXoVOt1DiadB/t2SCQSwsPDG2yP7luprKxst29BZ1g899xz/Pzzz7z55pusXr2a6dOn069fP5ydnbGwsGi2Zq9z584NGr06FfiUlJR6tSyCIKBWq6mqqqK6ulqvrwoKCkTD9Pa+ysrKErVfgoKC6hnOUqkUc3NzXF1d69UP6dY4I0eOZPfu3aKzbfLkyYSFhWFvb9+kMd4QXFxciIyMZMGCBfj7+zNjxgzCw8MZNWoUq1ev5j//+Q+WlpbMmDGDLl268Ndff3Hw4EFyc3NZunQpERERPPXUU3To0IHPPvuMBQsWiLUY/0Tl2x8PnWHh4OBA165dCQ0NxcrKimXLlnH16lUqKyvFhZBMJsPY2BhLS0v69OnDG2+8gb+/f4teZCMjI4YPH46TkxNLliwhJiaGkpIS8aMU/v/CF0NDQ9EynzRpEk8//XSzRoUOlpaWPPLII1hYWPDjjz9y9epVKioqGmz/wIEDmTdvHgEBAXh6enLu3Lk2VewHBAQQHR1NYmKiOBF16dKFoKCg+57ucCewtbXl2WefZdCgQfz5559s27aNlJSU+2ZgACQmJjJv3jy+++47nnrqKcaNGydOHu1pYBw5cgSVSkWHDh1adV6lUtmid0jn8fsHDy60Wi2vvPIKX3/9NbNmzeKFF14QC1ITExORyWTY2dkxYcIE/Pz82LVrFwcOHMDFxQVra2v69+9PTEwMly5dwtjYuNU02+0NjUbDxo0bsbCwYPTo0ZSUlLBq1ap6+wmCwPHjx9tNNbaqqoojR46QlZXVoGFha2vbYLqoi4sLnTt3xs3NrcHz1tTUNOq48fT0ZMiQIfz000988cUXTJkyBSsrq0bnKZ0XGODrr79m//79ODs7i/vb2Ng8dIaFiYlJg8aUVCrF0tISrVZLRUWFuF2j0VBSUkJsbCx79+7l/Pnz5ObmUlVVRW1tLbW1tXr7N4aWsJ6159hnYWHBG2+8gbu7O3/++Sfp6em8/vrrWFpaMmLECCZPnky3bt3o0KFDo8blrenYLYFWq6W0tJTz58+zZ88ezp07J+qyNNdXFRUV4oK7sTbJZDLMzc0bJCbo2rUrH374Id7e3uzevZuDBw+yZcsWfHx8mDx5MqNHjxaLilsyd1lZWTFr1ixmzZqlt93Z2Zl58+Yxb948ve0N7atD//796d+/f7PX/Adtx0NhWJiYmIjMSVFRUXTq1AkrKysef/xxoqOj2bdvnyiNrlKpsLS0pHPnzvTv35/evXs3y3V+K3Scwvb29nz77bci00BiYqIYXTAzM8PNzY2IiAj69++Pm5tbq0W0dNZ1nz592Lt3L6dPnyYjIwOVSoWFhQW+vr4MHDiQqKgoka0hMjJSHETd3d1bFUJ3cnKiS5cumJubU1ZWhlQqpWfPnnTq1KlV7X5Q0alTJ95//32mTJnCn3/+yf79+7l+/TplZWX3zcBITU3l7bff5tdff+XJJ59k5MiReHh4tEi3pKWYNGkSs2bNapVhERcXx48//tjkPoIg/BOxeEhgYmJCbm4uXl5enD17FqVSiaurK927d2fixIns2rWLbdu24efnR2VlJc7OzrzwwgtYWFhw+fJlysrKePzxxzE2Nmbx4sX39V7UajVr1qzBxsaG0aNHk52dzRtvvEFAQEC9fXNzc9vNsNDVTrUG3t7eODo6NumYkUgkWFlZNVgzk52dzcWLF1Gr1SxcuJDly5fj4eGBmZlZg9/z119/LbK4HThwQBRSbEsq1b2AWq1u1husUqkaHGMEQUClUulp8+iicz/88AM//fSTqNUUFBSEg4MD5ubmlJeXs2PHjmYjsvdar0mX2TBnzhwmT57Mnj172LFjB3Fxcaxfv55du3YxZ84cnnnmmXpRsVvb3NJxXvj/2ch+/vlnvvnmG7RaLd7e3vj7++Po6CgaBHv37uXSpUsNXksHjUbTaOSnqfv19/fn008/5YknnmDHjh3s27eP5ORkPvvsMzZu3MiHH37I4MGDm/x+BEGgrKyMy5cvY2BggIuLC/b29iiVSnJycsSIpaWlJY6OjmIaularpbi4mLy8PKqrq5HJZHTo0AEXF5cmayBVKhXZ2dnk5eU12iaFQoGnp2erKLnr6uq4cuUKFRUVGBkZ4enpiZWVlRihLS4upqysTEzH1EVsLSwssLGxaTS9vinootaFhYXiuQVBQKFQYGZmho2NDRYWFuJ71Z5Oz4fCsPDx8eGXX36pt10qldKxY0c6duzIM8880y7XqqmpYdu2bVy9epVPP/2UyMhIIiMj2+Xct0MqleLh4cHs2bOZPXt2s/u/8MILvPDCC226ls47oRvo7e3t6datmx6X8YMCjUZDZmYmJSUlhIWFtfg4iURCUFAQn376KRcuXGD9+vUcPHiQa9eu6aUM3EtotVquXr3K22+/zerVq3n66acZOHAg7u7ubaLPvB2BgYFERka2enHRXLH+vaCs/Ad3DolEgre3Nzt37mTgwIHs3r0buVwuTly6QnCdV1Eul2NtbS06K6qrq0UKQ0tLy7tHP9hCGBoasmbNGr1tISEh7N+/X+8d12q1fPfdd3o1Z+Xl5RQWFmJgYICdnR2Ghobk5uY2KTqnQ3Z2NkVFRa1acL777rtNFpfDzQVaQEAAgwcPrvdbbm4uJ06cwMDAgODgYODmAqSkpKTBc92amuPl5UVtbS1qtfq+kEVIJBKxcLahcUIXaWjOWLs1HedWaDQacnJykMvl2NnZATcNlZMnT7JkyRLMzc157rnnmDlzpt5CPCEhgQsXLrQo1fN+QCqVYmdnxyOPPMLEiRO5cOECv/76K+vWrePPP//Ex8eH6dOn3/F1NBoN8fHxfPXVVygUCp599lmefvppnJycxH2SkpK4fv16g4aFtbW1+F7fuHGj3typS0dr7F3VQSaT4e/vj7+/P7Nnz+bgwYMsWbKEo0eP8uWXXxIYGNio0BzcfOYnTpxgxIgRODs789prrzFz5kz27dvHL7/8wunTp5FIJHTr1o3HH3+cIUOGYGVlxfXr1/nrr79E9W1TU1MiIyOZM2cOAwYMwNDQsMFvpqCggC+++IIffvih0TY5Ojry3XffMWnSpCbv/VaUlpYyZ84cjh49ipeXF19//TUjRowgOzubY8eOsWfPHmJjY7lx44Y4Jru4uBASEsKQIUOIjo7Gzc2txRT3arWa7OxsTpw4wY4dOzhz5gw3btygrq4Oa2trOnfuzMCBAxkwYACBgYEoFIp2NbYfCsPifqC4uJizZ89SU1ODvb09Hh4eGBoaUlFRQWpqKuXl5RgaGuLj40Nqaiq+vr4olUouXrxIz549KSkpoaKiAm9vbwoLC0lJSUGr1WJpaYmrqytFRUXI5XI8PDzQaDSkp6cjCAJeXl7U1NSQnp5OcXGx6JWxtbVFJpNx7do1FAoF+fn51NbWioVbzU0saWlpnDx5Uhzou3fvTlBQ0APp7aqpqeHPP//k4MGDHDhwoNXHS6VSQkJCCAkJ4erVq2zZsoV9+/Zx5coVUSDoXkOtVnP+/HleeeUVBg4cyOOPP05UVFSr2WBuRVRUlB6bSkuh0who6rh/8k4fHgQFBbF48WIWLVrEkSNHsLS0xMPDg+TkZKytrSkoKGjUs+/o6IharebSpUuYmZnddWG15iCRSPQKPC0tLenfv3+DRriDg4NepPjQoUOsWrUKGxsb/v3vf9O5c2d+/fVXkpOTm71uZWUlly9f1lO8bQ7NCaLBTUNu8ODBDRoWYWFhLFu2rMXXu1VTydfXl0WLFjF06FAsLS2RSCQYGRkxYMCAFp/vTiCVSsX6nKOCtMoAAQAASURBVNsLhuHmQko3TzaF8+fPU1FRoZfOqcv/T0xMxMTERDS6qqqqxAJ6nWjprUaFIAhkZWW1muDkfsHIyIhu3bphampKQUEBW7ZsISUlpcXMRk2hpqaGq1evUlhYSHR0NDNmzNAzKgRBIDc3t9ECdUdHR5ydnbly5QpHjx5lwoQJegasWq0mKyuLGzdutNhzb2lpybhx45DL5aSnpxMbG0tZWVmL77eyspKUlBSOHDnC+++/T0JCgvjbzp07SU9PRy6XExERwddff81ff/0lRjSqq6vZunUrFy5cYPXq1XTr1q3Ba8rlcmxsbHB1dUWlUun9tZejrbq6mpSUFJKSkvj+++/5+++/630ntbW1lJeXk5SUxKZNm5g8eTL/+c9/CAoKatb5o9NGWbx4MStXrqx37uzsbLKzszl06BDbt29n7ty5IgFRe+Efw6IB1NXVkZyczKZNm8jLy8PJyYkZM2bQsWNHYmJiOHLkCHV1ddTV1REdHc2qVav473//y+XLl/n000/ZvHkzhw8fprS0lJkzZ/L333+TnZ2NSqVCLpfTs2dPbty4QVlZGa+++iolJSWsXbsWMzMznnnmGWJjY4mJiaGiooKKigq6dOnCxIkTsbOzY82aNVRVVSGVSlEqlURFReHt7d3k/ajVahISEjh9+jRwU2m8R48eTXoK/q+gU6dOzJ8/n0cffZR9+/axe/du0aPVklzc9kZVVRVbt24lLi6ORx99lMmTJ+Pv79+m6MXSpUvbJNxla2srsoE1Bh3d6D94sCGRSOjSpQuBgYE4OzuLyr1hYWFkZmZy7NgxXF1dRdpMd3d3vWJoZ2dnQkJCSExMxNzcnICAgAaFsu4XPD09+eijjxr8rXv37nrRiEuXLnH06FFMTEyYNGkSnTt3ZufOnZw+fRpra+smPXJqtbpZ72t7o0OHDkRERLTpWKVSSXl5OX///be4zdbW9p4ZFkZGRvj5+ZGQkEBMTAwDBgzA2dkZiURCaWkpu3fv5siRI81GiU+fPs3+/fsZNWoUtra2SCQSsrOzWbFiBQUFBYSEhIhMVzpRL7i5ONOlueqE4tLS0ti2bRtpaWl3+/ZbBZ3oX3l5Oc7OzlhZWWFoaCimwRQUFFBdXY2BgUG7Le5uTSGrqamhpKRE7CuVSkVmZiY7duzgypUrDR4vk8kYPny4qHA+ceJEevXqhYmJCWq1muTkZFatWoVKpap3bEVFBVlZWcBN419XG6LVasWoYl1dHSYmJq3ykldXV3Py5EnKy8spKyujf//+qFQqrl69Sn5+PpcuXWLz5s2cOnWK3bt34+DgQEREBCqVioSEBMrKykhLS2PZsmWEhoY2KAhsbm7OiBEjcHR0FAVyy8vLOXfuHKdPn24X46K6upojR45w+fJlli9fjqGhIX5+fjg4OGBsbCzWxqSlpVFUVCQ6WhUKBf/9739xc3NrdG7WarVkZWXx5Zdf8scff6DVapHL5aJzXJeGXV5eTmZmJqdOneLTTz/F09OzXZ2J/xgWDaCurk5kn9IVD166dAkrKysOHTpE9+7dGTduHOfOnWPZsmXI5XIKCgo4c+YMYWFhXL16lQsXLjBq1ChRcv6VV15Bo9Fw8uRJTp8+Td++fdm6dSv5+fmkpqaiVCrp1asXSqWSHTt2oNFo6NWrF6mpqRw6dIiePXuKIeHs7GwWLFiAvb19i9J7cnJyOHz4sKiFERgYSPfu3TEzM7ur/fggwcHBQQw/Hz16lD179hAXF8e1a9fIysq6p2k/giCQmZnJN998Q1xcHHPmzCE6OlpUAG4pbvVAtQZubm68+uqrTe7THqqcdnZ2rcpD/b8KMzOzNis3NweJRIKbmxsLFy4EYMaMGeJvc+bMqbd/dHR0vW2DBg1i0KBBd6V9dxO3R2GGDRuGkZERZmZm+Pr6itt9fHyYNm1ak8+guLiY1atXt+r6Onat1lCGthfeeecdvbFfl4t+r2BpacmYMWOIj49n+/btGBsb061bN2QyGdevXycmJoby8nJxzmoMHh4efP3116SkpODv749EIuHs2bP8+uuv2NnZMXXqVNEBYmJigp+fH66uriQmJrJ06VL69++PQqGgsLCQw4cPk5ubK9YRticqKirIzMykuLgYlUpFUVER+fn5wE2yjgMHDmBubo5CocDOzg5vb29xYa9SqdiyZQs7duwgPDwcLy8vLC0tEQSBwsJCYmJiOHHiBOHh4XTt2rVdHDpGRkb4+vri6elJSkoKS5YsYejQoRgaGlJUVMTx48dJS0vDwsKi0ajFxIkT2bdvH/v37+eNN97gsccew9HRkYqKCk6ePMnRo0fp2LGjqEitQ1ZWFj/99BNZWVkEBwfj6uqKiYkJdXV1ZGRksGnTJgoKCpg8ebJoTLYEOgepRCJh/vz5jBgxgqqqKn788UdWrFhBeXk5Bw8epK6uDg8PD5577jn69u1LdXU1H330EZs2bRLXV59//nmD1LcmJiYNpr8vXryY+Pj4dlknVFVVsX//frRaLXZ2dgwdOpThw4cTHByMjY0NarWatLQ09u7dy99//83Vq1fRaDSsWbOG4cOHY29v36gjsrq6mnXr1rFixQpRqTssLIwpU6YQHR2Ns7MzgiCIaVKbNm3i9OnTXLlypV0zOf4xLBqAoaEhrq6uol6GoaEhNTU1FBUVoVAosLe3x8DAgM6dO1NUVIS3tzeZmZmkpaUxduxYLly4QHJyMvPnzyc+Pp7S0lIxj9HOzo6AgAA8PDywt7fn2LFjVFdXI5VKCQgIoKysjKKiIioqKoiPjwegW7duojgN3Mw51vFKN2fxl5eXs3v3bnbs2CEKtvTr14+QkJBW9UldXR3r1q1j4MCBWFlZkZycTFJSEn369MHa2pqkpCSqqqro1asXhYWFJCQkkJWVhUQiwcvLi+DgYFEUqK6ujm3bthEREUF2djZXr15FrVYTFBTUoAdPq9WSm5vL2bNncXFxITQ0FJlMRmFhIRcuXCArK0vknw8ODsbT07NRz4+RkRGDBg2if//+XL16lSNHjnDy5EkuXrzI1atX9Xjq7zaqq6vZs2cPOTk5PPXUU4wfPx5nZ+d7dv3moEuXaksBt1QqZcCAAYwfP/4utKzluHz5MnFxcQQFBYkaMe0FpVLJ/v37uXHjBmPHjsXBwaHB/RQKRau/t/9VqNVq1q5d2+J3zt/fny5dugAQGhoqFjffisDAQJ588skmDfGMjAxiY2PrLZKawrFjx7h8+TLDhg2jY8eOd60guKKigrS0NNzd3fWE1W6FUqlk165dPPnkk3elDbfD3NycyZMnc/36dQ4dOsQff/zBL7/8grGxMba2tkRHRzNixAi2bt3apCd0ypQp3Lhxg02bNvHDDz+gVCoxNDTE29ubUaNGMXv2bNFok8vlhIWF8fzzz7Nu3TrWr1/P+vXrUSgUGBoa0rlzZ+bMmcOuXbsaZBK7E6SlpfHTTz9x6tQplEolVVVVosjsypUr2blzJ6amphgZGTFw4EDeeOMN0XEnlUqxt7enoKCA3377TU8fSCaTYW9vT+/evZkxY0a71XPqahtefPFFVq1axbZt29i6dSsGBgYoFAp8fX154oknOHfuXIP1q3AzWvjaa69hamrKmTNneO211zAwMMDU1JTg4GCeeeYZrl+/zsaNG/WO0+lMJCQksH//fjFCKggCxsbGuLi4MHHiRJ577rlGC9Ubg1QqJTQ0lCeeeELs3wkTJnDu3DlOnjxJVlYWJiYmPProo0yYMEH00D/++OMcOnQIpVIpFmfrvqV7DV39ka2tLY8++igvvvhiPbpqXX2FTmAvOzubyspKDh48SO/evRusjdUJMS5duhS1Wo1UKsXPz4833niDkSNH6o1Pzs7OhIeHExISwvvvv8/hw4f/iVjcbdzurdUNAhYWFmi1WsrKysQcQzMzM0JDQ8V80LCwML799ltqamqwtrbG2toaR0dHke1Bp6hdV1eHu7s7e/fupWPHjnh4eGBtbY0gCFhaWtK1a1cee+wxjI2Nqa2t1WtPQ5a2Wq0mIyMDIyMjZDIZtbW15OXlcezYMVatWkVaWprI3z18+PBmPUm3o7a2li+//BIrKysiIyNZs2YNW7Zs4f333ycyMpKtW7eiVCrx8/Nj48aNHDx4EIVCgSAIaLVaRowYwYgRI7CysqK2tpZPP/1UTM8oLCykqqoKjUZD165d9a6r1Wq5ceMGK1as4MKFCzzyyCMIgkBlZSU7d+5kz549YlhZZ6G7uro2G1KWyWR07twZPz8/pkyZQmxsLCdPnuT8+fNcvHhRjCLdbWi1WuLj4/niiy8oLS3lX//6V6PUlfcad2JYCIKAv78/kydPvq91PB988AEnTpzAx8eH0aNHtyjNR6VSUVBQgEQiadLQy8/P57fffiMmJoYPP/yQqKioBz59rKamhvz8fExMTJot4L8fUKvVrFy5Uvy3IAiUl5eTnp6Oi4sLFhYW1NXVkZubi6mpKf/5z39Ew6Ih6Gramou+6TQ9WmNY7Nq1i3Xr1uHr69tsOuqdIDU1le+++45HHnmEXr16oVAoRIZCHSoqKli7du09MyykUimenp689957HDx4UKR8NzExoWPHjvTs2VNktVEqlbi4uDR4ng4dOvDEE09w6tQpLl68SGVlJVZWVoSEhNC/f/96UXUXFxeeeeYZQkNDOX/+PKWlpaJORM+ePfH398fCwgIHB4cGaw9nzpxJcXGxXr3KrbCzs2PGjBmoVCo9kUgTExN8fX1bZDx6eXnp7adQKBgyZAjm5uakpKRQWFhITU0NEokEU1NTKisrKSsrIysri59//hmA3r17Ex4ejlQqZdiwYTg4OBAVFdWgp1o39+n67dZ7mTVrFkFBQZw7d47i4mJxTIuMjCQ4OFhMjwkMDKzXV0VFRaSkpODn50e/fv3Izs5Go9Hg5OREVFQUQUFBHDt2DBsbG73rOjo68thjj4k6JKWlpWIaeIcOHfD19SUqKgoHB4dWG+O2traEhYXpvRc6Ap+TJ0+K/a9jwNThdlr9jIwMvajmvYauFuTpp59uVAPHzMyMcePGsWfPHrKzswGIj49vlBChrq6Ow4cPi8QFOirj4cOHN9jPOuHocePGceXKFfEa7YE2GRY1NTUkJCRw7tw5lEolTk5OdO3aFR8fH6qqqjh+/DiCINCnTx+xwK2srIwdO3bQqVMnunTpgoGBASkpKZw4cYK8vDxMTU0JCwujW7duSKVSysrK2L59O76+vly/fp3s7GzMzc0JDQ0lJCTkvrCXODg4EBQUxIULF8jLy+PGjRv06NGDqKgo1qxZQ7du3XB3d6ewsBA3NzekUileXl6Eh4eLoV1jY2NCQkJEXYo1a9Zgbm7OyJEjAUTRlvPnz7N8+XKMjY1xc3OjR48eTVrY5eXlfP7552JuZXV1NdnZ2Zw/f16kTvP09GT69OltyuuVyWQEBwdz6dIlunTpIg44Fy9exN/fn/Lycvz8/IiLi2PHjh1ERkYyadIktFotv/32G+vWrcPb21vPI3PmzBnmzp1LWFiYSC2oG9x095GTk8Mff/xBcnIyM2fOZMCAAchkMoqLizl+/DgKhYL58+djZWVFdnY2jo6ODeZONoZbBQ779OlDVlYWsbGxxMbGEhcXx4ULF8jNzb3rjFI6j5hEImHmzJl3FLnQUe1dvXqVgoICamtrxUHdy8sLZ2fnFn0/baG400FHF1lXV9eq59He0GnPNCaW1RDy8vJYs2YN1tbWPPHEE3e5hfcWqamprF+/ntDQUEaNGnW/m1MPCoWCuXPniv8uKytj69ateHh4MHToUDp06IBKpeL8+fNkZmbqRXIbwuOPP46dnV2zlOMGBgZ4enq2al4pKirCwcGhXhF5eyMvL48TJ06gUCjw8/MTNZZUKpVotNfU1DRJkXk3IJVKxfrDxvD00083eQ6NRkOHDh2YPHkykydPbtF1O3TowLBhwxg2bFiDvw8ZMkR0Wt2Od999t8lzu7q6Npgm2rFjxzYzMuqYoMaMGVPvN61Wy65du/jiiy9ITEwkIyODnJwcFixYQGhoKFKplH/961/861//avT8NTU1olPxdvIBCwuLJlMdo6OjG0yPhJusZe+//z4KhYLY2NgGUwmHDh3K0KFD9bYZGBjg5+cn0ltXV1djZmbWIrKD5mBhYYG7u7veNmtra700Ym9v73rjgq2trd43eq/rqW6HtbU10dHRTdY5wk0jSSdnoHNmN6ZBVVtby+7du8V/Ozg4MGrUqCbHNJlMRq9evejYseP9NSzq6uqIjY1lyZIlIp3hxYsXOX/+PE888QQuLi6cOXOGy5cv4+rqKr7oCQkJLFu2jDlz5hAcHExmZibfffcdSqUSU1NTUbl47ty59O7dm5KSEr788kv8/PxE4bmcnBxOnjzJCy+8cNdSCxQKBWFhYaKokbm5OdHR0VhZWWFgYMDw4cM5efIkN27coFOnTvTp0wcXFxcmTZokWsXTpk3D1tYWqVSKlZUVzz//PIcPHxZz2HSeYH9/fx5//HHMzMzEQmqZTCZSpqWlpVFXV4dCoRAnkOjoaAwNDeu9LEqlknXr1jWYLymRSPD09GT27NmMHTu2TbUVMpmMLl26cOHCBSorK8nJyWHq1KkcPXpU5GB2d3cnOTkZjUbDkCFDxHsaPnw4x48fJyUlRc+oiYiIoGfPng3WFkgkEqqrq/nll184ceIEr7/+OtHR0WI/mJub4+fnx6FDh1i3bh0RERGEh4djZ2fXZg+5QqHAy8sLT09Phg0bRnJysmhk6PIQW+PRbC0yMjJYvnw5VlZWTJ8+vdU1F3DzPTh27Bhbtmzh4sWLInuYjmbUx8eHgQMHMnjw4Gaphq2trZFKpW0OkdbU1FBbW3tfDYvx48djb29PVFRUiye2zMxM1q1bR69eve5y6+49kpKS2Lhx431LA2gOMpmMvn37igZtcnIyy5cv56233tJzSoSHh/PTTz+RlJTUZH1ISykhzc3NmTBhQqsIHUxMTBoVeGtPVFdXo1ar9fQwDh48yMiRI0WvrFKpbFdWl39wb6CjSv3444+pqKjgjz/+4K+//mr1eXTCvQ9axPTMmTOcP3+eIUOGtIpxrTEYGRnVMxp0LIc6NORIMDQ01DMs2iIy3J6wsbGhe/fuzT4vnUPQyMiIyspKKisrG5yPdY68uLg44OZ7ZWdnJzKqNYVOnTq1uV6z0Xa39oDy8nJWr16NsbExL730EhYWFhw/fpxff/2V3bt3M3fuXEJDQ4mNjeXChQuisNHhw4extbXFz88PQ0NDNm7cSFpamqgqXVZWxmuvvcaSJUvo3bs3cPPhl5aW8vLLL+Ps7MzRo0f59ddfOXXq1F0zLAwMDPS0EywsLERWCrhp+Tbk6bvVozBlyhTx/2UyGT4+Pg1apg4ODkydOrXedktLywbpCQGxb26HXC7H29sbrVYrqk6bmJjg5ORESEgIw4YNY+jQoW32hOsiFqtXryYnJwdTU1OCgoLYs2ePqHTt6upKbGwsCoVCLwxpaWkpsljd+lE05TnXaDRkZ2dz9uxZqqur9YwruBnZGTduHGZmZiQkJLBixQr27dvHtGnTCA0NvaOIlkQiwczMjK5duxISEsLIkSOJj4/n7NmzHDt2jNjY2EYL3u4UKSkp/PLLL7i7uzNkyJBWLRZUKhXHjh3j3XffJSkpCT8/P1HdVKVSkZuby759+zhx4gSlpaXMmDGjyeJqJycn5HJ5m4u6qqurUSqV95VlKDw8nPDw8BbvX1dXR2ZmJteuXfs/Z1jU1NRw/fp1kbHlYUBdXR15eXn1Qvm6YuX2qmswMjKql4bZHMLDw4mLiyM3N5fAwMAmoxbl5eWsXbsWJycnRowYAcD169fZuXNns9eJi4ujuLiYwYMHi+lro0eP5qmnnhINxPLycrEm7x88PNAtAO3s7FCr1Rw/frzV5zA1NeWTTz5Bq9U+MGm0cPPbPXHiBPv27SMkJKRdDAuFQlHPaLjdoDIxMWlw3mxI9O9+GWLm5uYtTp+8de2ji8A3hMrKSjHqoFAocHJyatHca25ujo2NDYaGhi3S/GkJWm1Y6HLbXVxcWLRoEXAzrHT58mVcXFzQarV06dIFe3t74uPjGTJkCEqlkvPnz9OtWzcxn+zAgQOkpaXxxx9/iNZmRkYGeXl54uLTxMSEHj16iAsDPz8/bG1tKSgoaI97/z8FS0tL3n//fQoKClAqlWi1WoyMjLCxscHHxwdvb+87EmSTSqX4+PhQXFxMQkICQUFBYgjy3LlzGBgY4Obmhrm5ObW1tXqhxqKiIrF25NaFanNKohYWFsyZM4fdu3ezZMkSOnToIBqquijMY489RnZ2NvHx8fz+++9s3boVV1fXdrPA5XI5Li4uuLi40KtXL4YPH865c+c4fPgwhw4duitpUgkJCfz+++94enqKivMtQVlZGcuWLSM1NZWXXnqJvn37Ym9vj6GhIWq1mqKiIuLi4lixYgWrVq0iKCiI/v37N3o+Z2fnO1q4lZWVUV5e3mhR8+3QqX2//fbbdOjQgbfeegu4mS5w6dIlfvzxR5ydnRkzZow4SV27do2tW7dibW3NiBEjsLOzY+PGjRw7dkzPKzVgwACGDx/eoMqrThX12LFjpKeni4bX/v37+fe//6237/jx4+nfv389L7VEIuH8+fMcOXKEzMxM1Go1jo6OREVF0bt37wa92jol4RMnTpCYmEhJSYlYuNqnTx98fHz0FqtlZWUsXryYGzdu8O6774qRXB0qKytZvXo1KSkpjBgxgj59+ojaOqdPnyYtLY1Dhw6J9Na36zvMnj2bLl26PFDaNmZmZjg7O/P999+LlKTV1dWcPn2aa9euMW3atPvWtmHDhpGYmMjGjRsxNTWlW7dujUbnSktLWbhwIaGhoaJhkZyc3CiV7q2oqampF0mZNm2a3gLLyMiIp5566g7u5h88rJDJZE2mo90v5OXlce3atVYr2jcFmUzWrLOtJWJvbakbbE8YGhq2K2OiztGiW1spFIoW19BJJBIsLCzun2GhU9ksKSkhKioKT09P4GbuflhYmLgIcnR0JDg4mOPHj3PlyhVyc3NRqVSEhIRgYWEh0qzZ2tri6ekpLng9PT0xNjYWJ0uFQqG3KJFKpUil0n8UgRuAkZERw4cPv6NzpKamsnz5ciwsLHjyySf1Qo66l8/Ozo7Dhw8zefJkLCwssLW15cyZM/Tq1QszMzMCAgLYv38/27Ztw9zcHI1Gw5YtW3BwcGgVc4pEIsHGxoYhQ4bg6OjI999/z9KlS3n11VdxdXUlPz+f69evY2Jigp2dHX5+fhgbG4uFYncDlpaWdOvWjS5dutCvXz/Gjh3L3r172blzJzk5Oe1mYGg0Gvbt20fPnj1xdXVtMVVpdXU1x48fJyoqiueff77BgaVLly4iRd/169fvqmFRWlrarEDW7VCr1ezYsYOamhqee+45OnTogFKp5OTJkyxevBgvLy+cnJxEwyIpKYnffvuNfv36ibm+VVVVZGZmkp+fz9WrV8nNzcXQ0JBBgwY1algkJyeza9cuCgoKSEtLE5V/dQWBOkRGRtablAwMDNi7dy9nz54lKSkJQCyUDAgIYM6cOfUmfo1GIxpLMTExFBcXY2BggFqtxsDAgB07dvDUU0/Rr18/MYWrurqa1atXc+HCBebOnVuPgKGmpoadO3dy7Ngx3N3dRcPiwoUL7Nmzh7y8PNLT00Ve/dvT+iZOnNiqZ3UvYG9vzzPPPMPKlSv58ccf0Wg0Yl3UkCFDmnx/b0Vubi7JyckUFxc3mdpnb2/faM757SgoKMDOzo5NmzZx+fJlOnXqhIODQ6NK2P/617/0HB41NTVotVoGDBjQaDEx/D8609TUVL1v+vY88QexGP8f3D2888473LhxQ49c5t13322y7khXHxsTE0N6ejpKpbLeeBYQEKCXgaEjg1m7di1nzpyhrKwMMzMzunTpwtChQ/VSasvLyzlz5gynTp0iKSmJI0eOUFVVxcKFC1mxYoW4X48ePZg4cWKr39mWMGE+SI6RxiCTye7I0Xs7dIQ2t56/obmuMRgZGbVrnVirzySXy3F2dqZz584899xz9X7TLf7Dw8M5fPgwFy5c4OrVq7i6uooLS0EQsLOzw8TEhMcee6zeBKl7MW4VeWkvaDQa5s+fL3JQ3wofHx/mzp3bqpf9+++/b1A4RSaT8cknnzxQoUkdqqurWbVqFfv378fFxYWZM2cSGBhIYWEhmzZtwt7enqlTp9YboBQKBf7+/pw+fZrw8HAsLCxwdXVl27Zt+Pj4iKxTkydPZseOHbz++uvAzVDbtGnT2sTCoFAoCAwM5NFHH+XHH39k+fLlzJ07V6Rei42NRavVih/q0KFDG6SwKykpaZHidEugE7Tp2LEj3bp1Y+TIkWzdupXNmze3W4pUaWkp69ato2fPnvTo0aNFx2i1WlQqFZ6eno2+w2ZmZri5uYnpUU3BxcXljgyLkpKSVvHJ6yaNkJAQDh06JNbkVFRUcPHiRczMzDAyMuLatWviMbm5uRQXF+Pq6iq+r0OGDCEsLIzq6mp++OEH1q1b1+R1DQwM6Nq1K3Z2dlRWVrJp0yZ+//13+vfvX2+M8/b2rjdxaTQali9fTmRkJO+88w52dnYolUrWr1/P6tWrqa2tpX///nqLSh0t4MaNGwkPD2f+/Pk4ODiINTKbN29mwYIFmJmZ0atXrzY/B1NTUzH6UVRUxJ9//smuXbuYMGFCPUNCpyPwIMHY2Jj+/fvj5uYmLoTkcjkODg506tSpWa+fVqtlw4YNrF27ltTUVKqrq5t0AERFRbXYsFi1ahXbt28nJyeHsrIyjh49iqmpaYPPyt3dnYMHD9b7zcHBgYkTJzJw4MBGr7Nt2zbi4+NZu3YtR48eBW5+KxkZGdjY2CCRSCgqKqJ3797NFic/KHjzzTeZNWsW4eHh7brA+l9DZWUlpaWlHDx4ECsrK15++eVGDQud4+H777+nsLAQJycnJBIJiYmJ3LhxA3t7e7p3715Pl0Uul7NgwQL27t0L3HT+FBQUiNkKb731ljjnVlVVceXKFeLi4sjKyqK8vBy1Wk1OTo5eBNnb2/t/2kHcEgOptee7fV5qTVSmvcf9Vq3adZ6iESNGiGIvgYGBVFVVkZ+fj4ODgyhaFBAQgJubG/v376ewsJCpU6eKlHMSiYQJEybw1VdfsX37doYMGYJCoSAjIwOJRNJoHUF7QBAE9u3bx8WLF+v9FhkZyZNPPtkqw+LcuXOsW7euHjWpQqHgtddeeyANi7q6Os6ePcuqVavw9/dn+PDhLcp/1NXV5OXl4e7ujlwuZ8yYMfj7+4spSlZWVowcORI/Pz/y8vKQSCQ4OTnRsWNHsWjcyMiIhQsX4u7u3mDqgKGhIVOmTBG9kUZGRkRGRtKhQwc0Gg1GRkY4ODgwZswYwsPDUalUKBQKHB0d6dixYz1LXa1W8/rrrzN+/HgGDhzYboxicrkcLy8v3N3dCQkJYfjw4Sxfvpx9+/a1i9jMuXPnOH78OJ07d25Rsa2BgQHe3t7k5+eLKqu3Q6fq2RK60Y4dO95RX+Xl5bU6bVEmkxEWFsaePXtITk4mIiKC8vJyrl69iq+vL/b29qSnp1NRUYGRkRF5eXkiO42urfb29uJE5+rq2qxzQi6X4+HhgYeHByUlJcTFxSGVSnFxcdGrr2oMGo0GFxcX/v3vf9OjRw/xep07d+bw4cNcu3aN2NhYsTartraW2NhY1q5dK/KMR0REYGhoiFarJTIyEo1Gw8qVK9m8eTMdO3ZslK6zORgaGoo1Xjk5Oezbtw+ZTEbHjh1bdG/3GzoBuqCgoFalBepw7NgxFi1axKlTp7C3t68XFb8drUlPGDhwoEjy0RwsLS0bJGMwMTHB0dGxSaIGnW7S0KFDRZ2Ov/76i759+xIREYFMJiMuLo4bN260uO33G/dKIfz/Mp555hmqqqqoqqpq0jDV4erVq/z1119kZ2cza9YsBg8ejEwmIz4+nq+++oqCggIeeeQR+vfvj5WVlcgylpWVxfr165k7d64o4HflyhW++OILNm7cSFhYGDNnzgT+H2NXZGQkFy9e5IcffqC8vJznnnuObt26iW3p0KFDm8hJ/kHjuJWUR6PRtIpopra29v7qWJibmzNr1iykUqnI6mRkZIS/vz/Tp08X97OwsCA8PJwjR45gbm5OQECAnmdi1KhRVFRUcPDgQdatW4dEIsHW1lbvHHcDMpmMn376SfSmZmRksGzZMj0vaGswf/58pk2bRllZGWVlZSxfvpzTp0+3c6sfDMjlcoKDg/WYBnQLsluh0+Fo6jx9+/Zt8ncdXZ0Opqam9YpwAwMDW2QQXb16ld27d9O9e/e7klspk8nw8vLCxcWFwMBAtm7dysKFCyksLLyj89bU1LBnzx4GDx7cIsPCysqKf/3rX/z4449s27atniiOWq3m7Nmz7Nmzh9DQ0GaLmp2cnLCzsyM/P79N/Zabm0teXl6jRk5D0BkWKpWKy5cvi7mj6enp9OzZEwMDA5KTk8nKysLGxoacnBwcHR1xdHS8r9720aNHExwcrGeIeXt7ExgYyIkTJ0hPTxe3l5SUcOrUKWpra+nRo4doVMDNaK2zszODBw8mJiaGmJgYJk+e3GbD4n8dW7Zs4cKFC4wfP54nn3wSR0fHJg3N5mhpb0W/fv1abJw19G52796dTz/9VHTKNAZdCmpERITodFu0aBGvvfaaqNWgE4f7X4FKpSIrK4v4+HiSk5PJzs6mqKiIyspK6urqkEqlGBoaioWpDg4OeHh40LFjR/z9/UWB2YcZunpVHetfc0hLS+PcuXOEhoYyduxYcX7t2LEj+/fvZ926dchkMqysrPTOV1FRwVNPPcWs/4+9sw6r8u7/+OsczqG7W1oaFGzFwG6dUzfnpku3uXDh4plrF88257rU6Zwxu91sxUYwUEIBAeluOP37w+u+fyIhAtYe39d1LvGcu+P7/eT7/fjjYlluaGgoRUVFfPzxxxw6dEh0LAwNDfH09ASuBjDNzMxQq9X4+Pg0IMW5j46FRCLBysoKfX19lEolSqXypuinKyoqOpQp66YdCyHa9eKLL5Kbmyumpq2srBowDkkkEoYNG4a/v7/IEX7ti2xlZcW0adOIiooSyyVMTEzECL+joyM//PBDg/o9Dw8P3nzzzXalTiUSCb169UKn06FSqcjMzGT79u1tdiyCgoIIDAxErVajUqmIiYkhLi7ujjcH3cf/49ixYx3aQNYc9PX1CQgIwNHRkc6dO/Pyyy+TkZHRrm0eP36czMxMAgICWpU6lcvlGBsb8/rrr7Ns2TI8PT0xNjamvr6enJwcLly4QG1tLZGRkSxbtqyRwf/YY4+JE4O+vj5BQUEkJye3KW1dV1dHbm4uVVVVraY3FdRCZTIZKSkpKJVKMjMzqa+vJyIigrq6OmJiYkhPTxf7IFxdXW9InXurERwc3IjOViKRiKKX1w7aVVVVpKamYmFhgbe3d5NZOy8vLxwcHDh27Ngd51y/l5GUlISenh7PPfccffv27dDS2vaW8Dg5ObVKJCw4OJjvvvuuQQBHoVCQkJBAp06dkEqlnDlz5pZSYd8tqKqq4siRI6xbt46zZ89SWlpKVVUVdXV1KJVK1Go1Wq1WLA2Ry+Xo6+tjYGCAiYkJpqamWFpaMmLECN56661b6lxs2bKFdevWkZOTg6mpKb169WL69Ol3LEigUCioqanB3Ny8wXhsYmKCubk5Go2GqqoqNBpNgwCJRCLh0UcfxcLCQrxeZmZmdO/enfr6evLy8m77udxHYxgZGeHl5UVycrIoIlpaWnpDrZ/KykqKi4s7tDe1TaOsTCbDycnphsw7NjY2LaaWLSwsmjU4DA0NxbSvABMTkxab3FoLQYjNwMAAIyOjdte6SSQS5HK5+LnXIZVKKSgo4M8//yQmJoby8nIcHR0ZNmwYjz32WJOlRsnJyfz111+cOnWK6upqnJycGD58OCNHjmxk9FVVVXHgwAH27t1LUlISlZWVGBkZ0blzZ6ZOndpkNqOuro6tW7eyadMmnn/+eRwdHVmzZg2HDx+murpapO4VFE4TExPZsGEDp06d4uzZs5SXl/PRRx/x448/ioOjg4MDW7Zs6dBaR/j/dPBvv/3GY4891q4ShYqKCs6cOUOvXr1uOEAUFxfzwQcfUFZWRlVVFRkZGaISu0ajQaFQiGVjRUVFSKXSRg7w4MGDRccCIDw8nM2bN7e5Hvby5cvk5ubelG6Cqakpnp6epKWlUVlZyYULFzAxMSEsLIzs7GyUSiXp6ekYGRmRl5dH9+7d77hjYWlp2ay6KTSsd1WpVFRUVGBgYNCspoypqSkGBgZUVVVRX19/P1DRRqhUKuzt7XF1de3w97y9EPoRbwQzM7NGfPTPP/883333HV999RVwNQjw0ksv3ZLjvBug1WpJTU3lm2++YefOnRQUFLToSOl0OjQaDRqNRnTqhbJMiUTSJpHYm8GaNWt45513uHLlCgqFAj09PY4fP8758+f5/vvvW03I0ZGwtLTE0dGRnJwcsrKyxDEzPz+fnJwc5HI59vb2jWwYGxsbXF1dGzhhUqkUMzMzUT/hPu4sJBIJ+vr6REZGkpycDFy1B2JjYxsJGF6P5ORkcnJyOnSOuXVyofdxz6KyspLZs2dTUlKCl5cXcrmcAwcOcOLECVJTU/nyyy/FZZVKJQcOHODdd9/lypUrODo6YmZmRnx8PDExMZw+fZqXX35ZFMsD2L17N/PnzycnJ0cstykoKGDFihXs27ePb7/9ttHLoNFoKCwsFJW9MzMzSUhIwMHBAY1Gw9GjR+nTp48YkRQYV5ycnMjIyCAnJwc3Nzd8fHzEydza2vqWRaz09fXp168f3377LY888kib04w6nY6EhATKyspu6FhYWlo2qRp7M7jWqQDo0qVLu6K8KSkpZGVlERAQ0KrlBSddYJVLT08nMTERKysr/P39USgUmJqakpGRga2tLWVlZbi4uNzxet2bEacSyjQ0Gk2zvTgqlQqNRoNMJmu1QSzQ9d7H/8PJyanNGbe7GdHR0fj5+ZGZmYlOp8Pd3b3V/R73GrRaLRcuXOCNN94gJiam3dlnnU53S/uLtFot33zzDWlpaSJRgFqtprCwkJiYGHbv3t1qlfGORHBwMEOHDmXx4sW8++67DBs2DAMDAw4cOMCBAweYMGEC/v7+jZxdMzOzJqnh7/VSsn8bDAwMGDt2rMi+lZuby7p16xg4cGCzFL1arZYDBw5w8eLFDj2W+47FfTTCmTNn6N69O8uXL8fT0xOdTsf58+eZOHEiGzZs4IknnhANxUuXLvHf//6X8vJy3nnnHcaMGYNMJiMnJ4evvvqKFStW4O3tzVNPPSXWL/fs2ZNXX30Vf39/MUKiVqv58ccf+eKLL/jxxx+b9bKzs7PZsGEDQ4cO5c8//8TOzg6dTkdJSQm2trZieUJQUJAoGPjRRx+RlpbGgw8+yOTJk8WX7FYqlQoRhOjoaGbPnt3AGbtZJCUltYpdyczMjBkzZiCRSBpFH1r73fXlHd27d8fY2LjNk/mlS5fIyMi4qT4LmUxGWFgY+/fvJykpiStXrhAYGIiZmRm2tra4u7uTl5dHcnIyEomk3bS4txsmJia4uroSGxvbbBlBQUEBFRUVODk5YWZm1ohFRKFQNBJ4UqvV95T43e3AiBEj2L9/P1u2bOG5555rNkPUFhQXF6PT6RooYl8LoT8oPz8fFxeXBqKh16K6upqTJ0+yZ88eMjMzcXZ25pFHHiEsLIy6ujqR3vNalW+lUom3t7cYCJDJZP9aQy8nJ4dPPvmEvXv3dkh03NjY+JYSxOTk5DRwKq5FRUUFp0+fviOOhZ2dHc8++yxVVVWsXLmS2NhYDAwMcHBw4Pnnn2fatGm4u7vfdyDuUcjlcnr06EFoaCjnzp2jpqaGXbt28dtvv/HMM880ChDqdDp27tzJunXr2t0Pej1um2Oh0Wg4efIkO3bs4MSJE2RnZ4v1foIid3R0NIMGDWqyfEqtVpORkcE///zD4cOHRU5yqVSKra0t/v7+jBo1isGDB3eo8MjtRkpKCps3b2b//v2kp6ejVquxs7OjW7duPPLII4SHhzcrwiRAoVAQHx/P0qVLRd5pGxsbevTowbRp0wgMDGzREFOr1bz99ttERESIE6aZmRkjRoxg7969nDt3joCAAOrq6jh16hSnTp3ioYceEsukBDXRCRMmcO7cOQ4cOEB0dLSYznd0dOSBBx4Q+d6FgWvOnDl8+eWXLSrIVldX4+bmxuOPP05QUJA40To4ODTYloGBgXidBIpZExMTrK2tb0rNuj0QtD+efPJJVq9e3Waj78qVK9TU1NxwOalUelPNp62BpaUlvXr1YuvWrW3S6aitrSUhIYG8vLxW1xbL5XJCQ0NRKpUkJiZSUFDA5MmTxXfdx8eHw4cPU1tb26i3q72QSqXo6+ujUqlEjveOnliFd/H333/nzJkzFBYWNqJIjo2NJS0tjZ49e4olC2ZmZuKzm5qaSufOncX/C9oUiYmJzWa29PT0kMvlKBQKsbzq32Q0CGq612LMmDEkJibyww8/kJmZyUMPPURgYGCzirQ3QwO5fft2vv/+e+bMmcP48eMb9djA1VLAcePGMWfOHObMmdPk7wsWLGDVqlXU1tai0WgIDw8XAysXL17krbfeomvXrrzwwguirtPDDz/MggUL8PX1vSd4+9uKmpoa/vnnHzZs2NCiUyGVSnF0dMTFxQVzc3OkUil1dXWUlpaKdMDC+NW7d++bKs28WVRUVDSbIVOr1TdFwd2R0NPTIy0tjXPnzjFt2jRefPFFrKyskMlkGBkZiWWz93FvQiKR4ODgwFtvvcUjjzyCRqMhOzubjz/+mPj4eCZPnoyvry8A6enpbNu2ja1bt3LlyhVsbGyora1tlZ3RGtxyx0Kn05Gamsrnn3/Oli1bqKioaDQBSCQSjhw5wl9//cXSpUsZN25cg23k5+fzww8/8PPPP1NdXY1Go0Gr1YrbyMrK4vTp06xbt47hw4fz4YcfEhQUdM9MmjqdjtraWv7880++/vprUaBLp9Oh0+nIzMwkPj6eP/74g2effZa5c+diZWXV6PyECNmiRYv45JNPxGsFV6/R2bNn2bp1Ky+88EKLdKh+fn74+vo2EHqSy+V4eXmxe/duysvLgataC3FxcZibmxMcHIy+vn4DyjJnZ2fs7OxIT09vQDsqGG/CPRTuo7GxMTY2NigUCtRqdZMlODKZDB8fH4KDgxtMqHfr5CqRSHB0dGTy5MksWLCgTdsoKyujsrISjUbTKkXR+vp6Tp8+zaZNm0hJScHc3JyHH36YESNGUF9fT1lZGXK5vBH7R3PHP3LkSLZv395mAcBjx45x8eJFnJ2dW/VOCgQREomEgwcPIpPJRKpRa2trvL29WblyJXl5eXTp0qWBYyE8T8Izde2/Qs214IA2dSzGxsaiA5SQkMCxY8fo3r27+Htr6+JbgpGREd27dyc6OpoDBw6wYMEC5syZg42NDWq1mr///ps//vgDhULBuHHjxKi0oaEhISEhJCYm8sUXXxAUFCT+lpSUxJw5c1os+bGwsBBLB48fP05CQkIDRqKOOLc7iTfeeIPffvutwXdCE29lZSW//fabSFjQ3HM4YMAANm/e3Kr9nTt3joKCApycnJpt5Pb09MTQ0JC9e/c2ciyKiopYtmwZS5Yswd/fn2HDhnH69GmRLhquUhZbWlpy8OBBpkyZIjoWlZWVYibr3wqdTkdhYSG//PJLs06Fq6srkydP5qGHHhLpsYVrcu1YUFhYSHJyMidPniQkJOSWZnhaYpySyWTNZq5uNSorKzl69ChVVVWiKGNz42BHQC6XI5PJqK+vbzLDerchJyeH77//ntLSUiorK6msrKSiooLKykry8/PFnp6ioiJefPFFPv74Y8zMzLCwsMDMzAxzc3PMzc155ZVX7hhLob6+PkOGDOE///kP8+fPR6PRkJ+fzx9//MHq1avF8V2r1YrltuPGjSMyMpJVq1Zx/vz5DjmOW+pY6HQ6zp49y9tvv82uXbuAq02JXbp0ITQ0FCsrK0pKSkhLS+PkyZNYWloydOjQRtsR1JWrq6uxsrKiS5cudOvWDScnJzFqfvDgQXJzc9m0aRMeHh689tprHRrJvJWoq6vjt99+Y/78+ZSVleHm5sagQYPo0qUL+vr6XLx4ka1bt5Kens4XX3yBSqXi3XffxdzcvMHDK4hyvf3226jVauzt7YmOjqZXr15IpVLOnj3L3r17WbBgARqNplkjQuBNv/7FEIxQwVirr6+noKCA7OxsXnnllUb1/YIx5+HhIU4MQrPXsWPH2LRpE2fOnCE/P5/q6mrq6+spLS1toLZ+PUxNTbGzs7tnIisSiQRjY2OGDBnSZscCEIWGWjpvnU5HUVERX331Fd999x06nQ6tVourq6uoCZKbm8sHH3xAbW0t7777bqOm0KYwatQoXn755TbXqZ87d46EhAR69uzZajVQIyMjPDw8OHnyJBEREeJx6unp4ejoiFQq5fLly4wePbrBe37q1CkOHDhAbm4ulZWVnDhxgpqaGrZv305hYSHW1tZYWloSFRXF4MGDG+1XcGJGjBjBP//8w9ixY8XG3+rqat566y2RWrGtEBS533rrLd566y2+/fZbli1bhqOjI9XV1RQUFGBoaMjcuXMZPXq0mHmTSCS88MILnDp1iri4OCIjI8Vyv8zMTDw9PZkxYwY7duxocr/6+vr06tWLvn37sm3bNo4ePYqTk5Oo2vrLL7/c0/oCwnjTFK41/FtykG/GeS4pKcHZ2RlLS8smjQhB4LVTp05NEjhcvHiRzZs3M2LECL788kvc3Nz46KOP2Lp1q7iMwKgYFxfXoByxW7duJCYmYmZmJo7LgubHvwUqlYpz584RFxfX5O/h4eG89957jB49WiSoUKlUYp/WtWOlmZkZXl5ejBgx4pYa03BVDNHZ2ZmSkpJGGTRzc/MGVOxarRa1Wo1Op0OtVotjrFqtFrUFhOfo2vlaYL8S+qoEo12hUIh9VlKptIEDpdVqxV7F8+fP06tXL9GGEDJ1wnXriOtjZ2eHo6MjBw4cIC4ujoiICExNTdHpdMhkMuRy+V0VyCgoKODbb79tRJZx/T0U2Ajz8vIaXCfh70ceeUSsoLjdEJgIX3rpJSwtLfnqq68oKipCrVaLjpFwr01MTJg4cSKvvfYaCoWCnTt3dthx3FLHoqSkhB9//JE9e/YgkUiIjo7m3XffpVu3bo1qUisqKkQWm+thbm7OuHHjcHV1pVevXo3YqHQ6HZs3b+a9997j3Llz7Ny5k6lTp94TjoVWq2Xfvn0sXryY0tJSBg8ezAcffECPHj0aPJgvvvgiTz75JAcOHGDhwoUMGTKEwYMHNzD2c3JymD9/PiqVCh8fHz788EOmTp3aYDvHjx/nvffeY/fu3c2yANxss66FhQU9e/bEx8enyd9tbGxEGmGlUskHH3zAr7/+irGxMQMGDGDEiBHY2NhgaGjI7NmzW9yXVCq9Z5wKAXK5HE9PT0xNTdvcqyA0o7eE2tpa1q5dy8KFCwkMDGTixIkUFRWxbds28V536tQJf39/Vq9eTVpaWqscC2dnZ7p3787BgwfbdOxqtZp//vmHqKgowsLCbjjgCgZSjx49xMZvwdkUeioExjhvb+8GZS2nT5/mzz//JD8/X/zOysqKnJwcioqKxGZorVbbpGMhkUgIDg7mv//9L35+fuzZs4eSkhKMjY0bCdVJpVKsrKyaZFIRtiVoEFxfJqOnp0dUVBQrVqxgxYoV7Ny5k5ycHExMTJgwYQKPPvoovXv3buSIde3aldWrV/Pjjz9y8OBBiouLcXBw4KWXXuKZZ55h7969HD58uEmyAIlEQr9+/fjiiy/4/vvviYmJoaCgAAsLC4KDg29IDnC345133mk3M9LNGOYqlQp9ff0Wo99CYKGpMsiysjLKy8vp3r07Hh4e4vLXr29tbS3SqQro1KkTL7zwAqGhoSLDkJWVFZ999lmrj/9uR01NDXv27GlynhI0r8aOHSsap9u3b2fHjh1YWVkxY8YMUawXuOXOxLXQ09PjpZde4o033qCsrEwM4pmZmREVFcWoUaPEZdPS0ti8eTNFRUVUVFRw4sQJADZu3EhWVpbInDllypQGBCg7duzgzJkzlJeXU1ZWRnV1NRKJhHfeeQd7e3vMzc3x9fVl6tSpYrmkENS1s7Pjk08+EZ8VYRzr2rUrs2bNYsCAAR1SUuvi4kL//v2JiYnhs88+Y+XKldja2lJXV8eIESN49tlnb8gsCleda6FU1MrKqsn539TUVFzG1NS0SYfF2tpaXKYpkUw9PT2xYqI9aMp+unauAFpkBROybMIzKwRTDQ0NGwQSmoMwZrzwwguMGjWKtWvXcvDgQTIzM0WWvIiICCZOnEjPnj0xMTGhuLgYNzc37O3tkclk7ablvqWOxaFDhzh27BgqlYo+ffrw0UcfNVBfvBYWFhaEhYU1u62mhNgECOUaO3bsIDExkcuXL1NZWXnXp94ASktLiYmJ4fz583h5eTFz5sxGTgVcjYK88MILJCUlkZ2dzaJFi+jbt6/YjKhQKIiJieHy5cuYmJgwePBgpkyZ0mg7PXr0YPLkySQmJra70dPQ0FBsLh0zZgzPPvvsDa/3sWPH2LJlCxYWFqxcuVJUjoWrE8nzzz/frmNqCtemxu8U9PT0sLa2brNjcW15T3OoqKhg+fLlhIWFsXr1ary8vNi4cSPbtm1rcByOjo5oNBpKSkpavf8ZM2YQExPT5nKo/fv3c/LkSTp37tyqrIWlpSULFy5k4cKFjX6LiIhg06ZNTa739NNP8/TTTzf6/qeffqJfv36t0gMRBMdu1HBva2vLxo0bm/1dX1+fH374ocX9eHp68s477/DOO++0uK9rERQUxA8//CDy9l87SU6bNo1OnTrxn//8p8mafqlUSrdu3Rg5ciQDBgxg3Lhx97xDIeB2q/laW1sTHx9PWVlZk+QEOp2Ouro6kcHsegjrGBoaNjtX6XQ6qqqqGgVUHBwcGt3fju6vutOoq6sjNja2yd9CQkKIjo5GKpWKKsNnzpyhd+/ejB8/HhMTEyorK8Vovrm5OQYGBkgkEjHAoNFoxH4qiUQiOgAymQwLCwsUCoVYTixQQ9fW1ooOnp6eHqampk0aYY8//jgGBgYsXbqUzMxMbGxsGD9+PLNmzWoQZMjIyGD58uUN+i46depEUVERf//9N3D1ne3Zs2cDx+Kff/5h9+7d4rEIfVjHjh0Tl+natSsTJkwQz/H06dNs2LBBDPIKGioqlYq8vDxOnTrFk08+ydKlS4mOjkYul+Pq6tpsZsHAwIBOnTo1W2EgkUiYPHkylpaWLF++nKSkJIqKirC3t8fNza1VTrxcLic6OrpFsTeZTMa7777Lu+++2+K2Dhw40OLvYWFhZGVl3fCY2gIbGxu2bNnSqmXLysqoq6vD2toaIyOjm54fBMhkMvz8/PjPf/7Df/7znxaXtbW1ZeXKlTe9j2b33WFbug4ajYaEhATS0tLQ09Nj0qRJN1QYbQ/09fVxdnbG1NSU8vJylErlPeFYpKeni6neLl26tBjR7dOnjxidjYmJaXCOgnAYXH1IBg8e3ORgIJFICAkJwd/fv92OhaWlJZGRkSxfvpxTp06JYizXGvIKhUJkSJJIJOTm5lJbW0tERAQuLi7iZKnRaEQNjKaaINsDExMTpFKpaADcCbQ3YmZsbHxDg1ihUJCRkcGECRPw8vJqdjkTE5NGom03wpgxY3ByciInJ6fV61yLuro6Nm7cSLdu3QgLC7slKXCdTkd5eTm1tbXU19ejr6+Pg4MDtbW1DB8+HHt7e1G7o7S0FLlcjpmZGUqlUmQVKy0tRa1Wo6+vj5WV1V2tSxMfH09WVhaTJk266WdrypQpt+io/ncQGhrKli1b+Pvvv3Fzc8PV1VXMXmi1WiorK9m5cyepqalNBkzMzc0xMTHh0qVLVFVVNaq91+l0FBcXk5SUJNJ4C5g6dSpKpZKamhp0Oh0mJiY3JPW4lyDMHZcuXWr0m1QqpVOnTqI9UVFRwb59+zhy5Ajnzp1DpVIxYMAAduzYweXLl6mvr2fkyJEMHjwYIyMjZs2aRa9evSgvL6dz587ExsZiZWVFWloaTk5O2Nra8uqrr3L69GnWr19PXV0dXl5eTJgwgT179nDhwgWsrKxwdHRk9OjRzZJSTJs2jWnTprV4nkOGDGmRrKQ5tBSwaArp6eksXLiQCxcu8MEHHzBu3LgG84lWq+W///0vX3/9NQcPHiQiIgI/Pz+OHj3a5PakUilhYWE3FIA1NDRk7NixjB079qaO938VOp2Of/75h7S0NB5++OEW5/G7GbfMsSgvLycnJ4e6ujpcXFzw8fFpd0RFiExUVlZSX1+PUqkUGzJ1Oh1lZWUN6gnvBRQVFYkvp1QqJS8vj7q6umaXF2qICwsLqaqqEiN0KpWKlJQU4GoqsCUhQQcHB+zs7Np97EZGRnTr1o1+/fpx6NAhvv/+eyZMmCAarrW1tSQlJeHm5kbXrl0xNDTEzc0Nc3NzLl26RHJyslj3WVBQwPz581tdg38z8Pf3x8jIiH/++Yfo6GisrKzEaOH1ug23AoLKe2VlZZu30RrHQoCBgUGLEdCamhq0Wm2r2bEkEglmZmY88sgjfP755zd13Ndi7969/PPPP3Tq1OmWRMnVajUrV64kLS2Ns2fP4urqyvvvv8+FCxdYsGAB7733Hn369EEikYiZhhkzZnD+/HkWL17M7NmzWbZsGWq1Gmtra8aPH09QUFCHH6cArVZLeXm56ORUVVVhaGiIo6MjpqamKBQKCgsLqaysRCKRYGtri42NDVqtlpycHNatW4dEIiEgIAB9fX38/PzEbatUKrKzsykvLxeFr6ysrFAoFBQXF1NaWioKZsnlcjQaDVeuXEEmk1FbW4tCocDS0hInJydkMhk1NTVkZ2ej1Wqpr68Xj/NO64fcSQwePJht27bx008/UVRUxMSJE3FychL7cfbu3cvXX3+Nm5sbU6dObbS+m5sbkZGR7Nu3j6VLlzJs2DAqKipQqVQUFxeTkpLCmjVriIuLY/LkyQ1EIKuqqjh27BhnzpxBp9MREhJC3759m2W7utcgZGpKS0sb/WZiYoKzs7M4V1hbWzNp0iQyMjLw9vZmwoQJHD58GLVazUsvvYSJiQlvv/02Xbt2xcXFhby8PCZOnIinpydlZWVcuHCBqKgoKisrGTJkCEePHqW0tJTz58/j7u5O//792bt3L/Hx8VRUVODr68tjjz3WodTFtxpZWVnExsbSrVs3evfu3WguEeZCc3NzsZ/vPm4vysrKyMnJ4fjx4+Tm5hIWFkZ5eTkWFhY4Ozuj0WgoLS1Fq9VSVVWFra0tEomEwsJCzM3N8fDwEOf3goICcZ43NjbG3t5eLL8qKSmhuroauVxORUUFSqUSIyMjnJycMDU17ZBg/C1zLKqqqsSyD3t7+3YxIWi1WioqKkhOTiY2NpZTp06RlpYmGtdC/alSqbxnHAoBNTU1IsvS2rVrWbt2bavXvdZQ1Wq1lJWVAVezNy1R7gqc6B0Bb29v5s6dyyeffMLSpUv566+/sLW1RavVUlxcjEKhYO7cuWJNfJcuXRg4cCDr16/n1VdfxdvbG5VKRWZmJpGRkfTt27dNEZyWEB0dTb9+/Thw4ADTp0/HxcUFrVaLnZ0dq1at6tB9NQWtVktpaal4n28W+vr6mJiY3NCx0NfXx93dnfPnz5Ofn99IjVrQ+0hMTMTIyKjFJvnrIZPJeOihh/jll1/afB4qlYrFixcTEhLC4MGDOzzCWldXR2VlJb1798bLywtbW1usrKwYPXo0hw8fFrMPUqmUoUOH8tZbbzFhwgROnjxJjx49OH36NEZGRowbN46TJ09y5MiRW+pYqNVqtm7dysqVKwkLCyM1NRU9PT2mT5/O8OHDOXXqFOvXrycrK0vMNM6YMQNjY2OWL1/Ojh07MDAwIDs7GwsLCzGKKZFIKC4u5pdffiEpKQmNRsPw4cOZOXMmxcXFbN68mT/++IO+ffvy6quv4uTkRH19PW+99Ra2trYoFApycnKwtrbms88+w9nZme3bt7NhwwYMDQ2JjY3F2tqaDz744J5u9m4vPD09ef7551EoFGzatImlS5diYmKCTCajoqICQ0NDPD09efnll+natWuj9Tt16sTDDz9McnIyH3/8McuWLaOmpoaSkhJ+/vlnqqqqyM3NJTw8nAcffLBBMGjz5s2sWbNGzP798MMP5OXl8cQTT9zOS3DLoNVqmy3VNDU1bbK07FpUVlZiYmKCvr4+5ubmVFdXi7aBoaEhLi4uogEl9D8YGhqKwc/6+nqys7NJSkqiuLgYU1NTPDw8yM7OxtbW9p5yKgAxAKtQKKitrW0QeNLpdFRWVpKYmEhVVRUuLi7/KhKAewXx8fH8/PPPxMbGUltbS1paGgYGBkRFRTFr1iyys7P5+eefMTY25vTp03Tr1g0bGxsOHDiAlZUVq1evRl9fn8TERL799ltycnJQKpVYWloyatQoHnvsMUxMTNi2bRtbtmzBzc2N9PR0sYdw5syZjB49ukOCE7fMsbiW4eBm1GOvh1arJT8/n5UrV/Lrr7+Snp6OpaUl9vb2WFtbixE1mUxGRkYGGRkZLVKp3m3QaDTidbK1tcXe3r7VHuO1ZRpCVBxuzMWup6fX5O/m5ub07NkTS0vLRgOLVCrF29ub/v37N0j9ymQyevbsyQ8//MD27duJjY2lqKgIfX19wsPDCQ8PJzo6Wtyeqakpb775Jj4+Phw/fpyysjIsLCyYNWsW06ZNY926dVhYWDTZWOXq6kr//v1vOj1oaWnJl19+yZ9//klCQgLl5eVYW1uLzs6thkKh4PTp023u8RBK/G70XAi9Lj///DNfffUVkyZNIjs7G7VaTUFBAadPn2bfvn38888/dOvW7aZKE6VSKT4+Pjz44IONKD1vBqmpqfzyyy84OTkRGhra7iaxa2FmZoaRkRGxsbGYmJgQFRXVpAEgkUiwsbHB0tKSM2fOkJCQwJw5c9i6dStnz54Ved2vpZm9VRCCIpMmTSIkJIT//ve/nDx5kqCgIFasWIGvry/z5s1Do9Hw/PPPc+TIEcaNG8e8efMoLi7G1dWVV155pUFJoU6nQ09Pj379+jFv3jzWrFnDrl27GDVqFK6urjz33HOoVCoxECGgtLQUNzc35s2bh4GBAcOHDycxMREHBwd+/fVXXn/9daKiovjjjz+Ii4v7n3YqBAwdOhRXV1c2btzIiRMnKC8vR6vVYmBgQEBAAFOnTm1WjE0mk9GvXz8+/fRTlixZwrlz51Cr1RgbG5OTk4OFhQVjx45l1qxZhIaGNigf/PPPP/n8889F8oWUlBSeffbZf41jITCVNQW5XH5Dw9fb25ukpCQuXLiAnp5eg96u1syvFhYWhIaGYmNjQ//+/TEyMsLR0ZHDhw/f9eXVTcHJyYng4GASEhJYtWoVQ4YMwcjISIxwnzhxgr/++gtLS0v69Olzxyhx/5fRv39/evTowYcffkhubi5vv/02np6e6OnpIZPJyM7OJjExkaeffpoBAwbw5ptvMm3aNL755htGjx5NUlISXbp0wcHBgZEjR9KlSxekUinr1q1jw4YNREZGinPamTNnMDMzY+7cuVhaWvLdd9+xbt06goODCQ0Nbfe53DLH4lqBspqamjZ32tfU1LBlyxY+/PBDlEol4eHhjB49mt69e+Pp6YmNjQ0mJibI5XLmz5/PwoULm0yf3q0wMDDA2NiYiooKBg4cyMyZM1sdLXB1dRX/vlYcTSgZaw4qlarJVGfnzp2bNRrlcjkzZ85k5syZjX4Tal6fe+65Vh23oPTZVN3xE0880eTkaGRkxPjx4xk/fnyr9nE93N3defvtt9u0bnsgpPT/+eefNm/D3d29VWWEpqamPPzwwyIz0tatWzE2NqasrIx169axceNGsrOzCQgI4MEHH7zpMjBDQ0OeeeYZduzY0eZeC7jK3uLs7Mxrr70mDpwdAbVajVKpxM/Pj5CQEKRSKbW1tRQUFFBUVERqaioODg54enqir6/P8OHDWbNmDfb29ri6uhIaGkp9fT1Dhw7F0NDwtrHKeXl5ER4eLvaE5OTkkJmZSX19Pb6+vmK5UXBwMBkZGdTV1d0w42hjY0NUVBT6+voio0hriAP69++PjY0Nenp6ODk5icJinTp14vz58xgaGlJSUiKyGN0HBAYGEhgYKJY7qtVqzM3NRWHOlmBgYED//v3p2rUrFy9eJDU1lZqaGkxMTPD19cXPz69J51ij0YiBJYGO9F7L1reEawNl10NPT6/JMk5vb28xS+vn54e/vz/nzp2jvr6eBx54QCwFEejX4WqWV9AKCQgIwNrams6dO2NhYUGXLl0oLi5mx44dODo6EhUVhaen5z1Z/ufr68ujjz7KwoULWbx4MWvXrsXS0lLs46mvr8fJyYmnnnqK8PDwDg343EfrIJPJMDQ0FAPxhoaGjUrDDQ0N6dWrF87Ozrz99tuMHDmSkJAQ7O3tyc/PRyqVYmdnR1hYGAUFBSgUCvT19dHpdOTl5YnbcXJyYtSoUWLQY8CAAfz555/tKtducC4dspUmYGlpibW1tdg3UFhY2KzoWUvIz89n7dq1VFVV4e/vz9y5c3nggQcaGSNCM+q9VhtoYWGBvb09eXl5mJiYEBIS0sBhaC309PRwcXHh3Llz1NXVkZOT0+zkX15efsfUP1uCENG/FyNCzUEgMbgRI0VL8PX1bVV6UiqV4uHhwWeffcaSJUs4efIkJSUluLi4iDXzY8eOZerUqfTp0+emDXo9PT38/PyYOXMmn376abOaATeCVqtl2bJlmJmZMWvWLDw8PDrEucjMzERfX5+CggLKy8u5cuUKTzzxBKmpqdja2lJQUEBqaiqdOnVCJpPRo0cPDh06xJgxYzAyMiIsLIy8vDwOHTqEtbU1PXv2vOlekOuFP1sDmUzWyFASSmrKyspEXvXi4mL8/PzEMVToh2gKwsQkHEdrj8XAwEC8F9euM3r0aL744gtqamowMjLioYceatX2/pcgl8tbLEFtCWZmZkRERDTQOGgJffv2Ze3atXTt2hWJREJcXBwDBgxo077vVtxshnfChAni3xKJhFGjRjWgdhXw8ccfi3+bmpry6KOPAog9SgEBAcDVUrfrGebu1WZaY2NjRo8ejbu7O/v27SM9PZ3q6mpkMhldunTB19eXqKgo/Pz8/lUkAP82CL2WQlBB0CGRyWSoVCrq6+v5559/2L59O/D/FT/V1dUNbGNbW9sG5YSGhoZiuVxH4JY5Fqampnh7e2NjY0NRURHHjx8nKiqqWQaF5lBTU0NqaipwtSa1X79+TRoh5eXlZGdntxipvxvh5uZGUFAQZ8+eJTExkcTERJydnW+aNcfAwICuXbuyc+dOKioqiI2NpXfv3k0aFBkZGVy5cqWjTqHDsH//fkxNTfHz82uR5/legU6nIz8/n++//56qqqo2bUMqldKlS5dWR8kE4/+DDz4gIyOD1NRUqqqq0NfXx83NDT8/PywsLNp0LHDV4J06dapYNtRW1NfX8/3336NUKnnmmWfo3Llzu52LgoICDAwM8PHxwdjYmPLycoyNjZkwYUIDo0OAvb09X3zxhfh/Ozs7pk+f3qZ9C4xcKSkpREVFtesaC8cWERFBUlISf/31l9iwFxERIWYrQkJC2LVrF+vXr8fCwoJhw4bdcLs5OTkkJSVx/vx5scE4MjJS5FdvDnl5edjb2+Pv749EIiEtLQ07O7v7Rsg1uFHGoLkxXWjKzM7OFjMecrkcCwsLXF1dsbS0bPRuPPHEE3z33Xds2LABuGootFfD4z7+3TA0NKR79+63pcTzPtqOlujxr7fnrh9TysvL+fLLLwkPD2fu3Lk4Oztz4MABPv300wbLtac9oTW4ZY6FRCKhW7duhISEsH//frZu3Yqvry+TJ0/G1ta20QXRarUUFRVhYmLSIPUrlUpF70yhUFBVVdVIVKWmpoa///6b+Pj4ey5j4erqSp8+fdi9ezcXLlxgw4YNuLq64uvr2yTVZX19PZmZmTg4ODToRTA0NKR///58++23lJaW8vfffzN8+PAGIkFwlYXq4MGDTdL43Wl8/fXX1NTU0L9/fyIjIwkMDMTNze2eTMvqdDoqKipYvHixGD1oCxwcHOjcufNNM6oZGBjQuXPnFtnB2gIhKzJ79mzefPPNm9LCuB719fX8/PPPlJSUMGPGDKKiopDL5W3OWAUGBlJSUkJhYSEajYbBgwc3amDvSAhj1qVLlzh37hxHjhzh0KFD/P3332IkqSVIpVKCgoIaZKMCAwNxcXHB0tKSBx98UKS3lEgkPPLII4SGhorjwsiRIyksLOTs2bPY2dkxbNgwJBIJTk5ODUoGXV1diYqKwtLSkpKSEpKTk8XG9qysLFxdXbG3t2f06NENsqXDhg3Dy8uLoqIi0tLScHd35/Tp0ygUCsrKyjA3N6dLly4de1HvMWRnZ3Pu3Dlyc3NbLPc1Nzdv0mmtqKjg5MmT7N27l4SEBPLz81EqlSLrVlhYGIMHDyYyMrLBvOjq6sqHH34oBojc3Nz+FU6eoNdTU1PTYWUZ93HzEDKkWVlZFBYWiplTlUqFVCoVCUUsLS2xtbXFyckJa2vrW07PrdFoqKioIDs7W8xM19TUiNT7Qn+cIEzq7OwsMt/dTggkGWZmZjz44IOtntOkUqlYGp+bm4uNjY1YItUaqNVqiouL8fHxwcbGRmSZut0VKrfUYgsNDWX8+PGkpqZy+fJlvvvuOzIyMoiMjMTBwQG5XE59fT3V1dXk5uaSlpbGjBkzGqgBm5mZERISQlpaGqmpqfz555+MHTtWpF0sKCggPj6ev/76S+xubylrIQxcCoUChUJBSUmJKDKjUqkoKSnBwsICAwMD9PX1b+jV6XQ6lEolCoUCpVJJXV2duI+SkhJKS0vFbTX1cBsbGzNo0CDi4uL466+/WL9+PZWVlURHR+Pu7o6xsTFarZba2lpKSkrIysri3LlzzJkzh65du4rHJ5PJCA0NZdSoUaxevZqTJ0/y+eefM3HiRFxdXUWmmCNHjrBr1y40Gs1dV3JUW1vL/v37OXToEL6+vvTu3ZuIiAiCgoLo3LkzDg4Od90xN4fi4mIWL17MwoUL2+Xs9u7dGzc3t1ZlsIRB19jY+Jayeghp9dOnT/Prr7+26/yUSiUrVqwgNTWVGTNmMGzYsDZTAFtZWd1yvnRBAyM1NZWkpCTOnj3LqVOnOHPmjNjD0Npad6F591pERUU1+P/kyZObXd/e3p65c+c2+E4qleLn58drr70mfif0AMBVIa3mmK5eeOGFBv8XykD27dtHQkICW7duRV9fn+zsbObNm8fly5f/px2LvLw8Fi1axJo1a7h8+TJSqZS6ujpRy0KpVCKRSHBzc6Nbt26NHIvq6mr27NnDF198QVpaGp06dRJV3BUKBdnZ2Rw5coSDBw/y1ltvMXDgQLHmWqid9vHxQafTodFoRBrguxlqtZra2lqRNVL4V/hb+JSVlTWbEa2oqGDXrl1tYqcbM2YM3t7ebY7WnjlzhhMnTrRZ6NTGxoZx48bdlj4NjUZDampqA4FUuDoG9OnTp8lSabVaTWpqKrGxsZw9e5YLFy5w5coVkb5UoVCIZZbm5ubY29vj4uKCl5cXPj4+BAQEEBwc3OEBHYVCQWpqKvHx8Zw/f56UlBQyMzNFOm6hXFQul2NqaoqNjQ2urq74+PgQFBQkEsm0l061urqauro6TE1NW6TGz8nJ4ZVXXsHDw4MHH3yw1duXSqWEh4dz5swZli5dSqdOnQgNDW00LzQHQRx5//79orjj5cuX21Re3x7cUsfCxMSEiRMnUl1dze+//05aWhrffvstrq6uODo6oq+vT11dneiBqtVqRowY0cCxsLOzY+LEicTFxZGdnc1vv/1GbGws9vb2aDQa8vLyuHTpEt7e3jzwwAPs3r1b1HO4HgqFgp9//ll8EOvr6ykpKRF1JLKzs/nmm2+wtbXF0NAQAwMDsWnr+si/SqVi06ZNXLx4EYVCIW4vPj5erFP76aefcHJyErdlYWFB9+7d6dOnT4Nt+fr68swzz6DRaNixYwerV69m//79uLq6Ympqilarpbq6msLCQvLz89FoNDzxxBON6rmtra2ZPXs2ubm5HD58mNWrVxMbG4uHhwdSqZT8/Hzy8vLo2bMnrq6u7N69uyNus4jc3FwKCwvx8/NrF52tRqMhOTmZlJQU1q1bR0hICF26dCE0NJSAgAB8fX2xs7O7JSJr7YVWqxUd3UWLFrWZmhX+3+lsbflgVVUVv/32GyYmJjz++OMdLjQoQCKRYGdnx+OPP86FCxc4ePBgu7d54sQJ0tPTOXnyJKNGjRIb1O4GqFQqCgoKuHTpEqmpqSQnJ5OQkMC5c+coKir6VzXNNgVHR0dsbGz47bffkMlkVFZWYm1t3SHsIfcyDhw4wIoVKzAzM+Ppp5/GwcGBb7/9lsjISCIiIigsLGTXrl34+vry4osvNlo/IyODZcuWUVJSwqxZs+jdu7c4L9bX1zcYx3///Xc6d+4sqi+vXLmS4cOHi8EWocn48ccfv92XodWoqalh48aNnD17loqKCiorK8V/hb8rKioaUMM2hdLSUtasWcOaNWtu+hjc3d3bRRhx5MgRPv74Y/Lz89u0vr+/P3369LktjoVWq+Xs2bMNggxwVWFa0D24FsXFxezZs4etW7eyf/9+CgoKmrwPWq0WlUpFVVUVOTk5nD59Grha/t63b1/mzJnTYY6FRqMhKyuLHTt2sG/fPk6ePElOTk6z/TeCgy3owOzduxczMzPCw8MZMGAAI0eOJDIyss1VECdPnuTChQsMGTKkkU3YUejTpw9SqZSzZ8+K6vBSqRQ3NzcefvhhkYxj9uzZoujr448/TufOnTE3N2f27Nmi4+3s7MzAgQOpra3F3d0duFpCK1DTC+jcuTNTp05t8F17cMtrTFxcXHj88cfx8PBg9+7dJCQkkJWVJZYtGRkZYWZmhr+/P6GhoY0edhMTE4YNG0ZlZSWbN2/mwoUL7Nu3T1QbdXV1ZdiwYUyePBk7OzvRIG0KCoWCjz76qNnyjYKCAv74448G3wmMEdc/REqlkmXLlrFjx45mH/K//vqrwf9tbGx48cUXGzkWenp6RERE8MYbbxAaGkpMTAyJiYlcunSJmpoa8TrY2dkxYMAAQkJC8Pb2bmRYy+Vyunbtyvvvv8+qVas4duwYmZmZXLx4ERMTEzw9PZk0aRJTp04lPj6eU6dONXncdwsEfu0jR45w/PhxbG1t8ff3p3Pnzvj7+4tOxrViSXcKGo2GlJQU9u3bx/bt29m/f3+bmdAEREREEBkZ2eoyqMrKShYtWoSPj88tNzD09PQICAjgueeeIy8vj4sXL7Z7m0VFRSxdupSjR4/Sr18/evToQY8ePfDx8bmt91epVFJYWEhGRgaZmZlcvnyZ1NRU0bEoKSnpsCa3ewH+/v489thjXL58WXQqBw8ejI+Pz50+tDuKkydPolQqmTVrFlOmTMHc3Jy1a9cSFRXFCy+8QG1tLaGhoSxevLhJhqOcnBzOnz/PqFGjePnllxs1fkdERNCzZ0+KiorYv38/hYWFomMh6JAIWjQqlYolS5bc1Y5FdXU1K1euZOfOnXf6UP6nIThx1yI9PZ0VK1awYsUK0tLS2pSFrq6uprS0tNXCqzeCQqHg0KFDLF++nF27dlFQUNCm7VRVVRETE0NsbCzHjh3j4YcfZvLkyRgbG99U9kKlUhETE0NMTAxhYWG3zLGwtLRkxIgRjBgxotH3177fr7/+uvj3tQybAQEBIgFBU+jatWsjXZ1rs9odgXY5FkqlktzcXFQqFb6+vs0u5+DgwOTJk+nZsyeXLl0iNzdXTNMYGhpibGyMg4MDPj4+dOrUqcG6EokEe3t7HnvsMSIjI7l06RJlZWXodDqMjY3F1L6bmxsqlYrnn3+e4cOHExgY2OihMTAw4P33378pg8/KyqrJyJy+vj4zZ85k4MCBrd6WoaFhs9oJgqHm7u7OkCFDSE1NpaioSFThNjY2xtraGhcXF7G5uamIvZGREf369cPHx4ezZ8+Sk5ODQqHA2NgYV1dXQkJCcHJyEsu9BH0CuBqNycjIQKFQ0KNHD/z8/Ni6dSvV1dXU19czYcIEzMzMiI2NFY38zMxMzp8/T/fu3Tly5AgymUxkzigsLCQ+Pl48j4CAALp06cLJkyfJz88nIyMDNzc3Jk6ceEPjWVDnLigoICYmBktLS7y8vPDw8KBTp054e3vj4+ODh4cHzs7ONz1otAVarZbc3FwuXLggCjceP36cwsLCNmtWCLCwsGD8+PH4+fm1+jw0Gg2VlZX4+vresmzFtTA2Nmbw4MHk5eXx5Zdfkp2d3e5t6nQ6UlJSuHTpEn///bc4gAcGBuLv79+gXKS9EDKBxcXF5OXlkZubS25uLjk5OeInOzub/Px80cH/X4RUKmX48OF3+jDuOhQXF2Nvb0+3bt3EZn0jIyOqqqrQ6XRYW1szefJk/vzzT/7880+io6MbrK9UKsXxtzk2KTs7O3x8fNi7d28DY0+YO4WxwcDAQCzpvY/7aAnXOxYXL17kl19+YcWKFW023uHqOOHu7t4hBqpCoWDdunX88MMPnDhxokOywvX19ezZs4f09HTy8/N54YUXbkrosKCggLS0tP/puaC1aJdjUVxczJ9//olcLueNN95ocVk9PT08PT3bXD9tamoqRjCbg0wma1HnwMDAgNmzZ7dp/9dDLpfzwAMPdMi2roVAOXttOdjNQiaT4ebmhpubW7PL+Pv7N/C4dTod27Ztw9XVFQ8PD0xMTMTopKmpKbGxscTExDBq1Cjq6ur4+++/cXd3Jzk5mezsbPr06UNlZSU5OTn07NkTc3NzSktLOXr0KLa2tlhbW3PkyBGMjY3Zv38//v7+XLlyRawPvhkIStalpaWcOnVK5OoXGrUEXQI3NzecnJxwcHDAwcEBOzs79PX12+RwCKw8+fn55OTkcPnyZdLS0khLSyM9PZ2LFy+KBkVHYMCAAQwePPim2IWkUmmTDDK3ElZWVkyZMoXy8nK+//57iouLO2S7Wq2W7OxssrOz2b17N87Ozri7u+Pg4ICjoyPOzs5iA7KlpSXGxsbI5XLx/grCkxqNBqVSSW1tbYNa7pKSEkpKSsTyi9LSUoqLiykpKaGsrOyeEtm8FdBqtSgUCurq6qitraWurk78u76+vtH3dXV1lJSUEBMT0679Ll++nFOnTmFkZCR+BD73lj6t6YfraDRF42tlZUVubq7Yw2ZkZIS3tzfnzp1rtL6pqSlWVlbiuNHUuKTVaikrK8Pe3r5BsMDf35/169czduxY9PT02LZtW4cTNdxHYzg6OhISEiKqeVdXV1NTU3NPZTCrqqqoqKhAp9ORk5PDokWLWL58OUVFRe3aroWFBf7+/jdURb8RVCoVa9as4dNPPyUpKanZ5SQSCaamplhbW4vvRm1tLaWlpVRXVzc7F6enp7Nw4UJ0Oh2vvfZaixmWiooK4uLiiIuLIzExkZiYGOrq6liwYAGrVq0Sl+vevTvjx49vVOImlUqpqqpi586dnDt3jqqqqgalWXZ2dg2W12g0bNu2jYSEBCZMmCCKMsbHx4v9kyEhIYwaNUok/RBsqKNHj3Ls2DHy8/ORSCS4u7vTq1cvIiIimiz90ul0ZGZmcvjwYZKSkqiursbc3JyQkBAGDhyIra1tm4Oz7XIsioqK2LJlS7uM4Pu4e9C1a1fS09PJysqiS5cuKJVKsfyhsrKS1NRU9PX18fPz48CBA+Tk5JCVlUX//v2xsrLCz8+vEZOHhYUFXbt2xc/Pjx9++IHa2lq0Wi15eXnIZDL69u3b7oZDpVIpRpjh6oBjZmaGjY0NFhYWWFhYYG5ujpmZGWZmZuJ3pqamYlO9XC5HKpWi1WpFobW6ujqRnaSsrEw0QsvKyiguLqawsJDa2toOcyYEBAYG8tBDD+Hr63tTL7aJiQn9+vUjKSmJ8vLy20LZe21GsaqqikWLFnU4A4VSqSQjI0PshZLL5Zibm2NqaoqpqSnGxsaiYSk0zmq1WjQaTYP7WV9fL/ZDCUbBvWQQtBbCRCM0GtbW1oqfax2E67+//l+lUtnoo1KpmvxbILBoL933mjVrREdBeDdb+vva74Tst5GRUbP/Cn8Ln2v/f7PjkL29PceOHWvgGHh6enLkyBHKysrE/riSkpImxwhvb2/69OnDiRMnOHnyJJGRkQ2cI7VaLZZwDBkypEGv1RNPPMGyZct4//330el0onjl3QwjIyOGDRvWqt4prVZLVlYWe/fubfSbYJgJuhM3A09Pz3b15vXu3RsnJyeqqqoajCc1NTUNms93795NcnLyXdl/pVQqqaiooLCwkFWrVrFy5cpGToWbm5tYHmNvb4+5uTlGRkYoFAoqKyvJzs7m8uXLnD9/nqysLLRaLU5OTqLac1uh0+nYv38/8+fPb7KkXZhv+vbtS2RkJJ06dcLMzExkRBPOLSMjg5MnTxITE9OkYHJhYSE//vgjTk5OTYr+CqipqSExMZETJ05w5coVysvL0Wg0ZGRkUFZWJi7n6uraZDBKp9Px8ccfs3PnTlH0sbS0FHt7eyZOnNioBFKn03HixAnWrl2Lvb09xcXFbN++XRyny8rKGDp0KAMGDBAdC41Gw08//cTKlSvJzc3FyMhIDKjt2LGDRx55hKlTpzZwoHQ6HcePH2fx4sUcPXoUpVKJTCajpqYGc3NzDh48yOuvv467u3ub7mebHQuVSsWVK1e4dOnS/3wT378BEomEoUOHkpqaSkxMDPv378fBwYGUlBTGjBlDenq6GIWzsrIiODiY48ePU1tbK9b9NgUjIyMMDAyQyWTodDpxAHB3d6dnz54EBwd3OBWc0JvRFF2hQN0mNNTr6emhp6eHVCpFIpGg0+lEo1QwnITG/NthhNrZ2TFt2jSio6Nvuq/AwsKCmTNn8tVXX/HNN98wY8aMRqWFtwJCY9msWbMAWLp0abtoaG8Egb3tVu7jXoZGo+HUqVN8+umnogNw7ef675pa5k5lbASH72YhkUhE4ahrnY7mPtf+bmRkRLdu3Xj77bdvap/BwcFs3ryZc+fO0aVLF8zMzIiKimLdunXMmzePgQMHkpmZSXx8PGFhYSxcuLDB8QqNppcvX+b1118nPDwcJycnsXk7OztbJAPx9fVtMB5ERERgYGAgZn1dXFzu+nnYxMSEKVOmtIq5TaVSsXfv3iYdC0tLS0aNGtUiY1pzEJpd2wonJ6dGdPeCwSgwTSoUCoqKirh48eJd6VgAlJWVsWHDBv78809yc3PF7zt37sy4cePo27cvbm5u2NvbY2pqiqGhIXK5HLVaTX19vZjlFfrrDh06hLGxcbtZ4q5cucL777/fpFNhYmLCgAEDmD59OiEhIbi4uGBmZtakdEFVVRVjx44lLi6On3/+mbi4uEZjWm5uLgsXLiQsLKxRz4EAKysrhg8fTo8ePTh//jw//vgj9fX1PPfccw3O1cbGpslAXmZmJlu3buXpp58mODgYgHPnzvHjjz+ydu1aQkNDm2SNKi0tZcWKFXh5eTF9+nS8vb2RSCQUFBRgZmbWoIRrx44dfP311zg4OPDxxx/j5OSESqUiPj6e33//nZ9//hlHR0eGDh0qrnPx4kUWLVrE4cOHGTVqFP3798fExISSkhKWLVvGunXrsLa25pVXXmkT0cBNORZqtZrExES2b99OWloaZ8+epbKykl27djFmzJgGy06ePJmHH364QQTm22+/5fTp07zxxhu4u7uzfft2Dhw4QEFBAYaGhvj6+jYwhlQqFadOneKTTz4hMjKSefPmNXqIjh8/zooVK7C0tOTRRx9t1OuRkpLCjh07xGMVuNcnTpzYYqnQnUZsbCzLly/H1NSUp59+ulkV7Y5CbW0tGzduJD8/n6ysLDw8PLCysiIjI4MjR45QX18verympqaEhISwdOlSoqOjkUgknD9/ns2bN3P58mUMDQ0ZPHgw0LhcoLq6GqVSyZkzZ8SG2MmTJ9+0TkNboVar22y83GqYmZkxdepUHnrooTYp+AqUfKampixfvpyDBw/i6uqKlZVVk5PphAkTWk1jdyMIpY6zZ8/G2NiYRYsWkZeX1yHbvo+bg5AR3LJly50+lNsGnU6HWq1GrVaLfWmthVwub5MBGBUVJTISCqUG0dHR9OzZk02bNhETE0NNTQ2GhoZMnDiRDz74oMH6QmatsrKSxMRE4uLiMDExQU9PD7VaTU1NDfX19VhaWvLtt982MIAUCgWhoaGEh4c3MGxvN1//zUBPT6/VbEFKpbJZ0UaZTIatrW2by6o7GhKJRMyamZmZAbSb1vRW49ChQxw7doyLFy+K+g8TJkzgscceIyIiAjs7uyZLCwVn3MzMTOzZ7Nu3L0OHDkWj0bSL1lSn07FgwQJiY2Mb/WZhYcGUKVOYPXs2nTt3brF8SSqVilUJPj4++Pj48N577xETE9OgD0mn05GcnMy3337Lb7/91uS7Y2RkJPagajQazM3Nkclk+Pv7061btxueU3V1NVOmTOGJJ57A3NwcnU5HSEiImDE5duxYk46FUB0xfPhwRo8eLfaMqlQq1Gp1gwzN119/TWlpKYsWLaJv377o6+uj1WoJDw+ntraWhQsXsmXLFgYOHIhcLkej0XDw4EF27drF6NGjeeGFF3B3d0dPTw+VSoWtrS3PPvssS5cu5eGHH8bS0vKmn+Wbciy0Wi1XrlwhLi6O8vJyysvLRR2H62k16+vrG61/9uxZNm7cyKRJk/jjjz/YvHkzarW6gTjeo48+Ki6v0+nIy8tj27ZtaDSaJtPJ+fn5HDx4EAcHh0aRkK1bt/L999+TkJAAXPV4y8vL2b17Nzt37uTDDz+8a1UoCwoKOHToEFZWVkydOvWW709fX58+ffpQV1eHVqvF3d0dIyMjsQZRT09PfJgFgRylUknPnj3R09PDxcWF6dOno1AosLS0xMHBAT09PUaPHo2FhQVGRkY89thjxMfHi6wFhoaGfPvtt4wePfq2ORZ3K0xNTZk6dSrPP/887u7ubZqUSktL+fDDD6mtraW4uJj09PQGfQfXw8/Pr8McC7hqOLi7uzNr1ixMTEz4+eefxfKl+7iPfxvc3d15/vnnMTU1FcdGGxsbPvnkEzZs2EBKSgqOjo5ER0eLxkR7YG1tLf79/vvv8/TTT4uRzNzcXL777ju++uqrdu3jPv43kJaWJpZM6uvrM2PGDJ599lkCAgJuSmhRIpFgYmLSIf09R48eZc2aNY0YqYRA5RtvvIGnp+dNzY2Ghob07NmTd999lyeeeEI8bwFKpZL9+/dz4MABhgwZ0u5zuB7CtRXKlgRZgIiICGpra5ttltdoNHTr1o0ePXo0sI0Ex06AoKXUuXNn0amAqzaavb09vXr14r///S9paWnk5+fj5uZGUVER586dQ6vV0r17d9GpELbfq1cvsczz4sWLeHt73zTT1005FjKZjJ49e+Lt7S1GuP/73//St29fPv744wbL2tjYNBklra+vZ+HChRgaGjJ37lwCAwORy+VUVlYSHx/fYdz1sbGxLFiwgJSUFGbPni2mempra/n9999ZtmwZWq2WFStWNGqg+V+ETCZrktnr+tRmXV0dO3bs4MSJEwwcOBArKyuxPKqplNm1L4W3tzfV1dWsW7eOjIwM1Go1oaGhd72o062GEI2ZM2cOPj4+bW5CtbKy4qOPPmr18hEREW3aT0uQSqU4OTnx5JNP4ubmxnfffcfJkyfv2pKA+7iPtkImkzU5Xwk0zNXV1RgYGGBtbY1UKuW5555r1/6EaDhczdTPnj1bNLKMjIw4cuRIu7Z/H/87uNZ4HzVqlFiq01Z9h/ZCp9Pxww8/NNlA3qlTpzY5FQL09PTo2bMnDz/8MAsWLGhUrVBYWMjKlStviWNha2vbKIujp6cn9l+1xOTWqVOnG9qm58+fp76+npSUlCYZSisqKtBoNGJ/huBY5OTkUFJSwmeffcaiRYua3K5Wq6WwsLBNJeA39RRJpVJsbGywsbGhqqpKFOcR2ABaA51OJ6pwR0VFiSkeIXXTERzIgsMQFxfHK6+8wsyZM3FwcEAqlaLT6XB2dubEiRPExcWxbdu2Fpt37qMh9PX1iYqKIiIiAhsbm5t+0f39/XnmmWdQq9XodDrMzc3/p7MVzs7OPPnkkzz55JM4Ozu3i9lGEKRsLW7VJCKRSESFWW9vb7777js2b958V5af3cd9dDSEqOS1GQag0f/bg6aCdh1NInEf/34EBgaKPQt3yqmAq4bswYMHG2UrzMzMGD16NOHh4e0qLdPX12f69OksWbKk0TykUCg4efIkmZmZHd6TaG5u3mhOb4pNrikIvS0tQSCGMDIyanJMsLKyok+fPgQHB4vbEkhpZDKZSFpzPYR+LVtb29vbvH0tbvaG9+/fn5CQkAZaA1KpVEwXtReCGqRWq2Xo0KGiUyEcq6OjI926dePSpUscPXr0vmNxE9DT08POzq7NWR4DA4PbLi9/N0IqlRIUFMQrr7zCuHHj2lTH2NQ276bsj4mJCREREXz22WeEhYXx008/cfny5Tt9WPdxH/c8evTowYIFC3j88ceRyWQsXry4VTXf93Ef12Lw4MH07Nmzw0Tt2orNmzc3KqcHxFLwjugd8vDwIDw8nPz8/AYOjE6nE6nxO9qxaA9RgEAo0xKEMudevXrxzTffNLucgYGB2FwuENa4urry2muvNdLXuRZWVlZtuvZtP+t2wM/P75Y2N2VmZlJeXk5tbS0PPPAAnp6edOrUSfz4+fmxZs0aNBpNu+te7wTq6up45pln8Pb25tFHH6Wurg61Ws3Ro0cJDg7ms88+Iz8/ny+//JKBAwcSEBBAt27deOGFF1oUm9FoNOzevZsnn3ySiIgI/Pz86N+/Px9//LFI2abT6UhNTSUoKIjp06eL66rValatWoWnpycPPvggJ0+eFH/bu3cvw4cP5/333yc/P7/Z87rT6tm3C+bm5jz22GOsWLGCKVOmiOVktxqbNm3imWee4dixY7d8XwJkMhkuLi48++yzrFmzhieeeOK20ODeCVhZWYnZ0bu5cfM+OgbJycn89NNPxMfHNyhpyM7O5qmnnsLf35/o6Gj+/vvvDt/3yy+/jFQq5fHHH2fatGnU1dXdUEvqPu7jWnh6etK7d29Rvf1OQafT8c8//zTqyxV69sLCwjpkPzKZjK5duzZpKNfU1BAfH98h+7md8Pb2RiqVkpOTI2qXNfWxt7cXnUcrKytsbW0pLy8XGR2b+5iamt65jMXNpmCbS9t0FKqqqlAqlRgYGGBnZ9dkFNfR0RGZTNYiVerdiPr6el5++WVWrVpFWFgYH3/8MYaGhiJ1YWpqKlu3biUhIYEdO3aICtsXL14kISGBuLg45s2b10guvr6+nk8++YSlS5dSWFiIs7MzZmZmJCQkcOrUKTZv3syqVatEBhR9fX1SUlIoKirCzs6OsrIyzp8/T0ZGBnK5nPT0dLExPi0tjaSkJIYNG9Zi2dOiRYtYtGgRP/30UwMKvH8L9PX16dmzJy+//DLR0dEiA0xHQtAvMDAwaPTc19TUUFRU1CSxwq2EIGTUpUsXvv76ayZOnMiXX37J0aNHUSgUt/VYbgUCAgJ46KGHmDx5Mk5OTjel5nof9y4OHz7MwoULmTt3rshUo1KpeP7559m9ezcSiYTU1FQuX77MunXrmqW0bAucnJz48MMPxffHwMDgf7qk9D5uHgEBAfj6+t5SW6w1SE1NJTMzs1HAU2i87kims6CgoCZLvurr60lOTm5xXZlMhkwmo76+/q4RUO3RowdWVlYkJSVx+vTpVtH9uri44Ofnx/r16zlz5gzDhw9vloGtrbhjT1RHRfSa4lw3NDREJpNhZ2fHkiVLOHDgQJOfPXv28Omnn7ZqP7t372bLli1NaiPcDuh0Oqqrq3nxxRdZvXo1PXr0YPXq1Y0ocxUKBSdOnCAhIYElS5Zw/vx54uPj2bVrF0OHDuXEiRPs3LmzQZOUTqdj8eLFLF26FENDQ/766y/i4uI4duwYly5d4tlnnyUhIUEUQTMyMiIoKIjq6mrS0tIARN5uFxcXjIyMyMrKQqfTodPpyMrKor6+nk6dOrVodDk4ODB37lzi4+P54YcfRJYDPT29ezYCLJVKMTIyIioqihUrVrB9+3bGjBmDmZlZhzsVOp2O/Px8Pvjgg7sy+qKnp4eZmRnDhg1j27ZtbN26lUmTJjXJRX63QiqVisr2Tz75JLt37+bw4cO88cYb+Pn5iedyrz6v99F6JCYmolKp8PX1FZV/N2/ezNGjR4mOjiYtLY1NmzZRWFjIkiVLOnTfWq0WAwMDUeRPKpX+K5z0m4FWq0WlUrWquVSg5G2OXfJ/EV5eXg1EF+8Uzpw50yRFtFwub5JQpj1ori9UpVJRUFDQosMglIBfunSJs2fPUl5eLuoACT2jtxtmZma88sorKJVKZs2axfnz5xuIlxYUFPDPP/9w/PhxcR19fX2io6Pp1asXK1euZNmyZRQWForrKBQKTp06xcaNG6mqqmrTcXVYt46gPNqRkEgkoncp8JNfa5jqdDqKioooLS1tULcvqDEmJydTVVUlCqHdCIIomsDnK5fLReO4V69eDShX4aoRLzxQggicQqEQBy8jI6N2G4+CknB5eTmvv/4669evp3///vzyyy8iJ/j1193Ozo6nn36a8ePHi991796dBx98kNjYWFJTU8nKyhL7JPLy8ti8eTN5eXksX76cYcOGYWBggEQiwcjIiE8//ZS4uDhRW0No9oqJiSE1NZUePXpQVFREfn4+ERERKBQKsrKyqKioQF9fn5ycHOzs7G6ozSCRSJDL5djb2zNr1iyeeOIJUlJSWLduHbt37yYpKUl8ae7WCUJ4ZuVyOZaWlkycOJHp06cTERHRoM+nLRC46tVqNRKJBAMDA/F51Ol01NTUkJOTw6FDhxgyZAhlZWXo6elhaGjYoIZWpVJRWVmJVqsVfxees+v3I1ALX/vcCywTxsbG1NfXo1arxXejNbW6enp6GBkZMXjwYKKjo0lJSWHJkiVs2LCBgoKCOzpQXwtBdE24n+7u7kRFRTFy5Eh69erVoITtviPxv4fS0lLs7OwwMzMTBe+WL1+OQqFg/vz52Nvb079/f4KDg5vk5m8P1q9fz0cffURqaqqYse7evTt79uzp0P3czTh//jxffvkl4eHhvPLKKy0uq1AoGD58OK+88gojRoy4q/U+bgf09PRwc3O7KxgxExMTm3SKheDwtQrX7UVLjdMKhYKSkpJmtVaE8f/IkSO89957LF26FFtbW2pqahg1ahSzZs3q8Mj/jSCRSJg9ezYZGRksXryY3r17iwGugoIC8vPzsbW15dVXX6Vnz57iOj179mTOnDnMnz+f9957j59++glXV1fq6+vJzc2loqKCoUOH0qtXrwZsdK1Fmx0LPT09jI2NUavVVFRUoFAoOrxxVE9PD0tLS+RyOeXl5Vy6dImwsDCkUilarZaCggLOnj3bqE/Cw8ODkJAQzp49y5o1a/Dx8cHFxUV8qITohVKpbGD8nz9/nm3bthEREcGGDRsYMWIEdXV16HQ6du3aRWBgIE899RTW1tbodDp+++03zp07h1KpZOrUqfTp04fvv/+erKwsampqeP755+nRo0e7roGxsTHV1dW8+eabbNiwgcGDB/PNN9/g6OjY7Atia2vL4MGDG/1ua2uLg4MDNTU11NbWit+fPn2avLw8/P39RX0JAYJxNXnyZA4fPszff//NU089RWBgILW1tSIvdGFhIeXl5QwdOpTs7GzxY2BgQHFxMV5eXlhbW9/QALvWUDMwMCA0NJTQ0FDmzZtHZmYm+/bt4/Dhw5w9e5b8/HzRABY+t0Md+1pIpVJRK0JfXx9bW1sGDBjAiBEjGDRoUJteyqagVCrZunUrixYtIikpSVQEffXVV7GxsaG8vJxp06Zx/vx58vLyeOSRR5DL5Xh7e/PGG2+IGi91dXWsXbuWjz/+mJycHNzd3XnppZcYNmwYRkZGKJVKtmzZwuLFi8X9jBgxgtdeew0rKyt0Oh1nzpxh2rRpfPfdd/z222+cOnWKTp06MWfOHMaNG9eq87n2PgcEBPDFF18wf/58YmJi2Lx5M3v27BEjSIIzeSspa69XbpbL5djY2BAaGkqvXr2IiooiKCjonugDEt6d1oqR1dXVUV1dLb47VlZWreKy12q1VFdXo9VqRTX7exH6+vptUpfV6XQYGxuLwa8LFy5w5swZBgwYgIeHB1KpFKlUioODww3LLG4WP//8M7/++isff/wxP/30E2vWrGky6yeTybCysmr1s3A92qtUfauh1WpbHYCwsrLCxMTkfhCAq+XoJiYmd8W9zczMbDJTUFxcfFMsh+2FRqNpUVxTIpEwffp0rK2t+eOPP0hKSiIzMxMHBwecnJyQSCQUFhaKpESGhoZotVry8/ORyWTiNQfE8dnS0hKlUkldXZ2YLRAYm7RaLRqNRrxHOp2OkpIS9PX1kclkVFdXi8yaX375JT169BDtAyFAO3ToUIYNG8bw4cNFzbna2lqUSiWRkZEsWLCAbdu2ERMTQ05ODvr6+vj6+tKjRw8mTpzYZia7NjsWBgYGdOrUCWNjYxITE9mwYQP9+vUTIzcWFhbtbtIURD4iIiJISkrip59+4qWXXsLc3JzKykrWrFnDrl27Gk2CQlNbQkICf/zxB2ZmZkyfPh0rKysxfZqQkMDx48eZM2eO2Lwk0NFqtVrkcjlxcXH4+/szZswYDAwMGtGU5eTkMGzYMHr27ImdnR1nzpwhPz+f119/nYKCAn7++ed2OxaCGuW+fftwcHBg3rx5LToVcHXQaIp5SYi8arXaBkZafn4+1dXVBAYGiin9ayGRSPDz80OtVnPp0iUxeiv0UlRWVpKWloaRkRERERFIJBJOnz4tPqjFxcX06NGjXXSLcrlcVNF8+umnUSqVZGdnc/bsWZKSkkhNTSU1NZX8/HyxmV2j0YgOh3DO136EbJRwna89X+EjGAcCk4JwDQVnwtnZmZCQELp27UpERARBQUHNCtK1B0eOHOHrr7/m4Ycf5uuvv6awsJCXX34ZrVbLp59+ipWVFevWrePs2bNMnz6dn3/+md69e4uOj4DExET09fV5++23sbOz47vvvmPZsmUiY8bhw4dZsGAB06dPZ+HCheTn5/Pyyy8DMH/+fHE7OTk5LF68mEceeYQPP/yQ6urqdke/hBTtoEGDUCgUJCQkEB8fT3x8POfOnSM3N1fMZggKpMK9Fd7ba+/ptfdRcBz09PTEcqZr76WpqSne3t4EBAQQGBhIaGgofn5+92TdulwuZ+TIka1WPl+6dCkfffQR6enpACxbtozhw4ffMKqblZXFV199hZ6eHv3792+1U/lvgb29PefOnaO4uJjKykpWrlxJdXU1Dz30kOhk6XQ6qqqqOrzsUa1W4+7ujlQqxdrampkzZ/LAAw80itx7eXnxww8/MH/+fJEuvi0QxNSuXLmCVqtFJpPh6Oh4U2JqdxKGhoZs3LjxTh/GXQMjI6O7JhBQUFBw2wOCTUEIOLcEIyMjJk2axKRJkxr9duzYMaZNm8ajjz5KVFQUAwYM4Pjx4wQEBGBvb8+4ceNEletBgwaRl5dHVVUVe/fuZeXKlZw6dYqioiJ0Oh2+vr5cvnyZ8+fPExwcLNptEyZMIDw8HG9vbxYtWkRJSQlvvPEG48aNY+3atSQmJhISEsInn3zSgCVOq9VSVlbGnj17WL58uVh+5uTkxNixY/npp5/w8/PrsExeuzIWvr6+PPzww6xdu5bnnntO7DxXKBQ8//zzokHSHri6uvLMM8/w3nvvsWrVKjZt2oSNjQ21tbVi7Xpqamqj9Xr06ME777zDZ599xpIlS1iyZAkODg4olUqR+9fX15cXX3xRXEfw4K9cuYK/vz9xcXEEBARgYWHRaPsSiYQnn3ySv/76iz179vDoo4+Sm5tLYmIi33zzDfr6+h1C/3fo0CGxVCUjI4Pt27fj4uLSYvRfqOtvLZRKJRqNpllOY0AchBQKBVqtFhMTEzw8PMjJySEvL4+UlBTs7e0JCAigoKCAuro6cnJyMDAwoKysDE9PzzZFBZuDvr4+Xl5eeHl5MWHCBPH7qqoqMQWYl5fHiRMnxLKsqqoq8VNTUyOet8A+Af+vKi6Xy8UaZisrK6ytrbGyssLe3h53d3c8PDxwd3fH0NCQ7OxsMdKRkZEhNrh3JNasWYO7uzsBAQGo1Wqsra0ZMGAAa9euZf78+WJExNDQUKSdbcoodnJyYtKkSQwfPhyAESNG8Oeff4rp5tWrV+Ph4UFAQAAqlQobGxsGDBjAmjVrGohgmpmZMXz48FtiTArRnm7duonvkEqlorCwkMuXL5OTk0N2djY5OTkUFhZSVVVFXV0ddXV11NfXo1AoxJI04V6amJhgaWmJpaUlVlZWODg44OLigouLC66urjg4ONxxysV7BTqdjtraWtLT0ykuLubLL7/EzMxMFGHSarUYGxtjYWGBTCajtLRUJAyQy+WiESGU2mm1WpycnJBKpSIVpKCFcjdniCIjI9m6dStLlizh0KFDrFixAi8vLwYMGCCW0QoBkI4SfhXg5OREZWUl1tbW7Nu3r0UiiMzMTL788kssLCz4/PPP27zP0tJSpk6dSlFREVqtlo0bN7aqWfR2QavVUlJSIgY5hOxERkYGNTU16HQ6XFxcGlB7q1QqsrOzMTc3p7q6mtraWjHLIwgbAtTW1lJcXExNTY0YwBCyUZaWlh3uON5qtLZs9XagrKzsrnEsOiIrLhjvjo6OjB8/npqaGo4dO8aPP/5ITk4OS5YsEe2p/Px8Nm3aRGxsLJ6envTv3x+1Ws2ZM2f47bffKCgo4P3332+gExcTE8Pp06fp1asX//zzD++88w6nT5+mrq6OwYMHs23bNj7++GPWr18v2iHl5eUsWbKEhQsXYmlpKQpGp6Sk8NNPP5GUlMR7771HSEhIh2Sx2mX9uLm58c477+Dl5UVMTAylpaUYGBjg5uZGYGBgo+U9PDyIiIhooCtxI5iamjJp0iTs7e1Zt24d6enpSCQSfHx8mDhxIt7e3qLoyfWG1MiRIwkKCmLTpk0cOXKEvLw8ZDIZXbp0ISgoiOjo6AY1cebm5piamnL58mUGDBhAcnIycrmcsrIyioqKqKmpoaCgAGNjY9HwnDx5Mvv27ePMmTN07dqVsLAwHnvsMYyNjTuEVlMmk/HMM8/g5eXFN998w+eff46TkxOTJ0/GyMioQyLj5ubm6OvrU1lZ2aTHLqTgJBKJOIgaGxvj7+9PYmKimBL09vbGxcUFZ2dnjIyMyM7ORk9PD7VajYuLS5PZkI6GmZkZZmZm+Pj4UF1dzeeff05cXFyL6wQHB3P06NE2lS1lZGQwefJksVna2dmZ06dPd2itpdAAHxcXx7lz5xpMYjY2Njc1GNrb2zegFzQyMhIzOzqdjitXrnD69OlG+7G1tRWdMGE9Pz+/Dji71kEul4uOwH3cWQiZyy1btpCcnCySSahUKjZv3izWb48ePRovLy9WrVrF5cuXsba2xtnZmbS0NJGpzs3NjaysLL755husrKx49913sbS0xNDQkOnTp9/WZ+xmMXjwYA4ePMiOHTvYtWsXlpaWvPXWW2LQR6fTkZGRQWlpKaNHj+7QfT/11FMYGBjw9NNPizSzt1KPSSKRYG9vz9GjRzl+/DjTpk27Zfu6GQjzn1ar5cqVK/z4449kZWXx8ssvExkZiZ6eHl988QWxsbGcO3eOX375hYceekg0qktKSnjooYcYPHgw6enppKWlIZfLiYqKYvbs2Tg7O1NXV8euXbtYvXo1eXl5FBUVkZ2djYuLC/PmzWPs2LH3HBNca0Xabgfq6+tvaZnr7caRI0d44okn+OKLL7C0tESn03Hu3DnGjBnDiRMnOH/+PJGRkcDVfuC5c+fy8ssv4+fnJ86vcXFxvPnmm+zfv59p06Y1cCwSExPZtm0bAwcOZMGCBbz33nucPXuWw4cPU1tbS25uLunp6ZSUlODg4IBGo+HEiRMsWrSIzp0788EHH9CnTx8kEonouKxYsYLu3bvj7u7eIQHgdjkWEokEc3Nzxo0bx9NPP42+vj5GRkbU1NSQlZXFyZMncXJywtHREblczrx585g3b95N78fU1JSRI0cycuTIJn//7LPPml23U6dOvPTSS7z00ks33I+ZmRn+/v5oNBq8vLwIDw/HwcGB8+fPk56ejlKp5NixY5iammJtbc3OnTu5cuUKKpWKSZMmERoaSmZmJhs2bECn09G7d2+GDh160+d7LUJCQnjggQcIDQ1Fq9Uyf/583n33XRwdHYmOjm7QdNtWCP0PwsOo1WobOX6xsbHI5XJRkdHExISAgABOnTpFYmIiFRUVeHt7i+VBzs7OZGVlUVdXh7W1Nba2tu06xrbC2NgYQ0PDVrOH3I0QomNCr8O1JUdCw7vw97XrNAWh/Ke5/UgkEkaOHMlrr73W4J4JGYBry4zulojX3QaFQoFMJvvXskPJ5XLCw8ORy+VUVVUxZ84crly5wt9//010dDQDBgxg9erVHD58GC8vLyorK+ncuTPTpk3D2NiY7777Dn9/fwoLCxkzZgy//PKLWMJWW1vLjBkzcHBwwMPD406faouwsbHh/fffJyoqisLCQnr06EF4eHgDQoXS0lKmTJnSZOlEezB48GDgqhbBtm3bqK+vb3Mfxc3ibqjLFyC8XxkZGSxatIjCwkLmzJlDZGSkeJw//PADdXV1BAcHN7mNiooKtm/fzn/+8x9CQ0M5ePAgy5cvx8fHh8cff5yLFy+yfv16AgIC+OWXX0hPT+fNN99k3LhxjB8//rYEzP7NuF5tW4BUKsXS0vK2PW9WVlYdUmlgZmbGq6++ioWFhejAderUiQEDBrBv3z7S0tJEx0JfX79JyQMh+H3w4EGxl0KAk5MTnp6eyOVyunTpglwup0+fPpiamqJUKvH09CQ3N5fS0lIcHByoqKggNjaW4uJiZsyYQe/evcX3xsHBgSFDhhATE0NMTAxjxoy5844FXPWeFi5cyJAhQ8R+iIsXL7Jy5UqqqqoICwtj8uTJeHl5tftgbzUMDAwYOnSo6AxcGy3r169fo+WfeuqpRt9Nnjz5lh3f9OnTycvL49tvv+Xtt9/m119/pWvXru02XoKCgggKCuLChQvs2bMHT09PHB0dkUqlaDQaLl68yMaNG0UnEv4/Yl1TU8PZs2fRaDTi9XJ0dMTNzU2s43N3d78jjoVcLhejphUVFdTW1qJQKKitre1wlpZbCalUSrdu3YiJiaGwsBAXFxf09PTEtPy1EMrZ8vPzqampER2P1tROSqVSunfvzpEjRygqKsLZ2Vncz51maLpXoNVq2blzJyEhIffEmNdREHpeTE1NMTAwaEB/KpPJsLW1bWCACWV71wowSSQS3nzzTdauXYtKpWLGjBl07tz5jpxPa2Fvb8/UqVOb/E0qlTJ48GDRCbgVELLINwOtVkt2djb5+fm4u7tjb28vlgQJPWoymQwnJye8vLxaNXaoVCquXLlCeXk5gYGBDUpnU1JSMDQ0xMPDQ8yKCuWywn7aWj4qk8nIy8vjhx9+oLi4mBdeeIGuXbs2MkZbcvINDQ3p16+f6Pyp1WoOHz5MVlYWAJWVlajVahwdHTExMcHV1RULCwsqKipQKpX3HYt2orn7bmJiwowZM26boKqdnV2HGNV+fn7Y2to2eAb19PSwtbVFq9U2ahCvr6+nsLCQ4uJisbFaEG8WbLBr518rKysxsyGU+13bJ2xgYNCgX6S0tFR8B8vKyti9e3eD/aenp6PRaMjOzm4zvez1aLdjITADBQYGkpycTFlZGSqVisDAQKZMmcJvv/1GYmLi/9Qke6sgk8l48cUXRV70d999l++++67d19bc3JyHHnqI1NRUFi1ahEajoWfPnhgZGVFeXs4ff/xBZmYmDzzwAMOGDQOuGrDOzs5IJBJOnjyJp6enyDltbW2Nm5sbW7Zsobq6mqioqDviWBgYGDB37lzx/yqViqqqKjIyMoiIiLjtx9MeTJ48mYsXL7J8+XJOnz6Nvr4+5eXleHl5MXXqVDEyYmlpSUhICBs3bqSsrAw7OzsiIiLo1KlTq/YzdepULl68yB9//CE2opeXl+Pj48OUKVNu8Vne+yguLuall15i/vz5eHh43HO1122F0H904cIFtFotCoUCHx8foPVUvEqlkpqaGoYNG8a+fftITk6+6x2Lew1arZa0tDSWLVtGTk4OTzzxBHZ2dlRUVLB+/XpOnTpFbW0tWq0WS0tL3nnnHTp37nzD51ipVLJr1y527NjBRx99JKolp6enM3/+fLp27cpzzz1HXV0d69atIz4+vsF+3n33Xfz8/G46Oq1Wq4mJiUGtVjNmzBiRjetmIPTrCRCyuoJj7OrqiouLC7GxsVhaWlJcXIxUKiU4OPieJHe42yDosFwfJDM1NeXxxx8nKCjoDh1Z22BlZdXkM3gtu5Pwb2lpKQcPHmTXrl2kpaWJcgUajYasrCyUSmWj7VzbCyuMrdc6/8J3wn4UCgWVlZUUFhby+++/s2rVqkbLwtXsRUf1hrZ7KyYmJgwaNIi5c+eya9cuzp49i5GREUZGRjg5OWFubv6vqp+70zA1NeXNN9+koKCADRs2sGDBAt5///12e9qDBg2ioqKCP/74g99//52lS5eir69PVVUV1tbWTJ06lXfeeUccSCUSCWZmZjg7O3P06FF69uwpli7o6enh6uqKTCajsrKyw+r22gu5XI6VlVWzqde7Gf7+/rz77rts27aNpKQktFotDg4OeHl5NRgc7O3teeWVV1i/fj0nT57Ex8dH7Hfy8PCgX79+DXosXFxcGDBggFhG4e/vz3vvvce2bdtITExEp9Ph6OiIp6enuI61tTVjx45tF8vXvxXHjx+nqqrqfyLDY2FhIbLeWVpaEh4ezr59+zh79ix+fn7ibwIrigA/Pz/s7OwIDw8Xt6Gvr49SqeTo0aPIZDKsra3p1avXHTmvfyOEwENqairLly+nqKiIp59+mu7du6Onp4eJiQmRkZEMHDgQJycncnJymDVrlpjBvlETvYmJiXj/Dx06RHBwMFKplFOnTlFfX09oaKgoHtmtWzeio6NxdnYmOzubp556ij179uDh4XHTTEV1dXV4eHjg4+PD2bNn2bFjB+PHj8fc3Pymrk1L7FadOnWia9euLFu2jI0bN+Ls7MyUKVPo27fv/7weRkfA2toaPT29RnaiRqPpUA2L24XWBpPq6urYvXs377//Pvr6+gwfPpygoCAxu/vbb7+xbt26RuvdbIWKnp6eSIU/ZsyYZgkXLCwsOqyHsd2OhTBYLF++nJycHEpLS9FoNNjb23P48GGKi4s7XD3xXkdVVRWnT5+muLi42Wiyu7s748ePx8TEpJFR7ujoyLvvvouNjQ06nU5kB3FycuLxxx9vZGwKcHZ2ZuzYscjl8kb1uDKZjEmTJuHv78/BgwdJS0ujrq4OKysrwsLCGDFiRCN2LFtbWx5++GECAwPp06dPg+bn0NBQZsyYQX5+Pt27d79naAnvZvj5+d1QCMrAwIDevXvTu3fvRr/16dOHPn36NPguIiKiUfamc+fOzUaKJRIJXl5efP311zd59E2jvLychIQEkVnreoPcysqKkSNHin0yKSkppKamEhkZKVJdC31OJiYmBAcH4+np2UgQMDk5mbS0NCoqKpBKpTg6OhISEtJkXbpGo6GkpITU1FTy8vJEmmkzMzM8PDzw9fVt8KwXFhaSnJxMfn4+69evp7a2loMHD1JfXy9GlszNzXnggQfuqvr09sLV1ZUnn3wSuPpceHt7N1kvPGrUqAb/F7KewjP29NNPi7/d6Pm+j7ZBT0+P3NxckWnm+eefp1u3buLzaGBggLu7O2lpaaSlpaFWq5HL5WRlZbW6N83b25ugoCDi4uJEkpPTp0/j5OQk3muBpv7a/ejr69/Ufq6FgYEBXbp0YebMmSxatIjt27djY2PDoEGDGjhDgtHaliCnUqnkypUrBAUF8frrr+Pk5HTT27iP5uHk5IRMJmtEHKPRaMjPz79DR3XrUVRUxL59+6ioqGDOnDm8+OKLomNdX1/PunXrOiQob2ZmhpubG7GxsYSHh/P000/f8nmo3Y6Fm5sb/fv358iRI7i4uNCvXz/Ky8spLCxk7969WFtb3y+Dug7FxcUsWbKEuLg4Pv744yYdC0EYrjkEBATw/fffN/pu8eLFza4j9FI0B4lEQkhICCEhIa04i6uOxaxZs5r8LTg4uNlmufu4D7ha+7l06VI2bNggEgbk5uZy+fJlDAwMiIyMpEuXLgwZMgRDQ0Pq6+vZtWsXy5Yt4/nnn0elUrF9+3bR+Ndqtbzxxhu4uLiIjkVdXR3bt29n9erVJCUliQxYpqamDB8+nMcff7wR81BJSQnr1q1j7dq15OXlNdA98fPzY+bMmQwbNkx0tDMyMtiwYQOJiYkkJCSgVCrZu3cvp0+fFrfp7u5+W8WebiV0Oh3l5eXs3r2bgoIC4Go5Q1hYGF27dm0QsUtMTOTkyZNUVVURHBxMREQE5ubmqNVqrly5wqVLlygqKhLvn5GREXZ2dmJpZVsiwmVlZWRkZJCVlUV5eblIIWpsbCzW87u7uzcb+dPpdKSmprJ79240Gg2enp707t27yQxdeno6R44coby8HLhqJI0cObJR3b0gIrp27Vp0Oh1OTk4MHTq0yci6TqcTz0EI1tXV1aHVakXVektLS+zs7HBzcxOpeluKZKpUKs6fP09aWhohISGNhO9Onz7N2rVrqampEUVjhR6C1mbfbGxs6NatGwkJCZw8eRJ7e3syMzMZNGiQqKsUHx/PmjVrqK+vx9DQED09PSorK5ss+bgZWFtb8/DDD1NSUsLatWuxtrYmMjKSS5cuERsbS0lJCeXl5ezZs4eqqiocHR158MEHW7VtjUaDUqkkKSmJP/74AxMTE4yNjQkKCrpfDtUBEPp4ru89UCqVpKSk3KGjuvVQq9XU1NRgYmKCo6Oj6FSo1Wri4+PF+aq9sLGxISIigvXr13P48GEGDRqEr6+v+P5rtVqKioowMDDAzMysQ8p3OyRjMXz4cJEXX0BhYSE5OTk4ODiIUcFz585x7NgxKisr27QvHx8fxowZ0+EaAfdxH/dx+7Fr1y6+/vprQkJCePTRR3F0dCQtLY0FCxaQl5fH9OnTGTp0aCMjrbi4mE2bNmFlZUWPHj3o1KkTSqWSzMxM/P39G5RT7Nu3j48++kjMyHl6elJbW8vRo0f54YcfqKys5PPPP2+QgVCr1dTX1+Ph4cHQoUOxt7dHo9Fw6tQpduzYwU8//YSHhwfdu3cH/j8TOHToUDFq+sADDzBgwABx8G5K5ba8vJzjx4+TkJDQ5ms4adIkPDw8bhv7lE6no6KigmXLlvHVV1+RnZ0tNr+6ubk1Wv7YsWN8+OGHZGVl8fDDD+Pq6opSqWTPnj3s3buXuLg4cnJyqKioEPUvXF1dCQwMJDo6mlGjRjUp9tkUqqurOX36NPv27ePUqVOkpKRQXFxMdXU1MpkMc3NzOnXqRGhoKIMHDyY6OrrZ3q/ExETmzZtHaWkpgwcPxsHBoUnHYv/+/eL5Afj6+tKnT59GVOBqtZrTp0/zwgsvIJFIGDhwIIMGDWq0vaqqKuLi4ti3bx9xcXGkp6dTUFBATU0NGo0GmUyGqakpNjY2uLq64uPjQ1hYGIMGDWpASXk9BEG96OhoDh8+zJo1a5g5c6ZYorZhwwaSkpJ44YUX6N27N4aGhpw5c+amIptSqZTAwEBcXV05evQoDg4OYrBKcPTXrVtHSkoKL730Ej179sTQ0JC4uLg2Pb92dnaMGjVK1AhxdXVl5syZ7N27F/h/Zfi8vDxKS0tFOt7c3FxxfyYmJjzyyCOEh4eL27WysmLYsGGYmpqi1WpJTU2lqqoKKysrke6+srKS/fv389JLL4misPfRNgQFBTVZ0aBQKBoEZ/5tsLCwwN/fn927d7Nr1y4sLCwwMDAgLy+PmJgYMevXXhgaGtKrVy9GjRrFvn37+PTTT+nXrx9WVlZidj4lJYWRI0cSFRV1dzgWCoWC9PR0zp8/T319vRjdCAsLa1TLdeLECT755BNxEL5ZjB8/nhEjRtx3LO7jPv4F2Lx5M8XFxbz44otER0cjl8vp3bs32dnZfP311ygUiga9HQIKCwspKSlh5syZjB49Wix5qK+vF9XR4arhvnjxYvLy8vjiiy+YPHmy6HQMGTKE5ORkNm3axIQJExgyZIi4fXt7ex555BFUKpUYDRbWKS8vZ9euXWRlZYmOhaurq2j87t27Fz09PbF8sKVBurS0lLVr17JkyZI2X8PQ0FA6dep0WwwbnU5HTU0NS5cuZcGCBaJTERUVxeuvv87AgQNbPN+cnBwuX77Mxo0bWbx4MWlpaY0ichUVFVRUVJCYmMjBgwdJTU1lzpw5NxSYKy0tZcuWLSxbtozY2Fhqamoa/K5Sqairq6OgoICTJ0+yb98+Jk+ezDPPPNOI1lYQ5/Pw8KC0tJSioqJmVcwTExPFbAVcFaMrLCwUjWoBCoWC5ORk4GqzsCDUdi3Ky8vZtm0bv/76K3FxcdTW1jban0ajQaFQUFJSwsWLF9m3bx/W1ta4u7u36FjI5XI6d+7MzJkzsbKyYvPmzdja2jJp0iSR4cjQ0BA7OzuUSiWHDh0iIyOjSR0RoTyjqUyGs7MzYWFhbNq0iTNnzhAcHNzguCoqKjAyMsLW1halUsnBgwfJzMxsU4Ouk5MTDz30UIPv/P39G+yve/fu4nvaFMzMzJg9e3aD7+zs7MRsRnV1NX///TfFxcW8+eabuLu7o9PpSExM5O233+bixYuEhYXd77VoB8LDwzE3N6eoqKjB90IJa05Ozr9Sv8jS0pLhw4eTmJhIXFwcSUlJGBsbI5PJCA8PZ9SoUWzYsKFD9uXh4cFzzz2Hubk5hw8f5sSJE6JUgU6nw9bWlqFDh3bYPNJuCz0rK4sVK1Ygk8kaRAqbMgjuo23QarXk5uaSmpoqUvVVV1ejVCqRy+Vi+YAgTOji4nLDB0Sj0bBz506OHj0qTu6jR4+mW7duN91Al5WVxcaNG8nNzQWulscNHTq0RXErgfLw0qVLZGdni1E5lUqFvr4+xsbGDc7JycnpXxUVUiqVnDt3jh07dohGkJGREf3796dXr17iPdBoNPz111+cP39evE+TJ08mNDT0piezxMREduzYIQ7gvr6+DBs2rMlI87XQaDSkp6dz6dIlcnJyKC4upq6uDo1Gg76+Pqamptjb2+Ph4YG/vz+2tratulf5+floNJoGVJNSqRQ/Pz/UarX4PF0PrVZLUFAQgwcPblBHff1zm5iYSGJiIj4+PgwcOBBDQ0PxuNzc3Bg0aBA///wzBw8ebOBYyGSyJgUOPTw88PT0pL6+XuwH+Tc9ky1Bp9NRX1/PkiVLWLBgAVeuXBGdijfffLNVka7Lly+zePFiTp48KSrUh4eH4+LiIuofpaSkcPjwYerq6kQWExsbG+bOndts9LyyspL169ezcOFCkpOT0Wq12NjYEBYWhq+vLxYWFqhUKgoKCjhz5gzJycmkp6fz/fffU15ezjvvvNPIcLG2tsbT05P4+HgKCwubrPWurq4mLS2NmpoaDA0NUSqVKJVKEhISCAgIaNDnI5TSwFVj9noGJK1Wy9GjR1m4cCHx8fGiSnRoaCgeHh5iRq22tpaioiIyMzO5ePEiZWVlGBoatrrs1NTUlBEjRlBSUsKuXbuwsbFh2LBhREdHs3LlSr777juRztLLy0uMJGu1WrZs2cLJkyfJzMykrKyMb7/9Fk9PTyIiIkQBQH19fcLDw/nnn39ITU3lkUceaZAVGjx4MKtWreLbb78V9+Pj43PXauJotVpqampQKBTI5XL09PSorq4mIyMDuKqT9L8yBtwquLi4EBwcTGZmZgNiFaF8cOfOnWIv190Md3d35s6di7W1daNMg4GBAaNGjcLT01PUsJDJZISGhjJv3jzi4uIoKSlBKpXi7OxMREQEarWagIAAunTpIj5js2bNQqPRiH237u7ufPDBB/Ts2RO4OgeOGzeOsLCwBr1AMpmM4OBgXnnlFQYPHszly5eprq4WCW08PDwICgrqMAe53Y5FUVER+fn5vP766w3KCW6XEmV1dTVbt26lurqakSNHUlNTw6FDh0RuXjs7O0aPHo2Pj49ovOh0Oqqqqti7dy8JCQlUVlZiYmJCYGAgffv2bTTJCFmZ+Ph40tPTxQZQe3t7unXrRmRkZJN1llqtlsuXL/P333+TlZWFTCbD398fT0/PVqWbKioqiI+P59ixY1y4cIGMjAzy8/MpLS2ltrYWtVqNTCbDwMAAKysrHBwc6Ny5M/369WPs2LEtCiYJDCG///67OGmWl5fj6enZ6tIDuJpiP3v2LPPnzxcN1jFjxjSZ5hf2ERsby7Fjx0hKSiIjI4OCggKxjlhoGhTOydHREX9/f/r378/IkSMbMBrdq1CpVJw5c4ZPP/2Uv//+m/r6eoyMjMQJ/noD6uLFi/z666+UlJQAVyPzH374YaNm+pagVCo5fPgwn3zyici08cQTT7TIsV9cXMyRI0c4ceIEycnJZGZmUlRURFlZmUiLJ4hiCqrKgYGBDB06lAEDBtyQNcre3h6ZTEZWVhaenp7IZDLxndHT02sgBHgtjI2NcXFxuSHTWFpamviefPjhhw3eUY1Gw+nTp1GpVOTk5DRat6KigoSEBJKSkigsLBT5xWNiYtBoNGLPxf+KUaFSqVi0aBFfffUVV65cwcDAgP79+/PWW2/Rt2/fVo1neXl5bN26FY1Gw7hx43jwwQcJDw/H3t4eAwMD6urqyMjIYPv27Xz99ddUV1dTVlbGxo0bmTBhQpOEAhqNhkOHDvHrr7+SlJSETqcjLCyMadOm0bdvX9zd3TE1NUWtVotR/vXr17N8+XKqq6tZuXIltra2/Oc//2ngmFpbW4uZjNLSUtEJvvY8MzMzKSgoEOm5hbkkPj6eCRMmNDCWr81YCI7FtSguLmb//v2cO3cOnU5HUFAQM2bMYODAgTg7O4uGSn19PWVlZeTl5ZGZmUlCQgImJiYt0knb2toyefJk0UmwsbFh0qRJdOrUCWdnZ1Fvw9zcnPT0dPT09AgMDGTs2LEiL75EIsHCwgJnZ2ccHBzo3r27yKZ0/Tjk6OiInZ0dXl5ehIWFNRjPhgwZgoWFhfiOBwUFifu5G50LY2Nj+vXrR15eHl9++SUGBgZoNBqqq6uJjo4mPDz8fgVFOyGVShk7diz79u1rpKNQXl4uvv82NjZ36AhbBxcXl2Z7Tg0MDBg0aFAju8jAwIDAwECRufF6XEt8JJFIGineu7q6MmfOHPH/hoaGzYoyC6Qlt0NIs91vhKGhIQ4ODlhYWNw25c9rUVdXx549e0RmmNOnT5OcnIxGo6GiooLKykoiIyNFTnWdTkdRURGffvop+/fvR6FQYGJiQk1NjTjAPvPMMw1udGpqKj///DP79u1Do9FgbGyMQqGgqqoKV1dXXnrpJUaPHt3AcNHpdCQnJzNv3jxOnTqFiYkJlpaWHDp0CHt7+0ap+uuhVCr5448/WLVqFUlJSVRUVDSZehaiZFVVVWRlZREfH09MTAwXL17kxRdfxN3dvcntS6VSevXqha+vr+hY7N27lyeffLJVGQ8BZWVloqojXJ00w8PDm8xYKRQKfvnlFzZs2EBycnKztJwKhULkXs7MzCQuLo6YmBhSU1N59tlnb8rxudsgOGLXOhXGxsYMHz6cV199lcjIyAYTrJ6eHiNHjmTTpk2iY7F582Zmz54tMrK1Bvn5+cTFxYlOhY2NDZGRkc2WmNTX1zN//nz27dvHpUuXGjXWXbucYOykpaVx4sQJjh49yuOPP860adOadQ7gamnj4cOH+frrryktLcXR0ZFLly6xevVq3N3dmx0ghYzWjVBbW4tGo6GmpoZz5841aQAIPRoCdDodly9fZsmSJRw+fBi1Wo29vT0mJiYit/2/nUr2+ndfo9GwZMkSvvzyS7KystDX12fAgAHMmzePXr16tfoZVKlUqFQqhg0bxquvvtqILc7c3FzMfGVkZLB8+XK0Wi05OTkcO3asScciKyuLTZs2iQa5t7c3zz//PA8++KCofCvAxsYGPz8/OnfuTGVlJRs2bKCqqoq//vqLqKioBlkrS0tLURNBoVBQUFBARUVFA2dZ0G0CGDduHPn5+aJjcS3DjU6nE4XioGnHoqCggLS0NHG9QYMGMW3atEYMRBYWFjg4OODv7y/OZdez6VwPS0vLRgaNi4tLgwCagYFBg/NvCgMHDmTgwIEtLgNXnaTy8nK6dOkizrvXHktz7/XdCJlMRq9evbCysiI1NZXa2lrkcjn29vYEBwffEZvn34gRI0awYMECkeJcgEqlIi4ujhUrVvD888//z+gC3etot2Oh0+mIi4vjhRdeELUL4Gpk4nYOIBcvXmT16tX07NmTV155BWtra+rr68nKymog8KPT6fjxxx9Zvnw5Q4cOZerUqZibm1NSUsKOHTtYtWoVBgYGvPPOOyJjh5mZGYGBgSJftrm5OSqVit27d7N8+XJ+/fVXevTo0Sgi+sUXX/DPP//w0EMPMWnSJAwNDcnKymLDhg3Exsa2WDcslUqpqqoiLS1NrOEV9CE8PDyws7PDxMQEhULBlStXOHv2LNXV1Wg0GjIzM/njjz8wMzPjrbfeajYSJLBExcbGUl9fT2ZmJvHx8QQEBLQ645SXl8fevXvFwcDb25tu3bo1yXsuMICkpqaKDfx6enq4u7uL52RkZERdXR1ZWVkkJCRQU1ODWq0mPT2dpUuXYmlpyUsvvXRXRrduBLVaTUJCAvPnz2/gVIwYMYLXXnuNiIiIJlORISEhdO3alUuXLlFbW0tWVhb79u3D3d291TS+Fy9e5MSJEw22GRoa2ux11NPTExU7BaEoQUiqU6dOWFlZoa+vT3V1Nenp6aSkpFBXVyeWgvz000/Y2dkxZcqUZiN6w4YNIzU1lW+//ZasrCzMzMzQaDS4u7vz+OOPN1szLnDy3wgCw0VgYCAvvfRSkxkUoZ5eQEVFBdu3b2fp0qWEhobyxBNP4O7uLjoWX331FRcuXLjhvu9lCMrZcDXr+vvvv4tOhVwuZ9CgQbz//vsN6EpbC2tra6ZPn05kZGSTz65wPx577DH+/PNPdDod1dXVzV5zIeigVCqRSCSMHTuWUaNGtajW6+Pjw9y5c9m7dy8VFRVkZ2fz559/MmDAAPH9MzAwwNHRERsbG4qKiigsLKSwsLDBM5SSkkJpaSlGRkZERkaye/duMYtQV1cnOjZarZb8/HyKi4tFEcvrmRKVSiX19fXi/01MTG5YkiqRSJos2bsT0Gg0YpnW33//TVVVFf369ftXMCaZmpoSGRkplrDcR8fD0dGRxx57jHnz5onzjYDi4mKWLl2Kt7c3I0eOvC1Z4pqaGnbv3s2OHTsYOXIk48ePv+X7/Deh3Y6Fs7MzDz/8MLW1tQ0mpNs94OXk5NCnTx+mTZtGUFCQaMwItZHCw5idnc3ixYuxt7fn3XffpXPnzkgkEjEyee7cOQ4ePMioUaPo37+/eI5TpkxBLpdjamoqbisgIICjR48SGxvbKIWXlpbG5s2bcXd356233hInEqHs5dixYy2ej0wmY+TIkezcuRNzc3P69etHr1698PDwwNraGhMTE/T19VGr1VRUVJCSksKiRYs4ePAgcPVl3LlzJ8OHDxeFqq6HqakpPXv2ZPfu3SKn+K5duxgxYkSrHAuFQsHFixc5e/YscHWiCwgIaHYAlslkjB8/np07d2Jra8uAAQPEiLGVlZVovKlUKsrLy7lw4QJLlizhyJEjwFUnZufOnQwaNOieU87WaDQkJSXx/vvvs2vXLtGpGDlyJG+88UaLDYBGRkaMHDmS/fv3k5GRgU6nY8WKFUyZMgV9ff0bDrQ1NTVcuHBBjJjq6enRrVu3GzZ7zpw5k507d+Lk5MTgwYPp1q0bzs7OWFhYiJSUSqWSkpISTp48yR9//CE+C6mpqezYsYNu3bo122ujr69PZmYm3t7ePP3001haWmJkZISLiwv+/v7trvcMCAjAzMyMoqIiAgMD8fT0vOG1Kisr49SpU8hkMsaOHcu4cePEsaSyshKdTteiwKIw1twoiny3QiKRNFDCXbJkCf/973/FEplBgwbx8ccf06VLlzZxoUdERBAWFtai0aynp4evry9WVlaUlpaiUCgoLCxstJzwXAv17i4uLvTu3btV5ZLBwcFERUWxdetW6urqOH36NOnp6WJWRCKRYGdnh7u7O0VFRRQUFFBYWCi+MyqViosXL1JeXo6Xlxc2NjYEBgZy7NgxMXsnNHCr1WpSUlLQaDQYGhrSqVOnBmXDcDUTca2De+DAAaKiohg0aNA9oQFUU1PDtm3bWLVqFVKplBEjRrTYNH0f93EtJBIJ06dPZ8OGDZw4caJB1kKj0ZCYmMhnn31GbW0t48ePb/fcIIzj8fHxXLx4kenTpzf4XalUcv78edasWYObm9t9x+Im0W7Hwt7engceeKDBd+fPn283L/XNQiKR0KdPH/z9/RtESK8flI8dO0ZRURFDhgwRnQq4avS6ubkRHBzMvn37SExMFB0LQQn2eri6uuLg4EBsbKzI9y1s79SpU9TU1NC9e/cGZUGGhoZ07tyZgIAAsXyoOQQEBDB//nzgapOOg4NDgwZUATqdjtDQUJydnXnppZc4f/48Op2OrKwsjh071qxjAdCvXz+8vb1JS0sD4ODBg2RnZ+Pi4nLDtKMgRy+Uddnb2xMREdGiUxkSEsIXX3whCjI5ODg0aRwL5+Tg4MDrr78u1k+np6cTFxd31zoWTUXTNRoNFy9e5D//+Q+7d+8WnYrRo0fz1ltvERwcfMM63YEDB+Lt7c2VK1dE6tMzZ87Qr1+/G96nK1eucPz4cTEi6uHhQdeuXVuM6sJVRpXffvsNR0dH3N3dsbOza/I4dTodwcHBmJubM3/+fDIyMtBqtZw7d46UlJRmHYvk5GQOHTpEREQEI0aMwNHRsUOjUZ07d6Znz55s3ryZpUuXilkLgQmjrq6OpKQkAgICxNIqqVSKTCYTJzbhfJVKJbt372406V0PJycn9PT0iIuLY/r06fdc6t7IyEh0jv7880++/PJLcWwYMmQIn3/+OSEhIW2+T2FhYTds7pdIJGJT4f+x99XRUV1913ssM8nE3YUkxCBECG5JcIfiRVpqQFvo85S2UBdaKrQUKBQp7u4SSNAkECFI3F0mycQzPnO+P3jv+TIkhBjSPt1rzWKRuXPPvefeIz/bmxFcbSl1VCQSIScnh6417u7ucHBweGqfM+cfNmwYzp49C+DRXHb//n2tdCszMzM4OTlRwbemxk1JSQlKSkqgVCrh7u5OxRkFAgEaGhpw9+5d9O3bF2w2G0qlkkZchEKh1rrDwM7ODn5+fjhz5gzq6upw//59fPbZZxg3bhwmT54MHx+fdpNqPE8IBAL06dMHFhYWMDQ0hKura7tqwP7Fv7C2tsbXX3+NmTNnora2Vus7uVyO2NhYfPvtt3j48CFmzJgBHx+fdjs3mDk/Pj4e165dQ0ZGBoyMjJoZFv+ic+i0YcHhcJqFO0tLSyGTyZ6rx8LY2JgWAbaGjIwMqNVqhIeHIzQ0VOs7uVyOvLw8KBQKLQpB4NHmLDIyEvfu3UNJSQkaGhogk8lw//59qFSqZpuNgoICsNnsFlWwdXV1YWVl9VTDglFRZrPZrQ4gpoiud+/emDVrFj7//HMAjwqfMjIyWm3DwcEBAQEBiI2NRU1NDcRiMW7evAkfH59WFwZCCEQiEcLDw+nf3Nzc0L9//1YXdoFAgKFDh7bpnnR1ddG3b19MmTKFMqpUVlbSjc7LiMc9KUwx8scff4zw8HAto+KLL76Al5dXmzafpqamGDVqFO7fvw+xWAypVIpDhw49tb8ZYyw6Opr+rVevXs2KKlsCE1FhaOmeBCa9IyQkBNHR0di5cyeAR9HBJzE7AY8igU5OToiKisK0adPo2BUKhXB2dsbEiRMxfPjwDm9i9fT0sGzZMhQUFGDnzp2Ij4/XimJkZ2dDo9Fgz5491LBgRL5OnjyJnTt3orS0FAYGBsjKykJWVha4XG6rRePDhw/H2rVrcfz4cSiVSjg5OUEmk0EoFGLFihUduo/nCT09PXA4HFy4cAG//vorsrKyoNFoMHz4cPzyyy/w8fHplPHHFFM/DSwWS4tsoyWhqMrKSi22Jjs7u6cSBjDgcDhaTEpSqRSZmZlax5ibm9MaNZFIRMUAASAzM5PO3+7u7tDX19fa/MfHx0OtVtMIbEpKCoBH73ZLkUKBQIAxY8bg3r17OHbsGF1bCgoKcPbsWfj7+2P48OEYPnw4LCwsXjoFdx0dHbi5uTWrqfinQ6lUQiKRoLGxEQ0NDfTfkpKSFlWTGxsbERMTg+rqagiFQq2PQCB46Z7r88aQIUPwxRdf4JNPPmk25hUKBVJSUlBaWorw8HAEBASgT58+6NGjB2xsbGBkZASBQACVSgWJREJT8woLC1FQUIDs7GwkJSVRuvLy8nIolcoOUR3/i9bRYcMiNzcXx44dQ2hoKL766iut70pKSjBjxoxOX1x7wOfz2xQeY4pQ9fX1m9UB6Orqws/PDwYGBjTKQAjBtWvXsH79eiQnJ8PW1haurq5wc3ODrq4uCgoKmvEvA6A5vy3lsLeHAaM9jBN6enoYOHAg/T9TVNsaew2Px8OQIUNw7tw5akydO3cOs2fPbtWwkEqluH//Pt3k6+jowNvbG7169erSezIyMtKKuEilUtTU1Ly0jDxNU+UIISgsLMSyZcsQEREBuVxOjYpvvvkG7u7ubfZos1gsTJ48GTt37qRF3CdOnMCXX37ZKhVvTU0N7t27R5mP9PX1ERAQ0CzH+0loT8jZ1tZWa5Kur69HQ0NDi89KLpfj/PnzyMvLg5GREfT19WmkoK6uDqdOncKdO3cglUoxceLENl/D4/D29sa6detw5MgRhIWF4fDhw1Cr1TA0NKS0yE3VjxljqqqqCsePH8euXbvA5/PRrVs3zJgxAxqNBhs3bnxie927d8fatWvxxx9/ICwsDAqFAkZGRhg0aFCH7+F5QigUIiEhAXv27EFycjJd3D09PeHl5dXpMceIQHUFJBIJGhoa6P8NDQ1brO1qCUyqEwOlUomqqiqtYxh9CKberby8nCpGZ2RkaBkWQqFQK/LFGBbMuZsaFl5eXi1ej7u7Oz799FPY29tj3759KC4uhlgshlgsRmZmJiIiIvDHH39g2LBhmD17Nry9vf9lJHoOyMnJQVhYGDIyMtDQ0EDnNca5qFKpoFartf5l2MIeR1lZGT7//HMIBAJwuVxwOBz6YUgp9PX16UcoFGLgwIEIDg5+aoT5nwCBQIAFCxagqqoKP/30U7M+1Gg0EIvFqK6uRlJSEk6fPg0DAwPan2w2mzoiGMV0hh6cmS+aGnwv4x7in4AOz0qWlpaYMGECampqYGVlhfnz59Pvrl69+tzDoG19QSwsLMDhcDBs2LAnehDZbDbNgc3Pz8eRI0dw+/ZtLFy4EHPnzoWJiQl4PB7YbDbi4+NbjAqYmJiAENJssQL+v5R7V4PD4dBrUyqVlI2E0YZ4Evr37w9XV1cqIX/37l1kZmbC1tb2iRvL6upqXLlyheaS29vbo3///l2iFNkUXC4XxsbG9J40Gk2b7ulFQV9fn05uZWVlWLRoEa5evQqFQgFdXV1MmDAB33//PVxcXNrtnXJxccGQIUOQn58PiUSCyspKnDlzBm+//fYT3//CwkJKkQo8Sg8KDAx8Jn3H5/NhaGgILpdLF1mGlvbxDdChQ4ewdu1azJgxAzNnztRi8FEqlYiPj8fChQtx4sQJaljo6elRNe7W2KaagqF4Xrp0KebNmwepVAqNRkP1X5h6EQZsNht2dnZYvHgxpk+fTgsJGV0VjUaDkJCQJ6bz8Hg8jBkzBv7+/lpqyY/n1L+sqK+vx08//YTi4mKtWpJjx45h9OjRGDduXKfOz+fzuyw9TKFQaBV6ttW5BDxaLx4n22hqpACPniVDnSoSiVBWVgaxWAw7OztkZWVBLBZDV1cXrq6udN5zdXVFTk4OsrOzaWF3TU0NCgsLKWXrk4x6RsRu+fLlGDVqFI4dO4ZTp06htLSUemCLioqQmppKn8eHH3743AQS/1dRWFiIY8eOIS4ujm5YmU97GeKUSiXy8/Of+D2HwwGbzdYyOGQyGQIDA/8nDAuGvOH999+Hnp4eVq1apUVqwIBRVX98zD6L69FoNLh9+zYOHDiAhw8fQqlUUkdTcHCw1tw+Z84ceHp6YuzYsfj1119RWlqKuXPnYu7cubhw4QI2b94MPp+PefPmaTnf1Wo1srKycOnSJdy5cwcFBQVQqVQwNzdHnz59MHv2bLi6utK5k2HIDA0Nxdtvv41du3bhypUrEIvFMDY2xpAhQzBv3rxmNNQqlYq2ExMTo9VO3759MXv2bHTr1q3Tc3SHDQs9PT24u7ujuLgYU6ZMwYABA+h3VVVVL23x4sCBA0EIQWpqKmxtbZ/q8SkrK0NmZiacnZ0REhICLy8vuiEsLy+nTEyPw9fXl+bCP+6xZZiRuhpMfj+Hw6H9TwhpMSTbFIxH9c6dOxCJRJDJZLh06RJ69+7d4mTGCNc0TYPq1q0bhgwZ0uULHIvFapY2RQh5aSk/DQwMwGKx0NjYiEWLFiEiIgJKpRK6urqYOHEifvnlF9jZ2XUo5M3lcjFjxgycPXsWEokEhBDs3LkTb731VovHM8J2d+7coX/z9fXVEtzpSjDPqum5Gb2Hx3H9+nUUFhZi0qRJ6NGjR7PnCzza5DdVPGa0LdpqVDBgs9kwNTVtV5qMiYlJiylPmZmZiI2NRe/evZudb/v27ejTpw+8vLyaqTn/XVBTU0OjnEOGDMG9e/dQX1+PsrIyLF++HE5OTm0WY2sJXfnecblcLUOCMWbbAsbpwoDRa2gKhnXJwcGBpkIxxkRRUREkEgl69OgBMzMzOvf26tULN2/epBTH1tbWyMjIgEqlgkAggJubW6sRGw6HA3NzcwwaNAi+vr54++23ER4ejsOHD+Phw4eQy+VUnXznzp24evUqNm7ciKFDh/5rXDwjqFQqGql41mAMlqb7J4Y2+38FLBYLVlZWWLx4Mbp164Yvv/zymeyX2gI2m42IiAicO3cOYrEYpqamqK6uRnJyMm7cuIFvv/0WM2bMoE6KjIwMlJeXIyIiAlKpFCkpKcjJyYFGo8Gvv/5KCUtqamrg5uaGgIAAAI+iYr/99huOHj0KLpcLKysr8Hg83L17F1FRUbh58yZ+++03+Pr6gsViQSaTISUlBSwWC3fu3EF0dDTdV8THxyMuLg7x8fHYsGGDlgAu086xY8e02omPj0dUVBRu3bqF3377DT169OjUfNJhw4LZwNrZ2cHKykprgz5q1KiXduPn6+uLYcOG4c6dO/j111/xwQcfaKmLlpWVoaSkBD4+PtDV1YVAIIBQKERpaSmkUindAEmlUmzZsoUy7TyO3r17w9nZGQ8ePMDhw4cxa9YsAI8EBc+ePYuUlJRWWXkeh0ajQXp6Oh4+fIiUlBQUFRWhqqoKNTU1kEgkVE+ACc+2BywWC6GhoTh48CDNIz516hSWLVvWjAseeCRKeOvWLZoCZmhoCD8/v3ZvpjQaDVJSUug9lZSUQCwWo7a2FlKplIYw6+vrm1HQvawwMDAAIQT//e9/ERYWBqVSCT6fj/Hjx+P333+nTDEdxaBBg+Dt7Y3y8nKoVCo8fPgQsbGx6N+/f7NjKyoqEB0dTQvhGEXP9m7MmdByQkICEhMTkZaWBpFIhOrqatTV1UEqldLnVV1d3cyp0NJcwLAO5eTkwNfXl+amE0LQ2NiIXbt2gcViPVE46EVBLpejpqamxfeRESH7uxVsN4VGo4G1tTVWrFiBqVOn4tKlS/jPf/6DxsZGZGZmYvHixTh27NhLIVSpq6urFSFlFJLbAkKIVoEol8vVSoljYGlpCXt7e8THx1PDAgBNg/L29oaxsTEd035+ftDR0UFjYyMSEhIQGhpKhfF0dXXbnE7G4/FgZmYGExMTuLu7Y/78+bh//z727duHU6dOoa6uDo2NjUhNTcUbb7yBsLCw/7n6hn/xzwWLxYKJiQmmTJkCX19fbN68GXv37m1W1N0ZcLlcDB48GK+//voTj6mpqcH9+/cxffp0LF26FDY2NpDJZNiyZQv++usvHDhwAL1790bPnj3pbyIjI/HJJ5/gzTffxOHDh/Hxxx9j9erV+OijjzBixAjs3LkTe/bsQUxMDDUs7O3tMXXqVPTp0wcDBgygJCOFhYX44osvcO3aNVy/fh3Ozs5a2UA3btyAubk5du/eTc+Vnp6OZcuWISYmBkePHsV///tferyDgwOmTp2Kfv36oX///lrtfPbZZ7hx4wauX78OJyenFufDNvdth3/5f2DCdU3R1jzXFwE+n4/169dj2rRp+O6773Dw4EHKJFVYWIisrCwMHDgQmzZtomHugIAAXLt2DZ9//jkuXLhALUmFQgFXV9cWxcP09PTw008/Yc6cOXj33Xexd+9emJqaUlGl/v37U3Gl1lBVVYXDhw9j//79VCuAUf5lvMFNPx1Fz5494e3tjZSUFMhkMuTm5iIuLo6yNjVFbW0tzp07R9uzt7fH0KFD27yhqqysxL59+3Dw4EFkZWXRdBkmtNxV9/QiYGBggO+//x4HDx6kmxy1Wo26ujro6el12quoo6ODGTNmIC4uDrW1tVRIsSXDoqSkBNeuXaP/9/LyQp8+fdoVLSkrK8Off/6JI0eOoKSkhHqFmXePiYa191lNnz4d165dw5IlS3D06FG4u7uDy+WirKwMt2/fRn5+Pnr16oX33nuvzed8HD/++CNeeeUV/Pjjj5g4cSIUCgX4fD6ioqIgFovB4/GwcuVKODo6Ijs7Gz/++CPs7e2hUCgwevRoCAQC7Nu3D7W1tQgMDMS0adMAPKovi4mJgVQqxfjx4zF58mSEh4dj27ZtWLlyJQYOHIhr165R75NEIsFXX33V5rqWF401a9Zg0qRJEAqFmD9/PrKysrB27VoolUrExcVh2bJl2LVr1wtnKTIxMdEykhkRu7ZAo9FoFWvz+Xwtzx4DhnIWAC36bGxspCmuXl5eWgu9v78/dVQlJCRQRjjg0brY3kJRNpsNPT096OnpITg4GP3798d7772HTz75BLdu3YJKpUJBQQF+//13/PHHH+0697/4Fy8zGFIaLy8vrF69Gm+++Sb279+PU6dOISsrq0N7Ay6XS4kQXnnlFbi7u7c6j2k0GgQEBGDhwoXo2bMnTXOeO3cuYmNjcf/+/WYkPAqFAtOnT4ednR2mTJmCjz/+GBqNBvPmzQOfz0e/fv2wefNmFBUV0d8IBAKEhISAEEJrRYBHZCITJ05EcnIyUlJSUF9frzXfKBQKfPTRRwgNDYWOjg4IIRAKhVi0aBGWLl2K+Ph4rWsTCAQIDQ19YjspKSlISUlBQ0PDizUs6urqEB4eTr0ozMOeNWsWZs+e3dnTPxVMgbRAIGjzxtbd3R3h4eHYvn07zpw5g2vXroHFYsHOzg7jxo3DtGnT6MPT19fH4sWLYWxsjEOHDuHMmTO0SPq9995DYmIiVq9e3WyzxmKxMG7cOJw5cwa//PIL7t69C4FAgGHDhuG1115DcnIydu3a9cRrZpirvvnmGyQkJFA6WyYtiKHFZLFYNKoiFApBCHkqE1RL4HK5GDNmDG7duoX8/HxoNBocPXoUoaGhWjogarUaBQUFVC+DzWbD1dUVQ4YMeWobarUa58+fxzfffIOkpCRaB8LklDJRMIYRSigUQk9PDyqV6qVmgmqKy5cvQywWQ6FQUK+8SqVCVFQUVqxYgbVr13a6eHX69OlYs2YN6urqoNFocOLECXz77bdamyy5XI60tDTcu3cPwKONE8MG1RaoVCocOHAAn3/+OUpLS2m+PfOsmJQnNpsNXV1d6OvrQ09PD/X19VoT5pMwYsQIHDhwANu3b0dUVBSuX78O4NFm0dPTE++99x5mzpzZKgPT06BQKFBbWwsDAwM8ePAAjY2NcHZ2hp6eHr766iukpqbixx9/xKZNmyCRSFBTU4MvvvgC1tbW4HA4OHv2LBWZNDY2ho6ODsRiMXR0dPD666/D0dERu3btQklJCSZPnoyEhAQ6npVKJVgsFtasWYM7d+5gy5Yt+Omnnzp8L88ThoaG4PP5dGH/9ttvkZ2djZMnT0Iul+PChQv44osvsHr16hdaPGxvb09Z9wghyMzMRGlpKXr16tWqAc9E4Bh9HOCRQ8DPz6/Zsebm5pTCljEs1Go1xGIx2Gw2vL29tRZ6V1dXmJubQyQSISEhASqVihowHTEsmoLL5UJfXx+BgYE4fPgwQkNDkZSUBJVKhYsXL74QQovCwkJ8/fXXOHjwIPr27Yuff/4ZQUFBnT4vj8fDpEmTWqxFZOiCnxeGDRuGGzduPDWluCNg1NPDwsJw/PhxJCUloaqqChwOhyrFjxw5UkvjpK3gcrmYOnXqS9GHHQWTYigUCtGzZ098//33+PTTT5Geno7o6Gjcv38fWVlZKC0tRV1dHRQKBXg8HoRCIfT19WFpaQlXV1d0794dXl5eCAoKgomJCXWIP83JxmhzBQYG0mNZLBYcHR21dHaawtjYmEYCLC0tweFwYGtrC319fRBCYGhoCLVareWQZljwmP1C0xRiU1NT6OrqoqGhoZmGEpvNxrRp0+izZPZOHh4eVGPq8ft5Wjv19fWtajW1BZ1eFZKSkrB//37Mnj0b9vb29O92dnadPXWbYGZmhk2bNrX5eGbitbS0xMqVK7Fy5cqnHm9paYlly5Zh2bJlzb7v3bt3i6E0ZuAyFIGPY+jQoViyZEmLbWo0Gpw9exZffvklEhMTATx6gQwNDTFw4ECMGDECvXr1gqurKywsLLQs7gcPHsDf37/Ve3oSRowYgU2bNqGgoACEEJw/fx6VlZValisjhMRwx1tYWGDo0KFPLU5Vq9U4evQovvzyS7rQcjgcGBgYYOjQoRg+fDh8fX3h5uYGU1NTrc33zZs3MWzYsA7d0/NGaWkpWCwW9PX1MWjQIERGRtIisyNHjsDe3h7Lly/vVPG0kZERpk2bht9++w0ymQx1dXXYv38/PvjgA3qMSCTC5cuXaW6um5sbBgwY0KbFRK1WY8uWLfjyyy+pZ5bL5cLc3BwjR45EcHAwvL294eTkRDfcDLZs2YLFixc/tQ0Oh4O+ffu2qrECdC4n38HBAVFRUejTpw/u3LkDsVgMExMTdOvWDQKBAPb29igsLATwaHwZGxvDwcGBblQHDBiA8vJyfPLJJxg5ciQmTZoE4FFKGZOmolQqoVKptLw/DGxtbaGrqwtHR0fKyvV3hI6ODrZu3YqCggLEx8ejvr4eu3btgpOTE955550XtkERCoXw8fGBo6Mj8vPzkZmZiQcPHmDgwIFP9bZVVVXhzJkzAB69i/b29i0a3RwOBzY2NrC2tkZxcTGqqqogFotRVVUFR0dHWFtbaxlXbDYbAQEByMjIQFlZGUpLS5GVlQUWiwVTU1MtTaOOgs1m0zqM9PR0akCrVKpOPQulUgmlUgkej/dUimkGhBAolUpIpVLI5fIu23wzG6CXgfWqpayMrgAhBFlZWfjhhx+wZ88eAKB9DzyK7FdUVGDatGkd6oeXqQ87C8bAYLPZMDIyQp8+fTolZ9DWdUVPTw/m5ubNnIE6Ojp0g/545EQoFGo53jgcDmWLZIz/xym01Wo1ysrKcO3aNVy6dAnp6emorKykVMZSqZSmOjWFtbV1s7mOcQgBaDYeGcayq1ev0nbEYrFWO12hMN/pN47Rapg0adILWWA6svFo7286urnp6O8KCgqwe/duJCUlAXjUx0FBQVi9ejUGDhz4xE1pZ9OGLCwsMGjQICQlJaG2thb19fW4cOEC3nnnHRpmq6uro6JSwCOvYWho6FPvNTc3F9u3b6dFWGw2G/3798cvv/yC3r17P3Hy+7ulQ7FYLHh6euLrr7/GpEmTsGXLFqxYsQJSqRRisRhbt26Fk5MTpk+f3mHjgsViYe7cufjrr78gk8mgUChw8OBBLFmyhD6nkpISXL16Veua+vbt26Z3MiUlBevXr6dGBZvNxujRo7Fhw4ZW62ja+5zaOz5kMhnEYrFWOwKBAEZGRi3OPR4eHti0aRMWL16M1NRUyGQy9OjRA3FxcaisrERmZqaWINrj12RgYICpU6fC09MT9+7dQ3p6OvXkNwUhBPX19ZDJZKivr0djYyMIIcjNzUVlZSXS09Ph7u7ernt9mcDkO+/cuRMTJkyg9/Xrr7/CyckJY8aMeSGbFxaLhT59+mDQoEEoLCyERqPBkSNH4O/vj5CQkCdujhsbG7F27VpaI2ZmZoZZs2a1mMLLYrFgbW0NOzs7FBcXo7CwkBZue3p6Us9k0+MDAgJw7NgxKBQKqnvE5/Ph7e39xA2qXC6HQqGgtJlPGxtyuRxFRUV042Bubt7p9Tc6OhpnzpzB5MmT0bdv35eSde+fBJlMhmvXruHAgQPUMz5+/Hh4e3uDxWJRnZZ+/fp1Odvi3xnPMyrH5XJbFPBtDS1FQVqLjDBist999x3CwsLg5OSEwMBAuLu7w9TUFCkpKTh58mSLv9XV1aVG19PAtPPtt98iPDxcqx0TExMkJSXh1KlTbb7P1tDp1UBPTw8ajQbXrl2Du7s7vUFjY+P/CXq0Z4Ho6GikpKTQDZSdnR1+/PHHp6osMxRsncHYsWNx/Phxmqt8/PhxvPbaa+DxeFCr1UhPT6cGj0AggLe3t1bh0pNw7do1rbxIR0dHrF27Fv7+/q3ek1qthkQi6dQ9PU+YmJjg9OnTcHNzA4vFwsKFC5GTk4MtW7ZAJpMhPz8fP//8M2xtbTF48OAOb8i8vLwwaNAgnD59Gmq1GpmZmYiKikJwcDAtHGW88WZmZggICNCKKLaGU6dOaWmzuLu7Y+fOnU8NxyuVynYTB7QH0dHRePPNN1FdXQ25XA6ZTIbx48dj1apV8PX1bXY8kz/LhMONjY0RHByMxMREfP/99+DxeDQKyefztQqSFQoFbt68idOnT9MNrKurKyoqKmBsbAw+n089xyqVCgcPHkR2djYaGhogFouhr6+P2tpa/PTTTzQP9u8MFosFDw8PbNy4EQsWLEBFRQXy8/PxzTffwNraGgEBAS+kaN3V1RXjxo2jtN/37t3DmjVrwGaz4e/vD6FQSD2LCoUC9fX1OHz4MNatWwfgkYe4d+/ereouWVlZ0Qj8w4cPqd6Ph4dHi6l6AQEB4PF4kMlkCAsLg0ajAZ/Pb5VNKzo6GtevX8fAgQPh4eEBPT09CAQC8Hg82q/MPTQ2NiIsLIzWWHA4HAQHB3e0CwGARqi3b98OHx+fZ0ZJ/S/+P0QiEWJjY6FQKODm5oaPP/74XwXo/0HU1tbi9OnTOHfuHCZPnoyvv/5ai7Tk4MGDWgycnWnn1KlTuHDhAqZOnYqvv/5ai0Bo//79XdIO0AWGBSEEKSkpiIiIgKmpKZ2MXn311X8HSQeRk5OjpSg7fPjwNnELK5XKTqdc9O3bF25ubsjLy4NKpUJ0dDQKCgrg7e1NRc0YWFpaYtSoUW3aUDRVqgUeGTBM7nJrkMvlrao3v2xgPOiMgS0UCrFy5UoUFRXhzJkzUCqVSE5Oxvfff09p3Tqqtvr6668jLCyMhjCPHj2KoUOHorKyEpcvX6bHubq6YvDgwW0+L1OPwGDWrFlazDdPQkNDw1PV5DsDDw8PfPnllxCJRLh79y7CwsJaPd7CwgJ//fUXAGhFDFpKf3Rzc8OqVavo//l8PkaNGoVRo0ZpHWdsbKx1LsZgCAwMxNtvv03/fv78efTp0wcrV678x9CAcrlcDBs2DF999RU+++wz1NbWIjExEV9//TV+//13akw/T7DZbIwfPx55eXlYv349RCIRwsPDkZaWhjFjxqB///6wtraGXC5HdnY2Lly4gBs3bkCtVoPD4aBnz574+uuvW63laWpYMDUNbDYb3bt3b/F3PXv2hJ6eHmpra+k4fJphUVxcjD///BM//vgj3NzcEBQUBB8fH9jb28PY2BhsNhsNDQ3Izc3FrVu3EB4eTh0udnZ2T6Scbivq6+uRmpqKurq6Tp3nX7QdjEI38IiuvSXnyL/4+6G9c6BIJEJaWhrMzc0REhKiZVRoNBqUlJR0iV5HWVkZ0tPTYWFhgZCQEC2joivbAbrAsPDw8MDWrVub/b0zFeX/63icMpbJ1W4NhBA0NDTQouqOgs/nY8yYMYiLi4NYLIZSqcSZM2fg6emJhoYGupljs9lwcHBos6fsccpYe3v7pxYxE0JQU1OD6Ojojt/QCwaj8Pvdd9+hoqICkZGRUKvViI6Oxk8//YRVq1bB2dm5QxuyESNGwNXVlfLbX7t2DWKxGCKRiPYZo4jeUn7mk1BbW6uV/8kUyLYGRmX84cOH7b6PtsLOzg6vvfYagEeq43Fxcc+src7C2Nj4udWZPU/o6uri1VdfRV5eHv788080Njbi1q1b+OWXX/DNN9/AxsbmuV+TgYEB3nrrLRBCsHv3buTl5aGoqAjbtm3Dtm3bWvyNvr4+fH198cMPPzy12NjU1BS2trbQ0dGhkVwzMzM4Ojq2OC8zxqdIJKI6LE8r3GY0ORQKBWVmeRp4PB4cHBzw2WefdbiujkFSUhLKysr+Vmmnf2cQQqBSqeg6zxBg/Iv/XTB1eozTQ6PRoLi4mO7FugpM0XrTdoqKihAbG9smptK2oNOGBZfLhUAggEgkgkqlohMTl8t97urb/xQwCrJMgXRLbACPQ6VSITExEadPn+50+2PGjMGWLVtQVVUFQgjOnj2LZcuWISMjA6mpqQAeLcz9+/eHra1tm87J5/PB5XKpxkF9ff1TRX8UCgXu37+Pixcvdu6GXjDYbDb1iL/33nt4+PAhpFIpLl26BGtra3z88ccd0gXg8/mYP38+PvroIxBCIBaLcfnyZdTX19NUJltbWwwaNEhLZfhpEAgEdOIBHnF5P23D0djYiNu3b/+tjcCuxMCBAzFw4MAXfRnPBEZGRli2bBmKiopw4sQJ1NfX48yZM7Czs8P777/fZiHCroS5uTmWLl0KNzc37N+/H6mpqbT4UalUgs1mQ0dHB0ZGRrCwsMDgwYPx/vvvN6uxaQkMq4ulpSVlPHNzc3ui+jrwiNQjOjoaGo0GbDYblpaWrRqarq6uGDlyJBISElBdXY2GhgZIpVIt0T8OhwM+nw99fX2Ympqie/fueOeddzBy5Mh2OyaYlL26ujo0NDTg3LlzNNqdlpaGGzduNHP8cLlcDBo06KkRVqlUivLyclRUVFClez6fDyMjI9ja2sLAwOCp59BoNCgvL0d5eTllqeFwOBAKhbCwsIClpWWbUrWSk5NRUVEBW1tbuLi4gMfjUea6mpoaKBQKcDgcCAQCmJmZwcrKqtV6hsbGRohEIlRVVVGRUua9srW1haGhYYv3plarIRKJUFFRAblcDrlcjuTkZBrhFYvFiImJaabK7eDgAEdHxyc64dRqNUpLS1FRUYHGxkZawM8wIjGsRK0hOzsbRUVFMDc3h4uLC/T09NDY2IjS0lKIxWLIZDIqIGliYgJbW9unrifMO8CMQY1GAx6PB0NDQ9jY2MDY2PhvrffTlTAzM4ObmxsuXLiAyMhI+Pj4wNDQELW1tThx4gRSUlK6pIbNzMwMrq6uuHjxIiIjI+Hl5QVDQ0PU1NTg+PHjSEtL67Jn0umrLS8vx/Hjx6m6KIOxY8diwoQJnT39/ySsrKxgbGxM01Hu3r2LwsJCWFhYNHvBGAXZu3fv4ueff+6StCE3NzcEBgYiJycHMpkMCQkJKCgooJSGwKOFfOzYsW0+JzPpMhRrd+7cQWlpaYsTDCEEUqkUd+7cwdq1a7XSwv6u4PF4CAwMxGeffYYVK1YgNzcXVVVVOHr0KGxtbfHGG290qCaJ0WlgJvBLly7R71gsFrp164ZBgwa165wuLi7g8/nUCIyIiMCrr77arFAVeLQBYFI+du7c2SbPChOJYhaupgs0w5zT1U4JRvyyqKgIDQ0NUCgU0NHRga6uLiwsLGBtbd3MY8gUZRcWFtINAZfLhampKWXE6mga28sEOzs7DBs2jG6yLS0tW92oslgs2NjY4PPPPwePx6Obo6qqKuTk5EAoFILH42lFNcvLywEANjY2bdoE8/l8DB06lKaAtiXipq+vjxkzZmDIkCGIjY1FbGwsCgsLUVtbCz6fDz09PfTo0QODBw9G79692/XsPD09MWnSJOTk5AB4ZDi25lQZPnw4srKyoFQqweVy0a9fv1bbCwoKwvr165GWloYHDx4gJycHIpEIdXV1NNKrq6sLc3NzODs7IzAwEH379u2wNk5CQgIOHDiAxMRE5OTkoKKighowv/zyC3755Zdmv9HX10dFRcUTef/ZbDbq6upw6dIlnD59Grdv30ZxcTFUKhXMzMzg4+ODcePGYfz48XBycmpxs8TM/bGxsTh//jxu3bqFzMxMNDQ0UIa1QYMGYfz48ejTpw/Mzc1bvc/vvvsOJ0+exPz58/Hjjz+itrYWFy9exKlTp5CYmIiamhrw+XzY2NhgyJAhWLZsWYuRJZVKhaKiIly/fh1hYWG4e/cuSkpKoFarYWxsDG9vb4wdOxYjRoyAl5dXs0J6iUSCvXv34vjx46isrIRYLEZ9fT1dTyMjIxEZGdms3aVLl+Ljjz9u0Sitrq5GbGwsTp06hejoaOTn50MikcDAwAAuLi4YOnQoxo8fD39//1bXlm3btuGPP/7A6NGj8cMPP0BXVxcRERE4c+YMEhISIBKJwOFwYGFhgcDAQKxcuRKBgYEtnothN7p58ybCwsIQGxuLoqIiKJVKGBoawsPDAyNHjsTo0aOpCPE/De2N+pmZmWH48OGIj4/HtWvXcO/ePRgbG6O+vh76+vp45ZVXusRhbG5ujhEjRuDu3buIiIjA3bt3tdqZPn06Tpw40el2gC4wLPLy8nDnzh0sWrRIa5A/bcB3Berq6lBYWIiGhgbU1dXB2NgYhoaGKCwshI6ODvz8/GhKVklJCdLS0lBbWwuhUIhu3brB1dUVLBaL8pJnZGSguroaGo0GpqamcHd3h7W1NQDQyY3L5aK0tBQymQwmJibw8fHR2mDk5eUhKysL9fX1VD21Z8+e7Qpz9urVC926daMepJiYGOzZswdSqRROTk4QCoXQaDSQyWSoqKhAYmIitm/fjtu3b9Oc386EtFgsFlXdlclkUCqViIiIoPnCXC4X7u7u7aJ76927NxwcHKiyd2RkJHbv3o3JkyfDwcEBurq60Gg0kEgkKC8vx/3797Fz507Ex8fD1NQUGo2GFk12BAxvs1KpbJZHzAjYcTgcWiz5LDaMenp6GDFiBEpKSvDTTz+hrKwMhYWF2LVrF6ysrDBlypR2RRaARyll48aNw+7duyGXyxEdHU0XNQMDA/j7+7dbkXfYsGE4efIkzbcMCwvDzp07MXz4cFhYWEBHRwcqlYp6taKjo6mAo6mpKRQKRau5mmKxGAcPHsSlS5eo6A/w6L3q3r07XnnlFbz66qtdNodoNBrExMTg+PHjCA8Pp2r1XC4XxsbG6NOnDxYsWKCV1sfknJ4/fx5nzpxBcnIypFIpuFwuXFxcMGHCBEyZMoV6Qf/OGDFiBEaMGNGu33A4HPj4+FCaTODRgpqeno5r164hKCgIZmZmGDlyJEaOHNnuazIxMcGWLVva/TvgEQXjxIkTMXHiRPo3RpenV69e6N69e7vHd1uokZtizJgxGDNmTLvaMDAwQFBQUJfoQDwNYrEYpaWl4PF48PDwgL6+PgoKCqBQKODh4QFLS8tmfaSnp9dqvzU2NuLChQu4cOECysvLYW1tDXd3d8jlcpSWliI8PBxRUVHIzc3Fhx9+CHt7+2ZGkVwux7Fjx7Bq1SpkZWXBxMQENjY24PP5kMvlKCsrw5YtWxAeHo53330Xc+bM0dLveRLKy8uRmZmJbdu24cCBAzAyMqKfxsZGFBQU4M6dOy1SyqvVaqSlpWHjxo04evQoGhoaYGVlBTc3N2pM3b59G9evX8e4cePw2WefITAwUMtwYuhF9fT04OjoCEdHRzQ0NCA7Oxs1NTUwNzeHq6trM6PNzc2txWiFWCzG7t27sWbNGpSVlVG9FR0dHchkMuTl5eH+/fu4dOkSli1bhldeeeWp5BtisRjZ2dm4du0aduzYAeBRWp+TkxPda0RERDyRol+j0SAvLw9btmzBnj17UF1dDQsLC7i4uIDD4aChoQH37t2jukWffPIJBg8e/MKFNlsCj8eDp6cnJk6cCC8vr2bfM4QeCoVCK9sgNDQUdXV19J64XC6mTJlC6yZYLBbMzc0xadIkSm/NZrMxcOBArF69GhcvXkRWVhZUKhUcHR2pAcbj8ahQJvCo1GDcuHGU9vbxazMzM8Mrr7yiVbfDZrMxaNAgrXbUajWcnJwwevRoeHt7g81mw8DAoNMGX6cNCybP09fX97mnPpWUlOCvv/6CSCSCXC4HIQROTk6orKxEQUEBVq1ahf79+6OqqgpbtmxBZmYmFVAxNTXFe++9By8vL6hUKqSnp2Pnzp1obGykntphw4ZhwYIFMDIywoULFxAREQE7OzuqS9DY2Ii5c+di8uTJMDQ0RGVlJX7//XeUl5fTc5ibm+Pzzz9vt2EREhJCw/lKpRKbN29GXFwc/Pz8YG5uDrVajerqaqSlpSEmJgYKhQJOTk6YPHky0tLStDzXHcHQoUPh6OhI6T3PnDlDNTUMDQ0xatSodm2Cg4KCMGzYMGRlZaGmpgZKpRK///47oqOj0atXL5iamkKpVEIsFiMlJQUJCQlQKpVwdXXF2LFjkZSUhIiIiDa3l5qairy8PEilUigUCigUCkilUkgkEi3GI+DRhLpt2zYYGxtTNhYmHY3P58Pd3R3du3dvc9utwcTEBDNmzEBJSQm2bduGmpoaJCcnY8uWLbC0tMSwYcPaxcbCZrMxb948HD58mLJOMYu1nZ0dhg8f3u5NVHBwMAYNGoRTp05BJpNBLpfj888/x5UrV+Dl5QV9fX3IZDKUl5cjKSmJsoT5+fmhT58+iImJaab42RTV1dWIiIhAXV0dBgwYAGtra/D5fBQWFiIiIgJffvklhEIh3nzzzXZd95MgEonw5ZdfIi4uDkOGDMGIESMgEAhQWVmJ4uJiFBcXN4u0VFRUYPfu3di6dSuMjIwQGhoKKysr1NfX4+HDh1i3bh3y8/OxfPlyODs7/yMiF52FVCrFxYsXcf36ddjb23dI1OtZoaKiAp999hk+//xzuLq6/s8/r+DgYPTs2ZNGKfbt24dt27ZBJBJh/vz5GDduXLMNH5vNbtWIzs7ORlVVFYyNjfHOO++gd+/eMDY2Rm1tLWJiYnDy5Enk5ORg9+7dGDhwICZMmNCsjRs3buDjjz+GWCxGYGAgxo0bB39/fxgZGaGurg4PHjzAuXPncPfuXWzcuBGGhoaYPXv2UzeneXl5+O2333Dnzh2MHj0a/fr1g6OjI1gsFsrLy5GRkQF9ff0WaaGLioqwZcsW7N27F0KhEJMmTUJwcDCNppWUlOD69es4e/Yszp07B0IINm3apGU4CYVCLFy4EK+88go9b1paGlavXo2YmBj4+flhxYoVzZj7TExMmkUblEolDh48iFWrVqGmpgb9+vXD+PHj4evrC319fdTU1CAhIQGXLl1CQkICfvnlF/B4vKf2U0lJCbZu3YrU1FT07t0b/fr1g6urK/h8Pqqrq5Geno6qqqonkhCUl5djz5492LJlC7hcLkaPHo3Q0FC4u7uDz+ejrKwMUVFROHv2LKVCt7Kygo+PzxNTcGQyGZKSkiiZjJOTE/r06fPM06j09fUxbdo0TJs2rcXvuVwuPvjgAy3tKADNRFD5fD4OHjxI/89iseDj44O9e/dqHcfj8eDv7//EWqlPP/1U6/+Ojo4t1jYzbXTv3h3Hjh1r9h2Px0NAQMATI8Cff/55i39vN0gnkZCQQObOnUu+//57sn//fnLo0CFy6NAhkpiY2OzYrVu3EkdHRwKgQ5/JkycTqVRKz5eamkpmz55NPvjgA3Lx4kUyYsQI8tprr5HIyEgycuRI8ueff5K6ujqydetWEhISQq5cuUJKSkpIbGwsCQkJIcuWLSOEEKJSqUheXh65dOkSycnJIdnZ2eTbb78lkyZNInFxcYQQQn7//Xfi5uZGPvroI/Lw4UOSkZFB3n77bfLKK6+QjIwMQgghUVFRxN7enhw/fpyUlpaSjIwMcuXKFSKTydrdr6mpqeS9994jlpaWhMVitdovHA6H+Pn5kbVr15LCwkLy+eefP7HP2oOVK1cSXV1dAoDo6OgQAITFYhFPT0+Smpra7vMlJiaSN954g5iZmT31WfN4PBIUFEQ2btxIcnJyyIcffki/mz9//lP79NtvvyXdu3cnJiYmRCAQtOs9Y7FYRCAQEBMTE+Lg4EDWrFnzxHZyc3NJQEAA/a2trS0RiUStXptGoyHp6elkwYIFtH95PB6ZNGkSiY2NJSqVqs19qtFoSE1NDRkwYECz/ps4cSIRi8VtPldTxMTEkMmTJxM9Pb2n9pdQKCShoaHk0KFD5MGDB2T27Nn0u++++47I5fJm1xweHk5iY2OJRCIhGo2GEEJIfX09WbFiBeFwOCQ4OLjV6zt+/DhxdnYmEyZMIA8ePGj12EuXLhEbGxvSs2dPkpOTQ9tTq9WktLSUREZGavWTQqEgp06dIm5ubsTf358cOnSI1NfXE0IIUSqV5M6dO2TcuHHEwsKCbNy4kdTW1ra7fwkhJDs7myxcuLDD8yEAcunSJaJWqzvUflcjJyeHvPHGG2Ts2LEtzv8vEqdPnyYWFhZkx44dRKFQvOjLeemwbt06YmdnRwCQ7du3k8bGxjb9Lj8/n8ybN4++j15eXmTv3r1EIpFoHVdfX0+++eYbYmlpSQCQpUuXktLSUq1jampqyODBgwmbzSZubm7kwoULdKwykEgk5NixY8Tb25sAIBMnTiRJSUlPvL6ZM2cSHR0doqurS4yNjcnKlStJcXFxs/MqlUpSVVXV7PcymYxs376d2NvbE6FQSN5++22SkZHR7PcVFRXk7bffJkKhkLBYLLJ169Zm897juHfvHgkODqbrdHZ2dqvHM7h//z7x9vYmLBaLeHl5kRs3bjS7HqlUSs6dO0f8/PwIm80moaGhJCEhocXzffLJJ0QoFBKBQECMjIzIokWLSEpKClEqlVrHaTQaUlFR0eI5FAoFOXPmDOnWrRsRCARk5syZ5OHDh82uq6qqinzyySfEzMyMsFgssnr1alJTU9PiOZVKJUlISCBTpkwh06dPJ3PnziW///57l49fjUZDZDJZs/vtaqjV6ufSzsuATkcsDAwMYGtrS0WTmLCMiYlJq/R6XQUdHR24ubmhf//+MDMzQ48ePeDr6wsbGxta9HX69GloNBrcvXsXSUlJ1Etz9epVaDQasFgsGBoags/nIzIyEhKJBKWlpZBIJFqeTEdHR4wYMYLqNvTr1w8HDhygdQMWFhbw8vLCjRs3oFAo4Ovri2HDhnWo8MbT0xNLly6Fg4MDrl27hszMTJSXl2vloxsbG8Pe3h6+vr6YMGECxo4dC41Gg549e1J1x85g6tSp2L59O/X6M/3NiKq0Fz169KAe3ps3byI7Oxvl5eWQSqUghNDiMAcHB/Tq1QsTJ07EiBEjoFKpqGhQW++pqqoKpaWlNM2mPSCEQCaTUVXrzqRgtQQWiwVXV1csWbIEYrEYly5doulmFhYWWL58Obp3796m3GkWiwVdXV0sWLAAt2/fpv1jamqKwYMHd7iQtk+fPvjyyy/h7u6OO3fuIDc3F2KxGHK5nLZpZmYGJycn9O7dG5MmTUL//v3R2NgIFxeXVp8Vi8VCaGhos78LhULMmjULP/74I/Lz8ylrRWehq6sLDocDpVKJ3NxcWFtb0wJ1a2trmu7IoLq6GjExMSgpKcGiRYswbtw4GnHkcrno27cvJk+ejOTkZJw7dw6hoaH/syx4MpmMkjokJibS4v19+/Zp9WtoaCh69Oih9U4rlUokJSUhLS0NVVVVYLPZsLW1Re/evbVyyiUSCeLj45GcnIwePXpg4MCBWhGHrKws3L59GwKBQKv2oaysDImJiSgqKsLZs2dRX1+PK1euoLq6mv7e0NAQr732mtb5lEolioqKkJSUBJFIROtxzMzM4OLiAldXVxgYGDybDv0bQ09PD8OGDcOECROapVLo6+sjJCQE586dQ3l5ObKysrQorQHg9u3biIuLA5fLxaRJkzB69Ohmc6Curi769++PkSNHIiUlBQ8fPkRCQkKrjFvAo2haaGgoli5dCisrq2bn5XK5LVIHM6meRUVFCAwMxNSpU1ukVTY3N8eCBQtw6dIlNDY2Yv/+/ZgzZ84z0QI5efIkiouLQQjBO++8g/79+ze7HmYszJ07F5988gkSExNx5coV+Pn5PXFdkclk6Nu3LxYtWgQPD49mUT0mjaclVFVVITIyEjk5OfD09MSUKVOajXfg/0fsr1y5ArFYjNOnT2PWrFktZrvI5XLcvHkTxcXF2LFjB63x6+rUU4lEguvXr8Pb2xsuLi5deu6mYBj0vL29WxWa/Seg04aFo6NjM/GnwsLCp1KJdhV0dHS08uJ1dXXp/zUaDc2V5vF4yMnJoZt8T09PDBgwAIQQ1NbW4uDBg4iLi6O0gjU1NVCpVFqS6Obm5lobCD6fD7VaTY9xc3PD8uXLcenSJZw/fx5XrlzBwIEDMWvWrA4pZ7q7u2Pp0qUYMWIEkpOTUVxcjIaGBmg0Gspi0a1bNwQEBMDS0hLAo01x7969sWLFCmg0mlbDjE+Dr68vPvzwQ1RXV9NNokAgwLBhwzp8Tk9PT3z44YcYNWoUUlNTKXcyIYQW0rq6utKUL+DRpN+/f396T20R4xo8eDB0dXWhVqs7zK3PPNvW2H2MjIzw2muv0Rx1IyOjNj1rDoeDXr164ZNPPoG/vz813CwtLZ/KAPY4uFwugoKCtDbztra2Hcptbwp/f394eHjg7t27SEtLg0gkglQqBYvFoqwj3bt3h4+PD12UDQ0NMXr0aBBCoNFoMGDAgBaflUwmQ2ZmJnJycmjhuUKhoIa8SqWiTDCdhY+PD4YOHYqTJ09i1apVCAkJQUBAAHx9fWFnZ9fs/RCLxZRXnMk/fxy9evWClZUV7t2712I9U1VVFYRCIVVCr6mpQU5ODqysrODg4NDpe3pZIJFIkJCQgIsXLyI7OxuFhYXgcrm4ePGi1ubSyckJPj4+tK+lUilOnTqFw4cPIyMjAywWC0qlEjweDyEhIVi0aBHdLGo0GuTk5ODXX39Fz549YWZmRnOWxWIxDh06hB07dmDcuHFa9QlFRUUICwtDamoqHj58CIVCgZiYGGRnZ9PrsLGxwYIFC+hvGCa6bdu24cGDB1AoFFCr1TSFNjg4GIsXL9bimu8IlEol8vLycPfuXYhEIhBC4ODggD59+tD3gxHA02g0yMrKglQqhZ2dHYKDg2Fqago2m429e/fCxcUFAwcOBIvFgkQiQXR0NCQSCUaNGoUHDx4gNzcXY8eOpcYQs8HhcrkYMGBAl6k6W1pa0rSllmBnZ0e/q62tpenCDMLCwqBSqcDn8zF+/Pgnztvm5uZ0c19aWoqCgoI2OSFmzJgBExOTdq0H+fn5NNXT29u7VYcPk4oEAPfu3YNMJutwcf2ToFQqERUVhcbGRujq6raqem9oaIjAwEBYWlpCJBIhKSkJ9fX1rTpBRo8eDUdHx3anCopEIpr+2q1bN/Tq1euJ9+3p6UnXC+aaCCHNjlcqlSgoKKBzx7MAIQTV1dXYunUr/vOf/zwzw4IQgqqqKmzbtg0ffPDBv4bF06Cjo9PMio2NjYVMJuv05NtWNH0hW3qZjYyM0K1bN3z55ZdaniYWiwUOh4OysjLs27cPo0ePxuLFi2FiYoITJ05g+/btWufhcDitTl4sFgsjR45Ev3798ODBA9y4cQPr1q2Du7t7uwTKmkIgEDwx945ZeJKTk5GcnKz1XdNizJbYJoBHhktrasw6Ojr4+OOPO3TdrUFXV7ddRYpsNhteXl744Ycf2tyGsbExxo8fDz8/vw4vnJmZmcjOzqZFVi3BxMQE77//fofOz+fzMWjQoHazNj0OtVqN1NRUalTo6enBz89PSwCno9DT08PgwYPb/P6y2eynHl9YWIgTJ07g+vXrKCwspLUsHA5HS+ukq2BmZoYPP/wQDg4OiIiIwE8//QQ3NzcEBARg4MCBCA0NhZOTEz1eKpVSw+BJbCpmZmbQ09OjlJqPL4wHDx6Eh4cHQkNDUVNTg99//x2pqalwcnLCwoULn9vc+KzBjGUHBwckJydj8+bNMDAwwNtvv621eHp4eGj1z5UrV/DTTz+Bz+dj3rx5cHFxgVwux+3bt7Fjxw7U19dj3bp1MDIygr6+PkaPHo20tDQcPHgQ+/btw/Lly6Gvr4/r16/j+PHj8PDwwKuvvgpHR0fahp2dHaZMmYIxY8Zg27ZtOH36NF555RWEhobSzRgTuWIgFotx+PBhXL58GRMmTED//v3B4/FQW1uL/Px8mJmZdUmxqUqlQl5eHiIjI6GjowOFQoHIyEgUFBRgwYIFMDU1RXh4OG7fvg1nZ2da13TmzBnU1tZi1qxZ0NfXx+bNmzFq1Cjq/JBIJDh37hwqKiowcuRIZGdnY8eOHXBwcMCAAQMAPKqF2Lt3L3r27In+/ft3+l4YGBsbt2o0M04/5v4fj2gmJydDo9FAqVTi6NGjNA+/Jdy/fx/AI692bW0tFArFUwtOe/To0W5vt1gspkyLaWlp2LRpU6vtMAxpdXV1qKur63Lq5fr6epSVldF6g9Yoj9lsNoyMjODk5EQZ+EQiUauGhZubW4eicXV1dZQqNy8vD1u3bm21rjQvLw/AI9rj2tpaaDQaurdSKpXYt28fsrOzcfPmTchkMnz55ZfQ19fHoEGD6HtcVlaG6Oho6pjw8vJC//79tYr5U1JSEB0djdLSUgiFQvTt2xd9+vQBj8eDXC7H7t27kZ6ejpiYGOzcuRNXr16FiYkJQkND4evri5SUFKSmpsLU1BQZGRkQi8WwtLTEkCFD4OrqSq85OTkZt2/fRmlpKfT19Wk7XC4XMpkMe/bsQWpqKmJiYrBjxw4qKB0aGkozYCorKxETE4OUlBQQQuDu7o7+/ftrRdiSk5MpoyaHw4GVlRXGjBkDa2vrl0qItcOGBSPC5evrq1WcAjyyQrtywuoMWCwWJkyYgIMHDyImJgb9+vUD8Oj6uVwuLWCTSCQwMjICj8dDSkoKrl+/3ixU+zSkp6ejrq4O1tbW8PLygkajwfbt2ynVYlfjhx9+6JRS6n//+99WDYu/K8j/FZu7uLjA09OzQ4YFIQSJiYm4evUqHBwcXojwV1uhUChw6NAhulCbmZlh9OjRzyQM31nIZDLs2rULf/75JywtLTFlyhR4enrC2NiYFlRHRUV1ebv+/v5wdnZGSEgI4uPjcefOHZw7dw6XL19GXFwcli1bpmWIPS3tjhBCv29pQt+/fz+WLl0KlUpFCxZnzZqFlJQUnDhx4h9lWPj4+FDqSENDQ5iZmaFv375PTIWtrq7Gnj17UFZWhp9//hnTpk2jm7Xg4GA8fPgQFy5cwIwZMyiltaWlJV599VVkZGTg1KlT6NGjB9zd3bFv3z4QQjB//nz06tVLy0iwsbGh4/by5cvgcDjw8vJCSEjIEzeYdXV1yMzMhKWlJaZNm4Zhw4bR7xoaGqBUKrtEyIzH48HLywumpqaws7ODUqnEX3/9hfj4eISEhNANaWFhIcaNG4fJkyeDxWJh1apVuHDhglZ63pMgEAjg5eUFExMT3Lp1i67JjI6On59fu1noWgOfz291U/q0jU9FRQUIIVAoFNi0aVOb22XIOVrb8HM4HOjr67d78yWVSinDXVxcXLtEOdu7f2gLamtraUS7LdEXHR0dakg0vZeWwOiEdCRKrFAoqHhkWwUeGTCOmaZgBCO5XC44HA50dHSgo6NDr628vBxHjx5FVFQUTbl88OABCgsLMX36dFhaWiI1NRUbN26EVCqFmZkZysrKcOvWLbz77ruUAZDL5YLFYkEmk4HL5dJ2mHkkNTUVv/32G1xdXWFpaQlCCG7fvo2CggK8+eabcHR0REpKCjZu3AiZTEbbuXnzJt5//306f3A4HLBYLEilUvB4vGbt1NTU4MyZM7h58ybMzc3BZrPx8OFDFBQUYObMmbC2tkZpaSk2bdoEQgiMjY2hUqmQn5/fZpHi54kOGxYcDge6uroQiUSIi4vTypkWCAQvlfU0Y8YMVFRU4OjRozh16hS99jFjxqBnz56wsLDAqFGjcOnSJaSmpkJXVxcqlardYbHCwkIcPXoUMpkMHA4HarUaw4cPbxcta3tgbm6u5T1jsVg0glFcXAxnZ2dK5apWq1FeXo6cnBzo6ekhODiYGhW1tbW4desW7t69i5qaGujp6aFfv34YPnw4dHV1QQjB1atXcfPmTdTV1VG2IT8/P9TX1yM+Ph65ubmoq6sDm82Gt7c3MjIy0NDQgLFjx8LIyAhxcXHUq+Ht7Q0jIyNER0fD2toac+fOhb6+PjQaDWJjY2keNMMtHhQUBDabjfT0dNy6dYt6R0tLS2FlZUWtfiYFIzIyEpcuXYKpqSmSkpLA5/MxePBgTJw4kYo5XrhwAdnZ2ZBKpbC2tsbQoUMpnWRGRgaOHDlCc0arqqqoINWECRPoe8EYHgUFBRAKhRg0aBCGDBkCgUBA019+/PFHLF26FBcvXkRaWhoMDQ1pVKsrQAihnh3g0bhkOMxfRuTk5ODixYuoqqrCN998Qz2vzEaeSTt4FjAxMcGIESMwZMgQpKWlIS4uDrt27cLBgwdhamqK77//HsCjKI2FhQWysrJQVVXV4rmY9C0LC4sW57vi4mJ4eHhALpfjxIkTGDp0KBYvXoyTJ0/izJkzz+we/w5ITU1FWloaXF1dMWjQIOjq6mqlJgUHB+PBgwe4efMmNSzYbDbc3d2xcOFCfPvtt9i0aROsra2RkpKCuXPn0rmqszA0NISrqyvi4uJw9OhRsNls9OrVi0ZOugrMhiIjIwMXLlxAQ0MDZd1rWhfWrVs3DBgwgEbUevXqhSNHjjRLI3oSHBwc4Ofnh4SEBJSVlYHH4+Hhw4ewsbGhntKuvKfOCHkx7wCPx8O0adPaHF0ICgp66rFsNhssFqtT+5KePXvC19e3zRvvjugSPQ1NDee21hs2dYA8TZ+G6afOwNXVFf369WtzPz2ubcPlcjFr1ixUV1ejvLwc1dXV+Pjjj+n1AY+M4/DwcAwbNgzTp08HIQSHDx9GWFgYdR4cOXIEpaWlWLx4Mfz8/FBTU4NVq1Zh3bp1GDhwIAQCAebOnYu0tDQcOXIEs2fPxpAhQ2gmC4Pq6mqYm5vjnXfegb6+Pvbt24fIyEjk5ubC0dERhw8fRllZGZYsWYJevXqhpqYG3333HX7//XcMGjSIRmWTkpJw4sQJzJkzB4MGDdJqJyUlBTdv3kSvXr0wY8YMsNlsHDx4EOHh4ejVqxesra1RUlJCpR0YKu3i4uJmNYIvAzo8C5iamiIkJAT5+fmYNm2aFo3auXPnnqqq3BWwtrbGggULYG5uDj6fj7feegtWVlbg8Xh47bXXYGRkBKFQCFNTUyxduhQPHjxAeXk55fllOH7Nzc2xaNEiJCQkQCqVUsEshUJBCwGHDx+OXr16aYX3+/btS4uNgUe53AqFAlVVVVCr1TA0NIS3t/czy6leuXKlVj8z4fTc3FwsXboUISEhMDMzg46ODjQaDerq6pCQkIALFy7A2dkZTk5OkEgk2L17N65duwZHR0dYWVmhsbERdXV1tHbkxo0b+Omnn+Dr6wtzc3Pk5ORgzZo1+M9//gN7e3vcunULkZGR8PPzQ1paGiIjI+Hq6koVI3v37o1Dhw7B2NgYLBYLUVFRcHFxgYWFBbZu3YrevXvD398fycnJ+P7779GjRw9YWlqirKwM69evx7vvvosBAwagqKgImzdvRrdu3eDu7g4DAwPExMSgoKAAS5YsgaenJ+UD53A4NEdeT08PNjY2dBBLpVLcv38flpaWEAqFyMzMxL179/D999+jW7duEAqFcHFxQUpKCkpKSuDm5gZra2vY29vT6EdycjI2btwItVoNBwcHNDQ0YN26dWhoaKD80o2Njfjjjz/A5XLB5/Nhbm5OC8O7Cmq1Gvv27aPeIgMDA4wYMYLW3LxsKC0tRV1dHYyMjNCnTx8tLyLjDXrW4PP58PX1hYeHBzgcDt58801ERUXRdCYLCwv4+Pjg/PnzSEtLQ11dXbP0gXv37qGsrAx+fn4tFn0aGBigpqYGWVlZiI2Nxfbt26GjowM+n9+lz//viNzcXDQ2NqK+vh6ffvqpVkSREILk5GSo1Wqq48OAKUidM2cO1qxZg6SkJEyYMAEzZ85sk5ZBW2BmZoZp06ahoKAA586dQ0JCAnr27IkBAwZg2LBhHco/bwmFhYXYsmULysrKEBAQACcnJ9TW1qK4uFirro9JuWPAaMg8aVPJePwZGBsbo1evXrhz5w7VBCouLsbgwYO1+PdfBpiZmYHFYoHP52PJkiVt3jAx0c5nAV1dXejr66O6uhq9e/fG0qVL22xgPos52NjYmEaiKyoqtN6VliCXy2kNGBNRfBZgIiOVlZXw9vbGf/7znzbLD9ja2mqNKaZAmxHZZLFYWtF3hoRDqVRi6NCh1EE6dOhQXLlyBdnZ2ejduzcSEhLg6+sLPz8/WFhYwMLCAhMmTMCSJUtQVVUFW1tbGhUBQCMWj8PKygp9+/alhDWenp64desWGhoaIJVKcffuXQQGBtK60KbtVFdXw9LSkrbDGBOPt5Obm0tTthgHA0MgUVZWRmuw+vXrh7Nnz6KgoACDBw+mBtLL5MgHOmFYsNls6OjowN7eHiNHjtSa/AYOHPjUF74rYGxsrFVY2zRs/XiOd9Ow+OPgcrno1q0bunXr9sS2WioecnV1haura5vaeBZ4PJ2CiR45Ozvjgw8+aFEZlrGoY2JiEBoaCh6Ph/Pnz2Pw4MF0gZZIJOBwOHSyXrt2Lezt7fH+++/D0NAQGRkZ+OWXX7B3716sXLkScrkcRkZGmD9/Pnbt2oXMzExMmTIFHA4HRUVFcHNzQ21tLUJCQhAYGIj33nsPTk5OmD17Nq5cuYKsrCz4+vpSLYnFixfDyMgI2dnZWL16NY4cOULzKmUyGaysrPDmm2/CwMAAJ0+exLlz55CZmQlPT08EBATAx8cHhw4dQmBgIObPnw8TExOw2Ww6eTG/t7GxAY/HQ1xcHL7++mskJiaiW7dusLGxwbRp0yAWi1FXV4dp06bBy8tLy8Nw6tQpVFZW4p133kFAQAAkEgl++eUXbNmyRUuLQqPRQCqV4o033qDicV1JbHD//n0cOHAAwKMJ2cHBAdOnT3/pJhoGJiYm4PP5aGxsRH5+Pjw9PcHn86HRaHD9+nX8+eefXd5mTEwMZDIZfH19qXELPDIwCwoKwOFwtBZcIyMjyuEeERGBwMBATJ48GQYGBlCr1bhz5w5OnjyJ+vp6jB8/vsUxP27cOPzwww/g8/nw8/NDr169qMBXV+dd/90glUqhVqtpKP9xbzNjQDSdWxkwpAEKhQISiQQmJiZdqpfBsN598803uH37Nq5evYpr167h2rVrOH/+PBYsWICQkJBOFzzn5+fjxo0bWLBgAWbOnAmhUEgFX5uCSaF4EgQCAWUlBP4/oxWTksThcODu7g5bW1vcvn0bjo6OlACjaXShaRudZRPsKHx9fXH9+nUQQtDQ0NBuYc9nAXNzc9jb26OwsBAymQxCofCFXpe+vj6cnZ2RmpqKsrIylJaW0vXtcWg0GlRXVyMvLw9sNhsWFhbPzJhk6lhzcnIgl8spW+ezgFKpRENDA03dYsCkcSkUCjQ2NqKxsRH6+vpa84upqSnkcnm7CFL09fW1jCQul0vJSSQSCSQSSafaIYSgsbERHA4HPXr0oBkRAQEBmDhxIq2vtbCwwPvvv487d+7g/v372LBhA06fPo0vv/wSlpaWL9Wa3+nibT6f32xib0l+/l88ezQ0NCAmJgZTpkxp0agAHhlj7u7uOHPmDHJycqj3i1nI2Wy2Vgi3rq4OMTEx2LBhAw3HMxv4S5cuUYVxhs3JwsICNTU1cHNzg4mJCerr6yGXy6Gnpwc7OzuqJNq9e3fY2tpSSXmNRoPLly+DzWZj6dKlAB55W9LT01FTU0MjM2ZmZggMDKSDr1u3buByuTR9gMPhUM8AE5pvOuCZCSExMRE7d+6EWCxGbW0tqqurqWeH+R3jLWEUuRlIpVIkJSXB1dWVstQwKsMnT55EeXk57UMej4eBAwe2arR2FImJifj888+pZ9fAwAAzZsxocUP2ssDd3R3+/v5IT0/Ht99+i+vXr8PAwADFxcW4d+8eXF1dW6xJqqqqQmxsLCoqKtDY2Ii4uDjU1tYiOzsbBw4cQExMDPT09NCtWzf4+PhoGQq3bt3CqVOnYGBgAEtLS5iZmVHGkfv378PGxgbz5s2jEzPDsvXWW29h/fr1NK+dEchLSkpCbm4uZs6cidGjR7fowVy8eDEOHz4MlUqFyZMnQ1dXFzKZDCYmJhg3btyz6+C/AQwMDMDlcuHh4YEPP/ywRc8ui8Vq5vEk/6fsfezYMQiFQpiZmeHatWsYNGgQpk6d2qk0nKYQCATw8fFBt27dMHToUGRmZiIsLAznz59HbW0tzMzMuqSGUKlUQqFQQC6X4+7duwgPD293NMvb2xvXr1/Hw4cPYWBggMuXLyMxMZE6YgDA3t4evXr1wvHjx5GTkwNnZ+dmasKMdxh4NOe3l5muKzBhwgRs3rwZcrkc+/btQ0hIyAuvE2MYjm7fvo34+HgkJCRQYbwXAQ6Hg9DQUERGRqKqqgrHjx9H9+7dW+yn6upqREdHo6qqClZWVvD19e0yBrDHYW1tjX79+iE8PBypqamIioqCl5dXl43JpmCo9hUKBSoqKuDh4QHgUQRHpVJRUUFjY2OUlZVBKpVZ2GFAAAEAAElEQVTS9TgnJwfGxsZacwvz3j/JGd7UKfk4GKOjrKwMMpmMnpdpp+k61Fo7+vr6sLKyomKHTcHj8eja5OnpCWdnZ5rO+8knnyAsLAxz5879ZxkW2dnZCA8PR//+/WFqagoHBwdkZ2fjyJEjyMrKwtixYzFy5Mj/WZ735wkm3am1Ai3gUcpUfX09lEolpFIpdHR0mrGjMGhsbIRcLm82QPT19aFQKEAIoRtxJoeT2Ygz5yOE0CIs5m98Pp8OWI1GA0IIxGIxJk2ahJCQEK1rsLS0pL/T1dXVmhSYCb49EbI1a9bgzp07mDlzJuzs7FBWVoZNmza1+RwymQxSqRS6urpaE6eBgQGUSqWWx4/xFHUG0dHRKCgooMxJYrEYqampuHnzJu7duwcANOXs9ddffyaTeVfBwMAA//3vf2Fubo7z58/j4MGD4HK5sLS0xKhRozBr1ix89tlnePjwodbvCgsLsWbNGmRnZ0OlUtF0PYlEgh07dkAgEFC11//85z9a72tAQADi4+Nx9+5dxMTEUAYSY2Nj9O/fHzNnzmymq2FiYoJZs2bBwsICR48exZ07d9DQ0AAejwd3d3esWLECEydOfGJqjJOTE95++22o1WrqeGHYjZ4XFffzBjMPqNXqVlNhmRqr0tJSuLi4tFmzRSQS4eDBg7h//z5mzJgBT09PbNy4EXv27IGzs3OrtWw6OjqU0rYtHnkWiwU9PT10794d3bp1g6+vL+RyOY4cOYKMjIxOGxaurq4YM2YMDh8+jPPnz8Pe3h729vZtrp1g8NZbbyEvLw//+c9/oKOjg27dumHMmDE0NRL4/wX2R44cQX5+PqZOndrMGLawsKCbzlu3buGVV1557mt2UFAQQkJCcP78eVy+fBlr1qzBkiVLWqxVUCgUyMrKgkQigZeXV5cWoTeFlZUVhg4divDwcOTl5eGvv/6CqakphgwZ0uI4rq+vx507d+Dt7Q0bG5tnovA+ZcoU7N+/H/Hx8di2bRtVKG86hiQSCSIiIrB7924QQtCjRw+MHDnymW0+TUxMMGTIEPTo0QNpaWnYs2cPLC0tMWbMmBZrnxoaGnD37l04OjrCwcGhXWsWh8OBt7c3DA0NceTIEfrsjx49CgsLC3h6ekIgEGDkyJE4cOAALly4gKFDh6KkpAS7d+/G9OnTaV0Xo58lFAoRGRmJ7t2700L/trBj6ejoYPTo0Thw4ADOnz+PIUOG0HZmzpxJ05QIIRAIBNDV1UVUVBTc3d212unRowfs7e1x+vRpWFtbw8HBAZWVlaitrYWPjw+sra2RlJSE0tJS6pA1NDREfX39cyk7aC86vQMpLCzExo0bkZCQACMjI4wePRqVlZVQKBSYOHEi7t27R+m5OovOFl/908Hn8+Hg4ICoqChEREQgODi4WbFXamoqwsPDwWazYWZmBrlcjvr6etTU1ECj0TSbCBnrPyMjA6NGjQLwaFIvLCyEubk5HdRPo/x92nNjsVhwdHSErq4upk2b1uw75vdNC7ieBCbS8CRD4cCBA5g7dy5eeeUVCIVCJCYmQiKRtHgeoHlqgL6+PkxNTSESidDY2EjplnNycmBoaAgjI6N2Xe/TcP36dRw8eBASiQQsFgsKhYLSGTJ1AS4uLvj222+fGKl6meDp6YkPPvgAs2fPRkNDA93E2drawszMDL/88gvq6uq0okQuLi5YvXq1VtpHSzAzM2vWB/369YOzszNqamogk8mgVqvBZrMhEAhgamoKGxubZjnajBjUxIkT0adPH4jFYigUCnA4HBgZGcHGxgaGhoZPfLYsFgsmJiYghECtVtPI2cuW196V0NPTg5mZGfLz85GXl/dEmmZ3d3cMGDAAhw8fxl9//YXly5fTUD5Tg/Tw4UP06NGDzi8SiQTXrl3D/v37ERAQgLfeegvm5uYoLS3Fli1bcOjQIdja2j6R5c7a2hpcLhdxcXGYN2/eE++huroaubm5tIYLAK2RYtAVm0UrKyssWrQI48ePh1KppMXhTQ3RhQsXQiaTadXojR8/HkFBQfQ98vb2xpo1ayjJAFOT0dS5xGKx4O/vj/Xr11Oa0sfnY39/f9jZ2SEjIwMRERFYsWIFhg8fDisrKygUCjp2Fi9e3Ol7fxKEQiG+++47ZGZmIiMjA+vWrcP169eptgeXy0VDQwOKi4uRmZmJvLw8DB8+HB999NEzMyx4PB5CQ0ORkZGB9evXIzIyEsXFxQgKCkKPHj1gYmICjUYDsViMvLw8pKeno7S0FH/99dczK6q1s7PDp59+iiVLlqCkpAT//e9/cfnyZfTr1w+GhoaoqqrCnTt3cOXKFfouv/baax0StW0rmCjvO++8g++//x4JCQn45JNPcPToUfj6+sLCwgIajQY1NTXIz89Heno6iouLsXr1atjY2LTLsGCxWOjZsycWLlyIQ4cOYenSpWCxWHB2dsb8+fNp2vIrr7wCuVyO06dPY/v27eDz+fD398eSJUvo2sLU27755ps4evQowsPD4enpiTfffLNNpDssFgvTpk2DXC7HyZMn8ddff4HP5yMwMBDvvvsuvS+mdu/111/H8ePHceXKFXh5eeGNN95AUFAQunfvjrfeegtHjx7FV199BblcDgMDAwwbNow+t/r6ehw6dAhZWVlQq9XQ09PD+PHjn6nB2FF0SSpUv3798NFHHyE+Ph55eXngcDiwsLDA6NGjkZWVpeU96SyehQfgnwJTU1O8/vrrWLFiBd577z307t2bpoXIZDLk5uYiLi4OGRkZmDp1KgICAsBisXD8+HFs3boVhBB4eXmhuroa9fX16NOnDwQCAebPn4+//voLHh4ecHFxwa1bt3Dz5k0sXry4S0PC77zzDn744Qf06dMHAwcOhFwuR0FBAYyMjNrlIeRwOLC0tMS9e/eQlpYGe3t7KijIbCiZnNnc3Fz88ccfzQwLNpsNQ0NDVFdXIzY2FoaGhuDxeLRQcOTIkdi8eTNOnDiBUaNGoaysDDt27MCUKVO63NNXX1+PoqKiFhXAWSwWfH198dtvv6FPnz4v3QTTEp6keM2gJf0NQ0PDNuuePA4mRaq9YAyep9VftQS1Wo3du3fj2LFj0Gg02L9/P3g8HqVHbEmX5u8OR0dH9O3bF9evX8eqVasQHh4OfX19NDY2YsaMGVSvRSAQYNmyZSgoKMC+ffsQExND56mKigpkZmZCrVbj+PHjEAqF0Gg0SE5Oxm+//QZTU1O88847cHFxAZvNxowZM5CamoqjR4/C09MTc+fObTHdY+TIkVi/fj1OnDiBhoYGuLq6QiaTQSAQYNWqVfS4vLw8LF++HCqVCq6urjA3N4dSqURqaioSEhIwePDgLmFT4nK5T63Ja6qtwuDx3zApZU+DgYFBq9ft4OCABQsWIC8vDzk5OTh16hSuX79OBR5VKhXMzMyeqWEBPNKa2LlzJ7744gtERETg6tWriIuLo55ftVoNuVwOiUQClUqFgICAZ3o9wKM6i7feegt6enr4888/kZaWhry8PFy4cAE8Hg+EEBr9ZwREn2WNKZvNxsiRI/HHH3/gk08+QVZWFnbt2oUTJ06Ay+VCqVTSaK63tzdWrFiBCRMmPPO0MiMjI8yaNQs6OjpYt24dUlJSUFRUhCtXrmi9R0w/PU408DgMDAzw0UcftZiWx6i8e3l50XXR2NgYVlZWNEJiZmaGefPmYcSIEZBIJOByubTOpOk+Ul9fH6+//jpGjRoFhUIBoVBIx1hISAh69eqllXUwYMAAuLm50b+ZmZlh/vz5GDlyZLN2mq7HBgYGeOONNzBmzBjaDuMEEwgEtK6vqqoKKpUKPB4PpqamtJ2ePXti5cqVVCSZx+PB3Ny8RSX5F41OGxZcLhcmJib05mNiYqCvrw8XFxcIBAKqgN0VaC3X7V88GmzTpk2DRCLBhg0bcOzYMZw/fx4cDod6AgUCAaZNm4b33nuPesJWrFiB3bt34+uvv0ZjYyMMDAwwdepU+Pv7Q1dXF++//z4IIfjyyy9RX18PW1tbzJs3D6+88kqLnv6OYtasWZDL5di1axd+/vln8Pl8eHl54c0332zXeVgsFt58802sW7cOixYtglAoxBtvvIFXX30VAoEAX331FX7++WeMGDECNjY26NevXzMuaBaLhf79+yMxMREbNmzApk2bMGLECLzxxhtwc3PDuHHjoFAocOTIEezYsQO6uroYNGgQFi9e3OV5rG5ubpTCl9EtMTY2ho+PD8aMGYMpU6bAycmp3eJP/+LZ4eDBg9iwYQOCgoJw7tw5KJVKsNlsZGRk4MaNG/9Iw8LQ0BCzZs2CQqHAyZMncezYMbDZbNjb22PMmDFax7q6umL9+vU4evQozp49i9OnT0OpVMLY2BjOzs4YM2YMTYEpLi7Ghg0bIBKJ8O6772LIkCHUoeHs7Iy5c+ciOzsbW7duhZubG4KDg5sttC4uLtiwYQPWrl2L6OhohIeHw9jYWKsWAXi0iezbty/CwsJw6dIlWojKMBDOnj27WX3CPwE8Hg9TpkyBtbU1Dh48iFu3bqGkpAQqlQoGBgawt7dv1lfPAhwOB0FBQdi2bRuioqJw+vRpysAml8shFAphZ2eHHj16YOjQoQgNDX3mZAgsFgvW1tZ46623MGjQIFy6dAlXr16lgmnAI6eeh4cHAgMDMWrUKAQEBDzTvQpDl+/p6YnDhw/j4sWLyMzMRENDA2UCGzlyJCZPngxXV9dnFtFpCsb7P2fOHAQGBiI8PByXL19GWloaxGIx1V/w8fFBQEAAhg8frkV08ji4XK6W4OXj0NXVfaqCNVNr0RrYbDZMTU1bfI9MTEyasf4ZGRk1q//qbDvAIyc9kxLZEvT19V8KQoO2gEU6SQFRXFyMbdu24eLFi3B2doavry8qKiqgVqthYGCA8vJyzJw5EyNGjMC2bduwatUqFBQUdKitadOm4ciRIy+ddfYygWEqKCwsRHx8PNLS0lBfXw+BQAAnJycEBgaie/fuMDQ0pGE6lUqF2tpaNDY2Qq1Wg8PhwMDAAEZGRmCz2SCEoK6uDrW1tVCr1dDR0dEK3dfV1dEQPiPgY2pqSus4BAIBNVgEAgHKyspgZGQEPT09lJWVQSgU0rQDiUSCmpoaKBQKsNls8Pl8GBkZQVdXF1KpFLW1tTAwMKATpVQqRV1dHfT09LRyIhUKBaqrq6kHycjICIaGhmCxWJDL5aisrIRSqQSPx6P3oaOjo3UOlUqF+vp6WlwuFAphZGREJ0KJRILa2lrI5XKw2exmfaZWq1FUVARra+tO0SHW19ejoaEBCoWCGulM3+jr60MoFP47Jl4yhISEYN68eRg8eDCGDBmChIQEGBoa4vjx4zh+/DhOnTqFnJwcfP/999ixY0eH27l06RJGjBjx0jhc1Go1pZJl6gV4PB5MTEyaGdwM+09DQwPkcjkIIZSKsel7rVQqaSra4wWRwKOap+rqajrv6OnptTgemDlBJpPROhtdXV0tb6RKpUJDQwMaGxtpPQZDfykUCqGvr/9S1zB1Fkz9nVQqpc+PqZ3R1dVttilSqVSoqqpCQ0MDJXJ50lynVqtRUVEBiUQCPp8PCwuLJ24qCSE0TZdh12n6LPh8PvT09J5YG8hAJBJR55e9vX2nnS8qlYoyASkUCprfztQVCgQCCIVCrYLbJ0Eul6OqqgpSqZTS4rf3+gghqK+vR2NjI10fGMZO5n192txQVVVFs0qsrKy6xDGmVqshlUppjSbTT8y1MXUNTO3Tv3g2kMvlaGxsfO5MhJ02LJgXSCKRUEVBtVqNzMxMJCYmonv37vDz84Oenl6nDAsWi4WZM2c2U/n+Fy1Do9FAqVRCpVJBo9GAxWLRPO8XxWjxL/7F/wocHBxw/vx52NrawtfXFwkJCTA2NsbJkyexZ88eXLx48R9pWLxMyMrKgrW1dYusXU03rl2lgfEv/sW/+BcvE5iU9fHjx2P69Onw8/N7Lo6RTrcgl8tx9epV7N27F8HBwXjttdeQmpoKHo+HOXPmaDEBdQaPU352BIQQ+lGr1SgpKUFaWhrS09ORkZGBvLw8VFdXUy9aY2MjgEcpRvr6+tDX14e5uTkVaHN3d4ePjw8sLCy0WJGApxcrP2swHu1/KgPNk9D0GRNCUF5ejsTERGRkZCA7Oxv5+fmoqKiAWCymnlKVSkU9pXp6ejAxMYGpqSllZ3B2dkb37t3h7u5O6zRepmf9rMH4Hpg+BR557srKypCeno6srCwUFxdDJBJBJBKhoqICdXV1kMlkkMlkkMvlVOSI8TYKBAIYGxvDzMwM5ubmMDMzo3TEbm5utFiT6ee/W187OjoiKSmJ1pEwnPJ37959JtTDHcXjz7a2tha5ubm0gDYrKwslJSV0TmxoaIBEIoFGo6EsJwxTm62tLS2gdnNzQ8+ePakI1Yt4hl9++SXmz58PMzMzWFlZwdbWlqaFHjt2DMuWLYNGo8Hw4cOxfv36LtXDaA1N+7ympgYJCQm4ceMG7t27h+LiYojFYshkMujo6MDc3ByOjo7w9vZG//79MWDAAJiYmFDnUFf3JfMeqFQqPHjwANevX0d8fDyysrIgEokoiyBDYOHq6goPDw8EBQWhT58+MDExaTZm/4l4fNwwYyc7Oxvp6ekoKChAWVkZ/TDF78yHiZAzHz6fDwMDA0pdzuTOu7i4wNXVFS4uLjAwMGhRQfyf3M/PE48/U5lMRokCmE9BQQGqq6vR2NhI94hMuqRAIKARKysrK9jZ2cHOzg5OTk5UkJWJ5jF74ufx7MrLy7F+/Xps374dfn5+mDNnDkaPHq1Va9LV19FpwyIlJQXnzp1Djx49UF5eDl1dXaSmpkIqlXZpYRWbze6wYaFWq6moSlRUFC5dukTp4wDtyYH5/5PQdNJkqFW9vLwwdOhQhISEoH///jAwMKAhvhcx6BnDqWm0glF+ZO6zqxZ5phirPYEvLpf71BB2e8DcL5Mycfv2bVy5cgU3b95EQUEBTWlo6zMGoNU/zIfL5cLOzg7+/v4ICgrCoEGDqLI3l8vVYoD4u4PZXDDvUVFREWJjYxEbG4u7d+8iMzOThs8f79e2vguPv4PMv4xR3L17d7phYbRL+Hy+lsbIs4BGo6Ghe8a4Af6/qnHTFJ+mtMpN8eGHH2L58uWIjY1FY2MjNmzYgMTERJSVlWHjxo3P5LrbCkbLhUn7SUpKwrVr1xAREYGHDx9CIpF0arww/zIkHr169cKwYcMQGhoKV1dXCASCZsbGs4BYLMbs2bPptfz000+YM2cOuFwuVq9ejY8++gi9evXCL7/8gs2bN+Ozzz4DAFog3FYtB4Z2ui33whT65ufnY+/evdi/fz8KCgoo5fbj/VxcXIyHDx/i/PnzYLFYMDAwwJgxY7Bo0SL4+/vTdLHO9iMz3isrK3HkyBFs374dmZmZlFL8Sc8/Li6Otm9sbIyhQ4di/vz5GDx4MAwNDZ8q8Pd3QdMxo1KpUF1djaSkJMTGxiIuLo4qJDMpW4+Pm87Micz7a2NjA39/f/Tp0wd9+vRBz549aWpeW9+/lxlKpRIymaxdewnGKOvovTd1lDGGxPXr13H16lXcvn2bql4zx7ZnPnz8Gerq6sLLywsDBgzAiBEj0Lt3bxgYGNAskmfx/AYOHIh79+7h4sWLOHr0KOLj4xEdHQ1zc3OMGjUKc+bMgZ+fH4RCYTPneKdAOono6Gjy4YcfknPnzpGvvvqKqFQqsn37drJp06Zmx27dupU4OjoSAO3+CAQCsmjRojZfl0ajIXK5nFRXV5MbN26QhQsXEkNDww613Z6Pubk5WbJkCYmNjSXV1dVEoVB0tovbBbVaTSorK8nZs2fJG2+8QYYMGUImTZpEzpw5QwghpKGhgWRkZJDc3Fwil8s73d7NmzeJqalpu/po8ODBJC0trdNtazQaIpPJiEgkIqdPnyZz5swhFhYWz/wZN/1YW1uTqVOnki1btpD09HRSVVVFpFIp0Wg0RKPRdPoenydUKhWRSCSkurqaZGZmkt27d5N58+Z1eMx25YfL5RI3Nzfy/vvvkwsXLpCSkhLS2NhIVCpVl/dDaWkp2bJlC9m8eTOpqqoihDx61woLC8lnn31G7O3tiYWFBVm2bBnJzs4marW62Tk0Gg25cuUKGT16NHF2diaOjo5k1qxZ5Pbt2/SY7OxssnDhwk71y9WrV1tsvyU0nROjoqLI0qVLiYODA2GxWM/lGbLZbOLt7U0+//xzcv/+fVJdXU2USuUzGycjR44kK1asIPn5+eTChQtk8ODBpKKigiiVSmJmZkZyc3OJVColhw4dImPGjKG/u3//PgkNDW3zfR08eJDIZLKn9r1KpSKlpaVk/fr1xMbGptN9OWXKFHL//n0ik8k61YdqtZpUV1eTbdu2ES8vL8Jmszs9VgcOHEiOHz9Oampq2vx+vmxQq9VEJpOR2tpaUlhYSC5evEiWL19OAgMDiZ6e3gufEw0MDMikSZPIX3/9RfLy8khdXR1RKpUvuts6jH379hFdXd129cHChQtJZWVlu9tixmN9fT3Jy8sjGzZsIEFBQYTD4TyXZ8disYi5uTmZPXs2OXPmDCkvLydSqfSZjhWFQkGSk5PJd999R4KCgoixsTHR19cnQUFB5OeffybJycmktraWKBSKTs/JnTYsEhISyKeffkq2bt1K/vvf/5L4+HjyzTffkP379zc7tjOGhVAoJEuXLm3TNSkUClJeXk4OHDhAhg8fTgQCwXMf9BwOh4waNYpcuHCBVFZWPpcBr1arSX5+Plm0aBHh8/nE0NCQ6Ovrk27dupGdO3cSQh5tZubOnUsmTZpE7t+/3+k2O2JYeHh4kAcPHnS4TcagyM/PJ9u3byf9+/cnOjo6L3yiFwgEZMSIEWTDhg2ksLDwb2FYqFQq0tDQQEQiEYmJiSE//PADGTJkyEuxcD7pw2aziYeHB/niiy9IXFwcqaqq6lIDPjY2lgwcOJBMmzaNlJSUEEIIkUgk5JtvviEWFhbE3t6eODo6EoFAQL766itSUVHR6vk0Gk2LC0ZXGBZxcXFPfc80Gg1RKBSkuLiYHDlyhIwbN44YGBi80Geor69Ppk6dSi5dukREItEzMTDGjx9PDS+lUkl69epF8vPziUQiISYmJqSoqIioVCoSGRlJ+vTpQ3/XXsPiu+++I2KxuNX+VyqVJCkpicyePbvTG/emH1NTU7Jnzx5SV1fXoT5SKBQkJSWFLFiwoMvfCUNDQ/Lee++R1NTU5+5g6yiYtaWyspKkpqaSXbt2kenTpxNbW9sXPu89bTzNnTuXhIWFEZFIRKRS6YvuynajI4bF+PHjSWJiYrva0Wg0pLa2lsTHx5OlS5cSa2vrF/rsdHR0SEBAAFm3bh3JzMwkjY2Nz3zvUF9fT65du0bee+894ubmRng8HjE1NSUzZ84kp06dIoWFhUQul3f4OjptWNTW1pJDhw6R4cOHk6CgIBISEkK+++47IhKJmh3bGcPC0NCQfPTRR61ei1qtJlVVVSQiIoJMmjTppdgcCQQCMnv2bHLr1i1SVVX1TF+Yuro68vPPPxM9PT0ydOhQ8uuvv5IPPvhAy7BQqVTkhx9+IL6+vuTkyZOdbrMjhoWpqSmJjY3tUF8olUoiEonIkSNHSHBwMOHxeC/8Gbf0Wb58+TPxpncFNBoNkUqlpKysjMTGxpJff/2VBAcHE6FQ+ML7rb0fKysr8vbbb5Pr16+TqqqqLunzsLAw4ubmRlauXEn/FhkZSYYNG0YGDx5Mbt68SXJzc8nYsWNJUFBQiwZ6RUXFUxeIrjAs0tPTW21DpVKRyspKEhYWRqZMmfJCnCytfXR0dMisWbPIzZs3SXV1dZfOj4sWLSKbNm0iaWlpJCoqinh6epLNmzeTM2fOEHNzc3Lv3j0ik8nIxYsXSXBwMP1dew2LBQsWkIKCghavgTEq7t69S4YOHfrM+vCHH34g1dXV7eofmUxGbt26RUaMGEG4XO4zuTYOh0MmTpxIoqKiuiRC/izAeK+rqqpIamoqOXDgAHn11VdfemPiSe9CcHAwOXDgACkpKXlp+7wldMSw6NOnD7l8+XKb25BIJCQ7O5t8/fXXxMjI6IU/r8fHSu/evcnWrVtJfn7+M3t2arWa1NXVkYKCAnLlyhXy4Ycfku7duxNzc3NibW1NjIyMSGhoKDl37hypq6vr0Jzc6RoLQ0NDTJs2DcOHD6c0oozKaVeCw+G0WoisUCiQm5uLvXv3YufOnSgpKenS9jsKmUyGgwcPIjw8HIsWLcLrr7/eJbR3LaG6uhpHjhxBQEAAdu/eDScnJxw9ehRnzpyhx3A4HFhZWUGtVqO6urrLr6Gt18nkcbc1n4/8XzFVcnIydu/ejQMHDlC12ZcNLBYLoaGhL13Oq1qtRkNDA0QiER48eIAzZ87g8uXLKC8vf9GX1mGIRCJs3boVYWFhmDdvHqZNm4bu3btTQa2OgKE+ZdSNlUol4uLikJWVhWXLlqF3797Q1dVFYGAg9u7di/r6+mbn+OGHHzB16lQMHDiwU/f3NDSlR24K8n/1IGlpaThw4AD27t2L0tLSZ3otHYFCocChQ4dw8eJFfPTRR3j11Vfh4ODQJcx1EydOxLp163Dq1CmIxWKMHDkSly9fRlZWFoYMGYI9e/Zg9OjROHPmTKfqAbOysijRx+MghCA5ORlLly5FVFRUh9toDQqFAt999x0A4L333nviO9EUcrkc0dHR+Pbbb3Hz5s1nJuimVqtx5swZEELw6aefIjAw8KXR2yH/xwxWXl6O/Px8XLhwAadPn0ZqauqLvrQOQ6FQ4Nq1a4iNjcWYMWPwzjvvIDAwEMbGxi/detQVKC8vb9O8RghBRUUFIiIi8PPPP+PBgwftquV4HlCr1YiPj0dSUhLGjRuHJUuWICgoCPr6+l1SQ6VUKlFdXY2ioiJERUXh5MmTSElJAZ/Ph4eHBxYtWgR7e3vcuHEDEREReOutt7BhwwaMHz++3SRAnd79azQaNDY2Ul2Auro68Pl8mJqadimtKYfDeSI/dkNDA+7evYtff/0VV65cgUwm67J2uwoVFRVYs2YN7t+/jw8//BABAQFtWgDaA7lcjsLCQkyfPr1F1VYGenp6dFJ9EWAGuVKpbNMLq9FoUFdXh4iICKxfvx43b958DlfZcVhYWCAwMPClmcgZrvmcnBzcvHkTJ0+exP3791/KcdJR5Ofn4/vvv8etW7fw/vvvIzg4GMbGxh0iCGAK9RnnSFFRERISEmjxJKPsamRkRCmdH8eJEycwZcqUzt3UU8DlclvUbCD/pw8RGRmJ3377DeHh4c/0OroCtbW1+PzzzxEXF4dPP/0Ufn5+nVYKHjNmDMzMzBAfHw9TU1OMHTsWenp6lGRkyZIlWLFiBVxdXfH11193uJ3s7Gw0NDQ0c5QQQlBcXIzPP//8mRkVDKRSKX755RdYWVlh7ty5rfadSqXCvXv38MsvvzxTo6Ipzp07BwMDA3z22Wfw9PR8ofTIhBA0NjaisLAQ9+7dw/HjxxEREUHJKP4JaGxsxLFjxxATE4NFixZhzpw5sLe3/8dpsFRUVKCkpITqd7QEtVqNvLw8bNq0CVu2bHmiE+BlgUwmw/Hjx5Geno53330XkydPhqWlZYfGjEajQUNDA0pLS5GWloawsDCEh4ejuroatra2GD9+PCZNmoTBgwdTIcBp06YhIiICy5Ytw/r16zF48GBYWlq2q91Ov2U1NTUICwvDrVu3qFCZn58fxowZAxcXl86enoLL5ba4Ca2qqsLly5fx+++/Iy4u7rlMkh2FVCrF+fPnkZubiw8//BATJ07sUuESFosFNptNKRVb2tgym3SG7u5FQSQStcmw0Gg0EIlEOHbsGH777TfK5PUyY9iwYS+FaJ1KpUJFRQWSk5MRERGBU6dOIT09/aXz1HQVCCG4ceMG8vPz8e6772L27NmwsbFp94RsYGAAfX19ZGdno6ioiFKBBgcHw9vbmx7HbCZbOr+FhcUz72cDA4Nm75hGo0FVVRXOnj2LNWvWICUl5ZleQ1fjzJkzyM7Oxpo1azBkyBBqxHUUDINOU9ja2oIQgp07d1IBy5a0LtoKhmJZrVZrbdwaGxuxefNmnDt3rsPnbg9qamrw008/wdPT84kq2YQQ5OTk4M8//0RERMRzWy8JIThx4gS6d++OJUuWvDDtkIaGBmRnZ+POnTs4ePAgIiMjKQPcPxGFhYX4+eefkZ6ejqVLl8LX1/eliRh1BRobG1FWVkYFeB+HXC7H/fv38dNPP+HixYt/K2daUlISvvjiC5SVleG1117rUCS3vLwchw4dwvnz5/HgwQMIhUK4ublh7ty5mDBhAry9vZvtwVgsFoYPH44BAwbgwoULUCgU7b72ThsWWVlZuHTpEmbNmgU3NzeUlZXh7NmzuH79epcaFi1FLKqqqnDkyBGsW7cOaWlpXdbWs4RGo0FSUhK+++471NfXY8aMGTTlorPg8/lwdnZGYmIiCgoK4OjoqPU9IQRlZWVITEyEgYEBbGxsuqTdjkAkEj31hVWr1SguLsbOnTuxYcMGiMXi53R1ncOoUaNeislbIpHgwoULWLVq1d/CIOsq5OXl4fvvv0djYyPeeOMN2Nratsu4sLW1hZeXFy5fvgy5XI7ExERoNBoMHTqU6lIolUoUFxdDKBS2aBzPnTsXly9fhqWlJUxMTLTa5/F4MDY27vR9Pr6QEkIgFouxZ88e/Pzzz3/LFDcmdej999/H6tWrMW7cuA6r1qtUKhQWFkIkEtH0NgYcDgeDBw+Gm5tbl1xzVlYWBg0apPVMrl69inXr1nX6/O25jvz8fPz222/o3r07zM3Nmx0jFotx8OBBnD17tkMbhs5AJpNh9+7dCAwMxMiRI1+IYysvLw/vv/8+IiMj/7EOlsdRW1uLI0eOoKamBitXrkRAQMALdSp2NRj9pMfnQ4VCgVu3buGrr75CXFwcpQn/O6GyshJr165FY2MjFi9eDCcnp3YZFykpKfj222/h5OSE0aNHY/jw4QgODoa9vf1THZ8WFhYd1kHrkriYjY0Nhg0bBl1dXTg6OiIrK6srTqsFLper5b2qrq7G8ePHsWHDhr+NUdEUOTk5+PXXXyGRSDBv3jzY2tp2+pxGRkaYOHEiNm7ciJ9//hmTJ09GdnY2FAoFCgoKcPPmTVy9ehXXrl3DkCFD4OXl1QV30jGUl5e3OtDVajWKioqwefNmbNiw4aUPXzIwMDDAgAEDXgp1c8Z7+ncxyLoSNTU1WLt2LQghWLx4MSwtLdscQXJwcMCMGTNQVFSEK1euwNDQEAsWLMCgQYPoOcrKylBeXg5vb28aQm4KfX19bN26FWlpaXB1ddUyNLt164aFCxd2+h4NDQ21NDZqa2tx4MABrF69+m/9zJmN+sqVK6Gjo4MxY8Z0KIUjKSkJO3bsQF5eHtWyYaCrq4vBgwd32TVnZGRAKpXSzY1IJMJPP/303OctuVyOyMhInD59GgsXLtR65xkx2yNHjryw+rrc3FycOHECPXv2bDVd91lBX18fJSUl/zNGBQOZTIawsDCwWCysXLkSvXv3bvcaxeTpE0KabTiZ9DKRSARCCCwsLLTmp2eJsrIyiEQiLSeBUqlEdHQ0vvnmm7+tUcGgrq4OmzZtgo6ODpYsWdKuKLy1tTUWLVqEkSNHonfv3u2KzPbs2RMcDqdD0dwOGxbV1dW4efMmCgsLUVxcjB07dsDa2hrV1dVITEzs8qLFpoZFbW0tzp07hz/++ONvF+pvivz8fGzatAksFguvv/56p8PD+vr6mDFjBpKSknDq1CmEhYWBz+ejuroaR48exfHjx1FZWQl/f3/MmDGjWUQjKysLlpaWzVIsJBIJRCJRl0agWotYaDQalJWVYdOmTfjjjz8gkUi6rN1njcDAQC1FyxcJPT099O7dG/369cOVK1de9OU8d9TW1mL9+vWwsrLCvHnz2pyeJhAIEBoaCltbW6SlpcHGxgZ+fn5aaYsqlQojR46Eg4MDjWI0xZ07d+Dr6wsAKCgo0Pqus+k9DJiFmxACiUSCw4cP/+2NCgaEEOTm5mLVqlUwNjbWMuraiv379yM3NxejRo1qthh3da45Y1gw175v3z7Ex8d3aRtthVgsxuHDhzF27FitqHR2djaOHz/+wouTz507h8mTJ8PGxua5e86dnZ0xdepU/Pbbb//oFKiWIJfLcfnyZRgZGeGzzz6Du7t7u8aURqNBQkICUlJSMHr0aOoM1Wg0KCoqwtmzZxEXFwdCCAICAjB27Fi4ubk9c+OCUTdnoFarERsbix9++OFvb1QwkEgk2LJlC0xNTbFw4cI2F+N7eXnhu+++65Cjc/bs2R25VACdMCzq6+tx48YNAI82tHFxcdDX14dMJoNAIGh3scfTwBgWcrkcUVFR2LhxIx4+fNilbbwIFBQUYMeOHTAxMcHMmTNhaGjY4XOx2Ww4OTnh66+/hpeXF+Li4lBWVgY3NzdwuVyYmZlh1KhRmDJlCnr37t1s87tz505MnToV/v7+Wi9tZWUlNm7ciDVr1nT42h7HkwwLQgiqq6uxbds2bNy48W9lVADA8OHDOxw+fBZwcXHBmDFjEB0d/beJ+nQlqqursXbtWri4uCAkJKTNGxk9PT0EBgYiMDCwxe9dXFywZMmSJ/5+/fr1T/SKdlU0i3EAqNVqXLlyBd9//z1EIlGXnPtlgEqlwoMHD/Drr7/Czs4O3bp1a9fvs7OzMX78eMyZM6fLiTIeR0ZGBp2rcnNzsW3bthe2oVGpVEhJScGlS5fw+uuvA3i0XkdERCAiIuKFe+srKipw5coVBAUFvZB03Ndeew179uz5R42VtkIqleLixYtwdnbGu+++2659mlqtxt69e3HixAn4+PhQw6Kqqgr79+/H77//TpWwIyIiIBKJsGzZsi5L9X4SmIgFU1eampqKtWvXIjIy8oUR1DwLiMVibNiwAa6urhg9enSbUkQZ1fanQSKRoKioCFZWVjAyMur0tXbYsLCxscEnn3zyxO+FQmFHT90iuFwuBAIB0tPTsWPHji71BjHn5nK5NGVBqVRCoVBALpc/c89Geno6tm7dCjMzM4wZM6ZTHk0OhwM3NzcsX74cRUVFyM/PR2NjI3g8HmxtbeHi4vLERTYuLg5DhgxptvBIpVKcOnWqyw2LxxdehlJ29+7dWL9+/d9uI8zn8zF48OCXKn/VwMAA/fr1Q69evRAdHf3c2mVqong8HrhcLthsNjQaDdRqNWQyGWQy2XPb4GRmZmLt2rXw9vaGg4PDcwnPd1VUojUw4zgzMxM//PADCgsLu/T8bDabPkMejwcOhwOVSgWlUgmJRNIiG1ZXg0nt2b17Nz7++ON2rSvW1taQSqXP5TpLSkpQVVUFtVqN/fv3o6Cg4KnvN5vNhq6uLt0gSCQSGvXoLCorK3Hx4kVMmzYN+vr6SEtLw+nTp9sVzWJYxwQCAdRqNerr67usLuPSpUuYP3/+C4nuenp6YuzYsdi5c+dzbVdXVxc6OjrgcDg0YqZSqaBQKCCTyZ7Lewo8MuyOHj0KHx8fTJkypc31gGq1Gnfu3IGBgQHc3d3p31JSUrB3715YW1vjzTffhFAoxKFDh3DlyhUMHjwYY8aMeZa3g7q6OpSVlUEmk6GhoQG7d+/GtWvXumwsAY826Do6OtDR0aFrGpMaJpPJmtVwPSvk5+dj48aN8PDwgIeHR5eNnYKCAmzbtg0zZ85sRnbREXTYsODxeM/cEm0KDoeD6upq3LhxA5cvX+7wZt/IyAiOjo5wcHCAhYUFjI2NYWRkBD09PfrSAKBGRX19PSorK1FeXo7CwkLk5uaipqamy1+ie/fuYdu2bbC1tUXfvn07vfnh8/lwdXWFq6trq8epVCqIRCI0NDRQqzUjI4O+sBqNBjdv3uzyzXJ5eTkdjE3zxM+cOYPffvuty3KAORwODAwMYGRkBH19fbpJ4nK50Gg0UKlUdEKqq6ujjFkdgbu7O7p16/ZS1FcwYLFY6N69O0aNGoW7d+92qQeHw+HAxMQElpaWsLCwgLm5OYyNjWFgYAADAwOtMcXhcKBWq6FSqSCVStHQ0IDa2lpUVFRAJBIhPz8fRUVFz8yIv3btGk6dOoW3335by9MjlUoRFxfXqXP7+vq2uRhbJBIhPj4e48aN61SbwKNUKIlEQhnxOgNdXV3Y2trC0dERVlZWMDU1hYmJCYRCIV1QGcNCoVDQ5ycWi1FSUoLCwkIUFhZ26WLOoKqqCsePH0ffvn0xduzYNv+ub9++OHv2LIBHm0ldXV0613A4nC5N11UoFMjOzoa1tTVOnjz5xHGmo6MDd3d3eHt7w8nJCebm5tQIraurQ2FhIR4+fIjk5OQW9VHaCrlcjtTUVDx48AA9e/ZEVFQUYmNjn/o7ExMTeHp6wsPDA3Z2djA2Noauri7VPcrPz8f9+/eRmJjYqY1wdnY2Hj58CG9v7y53Qj4NLBYLb775Jo4dO9apPm4J+vr6sLCwoB9zc3PKMmdgYAA+n69FZa1SqSCXy+n6U1VVBZFIhKKiIhQUFKChoaFLr49BRkYGTp8+DV9fX3h6erbpNwx9cs+ePWlaaG1tLW7evImKigq88847eOutt8Bms9HY2Ihff/0VOTk5z+T6m0Kj0aC0tBQlJSW4desWTp8+3SmNKy6XC3Nzczg6OsLW1hZmZmYwMTGBoaEhBAIBdHR0tAwLiUSC+vp61NTUoKysDCUlJcjOzkZ1dfUzMTauX7+OgwcPYvny5Z3KcGmKsrIy3LhxA8HBwV1yvr8NqbFIJMLOnTuRkZHR7snAyMgIPXr0gL+/P7p37w4nJyc4OjrSjVBrudcKhQK1tbUoLy9HQUEBsrOzkZSUhDt37iA9Pb3L6MvUajUiIyNx6NAhusB3FHK5HAUFBbRA+kkvt7u7O8zMzBAVFYWbN28iNzcXu3fvxsWLF2l/MHSvs2bN6vD1tITGxkbU1dVBo9HQjXh8fDx++OEHFBcXd+icLBYLFhYWcHZ2hoODA+zt7WFpaQkjI6MWDYumHgdmYheLxZQbu7CwEAUFBZRK8mkIDg5+KWhmH4epqSkGDhwIb29v3Lt3r8Pn4XA4cHBwgIuLCx1DdnZ2WouoiYkJ9PX1oaur26o3RaVSoaGhARUVFSgrK0N+fj6ys7Nx//59xMfHo6ioqMPX2RKUSiU2bdqEUaNGwd3dnV5bVVUVPv/8806de926dfD392/TsUVFRdi1a1eXGBaFhYXYvHkzDh482KHf6+rqws3NDf7+/vDy8oKzs7OWYWFoaAg2m/1E2mqpVAqxWIzS0lIUFBQgMzMTDx8+RFxcHPLz87vMSGQoUvfv34+goKA216KJxWKkp6cjKysLtra2WoaFrq5ul9cBXrx4EXfv3kVmZmYzGlcOhwNnZ2dMnDgRQ4YMgY+PD+zs7KCnp0eP0Wg0EIvFSExMxJUrV3D8+HFkZ2d3mBJWJBLhxo0bEAqFuHDhQqvrpp6eHvr374+RI0ciKCgI3bt3h6WlJbhcLq3jYVgFExIScOHCBRw/frzDzGOEENy8eRNjxox57oYFAPj7+yM0NBSnTp3q1HnMzc3h7OwMJycnODk5wcHBAVZWVnQ+bGpYtOZwajqeGMMiJycHKSkpSEhIQHp6epca7Wq1GlevXsXgwYPh6Oio9R62BqVSSVNlCCEQiUQ4f/48HB0dtRjcrKyswOVyn5s2yIMHD/DXX38hMjKyQ8YMm82mOkW+vr7o1q2blmFhbGwMPp/f6j6RiZwwhkVaWhpiYmKQkJDQpWmRKpUKu3btwtixYxEUFNQljkyJRNKl1/i3MizamxNpamqKIUOGIDg4GL6+vvDx8YGZmVm7wkc6Ojp04+Tj40Ot44cPH+L27ds4e/YsUlJSuiRE3NDQgFOnTsHHxwdz5sxp94TLTPx79uxBbGwsxGJxqy/Lf//7X0ycOBGurq6QSCS4desWPDw84OrqSgcQm82mtRldCUIIysvLoVKpwOFwUF5ejtWrV3eobsba2hq+vr7o1asXPD094ejoCBsbG9jY2MDIyKjNA48QApVKhdraWohEIpSVlaGoqAi5ubnIyMhASkrKE1V2WSwWhg4d2uYJ+nmCxWKhR48eCA0NbbenUU9PD15eXvD29oaXlxdcXV1hb28PW1tbWFlZdTjlh8vlwtjYGMbGxnB3d8fgwYMhl8uRkZGBBw8e0Mjk44XPnUF6ejpOnTqF//znPzQCx2azm+WUMh63lJQU1NXVwdnZGdbW1uDz+VAqlSgrK0NOTg5lwzM0NERxcTGUSiXs7OzA4/GQlpYGtVrdTDAtLS2ty6JxcXFxSEhIaLejxcDAAIGBgQgJCUFAQAC8vb1hZ2fXrqgkm82GUCiEUCiEo6Mj+vbtC5lMhvz8fNy7dw/Xr1/H5cuXkZeX1yVeO6lUitjYWFy9ehUzZ85s02969uyJ5cuXt/jds6CDDgsLA4Bm8wOXy0Xfvn3x7rvvIiQk5ImRfjabDQsLC4SEhMDHxwfdunXD+vXrkZyc3KE+rK6uxtWrV6FSqVqNVlhbW+OVV17BrFmzEBAQ0OIcxmKxwGKxYGtrC2tra/j5+cHOzg7r16/vsHERFRWF2tpa2NjYPFdnDJPW8vbbb+PixYvtiuLq6OjA0dER3t7e8PT0hLu7O5ycnGBnZwdbW1tqjLcXj4+noKAgqFQqlJSUIDk5GXfu3EFYWBgePHjQZc7MsrIyREREYMiQIVr6PE8Ci8WCmZkZdbQpFAokJCQgKysLEyZMoGQVwKO5Tq1WP7d01+TkZOTk5KChoaFdDg02m41u3bph1KhR6N+/P7y9veHm5tbumiwdHR1qSPbo0QPAo5Szhw8f4s6dOzh37hxiY2O7TDemsLAQ+/fvh4+PD71WqVTaYSfTvXv3UFlZ2SXXBvyNDIv2gMvlYujQoZg6dSoGDRoEDw8P6OjodMnkxWazYWdnBzs7O/w/9r47rKnzb//ODmGvsPfeG5wg4N5b3Ftb62hra1ttrbW1Wuu2ts5q3avuvRUniIKCsocgewUIZOf3h79zXiJhJQH9ft/3vi4uL5OTc56znucz77tLly7o0aMHzpw5gxMnTmjkxuTl5eHw4cPw8vJC165d2zXm2tpaHDlyhKTZ9PLygomJSbP70NLSAoPBQFBQEAIDA3H//n1MmjQJXbt2JSdHQnSvIyb+4uJiiMVi0Gg0bN26lVyY2wIajQYHBwf06tUL3bt3JxdiAwMDlT14CoUCBoNBThBeXl4kjV5hYSFyc3ORkZGBpKQkPHnyBOnp6eQkb2NjA3d394+qv6IxTExM0KNHD1y8eLFVVhgOhwMvLy8EBQXB398fzs7OZDSuIxvTWSwWfHx84OnpiZ49e6JXr144fvw4rl69qrESrv3792PGjBnke2FkZISff/5ZYZu6ujpcvHgRdXV16NevH7p06QIjIyMwGAxIJBJUVVXh/v37uHXrFkJCQmBiYoKtW7eS+hlmZmb48ccflRr8lZWVGovQVldXt2t7BoMBX19fjBw5Er169YKXl5dGGvUIsNlsuLm5wdnZGd26dUOPHj1w+PBh3L17VyMkDAUFBbhw4QKioqLalLXo06eP2sdsD5Q5jFQqFSEhIfj555/Rs2fPNrNRmZmZYezYsRCLxVi3bh1ycnLaPR6JRIKnT58iOzu72cixmZkZZs2ahRkzZsDW1rZNcyexBs6YMQO1tbXYsGGDStHOvLw8vHnzBs7Ozp2u+0OlUhEaGooePXrg5s2bLW7LYDBgZ2eHoKAgBAQEwN3dnczu6enpdVjpK51Oh62tLWxtbdGlSxdERkbi3LlzOHr0KIqLizVitD98+BCJiYlwcXFp9R5QqVR07doVV69exe7du0lKbQMDAwwdOpSc1+RyOdmP0xm9ZsC7iHt75xgjIyPExMSgX79+CAoKgpWVlUbHRAQJunbtiq5du+L8+fM4ePCgxgz4EydOYNq0aQgICCCDYe+vZW0Fn89v93rSEjTiWBQWFuL169fw9vbu1L4LZeByuRg3bhzGjRuHgIAAhfS3pmFoaIg+ffrA1dUVHh4e2Lx5M3JyctT2Sp88eYIrV67A2dm5XawNPB4PR44cgb6+Pr777jt4enqCzWY3e/6NtTMoFArmzp0Le3t7MBiMTuOflkgkuHjxIvbt29fmVC8hRT9w4ED4+fnB0tKywwx6CoUCHR0duLq6wtXVFRERESgqKkJ2djZSUlJw//593Lt3D927d4eRkdFHVwZFgEajITAwEBEREUhLS2vyjFKpVDg7O6NHjx7o2rUrXF1dYW9vD0tLS9BotE49LxqNBjs7O1hYWMDDwwOurq7Ys2ePRiL9aWlpuHv3LkaNGgXgnTPj7++vsE1SUhLS0tIQGBiI+fPnKzViAwICkJubi5s3byIyMhKhoaFwdHQko703b97ETz/9pOCIEfoMH4KG1NjYGIMGDcLEiRMREhLSZrpCVUCj0WBra4vRo0fDzc0Nu3btwqlTp9SmwRUIBGSpVXt6Ld6HTCbDb7/9hu+++06t8bQFlpaWWLFiBSIiItodydbX18eYMWOQkpKCgwcPoqampt3HJ/rGlEFHRwfjx4/HrFmzYGtr267ngUKhgMvlIiYmBk+ePMGdO3faPTaJRIKXL1+iW7dune5YUCgU6OnpYdasWbhz506TKDeFQoGJiQkZPPTx8YGDgwOsra0/SLmroaEhevXqBWdnZ/j4+GDdunVITU1V29YoKirC48ePER4eDmtr6xa3pdPpmDp1Kq5du4bVq1eDw+GgtLQUMTExiIiIILfj8XjIy8sDm81WKtL4MSAoKAifffYZevfu3SaxOFVBoVDA4XDQq1cvshrkjz/+QFpamtr7Likpwblz5+Dt7Q0WiwWpVIqioiJ069atzaW5BDIzM3H//n21x0RAI45FWloajh07RtYXfijY2Njg008/xYQJE2BlZaVxrnJloFAosLe3x5QpU2BtbY1ly5YpNdzag4aGBpw+fRo9e/ZEdHR0mxckohRhwIABGDduXLujBSEhIaoMV2UUFxcjMzMTGzZsQFFRUavbE3XR06ZNQ7du3WBjY9Mp97gxCHVze3t7hIWFoU+fPkhPTyf7dT5mWFhYoEePHrh27RpZh6qvr4+wsDD07t0b/v7+cHJyIstiPrSTxGQy4efnBxMTE+jr62PTpk1qG6dSqRRnzpzByJEjmz2/oqIiZGZmolevXs1GxrlcLtzd3XHw4EGUlZUhOjoacrmcjF5yOBxMnTpV4R2Uy+V48uQJEhMT1TqH9sLa2hozZszAxIkT4ejo2GnvDJvNRlBQEAwMDMDhcHDo0CG1o3W5ubm4d+8e+vbtq/J5yGQy/P333x3uWNBoNCxYsACRkZEqs7eYmppi8uTJePz4MZ49e6bR8UVHR2PKlCkqM6URDITjxo3D/fv3VWrmTkxMVBAW7EzQ6XR0794doaGhePToEYB3c467uzv69u2LLl26wNXVlcxMfOj5EHj3Lo8bNw5cLhfffvstXr16pZatIZfLERcXh7y8vFYdCyqVirCwMKxbtw43btyASCRCQEAAhgwZoiASWllZCYFAQPYSfWwYMmQIFi9ejLCwsDZRtmoCVCoVlpaWmDx5MgwMDLB69WqNaLAdP34cixYtIgOrbDYbgwcPbrcGxfXr15Genq72eAhoZIWpq6tDRUVFp6W9lMHOzg4LFy7ExIkT26Wyqyno6+tj4MCBYDAY+Pzzz5Gdna1WqjItLQ2XL18m65/bAgqFAhaLBQsLC5XuhUAgwPXr1xEfH4+qqiqFCYvNZmP9+vXt3mdLuHPnDnJychAfH99qXaSxsTHGjRuHmTNnwsPD44M+awS0tbXJOluZTNbpTk57QafT0aVLF3Tt2hUikQhRUVHo168ffHx8YGtrC11d3Y9C2K8xaDQarK2tMX36dAiFQmzcuFFtGuLbt2+Dz+c3a8yIxWLU1NS0WstMsMYRfUKNsXfvXmhpaTX5nMvlalTxuTU4Ojri888/x5gxY5QK+XU0iEzYggULwOPxcPLkSbWYbmpra5GUlISsrCy4ubkpfFdYWAgejwcrKyvo6ekhLS1NaQmQWCxWizWmrfD29sbUqVPVjsb7+/ujZ8+eyMzMVClroQyOjo4YMWIEPD091XrntbW1yT4dVfrjUlNTNdYz0F4QWYlp06bhxYsX6Nq1KwYNGoSwsDDY29vD1NT0o5zTORwO+vbtCwCYN2+e2n1or169Qk5ODsLCwlo8XyL6PmrUKHTr1g1SqZRkTGoMLpeLGTNmgEqltuqsdCYoFAqmTZuGhQsXwtfXt9PXOiJLNnToUIhEIixfvlxlohoCmZmZePToEUnpS5TPtVcfhiC30BQ08taYmJjA3Nwcb9++hY2NjSZ22S4YGhpi+vTpH8ypIMBisdCnTx+sXbsWM2bMUIsRQSwW48yZM+jfv3+bJdzZbDacnJyQnZ0NsVjc7gXt33//xd9//w1jY+MmZT2aajpqjJycHOTm5rYa6bK0tMSiRYswfvx4WFlZqTUhPH78GKdPn8aaNWtAoVBQVVWFQ4cOwcnJCVFRUXj69CmOHz+OqqoqODk5YdSoUfD29kZycjKSkpJQXl6OtLQ0VFRUYN68eejevTvodDry8/OxZ88e5ObmQiQSoXv37vjss88AvNMZ2LVrF0pLS8HlcjF69Gh07doVNTU1uHnzJi5evAg+n09Go4KDg1U+v9Zga2uLr776CjNmzICjoyPZlPwxROOaA8HYMWnSJOTn5+Off/5Ra39lZWWIj49HVFSU0u8JBrG7d++id+/eTQQj5XI54uPjcf/+fRgZGUFHR6fJPqKjo5Xu28bGhhQt62hYW1tjwYIFmDhxooJqeGeDQqHAwcEBixYtQl5eHu7evavyfCKXy5Gbm4ukpKQmjsXZs2dx8eJFfP3114iIiMCmTZvISPT7++gMzYAZM2a0mcGqJbDZbAwcOBBXrlzRiGNBEE1ERkaq3TNFoVBgYWGBrl27quRYZGdnN6Ed70ywWCwMHz4cZmZmcHZ2hrW19UeTnWgJDAYDvXv3xtKlS7Fo0SK1etBqa2uRnJyMioqKVitOKBQK2Gw2HBwcmt1GR0cHHh4eKo+nozB+/Hh8/fXXcHV1/WABNAqFAl1dXQwZMgRv377FL7/8ohbxj0QiweXLl9GvXz/o6elhy5YtCAsLa/d+tLW1Ndo/qRHHwtXVFf7+/jhw4ADy8/NhbW2t4PkS3n9HgEajYfTo0ZgyZQpMTU0/+ITAYrEwYMAAfPnll1ixYoVaWQtiEfb3929Tr4WRkRGmTZuG33//HTt37sTUqVOVGj3NgVBDHTduXBPHoiNexLawN1hbW2Pp0qXkmNSFk5MTrl69ik8//RR2dnYoKSnB2bNnsXXrVqSnp+PkyZMYMGAADAwMEBsbixMnTsDU1BQ8Hg/nz5+Hk5MTxo8fD5lMpjBB/fvvvwCA2bNnk1S2FAoFNTU1WLt2LUaMGAEzMzO8fv0ae/bsgZWVFcrLy/Ho0SOSClYikXR4KSGDwYCPjw8AzSlAdwYI9o6YmBgkJSWpVU4kk8nw8OHDZh0LFxcXDBgwALt378Ynn3yCkJAQODs7g8PhoL6+Hunp6YiPj0dmZiYWLVrUrmAKm83WeJOgMpiYmGD69OmYMmXKB3UqCFCpVHh5eWHq1KnIzc1VqRmZAMGU8z769esHX19fuLq6AnhntE6dOhV+fn4Kc5lQKMSECRNUPn5bYGhoiOHDh7d5PeLxeIiNjcWDBw8UmlAnTZqEkJAQdOnSBXZ2dsjMzFSbxtfa2hrdu3dX6LFTB8bGxggMDFTptwSV+4fS/yGYuIhqgw+B6upqHDlyBGfPnsWMGTMwduzYNv2OxWIhJiaGpCZWB6mpqSgvL//gPbIdhb59+5JOxYde9wh2reHDh+Pp06c4d+6cWvu7efMm5HI52Gw2RowYoVK/qbe3N3bu3KmxtUkjjkViYiJWrVqF6upqnD17tkkEdNWqVW2mCGwvQkJCMHr0aNja2n40ZRxaWlr45JNPcO/evVYZJ1qCTCbDpUuXMHz48DY5FlKpFEKhEIaGhvj5559x9OhRuLq6Ql9fX+m1GTFihAKXO4/HQ2RkJNzc3D4K2lRTU1N89913mDhxosaEYIyNjREZGYmTJ09i3rx5ePToERwcHGBjY4PLly/j2LFjSExMBIPBQGVlJdzc3EiaYwMDAwQFBZFsXQRjFgB4eXlhy5YtEIvFGDp0KNk8lZeXhzNnziArKwtsNht1dXVgsVh48+YNbGxswGQycfnyZZLJrL0pTFXwoSdWVcFgMBAaGoqRI0ciOTlZ5aizTCZrsV6dy+Vi1qxZkMlkOHToEF69ekWWNUmlUrIm/JNPPsHUqVOVGu5v3ryBsbExOBwOZDIZ3r59iwcPHsDNzU1lI6ytYLPZiIyMxGeffdasU1FdXY1//vkH7u7ubaaSFolE+Pfff3H58mUYGBhgy5YtAN41Ef7777948OABunXrRmbq3geDwcDw4cNx9epVFBYWqhxlra2tRWZmJsrKyhQCVg4ODrC3tyfXHg6Hg5CQEHTr1k3h92KxuMNrqyMjI9sVTIuNjcWlS5cQEBCg0KtFzPu6uroIDAxEXFyc2uwtfn5+CAkJ0ViZj5aWFmxtbWFkZNTuEjOZTIa8vDwEBwd/sHmJYAPUNORyOTIyMkCn0+Ho6NjsdhKJBHl5eYiLi0P//v3bdQx9fX0sWbIEly5dUkvnIjs7u13kGDKZDDwej8w4WVpawt7eXuXjdyQcHBzw7bffwsvL66NZ+6hUKlxdXRETE4OHDx+q1XuWk5ODrKwsUgRUFejq6pIBR01AIzNLYGAgjh8/3uz3HfXAETRn3bt3/2geGAImJib44YcfcP/+fbXSlCkpKXj69Ck8PDxazT6UlpZi+fLlpIp2WVkZEhISmmX1cXV1VXAs/Pz8yDreD+1Y6OrqYtasWZg8ebJGG/soFAomT56MOXPmYMKECbh69SqmTZsGGo0GoVAIT09P/PnnnwrGibGxMRISEkgFb2ULckREBJydnREfH4+tW7fC0tISa9asgVAohL6+Pnbu3Ek+owSlLYvFwoIFC/D69WvcvHkTt2/fxoQJE9C7d2+NnW9jxMfHk1TEn3/+uUop0w8NAwMD9OjRAwEBASqrTcvlciQlJUEmkyl1uGk0GpycnLB06VKMHTsWz549Q1ZWFhoaGsDhcODk5ISgoCA4OTk1q5Py66+/wt/fH3PnzkVRURGmTJmC8vJy0lkmaqQ1DQqFAkdHR3zzzTctBiOkUikKCwvbFaGk0+no3bs3mEwm9u7dS35uZGSEQYMGkbTMLUFPTw+jR49GXFwcsrKy2nzsxiAUgLOzsxWMd8LZJ7B161YYGRk1ucd0Oh0TJ05U6dhtRe/evUlxubagrq4OdnZ2GDdunML8QkQfKRQKgoKCoKenp5ZjwWAw4OXlBRcXF5X38T4oFAoMDQ1hZ2enUu9KYWEhJBJJh1JZfwjIZDJ899138PX1xY8//thhx/Hx8cGQIUNatMFaQ05ODiorK1stSSO0sn7//XdcuXIFfD4f+vr6mDZtGr788ksA74IqV65cgY6ODvr3768Q3CC0fTorCEyn07F48WIEBwd/dP0yTCYTQUFB6NOnj8r6E8C7QMnjx4/brKDeGdDIlTYwMGixLryjypNCQ0PRu3fvD24EKwOFQkFgYCCmTZuGHTt2qLwfsViMS5cuITo6mkzxNwcTExOsXbu2zfuur6/Hxo0bFY51/vx5PH36FEFBQQrlUEwms9lIpKbBYDDQp08fLFmypEPYQtzc3GBpaYnDhw+jsrISvXr1IoWP6HQ6srOz0b9/f1RVVaGhoYGckN43XBqjoKAA5ubmGDZsGOzt7TF58mSsXr0aNjY2MDU1RUJCAiZMmID6+nqUlpaCyWSirq4OAoEAXbp0ga2tLTZv3ozk5OQOcyzq6+uRm5sLoKmIV0uQy+XYtm0bDh48iKqqKgQGBmLv3r2dxqjRGERJTXh4uMqOBQBSMbq51C+dTicVV318fEgFeyK6yWKxWgxmxMbGYvTo0RCJRDh//jyEQiH279+P8+fP48yZMx3mWBgaGmL27Nlk+U9paSmOHz+OS5cuQSqVokePHpg9ezYYDAbkcjlOnjyJc+fOoaqqCrNnz0a/fv1w4cIFHD9+HPX19dDT08Pvv/8OGxsbUKlUGBoaNnFYGAwG2cTZmtFLoVDQt29f7Ny5E7m5uSqX9ZSXl6OgoKBF57i5xlEqlaq22npriIiIaFewy8jICIWFhaitrW32mfT29lZ7PrSxsSFpyDUJXV1dWFtb4/nz5+3+bUlJicZU2j8m8Hg83L59G7a2th16HBaLhRkzZqjlWNTV1aG4uBgCgaDZqLdcLkd5eTkmT56MR48ekWsjn89X6P2h0Wh49eoVkpOTYWNjg+7du+PevXvYvXs3nj59ihUrVmDEiBF4/Pgx6urqEB4e3mGsYCNHjkT//v2ho6Pzwcvk3wfBKBodHY3Tp0+rTGJABMrUQWFhIa5du4bu3btrJOigEceiscElk8kUaBc7Ctra2ujWrRt8fX0/ugcGeHdNtLW1MW/ePBw8eFAtJpv79++juLgYLi4uLZ6rnp4eYmJi2rzf9evXK9RmEmqZ+fn5KC4uVogqcDicTnMszM3N8csvv2hUvIsAwZw1ZswYrFixAp9//jkZKfP398eMGTOwadMmfPPNN9DW1sbkyZMxc+bMVvd7/vx5HDt2jJyYv/zyS9BoNJiYmOC3337Dxo0bsXbtWtDpdPTt2xfLly9HTk4O1qxZg1evXoHFYiE4OFiBD/xjQXx8PFatWoVff/0Vbm5uEIvFHzS6aGJiAn9/f5iamqKsrEylfUilUrx9+7bVmlIajaZS4KK6uhqWlpYQCAQ4e/YsxowZA09PT2RlZbWogqwOqFQqXFxcMHXqVNIZzszMRFpaGlavXk2SQOjr66OmpgYVFRWwsbHBvHnz8OLFCzx48IAUJ4yMjASNRsO2bdtw7tw5zJ07V2PlItra2oiIiEBCQoLKJQAVFRUqM6pQKJQOmVsI2NjYtJtEpK6uDrt378aWLVtgampKXuvly5eT5TGOjo7Q19cHhUJRuXfPxsYGzs7OGl8zdXR0VO7ZKC0t/a90LGJjYzuF8YpCoSAkJASOjo4kjbgqKCsra9GxkEgk2LlzJx49ekQ2jldUVGDKlCkK25mbm8PR0RHnz59HRkYGaDQatmzZAhqNRgq5yeVyiMVi7N27F56enh3iWOjp6WHSpEnt1mjpTDAYDLi7u8Pf3x+PHz9WaR9yuRzJyclqjSM3Nxd///03zMzMPh7HQiaTITk5GVu2bMG1a9cwcuRIrFy5EtnZ2cjIyEBwcHCLLAKqwM/PD+Hh4R+t0jHw7oW3s7PDmDFjsG/fPpX3U11djSdPnsDPz6/FBZEwmluDXC6HTCbDl19+iUWLFil83twL2Hgx68iXVEtLC99//z3c3Nw6VMArJiYGI0eOVNBr0NHRwciRIzF48GDyXBkMBhgMBrp06dJiHfD8+fMxd+5c8v9MJhNUKhVUKhXh4eHo0qULyYRDp9PBZDLh6+uLffv2kZ/TaLQP1kDYEuLi4mBubo5JkyaBRqN9MAYXAlQqFQ4ODvDw8FDZsSD6HtRBYWEhrl+/jsjIyCZRSVtbW7x+/Rpv375Feno6du/eDblcDqFQ2GFlAAYGBvjss88UavStra2hq6uLn376CRMnTkRUVBTpdOjq6pLaJWKxGDdv3kR9fT0yMzNx4sQJiMViZGdnIzw8XKOscBQKBVFRUfjnn3/UciwKCwtbfBZrampw4MABXL9+HaWlpQrnwOFwcOvWLZWO3Rp8fHzaLTIaERGB48ePNzmfxlkXQgE6ISFB5fJaGxubdq/FRMBJ2TNAZPC0tLRgbGys0pja61gQ69fr16+xf/9+XL16FaWlpTAwMEBERARmzZoFPz+/JqVo9fX1OHfuHM6ePYuEhARUVFSAw+HAzc0No0ePxqRJk5qI30kkEvzxxx/Yv38/vv/+ewQHB+PQoUM4deoUCgoKoKuri969e+Obb76BnZ0dnj17hh07duDJkyfIzMxEQ0MD/vzzT/z999/kPq2srLB06VJMmjRJ4byoVCpEIhHOnTuHPXv24Pnz55BIJHB3d8ecOXMwYMAApYxVFAoFWlpa6N27N3bu3Nney0+ivLwcDQ0NTehjG1+L48ePw9LSEjt27ACXy8WTJ0+abEelUslqh+rqajx8+BDOzs6YM2eOQqbQ3t4eb9686TDna9y4ceRz8LGCyFoEBwer7FgA70rmmyvtbQv4fD5qa2s15uBr5IpnZGRg06ZNKCoqgp+fnwJ93PXr10Gn0zXqWFAoFHh6ejahgWwJQqEQQqEQurq6nWYUEarNM2fOxMGDB9WiOLx9+zZGjRqlESq84uJiXLhwAW5ubggPDyc/T0xMhJ2dHalnQGSiiOhCSUkJamtrYWFhAQ6Ho3EDiUKhwM/PD9OnT2/TvokFTyQSQSKRQCaTkWOm0+lgMBhNFheCapL4jVgsBvBuMmQwGGAymUoj1DQajTSqxWIx+XvCAaFSqaTD0LinRSaToa6uDjQaDdra2pDJZBAIBBAIBJDL5eRxWSyW0nMmGvIbnx+dTidLcd5/FohFVygUkuU7VCoVLBaLfCfbGu3k8/mQSCTIz8+HlpYW6urqSOdVS0uLvJZCoRAsFoscJ41GA5vNJp0kYhvi+WcwGKQiPDF+kUgEoVAIqVRKjrclkT5ra2u4urri3r17bTqX9yGTyVBQUKDSbwmkp6dj48aNsLOza+JYzJkzB/PnzwedTsecOXNgZWWFqqoqFBQUdEhpBOFsjRkzRuGa2djY4IcffkBycjL27NmDu3fvYvHixdDR0QGLxSKfO+LZKygowPbt27FixQoEBARg8+bNajcLK4Ovry+MjY1Vjr6LxWJUVFSgtra2WWKHP/74A0ePHkVYWFiToEBHBqQIx6I9MDIygq6uLoRCIWkgsFgshf1QKBTY2NiQ71p7wWQyYWVl1W7mn7KyMqxbtw5xcXGora1V+M7f3x979uwBm81W2bHg8XjtclylUimuXbuGH374AVlZWbC1tYWXlxdKSkpw+PBhXLt2DevXr8fAgQMVAm2XLl3Cl19+CT6fD3t7e3Tp0gXV1dWIj4/HkydP8Pz5c2zbtq2JIUqsffHx8Th79izu3bsHe3t7eHt7IysrCxUVFeTcJpVKYWhoiJ49e0JfX5/MAjbuZTQ0NISzs3OT86JQKDhy5Ah4PB60tLTg4eGB0tJSJCQkYMaMGdi4cSMmTpyotNeSTqcjPDxcLceirKysxQZwguq5V69eMDMzazEISZBdNDQ0oL6+Htra2jAxMVFY44j1Wx3mzOagr6+PYcOGwcrK6qPNVhDgcrnw8PAAnU5X2UasqalBcXEx9PT0QKVSSRtGIpG0qam/srJSrV7g96ERxyIvLw98Ph9r167FnTt3SEVBMzMzSCQStfQclMHc3Bx+fn7tUjretWsXdu/ejdjY2E5V+SQaQbt06aKWZPrDhw9RWlqqwHqiKoqLi3Hq1CkMGjRIwbH46aefMGbMGBgaGsLMzAyurq7Q1taGXC7HP//8g2XLloFGoyEsLAx//PGHxsVvmEwmvvnmmzYtynK5HHw+H48fP8ahQ4fw+PFjlJSUgEqlwsTEBIGBgRg1ahT69u2rcL8bGhpw8uRJnDlzhizFoNFosLS0RFRUFKZNm4aAgAClY5BKpaiqqsLVq1dx8uRJPHv2DJWVlWAymTAxMUFwcDC++OIL+Pv7k4tTRUUFfHx84OHhgYsXL+LJkyf4448/yPpSLpeLmJgYzJs3rwkjVENDA+Li4rB//37cvn0bpaWl0NbWRnBwMObOnYvIyEiF2lHC6Xnx4gW2bt2Kmzdvoq6uDvb29hg9ejQcHR1BpVLbHJVYtmwZrl27hvz8fAiFQnh4eJCK0j/++COkUikuX76MdevW4fPPP8e+ffvw8uVLeHp6YvHixYiKioJEIsH9+/exe/duxMXFgclkIjw8HPPnz4ebmxvZNH/06FHs3r2bVIAdNWoU5syZ0+y7ampqqtbzJ5fL1Vbx5vP5EIlEShfGadOmwcPDA0KhED179iQdQl9f3w7poWGz2Rg/fnyT2vm6ujpy3hgxYgSePHmC4uJipYYN8E4kk3jny8vLcf/+fbK3SyaToaqqCjU1NRCLxaiqqiKN3+rqavD5fDQ0NKC6uhpaWlotZk+1tLTg7e2NxMREBXrV9qCurg48Hq9Zx+LZs2eYPXs2pk6dqjFWubZAFerU2tpaXLlyBfv37yedz6lTpzaZvywtLVV2ioyMjGBpadnugNCyZctw//59jBo1qsmaS5QSslgsla9xXV1dmx0Louzjr7/+Qk1NDdatW4cJEyaQVNDbt2/Hxo0bsWnTJjg4OChQDQ8ePBg1NTUIDw+Hk5MTKBQKxGIxbt++jfHjx+PevXt4/vw5QkJCmhy3qqoKBw4cwJAhQ3D58mUyo15bW4va2lrSqQoJCSF//8cffyAuLg69evVS6GVsDuXl5ZBKpVi4cCHmz58PExMTUhR08+bNOHDgACIiIpQ26dJoNPj4+KhVJldTU9OqpgKLxSLnvObsEJlMRka/ORwO9PT0kJmZiZycHIjFYgiFQvB4PFy5cgXW1tYd0iMbHR0NZ2fnj47URxkYDAasrKxgY2OjMg23XC5HamoqVq1aBTc3N/z5558A3s2B8+fPb/X3lZWVamfwG0MjjgURjXw/hSYWi8koqybh6OgIf39/je6zI6Gjo4PBgwer5VjweDy8fPkSPj4+0NbWVms8AoFA6QTC5/Px+eefg8PhQC6X46uvvsKsWbPAYDCwefNmrFy5Er6+vli7di127tyJlStXqjWO9+Hj44PBgwe3aVuxWIyjR49i5cqVqK+vh5OTE5ycnFBXV4eioiLcvHkTHA4HYWFhCgtzXFwcFi9eDAaDASMjI7i5uUEmkyE7Oxt///034uPjsWXLFnTt2lXheHK5HDk5Ofj1119x+vRpMBgM2NrawsfHB3V1dSgoKMCtW7ewaNGiJs+7VCpFQUEBrl69iqVLl5IGpkAgQH5+Pqqrq5tMrgKBAAcOHMC6detQXV0NGxsbuLm5oaKiAk+fPsWNGzfw888/Y8GCBWT0XyqVIiEhAdOnT8ebN29gZ2cHX19f8Pl87NmzB/r6+hCLxW2uL1+zZg1WrVqF1atX486dO7hy5QqZmWmMV69e4fz585g3bx5sbGxQX19P1lsTRoCDgwMWL14MoVCI1atXY8OGDVixYgWsra1x7do1rFmzBitWrEBwcDCSk5NJFpXFixcrHRuHw4GZmRm0tbVV6l+Sy+UQCASQSCQql+MUFRU1G+WhUCjo0qWLwiKvp6eHgQMHqnSs1qCvr48xY8Y0+TwrKwu///47KisryXmIePaMjY3J6CfBVObp6YkePXpg3bp1JL0vQR8uEAiwfPlyFBYWoqKiAsuWLUN0dDQ8PDywYcMGvHnzBkKhEKtWrcKwYcPQo0ePFsfs7OwMLS0ttRyLlgTj6HQ6dHR0Ot24sLe3b/cx79+/j/j4eCxduhRubm54+fIlTp06BSMjI0RGRpLbGRsbq1wuaWRkpBKd9f3797F27VoMGjSoWaeEwWCQZUTtNWxra2vb7FiIxWIkJiYiNjYWkydPxvjx48m5k8PhYMKECbh79y4uXryIzMxMeHl5kdeLzWZjxowZTcbt7++Pvn374uHDh8jMzFTqWDQ0NMDW1hZjxoxRMOx1dXU1GqiMiopCTEwMTExMALwz5MeOHYuLFy8iOTm5ScaIAJVKhZmZGYyMjFQOmBDZsuZApVLh5+eH1NRUZGVlKaXQlUqlePPmDZ48eQItLS3Y29vDzc0NCQkJWLVqFVJSUiASifDw4UMkJCTgq6++0rjGGZ1OR3R0dIeofrfl2VbF3jU2NoalpaXKjgVR2ltUVKRgS/B4PDx//hx6enotOnANDQ0aFQ3VGCsUm83G06dPUVtbC4FAgNLSUjx58gRisRjm5uaaOAwJa2trjdLldTQ4HA569epFRlVURWJiIoYNG0Y6Fm/evAGFQoG1tTUZfcnPz291P7m5uUoXZAqFgnnz5mHWrFlIS0vDihUrMH78eBgYGKC4uBgDBgwga+13796t8nk0hylTprQ5mpafn4/Y2Fg0NDRg2bJlmDNnDnldqqur8fjxY1hYWDSZtMLDw/Htt9+ie/fuCAkJIbUJXr58ia+//hpxcXE4c+ZME8eipqYGu3fvxr///gsvLy8sWbIEffr0IY9ZWlqKFy9ewNvbW6lRkZ+fj40bN2L27NmYOXMm9PX1ScrPhoYGBWNfLpcjNjYWO3fuBJVKxaZNmzB06FDo6OhAKpXi1KlT+OKLL7B8+XL07NmTNGArKyuxadMmvHnzBsOHD8fatWthbW0NkUiEW7du4aeffkJSUlKTc2sORPSbwWCASqU2qT8mYGxsjMGDByvlYL979y6EQiECAwMV+lUOHTqE8vJyWFlZYdeuXQgLC4OLiwsaGhpgaWkJPz8/nD17Fl9++WWzE7Wuri4MDAxUJkYg5qn3a53bipKSEhQVFSn9joj4V1ZWQiKRkGKKtbW1pBGmKRBZRGUlVv7+/jh06FCTz7W0tLBkyRLy/05OTmSgwNvbW6H3igCTycRff/2ldAyqzAeOjo5qsRMRdcEEamtrFdL+vr6+ePLkCdzd3WFnZ6fgEFMolA4RbSXm4/ZmBXg8HszNzREWFgYajYaePXvi7t27TdYLIyMjlWvGDQwMVBJAY7PZrUaVKRQKmEwm2Gx2u/UU6urq2uyMVFZWIiUlhSRVUGaIUalUyOVyZGdng8/nK2RZRCIReDwemW2USqWorq4mM7ktjd3Pzw9eXl7tOrf2gEqlws3NDU5OTgqfm5ubQ1tbGzwer0Xjj8i8q+pYENejOdDpdEybNg2LFi3CV199he+++w6FhYWQyWSoqalBbm4uioqKcPjwYZw+fRpDhw5FUFAQbG1t8cMPP+DIkSOorq5GXl4eLC0t8f3332PIkCEanQuBdwELT09Pje1XKBSisrISPB6PDJY3B1dXV5W0JAwNDdXSsCICZadOnWqS0bSxscHnn3/eIhPhjRs3sHnzZpWP/z40przt6+uL7du3QyAQoKamhmze7tOnD/z8/DRxGADvjHQ7O7sWOdqJMoeSkhIIBALo6uo2idDLZDKUl5ejuLgYYrGYjIAaGhqS0d/q6mqUlZWhvr4eFAoFenp65EsOvPPOMzIyYGZmBj6fT6YyuVwurKysyMWFRqPBzMwM3t7eajHCJCYmKhhRc+fOBZ1OJ5Ub3759ixEjRrS6H4Ja7n2w2Wz07NkTFhYW4HK5qKmpAY/HA5vNhkwmA41GA51Oh4WFhcbrromayLZ6+1KpFBKJBNra2qQIGVGbbGBg0KzQEJVKbRIFp9FopFjNzZs3kZeX1yTV++zZM8TGxkJPTw+ff/45Bg8erLDAc7ncFktcaDQaPD09sWjRItLxoNFoSlWbRSIRrly5gtTUVPzwww8YOHAgGVmm0WgYM2YMyUJ18OBBknKzuLgYFy9ehLW1NRYsWEBGbJhMJnr16oXU1FS1FKubg56enlKtGrlcjtLSUjx48ACpqakKpTEEQ4hcLkdWVhaePn2KZ8+eKVxzBwcHSKXSZg0pHR0dlaOFcrkcDQ0NaGhowL1792BsbNxupqDa2tpmF/qioiKsXbsWt27dQnl5OZ49ewYWi4WzZ8/CwMAAw4cPV2ncykCn0zFgwACN7a+zYGFhoRZZgUAgUDC8r1y5gtjYWPL/REN6XFwcvLy8YGBgQD5fbDa7XdTcbYWOjg5Z5wz8T3liUVER+Hx+E6NEX18fNjY20NXVBZ/PR2JiIvT19VFVVQWxWNzEONLT01M5A6Orq6tSH0T//v1x4sQJWFhYkP13BJhMJumgET1m7XUsiF6wtoBYu6qrq7F169Zmqdx1dXUhlUoVDOXKyko8efIE58+fR0pKCng8Hpm9Ly8vb7WUy9DQsEPZxLS1tWFoaNjknaDT6eRc2dJ1olKpbRLSbQ6tORY0Gg3Dhw/HkydPcPLkSQwYMAAmJiaoq6vDuXPn8ODBA1IwLzw8HBMmTCCDHU5OTvj+++/x/fffK/RCdgQCAwM1piovFArx6NEj/Pnnn7h16xbZD0TYB8T7rKWlBT09Pdy6dQuenp7tPo6urm6zTfNtgVwuR11dndIyOR0dHbi5ubWoc5GXl6dRB08jjoWZmRlmzZoFa2trXL58GSUlJeDz+Zg0aRKGDRum0YwFl8ttlXa1uroau3btwvXr1yESieDg4EBGpoF3N6GoqAjbtm1DQkICGhoaYGxsjB49emDSpEkwMzNDfX09bt26hePHj6OsrAwymQzm5uaYPn06oqKiwGKx0NDQgLlz52L48OGoqKhAfHw8amtrMWTIECxevFjBc9TR0UFoaKhajsWrV69QXV1NGtA0Gk3BYRIKhXj16hUsLS3JVKoyNCeYZ29vj+fPn0NXVxfl5eWQyWQ4e/YsTExMwGQyUVBQAGNjY1RUVGi8TyUqKqpdFI3m5ubw9fXFlStXsHfvXkgkEoSFhcHKyoosF1C2r8aN6NXV1WQKkPhMLpeTjdmNJ/j09HRkZ2eja9eu8PT0bHfUUF9fH/3792+TUVBYWIisrCxyXMo4qonylKSkJLIJLjU1FfX19TA1NW2i7sxms2Fvb6/UkVEXRAO6MlAoFISFhWHx4sVNon3EREo4S19//bXCO0On01u8ziwWS62IN/Hu6OnpYdasWRg6dGi7fn/z5k1s375d6Xd//vknXr58iVmzZmHNmjUAQGYs7t27p1HHgs1mIzo6WmP76yyYmJio5VgQwQUCAoGgST9fY9Xtxlna1mrJVYWpqanCOy6VSvHo0SPs2LED5eXlTY7bu3dvkm0oKysLmzZtgq6uLmpraxEREdFEDVcd0gxVjRcul4v9+/fj5cuXcHd3V3jnnJycSGE0Go2mUv9HexwLmUwGsVgMPT09dOvWDd7e3s1uGxQURI5VKBRi9+7dWL16NUxMTNC1a1f4+PjAxMQEUqkUJ06cQEpKSovHZjKZHdr039p81xqoVKpavUStReMpFAo4HA5WrVoFDw8PnDp1CkVFRbCxsYFMJkN1dTXZTzplyhQEBAQA+J93jXCQZDIZKioqQKFQ1MrAKQOVSoW/v79a0f/GyMrKwrZt23D9+nU4OjrC3NwcGRkZEIvFcHBwgFgsRk5ODszMzDB27FiVbV2iF0UdKGPXMjAwQFBQUKvj0tbWhra2tsYIeTRyR4mI/8SJEzFx4sQOpSU1NjZuVcn72rVruHDhAsaPH4++ffsiJycHS5YsIeuhxWIxjhw5gvv372P16tWwtLTEo0ePsHv3bnA4HHz66adgMplwcHDAtGnT4ObmhtraWqxfvx4XLlyAu7u7AsvViRMnMGvWLEydOlXhJWoMbW1tpbWb7UF1dTVycnLg6ekJFouFrVu3NpmQDQ0N8dlnn2HUqFHN7ufJkyfYsGFDk8+HDx+Obdu24c6dO+DxeBg2bBhevXqFrKwsDBo0CPv370fPnj1x48YNjas29+nTp12ROD09PQwfPhzl5eW4fPkyfvjhB1hbWyM6Ohq9evWCn5+f0kbH8vJy3L17F1euXEFaWhrq6uogkUggkUgUDI/3r2tVVRWqq6thYWHRLtIAAkSDVltQVlZGpl1/++03rF+/Xul2BDMT8M6AKSoqAp1OJ1W93wdROtRZoFAoZH3tmzdv4OPjQzrkBKMWQcebnJyM6upq2NnZkY35rYFg/lIFje8vi8WCn59fu59popleGc6dO4cNGzbA39+fdCyIJv+SkhKVxtwcbG1tm5RPqIPq6mrSaetIRhUDAwO1jIrGrG4AMHnyZEyePFkTQ1MZpqamCouzQCDAr7/+ChaLhVGjRjUpKSLWEXNzc8ydOxeDBg1CeXk5zM3NldJPs9lslRd/HR0dld7/wsJCDBo0iPx/42ve2LFTlS67PbXdTCYTOjo60NbWxqBBgzBv3rw2/S49PR1//vknpFIp1qxZg+HDh5PrTWlpKe7du9eqY/Gxg0KhdLhoKYVCga6uLj755BNMmDABr1+/RmFhIdm75+zsDDs7uyZBuerqanh5eUFfXx8JCQm4fPkypFIphg8fDh8fH405bEZGRnB2dtZY4DMjIwOJiYno168ffvjhB3h6emLJkiWoqqrCd999ByMjIxw+fBgnT56Em5ubSmVQwLu1XBnbV1tBZODfR0BAALZu3drquMzNzdG7d2+NOWQacSxyc3MRGxsLLy8v2Nvbw9jYuMO4gw0NDVs10GJjY+Hg4IABAwbAyckJrq6uuHTpEm7evAng3cR48OBB+Pn5obS0FKWlpSQl6P3790kxKAcHB1AoFOTk5EAkEoHFYqG6urpJf0JQUBAGDx7cYhqSxWLBxcUFWlpa7U4VN0Zqaip69+4NFoullMKXyWTC2dm5RUOjrKxMaUo3MjIShoaGSEpKgoGBAaKiosDhcFBeXg42m43vvvsOu3fvhpOTUxNRHHXAZrPRo0ePdqf43dzc8MMPPyA6OhqXLl1CYmIijh07hqNHj2LgwIGYM2cO/P39SSNbJBJh165dWLNmDSwsLNC1a1e4ubnB2NgYbDYbL168aNaIl0gkkEqlYDAYKpUiEKxAbQFxLG1tbQwcOLBFqmaC9o+gfm3pOESWqzPRq1cvJCcn48qVK3j79i309PRQW1sLLpeL4cOHw9jYGLNnz8a3336Lbdu2kWnkurq6Vpv5CQpgdaClpYVevXq1GqxQBm1t7WYzY/X19U2MSIlEgqqqKpUXH2UgxLE0iVu3bsHNzQ2urq4dqquiruNCBASaQ15eHoyNjZv0BgkEApSXl3dIc6eJiYnCMymRSJCZmYkjR44gNDS0xd+y2Ww4OzuTjF0HDx6Ei4uLgsP7Pn12W0FQUKry7P3+++9t2o5Coajk9DSm7W4N+vr6cHR0RE1NDbKzs5W+Z8rw8uVL8Pl8eHp6KgSxCIMsKyur3eNuDcQxNNkU2xo6S9eLEJns0qVLq9veunULWVlZMDExgUAgwJYtW1BXV4eGhgYUFxdj5cqVGjNonZycNNo7xePxIJVK0atXLzI7xmAwIBaLIRaLYWRkhFmzZuHJkyfYv38/2VPSXqia7WsMZUQiBIFFa3B2dsZPP/2k1vEVjquJnZSVleHEiRO4cOECqS/h5uYGOzs7jUqpE6mz1urnKisrSWORgJWVFfmiS6VSZGVlgUajKTgJOjo68PT0hFwuR0lJCc6cOYNnz56Rk2VKSgosLCyapAvt7e1bjRQQird2dnZITU1t13k3BkHZpgy6uroYPHiwUraGxtDS0oKurq5SA9Tf378J45aZmRnkcjk2btyI4uJimJiYaLQez8HBQaEnpT3Q09ND//79ERUVhbS0NNy4cQMXLlzA8ePHUV9fj99++4180bOysrB582bIZDL8+OOPGDt2LHkNhEJhiy820cvB4/HUasBvC3R1dcHhcECn0zF+/HgMGTKk1WtDpVJhaGgIqVRKUv29b3QLhUI0NDS0m96PoDF8HxQKBVZWVujXr1+zkVAbGxvMnz8f169fR0JCAjIzM2FsbAx/f3/ynfHz88Pvv/+O06dP49mzZ6TujZ2dXatjU3du4XK52LRpk0qRXGtrawwZMkRpQCEiIgL//vsvhgwZAolEgvT0dFRWViI2NrbNzfNtAYVCUWqwEhms9PR00Ol08Pl8mJmZwcPDA1paWiguLkZ6ejrq6upAp9Ph6ekJAwMDZGRk4OjRowgODkZeXh4cHR3h4uICPp+PR48eoV+/fiTpQHFxMdzd3ZGVlQUqlYri4mKw2Wy4uLjAwsKCFNsrKioChUKBi4sLbGxsyHeOEJFUFTKZrMWa8L1792LYsGEKlKPAuwj1jh07sGrVKpWP3Rwa91cA795LU1PTZueMoqIiVFZWkoGNxrh161aT51JVx4LFYqm8Fr969QomJiYwNTVt8feqOhbt0bDQ09NDQEAAzM3N8fjxY8TGxiI8PJx0mORyOWpqakgKWOJzQhOH0AUiHBk+n4/Y2FgkJydrvLzX2NgYMpkMOTk5aGho0GhA4UNBKpUiPz+f7BlqzSl0cXFBeXk59PX1YWpqiuvXr6OhoYGklV+8eDFqamo05lg4Ojpq1LGQyWSg0+kK9h2HwyH1OYB3AQFvb2/s3bsXdXV1Kh1H3TI4AM3ahR8CGnEs/P39sWrVKjx48AAJCQl4+fIlTE1N4eHhAR8fHwQEBGjkZhOlBK3VohE3vvGFrq+vV3gBDAwMMGzYsCYcv4TA2bNnz3Dy5EkMGTIEEydOhKGhIX777Tel0ultnew5HA5cXFzUciyys7ObrQ82NzfH+vXrW3VyzMzMMHToULi5uSl8fv/+/WbLNBgMBoYOHdomY6+9UEVQ6n0wmUz4+PjA29sb/v7+WLRoES5fvoyvvvoKNjY2oFAoSElJAZ/Ph6mpKcaNG6dgeNfX17cYtbK2toaFhQVev36N/Px8ODg4dJiCsqWlJSwtLcHn85GWloZevXq12jRIp9NJnYri4mK8fftWIXIilUpRVlaGkpKSdotVjhw5EiNHjmzyOY1GQ1BQEIKCglr8vY2NDWbMmNGE6rExvL29W6yX7ijQ6XSVmHKAd6QVzRmnn376KdasWYOdO3dCIBBgw4YNEAqFsLGx0Wh/BQCl5BgikQiPHj3C9u3bERUVhYqKCjCZTIwdOxaBgYEoLS3Fs2fPUFVVhaKiIvTo0QM9e/Yk+eZ1dHQgEonAYDDg6OiIoqIiLF++HP369YNIJEJ8fDxu3LiBL774Anv37oWenh7YbDb09PRIHZzExETcu3cPIpEINTU1SElJwahRo8jnUlUjmUBrzawPHz5E165dm2zT0NCA48ePd4pjwWAw0L17d+zduxcCgaBJTXlBQQHkcjlqa2tx4MABhUxzWlpakyikqnMOm81WudRi3bp1mDRpEnr16tWqY9HRYmQ0Gg1+fn6YOHEi9u7di/Xr1yMnJwfW1tZkA2tOTg7kcjnGjx9PBtl8fHxgbm6O1NRUHDx4EL6+vhCJRKQjbWlp2SyVq6rw9/eHsbEx4uLisGfPHnIsBJFHR/S7dSSkUikePHiAAwcOICUlBRUVFc3q+BD44osvyMZzor/Mx8eH7E+or6/XmNoz8K4sVFWhRmXgcDigUCioqKgge1uNjY1J4h8igEcwirXHSW4MTVQTdITQoKrQiGPB4XAQGBiIgIAAVFRUIDExEU+ePMG9e/dw/vx5LFmyRCP87RwOp9WoCfCOZvD8+fNISkoCh8NBVVUV4uPjSUeDyWSib9++ePDgAYYOHQobGxuIxWLweDxoa2tDR0eHrL23s7MDm81GSkoKXr58qZb8vJaWltoK5ERZljIQlKCtwdzcXKmRd+PGDTx//pz8v0QiQWVlJYqLi9G7d+92N7e2FV5eXu321isqKlBcXAxjY2OYmJiQv5fJZGCz2UqNFmKSIBjBiEyMQCDAo0ePcP78+WaP5+vrC39/f1y+fBlnz56FhYUFHB0dSYdIJBKhoKCAZA5Rx+kwMjJC9+7dcefOHZw9exbu7u6IiopSKOmoqqpCRkYGPDw8SK5+R0dH+Pj4oKCgAMeOHcPcuXOhp6cHqVSKzMxM3L17F2VlZWo/g/+H1hEUFISffvoJV65cIbOcrq6u6Nu3r0b7IRgMRrP7EwqF0NLSwqxZs1BfX48jR47gxYsXCAwMhKGhITw9PSEQCPDkyROkpKSgW7duJOPY2LFjERkZ2aLIHQGRSAQul4tPP/2UfO75fD5u3bqF3NxcREREoKioCHFxcQgNDe0Q5XEChANdX19PllpkZ2eTi7ZMJsOjR486rCTwfdYkwqAiykHe7/sKDQ3F3Llz8ejRI0yfPl1hndy5c6daTDGNwWQyVRYii42N1Wjpq7qwsLDA5MmTQaFQcOXKFaxbt46c/0UiETgcDvr27asw/7u4uGD27Nk4dOgQNmzYQJaQUigUdO3aFfb29s2WwaoKJycnzJs3D0eOHMHKlSthZGQEJpMJGxsbfPHFF/9xjoVYLMbKlStJ0T9PT89WA4IuLi6oqKjArVu3sHXrVuTk5JBsUomJiWCz2Rp7F6lUKszNzTWaeTIzM4OxsTGysrJQWVkJExMTuLi4QCQS4fTp0wDeOYr37t2Dnp5ep5WitRVisRh8Ph8cDqdTx6bxRggmkwkDAwOYm5vD0NAQZWVlGmPg4HA4bfJG+/fvj6SkJBw+fBj3798Hm81WmPAZDAbmzp2LdevW4Y8//iD3qaWlhaioKFhbW8PJyQkODg44ffo0Xr58CaFQCLFYrNZEz2Kx2tzA2xwKCwvB5/NbVL5UFUOGDFFgUSGYkv79998ONUYJBeb2IDMzEwcOHACFQoG9vT0MDAxAo9HA4/EQGxuLN2/eoF+/fjAxMSGvk6+vL+zt7ZGeno7ffvsNoaGhkMvlePPmDR48eACRSNTspOTo6IhRo0YhIyMDJ06cQFlZGUJCQmBgYACRSISKigqkpaVh1qxZCAsLU8uxoFAo6NevH1JTU8mFMCkpSSEqV1BQgMTERPzxxx8kS5qxsTFmzZqFFStWYPfu3airq4OdnR1JY5mUlKQxGr7/Q8ugUCjw8vKCl5dXh5NZNJfNYjKZsLCwgJmZGUpKSqClpQWBQICGhgbExsYiNTUVNjY2JA1qe2rBG2eD9fT04OzsrBAcqKurI9W4y8vLwWAwEBER0eHPHyG+9fDhQ+Tm5uLgwYO4efOmgjp9Xl6e0gycJqCjo9OkFMrNza1JdpiAk5MTWCwWPD094eLiopCNDw8P11hZB51Ob5OT2NwYWxIi7GxQKBQ4OjpiwYIF6NGjB16+fImysjJQqVTo6urC1taWJO8gQKVSMXv2bLi4uODly5eoqqoCh8OBu7s7evXqhdraWtTX1zdh4aJSqQgJCcFXX32Fbt26tesdplKpWLRoEdzc3JCamgo+nw82mw07OzuyjwZ4Z3eEh4eDxWIpzf7SaDSMGjUKXl5eH3T+lslkSE5OhpubG6mR1NozRaVSkZ+fj7dv3yIpKQn9+vVDUFAQGAwGqqqq0L17d405Atra2qTzpik4OjqiX79+EIvFZFDZ19cXgYGBOHXqFBISEiCTyZCfn49p06ZpLBCgKRQWFuL48eNkpryjm/sJaEx5Oy8vD4mJiUhMTEReXh5kMhmsrKwQHR3daqlEW9FWx8LFxQXz58/Hw4cPUV1dDQcHBwwdOhQJCQlkqVNgYCC+//57PHjwgCwTsLOzI5s4PT09MWfOHMTFxUEoFMLLywt9+vSBRCIhqbuYTCamTZsGDw+PNj3MLBZLbepdQqyF0JVoCa2VCryfum7uPpmammLDhg1YunSpaoNuBba2tu12LDgcDiQSCW7cuAEej0c28spkMhgZGWHIkCGYNWuWwvW2trbGN998g7179+Lw4cM4f/48mEwmtLS00LVrV4wYMQJbt25VejwGg0EKzJw6dQpPnz7FrVu3QKPRSCePECrUBKytrTF79mwYGRnh2rVr2LNnD8mfLZPJoK+vDzc3N4UoJIfDwciRI1FWVoazZ8/izz//BIvFAofDgYeHB8aOHYu4uDgUFhZqZIz/rRAKheDz+dDW1m6zMXbixIk2sz1ZW1trrBzK0dGx2WeuuUb+mpoavHjxAk5OTpg6dSr27NmD9PR08nsmkwmBQKAwd3A4HPD5fAgEAgiFQoXtlamxczgcsq565syZ0NXVhVAo7DBSDwI0Gg0WFhZwcHCArq4uuFyuwntJpVIRHBys8XI0AlpaWgr3g81mk7o5RLmEMtpSZX06rTV7twfqOBYzZszA1atXoa2trdAjA7w7vw9l7BoaGiIqKgpRUVEtbldTUwMOhwM2m43+/fsr1TgyMTHBsmXLmnxOpVLRq1cv9OrVq93jIxiUxowZ0+J2BElHc1UdNBoNM2fObPfxNQ0ajYZBgwbhxYsXEIvFZGVAa7C3t8fs2bNRVVUFLpdLOhKurq4aLV0yNTWFvr6+RgM45ubmmDx5MoRCIfmOmpmZYcqUKWAymXjx4gVoNBp69+6N6dOnf3SOxdu3b7Fjxw5ERkZi2LBhnXZcjczyKSkp2LBhA9kg2KVLF/j7+8PT0xOGhoYaq0XX0tJq042jUCgICAggeZQJNGZPodPp8PX1ha+vr9J9aGtro3v37ujevXuzx2EymZg+fXobR/9uezMzM5LLWVWUlZUpbc4F3vUKPHnyBHFxcaiqqmrxOMOGDWvx/AhwuVzk5uaqPN6WQKPRYGJi0u5nxNHREZ9++imioqJQVlaGhoYGyOVycDgcWFpaIiAgAFZWVk1StTExMXB0dERKSgpqamrAZDJhbW2NwMBA6OjokClDZddWT08Pw4YNg7e3N169eoWioiI0NDSAwWBAT08PdnZ28PLyUvittrY2fvjhBzAYjHYvwK6urpg3bx7Cw8ORkZGBqqoqAO+MNi6XC1dXV4X+AAqFAi6XiwULFiA0NBTZ2dkQCAQwNDSEr68v7OzsSCY0TZbjNAdCM0QgEJAGKfGvSCSCSCQi2TWIP4JCtC1/2dnZyMvL0/i4c3JycPDgQbi6umLs2LFtivIkJSUp9OiIxWI8evQIDg4O5IJUWFiIuro6jRoJqjizxDuSkpKCXbt2ISMjQ+H70NBQ3L17Fzk5OejSpQuCg4NhZGQET09PrFu3Dnp6eq2q++rq6qJLly64ffs2tm3bBi0tLdjZ2aFHjx4donhNgMlkomvXrujSpQsSEhIwZcoUdOvWjZxfiAbjjuoFIPRlGkMkEuH+/fu4d+8eysvLweFw4OzsjKioKDJyXVJSAqFQqFAmlpeXB11dXRgZGak9LkK8ThU8e/YMFy9exPPnz2FpaalgTLq5uWmUTUbTqK+vx927d9G9e3eNXEd1QASFGhoaFOZC4l9lc1x75kM+n4+EhIQOGz+DwcDChQuxatUqfP/996R919Jz1bVrV4SFhcHY2LiJA6EKE19LMDAwUIuyVRmIHrP3ERwcDCsrK+Tn54NGo8He3h6GhoadzrrYGojnytHRsVPJAzTiWDAYDLi5ucHf3x9eXl6wtrbukHouFoulceaGzgSVSiU5uNVpFCPE696HUCjE3bt38csvvyAlJQUCgQBUKpVswiToGQ0NDeHi4oIePXoo/D4+Ph7l5eUKnwkEApw7d67ZVL66MDAwaBLlawu0tbXh5+fXblV3Op2Obt26KZR8Nca4ceNa/D2DwYC7u3uLKpaNweFwsHDhwnaNsTH09fVbdXAbg0KhwNDQsFnl8X79+qk8lvdBUDUSTeFlZWWoqqoCj8cDj8cj2VkIddvGf8Siqe5fRzSsvXnzBkeOHMGwYcNafR4IjB8/XkF748CBA+jVqxdiYmJgZGREluDcvn1bo3NYc0Y6g8GAv78/KZSpq6uLXr16kfSD/fv3R0pKCiQSCdzd3aGlpUU6qYMHD4axsTGp/EyhUKClpYWvvvoKr1+/hq6uLkJCQiAQCGBqaorBgwc3qRenUqno2rUrdHV1kZubC6lUClNTU5Wj5u0FhULBtGnTSMrcjm4qJvC+YyGRSHDnzh1s2rQJOjo6MDQ0RHl5OTIzM/H69WvMnTsX7u7uSElJQWVlpYJjcffuXbi6uraJ0rM1KMsqtRVWVlb45JNPlH7XEZS9BOrq6nDlyhWSvZHNZoPNZsPCwgJaWlpwdXXF8+fPQafTERwcjMTERHLd8/b2hqWlJR48eIDTp08jLy8PYWFh8Pf371AKZaIvsaSkBCUlJaioqCDnQx6Ph9raWtKxeH8+VDYnEiKQbf3TZCP0+5DL5cjIyMDbt2/x6NEjXLp0Cdra2iTjljIsWbIEgYGBePnyJZ49e4bKysomY5w1a5ZGgg26urpKjWepVKrxYAKFQiFJVj5mEEHPznZ4NOJYuLq6YuHChdDX11crEt8aGAyGyg1oLUEmkyE7OxuXLl3CqFGj1O6DaA4UCgUMBoNUVlUV5eXlSieQ6upq7N+/H6mpqRg3bhxCQ0Px8uVLXLlyBWPHjgWXy8WDBw+QlpaGYcOGNeG/P3/+vELzNgDyhfz8889VHm9L0NfX/+i8/P9DU8jlctTX1yMnJwfZ2dnIyclBfn4+ysvLUV1djerqavB4PNTV1aG+vp786yiF444EQUdpa2vbZkP4fVXxhQsXYuXKlejTpw+5oPn7+0MkEuHevXuYNWuWRsZqbGysdMGk0+lwcXGBi4sLgHcObuMMrqurK1xdXZXu09LSUqnAZmhoqNLynOacXh0dHXTp0kUjhrEqcHNz03hpRGt4X5uDUHz28vLCpEmTYGhoCLFYjOTkZJw+fRrnzp0Dl8tFdnY2ysrKUFRURP7u+fPnGouyU6lUlSsH5s6d26wD31HMeMA79q7Hjx/D3d0dT58+ha+vL9LT0xEQEAADAwM4ODjg1atXZG/CgwcPwOPx4O/vD0NDQ2hpaZGloObm5jAwMNDosyASiUhyACJ7WlxcTIqpVldXo7a2Fnw+n5wP3y8x/E+CWCzG77//jrS0NMyZMwfu7u6tKsEHBQXh6dOn2LlzJyoqKpS+j8r0F1SBjo4O6VjIZDIkJCTgxo0byMvLw/z58+Hh4YGkpCTI5XL4+/u3ye4g7p2enp7aQREiY9WZ9o6pqSk8PT2RkZGB2traTgvMa8SxYDKZKC0txZEjR/Ds2TN06dIFMTExKC0tRXFxscZES1RltqivrweVSlWapiZQXFyMa9euoU+fPh3mWAD/40GqU+feXMaCz+eTzCvfffcdbG1tcfbsWSQmJqJ3797o0qULevXqhW3btuHNmzdN+KMHDhzYxNlgMBgwNTVt0tSmKaiSrfg/dA4kEgmys7PJ3inC+CkvL0d5eTmqqqrUEnv8WMFkMqGnp6fWc1leXt5Eu0Amk4HH46GyslLdIZIgMhL/h6bYunUreDweunfvjvDwcJiZmXX4ov5+NFwsFiMhIQHffPONQnbVyMgIGRkZePjwIZycnHDlyhWUlZXh7du3AN4FoXR0dDTGHKSqxgTwP6Jrcrkc1dXVYLPZnVZWQQjLZmVlwc3NDa9evSK/e7+H0NPTE3FxccjMzISDgwMMDAzg5uYGW1tbdO3aVe11XSaToaSkBMnJyUhMTER6ejoKCwvJ+bCiogK1tbUdGlz9kCD0vby8vPDdd9/B3Ny8xWwFgQ0bNkAsFmPq1KkkJXpjaGoO09bWJstWnz9/jr/++gs1NTW4e/cuRowYATc3N7x58waXLl3Cli1b2jQXJCcnY+/evQgJCcGECRPa/dzL5XIIhUKcO3cO9+7dA4fDwffffw+ZTIZXr16By+UqNPJrGjY2NoiJicHhw4exb98+jBkzRu0+37ZAI45FUVERDhw4gNjYWFRWVpIsBlVVVTh//jx69+6NyMhItY/DYDBUEmY7duwYWd+rrESLQqHA3d0dS5cu7dDULvAukqiu11hTU6N08pJIJKipqYGnpydZv0jQrtbX14PJZMLDwwPBwcEkF3XjEqfGkUWiIbq1iIS6aMnZ+2+CSCRCYWEh2Gx2p7zYqkIikSAlJQWxsbF4+vQp8vLyUFRUhOLiYvB4vA89vE6BlZUV3NzckJ6ernKUp0+fPli/fj3evn0LOzs7SCQSJCcn48aNG+jTp4/GxqpJAdL/NgQEBODq1avYuXMnqYobFRWFLl26qK363RxoNJrCfikUCphMZhNWJYlEotD/RDjtBEEE0YSuKd0gdRwLALh+/TqOHTuGoqIiMJlMODs7Y8yYMRptMFcG4vrR6XQwGAzy+opEIvD5fPB4PPJehoaGgsvl4tGjR3j06BHJFCgWi1U29mUyGQoLC/HgwQM8fvwYaWlppDhkZWXlRyVK1tGg0+lYuHAh/v33X+Tn58Pc3LxN7xBBoBMREdGhgRA2m03ad5cvX4aenh4mT56s0PtmZWWFe/futblkLDc3F9euXWtCWtBWSKVSnD59Gtu3b4eRkRHS0tLw1VdfQSaTIS4uDlQqVa1S6dZQV1dHBqL/+usvXLlyBVZWVs0GzmbMmAEPDw+1j6sRxyI7OxspKSmYMmUKXr9+jbKyMgDvojIlJSVkFEZdqMJsIZPJcObMGQwbNqzZunoKhQITE5NOif7R6XS1y7maS6dSKBRyIiVAGO5E7wSNRgOXy4VAIGjSTwG8E5U6cuQI0tLSIJPJYG5ujvHjx2PAgAEd4mD8b3EsysvLsWbNGnTp0gXTpk370MNpgsLCQty7dw83btxAcnIyCgoKNEoV/Z8ER0dHjB8/HocPH8auXbswfvz4divDLl68GDt27MDJkydRW1sLKpUKExMT9O/fHxMmTNDYWDurZ+E/EQMGDIC/vz/y8/MRFxeHhIQEXL9+HZaWloiOjkafPn2aLQdTFe/PkUwmE9HR0Vi7di2qq6thZ2eH+vp63L9/H48fP8aECRPg4uKC0aNHQyAQaGRRbw6qzrO3bt3CypUr4erqirCwMIjFYuTk5GDVqlVYsmRJm/u/NAE9PT0YGRnh4sWLyM7Oxtu3b2Fubg6BQIDr168jOTkZpaWlCA4OJlkY+Xw+tm/fjj59+qBbt25t6v+sra1FQkICrl27hri4OLLMiaB6/98KkUgECoWC+fPnw8LCAgYGBi066cOHD4eNjQ3S09NRVlbWoTYWnU4nsxCZmZkICwtDcHCwQpZBT08PtbW1bb6HAoEATCZTKRFMWyCRSPDPP/9gxIgR8PT0JEvKtbS0QKPR8OLFi3bvsz3IzMzE2rVrUVtbi4qKCqSmpoLFYjXbdxYdHf3xOBbV1dUQCATo0aMHysvLSceCxWJBKpVqzKtvbwPa5s2bcefOHcTGxiItLQ379+8HjUbD5MmTSeMuPz8fn376Kerr6+Hk5ITFixeTjbmFhYW4efMmcnNzUVBQAEtLS7i6uuL+/ftgMBiYN28euTDFxcXh8OHDSE9Ph6GhIQYPHowxY8Y0GS+VSlW7sb05tUsmkwkul4ucnBxIJBLQ6XRSCfbFixdoaGiAlpYWeDwe+Hx+k0XwyZMnWLt2LTgcDrp37w4mk4k3b95g5cqVkEgkHUJX1pHZkI8FMpkMxcXFuHLlisaZMNRFbm4uzp8/j4sXLyI9PR3FxcX/leVN7UFFRQXy8/MhFArx119/4cyZM7C0tGyiqkzgiy++aEJu4OTkhC+//BIFBQVoaGggiRusrKw0uri+71jweDwcOnQIN2/ehFAoREREBBYtWtRp4kj37t3DtWvXMHz4cAQHB3fKMZsDh8OBk5MTHB0d4efnhyFDhuDevXvYvn07Vq9ejf379yMkJASTJk3SWB/I+88Hi8XC/PnzsWXLFvzyyy9kpNTExAQjRowgSRa4XC5ev36NgwcPKtScR0REdGipRFvw119/oWfPnpg5cyYMDAwgk8lQUFCA/fv349ixYx3mWOjr62PGjBkwNjaGmZkZjIyMYGNjA319fdjZ2ZGGnqGhIRgMBoKCguDk5AS5XA5zc3Oynv+zzz4j6UJbK3+pqanBnTt3cPLkSSQkJKCoqAg8Hu+/trypPZBIJNi9ezdqampQXV2N169fk8Z8c46Fm5sbunbtiqtXr2L58uUIDg6GiYmJwn0YNmyYRmhaGzsWOjo64PF4TQSN4+PjYWlp2WYnm8PhQFdXV+WmeJlMhtevX2PDhg0K50yj0cBkMpuUy2oa9vb2+P7779u8/fu9gqpCYz0WNBqtSQQ8OzsbQqFQQfRHHRAR+baif//+8PX1xfPnzzFw4ED069cPTCZTwbgzMTHBDz/8gLi4OOzZs0ehqbqhoQEPHz5EWVkZvLy88PDhQyQlJaFbt264fPkyHj58CGtra+Tk5GDlypUICAjA1KlTUVlZic2bN0MqlWLSpElNzkFdLvfmosgcDgchISGIi4vDy5cvERAQQDpDJ0+eRENDA8zMzHDjxg3IZLImfS8nTpyAg4MDpk6dChsbG1CpVPD5fBw4cAB//fVXhzgW/xuyFUKhEE+fPkVdXd2HHgqJt2/f4sSJEzh9+jTS0tJQUVHRLoG0/2akpKTgt99+A5/PR21tLbKyssBgMJSquQPAhAkTmjgWFAoFFhYW7c50tBeNHQaCFW7Pnj2YOnUqzMzMFFTpNQWZTAY+nw8mk9nEsSkrK8PLly8RHh6u0WOqA6FQiISEBJw+fRqPHj2ChYUFZsyYAQaDgdjYWCxZsgRffvmlRrQt3mefoVKpcHFxwdKlS/H27VtUVFSAQqHAxsYGVlZWpEEVFxeHc+fOoaKiAnQ6HVKpFEwmE4GBgWqPSV08e/YMCxYsgIODA+k46ejoIDQ0FH///XeHHZfJZJJUn4QIpIGBAQAobWq3sbFR2pPSlqxUfX09bt++jT179uD58+coKSn5Xx9geR9MJhOHDx9uV8bG2tqazC4JhUK8efOmSV9GRESExhwL4vns27cvtm/fjtraWhQXFyM2NhaPHz/GsWPHMHv27DYHWpydnWFnZ4fU1FSVymIpFAoMDAxQUFCgUNZYXV2NrKysDi+LNjMzw9ixY9u8vaYCUBpZcRwdHcHlcvHzzz+DSqWCx+Nh27ZtuHPnDuzs7ODt7a2Jw4BKpbbLsXBxcYGtrS04HA5cXFzQs2fPJqU3WlpaCAkJadbok0gkcHNzw7Rp05CbmwsjIyOMHj0aqampKC4uRn19PQ4ePAgul4vJkyfD1tYWIpEIaWlp2LlzZ4c4FgRrzfvQ19fHtGnTYGdnRxo0FhYWGDBgAGJjY/HPP/+ATqdDJpNh6tSpTQTx0tPTMWLECLi6upLlWgR16bZt29Qac0egrKwMf/75JwoKCjBnzhyUlJTg5MmTyMjIgLa2NsLDwzFt2jRYWloqRBIJ9epLly7h9u3bSEtLIycNd3d3DB06FNHR0U1eMolEgjVr1uDVq1f4+uuvYWJigmPHjuH27duoqKiAoaEhIiMj8dlnn4HD4SAuLg4HDx7E69ev8erVK1RXV2Pz5s04cuQIuU9XV1d89tlnKgkwqYL6+nrcuHEDO3bsILVOOpKi8D8Rvr6++OOPP9q8fUeWr7SGxvOhUChEYmIiTE1NMW3aNPL51XRWsKqqCtu2bUP//v07vMZeHRQUFODixYs4ffo0iouLERISgp9++gleXl4wNTUFhUJBdHQ0Dh48iAMHDmjEsVDmeNJoNFhbW8PMzAwVFRXQ0tJqUuNcWloKU1NTuLu7kyrlhw4dQnV1tdpjUheEYdQYYrEYpaWlGgsafihIpVJkZWVh48aNuHjxIkpLSzXGUvTfBhqNptL7Pnz48BYDDZqibG3MfBYdHQ0KhYJjx46hvr4eu3btgo2NDSZPnoyJEye22Qbz8PDApEmTcPDgQfz111+YPHlyu4JFdDodEyZMwLJly9CvXz/U1NTg0KFDSExMxJs3b/DDDz+odK5tBY1G61T9CgIacSzs7Ozw6aef4siRIzhz5gwKCgqQl5eHPn36YMaMGUoFRlRBezMWjR80onmtud83Fzlns9kwNDSEqakptLS0YGpqChMTE2hra0MkEkEqlSIxMRFxcXG4e/cuuX+C+YUoSWo8Jk1kLJQ5FgwGA6GhofDx8SE9awaDgejoaPz555+4efMm6uvrERgYiB49ejR5QfT19VFWVgaBQKDQB5KTk/PBxYWUQSwWo6CgAA8fPkRpaSlycnJIkbwXL14gPj4e8fHx2Lx5M+zs7Mh7LJVKcfToUSxbtgxCoRCmpqYwMjJCfn4+nj59irt372L+/Pn49NNPFZ4LuVyOgoICJCQkIC4uDnfu3EFcXByMjY0hEonw+PFjmJqakpF/gm7QwMAA+vr6qKiogKmpqUIEzc7OTuOiPs0hOzsbf/31F44dO4aSkpL/lf0TbYG5uXmzKrjK0NFq0i2h8fMplUpRVlYGIyOjDjP45HI5amtrceXKlY8qK6EM3333HTIyMtC3b18MHToUNjY2ZNkMcd3s7OwQFhaGW7duaeSYytaRhoYG7Nu3D3v37kV5eTnYbDaCgoLw6aefkn1/UqkULBaLNAJsbGxAo9GalHJ8CIwfPx6//voreDwefH19IRQK8eDBA1y4cAGfffZZhxxTKBTi3r17SE9PbzJPubu7Y8CAAWofQyQS4ciRI1izZg3evHnT4WUp/02Qy+WoqalBUlIScnNzIRaLYWJiAg8PDzg4OCj0I3C5XFIkVCqVqk0k0BZoa2ujT58+CA4ORkNDA8RiMVgsFoyMjKCrq9vmSonc3Fy8fv0adXV12LJlC/7++29YWFg0S2O9ceNGhYoYOp2OmTNnQkdHB4cPHwaPx8OGDRsQFBSEL7/8stm+3/90aEwgz93dHUuWLMH8+fMhkUhApVLB4XCgo6PzQRdedUE4JxQKhcw2EDWFBC9xbW0thgwZgilTpiikymg0WhNHhviNumNSBgqFAhaL1aQ8QUtLC127dkVAQADkcjmYTCYYDEaT/QwYMABbtmwBj8dDREQEWCwWUlJSsHnzZsydO1etMXck0tPT0dDQgMWLF2PIkCFgs9koLi7GkiVLcPPmTRw4cACLFi0ijS0ajYb+/fujqKgIAwYMIMu+6urqcOLECaxcuRKXLl1C3759ldY3l5aWYsOGDejbty+OHTtGilqVl5dDIpGQTllERASZDduwYQMOHDiAESNGYNGiReS+6HR6m5Sd1YFUKkVcXBxWrVqF27dv/98C2go00QfVmRAIBJg2bRqeP3+OoqIiyGQyWFtbg8vl4pNPPsGcOXMAAK9fv8bOnTtx69YtUCgU9OvXD7NmzSK1Lvh8PqZOnYpZs2YhMTERJ0+eRF1dHSZOnIhvvvkGYrEY48ePJ5v7x4wZAxaLBTs7O3z11VcYMWIEgHfP29WrV7F582bk5ubCzc0N8+fPR8+ePTtUnOx9LFy4EMbGxjA1NSXZ7d43Buh0OgICArBy5coOGYNIJMI///yDzZs3Y/To0XB1dUVdXR0ePnyIn376CcuWLUN4eDjs7e3BZDJhYmKCf/75B7t374ahoSF69uzZIeNqDz799FPI5XJs2LAB1dXVoFAosLa2xty5czFmzBiNH08oFGLjxo34448/YGZmhsLCQlhYWKC4uBgWFhZqayrJ5XLw+Xx8//332LdvH2pqav5XN2S3B8S127lzJ3bv3o3S0lIykEb0kXXr1g0LFixAt27dQKFQIJPJcPfuXezatQvx8fFYuXIlRo4cicePH6O2thYREREdoq9AiCkS4wbaX3odFxeH1atXk0KGcrkcmZmZzdpg76vQUygUGBsbY/r06Rg9ejQp6qqlpQUdHZ1OI9/g8/l4+vQpLl++jJycHJibm2PixIkIDQ1FQ0MDeDweaa9rwunTmMVPo9Ggp6cHPT09lW9ia5DL5e0u2yAcg44q96BQKHBwcEBtbS1cXV0VsgCEM9IYqpzD+2ivkizhELUWGR81ahTkcjk2bdqEP//8E1KpFPr6+pgzZ06zyqsfAyQSCQYMGIBhw4bBysqKZPlasGAB0tPTcfjwYUydOlUhimtlZYWvv/6a7A8C3onJ9O3bF1evXkVxcTFyc3ObOBYUCgU8Hg8+Pj6YOHEiAgICSIPFxMQEcrmc/D+hFEs4D4SCcWdmf0QiES5fvoxly5YhLS3to+6jYLPZ0NbWJv84HI7Sf4m/9PR0XL16FVVVVR966B8ULBYLW7ZsQVlZGdavXw8ej4dNmzaRczLwzvneuHEjKioqsHLlSshkMuzfvx/r1q3DV199BRcXF8jlcpSVlWH58uUYPHgw1q1bh/r6emhpaYFKpUJLSwvbt29HamoqJk+ejA0bNqBLly6g0+lk7Tvwrkelvr4eU6ZMgbm5Of755x9s374dxsbGCloOHY3AwMBWFXcpFArMzMw0orOkDAKBAPv27cOyZcswevRo0Gg0yOVy9O3bFzt37sTFixcRHh6OkJAQyOVyUCgU2Nvbo6CgABYWFgpK3B8K2traWLBgAWbMmIGysjJIJBJYWVmBw+F0iGEkFApx8uRJ/PLLL/D09MTXX3+N06dP4/nz5zhy5Ija5AdVVVWIiYnBvXv3PuqyJ0IQuKW5kPiXWNsPHDiA/Pz8DhtTfX09vvjiCxw6dAhyuRyurq6ws7MDnU5HeXk5MjIycOrUKWRmZmLZsmUYPnw4Hj16hM2bN5MBzfr6esjlcojFYuzduxdeXl4adyyuXr0K4B2FfuPsws2bN5Gfn4+JEye2KcjRv39/cl9tgZOTU5PPKBQKOBwOOBxOh9nGLeHNmzfYuHEj9u3bh4aGBkilUvj4+JC058S9cnZ2xpdffqkRyQWNOBavXr3CixcvMHr0aIUGx5qaGjx9+pTkhVcXMpms3YYRnU6Ho6MjLl++jMDAQOjp6cHQ0BCWlpbkw01wYstkMtTX16OhoaFdWZbZs2dj3rx52LBhA0aPHg0Wi4X09HQwGAyMHj1aYVu5XK62cacuRWt5eTnu3r0Le3t7hT4LFouFmJgYjBo1CpWVleDz+TA3NyeN448VTCYTnp6eCmwPVCoVERERMDY2RkJCAoqLi2FlZaXAYMFisSCRSCAWi8kXnsFgwMTEBOXl5eDz+U2ORYgyRUdHw9XVVSEj9TExXMnlcggEApw/fx5LlizBmzdvOjwqRzjxxJ+2tjasra3h4OAAS0tLmJubk0acgYEB9PT0oK+vDz09PXA4HIVrSdyj9zUBGv978uRJPHr0qEMcC7lcDh6Ph3v37uHo0aNISkpCTU0NDAwM4O/vj5iYGPTo0UNtIT1NgDCOmUwmdHR0IBaLFQxSuVyO58+fIzc3F4sXL0bv3r0BvHv+N2zYgMTERAUH2sPDA9OnT4eVlRX5zBDPtrm5Oaqrq0Gj0WBmZqbU8DU2NsaoUaMwadIkUCgU1NbW4uDBgyguLu5Ux+LgwYMwNTVFeHh4s0EVIvjTUe8uwaAUFhamUOtsbm4OW1tbxMfHA1AU1rOzs4OtrS1kMtlHMafI5XLQ6XRoa2uT50Cj0UCn00lnSJMghOjCw8MhEonAZDKhpaWF0NBQ5OTk4OrVqyqVQsnlchQWFiImJgaPHj3q8N6yxtUOVCoVDAYD5ubmcHBwgI2NDTkfcrlcGBkZkXOhnp4edHR0FAKIbZkPKysrcf369Q5zLCQSCY4ePYpDhw4hMjISv/32G5ydnRXGVFlZiSNHjmDz5s3Yt28fnJyc8PDhQ7i6uuKTTz7B0qVLyW3t7e2Rn5/fIeV+Fy5cgKWlZRPyAyaTic2bN2PMmDFtciyI0ve2QlkguaCgAOvXr8eLFy+a9PJGR0dj9erVbd5/e1FRUYEDBw5gx44d8PDwwMCBA/Hq1StkZmaSc7ubmxvMzMzw8OFDxMTEfDyORVpaGk6fPo3hw4crGKAikQhnzpxBWFiYxhyL9k4GFAoFv/zyC1asWIGYmBjo6+vj+++/x9ixY8Hj8bBq1SocPnyYjFyMGTMGBgYGmDFjBsaNG0dOphQKRWFiJaIFVCoVPXv2xK5du7BlyxZMnDgRcrkcLi4u+OKLL5Seg7r0u+qWaRQUFODvv//GgAEDFBwLuVwOkUgEsVhMethSqZQ0sBtHJT8m6OvrK62b1NbWJqnt8vPz4e/vT0YM6+vr8fz5cxw/fhyJiYkoLi5GXV0d6uvrwefzScrh5mBpadlpvRHtBeFUnDt3Dl988QWKioo65Dh0Op1kBrKwsEBAQAB8fX3h5+cHDw8P0thtD9pjpLREc6gOZDIZcnNzsX79euzfvx/A/whN1tXVIScnB6dOncLMmTOxePFi2NrafhTOReMMaePxCAQClJSUgMViwd7ennTgiPKboqIihcXd29u7WWpdZcd9H1wul4xiAu8YhGQyWaf39Jw+fRr9+/f/oGUuVCoVlpaWiI+PJ/sm5HI5iouL8ebNG6WsMMR9PHfuHOzt7eHv79/5A2+EhoYGHDhwAPv27UNeXh4YDAY8PDwwdepUDB8+XOPNoUT5SHFxMUkbm5SUBDc3N0ilUpWEOuVyOd68eYOYmBjExcV1CH0sUUJJCPkGBATAz88P/v7+8PHxgZ2dXbs1rNozrzTHWqcpSCQS7Nq1CxYWFvj777/B5XKbHM/c3Bxz585FQ0MDdu/ejadPn6K6uhocDgdGRkYKc4pMJoNMJuuQ97OiogI+Pj5NrreVlRWKi4vbfExlVSftgUgkwueff47U1FSMGDGiSWZGE3ZxS8jNzcW///6L6Oho/PHHH7C1tcWGDRuQmZlJbsNgMGBnZ4fY2NgmQp6qQmXHgijpISL+hJJo4xtWW1sLHo+nMR0LZUY50URE0MTq6elBW1tbIfrp6+uLU6dOQS6Xo7S0lDSQDQwM8Pvvv+P3338ntxWLxaitrSUX2m+//ZY0WtetW0dut2rVKoVxdO3aFV27dm3TOai7wKqbsRAIBEqjBKWlpdizZw+poN548uVwOLh7967Kx+xIEE35718TQrWVQqGQzyZhdG/YsAG//PILjIyMyGZ2LpeLuro6nDt3rlWqQS0trY82iyOVSvHkyRP8+OOPGncqiMilgYEBQkJC0LdvX3Tr1g2urq6dWj/fkaiqqsKhQ4dw+PBhREVFYdKkSfD394euri54PB4SEhKwf/9+/PPPP7CxscHs2bM/WqcbUFzAGwdmiHpfIiNJfMdkMtWKlDMYjI+iR4XFYkFHR6ddhB8dMYYJEyZg1apVyMzMhIuLC+rq6nD//n2UlJTgq6++QnFxsdLfvnjxQm0xVU1g7dq12Lt3L0aNGoWZM2dCJBLh6dOn+Pnnn1FeXo4FCxZo9HgMBgM9evTAs2fPEBMTA1dXVyxduhQBAQFITk5GREREu/fJ4/HwxRdfICEhQaNOBVHeqq2tDVdXV/Tu3Rvh4eEIDQ2Ftrb2Bw84aBIymQzp6emIiIiAmZmZ0m2IAKyLiwsYDAZKS0thYWGB9PR0ZGdnQywWQyAQoLq6mlSB7ohnXFdXF2VlZeDz+eBwOGRP7Js3bzr1nZJKpUhISMCBAwc+SL9UTU0NKioqMHz4cAW628agUCjQ19cn+0g0AZUtIyLFe+fOHTx58gS5ubnYv38/aWwRwiDFxcUkI4C6IB7KxhCJRNi5cyf+/vtvFBQU4MsvvySb9t6HQCBA3759sXXrVqWMJlKpFC9fvsSGDRuQlJQECoWCadOmYcGCBRozmiQSiYJWhiogHIvi4mKVJsm3b98qpdfdvn07Lly4gJ49e8LW1lbBuPgYDIXm0LixqvFETpS2yWQyhYxGSkoKfv75Z5iammLPnj2kSBUApKam4unTp8jKyur089AEiMl/zZo1SEtL09h+icZST09PTJgwAX379oWVlZXG9v8xIT09HRcuXEC/fv2wfv16hfM0NzeHm5sbevTogXnz5uH06dPo16/fR+1YaGlpwdbWFmKxGCkpKSRryatXrwC8o6RmMBhtrjcn+OJ5PB6pxNteKvDOQO/evZGdnY28vDxYW1s36bfoDAODxWJh7ty5YDKZ2LdvH6lT4efnh2+//RZ8Ph+DBg0idRoa482bNx0e0WwLjh8/jhUrVmDq1KnkmsDj8bBjxw5cvnxZ444Fm83G119/DV1dXRgYGGDq1KnIz89HbGwsIiIimlC4t4aGhgasXbsWN27c0FiQk+hfsrOzw6BBgzBixAh4e3t3WjPuhwJx/1sq02tMUEOhUBAVFYVnz57h119/RUpKCoRCIR4+fIjnz5/j66+/7pD+pqCgIJw+fRqurq4IDQ0FnU5HbW0t/vjjD3Tv3r3NQcHGgXJVnUQiwPGhQPR7Nle2SDD9aUIKgYBae6mrq8OTJ09w//59FBQUYOfOnQqpeENDQ8TExGiM61wsFjepe2exWPj6668xc+ZMfPrppy3+nkKhwMXFRekkDryLVF64cAHFxcXYtWsXjIyMoK2trdFILJERUQcGBgagUqmYO3euSqmrqqoq5OTkNPn8xYsXmDZtGiZPnvwfxU9OeOVisVjBAaqoqEB5eTnJI0+8NA8ePIBcLkdoaKiCU0G8YIWFhc0eS9XJhUqlaoQRrCXI5XIy2t6ehrOWQNTvh4aGYv78+YiMjPxoMzWaQmVlJSorKzFmzJhmnSdbW1uEhoaSrDIfMygUCvz9/eHp6Yljx46hrq4OcrkcFy9eJEvX2rMvHR0dODk54dSpUyQphIuLi8b46DWFwMBA/Pzzz0hNTUVAQIBCPwyDwcD06dM7ZRxsNhvTpk1DTEwM2Q9kZGQECoWChw8fkv0o72PPnj0aEQ5TF3Q6vUlTKpPJVCh30yQIAUHCcHVzc8OBAwcAvAv+tWcOlcvluHr1Kvbv36/2ukuMTU9PDx4eHoiJicGYMWNgbm7+UfTCdDSoVCpcXV2RnJyMvLw82NnZNTlvuVyO6upqpKamQi6Xw8zMDJ6envj+++9x9OhR1NTU4O3bt7CwsMD333+PIUOGQFtbW+NjHT58OJKSkrBy5UpwuVxoaWkhPz8fDAYDO3bsaHOglLAhCIrZ5lBYWAiBQABra2uFfdNoNERHR+PIkSPQ19cny+oJsNnsDg1KEdUFqampqK6ubnIsuVyO8vJypKamwsTEpMVzbA9UnhVoNBq8vb3x559/4tKlSzh16hQ2bdpEXlTC+9HkC0c0WStDW2rh2Gw2Tp482ez3hEqjn58funTpotZYm4MmMhZE38D9+/dJNqL2oL6+XmnkRktLq4kq5n8CpFIpnj17hoyMDHh4eIBKpUIsFuPq1asoLy+Hn58fuFwuadwD/1MmReiMEE5FYmIi0tLSNMrGQqVSoaenR4pKicXiDikbkkgkSEpKwq5duzSyPzabDS8vL8yfPx/jx4//j3w2VAFhuLRWO85ms9tt6HQkaDQa7O3tlbKOOTo6YsGCBThy5AiOHTsGCoWCHj16YPz48eSzTqPR4OnpCXNz8xazD8bGxli2bBl27NiB9evXw93dHTNnzoSlpSWMjIzg5uamsEAZGBjAzc2t043kvXv34u3btwCAjIwMhe84HE6nOBZSqRSpqamIj49HdXV1E+IOXV1dDBw4UOl84+fn12FsVS2hrKyMzF4Rz8mlS5fA5XJJZpvi4mLEx8d3iJaJVCrFq1ev4O3trWA/iMVi5Obmoqqqqs3BypKSEvz5558oKSlRe1wMBgO2trYYM2YMZs6cCUdHx/8VDgUBOp2OmJgY/Pjjj/juu+/wxRdfgMvlkoyHYrEYPB4PN2/exMmTJ+Hr64uAgAAA7+afpUuXYunSpZDJZGr3LrQGLpeLX3/9Fbdv30ZCQgIaGhrQp08fDBkyBPb29m2+b2fPnsWff/6Jn3/+uUVto40bNyI+Ph579uxRcMKpVCpMTEywY8cOxMfHw8XFRSGrFRAQgBkzZqh+oq3AwsIC3bt3x40bN7Bz504MGjQIlZWVpC2SkpKCM2fO4PHjx6TWjyagdriBiC706NEDLBarQ0tmWnIsWkN8fDxZ/uPj46NgjNfX1+P169dIS0tDTk4ODA0NcevWLXA4HNjb25MNdrW1tcjPz0dFRQWoVCpMTU1hY2NDvlitgWiO1oRjQbwYo0ePbveD+ezZM/z111+oqKhQyFx4eHjgwYMHsLGxIUVuGmegGgu/fExgsVh48OABDh8+jH79+kFHRwdv377FX3/9hfr6ekyaNEnBU/f39weLxUJ8fDxu3boFS0tLCAQCJCYmYt++fRpPZzOZTHh5eQEA7t27h2vXrpGsZCwWC1ZWVmpHLeRyOSoqKrB9+3aUlZWpPWY9PT30798fy5cvh7u7+0dX5tKRIEgacnJySEX298Hj8ZCZmQkDA4OPog4eeHfPFi9e3Oz3jo6OWLZsWbPfa2lp4a+//mr1OCwWC1FRUYiKimryXWRkJCIjIxU+a2v/mabx+++/f3BV+YaGBixcuBANDQ2wt7dvElDo2rVrs83ZI0eO7IQRNsXBgwfJUlAKhQKJRIJ//vkHz549I0vqsrOzUVlZ2eLzpCoaGhrw/fff45dffiGdC6FQiOTkZOzfvx8cDqdNjoVUKsWhQ4eQlJSkNhMjm81GQEAAFi5ciEGDBnWI7sLHDhqNhgkTJuDevXu4fv06YmNjERISAgsLC9DpdFRXV+P169fIycmBm5sbJkyYAG9vb7JMmdDOkkqlqKioAIVCgZGRUYf15unr62P48OEYPnx4h+y/MTgcDvLy8pqU6hMtA4MGDQLwLvjX+FnsaAFMS0tLTJgwAa9evcKGDRtw5MgRiEQiFBcXY8+ePdi2bRsKCwvh5+eH0aNHKyWTUAUayWP6+vrC19dXE7tqEUKhUOWyg/379yMzMxO3bt3CyZMnMWTIEPK7qqoqHDhwAMnJyUhNTQWTyURFRQWsrKwwadIkmJubg8/n4+rVq2SpFI1GA5fLxcSJE9G9e/c2MWMQjBatNQa3BmNjY9Kx8Pb2RkhISLu8f4lEAmNjY1y/fl2h7EcikeDhw4ckA0fj0gE2m43NmzerNe6OgqmpKfz9/REbG4sLFy6ASqWiqKgIbDYbo0aNwqhRoxTSraGhoRgzZgxu3bqF2bNnw97eHgKBAEKhEIGBgeS+lEEVBgsGg4Hg4GAMHz4ct27dwqxZs8j0uZubGxYuXKh2hkwqlSIlJQXnz59Xaz/AOwN13LhxWLFiBSwsLD7aLEVHsf1YW1vD29sbt27dgqenJ7p16wZ9fX3Q6XRIJBJUVVXh7t27ePDgAXr06NFsI+N/O4jSu+zsbLi5uX10xlbjObkzoqTKIJPJIBAIsHTpUkRERDTRICLmcaFQCJlMBjabDYFAgMrKSnA4HOjp6XW6Uy+RSJo0cTZeL1ksFjw8PAC8YxjUNGg0GmxtbfHrr79i2bJlcHR0xKNHj3DgwAFIJJI293QUFRXh3LlzKC8vV2s8bDYb3bp1w5IlSxAdHf1fXwraHAhHYMOGDdi6dStiY2ORnJyMuLg4MkhmYGCAgQMHYtKkSYiMjASNRsOrV69QXV0NLy8vGBgYICEhAZcuXYJUKsWIESPg6+ur8YC0VCrF27dvUVJS0oRUCAC6d++u0fdKKpWS73BjsFgs/P333wD+h3yIoGruDNBoNISEhGD16tXYu3cvnj9/joaGBhgYGKC8vBz6+voYOnQoZs6cSer+aAIaO7uGhgaUlpaSehCNQaTI1UV9fT0qKipU+u3WrVtRX1+vlKPXwsICa9asQWZmJtatWwcul4uffvoJVCqVfAASExNx+vRp+Pj44LvvvoNEIsGmTZuwe/du2NvbK1Vofh9CobBZBpD2wNTUFDQaDZGRka3SoiqDlpYWqfb8frSV8Kzfx8felDZq1CjY2NiQPN7BwcGkMd+YFo9oZFq3bh2OHz+OpKQk8Hg8GBsbIywsDH379kVKSoqCaicBKpWKwMBAjBo1ql0Uo0SfwqpVq3DixAkkJyejvr4eOjo68Pf310iUoL6+HocPH1Y7AsJisTBy5Ej88MMPH7VTAWhGxV4Z7OzsEBMTgxUrVmDFihUIDAyEs7MztLS0wOfzkZ6ejqSkJNjb22PixIkai/L8p0EulyM5ORm///47fvvtN3h6en7oISmAYIHJyMhAVVUVIiMjYWxsjIKCAtBotE7pCWEymejXrx/27t2L9PT0Jsq2Tk5OiIyMRHp6Ong8HoKDg/HkyRPExcXBwsICUVFRnU6S8PXXX3fq8d6HlpYWli9fjtWrV2Pt2rXo1asXzp8/DxsbG8yfP7/NDe2XL19Gdna2WnMEjUZDYGAgqf/yMWduNSG+2xqoVCpsbW2xatUqZGRkICkpCaWlpZBKpTAwMICrqyu8vb0Vyh5v376NrKwscLlcCIVC0hYjbMaVK1c2WWvVRWpqKvbt24e0tDQyY9IYZ86cURoMlsvlaGhoIHuhqqurIRaLUVFRQZZVvr99RUUFkpKSoKenp9RBkkqlyMjIQGpqKsrLy8HhcGBpaUlSsnc0mEwmunTpAh8fH2RmZiIzMxN8Ph9aWlpwcnKCi4uLxoNCGnEsampqcPfuXdy8eZNsoqXRaBAKhTA2NsbMmTM10sBdX1+vVvShOW+MSqWCzWaDxWKBRqOBRqM1eeji4+ORn58PV1dXxMXFAXgXiY6Pj0dFRQWcnJxaNcKIFJQ6YLPZJB/0H3/8oVIJjampKfr06QMfHx9SLOs/GVKpFHQ6XWkZhjIQkZfm1MS5XK7S/dBoNMyZMwdz5sxp9xipVCpsbGzw5Zdftvu3rUEmk6G4uBgXLlxQe1/dunXDF198oSA2+LGCEDfUNFgsFiIjIyGTyXD48GGkpaXh2bNnJDmAiYkJoqKiMG3aNISEhPzX0OyqAuJd+RiajN9Hbm4udu3ahadPn+LBgwe4fv06wsLC8PDhQ+Tk5ODbb7/t8DEQRkVJSQkePHjQZA3q0aMHIiMj8fLlSxQUFMDS0hJ3796FVCrFw4cPYW5u/l/LvtYcKBQKTE1N8fXXX2P16tXYuHEjQkJCsGzZsjY78XV1dbhx4wZKS0vVGou9vT2mT5+O6Ojoj9qpAP7HKO4MEOW9RIlvSyAi4yYmJrh27RoaGhrw9ddfg8Fg4Msvv0RNTY3GHYuTJ0/i1atXiIqKgq2tbZN719ycLZFI8OrVKxw5coSsAigpKcG///6LhISEJttLpVJkZmYiPj4eQ4cObdL8LJPJkJKSgg0bNiA7O5vs5+RwOCTDWUcGOAhJCDabDW1tbfj5+XWKSKlGHIuMjAz8888/YLFYqKurQ01NDcLCwpCYmEjW1WkC6mQs1IFcLkdlZSXy8/MRFxeH9PR08jtCMr4tEAgEaqeOra2tSWYBVSOl1tbWSsX70tLSYG5u3kRNuL6+HoWFhW3KyvwfOh9SqRSPHj1SexE1MzPDJ598AhcXF4WJuKamBjdv3sTw4cM/KmdDLBZ3iGNBBEaGDBmC4OBgJCYmkgqxHA4HDg4O8Pf3h6mp6Ud1PTobVCoV7u7uKmVNOwOnTp1CTk4Oxo8fr0C9bGhoiLVr13aaY5Geno5PPvmkiYAs8D8GDpVKJUtRORwORo8ejf3797eZAvg/HWfOnGlCES+Xy+Ho6Eg69Tdv3gTwztjv3r17i/t7/fo1MjMz1eLl19HRQb9+/TBkyBCFjH1+fj5evnxJEnEQ/QM9evSAg4MD6HQ6Xr9+jZcvX6K2thYGBgbw8/NTWD8b93WKxWKYm5vD29tbIaBTWFiIly9fkoJuBgYGCAwMhJWVlVInp6MdC0JCoK6uDt7e3s2yOfH5fGRlZUEkEsHFxYUkTampqUFsbCx8fHzg6OgIoVCIhoaGDsmy5Obmonfv3pg+fXq7g69ED8ibN2+QmZkJHo+HuLg4pKSkNNmWSqVCR0cHffr0wZw5c5pU5kgkEmzfvh11dXX47rvvYG1tDYFAgKdPn+L69eswMDBQKVDZVuTn5+PSpUvw9vaGi4sLuFxupzjIGnEsSkpKIJFI8NNPP+Hhw4fIz8/H8uXL8fDhQ5w7d06pZoIqqK+vR1lZGUQiUafrKrBYLLi7u+OLL75AcHCwwnc6OjptMjAaGhqQnZ2t1jgcHBw67Nz37duHUaNGITAwUOF8ysrKsG3bNmzcuLFDjvt/UA9isRg3btxQez+DBg1Cly5dmmTrysrKsHr16k5pgmsPiIVJ08jIyMDp06dhaWkJMzMzWFpaIiAgAMbGxmQJ4ccIqVSKkpISJCQkoKioCBKJBFwuFwEBAQpMJW/fvsWzZ8/w9u1bCIVC0jDq3r07PDw8cPv2bZiYmIDH4yErKwsymQz29vaIjIwkDazKykocPXoUYrEYpqamiI6O/uh6TeLj4xEdHY0xY8Zg/fr15OcWFhYaYQlqC2g0GpycnPDo0SMIhcIm4qYODg6IiIiAubk5kpKSkJiYiG7dupEsdv9b6vkvXrzYZN4hmPssLCxQWlqKEydOAADCw8NbdSwSEhLUJrFwdXXFsGHDFJ7r0tJSHDlyBOnp6dDV1UVubi7u37+PyMhIeHl5wc7ODq9fv8b69evR0NAAJpMJsViMW7duYeHChXBzc4NAIMCTJ09w8OBBUltAIpHA29sbMTExsLGxQXV1NY4fP47nz5+DyWSSIpdcLrdZ1jbCeO8oEMrbWVlZ2Lx5MxwdHZVuJxAIcOnSJSQmJmLBggVwdnbGjRs3sGXLFuTk5GDgwIEwNjbG8+fPwWazO8TQNTU1VUnwjcFgIDQ0FB4eHsjIyMChQ4dw8eJFDBkyRGmkn0ajwdDQED4+PjA3N2/yvkokEly/fh27d+9WEHZ0dHREbW0t4uLiOtSxyM7OxvLly+Hi4oLQ0FAEBQXBy8sLzs7OTQLImoRGZi2ZTAYGgwFdXV2wWCySUtXb2xvHjh3DmzdvNHEYSKVSlJeXo6KioknqjFBVJv6aGyexbXtAoVDg6+uLR48eISEhAQ4ODtDT0wOPx4NAIICjo2ObFoD6+noFKXVV4Ojo2GGORUJCAnr16tXk+ggEApw7d+7/HIuPEATTWHPN5m2FkZERBg4c2KxxKJFIcOHCBbJGtG/fvjA0NERDQwOSk5ORnJwMJpMJd3d3uLm54fXr18jLy4NUKgWfz4efnx+8vLzAZrNRXl6Ox48fo7y8HAwGA5GRkeDxeMjJyUH//v1BoVBQXl6OK1euYPz48UrfLbFYjJqamg5xLEpLS/Hvv/+SGQozMzNYW1vD2toalpaWsLCwIP+MjY0/mlIouVyOoqIiXLp0iYyAV1dXIzExEQsXLgSXy0V5eTlOnTqFxMREcLlc5Ofn4+7duwgODoavry/kcjkOHDiA+vp6WFhYgEqlor6+HkeOHAGFQkG/fv0AvHseSkpKkJaWhvT0dLi4uHx0jgUAUnG8MbKzszXS89cWEDXpWVlZuHfvXhPjWSwWIyIiAr6+vhAIBBCJRAgLCwONRkN4eLjSnsD/RnzyySdtfn5ao1eXyWR48eKFWtUNWlpaCAoKQlhYmMLnKSkpePz4MYYNG4axY8ciKysLs2fPxvDhw8km5B07duDt27dYvnw5HB0dkZaWhl9++QW7d+/G77//jpKSEpw6dQpaWlpYsGABtLW1ceXKFZw7dw7W1tYYP348SkpKcPfuXXh6emLmzJlgsVjIz8+Hk5OT0vlQLpeDz+eDx+OpfM6tQSqV4u7du+Dz+S0Kvunq6oLNZiMhIQFpaWmIiopCYWEhkpKS0L9/fwQFBYHBYKC6uho9evToEM2swMBAnDlzhpRFINS3CXTr1q1Zh4bQKgkKCiKzFlFRUS3SzbYEiUTSxGYjBEU7mqrc3t4eM2bMwIsXL3D27FmcOnUKPj4+CA4Ohr+/P3x9fWFjY6PxHlqNOBZ6enrQ0tJCbm4uzM3N8eDBA5w+fRoGBgYoKirSaNSlqqoKBQUFpGORnp5ONge9fPkSRUVFEAgEsLe3x8iRI2Fubo7Hjx/j3r17qKqqQkNDAw4dOoTExEQ4ODhg8uTJbTpuly5dkJeXhydPniA7OxssFgtyuRxeXl4wNzdvlXJSKpWisrKyRfG1tqAtjgWRyktNTUVpaSkEAgEYDAaMjY3h5OQEa2tr0hiSSCQoKipCXV0d+Hw+8vPzkZqaqqCweefOnY86Uvu/HWVlZcjPz1drH4GBgXBzc2t2gikvL0dubi4oFAqePn0KKpWKkSNHIi0tDceOHYOtrS1EIhEKCgrIlPfr168RHh6OgoICFBYWQk9PD46Ojjh//jxqamqgpaWFrKwslJSUoHv37tiyZQvJnBMXF4dr165h/PjxSsfD5/NRVVXVIROzp6cnVqxYgeLiYoW/169fkxokBgYGMDc3h6WlJaZPnw47OzuNj6O9IIzYCRMmwMHBAVQqFefPn8epU6eQmpoKLpeLrKwsPH78GCEhIZgzZw4KCwvx+eefo1evXggICCDf81evXmHcuHEIDw+HQCDA/PnzcfToUdKx4HK5+PHHH3Hjxo1OKSlSBd27d8f9+/ehp6eHuro6pKSk4O3bt/j7778xbNiwThkDk8nElClTmv2eKKNls9ngcrlIS0vD5cuXye//tzgWQUFBGtMOImjh6+vrVd6Hubm50jJnsVhMBlJpNBqYTCaoVCrpwDY0NODatWv45JNPEBQUBCaTCT09PURHR+Po0aPg8/koKyvDzZs34erqikOHDgF4V/aUkZGBjIwMyGQyGBoawtPTExkZGThx4gRCQkIQEBAAAwMDpVFmmUxGZik7CnK5HG/fvkVAQAC4XG6z2zGZTPL7yspK2NvbY9asWaiqqoKpqSnZKOzq6go7O7sOcfKrq6uRlpaGV69ewcrKCtra2grXLTg4uE1MnnZ2dujZs2eTMr22gkajoVu3btizZw/kcjm4XC5EIhGeP3+OhISEDqfhdnBwwPLly5GWloYXL14gMTERiYmJ+Pvvv6Gnpwc/Pz8EBAQgMDAQvr6+ClIG6kAjFr+dnR0GDBgAfX19ODo6Ij4+HocPH4ZUKoWzszNJTacJVFVVIT8/HyEhIQDe3TgOhwMul0sKHlEoFHA4HPICMRgMslxp5cqV5O/ef7BMTEwwZswYpU6CqakpYmJi4ObmhoyMDIhEIujq6sLX17dNypECgQBpaWlq18y6urq26F3W19fjzp07OHv2LF6/fo3y8nIIhULQ6XQYGhrCyckJ0dHRGDBgACwsLCAWi/Hw4UPcuXMHOTk52Lt3Ly5cuEC+hHK5HGVlZZg4caJa4+4I6OnpYfTo0QgICGiWC74xysvLsWXLFjLKzWAwEBISghEjRijdvqGhAXfu3MGtW7fIzywsLDBkyBC4uLho5BzUhVwuJxcjdRAaGtriYgG849U3NDTE8ePH8fDhQwwYMACvXr2CVCrFnDlzwOPxcODAAdy/fx9CoRCOjo6YNGkSsrOzceDAARQVFUFfXx8XLlyAlZUV7OzsUFNTg8TEREyePBmGhoZ49uwZ/P39cfPmTQwaNKjZoERVVVWHlbNwuVwMHToUwDtDoqqqCqWlpXj79i1SU1ORlJSE5ORk3L17FwKBAJGRkR+FY0GIkhJlFDU1NcjNzQWfz0dlZSWAdwaIVCoFlUol/5TRsHp5eSE8PJxsLAwMDMT9+/eVHrPxvx8Thg0bBh6PhwsXLoDP52P37t3Q0dGBnZ0dpk6d2iljIEQHW0NSUhIuXLgANputEDjqaJ77jxUSiQSpqakoLi5uYixbWFi02IBaVFSkdkmQlZUVgoKCmnzu6ekJd3d3nDt3Di9evACfz4e3tzepjVReXg4+nw8zMzPynaBSqeByueDz+RCJRBAKhaiqqgKLxSL7C8zMzDBy5EiSdtzU1BSTJk3CzZs38erVKyQmJpKN5E5OTk2i7TKZrIkIZEdAKBS2iUGIcLiIHjgjI6MmDkRH6mK5ubm1SEvc1mC3i4sLDA0NVdaZotPp+PTTT7Flyxb8+uuv4HA4JDWtj48PBg8erNJ+2woKhQIdHR0EBQUhICAAQ4YMwevXr5GcnIzExEQkJSXh8ePHMDc3h4+PDz7//HONsPtpxLGwtLTEoEGDwGKxQKfTMXbsWLI5x9vbW6PNfWVlZQp9Ck5OTgr1w8oQFBSkdJJ4H4aGhujfv3+z35uYmKBPnz7o06dP2wf8/8Hn8xEfH9/u3zWGsbEx7O3tm30phEIh7t69ix9//BFZWVnw8vJCYGAgtLS0IBKJUFhYiHv37iEuLg41NTWYNGkS9PX14ebmRjYAE01mhFNGoVBgbGysVAzrQ4NormsrZDIZSktLUVpaipycHKSmpmL69OnNOhZyuRx1dXUoKCggVSq5XC58fX0/KseiMZmAKqDT6fDw8GiR2cfY2BiWlpYQiUQwMDAgF8m6ujqYmJiQkW5tbW0UFBTAxMQE+vr60NXVJZ16iUQCHo8HsVgMCwsLWFlZwcrKClFRUdDV1cXEiRNx/Phx2NraIiUlBd98802z4yktLVU7S9MSiHufl5eHnJwc5OTkIDc3F0VFRSgrKwOTySQV3T+EOrIy1NbWYvfu3Xj27BkCAwNhYWEBPp+P7Oxs0oBxcnJCQEAAbt26hYyMDEilUlhbWyMsLEwh0GJpaalQ4sVisdRqhP0QsLW1xezZs/Hs2TNERUVBIBDAyMgIISEhra4ZnY28vDwAwPjx4xUCW+oKZ/4nQiwW48KFC/jnn39IOk8DAwNUV1fD0NAQ48ePb9GxKCwsVEuElkqlwszMTClZiYWFBUxMTFBQUABTU1P4+PjAx8eHXDO1tbWho6ODgoICMtgjlUpRWFgIQ0NDaGtrg8FgwMLCAj179sS0adMU9t+Y7MbDwwMODg7Izc1FYmIitm/fDgsLC0ydOrVJJkUikSApKUnlc24LKBQKDA0NUVBQ0GKfq0wmA4/Hg1Ao/GCVDm1liGwNurq6alGx0mg0sm/x2bNnKC8vB5VKhYODA0JCQuDg4KD2GNsKQgW8Z8+e6NKlC1nKev/+fZw7dw4HDx7EsGHDPh7HgsFgKCxCLi4uHWZ4VVZWkjy8bckUfCzg8/l4+vSpWvsgBGaaS1VVV1djz549KCoqwjfffIOePXvCxMQETCaTFPYi1KWPHj0KPz8/REZGwt/fH35+frh16xbGjRuHrl27KjgWRFTzPx2GhoZYsmQJ6urqcPnyZaxYsaLF7dns/9feeUdHVaf//3VnJjOTSZn0SkJ6pSUhofeOFBWUooKiYkFQdlV21d0v4q67vxVdV9kFUZciooCiIjUUkR5pEdIIkEIKCek9k8nM/P7gzF1iEgiZSUHndU7OgczMvZ/J3Pncz/N8nuf9VjJ69GhR//n99983WXnJ3Bjr6k3B2dkZV1fX2/YKtPSYUqnE2dmZn3/+WcyKl5eX4+HhgV6vb/E6dXZ2RqVSERISIiYjqqurkcvlDB06lDVr1rB//37CwsJuu4NSWFgoLsbMTXp6Ohs3biQ7O5vCwkIqKyvF8qcePXoQExNDjx49cHd3x83Nrds40ldWVrJ582YefPBBFixYgFqtZv/+/Zw6dUp8jouLCy4uLqhUKoKCgvD29hbn61uzoDKZ7J7/zhcWFqJWq5k0aRLwv9667vi+bG1tcXFxwdHRsd1lF78WNBoNn3zyCYGBgYSEhPDxxx/z0ksvkZqayrlz5+5YdlxaWmpS75XRw6il9UVtbS0ZGRlERESwYMGCZskYlUrFlClT2LFjB9HR0YSEhJCcnEx8fDxTp05FLpfj4eFBXFwc+/fvp1+/fvj7+1NdXU1ZWRleXl74+vqSk5NDbm4uDg4OODo6Eh4ejiAIlJeXt6iipNPpTF5f3AmJREL//v05cuQIu3fvblXMIysri5MnT6JSqbpUKjkrK4srV65QVVXVrM9q2rRpbdq1uHbt2l0FbCNGjGjWMyKTycQdA6NYhlHZsyswNvmnpaVx6tQpLly4QGlpKba2tmbr3zVLYNHY2MjVq1c5ePAgeXl5zSQgZ8yY0awJypRzXbt2jZycnG4rc/hLGhsbyc3NbSJ52B769et322Cqurqan376iSFDhvD000+3WLsYHh5OWVkZH330EVlZWeLvBUHg+eefx9fXt5k77K8FKysrAgIC0Ol0pKWl3fH5EokEZ2dnnJ2dkUqlODg4dLvAAjB529/Nza1dQbpSqaRPnz5cvHiR5cuXi6olI0eOFKUhf4lareahhx7ixIkTJCQkIAgCAwcOZPLkydjb2zNs2DDWr1/PX//611avQY1GQ1ZWVoe4/gJcuXKFVatWoVAoGDRoEBMnThTNjFxcXHB2dsba2tpsMtrmpKGhQVx4XLx4kW+//Zaamhrx8bq6OrKzs/H09GTu3Lkm7bbcalDY0U2I7eFf//oXlZWVDB8+nOHDh4tKS90RvV7P3r17SUhIwN3dXVz0zJ07t0277b8mGhsbSU1N5a233kKlUvHtt98ybdo0Bg8ejFKpvOPcXVdXZ5IMtVGwoSUkEgkqlYqdO3eKik2Ojo5MmjSJkSNHYmNjwzPPPINWq+XDDz9Ep9OJ7sfG8jt3d3fmz5/P559/znvvvYfBYBCFL2bOnAncTBLu3LmTtLQ0DAaD6EY+bty4Zo3TBoOB4uJiLl682O733BZkMhnz5s0jPj6et99+m7y8PEaMGIG3tzcymYyKigqSk5PZvn07e/fuZfjw4URFRXXomFrj9OnTrFmzhoKCAm7cuIGjoyNVVVVoNBqGDh162zLbWzlz5swdE5C38tVXX7XajC6RSJrsChsNBo2feUdTU1NDSkoKR48e5fTp06Snp3P9+nXc3NxERcg+ffqY5VxmCSwyMjL44IMPSEtLw9fXt9kHZu4t9JycHFJSUu6ZwKK2tpYff/zRpGYygKioqNsuAPV6PY2Njfj6+rbaEGVra4u3tzdKpbLZ5BsdHW3S+Cx0PgaDwaRtf+COmQoPDw/eeecd4ObNZcCAAfj5+SGRSOjZsyfz5s3j2rVropuxl5cXjo6O4jzg4eHB/PnzcXd3RyqVMmHCBPz8/KisrMRgMDSZM8LCwvjuu++aSTrfyvXr17l48WKHabY7OzsTFxfHtWvXSE9Pp6qqisTERIKCgggLCyM8PJyAgIBmSiNdjVqtZv78+eKix9nZGbVaTe/evcXnGMs1jIsWuVyOg4MDEyZMYMKECW0yuquqqmLTpk0cPHiQ/Px8MjIyePXVV/H19WXy5MnMnj27I99mm+nfvz/79+9n7dq1bNiwgbi4OMaNG0dsbGy325EJDw9n7ty5NDQ0NJGk7Y7Ggx2NUWZWJpMhk8lQqVSiYIuLiwvHjx+/7evr6upMamKWy+Utlr/odDr27dtHRUUFEydOxNPTE4PBwJUrV/jggw/o2bMnkZGRBAQE8NJLL3H58mVRQSkoKAgfHx/gZllhdHQ0rq6uZGVlibK0Hh4eYq9Wz549mTlzJoWFhaIxp7e3N0FBQc3mar1ez48//tihilBwc+4YNmwYixcv5sMPP+Tvf/87mzdvxs7ODolEgkajoaioiLy8PCIiInjssce6rPds9+7d6PV65s+fz8qVK5k9ezYuLi6sXbsWZ2fnNn/3nZ2dWyy7M6pwXb16lStXrhAeHs7UqVPvqhE9KyuLvXv3dmhgodVqyc7O5ocffuD48eOkpqaSm5sr3seffPJJevfujZ+fH+7u7t1rxyI7O5usrCwWLlxIVFRUs6zQnZpC75asrCx+/vlnpk6d2m2kHm9HdXU1u3btMukYrq6uhIWF3bZmUalUEhAQQGFhYaulKHq9ntLSUmxsbO4o22ehfdTW1rJ9+3YOHz5MQUEBNjY2REVF8cADDxAaGtrs+VVVVWzdupVLly6JNbc7duzg/PnzNDQ04OHhwdy5c4mNjW3x8ze1wVOpVN42e2NjYyNqcEulUlFqFW7ehAMCApppmoeEhDR5fa9evcT/G5vJfolOp+Po0aPMmDHjtgF0ZmZmh277R0ZG8s9//pOysjKxYfvSpUscOHCAr776CoVCgYuLC0FBQURERPDAAw+026zSnNjY2PD4448zZMgQ6uvrsbOzw8XFBa1Wi4ODg7gAuXz5Mg888IBYwnX16lXWr1+Ph4cHw4cPZ9myZaKajZG5c+cyfvx44Ob1MmLECIKCgpqUGFhZWZlN2cccTJw4kaioKHJzczlz5gznzp1j//79eHt7M2nSpGb17V2Jn59fi2Ujne3X1B2QSqWEh4eTkJDAlClT8PT0ZOXKlcTFxXHo0KE7rie0Wq1JpmtSqbTFebasrIwDBw7g5eXFwoULUavVGAwGUlJSiI+Pp6CggLCwMGQyGb6+vrf9LigUCoKCglo1nbW3t29ztl+v1/PNN9+07c2ZgCAIqNVqFi1aRGBgIF9//TXnzp2jsLBQLO8JCgpi/vz5PPjgg0RFRXXZ9ZuRkUH//v2ZOHEi69evF8u9bWxs+Mc//tGiBGxLREdHi4I/t2IwGNBqtVRVVbFjxw6+++47AgICsLa2Jj09/Y7JdIPBwKVLlzrUdwTgwoULLF68mLy8PGprawkPD+e5555jwIAB+Pv74+Hh0UwxyxyYJbAwNukMHDiwUyLU6upqkpKSyMzMbLKA6Y4Y1S0SExNNOs6AAQNwd3e/7Va+k5MT8+bNY82aNezYsYOpU6c2qZtubGzk1KlTxMfHExMTY9mh6ADKyspYtmwZBw4cEJv0cnNzOXLkCIcPH+aNN95g6NChTV7T2NhIeno6R48exd7enuTkZDIyMrC1taWyspJTp04xbty4Vj97U4Pru/V16Qh++OEHNm3ahE6n45VXXmn1eVVVVZw7d65NpWztxdbWlsjISPHmUVlZKf6UlpaSlJTE0aNH2b17N99++y39+vXrFoGFUX2mtYVXWVkZx44dQ6VS8dRTT4nZ8MuXL3PkyBHy8vJobGxscTv8VpEMKysrIiIizNLk15EYXdL9/Pzo06cP9913H5mZmaKfQHcKLPR6Penp6Vy8eLFJomDkyJHdRiiis1AoFCxevBhXV1ecnJyYMWMGf/vb3zh69CiRkZHMmDHjtq+XSqUdUvIml8uRSqVkZ2dTUFCAXC6nqKiIHTt2iHLuXVFqd/nyZQ4fPtwp55JIJHh6ejJr1iyGDRtGWVkZtbW1NDY2olQqsbOzw83NDRcXly5N+srlcgRBwGAw4OzsTE5ODhEREYSHh5Oamtrm0s22NG/7+vqSmJjIt99+y6hRo/j973/fJu+2ysrK2+7Mm4OqqiqKioqYNm0ao0ePJjQ0FA8PD9RqdYc6cJslsHB2dsbR0ZH09PRO2/pKSkri7Nmz3T6wMJpLmZpVHjFixB232fR6vSi1+7vf/Y5PPvkEf39/VCoV9fX15OTkkJqaSmNjI7a2tnz00UfNItWnn366U5UKfm3885//5KuvvmLKlCn87ne/w9bWltraWvbt28eKFStYuXIlYWFhLe4WXblyRXzt0qVLcXJyQqfTUVBQQHh4eIsTtSAIbdLjvh231uV3FX379sXd3R1ra+vbZiSvXLnC/v37O1yG81ZVqPT0dC5fvszVq1fJzMwkLy+P4uJi6uvr8fb2vid2TeHmzVYul3Pt2jUyMzORy+WUlpby3XffUVdX16S2/9eEwWAgOzubXbt2sW/fPgoKCu7o3NzZGJVZSktLkclk6HQ6FApFhy88uiMymUw0MJPJZKKoQ21tLQ4ODqIEcmsYA4D2YpQD/SW2trbMnj2bTZs28eKLL1JXV4dCocDLy4tly5YRHBzcJYHF+vXrOzzzfSuCIGBjY0NwcLCYlDI6iHeX8sLg4GCuXbtGWVkZsbGxrFu3TlRBcnR0NOs4XV1dCQ8P56uvvqKqqoq0tDRef/312/avGQwGfvrpJ1JTU802jpaIjo5m+/btuLm54eDgYHYjvNZo112ktLSUL774Qvx/TU0N5eXlvPHGG+zZs0dsADYyatQos2e3MjMzOX78OGPHju02co+/RK/Xk5uby9dff23ScRwdHYmJiblj5Hzjxg3+7//+j4qKCmpra8nNzUWhUIgGPkaLeysrKwoLC5FIJM2y1VOmTLEEFu0kJyeHrVu3Ymtry5/+9CeCgoIQBAG9Xo+trS2HDh3iwoUL/PDDDzz00EPNXl9SUsLYsWOZM2cOYWFh4s0xMDDwtspcd1JJuRNGB/mupCWd819SU1NDQkJCi34K5uT06dMsX76cnJwcqqurqa+vx2Aw4OLiQnBwMA888ACRkZGEhITg6Oh4x4VOd8Ha2prp06dTXl7Oq6++SlVVFXK5HF9fX5YsWUL//v27bXNze8jPzyc+Pl709AkICBAzd91hh+lWiouL8fDwIDIyEisrK0aOHMmmTZsoLy/v6qF1OoIgNClFUqlULZaQtoZCoTApsNBoNC3+3Y2qSAEBAVRWVop+MMay4q6QVs3MzGTz5s1dtuvcXX1spk+fTl1dnehNlpyczLvvvotSqWTZsmVmXWAb7/HGa8LGxoZRo0bd8b5g9KDqSOzs7OjVq1enfz7tCizKy8vZuHGj+H+DwSAuWn/44YdmqkLe3t5mDyy0Wi3Hjx8X6zC7IxqNhrVr11JWVmbScQYNGoSXl9cdb/ouLi4t1gPeDb+slbfQdhISEigpKRGVMoxIJBIcHBzo1asXP/30E8nJyS0GFjKZjD59+hAaGtpM+vN2tKZg0lZu3LjRRDmou5KamsqGDRs6fKw3btwgJSWF8PBwevfuTZ8+fQgPD8fV1RWFQiH+GLfbu9tNtTUkEgkRERG88cYbVFdXiwsjhUKBWq3uMs35juKVV17h4sWLjBgxghdeeIHQ0FAcHBy6XdM93MySy+Vy8TPw9vZGIpF0ecDfFRgMBgoLC1mzZo1oQncro0aNuq3bu6nXcl1dXavqfwqFokmPWVfz9ttvd5hR6O3Q6/WUl5dz+fJl6uvr6dGjR7fyhjGOxWig/Pbbb1NdXS16OZizDCglJYUTJ05ga2uLlZUVW7dubeYD1BK+vr4dvnPaVfNcuwILX1/fu2pG/qU8mrlISkoiPj6e2NhYkxdX5sZgMJCamsqnn35q8rHuu+++NulB29nZ8eijj5p0rt9is6C5yMnJQavVsmvXrmYBmlFFQiKRtJqFVKvVODs731U5iiAIJjfMFhcXc+PGjduaHnU1hYWFbN++vcO12gHGjBlDQkKC6M9j/LmXgojWsLKyatPu0K+BJUuW4OrqiqurK9bW1kil0m77+fn5+SGXy3FxcWH9+vWsWbMGFxcXhg8f3tVD63Tq6up47bXXOHHiBGPHjm22friTb4yrq6tJu7i1tbXk5eVRXV3dYWsXc7B7926++eYbkxSw7haDwUB+fj5vvfUW33//PfX19Tg4OLBw4ULR0DQrK4sdO3ZgZ2fHtGnTusSX5dZ7qNHktz3jOHr0KBs2bGjxMaN544ULF8jJyRH71lxdXds0z0RERPxq+6faFVjIZLImNeLx8fG89tprREdHEx0dTVRUFCEhIaKqSEdtrzc2NvLNN9/Qv39/Hn300W61jd/Q0MCf/vQnqqurTTpOnz59iImJaZPPgFGm704LIIPBgE6nQxCEDm3g+a1h7FMICAigb9++LV6P1tbWrTbNG+UV7wZBEEzuazIqm5SVlXXLAL2uro4DBw7w73//u1NuogqFos03BwvdF2N/gsFgoLGxUfw+GstGutP9Ii4uTlTyCwwMFOVVe/To0dVD63S0Wi3Hjh3jww8/ZPjw4c2+h3e6Z7XXl+dWbty4QXp6ercUODEYDGRlZfHqq69SWlraqectLCxkxowZnD9/Hr1eL8o23yr9LZfLuXr1KufPn8fPz88sDth3S01NDVu2bGHPnj1cv369WQ/hwYMH2xR8Xr16lU2bNrX6uMFgQCKRMGPGDJYuXYqrq2uzecVgMLRYqiaVSn+16y+zdOrFxMSwYsUKLl68yNGjR1m9ejVlZWX4+PjQt29fFixY0GFNaLm5uWzatImQkBDi4uK6xc1Cp9Pxn//8h3379pl0HEEQmDp1Kv7+/m1a5Ny4cYPVq1ezdOlSUVu6pbEVFRXxySefEBERwYMPPmjSGC38D09PT2QyGX379uWjjz5qtananAtWQRAIDQ3FysrKJFOoEydOMHv2bNzc3LrNgtq4IDx58iR//vOfO61Bsbu8/+6I0RSvtrZWNO5SKpV3vEE2NjaKO2Kd1SDe2NjI559/zieffMKFCxfYv38/cXFxfP3110il0juqC3Um58+fp6ysjDFjxtCjRw+8vb1/s9eh8Rrz9fVtlzCFl5cXTk5OoipQe8jJySEhIYGoqKhu9TkYDAZKS0tZvHgx6enpndpb0djYyAcffMCFCxd4+OGHef3117lx40azNYSnpyehoaF8//33XLlypUsCi08//ZR169bRu3dvxo0b12x+auscNGbMmFalfI3CKf7+/q16QBgrFXbv3k1qair19fXidSkIAn379mXWrFl3/wa7OWaZ4R0cHBg5ciRDhgxBo9FQUFDAqVOn2Lt3L7t372bgwIEdqm5h1CZ3cnIiKCioS4MLnU7HyZMnWb58uclKOz169GDEiBFtbk6vqKjgvffe4/Tp0/z1r38lPDxcbFIy9sEkJibyzjvvEB8fL5qedReMZm8ajQZbW1uT1Y46m0GDBqFWqzlx4gRlZWXY2Ng0yZIaF8rmXFgJgiDKo5oiaXzq1CmSk5Pv6JXSWRilXn/66SeWLFlCRkZGVw/JAjc/l/T0dCZPnkxZWRl+fn5s2rSpiU9JS+zdu5d///vfLF26VPTD6Gi2bdvGp59+ypAhQ8jIyBAXYTKZjPfff79bBRZXrlyhoKCAcePG/SpK7kxBLpczatQovv76a1544YVm86VMJrvtHKVQKAgMDMTe3r7dpnF5eXkcOXKE2bNndxuTQqPD9uLFizl48KBJiaT2YKwQ6dmzJ6tWrUKtVrfYP2r0u5BIJB1u2tcaiYmJzJ49m6eeesqkUiwfHx/R2LA9aLVaVqxYwYYNGwgICCA1NZVevXqRk5ODWq2+K1GCewmzGeR9+eWXJCcnc+XKFQwGA5GRkYwePZpXXnmFyMhIc5zmtmzevBknJycWL16Mj49Pl2wx6XQ6EhMTWbBggcluyFKplIceeojIyMg232QcHByYMWMGO3bsYO7cufzhD39g2rRp2NraUlFRwc6dO3n//ffJzc1lzpw53a5+V6fT8fLLL/Pll1/yr3/9iyeeeMKsx6+trUWn06HVasWGQI1GQ0VFBRKJBKlU2iSjqtVq0Wg06PV6qqqqROOlmpoa8TVyuRwrKyskEgkBAQE89NBDrFmzhmXLlrF8+XIcHBwQBAGtVktRUREZGRmMHTu2ifmYqchkMuLi4kwKLLRaLVu2bCE6OpqwsLAuXdgYDAbq6+s5deoUL730EikpKV02FgtNkUgkhIeHc+nSJfbu3cuf//znrh5Sq+zfv585c+bw2GOPsWfPHvH3QUFBZGVldd3AWsDOzo7CwkIKCwublPEolcp7Rs7YXEilUnr27MkHH3zA4cOHCQ8PbxJIREVFMXfu3NseIzw8HEdHx3YvbPV6PefPn2fPnj3MmjWry0tWdDodeXl5vPHGG2JvQ2dj7K8YNWoUarX6ts817mK2JNvbGUilUrGZ2hwYVTXr6urQarViCZSVlRUqlaqZYJGRxsZGvv/+e9auXUtkZCQLFizghx9+ICUlhU8++cTkkr3uilkCi/T0dNatW0dkZCTPPPMM/fv3x9HREZVKhUql6hTt3IaGBlatWkVDQwPPPfccwcHBnToh19fXk5SUxFNPPcXVq1dN3qIMDQ1l0qRJd6U+4ebmxgcffMDQoUN57733eP3110lMTGT69Ons3LmTzZs34+7uzl/+8hdmzZqFg4ODSWO81/j888+5fv06FRUVXLx4Ea1WS0JCAsuXL8fe3h5vb29GjRolNlSlpqayZ88eKisrycvLIykpifLyctavX8+JEyews7MjLi6OQYMGiVLAr732GkVFRezbt49x48bh7++PUqnkxo0bFBQU0K9fP4YNG2bW9yWTyRg9ejQff/yxSdfdnj17GD16NJ6enqjV6i4JLgwGA2VlZRw8eJCXX365TUZDFjqfu+3P6oprqaKiArVa3ew+UFtb2+ULxV/i6+vLwYMHWbFiBSEhIWJyY9y4cb/arGZrGHcqBw4cCNxMXN5KW6SCo6KicHNzMymAvHz5Mtu2baN///4EBwd3WbKlrq6OlJQUli9fzoEDB7pUKUylUlFXV4dOp2v1O6TT6SgvL0en03VZ83tcXBznz5/n/PnzhISENBNucHFxafPnqdFoyM3N5cSJExw7doysrCyxqiI4OJjRo0cTHR3dqg9QZWWlmCCWyWTU1NQQGBhITEwM8fHxzJw502zvu7tglsCif//+vPPOO5w/f57vv/+eL774Ah8fH/z9/QkODmbo0KGd0oTW0NDA6tWrKSgo4IUXXiA6OrpJOUpHYDAYKC8v58cff+T1118nLS2tza6OraFQKJgxYwZ9+/a968nMzs6OefPm0bt3b9566y0+/vhjPv30U3Q6nSjTN2jQoG7Ri9LZfPPNNxQWFoqLb6PD8I8//gjQ5JqFm+UJ27ZtEz9PtVqNWq0mOztbvNnpdDr69OkjBhb29vasXr2a7777jp07d3L16lWqqqrw8/Nj8uTJjB8/vtnWulQqxdvbm969e7dr29ZoKOXm5maS9GBjYyMrV67Ex8eHSZMmYW1t3ak3U61WS3Z2Nps3b+bdd9/tVNOnexm9Xk9KSooYxBYXF1NcXCzWqBcXF6PVavHx8aG2tpbCwkIqKysRBAEHBwfc3NzEjHB2djYSiQQPDw9xQV5YWEhZWRmhoaFtuh6MdcUFBQXU1NSgUCiorKzsdK390NBQkpKS6Nu3L1qtlrKyMnF3fdCgQZ06ljuh1WpF4YRbF46dqfjTXbC1tWXHjh0mHSMiIoKgoCASExNpaGho1zH0ej2HDh1i9erVvPLKK3h6enbqfKjT6SgpKeHQoUO8++67JCYmdun1IJFIiI6OJikpieTk5BYtBLRaLVevXhXlV7vKE8vNzY3Tp09z4sQJevXqhaOjY5M1zz/+8Y82Jbw1Gg0nTpzg//2//8fx48exsbFBqVQikUjQ6XQkJCTw8ccfM3PmTJYtWyYGMUYEQcDT05OsrCxCQ0NxcXHh6NGj9OrVi/Ly8i7b0elozBJYqNVqhg0bRnR0NFVVVWRnZ3PmzBlOnDjBZ599xptvvsmcOXPMcao7otPp+Oqrr0hOTub5559n1KhR+Pv7d8giqba2lmvXrrF9+3ZWrVrF9evXTT6mIAjExsYyfvz4dhv/SSQSevTowfjx4zl79iwVFRV4eHgwbNgwAgICusxMp6vZvXv3XT3/wQcfbFdzu1wu56GHHmrRq6Il7O3tWbJkCUuWLLnrc8HNa8be3p5Jkyaxfv36dh3DSF5eHq+//joGg4GxY8d2ys6FTqfj+vXrJCUlsXLlSg4ePNih5/u1UVdXx+zZs1m1ahVRUVF8+umnbN68mZUrVxITE8N///tfSkpKWLFiBYcOHeLLL78kOzsbQRAICQnh0UcfZeDAgVhbW7NixQpUKhWvvfaauFu6YcMGtm3bxqlTp9qU6a+rq2PPnj1s3LiRoqIivLy8UKvVJivk3S2zZs3i73//O++99x6lpaVs2rSJ+vp6MjMz+c9//tOpY7kTMTExxMTEdPUwug16vZ6ysjJqamqa3a+MhnS3w8rKiuHDh3PkyBFyc3PbPY7Kyko+//xzlEolzzzzDD169Ohw8QGjR0R6ejpffPEFW7Zs6RKvil9iZWXF448/zuLFi1m2bBlLly6lsLBQDICSkpLIz89n27Zt7N69mxkzZnSZqta1a9cICwsT//9Life2roGuXr3K6tWrOXfuHJMmTWL06NFiAqeqqorU1FT27dvH119/jaurK8uWLWtybUqlUiZMmEB2djaxsbHExMSwcuVKQkJCyMnJYezYsWZ5v90Ns3xDjIvroqIiioqKKC0txWAwEBAQwKRJkzq0cbs1UlNTWbp0KSNGjGDu3Ln069cPb29vXFxcbutifCcMBoNYGnP27FnWrVvHyZMnzbY96eXlxaOPPtquL6TBYECj0XDx4kW+/PJLtm7dSkBAAGFhYSQlJbF27VquX7/OY489RlhYmMmOzZ2JVqslNzeXjIwMnJycCA4OFrdZja6XhYWFlJaWitJ3SqUSZ2dnfH19USqVTT5zo4xpQkIC3t7eBAYGUlxcLLotw80Fv6+vrzhR6PV6KioqxAzuL8/Ts2dPFApFl2yZq1QqHn74YbZt22aygdylS5dYunQpr7zyCuPHjycgIKDVGlJTqKurIz8/n4yMDLZt28aWLVvuapfC6C/R0NDwm8zsGpFIJPTq1Yvk5GRCQ0O5dOkSPj4+JCcnExQURGVlJQEBASQmJrJx40Z8fX155ZVXaGxsZO3atXz88cc4OTnRt29fs4wnOTmZrVu34uvry5tvvkldXR3vv/++WRIvd0N0dDQrVqxg69atjBgxgtLSUnx9fVm6dKlYZtNdMBoW3lq7Xl5ejkKhuOdELExFp9ORnp7OV199RUFBAVVVVSiVSurr61EqlYwePZrZs2ff8Tjjx49n8+bN5Ofnm1RFUFRUxJo1ayguLmb+/Pn06tULe3t7s+/6NzQ0UFJSQlZWFocOHeKLL74gLS2tzSIwgiBgY2Mj9gaaG4lEwuTJkzl79ixbtmxh1qxZODo6UlNTw86dOzlx4gTZ2dno9XrGjBnDnDlzukwuefHixeK/9Xp9uwUR0tLSOHv2LDNnzuRPf/pTs9L0KVOm8MADD/Dss8/y3Xff8dRTTzUJLGQyGc8//zw2NjbY2dkxe/ZsiouLuXr1KkOHDm3TdXwvYpbAorS0lMuXLxMSEsLQoUMJCQnB19fXbAtXQRCws7PD3t6ewsLCNqshNDY2cvDgQX788Uf69evHmDFjGDRoEO7u7ri4uKBWq1GpVFhbW7c6Seh0Ourq6qiqqqKkpISCggIuXLjAnj17OHXqlFmzcCqVigceeICJEye2629XV1fHrl27WLt2LUlJSYwdO5ZnnnmG2NhYfvrpJ9asWcP27dtJTU3lySefZNSoUXfM/HQHtFotqampvPvuu8THxzN37lxefPFFMbAoKSlhx44dfPvtt1y6dElcnCqVSvr06cO8efOYPHlys12r/Px8pk6dyrx583jxxRfZtGkT8fHxXL9+HY1GQ3h4OL/73e+YNm2aeJ7vvvtOPI+xQV+pVNK3b1/xPL8MYjoDKysroqOjGTZsGHv37jX5eLm5ubz88stMnTqVWbNmERkZSY8ePe7YtHc7jCUyRUVFFBQUkJqayoEDB4iPjxeTEW3FysqKfv364e/vT0JCQrM67N8SUqmUPn36kJKSwoQJE8jPz2f8+PGkpqYyfPhwKioqGDZsGElJSdTV1fHwww/Tr18/4GYfwltvvUV6evodlZ3aSnp6OtXV1TzxxBNigiQ5OdmkzHF7CQsLExvMTVlgdDRJSUlUVFQwYcIE8XfHjh3D19dXLNn8raDRaFi5ciVpaWkEBARw+PBhpkyZQmFhIbW1tYwZM6ZNx/H392fMmDEkJSWZ7PdQXl7OunXrSExMZNasWQwZMgQ/Pz9cXFza3ctpVGosLS2loKCAzMxMjh8/zt69e0lPT7/rZImLiwvTpk0jKSmJhISEdo3pdgiCgEql4o033hDlZHNzc7G2tkav16PT6ejbty8DBgxg9uzZ9O7d2+xjaCvGRvPMzExKS0sZOHAgLi4uYim0h4dHmwLDqqoqpFIp0dHRrfa7BgUFERMTQ3JycrOyO4lE0sTcuGfPnt1OjbMjMEtgERsbS2xsrDkO1SJKpZJhw4Yxbtw4tm7dyqlTp+4qA9HY2MiZM2c4c+YMSqWS0NBQIiIiCAgIEIMMGxsbZDKZ2ORzq3rQjRs3uHbtGqmpqfz8888UFBSY3EfxS2QyGYMGDWLWrFntNjwrKCjglVdewc7OjkWLFvH444+LGQNjn8umTZvYsmULy5cvRy6XM336dHO+DbPT2NjI5cuX+fDDD9m/fz+zZs1i8eLFTdymS0tLOXPmDFVVVQwePBgvLy8EQSA9PZ0ffviB5ORk/P396devX7NSDq1WS0pKCuvWrePcuXOiZGxxcbEom2ekpKSEM2fOUF1dzdChQ/Hy8gJuLqQOHTpEUlISAQEB9OnTp0uaQ9VqNU888QQJCQktygDeLVqtlu3bt7N3715GjRrF8OHDCQ8Px9XVFQcHB+zs7LC2tkahUIjfG+MNprGxkfr6empra6murqaiooKSkhKys7NJTEzkzJkzpKent6v+2ahMtHTpUkJDQ3nzzTd/84FF7969iY+Pp6ioCIPBQP/+/Tl27Bg5OTlUVVXh7e3NxYsXxd01I25ubkilUsrLy1tdyNztAqempgZBEJr0Erm4uHS5i3F37CvT6XTU19dz+fJlioqKxN4Po3+LIAi/ucBCq9Vy/Phx/vOf/+Dl5cX169f58MMPuXr1Khs3bqS2trbNx5o5cybx8fGcOnXKZPl3nU7HmTNnuHDhAr169WLkyJFERUXRo0cPHB0dmyQqZTIZEolENKPV6XRoNBpqa2upqamhqqqK0tJS8vPzSUlJ4fTp0yQlJbV73razs2P+/Pm8+uqrfPrppx0SWMD/5M0ff/xxZsyYweXLlykoKECr1WJvb4+/vz8+Pj6d5lXTGnl5eaxbt45jx45x8uRJtm3bxujRozl16hRpaWn8/ve/b9F34peoVCpsbW3R6XSi98QvMVaKODk5/eYU3Fqjaz/9NuLk5MR9993H/Pnz8fDwoKysjNTU1HYdq76+np9//pmff/5Z/J1RmkypVCKXy5FIJKK0WE1NTYfrRQuCQHh4OE8++aRJZWMymYzIyEjmz5/PtGnTmkj0CYKAv78/S5YsITQ0lPXr15ssidtRCIIgNkdlZmayatUqdu3axYwZM1iyZAl+fn5Nnh8YGMhzzz2HVColMDBQfN83btxg8eLF7Nixg+PHjxMREdGsrKCxsZGUlBRcXV35xz/+ITbMG4PKWyfIoKAgnnvuOaysrAgICGhynkWLFrFz506OHz9OeHh4lwQWSqWS4cOHM3XqVD777DOz9dLU1taya9cudu/ejaOjI6Ghofj4+ODh4YGjoyO2trbI5XKkUqlohFZfX09lZSUlJSUUFRWRk5NDVlaWyU28giAQGBjIM888w9SpU2lsbMTPzw+JRGL2YP9eQSKREBYWRm5uLikpKURERIjB37lz54CbqkNyubyJ1DLcLMExGAzY2tqKzu+NjY1NPqMbN27c9W4SNG1C1mg0v+lytdaorq7mwoULnD59muLiYlF+0vg5mbJDeK9izOR7eXmJkp6lpaX4+PgQGBhIQkJCm6XIIyIimD17NpcvX+bGjRtmGV9DQwPnzp3j3LlzokGan58f3t7eODs74+DggEKhwMrKSpQpbWhooLq6mpKSEoqLi7l+/TpZWVlij4IpKBQKHnroIf7whz9gb29PTEyMyYapd8LY19dd+4J27dpFUlIS06dPb5J0cnBwYNu2bSxZsqRNgUVQUBAhISFcvHiRvLy8ZsaVOp2O1NRUkpKSGDFiRLfxPOlq7onAwtnZmejoaFQqFWPHjiU/P5/33nvPbFvrOp2OioqKLjNz8ff3Z+HChdx3330mmZO5urryl7/8haioqFafo1armTFjBv7+/mb1UjAngiAgl8vJyclh1apVfPvtt0yfPp0XX3yRgICAZs+XyWQtZvXc3NwYOnQoP/zwA1lZWS0ubPR6PTKZjAceeEAsD4Gbi6NfyvEaXbVvd57MzMwuXUA5Ozvz5JNPcu7cOZKSksx6bKPr68mTJzl58qRZj90WBEGgZ8+eLFy4kDlz5mBra4vBYMDf3x8HBweTyx3uVQRBwMnJCbVazbFjxxg+fDh2dna4uLhw/vx5IiMjcXR0JCQkhMOHD3Ps2DFcXFzQ6/X8+OOPqNVqfH19kUqleHh4cPbsWbKyslAoFOTn53PmzJlmix+jO7Lx37fSo0cPrKysOH36NCEhITQ2NnL+/HmKi4s77W9yL2FceGo0GvFvJJPJmDBhQqd4QHU3jD4WaWlpREdH4+rqytdff02/fv24cuXKXSdtZs2axYkTJ/jmm2/MLtVqlILtKq8dqVTK9OnTWb58Oc7OzhgMBvz8/OjRoweZmZkdem69Xi/uwOj1ehQKhZhk6mrOnj3L4MGDmTt3Lps2bRJ/7+npeVeJEk9PTyIjI9m1axfvvPMOAwcORK1WI5VKaWhooKioiL1795Kbm8vYsWM5d+5ck2SkRCJh9OjR3bL8siPp9oGFVCrF09NT7PB3dnZmxowZFBcXs27duk5vCDQ3Xl5ezJ8/n4ceesjkhb61tfVtgwojUqm0Q0vXzIFGo2HNmjVs2bKFSZMmsXTpUoKCglp9fl1dHVlZWWRkZFBSUkJtbS0NDQ2cOnWK+vp66uvrW51M7O3tGTJkSJvGVVdXR2ZmJpmZmc3Oo9Fo0Gg0Xaq6Zew9eOGFF3jzzTfv+e+HEUEQ8PX15ZlnnmHevHliZsi4g+Hr6/ubDSzg5uceGhrKzz//zEsvvYS9vT2enp7Ex8czffp0BEEgOjqaESNGcPz4cTIyMtDr9eTn5zNp0iRxfh0zZgw///wz69atw83NjYaGBtzc3MSsn0ajEcsLk5OTuXHjBhs3biQwMJB+/foxcOBAevfuzcCBAzl27Bj5+fnY2dlRXFz8m2tCbgtqtZoxY8bg7OxMVVWV2T1u7kWMqnpWVlY4OjoybNgwvvjiC/bu3YsgCMyaNeuujufq6spLL71EVlYWP/30k8k7BN0FmUzG9OnTefPNN8WSZ2OpUmxsbIcEFsbdpPPnz3PhwgVyc3OpqKhAp9OhUqlwd3cnJCSEqKioZtn9zsRgMLR4H87Ozsbe3r7N40pLS+P48eNkZ2eLTevOzs5IpVLq6+spLCykqqoKT09PtmzZwpYtW5q8XqlUcuLECbO8p3uJbh9Y2NjYEBkZ2WRL2MfHhwULFqDT6fjss8/Iz8/vwhG2nx49evDEE08wb948UcPcHDQ2NnL9+nVSUlIoKSlBoVDQt29fgoKCxNp3qVSKQqHolnXHDQ0N7Nmzh/379yORSAgMDGxxp8JIfn4+e/bsYd++feTl5SGTycTSnNzc3DsqZFhZWbVJ2jc/P5/du3cTHx/f4nkaGhq6hZSvnZ0d06ZNIzMzk48++qiZ1N69hnGn4rnnnuPxxx/Hzc2tyeOBgYH4+PiY5Dx+r6NUKnn00UdJS0sjKCgIuVzOqFGjRI8TuJnEmDt3Lj179uTSpUtIJBJGjBjBkCFDxL6LgQMH8sILL5CYmEhtbS0RERHMmjWL06dPIwgCBoOB6upqKisr8fT05IknnkAQhCYqae7u7syePRtPT09ycnJwdXVlzJgx5Ofnd5mufXcnLCzsV7PgNRUrKytmzZqFUqnE2tqaqVOnIggChYWFhIaGMnr06Ls+ZmxsLEuXLuX111/nypUr3WKeNgW5XM6MGTN47bXXCAkJabJQtrGxITY2lq1bt5r1nAaDgdraWj7//HO2bt3KuXPnqKioEMVvNBoNgiAQFBTEhAkTmDt3LlFRUV2yxoiNjeX48eO4urpSUVFBeno6dXV1bNy4kfHjx7e5B0Sv16NWqxk+fHi7xtEddm+6gm4fWDg4OBAXF9fkd7fWWctkMjZs2NAliiPtxZh9XbhwIY899hg+Pj5mO3ZtbS2HDx9m27ZtJCUlUVxcjJeXFy+++CJBQUEUFxeza9cuBEFg8uTJbXIx7Ww0Gg1nzpxh1KhRnD9/nt27dzN48OAWbyh1dXV8//33vPPOO6jVaqZMmULv3r1xcnJCqVSyc+dOPvroo9ueTyKR3HECqKurY8eOHbzzzjs4OjoyZcoUevXqhZOTE9bW1uzYsYM1a9aY9L7NhSAIuLu789RTT1FdXc2mTZu6rMzPVKRSKcHBwSxatIjZs2e3qGLm6+tLz549xf6A3yJyuZzJkyczefJk8XcteSN4enre1ulVLpczduzYZvrqxt4vpVLJzJkzb3sMYz+XJYhoO6aUwP4a0Wg0YrDr4eHBU089JT6m1+vFkqa2/t0EQWDatGlUVVXx1ltvmeTI3dXY2dmJyoghISHNFu4qlYq+ffuiUCjMKjur1+vZt28ff/3rX9HpdEyZMoWgoCDUajUSiYTa2lry8/M5ffo0mzZtora2lpdffpnAwECzjaGtTJo0iZKSEvbs2UNZWRmfffYZ9vb2uLu788QTT7S5yTomJoa//OUv7R7Hb60Eysg9EVi01iDk7+/P008/jVqtZt26dVy6dKnbN3AaF0rPPvsss2bNMuvCvqGhgYSEBN58800yMjLo3bs3UqmUgoICUUnDysqKCxcu8PPPPxMcHNwtAwvjImnhwoV8//33fPDBB6xatQo3N7dmkpi5ubkcPHiQ0tJSnn32WZ566qkmvRHHjx83y5c7JyeHgwcPUl5ezqJFi1iwYEGT8xw5cqRbTSISiQR/f39eeOEFAL788ktKSkq6eFR3h5WVFTExMbzwwgtMnTq11VJBGxsbAgMDcXJyMluDpgULFrqG+vp6Vq5cyfLlyykvL8fFxUWUX6+oqODw4cMcOnQIa2trxo0bx9ChQ9vkoqxQKJg7dy56vZ6//e1vZGRkdPRbMTve3t7Mnz+fp556SuyL+iVSqRRvb28CAgLaLXLTElqtlrVr11JTU8OKFSuYOHEiPj4+4iJdp9NRXl7O6dOnWb16NQcPHmT48OFdElgYq1rOnj3L0KFDqa2txcnJibi4OEJDQ9u8i6JWq3+TAgqm0q0DCysrK/z9/ZtIi/6Snj17irKqa9euFWvquyPW1tYMHTqUhQsXMnr0aJycnMx6/IqKCj777DMKCgp47bXXGDRoECdPnmTVqlXicxwdHQkICODQoUPdtoTM6MlgLIHLzc3lq6++4qOPPuKPf/yjKPMKNyVgS0pKcHNzIyIiosliX6vVkpycfFfyhK1RXFxMSUkJrq6urZ6nu113xiD2pZdewtnZmY0bN94zmTqVSsW0adN4+umnGTJkyG0XDoIgEBwcjLe3tyWwMJHy8nK+/PJL7r///m6ZdLDw66ehoYH//ve/oqBKeHg4CxYswN/fn8uXL7Nlyxasra0pLy9n69atODo6ttlQVqlU8sgjj2BnZ8fKlSs5c+ZMB78b8yAIAv379+fJJ5/k/vvvx9XVtdXFsVGxKTo62qyBhV6v5+zZs6LypFHBzIhUKsXZ2ZnRo0dz7do1zp8/36WVJO7u7uIOrrH0rTsl/37NdOvAwtbWlv79+9+xTMXV1ZXp06fj4+PD559/zjfffENhYWEnjfLOCIKAq6src+bM4ZFHHqFv374dUntXXV3NsWPHiIuLY8GCBajVanJycpo8RyKRiOoRd+Ny3BVIJBK8vLxYuHAh169fZ/v27Xh7e7No0SLs7OyAm9lqlUpFeXk5paWlaLVa0Y15x44dZgs0bW1tUalUVFRUNDvPd999120DWqME77PPPouPjw8bNmwgISGhwyWU24sgCPj5+bFw4UKmTZtGeHh4m24GxsDi/PnznTDKXy81NTXs3buXESNGWAILC12CsUFYLpczdOhQ0tLS2Lp1K8uWLROduF999VVqa2v57LPPOH/+fJsDC7gZXDz44IO4uLiwbt06tm/fLvYHdUccHByYPn06c+bMYfDgwdja2t5xTjRKwX7++edmHYtUKsXV1bVZUHErcrkcBweHLvWtMRgMpKSkcPDgQa5cuYJWq8XFxYXhw4czYsQIrKysLEFGB9KtAws7OzsGDhzYpueqVCoGDRqEt7c3gwcP5osvvuDIkSNNNNu7AqVSyYQJE5gzZw6DBg267e6LqTQ2NlJRUUHPnj1vu31nNADs7mVjcFP5IiwsjOeee47r16+zceNGPD09eeSRR5DJZPTs2ZM+ffpw/Phx1qxZQ3p6Ora2tmRnZ/PTTz8RGBhIQUGByePo2bMnvXv35sSJE6xevZq0tLQm5wkODu5WweytCIKAp6cnDz/8MKGhoWzbto3t27eTl5fX1UNrgkqlYubMmcyZM4cBAwbclSa4j48Pvr6+Ha7f3t0wGAx8/fXXlJWVce3aNWJjY0lMTCQoKIiZM2fy008/kZGRwfz58ykrK+Po0aPY2dkxYMAAfvzxR06ePEl1dTWRkZFMmTJFPObWrVtpbGxEo9Hw5JNPEhwc3C2FHiz8+jAak7766qu4u7tz5MgRPv30U+Dm7rBMJsPHx0dc5N7tvCsIAlZWVowcOZIePXoQGxvL+vXru534g5WVFQMHDmT27NmMGzeOnj17tjkhqVKpiIyMRKVSmWXHHv6nJpmVlUV1dXWrgYNGo+H69euoVKp2m/2ayqlTp/j3v/8tltLJZDJSU1M5fPgwTz75JI888ojFzK4D6baBhVGbvS3yqUakUin+/v54eHgQFRXFoUOH+Oabb7okmyyTyRg6dCiPPPIIQ4YMITAwsMMVAqRSKTY2NhQXF6PX61tcCOh0OnEiNmb9uztKpZLBgwfz/PPP89Zbb/HJJ5/g6enJ+PHjsbOz47HHHgNg9+7dbNiwASsrK9zd3bn//vsZNmxYk8a/9mJvb8+8efMA2Lt3b5PzPPDAAwwbNqzNpk1dhb29PYMGDcLPz4+RI0fy3XffsWfPHoqKirp0XHZ2dowdO5aHH36Y2NhY/P3973oRa21tTXBwMM7OzmYJJO8VjJm5hoYGnJ2d2bx5M/fffz8HDhxg4sSJXLt2jcTERObPn099fT1paWm4urqi0Wg4duwYkZGReHp6iq7BlZWVFBcXo1QqiY2N5ciRI3z55Zf88Y9//M0qnFjoXARBwNnZWTSslclk5OXlkZaWRmlpKXq9Hr1ej7W1tWhC1x6kUikhISF4enoSHR3NgQMH2Lp1K2lpaWZ+R3eHUqmkX79+PPjgg4wcOZKwsLA27VLcikwmE6VfzRUwyWQylixZwksvvcTf//53FixYIJqTwv98jvbu3cvu3bsZMmSIqEjX2ezYsQOZTMaiRYsICgpCKpVSVVXFtm3b+Oijj3j44YctgUUH0m0DC4VCQa9evdrlZGhtbU2vXr3w8fFh9OjRJCUlsXPnTvbs2dPhWvcuLi6MHz+eadOmERkZib+//223Dc2JSqUiJiaG06dPs3fvXiZOnNjkcb1ez+nTpzlw4AA9evTodqotEomEpUuXMmfOHEJDQ5s8ZmNjw7Rp00TDLaP8rLG+fvHixTz44IOim7i9vT2+vr7Y29uzYcMGHB0dxQZAI15eXsTHx2NnZ3dH0yVBEAgJCWHJkiXMmDGD6upq8Tw9e/bEzs6OjRs3iipR3RVjts/NzY3o6GhmzpzJDz/8wJ49e7h69WqnZfulUimRkZGMGjWKsWPHEhISgp+fn0lb1KGhoXh6ev6mAgv4nwpTeHg4CQkJREVFsX///lZ3a/V6PefOncPW1pYpU6Zgb2+PXq9HEAQqKyuRy+UMGzaMAQMGIJFIWLVqlUUK1UKnYWVlxaBBg1i4cCGBgYHiLvTSpUu5ceMGbm5unD9/Hg8PDwoKCoiIiGj3uYz9CIMHDyY8PJxx48Zx8uRJdu/ezenTpzut4sFY9jt06FDGjh1LdHQ0fn5+ouJSe3B0dKRfv37tDizeeuutJj0SgiCg1WoRBIE1a9Zw8OBB3N3dcXR0RCqVUl1dTWFhIdeuXUMikRAdHW223ZK7JT8/n+joaAYPHtykekOv17Nhw4Z7olrjXqZTA4tp06YRFRXVJgk04zanKdvvxo7+oKAgBg8ezKJFizh37hwnTpzg5MmTZjGQkUgkBAQEEBcXx4ABA4iJiaFHjx54eHggl8s7tY7P0dGRxx9/nOeee45XX32Vb775hrq6Oqqqqjhw4ABJSUkcP36cgoICFi1a1ExhqT307duX3bt3t1vm097eXgweJRIJ4eHhhIeHN3ueIAg4ODi0WBpndAxuheJgbgAABpNJREFUrSZ80KBBLR5PpVIxbty4No/VaNbo6enZ4uNdlZ1pDwqFAj8/P7y8vIiLi2PevHkkJSVx6tQpTp48SUpKill3+SQSCe7u7vTq1YuYmBji4uIICAjA3d0dFxcXpFKpyd+VwYMHs379ejG4vB3GvqeuxMvLiz/+8Y8sWLCg3ccICwvj7Nmz2NraolAoUKlUSCQSpFJps2CgsbERrVYr6tG7uLiI5Qy3zrN2dnY4ODgglUpRqVQ0NDS0e3y3QyqVsmHDhnYvPlQqVYeUlgYFBfGvf/2rXf4vYWFhbdbIbw8eHh588cUXd90ToFKpzCpr3hKxsbF89dVX7ZI4vdXHSalU8sorr7Bp0yYKCgoYNWoUEydOpLS0lMrKSnJyclixYgU1NTX06tWrxfn9bpFKpbi4uDBo0CB69erF1KlTycjIICEhgZMnT5KYmEhxcbHZ/C8EQcDOzo7Q0FCioqKIi4sTdw+NKlimzoceHh786U9/avOOva2tbRMFp507d5KUlNRkzMYy6rq6OkpKSpBKpWIySKfTifOLQqFg48aNeHt7ExIS0qbzjx8/noMHD7Z70e/p6SlKFAcHB9PQ0EBdXV2TwCIrK4t+/frdtXt7RyMIArNnz25z6X9Lr29tXdIVdGpg4e7ublYjuLaiVCrx9fXFx8eH3r17c//991NRUUFubi5XrlwhIyODzMxMcnJyKCsro6amhpqaGnHytra2RqVSoVKpcHZ2xsfHR9RpDw0NxcvLC7Vajb29PTY2NuIXsLMxZhrffvtt3nnnHTZv3oxEIhE9GIxbzE8//TRz5841S3OVvb09AwYMMMPoLXQFcrkcd3d33NzcCA0NZdy4cVRWVlJeXs7Vq1dJTU0lIyOD69evU1hYSHFxMfX19U1cxmUyGVZWVqhUKmxtbXFwcMDFxQV3d3d8fHzw8/MjMDAQd3d37OzsxB9zN9Cp1Wr69OljtuN1NEqlkqCgoNs6yt8J403Y+He89e8pk8lQKBSieV1ubi6XL1/G09MTLy8vrl27RmZmJoGBgWg0GvFmK5FIOmX+EgThrkpdOwujKWt3RKlU3lWjcmfi6Ogo+p2YgkQiISgoiCVLllBfX4+NjQ0ODg7o9Xp0Op3YE1ReXk5oaKhZd96lUikODg6o1WoCAwMZOHAgTzzxBOXl5WI51uXLl8nLy6OwsJCioiKqqqrQaDTU19ej0+mQSCTIZDKUSiW2trao1WqcnZ1xc3PDy8sLPz8/AgICxB11W1tb7OzsRKM5cyGXywkICLituezteP311ykrKzNpDP369Wvzc11dXc2W7ImOjuaDDz4gOTmZPn36IJPJyM3NZe/evYwcOZLPPvtMnOPs7e3v2s3d3AiCgLe3N97e3l06DnPRbUuhOgKj3b2trS1eXl4EBwczePBgGhoa0Gg0aLVaGhsbxRpO401bIpGIP8ZFlEKhQC6Xo1QqzZJtNQfGLMiDDz5ITEwMZ86cITExkbKyMqytrQkNDWXgwIGEhITcla29hV8/giBgbW2NtbU17u7u6PV6evfuzcSJE5t8N4zfD4PB0CR7JwiCmCmXSqXIZDLRmVwul6NQKLrN9+S3glH4YN++fcycOVNs/hQEgSlTpvDFF1/w6quvotVq6d+/P48//ni3y+RZ+G0ikUiamWEa5xZHR0eGDBmCXq9HJpN1iKiAscHbyckJJycnDAYDERERDB8+HI1GQ0NDgzgf6nQ6DAaDOC8aE4uCICCVSpusG6ysrMQ5sbMrGu6W8ePHm7xD05G7d7fjxIkTXLt2jZycHC5evCiWcdXW1nL8+HFOnTolPtfb27vLA4tfG4LhXve2t9Aier1eDJiM9dO3LvAsWLBw72OUjTYGctXV1djb21NZWSlmeSsrK9FoNOJCxlgyVV1dTW1tLXq9HqVSiZ2dHYIgUFpaiqOjI1ZWVmg0GioqKnBxcbGoQlmwYOGeoLS0tM2lvFKptEsqaX7NWAILCxYsWLBgwYIFCxYsmIwlBWXBggULFixYsGDBggWTsQQWFixYsGDBggULFixYMBlLYGHBggULFixYsGDBggWTsQQWFixYsGDBggULFixYMBlLYGHBggULFixYsGDBggWTsQQWFixYsGDBggULFixYMBlLYGHBggULFixYsGDBggWTsQQWFixYsGDBggULFixYMBlLYGHBggULFixYsGDBggWTsQQWFixYsGDBggULFixYMBlLYGHBggULFixYsGDBggWT+f+6KuRs2z5/mwAAAABJRU5ErkJggg=="
+>
+
+
+<pre>Saving as The Vishnu Purana.png
+</pre>
+
+
+
+<img src="data:image/png;base64,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"
+>
+
+
+<pre>Saving as Atharva Veda.png
+</pre>
+
+
+
+<img src="data:image/png;base64,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9WPdunV89NFH7N69Gzs7OyoqKhg0aBATJ06s97jevXvj7e3N7t27GTlyJC1btkSj0VBZWcmaNWuERau8vJx9+/ZRUlJCTk4Ox48fp7y8nAMHDiASibC0tMTLy4tWrVphbW2NRCJh6tSpZGVlsWbNGk6dOkVwcDD29vYUFhaSnJwsUMf9G71icJ1jvX///kLRmlwuryVrfyuUlpby6quvkpmZyfLly+uI6kyYMIHvv//+XnW/UezZs4fS0lIiIiJwcHBg06ZNfPnll2i1Wj777DO6d++OkZERer2e0tJSjh49KhxrUDkuKChgx44djW6cDEr169evJz09nV69ej0y4jhNwd9//80rr7xCYmIier1e8MaYmZmh0+morKzExMSErl273jV9pkKh4H//+x8JCQkCjV9zoKysjPfffx8LCwuGDh16X1Ig7gTR0dF89tlnnD9//qHIrZbJZLi4uDBhwgRGjRqFTqcT5gqZTHZbc0V9KC8v5/jx4xw/fpysrCw0Gg3W1taEhoYyePBgQZDv34TU1FR8fHz49ttvSU5OZs2aNVhaWvL0009TUlKCTCarZXQbVI0fxHgRiURIpVKCgoJ4//33eeuttwTGSMP3EolEqLNoKHKlUCho0aIFZ86cabb0nxMnTnDixAlCQkLuu8F1u1Aqlezdu5fXX3+92TWq/kPzwtHRkY4dO7JixQrWr1+Pu7s7U6ZMoVWrVgwePJh169axdOlS9Ho9H3/8MYGBgcycOZOioiJ0Oh39+/dvUjtFRUUcPHiQmJiYJtPn3gnuyLAQi8X4+vqyaNEitmzZwrp16zh9+jQqlQorKytCQkLo2bOn4MWzsrLiww8/xM3NjR07drB27VosLS157LHHePXVV9myZQspKSn1LibGxsb079+fX3/9lcWLFxMVFYVGo8HDw6PRF8XR0ZGFCxeyYMECjh49ytatWzE3N6+j1n316lWmTp0qTFwGdqoDBw4IIiU9evTgvffeE/IYbWxs+OKLL+jVqxerV68mOjqa8vJyrK2t8fPz48UXX6wj2PNvgoFD/E5haWnJH3/80eDzvV0WmObE33//jYmJCb179yYlJYUffviB/v37o1Kp+P7772nZsqXgycrIyGDChAlotdparGfx8fGMGzeu0XYMqt46nQ6FQsGkSZMeiZSbpmLDhg1cvnyZl19+mdmzZ2NjY4OX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"
+>
+
+
+<pre>Saving as Rig Veda.png
+</pre>
+
+
+
+<img src="data:image/png;base64,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mNxWs8RbIZwfgSkgUMwFVaqKigrxfCkUiiaPz8vLC2trawoLC/n666956KGHRIqSVCrtFNpbQEAApqamZGZmsn//fjEbLgT0fv311w5lHrpqfezXrx/+/v4kJSWJaoINr9udzNidOXOGN954A7lc3qxjUV5ezurVq/n00095/PHHefzxxw2y8xqNhu3bt/Ovf/2L+Ph48X1XV1dWrlzJmDFjmnRGWkKXOxYODg688MILfP/997z66qtUVVXh5eXFihUrcHNz46233mLFihWMHz+e4OBgPvzwQ15//XWDg1AoFPTt25dRo0bxxhtvIJPJWLhwodjTQqVS8cADD7Bq1SoWL16MtbU1H330kRhVXb16NZs3b6agoACtVsuoUaNwdnbmvffeo2fPnjz44IPo9XrefvttSkpKcHd3Z86cOR2+QZ5//nl27txJUlIScNPr/vzzzwkPD//baHv/lVFUVIRcLm+ktCSTyVAqldTX11NVVWXw8FlbWzNo0CD27dvHwYMHmTBhQovGrk6nY86cOTg6OvLtt9926F6qr6+noKCAM2fOkJCQIFKC+vTpg6urqxhNupMwNjZu1DW1JSgUCkJCQggJCSEuLo6kpCTuu+8+Fi5c2KXF2CkpKVhZWWFjY9Omcy84xp2F1uobVCoVEydOpH///hw6dIh9+/Zx5coVCgsL0ev12NjYEBISwqhRoxg6dGibF3CtVktRUVGnSU7KZDKCg4Nve7Gsrq5m9+7dbNu2jaSkJEpKSqirqyMrK+u2in072rlaJpMRGhraaU0RO4r09HSxiWFISAj/+te/mDx5suhAXr16lQsXLjBmzBgefPBBcf3YvXs3zz77LN9++y2DBg1iypQpdzWCbmdn16qjJpPJ0Gq1pKamsmXLFrZt28bVq1cpKyvD1NSUoKAgJk2aJEq9N2fI6/V66urquH79Onv27GHnzp0kJCRQVlaGSqUiICCAkSNHMnXqVAICAu7IPLl3716efvpp0tPTGTRoEJs2bRIVm5pDTk4O77//Pp9//jmOjo689NJLLFmypNPGVFBQwG+//UZCQgLl5eWkp6eTmpqKXC7n3XffxcPDA3Nzc8LDwxk/fnyT/RZMTU157LHH+M9//sMrr7zCl19+iYWFBdXV1fj5+bFz587bHmdYWBhTpkxh48aNzJ8/n27duiGXy8nIyMDU1JSnn36a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"
+>
+
+
+<pre>Saving as Upanisads (Patrick Olivelle).png
+</pre>
+
+
+
+<img src="data:image/png;base64,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dZYtW8bzzz9Pr169cHV1vSE1UY9hw4bdNmUrNzeXkydPii65raGtcrd3A5VKha2tLba2tri5udG7d29efvllKioqOH/+POfPn+fixYskJCSITZT3GnK5HHt7e7y9vencubP4cHd3FwNQAwMDMZD4O9Ocdu/efcd84Ye4c5iYmLTQ+O9IdKH7Cf2C+/Lly+22T3t7+5smAczNzXF1deXChQsEBAQ06/twcXHBycmJXbt2odFo8PX1bZeKBVxN7D7//PNUVFRw4MABTp8+Lfae1tbWUlZWho2NDR999BHBwcHN7gtqtZrt27dz4sQJqqqqKC8vFw3qzp8/z2OPPYalpSWmpqb4+fkxdOhQkR7n5OTEm2++SUNDA/v27WP+/PkYGRkhl8vR6XRoNBoaGhpQq9X885//vK1zUigU+Pr68u9//5tBgwaxcuVK9u/f/5dJRt5PdJzVyDWoqanht99+a3NgcerUKRISEpo916dPn2amOtdCJpPRq1cv/P39xQFbUFDA9u3bGTlyZJsXN6dOnSIuLq7ZQn/69OmtcpH1/M9evXqxc+dO4KqfxqVLl0hJScHf3/+WnycIAnv37m3VSfF2YWFhQY8ePfjzzz/JzMxEEAQOHTrElClTOHHiRLNgacKECe2SyehI0DcH66sZcFWz2svLi169eqHRaJo9qqqqKCws5MqVKxQUFFBYWEhpaSmVlZVi81V1dbXY66PRaESVCrVajVarRavVipKK+oeBgQEmJiZYWVlhY2ODtbW16APh4eGBt7c3VlZWosqEfvsHSS26FdasWcNbb71FRUUFOp2OAwcOtKo7fz2ysrLafGNraGhg27Zt/N///R9paWkYGRnx7rvvEh0dzQsvvICvry9paWksXLiQkydPEh0dzYcffoilpSVarZaVK1eSmJjIsWPHcHNzo0+fPqxevZqpU6fy4osvcvbsWb788ksuXbqEt7c3zzzzDAMGDGhTWV3/2+rN37y9vRk7dixqtZqmpiYqKyvJyMggPT2d7OxsCgoKuHLlSrPxVFdXJwpS6HS6Zr+9QqFApVJhbm6OhYUF1tbWWFlZYW1tjYODA25ubmIviJGRETKZTJTj1vsEdNSxc69wK0Wh1qDRaDh69Chff/01SUlJdOrUieeee45evXohk8morq7m22+/ZfPmzZSWluLk5MR7771H7969USgUFBcX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"
+>
+
+
+
+
+
+
+
+
+
+<div class="pj-input pj-fold fold-hide">
+<div class=" highlight hl-ipython3"><pre><span></span><span class="k">for</span> <span class="n">file</span> <span class="ow">in</span> <span class="n">file_paths</span><span class="p">:</span>
+ <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">file</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
+ <span class="n">fname</span> <span class="o">=</span> <span class="n">file</span><span class="o">.</span><span class="n">rsplit</span><span class="p">(</span><span class="s2">&quot;/&quot;</span><span class="p">,</span><span class="mi">1</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">&quot;.txt&quot;</span><span class="p">,</span><span class="s2">&quot;&quot;</span><span class="p">)</span>
+ <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;For Text </span><span class="si">{</span><span class="n">fname</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+ <span class="n">words_dict</span> <span class="o">=</span> <span class="n">create_word_cloud</span><span class="p">(</span><span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">(),</span> <span class="kc">False</span><span class="p">)</span><span class="o">.</span><span class="n">words_</span>
+ <span class="n">top_20</span> <span class="o">=</span> <span class="p">[{</span><span class="n">key</span><span class="p">:</span> <span class="n">words_dict</span><span class="p">[</span><span class="n">key</span><span class="p">]}</span> <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="nb">list</span><span class="p">(</span><span class="n">words_dict</span><span class="o">.</span><span class="n">keys</span><span class="p">())[:</span><span class="mi">20</span><span class="p">]]</span>
+ <span class="nb">print</span><span class="p">(</span><span class="n">top_20</span><span class="p">)</span>
+</pre></div>
+
+</div>
+
+<pre>For Text Mencius
+[{&#39;said&#39;: 1.0}, {&#39;mencius&#39;: 0.8666666666666667}, {&#39;people&#39;: 0.5866666666666667}, {&#39;would&#39;: 0.3466666666666667}, {&#39;king&#39;: 0.3333333333333333}, {&#39;prince&#39;: 0.3295238095238095}, {&#39;kingdom&#39;: 0.29904761904761906}, {&#39;shun&#39;: 0.21904761904761905}, {&#39;replied&#39;: 0.21714285714285714}, {&#39;great&#39;: 0.21523809523809523}, {&#39;sovereign&#39;: 0.2038095238095238}, {&#39;heaven&#39;: 0.18857142857142858}, {&#39;without&#39;: 0.18476190476190477}, {&#39;state&#39;: 0.18095238095238095}, {&#39;good&#39;: 0.17714285714285713}, {&#39;saying&#39;: 0.17142857142857143}, {&#39;could&#39;: 0.1619047619047619}, {&#39;make&#39;: 0.16}, {&#39;confucius&#39;: 0.1580952380952381}, {&#39;righteousness&#39;: 0.15619047619047619}]
+For Text Analects
+[{&#39;said&#39;: 1.0}, {&#39;master&#39;: 0.8470209339774557}, {&#39;tsze&#39;: 0.2882447665056361}, {&#39;virtue&#39;: 0.1723027375201288}, {&#39;asked&#39;: 0.16264090177133655}, {&#39;people&#39;: 0.15458937198067632}, {&#39;superior&#39;: 0.1529790660225443}, {&#39;without&#39;: 0.14170692431561996}, {&#39;kung&#39;: 0.12238325281803543}, {&#39;confucius&#39;: 0.11916264090177134}, {&#39;would&#39;: 0.1143317230273752}, {&#39;government&#39;: 0.08695652173913043}, {&#39;replied&#39;: 0.08695652173913043}, {&#39;good&#39;: 0.0853462157809984}, {&#39;things&#39;: 0.08373590982286634}, {&#39;propriety&#39;: 0.08373590982286634}, {&#39;great&#39;: 0.0821256038647343}, {&#39;three&#39;: 0.07729468599033816}, {&#39;saying&#39;: 0.07729468599033816}, {&#39;cannot&#39;: 0.07568438003220612}]
+For Text Buddhist Mahâyâna Texts
+[{&#39;buddha&#39;: 1.0}, {&#39;tath&#39;: 0.6937984496124031}, {&#39;gata&#39;: 0.6337209302325582}, {&#39;world&#39;: 0.6085271317829457}, {&#39;thus&#39;: 0.5542635658914729}, {&#39;bhagavat&#39;: 0.5406976744186046}, {&#39;beings&#39;: 0.46705426356589147}, {&#39;knowledge&#39;: 0.46511627906976744}, {&#39;subh&#39;: 0.4186046511627907}, {&#39;king&#39;: 0.4050387596899225}, {&#39;great&#39;: 0.39147286821705424}, {&#39;even&#39;: 0.38953488372093026}, {&#39;would&#39;: 0.3817829457364341}, {&#39;highest&#39;: 0.3624031007751938}, {&#39;born&#39;: 0.34689922480620156}, {&#39;perfect&#39;: 0.3372093023255814}, {&#39;called&#39;: 0.32945736434108525}, {&#39;also&#39;: 0.3178294573643411}, {&#39;good&#39;: 0.3178294573643411}, {&#39;country&#39;: 0.313953488372093}]
+For Text Tao Te Ching
+[{&#39;things&#39;: 1.0}, {&#39;great&#39;: 0.75}, {&#39;therefore&#39;: 0.7142857142857143}, {&#39;heaven&#39;: 0.6964285714285714}, {&#39;would&#39;: 0.6428571428571429}, {&#39;thus&#39;: 0.5892857142857143}, {&#39;without&#39;: 0.5714285714285714}, {&#39;people&#39;: 0.5714285714285714}, {&#39;know&#39;: 0.5535714285714286}, {&#39;sage&#39;: 0.5535714285714286}, {&#39;state&#39;: 0.5}, {&#39;place&#39;: 0.375}, {&#39;name&#39;: 0.3392857142857143}, {&#39;world&#39;: 0.32142857142857145}, {&#39;shall&#39;: 0.30357142857142855}, {&#39;life&#39;: 0.30357142857142855}, {&#39;knows&#39;: 0.30357142857142855}, {&#39;death&#39;: 0.30357142857142855}, {&#39;earth&#39;: 0.2857142857142857}, {&#39;skilful&#39;: 0.2857142857142857}]
+For Text The Mahabharata of Krishna-Dwaipayana Vyasa
+[{&#39;king&#39;: 1.0}, {&#39;said&#39;: 0.9257425742574258}, {&#39;great&#39;: 0.7838283828382838}, {&#39;unto&#39;: 0.655940594059406}, {&#39;also&#39;: 0.5882838283828383}, {&#39;shall&#39;: 0.5173267326732673}, {&#39;continued&#39;: 0.4438943894389439}, {&#39;thus&#39;: 0.382013201320132}, {&#39;upon&#39;: 0.35148514851485146}, {&#39;sons&#39;: 0.3457095709570957}, {&#39;became&#39;: 0.34075907590759075}, {&#39;brahmana&#39;: 0.32425742574257427}, {&#39;monarch&#39;: 0.3226072607260726}, {&#39;therefore&#39;: 0.3217821782178218}, {&#39;race&#39;: 0.30528052805280526}, {&#39;parva&#39;: 0.30363036303630364}, {&#39;earth&#39;: 0.29455445544554454}, {&#39;arjuna&#39;: 0.29372937293729373}, {&#39;even&#39;: 0.29125412541254125}, {&#39;pandavas&#39;: 0.2887788778877888}]
+For Text Yajur Veda
+[{&#39;verily&#39;: 1.0}, {&#39;agni&#39;: 0.5768747381650607}, {&#39;sacrifice&#39;: 0.576036866359447}, {&#39;gods&#39;: 0.5383326351068286}, {&#39;hail&#39;: 0.375366568914956}, {&#39;indra&#39;: 0.34059488898198576}, {&#39;says&#39;: 0.33640552995391704}, {&#39;cattle&#39;: 0.26476749057394217}, {&#39;soma&#39;: 0.2618349392542941}, {&#39;world&#39;: 0.22706325932132385}, {&#39;strength&#39;: 0.2220360284876414}, {&#39;earth&#39;: 0.2107247591118559}, {&#39;offspring&#39;: 0.20276497695852536}, {&#39;food&#39;: 0.1977377461248429}, {&#39;fire&#39;: 0.19480519480519481}, {&#39;support&#39;: 0.19396732299958105}, {&#39;therefore&#39;: 0.18852115626309174}, {&#39;sacrificer&#39;: 0.16338500209467952}, {&#39;power&#39;: 0.16129032258064516}, {&#39;prajapati&#39;: 0.15374947633012148}]
+For Text The Upanishads (Part 1)
+[{&#39;self&#39;: 1.0}, {&#39;brahman&#39;: 0.954233409610984}, {&#39;upanishads&#39;: 0.8649885583524027}, {&#39;said&#39;: 0.8375286041189931}, {&#39;sacred&#39;: 0.8352402745995423}, {&#39;thus&#39;: 0.7917620137299771}, {&#39;breath&#39;: 0.7116704805491991}, {&#39;therefore&#39;: 0.6819221967963387}, {&#39;part&#39;: 0.6613272311212814}, {&#39;upanishad&#39;: 0.6544622425629291}, {&#39;speech&#39;: 0.6384439359267735}, {&#39;food&#39;: 0.6155606407322655}, {&#39;first&#39;: 0.6064073226544623}, {&#39;world&#39;: 0.6041189931350115}, {&#39;texts&#39;: 0.5995423340961098}, {&#39;knows&#39;: 0.597254004576659}, {&#39;ller&#39;: 0.5766590389016019}, {&#39;khanda&#39;: 0.5217391304347826}, {&#39;body&#39;: 0.5194508009153318}, {&#39;veda&#39;: 0.4965675057208238}]
+For Text The Upanishads (Part 2)
+[{&#39;brahman&#39;: 1.0}, {&#39;self&#39;: 0.9639175257731959}, {&#39;said&#39;: 0.9020618556701031}, {&#39;upanishad&#39;: 0.4879725085910653}, {&#39;fire&#39;: 0.4639175257731959}, {&#39;thus&#39;: 0.46048109965635736}, {&#39;world&#39;: 0.46048109965635736}, {&#39;avalkya&#39;: 0.44329896907216493}, {&#39;food&#39;: 0.41408934707903783}, {&#39;body&#39;: 0.4020618556701031}, {&#39;knows&#39;: 0.37628865979381443}, {&#39;mind&#39;: 0.37628865979381443}, {&#39;therefore&#39;: 0.3642611683848797}, {&#39;called&#39;: 0.3556701030927835}, {&#39;upanishads&#39;: 0.3539518900343643}, {&#39;breath&#39;: 0.3402061855670103}, {&#39;knowledge&#39;: 0.3384879725085911}, {&#39;know&#39;: 0.31443298969072164}, {&#39;person&#39;: 0.3127147766323024}, {&#39;without&#39;: 0.3006872852233677}]
+For Text The Vishnu Purana
+[{&#39;vishn&#39;: 1.0}, {&#39;upon&#39;: 0.838107098381071}, {&#39;krishn&#39;: 0.8306351183063512}, {&#39;also&#39;: 0.7870485678704857}, {&#39;sons&#39;: 0.709838107098381}, {&#39;gods&#39;: 0.7023661270236613}, {&#39;gavata&#39;: 0.6911581569115816}, {&#39;brahm&#39;: 0.6861768368617683}, {&#39;prince&#39;: 0.6189290161892902}, {&#39;earth&#39;: 0.6052303860523038}, {&#39;said&#39;: 0.6002490660024906}, {&#39;first&#39;: 0.5317559153175592}, {&#39;people&#39;: 0.5280199252801993}, {&#39;world&#39;: 0.5205479452054794}, {&#39;thus&#39;: 0.5193026151930261}, {&#39;king&#39;: 0.5130759651307597}, {&#39;hari&#39;: 0.5080946450809465}, {&#39;called&#39;: 0.5056039850560399}, {&#39;text&#39;: 0.5006226650062267}, {&#39;three&#39;: 0.48194271481942713}]
+For Text Atharva Veda
+[{&#39;indra&#39;: 1.0}, {&#39;earth&#39;: 0.4840764331210191}, {&#39;gods&#39;: 0.47770700636942676}, {&#39;heaven&#39;: 0.4681528662420382}, {&#39;agni&#39;: 0.39331210191082805}, {&#39;soma&#39;: 0.33121019108280253}, {&#39;lord&#39;: 0.28821656050955413}, {&#39;mighty&#39;: 0.25796178343949044}, {&#39;away&#39;: 0.25477707006369427}, {&#39;waters&#39;: 0.2531847133757962}, {&#39;sacrifice&#39;: 0.2484076433121019}, {&#39;life&#39;: 0.2372611464968153}, {&#39;strength&#39;: 0.2340764331210191}, {&#39;thine&#39;: 0.22452229299363058}, {&#39;wealth&#39;: 0.21656050955414013}, {&#39;power&#39;: 0.21496815286624205}, {&#39;fathers&#39;: 0.20382165605095542}, {&#39;great&#39;: 0.1926751592356688}, {&#39;light&#39;: 0.18949044585987262}, {&#39;made&#39;: 0.18630573248407642}]
+For Text Rig Veda
+[{&#39;indra&#39;: 1.0}, {&#39;agni&#39;: 0.6608187134502924}, {&#39;soma&#39;: 0.520811833505332}, {&#39;gods&#39;: 0.5122119023047815}, {&#39;heaven&#39;: 0.391812865497076}, {&#39;mighty&#39;: 0.31922944616443066}, {&#39;wealth&#39;: 0.3126934984520124}, {&#39;earth&#39;: 0.27588579291365667}, {&#39;forth&#39;: 0.27485380116959063}, {&#39;strength&#39;: 0.2741658066735466}, {&#39;strong&#39;: 0.2518059855521156}, {&#39;lord&#39;: 0.24939800481596147}, {&#39;bring&#39;: 0.2301341589267286}, {&#39;great&#39;: 0.22256621947024424}, {&#39;sacrifice&#39;: 0.21981424148606812}, {&#39;praise&#39;: 0.21327829377364982}, {&#39;give&#39;: 0.20983832129342966}, {&#39;varu&#39;: 0.19951840385276917}, {&#39;holy&#39;: 0.19676642586859305}, {&#39;might&#39;: 0.19642242862057105}]
+For Text Upanisads (Patrick Olivelle)
+[{&#39;self&#39;: 1.0}, {&#39;brahman&#39;: 0.92914653784219}, {&#39;world&#39;: 0.9210950080515298}, {&#39;breath&#39;: 0.7471819645732689}, {&#39;fire&#39;: 0.7471819645732689}, {&#39;food&#39;: 0.6038647342995169}, {&#39;also&#39;: 0.6022544283413849}, {&#39;person&#39;: 0.5909822866344605}, {&#39;body&#39;: 0.5813204508856683}, {&#39;gods&#39;: 0.5314009661835749}, {&#39;within&#39;: 0.4895330112721417}, {&#39;knows&#39;: 0.48148148148148145}, {&#39;speech&#39;: 0.4428341384863124}, {&#39;mind&#39;: 0.4428341384863124}, {&#39;term&#39;: 0.43156199677938806}, {&#39;three&#39;: 0.40418679549114334}, {&#39;said&#39;: 0.3993558776167472}, {&#39;death&#39;: 0.38164251207729466}, {&#39;becomes&#39;: 0.37359098228663445}, {&#39;chant&#39;: 0.3687600644122383}]
+</pre>
+
+
+<h2 id="Textual-Similarity">Textual Similarity<a class="anchor-link" href="#Textual-Similarity">&#182;</a></h2>
+
+
+
+
+
+
+<div class="pj-input pj-fold fold-hide">
+<div class=" highlight hl-ipython3"><pre><span></span><span class="n">documents</span> <span class="o">=</span> <span class="p">[]</span>
+<span class="n">file_names</span> <span class="o">=</span> <span class="p">[]</span>
+
+<span class="n">stop_words</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span><span class="n">stopwords</span><span class="o">.</span><span class="n">words</span><span class="p">(</span><span class="s1">&#39;english&#39;</span><span class="p">))</span>
+
+<span class="k">def</span> <span class="nf">preprocess</span><span class="p">(</span><span class="n">document</span><span class="p">):</span>
+ <span class="n">tokens</span> <span class="o">=</span> <span class="n">word_tokenize</span><span class="p">(</span><span class="n">document</span><span class="o">.</span><span class="n">lower</span><span class="p">())</span>
+ <span class="n">filtered_tokens</span> <span class="o">=</span> <span class="p">[</span><span class="n">word</span> <span class="k">for</span> <span class="n">word</span> <span class="ow">in</span> <span class="n">tokens</span> <span class="k">if</span> <span class="n">word</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">stop_words</span> <span class="ow">and</span> <span class="n">word</span><span class="o">.</span><span class="n">isalpha</span><span class="p">()]</span>
+ <span class="k">return</span> <span class="s2">&quot; &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">filtered_tokens</span><span class="p">)</span>
+
+<span class="k">for</span> <span class="n">file_path</span> <span class="ow">in</span> <span class="n">file_paths</span><span class="p">:</span>
+ <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">file_path</span><span class="p">,</span> <span class="s1">&#39;r&#39;</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">&#39;utf-8&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">file</span><span class="p">:</span>
+ <span class="n">content</span> <span class="o">=</span> <span class="n">file</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
+ <span class="n">documents</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">preprocess</span><span class="p">(</span><span class="n">content</span><span class="p">))</span>
+ <span class="n">file_names</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">file_path</span><span class="p">)</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">&quot;.txt&quot;</span><span class="p">,</span><span class="s2">&quot;&quot;</span><span class="p">))</span>
+
+<span class="n">vectorizer</span> <span class="o">=</span> <span class="n">TfidfVectorizer</span><span class="p">()</span>
+<span class="n">tfidf_matrix</span> <span class="o">=</span> <span class="n">vectorizer</span><span class="o">.</span><span class="n">fit_transform</span><span class="p">(</span><span class="n">documents</span><span class="p">)</span>
+<span class="n">cosine_sim_matrix</span> <span class="o">=</span> <span class="n">cosine_similarity</span><span class="p">(</span><span class="n">tfidf_matrix</span><span class="p">)</span>
+<span class="n">similarity_df</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span class="p">(</span><span class="n">cosine_sim_matrix</span><span class="p">,</span> <span class="n">index</span><span class="o">=</span><span class="n">file_names</span><span class="p">,</span> <span class="n">columns</span><span class="o">=</span><span class="n">file_names</span><span class="p">)</span>
+</pre></div>
+
+</div>
+
+
+
+
+
+
+<div class="pj-input pj-fold fold-hide">
+<div class=" highlight hl-ipython3"><pre><span></span><span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">8</span><span class="p">))</span>
+<span class="n">sns</span><span class="o">.</span><span class="n">heatmap</span><span class="p">(</span><span class="n">similarity_df</span><span class="p">,</span> <span class="n">annot</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">fmt</span><span class="o">=</span><span class="s2">&quot;.2f&quot;</span><span class="p">,</span> <span class="n">cmap</span><span class="o">=</span><span class="s2">&quot;coolwarm&quot;</span><span class="p">,</span> <span class="n">cbar</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s1">&#39;Cosine Similarity Matrix&#39;</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">xticks</span><span class="p">(</span><span class="n">rotation</span><span class="o">=</span><span class="mi">45</span><span class="p">,</span> <span class="n">ha</span><span class="o">=</span><span class="s1">&#39;right&#39;</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">yticks</span><span class="p">(</span><span class="n">rotation</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">()</span>
+<span class="c1">#plt.show()</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">savefig</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">assets_path</span><span class="p">,</span> <span class="s2">&quot;cosine-similarity-matrix.png&quot;</span><span class="p">))</span>
+</pre></div>
+
+</div>
+
+
+
+<img src="data:image/png;base64,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bSSTyWj27Nk0ZcoUcnZ2prZt24r788c8adIkqlixIiUmJqosvuKkpaXRs2fPSC6X06BBg2jQoEHi96mHhwcJgkBt27al9PR0lcTz6NEjsrW1pdGjR4tDTHJycmjPnj30/PlziomJobp169Lo0aOJiGjv3r0kCAI1a9ZMpefm27dvycjIiJo2bUpv3rwRt7948YICAwPp2bNnVKVKFVqzZg0REf32228klUrJxMSELl26pLI485s2bRpZW1tTr169yM3NjSwsLGjnzp1KvZu2bdtGHTt2pOjoaLXEyFSPE1zGGPsEXb16lRo3bkyBgYFERLRjxw765ptvaN68efTy5UsiUowxatq0KR06dEilsb169Yp69uxJjx8/FivqXl5e9PbtW+rRowfVrVuXRo4cSVeuXCEiovv371PdunUpKChIpXF6eXlR9erVaenSpTR+/HgSBIECAgKISNG9du7cubR//36KiooiIqLg4GCqU6eO2OVWFYrrYhcbG0sVKlSgvn37Km2/e/cujR07lrp06UL29vZi4quqGDdt2kQ//PADvX37Vtx28+ZNcnFxodDQUCIi8vPzo1GjRtG5c+fESqaqXLhwgWxtbWno0KH04MEDpX2bNm2i9u3biwnYwYMHadSoUTRjxgzxRoIq+Pj4UKNGjWjy5MnUoUMHsrCwUEp6chXsZjlx4kSVxUhEdP36dbKzs6M9e/aI286dO0dOTk707NkzcVv+mD08PGjVqlWqDFM8ThEREZSYmCje0CJSdK12d3dXimny5Ml0+/Zt8XtUVTZs2ED16tWjcePG0dOnT4ko79gdOHCA3Nzc6NWrV0Sk6O7frl07cnV1FbepSnBwMDk5OVHjxo0pJCREad+mTZuoRYsWlJycTERER44coe7du9O6detUeg3l2rdvH1laWopd+K9evUqCINDx48eVysXExJCdnR1t3bpV5TEy9eAElzHGPkHh4eFkbm5OzZo1EysZ+Su8OTk5NH/+fKpcubLKK0CvXr0iBwcHqlu3LmlpaSmNuc3IyBATxlxz586lOnXqqOXu+bx586h8+fKkp6dXaLKe3OOZnZ1NsbGx1LlzZ2revLnKKmr5P8/NmzfTmDFjaOXKlWKL+IkTJ6hcuXLUpUsXevjwId2/f586dOhAX3/9NSUkJJCmpibt3r1bJbESEU2fPp0qVKhA27dvVxpr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MWPGYNasWWjQoAHat2+PXbt2oUGDBkhISNDa/0vDkZncEhEREWVOTHCJ6Ltz7949HDx4ENu3b8fgwYORL18+xMfHw9PTE0ZGRsp+HMBCRERE9H1hgktE352wsDBERkaiTp062Lt3Lzp16gRvb28MGDAA0dHR+PXXX6FWq1lMioiIiOg7wwSXiDK1L1VJtrOzQ9myZfHzzz+jU6dO+OWXX9C3b18AwP3797F//37cuXNHJ/ESERER0bfDBJeIMq3k5GStXtjk5GQAgImJCSIjI+Hl5YWRI0eiT58+AIDY2FhMmTIFycnJKFeunE5iJiIiIqJvh1WUiSjTCQwMRMmSJZXf582bh6tXryI5ORnDhw9HjRo18PTpU9SsWRMODg6oU6cOrKyssHnzZoSFheH69eswNDTUqrhMRERERJkfW3ZElKn4+vrCwcEB58+fBwBMmTIF3t7eMDMzQ3h4OGrXro1NmzahSJEiOHXqFKysrLBjxw5s3boVRYsWxY0bN2BoaIikpCQmt0RERETfGQNdB0BE9L9o0aIFAgMD4eLigiNHjgAAdu7ciVq1aiE2NhZTp05F165doVar0blzZ6xduxaJiYnQ19dHtmzZAABJSUkwMODtj4iIiOh7wxYeEWUaGzduxKNHjzBu3DhERUWhQYMGsLGxgaurKwAgR44cmD59OgCgR48eMDAwgLu7OwwNDZVjiAiTWyIiIqLvFFt5RJQprFy5Ev369cOhQ4dga2uL+fPnI3fu3Fi8eDGCg4MBAGq1GoaGhpgxYwb09fXh4eGBfPnyoWHDhspxuDQQERER0feLRaaIKMPz9/dHz549sXv3bqW3FgBCQkLg5eWFbdu24bfffkONGjUgIlCpVEhMTMSaNWvQq1cv9tgSERERZRFMcIkoQ/Pz80OPHj3www8/4OjRowC059CGhoZi+PDh2LVrF44ePaqV5KbinFsiIiKirIElRIkow1q1ahV69uyJnj174t69exg6dCgAwMDAAElJSQCAfPnywcfHBz/++COaNm2KU6dOpRmGzOSWiIiIKGtgDy4RZUi+vr4YPnw4Dhw4gKZNm2LFihWYMGECPDw8sGDBAgDaPbNhYWHo1q0b4uLicOzYMV2GTkREREQ6wgSXiDKk06dPIzg4GO7u7gCAyMhIBAQEYPz48X+Z5EZGRsLU1JTr2xIRERFlURy3R0QZUt26dQFAmU9rbm6uJLvjx48HACxYsAAGBgZITEyEoaEhzM3NAaRUU2aSS0RERJT1MMElogxNcz6tmZmZkuROmDABenp68PHx0VrnFgCTWyIiIqIsigkuEWUqqUmuSqVC3759UbhwYaX4FBERERFlbZyDS0SZUkREBE6fPo3mzZtDX19f1+EQERERUQbABJeIMj2uc0tEREREABNcIiIiIiIi+k6wEgsRERERERF9F5jgEhERERER0XeBCS4RERERERF9F5jgEhERERER0XeBCS4RERERERF9F5jgEhERERER0XeBCS4RERERERF9F5jgEhERERER0XeBCS4RERERERF9F5jgEhERERER0XeBCS4RERERERF9F5jgEhERERER0Xfh/wBOrXzPZ/7ruAAAAABJRU5ErkJggg=="
+>
+
+
+
+<h2 id="Thematic-Similarity">Thematic Similarity<a class="anchor-link" href="#Thematic-Similarity">&#182;</a></h2>
+
+
+
+
+
+
+<div class="pj-input pj-fold fold-hide">
+<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">clean_text</span><span class="p">(</span><span class="n">text</span><span class="p">):</span>
+ <span class="n">text</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;\s+&#39;</span><span class="p">,</span> <span class="s1">&#39; &#39;</span><span class="p">,</span> <span class="n">text</span><span class="p">)</span>
+ <span class="n">text</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;\[.*?\]&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">text</span><span class="p">)</span>
+ <span class="n">text</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39; +&#39;</span><span class="p">,</span> <span class="s1">&#39; &#39;</span><span class="p">,</span> <span class="n">text</span><span class="p">)</span>
+ <span class="k">return</span> <span class="n">text</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
+
+<span class="k">def</span> <span class="nf">load_and_tokenize</span><span class="p">(</span><span class="n">path</span><span class="p">):</span>
+ <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="s1">&#39;r&#39;</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">&#39;utf-8&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">file</span><span class="p">:</span>
+ <span class="n">text</span> <span class="o">=</span> <span class="n">file</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
+ <span class="n">cleaned_text</span> <span class="o">=</span> <span class="n">clean_text</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
+ <span class="n">sentences</span> <span class="o">=</span> <span class="n">sent_tokenize</span><span class="p">(</span><span class="n">cleaned_text</span><span class="p">)</span>
+ <span class="n">merged_sentences</span> <span class="o">=</span> <span class="p">[]</span>
+ <span class="k">for</span> <span class="n">sentence</span> <span class="ow">in</span> <span class="n">sentences</span><span class="p">:</span>
+ <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">sentence</span><span class="o">.</span><span class="n">split</span><span class="p">())</span> <span class="o">&lt;=</span> <span class="mi">3</span><span class="p">:</span>
+ <span class="k">continue</span>
+ <span class="n">merged_sentences</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">sentence</span><span class="p">)</span>
+ <span class="k">return</span> <span class="n">merged_sentences</span>
+</pre></div>
+
+</div>
+
+
+
+
+
+
+<div class="pj-input pj-fold fold-hide">
+<div class=" highlight hl-ipython3"><pre><span></span><span class="n">model</span> <span class="o">=</span> <span class="n">SentenceTransformer</span><span class="p">(</span><span class="s1">&#39;all-MiniLM-L6-v2&#39;</span><span class="p">,</span> <span class="n">device</span><span class="o">=</span><span class="s2">&quot;mps&quot;</span><span class="p">)</span> <span class="c1"># Metal!!!!</span>
+</pre></div>
+
+</div>
+
+
+
+
+
+
+<div class="pj-input pj-fold fold-hide">
+<div class=" highlight hl-ipython3"><pre><span></span><span class="n">documents</span> <span class="o">=</span> <span class="p">{}</span>
+
+<span class="k">for</span> <span class="n">file_path</span> <span class="ow">in</span> <span class="n">file_paths</span><span class="p">:</span>
+ <span class="n">school</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="n">file_path</span><span class="p">))</span>
+ <span class="k">if</span> <span class="n">school</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">documents</span><span class="p">:</span>
+ <span class="n">documents</span><span class="p">[</span><span class="n">school</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
+ <span class="n">fname</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">file_path</span><span class="p">)</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">&quot;.txt&quot;</span><span class="p">,</span><span class="s2">&quot;&quot;</span><span class="p">)</span>
+ <span class="n">documents</span><span class="p">[</span><span class="n">school</span><span class="p">][</span><span class="n">fname</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
+ <span class="n">sentences</span> <span class="o">=</span> <span class="n">load_and_tokenize</span><span class="p">(</span><span class="n">file_path</span><span class="p">)</span>
+ <span class="n">documents</span><span class="p">[</span><span class="n">school</span><span class="p">][</span><span class="n">fname</span><span class="p">][</span><span class="s2">&quot;sentences&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">sentences</span>
+ <span class="n">documents</span><span class="p">[</span><span class="n">school</span><span class="p">][</span><span class="n">fname</span><span class="p">][</span><span class="s2">&quot;embeddings&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">model</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span><span class="n">sentences</span><span class="p">,</span> <span class="n">batch_size</span><span class="o">=</span><span class="mi">32</span><span class="p">,</span> <span class="n">show_progress_bar</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</pre></div>
+
+</div>
+
+
+
+
+
+
+<div class="pj-input pj-fold fold-hide">
+<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">sklearn.metrics.pairwise</span> <span class="kn">import</span> <span class="n">cosine_similarity</span>
+<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
+
+<span class="k">def</span> <span class="nf">compute_top_pairs_optimized</span><span class="p">(</span><span class="n">documents</span><span class="p">):</span>
+ <span class="n">results</span> <span class="o">=</span> <span class="p">[]</span>
+ <span class="n">computed_pairs</span> <span class="o">=</span> <span class="nb">set</span><span class="p">()</span>
+
+ <span class="k">for</span> <span class="n">school1</span><span class="p">,</span> <span class="n">texts1</span> <span class="ow">in</span> <span class="n">documents</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+ <span class="c1"># if school1 == &quot;Hinduism&quot;:</span>
+ <span class="c1"># continue</span>
+ <span class="k">for</span> <span class="n">doc1</span><span class="p">,</span> <span class="n">data1</span> <span class="ow">in</span> <span class="n">texts1</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+ <span class="k">for</span> <span class="n">school2</span><span class="p">,</span> <span class="n">texts2</span> <span class="ow">in</span> <span class="n">documents</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+ <span class="c1"># if school2 == &quot;Hinduism&quot;:</span>
+ <span class="c1"># continue</span>
+ <span class="k">if</span> <span class="n">school1</span> <span class="o">!=</span> <span class="n">school2</span><span class="p">:</span> <span class="c1"># Only compare documents from different schools</span>
+ <span class="k">for</span> <span class="n">doc2</span><span class="p">,</span> <span class="n">data2</span> <span class="ow">in</span> <span class="n">texts2</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+ <span class="c1"># Ensure each pair is only computed once</span>
+ <span class="k">if</span> <span class="p">(</span><span class="n">doc1</span><span class="p">,</span> <span class="n">doc2</span><span class="p">)</span> <span class="ow">in</span> <span class="n">computed_pairs</span> <span class="ow">or</span> <span class="p">(</span><span class="n">doc2</span><span class="p">,</span> <span class="n">doc1</span><span class="p">)</span> <span class="ow">in</span> <span class="n">computed_pairs</span><span class="p">:</span>
+ <span class="k">continue</span>
+ <span class="n">computed_pairs</span><span class="o">.</span><span class="n">add</span><span class="p">((</span><span class="n">doc1</span><span class="p">,</span> <span class="n">doc2</span><span class="p">))</span>
+
+ <span class="c1"># Compute cosine similarities</span>
+ <span class="n">similarities</span> <span class="o">=</span> <span class="n">cosine_similarity</span><span class="p">(</span><span class="n">data1</span><span class="p">[</span><span class="s2">&quot;embeddings&quot;</span><span class="p">],</span> <span class="n">data2</span><span class="p">[</span><span class="s2">&quot;embeddings&quot;</span><span class="p">])</span>
+ <span class="n">top_pairs</span> <span class="o">=</span> <span class="p">[]</span> <span class="c1"># To keep the top 5 scores for the current document pair</span>
+
+ <span class="c1"># Process similarities to keep only top 5</span>
+ <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">similarities</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]):</span>
+ <span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">similarities</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">1</span><span class="p">]):</span>
+ <span class="n">score</span> <span class="o">=</span> <span class="n">similarities</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="n">j</span><span class="p">]</span>
+ <span class="c1"># Maintain only top 5 pairs using a sorted insertion strategy</span>
+ <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">top_pairs</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mi">5</span><span class="p">:</span>
+ <span class="n">top_pairs</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">score</span><span class="p">,</span> <span class="n">i</span><span class="p">,</span> <span class="n">j</span><span class="p">,</span> <span class="n">doc1</span><span class="p">,</span> <span class="n">doc2</span><span class="p">,</span> <span class="n">data1</span><span class="p">[</span><span class="s2">&quot;sentences&quot;</span><span class="p">][</span><span class="n">i</span><span class="p">],</span> <span class="n">data2</span><span class="p">[</span><span class="s2">&quot;sentences&quot;</span><span class="p">][</span><span class="n">j</span><span class="p">]))</span>
+ <span class="n">top_pairs</span><span class="o">.</span><span class="n">sort</span><span class="p">(</span><span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
+ <span class="k">elif</span> <span class="n">score</span> <span class="o">&gt;</span> <span class="n">top_pairs</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">]:</span>
+ <span class="n">top_pairs</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">score</span><span class="p">,</span> <span class="n">i</span><span class="p">,</span> <span class="n">j</span><span class="p">,</span> <span class="n">doc1</span><span class="p">,</span> <span class="n">doc2</span><span class="p">,</span> <span class="n">data1</span><span class="p">[</span><span class="s2">&quot;sentences&quot;</span><span class="p">][</span><span class="n">i</span><span class="p">],</span> <span class="n">data2</span><span class="p">[</span><span class="s2">&quot;sentences&quot;</span><span class="p">][</span><span class="n">j</span><span class="p">])</span>
+ <span class="n">top_pairs</span><span class="o">.</span><span class="n">sort</span><span class="p">(</span><span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
+
+ <span class="c1"># Append sorted top pairs to the results</span>
+ <span class="k">for</span> <span class="n">score</span><span class="p">,</span> <span class="n">idx1</span><span class="p">,</span> <span class="n">idx2</span><span class="p">,</span> <span class="n">doc1</span><span class="p">,</span> <span class="n">doc2</span><span class="p">,</span> <span class="n">text1</span><span class="p">,</span> <span class="n">text2</span> <span class="ow">in</span> <span class="n">top_pairs</span><span class="p">:</span>
+ <span class="n">result</span> <span class="o">=</span> <span class="p">{</span>
+ <span class="s2">&quot;score&quot;</span><span class="p">:</span> <span class="n">score</span><span class="p">,</span>
+ <span class="s2">&quot;text1&quot;</span><span class="p">:</span> <span class="n">text1</span><span class="p">,</span>
+ <span class="s2">&quot;doc1&quot;</span><span class="p">:</span> <span class="n">doc1</span><span class="p">,</span>
+ <span class="s2">&quot;text2&quot;</span><span class="p">:</span> <span class="n">text2</span><span class="p">,</span>
+ <span class="s2">&quot;doc2&quot;</span><span class="p">:</span> <span class="n">doc2</span>
+ <span class="p">}</span>
+ <span class="n">results</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
+ <span class="k">return</span> <span class="n">results</span>
+</pre></div>
+
+</div>
+
+
+
+
+
+
+<div class="pj-input pj-fold fold-hide">
+<div class=" highlight hl-ipython3"><pre><span></span><span class="n">top_pairs</span> <span class="o">=</span> <span class="n">compute_top_pairs_optimized</span><span class="p">(</span><span class="n">documents</span><span class="p">)</span>
+<span class="n">prev_doc</span> <span class="o">=</span> <span class="kc">None</span>
+<span class="n">sub_doc</span> <span class="o">=</span> <span class="kc">None</span>
+<span class="k">for</span> <span class="n">pair</span> <span class="ow">in</span> <span class="n">top_pairs</span><span class="p">:</span>
+ <span class="k">if</span> <span class="n">prev_doc</span> <span class="o">!=</span> <span class="n">pair</span><span class="p">[</span><span class="s2">&quot;doc1&quot;</span><span class="p">]:</span>
+ <span class="k">if</span> <span class="n">prev_doc</span> <span class="o">!=</span> <span class="kc">None</span><span class="p">:</span> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;--------------------------&quot;</span><span class="p">)</span>
+ <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;For the text `</span><span class="si">{</span><span class="n">pair</span><span class="p">[</span><span class="s1">&#39;doc1&#39;</span><span class="p">]</span><span class="si">}</span><span class="s2">`:&quot;</span><span class="p">)</span>
+ <span class="k">if</span> <span class="n">sub_doc</span> <span class="o">!=</span> <span class="n">pair</span><span class="p">[</span><span class="s1">&#39;doc2&#39;</span><span class="p">]:</span>
+ <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Compared with </span><span class="si">{</span><span class="n">pair</span><span class="p">[</span><span class="s1">&#39;doc2&#39;</span><span class="p">]</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+ <span class="n">sub_doc</span> <span class="o">=</span> <span class="n">pair</span><span class="p">[</span><span class="s2">&quot;doc2&quot;</span><span class="p">]</span>
+ <span class="n">prev_doc</span> <span class="o">=</span> <span class="n">pair</span><span class="p">[</span><span class="s1">&#39;doc1&#39;</span><span class="p">]</span>
+ <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Original sentence: </span><span class="si">{</span><span class="n">pair</span><span class="p">[</span><span class="s1">&#39;text1&#39;</span><span class="p">]</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+ <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Similar sentence `</span><span class="si">{</span><span class="n">pair</span><span class="p">[</span><span class="s1">&#39;text2&#39;</span><span class="p">]</span><span class="si">}</span><span class="s2">` found in </span><span class="si">{</span><span class="n">pair</span><span class="p">[</span><span class="s1">&#39;doc2&#39;</span><span class="p">]</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+ <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Similarity score: </span><span class="si">{</span><span class="n">pair</span><span class="p">[</span><span class="s1">&#39;score&#39;</span><span class="p">]</span><span class="si">:</span><span class="s2">.4f</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</pre></div>
+
+</div>
+
+<pre>For the text `Mencius`:
+Compared with Buddhist Mahâyâna Texts
+Original sentence: The king, after all, is one who may be made to do what is good.
+Similar sentence `&#39;Since to be a king involves a wider range of command, therefore the pains of a king are great; for a king is like a peg,--he endures trouble for the sake of the world.` found in Buddhist Mahâyâna Texts
+Similarity score: 0.7040
+Original sentence: The king came to visit him, and said, &#39;Formerly, I wished to see you, but in vain.
+Similar sentence `The king himself, folding his hands, with a sudden longing come upon him, replied, &#39;Thou art obtaining thy desire without hindrance; when thou hast at last accomplished all that thou hast to do, thou shalt show hereafter thy favour towards me.&#39;` found in Buddhist Mahâyâna Texts
+Similarity score: 0.6879
+Original sentence: &#39;If he can give full development to the real feeling of dislike with which he receives the salutation, &#34;Thou,&#34; &#34;Thou,&#34; he will act righteously in all places and circumstances.
+Similar sentence `&#39;And yet thou, a young man, possessed of strength and beauty, despisest enjoyments which rightly belong to thee, and to which the whole world is devoted.&#39;` found in Buddhist Mahâyâna Texts
+Similarity score: 0.6868
+Original sentence: The king was pleased, and said, &#39;It is said in the Book of Poetry, &#34;The minds of others, I am able by reflection to measure;&#34; -- this is verified, my Master, in your discovery of my motive.
+Similar sentence `&#39;&#34;Know that all these great kings who were householders were well skilled in attaining the merit which leads to final bliss,--do thou also therefore obtain both simultaneously--royal magnificence and the control over the mind.` found in Buddhist Mahâyâna Texts
+Similarity score: 0.6846
+Original sentence: &#39;What belongs by his nature to the superior man are benevolence, righteousness, propriety, and knowledge.
+Similar sentence `&#39;Through the merits of good theories virtuous men, who understand noble knowledge, go to heavenly worlds, from their self-restraint as regards body, speech, and thought.` found in Buddhist Mahâyâna Texts
+Similarity score: 0.6844
+Compared with Tao Te Ching
+Original sentence: He who stands in awe of Heaven, will affect with his love and protection his own kingdom.
+Similar sentence `Heaven will save its possessor, by his (very) gentleness protecting him.` found in Tao Te Ching
+Similarity score: 0.7689
+Original sentence: The influence of a mere sage does the same.
+Similar sentence `Therefore the sage, while he never does what is great, is able on that account to accomplish the greatest things.` found in Tao Te Ching
+Similarity score: 0.7660
+Original sentence: He who delights in Heaven, will affect with his love and protection the whole kingdom.
+Similar sentence `Heaven will save its possessor, by his (very) gentleness protecting him.` found in Tao Te Ching
+Similarity score: 0.7489
+Original sentence: The words should all be necessarily sincere, not with any desire to do what is right.
+Similar sentence `81 Sincere words are not fine; fine words are not sincere.` found in Tao Te Ching
+Similarity score: 0.7283
+Original sentence: The influence of a mere sage does the same.
+Similar sentence `Hence the sage puts away excessive effort, extravagance, and easy indulgence.` found in Tao Te Ching
+Similarity score: 0.7244
+Compared with The Mahabharata of Krishna-Dwaipayana Vyasa
+Original sentence: He who respects others is constantly respected by them.
+Similar sentence `He is respected by us all.` found in The Mahabharata of Krishna-Dwaipayana Vyasa
+Similarity score: 0.7956
+Original sentence: &#39;The king said, &#34;Do not fear.
+Similar sentence `Having said this, he smiled a little and again said, &#34;Fear not for thy life, brave king!` found in The Mahabharata of Krishna-Dwaipayana Vyasa
+Similarity score: 0.7717
+Original sentence: The king replied, &#39;No.
+Similar sentence `The king answered, &#34;Be it so.&#34;` found in The Mahabharata of Krishna-Dwaipayana Vyasa
+Similarity score: 0.7674
+Original sentence: The king replied, &#39;Oh!
+Similar sentence `The king answered, &#34;Be it so.&#34;` found in The Mahabharata of Krishna-Dwaipayana Vyasa
+Similarity score: 0.7644
+Original sentence: I beg your Majesty to greaten it.
+Similar sentence `May it please Your Majesty to enquire who is.&#34;` found in The Mahabharata of Krishna-Dwaipayana Vyasa
+Similarity score: 0.7464
+Compared with Yajur Veda
+Original sentence: Respect shown by superiors to inferiors is called giving honour to talents and virtue.
+Similar sentence `He pays reverence; that is as if an inferior brings (something) to a superior and pays him honour.` found in Yajur Veda
+Similarity score: 0.7303
+Original sentence: Respect shown by inferiors to superiors is called giving to the noble the observance due to rank.
+Similar sentence `He pays reverence; that is as if an inferior brings (something) to a superior and pays him honour.` found in Yajur Veda
+Similarity score: 0.7222
+Original sentence: The vessels would not be enough to use.&#39;
+Similar sentence `Some vessels are used (repeatedly), and others not.` found in Yajur Veda
+Similarity score: 0.7127
+Original sentence: The vessels would not be enough to use.&#39;
+Similar sentence `Some vessels are used (repeatedly), others not.` found in Yajur Veda
+Similarity score: 0.7037
+Original sentence: The victims for slaughter, the vessels, and the garments, not being all complete, he does not presume to sacrifice, and then neither may he dare to feel happy.&#34;
+Similar sentence `he says, for with purpose does a man employ the sacrifice, planning to sacrifice.` found in Yajur Veda
+Similarity score: 0.7009
+Compared with The Upanishads (Part 1)
+Original sentence: The king replied, &#39;Oh!
+Similar sentence `Then the king said: &#39;Alas!` found in The Upanishads (Part 1)
+Similarity score: 0.8258
+Original sentence: The king said,&#39;A great saying!
+Similar sentence `Then the king said: &#39;Alas!` found in The Upanishads (Part 1)
+Similarity score: 0.7738
+Original sentence: But is this the nature of the mountain?
+Similar sentence `This is the mountain , viz.` found in The Upanishads (Part 1)
+Similarity score: 0.7628
+Original sentence: The king replied, &#39;No.
+Similar sentence `Then the king said: &#39;Alas!` found in The Upanishads (Part 1)
+Similarity score: 0.7406
+Original sentence: Knowing his nature, he knows Heaven.
+Similar sentence `He knows what is to happen to-morrow, he knows heaven and hell.` found in The Upanishads (Part 1)
+Similarity score: 0.7383
+Compared with The Upanishads (Part 2)
+Original sentence: and was answered, &#39;No.&#39;
+Similar sentence `&#39;No,&#39; he replied .` found in The Upanishads (Part 2)
+Similarity score: 0.7484
+Original sentence: What did he find in water to praise?&#39;
+Similar sentence `From him thus worshipping water was produced.` found in The Upanishads (Part 2)
+Similarity score: 0.7435
+Original sentence: These are things which cannot be known.&#39;
+Similar sentence `These are what is known, what is to be known, and what is unknown.` found in The Upanishads (Part 2)
+Similarity score: 0.7355
+Original sentence: &#39;An ancient sage,&#39; was the reply.
+Similar sentence `The father said: &#39;What then, you sage?&#39;` found in The Upanishads (Part 2)
+Similarity score: 0.7254
+Original sentence: &#39;What belongs by his nature to the superior man are benevolence, righteousness, propriety, and knowledge.
+Similar sentence `The wise who perceive him within their Self, to them belongs eternal peace, not to others .&#39;` found in The Upanishads (Part 2)
+Similarity score: 0.7240
+Compared with The Vishnu Purana
+Original sentence: &#39;From the commencement of the Châu dynasty till now, more than seven hundred years have elapsed.
+Similar sentence `In describing the latter dynasties, some, if not all, of which were no doubt contemporary, they are described as reigning altogether one thousand seven hundred and ninety-six years.` found in The Vishnu Purana
+Similarity score: 0.7224
+Original sentence: A leader of the princes requires a large kingdom.
+Similar sentence `a race of princes, .` found in The Vishnu Purana
+Similarity score: 0.7079
+Original sentence: &#39;There are those who are great men.
+Similar sentence `All men, illustrious prince, are toiling to be great; but the destinies of men, and not their own exertions, are the cause of greatness.` found in The Vishnu Purana
+Similarity score: 0.7013
+Original sentence: The king, after all, is one who may be made to do what is good.
+Similar sentence `&#34;The king is a speaker of truth, bounteous, an observer of his promises; he is wise, benevolent, patient, valiant, and a terror to the wicked; he knows his duties; he acknowledges services; he is compassionate and kind-spoken; he respects the venerable; he performs sacrifices; he reverences the Brahmans; he cherishes the good; and in administering justice is indifferent to friend or foe.&#34;` found in The Vishnu Purana
+Similarity score: 0.6965
+Original sentence: Mencius Chapter 3 1.
+Similar sentence `Part of this passage is in the words of Manu, III.` found in The Vishnu Purana
+Similarity score: 0.6808
+Compared with Atharva Veda
+Original sentence: So a superior man is ashamed of a reputation beyond his merits.&#39;
+Similar sentence `Honour him as superior to himself.` found in Atharva Veda
+Similarity score: 0.6732
+Original sentence: Benevolent and wise:-- Master, you ARE a Sage.&#34;
+Similar sentence `Give ear and listen, swiftly-moving Sages, benevolent, invoked in our assembly.` found in Atharva Veda
+Similarity score: 0.6729
+Original sentence: When a Sage shall again arise, he will certainly follow my words.&#39;
+Similar sentence `Let texts recited by the sages bring thee.` found in Atharva Veda
+Similarity score: 0.6604
+Original sentence: When he comes to have a wife and children, his desire is towards them.
+Similar sentence `Unmarried men desire to wed; bountiful givers wish for sons.` found in Atharva Veda
+Similarity score: 0.6565
+Original sentence: Thus, such a ruler will not have an enemy in all the kingdom, and he who has no enemy in the kingdom is the minister of Heaven.
+Similar sentence `For him, strong independent Ruler, Heaven and Earth have fashioned forth for power and might.` found in Atharva Veda
+Similarity score: 0.6534
+Compared with Rig Veda
+Original sentence: He who finds the proper course has many to assist him.
+Similar sentence `He who is passing wise measures his courses out.` found in Rig Veda
+Similarity score: 0.7735
+Original sentence: The sage and we are the same in kind.
+Similar sentence `Sages, I ask you this for information.` found in Rig Veda
+Similarity score: 0.7148
+Original sentence: He approaches the place of mourning, and weeps.
+Similar sentence `Mourner-like, will he weep when first he knows him?` found in Rig Veda
+Similarity score: 0.7112
+Original sentence: &#39;But now the princes take advantage of the time when throughout their kingdoms there is leisure and rest from external troubles, to abandon themselves to pleasure and indolent indifference;-- they in fact seek for calamities for themselves.
+Similar sentence `So shall the days dawn prosperous for the princes.` found in Rig Veda
+Similarity score: 0.7075
+Original sentence: Of charges, which is the greatest ?
+Similar sentence `What charge hast thou for us?` found in Rig Veda
+Similarity score: 0.6999
+Compared with Upanisads (Patrick Olivelle)
+Original sentence: &#39;When the sage is beyond our knowledge, he is what is called a spirit-man.
+Similar sentence `It is he, on knowing whom, a man becomes a sage.` found in Upanisads (Patrick Olivelle)
+Similarity score: 0.7543
+Original sentence: But a man must be a sage before he can satisfy the design of his bodily organization.&#39;
+Similar sentence `It is he, on knowing whom, a man becomes a sage.` found in Upanisads (Patrick Olivelle)
+Similarity score: 0.7480
+Original sentence: &#39;When this great man exercises a transforming influence, he is what is called a sage.
+Similar sentence `It is he, on knowing whom, a man becomes a sage.` found in Upanisads (Patrick Olivelle)
+Similarity score: 0.7370
+Original sentence: He sips the congee.
+Similar sentence `With that he takes a sip.` found in Upanisads (Patrick Olivelle)
+Similarity score: 0.7343
+Original sentence: &#39;Yes, I do,&#39; was the reply.
+Similar sentence `&#39;Do so,&#39; he replied.` found in Upanisads (Patrick Olivelle)
+Similarity score: 0.7249
+--------------------------
+For the text `Analects`:
+Compared with Buddhist Mahâyâna Texts
+Original sentence: &#34;If I am not to mourn bitterly for this man, for whom should I mourn?&#34;
+Similar sentence `&#39;&#34;Do not think of mourning for me who am gone forth to leave sorrow behind; it is the thralls of passion, who are attached to desires, the causes of sorrow, for whom thou shouldst mourn.` found in Buddhist Mahâyâna Texts
+Similarity score: 0.7461
+Original sentence: After a complete year, the mourning may stop.&#34;
+Similar sentence `&#39;&#34;Do not think of mourning for me who am thus gone forth from my home; union, however long it may last, in time will come to an end.` found in Buddhist Mahâyâna Texts
+Similarity score: 0.7086
+Original sentence: When he was passing the vacant place of the prince, his countenance appeared to change, and his legs to bend under him, and his words came as if he hardly had breath to utter them.
+Similar sentence `When he had thus spoken, while the prince was looking on, he suddenly flew up to the sky; it was a heavenly inhabitant who, knowing that the prince&#39;s thoughts were other than what his outward form promised, had come to him for the sake of rousing his recollection.` found in Buddhist Mahâyâna Texts
+Similarity score: 0.6882
+Original sentence: When he was passing the vacant place of the prince, his countenance appeared to change, and his legs to bend under him, and his words came as if he hardly had breath to utter them.
+Similar sentence `Then the prince whose form was like the peak of a golden mountain,--whose eye, voice, and arm resembled a bull, a cloud, and an elephant,--whose countenance and prowess were like the moon and a lion,--having a longing aroused for something imperishable,--went into his palace.` found in Buddhist Mahâyâna Texts
+Similarity score: 0.6741
+Original sentence: Having obtained the confidence of his prince, one may then remonstrate with him.
+Similar sentence `The prince having beheld him thus overcome with decrepitude and different in form from other men, with his gaze intently fixed on him, thus addressed his driver with simple confidence: 28.` found in Buddhist Mahâyâna Texts
+Similarity score: 0.6678
+Compared with Tao Te Ching
+Original sentence: Must he not have the qualities of a sage?
+Similar sentence `Therefore the sage, while he never does what is great, is able on that account to accomplish the greatest things.` found in Tao Te Ching
+Similarity score: 0.7522
+Original sentence: He is about a sage.
+Similar sentence `Therefore the sage, while he never does what is great, is able on that account to accomplish the greatest things.` found in Tao Te Ching
+Similarity score: 0.7278
+Original sentence: Must he not have the qualities of a sage?
+Similar sentence `Therefore the (ruling) sage acts without claiming the results as his; he achieves his merit and does not rest (arrogantly) in it:--he does not wish to display his superiority.` found in Tao Te Ching
+Similarity score: 0.7183
+Original sentence: Must he not have the qualities of a sage?
+Similar sentence `The sage does not accumulate (for himself).` found in Tao Te Ching
+Similarity score: 0.7045
+Original sentence: &#34;Were our Master in the position of the ruler of a state or the chief of a family, we should find verified the description which has been given of a sage&#39;s rule:-he would plant the people, and forthwith they would be established; he would lead them on, and forthwith they would follow him; he would make them happy, and forthwith multitudes would resort to his dominions; he would stimulate them, and forthwith they would be harmonious.
+Similar sentence `So it is that the sage (ruler), wishing to be above men, puts himself by his words below them, and, wishing to be before them, places his person behind them.` found in Tao Te Ching
+Similarity score: 0.6841
+Compared with The Mahabharata of Krishna-Dwaipayana Vyasa
+Original sentence: On this, he took his departure the next day.
+Similar sentence `At last the time came for his departure.` found in The Mahabharata of Krishna-Dwaipayana Vyasa
+Similarity score: 0.7745
+Original sentence: How is your virtue degenerated!
+Similar sentence `Virtue itself is sustaining a diminution!` found in The Mahabharata of Krishna-Dwaipayana Vyasa
+Similarity score: 0.7371
+Original sentence: &#34;When the love of superiority, boasting, resentments, and covetousness are repressed, this may be deemed perfect virtue.&#34;
+Similar sentence `--&#34;This is the foremost of all cherishers of virtue!&#34;` found in The Mahabharata of Krishna-Dwaipayana Vyasa
+Similarity score: 0.7322
+Original sentence: &#34;When the love of superiority, boasting, resentments, and covetousness are repressed, this may be deemed perfect virtue.&#34;
+Similar sentence `Let thy heart be more and more firmly set on virtue.&#39;` found in The Mahabharata of Krishna-Dwaipayana Vyasa
+Similarity score: 0.7202
+Original sentence: An esteemer of virtue indeed is this!&#34;
+Similar sentence `--&#34;This is the foremost of all cherishers of virtue!&#34;` found in The Mahabharata of Krishna-Dwaipayana Vyasa
+Similarity score: 0.7186
+Compared with Yajur Veda
+Original sentence: He hates those who proclaim the evil of others.
+Similar sentence `He should think of any one whom he hates; verily does he inflict trouble upon him.` found in Yajur Veda
+Similarity score: 0.7400
+Original sentence: Is it not the sage alone, who can unite in one the beginning and the consummation of learning?&#34;
+Similar sentence `&#39;Rejoiced in by sages&#39;, he says , for learned people are sages.` found in Yajur Veda
+Similarity score: 0.7265
+Original sentence: He sacrificed to the dead, as if they were present.
+Similar sentence `He then appropriated the blessing of the sacrifice.` found in Yajur Veda
+Similarity score: 0.7121
+Original sentence: He is about a sage.
+Similar sentence `&#39;Rejoiced in by sages&#39;, he says , for learned people are sages.` found in Yajur Veda
+Similarity score: 0.7090
+Original sentence: He hates those who proclaim the evil of others.
+Similar sentence `He should think of whomever he hates; verily he brings affliction upon him.` found in Yajur Veda
+Similarity score: 0.7086
+Compared with The Upanishads (Part 1)
+Original sentence: He sacrificed to the dead, as if they were present.
+Similar sentence `Having eaten them, he went to the sacrifice which was being performed.` found in The Upanishads (Part 1)
+Similarity score: 0.7278
+Original sentence: He sacrificed to the dead, as if they were present.
+Similar sentence `He thus places life and speech in him (the sacrificer.)` found in The Upanishads (Part 1)
+Similarity score: 0.7146
+Original sentence: Food is not his object.
+Similar sentence `To him who knows this there is nothing that is not (proper) food.` found in The Upanishads (Part 1)
+Similarity score: 0.7141
+Original sentence: It is difficult along with him to practice virtue.&#34;
+Similar sentence `Here it is clearly said that he has no luck in what he has learnt, and that he does not know the path of virtue.` found in The Upanishads (Part 1)
+Similarity score: 0.7115
+Original sentence: Food is not his object.
+Similar sentence `He to whom this food belongs, to him it has not been given .&#39;` found in The Upanishads (Part 1)
+Similarity score: 0.7077
+Compared with The Upanishads (Part 2)
+Original sentence: Some one asked the meaning of the great sacrifice.
+Similar sentence `He asked: &#39;And what is the sacrifice?&#39;` found in The Upanishads (Part 2)
+Similarity score: 0.7710
+Original sentence: He answered, &#34;I cannot.&#34;
+Similar sentence `&#39;No,&#39; he replied .` found in The Upanishads (Part 2)
+Similarity score: 0.7324
+Original sentence: Some one said to him, &#34;Is it not yet time for you, sir, to leave this?&#34;
+Similar sentence `They said to him: &#39;Sir, do not depart.` found in The Upanishads (Part 2)
+Similarity score: 0.7151
+Original sentence: He sacrificed to the dead, as if they were present.
+Similar sentence `He desired to sacrifice again with a greater sacrifice.` found in The Upanishads (Part 2)
+Similarity score: 0.7144
+Original sentence: Some one asked the meaning of the great sacrifice.
+Similar sentence `Whatever sacrifices there are, they, taken as one, are the sacrifice.` found in The Upanishads (Part 2)
+Similarity score: 0.7051
+Compared with The Vishnu Purana
+Original sentence: He also introduced to him his two sons.
+Similar sentence `his two sons, .` found in The Vishnu Purana
+Similarity score: 0.7743
+Original sentence: Must he not have the qualities of a sage?
+Similar sentence `He became nevertheless a celebrated sage.` found in The Vishnu Purana
+Similarity score: 0.7223
+Original sentence: He is about a sage.
+Similar sentence `He became nevertheless a celebrated sage.` found in The Vishnu Purana
+Similarity score: 0.7192
+Original sentence: If I do sometimes exceed in praise, there must be ground for it in my examination of the individual.
+Similar sentence `Who is able to declare his praise?` found in The Vishnu Purana
+Similarity score: 0.7178
+Original sentence: When these things proceed from the princes, as a rule, the cases will be few in which they do not lose their power in ten generations.
+Similar sentence `That is, princes and warriors will be so no longer by virtue of their birth and caste.` found in The Vishnu Purana
+Similarity score: 0.7133
+Compared with Atharva Veda
+Original sentence: He sacrificed to the dead, as if they were present.
+Similar sentence `Sacrifice, sacrifice&#39;s Lord, he was made head of sacrifice.` found in Atharva Veda
+Similarity score: 0.6976
+Original sentence: He hates those who proclaim the evil of others.
+Similar sentence `Him who hates us may his soul hate, and may he whom we hate hate himself.` found in Atharva Veda
+Similarity score: 0.6892
+Original sentence: He sacrificed to the dead, as if they were present.
+Similar sentence `He is the son of sacrifice: and sacrifice was born from him.` found in Atharva Veda
+Similarity score: 0.6804
+Original sentence: Some one asked the meaning of the great sacrifice.
+Similar sentence `This sacrifice, the first of all, the past, the present, had its birth.` found in Atharva Veda
+Similarity score: 0.6670
+Original sentence: He did not hold it higher than the position of the hands in making a bow, nor lower than their position in giving anything to another.
+Similar sentence `He held a bow, even that Bow of Indra.` found in Atharva Veda
+Similarity score: 0.6654
+Compared with Rig Veda
+Original sentence: He is about a sage.
+Similar sentence `Who knoweth it, ye sages?` found in Rig Veda
+Similarity score: 0.7031
+Original sentence: He sacrificed to the dead, as if they were present.
+Similar sentence `He was their sacrifice that guards our bodies: him the heavens know, the earth, the waters know him.` found in Rig Veda
+Similarity score: 0.6910
+Original sentence: He is about a sage.
+Similar sentence `Sages, I ask you this for information.` found in Rig Veda
+Similarity score: 0.6890
+Original sentence: He is about a sage.
+Similar sentence `6 Sages well-skilled in work, intelligent, drain out the stalk that roars, the Sage, the Everlasting One.` found in Rig Veda
+Similarity score: 0.6738
+Original sentence: &#34;When his knowledge is sufficient to attain, and he has virtue enough to hold fast, if he cannot govern with dignity, the people will not respect him.
+Similar sentence `That which he knows is truth and never idle: he wins and gives the wealth desired of many.` found in Rig Veda
+Similarity score: 0.6705
+Compared with Upanisads (Patrick Olivelle)
+Original sentence: He is about a sage.
+Similar sentence `It is he, on knowing whom, a man becomes a sage.` found in Upanisads (Patrick Olivelle)
+Similarity score: 0.8086
+Original sentence: Some one asked the meaning of the great sacrifice.
+Similar sentence `&#39;What is the sacrifice?&#39;` found in Upanisads (Patrick Olivelle)
+Similarity score: 0.7807
+Original sentence: Must he not have the qualities of a sage?
+Similar sentence `It is he, on knowing whom, a man becomes a sage.` found in Upanisads (Patrick Olivelle)
+Similarity score: 0.7499
+Original sentence: He is about a sage.
+Similar sentence `When he has stopped living like a child or a pundit, he becomes a sage.` found in Upanisads (Patrick Olivelle)
+Similarity score: 0.7428
+Original sentence: If the prince knew propriety, who does not know it?&#34;
+Similar sentence `I told the prince: &#34;I don&#39;t know him.` found in Upanisads (Patrick Olivelle)
+Similarity score: 0.7424
+--------------------------
+For the text `Buddhist Mahâyâna Texts`:
+Compared with Tao Te Ching
+Original sentence: &#39;&#34;Either he will quickly come back, having destroyed old age and death; or else he will himself perish, having failed in his purpose and lost hold of every support.&#34;&#39;
+Similar sentence `He who does not fail in the requirements of his position, continues long; he who dies and yet does not perish, has longevity.` found in Tao Te Ching
+Similarity score: 0.6750
+Original sentence: &#39;Some undergo misery for the sake of this world, others meet toil for the sake of heaven; all living beings, wretched through hope and always missing their aim, fall certainly for the sake of happiness into misery.
+Similar sentence `Misery!--happiness is to be found by its side!` found in Tao Te Ching
+Similarity score: 0.6725
+Original sentence: And why is that?
+Similar sentence `And for what reason?` found in Tao Te Ching
+Similarity score: 0.6659
+Original sentence: And why is that?
+Similar sentence `And for what reason?` found in Tao Te Ching
+Similarity score: 0.6659
+Original sentence: But as the king&#39;s son was thus going on his way, the very same deities created a dead man, and only the charioteer and the prince, and none else, beheld him as he was carried dead along the road.
+Similar sentence `How should the lord of a myriad chariots carry himself lightly before the kingdom?` found in Tao Te Ching
+Similarity score: 0.6465
+Compared with The Mahabharata of Krishna-Dwaipayana Vyasa
+Original sentence: The king&#39;s son asked him a question,--he said to him, &#39;Tell me, who art thou?&#39;
+Similar sentence `Hearing this, the king asked him, &#34;Whose son art thou?&#34;` found in The Mahabharata of Krishna-Dwaipayana Vyasa
+Similarity score: 0.9100
+Original sentence: There he beheld that lovely forest like Nandana itself.
+Similar sentence `And, as he went, he saw around him a forest like unto Nandana itself (the celestial garden).` found in The Mahabharata of Krishna-Dwaipayana Vyasa
+Similarity score: 0.8490
+Original sentence: Deer and elephants uttering cries of pain ran about or lay down,--in that night as if it were day screaming birds flew around disturbed in all directions.
+Similar sentence `And hosts of creatures roared in pain, and elephants and deer and wolves set up cries of affliction.` found in The Mahabharata of Krishna-Dwaipayana Vyasa
+Similarity score: 0.8033
+Original sentence: The edition of the original text was dedicated to my old friend Professor F. Max Müller, and it is a sincere gratification to me that this translation will appear in the same volume with similar translations from his pen.
+Similar sentence `My friend left with me a specimen of translation which he had received from Professor Max Muller.` found in The Mahabharata of Krishna-Dwaipayana Vyasa
+Similarity score: 0.7721
+Original sentence: And he himself gave to the brahmans for his son&#39;s welfare cows full of milk, with no traces of infirmity, golden-horned and with strong healthy calves, to the full number of a hundred thousand.
+Similar sentence `He also gave unto them ten thousand cows belonging to the country of Mathura, and yielding much milk and all of excellent colour.` found in The Mahabharata of Krishna-Dwaipayana Vyasa
+Similarity score: 0.7681
+Compared with Yajur Veda
+Original sentence: &#39;And as for what thou saidst, &#34;be diligent in sacrifices for religion, such as are worthy of thy race and bring a glorious fruit,&#34;--honour to such sacrifices!
+Similar sentence `Thou art to be invoked at our sacrifices.` found in Yajur Veda
+Similarity score: 0.7682
+Original sentence: &#39;And as for what thou saidst, &#34;be diligent in sacrifices for religion, such as are worthy of thy race and bring a glorious fruit,&#34;--honour to such sacrifices!
+Similar sentence `&#39;Thou art to be invoked at our sacrifices&#39;, he says; for him they invoke at the sacrifices.` found in Yajur Veda
+Similarity score: 0.7469
+Original sentence: &#39;And as for what thou saidst, &#34;be diligent in sacrifices for religion, such as are worthy of thy race and bring a glorious fruit,&#34;--honour to such sacrifices!
+Similar sentence `&#39;Let us praise the gods worthy of praise; let us honour those worthy of honour; let us sacrifice to those worthy of sacrifice&#39;, he says.` found in Yajur Veda
+Similarity score: 0.7469
+Original sentence: &#39;And as for what thou saidst, &#34;be diligent in sacrifices for religion, such as are worthy of thy race and bring a glorious fruit,&#34;--honour to such sacrifices!
+Similar sentence `n Be thou (good) for every sacrifice, for the gods, for every prayer.` found in Yajur Veda
+Similarity score: 0.7290
+Original sentence: &#39;And as for what thou saidst, &#34;be diligent in sacrifices for religion, such as are worthy of thy race and bring a glorious fruit,&#34;--honour to such sacrifices!
+Similar sentence `They sacrificed (with the words), &#39;Thou art a lioness; bring the gods to the pious sacrificer; hail!&#39;` found in Yajur Veda
+Similarity score: 0.7068
+Compared with The Upanishads (Part 1)
+Original sentence: XLIX of The Sacred Books of the East translated by various Oriental scholars and edited by F. Max Müller CONTENTS OF THE TWO PARTS.
+Similar sentence `THE SACRED BOOKS OF THE EAST, TRANSLATED, WITH INTRODUCTIONS AND NOTES, BY VARIOUS ORIENTAL SCHOLARS, AND EDITED BY F. MAX MULLER.` found in The Upanishads (Part 1)
+Similarity score: 0.8626
+Original sentence: No eye, ear, nose, tongue, body, and mind.
+Similar sentence `eye, ear, mind, speech, and breath.` found in The Upanishads (Part 1)
+Similarity score: 0.8312
+Original sentence: No eye, ear, nose, tongue, body, mind.
+Similar sentence `eye, ear, mind, speech, and breath.` found in The Upanishads (Part 1)
+Similarity score: 0.8292
+Original sentence: XLIX of The Sacred Books of the East translated by various Oriental scholars and edited by F. Max Müller CONTENTS OF THE TWO PARTS.
+Similar sentence `The following distinguished scholars, all of them occupying the foremost rank in their own special departments of Oriental literature, are at present engaged in preparing translations of some of the Sacred Books of the East: S. Beal, R. G. Bhandarkar, G. Bühler, A. Burnell, E. B. Cowell, J. Darmesteter, T. W. Rhys Davids, J. Eggeling, V. Fausböll, H. Jacobi, J. Jolly, H. Kern, F. Kielhorn, J. Legge, H. Oldenberg, E. H. Palmer, R. Pischel, K. T. Telang, E. W. West.` found in The Upanishads (Part 1)
+Similarity score: 0.7850
+Original sentence: &#39;As for the common opinion, &#34;pleasures are enjoyments,&#34; none of them when examined are worthy of being enjoyed; fine garments and the rest are only the accessories of things,--they are to be regarded as merely the remedies for pain.
+Similar sentence `&#39;How pleasures and pain?&#39;` found in The Upanishads (Part 1)
+Similarity score: 0.7783
+Compared with The Upanishads (Part 2)
+Original sentence: No eye, ear, nose, tongue, body, mind.
+Similar sentence `Food, breath, the eye, the ear, mind, speech.` found in The Upanishads (Part 2)
+Similarity score: 0.7503
+Original sentence: The king&#39;s son asked him a question,--he said to him, &#39;Tell me, who art thou?&#39;
+Similar sentence `We asked him, &#39;Who art thou?&#39;` found in The Upanishads (Part 2)
+Similarity score: 0.7497
+Original sentence: ADORATION TO THE OMNISCIENT!
+Similar sentence `Adoration to the Highest Self!` found in The Upanishads (Part 2)
+Similarity score: 0.7465
+Original sentence: ADORATION TO THE OMNISCIENT!
+Similar sentence `Adoration to the Highest Self!` found in The Upanishads (Part 2)
+Similarity score: 0.7465
+Original sentence: ADORATION TO THE OMNISCIENT!
+Similar sentence `Adoration to the Highest Self!` found in The Upanishads (Part 2)
+Similarity score: 0.7465
+Compared with The Vishnu Purana
+Original sentence: OXFORD: Jan. 26, 1894.
+Similar sentence `OXFORD, Feb. 10, 1840.` found in The Vishnu Purana
+Similarity score: 0.8313
+Original sentence: The prince replied, &#39;Very well,&#39; and having saluted the company of sages he departed; the hermits also having duly performed to him all the rites of courtesy entered again into the ascetic grove.
+Similar sentence `THE prince, having received these instructions, respectfully saluted the sages, and departed from the forest, fully confiding in the accomplishment of his purposes.` found in The Vishnu Purana
+Similarity score: 0.7443
+Original sentence: &#39;Though he had enjoyed the kingdom of the gods in heaven, when Indra had concealed himself through fear of Vritra, and though in his pride he had made the great Rishis bear his litter&#39;.
+Similar sentence `He had obtained the rank of Indra; but in his pride, or at the suggestion of Śachí, compelling the Rishis to bear his litter, he was cursed by them to fall from his state, and reappear upon earth as a serpent.` found in The Vishnu Purana
+Similarity score: 0.7411
+Original sentence: In course of time to the fair-bosomed Yasodharâ,--who was truly glorious in accordance with her name,--there was born from the son of Suddhodana a son named Râhula, with a face like the enemy of Râhu.
+Similar sentence `There can be no doubt of the individual here intended, although he is out of his place, for he was the son, not the father, of Śuddhodana, and the father of Ráhula; as he is termed in the Amara and Haima Koshas, Śaudhodani or Śuddhodana suta the son of Śuddhodana, and Ráhulasú the parent of Ráhula: so also in the Maháwanśo, Siddhártha or Śákya is the son of Śuddhodano, and father of Ráhulo.` found in The Vishnu Purana
+Similarity score: 0.7344
+Original sentence: &#39;Thus Ignorance, O ye wise, being fivefold in its character, energises towards torpor, delusion, the great delusion, and the two kinds of darkness.
+Similar sentence `From that great being appeared fivefold Ignorance, consisting of obscurity, illusion, extreme illusion, gloom, utter darkness .` found in The Vishnu Purana
+Similarity score: 0.7242
+Compared with Atharva Veda
+Original sentence: &#39;Possessed of a thousand sons, and able to deliver the world, be successively the supreme lord of every world from the Yâma heaven onwards.
+Similar sentence `Worship with sacrificial gift King Yama, Vivasvān&#39;s son who gathers men together, Yama who was the first to die of mortals, the first who travelled to the world before us.` found in Atharva Veda
+Similarity score: 0.7017
+Original sentence: &#39;Know me to be the power called Thirst, and worship thirst accordingly; else I will clasp thee with all my might and fling away thy life.&#39;
+Similar sentence `Long be thy grasping-hook wherewith thou givest treasure unto- him Who pours the juice and worships thee.` found in Atharva Veda
+Similarity score: 0.6942
+Original sentence: He then mounted a golden chariot, adorned with reins bright like flashing lightning, and yoked with four gentle horses, all wearing golden trappings.
+Similar sentence `A hundred golden steeds hath he, a hundred chariots wrought of gold.` found in Atharva Veda
+Similarity score: 0.6878
+Original sentence: &#39;And her, thy second mother, worn with the care of bringing thee up,--thou wilt not surely forget her, as an ingrate a benefit?
+Similar sentence `Thou stablishest the two much-wandering Mothers, and bringest many deeds to their completion.` found in Atharva Veda
+Similarity score: 0.6872
+Original sentence: &#39;But if from thy pride of race thou dost not now feel confidence in me, then plunge with thy arrows into countless armies, and with me as thy ally seek to conquer thy foes.
+Similar sentence `Thou art victorious in thy might I am endowed with conquering strength: Possessed of overpowering force we two will quell our enemies.` found in Atharva Veda
+Similarity score: 0.6839
+Compared with Rig Veda
+Original sentence: &#39;And as for what thou saidst, &#34;be diligent in sacrifices for religion, such as are worthy of thy race and bring a glorious fruit,&#34;--honour to such sacrifices!
+Similar sentence `Serving at sacrifices men adore thee as a God, O Sage.` found in Rig Veda
+Similarity score: 0.7456
+Original sentence: &#39;Now therefore do thou guard (the world) like Indra in heaven; guard it continually like the sun by thy excellencies; guard its best happiness here; guard the earth; guard life by the noble; guard the sons of the good; guard thy royal powers, O king; and guard thine own religion.
+Similar sentence `Be thou the Guard of all, O thou whom many praise.` found in Rig Veda
+Similarity score: 0.7330
+Original sentence: &#39;And as for what thou saidst, &#34;be diligent in sacrifices for religion, such as are worthy of thy race and bring a glorious fruit,&#34;--honour to such sacrifices!
+Similar sentence `Be thou the sacrificer&#39;s strong encourager all these thy deeds are my delight at festivals.` found in Rig Veda
+Similarity score: 0.7269
+Original sentence: &#39;And as for what thou saidst, &#34;be diligent in sacrifices for religion, such as are worthy of thy race and bring a glorious fruit,&#34;--honour to such sacrifices!
+Similar sentence `Here seat thee like a man: most wise, bring thou the Gods for sacrifice.` found in Rig Veda
+Similarity score: 0.7211
+Original sentence: &#39;Now therefore do thou guard (the world) like Indra in heaven; guard it continually like the sun by thy excellencies; guard its best happiness here; guard the earth; guard life by the noble; guard the sons of the good; guard thy royal powers, O king; and guard thine own religion.
+Similar sentence `3 O Darter of the Stone, the powers which readily obey thy will,— Divinities, both thou and they, ye rule, to guard them, earth and heaven.` found in Rig Veda
+Similarity score: 0.7204
+Compared with Upanisads (Patrick Olivelle)
+Original sentence: I will explain it now.
+Similar sentence `I will explain it to you.` found in Upanisads (Patrick Olivelle)
+Similarity score: 0.7958
+Original sentence: I have made a few corrections in my translation, and have added some notes and omitted others.
+Similar sentence `For these reasons, I have omitted the phrase from the translation.` found in Upanisads (Patrick Olivelle)
+Similarity score: 0.7399
+Original sentence: Dharma, in the ordinary Buddhist phraseology, may be correctly rendered by law.
+Similar sentence `The term &#39;law&#39; (dharma) here refers to ritual and moral rules: see KaU 4.14 n. 6.1 visible appearance : see BU 1.4.7 n. Uktha, brahman, Soman: Uktha is the technical term for Rgvedic verses that are recited during a sacrifice (cf.` found in Upanisads (Patrick Olivelle)
+Similarity score: 0.7208
+Original sentence: Form is emptiness, and emptiness indeed is form.
+Similar sentence `And this whole world—both what has form and what is without form—is substance.` found in Upanisads (Patrick Olivelle)
+Similarity score: 0.7166
+Original sentence: But in our treatise dharma is generally used in a different sense.
+Similar sentence `But it cannot be very different from the meaning of the term dharma (also said to be subtle, anu) at KaU 1.21 and from its usage in the next verse, KaU 2.14.` found in Upanisads (Patrick Olivelle)
+Similarity score: 0.7098
+--------------------------
+For the text `Tao Te Ching`:
+Compared with The Mahabharata of Krishna-Dwaipayana Vyasa
+Original sentence: Disgrace is being in a low position (after the enjoyment of favour).
+Similar sentence `There is no disgrace, however, in conciliation.&#34;` found in The Mahabharata of Krishna-Dwaipayana Vyasa
+Similarity score: 0.7257
+Original sentence: Misery!--happiness is to be found by its side!
+Similar sentence `Life is sorrow and disease; life is truly a record of misery!` found in The Mahabharata of Krishna-Dwaipayana Vyasa
+Similarity score: 0.7174
+Original sentence: Misery!--happiness is to be found by its side!
+Similar sentence `Happiness and misery are both transient.` found in The Mahabharata of Krishna-Dwaipayana Vyasa
+Similarity score: 0.7010
+Original sentence: Happiness!--misery lurks beneath it!
+Similar sentence `Happiness and misery are both transient.` found in The Mahabharata of Krishna-Dwaipayana Vyasa
+Similarity score: 0.6983
+Original sentence: They shall wear elegant and ornamented robes, carry a sharp sword at their girdle, pamper themselves in eating and drinking, and have a superabundance of property and wealth;--such (princes) may be called robbers and boasters.
+Similar sentence `Adorned with crowns, garlands, bracelets, and other ornaments, endued with mighty arms, possessed of prowess and vigour and bursting with strength and energy, those princes could not, even in imagination, string that bow of extraordinary stiffness.` found in The Mahabharata of Krishna-Dwaipayana Vyasa
+Similarity score: 0.6797
+Compared with Yajur Veda
+Original sentence: He who overcomes others is strong; he who overcomes himself is mighty.
+Similar sentence `He prospers himself , his foe is overcome.` found in Yajur Veda
+Similarity score: 0.7349
+Original sentence: He who overcomes others is strong; he who overcomes himself is mighty.
+Similar sentence `He for whom those are put down becomes greater, conquers these worlds, and prospers himself; his foe is defeated.` found in Yajur Veda
+Similarity score: 0.6848
+Original sentence: Therefore the sage, while he never does what is great, is able on that account to accomplish the greatest things.
+Similar sentence `&#39;Rejoiced in by sages&#39;, he says , for learned people are sages.` found in Yajur Veda
+Similarity score: 0.6764
+Original sentence: (But) when there is not faith sufficient (on his part), a want of faith (in him) ensues (on the part of the others).
+Similar sentence `He who offers sacrifice without faith, they place not faith in his sacrifice.` found in Yajur Veda
+Similarity score: 0.6723
+Original sentence: He who gets as his own all under heaven does so by giving himself no trouble (with that end).
+Similar sentence `To him the higher sacrifice condescends, he gains the world of heaven.` found in Yajur Veda
+Similarity score: 0.6695
+Compared with The Upanishads (Part 1)
+Original sentence: To Heaven and Earth.
+Similar sentence `From the sky and from heaven.` found in The Upanishads (Part 1)
+Similarity score: 0.7239
+Original sentence: Having arrived at this point of non-action, there is nothing which he does not do.
+Similar sentence `He does not increase by a good action, nor decrease by a bad action.` found in The Upanishads (Part 1)
+Similarity score: 0.6743
+Original sentence: What other men (thus) teach, I also teach.
+Similar sentence `Who then has taught you ?&#39;` found in The Upanishads (Part 1)
+Similarity score: 0.6726
+Original sentence: He constantly (tries to) keep them without knowledge and without desire, and where there are those who have knowledge, to keep them from presuming to act (on it).
+Similar sentence `He who knows them, obtains whatever he desires.` found in The Upanishads (Part 1)
+Similarity score: 0.6503
+Original sentence: What other men (thus) teach, I also teach.
+Similar sentence `Who has taught you?&#39;` found in The Upanishads (Part 1)
+Similarity score: 0.6493
+Compared with The Upanishads (Part 2)
+Original sentence: Therefore the sage puts his own person last, and yet it is found in the foremost place; he treats his person as if it were foreign to him, and yet that person is preserved.
+Similar sentence `When they have reached him (the Self), the sages become satisfied through knowledge, they are conscious of their Self, their passions have passed away, and they are tranquil.` found in The Upanishads (Part 2)
+Similarity score: 0.7112
+Original sentence: Therefore the sage, in the exercise of his government, empties their minds, fills their bellies, weakens their wills, and strengthens their bones.
+Similar sentence `When they have reached him (the Self), the sages become satisfied through knowledge, they are conscious of their Self, their passions have passed away, and they are tranquil.` found in The Upanishads (Part 2)
+Similarity score: 0.6987
+Original sentence: Therefore the sage desires what (other men) do not desire, and does not prize things difficult to get; he learns what (other men) do not learn, and turns back to what the multitude of men have passed by.
+Similar sentence `When they have reached him (the Self), the sages become satisfied through knowledge, they are conscious of their Self, their passions have passed away, and they are tranquil.` found in The Upanishads (Part 2)
+Similarity score: 0.6925
+Original sentence: Therefore the sage holds in his embrace the one thing (of humility), and manifests it to all the world.
+Similar sentence `When they have reached him (the Self), the sages become satisfied through knowledge, they are conscious of their Self, their passions have passed away, and they are tranquil.` found in The Upanishads (Part 2)
+Similarity score: 0.6854
+Original sentence: I will make this the basis of my teaching.
+Similar sentence `This is the teaching.` found in The Upanishads (Part 2)
+Similarity score: 0.6788
+Compared with The Vishnu Purana
+Original sentence: They shall wear elegant and ornamented robes, carry a sharp sword at their girdle, pamper themselves in eating and drinking, and have a superabundance of property and wealth;--such (princes) may be called robbers and boasters.
+Similar sentence `Princes, instead of protecting, will plunder their subjects; and, under the pretext of levying customs, will rob merchants of their property.` found in The Vishnu Purana
+Similarity score: 0.7230
+Original sentence: It may be regarded as the Mother of all things.
+Similar sentence `It is the mother and nurse of all creatures, the foundation of all worlds, and the chief of the elements.` found in The Vishnu Purana
+Similarity score: 0.7165
+Original sentence: If princes and kings were able to maintain it, all things would of themselves be transformed by them.
+Similar sentence `That is, princes and warriors will be so no longer by virtue of their birth and caste.` found in The Vishnu Purana
+Similarity score: 0.7124
+Original sentence: Therefore the sage, while he never does what is great, is able on that account to accomplish the greatest things.
+Similar sentence `Therefore, most excellent sages, is the Śúdra fortunate.` found in The Vishnu Purana
+Similarity score: 0.7011
+Original sentence: When things (in the vegetable world) have displayed their luxuriant growth, we see each of them return to its root.
+Similar sentence `By this all vegetables grow and are matured, and become the means of maintaining life.` found in The Vishnu Purana
+Similarity score: 0.6867
+Compared with Atharva Veda
+Original sentence: No treasures give good men so rich a grace; Bad men it guards, and doth their ill efface.
+Similar sentence `Discover thou, as Lord, the wealth of men who offer up no gifts: bring thou to us this wealth of theirs.` found in Atharva Veda
+Similarity score: 0.6660
+Original sentence: No treasures give good men so rich a grace; Bad men it guards, and doth their ill efface.
+Similar sentence `For you may he who parts in turn find treasures, but let the Dead among the Fathers.` found in Atharva Veda
+Similarity score: 0.6528
+Original sentence: Heaven and Earth (under its guidance) unite together and send down the sweet dew, which, without the directions of men, reaches equally everywhere as of its own accord.
+Similar sentence `Dear unto all men, facing all directions, with hands and palms on every side extended, He, the sole God, engendering earth and heaven, beareth them with his wings and arms together.` found in Atharva Veda
+Similarity score: 0.6503
+Original sentence: Let him keep his mouth open, and (spend his breath) in the promotion of his affairs, and all his life there will be no safety for him.
+Similar sentence `Let the breath of life forsake him.` found in Atharva Veda
+Similarity score: 0.6463
+Original sentence: Sons shall bring in lengthening line, Sacrifices to his shrine.
+Similar sentence `Serve we with sacrifices, gifts, and homage even thus the Steer of all the Gods, the Father.` found in Atharva Veda
+Similarity score: 0.6455
+Compared with Rig Veda
+Original sentence: To Heaven and Earth.
+Similar sentence `And why to Heaven?` found in Rig Veda
+Similarity score: 0.7093
+Original sentence: 11 The thirty spokes unite in the one nave; but it is on the empty space (for the axle), that the use of the wheel depends.
+Similar sentence `11 Formed with twelve spokes, by length of time, unweakened, rolls round the heaven this wheel of during Order.` found in Rig Veda
+Similarity score: 0.6946
+Original sentence: Therefore the sage, while he never does what is great, is able on that account to accomplish the greatest things.
+Similar sentence `From earth ye brought the sage to life in wondrous mode; be your great deeds done here for him who honours you.` found in Rig Veda
+Similarity score: 0.6934
+Original sentence: Therefore he who would administer the kingdom, honouring it as he honours his own person, may be employed to govern it, and he who would administer it with the love which he bears to his own person may be entrusted with it.
+Similar sentence `Ye Rulers, grant his heart&#39;s desire.` found in Rig Veda
+Similarity score: 0.6798
+Original sentence: It might appear to have been before God.
+Similar sentence `Who knows then whence it first came into being?` found in Rig Veda
+Similarity score: 0.6759
+Compared with Upanisads (Patrick Olivelle)
+Original sentence: Therefore the sage, while he never does what is great, is able on that account to accomplish the greatest things.
+Similar sentence `It is he, on knowing whom, a man becomes a sage.` found in Upanisads (Patrick Olivelle)
+Similarity score: 0.7163
+Original sentence: Therefore the sage knows (these things) of himself, but does not parade (his knowledge); loves, but does not (appear to set a) value on, himself.
+Similar sentence `It is he, on knowing whom, a man becomes a sage.` found in Upanisads (Patrick Olivelle)
+Similarity score: 0.7053
+Original sentence: Therefore the sage puts his own person last, and yet it is found in the foremost place; he treats his person as if it were foreign to him, and yet that person is preserved.
+Similar sentence `It is he, on knowing whom, a man becomes a sage.` found in Upanisads (Patrick Olivelle)
+Similarity score: 0.7015
+Original sentence: Therefore the sage desires what (other men) do not desire, and does not prize things difficult to get; he learns what (other men) do not learn, and turns back to what the multitude of men have passed by.
+Similar sentence `It is he, on knowing whom, a man becomes a sage.` found in Upanisads (Patrick Olivelle)
+Similarity score: 0.6903
+Original sentence: The sage does not accumulate (for himself).
+Similar sentence `When he has stopped living like a child or a pundit, he becomes a sage.` found in Upanisads (Patrick Olivelle)
+Similarity score: 0.6870
+</pre>
+
+
+<h3 id="Helper-Function">Helper Function<a class="anchor-link" href="#Helper-Function">&#182;</a></h3><p>This helper function lets someone search for similar themes in other texts</p>
+
+
+
+
+
+
+
+<div class="pj-input pj-fold fold-hide">
+<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">find_similar_sentences</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="n">schools</span><span class="p">,</span> <span class="n">documents</span><span class="p">,</span> <span class="n">model</span><span class="p">):</span>
+ <span class="n">query_embedding</span> <span class="o">=</span> <span class="n">model</span><span class="o">.</span><span class="n">encode</span><span class="p">([</span><span class="n">query</span><span class="p">])</span>
+ <span class="n">results</span> <span class="o">=</span> <span class="p">[]</span>
+
+ <span class="k">for</span> <span class="n">school</span> <span class="ow">in</span> <span class="n">schools</span><span class="p">:</span>
+ <span class="k">if</span> <span class="n">school</span> <span class="ow">in</span> <span class="n">documents</span><span class="p">:</span>
+ <span class="k">for</span> <span class="n">text_name</span><span class="p">,</span> <span class="n">text_data</span> <span class="ow">in</span> <span class="n">documents</span><span class="p">[</span><span class="n">school</span><span class="p">]</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+ <span class="n">sentence_embeddings</span> <span class="o">=</span> <span class="n">text_data</span><span class="p">[</span><span class="s1">&#39;embeddings&#39;</span><span class="p">]</span>
+ <span class="n">similarities</span> <span class="o">=</span> <span class="n">cosine_similarity</span><span class="p">(</span><span class="n">query_embedding</span><span class="p">,</span> <span class="n">sentence_embeddings</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
+ <span class="k">for</span> <span class="n">similarity</span><span class="p">,</span> <span class="n">sentence</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">similarities</span><span class="p">,</span> <span class="n">text_data</span><span class="p">[</span><span class="s1">&#39;sentences&#39;</span><span class="p">]):</span>
+ <span class="n">results</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">similarity</span><span class="p">,</span> <span class="n">school</span><span class="p">,</span> <span class="n">text_name</span><span class="p">,</span> <span class="n">sentence</span><span class="p">))</span>
+
+ <span class="n">results</span><span class="o">.</span><span class="n">sort</span><span class="p">(</span><span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
+
+ <span class="k">return</span> <span class="n">results</span><span class="p">[:</span><span class="mi">10</span><span class="p">]</span>
+</pre></div>
+
+</div>
+
+
+
+
+
+
+<div class="pj-input pj-fold fold-hide">
+<div class=" highlight hl-ipython3"><pre><span></span><span class="n">schools</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;Hinduism&quot;</span><span class="p">]</span>
+</pre></div>
+
+</div>
+
+
+
+
+
+
+<div class="pj-input pj-fold fold-hide">
+<div class=" highlight hl-ipython3"><pre><span></span><span class="n">similar_sentences</span> <span class="o">=</span> <span class="n">find_similar_sentences</span><span class="p">(</span><span class="s2">&quot;Emphasis on societal roles and personal decorum&quot;</span><span class="p">,</span> <span class="n">schools</span><span class="p">,</span> <span class="n">documents</span><span class="p">,</span> <span class="n">model</span><span class="p">)</span>
+<span class="k">for</span> <span class="n">similarity</span><span class="p">,</span> <span class="n">school</span><span class="p">,</span> <span class="n">text_name</span><span class="p">,</span> <span class="n">sentence</span> <span class="ow">in</span> <span class="n">similar_sentences</span><span class="p">:</span>
+ <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;School: </span><span class="si">{</span><span class="n">school</span><span class="si">}</span><span class="s2">, Text: </span><span class="si">{</span><span class="n">text_name</span><span class="si">}</span><span class="s2">, Sentence: &#39;</span><span class="si">{</span><span class="n">sentence</span><span class="si">}</span><span class="s2">&#39;, Similarity: </span><span class="si">{</span><span class="n">similarity</span><span class="si">:</span><span class="s2">.4f</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</pre></div>
+
+</div>
+
+<pre>School: Hinduism, Text: The Vishnu Purana, Sentence: &#39;Miscellaneous obligations--purificatory, ceremonial, and moral.&#39;, Similarity: 0.4666
+School: Hinduism, Text: The Vishnu Purana, Sentence: &#39;Cleanliness, rules of, .&#39;, Similarity: 0.4590
+School: Hinduism, Text: Rig Veda, Sentence: &#39;Wherefore linger ye with folk who, offering not, are held in high esteem?&#39;, Similarity: 0.4429
+School: Hinduism, Text: Rig Veda, Sentence: &#39;With entertainment we receive thee friendly: effectual be the sacrificer&#39;s wishes.&#39;, Similarity: 0.4394
+School: Hinduism, Text: The Upanishads (Part 1), Sentence: &#39;In these days of anthropological research, when no custom is too disgusting to be recorded, no rules of intermarriage too complicated to be disentangled, it may seem strange that the few genuine relics of ancient religion which, as by a miracle, have been preserved to us, should thus have been judged from a purely aesthetic, and not from an historical point of view.&#39;, Similarity: 0.4338
+School: Hinduism, Text: The Vishnu Purana, Sentence: &#39;Aware of this truth, a wise man will never be influenced by the principle of individual appropriation; and regarding them as only transient and temporal possessions, he will not consider children and posterity, lands and property, or whatever else is personal, to be his own.&#39;, Similarity: 0.4223
+School: Hinduism, Text: Upanisads (Patrick Olivelle), Sentence: &#39;So a man should regard only his self as dear to him.&#39;, Similarity: 0.4217
+School: Hinduism, Text: The Mahabharata of Krishna-Dwaipayana Vyasa, Sentence: &#39;It contains an account of various manners and rites.&#39;, Similarity: 0.4130
+School: Hinduism, Text: The Vishnu Purana, Sentence: &#39;Let not a man associate, in residence, sitting, or society, with him whose person or whose house has been blasted by the sighs of the gods, progenitors, and spirits.&#39;, Similarity: 0.4122
+School: Hinduism, Text: The Upanishads (Part 1), Sentence: &#39;Thus while small and vulgar people are always quarrelling, abusive, and slandering, great men seem to have obtained a part of the reward of reflection.&#39;, Similarity: 0.4090
+</pre>
+
+
+
+
+
+
+
+
+<div class="pj-input pj-fold fold-hide">
+<div class=" highlight hl-ipython3"><pre><span></span><span class="n">schools</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;Confucianism&quot;</span><span class="p">]</span>
+</pre></div>
+
+</div>
+
+
+
+
+
+
+<div class="pj-input pj-fold fold-hide">
+<div class=" highlight hl-ipython3"><pre><span></span><span class="n">similar_sentences</span> <span class="o">=</span> <span class="n">find_similar_sentences</span><span class="p">(</span><span class="s2">&quot;Duty, Dharma, and Ritual Significance&quot;</span><span class="p">,</span> <span class="n">schools</span><span class="p">,</span> <span class="n">documents</span><span class="p">,</span> <span class="n">model</span><span class="p">)</span>
+<span class="k">for</span> <span class="n">similarity</span><span class="p">,</span> <span class="n">school</span><span class="p">,</span> <span class="n">text_name</span><span class="p">,</span> <span class="n">sentence</span> <span class="ow">in</span> <span class="n">similar_sentences</span><span class="p">:</span>
+ <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;School: </span><span class="si">{</span><span class="n">school</span><span class="si">}</span><span class="s2">, Text: </span><span class="si">{</span><span class="n">text_name</span><span class="si">}</span><span class="s2">, Sentence: &#39;</span><span class="si">{</span><span class="n">sentence</span><span class="si">}</span><span class="s2">&#39;, Similarity: </span><span class="si">{</span><span class="n">similarity</span><span class="si">:</span><span class="s2">.4f</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+</pre></div>
+
+</div>
+
+<pre>School: Confucianism, Text: Analects, Sentence: &#39;The philosopher Tsang said, &#34;Let there be a careful attention to perform the funeral rites to parents, and let them be followed when long gone with the ceremonies of sacrifice;-then the virtue of the people will resume its proper excellence.&#34;&#39;, Similarity: 0.4724
+School: Confucianism, Text: Analects, Sentence: &#39;The Master said, &#34;Abroad, to serve the high ministers and nobles; at home, to serve one&#39;s father and elder brothers; in all duties to the dead, not to dare not to exert one&#39;s self; and not to be overcome of wine:-which one of these things do I attain to?&#34;&#39;, Similarity: 0.4722
+School: Confucianism, Text: Mencius, Sentence: &#39;Have you not read the Ritual Usages?-- &#34;At the capping of a young man, his father admonishes him.&#39;, Similarity: 0.4720
+School: Confucianism, Text: Mencius, Sentence: &#39;How is it that you give honour to the carpenter and carriage-wright, and slight him who practises benevolence and righteousness?&#39;&#39;, Similarity: 0.4673
+School: Confucianism, Text: Mencius, Sentence: &#39;&#39;Let it be seen to that the people use their resources of food seasonably, and expend their wealth only on the prescribed ceremonies:-- so their wealth will be more than can be consumed.&#39;, Similarity: 0.4670
+School: Confucianism, Text: Mencius, Sentence: &#39;&#39;The exercise of love between father and son, the observance of righteousness between sovereign and minister, the rules of ceremony between guest and host, the display of knowledge in recognising the talented, and the fulfilling the heavenly course by the sage;-- these are the appointment of Heaven.&#39;, Similarity: 0.4668
+School: Confucianism, Text: Mencius, Sentence: &#39;Moreover, the History says,-- &#34;In the observances of mourning and sacrifice, ancestors are to be followed,&#34; meaning that they received those things from a proper source to hand them down.&#39;&#39;, Similarity: 0.4637
+School: Confucianism, Text: Analects, Sentence: &#39;The Master said, &#34;If a man be without the virtues proper to humanity, what has he to do with the rites of propriety?&#39;, Similarity: 0.4611
+School: Confucianism, Text: Analects, Sentence: &#39;What he attached chief importance to were the food of the people, the duties of mourning, and sacrifices.&#39;, Similarity: 0.4600
+School: Confucianism, Text: Mencius, Sentence: &#39;It is said in the Book of Rites, &#34;A prince ploughs himself, and is assisted by the people, to supply the millet for sacrifice.&#39;, Similarity: 0.4598
+</pre>
+
+
+
+ </div>
+
+ </div>
+ </div>
+ </div>
+
+
+
+ <!-- hotfix to support interactive tables package -->
+ <script type="text/javascript">
+ if ($(".output_subarea.output_javascript").length > 0) {
+ jQuery.noConflict(false);
+ }
+ </script>
+
+ <script>
+/* a lot of this code was taken from rmd styles directly included in the output html page, license was not present there but it is GPL3 */
+
+MAX_HEADERS = 10;
+
+// nextUntilWithTextNodes does the same as nextUntil but it doesn't ignore text nodes
+// credits: https://stackoverflow.com/questions/25873650/jquery-nextuntil-include-text-nodes
+$.fn.nextUntilWithTextNodes = function (until) {
+ var matched = $.map(this, function (elem, i, until) {
+ var matched = [];
+
+ while ((elem = elem.nextSibling) && elem.nodeType !== 9) {
+ if (elem.nodeType === 1 || elem.nodeType === 3) {
+ if (until && jQuery(elem).is(until)) {
+ break;
+ }
+ matched.push(elem);
+ }
+ }
+ return matched;
+ }, until);
+
+ return this.pushStack(matched);
+};
+
+
+// custom preprocessing
+
+function processToken(tokenElement, targetElement, tokenSep) {
+ // Process tokens
+ // For each class in token element, it either sets target element ID by it, or adds it to the list of classes
+ $.each(tokenElement.text().split(tokenSep), function (tokenIndex, tokenValue) {
+ if (tokenValue.startsWith("#")) {
+ targetElement.attr("id", tokenValue.substring(1));
+ }
+ else if (tokenValue.startsWith(".")) {
+ targetElement.addClass(tokenValue.substring(1));
+ }
+ else {
+ targetElement.addClass(tokenValue);
+ }
+ });
+}
+
+window.fixElementIds = function() {
+ // escape all ids
+ $("[id]").attr("id", function (idx, id) {
+ // uri decode
+ id = decodeURI(id);
+
+ // escape characters
+ id = id.replace(/['`~!@#$%^&*()|+=?;:'",.<>\{\}\[\]\\\/]/gi, "")
+
+ return id
+ });
+};
+
+window.initializeSections = function () {
+ let tabNumber = 1;
+
+ // create nested structure:
+ // e.g. wrap <h2></h2> into div ending right before the next <h2>
+ // so <h2></h2><h2></h2> -> <div><h2></h2></div><div><h2>...
+ // note that this assumes linear structure - the h2, h3 etc must be on the
+ // same level and not hidden in the nested divs
+
+ for (let h = 1; h <= MAX_HEADERS; h++) {
+ $(`#main-content h${h}`).each(function (i, e) {
+ let x = h;
+
+ d = {
+ "id": tabNumber++ + "",
+ "class": ["section", `level${x}`],
+ };
+
+ // add the computed classes and attributes
+ class_attr = d["class"].join(" ");
+ id_attr = d["id"];
+
+ untilNodes = `${this.tagName}`
+ for (let hPrev = 1; hPrev < x; hPrev++) {
+ untilNodes += `,.level${hPrev}`
+ }
+
+ $(this).nextUntilWithTextNodes(untilNodes).addBack().wrapAll(`<div id='${id_attr}' class='${class_attr}' />`);
+ });
+ }
+}
+
+window.processTokens = function (tokenSep) {
+ // process all pj-token elements
+ $("#main-content .pj-token").each(function (i, e) {
+ prevSibling = $(this).prev()
+
+ // if we don't have a previous sibling => the element is probably wrapped in paragraph due to markdown compiler
+ if (prevSibling.length == 0) {
+ prevSibling = $(this).parent().prev()
+ }
+
+ // if previous sibling is header => apply tokens to the wrapping section
+ processToken(tokenElement = $(this), targetElement = prevSibling, tokenSep = tokenSep)
+ });
+}
+
+window.processHeaders = function () {
+ let customSep = "-O_O-";
+ let counterDict = {};
+ $("#main-content :header").each(function (idx, e) {
+ // get id and class and add it to the wrapping section element
+ let sectionElement = $(e).closest("div.section");
+
+ // get id - either from tab number, or from header, if it has one
+ let id = $(e).attr("id");
+ if (id != null) {
+ // initialize id dict
+ if (!(id in counterDict)) {
+ counterDict[id] = 1;
+ }
+ $(e).removeAttr("id");
+
+ let newId = id;
+
+ // if has duplicate => modify the ID with counter
+ // duplicate can be if counterDict for this id has entry larger than 1 (it has been incremented before)
+ // or it found another element with same ID after deleting this elements ID
+ let isDuplicate = $(`[id='${id}']`).length > 0 || counterDict[id] > 1
+ if (isDuplicate) {
+ newId = newId + `${customSep}${counterDict[id]++}`;
+ }
+ sectionElement.attr("id", newId);
+ }
+
+ // get classes from header
+ if ($(e).attr("class") != null) {
+ $.each($(e).attr('class').split(/\s+/), function (idx, el) {
+ sectionElement.addClass(el);
+ });
+
+ $(e).attr("class", null);
+ }
+ })
+}
+
+window.initializeCodeFolding = function (show) {
+ $("#jup-show-all-code").click(function () {
+ $('div.py-code-collapse').each(function () {
+ $(this).collapse('show');
+ });
+ });
+ $("#jup-hide-all-code").click(function () {
+ $('div.py-code-collapse').each(function () {
+ $(this).collapse('hide');
+ });
+ });
+
+ // index for unique code element ids
+ var currentIndex = 1;
+
+ // select all jupyter code blocks
+ var jupyterCodeBlocks = $('div.pj-fold');
+ jupyterCodeBlocks.each(function () {
+
+ // create a collapsable div to wrap the code in
+ var div = $('<div class="collapse py-code-collapse"></div>');
+ var showThis = (show || $(this).hasClass('fold-show')) && !$(this).hasClass('fold-hide');
+ if (showThis) div.addClass('in');
+ var id = 'code-643E0F36' + currentIndex++;
+ div.attr('id', id);
+ $(this).before(div);
+ $(this).detach().appendTo(div);
+
+ // add a show code button right above
+ var showCodeText = $('<span>' + (showThis ? 'Hide' : 'Code') + '</span>');
+ var showCodeButton = $('<button type="button" class="btn btn-default btn-xs code-folding-btn pull-right"></button>');
+ showCodeButton.append(showCodeText);
+ showCodeButton
+ .attr('data-toggle', 'collapse')
+ .attr('data-target', '#' + id)
+ .attr('aria-expanded', showThis)
+ .attr('aria-controls', id);
+
+ var buttonRow = $('<div class="row"></div>');
+ var buttonCol = $('<div class="col-md-12"></div>');
+
+ buttonCol.append(showCodeButton);
+ buttonRow.append(buttonCol);
+
+ div.before(buttonRow);
+
+ // update state of button on show/hide
+ div.on('hidden.bs.collapse', function () {
+ showCodeText.text('Code');
+ });
+ div.on('show.bs.collapse', function () {
+ showCodeText.text('Hide');
+ });
+ });
+}
+
+
+window.numberSections = function () {
+ let headerSelector = "#main-content div.section:not(.unnumbered)>:header"
+
+ let firstLevel = 1;
+
+ // holds current index for each header
+ let levels = []
+ $(headerSelector).each(function (idx, el) {
+ // get current level
+ let level = parseInt(this.nodeName.substring(1));
+
+ level = level - firstLevel + 1;
+
+ // current level appeared again => just increment
+ if (level == levels.length) {
+ levels[level - 1]++;
+ }
+ // new level appeared => add the new levels and increment
+ // e.g.
+ // we have h2 and we discovered next new is h4
+ // we need to fill in levels for h3 and h4, and then increment h4
+ else if (level > levels.length) {
+ let levelsLength = levels.length
+ for (let i = 0; i < (level - levelsLength); i++) {
+ levels.push(0);
+ }
+
+ levels[level - 1]++;
+ }
+ // previous level appeared => we need to shrink
+ else if (level < levels.length) {
+ levels = levels.slice(0, level);
+ levels[level - 1]++;
+ }
+
+ numberedText = levels.join(".") + ". " + $(this).text();
+ $(this).text(numberedText);
+ })
+}
+
+window.initializeTOC = function (tocDepth, tocCollapsed, tocSmoothScroll, tocExtendPage) {
+ // consistency with pandoc
+ $('.unlisted.unnumbered').addClass('toc-ignore')
+
+ // get allowed headers str
+ let headers = []
+ for (let i = 1; i <= MAX_HEADERS; i++) {
+ headers.push(`h${i}`)
+ }
+ headers = headers.join(",")
+
+ // move toc-ignore selectors from section div to header
+ $('div.section.toc-ignore')
+ .removeClass('toc-ignore')
+ .children(headers).addClass('toc-ignore');
+
+ selectors = []
+ for (var i = 0; i < tocDepth; i++) {
+ selectors.push(`h${i + 1}`)
+ }
+ selectors = selectors.join(",");
+
+ // establish options
+ var options = {
+ selectors: selectors,
+ theme: "bootstrap3",
+ context: '.toc-content',
+ hashGenerator: function (text) {
+ return text.replace(/[.\\/?&!#<>"']/g, '').replace(/\s/g, '_');
+ },
+ ignoreSelector: ".toc-ignore",
+ scrollTo: 0,
+ extendPage: tocExtendPage
+ };
+
+ options.smoothScroll = tocSmoothScroll;
+
+ // tocify
+ var toc = $("#TOC").tocify(options).data("toc-tocify");
+
+ if (!tocCollapsed) {
+ toc.setOptions({ "showAndHideOnScroll": false, "showAndHide": false });
+ $(".tocify-subheader").show();
+ }
+}
+
+window.initializeTabsets = function () {
+ window.buildTabsets("TOC");
+
+ // open tabset-dropdown
+ $('.tabset-dropdown > .nav-tabs > li').click(function () {
+ $(this).parent().toggleClass('nav-tabs-open')
+ });
+};
+</script>
+
+ <script type="text/javascript">
+
+
+ $(document).ready(function() {
+ window.fixElementIds();
+
+ // remove useless anchor from Jupyter
+ $("a.anchor-link").remove();
+ window.initializeSections();
+ window.processTokens(tokenSep="|O_O|");
+ window.processHeaders(tokenSep="|O_O|");
+
+
+ // tabsets
+ window.initializeTabsets();
+
+
+
+
+
+ // TOC
+ let tocDepth = 3;
+ let tocCollapsed = true;
+ let tocSmoothScroll = true;
+ let tocExtendPage = true;
+ window.initializeTOC(tocDepth=tocDepth, tocCollapsed=tocCollapsed, tocSmoothScroll=tocSmoothScroll, tocExtendPage=tocExtendPage);
+
+
+
+ // code folding
+ window.initializeCodeFolding("hide" === "show");
+
+
+ // prettify tables (that aren't ignored)
+ $("table:not(.pj-table-ignore)").addClass("table").addClass("table-striped").addClass("table-hover");
+ $("table.dataframe:not(.pj-table-ignore)").removeAttr("border");
+ });
+ </script>
+
+
+</body></html> \ No newline at end of file