Page MenuHomePhabricator

WDQS Analysis Report.html

Authored By
mpopov
Oct 9 2015, 11:43 PM
Size
1 MB
Referenced Files
None
Subscribers

WDQS Analysis Report.html

This file is larger than 256 KB, so syntax highlighting was skipped.
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="pandoc" />
<title></title>
<script src="data:application/x-javascript;base64,LyohIGpRdWVyeSB2MS4xMS4xIHwgKGMpIDIwMDUsIDIwMTQgalF1ZXJ5IEZvdW5kYXRpb24sIEluYy4gfCBqcXVlcnkub3JnL2xpY2Vuc2UgKi8KIWZ1bmN0aW9uKGEsYil7Im9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlLmV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9YS5kb2N1bWVudD9iKGEsITApOmZ1bmN0aW9uKGEpe2lmKCFhLmRvY3VtZW50KXRocm93IG5ldyBFcnJvcigialF1ZXJ5IHJlcXVpcmVzIGEgd2luZG93IHdpdGggYSBkb2N1bWVudCIpO3JldHVybiBiKGEpfTpiKGEpfSgidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6dGhpcyxmdW5jdGlvbihhLGIpe3ZhciBjPVtdLGQ9Yy5zbGljZSxlPWMuY29uY2F0LGY9Yy5wdXNoLGc9Yy5pbmRleE9mLGg9e30saT1oLnRvU3RyaW5nLGo9aC5oYXNPd25Qcm9wZXJ0eSxrPXt9LGw9IjEuMTEuMSIsbT1mdW5jdGlvbihhLGIpe3JldHVybiBuZXcgbS5mbi5pbml0KGEsYil9LG49L15bXHNcdUZFRkZceEEwXSt8W1xzXHVGRUZGXHhBMF0rJC9nLG89L14tbXMtLyxwPS8tKFtcZGEtel0pL2dpLHE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYi50b1VwcGVyQ2FzZSgpfTttLmZuPW0ucHJvdG90eXBlPXtqcXVlcnk6bCxjb25zdHJ1Y3RvcjptLHNlbGVjdG9yOiIiLGxlbmd0aDowLHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gZC5jYWxsKHRoaXMpfSxnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGwhPWE/MD5hP3RoaXNbYSt0aGlzLmxlbmd0aF06dGhpc1thXTpkLmNhbGwodGhpcyl9LHB1c2hTdGFjazpmdW5jdGlvbihhKXt2YXIgYj1tLm1lcmdlKHRoaXMuY29uc3RydWN0b3IoKSxhKTtyZXR1cm4gYi5wcmV2T2JqZWN0PXRoaXMsYi5jb250ZXh0PXRoaXMuY29udGV4dCxifSxlYWNoOmZ1bmN0aW9uKGEsYil7cmV0dXJuIG0uZWFjaCh0aGlzLGEsYil9LG1hcDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2sobS5tYXAodGhpcyxmdW5jdGlvbihiLGMpe3JldHVybiBhLmNhbGwoYixjLGIpfSkpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhkLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9LGZpcnN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoMCl9LGxhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgtMSl9LGVxOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMubGVuZ3RoLGM9K2ErKDA+YT9iOjApO3JldHVybiB0aGlzLnB1c2hTdGFjayhjPj0wJiZiPmM/W3RoaXNbY11dOltdKX0sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJldk9iamVjdHx8dGhpcy5jb25zdHJ1Y3RvcihudWxsKX0scHVzaDpmLHNvcnQ6Yy5zb3J0LHNwbGljZTpjLnNwbGljZX0sbS5leHRlbmQ9bS5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgYSxiLGMsZCxlLGYsZz1hcmd1bWVudHNbMF18fHt9LGg9MSxpPWFyZ3VtZW50cy5sZW5ndGgsaj0hMTtmb3IoImJvb2xlYW4iPT10eXBlb2YgZyYmKGo9ZyxnPWFyZ3VtZW50c1toXXx8e30saCsrKSwib2JqZWN0Ij09dHlwZW9mIGd8fG0uaXNGdW5jdGlvbihnKXx8KGc9e30pLGg9PT1pJiYoZz10aGlzLGgtLSk7aT5oO2grKylpZihudWxsIT0oZT1hcmd1bWVudHNbaF0pKWZvcihkIGluIGUpYT1nW2RdLGM9ZVtkXSxnIT09YyYmKGomJmMmJihtLmlzUGxhaW5PYmplY3QoYyl8fChiPW0uaXNBcnJheShjKSkpPyhiPyhiPSExLGY9YSYmbS5pc0FycmF5KGEpP2E6W10pOmY9YSYmbS5pc1BsYWluT2JqZWN0KGEpP2E6e30sZ1tkXT1tLmV4dGVuZChqLGYsYykpOnZvaWQgMCE9PWMmJihnW2RdPWMpKTtyZXR1cm4gZ30sbS5leHRlbmQoe2V4cGFuZG86ImpRdWVyeSIrKGwrTWF0aC5yYW5kb20oKSkucmVwbGFjZSgvXEQvZywiIiksaXNSZWFkeTohMCxlcnJvcjpmdW5jdGlvbihhKXt0aHJvdyBuZXcgRXJyb3IoYSl9LG5vb3A6ZnVuY3Rpb24oKXt9LGlzRnVuY3Rpb246ZnVuY3Rpb24oYSl7cmV0dXJuImZ1bmN0aW9uIj09PW0udHlwZShhKX0saXNBcnJheTpBcnJheS5pc0FycmF5fHxmdW5jdGlvbihhKXtyZXR1cm4iYXJyYXkiPT09bS50eXBlKGEpfSxpc1dpbmRvdzpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbCE9YSYmYT09YS53aW5kb3d9LGlzTnVtZXJpYzpmdW5jdGlvbihhKXtyZXR1cm4hbS5pc0FycmF5KGEpJiZhLXBhcnNlRmxvYXQoYSk+PTB9LGlzRW1wdHlPYmplY3Q6ZnVuY3Rpb24oYSl7dmFyIGI7Zm9yKGIgaW4gYSlyZXR1cm4hMTtyZXR1cm4hMH0saXNQbGFpbk9iamVjdDpmdW5jdGlvbihhKXt2YXIgYjtpZighYXx8Im9iamVjdCIhPT1tLnR5cGUoYSl8fGEubm9kZVR5cGV8fG0uaXNXaW5kb3coYSkpcmV0dXJuITE7dHJ5e2lmKGEuY29uc3RydWN0b3ImJiFqLmNhbGwoYSwiY29uc3RydWN0b3IiKSYmIWouY2FsbChhLmNvbnN0cnVjdG9yLnByb3RvdHlwZSwiaXNQcm90b3R5cGVPZiIpKXJldHVybiExfWNhdGNoKGMpe3JldHVybiExfWlmKGsub3duTGFzdClmb3IoYiBpbiBhKXJldHVybiBqLmNhbGwoYSxiKTtmb3IoYiBpbiBhKTtyZXR1cm4gdm9pZCAwPT09Ynx8ai5jYWxsKGEsYil9LHR5cGU6ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PWE/YSsiIjoib2JqZWN0Ij09dHlwZW9mIGF8fCJmdW5jdGlvbiI9PXR5cGVvZiBhP2hbaS5jYWxsKGEpXXx8Im9iamVjdCI6dHlwZW9mIGF9LGdsb2JhbEV2YWw6ZnVuY3Rpb24oYil7YiYmbS50cmltKGIpJiYoYS5leGVjU2NyaXB0fHxmdW5jdGlvbihiKXthLmV2YWwuY2FsbChhLGIpfSkoYil9LGNhbWVsQ2FzZTpmdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKG8sIm1zLSIpLnJlcGxhY2UocCxxKX0sbm9kZU5hbWU6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09Yi50b0xvd2VyQ2FzZSgpfSxlYWNoOmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlPTAsZj1hLmxlbmd0aCxnPXIoYSk7aWYoYyl7aWYoZyl7Zm9yKDtmPmU7ZSsrKWlmKGQ9Yi5hcHBseShhW2VdLGMpLGQ9PT0hMSlicmVha31lbHNlIGZvcihlIGluIGEpaWYoZD1iLmFwcGx5KGFbZV0sYyksZD09PSExKWJyZWFrfWVsc2UgaWYoZyl7Zm9yKDtmPmU7ZSsrKWlmKGQ9Yi5jYWxsKGFbZV0sZSxhW2VdKSxkPT09ITEpYnJlYWt9ZWxzZSBmb3IoZSBpbiBhKWlmKGQ9Yi5jYWxsKGFbZV0sZSxhW2VdKSxkPT09ITEpYnJlYWs7cmV0dXJuIGF9LHRyaW06ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PWE/IiI6KGErIiIpLnJlcGxhY2UobiwiIil9LG1ha2VBcnJheTpmdW5jdGlvbihhLGIpe3ZhciBjPWJ8fFtdO3JldHVybiBudWxsIT1hJiYocihPYmplY3QoYSkpP20ubWVyZ2UoYywic3RyaW5nIj09dHlwZW9mIGE/W2FdOmEpOmYuY2FsbChjLGEpKSxjfSxpbkFycmF5OmZ1bmN0aW9uKGEsYixjKXt2YXIgZDtpZihiKXtpZihnKXJldHVybiBnLmNhbGwoYixhLGMpO2ZvcihkPWIubGVuZ3RoLGM9Yz8wPmM/TWF0aC5tYXgoMCxkK2MpOmM6MDtkPmM7YysrKWlmKGMgaW4gYiYmYltjXT09PWEpcmV0dXJuIGN9cmV0dXJuLTF9LG1lcmdlOmZ1bmN0aW9uKGEsYil7dmFyIGM9K2IubGVuZ3RoLGQ9MCxlPWEubGVuZ3RoO3doaWxlKGM+ZClhW2UrK109YltkKytdO2lmKGMhPT1jKXdoaWxlKHZvaWQgMCE9PWJbZF0pYVtlKytdPWJbZCsrXTtyZXR1cm4gYS5sZW5ndGg9ZSxhfSxncmVwOmZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQsZT1bXSxmPTAsZz1hLmxlbmd0aCxoPSFjO2c+ZjtmKyspZD0hYihhW2ZdLGYpLGQhPT1oJiZlLnB1c2goYVtmXSk7cmV0dXJuIGV9LG1hcDpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZj0wLGc9YS5sZW5ndGgsaD1yKGEpLGk9W107aWYoaClmb3IoO2c+ZjtmKyspZD1iKGFbZl0sZixjKSxudWxsIT1kJiZpLnB1c2goZCk7ZWxzZSBmb3IoZiBpbiBhKWQ9YihhW2ZdLGYsYyksbnVsbCE9ZCYmaS5wdXNoKGQpO3JldHVybiBlLmFwcGx5KFtdLGkpfSxndWlkOjEscHJveHk6ZnVuY3Rpb24oYSxiKXt2YXIgYyxlLGY7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBiJiYoZj1hW2JdLGI9YSxhPWYpLG0uaXNGdW5jdGlvbihhKT8oYz1kLmNhbGwoYXJndW1lbnRzLDIpLGU9ZnVuY3Rpb24oKXtyZXR1cm4gYS5hcHBseShifHx0aGlzLGMuY29uY2F0KGQuY2FsbChhcmd1bWVudHMpKSl9LGUuZ3VpZD1hLmd1aWQ9YS5ndWlkfHxtLmd1aWQrKyxlKTp2b2lkIDB9LG5vdzpmdW5jdGlvbigpe3JldHVybituZXcgRGF0ZX0sc3VwcG9ydDprfSksbS5lYWNoKCJCb29sZWFuIE51bWJlciBTdHJpbmcgRnVuY3Rpb24gQXJyYXkgRGF0ZSBSZWdFeHAgT2JqZWN0IEVycm9yIi5zcGxpdCgiICIpLGZ1bmN0aW9uKGEsYil7aFsiW29iamVjdCAiK2IrIl0iXT1iLnRvTG93ZXJDYXNlKCl9KTtmdW5jdGlvbiByKGEpe3ZhciBiPWEubGVuZ3RoLGM9bS50eXBlKGEpO3JldHVybiJmdW5jdGlvbiI9PT1jfHxtLmlzV2luZG93KGEpPyExOjE9PT1hLm5vZGVUeXBlJiZiPyEwOiJhcnJheSI9PT1jfHwwPT09Ynx8Im51bWJlciI9PXR5cGVvZiBiJiZiPjAmJmItMSBpbiBhfXZhciBzPWZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0LHU9InNpenpsZSIrLW5ldyBEYXRlLHY9YS5kb2N1bWVudCx3PTAseD0wLHk9Z2IoKSx6PWdiKCksQT1nYigpLEI9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT09PWImJihsPSEwKSwwfSxDPSJ1bmRlZmluZWQiLEQ9MTw8MzEsRT17fS5oYXNPd25Qcm9wZXJ0eSxGPVtdLEc9Ri5wb3AsSD1GLnB1c2gsST1GLnB1c2gsSj1GLnNsaWNlLEs9Ri5pbmRleE9mfHxmdW5jdGlvbihhKXtmb3IodmFyIGI9MCxjPXRoaXMubGVuZ3RoO2M+YjtiKyspaWYodGhpc1tiXT09PWEpcmV0dXJuIGI7cmV0dXJuLTF9LEw9ImNoZWNrZWR8c2VsZWN0ZWR8YXN5bmN8YXV0b2ZvY3VzfGF1dG9wbGF5fGNvbnRyb2xzfGRlZmVyfGRpc2FibGVkfGhpZGRlbnxpc21hcHxsb29wfG11bHRpcGxlfG9wZW58cmVhZG9ubHl8cmVxdWlyZWR8c2NvcGVkIixNPSJbXFx4MjBcXHRcXHJcXG5cXGZdIixOPSIoPzpcXFxcLnxbXFx3LV18W15cXHgwMC1cXHhhMF0pKyIsTz1OLnJlcGxhY2UoInciLCJ3IyIpLFA9IlxcWyIrTSsiKigiK04rIikoPzoiK00rIiooWypeJHwhfl0/PSkiK00rIiooPzonKCg/OlxcXFwufFteXFxcXCddKSopJ3xcIigoPzpcXFxcLnxbXlxcXFxcIl0pKilcInwoIitPKyIpKXwpIitNKyIqXFxdIixRPSI6KCIrTisiKSg/OlxcKCgoJygoPzpcXFxcLnxbXlxcXFwnXSkqKSd8XCIoKD86XFxcXC58W15cXFxcXCJdKSopXCIpfCgoPzpcXFxcLnxbXlxcXFwoKVtcXF1dfCIrUCsiKSopfC4qKVxcKXwpIixSPW5ldyBSZWdFeHAoIl4iK00rIit8KCg/Ol58W15cXFxcXSkoPzpcXFxcLikqKSIrTSsiKyQiLCJnIiksUz1uZXcgUmVnRXhwKCJeIitNKyIqLCIrTSsiKiIpLFQ9bmV3IFJlZ0V4cCgiXiIrTSsiKihbPit+XXwiK00rIikiK00rIioiKSxVPW5ldyBSZWdFeHAoIj0iK00rIiooW15cXF0nXCJdKj8pIitNKyIqXFxdIiwiZyIpLFY9bmV3IFJlZ0V4cChRKSxXPW5ldyBSZWdFeHAoIl4iK08rIiQiKSxYPXtJRDpuZXcgUmVnRXhwKCJeIygiK04rIikiKSxDTEFTUzpuZXcgUmVnRXhwKCJeXFwuKCIrTisiKSIpLFRBRzpuZXcgUmVnRXhwKCJeKCIrTi5yZXBsYWNlKCJ3IiwidyoiKSsiKSIpLEFUVFI6bmV3IFJlZ0V4cCgiXiIrUCksUFNFVURPOm5ldyBSZWdFeHAoIl4iK1EpLENISUxEOm5ldyBSZWdFeHAoIl46KG9ubHl8Zmlyc3R8bGFzdHxudGh8bnRoLWxhc3QpLShjaGlsZHxvZi10eXBlKSg/OlxcKCIrTSsiKihldmVufG9kZHwoKFsrLV18KShcXGQqKW58KSIrTSsiKig/OihbKy1dfCkiK00rIiooXFxkKyl8KSkiK00rIipcXCl8KSIsImkiKSxib29sOm5ldyBSZWdFeHAoIl4oPzoiK0wrIikkIiwiaSIpLG5lZWRzQ29udGV4dDpuZXcgUmVnRXhwKCJeIitNKyIqWz4rfl18OihldmVufG9kZHxlcXxndHxsdHxudGh8Zmlyc3R8bGFzdCkoPzpcXCgiK00rIiooKD86LVxcZCk/XFxkKikiK00rIipcXCl8KSg/PVteLV18JCkiLCJpIil9LFk9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9uKSQvaSxaPS9eaFxkJC9pLCQ9L15bXntdK1x7XHMqXFtuYXRpdmUgXHcvLF89L14oPzojKFtcdy1dKyl8KFx3Kyl8XC4oW1x3LV0rKSkkLyxhYj0vWyt+XS8sYmI9Lyd8XFwvZyxjYj1uZXcgUmVnRXhwKCJcXFxcKFtcXGRhLWZdezEsNn0iK00rIj98KCIrTSsiKXwuKSIsImlnIiksZGI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPSIweCIrYi02NTUzNjtyZXR1cm4gZCE9PWR8fGM/YjowPmQ/U3RyaW5nLmZyb21DaGFyQ29kZShkKzY1NTM2KTpTdHJpbmcuZnJvbUNoYXJDb2RlKGQ+PjEwfDU1Mjk2LDEwMjMmZHw1NjMyMCl9O3RyeXtJLmFwcGx5KEY9Si5jYWxsKHYuY2hpbGROb2Rlcyksdi5jaGlsZE5vZGVzKSxGW3YuY2hpbGROb2Rlcy5sZW5ndGhdLm5vZGVUeXBlfWNhdGNoKGViKXtJPXthcHBseTpGLmxlbmd0aD9mdW5jdGlvbihhLGIpe0guYXBwbHkoYSxKLmNhbGwoYikpfTpmdW5jdGlvbihhLGIpe3ZhciBjPWEubGVuZ3RoLGQ9MDt3aGlsZShhW2MrK109YltkKytdKTthLmxlbmd0aD1jLTF9fX1mdW5jdGlvbiBmYihhLGIsZCxlKXt2YXIgZixoLGosayxsLG8scixzLHcseDtpZigoYj9iLm93bmVyRG9jdW1lbnR8fGI6dikhPT1uJiZtKGIpLGI9Ynx8bixkPWR8fFtdLCFhfHwic3RyaW5nIiE9dHlwZW9mIGEpcmV0dXJuIGQ7aWYoMSE9PShrPWIubm9kZVR5cGUpJiY5IT09aylyZXR1cm5bXTtpZihwJiYhZSl7aWYoZj1fLmV4ZWMoYSkpaWYoaj1mWzFdKXtpZig5PT09ayl7aWYoaD1iLmdldEVsZW1lbnRCeUlkKGopLCFofHwhaC5wYXJlbnROb2RlKXJldHVybiBkO2lmKGguaWQ9PT1qKXJldHVybiBkLnB1c2goaCksZH1lbHNlIGlmKGIub3duZXJEb2N1bWVudCYmKGg9Yi5vd25lckRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGopKSYmdChiLGgpJiZoLmlkPT09ailyZXR1cm4gZC5wdXNoKGgpLGR9ZWxzZXtpZihmWzJdKXJldHVybiBJLmFwcGx5KGQsYi5nZXRFbGVtZW50c0J5VGFnTmFtZShhKSksZDtpZigoaj1mWzNdKSYmYy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lJiZiLmdldEVsZW1lbnRzQnlDbGFzc05hbWUpcmV0dXJuIEkuYXBwbHkoZCxiLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoaikpLGR9aWYoYy5xc2EmJighcXx8IXEudGVzdChhKSkpe2lmKHM9cj11LHc9Yix4PTk9PT1rJiZhLDE9PT1rJiYib2JqZWN0IiE9PWIubm9kZU5hbWUudG9Mb3dlckNhc2UoKSl7bz1nKGEpLChyPWIuZ2V0QXR0cmlidXRlKCJpZCIpKT9zPXIucmVwbGFjZShiYiwiXFwkJiIpOmIuc2V0QXR0cmlidXRlKCJpZCIscykscz0iW2lkPSciK3MrIiddICIsbD1vLmxlbmd0aDt3aGlsZShsLS0pb1tsXT1zK3FiKG9bbF0pO3c9YWIudGVzdChhKSYmb2IoYi5wYXJlbnROb2RlKXx8Yix4PW8uam9pbigiLCIpfWlmKHgpdHJ5e3JldHVybiBJLmFwcGx5KGQsdy5xdWVyeVNlbGVjdG9yQWxsKHgpKSxkfWNhdGNoKHkpe31maW5hbGx5e3J8fGIucmVtb3ZlQXR0cmlidXRlKCJpZCIpfX19cmV0dXJuIGkoYS5yZXBsYWNlKFIsIiQxIiksYixkLGUpfWZ1bmN0aW9uIGdiKCl7dmFyIGE9W107ZnVuY3Rpb24gYihjLGUpe3JldHVybiBhLnB1c2goYysiICIpPmQuY2FjaGVMZW5ndGgmJmRlbGV0ZSBiW2Euc2hpZnQoKV0sYltjKyIgIl09ZX1yZXR1cm4gYn1mdW5jdGlvbiBoYihhKXtyZXR1cm4gYVt1XT0hMCxhfWZ1bmN0aW9uIGliKGEpe3ZhciBiPW4uY3JlYXRlRWxlbWVudCgiZGl2Iik7dHJ5e3JldHVybiEhYShiKX1jYXRjaChjKXtyZXR1cm4hMX1maW5hbGx5e2IucGFyZW50Tm9kZSYmYi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGIpLGI9bnVsbH19ZnVuY3Rpb24gamIoYSxiKXt2YXIgYz1hLnNwbGl0KCJ8IiksZT1hLmxlbmd0aDt3aGlsZShlLS0pZC5hdHRySGFuZGxlW2NbZV1dPWJ9ZnVuY3Rpb24ga2IoYSxiKXt2YXIgYz1iJiZhLGQ9YyYmMT09PWEubm9kZVR5cGUmJjE9PT1iLm5vZGVUeXBlJiYofmIuc291cmNlSW5kZXh8fEQpLSh+YS5zb3VyY2VJbmRleHx8RCk7aWYoZClyZXR1cm4gZDtpZihjKXdoaWxlKGM9Yy5uZXh0U2libGluZylpZihjPT09YilyZXR1cm4tMTtyZXR1cm4gYT8xOi0xfWZ1bmN0aW9uIGxiKGEpe3JldHVybiBmdW5jdGlvbihiKXt2YXIgYz1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PWMmJmIudHlwZT09PWF9fWZ1bmN0aW9uIG1iKGEpe3JldHVybiBmdW5jdGlvbihiKXt2YXIgYz1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuKCJpbnB1dCI9PT1jfHwiYnV0dG9uIj09PWMpJiZiLnR5cGU9PT1hfX1mdW5jdGlvbiBuYihhKXtyZXR1cm4gaGIoZnVuY3Rpb24oYil7cmV0dXJuIGI9K2IsaGIoZnVuY3Rpb24oYyxkKXt2YXIgZSxmPWEoW10sYy5sZW5ndGgsYiksZz1mLmxlbmd0aDt3aGlsZShnLS0pY1tlPWZbZ11dJiYoY1tlXT0hKGRbZV09Y1tlXSkpfSl9KX1mdW5jdGlvbiBvYihhKXtyZXR1cm4gYSYmdHlwZW9mIGEuZ2V0RWxlbWVudHNCeVRhZ05hbWUhPT1DJiZhfWM9ZmIuc3VwcG9ydD17fSxmPWZiLmlzWE1MPWZ1bmN0aW9uKGEpe3ZhciBiPWEmJihhLm93bmVyRG9jdW1lbnR8fGEpLmRvY3VtZW50RWxlbWVudDtyZXR1cm4gYj8iSFRNTCIhPT1iLm5vZGVOYW1lOiExfSxtPWZiLnNldERvY3VtZW50PWZ1bmN0aW9uKGEpe3ZhciBiLGU9YT9hLm93bmVyRG9jdW1lbnR8fGE6dixnPWUuZGVmYXVsdFZpZXc7cmV0dXJuIGUhPT1uJiY5PT09ZS5ub2RlVHlwZSYmZS5kb2N1bWVudEVsZW1lbnQ/KG49ZSxvPWUuZG9jdW1lbnRFbGVtZW50LHA9IWYoZSksZyYmZyE9PWcudG9wJiYoZy5hZGRFdmVudExpc3RlbmVyP2cuYWRkRXZlbnRMaXN0ZW5lcigidW5sb2FkIixmdW5jdGlvbigpe20oKX0sITEpOmcuYXR0YWNoRXZlbnQmJmcuYXR0YWNoRXZlbnQoIm9udW5sb2FkIixmdW5jdGlvbigpe20oKX0pKSxjLmF0dHJpYnV0ZXM9aWIoZnVuY3Rpb24oYSl7cmV0dXJuIGEuY2xhc3NOYW1lPSJpIiwhYS5nZXRBdHRyaWJ1dGUoImNsYXNzTmFtZSIpfSksYy5nZXRFbGVtZW50c0J5VGFnTmFtZT1pYihmdW5jdGlvbihhKXtyZXR1cm4gYS5hcHBlbmRDaGlsZChlLmNyZWF0ZUNvbW1lbnQoIiIpKSwhYS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLmxlbmd0aH0pLGMuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZT0kLnRlc3QoZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKSYmaWIoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaW5uZXJIVE1MPSI8ZGl2IGNsYXNzPSdhJz48L2Rpdj48ZGl2IGNsYXNzPSdhIGknPjwvZGl2PiIsYS5maXJzdENoaWxkLmNsYXNzTmFtZT0iaSIsMj09PWEuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiaSIpLmxlbmd0aH0pLGMuZ2V0QnlJZD1pYihmdW5jdGlvbihhKXtyZXR1cm4gby5hcHBlbmRDaGlsZChhKS5pZD11LCFlLmdldEVsZW1lbnRzQnlOYW1lfHwhZS5nZXRFbGVtZW50c0J5TmFtZSh1KS5sZW5ndGh9KSxjLmdldEJ5SWQ/KGQuZmluZC5JRD1mdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBiLmdldEVsZW1lbnRCeUlkIT09QyYmcCl7dmFyIGM9Yi5nZXRFbGVtZW50QnlJZChhKTtyZXR1cm4gYyYmYy5wYXJlbnROb2RlP1tjXTpbXX19LGQuZmlsdGVyLklEPWZ1bmN0aW9uKGEpe3ZhciBiPWEucmVwbGFjZShjYixkYik7cmV0dXJuIGZ1bmN0aW9uKGEpe3JldHVybiBhLmdldEF0dHJpYnV0ZSgiaWQiKT09PWJ9fSk6KGRlbGV0ZSBkLmZpbmQuSUQsZC5maWx0ZXIuSUQ9ZnVuY3Rpb24oYSl7dmFyIGI9YS5yZXBsYWNlKGNiLGRiKTtyZXR1cm4gZnVuY3Rpb24oYSl7dmFyIGM9dHlwZW9mIGEuZ2V0QXR0cmlidXRlTm9kZSE9PUMmJmEuZ2V0QXR0cmlidXRlTm9kZSgiaWQiKTtyZXR1cm4gYyYmYy52YWx1ZT09PWJ9fSksZC5maW5kLlRBRz1jLmdldEVsZW1lbnRzQnlUYWdOYW1lP2Z1bmN0aW9uKGEsYil7cmV0dXJuIHR5cGVvZiBiLmdldEVsZW1lbnRzQnlUYWdOYW1lIT09Qz9iLmdldEVsZW1lbnRzQnlUYWdOYW1lKGEpOnZvaWQgMH06ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPVtdLGU9MCxmPWIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYSk7aWYoIioiPT09YSl7d2hpbGUoYz1mW2UrK10pMT09PWMubm9kZVR5cGUmJmQucHVzaChjKTtyZXR1cm4gZH1yZXR1cm4gZn0sZC5maW5kLkNMQVNTPWMuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSYmZnVuY3Rpb24oYSxiKXtyZXR1cm4gdHlwZW9mIGIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSE9PUMmJnA/Yi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGEpOnZvaWQgMH0scj1bXSxxPVtdLChjLnFzYT0kLnRlc3QoZS5xdWVyeVNlbGVjdG9yQWxsKSkmJihpYihmdW5jdGlvbihhKXthLmlubmVySFRNTD0iPHNlbGVjdCBtc2FsbG93Y2xpcD0nJz48b3B0aW9uIHNlbGVjdGVkPScnPjwvb3B0aW9uPjwvc2VsZWN0PiIsYS5xdWVyeVNlbGVjdG9yQWxsKCJbbXNhbGxvd2NsaXBePScnXSIpLmxlbmd0aCYmcS5wdXNoKCJbKl4kXT0iK00rIiooPzonJ3xcIlwiKSIpLGEucXVlcnlTZWxlY3RvckFsbCgiW3NlbGVjdGVkXSIpLmxlbmd0aHx8cS5wdXNoKCJcXFsiK00rIiooPzp2YWx1ZXwiK0wrIikiKSxhLnF1ZXJ5U2VsZWN0b3JBbGwoIjpjaGVja2VkIikubGVuZ3RofHxxLnB1c2goIjpjaGVja2VkIil9KSxpYihmdW5jdGlvbihhKXt2YXIgYj1lLmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7Yi5zZXRBdHRyaWJ1dGUoInR5cGUiLCJoaWRkZW4iKSxhLmFwcGVuZENoaWxkKGIpLnNldEF0dHJpYnV0ZSgibmFtZSIsIkQiKSxhLnF1ZXJ5U2VsZWN0b3JBbGwoIltuYW1lPWRdIikubGVuZ3RoJiZxLnB1c2goIm5hbWUiK00rIipbKl4kfCF+XT89IiksYS5xdWVyeVNlbGVjdG9yQWxsKCI6ZW5hYmxlZCIpLmxlbmd0aHx8cS5wdXNoKCI6ZW5hYmxlZCIsIjpkaXNhYmxlZCIpLGEucXVlcnlTZWxlY3RvckFsbCgiKiw6eCIpLHEucHVzaCgiLC4qOiIpfSkpLChjLm1hdGNoZXNTZWxlY3Rvcj0kLnRlc3Qocz1vLm1hdGNoZXN8fG8ud2Via2l0TWF0Y2hlc1NlbGVjdG9yfHxvLm1vek1hdGNoZXNTZWxlY3Rvcnx8by5vTWF0Y2hlc1NlbGVjdG9yfHxvLm1zTWF0Y2hlc1NlbGVjdG9yKSkmJmliKGZ1bmN0aW9uKGEpe2MuZGlzY29ubmVjdGVkTWF0Y2g9cy5jYWxsKGEsImRpdiIpLHMuY2FsbChhLCJbcyE9JyddOngiKSxyLnB1c2goIiE9IixRKX0pLHE9cS5sZW5ndGgmJm5ldyBSZWdFeHAocS5qb2luKCJ8IikpLHI9ci5sZW5ndGgmJm5ldyBSZWdFeHAoci5qb2luKCJ8IikpLGI9JC50ZXN0KG8uY29tcGFyZURvY3VtZW50UG9zaXRpb24pLHQ9Ynx8JC50ZXN0KG8uY29udGFpbnMpP2Z1bmN0aW9uKGEsYil7dmFyIGM9OT09PWEubm9kZVR5cGU/YS5kb2N1bWVudEVsZW1lbnQ6YSxkPWImJmIucGFyZW50Tm9kZTtyZXR1cm4gYT09PWR8fCEoIWR8fDEhPT1kLm5vZGVUeXBlfHwhKGMuY29udGFpbnM/Yy5jb250YWlucyhkKTphLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uJiYxNiZhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGQpKSl9OmZ1bmN0aW9uKGEsYil7aWYoYil3aGlsZShiPWIucGFyZW50Tm9kZSlpZihiPT09YSlyZXR1cm4hMDtyZXR1cm4hMX0sQj1iP2Z1bmN0aW9uKGEsYil7aWYoYT09PWIpcmV0dXJuIGw9ITAsMDt2YXIgZD0hYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbi0hYi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbjtyZXR1cm4gZD9kOihkPShhLm93bmVyRG9jdW1lbnR8fGEpPT09KGIub3duZXJEb2N1bWVudHx8Yik/YS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKToxLDEmZHx8IWMuc29ydERldGFjaGVkJiZiLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGEpPT09ZD9hPT09ZXx8YS5vd25lckRvY3VtZW50PT09diYmdCh2LGEpPy0xOmI9PT1lfHxiLm93bmVyRG9jdW1lbnQ9PT12JiZ0KHYsYik/MTprP0suY2FsbChrLGEpLUsuY2FsbChrLGIpOjA6NCZkPy0xOjEpfTpmdW5jdGlvbihhLGIpe2lmKGE9PT1iKXJldHVybiBsPSEwLDA7dmFyIGMsZD0wLGY9YS5wYXJlbnROb2RlLGc9Yi5wYXJlbnROb2RlLGg9W2FdLGk9W2JdO2lmKCFmfHwhZylyZXR1cm4gYT09PWU/LTE6Yj09PWU/MTpmPy0xOmc/MTprP0suY2FsbChrLGEpLUsuY2FsbChrLGIpOjA7aWYoZj09PWcpcmV0dXJuIGtiKGEsYik7Yz1hO3doaWxlKGM9Yy5wYXJlbnROb2RlKWgudW5zaGlmdChjKTtjPWI7d2hpbGUoYz1jLnBhcmVudE5vZGUpaS51bnNoaWZ0KGMpO3doaWxlKGhbZF09PT1pW2RdKWQrKztyZXR1cm4gZD9rYihoW2RdLGlbZF0pOmhbZF09PT12Py0xOmlbZF09PT12PzE6MH0sZSk6bn0sZmIubWF0Y2hlcz1mdW5jdGlvbihhLGIpe3JldHVybiBmYihhLG51bGwsbnVsbCxiKX0sZmIubWF0Y2hlc1NlbGVjdG9yPWZ1bmN0aW9uKGEsYil7aWYoKGEub3duZXJEb2N1bWVudHx8YSkhPT1uJiZtKGEpLGI9Yi5yZXBsYWNlKFUsIj0nJDEnXSIpLCEoIWMubWF0Y2hlc1NlbGVjdG9yfHwhcHx8ciYmci50ZXN0KGIpfHxxJiZxLnRlc3QoYikpKXRyeXt2YXIgZD1zLmNhbGwoYSxiKTtpZihkfHxjLmRpc2Nvbm5lY3RlZE1hdGNofHxhLmRvY3VtZW50JiYxMSE9PWEuZG9jdW1lbnQubm9kZVR5cGUpcmV0dXJuIGR9Y2F0Y2goZSl7fXJldHVybiBmYihiLG4sbnVsbCxbYV0pLmxlbmd0aD4wfSxmYi5jb250YWlucz1mdW5jdGlvbihhLGIpe3JldHVybihhLm93bmVyRG9jdW1lbnR8fGEpIT09biYmbShhKSx0KGEsYil9LGZiLmF0dHI9ZnVuY3Rpb24oYSxiKXsoYS5vd25lckRvY3VtZW50fHxhKSE9PW4mJm0oYSk7dmFyIGU9ZC5hdHRySGFuZGxlW2IudG9Mb3dlckNhc2UoKV0sZj1lJiZFLmNhbGwoZC5hdHRySGFuZGxlLGIudG9Mb3dlckNhc2UoKSk/ZShhLGIsIXApOnZvaWQgMDtyZXR1cm4gdm9pZCAwIT09Zj9mOmMuYXR0cmlidXRlc3x8IXA/YS5nZXRBdHRyaWJ1dGUoYik6KGY9YS5nZXRBdHRyaWJ1dGVOb2RlKGIpKSYmZi5zcGVjaWZpZWQ/Zi52YWx1ZTpudWxsfSxmYi5lcnJvcj1mdW5jdGlvbihhKXt0aHJvdyBuZXcgRXJyb3IoIlN5bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246ICIrYSl9LGZiLnVuaXF1ZVNvcnQ9ZnVuY3Rpb24oYSl7dmFyIGIsZD1bXSxlPTAsZj0wO2lmKGw9IWMuZGV0ZWN0RHVwbGljYXRlcyxrPSFjLnNvcnRTdGFibGUmJmEuc2xpY2UoMCksYS5zb3J0KEIpLGwpe3doaWxlKGI9YVtmKytdKWI9PT1hW2ZdJiYoZT1kLnB1c2goZikpO3doaWxlKGUtLSlhLnNwbGljZShkW2VdLDEpfXJldHVybiBrPW51bGwsYX0sZT1mYi5nZXRUZXh0PWZ1bmN0aW9uKGEpe3ZhciBiLGM9IiIsZD0wLGY9YS5ub2RlVHlwZTtpZihmKXtpZigxPT09Znx8OT09PWZ8fDExPT09Zil7aWYoInN0cmluZyI9PXR5cGVvZiBhLnRleHRDb250ZW50KXJldHVybiBhLnRleHRDb250ZW50O2ZvcihhPWEuZmlyc3RDaGlsZDthO2E9YS5uZXh0U2libGluZyljKz1lKGEpfWVsc2UgaWYoMz09PWZ8fDQ9PT1mKXJldHVybiBhLm5vZGVWYWx1ZX1lbHNlIHdoaWxlKGI9YVtkKytdKWMrPWUoYik7cmV0dXJuIGN9LGQ9ZmIuc2VsZWN0b3JzPXtjYWNoZUxlbmd0aDo1MCxjcmVhdGVQc2V1ZG86aGIsbWF0Y2g6WCxhdHRySGFuZGxlOnt9LGZpbmQ6e30scmVsYXRpdmU6eyI+Ijp7ZGlyOiJwYXJlbnROb2RlIixmaXJzdDohMH0sIiAiOntkaXI6InBhcmVudE5vZGUifSwiKyI6e2RpcjoicHJldmlvdXNTaWJsaW5nIixmaXJzdDohMH0sIn4iOntkaXI6InByZXZpb3VzU2libGluZyJ9fSxwcmVGaWx0ZXI6e0FUVFI6ZnVuY3Rpb24oYSl7cmV0dXJuIGFbMV09YVsxXS5yZXBsYWNlKGNiLGRiKSxhWzNdPShhWzNdfHxhWzRdfHxhWzVdfHwiIikucmVwbGFjZShjYixkYiksIn49Ij09PWFbMl0mJihhWzNdPSIgIithWzNdKyIgIiksYS5zbGljZSgwLDQpfSxDSElMRDpmdW5jdGlvbihhKXtyZXR1cm4gYVsxXT1hWzFdLnRvTG93ZXJDYXNlKCksIm50aCI9PT1hWzFdLnNsaWNlKDAsMyk/KGFbM118fGZiLmVycm9yKGFbMF0pLGFbNF09KyhhWzRdP2FbNV0rKGFbNl18fDEpOjIqKCJldmVuIj09PWFbM118fCJvZGQiPT09YVszXSkpLGFbNV09KyhhWzddK2FbOF18fCJvZGQiPT09YVszXSkpOmFbM10mJmZiLmVycm9yKGFbMF0pLGF9LFBTRVVETzpmdW5jdGlvbihhKXt2YXIgYixjPSFhWzZdJiZhWzJdO3JldHVybiBYLkNISUxELnRlc3QoYVswXSk/bnVsbDooYVszXT9hWzJdPWFbNF18fGFbNV18fCIiOmMmJlYudGVzdChjKSYmKGI9ZyhjLCEwKSkmJihiPWMuaW5kZXhPZigiKSIsYy5sZW5ndGgtYiktYy5sZW5ndGgpJiYoYVswXT1hWzBdLnNsaWNlKDAsYiksYVsyXT1jLnNsaWNlKDAsYikpLGEuc2xpY2UoMCwzKSl9fSxmaWx0ZXI6e1RBRzpmdW5jdGlvbihhKXt2YXIgYj1hLnJlcGxhY2UoY2IsZGIpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIioiPT09YT9mdW5jdGlvbigpe3JldHVybiEwfTpmdW5jdGlvbihhKXtyZXR1cm4gYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09Yn19LENMQVNTOmZ1bmN0aW9uKGEpe3ZhciBiPXlbYSsiICJdO3JldHVybiBifHwoYj1uZXcgUmVnRXhwKCIoXnwiK00rIikiK2ErIigiK00rInwkKSIpKSYmeShhLGZ1bmN0aW9uKGEpe3JldHVybiBiLnRlc3QoInN0cmluZyI9PXR5cGVvZiBhLmNsYXNzTmFtZSYmYS5jbGFzc05hbWV8fHR5cGVvZiBhLmdldEF0dHJpYnV0ZSE9PUMmJmEuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIil9KX0sQVRUUjpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGZ1bmN0aW9uKGQpe3ZhciBlPWZiLmF0dHIoZCxhKTtyZXR1cm4gbnVsbD09ZT8iIT0iPT09YjpiPyhlKz0iIiwiPSI9PT1iP2U9PT1jOiIhPSI9PT1iP2UhPT1jOiJePSI9PT1iP2MmJjA9PT1lLmluZGV4T2YoYyk6Iio9Ij09PWI/YyYmZS5pbmRleE9mKGMpPi0xOiIkPSI9PT1iP2MmJmUuc2xpY2UoLWMubGVuZ3RoKT09PWM6In49Ij09PWI/KCIgIitlKyIgIikuaW5kZXhPZihjKT4tMToifD0iPT09Yj9lPT09Y3x8ZS5zbGljZSgwLGMubGVuZ3RoKzEpPT09YysiLSI6ITEpOiEwfX0sQ0hJTEQ6ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj0ibnRoIiE9PWEuc2xpY2UoMCwzKSxnPSJsYXN0IiE9PWEuc2xpY2UoLTQpLGg9Im9mLXR5cGUiPT09YjtyZXR1cm4gMT09PWQmJjA9PT1lP2Z1bmN0aW9uKGEpe3JldHVybiEhYS5wYXJlbnROb2RlfTpmdW5jdGlvbihiLGMsaSl7dmFyIGosayxsLG0sbixvLHA9ZiE9PWc/Im5leHRTaWJsaW5nIjoicHJldmlvdXNTaWJsaW5nIixxPWIucGFyZW50Tm9kZSxyPWgmJmIubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxzPSFpJiYhaDtpZihxKXtpZihmKXt3aGlsZShwKXtsPWI7d2hpbGUobD1sW3BdKWlmKGg/bC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09cjoxPT09bC5ub2RlVHlwZSlyZXR1cm4hMTtvPXA9Im9ubHkiPT09YSYmIW8mJiJuZXh0U2libGluZyJ9cmV0dXJuITB9aWYobz1bZz9xLmZpcnN0Q2hpbGQ6cS5sYXN0Q2hpbGRdLGcmJnMpe2s9cVt1XXx8KHFbdV09e30pLGo9a1thXXx8W10sbj1qWzBdPT09dyYmalsxXSxtPWpbMF09PT13JiZqWzJdLGw9biYmcS5jaGlsZE5vZGVzW25dO3doaWxlKGw9KytuJiZsJiZsW3BdfHwobT1uPTApfHxvLnBvcCgpKWlmKDE9PT1sLm5vZGVUeXBlJiYrK20mJmw9PT1iKXtrW2FdPVt3LG4sbV07YnJlYWt9fWVsc2UgaWYocyYmKGo9KGJbdV18fChiW3VdPXt9KSlbYV0pJiZqWzBdPT09dyltPWpbMV07ZWxzZSB3aGlsZShsPSsrbiYmbCYmbFtwXXx8KG09bj0wKXx8by5wb3AoKSlpZigoaD9sLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1yOjE9PT1sLm5vZGVUeXBlKSYmKyttJiYocyYmKChsW3VdfHwobFt1XT17fSkpW2FdPVt3LG1dKSxsPT09YikpYnJlYWs7cmV0dXJuIG0tPWUsbT09PWR8fG0lZD09PTAmJm0vZD49MH19fSxQU0VVRE86ZnVuY3Rpb24oYSxiKXt2YXIgYyxlPWQucHNldWRvc1thXXx8ZC5zZXRGaWx0ZXJzW2EudG9Mb3dlckNhc2UoKV18fGZiLmVycm9yKCJ1bnN1cHBvcnRlZCBwc2V1ZG86ICIrYSk7cmV0dXJuIGVbdV0/ZShiKTplLmxlbmd0aD4xPyhjPVthLGEsIiIsYl0sZC5zZXRGaWx0ZXJzLmhhc093blByb3BlcnR5KGEudG9Mb3dlckNhc2UoKSk/aGIoZnVuY3Rpb24oYSxjKXt2YXIgZCxmPWUoYSxiKSxnPWYubGVuZ3RoO3doaWxlKGctLSlkPUsuY2FsbChhLGZbZ10pLGFbZF09IShjW2RdPWZbZ10pfSk6ZnVuY3Rpb24oYSl7cmV0dXJuIGUoYSwwLGMpfSk6ZX19LHBzZXVkb3M6e25vdDpoYihmdW5jdGlvbihhKXt2YXIgYj1bXSxjPVtdLGQ9aChhLnJlcGxhY2UoUiwiJDEiKSk7cmV0dXJuIGRbdV0/aGIoZnVuY3Rpb24oYSxiLGMsZSl7dmFyIGYsZz1kKGEsbnVsbCxlLFtdKSxoPWEubGVuZ3RoO3doaWxlKGgtLSkoZj1nW2hdKSYmKGFbaF09IShiW2hdPWYpKX0pOmZ1bmN0aW9uKGEsZSxmKXtyZXR1cm4gYlswXT1hLGQoYixudWxsLGYsYyksIWMucG9wKCl9fSksaGFzOmhiKGZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbihiKXtyZXR1cm4gZmIoYSxiKS5sZW5ndGg+MH19KSxjb250YWluczpoYihmdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24oYil7cmV0dXJuKGIudGV4dENvbnRlbnR8fGIuaW5uZXJUZXh0fHxlKGIpKS5pbmRleE9mKGEpPi0xfX0pLGxhbmc6aGIoZnVuY3Rpb24oYSl7cmV0dXJuIFcudGVzdChhfHwiIil8fGZiLmVycm9yKCJ1bnN1cHBvcnRlZCBsYW5nOiAiK2EpLGE9YS5yZXBsYWNlKGNiLGRiKS50b0xvd2VyQ2FzZSgpLGZ1bmN0aW9uKGIpe3ZhciBjO2RvIGlmKGM9cD9iLmxhbmc6Yi5nZXRBdHRyaWJ1dGUoInhtbDpsYW5nIil8fGIuZ2V0QXR0cmlidXRlKCJsYW5nIikpcmV0dXJuIGM9Yy50b0xvd2VyQ2FzZSgpLGM9PT1hfHwwPT09Yy5pbmRleE9mKGErIi0iKTt3aGlsZSgoYj1iLnBhcmVudE5vZGUpJiYxPT09Yi5ub2RlVHlwZSk7cmV0dXJuITF9fSksdGFyZ2V0OmZ1bmN0aW9uKGIpe3ZhciBjPWEubG9jYXRpb24mJmEubG9jYXRpb24uaGFzaDtyZXR1cm4gYyYmYy5zbGljZSgxKT09PWIuaWR9LHJvb3Q6ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1vfSxmb2N1czpmdW5jdGlvbihhKXtyZXR1cm4gYT09PW4uYWN0aXZlRWxlbWVudCYmKCFuLmhhc0ZvY3VzfHxuLmhhc0ZvY3VzKCkpJiYhIShhLnR5cGV8fGEuaHJlZnx8fmEudGFiSW5kZXgpfSxlbmFibGVkOmZ1bmN0aW9uKGEpe3JldHVybiBhLmRpc2FibGVkPT09ITF9LGRpc2FibGVkOmZ1bmN0aW9uKGEpe3JldHVybiBhLmRpc2FibGVkPT09ITB9LGNoZWNrZWQ6ZnVuY3Rpb24oYSl7dmFyIGI9YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiJpbnB1dCI9PT1iJiYhIWEuY2hlY2tlZHx8Im9wdGlvbiI9PT1iJiYhIWEuc2VsZWN0ZWR9LHNlbGVjdGVkOmZ1bmN0aW9uKGEpe3JldHVybiBhLnBhcmVudE5vZGUmJmEucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4LGEuc2VsZWN0ZWQ9PT0hMH0sZW1wdHk6ZnVuY3Rpb24oYSl7Zm9yKGE9YS5maXJzdENoaWxkO2E7YT1hLm5leHRTaWJsaW5nKWlmKGEubm9kZVR5cGU8NilyZXR1cm4hMTtyZXR1cm4hMH0scGFyZW50OmZ1bmN0aW9uKGEpe3JldHVybiFkLnBzZXVkb3MuZW1wdHkoYSl9LGhlYWRlcjpmdW5jdGlvbihhKXtyZXR1cm4gWi50ZXN0KGEubm9kZU5hbWUpfSxpbnB1dDpmdW5jdGlvbihhKXtyZXR1cm4gWS50ZXN0KGEubm9kZU5hbWUpfSxidXR0b246ZnVuY3Rpb24oYSl7dmFyIGI9YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiJpbnB1dCI9PT1iJiYiYnV0dG9uIj09PWEudHlwZXx8ImJ1dHRvbiI9PT1ifSx0ZXh0OmZ1bmN0aW9uKGEpe3ZhciBiO3JldHVybiJpbnB1dCI9PT1hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkmJiJ0ZXh0Ij09PWEudHlwZSYmKG51bGw9PShiPWEuZ2V0QXR0cmlidXRlKCJ0eXBlIikpfHwidGV4dCI9PT1iLnRvTG93ZXJDYXNlKCkpfSxmaXJzdDpuYihmdW5jdGlvbigpe3JldHVyblswXX0pLGxhc3Q6bmIoZnVuY3Rpb24oYSxiKXtyZXR1cm5bYi0xXX0pLGVxOm5iKGZ1bmN0aW9uKGEsYixjKXtyZXR1cm5bMD5jP2MrYjpjXX0pLGV2ZW46bmIoZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MDtiPmM7Yys9MilhLnB1c2goYyk7cmV0dXJuIGF9KSxvZGQ6bmIoZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MTtiPmM7Yys9MilhLnB1c2goYyk7cmV0dXJuIGF9KSxsdDpuYihmdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkPTA+Yz9jK2I6YzstLWQ+PTA7KWEucHVzaChkKTtyZXR1cm4gYX0pLGd0Om5iKGZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9MD5jP2MrYjpjOysrZDxiOylhLnB1c2goZCk7cmV0dXJuIGF9KX19LGQucHNldWRvcy5udGg9ZC5wc2V1ZG9zLmVxO2ZvcihiIGlue3JhZGlvOiEwLGNoZWNrYm94OiEwLGZpbGU6ITAscGFzc3dvcmQ6ITAsaW1hZ2U6ITB9KWQucHNldWRvc1tiXT1sYihiKTtmb3IoYiBpbntzdWJtaXQ6ITAscmVzZXQ6ITB9KWQucHNldWRvc1tiXT1tYihiKTtmdW5jdGlvbiBwYigpe31wYi5wcm90b3R5cGU9ZC5maWx0ZXJzPWQucHNldWRvcyxkLnNldEZpbHRlcnM9bmV3IHBiLGc9ZmIudG9rZW5pemU9ZnVuY3Rpb24oYSxiKXt2YXIgYyxlLGYsZyxoLGksaixrPXpbYSsiICJdO2lmKGspcmV0dXJuIGI/MDprLnNsaWNlKDApO2g9YSxpPVtdLGo9ZC5wcmVGaWx0ZXI7d2hpbGUoaCl7KCFjfHwoZT1TLmV4ZWMoaCkpKSYmKGUmJihoPWguc2xpY2UoZVswXS5sZW5ndGgpfHxoKSxpLnB1c2goZj1bXSkpLGM9ITEsKGU9VC5leGVjKGgpKSYmKGM9ZS5zaGlmdCgpLGYucHVzaCh7dmFsdWU6Yyx0eXBlOmVbMF0ucmVwbGFjZShSLCIgIil9KSxoPWguc2xpY2UoYy5sZW5ndGgpKTtmb3IoZyBpbiBkLmZpbHRlcikhKGU9WFtnXS5leGVjKGgpKXx8altnXSYmIShlPWpbZ10oZSkpfHwoYz1lLnNoaWZ0KCksZi5wdXNoKHt2YWx1ZTpjLHR5cGU6ZyxtYXRjaGVzOmV9KSxoPWguc2xpY2UoYy5sZW5ndGgpKTtpZighYylicmVha31yZXR1cm4gYj9oLmxlbmd0aDpoP2ZiLmVycm9yKGEpOnooYSxpKS5zbGljZSgwKX07ZnVuY3Rpb24gcWIoYSl7Zm9yKHZhciBiPTAsYz1hLmxlbmd0aCxkPSIiO2M+YjtiKyspZCs9YVtiXS52YWx1ZTtyZXR1cm4gZH1mdW5jdGlvbiByYihhLGIsYyl7dmFyIGQ9Yi5kaXIsZT1jJiYicGFyZW50Tm9kZSI9PT1kLGY9eCsrO3JldHVybiBiLmZpcnN0P2Z1bmN0aW9uKGIsYyxmKXt3aGlsZShiPWJbZF0paWYoMT09PWIubm9kZVR5cGV8fGUpcmV0dXJuIGEoYixjLGYpfTpmdW5jdGlvbihiLGMsZyl7dmFyIGgsaSxqPVt3LGZdO2lmKGcpe3doaWxlKGI9YltkXSlpZigoMT09PWIubm9kZVR5cGV8fGUpJiZhKGIsYyxnKSlyZXR1cm4hMH1lbHNlIHdoaWxlKGI9YltkXSlpZigxPT09Yi5ub2RlVHlwZXx8ZSl7aWYoaT1iW3VdfHwoYlt1XT17fSksKGg9aVtkXSkmJmhbMF09PT13JiZoWzFdPT09ZilyZXR1cm4galsyXT1oWzJdO2lmKGlbZF09aixqWzJdPWEoYixjLGcpKXJldHVybiEwfX19ZnVuY3Rpb24gc2IoYSl7cmV0dXJuIGEubGVuZ3RoPjE/ZnVuY3Rpb24oYixjLGQpe3ZhciBlPWEubGVuZ3RoO3doaWxlKGUtLSlpZighYVtlXShiLGMsZCkpcmV0dXJuITE7cmV0dXJuITB9OmFbMF19ZnVuY3Rpb24gdGIoYSxiLGMpe2Zvcih2YXIgZD0wLGU9Yi5sZW5ndGg7ZT5kO2QrKylmYihhLGJbZF0sYyk7cmV0dXJuIGN9ZnVuY3Rpb24gdWIoYSxiLGMsZCxlKXtmb3IodmFyIGYsZz1bXSxoPTAsaT1hLmxlbmd0aCxqPW51bGwhPWI7aT5oO2grKykoZj1hW2hdKSYmKCFjfHxjKGYsZCxlKSkmJihnLnB1c2goZiksaiYmYi5wdXNoKGgpKTtyZXR1cm4gZ31mdW5jdGlvbiB2YihhLGIsYyxkLGUsZil7cmV0dXJuIGQmJiFkW3VdJiYoZD12YihkKSksZSYmIWVbdV0mJihlPXZiKGUsZikpLGhiKGZ1bmN0aW9uKGYsZyxoLGkpe3ZhciBqLGssbCxtPVtdLG49W10sbz1nLmxlbmd0aCxwPWZ8fHRiKGJ8fCIqIixoLm5vZGVUeXBlP1toXTpoLFtdKSxxPSFhfHwhZiYmYj9wOnViKHAsbSxhLGgsaSkscj1jP2V8fChmP2E6b3x8ZCk/W106ZzpxO2lmKGMmJmMocSxyLGgsaSksZCl7aj11YihyLG4pLGQoaixbXSxoLGkpLGs9ai5sZW5ndGg7d2hpbGUoay0tKShsPWpba10pJiYocltuW2tdXT0hKHFbbltrXV09bCkpfWlmKGYpe2lmKGV8fGEpe2lmKGUpe2o9W10saz1yLmxlbmd0aDt3aGlsZShrLS0pKGw9cltrXSkmJmoucHVzaChxW2tdPWwpO2UobnVsbCxyPVtdLGosaSl9az1yLmxlbmd0aDt3aGlsZShrLS0pKGw9cltrXSkmJihqPWU/Sy5jYWxsKGYsbCk6bVtrXSk+LTEmJihmW2pdPSEoZ1tqXT1sKSl9fWVsc2Ugcj11YihyPT09Zz9yLnNwbGljZShvLHIubGVuZ3RoKTpyKSxlP2UobnVsbCxnLHIsaSk6SS5hcHBseShnLHIpfSl9ZnVuY3Rpb24gd2IoYSl7Zm9yKHZhciBiLGMsZSxmPWEubGVuZ3RoLGc9ZC5yZWxhdGl2ZVthWzBdLnR5cGVdLGg9Z3x8ZC5yZWxhdGl2ZVsiICJdLGk9Zz8xOjAsaz1yYihmdW5jdGlvbihhKXtyZXR1cm4gYT09PWJ9LGgsITApLGw9cmIoZnVuY3Rpb24oYSl7cmV0dXJuIEsuY2FsbChiLGEpPi0xfSxoLCEwKSxtPVtmdW5jdGlvbihhLGMsZCl7cmV0dXJuIWcmJihkfHxjIT09ail8fCgoYj1jKS5ub2RlVHlwZT9rKGEsYyxkKTpsKGEsYyxkKSl9XTtmPmk7aSsrKWlmKGM9ZC5yZWxhdGl2ZVthW2ldLnR5cGVdKW09W3JiKHNiKG0pLGMpXTtlbHNle2lmKGM9ZC5maWx0ZXJbYVtpXS50eXBlXS5hcHBseShudWxsLGFbaV0ubWF0Y2hlcyksY1t1XSl7Zm9yKGU9KytpO2Y+ZTtlKyspaWYoZC5yZWxhdGl2ZVthW2VdLnR5cGVdKWJyZWFrO3JldHVybiB2YihpPjEmJnNiKG0pLGk+MSYmcWIoYS5zbGljZSgwLGktMSkuY29uY2F0KHt2YWx1ZToiICI9PT1hW2ktMl0udHlwZT8iKiI6IiJ9KSkucmVwbGFjZShSLCIkMSIpLGMsZT5pJiZ3YihhLnNsaWNlKGksZSkpLGY+ZSYmd2IoYT1hLnNsaWNlKGUpKSxmPmUmJnFiKGEpKX1tLnB1c2goYyl9cmV0dXJuIHNiKG0pfWZ1bmN0aW9uIHhiKGEsYil7dmFyIGM9Yi5sZW5ndGg+MCxlPWEubGVuZ3RoPjAsZj1mdW5jdGlvbihmLGcsaCxpLGspe3ZhciBsLG0sbyxwPTAscT0iMCIscj1mJiZbXSxzPVtdLHQ9aix1PWZ8fGUmJmQuZmluZC5UQUcoIioiLGspLHY9dys9bnVsbD09dD8xOk1hdGgucmFuZG9tKCl8fC4xLHg9dS5sZW5ndGg7Zm9yKGsmJihqPWchPT1uJiZnKTtxIT09eCYmbnVsbCE9KGw9dVtxXSk7cSsrKXtpZihlJiZsKXttPTA7d2hpbGUobz1hW20rK10paWYobyhsLGcsaCkpe2kucHVzaChsKTticmVha31rJiYodz12KX1jJiYoKGw9IW8mJmwpJiZwLS0sZiYmci5wdXNoKGwpKX1pZihwKz1xLGMmJnEhPT1wKXttPTA7d2hpbGUobz1iW20rK10pbyhyLHMsZyxoKTtpZihmKXtpZihwPjApd2hpbGUocS0tKXJbcV18fHNbcV18fChzW3FdPUcuY2FsbChpKSk7cz11YihzKX1JLmFwcGx5KGkscyksayYmIWYmJnMubGVuZ3RoPjAmJnArYi5sZW5ndGg+MSYmZmIudW5pcXVlU29ydChpKX1yZXR1cm4gayYmKHc9dixqPXQpLHJ9O3JldHVybiBjP2hiKGYpOmZ9cmV0dXJuIGg9ZmIuY29tcGlsZT1mdW5jdGlvbihhLGIpe3ZhciBjLGQ9W10sZT1bXSxmPUFbYSsiICJdO2lmKCFmKXtifHwoYj1nKGEpKSxjPWIubGVuZ3RoO3doaWxlKGMtLSlmPXdiKGJbY10pLGZbdV0/ZC5wdXNoKGYpOmUucHVzaChmKTtmPUEoYSx4YihlLGQpKSxmLnNlbGVjdG9yPWF9cmV0dXJuIGZ9LGk9ZmIuc2VsZWN0PWZ1bmN0aW9uKGEsYixlLGYpe3ZhciBpLGosayxsLG0sbj0iZnVuY3Rpb24iPT10eXBlb2YgYSYmYSxvPSFmJiZnKGE9bi5zZWxlY3Rvcnx8YSk7aWYoZT1lfHxbXSwxPT09by5sZW5ndGgpe2lmKGo9b1swXT1vWzBdLnNsaWNlKDApLGoubGVuZ3RoPjImJiJJRCI9PT0oaz1qWzBdKS50eXBlJiZjLmdldEJ5SWQmJjk9PT1iLm5vZGVUeXBlJiZwJiZkLnJlbGF0aXZlW2pbMV0udHlwZV0pe2lmKGI9KGQuZmluZC5JRChrLm1hdGNoZXNbMF0ucmVwbGFjZShjYixkYiksYil8fFtdKVswXSwhYilyZXR1cm4gZTtuJiYoYj1iLnBhcmVudE5vZGUpLGE9YS5zbGljZShqLnNoaWZ0KCkudmFsdWUubGVuZ3RoKX1pPVgubmVlZHNDb250ZXh0LnRlc3QoYSk/MDpqLmxlbmd0aDt3aGlsZShpLS0pe2lmKGs9altpXSxkLnJlbGF0aXZlW2w9ay50eXBlXSlicmVhaztpZigobT1kLmZpbmRbbF0pJiYoZj1tKGsubWF0Y2hlc1swXS5yZXBsYWNlKGNiLGRiKSxhYi50ZXN0KGpbMF0udHlwZSkmJm9iKGIucGFyZW50Tm9kZSl8fGIpKSl7aWYoai5zcGxpY2UoaSwxKSxhPWYubGVuZ3RoJiZxYihqKSwhYSlyZXR1cm4gSS5hcHBseShlLGYpLGU7YnJlYWt9fX1yZXR1cm4obnx8aChhLG8pKShmLGIsIXAsZSxhYi50ZXN0KGEpJiZvYihiLnBhcmVudE5vZGUpfHxiKSxlfSxjLnNvcnRTdGFibGU9dS5zcGxpdCgiIikuc29ydChCKS5qb2luKCIiKT09PXUsYy5kZXRlY3REdXBsaWNhdGVzPSEhbCxtKCksYy5zb3J0RGV0YWNoZWQ9aWIoZnVuY3Rpb24oYSl7cmV0dXJuIDEmYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihuLmNyZWF0ZUVsZW1lbnQoImRpdiIpKX0pLGliKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlubmVySFRNTD0iPGEgaHJlZj0nIyc+PC9hPiIsIiMiPT09YS5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSgiaHJlZiIpfSl8fGpiKCJ0eXBlfGhyZWZ8aGVpZ2h0fHdpZHRoIixmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGM/dm9pZCAwOmEuZ2V0QXR0cmlidXRlKGIsInR5cGUiPT09Yi50b0xvd2VyQ2FzZSgpPzE6Mil9KSxjLmF0dHJpYnV0ZXMmJmliKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlubmVySFRNTD0iPGlucHV0Lz4iLGEuZmlyc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwiIiksIiI9PT1hLmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpfSl8fGpiKCJ2YWx1ZSIsZnVuY3Rpb24oYSxiLGMpe3JldHVybiBjfHwiaW5wdXQiIT09YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpP3ZvaWQgMDphLmRlZmF1bHRWYWx1ZX0pLGliKGZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT1hLmdldEF0dHJpYnV0ZSgiZGlzYWJsZWQiKX0pfHxqYihMLGZ1bmN0aW9uKGEsYixjKXt2YXIgZDtyZXR1cm4gYz92b2lkIDA6YVtiXT09PSEwP2IudG9Mb3dlckNhc2UoKTooZD1hLmdldEF0dHJpYnV0ZU5vZGUoYikpJiZkLnNwZWNpZmllZD9kLnZhbHVlOm51bGx9KSxmYn0oYSk7bS5maW5kPXMsbS5leHByPXMuc2VsZWN0b3JzLG0uZXhwclsiOiJdPW0uZXhwci5wc2V1ZG9zLG0udW5pcXVlPXMudW5pcXVlU29ydCxtLnRleHQ9cy5nZXRUZXh0LG0uaXNYTUxEb2M9cy5pc1hNTCxtLmNvbnRhaW5zPXMuY29udGFpbnM7dmFyIHQ9bS5leHByLm1hdGNoLm5lZWRzQ29udGV4dCx1PS9ePChcdyspXHMqXC8/Pig/OjxcL1wxPnwpJC8sdj0vXi5bXjojXFtcLixdKiQvO2Z1bmN0aW9uIHcoYSxiLGMpe2lmKG0uaXNGdW5jdGlvbihiKSlyZXR1cm4gbS5ncmVwKGEsZnVuY3Rpb24oYSxkKXtyZXR1cm4hIWIuY2FsbChhLGQsYSkhPT1jfSk7aWYoYi5ub2RlVHlwZSlyZXR1cm4gbS5ncmVwKGEsZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1iIT09Y30pO2lmKCJzdHJpbmciPT10eXBlb2YgYil7aWYodi50ZXN0KGIpKXJldHVybiBtLmZpbHRlcihiLGEsYyk7Yj1tLmZpbHRlcihiLGEpfXJldHVybiBtLmdyZXAoYSxmdW5jdGlvbihhKXtyZXR1cm4gbS5pbkFycmF5KGEsYik+PTAhPT1jfSl9bS5maWx0ZXI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWJbMF07cmV0dXJuIGMmJihhPSI6bm90KCIrYSsiKSIpLDE9PT1iLmxlbmd0aCYmMT09PWQubm9kZVR5cGU/bS5maW5kLm1hdGNoZXNTZWxlY3RvcihkLGEpP1tkXTpbXTptLmZpbmQubWF0Y2hlcyhhLG0uZ3JlcChiLGZ1bmN0aW9uKGEpe3JldHVybiAxPT09YS5ub2RlVHlwZX0pKX0sbS5mbi5leHRlbmQoe2ZpbmQ6ZnVuY3Rpb24oYSl7dmFyIGIsYz1bXSxkPXRoaXMsZT1kLmxlbmd0aDtpZigic3RyaW5nIiE9dHlwZW9mIGEpcmV0dXJuIHRoaXMucHVzaFN0YWNrKG0oYSkuZmlsdGVyKGZ1bmN0aW9uKCl7Zm9yKGI9MDtlPmI7YisrKWlmKG0uY29udGFpbnMoZFtiXSx0aGlzKSlyZXR1cm4hMH0pKTtmb3IoYj0wO2U+YjtiKyspbS5maW5kKGEsZFtiXSxjKTtyZXR1cm4gYz10aGlzLnB1c2hTdGFjayhlPjE/bS51bmlxdWUoYyk6YyksYy5zZWxlY3Rvcj10aGlzLnNlbGVjdG9yP3RoaXMuc2VsZWN0b3IrIiAiK2E6YSxjfSxmaWx0ZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKHcodGhpcyxhfHxbXSwhMSkpfSxub3Q6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKHcodGhpcyxhfHxbXSwhMCkpfSxpczpmdW5jdGlvbihhKXtyZXR1cm4hIXcodGhpcywic3RyaW5nIj09dHlwZW9mIGEmJnQudGVzdChhKT9tKGEpOmF8fFtdLCExKS5sZW5ndGh9fSk7dmFyIHgseT1hLmRvY3VtZW50LHo9L14oPzpccyooPFtcd1xXXSs+KVtePl0qfCMoW1x3LV0qKSkkLyxBPW0uZm4uaW5pdD1mdW5jdGlvbihhLGIpe3ZhciBjLGQ7aWYoIWEpcmV0dXJuIHRoaXM7aWYoInN0cmluZyI9PXR5cGVvZiBhKXtpZihjPSI8Ij09PWEuY2hhckF0KDApJiYiPiI9PT1hLmNoYXJBdChhLmxlbmd0aC0xKSYmYS5sZW5ndGg+PTM/W251bGwsYSxudWxsXTp6LmV4ZWMoYSksIWN8fCFjWzFdJiZiKXJldHVybiFifHxiLmpxdWVyeT8oYnx8eCkuZmluZChhKTp0aGlzLmNvbnN0cnVjdG9yKGIpLmZpbmQoYSk7aWYoY1sxXSl7aWYoYj1iIGluc3RhbmNlb2YgbT9iWzBdOmIsbS5tZXJnZSh0aGlzLG0ucGFyc2VIVE1MKGNbMV0sYiYmYi5ub2RlVHlwZT9iLm93bmVyRG9jdW1lbnR8fGI6eSwhMCkpLHUudGVzdChjWzFdKSYmbS5pc1BsYWluT2JqZWN0KGIpKWZvcihjIGluIGIpbS5pc0Z1bmN0aW9uKHRoaXNbY10pP3RoaXNbY10oYltjXSk6dGhpcy5hdHRyKGMsYltjXSk7cmV0dXJuIHRoaXN9aWYoZD15LmdldEVsZW1lbnRCeUlkKGNbMl0pLGQmJmQucGFyZW50Tm9kZSl7aWYoZC5pZCE9PWNbMl0pcmV0dXJuIHguZmluZChhKTt0aGlzLmxlbmd0aD0xLHRoaXNbMF09ZH1yZXR1cm4gdGhpcy5jb250ZXh0PXksdGhpcy5zZWxlY3Rvcj1hLHRoaXN9cmV0dXJuIGEubm9kZVR5cGU/KHRoaXMuY29udGV4dD10aGlzWzBdPWEsdGhpcy5sZW5ndGg9MSx0aGlzKTptLmlzRnVuY3Rpb24oYSk/InVuZGVmaW5lZCIhPXR5cGVvZiB4LnJlYWR5P3gucmVhZHkoYSk6YShtKToodm9pZCAwIT09YS5zZWxlY3RvciYmKHRoaXMuc2VsZWN0b3I9YS5zZWxlY3Rvcix0aGlzLmNvbnRleHQ9YS5jb250ZXh0KSxtLm1ha2VBcnJheShhLHRoaXMpKX07QS5wcm90b3R5cGU9bS5mbix4PW0oeSk7dmFyIEI9L14oPzpwYXJlbnRzfHByZXYoPzpVbnRpbHxBbGwpKS8sQz17Y2hpbGRyZW46ITAsY29udGVudHM6ITAsbmV4dDohMCxwcmV2OiEwfTttLmV4dGVuZCh7ZGlyOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1bXSxlPWFbYl07d2hpbGUoZSYmOSE9PWUubm9kZVR5cGUmJih2b2lkIDA9PT1jfHwxIT09ZS5ub2RlVHlwZXx8IW0oZSkuaXMoYykpKTE9PT1lLm5vZGVUeXBlJiZkLnB1c2goZSksZT1lW2JdO3JldHVybiBkfSxzaWJsaW5nOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdO2E7YT1hLm5leHRTaWJsaW5nKTE9PT1hLm5vZGVUeXBlJiZhIT09YiYmYy5wdXNoKGEpO3JldHVybiBjfX0pLG0uZm4uZXh0ZW5kKHtoYXM6ZnVuY3Rpb24oYSl7dmFyIGIsYz1tKGEsdGhpcyksZD1jLmxlbmd0aDtyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oKXtmb3IoYj0wO2Q+YjtiKyspaWYobS5jb250YWlucyh0aGlzLGNbYl0pKXJldHVybiEwfSl9LGNsb3Nlc3Q6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGMsZD0wLGU9dGhpcy5sZW5ndGgsZj1bXSxnPXQudGVzdChhKXx8InN0cmluZyIhPXR5cGVvZiBhP20oYSxifHx0aGlzLmNvbnRleHQpOjA7ZT5kO2QrKylmb3IoYz10aGlzW2RdO2MmJmMhPT1iO2M9Yy5wYXJlbnROb2RlKWlmKGMubm9kZVR5cGU8MTEmJihnP2cuaW5kZXgoYyk+LTE6MT09PWMubm9kZVR5cGUmJm0uZmluZC5tYXRjaGVzU2VsZWN0b3IoYyxhKSkpe2YucHVzaChjKTticmVha31yZXR1cm4gdGhpcy5wdXNoU3RhY2soZi5sZW5ndGg+MT9tLnVuaXF1ZShmKTpmKX0saW5kZXg6ZnVuY3Rpb24oYSl7cmV0dXJuIGE/InN0cmluZyI9PXR5cGVvZiBhP20uaW5BcnJheSh0aGlzWzBdLG0oYSkpOm0uaW5BcnJheShhLmpxdWVyeT9hWzBdOmEsdGhpcyk6dGhpc1swXSYmdGhpc1swXS5wYXJlbnROb2RlP3RoaXMuZmlyc3QoKS5wcmV2QWxsKCkubGVuZ3RoOi0xfSxhZGQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2sobS51bmlxdWUobS5tZXJnZSh0aGlzLmdldCgpLG0oYSxiKSkpKX0sYWRkQmFjazpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5hZGQobnVsbD09YT90aGlzLnByZXZPYmplY3Q6dGhpcy5wcmV2T2JqZWN0LmZpbHRlcihhKSl9fSk7ZnVuY3Rpb24gRChhLGIpe2RvIGE9YVtiXTt3aGlsZShhJiYxIT09YS5ub2RlVHlwZSk7cmV0dXJuIGF9bS5lYWNoKHtwYXJlbnQ6ZnVuY3Rpb24oYSl7dmFyIGI9YS5wYXJlbnROb2RlO3JldHVybiBiJiYxMSE9PWIubm9kZVR5cGU/YjpudWxsfSxwYXJlbnRzOmZ1bmN0aW9uKGEpe3JldHVybiBtLmRpcihhLCJwYXJlbnROb2RlIil9LHBhcmVudHNVbnRpbDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIG0uZGlyKGEsInBhcmVudE5vZGUiLGMpfSxuZXh0OmZ1bmN0aW9uKGEpe3JldHVybiBEKGEsIm5leHRTaWJsaW5nIil9LHByZXY6ZnVuY3Rpb24oYSl7cmV0dXJuIEQoYSwicHJldmlvdXNTaWJsaW5nIil9LG5leHRBbGw6ZnVuY3Rpb24oYSl7cmV0dXJuIG0uZGlyKGEsIm5leHRTaWJsaW5nIil9LHByZXZBbGw6ZnVuY3Rpb24oYSl7cmV0dXJuIG0uZGlyKGEsInByZXZpb3VzU2libGluZyIpfSxuZXh0VW50aWw6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBtLmRpcihhLCJuZXh0U2libGluZyIsYyl9LHByZXZVbnRpbDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIG0uZGlyKGEsInByZXZpb3VzU2libGluZyIsYyl9LHNpYmxpbmdzOmZ1bmN0aW9uKGEpe3JldHVybiBtLnNpYmxpbmcoKGEucGFyZW50Tm9kZXx8e30pLmZpcnN0Q2hpbGQsYSl9LGNoaWxkcmVuOmZ1bmN0aW9uKGEpe3JldHVybiBtLnNpYmxpbmcoYS5maXJzdENoaWxkKX0sY29udGVudHM6ZnVuY3Rpb24oYSl7cmV0dXJuIG0ubm9kZU5hbWUoYSwiaWZyYW1lIik/YS5jb250ZW50RG9jdW1lbnR8fGEuY29udGVudFdpbmRvdy5kb2N1bWVudDptLm1lcmdlKFtdLGEuY2hpbGROb2Rlcyl9fSxmdW5jdGlvbihhLGIpe20uZm5bYV09ZnVuY3Rpb24oYyxkKXt2YXIgZT1tLm1hcCh0aGlzLGIsYyk7cmV0dXJuIlVudGlsIiE9PWEuc2xpY2UoLTUpJiYoZD1jKSxkJiYic3RyaW5nIj09dHlwZW9mIGQmJihlPW0uZmlsdGVyKGQsZSkpLHRoaXMubGVuZ3RoPjEmJihDW2FdfHwoZT1tLnVuaXF1ZShlKSksQi50ZXN0KGEpJiYoZT1lLnJldmVyc2UoKSkpLHRoaXMucHVzaFN0YWNrKGUpfX0pO3ZhciBFPS9cUysvZyxGPXt9O2Z1bmN0aW9uIEcoYSl7dmFyIGI9RlthXT17fTtyZXR1cm4gbS5lYWNoKGEubWF0Y2goRSl8fFtdLGZ1bmN0aW9uKGEsYyl7YltjXT0hMH0pLGJ9bS5DYWxsYmFja3M9ZnVuY3Rpb24oYSl7YT0ic3RyaW5nIj09dHlwZW9mIGE/RlthXXx8RyhhKTptLmV4dGVuZCh7fSxhKTt2YXIgYixjLGQsZSxmLGcsaD1bXSxpPSFhLm9uY2UmJltdLGo9ZnVuY3Rpb24obCl7Zm9yKGM9YS5tZW1vcnkmJmwsZD0hMCxmPWd8fDAsZz0wLGU9aC5sZW5ndGgsYj0hMDtoJiZlPmY7ZisrKWlmKGhbZl0uYXBwbHkobFswXSxsWzFdKT09PSExJiZhLnN0b3BPbkZhbHNlKXtjPSExO2JyZWFrfWI9ITEsaCYmKGk/aS5sZW5ndGgmJmooaS5zaGlmdCgpKTpjP2g9W106ay5kaXNhYmxlKCkpfSxrPXthZGQ6ZnVuY3Rpb24oKXtpZihoKXt2YXIgZD1oLmxlbmd0aDshZnVuY3Rpb24gZihiKXttLmVhY2goYixmdW5jdGlvbihiLGMpe3ZhciBkPW0udHlwZShjKTsiZnVuY3Rpb24iPT09ZD9hLnVuaXF1ZSYmay5oYXMoYyl8fGgucHVzaChjKTpjJiZjLmxlbmd0aCYmInN0cmluZyIhPT1kJiZmKGMpfSl9KGFyZ3VtZW50cyksYj9lPWgubGVuZ3RoOmMmJihnPWQsaihjKSl9cmV0dXJuIHRoaXN9LHJlbW92ZTpmdW5jdGlvbigpe3JldHVybiBoJiZtLmVhY2goYXJndW1lbnRzLGZ1bmN0aW9uKGEsYyl7dmFyIGQ7d2hpbGUoKGQ9bS5pbkFycmF5KGMsaCxkKSk+LTEpaC5zcGxpY2UoZCwxKSxiJiYoZT49ZCYmZS0tLGY+PWQmJmYtLSl9KSx0aGlzfSxoYXM6ZnVuY3Rpb24oYSl7cmV0dXJuIGE/bS5pbkFycmF5KGEsaCk+LTE6ISghaHx8IWgubGVuZ3RoKX0sZW1wdHk6ZnVuY3Rpb24oKXtyZXR1cm4gaD1bXSxlPTAsdGhpc30sZGlzYWJsZTpmdW5jdGlvbigpe3JldHVybiBoPWk9Yz12b2lkIDAsdGhpc30sZGlzYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4haH0sbG9jazpmdW5jdGlvbigpe3JldHVybiBpPXZvaWQgMCxjfHxrLmRpc2FibGUoKSx0aGlzfSxsb2NrZWQ6ZnVuY3Rpb24oKXtyZXR1cm4haX0sZmlyZVdpdGg6ZnVuY3Rpb24oYSxjKXtyZXR1cm4haHx8ZCYmIWl8fChjPWN8fFtdLGM9W2EsYy5zbGljZT9jLnNsaWNlKCk6Y10sYj9pLnB1c2goYyk6aihjKSksdGhpc30sZmlyZTpmdW5jdGlvbigpe3JldHVybiBrLmZpcmVXaXRoKHRoaXMsYXJndW1lbnRzKSx0aGlzfSxmaXJlZDpmdW5jdGlvbigpe3JldHVybiEhZH19O3JldHVybiBrfSxtLmV4dGVuZCh7RGVmZXJyZWQ6ZnVuY3Rpb24oYSl7dmFyIGI9W1sicmVzb2x2ZSIsImRvbmUiLG0uQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLCJyZXNvbHZlZCJdLFsicmVqZWN0IiwiZmFpbCIsbS5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksInJlamVjdGVkIl0sWyJub3RpZnkiLCJwcm9ncmVzcyIsbS5DYWxsYmFja3MoIm1lbW9yeSIpXV0sYz0icGVuZGluZyIsZD17c3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gY30sYWx3YXlzOmZ1bmN0aW9uKCl7cmV0dXJuIGUuZG9uZShhcmd1bWVudHMpLmZhaWwoYXJndW1lbnRzKSx0aGlzfSx0aGVuOmZ1bmN0aW9uKCl7dmFyIGE9YXJndW1lbnRzO3JldHVybiBtLkRlZmVycmVkKGZ1bmN0aW9uKGMpe20uZWFjaChiLGZ1bmN0aW9uKGIsZil7dmFyIGc9bS5pc0Z1bmN0aW9uKGFbYl0pJiZhW2JdO2VbZlsxXV0oZnVuY3Rpb24oKXt2YXIgYT1nJiZnLmFwcGx5KHRoaXMsYXJndW1lbnRzKTthJiZtLmlzRnVuY3Rpb24oYS5wcm9taXNlKT9hLnByb21pc2UoKS5kb25lKGMucmVzb2x2ZSkuZmFpbChjLnJlamVjdCkucHJvZ3Jlc3MoYy5ub3RpZnkpOmNbZlswXSsiV2l0aCJdKHRoaXM9PT1kP2MucHJvbWlzZSgpOnRoaXMsZz9bYV06YXJndW1lbnRzKX0pfSksYT1udWxsfSkucHJvbWlzZSgpfSxwcm9taXNlOmZ1bmN0aW9uKGEpe3JldHVybiBudWxsIT1hP20uZXh0ZW5kKGEsZCk6ZH19LGU9e307cmV0dXJuIGQucGlwZT1kLnRoZW4sbS5lYWNoKGIsZnVuY3Rpb24oYSxmKXt2YXIgZz1mWzJdLGg9ZlszXTtkW2ZbMV1dPWcuYWRkLGgmJmcuYWRkKGZ1bmN0aW9uKCl7Yz1ofSxiWzFeYV1bMl0uZGlzYWJsZSxiWzJdWzJdLmxvY2spLGVbZlswXV09ZnVuY3Rpb24oKXtyZXR1cm4gZVtmWzBdKyJXaXRoIl0odGhpcz09PWU/ZDp0aGlzLGFyZ3VtZW50cyksdGhpc30sZVtmWzBdKyJXaXRoIl09Zy5maXJlV2l0aH0pLGQucHJvbWlzZShlKSxhJiZhLmNhbGwoZSxlKSxlfSx3aGVuOmZ1bmN0aW9uKGEpe3ZhciBiPTAsYz1kLmNhbGwoYXJndW1lbnRzKSxlPWMubGVuZ3RoLGY9MSE9PWV8fGEmJm0uaXNGdW5jdGlvbihhLnByb21pc2UpP2U6MCxnPTE9PT1mP2E6bS5EZWZlcnJlZCgpLGg9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBmdW5jdGlvbihlKXtiW2FdPXRoaXMsY1thXT1hcmd1bWVudHMubGVuZ3RoPjE/ZC5jYWxsKGFyZ3VtZW50cyk6ZSxjPT09aT9nLm5vdGlmeVdpdGgoYixjKTotLWZ8fGcucmVzb2x2ZVdpdGgoYixjKX19LGksaixrO2lmKGU+MSlmb3IoaT1uZXcgQXJyYXkoZSksaj1uZXcgQXJyYXkoZSksaz1uZXcgQXJyYXkoZSk7ZT5iO2IrKyljW2JdJiZtLmlzRnVuY3Rpb24oY1tiXS5wcm9taXNlKT9jW2JdLnByb21pc2UoKS5kb25lKGgoYixrLGMpKS5mYWlsKGcucmVqZWN0KS5wcm9ncmVzcyhoKGIsaixpKSk6LS1mO3JldHVybiBmfHxnLnJlc29sdmVXaXRoKGssYyksZy5wcm9taXNlKCl9fSk7dmFyIEg7bS5mbi5yZWFkeT1mdW5jdGlvbihhKXtyZXR1cm4gbS5yZWFkeS5wcm9taXNlKCkuZG9uZShhKSx0aGlzfSxtLmV4dGVuZCh7aXNSZWFkeTohMSxyZWFkeVdhaXQ6MSxob2xkUmVhZHk6ZnVuY3Rpb24oYSl7YT9tLnJlYWR5V2FpdCsrOm0ucmVhZHkoITApfSxyZWFkeTpmdW5jdGlvbihhKXtpZihhPT09ITA/IS0tbS5yZWFkeVdhaXQ6IW0uaXNSZWFkeSl7aWYoIXkuYm9keSlyZXR1cm4gc2V0VGltZW91dChtLnJlYWR5KTttLmlzUmVhZHk9ITAsYSE9PSEwJiYtLW0ucmVhZHlXYWl0PjB8fChILnJlc29sdmVXaXRoKHksW21dKSxtLmZuLnRyaWdnZXJIYW5kbGVyJiYobSh5KS50cmlnZ2VySGFuZGxlcigicmVhZHkiKSxtKHkpLm9mZigicmVhZHkiKSkpfX19KTtmdW5jdGlvbiBJKCl7eS5hZGRFdmVudExpc3RlbmVyPyh5LnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLEosITEpLGEucmVtb3ZlRXZlbnRMaXN0ZW5lcigibG9hZCIsSiwhMSkpOih5LmRldGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLEopLGEuZGV0YWNoRXZlbnQoIm9ubG9hZCIsSikpfWZ1bmN0aW9uIEooKXsoeS5hZGRFdmVudExpc3RlbmVyfHwibG9hZCI9PT1ldmVudC50eXBlfHwiY29tcGxldGUiPT09eS5yZWFkeVN0YXRlKSYmKEkoKSxtLnJlYWR5KCkpfW0ucmVhZHkucHJvbWlzZT1mdW5jdGlvbihiKXtpZighSClpZihIPW0uRGVmZXJyZWQoKSwiY29tcGxldGUiPT09eS5yZWFkeVN0YXRlKXNldFRpbWVvdXQobS5yZWFkeSk7ZWxzZSBpZih5LmFkZEV2ZW50TGlzdGVuZXIpeS5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixKLCExKSxhLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLEosITEpO2Vsc2V7eS5hdHRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIixKKSxhLmF0dGFjaEV2ZW50KCJvbmxvYWQiLEopO3ZhciBjPSExO3RyeXtjPW51bGw9PWEuZnJhbWVFbGVtZW50JiZ5LmRvY3VtZW50RWxlbWVudH1jYXRjaChkKXt9YyYmYy5kb1Njcm9sbCYmIWZ1bmN0aW9uIGUoKXtpZighbS5pc1JlYWR5KXt0cnl7Yy5kb1Njcm9sbCgibGVmdCIpfWNhdGNoKGEpe3JldHVybiBzZXRUaW1lb3V0KGUsNTApfUkoKSxtLnJlYWR5KCl9fSgpfXJldHVybiBILnByb21pc2UoYil9O3ZhciBLPSJ1bmRlZmluZWQiLEw7Zm9yKEwgaW4gbShrKSlicmVhaztrLm93bkxhc3Q9IjAiIT09TCxrLmlubGluZUJsb2NrTmVlZHNMYXlvdXQ9ITEsbShmdW5jdGlvbigpe3ZhciBhLGIsYyxkO2M9eS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpWzBdLGMmJmMuc3R5bGUmJihiPXkuY3JlYXRlRWxlbWVudCgiZGl2IiksZD15LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGQuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyOjA7d2lkdGg6MDtoZWlnaHQ6MDt0b3A6MDtsZWZ0Oi05OTk5cHgiLGMuYXBwZW5kQ2hpbGQoZCkuYXBwZW5kQ2hpbGQoYiksdHlwZW9mIGIuc3R5bGUuem9vbSE9PUsmJihiLnN0eWxlLmNzc1RleHQ9ImRpc3BsYXk6aW5saW5lO21hcmdpbjowO2JvcmRlcjowO3BhZGRpbmc6MXB4O3dpZHRoOjFweDt6b29tOjEiLGsuaW5saW5lQmxvY2tOZWVkc0xheW91dD1hPTM9PT1iLm9mZnNldFdpZHRoLGEmJihjLnN0eWxlLnpvb209MSkpLGMucmVtb3ZlQ2hpbGQoZCkpfSksZnVuY3Rpb24oKXt2YXIgYT15LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2lmKG51bGw9PWsuZGVsZXRlRXhwYW5kbyl7ay5kZWxldGVFeHBhbmRvPSEwO3RyeXtkZWxldGUgYS50ZXN0fWNhdGNoKGIpe2suZGVsZXRlRXhwYW5kbz0hMX19YT1udWxsfSgpLG0uYWNjZXB0RGF0YT1mdW5jdGlvbihhKXt2YXIgYj1tLm5vRGF0YVsoYS5ub2RlTmFtZSsiICIpLnRvTG93ZXJDYXNlKCldLGM9K2Eubm9kZVR5cGV8fDE7cmV0dXJuIDEhPT1jJiY5IT09Yz8hMTohYnx8YiE9PSEwJiZhLmdldEF0dHJpYnV0ZSgiY2xhc3NpZCIpPT09Yn07dmFyIE09L14oPzpce1tcd1xXXSpcfXxcW1tcd1xXXSpcXSkkLyxOPS8oW0EtWl0pL2c7ZnVuY3Rpb24gTyhhLGIsYyl7aWYodm9pZCAwPT09YyYmMT09PWEubm9kZVR5cGUpe3ZhciBkPSJkYXRhLSIrYi5yZXBsYWNlKE4sIi0kMSIpLnRvTG93ZXJDYXNlKCk7aWYoYz1hLmdldEF0dHJpYnV0ZShkKSwic3RyaW5nIj09dHlwZW9mIGMpe3RyeXtjPSJ0cnVlIj09PWM/ITA6ImZhbHNlIj09PWM/ITE6Im51bGwiPT09Yz9udWxsOitjKyIiPT09Yz8rYzpNLnRlc3QoYyk/bS5wYXJzZUpTT04oYyk6Y31jYXRjaChlKXt9bS5kYXRhKGEsYixjKX1lbHNlIGM9dm9pZCAwfXJldHVybiBjfWZ1bmN0aW9uIFAoYSl7dmFyIGI7Zm9yKGIgaW4gYSlpZigoImRhdGEiIT09Ynx8IW0uaXNFbXB0eU9iamVjdChhW2JdKSkmJiJ0b0pTT04iIT09YilyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBRKGEsYixkLGUpe2lmKG0uYWNjZXB0RGF0YShhKSl7dmFyIGYsZyxoPW0uZXhwYW5kbyxpPWEubm9kZVR5cGUsaj1pP20uY2FjaGU6YSxrPWk/YVtoXTphW2hdJiZoOwppZihrJiZqW2tdJiYoZXx8altrXS5kYXRhKXx8dm9pZCAwIT09ZHx8InN0cmluZyIhPXR5cGVvZiBiKXJldHVybiBrfHwoaz1pP2FbaF09Yy5wb3AoKXx8bS5ndWlkKys6aCksaltrXXx8KGpba109aT97fTp7dG9KU09OOm0ubm9vcH0pLCgib2JqZWN0Ij09dHlwZW9mIGJ8fCJmdW5jdGlvbiI9PXR5cGVvZiBiKSYmKGU/altrXT1tLmV4dGVuZChqW2tdLGIpOmpba10uZGF0YT1tLmV4dGVuZChqW2tdLmRhdGEsYikpLGc9altrXSxlfHwoZy5kYXRhfHwoZy5kYXRhPXt9KSxnPWcuZGF0YSksdm9pZCAwIT09ZCYmKGdbbS5jYW1lbENhc2UoYildPWQpLCJzdHJpbmciPT10eXBlb2YgYj8oZj1nW2JdLG51bGw9PWYmJihmPWdbbS5jYW1lbENhc2UoYildKSk6Zj1nLGZ9fWZ1bmN0aW9uIFIoYSxiLGMpe2lmKG0uYWNjZXB0RGF0YShhKSl7dmFyIGQsZSxmPWEubm9kZVR5cGUsZz1mP20uY2FjaGU6YSxoPWY/YVttLmV4cGFuZG9dOm0uZXhwYW5kbztpZihnW2hdKXtpZihiJiYoZD1jP2dbaF06Z1toXS5kYXRhKSl7bS5pc0FycmF5KGIpP2I9Yi5jb25jYXQobS5tYXAoYixtLmNhbWVsQ2FzZSkpOmIgaW4gZD9iPVtiXTooYj1tLmNhbWVsQ2FzZShiKSxiPWIgaW4gZD9bYl06Yi5zcGxpdCgiICIpKSxlPWIubGVuZ3RoO3doaWxlKGUtLSlkZWxldGUgZFtiW2VdXTtpZihjPyFQKGQpOiFtLmlzRW1wdHlPYmplY3QoZCkpcmV0dXJufShjfHwoZGVsZXRlIGdbaF0uZGF0YSxQKGdbaF0pKSkmJihmP20uY2xlYW5EYXRhKFthXSwhMCk6ay5kZWxldGVFeHBhbmRvfHxnIT1nLndpbmRvdz9kZWxldGUgZ1toXTpnW2hdPW51bGwpfX19bS5leHRlbmQoe2NhY2hlOnt9LG5vRGF0YTp7ImFwcGxldCAiOiEwLCJlbWJlZCAiOiEwLCJvYmplY3QgIjoiY2xzaWQ6RDI3Q0RCNkUtQUU2RC0xMWNmLTk2QjgtNDQ0NTUzNTQwMDAwIn0saGFzRGF0YTpmdW5jdGlvbihhKXtyZXR1cm4gYT1hLm5vZGVUeXBlP20uY2FjaGVbYVttLmV4cGFuZG9dXTphW20uZXhwYW5kb10sISFhJiYhUChhKX0sZGF0YTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIFEoYSxiLGMpfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGEsYil7cmV0dXJuIFIoYSxiKX0sX2RhdGE6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBRKGEsYixjLCEwKX0sX3JlbW92ZURhdGE6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gUihhLGIsITApfX0pLG0uZm4uZXh0ZW5kKHtkYXRhOmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlLGY9dGhpc1swXSxnPWYmJmYuYXR0cmlidXRlcztpZih2b2lkIDA9PT1hKXtpZih0aGlzLmxlbmd0aCYmKGU9bS5kYXRhKGYpLDE9PT1mLm5vZGVUeXBlJiYhbS5fZGF0YShmLCJwYXJzZWRBdHRycyIpKSl7Yz1nLmxlbmd0aDt3aGlsZShjLS0pZ1tjXSYmKGQ9Z1tjXS5uYW1lLDA9PT1kLmluZGV4T2YoImRhdGEtIikmJihkPW0uY2FtZWxDYXNlKGQuc2xpY2UoNSkpLE8oZixkLGVbZF0pKSk7bS5fZGF0YShmLCJwYXJzZWRBdHRycyIsITApfXJldHVybiBlfXJldHVybiJvYmplY3QiPT10eXBlb2YgYT90aGlzLmVhY2goZnVuY3Rpb24oKXttLmRhdGEodGhpcyxhKX0pOmFyZ3VtZW50cy5sZW5ndGg+MT90aGlzLmVhY2goZnVuY3Rpb24oKXttLmRhdGEodGhpcyxhLGIpfSk6Zj9PKGYsYSxtLmRhdGEoZixhKSk6dm9pZCAwfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXttLnJlbW92ZURhdGEodGhpcyxhKX0pfX0pLG0uZXh0ZW5kKHtxdWV1ZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ7cmV0dXJuIGE/KGI9KGJ8fCJmeCIpKyJxdWV1ZSIsZD1tLl9kYXRhKGEsYiksYyYmKCFkfHxtLmlzQXJyYXkoYyk/ZD1tLl9kYXRhKGEsYixtLm1ha2VBcnJheShjKSk6ZC5wdXNoKGMpKSxkfHxbXSk6dm9pZCAwfSxkZXF1ZXVlOmZ1bmN0aW9uKGEsYil7Yj1ifHwiZngiO3ZhciBjPW0ucXVldWUoYSxiKSxkPWMubGVuZ3RoLGU9Yy5zaGlmdCgpLGY9bS5fcXVldWVIb29rcyhhLGIpLGc9ZnVuY3Rpb24oKXttLmRlcXVldWUoYSxiKX07ImlucHJvZ3Jlc3MiPT09ZSYmKGU9Yy5zaGlmdCgpLGQtLSksZSYmKCJmeCI9PT1iJiZjLnVuc2hpZnQoImlucHJvZ3Jlc3MiKSxkZWxldGUgZi5zdG9wLGUuY2FsbChhLGcsZikpLCFkJiZmJiZmLmVtcHR5LmZpcmUoKX0sX3F1ZXVlSG9va3M6ZnVuY3Rpb24oYSxiKXt2YXIgYz1iKyJxdWV1ZUhvb2tzIjtyZXR1cm4gbS5fZGF0YShhLGMpfHxtLl9kYXRhKGEsYyx7ZW1wdHk6bS5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IikuYWRkKGZ1bmN0aW9uKCl7bS5fcmVtb3ZlRGF0YShhLGIrInF1ZXVlIiksbS5fcmVtb3ZlRGF0YShhLGMpfSl9KX19KSxtLmZuLmV4dGVuZCh7cXVldWU6ZnVuY3Rpb24oYSxiKXt2YXIgYz0yO3JldHVybiJzdHJpbmciIT10eXBlb2YgYSYmKGI9YSxhPSJmeCIsYy0tKSxhcmd1bWVudHMubGVuZ3RoPGM/bS5xdWV1ZSh0aGlzWzBdLGEpOnZvaWQgMD09PWI/dGhpczp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYz1tLnF1ZXVlKHRoaXMsYSxiKTttLl9xdWV1ZUhvb2tzKHRoaXMsYSksImZ4Ij09PWEmJiJpbnByb2dyZXNzIiE9PWNbMF0mJm0uZGVxdWV1ZSh0aGlzLGEpfSl9LGRlcXVldWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe20uZGVxdWV1ZSh0aGlzLGEpfSl9LGNsZWFyUXVldWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucXVldWUoYXx8ImZ4IixbXSl9LHByb21pc2U6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPTEsZT1tLkRlZmVycmVkKCksZj10aGlzLGc9dGhpcy5sZW5ndGgsaD1mdW5jdGlvbigpey0tZHx8ZS5yZXNvbHZlV2l0aChmLFtmXSl9OyJzdHJpbmciIT10eXBlb2YgYSYmKGI9YSxhPXZvaWQgMCksYT1hfHwiZngiO3doaWxlKGctLSljPW0uX2RhdGEoZltnXSxhKyJxdWV1ZUhvb2tzIiksYyYmYy5lbXB0eSYmKGQrKyxjLmVtcHR5LmFkZChoKSk7cmV0dXJuIGgoKSxlLnByb21pc2UoYil9fSk7dmFyIFM9L1srLV0/KD86XGQqXC58KVxkKyg/OltlRV1bKy1dP1xkK3wpLy5zb3VyY2UsVD1bIlRvcCIsIlJpZ2h0IiwiQm90dG9tIiwiTGVmdCJdLFU9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT1ifHxhLCJub25lIj09PW0uY3NzKGEsImRpc3BsYXkiKXx8IW0uY29udGFpbnMoYS5vd25lckRvY3VtZW50LGEpfSxWPW0uYWNjZXNzPWZ1bmN0aW9uKGEsYixjLGQsZSxmLGcpe3ZhciBoPTAsaT1hLmxlbmd0aCxqPW51bGw9PWM7aWYoIm9iamVjdCI9PT1tLnR5cGUoYykpe2U9ITA7Zm9yKGggaW4gYyltLmFjY2VzcyhhLGIsaCxjW2hdLCEwLGYsZyl9ZWxzZSBpZih2b2lkIDAhPT1kJiYoZT0hMCxtLmlzRnVuY3Rpb24oZCl8fChnPSEwKSxqJiYoZz8oYi5jYWxsKGEsZCksYj1udWxsKTooaj1iLGI9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBqLmNhbGwobShhKSxjKX0pKSxiKSlmb3IoO2k+aDtoKyspYihhW2hdLGMsZz9kOmQuY2FsbChhW2hdLGgsYihhW2hdLGMpKSk7cmV0dXJuIGU/YTpqP2IuY2FsbChhKTppP2IoYVswXSxjKTpmfSxXPS9eKD86Y2hlY2tib3h8cmFkaW8pJC9pOyFmdW5jdGlvbigpe3ZhciBhPXkuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxiPXkuY3JlYXRlRWxlbWVudCgiZGl2IiksYz15LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtpZihiLmlubmVySFRNTD0iICA8bGluay8+PHRhYmxlPjwvdGFibGU+PGEgaHJlZj0nL2EnPmE8L2E+PGlucHV0IHR5cGU9J2NoZWNrYm94Jy8+IixrLmxlYWRpbmdXaGl0ZXNwYWNlPTM9PT1iLmZpcnN0Q2hpbGQubm9kZVR5cGUsay50Ym9keT0hYi5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGJvZHkiKS5sZW5ndGgsay5odG1sU2VyaWFsaXplPSEhYi5nZXRFbGVtZW50c0J5VGFnTmFtZSgibGluayIpLmxlbmd0aCxrLmh0bWw1Q2xvbmU9Ijw6bmF2PjwvOm5hdj4iIT09eS5jcmVhdGVFbGVtZW50KCJuYXYiKS5jbG9uZU5vZGUoITApLm91dGVySFRNTCxhLnR5cGU9ImNoZWNrYm94IixhLmNoZWNrZWQ9ITAsYy5hcHBlbmRDaGlsZChhKSxrLmFwcGVuZENoZWNrZWQ9YS5jaGVja2VkLGIuaW5uZXJIVE1MPSI8dGV4dGFyZWE+eDwvdGV4dGFyZWE+IixrLm5vQ2xvbmVDaGVja2VkPSEhYi5jbG9uZU5vZGUoITApLmxhc3RDaGlsZC5kZWZhdWx0VmFsdWUsYy5hcHBlbmRDaGlsZChiKSxiLmlubmVySFRNTD0iPGlucHV0IHR5cGU9J3JhZGlvJyBjaGVja2VkPSdjaGVja2VkJyBuYW1lPSd0Jy8+IixrLmNoZWNrQ2xvbmU9Yi5jbG9uZU5vZGUoITApLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmNoZWNrZWQsay5ub0Nsb25lRXZlbnQ9ITAsYi5hdHRhY2hFdmVudCYmKGIuYXR0YWNoRXZlbnQoIm9uY2xpY2siLGZ1bmN0aW9uKCl7ay5ub0Nsb25lRXZlbnQ9ITF9KSxiLmNsb25lTm9kZSghMCkuY2xpY2soKSksbnVsbD09ay5kZWxldGVFeHBhbmRvKXtrLmRlbGV0ZUV4cGFuZG89ITA7dHJ5e2RlbGV0ZSBiLnRlc3R9Y2F0Y2goZCl7ay5kZWxldGVFeHBhbmRvPSExfX19KCksZnVuY3Rpb24oKXt2YXIgYixjLGQ9eS5jcmVhdGVFbGVtZW50KCJkaXYiKTtmb3IoYiBpbntzdWJtaXQ6ITAsY2hhbmdlOiEwLGZvY3VzaW46ITB9KWM9Im9uIitiLChrW2IrIkJ1YmJsZXMiXT1jIGluIGEpfHwoZC5zZXRBdHRyaWJ1dGUoYywidCIpLGtbYisiQnViYmxlcyJdPWQuYXR0cmlidXRlc1tjXS5leHBhbmRvPT09ITEpO2Q9bnVsbH0oKTt2YXIgWD0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYSkkL2ksWT0vXmtleS8sWj0vXig/Om1vdXNlfHBvaW50ZXJ8Y29udGV4dG1lbnUpfGNsaWNrLywkPS9eKD86Zm9jdXNpbmZvY3VzfGZvY3Vzb3V0Ymx1cikkLyxfPS9eKFteLl0qKSg/OlwuKC4rKXwpJC87ZnVuY3Rpb24gYWIoKXtyZXR1cm4hMH1mdW5jdGlvbiBiYigpe3JldHVybiExfWZ1bmN0aW9uIGNiKCl7dHJ5e3JldHVybiB5LmFjdGl2ZUVsZW1lbnR9Y2F0Y2goYSl7fX1tLmV2ZW50PXtnbG9iYWw6e30sYWRkOmZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGYsZyxoLGksaixrLGwsbixvLHAscSxyPW0uX2RhdGEoYSk7aWYocil7Yy5oYW5kbGVyJiYoaT1jLGM9aS5oYW5kbGVyLGU9aS5zZWxlY3RvciksYy5ndWlkfHwoYy5ndWlkPW0uZ3VpZCsrKSwoZz1yLmV2ZW50cyl8fChnPXIuZXZlbnRzPXt9KSwoaz1yLmhhbmRsZSl8fChrPXIuaGFuZGxlPWZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgbT09PUt8fGEmJm0uZXZlbnQudHJpZ2dlcmVkPT09YS50eXBlP3ZvaWQgMDptLmV2ZW50LmRpc3BhdGNoLmFwcGx5KGsuZWxlbSxhcmd1bWVudHMpfSxrLmVsZW09YSksYj0oYnx8IiIpLm1hdGNoKEUpfHxbIiJdLGg9Yi5sZW5ndGg7d2hpbGUoaC0tKWY9Xy5leGVjKGJbaF0pfHxbXSxvPXE9ZlsxXSxwPShmWzJdfHwiIikuc3BsaXQoIi4iKS5zb3J0KCksbyYmKGo9bS5ldmVudC5zcGVjaWFsW29dfHx7fSxvPShlP2ouZGVsZWdhdGVUeXBlOmouYmluZFR5cGUpfHxvLGo9bS5ldmVudC5zcGVjaWFsW29dfHx7fSxsPW0uZXh0ZW5kKHt0eXBlOm8sb3JpZ1R5cGU6cSxkYXRhOmQsaGFuZGxlcjpjLGd1aWQ6Yy5ndWlkLHNlbGVjdG9yOmUsbmVlZHNDb250ZXh0OmUmJm0uZXhwci5tYXRjaC5uZWVkc0NvbnRleHQudGVzdChlKSxuYW1lc3BhY2U6cC5qb2luKCIuIil9LGkpLChuPWdbb10pfHwobj1nW29dPVtdLG4uZGVsZWdhdGVDb3VudD0wLGouc2V0dXAmJmouc2V0dXAuY2FsbChhLGQscCxrKSE9PSExfHwoYS5hZGRFdmVudExpc3RlbmVyP2EuYWRkRXZlbnRMaXN0ZW5lcihvLGssITEpOmEuYXR0YWNoRXZlbnQmJmEuYXR0YWNoRXZlbnQoIm9uIitvLGspKSksai5hZGQmJihqLmFkZC5jYWxsKGEsbCksbC5oYW5kbGVyLmd1aWR8fChsLmhhbmRsZXIuZ3VpZD1jLmd1aWQpKSxlP24uc3BsaWNlKG4uZGVsZWdhdGVDb3VudCsrLDAsbCk6bi5wdXNoKGwpLG0uZXZlbnQuZ2xvYmFsW29dPSEwKTthPW51bGx9fSxyZW1vdmU6ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZixnLGgsaSxqLGssbCxuLG8scCxxLHI9bS5oYXNEYXRhKGEpJiZtLl9kYXRhKGEpO2lmKHImJihrPXIuZXZlbnRzKSl7Yj0oYnx8IiIpLm1hdGNoKEUpfHxbIiJdLGo9Yi5sZW5ndGg7d2hpbGUoai0tKWlmKGg9Xy5leGVjKGJbal0pfHxbXSxvPXE9aFsxXSxwPShoWzJdfHwiIikuc3BsaXQoIi4iKS5zb3J0KCksbyl7bD1tLmV2ZW50LnNwZWNpYWxbb118fHt9LG89KGQ/bC5kZWxlZ2F0ZVR5cGU6bC5iaW5kVHlwZSl8fG8sbj1rW29dfHxbXSxoPWhbMl0mJm5ldyBSZWdFeHAoIihefFxcLikiK3Auam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIiksaT1mPW4ubGVuZ3RoO3doaWxlKGYtLSlnPW5bZl0sIWUmJnEhPT1nLm9yaWdUeXBlfHxjJiZjLmd1aWQhPT1nLmd1aWR8fGgmJiFoLnRlc3QoZy5uYW1lc3BhY2UpfHxkJiZkIT09Zy5zZWxlY3RvciYmKCIqKiIhPT1kfHwhZy5zZWxlY3Rvcil8fChuLnNwbGljZShmLDEpLGcuc2VsZWN0b3ImJm4uZGVsZWdhdGVDb3VudC0tLGwucmVtb3ZlJiZsLnJlbW92ZS5jYWxsKGEsZykpO2kmJiFuLmxlbmd0aCYmKGwudGVhcmRvd24mJmwudGVhcmRvd24uY2FsbChhLHAsci5oYW5kbGUpIT09ITF8fG0ucmVtb3ZlRXZlbnQoYSxvLHIuaGFuZGxlKSxkZWxldGUga1tvXSl9ZWxzZSBmb3IobyBpbiBrKW0uZXZlbnQucmVtb3ZlKGEsbytiW2pdLGMsZCwhMCk7bS5pc0VtcHR5T2JqZWN0KGspJiYoZGVsZXRlIHIuaGFuZGxlLG0uX3JlbW92ZURhdGEoYSwiZXZlbnRzIikpfX0sdHJpZ2dlcjpmdW5jdGlvbihiLGMsZCxlKXt2YXIgZixnLGgsaSxrLGwsbixvPVtkfHx5XSxwPWouY2FsbChiLCJ0eXBlIik/Yi50eXBlOmIscT1qLmNhbGwoYiwibmFtZXNwYWNlIik/Yi5uYW1lc3BhY2Uuc3BsaXQoIi4iKTpbXTtpZihoPWw9ZD1kfHx5LDMhPT1kLm5vZGVUeXBlJiY4IT09ZC5ub2RlVHlwZSYmISQudGVzdChwK20uZXZlbnQudHJpZ2dlcmVkKSYmKHAuaW5kZXhPZigiLiIpPj0wJiYocT1wLnNwbGl0KCIuIikscD1xLnNoaWZ0KCkscS5zb3J0KCkpLGc9cC5pbmRleE9mKCI6Iik8MCYmIm9uIitwLGI9YlttLmV4cGFuZG9dP2I6bmV3IG0uRXZlbnQocCwib2JqZWN0Ij09dHlwZW9mIGImJmIpLGIuaXNUcmlnZ2VyPWU/MjozLGIubmFtZXNwYWNlPXEuam9pbigiLiIpLGIubmFtZXNwYWNlX3JlPWIubmFtZXNwYWNlP25ldyBSZWdFeHAoIihefFxcLikiK3Euam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIik6bnVsbCxiLnJlc3VsdD12b2lkIDAsYi50YXJnZXR8fChiLnRhcmdldD1kKSxjPW51bGw9PWM/W2JdOm0ubWFrZUFycmF5KGMsW2JdKSxrPW0uZXZlbnQuc3BlY2lhbFtwXXx8e30sZXx8IWsudHJpZ2dlcnx8ay50cmlnZ2VyLmFwcGx5KGQsYykhPT0hMSkpe2lmKCFlJiYhay5ub0J1YmJsZSYmIW0uaXNXaW5kb3coZCkpe2ZvcihpPWsuZGVsZWdhdGVUeXBlfHxwLCQudGVzdChpK3ApfHwoaD1oLnBhcmVudE5vZGUpO2g7aD1oLnBhcmVudE5vZGUpby5wdXNoKGgpLGw9aDtsPT09KGQub3duZXJEb2N1bWVudHx8eSkmJm8ucHVzaChsLmRlZmF1bHRWaWV3fHxsLnBhcmVudFdpbmRvd3x8YSl9bj0wO3doaWxlKChoPW9bbisrXSkmJiFiLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpYi50eXBlPW4+MT9pOmsuYmluZFR5cGV8fHAsZj0obS5fZGF0YShoLCJldmVudHMiKXx8e30pW2IudHlwZV0mJm0uX2RhdGEoaCwiaGFuZGxlIiksZiYmZi5hcHBseShoLGMpLGY9ZyYmaFtnXSxmJiZmLmFwcGx5JiZtLmFjY2VwdERhdGEoaCkmJihiLnJlc3VsdD1mLmFwcGx5KGgsYyksYi5yZXN1bHQ9PT0hMSYmYi5wcmV2ZW50RGVmYXVsdCgpKTtpZihiLnR5cGU9cCwhZSYmIWIuaXNEZWZhdWx0UHJldmVudGVkKCkmJighay5fZGVmYXVsdHx8ay5fZGVmYXVsdC5hcHBseShvLnBvcCgpLGMpPT09ITEpJiZtLmFjY2VwdERhdGEoZCkmJmcmJmRbcF0mJiFtLmlzV2luZG93KGQpKXtsPWRbZ10sbCYmKGRbZ109bnVsbCksbS5ldmVudC50cmlnZ2VyZWQ9cDt0cnl7ZFtwXSgpfWNhdGNoKHIpe31tLmV2ZW50LnRyaWdnZXJlZD12b2lkIDAsbCYmKGRbZ109bCl9cmV0dXJuIGIucmVzdWx0fX0sZGlzcGF0Y2g6ZnVuY3Rpb24oYSl7YT1tLmV2ZW50LmZpeChhKTt2YXIgYixjLGUsZixnLGg9W10saT1kLmNhbGwoYXJndW1lbnRzKSxqPShtLl9kYXRhKHRoaXMsImV2ZW50cyIpfHx7fSlbYS50eXBlXXx8W10saz1tLmV2ZW50LnNwZWNpYWxbYS50eXBlXXx8e307aWYoaVswXT1hLGEuZGVsZWdhdGVUYXJnZXQ9dGhpcywhay5wcmVEaXNwYXRjaHx8ay5wcmVEaXNwYXRjaC5jYWxsKHRoaXMsYSkhPT0hMSl7aD1tLmV2ZW50LmhhbmRsZXJzLmNhbGwodGhpcyxhLGopLGI9MDt3aGlsZSgoZj1oW2IrK10pJiYhYS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKXthLmN1cnJlbnRUYXJnZXQ9Zi5lbGVtLGc9MDt3aGlsZSgoZT1mLmhhbmRsZXJzW2crK10pJiYhYS5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgpKSghYS5uYW1lc3BhY2VfcmV8fGEubmFtZXNwYWNlX3JlLnRlc3QoZS5uYW1lc3BhY2UpKSYmKGEuaGFuZGxlT2JqPWUsYS5kYXRhPWUuZGF0YSxjPSgobS5ldmVudC5zcGVjaWFsW2Uub3JpZ1R5cGVdfHx7fSkuaGFuZGxlfHxlLmhhbmRsZXIpLmFwcGx5KGYuZWxlbSxpKSx2b2lkIDAhPT1jJiYoYS5yZXN1bHQ9Yyk9PT0hMSYmKGEucHJldmVudERlZmF1bHQoKSxhLnN0b3BQcm9wYWdhdGlvbigpKSl9cmV0dXJuIGsucG9zdERpc3BhdGNoJiZrLnBvc3REaXNwYXRjaC5jYWxsKHRoaXMsYSksYS5yZXN1bHR9fSxoYW5kbGVyczpmdW5jdGlvbihhLGIpe3ZhciBjLGQsZSxmLGc9W10saD1iLmRlbGVnYXRlQ291bnQsaT1hLnRhcmdldDtpZihoJiZpLm5vZGVUeXBlJiYoIWEuYnV0dG9ufHwiY2xpY2siIT09YS50eXBlKSlmb3IoO2khPXRoaXM7aT1pLnBhcmVudE5vZGV8fHRoaXMpaWYoMT09PWkubm9kZVR5cGUmJihpLmRpc2FibGVkIT09ITB8fCJjbGljayIhPT1hLnR5cGUpKXtmb3IoZT1bXSxmPTA7aD5mO2YrKylkPWJbZl0sYz1kLnNlbGVjdG9yKyIgIix2b2lkIDA9PT1lW2NdJiYoZVtjXT1kLm5lZWRzQ29udGV4dD9tKGMsdGhpcykuaW5kZXgoaSk+PTA6bS5maW5kKGMsdGhpcyxudWxsLFtpXSkubGVuZ3RoKSxlW2NdJiZlLnB1c2goZCk7ZS5sZW5ndGgmJmcucHVzaCh7ZWxlbTppLGhhbmRsZXJzOmV9KX1yZXR1cm4gaDxiLmxlbmd0aCYmZy5wdXNoKHtlbGVtOnRoaXMsaGFuZGxlcnM6Yi5zbGljZShoKX0pLGd9LGZpeDpmdW5jdGlvbihhKXtpZihhW20uZXhwYW5kb10pcmV0dXJuIGE7dmFyIGIsYyxkLGU9YS50eXBlLGY9YSxnPXRoaXMuZml4SG9va3NbZV07Z3x8KHRoaXMuZml4SG9va3NbZV09Zz1aLnRlc3QoZSk/dGhpcy5tb3VzZUhvb2tzOlkudGVzdChlKT90aGlzLmtleUhvb2tzOnt9KSxkPWcucHJvcHM/dGhpcy5wcm9wcy5jb25jYXQoZy5wcm9wcyk6dGhpcy5wcm9wcyxhPW5ldyBtLkV2ZW50KGYpLGI9ZC5sZW5ndGg7d2hpbGUoYi0tKWM9ZFtiXSxhW2NdPWZbY107cmV0dXJuIGEudGFyZ2V0fHwoYS50YXJnZXQ9Zi5zcmNFbGVtZW50fHx5KSwzPT09YS50YXJnZXQubm9kZVR5cGUmJihhLnRhcmdldD1hLnRhcmdldC5wYXJlbnROb2RlKSxhLm1ldGFLZXk9ISFhLm1ldGFLZXksZy5maWx0ZXI/Zy5maWx0ZXIoYSxmKTphfSxwcm9wczoiYWx0S2V5IGJ1YmJsZXMgY2FuY2VsYWJsZSBjdHJsS2V5IGN1cnJlbnRUYXJnZXQgZXZlbnRQaGFzZSBtZXRhS2V5IHJlbGF0ZWRUYXJnZXQgc2hpZnRLZXkgdGFyZ2V0IHRpbWVTdGFtcCB2aWV3IHdoaWNoIi5zcGxpdCgiICIpLGZpeEhvb2tzOnt9LGtleUhvb2tzOntwcm9wczoiY2hhciBjaGFyQ29kZSBrZXkga2V5Q29kZSIuc3BsaXQoIiAiKSxmaWx0ZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbnVsbD09YS53aGljaCYmKGEud2hpY2g9bnVsbCE9Yi5jaGFyQ29kZT9iLmNoYXJDb2RlOmIua2V5Q29kZSksYX19LG1vdXNlSG9va3M6e3Byb3BzOiJidXR0b24gYnV0dG9ucyBjbGllbnRYIGNsaWVudFkgZnJvbUVsZW1lbnQgb2Zmc2V0WCBvZmZzZXRZIHBhZ2VYIHBhZ2VZIHNjcmVlblggc2NyZWVuWSB0b0VsZW1lbnQiLnNwbGl0KCIgIiksZmlsdGVyOmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlLGY9Yi5idXR0b24sZz1iLmZyb21FbGVtZW50O3JldHVybiBudWxsPT1hLnBhZ2VYJiZudWxsIT1iLmNsaWVudFgmJihkPWEudGFyZ2V0Lm93bmVyRG9jdW1lbnR8fHksZT1kLmRvY3VtZW50RWxlbWVudCxjPWQuYm9keSxhLnBhZ2VYPWIuY2xpZW50WCsoZSYmZS5zY3JvbGxMZWZ0fHxjJiZjLnNjcm9sbExlZnR8fDApLShlJiZlLmNsaWVudExlZnR8fGMmJmMuY2xpZW50TGVmdHx8MCksYS5wYWdlWT1iLmNsaWVudFkrKGUmJmUuc2Nyb2xsVG9wfHxjJiZjLnNjcm9sbFRvcHx8MCktKGUmJmUuY2xpZW50VG9wfHxjJiZjLmNsaWVudFRvcHx8MCkpLCFhLnJlbGF0ZWRUYXJnZXQmJmcmJihhLnJlbGF0ZWRUYXJnZXQ9Zz09PWEudGFyZ2V0P2IudG9FbGVtZW50OmcpLGEud2hpY2h8fHZvaWQgMD09PWZ8fChhLndoaWNoPTEmZj8xOjImZj8zOjQmZj8yOjApLGF9fSxzcGVjaWFsOntsb2FkOntub0J1YmJsZTohMH0sZm9jdXM6e3RyaWdnZXI6ZnVuY3Rpb24oKXtpZih0aGlzIT09Y2IoKSYmdGhpcy5mb2N1cyl0cnl7cmV0dXJuIHRoaXMuZm9jdXMoKSwhMX1jYXRjaChhKXt9fSxkZWxlZ2F0ZVR5cGU6ImZvY3VzaW4ifSxibHVyOnt0cmlnZ2VyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXM9PT1jYigpJiZ0aGlzLmJsdXI/KHRoaXMuYmx1cigpLCExKTp2b2lkIDB9LGRlbGVnYXRlVHlwZToiZm9jdXNvdXQifSxjbGljazp7dHJpZ2dlcjpmdW5jdGlvbigpe3JldHVybiBtLm5vZGVOYW1lKHRoaXMsImlucHV0IikmJiJjaGVja2JveCI9PT10aGlzLnR5cGUmJnRoaXMuY2xpY2s/KHRoaXMuY2xpY2soKSwhMSk6dm9pZCAwfSxfZGVmYXVsdDpmdW5jdGlvbihhKXtyZXR1cm4gbS5ub2RlTmFtZShhLnRhcmdldCwiYSIpfX0sYmVmb3JldW5sb2FkOntwb3N0RGlzcGF0Y2g6ZnVuY3Rpb24oYSl7dm9pZCAwIT09YS5yZXN1bHQmJmEub3JpZ2luYWxFdmVudCYmKGEub3JpZ2luYWxFdmVudC5yZXR1cm5WYWx1ZT1hLnJlc3VsdCl9fX0sc2ltdWxhdGU6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9bS5leHRlbmQobmV3IG0uRXZlbnQsYyx7dHlwZTphLGlzU2ltdWxhdGVkOiEwLG9yaWdpbmFsRXZlbnQ6e319KTtkP20uZXZlbnQudHJpZ2dlcihlLG51bGwsYik6bS5ldmVudC5kaXNwYXRjaC5jYWxsKGIsZSksZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmYy5wcmV2ZW50RGVmYXVsdCgpfX0sbS5yZW1vdmVFdmVudD15LnJlbW92ZUV2ZW50TGlzdGVuZXI/ZnVuY3Rpb24oYSxiLGMpe2EucmVtb3ZlRXZlbnRMaXN0ZW5lciYmYS5yZW1vdmVFdmVudExpc3RlbmVyKGIsYywhMSl9OmZ1bmN0aW9uKGEsYixjKXt2YXIgZD0ib24iK2I7YS5kZXRhY2hFdmVudCYmKHR5cGVvZiBhW2RdPT09SyYmKGFbZF09bnVsbCksYS5kZXRhY2hFdmVudChkLGMpKX0sbS5FdmVudD1mdW5jdGlvbihhLGIpe3JldHVybiB0aGlzIGluc3RhbmNlb2YgbS5FdmVudD8oYSYmYS50eXBlPyh0aGlzLm9yaWdpbmFsRXZlbnQ9YSx0aGlzLnR5cGU9YS50eXBlLHRoaXMuaXNEZWZhdWx0UHJldmVudGVkPWEuZGVmYXVsdFByZXZlbnRlZHx8dm9pZCAwPT09YS5kZWZhdWx0UHJldmVudGVkJiZhLnJldHVyblZhbHVlPT09ITE/YWI6YmIpOnRoaXMudHlwZT1hLGImJm0uZXh0ZW5kKHRoaXMsYiksdGhpcy50aW1lU3RhbXA9YSYmYS50aW1lU3RhbXB8fG0ubm93KCksdm9pZCh0aGlzW20uZXhwYW5kb109ITApKTpuZXcgbS5FdmVudChhLGIpfSxtLkV2ZW50LnByb3RvdHlwZT17aXNEZWZhdWx0UHJldmVudGVkOmJiLGlzUHJvcGFnYXRpb25TdG9wcGVkOmJiLGlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOmJiLHByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPWFiLGEmJihhLnByZXZlbnREZWZhdWx0P2EucHJldmVudERlZmF1bHQoKTphLnJldHVyblZhbHVlPSExKX0sc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9YWIsYSYmKGEuc3RvcFByb3BhZ2F0aW9uJiZhLnN0b3BQcm9wYWdhdGlvbigpLGEuY2FuY2VsQnViYmxlPSEwKX0sc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ9YWIsYSYmYS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24mJmEuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksdGhpcy5zdG9wUHJvcGFnYXRpb24oKX19LG0uZWFjaCh7bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCIscG9pbnRlcmVudGVyOiJwb2ludGVyb3ZlciIscG9pbnRlcmxlYXZlOiJwb2ludGVyb3V0In0sZnVuY3Rpb24oYSxiKXttLmV2ZW50LnNwZWNpYWxbYV09e2RlbGVnYXRlVHlwZTpiLGJpbmRUeXBlOmIsaGFuZGxlOmZ1bmN0aW9uKGEpe3ZhciBjLGQ9dGhpcyxlPWEucmVsYXRlZFRhcmdldCxmPWEuaGFuZGxlT2JqO3JldHVybighZXx8ZSE9PWQmJiFtLmNvbnRhaW5zKGQsZSkpJiYoYS50eXBlPWYub3JpZ1R5cGUsYz1mLmhhbmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLGEudHlwZT1iKSxjfX19KSxrLnN1Ym1pdEJ1YmJsZXN8fChtLmV2ZW50LnNwZWNpYWwuc3VibWl0PXtzZXR1cDpmdW5jdGlvbigpe3JldHVybiBtLm5vZGVOYW1lKHRoaXMsImZvcm0iKT8hMTp2b2lkIG0uZXZlbnQuYWRkKHRoaXMsImNsaWNrLl9zdWJtaXQga2V5cHJlc3MuX3N1Ym1pdCIsZnVuY3Rpb24oYSl7dmFyIGI9YS50YXJnZXQsYz1tLm5vZGVOYW1lKGIsImlucHV0Iil8fG0ubm9kZU5hbWUoYiwiYnV0dG9uIik/Yi5mb3JtOnZvaWQgMDtjJiYhbS5fZGF0YShjLCJzdWJtaXRCdWJibGVzIikmJihtLmV2ZW50LmFkZChjLCJzdWJtaXQuX3N1Ym1pdCIsZnVuY3Rpb24oYSl7YS5fc3VibWl0X2J1YmJsZT0hMH0pLG0uX2RhdGEoYywic3VibWl0QnViYmxlcyIsITApKX0pfSxwb3N0RGlzcGF0Y2g6ZnVuY3Rpb24oYSl7YS5fc3VibWl0X2J1YmJsZSYmKGRlbGV0ZSBhLl9zdWJtaXRfYnViYmxlLHRoaXMucGFyZW50Tm9kZSYmIWEuaXNUcmlnZ2VyJiZtLmV2ZW50LnNpbXVsYXRlKCJzdWJtaXQiLHRoaXMucGFyZW50Tm9kZSxhLCEwKSl9LHRlYXJkb3duOmZ1bmN0aW9uKCl7cmV0dXJuIG0ubm9kZU5hbWUodGhpcywiZm9ybSIpPyExOnZvaWQgbS5ldmVudC5yZW1vdmUodGhpcywiLl9zdWJtaXQiKX19KSxrLmNoYW5nZUJ1YmJsZXN8fChtLmV2ZW50LnNwZWNpYWwuY2hhbmdlPXtzZXR1cDpmdW5jdGlvbigpe3JldHVybiBYLnRlc3QodGhpcy5ub2RlTmFtZSk/KCgiY2hlY2tib3giPT09dGhpcy50eXBlfHwicmFkaW8iPT09dGhpcy50eXBlKSYmKG0uZXZlbnQuYWRkKHRoaXMsInByb3BlcnR5Y2hhbmdlLl9jaGFuZ2UiLGZ1bmN0aW9uKGEpeyJjaGVja2VkIj09PWEub3JpZ2luYWxFdmVudC5wcm9wZXJ0eU5hbWUmJih0aGlzLl9qdXN0X2NoYW5nZWQ9ITApfSksbS5ldmVudC5hZGQodGhpcywiY2xpY2suX2NoYW5nZSIsZnVuY3Rpb24oYSl7dGhpcy5fanVzdF9jaGFuZ2VkJiYhYS5pc1RyaWdnZXImJih0aGlzLl9qdXN0X2NoYW5nZWQ9ITEpLG0uZXZlbnQuc2ltdWxhdGUoImNoYW5nZSIsdGhpcyxhLCEwKX0pKSwhMSk6dm9pZCBtLmV2ZW50LmFkZCh0aGlzLCJiZWZvcmVhY3RpdmF0ZS5fY2hhbmdlIixmdW5jdGlvbihhKXt2YXIgYj1hLnRhcmdldDtYLnRlc3QoYi5ub2RlTmFtZSkmJiFtLl9kYXRhKGIsImNoYW5nZUJ1YmJsZXMiKSYmKG0uZXZlbnQuYWRkKGIsImNoYW5nZS5fY2hhbmdlIixmdW5jdGlvbihhKXshdGhpcy5wYXJlbnROb2RlfHxhLmlzU2ltdWxhdGVkfHxhLmlzVHJpZ2dlcnx8bS5ldmVudC5zaW11bGF0ZSgiY2hhbmdlIix0aGlzLnBhcmVudE5vZGUsYSwhMCl9KSxtLl9kYXRhKGIsImNoYW5nZUJ1YmJsZXMiLCEwKSl9KX0saGFuZGxlOmZ1bmN0aW9uKGEpe3ZhciBiPWEudGFyZ2V0O3JldHVybiB0aGlzIT09Ynx8YS5pc1NpbXVsYXRlZHx8YS5pc1RyaWdnZXJ8fCJyYWRpbyIhPT1iLnR5cGUmJiJjaGVja2JveCIhPT1iLnR5cGU/YS5oYW5kbGVPYmouaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk6dm9pZCAwfSx0ZWFyZG93bjpmdW5jdGlvbigpe3JldHVybiBtLmV2ZW50LnJlbW92ZSh0aGlzLCIuX2NoYW5nZSIpLCFYLnRlc3QodGhpcy5ub2RlTmFtZSl9fSksay5mb2N1c2luQnViYmxlc3x8bS5lYWNoKHtmb2N1czoiZm9jdXNpbiIsYmx1cjoiZm9jdXNvdXQifSxmdW5jdGlvbihhLGIpe3ZhciBjPWZ1bmN0aW9uKGEpe20uZXZlbnQuc2ltdWxhdGUoYixhLnRhcmdldCxtLmV2ZW50LmZpeChhKSwhMCl9O20uZXZlbnQuc3BlY2lhbFtiXT17c2V0dXA6ZnVuY3Rpb24oKXt2YXIgZD10aGlzLm93bmVyRG9jdW1lbnR8fHRoaXMsZT1tLl9kYXRhKGQsYik7ZXx8ZC5hZGRFdmVudExpc3RlbmVyKGEsYywhMCksbS5fZGF0YShkLGIsKGV8fDApKzEpfSx0ZWFyZG93bjpmdW5jdGlvbigpe3ZhciBkPXRoaXMub3duZXJEb2N1bWVudHx8dGhpcyxlPW0uX2RhdGEoZCxiKS0xO2U/bS5fZGF0YShkLGIsZSk6KGQucmVtb3ZlRXZlbnRMaXN0ZW5lcihhLGMsITApLG0uX3JlbW92ZURhdGEoZCxiKSl9fX0pLG0uZm4uZXh0ZW5kKHtvbjpmdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmLGc7aWYoIm9iamVjdCI9PXR5cGVvZiBhKXsic3RyaW5nIiE9dHlwZW9mIGImJihjPWN8fGIsYj12b2lkIDApO2ZvcihmIGluIGEpdGhpcy5vbihmLGIsYyxhW2ZdLGUpO3JldHVybiB0aGlzfWlmKG51bGw9PWMmJm51bGw9PWQ/KGQ9YixjPWI9dm9pZCAwKTpudWxsPT1kJiYoInN0cmluZyI9PXR5cGVvZiBiPyhkPWMsYz12b2lkIDApOihkPWMsYz1iLGI9dm9pZCAwKSksZD09PSExKWQ9YmI7ZWxzZSBpZighZClyZXR1cm4gdGhpcztyZXR1cm4gMT09PWUmJihnPWQsZD1mdW5jdGlvbihhKXtyZXR1cm4gbSgpLm9mZihhKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sZC5ndWlkPWcuZ3VpZHx8KGcuZ3VpZD1tLmd1aWQrKykpLHRoaXMuZWFjaChmdW5jdGlvbigpe20uZXZlbnQuYWRkKHRoaXMsYSxkLGMsYil9KX0sb25lOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0aGlzLm9uKGEsYixjLGQsMSl9LG9mZjpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZTtpZihhJiZhLnByZXZlbnREZWZhdWx0JiZhLmhhbmRsZU9iailyZXR1cm4gZD1hLmhhbmRsZU9iaixtKGEuZGVsZWdhdGVUYXJnZXQpLm9mZihkLm5hbWVzcGFjZT9kLm9yaWdUeXBlKyIuIitkLm5hbWVzcGFjZTpkLm9yaWdUeXBlLGQuc2VsZWN0b3IsZC5oYW5kbGVyKSx0aGlzO2lmKCJvYmplY3QiPT10eXBlb2YgYSl7Zm9yKGUgaW4gYSl0aGlzLm9mZihlLGIsYVtlXSk7cmV0dXJuIHRoaXN9cmV0dXJuKGI9PT0hMXx8ImZ1bmN0aW9uIj09dHlwZW9mIGIpJiYoYz1iLGI9dm9pZCAwKSxjPT09ITEmJihjPWJiKSx0aGlzLmVhY2goZnVuY3Rpb24oKXttLmV2ZW50LnJlbW92ZSh0aGlzLGEsYyxiKX0pfSx0cmlnZ2VyOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe20uZXZlbnQudHJpZ2dlcihhLGIsdGhpcyl9KX0sdHJpZ2dlckhhbmRsZXI6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzWzBdO3JldHVybiBjP20uZXZlbnQudHJpZ2dlcihhLGIsYywhMCk6dm9pZCAwfX0pO2Z1bmN0aW9uIGRiKGEpe3ZhciBiPWViLnNwbGl0KCJ8IiksYz1hLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtpZihjLmNyZWF0ZUVsZW1lbnQpd2hpbGUoYi5sZW5ndGgpYy5jcmVhdGVFbGVtZW50KGIucG9wKCkpO3JldHVybiBjfXZhciBlYj0iYWJicnxhcnRpY2xlfGFzaWRlfGF1ZGlvfGJkaXxjYW52YXN8ZGF0YXxkYXRhbGlzdHxkZXRhaWxzfGZpZ2NhcHRpb258ZmlndXJlfGZvb3RlcnxoZWFkZXJ8aGdyb3VwfG1hcmt8bWV0ZXJ8bmF2fG91dHB1dHxwcm9ncmVzc3xzZWN0aW9ufHN1bW1hcnl8dGltZXx2aWRlbyIsZmI9LyBqUXVlcnlcZCs9Iig/Om51bGx8XGQrKSIvZyxnYj1uZXcgUmVnRXhwKCI8KD86IitlYisiKVtcXHMvPl0iLCJpIiksaGI9L15ccysvLGliPS88KD8hYXJlYXxicnxjb2x8ZW1iZWR8aHJ8aW1nfGlucHV0fGxpbmt8bWV0YXxwYXJhbSkoKFtcdzpdKylbXj5dKilcLz4vZ2ksamI9LzwoW1x3Ol0rKS8sa2I9Lzx0Ym9keS9pLGxiPS88fCYjP1x3KzsvLG1iPS88KD86c2NyaXB0fHN0eWxlfGxpbmspL2ksbmI9L2NoZWNrZWRccyooPzpbXj1dfD1ccyouY2hlY2tlZC4pL2ksb2I9L14kfFwvKD86amF2YXxlY21hKXNjcmlwdC9pLHBiPS9edHJ1ZVwvKC4qKS8scWI9L15ccyo8ISg/OlxbQ0RBVEFcW3wtLSl8KD86XF1cXXwtLSk+XHMqJC9nLHJiPXtvcHRpb246WzEsIjxzZWxlY3QgbXVsdGlwbGU9J211bHRpcGxlJz4iLCI8L3NlbGVjdD4iXSxsZWdlbmQ6WzEsIjxmaWVsZHNldD4iLCI8L2ZpZWxkc2V0PiJdLGFyZWE6WzEsIjxtYXA+IiwiPC9tYXA+Il0scGFyYW06WzEsIjxvYmplY3Q+IiwiPC9vYmplY3Q+Il0sdGhlYWQ6WzEsIjx0YWJsZT4iLCI8L3RhYmxlPiJdLHRyOlsyLCI8dGFibGU+PHRib2R5PiIsIjwvdGJvZHk+PC90YWJsZT4iXSxjb2w6WzIsIjx0YWJsZT48dGJvZHk+PC90Ym9keT48Y29sZ3JvdXA+IiwiPC9jb2xncm91cD48L3RhYmxlPiJdLHRkOlszLCI8dGFibGU+PHRib2R5Pjx0cj4iLCI8L3RyPjwvdGJvZHk+PC90YWJsZT4iXSxfZGVmYXVsdDprLmh0bWxTZXJpYWxpemU/WzAsIiIsIiJdOlsxLCJYPGRpdj4iLCI8L2Rpdj4iXX0sc2I9ZGIoeSksdGI9c2IuYXBwZW5kQ2hpbGQoeS5jcmVhdGVFbGVtZW50KCJkaXYiKSk7cmIub3B0Z3JvdXA9cmIub3B0aW9uLHJiLnRib2R5PXJiLnRmb290PXJiLmNvbGdyb3VwPXJiLmNhcHRpb249cmIudGhlYWQscmIudGg9cmIudGQ7ZnVuY3Rpb24gdWIoYSxiKXt2YXIgYyxkLGU9MCxmPXR5cGVvZiBhLmdldEVsZW1lbnRzQnlUYWdOYW1lIT09Sz9hLmdldEVsZW1lbnRzQnlUYWdOYW1lKGJ8fCIqIik6dHlwZW9mIGEucXVlcnlTZWxlY3RvckFsbCE9PUs/YS5xdWVyeVNlbGVjdG9yQWxsKGJ8fCIqIik6dm9pZCAwO2lmKCFmKWZvcihmPVtdLGM9YS5jaGlsZE5vZGVzfHxhO251bGwhPShkPWNbZV0pO2UrKykhYnx8bS5ub2RlTmFtZShkLGIpP2YucHVzaChkKTptLm1lcmdlKGYsdWIoZCxiKSk7cmV0dXJuIHZvaWQgMD09PWJ8fGImJm0ubm9kZU5hbWUoYSxiKT9tLm1lcmdlKFthXSxmKTpmfWZ1bmN0aW9uIHZiKGEpe1cudGVzdChhLnR5cGUpJiYoYS5kZWZhdWx0Q2hlY2tlZD1hLmNoZWNrZWQpfWZ1bmN0aW9uIHdiKGEsYil7cmV0dXJuIG0ubm9kZU5hbWUoYSwidGFibGUiKSYmbS5ub2RlTmFtZSgxMSE9PWIubm9kZVR5cGU/YjpiLmZpcnN0Q2hpbGQsInRyIik/YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGJvZHkiKVswXXx8YS5hcHBlbmRDaGlsZChhLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGJvZHkiKSk6YX1mdW5jdGlvbiB4YihhKXtyZXR1cm4gYS50eXBlPShudWxsIT09bS5maW5kLmF0dHIoYSwidHlwZSIpKSsiLyIrYS50eXBlLGF9ZnVuY3Rpb24geWIoYSl7dmFyIGI9cGIuZXhlYyhhLnR5cGUpO3JldHVybiBiP2EudHlwZT1iWzFdOmEucmVtb3ZlQXR0cmlidXRlKCJ0eXBlIiksYX1mdW5jdGlvbiB6YihhLGIpe2Zvcih2YXIgYyxkPTA7bnVsbCE9KGM9YVtkXSk7ZCsrKW0uX2RhdGEoYywiZ2xvYmFsRXZhbCIsIWJ8fG0uX2RhdGEoYltkXSwiZ2xvYmFsRXZhbCIpKX1mdW5jdGlvbiBBYihhLGIpe2lmKDE9PT1iLm5vZGVUeXBlJiZtLmhhc0RhdGEoYSkpe3ZhciBjLGQsZSxmPW0uX2RhdGEoYSksZz1tLl9kYXRhKGIsZiksaD1mLmV2ZW50cztpZihoKXtkZWxldGUgZy5oYW5kbGUsZy5ldmVudHM9e307Zm9yKGMgaW4gaClmb3IoZD0wLGU9aFtjXS5sZW5ndGg7ZT5kO2QrKyltLmV2ZW50LmFkZChiLGMsaFtjXVtkXSl9Zy5kYXRhJiYoZy5kYXRhPW0uZXh0ZW5kKHt9LGcuZGF0YSkpfX1mdW5jdGlvbiBCYihhLGIpe3ZhciBjLGQsZTtpZigxPT09Yi5ub2RlVHlwZSl7aWYoYz1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksIWsubm9DbG9uZUV2ZW50JiZiW20uZXhwYW5kb10pe2U9bS5fZGF0YShiKTtmb3IoZCBpbiBlLmV2ZW50cyltLnJlbW92ZUV2ZW50KGIsZCxlLmhhbmRsZSk7Yi5yZW1vdmVBdHRyaWJ1dGUobS5leHBhbmRvKX0ic2NyaXB0Ij09PWMmJmIudGV4dCE9PWEudGV4dD8oeGIoYikudGV4dD1hLnRleHQseWIoYikpOiJvYmplY3QiPT09Yz8oYi5wYXJlbnROb2RlJiYoYi5vdXRlckhUTUw9YS5vdXRlckhUTUwpLGsuaHRtbDVDbG9uZSYmYS5pbm5lckhUTUwmJiFtLnRyaW0oYi5pbm5lckhUTUwpJiYoYi5pbm5lckhUTUw9YS5pbm5lckhUTUwpKToiaW5wdXQiPT09YyYmVy50ZXN0KGEudHlwZSk/KGIuZGVmYXVsdENoZWNrZWQ9Yi5jaGVja2VkPWEuY2hlY2tlZCxiLnZhbHVlIT09YS52YWx1ZSYmKGIudmFsdWU9YS52YWx1ZSkpOiJvcHRpb24iPT09Yz9iLmRlZmF1bHRTZWxlY3RlZD1iLnNlbGVjdGVkPWEuZGVmYXVsdFNlbGVjdGVkOigiaW5wdXQiPT09Y3x8InRleHRhcmVhIj09PWMpJiYoYi5kZWZhdWx0VmFsdWU9YS5kZWZhdWx0VmFsdWUpfX1tLmV4dGVuZCh7Y2xvbmU6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZixnLGgsaT1tLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudCxhKTtpZihrLmh0bWw1Q2xvbmV8fG0uaXNYTUxEb2MoYSl8fCFnYi50ZXN0KCI8IithLm5vZGVOYW1lKyI+Iik/Zj1hLmNsb25lTm9kZSghMCk6KHRiLmlubmVySFRNTD1hLm91dGVySFRNTCx0Yi5yZW1vdmVDaGlsZChmPXRiLmZpcnN0Q2hpbGQpKSwhKGsubm9DbG9uZUV2ZW50JiZrLm5vQ2xvbmVDaGVja2VkfHwxIT09YS5ub2RlVHlwZSYmMTEhPT1hLm5vZGVUeXBlfHxtLmlzWE1MRG9jKGEpKSlmb3IoZD11YihmKSxoPXViKGEpLGc9MDtudWxsIT0oZT1oW2ddKTsrK2cpZFtnXSYmQmIoZSxkW2ddKTtpZihiKWlmKGMpZm9yKGg9aHx8dWIoYSksZD1kfHx1YihmKSxnPTA7bnVsbCE9KGU9aFtnXSk7ZysrKUFiKGUsZFtnXSk7ZWxzZSBBYihhLGYpO3JldHVybiBkPXViKGYsInNjcmlwdCIpLGQubGVuZ3RoPjAmJnpiKGQsIWkmJnViKGEsInNjcmlwdCIpKSxkPWg9ZT1udWxsLGZ9LGJ1aWxkRnJhZ21lbnQ6ZnVuY3Rpb24oYSxiLGMsZCl7Zm9yKHZhciBlLGYsZyxoLGksaixsLG49YS5sZW5ndGgsbz1kYihiKSxwPVtdLHE9MDtuPnE7cSsrKWlmKGY9YVtxXSxmfHwwPT09ZilpZigib2JqZWN0Ij09PW0udHlwZShmKSltLm1lcmdlKHAsZi5ub2RlVHlwZT9bZl06Zik7ZWxzZSBpZihsYi50ZXN0KGYpKXtoPWh8fG8uYXBwZW5kQ2hpbGQoYi5jcmVhdGVFbGVtZW50KCJkaXYiKSksaT0oamIuZXhlYyhmKXx8WyIiLCIiXSlbMV0udG9Mb3dlckNhc2UoKSxsPXJiW2ldfHxyYi5fZGVmYXVsdCxoLmlubmVySFRNTD1sWzFdK2YucmVwbGFjZShpYiwiPCQxPjwvJDI+IikrbFsyXSxlPWxbMF07d2hpbGUoZS0tKWg9aC5sYXN0Q2hpbGQ7aWYoIWsubGVhZGluZ1doaXRlc3BhY2UmJmhiLnRlc3QoZikmJnAucHVzaChiLmNyZWF0ZVRleHROb2RlKGhiLmV4ZWMoZilbMF0pKSwhay50Ym9keSl7Zj0idGFibGUiIT09aXx8a2IudGVzdChmKT8iPHRhYmxlPiIhPT1sWzFdfHxrYi50ZXN0KGYpPzA6aDpoLmZpcnN0Q2hpbGQsZT1mJiZmLmNoaWxkTm9kZXMubGVuZ3RoO3doaWxlKGUtLSltLm5vZGVOYW1lKGo9Zi5jaGlsZE5vZGVzW2VdLCJ0Ym9keSIpJiYhai5jaGlsZE5vZGVzLmxlbmd0aCYmZi5yZW1vdmVDaGlsZChqKX1tLm1lcmdlKHAsaC5jaGlsZE5vZGVzKSxoLnRleHRDb250ZW50PSIiO3doaWxlKGguZmlyc3RDaGlsZCloLnJlbW92ZUNoaWxkKGguZmlyc3RDaGlsZCk7aD1vLmxhc3RDaGlsZH1lbHNlIHAucHVzaChiLmNyZWF0ZVRleHROb2RlKGYpKTtoJiZvLnJlbW92ZUNoaWxkKGgpLGsuYXBwZW5kQ2hlY2tlZHx8bS5ncmVwKHViKHAsImlucHV0IiksdmIpLHE9MDt3aGlsZShmPXBbcSsrXSlpZigoIWR8fC0xPT09bS5pbkFycmF5KGYsZCkpJiYoZz1tLmNvbnRhaW5zKGYub3duZXJEb2N1bWVudCxmKSxoPXViKG8uYXBwZW5kQ2hpbGQoZiksInNjcmlwdCIpLGcmJnpiKGgpLGMpKXtlPTA7d2hpbGUoZj1oW2UrK10pb2IudGVzdChmLnR5cGV8fCIiKSYmYy5wdXNoKGYpfXJldHVybiBoPW51bGwsb30sY2xlYW5EYXRhOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBkLGUsZixnLGg9MCxpPW0uZXhwYW5kbyxqPW0uY2FjaGUsbD1rLmRlbGV0ZUV4cGFuZG8sbj1tLmV2ZW50LnNwZWNpYWw7bnVsbCE9KGQ9YVtoXSk7aCsrKWlmKChifHxtLmFjY2VwdERhdGEoZCkpJiYoZj1kW2ldLGc9ZiYmaltmXSkpe2lmKGcuZXZlbnRzKWZvcihlIGluIGcuZXZlbnRzKW5bZV0/bS5ldmVudC5yZW1vdmUoZCxlKTptLnJlbW92ZUV2ZW50KGQsZSxnLmhhbmRsZSk7altmXSYmKGRlbGV0ZSBqW2ZdLGw/ZGVsZXRlIGRbaV06dHlwZW9mIGQucmVtb3ZlQXR0cmlidXRlIT09Sz9kLnJlbW92ZUF0dHJpYnV0ZShpKTpkW2ldPW51bGwsYy5wdXNoKGYpKX19fSksbS5mbi5leHRlbmQoe3RleHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIFYodGhpcyxmdW5jdGlvbihhKXtyZXR1cm4gdm9pZCAwPT09YT9tLnRleHQodGhpcyk6dGhpcy5lbXB0eSgpLmFwcGVuZCgodGhpc1swXSYmdGhpc1swXS5vd25lckRvY3VtZW50fHx5KS5jcmVhdGVUZXh0Tm9kZShhKSl9LG51bGwsYSxhcmd1bWVudHMubGVuZ3RoKX0sYXBwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLGZ1bmN0aW9uKGEpe2lmKDE9PT10aGlzLm5vZGVUeXBlfHwxMT09PXRoaXMubm9kZVR5cGV8fDk9PT10aGlzLm5vZGVUeXBlKXt2YXIgYj13Yih0aGlzLGEpO2IuYXBwZW5kQ2hpbGQoYSl9fSl9LHByZXBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZnVuY3Rpb24oYSl7aWYoMT09PXRoaXMubm9kZVR5cGV8fDExPT09dGhpcy5ub2RlVHlwZXx8OT09PXRoaXMubm9kZVR5cGUpe3ZhciBiPXdiKHRoaXMsYSk7Yi5pbnNlcnRCZWZvcmUoYSxiLmZpcnN0Q2hpbGQpfX0pfSxiZWZvcmU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZnVuY3Rpb24oYSl7dGhpcy5wYXJlbnROb2RlJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsdGhpcyl9KX0sYWZ0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZnVuY3Rpb24oYSl7dGhpcy5wYXJlbnROb2RlJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsdGhpcy5uZXh0U2libGluZyl9KX0scmVtb3ZlOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjLGQ9YT9tLmZpbHRlcihhLHRoaXMpOnRoaXMsZT0wO251bGwhPShjPWRbZV0pO2UrKylifHwxIT09Yy5ub2RlVHlwZXx8bS5jbGVhbkRhdGEodWIoYykpLGMucGFyZW50Tm9kZSYmKGImJm0uY29udGFpbnMoYy5vd25lckRvY3VtZW50LGMpJiZ6Yih1YihjLCJzY3JpcHQiKSksYy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGMpKTtyZXR1cm4gdGhpc30sZW1wdHk6ZnVuY3Rpb24oKXtmb3IodmFyIGEsYj0wO251bGwhPShhPXRoaXNbYl0pO2IrKyl7MT09PWEubm9kZVR5cGUmJm0uY2xlYW5EYXRhKHViKGEsITEpKTt3aGlsZShhLmZpcnN0Q2hpbGQpYS5yZW1vdmVDaGlsZChhLmZpcnN0Q2hpbGQpO2Eub3B0aW9ucyYmbS5ub2RlTmFtZShhLCJzZWxlY3QiKSYmKGEub3B0aW9ucy5sZW5ndGg9MCl9cmV0dXJuIHRoaXN9LGNsb25lOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9bnVsbD09YT8hMTphLGI9bnVsbD09Yj9hOmIsdGhpcy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gbS5jbG9uZSh0aGlzLGEsYil9KX0saHRtbDpmdW5jdGlvbihhKXtyZXR1cm4gVih0aGlzLGZ1bmN0aW9uKGEpe3ZhciBiPXRoaXNbMF18fHt9LGM9MCxkPXRoaXMubGVuZ3RoO2lmKHZvaWQgMD09PWEpcmV0dXJuIDE9PT1iLm5vZGVUeXBlP2IuaW5uZXJIVE1MLnJlcGxhY2UoZmIsIiIpOnZvaWQgMDtpZighKCJzdHJpbmciIT10eXBlb2YgYXx8bWIudGVzdChhKXx8IWsuaHRtbFNlcmlhbGl6ZSYmZ2IudGVzdChhKXx8IWsubGVhZGluZ1doaXRlc3BhY2UmJmhiLnRlc3QoYSl8fHJiWyhqYi5leGVjKGEpfHxbIiIsIiJdKVsxXS50b0xvd2VyQ2FzZSgpXSkpe2E9YS5yZXBsYWNlKGliLCI8JDE+PC8kMj4iKTt0cnl7Zm9yKDtkPmM7YysrKWI9dGhpc1tjXXx8e30sMT09PWIubm9kZVR5cGUmJihtLmNsZWFuRGF0YSh1YihiLCExKSksYi5pbm5lckhUTUw9YSk7Yj0wfWNhdGNoKGUpe319YiYmdGhpcy5lbXB0eSgpLmFwcGVuZChhKX0sbnVsbCxhLGFyZ3VtZW50cy5sZW5ndGgpfSxyZXBsYWNlV2l0aDpmdW5jdGlvbigpe3ZhciBhPWFyZ3VtZW50c1swXTtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZnVuY3Rpb24oYil7YT10aGlzLnBhcmVudE5vZGUsbS5jbGVhbkRhdGEodWIodGhpcykpLGEmJmEucmVwbGFjZUNoaWxkKGIsdGhpcyl9KSxhJiYoYS5sZW5ndGh8fGEubm9kZVR5cGUpP3RoaXM6dGhpcy5yZW1vdmUoKX0sZGV0YWNoOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnJlbW92ZShhLCEwKX0sZG9tTWFuaXA6ZnVuY3Rpb24oYSxiKXthPWUuYXBwbHkoW10sYSk7dmFyIGMsZCxmLGcsaCxpLGo9MCxsPXRoaXMubGVuZ3RoLG49dGhpcyxvPWwtMSxwPWFbMF0scT1tLmlzRnVuY3Rpb24ocCk7aWYocXx8bD4xJiYic3RyaW5nIj09dHlwZW9mIHAmJiFrLmNoZWNrQ2xvbmUmJm5iLnRlc3QocCkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihjKXt2YXIgZD1uLmVxKGMpO3EmJihhWzBdPXAuY2FsbCh0aGlzLGMsZC5odG1sKCkpKSxkLmRvbU1hbmlwKGEsYil9KTtpZihsJiYoaT1tLmJ1aWxkRnJhZ21lbnQoYSx0aGlzWzBdLm93bmVyRG9jdW1lbnQsITEsdGhpcyksYz1pLmZpcnN0Q2hpbGQsMT09PWkuY2hpbGROb2Rlcy5sZW5ndGgmJihpPWMpLGMpKXtmb3IoZz1tLm1hcCh1YihpLCJzY3JpcHQiKSx4YiksZj1nLmxlbmd0aDtsPmo7aisrKWQ9aSxqIT09byYmKGQ9bS5jbG9uZShkLCEwLCEwKSxmJiZtLm1lcmdlKGcsdWIoZCwic2NyaXB0IikpKSxiLmNhbGwodGhpc1tqXSxkLGopO2lmKGYpZm9yKGg9Z1tnLmxlbmd0aC0xXS5vd25lckRvY3VtZW50LG0ubWFwKGcseWIpLGo9MDtmPmo7aisrKWQ9Z1tqXSxvYi50ZXN0KGQudHlwZXx8IiIpJiYhbS5fZGF0YShkLCJnbG9iYWxFdmFsIikmJm0uY29udGFpbnMoaCxkKSYmKGQuc3JjP20uX2V2YWxVcmwmJm0uX2V2YWxVcmwoZC5zcmMpOm0uZ2xvYmFsRXZhbCgoZC50ZXh0fHxkLnRleHRDb250ZW50fHxkLmlubmVySFRNTHx8IiIpLnJlcGxhY2UocWIsIiIpKSk7aT1jPW51bGx9cmV0dXJuIHRoaXN9fSksbS5lYWNoKHthcHBlbmRUbzoiYXBwZW5kIixwcmVwZW5kVG86InByZXBlbmQiLGluc2VydEJlZm9yZToiYmVmb3JlIixpbnNlcnRBZnRlcjoiYWZ0ZXIiLHJlcGxhY2VBbGw6InJlcGxhY2VXaXRoIn0sZnVuY3Rpb24oYSxiKXttLmZuW2FdPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYyxkPTAsZT1bXSxnPW0oYSksaD1nLmxlbmd0aC0xO2g+PWQ7ZCsrKWM9ZD09PWg/dGhpczp0aGlzLmNsb25lKCEwKSxtKGdbZF0pW2JdKGMpLGYuYXBwbHkoZSxjLmdldCgpKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soZSl9fSk7dmFyIENiLERiPXt9O2Z1bmN0aW9uIEViKGIsYyl7dmFyIGQsZT1tKGMuY3JlYXRlRWxlbWVudChiKSkuYXBwZW5kVG8oYy5ib2R5KSxmPWEuZ2V0RGVmYXVsdENvbXB1dGVkU3R5bGUmJihkPWEuZ2V0RGVmYXVsdENvbXB1dGVkU3R5bGUoZVswXSkpP2QuZGlzcGxheTptLmNzcyhlWzBdLCJkaXNwbGF5Iik7cmV0dXJuIGUuZGV0YWNoKCksZn1mdW5jdGlvbiBGYihhKXt2YXIgYj15LGM9RGJbYV07cmV0dXJuIGN8fChjPUViKGEsYiksIm5vbmUiIT09YyYmY3x8KENiPShDYnx8bSgiPGlmcmFtZSBmcmFtZWJvcmRlcj0nMCcgd2lkdGg9JzAnIGhlaWdodD0nMCcvPiIpKS5hcHBlbmRUbyhiLmRvY3VtZW50RWxlbWVudCksYj0oQ2JbMF0uY29udGVudFdpbmRvd3x8Q2JbMF0uY29udGVudERvY3VtZW50KS5kb2N1bWVudCxiLndyaXRlKCksYi5jbG9zZSgpLGM9RWIoYSxiKSxDYi5kZXRhY2goKSksRGJbYV09YyksY30hZnVuY3Rpb24oKXt2YXIgYTtrLnNocmlua1dyYXBCbG9ja3M9ZnVuY3Rpb24oKXtpZihudWxsIT1hKXJldHVybiBhO2E9ITE7dmFyIGIsYyxkO3JldHVybiBjPXkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKVswXSxjJiZjLnN0eWxlPyhiPXkuY3JlYXRlRWxlbWVudCgiZGl2IiksZD15LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGQuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyOjA7d2lkdGg6MDtoZWlnaHQ6MDt0b3A6MDtsZWZ0Oi05OTk5cHgiLGMuYXBwZW5kQ2hpbGQoZCkuYXBwZW5kQ2hpbGQoYiksdHlwZW9mIGIuc3R5bGUuem9vbSE9PUsmJihiLnN0eWxlLmNzc1RleHQ9Ii13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDstbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7Ym94LXNpemluZzpjb250ZW50LWJveDtkaXNwbGF5OmJsb2NrO21hcmdpbjowO2JvcmRlcjowO3BhZGRpbmc6MXB4O3dpZHRoOjFweDt6b29tOjEiLGIuYXBwZW5kQ2hpbGQoeS5jcmVhdGVFbGVtZW50KCJkaXYiKSkuc3R5bGUud2lkdGg9IjVweCIsYT0zIT09Yi5vZmZzZXRXaWR0aCksYy5yZW1vdmVDaGlsZChkKSxhKTp2b2lkIDB9fSgpO3ZhciBHYj0vXm1hcmdpbi8sSGI9bmV3IFJlZ0V4cCgiXigiK1MrIikoPyFweClbYS16JV0rJCIsImkiKSxJYixKYixLYj0vXih0b3B8cmlnaHR8Ym90dG9tfGxlZnQpJC87YS5nZXRDb21wdXRlZFN0eWxlPyhJYj1mdW5jdGlvbihhKXtyZXR1cm4gYS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoYSxudWxsKX0sSmI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZixnLGg9YS5zdHlsZTtyZXR1cm4gYz1jfHxJYihhKSxnPWM/Yy5nZXRQcm9wZXJ0eVZhbHVlKGIpfHxjW2JdOnZvaWQgMCxjJiYoIiIhPT1nfHxtLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudCxhKXx8KGc9bS5zdHlsZShhLGIpKSxIYi50ZXN0KGcpJiZHYi50ZXN0KGIpJiYoZD1oLndpZHRoLGU9aC5taW5XaWR0aCxmPWgubWF4V2lkdGgsaC5taW5XaWR0aD1oLm1heFdpZHRoPWgud2lkdGg9ZyxnPWMud2lkdGgsaC53aWR0aD1kLGgubWluV2lkdGg9ZSxoLm1heFdpZHRoPWYpKSx2b2lkIDA9PT1nP2c6ZysiIn0pOnkuZG9jdW1lbnRFbGVtZW50LmN1cnJlbnRTdHlsZSYmKEliPWZ1bmN0aW9uKGEpe3JldHVybiBhLmN1cnJlbnRTdHlsZX0sSmI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZixnLGg9YS5zdHlsZTtyZXR1cm4gYz1jfHxJYihhKSxnPWM/Y1tiXTp2b2lkIDAsbnVsbD09ZyYmaCYmaFtiXSYmKGc9aFtiXSksSGIudGVzdChnKSYmIUtiLnRlc3QoYikmJihkPWgubGVmdCxlPWEucnVudGltZVN0eWxlLGY9ZSYmZS5sZWZ0LGYmJihlLmxlZnQ9YS5jdXJyZW50U3R5bGUubGVmdCksaC5sZWZ0PSJmb250U2l6ZSI9PT1iPyIxZW0iOmcsZz1oLnBpeGVsTGVmdCsicHgiLGgubGVmdD1kLGYmJihlLmxlZnQ9ZikpLHZvaWQgMD09PWc/ZzpnKyIifHwiYXV0byJ9KTtmdW5jdGlvbiBMYihhLGIpe3JldHVybntnZXQ6ZnVuY3Rpb24oKXt2YXIgYz1hKCk7aWYobnVsbCE9YylyZXR1cm4gYz92b2lkIGRlbGV0ZSB0aGlzLmdldDoodGhpcy5nZXQ9YikuYXBwbHkodGhpcyxhcmd1bWVudHMpfX19IWZ1bmN0aW9uKCl7dmFyIGIsYyxkLGUsZixnLGg7aWYoYj15LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGIuaW5uZXJIVE1MPSIgIDxsaW5rLz48dGFibGU+PC90YWJsZT48YSBocmVmPScvYSc+YTwvYT48aW5wdXQgdHlwZT0nY2hlY2tib3gnLz4iLGQ9Yi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYSIpWzBdLGM9ZCYmZC5zdHlsZSl7Yy5jc3NUZXh0PSJmbG9hdDpsZWZ0O29wYWNpdHk6LjUiLGsub3BhY2l0eT0iMC41Ij09PWMub3BhY2l0eSxrLmNzc0Zsb2F0PSEhYy5jc3NGbG9hdCxiLnN0eWxlLmJhY2tncm91bmRDbGlwPSJjb250ZW50LWJveCIsYi5jbG9uZU5vZGUoITApLnN0eWxlLmJhY2tncm91bmRDbGlwPSIiLGsuY2xlYXJDbG9uZVN0eWxlPSJjb250ZW50LWJveCI9PT1iLnN0eWxlLmJhY2tncm91bmRDbGlwLGsuYm94U2l6aW5nPSIiPT09Yy5ib3hTaXppbmd8fCIiPT09Yy5Nb3pCb3hTaXppbmd8fCIiPT09Yy5XZWJraXRCb3hTaXppbmcsbS5leHRlbmQoayx7cmVsaWFibGVIaWRkZW5PZmZzZXRzOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PWcmJmkoKSxnfSxib3hTaXppbmdSZWxpYWJsZTpmdW5jdGlvbigpe3JldHVybiBudWxsPT1mJiZpKCksZn0scGl4ZWxQb3NpdGlvbjpmdW5jdGlvbigpe3JldHVybiBudWxsPT1lJiZpKCksZX0scmVsaWFibGVNYXJnaW5SaWdodDpmdW5jdGlvbigpe3JldHVybiBudWxsPT1oJiZpKCksaH19KTtmdW5jdGlvbiBpKCl7dmFyIGIsYyxkLGk7Yz15LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF0sYyYmYy5zdHlsZSYmKGI9eS5jcmVhdGVFbGVtZW50KCJkaXYiKSxkPXkuY3JlYXRlRWxlbWVudCgiZGl2IiksZC5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXI6MDt3aWR0aDowO2hlaWdodDowO3RvcDowO2xlZnQ6LTk5OTlweCIsYy5hcHBlbmRDaGlsZChkKS5hcHBlbmRDaGlsZChiKSxiLnN0eWxlLmNzc1RleHQ9Ii13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmJsb2NrO21hcmdpbi10b3A6MSU7dG9wOjElO2JvcmRlcjoxcHg7cGFkZGluZzoxcHg7d2lkdGg6NHB4O3Bvc2l0aW9uOmFic29sdXRlIixlPWY9ITEsaD0hMCxhLmdldENvbXB1dGVkU3R5bGUmJihlPSIxJSIhPT0oYS5nZXRDb21wdXRlZFN0eWxlKGIsbnVsbCl8fHt9KS50b3AsZj0iNHB4Ij09PShhLmdldENvbXB1dGVkU3R5bGUoYixudWxsKXx8e3dpZHRoOiI0cHgifSkud2lkdGgsaT1iLmFwcGVuZENoaWxkKHkuY3JlYXRlRWxlbWVudCgiZGl2IikpLGkuc3R5bGUuY3NzVGV4dD1iLnN0eWxlLmNzc1RleHQ9Ii13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDstbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7Ym94LXNpemluZzpjb250ZW50LWJveDtkaXNwbGF5OmJsb2NrO21hcmdpbjowO2JvcmRlcjowO3BhZGRpbmc6MCIsaS5zdHlsZS5tYXJnaW5SaWdodD1pLnN0eWxlLndpZHRoPSIwIixiLnN0eWxlLndpZHRoPSIxcHgiLGg9IXBhcnNlRmxvYXQoKGEuZ2V0Q29tcHV0ZWRTdHlsZShpLG51bGwpfHx7fSkubWFyZ2luUmlnaHQpKSxiLmlubmVySFRNTD0iPHRhYmxlPjx0cj48dGQ+PC90ZD48dGQ+dDwvdGQ+PC90cj48L3RhYmxlPiIsaT1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0ZCIpLGlbMF0uc3R5bGUuY3NzVGV4dD0ibWFyZ2luOjA7Ym9yZGVyOjA7cGFkZGluZzowO2Rpc3BsYXk6bm9uZSIsZz0wPT09aVswXS5vZmZzZXRIZWlnaHQsZyYmKGlbMF0uc3R5bGUuZGlzcGxheT0iIixpWzFdLnN0eWxlLmRpc3BsYXk9Im5vbmUiLGc9MD09PWlbMF0ub2Zmc2V0SGVpZ2h0KSxjLnJlbW92ZUNoaWxkKGQpKX19fSgpLG0uc3dhcD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZSxmLGc9e307Zm9yKGYgaW4gYilnW2ZdPWEuc3R5bGVbZl0sYS5zdHlsZVtmXT1iW2ZdO2U9Yy5hcHBseShhLGR8fFtdKTtmb3IoZiBpbiBiKWEuc3R5bGVbZl09Z1tmXTtyZXR1cm4gZX07dmFyIE1iPS9hbHBoYVwoW14pXSpcKS9pLE5iPS9vcGFjaXR5XHMqPVxzKihbXildKikvLE9iPS9eKG5vbmV8dGFibGUoPyEtY1tlYV0pLispLyxQYj1uZXcgUmVnRXhwKCJeKCIrUysiKSguKikkIiwiaSIpLFFiPW5ldyBSZWdFeHAoIl4oWystXSk9KCIrUysiKSIsImkiKSxSYj17cG9zaXRpb246ImFic29sdXRlIix2aXNpYmlsaXR5OiJoaWRkZW4iLGRpc3BsYXk6ImJsb2NrIn0sU2I9e2xldHRlclNwYWNpbmc6IjAiLGZvbnRXZWlnaHQ6IjQwMCJ9LFRiPVsiV2Via2l0IiwiTyIsIk1veiIsIm1zIl07ZnVuY3Rpb24gVWIoYSxiKXtpZihiIGluIGEpcmV0dXJuIGI7dmFyIGM9Yi5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStiLnNsaWNlKDEpLGQ9YixlPVRiLmxlbmd0aDt3aGlsZShlLS0paWYoYj1UYltlXStjLGIgaW4gYSlyZXR1cm4gYjtyZXR1cm4gZH1mdW5jdGlvbiBWYihhLGIpe2Zvcih2YXIgYyxkLGUsZj1bXSxnPTAsaD1hLmxlbmd0aDtoPmc7ZysrKWQ9YVtnXSxkLnN0eWxlJiYoZltnXT1tLl9kYXRhKGQsIm9sZGRpc3BsYXkiKSxjPWQuc3R5bGUuZGlzcGxheSxiPyhmW2ddfHwibm9uZSIhPT1jfHwoZC5zdHlsZS5kaXNwbGF5PSIiKSwiIj09PWQuc3R5bGUuZGlzcGxheSYmVShkKSYmKGZbZ109bS5fZGF0YShkLCJvbGRkaXNwbGF5IixGYihkLm5vZGVOYW1lKSkpKTooZT1VKGQpLChjJiYibm9uZSIhPT1jfHwhZSkmJm0uX2RhdGEoZCwib2xkZGlzcGxheSIsZT9jOm0uY3NzKGQsImRpc3BsYXkiKSkpKTtmb3IoZz0wO2g+ZztnKyspZD1hW2ddLGQuc3R5bGUmJihiJiYibm9uZSIhPT1kLnN0eWxlLmRpc3BsYXkmJiIiIT09ZC5zdHlsZS5kaXNwbGF5fHwoZC5zdHlsZS5kaXNwbGF5PWI/ZltnXXx8IiI6Im5vbmUiKSk7cmV0dXJuIGF9ZnVuY3Rpb24gV2IoYSxiLGMpe3ZhciBkPVBiLmV4ZWMoYik7cmV0dXJuIGQ/TWF0aC5tYXgoMCxkWzFdLShjfHwwKSkrKGRbMl18fCJweCIpOmJ9ZnVuY3Rpb24gWGIoYSxiLGMsZCxlKXtmb3IodmFyIGY9Yz09PShkPyJib3JkZXIiOiJjb250ZW50Iik/NDoid2lkdGgiPT09Yj8xOjAsZz0wOzQ+ZjtmKz0yKSJtYXJnaW4iPT09YyYmKGcrPW0uY3NzKGEsYytUW2ZdLCEwLGUpKSxkPygiY29udGVudCI9PT1jJiYoZy09bS5jc3MoYSwicGFkZGluZyIrVFtmXSwhMCxlKSksIm1hcmdpbiIhPT1jJiYoZy09bS5jc3MoYSwiYm9yZGVyIitUW2ZdKyJXaWR0aCIsITAsZSkpKTooZys9bS5jc3MoYSwicGFkZGluZyIrVFtmXSwhMCxlKSwicGFkZGluZyIhPT1jJiYoZys9bS5jc3MoYSwiYm9yZGVyIitUW2ZdKyJXaWR0aCIsITAsZSkpKTtyZXR1cm4gZ31mdW5jdGlvbiBZYihhLGIsYyl7dmFyIGQ9ITAsZT0id2lkdGgiPT09Yj9hLm9mZnNldFdpZHRoOmEub2Zmc2V0SGVpZ2h0LGY9SWIoYSksZz1rLmJveFNpemluZyYmImJvcmRlci1ib3giPT09bS5jc3MoYSwiYm94U2l6aW5nIiwhMSxmKTtpZigwPj1lfHxudWxsPT1lKXtpZihlPUpiKGEsYixmKSwoMD5lfHxudWxsPT1lKSYmKGU9YS5zdHlsZVtiXSksSGIudGVzdChlKSlyZXR1cm4gZTtkPWcmJihrLmJveFNpemluZ1JlbGlhYmxlKCl8fGU9PT1hLnN0eWxlW2JdKSxlPXBhcnNlRmxvYXQoZSl8fDB9cmV0dXJuIGUrWGIoYSxiLGN8fChnPyJib3JkZXIiOiJjb250ZW50IiksZCxmKSsicHgifW0uZXh0ZW5kKHtjc3NIb29rczp7b3BhY2l0eTp7Z2V0OmZ1bmN0aW9uKGEsYil7aWYoYil7dmFyIGM9SmIoYSwib3BhY2l0eSIpO3JldHVybiIiPT09Yz8iMSI6Y319fX0sY3NzTnVtYmVyOntjb2x1bW5Db3VudDohMCxmaWxsT3BhY2l0eTohMCxmbGV4R3JvdzohMCxmbGV4U2hyaW5rOiEwLGZvbnRXZWlnaHQ6ITAsbGluZUhlaWdodDohMCxvcGFjaXR5OiEwLG9yZGVyOiEwLG9ycGhhbnM6ITAsd2lkb3dzOiEwLHpJbmRleDohMCx6b29tOiEwfSxjc3NQcm9wczp7ImZsb2F0IjprLmNzc0Zsb2F0PyJjc3NGbG9hdCI6InN0eWxlRmxvYXQifSxzdHlsZTpmdW5jdGlvbihhLGIsYyxkKXtpZihhJiYzIT09YS5ub2RlVHlwZSYmOCE9PWEubm9kZVR5cGUmJmEuc3R5bGUpe3ZhciBlLGYsZyxoPW0uY2FtZWxDYXNlKGIpLGk9YS5zdHlsZTtpZihiPW0uY3NzUHJvcHNbaF18fChtLmNzc1Byb3BzW2hdPVViKGksaCkpLGc9bS5jc3NIb29rc1tiXXx8bS5jc3NIb29rc1toXSx2b2lkIDA9PT1jKXJldHVybiBnJiYiZ2V0ImluIGcmJnZvaWQgMCE9PShlPWcuZ2V0KGEsITEsZCkpP2U6aVtiXTtpZihmPXR5cGVvZiBjLCJzdHJpbmciPT09ZiYmKGU9UWIuZXhlYyhjKSkmJihjPShlWzFdKzEpKmVbMl0rcGFyc2VGbG9hdChtLmNzcyhhLGIpKSxmPSJudW1iZXIiKSxudWxsIT1jJiZjPT09YyYmKCJudW1iZXIiIT09Znx8bS5jc3NOdW1iZXJbaF18fChjKz0icHgiKSxrLmNsZWFyQ2xvbmVTdHlsZXx8IiIhPT1jfHwwIT09Yi5pbmRleE9mKCJiYWNrZ3JvdW5kIil8fChpW2JdPSJpbmhlcml0IiksIShnJiYic2V0ImluIGcmJnZvaWQgMD09PShjPWcuc2V0KGEsYyxkKSkpKSl0cnl7aVtiXT1jfWNhdGNoKGope319fSxjc3M6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGUsZixnLGg9bS5jYW1lbENhc2UoYik7cmV0dXJuIGI9bS5jc3NQcm9wc1toXXx8KG0uY3NzUHJvcHNbaF09VWIoYS5zdHlsZSxoKSksZz1tLmNzc0hvb2tzW2JdfHxtLmNzc0hvb2tzW2hdLGcmJiJnZXQiaW4gZyYmKGY9Zy5nZXQoYSwhMCxjKSksdm9pZCAwPT09ZiYmKGY9SmIoYSxiLGQpKSwibm9ybWFsIj09PWYmJmIgaW4gU2ImJihmPVNiW2JdKSwiIj09PWN8fGM/KGU9cGFyc2VGbG9hdChmKSxjPT09ITB8fG0uaXNOdW1lcmljKGUpP2V8fDA6Zik6Zn19KSxtLmVhY2goWyJoZWlnaHQiLCJ3aWR0aCJdLGZ1bmN0aW9uKGEsYil7bS5jc3NIb29rc1tiXT17Z2V0OmZ1bmN0aW9uKGEsYyxkKXtyZXR1cm4gYz9PYi50ZXN0KG0uY3NzKGEsImRpc3BsYXkiKSkmJjA9PT1hLm9mZnNldFdpZHRoP20uc3dhcChhLFJiLGZ1bmN0aW9uKCl7cmV0dXJuIFliKGEsYixkKX0pOlliKGEsYixkKTp2b2lkIDB9LHNldDpmdW5jdGlvbihhLGMsZCl7dmFyIGU9ZCYmSWIoYSk7cmV0dXJuIFdiKGEsYyxkP1hiKGEsYixkLGsuYm94U2l6aW5nJiYiYm9yZGVyLWJveCI9PT1tLmNzcyhhLCJib3hTaXppbmciLCExLGUpLGUpOjApfX19KSxrLm9wYWNpdHl8fChtLmNzc0hvb2tzLm9wYWNpdHk9e2dldDpmdW5jdGlvbihhLGIpe3JldHVybiBOYi50ZXN0KChiJiZhLmN1cnJlbnRTdHlsZT9hLmN1cnJlbnRTdHlsZS5maWx0ZXI6YS5zdHlsZS5maWx0ZXIpfHwiIik/LjAxKnBhcnNlRmxvYXQoUmVnRXhwLiQxKSsiIjpiPyIxIjoiIn0sc2V0OmZ1bmN0aW9uKGEsYil7dmFyIGM9YS5zdHlsZSxkPWEuY3VycmVudFN0eWxlLGU9bS5pc051bWVyaWMoYik/ImFscGhhKG9wYWNpdHk9IisxMDAqYisiKSI6IiIsZj1kJiZkLmZpbHRlcnx8Yy5maWx0ZXJ8fCIiO2Muem9vbT0xLChiPj0xfHwiIj09PWIpJiYiIj09PW0udHJpbShmLnJlcGxhY2UoTWIsIiIpKSYmYy5yZW1vdmVBdHRyaWJ1dGUmJihjLnJlbW92ZUF0dHJpYnV0ZSgiZmlsdGVyIiksIiI9PT1ifHxkJiYhZC5maWx0ZXIpfHwoYy5maWx0ZXI9TWIudGVzdChmKT9mLnJlcGxhY2UoTWIsZSk6ZisiICIrZSl9fSksbS5jc3NIb29rcy5tYXJnaW5SaWdodD1MYihrLnJlbGlhYmxlTWFyZ2luUmlnaHQsZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj9tLnN3YXAoYSx7ZGlzcGxheToiaW5saW5lLWJsb2NrIn0sSmIsW2EsIm1hcmdpblJpZ2h0Il0pOnZvaWQgMH0pLG0uZWFjaCh7bWFyZ2luOiIiLHBhZGRpbmc6IiIsYm9yZGVyOiJXaWR0aCJ9LGZ1bmN0aW9uKGEsYil7bS5jc3NIb29rc1thK2JdPXtleHBhbmQ6ZnVuY3Rpb24oYyl7Zm9yKHZhciBkPTAsZT17fSxmPSJzdHJpbmciPT10eXBlb2YgYz9jLnNwbGl0KCIgIik6W2NdOzQ+ZDtkKyspZVthK1RbZF0rYl09ZltkXXx8ZltkLTJdfHxmWzBdO3JldHVybiBlfX0sR2IudGVzdChhKXx8KG0uY3NzSG9va3NbYStiXS5zZXQ9V2IpfSksbS5mbi5leHRlbmQoe2NzczpmdW5jdGlvbihhLGIpe3JldHVybiBWKHRoaXMsZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZj17fSxnPTA7aWYobS5pc0FycmF5KGIpKXtmb3IoZD1JYihhKSxlPWIubGVuZ3RoO2U+ZztnKyspZltiW2ddXT1tLmNzcyhhLGJbZ10sITEsZCk7cmV0dXJuIGZ9cmV0dXJuIHZvaWQgMCE9PWM/bS5zdHlsZShhLGIsYyk6bS5jc3MoYSxiKX0sYSxiLGFyZ3VtZW50cy5sZW5ndGg+MSl9LHNob3c6ZnVuY3Rpb24oKXtyZXR1cm4gVmIodGhpcywhMCl9LGhpZGU6ZnVuY3Rpb24oKXtyZXR1cm4gVmIodGhpcyl9LHRvZ2dsZTpmdW5jdGlvbihhKXtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiBhP2E/dGhpcy5zaG93KCk6dGhpcy5oaWRlKCk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7VSh0aGlzKT9tKHRoaXMpLnNob3coKTptKHRoaXMpLmhpZGUoKX0pfX0pO2Z1bmN0aW9uIFpiKGEsYixjLGQsZSl7cmV0dXJuIG5ldyBaYi5wcm90b3R5cGUuaW5pdChhLGIsYyxkLGUpfW0uVHdlZW49WmIsWmIucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpaYixpbml0OmZ1bmN0aW9uKGEsYixjLGQsZSxmKXt0aGlzLmVsZW09YSx0aGlzLnByb3A9Yyx0aGlzLmVhc2luZz1lfHwic3dpbmciLHRoaXMub3B0aW9ucz1iLHRoaXMuc3RhcnQ9dGhpcy5ub3c9dGhpcy5jdXIoKSx0aGlzLmVuZD1kLHRoaXMudW5pdD1mfHwobS5jc3NOdW1iZXJbY10/IiI6InB4IikKfSxjdXI6ZnVuY3Rpb24oKXt2YXIgYT1aYi5wcm9wSG9va3NbdGhpcy5wcm9wXTtyZXR1cm4gYSYmYS5nZXQ/YS5nZXQodGhpcyk6WmIucHJvcEhvb2tzLl9kZWZhdWx0LmdldCh0aGlzKX0scnVuOmZ1bmN0aW9uKGEpe3ZhciBiLGM9WmIucHJvcEhvb2tzW3RoaXMucHJvcF07cmV0dXJuIHRoaXMucG9zPWI9dGhpcy5vcHRpb25zLmR1cmF0aW9uP20uZWFzaW5nW3RoaXMuZWFzaW5nXShhLHRoaXMub3B0aW9ucy5kdXJhdGlvbiphLDAsMSx0aGlzLm9wdGlvbnMuZHVyYXRpb24pOmEsdGhpcy5ub3c9KHRoaXMuZW5kLXRoaXMuc3RhcnQpKmIrdGhpcy5zdGFydCx0aGlzLm9wdGlvbnMuc3RlcCYmdGhpcy5vcHRpb25zLnN0ZXAuY2FsbCh0aGlzLmVsZW0sdGhpcy5ub3csdGhpcyksYyYmYy5zZXQ/Yy5zZXQodGhpcyk6WmIucHJvcEhvb2tzLl9kZWZhdWx0LnNldCh0aGlzKSx0aGlzfX0sWmIucHJvdG90eXBlLmluaXQucHJvdG90eXBlPVpiLnByb3RvdHlwZSxaYi5wcm9wSG9va3M9e19kZWZhdWx0OntnZXQ6ZnVuY3Rpb24oYSl7dmFyIGI7cmV0dXJuIG51bGw9PWEuZWxlbVthLnByb3BdfHxhLmVsZW0uc3R5bGUmJm51bGwhPWEuZWxlbS5zdHlsZVthLnByb3BdPyhiPW0uY3NzKGEuZWxlbSxhLnByb3AsIiIpLGImJiJhdXRvIiE9PWI/YjowKTphLmVsZW1bYS5wcm9wXX0sc2V0OmZ1bmN0aW9uKGEpe20uZnguc3RlcFthLnByb3BdP20uZnguc3RlcFthLnByb3BdKGEpOmEuZWxlbS5zdHlsZSYmKG51bGwhPWEuZWxlbS5zdHlsZVttLmNzc1Byb3BzW2EucHJvcF1dfHxtLmNzc0hvb2tzW2EucHJvcF0pP20uc3R5bGUoYS5lbGVtLGEucHJvcCxhLm5vdythLnVuaXQpOmEuZWxlbVthLnByb3BdPWEubm93fX19LFpiLnByb3BIb29rcy5zY3JvbGxUb3A9WmIucHJvcEhvb2tzLnNjcm9sbExlZnQ9e3NldDpmdW5jdGlvbihhKXthLmVsZW0ubm9kZVR5cGUmJmEuZWxlbS5wYXJlbnROb2RlJiYoYS5lbGVtW2EucHJvcF09YS5ub3cpfX0sbS5lYXNpbmc9e2xpbmVhcjpmdW5jdGlvbihhKXtyZXR1cm4gYX0sc3dpbmc6ZnVuY3Rpb24oYSl7cmV0dXJuLjUtTWF0aC5jb3MoYSpNYXRoLlBJKS8yfX0sbS5meD1aYi5wcm90b3R5cGUuaW5pdCxtLmZ4LnN0ZXA9e307dmFyICRiLF9iLGFjPS9eKD86dG9nZ2xlfHNob3d8aGlkZSkkLyxiYz1uZXcgUmVnRXhwKCJeKD86KFsrLV0pPXwpKCIrUysiKShbYS16JV0qKSQiLCJpIiksY2M9L3F1ZXVlSG9va3MkLyxkYz1baWNdLGVjPXsiKiI6W2Z1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5jcmVhdGVUd2VlbihhLGIpLGQ9Yy5jdXIoKSxlPWJjLmV4ZWMoYiksZj1lJiZlWzNdfHwobS5jc3NOdW1iZXJbYV0/IiI6InB4IiksZz0obS5jc3NOdW1iZXJbYV18fCJweCIhPT1mJiYrZCkmJmJjLmV4ZWMobS5jc3MoYy5lbGVtLGEpKSxoPTEsaT0yMDtpZihnJiZnWzNdIT09Zil7Zj1mfHxnWzNdLGU9ZXx8W10sZz0rZHx8MTtkbyBoPWh8fCIuNSIsZy89aCxtLnN0eWxlKGMuZWxlbSxhLGcrZik7d2hpbGUoaCE9PShoPWMuY3VyKCkvZCkmJjEhPT1oJiYtLWkpfXJldHVybiBlJiYoZz1jLnN0YXJ0PStnfHwrZHx8MCxjLnVuaXQ9ZixjLmVuZD1lWzFdP2crKGVbMV0rMSkqZVsyXTorZVsyXSksY31dfTtmdW5jdGlvbiBmYygpe3JldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7JGI9dm9pZCAwfSksJGI9bS5ub3coKX1mdW5jdGlvbiBnYyhhLGIpe3ZhciBjLGQ9e2hlaWdodDphfSxlPTA7Zm9yKGI9Yj8xOjA7ND5lO2UrPTItYiljPVRbZV0sZFsibWFyZ2luIitjXT1kWyJwYWRkaW5nIitjXT1hO3JldHVybiBiJiYoZC5vcGFjaXR5PWQud2lkdGg9YSksZH1mdW5jdGlvbiBoYyhhLGIsYyl7Zm9yKHZhciBkLGU9KGVjW2JdfHxbXSkuY29uY2F0KGVjWyIqIl0pLGY9MCxnPWUubGVuZ3RoO2c+ZjtmKyspaWYoZD1lW2ZdLmNhbGwoYyxiLGEpKXJldHVybiBkfWZ1bmN0aW9uIGljKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixsLG49dGhpcyxvPXt9LHA9YS5zdHlsZSxxPWEubm9kZVR5cGUmJlUoYSkscj1tLl9kYXRhKGEsImZ4c2hvdyIpO2MucXVldWV8fChoPW0uX3F1ZXVlSG9va3MoYSwiZngiKSxudWxsPT1oLnVucXVldWVkJiYoaC51bnF1ZXVlZD0wLGk9aC5lbXB0eS5maXJlLGguZW1wdHkuZmlyZT1mdW5jdGlvbigpe2gudW5xdWV1ZWR8fGkoKX0pLGgudW5xdWV1ZWQrKyxuLmFsd2F5cyhmdW5jdGlvbigpe24uYWx3YXlzKGZ1bmN0aW9uKCl7aC51bnF1ZXVlZC0tLG0ucXVldWUoYSwiZngiKS5sZW5ndGh8fGguZW1wdHkuZmlyZSgpfSl9KSksMT09PWEubm9kZVR5cGUmJigiaGVpZ2h0ImluIGJ8fCJ3aWR0aCJpbiBiKSYmKGMub3ZlcmZsb3c9W3Aub3ZlcmZsb3cscC5vdmVyZmxvd1gscC5vdmVyZmxvd1ldLGo9bS5jc3MoYSwiZGlzcGxheSIpLGw9Im5vbmUiPT09aj9tLl9kYXRhKGEsIm9sZGRpc3BsYXkiKXx8RmIoYS5ub2RlTmFtZSk6aiwiaW5saW5lIj09PWwmJiJub25lIj09PW0uY3NzKGEsImZsb2F0IikmJihrLmlubGluZUJsb2NrTmVlZHNMYXlvdXQmJiJpbmxpbmUiIT09RmIoYS5ub2RlTmFtZSk/cC56b29tPTE6cC5kaXNwbGF5PSJpbmxpbmUtYmxvY2siKSksYy5vdmVyZmxvdyYmKHAub3ZlcmZsb3c9ImhpZGRlbiIsay5zaHJpbmtXcmFwQmxvY2tzKCl8fG4uYWx3YXlzKGZ1bmN0aW9uKCl7cC5vdmVyZmxvdz1jLm92ZXJmbG93WzBdLHAub3ZlcmZsb3dYPWMub3ZlcmZsb3dbMV0scC5vdmVyZmxvd1k9Yy5vdmVyZmxvd1syXX0pKTtmb3IoZCBpbiBiKWlmKGU9YltkXSxhYy5leGVjKGUpKXtpZihkZWxldGUgYltkXSxmPWZ8fCJ0b2dnbGUiPT09ZSxlPT09KHE/ImhpZGUiOiJzaG93Iikpe2lmKCJzaG93IiE9PWV8fCFyfHx2b2lkIDA9PT1yW2RdKWNvbnRpbnVlO3E9ITB9b1tkXT1yJiZyW2RdfHxtLnN0eWxlKGEsZCl9ZWxzZSBqPXZvaWQgMDtpZihtLmlzRW1wdHlPYmplY3QobykpImlubGluZSI9PT0oIm5vbmUiPT09aj9GYihhLm5vZGVOYW1lKTpqKSYmKHAuZGlzcGxheT1qKTtlbHNle3I/ImhpZGRlbiJpbiByJiYocT1yLmhpZGRlbik6cj1tLl9kYXRhKGEsImZ4c2hvdyIse30pLGYmJihyLmhpZGRlbj0hcSkscT9tKGEpLnNob3coKTpuLmRvbmUoZnVuY3Rpb24oKXttKGEpLmhpZGUoKX0pLG4uZG9uZShmdW5jdGlvbigpe3ZhciBiO20uX3JlbW92ZURhdGEoYSwiZnhzaG93Iik7Zm9yKGIgaW4gbyltLnN0eWxlKGEsYixvW2JdKX0pO2ZvcihkIGluIG8pZz1oYyhxP3JbZF06MCxkLG4pLGQgaW4gcnx8KHJbZF09Zy5zdGFydCxxJiYoZy5lbmQ9Zy5zdGFydCxnLnN0YXJ0PSJ3aWR0aCI9PT1kfHwiaGVpZ2h0Ij09PWQ/MTowKSl9fWZ1bmN0aW9uIGpjKGEsYil7dmFyIGMsZCxlLGYsZztmb3IoYyBpbiBhKWlmKGQ9bS5jYW1lbENhc2UoYyksZT1iW2RdLGY9YVtjXSxtLmlzQXJyYXkoZikmJihlPWZbMV0sZj1hW2NdPWZbMF0pLGMhPT1kJiYoYVtkXT1mLGRlbGV0ZSBhW2NdKSxnPW0uY3NzSG9va3NbZF0sZyYmImV4cGFuZCJpbiBnKXtmPWcuZXhwYW5kKGYpLGRlbGV0ZSBhW2RdO2ZvcihjIGluIGYpYyBpbiBhfHwoYVtjXT1mW2NdLGJbY109ZSl9ZWxzZSBiW2RdPWV9ZnVuY3Rpb24ga2MoYSxiLGMpe3ZhciBkLGUsZj0wLGc9ZGMubGVuZ3RoLGg9bS5EZWZlcnJlZCgpLmFsd2F5cyhmdW5jdGlvbigpe2RlbGV0ZSBpLmVsZW19KSxpPWZ1bmN0aW9uKCl7aWYoZSlyZXR1cm4hMTtmb3IodmFyIGI9JGJ8fGZjKCksYz1NYXRoLm1heCgwLGouc3RhcnRUaW1lK2ouZHVyYXRpb24tYiksZD1jL2ouZHVyYXRpb258fDAsZj0xLWQsZz0wLGk9ai50d2VlbnMubGVuZ3RoO2k+ZztnKyspai50d2VlbnNbZ10ucnVuKGYpO3JldHVybiBoLm5vdGlmeVdpdGgoYSxbaixmLGNdKSwxPmYmJmk/YzooaC5yZXNvbHZlV2l0aChhLFtqXSksITEpfSxqPWgucHJvbWlzZSh7ZWxlbTphLHByb3BzOm0uZXh0ZW5kKHt9LGIpLG9wdHM6bS5leHRlbmQoITAse3NwZWNpYWxFYXNpbmc6e319LGMpLG9yaWdpbmFsUHJvcGVydGllczpiLG9yaWdpbmFsT3B0aW9uczpjLHN0YXJ0VGltZTokYnx8ZmMoKSxkdXJhdGlvbjpjLmR1cmF0aW9uLHR3ZWVuczpbXSxjcmVhdGVUd2VlbjpmdW5jdGlvbihiLGMpe3ZhciBkPW0uVHdlZW4oYSxqLm9wdHMsYixjLGoub3B0cy5zcGVjaWFsRWFzaW5nW2JdfHxqLm9wdHMuZWFzaW5nKTtyZXR1cm4gai50d2VlbnMucHVzaChkKSxkfSxzdG9wOmZ1bmN0aW9uKGIpe3ZhciBjPTAsZD1iP2oudHdlZW5zLmxlbmd0aDowO2lmKGUpcmV0dXJuIHRoaXM7Zm9yKGU9ITA7ZD5jO2MrKylqLnR3ZWVuc1tjXS5ydW4oMSk7cmV0dXJuIGI/aC5yZXNvbHZlV2l0aChhLFtqLGJdKTpoLnJlamVjdFdpdGgoYSxbaixiXSksdGhpc319KSxrPWoucHJvcHM7Zm9yKGpjKGssai5vcHRzLnNwZWNpYWxFYXNpbmcpO2c+ZjtmKyspaWYoZD1kY1tmXS5jYWxsKGosYSxrLGoub3B0cykpcmV0dXJuIGQ7cmV0dXJuIG0ubWFwKGssaGMsaiksbS5pc0Z1bmN0aW9uKGoub3B0cy5zdGFydCkmJmoub3B0cy5zdGFydC5jYWxsKGEsaiksbS5meC50aW1lcihtLmV4dGVuZChpLHtlbGVtOmEsYW5pbTpqLHF1ZXVlOmoub3B0cy5xdWV1ZX0pKSxqLnByb2dyZXNzKGoub3B0cy5wcm9ncmVzcykuZG9uZShqLm9wdHMuZG9uZSxqLm9wdHMuY29tcGxldGUpLmZhaWwoai5vcHRzLmZhaWwpLmFsd2F5cyhqLm9wdHMuYWx3YXlzKX1tLkFuaW1hdGlvbj1tLmV4dGVuZChrYyx7dHdlZW5lcjpmdW5jdGlvbihhLGIpe20uaXNGdW5jdGlvbihhKT8oYj1hLGE9WyIqIl0pOmE9YS5zcGxpdCgiICIpO2Zvcih2YXIgYyxkPTAsZT1hLmxlbmd0aDtlPmQ7ZCsrKWM9YVtkXSxlY1tjXT1lY1tjXXx8W10sZWNbY10udW5zaGlmdChiKX0scHJlZmlsdGVyOmZ1bmN0aW9uKGEsYil7Yj9kYy51bnNoaWZ0KGEpOmRjLnB1c2goYSl9fSksbS5zcGVlZD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YSYmIm9iamVjdCI9PXR5cGVvZiBhP20uZXh0ZW5kKHt9LGEpOntjb21wbGV0ZTpjfHwhYyYmYnx8bS5pc0Z1bmN0aW9uKGEpJiZhLGR1cmF0aW9uOmEsZWFzaW5nOmMmJmJ8fGImJiFtLmlzRnVuY3Rpb24oYikmJmJ9O3JldHVybiBkLmR1cmF0aW9uPW0uZngub2ZmPzA6Im51bWJlciI9PXR5cGVvZiBkLmR1cmF0aW9uP2QuZHVyYXRpb246ZC5kdXJhdGlvbiBpbiBtLmZ4LnNwZWVkcz9tLmZ4LnNwZWVkc1tkLmR1cmF0aW9uXTptLmZ4LnNwZWVkcy5fZGVmYXVsdCwobnVsbD09ZC5xdWV1ZXx8ZC5xdWV1ZT09PSEwKSYmKGQucXVldWU9ImZ4IiksZC5vbGQ9ZC5jb21wbGV0ZSxkLmNvbXBsZXRlPWZ1bmN0aW9uKCl7bS5pc0Z1bmN0aW9uKGQub2xkKSYmZC5vbGQuY2FsbCh0aGlzKSxkLnF1ZXVlJiZtLmRlcXVldWUodGhpcyxkLnF1ZXVlKX0sZH0sbS5mbi5leHRlbmQoe2ZhZGVUbzpmdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gdGhpcy5maWx0ZXIoVSkuY3NzKCJvcGFjaXR5IiwwKS5zaG93KCkuZW5kKCkuYW5pbWF0ZSh7b3BhY2l0eTpifSxhLGMsZCl9LGFuaW1hdGU6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9bS5pc0VtcHR5T2JqZWN0KGEpLGY9bS5zcGVlZChiLGMsZCksZz1mdW5jdGlvbigpe3ZhciBiPWtjKHRoaXMsbS5leHRlbmQoe30sYSksZik7KGV8fG0uX2RhdGEodGhpcywiZmluaXNoIikpJiZiLnN0b3AoITApfTtyZXR1cm4gZy5maW5pc2g9ZyxlfHxmLnF1ZXVlPT09ITE/dGhpcy5lYWNoKGcpOnRoaXMucXVldWUoZi5xdWV1ZSxnKX0sc3RvcDpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9ZnVuY3Rpb24oYSl7dmFyIGI9YS5zdG9wO2RlbGV0ZSBhLnN0b3AsYihjKX07cmV0dXJuInN0cmluZyIhPXR5cGVvZiBhJiYoYz1iLGI9YSxhPXZvaWQgMCksYiYmYSE9PSExJiZ0aGlzLnF1ZXVlKGF8fCJmeCIsW10pLHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBiPSEwLGU9bnVsbCE9YSYmYSsicXVldWVIb29rcyIsZj1tLnRpbWVycyxnPW0uX2RhdGEodGhpcyk7aWYoZSlnW2VdJiZnW2VdLnN0b3AmJmQoZ1tlXSk7ZWxzZSBmb3IoZSBpbiBnKWdbZV0mJmdbZV0uc3RvcCYmY2MudGVzdChlKSYmZChnW2VdKTtmb3IoZT1mLmxlbmd0aDtlLS07KWZbZV0uZWxlbSE9PXRoaXN8fG51bGwhPWEmJmZbZV0ucXVldWUhPT1hfHwoZltlXS5hbmltLnN0b3AoYyksYj0hMSxmLnNwbGljZShlLDEpKTsoYnx8IWMpJiZtLmRlcXVldWUodGhpcyxhKX0pfSxmaW5pc2g6ZnVuY3Rpb24oYSl7cmV0dXJuIGEhPT0hMSYmKGE9YXx8ImZ4IiksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGIsYz1tLl9kYXRhKHRoaXMpLGQ9Y1thKyJxdWV1ZSJdLGU9Y1thKyJxdWV1ZUhvb2tzIl0sZj1tLnRpbWVycyxnPWQ/ZC5sZW5ndGg6MDtmb3IoYy5maW5pc2g9ITAsbS5xdWV1ZSh0aGlzLGEsW10pLGUmJmUuc3RvcCYmZS5zdG9wLmNhbGwodGhpcywhMCksYj1mLmxlbmd0aDtiLS07KWZbYl0uZWxlbT09PXRoaXMmJmZbYl0ucXVldWU9PT1hJiYoZltiXS5hbmltLnN0b3AoITApLGYuc3BsaWNlKGIsMSkpO2ZvcihiPTA7Zz5iO2IrKylkW2JdJiZkW2JdLmZpbmlzaCYmZFtiXS5maW5pc2guY2FsbCh0aGlzKTtkZWxldGUgYy5maW5pc2h9KX19KSxtLmVhY2goWyJ0b2dnbGUiLCJzaG93IiwiaGlkZSJdLGZ1bmN0aW9uKGEsYil7dmFyIGM9bS5mbltiXTttLmZuW2JdPWZ1bmN0aW9uKGEsZCxlKXtyZXR1cm4gbnVsbD09YXx8ImJvb2xlYW4iPT10eXBlb2YgYT9jLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp0aGlzLmFuaW1hdGUoZ2MoYiwhMCksYSxkLGUpfX0pLG0uZWFjaCh7c2xpZGVEb3duOmdjKCJzaG93Iiksc2xpZGVVcDpnYygiaGlkZSIpLHNsaWRlVG9nZ2xlOmdjKCJ0b2dnbGUiKSxmYWRlSW46e29wYWNpdHk6InNob3cifSxmYWRlT3V0OntvcGFjaXR5OiJoaWRlIn0sZmFkZVRvZ2dsZTp7b3BhY2l0eToidG9nZ2xlIn19LGZ1bmN0aW9uKGEsYil7bS5mblthXT1mdW5jdGlvbihhLGMsZCl7cmV0dXJuIHRoaXMuYW5pbWF0ZShiLGEsYyxkKX19KSxtLnRpbWVycz1bXSxtLmZ4LnRpY2s9ZnVuY3Rpb24oKXt2YXIgYSxiPW0udGltZXJzLGM9MDtmb3IoJGI9bS5ub3coKTtjPGIubGVuZ3RoO2MrKylhPWJbY10sYSgpfHxiW2NdIT09YXx8Yi5zcGxpY2UoYy0tLDEpO2IubGVuZ3RofHxtLmZ4LnN0b3AoKSwkYj12b2lkIDB9LG0uZngudGltZXI9ZnVuY3Rpb24oYSl7bS50aW1lcnMucHVzaChhKSxhKCk/bS5meC5zdGFydCgpOm0udGltZXJzLnBvcCgpfSxtLmZ4LmludGVydmFsPTEzLG0uZnguc3RhcnQ9ZnVuY3Rpb24oKXtfYnx8KF9iPXNldEludGVydmFsKG0uZngudGljayxtLmZ4LmludGVydmFsKSl9LG0uZnguc3RvcD1mdW5jdGlvbigpe2NsZWFySW50ZXJ2YWwoX2IpLF9iPW51bGx9LG0uZnguc3BlZWRzPXtzbG93OjYwMCxmYXN0OjIwMCxfZGVmYXVsdDo0MDB9LG0uZm4uZGVsYXk9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT1tLmZ4P20uZnguc3BlZWRzW2FdfHxhOmEsYj1ifHwiZngiLHRoaXMucXVldWUoYixmdW5jdGlvbihiLGMpe3ZhciBkPXNldFRpbWVvdXQoYixhKTtjLnN0b3A9ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoZCl9fSl9LGZ1bmN0aW9uKCl7dmFyIGEsYixjLGQsZTtiPXkuY3JlYXRlRWxlbWVudCgiZGl2IiksYi5zZXRBdHRyaWJ1dGUoImNsYXNzTmFtZSIsInQiKSxiLmlubmVySFRNTD0iICA8bGluay8+PHRhYmxlPjwvdGFibGU+PGEgaHJlZj0nL2EnPmE8L2E+PGlucHV0IHR5cGU9J2NoZWNrYm94Jy8+IixkPWIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKVswXSxjPXkuY3JlYXRlRWxlbWVudCgic2VsZWN0IiksZT1jLmFwcGVuZENoaWxkKHkuY3JlYXRlRWxlbWVudCgib3B0aW9uIikpLGE9Yi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXSxkLnN0eWxlLmNzc1RleHQ9InRvcDoxcHgiLGsuZ2V0U2V0QXR0cmlidXRlPSJ0IiE9PWIuY2xhc3NOYW1lLGsuc3R5bGU9L3RvcC8udGVzdChkLmdldEF0dHJpYnV0ZSgic3R5bGUiKSksay5ocmVmTm9ybWFsaXplZD0iL2EiPT09ZC5nZXRBdHRyaWJ1dGUoImhyZWYiKSxrLmNoZWNrT249ISFhLnZhbHVlLGsub3B0U2VsZWN0ZWQ9ZS5zZWxlY3RlZCxrLmVuY3R5cGU9ISF5LmNyZWF0ZUVsZW1lbnQoImZvcm0iKS5lbmN0eXBlLGMuZGlzYWJsZWQ9ITAsay5vcHREaXNhYmxlZD0hZS5kaXNhYmxlZCxhPXkuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxhLnNldEF0dHJpYnV0ZSgidmFsdWUiLCIiKSxrLmlucHV0PSIiPT09YS5nZXRBdHRyaWJ1dGUoInZhbHVlIiksYS52YWx1ZT0idCIsYS5zZXRBdHRyaWJ1dGUoInR5cGUiLCJyYWRpbyIpLGsucmFkaW9WYWx1ZT0idCI9PT1hLnZhbHVlfSgpO3ZhciBsYz0vXHIvZzttLmZuLmV4dGVuZCh7dmFsOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlPXRoaXNbMF07e2lmKGFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIGQ9bS5pc0Z1bmN0aW9uKGEpLHRoaXMuZWFjaChmdW5jdGlvbihjKXt2YXIgZTsxPT09dGhpcy5ub2RlVHlwZSYmKGU9ZD9hLmNhbGwodGhpcyxjLG0odGhpcykudmFsKCkpOmEsbnVsbD09ZT9lPSIiOiJudW1iZXIiPT10eXBlb2YgZT9lKz0iIjptLmlzQXJyYXkoZSkmJihlPW0ubWFwKGUsZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PWE/IiI6YSsiIn0pKSxiPW0udmFsSG9va3NbdGhpcy50eXBlXXx8bS52YWxIb29rc1t0aGlzLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldLGImJiJzZXQiaW4gYiYmdm9pZCAwIT09Yi5zZXQodGhpcyxlLCJ2YWx1ZSIpfHwodGhpcy52YWx1ZT1lKSl9KTtpZihlKXJldHVybiBiPW0udmFsSG9va3NbZS50eXBlXXx8bS52YWxIb29rc1tlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldLGImJiJnZXQiaW4gYiYmdm9pZCAwIT09KGM9Yi5nZXQoZSwidmFsdWUiKSk/YzooYz1lLnZhbHVlLCJzdHJpbmciPT10eXBlb2YgYz9jLnJlcGxhY2UobGMsIiIpOm51bGw9PWM/IiI6Yyl9fX0pLG0uZXh0ZW5kKHt2YWxIb29rczp7b3B0aW9uOntnZXQ6ZnVuY3Rpb24oYSl7dmFyIGI9bS5maW5kLmF0dHIoYSwidmFsdWUiKTtyZXR1cm4gbnVsbCE9Yj9iOm0udHJpbShtLnRleHQoYSkpfX0sc2VsZWN0OntnZXQ6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiLGMsZD1hLm9wdGlvbnMsZT1hLnNlbGVjdGVkSW5kZXgsZj0ic2VsZWN0LW9uZSI9PT1hLnR5cGV8fDA+ZSxnPWY/bnVsbDpbXSxoPWY/ZSsxOmQubGVuZ3RoLGk9MD5lP2g6Zj9lOjA7aD5pO2krKylpZihjPWRbaV0sISghYy5zZWxlY3RlZCYmaSE9PWV8fChrLm9wdERpc2FibGVkP2MuZGlzYWJsZWQ6bnVsbCE9PWMuZ2V0QXR0cmlidXRlKCJkaXNhYmxlZCIpKXx8Yy5wYXJlbnROb2RlLmRpc2FibGVkJiZtLm5vZGVOYW1lKGMucGFyZW50Tm9kZSwib3B0Z3JvdXAiKSkpe2lmKGI9bShjKS52YWwoKSxmKXJldHVybiBiO2cucHVzaChiKX1yZXR1cm4gZ30sc2V0OmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlPWEub3B0aW9ucyxmPW0ubWFrZUFycmF5KGIpLGc9ZS5sZW5ndGg7d2hpbGUoZy0tKWlmKGQ9ZVtnXSxtLmluQXJyYXkobS52YWxIb29rcy5vcHRpb24uZ2V0KGQpLGYpPj0wKXRyeXtkLnNlbGVjdGVkPWM9ITB9Y2F0Y2goaCl7ZC5zY3JvbGxIZWlnaHR9ZWxzZSBkLnNlbGVjdGVkPSExO3JldHVybiBjfHwoYS5zZWxlY3RlZEluZGV4PS0xKSxlfX19fSksbS5lYWNoKFsicmFkaW8iLCJjaGVja2JveCJdLGZ1bmN0aW9uKCl7bS52YWxIb29rc1t0aGlzXT17c2V0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIG0uaXNBcnJheShiKT9hLmNoZWNrZWQ9bS5pbkFycmF5KG0oYSkudmFsKCksYik+PTA6dm9pZCAwfX0say5jaGVja09ufHwobS52YWxIb29rc1t0aGlzXS5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PT1hLmdldEF0dHJpYnV0ZSgidmFsdWUiKT8ib24iOmEudmFsdWV9KX0pO3ZhciBtYyxuYyxvYz1tLmV4cHIuYXR0ckhhbmRsZSxwYz0vXig/OmNoZWNrZWR8c2VsZWN0ZWQpJC9pLHFjPWsuZ2V0U2V0QXR0cmlidXRlLHJjPWsuaW5wdXQ7bS5mbi5leHRlbmQoe2F0dHI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVih0aGlzLG0uYXR0cixhLGIsYXJndW1lbnRzLmxlbmd0aD4xKX0scmVtb3ZlQXR0cjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7bS5yZW1vdmVBdHRyKHRoaXMsYSl9KX19KSxtLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZSxmPWEubm9kZVR5cGU7aWYoYSYmMyE9PWYmJjghPT1mJiYyIT09ZilyZXR1cm4gdHlwZW9mIGEuZ2V0QXR0cmlidXRlPT09Sz9tLnByb3AoYSxiLGMpOigxPT09ZiYmbS5pc1hNTERvYyhhKXx8KGI9Yi50b0xvd2VyQ2FzZSgpLGQ9bS5hdHRySG9va3NbYl18fChtLmV4cHIubWF0Y2guYm9vbC50ZXN0KGIpP25jOm1jKSksdm9pZCAwPT09Yz9kJiYiZ2V0ImluIGQmJm51bGwhPT0oZT1kLmdldChhLGIpKT9lOihlPW0uZmluZC5hdHRyKGEsYiksbnVsbD09ZT92b2lkIDA6ZSk6bnVsbCE9PWM/ZCYmInNldCJpbiBkJiZ2b2lkIDAhPT0oZT1kLnNldChhLGMsYikpP2U6KGEuc2V0QXR0cmlidXRlKGIsYysiIiksYyk6dm9pZCBtLnJlbW92ZUF0dHIoYSxiKSl9LHJlbW92ZUF0dHI6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGU9MCxmPWImJmIubWF0Y2goRSk7aWYoZiYmMT09PWEubm9kZVR5cGUpd2hpbGUoYz1mW2UrK10pZD1tLnByb3BGaXhbY118fGMsbS5leHByLm1hdGNoLmJvb2wudGVzdChjKT9yYyYmcWN8fCFwYy50ZXN0KGMpP2FbZF09ITE6YVttLmNhbWVsQ2FzZSgiZGVmYXVsdC0iK2MpXT1hW2RdPSExOm0uYXR0cihhLGMsIiIpLGEucmVtb3ZlQXR0cmlidXRlKHFjP2M6ZCl9LGF0dHJIb29rczp7dHlwZTp7c2V0OmZ1bmN0aW9uKGEsYil7aWYoIWsucmFkaW9WYWx1ZSYmInJhZGlvIj09PWImJm0ubm9kZU5hbWUoYSwiaW5wdXQiKSl7dmFyIGM9YS52YWx1ZTtyZXR1cm4gYS5zZXRBdHRyaWJ1dGUoInR5cGUiLGIpLGMmJihhLnZhbHVlPWMpLGJ9fX19fSksbmM9e3NldDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGI9PT0hMT9tLnJlbW92ZUF0dHIoYSxjKTpyYyYmcWN8fCFwYy50ZXN0KGMpP2Euc2V0QXR0cmlidXRlKCFxYyYmbS5wcm9wRml4W2NdfHxjLGMpOmFbbS5jYW1lbENhc2UoImRlZmF1bHQtIitjKV09YVtjXT0hMCxjfX0sbS5lYWNoKG0uZXhwci5tYXRjaC5ib29sLnNvdXJjZS5tYXRjaCgvXHcrL2cpLGZ1bmN0aW9uKGEsYil7dmFyIGM9b2NbYl18fG0uZmluZC5hdHRyO29jW2JdPXJjJiZxY3x8IXBjLnRlc3QoYik/ZnVuY3Rpb24oYSxiLGQpe3ZhciBlLGY7cmV0dXJuIGR8fChmPW9jW2JdLG9jW2JdPWUsZT1udWxsIT1jKGEsYixkKT9iLnRvTG93ZXJDYXNlKCk6bnVsbCxvY1tiXT1mKSxlfTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGM/dm9pZCAwOmFbbS5jYW1lbENhc2UoImRlZmF1bHQtIitiKV0/Yi50b0xvd2VyQ2FzZSgpOm51bGx9fSkscmMmJnFjfHwobS5hdHRySG9va3MudmFsdWU9e3NldDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIG0ubm9kZU5hbWUoYSwiaW5wdXQiKT92b2lkKGEuZGVmYXVsdFZhbHVlPWIpOm1jJiZtYy5zZXQoYSxiLGMpfX0pLHFjfHwobWM9e3NldDpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5nZXRBdHRyaWJ1dGVOb2RlKGMpO3JldHVybiBkfHxhLnNldEF0dHJpYnV0ZU5vZGUoZD1hLm93bmVyRG9jdW1lbnQuY3JlYXRlQXR0cmlidXRlKGMpKSxkLnZhbHVlPWIrPSIiLCJ2YWx1ZSI9PT1jfHxiPT09YS5nZXRBdHRyaWJ1dGUoYyk/Yjp2b2lkIDB9fSxvYy5pZD1vYy5uYW1lPW9jLmNvb3Jkcz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ7cmV0dXJuIGM/dm9pZCAwOihkPWEuZ2V0QXR0cmlidXRlTm9kZShiKSkmJiIiIT09ZC52YWx1ZT9kLnZhbHVlOm51bGx9LG0udmFsSG9va3MuYnV0dG9uPXtnZXQ6ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmdldEF0dHJpYnV0ZU5vZGUoYik7cmV0dXJuIGMmJmMuc3BlY2lmaWVkP2MudmFsdWU6dm9pZCAwfSxzZXQ6bWMuc2V0fSxtLmF0dHJIb29rcy5jb250ZW50ZWRpdGFibGU9e3NldDpmdW5jdGlvbihhLGIsYyl7bWMuc2V0KGEsIiI9PT1iPyExOmIsYyl9fSxtLmVhY2goWyJ3aWR0aCIsImhlaWdodCJdLGZ1bmN0aW9uKGEsYil7bS5hdHRySG9va3NbYl09e3NldDpmdW5jdGlvbihhLGMpe3JldHVybiIiPT09Yz8oYS5zZXRBdHRyaWJ1dGUoYiwiYXV0byIpLGMpOnZvaWQgMH19fSkpLGsuc3R5bGV8fChtLmF0dHJIb29rcy5zdHlsZT17Z2V0OmZ1bmN0aW9uKGEpe3JldHVybiBhLnN0eWxlLmNzc1RleHR8fHZvaWQgMH0sc2V0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuc3R5bGUuY3NzVGV4dD1iKyIifX0pO3ZhciBzYz0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b258b2JqZWN0KSQvaSx0Yz0vXig/OmF8YXJlYSkkL2k7bS5mbi5leHRlbmQoe3Byb3A6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVih0aGlzLG0ucHJvcCxhLGIsYXJndW1lbnRzLmxlbmd0aD4xKX0scmVtb3ZlUHJvcDpmdW5jdGlvbihhKXtyZXR1cm4gYT1tLnByb3BGaXhbYV18fGEsdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dHJ5e3RoaXNbYV09dm9pZCAwLGRlbGV0ZSB0aGlzW2FdfWNhdGNoKGIpe319KX19KSxtLmV4dGVuZCh7cHJvcEZpeDp7ImZvciI6Imh0bWxGb3IiLCJjbGFzcyI6ImNsYXNzTmFtZSJ9LHByb3A6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZixnPWEubm9kZVR5cGU7aWYoYSYmMyE9PWcmJjghPT1nJiYyIT09ZylyZXR1cm4gZj0xIT09Z3x8IW0uaXNYTUxEb2MoYSksZiYmKGI9bS5wcm9wRml4W2JdfHxiLGU9bS5wcm9wSG9va3NbYl0pLHZvaWQgMCE9PWM/ZSYmInNldCJpbiBlJiZ2b2lkIDAhPT0oZD1lLnNldChhLGMsYikpP2Q6YVtiXT1jOmUmJiJnZXQiaW4gZSYmbnVsbCE9PShkPWUuZ2V0KGEsYikpP2Q6YVtiXX0scHJvcEhvb2tzOnt0YWJJbmRleDp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiPW0uZmluZC5hdHRyKGEsInRhYmluZGV4Iik7cmV0dXJuIGI/cGFyc2VJbnQoYiwxMCk6c2MudGVzdChhLm5vZGVOYW1lKXx8dGMudGVzdChhLm5vZGVOYW1lKSYmYS5ocmVmPzA6LTF9fX19KSxrLmhyZWZOb3JtYWxpemVkfHxtLmVhY2goWyJocmVmIiwic3JjIl0sZnVuY3Rpb24oYSxiKXttLnByb3BIb29rc1tiXT17Z2V0OmZ1bmN0aW9uKGEpe3JldHVybiBhLmdldEF0dHJpYnV0ZShiLDQpfX19KSxrLm9wdFNlbGVjdGVkfHwobS5wcm9wSG9va3Muc2VsZWN0ZWQ9e2dldDpmdW5jdGlvbihhKXt2YXIgYj1hLnBhcmVudE5vZGU7cmV0dXJuIGImJihiLnNlbGVjdGVkSW5kZXgsYi5wYXJlbnROb2RlJiZiLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCksbnVsbH19KSxtLmVhY2goWyJ0YWJJbmRleCIsInJlYWRPbmx5IiwibWF4TGVuZ3RoIiwiY2VsbFNwYWNpbmciLCJjZWxsUGFkZGluZyIsInJvd1NwYW4iLCJjb2xTcGFuIiwidXNlTWFwIiwiZnJhbWVCb3JkZXIiLCJjb250ZW50RWRpdGFibGUiXSxmdW5jdGlvbigpe20ucHJvcEZpeFt0aGlzLnRvTG93ZXJDYXNlKCldPXRoaXN9KSxrLmVuY3R5cGV8fChtLnByb3BGaXguZW5jdHlwZT0iZW5jb2RpbmciKTt2YXIgdWM9L1tcdFxyXG5cZl0vZzttLmZuLmV4dGVuZCh7YWRkQ2xhc3M6ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGUsZixnLGg9MCxpPXRoaXMubGVuZ3RoLGo9InN0cmluZyI9PXR5cGVvZiBhJiZhO2lmKG0uaXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGIpe20odGhpcykuYWRkQ2xhc3MoYS5jYWxsKHRoaXMsYix0aGlzLmNsYXNzTmFtZSkpfSk7aWYoailmb3IoYj0oYXx8IiIpLm1hdGNoKEUpfHxbXTtpPmg7aCsrKWlmKGM9dGhpc1toXSxkPTE9PT1jLm5vZGVUeXBlJiYoYy5jbGFzc05hbWU/KCIgIitjLmNsYXNzTmFtZSsiICIpLnJlcGxhY2UodWMsIiAiKToiICIpKXtmPTA7d2hpbGUoZT1iW2YrK10pZC5pbmRleE9mKCIgIitlKyIgIik8MCYmKGQrPWUrIiAiKTtnPW0udHJpbShkKSxjLmNsYXNzTmFtZSE9PWcmJihjLmNsYXNzTmFtZT1nKX1yZXR1cm4gdGhpc30scmVtb3ZlQ2xhc3M6ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGUsZixnLGg9MCxpPXRoaXMubGVuZ3RoLGo9MD09PWFyZ3VtZW50cy5sZW5ndGh8fCJzdHJpbmciPT10eXBlb2YgYSYmYTtpZihtLmlzRnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihiKXttKHRoaXMpLnJlbW92ZUNsYXNzKGEuY2FsbCh0aGlzLGIsdGhpcy5jbGFzc05hbWUpKX0pO2lmKGopZm9yKGI9KGF8fCIiKS5tYXRjaChFKXx8W107aT5oO2grKylpZihjPXRoaXNbaF0sZD0xPT09Yy5ub2RlVHlwZSYmKGMuY2xhc3NOYW1lPygiICIrYy5jbGFzc05hbWUrIiAiKS5yZXBsYWNlKHVjLCIgIik6IiIpKXtmPTA7d2hpbGUoZT1iW2YrK10pd2hpbGUoZC5pbmRleE9mKCIgIitlKyIgIik+PTApZD1kLnJlcGxhY2UoIiAiK2UrIiAiLCIgIik7Zz1hP20udHJpbShkKToiIixjLmNsYXNzTmFtZSE9PWcmJihjLmNsYXNzTmFtZT1nKX1yZXR1cm4gdGhpc30sdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24oYSxiKXt2YXIgYz10eXBlb2YgYTtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiBiJiYic3RyaW5nIj09PWM/Yj90aGlzLmFkZENsYXNzKGEpOnRoaXMucmVtb3ZlQ2xhc3MoYSk6dGhpcy5lYWNoKG0uaXNGdW5jdGlvbihhKT9mdW5jdGlvbihjKXttKHRoaXMpLnRvZ2dsZUNsYXNzKGEuY2FsbCh0aGlzLGMsdGhpcy5jbGFzc05hbWUsYiksYil9OmZ1bmN0aW9uKCl7aWYoInN0cmluZyI9PT1jKXt2YXIgYixkPTAsZT1tKHRoaXMpLGY9YS5tYXRjaChFKXx8W107d2hpbGUoYj1mW2QrK10pZS5oYXNDbGFzcyhiKT9lLnJlbW92ZUNsYXNzKGIpOmUuYWRkQ2xhc3MoYil9ZWxzZShjPT09S3x8ImJvb2xlYW4iPT09YykmJih0aGlzLmNsYXNzTmFtZSYmbS5fZGF0YSh0aGlzLCJfX2NsYXNzTmFtZV9fIix0aGlzLmNsYXNzTmFtZSksdGhpcy5jbGFzc05hbWU9dGhpcy5jbGFzc05hbWV8fGE9PT0hMT8iIjptLl9kYXRhKHRoaXMsIl9fY2xhc3NOYW1lX18iKXx8IiIpfSl9LGhhc0NsYXNzOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0iICIrYSsiICIsYz0wLGQ9dGhpcy5sZW5ndGg7ZD5jO2MrKylpZigxPT09dGhpc1tjXS5ub2RlVHlwZSYmKCIgIit0aGlzW2NdLmNsYXNzTmFtZSsiICIpLnJlcGxhY2UodWMsIiAiKS5pbmRleE9mKGIpPj0wKXJldHVybiEwO3JldHVybiExfX0pLG0uZWFjaCgiYmx1ciBmb2N1cyBmb2N1c2luIGZvY3Vzb3V0IGxvYWQgcmVzaXplIHNjcm9sbCB1bmxvYWQgY2xpY2sgZGJsY2xpY2sgbW91c2Vkb3duIG1vdXNldXAgbW91c2Vtb3ZlIG1vdXNlb3ZlciBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgY2hhbmdlIHNlbGVjdCBzdWJtaXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBlcnJvciBjb250ZXh0bWVudSIuc3BsaXQoIiAiKSxmdW5jdGlvbihhLGIpe20uZm5bYl09ZnVuY3Rpb24oYSxjKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4wP3RoaXMub24oYixudWxsLGEsYyk6dGhpcy50cmlnZ2VyKGIpfX0pLG0uZm4uZXh0ZW5kKHtob3ZlcjpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLm1vdXNlZW50ZXIoYSkubW91c2VsZWF2ZShifHxhKX0sYmluZDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHRoaXMub24oYSxudWxsLGIsYyl9LHVuYmluZDpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLm9mZihhLG51bGwsYil9LGRlbGVnYXRlOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0aGlzLm9uKGIsYSxjLGQpfSx1bmRlbGVnYXRlOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/dGhpcy5vZmYoYSwiKioiKTp0aGlzLm9mZihiLGF8fCIqKiIsYyl9fSk7dmFyIHZjPW0ubm93KCksd2M9L1w/Lyx4Yz0vKCwpfChcW3x7KXwofXxdKXwiKD86W14iXFxcclxuXXxcXFsiXFxcL2JmbnJ0XXxcXHVbXGRhLWZBLUZdezR9KSoiXHMqOj98dHJ1ZXxmYWxzZXxudWxsfC0/KD8hMFxkKVxkKyg/OlwuXGQrfCkoPzpbZUVdWystXT9cZCt8KS9nO20ucGFyc2VKU09OPWZ1bmN0aW9uKGIpe2lmKGEuSlNPTiYmYS5KU09OLnBhcnNlKXJldHVybiBhLkpTT04ucGFyc2UoYisiIik7dmFyIGMsZD1udWxsLGU9bS50cmltKGIrIiIpO3JldHVybiBlJiYhbS50cmltKGUucmVwbGFjZSh4YyxmdW5jdGlvbihhLGIsZSxmKXtyZXR1cm4gYyYmYiYmKGQ9MCksMD09PWQ/YTooYz1lfHxiLGQrPSFmLSFlLCIiKX0pKT9GdW5jdGlvbigicmV0dXJuICIrZSkoKTptLmVycm9yKCJJbnZhbGlkIEpTT046ICIrYil9LG0ucGFyc2VYTUw9ZnVuY3Rpb24oYil7dmFyIGMsZDtpZighYnx8InN0cmluZyIhPXR5cGVvZiBiKXJldHVybiBudWxsO3RyeXthLkRPTVBhcnNlcj8oZD1uZXcgRE9NUGFyc2VyLGM9ZC5wYXJzZUZyb21TdHJpbmcoYiwidGV4dC94bWwiKSk6KGM9bmV3IEFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxET00iKSxjLmFzeW5jPSJmYWxzZSIsYy5sb2FkWE1MKGIpKX1jYXRjaChlKXtjPXZvaWQgMH1yZXR1cm4gYyYmYy5kb2N1bWVudEVsZW1lbnQmJiFjLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwYXJzZXJlcnJvciIpLmxlbmd0aHx8bS5lcnJvcigiSW52YWxpZCBYTUw6ICIrYiksY307dmFyIHljLHpjLEFjPS8jLiokLyxCYz0vKFs/Jl0pXz1bXiZdKi8sQ2M9L14oLio/KTpbIFx0XSooW15cclxuXSopXHI/JC9nbSxEYz0vXig/OmFib3V0fGFwcHxhcHAtc3RvcmFnZXwuKy1leHRlbnNpb258ZmlsZXxyZXN8d2lkZ2V0KTokLyxFYz0vXig/OkdFVHxIRUFEKSQvLEZjPS9eXC9cLy8sR2M9L14oW1x3ListXSs6KSg/OlwvXC8oPzpbXlwvPyNdKkB8KShbXlwvPyM6XSopKD86OihcZCspfCl8KS8sSGM9e30sSWM9e30sSmM9IiovIi5jb25jYXQoIioiKTt0cnl7emM9bG9jYXRpb24uaHJlZn1jYXRjaChLYyl7emM9eS5jcmVhdGVFbGVtZW50KCJhIiksemMuaHJlZj0iIix6Yz16Yy5ocmVmfXljPUdjLmV4ZWMoemMudG9Mb3dlckNhc2UoKSl8fFtdO2Z1bmN0aW9uIExjKGEpe3JldHVybiBmdW5jdGlvbihiLGMpeyJzdHJpbmciIT10eXBlb2YgYiYmKGM9YixiPSIqIik7dmFyIGQsZT0wLGY9Yi50b0xvd2VyQ2FzZSgpLm1hdGNoKEUpfHxbXTtpZihtLmlzRnVuY3Rpb24oYykpd2hpbGUoZD1mW2UrK10pIisiPT09ZC5jaGFyQXQoMCk/KGQ9ZC5zbGljZSgxKXx8IioiLChhW2RdPWFbZF18fFtdKS51bnNoaWZ0KGMpKTooYVtkXT1hW2RdfHxbXSkucHVzaChjKX19ZnVuY3Rpb24gTWMoYSxiLGMsZCl7dmFyIGU9e30sZj1hPT09SWM7ZnVuY3Rpb24gZyhoKXt2YXIgaTtyZXR1cm4gZVtoXT0hMCxtLmVhY2goYVtoXXx8W10sZnVuY3Rpb24oYSxoKXt2YXIgaj1oKGIsYyxkKTtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGp8fGZ8fGVbal0/Zj8hKGk9aik6dm9pZCAwOihiLmRhdGFUeXBlcy51bnNoaWZ0KGopLGcoaiksITEpfSksaX1yZXR1cm4gZyhiLmRhdGFUeXBlc1swXSl8fCFlWyIqIl0mJmcoIioiKX1mdW5jdGlvbiBOYyhhLGIpe3ZhciBjLGQsZT1tLmFqYXhTZXR0aW5ncy5mbGF0T3B0aW9uc3x8e307Zm9yKGQgaW4gYil2b2lkIDAhPT1iW2RdJiYoKGVbZF0/YTpjfHwoYz17fSkpW2RdPWJbZF0pO3JldHVybiBjJiZtLmV4dGVuZCghMCxhLGMpLGF9ZnVuY3Rpb24gT2MoYSxiLGMpe3ZhciBkLGUsZixnLGg9YS5jb250ZW50cyxpPWEuZGF0YVR5cGVzO3doaWxlKCIqIj09PWlbMF0paS5zaGlmdCgpLHZvaWQgMD09PWUmJihlPWEubWltZVR5cGV8fGIuZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtVHlwZSIpKTtpZihlKWZvcihnIGluIGgpaWYoaFtnXSYmaFtnXS50ZXN0KGUpKXtpLnVuc2hpZnQoZyk7YnJlYWt9aWYoaVswXWluIGMpZj1pWzBdO2Vsc2V7Zm9yKGcgaW4gYyl7aWYoIWlbMF18fGEuY29udmVydGVyc1tnKyIgIitpWzBdXSl7Zj1nO2JyZWFrfWR8fChkPWcpfWY9Znx8ZH1yZXR1cm4gZj8oZiE9PWlbMF0mJmkudW5zaGlmdChmKSxjW2ZdKTp2b2lkIDB9ZnVuY3Rpb24gUGMoYSxiLGMsZCl7dmFyIGUsZixnLGgsaSxqPXt9LGs9YS5kYXRhVHlwZXMuc2xpY2UoKTtpZihrWzFdKWZvcihnIGluIGEuY29udmVydGVycylqW2cudG9Mb3dlckNhc2UoKV09YS5jb252ZXJ0ZXJzW2ddO2Y9ay5zaGlmdCgpO3doaWxlKGYpaWYoYS5yZXNwb25zZUZpZWxkc1tmXSYmKGNbYS5yZXNwb25zZUZpZWxkc1tmXV09YiksIWkmJmQmJmEuZGF0YUZpbHRlciYmKGI9YS5kYXRhRmlsdGVyKGIsYS5kYXRhVHlwZSkpLGk9ZixmPWsuc2hpZnQoKSlpZigiKiI9PT1mKWY9aTtlbHNlIGlmKCIqIiE9PWkmJmkhPT1mKXtpZihnPWpbaSsiICIrZl18fGpbIiogIitmXSwhZylmb3IoZSBpbiBqKWlmKGg9ZS5zcGxpdCgiICIpLGhbMV09PT1mJiYoZz1qW2krIiAiK2hbMF1dfHxqWyIqICIraFswXV0pKXtnPT09ITA/Zz1qW2VdOmpbZV0hPT0hMCYmKGY9aFswXSxrLnVuc2hpZnQoaFsxXSkpO2JyZWFrfWlmKGchPT0hMClpZihnJiZhWyJ0aHJvd3MiXSliPWcoYik7ZWxzZSB0cnl7Yj1nKGIpfWNhdGNoKGwpe3JldHVybntzdGF0ZToicGFyc2VyZXJyb3IiLGVycm9yOmc/bDoiTm8gY29udmVyc2lvbiBmcm9tICIraSsiIHRvICIrZn19fXJldHVybntzdGF0ZToic3VjY2VzcyIsZGF0YTpifX1tLmV4dGVuZCh7YWN0aXZlOjAsbGFzdE1vZGlmaWVkOnt9LGV0YWc6e30sYWpheFNldHRpbmdzOnt1cmw6emMsdHlwZToiR0VUIixpc0xvY2FsOkRjLnRlc3QoeWNbMV0pLGdsb2JhbDohMCxwcm9jZXNzRGF0YTohMCxhc3luYzohMCxjb250ZW50VHlwZToiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PVVURi04IixhY2NlcHRzOnsiKiI6SmMsdGV4dDoidGV4dC9wbGFpbiIsaHRtbDoidGV4dC9odG1sIix4bWw6ImFwcGxpY2F0aW9uL3htbCwgdGV4dC94bWwiLGpzb246ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvamF2YXNjcmlwdCJ9LGNvbnRlbnRzOnt4bWw6L3htbC8saHRtbDovaHRtbC8sanNvbjovanNvbi99LHJlc3BvbnNlRmllbGRzOnt4bWw6InJlc3BvbnNlWE1MIix0ZXh0OiJyZXNwb25zZVRleHQiLGpzb246InJlc3BvbnNlSlNPTiJ9LGNvbnZlcnRlcnM6eyIqIHRleHQiOlN0cmluZywidGV4dCBodG1sIjohMCwidGV4dCBqc29uIjptLnBhcnNlSlNPTiwidGV4dCB4bWwiOm0ucGFyc2VYTUx9LGZsYXRPcHRpb25zOnt1cmw6ITAsY29udGV4dDohMH19LGFqYXhTZXR1cDpmdW5jdGlvbihhLGIpe3JldHVybiBiP05jKE5jKGEsbS5hamF4U2V0dGluZ3MpLGIpOk5jKG0uYWpheFNldHRpbmdzLGEpfSxhamF4UHJlZmlsdGVyOkxjKEhjKSxhamF4VHJhbnNwb3J0OkxjKEljKSxhamF4OmZ1bmN0aW9uKGEsYil7Im9iamVjdCI9PXR5cGVvZiBhJiYoYj1hLGE9dm9pZCAwKSxiPWJ8fHt9O3ZhciBjLGQsZSxmLGcsaCxpLGosaz1tLmFqYXhTZXR1cCh7fSxiKSxsPWsuY29udGV4dHx8ayxuPWsuY29udGV4dCYmKGwubm9kZVR5cGV8fGwuanF1ZXJ5KT9tKGwpOm0uZXZlbnQsbz1tLkRlZmVycmVkKCkscD1tLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSxxPWsuc3RhdHVzQ29kZXx8e30scj17fSxzPXt9LHQ9MCx1PSJjYW5jZWxlZCIsdj17cmVhZHlTdGF0ZTowLGdldFJlc3BvbnNlSGVhZGVyOmZ1bmN0aW9uKGEpe3ZhciBiO2lmKDI9PT10KXtpZighail7aj17fTt3aGlsZShiPUNjLmV4ZWMoZikpaltiWzFdLnRvTG93ZXJDYXNlKCldPWJbMl19Yj1qW2EudG9Mb3dlckNhc2UoKV19cmV0dXJuIG51bGw9PWI/bnVsbDpifSxnZXRBbGxSZXNwb25zZUhlYWRlcnM6ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXQ/ZjpudWxsfSxzZXRSZXF1ZXN0SGVhZGVyOmZ1bmN0aW9uKGEsYil7dmFyIGM9YS50b0xvd2VyQ2FzZSgpO3JldHVybiB0fHwoYT1zW2NdPXNbY118fGEsclthXT1iKSx0aGlzfSxvdmVycmlkZU1pbWVUeXBlOmZ1bmN0aW9uKGEpe3JldHVybiB0fHwoay5taW1lVHlwZT1hKSx0aGlzfSxzdGF0dXNDb2RlOmZ1bmN0aW9uKGEpe3ZhciBiO2lmKGEpaWYoMj50KWZvcihiIGluIGEpcVtiXT1bcVtiXSxhW2JdXTtlbHNlIHYuYWx3YXlzKGFbdi5zdGF0dXNdKTtyZXR1cm4gdGhpc30sYWJvcnQ6ZnVuY3Rpb24oYSl7dmFyIGI9YXx8dTtyZXR1cm4gaSYmaS5hYm9ydChiKSx4KDAsYiksdGhpc319O2lmKG8ucHJvbWlzZSh2KS5jb21wbGV0ZT1wLmFkZCx2LnN1Y2Nlc3M9di5kb25lLHYuZXJyb3I9di5mYWlsLGsudXJsPSgoYXx8ay51cmx8fHpjKSsiIikucmVwbGFjZShBYywiIikucmVwbGFjZShGYyx5Y1sxXSsiLy8iKSxrLnR5cGU9Yi5tZXRob2R8fGIudHlwZXx8ay5tZXRob2R8fGsudHlwZSxrLmRhdGFUeXBlcz1tLnRyaW0oay5kYXRhVHlwZXx8IioiKS50b0xvd2VyQ2FzZSgpLm1hdGNoKEUpfHxbIiJdLG51bGw9PWsuY3Jvc3NEb21haW4mJihjPUdjLmV4ZWMoay51cmwudG9Mb3dlckNhc2UoKSksay5jcm9zc0RvbWFpbj0hKCFjfHxjWzFdPT09eWNbMV0mJmNbMl09PT15Y1syXSYmKGNbM118fCgiaHR0cDoiPT09Y1sxXT8iODAiOiI0NDMiKSk9PT0oeWNbM118fCgiaHR0cDoiPT09eWNbMV0/IjgwIjoiNDQzIikpKSksay5kYXRhJiZrLnByb2Nlc3NEYXRhJiYic3RyaW5nIiE9dHlwZW9mIGsuZGF0YSYmKGsuZGF0YT1tLnBhcmFtKGsuZGF0YSxrLnRyYWRpdGlvbmFsKSksTWMoSGMsayxiLHYpLDI9PT10KXJldHVybiB2O2g9ay5nbG9iYWwsaCYmMD09PW0uYWN0aXZlKysmJm0uZXZlbnQudHJpZ2dlcigiYWpheFN0YXJ0Iiksay50eXBlPWsudHlwZS50b1VwcGVyQ2FzZSgpLGsuaGFzQ29udGVudD0hRWMudGVzdChrLnR5cGUpLGU9ay51cmwsay5oYXNDb250ZW50fHwoay5kYXRhJiYoZT1rLnVybCs9KHdjLnRlc3QoZSk/IiYiOiI/Iikray5kYXRhLGRlbGV0ZSBrLmRhdGEpLGsuY2FjaGU9PT0hMSYmKGsudXJsPUJjLnRlc3QoZSk/ZS5yZXBsYWNlKEJjLCIkMV89Iit2YysrKTplKyh3Yy50ZXN0KGUpPyImIjoiPyIpKyJfPSIrdmMrKykpLGsuaWZNb2RpZmllZCYmKG0ubGFzdE1vZGlmaWVkW2VdJiZ2LnNldFJlcXVlc3RIZWFkZXIoIklmLU1vZGlmaWVkLVNpbmNlIixtLmxhc3RNb2RpZmllZFtlXSksbS5ldGFnW2VdJiZ2LnNldFJlcXVlc3RIZWFkZXIoIklmLU5vbmUtTWF0Y2giLG0uZXRhZ1tlXSkpLChrLmRhdGEmJmsuaGFzQ29udGVudCYmay5jb250ZW50VHlwZSE9PSExfHxiLmNvbnRlbnRUeXBlKSYmdi5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLGsuY29udGVudFR5cGUpLHYuc2V0UmVxdWVzdEhlYWRlcigiQWNjZXB0IixrLmRhdGFUeXBlc1swXSYmay5hY2NlcHRzW2suZGF0YVR5cGVzWzBdXT9rLmFjY2VwdHNbay5kYXRhVHlwZXNbMF1dKygiKiIhPT1rLmRhdGFUeXBlc1swXT8iLCAiK0pjKyI7IHE9MC4wMSI6IiIpOmsuYWNjZXB0c1siKiJdKTtmb3IoZCBpbiBrLmhlYWRlcnMpdi5zZXRSZXF1ZXN0SGVhZGVyKGQsay5oZWFkZXJzW2RdKTtpZihrLmJlZm9yZVNlbmQmJihrLmJlZm9yZVNlbmQuY2FsbChsLHYsayk9PT0hMXx8Mj09PXQpKXJldHVybiB2LmFib3J0KCk7dT0iYWJvcnQiO2ZvcihkIGlue3N1Y2Nlc3M6MSxlcnJvcjoxLGNvbXBsZXRlOjF9KXZbZF0oa1tkXSk7aWYoaT1NYyhJYyxrLGIsdikpe3YucmVhZHlTdGF0ZT0xLGgmJm4udHJpZ2dlcigiYWpheFNlbmQiLFt2LGtdKSxrLmFzeW5jJiZrLnRpbWVvdXQ+MCYmKGc9c2V0VGltZW91dChmdW5jdGlvbigpe3YuYWJvcnQoInRpbWVvdXQiKX0say50aW1lb3V0KSk7dHJ5e3Q9MSxpLnNlbmQocix4KX1jYXRjaCh3KXtpZighKDI+dCkpdGhyb3cgdzt4KC0xLHcpfX1lbHNlIHgoLTEsIk5vIFRyYW5zcG9ydCIpO2Z1bmN0aW9uIHgoYSxiLGMsZCl7dmFyIGoscixzLHUsdyx4PWI7MiE9PXQmJih0PTIsZyYmY2xlYXJUaW1lb3V0KGcpLGk9dm9pZCAwLGY9ZHx8IiIsdi5yZWFkeVN0YXRlPWE+MD80OjAsaj1hPj0yMDAmJjMwMD5hfHwzMDQ9PT1hLGMmJih1PU9jKGssdixjKSksdT1QYyhrLHUsdixqKSxqPyhrLmlmTW9kaWZpZWQmJih3PXYuZ2V0UmVzcG9uc2VIZWFkZXIoIkxhc3QtTW9kaWZpZWQiKSx3JiYobS5sYXN0TW9kaWZpZWRbZV09dyksdz12LmdldFJlc3BvbnNlSGVhZGVyKCJldGFnIiksdyYmKG0uZXRhZ1tlXT13KSksMjA0PT09YXx8IkhFQUQiPT09ay50eXBlP3g9Im5vY29udGVudCI6MzA0PT09YT94PSJub3Rtb2RpZmllZCI6KHg9dS5zdGF0ZSxyPXUuZGF0YSxzPXUuZXJyb3Isaj0hcykpOihzPXgsKGF8fCF4KSYmKHg9ImVycm9yIiwwPmEmJihhPTApKSksdi5zdGF0dXM9YSx2LnN0YXR1c1RleHQ9KGJ8fHgpKyIiLGo/by5yZXNvbHZlV2l0aChsLFtyLHgsdl0pOm8ucmVqZWN0V2l0aChsLFt2LHgsc10pLHYuc3RhdHVzQ29kZShxKSxxPXZvaWQgMCxoJiZuLnRyaWdnZXIoaj8iYWpheFN1Y2Nlc3MiOiJhamF4RXJyb3IiLFt2LGssaj9yOnNdKSxwLmZpcmVXaXRoKGwsW3YseF0pLGgmJihuLnRyaWdnZXIoImFqYXhDb21wbGV0ZSIsW3Ysa10pLC0tbS5hY3RpdmV8fG0uZXZlbnQudHJpZ2dlcigiYWpheFN0b3AiKSkpfXJldHVybiB2fSxnZXRKU09OOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gbS5nZXQoYSxiLGMsImpzb24iKX0sZ2V0U2NyaXB0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIG0uZ2V0KGEsdm9pZCAwLGIsInNjcmlwdCIpfX0pLG0uZWFjaChbImdldCIsInBvc3QiXSxmdW5jdGlvbihhLGIpe21bYl09ZnVuY3Rpb24oYSxjLGQsZSl7cmV0dXJuIG0uaXNGdW5jdGlvbihjKSYmKGU9ZXx8ZCxkPWMsYz12b2lkIDApLG0uYWpheCh7dXJsOmEsdHlwZTpiLGRhdGFUeXBlOmUsZGF0YTpjLHN1Y2Nlc3M6ZH0pfX0pLG0uZWFjaChbImFqYXhTdGFydCIsImFqYXhTdG9wIiwiYWpheENvbXBsZXRlIiwiYWpheEVycm9yIiwiYWpheFN1Y2Nlc3MiLCJhamF4U2VuZCJdLGZ1bmN0aW9uKGEsYil7bS5mbltiXT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5vbihiLGEpfX0pLG0uX2V2YWxVcmw9ZnVuY3Rpb24oYSl7cmV0dXJuIG0uYWpheCh7dXJsOmEsdHlwZToiR0VUIixkYXRhVHlwZToic2NyaXB0Iixhc3luYzohMSxnbG9iYWw6ITEsInRocm93cyI6ITB9KX0sbS5mbi5leHRlbmQoe3dyYXBBbGw6ZnVuY3Rpb24oYSl7aWYobS5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYil7bSh0aGlzKS53cmFwQWxsKGEuY2FsbCh0aGlzLGIpKX0pO2lmKHRoaXNbMF0pe3ZhciBiPW0oYSx0aGlzWzBdLm93bmVyRG9jdW1lbnQpLmVxKDApLmNsb25lKCEwKTt0aGlzWzBdLnBhcmVudE5vZGUmJmIuaW5zZXJ0QmVmb3JlKHRoaXNbMF0pLGIubWFwKGZ1bmN0aW9uKCl7dmFyIGE9dGhpczt3aGlsZShhLmZpcnN0Q2hpbGQmJjE9PT1hLmZpcnN0Q2hpbGQubm9kZVR5cGUpYT1hLmZpcnN0Q2hpbGQ7cmV0dXJuIGF9KS5hcHBlbmQodGhpcyl9cmV0dXJuIHRoaXN9LHdyYXBJbm5lcjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKG0uaXNGdW5jdGlvbihhKT9mdW5jdGlvbihiKXttKHRoaXMpLndyYXBJbm5lcihhLmNhbGwodGhpcyxiKSl9OmZ1bmN0aW9uKCl7dmFyIGI9bSh0aGlzKSxjPWIuY29udGVudHMoKTtjLmxlbmd0aD9jLndyYXBBbGwoYSk6Yi5hcHBlbmQoYSl9KX0sd3JhcDpmdW5jdGlvbihhKXt2YXIgYj1tLmlzRnVuY3Rpb24oYSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihjKXttKHRoaXMpLndyYXBBbGwoYj9hLmNhbGwodGhpcyxjKTphKX0pfSx1bndyYXA6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXJlbnQoKS5lYWNoKGZ1bmN0aW9uKCl7bS5ub2RlTmFtZSh0aGlzLCJib2R5Iil8fG0odGhpcykucmVwbGFjZVdpdGgodGhpcy5jaGlsZE5vZGVzKX0pLmVuZCgpfX0pLG0uZXhwci5maWx0ZXJzLmhpZGRlbj1mdW5jdGlvbihhKXtyZXR1cm4gYS5vZmZzZXRXaWR0aDw9MCYmYS5vZmZzZXRIZWlnaHQ8PTB8fCFrLnJlbGlhYmxlSGlkZGVuT2Zmc2V0cygpJiYibm9uZSI9PT0oYS5zdHlsZSYmYS5zdHlsZS5kaXNwbGF5fHxtLmNzcyhhLCJkaXNwbGF5IikpfSxtLmV4cHIuZmlsdGVycy52aXNpYmxlPWZ1bmN0aW9uKGEpe3JldHVybiFtLmV4cHIuZmlsdGVycy5oaWRkZW4oYSl9O3ZhciBRYz0vJTIwL2csUmM9L1xbXF0kLyxTYz0vXHI/XG4vZyxUYz0vXig/OnN1Ym1pdHxidXR0b258aW1hZ2V8cmVzZXR8ZmlsZSkkL2ksVWM9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8a2V5Z2VuKS9pO2Z1bmN0aW9uIFZjKGEsYixjLGQpe3ZhciBlO2lmKG0uaXNBcnJheShiKSltLmVhY2goYixmdW5jdGlvbihiLGUpe2N8fFJjLnRlc3QoYSk/ZChhLGUpOlZjKGErIlsiKygib2JqZWN0Ij09dHlwZW9mIGU/YjoiIikrIl0iLGUsYyxkKX0pO2Vsc2UgaWYoY3x8Im9iamVjdCIhPT1tLnR5cGUoYikpZChhLGIpO2Vsc2UgZm9yKGUgaW4gYilWYyhhKyJbIitlKyJdIixiW2VdLGMsZCl9bS5wYXJhbT1mdW5jdGlvbihhLGIpe3ZhciBjLGQ9W10sZT1mdW5jdGlvbihhLGIpe2I9bS5pc0Z1bmN0aW9uKGIpP2IoKTpudWxsPT1iPyIiOmIsZFtkLmxlbmd0aF09ZW5jb2RlVVJJQ29tcG9uZW50KGEpKyI9IitlbmNvZGVVUklDb21wb25lbnQoYil9O2lmKHZvaWQgMD09PWImJihiPW0uYWpheFNldHRpbmdzJiZtLmFqYXhTZXR0aW5ncy50cmFkaXRpb25hbCksbS5pc0FycmF5KGEpfHxhLmpxdWVyeSYmIW0uaXNQbGFpbk9iamVjdChhKSltLmVhY2goYSxmdW5jdGlvbigpe2UodGhpcy5uYW1lLHRoaXMudmFsdWUpfSk7ZWxzZSBmb3IoYyBpbiBhKVZjKGMsYVtjXSxiLGUpO3JldHVybiBkLmpvaW4oIiYiKS5yZXBsYWNlKFFjLCIrIil9LG0uZm4uZXh0ZW5kKHtzZXJpYWxpemU6ZnVuY3Rpb24oKXtyZXR1cm4gbS5wYXJhbSh0aGlzLnNlcmlhbGl6ZUFycmF5KCkpfSxzZXJpYWxpemVBcnJheTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe3ZhciBhPW0ucHJvcCh0aGlzLCJlbGVtZW50cyIpO3JldHVybiBhP20ubWFrZUFycmF5KGEpOnRoaXN9KS5maWx0ZXIoZnVuY3Rpb24oKXt2YXIgYT10aGlzLnR5cGU7cmV0dXJuIHRoaXMubmFtZSYmIW0odGhpcykuaXMoIjpkaXNhYmxlZCIpJiZVYy50ZXN0KHRoaXMubm9kZU5hbWUpJiYhVGMudGVzdChhKSYmKHRoaXMuY2hlY2tlZHx8IVcudGVzdChhKSl9KS5tYXAoZnVuY3Rpb24oYSxiKXt2YXIgYz1tKHRoaXMpLnZhbCgpO3JldHVybiBudWxsPT1jP251bGw6bS5pc0FycmF5KGMpP20ubWFwKGMsZnVuY3Rpb24oYSl7cmV0dXJue25hbWU6Yi5uYW1lLHZhbHVlOmEucmVwbGFjZShTYywiXHJcbiIpfX0pOntuYW1lOmIubmFtZSx2YWx1ZTpjLnJlcGxhY2UoU2MsIlxyXG4iKX19KS5nZXQoKX19KSxtLmFqYXhTZXR0aW5ncy54aHI9dm9pZCAwIT09YS5BY3RpdmVYT2JqZWN0P2Z1bmN0aW9uKCl7cmV0dXJuIXRoaXMuaXNMb2NhbCYmL14oZ2V0fHBvc3R8aGVhZHxwdXR8ZGVsZXRlfG9wdGlvbnMpJC9pLnRlc3QodGhpcy50eXBlKSYmWmMoKXx8JGMoKX06WmM7dmFyIFdjPTAsWGM9e30sWWM9bS5hamF4U2V0dGluZ3MueGhyKCk7YS5BY3RpdmVYT2JqZWN0JiZtKGEpLm9uKCJ1bmxvYWQiLGZ1bmN0aW9uKCl7Zm9yKHZhciBhIGluIFhjKVhjW2FdKHZvaWQgMCwhMCl9KSxrLmNvcnM9ISFZYyYmIndpdGhDcmVkZW50aWFscyJpbiBZYyxZYz1rLmFqYXg9ISFZYyxZYyYmbS5hamF4VHJhbnNwb3J0KGZ1bmN0aW9uKGEpe2lmKCFhLmNyb3NzRG9tYWlufHxrLmNvcnMpe3ZhciBiO3JldHVybntzZW5kOmZ1bmN0aW9uKGMsZCl7dmFyIGUsZj1hLnhocigpLGc9KytXYztpZihmLm9wZW4oYS50eXBlLGEudXJsLGEuYXN5bmMsYS51c2VybmFtZSxhLnBhc3N3b3JkKSxhLnhockZpZWxkcylmb3IoZSBpbiBhLnhockZpZWxkcylmW2VdPWEueGhyRmllbGRzW2VdO2EubWltZVR5cGUmJmYub3ZlcnJpZGVNaW1lVHlwZSYmZi5vdmVycmlkZU1pbWVUeXBlKGEubWltZVR5cGUpLGEuY3Jvc3NEb21haW58fGNbIlgtUmVxdWVzdGVkLVdpdGgiXXx8KGNbIlgtUmVxdWVzdGVkLVdpdGgiXT0iWE1MSHR0cFJlcXVlc3QiKTtmb3IoZSBpbiBjKXZvaWQgMCE9PWNbZV0mJmYuc2V0UmVxdWVzdEhlYWRlcihlLGNbZV0rIiIpO2Yuc2VuZChhLmhhc0NvbnRlbnQmJmEuZGF0YXx8bnVsbCksYj1mdW5jdGlvbihjLGUpe3ZhciBoLGksajtpZihiJiYoZXx8ND09PWYucmVhZHlTdGF0ZSkpaWYoZGVsZXRlIFhjW2ddLGI9dm9pZCAwLGYub25yZWFkeXN0YXRlY2hhbmdlPW0ubm9vcCxlKTQhPT1mLnJlYWR5U3RhdGUmJmYuYWJvcnQoKTtlbHNle2o9e30saD1mLnN0YXR1cywic3RyaW5nIj09dHlwZW9mIGYucmVzcG9uc2VUZXh0JiYoai50ZXh0PWYucmVzcG9uc2VUZXh0KTt0cnl7aT1mLnN0YXR1c1RleHR9Y2F0Y2goayl7aT0iIn1ofHwhYS5pc0xvY2FsfHxhLmNyb3NzRG9tYWluPzEyMjM9PT1oJiYoaD0yMDQpOmg9ai50ZXh0PzIwMDo0MDR9aiYmZChoLGksaixmLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKX0sYS5hc3luYz80PT09Zi5yZWFkeVN0YXRlP3NldFRpbWVvdXQoYik6Zi5vbnJlYWR5c3RhdGVjaGFuZ2U9WGNbZ109YjpiKCl9LGFib3J0OmZ1bmN0aW9uKCl7YiYmYih2b2lkIDAsITApfX19fSk7ZnVuY3Rpb24gWmMoKXt0cnl7cmV0dXJuIG5ldyBhLlhNTEh0dHBSZXF1ZXN0fWNhdGNoKGIpe319ZnVuY3Rpb24gJGMoKXt0cnl7cmV0dXJuIG5ldyBhLkFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxIVFRQIil9Y2F0Y2goYil7fX1tLmFqYXhTZXR1cCh7YWNjZXB0czp7c2NyaXB0OiJ0ZXh0L2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2VjbWFzY3JpcHQsIGFwcGxpY2F0aW9uL3gtZWNtYXNjcmlwdCJ9LGNvbnRlbnRzOntzY3JpcHQ6Lyg/OmphdmF8ZWNtYSlzY3JpcHQvfSxjb252ZXJ0ZXJzOnsidGV4dCBzY3JpcHQiOmZ1bmN0aW9uKGEpe3JldHVybiBtLmdsb2JhbEV2YWwoYSksYX19fSksbS5hamF4UHJlZmlsdGVyKCJzY3JpcHQiLGZ1bmN0aW9uKGEpe3ZvaWQgMD09PWEuY2FjaGUmJihhLmNhY2hlPSExKSxhLmNyb3NzRG9tYWluJiYoYS50eXBlPSJHRVQiLGEuZ2xvYmFsPSExKX0pLG0uYWpheFRyYW5zcG9ydCgic2NyaXB0IixmdW5jdGlvbihhKXtpZihhLmNyb3NzRG9tYWluKXt2YXIgYixjPXkuaGVhZHx8bSgiaGVhZCIpWzBdfHx5LmRvY3VtZW50RWxlbWVudDtyZXR1cm57c2VuZDpmdW5jdGlvbihkLGUpe2I9eS5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSxiLmFzeW5jPSEwLGEuc2NyaXB0Q2hhcnNldCYmKGIuY2hhcnNldD1hLnNjcmlwdENoYXJzZXQpLGIuc3JjPWEudXJsLGIub25sb2FkPWIub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKGEsYyl7KGN8fCFiLnJlYWR5U3RhdGV8fC9sb2FkZWR8Y29tcGxldGUvLnRlc3QoYi5yZWFkeVN0YXRlKSkmJihiLm9ubG9hZD1iLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLGIucGFyZW50Tm9kZSYmYi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGIpLGI9bnVsbCxjfHxlKDIwMCwic3VjY2VzcyIpKX0sYy5pbnNlcnRCZWZvcmUoYixjLmZpcnN0Q2hpbGQpfSxhYm9ydDpmdW5jdGlvbigpe2ImJmIub25sb2FkKHZvaWQgMCwhMCl9fX19KTt2YXIgX2M9W10sYWQ9Lyg9KVw/KD89JnwkKXxcP1w/LzttLmFqYXhTZXR1cCh7anNvbnA6ImNhbGxiYWNrIixqc29ucENhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIGE9X2MucG9wKCl8fG0uZXhwYW5kbysiXyIrdmMrKztyZXR1cm4gdGhpc1thXT0hMCxhfX0pLG0uYWpheFByZWZpbHRlcigianNvbiBqc29ucCIsZnVuY3Rpb24oYixjLGQpe3ZhciBlLGYsZyxoPWIuanNvbnAhPT0hMSYmKGFkLnRlc3QoYi51cmwpPyJ1cmwiOiJzdHJpbmciPT10eXBlb2YgYi5kYXRhJiYhKGIuY29udGVudFR5cGV8fCIiKS5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKSYmYWQudGVzdChiLmRhdGEpJiYiZGF0YSIpO3JldHVybiBofHwianNvbnAiPT09Yi5kYXRhVHlwZXNbMF0/KGU9Yi5qc29ucENhbGxiYWNrPW0uaXNGdW5jdGlvbihiLmpzb25wQ2FsbGJhY2spP2IuanNvbnBDYWxsYmFjaygpOmIuanNvbnBDYWxsYmFjayxoP2JbaF09YltoXS5yZXBsYWNlKGFkLCIkMSIrZSk6Yi5qc29ucCE9PSExJiYoYi51cmwrPSh3Yy50ZXN0KGIudXJsKT8iJiI6Ij8iKStiLmpzb25wKyI9IitlKSxiLmNvbnZlcnRlcnNbInNjcmlwdCBqc29uIl09ZnVuY3Rpb24oKXtyZXR1cm4gZ3x8bS5lcnJvcihlKyIgd2FzIG5vdCBjYWxsZWQiKSxnWzBdfSxiLmRhdGFUeXBlc1swXT0ianNvbiIsZj1hW2VdLGFbZV09ZnVuY3Rpb24oKXtnPWFyZ3VtZW50c30sZC5hbHdheXMoZnVuY3Rpb24oKXthW2VdPWYsYltlXSYmKGIuanNvbnBDYWxsYmFjaz1jLmpzb25wQ2FsbGJhY2ssX2MucHVzaChlKSksZyYmbS5pc0Z1bmN0aW9uKGYpJiZmKGdbMF0pLGc9Zj12b2lkIDB9KSwic2NyaXB0Iik6dm9pZCAwfSksbS5wYXJzZUhUTUw9ZnVuY3Rpb24oYSxiLGMpe2lmKCFhfHwic3RyaW5nIiE9dHlwZW9mIGEpcmV0dXJuIG51bGw7ImJvb2xlYW4iPT10eXBlb2YgYiYmKGM9YixiPSExKSxiPWJ8fHk7dmFyIGQ9dS5leGVjKGEpLGU9IWMmJltdO3JldHVybiBkP1tiLmNyZWF0ZUVsZW1lbnQoZFsxXSldOihkPW0uYnVpbGRGcmFnbWVudChbYV0sYixlKSxlJiZlLmxlbmd0aCYmbShlKS5yZW1vdmUoKSxtLm1lcmdlKFtdLGQuY2hpbGROb2RlcykpfTt2YXIgYmQ9bS5mbi5sb2FkO20uZm4ubG9hZD1mdW5jdGlvbihhLGIsYyl7aWYoInN0cmluZyIhPXR5cGVvZiBhJiZiZClyZXR1cm4gYmQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBkLGUsZixnPXRoaXMsaD1hLmluZGV4T2YoIiAiKTtyZXR1cm4gaD49MCYmKGQ9bS50cmltKGEuc2xpY2UoaCxhLmxlbmd0aCkpLGE9YS5zbGljZSgwLGgpKSxtLmlzRnVuY3Rpb24oYik/KGM9YixiPXZvaWQgMCk6YiYmIm9iamVjdCI9PXR5cGVvZiBiJiYoZj0iUE9TVCIpLGcubGVuZ3RoPjAmJm0uYWpheCh7dXJsOmEsdHlwZTpmLGRhdGFUeXBlOiJodG1sIixkYXRhOmJ9KS5kb25lKGZ1bmN0aW9uKGEpe2U9YXJndW1lbnRzLGcuaHRtbChkP20oIjxkaXY+IikuYXBwZW5kKG0ucGFyc2VIVE1MKGEpKS5maW5kKGQpOmEpfSkuY29tcGxldGUoYyYmZnVuY3Rpb24oYSxiKXtnLmVhY2goYyxlfHxbYS5yZXNwb25zZVRleHQsYixhXSl9KSx0aGlzfSxtLmV4cHIuZmlsdGVycy5hbmltYXRlZD1mdW5jdGlvbihhKXtyZXR1cm4gbS5ncmVwKG0udGltZXJzLGZ1bmN0aW9uKGIpe3JldHVybiBhPT09Yi5lbGVtfSkubGVuZ3RofTt2YXIgY2Q9YS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7ZnVuY3Rpb24gZGQoYSl7cmV0dXJuIG0uaXNXaW5kb3coYSk/YTo5PT09YS5ub2RlVHlwZT9hLmRlZmF1bHRWaWV3fHxhLnBhcmVudFdpbmRvdzohMX1tLm9mZnNldD17c2V0T2Zmc2V0OmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrPW0uY3NzKGEsInBvc2l0aW9uIiksbD1tKGEpLG49e307InN0YXRpYyI9PT1rJiYoYS5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiKSxoPWwub2Zmc2V0KCksZj1tLmNzcyhhLCJ0b3AiKSxpPW0uY3NzKGEsImxlZnQiKSxqPSgiYWJzb2x1dGUiPT09a3x8ImZpeGVkIj09PWspJiZtLmluQXJyYXkoImF1dG8iLFtmLGldKT4tMSxqPyhkPWwucG9zaXRpb24oKSxnPWQudG9wLGU9ZC5sZWZ0KTooZz1wYXJzZUZsb2F0KGYpfHwwLGU9cGFyc2VGbG9hdChpKXx8MCksbS5pc0Z1bmN0aW9uKGIpJiYoYj1iLmNhbGwoYSxjLGgpKSxudWxsIT1iLnRvcCYmKG4udG9wPWIudG9wLWgudG9wK2cpLG51bGwhPWIubGVmdCYmKG4ubGVmdD1iLmxlZnQtaC5sZWZ0K2UpLCJ1c2luZyJpbiBiP2IudXNpbmcuY2FsbChhLG4pOmwuY3NzKG4pfX0sbS5mbi5leHRlbmQoe29mZnNldDpmdW5jdGlvbihhKXtpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiB2b2lkIDA9PT1hP3RoaXM6dGhpcy5lYWNoKGZ1bmN0aW9uKGIpe20ub2Zmc2V0LnNldE9mZnNldCh0aGlzLGEsYil9KTt2YXIgYixjLGQ9e3RvcDowLGxlZnQ6MH0sZT10aGlzWzBdLGY9ZSYmZS5vd25lckRvY3VtZW50O2lmKGYpcmV0dXJuIGI9Zi5kb2N1bWVudEVsZW1lbnQsbS5jb250YWlucyhiLGUpPyh0eXBlb2YgZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QhPT1LJiYoZD1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKSxjPWRkKGYpLHt0b3A6ZC50b3ArKGMucGFnZVlPZmZzZXR8fGIuc2Nyb2xsVG9wKS0oYi5jbGllbnRUb3B8fDApLGxlZnQ6ZC5sZWZ0KyhjLnBhZ2VYT2Zmc2V0fHxiLnNjcm9sbExlZnQpLShiLmNsaWVudExlZnR8fDApfSk6ZH0scG9zaXRpb246ZnVuY3Rpb24oKXtpZih0aGlzWzBdKXt2YXIgYSxiLGM9e3RvcDowLGxlZnQ6MH0sZD10aGlzWzBdO3JldHVybiJmaXhlZCI9PT1tLmNzcyhkLCJwb3NpdGlvbiIpP2I9ZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTooYT10aGlzLm9mZnNldFBhcmVudCgpLGI9dGhpcy5vZmZzZXQoKSxtLm5vZGVOYW1lKGFbMF0sImh0bWwiKXx8KGM9YS5vZmZzZXQoKSksYy50b3ArPW0uY3NzKGFbMF0sImJvcmRlclRvcFdpZHRoIiwhMCksYy5sZWZ0Kz1tLmNzcyhhWzBdLCJib3JkZXJMZWZ0V2lkdGgiLCEwKSkse3RvcDpiLnRvcC1jLnRvcC1tLmNzcyhkLCJtYXJnaW5Ub3AiLCEwKSxsZWZ0OmIubGVmdC1jLmxlZnQtbS5jc3MoZCwibWFyZ2luTGVmdCIsITApfX19LG9mZnNldFBhcmVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe3ZhciBhPXRoaXMub2Zmc2V0UGFyZW50fHxjZDt3aGlsZShhJiYhbS5ub2RlTmFtZShhLCJodG1sIikmJiJzdGF0aWMiPT09bS5jc3MoYSwicG9zaXRpb24iKSlhPWEub2Zmc2V0UGFyZW50O3JldHVybiBhfHxjZH0pfX0pLG0uZWFjaCh7c2Nyb2xsTGVmdDoicGFnZVhPZmZzZXQiLHNjcm9sbFRvcDoicGFnZVlPZmZzZXQifSxmdW5jdGlvbihhLGIpe3ZhciBjPS9ZLy50ZXN0KGIpO20uZm5bYV09ZnVuY3Rpb24oZCl7cmV0dXJuIFYodGhpcyxmdW5jdGlvbihhLGQsZSl7dmFyIGY9ZGQoYSk7cmV0dXJuIHZvaWQgMD09PWU/Zj9iIGluIGY/ZltiXTpmLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFtkXTphW2RdOnZvaWQoZj9mLnNjcm9sbFRvKGM/bShmKS5zY3JvbGxMZWZ0KCk6ZSxjP2U6bShmKS5zY3JvbGxUb3AoKSk6YVtkXT1lKX0sYSxkLGFyZ3VtZW50cy5sZW5ndGgsbnVsbCl9fSksbS5lYWNoKFsidG9wIiwibGVmdCJdLGZ1bmN0aW9uKGEsYil7bS5jc3NIb29rc1tiXT1MYihrLnBpeGVsUG9zaXRpb24sZnVuY3Rpb24oYSxjKXtyZXR1cm4gYz8oYz1KYihhLGIpLEhiLnRlc3QoYyk/bShhKS5wb3NpdGlvbigpW2JdKyJweCI6Yyk6dm9pZCAwfSl9KSxtLmVhY2goe0hlaWdodDoiaGVpZ2h0IixXaWR0aDoid2lkdGgifSxmdW5jdGlvbihhLGIpe20uZWFjaCh7cGFkZGluZzoiaW5uZXIiK2EsY29udGVudDpiLCIiOiJvdXRlciIrYX0sZnVuY3Rpb24oYyxkKXttLmZuW2RdPWZ1bmN0aW9uKGQsZSl7dmFyIGY9YXJndW1lbnRzLmxlbmd0aCYmKGN8fCJib29sZWFuIiE9dHlwZW9mIGQpLGc9Y3x8KGQ9PT0hMHx8ZT09PSEwPyJtYXJnaW4iOiJib3JkZXIiKTtyZXR1cm4gVih0aGlzLGZ1bmN0aW9uKGIsYyxkKXt2YXIgZTtyZXR1cm4gbS5pc1dpbmRvdyhiKT9iLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFsiY2xpZW50IithXTo5PT09Yi5ub2RlVHlwZT8oZT1iLmRvY3VtZW50RWxlbWVudCxNYXRoLm1heChiLmJvZHlbInNjcm9sbCIrYV0sZVsic2Nyb2xsIithXSxiLmJvZHlbIm9mZnNldCIrYV0sZVsib2Zmc2V0IithXSxlWyJjbGllbnQiK2FdKSk6dm9pZCAwPT09ZD9tLmNzcyhiLGMsZyk6bS5zdHlsZShiLGMsZCxnKX0sYixmP2Q6dm9pZCAwLGYsbnVsbCl9fSl9KSxtLmZuLnNpemU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sZW5ndGh9LG0uZm4uYW5kU2VsZj1tLmZuLmFkZEJhY2ssImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZCYmZGVmaW5lKCJqcXVlcnkiLFtdLGZ1bmN0aW9uKCl7cmV0dXJuIG19KTt2YXIgZWQ9YS5qUXVlcnksZmQ9YS4kO3JldHVybiBtLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oYil7cmV0dXJuIGEuJD09PW0mJihhLiQ9ZmQpLGImJmEualF1ZXJ5PT09bSYmKGEualF1ZXJ5PWVkKSxtfSx0eXBlb2YgYj09PUsmJihhLmpRdWVyeT1hLiQ9bSksbX0pOwo="></script>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<script src="data:application/x-javascript;base64,LyohCiAqIEJvb3RzdHJhcCB2My4zLjEgKGh0dHA6Ly9nZXRib290c3RyYXAuY29tKQogKiBDb3B5cmlnaHQgMjAxMS0yMDE0IFR3aXR0ZXIsIEluYy4KICogTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvYmxvYi9tYXN0ZXIvTElDRU5TRSkKICovCmlmKCJ1bmRlZmluZWQiPT10eXBlb2YgalF1ZXJ5KXRocm93IG5ldyBFcnJvcigiQm9vdHN0cmFwJ3MgSmF2YVNjcmlwdCByZXF1aXJlcyBqUXVlcnkiKTsrZnVuY3Rpb24oYSl7dmFyIGI9YS5mbi5qcXVlcnkuc3BsaXQoIiAiKVswXS5zcGxpdCgiLiIpO2lmKGJbMF08MiYmYlsxXTw5fHwxPT1iWzBdJiY5PT1iWzFdJiZiWzJdPDEpdGhyb3cgbmV3IEVycm9yKCJCb290c3RyYXAncyBKYXZhU2NyaXB0IHJlcXVpcmVzIGpRdWVyeSB2ZXJzaW9uIDEuOS4xIG9yIGhpZ2hlciIpfShqUXVlcnkpLCtmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYigpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJvb3RzdHJhcCIpLGI9e1dlYmtpdFRyYW5zaXRpb246IndlYmtpdFRyYW5zaXRpb25FbmQiLE1velRyYW5zaXRpb246InRyYW5zaXRpb25lbmQiLE9UcmFuc2l0aW9uOiJvVHJhbnNpdGlvbkVuZCBvdHJhbnNpdGlvbmVuZCIsdHJhbnNpdGlvbjoidHJhbnNpdGlvbmVuZCJ9O2Zvcih2YXIgYyBpbiBiKWlmKHZvaWQgMCE9PWEuc3R5bGVbY10pcmV0dXJue2VuZDpiW2NdfTtyZXR1cm4hMX1hLmZuLmVtdWxhdGVUcmFuc2l0aW9uRW5kPWZ1bmN0aW9uKGIpe3ZhciBjPSExLGQ9dGhpczthKHRoaXMpLm9uZSgiYnNUcmFuc2l0aW9uRW5kIixmdW5jdGlvbigpe2M9ITB9KTt2YXIgZT1mdW5jdGlvbigpe2N8fGEoZCkudHJpZ2dlcihhLnN1cHBvcnQudHJhbnNpdGlvbi5lbmQpfTtyZXR1cm4gc2V0VGltZW91dChlLGIpLHRoaXN9LGEoZnVuY3Rpb24oKXthLnN1cHBvcnQudHJhbnNpdGlvbj1iKCksYS5zdXBwb3J0LnRyYW5zaXRpb24mJihhLmV2ZW50LnNwZWNpYWwuYnNUcmFuc2l0aW9uRW5kPXtiaW5kVHlwZTphLnN1cHBvcnQudHJhbnNpdGlvbi5lbmQsZGVsZWdhdGVUeXBlOmEuc3VwcG9ydC50cmFuc2l0aW9uLmVuZCxoYW5kbGU6ZnVuY3Rpb24oYil7cmV0dXJuIGEoYi50YXJnZXQpLmlzKHRoaXMpP2IuaGFuZGxlT2JqLmhhbmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpOnZvaWQgMH19KX0pfShqUXVlcnkpLCtmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYihiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGM9YSh0aGlzKSxlPWMuZGF0YSgiYnMuYWxlcnQiKTtlfHxjLmRhdGEoImJzLmFsZXJ0IixlPW5ldyBkKHRoaXMpKSwic3RyaW5nIj09dHlwZW9mIGImJmVbYl0uY2FsbChjKX0pfXZhciBjPSdbZGF0YS1kaXNtaXNzPSJhbGVydCJdJyxkPWZ1bmN0aW9uKGIpe2EoYikub24oImNsaWNrIixjLHRoaXMuY2xvc2UpfTtkLlZFUlNJT049IjMuMy4xIixkLlRSQU5TSVRJT05fRFVSQVRJT049MTUwLGQucHJvdG90eXBlLmNsb3NlPWZ1bmN0aW9uKGIpe2Z1bmN0aW9uIGMoKXtnLmRldGFjaCgpLnRyaWdnZXIoImNsb3NlZC5icy5hbGVydCIpLnJlbW92ZSgpfXZhciBlPWEodGhpcyksZj1lLmF0dHIoImRhdGEtdGFyZ2V0Iik7Znx8KGY9ZS5hdHRyKCJocmVmIiksZj1mJiZmLnJlcGxhY2UoLy4qKD89I1teXHNdKiQpLywiIikpO3ZhciBnPWEoZik7YiYmYi5wcmV2ZW50RGVmYXVsdCgpLGcubGVuZ3RofHwoZz1lLmNsb3Nlc3QoIi5hbGVydCIpKSxnLnRyaWdnZXIoYj1hLkV2ZW50KCJjbG9zZS5icy5hbGVydCIpKSxiLmlzRGVmYXVsdFByZXZlbnRlZCgpfHwoZy5yZW1vdmVDbGFzcygiaW4iKSxhLnN1cHBvcnQudHJhbnNpdGlvbiYmZy5oYXNDbGFzcygiZmFkZSIpP2cub25lKCJic1RyYW5zaXRpb25FbmQiLGMpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGQuVFJBTlNJVElPTl9EVVJBVElPTik6YygpKX07dmFyIGU9YS5mbi5hbGVydDthLmZuLmFsZXJ0PWIsYS5mbi5hbGVydC5Db25zdHJ1Y3Rvcj1kLGEuZm4uYWxlcnQubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLmFsZXJ0PWUsdGhpc30sYShkb2N1bWVudCkub24oImNsaWNrLmJzLmFsZXJ0LmRhdGEtYXBpIixjLGQucHJvdG90eXBlLmNsb3NlKX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGIoYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1kLmRhdGEoImJzLmJ1dHRvbiIpLGY9Im9iamVjdCI9PXR5cGVvZiBiJiZiO2V8fGQuZGF0YSgiYnMuYnV0dG9uIixlPW5ldyBjKHRoaXMsZikpLCJ0b2dnbGUiPT1iP2UudG9nZ2xlKCk6YiYmZS5zZXRTdGF0ZShiKX0pfXZhciBjPWZ1bmN0aW9uKGIsZCl7dGhpcy4kZWxlbWVudD1hKGIpLHRoaXMub3B0aW9ucz1hLmV4dGVuZCh7fSxjLkRFRkFVTFRTLGQpLHRoaXMuaXNMb2FkaW5nPSExfTtjLlZFUlNJT049IjMuMy4xIixjLkRFRkFVTFRTPXtsb2FkaW5nVGV4dDoibG9hZGluZy4uLiJ9LGMucHJvdG90eXBlLnNldFN0YXRlPWZ1bmN0aW9uKGIpe3ZhciBjPSJkaXNhYmxlZCIsZD10aGlzLiRlbGVtZW50LGU9ZC5pcygiaW5wdXQiKT8idmFsIjoiaHRtbCIsZj1kLmRhdGEoKTtiKz0iVGV4dCIsbnVsbD09Zi5yZXNldFRleHQmJmQuZGF0YSgicmVzZXRUZXh0IixkW2VdKCkpLHNldFRpbWVvdXQoYS5wcm94eShmdW5jdGlvbigpe2RbZV0obnVsbD09ZltiXT90aGlzLm9wdGlvbnNbYl06ZltiXSksImxvYWRpbmdUZXh0Ij09Yj8odGhpcy5pc0xvYWRpbmc9ITAsZC5hZGRDbGFzcyhjKS5hdHRyKGMsYykpOnRoaXMuaXNMb2FkaW5nJiYodGhpcy5pc0xvYWRpbmc9ITEsZC5yZW1vdmVDbGFzcyhjKS5yZW1vdmVBdHRyKGMpKX0sdGhpcyksMCl9LGMucHJvdG90eXBlLnRvZ2dsZT1mdW5jdGlvbigpe3ZhciBhPSEwLGI9dGhpcy4kZWxlbWVudC5jbG9zZXN0KCdbZGF0YS10b2dnbGU9ImJ1dHRvbnMiXScpO2lmKGIubGVuZ3RoKXt2YXIgYz10aGlzLiRlbGVtZW50LmZpbmQoImlucHV0Iik7InJhZGlvIj09Yy5wcm9wKCJ0eXBlIikmJihjLnByb3AoImNoZWNrZWQiKSYmdGhpcy4kZWxlbWVudC5oYXNDbGFzcygiYWN0aXZlIik/YT0hMTpiLmZpbmQoIi5hY3RpdmUiKS5yZW1vdmVDbGFzcygiYWN0aXZlIikpLGEmJmMucHJvcCgiY2hlY2tlZCIsIXRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoImFjdGl2ZSIpKS50cmlnZ2VyKCJjaGFuZ2UiKX1lbHNlIHRoaXMuJGVsZW1lbnQuYXR0cigiYXJpYS1wcmVzc2VkIiwhdGhpcy4kZWxlbWVudC5oYXNDbGFzcygiYWN0aXZlIikpO2EmJnRoaXMuJGVsZW1lbnQudG9nZ2xlQ2xhc3MoImFjdGl2ZSIpfTt2YXIgZD1hLmZuLmJ1dHRvbjthLmZuLmJ1dHRvbj1iLGEuZm4uYnV0dG9uLkNvbnN0cnVjdG9yPWMsYS5mbi5idXR0b24ubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLmJ1dHRvbj1kLHRoaXN9LGEoZG9jdW1lbnQpLm9uKCJjbGljay5icy5idXR0b24uZGF0YS1hcGkiLCdbZGF0YS10b2dnbGVePSJidXR0b24iXScsZnVuY3Rpb24oYyl7dmFyIGQ9YShjLnRhcmdldCk7ZC5oYXNDbGFzcygiYnRuIil8fChkPWQuY2xvc2VzdCgiLmJ0biIpKSxiLmNhbGwoZCwidG9nZ2xlIiksYy5wcmV2ZW50RGVmYXVsdCgpfSkub24oImZvY3VzLmJzLmJ1dHRvbi5kYXRhLWFwaSBibHVyLmJzLmJ1dHRvbi5kYXRhLWFwaSIsJ1tkYXRhLXRvZ2dsZV49ImJ1dHRvbiJdJyxmdW5jdGlvbihiKXthKGIudGFyZ2V0KS5jbG9zZXN0KCIuYnRuIikudG9nZ2xlQ2xhc3MoImZvY3VzIiwvXmZvY3VzKGluKT8kLy50ZXN0KGIudHlwZSkpfSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZD1hKHRoaXMpLGU9ZC5kYXRhKCJicy5jYXJvdXNlbCIpLGY9YS5leHRlbmQoe30sYy5ERUZBVUxUUyxkLmRhdGEoKSwib2JqZWN0Ij09dHlwZW9mIGImJmIpLGc9InN0cmluZyI9PXR5cGVvZiBiP2I6Zi5zbGlkZTtlfHxkLmRhdGEoImJzLmNhcm91c2VsIixlPW5ldyBjKHRoaXMsZikpLCJudW1iZXIiPT10eXBlb2YgYj9lLnRvKGIpOmc/ZVtnXSgpOmYuaW50ZXJ2YWwmJmUucGF1c2UoKS5jeWNsZSgpfSl9dmFyIGM9ZnVuY3Rpb24oYixjKXt0aGlzLiRlbGVtZW50PWEoYiksdGhpcy4kaW5kaWNhdG9ycz10aGlzLiRlbGVtZW50LmZpbmQoIi5jYXJvdXNlbC1pbmRpY2F0b3JzIiksdGhpcy5vcHRpb25zPWMsdGhpcy5wYXVzZWQ9dGhpcy5zbGlkaW5nPXRoaXMuaW50ZXJ2YWw9dGhpcy4kYWN0aXZlPXRoaXMuJGl0ZW1zPW51bGwsdGhpcy5vcHRpb25zLmtleWJvYXJkJiZ0aGlzLiRlbGVtZW50Lm9uKCJrZXlkb3duLmJzLmNhcm91c2VsIixhLnByb3h5KHRoaXMua2V5ZG93bix0aGlzKSksImhvdmVyIj09dGhpcy5vcHRpb25zLnBhdXNlJiYhKCJvbnRvdWNoc3RhcnQiaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSYmdGhpcy4kZWxlbWVudC5vbigibW91c2VlbnRlci5icy5jYXJvdXNlbCIsYS5wcm94eSh0aGlzLnBhdXNlLHRoaXMpKS5vbigibW91c2VsZWF2ZS5icy5jYXJvdXNlbCIsYS5wcm94eSh0aGlzLmN5Y2xlLHRoaXMpKX07Yy5WRVJTSU9OPSIzLjMuMSIsYy5UUkFOU0lUSU9OX0RVUkFUSU9OPTYwMCxjLkRFRkFVTFRTPXtpbnRlcnZhbDo1ZTMscGF1c2U6ImhvdmVyIix3cmFwOiEwLGtleWJvYXJkOiEwfSxjLnByb3RvdHlwZS5rZXlkb3duPWZ1bmN0aW9uKGEpe2lmKCEvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KGEudGFyZ2V0LnRhZ05hbWUpKXtzd2l0Y2goYS53aGljaCl7Y2FzZSAzNzp0aGlzLnByZXYoKTticmVhaztjYXNlIDM5OnRoaXMubmV4dCgpO2JyZWFrO2RlZmF1bHQ6cmV0dXJufWEucHJldmVudERlZmF1bHQoKX19LGMucHJvdG90eXBlLmN5Y2xlPWZ1bmN0aW9uKGIpe3JldHVybiBifHwodGhpcy5wYXVzZWQ9ITEpLHRoaXMuaW50ZXJ2YWwmJmNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbCksdGhpcy5vcHRpb25zLmludGVydmFsJiYhdGhpcy5wYXVzZWQmJih0aGlzLmludGVydmFsPXNldEludGVydmFsKGEucHJveHkodGhpcy5uZXh0LHRoaXMpLHRoaXMub3B0aW9ucy5pbnRlcnZhbCkpLHRoaXN9LGMucHJvdG90eXBlLmdldEl0ZW1JbmRleD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy4kaXRlbXM9YS5wYXJlbnQoKS5jaGlsZHJlbigiLml0ZW0iKSx0aGlzLiRpdGVtcy5pbmRleChhfHx0aGlzLiRhY3RpdmUpfSxjLnByb3RvdHlwZS5nZXRJdGVtRm9yRGlyZWN0aW9uPWZ1bmN0aW9uKGEsYil7dmFyIGM9InByZXYiPT1hPy0xOjEsZD10aGlzLmdldEl0ZW1JbmRleChiKSxlPShkK2MpJXRoaXMuJGl0ZW1zLmxlbmd0aDtyZXR1cm4gdGhpcy4kaXRlbXMuZXEoZSl9LGMucHJvdG90eXBlLnRvPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsYz10aGlzLmdldEl0ZW1JbmRleCh0aGlzLiRhY3RpdmU9dGhpcy4kZWxlbWVudC5maW5kKCIuaXRlbS5hY3RpdmUiKSk7cmV0dXJuIGE+dGhpcy4kaXRlbXMubGVuZ3RoLTF8fDA+YT92b2lkIDA6dGhpcy5zbGlkaW5nP3RoaXMuJGVsZW1lbnQub25lKCJzbGlkLmJzLmNhcm91c2VsIixmdW5jdGlvbigpe2IudG8oYSl9KTpjPT1hP3RoaXMucGF1c2UoKS5jeWNsZSgpOnRoaXMuc2xpZGUoYT5jPyJuZXh0IjoicHJldiIsdGhpcy4kaXRlbXMuZXEoYSkpfSxjLnByb3RvdHlwZS5wYXVzZT1mdW5jdGlvbihiKXtyZXR1cm4gYnx8KHRoaXMucGF1c2VkPSEwKSx0aGlzLiRlbGVtZW50LmZpbmQoIi5uZXh0LCAucHJldiIpLmxlbmd0aCYmYS5zdXBwb3J0LnRyYW5zaXRpb24mJih0aGlzLiRlbGVtZW50LnRyaWdnZXIoYS5zdXBwb3J0LnRyYW5zaXRpb24uZW5kKSx0aGlzLmN5Y2xlKCEwKSksdGhpcy5pbnRlcnZhbD1jbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWwpLHRoaXN9LGMucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zbGlkaW5nP3ZvaWQgMDp0aGlzLnNsaWRlKCJuZXh0Iil9LGMucHJvdG90eXBlLnByZXY9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zbGlkaW5nP3ZvaWQgMDp0aGlzLnNsaWRlKCJwcmV2Iil9LGMucHJvdG90eXBlLnNsaWRlPWZ1bmN0aW9uKGIsZCl7dmFyIGU9dGhpcy4kZWxlbWVudC5maW5kKCIuaXRlbS5hY3RpdmUiKSxmPWR8fHRoaXMuZ2V0SXRlbUZvckRpcmVjdGlvbihiLGUpLGc9dGhpcy5pbnRlcnZhbCxoPSJuZXh0Ij09Yj8ibGVmdCI6InJpZ2h0IixpPSJuZXh0Ij09Yj8iZmlyc3QiOiJsYXN0IixqPXRoaXM7aWYoIWYubGVuZ3RoKXtpZighdGhpcy5vcHRpb25zLndyYXApcmV0dXJuO2Y9dGhpcy4kZWxlbWVudC5maW5kKCIuaXRlbSIpW2ldKCl9aWYoZi5oYXNDbGFzcygiYWN0aXZlIikpcmV0dXJuIHRoaXMuc2xpZGluZz0hMTt2YXIgaz1mWzBdLGw9YS5FdmVudCgic2xpZGUuYnMuY2Fyb3VzZWwiLHtyZWxhdGVkVGFyZ2V0OmssZGlyZWN0aW9uOmh9KTtpZih0aGlzLiRlbGVtZW50LnRyaWdnZXIobCksIWwuaXNEZWZhdWx0UHJldmVudGVkKCkpe2lmKHRoaXMuc2xpZGluZz0hMCxnJiZ0aGlzLnBhdXNlKCksdGhpcy4kaW5kaWNhdG9ycy5sZW5ndGgpe3RoaXMuJGluZGljYXRvcnMuZmluZCgiLmFjdGl2ZSIpLnJlbW92ZUNsYXNzKCJhY3RpdmUiKTt2YXIgbT1hKHRoaXMuJGluZGljYXRvcnMuY2hpbGRyZW4oKVt0aGlzLmdldEl0ZW1JbmRleChmKV0pO20mJm0uYWRkQ2xhc3MoImFjdGl2ZSIpfXZhciBuPWEuRXZlbnQoInNsaWQuYnMuY2Fyb3VzZWwiLHtyZWxhdGVkVGFyZ2V0OmssZGlyZWN0aW9uOmh9KTtyZXR1cm4gYS5zdXBwb3J0LnRyYW5zaXRpb24mJnRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoInNsaWRlIik/KGYuYWRkQ2xhc3MoYiksZlswXS5vZmZzZXRXaWR0aCxlLmFkZENsYXNzKGgpLGYuYWRkQ2xhc3MoaCksZS5vbmUoImJzVHJhbnNpdGlvbkVuZCIsZnVuY3Rpb24oKXtmLnJlbW92ZUNsYXNzKFtiLGhdLmpvaW4oIiAiKSkuYWRkQ2xhc3MoImFjdGl2ZSIpLGUucmVtb3ZlQ2xhc3MoWyJhY3RpdmUiLGhdLmpvaW4oIiAiKSksai5zbGlkaW5nPSExLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtqLiRlbGVtZW50LnRyaWdnZXIobil9LDApfSkuZW11bGF0ZVRyYW5zaXRpb25FbmQoYy5UUkFOU0lUSU9OX0RVUkFUSU9OKSk6KGUucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpLGYuYWRkQ2xhc3MoImFjdGl2ZSIpLHRoaXMuc2xpZGluZz0hMSx0aGlzLiRlbGVtZW50LnRyaWdnZXIobikpLGcmJnRoaXMuY3ljbGUoKSx0aGlzfX07dmFyIGQ9YS5mbi5jYXJvdXNlbDthLmZuLmNhcm91c2VsPWIsYS5mbi5jYXJvdXNlbC5Db25zdHJ1Y3Rvcj1jLGEuZm4uY2Fyb3VzZWwubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLmNhcm91c2VsPWQsdGhpc307dmFyIGU9ZnVuY3Rpb24oYyl7dmFyIGQsZT1hKHRoaXMpLGY9YShlLmF0dHIoImRhdGEtdGFyZ2V0Iil8fChkPWUuYXR0cigiaHJlZiIpKSYmZC5yZXBsYWNlKC8uKig/PSNbXlxzXSskKS8sIiIpKTtpZihmLmhhc0NsYXNzKCJjYXJvdXNlbCIpKXt2YXIgZz1hLmV4dGVuZCh7fSxmLmRhdGEoKSxlLmRhdGEoKSksaD1lLmF0dHIoImRhdGEtc2xpZGUtdG8iKTtoJiYoZy5pbnRlcnZhbD0hMSksYi5jYWxsKGYsZyksaCYmZi5kYXRhKCJicy5jYXJvdXNlbCIpLnRvKGgpLGMucHJldmVudERlZmF1bHQoKX19O2EoZG9jdW1lbnQpLm9uKCJjbGljay5icy5jYXJvdXNlbC5kYXRhLWFwaSIsIltkYXRhLXNsaWRlXSIsZSkub24oImNsaWNrLmJzLmNhcm91c2VsLmRhdGEtYXBpIiwiW2RhdGEtc2xpZGUtdG9dIixlKSxhKHdpbmRvdykub24oImxvYWQiLGZ1bmN0aW9uKCl7YSgnW2RhdGEtcmlkZT0iY2Fyb3VzZWwiXScpLmVhY2goZnVuY3Rpb24oKXt2YXIgYz1hKHRoaXMpO2IuY2FsbChjLGMuZGF0YSgpKX0pfSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3ZhciBjLGQ9Yi5hdHRyKCJkYXRhLXRhcmdldCIpfHwoYz1iLmF0dHIoImhyZWYiKSkmJmMucmVwbGFjZSgvLiooPz0jW15cc10rJCkvLCIiKTtyZXR1cm4gYShkKX1mdW5jdGlvbiBjKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYz1hKHRoaXMpLGU9Yy5kYXRhKCJicy5jb2xsYXBzZSIpLGY9YS5leHRlbmQoe30sZC5ERUZBVUxUUyxjLmRhdGEoKSwib2JqZWN0Ij09dHlwZW9mIGImJmIpOyFlJiZmLnRvZ2dsZSYmInNob3ciPT1iJiYoZi50b2dnbGU9ITEpLGV8fGMuZGF0YSgiYnMuY29sbGFwc2UiLGU9bmV3IGQodGhpcyxmKSksInN0cmluZyI9PXR5cGVvZiBiJiZlW2JdKCl9KX12YXIgZD1mdW5jdGlvbihiLGMpe3RoaXMuJGVsZW1lbnQ9YShiKSx0aGlzLm9wdGlvbnM9YS5leHRlbmQoe30sZC5ERUZBVUxUUyxjKSx0aGlzLiR0cmlnZ2VyPWEodGhpcy5vcHRpb25zLnRyaWdnZXIpLmZpbHRlcignW2hyZWY9IiMnK2IuaWQrJyJdLCBbZGF0YS10YXJnZXQ9IiMnK2IuaWQrJyJdJyksdGhpcy50cmFuc2l0aW9uaW5nPW51bGwsdGhpcy5vcHRpb25zLnBhcmVudD90aGlzLiRwYXJlbnQ9dGhpcy5nZXRQYXJlbnQoKTp0aGlzLmFkZEFyaWFBbmRDb2xsYXBzZWRDbGFzcyh0aGlzLiRlbGVtZW50LHRoaXMuJHRyaWdnZXIpLHRoaXMub3B0aW9ucy50b2dnbGUmJnRoaXMudG9nZ2xlKCl9O2QuVkVSU0lPTj0iMy4zLjEiLGQuVFJBTlNJVElPTl9EVVJBVElPTj0zNTAsZC5ERUZBVUxUUz17dG9nZ2xlOiEwLHRyaWdnZXI6J1tkYXRhLXRvZ2dsZT0iY29sbGFwc2UiXSd9LGQucHJvdG90eXBlLmRpbWVuc2lvbj1mdW5jdGlvbigpe3ZhciBhPXRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoIndpZHRoIik7cmV0dXJuIGE/IndpZHRoIjoiaGVpZ2h0In0sZC5wcm90b3R5cGUuc2hvdz1mdW5jdGlvbigpe2lmKCF0aGlzLnRyYW5zaXRpb25pbmcmJiF0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJpbiIpKXt2YXIgYixlPXRoaXMuJHBhcmVudCYmdGhpcy4kcGFyZW50LmZpbmQoIj4gLnBhbmVsIikuY2hpbGRyZW4oIi5pbiwgLmNvbGxhcHNpbmciKTtpZighKGUmJmUubGVuZ3RoJiYoYj1lLmRhdGEoImJzLmNvbGxhcHNlIiksYiYmYi50cmFuc2l0aW9uaW5nKSkpe3ZhciBmPWEuRXZlbnQoInNob3cuYnMuY29sbGFwc2UiKTtpZih0aGlzLiRlbGVtZW50LnRyaWdnZXIoZiksIWYuaXNEZWZhdWx0UHJldmVudGVkKCkpe2UmJmUubGVuZ3RoJiYoYy5jYWxsKGUsImhpZGUiKSxifHxlLmRhdGEoImJzLmNvbGxhcHNlIixudWxsKSk7dmFyIGc9dGhpcy5kaW1lbnNpb24oKTt0aGlzLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJjb2xsYXBzZSIpLmFkZENsYXNzKCJjb2xsYXBzaW5nIilbZ10oMCkuYXR0cigiYXJpYS1leHBhbmRlZCIsITApLHRoaXMuJHRyaWdnZXIucmVtb3ZlQ2xhc3MoImNvbGxhcHNlZCIpLmF0dHIoImFyaWEtZXhwYW5kZWQiLCEwKSx0aGlzLnRyYW5zaXRpb25pbmc9MTt2YXIgaD1mdW5jdGlvbigpe3RoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoImNvbGxhcHNpbmciKS5hZGRDbGFzcygiY29sbGFwc2UgaW4iKVtnXSgiIiksdGhpcy50cmFuc2l0aW9uaW5nPTAsdGhpcy4kZWxlbWVudC50cmlnZ2VyKCJzaG93bi5icy5jb2xsYXBzZSIpfTtpZighYS5zdXBwb3J0LnRyYW5zaXRpb24pcmV0dXJuIGguY2FsbCh0aGlzKTt2YXIgaT1hLmNhbWVsQ2FzZShbInNjcm9sbCIsZ10uam9pbigiLSIpKTt0aGlzLiRlbGVtZW50Lm9uZSgiYnNUcmFuc2l0aW9uRW5kIixhLnByb3h5KGgsdGhpcykpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGQuVFJBTlNJVElPTl9EVVJBVElPTilbZ10odGhpcy4kZWxlbWVudFswXVtpXSl9fX19LGQucHJvdG90eXBlLmhpZGU9ZnVuY3Rpb24oKXtpZighdGhpcy50cmFuc2l0aW9uaW5nJiZ0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJpbiIpKXt2YXIgYj1hLkV2ZW50KCJoaWRlLmJzLmNvbGxhcHNlIik7aWYodGhpcy4kZWxlbWVudC50cmlnZ2VyKGIpLCFiLmlzRGVmYXVsdFByZXZlbnRlZCgpKXt2YXIgYz10aGlzLmRpbWVuc2lvbigpO3RoaXMuJGVsZW1lbnRbY10odGhpcy4kZWxlbWVudFtjXSgpKVswXS5vZmZzZXRIZWlnaHQsdGhpcy4kZWxlbWVudC5hZGRDbGFzcygiY29sbGFwc2luZyIpLnJlbW92ZUNsYXNzKCJjb2xsYXBzZSBpbiIpLmF0dHIoImFyaWEtZXhwYW5kZWQiLCExKSx0aGlzLiR0cmlnZ2VyLmFkZENsYXNzKCJjb2xsYXBzZWQiKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwhMSksdGhpcy50cmFuc2l0aW9uaW5nPTE7dmFyIGU9ZnVuY3Rpb24oKXt0aGlzLnRyYW5zaXRpb25pbmc9MCx0aGlzLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJjb2xsYXBzaW5nIikuYWRkQ2xhc3MoImNvbGxhcHNlIikudHJpZ2dlcigiaGlkZGVuLmJzLmNvbGxhcHNlIil9O3JldHVybiBhLnN1cHBvcnQudHJhbnNpdGlvbj92b2lkIHRoaXMuJGVsZW1lbnRbY10oMCkub25lKCJic1RyYW5zaXRpb25FbmQiLGEucHJveHkoZSx0aGlzKSkuZW11bGF0ZVRyYW5zaXRpb25FbmQoZC5UUkFOU0lUSU9OX0RVUkFUSU9OKTplLmNhbGwodGhpcyl9fX0sZC5wcm90b3R5cGUudG9nZ2xlPWZ1bmN0aW9uKCl7dGhpc1t0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJpbiIpPyJoaWRlIjoic2hvdyJdKCl9LGQucHJvdG90eXBlLmdldFBhcmVudD1mdW5jdGlvbigpe3JldHVybiBhKHRoaXMub3B0aW9ucy5wYXJlbnQpLmZpbmQoJ1tkYXRhLXRvZ2dsZT0iY29sbGFwc2UiXVtkYXRhLXBhcmVudD0iJyt0aGlzLm9wdGlvbnMucGFyZW50KyciXScpLmVhY2goYS5wcm94eShmdW5jdGlvbihjLGQpe3ZhciBlPWEoZCk7dGhpcy5hZGRBcmlhQW5kQ29sbGFwc2VkQ2xhc3MoYihlKSxlKX0sdGhpcykpLmVuZCgpfSxkLnByb3RvdHlwZS5hZGRBcmlhQW5kQ29sbGFwc2VkQ2xhc3M9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmhhc0NsYXNzKCJpbiIpO2EuYXR0cigiYXJpYS1leHBhbmRlZCIsYyksYi50b2dnbGVDbGFzcygiY29sbGFwc2VkIiwhYykuYXR0cigiYXJpYS1leHBhbmRlZCIsYyl9O3ZhciBlPWEuZm4uY29sbGFwc2U7YS5mbi5jb2xsYXBzZT1jLGEuZm4uY29sbGFwc2UuQ29uc3RydWN0b3I9ZCxhLmZuLmNvbGxhcHNlLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi5jb2xsYXBzZT1lLHRoaXN9LGEoZG9jdW1lbnQpLm9uKCJjbGljay5icy5jb2xsYXBzZS5kYXRhLWFwaSIsJ1tkYXRhLXRvZ2dsZT0iY29sbGFwc2UiXScsZnVuY3Rpb24oZCl7dmFyIGU9YSh0aGlzKTtlLmF0dHIoImRhdGEtdGFyZ2V0Iil8fGQucHJldmVudERlZmF1bHQoKTt2YXIgZj1iKGUpLGc9Zi5kYXRhKCJicy5jb2xsYXBzZSIpLGg9Zz8idG9nZ2xlIjphLmV4dGVuZCh7fSxlLmRhdGEoKSx7dHJpZ2dlcjp0aGlzfSk7Yy5jYWxsKGYsaCl9KX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGIoYil7YiYmMz09PWIud2hpY2h8fChhKGUpLnJlbW92ZSgpLGEoZikuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1jKGQpLGY9e3JlbGF0ZWRUYXJnZXQ6dGhpc307ZS5oYXNDbGFzcygib3BlbiIpJiYoZS50cmlnZ2VyKGI9YS5FdmVudCgiaGlkZS5icy5kcm9wZG93biIsZikpLGIuaXNEZWZhdWx0UHJldmVudGVkKCl8fChkLmF0dHIoImFyaWEtZXhwYW5kZWQiLCJmYWxzZSIpLGUucmVtb3ZlQ2xhc3MoIm9wZW4iKS50cmlnZ2VyKCJoaWRkZW4uYnMuZHJvcGRvd24iLGYpKSl9KSl9ZnVuY3Rpb24gYyhiKXt2YXIgYz1iLmF0dHIoImRhdGEtdGFyZ2V0Iik7Y3x8KGM9Yi5hdHRyKCJocmVmIiksYz1jJiYvI1tBLVphLXpdLy50ZXN0KGMpJiZjLnJlcGxhY2UoLy4qKD89I1teXHNdKiQpLywiIikpO3ZhciBkPWMmJmEoYyk7cmV0dXJuIGQmJmQubGVuZ3RoP2Q6Yi5wYXJlbnQoKX1mdW5jdGlvbiBkKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYz1hKHRoaXMpLGQ9Yy5kYXRhKCJicy5kcm9wZG93biIpO2R8fGMuZGF0YSgiYnMuZHJvcGRvd24iLGQ9bmV3IGcodGhpcykpLCJzdHJpbmciPT10eXBlb2YgYiYmZFtiXS5jYWxsKGMpfSl9dmFyIGU9Ii5kcm9wZG93bi1iYWNrZHJvcCIsZj0nW2RhdGEtdG9nZ2xlPSJkcm9wZG93biJdJyxnPWZ1bmN0aW9uKGIpe2EoYikub24oImNsaWNrLmJzLmRyb3Bkb3duIix0aGlzLnRvZ2dsZSl9O2cuVkVSU0lPTj0iMy4zLjEiLGcucHJvdG90eXBlLnRvZ2dsZT1mdW5jdGlvbihkKXt2YXIgZT1hKHRoaXMpO2lmKCFlLmlzKCIuZGlzYWJsZWQsIDpkaXNhYmxlZCIpKXt2YXIgZj1jKGUpLGc9Zi5oYXNDbGFzcygib3BlbiIpO2lmKGIoKSwhZyl7Im9udG91Y2hzdGFydCJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJiFmLmNsb3Nlc3QoIi5uYXZiYXItbmF2IikubGVuZ3RoJiZhKCc8ZGl2IGNsYXNzPSJkcm9wZG93bi1iYWNrZHJvcCIvPicpLmluc2VydEFmdGVyKGEodGhpcykpLm9uKCJjbGljayIsYik7dmFyIGg9e3JlbGF0ZWRUYXJnZXQ6dGhpc307aWYoZi50cmlnZ2VyKGQ9YS5FdmVudCgic2hvdy5icy5kcm9wZG93biIsaCkpLGQuaXNEZWZhdWx0UHJldmVudGVkKCkpcmV0dXJuO2UudHJpZ2dlcigiZm9jdXMiKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwidHJ1ZSIpLGYudG9nZ2xlQ2xhc3MoIm9wZW4iKS50cmlnZ2VyKCJzaG93bi5icy5kcm9wZG93biIsaCl9cmV0dXJuITF9fSxnLnByb3RvdHlwZS5rZXlkb3duPWZ1bmN0aW9uKGIpe2lmKC8oMzh8NDB8Mjd8MzIpLy50ZXN0KGIud2hpY2gpJiYhL2lucHV0fHRleHRhcmVhL2kudGVzdChiLnRhcmdldC50YWdOYW1lKSl7dmFyIGQ9YSh0aGlzKTtpZihiLnByZXZlbnREZWZhdWx0KCksYi5zdG9wUHJvcGFnYXRpb24oKSwhZC5pcygiLmRpc2FibGVkLCA6ZGlzYWJsZWQiKSl7dmFyIGU9YyhkKSxnPWUuaGFzQ2xhc3MoIm9wZW4iKTtpZighZyYmMjchPWIud2hpY2h8fGcmJjI3PT1iLndoaWNoKXJldHVybiAyNz09Yi53aGljaCYmZS5maW5kKGYpLnRyaWdnZXIoImZvY3VzIiksZC50cmlnZ2VyKCJjbGljayIpO3ZhciBoPSIgbGk6bm90KC5kaXZpZGVyKTp2aXNpYmxlIGEiLGk9ZS5maW5kKCdbcm9sZT0ibWVudSJdJytoKycsIFtyb2xlPSJsaXN0Ym94Il0nK2gpO2lmKGkubGVuZ3RoKXt2YXIgaj1pLmluZGV4KGIudGFyZ2V0KTszOD09Yi53aGljaCYmaj4wJiZqLS0sNDA9PWIud2hpY2gmJmo8aS5sZW5ndGgtMSYmaisrLH5qfHwoaj0wKSxpLmVxKGopLnRyaWdnZXIoImZvY3VzIil9fX19O3ZhciBoPWEuZm4uZHJvcGRvd247YS5mbi5kcm9wZG93bj1kLGEuZm4uZHJvcGRvd24uQ29uc3RydWN0b3I9ZyxhLmZuLmRyb3Bkb3duLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi5kcm9wZG93bj1oLHRoaXN9LGEoZG9jdW1lbnQpLm9uKCJjbGljay5icy5kcm9wZG93bi5kYXRhLWFwaSIsYikub24oImNsaWNrLmJzLmRyb3Bkb3duLmRhdGEtYXBpIiwiLmRyb3Bkb3duIGZvcm0iLGZ1bmN0aW9uKGEpe2Euc3RvcFByb3BhZ2F0aW9uKCl9KS5vbigiY2xpY2suYnMuZHJvcGRvd24uZGF0YS1hcGkiLGYsZy5wcm90b3R5cGUudG9nZ2xlKS5vbigia2V5ZG93bi5icy5kcm9wZG93bi5kYXRhLWFwaSIsZixnLnByb3RvdHlwZS5rZXlkb3duKS5vbigia2V5ZG93bi5icy5kcm9wZG93bi5kYXRhLWFwaSIsJ1tyb2xlPSJtZW51Il0nLGcucHJvdG90eXBlLmtleWRvd24pLm9uKCJrZXlkb3duLmJzLmRyb3Bkb3duLmRhdGEtYXBpIiwnW3JvbGU9Imxpc3Rib3giXScsZy5wcm90b3R5cGUua2V5ZG93bil9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIsZCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBlPWEodGhpcyksZj1lLmRhdGEoImJzLm1vZGFsIiksZz1hLmV4dGVuZCh7fSxjLkRFRkFVTFRTLGUuZGF0YSgpLCJvYmplY3QiPT10eXBlb2YgYiYmYik7Znx8ZS5kYXRhKCJicy5tb2RhbCIsZj1uZXcgYyh0aGlzLGcpKSwic3RyaW5nIj09dHlwZW9mIGI/ZltiXShkKTpnLnNob3cmJmYuc2hvdyhkKX0pfXZhciBjPWZ1bmN0aW9uKGIsYyl7dGhpcy5vcHRpb25zPWMsdGhpcy4kYm9keT1hKGRvY3VtZW50LmJvZHkpLHRoaXMuJGVsZW1lbnQ9YShiKSx0aGlzLiRiYWNrZHJvcD10aGlzLmlzU2hvd249bnVsbCx0aGlzLnNjcm9sbGJhcldpZHRoPTAsdGhpcy5vcHRpb25zLnJlbW90ZSYmdGhpcy4kZWxlbWVudC5maW5kKCIubW9kYWwtY29udGVudCIpLmxvYWQodGhpcy5vcHRpb25zLnJlbW90ZSxhLnByb3h5KGZ1bmN0aW9uKCl7dGhpcy4kZWxlbWVudC50cmlnZ2VyKCJsb2FkZWQuYnMubW9kYWwiKX0sdGhpcykpfTtjLlZFUlNJT049IjMuMy4xIixjLlRSQU5TSVRJT05fRFVSQVRJT049MzAwLGMuQkFDS0RST1BfVFJBTlNJVElPTl9EVVJBVElPTj0xNTAsYy5ERUZBVUxUUz17YmFja2Ryb3A6ITAsa2V5Ym9hcmQ6ITAsc2hvdzohMH0sYy5wcm90b3R5cGUudG9nZ2xlPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmlzU2hvd24/dGhpcy5oaWRlKCk6dGhpcy5zaG93KGEpfSxjLnByb3RvdHlwZS5zaG93PWZ1bmN0aW9uKGIpe3ZhciBkPXRoaXMsZT1hLkV2ZW50KCJzaG93LmJzLm1vZGFsIix7cmVsYXRlZFRhcmdldDpifSk7dGhpcy4kZWxlbWVudC50cmlnZ2VyKGUpLHRoaXMuaXNTaG93bnx8ZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8KHRoaXMuaXNTaG93bj0hMCx0aGlzLmNoZWNrU2Nyb2xsYmFyKCksdGhpcy5zZXRTY3JvbGxiYXIoKSx0aGlzLiRib2R5LmFkZENsYXNzKCJtb2RhbC1vcGVuIiksdGhpcy5lc2NhcGUoKSx0aGlzLnJlc2l6ZSgpLHRoaXMuJGVsZW1lbnQub24oImNsaWNrLmRpc21pc3MuYnMubW9kYWwiLCdbZGF0YS1kaXNtaXNzPSJtb2RhbCJdJyxhLnByb3h5KHRoaXMuaGlkZSx0aGlzKSksdGhpcy5iYWNrZHJvcChmdW5jdGlvbigpe3ZhciBlPWEuc3VwcG9ydC50cmFuc2l0aW9uJiZkLiRlbGVtZW50Lmhhc0NsYXNzKCJmYWRlIik7ZC4kZWxlbWVudC5wYXJlbnQoKS5sZW5ndGh8fGQuJGVsZW1lbnQuYXBwZW5kVG8oZC4kYm9keSksZC4kZWxlbWVudC5zaG93KCkuc2Nyb2xsVG9wKDApLGQub3B0aW9ucy5iYWNrZHJvcCYmZC5hZGp1c3RCYWNrZHJvcCgpLGQuYWRqdXN0RGlhbG9nKCksZSYmZC4kZWxlbWVudFswXS5vZmZzZXRXaWR0aCxkLiRlbGVtZW50LmFkZENsYXNzKCJpbiIpLmF0dHIoImFyaWEtaGlkZGVuIiwhMSksZC5lbmZvcmNlRm9jdXMoKTt2YXIgZj1hLkV2ZW50KCJzaG93bi5icy5tb2RhbCIse3JlbGF0ZWRUYXJnZXQ6Yn0pO2U/ZC4kZWxlbWVudC5maW5kKCIubW9kYWwtZGlhbG9nIikub25lKCJic1RyYW5zaXRpb25FbmQiLGZ1bmN0aW9uKCl7ZC4kZWxlbWVudC50cmlnZ2VyKCJmb2N1cyIpLnRyaWdnZXIoZil9KS5lbXVsYXRlVHJhbnNpdGlvbkVuZChjLlRSQU5TSVRJT05fRFVSQVRJT04pOmQuJGVsZW1lbnQudHJpZ2dlcigiZm9jdXMiKS50cmlnZ2VyKGYpfSkpfSxjLnByb3RvdHlwZS5oaWRlPWZ1bmN0aW9uKGIpe2ImJmIucHJldmVudERlZmF1bHQoKSxiPWEuRXZlbnQoImhpZGUuYnMubW9kYWwiKSx0aGlzLiRlbGVtZW50LnRyaWdnZXIoYiksdGhpcy5pc1Nob3duJiYhYi5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmKHRoaXMuaXNTaG93bj0hMSx0aGlzLmVzY2FwZSgpLHRoaXMucmVzaXplKCksYShkb2N1bWVudCkub2ZmKCJmb2N1c2luLmJzLm1vZGFsIiksdGhpcy4kZWxlbWVudC5yZW1vdmVDbGFzcygiaW4iKS5hdHRyKCJhcmlhLWhpZGRlbiIsITApLm9mZigiY2xpY2suZGlzbWlzcy5icy5tb2RhbCIpLGEuc3VwcG9ydC50cmFuc2l0aW9uJiZ0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJmYWRlIik/dGhpcy4kZWxlbWVudC5vbmUoImJzVHJhbnNpdGlvbkVuZCIsYS5wcm94eSh0aGlzLmhpZGVNb2RhbCx0aGlzKSkuZW11bGF0ZVRyYW5zaXRpb25FbmQoYy5UUkFOU0lUSU9OX0RVUkFUSU9OKTp0aGlzLmhpZGVNb2RhbCgpKX0sYy5wcm90b3R5cGUuZW5mb3JjZUZvY3VzPWZ1bmN0aW9uKCl7YShkb2N1bWVudCkub2ZmKCJmb2N1c2luLmJzLm1vZGFsIikub24oImZvY3VzaW4uYnMubW9kYWwiLGEucHJveHkoZnVuY3Rpb24oYSl7dGhpcy4kZWxlbWVudFswXT09PWEudGFyZ2V0fHx0aGlzLiRlbGVtZW50LmhhcyhhLnRhcmdldCkubGVuZ3RofHx0aGlzLiRlbGVtZW50LnRyaWdnZXIoImZvY3VzIil9LHRoaXMpKX0sYy5wcm90b3R5cGUuZXNjYXBlPWZ1bmN0aW9uKCl7dGhpcy5pc1Nob3duJiZ0aGlzLm9wdGlvbnMua2V5Ym9hcmQ/dGhpcy4kZWxlbWVudC5vbigia2V5ZG93bi5kaXNtaXNzLmJzLm1vZGFsIixhLnByb3h5KGZ1bmN0aW9uKGEpezI3PT1hLndoaWNoJiZ0aGlzLmhpZGUoKX0sdGhpcykpOnRoaXMuaXNTaG93bnx8dGhpcy4kZWxlbWVudC5vZmYoImtleWRvd24uZGlzbWlzcy5icy5tb2RhbCIpfSxjLnByb3RvdHlwZS5yZXNpemU9ZnVuY3Rpb24oKXt0aGlzLmlzU2hvd24/YSh3aW5kb3cpLm9uKCJyZXNpemUuYnMubW9kYWwiLGEucHJveHkodGhpcy5oYW5kbGVVcGRhdGUsdGhpcykpOmEod2luZG93KS5vZmYoInJlc2l6ZS5icy5tb2RhbCIpfSxjLnByb3RvdHlwZS5oaWRlTW9kYWw9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuJGVsZW1lbnQuaGlkZSgpLHRoaXMuYmFja2Ryb3AoZnVuY3Rpb24oKXthLiRib2R5LnJlbW92ZUNsYXNzKCJtb2RhbC1vcGVuIiksYS5yZXNldEFkanVzdG1lbnRzKCksYS5yZXNldFNjcm9sbGJhcigpLGEuJGVsZW1lbnQudHJpZ2dlcigiaGlkZGVuLmJzLm1vZGFsIil9KX0sYy5wcm90b3R5cGUucmVtb3ZlQmFja2Ryb3A9ZnVuY3Rpb24oKXt0aGlzLiRiYWNrZHJvcCYmdGhpcy4kYmFja2Ryb3AucmVtb3ZlKCksdGhpcy4kYmFja2Ryb3A9bnVsbH0sYy5wcm90b3R5cGUuYmFja2Ryb3A9ZnVuY3Rpb24oYil7dmFyIGQ9dGhpcyxlPXRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoImZhZGUiKT8iZmFkZSI6IiI7aWYodGhpcy5pc1Nob3duJiZ0aGlzLm9wdGlvbnMuYmFja2Ryb3Ape3ZhciBmPWEuc3VwcG9ydC50cmFuc2l0aW9uJiZlO2lmKHRoaXMuJGJhY2tkcm9wPWEoJzxkaXYgY2xhc3M9Im1vZGFsLWJhY2tkcm9wICcrZSsnIiAvPicpLnByZXBlbmRUbyh0aGlzLiRlbGVtZW50KS5vbigiY2xpY2suZGlzbWlzcy5icy5tb2RhbCIsYS5wcm94eShmdW5jdGlvbihhKXthLnRhcmdldD09PWEuY3VycmVudFRhcmdldCYmKCJzdGF0aWMiPT10aGlzLm9wdGlvbnMuYmFja2Ryb3A/dGhpcy4kZWxlbWVudFswXS5mb2N1cy5jYWxsKHRoaXMuJGVsZW1lbnRbMF0pOnRoaXMuaGlkZS5jYWxsKHRoaXMpKX0sdGhpcykpLGYmJnRoaXMuJGJhY2tkcm9wWzBdLm9mZnNldFdpZHRoLHRoaXMuJGJhY2tkcm9wLmFkZENsYXNzKCJpbiIpLCFiKXJldHVybjtmP3RoaXMuJGJhY2tkcm9wLm9uZSgiYnNUcmFuc2l0aW9uRW5kIixiKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChjLkJBQ0tEUk9QX1RSQU5TSVRJT05fRFVSQVRJT04pOmIoKX1lbHNlIGlmKCF0aGlzLmlzU2hvd24mJnRoaXMuJGJhY2tkcm9wKXt0aGlzLiRiYWNrZHJvcC5yZW1vdmVDbGFzcygiaW4iKTt2YXIgZz1mdW5jdGlvbigpe2QucmVtb3ZlQmFja2Ryb3AoKSxiJiZiKCl9O2Euc3VwcG9ydC50cmFuc2l0aW9uJiZ0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJmYWRlIik/dGhpcy4kYmFja2Ryb3Aub25lKCJic1RyYW5zaXRpb25FbmQiLGcpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuQkFDS0RST1BfVFJBTlNJVElPTl9EVVJBVElPTik6ZygpfWVsc2UgYiYmYigpfSxjLnByb3RvdHlwZS5oYW5kbGVVcGRhdGU9ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMuYmFja2Ryb3AmJnRoaXMuYWRqdXN0QmFja2Ryb3AoKSx0aGlzLmFkanVzdERpYWxvZygpfSxjLnByb3RvdHlwZS5hZGp1c3RCYWNrZHJvcD1mdW5jdGlvbigpe3RoaXMuJGJhY2tkcm9wLmNzcygiaGVpZ2h0IiwwKS5jc3MoImhlaWdodCIsdGhpcy4kZWxlbWVudFswXS5zY3JvbGxIZWlnaHQpfSxjLnByb3RvdHlwZS5hZGp1c3REaWFsb2c9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLiRlbGVtZW50WzBdLnNjcm9sbEhlaWdodD5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0O3RoaXMuJGVsZW1lbnQuY3NzKHtwYWRkaW5nTGVmdDohdGhpcy5ib2R5SXNPdmVyZmxvd2luZyYmYT90aGlzLnNjcm9sbGJhcldpZHRoOiIiLHBhZGRpbmdSaWdodDp0aGlzLmJvZHlJc092ZXJmbG93aW5nJiYhYT90aGlzLnNjcm9sbGJhcldpZHRoOiIifSl9LGMucHJvdG90eXBlLnJlc2V0QWRqdXN0bWVudHM9ZnVuY3Rpb24oKXt0aGlzLiRlbGVtZW50LmNzcyh7cGFkZGluZ0xlZnQ6IiIscGFkZGluZ1JpZ2h0OiIifSl9LGMucHJvdG90eXBlLmNoZWNrU2Nyb2xsYmFyPWZ1bmN0aW9uKCl7dGhpcy5ib2R5SXNPdmVyZmxvd2luZz1kb2N1bWVudC5ib2R5LnNjcm9sbEhlaWdodD5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0LHRoaXMuc2Nyb2xsYmFyV2lkdGg9dGhpcy5tZWFzdXJlU2Nyb2xsYmFyKCl9LGMucHJvdG90eXBlLnNldFNjcm9sbGJhcj1mdW5jdGlvbigpe3ZhciBhPXBhcnNlSW50KHRoaXMuJGJvZHkuY3NzKCJwYWRkaW5nLXJpZ2h0Iil8fDAsMTApO3RoaXMuYm9keUlzT3ZlcmZsb3dpbmcmJnRoaXMuJGJvZHkuY3NzKCJwYWRkaW5nLXJpZ2h0IixhK3RoaXMuc2Nyb2xsYmFyV2lkdGgpfSxjLnByb3RvdHlwZS5yZXNldFNjcm9sbGJhcj1mdW5jdGlvbigpe3RoaXMuJGJvZHkuY3NzKCJwYWRkaW5nLXJpZ2h0IiwiIil9LGMucHJvdG90eXBlLm1lYXN1cmVTY3JvbGxiYXI9ZnVuY3Rpb24oKXt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTthLmNsYXNzTmFtZT0ibW9kYWwtc2Nyb2xsYmFyLW1lYXN1cmUiLHRoaXMuJGJvZHkuYXBwZW5kKGEpO3ZhciBiPWEub2Zmc2V0V2lkdGgtYS5jbGllbnRXaWR0aDtyZXR1cm4gdGhpcy4kYm9keVswXS5yZW1vdmVDaGlsZChhKSxifTt2YXIgZD1hLmZuLm1vZGFsO2EuZm4ubW9kYWw9YixhLmZuLm1vZGFsLkNvbnN0cnVjdG9yPWMsYS5mbi5tb2RhbC5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4ubW9kYWw9ZCx0aGlzfSxhKGRvY3VtZW50KS5vbigiY2xpY2suYnMubW9kYWwuZGF0YS1hcGkiLCdbZGF0YS10b2dnbGU9Im1vZGFsIl0nLGZ1bmN0aW9uKGMpe3ZhciBkPWEodGhpcyksZT1kLmF0dHIoImhyZWYiKSxmPWEoZC5hdHRyKCJkYXRhLXRhcmdldCIpfHxlJiZlLnJlcGxhY2UoLy4qKD89I1teXHNdKyQpLywiIikpLGc9Zi5kYXRhKCJicy5tb2RhbCIpPyJ0b2dnbGUiOmEuZXh0ZW5kKHtyZW1vdGU6IS8jLy50ZXN0KGUpJiZlfSxmLmRhdGEoKSxkLmRhdGEoKSk7ZC5pcygiYSIpJiZjLnByZXZlbnREZWZhdWx0KCksZi5vbmUoInNob3cuYnMubW9kYWwiLGZ1bmN0aW9uKGEpe2EuaXNEZWZhdWx0UHJldmVudGVkKCl8fGYub25lKCJoaWRkZW4uYnMubW9kYWwiLGZ1bmN0aW9uKCl7ZC5pcygiOnZpc2libGUiKSYmZC50cmlnZ2VyKCJmb2N1cyIpfSl9KSxiLmNhbGwoZixnLHRoaXMpfSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZD1hKHRoaXMpLGU9ZC5kYXRhKCJicy50b29sdGlwIiksZj0ib2JqZWN0Ij09dHlwZW9mIGImJmIsZz1mJiZmLnNlbGVjdG9yOyhlfHwiZGVzdHJveSIhPWIpJiYoZz8oZXx8ZC5kYXRhKCJicy50b29sdGlwIixlPXt9KSxlW2ddfHwoZVtnXT1uZXcgYyh0aGlzLGYpKSk6ZXx8ZC5kYXRhKCJicy50b29sdGlwIixlPW5ldyBjKHRoaXMsZikpLCJzdHJpbmciPT10eXBlb2YgYiYmZVtiXSgpKX0pfXZhciBjPWZ1bmN0aW9uKGEsYil7dGhpcy50eXBlPXRoaXMub3B0aW9ucz10aGlzLmVuYWJsZWQ9dGhpcy50aW1lb3V0PXRoaXMuaG92ZXJTdGF0ZT10aGlzLiRlbGVtZW50PW51bGwsdGhpcy5pbml0KCJ0b29sdGlwIixhLGIpfTtjLlZFUlNJT049IjMuMy4xIixjLlRSQU5TSVRJT05fRFVSQVRJT049MTUwLGMuREVGQVVMVFM9e2FuaW1hdGlvbjohMCxwbGFjZW1lbnQ6InRvcCIsc2VsZWN0b3I6ITEsdGVtcGxhdGU6JzxkaXYgY2xhc3M9InRvb2x0aXAiIHJvbGU9InRvb2x0aXAiPjxkaXYgY2xhc3M9InRvb2x0aXAtYXJyb3ciPjwvZGl2PjxkaXYgY2xhc3M9InRvb2x0aXAtaW5uZXIiPjwvZGl2PjwvZGl2PicsdHJpZ2dlcjoiaG92ZXIgZm9jdXMiLHRpdGxlOiIiLGRlbGF5OjAsaHRtbDohMSxjb250YWluZXI6ITEsdmlld3BvcnQ6e3NlbGVjdG9yOiJib2R5IixwYWRkaW5nOjB9fSxjLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKGIsYyxkKXt0aGlzLmVuYWJsZWQ9ITAsdGhpcy50eXBlPWIsdGhpcy4kZWxlbWVudD1hKGMpLHRoaXMub3B0aW9ucz10aGlzLmdldE9wdGlvbnMoZCksdGhpcy4kdmlld3BvcnQ9dGhpcy5vcHRpb25zLnZpZXdwb3J0JiZhKHRoaXMub3B0aW9ucy52aWV3cG9ydC5zZWxlY3Rvcnx8dGhpcy5vcHRpb25zLnZpZXdwb3J0KTtmb3IodmFyIGU9dGhpcy5vcHRpb25zLnRyaWdnZXIuc3BsaXQoIiAiKSxmPWUubGVuZ3RoO2YtLTspe3ZhciBnPWVbZl07aWYoImNsaWNrIj09Zyl0aGlzLiRlbGVtZW50Lm9uKCJjbGljay4iK3RoaXMudHlwZSx0aGlzLm9wdGlvbnMuc2VsZWN0b3IsYS5wcm94eSh0aGlzLnRvZ2dsZSx0aGlzKSk7ZWxzZSBpZigibWFudWFsIiE9Zyl7dmFyIGg9ImhvdmVyIj09Zz8ibW91c2VlbnRlciI6ImZvY3VzaW4iLGk9ImhvdmVyIj09Zz8ibW91c2VsZWF2ZSI6ImZvY3Vzb3V0Ijt0aGlzLiRlbGVtZW50Lm9uKGgrIi4iK3RoaXMudHlwZSx0aGlzLm9wdGlvbnMuc2VsZWN0b3IsYS5wcm94eSh0aGlzLmVudGVyLHRoaXMpKSx0aGlzLiRlbGVtZW50Lm9uKGkrIi4iK3RoaXMudHlwZSx0aGlzLm9wdGlvbnMuc2VsZWN0b3IsYS5wcm94eSh0aGlzLmxlYXZlLHRoaXMpKX19dGhpcy5vcHRpb25zLnNlbGVjdG9yP3RoaXMuX29wdGlvbnM9YS5leHRlbmQoe30sdGhpcy5vcHRpb25zLHt0cmlnZ2VyOiJtYW51YWwiLHNlbGVjdG9yOiIifSk6dGhpcy5maXhUaXRsZSgpfSxjLnByb3RvdHlwZS5nZXREZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBjLkRFRkFVTFRTfSxjLnByb3RvdHlwZS5nZXRPcHRpb25zPWZ1bmN0aW9uKGIpe3JldHVybiBiPWEuZXh0ZW5kKHt9LHRoaXMuZ2V0RGVmYXVsdHMoKSx0aGlzLiRlbGVtZW50LmRhdGEoKSxiKSxiLmRlbGF5JiYibnVtYmVyIj09dHlwZW9mIGIuZGVsYXkmJihiLmRlbGF5PXtzaG93OmIuZGVsYXksaGlkZTpiLmRlbGF5fSksYn0sYy5wcm90b3R5cGUuZ2V0RGVsZWdhdGVPcHRpb25zPWZ1bmN0aW9uKCl7dmFyIGI9e30sYz10aGlzLmdldERlZmF1bHRzKCk7cmV0dXJuIHRoaXMuX29wdGlvbnMmJmEuZWFjaCh0aGlzLl9vcHRpb25zLGZ1bmN0aW9uKGEsZCl7Y1thXSE9ZCYmKGJbYV09ZCl9KSxifSxjLnByb3RvdHlwZS5lbnRlcj1mdW5jdGlvbihiKXt2YXIgYz1iIGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3Rvcj9iOmEoYi5jdXJyZW50VGFyZ2V0KS5kYXRhKCJicy4iK3RoaXMudHlwZSk7cmV0dXJuIGMmJmMuJHRpcCYmYy4kdGlwLmlzKCI6dmlzaWJsZSIpP3ZvaWQoYy5ob3ZlclN0YXRlPSJpbiIpOihjfHwoYz1uZXcgdGhpcy5jb25zdHJ1Y3RvcihiLmN1cnJlbnRUYXJnZXQsdGhpcy5nZXREZWxlZ2F0ZU9wdGlvbnMoKSksYShiLmN1cnJlbnRUYXJnZXQpLmRhdGEoImJzLiIrdGhpcy50eXBlLGMpKSxjbGVhclRpbWVvdXQoYy50aW1lb3V0KSxjLmhvdmVyU3RhdGU9ImluIixjLm9wdGlvbnMuZGVsYXkmJmMub3B0aW9ucy5kZWxheS5zaG93P3ZvaWQoYy50aW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXsiaW4iPT1jLmhvdmVyU3RhdGUmJmMuc2hvdygpfSxjLm9wdGlvbnMuZGVsYXkuc2hvdykpOmMuc2hvdygpKX0sYy5wcm90b3R5cGUubGVhdmU9ZnVuY3Rpb24oYil7dmFyIGM9YiBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3I/YjphKGIuY3VycmVudFRhcmdldCkuZGF0YSgiYnMuIit0aGlzLnR5cGUpO3JldHVybiBjfHwoYz1uZXcgdGhpcy5jb25zdHJ1Y3RvcihiLmN1cnJlbnRUYXJnZXQsdGhpcy5nZXREZWxlZ2F0ZU9wdGlvbnMoKSksYShiLmN1cnJlbnRUYXJnZXQpLmRhdGEoImJzLiIrdGhpcy50eXBlLGMpKSxjbGVhclRpbWVvdXQoYy50aW1lb3V0KSxjLmhvdmVyU3RhdGU9Im91dCIsYy5vcHRpb25zLmRlbGF5JiZjLm9wdGlvbnMuZGVsYXkuaGlkZT92b2lkKGMudGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Im91dCI9PWMuaG92ZXJTdGF0ZSYmYy5oaWRlKCl9LGMub3B0aW9ucy5kZWxheS5oaWRlKSk6Yy5oaWRlKCl9LGMucHJvdG90eXBlLnNob3c9ZnVuY3Rpb24oKXt2YXIgYj1hLkV2ZW50KCJzaG93LmJzLiIrdGhpcy50eXBlKTtpZih0aGlzLmhhc0NvbnRlbnQoKSYmdGhpcy5lbmFibGVkKXt0aGlzLiRlbGVtZW50LnRyaWdnZXIoYik7dmFyIGQ9YS5jb250YWlucyh0aGlzLiRlbGVtZW50WzBdLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHRoaXMuJGVsZW1lbnRbMF0pO2lmKGIuaXNEZWZhdWx0UHJldmVudGVkKCl8fCFkKXJldHVybjt2YXIgZT10aGlzLGY9dGhpcy50aXAoKSxnPXRoaXMuZ2V0VUlEKHRoaXMudHlwZSk7dGhpcy5zZXRDb250ZW50KCksZi5hdHRyKCJpZCIsZyksdGhpcy4kZWxlbWVudC5hdHRyKCJhcmlhLWRlc2NyaWJlZGJ5IixnKSx0aGlzLm9wdGlvbnMuYW5pbWF0aW9uJiZmLmFkZENsYXNzKCJmYWRlIik7dmFyIGg9ImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMub3B0aW9ucy5wbGFjZW1lbnQ/dGhpcy5vcHRpb25zLnBsYWNlbWVudC5jYWxsKHRoaXMsZlswXSx0aGlzLiRlbGVtZW50WzBdKTp0aGlzLm9wdGlvbnMucGxhY2VtZW50LGk9L1xzP2F1dG8/XHM/L2ksaj1pLnRlc3QoaCk7aiYmKGg9aC5yZXBsYWNlKGksIiIpfHwidG9wIiksZi5kZXRhY2goKS5jc3Moe3RvcDowLGxlZnQ6MCxkaXNwbGF5OiJibG9jayJ9KS5hZGRDbGFzcyhoKS5kYXRhKCJicy4iK3RoaXMudHlwZSx0aGlzKSx0aGlzLm9wdGlvbnMuY29udGFpbmVyP2YuYXBwZW5kVG8odGhpcy5vcHRpb25zLmNvbnRhaW5lcik6Zi5pbnNlcnRBZnRlcih0aGlzLiRlbGVtZW50KTt2YXIgaz10aGlzLmdldFBvc2l0aW9uKCksbD1mWzBdLm9mZnNldFdpZHRoLG09ZlswXS5vZmZzZXRIZWlnaHQ7aWYoail7dmFyIG49aCxvPXRoaXMub3B0aW9ucy5jb250YWluZXI/YSh0aGlzLm9wdGlvbnMuY29udGFpbmVyKTp0aGlzLiRlbGVtZW50LnBhcmVudCgpLHA9dGhpcy5nZXRQb3NpdGlvbihvKTtoPSJib3R0b20iPT1oJiZrLmJvdHRvbSttPnAuYm90dG9tPyJ0b3AiOiJ0b3AiPT1oJiZrLnRvcC1tPHAudG9wPyJib3R0b20iOiJyaWdodCI9PWgmJmsucmlnaHQrbD5wLndpZHRoPyJsZWZ0IjoibGVmdCI9PWgmJmsubGVmdC1sPHAubGVmdD8icmlnaHQiOmgsZi5yZW1vdmVDbGFzcyhuKS5hZGRDbGFzcyhoKX12YXIgcT10aGlzLmdldENhbGN1bGF0ZWRPZmZzZXQoaCxrLGwsbSk7dGhpcy5hcHBseVBsYWNlbWVudChxLGgpO3ZhciByPWZ1bmN0aW9uKCl7dmFyIGE9ZS5ob3ZlclN0YXRlO2UuJGVsZW1lbnQudHJpZ2dlcigic2hvd24uYnMuIitlLnR5cGUpLGUuaG92ZXJTdGF0ZT1udWxsLCJvdXQiPT1hJiZlLmxlYXZlKGUpfTthLnN1cHBvcnQudHJhbnNpdGlvbiYmdGhpcy4kdGlwLmhhc0NsYXNzKCJmYWRlIik/Zi5vbmUoImJzVHJhbnNpdGlvbkVuZCIscikuZW11bGF0ZVRyYW5zaXRpb25FbmQoYy5UUkFOU0lUSU9OX0RVUkFUSU9OKTpyKCl9fSxjLnByb3RvdHlwZS5hcHBseVBsYWNlbWVudD1mdW5jdGlvbihiLGMpe3ZhciBkPXRoaXMudGlwKCksZT1kWzBdLm9mZnNldFdpZHRoLGY9ZFswXS5vZmZzZXRIZWlnaHQsZz1wYXJzZUludChkLmNzcygibWFyZ2luLXRvcCIpLDEwKSxoPXBhcnNlSW50KGQuY3NzKCJtYXJnaW4tbGVmdCIpLDEwKTtpc05hTihnKSYmKGc9MCksaXNOYU4oaCkmJihoPTApLGIudG9wPWIudG9wK2csYi5sZWZ0PWIubGVmdCtoLGEub2Zmc2V0LnNldE9mZnNldChkWzBdLGEuZXh0ZW5kKHt1c2luZzpmdW5jdGlvbihhKXtkLmNzcyh7dG9wOk1hdGgucm91bmQoYS50b3ApLGxlZnQ6TWF0aC5yb3VuZChhLmxlZnQpfSl9fSxiKSwwKSxkLmFkZENsYXNzKCJpbiIpO3ZhciBpPWRbMF0ub2Zmc2V0V2lkdGgsaj1kWzBdLm9mZnNldEhlaWdodDsidG9wIj09YyYmaiE9ZiYmKGIudG9wPWIudG9wK2Ytaik7dmFyIGs9dGhpcy5nZXRWaWV3cG9ydEFkanVzdGVkRGVsdGEoYyxiLGksaik7ay5sZWZ0P2IubGVmdCs9ay5sZWZ0OmIudG9wKz1rLnRvcDt2YXIgbD0vdG9wfGJvdHRvbS8udGVzdChjKSxtPWw/MiprLmxlZnQtZStpOjIqay50b3AtZitqLG49bD8ib2Zmc2V0V2lkdGgiOiJvZmZzZXRIZWlnaHQiO2Qub2Zmc2V0KGIpLHRoaXMucmVwbGFjZUFycm93KG0sZFswXVtuXSxsKX0sYy5wcm90b3R5cGUucmVwbGFjZUFycm93PWZ1bmN0aW9uKGEsYixjKXt0aGlzLmFycm93KCkuY3NzKGM/ImxlZnQiOiJ0b3AiLDUwKigxLWEvYikrIiUiKS5jc3MoYz8idG9wIjoibGVmdCIsIiIpfSxjLnByb3RvdHlwZS5zZXRDb250ZW50PWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy50aXAoKSxiPXRoaXMuZ2V0VGl0bGUoKTthLmZpbmQoIi50b29sdGlwLWlubmVyIilbdGhpcy5vcHRpb25zLmh0bWw/Imh0bWwiOiJ0ZXh0Il0oYiksYS5yZW1vdmVDbGFzcygiZmFkZSBpbiB0b3AgYm90dG9tIGxlZnQgcmlnaHQiKX0sYy5wcm90b3R5cGUuaGlkZT1mdW5jdGlvbihiKXtmdW5jdGlvbiBkKCl7ImluIiE9ZS5ob3ZlclN0YXRlJiZmLmRldGFjaCgpLGUuJGVsZW1lbnQucmVtb3ZlQXR0cigiYXJpYS1kZXNjcmliZWRieSIpLnRyaWdnZXIoImhpZGRlbi5icy4iK2UudHlwZSksYiYmYigpfXZhciBlPXRoaXMsZj10aGlzLnRpcCgpLGc9YS5FdmVudCgiaGlkZS5icy4iK3RoaXMudHlwZSk7cmV0dXJuIHRoaXMuJGVsZW1lbnQudHJpZ2dlcihnKSxnLmlzRGVmYXVsdFByZXZlbnRlZCgpP3ZvaWQgMDooZi5yZW1vdmVDbGFzcygiaW4iKSxhLnN1cHBvcnQudHJhbnNpdGlvbiYmdGhpcy4kdGlwLmhhc0NsYXNzKCJmYWRlIik/Zi5vbmUoImJzVHJhbnNpdGlvbkVuZCIsZCkuZW11bGF0ZVRyYW5zaXRpb25FbmQoYy5UUkFOU0lUSU9OX0RVUkFUSU9OKTpkKCksdGhpcy5ob3ZlclN0YXRlPW51bGwsdGhpcyl9LGMucHJvdG90eXBlLmZpeFRpdGxlPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy4kZWxlbWVudDsoYS5hdHRyKCJ0aXRsZSIpfHwic3RyaW5nIiE9dHlwZW9mIGEuYXR0cigiZGF0YS1vcmlnaW5hbC10aXRsZSIpKSYmYS5hdHRyKCJkYXRhLW9yaWdpbmFsLXRpdGxlIixhLmF0dHIoInRpdGxlIil8fCIiKS5hdHRyKCJ0aXRsZSIsIiIpfSxjLnByb3RvdHlwZS5oYXNDb250ZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0VGl0bGUoKX0sYy5wcm90b3R5cGUuZ2V0UG9zaXRpb249ZnVuY3Rpb24oYil7Yj1ifHx0aGlzLiRlbGVtZW50O3ZhciBjPWJbMF0sZD0iQk9EWSI9PWMudGFnTmFtZSxlPWMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7bnVsbD09ZS53aWR0aCYmKGU9YS5leHRlbmQoe30sZSx7d2lkdGg6ZS5yaWdodC1lLmxlZnQsaGVpZ2h0OmUuYm90dG9tLWUudG9wfSkpO3ZhciBmPWQ/e3RvcDowLGxlZnQ6MH06Yi5vZmZzZXQoKSxnPXtzY3JvbGw6ZD9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wfHxkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDpiLnNjcm9sbFRvcCgpfSxoPWQ/e3dpZHRoOmEod2luZG93KS53aWR0aCgpLGhlaWdodDphKHdpbmRvdykuaGVpZ2h0KCl9Om51bGw7cmV0dXJuIGEuZXh0ZW5kKHt9LGUsZyxoLGYpfSxjLnByb3RvdHlwZS5nZXRDYWxjdWxhdGVkT2Zmc2V0PWZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiJib3R0b20iPT1hP3t0b3A6Yi50b3ArYi5oZWlnaHQsbGVmdDpiLmxlZnQrYi53aWR0aC8yLWMvMn06InRvcCI9PWE/e3RvcDpiLnRvcC1kLGxlZnQ6Yi5sZWZ0K2Iud2lkdGgvMi1jLzJ9OiJsZWZ0Ij09YT97dG9wOmIudG9wK2IuaGVpZ2h0LzItZC8yLGxlZnQ6Yi5sZWZ0LWN9Ont0b3A6Yi50b3ArYi5oZWlnaHQvMi1kLzIsbGVmdDpiLmxlZnQrYi53aWR0aH19LGMucHJvdG90eXBlLmdldFZpZXdwb3J0QWRqdXN0ZWREZWx0YT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT17dG9wOjAsbGVmdDowfTtpZighdGhpcy4kdmlld3BvcnQpcmV0dXJuIGU7dmFyIGY9dGhpcy5vcHRpb25zLnZpZXdwb3J0JiZ0aGlzLm9wdGlvbnMudmlld3BvcnQucGFkZGluZ3x8MCxnPXRoaXMuZ2V0UG9zaXRpb24odGhpcy4kdmlld3BvcnQpO2lmKC9yaWdodHxsZWZ0Ly50ZXN0KGEpKXt2YXIgaD1iLnRvcC1mLWcuc2Nyb2xsLGk9Yi50b3ArZi1nLnNjcm9sbCtkO2g8Zy50b3A/ZS50b3A9Zy50b3AtaDppPmcudG9wK2cuaGVpZ2h0JiYoZS50b3A9Zy50b3ArZy5oZWlnaHQtaSl9ZWxzZXt2YXIgaj1iLmxlZnQtZixrPWIubGVmdCtmK2M7ajxnLmxlZnQ/ZS5sZWZ0PWcubGVmdC1qOms+Zy53aWR0aCYmKGUubGVmdD1nLmxlZnQrZy53aWR0aC1rKX1yZXR1cm4gZX0sYy5wcm90b3R5cGUuZ2V0VGl0bGU9ZnVuY3Rpb24oKXt2YXIgYSxiPXRoaXMuJGVsZW1lbnQsYz10aGlzLm9wdGlvbnM7cmV0dXJuIGE9Yi5hdHRyKCJkYXRhLW9yaWdpbmFsLXRpdGxlIil8fCgiZnVuY3Rpb24iPT10eXBlb2YgYy50aXRsZT9jLnRpdGxlLmNhbGwoYlswXSk6Yy50aXRsZSl9LGMucHJvdG90eXBlLmdldFVJRD1mdW5jdGlvbihhKXtkbyBhKz1+figxZTYqTWF0aC5yYW5kb20oKSk7d2hpbGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYSkpO3JldHVybiBhfSxjLnByb3RvdHlwZS50aXA9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kdGlwPXRoaXMuJHRpcHx8YSh0aGlzLm9wdGlvbnMudGVtcGxhdGUpfSxjLnByb3RvdHlwZS5hcnJvdz1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRhcnJvdz10aGlzLiRhcnJvd3x8dGhpcy50aXAoKS5maW5kKCIudG9vbHRpcC1hcnJvdyIpfSxjLnByb3RvdHlwZS5lbmFibGU9ZnVuY3Rpb24oKXt0aGlzLmVuYWJsZWQ9ITB9LGMucHJvdG90eXBlLmRpc2FibGU9ZnVuY3Rpb24oKXt0aGlzLmVuYWJsZWQ9ITF9LGMucHJvdG90eXBlLnRvZ2dsZUVuYWJsZWQ9ZnVuY3Rpb24oKXt0aGlzLmVuYWJsZWQ9IXRoaXMuZW5hYmxlZH0sYy5wcm90b3R5cGUudG9nZ2xlPWZ1bmN0aW9uKGIpe3ZhciBjPXRoaXM7YiYmKGM9YShiLmN1cnJlbnRUYXJnZXQpLmRhdGEoImJzLiIrdGhpcy50eXBlKSxjfHwoYz1uZXcgdGhpcy5jb25zdHJ1Y3RvcihiLmN1cnJlbnRUYXJnZXQsdGhpcy5nZXREZWxlZ2F0ZU9wdGlvbnMoKSksYShiLmN1cnJlbnRUYXJnZXQpLmRhdGEoImJzLiIrdGhpcy50eXBlLGMpKSksYy50aXAoKS5oYXNDbGFzcygiaW4iKT9jLmxlYXZlKGMpOmMuZW50ZXIoYyl9LGMucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO2NsZWFyVGltZW91dCh0aGlzLnRpbWVvdXQpLHRoaXMuaGlkZShmdW5jdGlvbigpe2EuJGVsZW1lbnQub2ZmKCIuIithLnR5cGUpLnJlbW92ZURhdGEoImJzLiIrYS50eXBlKX0pfTt2YXIgZD1hLmZuLnRvb2x0aXA7YS5mbi50b29sdGlwPWIsYS5mbi50b29sdGlwLkNvbnN0cnVjdG9yPWMsYS5mbi50b29sdGlwLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi50b29sdGlwPWQsdGhpc319KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZD1hKHRoaXMpLGU9ZC5kYXRhKCJicy5wb3BvdmVyIiksZj0ib2JqZWN0Ij09dHlwZW9mIGImJmIsZz1mJiZmLnNlbGVjdG9yOyhlfHwiZGVzdHJveSIhPWIpJiYoZz8oZXx8ZC5kYXRhKCJicy5wb3BvdmVyIixlPXt9KSxlW2ddfHwoZVtnXT1uZXcgYyh0aGlzLGYpKSk6ZXx8ZC5kYXRhKCJicy5wb3BvdmVyIixlPW5ldyBjKHRoaXMsZikpLCJzdHJpbmciPT10eXBlb2YgYiYmZVtiXSgpKX0pfXZhciBjPWZ1bmN0aW9uKGEsYil7dGhpcy5pbml0KCJwb3BvdmVyIixhLGIpfTtpZighYS5mbi50b29sdGlwKXRocm93IG5ldyBFcnJvcigiUG9wb3ZlciByZXF1aXJlcyB0b29sdGlwLmpzIik7Yy5WRVJTSU9OPSIzLjMuMSIsYy5ERUZBVUxUUz1hLmV4dGVuZCh7fSxhLmZuLnRvb2x0aXAuQ29uc3RydWN0b3IuREVGQVVMVFMse3BsYWNlbWVudDoicmlnaHQiLHRyaWdnZXI6ImNsaWNrIixjb250ZW50OiIiLHRlbXBsYXRlOic8ZGl2IGNsYXNzPSJwb3BvdmVyIiByb2xlPSJ0b29sdGlwIj48ZGl2IGNsYXNzPSJhcnJvdyI+PC9kaXY+PGgzIGNsYXNzPSJwb3BvdmVyLXRpdGxlIj48L2gzPjxkaXYgY2xhc3M9InBvcG92ZXItY29udGVudCI+PC9kaXY+PC9kaXY+J30pLGMucHJvdG90eXBlPWEuZXh0ZW5kKHt9LGEuZm4udG9vbHRpcC5Db25zdHJ1Y3Rvci5wcm90b3R5cGUpLGMucHJvdG90eXBlLmNvbnN0cnVjdG9yPWMsYy5wcm90b3R5cGUuZ2V0RGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gYy5ERUZBVUxUU30sYy5wcm90b3R5cGUuc2V0Q29udGVudD1mdW5jdGlvbigpe3ZhciBhPXRoaXMudGlwKCksYj10aGlzLmdldFRpdGxlKCksYz10aGlzLmdldENvbnRlbnQoKTthLmZpbmQoIi5wb3BvdmVyLXRpdGxlIilbdGhpcy5vcHRpb25zLmh0bWw/Imh0bWwiOiJ0ZXh0Il0oYiksYS5maW5kKCIucG9wb3Zlci1jb250ZW50IikuY2hpbGRyZW4oKS5kZXRhY2goKS5lbmQoKVt0aGlzLm9wdGlvbnMuaHRtbD8ic3RyaW5nIj09dHlwZW9mIGM/Imh0bWwiOiJhcHBlbmQiOiJ0ZXh0Il0oYyksYS5yZW1vdmVDbGFzcygiZmFkZSB0b3AgYm90dG9tIGxlZnQgcmlnaHQgaW4iKSxhLmZpbmQoIi5wb3BvdmVyLXRpdGxlIikuaHRtbCgpfHxhLmZpbmQoIi5wb3BvdmVyLXRpdGxlIikuaGlkZSgpfSxjLnByb3RvdHlwZS5oYXNDb250ZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0VGl0bGUoKXx8dGhpcy5nZXRDb250ZW50KCl9LGMucHJvdG90eXBlLmdldENvbnRlbnQ9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLiRlbGVtZW50LGI9dGhpcy5vcHRpb25zO3JldHVybiBhLmF0dHIoImRhdGEtY29udGVudCIpfHwoImZ1bmN0aW9uIj09dHlwZW9mIGIuY29udGVudD9iLmNvbnRlbnQuY2FsbChhWzBdKTpiLmNvbnRlbnQpfSxjLnByb3RvdHlwZS5hcnJvdz1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRhcnJvdz10aGlzLiRhcnJvd3x8dGhpcy50aXAoKS5maW5kKCIuYXJyb3ciKX0sYy5wcm90b3R5cGUudGlwPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJHRpcHx8KHRoaXMuJHRpcD1hKHRoaXMub3B0aW9ucy50ZW1wbGF0ZSkpLHRoaXMuJHRpcH07dmFyIGQ9YS5mbi5wb3BvdmVyO2EuZm4ucG9wb3Zlcj1iLGEuZm4ucG9wb3Zlci5Db25zdHJ1Y3Rvcj1jLGEuZm4ucG9wb3Zlci5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4ucG9wb3Zlcj1kLHRoaXN9fShqUXVlcnkpLCtmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYihjLGQpe3ZhciBlPWEucHJveHkodGhpcy5wcm9jZXNzLHRoaXMpO3RoaXMuJGJvZHk9YSgiYm9keSIpLHRoaXMuJHNjcm9sbEVsZW1lbnQ9YShhKGMpLmlzKCJib2R5Iik/d2luZG93OmMpLHRoaXMub3B0aW9ucz1hLmV4dGVuZCh7fSxiLkRFRkFVTFRTLGQpLHRoaXMuc2VsZWN0b3I9KHRoaXMub3B0aW9ucy50YXJnZXR8fCIiKSsiIC5uYXYgbGkgPiBhIix0aGlzLm9mZnNldHM9W10sdGhpcy50YXJnZXRzPVtdLHRoaXMuYWN0aXZlVGFyZ2V0PW51bGwsdGhpcy5zY3JvbGxIZWlnaHQ9MCx0aGlzLiRzY3JvbGxFbGVtZW50Lm9uKCJzY3JvbGwuYnMuc2Nyb2xsc3B5IixlKSx0aGlzLnJlZnJlc2goKSx0aGlzLnByb2Nlc3MoKX1mdW5jdGlvbiBjKGMpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZD1hKHRoaXMpLGU9ZC5kYXRhKCJicy5zY3JvbGxzcHkiKSxmPSJvYmplY3QiPT10eXBlb2YgYyYmYztlfHxkLmRhdGEoImJzLnNjcm9sbHNweSIsZT1uZXcgYih0aGlzLGYpKSwic3RyaW5nIj09dHlwZW9mIGMmJmVbY10oKX0pfWIuVkVSU0lPTj0iMy4zLjEiLGIuREVGQVVMVFM9e29mZnNldDoxMH0sYi5wcm90b3R5cGUuZ2V0U2Nyb2xsSGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJHNjcm9sbEVsZW1lbnRbMF0uc2Nyb2xsSGVpZ2h0fHxNYXRoLm1heCh0aGlzLiRib2R5WzBdLnNjcm9sbEhlaWdodCxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsSGVpZ2h0KX0sYi5wcm90b3R5cGUucmVmcmVzaD1mdW5jdGlvbigpe3ZhciBiPSJvZmZzZXQiLGM9MDthLmlzV2luZG93KHRoaXMuJHNjcm9sbEVsZW1lbnRbMF0pfHwoYj0icG9zaXRpb24iLGM9dGhpcy4kc2Nyb2xsRWxlbWVudC5zY3JvbGxUb3AoKSksdGhpcy5vZmZzZXRzPVtdLHRoaXMudGFyZ2V0cz1bXSx0aGlzLnNjcm9sbEhlaWdodD10aGlzLmdldFNjcm9sbEhlaWdodCgpO3ZhciBkPXRoaXM7dGhpcy4kYm9keS5maW5kKHRoaXMuc2VsZWN0b3IpLm1hcChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1kLmRhdGEoInRhcmdldCIpfHxkLmF0dHIoImhyZWYiKSxmPS9eIy4vLnRlc3QoZSkmJmEoZSk7cmV0dXJuIGYmJmYubGVuZ3RoJiZmLmlzKCI6dmlzaWJsZSIpJiZbW2ZbYl0oKS50b3ArYyxlXV18fG51bGx9KS5zb3J0KGZ1bmN0aW9uKGEsYil7cmV0dXJuIGFbMF0tYlswXX0pLmVhY2goZnVuY3Rpb24oKXtkLm9mZnNldHMucHVzaCh0aGlzWzBdKSxkLnRhcmdldHMucHVzaCh0aGlzWzFdKX0pfSxiLnByb3RvdHlwZS5wcm9jZXNzPWZ1bmN0aW9uKCl7dmFyIGEsYj10aGlzLiRzY3JvbGxFbGVtZW50LnNjcm9sbFRvcCgpK3RoaXMub3B0aW9ucy5vZmZzZXQsYz10aGlzLmdldFNjcm9sbEhlaWdodCgpLGQ9dGhpcy5vcHRpb25zLm9mZnNldCtjLXRoaXMuJHNjcm9sbEVsZW1lbnQuaGVpZ2h0KCksZT10aGlzLm9mZnNldHMsZj10aGlzLnRhcmdldHMsZz10aGlzLmFjdGl2ZVRhcmdldDtpZih0aGlzLnNjcm9sbEhlaWdodCE9YyYmdGhpcy5yZWZyZXNoKCksYj49ZClyZXR1cm4gZyE9KGE9ZltmLmxlbmd0aC0xXSkmJnRoaXMuYWN0aXZhdGUoYSk7aWYoZyYmYjxlWzBdKXJldHVybiB0aGlzLmFjdGl2ZVRhcmdldD1udWxsLHRoaXMuY2xlYXIoKTtmb3IoYT1lLmxlbmd0aDthLS07KWchPWZbYV0mJmI+PWVbYV0mJighZVthKzFdfHxiPD1lW2ErMV0pJiZ0aGlzLmFjdGl2YXRlKGZbYV0pfSxiLnByb3RvdHlwZS5hY3RpdmF0ZT1mdW5jdGlvbihiKXt0aGlzLmFjdGl2ZVRhcmdldD1iLHRoaXMuY2xlYXIoKTt2YXIgYz10aGlzLnNlbGVjdG9yKydbZGF0YS10YXJnZXQ9IicrYisnIl0sJyt0aGlzLnNlbGVjdG9yKydbaHJlZj0iJytiKyciXScsZD1hKGMpLnBhcmVudHMoImxpIikuYWRkQ2xhc3MoImFjdGl2ZSIpO2QucGFyZW50KCIuZHJvcGRvd24tbWVudSIpLmxlbmd0aCYmKGQ9ZC5jbG9zZXN0KCJsaS5kcm9wZG93biIpLmFkZENsYXNzKCJhY3RpdmUiKSksZC50cmlnZ2VyKCJhY3RpdmF0ZS5icy5zY3JvbGxzcHkiKX0sYi5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXthKHRoaXMuc2VsZWN0b3IpLnBhcmVudHNVbnRpbCh0aGlzLm9wdGlvbnMudGFyZ2V0LCIuYWN0aXZlIikucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpfTt2YXIgZD1hLmZuLnNjcm9sbHNweTthLmZuLnNjcm9sbHNweT1jLGEuZm4uc2Nyb2xsc3B5LkNvbnN0cnVjdG9yPWIsYS5mbi5zY3JvbGxzcHkubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLnNjcm9sbHNweT1kLHRoaXN9LGEod2luZG93KS5vbigibG9hZC5icy5zY3JvbGxzcHkuZGF0YS1hcGkiLGZ1bmN0aW9uKCl7YSgnW2RhdGEtc3B5PSJzY3JvbGwiXScpLmVhY2goZnVuY3Rpb24oKXt2YXIgYj1hKHRoaXMpO2MuY2FsbChiLGIuZGF0YSgpKX0pfSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZD1hKHRoaXMpLGU9ZC5kYXRhKCJicy50YWIiKTtlfHxkLmRhdGEoImJzLnRhYiIsZT1uZXcgYyh0aGlzKSksInN0cmluZyI9PXR5cGVvZiBiJiZlW2JdKCl9KX12YXIgYz1mdW5jdGlvbihiKXt0aGlzLmVsZW1lbnQ9YShiKX07Yy5WRVJTSU9OPSIzLjMuMSIsYy5UUkFOU0lUSU9OX0RVUkFUSU9OPTE1MCxjLnByb3RvdHlwZS5zaG93PWZ1bmN0aW9uKCl7dmFyIGI9dGhpcy5lbGVtZW50LGM9Yi5jbG9zZXN0KCJ1bDpub3QoLmRyb3Bkb3duLW1lbnUpIiksZD1iLmRhdGEoInRhcmdldCIpO2lmKGR8fChkPWIuYXR0cigiaHJlZiIpLGQ9ZCYmZC5yZXBsYWNlKC8uKig/PSNbXlxzXSokKS8sIiIpKSwhYi5wYXJlbnQoImxpIikuaGFzQ2xhc3MoImFjdGl2ZSIpKXt2YXIgZT1jLmZpbmQoIi5hY3RpdmU6bGFzdCBhIiksZj1hLkV2ZW50KCJoaWRlLmJzLnRhYiIse3JlbGF0ZWRUYXJnZXQ6YlswXX0pLGc9YS5FdmVudCgic2hvdy5icy50YWIiLHtyZWxhdGVkVGFyZ2V0OmVbMF19KTtpZihlLnRyaWdnZXIoZiksYi50cmlnZ2VyKGcpLCFnLmlzRGVmYXVsdFByZXZlbnRlZCgpJiYhZi5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7dmFyIGg9YShkKTt0aGlzLmFjdGl2YXRlKGIuY2xvc2VzdCgibGkiKSxjKSx0aGlzLmFjdGl2YXRlKGgsaC5wYXJlbnQoKSxmdW5jdGlvbigpe2UudHJpZ2dlcih7dHlwZToiaGlkZGVuLmJzLnRhYiIscmVsYXRlZFRhcmdldDpiWzBdfSksYi50cmlnZ2VyKHt0eXBlOiJzaG93bi5icy50YWIiLHJlbGF0ZWRUYXJnZXQ6ZVswXX0pCn0pfX19LGMucHJvdG90eXBlLmFjdGl2YXRlPWZ1bmN0aW9uKGIsZCxlKXtmdW5jdGlvbiBmKCl7Zy5yZW1vdmVDbGFzcygiYWN0aXZlIikuZmluZCgiPiAuZHJvcGRvd24tbWVudSA+IC5hY3RpdmUiKS5yZW1vdmVDbGFzcygiYWN0aXZlIikuZW5kKCkuZmluZCgnW2RhdGEtdG9nZ2xlPSJ0YWIiXScpLmF0dHIoImFyaWEtZXhwYW5kZWQiLCExKSxiLmFkZENsYXNzKCJhY3RpdmUiKS5maW5kKCdbZGF0YS10b2dnbGU9InRhYiJdJykuYXR0cigiYXJpYS1leHBhbmRlZCIsITApLGg/KGJbMF0ub2Zmc2V0V2lkdGgsYi5hZGRDbGFzcygiaW4iKSk6Yi5yZW1vdmVDbGFzcygiZmFkZSIpLGIucGFyZW50KCIuZHJvcGRvd24tbWVudSIpJiZiLmNsb3Nlc3QoImxpLmRyb3Bkb3duIikuYWRkQ2xhc3MoImFjdGl2ZSIpLmVuZCgpLmZpbmQoJ1tkYXRhLXRvZ2dsZT0idGFiIl0nKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwhMCksZSYmZSgpfXZhciBnPWQuZmluZCgiPiAuYWN0aXZlIiksaD1lJiZhLnN1cHBvcnQudHJhbnNpdGlvbiYmKGcubGVuZ3RoJiZnLmhhc0NsYXNzKCJmYWRlIil8fCEhZC5maW5kKCI+IC5mYWRlIikubGVuZ3RoKTtnLmxlbmd0aCYmaD9nLm9uZSgiYnNUcmFuc2l0aW9uRW5kIixmKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChjLlRSQU5TSVRJT05fRFVSQVRJT04pOmYoKSxnLnJlbW92ZUNsYXNzKCJpbiIpfTt2YXIgZD1hLmZuLnRhYjthLmZuLnRhYj1iLGEuZm4udGFiLkNvbnN0cnVjdG9yPWMsYS5mbi50YWIubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLnRhYj1kLHRoaXN9O3ZhciBlPWZ1bmN0aW9uKGMpe2MucHJldmVudERlZmF1bHQoKSxiLmNhbGwoYSh0aGlzKSwic2hvdyIpfTthKGRvY3VtZW50KS5vbigiY2xpY2suYnMudGFiLmRhdGEtYXBpIiwnW2RhdGEtdG9nZ2xlPSJ0YWIiXScsZSkub24oImNsaWNrLmJzLnRhYi5kYXRhLWFwaSIsJ1tkYXRhLXRvZ2dsZT0icGlsbCJdJyxlKX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGIoYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1kLmRhdGEoImJzLmFmZml4IiksZj0ib2JqZWN0Ij09dHlwZW9mIGImJmI7ZXx8ZC5kYXRhKCJicy5hZmZpeCIsZT1uZXcgYyh0aGlzLGYpKSwic3RyaW5nIj09dHlwZW9mIGImJmVbYl0oKX0pfXZhciBjPWZ1bmN0aW9uKGIsZCl7dGhpcy5vcHRpb25zPWEuZXh0ZW5kKHt9LGMuREVGQVVMVFMsZCksdGhpcy4kdGFyZ2V0PWEodGhpcy5vcHRpb25zLnRhcmdldCkub24oInNjcm9sbC5icy5hZmZpeC5kYXRhLWFwaSIsYS5wcm94eSh0aGlzLmNoZWNrUG9zaXRpb24sdGhpcykpLm9uKCJjbGljay5icy5hZmZpeC5kYXRhLWFwaSIsYS5wcm94eSh0aGlzLmNoZWNrUG9zaXRpb25XaXRoRXZlbnRMb29wLHRoaXMpKSx0aGlzLiRlbGVtZW50PWEoYiksdGhpcy5hZmZpeGVkPXRoaXMudW5waW49dGhpcy5waW5uZWRPZmZzZXQ9bnVsbCx0aGlzLmNoZWNrUG9zaXRpb24oKX07Yy5WRVJTSU9OPSIzLjMuMSIsYy5SRVNFVD0iYWZmaXggYWZmaXgtdG9wIGFmZml4LWJvdHRvbSIsYy5ERUZBVUxUUz17b2Zmc2V0OjAsdGFyZ2V0OndpbmRvd30sYy5wcm90b3R5cGUuZ2V0U3RhdGU9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9dGhpcy4kdGFyZ2V0LnNjcm9sbFRvcCgpLGY9dGhpcy4kZWxlbWVudC5vZmZzZXQoKSxnPXRoaXMuJHRhcmdldC5oZWlnaHQoKTtpZihudWxsIT1jJiYidG9wIj09dGhpcy5hZmZpeGVkKXJldHVybiBjPmU/InRvcCI6ITE7aWYoImJvdHRvbSI9PXRoaXMuYWZmaXhlZClyZXR1cm4gbnVsbCE9Yz9lK3RoaXMudW5waW48PWYudG9wPyExOiJib3R0b20iOmEtZD49ZStnPyExOiJib3R0b20iO3ZhciBoPW51bGw9PXRoaXMuYWZmaXhlZCxpPWg/ZTpmLnRvcCxqPWg/ZzpiO3JldHVybiBudWxsIT1jJiZjPj1pPyJ0b3AiOm51bGwhPWQmJmkraj49YS1kPyJib3R0b20iOiExfSxjLnByb3RvdHlwZS5nZXRQaW5uZWRPZmZzZXQ9ZnVuY3Rpb24oKXtpZih0aGlzLnBpbm5lZE9mZnNldClyZXR1cm4gdGhpcy5waW5uZWRPZmZzZXQ7dGhpcy4kZWxlbWVudC5yZW1vdmVDbGFzcyhjLlJFU0VUKS5hZGRDbGFzcygiYWZmaXgiKTt2YXIgYT10aGlzLiR0YXJnZXQuc2Nyb2xsVG9wKCksYj10aGlzLiRlbGVtZW50Lm9mZnNldCgpO3JldHVybiB0aGlzLnBpbm5lZE9mZnNldD1iLnRvcC1hfSxjLnByb3RvdHlwZS5jaGVja1Bvc2l0aW9uV2l0aEV2ZW50TG9vcD1mdW5jdGlvbigpe3NldFRpbWVvdXQoYS5wcm94eSh0aGlzLmNoZWNrUG9zaXRpb24sdGhpcyksMSl9LGMucHJvdG90eXBlLmNoZWNrUG9zaXRpb249ZnVuY3Rpb24oKXtpZih0aGlzLiRlbGVtZW50LmlzKCI6dmlzaWJsZSIpKXt2YXIgYj10aGlzLiRlbGVtZW50LmhlaWdodCgpLGQ9dGhpcy5vcHRpb25zLm9mZnNldCxlPWQudG9wLGY9ZC5ib3R0b20sZz1hKCJib2R5IikuaGVpZ2h0KCk7Im9iamVjdCIhPXR5cGVvZiBkJiYoZj1lPWQpLCJmdW5jdGlvbiI9PXR5cGVvZiBlJiYoZT1kLnRvcCh0aGlzLiRlbGVtZW50KSksImZ1bmN0aW9uIj09dHlwZW9mIGYmJihmPWQuYm90dG9tKHRoaXMuJGVsZW1lbnQpKTt2YXIgaD10aGlzLmdldFN0YXRlKGcsYixlLGYpO2lmKHRoaXMuYWZmaXhlZCE9aCl7bnVsbCE9dGhpcy51bnBpbiYmdGhpcy4kZWxlbWVudC5jc3MoInRvcCIsIiIpO3ZhciBpPSJhZmZpeCIrKGg/Ii0iK2g6IiIpLGo9YS5FdmVudChpKyIuYnMuYWZmaXgiKTtpZih0aGlzLiRlbGVtZW50LnRyaWdnZXIoaiksai5pc0RlZmF1bHRQcmV2ZW50ZWQoKSlyZXR1cm47dGhpcy5hZmZpeGVkPWgsdGhpcy51bnBpbj0iYm90dG9tIj09aD90aGlzLmdldFBpbm5lZE9mZnNldCgpOm51bGwsdGhpcy4kZWxlbWVudC5yZW1vdmVDbGFzcyhjLlJFU0VUKS5hZGRDbGFzcyhpKS50cmlnZ2VyKGkucmVwbGFjZSgiYWZmaXgiLCJhZmZpeGVkIikrIi5icy5hZmZpeCIpfSJib3R0b20iPT1oJiZ0aGlzLiRlbGVtZW50Lm9mZnNldCh7dG9wOmctYi1mfSl9fTt2YXIgZD1hLmZuLmFmZml4O2EuZm4uYWZmaXg9YixhLmZuLmFmZml4LkNvbnN0cnVjdG9yPWMsYS5mbi5hZmZpeC5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4uYWZmaXg9ZCx0aGlzfSxhKHdpbmRvdykub24oImxvYWQiLGZ1bmN0aW9uKCl7YSgnW2RhdGEtc3B5PSJhZmZpeCJdJykuZWFjaChmdW5jdGlvbigpe3ZhciBjPWEodGhpcyksZD1jLmRhdGEoKTtkLm9mZnNldD1kLm9mZnNldHx8e30sbnVsbCE9ZC5vZmZzZXRCb3R0b20mJihkLm9mZnNldC5ib3R0b209ZC5vZmZzZXRCb3R0b20pLG51bGwhPWQub2Zmc2V0VG9wJiYoZC5vZmZzZXQudG9wPWQub2Zmc2V0VG9wKSxiLmNhbGwoYyxkKX0pfSl9KGpRdWVyeSk7"></script>
<script src="data:application/x-javascript;base64,LyoqCiogQHByZXNlcnZlIEhUTUw1IFNoaXYgMy43LjIgfCBAYWZhcmthcyBAamRhbHRvbiBAam9uX25lYWwgQHJlbSB8IE1JVC9HUEwyIExpY2Vuc2VkCiovCi8vIE9ubHkgcnVuIHRoaXMgY29kZSBpbiBJRSA4CmlmICghIXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKCJNU0lFIDgiKSkgewohZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGEsYil7dmFyIGM9YS5jcmVhdGVFbGVtZW50KCJwIiksZD1hLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fGEuZG9jdW1lbnRFbGVtZW50O3JldHVybiBjLmlubmVySFRNTD0ieDxzdHlsZT4iK2IrIjwvc3R5bGU+IixkLmluc2VydEJlZm9yZShjLmxhc3RDaGlsZCxkLmZpcnN0Q2hpbGQpfWZ1bmN0aW9uIGQoKXt2YXIgYT10LmVsZW1lbnRzO3JldHVybiJzdHJpbmciPT10eXBlb2YgYT9hLnNwbGl0KCIgIik6YX1mdW5jdGlvbiBlKGEsYil7dmFyIGM9dC5lbGVtZW50czsic3RyaW5nIiE9dHlwZW9mIGMmJihjPWMuam9pbigiICIpKSwic3RyaW5nIiE9dHlwZW9mIGEmJihhPWEuam9pbigiICIpKSx0LmVsZW1lbnRzPWMrIiAiK2EsaihiKX1mdW5jdGlvbiBmKGEpe3ZhciBiPXNbYVtxXV07cmV0dXJuIGJ8fChiPXt9LHIrKyxhW3FdPXIsc1tyXT1iKSxifWZ1bmN0aW9uIGcoYSxjLGQpe2lmKGN8fChjPWIpLGwpcmV0dXJuIGMuY3JlYXRlRWxlbWVudChhKTtkfHwoZD1mKGMpKTt2YXIgZTtyZXR1cm4gZT1kLmNhY2hlW2FdP2QuY2FjaGVbYV0uY2xvbmVOb2RlKCk6cC50ZXN0KGEpPyhkLmNhY2hlW2FdPWQuY3JlYXRlRWxlbShhKSkuY2xvbmVOb2RlKCk6ZC5jcmVhdGVFbGVtKGEpLCFlLmNhbkhhdmVDaGlsZHJlbnx8by50ZXN0KGEpfHxlLnRhZ1Vybj9lOmQuZnJhZy5hcHBlbmRDaGlsZChlKX1mdW5jdGlvbiBoKGEsYyl7aWYoYXx8KGE9YiksbClyZXR1cm4gYS5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Yz1jfHxmKGEpO2Zvcih2YXIgZT1jLmZyYWcuY2xvbmVOb2RlKCksZz0wLGg9ZCgpLGk9aC5sZW5ndGg7aT5nO2crKyllLmNyZWF0ZUVsZW1lbnQoaFtnXSk7cmV0dXJuIGV9ZnVuY3Rpb24gaShhLGIpe2IuY2FjaGV8fChiLmNhY2hlPXt9LGIuY3JlYXRlRWxlbT1hLmNyZWF0ZUVsZW1lbnQsYi5jcmVhdGVGcmFnPWEuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCxiLmZyYWc9Yi5jcmVhdGVGcmFnKCkpLGEuY3JlYXRlRWxlbWVudD1mdW5jdGlvbihjKXtyZXR1cm4gdC5zaGl2TWV0aG9kcz9nKGMsYSxiKTpiLmNyZWF0ZUVsZW0oYyl9LGEuY3JlYXRlRG9jdW1lbnRGcmFnbWVudD1GdW5jdGlvbigiaCxmIiwicmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49Zi5jbG9uZU5vZGUoKSxjPW4uY3JlYXRlRWxlbWVudDtoLnNoaXZNZXRob2RzJiYoIitkKCkuam9pbigpLnJlcGxhY2UoL1tcd1wtOl0rL2csZnVuY3Rpb24oYSl7cmV0dXJuIGIuY3JlYXRlRWxlbShhKSxiLmZyYWcuY3JlYXRlRWxlbWVudChhKSwnYygiJythKyciKSd9KSsiKTtyZXR1cm4gbn0iKSh0LGIuZnJhZyl9ZnVuY3Rpb24gaihhKXthfHwoYT1iKTt2YXIgZD1mKGEpO3JldHVybiF0LnNoaXZDU1N8fGt8fGQuaGFzQ1NTfHwoZC5oYXNDU1M9ISFjKGEsImFydGljbGUsYXNpZGUsZGlhbG9nLGZpZ2NhcHRpb24sZmlndXJlLGZvb3RlcixoZWFkZXIsaGdyb3VwLG1haW4sbmF2LHNlY3Rpb257ZGlzcGxheTpibG9ja31tYXJre2JhY2tncm91bmQ6I0ZGMDtjb2xvcjojMDAwfXRlbXBsYXRle2Rpc3BsYXk6bm9uZX0iKSksbHx8aShhLGQpLGF9dmFyIGssbCxtPSIzLjcuMiIsbj1hLmh0bWw1fHx7fSxvPS9ePHxeKD86YnV0dG9ufG1hcHxzZWxlY3R8dGV4dGFyZWF8b2JqZWN0fGlmcmFtZXxvcHRpb258b3B0Z3JvdXApJC9pLHA9L14oPzphfGJ8Y29kZXxkaXZ8ZmllbGRzZXR8aDF8aDJ8aDN8aDR8aDV8aDZ8aXxsYWJlbHxsaXxvbHxwfHF8c3BhbnxzdHJvbmd8c3R5bGV8dGFibGV8dGJvZHl8dGR8dGh8dHJ8dWwpJC9pLHE9Il9odG1sNXNoaXYiLHI9MCxzPXt9OyFmdW5jdGlvbigpe3RyeXt2YXIgYT1iLmNyZWF0ZUVsZW1lbnQoImEiKTthLmlubmVySFRNTD0iPHh5ej48L3h5ej4iLGs9ImhpZGRlbiJpbiBhLGw9MT09YS5jaGlsZE5vZGVzLmxlbmd0aHx8ZnVuY3Rpb24oKXtiLmNyZWF0ZUVsZW1lbnQoImEiKTt2YXIgYT1iLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIGEuY2xvbmVOb2RlfHwidW5kZWZpbmVkIj09dHlwZW9mIGEuY3JlYXRlRG9jdW1lbnRGcmFnbWVudHx8InVuZGVmaW5lZCI9PXR5cGVvZiBhLmNyZWF0ZUVsZW1lbnR9KCl9Y2F0Y2goYyl7az0hMCxsPSEwfX0oKTt2YXIgdD17ZWxlbWVudHM6bi5lbGVtZW50c3x8ImFiYnIgYXJ0aWNsZSBhc2lkZSBhdWRpbyBiZGkgY2FudmFzIGRhdGEgZGF0YWxpc3QgZGV0YWlscyBkaWFsb2cgZmlnY2FwdGlvbiBmaWd1cmUgZm9vdGVyIGhlYWRlciBoZ3JvdXAgbWFpbiBtYXJrIG1ldGVyIG5hdiBvdXRwdXQgcGljdHVyZSBwcm9ncmVzcyBzZWN0aW9uIHN1bW1hcnkgdGVtcGxhdGUgdGltZSB2aWRlbyIsdmVyc2lvbjptLHNoaXZDU1M6bi5zaGl2Q1NTIT09ITEsc3VwcG9ydHNVbmtub3duRWxlbWVudHM6bCxzaGl2TWV0aG9kczpuLnNoaXZNZXRob2RzIT09ITEsdHlwZToiZGVmYXVsdCIsc2hpdkRvY3VtZW50OmosY3JlYXRlRWxlbWVudDpnLGNyZWF0ZURvY3VtZW50RnJhZ21lbnQ6aCxhZGRFbGVtZW50czplfTthLmh0bWw1PXQsaihiKX0odGhpcyxkb2N1bWVudCk7Cn07Cg=="></script>
<script src="data:application/x-javascript;base64,LyohIFJlc3BvbmQuanMgdjEuNC4yOiBtaW4vbWF4LXdpZHRoIG1lZGlhIHF1ZXJ5IHBvbHlmaWxsICogQ29weXJpZ2h0IDIwMTMgU2NvdHQgSmVobAogKiBMaWNlbnNlZCB1bmRlciBodHRwczovL2dpdGh1Yi5jb20vc2NvdHRqZWhsL1Jlc3BvbmQvYmxvYi9tYXN0ZXIvTElDRU5TRS1NSVQKICogICovCgppZiAoISF3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgiTVNJRSA4IikpIHsKIWZ1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjthLm1hdGNoTWVkaWE9YS5tYXRjaE1lZGlhfHxmdW5jdGlvbihhKXt2YXIgYixjPWEuZG9jdW1lbnRFbGVtZW50LGQ9Yy5maXJzdEVsZW1lbnRDaGlsZHx8Yy5maXJzdENoaWxkLGU9YS5jcmVhdGVFbGVtZW50KCJib2R5IiksZj1hLmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBmLmlkPSJtcS10ZXN0LTEiLGYuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7dG9wOi0xMDBlbSIsZS5zdHlsZS5iYWNrZ3JvdW5kPSJub25lIixlLmFwcGVuZENoaWxkKGYpLGZ1bmN0aW9uKGEpe3JldHVybiBmLmlubmVySFRNTD0nJnNoeTs8c3R5bGUgbWVkaWE9IicrYSsnIj4gI21xLXRlc3QtMSB7IHdpZHRoOiA0MnB4OyB9PC9zdHlsZT4nLGMuaW5zZXJ0QmVmb3JlKGUsZCksYj00Mj09PWYub2Zmc2V0V2lkdGgsYy5yZW1vdmVDaGlsZChlKSx7bWF0Y2hlczpiLG1lZGlhOmF9fX0oYS5kb2N1bWVudCl9KHRoaXMpLGZ1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKCl7dSghMCl9dmFyIGM9e307YS5yZXNwb25kPWMsYy51cGRhdGU9ZnVuY3Rpb24oKXt9O3ZhciBkPVtdLGU9ZnVuY3Rpb24oKXt2YXIgYj0hMTt0cnl7Yj1uZXcgYS5YTUxIdHRwUmVxdWVzdH1jYXRjaChjKXtiPW5ldyBhLkFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxIVFRQIil9cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGJ9fSgpLGY9ZnVuY3Rpb24oYSxiKXt2YXIgYz1lKCk7YyYmKGMub3BlbigiR0VUIixhLCEwKSxjLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpezQhPT1jLnJlYWR5U3RhdGV8fDIwMCE9PWMuc3RhdHVzJiYzMDQhPT1jLnN0YXR1c3x8YihjLnJlc3BvbnNlVGV4dCl9LDQhPT1jLnJlYWR5U3RhdGUmJmMuc2VuZChudWxsKSl9O2lmKGMuYWpheD1mLGMucXVldWU9ZCxjLnJlZ2V4PXttZWRpYTovQG1lZGlhW15ce10rXHsoW15ce1x9XSpce1teXH1ce10qXH0pKy9naSxrZXlmcmFtZXM6L0AoPzpcLSg/Om98bW96fHdlYmtpdClcLSk/a2V5ZnJhbWVzW15ce10rXHsoPzpbXlx7XH1dKlx7W15cfVx7XSpcfSkrW15cfV0qXH0vZ2ksdXJsczovKHVybFwoKVsnIl0/KFteXC9cKSciXVteOlwpJyJdKylbJyJdPyhcKSkvZyxmaW5kU3R5bGVzOi9AbWVkaWEgKihbXlx7XSspXHsoW1xTXHNdKz8pJC8sb25seTovKG9ubHlccyspPyhbYS16QS1aXSspXHM/LyxtaW53Oi9cKFtcc10qbWluXC13aWR0aFxzKjpbXHNdKihbXHNdKlswLTlcLl0rKShweHxlbSlbXHNdKlwpLyxtYXh3Oi9cKFtcc10qbWF4XC13aWR0aFxzKjpbXHNdKihbXHNdKlswLTlcLl0rKShweHxlbSlbXHNdKlwpL30sYy5tZWRpYVF1ZXJpZXNTdXBwb3J0ZWQ9YS5tYXRjaE1lZGlhJiZudWxsIT09YS5tYXRjaE1lZGlhKCJvbmx5IGFsbCIpJiZhLm1hdGNoTWVkaWEoIm9ubHkgYWxsIikubWF0Y2hlcywhYy5tZWRpYVF1ZXJpZXNTdXBwb3J0ZWQpe3ZhciBnLGgsaSxqPWEuZG9jdW1lbnQsaz1qLmRvY3VtZW50RWxlbWVudCxsPVtdLG09W10sbj1bXSxvPXt9LHA9MzAscT1qLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fGsscj1qLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJiYXNlIilbMF0scz1xLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsaW5rIiksdD1mdW5jdGlvbigpe3ZhciBhLGI9ai5jcmVhdGVFbGVtZW50KCJkaXYiKSxjPWouYm9keSxkPWsuc3R5bGUuZm9udFNpemUsZT1jJiZjLnN0eWxlLmZvbnRTaXplLGY9ITE7cmV0dXJuIGIuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7Zm9udC1zaXplOjFlbTt3aWR0aDoxZW0iLGN8fChjPWY9ai5jcmVhdGVFbGVtZW50KCJib2R5IiksYy5zdHlsZS5iYWNrZ3JvdW5kPSJub25lIiksay5zdHlsZS5mb250U2l6ZT0iMTAwJSIsYy5zdHlsZS5mb250U2l6ZT0iMTAwJSIsYy5hcHBlbmRDaGlsZChiKSxmJiZrLmluc2VydEJlZm9yZShjLGsuZmlyc3RDaGlsZCksYT1iLm9mZnNldFdpZHRoLGY/ay5yZW1vdmVDaGlsZChjKTpjLnJlbW92ZUNoaWxkKGIpLGsuc3R5bGUuZm9udFNpemU9ZCxlJiYoYy5zdHlsZS5mb250U2l6ZT1lKSxhPWk9cGFyc2VGbG9hdChhKX0sdT1mdW5jdGlvbihiKXt2YXIgYz0iY2xpZW50V2lkdGgiLGQ9a1tjXSxlPSJDU1MxQ29tcGF0Ij09PWouY29tcGF0TW9kZSYmZHx8ai5ib2R5W2NdfHxkLGY9e30sbz1zW3MubGVuZ3RoLTFdLHI9KG5ldyBEYXRlKS5nZXRUaW1lKCk7aWYoYiYmZyYmcD5yLWcpcmV0dXJuIGEuY2xlYXJUaW1lb3V0KGgpLGg9YS5zZXRUaW1lb3V0KHUscCksdm9pZCAwO2c9cjtmb3IodmFyIHYgaW4gbClpZihsLmhhc093blByb3BlcnR5KHYpKXt2YXIgdz1sW3ZdLHg9dy5taW53LHk9dy5tYXh3LHo9bnVsbD09PXgsQT1udWxsPT09eSxCPSJlbSI7eCYmKHg9cGFyc2VGbG9hdCh4KSooeC5pbmRleE9mKEIpPi0xP2l8fHQoKToxKSkseSYmKHk9cGFyc2VGbG9hdCh5KSooeS5pbmRleE9mKEIpPi0xP2l8fHQoKToxKSksdy5oYXNxdWVyeSYmKHomJkF8fCEoenx8ZT49eCl8fCEoQXx8eT49ZSkpfHwoZlt3Lm1lZGlhXXx8KGZbdy5tZWRpYV09W10pLGZbdy5tZWRpYV0ucHVzaChtW3cucnVsZXNdKSl9Zm9yKHZhciBDIGluIG4pbi5oYXNPd25Qcm9wZXJ0eShDKSYmbltDXSYmbltDXS5wYXJlbnROb2RlPT09cSYmcS5yZW1vdmVDaGlsZChuW0NdKTtuLmxlbmd0aD0wO2Zvcih2YXIgRCBpbiBmKWlmKGYuaGFzT3duUHJvcGVydHkoRCkpe3ZhciBFPWouY3JlYXRlRWxlbWVudCgic3R5bGUiKSxGPWZbRF0uam9pbigiXG4iKTtFLnR5cGU9InRleHQvY3NzIixFLm1lZGlhPUQscS5pbnNlcnRCZWZvcmUoRSxvLm5leHRTaWJsaW5nKSxFLnN0eWxlU2hlZXQ/RS5zdHlsZVNoZWV0LmNzc1RleHQ9RjpFLmFwcGVuZENoaWxkKGouY3JlYXRlVGV4dE5vZGUoRikpLG4ucHVzaChFKX19LHY9ZnVuY3Rpb24oYSxiLGQpe3ZhciBlPWEucmVwbGFjZShjLnJlZ2V4LmtleWZyYW1lcywiIikubWF0Y2goYy5yZWdleC5tZWRpYSksZj1lJiZlLmxlbmd0aHx8MDtiPWIuc3Vic3RyaW5nKDAsYi5sYXN0SW5kZXhPZigiLyIpKTt2YXIgZz1mdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKGMucmVnZXgudXJscywiJDEiK2IrIiQyJDMiKX0saD0hZiYmZDtiLmxlbmd0aCYmKGIrPSIvIiksaCYmKGY9MSk7Zm9yKHZhciBpPTA7Zj5pO2krKyl7dmFyIGosayxuLG87aD8oaj1kLG0ucHVzaChnKGEpKSk6KGo9ZVtpXS5tYXRjaChjLnJlZ2V4LmZpbmRTdHlsZXMpJiZSZWdFeHAuJDEsbS5wdXNoKFJlZ0V4cC4kMiYmZyhSZWdFeHAuJDIpKSksbj1qLnNwbGl0KCIsIiksbz1uLmxlbmd0aDtmb3IodmFyIHA9MDtvPnA7cCsrKWs9bltwXSxsLnB1c2goe21lZGlhOmsuc3BsaXQoIigiKVswXS5tYXRjaChjLnJlZ2V4Lm9ubHkpJiZSZWdFeHAuJDJ8fCJhbGwiLHJ1bGVzOm0ubGVuZ3RoLTEsaGFzcXVlcnk6ay5pbmRleE9mKCIoIik+LTEsbWludzprLm1hdGNoKGMucmVnZXgubWludykmJnBhcnNlRmxvYXQoUmVnRXhwLiQxKSsoUmVnRXhwLiQyfHwiIiksbWF4dzprLm1hdGNoKGMucmVnZXgubWF4dykmJnBhcnNlRmxvYXQoUmVnRXhwLiQxKSsoUmVnRXhwLiQyfHwiIil9KX11KCl9LHc9ZnVuY3Rpb24oKXtpZihkLmxlbmd0aCl7dmFyIGI9ZC5zaGlmdCgpO2YoYi5ocmVmLGZ1bmN0aW9uKGMpe3YoYyxiLmhyZWYsYi5tZWRpYSksb1tiLmhyZWZdPSEwLGEuc2V0VGltZW91dChmdW5jdGlvbigpe3coKX0sMCl9KX19LHg9ZnVuY3Rpb24oKXtmb3IodmFyIGI9MDtiPHMubGVuZ3RoO2IrKyl7dmFyIGM9c1tiXSxlPWMuaHJlZixmPWMubWVkaWEsZz1jLnJlbCYmInN0eWxlc2hlZXQiPT09Yy5yZWwudG9Mb3dlckNhc2UoKTtlJiZnJiYhb1tlXSYmKGMuc3R5bGVTaGVldCYmYy5zdHlsZVNoZWV0LnJhd0Nzc1RleHQ/KHYoYy5zdHlsZVNoZWV0LnJhd0Nzc1RleHQsZSxmKSxvW2VdPSEwKTooIS9eKFthLXpBLVo6XSpcL1wvKS8udGVzdChlKSYmIXJ8fGUucmVwbGFjZShSZWdFeHAuJDEsIiIpLnNwbGl0KCIvIilbMF09PT1hLmxvY2F0aW9uLmhvc3QpJiYoIi8vIj09PWUuc3Vic3RyaW5nKDAsMikmJihlPWEubG9jYXRpb24ucHJvdG9jb2wrZSksZC5wdXNoKHtocmVmOmUsbWVkaWE6Zn0pKSl9dygpfTt4KCksYy51cGRhdGU9eCxjLmdldEVtVmFsdWU9dCxhLmFkZEV2ZW50TGlzdGVuZXI/YS5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLGIsITEpOmEuYXR0YWNoRXZlbnQmJmEuYXR0YWNoRXZlbnQoIm9ucmVzaXplIixiKX19KHRoaXMpOwp9Ow=="></script>
<style type="text/css">
/*!
* Bootstrap v3.3.1 (http://getbootstrap.com)
* Copyright 2011-2014 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*//*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:before,:after{color:#000!important;text-shadow:none!important;background:transparent!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:hover,a:focus{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:400;line-height:1;color:#777}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=radio],input[type=checkbox]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=radio]:focus,input[type=checkbox]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date],input[type=time],input[type=datetime-local],input[type=month]{line-height:34px}input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.radio input[type=radio],.radio-inline input[type=radio],.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox]{position:absolute;margin-top:4px \9;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type=radio][disabled],input[type=checkbox][disabled],input[type=radio].disabled,input[type=checkbox].disabled,fieldset[disabled] input[type=radio],fieldset[disabled] input[type=checkbox]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm,.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm,select.form-group-sm .form-control{height:30px;line-height:30px}textarea.input-sm,textarea.form-group-sm .form-control,select[multiple].input-sm,select[multiple].form-group-sm .form-control{height:auto}.input-lg,.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg,select.form-group-lg .form-control{height:46px;line-height:46px}textarea.input-lg,textarea.form-group-lg .form-control,select[multiple].input-lg,select[multiple].form-group-lg .form-control{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.3px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#333;text-decoration:none}.btn:active,.btn.active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default.focus,.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary:hover,.btn-primary:focus,.btn-primary.focus,.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success.focus,.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info.focus,.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning.focus,.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger.focus,.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#777;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none;visibility:hidden}.collapse.in{display:block;visibility:visible}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#777}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px solid}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=radio],[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=radio],.input-group-addon input[type=checkbox]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none;visibility:hidden}.tab-content>.active{display:block;visibility:visible}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important;visibility:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type=radio],.navbar-form .checkbox input[type=checkbox]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#333}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#fff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:hover,.label-default[href]:focus{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px 15px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding:48px 0}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-right:auto;margin-left:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{color:#555;text-decoration:none;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-right:15px;padding-left:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:absolute;top:0;right:0;left:0;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{min-height:16.43px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-weight:400;line-height:1.4;visibility:visible;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.42857143;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;perspective:1000}.carousel-inner>.item.next,.carousel-inner>.item.active.right{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{display:table;content:" "}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none!important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}
</style>
<script src="data:application/x-javascript;base64,KGZ1bmN0aW9uKCkgewogIC8vIElmIHdpbmRvdy5IVE1MV2lkZ2V0cyBpcyBhbHJlYWR5IGRlZmluZWQsIHRoZW4gdXNlIGl0OyBvdGhlcndpc2UgY3JlYXRlIGEKICAvLyBuZXcgb2JqZWN0LiBUaGlzIGFsbG93cyBwcmVjZWRpbmcgY29kZSB0byBzZXQgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUKICAvLyBpbml0aWFsaXphdGlvbiBwcm9jZXNzICh0aG91Z2ggbm9uZSBjdXJyZW50bHkgZXhpc3QpLgogIHdpbmRvdy5IVE1MV2lkZ2V0cyA9IHdpbmRvdy5IVE1MV2lkZ2V0cyB8fCB7fTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSB2aWV3ZXIgcGFuZS4gSWYgbm90LCB3ZSdyZSBpbiBhIHdlYiBicm93c2VyLgogIHZhciB2aWV3ZXJNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnZpZXdlck1vZGUgPQogICAgICAvXGJ2aWV3ZXJfcGFuZT0xXGIvLnRlc3Qod2luZG93LmxvY2F0aW9uKTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gU2hpbnkgbW9kZS4gSWYgbm90LCBpdCdzIGEgc3RhdGljIGRvY3VtZW50LgogIC8vIE5vdGUgdGhhdCBzdGF0aWMgd2lkZ2V0cyBjYW4gYXBwZWFyIGluIGJvdGggU2hpbnkgYW5kIHN0YXRpYyBtb2RlcywgYnV0CiAgLy8gb2J2aW91c2x5LCBTaGlueSB3aWRnZXRzIGNhbiBvbmx5IGFwcGVhciBpbiBTaGlueSBhcHBzL2RvY3VtZW50cy4KICB2YXIgc2hpbnlNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnNoaW55TW9kZSA9CiAgICAgIHR5cGVvZih3aW5kb3cuU2hpbnkpICE9PSAidW5kZWZpbmVkIiAmJiAhIXdpbmRvdy5TaGlueS5vdXRwdXRCaW5kaW5nczsKCiAgLy8gV2UgY2FuJ3QgY291bnQgb24galF1ZXJ5IGJlaW5nIGF2YWlsYWJsZSwgc28gd2UgaW1wbGVtZW50IG91ciBvd24KICAvLyB2ZXJzaW9uIGlmIG5lY2Vzc2FyeS4KICBmdW5jdGlvbiBxdWVyeVNlbGVjdG9yQWxsKHNjb3BlLCBzZWxlY3RvcikgewogICAgaWYgKHR5cGVvZihqUXVlcnkpICE9PSAidW5kZWZpbmVkIiAmJiBzY29wZSBpbnN0YW5jZW9mIGpRdWVyeSkgewogICAgICByZXR1cm4gc2NvcGUuZmluZChzZWxlY3Rvcik7CiAgICB9CiAgICBpZiAoc2NvcGUucXVlcnlTZWxlY3RvckFsbCkgewogICAgICByZXR1cm4gc2NvcGUucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBhc0FycmF5KHZhbHVlKSB7CiAgICBpZiAodmFsdWUgPT09IG51bGwpCiAgICAgIHJldHVybiBbXTsKICAgIGlmICgkLmlzQXJyYXkodmFsdWUpKQogICAgICByZXR1cm4gdmFsdWU7CiAgICByZXR1cm4gW3ZhbHVlXTsKICB9CgogIC8vIEltcGxlbWVudCBqUXVlcnkncyBleHRlbmQKICBmdW5jdGlvbiBleHRlbmQodGFyZ2V0IC8qLCAuLi4gKi8pIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDEpIHsKICAgICAgcmV0dXJuIHRhcmdldDsKICAgIH0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07CiAgICAgIGZvciAodmFyIHByb3AgaW4gc291cmNlKSB7CiAgICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkgewogICAgICAgICAgdGFyZ2V0W3Byb3BdID0gc291cmNlW3Byb3BdOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmV0dXJuIHRhcmdldDsKICB9CgogIC8vIElFOCBkb2Vzbid0IHN1cHBvcnQgQXJyYXkuZm9yRWFjaC4KICBmdW5jdGlvbiBmb3JFYWNoKHZhbHVlcywgY2FsbGJhY2ssIHRoaXNBcmcpIHsKICAgIGlmICh2YWx1ZXMuZm9yRWFjaCkgewogICAgICB2YWx1ZXMuZm9yRWFjaChjYWxsYmFjaywgdGhpc0FyZyk7CiAgICB9IGVsc2UgewogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdmFsdWVzW2ldLCBpLCB2YWx1ZXMpOwogICAgICB9CiAgICB9CiAgfQoKICAvLyBSZXBsYWNlcyB0aGUgc3BlY2lmaWVkIG1ldGhvZCB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb2YgZnVuY1NvdXJjZS4KICAvLwogIC8vIE5vdGUgdGhhdCBmdW5jU291cmNlIHNob3VsZCBub3QgQkUgdGhlIG5ldyBtZXRob2QsIGl0IHNob3VsZCBiZSBhIGZ1bmN0aW9uCiAgLy8gdGhhdCBSRVRVUk5TIHRoZSBuZXcgbWV0aG9kLiBmdW5jU291cmNlIHJlY2VpdmVzIGEgc2luZ2xlIGFyZ3VtZW50IHRoYXQgaXMKICAvLyB0aGUgb3ZlcnJpZGRlbiBtZXRob2QsIGl0IGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbmV3IG1ldGhvZC4gVGhlIG92ZXJyaWRkZW4KICAvLyBtZXRob2QgY2FuIGJlIGNhbGxlZCBsaWtlIGEgcmVndWxhciBmdW5jdGlvbiwgaXQgaGFzIHRoZSB0YXJnZXQgcGVybWFuZW50bHkKICAvLyBib3VuZCB0byBpdCBzbyAidGhpcyIgd2lsbCB3b3JrIGNvcnJlY3RseS4KICBmdW5jdGlvbiBvdmVycmlkZU1ldGhvZCh0YXJnZXQsIG1ldGhvZE5hbWUsIGZ1bmNTb3VyY2UpIHsKICAgIHZhciBzdXBlckZ1bmMgPSB0YXJnZXRbbWV0aG9kTmFtZV0gfHwgZnVuY3Rpb24oKSB7fTsKICAgIHZhciBzdXBlckZ1bmNCb3VuZCA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc3VwZXJGdW5jLmFwcGx5KHRhcmdldCwgYXJndW1lbnRzKTsKICAgIH07CiAgICB0YXJnZXRbbWV0aG9kTmFtZV0gPSBmdW5jU291cmNlKHN1cGVyRnVuY0JvdW5kKTsKICB9CgogIC8vIEltcGxlbWVudCBhIHZhZ3VlIGZhY3NpbWlsaWUgb2YgalF1ZXJ5J3MgZGF0YSBtZXRob2QKICBmdW5jdGlvbiBlbGVtZW50RGF0YShlbCwgbmFtZSwgdmFsdWUpIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDIpIHsKICAgICAgcmV0dXJuIGVsWyJodG1sd2lkZ2V0X2RhdGFfIiArIG5hbWVdOwogICAgfSBlbHNlIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDMpIHsKICAgICAgZWxbImh0bWx3aWRnZXRfZGF0YV8iICsgbmFtZV0gPSB2YWx1ZTsKICAgICAgcmV0dXJuIGVsOwogICAgfSBlbHNlIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKCJXcm9uZyBudW1iZXIgb2YgYXJndW1lbnRzIGZvciBlbGVtZW50RGF0YTogIiArCiAgICAgICAgYXJndW1lbnRzLmxlbmd0aCk7CiAgICB9CiAgfQoKICAvLyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzM0NDYxNzAvZXNjYXBlLXN0cmluZy1mb3ItdXNlLWluLWphdmFzY3JpcHQtcmVnZXgKICBmdW5jdGlvbiBlc2NhcGVSZWdFeHAoc3RyKSB7CiAgICByZXR1cm4gc3RyLnJlcGxhY2UoL1tcLVxbXF1cL1x7XH1cKFwpXCpcK1w/XC5cXFxeXCRcfF0vZywgIlxcJCYiKTsKICB9CgogIGZ1bmN0aW9uIGhhc0NsYXNzKGVsLCBjbGFzc05hbWUpIHsKICAgIHZhciByZSA9IG5ldyBSZWdFeHAoIlxcYiIgKyBlc2NhcGVSZWdFeHAoY2xhc3NOYW1lKSArICJcXGIiKTsKICAgIHJldHVybiByZS50ZXN0KGVsLmNsYXNzTmFtZSk7CiAgfQoKICAvLyBlbGVtZW50cyAtIGFycmF5IChvciBhcnJheS1saWtlIG9iamVjdCkgb2YgSFRNTCBlbGVtZW50cwogIC8vIGNsYXNzTmFtZSAtIGNsYXNzIG5hbWUgdG8gdGVzdCBmb3IKICAvLyBpbmNsdWRlIC0gaWYgdHJ1ZSwgb25seSByZXR1cm4gZWxlbWVudHMgd2l0aCBnaXZlbiBjbGFzc05hbWU7CiAgLy8gICBpZiBmYWxzZSwgb25seSByZXR1cm4gZWxlbWVudHMgKndpdGhvdXQqIGdpdmVuIGNsYXNzTmFtZQogIGZ1bmN0aW9uIGZpbHRlckJ5Q2xhc3MoZWxlbWVudHMsIGNsYXNzTmFtZSwgaW5jbHVkZSkgewogICAgdmFyIHJlc3VsdHMgPSBbXTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpKyspIHsKICAgICAgaWYgKGhhc0NsYXNzKGVsZW1lbnRzW2ldLCBjbGFzc05hbWUpID09IGluY2x1ZGUpCiAgICAgICAgcmVzdWx0cy5wdXNoKGVsZW1lbnRzW2ldKTsKICAgIH0KICAgIHJldHVybiByZXN1bHRzOwogIH0KCiAgZnVuY3Rpb24gb24ob2JqLCBldmVudE5hbWUsIGZ1bmMpIHsKICAgIGlmIChvYmouYWRkRXZlbnRMaXN0ZW5lcikgewogICAgICBvYmouYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGZ1bmMsIGZhbHNlKTsKICAgIH0gZWxzZSBpZiAob2JqLmF0dGFjaEV2ZW50KSB7CiAgICAgIG9iai5hdHRhY2hFdmVudChldmVudE5hbWUsIGZ1bmMpOwogICAgfQogIH0KCiAgZnVuY3Rpb24gb2ZmKG9iaiwgZXZlbnROYW1lLCBmdW5jKSB7CiAgICBpZiAob2JqLnJlbW92ZUV2ZW50TGlzdGVuZXIpCiAgICAgIG9iai5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgZnVuYywgZmFsc2UpOwogICAgZWxzZSBpZiAob2JqLmRldGFjaEV2ZW50KSB7CiAgICAgIG9iai5kZXRhY2hFdmVudChldmVudE5hbWUsIGZ1bmMpOwogICAgfQogIH0KCiAgLy8gVHJhbnNsYXRlIGFycmF5IG9mIHZhbHVlcyB0byB0b3AvcmlnaHQvYm90dG9tL2xlZnQsIGFzIHVzdWFsIHdpdGgKICAvLyB0aGUgInBhZGRpbmciIENTUyBwcm9wZXJ0eQogIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9wYWRkaW5nCiAgZnVuY3Rpb24gdW5wYWNrUGFkZGluZyh2YWx1ZSkgewogICAgaWYgKHR5cGVvZih2YWx1ZSkgPT09ICJudW1iZXIiKQogICAgICB2YWx1ZSA9IFt2YWx1ZV07CiAgICBpZiAodmFsdWUubGVuZ3RoID09PSAxKSB7CiAgICAgIHJldHVybiB7dG9wOiB2YWx1ZVswXSwgcmlnaHQ6IHZhbHVlWzBdLCBib3R0b206IHZhbHVlWzBdLCBsZWZ0OiB2YWx1ZVswXX07CiAgICB9CiAgICBpZiAodmFsdWUubGVuZ3RoID09PSAyKSB7CiAgICAgIHJldHVybiB7dG9wOiB2YWx1ZVswXSwgcmlnaHQ6IHZhbHVlWzFdLCBib3R0b206IHZhbHVlWzBdLCBsZWZ0OiB2YWx1ZVsxXX07CiAgICB9CiAgICBpZiAodmFsdWUubGVuZ3RoID09PSAzKSB7CiAgICAgIHJldHVybiB7dG9wOiB2YWx1ZVswXSwgcmlnaHQ6IHZhbHVlWzFdLCBib3R0b206IHZhbHVlWzJdLCBsZWZ0OiB2YWx1ZVsxXX07CiAgICB9CiAgICBpZiAodmFsdWUubGVuZ3RoID09PSA0KSB7CiAgICAgIHJldHVybiB7dG9wOiB2YWx1ZVswXSwgcmlnaHQ6IHZhbHVlWzFdLCBib3R0b206IHZhbHVlWzJdLCBsZWZ0OiB2YWx1ZVszXX07CiAgICB9CiAgfQoKICAvLyBDb252ZXJ0IGFuIHVucGFja2VkIHBhZGRpbmcgb2JqZWN0IHRvIGEgQ1NTIHZhbHVlCiAgZnVuY3Rpb24gcGFkZGluZ1RvQ3NzKHBhZGRpbmdPYmopIHsKICAgIHJldHVybiBwYWRkaW5nT2JqLnRvcCArICJweCAiICsgcGFkZGluZ09iai5yaWdodCArICJweCAiICsgcGFkZGluZ09iai5ib3R0b20gKyAicHggIiArIHBhZGRpbmdPYmoubGVmdCArICJweCI7CiAgfQoKICAvLyBNYWtlcyBhIG51bWJlciBzdWl0YWJsZSBmb3IgQ1NTCiAgZnVuY3Rpb24gcHgoeCkgewogICAgaWYgKHR5cGVvZih4KSA9PT0gIm51bWJlciIpCiAgICAgIHJldHVybiB4ICsgInB4IjsKICAgIGVsc2UKICAgICAgcmV0dXJuIHg7CiAgfQoKICAvLyBSZXRyaWV2ZXMgcnVudGltZSB3aWRnZXQgc2l6aW5nIGluZm9ybWF0aW9uIGZvciBhbiBlbGVtZW50LgogIC8vIFRoZSByZXR1cm4gdmFsdWUgaXMgZWl0aGVyIG51bGwsIG9yIGFuIG9iamVjdCB3aXRoIGZpbGwsIHBhZGRpbmcsCiAgLy8gZGVmYXVsdFdpZHRoLCBkZWZhdWx0SGVpZ2h0IGZpZWxkcy4KICBmdW5jdGlvbiBzaXppbmdQb2xpY3koZWwpIHsKICAgIHZhciBzaXppbmdFbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInNjcmlwdFtkYXRhLWZvcj0nIiArIGVsLmlkICsgIiddW3R5cGU9J2FwcGxpY2F0aW9uL2h0bWx3aWRnZXQtc2l6aW5nJ10iKTsKICAgIGlmICghc2l6aW5nRWwpCiAgICAgIHJldHVybiBudWxsOwogICAgdmFyIHNwID0gSlNPTi5wYXJzZShzaXppbmdFbC50ZXh0Q29udGVudCB8fCBzaXppbmdFbC50ZXh0IHx8ICJ7fSIpOwogICAgaWYgKHZpZXdlck1vZGUpIHsKICAgICAgcmV0dXJuIHNwLnZpZXdlcjsKICAgIH0gZWxzZSB7CiAgICAgIHJldHVybiBzcC5icm93c2VyOwogICAgfQogIH0KCiAgZnVuY3Rpb24gaW5pdFNpemluZyhlbCkgewogICAgdmFyIHNpemluZyA9IHNpemluZ1BvbGljeShlbCk7CiAgICBpZiAoIXNpemluZykKICAgICAgcmV0dXJuOwoKICAgIHZhciBjZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaHRtbHdpZGdldF9jb250YWluZXIiKTsKICAgIGlmICghY2VsKQogICAgICByZXR1cm47CgogICAgaWYgKHR5cGVvZihzaXppbmcucGFkZGluZykgIT09ICJ1bmRlZmluZWQiKSB7CiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUubWFyZ2luID0gIjAiOwogICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmcgPSBwYWRkaW5nVG9Dc3ModW5wYWNrUGFkZGluZyhzaXppbmcucGFkZGluZykpOwogICAgfQoKICAgIGlmIChzaXppbmcuZmlsbCkgewogICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gImhpZGRlbiI7CiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAiMTAwJSI7CiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjEwMCUiOwogICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUud2lkdGggPSAiMTAwJSI7CiAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5oZWlnaHQgPSAiMTAwJSI7CiAgICAgIGlmIChjZWwpIHsKICAgICAgICBjZWwuc3R5bGUucG9zaXRpb24gPSAiYWJzb2x1dGUiOwogICAgICAgIHZhciBwYWQgPSB1bnBhY2tQYWRkaW5nKHNpemluZy5wYWRkaW5nKTsKICAgICAgICBjZWwuc3R5bGUudG9wID0gcGFkLnRvcCArICJweCI7CiAgICAgICAgY2VsLnN0eWxlLnJpZ2h0ID0gcGFkLnJpZ2h0ICsgInB4IjsKICAgICAgICBjZWwuc3R5bGUuYm90dG9tID0gcGFkLmJvdHRvbSArICJweCI7CiAgICAgICAgY2VsLnN0eWxlLmxlZnQgPSBwYWQubGVmdCArICJweCI7CiAgICAgICAgZWwuc3R5bGUud2lkdGggPSAiMTAwJSI7CiAgICAgICAgZWwuc3R5bGUuaGVpZ2h0ID0gIjEwMCUiOwogICAgICB9CgogICAgICByZXR1cm4gewogICAgICAgIGdldFdpZHRoOiBmdW5jdGlvbigpIHsgcmV0dXJuIGNlbC5vZmZzZXRXaWR0aDsgfSwKICAgICAgICBnZXRIZWlnaHQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gY2VsLm9mZnNldEhlaWdodDsgfQogICAgICB9OwoKICAgIH0gZWxzZSB7CiAgICAgIGVsLnN0eWxlLndpZHRoID0gcHgoc2l6aW5nLndpZHRoKTsKICAgICAgZWwuc3R5bGUuaGVpZ2h0ID0gcHgoc2l6aW5nLmhlaWdodCk7CgogICAgICByZXR1cm4gewogICAgICAgIGdldFdpZHRoOiBmdW5jdGlvbigpIHsgcmV0dXJuIGVsLm9mZnNldFdpZHRoOyB9LAogICAgICAgIGdldEhlaWdodDogZnVuY3Rpb24oKSB7IHJldHVybiBlbC5vZmZzZXRIZWlnaHQ7IH0KICAgICAgfTsKICAgIH0KICB9CgogIC8vIERlZmF1bHQgaW1wbGVtZW50YXRpb25zIGZvciBtZXRob2RzCiAgdmFyIGRlZmF1bHRzID0gewogICAgZmluZDogZnVuY3Rpb24oc2NvcGUpIHsKICAgICAgcmV0dXJuIHF1ZXJ5U2VsZWN0b3JBbGwoc2NvcGUsICIuIiArIHRoaXMubmFtZSk7CiAgICB9LAogICAgcmVuZGVyRXJyb3I6IGZ1bmN0aW9uKGVsLCBlcnIpIHsKICAgICAgdmFyICRlbCA9ICQoZWwpOwoKICAgICAgdGhpcy5jbGVhckVycm9yKGVsKTsKCiAgICAgIC8vIEFkZCBhbGwgdGhlc2UgZXJyb3IgY2xhc3NlcywgYXMgU2hpbnkgZG9lcwogICAgICB2YXIgZXJyQ2xhc3MgPSAic2hpbnktb3V0cHV0LWVycm9yIjsKICAgICAgaWYgKGVyci50eXBlICE9PSBudWxsKSB7CiAgICAgICAgLy8gdXNlIHRoZSBjbGFzc2VzIG9mIHRoZSBlcnJvciBjb25kaXRpb24gYXMgQ1NTIGNsYXNzIG5hbWVzCiAgICAgICAgZXJyQ2xhc3MgPSBlcnJDbGFzcyArICIgIiArICQubWFwKGFzQXJyYXkoZXJyLnR5cGUpLCBmdW5jdGlvbih0eXBlKSB7CiAgICAgICAgICByZXR1cm4gZXJyQ2xhc3MgKyAiLSIgKyB0eXBlOwogICAgICAgIH0pLmpvaW4oIiAiKTsKICAgICAgfQogICAgICBlcnJDbGFzcyA9IGVyckNsYXNzICsgIiBodG1sd2lkZ2V0cy1lcnJvciI7CgogICAgICAvLyBJcyBlbCBpbmxpbmUgb3IgYmxvY2s/IElmIGlubGluZSBvciBpbmxpbmUtYmxvY2ssIGp1c3QgZGlzcGxheTpub25lIGl0CiAgICAgIC8vIGFuZCBhZGQgYW4gaW5saW5lIGVycm9yLgogICAgICB2YXIgZGlzcGxheSA9ICRlbC5jc3MoImRpc3BsYXkiKTsKICAgICAgJGVsLmRhdGEoInJlc3RvcmUtZGlzcGxheS1tb2RlIiwgZGlzcGxheSk7CgogICAgICBpZiAoZGlzcGxheSA9PT0gImlubGluZSIgfHwgZGlzcGxheSA9PT0gImlubGluZS1ibG9jayIpIHsKICAgICAgICAkZWwuaGlkZSgpOwogICAgICAgIGlmIChlcnIubWVzc2FnZSAhPT0gIiIpIHsKICAgICAgICAgIHZhciBlcnJvclNwYW4gPSAkKCI8c3Bhbj4iKS5hZGRDbGFzcyhlcnJDbGFzcyk7CiAgICAgICAgICBlcnJvclNwYW4udGV4dChlcnIubWVzc2FnZSk7CiAgICAgICAgICAkZWwuYWZ0ZXIoZXJyb3JTcGFuKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAoZGlzcGxheSA9PT0gImJsb2NrIikgewogICAgICAgIC8vIElmIGJsb2NrLCBhZGQgYW4gZXJyb3IganVzdCBhZnRlciB0aGUgZWwsIHNldCB2aXNpYmlsaXR5Om5vbmUgb24gdGhlCiAgICAgICAgLy8gZWwsIGFuZCBwb3NpdGlvbiB0aGUgZXJyb3IgdG8gYmUgb24gdG9wIG9mIHRoZSBlbC4KICAgICAgICAvLyBNYXJrIGl0IHdpdGggYSB1bmlxdWUgSUQgYW5kIENTUyBjbGFzcyBzbyB3ZSBjYW4gcmVtb3ZlIGl0IGxhdGVyLgogICAgICAgICRlbC5jc3MoInZpc2liaWxpdHkiLCAiaGlkZGVuIik7CiAgICAgICAgaWYgKGVyci5tZXNzYWdlICE9PSAiIikgewogICAgICAgICAgdmFyIGVycm9yRGl2ID0gJCgiPGRpdj4iKS5hZGRDbGFzcyhlcnJDbGFzcykuY3NzKCJwb3NpdGlvbiIsICJhYnNvbHV0ZSIpCiAgICAgICAgICAgIC5jc3MoInRvcCIsIGVsLm9mZnNldFRvcCkKICAgICAgICAgICAgLmNzcygibGVmdCIsIGVsLm9mZnNldExlZnQpCiAgICAgICAgICAgIC8vIHNldHRpbmcgd2lkdGggY2FuIHB1c2ggb3V0IHRoZSBwYWdlIHNpemUsIGZvcmNpbmcgb3RoZXJ3aXNlCiAgICAgICAgICAgIC8vIHVubmVjZXNzYXJ5IHNjcm9sbGJhcnMgdG8gYXBwZWFyIGFuZCBtYWtpbmcgaXQgaW1wb3NzaWJsZSBmb3IKICAgICAgICAgICAgLy8gdGhlIGVsZW1lbnQgdG8gc2hyaW5rOyBzbyB1c2UgbWF4LXdpZHRoIGluc3RlYWQKICAgICAgICAgICAgLmNzcygibWF4V2lkdGgiLCBlbC5vZmZzZXRXaWR0aCkKICAgICAgICAgICAgLmNzcygiaGVpZ2h0IiwgZWwub2Zmc2V0SGVpZ2h0KTsKICAgICAgICAgIGVycm9yRGl2LnRleHQoZXJyLm1lc3NhZ2UpOwogICAgICAgICAgJGVsLmFmdGVyKGVycm9yRGl2KTsKCiAgICAgICAgICAvLyBSZWFsbHkgZHVtYiB3YXkgdG8ga2VlcCB0aGUgc2l6ZS9wb3NpdGlvbiBvZiB0aGUgZXJyb3IgaW4gc3luYyB3aXRoCiAgICAgICAgICAvLyB0aGUgcGFyZW50IGVsZW1lbnQgYXMgdGhlIHdpbmRvdyBpcyByZXNpemVkIG9yIHdoYXRldmVyLgogICAgICAgICAgdmFyIGludElkID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlmICghZXJyb3JEaXZbMF0ucGFyZW50RWxlbWVudCkgewogICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50SWQpOwogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBlcnJvckRpdgogICAgICAgICAgICAgIC5jc3MoInRvcCIsIGVsLm9mZnNldFRvcCkKICAgICAgICAgICAgICAuY3NzKCJsZWZ0IiwgZWwub2Zmc2V0TGVmdCkKICAgICAgICAgICAgICAuY3NzKCJtYXhXaWR0aCIsIGVsLm9mZnNldFdpZHRoKQogICAgICAgICAgICAgIC5jc3MoImhlaWdodCIsIGVsLm9mZnNldEhlaWdodCk7CiAgICAgICAgICB9LCA1MDApOwogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIGNsZWFyRXJyb3I6IGZ1bmN0aW9uKGVsKSB7CiAgICAgIHZhciAkZWwgPSAkKGVsKTsKICAgICAgdmFyIGRpc3BsYXkgPSAkZWwuZGF0YSgicmVzdG9yZS1kaXNwbGF5LW1vZGUiKTsKICAgICAgJGVsLmRhdGEoInJlc3RvcmUtZGlzcGxheS1tb2RlIiwgbnVsbCk7CgogICAgICBpZiAoZGlzcGxheSA9PT0gImlubGluZSIgfHwgZGlzcGxheSA9PT0gImlubGluZS1ibG9jayIpIHsKICAgICAgICBpZiAoZGlzcGxheSkKICAgICAgICAgICRlbC5jc3MoImRpc3BsYXkiLCBkaXNwbGF5KTsKICAgICAgICAkKGVsLm5leHRTaWJsaW5nKS5maWx0ZXIoIi5odG1sd2lkZ2V0cy1lcnJvciIpLnJlbW92ZSgpOwogICAgICB9IGVsc2UgaWYgKGRpc3BsYXkgPT09ICJibG9jayIpewogICAgICAgICRlbC5jc3MoInZpc2liaWxpdHkiLCAiaW5oZXJpdCIpOwogICAgICAgICQoZWwubmV4dFNpYmxpbmcpLmZpbHRlcigiLmh0bWx3aWRnZXRzLWVycm9yIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0sCiAgICBzaXppbmc6IHt9CiAgfTsKCiAgLy8gQ2FsbGVkIGJ5IHdpZGdldCBiaW5kaW5ncyB0byByZWdpc3RlciBhIG5ldyB0eXBlIG9mIHdpZGdldC4gVGhlIGRlZmluaXRpb24KICAvLyBvYmplY3QgY2FuIGNvbnRhaW4gdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOgogIC8vIC0gbmFtZSAocmVxdWlyZWQpIC0gQSBzdHJpbmcgaW5kaWNhdGluZyB0aGUgYmluZGluZyBuYW1lLCB3aGljaCB3aWxsIGJlCiAgLy8gICB1c2VkIGJ5IGRlZmF1bHQgYXMgdGhlIENTUyBjbGFzc25hbWUgdG8gbG9vayBmb3IuCiAgLy8gLSBpbml0aWFsaXplIChvcHRpb25hbCkgLSBBIGZ1bmN0aW9uKGVsKSB0aGF0IHdpbGwgYmUgY2FsbGVkIG9uY2UgcGVyCiAgLy8gICB3aWRnZXQgZWxlbWVudDsgaWYgYSB2YWx1ZSBpcyByZXR1cm5lZCwgaXQgd2lsbCBiZSBwYXNzZWQgYXMgdGhlIHRoaXJkCiAgLy8gICB2YWx1ZSB0byByZW5kZXJWYWx1ZS4KICAvLyAtIHJlbmRlclZhbHVlIChyZXF1aXJlZCkgLSBBIGZ1bmN0aW9uKGVsLCBkYXRhLCBpbml0VmFsdWUpIHRoYXQgd2lsbCBiZQogIC8vICAgY2FsbGVkIHdpdGggZGF0YS4gU3RhdGljIGNvbnRleHRzIHdpbGwgY2F1c2UgdGhpcyB0byBiZSBjYWxsZWQgb25jZSBwZXIKICAvLyAgIGVsZW1lbnQ7IFNoaW55IGFwcHMgd2lsbCBjYXVzZSB0aGlzIHRvIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyBwZXIKICAvLyAgIGVsZW1lbnQsIGFzIHRoZSBkYXRhIGNoYW5nZXMuCiAgd2luZG93LkhUTUxXaWRnZXRzLndpZGdldCA9IGZ1bmN0aW9uKGRlZmluaXRpb24pIHsKICAgIGlmICghZGVmaW5pdGlvbi5uYW1lKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcigiV2lkZ2V0IG11c3QgaGF2ZSBhIG5hbWUiKTsKICAgIH0KICAgIGlmICghZGVmaW5pdGlvbi50eXBlKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcigiV2lkZ2V0IG11c3QgaGF2ZSBhIHR5cGUiKTsKICAgIH0KICAgIC8vIEN1cnJlbnRseSB3ZSBvbmx5IHN1cHBvcnQgb3V0cHV0IHdpZGdldHMKICAgIGlmIChkZWZpbml0aW9uLnR5cGUgIT09ICJvdXRwdXQiKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHdpZGdldCB0eXBlICciICsgZGVmaW5pdGlvbi50eXBlICsgIiciKTsKICAgIH0KICAgIC8vIFRPRE86IFZlcmlmeSB0aGF0IC5uYW1lIGlzIGEgdmFsaWQgQ1NTIGNsYXNzbmFtZQogICAgaWYgKCFkZWZpbml0aW9uLnJlbmRlclZhbHVlKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcigiV2lkZ2V0IG11c3QgaGF2ZSBhIHJlbmRlclZhbHVlIGZ1bmN0aW9uIik7CiAgICB9CgogICAgLy8gRm9yIHN0YXRpYyByZW5kZXJpbmcgKG5vbi1TaGlueSksIHVzZSBhIHNpbXBsZSB3aWRnZXQgcmVnaXN0cmF0aW9uCiAgICAvLyBzY2hlbWUuIFdlIGFsc28gdXNlIHRoaXMgc2NoZW1lIGZvciBTaGlueSBhcHBzL2RvY3VtZW50cyB0aGF0IGFsc28KICAgIC8vIGNvbnRhaW4gc3RhdGljIHdpZGdldHMuCiAgICB3aW5kb3cuSFRNTFdpZGdldHMud2lkZ2V0cyA9IHdpbmRvdy5IVE1MV2lkZ2V0cy53aWRnZXRzIHx8IFtdOwogICAgLy8gTWVyZ2UgZGVmYXVsdHMgaW50byB0aGUgZGVmaW5pdGlvbjsgZG9uJ3QgbXV0YXRlIHRoZSBvcmlnaW5hbCBkZWZpbml0aW9uLgogICAgdmFyIHN0YXRpY0JpbmRpbmcgPSBleHRlbmQoe30sIGRlZmF1bHRzLCBkZWZpbml0aW9uKTsKICAgIG92ZXJyaWRlTWV0aG9kKHN0YXRpY0JpbmRpbmcsICJmaW5kIiwgZnVuY3Rpb24oc3VwZXJmdW5jKSB7CiAgICAgIHJldHVybiBmdW5jdGlvbihzY29wZSkgewogICAgICAgIHZhciByZXN1bHRzID0gc3VwZXJmdW5jKHNjb3BlKTsKICAgICAgICAvLyBGaWx0ZXIgb3V0IFNoaW55IG91dHB1dHMsIHdlIG9ubHkgd2FudCB0aGUgc3RhdGljIGtpbmQKICAgICAgICByZXR1cm4gZmlsdGVyQnlDbGFzcyhyZXN1bHRzLCAiaHRtbC13aWRnZXQtb3V0cHV0IiwgZmFsc2UpOwogICAgICB9OwogICAgfSk7CiAgICB3aW5kb3cuSFRNTFdpZGdldHMud2lkZ2V0cy5wdXNoKHN0YXRpY0JpbmRpbmcpOwoKICAgIGlmIChzaGlueU1vZGUpIHsKICAgICAgLy8gU2hpbnkgaXMgcnVubmluZy4gUmVnaXN0ZXIgdGhlIGRlZmluaXRpb24gYXMgYW4gb3V0cHV0IGJpbmRpbmcuCgogICAgICAvLyBNZXJnZSBkZWZhdWx0cyBpbnRvIHRoZSBkZWZpbml0aW9uOyBkb24ndCBtdXRhdGUgdGhlIG9yaWdpbmFsIGRlZmluaXRpb24uCiAgICAgIC8vIFRoZSBiYXNlIG9iamVjdCBpcyBhIFNoaW55IG91dHB1dCBiaW5kaW5nIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gU2hpbnkgbW9kZSwKICAgICAgLy8gb3IgYW4gZW1wdHkgb2JqZWN0IGlmIHdlJ3JlIG5vdC4KICAgICAgdmFyIHNoaW55QmluZGluZyA9IGV4dGVuZChuZXcgU2hpbnkuT3V0cHV0QmluZGluZygpLCBkZWZhdWx0cywgZGVmaW5pdGlvbik7CgogICAgICAvLyBXcmFwIHJlbmRlclZhbHVlIHRvIGhhbmRsZSBpbml0aWFsaXphdGlvbiwgd2hpY2ggdW5mb3J0dW5hdGVseSBpc24ndAogICAgICAvLyBzdXBwb3J0ZWQgbmF0aXZlbHkgYnkgU2hpbnkgYXQgdGhlIHRpbWUgb2YgdGhpcyB3cml0aW5nLgoKICAgICAgLy8gTkI6IHNoaW55QmluZGluZy5pbml0aWFsaXplIG1heSBiZSB1bmRlZmluZWQsIGFzIGl0J3Mgb3B0aW9uYWwuCgogICAgICAvLyBSZW5hbWUgaW5pdGlhbGl6ZSB0byBtYWtlIHN1cmUgaXQgaXNuJ3QgY2FsbGVkIGJ5IGEgZnV0dXJlIHZlcnNpb24KICAgICAgLy8gb2YgU2hpbnkgdGhhdCBkb2VzIHN1cHBvcnQgaW5pdGlhbGl6ZSBkaXJlY3RseS4KICAgICAgc2hpbnlCaW5kaW5nLl9odG1sd2lkZ2V0c19pbml0aWFsaXplID0gc2hpbnlCaW5kaW5nLmluaXRpYWxpemU7CiAgICAgIGRlbGV0ZSBzaGlueUJpbmRpbmcuaW5pdGlhbGl6ZTsKCiAgICAgIG92ZXJyaWRlTWV0aG9kKHNoaW55QmluZGluZywgImZpbmQiLCBmdW5jdGlvbihzdXBlcmZ1bmMpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb24oc2NvcGUpIHsKCiAgICAgICAgICB2YXIgcmVzdWx0cyA9IHN1cGVyZnVuYyhzY29wZSk7CgogICAgICAgICAgLy8gT25seSByZXR1cm4gZWxlbWVudHMgdGhhdCBhcmUgU2hpbnkgb3V0cHV0cywgbm90IHN0YXRpYyBvbmVzCiAgICAgICAgICB2YXIgZHluYW1pY1Jlc3VsdHMgPSByZXN1bHRzLmZpbHRlcigiLmh0bWwtd2lkZ2V0LW91dHB1dCIpOwoKICAgICAgICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCB3aGF0ZXZlciBjYXVzZWQgU2hpbnkgdG8gdGhpbmsgdGhlcmUgbWlnaHQgYmUKICAgICAgICAgIC8vIG5ldyBkeW5hbWljIG91dHB1dHMsIGFsc28gY2F1c2VkIHRoZXJlIHRvIGJlIG5ldyBzdGF0aWMgb3V0cHV0cy4KICAgICAgICAgIC8vIFNpbmNlIHRoZXJlIG1pZ2h0IGJlIGxvdHMgb2YgZGlmZmVyZW50IGh0bWx3aWRnZXRzIGJpbmRpbmdzLCB3ZQogICAgICAgICAgLy8gc2NoZWR1bGUgZXhlY3V0aW9uIGZvciBsYXRlci0tbm8gbmVlZCB0byBzdGF0aWNSZW5kZXIgbXVsdGlwbGUKICAgICAgICAgIC8vIHRpbWVzLgogICAgICAgICAgaWYgKHJlc3VsdHMubGVuZ3RoICE9PSBkeW5hbWljUmVzdWx0cy5sZW5ndGgpCiAgICAgICAgICAgIHNjaGVkdWxlU3RhdGljUmVuZGVyKCk7CgogICAgICAgICAgcmV0dXJuIGR5bmFtaWNSZXN1bHRzOwogICAgICAgIH07CiAgICAgIH0pOwoKICAgICAgb3ZlcnJpZGVNZXRob2Qoc2hpbnlCaW5kaW5nLCAicmVuZGVyVmFsdWUiLCBmdW5jdGlvbihzdXBlcmZ1bmMpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb24oZWwsIGRhdGEpIHsKICAgICAgICAgIC8vIFJlc29sdmUgc3RyaW5ncyBtYXJrZWQgYXMgamF2YXNjcmlwdCBsaXRlcmFscyB0byBvYmplY3RzCiAgICAgICAgICBpZiAoIShkYXRhLmV2YWxzIGluc3RhbmNlb2YgQXJyYXkpKSBkYXRhLmV2YWxzID0gW2RhdGEuZXZhbHNdOwogICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGRhdGEuZXZhbHMgJiYgaSA8IGRhdGEuZXZhbHMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgd2luZG93LkhUTUxXaWRnZXRzLmV2YWx1YXRlU3RyaW5nTWVtYmVyKGRhdGEueCwgZGF0YS5ldmFsc1tpXSk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoIXRoaXMucmVuZGVyT25OdWxsVmFsdWUpIHsKICAgICAgICAgICAgaWYgKGRhdGEueCA9PT0gbnVsbCkgewogICAgICAgICAgICAgIGVsLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgZWwuc3R5bGUudmlzaWJpbGl0eSA9ICJpbmhlcml0IjsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKCFlbGVtZW50RGF0YShlbCwgImluaXRpYWxpemVkIikpIHsKICAgICAgICAgICAgaW5pdFNpemluZyhlbCk7CgogICAgICAgICAgICBlbGVtZW50RGF0YShlbCwgImluaXRpYWxpemVkIiwgdHJ1ZSk7CiAgICAgICAgICAgIGlmICh0aGlzLl9odG1sd2lkZ2V0c19pbml0aWFsaXplKSB7CiAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHRoaXMuX2h0bWx3aWRnZXRzX2luaXRpYWxpemUoZWwsIGVsLm9mZnNldFdpZHRoLAogICAgICAgICAgICAgICAgZWwub2Zmc2V0SGVpZ2h0KTsKICAgICAgICAgICAgICBlbGVtZW50RGF0YShlbCwgImluaXRfcmVzdWx0IiwgcmVzdWx0KTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgU2hpbnkucmVuZGVyRGVwZW5kZW5jaWVzKGRhdGEuZGVwcyk7CiAgICAgICAgICBzdXBlcmZ1bmMoZWwsIGRhdGEueCwgZWxlbWVudERhdGEoZWwsICJpbml0X3Jlc3VsdCIpKTsKICAgICAgICB9OwogICAgICB9KTsKCiAgICAgIG92ZXJyaWRlTWV0aG9kKHNoaW55QmluZGluZywgInJlc2l6ZSIsIGZ1bmN0aW9uKHN1cGVyZnVuYykgewogICAgICAgIHJldHVybiBmdW5jdGlvbihlbCwgd2lkdGgsIGhlaWdodCkgewogICAgICAgICAgLy8gU2hpbnkgY2FuIGNhbGwgcmVzaXplIGJlZm9yZSBpbml0aWFsaXplL3JlbmRlclZhbHVlIGhhdmUgYmVlbgogICAgICAgICAgLy8gY2FsbGVkLCB3aGljaCBkb2Vzbid0IG1ha2Ugc2Vuc2UgZm9yIHdpZGdldHMuCiAgICAgICAgICBpZiAoZWxlbWVudERhdGEoZWwsICJpbml0aWFsaXplZCIpKSB7CiAgICAgICAgICAgIHN1cGVyZnVuYyhlbCwgd2lkdGgsIGhlaWdodCwgZWxlbWVudERhdGEoZWwsICJpbml0X3Jlc3VsdCIpKTsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICB9KTsKCiAgICAgIFNoaW55Lm91dHB1dEJpbmRpbmdzLnJlZ2lzdGVyKHNoaW55QmluZGluZywgc2hpbnlCaW5kaW5nLm5hbWUpOwogICAgfQogIH07CgogIHZhciBzY2hlZHVsZVN0YXRpY1JlbmRlclRpbWVySWQgPSBudWxsOwogIGZ1bmN0aW9uIHNjaGVkdWxlU3RhdGljUmVuZGVyKCkgewogICAgaWYgKCFzY2hlZHVsZVN0YXRpY1JlbmRlclRpbWVySWQpIHsKICAgICAgc2NoZWR1bGVTdGF0aWNSZW5kZXJUaW1lcklkID0gc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICBzY2hlZHVsZVN0YXRpY1JlbmRlclRpbWVySWQgPSBudWxsOwogICAgICAgIHdpbmRvdy5IVE1MV2lkZ2V0cy5zdGF0aWNSZW5kZXIoKTsKICAgICAgfSwgMSk7CiAgICB9CiAgfQoKICAvLyBSZW5kZXIgc3RhdGljIHdpZGdldHMgYWZ0ZXIgdGhlIGRvY3VtZW50IGZpbmlzaGVzIGxvYWRpbmcKICAvLyBTdGF0aWNhbGx5IHJlbmRlciBhbGwgZWxlbWVudHMgdGhhdCBhcmUgb2YgdGhpcyB3aWRnZXQncyBjbGFzcwogIHdpbmRvdy5IVE1MV2lkZ2V0cy5zdGF0aWNSZW5kZXIgPSBmdW5jdGlvbigpIHsKICAgIHZhciBiaW5kaW5ncyA9IHdpbmRvdy5IVE1MV2lkZ2V0cy53aWRnZXRzIHx8IFtdOwogICAgZm9yRWFjaChiaW5kaW5ncywgZnVuY3Rpb24oYmluZGluZykgewogICAgICB2YXIgbWF0Y2hlcyA9IGJpbmRpbmcuZmluZChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpOwogICAgICBmb3JFYWNoKG1hdGNoZXMsIGZ1bmN0aW9uKGVsKSB7CiAgICAgICAgdmFyIHNpemVPYmogPSBpbml0U2l6aW5nKGVsLCBiaW5kaW5nKTsKCiAgICAgICAgaWYgKGhhc0NsYXNzKGVsLCAiaHRtbC13aWRnZXQtc3RhdGljLWJvdW5kIikpCiAgICAgICAgICByZXR1cm47CiAgICAgICAgZWwuY2xhc3NOYW1lID0gZWwuY2xhc3NOYW1lICsgIiBodG1sLXdpZGdldC1zdGF0aWMtYm91bmQiOwoKICAgICAgICB2YXIgaW5pdFJlc3VsdDsKICAgICAgICBpZiAoYmluZGluZy5pbml0aWFsaXplKSB7CiAgICAgICAgICBpbml0UmVzdWx0ID0gYmluZGluZy5pbml0aWFsaXplKGVsLAogICAgICAgICAgICBzaXplT2JqID8gc2l6ZU9iai5nZXRXaWR0aCgpIDogZWwub2Zmc2V0V2lkdGgsCiAgICAgICAgICAgIHNpemVPYmogPyBzaXplT2JqLmdldEhlaWdodCgpIDogZWwub2Zmc2V0SGVpZ2h0CiAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgaWYgKGJpbmRpbmcucmVzaXplKSB7CiAgICAgICAgICB2YXIgbGFzdFNpemUgPSB7fTsKICAgICAgICAgIHZhciByZXNpemVIYW5kbGVyID0gZnVuY3Rpb24oZSkgewogICAgICAgICAgICB2YXIgc2l6ZSA9IHsKICAgICAgICAgICAgICB3OiBzaXplT2JqID8gc2l6ZU9iai5nZXRXaWR0aCgpIDogZWwub2Zmc2V0V2lkdGgsCiAgICAgICAgICAgICAgaDogc2l6ZU9iaiA/IHNpemVPYmouZ2V0SGVpZ2h0KCkgOiBlbC5vZmZzZXRIZWlnaHQKICAgICAgICAgICAgfTsKICAgICAgICAgICAgaWYgKHNpemUudyA9PT0gMCAmJiBzaXplLmggPT09IDApCiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICBpZiAoc2l6ZS53ID09PSBsYXN0U2l6ZS53ICYmIHNpemUuaCA9PT0gbGFzdFNpemUuaCkKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIGxhc3RTaXplID0gc2l6ZTsKICAgICAgICAgICAgYmluZGluZy5yZXNpemUoZWwsIHNpemUudywgc2l6ZS5oLCBpbml0UmVzdWx0KTsKICAgICAgICAgIH07CgogICAgICAgICAgb24od2luZG93LCAicmVzaXplIiwgcmVzaXplSGFuZGxlcik7CgogICAgICAgICAgLy8gVGhpcyBpcyBuZWVkZWQgZm9yIGNhc2VzIHdoZXJlIHdlJ3JlIHJ1bm5pbmcgaW4gYSBTaGlueQogICAgICAgICAgLy8gYXBwLCBidXQgdGhlIHdpZGdldCBpdHNlbGYgaXMgbm90IGEgU2hpbnkgb3V0cHV0LCBidXQKICAgICAgICAgIC8vIHJhdGhlciBhIHNpbXBsZSBzdGF0aWMgd2lkZ2V0LiBPbmUgZXhhbXBsZSBvZiB0aGlzIGlzCiAgICAgICAgICAvLyBhbiBybWFya2Rvd24gZG9jdW1lbnQgdGhhdCBoYXMgcnVudGltZTpzaGlueSBhbmQgd2lkZ2V0CiAgICAgICAgICAvLyB0aGF0IGlzbid0IGluIGEgcmVuZGVyIGZ1bmN0aW9uLiBTaGlueSBvbmx5IGtub3dzIHRvCiAgICAgICAgICAvLyBjYWxsIHJlc2l6ZSBoYW5kbGVycyBmb3IgU2hpbnkgb3V0cHV0cywgbm90IGZvciBzdGF0aWMKICAgICAgICAgIC8vIHdpZGdldHMsIHNvIHdlIGRvIGl0IG91cnNlbHZlcy4KICAgICAgICAgIGlmICh3aW5kb3cualF1ZXJ5KSB7CiAgICAgICAgICAgIHdpbmRvdy5qUXVlcnkoZG9jdW1lbnQpLm9uKCJzaG93biIsIHJlc2l6ZUhhbmRsZXIpOwogICAgICAgICAgICB3aW5kb3cualF1ZXJ5KGRvY3VtZW50KS5vbigiaGlkZGVuIiwgcmVzaXplSGFuZGxlcik7CiAgICAgICAgICB9CgogICAgICAgICAgLy8gVGhpcyBpcyBuZWVkZWQgZm9yIHRoZSBzcGVjaWZpYyBjYXNlIG9mIGlvc2xpZGVzLCB3aGljaAogICAgICAgICAgLy8gZmxpcHMgc2xpZGVzIGJldHdlZW4gZGlzcGxheTpub25lIGFuZCBkaXNwbGF5OmJsb2NrLgogICAgICAgICAgLy8gSWRlYWxseSB3ZSB3b3VsZCBub3QgaGF2ZSB0byBoYXZlIGlvc2xpZGUtc3BlY2lmaWMgY29kZQogICAgICAgICAgLy8gaGVyZSwgYnV0IHJhdGhlciBoYXZlIGlvc2xpZGVzIHJhaXNlIGEgZ2VuZXJpYyBldmVudCwKICAgICAgICAgIC8vIGJ1dCB0aGUgcm1hcmtkb3duIHBhY2thZ2UganVzdCB3ZW50IHRvIENSQU4gc28gdGhlCiAgICAgICAgICAvLyB3aW5kb3cgdG8gZ2V0dGluZyB0aGF0IGZpeGVkIG1heSBiZSBsb25nLgogICAgICAgICAgaWYgKHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKSB7CiAgICAgICAgICAgIC8vIEl0J3MgT0sgdG8gbGltaXQgdGhpcyB0byB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcgogICAgICAgICAgICAvLyBicm93c2VycyBiZWNhdXNlIGlvc2xpZGVzIGl0c2VsZiBvbmx5IHN1cHBvcnRzCiAgICAgICAgICAgIC8vIHN1Y2ggYnJvd3NlcnMuCiAgICAgICAgICAgIG9uKGRvY3VtZW50LCAic2xpZGVlbnRlciIsIHJlc2l6ZUhhbmRsZXIpOwogICAgICAgICAgICBvbihkb2N1bWVudCwgInNsaWRlbGVhdmUiLCByZXNpemVIYW5kbGVyKTsKICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHZhciBzY3JpcHREYXRhID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigic2NyaXB0W2RhdGEtZm9yPSciICsgZWwuaWQgKyAiJ11bdHlwZT0nYXBwbGljYXRpb24vanNvbiddIik7CiAgICAgICAgaWYgKHNjcmlwdERhdGEpIHsKICAgICAgICAgIHZhciBkYXRhID0gSlNPTi5wYXJzZShzY3JpcHREYXRhLnRleHRDb250ZW50IHx8IHNjcmlwdERhdGEudGV4dCk7CiAgICAgICAgICAvLyBSZXNvbHZlIHN0cmluZ3MgbWFya2VkIGFzIGphdmFzY3JpcHQgbGl0ZXJhbHMgdG8gb2JqZWN0cwogICAgICAgICAgaWYgKCEoZGF0YS5ldmFscyBpbnN0YW5jZW9mIEFycmF5KSkgZGF0YS5ldmFscyA9IFtkYXRhLmV2YWxzXTsKICAgICAgICAgIGZvciAodmFyIGsgPSAwOyBkYXRhLmV2YWxzICYmIGsgPCBkYXRhLmV2YWxzLmxlbmd0aDsgaysrKSB7CiAgICAgICAgICAgIHdpbmRvdy5IVE1MV2lkZ2V0cy5ldmFsdWF0ZVN0cmluZ01lbWJlcihkYXRhLngsIGRhdGEuZXZhbHNba10pOwogICAgICAgICAgfQogICAgICAgICAgYmluZGluZy5yZW5kZXJWYWx1ZShlbCwgZGF0YS54LCBpbml0UmVzdWx0KTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSk7CiAgfQoKICAvLyBXYWl0IHVudGlsIGFmdGVyIHRoZSBkb2N1bWVudCBoYXMgbG9hZGVkIHRvIHJlbmRlciB0aGUgd2lkZ2V0cy4KICBpZiAoZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcikgewogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGZ1bmN0aW9uKCkgewogICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwgYXJndW1lbnRzLmNhbGxlZSwgZmFsc2UpOwogICAgICB3aW5kb3cuSFRNTFdpZGdldHMuc3RhdGljUmVuZGVyKCk7CiAgICB9LCBmYWxzZSk7CiAgfSBlbHNlIGlmIChkb2N1bWVudC5hdHRhY2hFdmVudCkgewogICAgZG9jdW1lbnQuYXR0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsIGZ1bmN0aW9uKCkgewogICAgICBpZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gImNvbXBsZXRlIikgewogICAgICAgIGRvY3VtZW50LmRldGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLCBhcmd1bWVudHMuY2FsbGVlKTsKICAgICAgICB3aW5kb3cuSFRNTFdpZGdldHMuc3RhdGljUmVuZGVyKCk7CiAgICAgIH0KICAgIH0pOwogIH0KCgogIHdpbmRvdy5IVE1MV2lkZ2V0cy5nZXRBdHRhY2htZW50VXJsID0gZnVuY3Rpb24oZGVwbmFtZSwga2V5KSB7CiAgICAvLyBJZiBubyBrZXksIGRlZmF1bHQgdG8gdGhlIGZpcnN0IGl0ZW0KICAgIGlmICh0eXBlb2Yoa2V5KSA9PT0gInVuZGVmaW5lZCIpCiAgICAgIGtleSA9IDE7CgogICAgdmFyIGxpbmsgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkZXBuYW1lICsgIi0iICsga2V5ICsgIi1hdHRhY2htZW50Iik7CiAgICBpZiAoIWxpbmspIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKCJBdHRhY2htZW50ICIgKyBkZXBuYW1lICsgIi8iICsga2V5ICsgIiBub3QgZm91bmQgaW4gZG9jdW1lbnQiKTsKICAgIH0KICAgIHJldHVybiBsaW5rLmdldEF0dHJpYnV0ZSgiaHJlZiIpOwogIH07CgogIHdpbmRvdy5IVE1MV2lkZ2V0cy5kYXRhZnJhbWVUb0QzID0gZnVuY3Rpb24oZGYpIHsKICAgIHZhciBuYW1lcyA9IFtdOwogICAgdmFyIGxlbmd0aDsKICAgIGZvciAodmFyIG5hbWUgaW4gZGYpIHsKICAgICAgICBpZiAoZGYuaGFzT3duUHJvcGVydHkobmFtZSkpCiAgICAgICAgICAgIG5hbWVzLnB1c2gobmFtZSk7CiAgICAgICAgaWYgKHR5cGVvZihkZltuYW1lXSkgIT09ICJvYmplY3QiIHx8IHR5cGVvZihkZltuYW1lXS5sZW5ndGgpID09PSAidW5kZWZpbmVkIikgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkFsbCBmaWVsZHMgbXVzdCBiZSBhcnJheXMiKTsKICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZihsZW5ndGgpICE9PSAidW5kZWZpbmVkIiAmJiBsZW5ndGggIT09IGRmW25hbWVdLmxlbmd0aCkgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkFsbCBmaWVsZHMgbXVzdCBiZSBhcnJheXMgb2YgdGhlIHNhbWUgbGVuZ3RoIik7CiAgICAgICAgfQogICAgICAgIGxlbmd0aCA9IGRmW25hbWVdLmxlbmd0aDsKICAgIH0KICAgIHZhciByZXN1bHRzID0gW107CiAgICB2YXIgaXRlbTsKICAgIGZvciAodmFyIHJvdyA9IDA7IHJvdyA8IGxlbmd0aDsgcm93KyspIHsKICAgICAgICBpdGVtID0ge307CiAgICAgICAgZm9yICh2YXIgY29sID0gMDsgY29sIDwgbmFtZXMubGVuZ3RoOyBjb2wrKykgewogICAgICAgICAgICBpdGVtW25hbWVzW2NvbF1dID0gZGZbbmFtZXNbY29sXV1bcm93XTsKICAgICAgICB9CiAgICAgICAgcmVzdWx0cy5wdXNoKGl0ZW0pOwogICAgfQogICAgcmV0dXJuIHJlc3VsdHM7CiAgfTsKCiAgd2luZG93LkhUTUxXaWRnZXRzLnRyYW5zcG9zZUFycmF5MkQgPSBmdW5jdGlvbihhcnJheSkgewogICAgICB2YXIgbmV3QXJyYXkgPSBhcnJheVswXS5tYXAoZnVuY3Rpb24oY29sLCBpKSB7CiAgICAgICAgICByZXR1cm4gYXJyYXkubWFwKGZ1bmN0aW9uKHJvdykgewogICAgICAgICAgICAgIHJldHVybiByb3dbaV0KICAgICAgICAgIH0pCiAgICAgIH0pOwogICAgICByZXR1cm4gbmV3QXJyYXk7CiAgfTsKICAvLyBTcGxpdCB2YWx1ZSBhdCBzcGxpdENoYXIsIGJ1dCBhbGxvdyBzcGxpdENoYXIgdG8gYmUgZXNjYXBlZAogIC8vIHVzaW5nIGVzY2FwZUNoYXIuIEFueSBvdGhlciBjaGFyYWN0ZXJzIGVzY2FwZWQgYnkgZXNjYXBlQ2hhcgogIC8vIHdpbGwgYmUgaW5jbHVkZWQgYXMgdXN1YWwgKGluY2x1ZGluZyBlc2NhcGVDaGFyIGl0c2VsZikuCiAgZnVuY3Rpb24gc3BsaXRXaXRoRXNjYXBlKHZhbHVlLCBzcGxpdENoYXIsIGVzY2FwZUNoYXIpIHsKICAgIHZhciByZXN1bHRzID0gW107CiAgICB2YXIgZXNjYXBlTW9kZSA9IGZhbHNlOwogICAgdmFyIGN1cnJlbnRSZXN1bHQgPSAiIjsKICAgIGZvciAodmFyIHBvcyA9IDA7IHBvcyA8IHZhbHVlLmxlbmd0aDsgcG9zKyspIHsKICAgICAgaWYgKCFlc2NhcGVNb2RlKSB7CiAgICAgICAgaWYgKHZhbHVlW3Bvc10gPT09IHNwbGl0Q2hhcikgewogICAgICAgICAgcmVzdWx0cy5wdXNoKGN1cnJlbnRSZXN1bHQpOwogICAgICAgICAgY3VycmVudFJlc3VsdCA9ICIiOwogICAgICAgIH0gZWxzZSBpZiAodmFsdWVbcG9zXSA9PT0gZXNjYXBlQ2hhcikgewogICAgICAgICAgZXNjYXBlTW9kZSA9IHRydWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGN1cnJlbnRSZXN1bHQgKz0gdmFsdWVbcG9zXTsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgY3VycmVudFJlc3VsdCArPSB2YWx1ZVtwb3NdOwogICAgICAgIGVzY2FwZU1vZGUgPSBmYWxzZTsKICAgICAgfQogICAgfQogICAgaWYgKGN1cnJlbnRSZXN1bHQgIT09ICIiKSB7CiAgICAgIHJlc3VsdHMucHVzaChjdXJyZW50UmVzdWx0KTsKICAgIH0KICAgIHJldHVybiByZXN1bHRzOwogIH0KICAvLyBGdW5jdGlvbiBhdXRob3JlZCBieSBZaWh1aS9KSiBBbGxhaXJlCiAgd2luZG93LkhUTUxXaWRnZXRzLmV2YWx1YXRlU3RyaW5nTWVtYmVyID0gZnVuY3Rpb24obywgbWVtYmVyKSB7CiAgICB2YXIgcGFydHMgPSBzcGxpdFdpdGhFc2NhcGUobWVtYmVyLCAnLicsICdcXCcpOwogICAgZm9yICh2YXIgaSA9IDAsIGwgPSBwYXJ0cy5sZW5ndGg7IGkgPCBsOyBpKyspIHsKICAgICAgdmFyIHBhcnQgPSBwYXJ0c1tpXTsKICAgICAgLy8gcGFydCBtYXkgYmUgYSBjaGFyYWN0ZXIgb3IgJ251bWVyaWMnIG1lbWJlciBuYW1lCiAgICAgIGlmIChvICE9PSBudWxsICYmIHR5cGVvZiBvID09PSAib2JqZWN0IiAmJiBwYXJ0IGluIG8pIHsKICAgICAgICBpZiAoaSA9PSAobCAtIDEpKSB7IC8vIGlmIHdlIGFyZSBhdCB0aGUgZW5kIG9mIHRoZSBsaW5lIHRoZW4gZXZhbHVsYXRlCiAgICAgICAgICBpZiAodHlwZW9mIG9bcGFydF0gPT09ICJzdHJpbmciKQogICAgICAgICAgICBvW3BhcnRdID0gZXZhbCgiKCIgKyBvW3BhcnRdICsgIikiKTsKICAgICAgICB9IGVsc2UgeyAvLyBvdGhlcndpc2UgY29udGludWUgdG8gbmV4dCBlbWJlZGRlZCBvYmplY3QKICAgICAgICAgIG8gPSBvW3BhcnRdOwogICAgICAgIH0KICAgICAgfQogICAgfQogIH07Cn0pKCk7Cgo="></script>
<link href="data:text/css;charset=utf-8,%0Adiv%20%2Edygraphs%20input%5Btype%3D%22text%22%5D%20%7B%0Awidth%3A%2025px%3B%0A%7D%0A" rel="stylesheet" />
<script src="data:application/x-javascript;base64,LyohIEBsaWNlbnNlIENvcHlyaWdodCAyMDExIERhbiBWYW5kZXJrYW0gKGRhbnZka0BnbWFpbC5jb20pIE1JVC1saWNlbnNlZCAoaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVCkgKi8KRGF0ZS5leHQ9e307RGF0ZS5leHQudXRpbD17fTtEYXRlLmV4dC51dGlsLnhQYWQ9ZnVuY3Rpb24oYSxjLGIpe2lmKHR5cGVvZihiKT09InVuZGVmaW5lZCIpe2I9MTB9Zm9yKDtwYXJzZUludChhLDEwKTxiJiZiPjE7Yi89MTApe2E9Yy50b1N0cmluZygpK2F9cmV0dXJuIGEudG9TdHJpbmcoKX07RGF0ZS5wcm90b3R5cGUubG9jYWxlPSJlbi1HQiI7aWYoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImh0bWwiKSYmZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImh0bWwiKVswXS5sYW5nKXtEYXRlLnByb3RvdHlwZS5sb2NhbGU9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImh0bWwiKVswXS5sYW5nfURhdGUuZXh0LmxvY2FsZXM9e307RGF0ZS5leHQubG9jYWxlcy5lbj17YTpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLEE6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdLGI6WyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIiLCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXSxCOlsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXSxjOiIlYSAlZCAlYiAlWSAlVCAlWiIscDpbIkFNIiwiUE0iXSxQOlsiYW0iLCJwbSJdLHg6IiVkLyVtLyV5IixYOiIlVCJ9O0RhdGUuZXh0LmxvY2FsZXNbImVuLVVTIl09RGF0ZS5leHQubG9jYWxlcy5lbjtEYXRlLmV4dC5sb2NhbGVzWyJlbi1VUyJdLmM9IiVhICVkICViICVZICVyICVaIjtEYXRlLmV4dC5sb2NhbGVzWyJlbi1VUyJdLng9IiVEIjtEYXRlLmV4dC5sb2NhbGVzWyJlbi1VUyJdLlg9IiVyIjtEYXRlLmV4dC5sb2NhbGVzWyJlbi1HQiJdPURhdGUuZXh0LmxvY2FsZXMuZW47RGF0ZS5leHQubG9jYWxlc1siZW4tQVUiXT1EYXRlLmV4dC5sb2NhbGVzWyJlbi1HQiJdO0RhdGUuZXh0LmZvcm1hdHM9e2E6ZnVuY3Rpb24oYSl7cmV0dXJuIERhdGUuZXh0LmxvY2FsZXNbYS5sb2NhbGVdLmFbYS5nZXREYXkoKV19LEE6ZnVuY3Rpb24oYSl7cmV0dXJuIERhdGUuZXh0LmxvY2FsZXNbYS5sb2NhbGVdLkFbYS5nZXREYXkoKV19LGI6ZnVuY3Rpb24oYSl7cmV0dXJuIERhdGUuZXh0LmxvY2FsZXNbYS5sb2NhbGVdLmJbYS5nZXRNb250aCgpXX0sQjpmdW5jdGlvbihhKXtyZXR1cm4gRGF0ZS5leHQubG9jYWxlc1thLmxvY2FsZV0uQlthLmdldE1vbnRoKCldfSxjOiJ0b0xvY2FsZVN0cmluZyIsQzpmdW5jdGlvbihhKXtyZXR1cm4gRGF0ZS5leHQudXRpbC54UGFkKHBhcnNlSW50KGEuZ2V0RnVsbFllYXIoKS8xMDAsMTApLDApfSxkOlsiZ2V0RGF0ZSIsIjAiXSxlOlsiZ2V0RGF0ZSIsIiAiXSxnOmZ1bmN0aW9uKGEpe3JldHVybiBEYXRlLmV4dC51dGlsLnhQYWQocGFyc2VJbnQoRGF0ZS5leHQudXRpbC5HKGEpLzEwMCwxMCksMCl9LEc6ZnVuY3Rpb24oYyl7dmFyIGU9Yy5nZXRGdWxsWWVhcigpO3ZhciBiPXBhcnNlSW50KERhdGUuZXh0LmZvcm1hdHMuVihjKSwxMCk7dmFyIGE9cGFyc2VJbnQoRGF0ZS5leHQuZm9ybWF0cy5XKGMpLDEwKTtpZihhPmIpe2UrK31lbHNle2lmKGE9PT0wJiZiPj01Mil7ZS0tfX1yZXR1cm4gZX0sSDpbImdldEhvdXJzIiwiMCJdLEk6ZnVuY3Rpb24oYil7dmFyIGE9Yi5nZXRIb3VycygpJTEyO3JldHVybiBEYXRlLmV4dC51dGlsLnhQYWQoYT09PTA/MTI6YSwwKX0sajpmdW5jdGlvbihjKXt2YXIgYT1jLW5ldyBEYXRlKCIiK2MuZ2V0RnVsbFllYXIoKSsiLzEvMSBHTVQiKTthKz1jLmdldFRpbWV6b25lT2Zmc2V0KCkqNjAwMDA7dmFyIGI9cGFyc2VJbnQoYS82MDAwMC82MC8yNCwxMCkrMTtyZXR1cm4gRGF0ZS5leHQudXRpbC54UGFkKGIsMCwxMDApfSxtOmZ1bmN0aW9uKGEpe3JldHVybiBEYXRlLmV4dC51dGlsLnhQYWQoYS5nZXRNb250aCgpKzEsMCl9LE06WyJnZXRNaW51dGVzIiwiMCJdLHA6ZnVuY3Rpb24oYSl7cmV0dXJuIERhdGUuZXh0LmxvY2FsZXNbYS5sb2NhbGVdLnBbYS5nZXRIb3VycygpPj0xMj8xOjBdfSxQOmZ1bmN0aW9uKGEpe3JldHVybiBEYXRlLmV4dC5sb2NhbGVzW2EubG9jYWxlXS5QW2EuZ2V0SG91cnMoKT49MTI/MTowXX0sUzpbImdldFNlY29uZHMiLCIwIl0sdTpmdW5jdGlvbihhKXt2YXIgYj1hLmdldERheSgpO3JldHVybiBiPT09MD83OmJ9LFU6ZnVuY3Rpb24oZSl7dmFyIGE9cGFyc2VJbnQoRGF0ZS5leHQuZm9ybWF0cy5qKGUpLDEwKTt2YXIgYz02LWUuZ2V0RGF5KCk7dmFyIGI9cGFyc2VJbnQoKGErYykvNywxMCk7cmV0dXJuIERhdGUuZXh0LnV0aWwueFBhZChiLDApfSxWOmZ1bmN0aW9uKGUpe3ZhciBjPXBhcnNlSW50KERhdGUuZXh0LmZvcm1hdHMuVyhlKSwxMCk7dmFyIGE9KG5ldyBEYXRlKCIiK2UuZ2V0RnVsbFllYXIoKSsiLzEvMSIpKS5nZXREYXkoKTt2YXIgYj1jKyhhPjR8fGE8PTE/MDoxKTtpZihiPT01MyYmKG5ldyBEYXRlKCIiK2UuZ2V0RnVsbFllYXIoKSsiLzEyLzMxIikpLmdldERheSgpPDQpe2I9MX1lbHNle2lmKGI9PT0wKXtiPURhdGUuZXh0LmZvcm1hdHMuVihuZXcgRGF0ZSgiIisoZS5nZXRGdWxsWWVhcigpLTEpKyIvMTIvMzEiKSl9fXJldHVybiBEYXRlLmV4dC51dGlsLnhQYWQoYiwwKX0sdzoiZ2V0RGF5IixXOmZ1bmN0aW9uKGUpe3ZhciBhPXBhcnNlSW50KERhdGUuZXh0LmZvcm1hdHMuaihlKSwxMCk7dmFyIGM9Ny1EYXRlLmV4dC5mb3JtYXRzLnUoZSk7dmFyIGI9cGFyc2VJbnQoKGErYykvNywxMCk7cmV0dXJuIERhdGUuZXh0LnV0aWwueFBhZChiLDAsMTApfSx5OmZ1bmN0aW9uKGEpe3JldHVybiBEYXRlLmV4dC51dGlsLnhQYWQoYS5nZXRGdWxsWWVhcigpJTEwMCwwKX0sWToiZ2V0RnVsbFllYXIiLHo6ZnVuY3Rpb24oYyl7dmFyIGI9Yy5nZXRUaW1lem9uZU9mZnNldCgpO3ZhciBhPURhdGUuZXh0LnV0aWwueFBhZChwYXJzZUludChNYXRoLmFicyhiLzYwKSwxMCksMCk7dmFyIGU9RGF0ZS5leHQudXRpbC54UGFkKGIlNjAsMCk7cmV0dXJuKGI+MD8iLSI6IisiKSthK2V9LFo6ZnVuY3Rpb24oYSl7cmV0dXJuIGEudG9TdHJpbmcoKS5yZXBsYWNlKC9eLipcKChbXildKylcKSQvLCIkMSIpfSwiJSI6ZnVuY3Rpb24oYSl7cmV0dXJuIiUifX07RGF0ZS5leHQuYWdncmVnYXRlcz17YzoibG9jYWxlIixEOiIlbS8lZC8leSIsaDoiJWIiLG46IlxuIixyOiIlSTolTTolUyAlcCIsUjoiJUg6JU0iLHQ6Ilx0IixUOiIlSDolTTolUyIseDoibG9jYWxlIixYOiJsb2NhbGUifTtEYXRlLmV4dC5hZ2dyZWdhdGVzLno9RGF0ZS5leHQuZm9ybWF0cy56KG5ldyBEYXRlKCkpO0RhdGUuZXh0LmFnZ3JlZ2F0ZXMuWj1EYXRlLmV4dC5mb3JtYXRzLloobmV3IERhdGUoKSk7RGF0ZS5leHQudW5zdXBwb3J0ZWQ9e307RGF0ZS5wcm90b3R5cGUuc3RyZnRpbWU9ZnVuY3Rpb24oYSl7aWYoISh0aGlzLmxvY2FsZSBpbiBEYXRlLmV4dC5sb2NhbGVzKSl7aWYodGhpcy5sb2NhbGUucmVwbGFjZSgvLVthLXpBLVpdKyQvLCIiKSBpbiBEYXRlLmV4dC5sb2NhbGVzKXt0aGlzLmxvY2FsZT10aGlzLmxvY2FsZS5yZXBsYWNlKC8tW2EtekEtWl0rJC8sIiIpfWVsc2V7dGhpcy5sb2NhbGU9ImVuLUdCIn19dmFyIGM9dGhpczt3aGlsZShhLm1hdGNoKC8lW2NEaG5yUnRUeFh6Wl0vKSl7YT1hLnJlcGxhY2UoLyUoW2NEaG5yUnRUeFh6Wl0pL2csZnVuY3Rpb24oZSxkKXt2YXIgZz1EYXRlLmV4dC5hZ2dyZWdhdGVzW2RdO3JldHVybihnPT0ibG9jYWxlIj9EYXRlLmV4dC5sb2NhbGVzW2MubG9jYWxlXVtkXTpnKX0pfXZhciBiPWEucmVwbGFjZSgvJShbYUFiQkNkZWdHSElqbU1wUFN1VVZ3V3lZJV0pL2csZnVuY3Rpb24oZSxkKXt2YXIgZz1EYXRlLmV4dC5mb3JtYXRzW2RdO2lmKHR5cGVvZihnKT09InN0cmluZyIpe3JldHVybiBjW2ddKCl9ZWxzZXtpZih0eXBlb2YoZyk9PSJmdW5jdGlvbiIpe3JldHVybiBnLmNhbGwoYyxjKX1lbHNle2lmKHR5cGVvZihnKT09Im9iamVjdCImJnR5cGVvZihnWzBdKT09InN0cmluZyIpe3JldHVybiBEYXRlLmV4dC51dGlsLnhQYWQoY1tnWzBdXSgpLGdbMV0pfWVsc2V7cmV0dXJuIGR9fX19KTtjPW51bGw7cmV0dXJuIGJ9OyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBSR0JDb2xvclBhcnNlcihmKXt0aGlzLm9rPWZhbHNlO2lmKGYuY2hhckF0KDApPT0iIyIpe2Y9Zi5zdWJzdHIoMSw2KX1mPWYucmVwbGFjZSgvIC9nLCIiKTtmPWYudG9Mb3dlckNhc2UoKTt2YXIgYj17YWxpY2VibHVlOiJmMGY4ZmYiLGFudGlxdWV3aGl0ZToiZmFlYmQ3IixhcXVhOiIwMGZmZmYiLGFxdWFtYXJpbmU6IjdmZmZkNCIsYXp1cmU6ImYwZmZmZiIsYmVpZ2U6ImY1ZjVkYyIsYmlzcXVlOiJmZmU0YzQiLGJsYWNrOiIwMDAwMDAiLGJsYW5jaGVkYWxtb25kOiJmZmViY2QiLGJsdWU6IjAwMDBmZiIsYmx1ZXZpb2xldDoiOGEyYmUyIixicm93bjoiYTUyYTJhIixidXJseXdvb2Q6ImRlYjg4NyIsY2FkZXRibHVlOiI1ZjllYTAiLGNoYXJ0cmV1c2U6IjdmZmYwMCIsY2hvY29sYXRlOiJkMjY5MWUiLGNvcmFsOiJmZjdmNTAiLGNvcm5mbG93ZXJibHVlOiI2NDk1ZWQiLGNvcm5zaWxrOiJmZmY4ZGMiLGNyaW1zb246ImRjMTQzYyIsY3lhbjoiMDBmZmZmIixkYXJrYmx1ZToiMDAwMDhiIixkYXJrY3lhbjoiMDA4YjhiIixkYXJrZ29sZGVucm9kOiJiODg2MGIiLGRhcmtncmF5OiJhOWE5YTkiLGRhcmtncmVlbjoiMDA2NDAwIixkYXJra2hha2k6ImJkYjc2YiIsZGFya21hZ2VudGE6IjhiMDA4YiIsZGFya29saXZlZ3JlZW46IjU1NmIyZiIsZGFya29yYW5nZToiZmY4YzAwIixkYXJrb3JjaGlkOiI5OTMyY2MiLGRhcmtyZWQ6IjhiMDAwMCIsZGFya3NhbG1vbjoiZTk5NjdhIixkYXJrc2VhZ3JlZW46IjhmYmM4ZiIsZGFya3NsYXRlYmx1ZToiNDgzZDhiIixkYXJrc2xhdGVncmF5OiIyZjRmNGYiLGRhcmt0dXJxdW9pc2U6IjAwY2VkMSIsZGFya3Zpb2xldDoiOTQwMGQzIixkZWVwcGluazoiZmYxNDkzIixkZWVwc2t5Ymx1ZToiMDBiZmZmIixkaW1ncmF5OiI2OTY5NjkiLGRvZGdlcmJsdWU6IjFlOTBmZiIsZmVsZHNwYXI6ImQxOTI3NSIsZmlyZWJyaWNrOiJiMjIyMjIiLGZsb3JhbHdoaXRlOiJmZmZhZjAiLGZvcmVzdGdyZWVuOiIyMjhiMjIiLGZ1Y2hzaWE6ImZmMDBmZiIsZ2FpbnNib3JvOiJkY2RjZGMiLGdob3N0d2hpdGU6ImY4ZjhmZiIsZ29sZDoiZmZkNzAwIixnb2xkZW5yb2Q6ImRhYTUyMCIsZ3JheToiODA4MDgwIixncmVlbjoiMDA4MDAwIixncmVlbnllbGxvdzoiYWRmZjJmIixob25leWRldzoiZjBmZmYwIixob3RwaW5rOiJmZjY5YjQiLGluZGlhbnJlZDoiY2Q1YzVjIixpbmRpZ286IjRiMDA4MiIsaXZvcnk6ImZmZmZmMCIsa2hha2k6ImYwZTY4YyIsbGF2ZW5kZXI6ImU2ZTZmYSIsbGF2ZW5kZXJibHVzaDoiZmZmMGY1IixsYXduZ3JlZW46IjdjZmMwMCIsbGVtb25jaGlmZm9uOiJmZmZhY2QiLGxpZ2h0Ymx1ZToiYWRkOGU2IixsaWdodGNvcmFsOiJmMDgwODAiLGxpZ2h0Y3lhbjoiZTBmZmZmIixsaWdodGdvbGRlbnJvZHllbGxvdzoiZmFmYWQyIixsaWdodGdyZXk6ImQzZDNkMyIsbGlnaHRncmVlbjoiOTBlZTkwIixsaWdodHBpbms6ImZmYjZjMSIsbGlnaHRzYWxtb246ImZmYTA3YSIsbGlnaHRzZWFncmVlbjoiMjBiMmFhIixsaWdodHNreWJsdWU6Ijg3Y2VmYSIsbGlnaHRzbGF0ZWJsdWU6Ijg0NzBmZiIsbGlnaHRzbGF0ZWdyYXk6Ijc3ODg5OSIsbGlnaHRzdGVlbGJsdWU6ImIwYzRkZSIsbGlnaHR5ZWxsb3c6ImZmZmZlMCIsbGltZToiMDBmZjAwIixsaW1lZ3JlZW46IjMyY2QzMiIsbGluZW46ImZhZjBlNiIsbWFnZW50YToiZmYwMGZmIixtYXJvb246IjgwMDAwMCIsbWVkaXVtYXF1YW1hcmluZToiNjZjZGFhIixtZWRpdW1ibHVlOiIwMDAwY2QiLG1lZGl1bW9yY2hpZDoiYmE1NWQzIixtZWRpdW1wdXJwbGU6IjkzNzBkOCIsbWVkaXVtc2VhZ3JlZW46IjNjYjM3MSIsbWVkaXVtc2xhdGVibHVlOiI3YjY4ZWUiLG1lZGl1bXNwcmluZ2dyZWVuOiIwMGZhOWEiLG1lZGl1bXR1cnF1b2lzZToiNDhkMWNjIixtZWRpdW12aW9sZXRyZWQ6ImM3MTU4NSIsbWlkbmlnaHRibHVlOiIxOTE5NzAiLG1pbnRjcmVhbToiZjVmZmZhIixtaXN0eXJvc2U6ImZmZTRlMSIsbW9jY2FzaW46ImZmZTRiNSIsbmF2YWpvd2hpdGU6ImZmZGVhZCIsbmF2eToiMDAwMDgwIixvbGRsYWNlOiJmZGY1ZTYiLG9saXZlOiI4MDgwMDAiLG9saXZlZHJhYjoiNmI4ZTIzIixvcmFuZ2U6ImZmYTUwMCIsb3JhbmdlcmVkOiJmZjQ1MDAiLG9yY2hpZDoiZGE3MGQ2IixwYWxlZ29sZGVucm9kOiJlZWU4YWEiLHBhbGVncmVlbjoiOThmYjk4IixwYWxldHVycXVvaXNlOiJhZmVlZWUiLHBhbGV2aW9sZXRyZWQ6ImQ4NzA5MyIscGFwYXlhd2hpcDoiZmZlZmQ1IixwZWFjaHB1ZmY6ImZmZGFiOSIscGVydToiY2Q4NTNmIixwaW5rOiJmZmMwY2IiLHBsdW06ImRkYTBkZCIscG93ZGVyYmx1ZToiYjBlMGU2IixwdXJwbGU6IjgwMDA4MCIscmVkOiJmZjAwMDAiLHJvc3licm93bjoiYmM4ZjhmIixyb3lhbGJsdWU6IjQxNjllMSIsc2FkZGxlYnJvd246IjhiNDUxMyIsc2FsbW9uOiJmYTgwNzIiLHNhbmR5YnJvd246ImY0YTQ2MCIsc2VhZ3JlZW46IjJlOGI1NyIsc2Vhc2hlbGw6ImZmZjVlZSIsc2llbm5hOiJhMDUyMmQiLHNpbHZlcjoiYzBjMGMwIixza3libHVlOiI4N2NlZWIiLHNsYXRlYmx1ZToiNmE1YWNkIixzbGF0ZWdyYXk6IjcwODA5MCIsc25vdzoiZmZmYWZhIixzcHJpbmdncmVlbjoiMDBmZjdmIixzdGVlbGJsdWU6IjQ2ODJiNCIsdGFuOiJkMmI0OGMiLHRlYWw6IjAwODA4MCIsdGhpc3RsZToiZDhiZmQ4Iix0b21hdG86ImZmNjM0NyIsdHVycXVvaXNlOiI0MGUwZDAiLHZpb2xldDoiZWU4MmVlIix2aW9sZXRyZWQ6ImQwMjA5MCIsd2hlYXQ6ImY1ZGViMyIsd2hpdGU6ImZmZmZmZiIsd2hpdGVzbW9rZToiZjVmNWY1Iix5ZWxsb3c6ImZmZmYwMCIseWVsbG93Z3JlZW46IjlhY2QzMiJ9O2Zvcih2YXIgZyBpbiBiKXtpZihmPT1nKXtmPWJbZ119fXZhciBlPVt7cmU6L15yZ2JcKChcZHsxLDN9KSxccyooXGR7MSwzfSksXHMqKFxkezEsM30pXCkkLyxleGFtcGxlOlsicmdiKDEyMywgMjM0LCA0NSkiLCJyZ2IoMjU1LDIzNCwyNDUpIl0scHJvY2VzczpmdW5jdGlvbihpKXtyZXR1cm5bcGFyc2VJbnQoaVsxXSkscGFyc2VJbnQoaVsyXSkscGFyc2VJbnQoaVszXSldfX0se3JlOi9eKFx3ezJ9KShcd3syfSkoXHd7Mn0pJC8sZXhhbXBsZTpbIiMwMGZmMDAiLCIzMzY2OTkiXSxwcm9jZXNzOmZ1bmN0aW9uKGkpe3JldHVybltwYXJzZUludChpWzFdLDE2KSxwYXJzZUludChpWzJdLDE2KSxwYXJzZUludChpWzNdLDE2KV19fSx7cmU6L14oXHd7MX0pKFx3ezF9KShcd3sxfSkkLyxleGFtcGxlOlsiI2ZiMCIsImYwZiJdLHByb2Nlc3M6ZnVuY3Rpb24oaSl7cmV0dXJuW3BhcnNlSW50KGlbMV0raVsxXSwxNikscGFyc2VJbnQoaVsyXStpWzJdLDE2KSxwYXJzZUludChpWzNdK2lbM10sMTYpXX19XTtmb3IodmFyIGM9MDtjPGUubGVuZ3RoO2MrKyl7dmFyIGo9ZVtjXS5yZTt2YXIgYT1lW2NdLnByb2Nlc3M7dmFyIGg9ai5leGVjKGYpO2lmKGgpe3ZhciBkPWEoaCk7dGhpcy5yPWRbMF07dGhpcy5nPWRbMV07dGhpcy5iPWRbMl07dGhpcy5vaz10cnVlfX10aGlzLnI9KHRoaXMucjwwfHxpc05hTih0aGlzLnIpKT8wOigodGhpcy5yPjI1NSk/MjU1OnRoaXMucik7dGhpcy5nPSh0aGlzLmc8MHx8aXNOYU4odGhpcy5nKSk/MDooKHRoaXMuZz4yNTUpPzI1NTp0aGlzLmcpO3RoaXMuYj0odGhpcy5iPDB8fGlzTmFOKHRoaXMuYikpPzA6KCh0aGlzLmI+MjU1KT8yNTU6dGhpcy5iKTt0aGlzLnRvUkdCPWZ1bmN0aW9uKCl7cmV0dXJuInJnYigiK3RoaXMucisiLCAiK3RoaXMuZysiLCAiK3RoaXMuYisiKSJ9O3RoaXMudG9IZXg9ZnVuY3Rpb24oKXt2YXIgbD10aGlzLnIudG9TdHJpbmcoMTYpO3ZhciBrPXRoaXMuZy50b1N0cmluZygxNik7dmFyIGk9dGhpcy5iLnRvU3RyaW5nKDE2KTtpZihsLmxlbmd0aD09MSl7bD0iMCIrbH1pZihrLmxlbmd0aD09MSl7az0iMCIra31pZihpLmxlbmd0aD09MSl7aT0iMCIraX1yZXR1cm4iIyIrbCtrK2l9fWZ1bmN0aW9uIHByaW50U3RhY2tUcmFjZShiKXtiPWJ8fHtndWVzczp0cnVlfTt2YXIgYz1iLmV8fG51bGwsZT0hIWIuZ3Vlc3M7dmFyIGQ9bmV3IHByaW50U3RhY2tUcmFjZS5pbXBsZW1lbnRhdGlvbigpLGE9ZC5ydW4oYyk7cmV0dXJuKGUpP2QuZ3Vlc3NBbm9ueW1vdXNGdW5jdGlvbnMoYSk6YX1wcmludFN0YWNrVHJhY2UuaW1wbGVtZW50YXRpb249ZnVuY3Rpb24oKXt9O3ByaW50U3RhY2tUcmFjZS5pbXBsZW1lbnRhdGlvbi5wcm90b3R5cGU9e3J1bjpmdW5jdGlvbihhLGIpe2E9YXx8dGhpcy5jcmVhdGVFeGNlcHRpb24oKTtiPWJ8fHRoaXMubW9kZShhKTtpZihiPT09Im90aGVyIil7cmV0dXJuIHRoaXMub3RoZXIoYXJndW1lbnRzLmNhbGxlZSl9ZWxzZXtyZXR1cm4gdGhpc1tiXShhKX19LGNyZWF0ZUV4Y2VwdGlvbjpmdW5jdGlvbigpe3RyeXt0aGlzLnVuZGVmKCl9Y2F0Y2goYSl7cmV0dXJuIGF9fSxtb2RlOmZ1bmN0aW9uKGEpe2lmKGFbImFyZ3VtZW50cyJdJiZhLnN0YWNrKXtyZXR1cm4iY2hyb21lIn1lbHNle2lmKHR5cGVvZiBhLm1lc3NhZ2U9PT0ic3RyaW5nIiYmdHlwZW9mIHdpbmRvdyE9PSJ1bmRlZmluZWQiJiZ3aW5kb3cub3BlcmEpe2lmKCFhLnN0YWNrdHJhY2Upe3JldHVybiJvcGVyYTkifWlmKGEubWVzc2FnZS5pbmRleE9mKCJcbiIpPi0xJiZhLm1lc3NhZ2Uuc3BsaXQoIlxuIikubGVuZ3RoPmEuc3RhY2t0cmFjZS5zcGxpdCgiXG4iKS5sZW5ndGgpe3JldHVybiJvcGVyYTkifWlmKCFhLnN0YWNrKXtyZXR1cm4ib3BlcmExMGEifWlmKGEuc3RhY2t0cmFjZS5pbmRleE9mKCJjYWxsZWQgZnJvbSBsaW5lIik8MCl7cmV0dXJuIm9wZXJhMTBiIn1yZXR1cm4ib3BlcmExMSJ9ZWxzZXtpZihhLnN0YWNrKXtyZXR1cm4iZmlyZWZveCJ9fX1yZXR1cm4ib3RoZXIifSxpbnN0cnVtZW50RnVuY3Rpb246ZnVuY3Rpb24oYixkLGUpe2I9Ynx8d2luZG93O3ZhciBhPWJbZF07YltkXT1mdW5jdGlvbiBjKCl7ZS5jYWxsKHRoaXMscHJpbnRTdGFja1RyYWNlKCkuc2xpY2UoNCkpO3JldHVybiBiW2RdLl9pbnN0cnVtZW50ZWQuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtiW2RdLl9pbnN0cnVtZW50ZWQ9YX0sZGVpbnN0cnVtZW50RnVuY3Rpb246ZnVuY3Rpb24oYSxiKXtpZihhW2JdLmNvbnN0cnVjdG9yPT09RnVuY3Rpb24mJmFbYl0uX2luc3RydW1lbnRlZCYmYVtiXS5faW5zdHJ1bWVudGVkLmNvbnN0cnVjdG9yPT09RnVuY3Rpb24pe2FbYl09YVtiXS5faW5zdHJ1bWVudGVkfX0sY2hyb21lOmZ1bmN0aW9uKGIpe3ZhciBhPShiLnN0YWNrKyJcbiIpLnJlcGxhY2UoL15cU1teXChdKz9bXG4kXS9nbSwiIikucmVwbGFjZSgvXlxzK2F0XHMrL2dtLCIiKS5yZXBsYWNlKC9eKFteXChdKz8pKFtcbiRdKS9nbSwie2Fub255bW91c30oKUAkMSQyIikucmVwbGFjZSgvXk9iamVjdC48YW5vbnltb3VzPlxzKlwoKFteXCldKylcKS9nbSwie2Fub255bW91c30oKUAkMSIpLnNwbGl0KCJcbiIpO2EucG9wKCk7cmV0dXJuIGF9LGZpcmVmb3g6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuc3RhY2sucmVwbGFjZSgvKD86XG5AOjApP1xzKyQvbSwiIikucmVwbGFjZSgvXlwoL2dtLCJ7YW5vbnltb3VzfSgiKS5zcGxpdCgiXG4iKX0sb3BlcmExMTpmdW5jdGlvbihnKXt2YXIgYT0ie2Fub255bW91c30iLGg9L14uKmxpbmUgKFxkKyksIGNvbHVtbiAoXGQrKSg/OiBpbiAoLispKT8gaW4gKFxTKyk6JC87dmFyIGs9Zy5zdGFja3RyYWNlLnNwbGl0KCJcbiIpLGw9W107Zm9yKHZhciBjPTAsZj1rLmxlbmd0aDtjPGY7Yys9Mil7dmFyIGQ9aC5leGVjKGtbY10pO2lmKGQpe3ZhciBqPWRbNF0rIjoiK2RbMV0rIjoiK2RbMl07dmFyIGI9ZFszXXx8Imdsb2JhbCBjb2RlIjtiPWIucmVwbGFjZSgvPGFub255bW91cyBmdW5jdGlvbjogKFxTKyk+LywiJDEiKS5yZXBsYWNlKC88YW5vbnltb3VzIGZ1bmN0aW9uPi8sYSk7bC5wdXNoKGIrIkAiK2orIiAtLSAiK2tbYysxXS5yZXBsYWNlKC9eXHMrLywiIikpfX1yZXR1cm4gbH0sb3BlcmExMGI6ZnVuY3Rpb24oZyl7dmFyIGE9Inthbm9ueW1vdXN9IixoPS9eKC4qKUAoLispOihcZCspJC87dmFyIGo9Zy5zdGFja3RyYWNlLnNwbGl0KCJcbiIpLGs9W107Zm9yKHZhciBjPTAsZj1qLmxlbmd0aDtjPGY7YysrKXt2YXIgZD1oLmV4ZWMoaltjXSk7aWYoZCl7dmFyIGI9ZFsxXT8oZFsxXSsiKCkiKToiZ2xvYmFsIGNvZGUiO2sucHVzaChiKyJAIitkWzJdKyI6IitkWzNdKX19cmV0dXJuIGt9LG9wZXJhMTBhOmZ1bmN0aW9uKGcpe3ZhciBhPSJ7YW5vbnltb3VzfSIsaD0vTGluZSAoXGQrKS4qc2NyaXB0ICg/OmluICk/KFxTKykoPzo6IEluIGZ1bmN0aW9uIChcUyspKT8kL2k7dmFyIGo9Zy5zdGFja3RyYWNlLnNwbGl0KCJcbiIpLGs9W107Zm9yKHZhciBjPTAsZj1qLmxlbmd0aDtjPGY7Yys9Mil7dmFyIGQ9aC5leGVjKGpbY10pO2lmKGQpe3ZhciBiPWRbM118fGE7ay5wdXNoKGIrIigpQCIrZFsyXSsiOiIrZFsxXSsiIC0tICIraltjKzFdLnJlcGxhY2UoL15ccysvLCIiKSl9fXJldHVybiBrfSxvcGVyYTk6ZnVuY3Rpb24oail7dmFyIGQ9Inthbm9ueW1vdXN9IixoPS9MaW5lIChcZCspLipzY3JpcHQgKD86aW4gKT8oXFMrKS9pO3ZhciBjPWoubWVzc2FnZS5zcGxpdCgiXG4iKSxiPVtdO2Zvcih2YXIgZz0yLGE9Yy5sZW5ndGg7ZzxhO2crPTIpe3ZhciBmPWguZXhlYyhjW2ddKTtpZihmKXtiLnB1c2goZCsiKClAIitmWzJdKyI6IitmWzFdKyIgLS0gIitjW2crMV0ucmVwbGFjZSgvXlxzKy8sIiIpKX19cmV0dXJuIGJ9LG90aGVyOmZ1bmN0aW9uKGcpe3ZhciBiPSJ7YW5vbnltb3VzfSIsZj0vZnVuY3Rpb25ccyooW1x3XC0kXSspP1xzKlwoL2ksYT1bXSxkLGMsZT0xMDt3aGlsZShnJiZhLmxlbmd0aDxlKXtkPWYudGVzdChnLnRvU3RyaW5nKCkpP1JlZ0V4cC4kMXx8YjpiO2M9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZ1siYXJndW1lbnRzIl18fFtdKTthW2EubGVuZ3RoXT1kKyIoIit0aGlzLnN0cmluZ2lmeUFyZ3VtZW50cyhjKSsiKSI7Zz1nLmNhbGxlcn1yZXR1cm4gYX0sc3RyaW5naWZ5QXJndW1lbnRzOmZ1bmN0aW9uKGMpe3ZhciBiPVtdO3ZhciBlPUFycmF5LnByb3RvdHlwZS5zbGljZTtmb3IodmFyIGQ9MDtkPGMubGVuZ3RoOysrZCl7dmFyIGE9Y1tkXTtpZihhPT09dW5kZWZpbmVkKXtiW2RdPSJ1bmRlZmluZWQifWVsc2V7aWYoYT09PW51bGwpe2JbZF09Im51bGwifWVsc2V7aWYoYS5jb25zdHJ1Y3Rvcil7aWYoYS5jb25zdHJ1Y3Rvcj09PUFycmF5KXtpZihhLmxlbmd0aDwzKXtiW2RdPSJbIit0aGlzLnN0cmluZ2lmeUFyZ3VtZW50cyhhKSsiXSJ9ZWxzZXtiW2RdPSJbIit0aGlzLnN0cmluZ2lmeUFyZ3VtZW50cyhlLmNhbGwoYSwwLDEpKSsiLi4uIit0aGlzLnN0cmluZ2lmeUFyZ3VtZW50cyhlLmNhbGwoYSwtMSkpKyJdIn19ZWxzZXtpZihhLmNvbnN0cnVjdG9yPT09T2JqZWN0KXtiW2RdPSIjb2JqZWN0In1lbHNle2lmKGEuY29uc3RydWN0b3I9PT1GdW5jdGlvbil7YltkXT0iI2Z1bmN0aW9uIn1lbHNle2lmKGEuY29uc3RydWN0b3I9PT1TdHJpbmcpe2JbZF09JyInK2ErJyInfWVsc2V7aWYoYS5jb25zdHJ1Y3Rvcj09PU51bWJlcil7YltkXT1hfX19fX19fX19cmV0dXJuIGIuam9pbigiLCIpfSxzb3VyY2VDYWNoZTp7fSxhamF4OmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuY3JlYXRlWE1MSFRUUE9iamVjdCgpO2lmKGIpe3RyeXtiLm9wZW4oIkdFVCIsYSxmYWxzZSk7Yi5zZW5kKG51bGwpO3JldHVybiBiLnJlc3BvbnNlVGV4dH1jYXRjaChjKXt9fXJldHVybiIifSxjcmVhdGVYTUxIVFRQT2JqZWN0OmZ1bmN0aW9uKCl7dmFyIGMsYT1bZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFhNTEh0dHBSZXF1ZXN0KCl9LGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBBY3RpdmVYT2JqZWN0KCJNc3htbDIuWE1MSFRUUCIpfSxmdW5jdGlvbigpe3JldHVybiBuZXcgQWN0aXZlWE9iamVjdCgiTXN4bWwzLlhNTEhUVFAiKX0sZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxIVFRQIil9XTtmb3IodmFyIGI9MDtiPGEubGVuZ3RoO2IrKyl7dHJ5e2M9YVtiXSgpO3RoaXMuY3JlYXRlWE1MSFRUUE9iamVjdD1hW2JdO3JldHVybiBjfWNhdGNoKGQpe319fSxpc1NhbWVEb21haW46ZnVuY3Rpb24oYSl7cmV0dXJuIGEuaW5kZXhPZihsb2NhdGlvbi5ob3N0bmFtZSkhPT0tMX0sZ2V0U291cmNlOmZ1bmN0aW9uKGEpe2lmKCEoYSBpbiB0aGlzLnNvdXJjZUNhY2hlKSl7dGhpcy5zb3VyY2VDYWNoZVthXT10aGlzLmFqYXgoYSkuc3BsaXQoIlxuIil9cmV0dXJuIHRoaXMuc291cmNlQ2FjaGVbYV19LGd1ZXNzQW5vbnltb3VzRnVuY3Rpb25zOmZ1bmN0aW9uKGspe2Zvcih2YXIgZz0wO2c8ay5sZW5ndGg7KytnKXt2YXIgZj0vXHthbm9ueW1vdXNcfVwoLipcKUAoLiopLyxsPS9eKC4qPykoPzo6KFxkKykpKD86OihcZCspKT8oPzogLS0gLispPyQvLGI9a1tnXSxjPWYuZXhlYyhiKTtpZihjKXt2YXIgZT1sLmV4ZWMoY1sxXSksZD1lWzFdLGE9ZVsyXSxqPWVbM118fDA7aWYoZCYmdGhpcy5pc1NhbWVEb21haW4oZCkmJmEpe3ZhciBoPXRoaXMuZ3Vlc3NBbm9ueW1vdXNGdW5jdGlvbihkLGEsaik7a1tnXT1iLnJlcGxhY2UoInthbm9ueW1vdXN9IixoKX19fXJldHVybiBrfSxndWVzc0Fub255bW91c0Z1bmN0aW9uOmZ1bmN0aW9uKGMsZixhKXt2YXIgYjt0cnl7Yj10aGlzLmZpbmRGdW5jdGlvbk5hbWUodGhpcy5nZXRTb3VyY2UoYyksZil9Y2F0Y2goZCl7Yj0iZ2V0U291cmNlIGZhaWxlZCB3aXRoIHVybDogIitjKyIsIGV4Y2VwdGlvbjogIitkLnRvU3RyaW5nKCl9cmV0dXJuIGJ9LGZpbmRGdW5jdGlvbk5hbWU6ZnVuY3Rpb24oYSxlKXt2YXIgZz0vZnVuY3Rpb25ccysoW14oXSo/KVxzKlwoKFteKV0qKVwpLzt2YXIgaz0vWyciXT8oWzAtOUEtWmEtel9dKylbJyJdP1xzKls6PV1ccypmdW5jdGlvblxiLzt2YXIgaD0vWyciXT8oWzAtOUEtWmEtel9dKylbJyJdP1xzKls6PV1ccyooPzpldmFsfG5ldyBGdW5jdGlvbilcYi87dmFyIGI9IiIsbCxqPU1hdGgubWluKGUsMjApLGQsYztmb3IodmFyIGY9MDtmPGo7KytmKXtsPWFbZS1mLTFdO2M9bC5pbmRleE9mKCIvLyIpO2lmKGM+PTApe2w9bC5zdWJzdHIoMCxjKX1pZihsKXtiPWwrYjtkPWsuZXhlYyhiKTtpZihkJiZkWzFdKXtyZXR1cm4gZFsxXX1kPWcuZXhlYyhiKTtpZihkJiZkWzFdKXtyZXR1cm4gZFsxXX1kPWguZXhlYyhiKTtpZihkJiZkWzFdKXtyZXR1cm4gZFsxXX19fXJldHVybiIoPykifX07Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELnByb3RvdHlwZS5pbnN0YWxsUGF0dGVybj1mdW5jdGlvbihlKXtpZih0eXBlb2YodGhpcy5pc1BhdHRlcm5JbnN0YWxsZWQpIT09InVuZGVmaW5lZCIpe3Rocm93Ik11c3QgdW4taW5zdGFsbCBvbGQgbGluZSBwYXR0ZXJuIGJlZm9yZSBpbnN0YWxsaW5nIGEgbmV3IG9uZS4ifXRoaXMuaXNQYXR0ZXJuSW5zdGFsbGVkPXRydWU7dmFyIGc9WzAsMF07dmFyIGI9W107dmFyIGY9dGhpcy5iZWdpblBhdGg7dmFyIGQ9dGhpcy5saW5lVG87dmFyIGM9dGhpcy5tb3ZlVG87dmFyIGE9dGhpcy5zdHJva2U7dGhpcy51bmluc3RhbGxQYXR0ZXJuPWZ1bmN0aW9uKCl7dGhpcy5iZWdpblBhdGg9Zjt0aGlzLmxpbmVUbz1kO3RoaXMubW92ZVRvPWM7dGhpcy5zdHJva2U9YTt0aGlzLnVuaW5zdGFsbFBhdHRlcm49dW5kZWZpbmVkO3RoaXMuaXNQYXR0ZXJuSW5zdGFsbGVkPXVuZGVmaW5lZH07dGhpcy5iZWdpblBhdGg9ZnVuY3Rpb24oKXtiPVtdO2YuY2FsbCh0aGlzKX07dGhpcy5tb3ZlVG89ZnVuY3Rpb24oaCxpKXtiLnB1c2goW1toLGldXSk7Yy5jYWxsKHRoaXMsaCxpKX07dGhpcy5saW5lVG89ZnVuY3Rpb24oaCxqKXt2YXIgaT1iW2IubGVuZ3RoLTFdO2kucHVzaChbaCxqXSl9O3RoaXMuc3Ryb2tlPWZ1bmN0aW9uKCl7aWYoYi5sZW5ndGg9PT0wKXthLmNhbGwodGhpcyk7cmV0dXJufWZvcih2YXIgcD0wO3A8Yi5sZW5ndGg7cCsrKXt2YXIgbz1iW3BdO3ZhciBsPW9bMF1bMF0sdT1vWzBdWzFdO2Zvcih2YXIgbj0xO248by5sZW5ndGg7bisrKXt2YXIgaD1vW25dWzBdLHM9b1tuXVsxXTt0aGlzLnNhdmUoKTt2YXIgdz0oaC1sKTt2YXIgdj0ocy11KTt2YXIgcj1NYXRoLnNxcnQodyp3K3Yqdik7dmFyIGs9TWF0aC5hdGFuMih2LHcpO3RoaXMudHJhbnNsYXRlKGwsdSk7Yy5jYWxsKHRoaXMsMCwwKTt0aGlzLnJvdGF0ZShrKTt2YXIgbT1nWzBdO3ZhciB0PTA7d2hpbGUocj50KXt2YXIgcT1lW21dO2lmKGdbMV0pe3QrPWdbMV19ZWxzZXt0Kz1xfWlmKHQ+cil7Zz1bbSx0LXJdO3Q9cn1lbHNle2c9WyhtKzEpJWUubGVuZ3RoLDBdfWlmKG0lMj09PTApe2QuY2FsbCh0aGlzLHQsMCl9ZWxzZXtjLmNhbGwodGhpcyx0LDApfW09KG0rMSklZS5sZW5ndGh9dGhpcy5yZXN0b3JlKCk7bD1oLHU9c319YS5jYWxsKHRoaXMpO2I9W119fTtDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQucHJvdG90eXBlLnVuaW5zdGFsbFBhdHRlcm49ZnVuY3Rpb24oKXt0aHJvdyJNdXN0IGluc3RhbGwgYSBsaW5lIHBhdHRlcm4gYmVmb3JlIHVuaW5zdGFsbGluZyBpdC4ifTt2YXIgRHlncmFwaE9wdGlvbnM9KGZ1bmN0aW9uKCl7dmFyIGE9ZnVuY3Rpb24oYil7dGhpcy5keWdyYXBoXz1iO3RoaXMueUF4ZXNfPVtdO3RoaXMueEF4aXNfPXt9O3RoaXMuc2VyaWVzXz17fTt0aGlzLmdsb2JhbF89dGhpcy5keWdyYXBoXy5hdHRyc187dGhpcy51c2VyXz10aGlzLmR5Z3JhcGhfLnVzZXJfYXR0cnNffHx7fTt0aGlzLmxhYmVsc189W107dGhpcy5oaWdobGlnaHRTZXJpZXNfPXRoaXMuZ2V0KCJoaWdobGlnaHRTZXJpZXNPcHRzIil8fHt9O3RoaXMucmVwYXJzZVNlcmllcygpfTthLkFYSVNfU1RSSU5HX01BUFBJTkdTXz17eTowLFk6MCx5MTowLFkxOjAseTI6MSxZMjoxfTthLmF4aXNUb0luZGV4Xz1mdW5jdGlvbihiKXtpZih0eXBlb2YoYik9PSJzdHJpbmciKXtpZihhLkFYSVNfU1RSSU5HX01BUFBJTkdTXy5oYXNPd25Qcm9wZXJ0eShiKSl7cmV0dXJuIGEuQVhJU19TVFJJTkdfTUFQUElOR1NfW2JdfXRocm93IlVua25vd24gYXhpcyA6ICIrYn1pZih0eXBlb2YoYik9PSJudW1iZXIiKXtpZihiPT09MHx8Yj09PTEpe3JldHVybiBifXRocm93IkR5Z3JhcGhzIG9ubHkgc3VwcG9ydHMgdHdvIHktYXhlcywgaW5kZXhlZCBmcm9tIDAtMS4ifWlmKGIpe3Rocm93IlVua25vd24gYXhpcyA6ICIrYn1yZXR1cm4gMH07YS5wcm90b3R5cGUucmVwYXJzZVNlcmllcz1mdW5jdGlvbigpe3ZhciBnPXRoaXMuZ2V0KCJsYWJlbHMiKTtpZighZyl7cmV0dXJufXRoaXMubGFiZWxzXz1nLnNsaWNlKDEpO3RoaXMueUF4ZXNfPVt7c2VyaWVzOltdLG9wdGlvbnM6e319XTt0aGlzLnhBeGlzXz17b3B0aW9uczp7fX07dGhpcy5zZXJpZXNfPXt9O3ZhciBoPSF0aGlzLnVzZXJfLnNlcmllcztpZihoKXt2YXIgYz0wO2Zvcih2YXIgaj0wO2o8dGhpcy5sYWJlbHNfLmxlbmd0aDtqKyspe3ZhciBpPXRoaXMubGFiZWxzX1tqXTt2YXIgZT10aGlzLnVzZXJfW2ldfHx7fTt2YXIgYj0wO3ZhciBkPWUuYXhpcztpZih0eXBlb2YoZCk9PSJvYmplY3QiKXtiPSsrYzt0aGlzLnlBeGVzX1tiXT17c2VyaWVzOltpXSxvcHRpb25zOmR9fWlmKCFkKXt0aGlzLnlBeGVzX1swXS5zZXJpZXMucHVzaChpKX10aGlzLnNlcmllc19baV09e2lkeDpqLHlBeGlzOmIsb3B0aW9uczplfX1mb3IodmFyIGo9MDtqPHRoaXMubGFiZWxzXy5sZW5ndGg7aisrKXt2YXIgaT10aGlzLmxhYmVsc19bal07dmFyIGU9dGhpcy5zZXJpZXNfW2ldWyJvcHRpb25zIl07dmFyIGQ9ZS5heGlzO2lmKHR5cGVvZihkKT09InN0cmluZyIpe2lmKCF0aGlzLnNlcmllc18uaGFzT3duUHJvcGVydHkoZCkpe0R5Z3JhcGguZXJyb3IoIlNlcmllcyAiK2krIiB3YW50cyB0byBzaGFyZSBhIHktYXhpcyB3aXRoIHNlcmllcyAiK2QrIiwgd2hpY2ggZG9lcyBub3QgZGVmaW5lIGl0cyBvd24gYXhpcy4iKTtyZXR1cm59dmFyIGI9dGhpcy5zZXJpZXNfW2RdLnlBeGlzO3RoaXMuc2VyaWVzX1tpXS55QXhpcz1iO3RoaXMueUF4ZXNfW2JdLnNlcmllcy5wdXNoKGkpfX19ZWxzZXtmb3IodmFyIGo9MDtqPHRoaXMubGFiZWxzXy5sZW5ndGg7aisrKXt2YXIgaT10aGlzLmxhYmVsc19bal07dmFyIGU9dGhpcy51c2VyXy5zZXJpZXNbaV18fHt9O3ZhciBiPWEuYXhpc1RvSW5kZXhfKGUuYXhpcyk7dGhpcy5zZXJpZXNfW2ldPXtpZHg6aix5QXhpczpiLG9wdGlvbnM6ZX07aWYoIXRoaXMueUF4ZXNfW2JdKXt0aGlzLnlBeGVzX1tiXT17c2VyaWVzOltpXSxvcHRpb25zOnt9fX1lbHNle3RoaXMueUF4ZXNfW2JdLnNlcmllcy5wdXNoKGkpfX19dmFyIGY9dGhpcy51c2VyXy5heGVzfHx7fTtEeWdyYXBoLnVwZGF0ZSh0aGlzLnlBeGVzX1swXS5vcHRpb25zLGYueXx8e30pO2lmKHRoaXMueUF4ZXNfLmxlbmd0aD4xKXtEeWdyYXBoLnVwZGF0ZSh0aGlzLnlBeGVzX1sxXS5vcHRpb25zLGYueTJ8fHt9KX1EeWdyYXBoLnVwZGF0ZSh0aGlzLnhBeGlzXy5vcHRpb25zLGYueHx8e30pfTthLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYyl7dmFyIGI9dGhpcy5nZXRHbG9iYWxVc2VyXyhjKTtpZihiIT09bnVsbCl7cmV0dXJuIGJ9cmV0dXJuIHRoaXMuZ2V0R2xvYmFsRGVmYXVsdF8oYyl9O2EucHJvdG90eXBlLmdldEdsb2JhbFVzZXJfPWZ1bmN0aW9uKGIpe2lmKHRoaXMudXNlcl8uaGFzT3duUHJvcGVydHkoYikpe3JldHVybiB0aGlzLnVzZXJfW2JdfXJldHVybiBudWxsfTthLnByb3RvdHlwZS5nZXRHbG9iYWxEZWZhdWx0Xz1mdW5jdGlvbihiKXtpZih0aGlzLmdsb2JhbF8uaGFzT3duUHJvcGVydHkoYikpe3JldHVybiB0aGlzLmdsb2JhbF9bYl19aWYoRHlncmFwaC5ERUZBVUxUX0FUVFJTLmhhc093blByb3BlcnR5KGIpKXtyZXR1cm4gRHlncmFwaC5ERUZBVUxUX0FUVFJTW2JdfXJldHVybiBudWxsfTthLnByb3RvdHlwZS5nZXRGb3JBeGlzPWZ1bmN0aW9uKGQsZSl7dmFyIGY7dmFyIGk7aWYodHlwZW9mKGUpPT0ibnVtYmVyIil7Zj1lO2k9Zj09PTA/InkiOiJ5MiJ9ZWxzZXtpZihlPT0ieTEiKXtlPSJ5In1pZihlPT0ieSIpe2Y9MH1lbHNle2lmKGU9PSJ5MiIpe2Y9MX1lbHNle2lmKGU9PSJ4Iil7Zj0tMX1lbHNle3Rocm93IlVua25vd24gYXhpcyAiK2V9fX1pPWV9dmFyIGc9KGY9PS0xKT90aGlzLnhBeGlzXzp0aGlzLnlBeGVzX1tmXTtpZihnKXt2YXIgaD1nLm9wdGlvbnM7aWYoaC5oYXNPd25Qcm9wZXJ0eShkKSl7cmV0dXJuIGhbZF19fXZhciBjPXRoaXMuZ2V0R2xvYmFsVXNlcl8oZCk7aWYoYyE9PW51bGwpe3JldHVybiBjfXZhciBiPUR5Z3JhcGguREVGQVVMVF9BVFRSUy5heGVzW2ldO2lmKGIuaGFzT3duUHJvcGVydHkoZCkpe3JldHVybiBiW2RdfXJldHVybiB0aGlzLmdldEdsb2JhbERlZmF1bHRfKGQpfTthLnByb3RvdHlwZS5nZXRGb3JTZXJpZXM9ZnVuY3Rpb24oYyxlKXtpZihlPT09dGhpcy5keWdyYXBoXy5nZXRIaWdobGlnaHRTZXJpZXMoKSl7aWYodGhpcy5oaWdobGlnaHRTZXJpZXNfLmhhc093blByb3BlcnR5KGMpKXtyZXR1cm4gdGhpcy5oaWdobGlnaHRTZXJpZXNfW2NdfX1pZighdGhpcy5zZXJpZXNfLmhhc093blByb3BlcnR5KGUpKXt0aHJvdyJVbmtub3duIHNlcmllczogIitlfXZhciBkPXRoaXMuc2VyaWVzX1tlXTt2YXIgYj1kLm9wdGlvbnM7aWYoYi5oYXNPd25Qcm9wZXJ0eShjKSl7cmV0dXJuIGJbY119cmV0dXJuIHRoaXMuZ2V0Rm9yQXhpcyhjLGQueUF4aXMpfTthLnByb3RvdHlwZS5udW1BeGVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueUF4ZXNfLmxlbmd0aH07YS5wcm90b3R5cGUuYXhpc0ZvclNlcmllcz1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5zZXJpZXNfW2JdLnlBeGlzfTthLnByb3RvdHlwZS5heGlzT3B0aW9ucz1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy55QXhlc19bYl0ub3B0aW9uc307YS5wcm90b3R5cGUuc2VyaWVzRm9yQXhpcz1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy55QXhlc19bYl0uc2VyaWVzfTthLnByb3RvdHlwZS5zZXJpZXNOYW1lcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxhYmVsc199O3JldHVybiBhfSkoKTsidXNlIHN0cmljdCI7dmFyIER5Z3JhcGhMYXlvdXQ9ZnVuY3Rpb24oYSl7dGhpcy5keWdyYXBoXz1hO3RoaXMucG9pbnRzPVtdO3RoaXMuc2V0TmFtZXM9W107dGhpcy5hbm5vdGF0aW9ucz1bXTt0aGlzLnlBeGVzXz1udWxsO3RoaXMueFRpY2tzXz1udWxsO3RoaXMueVRpY2tzXz1udWxsfTtEeWdyYXBoTGF5b3V0LnByb3RvdHlwZS5hdHRyXz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5keWdyYXBoXy5hdHRyXyhhKX07RHlncmFwaExheW91dC5wcm90b3R5cGUuYWRkRGF0YXNldD1mdW5jdGlvbihhLGIpe3RoaXMucG9pbnRzLnB1c2goYik7dGhpcy5zZXROYW1lcy5wdXNoKGEpfTtEeWdyYXBoTGF5b3V0LnByb3RvdHlwZS5nZXRQbG90QXJlYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmFyZWFffTtEeWdyYXBoTGF5b3V0LnByb3RvdHlwZS5jb21wdXRlUGxvdEFyZWE9ZnVuY3Rpb24oKXt2YXIgYT17eDowLHk6MH07YS53PXRoaXMuZHlncmFwaF8ud2lkdGhfLWEueC10aGlzLmF0dHJfKCJyaWdodEdhcCIpO2EuaD10aGlzLmR5Z3JhcGhfLmhlaWdodF87dmFyIGI9e2NoYXJ0X2Rpdjp0aGlzLmR5Z3JhcGhfLmdyYXBoRGl2LHJlc2VydmVTcGFjZUxlZnQ6ZnVuY3Rpb24oYyl7dmFyIGQ9e3g6YS54LHk6YS55LHc6YyxoOmEuaH07YS54Kz1jO2Eudy09YztyZXR1cm4gZH0scmVzZXJ2ZVNwYWNlUmlnaHQ6ZnVuY3Rpb24oYyl7dmFyIGQ9e3g6YS54K2Eudy1jLHk6YS55LHc6YyxoOmEuaH07YS53LT1jO3JldHVybiBkfSxyZXNlcnZlU3BhY2VUb3A6ZnVuY3Rpb24oYyl7dmFyIGQ9e3g6YS54LHk6YS55LHc6YS53LGg6Y307YS55Kz1jO2EuaC09YztyZXR1cm4gZH0scmVzZXJ2ZVNwYWNlQm90dG9tOmZ1bmN0aW9uKGMpe3ZhciBkPXt4OmEueCx5OmEueSthLmgtYyx3OmEudyxoOmN9O2EuaC09YztyZXR1cm4gZH0sY2hhcnRSZWN0OmZ1bmN0aW9uKCl7cmV0dXJue3g6YS54LHk6YS55LHc6YS53LGg6YS5ofX19O3RoaXMuZHlncmFwaF8uY2FzY2FkZUV2ZW50c18oImxheW91dCIsYik7dGhpcy5hcmVhXz1hfTtEeWdyYXBoTGF5b3V0LnByb3RvdHlwZS5zZXRBbm5vdGF0aW9ucz1mdW5jdGlvbihkKXt0aGlzLmFubm90YXRpb25zPVtdO3ZhciBlPXRoaXMuYXR0cl8oInhWYWx1ZVBhcnNlciIpfHxmdW5jdGlvbihhKXtyZXR1cm4gYX07Zm9yKHZhciBjPTA7YzxkLmxlbmd0aDtjKyspe3ZhciBiPXt9O2lmKCFkW2NdLnh2YWwmJmRbY10ueD09PXVuZGVmaW5lZCl7dGhpcy5keWdyYXBoXy5lcnJvcigiQW5ub3RhdGlvbnMgbXVzdCBoYXZlIGFuICd4JyBwcm9wZXJ0eSIpO3JldHVybn1pZihkW2NdLmljb24mJiEoZFtjXS5oYXNPd25Qcm9wZXJ0eSgid2lkdGgiKSYmZFtjXS5oYXNPd25Qcm9wZXJ0eSgiaGVpZ2h0IikpKXt0aGlzLmR5Z3JhcGhfLmVycm9yKCJNdXN0IHNldCB3aWR0aCBhbmQgaGVpZ2h0IHdoZW4gc2V0dGluZyBhbm5vdGF0aW9uLmljb24gcHJvcGVydHkiKTtyZXR1cm59RHlncmFwaC51cGRhdGUoYixkW2NdKTtpZighYi54dmFsKXtiLnh2YWw9ZShiLngpfXRoaXMuYW5ub3RhdGlvbnMucHVzaChiKX19O0R5Z3JhcGhMYXlvdXQucHJvdG90eXBlLnNldFhUaWNrcz1mdW5jdGlvbihhKXt0aGlzLnhUaWNrc189YX07RHlncmFwaExheW91dC5wcm90b3R5cGUuc2V0WUF4ZXM9ZnVuY3Rpb24oYSl7dGhpcy55QXhlc189YX07RHlncmFwaExheW91dC5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24oKXt0aGlzLl9ldmFsdWF0ZUxpbWl0cygpO3RoaXMuX2V2YWx1YXRlTGluZUNoYXJ0cygpO3RoaXMuX2V2YWx1YXRlTGluZVRpY2tzKCk7dGhpcy5fZXZhbHVhdGVBbm5vdGF0aW9ucygpfTtEeWdyYXBoTGF5b3V0LnByb3RvdHlwZS5fZXZhbHVhdGVMaW1pdHM9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmR5Z3JhcGhfLnhBeGlzUmFuZ2UoKTt0aGlzLm1pbnh2YWw9YVswXTt0aGlzLm1heHh2YWw9YVsxXTt2YXIgZD1hWzFdLWFbMF07dGhpcy54c2NhbGU9KGQhPT0wPzEvZDoxKTtmb3IodmFyIGI9MDtiPHRoaXMueUF4ZXNfLmxlbmd0aDtiKyspe3ZhciBjPXRoaXMueUF4ZXNfW2JdO2MubWlueXZhbD1jLmNvbXB1dGVkVmFsdWVSYW5nZVswXTtjLm1heHl2YWw9Yy5jb21wdXRlZFZhbHVlUmFuZ2VbMV07Yy55cmFuZ2U9Yy5tYXh5dmFsLWMubWlueXZhbDtjLnlzY2FsZT0oYy55cmFuZ2UhPT0wPzEvYy55cmFuZ2U6MSk7aWYoYy5nLmF0dHJfKCJsb2dzY2FsZSIpKXtjLnlsb2dyYW5nZT1EeWdyYXBoLmxvZzEwKGMubWF4eXZhbCktRHlncmFwaC5sb2cxMChjLm1pbnl2YWwpO2MueWxvZ3NjYWxlPShjLnlsb2dyYW5nZSE9PTA/MS9jLnlsb2dyYW5nZToxKTtpZighaXNGaW5pdGUoYy55bG9ncmFuZ2UpfHxpc05hTihjLnlsb2dyYW5nZSkpe2MuZy5lcnJvcigiYXhpcyAiK2IrIiBvZiBncmFwaCBhdCAiK2MuZysiIGNhbid0IGJlIGRpc3BsYXllZCBpbiBsb2cgc2NhbGUgZm9yIHJhbmdlIFsiK2MubWlueXZhbCsiIC0gIitjLm1heHl2YWwrIl0iKX19fX07RHlncmFwaExheW91dC5fY2FsY1lOb3JtYWw9ZnVuY3Rpb24oYixjLGEpe2lmKGEpe3JldHVybiAxLSgoRHlncmFwaC5sb2cxMChjKS1EeWdyYXBoLmxvZzEwKGIubWlueXZhbCkpKmIueWxvZ3NjYWxlKX1lbHNle3JldHVybiAxLSgoYy1iLm1pbnl2YWwpKmIueXNjYWxlKX19O0R5Z3JhcGhMYXlvdXQucHJvdG90eXBlLl9ldmFsdWF0ZUxpbmVDaGFydHM9ZnVuY3Rpb24oKXt2YXIgYz10aGlzLmF0dHJfKCJjb25uZWN0U2VwYXJhdGVkUG9pbnRzIik7dmFyIGs9dGhpcy5hdHRyXygic3RhY2tlZEdyYXBoIik7dmFyIGU9dGhpcy5hdHRyXygiZXJyb3JCYXJzIil8fHRoaXMuYXR0cl8oImN1c3RvbUJhcnMiKTtmb3IodmFyIGE9MDthPHRoaXMucG9pbnRzLmxlbmd0aDthKyspe3ZhciBsPXRoaXMucG9pbnRzW2FdO3ZhciBmPXRoaXMuc2V0TmFtZXNbYV07dmFyIGI9dGhpcy5keWdyYXBoXy5heGlzUHJvcGVydGllc0ZvclNlcmllcyhmKTt2YXIgZz10aGlzLmR5Z3JhcGhfLmF0dHJpYnV0ZXNfLmdldEZvclNlcmllcygibG9nc2NhbGUiLGYpO2Zvcih2YXIgZD0wO2Q8bC5sZW5ndGg7ZCsrKXt2YXIgaT1sW2RdO2kueD0oaS54dmFsLXRoaXMubWlueHZhbCkqdGhpcy54c2NhbGU7dmFyIGg9aS55dmFsO2lmKGspe2kueV9zdGFja2VkPUR5Z3JhcGhMYXlvdXQuX2NhbGNZTm9ybWFsKGIsaS55dmFsX3N0YWNrZWQsZyk7aWYoaCE9PW51bGwmJiFpc05hTihoKSl7aD1pLnl2YWxfc3RhY2tlZH19aWYoaD09PW51bGwpe2g9TmFOO2lmKCFjKXtpLnl2YWw9TmFOfX1pLnk9RHlncmFwaExheW91dC5fY2FsY1lOb3JtYWwoYixoLGcpO2lmKGUpe2kueV90b3A9RHlncmFwaExheW91dC5fY2FsY1lOb3JtYWwoYixoLWkueXZhbF9taW51cyxnKTtpLnlfYm90dG9tPUR5Z3JhcGhMYXlvdXQuX2NhbGNZTm9ybWFsKGIsaCtpLnl2YWxfcGx1cyxnKX19fX07RHlncmFwaExheW91dC5wYXJzZUZsb2F0Xz1mdW5jdGlvbihhKXtpZihhPT09bnVsbCl7cmV0dXJuIE5hTn1yZXR1cm4gYX07RHlncmFwaExheW91dC5wcm90b3R5cGUuX2V2YWx1YXRlTGluZVRpY2tzPWZ1bmN0aW9uKCl7dmFyIGQsYyxiLGY7dGhpcy54dGlja3M9W107Zm9yKGQ9MDtkPHRoaXMueFRpY2tzXy5sZW5ndGg7ZCsrKXtjPXRoaXMueFRpY2tzX1tkXTtiPWMubGFiZWw7Zj10aGlzLnhzY2FsZSooYy52LXRoaXMubWlueHZhbCk7aWYoKGY+PTApJiYoZjw9MSkpe3RoaXMueHRpY2tzLnB1c2goW2YsYl0pfX10aGlzLnl0aWNrcz1bXTtmb3IoZD0wO2Q8dGhpcy55QXhlc18ubGVuZ3RoO2QrKyl7dmFyIGU9dGhpcy55QXhlc19bZF07Zm9yKHZhciBhPTA7YTxlLnRpY2tzLmxlbmd0aDthKyspe2M9ZS50aWNrc1thXTtiPWMubGFiZWw7Zj10aGlzLmR5Z3JhcGhfLnRvUGVyY2VudFlDb29yZChjLnYsZCk7aWYoKGY+PTApJiYoZjw9MSkpe3RoaXMueXRpY2tzLnB1c2goW2QsZixiXSl9fX19O0R5Z3JhcGhMYXlvdXQucHJvdG90eXBlLl9ldmFsdWF0ZUFubm90YXRpb25zPWZ1bmN0aW9uKCl7dmFyIGQ7dmFyIGc9e307Zm9yKGQ9MDtkPHRoaXMuYW5ub3RhdGlvbnMubGVuZ3RoO2QrKyl7dmFyIGI9dGhpcy5hbm5vdGF0aW9uc1tkXTtnW2IueHZhbCsiLCIrYi5zZXJpZXNdPWJ9dGhpcy5hbm5vdGF0ZWRfcG9pbnRzPVtdO2lmKCF0aGlzLmFubm90YXRpb25zfHwhdGhpcy5hbm5vdGF0aW9ucy5sZW5ndGgpe3JldHVybn1mb3IodmFyIGg9MDtoPHRoaXMucG9pbnRzLmxlbmd0aDtoKyspe3ZhciBlPXRoaXMucG9pbnRzW2hdO2ZvcihkPTA7ZDxlLmxlbmd0aDtkKyspe3ZhciBmPWVbZF07dmFyIGM9Zi54dmFsKyIsIitmLm5hbWU7aWYoYyBpbiBnKXtmLmFubm90YXRpb249Z1tjXTt0aGlzLmFubm90YXRlZF9wb2ludHMucHVzaChmKX19fX07RHlncmFwaExheW91dC5wcm90b3R5cGUucmVtb3ZlQWxsRGF0YXNldHM9ZnVuY3Rpb24oKXtkZWxldGUgdGhpcy5wb2ludHM7ZGVsZXRlIHRoaXMuc2V0TmFtZXM7ZGVsZXRlIHRoaXMuc2V0UG9pbnRzTGVuZ3RocztkZWxldGUgdGhpcy5zZXRQb2ludHNPZmZzZXRzO3RoaXMucG9pbnRzPVtdO3RoaXMuc2V0TmFtZXM9W107dGhpcy5zZXRQb2ludHNMZW5ndGhzPVtdO3RoaXMuc2V0UG9pbnRzT2Zmc2V0cz1bXX07InVzZSBzdHJpY3QiO3ZhciBEeWdyYXBoQ2FudmFzUmVuZGVyZXI9ZnVuY3Rpb24oZCxjLGIsZSl7dGhpcy5keWdyYXBoXz1kO3RoaXMubGF5b3V0PWU7dGhpcy5lbGVtZW50PWM7dGhpcy5lbGVtZW50Q29udGV4dD1iO3RoaXMuY29udGFpbmVyPXRoaXMuZWxlbWVudC5wYXJlbnROb2RlO3RoaXMuaGVpZ2h0PXRoaXMuZWxlbWVudC5oZWlnaHQ7dGhpcy53aWR0aD10aGlzLmVsZW1lbnQud2lkdGg7aWYoIXRoaXMuaXNJRSYmIShEeWdyYXBoQ2FudmFzUmVuZGVyZXIuaXNTdXBwb3J0ZWQodGhpcy5lbGVtZW50KSkpe3Rocm93IkNhbnZhcyBpcyBub3Qgc3VwcG9ydGVkLiJ9dGhpcy5hcmVhPWUuZ2V0UGxvdEFyZWEoKTt0aGlzLmNvbnRhaW5lci5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiO3RoaXMuY29udGFpbmVyLnN0eWxlLndpZHRoPXRoaXMud2lkdGgrInB4IjtpZih0aGlzLmR5Z3JhcGhfLmlzVXNpbmdFeGNhbnZhc18pe3RoaXMuX2NyZWF0ZUlFQ2xpcEFyZWEoKX1lbHNle2lmKCFEeWdyYXBoLmlzQW5kcm9pZCgpKXt2YXIgYT10aGlzLmR5Z3JhcGhfLmNhbnZhc19jdHhfO2EuYmVnaW5QYXRoKCk7YS5yZWN0KHRoaXMuYXJlYS54LHRoaXMuYXJlYS55LHRoaXMuYXJlYS53LHRoaXMuYXJlYS5oKTthLmNsaXAoKTthPXRoaXMuZHlncmFwaF8uaGlkZGVuX2N0eF87YS5iZWdpblBhdGgoKTthLnJlY3QodGhpcy5hcmVhLngsdGhpcy5hcmVhLnksdGhpcy5hcmVhLncsdGhpcy5hcmVhLmgpO2EuY2xpcCgpfX19O0R5Z3JhcGhDYW52YXNSZW5kZXJlci5wcm90b3R5cGUuYXR0cl89ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5keWdyYXBoXy5hdHRyXyhhLGIpfTtEeWdyYXBoQ2FudmFzUmVuZGVyZXIucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dmFyIGE7aWYodGhpcy5pc0lFKXt0cnl7aWYodGhpcy5jbGVhckRlbGF5KXt0aGlzLmNsZWFyRGVsYXkuY2FuY2VsKCk7dGhpcy5jbGVhckRlbGF5PW51bGx9YT10aGlzLmVsZW1lbnRDb250ZXh0fWNhdGNoKGIpe3JldHVybn19YT10aGlzLmVsZW1lbnRDb250ZXh0O2EuY2xlYXJSZWN0KDAsMCx0aGlzLndpZHRoLHRoaXMuaGVpZ2h0KX07RHlncmFwaENhbnZhc1JlbmRlcmVyLmlzU3VwcG9ydGVkPWZ1bmN0aW9uKGYpe3ZhciBiPW51bGw7dHJ5e2lmKHR5cGVvZihmKT09InVuZGVmaW5lZCJ8fGY9PT1udWxsKXtiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpfWVsc2V7Yj1mfWIuZ2V0Q29udGV4dCgiMmQiKX1jYXRjaChjKXt2YXIgZD1uYXZpZ2F0b3IuYXBwVmVyc2lvbi5tYXRjaCgvTVNJRSAoXGRcLlxkKS8pO3ZhciBhPShuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkuaW5kZXhPZigib3BlcmEiKSE9LTEpO2lmKCghZCl8fChkWzFdPDYpfHwoYSkpe3JldHVybiBmYWxzZX1yZXR1cm4gdHJ1ZX1yZXR1cm4gdHJ1ZX07RHlncmFwaENhbnZhc1JlbmRlcmVyLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt0aGlzLl91cGRhdGVQb2ludHMoKTt0aGlzLl9yZW5kZXJMaW5lQ2hhcnQoKX07RHlncmFwaENhbnZhc1JlbmRlcmVyLnByb3RvdHlwZS5fY3JlYXRlSUVDbGlwQXJlYT1mdW5jdGlvbigpe3ZhciBnPSJkeWdyYXBoLWNsaXAtZGl2Ijt2YXIgZj10aGlzLmR5Z3JhcGhfLmdyYXBoRGl2O2Zvcih2YXIgZT1mLmNoaWxkTm9kZXMubGVuZ3RoLTE7ZT49MDtlLS0pe2lmKGYuY2hpbGROb2Rlc1tlXS5jbGFzc05hbWU9PWcpe2YucmVtb3ZlQ2hpbGQoZi5jaGlsZE5vZGVzW2VdKX19dmFyIGM9ZG9jdW1lbnQuYmdDb2xvcjt2YXIgZD10aGlzLmR5Z3JhcGhfLmdyYXBoRGl2O3doaWxlKGQhPWRvY3VtZW50KXt2YXIgYT1kLmN1cnJlbnRTdHlsZS5iYWNrZ3JvdW5kQ29sb3I7aWYoYSYmYSE9InRyYW5zcGFyZW50Iil7Yz1hO2JyZWFrfWQ9ZC5wYXJlbnROb2RlfWZ1bmN0aW9uIGIoail7aWYoai53PT09MHx8ai5oPT09MCl7cmV0dXJufXZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2kuY2xhc3NOYW1lPWc7aS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9YztpLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSI7aS5zdHlsZS5sZWZ0PWoueCsicHgiO2kuc3R5bGUudG9wPWoueSsicHgiO2kuc3R5bGUud2lkdGg9ai53KyJweCI7aS5zdHlsZS5oZWlnaHQ9ai5oKyJweCI7Zi5hcHBlbmRDaGlsZChpKX12YXIgaD10aGlzLmFyZWE7Yih7eDowLHk6MCx3OmgueCxoOnRoaXMuaGVpZ2h0fSk7Yih7eDpoLngseTowLHc6dGhpcy53aWR0aC1oLngsaDpoLnl9KTtiKHt4OmgueCtoLncseTowLHc6dGhpcy53aWR0aC1oLngtaC53LGg6dGhpcy5oZWlnaHR9KTtiKHt4OmgueCx5OmgueStoLmgsdzp0aGlzLndpZHRoLWgueCxoOnRoaXMuaGVpZ2h0LWguaC1oLnl9KX07RHlncmFwaENhbnZhc1JlbmRlcmVyLl9nZXRJdGVyYXRvclByZWRpY2F0ZT1mdW5jdGlvbihhKXtyZXR1cm4gYT9EeWdyYXBoQ2FudmFzUmVuZGVyZXIuX3ByZWRpY2F0ZVRoYXRTa2lwc0VtcHR5UG9pbnRzOm51bGx9O0R5Z3JhcGhDYW52YXNSZW5kZXJlci5fcHJlZGljYXRlVGhhdFNraXBzRW1wdHlQb2ludHM9ZnVuY3Rpb24oYixhKXtyZXR1cm4gYlthXS55dmFsIT09bnVsbH07RHlncmFwaENhbnZhc1JlbmRlcmVyLl9kcmF3U3R5bGVkTGluZT1mdW5jdGlvbihpLGEsbSxxLGYsbixkKXt2YXIgaD1pLmR5Z3JhcGg7dmFyIGM9aC5nZXRPcHRpb24oInN0ZXBQbG90IixpLnNldE5hbWUpO2lmKCFEeWdyYXBoLmlzQXJyYXlMaWtlKHEpKXtxPW51bGx9dmFyIGw9aC5nZXRPcHRpb24oImRyYXdHYXBFZGdlUG9pbnRzIixpLnNldE5hbWUpO3ZhciBvPWkucG9pbnRzO3ZhciBrPUR5Z3JhcGguY3JlYXRlSXRlcmF0b3IobywwLG8ubGVuZ3RoLER5Z3JhcGhDYW52YXNSZW5kZXJlci5fZ2V0SXRlcmF0b3JQcmVkaWNhdGUoaC5nZXRPcHRpb24oImNvbm5lY3RTZXBhcmF0ZWRQb2ludHMiKSkpO3ZhciBqPXEmJihxLmxlbmd0aD49Mik7dmFyIHA9aS5kcmF3aW5nQ29udGV4dDtwLnNhdmUoKTtpZihqKXtwLmluc3RhbGxQYXR0ZXJuKHEpfXZhciBiPUR5Z3JhcGhDYW52YXNSZW5kZXJlci5fZHJhd1NlcmllcyhpLGssbSxkLGYsbCxjLGEpO0R5Z3JhcGhDYW52YXNSZW5kZXJlci5fZHJhd1BvaW50c09uTGluZShpLGIsbixhLGQpO2lmKGope3AudW5pbnN0YWxsUGF0dGVybigpfXAucmVzdG9yZSgpfTtEeWdyYXBoQ2FudmFzUmVuZGVyZXIuX2RyYXdTZXJpZXM9ZnVuY3Rpb24odix0LG0saCxwLHMsZyxxKXt2YXIgYj1udWxsO3ZhciB3PW51bGw7dmFyIGs9bnVsbDt2YXIgajt2YXIgbzt2YXIgbD1bXTt2YXIgZj10cnVlO3ZhciBuPXYuZHJhd2luZ0NvbnRleHQ7bi5iZWdpblBhdGgoKTtuLnN0cm9rZVN0eWxlPXE7bi5saW5lV2lkdGg9bTt2YXIgYz10LmFycmF5Xzt2YXIgdT10LmVuZF87dmFyIGE9dC5wcmVkaWNhdGVfO2Zvcih2YXIgcj10LnN0YXJ0XztyPHU7cisrKXtvPWNbcl07aWYoYSl7d2hpbGUocjx1JiYhYShjLHIpKXtyKyt9aWYocj09dSl7YnJlYWt9bz1jW3JdfWlmKG8uY2FudmFzeT09PW51bGx8fG8uY2FudmFzeSE9by5jYW52YXN5KXtpZihnJiZiIT09bnVsbCl7bi5tb3ZlVG8oYix3KTtuLmxpbmVUbyhvLmNhbnZhc3gsdyl9Yj13PW51bGx9ZWxzZXtqPWZhbHNlO2lmKHN8fCFiKXt0Lm5leHRJZHhfPXI7dC5uZXh0KCk7az10Lmhhc05leHQ/dC5wZWVrLmNhbnZhc3k6bnVsbDt2YXIgZD1rPT09bnVsbHx8ayE9aztqPSghYiYmZCk7aWYocyl7aWYoKCFmJiYhYil8fCh0Lmhhc05leHQmJmQpKXtqPXRydWV9fX1pZihiIT09bnVsbCl7aWYobSl7aWYoZyl7bi5tb3ZlVG8oYix3KTtuLmxpbmVUbyhvLmNhbnZhc3gsdyl9bi5saW5lVG8oby5jYW52YXN4LG8uY2FudmFzeSl9fWVsc2V7bi5tb3ZlVG8oby5jYW52YXN4LG8uY2FudmFzeSl9aWYocHx8ail7bC5wdXNoKFtvLmNhbnZhc3gsby5jYW52YXN5LG8uaWR4XSl9Yj1vLmNhbnZhc3g7dz1vLmNhbnZhc3l9Zj1mYWxzZX1uLnN0cm9rZSgpO3JldHVybiBsfTtEeWdyYXBoQ2FudmFzUmVuZGVyZXIuX2RyYXdQb2ludHNPbkxpbmU9ZnVuY3Rpb24oaCxpLGYsZCxnKXt2YXIgYz1oLmRyYXdpbmdDb250ZXh0O2Zvcih2YXIgYj0wO2I8aS5sZW5ndGg7YisrKXt2YXIgYT1pW2JdO2Muc2F2ZSgpO2YoaC5keWdyYXBoLGguc2V0TmFtZSxjLGFbMF0sYVsxXSxkLGcsYVsyXSk7Yy5yZXN0b3JlKCl9fTtEeWdyYXBoQ2FudmFzUmVuZGVyZXIucHJvdG90eXBlLl91cGRhdGVQb2ludHM9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmxheW91dC5wb2ludHM7Zm9yKHZhciBjPWUubGVuZ3RoO2MtLTspe3ZhciBkPWVbY107Zm9yKHZhciBiPWQubGVuZ3RoO2ItLTspe3ZhciBhPWRbYl07YS5jYW52YXN4PXRoaXMuYXJlYS53KmEueCt0aGlzLmFyZWEueDthLmNhbnZhc3k9dGhpcy5hcmVhLmgqYS55K3RoaXMuYXJlYS55fX19O0R5Z3JhcGhDYW52YXNSZW5kZXJlci5wcm90b3R5cGUuX3JlbmRlckxpbmVDaGFydD1mdW5jdGlvbihnLHUpe3ZhciBoPXV8fHRoaXMuZWxlbWVudENvbnRleHQ7dmFyIG47dmFyIGE9dGhpcy5sYXlvdXQucG9pbnRzO3ZhciBzPXRoaXMubGF5b3V0LnNldE5hbWVzO3ZhciBiO3RoaXMuY29sb3JzPXRoaXMuZHlncmFwaF8uY29sb3JzTWFwXzt2YXIgbz10aGlzLmF0dHJfKCJwbG90dGVyIik7dmFyIGY9bztpZighRHlncmFwaC5pc0FycmF5TGlrZShmKSl7Zj1bZl19dmFyIGM9e307Zm9yKG49MDtuPHMubGVuZ3RoO24rKyl7Yj1zW25dO3ZhciB0PXRoaXMuYXR0cl8oInBsb3R0ZXIiLGIpO2lmKHQ9PW8pe2NvbnRpbnVlfWNbYl09dH1mb3Iobj0wO248Zi5sZW5ndGg7bisrKXt2YXIgcj1mW25dO3ZhciBxPShuPT1mLmxlbmd0aC0xKTtmb3IodmFyIGw9MDtsPGEubGVuZ3RoO2wrKyl7Yj1zW2xdO2lmKGcmJmIhPWcpe2NvbnRpbnVlfXZhciBtPWFbbF07dmFyIGU9cjtpZihiIGluIGMpe2lmKHEpe2U9Y1tiXX1lbHNle2NvbnRpbnVlfX12YXIgaz10aGlzLmNvbG9yc1tiXTt2YXIgZD10aGlzLmR5Z3JhcGhfLmdldE9wdGlvbigic3Ryb2tlV2lkdGgiLGIpO2guc2F2ZSgpO2guc3Ryb2tlU3R5bGU9aztoLmxpbmVXaWR0aD1kO2Uoe3BvaW50czptLHNldE5hbWU6YixkcmF3aW5nQ29udGV4dDpoLGNvbG9yOmssc3Ryb2tlV2lkdGg6ZCxkeWdyYXBoOnRoaXMuZHlncmFwaF8sYXhpczp0aGlzLmR5Z3JhcGhfLmF4aXNQcm9wZXJ0aWVzRm9yU2VyaWVzKGIpLHBsb3RBcmVhOnRoaXMuYXJlYSxzZXJpZXNJbmRleDpsLHNlcmllc0NvdW50OmEubGVuZ3RoLHNpbmdsZVNlcmllc05hbWU6ZyxhbGxTZXJpZXNQb2ludHM6YX0pO2gucmVzdG9yZSgpfX19O0R5Z3JhcGhDYW52YXNSZW5kZXJlci5fUGxvdHRlcnM9e2xpbmVQbG90dGVyOmZ1bmN0aW9uKGEpe0R5Z3JhcGhDYW52YXNSZW5kZXJlci5fbGluZVBsb3R0ZXIoYSl9LGZpbGxQbG90dGVyOmZ1bmN0aW9uKGEpe0R5Z3JhcGhDYW52YXNSZW5kZXJlci5fZmlsbFBsb3R0ZXIoYSl9LGVycm9yUGxvdHRlcjpmdW5jdGlvbihhKXtEeWdyYXBoQ2FudmFzUmVuZGVyZXIuX2Vycm9yUGxvdHRlcihhKX19O0R5Z3JhcGhDYW52YXNSZW5kZXJlci5fbGluZVBsb3R0ZXI9ZnVuY3Rpb24oZil7dmFyIGQ9Zi5keWdyYXBoO3ZhciBoPWYuc2V0TmFtZTt2YXIgaT1mLnN0cm9rZVdpZHRoO3ZhciBhPWQuZ2V0T3B0aW9uKCJzdHJva2VCb3JkZXJXaWR0aCIsaCk7dmFyIGo9ZC5nZXRPcHRpb24oImRyYXdQb2ludENhbGxiYWNrIixoKXx8RHlncmFwaC5DaXJjbGVzLkRFRkFVTFQ7dmFyIGs9ZC5nZXRPcHRpb24oInN0cm9rZVBhdHRlcm4iLGgpO3ZhciBjPWQuZ2V0T3B0aW9uKCJkcmF3UG9pbnRzIixoKTt2YXIgYj1kLmdldE9wdGlvbigicG9pbnRTaXplIixoKTtpZihhJiZpKXtEeWdyYXBoQ2FudmFzUmVuZGVyZXIuX2RyYXdTdHlsZWRMaW5lKGYsZC5nZXRPcHRpb24oInN0cm9rZUJvcmRlckNvbG9yIixoKSxpKzIqYSxrLGMsaixiKX1EeWdyYXBoQ2FudmFzUmVuZGVyZXIuX2RyYXdTdHlsZWRMaW5lKGYsZi5jb2xvcixpLGssYyxqLGIpfTtEeWdyYXBoQ2FudmFzUmVuZGVyZXIuX2Vycm9yUGxvdHRlcj1mdW5jdGlvbihzKXt2YXIgcj1zLmR5Z3JhcGg7dmFyIGY9cy5zZXROYW1lO3ZhciB0PXIuZ2V0T3B0aW9uKCJlcnJvckJhcnMiKXx8ci5nZXRPcHRpb24oImN1c3RvbUJhcnMiKTtpZighdCl7cmV0dXJufXZhciBrPXIuZ2V0T3B0aW9uKCJmaWxsR3JhcGgiLGYpO2lmKGspe3Iud2FybigiQ2FuJ3QgdXNlIGZpbGxHcmFwaCBvcHRpb24gd2l0aCBlcnJvciBiYXJzIil9dmFyIG09cy5kcmF3aW5nQ29udGV4dDt2YXIgbj1zLmNvbG9yO3ZhciBvPXIuZ2V0T3B0aW9uKCJmaWxsQWxwaGEiLGYpO3ZhciBpPXIuZ2V0T3B0aW9uKCJzdGVwUGxvdCIsZik7dmFyIHA9cy5wb2ludHM7dmFyIHE9RHlncmFwaC5jcmVhdGVJdGVyYXRvcihwLDAscC5sZW5ndGgsRHlncmFwaENhbnZhc1JlbmRlcmVyLl9nZXRJdGVyYXRvclByZWRpY2F0ZShyLmdldE9wdGlvbigiY29ubmVjdFNlcGFyYXRlZFBvaW50cyIpKSk7dmFyIGo7dmFyIGg9TmFOO3ZhciBjPU5hTjt2YXIgZD1bLTEsLTFdO3ZhciBhPW5ldyBSR0JDb2xvclBhcnNlcihuKTt2YXIgdT0icmdiYSgiK2EucisiLCIrYS5nKyIsIithLmIrIiwiK28rIikiO20uZmlsbFN0eWxlPXU7bS5iZWdpblBhdGgoKTt2YXIgYj1mdW5jdGlvbihlKXtyZXR1cm4oZT09PW51bGx8fGU9PT11bmRlZmluZWR8fGlzTmFOKGUpKX07d2hpbGUocS5oYXNOZXh0KXt2YXIgbD1xLm5leHQoKTtpZigoIWkmJmIobC55KSl8fChpJiYhaXNOYU4oYykmJmIoYykpKXtoPU5hTjtjb250aW51ZX1pZihpKXtqPVtsLnlfYm90dG9tLGwueV90b3BdO2M9bC55fWVsc2V7aj1bbC55X2JvdHRvbSxsLnlfdG9wXX1qWzBdPXMucGxvdEFyZWEuaCpqWzBdK3MucGxvdEFyZWEueTtqWzFdPXMucGxvdEFyZWEuaCpqWzFdK3MucGxvdEFyZWEueTtpZighaXNOYU4oaCkpe2lmKGkpe20ubW92ZVRvKGgsZFswXSk7bS5saW5lVG8obC5jYW52YXN4LGRbMF0pO20ubGluZVRvKGwuY2FudmFzeCxkWzFdKX1lbHNle20ubW92ZVRvKGgsZFswXSk7bS5saW5lVG8obC5jYW52YXN4LGpbMF0pO20ubGluZVRvKGwuY2FudmFzeCxqWzFdKX1tLmxpbmVUbyhoLGRbMV0pO20uY2xvc2VQYXRoKCl9ZD1qO2g9bC5jYW52YXN4fW0uZmlsbCgpfTtEeWdyYXBoQ2FudmFzUmVuZGVyZXIuX2ZpbGxQbG90dGVyPWZ1bmN0aW9uKEYpe2lmKEYuc2luZ2xlU2VyaWVzTmFtZSl7cmV0dXJufWlmKEYuc2VyaWVzSW5kZXghPT0wKXtyZXR1cm59dmFyIEQ9Ri5keWdyYXBoO3ZhciBJPUQuZ2V0TGFiZWxzKCkuc2xpY2UoMSk7Zm9yKHZhciBDPUkubGVuZ3RoO0M+PTA7Qy0tKXtpZighRC52aXNpYmlsaXR5KClbQ10pe0kuc3BsaWNlKEMsMSl9fXZhciBoPShmdW5jdGlvbigpe2Zvcih2YXIgZT0wO2U8SS5sZW5ndGg7ZSsrKXtpZihELmdldE9wdGlvbigiZmlsbEdyYXBoIixJW2VdKSl7cmV0dXJuIHRydWV9fXJldHVybiBmYWxzZX0pKCk7aWYoIWgpe3JldHVybn12YXIgdz1GLmRyYXdpbmdDb250ZXh0O3ZhciBFPUYucGxvdEFyZWE7dmFyIGM9Ri5hbGxTZXJpZXNQb2ludHM7dmFyIHo9Yy5sZW5ndGg7dmFyIHk9RC5nZXRPcHRpb24oImZpbGxBbHBoYSIpO3ZhciBrPUQuZ2V0T3B0aW9uKCJzdGFja2VkR3JhcGgiKTt2YXIgcT1ELmdldENvbG9ycygpO3ZhciBzPXt9O3ZhciBhO3ZhciByO2Zvcih2YXIgdT16LTE7dT49MDt1LS0pe3ZhciBuPUlbdV07aWYoIUQuZ2V0T3B0aW9uKCJmaWxsR3JhcGgiLG4pKXtjb250aW51ZX12YXIgcD1ELmdldE9wdGlvbigic3RlcFBsb3QiLG4pO3ZhciB4PXFbdV07dmFyIGY9RC5heGlzUHJvcGVydGllc0ZvclNlcmllcyhuKTt2YXIgZD0xK2YubWlueXZhbCpmLnlzY2FsZTtpZihkPDApe2Q9MH1lbHNle2lmKGQ+MSl7ZD0xfX1kPUUuaCpkK0UueTt2YXIgQj1jW3VdO3ZhciBBPUR5Z3JhcGguY3JlYXRlSXRlcmF0b3IoQiwwLEIubGVuZ3RoLER5Z3JhcGhDYW52YXNSZW5kZXJlci5fZ2V0SXRlcmF0b3JQcmVkaWNhdGUoRC5nZXRPcHRpb24oImNvbm5lY3RTZXBhcmF0ZWRQb2ludHMiKSkpO3ZhciBtPU5hTjt2YXIgbD1bLTEsLTFdO3ZhciB0O3ZhciBiPW5ldyBSR0JDb2xvclBhcnNlcih4KTt2YXIgSD0icmdiYSgiK2IucisiLCIrYi5nKyIsIitiLmIrIiwiK3krIikiO3cuZmlsbFN0eWxlPUg7dy5iZWdpblBhdGgoKTt2YXIgaixHPXRydWU7d2hpbGUoQS5oYXNOZXh0KXt2YXIgdj1BLm5leHQoKTtpZighRHlncmFwaC5pc09LKHYueSkpe209TmFOO2lmKHYueV9zdGFja2VkIT09bnVsbCYmIWlzTmFOKHYueV9zdGFja2VkKSl7c1t2LmNhbnZhc3hdPUUuaCp2Lnlfc3RhY2tlZCtFLnl9Y29udGludWV9aWYoayl7aWYoIUcmJmo9PXYueHZhbCl7Y29udGludWV9ZWxzZXtHPWZhbHNlO2o9di54dmFsfWE9c1t2LmNhbnZhc3hdO3ZhciBvO2lmKGE9PT11bmRlZmluZWQpe289ZH1lbHNle2lmKHIpe289YVswXX1lbHNle289YX19dD1bdi5jYW52YXN5LG9dO2lmKHApe2lmKGxbMF09PT0tMSl7c1t2LmNhbnZhc3hdPVt2LmNhbnZhc3ksZF19ZWxzZXtzW3YuY2FudmFzeF09W3YuY2FudmFzeSxsWzBdXX19ZWxzZXtzW3YuY2FudmFzeF09di5jYW52YXN5fX1lbHNle3Q9W3YuY2FudmFzeSxkXX1pZighaXNOYU4obSkpe3cubW92ZVRvKG0sbFswXSk7aWYocCl7dy5saW5lVG8odi5jYW52YXN4LGxbMF0pfWVsc2V7dy5saW5lVG8odi5jYW52YXN4LHRbMF0pfWlmKHImJmEpe3cubGluZVRvKHYuY2FudmFzeCxhWzFdKX1lbHNle3cubGluZVRvKHYuY2FudmFzeCx0WzFdKX13LmxpbmVUbyhtLGxbMV0pO3cuY2xvc2VQYXRoKCl9bD10O209di5jYW52YXN4fXI9cDt3LmZpbGwoKX19OyJ1c2Ugc3RyaWN0Ijt2YXIgRHlncmFwaD1mdW5jdGlvbihkLGMsYixhKXt0aGlzLmlzX2luaXRpYWxfZHJhd189dHJ1ZTt0aGlzLnJlYWR5Rm5zXz1bXTtpZihhIT09dW5kZWZpbmVkKXt0aGlzLndhcm4oIlVzaW5nIGRlcHJlY2F0ZWQgZm91ci1hcmd1bWVudCBkeWdyYXBoIGNvbnN0cnVjdG9yIik7dGhpcy5fX29sZF9pbml0X18oZCxjLGIsYSl9ZWxzZXt0aGlzLl9faW5pdF9fKGQsYyxiKX19O0R5Z3JhcGguTkFNRT0iRHlncmFwaCI7RHlncmFwaC5WRVJTSU9OPSIxLjAuMSI7RHlncmFwaC5fX3JlcHJfXz1mdW5jdGlvbigpe3JldHVybiJbIit0aGlzLk5BTUUrIiAiK3RoaXMuVkVSU0lPTisiXSJ9O0R5Z3JhcGgudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fX3JlcHJfXygpfTtEeWdyYXBoLkRFRkFVTFRfUk9MTF9QRVJJT0Q9MTtEeWdyYXBoLkRFRkFVTFRfV0lEVEg9NDgwO0R5Z3JhcGguREVGQVVMVF9IRUlHSFQ9MzIwO0R5Z3JhcGguQU5JTUFUSU9OX1NURVBTPTEyO0R5Z3JhcGguQU5JTUFUSU9OX0RVUkFUSU9OPTIwMDtEeWdyYXBoLktNQl9MQUJFTFM9WyJLIiwiTSIsIkIiLCJUIiwiUSJdO0R5Z3JhcGguS01HMl9CSUdfTEFCRUxTPVsiayIsIk0iLCJHIiwiVCIsIlAiLCJFIiwiWiIsIlkiXTtEeWdyYXBoLktNRzJfU01BTExfTEFCRUxTPVsibSIsInUiLCJuIiwicCIsImYiLCJhIiwieiIsInkiXTtEeWdyYXBoLm51bWJlclZhbHVlRm9ybWF0dGVyPWZ1bmN0aW9uKHMsYSx1LGwpe3ZhciBlPWEoInNpZ0ZpZ3MiKTtpZihlIT09bnVsbCl7cmV0dXJuIER5Z3JhcGguZmxvYXRGb3JtYXQocyxlKX12YXIgYz1hKCJkaWdpdHNBZnRlckRlY2ltYWwiKTt2YXIgbz1hKCJtYXhOdW1iZXJXaWR0aCIpO3ZhciBiPWEoImxhYmVsc0tNQiIpO3ZhciByPWEoImxhYmVsc0tNRzIiKTt2YXIgcTtpZihzIT09MCYmKE1hdGguYWJzKHMpPj1NYXRoLnBvdygxMCxvKXx8TWF0aC5hYnMocyk8TWF0aC5wb3coMTAsLWMpKSl7cT1zLnRvRXhwb25lbnRpYWwoYyl9ZWxzZXtxPSIiK0R5Z3JhcGgucm91bmRfKHMsYyl9aWYoYnx8cil7dmFyIGY7dmFyIHQ9W107dmFyIG09W107aWYoYil7Zj0xMDAwO3Q9RHlncmFwaC5LTUJfTEFCRUxTfWlmKHIpe2lmKGIpe0R5Z3JhcGgud2FybigiU2V0dGluZyBib3RoIGxhYmVsc0tNQiBhbmQgbGFiZWxzS01HMi4gUGljayBvbmUhIil9Zj0xMDI0O3Q9RHlncmFwaC5LTUcyX0JJR19MQUJFTFM7bT1EeWdyYXBoLktNRzJfU01BTExfTEFCRUxTfXZhciBwPU1hdGguYWJzKHMpO3ZhciBkPUR5Z3JhcGgucG93KGYsdC5sZW5ndGgpO2Zvcih2YXIgaD10Lmxlbmd0aC0xO2g+PTA7aC0tLGQvPWYpe2lmKHA+PWQpe3E9RHlncmFwaC5yb3VuZF8ocy9kLGMpK3RbaF07YnJlYWt9fWlmKHIpe3ZhciBpPVN0cmluZyhzLnRvRXhwb25lbnRpYWwoKSkuc3BsaXQoImUtIik7aWYoaS5sZW5ndGg9PT0yJiZpWzFdPj0zJiZpWzFdPD0yNCl7aWYoaVsxXSUzPjApe3E9RHlncmFwaC5yb3VuZF8oaVswXS9EeWdyYXBoLnBvdygxMCwoaVsxXSUzKSksYyl9ZWxzZXtxPU51bWJlcihpWzBdKS50b0ZpeGVkKDIpfXErPW1bTWF0aC5mbG9vcihpWzFdLzMpLTFdfX19cmV0dXJuIHF9O0R5Z3JhcGgubnVtYmVyQXhpc0xhYmVsRm9ybWF0dGVyPWZ1bmN0aW9uKGEsZCxjLGIpe3JldHVybiBEeWdyYXBoLm51bWJlclZhbHVlRm9ybWF0dGVyKGEsYyxiKX07RHlncmFwaC5kYXRlU3RyaW5nXz1mdW5jdGlvbihlKXt2YXIgaT1EeWdyYXBoLnplcm9wYWQ7dmFyIGg9bmV3IERhdGUoZSk7dmFyIGY9IiIraC5nZXRGdWxsWWVhcigpO3ZhciBnPWkoaC5nZXRNb250aCgpKzEpO3ZhciBhPWkoaC5nZXREYXRlKCkpO3ZhciBjPSIiO3ZhciBiPWguZ2V0SG91cnMoKSozNjAwK2guZ2V0TWludXRlcygpKjYwK2guZ2V0U2Vjb25kcygpO2lmKGIpe2M9IiAiK0R5Z3JhcGguaG1zU3RyaW5nXyhlKX1yZXR1cm4gZisiLyIrZysiLyIrYStjfTtEeWdyYXBoLmRhdGVBeGlzRm9ybWF0dGVyPWZ1bmN0aW9uKGIsYyl7aWYoYz49RHlncmFwaC5ERUNBREFMKXtyZXR1cm4gYi5zdHJmdGltZSgiJVkiKX1lbHNle2lmKGM+PUR5Z3JhcGguTU9OVEhMWSl7cmV0dXJuIGIuc3RyZnRpbWUoIiViICV5Iil9ZWxzZXt2YXIgYT1iLmdldEhvdXJzKCkqMzYwMCtiLmdldE1pbnV0ZXMoKSo2MCtiLmdldFNlY29uZHMoKStiLmdldE1pbGxpc2Vjb25kcygpO2lmKGE9PT0wfHxjPj1EeWdyYXBoLkRBSUxZKXtyZXR1cm4gbmV3IERhdGUoYi5nZXRUaW1lKCkrMzYwMCoxMDAwKS5zdHJmdGltZSgiJWQlYiIpfWVsc2V7cmV0dXJuIER5Z3JhcGguaG1zU3RyaW5nXyhiLmdldFRpbWUoKSl9fX19O0R5Z3JhcGguUGxvdHRlcnM9RHlncmFwaENhbnZhc1JlbmRlcmVyLl9QbG90dGVycztEeWdyYXBoLkRFRkFVTFRfQVRUUlM9e2hpZ2hsaWdodENpcmNsZVNpemU6MyxoaWdobGlnaHRTZXJpZXNPcHRzOm51bGwsaGlnaGxpZ2h0U2VyaWVzQmFja2dyb3VuZEFscGhhOjAuNSxsYWJlbHNEaXZXaWR0aDoyNTAsbGFiZWxzRGl2U3R5bGVzOnt9LGxhYmVsc1NlcGFyYXRlTGluZXM6ZmFsc2UsbGFiZWxzU2hvd1plcm9WYWx1ZXM6dHJ1ZSxsYWJlbHNLTUI6ZmFsc2UsbGFiZWxzS01HMjpmYWxzZSxzaG93TGFiZWxzT25IaWdobGlnaHQ6dHJ1ZSxkaWdpdHNBZnRlckRlY2ltYWw6MixtYXhOdW1iZXJXaWR0aDo2LHNpZ0ZpZ3M6bnVsbCxzdHJva2VXaWR0aDoxLHN0cm9rZUJvcmRlcldpZHRoOjAsc3Ryb2tlQm9yZGVyQ29sb3I6IndoaXRlIixheGlzVGlja1NpemU6MyxheGlzTGFiZWxGb250U2l6ZToxNCx4QXhpc0xhYmVsV2lkdGg6NTAseUF4aXNMYWJlbFdpZHRoOjUwLHJpZ2h0R2FwOjUsc2hvd1JvbGxlcjpmYWxzZSx4VmFsdWVQYXJzZXI6RHlncmFwaC5kYXRlUGFyc2VyLGRlbGltaXRlcjoiLCIsc2lnbWE6MixlcnJvckJhcnM6ZmFsc2UsZnJhY3Rpb25zOmZhbHNlLHdpbHNvbkludGVydmFsOnRydWUsY3VzdG9tQmFyczpmYWxzZSxmaWxsR3JhcGg6ZmFsc2UsZmlsbEFscGhhOjAuMTUsY29ubmVjdFNlcGFyYXRlZFBvaW50czpmYWxzZSxzdGFja2VkR3JhcGg6ZmFsc2Usc3RhY2tlZEdyYXBoTmFORmlsbDoiYWxsIixoaWRlT3ZlcmxheU9uTW91c2VPdXQ6dHJ1ZSxsZWdlbmQ6Im9ubW91c2VvdmVyIixzdGVwUGxvdDpmYWxzZSxhdm9pZE1pblplcm86ZmFsc2UseFJhbmdlUGFkOjAseVJhbmdlUGFkOm51bGwsZHJhd0F4ZXNBdFplcm86ZmFsc2UsdGl0bGVIZWlnaHQ6MjgseExhYmVsSGVpZ2h0OjE4LHlMYWJlbFdpZHRoOjE4LGRyYXdYQXhpczp0cnVlLGRyYXdZQXhpczp0cnVlLGF4aXNMaW5lQ29sb3I6ImJsYWNrIixheGlzTGluZVdpZHRoOjAuMyxncmlkTGluZVdpZHRoOjAuMyxheGlzTGFiZWxDb2xvcjoiYmxhY2siLGF4aXNMYWJlbEZvbnQ6IkFyaWFsIixheGlzTGFiZWxXaWR0aDo1MCxkcmF3WUdyaWQ6dHJ1ZSxkcmF3WEdyaWQ6dHJ1ZSxncmlkTGluZUNvbG9yOiJyZ2IoMTI4LDEyOCwxMjgpIixpbnRlcmFjdGlvbk1vZGVsOm51bGwsYW5pbWF0ZWRab29tczpmYWxzZSxzaG93UmFuZ2VTZWxlY3RvcjpmYWxzZSxyYW5nZVNlbGVjdG9ySGVpZ2h0OjQwLHJhbmdlU2VsZWN0b3JQbG90U3Ryb2tlQ29sb3I6IiM4MDhGQUIiLHJhbmdlU2VsZWN0b3JQbG90RmlsbENvbG9yOiIjQTdCMUM0IixwbG90dGVyOltEeWdyYXBoLlBsb3R0ZXJzLmZpbGxQbG90dGVyLER5Z3JhcGguUGxvdHRlcnMuZXJyb3JQbG90dGVyLER5Z3JhcGguUGxvdHRlcnMubGluZVBsb3R0ZXJdLHBsdWdpbnM6W10sYXhlczp7eDp7cGl4ZWxzUGVyTGFiZWw6NjAsYXhpc0xhYmVsRm9ybWF0dGVyOkR5Z3JhcGguZGF0ZUF4aXNGb3JtYXR0ZXIsdmFsdWVGb3JtYXR0ZXI6RHlncmFwaC5kYXRlU3RyaW5nXyxkcmF3R3JpZDp0cnVlLGluZGVwZW5kZW50VGlja3M6dHJ1ZSx0aWNrZXI6bnVsbH0seTp7cGl4ZWxzUGVyTGFiZWw6MzAsdmFsdWVGb3JtYXR0ZXI6RHlncmFwaC5udW1iZXJWYWx1ZUZvcm1hdHRlcixheGlzTGFiZWxGb3JtYXR0ZXI6RHlncmFwaC5udW1iZXJBeGlzTGFiZWxGb3JtYXR0ZXIsZHJhd0dyaWQ6dHJ1ZSxpbmRlcGVuZGVudFRpY2tzOnRydWUsdGlja2VyOm51bGx9LHkyOntwaXhlbHNQZXJMYWJlbDozMCx2YWx1ZUZvcm1hdHRlcjpEeWdyYXBoLm51bWJlclZhbHVlRm9ybWF0dGVyLGF4aXNMYWJlbEZvcm1hdHRlcjpEeWdyYXBoLm51bWJlckF4aXNMYWJlbEZvcm1hdHRlcixkcmF3R3JpZDpmYWxzZSxpbmRlcGVuZGVudFRpY2tzOmZhbHNlLHRpY2tlcjpudWxsfX19O0R5Z3JhcGguSE9SSVpPTlRBTD0xO0R5Z3JhcGguVkVSVElDQUw9MjtEeWdyYXBoLlBMVUdJTlM9W107RHlncmFwaC5hZGRlZEFubm90YXRpb25DU1M9ZmFsc2U7RHlncmFwaC5wcm90b3R5cGUuX19vbGRfaW5pdF9fPWZ1bmN0aW9uKGYsZCxlLGIpe2lmKGUhPT1udWxsKXt2YXIgYT1bIkRhdGUiXTtmb3IodmFyIGM9MDtjPGUubGVuZ3RoO2MrKyl7YS5wdXNoKGVbY10pfUR5Z3JhcGgudXBkYXRlKGIse2xhYmVsczphfSl9dGhpcy5fX2luaXRfXyhmLGQsYil9O0R5Z3JhcGgucHJvdG90eXBlLl9faW5pdF9fPWZ1bmN0aW9uKGEsYyxsKXtpZigvTVNJRS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmIXdpbmRvdy5vcGVyYSYmdHlwZW9mKEdfdm1sQ2FudmFzTWFuYWdlcikhPSJ1bmRlZmluZWQiJiZkb2N1bWVudC5yZWFkeVN0YXRlIT0iY29tcGxldGUiKXt2YXIgbz10aGlzO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtvLl9faW5pdF9fKGEsYyxsKX0sMTAwKTtyZXR1cm59aWYobD09PW51bGx8fGw9PT11bmRlZmluZWQpe2w9e319bD1EeWdyYXBoLm1hcExlZ2FjeU9wdGlvbnNfKGwpO2lmKHR5cGVvZihhKT09InN0cmluZyIpe2E9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYSl9aWYoIWEpe0R5Z3JhcGguZXJyb3IoIkNvbnN0cnVjdGluZyBkeWdyYXBoIHdpdGggYSBub24tZXhpc3RlbnQgZGl2ISIpO3JldHVybn10aGlzLmlzVXNpbmdFeGNhbnZhc189dHlwZW9mKEdfdm1sQ2FudmFzTWFuYWdlcikhPSJ1bmRlZmluZWQiO3RoaXMubWFpbmRpdl89YTt0aGlzLmZpbGVfPWM7dGhpcy5yb2xsUGVyaW9kXz1sLnJvbGxQZXJpb2R8fER5Z3JhcGguREVGQVVMVF9ST0xMX1BFUklPRDt0aGlzLnByZXZpb3VzVmVydGljYWxYXz0tMTt0aGlzLmZyYWN0aW9uc189bC5mcmFjdGlvbnN8fGZhbHNlO3RoaXMuZGF0ZVdpbmRvd189bC5kYXRlV2luZG93fHxudWxsO3RoaXMuYW5ub3RhdGlvbnNfPVtdO3RoaXMuem9vbWVkX3hfPWZhbHNlO3RoaXMuem9vbWVkX3lfPWZhbHNlO2EuaW5uZXJIVE1MPSIiO2lmKGEuc3R5bGUud2lkdGg9PT0iIiYmbC53aWR0aCl7YS5zdHlsZS53aWR0aD1sLndpZHRoKyJweCJ9aWYoYS5zdHlsZS5oZWlnaHQ9PT0iIiYmbC5oZWlnaHQpe2Euc3R5bGUuaGVpZ2h0PWwuaGVpZ2h0KyJweCJ9aWYoYS5zdHlsZS5oZWlnaHQ9PT0iIiYmYS5jbGllbnRIZWlnaHQ9PT0wKXthLnN0eWxlLmhlaWdodD1EeWdyYXBoLkRFRkFVTFRfSEVJR0hUKyJweCI7aWYoYS5zdHlsZS53aWR0aD09PSIiKXthLnN0eWxlLndpZHRoPUR5Z3JhcGguREVGQVVMVF9XSURUSCsicHgifX10aGlzLndpZHRoXz1hLmNsaWVudFdpZHRofHxsLndpZHRofHwwO3RoaXMuaGVpZ2h0Xz1hLmNsaWVudEhlaWdodHx8bC5oZWlnaHR8fDA7aWYobC5zdGFja2VkR3JhcGgpe2wuZmlsbEdyYXBoPXRydWV9dGhpcy51c2VyX2F0dHJzXz17fTtEeWdyYXBoLnVwZGF0ZSh0aGlzLnVzZXJfYXR0cnNfLGwpO3RoaXMuYXR0cnNfPXt9O0R5Z3JhcGgudXBkYXRlRGVlcCh0aGlzLmF0dHJzXyxEeWdyYXBoLkRFRkFVTFRfQVRUUlMpO3RoaXMuYm91bmRhcnlJZHNfPVtdO3RoaXMuc2V0SW5kZXhCeU5hbWVfPXt9O3RoaXMuZGF0YXNldEluZGV4Xz1bXTt0aGlzLnJlZ2lzdGVyZWRFdmVudHNfPVtdO3RoaXMuZXZlbnRMaXN0ZW5lcnNfPXt9O3RoaXMuYXR0cmlidXRlc189bmV3IER5Z3JhcGhPcHRpb25zKHRoaXMpO3RoaXMuY3JlYXRlSW50ZXJmYWNlXygpO3RoaXMucGx1Z2luc189W107dmFyIGQ9RHlncmFwaC5QTFVHSU5TLmNvbmNhdCh0aGlzLmdldE9wdGlvbigicGx1Z2lucyIpKTtmb3IodmFyIGc9MDtnPGQubGVuZ3RoO2crKyl7dmFyIGs9ZFtnXTt2YXIgZj1uZXcgaygpO3ZhciBqPXtwbHVnaW46ZixldmVudHM6e30sb3B0aW9uczp7fSxwbHVnaW5PcHRpb25zOnt9fTt2YXIgYj1mLmFjdGl2YXRlKHRoaXMpO2Zvcih2YXIgaCBpbiBiKXtqLmV2ZW50c1toXT1iW2hdfXRoaXMucGx1Z2luc18ucHVzaChqKX1mb3IodmFyIGc9MDtnPHRoaXMucGx1Z2luc18ubGVuZ3RoO2crKyl7dmFyIG49dGhpcy5wbHVnaW5zX1tnXTtmb3IodmFyIGggaW4gbi5ldmVudHMpe2lmKCFuLmV2ZW50cy5oYXNPd25Qcm9wZXJ0eShoKSl7Y29udGludWV9dmFyIG09bi5ldmVudHNbaF07dmFyIGU9W24ucGx1Z2luLG1dO2lmKCEoaCBpbiB0aGlzLmV2ZW50TGlzdGVuZXJzXykpe3RoaXMuZXZlbnRMaXN0ZW5lcnNfW2hdPVtlXX1lbHNle3RoaXMuZXZlbnRMaXN0ZW5lcnNfW2hdLnB1c2goZSl9fX10aGlzLmNyZWF0ZURyYWdJbnRlcmZhY2VfKCk7dGhpcy5zdGFydF8oKX07RHlncmFwaC5wcm90b3R5cGUuY2FzY2FkZUV2ZW50c189ZnVuY3Rpb24oYyxiKXtpZighKGMgaW4gdGhpcy5ldmVudExpc3RlbmVyc18pKXtyZXR1cm4gdHJ1ZX12YXIgZz17ZHlncmFwaDp0aGlzLGNhbmNlbGFibGU6ZmFsc2UsZGVmYXVsdFByZXZlbnRlZDpmYWxzZSxwcmV2ZW50RGVmYXVsdDpmdW5jdGlvbigpe2lmKCFnLmNhbmNlbGFibGUpe3Rocm93IkNhbm5vdCBjYWxsIHByZXZlbnREZWZhdWx0IG9uIG5vbi1jYW5jZWxhYmxlIGV2ZW50LiJ9Zy5kZWZhdWx0UHJldmVudGVkPXRydWV9LHByb3BhZ2F0aW9uU3RvcHBlZDpmYWxzZSxzdG9wUHJvcGFnYXRpb246ZnVuY3Rpb24oKXtnLnByb3BhZ2F0aW9uU3RvcHBlZD10cnVlfX07RHlncmFwaC51cGRhdGUoZyxiKTt2YXIgYT10aGlzLmV2ZW50TGlzdGVuZXJzX1tjXTtpZihhKXtmb3IodmFyIGQ9YS5sZW5ndGgtMTtkPj0wO2QtLSl7dmFyIGY9YVtkXVswXTt2YXIgaD1hW2RdWzFdO2guY2FsbChmLGcpO2lmKGcucHJvcGFnYXRpb25TdG9wcGVkKXticmVha319fXJldHVybiBnLmRlZmF1bHRQcmV2ZW50ZWR9O0R5Z3JhcGgucHJvdG90eXBlLmlzWm9vbWVkPWZ1bmN0aW9uKGEpe2lmKGE9PT1udWxsfHxhPT09dW5kZWZpbmVkKXtyZXR1cm4gdGhpcy56b29tZWRfeF98fHRoaXMuem9vbWVkX3lffWlmKGE9PT0ieCIpe3JldHVybiB0aGlzLnpvb21lZF94X31pZihhPT09InkiKXtyZXR1cm4gdGhpcy56b29tZWRfeV99dGhyb3ciYXhpcyBwYXJhbWV0ZXIgaXMgWyIrYSsiXSBtdXN0IGJlIG51bGwsICd4JyBvciAneScuIn07RHlncmFwaC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm1haW5kaXZfO3ZhciBiPShhJiZhLmlkKT9hLmlkOmE7cmV0dXJuIltEeWdyYXBoICIrYisiXSJ9O0R5Z3JhcGgucHJvdG90eXBlLmF0dHJfPWZ1bmN0aW9uKGIsYSl7cmV0dXJuIGE/dGhpcy5hdHRyaWJ1dGVzXy5nZXRGb3JTZXJpZXMoYixhKTp0aGlzLmF0dHJpYnV0ZXNfLmdldChiKX07RHlncmFwaC5wcm90b3R5cGUuZ2V0T3B0aW9uPWZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuYXR0cl8oYSxiKX07RHlncmFwaC5wcm90b3R5cGUuZ2V0T3B0aW9uRm9yQXhpcz1mdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmF0dHJpYnV0ZXNfLmdldEZvckF4aXMoYSxiKX07RHlncmFwaC5wcm90b3R5cGUub3B0aW9uc1ZpZXdGb3JBeGlzXz1mdW5jdGlvbihiKXt2YXIgYT10aGlzO3JldHVybiBmdW5jdGlvbihjKXt2YXIgZD1hLnVzZXJfYXR0cnNfLmF4ZXM7aWYoZCYmZFtiXSYmZFtiXS5oYXNPd25Qcm9wZXJ0eShjKSl7cmV0dXJuIGRbYl1bY119aWYodHlwZW9mKGEudXNlcl9hdHRyc19bY10pIT0idW5kZWZpbmVkIil7cmV0dXJuIGEudXNlcl9hdHRyc19bY119ZD1hLmF0dHJzXy5heGVzO2lmKGQmJmRbYl0mJmRbYl0uaGFzT3duUHJvcGVydHkoYykpe3JldHVybiBkW2JdW2NdfWlmKGI9PSJ5IiYmYS5heGVzX1swXS5oYXNPd25Qcm9wZXJ0eShjKSl7cmV0dXJuIGEuYXhlc19bMF1bY119ZWxzZXtpZihiPT0ieTIiJiZhLmF4ZXNfWzFdLmhhc093blByb3BlcnR5KGMpKXtyZXR1cm4gYS5heGVzX1sxXVtjXX19cmV0dXJuIGEuYXR0cl8oYyl9fTtEeWdyYXBoLnByb3RvdHlwZS5yb2xsUGVyaW9kPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucm9sbFBlcmlvZF99O0R5Z3JhcGgucHJvdG90eXBlLnhBeGlzUmFuZ2U9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kYXRlV2luZG93Xz90aGlzLmRhdGVXaW5kb3dfOnRoaXMueEF4aXNFeHRyZW1lcygpfTtEeWdyYXBoLnByb3RvdHlwZS54QXhpc0V4dHJlbWVzPWZ1bmN0aW9uKCl7dmFyIGQ9dGhpcy5hdHRyXygieFJhbmdlUGFkIikvdGhpcy5wbG90dGVyXy5hcmVhLnc7aWYodGhpcy5udW1Sb3dzKCk9PT0wKXtyZXR1cm5bMC1kLDErZF19dmFyIGM9dGhpcy5yYXdEYXRhX1swXVswXTt2YXIgYj10aGlzLnJhd0RhdGFfW3RoaXMucmF3RGF0YV8ubGVuZ3RoLTFdWzBdO2lmKGQpe3ZhciBhPWItYztjLT1hKmQ7Yis9YSpkfXJldHVybltjLGJdfTtEeWdyYXBoLnByb3RvdHlwZS55QXhpc1JhbmdlPWZ1bmN0aW9uKGEpe2lmKHR5cGVvZihhKT09InVuZGVmaW5lZCIpe2E9MH1pZihhPDB8fGE+PXRoaXMuYXhlc18ubGVuZ3RoKXtyZXR1cm4gbnVsbH12YXIgYj10aGlzLmF4ZXNfW2FdO3JldHVybltiLmNvbXB1dGVkVmFsdWVSYW5nZVswXSxiLmNvbXB1dGVkVmFsdWVSYW5nZVsxXV19O0R5Z3JhcGgucHJvdG90eXBlLnlBeGlzUmFuZ2VzPWZ1bmN0aW9uKCl7dmFyIGE9W107Zm9yKHZhciBiPTA7Yjx0aGlzLmF4ZXNfLmxlbmd0aDtiKyspe2EucHVzaCh0aGlzLnlBeGlzUmFuZ2UoYikpfXJldHVybiBhfTtEeWdyYXBoLnByb3RvdHlwZS50b0RvbUNvb3Jkcz1mdW5jdGlvbihhLGMsYil7cmV0dXJuW3RoaXMudG9Eb21YQ29vcmQoYSksdGhpcy50b0RvbVlDb29yZChjLGIpXX07RHlncmFwaC5wcm90b3R5cGUudG9Eb21YQ29vcmQ9ZnVuY3Rpb24oYil7aWYoYj09PW51bGwpe3JldHVybiBudWxsfXZhciBjPXRoaXMucGxvdHRlcl8uYXJlYTt2YXIgYT10aGlzLnhBeGlzUmFuZ2UoKTtyZXR1cm4gYy54KyhiLWFbMF0pLyhhWzFdLWFbMF0pKmMud307RHlncmFwaC5wcm90b3R5cGUudG9Eb21ZQ29vcmQ9ZnVuY3Rpb24oZCxhKXt2YXIgYz10aGlzLnRvUGVyY2VudFlDb29yZChkLGEpO2lmKGM9PT1udWxsKXtyZXR1cm4gbnVsbH12YXIgYj10aGlzLnBsb3R0ZXJfLmFyZWE7cmV0dXJuIGIueStjKmIuaH07RHlncmFwaC5wcm90b3R5cGUudG9EYXRhQ29vcmRzPWZ1bmN0aW9uKGEsYyxiKXtyZXR1cm5bdGhpcy50b0RhdGFYQ29vcmQoYSksdGhpcy50b0RhdGFZQ29vcmQoYyxiKV19O0R5Z3JhcGgucHJvdG90eXBlLnRvRGF0YVhDb29yZD1mdW5jdGlvbihiKXtpZihiPT09bnVsbCl7cmV0dXJuIG51bGx9dmFyIGM9dGhpcy5wbG90dGVyXy5hcmVhO3ZhciBhPXRoaXMueEF4aXNSYW5nZSgpO3JldHVybiBhWzBdKyhiLWMueCkvYy53KihhWzFdLWFbMF0pfTtEeWdyYXBoLnByb3RvdHlwZS50b0RhdGFZQ29vcmQ9ZnVuY3Rpb24oaCxiKXtpZihoPT09bnVsbCl7cmV0dXJuIG51bGx9dmFyIGM9dGhpcy5wbG90dGVyXy5hcmVhO3ZhciBnPXRoaXMueUF4aXNSYW5nZShiKTtpZih0eXBlb2YoYik9PSJ1bmRlZmluZWQiKXtiPTB9aWYoIXRoaXMuYXR0cmlidXRlc18uZ2V0Rm9yQXhpcygibG9nc2NhbGUiLGIpKXtyZXR1cm4gZ1swXSsoYy55K2MuaC1oKS9jLmgqKGdbMV0tZ1swXSl9ZWxzZXt2YXIgZj0oaC1jLnkpL2MuaDt2YXIgYT1EeWdyYXBoLmxvZzEwKGdbMV0pO3ZhciBlPWEtKGYqKGEtRHlncmFwaC5sb2cxMChnWzBdKSkpO3ZhciBkPU1hdGgucG93KER5Z3JhcGguTE9HX1NDQUxFLGUpO3JldHVybiBkfX07RHlncmFwaC5wcm90b3R5cGUudG9QZXJjZW50WUNvb3JkPWZ1bmN0aW9uKGYsYyl7aWYoZj09PW51bGwpe3JldHVybiBudWxsfWlmKHR5cGVvZihjKT09InVuZGVmaW5lZCIpe2M9MH12YXIgZT10aGlzLnlBeGlzUmFuZ2UoYyk7dmFyIGQ7dmFyIGI9dGhpcy5hdHRyaWJ1dGVzXy5nZXRGb3JBeGlzKCJsb2dzY2FsZSIsYyk7aWYoIWIpe2Q9KGVbMV0tZikvKGVbMV0tZVswXSl9ZWxzZXt2YXIgYT1EeWdyYXBoLmxvZzEwKGVbMV0pO2Q9KGEtRHlncmFwaC5sb2cxMChmKSkvKGEtRHlncmFwaC5sb2cxMChlWzBdKSl9cmV0dXJuIGR9O0R5Z3JhcGgucHJvdG90eXBlLnRvUGVyY2VudFhDb29yZD1mdW5jdGlvbihiKXtpZihiPT09bnVsbCl7cmV0dXJuIG51bGx9dmFyIGE9dGhpcy54QXhpc1JhbmdlKCk7cmV0dXJuKGItYVswXSkvKGFbMV0tYVswXSl9O0R5Z3JhcGgucHJvdG90eXBlLm51bUNvbHVtbnM9ZnVuY3Rpb24oKXtpZighdGhpcy5yYXdEYXRhXyl7cmV0dXJuIDB9cmV0dXJuIHRoaXMucmF3RGF0YV9bMF0/dGhpcy5yYXdEYXRhX1swXS5sZW5ndGg6dGhpcy5hdHRyXygibGFiZWxzIikubGVuZ3RofTtEeWdyYXBoLnByb3RvdHlwZS5udW1Sb3dzPWZ1bmN0aW9uKCl7aWYoIXRoaXMucmF3RGF0YV8pe3JldHVybiAwfXJldHVybiB0aGlzLnJhd0RhdGFfLmxlbmd0aH07RHlncmFwaC5wcm90b3R5cGUuZ2V0VmFsdWU9ZnVuY3Rpb24oYixhKXtpZihiPDB8fGI+dGhpcy5yYXdEYXRhXy5sZW5ndGgpe3JldHVybiBudWxsfWlmKGE8MHx8YT50aGlzLnJhd0RhdGFfW2JdLmxlbmd0aCl7cmV0dXJuIG51bGx9cmV0dXJuIHRoaXMucmF3RGF0YV9bYl1bYV19O0R5Z3JhcGgucHJvdG90eXBlLmNyZWF0ZUludGVyZmFjZV89ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm1haW5kaXZfO3RoaXMuZ3JhcGhEaXY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dGhpcy5ncmFwaERpdi5zdHlsZS50ZXh0QWxpZ249ImxlZnQiO2EuYXBwZW5kQ2hpbGQodGhpcy5ncmFwaERpdik7dGhpcy5jYW52YXNfPUR5Z3JhcGguY3JlYXRlQ2FudmFzKCk7dGhpcy5jYW52YXNfLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSI7dGhpcy5oaWRkZW5fPXRoaXMuY3JlYXRlUGxvdEtpdENhbnZhc18odGhpcy5jYW52YXNfKTt0aGlzLnJlc2l6ZUVsZW1lbnRzXygpO3RoaXMuY2FudmFzX2N0eF89RHlncmFwaC5nZXRDb250ZXh0KHRoaXMuY2FudmFzXyk7dGhpcy5oaWRkZW5fY3R4Xz1EeWdyYXBoLmdldENvbnRleHQodGhpcy5oaWRkZW5fKTt0aGlzLmdyYXBoRGl2LmFwcGVuZENoaWxkKHRoaXMuaGlkZGVuXyk7dGhpcy5ncmFwaERpdi5hcHBlbmRDaGlsZCh0aGlzLmNhbnZhc18pO3RoaXMubW91c2VFdmVudEVsZW1lbnRfPXRoaXMuY3JlYXRlTW91c2VFdmVudEVsZW1lbnRfKCk7dGhpcy5sYXlvdXRfPW5ldyBEeWdyYXBoTGF5b3V0KHRoaXMpO3ZhciBiPXRoaXM7dGhpcy5tb3VzZU1vdmVIYW5kbGVyXz1mdW5jdGlvbihjKXtiLm1vdXNlTW92ZV8oYyl9O3RoaXMubW91c2VPdXRIYW5kbGVyXz1mdW5jdGlvbihmKXt2YXIgZD1mLnRhcmdldHx8Zi5mcm9tRWxlbWVudDt2YXIgYz1mLnJlbGF0ZWRUYXJnZXR8fGYudG9FbGVtZW50O2lmKER5Z3JhcGguaXNOb2RlQ29udGFpbmVkQnkoZCxiLmdyYXBoRGl2KSYmIUR5Z3JhcGguaXNOb2RlQ29udGFpbmVkQnkoYyxiLmdyYXBoRGl2KSl7Yi5tb3VzZU91dF8oZil9fTt0aGlzLmFkZEFuZFRyYWNrRXZlbnQod2luZG93LCJtb3VzZW91dCIsdGhpcy5tb3VzZU91dEhhbmRsZXJfKTt0aGlzLmFkZEFuZFRyYWNrRXZlbnQodGhpcy5tb3VzZUV2ZW50RWxlbWVudF8sIm1vdXNlbW92ZSIsdGhpcy5tb3VzZU1vdmVIYW5kbGVyXyk7aWYoIXRoaXMucmVzaXplSGFuZGxlcl8pe3RoaXMucmVzaXplSGFuZGxlcl89ZnVuY3Rpb24oYyl7Yi5yZXNpemUoKX07dGhpcy5hZGRBbmRUcmFja0V2ZW50KHdpbmRvdywicmVzaXplIix0aGlzLnJlc2l6ZUhhbmRsZXJfKX19O0R5Z3JhcGgucHJvdG90eXBlLnJlc2l6ZUVsZW1lbnRzXz1mdW5jdGlvbigpe3RoaXMuZ3JhcGhEaXYuc3R5bGUud2lkdGg9dGhpcy53aWR0aF8rInB4Ijt0aGlzLmdyYXBoRGl2LnN0eWxlLmhlaWdodD10aGlzLmhlaWdodF8rInB4Ijt0aGlzLmNhbnZhc18ud2lkdGg9dGhpcy53aWR0aF87dGhpcy5jYW52YXNfLmhlaWdodD10aGlzLmhlaWdodF87dGhpcy5jYW52YXNfLnN0eWxlLndpZHRoPXRoaXMud2lkdGhfKyJweCI7dGhpcy5jYW52YXNfLnN0eWxlLmhlaWdodD10aGlzLmhlaWdodF8rInB4Ijt0aGlzLmhpZGRlbl8ud2lkdGg9dGhpcy53aWR0aF87dGhpcy5oaWRkZW5fLmhlaWdodD10aGlzLmhlaWdodF87dGhpcy5oaWRkZW5fLnN0eWxlLndpZHRoPXRoaXMud2lkdGhfKyJweCI7dGhpcy5oaWRkZW5fLnN0eWxlLmhlaWdodD10aGlzLmhlaWdodF8rInB4In07RHlncmFwaC5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMuY2FudmFzX2N0eF8ucmVzdG9yZSgpO3RoaXMuaGlkZGVuX2N0eF8ucmVzdG9yZSgpO3ZhciBhPWZ1bmN0aW9uKGMpe3doaWxlKGMuaGFzQ2hpbGROb2RlcygpKXthKGMuZmlyc3RDaGlsZCk7Yy5yZW1vdmVDaGlsZChjLmZpcnN0Q2hpbGQpfX07dGhpcy5yZW1vdmVUcmFja2VkRXZlbnRzXygpO0R5Z3JhcGgucmVtb3ZlRXZlbnQod2luZG93LCJtb3VzZW91dCIsdGhpcy5tb3VzZU91dEhhbmRsZXJfKTtEeWdyYXBoLnJlbW92ZUV2ZW50KHRoaXMubW91c2VFdmVudEVsZW1lbnRfLCJtb3VzZW1vdmUiLHRoaXMubW91c2VNb3ZlSGFuZGxlcl8pO0R5Z3JhcGgucmVtb3ZlRXZlbnQod2luZG93LCJyZXNpemUiLHRoaXMucmVzaXplSGFuZGxlcl8pO3RoaXMucmVzaXplSGFuZGxlcl89bnVsbDthKHRoaXMubWFpbmRpdl8pO3ZhciBiPWZ1bmN0aW9uKGMpe2Zvcih2YXIgZCBpbiBjKXtpZih0eXBlb2YoY1tkXSk9PT0ib2JqZWN0Iil7Y1tkXT1udWxsfX19O2IodGhpcy5sYXlvdXRfKTtiKHRoaXMucGxvdHRlcl8pO2IodGhpcyl9O0R5Z3JhcGgucHJvdG90eXBlLmNyZWF0ZVBsb3RLaXRDYW52YXNfPWZ1bmN0aW9uKGEpe3ZhciBiPUR5Z3JhcGguY3JlYXRlQ2FudmFzKCk7Yi5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiO2Iuc3R5bGUudG9wPWEuc3R5bGUudG9wO2Iuc3R5bGUubGVmdD1hLnN0eWxlLmxlZnQ7Yi53aWR0aD10aGlzLndpZHRoXztiLmhlaWdodD10aGlzLmhlaWdodF87Yi5zdHlsZS53aWR0aD10aGlzLndpZHRoXysicHgiO2Iuc3R5bGUuaGVpZ2h0PXRoaXMuaGVpZ2h0XysicHgiO3JldHVybiBifTtEeWdyYXBoLnByb3RvdHlwZS5jcmVhdGVNb3VzZUV2ZW50RWxlbWVudF89ZnVuY3Rpb24oKXtpZih0aGlzLmlzVXNpbmdFeGNhbnZhc18pe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2Euc3R5bGUucG9zaXRpb249ImFic29sdXRlIjthLnN0eWxlLmJhY2tncm91bmRDb2xvcj0id2hpdGUiO2Euc3R5bGUuZmlsdGVyPSJhbHBoYShvcGFjaXR5PTApIjthLnN0eWxlLndpZHRoPXRoaXMud2lkdGhfKyJweCI7YS5zdHlsZS5oZWlnaHQ9dGhpcy5oZWlnaHRfKyJweCI7dGhpcy5ncmFwaERpdi5hcHBlbmRDaGlsZChhKTtyZXR1cm4gYX1lbHNle3JldHVybiB0aGlzLmNhbnZhc199fTtEeWdyYXBoLnByb3RvdHlwZS5zZXRDb2xvcnNfPWZ1bmN0aW9uKCl7dmFyIGc9dGhpcy5nZXRMYWJlbHMoKTt2YXIgZT1nLmxlbmd0aC0xO3RoaXMuY29sb3JzXz1bXTt0aGlzLmNvbG9yc01hcF89e307dmFyIGE9dGhpcy5hdHRyXygiY29sb3JzIik7dmFyIGQ7aWYoIWEpe3ZhciBjPXRoaXMuYXR0cl8oImNvbG9yU2F0dXJhdGlvbiIpfHwxO3ZhciBiPXRoaXMuYXR0cl8oImNvbG9yVmFsdWUiKXx8MC41O3ZhciBrPU1hdGguY2VpbChlLzIpO2ZvcihkPTE7ZDw9ZTtkKyspe2lmKCF0aGlzLnZpc2liaWxpdHkoKVtkLTFdKXtjb250aW51ZX12YXIgaD1kJTI/TWF0aC5jZWlsKGQvMik6KGsrZC8yKTt2YXIgZj0oMSpoLygxK2UpKTt2YXIgaj1EeWdyYXBoLmhzdlRvUkdCKGYsYyxiKTt0aGlzLmNvbG9yc18ucHVzaChqKTt0aGlzLmNvbG9yc01hcF9bZ1tkXV09an19ZWxzZXtmb3IoZD0wO2Q8ZTtkKyspe2lmKCF0aGlzLnZpc2liaWxpdHkoKVtkXSl7Y29udGludWV9dmFyIGo9YVtkJWEubGVuZ3RoXTt0aGlzLmNvbG9yc18ucHVzaChqKTt0aGlzLmNvbG9yc01hcF9bZ1sxK2RdXT1qfX19O0R5Z3JhcGgucHJvdG90eXBlLmdldENvbG9ycz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbG9yc199O0R5Z3JhcGgucHJvdG90eXBlLmdldFByb3BlcnRpZXNGb3JTZXJpZXM9ZnVuY3Rpb24oYyl7dmFyIGE9LTE7dmFyIGQ9dGhpcy5nZXRMYWJlbHMoKTtmb3IodmFyIGI9MTtiPGQubGVuZ3RoO2IrKyl7aWYoZFtiXT09Yyl7YT1iO2JyZWFrfX1pZihhPT0tMSl7cmV0dXJuIG51bGx9cmV0dXJue25hbWU6Yyxjb2x1bW46YSx2aXNpYmxlOnRoaXMudmlzaWJpbGl0eSgpW2EtMV0sY29sb3I6dGhpcy5jb2xvcnNNYXBfW2NdLGF4aXM6MSt0aGlzLmF0dHJpYnV0ZXNfLmF4aXNGb3JTZXJpZXMoYyl9fTtEeWdyYXBoLnByb3RvdHlwZS5jcmVhdGVSb2xsSW50ZXJmYWNlXz1mdW5jdGlvbigpe2lmKCF0aGlzLnJvbGxlcl8pe3RoaXMucm9sbGVyXz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpO3RoaXMucm9sbGVyXy50eXBlPSJ0ZXh0Ijt0aGlzLnJvbGxlcl8uc3R5bGUuZGlzcGxheT0ibm9uZSI7dGhpcy5ncmFwaERpdi5hcHBlbmRDaGlsZCh0aGlzLnJvbGxlcl8pfXZhciBlPXRoaXMuYXR0cl8oInNob3dSb2xsZXIiKT8iYmxvY2siOiJub25lIjt2YXIgZD10aGlzLnBsb3R0ZXJfLmFyZWE7dmFyIGI9e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsekluZGV4OjEwLHRvcDooZC55K2QuaC0yNSkrInB4IixsZWZ0OihkLngrMSkrInB4IixkaXNwbGF5OmV9O3RoaXMucm9sbGVyXy5zaXplPSIyIjt0aGlzLnJvbGxlcl8udmFsdWU9dGhpcy5yb2xsUGVyaW9kXztmb3IodmFyIGEgaW4gYil7aWYoYi5oYXNPd25Qcm9wZXJ0eShhKSl7dGhpcy5yb2xsZXJfLnN0eWxlW2FdPWJbYV19fXZhciBjPXRoaXM7dGhpcy5yb2xsZXJfLm9uY2hhbmdlPWZ1bmN0aW9uKCl7Yy5hZGp1c3RSb2xsKGMucm9sbGVyXy52YWx1ZSl9fTtEeWdyYXBoLnByb3RvdHlwZS5kcmFnR2V0WF89ZnVuY3Rpb24oYixhKXtyZXR1cm4gRHlncmFwaC5wYWdlWChiKS1hLnB4fTtEeWdyYXBoLnByb3RvdHlwZS5kcmFnR2V0WV89ZnVuY3Rpb24oYixhKXtyZXR1cm4gRHlncmFwaC5wYWdlWShiKS1hLnB5fTtEeWdyYXBoLnByb3RvdHlwZS5jcmVhdGVEcmFnSW50ZXJmYWNlXz1mdW5jdGlvbigpe3ZhciBjPXtpc1pvb21pbmc6ZmFsc2UsaXNQYW5uaW5nOmZhbHNlLGlzMkRQYW46ZmFsc2UsZHJhZ1N0YXJ0WDpudWxsLGRyYWdTdGFydFk6bnVsbCxkcmFnRW5kWDpudWxsLGRyYWdFbmRZOm51bGwsZHJhZ0RpcmVjdGlvbjpudWxsLHByZXZFbmRYOm51bGwscHJldkVuZFk6bnVsbCxwcmV2RHJhZ0RpcmVjdGlvbjpudWxsLGNhbmNlbE5leHREYmxjbGljazpmYWxzZSxpbml0aWFsTGVmdG1vc3REYXRlOm51bGwseFVuaXRzUGVyUGl4ZWw6bnVsbCxkYXRlUmFuZ2U6bnVsbCxweDowLHB5OjAsYm91bmRlZERhdGVzOm51bGwsYm91bmRlZFZhbHVlczpudWxsLHRhcnA6bmV3IER5Z3JhcGguSUZyYW1lVGFycCgpLGluaXRpYWxpemVNb3VzZURvd246ZnVuY3Rpb24oaixpLGgpe2lmKGoucHJldmVudERlZmF1bHQpe2oucHJldmVudERlZmF1bHQoKX1lbHNle2oucmV0dXJuVmFsdWU9ZmFsc2U7ai5jYW5jZWxCdWJibGU9dHJ1ZX1oLnB4PUR5Z3JhcGguZmluZFBvc1goaS5jYW52YXNfKTtoLnB5PUR5Z3JhcGguZmluZFBvc1koaS5jYW52YXNfKTtoLmRyYWdTdGFydFg9aS5kcmFnR2V0WF8oaixoKTtoLmRyYWdTdGFydFk9aS5kcmFnR2V0WV8oaixoKTtoLmNhbmNlbE5leHREYmxjbGljaz1mYWxzZTtoLnRhcnAuY292ZXIoKX19O3ZhciBmPXRoaXMuYXR0cl8oImludGVyYWN0aW9uTW9kZWwiKTt2YXIgYj10aGlzO3ZhciBlPWZ1bmN0aW9uKGcpe3JldHVybiBmdW5jdGlvbihoKXtnKGgsYixjKX19O2Zvcih2YXIgYSBpbiBmKXtpZighZi5oYXNPd25Qcm9wZXJ0eShhKSl7Y29udGludWV9dGhpcy5hZGRBbmRUcmFja0V2ZW50KHRoaXMubW91c2VFdmVudEVsZW1lbnRfLGEsZShmW2FdKSl9dmFyIGQ9ZnVuY3Rpb24oaCl7aWYoYy5pc1pvb21pbmd8fGMuaXNQYW5uaW5nKXtjLmlzWm9vbWluZz1mYWxzZTtjLmRyYWdTdGFydFg9bnVsbDtjLmRyYWdTdGFydFk9bnVsbH1pZihjLmlzUGFubmluZyl7Yy5pc1Bhbm5pbmc9ZmFsc2U7Yy5kcmFnZ2luZ0RhdGU9bnVsbDtjLmRhdGVSYW5nZT1udWxsO2Zvcih2YXIgZz0wO2c8Yi5heGVzXy5sZW5ndGg7ZysrKXtkZWxldGUgYi5heGVzX1tnXS5kcmFnZ2luZ1ZhbHVlO2RlbGV0ZSBiLmF4ZXNfW2ddLmRyYWdWYWx1ZVJhbmdlfX1jLnRhcnAudW5jb3ZlcigpfTt0aGlzLmFkZEFuZFRyYWNrRXZlbnQoZG9jdW1lbnQsIm1vdXNldXAiLGQpfTtEeWdyYXBoLnByb3RvdHlwZS5kcmF3Wm9vbVJlY3RfPWZ1bmN0aW9uKGUsYyxpLGIsZyxhLGYsZCl7dmFyIGg9dGhpcy5jYW52YXNfY3R4XztpZihhPT1EeWdyYXBoLkhPUklaT05UQUwpe2guY2xlYXJSZWN0KE1hdGgubWluKGMsZiksdGhpcy5sYXlvdXRfLmdldFBsb3RBcmVhKCkueSxNYXRoLmFicyhjLWYpLHRoaXMubGF5b3V0Xy5nZXRQbG90QXJlYSgpLmgpfWVsc2V7aWYoYT09RHlncmFwaC5WRVJUSUNBTCl7aC5jbGVhclJlY3QodGhpcy5sYXlvdXRfLmdldFBsb3RBcmVhKCkueCxNYXRoLm1pbihiLGQpLHRoaXMubGF5b3V0Xy5nZXRQbG90QXJlYSgpLncsTWF0aC5hYnMoYi1kKSl9fWlmKGU9PUR5Z3JhcGguSE9SSVpPTlRBTCl7aWYoaSYmYyl7aC5maWxsU3R5bGU9InJnYmEoMTI4LDEyOCwxMjgsMC4zMykiO2guZmlsbFJlY3QoTWF0aC5taW4oYyxpKSx0aGlzLmxheW91dF8uZ2V0UGxvdEFyZWEoKS55LE1hdGguYWJzKGktYyksdGhpcy5sYXlvdXRfLmdldFBsb3RBcmVhKCkuaCl9fWVsc2V7aWYoZT09RHlncmFwaC5WRVJUSUNBTCl7aWYoZyYmYil7aC5maWxsU3R5bGU9InJnYmEoMTI4LDEyOCwxMjgsMC4zMykiO2guZmlsbFJlY3QodGhpcy5sYXlvdXRfLmdldFBsb3RBcmVhKCkueCxNYXRoLm1pbihiLGcpLHRoaXMubGF5b3V0Xy5nZXRQbG90QXJlYSgpLncsTWF0aC5hYnMoZy1iKSl9fX1pZih0aGlzLmlzVXNpbmdFeGNhbnZhc18pe3RoaXMuY3VycmVudFpvb21SZWN0QXJnc189W2UsYyxpLGIsZywwLDAsMF19fTtEeWdyYXBoLnByb3RvdHlwZS5jbGVhclpvb21SZWN0Xz1mdW5jdGlvbigpe3RoaXMuY3VycmVudFpvb21SZWN0QXJnc189bnVsbDt0aGlzLmNhbnZhc19jdHhfLmNsZWFyUmVjdCgwLDAsdGhpcy5jYW52YXNfLndpZHRoLHRoaXMuY2FudmFzXy5oZWlnaHQpfTtEeWdyYXBoLnByb3RvdHlwZS5kb1pvb21YXz1mdW5jdGlvbihjLGEpe3RoaXMuY3VycmVudFpvb21SZWN0QXJnc189bnVsbDt2YXIgYj10aGlzLnRvRGF0YVhDb29yZChjKTt2YXIgZD10aGlzLnRvRGF0YVhDb29yZChhKTt0aGlzLmRvWm9vbVhEYXRlc18oYixkKX07RHlncmFwaC56b29tQW5pbWF0aW9uRnVuY3Rpb249ZnVuY3Rpb24oYyxiKXt2YXIgYT0xLjU7cmV0dXJuKDEtTWF0aC5wb3coYSwtYykpLygxLU1hdGgucG93KGEsLWIpKX07RHlncmFwaC5wcm90b3R5cGUuZG9ab29tWERhdGVzXz1mdW5jdGlvbihjLGUpe3ZhciBhPXRoaXMueEF4aXNSYW5nZSgpO3ZhciBkPVtjLGVdO3RoaXMuem9vbWVkX3hfPXRydWU7dmFyIGI9dGhpczt0aGlzLmRvQW5pbWF0ZWRab29tKGEsZCxudWxsLG51bGwsZnVuY3Rpb24oKXtpZihiLmF0dHJfKCJ6b29tQ2FsbGJhY2siKSl7Yi5hdHRyXygiem9vbUNhbGxiYWNrIikoYyxlLGIueUF4aXNSYW5nZXMoKSl9fSl9O0R5Z3JhcGgucHJvdG90eXBlLmRvWm9vbVlfPWZ1bmN0aW9uKGgsZil7dGhpcy5jdXJyZW50Wm9vbVJlY3RBcmdzXz1udWxsO3ZhciBjPXRoaXMueUF4aXNSYW5nZXMoKTt2YXIgYj1bXTtmb3IodmFyIGU9MDtlPHRoaXMuYXhlc18ubGVuZ3RoO2UrKyl7dmFyIGQ9dGhpcy50b0RhdGFZQ29vcmQoaCxlKTt2YXIgYT10aGlzLnRvRGF0YVlDb29yZChmLGUpO2IucHVzaChbYSxkXSl9dGhpcy56b29tZWRfeV89dHJ1ZTt2YXIgZz10aGlzO3RoaXMuZG9BbmltYXRlZFpvb20obnVsbCxudWxsLGMsYixmdW5jdGlvbigpe2lmKGcuYXR0cl8oInpvb21DYWxsYmFjayIpKXt2YXIgaT1nLnhBeGlzUmFuZ2UoKTtnLmF0dHJfKCJ6b29tQ2FsbGJhY2siKShpWzBdLGlbMV0sZy55QXhpc1JhbmdlcygpKX19KX07RHlncmFwaC5wcm90b3R5cGUucmVzZXRab29tPWZ1bmN0aW9uKCl7dmFyIGM9ZmFsc2UsZD1mYWxzZSxhPWZhbHNlO2lmKHRoaXMuZGF0ZVdpbmRvd18hPT1udWxsKXtjPXRydWU7ZD10cnVlfWZvcih2YXIgZz0wO2c8dGhpcy5heGVzXy5sZW5ndGg7ZysrKXtpZih0eXBlb2YodGhpcy5heGVzX1tnXS52YWx1ZVdpbmRvdykhPT0idW5kZWZpbmVkIiYmdGhpcy5heGVzX1tnXS52YWx1ZVdpbmRvdyE9PW51bGwpe2M9dHJ1ZTthPXRydWV9fXRoaXMuY2xlYXJTZWxlY3Rpb24oKTtpZihjKXt0aGlzLnpvb21lZF94Xz1mYWxzZTt0aGlzLnpvb21lZF95Xz1mYWxzZTt2YXIgZj10aGlzLnJhd0RhdGFfWzBdWzBdO3ZhciBiPXRoaXMucmF3RGF0YV9bdGhpcy5yYXdEYXRhXy5sZW5ndGgtMV1bMF07aWYoIXRoaXMuYXR0cl8oImFuaW1hdGVkWm9vbXMiKSl7dGhpcy5kYXRlV2luZG93Xz1udWxsO2ZvcihnPTA7Zzx0aGlzLmF4ZXNfLmxlbmd0aDtnKyspe2lmKHRoaXMuYXhlc19bZ10udmFsdWVXaW5kb3chPT1udWxsKXtkZWxldGUgdGhpcy5heGVzX1tnXS52YWx1ZVdpbmRvd319dGhpcy5kcmF3R3JhcGhfKCk7aWYodGhpcy5hdHRyXygiem9vbUNhbGxiYWNrIikpe3RoaXMuYXR0cl8oInpvb21DYWxsYmFjayIpKGYsYix0aGlzLnlBeGlzUmFuZ2VzKCkpfXJldHVybn12YXIgbD1udWxsLG09bnVsbCxrPW51bGwsaD1udWxsO2lmKGQpe2w9dGhpcy54QXhpc1JhbmdlKCk7bT1bZixiXX1pZihhKXtrPXRoaXMueUF4aXNSYW5nZXMoKTt2YXIgbj10aGlzLmdhdGhlckRhdGFzZXRzXyh0aGlzLnJvbGxlZFNlcmllc18sbnVsbCk7dmFyIG89bi5leHRyZW1lczt0aGlzLmNvbXB1dGVZQXhpc1Jhbmdlc18obyk7aD1bXTtmb3IoZz0wO2c8dGhpcy5heGVzXy5sZW5ndGg7ZysrKXt2YXIgZT10aGlzLmF4ZXNfW2ddO2gucHVzaCgoZS52YWx1ZVJhbmdlIT09bnVsbCYmZS52YWx1ZVJhbmdlIT09dW5kZWZpbmVkKT9lLnZhbHVlUmFuZ2U6ZS5leHRyZW1lUmFuZ2UpfX12YXIgaj10aGlzO3RoaXMuZG9BbmltYXRlZFpvb20obCxtLGssaCxmdW5jdGlvbigpe2ouZGF0ZVdpbmRvd189bnVsbDtmb3IodmFyIHA9MDtwPGouYXhlc18ubGVuZ3RoO3ArKyl7aWYoai5heGVzX1twXS52YWx1ZVdpbmRvdyE9PW51bGwpe2RlbGV0ZSBqLmF4ZXNfW3BdLnZhbHVlV2luZG93fX1pZihqLmF0dHJfKCJ6b29tQ2FsbGJhY2siKSl7ai5hdHRyXygiem9vbUNhbGxiYWNrIikoZixiLGoueUF4aXNSYW5nZXMoKSl9fSl9fTtEeWdyYXBoLnByb3RvdHlwZS5kb0FuaW1hdGVkWm9vbT1mdW5jdGlvbihhLGUsYixjLG0pe3ZhciBpPXRoaXMuYXR0cl8oImFuaW1hdGVkWm9vbXMiKT9EeWdyYXBoLkFOSU1BVElPTl9TVEVQUzoxO3ZhciBsPVtdO3ZhciBrPVtdO3ZhciBmLGQ7aWYoYSE9PW51bGwmJmUhPT1udWxsKXtmb3IoZj0xO2Y8PWk7ZisrKXtkPUR5Z3JhcGguem9vbUFuaW1hdGlvbkZ1bmN0aW9uKGYsaSk7bFtmLTFdPVthWzBdKigxLWQpK2QqZVswXSxhWzFdKigxLWQpK2QqZVsxXV19fWlmKGIhPT1udWxsJiZjIT09bnVsbCl7Zm9yKGY9MTtmPD1pO2YrKyl7ZD1EeWdyYXBoLnpvb21BbmltYXRpb25GdW5jdGlvbihmLGkpO3ZhciBuPVtdO2Zvcih2YXIgZz0wO2c8dGhpcy5heGVzXy5sZW5ndGg7ZysrKXtuLnB1c2goW2JbZ11bMF0qKDEtZCkrZCpjW2ddWzBdLGJbZ11bMV0qKDEtZCkrZCpjW2ddWzFdXSl9a1tmLTFdPW59fXZhciBoPXRoaXM7RHlncmFwaC5yZXBlYXRBbmRDbGVhbnVwKGZ1bmN0aW9uKHApe2lmKGsubGVuZ3RoKXtmb3IodmFyIG89MDtvPGguYXhlc18ubGVuZ3RoO28rKyl7dmFyIGo9a1twXVtvXTtoLmF4ZXNfW29dLnZhbHVlV2luZG93PVtqWzBdLGpbMV1dfX1pZihsLmxlbmd0aCl7aC5kYXRlV2luZG93Xz1sW3BdfWguZHJhd0dyYXBoXygpfSxpLER5Z3JhcGguQU5JTUFUSU9OX0RVUkFUSU9OL2ksbSl9O0R5Z3JhcGgucHJvdG90eXBlLmdldEFyZWE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wbG90dGVyXy5hcmVhfTtEeWdyYXBoLnByb3RvdHlwZS5ldmVudFRvRG9tQ29vcmRzPWZ1bmN0aW9uKGMpe2lmKGMub2Zmc2V0WCYmYy5vZmZzZXRZKXtyZXR1cm5bYy5vZmZzZXRYLGMub2Zmc2V0WV19ZWxzZXt2YXIgYj1EeWdyYXBoLnBhZ2VYKGMpLUR5Z3JhcGguZmluZFBvc1godGhpcy5tb3VzZUV2ZW50RWxlbWVudF8pO3ZhciBhPUR5Z3JhcGgucGFnZVkoYyktRHlncmFwaC5maW5kUG9zWSh0aGlzLm1vdXNlRXZlbnRFbGVtZW50Xyk7cmV0dXJuW2IsYV19fTtEeWdyYXBoLnByb3RvdHlwZS5maW5kQ2xvc2VzdFJvdz1mdW5jdGlvbihhKXt2YXIgZz1JbmZpbml0eTt2YXIgaD0tMTt2YXIgZT10aGlzLmxheW91dF8ucG9pbnRzO2Zvcih2YXIgYz0wO2M8ZS5sZW5ndGg7YysrKXt2YXIgbD1lW2NdO3ZhciBkPWwubGVuZ3RoO2Zvcih2YXIgYj0wO2I8ZDtiKyspe3ZhciBrPWxbYl07aWYoIUR5Z3JhcGguaXNWYWxpZFBvaW50KGssdHJ1ZSkpe2NvbnRpbnVlfXZhciBmPU1hdGguYWJzKGsuY2FudmFzeC1hKTtpZihmPGcpe2c9ZjtoPWsuaWR4fX19cmV0dXJuIGh9O0R5Z3JhcGgucHJvdG90eXBlLmZpbmRDbG9zZXN0UG9pbnQ9ZnVuY3Rpb24oZixlKXt2YXIgaz1JbmZpbml0eTt2YXIgaCxvLG4sbCxkLGMsajtmb3IodmFyIGI9dGhpcy5sYXlvdXRfLnBvaW50cy5sZW5ndGgtMTtiPj0wOy0tYil7dmFyIG09dGhpcy5sYXlvdXRfLnBvaW50c1tiXTtmb3IodmFyIGc9MDtnPG0ubGVuZ3RoOysrZyl7bD1tW2ddO2lmKCFEeWdyYXBoLmlzVmFsaWRQb2ludChsKSl7Y29udGludWV9bz1sLmNhbnZhc3gtZjtuPWwuY2FudmFzeS1lO2g9bypvK24qbjtpZihoPGspe2s9aDtkPWw7Yz1iO2o9bC5pZHh9fX12YXIgYT10aGlzLmxheW91dF8uc2V0TmFtZXNbY107cmV0dXJue3JvdzpqLHNlcmllc05hbWU6YSxwb2ludDpkfX07RHlncmFwaC5wcm90b3R5cGUuZmluZFN0YWNrZWRQb2ludD1mdW5jdGlvbihpLGgpe3ZhciBwPXRoaXMuZmluZENsb3Nlc3RSb3coaSk7dmFyIGYsYztmb3IodmFyIGQ9MDtkPHRoaXMubGF5b3V0Xy5wb2ludHMubGVuZ3RoOysrZCl7dmFyIGc9dGhpcy5nZXRMZWZ0Qm91bmRhcnlfKGQpO3ZhciBlPXAtZzt2YXIgbD10aGlzLmxheW91dF8ucG9pbnRzW2RdO2lmKGU+PWwubGVuZ3RoKXtjb250aW51ZX12YXIgbT1sW2VdO2lmKCFEeWdyYXBoLmlzVmFsaWRQb2ludChtKSl7Y29udGludWV9dmFyIGo9bS5jYW52YXN5O2lmKGk+bS5jYW52YXN4JiZlKzE8bC5sZW5ndGgpe3ZhciBrPWxbZSsxXTtpZihEeWdyYXBoLmlzVmFsaWRQb2ludChrKSl7dmFyIG89ay5jYW52YXN4LW0uY2FudmFzeDtpZihvPjApe3ZhciBhPShpLW0uY2FudmFzeCkvbztqKz1hKihrLmNhbnZhc3ktbS5jYW52YXN5KX19fWVsc2V7aWYoaTxtLmNhbnZhc3gmJmU+MCl7dmFyIG49bFtlLTFdO2lmKER5Z3JhcGguaXNWYWxpZFBvaW50KG4pKXt2YXIgbz1tLmNhbnZhc3gtbi5jYW52YXN4O2lmKG8+MCl7dmFyIGE9KG0uY2FudmFzeC1pKS9vO2orPWEqKG4uY2FudmFzeS1tLmNhbnZhc3kpfX19fWlmKGQ9PT0wfHxqPGgpe2Y9bTtjPWR9fXZhciBiPXRoaXMubGF5b3V0Xy5zZXROYW1lc1tjXTtyZXR1cm57cm93OnAsc2VyaWVzTmFtZTpiLHBvaW50OmZ9fTtEeWdyYXBoLnByb3RvdHlwZS5tb3VzZU1vdmVfPWZ1bmN0aW9uKGIpe3ZhciBoPXRoaXMubGF5b3V0Xy5wb2ludHM7aWYoaD09PXVuZGVmaW5lZHx8aD09PW51bGwpe3JldHVybn12YXIgZT10aGlzLmV2ZW50VG9Eb21Db29yZHMoYik7dmFyIGE9ZVswXTt2YXIgaj1lWzFdO3ZhciBmPXRoaXMuYXR0cl8oImhpZ2hsaWdodFNlcmllc09wdHMiKTt2YXIgZD1mYWxzZTtpZihmJiYhdGhpcy5pc1Nlcmllc0xvY2tlZCgpKXt2YXIgYztpZih0aGlzLmF0dHJfKCJzdGFja2VkR3JhcGgiKSl7Yz10aGlzLmZpbmRTdGFja2VkUG9pbnQoYSxqKX1lbHNle2M9dGhpcy5maW5kQ2xvc2VzdFBvaW50KGEsail9ZD10aGlzLnNldFNlbGVjdGlvbihjLnJvdyxjLnNlcmllc05hbWUpfWVsc2V7dmFyIGc9dGhpcy5maW5kQ2xvc2VzdFJvdyhhKTtkPXRoaXMuc2V0U2VsZWN0aW9uKGcpfXZhciBpPXRoaXMuYXR0cl8oImhpZ2hsaWdodENhbGxiYWNrIik7aWYoaSYmZCl7aShiLHRoaXMubGFzdHhfLHRoaXMuc2VsUG9pbnRzXyx0aGlzLmxhc3RSb3dfLHRoaXMuaGlnaGxpZ2h0U2V0Xyl9fTtEeWdyYXBoLnByb3RvdHlwZS5nZXRMZWZ0Qm91bmRhcnlfPWZ1bmN0aW9uKGIpe2lmKHRoaXMuYm91bmRhcnlJZHNfW2JdKXtyZXR1cm4gdGhpcy5ib3VuZGFyeUlkc19bYl1bMF19ZWxzZXtmb3IodmFyIGE9MDthPHRoaXMuYm91bmRhcnlJZHNfLmxlbmd0aDthKyspe2lmKHRoaXMuYm91bmRhcnlJZHNfW2FdIT09dW5kZWZpbmVkKXtyZXR1cm4gdGhpcy5ib3VuZGFyeUlkc19bYV1bMF19fXJldHVybiAwfX07RHlncmFwaC5wcm90b3R5cGUuYW5pbWF0ZVNlbGVjdGlvbl89ZnVuY3Rpb24oZil7dmFyIGU9MTA7dmFyIGM9MzA7aWYodGhpcy5mYWRlTGV2ZWw9PT11bmRlZmluZWQpe3RoaXMuZmFkZUxldmVsPTB9aWYodGhpcy5hbmltYXRlSWQ9PT11bmRlZmluZWQpe3RoaXMuYW5pbWF0ZUlkPTB9dmFyIGc9dGhpcy5mYWRlTGV2ZWw7dmFyIGI9ZjwwP2c6ZS1nO2lmKGI8PTApe2lmKHRoaXMuZmFkZUxldmVsKXt0aGlzLnVwZGF0ZVNlbGVjdGlvbl8oMSl9cmV0dXJufXZhciBhPSsrdGhpcy5hbmltYXRlSWQ7dmFyIGQ9dGhpcztEeWdyYXBoLnJlcGVhdEFuZENsZWFudXAoZnVuY3Rpb24oaCl7aWYoZC5hbmltYXRlSWQhPWEpe3JldHVybn1kLmZhZGVMZXZlbCs9ZjtpZihkLmZhZGVMZXZlbD09PTApe2QuY2xlYXJTZWxlY3Rpb24oKX1lbHNle2QudXBkYXRlU2VsZWN0aW9uXyhkLmZhZGVMZXZlbC9lKX19LGIsYyxmdW5jdGlvbigpe30pfTtEeWdyYXBoLnByb3RvdHlwZS51cGRhdGVTZWxlY3Rpb25fPWZ1bmN0aW9uKGQpe3RoaXMuY2FzY2FkZUV2ZW50c18oInNlbGVjdCIse3NlbGVjdGVkWDp0aGlzLmxhc3R4XyxzZWxlY3RlZFBvaW50czp0aGlzLnNlbFBvaW50c199KTt2YXIgaDt2YXIgbj10aGlzLmNhbnZhc19jdHhfO2lmKHRoaXMuYXR0cl8oImhpZ2hsaWdodFNlcmllc09wdHMiKSl7bi5jbGVhclJlY3QoMCwwLHRoaXMud2lkdGhfLHRoaXMuaGVpZ2h0Xyk7dmFyIGY9MS10aGlzLmF0dHJfKCJoaWdobGlnaHRTZXJpZXNCYWNrZ3JvdW5kQWxwaGEiKTtpZihmKXt2YXIgZz10cnVlO2lmKGcpe2lmKGQ9PT11bmRlZmluZWQpe3RoaXMuYW5pbWF0ZVNlbGVjdGlvbl8oMSk7cmV0dXJufWYqPWR9bi5maWxsU3R5bGU9InJnYmEoMjU1LDI1NSwyNTUsIitmKyIpIjtuLmZpbGxSZWN0KDAsMCx0aGlzLndpZHRoXyx0aGlzLmhlaWdodF8pfXRoaXMucGxvdHRlcl8uX3JlbmRlckxpbmVDaGFydCh0aGlzLmhpZ2hsaWdodFNldF8sbil9ZWxzZXtpZih0aGlzLnByZXZpb3VzVmVydGljYWxYXz49MCl7dmFyIGo9MDt2YXIgaz10aGlzLmF0dHJfKCJsYWJlbHMiKTtmb3IoaD0xO2g8ay5sZW5ndGg7aCsrKXt2YXIgYz10aGlzLmF0dHJfKCJoaWdobGlnaHRDaXJjbGVTaXplIixrW2hdKTtpZihjPmope2o9Y319dmFyIGw9dGhpcy5wcmV2aW91c1ZlcnRpY2FsWF87bi5jbGVhclJlY3QobC1qLTEsMCwyKmorMix0aGlzLmhlaWdodF8pfX1pZih0aGlzLmlzVXNpbmdFeGNhbnZhc18mJnRoaXMuY3VycmVudFpvb21SZWN0QXJnc18pe0R5Z3JhcGgucHJvdG90eXBlLmRyYXdab29tUmVjdF8uYXBwbHkodGhpcyx0aGlzLmN1cnJlbnRab29tUmVjdEFyZ3NfKX1pZih0aGlzLnNlbFBvaW50c18ubGVuZ3RoPjApe3ZhciBiPXRoaXMuc2VsUG9pbnRzX1swXS5jYW52YXN4O24uc2F2ZSgpO2ZvcihoPTA7aDx0aGlzLnNlbFBvaW50c18ubGVuZ3RoO2grKyl7dmFyIG89dGhpcy5zZWxQb2ludHNfW2hdO2lmKCFEeWdyYXBoLmlzT0soby5jYW52YXN5KSl7Y29udGludWV9dmFyIGE9dGhpcy5hdHRyXygiaGlnaGxpZ2h0Q2lyY2xlU2l6ZSIsby5uYW1lKTt2YXIgbT10aGlzLmF0dHJfKCJkcmF3SGlnaGxpZ2h0UG9pbnRDYWxsYmFjayIsby5uYW1lKTt2YXIgZT10aGlzLnBsb3R0ZXJfLmNvbG9yc1tvLm5hbWVdO2lmKCFtKXttPUR5Z3JhcGguQ2lyY2xlcy5ERUZBVUxUfW4ubGluZVdpZHRoPXRoaXMuYXR0cl8oInN0cm9rZVdpZHRoIixvLm5hbWUpO24uc3Ryb2tlU3R5bGU9ZTtuLmZpbGxTdHlsZT1lO20odGhpcy5nLG8ubmFtZSxuLGIsby5jYW52YXN5LGUsYSxvLmlkeCl9bi5yZXN0b3JlKCk7dGhpcy5wcmV2aW91c1ZlcnRpY2FsWF89Yn19O0R5Z3JhcGgucHJvdG90eXBlLnNldFNlbGVjdGlvbj1mdW5jdGlvbihmLGgsZyl7dGhpcy5zZWxQb2ludHNfPVtdO3ZhciBlPWZhbHNlO2lmKGYhPT1mYWxzZSYmZj49MCl7aWYoZiE9dGhpcy5sYXN0Um93Xyl7ZT10cnVlfXRoaXMubGFzdFJvd189Zjtmb3IodmFyIGQ9MDtkPHRoaXMubGF5b3V0Xy5wb2ludHMubGVuZ3RoOysrZCl7dmFyIGI9dGhpcy5sYXlvdXRfLnBvaW50c1tkXTt2YXIgYz1mLXRoaXMuZ2V0TGVmdEJvdW5kYXJ5XyhkKTtpZihjPGIubGVuZ3RoKXt2YXIgYT1iW2NdO2lmKGEueXZhbCE9PW51bGwpe3RoaXMuc2VsUG9pbnRzXy5wdXNoKGEpfX19fWVsc2V7aWYodGhpcy5sYXN0Um93Xz49MCl7ZT10cnVlfXRoaXMubGFzdFJvd189LTF9aWYodGhpcy5zZWxQb2ludHNfLmxlbmd0aCl7dGhpcy5sYXN0eF89dGhpcy5zZWxQb2ludHNfWzBdLnh2YWx9ZWxzZXt0aGlzLmxhc3R4Xz0tMX1pZihoIT09dW5kZWZpbmVkKXtpZih0aGlzLmhpZ2hsaWdodFNldF8hPT1oKXtlPXRydWV9dGhpcy5oaWdobGlnaHRTZXRfPWh9aWYoZyE9PXVuZGVmaW5lZCl7dGhpcy5sb2NrZWRTZXRfPWd9aWYoZSl7dGhpcy51cGRhdGVTZWxlY3Rpb25fKHVuZGVmaW5lZCl9cmV0dXJuIGV9O0R5Z3JhcGgucHJvdG90eXBlLm1vdXNlT3V0Xz1mdW5jdGlvbihhKXtpZih0aGlzLmF0dHJfKCJ1bmhpZ2hsaWdodENhbGxiYWNrIikpe3RoaXMuYXR0cl8oInVuaGlnaGxpZ2h0Q2FsbGJhY2siKShhKX1pZih0aGlzLmF0dHJfKCJoaWRlT3ZlcmxheU9uTW91c2VPdXQiKSYmIXRoaXMubG9ja2VkU2V0Xyl7dGhpcy5jbGVhclNlbGVjdGlvbigpfX07RHlncmFwaC5wcm90b3R5cGUuY2xlYXJTZWxlY3Rpb249ZnVuY3Rpb24oKXt0aGlzLmNhc2NhZGVFdmVudHNfKCJkZXNlbGVjdCIse30pO3RoaXMubG9ja2VkU2V0Xz1mYWxzZTtpZih0aGlzLmZhZGVMZXZlbCl7dGhpcy5hbmltYXRlU2VsZWN0aW9uXygtMSk7cmV0dXJufXRoaXMuY2FudmFzX2N0eF8uY2xlYXJSZWN0KDAsMCx0aGlzLndpZHRoXyx0aGlzLmhlaWdodF8pO3RoaXMuZmFkZUxldmVsPTA7dGhpcy5zZWxQb2ludHNfPVtdO3RoaXMubGFzdHhfPS0xO3RoaXMubGFzdFJvd189LTE7dGhpcy5oaWdobGlnaHRTZXRfPW51bGx9O0R5Z3JhcGgucHJvdG90eXBlLmdldFNlbGVjdGlvbj1mdW5jdGlvbigpe2lmKCF0aGlzLnNlbFBvaW50c198fHRoaXMuc2VsUG9pbnRzXy5sZW5ndGg8MSl7cmV0dXJuIC0xfWZvcih2YXIgYz0wO2M8dGhpcy5sYXlvdXRfLnBvaW50cy5sZW5ndGg7YysrKXt2YXIgYT10aGlzLmxheW91dF8ucG9pbnRzW2NdO2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7YisrKXtpZihhW2JdLng9PXRoaXMuc2VsUG9pbnRzX1swXS54KXtyZXR1cm4gYVtiXS5pZHh9fX1yZXR1cm4gLTF9O0R5Z3JhcGgucHJvdG90eXBlLmdldEhpZ2hsaWdodFNlcmllcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmhpZ2hsaWdodFNldF99O0R5Z3JhcGgucHJvdG90eXBlLmlzU2VyaWVzTG9ja2VkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubG9ja2VkU2V0X307RHlncmFwaC5wcm90b3R5cGUubG9hZGVkRXZlbnRfPWZ1bmN0aW9uKGEpe3RoaXMucmF3RGF0YV89dGhpcy5wYXJzZUNTVl8oYSk7dGhpcy5wcmVkcmF3XygpfTtEeWdyYXBoLnByb3RvdHlwZS5hZGRYVGlja3NfPWZ1bmN0aW9uKCl7dmFyIGE7aWYodGhpcy5kYXRlV2luZG93Xyl7YT1bdGhpcy5kYXRlV2luZG93X1swXSx0aGlzLmRhdGVXaW5kb3dfWzFdXX1lbHNle2E9dGhpcy54QXhpc0V4dHJlbWVzKCl9dmFyIGM9dGhpcy5vcHRpb25zVmlld0ZvckF4aXNfKCJ4Iik7dmFyIGI9YygidGlja2VyIikoYVswXSxhWzFdLHRoaXMud2lkdGhfLGMsdGhpcyk7dGhpcy5sYXlvdXRfLnNldFhUaWNrcyhiKX07RHlncmFwaC5wcm90b3R5cGUuZXh0cmVtZVZhbHVlc189ZnVuY3Rpb24oZCl7dmFyIGg9bnVsbCxmPW51bGwsYyxnO3ZhciBiPXRoaXMuYXR0cl8oImVycm9yQmFycyIpfHx0aGlzLmF0dHJfKCJjdXN0b21CYXJzIik7aWYoYil7Zm9yKGM9MDtjPGQubGVuZ3RoO2MrKyl7Zz1kW2NdWzFdWzBdO2lmKGc9PT1udWxsfHxpc05hTihnKSl7Y29udGludWV9dmFyIGE9Zy1kW2NdWzFdWzFdO3ZhciBlPWcrZFtjXVsxXVsyXTtpZihhPmcpe2E9Z31pZihlPGcpe2U9Z31pZihmPT09bnVsbHx8ZT5mKXtmPWV9aWYoaD09PW51bGx8fGE8aCl7aD1hfX19ZWxzZXtmb3IoYz0wO2M8ZC5sZW5ndGg7YysrKXtnPWRbY11bMV07aWYoZz09PW51bGx8fGlzTmFOKGcpKXtjb250aW51ZX1pZihmPT09bnVsbHx8Zz5mKXtmPWd9aWYoaD09PW51bGx8fGc8aCl7aD1nfX19cmV0dXJuW2gsZl19O0R5Z3JhcGgucHJvdG90eXBlLnByZWRyYXdfPWZ1bmN0aW9uKCl7dmFyIGU9bmV3IERhdGUoKTt0aGlzLmxheW91dF8uY29tcHV0ZVBsb3RBcmVhKCk7dGhpcy5jb21wdXRlWUF4ZXNfKCk7aWYodGhpcy5wbG90dGVyXyl7dGhpcy5jYXNjYWRlRXZlbnRzXygiY2xlYXJDaGFydCIpO3RoaXMucGxvdHRlcl8uY2xlYXIoKX1pZighdGhpcy5pc19pbml0aWFsX2RyYXdfKXt0aGlzLmNhbnZhc19jdHhfLnJlc3RvcmUoKTt0aGlzLmhpZGRlbl9jdHhfLnJlc3RvcmUoKX10aGlzLmNhbnZhc19jdHhfLnNhdmUoKTt0aGlzLmhpZGRlbl9jdHhfLnNhdmUoKTt0aGlzLnBsb3R0ZXJfPW5ldyBEeWdyYXBoQ2FudmFzUmVuZGVyZXIodGhpcyx0aGlzLmhpZGRlbl8sdGhpcy5oaWRkZW5fY3R4Xyx0aGlzLmxheW91dF8pO3RoaXMuY3JlYXRlUm9sbEludGVyZmFjZV8oKTt0aGlzLmNhc2NhZGVFdmVudHNfKCJwcmVkcmF3Iik7dGhpcy5yb2xsZWRTZXJpZXNfPVtudWxsXTtmb3IodmFyIGM9MTtjPHRoaXMubnVtQ29sdW1ucygpO2MrKyl7dmFyIGQ9dGhpcy5hdHRyXygibG9nc2NhbGUiKTt2YXIgYj10aGlzLmV4dHJhY3RTZXJpZXNfKHRoaXMucmF3RGF0YV8sYyxkKTtiPXRoaXMucm9sbGluZ0F2ZXJhZ2UoYix0aGlzLnJvbGxQZXJpb2RfKTt0aGlzLnJvbGxlZFNlcmllc18ucHVzaChiKX10aGlzLmRyYXdHcmFwaF8oKTt2YXIgYT1uZXcgRGF0ZSgpO3RoaXMuZHJhd2luZ1RpbWVNc189KGEtZSl9O0R5Z3JhcGguUG9pbnRUeXBlPXVuZGVmaW5lZDtEeWdyYXBoLnNlcmllc1RvUG9pbnRzXz1mdW5jdGlvbihiLGosZCxmKXt2YXIgaD1bXTtmb3IodmFyIGM9MDtjPGIubGVuZ3RoOysrYyl7dmFyIGs9YltjXTt2YXIgYT1qP2tbMV1bMF06a1sxXTt2YXIgZT1hPT09bnVsbD9udWxsOkR5Z3JhcGhMYXlvdXQucGFyc2VGbG9hdF8oYSk7dmFyIGc9e3g6TmFOLHk6TmFOLHh2YWw6RHlncmFwaExheW91dC5wYXJzZUZsb2F0XyhrWzBdKSx5dmFsOmUsbmFtZTpkLGlkeDpjK2Z9O2lmKGope2cueV90b3A9TmFOO2cueV9ib3R0b209TmFOO2cueXZhbF9taW51cz1EeWdyYXBoTGF5b3V0LnBhcnNlRmxvYXRfKGtbMV1bMV0pO2cueXZhbF9wbHVzPUR5Z3JhcGhMYXlvdXQucGFyc2VGbG9hdF8oa1sxXVsyXSl9aC5wdXNoKGcpfXJldHVybiBofTtEeWdyYXBoLnN0YWNrUG9pbnRzXz1mdW5jdGlvbihtLGwsbyxmKXt2YXIgaD1udWxsO3ZhciBkPW51bGw7dmFyIGc9bnVsbDt2YXIgYz0tMTt2YXIgaz1mdW5jdGlvbihpKXtpZihjPj1pKXtyZXR1cm59Zm9yKHZhciBwPWk7cDxtLmxlbmd0aDsrK3Ape2c9bnVsbDtpZighaXNOYU4obVtwXS55dmFsKSYmbVtwXS55dmFsIT09bnVsbCl7Yz1wO2c9bVtwXTticmVha319fTtmb3IodmFyIGI9MDtiPG0ubGVuZ3RoOysrYil7dmFyIGo9bVtiXTt2YXIgbj1qLnh2YWw7aWYobFtuXT09PXVuZGVmaW5lZCl7bFtuXT0wfXZhciBlPWoueXZhbDtpZihpc05hTihlKXx8ZT09PW51bGwpe2soYik7aWYoZCYmZyYmZiE9Im5vbmUiKXtlPWQueXZhbCsoZy55dmFsLWQueXZhbCkqKChuLWQueHZhbCkvKGcueHZhbC1kLnh2YWwpKX1lbHNle2lmKGQmJmY9PSJhbGwiKXtlPWQueXZhbH1lbHNle2lmKGcmJmY9PSJhbGwiKXtlPWcueXZhbH1lbHNle2U9MH19fX1lbHNle2Q9an12YXIgYT1sW25dO2lmKGghPW4pe2ErPWU7bFtuXT1hfWg9bjtqLnl2YWxfc3RhY2tlZD1hO2lmKGE+b1sxXSl7b1sxXT1hfWlmKGE8b1swXSl7b1swXT1hfX19O0R5Z3JhcGgucHJvdG90eXBlLmdhdGhlckRhdGFzZXRzXz1mdW5jdGlvbih3LGYpe3ZhciBzPVtdO3ZhciB0PVtdO3ZhciBxPVtdO3ZhciBhPXt9O3ZhciB1LHI7dmFyIHg9dGhpcy5hdHRyXygiZXJyb3JCYXJzIik7dmFyIGg9dGhpcy5hdHRyXygiY3VzdG9tQmFycyIpO3ZhciBwPXh8fGg7dmFyIGI9ZnVuY3Rpb24oaSl7aWYoIXApe3JldHVybiBpWzFdPT09bnVsbH1lbHNle3JldHVybiBoP2lbMV1bMV09PT1udWxsOng/aVsxXVswXT09PW51bGw6ZmFsc2V9fTt2YXIgbj13Lmxlbmd0aC0xO3ZhciBsO2Zvcih1PW47dT49MTt1LS0pe2lmKCF0aGlzLnZpc2liaWxpdHkoKVt1LTFdKXtjb250aW51ZX1pZihmKXtsPXdbdV07dmFyIHo9ZlswXTt2YXIgaj1mWzFdO3ZhciBnPW51bGwseT1udWxsO2ZvcihyPTA7cjxsLmxlbmd0aDtyKyspe2lmKGxbcl1bMF0+PXomJmc9PT1udWxsKXtnPXJ9aWYobFtyXVswXTw9ail7eT1yfX1pZihnPT09bnVsbCl7Zz0wfXZhciBlPWc7dmFyIGQ9dHJ1ZTt3aGlsZShkJiZlPjApe2UtLTtkPWIobFtlXSl9aWYoeT09PW51bGwpe3k9bC5sZW5ndGgtMX12YXIgYz15O2Q9dHJ1ZTt3aGlsZShkJiZjPGwubGVuZ3RoLTEpe2MrKztkPWIobFtjXSl9aWYoZSE9PWcpe2c9ZX1pZihjIT09eSl7eT1jfXNbdS0xXT1bZyx5XTtsPWwuc2xpY2UoZyx5KzEpfWVsc2V7bD13W3VdO3NbdS0xXT1bMCxsLmxlbmd0aC0xXX12YXIgdj10aGlzLmF0dHJfKCJsYWJlbHMiKVt1XTt2YXIgbz10aGlzLmV4dHJlbWVWYWx1ZXNfKGwpO3ZhciBtPUR5Z3JhcGguc2VyaWVzVG9Qb2ludHNfKGwscCx2LHNbdS0xXVswXSk7aWYodGhpcy5hdHRyXygic3RhY2tlZEdyYXBoIikpe0R5Z3JhcGguc3RhY2tQb2ludHNfKG0scSxvLHRoaXMuYXR0cl8oInN0YWNrZWRHcmFwaE5hTkZpbGwiKSl9YVt2XT1vO3RbdV09bX1yZXR1cm57cG9pbnRzOnQsZXh0cmVtZXM6YSxib3VuZGFyeUlkczpzfX07RHlncmFwaC5wcm90b3R5cGUuZHJhd0dyYXBoXz1mdW5jdGlvbigpe3ZhciBhPW5ldyBEYXRlKCk7dmFyIGQ9dGhpcy5pc19pbml0aWFsX2RyYXdfO3RoaXMuaXNfaW5pdGlhbF9kcmF3Xz1mYWxzZTt0aGlzLmxheW91dF8ucmVtb3ZlQWxsRGF0YXNldHMoKTt0aGlzLnNldENvbG9yc18oKTt0aGlzLmF0dHJzXy5wb2ludFNpemU9MC41KnRoaXMuYXR0cl8oImhpZ2hsaWdodENpcmNsZVNpemUiKTt2YXIgaj10aGlzLmdhdGhlckRhdGFzZXRzXyh0aGlzLnJvbGxlZFNlcmllc18sdGhpcy5kYXRlV2luZG93Xyk7dmFyIGg9ai5wb2ludHM7dmFyIGs9ai5leHRyZW1lczt0aGlzLmJvdW5kYXJ5SWRzXz1qLmJvdW5kYXJ5SWRzO3RoaXMuc2V0SW5kZXhCeU5hbWVfPXt9O3ZhciBnPXRoaXMuYXR0cl8oImxhYmVscyIpO2lmKGcubGVuZ3RoPjApe3RoaXMuc2V0SW5kZXhCeU5hbWVfW2dbMF1dPTB9dmFyIGU9MDtmb3IodmFyIGY9MTtmPGgubGVuZ3RoO2YrKyl7dGhpcy5zZXRJbmRleEJ5TmFtZV9bZ1tmXV09ZjtpZighdGhpcy52aXNpYmlsaXR5KClbZi0xXSl7Y29udGludWV9dGhpcy5sYXlvdXRfLmFkZERhdGFzZXQoZ1tmXSxoW2ZdKTt0aGlzLmRhdGFzZXRJbmRleF9bZl09ZSsrfXRoaXMuY29tcHV0ZVlBeGlzUmFuZ2VzXyhrKTt0aGlzLmxheW91dF8uc2V0WUF4ZXModGhpcy5heGVzXyk7dGhpcy5hZGRYVGlja3NfKCk7dmFyIGI9dGhpcy56b29tZWRfeF87dGhpcy56b29tZWRfeF89Yjt0aGlzLmxheW91dF8uZXZhbHVhdGUoKTt0aGlzLnJlbmRlckdyYXBoXyhkKTtpZih0aGlzLmF0dHJfKCJ0aW1pbmdOYW1lIikpe3ZhciBjPW5ldyBEYXRlKCk7RHlncmFwaC5pbmZvKHRoaXMuYXR0cl8oInRpbWluZ05hbWUiKSsiIC0gZHJhd0dyYXBoOiAiKyhjLWEpKyJtcyIpfX07RHlncmFwaC5wcm90b3R5cGUucmVuZGVyR3JhcGhfPWZ1bmN0aW9uKGIpe3RoaXMuY2FzY2FkZUV2ZW50c18oImNsZWFyQ2hhcnQiKTt0aGlzLnBsb3R0ZXJfLmNsZWFyKCk7aWYodGhpcy5hdHRyXygidW5kZXJsYXlDYWxsYmFjayIpKXt0aGlzLmF0dHJfKCJ1bmRlcmxheUNhbGxiYWNrIikodGhpcy5oaWRkZW5fY3R4Xyx0aGlzLmxheW91dF8uZ2V0UGxvdEFyZWEoKSx0aGlzLHRoaXMpfXZhciBjPXtjYW52YXM6dGhpcy5oaWRkZW5fLGRyYXdpbmdDb250ZXh0OnRoaXMuaGlkZGVuX2N0eF99O3RoaXMuY2FzY2FkZUV2ZW50c18oIndpbGxEcmF3Q2hhcnQiLGMpO3RoaXMucGxvdHRlcl8ucmVuZGVyKCk7dGhpcy5jYXNjYWRlRXZlbnRzXygiZGlkRHJhd0NoYXJ0IixjKTt0aGlzLmxhc3RSb3dfPS0xO3RoaXMuY2FudmFzXy5nZXRDb250ZXh0KCIyZCIpLmNsZWFyUmVjdCgwLDAsdGhpcy5jYW52YXNfLndpZHRoLHRoaXMuY2FudmFzXy5oZWlnaHQpO2lmKHRoaXMuYXR0cl8oImRyYXdDYWxsYmFjayIpIT09bnVsbCl7dGhpcy5hdHRyXygiZHJhd0NhbGxiYWNrIikodGhpcyxiKX1pZihiKXt0aGlzLnJlYWR5RmlyZWRfPXRydWU7d2hpbGUodGhpcy5yZWFkeUZuc18ubGVuZ3RoPjApe3ZhciBhPXRoaXMucmVhZHlGbnNfLnBvcCgpO2EodGhpcyl9fX07RHlncmFwaC5wcm90b3R5cGUuY29tcHV0ZVlBeGVzXz1mdW5jdGlvbigpe3ZhciBiLGQsYyxmLGE7aWYodGhpcy5heGVzXyE9PXVuZGVmaW5lZCYmdGhpcy51c2VyX2F0dHJzXy5oYXNPd25Qcm9wZXJ0eSgidmFsdWVSYW5nZSIpPT09ZmFsc2Upe2I9W107Zm9yKGM9MDtjPHRoaXMuYXhlc18ubGVuZ3RoO2MrKyl7Yi5wdXNoKHRoaXMuYXhlc19bY10udmFsdWVXaW5kb3cpfX10aGlzLmF4ZXNfPVtdO2ZvcihkPTA7ZDx0aGlzLmF0dHJpYnV0ZXNfLm51bUF4ZXMoKTtkKyspe2Y9e2c6dGhpc307RHlncmFwaC51cGRhdGUoZix0aGlzLmF0dHJpYnV0ZXNfLmF4aXNPcHRpb25zKGQpKTt0aGlzLmF4ZXNfW2RdPWZ9YT10aGlzLmF0dHJfKCJ2YWx1ZVJhbmdlIik7aWYoYSl7dGhpcy5heGVzX1swXS52YWx1ZVJhbmdlPWF9aWYoYiE9PXVuZGVmaW5lZCl7dmFyIGU9TWF0aC5taW4oYi5sZW5ndGgsdGhpcy5heGVzXy5sZW5ndGgpO2ZvcihjPTA7YzxlO2MrKyl7dGhpcy5heGVzX1tjXS52YWx1ZVdpbmRvdz1iW2NdfX1mb3IoZD0wO2Q8dGhpcy5heGVzXy5sZW5ndGg7ZCsrKXtpZihkPT09MCl7Zj10aGlzLm9wdGlvbnNWaWV3Rm9yQXhpc18oInkiKyhkPyIyIjoiIikpO2E9ZigidmFsdWVSYW5nZSIpO2lmKGEpe3RoaXMuYXhlc19bZF0udmFsdWVSYW5nZT1hfX1lbHNle3ZhciBnPXRoaXMudXNlcl9hdHRyc18uYXhlcztpZihnJiZnLnkyKXthPWcueTIudmFsdWVSYW5nZTtpZihhKXt0aGlzLmF4ZXNfW2RdLnZhbHVlUmFuZ2U9YX19fX19O0R5Z3JhcGgucHJvdG90eXBlLm51bUF4ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hdHRyaWJ1dGVzXy5udW1BeGVzKCl9O0R5Z3JhcGgucHJvdG90eXBlLmF4aXNQcm9wZXJ0aWVzRm9yU2VyaWVzPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmF4ZXNfW3RoaXMuYXR0cmlidXRlc18uYXhpc0ZvclNlcmllcyhhKV19O0R5Z3JhcGgucHJvdG90eXBlLmNvbXB1dGVZQXhpc1Jhbmdlc189ZnVuY3Rpb24oYSl7dmFyIGc9ZnVuY3Rpb24oaSl7cmV0dXJuIGlzTmFOKHBhcnNlRmxvYXQoaSkpfTt2YXIgcT10aGlzLmF0dHJpYnV0ZXNfLm51bUF4ZXMoKTt2YXIgYix4LG8sQjt2YXIgcDtmb3IodmFyIHk9MDt5PHE7eSsrKXt2YXIgYz10aGlzLmF4ZXNfW3ldO3ZhciBDPXRoaXMuYXR0cmlidXRlc18uZ2V0Rm9yQXhpcygibG9nc2NhbGUiLHkpO3ZhciBHPXRoaXMuYXR0cmlidXRlc18uZ2V0Rm9yQXhpcygiaW5jbHVkZVplcm8iLHkpO3ZhciBsPXRoaXMuYXR0cmlidXRlc18uZ2V0Rm9yQXhpcygiaW5kZXBlbmRlbnRUaWNrcyIseSk7bz10aGlzLmF0dHJpYnV0ZXNfLnNlcmllc0ZvckF4aXMoeSk7Yj10cnVlO0I9MC4xO2lmKHRoaXMuYXR0cl8oInlSYW5nZVBhZCIpIT09bnVsbCl7Yj1mYWxzZTtCPXRoaXMuYXR0cl8oInlSYW5nZVBhZCIpL3RoaXMucGxvdHRlcl8uYXJlYS5ofWlmKG8ubGVuZ3RoPT09MCl7Yy5leHRyZW1lUmFuZ2U9WzAsMV19ZWxzZXt2YXIgRD1JbmZpbml0eTt2YXIgQT0tSW5maW5pdHk7dmFyIHQscztmb3IodmFyIHc9MDt3PG8ubGVuZ3RoO3crKyl7aWYoIWEuaGFzT3duUHJvcGVydHkob1t3XSkpe2NvbnRpbnVlfXQ9YVtvW3ddXVswXTtpZih0IT09bnVsbCl7RD1NYXRoLm1pbih0LEQpfXM9YVtvW3ddXVsxXTtpZihzIT09bnVsbCl7QT1NYXRoLm1heChzLEEpfX1pZihHJiYhQyl7aWYoRD4wKXtEPTB9aWYoQTwwKXtBPTB9fWlmKEQ9PUluZmluaXR5KXtEPTB9aWYoQT09LUluZmluaXR5KXtBPTF9eD1BLUQ7aWYoeD09PTApe2lmKEEhPT0wKXt4PU1hdGguYWJzKEEpfWVsc2V7QT0xO3g9MX19dmFyIGgsSDtpZihDKXtpZihiKXtoPUErQip4O0g9RH1lbHNle3ZhciBFPU1hdGguZXhwKE1hdGgubG9nKHgpKkIpO2g9QSpFO0g9RC9FfX1lbHNle2g9QStCKng7SD1ELUIqeDtpZihiJiYhdGhpcy5hdHRyXygiYXZvaWRNaW5aZXJvIikpe2lmKEg8MCYmRD49MCl7SD0wfWlmKGg+MCYmQTw9MCl7aD0wfX19Yy5leHRyZW1lUmFuZ2U9W0gsaF19aWYoYy52YWx1ZVdpbmRvdyl7Yy5jb21wdXRlZFZhbHVlUmFuZ2U9W2MudmFsdWVXaW5kb3dbMF0sYy52YWx1ZVdpbmRvd1sxXV19ZWxzZXtpZihjLnZhbHVlUmFuZ2Upe3ZhciBlPWcoYy52YWx1ZVJhbmdlWzBdKT9jLmV4dHJlbWVSYW5nZVswXTpjLnZhbHVlUmFuZ2VbMF07dmFyIGQ9ZyhjLnZhbHVlUmFuZ2VbMV0pP2MuZXh0cmVtZVJhbmdlWzFdOmMudmFsdWVSYW5nZVsxXTtpZighYil7aWYoYy5sb2dzY2FsZSl7dmFyIEU9TWF0aC5leHAoTWF0aC5sb2coeCkqQik7ZSo9RTtkLz1FfWVsc2V7eD1kLWU7ZS09eCpCO2QrPXgqQn19Yy5jb21wdXRlZFZhbHVlUmFuZ2U9W2UsZF19ZWxzZXtjLmNvbXB1dGVkVmFsdWVSYW5nZT1jLmV4dHJlbWVSYW5nZX19aWYobCl7Yy5pbmRlcGVuZGVudFRpY2tzPWw7dmFyIHI9dGhpcy5vcHRpb25zVmlld0ZvckF4aXNfKCJ5IisoeT8iMiI6IiIpKTt2YXIgRj1yKCJ0aWNrZXIiKTtjLnRpY2tzPUYoYy5jb21wdXRlZFZhbHVlUmFuZ2VbMF0sYy5jb21wdXRlZFZhbHVlUmFuZ2VbMV0sdGhpcy5oZWlnaHRfLHIsdGhpcyk7aWYoIXApe3A9Y319fWlmKHA9PT11bmRlZmluZWQpe3Rocm93ICgnQ29uZmlndXJhdGlvbiBFcnJvcjogQXQgbGVhc3Qgb25lIGF4aXMgaGFzIHRvIGhhdmUgdGhlICJpbmRlcGVuZGVudFRpY2tzIiBvcHRpb24gYWN0aXZhdGVkLicpfWZvcih2YXIgeT0wO3k8cTt5Kyspe3ZhciBjPXRoaXMuYXhlc19beV07aWYoIWMuaW5kZXBlbmRlbnRUaWNrcyl7dmFyIHI9dGhpcy5vcHRpb25zVmlld0ZvckF4aXNfKCJ5IisoeT8iMiI6IiIpKTt2YXIgRj1yKCJ0aWNrZXIiKTt2YXIgbT1wLnRpY2tzO3ZhciBuPXAuY29tcHV0ZWRWYWx1ZVJhbmdlWzFdLXAuY29tcHV0ZWRWYWx1ZVJhbmdlWzBdO3ZhciBJPWMuY29tcHV0ZWRWYWx1ZVJhbmdlWzFdLWMuY29tcHV0ZWRWYWx1ZVJhbmdlWzBdO3ZhciBmPVtdO2Zvcih2YXIgdj0wO3Y8bS5sZW5ndGg7disrKXt2YXIgdT0obVt2XS52LXAuY29tcHV0ZWRWYWx1ZVJhbmdlWzBdKS9uO3ZhciB6PWMuY29tcHV0ZWRWYWx1ZVJhbmdlWzBdK3UqSTtmLnB1c2goeil9Yy50aWNrcz1GKGMuY29tcHV0ZWRWYWx1ZVJhbmdlWzBdLGMuY29tcHV0ZWRWYWx1ZVJhbmdlWzFdLHRoaXMuaGVpZ2h0XyxyLHRoaXMsZil9fX07RHlncmFwaC5wcm90b3R5cGUuZXh0cmFjdFNlcmllc189ZnVuY3Rpb24oYSxmLGMpe3ZhciBnPVtdO3ZhciBoPXRoaXMuYXR0cl8oImVycm9yQmFycyIpO3ZhciBlPXRoaXMuYXR0cl8oImN1c3RvbUJhcnMiKTtmb3IodmFyIGQ9MDtkPGEubGVuZ3RoO2QrKyl7dmFyIGw9YVtkXVswXTt2YXIgbT1hW2RdW2ZdO2lmKGMpe2lmKGh8fGUpe2Zvcih2YXIgYj0wO2I8bS5sZW5ndGg7YisrKXtpZihtW2JdPD0wKXttPW51bGw7YnJlYWt9fX1lbHNle2lmKG08PTApe209bnVsbH19fWlmKG0hPT1udWxsKXtnLnB1c2goW2wsbV0pfWVsc2V7Zy5wdXNoKFtsLGg/W251bGwsbnVsbF06ZT9bbnVsbCxudWxsLG51bGxdOm1dKX19cmV0dXJuIGd9O0R5Z3JhcGgucHJvdG90eXBlLnJvbGxpbmdBdmVyYWdlPWZ1bmN0aW9uKGwsZCl7ZD1NYXRoLm1pbihkLGwubGVuZ3RoKTt2YXIgYj1bXTt2YXIgdD10aGlzLmF0dHJfKCJzaWdtYSIpO3ZhciBHLG8seix4LG0sYyxGLEE7aWYodGhpcy5mcmFjdGlvbnNfKXt2YXIgaz0wO3ZhciBoPTA7dmFyIGU9MTAwO2Zvcih6PTA7ejxsLmxlbmd0aDt6Kyspe2srPWxbel1bMV1bMF07aCs9bFt6XVsxXVsxXTtpZih6LWQ+PTApe2stPWxbei1kXVsxXVswXTtoLT1sW3otZF1bMV1bMV19dmFyIEM9bFt6XVswXTt2YXIgdz1oP2svaDowO2lmKHRoaXMuYXR0cl8oImVycm9yQmFycyIpKXtpZih0aGlzLmF0dHJfKCJ3aWxzb25JbnRlcnZhbCIpKXtpZihoKXt2YXIgcz13PDA/MDp3LHU9aDt2YXIgQj10Kk1hdGguc3FydChzKigxLXMpL3UrdCp0Lyg0KnUqdSkpO3ZhciBhPTErdCp0L2g7Rz0ocyt0KnQvKDIqaCktQikvYTtvPShzK3QqdC8oMipoKStCKS9hO2Jbel09W0MsW3MqZSwocy1HKSplLChvLXMpKmVdXX1lbHNle2Jbel09W0MsWzAsMCwwXV19fWVsc2V7QT1oP3QqTWF0aC5zcXJ0KHcqKDEtdykvaCk6MTtiW3pdPVtDLFtlKncsZSpBLGUqQV1dfX1lbHNle2Jbel09W0MsZSp3XX19fWVsc2V7aWYodGhpcy5hdHRyXygiY3VzdG9tQmFycyIpKXtHPTA7dmFyIEQ9MDtvPTA7dmFyIGc9MDtmb3Ioej0wO3o8bC5sZW5ndGg7eisrKXt2YXIgRT1sW3pdWzFdO209RVsxXTtiW3pdPVtsW3pdWzBdLFttLG0tRVswXSxFWzJdLW1dXTtpZihtIT09bnVsbCYmIWlzTmFOKG0pKXtHKz1FWzBdO0QrPW07bys9RVsyXTtnKz0xfWlmKHotZD49MCl7dmFyIHI9bFt6LWRdO2lmKHJbMV1bMV0hPT1udWxsJiYhaXNOYU4oclsxXVsxXSkpe0ctPXJbMV1bMF07RC09clsxXVsxXTtvLT1yWzFdWzJdO2ctPTF9fWlmKGcpe2Jbel09W2xbel1bMF0sWzEqRC9nLDEqKEQtRykvZywxKihvLUQpL2ddXX1lbHNle2Jbel09W2xbel1bMF0sW251bGwsbnVsbCxudWxsXV19fX1lbHNle2lmKCF0aGlzLmF0dHJfKCJlcnJvckJhcnMiKSl7aWYoZD09MSl7cmV0dXJuIGx9Zm9yKHo9MDt6PGwubGVuZ3RoO3orKyl7Yz0wO0Y9MDtmb3IoeD1NYXRoLm1heCgwLHotZCsxKTt4PHorMTt4Kyspe209bFt4XVsxXTtpZihtPT09bnVsbHx8aXNOYU4obSkpe2NvbnRpbnVlfUYrKztjKz1sW3hdWzFdfWlmKEYpe2Jbel09W2xbel1bMF0sYy9GXX1lbHNle2Jbel09W2xbel1bMF0sbnVsbF19fX1lbHNle2Zvcih6PTA7ejxsLmxlbmd0aDt6Kyspe2M9MDt2YXIgZj0wO0Y9MDtmb3IoeD1NYXRoLm1heCgwLHotZCsxKTt4PHorMTt4Kyspe209bFt4XVsxXVswXTtpZihtPT09bnVsbHx8aXNOYU4obSkpe2NvbnRpbnVlfUYrKztjKz1sW3hdWzFdWzBdO2YrPU1hdGgucG93KGxbeF1bMV1bMV0sMil9aWYoRil7QT1NYXRoLnNxcnQoZikvRjtiW3pdPVtsW3pdWzBdLFtjL0YsdCpBLHQqQV1dfWVsc2V7dmFyIHE9KGQ9PTEpP2xbel1bMV1bMF06bnVsbDtiW3pdPVtsW3pdWzBdLFtxLHEscV1dfX19fX1yZXR1cm4gYn07RHlncmFwaC5wcm90b3R5cGUuZGV0ZWN0VHlwZUZyb21TdHJpbmdfPWZ1bmN0aW9uKGIpe3ZhciBhPWZhbHNlO3ZhciBjPWIuaW5kZXhPZigiLSIpO2lmKChjPjAmJihiW2MtMV0hPSJlIiYmYltjLTFdIT0iRSIpKXx8Yi5pbmRleE9mKCIvIik+PTB8fGlzTmFOKHBhcnNlRmxvYXQoYikpKXthPXRydWV9ZWxzZXtpZihiLmxlbmd0aD09OCYmYj4iMTk3MDAxMDEiJiZiPCIyMDM3MTIzMSIpe2E9dHJ1ZX19dGhpcy5zZXRYQXhpc09wdGlvbnNfKGEpfTtEeWdyYXBoLnByb3RvdHlwZS5zZXRYQXhpc09wdGlvbnNfPWZ1bmN0aW9uKGEpe2lmKGEpe3RoaXMuYXR0cnNfLnhWYWx1ZVBhcnNlcj1EeWdyYXBoLmRhdGVQYXJzZXI7dGhpcy5hdHRyc18uYXhlcy54LnZhbHVlRm9ybWF0dGVyPUR5Z3JhcGguZGF0ZVN0cmluZ187dGhpcy5hdHRyc18uYXhlcy54LnRpY2tlcj1EeWdyYXBoLmRhdGVUaWNrZXI7dGhpcy5hdHRyc18uYXhlcy54LmF4aXNMYWJlbEZvcm1hdHRlcj1EeWdyYXBoLmRhdGVBeGlzRm9ybWF0dGVyfWVsc2V7dGhpcy5hdHRyc18ueFZhbHVlUGFyc2VyPWZ1bmN0aW9uKGIpe3JldHVybiBwYXJzZUZsb2F0KGIpfTt0aGlzLmF0dHJzXy5heGVzLngudmFsdWVGb3JtYXR0ZXI9ZnVuY3Rpb24oYil7cmV0dXJuIGJ9O3RoaXMuYXR0cnNfLmF4ZXMueC50aWNrZXI9RHlncmFwaC5udW1lcmljTGluZWFyVGlja3M7dGhpcy5hdHRyc18uYXhlcy54LmF4aXNMYWJlbEZvcm1hdHRlcj10aGlzLmF0dHJzXy5heGVzLngudmFsdWVGb3JtYXR0ZXJ9fTtEeWdyYXBoLnByb3RvdHlwZS5wYXJzZUZsb2F0Xz1mdW5jdGlvbihhLGMsYil7dmFyIGU9cGFyc2VGbG9hdChhKTtpZighaXNOYU4oZSkpe3JldHVybiBlfWlmKC9eICokLy50ZXN0KGEpKXtyZXR1cm4gbnVsbH1pZigvXiAqbmFuICokL2kudGVzdChhKSl7cmV0dXJuIE5hTn12YXIgZD0iVW5hYmxlIHRvIHBhcnNlICciK2ErIicgYXMgYSBudW1iZXIiO2lmKGIhPT1udWxsJiZjIT09bnVsbCl7ZCs9IiBvbiBsaW5lICIrKDErYykrIiAoJyIrYisiJykgb2YgQ1NWLiJ9dGhpcy5lcnJvcihkKTtyZXR1cm4gbnVsbH07RHlncmFwaC5wcm90b3R5cGUucGFyc2VDU1ZfPWZ1bmN0aW9uKHQpe3ZhciByPVtdO3ZhciBzPUR5Z3JhcGguZGV0ZWN0TGluZURlbGltaXRlcih0KTt2YXIgYT10LnNwbGl0KHN8fCJcbiIpO3ZhciBnLGs7dmFyIHA9dGhpcy5hdHRyXygiZGVsaW1pdGVyIik7aWYoYVswXS5pbmRleE9mKHApPT0tMSYmYVswXS5pbmRleE9mKCJcdCIpPj0wKXtwPSJcdCJ9dmFyIGI9MDtpZighKCJsYWJlbHMiIGluIHRoaXMudXNlcl9hdHRyc18pKXtiPTE7dGhpcy5hdHRyc18ubGFiZWxzPWFbMF0uc3BsaXQocCk7dGhpcy5hdHRyaWJ1dGVzXy5yZXBhcnNlU2VyaWVzKCl9dmFyIG89MDt2YXIgbTt2YXIgcT1mYWxzZTt2YXIgYz10aGlzLmF0dHJfKCJsYWJlbHMiKS5sZW5ndGg7dmFyIGY9ZmFsc2U7Zm9yKHZhciBsPWI7bDxhLmxlbmd0aDtsKyspe3ZhciBlPWFbbF07bz1sO2lmKGUubGVuZ3RoPT09MCl7Y29udGludWV9aWYoZVswXT09IiMiKXtjb250aW51ZX12YXIgZD1lLnNwbGl0KHApO2lmKGQubGVuZ3RoPDIpe2NvbnRpbnVlfXZhciBoPVtdO2lmKCFxKXt0aGlzLmRldGVjdFR5cGVGcm9tU3RyaW5nXyhkWzBdKTttPXRoaXMuYXR0cl8oInhWYWx1ZVBhcnNlciIpO3E9dHJ1ZX1oWzBdPW0oZFswXSx0aGlzKTtpZih0aGlzLmZyYWN0aW9uc18pe2ZvcihrPTE7azxkLmxlbmd0aDtrKyspe2c9ZFtrXS5zcGxpdCgiLyIpO2lmKGcubGVuZ3RoIT0yKXt0aGlzLmVycm9yKCdFeHBlY3RlZCBmcmFjdGlvbmFsICJudW0vZGVuIiB2YWx1ZXMgaW4gQ1NWIGRhdGEgYnV0IGZvdW5kIGEgdmFsdWUgXCcnK2Rba10rIicgb24gbGluZSAiKygxK2wpKyIgKCciK2UrIicpIHdoaWNoIGlzIG5vdCBvZiB0aGlzIGZvcm0uIik7aFtrXT1bMCwwXX1lbHNle2hba109W3RoaXMucGFyc2VGbG9hdF8oZ1swXSxsLGUpLHRoaXMucGFyc2VGbG9hdF8oZ1sxXSxsLGUpXX19fWVsc2V7aWYodGhpcy5hdHRyXygiZXJyb3JCYXJzIikpe2lmKGQubGVuZ3RoJTIhPTEpe3RoaXMuZXJyb3IoIkV4cGVjdGVkIGFsdGVybmF0aW5nICh2YWx1ZSwgc3RkZXYuKSBwYWlycyBpbiBDU1YgZGF0YSBidXQgbGluZSAiKygxK2wpKyIgaGFzIGFuIG9kZCBudW1iZXIgb2YgdmFsdWVzICgiKyhkLmxlbmd0aC0xKSsiKTogJyIrZSsiJyIpfWZvcihrPTE7azxkLmxlbmd0aDtrKz0yKXtoWyhrKzEpLzJdPVt0aGlzLnBhcnNlRmxvYXRfKGRba10sbCxlKSx0aGlzLnBhcnNlRmxvYXRfKGRbaysxXSxsLGUpXX19ZWxzZXtpZih0aGlzLmF0dHJfKCJjdXN0b21CYXJzIikpe2ZvcihrPTE7azxkLmxlbmd0aDtrKyspe3ZhciB1PWRba107aWYoL14gKiQvLnRlc3QodSkpe2hba109W251bGwsbnVsbCxudWxsXX1lbHNle2c9dS5zcGxpdCgiOyIpO2lmKGcubGVuZ3RoPT0zKXtoW2tdPVt0aGlzLnBhcnNlRmxvYXRfKGdbMF0sbCxlKSx0aGlzLnBhcnNlRmxvYXRfKGdbMV0sbCxlKSx0aGlzLnBhcnNlRmxvYXRfKGdbMl0sbCxlKV19ZWxzZXt0aGlzLndhcm4oJ1doZW4gdXNpbmcgY3VzdG9tQmFycywgdmFsdWVzIG11c3QgYmUgZWl0aGVyIGJsYW5rIG9yICJsb3c7Y2VudGVyO2hpZ2giIHR1cGxlcyAoZ290ICInK3UrJyIgb24gbGluZSAnKygxK2wpKX19fX1lbHNle2ZvcihrPTE7azxkLmxlbmd0aDtrKyspe2hba109dGhpcy5wYXJzZUZsb2F0XyhkW2tdLGwsZSl9fX19aWYoci5sZW5ndGg+MCYmaFswXTxyW3IubGVuZ3RoLTFdWzBdKXtmPXRydWV9aWYoaC5sZW5ndGghPWMpe3RoaXMuZXJyb3IoIk51bWJlciBvZiBjb2x1bW5zIGluIGxpbmUgIitsKyIgKCIraC5sZW5ndGgrIikgZG9lcyBub3QgYWdyZWUgd2l0aCBudW1iZXIgb2YgbGFiZWxzICgiK2MrIikgIitlKX1pZihsPT09MCYmdGhpcy5hdHRyXygibGFiZWxzIikpe3ZhciBuPXRydWU7Zm9yKGs9MDtuJiZrPGgubGVuZ3RoO2srKyl7aWYoaFtrXSl7bj1mYWxzZX19aWYobil7dGhpcy53YXJuKCJUaGUgZHlncmFwaHMgJ2xhYmVscycgb3B0aW9uIGlzIHNldCwgYnV0IHRoZSBmaXJzdCByb3cgb2YgQ1NWIGRhdGEgKCciK2UrIicpIGFwcGVhcnMgdG8gYWxzbyBjb250YWluIGxhYmVscy4gV2lsbCBkcm9wIHRoZSBDU1YgbGFiZWxzIGFuZCB1c2UgdGhlIG9wdGlvbiBsYWJlbHMuIik7Y29udGludWV9fXIucHVzaChoKX1pZihmKXt0aGlzLndhcm4oIkNTViBpcyBvdXQgb2Ygb3JkZXI7IG9yZGVyIGl0IGNvcnJlY3RseSB0byBzcGVlZCBsb2FkaW5nLiIpO3Iuc29ydChmdW5jdGlvbihqLGkpe3JldHVybiBqWzBdLWlbMF19KX1yZXR1cm4gcn07RHlncmFwaC5wcm90b3R5cGUucGFyc2VBcnJheV89ZnVuY3Rpb24oYyl7aWYoYy5sZW5ndGg9PT0wKXt0aGlzLmVycm9yKCJDYW4ndCBwbG90IGVtcHR5IGRhdGEgc2V0Iik7cmV0dXJuIG51bGx9aWYoY1swXS5sZW5ndGg9PT0wKXt0aGlzLmVycm9yKCJEYXRhIHNldCBjYW5ub3QgY29udGFpbiBhbiBlbXB0eSByb3ciKTtyZXR1cm4gbnVsbH12YXIgYTtpZih0aGlzLmF0dHJfKCJsYWJlbHMiKT09PW51bGwpe3RoaXMud2FybigiVXNpbmcgZGVmYXVsdCBsYWJlbHMuIFNldCBsYWJlbHMgZXhwbGljaXRseSB2aWEgJ2xhYmVscycgaW4gdGhlIG9wdGlvbnMgcGFyYW1ldGVyIik7dGhpcy5hdHRyc18ubGFiZWxzPVsiWCJdO2ZvcihhPTE7YTxjWzBdLmxlbmd0aDthKyspe3RoaXMuYXR0cnNfLmxhYmVscy5wdXNoKCJZIithKX10aGlzLmF0dHJpYnV0ZXNfLnJlcGFyc2VTZXJpZXMoKX1lbHNle3ZhciBiPXRoaXMuYXR0cl8oImxhYmVscyIpO2lmKGIubGVuZ3RoIT1jWzBdLmxlbmd0aCl7dGhpcy5lcnJvcigiTWlzbWF0Y2ggYmV0d2VlbiBudW1iZXIgb2YgbGFiZWxzICgiK2IrIikgYW5kIG51bWJlciBvZiBjb2x1bW5zIGluIGFycmF5ICgiK2NbMF0ubGVuZ3RoKyIpIik7cmV0dXJuIG51bGx9fWlmKER5Z3JhcGguaXNEYXRlTGlrZShjWzBdWzBdKSl7dGhpcy5hdHRyc18uYXhlcy54LnZhbHVlRm9ybWF0dGVyPUR5Z3JhcGguZGF0ZVN0cmluZ187dGhpcy5hdHRyc18uYXhlcy54LnRpY2tlcj1EeWdyYXBoLmRhdGVUaWNrZXI7dGhpcy5hdHRyc18uYXhlcy54LmF4aXNMYWJlbEZvcm1hdHRlcj1EeWdyYXBoLmRhdGVBeGlzRm9ybWF0dGVyO3ZhciBkPUR5Z3JhcGguY2xvbmUoYyk7Zm9yKGE9MDthPGMubGVuZ3RoO2ErKyl7aWYoZFthXS5sZW5ndGg9PT0wKXt0aGlzLmVycm9yKCJSb3cgIisoMSthKSsiIG9mIGRhdGEgaXMgZW1wdHkiKTtyZXR1cm4gbnVsbH1pZihkW2FdWzBdPT09bnVsbHx8dHlwZW9mKGRbYV1bMF0uZ2V0VGltZSkhPSJmdW5jdGlvbiJ8fGlzTmFOKGRbYV1bMF0uZ2V0VGltZSgpKSl7dGhpcy5lcnJvcigieCB2YWx1ZSBpbiByb3cgIisoMSthKSsiIGlzIG5vdCBhIERhdGUiKTtyZXR1cm4gbnVsbH1kW2FdWzBdPWRbYV1bMF0uZ2V0VGltZSgpfXJldHVybiBkfWVsc2V7dGhpcy5hdHRyc18uYXhlcy54LnZhbHVlRm9ybWF0dGVyPWZ1bmN0aW9uKGUpe3JldHVybiBlfTt0aGlzLmF0dHJzXy5heGVzLngudGlja2VyPUR5Z3JhcGgubnVtZXJpY0xpbmVhclRpY2tzO3RoaXMuYXR0cnNfLmF4ZXMueC5heGlzTGFiZWxGb3JtYXR0ZXI9RHlncmFwaC5udW1iZXJBeGlzTGFiZWxGb3JtYXR0ZXI7cmV0dXJuIGN9fTtEeWdyYXBoLnByb3RvdHlwZS5wYXJzZURhdGFUYWJsZV89ZnVuY3Rpb24odyl7dmFyIGQ9ZnVuY3Rpb24oaSl7dmFyIGo9U3RyaW5nLmZyb21DaGFyQ29kZSg2NStpJTI2KTtpPU1hdGguZmxvb3IoaS8yNik7d2hpbGUoaT4wKXtqPVN0cmluZy5mcm9tQ2hhckNvZGUoNjUrKGktMSklMjYpK2oudG9Mb3dlckNhc2UoKTtpPU1hdGguZmxvb3IoKGktMSkvMjYpfXJldHVybiBqfTt2YXIgaD13LmdldE51bWJlck9mQ29sdW1ucygpO3ZhciBnPXcuZ2V0TnVtYmVyT2ZSb3dzKCk7dmFyIGY9dy5nZXRDb2x1bW5UeXBlKDApO2lmKGY9PSJkYXRlInx8Zj09ImRhdGV0aW1lIil7dGhpcy5hdHRyc18ueFZhbHVlUGFyc2VyPUR5Z3JhcGguZGF0ZVBhcnNlcjt0aGlzLmF0dHJzXy5heGVzLngudmFsdWVGb3JtYXR0ZXI9RHlncmFwaC5kYXRlU3RyaW5nXzt0aGlzLmF0dHJzXy5heGVzLngudGlja2VyPUR5Z3JhcGguZGF0ZVRpY2tlcjt0aGlzLmF0dHJzXy5heGVzLnguYXhpc0xhYmVsRm9ybWF0dGVyPUR5Z3JhcGguZGF0ZUF4aXNGb3JtYXR0ZXJ9ZWxzZXtpZihmPT0ibnVtYmVyIil7dGhpcy5hdHRyc18ueFZhbHVlUGFyc2VyPWZ1bmN0aW9uKGkpe3JldHVybiBwYXJzZUZsb2F0KGkpfTt0aGlzLmF0dHJzXy5heGVzLngudmFsdWVGb3JtYXR0ZXI9ZnVuY3Rpb24oaSl7cmV0dXJuIGl9O3RoaXMuYXR0cnNfLmF4ZXMueC50aWNrZXI9RHlncmFwaC5udW1lcmljTGluZWFyVGlja3M7dGhpcy5hdHRyc18uYXhlcy54LmF4aXNMYWJlbEZvcm1hdHRlcj10aGlzLmF0dHJzXy5heGVzLngudmFsdWVGb3JtYXR0ZXJ9ZWxzZXt0aGlzLmVycm9yKCJvbmx5ICdkYXRlJywgJ2RhdGV0aW1lJyBhbmQgJ251bWJlcicgdHlwZXMgYXJlIHN1cHBvcnRlZCBmb3IgY29sdW1uIDEgb2YgRGF0YVRhYmxlIGlucHV0IChHb3QgJyIrZisiJykiKTtyZXR1cm4gbnVsbH19dmFyIG09W107dmFyIHQ9e307dmFyIHM9ZmFsc2U7dmFyIHEsbztmb3IocT0xO3E8aDtxKyspe3ZhciBiPXcuZ2V0Q29sdW1uVHlwZShxKTtpZihiPT0ibnVtYmVyIil7bS5wdXNoKHEpfWVsc2V7aWYoYj09InN0cmluZyImJnRoaXMuYXR0cl8oImRpc3BsYXlBbm5vdGF0aW9ucyIpKXt2YXIgcj1tW20ubGVuZ3RoLTFdO2lmKCF0Lmhhc093blByb3BlcnR5KHIpKXt0W3JdPVtxXX1lbHNle3Rbcl0ucHVzaChxKX1zPXRydWV9ZWxzZXt0aGlzLmVycm9yKCJPbmx5ICdudW1iZXInIGlzIHN1cHBvcnRlZCBhcyBhIGRlcGVuZGVudCB0eXBlIHdpdGggR3Zpei4gJ3N0cmluZycgaXMgb25seSBzdXBwb3J0ZWQgaWYgZGlzcGxheUFubm90YXRpb25zIGlzIHRydWUiKX19fXZhciB1PVt3LmdldENvbHVtbkxhYmVsKDApXTtmb3IocT0wO3E8bS5sZW5ndGg7cSsrKXt1LnB1c2gody5nZXRDb2x1bW5MYWJlbChtW3FdKSk7aWYodGhpcy5hdHRyXygiZXJyb3JCYXJzIikpe3ErPTF9fXRoaXMuYXR0cnNfLmxhYmVscz11O2g9dS5sZW5ndGg7dmFyIHY9W107dmFyIGw9ZmFsc2U7dmFyIGE9W107Zm9yKHE9MDtxPGc7cSsrKXt2YXIgZT1bXTtpZih0eXBlb2Yody5nZXRWYWx1ZShxLDApKT09PSJ1bmRlZmluZWQifHx3LmdldFZhbHVlKHEsMCk9PT1udWxsKXt0aGlzLndhcm4oIklnbm9yaW5nIHJvdyAiK3ErIiBvZiBEYXRhVGFibGUgYmVjYXVzZSBvZiB1bmRlZmluZWQgb3IgbnVsbCBmaXJzdCBjb2x1bW4uIik7Y29udGludWV9aWYoZj09ImRhdGUifHxmPT0iZGF0ZXRpbWUiKXtlLnB1c2gody5nZXRWYWx1ZShxLDApLmdldFRpbWUoKSl9ZWxzZXtlLnB1c2gody5nZXRWYWx1ZShxLDApKX1pZighdGhpcy5hdHRyXygiZXJyb3JCYXJzIikpe2ZvcihvPTA7bzxtLmxlbmd0aDtvKyspe3ZhciBjPW1bb107ZS5wdXNoKHcuZ2V0VmFsdWUocSxjKSk7aWYocyYmdC5oYXNPd25Qcm9wZXJ0eShjKSYmdy5nZXRWYWx1ZShxLHRbY11bMF0pIT09bnVsbCl7dmFyIHA9e307cC5zZXJpZXM9dy5nZXRDb2x1bW5MYWJlbChjKTtwLnh2YWw9ZVswXTtwLnNob3J0VGV4dD1kKGEubGVuZ3RoKTtwLnRleHQ9IiI7Zm9yKHZhciBuPTA7bjx0W2NdLmxlbmd0aDtuKyspe2lmKG4pe3AudGV4dCs9IlxuIn1wLnRleHQrPXcuZ2V0VmFsdWUocSx0W2NdW25dKX1hLnB1c2gocCl9fWZvcihvPTA7bzxlLmxlbmd0aDtvKyspe2lmKCFpc0Zpbml0ZShlW29dKSl7ZVtvXT1udWxsfX19ZWxzZXtmb3Iobz0wO288aC0xO28rKyl7ZS5wdXNoKFt3LmdldFZhbHVlKHEsMSsyKm8pLHcuZ2V0VmFsdWUocSwyKzIqbyldKX19aWYodi5sZW5ndGg+MCYmZVswXTx2W3YubGVuZ3RoLTFdWzBdKXtsPXRydWV9di5wdXNoKGUpfWlmKGwpe3RoaXMud2FybigiRGF0YVRhYmxlIGlzIG91dCBvZiBvcmRlcjsgb3JkZXIgaXQgY29ycmVjdGx5IHRvIHNwZWVkIGxvYWRpbmcuIik7di5zb3J0KGZ1bmN0aW9uKGosaSl7cmV0dXJuIGpbMF0taVswXX0pfXRoaXMucmF3RGF0YV89djtpZihhLmxlbmd0aD4wKXt0aGlzLnNldEFubm90YXRpb25zKGEsdHJ1ZSl9dGhpcy5hdHRyaWJ1dGVzXy5yZXBhcnNlU2VyaWVzKCl9O0R5Z3JhcGgucHJvdG90eXBlLnN0YXJ0Xz1mdW5jdGlvbigpe3ZhciBkPXRoaXMuZmlsZV87aWYodHlwZW9mIGQ9PSJmdW5jdGlvbiIpe2Q9ZCgpfWlmKER5Z3JhcGguaXNBcnJheUxpa2UoZCkpe3RoaXMucmF3RGF0YV89dGhpcy5wYXJzZUFycmF5XyhkKTt0aGlzLnByZWRyYXdfKCl9ZWxzZXtpZih0eXBlb2YgZD09Im9iamVjdCImJnR5cGVvZiBkLmdldENvbHVtblJhbmdlPT0iZnVuY3Rpb24iKXt0aGlzLnBhcnNlRGF0YVRhYmxlXyhkKTt0aGlzLnByZWRyYXdfKCl9ZWxzZXtpZih0eXBlb2YgZD09InN0cmluZyIpe3ZhciBjPUR5Z3JhcGguZGV0ZWN0TGluZURlbGltaXRlcihkKTtpZihjKXt0aGlzLmxvYWRlZEV2ZW50XyhkKX1lbHNle3ZhciBiO2lmKHdpbmRvdy5YTUxIdHRwUmVxdWVzdCl7Yj1uZXcgWE1MSHR0cFJlcXVlc3QoKX1lbHNle2I9bmV3IEFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxIVFRQIil9dmFyIGE9dGhpcztiLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2lmKGIucmVhZHlTdGF0ZT09NCl7aWYoYi5zdGF0dXM9PT0yMDB8fGIuc3RhdHVzPT09MCl7YS5sb2FkZWRFdmVudF8oYi5yZXNwb25zZVRleHQpfX19O2Iub3BlbigiR0VUIixkLHRydWUpO2Iuc2VuZChudWxsKX19ZWxzZXt0aGlzLmVycm9yKCJVbmtub3duIGRhdGEgZm9ybWF0OiAiKyh0eXBlb2YgZCkpfX19fTtEeWdyYXBoLnByb3RvdHlwZS51cGRhdGVPcHRpb25zPWZ1bmN0aW9uKGUsYil7aWYodHlwZW9mKGIpPT0idW5kZWZpbmVkIil7Yj1mYWxzZX12YXIgZD1lLmZpbGU7dmFyIGM9RHlncmFwaC5tYXBMZWdhY3lPcHRpb25zXyhlKTtpZigicm9sbFBlcmlvZCIgaW4gYyl7dGhpcy5yb2xsUGVyaW9kXz1jLnJvbGxQZXJpb2R9aWYoImRhdGVXaW5kb3ciIGluIGMpe3RoaXMuZGF0ZVdpbmRvd189Yy5kYXRlV2luZG93O2lmKCEoImlzWm9vbWVkSWdub3JlUHJvZ3JhbW1hdGljWm9vbSIgaW4gYykpe3RoaXMuem9vbWVkX3hfPShjLmRhdGVXaW5kb3chPT1udWxsKX19aWYoInZhbHVlUmFuZ2UiIGluIGMmJiEoImlzWm9vbWVkSWdub3JlUHJvZ3JhbW1hdGljWm9vbSIgaW4gYykpe3RoaXMuem9vbWVkX3lfPShjLnZhbHVlUmFuZ2UhPT1udWxsKX12YXIgYT1EeWdyYXBoLmlzUGl4ZWxDaGFuZ2luZ09wdGlvbkxpc3QodGhpcy5hdHRyXygibGFiZWxzIiksYyk7RHlncmFwaC51cGRhdGVEZWVwKHRoaXMudXNlcl9hdHRyc18sYyk7dGhpcy5hdHRyaWJ1dGVzXy5yZXBhcnNlU2VyaWVzKCk7aWYoZCl7dGhpcy5maWxlXz1kO2lmKCFiKXt0aGlzLnN0YXJ0XygpfX1lbHNle2lmKCFiKXtpZihhKXt0aGlzLnByZWRyYXdfKCl9ZWxzZXt0aGlzLnJlbmRlckdyYXBoXyhmYWxzZSl9fX19O0R5Z3JhcGgubWFwTGVnYWN5T3B0aW9uc189ZnVuY3Rpb24oYyl7dmFyIGE9e307Zm9yKHZhciBiIGluIGMpe2lmKGI9PSJmaWxlIil7Y29udGludWV9aWYoYy5oYXNPd25Qcm9wZXJ0eShiKSl7YVtiXT1jW2JdfX12YXIgZT1mdW5jdGlvbihnLGYsaCl7aWYoIWEuYXhlcyl7YS5heGVzPXt9fWlmKCFhLmF4ZXNbZ10pe2EuYXhlc1tnXT17fX1hLmF4ZXNbZ11bZl09aH07dmFyIGQ9ZnVuY3Rpb24oZixnLGgpe2lmKHR5cGVvZihjW2ZdKSE9InVuZGVmaW5lZCIpe0R5Z3JhcGgud2FybigiT3B0aW9uICIrZisiIGlzIGRlcHJlY2F0ZWQuIFVzZSB0aGUgIitoKyIgb3B0aW9uIGZvciB0aGUgIitnKyIgYXhpcyBpbnN0ZWFkLiAoZS5nLiB7IGF4ZXMgOiB7ICIrZysiIDogeyAiK2grIiA6IC4uLiB9IH0gfSAoc2VlIGh0dHA6Ly9keWdyYXBocy5jb20vcGVyLWF4aXMuaHRtbCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iKTtlKGcsaCxjW2ZdKTtkZWxldGUgYVtmXX19O2QoInhWYWx1ZUZvcm1hdHRlciIsIngiLCJ2YWx1ZUZvcm1hdHRlciIpO2QoInBpeGVsc1BlclhMYWJlbCIsIngiLCJwaXhlbHNQZXJMYWJlbCIpO2QoInhBeGlzTGFiZWxGb3JtYXR0ZXIiLCJ4IiwiYXhpc0xhYmVsRm9ybWF0dGVyIik7ZCgieFRpY2tlciIsIngiLCJ0aWNrZXIiKTtkKCJ5VmFsdWVGb3JtYXR0ZXIiLCJ5IiwidmFsdWVGb3JtYXR0ZXIiKTtkKCJwaXhlbHNQZXJZTGFiZWwiLCJ5IiwicGl4ZWxzUGVyTGFiZWwiKTtkKCJ5QXhpc0xhYmVsRm9ybWF0dGVyIiwieSIsImF4aXNMYWJlbEZvcm1hdHRlciIpO2QoInlUaWNrZXIiLCJ5IiwidGlja2VyIik7cmV0dXJuIGF9O0R5Z3JhcGgucHJvdG90eXBlLnJlc2l6ZT1mdW5jdGlvbihkLGIpe2lmKHRoaXMucmVzaXplX2xvY2spe3JldHVybn10aGlzLnJlc2l6ZV9sb2NrPXRydWU7aWYoKGQ9PT1udWxsKSE9KGI9PT1udWxsKSl7dGhpcy53YXJuKCJEeWdyYXBoLnJlc2l6ZSgpIHNob3VsZCBiZSBjYWxsZWQgd2l0aCB6ZXJvIHBhcmFtZXRlcnMgb3IgdHdvIG5vbi1OVUxMIHBhcmFtZXRlcnMuIFByZXRlbmRpbmcgaXQgd2FzIHplcm8uIik7ZD1iPW51bGx9dmFyIGE9dGhpcy53aWR0aF87dmFyIGM9dGhpcy5oZWlnaHRfO2lmKGQpe3RoaXMubWFpbmRpdl8uc3R5bGUud2lkdGg9ZCsicHgiO3RoaXMubWFpbmRpdl8uc3R5bGUuaGVpZ2h0PWIrInB4Ijt0aGlzLndpZHRoXz1kO3RoaXMuaGVpZ2h0Xz1ifWVsc2V7dGhpcy53aWR0aF89dGhpcy5tYWluZGl2Xy5jbGllbnRXaWR0aDt0aGlzLmhlaWdodF89dGhpcy5tYWluZGl2Xy5jbGllbnRIZWlnaHR9aWYoYSE9dGhpcy53aWR0aF98fGMhPXRoaXMuaGVpZ2h0Xyl7dGhpcy5yZXNpemVFbGVtZW50c18oKTt0aGlzLnByZWRyYXdfKCl9dGhpcy5yZXNpemVfbG9jaz1mYWxzZX07RHlncmFwaC5wcm90b3R5cGUuYWRqdXN0Um9sbD1mdW5jdGlvbihhKXt0aGlzLnJvbGxQZXJpb2RfPWE7dGhpcy5wcmVkcmF3XygpfTtEeWdyYXBoLnByb3RvdHlwZS52aXNpYmlsaXR5PWZ1bmN0aW9uKCl7aWYoIXRoaXMuYXR0cl8oInZpc2liaWxpdHkiKSl7dGhpcy5hdHRyc18udmlzaWJpbGl0eT1bXX13aGlsZSh0aGlzLmF0dHJfKCJ2aXNpYmlsaXR5IikubGVuZ3RoPHRoaXMubnVtQ29sdW1ucygpLTEpe3RoaXMuYXR0cnNfLnZpc2liaWxpdHkucHVzaCh0cnVlKX1yZXR1cm4gdGhpcy5hdHRyXygidmlzaWJpbGl0eSIpfTtEeWdyYXBoLnByb3RvdHlwZS5zZXRWaXNpYmlsaXR5PWZ1bmN0aW9uKGIsYyl7dmFyIGE9dGhpcy52aXNpYmlsaXR5KCk7aWYoYjwwfHxiPj1hLmxlbmd0aCl7dGhpcy53YXJuKCJpbnZhbGlkIHNlcmllcyBudW1iZXIgaW4gc2V0VmlzaWJpbGl0eTogIitiKX1lbHNle2FbYl09Yzt0aGlzLnByZWRyYXdfKCl9fTtEeWdyYXBoLnByb3RvdHlwZS5zaXplPWZ1bmN0aW9uKCl7cmV0dXJue3dpZHRoOnRoaXMud2lkdGhfLGhlaWdodDp0aGlzLmhlaWdodF99fTtEeWdyYXBoLnByb3RvdHlwZS5zZXRBbm5vdGF0aW9ucz1mdW5jdGlvbihiLGEpe0R5Z3JhcGguYWRkQW5ub3RhdGlvblJ1bGUoKTt0aGlzLmFubm90YXRpb25zXz1iO2lmKCF0aGlzLmxheW91dF8pe3RoaXMud2FybigiVHJpZWQgdG8gc2V0QW5ub3RhdGlvbnMgYmVmb3JlIGR5Z3JhcGggd2FzIHJlYWR5LiBUcnkgc2V0dGluZyB0aGVtIGluIGEgcmVhZHkoKSBibG9jay4gU2VlIGR5Z3JhcGhzLmNvbS90ZXN0cy9hbm5vdGF0aW9uLmh0bWwiKTtyZXR1cm59dGhpcy5sYXlvdXRfLnNldEFubm90YXRpb25zKHRoaXMuYW5ub3RhdGlvbnNfKTtpZighYSl7dGhpcy5wcmVkcmF3XygpfX07RHlncmFwaC5wcm90b3R5cGUuYW5ub3RhdGlvbnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hbm5vdGF0aW9uc199O0R5Z3JhcGgucHJvdG90eXBlLmdldExhYmVscz1mdW5jdGlvbigpe3ZhciBhPXRoaXMuYXR0cl8oImxhYmVscyIpO3JldHVybiBhP2Euc2xpY2UoKTpudWxsfTtEeWdyYXBoLnByb3RvdHlwZS5pbmRleEZyb21TZXROYW1lPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnNldEluZGV4QnlOYW1lX1thXX07RHlncmFwaC5wcm90b3R5cGUucmVhZHk9ZnVuY3Rpb24oYSl7aWYodGhpcy5pc19pbml0aWFsX2RyYXdfKXt0aGlzLnJlYWR5Rm5zXy5wdXNoKGEpfWVsc2V7YSh0aGlzKX19O0R5Z3JhcGguYWRkQW5ub3RhdGlvblJ1bGU9ZnVuY3Rpb24oKXtpZihEeWdyYXBoLmFkZGVkQW5ub3RhdGlvbkNTUyl7cmV0dXJufXZhciBmPSJib3JkZXI6IDFweCBzb2xpZCBibGFjazsgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IHRleHQtYWxpZ246IGNlbnRlcjsiO3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7ZS50eXBlPSJ0ZXh0L2NzcyI7ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZChlKTtmb3IodmFyIGI9MDtiPGRvY3VtZW50LnN0eWxlU2hlZXRzLmxlbmd0aDtiKyspe2lmKGRvY3VtZW50LnN0eWxlU2hlZXRzW2JdLmRpc2FibGVkKXtjb250aW51ZX12YXIgZD1kb2N1bWVudC5zdHlsZVNoZWV0c1tiXTt0cnl7aWYoZC5pbnNlcnRSdWxlKXt2YXIgYT1kLmNzc1J1bGVzP2QuY3NzUnVsZXMubGVuZ3RoOjA7ZC5pbnNlcnRSdWxlKCIuZHlncmFwaERlZmF1bHRBbm5vdGF0aW9uIHsgIitmKyIgfSIsYSl9ZWxzZXtpZihkLmFkZFJ1bGUpe2QuYWRkUnVsZSgiLmR5Z3JhcGhEZWZhdWx0QW5ub3RhdGlvbiIsZil9fUR5Z3JhcGguYWRkZWRBbm5vdGF0aW9uQ1NTPXRydWU7cmV0dXJufWNhdGNoKGMpe319dGhpcy53YXJuKCJVbmFibGUgdG8gYWRkIGRlZmF1bHQgYW5ub3RhdGlvbiBDU1MgcnVsZTsgZGlzcGxheSBtYXkgYmUgb2ZmLiIpfTt2YXIgRGF0ZUdyYXBoPUR5Z3JhcGg7InVzZSBzdHJpY3QiO0R5Z3JhcGguTE9HX1NDQUxFPTEwO0R5Z3JhcGguTE5fVEVOPU1hdGgubG9nKER5Z3JhcGguTE9HX1NDQUxFKTtEeWdyYXBoLmxvZzEwPWZ1bmN0aW9uKGEpe3JldHVybiBNYXRoLmxvZyhhKS9EeWdyYXBoLkxOX1RFTn07RHlncmFwaC5ERUJVRz0xO0R5Z3JhcGguSU5GTz0yO0R5Z3JhcGguV0FSTklORz0zO0R5Z3JhcGguRVJST1I9MztEeWdyYXBoLkxPR19TVEFDS19UUkFDRVM9ZmFsc2U7RHlncmFwaC5ET1RURURfTElORT1bMiwyXTtEeWdyYXBoLkRBU0hFRF9MSU5FPVs3LDNdO0R5Z3JhcGguRE9UX0RBU0hfTElORT1bNywyLDIsMl07RHlncmFwaC5sb2c9ZnVuY3Rpb24oYyxnKXt2YXIgYjtpZih0eXBlb2YocHJpbnRTdGFja1RyYWNlKSE9InVuZGVmaW5lZCIpe3RyeXtiPXByaW50U3RhY2tUcmFjZSh7Z3Vlc3M6ZmFsc2V9KTt3aGlsZShiWzBdLmluZGV4T2YoInN0YWNrdHJhY2UiKSE9LTEpe2Iuc3BsaWNlKDAsMSl9Yi5zcGxpY2UoMCwyKTtmb3IodmFyIGQ9MDtkPGIubGVuZ3RoO2QrKyl7YltkXT1iW2RdLnJlcGxhY2UoL1woW14pXSpcLyguKilcKS8sIkAkMSIpLnJlcGxhY2UoL1xALipcLyhbXlwvXSopLywiQCQxIikucmVwbGFjZSgiW29iamVjdCBPYmplY3RdLiIsIiIpfXZhciBqPWIuc3BsaWNlKDAsMSlbMF07Zys9IiAoIitqLnJlcGxhY2UoL14uKkAgPy8sIiIpKyIpIn1jYXRjaChoKXt9fWlmKHR5cGVvZih3aW5kb3cuY29uc29sZSkhPSJ1bmRlZmluZWQiKXt2YXIgYT13aW5kb3cuY29uc29sZTt2YXIgZj1mdW5jdGlvbihlLGssaSl7aWYoayYmdHlwZW9mKGspPT0iZnVuY3Rpb24iKXtrLmNhbGwoZSxpKX1lbHNle2UubG9nKGkpfX07c3dpdGNoKGMpe2Nhc2UgRHlncmFwaC5ERUJVRzpmKGEsYS5kZWJ1ZywiZHlncmFwaHM6ICIrZyk7YnJlYWs7Y2FzZSBEeWdyYXBoLklORk86ZihhLGEuaW5mbywiZHlncmFwaHM6ICIrZyk7YnJlYWs7Y2FzZSBEeWdyYXBoLldBUk5JTkc6ZihhLGEud2FybiwiZHlncmFwaHM6ICIrZyk7YnJlYWs7Y2FzZSBEeWdyYXBoLkVSUk9SOmYoYSxhLmVycm9yLCJkeWdyYXBoczogIitnKTticmVha319aWYoRHlncmFwaC5MT0dfU1RBQ0tfVFJBQ0VTKXt3aW5kb3cuY29uc29sZS5sb2coYi5qb2luKCJcbiIpKX19O0R5Z3JhcGguaW5mbz1mdW5jdGlvbihhKXtEeWdyYXBoLmxvZyhEeWdyYXBoLklORk8sYSl9O0R5Z3JhcGgucHJvdG90eXBlLmluZm89RHlncmFwaC5pbmZvO0R5Z3JhcGgud2Fybj1mdW5jdGlvbihhKXtEeWdyYXBoLmxvZyhEeWdyYXBoLldBUk5JTkcsYSl9O0R5Z3JhcGgucHJvdG90eXBlLndhcm49RHlncmFwaC53YXJuO0R5Z3JhcGguZXJyb3I9ZnVuY3Rpb24oYSl7RHlncmFwaC5sb2coRHlncmFwaC5FUlJPUixhKX07RHlncmFwaC5wcm90b3R5cGUuZXJyb3I9RHlncmFwaC5lcnJvcjtEeWdyYXBoLmdldENvbnRleHQ9ZnVuY3Rpb24oYSl7cmV0dXJuKGEuZ2V0Q29udGV4dCgiMmQiKSl9O0R5Z3JhcGguYWRkRXZlbnQ9ZnVuY3Rpb24gYWRkRXZlbnQoYyxiLGEpe2lmKGMuYWRkRXZlbnRMaXN0ZW5lcil7Yy5hZGRFdmVudExpc3RlbmVyKGIsYSxmYWxzZSl9ZWxzZXtjW2IrYV09ZnVuY3Rpb24oKXthKHdpbmRvdy5ldmVudCl9O2MuYXR0YWNoRXZlbnQoIm9uIitiLGNbYithXSl9fTtEeWdyYXBoLnByb3RvdHlwZS5hZGRBbmRUcmFja0V2ZW50PWZ1bmN0aW9uKGMsYixhKXtEeWdyYXBoLmFkZEV2ZW50KGMsYixhKTt0aGlzLnJlZ2lzdGVyZWRFdmVudHNfLnB1c2goe2VsZW06Yyx0eXBlOmIsZm46YX0pfTtEeWdyYXBoLnJlbW92ZUV2ZW50PWZ1bmN0aW9uKGMsYixhKXtpZihjLnJlbW92ZUV2ZW50TGlzdGVuZXIpe2MucmVtb3ZlRXZlbnRMaXN0ZW5lcihiLGEsZmFsc2UpfWVsc2V7dHJ5e2MuZGV0YWNoRXZlbnQoIm9uIitiLGNbYithXSl9Y2F0Y2goZCl7fWNbYithXT1udWxsfX07RHlncmFwaC5wcm90b3R5cGUucmVtb3ZlVHJhY2tlZEV2ZW50c189ZnVuY3Rpb24oKXtpZih0aGlzLnJlZ2lzdGVyZWRFdmVudHNfKXtmb3IodmFyIGE9MDthPHRoaXMucmVnaXN0ZXJlZEV2ZW50c18ubGVuZ3RoO2ErKyl7dmFyIGI9dGhpcy5yZWdpc3RlcmVkRXZlbnRzX1thXTtEeWdyYXBoLnJlbW92ZUV2ZW50KGIuZWxlbSxiLnR5cGUsYi5mbil9fXRoaXMucmVnaXN0ZXJlZEV2ZW50c189W119O0R5Z3JhcGguY2FuY2VsRXZlbnQ9ZnVuY3Rpb24oYSl7YT1hP2E6d2luZG93LmV2ZW50O2lmKGEuc3RvcFByb3BhZ2F0aW9uKXthLnN0b3BQcm9wYWdhdGlvbigpfWlmKGEucHJldmVudERlZmF1bHQpe2EucHJldmVudERlZmF1bHQoKX1hLmNhbmNlbEJ1YmJsZT10cnVlO2EuY2FuY2VsPXRydWU7YS5yZXR1cm5WYWx1ZT1mYWxzZTtyZXR1cm4gZmFsc2V9O0R5Z3JhcGguaHN2VG9SR0I9ZnVuY3Rpb24oaCxnLGspe3ZhciBjO3ZhciBkO3ZhciBsO2lmKGc9PT0wKXtjPWs7ZD1rO2w9a31lbHNle3ZhciBlPU1hdGguZmxvb3IoaCo2KTt2YXIgaj0oaCo2KS1lO3ZhciBiPWsqKDEtZyk7dmFyIGE9ayooMS0oZypqKSk7dmFyIG09ayooMS0oZyooMS1qKSkpO3N3aXRjaChlKXtjYXNlIDE6Yz1hO2Q9aztsPWI7YnJlYWs7Y2FzZSAyOmM9YjtkPWs7bD1tO2JyZWFrO2Nhc2UgMzpjPWI7ZD1hO2w9azticmVhaztjYXNlIDQ6Yz1tO2Q9YjtsPWs7YnJlYWs7Y2FzZSA1OmM9aztkPWI7bD1hO2JyZWFrO2Nhc2UgNjpjYXNlIDA6Yz1rO2Q9bTtsPWI7YnJlYWt9fWM9TWF0aC5mbG9vcigyNTUqYyswLjUpO2Q9TWF0aC5mbG9vcigyNTUqZCswLjUpO2w9TWF0aC5mbG9vcigyNTUqbCswLjUpO3JldHVybiJyZ2IoIitjKyIsIitkKyIsIitsKyIpIn07RHlncmFwaC5maW5kUG9zWD1mdW5jdGlvbihjKXt2YXIgZD0wO2lmKGMub2Zmc2V0UGFyZW50KXt2YXIgYT1jO3doaWxlKDEpe3ZhciBiPSIwIjtpZih3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSl7Yj13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShhLG51bGwpLmJvcmRlckxlZnR8fCIwIn1kKz1wYXJzZUludChiLDEwKTtkKz1hLm9mZnNldExlZnQ7aWYoIWEub2Zmc2V0UGFyZW50KXticmVha31hPWEub2Zmc2V0UGFyZW50fX1lbHNle2lmKGMueCl7ZCs9Yy54fX13aGlsZShjJiZjIT1kb2N1bWVudC5ib2R5KXtkLT1jLnNjcm9sbExlZnQ7Yz1jLnBhcmVudE5vZGV9cmV0dXJuIGR9O0R5Z3JhcGguZmluZFBvc1k9ZnVuY3Rpb24oYyl7dmFyIGI9MDtpZihjLm9mZnNldFBhcmVudCl7dmFyIGE9Yzt3aGlsZSgxKXt2YXIgZD0iMCI7aWYod2luZG93LmdldENvbXB1dGVkU3R5bGUpe2Q9d2luZG93LmdldENvbXB1dGVkU3R5bGUoYSxudWxsKS5ib3JkZXJUb3B8fCIwIn1iKz1wYXJzZUludChkLDEwKTtiKz1hLm9mZnNldFRvcDtpZighYS5vZmZzZXRQYXJlbnQpe2JyZWFrfWE9YS5vZmZzZXRQYXJlbnR9fWVsc2V7aWYoYy55KXtiKz1jLnl9fXdoaWxlKGMmJmMhPWRvY3VtZW50LmJvZHkpe2ItPWMuc2Nyb2xsVG9wO2M9Yy5wYXJlbnROb2RlfXJldHVybiBifTtEeWdyYXBoLnBhZ2VYPWZ1bmN0aW9uKGMpe2lmKGMucGFnZVgpe3JldHVybighYy5wYWdlWHx8Yy5wYWdlWDwwKT8wOmMucGFnZVh9ZWxzZXt2YXIgZD1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7dmFyIGE9ZG9jdW1lbnQuYm9keTtyZXR1cm4gYy5jbGllbnRYKyhkLnNjcm9sbExlZnR8fGEuc2Nyb2xsTGVmdCktKGQuY2xpZW50TGVmdHx8MCl9fTtEeWdyYXBoLnBhZ2VZPWZ1bmN0aW9uKGMpe2lmKGMucGFnZVkpe3JldHVybighYy5wYWdlWXx8Yy5wYWdlWTwwKT8wOmMucGFnZVl9ZWxzZXt2YXIgZD1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7dmFyIGE9ZG9jdW1lbnQuYm9keTtyZXR1cm4gYy5jbGllbnRZKyhkLnNjcm9sbFRvcHx8YS5zY3JvbGxUb3ApLShkLmNsaWVudFRvcHx8MCl9fTtEeWdyYXBoLmlzT0s9ZnVuY3Rpb24oYSl7cmV0dXJuICEhYSYmIWlzTmFOKGEpfTtEeWdyYXBoLmlzVmFsaWRQb2ludD1mdW5jdGlvbihiLGEpe2lmKCFiKXtyZXR1cm4gZmFsc2V9aWYoYi55dmFsPT09bnVsbCl7cmV0dXJuIGZhbHNlfWlmKGIueD09PW51bGx8fGIueD09PXVuZGVmaW5lZCl7cmV0dXJuIGZhbHNlfWlmKGIueT09PW51bGx8fGIueT09PXVuZGVmaW5lZCl7cmV0dXJuIGZhbHNlfWlmKGlzTmFOKGIueCl8fCghYSYmaXNOYU4oYi55KSkpe3JldHVybiBmYWxzZX1yZXR1cm4gdHJ1ZX07RHlncmFwaC5mbG9hdEZvcm1hdD1mdW5jdGlvbihhLGIpe3ZhciBjPU1hdGgubWluKE1hdGgubWF4KDEsYnx8MiksMjEpO3JldHVybihNYXRoLmFicyhhKTwwLjAwMSYmYSE9PTApP2EudG9FeHBvbmVudGlhbChjLTEpOmEudG9QcmVjaXNpb24oYyl9O0R5Z3JhcGguemVyb3BhZD1mdW5jdGlvbihhKXtpZihhPDEwKXtyZXR1cm4iMCIrYX1lbHNle3JldHVybiIiK2F9fTtEeWdyYXBoLmhtc1N0cmluZ189ZnVuY3Rpb24oYSl7dmFyIGM9RHlncmFwaC56ZXJvcGFkO3ZhciBiPW5ldyBEYXRlKGEpO2lmKGIuZ2V0U2Vjb25kcygpKXtyZXR1cm4gYyhiLmdldEhvdXJzKCkpKyI6IitjKGIuZ2V0TWludXRlcygpKSsiOiIrYyhiLmdldFNlY29uZHMoKSl9ZWxzZXtyZXR1cm4gYyhiLmdldEhvdXJzKCkpKyI6IitjKGIuZ2V0TWludXRlcygpKX19O0R5Z3JhcGgucm91bmRfPWZ1bmN0aW9uKGMsYil7dmFyIGE9TWF0aC5wb3coMTAsYik7cmV0dXJuIE1hdGgucm91bmQoYyphKS9hfTtEeWdyYXBoLmJpbmFyeVNlYXJjaD1mdW5jdGlvbihhLGQsaSxlLGIpe2lmKGU9PT1udWxsfHxlPT09dW5kZWZpbmVkfHxiPT09bnVsbHx8Yj09PXVuZGVmaW5lZCl7ZT0wO2I9ZC5sZW5ndGgtMX1pZihlPmIpe3JldHVybiAtMX1pZihpPT09bnVsbHx8aT09PXVuZGVmaW5lZCl7aT0wfXZhciBoPWZ1bmN0aW9uKGope3JldHVybiBqPj0wJiZqPGQubGVuZ3RofTt2YXIgZz1wYXJzZUludCgoZStiKS8yLDEwKTt2YXIgYz1kW2ddO3ZhciBmO2lmKGM9PWEpe3JldHVybiBnfWVsc2V7aWYoYz5hKXtpZihpPjApe2Y9Zy0xO2lmKGgoZikmJmRbZl08YSl7cmV0dXJuIGd9fXJldHVybiBEeWdyYXBoLmJpbmFyeVNlYXJjaChhLGQsaSxlLGctMSl9ZWxzZXtpZihjPGEpe2lmKGk8MCl7Zj1nKzE7aWYoaChmKSYmZFtmXT5hKXtyZXR1cm4gZ319cmV0dXJuIER5Z3JhcGguYmluYXJ5U2VhcmNoKGEsZCxpLGcrMSxiKX19fXJldHVybiAtMX07RHlncmFwaC5kYXRlUGFyc2VyPWZ1bmN0aW9uKGEpe3ZhciBiO3ZhciBjO2lmKGEuc2VhcmNoKCItIik9PS0xfHxhLnNlYXJjaCgiVCIpIT0tMXx8YS5zZWFyY2goIloiKSE9LTEpe2M9RHlncmFwaC5kYXRlU3RyVG9NaWxsaXMoYSk7aWYoYyYmIWlzTmFOKGMpKXtyZXR1cm4gY319aWYoYS5zZWFyY2goIi0iKSE9LTEpe2I9YS5yZXBsYWNlKCItIiwiLyIsImciKTt3aGlsZShiLnNlYXJjaCgiLSIpIT0tMSl7Yj1iLnJlcGxhY2UoIi0iLCIvIil9Yz1EeWdyYXBoLmRhdGVTdHJUb01pbGxpcyhiKX1lbHNle2lmKGEubGVuZ3RoPT04KXtiPWEuc3Vic3RyKDAsNCkrIi8iK2Euc3Vic3RyKDQsMikrIi8iK2Euc3Vic3RyKDYsMik7Yz1EeWdyYXBoLmRhdGVTdHJUb01pbGxpcyhiKX1lbHNle2M9RHlncmFwaC5kYXRlU3RyVG9NaWxsaXMoYSl9fWlmKCFjfHxpc05hTihjKSl7RHlncmFwaC5lcnJvcigiQ291bGRuJ3QgcGFyc2UgIithKyIgYXMgYSBkYXRlIil9cmV0dXJuIGN9O0R5Z3JhcGguZGF0ZVN0clRvTWlsbGlzPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgRGF0ZShhKS5nZXRUaW1lKCl9O0R5Z3JhcGgudXBkYXRlPWZ1bmN0aW9uKGIsYyl7aWYodHlwZW9mKGMpIT0idW5kZWZpbmVkIiYmYyE9PW51bGwpe2Zvcih2YXIgYSBpbiBjKXtpZihjLmhhc093blByb3BlcnR5KGEpKXtiW2FdPWNbYV19fX1yZXR1cm4gYn07RHlncmFwaC51cGRhdGVEZWVwPWZ1bmN0aW9uKGIsZCl7ZnVuY3Rpb24gYyhlKXtyZXR1cm4odHlwZW9mIE5vZGU9PT0ib2JqZWN0Ij9lIGluc3RhbmNlb2YgTm9kZTp0eXBlb2YgZT09PSJvYmplY3QiJiZ0eXBlb2YgZS5ub2RlVHlwZT09PSJudW1iZXIiJiZ0eXBlb2YgZS5ub2RlTmFtZT09PSJzdHJpbmciKX1pZih0eXBlb2YoZCkhPSJ1bmRlZmluZWQiJiZkIT09bnVsbCl7Zm9yKHZhciBhIGluIGQpe2lmKGQuaGFzT3duUHJvcGVydHkoYSkpe2lmKGRbYV09PT1udWxsKXtiW2FdPW51bGx9ZWxzZXtpZihEeWdyYXBoLmlzQXJyYXlMaWtlKGRbYV0pKXtiW2FdPWRbYV0uc2xpY2UoKX1lbHNle2lmKGMoZFthXSkpe2JbYV09ZFthXX1lbHNle2lmKHR5cGVvZihkW2FdKT09Im9iamVjdCIpe2lmKHR5cGVvZihiW2FdKSE9Im9iamVjdCJ8fGJbYV09PT1udWxsKXtiW2FdPXt9fUR5Z3JhcGgudXBkYXRlRGVlcChiW2FdLGRbYV0pfWVsc2V7YlthXT1kW2FdfX19fX19fXJldHVybiBifTtEeWdyYXBoLmlzQXJyYXlMaWtlPWZ1bmN0aW9uKGIpe3ZhciBhPXR5cGVvZihiKTtpZigoYSE9Im9iamVjdCImJiEoYT09ImZ1bmN0aW9uIiYmdHlwZW9mKGIuaXRlbSk9PSJmdW5jdGlvbiIpKXx8Yj09PW51bGx8fHR5cGVvZihiLmxlbmd0aCkhPSJudW1iZXIifHxiLm5vZGVUeXBlPT09Myl7cmV0dXJuIGZhbHNlfXJldHVybiB0cnVlfTtEeWdyYXBoLmlzRGF0ZUxpa2U9ZnVuY3Rpb24oYSl7aWYodHlwZW9mKGEpIT0ib2JqZWN0Inx8YT09PW51bGx8fHR5cGVvZihhLmdldFRpbWUpIT0iZnVuY3Rpb24iKXtyZXR1cm4gZmFsc2V9cmV0dXJuIHRydWV9O0R5Z3JhcGguY2xvbmU9ZnVuY3Rpb24oYyl7dmFyIGI9W107Zm9yKHZhciBhPTA7YTxjLmxlbmd0aDthKyspe2lmKER5Z3JhcGguaXNBcnJheUxpa2UoY1thXSkpe2IucHVzaChEeWdyYXBoLmNsb25lKGNbYV0pKX1lbHNle2IucHVzaChjW2FdKX19cmV0dXJuIGJ9O0R5Z3JhcGguY3JlYXRlQ2FudmFzPWZ1bmN0aW9uKCl7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7dmFyIGI9KC9NU0lFLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiYhd2luZG93Lm9wZXJhKTtpZihiJiYodHlwZW9mKEdfdm1sQ2FudmFzTWFuYWdlcikhPSJ1bmRlZmluZWQiKSl7YT1HX3ZtbENhbnZhc01hbmFnZXIuaW5pdEVsZW1lbnQoKGEpKX1yZXR1cm4gYX07RHlncmFwaC5pc0FuZHJvaWQ9ZnVuY3Rpb24oKXtyZXR1cm4oL0FuZHJvaWQvKS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpfTtEeWdyYXBoLkl0ZXJhdG9yPWZ1bmN0aW9uKGQsYyxiLGEpe2M9Y3x8MDtiPWJ8fGQubGVuZ3RoO3RoaXMuaGFzTmV4dD10cnVlO3RoaXMucGVlaz1udWxsO3RoaXMuc3RhcnRfPWM7dGhpcy5hcnJheV89ZDt0aGlzLnByZWRpY2F0ZV89YTt0aGlzLmVuZF89TWF0aC5taW4oZC5sZW5ndGgsYytiKTt0aGlzLm5leHRJZHhfPWMtMTt0aGlzLm5leHQoKX07RHlncmFwaC5JdGVyYXRvci5wcm90b3R5cGUubmV4dD1mdW5jdGlvbigpe2lmKCF0aGlzLmhhc05leHQpe3JldHVybiBudWxsfXZhciBjPXRoaXMucGVlazt2YXIgYj10aGlzLm5leHRJZHhfKzE7dmFyIGE9ZmFsc2U7d2hpbGUoYjx0aGlzLmVuZF8pe2lmKCF0aGlzLnByZWRpY2F0ZV98fHRoaXMucHJlZGljYXRlXyh0aGlzLmFycmF5XyxiKSl7dGhpcy5wZWVrPXRoaXMuYXJyYXlfW2JdO2E9dHJ1ZTticmVha31iKyt9dGhpcy5uZXh0SWR4Xz1iO2lmKCFhKXt0aGlzLmhhc05leHQ9ZmFsc2U7dGhpcy5wZWVrPW51bGx9cmV0dXJuIGN9O0R5Z3JhcGguY3JlYXRlSXRlcmF0b3I9ZnVuY3Rpb24oZCxjLGIsYSl7cmV0dXJuIG5ldyBEeWdyYXBoLkl0ZXJhdG9yKGQsYyxiLGEpfTtEeWdyYXBoLnJlcXVlc3RBbmltRnJhbWU9KGZ1bmN0aW9uKCl7cmV0dXJuIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fHdpbmRvdy53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fHdpbmRvdy5tb3pSZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fHdpbmRvdy5vUmVxdWVzdEFuaW1hdGlvbkZyYW1lfHx3aW5kb3cubXNSZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fGZ1bmN0aW9uKGEpe3dpbmRvdy5zZXRUaW1lb3V0KGEsMTAwMC82MCl9fSkoKTtEeWdyYXBoLnJlcGVhdEFuZENsZWFudXA9ZnVuY3Rpb24oaCxnLGYsYSl7dmFyIGk9MDt2YXIgZDt2YXIgYj1uZXcgRGF0ZSgpLmdldFRpbWUoKTtoKGkpO2lmKGc9PTEpe2EoKTtyZXR1cm59dmFyIGU9Zy0xOyhmdW5jdGlvbiBjKCl7aWYoaT49Zyl7cmV0dXJufUR5Z3JhcGgucmVxdWVzdEFuaW1GcmFtZS5jYWxsKHdpbmRvdyxmdW5jdGlvbigpe3ZhciBsPW5ldyBEYXRlKCkuZ2V0VGltZSgpO3ZhciBqPWwtYjtkPWk7aT1NYXRoLmZsb29yKGovZik7dmFyIGs9aS1kO3ZhciBtPShpK2spPmU7aWYobXx8KGk+PWUpKXtoKGUpO2EoKX1lbHNle2lmKGshPT0wKXtoKGkpfWMoKX19KX0pKCl9O0R5Z3JhcGguaXNQaXhlbENoYW5naW5nT3B0aW9uTGlzdD1mdW5jdGlvbihoLGUpe3ZhciBkPXthbm5vdGF0aW9uQ2xpY2tIYW5kbGVyOnRydWUsYW5ub3RhdGlvbkRibENsaWNrSGFuZGxlcjp0cnVlLGFubm90YXRpb25Nb3VzZU91dEhhbmRsZXI6dHJ1ZSxhbm5vdGF0aW9uTW91c2VPdmVySGFuZGxlcjp0cnVlLGF4aXNMYWJlbENvbG9yOnRydWUsYXhpc0xpbmVDb2xvcjp0cnVlLGF4aXNMaW5lV2lkdGg6dHJ1ZSxjbGlja0NhbGxiYWNrOnRydWUsZGlnaXRzQWZ0ZXJEZWNpbWFsOnRydWUsZHJhd0NhbGxiYWNrOnRydWUsZHJhd0hpZ2hsaWdodFBvaW50Q2FsbGJhY2s6dHJ1ZSxkcmF3UG9pbnRzOnRydWUsZHJhd1BvaW50Q2FsbGJhY2s6dHJ1ZSxkcmF3WEdyaWQ6dHJ1ZSxkcmF3WUdyaWQ6dHJ1ZSxmaWxsQWxwaGE6dHJ1ZSxncmlkTGluZUNvbG9yOnRydWUsZ3JpZExpbmVXaWR0aDp0cnVlLGhpZGVPdmVybGF5T25Nb3VzZU91dDp0cnVlLGhpZ2hsaWdodENhbGxiYWNrOnRydWUsaGlnaGxpZ2h0Q2lyY2xlU2l6ZTp0cnVlLGludGVyYWN0aW9uTW9kZWw6dHJ1ZSxpc1pvb21lZElnbm9yZVByb2dyYW1tYXRpY1pvb206dHJ1ZSxsYWJlbHNEaXY6dHJ1ZSxsYWJlbHNEaXZTdHlsZXM6dHJ1ZSxsYWJlbHNEaXZXaWR0aDp0cnVlLGxhYmVsc0tNQjp0cnVlLGxhYmVsc0tNRzI6dHJ1ZSxsYWJlbHNTZXBhcmF0ZUxpbmVzOnRydWUsbGFiZWxzU2hvd1plcm9WYWx1ZXM6dHJ1ZSxsZWdlbmQ6dHJ1ZSxtYXhOdW1iZXJXaWR0aDp0cnVlLHBhbkVkZ2VGcmFjdGlvbjp0cnVlLHBpeGVsc1BlcllMYWJlbDp0cnVlLHBvaW50Q2xpY2tDYWxsYmFjazp0cnVlLHBvaW50U2l6ZTp0cnVlLHJhbmdlU2VsZWN0b3JQbG90RmlsbENvbG9yOnRydWUscmFuZ2VTZWxlY3RvclBsb3RTdHJva2VDb2xvcjp0cnVlLHNob3dMYWJlbHNPbkhpZ2hsaWdodDp0cnVlLHNob3dSb2xsZXI6dHJ1ZSxzaWdGaWdzOnRydWUsc3Ryb2tlV2lkdGg6dHJ1ZSx1bmRlcmxheUNhbGxiYWNrOnRydWUsdW5oaWdobGlnaHRDYWxsYmFjazp0cnVlLHhBeGlzTGFiZWxGb3JtYXR0ZXI6dHJ1ZSx4VGlja2VyOnRydWUseFZhbHVlRm9ybWF0dGVyOnRydWUseUF4aXNMYWJlbEZvcm1hdHRlcjp0cnVlLHlWYWx1ZUZvcm1hdHRlcjp0cnVlLHpvb21DYWxsYmFjazp0cnVlfTt2YXIgYT1mYWxzZTt2YXIgYj17fTtpZihoKXtmb3IodmFyIGY9MTtmPGgubGVuZ3RoO2YrKyl7YltoW2ZdXT10cnVlfX1mb3IodmFyIGcgaW4gZSl7aWYoYSl7YnJlYWt9aWYoZS5oYXNPd25Qcm9wZXJ0eShnKSl7aWYoYltnXSl7Zm9yKHZhciBjIGluIGVbZ10pe2lmKGEpe2JyZWFrfWlmKGVbZ10uaGFzT3duUHJvcGVydHkoYykmJiFkW2NdKXthPXRydWV9fX1lbHNle2lmKCFkW2ddKXthPXRydWV9fX19cmV0dXJuIGF9O0R5Z3JhcGguY29tcGFyZUFycmF5cz1mdW5jdGlvbihjLGIpe2lmKCFEeWdyYXBoLmlzQXJyYXlMaWtlKGMpfHwhRHlncmFwaC5pc0FycmF5TGlrZShiKSl7cmV0dXJuIGZhbHNlfWlmKGMubGVuZ3RoIT09Yi5sZW5ndGgpe3JldHVybiBmYWxzZX1mb3IodmFyIGE9MDthPGMubGVuZ3RoO2ErKyl7aWYoY1thXSE9PWJbYV0pe3JldHVybiBmYWxzZX19cmV0dXJuIHRydWV9O0R5Z3JhcGgucmVndWxhclNoYXBlXz1mdW5jdGlvbihvLGMsaSxmLGUsYSxuKXthPWF8fDA7bj1ufHxNYXRoLlBJKjIvYztvLmJlZ2luUGF0aCgpO3ZhciBnPWE7dmFyIGQ9Zzt2YXIgaD1mdW5jdGlvbigpe3ZhciBwPWYrKE1hdGguc2luKGQpKmkpO3ZhciBxPWUrKC1NYXRoLmNvcyhkKSppKTtyZXR1cm5bcCxxXX07dmFyIGI9aCgpO3ZhciBsPWJbMF07dmFyIGo9YlsxXTtvLm1vdmVUbyhsLGopO2Zvcih2YXIgbT0wO208YzttKyspe2Q9KG09PWMtMSk/ZzooZCtuKTt2YXIgaz1oKCk7by5saW5lVG8oa1swXSxrWzFdKX1vLmZpbGwoKTtvLnN0cm9rZSgpfTtEeWdyYXBoLnNoYXBlRnVuY3Rpb25fPWZ1bmN0aW9uKGIsYSxjKXtyZXR1cm4gZnVuY3Rpb24oaixpLGYsZSxrLGgsZCl7Zi5zdHJva2VTdHlsZT1oO2YuZmlsbFN0eWxlPSJ3aGl0ZSI7RHlncmFwaC5yZWd1bGFyU2hhcGVfKGYsYixkLGUsayxhLGMpfX07RHlncmFwaC5DaXJjbGVzPXtERUZBVUxUOmZ1bmN0aW9uKGgsZixiLGUsZCxjLGEpe2IuYmVnaW5QYXRoKCk7Yi5maWxsU3R5bGU9YztiLmFyYyhlLGQsYSwwLDIqTWF0aC5QSSxmYWxzZSk7Yi5maWxsKCl9LFRSSUFOR0xFOkR5Z3JhcGguc2hhcGVGdW5jdGlvbl8oMyksU1FVQVJFOkR5Z3JhcGguc2hhcGVGdW5jdGlvbl8oNCxNYXRoLlBJLzQpLERJQU1PTkQ6RHlncmFwaC5zaGFwZUZ1bmN0aW9uXyg0KSxQRU5UQUdPTjpEeWdyYXBoLnNoYXBlRnVuY3Rpb25fKDUpLEhFWEFHT046RHlncmFwaC5zaGFwZUZ1bmN0aW9uXyg2KSxDSVJDTEU6ZnVuY3Rpb24oZixlLGMsYixoLGQsYSl7Yy5iZWdpblBhdGgoKTtjLnN0cm9rZVN0eWxlPWQ7Yy5maWxsU3R5bGU9IndoaXRlIjtjLmFyYyhiLGgsYSwwLDIqTWF0aC5QSSxmYWxzZSk7Yy5maWxsKCk7Yy5zdHJva2UoKX0sU1RBUjpEeWdyYXBoLnNoYXBlRnVuY3Rpb25fKDUsMCw0Kk1hdGguUEkvNSksUExVUzpmdW5jdGlvbihmLGUsYyxiLGgsZCxhKXtjLnN0cm9rZVN0eWxlPWQ7Yy5iZWdpblBhdGgoKTtjLm1vdmVUbyhiK2EsaCk7Yy5saW5lVG8oYi1hLGgpO2MuY2xvc2VQYXRoKCk7Yy5zdHJva2UoKTtjLmJlZ2luUGF0aCgpO2MubW92ZVRvKGIsaCthKTtjLmxpbmVUbyhiLGgtYSk7Yy5jbG9zZVBhdGgoKTtjLnN0cm9rZSgpfSxFWDpmdW5jdGlvbihmLGUsYyxiLGgsZCxhKXtjLnN0cm9rZVN0eWxlPWQ7Yy5iZWdpblBhdGgoKTtjLm1vdmVUbyhiK2EsaCthKTtjLmxpbmVUbyhiLWEsaC1hKTtjLmNsb3NlUGF0aCgpO2Muc3Ryb2tlKCk7Yy5iZWdpblBhdGgoKTtjLm1vdmVUbyhiK2EsaC1hKTtjLmxpbmVUbyhiLWEsaCthKTtjLmNsb3NlUGF0aCgpO2Muc3Ryb2tlKCl9fTtEeWdyYXBoLklGcmFtZVRhcnA9ZnVuY3Rpb24oKXt0aGlzLnRhcnBzPVtdfTtEeWdyYXBoLklGcmFtZVRhcnAucHJvdG90eXBlLmNvdmVyPWZ1bmN0aW9uKCl7dmFyIGY9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlmcmFtZSIpO2Zvcih2YXIgYz0wO2M8Zi5sZW5ndGg7YysrKXt2YXIgZT1mW2NdO3ZhciBiPUR5Z3JhcGguZmluZFBvc1goZSksaD1EeWdyYXBoLmZpbmRQb3NZKGUpLGQ9ZS5vZmZzZXRXaWR0aCxhPWUub2Zmc2V0SGVpZ2h0O3ZhciBnPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2cuc3R5bGUucG9zaXRpb249ImFic29sdXRlIjtnLnN0eWxlLmxlZnQ9YisicHgiO2cuc3R5bGUudG9wPWgrInB4IjtnLnN0eWxlLndpZHRoPWQrInB4IjtnLnN0eWxlLmhlaWdodD1hKyJweCI7Zy5zdHlsZS56SW5kZXg9OTk5O2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZyk7dGhpcy50YXJwcy5wdXNoKGcpfX07RHlncmFwaC5JRnJhbWVUYXJwLnByb3RvdHlwZS51bmNvdmVyPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPTA7YTx0aGlzLnRhcnBzLmxlbmd0aDthKyspe3RoaXMudGFycHNbYV0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLnRhcnBzW2FdKX10aGlzLnRhcnBzPVtdfTtEeWdyYXBoLmRldGVjdExpbmVEZWxpbWl0ZXI9ZnVuY3Rpb24oYyl7Zm9yKHZhciBhPTA7YTxjLmxlbmd0aDthKyspe3ZhciBiPWMuY2hhckF0KGEpO2lmKGI9PT0iXHIiKXtpZigoKGErMSk8Yy5sZW5ndGgpJiYoYy5jaGFyQXQoYSsxKT09PSJcbiIpKXtyZXR1cm4iXHJcbiJ9cmV0dXJuIGJ9aWYoYj09PSJcbiIpe2lmKCgoYSsxKTxjLmxlbmd0aCkmJihjLmNoYXJBdChhKzEpPT09IlxyIikpe3JldHVybiJcblxyIn1yZXR1cm4gYn19cmV0dXJuIG51bGx9O0R5Z3JhcGguaXNOb2RlQ29udGFpbmVkQnk9ZnVuY3Rpb24oYixhKXtpZihhPT09bnVsbHx8Yj09PW51bGwpe3JldHVybiBmYWxzZX12YXIgYz0oYik7d2hpbGUoYyYmYyE9PWEpe2M9Yy5wYXJlbnROb2RlfXJldHVybihjPT09YSl9O0R5Z3JhcGgucG93PWZ1bmN0aW9uKGEsYil7aWYoYjwwKXtyZXR1cm4gMS9NYXRoLnBvdyhhLC1iKX1yZXR1cm4gTWF0aC5wb3coYSxiKX07RHlncmFwaC5kYXRlU2V0dGVycz17bXM6RGF0ZS5wcm90b3R5cGUuc2V0TWlsbGlzZWNvbmRzLHM6RGF0ZS5wcm90b3R5cGUuc2V0U2Vjb25kcyxtOkRhdGUucHJvdG90eXBlLnNldE1pbnV0ZXMsaDpEYXRlLnByb3RvdHlwZS5zZXRIb3Vyc307RHlncmFwaC5zZXREYXRlU2FtZVRaPWZ1bmN0aW9uKGMsYil7dmFyIGY9Yy5nZXRUaW1lem9uZU9mZnNldCgpO2Zvcih2YXIgYSBpbiBiKXtpZighYi5oYXNPd25Qcm9wZXJ0eShhKSl7Y29udGludWV9dmFyIGU9RHlncmFwaC5kYXRlU2V0dGVyc1thXTtpZighZSl7dGhyb3ciSW52YWxpZCBzZXR0ZXI6ICIrYX1lLmNhbGwoYyxiW2FdKTtpZihjLmdldFRpbWV6b25lT2Zmc2V0KCkhPWYpe2Muc2V0VGltZShjLmdldFRpbWUoKSsoZi1jLmdldFRpbWV6b25lT2Zmc2V0KCkpKjYwKjEwMDApfX19OyJ1c2Ugc3RyaWN0IjtEeWdyYXBoLkdWaXpDaGFydD1mdW5jdGlvbihhKXt0aGlzLmNvbnRhaW5lcj1hfTtEeWdyYXBoLkdWaXpDaGFydC5wcm90b3R5cGUuZHJhdz1mdW5jdGlvbihiLGEpe3RoaXMuY29udGFpbmVyLmlubmVySFRNTD0iIjtpZih0eXBlb2YodGhpcy5kYXRlX2dyYXBoKSE9InVuZGVmaW5lZCIpe3RoaXMuZGF0ZV9ncmFwaC5kZXN0cm95KCl9dGhpcy5kYXRlX2dyYXBoPW5ldyBEeWdyYXBoKHRoaXMuY29udGFpbmVyLGIsYSl9O0R5Z3JhcGguR1ZpekNoYXJ0LnByb3RvdHlwZS5zZXRTZWxlY3Rpb249ZnVuY3Rpb24oYil7dmFyIGE9ZmFsc2U7aWYoYi5sZW5ndGgpe2E9YlswXS5yb3d9dGhpcy5kYXRlX2dyYXBoLnNldFNlbGVjdGlvbihhKX07RHlncmFwaC5HVml6Q2hhcnQucHJvdG90eXBlLmdldFNlbGVjdGlvbj1mdW5jdGlvbigpe3ZhciBiPVtdO3ZhciBkPXRoaXMuZGF0ZV9ncmFwaC5nZXRTZWxlY3Rpb24oKTtpZihkPDApe3JldHVybiBifXZhciBhPXRoaXMuZGF0ZV9ncmFwaC5sYXlvdXRfLnBvaW50cztmb3IodmFyIGM9MDtjPGEubGVuZ3RoOysrYyl7Yi5wdXNoKHtyb3c6ZCxjb2x1bW46YysxfSl9cmV0dXJuIGJ9OyJ1c2Ugc3RyaWN0IjtEeWdyYXBoLkludGVyYWN0aW9uPXt9O0R5Z3JhcGguSW50ZXJhY3Rpb24uc3RhcnRQYW49ZnVuY3Rpb24obyx0LGMpe3ZhciByLGI7Yy5pc1Bhbm5pbmc9dHJ1ZTt2YXIgaz10LnhBeGlzUmFuZ2UoKTtjLmRhdGVSYW5nZT1rWzFdLWtbMF07Yy5pbml0aWFsTGVmdG1vc3REYXRlPWtbMF07Yy54VW5pdHNQZXJQaXhlbD1jLmRhdGVSYW5nZS8odC5wbG90dGVyXy5hcmVhLnctMSk7aWYodC5hdHRyXygicGFuRWRnZUZyYWN0aW9uIikpe3ZhciB4PXQud2lkdGhfKnQuYXR0cl8oInBhbkVkZ2VGcmFjdGlvbiIpO3ZhciBkPXQueEF4aXNFeHRyZW1lcygpO3ZhciBqPXQudG9Eb21YQ29vcmQoZFswXSkteDt2YXIgbD10LnRvRG9tWENvb3JkKGRbMV0pK3g7dmFyIHU9dC50b0RhdGFYQ29vcmQoaik7dmFyIHc9dC50b0RhdGFYQ29vcmQobCk7Yy5ib3VuZGVkRGF0ZXM9W3Usd107dmFyIGY9W107dmFyIGE9dC5oZWlnaHRfKnQuYXR0cl8oInBhbkVkZ2VGcmFjdGlvbiIpO2ZvcihyPTA7cjx0LmF4ZXNfLmxlbmd0aDtyKyspe2I9dC5heGVzX1tyXTt2YXIgcD1iLmV4dHJlbWVSYW5nZTt2YXIgcT10LnRvRG9tWUNvb3JkKHBbMF0scikrYTt2YXIgcz10LnRvRG9tWUNvb3JkKHBbMV0sciktYTt2YXIgbj10LnRvRGF0YVlDb29yZChxLHIpO3ZhciBlPXQudG9EYXRhWUNvb3JkKHMscik7ZltyXT1bbixlXX1jLmJvdW5kZWRWYWx1ZXM9Zn1jLmlzMkRQYW49ZmFsc2U7Yy5heGVzPVtdO2ZvcihyPTA7cjx0LmF4ZXNfLmxlbmd0aDtyKyspe2I9dC5heGVzX1tyXTt2YXIgaD17fTt2YXIgbT10LnlBeGlzUmFuZ2Uocik7dmFyIHY9dC5hdHRyaWJ1dGVzXy5nZXRGb3JBeGlzKCJsb2dzY2FsZSIscik7aWYodil7aC5pbml0aWFsVG9wVmFsdWU9RHlncmFwaC5sb2cxMChtWzFdKTtoLmRyYWdWYWx1ZVJhbmdlPUR5Z3JhcGgubG9nMTAobVsxXSktRHlncmFwaC5sb2cxMChtWzBdKX1lbHNle2guaW5pdGlhbFRvcFZhbHVlPW1bMV07aC5kcmFnVmFsdWVSYW5nZT1tWzFdLW1bMF19aC51bml0c1BlclBpeGVsPWguZHJhZ1ZhbHVlUmFuZ2UvKHQucGxvdHRlcl8uYXJlYS5oLTEpO2MuYXhlcy5wdXNoKGgpO2lmKGIudmFsdWVXaW5kb3d8fGIudmFsdWVSYW5nZSl7Yy5pczJEUGFuPXRydWV9fX07RHlncmFwaC5JbnRlcmFjdGlvbi5tb3ZlUGFuPWZ1bmN0aW9uKGIsayxjKXtjLmRyYWdFbmRYPWsuZHJhZ0dldFhfKGIsYyk7Yy5kcmFnRW5kWT1rLmRyYWdHZXRZXyhiLGMpO3ZhciBoPWMuaW5pdGlhbExlZnRtb3N0RGF0ZS0oYy5kcmFnRW5kWC1jLmRyYWdTdGFydFgpKmMueFVuaXRzUGVyUGl4ZWw7aWYoYy5ib3VuZGVkRGF0ZXMpe2g9TWF0aC5tYXgoaCxjLmJvdW5kZWREYXRlc1swXSl9dmFyIGE9aCtjLmRhdGVSYW5nZTtpZihjLmJvdW5kZWREYXRlcyl7aWYoYT5jLmJvdW5kZWREYXRlc1sxXSl7aD1oLShhLWMuYm91bmRlZERhdGVzWzFdKTthPWgrYy5kYXRlUmFuZ2V9fWsuZGF0ZVdpbmRvd189W2gsYV07aWYoYy5pczJEUGFuKXt2YXIgZD1jLmRyYWdFbmRZLWMuZHJhZ1N0YXJ0WTtmb3IodmFyIGo9MDtqPGsuYXhlc18ubGVuZ3RoO2orKyl7dmFyIGU9ay5heGVzX1tqXTt2YXIgbz1jLmF4ZXNbal07dmFyIHA9ZCpvLnVuaXRzUGVyUGl4ZWw7dmFyIGY9Yy5ib3VuZGVkVmFsdWVzP2MuYm91bmRlZFZhbHVlc1tqXTpudWxsO3ZhciBsPW8uaW5pdGlhbFRvcFZhbHVlK3A7aWYoZil7bD1NYXRoLm1pbihsLGZbMV0pfXZhciBuPWwtby5kcmFnVmFsdWVSYW5nZTtpZihmKXtpZihuPGZbMF0pe2w9bC0obi1mWzBdKTtuPWwtby5kcmFnVmFsdWVSYW5nZX19dmFyIG09ay5hdHRyaWJ1dGVzXy5nZXRGb3JBeGlzKCJsb2dzY2FsZSIsaik7aWYobSl7ZS52YWx1ZVdpbmRvdz1bTWF0aC5wb3coRHlncmFwaC5MT0dfU0NBTEUsbiksTWF0aC5wb3coRHlncmFwaC5MT0dfU0NBTEUsbCldfWVsc2V7ZS52YWx1ZVdpbmRvdz1bbixsXX19fWsuZHJhd0dyYXBoXyhmYWxzZSl9O0R5Z3JhcGguSW50ZXJhY3Rpb24uZW5kUGFuPWZ1bmN0aW9uKGMsYixhKXthLmRyYWdFbmRYPWIuZHJhZ0dldFhfKGMsYSk7YS5kcmFnRW5kWT1iLmRyYWdHZXRZXyhjLGEpO3ZhciBlPU1hdGguYWJzKGEuZHJhZ0VuZFgtYS5kcmFnU3RhcnRYKTt2YXIgZD1NYXRoLmFicyhhLmRyYWdFbmRZLWEuZHJhZ1N0YXJ0WSk7aWYoZTwyJiZkPDImJmIubGFzdHhfIT09dW5kZWZpbmVkJiZiLmxhc3R4XyE9LTEpe0R5Z3JhcGguSW50ZXJhY3Rpb24udHJlYXRNb3VzZU9wQXNDbGljayhiLGMsYSl9YS5pc1Bhbm5pbmc9ZmFsc2U7YS5pczJEUGFuPWZhbHNlO2EuaW5pdGlhbExlZnRtb3N0RGF0ZT1udWxsO2EuZGF0ZVJhbmdlPW51bGw7YS52YWx1ZVJhbmdlPW51bGw7YS5ib3VuZGVkRGF0ZXM9bnVsbDthLmJvdW5kZWRWYWx1ZXM9bnVsbDthLmF4ZXM9bnVsbH07RHlncmFwaC5JbnRlcmFjdGlvbi5zdGFydFpvb209ZnVuY3Rpb24oYyxiLGEpe2EuaXNab29taW5nPXRydWU7YS56b29tTW92ZWQ9ZmFsc2V9O0R5Z3JhcGguSW50ZXJhY3Rpb24ubW92ZVpvb209ZnVuY3Rpb24oYyxiLGEpe2Euem9vbU1vdmVkPXRydWU7YS5kcmFnRW5kWD1iLmRyYWdHZXRYXyhjLGEpO2EuZHJhZ0VuZFk9Yi5kcmFnR2V0WV8oYyxhKTt2YXIgZT1NYXRoLmFicyhhLmRyYWdTdGFydFgtYS5kcmFnRW5kWCk7dmFyIGQ9TWF0aC5hYnMoYS5kcmFnU3RhcnRZLWEuZHJhZ0VuZFkpO2EuZHJhZ0RpcmVjdGlvbj0oZTxkLzIpP0R5Z3JhcGguVkVSVElDQUw6RHlncmFwaC5IT1JJWk9OVEFMO2IuZHJhd1pvb21SZWN0XyhhLmRyYWdEaXJlY3Rpb24sYS5kcmFnU3RhcnRYLGEuZHJhZ0VuZFgsYS5kcmFnU3RhcnRZLGEuZHJhZ0VuZFksYS5wcmV2RHJhZ0RpcmVjdGlvbixhLnByZXZFbmRYLGEucHJldkVuZFkpO2EucHJldkVuZFg9YS5kcmFnRW5kWDthLnByZXZFbmRZPWEuZHJhZ0VuZFk7YS5wcmV2RHJhZ0RpcmVjdGlvbj1hLmRyYWdEaXJlY3Rpb259O0R5Z3JhcGguSW50ZXJhY3Rpb24udHJlYXRNb3VzZU9wQXNDbGljaz1mdW5jdGlvbihmLGIsZCl7dmFyIGs9Zi5hdHRyXygiY2xpY2tDYWxsYmFjayIpO3ZhciBuPWYuYXR0cl8oInBvaW50Q2xpY2tDYWxsYmFjayIpO3ZhciBqPW51bGw7aWYobil7dmFyIGw9LTE7dmFyIG09TnVtYmVyLk1BWF9WQUxVRTtmb3IodmFyIGU9MDtlPGYuc2VsUG9pbnRzXy5sZW5ndGg7ZSsrKXt2YXIgYz1mLnNlbFBvaW50c19bZV07dmFyIGE9TWF0aC5wb3coYy5jYW52YXN4LWQuZHJhZ0VuZFgsMikrTWF0aC5wb3coYy5jYW52YXN5LWQuZHJhZ0VuZFksMik7aWYoIWlzTmFOKGEpJiYobD09LTF8fGE8bSkpe209YTtsPWV9fXZhciBoPWYuYXR0cl8oImhpZ2hsaWdodENpcmNsZVNpemUiKSsyO2lmKG08PWgqaCl7aj1mLnNlbFBvaW50c19bbF19fWlmKGope24oYixqKX1pZihrKXtrKGIsZi5sYXN0eF8sZi5zZWxQb2ludHNfKX19O0R5Z3JhcGguSW50ZXJhY3Rpb24uZW5kWm9vbT1mdW5jdGlvbihjLGksZSl7ZS5pc1pvb21pbmc9ZmFsc2U7ZS5kcmFnRW5kWD1pLmRyYWdHZXRYXyhjLGUpO2UuZHJhZ0VuZFk9aS5kcmFnR2V0WV8oYyxlKTt2YXIgaD1NYXRoLmFicyhlLmRyYWdFbmRYLWUuZHJhZ1N0YXJ0WCk7dmFyIGQ9TWF0aC5hYnMoZS5kcmFnRW5kWS1lLmRyYWdTdGFydFkpO2lmKGg8MiYmZDwyJiZpLmxhc3R4XyE9PXVuZGVmaW5lZCYmaS5sYXN0eF8hPS0xKXtEeWdyYXBoLkludGVyYWN0aW9uLnRyZWF0TW91c2VPcEFzQ2xpY2soaSxjLGUpfXZhciBiPWkuZ2V0QXJlYSgpO2lmKGg+PTEwJiZlLmRyYWdEaXJlY3Rpb249PUR5Z3JhcGguSE9SSVpPTlRBTCl7dmFyIGY9TWF0aC5taW4oZS5kcmFnU3RhcnRYLGUuZHJhZ0VuZFgpLGs9TWF0aC5tYXgoZS5kcmFnU3RhcnRYLGUuZHJhZ0VuZFgpO2Y9TWF0aC5tYXgoZixiLngpO2s9TWF0aC5taW4oayxiLngrYi53KTtpZihmPGspe2kuZG9ab29tWF8oZixrKX1lLmNhbmNlbE5leHREYmxjbGljaz10cnVlfWVsc2V7aWYoZD49MTAmJmUuZHJhZ0RpcmVjdGlvbj09RHlncmFwaC5WRVJUSUNBTCl7dmFyIGo9TWF0aC5taW4oZS5kcmFnU3RhcnRZLGUuZHJhZ0VuZFkpLGE9TWF0aC5tYXgoZS5kcmFnU3RhcnRZLGUuZHJhZ0VuZFkpO2o9TWF0aC5tYXgoaixiLnkpO2E9TWF0aC5taW4oYSxiLnkrYi5oKTtpZihqPGEpe2kuZG9ab29tWV8oaixhKX1lLmNhbmNlbE5leHREYmxjbGljaz10cnVlfWVsc2V7aWYoZS56b29tTW92ZWQpe2kuY2xlYXJab29tUmVjdF8oKX19fWUuZHJhZ1N0YXJ0WD1udWxsO2UuZHJhZ1N0YXJ0WT1udWxsfTtEeWdyYXBoLkludGVyYWN0aW9uLnN0YXJ0VG91Y2g9ZnVuY3Rpb24oZixlLGQpe2YucHJldmVudERlZmF1bHQoKTtpZihmLnRvdWNoZXMubGVuZ3RoPjEpe2Quc3RhcnRUaW1lRm9yRG91YmxlVGFwTXM9bnVsbH12YXIgaD1bXTtmb3IodmFyIGM9MDtjPGYudG91Y2hlcy5sZW5ndGg7YysrKXt2YXIgYj1mLnRvdWNoZXNbY107aC5wdXNoKHtwYWdlWDpiLnBhZ2VYLHBhZ2VZOmIucGFnZVksZGF0YVg6ZS50b0RhdGFYQ29vcmQoYi5wYWdlWCksZGF0YVk6ZS50b0RhdGFZQ29vcmQoYi5wYWdlWSl9KX1kLmluaXRpYWxUb3VjaGVzPWg7aWYoaC5sZW5ndGg9PTEpe2QuaW5pdGlhbFBpbmNoQ2VudGVyPWhbMF07ZC50b3VjaERpcmVjdGlvbnM9e3g6dHJ1ZSx5OnRydWV9fWVsc2V7aWYoaC5sZW5ndGg+PTIpe2QuaW5pdGlhbFBpbmNoQ2VudGVyPXtwYWdlWDowLjUqKGhbMF0ucGFnZVgraFsxXS5wYWdlWCkscGFnZVk6MC41KihoWzBdLnBhZ2VZK2hbMV0ucGFnZVkpLGRhdGFYOjAuNSooaFswXS5kYXRhWCtoWzFdLmRhdGFYKSxkYXRhWTowLjUqKGhbMF0uZGF0YVkraFsxXS5kYXRhWSl9O3ZhciBhPTE4MC9NYXRoLlBJKk1hdGguYXRhbjIoZC5pbml0aWFsUGluY2hDZW50ZXIucGFnZVktaFswXS5wYWdlWSxoWzBdLnBhZ2VYLWQuaW5pdGlhbFBpbmNoQ2VudGVyLnBhZ2VYKTthPU1hdGguYWJzKGEpO2lmKGE+OTApe2E9OTAtYX1kLnRvdWNoRGlyZWN0aW9ucz17eDooYTwoOTAtNDUvMikpLHk6KGE+NDUvMil9fX1kLmluaXRpYWxSYW5nZT17eDplLnhBeGlzUmFuZ2UoKSx5OmUueUF4aXNSYW5nZSgpfX07RHlncmFwaC5JbnRlcmFjdGlvbi5tb3ZlVG91Y2g9ZnVuY3Rpb24obixxLGQpe2Quc3RhcnRUaW1lRm9yRG91YmxlVGFwTXM9bnVsbDt2YXIgcCxsPVtdO2ZvcihwPTA7cDxuLnRvdWNoZXMubGVuZ3RoO3ArKyl7dmFyIGs9bi50b3VjaGVzW3BdO2wucHVzaCh7cGFnZVg6ay5wYWdlWCxwYWdlWTprLnBhZ2VZfSl9dmFyIGE9ZC5pbml0aWFsVG91Y2hlczt2YXIgaDt2YXIgaj1kLmluaXRpYWxQaW5jaENlbnRlcjtpZihsLmxlbmd0aD09MSl7aD1sWzBdfWVsc2V7aD17cGFnZVg6MC41KihsWzBdLnBhZ2VYK2xbMV0ucGFnZVgpLHBhZ2VZOjAuNSoobFswXS5wYWdlWStsWzFdLnBhZ2VZKX19dmFyIG09e3BhZ2VYOmgucGFnZVgtai5wYWdlWCxwYWdlWTpoLnBhZ2VZLWoucGFnZVl9O3ZhciBmPWQuaW5pdGlhbFJhbmdlLnhbMV0tZC5pbml0aWFsUmFuZ2UueFswXTt2YXIgbz1kLmluaXRpYWxSYW5nZS55WzBdLWQuaW5pdGlhbFJhbmdlLnlbMV07bS5kYXRhWD0obS5wYWdlWC9xLnBsb3R0ZXJfLmFyZWEudykqZjttLmRhdGFZPShtLnBhZ2VZL3EucGxvdHRlcl8uYXJlYS5oKSpvO3ZhciB3LGM7aWYobC5sZW5ndGg9PTEpe3c9MTtjPTF9ZWxzZXtpZihsLmxlbmd0aD49Mil7dmFyIGU9KGFbMV0ucGFnZVgtai5wYWdlWCk7dz0obFsxXS5wYWdlWC1oLnBhZ2VYKS9lO3ZhciB2PShhWzFdLnBhZ2VZLWoucGFnZVkpO2M9KGxbMV0ucGFnZVktaC5wYWdlWSkvdn19dz1NYXRoLm1pbig4LE1hdGgubWF4KDAuMTI1LHcpKTtjPU1hdGgubWluKDgsTWF0aC5tYXgoMC4xMjUsYykpO3ZhciB1PWZhbHNlO2lmKGQudG91Y2hEaXJlY3Rpb25zLngpe3EuZGF0ZVdpbmRvd189W2ouZGF0YVgtbS5kYXRhWCsoZC5pbml0aWFsUmFuZ2UueFswXS1qLmRhdGFYKS93LGouZGF0YVgtbS5kYXRhWCsoZC5pbml0aWFsUmFuZ2UueFsxXS1qLmRhdGFYKS93XTt1PXRydWV9aWYoZC50b3VjaERpcmVjdGlvbnMueSl7Zm9yKHA9MDtwPDE7cCsrKXt2YXIgYj1xLmF4ZXNfW3BdO3ZhciBzPXEuYXR0cmlidXRlc18uZ2V0Rm9yQXhpcygibG9nc2NhbGUiLHApO2lmKHMpe31lbHNle2IudmFsdWVXaW5kb3c9W2ouZGF0YVktbS5kYXRhWSsoZC5pbml0aWFsUmFuZ2UueVswXS1qLmRhdGFZKS9jLGouZGF0YVktbS5kYXRhWSsoZC5pbml0aWFsUmFuZ2UueVsxXS1qLmRhdGFZKS9jXTt1PXRydWV9fX1xLmRyYXdHcmFwaF8oZmFsc2UpO2lmKHUmJmwubGVuZ3RoPjEmJnEuYXR0cl8oInpvb21DYWxsYmFjayIpKXt2YXIgcj1xLnhBeGlzUmFuZ2UoKTtxLmF0dHJfKCJ6b29tQ2FsbGJhY2siKShyWzBdLHJbMV0scS55QXhpc1JhbmdlcygpKX19O0R5Z3JhcGguSW50ZXJhY3Rpb24uZW5kVG91Y2g9ZnVuY3Rpb24oZSxkLGMpe2lmKGUudG91Y2hlcy5sZW5ndGghPT0wKXtEeWdyYXBoLkludGVyYWN0aW9uLnN0YXJ0VG91Y2goZSxkLGMpfWVsc2V7aWYoZS5jaGFuZ2VkVG91Y2hlcy5sZW5ndGg9PTEpe3ZhciBhPW5ldyBEYXRlKCkuZ2V0VGltZSgpO3ZhciBiPWUuY2hhbmdlZFRvdWNoZXNbMF07aWYoYy5zdGFydFRpbWVGb3JEb3VibGVUYXBNcyYmYS1jLnN0YXJ0VGltZUZvckRvdWJsZVRhcE1zPDUwMCYmYy5kb3VibGVUYXBYJiZNYXRoLmFicyhjLmRvdWJsZVRhcFgtYi5zY3JlZW5YKTw1MCYmYy5kb3VibGVUYXBZJiZNYXRoLmFicyhjLmRvdWJsZVRhcFktYi5zY3JlZW5ZKTw1MCl7ZC5yZXNldFpvb20oKX1lbHNle2Muc3RhcnRUaW1lRm9yRG91YmxlVGFwTXM9YTtjLmRvdWJsZVRhcFg9Yi5zY3JlZW5YO2MuZG91YmxlVGFwWT1iLnNjcmVlbll9fX19O0R5Z3JhcGguSW50ZXJhY3Rpb24uZGVmYXVsdE1vZGVsPXttb3VzZWRvd246ZnVuY3Rpb24oYyxiLGEpe2lmKGMuYnV0dG9uJiZjLmJ1dHRvbj09Mil7cmV0dXJufWEuaW5pdGlhbGl6ZU1vdXNlRG93bihjLGIsYSk7aWYoYy5hbHRLZXl8fGMuc2hpZnRLZXkpe0R5Z3JhcGguc3RhcnRQYW4oYyxiLGEpfWVsc2V7RHlncmFwaC5zdGFydFpvb20oYyxiLGEpfX0sbW91c2Vtb3ZlOmZ1bmN0aW9uKGMsYixhKXtpZihhLmlzWm9vbWluZyl7RHlncmFwaC5tb3ZlWm9vbShjLGIsYSl9ZWxzZXtpZihhLmlzUGFubmluZyl7RHlncmFwaC5tb3ZlUGFuKGMsYixhKX19fSxtb3VzZXVwOmZ1bmN0aW9uKGMsYixhKXtpZihhLmlzWm9vbWluZyl7RHlncmFwaC5lbmRab29tKGMsYixhKX1lbHNle2lmKGEuaXNQYW5uaW5nKXtEeWdyYXBoLmVuZFBhbihjLGIsYSl9fX0sdG91Y2hzdGFydDpmdW5jdGlvbihjLGIsYSl7RHlncmFwaC5JbnRlcmFjdGlvbi5zdGFydFRvdWNoKGMsYixhKX0sdG91Y2htb3ZlOmZ1bmN0aW9uKGMsYixhKXtEeWdyYXBoLkludGVyYWN0aW9uLm1vdmVUb3VjaChjLGIsYSl9LHRvdWNoZW5kOmZ1bmN0aW9uKGMsYixhKXtEeWdyYXBoLkludGVyYWN0aW9uLmVuZFRvdWNoKGMsYixhKX0sbW91c2VvdXQ6ZnVuY3Rpb24oYyxiLGEpe2lmKGEuaXNab29taW5nKXthLmRyYWdFbmRYPW51bGw7YS5kcmFnRW5kWT1udWxsO2IuY2xlYXJab29tUmVjdF8oKX19LGRibGNsaWNrOmZ1bmN0aW9uKGMsYixhKXtpZihhLmNhbmNlbE5leHREYmxjbGljayl7YS5jYW5jZWxOZXh0RGJsY2xpY2s9ZmFsc2U7cmV0dXJufWlmKGMuYWx0S2V5fHxjLnNoaWZ0S2V5KXtyZXR1cm59Yi5yZXNldFpvb20oKX19O0R5Z3JhcGguREVGQVVMVF9BVFRSUy5pbnRlcmFjdGlvbk1vZGVsPUR5Z3JhcGguSW50ZXJhY3Rpb24uZGVmYXVsdE1vZGVsO0R5Z3JhcGguZGVmYXVsdEludGVyYWN0aW9uTW9kZWw9RHlncmFwaC5JbnRlcmFjdGlvbi5kZWZhdWx0TW9kZWw7RHlncmFwaC5lbmRab29tPUR5Z3JhcGguSW50ZXJhY3Rpb24uZW5kWm9vbTtEeWdyYXBoLm1vdmVab29tPUR5Z3JhcGguSW50ZXJhY3Rpb24ubW92ZVpvb207RHlncmFwaC5zdGFydFpvb209RHlncmFwaC5JbnRlcmFjdGlvbi5zdGFydFpvb207RHlncmFwaC5lbmRQYW49RHlncmFwaC5JbnRlcmFjdGlvbi5lbmRQYW47RHlncmFwaC5tb3ZlUGFuPUR5Z3JhcGguSW50ZXJhY3Rpb24ubW92ZVBhbjtEeWdyYXBoLnN0YXJ0UGFuPUR5Z3JhcGguSW50ZXJhY3Rpb24uc3RhcnRQYW47RHlncmFwaC5JbnRlcmFjdGlvbi5ub25JbnRlcmFjdGl2ZU1vZGVsXz17bW91c2Vkb3duOmZ1bmN0aW9uKGMsYixhKXthLmluaXRpYWxpemVNb3VzZURvd24oYyxiLGEpfSxtb3VzZXVwOmZ1bmN0aW9uKGMsYixhKXthLmRyYWdFbmRYPWIuZHJhZ0dldFhfKGMsYSk7YS5kcmFnRW5kWT1iLmRyYWdHZXRZXyhjLGEpO3ZhciBlPU1hdGguYWJzKGEuZHJhZ0VuZFgtYS5kcmFnU3RhcnRYKTt2YXIgZD1NYXRoLmFicyhhLmRyYWdFbmRZLWEuZHJhZ1N0YXJ0WSk7aWYoZTwyJiZkPDImJmIubGFzdHhfIT09dW5kZWZpbmVkJiZiLmxhc3R4XyE9LTEpe0R5Z3JhcGguSW50ZXJhY3Rpb24udHJlYXRNb3VzZU9wQXNDbGljayhiLGMsYSl9fX07RHlncmFwaC5JbnRlcmFjdGlvbi5kcmFnSXNQYW5JbnRlcmFjdGlvbk1vZGVsPXttb3VzZWRvd246ZnVuY3Rpb24oYyxiLGEpe2EuaW5pdGlhbGl6ZU1vdXNlRG93bihjLGIsYSk7RHlncmFwaC5zdGFydFBhbihjLGIsYSl9LG1vdXNlbW92ZTpmdW5jdGlvbihjLGIsYSl7aWYoYS5pc1Bhbm5pbmcpe0R5Z3JhcGgubW92ZVBhbihjLGIsYSl9fSxtb3VzZXVwOmZ1bmN0aW9uKGMsYixhKXtpZihhLmlzUGFubmluZyl7RHlncmFwaC5lbmRQYW4oYyxiLGEpfX19OyJ1c2Ugc3RyaWN0IjtEeWdyYXBoLlRpY2tMaXN0PXVuZGVmaW5lZDtEeWdyYXBoLlRpY2tlcj11bmRlZmluZWQ7RHlncmFwaC5udW1lcmljTGluZWFyVGlja3M9ZnVuY3Rpb24oZCxjLGksZyxmLGgpe3ZhciBlPWZ1bmN0aW9uKGEpe2lmKGE9PT0ibG9nc2NhbGUiKXtyZXR1cm4gZmFsc2V9cmV0dXJuIGcoYSl9O3JldHVybiBEeWdyYXBoLm51bWVyaWNUaWNrcyhkLGMsaSxlLGYsaCl9O0R5Z3JhcGgubnVtZXJpY1RpY2tzPWZ1bmN0aW9uKEYsRSx1LHAsZCxxKXt2YXIgej0ocCgicGl4ZWxzUGVyTGFiZWwiKSk7dmFyIEc9W107dmFyIEMsQSx0LHk7aWYocSl7Zm9yKEM9MDtDPHEubGVuZ3RoO0MrKyl7Ry5wdXNoKHt2OnFbQ119KX19ZWxzZXtpZihwKCJsb2dzY2FsZSIpKXt5PU1hdGguZmxvb3IodS96KTt2YXIgbD1EeWdyYXBoLmJpbmFyeVNlYXJjaChGLER5Z3JhcGguUFJFRkVSUkVEX0xPR19USUNLX1ZBTFVFUywxKTt2YXIgSD1EeWdyYXBoLmJpbmFyeVNlYXJjaChFLER5Z3JhcGguUFJFRkVSUkVEX0xPR19USUNLX1ZBTFVFUywtMSk7aWYobD09LTEpe2w9MH1pZihIPT0tMSl7SD1EeWdyYXBoLlBSRUZFUlJFRF9MT0dfVElDS19WQUxVRVMubGVuZ3RoLTF9dmFyIHM9bnVsbDtpZihILWw+PXkvNCl7Zm9yKHZhciByPUg7cj49bDtyLS0pe3ZhciBtPUR5Z3JhcGguUFJFRkVSUkVEX0xPR19USUNLX1ZBTFVFU1tyXTt2YXIgaz1NYXRoLmxvZyhtL0YpL01hdGgubG9nKEUvRikqdTt2YXIgRD17djptfTtpZihzPT09bnVsbCl7cz17dGlja1ZhbHVlOm0scGl4ZWxfY29vcmQ6a319ZWxzZXtpZihNYXRoLmFicyhrLXMucGl4ZWxfY29vcmQpPj16KXtzPXt0aWNrVmFsdWU6bSxwaXhlbF9jb29yZDprfX1lbHNle0QubGFiZWw9IiJ9fUcucHVzaChEKX1HLnJldmVyc2UoKX19aWYoRy5sZW5ndGg9PT0wKXt2YXIgZz1wKCJsYWJlbHNLTUcyIik7dmFyIG4saDtpZihnKXtuPVsxLDIsNCw4LDE2LDMyLDY0LDEyOCwyNTZdO2g9MTZ9ZWxzZXtuPVsxLDIsNSwxMCwyMCw1MCwxMDBdO2g9MTB9dmFyIHc9TWF0aC5jZWlsKHUveik7dmFyIG89TWF0aC5hYnMoRS1GKS93O3ZhciB2PU1hdGguZmxvb3IoTWF0aC5sb2cobykvTWF0aC5sb2coaCkpO3ZhciBmPU1hdGgucG93KGgsdik7dmFyIEkseCxjLGU7Zm9yKEE9MDtBPG4ubGVuZ3RoO0ErKyl7ST1mKm5bQV07eD1NYXRoLmZsb29yKEYvSSkqSTtjPU1hdGguY2VpbChFL0kpKkk7eT1NYXRoLmFicyhjLXgpL0k7ZT11L3k7aWYoZT56KXticmVha319aWYoeD5jKXtJKj0tMX1mb3IoQz0wO0M8eTtDKyspe3Q9eCtDKkk7Ry5wdXNoKHt2OnR9KX19fXZhciBCPShwKCJheGlzTGFiZWxGb3JtYXR0ZXIiKSk7Zm9yKEM9MDtDPEcubGVuZ3RoO0MrKyl7aWYoR1tDXS5sYWJlbCE9PXVuZGVmaW5lZCl7Y29udGludWV9R1tDXS5sYWJlbD1CKEdbQ10udiwwLHAsZCl9cmV0dXJuIEd9O0R5Z3JhcGguZGF0ZVRpY2tlcj1mdW5jdGlvbihlLGMsaSxnLGYsaCl7dmFyIGQ9RHlncmFwaC5waWNrRGF0ZVRpY2tHcmFudWxhcml0eShlLGMsaSxnKTtpZihkPj0wKXtyZXR1cm4gRHlncmFwaC5nZXREYXRlQXhpcyhlLGMsZCxnLGYpfWVsc2V7cmV0dXJuW119fTtEeWdyYXBoLlNFQ09ORExZPTA7RHlncmFwaC5UV09fU0VDT05ETFk9MTtEeWdyYXBoLkZJVkVfU0VDT05ETFk9MjtEeWdyYXBoLlRFTl9TRUNPTkRMWT0zO0R5Z3JhcGguVEhJUlRZX1NFQ09ORExZPTQ7RHlncmFwaC5NSU5VVEVMWT01O0R5Z3JhcGguVFdPX01JTlVURUxZPTY7RHlncmFwaC5GSVZFX01JTlVURUxZPTc7RHlncmFwaC5URU5fTUlOVVRFTFk9ODtEeWdyYXBoLlRISVJUWV9NSU5VVEVMWT05O0R5Z3JhcGguSE9VUkxZPTEwO0R5Z3JhcGguVFdPX0hPVVJMWT0xMTtEeWdyYXBoLlNJWF9IT1VSTFk9MTI7RHlncmFwaC5EQUlMWT0xMztEeWdyYXBoLldFRUtMWT0xNDtEeWdyYXBoLk1PTlRITFk9MTU7RHlncmFwaC5RVUFSVEVSTFk9MTY7RHlncmFwaC5CSUFOTlVBTD0xNztEeWdyYXBoLkFOTlVBTD0xODtEeWdyYXBoLkRFQ0FEQUw9MTk7RHlncmFwaC5DRU5URU5OSUFMPTIwO0R5Z3JhcGguTlVNX0dSQU5VTEFSSVRJRVM9MjE7RHlncmFwaC5TSE9SVF9TUEFDSU5HUz1bXTtEeWdyYXBoLlNIT1JUX1NQQUNJTkdTW0R5Z3JhcGguU0VDT05ETFldPTEwMDAqMTtEeWdyYXBoLlNIT1JUX1NQQUNJTkdTW0R5Z3JhcGguVFdPX1NFQ09ORExZXT0xMDAwKjI7RHlncmFwaC5TSE9SVF9TUEFDSU5HU1tEeWdyYXBoLkZJVkVfU0VDT05ETFldPTEwMDAqNTtEeWdyYXBoLlNIT1JUX1NQQUNJTkdTW0R5Z3JhcGguVEVOX1NFQ09ORExZXT0xMDAwKjEwO0R5Z3JhcGguU0hPUlRfU1BBQ0lOR1NbRHlncmFwaC5USElSVFlfU0VDT05ETFldPTEwMDAqMzA7RHlncmFwaC5TSE9SVF9TUEFDSU5HU1tEeWdyYXBoLk1JTlVURUxZXT0xMDAwKjYwO0R5Z3JhcGguU0hPUlRfU1BBQ0lOR1NbRHlncmFwaC5UV09fTUlOVVRFTFldPTEwMDAqNjAqMjtEeWdyYXBoLlNIT1JUX1NQQUNJTkdTW0R5Z3JhcGguRklWRV9NSU5VVEVMWV09MTAwMCo2MCo1O0R5Z3JhcGguU0hPUlRfU1BBQ0lOR1NbRHlncmFwaC5URU5fTUlOVVRFTFldPTEwMDAqNjAqMTA7RHlncmFwaC5TSE9SVF9TUEFDSU5HU1tEeWdyYXBoLlRISVJUWV9NSU5VVEVMWV09MTAwMCo2MCozMDtEeWdyYXBoLlNIT1JUX1NQQUNJTkdTW0R5Z3JhcGguSE9VUkxZXT0xMDAwKjM2MDA7RHlncmFwaC5TSE9SVF9TUEFDSU5HU1tEeWdyYXBoLlRXT19IT1VSTFldPTEwMDAqMzYwMCoyO0R5Z3JhcGguU0hPUlRfU1BBQ0lOR1NbRHlncmFwaC5TSVhfSE9VUkxZXT0xMDAwKjM2MDAqNjtEeWdyYXBoLlNIT1JUX1NQQUNJTkdTW0R5Z3JhcGguREFJTFldPTEwMDAqODY0MDA7RHlncmFwaC5TSE9SVF9TUEFDSU5HU1tEeWdyYXBoLldFRUtMWV09MTAwMCo2MDQ4MDA7RHlncmFwaC5MT05HX1RJQ0tfUExBQ0VNRU5UUz1bXTtEeWdyYXBoLkxPTkdfVElDS19QTEFDRU1FTlRTW0R5Z3JhcGguTU9OVEhMWV09e21vbnRoczpbMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMV0seWVhcl9tb2Q6MX07RHlncmFwaC5MT05HX1RJQ0tfUExBQ0VNRU5UU1tEeWdyYXBoLlFVQVJURVJMWV09e21vbnRoczpbMCwzLDYsOV0seWVhcl9tb2Q6MX07RHlncmFwaC5MT05HX1RJQ0tfUExBQ0VNRU5UU1tEeWdyYXBoLkJJQU5OVUFMXT17bW9udGhzOlswLDZdLHllYXJfbW9kOjF9O0R5Z3JhcGguTE9OR19USUNLX1BMQUNFTUVOVFNbRHlncmFwaC5BTk5VQUxdPXttb250aHM6WzBdLHllYXJfbW9kOjF9O0R5Z3JhcGguTE9OR19USUNLX1BMQUNFTUVOVFNbRHlncmFwaC5ERUNBREFMXT17bW9udGhzOlswXSx5ZWFyX21vZDoxMH07RHlncmFwaC5MT05HX1RJQ0tfUExBQ0VNRU5UU1tEeWdyYXBoLkNFTlRFTk5JQUxdPXttb250aHM6WzBdLHllYXJfbW9kOjEwMH07RHlncmFwaC5QUkVGRVJSRURfTE9HX1RJQ0tfVkFMVUVTPWZ1bmN0aW9uKCl7dmFyIGM9W107Zm9yKHZhciBiPS0zOTtiPD0zOTtiKyspe3ZhciBhPU1hdGgucG93KDEwLGIpO2Zvcih2YXIgZD0xO2Q8PTk7ZCsrKXt2YXIgZT1hKmQ7Yy5wdXNoKGUpfX1yZXR1cm4gY30oKTtEeWdyYXBoLnBpY2tEYXRlVGlja0dyYW51bGFyaXR5PWZ1bmN0aW9uKGQsYyxqLGgpe3ZhciBnPShoKCJwaXhlbHNQZXJMYWJlbCIpKTtmb3IodmFyIGY9MDtmPER5Z3JhcGguTlVNX0dSQU5VTEFSSVRJRVM7ZisrKXt2YXIgZT1EeWdyYXBoLm51bURhdGVUaWNrcyhkLGMsZik7aWYoai9lPj1nKXtyZXR1cm4gZn19cmV0dXJuIC0xfTtEeWdyYXBoLm51bURhdGVUaWNrcz1mdW5jdGlvbihlLGIsZil7aWYoZjxEeWdyYXBoLk1PTlRITFkpe3ZhciBnPUR5Z3JhcGguU0hPUlRfU1BBQ0lOR1NbZl07cmV0dXJuIE1hdGguZmxvb3IoMC41KzEqKGItZSkvZyl9ZWxzZXt2YXIgZD1EeWdyYXBoLkxPTkdfVElDS19QTEFDRU1FTlRTW2ZdO3ZhciBjPTM2NS4yNTI0KjI0KjM2MDAqMTAwMDt2YXIgYT0xKihiLWUpL2M7cmV0dXJuIE1hdGguZmxvb3IoMC41KzEqYSpkLm1vbnRocy5sZW5ndGgvZC55ZWFyX21vZCl9fTtEeWdyYXBoLmdldERhdGVBeGlzPWZ1bmN0aW9uKHAsbCxhLG4seil7dmFyIHc9KG4oImF4aXNMYWJlbEZvcm1hdHRlciIpKTt2YXIgQz1bXTt2YXIgbTtpZihhPER5Z3JhcGguTU9OVEhMWSl7dmFyIGM9RHlncmFwaC5TSE9SVF9TUEFDSU5HU1thXTt2YXIgeT1jLzEwMDA7dmFyIEE9bmV3IERhdGUocCk7RHlncmFwaC5zZXREYXRlU2FtZVRaKEEse21zOjB9KTt2YXIgaDtpZih5PD02MCl7aD1BLmdldFNlY29uZHMoKTtEeWdyYXBoLnNldERhdGVTYW1lVFooQSx7czpoLWgleX0pfWVsc2V7RHlncmFwaC5zZXREYXRlU2FtZVRaKEEse3M6MH0pO3kvPTYwO2lmKHk8PTYwKXtoPUEuZ2V0TWludXRlcygpO0R5Z3JhcGguc2V0RGF0ZVNhbWVUWihBLHttOmgtaCV5fSl9ZWxzZXtEeWdyYXBoLnNldERhdGVTYW1lVFooQSx7bTowfSk7eS89NjA7aWYoeTw9MjQpe2g9QS5nZXRIb3VycygpO0Euc2V0SG91cnMoaC1oJXkpfWVsc2V7QS5zZXRIb3VycygwKTt5Lz0yNDtpZih5PT03KXtBLnNldERhdGUoQS5nZXREYXRlKCktQS5nZXREYXkoKSl9fX19cD1BLmdldFRpbWUoKTt2YXIgQj1uZXcgRGF0ZShwKS5nZXRUaW1lem9uZU9mZnNldCgpO3ZhciBlPShjPj1EeWdyYXBoLlNIT1JUX1NQQUNJTkdTW0R5Z3JhcGguVFdPX0hPVVJMWV0pO2ZvcihtPXA7bTw9bDttKz1jKXtBPW5ldyBEYXRlKG0pO2lmKGUmJkEuZ2V0VGltZXpvbmVPZmZzZXQoKSE9Qil7dmFyIGs9QS5nZXRUaW1lem9uZU9mZnNldCgpLUI7bSs9ayo2MCoxMDAwO0E9bmV3IERhdGUobSk7Qj1BLmdldFRpbWV6b25lT2Zmc2V0KCk7aWYobmV3IERhdGUobStjKS5nZXRUaW1lem9uZU9mZnNldCgpIT1CKXttKz1jO0E9bmV3IERhdGUobSk7Qj1BLmdldFRpbWV6b25lT2Zmc2V0KCl9fUMucHVzaCh7djptLGxhYmVsOncoQSxhLG4seil9KX19ZWxzZXt2YXIgZjt2YXIgcj0xO2lmKGE8RHlncmFwaC5OVU1fR1JBTlVMQVJJVElFUyl7Zj1EeWdyYXBoLkxPTkdfVElDS19QTEFDRU1FTlRTW2FdLm1vbnRocztyPUR5Z3JhcGguTE9OR19USUNLX1BMQUNFTUVOVFNbYV0ueWVhcl9tb2R9ZWxzZXtEeWdyYXBoLndhcm4oIlNwYW4gb2YgZGF0ZXMgaXMgdG9vIGxvbmciKX12YXIgdj1uZXcgRGF0ZShwKS5nZXRGdWxsWWVhcigpO3ZhciBxPW5ldyBEYXRlKGwpLmdldEZ1bGxZZWFyKCk7dmFyIGI9RHlncmFwaC56ZXJvcGFkO2Zvcih2YXIgdT12O3U8PXE7dSsrKXtpZih1JXIhPT0wKXtjb250aW51ZX1mb3IodmFyIHM9MDtzPGYubGVuZ3RoO3MrKyl7dmFyIG89dSsiLyIrYigxK2Zbc10pKyIvMDEiO209RHlncmFwaC5kYXRlU3RyVG9NaWxsaXMobyk7aWYobTxwfHxtPmwpe2NvbnRpbnVlfUMucHVzaCh7djptLGxhYmVsOncobmV3IERhdGUobSksYSxuLHopfSl9fX1yZXR1cm4gQ307aWYoRHlncmFwaCYmRHlncmFwaC5ERUZBVUxUX0FUVFJTJiZEeWdyYXBoLkRFRkFVTFRfQVRUUlMuYXhlcyYmRHlncmFwaC5ERUZBVUxUX0FUVFJTLmF4ZXNbIngiXSYmRHlncmFwaC5ERUZBVUxUX0FUVFJTLmF4ZXNbInkiXSYmRHlncmFwaC5ERUZBVUxUX0FUVFJTLmF4ZXNbInkyIl0pe0R5Z3JhcGguREVGQVVMVF9BVFRSUy5heGVzWyJ4Il1bInRpY2tlciJdPUR5Z3JhcGguZGF0ZVRpY2tlcjtEeWdyYXBoLkRFRkFVTFRfQVRUUlMuYXhlc1sieSJdWyJ0aWNrZXIiXT1EeWdyYXBoLm51bWVyaWNUaWNrcztEeWdyYXBoLkRFRkFVTFRfQVRUUlMuYXhlc1sieTIiXVsidGlja2VyIl09RHlncmFwaC5udW1lcmljVGlja3N9RHlncmFwaC5QbHVnaW5zPXt9O0R5Z3JhcGguUGx1Z2lucy5Bbm5vdGF0aW9ucz0oZnVuY3Rpb24oKXt2YXIgYT1mdW5jdGlvbigpe3RoaXMuYW5ub3RhdGlvbnNfPVtdfTthLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJBbm5vdGF0aW9ucyBQbHVnaW4ifTthLnByb3RvdHlwZS5hY3RpdmF0ZT1mdW5jdGlvbihiKXtyZXR1cm57Y2xlYXJDaGFydDp0aGlzLmNsZWFyQ2hhcnQsZGlkRHJhd0NoYXJ0OnRoaXMuZGlkRHJhd0NoYXJ0fX07YS5wcm90b3R5cGUuZGV0YWNoTGFiZWxzPWZ1bmN0aW9uKCl7Zm9yKHZhciBjPTA7Yzx0aGlzLmFubm90YXRpb25zXy5sZW5ndGg7YysrKXt2YXIgYj10aGlzLmFubm90YXRpb25zX1tjXTtpZihiLnBhcmVudE5vZGUpe2IucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChiKX10aGlzLmFubm90YXRpb25zX1tjXT1udWxsfXRoaXMuYW5ub3RhdGlvbnNfPVtdfTthLnByb3RvdHlwZS5jbGVhckNoYXJ0PWZ1bmN0aW9uKGIpe3RoaXMuZGV0YWNoTGFiZWxzKCl9O2EucHJvdG90eXBlLmRpZERyYXdDaGFydD1mdW5jdGlvbih2KXt2YXIgdD12LmR5Z3JhcGg7dmFyIHI9dC5sYXlvdXRfLmFubm90YXRlZF9wb2ludHM7aWYoIXJ8fHIubGVuZ3RoPT09MCl7cmV0dXJufXZhciBoPXYuY2FudmFzLnBhcmVudE5vZGU7dmFyIHg9e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsZm9udFNpemU6dC5nZXRPcHRpb24oImF4aXNMYWJlbEZvbnRTaXplIikrInB4Iix6SW5kZXg6MTAsb3ZlcmZsb3c6ImhpZGRlbiJ9O3ZhciBiPWZ1bmN0aW9uKGUsZyxpKXtyZXR1cm4gZnVuY3Rpb24oeSl7dmFyIHA9aS5hbm5vdGF0aW9uO2lmKHAuaGFzT3duUHJvcGVydHkoZSkpe3BbZV0ocCxpLHQseSl9ZWxzZXtpZih0LmdldE9wdGlvbihnKSl7dC5nZXRPcHRpb24oZykocCxpLHQseSl9fX19O3ZhciB1PXYuZHlncmFwaC5wbG90dGVyXy5hcmVhO3ZhciBxPXt9O2Zvcih2YXIgcz0wO3M8ci5sZW5ndGg7cysrKXt2YXIgbD1yW3NdO2lmKGwuY2FudmFzeDx1Lnh8fGwuY2FudmFzeD51LngrdS53fHxsLmNhbnZhc3k8dS55fHxsLmNhbnZhc3k+dS55K3UuaCl7Y29udGludWV9dmFyIHc9bC5hbm5vdGF0aW9uO3ZhciBuPTY7aWYody5oYXNPd25Qcm9wZXJ0eSgidGlja0hlaWdodCIpKXtuPXcudGlja0hlaWdodH12YXIgaj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtmb3IodmFyIEEgaW4geCl7aWYoeC5oYXNPd25Qcm9wZXJ0eShBKSl7ai5zdHlsZVtBXT14W0FdfX1pZighdy5oYXNPd25Qcm9wZXJ0eSgiaWNvbiIpKXtqLmNsYXNzTmFtZT0iZHlncmFwaERlZmF1bHRBbm5vdGF0aW9uIn1pZih3Lmhhc093blByb3BlcnR5KCJjc3NDbGFzcyIpKXtqLmNsYXNzTmFtZSs9IiAiK3cuY3NzQ2xhc3N9dmFyIG09dy5oYXNPd25Qcm9wZXJ0eSgid2lkdGgiKT93LndpZHRoOjE2O3ZhciBrPXcuaGFzT3duUHJvcGVydHkoImhlaWdodCIpP3cuaGVpZ2h0OjE2O2lmKHcuaGFzT3duUHJvcGVydHkoImljb24iKSl7dmFyIHo9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7ei5zcmM9dy5pY29uO3oud2lkdGg9bTt6LmhlaWdodD1rO2ouYXBwZW5kQ2hpbGQoeil9ZWxzZXtpZihsLmFubm90YXRpb24uaGFzT3duUHJvcGVydHkoInNob3J0VGV4dCIpKXtqLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGwuYW5ub3RhdGlvbi5zaG9ydFRleHQpKX19dmFyIGM9bC5jYW52YXN4LW0vMjtqLnN0eWxlLmxlZnQ9YysicHgiO3ZhciBmPTA7aWYody5hdHRhY2hBdEJvdHRvbSl7dmFyIGQ9KHUueSt1Lmgtay1uKTtpZihxW2NdKXtkLT1xW2NdfWVsc2V7cVtjXT0wfXFbY10rPShuK2spO2Y9ZH1lbHNle2Y9bC5jYW52YXN5LWstbn1qLnN0eWxlLnRvcD1mKyJweCI7ai5zdHlsZS53aWR0aD1tKyJweCI7ai5zdHlsZS5oZWlnaHQ9aysicHgiO2oudGl0bGU9bC5hbm5vdGF0aW9uLnRleHQ7ai5zdHlsZS5jb2xvcj10LmNvbG9yc01hcF9bbC5uYW1lXTtqLnN0eWxlLmJvcmRlckNvbG9yPXQuY29sb3JzTWFwX1tsLm5hbWVdO3cuZGl2PWo7dC5hZGRBbmRUcmFja0V2ZW50KGosImNsaWNrIixiKCJjbGlja0hhbmRsZXIiLCJhbm5vdGF0aW9uQ2xpY2tIYW5kbGVyIixsLHRoaXMpKTt0LmFkZEFuZFRyYWNrRXZlbnQoaiwibW91c2VvdmVyIixiKCJtb3VzZU92ZXJIYW5kbGVyIiwiYW5ub3RhdGlvbk1vdXNlT3ZlckhhbmRsZXIiLGwsdGhpcykpO3QuYWRkQW5kVHJhY2tFdmVudChqLCJtb3VzZW91dCIsYigibW91c2VPdXRIYW5kbGVyIiwiYW5ub3RhdGlvbk1vdXNlT3V0SGFuZGxlciIsbCx0aGlzKSk7dC5hZGRBbmRUcmFja0V2ZW50KGosImRibGNsaWNrIixiKCJkYmxDbGlja0hhbmRsZXIiLCJhbm5vdGF0aW9uRGJsQ2xpY2tIYW5kbGVyIixsLHRoaXMpKTtoLmFwcGVuZENoaWxkKGopO3RoaXMuYW5ub3RhdGlvbnNfLnB1c2goaik7dmFyIG89di5kcmF3aW5nQ29udGV4dDtvLnNhdmUoKTtvLnN0cm9rZVN0eWxlPXQuY29sb3JzTWFwX1tsLm5hbWVdO28uYmVnaW5QYXRoKCk7aWYoIXcuYXR0YWNoQXRCb3R0b20pe28ubW92ZVRvKGwuY2FudmFzeCxsLmNhbnZhc3kpO28ubGluZVRvKGwuY2FudmFzeCxsLmNhbnZhc3ktMi1uKX1lbHNle3ZhciBkPWYraztvLm1vdmVUbyhsLmNhbnZhc3gsZCk7by5saW5lVG8obC5jYW52YXN4LGQrbil9by5jbG9zZVBhdGgoKTtvLnN0cm9rZSgpO28ucmVzdG9yZSgpfX07YS5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMuZGV0YWNoTGFiZWxzKCl9O3JldHVybiBhfSkoKTtEeWdyYXBoLlBsdWdpbnMuQXhlcz0oZnVuY3Rpb24oKXt2YXIgYT1mdW5jdGlvbigpe3RoaXMueGxhYmVsc189W107dGhpcy55bGFiZWxzXz1bXX07YS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iQXhlcyBQbHVnaW4ifTthLnByb3RvdHlwZS5hY3RpdmF0ZT1mdW5jdGlvbihiKXtyZXR1cm57bGF5b3V0OnRoaXMubGF5b3V0LGNsZWFyQ2hhcnQ6dGhpcy5jbGVhckNoYXJ0LHdpbGxEcmF3Q2hhcnQ6dGhpcy53aWxsRHJhd0NoYXJ0fX07YS5wcm90b3R5cGUubGF5b3V0PWZ1bmN0aW9uKGYpe3ZhciBkPWYuZHlncmFwaDtpZihkLmdldE9wdGlvbigiZHJhd1lBeGlzIikpe3ZhciBiPWQuZ2V0T3B0aW9uKCJ5QXhpc0xhYmVsV2lkdGgiKSsyKmQuZ2V0T3B0aW9uKCJheGlzVGlja1NpemUiKTtmLnJlc2VydmVTcGFjZUxlZnQoYil9aWYoZC5nZXRPcHRpb24oImRyYXdYQXhpcyIpKXt2YXIgYztpZihkLmdldE9wdGlvbigieEF4aXNIZWlnaHQiKSl7Yz1kLmdldE9wdGlvbigieEF4aXNIZWlnaHQiKX1lbHNle2M9ZC5nZXRPcHRpb25Gb3JBeGlzKCJheGlzTGFiZWxGb250U2l6ZSIsIngiKSsyKmQuZ2V0T3B0aW9uKCJheGlzVGlja1NpemUiKX1mLnJlc2VydmVTcGFjZUJvdHRvbShjKX1pZihkLm51bUF4ZXMoKT09Mil7aWYoZC5nZXRPcHRpb24oImRyYXdZQXhpcyIpKXt2YXIgYj1kLmdldE9wdGlvbigieUF4aXNMYWJlbFdpZHRoIikrMipkLmdldE9wdGlvbigiYXhpc1RpY2tTaXplIik7Zi5yZXNlcnZlU3BhY2VSaWdodChiKX19ZWxzZXtpZihkLm51bUF4ZXMoKT4yKXtkLmVycm9yKCJPbmx5IHR3byB5LWF4ZXMgYXJlIHN1cHBvcnRlZCBhdCB0aGlzIHRpbWUuIChUcnlpbmcgdG8gdXNlICIrZC5udW1BeGVzKCkrIikiKX19fTthLnByb3RvdHlwZS5kZXRhY2hMYWJlbHM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBiKGQpe2Zvcih2YXIgYz0wO2M8ZC5sZW5ndGg7YysrKXt2YXIgZT1kW2NdO2lmKGUucGFyZW50Tm9kZSl7ZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGUpfX19Yih0aGlzLnhsYWJlbHNfKTtiKHRoaXMueWxhYmVsc18pO3RoaXMueGxhYmVsc189W107dGhpcy55bGFiZWxzXz1bXX07YS5wcm90b3R5cGUuY2xlYXJDaGFydD1mdW5jdGlvbihiKXt0aGlzLmRldGFjaExhYmVscygpfTthLnByb3RvdHlwZS53aWxsRHJhd0NoYXJ0PWZ1bmN0aW9uKEgpe3ZhciBGPUguZHlncmFwaDtpZighRi5nZXRPcHRpb24oImRyYXdYQXhpcyIpJiYhRi5nZXRPcHRpb24oImRyYXdZQXhpcyIpKXtyZXR1cm59ZnVuY3Rpb24gQihlKXtyZXR1cm4gTWF0aC5yb3VuZChlKSswLjV9ZnVuY3Rpb24gQShlKXtyZXR1cm4gTWF0aC5yb3VuZChlKS0wLjV9dmFyIGo9SC5kcmF3aW5nQ29udGV4dDt2YXIgdj1ILmNhbnZhcy5wYXJlbnROb2RlO3ZhciBKPUguY2FudmFzLndpZHRoO3ZhciBkPUguY2FudmFzLmhlaWdodDt2YXIgcyx1LHQsRSxEO3ZhciBDPWZ1bmN0aW9uKGUpe3JldHVybntwb3NpdGlvbjoiYWJzb2x1dGUiLGZvbnRTaXplOkYuZ2V0T3B0aW9uRm9yQXhpcygiYXhpc0xhYmVsRm9udFNpemUiLGUpKyJweCIsekluZGV4OjEwLGNvbG9yOkYuZ2V0T3B0aW9uRm9yQXhpcygiYXhpc0xhYmVsQ29sb3IiLGUpLHdpZHRoOkYuZ2V0T3B0aW9uKCJheGlzTGFiZWxXaWR0aCIpKyJweCIsbGluZUhlaWdodDoibm9ybWFsIixvdmVyZmxvdzoiaGlkZGVuIn19O3ZhciBwPXt4OkMoIngiKSx5OkMoInkiKSx5MjpDKCJ5MiIpfTt2YXIgbT1mdW5jdGlvbihnLHgseSl7dmFyIEs9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dmFyIGU9cFt5PT0ieTIiPyJ5MiI6eF07Zm9yKHZhciByIGluIGUpe2lmKGUuaGFzT3duUHJvcGVydHkocikpe0suc3R5bGVbcl09ZVtyXX19dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aS5jbGFzc05hbWU9ImR5Z3JhcGgtYXhpcy1sYWJlbCBkeWdyYXBoLWF4aXMtbGFiZWwtIit4Kyh5PyIgZHlncmFwaC1heGlzLWxhYmVsLSIreToiIik7aS5pbm5lckhUTUw9ZztLLmFwcGVuZENoaWxkKGkpO3JldHVybiBLfTtqLnNhdmUoKTt2YXIgST1GLmxheW91dF87dmFyIEc9SC5keWdyYXBoLnBsb3R0ZXJfLmFyZWE7aWYoRi5nZXRPcHRpb24oImRyYXdZQXhpcyIpKXtpZihJLnl0aWNrcyYmSS55dGlja3MubGVuZ3RoPjApe3ZhciBoPUYubnVtQXhlcygpO2ZvcihEPTA7RDxJLnl0aWNrcy5sZW5ndGg7RCsrKXtFPUkueXRpY2tzW0RdO2lmKHR5cGVvZihFKT09ImZ1bmN0aW9uIil7cmV0dXJufXU9Ry54O3ZhciBvPTE7dmFyIGY9InkxIjtpZihFWzBdPT0xKXt1PUcueCtHLnc7bz0tMTtmPSJ5MiJ9dmFyIGs9Ri5nZXRPcHRpb25Gb3JBeGlzKCJheGlzTGFiZWxGb250U2l6ZSIsZik7dD1HLnkrRVsxXSpHLmg7cz1tKEVbMl0sInkiLGg9PTI/ZjpudWxsKTt2YXIgej0odC1rLzIpO2lmKHo8MCl7ej0wfWlmKHorayszPmQpe3Muc3R5bGUuYm90dG9tPSIwcHgifWVsc2V7cy5zdHlsZS50b3A9eisicHgifWlmKEVbMF09PT0wKXtzLnN0eWxlLmxlZnQ9KEcueC1GLmdldE9wdGlvbigieUF4aXNMYWJlbFdpZHRoIiktRi5nZXRPcHRpb24oImF4aXNUaWNrU2l6ZSIpKSsicHgiO3Muc3R5bGUudGV4dEFsaWduPSJyaWdodCJ9ZWxzZXtpZihFWzBdPT0xKXtzLnN0eWxlLmxlZnQ9KEcueCtHLncrRi5nZXRPcHRpb24oImF4aXNUaWNrU2l6ZSIpKSsicHgiO3Muc3R5bGUudGV4dEFsaWduPSJsZWZ0In19cy5zdHlsZS53aWR0aD1GLmdldE9wdGlvbigieUF4aXNMYWJlbFdpZHRoIikrInB4Ijt2LmFwcGVuZENoaWxkKHMpO3RoaXMueWxhYmVsc18ucHVzaChzKX12YXIgbj10aGlzLnlsYWJlbHNfWzBdO3ZhciBrPUYuZ2V0T3B0aW9uRm9yQXhpcygiYXhpc0xhYmVsRm9udFNpemUiLCJ5Iik7dmFyIHE9cGFyc2VJbnQobi5zdHlsZS50b3AsMTApK2s7aWYocT5kLWspe24uc3R5bGUudG9wPShwYXJzZUludChuLnN0eWxlLnRvcCwxMCktay8yKSsicHgifX12YXIgYztpZihGLmdldE9wdGlvbigiZHJhd0F4ZXNBdFplcm8iKSl7dmFyIHc9Ri50b1BlcmNlbnRYQ29vcmQoMCk7aWYodz4xfHx3PDB8fGlzTmFOKHcpKXt3PTB9Yz1CKEcueCt3Kkcudyl9ZWxzZXtjPUIoRy54KX1qLnN0cm9rZVN0eWxlPUYuZ2V0T3B0aW9uRm9yQXhpcygiYXhpc0xpbmVDb2xvciIsInkiKTtqLmxpbmVXaWR0aD1GLmdldE9wdGlvbkZvckF4aXMoImF4aXNMaW5lV2lkdGgiLCJ5Iik7ai5iZWdpblBhdGgoKTtqLm1vdmVUbyhjLEEoRy55KSk7ai5saW5lVG8oYyxBKEcueStHLmgpKTtqLmNsb3NlUGF0aCgpO2ouc3Ryb2tlKCk7aWYoRi5udW1BeGVzKCk9PTIpe2ouc3Ryb2tlU3R5bGU9Ri5nZXRPcHRpb25Gb3JBeGlzKCJheGlzTGluZUNvbG9yIiwieTIiKTtqLmxpbmVXaWR0aD1GLmdldE9wdGlvbkZvckF4aXMoImF4aXNMaW5lV2lkdGgiLCJ5MiIpO2ouYmVnaW5QYXRoKCk7ai5tb3ZlVG8oQShHLngrRy53KSxBKEcueSkpO2oubGluZVRvKEEoRy54K0cudyksQShHLnkrRy5oKSk7ai5jbG9zZVBhdGgoKTtqLnN0cm9rZSgpfX1pZihGLmdldE9wdGlvbigiZHJhd1hBeGlzIikpe2lmKEkueHRpY2tzKXtmb3IoRD0wO0Q8SS54dGlja3MubGVuZ3RoO0QrKyl7RT1JLnh0aWNrc1tEXTt1PUcueCtFWzBdKkcudzt0PUcueStHLmg7cz1tKEVbMV0sIngiKTtzLnN0eWxlLnRleHRBbGlnbj0iY2VudGVyIjtzLnN0eWxlLnRvcD0odCtGLmdldE9wdGlvbigiYXhpc1RpY2tTaXplIikpKyJweCI7dmFyIGw9KHUtRi5nZXRPcHRpb24oImF4aXNMYWJlbFdpZHRoIikvMik7aWYobCtGLmdldE9wdGlvbigiYXhpc0xhYmVsV2lkdGgiKT5KKXtsPUotRi5nZXRPcHRpb24oInhBeGlzTGFiZWxXaWR0aCIpO3Muc3R5bGUudGV4dEFsaWduPSJyaWdodCJ9aWYobDwwKXtsPTA7cy5zdHlsZS50ZXh0QWxpZ249ImxlZnQifXMuc3R5bGUubGVmdD1sKyJweCI7cy5zdHlsZS53aWR0aD1GLmdldE9wdGlvbigieEF4aXNMYWJlbFdpZHRoIikrInB4Ijt2LmFwcGVuZENoaWxkKHMpO3RoaXMueGxhYmVsc18ucHVzaChzKX19ai5zdHJva2VTdHlsZT1GLmdldE9wdGlvbkZvckF4aXMoImF4aXNMaW5lQ29sb3IiLCJ4Iik7ai5saW5lV2lkdGg9Ri5nZXRPcHRpb25Gb3JBeGlzKCJheGlzTGluZVdpZHRoIiwieCIpO2ouYmVnaW5QYXRoKCk7dmFyIGI7aWYoRi5nZXRPcHRpb24oImRyYXdBeGVzQXRaZXJvIikpe3ZhciB3PUYudG9QZXJjZW50WUNvb3JkKDAsMCk7aWYodz4xfHx3PDApe3c9MX1iPUEoRy55K3cqRy5oKX1lbHNle2I9QShHLnkrRy5oKX1qLm1vdmVUbyhCKEcueCksYik7ai5saW5lVG8oQihHLngrRy53KSxiKTtqLmNsb3NlUGF0aCgpO2ouc3Ryb2tlKCl9ai5yZXN0b3JlKCl9O3JldHVybiBhfSkoKTtEeWdyYXBoLlBsdWdpbnMuQ2hhcnRMYWJlbHM9KGZ1bmN0aW9uKCl7dmFyIGM9ZnVuY3Rpb24oKXt0aGlzLnRpdGxlX2Rpdl89bnVsbDt0aGlzLnhsYWJlbF9kaXZfPW51bGw7dGhpcy55bGFiZWxfZGl2Xz1udWxsO3RoaXMueTJsYWJlbF9kaXZfPW51bGx9O2MucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIkNoYXJ0TGFiZWxzIFBsdWdpbiJ9O2MucHJvdG90eXBlLmFjdGl2YXRlPWZ1bmN0aW9uKGQpe3JldHVybntsYXlvdXQ6dGhpcy5sYXlvdXQsZGlkRHJhd0NoYXJ0OnRoaXMuZGlkRHJhd0NoYXJ0fX07dmFyIGI9ZnVuY3Rpb24oZCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZS5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiO2Uuc3R5bGUubGVmdD1kLngrInB4IjtlLnN0eWxlLnRvcD1kLnkrInB4IjtlLnN0eWxlLndpZHRoPWQudysicHgiO2Uuc3R5bGUuaGVpZ2h0PWQuaCsicHgiO3JldHVybiBlfTtjLnByb3RvdHlwZS5kZXRhY2hMYWJlbHNfPWZ1bmN0aW9uKCl7dmFyIGU9W3RoaXMudGl0bGVfZGl2Xyx0aGlzLnhsYWJlbF9kaXZfLHRoaXMueWxhYmVsX2Rpdl8sdGhpcy55MmxhYmVsX2Rpdl9dO2Zvcih2YXIgZD0wO2Q8ZS5sZW5ndGg7ZCsrKXt2YXIgZj1lW2RdO2lmKCFmKXtjb250aW51ZX1pZihmLnBhcmVudE5vZGUpe2YucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChmKX19dGhpcy50aXRsZV9kaXZfPW51bGw7dGhpcy54bGFiZWxfZGl2Xz1udWxsO3RoaXMueWxhYmVsX2Rpdl89bnVsbDt0aGlzLnkybGFiZWxfZGl2Xz1udWxsfTt2YXIgYT1mdW5jdGlvbihsLGksZixoLGope3ZhciBkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2Quc3R5bGUucG9zaXRpb249ImFic29sdXRlIjtpZihmPT0xKXtkLnN0eWxlLmxlZnQ9IjBweCJ9ZWxzZXtkLnN0eWxlLmxlZnQ9aS54KyJweCJ9ZC5zdHlsZS50b3A9aS55KyJweCI7ZC5zdHlsZS53aWR0aD1pLncrInB4IjtkLnN0eWxlLmhlaWdodD1pLmgrInB4IjtkLnN0eWxlLmZvbnRTaXplPShsLmdldE9wdGlvbigieUxhYmVsV2lkdGgiKS0yKSsicHgiO3ZhciBtPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO20uc3R5bGUucG9zaXRpb249ImFic29sdXRlIjttLnN0eWxlLndpZHRoPWkuaCsicHgiO20uc3R5bGUuaGVpZ2h0PWkudysicHgiO20uc3R5bGUudG9wPShpLmgvMi1pLncvMikrInB4IjttLnN0eWxlLmxlZnQ9KGkudy8yLWkuaC8yKSsicHgiO20uc3R5bGUudGV4dEFsaWduPSJjZW50ZXIiO3ZhciBlPSJyb3RhdGUoIisoZj09MT8iLSI6IiIpKyI5MGRlZykiO20uc3R5bGUudHJhbnNmb3JtPWU7bS5zdHlsZS5XZWJraXRUcmFuc2Zvcm09ZTttLnN0eWxlLk1velRyYW5zZm9ybT1lO20uc3R5bGUuT1RyYW5zZm9ybT1lO20uc3R5bGUubXNUcmFuc2Zvcm09ZTtpZih0eXBlb2YoZG9jdW1lbnQuZG9jdW1lbnRNb2RlKSE9PSJ1bmRlZmluZWQiJiZkb2N1bWVudC5kb2N1bWVudE1vZGU8OSl7bS5zdHlsZS5maWx0ZXI9InByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPSIrKGY9PTE/IjMiOiIxIikrIikiO20uc3R5bGUubGVmdD0iMHB4IjttLnN0eWxlLnRvcD0iMHB4In12YXIgaz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtrLmNsYXNzTmFtZT1oO2suaW5uZXJIVE1MPWo7bS5hcHBlbmRDaGlsZChrKTtkLmFwcGVuZENoaWxkKG0pO3JldHVybiBkfTtjLnByb3RvdHlwZS5sYXlvdXQ9ZnVuY3Rpb24oayl7dGhpcy5kZXRhY2hMYWJlbHNfKCk7dmFyIGk9ay5keWdyYXBoO3ZhciBtPWsuY2hhcnRfZGl2O2lmKGkuZ2V0T3B0aW9uKCJ0aXRsZSIpKXt2YXIgZD1rLnJlc2VydmVTcGFjZVRvcChpLmdldE9wdGlvbigidGl0bGVIZWlnaHQiKSk7dGhpcy50aXRsZV9kaXZfPWIoZCk7dGhpcy50aXRsZV9kaXZfLnN0eWxlLnRleHRBbGlnbj0iY2VudGVyIjt0aGlzLnRpdGxlX2Rpdl8uc3R5bGUuZm9udFNpemU9KGkuZ2V0T3B0aW9uKCJ0aXRsZUhlaWdodCIpLTgpKyJweCI7dGhpcy50aXRsZV9kaXZfLnN0eWxlLmZvbnRXZWlnaHQ9ImJvbGQiO3RoaXMudGl0bGVfZGl2Xy5zdHlsZS56SW5kZXg9MTA7dmFyIGY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Zi5jbGFzc05hbWU9ImR5Z3JhcGgtbGFiZWwgZHlncmFwaC10aXRsZSI7Zi5pbm5lckhUTUw9aS5nZXRPcHRpb24oInRpdGxlIik7dGhpcy50aXRsZV9kaXZfLmFwcGVuZENoaWxkKGYpO20uYXBwZW5kQ2hpbGQodGhpcy50aXRsZV9kaXZfKX1pZihpLmdldE9wdGlvbigieGxhYmVsIikpe3ZhciBqPWsucmVzZXJ2ZVNwYWNlQm90dG9tKGkuZ2V0T3B0aW9uKCJ4TGFiZWxIZWlnaHQiKSk7dGhpcy54bGFiZWxfZGl2Xz1iKGopO3RoaXMueGxhYmVsX2Rpdl8uc3R5bGUudGV4dEFsaWduPSJjZW50ZXIiO3RoaXMueGxhYmVsX2Rpdl8uc3R5bGUuZm9udFNpemU9KGkuZ2V0T3B0aW9uKCJ4TGFiZWxIZWlnaHQiKS0yKSsicHgiO3ZhciBmPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2YuY2xhc3NOYW1lPSJkeWdyYXBoLWxhYmVsIGR5Z3JhcGgteGxhYmVsIjtmLmlubmVySFRNTD1pLmdldE9wdGlvbigieGxhYmVsIik7dGhpcy54bGFiZWxfZGl2Xy5hcHBlbmRDaGlsZChmKTttLmFwcGVuZENoaWxkKHRoaXMueGxhYmVsX2Rpdl8pfWlmKGkuZ2V0T3B0aW9uKCJ5bGFiZWwiKSl7dmFyIGg9ay5yZXNlcnZlU3BhY2VMZWZ0KDApO3RoaXMueWxhYmVsX2Rpdl89YShpLGgsMSwiZHlncmFwaC1sYWJlbCBkeWdyYXBoLXlsYWJlbCIsaS5nZXRPcHRpb24oInlsYWJlbCIpKTttLmFwcGVuZENoaWxkKHRoaXMueWxhYmVsX2Rpdl8pfWlmKGkuZ2V0T3B0aW9uKCJ5MmxhYmVsIikmJmkubnVtQXhlcygpPT0yKXt2YXIgbD1rLnJlc2VydmVTcGFjZVJpZ2h0KDApO3RoaXMueTJsYWJlbF9kaXZfPWEoaSxsLDIsImR5Z3JhcGgtbGFiZWwgZHlncmFwaC15MmxhYmVsIixpLmdldE9wdGlvbigieTJsYWJlbCIpKTttLmFwcGVuZENoaWxkKHRoaXMueTJsYWJlbF9kaXZfKX19O2MucHJvdG90eXBlLmRpZERyYXdDaGFydD1mdW5jdGlvbihmKXt2YXIgZD1mLmR5Z3JhcGg7aWYodGhpcy50aXRsZV9kaXZfKXt0aGlzLnRpdGxlX2Rpdl8uY2hpbGRyZW5bMF0uaW5uZXJIVE1MPWQuZ2V0T3B0aW9uKCJ0aXRsZSIpfWlmKHRoaXMueGxhYmVsX2Rpdl8pe3RoaXMueGxhYmVsX2Rpdl8uY2hpbGRyZW5bMF0uaW5uZXJIVE1MPWQuZ2V0T3B0aW9uKCJ4bGFiZWwiKX1pZih0aGlzLnlsYWJlbF9kaXZfKXt0aGlzLnlsYWJlbF9kaXZfLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdLmlubmVySFRNTD1kLmdldE9wdGlvbigieWxhYmVsIil9aWYodGhpcy55MmxhYmVsX2Rpdl8pe3RoaXMueTJsYWJlbF9kaXZfLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdLmlubmVySFRNTD1kLmdldE9wdGlvbigieTJsYWJlbCIpfX07Yy5wcm90b3R5cGUuY2xlYXJDaGFydD1mdW5jdGlvbigpe307Yy5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMuZGV0YWNoTGFiZWxzXygpfTtyZXR1cm4gY30pKCk7RHlncmFwaC5QbHVnaW5zLkdyaWQ9KGZ1bmN0aW9uKCl7dmFyIGE9ZnVuY3Rpb24oKXt9O2EucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIkdyaWRsaW5lIFBsdWdpbiJ9O2EucHJvdG90eXBlLmFjdGl2YXRlPWZ1bmN0aW9uKGIpe3JldHVybnt3aWxsRHJhd0NoYXJ0OnRoaXMud2lsbERyYXdDaGFydH19O2EucHJvdG90eXBlLndpbGxEcmF3Q2hhcnQ9ZnVuY3Rpb24ocyl7dmFyIHE9cy5keWdyYXBoO3ZhciBsPXMuZHJhd2luZ0NvbnRleHQ7dmFyIHQ9cS5sYXlvdXRfO3ZhciByPXMuZHlncmFwaC5wbG90dGVyXy5hcmVhO2Z1bmN0aW9uIGsoZSl7cmV0dXJuIE1hdGgucm91bmQoZSkrMC41fWZ1bmN0aW9uIGooZSl7cmV0dXJuIE1hdGgucm91bmQoZSktMC41fXZhciBoLGYscCx1O2lmKHEuZ2V0T3B0aW9uKCJkcmF3WUdyaWQiKSl7dmFyIG89WyJ5IiwieTIiXTt2YXIgbT1bXSx2PVtdLGI9W10sbj1bXSxkPVtdO2Zvcih2YXIgcD0wO3A8by5sZW5ndGg7cCsrKXtiW3BdPXEuZ2V0T3B0aW9uRm9yQXhpcygiZHJhd0dyaWQiLG9bcF0pO2lmKGJbcF0pe21bcF09cS5nZXRPcHRpb25Gb3JBeGlzKCJncmlkTGluZUNvbG9yIixvW3BdKTt2W3BdPXEuZ2V0T3B0aW9uRm9yQXhpcygiZ3JpZExpbmVXaWR0aCIsb1twXSk7ZFtwXT1xLmdldE9wdGlvbkZvckF4aXMoImdyaWRMaW5lUGF0dGVybiIsb1twXSk7bltwXT1kW3BdJiYoZFtwXS5sZW5ndGg+PTIpfX11PXQueXRpY2tzO2wuc2F2ZSgpO2ZvcihwPTA7cDx1Lmxlbmd0aDtwKyspe3ZhciBjPXVbcF1bMF07aWYoYltjXSl7aWYobltjXSl7bC5pbnN0YWxsUGF0dGVybihkW2NdKX1sLnN0cm9rZVN0eWxlPW1bY107bC5saW5lV2lkdGg9dltjXTtoPWsoci54KTtmPWooci55K3VbcF1bMV0qci5oKTtsLmJlZ2luUGF0aCgpO2wubW92ZVRvKGgsZik7bC5saW5lVG8oaCtyLncsZik7bC5jbG9zZVBhdGgoKTtsLnN0cm9rZSgpO2lmKG5bY10pe2wudW5pbnN0YWxsUGF0dGVybigpfX19bC5yZXN0b3JlKCl9aWYocS5nZXRPcHRpb24oImRyYXdYR3JpZCIpJiZxLmdldE9wdGlvbkZvckF4aXMoImRyYXdHcmlkIiwieCIpKXt1PXQueHRpY2tzO2wuc2F2ZSgpO3ZhciBkPXEuZ2V0T3B0aW9uRm9yQXhpcygiZ3JpZExpbmVQYXR0ZXJuIiwieCIpO3ZhciBuPWQmJihkLmxlbmd0aD49Mik7aWYobil7bC5pbnN0YWxsUGF0dGVybihkKX1sLnN0cm9rZVN0eWxlPXEuZ2V0T3B0aW9uRm9yQXhpcygiZ3JpZExpbmVDb2xvciIsIngiKTtsLmxpbmVXaWR0aD1xLmdldE9wdGlvbkZvckF4aXMoImdyaWRMaW5lV2lkdGgiLCJ4Iik7Zm9yKHA9MDtwPHUubGVuZ3RoO3ArKyl7aD1rKHIueCt1W3BdWzBdKnIudyk7Zj1qKHIueStyLmgpO2wuYmVnaW5QYXRoKCk7bC5tb3ZlVG8oaCxmKTtsLmxpbmVUbyhoLHIueSk7bC5jbG9zZVBhdGgoKTtsLnN0cm9rZSgpfWlmKG4pe2wudW5pbnN0YWxsUGF0dGVybigpfWwucmVzdG9yZSgpfX07YS5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe307cmV0dXJuIGF9KSgpO0R5Z3JhcGguUGx1Z2lucy5MZWdlbmQ9KGZ1bmN0aW9uKCl7dmFyIGM9ZnVuY3Rpb24oKXt0aGlzLmxlZ2VuZF9kaXZfPW51bGw7dGhpcy5pc19nZW5lcmF0ZWRfZGl2Xz1mYWxzZX07Yy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iTGVnZW5kIFBsdWdpbiJ9O3ZhciBhLGQ7Yy5wcm90b3R5cGUuYWN0aXZhdGU9ZnVuY3Rpb24oail7dmFyIG07dmFyIGY9ai5nZXRPcHRpb24oImxhYmVsc0RpdldpZHRoIik7dmFyIGw9ai5nZXRPcHRpb24oImxhYmVsc0RpdiIpO2lmKGwmJm51bGwhPT1sKXtpZih0eXBlb2YobCk9PSJzdHJpbmcifHxsIGluc3RhbmNlb2YgU3RyaW5nKXttPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGwpfWVsc2V7bT1sfX1lbHNle3ZhciBpPXtwb3NpdGlvbjoiYWJzb2x1dGUiLGZvbnRTaXplOiIxNHB4Iix6SW5kZXg6MTAsd2lkdGg6ZisicHgiLHRvcDoiMHB4IixsZWZ0OihqLnNpemUoKS53aWR0aC1mLTIpKyJweCIsYmFja2dyb3VuZDoid2hpdGUiLGxpbmVIZWlnaHQ6Im5vcm1hbCIsdGV4dEFsaWduOiJsZWZ0IixvdmVyZmxvdzoiaGlkZGVuIn07RHlncmFwaC51cGRhdGUoaSxqLmdldE9wdGlvbigibGFiZWxzRGl2U3R5bGVzIikpO209ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bS5jbGFzc05hbWU9ImR5Z3JhcGgtbGVnZW5kIjtmb3IodmFyIGggaW4gaSl7aWYoIWkuaGFzT3duUHJvcGVydHkoaCkpe2NvbnRpbnVlfXRyeXttLnN0eWxlW2hdPWlbaF19Y2F0Y2goayl7dGhpcy53YXJuKCJZb3UgYXJlIHVzaW5nIHVuc3VwcG9ydGVkIGNzcyBwcm9wZXJ0aWVzIGZvciB5b3VyIGJyb3dzZXIgaW4gbGFiZWxzRGl2U3R5bGVzIil9fWouZ3JhcGhEaXYuYXBwZW5kQ2hpbGQobSk7dGhpcy5pc19nZW5lcmF0ZWRfZGl2Xz10cnVlfXRoaXMubGVnZW5kX2Rpdl89bTt0aGlzLm9uZV9lbV93aWR0aF89MTA7cmV0dXJue3NlbGVjdDp0aGlzLnNlbGVjdCxkZXNlbGVjdDp0aGlzLmRlc2VsZWN0LHByZWRyYXc6dGhpcy5wcmVkcmF3LGRpZERyYXdDaGFydDp0aGlzLmRpZERyYXdDaGFydH19O3ZhciBiPWZ1bmN0aW9uKGcpe3ZhciBmPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtmLnNldEF0dHJpYnV0ZSgic3R5bGUiLCJtYXJnaW46IDA7IHBhZGRpbmc6IDAgMCAwIDFlbTsgYm9yZGVyOiAwOyIpO2cuYXBwZW5kQ2hpbGQoZik7dmFyIGU9Zi5vZmZzZXRXaWR0aDtnLnJlbW92ZUNoaWxkKGYpO3JldHVybiBlfTtjLnByb3RvdHlwZS5zZWxlY3Q9ZnVuY3Rpb24oaSl7dmFyIGg9aS5zZWxlY3RlZFg7dmFyIGc9aS5zZWxlY3RlZFBvaW50czt2YXIgZj1hKGkuZHlncmFwaCxoLGcsdGhpcy5vbmVfZW1fd2lkdGhfKTt0aGlzLmxlZ2VuZF9kaXZfLmlubmVySFRNTD1mfTtjLnByb3RvdHlwZS5kZXNlbGVjdD1mdW5jdGlvbihoKXt2YXIgZj1iKHRoaXMubGVnZW5kX2Rpdl8pO3RoaXMub25lX2VtX3dpZHRoXz1mO3ZhciBnPWEoaC5keWdyYXBoLHVuZGVmaW5lZCx1bmRlZmluZWQsZik7dGhpcy5sZWdlbmRfZGl2Xy5pbm5lckhUTUw9Z307Yy5wcm90b3R5cGUuZGlkRHJhd0NoYXJ0PWZ1bmN0aW9uKGYpe3RoaXMuZGVzZWxlY3QoZil9O2MucHJvdG90eXBlLnByZWRyYXc9ZnVuY3Rpb24oaCl7aWYoIXRoaXMuaXNfZ2VuZXJhdGVkX2Rpdl8pe3JldHVybn1oLmR5Z3JhcGguZ3JhcGhEaXYuYXBwZW5kQ2hpbGQodGhpcy5sZWdlbmRfZGl2Xyk7dmFyIGc9aC5keWdyYXBoLnBsb3R0ZXJfLmFyZWE7dmFyIGY9aC5keWdyYXBoLmdldE9wdGlvbigibGFiZWxzRGl2V2lkdGgiKTt0aGlzLmxlZ2VuZF9kaXZfLnN0eWxlLmxlZnQ9Zy54K2cudy1mLTErInB4Ijt0aGlzLmxlZ2VuZF9kaXZfLnN0eWxlLnRvcD1nLnkrInB4Ijt0aGlzLmxlZ2VuZF9kaXZfLnN0eWxlLndpZHRoPWYrInB4In07Yy5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMubGVnZW5kX2Rpdl89bnVsbH07YT1mdW5jdGlvbih3LHAsbCxmKXtpZih3LmdldE9wdGlvbigic2hvd0xhYmVsc09uSGlnaGxpZ2h0IikhPT10cnVlKXtyZXR1cm4iIn12YXIgcixDLHUscyxtO3ZhciB6PXcuZ2V0TGFiZWxzKCk7aWYodHlwZW9mKHApPT09InVuZGVmaW5lZCIpe2lmKHcuZ2V0T3B0aW9uKCJsZWdlbmQiKSE9ImFsd2F5cyIpe3JldHVybiIifUM9dy5nZXRPcHRpb24oImxhYmVsc1NlcGFyYXRlTGluZXMiKTtyPSIiO2Zvcih1PTE7dTx6Lmxlbmd0aDt1Kyspe3ZhciBxPXcuZ2V0UHJvcGVydGllc0ZvclNlcmllcyh6W3VdKTtpZighcS52aXNpYmxlKXtjb250aW51ZX1pZihyIT09IiIpe3IrPShDPyI8YnIvPiI6IiAiKX1tPXcuZ2V0T3B0aW9uKCJzdHJva2VQYXR0ZXJuIix6W3VdKTtzPWQobSxxLmNvbG9yLGYpO3IrPSI8c3BhbiBzdHlsZT0nZm9udC13ZWlnaHQ6IGJvbGQ7IGNvbG9yOiAiK3EuY29sb3IrIjsnPiIrcysiICIrelt1XSsiPC9zcGFuPiJ9cmV0dXJuIHJ9dmFyIEE9dy5vcHRpb25zVmlld0ZvckF4aXNfKCJ4Iik7dmFyIG89QSgidmFsdWVGb3JtYXR0ZXIiKTtyPW8ocCxBLHpbMF0sdyk7aWYociE9PSIiKXtyKz0iOiJ9dmFyIHY9W107dmFyIGo9dy5udW1BeGVzKCk7Zm9yKHU9MDt1PGo7dSsrKXt2W3VdPXcub3B0aW9uc1ZpZXdGb3JBeGlzXygieSIrKHU/MSt1OiIiKSl9dmFyIGs9dy5nZXRPcHRpb24oImxhYmVsc1Nob3daZXJvVmFsdWVzIik7Qz13LmdldE9wdGlvbigibGFiZWxzU2VwYXJhdGVMaW5lcyIpO3ZhciBCPXcuZ2V0SGlnaGxpZ2h0U2VyaWVzKCk7Zm9yKHU9MDt1PGwubGVuZ3RoO3UrKyl7dmFyIHQ9bFt1XTtpZih0Lnl2YWw9PT0wJiYhayl7Y29udGludWV9aWYoIUR5Z3JhcGguaXNPSyh0LmNhbnZhc3kpKXtjb250aW51ZX1pZihDKXtyKz0iPGJyLz4ifXZhciBxPXcuZ2V0UHJvcGVydGllc0ZvclNlcmllcyh0Lm5hbWUpO3ZhciBuPXZbcS5heGlzLTFdO3ZhciB5PW4oInZhbHVlRm9ybWF0dGVyIik7dmFyIGU9eSh0Lnl2YWwsbix0Lm5hbWUsdyk7dmFyIGg9KHQubmFtZT09Qik/IiBjbGFzcz0naGlnaGxpZ2h0JyI6IiI7cis9IjxzcGFuIitoKyI+IDxiPjxzcGFuIHN0eWxlPSdjb2xvcjogIitxLmNvbG9yKyI7Jz4iK3QubmFtZSsiPC9zcGFuPjwvYj46Jm5ic3A7IitlKyI8L3NwYW4+In1yZXR1cm4gcn07ZD1mdW5jdGlvbihzLGgscil7dmFyIGU9KC9NU0lFLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiYhd2luZG93Lm9wZXJhKTtpZihlKXtyZXR1cm4iJm1kYXNoOyJ9aWYoIXN8fHMubGVuZ3RoPD0xKXtyZXR1cm4nPGRpdiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyBwb3NpdGlvbjogcmVsYXRpdmU7IGJvdHRvbTogLjVleDsgcGFkZGluZy1sZWZ0OiAxZW07IGhlaWdodDogMXB4OyBib3JkZXItYm90dG9tOiAycHggc29saWQgJytoKyc7Ij48L2Rpdj4nfXZhciBsLGssZixvO3ZhciBnPTAscT0wO3ZhciBwPVtdO3ZhciBuO2ZvcihsPTA7bDw9cy5sZW5ndGg7bCsrKXtnKz1zW2wlcy5sZW5ndGhdfW49TWF0aC5mbG9vcihyLyhnLXNbMF0pKTtpZihuPjEpe2ZvcihsPTA7bDxzLmxlbmd0aDtsKyspe3BbbF09c1tsXS9yfXE9cC5sZW5ndGh9ZWxzZXtuPTE7Zm9yKGw9MDtsPHMubGVuZ3RoO2wrKyl7cFtsXT1zW2xdL2d9cT1wLmxlbmd0aCsxfXZhciBtPSIiO2ZvcihrPTA7azxuO2srKyl7Zm9yKGw9MDtsPHE7bCs9Mil7Zj1wW2wlcC5sZW5ndGhdO2lmKGw8cy5sZW5ndGgpe289cFsobCsxKSVwLmxlbmd0aF19ZWxzZXtvPTB9bSs9JzxkaXYgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgcG9zaXRpb246IHJlbGF0aXZlOyBib3R0b206IC41ZXg7IG1hcmdpbi1yaWdodDogJytvKyJlbTsgcGFkZGluZy1sZWZ0OiAiK2YrImVtOyBoZWlnaHQ6IDFweDsgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICIraCsnOyI+PC9kaXY+J319cmV0dXJuIG19O3JldHVybiBjfSkoKTtEeWdyYXBoLlBsdWdpbnMuUmFuZ2VTZWxlY3Rvcj0oZnVuY3Rpb24oKXt2YXIgYT1mdW5jdGlvbigpe3RoaXMuaXNJRV89L01TSUUvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJiF3aW5kb3cub3BlcmE7dGhpcy5oYXNUb3VjaEludGVyZmFjZV89dHlwZW9mKFRvdWNoRXZlbnQpIT0idW5kZWZpbmVkIjt0aGlzLmlzTW9iaWxlRGV2aWNlXz0vbW9iaWxlfGFuZHJvaWQvZ2kudGVzdChuYXZpZ2F0b3IuYXBwVmVyc2lvbik7dGhpcy5pbnRlcmZhY2VDcmVhdGVkXz1mYWxzZX07YS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iUmFuZ2VTZWxlY3RvciBQbHVnaW4ifTthLnByb3RvdHlwZS5hY3RpdmF0ZT1mdW5jdGlvbihiKXt0aGlzLmR5Z3JhcGhfPWI7dGhpcy5pc1VzaW5nRXhjYW52YXNfPWIuaXNVc2luZ0V4Y2FudmFzXztpZih0aGlzLmdldE9wdGlvbl8oInNob3dSYW5nZVNlbGVjdG9yIikpe3RoaXMuY3JlYXRlSW50ZXJmYWNlXygpfXJldHVybntsYXlvdXQ6dGhpcy5yZXNlcnZlU3BhY2VfLHByZWRyYXc6dGhpcy5yZW5kZXJTdGF0aWNMYXllcl8sZGlkRHJhd0NoYXJ0OnRoaXMucmVuZGVySW50ZXJhY3RpdmVMYXllcl99fTthLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy5iZ2NhbnZhc189bnVsbDt0aGlzLmZnY2FudmFzXz1udWxsO3RoaXMubGVmdFpvb21IYW5kbGVfPW51bGw7dGhpcy5yaWdodFpvb21IYW5kbGVfPW51bGw7dGhpcy5pZVBhbk92ZXJsYXlfPW51bGx9O2EucHJvdG90eXBlLmdldE9wdGlvbl89ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuZHlncmFwaF8uZ2V0T3B0aW9uKGIpfTthLnByb3RvdHlwZS5zZXREZWZhdWx0T3B0aW9uXz1mdW5jdGlvbihiLGMpe3JldHVybiB0aGlzLmR5Z3JhcGhfLmF0dHJzX1tiXT1jfTthLnByb3RvdHlwZS5jcmVhdGVJbnRlcmZhY2VfPWZ1bmN0aW9uKCl7dGhpcy5jcmVhdGVDYW52YXNlc18oKTtpZih0aGlzLmlzVXNpbmdFeGNhbnZhc18pe3RoaXMuY3JlYXRlSUVQYW5PdmVybGF5XygpfXRoaXMuY3JlYXRlWm9vbUhhbmRsZXNfKCk7dGhpcy5pbml0SW50ZXJhY3Rpb25fKCk7aWYodGhpcy5nZXRPcHRpb25fKCJhbmltYXRlZFpvb21zIikpe3RoaXMuZHlncmFwaF8ud2FybigiQW5pbWF0ZWQgem9vbXMgYW5kIHJhbmdlIHNlbGVjdG9yIGFyZSBub3QgY29tcGF0aWJsZTsgZGlzYWJsaW5nIGFuaW1hdGVkWm9vbXMuIik7dGhpcy5keWdyYXBoXy51cGRhdGVPcHRpb25zKHthbmltYXRlZFpvb21zOmZhbHNlfSx0cnVlKX10aGlzLmludGVyZmFjZUNyZWF0ZWRfPXRydWU7dGhpcy5hZGRUb0dyYXBoXygpfTthLnByb3RvdHlwZS5hZGRUb0dyYXBoXz1mdW5jdGlvbigpe3ZhciBiPXRoaXMuZ3JhcGhEaXZfPXRoaXMuZHlncmFwaF8uZ3JhcGhEaXY7Yi5hcHBlbmRDaGlsZCh0aGlzLmJnY2FudmFzXyk7Yi5hcHBlbmRDaGlsZCh0aGlzLmZnY2FudmFzXyk7Yi5hcHBlbmRDaGlsZCh0aGlzLmxlZnRab29tSGFuZGxlXyk7Yi5hcHBlbmRDaGlsZCh0aGlzLnJpZ2h0Wm9vbUhhbmRsZV8pfTthLnByb3RvdHlwZS5yZW1vdmVGcm9tR3JhcGhfPWZ1bmN0aW9uKCl7dmFyIGI9dGhpcy5ncmFwaERpdl87Yi5yZW1vdmVDaGlsZCh0aGlzLmJnY2FudmFzXyk7Yi5yZW1vdmVDaGlsZCh0aGlzLmZnY2FudmFzXyk7Yi5yZW1vdmVDaGlsZCh0aGlzLmxlZnRab29tSGFuZGxlXyk7Yi5yZW1vdmVDaGlsZCh0aGlzLnJpZ2h0Wm9vbUhhbmRsZV8pO3RoaXMuZ3JhcGhEaXZfPW51bGx9O2EucHJvdG90eXBlLnJlc2VydmVTcGFjZV89ZnVuY3Rpb24oYil7aWYodGhpcy5nZXRPcHRpb25fKCJzaG93UmFuZ2VTZWxlY3RvciIpKXtiLnJlc2VydmVTcGFjZUJvdHRvbSh0aGlzLmdldE9wdGlvbl8oInJhbmdlU2VsZWN0b3JIZWlnaHQiKSs0KX19O2EucHJvdG90eXBlLnJlbmRlclN0YXRpY0xheWVyXz1mdW5jdGlvbigpe2lmKCF0aGlzLnVwZGF0ZVZpc2liaWxpdHlfKCkpe3JldHVybn10aGlzLnJlc2l6ZV8oKTt0aGlzLmRyYXdTdGF0aWNMYXllcl8oKX07YS5wcm90b3R5cGUucmVuZGVySW50ZXJhY3RpdmVMYXllcl89ZnVuY3Rpb24oKXtpZighdGhpcy51cGRhdGVWaXNpYmlsaXR5XygpfHx0aGlzLmlzQ2hhbmdpbmdSYW5nZV8pe3JldHVybn10aGlzLnBsYWNlWm9vbUhhbmRsZXNfKCk7dGhpcy5kcmF3SW50ZXJhY3RpdmVMYXllcl8oKX07YS5wcm90b3R5cGUudXBkYXRlVmlzaWJpbGl0eV89ZnVuY3Rpb24oKXt2YXIgYj10aGlzLmdldE9wdGlvbl8oInNob3dSYW5nZVNlbGVjdG9yIik7aWYoYil7aWYoIXRoaXMuaW50ZXJmYWNlQ3JlYXRlZF8pe3RoaXMuY3JlYXRlSW50ZXJmYWNlXygpfWVsc2V7aWYoIXRoaXMuZ3JhcGhEaXZffHwhdGhpcy5ncmFwaERpdl8ucGFyZW50Tm9kZSl7dGhpcy5hZGRUb0dyYXBoXygpfX19ZWxzZXtpZih0aGlzLmdyYXBoRGl2Xyl7dGhpcy5yZW1vdmVGcm9tR3JhcGhfKCk7dmFyIGM9dGhpcy5keWdyYXBoXztzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy53aWR0aF89MDtjLnJlc2l6ZSgpfSwxKX19cmV0dXJuIGJ9O2EucHJvdG90eXBlLnJlc2l6ZV89ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGUsZil7ZS5zdHlsZS50b3A9Zi55KyJweCI7ZS5zdHlsZS5sZWZ0PWYueCsicHgiO2Uud2lkdGg9Zi53O2UuaGVpZ2h0PWYuaDtlLnN0eWxlLndpZHRoPWUud2lkdGgrInB4IjtlLnN0eWxlLmhlaWdodD1lLmhlaWdodCsicHgifXZhciBjPXRoaXMuZHlncmFwaF8ubGF5b3V0Xy5nZXRQbG90QXJlYSgpO3ZhciBiPTA7aWYodGhpcy5nZXRPcHRpb25fKCJkcmF3WEF4aXMiKSl7Yj10aGlzLmdldE9wdGlvbl8oInhBeGlzSGVpZ2h0Iil8fCh0aGlzLmdldE9wdGlvbl8oImF4aXNMYWJlbEZvbnRTaXplIikrMip0aGlzLmdldE9wdGlvbl8oImF4aXNUaWNrU2l6ZSIpKX10aGlzLmNhbnZhc1JlY3RfPXt4OmMueCx5OmMueStjLmgrYis0LHc6Yy53LGg6dGhpcy5nZXRPcHRpb25fKCJyYW5nZVNlbGVjdG9ySGVpZ2h0Iil9O2QodGhpcy5iZ2NhbnZhc18sdGhpcy5jYW52YXNSZWN0Xyk7ZCh0aGlzLmZnY2FudmFzXyx0aGlzLmNhbnZhc1JlY3RfKX07YS5wcm90b3R5cGUuY3JlYXRlQ2FudmFzZXNfPWZ1bmN0aW9uKCl7dGhpcy5iZ2NhbnZhc189RHlncmFwaC5jcmVhdGVDYW52YXMoKTt0aGlzLmJnY2FudmFzXy5jbGFzc05hbWU9ImR5Z3JhcGgtcmFuZ2VzZWwtYmdjYW52YXMiO3RoaXMuYmdjYW52YXNfLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSI7dGhpcy5iZ2NhbnZhc18uc3R5bGUuekluZGV4PTk7dGhpcy5iZ2NhbnZhc19jdHhfPUR5Z3JhcGguZ2V0Q29udGV4dCh0aGlzLmJnY2FudmFzXyk7dGhpcy5mZ2NhbnZhc189RHlncmFwaC5jcmVhdGVDYW52YXMoKTt0aGlzLmZnY2FudmFzXy5jbGFzc05hbWU9ImR5Z3JhcGgtcmFuZ2VzZWwtZmdjYW52YXMiO3RoaXMuZmdjYW52YXNfLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSI7dGhpcy5mZ2NhbnZhc18uc3R5bGUuekluZGV4PTk7dGhpcy5mZ2NhbnZhc18uc3R5bGUuY3Vyc29yPSJkZWZhdWx0Ijt0aGlzLmZnY2FudmFzX2N0eF89RHlncmFwaC5nZXRDb250ZXh0KHRoaXMuZmdjYW52YXNfKX07YS5wcm90b3R5cGUuY3JlYXRlSUVQYW5PdmVybGF5Xz1mdW5jdGlvbigpe3RoaXMuaWVQYW5PdmVybGF5Xz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0aGlzLmllUGFuT3ZlcmxheV8uc3R5bGUucG9zaXRpb249ImFic29sdXRlIjt0aGlzLmllUGFuT3ZlcmxheV8uc3R5bGUuYmFja2dyb3VuZENvbG9yPSJ3aGl0ZSI7dGhpcy5pZVBhbk92ZXJsYXlfLnN0eWxlLmZpbHRlcj0iYWxwaGEob3BhY2l0eT0wKSI7dGhpcy5pZVBhbk92ZXJsYXlfLnN0eWxlLmRpc3BsYXk9Im5vbmUiO3RoaXMuaWVQYW5PdmVybGF5Xy5zdHlsZS5jdXJzb3I9Im1vdmUiO3RoaXMuZmdjYW52YXNfLmFwcGVuZENoaWxkKHRoaXMuaWVQYW5PdmVybGF5Xyl9O2EucHJvdG90eXBlLmNyZWF0ZVpvb21IYW5kbGVzXz1mdW5jdGlvbigpe3ZhciBiPW5ldyBJbWFnZSgpO2IuY2xhc3NOYW1lPSJkeWdyYXBoLXJhbmdlc2VsLXpvb21oYW5kbGUiO2Iuc3R5bGUucG9zaXRpb249ImFic29sdXRlIjtiLnN0eWxlLnpJbmRleD0xMDtiLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiI7Yi5zdHlsZS5jdXJzb3I9ImNvbC1yZXNpemUiO2lmKC9NU0lFIDcvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpe2Iud2lkdGg9NztiLmhlaWdodD0xNDtiLnN0eWxlLmJhY2tncm91bmRDb2xvcj0id2hpdGUiO2Iuc3R5bGUuYm9yZGVyPSIxcHggc29saWQgIzMzMzMzMyJ9ZWxzZXtiLndpZHRoPTk7Yi5oZWlnaHQ9MTY7Yi5zcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQWtBQUFBUUNBWUFBQURFU0ZWREFBQUFBWE5TUjBJQXJzNGM2UUFBQUFaaVMwZEVBTkFBendEUDRaN0tlZ0FBQUFsd1NGbHpBQUFPeEFBQURzUUJsU3NPR3dBQUFBZDBTVTFGQjlzSEd3MGNNcWR0MVV3QUFBQVpkRVZZZEVOdmJXMWxiblFBUTNKbFlYUmxaQ0IzYVhSb0lFZEpUVkJYZ1E0WEFBQUFhRWxFUVZRb3orM1NzUkZBUUJDRjRaOVdKTThLQ0RWd293bmw2WVhzVG1DVXN5S0drWnpjbDd6a3ozWUxreXBnQW5yZUZtREVwSGtJd1ZPTWZwZGk5Q0VFTjJuR3BGZHdEMDN5RXFEdE9nQ2F1bjdzcVNUREgzMkkxcFFBMlBiOXNaZWNBeGM1cjNJQWIyMWQ2ODc4eHNBQUFBQUFTVVZPUks1Q1lJST0ifWlmKHRoaXMuaXNNb2JpbGVEZXZpY2VfKXtiLndpZHRoKj0yO2IuaGVpZ2h0Kj0yfXRoaXMubGVmdFpvb21IYW5kbGVfPWI7dGhpcy5yaWdodFpvb21IYW5kbGVfPWIuY2xvbmVOb2RlKGZhbHNlKX07YS5wcm90b3R5cGUuaW5pdEludGVyYWN0aW9uXz1mdW5jdGlvbigpe3ZhciBvPXRoaXM7dmFyIGk9dGhpcy5pc0lFXz9kb2N1bWVudDp3aW5kb3c7dmFyIHU9MDt2YXIgdj1udWxsO3ZhciBzPWZhbHNlO3ZhciBkPWZhbHNlO3ZhciBnPSF0aGlzLmlzTW9iaWxlRGV2aWNlXyYmIXRoaXMuaXNVc2luZ0V4Y2FudmFzXzt2YXIgaz1uZXcgRHlncmFwaC5JRnJhbWVUYXJwKCk7dmFyIHAsZixyLGosdyxoLHgsdCxxLGMsbDt2YXIgZSxuLG07cD1mdW5jdGlvbihDKXt2YXIgQj1vLmR5Z3JhcGhfLnhBeGlzRXh0cmVtZXMoKTt2YXIgej0oQlsxXS1CWzBdKS9vLmNhbnZhc1JlY3RfLnc7dmFyIEE9QlswXSsoQy5sZWZ0SGFuZGxlUG9zLW8uY2FudmFzUmVjdF8ueCkqejt2YXIgeT1CWzBdKyhDLnJpZ2h0SGFuZGxlUG9zLW8uY2FudmFzUmVjdF8ueCkqejtyZXR1cm5bQSx5XX07Zj1mdW5jdGlvbih5KXtEeWdyYXBoLmNhbmNlbEV2ZW50KHkpO3M9dHJ1ZTt1PXkuY2xpZW50WDt2PXkudGFyZ2V0P3kudGFyZ2V0Onkuc3JjRWxlbWVudDtpZih5LnR5cGU9PT0ibW91c2Vkb3duInx8eS50eXBlPT09ImRyYWdzdGFydCIpe0R5Z3JhcGguYWRkRXZlbnQoaSwibW91c2Vtb3ZlIixyKTtEeWdyYXBoLmFkZEV2ZW50KGksIm1vdXNldXAiLGopfW8uZmdjYW52YXNfLnN0eWxlLmN1cnNvcj0iY29sLXJlc2l6ZSI7ay5jb3ZlcigpO3JldHVybiB0cnVlfTtyPWZ1bmN0aW9uKEMpe2lmKCFzKXtyZXR1cm4gZmFsc2V9RHlncmFwaC5jYW5jZWxFdmVudChDKTt2YXIgej1DLmNsaWVudFgtdTtpZihNYXRoLmFicyh6KTw0KXtyZXR1cm4gdHJ1ZX11PUMuY2xpZW50WDt2YXIgQj1vLmdldFpvb21IYW5kbGVTdGF0dXNfKCk7dmFyIHk7aWYodj09by5sZWZ0Wm9vbUhhbmRsZV8pe3k9Qi5sZWZ0SGFuZGxlUG9zK3o7eT1NYXRoLm1pbih5LEIucmlnaHRIYW5kbGVQb3Mtdi53aWR0aC0zKTt5PU1hdGgubWF4KHksby5jYW52YXNSZWN0Xy54KX1lbHNle3k9Qi5yaWdodEhhbmRsZVBvcyt6O3k9TWF0aC5taW4oeSxvLmNhbnZhc1JlY3RfLngrby5jYW52YXNSZWN0Xy53KTt5PU1hdGgubWF4KHksQi5sZWZ0SGFuZGxlUG9zK3Yud2lkdGgrMyl9dmFyIEE9di53aWR0aC8yO3Yuc3R5bGUubGVmdD0oeS1BKSsicHgiO28uZHJhd0ludGVyYWN0aXZlTGF5ZXJfKCk7aWYoZyl7dygpfXJldHVybiB0cnVlfTtqPWZ1bmN0aW9uKHkpe2lmKCFzKXtyZXR1cm4gZmFsc2V9cz1mYWxzZTtrLnVuY292ZXIoKTtEeWdyYXBoLnJlbW92ZUV2ZW50KGksIm1vdXNlbW92ZSIscik7RHlncmFwaC5yZW1vdmVFdmVudChpLCJtb3VzZXVwIixqKTtvLmZnY2FudmFzXy5zdHlsZS5jdXJzb3I9ImRlZmF1bHQiO2lmKCFnKXt3KCl9cmV0dXJuIHRydWV9O3c9ZnVuY3Rpb24oKXt0cnl7dmFyIHo9by5nZXRab29tSGFuZGxlU3RhdHVzXygpO28uaXNDaGFuZ2luZ1JhbmdlXz10cnVlO2lmKCF6LmlzWm9vbWVkKXtvLmR5Z3JhcGhfLnJlc2V0Wm9vbSgpfWVsc2V7dmFyIHk9cCh6KTtvLmR5Z3JhcGhfLmRvWm9vbVhEYXRlc18oeVswXSx5WzFdKX19ZmluYWxseXtvLmlzQ2hhbmdpbmdSYW5nZV89ZmFsc2V9fTtoPWZ1bmN0aW9uKEEpe2lmKG8uaXNVc2luZ0V4Y2FudmFzXyl7cmV0dXJuIEEuc3JjRWxlbWVudD09by5pZVBhbk92ZXJsYXlffWVsc2V7dmFyIHo9by5sZWZ0Wm9vbUhhbmRsZV8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dmFyIHk9ei5sZWZ0K3oud2lkdGgvMjt6PW8ucmlnaHRab29tSGFuZGxlXy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt2YXIgQj16LmxlZnQrei53aWR0aC8yO3JldHVybihBLmNsaWVudFg+eSYmQS5jbGllbnRYPEIpfX07eD1mdW5jdGlvbih5KXtpZighZCYmaCh5KSYmby5nZXRab29tSGFuZGxlU3RhdHVzXygpLmlzWm9vbWVkKXtEeWdyYXBoLmNhbmNlbEV2ZW50KHkpO2Q9dHJ1ZTt1PXkuY2xpZW50WDtpZih5LnR5cGU9PT0ibW91c2Vkb3duIil7RHlncmFwaC5hZGRFdmVudChpLCJtb3VzZW1vdmUiLHQpO0R5Z3JhcGguYWRkRXZlbnQoaSwibW91c2V1cCIscSl9cmV0dXJuIHRydWV9cmV0dXJuIGZhbHNlfTt0PWZ1bmN0aW9uKEMpe2lmKCFkKXtyZXR1cm4gZmFsc2V9RHlncmFwaC5jYW5jZWxFdmVudChDKTt2YXIgej1DLmNsaWVudFgtdTtpZihNYXRoLmFicyh6KTw0KXtyZXR1cm4gdHJ1ZX11PUMuY2xpZW50WDt2YXIgQj1vLmdldFpvb21IYW5kbGVTdGF0dXNfKCk7dmFyIEU9Qi5sZWZ0SGFuZGxlUG9zO3ZhciB5PUIucmlnaHRIYW5kbGVQb3M7dmFyIEQ9eS1FO2lmKEUrejw9by5jYW52YXNSZWN0Xy54KXtFPW8uY2FudmFzUmVjdF8ueDt5PUUrRH1lbHNle2lmKHkrej49by5jYW52YXNSZWN0Xy54K28uY2FudmFzUmVjdF8udyl7eT1vLmNhbnZhc1JlY3RfLngrby5jYW52YXNSZWN0Xy53O0U9eS1EfWVsc2V7RSs9ejt5Kz16fX12YXIgQT1vLmxlZnRab29tSGFuZGxlXy53aWR0aC8yO28ubGVmdFpvb21IYW5kbGVfLnN0eWxlLmxlZnQ9KEUtQSkrInB4IjtvLnJpZ2h0Wm9vbUhhbmRsZV8uc3R5bGUubGVmdD0oeS1BKSsicHgiO28uZHJhd0ludGVyYWN0aXZlTGF5ZXJfKCk7aWYoZyl7YygpfXJldHVybiB0cnVlfTtxPWZ1bmN0aW9uKHkpe2lmKCFkKXtyZXR1cm4gZmFsc2V9ZD1mYWxzZTtEeWdyYXBoLnJlbW92ZUV2ZW50KGksIm1vdXNlbW92ZSIsdCk7RHlncmFwaC5yZW1vdmVFdmVudChpLCJtb3VzZXVwIixxKTtpZighZyl7YygpfXJldHVybiB0cnVlfTtjPWZ1bmN0aW9uKCl7dHJ5e28uaXNDaGFuZ2luZ1JhbmdlXz10cnVlO28uZHlncmFwaF8uZGF0ZVdpbmRvd189cChvLmdldFpvb21IYW5kbGVTdGF0dXNfKCkpO28uZHlncmFwaF8uZHJhd0dyYXBoXyhmYWxzZSl9ZmluYWxseXtvLmlzQ2hhbmdpbmdSYW5nZV89ZmFsc2V9fTtsPWZ1bmN0aW9uKHkpe2lmKHN8fGQpe3JldHVybn12YXIgej1oKHkpPyJtb3ZlIjoiZGVmYXVsdCI7aWYoeiE9by5mZ2NhbnZhc18uc3R5bGUuY3Vyc29yKXtvLmZnY2FudmFzXy5zdHlsZS5jdXJzb3I9en19O2U9ZnVuY3Rpb24oeSl7aWYoeS50eXBlPT0idG91Y2hzdGFydCImJnkudGFyZ2V0VG91Y2hlcy5sZW5ndGg9PTEpe2lmKGYoeS50YXJnZXRUb3VjaGVzWzBdKSl7RHlncmFwaC5jYW5jZWxFdmVudCh5KX19ZWxzZXtpZih5LnR5cGU9PSJ0b3VjaG1vdmUiJiZ5LnRhcmdldFRvdWNoZXMubGVuZ3RoPT0xKXtpZihyKHkudGFyZ2V0VG91Y2hlc1swXSkpe0R5Z3JhcGguY2FuY2VsRXZlbnQoeSl9fWVsc2V7aih5KX19fTtuPWZ1bmN0aW9uKHkpe2lmKHkudHlwZT09InRvdWNoc3RhcnQiJiZ5LnRhcmdldFRvdWNoZXMubGVuZ3RoPT0xKXtpZih4KHkudGFyZ2V0VG91Y2hlc1swXSkpe0R5Z3JhcGguY2FuY2VsRXZlbnQoeSl9fWVsc2V7aWYoeS50eXBlPT0idG91Y2htb3ZlIiYmeS50YXJnZXRUb3VjaGVzLmxlbmd0aD09MSl7aWYodCh5LnRhcmdldFRvdWNoZXNbMF0pKXtEeWdyYXBoLmNhbmNlbEV2ZW50KHkpfX1lbHNle3EoeSl9fX07bT1mdW5jdGlvbihCLEEpe3ZhciB6PVsidG91Y2hzdGFydCIsInRvdWNoZW5kIiwidG91Y2htb3ZlIiwidG91Y2hjYW5jZWwiXTtmb3IodmFyIHk9MDt5PHoubGVuZ3RoO3krKyl7by5keWdyYXBoXy5hZGRBbmRUcmFja0V2ZW50KEIselt5XSxBKX19O3RoaXMuc2V0RGVmYXVsdE9wdGlvbl8oImludGVyYWN0aW9uTW9kZWwiLER5Z3JhcGguSW50ZXJhY3Rpb24uZHJhZ0lzUGFuSW50ZXJhY3Rpb25Nb2RlbCk7dGhpcy5zZXREZWZhdWx0T3B0aW9uXygicGFuRWRnZUZyYWN0aW9uIiwwLjAwMDEpO3ZhciBiPXdpbmRvdy5vcGVyYT8ibW91c2Vkb3duIjoiZHJhZ3N0YXJ0Ijt0aGlzLmR5Z3JhcGhfLmFkZEFuZFRyYWNrRXZlbnQodGhpcy5sZWZ0Wm9vbUhhbmRsZV8sYixmKTt0aGlzLmR5Z3JhcGhfLmFkZEFuZFRyYWNrRXZlbnQodGhpcy5yaWdodFpvb21IYW5kbGVfLGIsZik7aWYodGhpcy5pc1VzaW5nRXhjYW52YXNfKXt0aGlzLmR5Z3JhcGhfLmFkZEFuZFRyYWNrRXZlbnQodGhpcy5pZVBhbk92ZXJsYXlfLCJtb3VzZWRvd24iLHgpfWVsc2V7dGhpcy5keWdyYXBoXy5hZGRBbmRUcmFja0V2ZW50KHRoaXMuZmdjYW52YXNfLCJtb3VzZWRvd24iLHgpO3RoaXMuZHlncmFwaF8uYWRkQW5kVHJhY2tFdmVudCh0aGlzLmZnY2FudmFzXywibW91c2Vtb3ZlIixsKX1pZih0aGlzLmhhc1RvdWNoSW50ZXJmYWNlXyl7bSh0aGlzLmxlZnRab29tSGFuZGxlXyxlKTttKHRoaXMucmlnaHRab29tSGFuZGxlXyxlKTttKHRoaXMuZmdjYW52YXNfLG4pfX07YS5wcm90b3R5cGUuZHJhd1N0YXRpY0xheWVyXz1mdW5jdGlvbigpe3ZhciBiPXRoaXMuYmdjYW52YXNfY3R4XztiLmNsZWFyUmVjdCgwLDAsdGhpcy5jYW52YXNSZWN0Xy53LHRoaXMuY2FudmFzUmVjdF8uaCk7dHJ5e3RoaXMuZHJhd01pbmlQbG90XygpfWNhdGNoKGMpe0R5Z3JhcGgud2FybihjKX12YXIgZD0wLjU7dGhpcy5iZ2NhbnZhc19jdHhfLmxpbmVXaWR0aD0xO2Iuc3Ryb2tlU3R5bGU9ImdyYXkiO2IuYmVnaW5QYXRoKCk7Yi5tb3ZlVG8oZCxkKTtiLmxpbmVUbyhkLHRoaXMuY2FudmFzUmVjdF8uaC1kKTtiLmxpbmVUbyh0aGlzLmNhbnZhc1JlY3RfLnctZCx0aGlzLmNhbnZhc1JlY3RfLmgtZCk7Yi5saW5lVG8odGhpcy5jYW52YXNSZWN0Xy53LWQsZCk7Yi5zdHJva2UoKX07YS5wcm90b3R5cGUuZHJhd01pbmlQbG90Xz1mdW5jdGlvbigpe3ZhciBmPXRoaXMuZ2V0T3B0aW9uXygicmFuZ2VTZWxlY3RvclBsb3RGaWxsQ29sb3IiKTt2YXIgcj10aGlzLmdldE9wdGlvbl8oInJhbmdlU2VsZWN0b3JQbG90U3Ryb2tlQ29sb3IiKTtpZighZiYmIXIpe3JldHVybn12YXIgaj10aGlzLmdldE9wdGlvbl8oInN0ZXBQbG90Iik7dmFyIHY9dGhpcy5jb21wdXRlQ29tYmluZWRTZXJpZXNBbmRMaW1pdHNfKCk7dmFyIHE9di55TWF4LXYueU1pbjt2YXIgcD10aGlzLmJnY2FudmFzX2N0eF87dmFyIG49MC41O3ZhciBlPXRoaXMuZHlncmFwaF8ueEF4aXNFeHRyZW1lcygpO3ZhciBvPU1hdGgubWF4KGVbMV0tZVswXSwxZS0zMCk7dmFyIGc9KHRoaXMuY2FudmFzUmVjdF8udy1uKS9vO3ZhciB1PSh0aGlzLmNhbnZhc1JlY3RfLmgtbikvcTt2YXIgdD10aGlzLmNhbnZhc1JlY3RfLnctbjt2YXIgYj10aGlzLmNhbnZhc1JlY3RfLmgtbjt2YXIgZD1udWxsLGM9bnVsbDtwLmJlZ2luUGF0aCgpO3AubW92ZVRvKG4sYik7Zm9yKHZhciBzPTA7czx2LmRhdGEubGVuZ3RoO3MrKyl7dmFyIGg9di5kYXRhW3NdO3ZhciBsPSgoaFswXSE9PW51bGwpPygoaFswXS1lWzBdKSpnKTpOYU4pO3ZhciBrPSgoaFsxXSE9PW51bGwpPyhiLShoWzFdLXYueU1pbikqdSk6TmFOKTtpZihpc0Zpbml0ZShsKSYmaXNGaW5pdGUoaykpe2lmKGQ9PT1udWxsKXtwLmxpbmVUbyhsLGIpfWVsc2V7aWYoail7cC5saW5lVG8obCxjKX19cC5saW5lVG8obCxrKTtkPWw7Yz1rfWVsc2V7aWYoZCE9PW51bGwpe2lmKGope3AubGluZVRvKGwsYyk7cC5saW5lVG8obCxiKX1lbHNle3AubGluZVRvKGQsYil9fWQ9Yz1udWxsfX1wLmxpbmVUbyh0LGIpO3AuY2xvc2VQYXRoKCk7aWYoZil7dmFyIG09dGhpcy5iZ2NhbnZhc19jdHhfLmNyZWF0ZUxpbmVhckdyYWRpZW50KDAsMCwwLGIpO20uYWRkQ29sb3JTdG9wKDAsIndoaXRlIik7bS5hZGRDb2xvclN0b3AoMSxmKTt0aGlzLmJnY2FudmFzX2N0eF8uZmlsbFN0eWxlPW07cC5maWxsKCl9aWYocil7dGhpcy5iZ2NhbnZhc19jdHhfLnN0cm9rZVN0eWxlPXI7dGhpcy5iZ2NhbnZhc19jdHhfLmxpbmVXaWR0aD0xLjU7cC5zdHJva2UoKX19O2EucHJvdG90eXBlLmNvbXB1dGVDb21iaW5lZFNlcmllc0FuZExpbWl0c189ZnVuY3Rpb24oKXt2YXIgdj10aGlzLmR5Z3JhcGhfLnJhd0RhdGFfO3ZhciB1PXRoaXMuZ2V0T3B0aW9uXygibG9nc2NhbGUiKTt2YXIgcT1bXTt2YXIgZDt2YXIgaDt2YXIgbTt2YXIgdCxzLHI7dmFyIGUsZztmb3IodD0wO3Q8di5sZW5ndGg7dCsrKXtpZih2W3RdLmxlbmd0aD4xJiZ2W3RdWzFdIT09bnVsbCl7bT10eXBlb2Ygdlt0XVsxXSE9Im51bWJlciI7aWYobSl7ZD1bXTtoPVtdO2ZvcihyPTA7cjx2W3RdWzFdLmxlbmd0aDtyKyspe2QucHVzaCgwKTtoLnB1c2goMCl9fWJyZWFrfX1mb3IodD0wO3Q8di5sZW5ndGg7dCsrKXt2YXIgbD12W3RdO2U9bFswXTtpZihtKXtmb3Iocj0wO3I8ZC5sZW5ndGg7cisrKXtkW3JdPWhbcl09MH19ZWxzZXtkPWg9MH1mb3Iocz0xO3M8bC5sZW5ndGg7cysrKXtpZih0aGlzLmR5Z3JhcGhfLnZpc2liaWxpdHkoKVtzLTFdKXt2YXIgbjtpZihtKXtmb3Iocj0wO3I8ZC5sZW5ndGg7cisrKXtuPWxbc11bcl07aWYobj09PW51bGx8fGlzTmFOKG4pKXtjb250aW51ZX1kW3JdKz1uO2hbcl0rK319ZWxzZXtuPWxbc107aWYobj09PW51bGx8fGlzTmFOKG4pKXtjb250aW51ZX1kKz1uO2grK319fWlmKG0pe2ZvcihyPTA7cjxkLmxlbmd0aDtyKyspe2Rbcl0vPWhbcl19Zz1kLnNsaWNlKDApfWVsc2V7Zz1kL2h9cS5wdXNoKFtlLGddKX1xPXRoaXMuZHlncmFwaF8ucm9sbGluZ0F2ZXJhZ2UocSx0aGlzLmR5Z3JhcGhfLnJvbGxQZXJpb2RfKTtpZih0eXBlb2YgcVswXVsxXSE9Im51bWJlciIpe2Zvcih0PTA7dDxxLmxlbmd0aDt0Kyspe2c9cVt0XVsxXTtxW3RdWzFdPWdbMF19fXZhciBiPU51bWJlci5NQVhfVkFMVUU7dmFyIGM9LU51bWJlci5NQVhfVkFMVUU7Zm9yKHQ9MDt0PHEubGVuZ3RoO3QrKyl7Zz1xW3RdWzFdO2lmKGchPT1udWxsJiZpc0Zpbml0ZShnKSYmKCF1fHxnPjApKXtiPU1hdGgubWluKGIsZyk7Yz1NYXRoLm1heChjLGcpfX12YXIgbz0wLjI1O2lmKHUpe2M9RHlncmFwaC5sb2cxMChjKTtjKz1jKm87Yj1EeWdyYXBoLmxvZzEwKGIpO2Zvcih0PTA7dDxxLmxlbmd0aDt0Kyspe3FbdF1bMV09RHlncmFwaC5sb2cxMChxW3RdWzFdKX19ZWxzZXt2YXIgZjt2YXIgcD1jLWI7aWYocDw9TnVtYmVyLk1JTl9WQUxVRSl7Zj1jKm99ZWxzZXtmPXAqb31jKz1mO2ItPWZ9cmV0dXJue2RhdGE6cSx5TWluOmIseU1heDpjfX07YS5wcm90b3R5cGUucGxhY2Vab29tSGFuZGxlc189ZnVuY3Rpb24oKXt2YXIgaD10aGlzLmR5Z3JhcGhfLnhBeGlzRXh0cmVtZXMoKTt2YXIgYj10aGlzLmR5Z3JhcGhfLnhBeGlzUmFuZ2UoKTt2YXIgYz1oWzFdLWhbMF07dmFyIGo9TWF0aC5tYXgoMCwoYlswXS1oWzBdKS9jKTt2YXIgZj1NYXRoLm1heCgwLChoWzFdLWJbMV0pL2MpO3ZhciBpPXRoaXMuY2FudmFzUmVjdF8ueCt0aGlzLmNhbnZhc1JlY3RfLncqajt2YXIgZT10aGlzLmNhbnZhc1JlY3RfLngrdGhpcy5jYW52YXNSZWN0Xy53KigxLWYpO3ZhciBkPU1hdGgubWF4KHRoaXMuY2FudmFzUmVjdF8ueSx0aGlzLmNhbnZhc1JlY3RfLnkrKHRoaXMuY2FudmFzUmVjdF8uaC10aGlzLmxlZnRab29tSGFuZGxlXy5oZWlnaHQpLzIpO3ZhciBnPXRoaXMubGVmdFpvb21IYW5kbGVfLndpZHRoLzI7dGhpcy5sZWZ0Wm9vbUhhbmRsZV8uc3R5bGUubGVmdD0oaS1nKSsicHgiO3RoaXMubGVmdFpvb21IYW5kbGVfLnN0eWxlLnRvcD1kKyJweCI7dGhpcy5yaWdodFpvb21IYW5kbGVfLnN0eWxlLmxlZnQ9KGUtZykrInB4Ijt0aGlzLnJpZ2h0Wm9vbUhhbmRsZV8uc3R5bGUudG9wPXRoaXMubGVmdFpvb21IYW5kbGVfLnN0eWxlLnRvcDt0aGlzLmxlZnRab29tSGFuZGxlXy5zdHlsZS52aXNpYmlsaXR5PSJ2aXNpYmxlIjt0aGlzLnJpZ2h0Wm9vbUhhbmRsZV8uc3R5bGUudmlzaWJpbGl0eT0idmlzaWJsZSJ9O2EucHJvdG90eXBlLmRyYXdJbnRlcmFjdGl2ZUxheWVyXz1mdW5jdGlvbigpe3ZhciBjPXRoaXMuZmdjYW52YXNfY3R4XztjLmNsZWFyUmVjdCgwLDAsdGhpcy5jYW52YXNSZWN0Xy53LHRoaXMuY2FudmFzUmVjdF8uaCk7dmFyIGY9MTt2YXIgZT10aGlzLmNhbnZhc1JlY3RfLnctZjt2YXIgYj10aGlzLmNhbnZhc1JlY3RfLmgtZjt2YXIgaD10aGlzLmdldFpvb21IYW5kbGVTdGF0dXNfKCk7Yy5zdHJva2VTdHlsZT0iYmxhY2siO2lmKCFoLmlzWm9vbWVkKXtjLmJlZ2luUGF0aCgpO2MubW92ZVRvKGYsZik7Yy5saW5lVG8oZixiKTtjLmxpbmVUbyhlLGIpO2MubGluZVRvKGUsZik7Yy5zdHJva2UoKTtpZih0aGlzLmllUGFuT3ZlcmxheV8pe3RoaXMuaWVQYW5PdmVybGF5Xy5zdHlsZS5kaXNwbGF5PSJub25lIn19ZWxzZXt2YXIgZz1NYXRoLm1heChmLGgubGVmdEhhbmRsZVBvcy10aGlzLmNhbnZhc1JlY3RfLngpO3ZhciBkPU1hdGgubWluKGUsaC5yaWdodEhhbmRsZVBvcy10aGlzLmNhbnZhc1JlY3RfLngpO2MuZmlsbFN0eWxlPSJyZ2JhKDI0MCwgMjQwLCAyNDAsIDAuNikiO2MuZmlsbFJlY3QoMCwwLGcsdGhpcy5jYW52YXNSZWN0Xy5oKTtjLmZpbGxSZWN0KGQsMCx0aGlzLmNhbnZhc1JlY3RfLnctZCx0aGlzLmNhbnZhc1JlY3RfLmgpO2MuYmVnaW5QYXRoKCk7Yy5tb3ZlVG8oZixmKTtjLmxpbmVUbyhnLGYpO2MubGluZVRvKGcsYik7Yy5saW5lVG8oZCxiKTtjLmxpbmVUbyhkLGYpO2MubGluZVRvKGUsZik7Yy5zdHJva2UoKTtpZih0aGlzLmlzVXNpbmdFeGNhbnZhc18pe3RoaXMuaWVQYW5PdmVybGF5Xy5zdHlsZS53aWR0aD0oZC1nKSsicHgiO3RoaXMuaWVQYW5PdmVybGF5Xy5zdHlsZS5sZWZ0PWcrInB4Ijt0aGlzLmllUGFuT3ZlcmxheV8uc3R5bGUuaGVpZ2h0PWIrInB4Ijt0aGlzLmllUGFuT3ZlcmxheV8uc3R5bGUuZGlzcGxheT0iaW5saW5lIn19fTthLnByb3RvdHlwZS5nZXRab29tSGFuZGxlU3RhdHVzXz1mdW5jdGlvbigpe3ZhciBjPXRoaXMubGVmdFpvb21IYW5kbGVfLndpZHRoLzI7dmFyIGQ9cGFyc2VGbG9hdCh0aGlzLmxlZnRab29tSGFuZGxlXy5zdHlsZS5sZWZ0KStjO3ZhciBiPXBhcnNlRmxvYXQodGhpcy5yaWdodFpvb21IYW5kbGVfLnN0eWxlLmxlZnQpK2M7cmV0dXJue2xlZnRIYW5kbGVQb3M6ZCxyaWdodEhhbmRsZVBvczpiLGlzWm9vbWVkOihkLTE+dGhpcy5jYW52YXNSZWN0Xy54fHxiKzE8dGhpcy5jYW52YXNSZWN0Xy54K3RoaXMuY2FudmFzUmVjdF8udyl9fTtyZXR1cm4gYX0pKCk7RHlncmFwaC5QTFVHSU5TLnB1c2goRHlncmFwaC5QbHVnaW5zLkxlZ2VuZCxEeWdyYXBoLlBsdWdpbnMuQXhlcyxEeWdyYXBoLlBsdWdpbnMuUmFuZ2VTZWxlY3RvcixEeWdyYXBoLlBsdWdpbnMuQ2hhcnRMYWJlbHMsRHlncmFwaC5QbHVnaW5zLkFubm90YXRpb25zLER5Z3JhcGguUGx1Z2lucy5HcmlkKTs="></script>
<script src="data:application/x-javascript;base64,Ly8hIG1vbWVudC5qcwovLyEgdmVyc2lvbiA6IDIuOC40Ci8vISBhdXRob3JzIDogVGltIFdvb2QsIElza3JlbiBDaGVybmV2LCBNb21lbnQuanMgY29udHJpYnV0b3JzCi8vISBsaWNlbnNlIDogTUlUCi8vISBtb21lbnRqcy5jb20KCihmdW5jdGlvbiAodW5kZWZpbmVkKSB7CiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICAgICAgQ29uc3RhbnRzCiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgogICAgdmFyIG1vbWVudCwKICAgICAgICBWRVJTSU9OID0gJzIuOC40JywKICAgICAgICAvLyB0aGUgZ2xvYmFsLXNjb3BlIHRoaXMgaXMgTk9UIHRoZSBnbG9iYWwgb2JqZWN0IGluIE5vZGUuanMKICAgICAgICBnbG9iYWxTY29wZSA9IHR5cGVvZiBnbG9iYWwgIT09ICd1bmRlZmluZWQnID8gZ2xvYmFsIDogdGhpcywKICAgICAgICBvbGRHbG9iYWxNb21lbnQsCiAgICAgICAgcm91bmQgPSBNYXRoLnJvdW5kLAogICAgICAgIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSwKICAgICAgICBpLAoKICAgICAgICBZRUFSID0gMCwKICAgICAgICBNT05USCA9IDEsCiAgICAgICAgREFURSA9IDIsCiAgICAgICAgSE9VUiA9IDMsCiAgICAgICAgTUlOVVRFID0gNCwKICAgICAgICBTRUNPTkQgPSA1LAogICAgICAgIE1JTExJU0VDT05EID0gNiwKCiAgICAgICAgLy8gaW50ZXJuYWwgc3RvcmFnZSBmb3IgbG9jYWxlIGNvbmZpZyBmaWxlcwogICAgICAgIGxvY2FsZXMgPSB7fSwKCiAgICAgICAgLy8gZXh0cmEgbW9tZW50IGludGVybmFsIHByb3BlcnRpZXMgKHBsdWdpbnMgcmVnaXN0ZXIgcHJvcHMgaGVyZSkKICAgICAgICBtb21lbnRQcm9wZXJ0aWVzID0gW10sCgogICAgICAgIC8vIGNoZWNrIGZvciBub2RlSlMKICAgICAgICBoYXNNb2R1bGUgPSAodHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcgJiYgbW9kdWxlICYmIG1vZHVsZS5leHBvcnRzKSwKCiAgICAgICAgLy8gQVNQLk5FVCBqc29uIGRhdGUgZm9ybWF0IHJlZ2V4CiAgICAgICAgYXNwTmV0SnNvblJlZ2V4ID0gL15cLz9EYXRlXCgoXC0/XGQrKS9pLAogICAgICAgIGFzcE5ldFRpbWVTcGFuSnNvblJlZ2V4ID0gLyhcLSk/KD86KFxkKilcLik/KFxkKylcOihcZCspKD86XDooXGQrKVwuPyhcZHszfSk/KT8vLAoKICAgICAgICAvLyBmcm9tIGh0dHA6Ly9kb2NzLmNsb3N1cmUtbGlicmFyeS5nb29nbGVjb2RlLmNvbS9naXQvY2xvc3VyZV9nb29nX2RhdGVfZGF0ZS5qcy5zb3VyY2UuaHRtbAogICAgICAgIC8vIHNvbWV3aGF0IG1vcmUgaW4gbGluZSB3aXRoIDQuNC4zLjIgMjAwNCBzcGVjLCBidXQgYWxsb3dzIGRlY2ltYWwgYW55d2hlcmUKICAgICAgICBpc29EdXJhdGlvblJlZ2V4ID0gL14oLSk/UCg/Oig/OihbMC05LC5dKilZKT8oPzooWzAtOSwuXSopTSk/KD86KFswLTksLl0qKUQpPyg/OlQoPzooWzAtOSwuXSopSCk/KD86KFswLTksLl0qKU0pPyg/OihbMC05LC5dKilTKT8pP3woWzAtOSwuXSopVykkLywKCiAgICAgICAgLy8gZm9ybWF0IHRva2VucwogICAgICAgIGZvcm1hdHRpbmdUb2tlbnMgPSAvKFxbW15cW10qXF0pfChcXCk/KE1vfE1NP00/TT98RG98REREb3xERD9EP0Q/fGRkZD9kP3xkbz98d1tvfHddP3xXW298V10/fFF8WVlZWVlZfFlZWVlZfFlZWVl8WVl8Z2coZ2dnPyk/fEdHKEdHRz8pP3xlfEV8YXxBfGhoP3xISD98bW0/fHNzP3xTezEsNH18eHxYfHp6P3xaWj98LikvZywKICAgICAgICBsb2NhbEZvcm1hdHRpbmdUb2tlbnMgPSAvKFxbW15cW10qXF0pfChcXCk/KExUU3xMVHxMTD9MP0w/fGx7MSw0fSkvZywKCiAgICAgICAgLy8gcGFyc2luZyB0b2tlbiByZWdleGVzCiAgICAgICAgcGFyc2VUb2tlbk9uZU9yVHdvRGlnaXRzID0gL1xkXGQ/LywgLy8gMCAtIDk5CiAgICAgICAgcGFyc2VUb2tlbk9uZVRvVGhyZWVEaWdpdHMgPSAvXGR7MSwzfS8sIC8vIDAgLSA5OTkKICAgICAgICBwYXJzZVRva2VuT25lVG9Gb3VyRGlnaXRzID0gL1xkezEsNH0vLCAvLyAwIC0gOTk5OQogICAgICAgIHBhcnNlVG9rZW5PbmVUb1NpeERpZ2l0cyA9IC9bK1wtXT9cZHsxLDZ9LywgLy8gLTk5OSw5OTkgLSA5OTksOTk5CiAgICAgICAgcGFyc2VUb2tlbkRpZ2l0cyA9IC9cZCsvLCAvLyBub256ZXJvIG51bWJlciBvZiBkaWdpdHMKICAgICAgICBwYXJzZVRva2VuV29yZCA9IC9bMC05XSpbJ2Etelx1MDBBMC1cdTA1RkZcdTA3MDAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdK3xbXHUwNjAwLVx1MDZGRlwvXSsoXHMqP1tcdTA2MDAtXHUwNkZGXSspezEsMn0vaSwgLy8gYW55IHdvcmQgKG9yIHR3bykgY2hhcmFjdGVycyBvciBudW1iZXJzIGluY2x1ZGluZyB0d28vdGhyZWUgd29yZCBtb250aCBpbiBhcmFiaWMuCiAgICAgICAgcGFyc2VUb2tlblRpbWV6b25lID0gL1p8W1wrXC1dXGRcZDo/XGRcZC9naSwgLy8gKzAwOjAwIC0wMDowMCArMDAwMCAtMDAwMCBvciBaCiAgICAgICAgcGFyc2VUb2tlblQgPSAvVC9pLCAvLyBUIChJU08gc2VwYXJhdG9yKQogICAgICAgIHBhcnNlVG9rZW5PZmZzZXRNcyA9IC9bXCtcLV0/XGQrLywgLy8gMTIzNDU2Nzg5MDEyMwogICAgICAgIHBhcnNlVG9rZW5UaW1lc3RhbXBNcyA9IC9bXCtcLV0/XGQrKFwuXGR7MSwzfSk/LywgLy8gMTIzNDU2Nzg5IDEyMzQ1Njc4OS4xMjMKCiAgICAgICAgLy9zdHJpY3QgcGFyc2luZyByZWdleGVzCiAgICAgICAgcGFyc2VUb2tlbk9uZURpZ2l0ID0gL1xkLywgLy8gMCAtIDkKICAgICAgICBwYXJzZVRva2VuVHdvRGlnaXRzID0gL1xkXGQvLCAvLyAwMCAtIDk5CiAgICAgICAgcGFyc2VUb2tlblRocmVlRGlnaXRzID0gL1xkezN9LywgLy8gMDAwIC0gOTk5CiAgICAgICAgcGFyc2VUb2tlbkZvdXJEaWdpdHMgPSAvXGR7NH0vLCAvLyAwMDAwIC0gOTk5OQogICAgICAgIHBhcnNlVG9rZW5TaXhEaWdpdHMgPSAvWystXT9cZHs2fS8sIC8vIC05OTksOTk5IC0gOTk5LDk5OQogICAgICAgIHBhcnNlVG9rZW5TaWduZWROdW1iZXIgPSAvWystXT9cZCsvLCAvLyAtaW5mIC0gaW5mCgogICAgICAgIC8vIGlzbyA4NjAxIHJlZ2V4CiAgICAgICAgLy8gMDAwMC0wMC0wMCAwMDAwLVcwMCBvciAwMDAwLVcwMC0wICsgVCArIDAwIG9yIDAwOjAwIG9yIDAwOjAwOjAwIG9yIDAwOjAwOjAwLjAwMCArICswMDowMCBvciArMDAwMCBvciArMDApCiAgICAgICAgaXNvUmVnZXggPSAvXlxzKig/OlsrLV1cZHs2fXxcZHs0fSktKD86KFxkXGQtXGRcZCl8KFdcZFxkJCl8KFdcZFxkLVxkKXwoXGRcZFxkKSkoKFR8ICkoXGRcZCg6XGRcZCg6XGRcZChcLlxkKyk/KT8pPyk/KFtcK1wtXVxkXGQoPzo6P1xkXGQpP3xccypaKT8pPyQvLAoKICAgICAgICBpc29Gb3JtYXQgPSAnWVlZWS1NTS1ERFRISDptbTpzc1onLAoKICAgICAgICBpc29EYXRlcyA9IFsKICAgICAgICAgICAgWydZWVlZWVktTU0tREQnLCAvWystXVxkezZ9LVxkezJ9LVxkezJ9L10sCiAgICAgICAgICAgIFsnWVlZWS1NTS1ERCcsIC9cZHs0fS1cZHsyfS1cZHsyfS9dLAogICAgICAgICAgICBbJ0dHR0ctW1ddV1ctRScsIC9cZHs0fS1XXGR7Mn0tXGQvXSwKICAgICAgICAgICAgWydHR0dHLVtXXVdXJywgL1xkezR9LVdcZHsyfS9dLAogICAgICAgICAgICBbJ1lZWVktREREJywgL1xkezR9LVxkezN9L10KICAgICAgICBdLAoKICAgICAgICAvLyBpc28gdGltZSBmb3JtYXRzIGFuZCByZWdleGVzCiAgICAgICAgaXNvVGltZXMgPSBbCiAgICAgICAgICAgIFsnSEg6bW06c3MuU1NTUycsIC8oVHwgKVxkXGQ6XGRcZDpcZFxkXC5cZCsvXSwKICAgICAgICAgICAgWydISDptbTpzcycsIC8oVHwgKVxkXGQ6XGRcZDpcZFxkL10sCiAgICAgICAgICAgIFsnSEg6bW0nLCAvKFR8IClcZFxkOlxkXGQvXSwKICAgICAgICAgICAgWydISCcsIC8oVHwgKVxkXGQvXQogICAgICAgIF0sCgogICAgICAgIC8vIHRpbWV6b25lIGNodW5rZXIgJysxMDowMCcgPiBbJzEwJywgJzAwJ10gb3IgJy0xNTMwJyA+IFsnLTE1JywgJzMwJ10KICAgICAgICBwYXJzZVRpbWV6b25lQ2h1bmtlciA9IC8oW1wrXC1dfFxkXGQpL2dpLAoKICAgICAgICAvLyBnZXR0ZXIgYW5kIHNldHRlciBuYW1lcwogICAgICAgIHByb3h5R2V0dGVyc0FuZFNldHRlcnMgPSAnRGF0ZXxIb3Vyc3xNaW51dGVzfFNlY29uZHN8TWlsbGlzZWNvbmRzJy5zcGxpdCgnfCcpLAogICAgICAgIHVuaXRNaWxsaXNlY29uZEZhY3RvcnMgPSB7CiAgICAgICAgICAgICdNaWxsaXNlY29uZHMnIDogMSwKICAgICAgICAgICAgJ1NlY29uZHMnIDogMWUzLAogICAgICAgICAgICAnTWludXRlcycgOiA2ZTQsCiAgICAgICAgICAgICdIb3VycycgOiAzNmU1LAogICAgICAgICAgICAnRGF5cycgOiA4NjRlNSwKICAgICAgICAgICAgJ01vbnRocycgOiAyNTkyZTYsCiAgICAgICAgICAgICdZZWFycycgOiAzMTUzNmU2CiAgICAgICAgfSwKCiAgICAgICAgdW5pdEFsaWFzZXMgPSB7CiAgICAgICAgICAgIG1zIDogJ21pbGxpc2Vjb25kJywKICAgICAgICAgICAgcyA6ICdzZWNvbmQnLAogICAgICAgICAgICBtIDogJ21pbnV0ZScsCiAgICAgICAgICAgIGggOiAnaG91cicsCiAgICAgICAgICAgIGQgOiAnZGF5JywKICAgICAgICAgICAgRCA6ICdkYXRlJywKICAgICAgICAgICAgdyA6ICd3ZWVrJywKICAgICAgICAgICAgVyA6ICdpc29XZWVrJywKICAgICAgICAgICAgTSA6ICdtb250aCcsCiAgICAgICAgICAgIFEgOiAncXVhcnRlcicsCiAgICAgICAgICAgIHkgOiAneWVhcicsCiAgICAgICAgICAgIERERCA6ICdkYXlPZlllYXInLAogICAgICAgICAgICBlIDogJ3dlZWtkYXknLAogICAgICAgICAgICBFIDogJ2lzb1dlZWtkYXknLAogICAgICAgICAgICBnZzogJ3dlZWtZZWFyJywKICAgICAgICAgICAgR0c6ICdpc29XZWVrWWVhcicKICAgICAgICB9LAoKICAgICAgICBjYW1lbEZ1bmN0aW9ucyA9IHsKICAgICAgICAgICAgZGF5b2Z5ZWFyIDogJ2RheU9mWWVhcicsCiAgICAgICAgICAgIGlzb3dlZWtkYXkgOiAnaXNvV2Vla2RheScsCiAgICAgICAgICAgIGlzb3dlZWsgOiAnaXNvV2VlaycsCiAgICAgICAgICAgIHdlZWt5ZWFyIDogJ3dlZWtZZWFyJywKICAgICAgICAgICAgaXNvd2Vla3llYXIgOiAnaXNvV2Vla1llYXInCiAgICAgICAgfSwKCiAgICAgICAgLy8gZm9ybWF0IGZ1bmN0aW9uIHN0cmluZ3MKICAgICAgICBmb3JtYXRGdW5jdGlvbnMgPSB7fSwKCiAgICAgICAgLy8gZGVmYXVsdCByZWxhdGl2ZSB0aW1lIHRocmVzaG9sZHMKICAgICAgICByZWxhdGl2ZVRpbWVUaHJlc2hvbGRzID0gewogICAgICAgICAgICBzOiA0NSwgIC8vIHNlY29uZHMgdG8gbWludXRlCiAgICAgICAgICAgIG06IDQ1LCAgLy8gbWludXRlcyB0byBob3VyCiAgICAgICAgICAgIGg6IDIyLCAgLy8gaG91cnMgdG8gZGF5CiAgICAgICAgICAgIGQ6IDI2LCAgLy8gZGF5cyB0byBtb250aAogICAgICAgICAgICBNOiAxMSAgIC8vIG1vbnRocyB0byB5ZWFyCiAgICAgICAgfSwKCiAgICAgICAgLy8gdG9rZW5zIHRvIG9yZGluYWxpemUgYW5kIHBhZAogICAgICAgIG9yZGluYWxpemVUb2tlbnMgPSAnREREIHcgVyBNIEQgZCcuc3BsaXQoJyAnKSwKICAgICAgICBwYWRkZWRUb2tlbnMgPSAnTSBEIEggaCBtIHMgdyBXJy5zcGxpdCgnICcpLAoKICAgICAgICBmb3JtYXRUb2tlbkZ1bmN0aW9ucyA9IHsKICAgICAgICAgICAgTSAgICA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm1vbnRoKCkgKyAxOwogICAgICAgICAgICB9LAogICAgICAgICAgICBNTU0gIDogZnVuY3Rpb24gKGZvcm1hdCkgewogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLm1vbnRoc1Nob3J0KHRoaXMsIGZvcm1hdCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIE1NTU0gOiBmdW5jdGlvbiAoZm9ybWF0KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkubW9udGhzKHRoaXMsIGZvcm1hdCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIEQgICAgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRlKCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIERERCAgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXlPZlllYXIoKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgZCAgICA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRheSgpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBkZCAgIDogZnVuY3Rpb24gKGZvcm1hdCkgewogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLndlZWtkYXlzTWluKHRoaXMsIGZvcm1hdCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGRkZCAgOiBmdW5jdGlvbiAoZm9ybWF0KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkud2Vla2RheXNTaG9ydCh0aGlzLCBmb3JtYXQpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBkZGRkIDogZnVuY3Rpb24gKGZvcm1hdCkgewogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLndlZWtkYXlzKHRoaXMsIGZvcm1hdCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHcgICAgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy53ZWVrKCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFcgICAgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pc29XZWVrKCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFlZICAgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbGVmdFplcm9GaWxsKHRoaXMueWVhcigpICUgMTAwLCAyKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgWVlZWSA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiBsZWZ0WmVyb0ZpbGwodGhpcy55ZWFyKCksIDQpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBZWVlZWSA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiBsZWZ0WmVyb0ZpbGwodGhpcy55ZWFyKCksIDUpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBZWVlZWVkgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgeSA9IHRoaXMueWVhcigpLCBzaWduID0geSA+PSAwID8gJysnIDogJy0nOwogICAgICAgICAgICAgICAgcmV0dXJuIHNpZ24gKyBsZWZ0WmVyb0ZpbGwoTWF0aC5hYnMoeSksIDYpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBnZyAgIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIGxlZnRaZXJvRmlsbCh0aGlzLndlZWtZZWFyKCkgJSAxMDAsIDIpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBnZ2dnIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIGxlZnRaZXJvRmlsbCh0aGlzLndlZWtZZWFyKCksIDQpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBnZ2dnZyA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiBsZWZ0WmVyb0ZpbGwodGhpcy53ZWVrWWVhcigpLCA1KTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgR0cgICA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiBsZWZ0WmVyb0ZpbGwodGhpcy5pc29XZWVrWWVhcigpICUgMTAwLCAyKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgR0dHRyA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiBsZWZ0WmVyb0ZpbGwodGhpcy5pc29XZWVrWWVhcigpLCA0KTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgR0dHR0cgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbGVmdFplcm9GaWxsKHRoaXMuaXNvV2Vla1llYXIoKSwgNSk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGUgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy53ZWVrZGF5KCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIEUgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pc29XZWVrZGF5KCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGEgICAgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkubWVyaWRpZW0odGhpcy5ob3VycygpLCB0aGlzLm1pbnV0ZXMoKSwgdHJ1ZSk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIEEgICAgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkubWVyaWRpZW0odGhpcy5ob3VycygpLCB0aGlzLm1pbnV0ZXMoKSwgZmFsc2UpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBIICAgIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaG91cnMoKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgaCAgICA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmhvdXJzKCkgJSAxMiB8fCAxMjsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgbSAgICA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm1pbnV0ZXMoKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgcyAgICA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNlY29uZHMoKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgUyAgICA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiB0b0ludCh0aGlzLm1pbGxpc2Vjb25kcygpIC8gMTAwKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgU1MgICA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiBsZWZ0WmVyb0ZpbGwodG9JbnQodGhpcy5taWxsaXNlY29uZHMoKSAvIDEwKSwgMik7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFNTUyAgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbGVmdFplcm9GaWxsKHRoaXMubWlsbGlzZWNvbmRzKCksIDMpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBTU1NTIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIGxlZnRaZXJvRmlsbCh0aGlzLm1pbGxpc2Vjb25kcygpLCAzKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgWiAgICA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHZhciBhID0gLXRoaXMuem9uZSgpLAogICAgICAgICAgICAgICAgICAgIGIgPSAnKyc7CiAgICAgICAgICAgICAgICBpZiAoYSA8IDApIHsKICAgICAgICAgICAgICAgICAgICBhID0gLWE7CiAgICAgICAgICAgICAgICAgICAgYiA9ICctJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiBiICsgbGVmdFplcm9GaWxsKHRvSW50KGEgLyA2MCksIDIpICsgJzonICsgbGVmdFplcm9GaWxsKHRvSW50KGEpICUgNjAsIDIpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBaWiAgIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdmFyIGEgPSAtdGhpcy56b25lKCksCiAgICAgICAgICAgICAgICAgICAgYiA9ICcrJzsKICAgICAgICAgICAgICAgIGlmIChhIDwgMCkgewogICAgICAgICAgICAgICAgICAgIGEgPSAtYTsKICAgICAgICAgICAgICAgICAgICBiID0gJy0nOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIGIgKyBsZWZ0WmVyb0ZpbGwodG9JbnQoYSAvIDYwKSwgMikgKyBsZWZ0WmVyb0ZpbGwodG9JbnQoYSkgJSA2MCwgMik7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHogOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy56b25lQWJicigpOwogICAgICAgICAgICB9LAogICAgICAgICAgICB6eiA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnpvbmVOYW1lKCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHggICAgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy52YWx1ZU9mKCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFggICAgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy51bml4KCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFEgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5xdWFydGVyKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICBkZXByZWNhdGlvbnMgPSB7fSwKCiAgICAgICAgbGlzdHMgPSBbJ21vbnRocycsICdtb250aHNTaG9ydCcsICd3ZWVrZGF5cycsICd3ZWVrZGF5c1Nob3J0JywgJ3dlZWtkYXlzTWluJ107CgogICAgLy8gUGljayB0aGUgZmlyc3QgZGVmaW5lZCBvZiB0d28gb3IgdGhyZWUgYXJndW1lbnRzLiBkZmwgY29tZXMgZnJvbQogICAgLy8gZGVmYXVsdC4KICAgIGZ1bmN0aW9uIGRmbChhLCBiLCBjKSB7CiAgICAgICAgc3dpdGNoIChhcmd1bWVudHMubGVuZ3RoKSB7CiAgICAgICAgICAgIGNhc2UgMjogcmV0dXJuIGEgIT0gbnVsbCA/IGEgOiBiOwogICAgICAgICAgICBjYXNlIDM6IHJldHVybiBhICE9IG51bGwgPyBhIDogYiAhPSBudWxsID8gYiA6IGM7CiAgICAgICAgICAgIGRlZmF1bHQ6IHRocm93IG5ldyBFcnJvcignSW1wbGVtZW50IG1lJyk7CiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGhhc093blByb3AoYSwgYikgewogICAgICAgIHJldHVybiBoYXNPd25Qcm9wZXJ0eS5jYWxsKGEsIGIpOwogICAgfQoKICAgIGZ1bmN0aW9uIGRlZmF1bHRQYXJzaW5nRmxhZ3MoKSB7CiAgICAgICAgLy8gV2UgbmVlZCB0byBkZWVwIGNsb25lIHRoaXMgb2JqZWN0LCBhbmQgZXM1IHN0YW5kYXJkIGlzIG5vdCB2ZXJ5CiAgICAgICAgLy8gaGVscGZ1bC4KICAgICAgICByZXR1cm4gewogICAgICAgICAgICBlbXB0eSA6IGZhbHNlLAogICAgICAgICAgICB1bnVzZWRUb2tlbnMgOiBbXSwKICAgICAgICAgICAgdW51c2VkSW5wdXQgOiBbXSwKICAgICAgICAgICAgb3ZlcmZsb3cgOiAtMiwKICAgICAgICAgICAgY2hhcnNMZWZ0T3ZlciA6IDAsCiAgICAgICAgICAgIG51bGxJbnB1dCA6IGZhbHNlLAogICAgICAgICAgICBpbnZhbGlkTW9udGggOiBudWxsLAogICAgICAgICAgICBpbnZhbGlkRm9ybWF0IDogZmFsc2UsCiAgICAgICAgICAgIHVzZXJJbnZhbGlkYXRlZCA6IGZhbHNlLAogICAgICAgICAgICBpc286IGZhbHNlCiAgICAgICAgfTsKICAgIH0KCiAgICBmdW5jdGlvbiBwcmludE1zZyhtc2cpIHsKICAgICAgICBpZiAobW9tZW50LnN1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5ncyA9PT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgIHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJyAmJiBjb25zb2xlLndhcm4pIHsKICAgICAgICAgICAgY29uc29sZS53YXJuKCdEZXByZWNhdGlvbiB3YXJuaW5nOiAnICsgbXNnKTsKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gZGVwcmVjYXRlKG1zZywgZm4pIHsKICAgICAgICB2YXIgZmlyc3RUaW1lID0gdHJ1ZTsKICAgICAgICByZXR1cm4gZXh0ZW5kKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgaWYgKGZpcnN0VGltZSkgewogICAgICAgICAgICAgICAgcHJpbnRNc2cobXNnKTsKICAgICAgICAgICAgICAgIGZpcnN0VGltZSA9IGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBmbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICAgIH0sIGZuKTsKICAgIH0KCiAgICBmdW5jdGlvbiBkZXByZWNhdGVTaW1wbGUobmFtZSwgbXNnKSB7CiAgICAgICAgaWYgKCFkZXByZWNhdGlvbnNbbmFtZV0pIHsKICAgICAgICAgICAgcHJpbnRNc2cobXNnKTsKICAgICAgICAgICAgZGVwcmVjYXRpb25zW25hbWVdID0gdHJ1ZTsKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gcGFkVG9rZW4oZnVuYywgY291bnQpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb24gKGEpIHsKICAgICAgICAgICAgcmV0dXJuIGxlZnRaZXJvRmlsbChmdW5jLmNhbGwodGhpcywgYSksIGNvdW50KTsKICAgICAgICB9OwogICAgfQogICAgZnVuY3Rpb24gb3JkaW5hbGl6ZVRva2VuKGZ1bmMsIHBlcmlvZCkgewogICAgICAgIHJldHVybiBmdW5jdGlvbiAoYSkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkub3JkaW5hbChmdW5jLmNhbGwodGhpcywgYSksIHBlcmlvZCk7CiAgICAgICAgfTsKICAgIH0KCiAgICB3aGlsZSAob3JkaW5hbGl6ZVRva2Vucy5sZW5ndGgpIHsKICAgICAgICBpID0gb3JkaW5hbGl6ZVRva2Vucy5wb3AoKTsKICAgICAgICBmb3JtYXRUb2tlbkZ1bmN0aW9uc1tpICsgJ28nXSA9IG9yZGluYWxpemVUb2tlbihmb3JtYXRUb2tlbkZ1bmN0aW9uc1tpXSwgaSk7CiAgICB9CiAgICB3aGlsZSAocGFkZGVkVG9rZW5zLmxlbmd0aCkgewogICAgICAgIGkgPSBwYWRkZWRUb2tlbnMucG9wKCk7CiAgICAgICAgZm9ybWF0VG9rZW5GdW5jdGlvbnNbaSArIGldID0gcGFkVG9rZW4oZm9ybWF0VG9rZW5GdW5jdGlvbnNbaV0sIDIpOwogICAgfQogICAgZm9ybWF0VG9rZW5GdW5jdGlvbnMuRERERCA9IHBhZFRva2VuKGZvcm1hdFRva2VuRnVuY3Rpb25zLkRERCwgMyk7CgoKICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgICAgICBDb25zdHJ1Y3RvcnMKICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCiAgICBmdW5jdGlvbiBMb2NhbGUoKSB7CiAgICB9CgogICAgLy8gTW9tZW50IHByb3RvdHlwZSBvYmplY3QKICAgIGZ1bmN0aW9uIE1vbWVudChjb25maWcsIHNraXBPdmVyZmxvdykgewogICAgICAgIGlmIChza2lwT3ZlcmZsb3cgIT09IGZhbHNlKSB7CiAgICAgICAgICAgIGNoZWNrT3ZlcmZsb3coY29uZmlnKTsKICAgICAgICB9CiAgICAgICAgY29weUNvbmZpZyh0aGlzLCBjb25maWcpOwogICAgICAgIHRoaXMuX2QgPSBuZXcgRGF0ZSgrY29uZmlnLl9kKTsKICAgIH0KCiAgICAvLyBEdXJhdGlvbiBDb25zdHJ1Y3RvcgogICAgZnVuY3Rpb24gRHVyYXRpb24oZHVyYXRpb24pIHsKICAgICAgICB2YXIgbm9ybWFsaXplZElucHV0ID0gbm9ybWFsaXplT2JqZWN0VW5pdHMoZHVyYXRpb24pLAogICAgICAgICAgICB5ZWFycyA9IG5vcm1hbGl6ZWRJbnB1dC55ZWFyIHx8IDAsCiAgICAgICAgICAgIHF1YXJ0ZXJzID0gbm9ybWFsaXplZElucHV0LnF1YXJ0ZXIgfHwgMCwKICAgICAgICAgICAgbW9udGhzID0gbm9ybWFsaXplZElucHV0Lm1vbnRoIHx8IDAsCiAgICAgICAgICAgIHdlZWtzID0gbm9ybWFsaXplZElucHV0LndlZWsgfHwgMCwKICAgICAgICAgICAgZGF5cyA9IG5vcm1hbGl6ZWRJbnB1dC5kYXkgfHwgMCwKICAgICAgICAgICAgaG91cnMgPSBub3JtYWxpemVkSW5wdXQuaG91ciB8fCAwLAogICAgICAgICAgICBtaW51dGVzID0gbm9ybWFsaXplZElucHV0Lm1pbnV0ZSB8fCAwLAogICAgICAgICAgICBzZWNvbmRzID0gbm9ybWFsaXplZElucHV0LnNlY29uZCB8fCAwLAogICAgICAgICAgICBtaWxsaXNlY29uZHMgPSBub3JtYWxpemVkSW5wdXQubWlsbGlzZWNvbmQgfHwgMDsKCiAgICAgICAgLy8gcmVwcmVzZW50YXRpb24gZm9yIGRhdGVBZGRSZW1vdmUKICAgICAgICB0aGlzLl9taWxsaXNlY29uZHMgPSArbWlsbGlzZWNvbmRzICsKICAgICAgICAgICAgc2Vjb25kcyAqIDFlMyArIC8vIDEwMDAKICAgICAgICAgICAgbWludXRlcyAqIDZlNCArIC8vIDEwMDAgKiA2MAogICAgICAgICAgICBob3VycyAqIDM2ZTU7IC8vIDEwMDAgKiA2MCAqIDYwCiAgICAgICAgLy8gQmVjYXVzZSBvZiBkYXRlQWRkUmVtb3ZlIHRyZWF0cyAyNCBob3VycyBhcyBkaWZmZXJlbnQgZnJvbSBhCiAgICAgICAgLy8gZGF5IHdoZW4gd29ya2luZyBhcm91bmQgRFNULCB3ZSBuZWVkIHRvIHN0b3JlIHRoZW0gc2VwYXJhdGVseQogICAgICAgIHRoaXMuX2RheXMgPSArZGF5cyArCiAgICAgICAgICAgIHdlZWtzICogNzsKICAgICAgICAvLyBJdCBpcyBpbXBvc3NpYmxlIHRyYW5zbGF0ZSBtb250aHMgaW50byBkYXlzIHdpdGhvdXQga25vd2luZwogICAgICAgIC8vIHdoaWNoIG1vbnRocyB5b3UgYXJlIGFyZSB0YWxraW5nIGFib3V0LCBzbyB3ZSBoYXZlIHRvIHN0b3JlCiAgICAgICAgLy8gaXQgc2VwYXJhdGVseS4KICAgICAgICB0aGlzLl9tb250aHMgPSArbW9udGhzICsKICAgICAgICAgICAgcXVhcnRlcnMgKiAzICsKICAgICAgICAgICAgeWVhcnMgKiAxMjsKCiAgICAgICAgdGhpcy5fZGF0YSA9IHt9OwoKICAgICAgICB0aGlzLl9sb2NhbGUgPSBtb21lbnQubG9jYWxlRGF0YSgpOwoKICAgICAgICB0aGlzLl9idWJibGUoKTsKICAgIH0KCiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICAgICAgSGVscGVycwogICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKCiAgICBmdW5jdGlvbiBleHRlbmQoYSwgYikgewogICAgICAgIGZvciAodmFyIGkgaW4gYikgewogICAgICAgICAgICBpZiAoaGFzT3duUHJvcChiLCBpKSkgewogICAgICAgICAgICAgICAgYVtpXSA9IGJbaV07CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmIChoYXNPd25Qcm9wKGIsICd0b1N0cmluZycpKSB7CiAgICAgICAgICAgIGEudG9TdHJpbmcgPSBiLnRvU3RyaW5nOwogICAgICAgIH0KCiAgICAgICAgaWYgKGhhc093blByb3AoYiwgJ3ZhbHVlT2YnKSkgewogICAgICAgICAgICBhLnZhbHVlT2YgPSBiLnZhbHVlT2Y7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gYTsKICAgIH0KCiAgICBmdW5jdGlvbiBjb3B5Q29uZmlnKHRvLCBmcm9tKSB7CiAgICAgICAgdmFyIGksIHByb3AsIHZhbDsKCiAgICAgICAgaWYgKHR5cGVvZiBmcm9tLl9pc0FNb21lbnRPYmplY3QgIT09ICd1bmRlZmluZWQnKSB7CiAgICAgICAgICAgIHRvLl9pc0FNb21lbnRPYmplY3QgPSBmcm9tLl9pc0FNb21lbnRPYmplY3Q7CiAgICAgICAgfQogICAgICAgIGlmICh0eXBlb2YgZnJvbS5faSAhPT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICAgICAgdG8uX2kgPSBmcm9tLl9pOwogICAgICAgIH0KICAgICAgICBpZiAodHlwZW9mIGZyb20uX2YgIT09ICd1bmRlZmluZWQnKSB7CiAgICAgICAgICAgIHRvLl9mID0gZnJvbS5fZjsKICAgICAgICB9CiAgICAgICAgaWYgKHR5cGVvZiBmcm9tLl9sICE9PSAndW5kZWZpbmVkJykgewogICAgICAgICAgICB0by5fbCA9IGZyb20uX2w7CiAgICAgICAgfQogICAgICAgIGlmICh0eXBlb2YgZnJvbS5fc3RyaWN0ICE9PSAndW5kZWZpbmVkJykgewogICAgICAgICAgICB0by5fc3RyaWN0ID0gZnJvbS5fc3RyaWN0OwogICAgICAgIH0KICAgICAgICBpZiAodHlwZW9mIGZyb20uX3R6bSAhPT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICAgICAgdG8uX3R6bSA9IGZyb20uX3R6bTsKICAgICAgICB9CiAgICAgICAgaWYgKHR5cGVvZiBmcm9tLl9pc1VUQyAhPT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICAgICAgdG8uX2lzVVRDID0gZnJvbS5faXNVVEM7CiAgICAgICAgfQogICAgICAgIGlmICh0eXBlb2YgZnJvbS5fb2Zmc2V0ICE9PSAndW5kZWZpbmVkJykgewogICAgICAgICAgICB0by5fb2Zmc2V0ID0gZnJvbS5fb2Zmc2V0OwogICAgICAgIH0KICAgICAgICBpZiAodHlwZW9mIGZyb20uX3BmICE9PSAndW5kZWZpbmVkJykgewogICAgICAgICAgICB0by5fcGYgPSBmcm9tLl9wZjsKICAgICAgICB9CiAgICAgICAgaWYgKHR5cGVvZiBmcm9tLl9sb2NhbGUgIT09ICd1bmRlZmluZWQnKSB7CiAgICAgICAgICAgIHRvLl9sb2NhbGUgPSBmcm9tLl9sb2NhbGU7CiAgICAgICAgfQoKICAgICAgICBpZiAobW9tZW50UHJvcGVydGllcy5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgIGZvciAoaSBpbiBtb21lbnRQcm9wZXJ0aWVzKSB7CiAgICAgICAgICAgICAgICBwcm9wID0gbW9tZW50UHJvcGVydGllc1tpXTsKICAgICAgICAgICAgICAgIHZhbCA9IGZyb21bcHJvcF07CiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbCAhPT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICAgICAgICAgICAgICB0b1twcm9wXSA9IHZhbDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHRvOwogICAgfQoKICAgIGZ1bmN0aW9uIGFic1JvdW5kKG51bWJlcikgewogICAgICAgIGlmIChudW1iZXIgPCAwKSB7CiAgICAgICAgICAgIHJldHVybiBNYXRoLmNlaWwobnVtYmVyKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihudW1iZXIpOwogICAgICAgIH0KICAgIH0KCiAgICAvLyBsZWZ0IHplcm8gZmlsbCBhIG51bWJlcgogICAgLy8gc2VlIGh0dHA6Ly9qc3BlcmYuY29tL2xlZnQtemVyby1maWxsaW5nIGZvciBwZXJmb3JtYW5jZSBjb21wYXJpc29uCiAgICBmdW5jdGlvbiBsZWZ0WmVyb0ZpbGwobnVtYmVyLCB0YXJnZXRMZW5ndGgsIGZvcmNlU2lnbikgewogICAgICAgIHZhciBvdXRwdXQgPSAnJyArIE1hdGguYWJzKG51bWJlciksCiAgICAgICAgICAgIHNpZ24gPSBudW1iZXIgPj0gMDsKCiAgICAgICAgd2hpbGUgKG91dHB1dC5sZW5ndGggPCB0YXJnZXRMZW5ndGgpIHsKICAgICAgICAgICAgb3V0cHV0ID0gJzAnICsgb3V0cHV0OwogICAgICAgIH0KICAgICAgICByZXR1cm4gKHNpZ24gPyAoZm9yY2VTaWduID8gJysnIDogJycpIDogJy0nKSArIG91dHB1dDsKICAgIH0KCiAgICBmdW5jdGlvbiBwb3NpdGl2ZU1vbWVudHNEaWZmZXJlbmNlKGJhc2UsIG90aGVyKSB7CiAgICAgICAgdmFyIHJlcyA9IHttaWxsaXNlY29uZHM6IDAsIG1vbnRoczogMH07CgogICAgICAgIHJlcy5tb250aHMgPSBvdGhlci5tb250aCgpIC0gYmFzZS5tb250aCgpICsKICAgICAgICAgICAgKG90aGVyLnllYXIoKSAtIGJhc2UueWVhcigpKSAqIDEyOwogICAgICAgIGlmIChiYXNlLmNsb25lKCkuYWRkKHJlcy5tb250aHMsICdNJykuaXNBZnRlcihvdGhlcikpIHsKICAgICAgICAgICAgLS1yZXMubW9udGhzOwogICAgICAgIH0KCiAgICAgICAgcmVzLm1pbGxpc2Vjb25kcyA9ICtvdGhlciAtICsoYmFzZS5jbG9uZSgpLmFkZChyZXMubW9udGhzLCAnTScpKTsKCiAgICAgICAgcmV0dXJuIHJlczsKICAgIH0KCiAgICBmdW5jdGlvbiBtb21lbnRzRGlmZmVyZW5jZShiYXNlLCBvdGhlcikgewogICAgICAgIHZhciByZXM7CiAgICAgICAgb3RoZXIgPSBtYWtlQXMob3RoZXIsIGJhc2UpOwogICAgICAgIGlmIChiYXNlLmlzQmVmb3JlKG90aGVyKSkgewogICAgICAgICAgICByZXMgPSBwb3NpdGl2ZU1vbWVudHNEaWZmZXJlbmNlKGJhc2UsIG90aGVyKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXMgPSBwb3NpdGl2ZU1vbWVudHNEaWZmZXJlbmNlKG90aGVyLCBiYXNlKTsKICAgICAgICAgICAgcmVzLm1pbGxpc2Vjb25kcyA9IC1yZXMubWlsbGlzZWNvbmRzOwogICAgICAgICAgICByZXMubW9udGhzID0gLXJlcy5tb250aHM7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gcmVzOwogICAgfQoKICAgIC8vIFRPRE86IHJlbW92ZSAnbmFtZScgYXJnIGFmdGVyIGRlcHJlY2F0aW9uIGlzIHJlbW92ZWQKICAgIGZ1bmN0aW9uIGNyZWF0ZUFkZGVyKGRpcmVjdGlvbiwgbmFtZSkgewogICAgICAgIHJldHVybiBmdW5jdGlvbiAodmFsLCBwZXJpb2QpIHsKICAgICAgICAgICAgdmFyIGR1ciwgdG1wOwogICAgICAgICAgICAvL2ludmVydCB0aGUgYXJndW1lbnRzLCBidXQgY29tcGxhaW4gYWJvdXQgaXQKICAgICAgICAgICAgaWYgKHBlcmlvZCAhPT0gbnVsbCAmJiAhaXNOYU4oK3BlcmlvZCkpIHsKICAgICAgICAgICAgICAgIGRlcHJlY2F0ZVNpbXBsZShuYW1lLCAnbW9tZW50KCkuJyArIG5hbWUgICsgJyhwZXJpb2QsIG51bWJlcikgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBtb21lbnQoKS4nICsgbmFtZSArICcobnVtYmVyLCBwZXJpb2QpLicpOwogICAgICAgICAgICAgICAgdG1wID0gdmFsOyB2YWwgPSBwZXJpb2Q7IHBlcmlvZCA9IHRtcDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdmFsID0gdHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgPyArdmFsIDogdmFsOwogICAgICAgICAgICBkdXIgPSBtb21lbnQuZHVyYXRpb24odmFsLCBwZXJpb2QpOwogICAgICAgICAgICBhZGRPclN1YnRyYWN0RHVyYXRpb25Gcm9tTW9tZW50KHRoaXMsIGR1ciwgZGlyZWN0aW9uKTsKICAgICAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgICAgfTsKICAgIH0KCiAgICBmdW5jdGlvbiBhZGRPclN1YnRyYWN0RHVyYXRpb25Gcm9tTW9tZW50KG1vbSwgZHVyYXRpb24sIGlzQWRkaW5nLCB1cGRhdGVPZmZzZXQpIHsKICAgICAgICB2YXIgbWlsbGlzZWNvbmRzID0gZHVyYXRpb24uX21pbGxpc2Vjb25kcywKICAgICAgICAgICAgZGF5cyA9IGR1cmF0aW9uLl9kYXlzLAogICAgICAgICAgICBtb250aHMgPSBkdXJhdGlvbi5fbW9udGhzOwogICAgICAgIHVwZGF0ZU9mZnNldCA9IHVwZGF0ZU9mZnNldCA9PSBudWxsID8gdHJ1ZSA6IHVwZGF0ZU9mZnNldDsKCiAgICAgICAgaWYgKG1pbGxpc2Vjb25kcykgewogICAgICAgICAgICBtb20uX2Quc2V0VGltZSgrbW9tLl9kICsgbWlsbGlzZWNvbmRzICogaXNBZGRpbmcpOwogICAgICAgIH0KICAgICAgICBpZiAoZGF5cykgewogICAgICAgICAgICByYXdTZXR0ZXIobW9tLCAnRGF0ZScsIHJhd0dldHRlcihtb20sICdEYXRlJykgKyBkYXlzICogaXNBZGRpbmcpOwogICAgICAgIH0KICAgICAgICBpZiAobW9udGhzKSB7CiAgICAgICAgICAgIHJhd01vbnRoU2V0dGVyKG1vbSwgcmF3R2V0dGVyKG1vbSwgJ01vbnRoJykgKyBtb250aHMgKiBpc0FkZGluZyk7CiAgICAgICAgfQogICAgICAgIGlmICh1cGRhdGVPZmZzZXQpIHsKICAgICAgICAgICAgbW9tZW50LnVwZGF0ZU9mZnNldChtb20sIGRheXMgfHwgbW9udGhzKTsKICAgICAgICB9CiAgICB9CgogICAgLy8gY2hlY2sgaWYgaXMgYW4gYXJyYXkKICAgIGZ1bmN0aW9uIGlzQXJyYXkoaW5wdXQpIHsKICAgICAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGlucHV0KSA9PT0gJ1tvYmplY3QgQXJyYXldJzsKICAgIH0KCiAgICBmdW5jdGlvbiBpc0RhdGUoaW5wdXQpIHsKICAgICAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGlucHV0KSA9PT0gJ1tvYmplY3QgRGF0ZV0nIHx8CiAgICAgICAgICAgIGlucHV0IGluc3RhbmNlb2YgRGF0ZTsKICAgIH0KCiAgICAvLyBjb21wYXJlIHR3byBhcnJheXMsIHJldHVybiB0aGUgbnVtYmVyIG9mIGRpZmZlcmVuY2VzCiAgICBmdW5jdGlvbiBjb21wYXJlQXJyYXlzKGFycmF5MSwgYXJyYXkyLCBkb250Q29udmVydCkgewogICAgICAgIHZhciBsZW4gPSBNYXRoLm1pbihhcnJheTEubGVuZ3RoLCBhcnJheTIubGVuZ3RoKSwKICAgICAgICAgICAgbGVuZ3RoRGlmZiA9IE1hdGguYWJzKGFycmF5MS5sZW5ndGggLSBhcnJheTIubGVuZ3RoKSwKICAgICAgICAgICAgZGlmZnMgPSAwLAogICAgICAgICAgICBpOwogICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykgewogICAgICAgICAgICBpZiAoKGRvbnRDb252ZXJ0ICYmIGFycmF5MVtpXSAhPT0gYXJyYXkyW2ldKSB8fAogICAgICAgICAgICAgICAgKCFkb250Q29udmVydCAmJiB0b0ludChhcnJheTFbaV0pICE9PSB0b0ludChhcnJheTJbaV0pKSkgewogICAgICAgICAgICAgICAgZGlmZnMrKzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gZGlmZnMgKyBsZW5ndGhEaWZmOwogICAgfQoKICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZVVuaXRzKHVuaXRzKSB7CiAgICAgICAgaWYgKHVuaXRzKSB7CiAgICAgICAgICAgIHZhciBsb3dlcmVkID0gdW5pdHMudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC8oLilzJC8sICckMScpOwogICAgICAgICAgICB1bml0cyA9IHVuaXRBbGlhc2VzW3VuaXRzXSB8fCBjYW1lbEZ1bmN0aW9uc1tsb3dlcmVkXSB8fCBsb3dlcmVkOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdW5pdHM7CiAgICB9CgogICAgZnVuY3Rpb24gbm9ybWFsaXplT2JqZWN0VW5pdHMoaW5wdXRPYmplY3QpIHsKICAgICAgICB2YXIgbm9ybWFsaXplZElucHV0ID0ge30sCiAgICAgICAgICAgIG5vcm1hbGl6ZWRQcm9wLAogICAgICAgICAgICBwcm9wOwoKICAgICAgICBmb3IgKHByb3AgaW4gaW5wdXRPYmplY3QpIHsKICAgICAgICAgICAgaWYgKGhhc093blByb3AoaW5wdXRPYmplY3QsIHByb3ApKSB7CiAgICAgICAgICAgICAgICBub3JtYWxpemVkUHJvcCA9IG5vcm1hbGl6ZVVuaXRzKHByb3ApOwogICAgICAgICAgICAgICAgaWYgKG5vcm1hbGl6ZWRQcm9wKSB7CiAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZElucHV0W25vcm1hbGl6ZWRQcm9wXSA9IGlucHV0T2JqZWN0W3Byb3BdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gbm9ybWFsaXplZElucHV0OwogICAgfQoKICAgIGZ1bmN0aW9uIG1ha2VMaXN0KGZpZWxkKSB7CiAgICAgICAgdmFyIGNvdW50LCBzZXR0ZXI7CgogICAgICAgIGlmIChmaWVsZC5pbmRleE9mKCd3ZWVrJykgPT09IDApIHsKICAgICAgICAgICAgY291bnQgPSA3OwogICAgICAgICAgICBzZXR0ZXIgPSAnZGF5JzsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAoZmllbGQuaW5kZXhPZignbW9udGgnKSA9PT0gMCkgewogICAgICAgICAgICBjb3VudCA9IDEyOwogICAgICAgICAgICBzZXR0ZXIgPSAnbW9udGgnOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgbW9tZW50W2ZpZWxkXSA9IGZ1bmN0aW9uIChmb3JtYXQsIGluZGV4KSB7CiAgICAgICAgICAgIHZhciBpLCBnZXR0ZXIsCiAgICAgICAgICAgICAgICBtZXRob2QgPSBtb21lbnQuX2xvY2FsZVtmaWVsZF0sCiAgICAgICAgICAgICAgICByZXN1bHRzID0gW107CgogICAgICAgICAgICBpZiAodHlwZW9mIGZvcm1hdCA9PT0gJ251bWJlcicpIHsKICAgICAgICAgICAgICAgIGluZGV4ID0gZm9ybWF0OwogICAgICAgICAgICAgICAgZm9ybWF0ID0gdW5kZWZpbmVkOwogICAgICAgICAgICB9CgogICAgICAgICAgICBnZXR0ZXIgPSBmdW5jdGlvbiAoaSkgewogICAgICAgICAgICAgICAgdmFyIG0gPSBtb21lbnQoKS51dGMoKS5zZXQoc2V0dGVyLCBpKTsKICAgICAgICAgICAgICAgIHJldHVybiBtZXRob2QuY2FsbChtb21lbnQuX2xvY2FsZSwgbSwgZm9ybWF0IHx8ICcnKTsKICAgICAgICAgICAgfTsKCiAgICAgICAgICAgIGlmIChpbmRleCAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0dGVyKGluZGV4KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKGdldHRlcihpKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0czsKICAgICAgICAgICAgfQogICAgICAgIH07CiAgICB9CgogICAgZnVuY3Rpb24gdG9JbnQoYXJndW1lbnRGb3JDb2VyY2lvbikgewogICAgICAgIHZhciBjb2VyY2VkTnVtYmVyID0gK2FyZ3VtZW50Rm9yQ29lcmNpb24sCiAgICAgICAgICAgIHZhbHVlID0gMDsKCiAgICAgICAgaWYgKGNvZXJjZWROdW1iZXIgIT09IDAgJiYgaXNGaW5pdGUoY29lcmNlZE51bWJlcikpIHsKICAgICAgICAgICAgaWYgKGNvZXJjZWROdW1iZXIgPj0gMCkgewogICAgICAgICAgICAgICAgdmFsdWUgPSBNYXRoLmZsb29yKGNvZXJjZWROdW1iZXIpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdmFsdWUgPSBNYXRoLmNlaWwoY29lcmNlZE51bWJlcik7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiB2YWx1ZTsKICAgIH0KCiAgICBmdW5jdGlvbiBkYXlzSW5Nb250aCh5ZWFyLCBtb250aCkgewogICAgICAgIHJldHVybiBuZXcgRGF0ZShEYXRlLlVUQyh5ZWFyLCBtb250aCArIDEsIDApKS5nZXRVVENEYXRlKCk7CiAgICB9CgogICAgZnVuY3Rpb24gd2Vla3NJblllYXIoeWVhciwgZG93LCBkb3kpIHsKICAgICAgICByZXR1cm4gd2Vla09mWWVhcihtb21lbnQoW3llYXIsIDExLCAzMSArIGRvdyAtIGRveV0pLCBkb3csIGRveSkud2VlazsKICAgIH0KCiAgICBmdW5jdGlvbiBkYXlzSW5ZZWFyKHllYXIpIHsKICAgICAgICByZXR1cm4gaXNMZWFwWWVhcih5ZWFyKSA/IDM2NiA6IDM2NTsKICAgIH0KCiAgICBmdW5jdGlvbiBpc0xlYXBZZWFyKHllYXIpIHsKICAgICAgICByZXR1cm4gKHllYXIgJSA0ID09PSAwICYmIHllYXIgJSAxMDAgIT09IDApIHx8IHllYXIgJSA0MDAgPT09IDA7CiAgICB9CgogICAgZnVuY3Rpb24gY2hlY2tPdmVyZmxvdyhtKSB7CiAgICAgICAgdmFyIG92ZXJmbG93OwogICAgICAgIGlmIChtLl9hICYmIG0uX3BmLm92ZXJmbG93ID09PSAtMikgewogICAgICAgICAgICBvdmVyZmxvdyA9CiAgICAgICAgICAgICAgICBtLl9hW01PTlRIXSA8IDAgfHwgbS5fYVtNT05USF0gPiAxMSA/IE1PTlRIIDoKICAgICAgICAgICAgICAgIG0uX2FbREFURV0gPCAxIHx8IG0uX2FbREFURV0gPiBkYXlzSW5Nb250aChtLl9hW1lFQVJdLCBtLl9hW01PTlRIXSkgPyBEQVRFIDoKICAgICAgICAgICAgICAgIG0uX2FbSE9VUl0gPCAwIHx8IG0uX2FbSE9VUl0gPiAyNCB8fAogICAgICAgICAgICAgICAgICAgIChtLl9hW0hPVVJdID09PSAyNCAmJiAobS5fYVtNSU5VVEVdICE9PSAwIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtLl9hW1NFQ09ORF0gIT09IDAgfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0uX2FbTUlMTElTRUNPTkRdICE9PSAwKSkgPyBIT1VSIDoKICAgICAgICAgICAgICAgIG0uX2FbTUlOVVRFXSA8IDAgfHwgbS5fYVtNSU5VVEVdID4gNTkgPyBNSU5VVEUgOgogICAgICAgICAgICAgICAgbS5fYVtTRUNPTkRdIDwgMCB8fCBtLl9hW1NFQ09ORF0gPiA1OSA/IFNFQ09ORCA6CiAgICAgICAgICAgICAgICBtLl9hW01JTExJU0VDT05EXSA8IDAgfHwgbS5fYVtNSUxMSVNFQ09ORF0gPiA5OTkgPyBNSUxMSVNFQ09ORCA6CiAgICAgICAgICAgICAgICAtMTsKCiAgICAgICAgICAgIGlmIChtLl9wZi5fb3ZlcmZsb3dEYXlPZlllYXIgJiYgKG92ZXJmbG93IDwgWUVBUiB8fCBvdmVyZmxvdyA+IERBVEUpKSB7CiAgICAgICAgICAgICAgICBvdmVyZmxvdyA9IERBVEU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG0uX3BmLm92ZXJmbG93ID0gb3ZlcmZsb3c7CiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGlzVmFsaWQobSkgewogICAgICAgIGlmIChtLl9pc1ZhbGlkID09IG51bGwpIHsKICAgICAgICAgICAgbS5faXNWYWxpZCA9ICFpc05hTihtLl9kLmdldFRpbWUoKSkgJiYKICAgICAgICAgICAgICAgIG0uX3BmLm92ZXJmbG93IDwgMCAmJgogICAgICAgICAgICAgICAgIW0uX3BmLmVtcHR5ICYmCiAgICAgICAgICAgICAgICAhbS5fcGYuaW52YWxpZE1vbnRoICYmCiAgICAgICAgICAgICAgICAhbS5fcGYubnVsbElucHV0ICYmCiAgICAgICAgICAgICAgICAhbS5fcGYuaW52YWxpZEZvcm1hdCAmJgogICAgICAgICAgICAgICAgIW0uX3BmLnVzZXJJbnZhbGlkYXRlZDsKCiAgICAgICAgICAgIGlmIChtLl9zdHJpY3QpIHsKICAgICAgICAgICAgICAgIG0uX2lzVmFsaWQgPSBtLl9pc1ZhbGlkICYmCiAgICAgICAgICAgICAgICAgICAgbS5fcGYuY2hhcnNMZWZ0T3ZlciA9PT0gMCAmJgogICAgICAgICAgICAgICAgICAgIG0uX3BmLnVudXNlZFRva2Vucy5sZW5ndGggPT09IDAgJiYKICAgICAgICAgICAgICAgICAgICBtLl9wZi5iaWdIb3VyID09PSB1bmRlZmluZWQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIG0uX2lzVmFsaWQ7CiAgICB9CgogICAgZnVuY3Rpb24gbm9ybWFsaXplTG9jYWxlKGtleSkgewogICAgICAgIHJldHVybiBrZXkgPyBrZXkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKCdfJywgJy0nKSA6IGtleTsKICAgIH0KCiAgICAvLyBwaWNrIHRoZSBsb2NhbGUgZnJvbSB0aGUgYXJyYXkKICAgIC8vIHRyeSBbJ2VuLWF1JywgJ2VuLWdiJ10gYXMgJ2VuLWF1JywgJ2VuLWdiJywgJ2VuJywgYXMgaW4gbW92ZSB0aHJvdWdoIHRoZSBsaXN0IHRyeWluZyBlYWNoCiAgICAvLyBzdWJzdHJpbmcgZnJvbSBtb3N0IHNwZWNpZmljIHRvIGxlYXN0LCBidXQgbW92ZSB0byB0aGUgbmV4dCBhcnJheSBpdGVtIGlmIGl0J3MgYSBtb3JlIHNwZWNpZmljIHZhcmlhbnQgdGhhbiB0aGUgY3VycmVudCByb290CiAgICBmdW5jdGlvbiBjaG9vc2VMb2NhbGUobmFtZXMpIHsKICAgICAgICB2YXIgaSA9IDAsIGosIG5leHQsIGxvY2FsZSwgc3BsaXQ7CgogICAgICAgIHdoaWxlIChpIDwgbmFtZXMubGVuZ3RoKSB7CiAgICAgICAgICAgIHNwbGl0ID0gbm9ybWFsaXplTG9jYWxlKG5hbWVzW2ldKS5zcGxpdCgnLScpOwogICAgICAgICAgICBqID0gc3BsaXQubGVuZ3RoOwogICAgICAgICAgICBuZXh0ID0gbm9ybWFsaXplTG9jYWxlKG5hbWVzW2kgKyAxXSk7CiAgICAgICAgICAgIG5leHQgPSBuZXh0ID8gbmV4dC5zcGxpdCgnLScpIDogbnVsbDsKICAgICAgICAgICAgd2hpbGUgKGogPiAwKSB7CiAgICAgICAgICAgICAgICBsb2NhbGUgPSBsb2FkTG9jYWxlKHNwbGl0LnNsaWNlKDAsIGopLmpvaW4oJy0nKSk7CiAgICAgICAgICAgICAgICBpZiAobG9jYWxlKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxvY2FsZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChuZXh0ICYmIG5leHQubGVuZ3RoID49IGogJiYgY29tcGFyZUFycmF5cyhzcGxpdCwgbmV4dCwgdHJ1ZSkgPj0gaiAtIDEpIHsKICAgICAgICAgICAgICAgICAgICAvL3RoZSBuZXh0IGFycmF5IGl0ZW0gaXMgYmV0dGVyIHRoYW4gYSBzaGFsbG93ZXIgc3Vic3RyaW5nIG9mIHRoaXMgb25lCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBqLS07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaSsrOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBmdW5jdGlvbiBsb2FkTG9jYWxlKG5hbWUpIHsKICAgICAgICB2YXIgb2xkTG9jYWxlID0gbnVsbDsKICAgICAgICBpZiAoIWxvY2FsZXNbbmFtZV0gJiYgaGFzTW9kdWxlKSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICBvbGRMb2NhbGUgPSBtb21lbnQubG9jYWxlKCk7CiAgICAgICAgICAgICAgICByZXF1aXJlKCcuL2xvY2FsZS8nICsgbmFtZSk7CiAgICAgICAgICAgICAgICAvLyBiZWNhdXNlIGRlZmluZUxvY2FsZSBjdXJyZW50bHkgYWxzbyBzZXRzIHRoZSBnbG9iYWwgbG9jYWxlLCB3ZSB3YW50IHRvIHVuZG8gdGhhdCBmb3IgbGF6eSBsb2FkZWQgbG9jYWxlcwogICAgICAgICAgICAgICAgbW9tZW50LmxvY2FsZShvbGRMb2NhbGUpOwogICAgICAgICAgICB9IGNhdGNoIChlKSB7IH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIGxvY2FsZXNbbmFtZV07CiAgICB9CgogICAgLy8gUmV0dXJuIGEgbW9tZW50IGZyb20gaW5wdXQsIHRoYXQgaXMgbG9jYWwvdXRjL3pvbmUgZXF1aXZhbGVudCB0byBtb2RlbC4KICAgIGZ1bmN0aW9uIG1ha2VBcyhpbnB1dCwgbW9kZWwpIHsKICAgICAgICB2YXIgcmVzLCBkaWZmOwogICAgICAgIGlmIChtb2RlbC5faXNVVEMpIHsKICAgICAgICAgICAgcmVzID0gbW9kZWwuY2xvbmUoKTsKICAgICAgICAgICAgZGlmZiA9IChtb21lbnQuaXNNb21lbnQoaW5wdXQpIHx8IGlzRGF0ZShpbnB1dCkgPwogICAgICAgICAgICAgICAgICAgICtpbnB1dCA6ICttb21lbnQoaW5wdXQpKSAtICgrcmVzKTsKICAgICAgICAgICAgLy8gVXNlIGxvdy1sZXZlbCBhcGksIGJlY2F1c2UgdGhpcyBmbiBpcyBsb3ctbGV2ZWwgYXBpLgogICAgICAgICAgICByZXMuX2Quc2V0VGltZSgrcmVzLl9kICsgZGlmZik7CiAgICAgICAgICAgIG1vbWVudC51cGRhdGVPZmZzZXQocmVzLCBmYWxzZSk7CiAgICAgICAgICAgIHJldHVybiByZXM7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuIG1vbWVudChpbnB1dCkubG9jYWwoKTsKICAgICAgICB9CiAgICB9CgogICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAgICAgIExvY2FsZQogICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKCiAgICBleHRlbmQoTG9jYWxlLnByb3RvdHlwZSwgewoKICAgICAgICBzZXQgOiBmdW5jdGlvbiAoY29uZmlnKSB7CiAgICAgICAgICAgIHZhciBwcm9wLCBpOwogICAgICAgICAgICBmb3IgKGkgaW4gY29uZmlnKSB7CiAgICAgICAgICAgICAgICBwcm9wID0gY29uZmlnW2ldOwogICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnZnVuY3Rpb24nKSB7CiAgICAgICAgICAgICAgICAgICAgdGhpc1tpXSA9IHByb3A7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHRoaXNbJ18nICsgaV0gPSBwcm9wOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIExlbmllbnQgb3JkaW5hbCBwYXJzaW5nIGFjY2VwdHMganVzdCBhIG51bWJlciBpbiBhZGRpdGlvbiB0bwogICAgICAgICAgICAvLyBudW1iZXIgKyAocG9zc2libHkpIHN0dWZmIGNvbWluZyBmcm9tIF9vcmRpbmFsUGFyc2VMZW5pZW50LgogICAgICAgICAgICB0aGlzLl9vcmRpbmFsUGFyc2VMZW5pZW50ID0gbmV3IFJlZ0V4cCh0aGlzLl9vcmRpbmFsUGFyc2Uuc291cmNlICsgJ3wnICsgL1xkezEsMn0vLnNvdXJjZSk7CiAgICAgICAgfSwKCiAgICAgICAgX21vbnRocyA6ICdKYW51YXJ5X0ZlYnJ1YXJ5X01hcmNoX0FwcmlsX01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVyX05vdmVtYmVyX0RlY2VtYmVyJy5zcGxpdCgnXycpLAogICAgICAgIG1vbnRocyA6IGZ1bmN0aW9uIChtKSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLl9tb250aHNbbS5tb250aCgpXTsKICAgICAgICB9LAoKICAgICAgICBfbW9udGhzU2hvcnQgOiAnSmFuX0ZlYl9NYXJfQXByX01heV9KdW5fSnVsX0F1Z19TZXBfT2N0X05vdl9EZWMnLnNwbGl0KCdfJyksCiAgICAgICAgbW9udGhzU2hvcnQgOiBmdW5jdGlvbiAobSkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5fbW9udGhzU2hvcnRbbS5tb250aCgpXTsKICAgICAgICB9LAoKICAgICAgICBtb250aHNQYXJzZSA6IGZ1bmN0aW9uIChtb250aE5hbWUsIGZvcm1hdCwgc3RyaWN0KSB7CiAgICAgICAgICAgIHZhciBpLCBtb20sIHJlZ2V4OwoKICAgICAgICAgICAgaWYgKCF0aGlzLl9tb250aHNQYXJzZSkgewogICAgICAgICAgICAgICAgdGhpcy5fbW9udGhzUGFyc2UgPSBbXTsKICAgICAgICAgICAgICAgIHRoaXMuX2xvbmdNb250aHNQYXJzZSA9IFtdOwogICAgICAgICAgICAgICAgdGhpcy5fc2hvcnRNb250aHNQYXJzZSA9IFtdOwogICAgICAgICAgICB9CgogICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMTI7IGkrKykgewogICAgICAgICAgICAgICAgLy8gbWFrZSB0aGUgcmVnZXggaWYgd2UgZG9uJ3QgaGF2ZSBpdCBhbHJlYWR5CiAgICAgICAgICAgICAgICBtb20gPSBtb21lbnQudXRjKFsyMDAwLCBpXSk7CiAgICAgICAgICAgICAgICBpZiAoc3RyaWN0ICYmICF0aGlzLl9sb25nTW9udGhzUGFyc2VbaV0pIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLl9sb25nTW9udGhzUGFyc2VbaV0gPSBuZXcgUmVnRXhwKCdeJyArIHRoaXMubW9udGhzKG1vbSwgJycpLnJlcGxhY2UoJy4nLCAnJykgKyAnJCcsICdpJyk7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2hvcnRNb250aHNQYXJzZVtpXSA9IG5ldyBSZWdFeHAoJ14nICsgdGhpcy5tb250aHNTaG9ydChtb20sICcnKS5yZXBsYWNlKCcuJywgJycpICsgJyQnLCAnaScpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKCFzdHJpY3QgJiYgIXRoaXMuX21vbnRoc1BhcnNlW2ldKSB7CiAgICAgICAgICAgICAgICAgICAgcmVnZXggPSAnXicgKyB0aGlzLm1vbnRocyhtb20sICcnKSArICd8XicgKyB0aGlzLm1vbnRoc1Nob3J0KG1vbSwgJycpOwogICAgICAgICAgICAgICAgICAgIHRoaXMuX21vbnRoc1BhcnNlW2ldID0gbmV3IFJlZ0V4cChyZWdleC5yZXBsYWNlKCcuJywgJycpLCAnaScpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgLy8gdGVzdCB0aGUgcmVnZXgKICAgICAgICAgICAgICAgIGlmIChzdHJpY3QgJiYgZm9ybWF0ID09PSAnTU1NTScgJiYgdGhpcy5fbG9uZ01vbnRoc1BhcnNlW2ldLnRlc3QobW9udGhOYW1lKSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBpOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdHJpY3QgJiYgZm9ybWF0ID09PSAnTU1NJyAmJiB0aGlzLl9zaG9ydE1vbnRoc1BhcnNlW2ldLnRlc3QobW9udGhOYW1lKSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBpOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmICghc3RyaWN0ICYmIHRoaXMuX21vbnRoc1BhcnNlW2ldLnRlc3QobW9udGhOYW1lKSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgX3dlZWtkYXlzIDogJ1N1bmRheV9Nb25kYXlfVHVlc2RheV9XZWRuZXNkYXlfVGh1cnNkYXlfRnJpZGF5X1NhdHVyZGF5Jy5zcGxpdCgnXycpLAogICAgICAgIHdlZWtkYXlzIDogZnVuY3Rpb24gKG0pIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzW20uZGF5KCldOwogICAgICAgIH0sCgogICAgICAgIF93ZWVrZGF5c1Nob3J0IDogJ1N1bl9Nb25fVHVlX1dlZF9UaHVfRnJpX1NhdCcuc3BsaXQoJ18nKSwKICAgICAgICB3ZWVrZGF5c1Nob3J0IDogZnVuY3Rpb24gKG0pIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzU2hvcnRbbS5kYXkoKV07CiAgICAgICAgfSwKCiAgICAgICAgX3dlZWtkYXlzTWluIDogJ1N1X01vX1R1X1dlX1RoX0ZyX1NhJy5zcGxpdCgnXycpLAogICAgICAgIHdlZWtkYXlzTWluIDogZnVuY3Rpb24gKG0pIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzTWluW20uZGF5KCldOwogICAgICAgIH0sCgogICAgICAgIHdlZWtkYXlzUGFyc2UgOiBmdW5jdGlvbiAod2Vla2RheU5hbWUpIHsKICAgICAgICAgICAgdmFyIGksIG1vbSwgcmVnZXg7CgogICAgICAgICAgICBpZiAoIXRoaXMuX3dlZWtkYXlzUGFyc2UpIHsKICAgICAgICAgICAgICAgIHRoaXMuX3dlZWtkYXlzUGFyc2UgPSBbXTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IDc7IGkrKykgewogICAgICAgICAgICAgICAgLy8gbWFrZSB0aGUgcmVnZXggaWYgd2UgZG9uJ3QgaGF2ZSBpdCBhbHJlYWR5CiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX3dlZWtkYXlzUGFyc2VbaV0pIHsKICAgICAgICAgICAgICAgICAgICBtb20gPSBtb21lbnQoWzIwMDAsIDFdKS5kYXkoaSk7CiAgICAgICAgICAgICAgICAgICAgcmVnZXggPSAnXicgKyB0aGlzLndlZWtkYXlzKG1vbSwgJycpICsgJ3xeJyArIHRoaXMud2Vla2RheXNTaG9ydChtb20sICcnKSArICd8XicgKyB0aGlzLndlZWtkYXlzTWluKG1vbSwgJycpOwogICAgICAgICAgICAgICAgICAgIHRoaXMuX3dlZWtkYXlzUGFyc2VbaV0gPSBuZXcgUmVnRXhwKHJlZ2V4LnJlcGxhY2UoJy4nLCAnJyksICdpJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAvLyB0ZXN0IHRoZSByZWdleAogICAgICAgICAgICAgICAgaWYgKHRoaXMuX3dlZWtkYXlzUGFyc2VbaV0udGVzdCh3ZWVrZGF5TmFtZSkpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gaTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIF9sb25nRGF0ZUZvcm1hdCA6IHsKICAgICAgICAgICAgTFRTIDogJ2g6bW06c3MgQScsCiAgICAgICAgICAgIExUIDogJ2g6bW0gQScsCiAgICAgICAgICAgIEwgOiAnTU0vREQvWVlZWScsCiAgICAgICAgICAgIExMIDogJ01NTU0gRCwgWVlZWScsCiAgICAgICAgICAgIExMTCA6ICdNTU1NIEQsIFlZWVkgTFQnLAogICAgICAgICAgICBMTExMIDogJ2RkZGQsIE1NTU0gRCwgWVlZWSBMVCcKICAgICAgICB9LAogICAgICAgIGxvbmdEYXRlRm9ybWF0IDogZnVuY3Rpb24gKGtleSkgewogICAgICAgICAgICB2YXIgb3V0cHV0ID0gdGhpcy5fbG9uZ0RhdGVGb3JtYXRba2V5XTsKICAgICAgICAgICAgaWYgKCFvdXRwdXQgJiYgdGhpcy5fbG9uZ0RhdGVGb3JtYXRba2V5LnRvVXBwZXJDYXNlKCldKSB7CiAgICAgICAgICAgICAgICBvdXRwdXQgPSB0aGlzLl9sb25nRGF0ZUZvcm1hdFtrZXkudG9VcHBlckNhc2UoKV0ucmVwbGFjZSgvTU1NTXxNTXxERHxkZGRkL2csIGZ1bmN0aW9uICh2YWwpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsLnNsaWNlKDEpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB0aGlzLl9sb25nRGF0ZUZvcm1hdFtrZXldID0gb3V0cHV0OwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBvdXRwdXQ7CiAgICAgICAgfSwKCiAgICAgICAgaXNQTSA6IGZ1bmN0aW9uIChpbnB1dCkgewogICAgICAgICAgICAvLyBJRTggUXVpcmtzIE1vZGUgJiBJRTcgU3RhbmRhcmRzIE1vZGUgZG8gbm90IGFsbG93IGFjY2Vzc2luZyBzdHJpbmdzIGxpa2UgYXJyYXlzCiAgICAgICAgICAgIC8vIFVzaW5nIGNoYXJBdCBzaG91bGQgYmUgbW9yZSBjb21wYXRpYmxlLgogICAgICAgICAgICByZXR1cm4gKChpbnB1dCArICcnKS50b0xvd2VyQ2FzZSgpLmNoYXJBdCgwKSA9PT0gJ3AnKTsKICAgICAgICB9LAoKICAgICAgICBfbWVyaWRpZW1QYXJzZSA6IC9bYXBdXC4/bT9cLj8vaSwKICAgICAgICBtZXJpZGllbSA6IGZ1bmN0aW9uIChob3VycywgbWludXRlcywgaXNMb3dlcikgewogICAgICAgICAgICBpZiAoaG91cnMgPiAxMSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPyAncG0nIDogJ1BNJzsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHJldHVybiBpc0xvd2VyID8gJ2FtJyA6ICdBTSc7CiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICBfY2FsZW5kYXIgOiB7CiAgICAgICAgICAgIHNhbWVEYXkgOiAnW1RvZGF5IGF0XSBMVCcsCiAgICAgICAgICAgIG5leHREYXkgOiAnW1RvbW9ycm93IGF0XSBMVCcsCiAgICAgICAgICAgIG5leHRXZWVrIDogJ2RkZGQgW2F0XSBMVCcsCiAgICAgICAgICAgIGxhc3REYXkgOiAnW1llc3RlcmRheSBhdF0gTFQnLAogICAgICAgICAgICBsYXN0V2VlayA6ICdbTGFzdF0gZGRkZCBbYXRdIExUJywKICAgICAgICAgICAgc2FtZUVsc2UgOiAnTCcKICAgICAgICB9LAogICAgICAgIGNhbGVuZGFyIDogZnVuY3Rpb24gKGtleSwgbW9tLCBub3cpIHsKICAgICAgICAgICAgdmFyIG91dHB1dCA9IHRoaXMuX2NhbGVuZGFyW2tleV07CiAgICAgICAgICAgIHJldHVybiB0eXBlb2Ygb3V0cHV0ID09PSAnZnVuY3Rpb24nID8gb3V0cHV0LmFwcGx5KG1vbSwgW25vd10pIDogb3V0cHV0OwogICAgICAgIH0sCgogICAgICAgIF9yZWxhdGl2ZVRpbWUgOiB7CiAgICAgICAgICAgIGZ1dHVyZSA6ICdpbiAlcycsCiAgICAgICAgICAgIHBhc3QgOiAnJXMgYWdvJywKICAgICAgICAgICAgcyA6ICdhIGZldyBzZWNvbmRzJywKICAgICAgICAgICAgbSA6ICdhIG1pbnV0ZScsCiAgICAgICAgICAgIG1tIDogJyVkIG1pbnV0ZXMnLAogICAgICAgICAgICBoIDogJ2FuIGhvdXInLAogICAgICAgICAgICBoaCA6ICclZCBob3VycycsCiAgICAgICAgICAgIGQgOiAnYSBkYXknLAogICAgICAgICAgICBkZCA6ICclZCBkYXlzJywKICAgICAgICAgICAgTSA6ICdhIG1vbnRoJywKICAgICAgICAgICAgTU0gOiAnJWQgbW9udGhzJywKICAgICAgICAgICAgeSA6ICdhIHllYXInLAogICAgICAgICAgICB5eSA6ICclZCB5ZWFycycKICAgICAgICB9LAoKICAgICAgICByZWxhdGl2ZVRpbWUgOiBmdW5jdGlvbiAobnVtYmVyLCB3aXRob3V0U3VmZml4LCBzdHJpbmcsIGlzRnV0dXJlKSB7CiAgICAgICAgICAgIHZhciBvdXRwdXQgPSB0aGlzLl9yZWxhdGl2ZVRpbWVbc3RyaW5nXTsKICAgICAgICAgICAgcmV0dXJuICh0eXBlb2Ygb3V0cHV0ID09PSAnZnVuY3Rpb24nKSA/CiAgICAgICAgICAgICAgICBvdXRwdXQobnVtYmVyLCB3aXRob3V0U3VmZml4LCBzdHJpbmcsIGlzRnV0dXJlKSA6CiAgICAgICAgICAgICAgICBvdXRwdXQucmVwbGFjZSgvJWQvaSwgbnVtYmVyKTsKICAgICAgICB9LAoKICAgICAgICBwYXN0RnV0dXJlIDogZnVuY3Rpb24gKGRpZmYsIG91dHB1dCkgewogICAgICAgICAgICB2YXIgZm9ybWF0ID0gdGhpcy5fcmVsYXRpdmVUaW1lW2RpZmYgPiAwID8gJ2Z1dHVyZScgOiAncGFzdCddOwogICAgICAgICAgICByZXR1cm4gdHlwZW9mIGZvcm1hdCA9PT0gJ2Z1bmN0aW9uJyA/IGZvcm1hdChvdXRwdXQpIDogZm9ybWF0LnJlcGxhY2UoLyVzL2ksIG91dHB1dCk7CiAgICAgICAgfSwKCiAgICAgICAgb3JkaW5hbCA6IGZ1bmN0aW9uIChudW1iZXIpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuX29yZGluYWwucmVwbGFjZSgnJWQnLCBudW1iZXIpOwogICAgICAgIH0sCiAgICAgICAgX29yZGluYWwgOiAnJWQnLAogICAgICAgIF9vcmRpbmFsUGFyc2UgOiAvXGR7MSwyfS8sCgogICAgICAgIHByZXBhcnNlIDogZnVuY3Rpb24gKHN0cmluZykgewogICAgICAgICAgICByZXR1cm4gc3RyaW5nOwogICAgICAgIH0sCgogICAgICAgIHBvc3Rmb3JtYXQgOiBmdW5jdGlvbiAoc3RyaW5nKSB7CiAgICAgICAgICAgIHJldHVybiBzdHJpbmc7CiAgICAgICAgfSwKCiAgICAgICAgd2VlayA6IGZ1bmN0aW9uIChtb20pIHsKICAgICAgICAgICAgcmV0dXJuIHdlZWtPZlllYXIobW9tLCB0aGlzLl93ZWVrLmRvdywgdGhpcy5fd2Vlay5kb3kpLndlZWs7CiAgICAgICAgfSwKCiAgICAgICAgX3dlZWsgOiB7CiAgICAgICAgICAgIGRvdyA6IDAsIC8vIFN1bmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLgogICAgICAgICAgICBkb3kgOiA2ICAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiAxc3QgaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuCiAgICAgICAgfSwKCiAgICAgICAgX2ludmFsaWREYXRlOiAnSW52YWxpZCBkYXRlJywKICAgICAgICBpbnZhbGlkRGF0ZTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5faW52YWxpZERhdGU7CiAgICAgICAgfQogICAgfSk7CgogICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAgICAgIEZvcm1hdHRpbmcKICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCgogICAgZnVuY3Rpb24gcmVtb3ZlRm9ybWF0dGluZ1Rva2VucyhpbnB1dCkgewogICAgICAgIGlmIChpbnB1dC5tYXRjaCgvXFtbXHNcU10vKSkgewogICAgICAgICAgICByZXR1cm4gaW5wdXQucmVwbGFjZSgvXlxbfFxdJC9nLCAnJyk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBpbnB1dC5yZXBsYWNlKC9cXC9nLCAnJyk7CiAgICB9CgogICAgZnVuY3Rpb24gbWFrZUZvcm1hdEZ1bmN0aW9uKGZvcm1hdCkgewogICAgICAgIHZhciBhcnJheSA9IGZvcm1hdC5tYXRjaChmb3JtYXR0aW5nVG9rZW5zKSwgaSwgbGVuZ3RoOwoKICAgICAgICBmb3IgKGkgPSAwLCBsZW5ndGggPSBhcnJheS5sZW5ndGg7IGkgPCBsZW5ndGg7IGkrKykgewogICAgICAgICAgICBpZiAoZm9ybWF0VG9rZW5GdW5jdGlvbnNbYXJyYXlbaV1dKSB7CiAgICAgICAgICAgICAgICBhcnJheVtpXSA9IGZvcm1hdFRva2VuRnVuY3Rpb25zW2FycmF5W2ldXTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGFycmF5W2ldID0gcmVtb3ZlRm9ybWF0dGluZ1Rva2VucyhhcnJheVtpXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiBmdW5jdGlvbiAobW9tKSB7CiAgICAgICAgICAgIHZhciBvdXRwdXQgPSAnJzsKICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICBvdXRwdXQgKz0gYXJyYXlbaV0gaW5zdGFuY2VvZiBGdW5jdGlvbiA/IGFycmF5W2ldLmNhbGwobW9tLCBmb3JtYXQpIDogYXJyYXlbaV07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIG91dHB1dDsKICAgICAgICB9OwogICAgfQoKICAgIC8vIGZvcm1hdCBkYXRlIHVzaW5nIG5hdGl2ZSBkYXRlIG9iamVjdAogICAgZnVuY3Rpb24gZm9ybWF0TW9tZW50KG0sIGZvcm1hdCkgewogICAgICAgIGlmICghbS5pc1ZhbGlkKCkpIHsKICAgICAgICAgICAgcmV0dXJuIG0ubG9jYWxlRGF0YSgpLmludmFsaWREYXRlKCk7CiAgICAgICAgfQoKICAgICAgICBmb3JtYXQgPSBleHBhbmRGb3JtYXQoZm9ybWF0LCBtLmxvY2FsZURhdGEoKSk7CgogICAgICAgIGlmICghZm9ybWF0RnVuY3Rpb25zW2Zvcm1hdF0pIHsKICAgICAgICAgICAgZm9ybWF0RnVuY3Rpb25zW2Zvcm1hdF0gPSBtYWtlRm9ybWF0RnVuY3Rpb24oZm9ybWF0KTsKICAgICAgICB9CgogICAgICAgIHJldHVybiBmb3JtYXRGdW5jdGlvbnNbZm9ybWF0XShtKTsKICAgIH0KCiAgICBmdW5jdGlvbiBleHBhbmRGb3JtYXQoZm9ybWF0LCBsb2NhbGUpIHsKICAgICAgICB2YXIgaSA9IDU7CgogICAgICAgIGZ1bmN0aW9uIHJlcGxhY2VMb25nRGF0ZUZvcm1hdFRva2VucyhpbnB1dCkgewogICAgICAgICAgICByZXR1cm4gbG9jYWxlLmxvbmdEYXRlRm9ybWF0KGlucHV0KSB8fCBpbnB1dDsKICAgICAgICB9CgogICAgICAgIGxvY2FsRm9ybWF0dGluZ1Rva2Vucy5sYXN0SW5kZXggPSAwOwogICAgICAgIHdoaWxlIChpID49IDAgJiYgbG9jYWxGb3JtYXR0aW5nVG9rZW5zLnRlc3QoZm9ybWF0KSkgewogICAgICAgICAgICBmb3JtYXQgPSBmb3JtYXQucmVwbGFjZShsb2NhbEZvcm1hdHRpbmdUb2tlbnMsIHJlcGxhY2VMb25nRGF0ZUZvcm1hdFRva2Vucyk7CiAgICAgICAgICAgIGxvY2FsRm9ybWF0dGluZ1Rva2Vucy5sYXN0SW5kZXggPSAwOwogICAgICAgICAgICBpIC09IDE7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gZm9ybWF0OwogICAgfQoKCiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICAgICAgUGFyc2luZwogICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKCiAgICAvLyBnZXQgdGhlIHJlZ2V4IHRvIGZpbmQgdGhlIG5leHQgdG9rZW4KICAgIGZ1bmN0aW9uIGdldFBhcnNlUmVnZXhGb3JUb2tlbih0b2tlbiwgY29uZmlnKSB7CiAgICAgICAgdmFyIGEsIHN0cmljdCA9IGNvbmZpZy5fc3RyaWN0OwogICAgICAgIHN3aXRjaCAodG9rZW4pIHsKICAgICAgICBjYXNlICdRJzoKICAgICAgICAgICAgcmV0dXJuIHBhcnNlVG9rZW5PbmVEaWdpdDsKICAgICAgICBjYXNlICdEREREJzoKICAgICAgICAgICAgcmV0dXJuIHBhcnNlVG9rZW5UaHJlZURpZ2l0czsKICAgICAgICBjYXNlICdZWVlZJzoKICAgICAgICBjYXNlICdHR0dHJzoKICAgICAgICBjYXNlICdnZ2dnJzoKICAgICAgICAgICAgcmV0dXJuIHN0cmljdCA/IHBhcnNlVG9rZW5Gb3VyRGlnaXRzIDogcGFyc2VUb2tlbk9uZVRvRm91ckRpZ2l0czsKICAgICAgICBjYXNlICdZJzoKICAgICAgICBjYXNlICdHJzoKICAgICAgICBjYXNlICdnJzoKICAgICAgICAgICAgcmV0dXJuIHBhcnNlVG9rZW5TaWduZWROdW1iZXI7CiAgICAgICAgY2FzZSAnWVlZWVlZJzoKICAgICAgICBjYXNlICdZWVlZWSc6CiAgICAgICAgY2FzZSAnR0dHR0cnOgogICAgICAgIGNhc2UgJ2dnZ2dnJzoKICAgICAgICAgICAgcmV0dXJuIHN0cmljdCA/IHBhcnNlVG9rZW5TaXhEaWdpdHMgOiBwYXJzZVRva2VuT25lVG9TaXhEaWdpdHM7CiAgICAgICAgY2FzZSAnUyc6CiAgICAgICAgICAgIGlmIChzdHJpY3QpIHsKICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZVRva2VuT25lRGlnaXQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLyogZmFsbHMgdGhyb3VnaCAqLwogICAgICAgIGNhc2UgJ1NTJzoKICAgICAgICAgICAgaWYgKHN0cmljdCkgewogICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlVG9rZW5Ud29EaWdpdHM7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLyogZmFsbHMgdGhyb3VnaCAqLwogICAgICAgIGNhc2UgJ1NTUyc6CiAgICAgICAgICAgIGlmIChzdHJpY3QpIHsKICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZVRva2VuVGhyZWVEaWdpdHM7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLyogZmFsbHMgdGhyb3VnaCAqLwogICAgICAgIGNhc2UgJ0RERCc6CiAgICAgICAgICAgIHJldHVybiBwYXJzZVRva2VuT25lVG9UaHJlZURpZ2l0czsKICAgICAgICBjYXNlICdNTU0nOgogICAgICAgIGNhc2UgJ01NTU0nOgogICAgICAgIGNhc2UgJ2RkJzoKICAgICAgICBjYXNlICdkZGQnOgogICAgICAgIGNhc2UgJ2RkZGQnOgogICAgICAgICAgICByZXR1cm4gcGFyc2VUb2tlbldvcmQ7CiAgICAgICAgY2FzZSAnYSc6CiAgICAgICAgY2FzZSAnQSc6CiAgICAgICAgICAgIHJldHVybiBjb25maWcuX2xvY2FsZS5fbWVyaWRpZW1QYXJzZTsKICAgICAgICBjYXNlICd4JzoKICAgICAgICAgICAgcmV0dXJuIHBhcnNlVG9rZW5PZmZzZXRNczsKICAgICAgICBjYXNlICdYJzoKICAgICAgICAgICAgcmV0dXJuIHBhcnNlVG9rZW5UaW1lc3RhbXBNczsKICAgICAgICBjYXNlICdaJzoKICAgICAgICBjYXNlICdaWic6CiAgICAgICAgICAgIHJldHVybiBwYXJzZVRva2VuVGltZXpvbmU7CiAgICAgICAgY2FzZSAnVCc6CiAgICAgICAgICAgIHJldHVybiBwYXJzZVRva2VuVDsKICAgICAgICBjYXNlICdTU1NTJzoKICAgICAgICAgICAgcmV0dXJuIHBhcnNlVG9rZW5EaWdpdHM7CiAgICAgICAgY2FzZSAnTU0nOgogICAgICAgIGNhc2UgJ0REJzoKICAgICAgICBjYXNlICdZWSc6CiAgICAgICAgY2FzZSAnR0cnOgogICAgICAgIGNhc2UgJ2dnJzoKICAgICAgICBjYXNlICdISCc6CiAgICAgICAgY2FzZSAnaGgnOgogICAgICAgIGNhc2UgJ21tJzoKICAgICAgICBjYXNlICdzcyc6CiAgICAgICAgY2FzZSAnd3cnOgogICAgICAgIGNhc2UgJ1dXJzoKICAgICAgICAgICAgcmV0dXJuIHN0cmljdCA/IHBhcnNlVG9rZW5Ud29EaWdpdHMgOiBwYXJzZVRva2VuT25lT3JUd29EaWdpdHM7CiAgICAgICAgY2FzZSAnTSc6CiAgICAgICAgY2FzZSAnRCc6CiAgICAgICAgY2FzZSAnZCc6CiAgICAgICAgY2FzZSAnSCc6CiAgICAgICAgY2FzZSAnaCc6CiAgICAgICAgY2FzZSAnbSc6CiAgICAgICAgY2FzZSAncyc6CiAgICAgICAgY2FzZSAndyc6CiAgICAgICAgY2FzZSAnVyc6CiAgICAgICAgY2FzZSAnZSc6CiAgICAgICAgY2FzZSAnRSc6CiAgICAgICAgICAgIHJldHVybiBwYXJzZVRva2VuT25lT3JUd29EaWdpdHM7CiAgICAgICAgY2FzZSAnRG8nOgogICAgICAgICAgICByZXR1cm4gc3RyaWN0ID8gY29uZmlnLl9sb2NhbGUuX29yZGluYWxQYXJzZSA6IGNvbmZpZy5fbG9jYWxlLl9vcmRpbmFsUGFyc2VMZW5pZW50OwogICAgICAgIGRlZmF1bHQgOgogICAgICAgICAgICBhID0gbmV3IFJlZ0V4cChyZWdleHBFc2NhcGUodW5lc2NhcGVGb3JtYXQodG9rZW4ucmVwbGFjZSgnXFwnLCAnJykpLCAnaScpKTsKICAgICAgICAgICAgcmV0dXJuIGE7CiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIHRpbWV6b25lTWludXRlc0Zyb21TdHJpbmcoc3RyaW5nKSB7CiAgICAgICAgc3RyaW5nID0gc3RyaW5nIHx8ICcnOwogICAgICAgIHZhciBwb3NzaWJsZVR6TWF0Y2hlcyA9IChzdHJpbmcubWF0Y2gocGFyc2VUb2tlblRpbWV6b25lKSB8fCBbXSksCiAgICAgICAgICAgIHR6Q2h1bmsgPSBwb3NzaWJsZVR6TWF0Y2hlc1twb3NzaWJsZVR6TWF0Y2hlcy5sZW5ndGggLSAxXSB8fCBbXSwKICAgICAgICAgICAgcGFydHMgPSAodHpDaHVuayArICcnKS5tYXRjaChwYXJzZVRpbWV6b25lQ2h1bmtlcikgfHwgWyctJywgMCwgMF0sCiAgICAgICAgICAgIG1pbnV0ZXMgPSArKHBhcnRzWzFdICogNjApICsgdG9JbnQocGFydHNbMl0pOwoKICAgICAgICByZXR1cm4gcGFydHNbMF0gPT09ICcrJyA/IC1taW51dGVzIDogbWludXRlczsKICAgIH0KCiAgICAvLyBmdW5jdGlvbiB0byBjb252ZXJ0IHN0cmluZyBpbnB1dCB0byBkYXRlCiAgICBmdW5jdGlvbiBhZGRUaW1lVG9BcnJheUZyb21Ub2tlbih0b2tlbiwgaW5wdXQsIGNvbmZpZykgewogICAgICAgIHZhciBhLCBkYXRlUGFydEFycmF5ID0gY29uZmlnLl9hOwoKICAgICAgICBzd2l0Y2ggKHRva2VuKSB7CiAgICAgICAgLy8gUVVBUlRFUgogICAgICAgIGNhc2UgJ1EnOgogICAgICAgICAgICBpZiAoaW5wdXQgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgZGF0ZVBhcnRBcnJheVtNT05USF0gPSAodG9JbnQoaW5wdXQpIC0gMSkgKiAzOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIC8vIE1PTlRICiAgICAgICAgY2FzZSAnTScgOiAvLyBmYWxsIHRocm91Z2ggdG8gTU0KICAgICAgICBjYXNlICdNTScgOgogICAgICAgICAgICBpZiAoaW5wdXQgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgZGF0ZVBhcnRBcnJheVtNT05USF0gPSB0b0ludChpbnB1dCkgLSAxOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ01NTScgOiAvLyBmYWxsIHRocm91Z2ggdG8gTU1NTQogICAgICAgIGNhc2UgJ01NTU0nIDoKICAgICAgICAgICAgYSA9IGNvbmZpZy5fbG9jYWxlLm1vbnRoc1BhcnNlKGlucHV0LCB0b2tlbiwgY29uZmlnLl9zdHJpY3QpOwogICAgICAgICAgICAvLyBpZiB3ZSBkaWRuJ3QgZmluZCBhIG1vbnRoIG5hbWUsIG1hcmsgdGhlIGRhdGUgYXMgaW52YWxpZC4KICAgICAgICAgICAgaWYgKGEgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgZGF0ZVBhcnRBcnJheVtNT05USF0gPSBhOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgY29uZmlnLl9wZi5pbnZhbGlkTW9udGggPSBpbnB1dDsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICAvLyBEQVkgT0YgTU9OVEgKICAgICAgICBjYXNlICdEJyA6IC8vIGZhbGwgdGhyb3VnaCB0byBERAogICAgICAgIGNhc2UgJ0REJyA6CiAgICAgICAgICAgIGlmIChpbnB1dCAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICBkYXRlUGFydEFycmF5W0RBVEVdID0gdG9JbnQoaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ0RvJyA6CiAgICAgICAgICAgIGlmIChpbnB1dCAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICBkYXRlUGFydEFycmF5W0RBVEVdID0gdG9JbnQocGFyc2VJbnQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dC5tYXRjaCgvXGR7MSwyfS8pWzBdLCAxMCkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIC8vIERBWSBPRiBZRUFSCiAgICAgICAgY2FzZSAnREREJyA6IC8vIGZhbGwgdGhyb3VnaCB0byBERERECiAgICAgICAgY2FzZSAnRERERCcgOgogICAgICAgICAgICBpZiAoaW5wdXQgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgY29uZmlnLl9kYXlPZlllYXIgPSB0b0ludChpbnB1dCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIC8vIFlFQVIKICAgICAgICBjYXNlICdZWScgOgogICAgICAgICAgICBkYXRlUGFydEFycmF5W1lFQVJdID0gbW9tZW50LnBhcnNlVHdvRGlnaXRZZWFyKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnWVlZWScgOgogICAgICAgIGNhc2UgJ1lZWVlZJyA6CiAgICAgICAgY2FzZSAnWVlZWVlZJyA6CiAgICAgICAgICAgIGRhdGVQYXJ0QXJyYXlbWUVBUl0gPSB0b0ludChpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIC8vIEFNIC8gUE0KICAgICAgICBjYXNlICdhJyA6IC8vIGZhbGwgdGhyb3VnaCB0byBBCiAgICAgICAgY2FzZSAnQScgOgogICAgICAgICAgICBjb25maWcuX2lzUG0gPSBjb25maWcuX2xvY2FsZS5pc1BNKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgLy8gSE9VUgogICAgICAgIGNhc2UgJ2gnIDogLy8gZmFsbCB0aHJvdWdoIHRvIGhoCiAgICAgICAgY2FzZSAnaGgnIDoKICAgICAgICAgICAgY29uZmlnLl9wZi5iaWdIb3VyID0gdHJ1ZTsKICAgICAgICAgICAgLyogZmFsbHMgdGhyb3VnaCAqLwogICAgICAgIGNhc2UgJ0gnIDogLy8gZmFsbCB0aHJvdWdoIHRvIEhICiAgICAgICAgY2FzZSAnSEgnIDoKICAgICAgICAgICAgZGF0ZVBhcnRBcnJheVtIT1VSXSA9IHRvSW50KGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgLy8gTUlOVVRFCiAgICAgICAgY2FzZSAnbScgOiAvLyBmYWxsIHRocm91Z2ggdG8gbW0KICAgICAgICBjYXNlICdtbScgOgogICAgICAgICAgICBkYXRlUGFydEFycmF5W01JTlVURV0gPSB0b0ludChpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIC8vIFNFQ09ORAogICAgICAgIGNhc2UgJ3MnIDogLy8gZmFsbCB0aHJvdWdoIHRvIHNzCiAgICAgICAgY2FzZSAnc3MnIDoKICAgICAgICAgICAgZGF0ZVBhcnRBcnJheVtTRUNPTkRdID0gdG9JbnQoaW5wdXQpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAvLyBNSUxMSVNFQ09ORAogICAgICAgIGNhc2UgJ1MnIDoKICAgICAgICBjYXNlICdTUycgOgogICAgICAgIGNhc2UgJ1NTUycgOgogICAgICAgIGNhc2UgJ1NTU1MnIDoKICAgICAgICAgICAgZGF0ZVBhcnRBcnJheVtNSUxMSVNFQ09ORF0gPSB0b0ludCgoJzAuJyArIGlucHV0KSAqIDEwMDApOwogICAgICAgICAgICBicmVhazsKICAgICAgICAvLyBVTklYIE9GRlNFVCAoTUlMTElTRUNPTkRTKQogICAgICAgIGNhc2UgJ3gnOgogICAgICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZSh0b0ludChpbnB1dCkpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAvLyBVTklYIFRJTUVTVEFNUCBXSVRIIE1TCiAgICAgICAgY2FzZSAnWCc6CiAgICAgICAgICAgIGNvbmZpZy5fZCA9IG5ldyBEYXRlKHBhcnNlRmxvYXQoaW5wdXQpICogMTAwMCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIC8vIFRJTUVaT05FCiAgICAgICAgY2FzZSAnWicgOiAvLyBmYWxsIHRocm91Z2ggdG8gWloKICAgICAgICBjYXNlICdaWicgOgogICAgICAgICAgICBjb25maWcuX3VzZVVUQyA9IHRydWU7CiAgICAgICAgICAgIGNvbmZpZy5fdHptID0gdGltZXpvbmVNaW51dGVzRnJvbVN0cmluZyhpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIC8vIFdFRUtEQVkgLSBodW1hbgogICAgICAgIGNhc2UgJ2RkJzoKICAgICAgICBjYXNlICdkZGQnOgogICAgICAgIGNhc2UgJ2RkZGQnOgogICAgICAgICAgICBhID0gY29uZmlnLl9sb2NhbGUud2Vla2RheXNQYXJzZShpbnB1dCk7CiAgICAgICAgICAgIC8vIGlmIHdlIGRpZG4ndCBnZXQgYSB3ZWVrZGF5IG5hbWUsIG1hcmsgdGhlIGRhdGUgYXMgaW52YWxpZAogICAgICAgICAgICBpZiAoYSAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICBjb25maWcuX3cgPSBjb25maWcuX3cgfHwge307CiAgICAgICAgICAgICAgICBjb25maWcuX3dbJ2QnXSA9IGE7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBjb25maWcuX3BmLmludmFsaWRXZWVrZGF5ID0gaW5wdXQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgLy8gV0VFSywgV0VFSyBEQVkgLSBudW1lcmljCiAgICAgICAgY2FzZSAndyc6CiAgICAgICAgY2FzZSAnd3cnOgogICAgICAgIGNhc2UgJ1cnOgogICAgICAgIGNhc2UgJ1dXJzoKICAgICAgICBjYXNlICdkJzoKICAgICAgICBjYXNlICdlJzoKICAgICAgICBjYXNlICdFJzoKICAgICAgICAgICAgdG9rZW4gPSB0b2tlbi5zdWJzdHIoMCwgMSk7CiAgICAgICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi8KICAgICAgICBjYXNlICdnZ2dnJzoKICAgICAgICBjYXNlICdHR0dHJzoKICAgICAgICBjYXNlICdHR0dHRyc6CiAgICAgICAgICAgIHRva2VuID0gdG9rZW4uc3Vic3RyKDAsIDIpOwogICAgICAgICAgICBpZiAoaW5wdXQpIHsKICAgICAgICAgICAgICAgIGNvbmZpZy5fdyA9IGNvbmZpZy5fdyB8fCB7fTsKICAgICAgICAgICAgICAgIGNvbmZpZy5fd1t0b2tlbl0gPSB0b0ludChpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnZ2cnOgogICAgICAgIGNhc2UgJ0dHJzoKICAgICAgICAgICAgY29uZmlnLl93ID0gY29uZmlnLl93IHx8IHt9OwogICAgICAgICAgICBjb25maWcuX3dbdG9rZW5dID0gbW9tZW50LnBhcnNlVHdvRGlnaXRZZWFyKGlucHV0KTsKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gZGF5T2ZZZWFyRnJvbVdlZWtJbmZvKGNvbmZpZykgewogICAgICAgIHZhciB3LCB3ZWVrWWVhciwgd2Vlaywgd2Vla2RheSwgZG93LCBkb3ksIHRlbXA7CgogICAgICAgIHcgPSBjb25maWcuX3c7CiAgICAgICAgaWYgKHcuR0cgIT0gbnVsbCB8fCB3LlcgIT0gbnVsbCB8fCB3LkUgIT0gbnVsbCkgewogICAgICAgICAgICBkb3cgPSAxOwogICAgICAgICAgICBkb3kgPSA0OwoKICAgICAgICAgICAgLy8gVE9ETzogV2UgbmVlZCB0byB0YWtlIHRoZSBjdXJyZW50IGlzb1dlZWtZZWFyLCBidXQgdGhhdCBkZXBlbmRzIG9uCiAgICAgICAgICAgIC8vIGhvdyB3ZSBpbnRlcnByZXQgbm93IChsb2NhbCwgdXRjLCBmaXhlZCBvZmZzZXQpLiBTbyBjcmVhdGUKICAgICAgICAgICAgLy8gYSBub3cgdmVyc2lvbiBvZiBjdXJyZW50IGNvbmZpZyAodGFrZSBsb2NhbC91dGMvb2Zmc2V0IGZsYWdzLCBhbmQKICAgICAgICAgICAgLy8gY3JlYXRlIG5vdykuCiAgICAgICAgICAgIHdlZWtZZWFyID0gZGZsKHcuR0csIGNvbmZpZy5fYVtZRUFSXSwgd2Vla09mWWVhcihtb21lbnQoKSwgMSwgNCkueWVhcik7CiAgICAgICAgICAgIHdlZWsgPSBkZmwody5XLCAxKTsKICAgICAgICAgICAgd2Vla2RheSA9IGRmbCh3LkUsIDEpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGRvdyA9IGNvbmZpZy5fbG9jYWxlLl93ZWVrLmRvdzsKICAgICAgICAgICAgZG95ID0gY29uZmlnLl9sb2NhbGUuX3dlZWsuZG95OwoKICAgICAgICAgICAgd2Vla1llYXIgPSBkZmwody5nZywgY29uZmlnLl9hW1lFQVJdLCB3ZWVrT2ZZZWFyKG1vbWVudCgpLCBkb3csIGRveSkueWVhcik7CiAgICAgICAgICAgIHdlZWsgPSBkZmwody53LCAxKTsKCiAgICAgICAgICAgIGlmICh3LmQgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgLy8gd2Vla2RheSAtLSBsb3cgZGF5IG51bWJlcnMgYXJlIGNvbnNpZGVyZWQgbmV4dCB3ZWVrCiAgICAgICAgICAgICAgICB3ZWVrZGF5ID0gdy5kOwogICAgICAgICAgICAgICAgaWYgKHdlZWtkYXkgPCBkb3cpIHsKICAgICAgICAgICAgICAgICAgICArK3dlZWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSBpZiAody5lICE9IG51bGwpIHsKICAgICAgICAgICAgICAgIC8vIGxvY2FsIHdlZWtkYXkgLS0gY291bnRpbmcgc3RhcnRzIGZyb20gYmVnaW5pbmcgb2Ygd2VlawogICAgICAgICAgICAgICAgd2Vla2RheSA9IHcuZSArIGRvdzsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIC8vIGRlZmF1bHQgdG8gYmVnaW5pbmcgb2Ygd2VlawogICAgICAgICAgICAgICAgd2Vla2RheSA9IGRvdzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICB0ZW1wID0gZGF5T2ZZZWFyRnJvbVdlZWtzKHdlZWtZZWFyLCB3ZWVrLCB3ZWVrZGF5LCBkb3ksIGRvdyk7CgogICAgICAgIGNvbmZpZy5fYVtZRUFSXSA9IHRlbXAueWVhcjsKICAgICAgICBjb25maWcuX2RheU9mWWVhciA9IHRlbXAuZGF5T2ZZZWFyOwogICAgfQoKICAgIC8vIGNvbnZlcnQgYW4gYXJyYXkgdG8gYSBkYXRlLgogICAgLy8gdGhlIGFycmF5IHNob3VsZCBtaXJyb3IgdGhlIHBhcmFtZXRlcnMgYmVsb3cKICAgIC8vIG5vdGU6IGFsbCB2YWx1ZXMgcGFzdCB0aGUgeWVhciBhcmUgb3B0aW9uYWwgYW5kIHdpbGwgZGVmYXVsdCB0byB0aGUgbG93ZXN0IHBvc3NpYmxlIHZhbHVlLgogICAgLy8gW3llYXIsIG1vbnRoLCBkYXkgLCBob3VyLCBtaW51dGUsIHNlY29uZCwgbWlsbGlzZWNvbmRdCiAgICBmdW5jdGlvbiBkYXRlRnJvbUNvbmZpZyhjb25maWcpIHsKICAgICAgICB2YXIgaSwgZGF0ZSwgaW5wdXQgPSBbXSwgY3VycmVudERhdGUsIHllYXJUb1VzZTsKCiAgICAgICAgaWYgKGNvbmZpZy5fZCkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICBjdXJyZW50RGF0ZSA9IGN1cnJlbnREYXRlQXJyYXkoY29uZmlnKTsKCiAgICAgICAgLy9jb21wdXRlIGRheSBvZiB0aGUgeWVhciBmcm9tIHdlZWtzIGFuZCB3ZWVrZGF5cwogICAgICAgIGlmIChjb25maWcuX3cgJiYgY29uZmlnLl9hW0RBVEVdID09IG51bGwgJiYgY29uZmlnLl9hW01PTlRIXSA9PSBudWxsKSB7CiAgICAgICAgICAgIGRheU9mWWVhckZyb21XZWVrSW5mbyhjb25maWcpOwogICAgICAgIH0KCiAgICAgICAgLy9pZiB0aGUgZGF5IG9mIHRoZSB5ZWFyIGlzIHNldCwgZmlndXJlIG91dCB3aGF0IGl0IGlzCiAgICAgICAgaWYgKGNvbmZpZy5fZGF5T2ZZZWFyKSB7CiAgICAgICAgICAgIHllYXJUb1VzZSA9IGRmbChjb25maWcuX2FbWUVBUl0sIGN1cnJlbnREYXRlW1lFQVJdKTsKCiAgICAgICAgICAgIGlmIChjb25maWcuX2RheU9mWWVhciA+IGRheXNJblllYXIoeWVhclRvVXNlKSkgewogICAgICAgICAgICAgICAgY29uZmlnLl9wZi5fb3ZlcmZsb3dEYXlPZlllYXIgPSB0cnVlOwogICAgICAgICAgICB9CgogICAgICAgICAgICBkYXRlID0gbWFrZVVUQ0RhdGUoeWVhclRvVXNlLCAwLCBjb25maWcuX2RheU9mWWVhcik7CiAgICAgICAgICAgIGNvbmZpZy5fYVtNT05USF0gPSBkYXRlLmdldFVUQ01vbnRoKCk7CiAgICAgICAgICAgIGNvbmZpZy5fYVtEQVRFXSA9IGRhdGUuZ2V0VVRDRGF0ZSgpOwogICAgICAgIH0KCiAgICAgICAgLy8gRGVmYXVsdCB0byBjdXJyZW50IGRhdGUuCiAgICAgICAgLy8gKiBpZiBubyB5ZWFyLCBtb250aCwgZGF5IG9mIG1vbnRoIGFyZSBnaXZlbiwgZGVmYXVsdCB0byB0b2RheQogICAgICAgIC8vICogaWYgZGF5IG9mIG1vbnRoIGlzIGdpdmVuLCBkZWZhdWx0IG1vbnRoIGFuZCB5ZWFyCiAgICAgICAgLy8gKiBpZiBtb250aCBpcyBnaXZlbiwgZGVmYXVsdCBvbmx5IHllYXIKICAgICAgICAvLyAqIGlmIHllYXIgaXMgZ2l2ZW4sIGRvbid0IGRlZmF1bHQgYW55dGhpbmcKICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMyAmJiBjb25maWcuX2FbaV0gPT0gbnVsbDsgKytpKSB7CiAgICAgICAgICAgIGNvbmZpZy5fYVtpXSA9IGlucHV0W2ldID0gY3VycmVudERhdGVbaV07CiAgICAgICAgfQoKICAgICAgICAvLyBaZXJvIG91dCB3aGF0ZXZlciB3YXMgbm90IGRlZmF1bHRlZCwgaW5jbHVkaW5nIHRpbWUKICAgICAgICBmb3IgKDsgaSA8IDc7IGkrKykgewogICAgICAgICAgICBjb25maWcuX2FbaV0gPSBpbnB1dFtpXSA9IChjb25maWcuX2FbaV0gPT0gbnVsbCkgPyAoaSA9PT0gMiA/IDEgOiAwKSA6IGNvbmZpZy5fYVtpXTsKICAgICAgICB9CgogICAgICAgIC8vIENoZWNrIGZvciAyNDowMDowMC4wMDAKICAgICAgICBpZiAoY29uZmlnLl9hW0hPVVJdID09PSAyNCAmJgogICAgICAgICAgICAgICAgY29uZmlnLl9hW01JTlVURV0gPT09IDAgJiYKICAgICAgICAgICAgICAgIGNvbmZpZy5fYVtTRUNPTkRdID09PSAwICYmCiAgICAgICAgICAgICAgICBjb25maWcuX2FbTUlMTElTRUNPTkRdID09PSAwKSB7CiAgICAgICAgICAgIGNvbmZpZy5fbmV4dERheSA9IHRydWU7CiAgICAgICAgICAgIGNvbmZpZy5fYVtIT1VSXSA9IDA7CiAgICAgICAgfQoKICAgICAgICBjb25maWcuX2QgPSAoY29uZmlnLl91c2VVVEMgPyBtYWtlVVRDRGF0ZSA6IG1ha2VEYXRlKS5hcHBseShudWxsLCBpbnB1dCk7CiAgICAgICAgLy8gQXBwbHkgdGltZXpvbmUgb2Zmc2V0IGZyb20gaW5wdXQuIFRoZSBhY3R1YWwgem9uZSBjYW4gYmUgY2hhbmdlZAogICAgICAgIC8vIHdpdGggcGFyc2Vab25lLgogICAgICAgIGlmIChjb25maWcuX3R6bSAhPSBudWxsKSB7CiAgICAgICAgICAgIGNvbmZpZy5fZC5zZXRVVENNaW51dGVzKGNvbmZpZy5fZC5nZXRVVENNaW51dGVzKCkgKyBjb25maWcuX3R6bSk7CiAgICAgICAgfQoKICAgICAgICBpZiAoY29uZmlnLl9uZXh0RGF5KSB7CiAgICAgICAgICAgIGNvbmZpZy5fYVtIT1VSXSA9IDI0OwogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBkYXRlRnJvbU9iamVjdChjb25maWcpIHsKICAgICAgICB2YXIgbm9ybWFsaXplZElucHV0OwoKICAgICAgICBpZiAoY29uZmlnLl9kKSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIG5vcm1hbGl6ZWRJbnB1dCA9IG5vcm1hbGl6ZU9iamVjdFVuaXRzKGNvbmZpZy5faSk7CiAgICAgICAgY29uZmlnLl9hID0gWwogICAgICAgICAgICBub3JtYWxpemVkSW5wdXQueWVhciwKICAgICAgICAgICAgbm9ybWFsaXplZElucHV0Lm1vbnRoLAogICAgICAgICAgICBub3JtYWxpemVkSW5wdXQuZGF5IHx8IG5vcm1hbGl6ZWRJbnB1dC5kYXRlLAogICAgICAgICAgICBub3JtYWxpemVkSW5wdXQuaG91ciwKICAgICAgICAgICAgbm9ybWFsaXplZElucHV0Lm1pbnV0ZSwKICAgICAgICAgICAgbm9ybWFsaXplZElucHV0LnNlY29uZCwKICAgICAgICAgICAgbm9ybWFsaXplZElucHV0Lm1pbGxpc2Vjb25kCiAgICAgICAgXTsKCiAgICAgICAgZGF0ZUZyb21Db25maWcoY29uZmlnKTsKICAgIH0KCiAgICBmdW5jdGlvbiBjdXJyZW50RGF0ZUFycmF5KGNvbmZpZykgewogICAgICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpOwogICAgICAgIGlmIChjb25maWcuX3VzZVVUQykgewogICAgICAgICAgICByZXR1cm4gWwogICAgICAgICAgICAgICAgbm93LmdldFVUQ0Z1bGxZZWFyKCksCiAgICAgICAgICAgICAgICBub3cuZ2V0VVRDTW9udGgoKSwKICAgICAgICAgICAgICAgIG5vdy5nZXRVVENEYXRlKCkKICAgICAgICAgICAgXTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXR1cm4gW25vdy5nZXRGdWxsWWVhcigpLCBub3cuZ2V0TW9udGgoKSwgbm93LmdldERhdGUoKV07CiAgICAgICAgfQogICAgfQoKICAgIC8vIGRhdGUgZnJvbSBzdHJpbmcgYW5kIGZvcm1hdCBzdHJpbmcKICAgIGZ1bmN0aW9uIG1ha2VEYXRlRnJvbVN0cmluZ0FuZEZvcm1hdChjb25maWcpIHsKICAgICAgICBpZiAoY29uZmlnLl9mID09PSBtb21lbnQuSVNPXzg2MDEpIHsKICAgICAgICAgICAgcGFyc2VJU08oY29uZmlnKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgY29uZmlnLl9hID0gW107CiAgICAgICAgY29uZmlnLl9wZi5lbXB0eSA9IHRydWU7CgogICAgICAgIC8vIFRoaXMgYXJyYXkgaXMgdXNlZCB0byBtYWtlIGEgRGF0ZSwgZWl0aGVyIHdpdGggYG5ldyBEYXRlYCBvciBgRGF0ZS5VVENgCiAgICAgICAgdmFyIHN0cmluZyA9ICcnICsgY29uZmlnLl9pLAogICAgICAgICAgICBpLCBwYXJzZWRJbnB1dCwgdG9rZW5zLCB0b2tlbiwgc2tpcHBlZCwKICAgICAgICAgICAgc3RyaW5nTGVuZ3RoID0gc3RyaW5nLmxlbmd0aCwKICAgICAgICAgICAgdG90YWxQYXJzZWRJbnB1dExlbmd0aCA9IDA7CgogICAgICAgIHRva2VucyA9IGV4cGFuZEZvcm1hdChjb25maWcuX2YsIGNvbmZpZy5fbG9jYWxlKS5tYXRjaChmb3JtYXR0aW5nVG9rZW5zKSB8fCBbXTsKCiAgICAgICAgZm9yIChpID0gMDsgaSA8IHRva2Vucy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICB0b2tlbiA9IHRva2Vuc1tpXTsKICAgICAgICAgICAgcGFyc2VkSW5wdXQgPSAoc3RyaW5nLm1hdGNoKGdldFBhcnNlUmVnZXhGb3JUb2tlbih0b2tlbiwgY29uZmlnKSkgfHwgW10pWzBdOwogICAgICAgICAgICBpZiAocGFyc2VkSW5wdXQpIHsKICAgICAgICAgICAgICAgIHNraXBwZWQgPSBzdHJpbmcuc3Vic3RyKDAsIHN0cmluZy5pbmRleE9mKHBhcnNlZElucHV0KSk7CiAgICAgICAgICAgICAgICBpZiAoc2tpcHBlZC5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgY29uZmlnLl9wZi51bnVzZWRJbnB1dC5wdXNoKHNraXBwZWQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgc3RyaW5nID0gc3RyaW5nLnNsaWNlKHN0cmluZy5pbmRleE9mKHBhcnNlZElucHV0KSArIHBhcnNlZElucHV0Lmxlbmd0aCk7CiAgICAgICAgICAgICAgICB0b3RhbFBhcnNlZElucHV0TGVuZ3RoICs9IHBhcnNlZElucHV0Lmxlbmd0aDsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBkb24ndCBwYXJzZSBpZiBpdCdzIG5vdCBhIGtub3duIHRva2VuCiAgICAgICAgICAgIGlmIChmb3JtYXRUb2tlbkZ1bmN0aW9uc1t0b2tlbl0pIHsKICAgICAgICAgICAgICAgIGlmIChwYXJzZWRJbnB1dCkgewogICAgICAgICAgICAgICAgICAgIGNvbmZpZy5fcGYuZW1wdHkgPSBmYWxzZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIGNvbmZpZy5fcGYudW51c2VkVG9rZW5zLnB1c2godG9rZW4pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYWRkVGltZVRvQXJyYXlGcm9tVG9rZW4odG9rZW4sIHBhcnNlZElucHV0LCBjb25maWcpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYgKGNvbmZpZy5fc3RyaWN0ICYmICFwYXJzZWRJbnB1dCkgewogICAgICAgICAgICAgICAgY29uZmlnLl9wZi51bnVzZWRUb2tlbnMucHVzaCh0b2tlbik7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIGFkZCByZW1haW5pbmcgdW5wYXJzZWQgaW5wdXQgbGVuZ3RoIHRvIHRoZSBzdHJpbmcKICAgICAgICBjb25maWcuX3BmLmNoYXJzTGVmdE92ZXIgPSBzdHJpbmdMZW5ndGggLSB0b3RhbFBhcnNlZElucHV0TGVuZ3RoOwogICAgICAgIGlmIChzdHJpbmcubGVuZ3RoID4gMCkgewogICAgICAgICAgICBjb25maWcuX3BmLnVudXNlZElucHV0LnB1c2goc3RyaW5nKTsKICAgICAgICB9CgogICAgICAgIC8vIGNsZWFyIF8xMmggZmxhZyBpZiBob3VyIGlzIDw9IDEyCiAgICAgICAgaWYgKGNvbmZpZy5fcGYuYmlnSG91ciA9PT0gdHJ1ZSAmJiBjb25maWcuX2FbSE9VUl0gPD0gMTIpIHsKICAgICAgICAgICAgY29uZmlnLl9wZi5iaWdIb3VyID0gdW5kZWZpbmVkOwogICAgICAgIH0KICAgICAgICAvLyBoYW5kbGUgYW0gcG0KICAgICAgICBpZiAoY29uZmlnLl9pc1BtICYmIGNvbmZpZy5fYVtIT1VSXSA8IDEyKSB7CiAgICAgICAgICAgIGNvbmZpZy5fYVtIT1VSXSArPSAxMjsKICAgICAgICB9CiAgICAgICAgLy8gaWYgaXMgMTIgYW0sIGNoYW5nZSBob3VycyB0byAwCiAgICAgICAgaWYgKGNvbmZpZy5faXNQbSA9PT0gZmFsc2UgJiYgY29uZmlnLl9hW0hPVVJdID09PSAxMikgewogICAgICAgICAgICBjb25maWcuX2FbSE9VUl0gPSAwOwogICAgICAgIH0KICAgICAgICBkYXRlRnJvbUNvbmZpZyhjb25maWcpOwogICAgICAgIGNoZWNrT3ZlcmZsb3coY29uZmlnKTsKICAgIH0KCiAgICBmdW5jdGlvbiB1bmVzY2FwZUZvcm1hdChzKSB7CiAgICAgICAgcmV0dXJuIHMucmVwbGFjZSgvXFwoXFspfFxcKFxdKXxcWyhbXlxdXFtdKilcXXxcXCguKS9nLCBmdW5jdGlvbiAobWF0Y2hlZCwgcDEsIHAyLCBwMywgcDQpIHsKICAgICAgICAgICAgcmV0dXJuIHAxIHx8IHAyIHx8IHAzIHx8IHA0OwogICAgICAgIH0pOwogICAgfQoKICAgIC8vIENvZGUgZnJvbSBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzM1NjE0OTMvaXMtdGhlcmUtYS1yZWdleHAtZXNjYXBlLWZ1bmN0aW9uLWluLWphdmFzY3JpcHQKICAgIGZ1bmN0aW9uIHJlZ2V4cEVzY2FwZShzKSB7CiAgICAgICAgcmV0dXJuIHMucmVwbGFjZSgvWy1cL1xcXiQqKz8uKCl8W1xde31dL2csICdcXCQmJyk7CiAgICB9CgogICAgLy8gZGF0ZSBmcm9tIHN0cmluZyBhbmQgYXJyYXkgb2YgZm9ybWF0IHN0cmluZ3MKICAgIGZ1bmN0aW9uIG1ha2VEYXRlRnJvbVN0cmluZ0FuZEFycmF5KGNvbmZpZykgewogICAgICAgIHZhciB0ZW1wQ29uZmlnLAogICAgICAgICAgICBiZXN0TW9tZW50LAoKICAgICAgICAgICAgc2NvcmVUb0JlYXQsCiAgICAgICAgICAgIGksCiAgICAgICAgICAgIGN1cnJlbnRTY29yZTsKCiAgICAgICAgaWYgKGNvbmZpZy5fZi5sZW5ndGggPT09IDApIHsKICAgICAgICAgICAgY29uZmlnLl9wZi5pbnZhbGlkRm9ybWF0ID0gdHJ1ZTsKICAgICAgICAgICAgY29uZmlnLl9kID0gbmV3IERhdGUoTmFOKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgZm9yIChpID0gMDsgaSA8IGNvbmZpZy5fZi5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBjdXJyZW50U2NvcmUgPSAwOwogICAgICAgICAgICB0ZW1wQ29uZmlnID0gY29weUNvbmZpZyh7fSwgY29uZmlnKTsKICAgICAgICAgICAgaWYgKGNvbmZpZy5fdXNlVVRDICE9IG51bGwpIHsKICAgICAgICAgICAgICAgIHRlbXBDb25maWcuX3VzZVVUQyA9IGNvbmZpZy5fdXNlVVRDOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRlbXBDb25maWcuX3BmID0gZGVmYXVsdFBhcnNpbmdGbGFncygpOwogICAgICAgICAgICB0ZW1wQ29uZmlnLl9mID0gY29uZmlnLl9mW2ldOwogICAgICAgICAgICBtYWtlRGF0ZUZyb21TdHJpbmdBbmRGb3JtYXQodGVtcENvbmZpZyk7CgogICAgICAgICAgICBpZiAoIWlzVmFsaWQodGVtcENvbmZpZykpIHsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBpZiB0aGVyZSBpcyBhbnkgaW5wdXQgdGhhdCB3YXMgbm90IHBhcnNlZCBhZGQgYSBwZW5hbHR5IGZvciB0aGF0IGZvcm1hdAogICAgICAgICAgICBjdXJyZW50U2NvcmUgKz0gdGVtcENvbmZpZy5fcGYuY2hhcnNMZWZ0T3ZlcjsKCiAgICAgICAgICAgIC8vb3IgdG9rZW5zCiAgICAgICAgICAgIGN1cnJlbnRTY29yZSArPSB0ZW1wQ29uZmlnLl9wZi51bnVzZWRUb2tlbnMubGVuZ3RoICogMTA7CgogICAgICAgICAgICB0ZW1wQ29uZmlnLl9wZi5zY29yZSA9IGN1cnJlbnRTY29yZTsKCiAgICAgICAgICAgIGlmIChzY29yZVRvQmVhdCA9PSBudWxsIHx8IGN1cnJlbnRTY29yZSA8IHNjb3JlVG9CZWF0KSB7CiAgICAgICAgICAgICAgICBzY29yZVRvQmVhdCA9IGN1cnJlbnRTY29yZTsKICAgICAgICAgICAgICAgIGJlc3RNb21lbnQgPSB0ZW1wQ29uZmlnOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBleHRlbmQoY29uZmlnLCBiZXN0TW9tZW50IHx8IHRlbXBDb25maWcpOwogICAgfQoKICAgIC8vIGRhdGUgZnJvbSBpc28gZm9ybWF0CiAgICBmdW5jdGlvbiBwYXJzZUlTTyhjb25maWcpIHsKICAgICAgICB2YXIgaSwgbCwKICAgICAgICAgICAgc3RyaW5nID0gY29uZmlnLl9pLAogICAgICAgICAgICBtYXRjaCA9IGlzb1JlZ2V4LmV4ZWMoc3RyaW5nKTsKCiAgICAgICAgaWYgKG1hdGNoKSB7CiAgICAgICAgICAgIGNvbmZpZy5fcGYuaXNvID0gdHJ1ZTsKICAgICAgICAgICAgZm9yIChpID0gMCwgbCA9IGlzb0RhdGVzLmxlbmd0aDsgaSA8IGw7IGkrKykgewogICAgICAgICAgICAgICAgaWYgKGlzb0RhdGVzW2ldWzFdLmV4ZWMoc3RyaW5nKSkgewogICAgICAgICAgICAgICAgICAgIC8vIG1hdGNoWzVdIHNob3VsZCBiZSAnVCcgb3IgdW5kZWZpbmVkCiAgICAgICAgICAgICAgICAgICAgY29uZmlnLl9mID0gaXNvRGF0ZXNbaV1bMF0gKyAobWF0Y2hbNl0gfHwgJyAnKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBmb3IgKGkgPSAwLCBsID0gaXNvVGltZXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7CiAgICAgICAgICAgICAgICBpZiAoaXNvVGltZXNbaV1bMV0uZXhlYyhzdHJpbmcpKSB7CiAgICAgICAgICAgICAgICAgICAgY29uZmlnLl9mICs9IGlzb1RpbWVzW2ldWzBdOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChzdHJpbmcubWF0Y2gocGFyc2VUb2tlblRpbWV6b25lKSkgewogICAgICAgICAgICAgICAgY29uZmlnLl9mICs9ICdaJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBtYWtlRGF0ZUZyb21TdHJpbmdBbmRGb3JtYXQoY29uZmlnKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjb25maWcuX2lzVmFsaWQgPSBmYWxzZTsKICAgICAgICB9CiAgICB9CgogICAgLy8gZGF0ZSBmcm9tIGlzbyBmb3JtYXQgb3IgZmFsbGJhY2sKICAgIGZ1bmN0aW9uIG1ha2VEYXRlRnJvbVN0cmluZyhjb25maWcpIHsKICAgICAgICBwYXJzZUlTTyhjb25maWcpOwogICAgICAgIGlmIChjb25maWcuX2lzVmFsaWQgPT09IGZhbHNlKSB7CiAgICAgICAgICAgIGRlbGV0ZSBjb25maWcuX2lzVmFsaWQ7CiAgICAgICAgICAgIG1vbWVudC5jcmVhdGVGcm9tSW5wdXRGYWxsYmFjayhjb25maWcpOwogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBtYXAoYXJyLCBmbikgewogICAgICAgIHZhciByZXMgPSBbXSwgaTsKICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgIHJlcy5wdXNoKGZuKGFycltpXSwgaSkpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcmVzOwogICAgfQoKICAgIGZ1bmN0aW9uIG1ha2VEYXRlRnJvbUlucHV0KGNvbmZpZykgewogICAgICAgIHZhciBpbnB1dCA9IGNvbmZpZy5faSwgbWF0Y2hlZDsKICAgICAgICBpZiAoaW5wdXQgPT09IHVuZGVmaW5lZCkgewogICAgICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZSgpOwogICAgICAgIH0gZWxzZSBpZiAoaXNEYXRlKGlucHV0KSkgewogICAgICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZSgraW5wdXQpOwogICAgICAgIH0gZWxzZSBpZiAoKG1hdGNoZWQgPSBhc3BOZXRKc29uUmVnZXguZXhlYyhpbnB1dCkpICE9PSBudWxsKSB7CiAgICAgICAgICAgIGNvbmZpZy5fZCA9IG5ldyBEYXRlKCttYXRjaGVkWzFdKTsKICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycpIHsKICAgICAgICAgICAgbWFrZURhdGVGcm9tU3RyaW5nKGNvbmZpZyk7CiAgICAgICAgfSBlbHNlIGlmIChpc0FycmF5KGlucHV0KSkgewogICAgICAgICAgICBjb25maWcuX2EgPSBtYXAoaW5wdXQuc2xpY2UoMCksIGZ1bmN0aW9uIChvYmopIHsKICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZUludChvYmosIDEwKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGRhdGVGcm9tQ29uZmlnKGNvbmZpZyk7CiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YoaW5wdXQpID09PSAnb2JqZWN0JykgewogICAgICAgICAgICBkYXRlRnJvbU9iamVjdChjb25maWcpOwogICAgICAgIH0gZWxzZSBpZiAodHlwZW9mKGlucHV0KSA9PT0gJ251bWJlcicpIHsKICAgICAgICAgICAgLy8gZnJvbSBtaWxsaXNlY29uZHMKICAgICAgICAgICAgY29uZmlnLl9kID0gbmV3IERhdGUoaW5wdXQpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIG1vbWVudC5jcmVhdGVGcm9tSW5wdXRGYWxsYmFjayhjb25maWcpOwogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBtYWtlRGF0ZSh5LCBtLCBkLCBoLCBNLCBzLCBtcykgewogICAgICAgIC8vY2FuJ3QganVzdCBhcHBseSgpIHRvIGNyZWF0ZSBhIGRhdGU6CiAgICAgICAgLy9odHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE4MTM0OC9pbnN0YW50aWF0aW5nLWEtamF2YXNjcmlwdC1vYmplY3QtYnktY2FsbGluZy1wcm90b3R5cGUtY29uc3RydWN0b3ItYXBwbHkKICAgICAgICB2YXIgZGF0ZSA9IG5ldyBEYXRlKHksIG0sIGQsIGgsIE0sIHMsIG1zKTsKCiAgICAgICAgLy90aGUgZGF0ZSBjb25zdHJ1Y3RvciBkb2Vzbid0IGFjY2VwdCB5ZWFycyA8IDE5NzAKICAgICAgICBpZiAoeSA8IDE5NzApIHsKICAgICAgICAgICAgZGF0ZS5zZXRGdWxsWWVhcih5KTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGRhdGU7CiAgICB9CgogICAgZnVuY3Rpb24gbWFrZVVUQ0RhdGUoeSkgewogICAgICAgIHZhciBkYXRlID0gbmV3IERhdGUoRGF0ZS5VVEMuYXBwbHkobnVsbCwgYXJndW1lbnRzKSk7CiAgICAgICAgaWYgKHkgPCAxOTcwKSB7CiAgICAgICAgICAgIGRhdGUuc2V0VVRDRnVsbFllYXIoeSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBkYXRlOwogICAgfQoKICAgIGZ1bmN0aW9uIHBhcnNlV2Vla2RheShpbnB1dCwgbG9jYWxlKSB7CiAgICAgICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycpIHsKICAgICAgICAgICAgaWYgKCFpc05hTihpbnB1dCkpIHsKICAgICAgICAgICAgICAgIGlucHV0ID0gcGFyc2VJbnQoaW5wdXQsIDEwKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIGlucHV0ID0gbG9jYWxlLndlZWtkYXlzUGFyc2UoaW5wdXQpOwogICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBpbnB1dCAhPT0gJ251bWJlcicpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gaW5wdXQ7CiAgICB9CgogICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAgICAgIFJlbGF0aXZlIFRpbWUKICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCgogICAgLy8gaGVscGVyIGZ1bmN0aW9uIGZvciBtb21lbnQuZm4uZnJvbSwgbW9tZW50LmZuLmZyb21Ob3csIGFuZCBtb21lbnQuZHVyYXRpb24uZm4uaHVtYW5pemUKICAgIGZ1bmN0aW9uIHN1YnN0aXR1dGVUaW1lQWdvKHN0cmluZywgbnVtYmVyLCB3aXRob3V0U3VmZml4LCBpc0Z1dHVyZSwgbG9jYWxlKSB7CiAgICAgICAgcmV0dXJuIGxvY2FsZS5yZWxhdGl2ZVRpbWUobnVtYmVyIHx8IDEsICEhd2l0aG91dFN1ZmZpeCwgc3RyaW5nLCBpc0Z1dHVyZSk7CiAgICB9CgogICAgZnVuY3Rpb24gcmVsYXRpdmVUaW1lKHBvc05lZ0R1cmF0aW9uLCB3aXRob3V0U3VmZml4LCBsb2NhbGUpIHsKICAgICAgICB2YXIgZHVyYXRpb24gPSBtb21lbnQuZHVyYXRpb24ocG9zTmVnRHVyYXRpb24pLmFicygpLAogICAgICAgICAgICBzZWNvbmRzID0gcm91bmQoZHVyYXRpb24uYXMoJ3MnKSksCiAgICAgICAgICAgIG1pbnV0ZXMgPSByb3VuZChkdXJhdGlvbi5hcygnbScpKSwKICAgICAgICAgICAgaG91cnMgPSByb3VuZChkdXJhdGlvbi5hcygnaCcpKSwKICAgICAgICAgICAgZGF5cyA9IHJvdW5kKGR1cmF0aW9uLmFzKCdkJykpLAogICAgICAgICAgICBtb250aHMgPSByb3VuZChkdXJhdGlvbi5hcygnTScpKSwKICAgICAgICAgICAgeWVhcnMgPSByb3VuZChkdXJhdGlvbi5hcygneScpKSwKCiAgICAgICAgICAgIGFyZ3MgPSBzZWNvbmRzIDwgcmVsYXRpdmVUaW1lVGhyZXNob2xkcy5zICYmIFsncycsIHNlY29uZHNdIHx8CiAgICAgICAgICAgICAgICBtaW51dGVzID09PSAxICYmIFsnbSddIHx8CiAgICAgICAgICAgICAgICBtaW51dGVzIDwgcmVsYXRpdmVUaW1lVGhyZXNob2xkcy5tICYmIFsnbW0nLCBtaW51dGVzXSB8fAogICAgICAgICAgICAgICAgaG91cnMgPT09IDEgJiYgWydoJ10gfHwKICAgICAgICAgICAgICAgIGhvdXJzIDwgcmVsYXRpdmVUaW1lVGhyZXNob2xkcy5oICYmIFsnaGgnLCBob3Vyc10gfHwKICAgICAgICAgICAgICAgIGRheXMgPT09IDEgJiYgWydkJ10gfHwKICAgICAgICAgICAgICAgIGRheXMgPCByZWxhdGl2ZVRpbWVUaHJlc2hvbGRzLmQgJiYgWydkZCcsIGRheXNdIHx8CiAgICAgICAgICAgICAgICBtb250aHMgPT09IDEgJiYgWydNJ10gfHwKICAgICAgICAgICAgICAgIG1vbnRocyA8IHJlbGF0aXZlVGltZVRocmVzaG9sZHMuTSAmJiBbJ01NJywgbW9udGhzXSB8fAogICAgICAgICAgICAgICAgeWVhcnMgPT09IDEgJiYgWyd5J10gfHwgWyd5eScsIHllYXJzXTsKCiAgICAgICAgYXJnc1syXSA9IHdpdGhvdXRTdWZmaXg7CiAgICAgICAgYXJnc1szXSA9ICtwb3NOZWdEdXJhdGlvbiA+IDA7CiAgICAgICAgYXJnc1s0XSA9IGxvY2FsZTsKICAgICAgICByZXR1cm4gc3Vic3RpdHV0ZVRpbWVBZ28uYXBwbHkoe30sIGFyZ3MpOwogICAgfQoKCiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICAgICAgV2VlayBvZiBZZWFyCiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgoKICAgIC8vIGZpcnN0RGF5T2ZXZWVrICAgICAgIDAgPSBzdW4sIDYgPSBzYXQKICAgIC8vICAgICAgICAgICAgICAgICAgICAgIHRoZSBkYXkgb2YgdGhlIHdlZWsgdGhhdCBzdGFydHMgdGhlIHdlZWsKICAgIC8vICAgICAgICAgICAgICAgICAgICAgICh1c3VhbGx5IHN1bmRheSBvciBtb25kYXkpCiAgICAvLyBmaXJzdERheU9mV2Vla09mWWVhciAwID0gc3VuLCA2ID0gc2F0CiAgICAvLyAgICAgICAgICAgICAgICAgICAgICB0aGUgZmlyc3Qgd2VlayBpcyB0aGUgd2VlayB0aGF0IGNvbnRhaW5zIHRoZSBmaXJzdAogICAgLy8gICAgICAgICAgICAgICAgICAgICAgb2YgdGhpcyBkYXkgb2YgdGhlIHdlZWsKICAgIC8vICAgICAgICAgICAgICAgICAgICAgIChlZy4gSVNPIHdlZWtzIHVzZSB0aHVyc2RheSAoNCkpCiAgICBmdW5jdGlvbiB3ZWVrT2ZZZWFyKG1vbSwgZmlyc3REYXlPZldlZWssIGZpcnN0RGF5T2ZXZWVrT2ZZZWFyKSB7CiAgICAgICAgdmFyIGVuZCA9IGZpcnN0RGF5T2ZXZWVrT2ZZZWFyIC0gZmlyc3REYXlPZldlZWssCiAgICAgICAgICAgIGRheXNUb0RheU9mV2VlayA9IGZpcnN0RGF5T2ZXZWVrT2ZZZWFyIC0gbW9tLmRheSgpLAogICAgICAgICAgICBhZGp1c3RlZE1vbWVudDsKCgogICAgICAgIGlmIChkYXlzVG9EYXlPZldlZWsgPiBlbmQpIHsKICAgICAgICAgICAgZGF5c1RvRGF5T2ZXZWVrIC09IDc7CiAgICAgICAgfQoKICAgICAgICBpZiAoZGF5c1RvRGF5T2ZXZWVrIDwgZW5kIC0gNykgewogICAgICAgICAgICBkYXlzVG9EYXlPZldlZWsgKz0gNzsKICAgICAgICB9CgogICAgICAgIGFkanVzdGVkTW9tZW50ID0gbW9tZW50KG1vbSkuYWRkKGRheXNUb0RheU9mV2VlaywgJ2QnKTsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICB3ZWVrOiBNYXRoLmNlaWwoYWRqdXN0ZWRNb21lbnQuZGF5T2ZZZWFyKCkgLyA3KSwKICAgICAgICAgICAgeWVhcjogYWRqdXN0ZWRNb21lbnQueWVhcigpCiAgICAgICAgfTsKICAgIH0KCiAgICAvL2h0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPX3dlZWtfZGF0ZSNDYWxjdWxhdGluZ19hX2RhdGVfZ2l2ZW5fdGhlX3llYXIuMkNfd2Vla19udW1iZXJfYW5kX3dlZWtkYXkKICAgIGZ1bmN0aW9uIGRheU9mWWVhckZyb21XZWVrcyh5ZWFyLCB3ZWVrLCB3ZWVrZGF5LCBmaXJzdERheU9mV2Vla09mWWVhciwgZmlyc3REYXlPZldlZWspIHsKICAgICAgICB2YXIgZCA9IG1ha2VVVENEYXRlKHllYXIsIDAsIDEpLmdldFVUQ0RheSgpLCBkYXlzVG9BZGQsIGRheU9mWWVhcjsKCiAgICAgICAgZCA9IGQgPT09IDAgPyA3IDogZDsKICAgICAgICB3ZWVrZGF5ID0gd2Vla2RheSAhPSBudWxsID8gd2Vla2RheSA6IGZpcnN0RGF5T2ZXZWVrOwogICAgICAgIGRheXNUb0FkZCA9IGZpcnN0RGF5T2ZXZWVrIC0gZCArIChkID4gZmlyc3REYXlPZldlZWtPZlllYXIgPyA3IDogMCkgLSAoZCA8IGZpcnN0RGF5T2ZXZWVrID8gNyA6IDApOwogICAgICAgIGRheU9mWWVhciA9IDcgKiAod2VlayAtIDEpICsgKHdlZWtkYXkgLSBmaXJzdERheU9mV2VlaykgKyBkYXlzVG9BZGQgKyAxOwoKICAgICAgICByZXR1cm4gewogICAgICAgICAgICB5ZWFyOiBkYXlPZlllYXIgPiAwID8geWVhciA6IHllYXIgLSAxLAogICAgICAgICAgICBkYXlPZlllYXI6IGRheU9mWWVhciA+IDAgPyAgZGF5T2ZZZWFyIDogZGF5c0luWWVhcih5ZWFyIC0gMSkgKyBkYXlPZlllYXIKICAgICAgICB9OwogICAgfQoKICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgICAgICBUb3AgTGV2ZWwgRnVuY3Rpb25zCiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgogICAgZnVuY3Rpb24gbWFrZU1vbWVudChjb25maWcpIHsKICAgICAgICB2YXIgaW5wdXQgPSBjb25maWcuX2ksCiAgICAgICAgICAgIGZvcm1hdCA9IGNvbmZpZy5fZiwKICAgICAgICAgICAgcmVzOwoKICAgICAgICBjb25maWcuX2xvY2FsZSA9IGNvbmZpZy5fbG9jYWxlIHx8IG1vbWVudC5sb2NhbGVEYXRhKGNvbmZpZy5fbCk7CgogICAgICAgIGlmIChpbnB1dCA9PT0gbnVsbCB8fCAoZm9ybWF0ID09PSB1bmRlZmluZWQgJiYgaW5wdXQgPT09ICcnKSkgewogICAgICAgICAgICByZXR1cm4gbW9tZW50LmludmFsaWQoe251bGxJbnB1dDogdHJ1ZX0pOwogICAgICAgIH0KCiAgICAgICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycpIHsKICAgICAgICAgICAgY29uZmlnLl9pID0gaW5wdXQgPSBjb25maWcuX2xvY2FsZS5wcmVwYXJzZShpbnB1dCk7CiAgICAgICAgfQoKICAgICAgICBpZiAobW9tZW50LmlzTW9tZW50KGlucHV0KSkgewogICAgICAgICAgICByZXR1cm4gbmV3IE1vbWVudChpbnB1dCwgdHJ1ZSk7CiAgICAgICAgfSBlbHNlIGlmIChmb3JtYXQpIHsKICAgICAgICAgICAgaWYgKGlzQXJyYXkoZm9ybWF0KSkgewogICAgICAgICAgICAgICAgbWFrZURhdGVGcm9tU3RyaW5nQW5kQXJyYXkoY29uZmlnKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIG1ha2VEYXRlRnJvbVN0cmluZ0FuZEZvcm1hdChjb25maWcpOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgbWFrZURhdGVGcm9tSW5wdXQoY29uZmlnKTsKICAgICAgICB9CgogICAgICAgIHJlcyA9IG5ldyBNb21lbnQoY29uZmlnKTsKICAgICAgICBpZiAocmVzLl9uZXh0RGF5KSB7CiAgICAgICAgICAgIC8vIEFkZGluZyBpcyBzbWFydCBlbm91Z2ggYXJvdW5kIERTVAogICAgICAgICAgICByZXMuYWRkKDEsICdkJyk7CiAgICAgICAgICAgIHJlcy5fbmV4dERheSA9IHVuZGVmaW5lZDsKICAgICAgICB9CgogICAgICAgIHJldHVybiByZXM7CiAgICB9CgogICAgbW9tZW50ID0gZnVuY3Rpb24gKGlucHV0LCBmb3JtYXQsIGxvY2FsZSwgc3RyaWN0KSB7CiAgICAgICAgdmFyIGM7CgogICAgICAgIGlmICh0eXBlb2YobG9jYWxlKSA9PT0gJ2Jvb2xlYW4nKSB7CiAgICAgICAgICAgIHN0cmljdCA9IGxvY2FsZTsKICAgICAgICAgICAgbG9jYWxlID0gdW5kZWZpbmVkOwogICAgICAgIH0KICAgICAgICAvLyBvYmplY3QgY29uc3RydWN0aW9uIG11c3QgYmUgZG9uZSB0aGlzIHdheS4KICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbW9tZW50L21vbWVudC9pc3N1ZXMvMTQyMwogICAgICAgIGMgPSB7fTsKICAgICAgICBjLl9pc0FNb21lbnRPYmplY3QgPSB0cnVlOwogICAgICAgIGMuX2kgPSBpbnB1dDsKICAgICAgICBjLl9mID0gZm9ybWF0OwogICAgICAgIGMuX2wgPSBsb2NhbGU7CiAgICAgICAgYy5fc3RyaWN0ID0gc3RyaWN0OwogICAgICAgIGMuX2lzVVRDID0gZmFsc2U7CiAgICAgICAgYy5fcGYgPSBkZWZhdWx0UGFyc2luZ0ZsYWdzKCk7CgogICAgICAgIHJldHVybiBtYWtlTW9tZW50KGMpOwogICAgfTsKCiAgICBtb21lbnQuc3VwcHJlc3NEZXByZWNhdGlvbldhcm5pbmdzID0gZmFsc2U7CgogICAgbW9tZW50LmNyZWF0ZUZyb21JbnB1dEZhbGxiYWNrID0gZGVwcmVjYXRlKAogICAgICAgICdtb21lbnQgY29uc3RydWN0aW9uIGZhbGxzIGJhY2sgdG8ganMgRGF0ZS4gVGhpcyBpcyAnICsKICAgICAgICAnZGlzY291cmFnZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB1cGNvbWluZyBtYWpvciAnICsKICAgICAgICAncmVsZWFzZS4gUGxlYXNlIHJlZmVyIHRvICcgKwogICAgICAgICdodHRwczovL2dpdGh1Yi5jb20vbW9tZW50L21vbWVudC9pc3N1ZXMvMTQwNyBmb3IgbW9yZSBpbmZvLicsCiAgICAgICAgZnVuY3Rpb24gKGNvbmZpZykgewogICAgICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZShjb25maWcuX2kgKyAoY29uZmlnLl91c2VVVEMgPyAnIFVUQycgOiAnJykpOwogICAgICAgIH0KICAgICk7CgogICAgLy8gUGljayBhIG1vbWVudCBtIGZyb20gbW9tZW50cyBzbyB0aGF0IG1bZm5dKG90aGVyKSBpcyB0cnVlIGZvciBhbGwKICAgIC8vIG90aGVyLiBUaGlzIHJlbGllcyBvbiB0aGUgZnVuY3Rpb24gZm4gdG8gYmUgdHJhbnNpdGl2ZS4KICAgIC8vCiAgICAvLyBtb21lbnRzIHNob3VsZCBlaXRoZXIgYmUgYW4gYXJyYXkgb2YgbW9tZW50IG9iamVjdHMgb3IgYW4gYXJyYXksIHdob3NlCiAgICAvLyBmaXJzdCBlbGVtZW50IGlzIGFuIGFycmF5IG9mIG1vbWVudCBvYmplY3RzLgogICAgZnVuY3Rpb24gcGlja0J5KGZuLCBtb21lbnRzKSB7CiAgICAgICAgdmFyIHJlcywgaTsKICAgICAgICBpZiAobW9tZW50cy5sZW5ndGggPT09IDEgJiYgaXNBcnJheShtb21lbnRzWzBdKSkgewogICAgICAgICAgICBtb21lbnRzID0gbW9tZW50c1swXTsKICAgICAgICB9CiAgICAgICAgaWYgKCFtb21lbnRzLmxlbmd0aCkgewogICAgICAgICAgICByZXR1cm4gbW9tZW50KCk7CiAgICAgICAgfQogICAgICAgIHJlcyA9IG1vbWVudHNbMF07CiAgICAgICAgZm9yIChpID0gMTsgaSA8IG1vbWVudHMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgaWYgKG1vbWVudHNbaV1bZm5dKHJlcykpIHsKICAgICAgICAgICAgICAgIHJlcyA9IG1vbWVudHNbaV07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJlczsKICAgIH0KCiAgICBtb21lbnQubWluID0gZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBhcmdzID0gW10uc2xpY2UuY2FsbChhcmd1bWVudHMsIDApOwoKICAgICAgICByZXR1cm4gcGlja0J5KCdpc0JlZm9yZScsIGFyZ3MpOwogICAgfTsKCiAgICBtb21lbnQubWF4ID0gZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBhcmdzID0gW10uc2xpY2UuY2FsbChhcmd1bWVudHMsIDApOwoKICAgICAgICByZXR1cm4gcGlja0J5KCdpc0FmdGVyJywgYXJncyk7CiAgICB9OwoKICAgIC8vIGNyZWF0aW5nIHdpdGggdXRjCiAgICBtb21lbnQudXRjID0gZnVuY3Rpb24gKGlucHV0LCBmb3JtYXQsIGxvY2FsZSwgc3RyaWN0KSB7CiAgICAgICAgdmFyIGM7CgogICAgICAgIGlmICh0eXBlb2YobG9jYWxlKSA9PT0gJ2Jvb2xlYW4nKSB7CiAgICAgICAgICAgIHN0cmljdCA9IGxvY2FsZTsKICAgICAgICAgICAgbG9jYWxlID0gdW5kZWZpbmVkOwogICAgICAgIH0KICAgICAgICAvLyBvYmplY3QgY29uc3RydWN0aW9uIG11c3QgYmUgZG9uZSB0aGlzIHdheS4KICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbW9tZW50L21vbWVudC9pc3N1ZXMvMTQyMwogICAgICAgIGMgPSB7fTsKICAgICAgICBjLl9pc0FNb21lbnRPYmplY3QgPSB0cnVlOwogICAgICAgIGMuX3VzZVVUQyA9IHRydWU7CiAgICAgICAgYy5faXNVVEMgPSB0cnVlOwogICAgICAgIGMuX2wgPSBsb2NhbGU7CiAgICAgICAgYy5faSA9IGlucHV0OwogICAgICAgIGMuX2YgPSBmb3JtYXQ7CiAgICAgICAgYy5fc3RyaWN0ID0gc3RyaWN0OwogICAgICAgIGMuX3BmID0gZGVmYXVsdFBhcnNpbmdGbGFncygpOwoKICAgICAgICByZXR1cm4gbWFrZU1vbWVudChjKS51dGMoKTsKICAgIH07CgogICAgLy8gY3JlYXRpbmcgd2l0aCB1bml4IHRpbWVzdGFtcCAoaW4gc2Vjb25kcykKICAgIG1vbWVudC51bml4ID0gZnVuY3Rpb24gKGlucHV0KSB7CiAgICAgICAgcmV0dXJuIG1vbWVudChpbnB1dCAqIDEwMDApOwogICAgfTsKCiAgICAvLyBkdXJhdGlvbgogICAgbW9tZW50LmR1cmF0aW9uID0gZnVuY3Rpb24gKGlucHV0LCBrZXkpIHsKICAgICAgICB2YXIgZHVyYXRpb24gPSBpbnB1dCwKICAgICAgICAgICAgLy8gbWF0Y2hpbmcgYWdhaW5zdCByZWdleHAgaXMgZXhwZW5zaXZlLCBkbyBpdCBvbiBkZW1hbmQKICAgICAgICAgICAgbWF0Y2ggPSBudWxsLAogICAgICAgICAgICBzaWduLAogICAgICAgICAgICByZXQsCiAgICAgICAgICAgIHBhcnNlSXNvLAogICAgICAgICAgICBkaWZmUmVzOwoKICAgICAgICBpZiAobW9tZW50LmlzRHVyYXRpb24oaW5wdXQpKSB7CiAgICAgICAgICAgIGR1cmF0aW9uID0gewogICAgICAgICAgICAgICAgbXM6IGlucHV0Ll9taWxsaXNlY29uZHMsCiAgICAgICAgICAgICAgICBkOiBpbnB1dC5fZGF5cywKICAgICAgICAgICAgICAgIE06IGlucHV0Ll9tb250aHMKICAgICAgICAgICAgfTsKICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ251bWJlcicpIHsKICAgICAgICAgICAgZHVyYXRpb24gPSB7fTsKICAgICAgICAgICAgaWYgKGtleSkgewogICAgICAgICAgICAgICAgZHVyYXRpb25ba2V5XSA9IGlucHV0OwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgZHVyYXRpb24ubWlsbGlzZWNvbmRzID0gaW5wdXQ7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgaWYgKCEhKG1hdGNoID0gYXNwTmV0VGltZVNwYW5Kc29uUmVnZXguZXhlYyhpbnB1dCkpKSB7CiAgICAgICAgICAgIHNpZ24gPSAobWF0Y2hbMV0gPT09ICctJykgPyAtMSA6IDE7CiAgICAgICAgICAgIGR1cmF0aW9uID0gewogICAgICAgICAgICAgICAgeTogMCwKICAgICAgICAgICAgICAgIGQ6IHRvSW50KG1hdGNoW0RBVEVdKSAqIHNpZ24sCiAgICAgICAgICAgICAgICBoOiB0b0ludChtYXRjaFtIT1VSXSkgKiBzaWduLAogICAgICAgICAgICAgICAgbTogdG9JbnQobWF0Y2hbTUlOVVRFXSkgKiBzaWduLAogICAgICAgICAgICAgICAgczogdG9JbnQobWF0Y2hbU0VDT05EXSkgKiBzaWduLAogICAgICAgICAgICAgICAgbXM6IHRvSW50KG1hdGNoW01JTExJU0VDT05EXSkgKiBzaWduCiAgICAgICAgICAgIH07CiAgICAgICAgfSBlbHNlIGlmICghIShtYXRjaCA9IGlzb0R1cmF0aW9uUmVnZXguZXhlYyhpbnB1dCkpKSB7CiAgICAgICAgICAgIHNpZ24gPSAobWF0Y2hbMV0gPT09ICctJykgPyAtMSA6IDE7CiAgICAgICAgICAgIHBhcnNlSXNvID0gZnVuY3Rpb24gKGlucCkgewogICAgICAgICAgICAgICAgLy8gV2UnZCBub3JtYWxseSB1c2Ugfn5pbnAgZm9yIHRoaXMsIGJ1dCB1bmZvcnR1bmF0ZWx5IGl0IGFsc28KICAgICAgICAgICAgICAgIC8vIGNvbnZlcnRzIGZsb2F0cyB0byBpbnRzLgogICAgICAgICAgICAgICAgLy8gaW5wIG1heSBiZSB1bmRlZmluZWQsIHNvIGNhcmVmdWwgY2FsbGluZyByZXBsYWNlIG9uIGl0LgogICAgICAgICAgICAgICAgdmFyIHJlcyA9IGlucCAmJiBwYXJzZUZsb2F0KGlucC5yZXBsYWNlKCcsJywgJy4nKSk7CiAgICAgICAgICAgICAgICAvLyBhcHBseSBzaWduIHdoaWxlIHdlJ3JlIGF0IGl0CiAgICAgICAgICAgICAgICByZXR1cm4gKGlzTmFOKHJlcykgPyAwIDogcmVzKSAqIHNpZ247CiAgICAgICAgICAgIH07CiAgICAgICAgICAgIGR1cmF0aW9uID0gewogICAgICAgICAgICAgICAgeTogcGFyc2VJc28obWF0Y2hbMl0pLAogICAgICAgICAgICAgICAgTTogcGFyc2VJc28obWF0Y2hbM10pLAogICAgICAgICAgICAgICAgZDogcGFyc2VJc28obWF0Y2hbNF0pLAogICAgICAgICAgICAgICAgaDogcGFyc2VJc28obWF0Y2hbNV0pLAogICAgICAgICAgICAgICAgbTogcGFyc2VJc28obWF0Y2hbNl0pLAogICAgICAgICAgICAgICAgczogcGFyc2VJc28obWF0Y2hbN10pLAogICAgICAgICAgICAgICAgdzogcGFyc2VJc28obWF0Y2hbOF0pCiAgICAgICAgICAgIH07CiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZHVyYXRpb24gPT09ICdvYmplY3QnICYmCiAgICAgICAgICAgICAgICAoJ2Zyb20nIGluIGR1cmF0aW9uIHx8ICd0bycgaW4gZHVyYXRpb24pKSB7CiAgICAgICAgICAgIGRpZmZSZXMgPSBtb21lbnRzRGlmZmVyZW5jZShtb21lbnQoZHVyYXRpb24uZnJvbSksIG1vbWVudChkdXJhdGlvbi50bykpOwoKICAgICAgICAgICAgZHVyYXRpb24gPSB7fTsKICAgICAgICAgICAgZHVyYXRpb24ubXMgPSBkaWZmUmVzLm1pbGxpc2Vjb25kczsKICAgICAgICAgICAgZHVyYXRpb24uTSA9IGRpZmZSZXMubW9udGhzOwogICAgICAgIH0KCiAgICAgICAgcmV0ID0gbmV3IER1cmF0aW9uKGR1cmF0aW9uKTsKCiAgICAgICAgaWYgKG1vbWVudC5pc0R1cmF0aW9uKGlucHV0KSAmJiBoYXNPd25Qcm9wKGlucHV0LCAnX2xvY2FsZScpKSB7CiAgICAgICAgICAgIHJldC5fbG9jYWxlID0gaW5wdXQuX2xvY2FsZTsKICAgICAgICB9CgogICAgICAgIHJldHVybiByZXQ7CiAgICB9OwoKICAgIC8vIHZlcnNpb24gbnVtYmVyCiAgICBtb21lbnQudmVyc2lvbiA9IFZFUlNJT047CgogICAgLy8gZGVmYXVsdCBmb3JtYXQKICAgIG1vbWVudC5kZWZhdWx0Rm9ybWF0ID0gaXNvRm9ybWF0OwoKICAgIC8vIGNvbnN0YW50IHRoYXQgcmVmZXJzIHRvIHRoZSBJU08gc3RhbmRhcmQKICAgIG1vbWVudC5JU09fODYwMSA9IGZ1bmN0aW9uICgpIHt9OwoKICAgIC8vIFBsdWdpbnMgdGhhdCBhZGQgcHJvcGVydGllcyBzaG91bGQgYWxzbyBhZGQgdGhlIGtleSBoZXJlIChudWxsIHZhbHVlKSwKICAgIC8vIHNvIHdlIGNhbiBwcm9wZXJseSBjbG9uZSBvdXJzZWx2ZXMuCiAgICBtb21lbnQubW9tZW50UHJvcGVydGllcyA9IG1vbWVudFByb3BlcnRpZXM7CgogICAgLy8gVGhpcyBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCB3aGVuZXZlciBhIG1vbWVudCBpcyBtdXRhdGVkLgogICAgLy8gSXQgaXMgaW50ZW5kZWQgdG8ga2VlcCB0aGUgb2Zmc2V0IGluIHN5bmMgd2l0aCB0aGUgdGltZXpvbmUuCiAgICBtb21lbnQudXBkYXRlT2Zmc2V0ID0gZnVuY3Rpb24gKCkge307CgogICAgLy8gVGhpcyBmdW5jdGlvbiBhbGxvd3MgeW91IHRvIHNldCBhIHRocmVzaG9sZCBmb3IgcmVsYXRpdmUgdGltZSBzdHJpbmdzCiAgICBtb21lbnQucmVsYXRpdmVUaW1lVGhyZXNob2xkID0gZnVuY3Rpb24gKHRocmVzaG9sZCwgbGltaXQpIHsKICAgICAgICBpZiAocmVsYXRpdmVUaW1lVGhyZXNob2xkc1t0aHJlc2hvbGRdID09PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgICBpZiAobGltaXQgPT09IHVuZGVmaW5lZCkgewogICAgICAgICAgICByZXR1cm4gcmVsYXRpdmVUaW1lVGhyZXNob2xkc1t0aHJlc2hvbGRdOwogICAgICAgIH0KICAgICAgICByZWxhdGl2ZVRpbWVUaHJlc2hvbGRzW3RocmVzaG9sZF0gPSBsaW1pdDsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH07CgogICAgbW9tZW50LmxhbmcgPSBkZXByZWNhdGUoCiAgICAgICAgJ21vbWVudC5sYW5nIGlzIGRlcHJlY2F0ZWQuIFVzZSBtb21lbnQubG9jYWxlIGluc3RlYWQuJywKICAgICAgICBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkgewogICAgICAgICAgICByZXR1cm4gbW9tZW50LmxvY2FsZShrZXksIHZhbHVlKTsKICAgICAgICB9CiAgICApOwoKICAgIC8vIFRoaXMgZnVuY3Rpb24gd2lsbCBsb2FkIGxvY2FsZSBhbmQgdGhlbiBzZXQgdGhlIGdsb2JhbCBsb2NhbGUuICBJZgogICAgLy8gbm8gYXJndW1lbnRzIGFyZSBwYXNzZWQgaW4sIGl0IHdpbGwgc2ltcGx5IHJldHVybiB0aGUgY3VycmVudCBnbG9iYWwKICAgIC8vIGxvY2FsZSBrZXkuCiAgICBtb21lbnQubG9jYWxlID0gZnVuY3Rpb24gKGtleSwgdmFsdWVzKSB7CiAgICAgICAgdmFyIGRhdGE7CiAgICAgICAgaWYgKGtleSkgewogICAgICAgICAgICBpZiAodHlwZW9mKHZhbHVlcykgIT09ICd1bmRlZmluZWQnKSB7CiAgICAgICAgICAgICAgICBkYXRhID0gbW9tZW50LmRlZmluZUxvY2FsZShrZXksIHZhbHVlcyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBkYXRhID0gbW9tZW50LmxvY2FsZURhdGEoa2V5KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKGRhdGEpIHsKICAgICAgICAgICAgICAgIG1vbWVudC5kdXJhdGlvbi5fbG9jYWxlID0gbW9tZW50Ll9sb2NhbGUgPSBkYXRhOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gbW9tZW50Ll9sb2NhbGUuX2FiYnI7CiAgICB9OwoKICAgIG1vbWVudC5kZWZpbmVMb2NhbGUgPSBmdW5jdGlvbiAobmFtZSwgdmFsdWVzKSB7CiAgICAgICAgaWYgKHZhbHVlcyAhPT0gbnVsbCkgewogICAgICAgICAgICB2YWx1ZXMuYWJiciA9IG5hbWU7CiAgICAgICAgICAgIGlmICghbG9jYWxlc1tuYW1lXSkgewogICAgICAgICAgICAgICAgbG9jYWxlc1tuYW1lXSA9IG5ldyBMb2NhbGUoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBsb2NhbGVzW25hbWVdLnNldCh2YWx1ZXMpOwoKICAgICAgICAgICAgLy8gYmFja3dhcmRzIGNvbXBhdCBmb3Igbm93OiBhbHNvIHNldCB0aGUgbG9jYWxlCiAgICAgICAgICAgIG1vbWVudC5sb2NhbGUobmFtZSk7CgogICAgICAgICAgICByZXR1cm4gbG9jYWxlc1tuYW1lXTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAvLyB1c2VmdWwgZm9yIHRlc3RpbmcKICAgICAgICAgICAgZGVsZXRlIGxvY2FsZXNbbmFtZV07CiAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0KICAgIH07CgogICAgbW9tZW50LmxhbmdEYXRhID0gZGVwcmVjYXRlKAogICAgICAgICdtb21lbnQubGFuZ0RhdGEgaXMgZGVwcmVjYXRlZC4gVXNlIG1vbWVudC5sb2NhbGVEYXRhIGluc3RlYWQuJywKICAgICAgICBmdW5jdGlvbiAoa2V5KSB7CiAgICAgICAgICAgIHJldHVybiBtb21lbnQubG9jYWxlRGF0YShrZXkpOwogICAgICAgIH0KICAgICk7CgogICAgLy8gcmV0dXJucyBsb2NhbGUgZGF0YQogICAgbW9tZW50LmxvY2FsZURhdGEgPSBmdW5jdGlvbiAoa2V5KSB7CiAgICAgICAgdmFyIGxvY2FsZTsKCiAgICAgICAgaWYgKGtleSAmJiBrZXkuX2xvY2FsZSAmJiBrZXkuX2xvY2FsZS5fYWJicikgewogICAgICAgICAgICBrZXkgPSBrZXkuX2xvY2FsZS5fYWJicjsKICAgICAgICB9CgogICAgICAgIGlmICgha2V5KSB7CiAgICAgICAgICAgIHJldHVybiBtb21lbnQuX2xvY2FsZTsKICAgICAgICB9CgogICAgICAgIGlmICghaXNBcnJheShrZXkpKSB7CiAgICAgICAgICAgIC8vc2hvcnQtY2lyY3VpdCBldmVyeXRoaW5nIGVsc2UKICAgICAgICAgICAgbG9jYWxlID0gbG9hZExvY2FsZShrZXkpOwogICAgICAgICAgICBpZiAobG9jYWxlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbG9jYWxlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGtleSA9IFtrZXldOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIGNob29zZUxvY2FsZShrZXkpOwogICAgfTsKCiAgICAvLyBjb21wYXJlIG1vbWVudCBvYmplY3QKICAgIG1vbWVudC5pc01vbWVudCA9IGZ1bmN0aW9uIChvYmopIHsKICAgICAgICByZXR1cm4gb2JqIGluc3RhbmNlb2YgTW9tZW50IHx8CiAgICAgICAgICAgIChvYmogIT0gbnVsbCAmJiBoYXNPd25Qcm9wKG9iaiwgJ19pc0FNb21lbnRPYmplY3QnKSk7CiAgICB9OwoKICAgIC8vIGZvciB0eXBlY2hlY2tpbmcgRHVyYXRpb24gb2JqZWN0cwogICAgbW9tZW50LmlzRHVyYXRpb24gPSBmdW5jdGlvbiAob2JqKSB7CiAgICAgICAgcmV0dXJuIG9iaiBpbnN0YW5jZW9mIER1cmF0aW9uOwogICAgfTsKCiAgICBmb3IgKGkgPSBsaXN0cy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkgewogICAgICAgIG1ha2VMaXN0KGxpc3RzW2ldKTsKICAgIH0KCiAgICBtb21lbnQubm9ybWFsaXplVW5pdHMgPSBmdW5jdGlvbiAodW5pdHMpIHsKICAgICAgICByZXR1cm4gbm9ybWFsaXplVW5pdHModW5pdHMpOwogICAgfTsKCiAgICBtb21lbnQuaW52YWxpZCA9IGZ1bmN0aW9uIChmbGFncykgewogICAgICAgIHZhciBtID0gbW9tZW50LnV0YyhOYU4pOwogICAgICAgIGlmIChmbGFncyAhPSBudWxsKSB7CiAgICAgICAgICAgIGV4dGVuZChtLl9wZiwgZmxhZ3MpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgbS5fcGYudXNlckludmFsaWRhdGVkID0gdHJ1ZTsKICAgICAgICB9CgogICAgICAgIHJldHVybiBtOwogICAgfTsKCiAgICBtb21lbnQucGFyc2Vab25lID0gZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBtb21lbnQuYXBwbHkobnVsbCwgYXJndW1lbnRzKS5wYXJzZVpvbmUoKTsKICAgIH07CgogICAgbW9tZW50LnBhcnNlVHdvRGlnaXRZZWFyID0gZnVuY3Rpb24gKGlucHV0KSB7CiAgICAgICAgcmV0dXJuIHRvSW50KGlucHV0KSArICh0b0ludChpbnB1dCkgPiA2OCA/IDE5MDAgOiAyMDAwKTsKICAgIH07CgogICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAgICAgIE1vbWVudCBQcm90b3R5cGUKICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCgogICAgZXh0ZW5kKG1vbWVudC5mbiA9IE1vbWVudC5wcm90b3R5cGUsIHsKCiAgICAgICAgY2xvbmUgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHJldHVybiBtb21lbnQodGhpcyk7CiAgICAgICAgfSwKCiAgICAgICAgdmFsdWVPZiA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgcmV0dXJuICt0aGlzLl9kICsgKCh0aGlzLl9vZmZzZXQgfHwgMCkgKiA2MDAwMCk7CiAgICAgICAgfSwKCiAgICAgICAgdW5peCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IoK3RoaXMgLyAxMDAwKTsKICAgICAgICB9LAoKICAgICAgICB0b1N0cmluZyA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2xvbmUoKS5sb2NhbGUoJ2VuJykuZm9ybWF0KCdkZGQgTU1NIEREIFlZWVkgSEg6bW06c3MgW0dNVF1aWicpOwogICAgICAgIH0sCgogICAgICAgIHRvRGF0ZSA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuX29mZnNldCA/IG5ldyBEYXRlKCt0aGlzKSA6IHRoaXMuX2Q7CiAgICAgICAgfSwKCiAgICAgICAgdG9JU09TdHJpbmcgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBtID0gbW9tZW50KHRoaXMpLnV0YygpOwogICAgICAgICAgICBpZiAoMCA8IG0ueWVhcigpICYmIG0ueWVhcigpIDw9IDk5OTkpIHsKICAgICAgICAgICAgICAgIGlmICgnZnVuY3Rpb24nID09PSB0eXBlb2YgRGF0ZS5wcm90b3R5cGUudG9JU09TdHJpbmcpIHsKICAgICAgICAgICAgICAgICAgICAvLyBuYXRpdmUgaW1wbGVtZW50YXRpb24gaXMgfjUweCBmYXN0ZXIsIHVzZSBpdCB3aGVuIHdlIGNhbgogICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRvRGF0ZSgpLnRvSVNPU3RyaW5nKCk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBmb3JtYXRNb21lbnQobSwgJ1lZWVktTU0tRERbVF1ISDptbTpzcy5TU1NbWl0nKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHJldHVybiBmb3JtYXRNb21lbnQobSwgJ1lZWVlZWS1NTS1ERFtUXUhIOm1tOnNzLlNTU1taXScpOwogICAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgdG9BcnJheSA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIG0gPSB0aGlzOwogICAgICAgICAgICByZXR1cm4gWwogICAgICAgICAgICAgICAgbS55ZWFyKCksCiAgICAgICAgICAgICAgICBtLm1vbnRoKCksCiAgICAgICAgICAgICAgICBtLmRhdGUoKSwKICAgICAgICAgICAgICAgIG0uaG91cnMoKSwKICAgICAgICAgICAgICAgIG0ubWludXRlcygpLAogICAgICAgICAgICAgICAgbS5zZWNvbmRzKCksCiAgICAgICAgICAgICAgICBtLm1pbGxpc2Vjb25kcygpCiAgICAgICAgICAgIF07CiAgICAgICAgfSwKCiAgICAgICAgaXNWYWxpZCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgcmV0dXJuIGlzVmFsaWQodGhpcyk7CiAgICAgICAgfSwKCiAgICAgICAgaXNEU1RTaGlmdGVkIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICBpZiAodGhpcy5fYSkgewogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCgpICYmIGNvbXBhcmVBcnJheXModGhpcy5fYSwgKHRoaXMuX2lzVVRDID8gbW9tZW50LnV0Yyh0aGlzLl9hKSA6IG1vbWVudCh0aGlzLl9hKSkudG9BcnJheSgpKSA+IDA7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9LAoKICAgICAgICBwYXJzaW5nRmxhZ3MgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHJldHVybiBleHRlbmQoe30sIHRoaXMuX3BmKTsKICAgICAgICB9LAoKICAgICAgICBpbnZhbGlkQXQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3BmLm92ZXJmbG93OwogICAgICAgIH0sCgogICAgICAgIHV0YyA6IGZ1bmN0aW9uIChrZWVwTG9jYWxUaW1lKSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLnpvbmUoMCwga2VlcExvY2FsVGltZSk7CiAgICAgICAgfSwKCiAgICAgICAgbG9jYWwgOiBmdW5jdGlvbiAoa2VlcExvY2FsVGltZSkgewogICAgICAgICAgICBpZiAodGhpcy5faXNVVEMpIHsKICAgICAgICAgICAgICAgIHRoaXMuem9uZSgwLCBrZWVwTG9jYWxUaW1lKTsKICAgICAgICAgICAgICAgIHRoaXMuX2lzVVRDID0gZmFsc2U7CgogICAgICAgICAgICAgICAgaWYgKGtlZXBMb2NhbFRpbWUpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZCh0aGlzLl9kYXRlVHpPZmZzZXQoKSwgJ20nKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICB9LAoKICAgICAgICBmb3JtYXQgOiBmdW5jdGlvbiAoaW5wdXRTdHJpbmcpIHsKICAgICAgICAgICAgdmFyIG91dHB1dCA9IGZvcm1hdE1vbWVudCh0aGlzLCBpbnB1dFN0cmluZyB8fCBtb21lbnQuZGVmYXVsdEZvcm1hdCk7CiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS5wb3N0Zm9ybWF0KG91dHB1dCk7CiAgICAgICAgfSwKCiAgICAgICAgYWRkIDogY3JlYXRlQWRkZXIoMSwgJ2FkZCcpLAoKICAgICAgICBzdWJ0cmFjdCA6IGNyZWF0ZUFkZGVyKC0xLCAnc3VidHJhY3QnKSwKCiAgICAgICAgZGlmZiA6IGZ1bmN0aW9uIChpbnB1dCwgdW5pdHMsIGFzRmxvYXQpIHsKICAgICAgICAgICAgdmFyIHRoYXQgPSBtYWtlQXMoaW5wdXQsIHRoaXMpLAogICAgICAgICAgICAgICAgem9uZURpZmYgPSAodGhpcy56b25lKCkgLSB0aGF0LnpvbmUoKSkgKiA2ZTQsCiAgICAgICAgICAgICAgICBkaWZmLCBvdXRwdXQsIGRheXNBZGp1c3Q7CgogICAgICAgICAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKHVuaXRzKTsKCiAgICAgICAgICAgIGlmICh1bml0cyA9PT0gJ3llYXInIHx8IHVuaXRzID09PSAnbW9udGgnKSB7CiAgICAgICAgICAgICAgICAvLyBhdmVyYWdlIG51bWJlciBvZiBkYXlzIGluIHRoZSBtb250aHMgaW4gdGhlIGdpdmVuIGRhdGVzCiAgICAgICAgICAgICAgICBkaWZmID0gKHRoaXMuZGF5c0luTW9udGgoKSArIHRoYXQuZGF5c0luTW9udGgoKSkgKiA0MzJlNTsgLy8gMjQgKiA2MCAqIDYwICogMTAwMCAvIDIKICAgICAgICAgICAgICAgIC8vIGRpZmZlcmVuY2UgaW4gbW9udGhzCiAgICAgICAgICAgICAgICBvdXRwdXQgPSAoKHRoaXMueWVhcigpIC0gdGhhdC55ZWFyKCkpICogMTIpICsgKHRoaXMubW9udGgoKSAtIHRoYXQubW9udGgoKSk7CiAgICAgICAgICAgICAgICAvLyBhZGp1c3QgYnkgdGFraW5nIGRpZmZlcmVuY2UgaW4gZGF5cywgYXZlcmFnZSBudW1iZXIgb2YgZGF5cwogICAgICAgICAgICAgICAgLy8gYW5kIGRzdCBpbiB0aGUgZ2l2ZW4gbW9udGhzLgogICAgICAgICAgICAgICAgZGF5c0FkanVzdCA9ICh0aGlzIC0gbW9tZW50KHRoaXMpLnN0YXJ0T2YoJ21vbnRoJykpIC0KICAgICAgICAgICAgICAgICAgICAodGhhdCAtIG1vbWVudCh0aGF0KS5zdGFydE9mKCdtb250aCcpKTsKICAgICAgICAgICAgICAgIC8vIHNhbWUgYXMgYWJvdmUgYnV0IHdpdGggem9uZXMsIHRvIG5lZ2F0ZSBhbGwgZHN0CiAgICAgICAgICAgICAgICBkYXlzQWRqdXN0IC09ICgodGhpcy56b25lKCkgLSBtb21lbnQodGhpcykuc3RhcnRPZignbW9udGgnKS56b25lKCkpIC0KICAgICAgICAgICAgICAgICAgICAgICAgKHRoYXQuem9uZSgpIC0gbW9tZW50KHRoYXQpLnN0YXJ0T2YoJ21vbnRoJykuem9uZSgpKSkgKiA2ZTQ7CiAgICAgICAgICAgICAgICBvdXRwdXQgKz0gZGF5c0FkanVzdCAvIGRpZmY7CiAgICAgICAgICAgICAgICBpZiAodW5pdHMgPT09ICd5ZWFyJykgewogICAgICAgICAgICAgICAgICAgIG91dHB1dCA9IG91dHB1dCAvIDEyOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgZGlmZiA9ICh0aGlzIC0gdGhhdCk7CiAgICAgICAgICAgICAgICBvdXRwdXQgPSB1bml0cyA9PT0gJ3NlY29uZCcgPyBkaWZmIC8gMWUzIDogLy8gMTAwMAogICAgICAgICAgICAgICAgICAgIHVuaXRzID09PSAnbWludXRlJyA/IGRpZmYgLyA2ZTQgOiAvLyAxMDAwICogNjAKICAgICAgICAgICAgICAgICAgICB1bml0cyA9PT0gJ2hvdXInID8gZGlmZiAvIDM2ZTUgOiAvLyAxMDAwICogNjAgKiA2MAogICAgICAgICAgICAgICAgICAgIHVuaXRzID09PSAnZGF5JyA/IChkaWZmIC0gem9uZURpZmYpIC8gODY0ZTUgOiAvLyAxMDAwICogNjAgKiA2MCAqIDI0LCBuZWdhdGUgZHN0CiAgICAgICAgICAgICAgICAgICAgdW5pdHMgPT09ICd3ZWVrJyA/IChkaWZmIC0gem9uZURpZmYpIC8gNjA0OGU1IDogLy8gMTAwMCAqIDYwICogNjAgKiAyNCAqIDcsIG5lZ2F0ZSBkc3QKICAgICAgICAgICAgICAgICAgICBkaWZmOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBhc0Zsb2F0ID8gb3V0cHV0IDogYWJzUm91bmQob3V0cHV0KTsKICAgICAgICB9LAoKICAgICAgICBmcm9tIDogZnVuY3Rpb24gKHRpbWUsIHdpdGhvdXRTdWZmaXgpIHsKICAgICAgICAgICAgcmV0dXJuIG1vbWVudC5kdXJhdGlvbih7dG86IHRoaXMsIGZyb206IHRpbWV9KS5sb2NhbGUodGhpcy5sb2NhbGUoKSkuaHVtYW5pemUoIXdpdGhvdXRTdWZmaXgpOwogICAgICAgIH0sCgogICAgICAgIGZyb21Ob3cgOiBmdW5jdGlvbiAod2l0aG91dFN1ZmZpeCkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5mcm9tKG1vbWVudCgpLCB3aXRob3V0U3VmZml4KTsKICAgICAgICB9LAoKICAgICAgICBjYWxlbmRhciA6IGZ1bmN0aW9uICh0aW1lKSB7CiAgICAgICAgICAgIC8vIFdlIHdhbnQgdG8gY29tcGFyZSB0aGUgc3RhcnQgb2YgdG9kYXksIHZzIHRoaXMuCiAgICAgICAgICAgIC8vIEdldHRpbmcgc3RhcnQtb2YtdG9kYXkgZGVwZW5kcyBvbiB3aGV0aGVyIHdlJ3JlIHpvbmUnZCBvciBub3QuCiAgICAgICAgICAgIHZhciBub3cgPSB0aW1lIHx8IG1vbWVudCgpLAogICAgICAgICAgICAgICAgc29kID0gbWFrZUFzKG5vdywgdGhpcykuc3RhcnRPZignZGF5JyksCiAgICAgICAgICAgICAgICBkaWZmID0gdGhpcy5kaWZmKHNvZCwgJ2RheXMnLCB0cnVlKSwKICAgICAgICAgICAgICAgIGZvcm1hdCA9IGRpZmYgPCAtNiA/ICdzYW1lRWxzZScgOgogICAgICAgICAgICAgICAgICAgIGRpZmYgPCAtMSA/ICdsYXN0V2VlaycgOgogICAgICAgICAgICAgICAgICAgIGRpZmYgPCAwID8gJ2xhc3REYXknIDoKICAgICAgICAgICAgICAgICAgICBkaWZmIDwgMSA/ICdzYW1lRGF5JyA6CiAgICAgICAgICAgICAgICAgICAgZGlmZiA8IDIgPyAnbmV4dERheScgOgogICAgICAgICAgICAgICAgICAgIGRpZmYgPCA3ID8gJ25leHRXZWVrJyA6ICdzYW1lRWxzZSc7CiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1hdCh0aGlzLmxvY2FsZURhdGEoKS5jYWxlbmRhcihmb3JtYXQsIHRoaXMsIG1vbWVudChub3cpKSk7CiAgICAgICAgfSwKCiAgICAgICAgaXNMZWFwWWVhciA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgcmV0dXJuIGlzTGVhcFllYXIodGhpcy55ZWFyKCkpOwogICAgICAgIH0sCgogICAgICAgIGlzRFNUIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gKHRoaXMuem9uZSgpIDwgdGhpcy5jbG9uZSgpLm1vbnRoKDApLnpvbmUoKSB8fAogICAgICAgICAgICAgICAgdGhpcy56b25lKCkgPCB0aGlzLmNsb25lKCkubW9udGgoNSkuem9uZSgpKTsKICAgICAgICB9LAoKICAgICAgICBkYXkgOiBmdW5jdGlvbiAoaW5wdXQpIHsKICAgICAgICAgICAgdmFyIGRheSA9IHRoaXMuX2lzVVRDID8gdGhpcy5fZC5nZXRVVENEYXkoKSA6IHRoaXMuX2QuZ2V0RGF5KCk7CiAgICAgICAgICAgIGlmIChpbnB1dCAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICBpbnB1dCA9IHBhcnNlV2Vla2RheShpbnB1dCwgdGhpcy5sb2NhbGVEYXRhKCkpOwogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWRkKGlucHV0IC0gZGF5LCAnZCcpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgcmV0dXJuIGRheTsKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIG1vbnRoIDogbWFrZUFjY2Vzc29yKCdNb250aCcsIHRydWUpLAoKICAgICAgICBzdGFydE9mIDogZnVuY3Rpb24gKHVuaXRzKSB7CiAgICAgICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMpOwogICAgICAgICAgICAvLyB0aGUgZm9sbG93aW5nIHN3aXRjaCBpbnRlbnRpb25hbGx5IG9taXRzIGJyZWFrIGtleXdvcmRzCiAgICAgICAgICAgIC8vIHRvIHV0aWxpemUgZmFsbGluZyB0aHJvdWdoIHRoZSBjYXNlcy4KICAgICAgICAgICAgc3dpdGNoICh1bml0cykgewogICAgICAgICAgICBjYXNlICd5ZWFyJzoKICAgICAgICAgICAgICAgIHRoaXMubW9udGgoMCk7CiAgICAgICAgICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovCiAgICAgICAgICAgIGNhc2UgJ3F1YXJ0ZXInOgogICAgICAgICAgICBjYXNlICdtb250aCc6CiAgICAgICAgICAgICAgICB0aGlzLmRhdGUoMSk7CiAgICAgICAgICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovCiAgICAgICAgICAgIGNhc2UgJ3dlZWsnOgogICAgICAgICAgICBjYXNlICdpc29XZWVrJzoKICAgICAgICAgICAgY2FzZSAnZGF5JzoKICAgICAgICAgICAgICAgIHRoaXMuaG91cnMoMCk7CiAgICAgICAgICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovCiAgICAgICAgICAgIGNhc2UgJ2hvdXInOgogICAgICAgICAgICAgICAgdGhpcy5taW51dGVzKDApOwogICAgICAgICAgICAgICAgLyogZmFsbHMgdGhyb3VnaCAqLwogICAgICAgICAgICBjYXNlICdtaW51dGUnOgogICAgICAgICAgICAgICAgdGhpcy5zZWNvbmRzKDApOwogICAgICAgICAgICAgICAgLyogZmFsbHMgdGhyb3VnaCAqLwogICAgICAgICAgICBjYXNlICdzZWNvbmQnOgogICAgICAgICAgICAgICAgdGhpcy5taWxsaXNlY29uZHMoMCk7CiAgICAgICAgICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIHdlZWtzIGFyZSBhIHNwZWNpYWwgY2FzZQogICAgICAgICAgICBpZiAodW5pdHMgPT09ICd3ZWVrJykgewogICAgICAgICAgICAgICAgdGhpcy53ZWVrZGF5KDApOwogICAgICAgICAgICB9IGVsc2UgaWYgKHVuaXRzID09PSAnaXNvV2VlaycpIHsKICAgICAgICAgICAgICAgIHRoaXMuaXNvV2Vla2RheSgxKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gcXVhcnRlcnMgYXJlIGFsc28gc3BlY2lhbAogICAgICAgICAgICBpZiAodW5pdHMgPT09ICdxdWFydGVyJykgewogICAgICAgICAgICAgICAgdGhpcy5tb250aChNYXRoLmZsb29yKHRoaXMubW9udGgoKSAvIDMpICogMyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICAgIH0sCgogICAgICAgIGVuZE9mOiBmdW5jdGlvbiAodW5pdHMpIHsKICAgICAgICAgICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cyk7CiAgICAgICAgICAgIGlmICh1bml0cyA9PT0gdW5kZWZpbmVkIHx8IHVuaXRzID09PSAnbWlsbGlzZWNvbmQnKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gdGhpcy5zdGFydE9mKHVuaXRzKS5hZGQoMSwgKHVuaXRzID09PSAnaXNvV2VlaycgPyAnd2VlaycgOiB1bml0cykpLnN1YnRyYWN0KDEsICdtcycpOwogICAgICAgIH0sCgogICAgICAgIGlzQWZ0ZXI6IGZ1bmN0aW9uIChpbnB1dCwgdW5pdHMpIHsKICAgICAgICAgICAgdmFyIGlucHV0TXM7CiAgICAgICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModHlwZW9mIHVuaXRzICE9PSAndW5kZWZpbmVkJyA/IHVuaXRzIDogJ21pbGxpc2Vjb25kJyk7CiAgICAgICAgICAgIGlmICh1bml0cyA9PT0gJ21pbGxpc2Vjb25kJykgewogICAgICAgICAgICAgICAgaW5wdXQgPSBtb21lbnQuaXNNb21lbnQoaW5wdXQpID8gaW5wdXQgOiBtb21lbnQoaW5wdXQpOwogICAgICAgICAgICAgICAgcmV0dXJuICt0aGlzID4gK2lucHV0OwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaW5wdXRNcyA9IG1vbWVudC5pc01vbWVudChpbnB1dCkgPyAraW5wdXQgOiArbW9tZW50KGlucHV0KTsKICAgICAgICAgICAgICAgIHJldHVybiBpbnB1dE1zIDwgK3RoaXMuY2xvbmUoKS5zdGFydE9mKHVuaXRzKTsKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIGlzQmVmb3JlOiBmdW5jdGlvbiAoaW5wdXQsIHVuaXRzKSB7CiAgICAgICAgICAgIHZhciBpbnB1dE1zOwogICAgICAgICAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKHR5cGVvZiB1bml0cyAhPT0gJ3VuZGVmaW5lZCcgPyB1bml0cyA6ICdtaWxsaXNlY29uZCcpOwogICAgICAgICAgICBpZiAodW5pdHMgPT09ICdtaWxsaXNlY29uZCcpIHsKICAgICAgICAgICAgICAgIGlucHV0ID0gbW9tZW50LmlzTW9tZW50KGlucHV0KSA/IGlucHV0IDogbW9tZW50KGlucHV0KTsKICAgICAgICAgICAgICAgIHJldHVybiArdGhpcyA8ICtpbnB1dDsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGlucHV0TXMgPSBtb21lbnQuaXNNb21lbnQoaW5wdXQpID8gK2lucHV0IDogK21vbWVudChpbnB1dCk7CiAgICAgICAgICAgICAgICByZXR1cm4gK3RoaXMuY2xvbmUoKS5lbmRPZih1bml0cykgPCBpbnB1dE1zOwogICAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgaXNTYW1lOiBmdW5jdGlvbiAoaW5wdXQsIHVuaXRzKSB7CiAgICAgICAgICAgIHZhciBpbnB1dE1zOwogICAgICAgICAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKHVuaXRzIHx8ICdtaWxsaXNlY29uZCcpOwogICAgICAgICAgICBpZiAodW5pdHMgPT09ICdtaWxsaXNlY29uZCcpIHsKICAgICAgICAgICAgICAgIGlucHV0ID0gbW9tZW50LmlzTW9tZW50KGlucHV0KSA/IGlucHV0IDogbW9tZW50KGlucHV0KTsKICAgICAgICAgICAgICAgIHJldHVybiArdGhpcyA9PT0gK2lucHV0OwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaW5wdXRNcyA9ICttb21lbnQoaW5wdXQpOwogICAgICAgICAgICAgICAgcmV0dXJuICsodGhpcy5jbG9uZSgpLnN0YXJ0T2YodW5pdHMpKSA8PSBpbnB1dE1zICYmIGlucHV0TXMgPD0gKyh0aGlzLmNsb25lKCkuZW5kT2YodW5pdHMpKTsKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIG1pbjogZGVwcmVjYXRlKAogICAgICAgICAgICAgICAgICdtb21lbnQoKS5taW4gaXMgZGVwcmVjYXRlZCwgdXNlIG1vbWVudC5taW4gaW5zdGVhZC4gaHR0cHM6Ly9naXRodWIuY29tL21vbWVudC9tb21lbnQvaXNzdWVzLzE1NDgnLAogICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChvdGhlcikgewogICAgICAgICAgICAgICAgICAgICBvdGhlciA9IG1vbWVudC5hcHBseShudWxsLCBhcmd1bWVudHMpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3RoZXIgPCB0aGlzID8gdGhpcyA6IG90aGVyOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgKSwKCiAgICAgICAgbWF4OiBkZXByZWNhdGUoCiAgICAgICAgICAgICAgICAnbW9tZW50KCkubWF4IGlzIGRlcHJlY2F0ZWQsIHVzZSBtb21lbnQubWF4IGluc3RlYWQuIGh0dHBzOi8vZ2l0aHViLmNvbS9tb21lbnQvbW9tZW50L2lzc3Vlcy8xNTQ4JywKICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChvdGhlcikgewogICAgICAgICAgICAgICAgICAgIG90aGVyID0gbW9tZW50LmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG90aGVyID4gdGhpcyA/IHRoaXMgOiBvdGhlcjsKICAgICAgICAgICAgICAgIH0KICAgICAgICApLAoKICAgICAgICAvLyBrZWVwTG9jYWxUaW1lID0gdHJ1ZSBtZWFucyBvbmx5IGNoYW5nZSB0aGUgdGltZXpvbmUsIHdpdGhvdXQKICAgICAgICAvLyBhZmZlY3RpbmcgdGhlIGxvY2FsIGhvdXIuIFNvIDU6MzE6MjYgKzAzMDAgLS1bem9uZSgyLCB0cnVlKV0tLT4KICAgICAgICAvLyA1OjMxOjI2ICswMjAwIEl0IGlzIHBvc3NpYmxlIHRoYXQgNTozMToyNiBkb2Vzbid0IGV4aXN0IGludCB6b25lCiAgICAgICAgLy8gKzAyMDAsIHNvIHdlIGFkanVzdCB0aGUgdGltZSBhcyBuZWVkZWQsIHRvIGJlIHZhbGlkLgogICAgICAgIC8vCiAgICAgICAgLy8gS2VlcGluZyB0aGUgdGltZSBhY3R1YWxseSBhZGRzL3N1YnRyYWN0cyAob25lIGhvdXIpCiAgICAgICAgLy8gZnJvbSB0aGUgYWN0dWFsIHJlcHJlc2VudGVkIHRpbWUuIFRoYXQgaXMgd2h5IHdlIGNhbGwgdXBkYXRlT2Zmc2V0CiAgICAgICAgLy8gYSBzZWNvbmQgdGltZS4gSW4gY2FzZSBpdCB3YW50cyB1cyB0byBjaGFuZ2UgdGhlIG9mZnNldCBhZ2FpbgogICAgICAgIC8vIF9jaGFuZ2VJblByb2dyZXNzID09IHRydWUgY2FzZSwgdGhlbiB3ZSBoYXZlIHRvIGFkanVzdCwgYmVjYXVzZQogICAgICAgIC8vIHRoZXJlIGlzIG5vIHN1Y2ggdGltZSBpbiB0aGUgZ2l2ZW4gdGltZXpvbmUuCiAgICAgICAgem9uZSA6IGZ1bmN0aW9uIChpbnB1dCwga2VlcExvY2FsVGltZSkgewogICAgICAgICAgICB2YXIgb2Zmc2V0ID0gdGhpcy5fb2Zmc2V0IHx8IDAsCiAgICAgICAgICAgICAgICBsb2NhbEFkanVzdDsKICAgICAgICAgICAgaWYgKGlucHV0ICE9IG51bGwpIHsKICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSB7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQgPSB0aW1lem9uZU1pbnV0ZXNGcm9tU3RyaW5nKGlucHV0KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChNYXRoLmFicyhpbnB1dCkgPCAxNikgewogICAgICAgICAgICAgICAgICAgIGlucHV0ID0gaW5wdXQgKiA2MDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICghdGhpcy5faXNVVEMgJiYga2VlcExvY2FsVGltZSkgewogICAgICAgICAgICAgICAgICAgIGxvY2FsQWRqdXN0ID0gdGhpcy5fZGF0ZVR6T2Zmc2V0KCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0aGlzLl9vZmZzZXQgPSBpbnB1dDsKICAgICAgICAgICAgICAgIHRoaXMuX2lzVVRDID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGlmIChsb2NhbEFkanVzdCAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWJ0cmFjdChsb2NhbEFkanVzdCwgJ20nKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChvZmZzZXQgIT09IGlucHV0KSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFrZWVwTG9jYWxUaW1lIHx8IHRoaXMuX2NoYW5nZUluUHJvZ3Jlc3MpIHsKICAgICAgICAgICAgICAgICAgICAgICAgYWRkT3JTdWJ0cmFjdER1cmF0aW9uRnJvbU1vbWVudCh0aGlzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbWVudC5kdXJhdGlvbihvZmZzZXQgLSBpbnB1dCwgJ20nKSwgMSwgZmFsc2UpOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuX2NoYW5nZUluUHJvZ3Jlc3MpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlSW5Qcm9ncmVzcyA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIG1vbWVudC51cGRhdGVPZmZzZXQodGhpcywgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZUluUHJvZ3Jlc3MgPSBudWxsOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9pc1VUQyA/IG9mZnNldCA6IHRoaXMuX2RhdGVUek9mZnNldCgpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICAgIH0sCgogICAgICAgIHpvbmVBYmJyIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5faXNVVEMgPyAnVVRDJyA6ICcnOwogICAgICAgIH0sCgogICAgICAgIHpvbmVOYW1lIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5faXNVVEMgPyAnQ29vcmRpbmF0ZWQgVW5pdmVyc2FsIFRpbWUnIDogJyc7CiAgICAgICAgfSwKCiAgICAgICAgcGFyc2Vab25lIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICBpZiAodGhpcy5fdHptKSB7CiAgICAgICAgICAgICAgICB0aGlzLnpvbmUodGhpcy5fdHptKTsKICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdGhpcy5faSA9PT0gJ3N0cmluZycpIHsKICAgICAgICAgICAgICAgIHRoaXMuem9uZSh0aGlzLl9pKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICB9LAoKICAgICAgICBoYXNBbGlnbmVkSG91ck9mZnNldCA6IGZ1bmN0aW9uIChpbnB1dCkgewogICAgICAgICAgICBpZiAoIWlucHV0KSB7CiAgICAgICAgICAgICAgICBpbnB1dCA9IDA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBpbnB1dCA9IG1vbWVudChpbnB1dCkuem9uZSgpOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gKHRoaXMuem9uZSgpIC0gaW5wdXQpICUgNjAgPT09IDA7CiAgICAgICAgfSwKCiAgICAgICAgZGF5c0luTW9udGggOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHJldHVybiBkYXlzSW5Nb250aCh0aGlzLnllYXIoKSwgdGhpcy5tb250aCgpKTsKICAgICAgICB9LAoKICAgICAgICBkYXlPZlllYXIgOiBmdW5jdGlvbiAoaW5wdXQpIHsKICAgICAgICAgICAgdmFyIGRheU9mWWVhciA9IHJvdW5kKChtb21lbnQodGhpcykuc3RhcnRPZignZGF5JykgLSBtb21lbnQodGhpcykuc3RhcnRPZigneWVhcicpKSAvIDg2NGU1KSArIDE7CiAgICAgICAgICAgIHJldHVybiBpbnB1dCA9PSBudWxsID8gZGF5T2ZZZWFyIDogdGhpcy5hZGQoKGlucHV0IC0gZGF5T2ZZZWFyKSwgJ2QnKTsKICAgICAgICB9LAoKICAgICAgICBxdWFydGVyIDogZnVuY3Rpb24gKGlucHV0KSB7CiAgICAgICAgICAgIHJldHVybiBpbnB1dCA9PSBudWxsID8gTWF0aC5jZWlsKCh0aGlzLm1vbnRoKCkgKyAxKSAvIDMpIDogdGhpcy5tb250aCgoaW5wdXQgLSAxKSAqIDMgKyB0aGlzLm1vbnRoKCkgJSAzKTsKICAgICAgICB9LAoKICAgICAgICB3ZWVrWWVhciA6IGZ1bmN0aW9uIChpbnB1dCkgewogICAgICAgICAgICB2YXIgeWVhciA9IHdlZWtPZlllYXIodGhpcywgdGhpcy5sb2NhbGVEYXRhKCkuX3dlZWsuZG93LCB0aGlzLmxvY2FsZURhdGEoKS5fd2Vlay5kb3kpLnllYXI7CiAgICAgICAgICAgIHJldHVybiBpbnB1dCA9PSBudWxsID8geWVhciA6IHRoaXMuYWRkKChpbnB1dCAtIHllYXIpLCAneScpOwogICAgICAgIH0sCgogICAgICAgIGlzb1dlZWtZZWFyIDogZnVuY3Rpb24gKGlucHV0KSB7CiAgICAgICAgICAgIHZhciB5ZWFyID0gd2Vla09mWWVhcih0aGlzLCAxLCA0KS55ZWFyOwogICAgICAgICAgICByZXR1cm4gaW5wdXQgPT0gbnVsbCA/IHllYXIgOiB0aGlzLmFkZCgoaW5wdXQgLSB5ZWFyKSwgJ3knKTsKICAgICAgICB9LAoKICAgICAgICB3ZWVrIDogZnVuY3Rpb24gKGlucHV0KSB7CiAgICAgICAgICAgIHZhciB3ZWVrID0gdGhpcy5sb2NhbGVEYXRhKCkud2Vlayh0aGlzKTsKICAgICAgICAgICAgcmV0dXJuIGlucHV0ID09IG51bGwgPyB3ZWVrIDogdGhpcy5hZGQoKGlucHV0IC0gd2VlaykgKiA3LCAnZCcpOwogICAgICAgIH0sCgogICAgICAgIGlzb1dlZWsgOiBmdW5jdGlvbiAoaW5wdXQpIHsKICAgICAgICAgICAgdmFyIHdlZWsgPSB3ZWVrT2ZZZWFyKHRoaXMsIDEsIDQpLndlZWs7CiAgICAgICAgICAgIHJldHVybiBpbnB1dCA9PSBudWxsID8gd2VlayA6IHRoaXMuYWRkKChpbnB1dCAtIHdlZWspICogNywgJ2QnKTsKICAgICAgICB9LAoKICAgICAgICB3ZWVrZGF5IDogZnVuY3Rpb24gKGlucHV0KSB7CiAgICAgICAgICAgIHZhciB3ZWVrZGF5ID0gKHRoaXMuZGF5KCkgKyA3IC0gdGhpcy5sb2NhbGVEYXRhKCkuX3dlZWsuZG93KSAlIDc7CiAgICAgICAgICAgIHJldHVybiBpbnB1dCA9PSBudWxsID8gd2Vla2RheSA6IHRoaXMuYWRkKGlucHV0IC0gd2Vla2RheSwgJ2QnKTsKICAgICAgICB9LAoKICAgICAgICBpc29XZWVrZGF5IDogZnVuY3Rpb24gKGlucHV0KSB7CiAgICAgICAgICAgIC8vIGJlaGF2ZXMgdGhlIHNhbWUgYXMgbW9tZW50I2RheSBleGNlcHQKICAgICAgICAgICAgLy8gYXMgYSBnZXR0ZXIsIHJldHVybnMgNyBpbnN0ZWFkIG9mIDAgKDEtNyByYW5nZSBpbnN0ZWFkIG9mIDAtNikKICAgICAgICAgICAgLy8gYXMgYSBzZXR0ZXIsIHN1bmRheSBzaG91bGQgYmVsb25nIHRvIHRoZSBwcmV2aW91cyB3ZWVrLgogICAgICAgICAgICByZXR1cm4gaW5wdXQgPT0gbnVsbCA/IHRoaXMuZGF5KCkgfHwgNyA6IHRoaXMuZGF5KHRoaXMuZGF5KCkgJSA3ID8gaW5wdXQgOiBpbnB1dCAtIDcpOwogICAgICAgIH0sCgogICAgICAgIGlzb1dlZWtzSW5ZZWFyIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gd2Vla3NJblllYXIodGhpcy55ZWFyKCksIDEsIDQpOwogICAgICAgIH0sCgogICAgICAgIHdlZWtzSW5ZZWFyIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgd2Vla0luZm8gPSB0aGlzLmxvY2FsZURhdGEoKS5fd2VlazsKICAgICAgICAgICAgcmV0dXJuIHdlZWtzSW5ZZWFyKHRoaXMueWVhcigpLCB3ZWVrSW5mby5kb3csIHdlZWtJbmZvLmRveSk7CiAgICAgICAgfSwKCiAgICAgICAgZ2V0IDogZnVuY3Rpb24gKHVuaXRzKSB7CiAgICAgICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMpOwogICAgICAgICAgICByZXR1cm4gdGhpc1t1bml0c10oKTsKICAgICAgICB9LAoKICAgICAgICBzZXQgOiBmdW5jdGlvbiAodW5pdHMsIHZhbHVlKSB7CiAgICAgICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMpOwogICAgICAgICAgICBpZiAodHlwZW9mIHRoaXNbdW5pdHNdID09PSAnZnVuY3Rpb24nKSB7CiAgICAgICAgICAgICAgICB0aGlzW3VuaXRzXSh2YWx1ZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgICAgfSwKCiAgICAgICAgLy8gSWYgcGFzc2VkIGEgbG9jYWxlIGtleSwgaXQgd2lsbCBzZXQgdGhlIGxvY2FsZSBmb3IgdGhpcwogICAgICAgIC8vIGluc3RhbmNlLiAgT3RoZXJ3aXNlLCBpdCB3aWxsIHJldHVybiB0aGUgbG9jYWxlIGNvbmZpZ3VyYXRpb24KICAgICAgICAvLyB2YXJpYWJsZXMgZm9yIHRoaXMgaW5zdGFuY2UuCiAgICAgICAgbG9jYWxlIDogZnVuY3Rpb24gKGtleSkgewogICAgICAgICAgICB2YXIgbmV3TG9jYWxlRGF0YTsKCiAgICAgICAgICAgIGlmIChrZXkgPT09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsZS5fYWJicjsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIG5ld0xvY2FsZURhdGEgPSBtb21lbnQubG9jYWxlRGF0YShrZXkpOwogICAgICAgICAgICAgICAgaWYgKG5ld0xvY2FsZURhdGEgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgIHRoaXMuX2xvY2FsZSA9IG5ld0xvY2FsZURhdGE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIGxhbmcgOiBkZXByZWNhdGUoCiAgICAgICAgICAgICdtb21lbnQoKS5sYW5nKCkgaXMgZGVwcmVjYXRlZC4gSW5zdGVhZCwgdXNlIG1vbWVudCgpLmxvY2FsZURhdGEoKSB0byBnZXQgdGhlIGxhbmd1YWdlIGNvbmZpZ3VyYXRpb24uIFVzZSBtb21lbnQoKS5sb2NhbGUoKSB0byBjaGFuZ2UgbGFuZ3VhZ2VzLicsCiAgICAgICAgICAgIGZ1bmN0aW9uIChrZXkpIHsKICAgICAgICAgICAgICAgIGlmIChrZXkgPT09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlKGtleSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICApLAoKICAgICAgICBsb2NhbGVEYXRhIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlOwogICAgICAgIH0sCgogICAgICAgIF9kYXRlVHpPZmZzZXQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIC8vIE9uIEZpcmVmb3guMjQgRGF0ZSNnZXRUaW1lem9uZU9mZnNldCByZXR1cm5zIGEgZmxvYXRpbmcgcG9pbnQuCiAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tb21lbnQvbW9tZW50L3B1bGwvMTg3MQogICAgICAgICAgICByZXR1cm4gTWF0aC5yb3VuZCh0aGlzLl9kLmdldFRpbWV6b25lT2Zmc2V0KCkgLyAxNSkgKiAxNTsKICAgICAgICB9CiAgICB9KTsKCiAgICBmdW5jdGlvbiByYXdNb250aFNldHRlcihtb20sIHZhbHVlKSB7CiAgICAgICAgdmFyIGRheU9mTW9udGg7CgogICAgICAgIC8vIFRPRE86IE1vdmUgdGhpcyBvdXQgb2YgaGVyZSEKICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykgewogICAgICAgICAgICB2YWx1ZSA9IG1vbS5sb2NhbGVEYXRhKCkubW9udGhzUGFyc2UodmFsdWUpOwogICAgICAgICAgICAvLyBUT0RPOiBBbm90aGVyIHNpbGVudCBmYWlsdXJlPwogICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnbnVtYmVyJykgewogICAgICAgICAgICAgICAgcmV0dXJuIG1vbTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgZGF5T2ZNb250aCA9IE1hdGgubWluKG1vbS5kYXRlKCksCiAgICAgICAgICAgICAgICBkYXlzSW5Nb250aChtb20ueWVhcigpLCB2YWx1ZSkpOwogICAgICAgIG1vbS5fZFsnc2V0JyArIChtb20uX2lzVVRDID8gJ1VUQycgOiAnJykgKyAnTW9udGgnXSh2YWx1ZSwgZGF5T2ZNb250aCk7CiAgICAgICAgcmV0dXJuIG1vbTsKICAgIH0KCiAgICBmdW5jdGlvbiByYXdHZXR0ZXIobW9tLCB1bml0KSB7CiAgICAgICAgcmV0dXJuIG1vbS5fZFsnZ2V0JyArIChtb20uX2lzVVRDID8gJ1VUQycgOiAnJykgKyB1bml0XSgpOwogICAgfQoKICAgIGZ1bmN0aW9uIHJhd1NldHRlcihtb20sIHVuaXQsIHZhbHVlKSB7CiAgICAgICAgaWYgKHVuaXQgPT09ICdNb250aCcpIHsKICAgICAgICAgICAgcmV0dXJuIHJhd01vbnRoU2V0dGVyKG1vbSwgdmFsdWUpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiBtb20uX2RbJ3NldCcgKyAobW9tLl9pc1VUQyA/ICdVVEMnIDogJycpICsgdW5pdF0odmFsdWUpOwogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBtYWtlQWNjZXNzb3IodW5pdCwga2VlcFRpbWUpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb24gKHZhbHVlKSB7CiAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICByYXdTZXR0ZXIodGhpcywgdW5pdCwgdmFsdWUpOwogICAgICAgICAgICAgICAgbW9tZW50LnVwZGF0ZU9mZnNldCh0aGlzLCBrZWVwVGltZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHJldHVybiByYXdHZXR0ZXIodGhpcywgdW5pdCk7CiAgICAgICAgICAgIH0KICAgICAgICB9OwogICAgfQoKICAgIG1vbWVudC5mbi5taWxsaXNlY29uZCA9IG1vbWVudC5mbi5taWxsaXNlY29uZHMgPSBtYWtlQWNjZXNzb3IoJ01pbGxpc2Vjb25kcycsIGZhbHNlKTsKICAgIG1vbWVudC5mbi5zZWNvbmQgPSBtb21lbnQuZm4uc2Vjb25kcyA9IG1ha2VBY2Nlc3NvcignU2Vjb25kcycsIGZhbHNlKTsKICAgIG1vbWVudC5mbi5taW51dGUgPSBtb21lbnQuZm4ubWludXRlcyA9IG1ha2VBY2Nlc3NvcignTWludXRlcycsIGZhbHNlKTsKICAgIC8vIFNldHRpbmcgdGhlIGhvdXIgc2hvdWxkIGtlZXAgdGhlIHRpbWUsIGJlY2F1c2UgdGhlIHVzZXIgZXhwbGljaXRseQogICAgLy8gc3BlY2lmaWVkIHdoaWNoIGhvdXIgaGUgd2FudHMuIFNvIHRyeWluZyB0byBtYWludGFpbiB0aGUgc2FtZSBob3VyIChpbgogICAgLy8gYSBuZXcgdGltZXpvbmUpIG1ha2VzIHNlbnNlLiBBZGRpbmcvc3VidHJhY3RpbmcgaG91cnMgZG9lcyBub3QgZm9sbG93CiAgICAvLyB0aGlzIHJ1bGUuCiAgICBtb21lbnQuZm4uaG91ciA9IG1vbWVudC5mbi5ob3VycyA9IG1ha2VBY2Nlc3NvcignSG91cnMnLCB0cnVlKTsKICAgIC8vIG1vbWVudC5mbi5tb250aCBpcyBkZWZpbmVkIHNlcGFyYXRlbHkKICAgIG1vbWVudC5mbi5kYXRlID0gbWFrZUFjY2Vzc29yKCdEYXRlJywgdHJ1ZSk7CiAgICBtb21lbnQuZm4uZGF0ZXMgPSBkZXByZWNhdGUoJ2RhdGVzIGFjY2Vzc29yIGlzIGRlcHJlY2F0ZWQuIFVzZSBkYXRlIGluc3RlYWQuJywgbWFrZUFjY2Vzc29yKCdEYXRlJywgdHJ1ZSkpOwogICAgbW9tZW50LmZuLnllYXIgPSBtYWtlQWNjZXNzb3IoJ0Z1bGxZZWFyJywgdHJ1ZSk7CiAgICBtb21lbnQuZm4ueWVhcnMgPSBkZXByZWNhdGUoJ3llYXJzIGFjY2Vzc29yIGlzIGRlcHJlY2F0ZWQuIFVzZSB5ZWFyIGluc3RlYWQuJywgbWFrZUFjY2Vzc29yKCdGdWxsWWVhcicsIHRydWUpKTsKCiAgICAvLyBhZGQgcGx1cmFsIG1ldGhvZHMKICAgIG1vbWVudC5mbi5kYXlzID0gbW9tZW50LmZuLmRheTsKICAgIG1vbWVudC5mbi5tb250aHMgPSBtb21lbnQuZm4ubW9udGg7CiAgICBtb21lbnQuZm4ud2Vla3MgPSBtb21lbnQuZm4ud2VlazsKICAgIG1vbWVudC5mbi5pc29XZWVrcyA9IG1vbWVudC5mbi5pc29XZWVrOwogICAgbW9tZW50LmZuLnF1YXJ0ZXJzID0gbW9tZW50LmZuLnF1YXJ0ZXI7CgogICAgLy8gYWRkIGFsaWFzZWQgZm9ybWF0IG1ldGhvZHMKICAgIG1vbWVudC5mbi50b0pTT04gPSBtb21lbnQuZm4udG9JU09TdHJpbmc7CgogICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAgICAgIER1cmF0aW9uIFByb3RvdHlwZQogICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKCiAgICBmdW5jdGlvbiBkYXlzVG9ZZWFycyAoZGF5cykgewogICAgICAgIC8vIDQwMCB5ZWFycyBoYXZlIDE0NjA5NyBkYXlzICh0YWtpbmcgaW50byBhY2NvdW50IGxlYXAgeWVhciBydWxlcykKICAgICAgICByZXR1cm4gZGF5cyAqIDQwMCAvIDE0NjA5NzsKICAgIH0KCiAgICBmdW5jdGlvbiB5ZWFyc1RvRGF5cyAoeWVhcnMpIHsKICAgICAgICAvLyB5ZWFycyAqIDM2NSArIGFic1JvdW5kKHllYXJzIC8gNCkgLQogICAgICAgIC8vICAgICBhYnNSb3VuZCh5ZWFycyAvIDEwMCkgKyBhYnNSb3VuZCh5ZWFycyAvIDQwMCk7CiAgICAgICAgcmV0dXJuIHllYXJzICogMTQ2MDk3IC8gNDAwOwogICAgfQoKICAgIGV4dGVuZChtb21lbnQuZHVyYXRpb24uZm4gPSBEdXJhdGlvbi5wcm90b3R5cGUsIHsKCiAgICAgICAgX2J1YmJsZSA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIG1pbGxpc2Vjb25kcyA9IHRoaXMuX21pbGxpc2Vjb25kcywKICAgICAgICAgICAgICAgIGRheXMgPSB0aGlzLl9kYXlzLAogICAgICAgICAgICAgICAgbW9udGhzID0gdGhpcy5fbW9udGhzLAogICAgICAgICAgICAgICAgZGF0YSA9IHRoaXMuX2RhdGEsCiAgICAgICAgICAgICAgICBzZWNvbmRzLCBtaW51dGVzLCBob3VycywgeWVhcnMgPSAwOwoKICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIGJ1YmJsZXMgdXAgdmFsdWVzLCBzZWUgdGhlIHRlc3RzIGZvcgogICAgICAgICAgICAvLyBleGFtcGxlcyBvZiB3aGF0IHRoYXQgbWVhbnMuCiAgICAgICAgICAgIGRhdGEubWlsbGlzZWNvbmRzID0gbWlsbGlzZWNvbmRzICUgMTAwMDsKCiAgICAgICAgICAgIHNlY29uZHMgPSBhYnNSb3VuZChtaWxsaXNlY29uZHMgLyAxMDAwKTsKICAgICAgICAgICAgZGF0YS5zZWNvbmRzID0gc2Vjb25kcyAlIDYwOwoKICAgICAgICAgICAgbWludXRlcyA9IGFic1JvdW5kKHNlY29uZHMgLyA2MCk7CiAgICAgICAgICAgIGRhdGEubWludXRlcyA9IG1pbnV0ZXMgJSA2MDsKCiAgICAgICAgICAgIGhvdXJzID0gYWJzUm91bmQobWludXRlcyAvIDYwKTsKICAgICAgICAgICAgZGF0YS5ob3VycyA9IGhvdXJzICUgMjQ7CgogICAgICAgICAgICBkYXlzICs9IGFic1JvdW5kKGhvdXJzIC8gMjQpOwoKICAgICAgICAgICAgLy8gQWNjdXJhdGVseSBjb252ZXJ0IGRheXMgdG8geWVhcnMsIGFzc3VtZSBzdGFydCBmcm9tIHllYXIgMC4KICAgICAgICAgICAgeWVhcnMgPSBhYnNSb3VuZChkYXlzVG9ZZWFycyhkYXlzKSk7CiAgICAgICAgICAgIGRheXMgLT0gYWJzUm91bmQoeWVhcnNUb0RheXMoeWVhcnMpKTsKCiAgICAgICAgICAgIC8vIDMwIGRheXMgdG8gYSBtb250aAogICAgICAgICAgICAvLyBUT0RPIChpc2tyZW4pOiBVc2UgYW5jaG9yIGRhdGUgKGxpa2UgMXN0IEphbikgdG8gY29tcHV0ZSB0aGlzLgogICAgICAgICAgICBtb250aHMgKz0gYWJzUm91bmQoZGF5cyAvIDMwKTsKICAgICAgICAgICAgZGF5cyAlPSAzMDsKCiAgICAgICAgICAgIC8vIDEyIG1vbnRocyAtPiAxIHllYXIKICAgICAgICAgICAgeWVhcnMgKz0gYWJzUm91bmQobW9udGhzIC8gMTIpOwogICAgICAgICAgICBtb250aHMgJT0gMTI7CgogICAgICAgICAgICBkYXRhLmRheXMgPSBkYXlzOwogICAgICAgICAgICBkYXRhLm1vbnRocyA9IG1vbnRoczsKICAgICAgICAgICAgZGF0YS55ZWFycyA9IHllYXJzOwogICAgICAgIH0sCgogICAgICAgIGFicyA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdGhpcy5fbWlsbGlzZWNvbmRzID0gTWF0aC5hYnModGhpcy5fbWlsbGlzZWNvbmRzKTsKICAgICAgICAgICAgdGhpcy5fZGF5cyA9IE1hdGguYWJzKHRoaXMuX2RheXMpOwogICAgICAgICAgICB0aGlzLl9tb250aHMgPSBNYXRoLmFicyh0aGlzLl9tb250aHMpOwoKICAgICAgICAgICAgdGhpcy5fZGF0YS5taWxsaXNlY29uZHMgPSBNYXRoLmFicyh0aGlzLl9kYXRhLm1pbGxpc2Vjb25kcyk7CiAgICAgICAgICAgIHRoaXMuX2RhdGEuc2Vjb25kcyA9IE1hdGguYWJzKHRoaXMuX2RhdGEuc2Vjb25kcyk7CiAgICAgICAgICAgIHRoaXMuX2RhdGEubWludXRlcyA9IE1hdGguYWJzKHRoaXMuX2RhdGEubWludXRlcyk7CiAgICAgICAgICAgIHRoaXMuX2RhdGEuaG91cnMgPSBNYXRoLmFicyh0aGlzLl9kYXRhLmhvdXJzKTsKICAgICAgICAgICAgdGhpcy5fZGF0YS5tb250aHMgPSBNYXRoLmFicyh0aGlzLl9kYXRhLm1vbnRocyk7CiAgICAgICAgICAgIHRoaXMuX2RhdGEueWVhcnMgPSBNYXRoLmFicyh0aGlzLl9kYXRhLnllYXJzKTsKCiAgICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICAgIH0sCgogICAgICAgIHdlZWtzIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gYWJzUm91bmQodGhpcy5kYXlzKCkgLyA3KTsKICAgICAgICB9LAoKICAgICAgICB2YWx1ZU9mIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5fbWlsbGlzZWNvbmRzICsKICAgICAgICAgICAgICB0aGlzLl9kYXlzICogODY0ZTUgKwogICAgICAgICAgICAgICh0aGlzLl9tb250aHMgJSAxMikgKiAyNTkyZTYgKwogICAgICAgICAgICAgIHRvSW50KHRoaXMuX21vbnRocyAvIDEyKSAqIDMxNTM2ZTY7CiAgICAgICAgfSwKCiAgICAgICAgaHVtYW5pemUgOiBmdW5jdGlvbiAod2l0aFN1ZmZpeCkgewogICAgICAgICAgICB2YXIgb3V0cHV0ID0gcmVsYXRpdmVUaW1lKHRoaXMsICF3aXRoU3VmZml4LCB0aGlzLmxvY2FsZURhdGEoKSk7CgogICAgICAgICAgICBpZiAod2l0aFN1ZmZpeCkgewogICAgICAgICAgICAgICAgb3V0cHV0ID0gdGhpcy5sb2NhbGVEYXRhKCkucGFzdEZ1dHVyZSgrdGhpcywgb3V0cHV0KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLnBvc3Rmb3JtYXQob3V0cHV0KTsKICAgICAgICB9LAoKICAgICAgICBhZGQgOiBmdW5jdGlvbiAoaW5wdXQsIHZhbCkgewogICAgICAgICAgICAvLyBzdXBwb3J0cyBvbmx5IDIuMC1zdHlsZSBhZGQoMSwgJ3MnKSBvciBhZGQobW9tZW50KQogICAgICAgICAgICB2YXIgZHVyID0gbW9tZW50LmR1cmF0aW9uKGlucHV0LCB2YWwpOwoKICAgICAgICAgICAgdGhpcy5fbWlsbGlzZWNvbmRzICs9IGR1ci5fbWlsbGlzZWNvbmRzOwogICAgICAgICAgICB0aGlzLl9kYXlzICs9IGR1ci5fZGF5czsKICAgICAgICAgICAgdGhpcy5fbW9udGhzICs9IGR1ci5fbW9udGhzOwoKICAgICAgICAgICAgdGhpcy5fYnViYmxlKCk7CgogICAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICB9LAoKICAgICAgICBzdWJ0cmFjdCA6IGZ1bmN0aW9uIChpbnB1dCwgdmFsKSB7CiAgICAgICAgICAgIHZhciBkdXIgPSBtb21lbnQuZHVyYXRpb24oaW5wdXQsIHZhbCk7CgogICAgICAgICAgICB0aGlzLl9taWxsaXNlY29uZHMgLT0gZHVyLl9taWxsaXNlY29uZHM7CiAgICAgICAgICAgIHRoaXMuX2RheXMgLT0gZHVyLl9kYXlzOwogICAgICAgICAgICB0aGlzLl9tb250aHMgLT0gZHVyLl9tb250aHM7CgogICAgICAgICAgICB0aGlzLl9idWJibGUoKTsKCiAgICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICAgIH0sCgogICAgICAgIGdldCA6IGZ1bmN0aW9uICh1bml0cykgewogICAgICAgICAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKHVuaXRzKTsKICAgICAgICAgICAgcmV0dXJuIHRoaXNbdW5pdHMudG9Mb3dlckNhc2UoKSArICdzJ10oKTsKICAgICAgICB9LAoKICAgICAgICBhcyA6IGZ1bmN0aW9uICh1bml0cykgewogICAgICAgICAgICB2YXIgZGF5cywgbW9udGhzOwogICAgICAgICAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKHVuaXRzKTsKCiAgICAgICAgICAgIGlmICh1bml0cyA9PT0gJ21vbnRoJyB8fCB1bml0cyA9PT0gJ3llYXInKSB7CiAgICAgICAgICAgICAgICBkYXlzID0gdGhpcy5fZGF5cyArIHRoaXMuX21pbGxpc2Vjb25kcyAvIDg2NGU1OwogICAgICAgICAgICAgICAgbW9udGhzID0gdGhpcy5fbW9udGhzICsgZGF5c1RvWWVhcnMoZGF5cykgKiAxMjsKICAgICAgICAgICAgICAgIHJldHVybiB1bml0cyA9PT0gJ21vbnRoJyA/IG1vbnRocyA6IG1vbnRocyAvIDEyOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgLy8gaGFuZGxlIG1pbGxpc2Vjb25kcyBzZXBhcmF0ZWx5IGJlY2F1c2Ugb2YgZmxvYXRpbmcgcG9pbnQgbWF0aCBlcnJvcnMgKGlzc3VlICMxODY3KQogICAgICAgICAgICAgICAgZGF5cyA9IHRoaXMuX2RheXMgKyBNYXRoLnJvdW5kKHllYXJzVG9EYXlzKHRoaXMuX21vbnRocyAvIDEyKSk7CiAgICAgICAgICAgICAgICBzd2l0Y2ggKHVuaXRzKSB7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnd2Vlayc6IHJldHVybiBkYXlzIC8gNyArIHRoaXMuX21pbGxpc2Vjb25kcyAvIDYwNDhlNTsKICAgICAgICAgICAgICAgICAgICBjYXNlICdkYXknOiByZXR1cm4gZGF5cyArIHRoaXMuX21pbGxpc2Vjb25kcyAvIDg2NGU1OwogICAgICAgICAgICAgICAgICAgIGNhc2UgJ2hvdXInOiByZXR1cm4gZGF5cyAqIDI0ICsgdGhpcy5fbWlsbGlzZWNvbmRzIC8gMzZlNTsKICAgICAgICAgICAgICAgICAgICBjYXNlICdtaW51dGUnOiByZXR1cm4gZGF5cyAqIDI0ICogNjAgKyB0aGlzLl9taWxsaXNlY29uZHMgLyA2ZTQ7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnc2Vjb25kJzogcmV0dXJuIGRheXMgKiAyNCAqIDYwICogNjAgKyB0aGlzLl9taWxsaXNlY29uZHMgLyAxMDAwOwogICAgICAgICAgICAgICAgICAgIC8vIE1hdGguZmxvb3IgcHJldmVudHMgZmxvYXRpbmcgcG9pbnQgbWF0aCBlcnJvcnMgaGVyZQogICAgICAgICAgICAgICAgICAgIGNhc2UgJ21pbGxpc2Vjb25kJzogcmV0dXJuIE1hdGguZmxvb3IoZGF5cyAqIDI0ICogNjAgKiA2MCAqIDEwMDApICsgdGhpcy5fbWlsbGlzZWNvbmRzOwogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHRocm93IG5ldyBFcnJvcignVW5rbm93biB1bml0ICcgKyB1bml0cyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICBsYW5nIDogbW9tZW50LmZuLmxhbmcsCiAgICAgICAgbG9jYWxlIDogbW9tZW50LmZuLmxvY2FsZSwKCiAgICAgICAgdG9Jc29TdHJpbmcgOiBkZXByZWNhdGUoCiAgICAgICAgICAgICd0b0lzb1N0cmluZygpIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgdG9JU09TdHJpbmcoKSBpbnN0ZWFkICcgKwogICAgICAgICAgICAnKG5vdGljZSB0aGUgY2FwaXRhbHMpJywKICAgICAgICAgICAgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudG9JU09TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgICksCgogICAgICAgIHRvSVNPU3RyaW5nIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAvLyBpbnNwaXJlZCBieSBodHRwczovL2dpdGh1Yi5jb20vZG9yZGlsbGUvbW9tZW50LWlzb2R1cmF0aW9uL2Jsb2IvbWFzdGVyL21vbWVudC5pc29kdXJhdGlvbi5qcwogICAgICAgICAgICB2YXIgeWVhcnMgPSBNYXRoLmFicyh0aGlzLnllYXJzKCkpLAogICAgICAgICAgICAgICAgbW9udGhzID0gTWF0aC5hYnModGhpcy5tb250aHMoKSksCiAgICAgICAgICAgICAgICBkYXlzID0gTWF0aC5hYnModGhpcy5kYXlzKCkpLAogICAgICAgICAgICAgICAgaG91cnMgPSBNYXRoLmFicyh0aGlzLmhvdXJzKCkpLAogICAgICAgICAgICAgICAgbWludXRlcyA9IE1hdGguYWJzKHRoaXMubWludXRlcygpKSwKICAgICAgICAgICAgICAgIHNlY29uZHMgPSBNYXRoLmFicyh0aGlzLnNlY29uZHMoKSArIHRoaXMubWlsbGlzZWNvbmRzKCkgLyAxMDAwKTsKCiAgICAgICAgICAgIGlmICghdGhpcy5hc1NlY29uZHMoKSkgewogICAgICAgICAgICAgICAgLy8gdGhpcyBpcyB0aGUgc2FtZSBhcyBDIydzIChOb2RhKSBhbmQgcHl0aG9uIChpc29kYXRlKS4uLgogICAgICAgICAgICAgICAgLy8gYnV0IG5vdCBvdGhlciBKUyAoZ29vZy5kYXRlKQogICAgICAgICAgICAgICAgcmV0dXJuICdQMEQnOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gKHRoaXMuYXNTZWNvbmRzKCkgPCAwID8gJy0nIDogJycpICsKICAgICAgICAgICAgICAgICdQJyArCiAgICAgICAgICAgICAgICAoeWVhcnMgPyB5ZWFycyArICdZJyA6ICcnKSArCiAgICAgICAgICAgICAgICAobW9udGhzID8gbW9udGhzICsgJ00nIDogJycpICsKICAgICAgICAgICAgICAgIChkYXlzID8gZGF5cyArICdEJyA6ICcnKSArCiAgICAgICAgICAgICAgICAoKGhvdXJzIHx8IG1pbnV0ZXMgfHwgc2Vjb25kcykgPyAnVCcgOiAnJykgKwogICAgICAgICAgICAgICAgKGhvdXJzID8gaG91cnMgKyAnSCcgOiAnJykgKwogICAgICAgICAgICAgICAgKG1pbnV0ZXMgPyBtaW51dGVzICsgJ00nIDogJycpICsKICAgICAgICAgICAgICAgIChzZWNvbmRzID8gc2Vjb25kcyArICdTJyA6ICcnKTsKICAgICAgICB9LAoKICAgICAgICBsb2NhbGVEYXRhIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlOwogICAgICAgIH0KICAgIH0pOwoKICAgIG1vbWVudC5kdXJhdGlvbi5mbi50b1N0cmluZyA9IG1vbWVudC5kdXJhdGlvbi5mbi50b0lTT1N0cmluZzsKCiAgICBmdW5jdGlvbiBtYWtlRHVyYXRpb25HZXR0ZXIobmFtZSkgewogICAgICAgIG1vbWVudC5kdXJhdGlvbi5mbltuYW1lXSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFbbmFtZV07CiAgICAgICAgfTsKICAgIH0KCiAgICBmb3IgKGkgaW4gdW5pdE1pbGxpc2Vjb25kRmFjdG9ycykgewogICAgICAgIGlmIChoYXNPd25Qcm9wKHVuaXRNaWxsaXNlY29uZEZhY3RvcnMsIGkpKSB7CiAgICAgICAgICAgIG1ha2VEdXJhdGlvbkdldHRlcihpLnRvTG93ZXJDYXNlKCkpOwogICAgICAgIH0KICAgIH0KCiAgICBtb21lbnQuZHVyYXRpb24uZm4uYXNNaWxsaXNlY29uZHMgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuYXMoJ21zJyk7CiAgICB9OwogICAgbW9tZW50LmR1cmF0aW9uLmZuLmFzU2Vjb25kcyA9IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gdGhpcy5hcygncycpOwogICAgfTsKICAgIG1vbWVudC5kdXJhdGlvbi5mbi5hc01pbnV0ZXMgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuYXMoJ20nKTsKICAgIH07CiAgICBtb21lbnQuZHVyYXRpb24uZm4uYXNIb3VycyA9IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gdGhpcy5hcygnaCcpOwogICAgfTsKICAgIG1vbWVudC5kdXJhdGlvbi5mbi5hc0RheXMgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuYXMoJ2QnKTsKICAgIH07CiAgICBtb21lbnQuZHVyYXRpb24uZm4uYXNXZWVrcyA9IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gdGhpcy5hcygnd2Vla3MnKTsKICAgIH07CiAgICBtb21lbnQuZHVyYXRpb24uZm4uYXNNb250aHMgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuYXMoJ00nKTsKICAgIH07CiAgICBtb21lbnQuZHVyYXRpb24uZm4uYXNZZWFycyA9IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gdGhpcy5hcygneScpOwogICAgfTsKCiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICAgICAgRGVmYXVsdCBMb2NhbGUKICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCgogICAgLy8gU2V0IGRlZmF1bHQgbG9jYWxlLCBvdGhlciBsb2NhbGUgd2lsbCBpbmhlcml0IGZyb20gRW5nbGlzaC4KICAgIG1vbWVudC5sb2NhbGUoJ2VuJywgewogICAgICAgIG9yZGluYWxQYXJzZTogL1xkezEsMn0odGh8c3R8bmR8cmQpLywKICAgICAgICBvcmRpbmFsIDogZnVuY3Rpb24gKG51bWJlcikgewogICAgICAgICAgICB2YXIgYiA9IG51bWJlciAlIDEwLAogICAgICAgICAgICAgICAgb3V0cHV0ID0gKHRvSW50KG51bWJlciAlIDEwMCAvIDEwKSA9PT0gMSkgPyAndGgnIDoKICAgICAgICAgICAgICAgIChiID09PSAxKSA/ICdzdCcgOgogICAgICAgICAgICAgICAgKGIgPT09IDIpID8gJ25kJyA6CiAgICAgICAgICAgICAgICAoYiA9PT0gMykgPyAncmQnIDogJ3RoJzsKICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIG91dHB1dDsKICAgICAgICB9CiAgICB9KTsKCiAgICAvKiBFTUJFRF9MT0NBTEVTICovCgogICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAgICAgIEV4cG9zaW5nIE1vbWVudAogICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKICAgIGZ1bmN0aW9uIG1ha2VHbG9iYWwoc2hvdWxkRGVwcmVjYXRlKSB7CiAgICAgICAgLypnbG9iYWwgZW5kZXI6ZmFsc2UgKi8KICAgICAgICBpZiAodHlwZW9mIGVuZGVyICE9PSAndW5kZWZpbmVkJykgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIG9sZEdsb2JhbE1vbWVudCA9IGdsb2JhbFNjb3BlLm1vbWVudDsKICAgICAgICBpZiAoc2hvdWxkRGVwcmVjYXRlKSB7CiAgICAgICAgICAgIGdsb2JhbFNjb3BlLm1vbWVudCA9IGRlcHJlY2F0ZSgKICAgICAgICAgICAgICAgICAgICAnQWNjZXNzaW5nIE1vbWVudCB0aHJvdWdoIHRoZSBnbG9iYWwgc2NvcGUgaXMgJyArCiAgICAgICAgICAgICAgICAgICAgJ2RlcHJlY2F0ZWQsIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYW4gdXBjb21pbmcgJyArCiAgICAgICAgICAgICAgICAgICAgJ3JlbGVhc2UuJywKICAgICAgICAgICAgICAgICAgICBtb21lbnQpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGdsb2JhbFNjb3BlLm1vbWVudCA9IG1vbWVudDsKICAgICAgICB9CiAgICB9CgogICAgLy8gQ29tbW9uSlMgbW9kdWxlIGlzIGRlZmluZWQKICAgIGlmIChoYXNNb2R1bGUpIHsKICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IG1vbWVudDsKICAgIH0gZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7CiAgICAgICAgZGVmaW5lKCdtb21lbnQnLCBmdW5jdGlvbiAocmVxdWlyZSwgZXhwb3J0cywgbW9kdWxlKSB7CiAgICAgICAgICAgIGlmIChtb2R1bGUuY29uZmlnICYmIG1vZHVsZS5jb25maWcoKSAmJiBtb2R1bGUuY29uZmlnKCkubm9HbG9iYWwgPT09IHRydWUpIHsKICAgICAgICAgICAgICAgIC8vIHJlbGVhc2UgdGhlIGdsb2JhbCB2YXJpYWJsZQogICAgICAgICAgICAgICAgZ2xvYmFsU2NvcGUubW9tZW50ID0gb2xkR2xvYmFsTW9tZW50OwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gbW9tZW50OwogICAgICAgIH0pOwogICAgICAgIG1ha2VHbG9iYWwodHJ1ZSk7CiAgICB9IGVsc2UgewogICAgICAgIG1ha2VHbG9iYWwoKTsKICAgIH0KfSkuY2FsbCh0aGlzKTsK"></script>
<script src="data:application/x-javascript;base64,Ly8hIG1vbWVudC10aW1lem9uZS5qcwovLyEgdmVyc2lvbiA6IDAuMi41Ci8vISBhdXRob3IgOiBUaW0gV29vZAovLyEgbGljZW5zZSA6IE1JVAovLyEgZ2l0aHViLmNvbS9tb21lbnQvbW9tZW50LXRpbWV6b25lCgooZnVuY3Rpb24gKHJvb3QsIGZhY3RvcnkpIHsKCSJ1c2Ugc3RyaWN0IjsKCgkvKmdsb2JhbCBkZWZpbmUqLwoJaWYgKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCkgewoJCWRlZmluZShbJ21vbWVudCddLCBmYWN0b3J5KTsgICAgICAgICAgICAgICAgIC8vIEFNRAoJfSBlbHNlIGlmICh0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpIHsKCQltb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkocmVxdWlyZSgnbW9tZW50JykpOyAvLyBOb2RlCgl9IGVsc2UgewoJCWZhY3Rvcnkocm9vdC5tb21lbnQpOyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJyb3dzZXIKCX0KfSh0aGlzLCBmdW5jdGlvbiAobW9tZW50KSB7CgkidXNlIHN0cmljdCI7CgoJLy8gRG8gbm90IGxvYWQgbW9tZW50LXRpbWV6b25lIGEgc2Vjb25kIHRpbWUuCglpZiAobW9tZW50LnR6ICE9PSB1bmRlZmluZWQpIHsgcmV0dXJuIG1vbWVudDsgfQoKCXZhciBWRVJTSU9OID0gIjAuMi41IiwKCQl6b25lcyA9IHt9LAoJCWxpbmtzID0ge30sCgoJCW1vbWVudFZlcnNpb24gPSBtb21lbnQudmVyc2lvbi5zcGxpdCgnLicpLAoJCW1ham9yID0gK21vbWVudFZlcnNpb25bMF0sCgkJbWlub3IgPSArbW9tZW50VmVyc2lvblsxXTsKCgkvLyBNb21lbnQuanMgdmVyc2lvbiBjaGVjawoJaWYgKG1ham9yIDwgMiB8fCAobWFqb3IgPT09IDIgJiYgbWlub3IgPCA2KSkgewoJCWxvZ0Vycm9yKCdNb21lbnQgVGltZXpvbmUgcmVxdWlyZXMgTW9tZW50LmpzID49IDIuNi4wLiBZb3UgYXJlIHVzaW5nIE1vbWVudC5qcyAnICsgbW9tZW50LnZlcnNpb24gKyAnLiBTZWUgbW9tZW50anMuY29tJyk7Cgl9CgoJLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoJCVVucGFja2luZwoJKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKCWZ1bmN0aW9uIGNoYXJDb2RlVG9JbnQoY2hhckNvZGUpIHsKCQlpZiAoY2hhckNvZGUgPiA5NikgewoJCQlyZXR1cm4gY2hhckNvZGUgLSA4NzsKCQl9IGVsc2UgaWYgKGNoYXJDb2RlID4gNjQpIHsKCQkJcmV0dXJuIGNoYXJDb2RlIC0gMjk7CgkJfQoJCXJldHVybiBjaGFyQ29kZSAtIDQ4OwoJfQoKCWZ1bmN0aW9uIHVucGFja0Jhc2U2MChzdHJpbmcpIHsKCQl2YXIgaSA9IDAsCgkJCXBhcnRzID0gc3RyaW5nLnNwbGl0KCcuJyksCgkJCXdob2xlID0gcGFydHNbMF0sCgkJCWZyYWN0aW9uYWwgPSBwYXJ0c1sxXSB8fCAnJywKCQkJbXVsdGlwbGllciA9IDEsCgkJCW51bSwKCQkJb3V0ID0gMCwKCQkJc2lnbiA9IDE7CgoJCS8vIGhhbmRsZSBuZWdhdGl2ZSBudW1iZXJzCgkJaWYgKHN0cmluZy5jaGFyQ29kZUF0KDApID09PSA0NSkgewoJCQlpID0gMTsKCQkJc2lnbiA9IC0xOwoJCX0KCgkJLy8gaGFuZGxlIGRpZ2l0cyBiZWZvcmUgdGhlIGRlY2ltYWwKCQlmb3IgKGk7IGkgPCB3aG9sZS5sZW5ndGg7IGkrKykgewoJCQludW0gPSBjaGFyQ29kZVRvSW50KHdob2xlLmNoYXJDb2RlQXQoaSkpOwoJCQlvdXQgPSA2MCAqIG91dCArIG51bTsKCQl9CgoJCS8vIGhhbmRsZSBkaWdpdHMgYWZ0ZXIgdGhlIGRlY2ltYWwKCQlmb3IgKGkgPSAwOyBpIDwgZnJhY3Rpb25hbC5sZW5ndGg7IGkrKykgewoJCQltdWx0aXBsaWVyID0gbXVsdGlwbGllciAvIDYwOwoJCQludW0gPSBjaGFyQ29kZVRvSW50KGZyYWN0aW9uYWwuY2hhckNvZGVBdChpKSk7CgkJCW91dCArPSBudW0gKiBtdWx0aXBsaWVyOwoJCX0KCgkJcmV0dXJuIG91dCAqIHNpZ247Cgl9CgoJZnVuY3Rpb24gYXJyYXlUb0ludCAoYXJyYXkpIHsKCQlmb3IgKHZhciBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7CgkJCWFycmF5W2ldID0gdW5wYWNrQmFzZTYwKGFycmF5W2ldKTsKCQl9Cgl9CgoJZnVuY3Rpb24gaW50VG9VbnRpbCAoYXJyYXksIGxlbmd0aCkgewoJCWZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKCQkJYXJyYXlbaV0gPSBNYXRoLnJvdW5kKChhcnJheVtpIC0gMV0gfHwgMCkgKyAoYXJyYXlbaV0gKiA2MDAwMCkpOyAvLyBtaW51dGVzIHRvIG1pbGxpc2Vjb25kcwoJCX0KCgkJYXJyYXlbbGVuZ3RoIC0gMV0gPSBJbmZpbml0eTsKCX0KCglmdW5jdGlvbiBtYXBJbmRpY2VzIChzb3VyY2UsIGluZGljZXMpIHsKCQl2YXIgb3V0ID0gW10sIGk7CgoJCWZvciAoaSA9IDA7IGkgPCBpbmRpY2VzLmxlbmd0aDsgaSsrKSB7CgkJCW91dFtpXSA9IHNvdXJjZVtpbmRpY2VzW2ldXTsKCQl9CgoJCXJldHVybiBvdXQ7Cgl9CgoJZnVuY3Rpb24gdW5wYWNrIChzdHJpbmcpIHsKCQl2YXIgZGF0YSA9IHN0cmluZy5zcGxpdCgnfCcpLAoJCQlvZmZzZXRzID0gZGF0YVsyXS5zcGxpdCgnICcpLAoJCQlpbmRpY2VzID0gZGF0YVszXS5zcGxpdCgnJyksCgkJCXVudGlscyAgPSBkYXRhWzRdLnNwbGl0KCcgJyk7CgoJCWFycmF5VG9JbnQob2Zmc2V0cyk7CgkJYXJyYXlUb0ludChpbmRpY2VzKTsKCQlhcnJheVRvSW50KHVudGlscyk7CgoJCWludFRvVW50aWwodW50aWxzLCBpbmRpY2VzLmxlbmd0aCk7CgoJCXJldHVybiB7CgkJCW5hbWUgICAgOiBkYXRhWzBdLAoJCQlhYmJycyAgIDogbWFwSW5kaWNlcyhkYXRhWzFdLnNwbGl0KCcgJyksIGluZGljZXMpLAoJCQlvZmZzZXRzIDogbWFwSW5kaWNlcyhvZmZzZXRzLCBpbmRpY2VzKSwKCQkJdW50aWxzICA6IHVudGlscwoJCX07Cgl9CgoJLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoJCVpvbmUgb2JqZWN0CgkqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgoJZnVuY3Rpb24gWm9uZSAocGFja2VkU3RyaW5nKSB7CgkJaWYgKHBhY2tlZFN0cmluZykgewoJCQl0aGlzLl9zZXQodW5wYWNrKHBhY2tlZFN0cmluZykpOwoJCX0KCX0KCglab25lLnByb3RvdHlwZSA9IHsKCQlfc2V0IDogZnVuY3Rpb24gKHVucGFja2VkKSB7CgkJCXRoaXMubmFtZSAgICA9IHVucGFja2VkLm5hbWU7CgkJCXRoaXMuYWJicnMgICA9IHVucGFja2VkLmFiYnJzOwoJCQl0aGlzLnVudGlscyAgPSB1bnBhY2tlZC51bnRpbHM7CgkJCXRoaXMub2Zmc2V0cyA9IHVucGFja2VkLm9mZnNldHM7CgkJfSwKCgkJX2luZGV4IDogZnVuY3Rpb24gKHRpbWVzdGFtcCkgewoJCQl2YXIgdGFyZ2V0ID0gK3RpbWVzdGFtcCwKCQkJCXVudGlscyA9IHRoaXMudW50aWxzLAoJCQkJaTsKCgkJCWZvciAoaSA9IDA7IGkgPCB1bnRpbHMubGVuZ3RoOyBpKyspIHsKCQkJCWlmICh0YXJnZXQgPCB1bnRpbHNbaV0pIHsKCQkJCQlyZXR1cm4gaTsKCQkJCX0KCQkJfQoJCX0sCgoJCXBhcnNlIDogZnVuY3Rpb24gKHRpbWVzdGFtcCkgewoJCQl2YXIgdGFyZ2V0ICA9ICt0aW1lc3RhbXAsCgkJCQlvZmZzZXRzID0gdGhpcy5vZmZzZXRzLAoJCQkJdW50aWxzICA9IHRoaXMudW50aWxzLAoJCQkJbWF4ICAgICA9IHVudGlscy5sZW5ndGggLSAxLAoJCQkJb2Zmc2V0LCBvZmZzZXROZXh0LCBvZmZzZXRQcmV2LCBpOwoKCQkJZm9yIChpID0gMDsgaSA8IG1heDsgaSsrKSB7CgkJCQlvZmZzZXQgICAgID0gb2Zmc2V0c1tpXTsKCQkJCW9mZnNldE5leHQgPSBvZmZzZXRzW2kgKyAxXTsKCQkJCW9mZnNldFByZXYgPSBvZmZzZXRzW2kgPyBpIC0gMSA6IGldOwoKCQkJCWlmIChvZmZzZXQgPCBvZmZzZXROZXh0ICYmIHR6Lm1vdmVBbWJpZ3VvdXNGb3J3YXJkKSB7CgkJCQkJb2Zmc2V0ID0gb2Zmc2V0TmV4dDsKCQkJCX0gZWxzZSBpZiAob2Zmc2V0ID4gb2Zmc2V0UHJldiAmJiB0ei5tb3ZlSW52YWxpZEZvcndhcmQpIHsKCQkJCQlvZmZzZXQgPSBvZmZzZXRQcmV2OwoJCQkJfQoKCQkJCWlmICh0YXJnZXQgPCB1bnRpbHNbaV0gLSAob2Zmc2V0ICogNjAwMDApKSB7CgkJCQkJcmV0dXJuIG9mZnNldHNbaV07CgkJCQl9CgkJCX0KCgkJCXJldHVybiBvZmZzZXRzW21heF07CgkJfSwKCgkJYWJiciA6IGZ1bmN0aW9uIChtb20pIHsKCQkJcmV0dXJuIHRoaXMuYWJicnNbdGhpcy5faW5kZXgobW9tKV07CgkJfSwKCgkJb2Zmc2V0IDogZnVuY3Rpb24gKG1vbSkgewoJCQlyZXR1cm4gdGhpcy5vZmZzZXRzW3RoaXMuX2luZGV4KG1vbSldOwoJCX0KCX07CgoJLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoJCUdsb2JhbCBNZXRob2RzCgkqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgoJZnVuY3Rpb24gbm9ybWFsaXplTmFtZSAobmFtZSkgewoJCXJldHVybiAobmFtZSB8fCAnJykudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9cLy9nLCAnXycpOwoJfQoKCWZ1bmN0aW9uIGFkZFpvbmUgKHBhY2tlZCkgewoJCXZhciBpLCB6b25lLCB6b25lTmFtZTsKCgkJaWYgKHR5cGVvZiBwYWNrZWQgPT09ICJzdHJpbmciKSB7CgkJCXBhY2tlZCA9IFtwYWNrZWRdOwoJCX0KCgkJZm9yIChpID0gMDsgaSA8IHBhY2tlZC5sZW5ndGg7IGkrKykgewoJCQl6b25lID0gbmV3IFpvbmUocGFja2VkW2ldKTsKCQkJem9uZU5hbWUgPSBub3JtYWxpemVOYW1lKHpvbmUubmFtZSk7CgkJCXpvbmVzW3pvbmVOYW1lXSA9IHpvbmU7CgkJCXVwZ3JhZGVMaW5rc1RvWm9uZXMoem9uZU5hbWUpOwoJCX0KCX0KCglmdW5jdGlvbiBnZXRab25lIChuYW1lKSB7CgkJcmV0dXJuIHpvbmVzW25vcm1hbGl6ZU5hbWUobmFtZSldIHx8IG51bGw7Cgl9CgoJZnVuY3Rpb24gZ2V0TmFtZXMgKCkgewoJCXZhciBpLCBvdXQgPSBbXTsKCgkJZm9yIChpIGluIHpvbmVzKSB7CgkJCWlmICh6b25lcy5oYXNPd25Qcm9wZXJ0eShpKSAmJiB6b25lc1tpXSkgewoJCQkJb3V0LnB1c2goem9uZXNbaV0ubmFtZSk7CgkJCX0KCQl9CgoJCXJldHVybiBvdXQuc29ydCgpOwoJfQoKCWZ1bmN0aW9uIGFkZExpbmsgKGFsaWFzZXMpIHsKCQl2YXIgaSwgYWxpYXM7CgoJCWlmICh0eXBlb2YgYWxpYXNlcyA9PT0gInN0cmluZyIpIHsKCQkJYWxpYXNlcyA9IFthbGlhc2VzXTsKCQl9CgoJCWZvciAoaSA9IDA7IGkgPCBhbGlhc2VzLmxlbmd0aDsgaSsrKSB7CgkJCWFsaWFzID0gYWxpYXNlc1tpXS5zcGxpdCgnfCcpOwoJCQlwdXNoTGluayhhbGlhc1swXSwgYWxpYXNbMV0pOwoJCQlwdXNoTGluayhhbGlhc1sxXSwgYWxpYXNbMF0pOwoJCX0KCX0KCglmdW5jdGlvbiB1cGdyYWRlTGlua3NUb1pvbmVzICh6b25lTmFtZSkgewoJCWlmICghbGlua3Nbem9uZU5hbWVdKSB7CgkJCXJldHVybjsKCQl9CgoJCXZhciBpLAoJCQl6b25lID0gem9uZXNbem9uZU5hbWVdLAoJCQlsaW5rTmFtZXMgPSBsaW5rc1t6b25lTmFtZV07CgoJCWZvciAoaSA9IDA7IGkgPCBsaW5rTmFtZXMubGVuZ3RoOyBpKyspIHsKCQkJY29weVpvbmVXaXRoTmFtZSh6b25lLCBsaW5rTmFtZXNbaV0pOwoJCX0KCgkJbGlua3Nbem9uZU5hbWVdID0gbnVsbDsKCX0KCglmdW5jdGlvbiBjb3B5Wm9uZVdpdGhOYW1lICh6b25lLCBuYW1lKSB7CgkJdmFyIGxpbmtab25lID0gem9uZXNbbm9ybWFsaXplTmFtZShuYW1lKV0gPSBuZXcgWm9uZSgpOwoJCWxpbmtab25lLl9zZXQoem9uZSk7CgkJbGlua1pvbmUubmFtZSA9IG5hbWU7Cgl9CgoJZnVuY3Rpb24gcHVzaExpbmsgKHpvbmVOYW1lLCBsaW5rTmFtZSkgewoJCXpvbmVOYW1lID0gbm9ybWFsaXplTmFtZSh6b25lTmFtZSk7CgoJCWlmICh6b25lc1t6b25lTmFtZV0pIHsKCQkJY29weVpvbmVXaXRoTmFtZSh6b25lc1t6b25lTmFtZV0sIGxpbmtOYW1lKTsKCQl9IGVsc2UgewoJCQlsaW5rc1t6b25lTmFtZV0gPSBsaW5rc1t6b25lTmFtZV0gfHwgW107CgkJCWxpbmtzW3pvbmVOYW1lXS5wdXNoKGxpbmtOYW1lKTsKCQl9Cgl9CgoJZnVuY3Rpb24gbG9hZERhdGEgKGRhdGEpIHsKCQlhZGRab25lKGRhdGEuem9uZXMpOwoJCWFkZExpbmsoZGF0YS5saW5rcyk7CgkJdHouZGF0YVZlcnNpb24gPSBkYXRhLnZlcnNpb247Cgl9CgoJZnVuY3Rpb24gem9uZUV4aXN0cyAobmFtZSkgewoJCWlmICghem9uZUV4aXN0cy5kaWRTaG93RXJyb3IpIHsKCQkJem9uZUV4aXN0cy5kaWRTaG93RXJyb3IgPSB0cnVlOwoJCQkJbG9nRXJyb3IoIm1vbWVudC50ei56b25lRXhpc3RzKCciICsgbmFtZSArICInKSBoYXMgYmVlbiBkZXByZWNhdGVkIGluIGZhdm9yIG9mICFtb21lbnQudHouem9uZSgnIiArIG5hbWUgKyAiJykiKTsKCQl9CgkJcmV0dXJuICEhZ2V0Wm9uZShuYW1lKTsKCX0KCglmdW5jdGlvbiBuZWVkc09mZnNldCAobSkgewoJCXJldHVybiAhIShtLl9hICYmIChtLl90em0gPT09IHVuZGVmaW5lZCkpOwoJfQoKCWZ1bmN0aW9uIGxvZ0Vycm9yIChtZXNzYWdlKSB7CgkJaWYgKHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgY29uc29sZS5lcnJvciA9PT0gJ2Z1bmN0aW9uJykgewoJCQljb25zb2xlLmVycm9yKG1lc3NhZ2UpOwoJCX0KCX0KCgkvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgkJbW9tZW50LnR6IG5hbWVzcGFjZQoJKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKCWZ1bmN0aW9uIHR6ICgpIHsKCQl2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMCwgLTEpLAoJCQluYW1lID0gYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXSwKCQkJem9uZSA9IGdldFpvbmUobmFtZSksCgkJCW91dCAgPSBtb21lbnQudXRjLmFwcGx5KG51bGwsIGFyZ3MpOwoKCQlpZiAoem9uZSAmJiBuZWVkc09mZnNldChvdXQpKSB7CgkJCW91dC5hZGQoem9uZS5wYXJzZShvdXQpLCAnbWludXRlcycpOwoJCX0KCgkJb3V0LnR6KG5hbWUpOwoKCQlyZXR1cm4gb3V0OwoJfQoKCXR6LnZlcnNpb24gICAgICA9IFZFUlNJT047Cgl0ei5kYXRhVmVyc2lvbiAgPSAnJzsKCXR6Ll96b25lcyAgICAgICA9IHpvbmVzOwoJdHouX2xpbmtzICAgICAgID0gbGlua3M7Cgl0ei5hZGQgICAgICAgICAgPSBhZGRab25lOwoJdHoubGluayAgICAgICAgID0gYWRkTGluazsKCXR6LmxvYWQgICAgICAgICA9IGxvYWREYXRhOwoJdHouem9uZSAgICAgICAgID0gZ2V0Wm9uZTsKCXR6LnpvbmVFeGlzdHMgICA9IHpvbmVFeGlzdHM7IC8vIGRlcHJlY2F0ZWQgaW4gMC4xLjAKCXR6Lm5hbWVzICAgICAgICA9IGdldE5hbWVzOwoJdHouWm9uZSAgICAgICAgID0gWm9uZTsKCXR6LnVucGFjayAgICAgICA9IHVucGFjazsKCXR6LnVucGFja0Jhc2U2MCA9IHVucGFja0Jhc2U2MDsKCXR6Lm5lZWRzT2Zmc2V0ICA9IG5lZWRzT2Zmc2V0OwoJdHoubW92ZUludmFsaWRGb3J3YXJkICAgPSB0cnVlOwoJdHoubW92ZUFtYmlndW91c0ZvcndhcmQgPSBmYWxzZTsKCgkvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgkJSW50ZXJmYWNlIHdpdGggTW9tZW50LmpzCgkqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgoJdmFyIGZuID0gbW9tZW50LmZuOwoKCW1vbWVudC50eiA9IHR6OwoKCW1vbWVudC51cGRhdGVPZmZzZXQgPSBmdW5jdGlvbiAobW9tLCBrZWVwVGltZSkgewoJCXZhciBvZmZzZXQ7CgkJaWYgKG1vbS5feikgewoJCQlvZmZzZXQgPSBtb20uX3oub2Zmc2V0KG1vbSk7CgkJCWlmIChNYXRoLmFicyhvZmZzZXQpIDwgMTYpIHsKCQkJCW9mZnNldCA9IG9mZnNldCAvIDYwOwoJCQl9CgkJCW1vbS56b25lKG9mZnNldCwga2VlcFRpbWUpOwoJCX0KCX07CgoJZm4udHogPSBmdW5jdGlvbiAobmFtZSkgewoJCWlmIChuYW1lKSB7CgkJCXRoaXMuX3ogPSBnZXRab25lKG5hbWUpOwoJCQlpZiAodGhpcy5feikgewoJCQkJbW9tZW50LnVwZGF0ZU9mZnNldCh0aGlzKTsKCQkJfSBlbHNlIHsKCQkJCWxvZ0Vycm9yKCJNb21lbnQgVGltZXpvbmUgaGFzIG5vIGRhdGEgZm9yICIgKyBuYW1lICsgIi4gU2VlIGh0dHA6Ly9tb21lbnRqcy5jb20vdGltZXpvbmUvZG9jcy8jL2RhdGEtbG9hZGluZy8uIik7CgkJCX0KCQkJcmV0dXJuIHRoaXM7CgkJfQoJCWlmICh0aGlzLl96KSB7IHJldHVybiB0aGlzLl96Lm5hbWU7IH0KCX07CgoJZnVuY3Rpb24gYWJicldyYXAgKG9sZCkgewoJCXJldHVybiBmdW5jdGlvbiAoKSB7CgkJCWlmICh0aGlzLl96KSB7IHJldHVybiB0aGlzLl96LmFiYnIodGhpcyk7IH0KCQkJcmV0dXJuIG9sZC5jYWxsKHRoaXMpOwoJCX07Cgl9CgoJZnVuY3Rpb24gcmVzZXRab25lV3JhcCAob2xkKSB7CgkJcmV0dXJuIGZ1bmN0aW9uICgpIHsKCQkJdGhpcy5feiA9IG51bGw7CgkJCXJldHVybiBvbGQuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKCQl9OwoJfQoKCWZuLnpvbmVOYW1lID0gYWJicldyYXAoZm4uem9uZU5hbWUpOwoJZm4uem9uZUFiYnIgPSBhYmJyV3JhcChmbi56b25lQWJicik7Cglmbi51dGMgICAgICA9IHJlc2V0Wm9uZVdyYXAoZm4udXRjKTsKCgkvLyBDbG9uaW5nIGEgbW9tZW50IHNob3VsZCBpbmNsdWRlIHRoZSBfeiBwcm9wZXJ0eS4KCXZhciBtb21lbnRQcm9wZXJ0aWVzID0gbW9tZW50Lm1vbWVudFByb3BlcnRpZXM7CglpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG1vbWVudFByb3BlcnRpZXMpID09PSAnW29iamVjdCBBcnJheV0nKSB7CgkJLy8gbW9tZW50IDIuOC4xKwoJCW1vbWVudFByb3BlcnRpZXMucHVzaCgnX3onKTsKCQltb21lbnRQcm9wZXJ0aWVzLnB1c2goJ19hJyk7Cgl9IGVsc2UgaWYgKG1vbWVudFByb3BlcnRpZXMpIHsKCQkvLyBtb21lbnQgMi43LjAKCQltb21lbnRQcm9wZXJ0aWVzLl96ID0gbnVsbDsKCX0KCglsb2FkRGF0YSh7CgkJInZlcnNpb24iOiAiMjAxNGoiLAoJCSJ6b25lcyI6IFsKCQkJIkFmcmljYS9BYmlkamFufExNVCBHTVR8Zy44IDB8MDF8LTJsZFhILlEiLAoJCQkiQWZyaWNhL0FjY3JhfExNVCBHTVQgR0hTVHwuUSAwIC1rfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMjZCYlguOCA2dHpYLjggTW5FIDFCQWsgTW5FIDFCQWsgTW5FIDFCQWsgTW5FIDFDMGsgTW5FIDFCQWsgTW5FIDFCQWsgTW5FIDFCQWsgTW5FIDFDMGsgTW5FIDFCQWsgTW5FIDFCQWsgTW5FIDFCQWsgTW5FIDFDMGsgTW5FIDFCQWsgTW5FIDFCQWsgTW5FIDFCQWsgTW5FIDFDMGsgTW5FIDFCQWsgTW5FIDFCQWsgTW5FIDFCQWsgTW5FIDFDMGsgTW5FIDFCQWsgTW5FIDFCQWsgTW5FIiwKCQkJIkFmcmljYS9BZGRpc19BYmFiYXxMTVQgRUFUIEJFQVQgQkVBVVR8LTJyLmcgLTMwIC0ydSAtMkp8MDEyMzF8LTFGM0NyLmcgM0R6ci5nIG9rTXUgTUZYSiIsCgkJCSJBZnJpY2EvQWxnaWVyc3xQTVQgV0VUIFdFU1QgQ0VUIENFU1R8LTkubCAwIC0xMCAtMTAgLTIwfDAxMjEyMTIxMjEyMTIxMjEzNDM0MzEzMTIxMjM0MzEyMTN8LTJuY285LmwgY05iOS5sIEhBMCAxOUEwIDFpTTAgMTFjMCAxb28wIFdvMCAxcmMwIFFNMCAxRU0wIFVNMCBEQTAgSW1vMCByZDAgRGUwIDlYejAgMWZiMCAxYXAwIDE2SzAgMnlvMCBtRXAwIGh3TDAganhBMCAxMUEwIGREZDAgMTdiMCAxMUIwIDFjTjAgMkR5MCAxY04wIDFmQjAgMWNMMCIsCgkJCSJBZnJpY2EvQmFuZ3VpfExNVCBXQVR8LWQuQSAtMTB8MDF8LTIyeTBkLkEiLAoJCQkiQWZyaWNhL0Jpc3NhdXxMTVQgV0FUIEdNVHwxMi5rIDEwIDB8MDEyfC0ybGRXVi5FIDJ4b25WLkUiLAoJCQkiQWZyaWNhL0JsYW50eXJlfExNVCBDQVR8LTJhLmsgLTIwfDAxfC0yR0plYS5rIiwKCQkJIkFmcmljYS9DYWlyb3xFRVQgRUVTVHwtMjAgLTMwfDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMWJJTzAgdmIwIDFpcDAgMTF6MCAxaU4wIDFuejAgMTJwMCAxcHowIDEwTjAgMXB6MCAxNnAwIDFqejAgczNkMCBWejAgMW9OMCAxMWIwIDFvTzAgMTBOMCAxcHowIDEwTjAgMXBiMCAxME4wIDFwYjAgMTBOMCAxcGIwIDEwTjAgMXB6MCAxME4wIDFwYjAgMTBOMCAxcGIwIDExZDAgMW9MMCAxMWQwIDFwYjAgMTFkMCAxb0wwIDExZDAgMW9MMCAxMWQwIDFvTDAgMTFkMCAxcGIwIDExZDAgMW9MMCAxMWQwIDFvTDAgMTFkMCAxb0wwIDExZDAgMXBiMCAxMWQwIDFvTDAgMTFkMCAxb0wwIDExZDAgMW9MMCAxMWQwIDFwYjAgMTFkMCAxb0wwIDExZDAgMVdMMCByZDAgMVJ6MCB3cDAgMXBiMCAxMWQwIDFvTDAgMTFkMCAxb0wwIDExZDAgMW9MMCAxMWQwIDFwYjAgMTFkMCAxcUwwIFhkMCAxb0wwIDExZDAgMW9MMCAxMWQwIDFwYjAgMTFkMCAxb0wwIDExZDAgMW9MMCAxMWQwIDFueTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCBXTDAgMXFOMCBSYjAgMXdwMCBPbjAgMXpkMCBMejAgMUVOMCBGYjAgYzEwIDhuMCA4TmQwIGdMMCBlMTAgbW4wIDFvMTAganowIGdOMCBwYjAgMXFOMCBkWDAgZTEwIHh6MCAxbzEwIGJiMCBlMTAgQW4wIDFvMTAgNXowIGUxMCBGWDAgMW8xMCAyTDAgZTEwIElMMCAxQzEwIEx6MCAxd3AwIFRYMCAxcU4wIFdMMCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCIsCgkJCSJBZnJpY2EvQ2FzYWJsYW5jYXxMTVQgV0VUIFdFU1QgQ0VUfHUuayAwIC0xMCAtMTB8MDEyMTIxMjEyMTIxMjEyMTIxMzEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0yZ01udC5FIDEzMEx0LkUgcmIwIERkMCBkVmIwIGI2cDAgVFgwIEVvQjAgTEwwIGduZDAgcnowIDQzZDAgQUwwIDFOZDAgWFgwIDFDcDAgcHowIGRFcDAgNG1uMCBTeU4wIEFMMCAxTmQwIHduMCAxRkIwIERiMCAxemQwIEx6MCAxTmYwIHdNMCBjbzAgZ28wIDFvMDAgczAwIGRBMCB2YzAgMTFBMCBBMDAgZTAwIHkwMCAxMUEwIHVvMCBlMDAgREEwIDExQTAgckEwIGUwMCBKYzAgV00wIG0wMCBnTTAgTTAwIFdNMCBqYzAgZTAwIFJBMCAxMUEwIGRBMCBlMDAgVW8wIDExQTAgODAwIGdNMCBYYzAgMTFBMCA1YzAgZTAwIDE3QTAgV00wIDJvMCBlMDAgMWFvMCAxOUEwIDFnMDAgMTZNMCAxaU0wIDE0MDAgMWxBMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcW8wIDEyMDAgMWtNMCAxNE0wIDFpMDAiLAoJCQkiQWZyaWNhL0NldXRhfFdFVCBXRVNUIENFVCBDRVNUfDAgLTEwIC0xMCAtMjB8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyfC0yNUtOMCAxMXowIGRyZDAgMThvMCAzSTAwIDE3YzAgMWZBMCAxYTAwIDFpbzAgMWEwMCAxeTdwMCBMTDAgZ25kMCByejAgNDNkMCBBTDAgMU5kMCBYWDAgMUNwMCBwejAgZEVwMCA0VkIwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIsCgkJCSJBZnJpY2EvRWxfQWFpdW58TE1UIFdBVCBXRVQgV0VTVHxRLk0gMTAgMCAtMTB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMnwtMXJEejcuYyAxR1ZBNy5jIDZMMCBBTDAgMU5kMCBYWDAgMUNwMCBwejAgMWNCQjAgQUwwIDFOZDAgd24wIDFGQjAgRGIwIDF6ZDAgTHowIDFOZjAgd00wIGNvMCBnbzAgMW8wMCBzMDAgZEEwIHZjMCAxMUEwIEEwMCBlMDAgeTAwIDExQTAgdW8wIGUwMCBEQTAgMTFBMCByQTAgZTAwIEpjMCBXTTAgbTAwIGdNMCBNMDAgV00wIGpjMCBlMDAgUkEwIDExQTAgZEEwIGUwMCBVbzAgMTFBMCA4MDAgZ00wIFhjMCAxMUEwIDVjMCBlMDAgMTdBMCBXTTAgMm8wIGUwMCAxYW8wIDE5QTAgMWcwMCAxNk0wIDFpTTAgMTQwMCAxbEEwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxbzAgMTIwMCAxa00wIDE0TTAgMWkwMCIsCgkJCSJBZnJpY2EvSm9oYW5uZXNidXJnfFNBU1QgU0FTVCBTQVNUfC0xdSAtMjAgLTMwfDAxMjEyMXwtMkdKZHUgMUFqZHUgMWNMMCAxY04wIDFjTDAiLAoJCQkiQWZyaWNhL0p1YmF8TE1UIENBVCBDQVNUIEVBVHwtMmEuOCAtMjAgLTMwIC0zMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxM3wtMXlXMmEuOCAxekswYS44IDE2TDAgMWlOMCAxN2IwIDFqZDAgMTdiMCAxaXAwIDE3ejAgMWkxMCAxN1gwIDFoQjAgMThuMCAxaGQwIDE5YjAgMWdwMCAxOXowIDFpTjAgMTdiMCAxaXAwIDE3ejAgMWkxMCAxOG4wIDFoZDAgMThMMCAxZ04wIDE5YjAgMWdwMCAxOXowIDFpTjAgMTd6MCAxaTEwIDE3WDAgeUdkMCIsCgkJCSJBZnJpY2EvTW9ucm92aWF8TU1UIExSVCBHTVR8SC44IEkudSAwfDAxMnwtMjNMemcuUSAyOXMwMS5tIiwKCQkJIkFmcmljYS9OZGphbWVuYXxMTVQgV0FUIFdBU1R8LTEwLmMgLTEwIC0yMHwwMTIxfC0ybGUxMC5jIDJKM2MwLmMgV24wIiwKCQkJIkFmcmljYS9Ucmlwb2xpfExNVCBDRVQgQ0VTVCBFRVR8LVEuSSAtMTAgLTIwIC0yMHwwMTIxMjEyMTMxMjEyMTIxMjEyMTIxMjEyMTMxMjMxMjN8LTIxSmNRLkkgMWhuQlEuSSB2eDAgNGlQMCB4eDAgNGVOMCBCYjAgN2lwMCBVMG4wIEExMCAxZGIwIDFjTjAgMWRiMCAxZGQwIDFkYjAgMWVOMCAxYmIwIDFlMTAgMWNMMCAxYzEwIDFkYjAgMWRkMCAxZGIwIDFjTjAgMWRiMCAxcTEwIGZBbjAgMWVwMCAxZGIwIEFLcTAgVEEwIDFvMDAiLAoJCQkiQWZyaWNhL1R1bmlzfFBNVCBDRVQgQ0VTVHwtOS5sIC0xMCAtMjB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMm5jbzkubCAxOHBhOS5sIDFxTTAgREEwIDNUYzAgMTFCMCAxemUwIFdNMCA3ejAgM2QwIDE0TDAgMWNOMCAxZjkwIDFhcjAgMTZKMCAxZ1hCMCBXTTAgMXJBMCAxMWMwIG53bzAgS28wIDFjTTAgMWNNMCAxckEwIDEwTTAgenVNMCAxME4wIDFhTjAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAiLAoJCQkiQWZyaWNhL1dpbmRob2VrfFNXQVQgU0FTVCBTQVNUIENBVCBXQVQgV0FTVHwtMXUgLTIwIC0zMCAtMjAgLTEwIC0yMHwwMTIxMzQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDV8LTJHSmR1IDFBamR1IDFjTDAgMVNxTDAgOU5BMCAxMUQwIDFuWDAgMTFCMCAxcUwwIFdOMCAxcUwwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFxTDAgV04wIDFxTDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMXFMMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxcUwwIFdOMCAxcUwwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFxTDAgV04wIDFxTDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxcUwwIFdOMCAxcUwwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFxTDAgV04wIDFxTDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMXFMMCAxMUIwIDFuWDAgMTFCMCIsCgkJCSJBbWVyaWNhL0FkYWt8TlNUIE5XVCBOUFQgQlNUIEJEVCBBSFNUIEhBU1QgSEFEVHxiMCBhMCBhMCBiMCBhMCBhMCBhMCA5MHwwMTIwMzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0NTY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzZ8LTE3U1gwIDh3VzAgaUIwIFFsYjAgNTJPMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCBzMTAgMVZ6MCBMQjAgMUJYMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIGNtMCAxMHEwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIiwKCQkJIkFtZXJpY2EvQW5jaG9yYWdlfENBVCBDQVdUIENBUFQgQUhTVCBBSERUIFlTVCBBS1NUIEFLRFR8YTAgOTAgOTAgYTAgOTAgOTAgOTAgODB8MDEyMDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDU2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2fC0xN1QwMCA4d1gwIGlBMCBRbGIwIDUyTzAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgczEwIDFWejAgTEIwIDFCWDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCBjbTAgMTBxMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL0FuZ3VpbGxhfExNVCBBU1R8NDYuNCA0MHwwMXwtMmtOdlIuVSIsCgkJCSJBbWVyaWNhL0FudGlndWF8TE1UIEVTVCBBU1R8NDcuYyA1MCA0MHwwMTJ8LTJrTnZRLk0gMXl4QVEuTSIsCgkJCSJBbWVyaWNhL0FyYWd1YWluYXxMTVQgQlJUIEJSU1R8M2MuTSAzMCAyMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0yZ2x3TC5jIEhkS0wuYyAxY2MwIDFlMTAgMWJYMCBFemQwIFNvMCAxdkEwIE1uMCAxQkIwIE1MMCAxQkIwIHpYMCBxZTEwIHhiMCAyZXAwIG56MCAxQzEwIHpYMCAxQzEwIExYMCAxQzEwIE1uMCBIMjEwIFJiMCAxdEIwIElMMCAxRmQwIEZYMCAxRU4wIEZYMCAxSEIwIEx6MCBkTU4wIEx6MCAxemQwIFJiMCAxd04wIFduMCAxdEIwIFJiMCAxdEIwIFdMMCAxdEIwIFJiMCAxemQwIE9uMCAxSEIwIEZYMCBueTEwIEx6MCIsCgkJCSJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXN8Q01UIEFSVCBBUlNUIEFSVCBBUlNUfDRnLk0gNDAgMzAgMzAgMjB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMzQzNDM0MzQzNDM0MzIzNDM0M3wtMjBVSEguYyBwS25ILmMgTW4wIDFpTjAgVGIwIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTW4wIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTW4wIE1OMCAyanowIE1OMCA0bFgwIHUxMCA1TGIwIDFwQjAgRm56MCB1MTAgdUwwIDF2ZDAgU0wwIDF2ZDAgU0wwIDF2ZDAgMTd6MCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgYXNuMCBEYjAgenZkMCBCejAgMXRCMCBUWDAgMXdwMCBSYjAgMXdwMCBSYjAgMXdwMCBUWDAgZzBwMCAxME0wIGozYzAgdUwwIDFxTjAgV0wwIiwKCQkJIkFtZXJpY2EvQXJnZW50aW5hL0NhdGFtYXJjYXxDTVQgQVJUIEFSU1QgQVJUIEFSU1QgV0FSVHw0Zy5NIDQwIDMwIDMwIDIwIDQwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTM0MzQzNDM0NTQzNDMyMzUzNDN8LTIwVUhILmMgcEtuSC5jIE1uMCAxaU4wIFRiMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIE1uMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIE1uMCBNTjAgMmp6MCBNTjAgNGxYMCB1MTAgNUxiMCAxcEIwIEZuejAgdTEwIHVMMCAxdmQwIFNMMCAxdmQwIFNMMCAxdmQwIDE3ejAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIGFzbjAgRGIwIHp2ZDAgQnowIDF0QjAgVFgwIDF3cDAgUmIwIDF3cTAgUmEwIDF3cDAgVFgwIGcwcDAgMTBNMCBha28wIDdCMCA4emIwIHVMMCIsCgkJCSJBbWVyaWNhL0FyZ2VudGluYS9Db3Jkb2JhfENNVCBBUlQgQVJTVCBBUlQgQVJTVCBXQVJUfDRnLk0gNDAgMzAgMzAgMjAgNDB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMzQzNDM0MzQ1NDM0MzIzNDM0M3wtMjBVSEguYyBwS25ILmMgTW4wIDFpTjAgVGIwIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTW4wIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTW4wIE1OMCAyanowIE1OMCA0bFgwIHUxMCA1TGIwIDFwQjAgRm56MCB1MTAgdUwwIDF2ZDAgU0wwIDF2ZDAgU0wwIDF2ZDAgMTd6MCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgYXNuMCBEYjAgenZkMCBCejAgMXRCMCBUWDAgMXdwMCBSYjAgMXdxMCBSYTAgMXdwMCBUWDAgZzBwMCAxME0wIGozYzAgdUwwIDFxTjAgV0wwIiwKCQkJIkFtZXJpY2EvQXJnZW50aW5hL0p1anV5fENNVCBBUlQgQVJTVCBBUlQgQVJTVCBXQVJUIFdBUlNUfDRnLk0gNDAgMzAgMzAgMjAgNDAgMzB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMzQzNDM0NTY1NDM0MzIzNDN8LTIwVUhILmMgcEtuSC5jIE1uMCAxaU4wIFRiMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIE1uMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIE1uMCBNTjAgMmp6MCBNTjAgNGxYMCB1MTAgNUxiMCAxcEIwIEZuejAgdTEwIHVMMCAxdmQwIFNMMCAxdmQwIFNMMCAxdmQwIDE3ejAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIGFzbjAgRGIwIHp2ZDAgQnowIDF0QjAgVFgwIDF6ZTAgVFgwIDFsZDAgV0swIDF3cDAgVFgwIGcwcDAgMTBNMCBqM2MwIHVMMCIsCgkJCSJBbWVyaWNhL0FyZ2VudGluYS9MYV9SaW9qYXxDTVQgQVJUIEFSU1QgQVJUIEFSU1QgV0FSVHw0Zy5NIDQwIDMwIDMwIDIwIDQwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTM0MzQzNDM0NTM0MzQzMjM1MzQzfC0yMFVISC5jIHBLbkguYyBNbjAgMWlOMCBUYjAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBNbjAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBNbjAgTU4wIDJqejAgTU4wIDRsWDAgdTEwIDVMYjAgMXBCMCBGbnowIHUxMCB1TDAgMXZkMCBTTDAgMXZkMCBTTDAgMXZkMCAxN3owIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCBhc24wIERiMCB6dmQwIEJ6MCAxdEIwIFRYMCAxd3AwIFFuMCBxTzAgMTZuMCBSYjAgMXdwMCBUWDAgZzBwMCAxME0wIGFrbzAgN0IwIDh6YjAgdUwwIiwKCQkJIkFtZXJpY2EvQXJnZW50aW5hL01lbmRvemF8Q01UIEFSVCBBUlNUIEFSVCBBUlNUIFdBUlQgV0FSU1R8NGcuTSA0MCAzMCAzMCAyMCA0MCAzMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEzNDM0MzQ1NjU2NTQzMjM1MzQzfC0yMFVISC5jIHBLbkguYyBNbjAgMWlOMCBUYjAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBNbjAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBNbjAgTU4wIDJqejAgTU4wIDRsWDAgdTEwIDVMYjAgMXBCMCBGbnowIHUxMCB1TDAgMXZkMCBTTDAgMXZkMCBTTDAgMXZkMCAxN3owIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCBhc24wIERiMCB6dmQwIEJ6MCAxdEIwIFRYMCAxdTIwIFNMMCAxdmQwIFRiMCAxd3AwIFRXMCBnMHAwIDEwTTAgYWdNMCBPcDAgN1RYMCB1TDAiLAoJCQkiQW1lcmljYS9BcmdlbnRpbmEvUmlvX0dhbGxlZ29zfENNVCBBUlQgQVJTVCBBUlQgQVJTVCBXQVJUfDRnLk0gNDAgMzAgMzAgMjAgNDB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMzQzNDM0MzQzNDM0MzIzNTM0M3wtMjBVSEguYyBwS25ILmMgTW4wIDFpTjAgVGIwIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTW4wIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTW4wIE1OMCAyanowIE1OMCA0bFgwIHUxMCA1TGIwIDFwQjAgRm56MCB1MTAgdUwwIDF2ZDAgU0wwIDF2ZDAgU0wwIDF2ZDAgMTd6MCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgYXNuMCBEYjAgenZkMCBCejAgMXRCMCBUWDAgMXdwMCBSYjAgMXdwMCBSYjAgMXdwMCBUWDAgZzBwMCAxME0wIGFrbzAgN0IwIDh6YjAgdUwwIiwKCQkJIkFtZXJpY2EvQXJnZW50aW5hL1NhbHRhfENNVCBBUlQgQVJTVCBBUlQgQVJTVCBXQVJUfDRnLk0gNDAgMzAgMzAgMjAgNDB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMzQzNDM0MzQ1NDM0MzIzNDN8LTIwVUhILmMgcEtuSC5jIE1uMCAxaU4wIFRiMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIE1uMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIE1uMCBNTjAgMmp6MCBNTjAgNGxYMCB1MTAgNUxiMCAxcEIwIEZuejAgdTEwIHVMMCAxdmQwIFNMMCAxdmQwIFNMMCAxdmQwIDE3ejAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIGFzbjAgRGIwIHp2ZDAgQnowIDF0QjAgVFgwIDF3cDAgUmIwIDF3cTAgUmEwIDF3cDAgVFgwIGcwcDAgMTBNMCBqM2MwIHVMMCIsCgkJCSJBbWVyaWNhL0FyZ2VudGluYS9TYW5fSnVhbnxDTVQgQVJUIEFSU1QgQVJUIEFSU1QgV0FSVHw0Zy5NIDQwIDMwIDMwIDIwIDQwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTM0MzQzNDM0NTM0MzQzMjM1MzQzfC0yMFVISC5jIHBLbkguYyBNbjAgMWlOMCBUYjAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBNbjAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBNbjAgTU4wIDJqejAgTU4wIDRsWDAgdTEwIDVMYjAgMXBCMCBGbnowIHUxMCB1TDAgMXZkMCBTTDAgMXZkMCBTTDAgMXZkMCAxN3owIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCBhc24wIERiMCB6dmQwIEJ6MCAxdEIwIFRYMCAxd3AwIFFuMCBxTzAgMTZuMCBSYjAgMXdwMCBUWDAgZzBwMCAxME0wIGFrMDAgbTEwIDhsYjAgdUwwIiwKCQkJIkFtZXJpY2EvQXJnZW50aW5hL1Nhbl9MdWlzfENNVCBBUlQgQVJTVCBBUlQgQVJTVCBXQVJUIFdBUlNUfDRnLk0gNDAgMzAgMzAgMjAgNDAgMzB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMzQzNDM0NTY1MzYzNTM0NjU2NTN8LTIwVUhILmMgcEtuSC5jIE1uMCAxaU4wIFRiMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIE1uMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIE1uMCBNTjAgMmp6MCBNTjAgNGxYMCB1MTAgNUxiMCAxcEIwIEZuejAgdTEwIHVMMCAxdmQwIFNMMCAxdmQwIFNMMCAxdmQwIDE3ejAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIGFzbjAgRGIwIHp2ZDAgQnowIDF0QjAgWFgwIDFxMjAgU0wwIEFOMCBraW4wIDEwTTAgYWswMCBtMTAgOGxiMCA4TDAgamQwIDFxTjAgV0wwIDFxTjAiLAoJCQkiQW1lcmljYS9BcmdlbnRpbmEvVHVjdW1hbnxDTVQgQVJUIEFSU1QgQVJUIEFSU1QgV0FSVHw0Zy5NIDQwIDMwIDMwIDIwIDQwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTM0MzQzNDM0NTQzNDMyMzUzNDM0M3wtMjBVSEguYyBwS25ILmMgTW4wIDFpTjAgVGIwIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTW4wIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTW4wIE1OMCAyanowIE1OMCA0bFgwIHUxMCA1TGIwIDFwQjAgRm56MCB1MTAgdUwwIDF2ZDAgU0wwIDF2ZDAgU0wwIDF2ZDAgMTd6MCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgYXNuMCBEYjAgenZkMCBCejAgMXRCMCBUWDAgMXdwMCBSYjAgMXdxMCBSYTAgMXdwMCBUWDAgZzBwMCAxME0wIGFrbzAgNE4wIDhCWDAgdUwwIDFxTjAgV0wwIiwKCQkJIkFtZXJpY2EvQXJnZW50aW5hL1VzaHVhaWF8Q01UIEFSVCBBUlNUIEFSVCBBUlNUIFdBUlR8NGcuTSA0MCAzMCAzMCAyMCA0MHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEzNDM0MzQzNDM0MzQzMjM1MzQzfC0yMFVISC5jIHBLbkguYyBNbjAgMWlOMCBUYjAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBNbjAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBNbjAgTU4wIDJqejAgTU4wIDRsWDAgdTEwIDVMYjAgMXBCMCBGbnowIHUxMCB1TDAgMXZkMCBTTDAgMXZkMCBTTDAgMXZkMCAxN3owIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCBhc24wIERiMCB6dmQwIEJ6MCAxdEIwIFRYMCAxd3AwIFJiMCAxd3AwIFJiMCAxd3AwIFRYMCBnMHAwIDEwTTAgYWpBMCA4cDAgOHpiMCB1TDAiLAoJCQkiQW1lcmljYS9BcnViYXxMTVQgQU5UIEFTVHw0ei5MIDR1IDQwfDAxMnwtMmtWN28uZCAyOEtMUy5kIiwKCQkJIkFtZXJpY2EvQXN1bmNpb258QU1UIFBZVCBQWVQgUFlTVHwzTy5FIDQwIDMwIDMwfDAxMjEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxM3wtMXg1ODkuayAxREtNOS5rIDNDTDAgM0RkMCAxMEwwIDFwQjAgMTBuMCAxcEIwIDEwbjAgMXBCMCAxY0wwIDFkZDAgMWRiMCAxZGQwIDFjTDAgMWRkMCAxY0wwIDFkZDAgMWNMMCAxZGQwIDFkYjAgMWRkMCAxY0wwIDFkZDAgMWNMMCAxZGQwIDFjTDAgMWRkMCAxZGIwIDFkZDAgMWNMMCAxbEIwIDE0bjAgMWRkMCAxY0wwIDFmZDAgV0wwIDFyZDAgMWFMMCAxZEIwIFh6MCAxcXAwIFhiMCAxcU4wIDEwTDAgMXJCMCBUWDAgMXRCMCBXTDAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCAxY0wwIFdOMCAxcUwwIDExQjAgMW5YMCAxaXAwIFdMMCAxcU4wIFdMMCAxcU4wIFdMMCAxdEIwIFRYMCAxdEIwIFRYMCAxdEIwIDE5WDAgMWExMCAxZnowIDFhMTAgMWZ6MCAxY04wIDE3YjAgMWlwMCAxN2IwIDFpcDAgMTdiMCAxaXAwIDE5WDAgMWZCMCAxOVgwIDFmQjAgMTlYMCAxaXAwIDE3YjAgMWlwMCAxN2IwIDFpcDAgMTlYMCAxZkIwIDE5WDAgMWZCMCAxOVgwIDFmQjAgMTlYMCAxaXAwIDE3YjAgMWlwMCAxN2IwIDFpcDAgMTlYMCAxZkIwIDE5WDAgMWZCMCAxOVgwIDFpcDAgMTdiMCAxaXAwIDE3YjAgMWlwMCAxOVgwIDFmQjAgMTlYMCAxZkIwIDE5WDAgMWZCMCAxOVgwIDFpcDAgMTdiMCAxaXAwIDE3YjAgMWlwMCIsCgkJCSJBbWVyaWNhL0F0aWtva2FufENTVCBDRFQgQ1dUIENQVCBFU1R8NjAgNTAgNTAgNTAgNTB8MDEwMTIzNHwtMjVUUTAgMWluMCBSbmIwIDNqZTAgOHgzMCBpdzAiLAoJCQkiQW1lcmljYS9CYWhpYXxMTVQgQlJUIEJSU1R8MnkuNCAzMCAyMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMmdseHAuVSBIZExwLlUgMWNjMCAxZTEwIDFiWDAgRXpkMCBTbzAgMXZBMCBNbjAgMUJCMCBNTDAgMUJCMCB6WDAgcWUxMCB4YjAgMmVwMCBuejAgMUMxMCB6WDAgMUMxMCBMWDAgMUMxMCBNbjAgSDIxMCBSYjAgMXRCMCBJTDAgMUZkMCBGWDAgMUVOMCBGWDAgMUhCMCBMejAgMUVOMCBMejAgMUMxMCBJTDAgMUhCMCBEYjAgMUhCMCBPbjAgMXpkMCBPbjAgMXpkMCBMejAgMXpkMCBSYjAgMXdOMCBXbjAgMXRCMCBSYjAgMXRCMCBXTDAgMXRCMCBSYjAgMXpkMCBPbjAgMUhCMCBGWDAgbDVCMCBSYjAiLAoJCQkiQW1lcmljYS9CYWhpYV9CYW5kZXJhc3xMTVQgTVNUIENTVCBQU1QgTURUIENEVHw3MSA3MCA2MCA4MCA2MCA1MHwwMTIxMjEyMTMxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyfC0xVVFGMCBkZUwwIDhsYzAgMTdjMCAxME0wIDFkZDAgb3RYMCBnbU4wIFAyTjAgMTNWZDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMWZCMCBXTDAgMWZCMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuVzAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAiLAoJCQkiQW1lcmljYS9CYXJiYWRvc3xMTVQgQk1UIEFTVCBBRFR8M1cudCAzVy50IDQwIDMwfDAxMjMyMzIzMjMyfC0xUTBJMS52IGpzTTAgMU9EQzEudiBJTDAgMWlwMCAxN2IwIDFpcDAgMTdiMCAxbGQwIDEzYjAiLAoJCQkiQW1lcmljYS9CZWxlbXxMTVQgQlJUIEJSU1R8M2QuVSAzMCAyMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTJnbHdLLjQgSGRLSy40IDFjYzAgMWUxMCAxYlgwIEV6ZDAgU28wIDF2QTAgTW4wIDFCQjAgTUwwIDFCQjAgelgwIHFlMTAgeGIwIDJlcDAgbnowIDFDMTAgelgwIDFDMTAgTFgwIDFDMTAgTW4wIEgyMTAgUmIwIDF0QjAgSUwwIDFGZDAgRlgwIiwKCQkJIkFtZXJpY2EvQmVsaXplfExNVCBDU1QgQ0hEVCBDRFR8NVEuTSA2MCA1dSA1MHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMzEzMXwtMmtCdTcuYyBmUEE3LmMgT251IDF6Y3UgUmJ1IDF3b3UgUmJ1IDF3b3UgUmJ1IDF6Y3UgT251IDF6Y3UgT251IDF6Y3UgUmJ1IDF3b3UgUmJ1IDF3b3UgUmJ1IDF3b3UgUmJ1IDF6Y3UgT251IDF6Y3UgT251IDF6Y3UgUmJ1IDF3b3UgUmJ1IDF3b3UgUmJ1IDF6Y3UgT251IDF6Y3UgT251IDF6Y3UgT251IDF6Y3UgUmJ1IDF3b3UgUmJ1IDF3b3UgUmJ1IDF6Y3UgT251IDF6Y3UgT251IDF6Y3UgUmJ1IDF3b3UgUmJ1IDFmME11IHFuMCBseEIwIG1uMCIsCgkJCSJBbWVyaWNhL0JsYW5jLVNhYmxvbnxBU1QgQURUIEFXVCBBUFR8NDAgMzAgMzAgMzB8MDEwMjMwfC0yNVRTMCAxaW4wIFVHcDAgOHg1MCBpdTAiLAoJCQkiQW1lcmljYS9Cb2FfVmlzdGF8TE1UIEFNVCBBTVNUfDQyLkUgNDAgMzB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMmdsdlYuayBIZEtWLmsgMWNjMCAxZTEwIDFiWDAgRXpkMCBTbzAgMXZBMCBNbjAgMUJCMCBNTDAgMUJCMCB6WDAgcWUxMCB4YjAgMmVwMCBuejAgMUMxMCB6WDAgMUMxMCBMWDAgMUMxMCBNbjAgSDIxMCBSYjAgMXRCMCBJTDAgMUZkMCBGWDAgc21wMCBXTDAgMXRCMCAyTDAiLAoJCQkiQW1lcmljYS9Cb2dvdGF8Qk1UIENPVCBDT1NUfDRVLmcgNTAgNDB8MDEyMXwtMmViNzMuSSAzOHlvMy5JIDJlbjAiLAoJCQkiQW1lcmljYS9Cb2lzZXxQU1QgUERUIE1TVCBNV1QgTVBUIE1EVHw4MCA3MCA3MCA2MCA2MCA2MHwwMTAxMDIzNDI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyfC0yNjFxMCAxblgwIDExQjAgMW5YMCA4QzEwIEpDTDAgOHgyMCBpeDAgUXdOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIERkMCAxS24wIExCMCAxQlgwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL0NhbWJyaWRnZV9CYXl8enp6IE1TVCBNV1QgTVBUIE1ERFQgTURUIENTVCBDRFQgRVNUfDAgNzAgNjAgNjAgNTAgNjAgNjAgNTAgNTB8MDEyMzE0MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTY3ODY1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MXwtMjFKYzAgUk85MCA4eDIwIGl4MCBMQ0wwIDFmQTAgemdPMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUEwIDFuWDAgMkswIFdRMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9DYW1wb19HcmFuZGV8TE1UIEFNVCBBTVNUfDNDLnMgNDAgMzB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyfC0yZ2x3bC53IEhkTGwudyAxY2MwIDFlMTAgMWJYMCBFemQwIFNvMCAxdkEwIE1uMCAxQkIwIE1MMCAxQkIwIHpYMCBxZTEwIHhiMCAyZXAwIG56MCAxQzEwIHpYMCAxQzEwIExYMCAxQzEwIE1uMCBIMjEwIFJiMCAxdEIwIElMMCAxRmQwIEZYMCAxRU4wIEZYMCAxSEIwIEx6MCAxRU4wIEx6MCAxQzEwIElMMCAxSEIwIERiMCAxSEIwIE9uMCAxemQwIE9uMCAxemQwIEx6MCAxemQwIFJiMCAxd04wIFduMCAxdEIwIFJiMCAxdEIwIFdMMCAxdEIwIFJiMCAxemQwIE9uMCAxSEIwIEZYMCAxQzEwIEx6MCAxSXAwIEhYMCAxemQwIE9uMCAxSEIwIElMMCAxd3AwIE9uMCAxQzEwIEx6MCAxQzEwIE9uMCAxemQwIE9uMCAxemQwIFJiMCAxemQwIEx6MCAxQzEwIEx6MCAxQzEwIE9uMCAxemQwIE9uMCAxemQwIE9uMCAxemQwIE9uMCAxQzEwIEx6MCAxQzEwIEx6MCAxQzEwIE9uMCAxemQwIE9uMCAxemQwIFJiMCAxd3AwIE9uMCAxQzEwIEx6MCAxQzEwIE9uMCAxemQwIE9uMCAxemQwIE9uMCAxemQwIE9uMCAxQzEwIEx6MCAxQzEwIEx6MCAxQzEwIEx6MCAxQzEwIE9uMCAxemQwIFJiMCAxd3AwIE9uMCAxQzEwIEx6MCAxQzEwIE9uMCAxemQwIiwKCQkJIkFtZXJpY2EvQ2FuY3VufExNVCBDU1QgRVNUIEVEVCBDRFR8NUwuNCA2MCA1MCA0MCA1MHwwMTIzMjMyMzQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxfC0xVVFHMCAycTJvMCB5TEIwIDFsYjAgMTRwMCAxbGIwIDE0cDAgTHowIHhCMCAxNHAwIDFuWDAgMTFCMCAxblgwIDFmQjAgV0wwIDFmQjAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIiwKCQkJIkFtZXJpY2EvQ2FyYWNhc3xDTVQgVkVUIFZFVHw0ci5FIDR1IDQwfDAxMjF8LTJrVjd3LmsgMjhLTTIuayAxSXdPdSIsCgkJCSJBbWVyaWNhL0NheWVubmV8TE1UIEdGVCBHRlR8M3QuayA0MCAzMHwwMTJ8LTJtcnd1LkUgMmdXb3UuRSIsCgkJCSJBbWVyaWNhL0NheW1hbnxLTVQgRVNUfDU3LmIgNTB8MDF8LTJsMXVRLk4iLAoJCQkiQW1lcmljYS9DaGljYWdvfENTVCBDRFQgRVNUIENXVCBDUFR8NjAgNTAgNTAgNTAgNTB8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDIwMTAxMDEwMTAxMDM0MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTB8LTI2MXMwIDFuWDAgMTFCMCAxblgwIDF3cDAgVFgwIFdOMCAxcUwwIDFjTjAgV0wwIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDExejAgMW8xMCAxMXowIDExQjAgMUh6MCAxNHAwIDExejAgMW8xMCAxMXowIDFxTjAgV0wwIDFxTjAgMTF6MCAxbzEwIDExejAgUkIwIDh4MzAgaXcwIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIHMxMCAxVnowIExCMCAxQlgwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL0NoaWh1YWh1YXxMTVQgTVNUIENTVCBDRFQgTURUfDc0LmsgNzAgNjAgNTAgNjB8MDEyMTIxMjMyMzI0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MXwtMVVRRjAgZGVMMCA4bGMwIDE3YzAgMTBNMCAxZGQwIDJ6UU4wIDFsYjAgMTRwMCAxbGIwIDE0cTAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDFmQjAgV0wwIDFmQjAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIiwKCQkJIkFtZXJpY2EvQ29zdGFfUmljYXxTSk1UIENTVCBDRFR8NUEuZCA2MCA1MHwwMTIxMjEyMTIxfC0xWGQ2bi5MIDJsdTBuLkwgRGIwIDFLcDAgRGIwIHBSQjAgMTViMCAxa3AwIG1MMCIsCgkJCSJBbWVyaWNhL0NyZXN0b258TVNUIFBTVHw3MCA4MHwwMTB8LTI5RFIwIDQzQjAiLAoJCQkiQW1lcmljYS9DdWlhYmF8TE1UIEFNVCBBTVNUfDNJLmsgNDAgMzB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMnwtMmdsd2YuRSBIZExmLkUgMWNjMCAxZTEwIDFiWDAgRXpkMCBTbzAgMXZBMCBNbjAgMUJCMCBNTDAgMUJCMCB6WDAgcWUxMCB4YjAgMmVwMCBuejAgMUMxMCB6WDAgMUMxMCBMWDAgMUMxMCBNbjAgSDIxMCBSYjAgMXRCMCBJTDAgMUZkMCBGWDAgMUVOMCBGWDAgMUhCMCBMejAgMUVOMCBMejAgMUMxMCBJTDAgMUhCMCBEYjAgMUhCMCBPbjAgMXpkMCBPbjAgMXpkMCBMejAgMXpkMCBSYjAgMXdOMCBXbjAgMXRCMCBSYjAgMXRCMCBXTDAgMXRCMCBSYjAgMXpkMCBPbjAgMUhCMCBGWDAgNGExMCBIWDAgMXpkMCBPbjAgMUhCMCBJTDAgMXdwMCBPbjAgMUMxMCBMejAgMUMxMCBPbjAgMXpkMCBPbjAgMXpkMCBSYjAgMXpkMCBMejAgMUMxMCBMejAgMUMxMCBPbjAgMXpkMCBPbjAgMXpkMCBPbjAgMXpkMCBPbjAgMUMxMCBMejAgMUMxMCBMejAgMUMxMCBPbjAgMXpkMCBPbjAgMXpkMCBSYjAgMXdwMCBPbjAgMUMxMCBMejAgMUMxMCBPbjAgMXpkMCBPbjAgMXpkMCBPbjAgMXpkMCBPbjAgMUMxMCBMejAgMUMxMCBMejAgMUMxMCBMejAgMUMxMCBPbjAgMXpkMCBSYjAgMXdwMCBPbjAgMUMxMCBMejAgMUMxMCBPbjAgMXpkMCIsCgkJCSJBbWVyaWNhL0Rhbm1hcmtzaGF2bnxMTVQgV0dUIFdHU1QgR01UfDFlLkUgMzAgMjAgMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxM3wtMmE1V0ouayAyejVmSi5rIDE5VTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgREMwIiwKCQkJIkFtZXJpY2EvRGF3c29ufFlTVCBZRFQgWVdUIFlQVCBZRERUIFBTVCBQRFR8OTAgODAgODAgODAgNzAgODAgNzB8MDEwMTAyMzA0MDU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NXwtMjVUTjAgMWluMCAxbzEwIDEzVjAgU2VyMCA4eDAwIGl6MCBMQ0wwIDFmQTAganJBMCBmTmQwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL0Rhd3Nvbl9DcmVla3xQU1QgUERUIFBXVCBQUFQgTVNUfDgwIDcwIDcwIDcwIDcwfDAxMDIzMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTR8LTI1VE8wIDFpbjAgVUdwMCA4eDEwIGl5MCAzTkIwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCBXTDAgMXFOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgTUwwIiwKCQkJIkFtZXJpY2EvRGVudmVyfE1TVCBNRFQgTVdUIE1QVHw3MCA2MCA2MCA2MHwwMTAxMDEwMTAyMzAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMjYxcjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxcUwwIFdOMCBtbjAgT3JkMCA4eDIwIGl4MCBMQ04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCBzMTAgMVZ6MCBMQjAgMUJYMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9EZXRyb2l0fExNVCBDU1QgRVNUIEVXVCBFUFQgRURUfDV3LmIgNjAgNTAgNDAgNDAgNDB8MDEyMzQyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTJ8LTJDZ2lyLk4gcGVxci5OIDE1NkwwIDh4NDAgaXYwIDZmZDAgMTF6MCBKeTEwIFNMMCBkbkIwIDFjTDAgczEwIDFWejAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL0VkbW9udG9ufExNVCBNU1QgTURUIE1XVCBNUFR8N3guUSA3MCA2MCA2MCA2MHwwMTIxMjEyMTIxMjEyMTM0MTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMnlkNHEuOCBzaGRxLjggMWluMCAxN2QwIGh6MCAyZEIwIDFmejAgMWExMCAxMXowIDFxTjAgV0wwIDFxTjAgMTF6MCBJR04wIDh4MjAgaXgwIDNOQjAgMTF6MCBMRkIwIDFjTDAgM0NwMCAxY0wwIDY2TjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9FaXJ1bmVwZXxMTVQgQUNUIEFDU1QgQU1UfDRELnMgNTAgNDAgNDB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEzMXwtMmdsdmsudyBIZExrLncgMWNjMCAxZTEwIDFiWDAgRXpkMCBTbzAgMXZBMCBNbjAgMUJCMCBNTDAgMUJCMCB6WDAgcWUxMCB4YjAgMmVwMCBuejAgMUMxMCB6WDAgMUMxMCBMWDAgMUMxMCBNbjAgSDIxMCBSYjAgMXRCMCBJTDAgMUZkMCBGWDAgZFBCMCBPbjAgeVRkMCBkNVgwIiwKCQkJIkFtZXJpY2EvRWxfU2FsdmFkb3J8TE1UIENTVCBDRFR8NVUuTSA2MCA1MHwwMTIxMjF8LTFYaUczLmMgMkZ2YzMuYyBXTDAgMXFOMCBXTDAiLAoJCQkiQW1lcmljYS9FbnNlbmFkYXxMTVQgTVNUIFBTVCBQRFQgUFdUIFBQVHw3TS40IDcwIDgwIDcwIDcwIDcwfDAxMjEyMzI0NTIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMnwtMVVRRTAgNFBYMCA4bU0wIDhsYzAgU04wIDFjTDAgcEhCMCA4M3IwIHpJMCA1TzEwIDFSejAgY09QMCAxMXowIDFvMTAgMTF6MCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIEJVcDAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCBVMTAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL0ZvcnRfV2F5bmV8Q1NUIENEVCBDV1QgQ1BUIEVTVCBFRFR8NjAgNTAgNTAgNTAgNTAgNDB8MDEwMTAxMDIzMDEwMTAxMDEwMTAxMDEwMTAxMDQwNDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0fC0yNjFzMCAxblgwIDExQjAgMW5YMCBRSTEwIERiMCBSQjAgOHgzMCBpdzAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgV0wwIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDVUejAgMW8xMCBxTGIwIDFjTDAgMWNOMCAxY0wwIDFxaGQwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9Gb3J0YWxlemF8TE1UIEJSVCBCUlNUfDJ5IDMwIDIwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTJnbHhxIEhkTHEgMWNjMCAxZTEwIDFiWDAgRXpkMCBTbzAgMXZBMCBNbjAgMUJCMCBNTDAgMUJCMCB6WDAgcWUxMCB4YjAgMmVwMCBuejAgMUMxMCB6WDAgMUMxMCBMWDAgMUMxMCBNbjAgSDIxMCBSYjAgMXRCMCBJTDAgMUZkMCBGWDAgMUVOMCBGWDAgMUhCMCBMejAgbnNwMCBXTDAgMXRCMCA1ejAgMm1OMCBPbjAiLAoJCQkiQW1lcmljYS9HbGFjZV9CYXl8TE1UIEFTVCBBRFQgQVdUIEFQVHwzWC5NIDQwIDMwIDMwIDMwfDAxMjEzNDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMklzSTAuYyBDd08wLmMgMWluMCBVR3AwIDh4NTAgaXUwIGlxMTAgMTF6MCBKZzEwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIiwKCQkJIkFtZXJpY2EvR29kdGhhYnxMTVQgV0dUIFdHU1R8M3EuVSAzMCAyMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0yYTVVeC40IDJ6NWR4LjQgMTlVMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIiwKCQkJIkFtZXJpY2EvR29vc2VfQmF5fE5TVCBORFQgTlNUIE5EVCBOV1QgTlBUIEFTVCBBRFQgQUREVHwzdS5RIDJ1LlEgM3UgMnUgMnUgMnUgNDAgMzAgMjB8MDEwMjMyMzIzMjMyMzIzMjQ1MjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzI2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY4Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2fC0yNVRTdC44IDFpbjAgRFhiMCAySGJYLjggV0wwIDFxTjAgV0wwIDFxTjAgV0wwIDF0QjAgVFgwIDF0QjAgV0wwIDFxTjAgV0wwIDFxTjAgN1VIdSBpdHUgMXRCMCBXTDAgMXFOMCBXTDAgMXFOMCBXTDAgMXFOMCBXTDAgMXRCMCBXTDAgMWxkMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgUzEwIGcwdSAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRuMSAxbGIwIDE0cDAgMW5XMCAxMUMwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpjWCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL0dyYW5kX1R1cmt8S01UIEVTVCBFRFQgQVNUfDU3LmIgNTAgNDAgNDB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyM3wtMmwxdVEuTiAySEhCUS5OIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9HdWF0ZW1hbGF8TE1UIENTVCBDRFR8NjIuNCA2MCA1MHwwMTIxMjEyMTIxfC0yNEtoVi5VIDJlZlhWLlUgQW4wIG10ZDAgTnowIGlmQjAgMTdiMCB6REIwIDExejAiLAoJCQkiQW1lcmljYS9HdWF5YXF1aWx8UU1UIEVDVHw1ZSA1MHwwMXwtMXlWU0siLAoJCQkiQW1lcmljYS9HdXlhbmF8TE1UIEdCR1QgR1lUIEdZVCBHWVR8M1EuRSAzSiAzSiAzMCA0MHwwMTIzNHwtMmR2VTcuayAyNEp6US5rIG1sYzAgQnhiZiIsCgkJCSJBbWVyaWNhL0hhbGlmYXh8TE1UIEFTVCBBRFQgQVdUIEFQVHw0ZS5vIDQwIDMwIDMwIDMwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMzQxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTJJc0hKLkEgeHp6Si5BIDFkYjAgM0kzMCAxaW4wIDNIWDAgSUwwIDFFMTAgTUwwIDF5TjAgUGIwIDFCZDAgTW4wIDFCZDAgUnowIDF3MTAgWGIwIDF3MTAgTFgwIDF3MTAgWGIwIDF3MTAgTHowIDFDMTAgSnowIDFFMTAgT0wwIDF5TjAgVW4wIDFxcDAgWGIwIDFxcDAgMTFYMCAxdzEwIEx6MCAxSEIwIExYMCAxQzEwIEZYMCAxdzEwIFhiMCAxcXAwIFhiMCAxQkIwIExYMCAxdGQwIFhiMCAxcXAwIFhiMCBSZjAgOHg1MCBpdTAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDNRcDAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAzUXAwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgNmkxMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9IYXZhbmF8SE1UIENTVCBDRFR8NXQuQSA1MCA0MHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTFNZXV1Lm8gNzJ6dS5vIE1MMCBzbGQwIEFuMCAxTmQwIERiMCAxTmQwIEFuMCA2RXAwIEFuMCAxTmQwIEFuMCBKRGQwIE1uMCAxQXAwIE9uMCAxZmQwIDExWDAgMXFOMCBXTDAgMXdwMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxNG4wIDFsZDAgMTRMMCAxa04wIDE1YjAgMWtwMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWZCMCAxMXowIDE0cDAgMW5YMCAxMUIwIDFuWDAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxNG4wIDFsZDAgMTRuMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMWExMCAxaW4wIDFhMTAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxN2MwIDFvMDAgMTFBMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTRvMCAxbGMwIDE0bzAgMWxjMCAxMUEwIDZpMDAgUmMwIDF3bzAgVTAwIDF0QTAgUmMwIDF3bzAgVTAwIDF3bzAgVTAwIDF6YzAgVTAwIDFxTTAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgUmMwIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgUmMwIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgUmMwIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgUmMwIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAiLAoJCQkiQW1lcmljYS9IZXJtb3NpbGxvfExNVCBNU1QgQ1NUIFBTVCBNRFR8N24uUSA3MCA2MCA4MCA2MHwwMTIxMjEyMTMxNDE0MTQxfC0xVVFGMCBkZUwwIDhsYzAgMTdjMCAxME0wIDFkZDAgb3RYMCBnbU4wIFAyTjAgMTNWZDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIiwKCQkJIkFtZXJpY2EvSW5kaWFuYS9Lbm94fENTVCBDRFQgQ1dUIENQVCBFU1R8NjAgNTAgNTAgNTAgNTB8MDEwMTAyMzAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTA0MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE0MTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMjYxczAgMW5YMCAxMUIwIDFuWDAgU2dOMCA4eDMwIGl3MCAzTkIwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxZnowIDFjTjAgMWNMMCAxY04wIDExejAgMW8xMCAxMXowIDFvMTAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgM0NuMCA4d3AwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgczEwIDFWejAgTEIwIDFCWDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIHo4bzAgMW8wMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL0luZGlhbmEvTWFyZW5nb3xDU1QgQ0RUIENXVCBDUFQgRVNUIEVEVHw2MCA1MCA1MCA1MCA1MCA0MHwwMTAxMDIzMDEwMTAxMDEwMTAxMDEwMTA0NTQ1NDU0NTQ1NDE0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0fC0yNjFzMCAxblgwIDExQjAgMW5YMCBTZ04wIDh4MzAgaXcwIGR5TjAgMTF6MCA2ZmQwIDExejAgMW8xMCAxMXowIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCBqcnowIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIHMxMCAxVkEwIExBMCAxQlgwIDFlNnAwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9JbmRpYW5hL1BldGVyc2J1cmd8Q1NUIENEVCBDV1QgQ1BUIEVTVCBFRFR8NjAgNTAgNTAgNTAgNTAgNDB8MDEwMTAyMzAxMDEwMTAxMDEwMTAxMDEwMTAxMDQwMTAxMDEwMTAxMDEwMTAxMDEwMTAxNDEwMTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTR8LTI2MXMwIDFuWDAgMTFCMCAxblgwIFNnTjAgOHgzMCBpdzAgbmpYMCBXTjAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAzRmIwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCBzMTAgMVZ6MCBMQjAgMUJYMCAxY04wIDFmejAgMWExMCAxZnowIDE5Y28wIDFvMDAgUmQwIDF6YjAgT28wIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9JbmRpYW5hL1RlbGxfQ2l0eXxDU1QgQ0RUIENXVCBDUFQgRVNUIEVEVHw2MCA1MCA1MCA1MCA1MCA0MHwwMTAxMDIzMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDQ1NDU0MTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMjYxczAgMW5YMCAxMUIwIDFuWDAgU2dOMCA4eDMwIGl3MCAxbzEwIDExejAgZzBwMCAxMXowIDFvMTAgMTF6MCAxcUwwIFdOMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxZnowIDFjTjAgV0wwIDFxTjAgMWNMMCAxY04wIDFjTDAgMWNOMCBjYUwwIDFjTDAgMWNOMCAxY0wwIDFxaGQwIDFvMDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9JbmRpYW5hL1ZldmF5fENTVCBDRFQgQ1dUIENQVCBFU1QgRURUfDYwIDUwIDUwIDUwIDUwIDQwfDAxMDEwMjMwNDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NHwtMjYxczAgMW5YMCAxMUIwIDFuWDAgU2dOMCA4eDMwIGl3MCBrUEIwIEF3bjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxbG5kMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIiwKCQkJIkFtZXJpY2EvSW5kaWFuYS9WaW5jZW5uZXN8Q1NUIENEVCBDV1QgQ1BUIEVTVCBFRFR8NjAgNTAgNTAgNTAgNTAgNDB8MDEwMTAyMzAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTA0NTQ1NDEwMTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTR8LTI2MXMwIDFuWDAgMTFCMCAxblgwIFNnTjAgOHgzMCBpdzAgMW8xMCAxMXowIGcwcDAgMTF6MCAxbzEwIDExejAgMXFMMCBXTjAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMWZ6MCAxY04wIFdMMCAxcU4wIDFjTDAgMWNOMCAxY0wwIDFjTjAgY2FMMCAxY0wwIDFjTjAgMWNMMCAxcWhkMCAxbzAwIFJkMCAxemIwIE9vMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIiwKCQkJIkFtZXJpY2EvSW5kaWFuYS9XaW5hbWFjfENTVCBDRFQgQ1dUIENQVCBFU1QgRURUfDYwIDUwIDUwIDUwIDUwIDQwfDAxMDEwMjMwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwNDU0NTQxMDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0fC0yNjFzMCAxblgwIDExQjAgMW5YMCBTZ04wIDh4MzAgaXcwIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxZnowIDFjTjAgMWNMMCAxY04wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCBqcnowIDFjTDAgMWNOMCAxY0wwIDFxaGQwIDFvMDAgUmQwIDF6YTAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9JbnV2aWt8enp6IFBTVCBQRERUIE1TVCBNRFR8MCA4MCA2MCA3MCA2MHwwMTIxMzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzfC1GbkEwIHRXVTAgMWZBMCB3UGUwIDJwejAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIiwKCQkJIkFtZXJpY2EvSXFhbHVpdHx6enogRVdUIEVQVCBFU1QgRUREVCBFRFQgQ1NUIENEVHwwIDQwIDQwIDUwIDMwIDQwIDYwIDUwfDAxMjM0MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTY3MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzfC0xNkswMCA3blgwIGl2MCBMQ0wwIDFmQTAgemdPMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUMwIDFuWDAgMTFBMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9KYW1haWNhfEtNVCBFU1QgRURUfDU3LmIgNTAgNDB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMmwxdVEuTiAydU0xUS5OIDFWejAgTEIwIDFCWDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCIsCgkJCSJBbWVyaWNhL0p1bmVhdXxQU1QgUFdUIFBQVCBQRFQgWURUIFlTVCBBS1NUIEFLRFR8ODAgNzAgNzAgNzAgODAgOTAgOTAgODB8MDEyMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzA0MDMwMzAzNTY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzZ8LTE3VDIwIDh4MTAgaXkwIFZvMTAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgczEwIDFWejAgTEIwIDFCWDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNNMCAxY00wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCBjbzAgMTBxMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL0tlbnR1Y2t5L0xvdWlzdmlsbGV8Q1NUIENEVCBDV1QgQ1BUIEVTVCBFRFR8NjAgNTAgNTAgNTAgNTAgNDB8MDEwMTAxMDEwMjMwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTQ1NDU0NTQ1NDU0NTQxNDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NHwtMjYxczAgMW5YMCAxMUIwIDFuWDAgM0ZkMCBOYjAgTFBkMCAxMXowIFJCMCA4eDMwIGl3MCBCYjAgMTBOMCAyYkIwIDhpbjAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgeHowIGdzbzAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIHMxMCAxVkEwIExBMCAxQlgwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL0tlbnR1Y2t5L01vbnRpY2VsbG98Q1NUIENEVCBDV1QgQ1BUIEVTVCBFRFR8NjAgNTAgNTAgNTAgNTAgNDB8MDEwMTAyMzAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NHwtMjYxczAgMW5YMCAxMUIwIDFuWDAgU2dOMCA4eDMwIGl3MCBTV3AwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCBzMTAgMVZ6MCBMQjAgMUJYMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFBMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9MYV9QYXp8Q01UIEJPU1QgQk9UfDR3LkEgM3cuQSA0MHwwMTJ8LTF4MzdyLm8gMTNiMCIsCgkJCSJBbWVyaWNhL0xpbWF8TE1UIFBFVCBQRVNUfDU4LkEgNTAgNDB8MDEyMTIxMjEyMTIxMjEyMXwtMnR5R1AubyAxYkR6UC5vIHpYMCAxYU4wIDFjTDAgMWNOMCAxY0wwIDFQckIwIHpYMCAxTzEwIHpYMCA2R3AwIHpYMCA5OHAwIHpYMCIsCgkJCSJBbWVyaWNhL0xvc19BbmdlbGVzfFBTVCBQRFQgUFdUIFBQVHw4MCA3MCA3MCA3MHwwMTAxMDIzMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTB8LTI2MXEwIDFuWDAgMTFCMCAxblgwIFNnTjAgOHgxMCBpeTAgNVdwMCAxVmIwIDNkQjAgV0wwIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCBzMTAgMVZ6MCBMQjAgMUJYMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9NYWNlaW98TE1UIEJSVCBCUlNUfDJtLlEgMzAgMjB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0yZ2x4Qi44IEhkTEIuOCAxY2MwIDFlMTAgMWJYMCBFemQwIFNvMCAxdkEwIE1uMCAxQkIwIE1MMCAxQkIwIHpYMCBxZTEwIHhiMCAyZXAwIG56MCAxQzEwIHpYMCAxQzEwIExYMCAxQzEwIE1uMCBIMjEwIFJiMCAxdEIwIElMMCAxRmQwIEZYMCAxRU4wIEZYMCAxSEIwIEx6MCBkTU4wIEx6MCA4UTEwIFdMMCAxdEIwIDV6MCAybU4wIE9uMCIsCgkJCSJBbWVyaWNhL01hbmFndWF8TU1UIENTVCBFU1QgQ0RUfDVKLmMgNjAgNTAgNTB8MDEyMTMxMzEyMTIxMzEzMXwtMXF1aWUuTSAxeUFNZS5NIDRtbjAgOVVwMCBEejAgMUsxMCBEejAgczNGMCAxS0gwIERCMCA5SW4wIGs4cDAgMTlYMCAxbzMwIDExeTAiLAoJCQkiQW1lcmljYS9NYW5hdXN8TE1UIEFNVCBBTVNUfDQwLjQgNDAgMzB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTJnbHZYLlUgSGRLWC5VIDFjYzAgMWUxMCAxYlgwIEV6ZDAgU28wIDF2QTAgTW4wIDFCQjAgTUwwIDFCQjAgelgwIHFlMTAgeGIwIDJlcDAgbnowIDFDMTAgelgwIDFDMTAgTFgwIDFDMTAgTW4wIEgyMTAgUmIwIDF0QjAgSUwwIDFGZDAgRlgwIGRQQjAgT24wIiwKCQkJIkFtZXJpY2EvTWFydGluaXF1ZXxGRk1UIEFTVCBBRFR8NDQuayA0MCAzMHwwMTIxfC0ybVBUVC5FIDJMUGJULkUgMTlYMCIsCgkJCSJBbWVyaWNhL01hdGFtb3Jvc3xMTVQgQ1NUIENEVHw2RSA2MCA1MHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0xVVFHMCAyRmpDMCAxblgwIGk2cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMWZCMCBXTDAgMWZCMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCBVMTAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL01hemF0bGFufExNVCBNU1QgQ1NUIFBTVCBNRFR8NzUuRSA3MCA2MCA4MCA2MHwwMTIxMjEyMTMxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxfC0xVVFGMCBkZUwwIDhsYzAgMTdjMCAxME0wIDFkZDAgb3RYMCBnbU4wIFAyTjAgMTNWZDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMWZCMCBXTDAgMWZCMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAiLAoJCQkiQW1lcmljYS9NZW5vbWluZWV8Q1NUIENEVCBDV1QgQ1BUIEVTVHw2MCA1MCA1MCA1MCA1MHwwMTAxMDIzMDEwMTA0MTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMjYxczAgMW5YMCAxMUIwIDFuWDAgU2dOMCA4eDMwIGl3MCAxbzEwIDExejAgTENOMCAxZnowIDY0MTAgOUpiMCAxY00wIHMxMCAxVnowIExCMCAxQlgwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL01lcmlkYXxMTVQgQ1NUIEVTVCBDRFR8NVcucyA2MCA1MCA1MHwwMTIxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxfC0xVVFHMCAycTJvMCAyaHowIHd1MzAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMWZCMCBXTDAgMWZCMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAiLAoJCQkiQW1lcmljYS9NZXRsYWthdGxhfFBTVCBQV1QgUFBUIFBEVHw4MCA3MCA3MCA3MHwwMTIwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwfC0xN1QyMCA4eDEwIGl5MCBWbzEwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIHMxMCAxVnowIExCMCAxQlgwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAiLAoJCQkiQW1lcmljYS9NZXhpY29fQ2l0eXxMTVQgTVNUIENTVCBDRFQgQ1dUfDZBLkEgNzAgNjAgNTAgNTB8MDEyMTIxMjMyMzI0MjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyfC0xVVFGMCBkZUwwIDhsYzAgMTdjMCAxME0wIDFkZDAgZ0VuMCBUWDAgM3hkMCBKYjAgNnpCMCBTTDAgZTVkMCAxN2IwIDFQZmYwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDFmQjAgV0wwIDFmQjAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIiwKCQkJIkFtZXJpY2EvTWlxdWVsb258TE1UIEFTVCBQTVNUIFBNRFR8M0kuRSA0MCAzMCAyMHwwMTIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzJ8LTJtS2tmLmsgMkxUQWYuayBnUTEwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIiwKCQkJIkFtZXJpY2EvTW9uY3RvbnxFU1QgQVNUIEFEVCBBV1QgQVBUfDUwIDQwIDMwIDMwIDMwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEzNDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMklzSDAgQ3dOMCAxaW4wIHpBbzAgQW4wIDFOZDAgQW4wIDFOZDAgQW4wIDFOZDAgQW4wIDFOZDAgQW4wIDFOZDAgQW4wIDFLMTAgTHowIDF6QjAgTlgwIDF1MTAgV24wIFMyMCA4eDUwIGl1MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCBXTDAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIDExejAgMW8xMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDNDcDAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNG4xIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIFJlWCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIiwKCQkJIkFtZXJpY2EvTW9udGVycmV5fExNVCBDU1QgQ0RUfDZGLmcgNjAgNTB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMVVRRzAgMkZqQzAgMW5YMCBpNnAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDFmQjAgV0wwIDFmQjAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIiwKCQkJIkFtZXJpY2EvTW9udGV2aWRlb3xNTVQgVVlUIFVZSFNUIFVZU1QgVVlUIFVZSFNUfDNJLkkgM3UgMzAgMjAgMzAgMnV8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEzNDM0MzQzNDM0MzQ1NDU0NTQzNDUzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzfC0yMFVJZi5nIDhqekouZyAxY0x1IDFkY3UgMWNMdSAxZGN1IDFjTHUgaXJjdSAxMXp1IDFvMHUgMTF6dSAxbzB1IDExenUgMXFNdSBXTHUgMXFNdSBXTHUgMXFNdSBXTHUgMXFNdSAxMXp1IDFvMHUgMTF6dSBOQXUgMTFidSAyaU11IHpXdSBEcTEwIDE5WDAgcGQwIGp6MCBjbTEwIDE5WDAgMWZCMCAxb24wIDExZDAgMW9MMCAxbkIwIDFmenUgMWFvdSAxZnp1IDFhb3UgMWZ6dSAzbkF1IEpiMCAzTU4wIDFTTHUgNGp6dSAyUEIwIExiMCAzRGQwIDFwYjAgaXhkMCBBbjAgMU1OMCBBbjAgMXdwMCBPbjAgMXdwMCBSYjAgMXpkMCBPbjAgMXdwMCBSYjAgczhwMCAxZkIwIDFpcDAgMTF6MCAxbGQwIDE0bjAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDE0bjAgMWxkMCAxNG4wIDFsZDAgMTRuMCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDE0bjAgMWxkMCAxNG4wIDFsZDAgMTRuMCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTRuMCAxbGQwIDE0bjAgMWxkMCAxNG4wIDFsZDAgMTRuMCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTRuMCAxbGQwIDE0bjAgMWxkMCAxNG4wIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxNG4wIDFsZDAgMTRuMCAxbGQwIDE0bjAgMWxkMCAxNG4wIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCIsCgkJCSJBbWVyaWNhL01vbnRyZWFsfEVTVCBFRFQgRVdUIEVQVHw1MCA0MCA0MCA0MHwwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMjMwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMjh0UjAgYlYwIDJtMzAgMWluMCAxMjF1IDFuYjAgMWcxMCAxMXowIDFvMHUgMTF6dSAxbzB1IDExenUgM1ZBdSBSenUgMXFNdSBXTHUgMXFNdSBXTHUgMXFLdSBXTDAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgV0wwIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgV0wwIDFxTjAgNGtPMCA4eDQwIGl2MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCAxMXowIDFvMTAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9OYXNzYXV8TE1UIEVTVCBFRFR8NTkudSA1MCA0MHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTJrTnVPLnUgMjZYZE8udSAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIiwKCQkJIkFtZXJpY2EvTmV3X1lvcmt8RVNUIEVEVCBFV1QgRVBUfDUwIDQwIDQwIDQwfDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAyMzAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwfC0yNjF0MCAxblgwIDExQjAgMW5YMCAxMUIwIDFxTDAgMWExMCAxMXowIDFxTjAgV0wwIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgV0wwIDFxTjAgMTF6MCAxbzEwIDExejAgUkIwIDh4NDAgaXYwIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIHMxMCAxVnowIExCMCAxQlgwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL05pcGlnb258RVNUIEVEVCBFV1QgRVBUfDUwIDQwIDQwIDQwfDAxMDEyMzAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMjVUUjAgMWluMCBSbmIwIDNqZTAgOHg0MCBpdjAgMTl5TjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIiwKCQkJIkFtZXJpY2EvTm9tZXxOU1QgTldUIE5QVCBCU1QgQkRUIFlTVCBBS1NUIEFLRFR8YjAgYTAgYTAgYjAgYTAgOTAgOTAgODB8MDEyMDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDU2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2fC0xN1NYMCA4d1cwIGlCMCBRbGIwIDUyTzAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgczEwIDFWejAgTEIwIDFCWDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCBjbDAgMTBxMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL05vcm9uaGF8TE1UIEZOVCBGTlNUfDI5LkUgMjAgMTB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMmdseE8uayBIZEtPLmsgMWNjMCAxZTEwIDFiWDAgRXpkMCBTbzAgMXZBMCBNbjAgMUJCMCBNTDAgMUJCMCB6WDAgcWUxMCB4YjAgMmVwMCBuejAgMUMxMCB6WDAgMUMxMCBMWDAgMUMxMCBNbjAgSDIxMCBSYjAgMXRCMCBJTDAgMUZkMCBGWDAgMUVOMCBGWDAgMUhCMCBMejAgbnNwMCBXTDAgMXRCMCAyTDAgMnBCMCBPbjAiLAoJCQkiQW1lcmljYS9Ob3J0aF9EYWtvdGEvQmV1bGFofE1TVCBNRFQgTVdUIE1QVCBDU1QgQ0RUfDcwIDYwIDYwIDYwIDYwIDUwfDAxMDEwMjMwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxNDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NHwtMjYxcjAgMW5YMCAxMUIwIDFuWDAgU2dOMCA4eDIwIGl4MCBRd04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgczEwIDFWejAgTEIwIDFCWDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9vMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIiwKCQkJIkFtZXJpY2EvTm9ydGhfRGFrb3RhL0NlbnRlcnxNU1QgTURUIE1XVCBNUFQgQ1NUIENEVHw3MCA2MCA2MCA2MCA2MCA1MHwwMTAxMDIzMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTR8LTI2MXIwIDFuWDAgMTFCMCAxblgwIFNnTjAgOHgyMCBpeDAgUXdOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIHMxMCAxVnowIExCMCAxQlgwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRvMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL05vcnRoX0Rha290YS9OZXdfU2FsZW18TVNUIE1EVCBNV1QgTVBUIENTVCBDRFR8NzAgNjAgNjAgNjAgNjAgNTB8MDEwMTAyMzAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxNDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0fC0yNjFyMCAxblgwIDExQjAgMW5YMCBTZ04wIDh4MjAgaXgwIFF3TjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCBzMTAgMVZ6MCBMQjAgMUJYMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRvMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9PamluYWdhfExNVCBNU1QgQ1NUIENEVCBNRFR8NlYuRSA3MCA2MCA1MCA2MHwwMTIxMjEyMzIzMjQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxfC0xVVFGMCBkZUwwIDhsYzAgMTdjMCAxME0wIDFkZDAgMnpRTjAgMWxiMCAxNHAwIDFsYjAgMTRxMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMWZCMCBXTDAgMWZCMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCBVMTAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL1BhbmFtYXxDTVQgRVNUfDVqLkEgNTB8MDF8LTJ1ZHVFLm8iLAoJCQkiQW1lcmljYS9QYW5nbmlydHVuZ3x6enogQVNUIEFXVCBBUFQgQUREVCBBRFQgRURUIEVTVCBDU1QgQ0RUfDAgNDAgMzAgMzAgMjAgMzAgNDAgNTAgNjAgNTB8MDEyMzE0MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTY3Njc2NzY3Njg5NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3fC0xWGlNMCBQbkcwIDh4NTAgaXUwIExDTDAgMWZBMCB6Z08wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFvMDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQzAgMW5YMCAxMUEwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL1BhcmFtYXJpYm98TE1UIFBNVCBQTVQgTkVHVCBTUlQgU1JUfDNFLkUgM0UuUSAzRS5BIDN1IDN1IDMwfDAxMjM0NXwtMm5EVWouayBXcW8wLmMgcWFuWC5JIDFkbUxOLm8gbHpjMCIsCgkJCSJBbWVyaWNhL1Bob2VuaXh8TVNUIE1EVCBNV1R8NzAgNjAgNjB8MDEwMTAyMDIwMTB8LTI2MXIwIDFuWDAgMTFCMCAxblgwIFNnTjAgNEFsMSBBcDAgMWRiMCBTV3FYIDFjTDAiLAoJCQkiQW1lcmljYS9Qb3J0LWF1LVByaW5jZXxQUE1UIEVTVCBFRFR8NE4gNTAgNDB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMjhSSGIgMkZuTWIgMTlYMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRxMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTRvMCAxbGMwIDE0bzAgMWxjMCAxNG8wIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxNG8wIDFsYzAgMTRvMCAxbGMwIGk2bjAgMW5YMCAxMUIwIDFuWDAgZDQzMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIiwKCQkJIkFtZXJpY2EvUG9ydG9fQWNyZXxMTVQgQUNUIEFDU1QgQU1UfDR2LmMgNTAgNDAgNDB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMzF8LTJnbHZzLk0gSGRMcy5NIDFjYzAgMWUxMCAxYlgwIEV6ZDAgU28wIDF2QTAgTW4wIDFCQjAgTUwwIDFCQjAgelgwIHFlMTAgeGIwIDJlcDAgbnowIDFDMTAgelgwIDFDMTAgTFgwIDFDMTAgTW4wIEgyMTAgUmIwIDF0QjAgSUwwIDFGZDAgRlgwIE5CZDAgZDVYMCIsCgkJCSJBbWVyaWNhL1BvcnRvX1ZlbGhvfExNVCBBTVQgQU1TVHw0Zi5BIDQwIDMwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMmdsdkkubyBIZEtJLm8gMWNjMCAxZTEwIDFiWDAgRXpkMCBTbzAgMXZBMCBNbjAgMUJCMCBNTDAgMUJCMCB6WDAgcWUxMCB4YjAgMmVwMCBuejAgMUMxMCB6WDAgMUMxMCBMWDAgMUMxMCBNbjAgSDIxMCBSYjAgMXRCMCBJTDAgMUZkMCBGWDAiLAoJCQkiQW1lcmljYS9QdWVydG9fUmljb3xBU1QgQVdUIEFQVHw0MCAzMCAzMHwwMTIwfC0xN2xVMCA3WFQwIGl1MCIsCgkJCSJBbWVyaWNhL1JhaW55X1JpdmVyfENTVCBDRFQgQ1dUIENQVHw2MCA1MCA1MCA1MHwwMTAxMjMwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTB8LTI1VFEwIDFpbjAgUm5iMCAzamUwIDh4MzAgaXcwIDE5eU4wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL1Jhbmtpbl9JbmxldHx6enogQ1NUIENERFQgQ0RUIEVTVHwwIDYwIDQwIDUwIDUwfDAxMjEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzQzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMXwtdkRjMCBrZXUwIDFmQTAgemdPMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9SZWNpZmV8TE1UIEJSVCBCUlNUfDJqLkEgMzAgMjB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMmdseEUubyBIZExFLm8gMWNjMCAxZTEwIDFiWDAgRXpkMCBTbzAgMXZBMCBNbjAgMUJCMCBNTDAgMUJCMCB6WDAgcWUxMCB4YjAgMmVwMCBuejAgMUMxMCB6WDAgMUMxMCBMWDAgMUMxMCBNbjAgSDIxMCBSYjAgMXRCMCBJTDAgMUZkMCBGWDAgMUVOMCBGWDAgMUhCMCBMejAgbnNwMCBXTDAgMXRCMCAyTDAgMnBCMCBPbjAiLAoJCQkiQW1lcmljYS9SZWdpbmF8TE1UIE1TVCBNRFQgTVdUIE1QVCBDU1R8NlcuQSA3MCA2MCA2MCA2MCA2MHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEzNDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTV8LTJBRDUxLm8gdUhlMS5vIDFpbjAgczJMMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCBXTDAgMXFOMCAxMXowIDY2TjAgMWNMMCAxY04wIDE5WDAgMWZCMCAxY0wwIDFmQjAgMWNMMCAxY04wIDFjTDAgTTMwIDh4MjAgaXgwIDFpcDAgMWNMMCAxaXAwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgMTF6MCAxbzEwIDExejAgM05CMCAxY0wwIDFjTjAiLAoJCQkiQW1lcmljYS9SZXNvbHV0ZXx6enogQ1NUIENERFQgQ0RUIEVTVHwwIDYwIDQwIDUwIDUwfDAxMjEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzQzMTMxMzEzMTMxMzQzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMXwtU25BMCBHV1MwIDFmQTAgemdPMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9TYW50YV9Jc2FiZWx8TE1UIE1TVCBQU1QgUERUIFBXVCBQUFR8N0QucyA3MCA4MCA3MCA3MCA3MHwwMTIxMjMyNDUyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzJ8LTFVUUUwIDRQWDAgOG1NMCA4bGMwIFNOMCAxY0wwIHBIQjAgODNyMCB6STAgNU8xMCAxUnowIGNPUDAgMTF6MCAxbzEwIDExejAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCBCVXAwIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIiwKCQkJIkFtZXJpY2EvU2FudGFyZW18TE1UIEFNVCBBTVNUIEJSVHwzQy5NIDQwIDMwIDMwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTN8LTJnbHdsLmMgSGRMbC5jIDFjYzAgMWUxMCAxYlgwIEV6ZDAgU28wIDF2QTAgTW4wIDFCQjAgTUwwIDFCQjAgelgwIHFlMTAgeGIwIDJlcDAgbnowIDFDMTAgelgwIDFDMTAgTFgwIDFDMTAgTW4wIEgyMTAgUmIwIDF0QjAgSUwwIDFGZDAgRlgwIE5CZDAiLAoJCQkiQW1lcmljYS9TYW50aWFnb3xTTVQgQ0xUIENMVCBDTFNUIENMU1R8NEcuSyA1MCA0MCA0MCAzMHwwMTAyMDMxMzEzMTMxMzEzMTMxMjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjR8LTJxNVRoLmUgZk5jaC5lIDVnTEcuSyAyMWJoLmUgalJBRy5LIDFwYmguZSAxMWQwIDFvTDAgMTFkMCAxb0wwIDExZDAgMW9MMCAxMWQwIDFwYjAgMTFkMCBuSFgwIG9wMCA5VUswIDFKZTAgUWVuMCBXTDAgMXpkMCBPbjAgMWlwMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxbGQwIDE0bjAgMXFOMCBXTDAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCBXTDAgMXFOMCBXTDAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgV0wwIDFxTjAgV0wwIDFxTjAgMWNMMCAxY04wIDExejAgMWxkMCAxNG4wIDFxTjAgMTF6MCAxY04wIDE5WDAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgV0wwIDFxTjAgMTdiMCAxaXAwIDExejAgMWlwMCAxZnowIDFmQjAgMTF6MCAxcU4wIFdMMCAxcU4wIFdMMCAxcU4wIFdMMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDE3YjAgMWlwMCAxMXowIDFvMTAgMTlYMCAxZkIwIDFuWDAgRzEwIDFFTDAgT3AwIDF6YjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF6YjAgT3AwIDF6YjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF6YjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF6YjAgT3AwIDF6YjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF6YjAgT3AwIDF6YjAgUmQwIDF3bjAgUmQwIiwKCQkJIkFtZXJpY2EvU2FudG9fRG9taW5nb3xTRE1UIEVTVCBFRFQgRUhEVCBBU1R8NEUgNTAgNDAgNHUgNDB8MDEyMTMxMzEzMTMxMzE0MTR8LTF0dGprIDFsSk1rIE1uMCA2c3AwIExidSAxQ291IHlMdSAxUkF1IHdMdSAxUU11IHh6dSAxUTB1IHhYdSAxUEF1IDEzakIwIGUwMCIsCgkJCSJBbWVyaWNhL1Nhb19QYXVsb3xMTVQgQlJUIEJSU1R8MzYucyAzMCAyMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTJ8LTJnbHdSLncgSGRLUi53IDFjYzAgMWUxMCAxYlgwIEV6ZDAgU28wIDF2QTAgTW4wIDFCQjAgTUwwIDFCQjAgelgwIHBUZDAgUFgwIDJlcDAgbnowIDFDMTAgelgwIDFDMTAgTFgwIDFDMTAgTW4wIEgyMTAgUmIwIDF0QjAgSUwwIDFGZDAgRlgwIDFFTjAgRlgwIDFIQjAgTHowIDFFTjAgTHowIDFDMTAgSUwwIDFIQjAgRGIwIDFIQjAgT24wIDF6ZDAgT24wIDF6ZDAgTHowIDF6ZDAgUmIwIDF3TjAgV24wIDF0QjAgUmIwIDF0QjAgV0wwIDF0QjAgUmIwIDF6ZDAgT24wIDFIQjAgRlgwIDFDMTAgTHowIDFJcDAgSFgwIDF6ZDAgT24wIDFIQjAgSUwwIDF3cDAgT24wIDFDMTAgTHowIDFDMTAgT24wIDF6ZDAgT24wIDF6ZDAgUmIwIDF6ZDAgTHowIDFDMTAgTHowIDFDMTAgT24wIDF6ZDAgT24wIDF6ZDAgT24wIDF6ZDAgT24wIDFDMTAgTHowIDFDMTAgTHowIDFDMTAgT24wIDF6ZDAgT24wIDF6ZDAgUmIwIDF3cDAgT24wIDFDMTAgTHowIDFDMTAgT24wIDF6ZDAgT24wIDF6ZDAgT24wIDF6ZDAgT24wIDFDMTAgTHowIDFDMTAgTHowIDFDMTAgTHowIDFDMTAgT24wIDF6ZDAgUmIwIDF3cDAgT24wIDFDMTAgTHowIDFDMTAgT24wIDF6ZDAiLAoJCQkiQW1lcmljYS9TY29yZXNieXN1bmR8TE1UIENHVCBDR1NUIEVHU1QgRUdUfDFyLlEgMjAgMTAgMCAxMHwwMTIxMzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0fC0yYTVXdy44IDJ6NWV3LjggMWEwMCAxY0swIDFjTDAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIiwKCQkJIkFtZXJpY2EvU2l0a2F8UFNUIFBXVCBQUFQgUERUIFlTVCBBS1NUIEFLRFR8ODAgNzAgNzAgNzAgOTAgOTAgODB8MDEyMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzNDU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjV8LTE3VDIwIDh4MTAgaXkwIFZvMTAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgczEwIDFWejAgTEIwIDFCWDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCBjbzAgMTBxMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL1N0X0pvaG5zfE5TVCBORFQgTlNUIE5EVCBOV1QgTlBUIE5ERFR8M3UuUSAydS5RIDN1IDJ1IDJ1IDJ1IDF1fDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAyMzIzMjMyMzIzMjMyMzI0NTIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzI2MjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyfC0yOG9pdC44IDE0TDAgMW5CMCAxaW4wIDFnbTAgRHowIDFKQjAgMWNMMCAxY04wIDFjTDAgMWZCMCAxOVgwIDFmQjAgMTlYMCAxZkIwIDE5WDAgMWZCMCAxOVgwIDFmQjAgMWNMMCAxY04wIDFjTDAgMWZCMCAxOVgwIDFmQjAgMTlYMCAxZkIwIDE5WDAgMWZCMCAxOVgwIDFmQjAgMWNMMCAxZkIwIDE5WDAgMWZCMCAxOVgwIDEwTzAgZUtYLjggMTlYMCAxaXEwIFdMMCAxcU4wIFdMMCAxcU4wIFdMMCAxdEIwIFRYMCAxdEIwIFdMMCAxcU4wIFdMMCAxcU4wIDdVSHUgaXR1IDF0QjAgV0wwIDFxTjAgV0wwIDFxTjAgV0wwIDFxTjAgV0wwIDF0QjAgV0wwIDFsZDAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0bjEgMWxiMCAxNHAwIDFuVzAgMTFDMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6Y1ggT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9Td2lmdF9DdXJyZW50fExNVCBNU1QgTURUIE1XVCBNUFQgQ1NUfDdiLmsgNzAgNjAgNjAgNjAgNjB8MDEyMTM0MTIxMjEyMTIxMjEyMTIxMjE1fC0yQUQ0TS5FIHVIZE0uRSAxaW4wIFVHcDAgOHgyMCBpeDAgMW8xMCAxN2IwIDFpcDAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIGlzTjAgMWNMMCAzQ3AwIDFjTDAgMWNOMCAxMXowIDFxTjAgV0wwIHBNcDAiLAoJCQkiQW1lcmljYS9UZWd1Y2lnYWxwYXxMTVQgQ1NUIENEVHw1TS5RIDYwIDUwfDAxMjEyMTIxfC0xV0dHYi44IDJFVGNiLjggV0wwIDFxTjAgV0wwIEdSZDAgQUwwIiwKCQkJIkFtZXJpY2EvVGh1bGV8TE1UIEFTVCBBRFR8NHouOCA0MCAzMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTJhNVRvLlEgMzFOQm8uUSAxY0wwIDFjTjAgMWNMMCAxZkIwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIiwKCQkJIkFtZXJpY2EvVGh1bmRlcl9CYXl8Q1NUIEVTVCBFV1QgRVBUIEVEVHw2MCA1MCA0MCA0MCA0MHwwMTIzMTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxfC0ycTVTMCAxaWFOMCA4eDQwIGl2MCBYTkIwIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAzQ3AwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL1Rvcm9udG98RVNUIEVEVCBFV1QgRVBUfDUwIDQwIDQwIDQwfDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEyMzAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwfC0yNVRSMCAxaW4wIDExV3UgMW56dSAxZkQwIFdKMCAxd3IwIE5iMCAxQXAwIE9uMCAxemQwIE9uMCAxd3AwIFRYMCAxdEIwIFRYMCAxdEIwIFRYMCAxdEIwIFdMMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCBXTDAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCBXTDAgMXFOMCA0a00wIDh4NDAgaXYwIDFvMTAgMTF6MCAxblgwIDExejAgMW8xMCAxMXowIDFvMTAgMXFMMCAxMUQwIDFuWDAgMTFCMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIDExejAgMW8xMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL1ZhbmNvdXZlcnxQU1QgUERUIFBXVCBQUFR8ODAgNzAgNzAgNzB8MDEwMjMwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMjVUTzAgMWluMCBVR3AwIDh4MTAgaXkwIDFvMTAgMTdiMCAxaXAwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCBXTDAgMXFOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9XaGl0ZWhvcnNlfFlTVCBZRFQgWVdUIFlQVCBZRERUIFBTVCBQRFR8OTAgODAgODAgODAgNzAgODAgNzB8MDEwMTAyMzA0MDU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NXwtMjVUTjAgMWluMCAxbzEwIDEzVjAgU2VyMCA4eDAwIGl6MCBMQ0wwIDFmQTAgMUJlMCB4RHowIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL1dpbm5pcGVnfENTVCBDRFQgQ1dUIENQVHw2MCA1MCA1MCA1MHwwMTAxMDEwMjMwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTB8LTJhSWkwIFdMMCAzTkQwIDFpbjAgSmFwMCBSYjAgYUNOMCA4eDMwIGl3MCAxdEIwIDExejAgMWlwMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXJkMCAxMEwwIDFvcDAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxY0wwIDFjTjAgMTF6MCA2aTEwIFdMMCA2aTEwIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFhMDAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFhMDAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxNG8wIDFsYzAgMTRvMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTRvMCAxbGMwIDE0bzAgMWxjMCAxNG8wIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxNG8wIDFsYzAgMTRvMCAxbGMwIDE0bzAgMWxjMCAxNG8wIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxNG8wIDFsYzAgMTRvMCAxbGMwIDE0bzAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIiwKCQkJIkFtZXJpY2EvWWFrdXRhdHxZU1QgWVdUIFlQVCBZRFQgQUtTVCBBS0RUfDkwIDgwIDgwIDgwIDkwIDgwfDAxMjAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzA0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0fC0xN1QxMCA4eDAwIGl6MCBWbzEwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIHMxMCAxVnowIExCMCAxQlgwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgY24wIDEwcTAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9ZZWxsb3drbmlmZXx6enogTVNUIE1XVCBNUFQgTUREVCBNRFR8MCA3MCA2MCA2MCA1MCA2MHwwMTIzMTQxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTF8LTFwZEEwIGhpeDAgOHgyMCBpeDAgTENMMCAxZkEwIHpnTzAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIiwKCQkJIkFudGFyY3RpY2EvQ2FzZXl8enp6IEFXU1QgQ0FTVHwwIC04MCAtYjB8MDEyMTIxfC0ycTAwIDFEalMwIFQ5MCA0MFAwIEtMMCIsCgkJCSJBbnRhcmN0aWNhL0RhdmlzfHp6eiBEQVZUIERBVlR8MCAtNzAgLTUwfDAxMDEyMTIxfC12eW8wIGlYdDAgYWxqMCAxRDd2MCBWQjAgM1duMCBLTjAiLAoJCQkiQW50YXJjdGljYS9EdW1vbnREVXJ2aWxsZXx6enogUE1UIEREVVR8MCAtYTAgLWEwfDAxMDJ8LVUwbzAgY2ZxMCBiRm0wIiwKCQkJIkFudGFyY3RpY2EvTWFjcXVhcmllfEFFU1QgQUVEVCB6enogTUlTVHwtYTAgLWIwIDAgLWIwfDAxMDIwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTN8LTI5RTgwIDE5WDAgNFNMMCAxYXl5MCBMdnMwIDFjTTAgMW8wMCBSYzAgMXdvMCBSYzAgMXdvMCBVMDAgMXdvMCBMQTAgMUMwMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBSYzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCAxMUEwIDFxTTAgV00wIDFxTTAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF3bzAgV00wIDF0QTAgV00wIDF0QTAgVTAwIDF0QTAgVTAwIDF0QTAgMTFBMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxY00wIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxMUEwIDFvMDAgMWlvMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWNNMCAxY00wIDFhMDAgMWlvMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAiLAoJCQkiQW50YXJjdGljYS9NYXdzb258enp6IE1BV1QgTUFXVHwwIC02MCAtNTB8MDEyfC1DRW8wIDJmeWswIiwKCQkJIkFudGFyY3RpY2EvTWNNdXJkb3xOWk1UIE5aU1QgTlpTVCBOWkRUfC1idSAtY3UgLWMwIC1kMHwwMTAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyM3wtMUdDVnUgTHowIDF0QjAgMTF6dSAxbzB1IDExenUgMW8wdSAxMXp1IDFvMHUgMTRudSAxbGN1IDE0bnUgMWxjdSAxbGJ1IDExQXUgMW5YdSAxMUF1IDFuWHUgMTFBdSAxblh1IDExQXUgMW5YdSAxMUF1IDFxTHUgV011IDFxTHUgMTFBdSAxbjFidSBJTTAgMUMwMCBSYzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBSYzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBSYzAgMXpjMCBPbzAgMXFNMCAxNG8wIDFsYzAgMTRvMCAxbGMwIDE0bzAgMWxjMCAxN2MwIDFpbzAgMTdjMCAxaW8wIDE3YzAgMWlvMCAxN2MwIDFsYzAgMTRvMCAxbGMwIDE0bzAgMWxjMCAxN2MwIDFpbzAgMTdjMCAxaW8wIDE3YzAgMWxjMCAxNG8wIDFsYzAgMTRvMCAxbGMwIDE3YzAgMWlvMCAxN2MwIDFpbzAgMTdjMCAxaW8wIDE3YzAgMWlvMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxY00wIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxY00wIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWlvMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFjTTAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFjTTAgMWZBMCAxYTAwIDFmQTAgMWEwMCIsCgkJCSJBbnRhcmN0aWNhL1BhbG1lcnx6enogQVJTVCBBUlQgQVJUIEFSU1QgQ0xUIENMU1R8MCAzMCA0MCAzMCAyMCA0MCAzMHwwMTIxMjEyMTIxMjM0MzU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTZ8LWNhbzAgbkQwIDF2ZDAgU0wwIDF2ZDAgMTd6MCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgYXNuMCBEYjAganNOMCAxNE4wIDExejAgMW8xMCAxMXowIDFxTjAgV0wwIDFxTjAgV0wwIDFxTjAgMWNMMCAxY04wIDExejAgMWxkMCAxNG4wIDFxTjAgMTF6MCAxY04wIDE5WDAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgV0wwIDFxTjAgMTdiMCAxaXAwIDExejAgMWlwMCAxZnowIDFmQjAgMTF6MCAxcU4wIFdMMCAxcU4wIFdMMCAxcU4wIFdMMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDE3YjAgMWlwMCAxMXowIDFvMTAgMTlYMCAxZkIwIDFuWDAgRzEwIDFFTDAgT3AwIDF6YjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF6YjAgT3AwIDF6YjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF6YjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF6YjAgT3AwIDF6YjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF6YjAgT3AwIDF6YjAgUmQwIDF3bjAgUmQwIiwKCQkJIkFudGFyY3RpY2EvUm90aGVyYXx6enogUk9UVHwwIDMwfDAxfGdPbzAiLAoJCQkiQW50YXJjdGljYS9TeW93YXx6enogU1lPVHwwIC0zMHwwMXwtdnMwMCIsCgkJCSJBbnRhcmN0aWNhL1Ryb2xsfHp6eiBVVEMgQ0VTVHwwIDAgLTIwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfDFwdW8wIGhkMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIsCgkJCSJBbnRhcmN0aWNhL1Zvc3Rva3x6enogVk9TVHwwIC02MHwwMXwtdGpBMCIsCgkJCSJBcmN0aWMvTG9uZ3llYXJieWVufENFVCBDRVNUfC0xMCAtMjB8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwfC0yYXdNMCBRbTAgVzZvMCA1cGYwIFdNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgd0pjMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMXFNMCBXTTAgenBjMCAxYTAwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAiLAoJCQkiQXNpYS9BZGVufExNVCBBU1R8LTJYLlMgLTMwfDAxfC1NRzJYLlMiLAoJCQkiQXNpYS9BbG1hdHl8TE1UIEFMTVQgQUxNVCBBTE1TVHwtNTcuTSAtNTAgLTYwIC03MHwwMTIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyfC0xUGM1Ny5NIGVVbzcuTSAyM0NMMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDNDbDAgMWNMMCAxY1EwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAiLAoJCQkiQXNpYS9BbW1hbnxMTVQgRUVUIEVFU1R8LTJuLkkgLTIwIC0zMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0xeVcybi5JIDFIaU1uLkkgS0wwIDFvTjAgMTFiMCAxb04wIDExYjAgMXBkMCAxZHowIDFjcDAgMTFiMCAxb3AwIDExYjAgZk8xMCAxZGIwIDFlMTAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFwZDAgMTBuMCAxbGQwIDE0bjAgMWhCMCAxNWIwIDFpcDAgMTlYMCAxY04wIDFjTDAgMWNOMCAxN2IwIDFsZDAgMTRvMCAxbGMwIDE3YzAgMWlvMCAxN2MwIDFpbzAgMTdjMCAxU28wIHkwMCAxZmMwIDFkYzAgMWNvMCAxZGMwIDFjTTAgMWNNMCAxY00wIDFvMDAgMTFBMCAxbGMwIDE3YzAgMWNNMCAxY00wIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCA0YlgwIERkMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAiLAoJCQkiQXNpYS9BbmFkeXJ8TE1UIEFOQVQgQU5BVCBBTkFTVCBBTkFTVCBBTkFTVCBBTkFUfC1iTi5VIC1jMCAtZDAgLWUwIC1kMCAtYzAgLWIwfDAxMjMyNDE0MTQxNDE0MTQxNDE0MTQxNTYxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNTYxfC0xUGNiTi5VIGVVbk4uVSAyM0NMMCAxZGIwIDFjTjAgMWRjMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNOMCBJTTAgclUwIDFjTDAgMWNRMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU4wIFdNMCIsCgkJCSJBc2lhL0FxdGF1fExNVCBGT1JUIEZPUlQgU0hFVCBTSEVUIFNIRVNUIEFRVFQgQVFUU1QgQVFUU1QgQVFUVHwtM2wuNCAtNDAgLTUwIC01MCAtNjAgLTYwIC01MCAtNjAgLTUwIC00MHwwMTIzNDUzNTM1MzUzNTM1MzUzNTM1MzY3Njc2NzY4OTg5ODk4OTg5ODk4OTg5ODk4OTZ8LTFQYzNsLjQgZVVubC40IDFqY0wwIEpEYzAgMWNMMCAxZGMwIDFjTjAgMWRiMCAxZGQwIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMlVLMCBGejAgMWNMMCAxY1EwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNOMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgUlcwIiwKCQkJIkFzaWEvQXF0b2JlfExNVCBBS1RUIEFLVFQgQUtUU1QgQUtUVCBBUVRUIEFRVFNUfC0zTS5FIC00MCAtNTAgLTYwIC02MCAtNTAgLTYwfDAxMjM0MzIzMjMyMzIzMjMyMzIzMjMyNTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1fC0xUGMzTS5FIGVVbk0uRSAyM0NMMCAxZGIwIDFjTTAgMWRjMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDJVSzAgRnowIDFjTDAgMWNRMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIiwKCQkJIkFzaWEvQXNoZ2FiYXR8TE1UIEFTSFQgQVNIVCBBU0hTVCBBU0hTVCBUTVQgVE1UfC0zUi53IC00MCAtNTAgLTYwIC01MCAtNDAgLTUwfDAxMjMyMzIzMjMyMzIzMjMyMzIzMjMyNDE1NnwtMVBjM1IudyBlVW5SLncgMjNDTDAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTjAgYmEwIHhDMCIsCgkJCSJBc2lhL0JhZ2hkYWR8Qk1UIEFTVCBBRFR8LTJWLkEgLTMwIC00MHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTI2QmVWLkEgMkFDblYuQSAxMWIwIDFjcDAgMWR6MCAxZGQwIDFkYjAgMWNOMCAxY3AwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWRlMCAxZGMwIDFkYzAgMWRjMCAxY00wIDFkYzAgMWNNMCAxZGMwIDFjTTAgMWRjMCAxZGMwIDFkYzAgMWNNMCAxZGMwIDFjTTAgMWRjMCAxY00wIDFkYzAgMWRjMCAxZGMwIDFjTTAgMWRjMCAxY00wIDFkYzAgMWNNMCAxZGMwIDFkYzAgMWRjMCAxY00wIDFkYzAgMWNNMCAxZGMwIDFjTTAgMWRjMCIsCgkJCSJBc2lhL0JhaHJhaW58TE1UIEdTVCBBU1R8LTNtLmsgLTQwIC0zMHwwMTJ8LTIxSmZtLmsgMjdCWG0uayIsCgkJCSJBc2lhL0Jha3V8TE1UIEJBS1QgQkFLVCBCQUtTVCBCQUtTVCBBWlNUIEFaVCBBWlQgQVpTVHwtM2oubyAtMzAgLTQwIC01MCAtNDAgLTQwIC0zMCAtNDAgLTUwfDAxMjMyMzIzMjMyMzIzMjMyMzIzMjMyNDU2NTc4Nzg3ODc4Nzg3ODc4Nzg3ODc4Nzg3ODc4Nzg3ODc4Nzg3ODc4Nzg3ODc4Nzg3ODc4Nzg3ODc4Nzg3ODc4Nzg3ODc4Nzg3ODc4Nzg3ODc4Nzg3ODd8LTFQYzNqLm8gMWpVb2oubyBXQ0wwIDFkYjAgMWNOMCAxZGIwIDFjTjAgMWRiMCAxZGQwIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxMEswIGMzMCAxY0owIDFjTDAgOHd1MCAxbzAwIDExejAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIsCgkJCSJBc2lhL0Jhbmdrb2t8Qk1UIElDVHwtNkcuNCAtNzB8MDF8LTIxOFNHLjQiLAoJCQkiQXNpYS9CZWlydXR8RUVUIEVFU1R8LTIwIC0zMHwwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTB8LTIxYXEwIDFvbjAgMTQxMCAxZGIwIDE5QjAgMWluMCAxaXAwIFdMMCAxbFFwMCAxMWIwIDFvTjAgMTFiMCAxb04wIDExYjAgMXBkMCAxMWIwIDFvTjAgMTFiMCBxNk4wIEVuMCAxb04wIDExYjAgMW9OMCAxMWIwIDFvTjAgMTFiMCAxcGQwIDExYjAgMW9OMCAxMWIwIDFvcDAgMTFiMCBkQTEwIDE3YjAgMWlOMCAxN2IwIDFpTjAgMTdiMCAxaU4wIDE3YjAgMXZCMCBTTDAgMW1wMCAxM3owIDFpTjAgMTdiMCAxaU4wIDE3YjAgMWpkMCAxMm4wIDFhMTAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFmQjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMXFMMCBXTjAgMXFMMCBXTjAgMXFMMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMXFMMCBXTjAgMXFMMCBXTjAgMXFMMCBXTjAgMXFMMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMXFMMCBXTjAgMXFMMCBXTjAgMXFMMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFxTDAgV04wIDFxTDAgV04wIDFxTDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFxTDAgV04wIDFxTDAgV04wIDFxTDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxcUwwIFdOMCAxcUwwIFdOMCAxcUwwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxcUwwIFdOMCAxcUwwIFdOMCAxcUwwIFdOMCAxcUwwIDExQjAgMW5YMCAxMUIwIDFuWDAiLAoJCQkiQXNpYS9CaXNoa2VrfExNVCBGUlVUIEZSVVQgRlJVU1QgRlJVU1QgS0dUIEtHU1QgS0dUfC00Vy5vIC01MCAtNjAgLTcwIC02MCAtNTAgLTYwIC02MHwwMTIzMjMyMzIzMjMyMzIzMjMyMzIzMjQ1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2N3wtMVBjNFcubyBlVW5XLm8gMjNDTDAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDExYzAgMXRYMCAxN2IwIDFpcDAgMTdiMCAxaXAwIDE3YjAgMWlwMCAxN2IwIDFpcDAgMTlYMCAxY1B1IDFuWDAgMTFCMCAxblgwIDExQjAgMXFMMCBXTjAgMXFMMCBXTjAgMXFMMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMXFMMCBXTjAgVDh1IiwKCQkJIkFzaWEvQnJ1bmVpfExNVCBCTlQgQk5UfC03RC5FIC03dSAtODB8MDEyfC0xS0lURC5FIGdEYzkuRSIsCgkJCSJBc2lhL0NhbGN1dHRhfEhNVCBCVVJUIElTVCBJU1R8LTVSLmsgLTZ1IC01dSAtNnV8MDEyMzJ8LTE4TEZSLmsgMXVubi5rIEhCMCA3elgwIiwKCQkJIkFzaWEvQ2hpdGF8TE1UIFlBS1QgWUFLVCBZQUtTVCBZQUtTVCBZQUtUIElSS1R8LTd4LlEgLTgwIC05MCAtYTAgLTkwIC1hMCAtODB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyMzI0MTIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjU2fC0yMVE3eC5RIHBBbnguUSAyM0NMMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNOMCBJTTAgclUwIDFjTDAgMWNRMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCA4SHowIiwKCQkJIkFzaWEvQ2hvaWJhbHNhbnxMTVQgVUxBVCBVTEFUIENIT1NUIENIT1QgQ0hPVHwtN0MgLTcwIC04MCAtYTAgLTkwIC04MHwwMTIzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDV8LTJBUEhDIDJVa29DIGNLbjAgMWRhMCAxZGQwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxZkIwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCA2aEQwIDExejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAzRGIwIiwKCQkJIkFzaWEvQ2hvbmdxaW5nfENTVCBDRFR8LTgwIC05MHwwMTAxMDEwMTAxMDEwMTAxMHwtMWMxSTAgTFgwIDE2cDAgMWp6MCAxTXlwMCBSYjAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCIsCgkJCSJBc2lhL0NvbG9tYm98TU1UIElTVCBJSFNUIElTVCBMS1QgTEtUfC01ai53IC01dSAtNjAgLTZ1IC02dSAtNjB8MDEyMzE0NTF8LTJ6T3RqLncgMXJGYk4udyAxenp1IDdBcHUgMjNkejAgMTF6dSBuM2N1IiwKCQkJIkFzaWEvRGFjY2F8SE1UIEJVUlQgSVNUIERBQ1QgQkRUIEJEU1R8LTVSLmsgLTZ1IC01dSAtNjAgLTYwIC03MHwwMTIxMzQ1NHwtMThMRlIuayAxdW5uLmsgSEIwIG02bjAgTHFNdSAxeDZuMCAxaTAwIiwKCQkJIkFzaWEvRGFtYXNjdXN8TE1UIEVFVCBFRVNUfC0ycC5jIC0yMCAtMzB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTIxSmVwLmMgSGVwLmMgMTdiMCAxaXAwIDE3YjAgMWlwMCAxN2IwIDFpcDAgMTlYMCAxeFJCMCAxMVgwIDFvTjAgMTBMMCAxcEIwIDExYjAgMW9OMCAxMEwwIDFtcDAgMTNYMCAxb04wIDExYjAgMXBkMCAxMWIwIDFvTjAgMTFiMCAxb04wIDExYjAgMW9OMCAxMWIwIDFwZDAgMTFiMCAxb04wIDExYjAgMW9OMCAxMWIwIDFvTjAgMTFiMCAxcGQwIDExYjAgMW9OMCBOYjAgMUFOMCBOYjAgYmNwMCAxOVgwIDFncDAgMTlYMCAzbGQwIDF4WDAgVmQwIDFCejAgU3AwIDF2WDAgMTBwMCAxZHowIDFjTjAgMWNMMCAxZGIwIDFkYjAgMWcxMCAxYW4wIDFhcDAgMWRiMCAxZmQwIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWRiMCAxY3AwIDFkejAgMWMxMCAxZFgwIDFjTjAgMWRiMCAxZGQwIDFkYjAgMWNOMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxZGIwIDFjTjAgMWRiMCAxY04wIDE5ejAgMWZCMCAxcUwwIDExQjAgMW9uMCBXcDAgMXFMMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxcUwwIFdOMCAxcUwwIFdOMCAxcUwwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMXFMMCBXTjAgMXFMMCBXTjAgMXFMMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMXFMMCBXTjAgMXFMMCBXTjAgMXFMMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFxTDAgV04wIDFxTDAgV04wIDFxTDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFxTDAgV04wIDFxTDAiLAoJCQkiQXNpYS9EaWxpfExNVCBUTFQgSlNUIFRMVCBXSVRBfC04bS5rIC04MCAtOTAgLTkwIC04MHwwMTIzNDN8LTJsZThtLmsgMWRuWG0uayA4SEEwIDFldzAwIFhsZDAiLAoJCQkiQXNpYS9EdWJhaXxMTVQgR1NUfC0zRi5jIC00MHwwMXwtMjFKZkYuYyIsCgkJCSJBc2lhL0R1c2hhbmJlfExNVCBEVVNUIERVU1QgRFVTU1QgRFVTU1QgVEpUfC00ei5jIC01MCAtNjAgLTcwIC02MCAtNTB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyMzI0NXwtMVBjNHouYyBlVW56LmMgMjNDTDAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDE0TjAiLAoJCQkiQXNpYS9HYXphfEVFVCBFRVQgRUVTVCBJU1QgSURUfC0yMCAtMzAgLTMwIC0yMCAtMzB8MDEwMTAxMDEwMTAyMDIwMjAyMDIwMjAyMDIwMjAyMDIzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDMwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwfC0xYzJxMCA1UmIwIDEwcjAgMXB4MCAxME4wIDFwejAgMTZwMCAxakIwIDE2cDAgMWp4MCBwQmQwIFZ6MCAxb04wIDExYjAgMW9PMCAxME4wIDFwejAgMTBOMCAxcGIwIDEwTjAgMXBiMCAxME4wIDFwYjAgMTBOMCAxcHowIDEwTjAgMXBiMCAxME4wIDFwYjAgMTFkMCAxb0wwIGRXMCBoZkIwIERiMCAxZkIwIFJiMCBucEIwIDExejAgMUMxMCBJTDAgMXMxMCAxMG4wIDFvMTAgV0wwIDF6ZDAgT24wIDFsZDAgMTF6MCAxbzEwIDE0bjAgMW8xMCAxNG4wIDFuZDAgMTJuMCAxbmQwIFh6MCAxcTEwIDEybjAgTTEwIEMwMCAxN2MwIDFpbzAgMTdjMCAxaW8wIDE3YzAgMW8wMCAxY0wwIDFmQjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDE3YzAgMWlvMCAxOE4wIDFiejAgMTl6MCAxZ3AwIDE2MTAgMWlMMCAxMXowIDFvMTAgMTRvMCAxbEExIFNLWCAxeGQxIE1LWCAxQU4wIDFhMDAgMWZBMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWZCMCAxOVgwIDFmQjAgMTlYMCAxZkIwIDE5WDAgMWZCMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWZCMCAxOVgwIDFmQjAgMTlYMCAxZkIwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWZCMCAxOVgwIDFmQjAgMTlYMCAxZkIwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxZkIwIDE5WDAgMWZCMCAxOVgwIDFmQjAgMTlYMCAxZkIwIDFjTDAgMWNOMCAxY0wwIiwKCQkJIkFzaWEvSGVicm9ufEVFVCBFRVQgRUVTVCBJU1QgSURUfC0yMCAtMzAgLTMwIC0yMCAtMzB8MDEwMTAxMDEwMTAyMDIwMjAyMDIwMjAyMDIwMjAyMDIzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDMwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjB8LTFjMnEwIDVSYjAgMTByMCAxcHgwIDEwTjAgMXB6MCAxNnAwIDFqQjAgMTZwMCAxangwIHBCZDAgVnowIDFvTjAgMTFiMCAxb08wIDEwTjAgMXB6MCAxME4wIDFwYjAgMTBOMCAxcGIwIDEwTjAgMXBiMCAxME4wIDFwejAgMTBOMCAxcGIwIDEwTjAgMXBiMCAxMWQwIDFvTDAgZFcwIGhmQjAgRGIwIDFmQjAgUmIwIG5wQjAgMTF6MCAxQzEwIElMMCAxczEwIDEwbjAgMW8xMCBXTDAgMXpkMCBPbjAgMWxkMCAxMXowIDFvMTAgMTRuMCAxbzEwIDE0bjAgMW5kMCAxMm4wIDFuZDAgWHowIDFxMTAgMTJuMCBNMTAgQzAwIDE3YzAgMWlvMCAxN2MwIDFpbzAgMTdjMCAxbzAwIDFjTDAgMWZCMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMTdjMCAxaW8wIDE4TjAgMWJ6MCAxOXowIDFncDAgMTYxMCAxaUwwIDEyTDAgMW1OMCAxNG8wIDFsYzAgVGIwIDF4ZDEgTUtYIGJCMCBjbjAgMWNOMCAxYTAwIDFmQTAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFmQjAgMTlYMCAxZkIwIDE5WDAgMWZCMCAxOVgwIDFmQjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFmQjAgMTlYMCAxZkIwIDE5WDAgMWZCMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFmQjAgMTlYMCAxZkIwIDE5WDAgMWZCMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWZCMCAxOVgwIDFmQjAgMTlYMCAxZkIwIDE5WDAgMWZCMCAxY0wwIDFjTjAgMWNMMCIsCgkJCSJBc2lhL0hvX0NoaV9NaW5ofExNVCBQTE1UIElDVCBJRFQgSlNUfC03Ni5FIC03Ni51IC03MCAtODAgLTkwfDAxMjM0MjMyMzJ8LTJ5Qzc2LkUgYkswMC5hIDFoN2I2LnUgNWx6MCAxOG8wIDNPcTAgazViMCBhVzAwIEJBTTAiLAoJCQkiQXNpYS9Ib25nX0tvbmd8TE1UIEhLVCBIS1NUIEpTVHwtN0EuRyAtODAgLTkwIC05MHwwMTIxMzEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0yQ0ZIQS5HIDFzRVA2LkcgMWNMMCB5bHUgOTNYMCAxcVF1IDF0WDAgUmQwIDFJbjAgTkIwIDFjTDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxa0wwIDE0TjAgMW5YMCBVMTAgMXR6MCBVMTAgMXduMCBSZDAgMXduMCBVMTAgMXR6MCBVMTAgMXR6MCBVMTAgMXR6MCBVMTAgMXduMCBSZDAgMXduMCBSZDAgMXduMCBVMTAgMXR6MCBVMTAgMXR6MCAxN2QwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCBzMTAgMVZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDZmZDAgMTRuMCIsCgkJCSJBc2lhL0hvdmR8TE1UIEhPVlQgSE9WVCBIT1ZTVHwtNjYuQSAtNjAgLTcwIC04MHwwMTIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMnwtMkFQRzYuQSAyVWtvNi5BIGNLbjAgMWRiMCAxZGQwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxZkIwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCA2aEQwIDExejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCIsCgkJCSJBc2lhL0lya3V0c2t8SU1UIElSS1QgSVJLVCBJUktTVCBJUktTVCBJUktUfC02Vi41IC03MCAtODAgLTkwIC04MCAtOTB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyMzI0MTIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjUyfC0yMXpHVi41IHBqWFYuNSAyM0NMMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNOMCBJTTAgclUwIDFjTDAgMWNRMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCA4SHowIiwKCQkJIkFzaWEvSXN0YW5idWx8SU1UIEVFVCBFRVNUIFRSU1QgVFJUfC0xVS5VIC0yMCAtMzAgLTQwIC0zMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMzQzNDM0MzQzNDIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTJvZ05VLlUgZHp6VS5VIDExYjAgOHRCMCAxb24wIDE0MTAgMWRiMCAxOUIwIDFpbjAgM1JkMCBVbjAgMW9OMCAxMWIwIHpTcDAgQ0wwIG1OMCAxVnowIDFnTjAgMXB6MCA1UmQwIDFmejAgMXlwMCBNTDAgMWtwMCAxN2IwIDFpcDAgMTdiMCAxZkIwIDE5WDAgMWpCMCAxOEwwIDFpcDAgMTd6MCBxZGQwIHhYMCAzUzEwIFR6MCBkQTEwIDExejAgMW8xMCAxMXowIDFxTjAgMTF6MCAxemUwIDExQjAgV00wIDFxTzAgV0kwIDFuWDAgMXJCMCAxMEwwIDExQjAgMWluMCAxN2QwIDFpbjAgMnBYMCAxOUUwIDFmVTAgMTZRMCAxaUkwIDE2UTAgMWlJMCAxVmQwIHBiMCAzS3AwIDE0bzAgMWRmMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY0wwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTzAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBYYzAgMXFvMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTIwMCAxbkEwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAiLAoJCQkiQXNpYS9KYWthcnRhfEJNVCBKQVZUIFdJQiBKU1QgV0lCIFdJQnwtNzcuYyAtN2sgLTd1IC05MCAtODAgLTcwfDAxMjMyNDI1fC0xUTBUayBsdU0wIG1Qek8gOHZXdSA2a3B1IDRQWHUgeGhjdSIsCgkJCSJBc2lhL0pheWFwdXJhfExNVCBXSVQgQUNTVHwtOW0uTSAtOTAgLTl1fDAxMjF8LTF1dTltLk0gc01NbS5NIEw0bnUiLAoJCQkiQXNpYS9KZXJ1c2FsZW18Sk1UIElTVCBJRFQgSUREVHwtMmsuRSAtMjAgLTMwIC00MHwwMTIxMjEyMTIxMjEzMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMjZCZWsuRSBTeU1rLkUgNVJiMCAxMHIwIDFweDAgMTBOMCAxcHowIDE2cDAgMWpCMCAxNnAwIDFqeDAgM0xCMCBFbTAgb3IwIDFjbjAgMWRCMCAxNm4wIDEwTzAgMWphMCAxdEMwIDE0bzAgMWNNMCAxYTAwIDExQTAgMU5hMCBBbjAgMU1QMCBBSjAgMUtwMCBMQzAgMW9vMCBXbDAgRVFOMCBEYjAgMWZCMCBSYjAgbnBCMCAxMXowIDFDMTAgSUwwIDFzMTAgMTBuMCAxbzEwIFdMMCAxemQwIE9uMCAxbGQwIDExejAgMW8xMCAxNG4wIDFvMTAgMTRuMCAxbmQwIDEybjAgMW5kMCBYejAgMXExMCAxMm4wIDFoQjAgMWRYMCAxZXAwIDFhTDAgMWVOMCAxN1gwIDFuZjAgMTF6MCAxdEIwIDE5VzAgMWUxMCAxN2IwIDFlcDAgMWdMMCAxOE4wIDFmejAgMWVOMCAxN2IwIDFncTAgMWduMCAxOWQwIDFkejAgMWMxMCAxN1gwIDFoQjAgMWduMCAxOWQwIDFkejAgMWMxMCAxN1gwIDFrcDAgMWR6MCAxYzEwIDFhTDAgMWVOMCAxb0wwIDEwTjAgMW9MMCAxME4wIDFvTDAgMTBOMCAxcnowIFcxMCAxcnowIFcxMCAxcnowIDEwTjAgMW9MMCAxME4wIDFvTDAgMTBOMCAxcnowIFcxMCAxcnowIFcxMCAxcnowIDEwTjAgMW9MMCAxME4wIDFvTDAgMTBOMCAxb0wwIDEwTjAgMXJ6MCBXMTAgMXJ6MCBXMTAgMXJ6MCAxME4wIDFvTDAgMTBOMCAxb0wwIDEwTjAgMXJ6MCBXMTAgMXJ6MCBXMTAgMXJ6MCBXMTAgMXJ6MCAxME4wIDFvTDAgMTBOMCAxb0wwIiwKCQkJIkFzaWEvS2FidWx8QUZUIEFGVHwtNDAgLTR1fDAxfC0xMFFzMCIsCgkJCSJBc2lhL0thbWNoYXRrYXxMTVQgUEVUVCBQRVRUIFBFVFNUIFBFVFNUfC1heS5BIC1iMCAtYzAgLWQwIC1jMHwwMTIzMjMyMzIzMjMyMzIzMjMyMzIzMjQxMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjQxMnwtMVNMS3kuQSBpdlh5LkEgMjNDTDAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTjAgSU0wIHJVMCAxY0wwIDFjUTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFOMCBXTTAiLAoJCQkiQXNpYS9LYXJhY2hpfExNVCBJU1QgSVNUIEtBUlQgUEtUIFBLU1R8LTRzLmMgLTV1IC02dSAtNTAgLTUwIC02MHwwMTIxMzQ1NDU0NTR8LTJ4b3NzLmMgMXFPS1cuYyA3elgwIGV1cDAgTHFNdSAxZnkwMSAxY0wwIGRLMFggMTFiMCAxNjEwIDFqWDAiLAoJCQkiQXNpYS9LYXNoZ2FyfExNVCBYSlR8LTVPLmsgLTYwfDAxfC0xR2d0Ty5rIiwKCQkJIkFzaWEvS2F0aG1hbmR1fExNVCBJU1QgTlBUfC01Ri5nIC01dSAtNUp8MDEyfC0yMUpoRi5nIDJFR01iLmciLAoJCQkiQXNpYS9LaGFuZHlnYXxMTVQgWUFLVCBZQUtUIFlBS1NUIFlBS1NUIFZMQVQgVkxBU1QgVkxBVCBZQUtUfC05Mi5kIC04MCAtOTAgLWEwIC05MCAtYTAgLWIwIC1iMCAtYTB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyMzI0MTIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzI1NjU2NTY1NjU2NTY1NjU3ODJ8LTIxUTkyLmQgcEFwMi5kIDIzQ0wwIDFkYjAgMWNOMCAxZGIwIDFjTjAgMWRiMCAxZGQwIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY04wIElNMCByVTAgMWNMMCAxY1EwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCBxSzAgeU4wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDE3VjAgN3pEMCIsCgkJCSJBc2lhL0tyYXNub3lhcnNrfExNVCBLUkFUIEtSQVQgS1JBU1QgS1JBU1QgS1JBVHwtNmIucSAtNjAgLTcwIC04MCAtNzAgLTgwfDAxMjMyMzIzMjMyMzIzMjMyMzIzMjMyNDEyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzI1MnwtMjFIaWIucSBwckFiLnEgMjNDTDAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTjAgSU0wIHJVMCAxY0wwIDFjUTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgOEh6MCIsCgkJCSJBc2lhL0t1YWxhX0x1bXB1cnxTTVQgTUFMVCBNQUxTVCBNQUxUIE1BTFQgSlNUIE1ZVHwtNlQucCAtNzAgLTdrIC03ayAtN3UgLTkwIC04MHwwMTIzNDU0NnwtMkJnNlQucCAxN2FuVC5wIDdoWEUgZE0wMCAxN2JPIDhGeXUgMXNvMXUiLAoJCQkiQXNpYS9LdWNoaW5nfExNVCBCT1JUIEJPUlQgQk9SVFNUIEpTVCBNWVR8LTdsLmsgLTd1IC04MCAtOGsgLTkwIC04MHwwMTIzMjMyMzIzMjMyMzIzMjQyNXwtMUtJVGwuayBnRGJQLmsgNnludSBBbkUgMU8wayBBbkUgMU5BayBBbkUgMU5BayBBbkUgMU5BayBBbkUgMU8wayBBbkUgMU5BayBBbkUgcEFrIDhGejAgMXNvMTAiLAoJCQkiQXNpYS9LdXdhaXR8TE1UIEFTVHwtM2IuVSAtMzB8MDF8LU1HM2IuVSIsCgkJCSJBc2lhL01hY2FvfExNVCBNT1QgTU9TVCBDU1R8LTd5LmsgLTgwIC05MCAtODB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxM3wtMmxlN3kuayAxWE8zNC5rIDF3bjAgUmQwIDF3bjAgUjl1IDF3cXUgVTEwIDF0ejAgVFZ1IDF0ejAgMTdndSAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNKdSAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjT3UgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNKdSAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgS0VwMCIsCgkJCSJBc2lhL01hZ2FkYW58TE1UIE1BR1QgTUFHVCBNQUdTVCBNQUdTVCBNQUdUfC1hMy5jIC1hMCAtYjAgLWMwIC1iMCAtYzB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyMzI0MTIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjUxfC0xUGNhMy5jIGVVbzMuYyAyM0NMMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNOMCBJTTAgclUwIDFjTDAgMWNRMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCA4SHowIiwKCQkJIkFzaWEvTWFrYXNzYXJ8TE1UIE1NVCBXSVRBIEpTVHwtN1YuQSAtN1YuQSAtODAgLTkwfDAxMjMyfC0yMUpqVi5BIHZmYzAgbXlMVi5BIDhNTDAiLAoJCQkiQXNpYS9NYW5pbGF8UEhUIFBIU1QgSlNUfC04MCAtOTAgLTkwfDAxMDIwMTAxMHwtMWtKSTAgQUwwIGNLMTAgNjVYMCBtWEIwIHZYMCBWSzEwIDFkYjAiLAoJCQkiQXNpYS9NdXNjYXR8TE1UIEdTVHwtM1MubyAtNDB8MDF8LTIxSmZTLm8iLAoJCQkiQXNpYS9OaWNvc2lhfExNVCBFRVQgRUVTVHwtMmQucyAtMjAgLTMwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0xVmMyZC5zIDJhM2NkLnMgMWNMMCAxcXAwIFh6MCAxOUIwIDE5WDAgMWZCMCAxZGIwIDFjcDAgMWNMMCAxZkIwIDE5WDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWZCMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFvMzAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIsCgkJCSJBc2lhL05vdm9rdXpuZXRza3xMTVQgS1JBVCBLUkFUIEtSQVNUIEtSQVNUIE5PVlNUIE5PVlQgTk9WVHwtNU0uTSAtNjAgLTcwIC04MCAtNzAgLTcwIC02MCAtNzB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyMzI0MTIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzI1NjcyfC0xUGN0TS5NIGVVTE0uTSAyM0NMMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNOMCBJTTAgclUwIDFjTDAgMWNRMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU4wIFdNMCA4SHowIiwKCQkJIkFzaWEvTm92b3NpYmlyc2t8TE1UIE5PVlQgTk9WVCBOT1ZTVCBOT1ZTVHwtNXYuRSAtNjAgLTcwIC04MCAtNzB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyMzI0MTIzMjM0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDEyMXwtMjFRbnYuRSBwQUZ2LkUgMjNDTDAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTjAgSU0wIHJVMCAxY0wwIDFjUTAgbWwwIE9zMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgOEh6MCIsCgkJCSJBc2lhL09tc2t8TE1UIE9NU1QgT01TVCBPTVNTVCBPTVNTVCBPTVNUfC00Ui51IC01MCAtNjAgLTcwIC02MCAtNzB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyMzI0MTIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjUyfC0yMjRzUi51IHBNTFIudSAyM0NMMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNOMCBJTTAgclUwIDFjTDAgMWNRMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCA4SHowIiwKCQkJIkFzaWEvT3JhbHxMTVQgVVJBVCBVUkFUIFVSQVNUIFVSQVQgVVJBU1QgT1JBVCBPUkFTVCBPUkFUfC0zcC5vIC00MCAtNTAgLTYwIC02MCAtNTAgLTQwIC01MCAtNTB8MDEyMzQzMjMyMzIzMjMyMzIzMjUxNTE2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY4fC0xUGMzcC5vIGVVbnAubyAyM0NMMCAxZGIwIDFjTTAgMWRjMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTjAgMWNNMCAxZkEwIDJVSzAgRnowIDFjTDAgMWNRMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFJXMCIsCgkJCSJBc2lhL1BvbnRpYW5ha3xMTVQgUE1UIFdJQiBKU1QgV0lCIFdJVEEgV0lCfC03aC5rIC03aC5rIC03dSAtOTAgLTgwIC04MCAtNzB8MDEyMzI0MjU2fC0ydWE3aC5rIFhFMDAgbXVuTC5rIDhSYXUgNmtwdSA0UFh1IHhoY3UgV3FudSIsCgkJCSJBc2lhL1B5b25neWFuZ3xMTVQgS1NUIEpDU1QgSlNUIEtTVHwtOG4gLTh1IC05MCAtOTAgLTkwfDAxMjM0fC0ydW04biA5N1hSIDEyRlh1IGpkQTAiLAoJCQkiQXNpYS9RYXRhcnxMTVQgR1NUIEFTVHwtM3EuOCAtNDAgLTMwfDAxMnwtMjFKZnEuOCAyN0JYcS44IiwKCQkJIkFzaWEvUXl6eWxvcmRhfExNVCBLSVpUIEtJWlQgS0laU1QgS0laVCBRWVpUIFFZWlQgUVlaU1R8LTRsLlEgLTQwIC01MCAtNjAgLTYwIC01MCAtNjAgLTcwfDAxMjM0MzIzMjMyMzIzMjMyMzIzMjMyNTY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3NnwtMVBjNGwuUSBlVW9sLlEgMjNDTDAgMWRiMCAxY00wIDFkYzAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAyVUswIGRDMCByVTAgMWNMMCAxY1EwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAiLAoJCQkiQXNpYS9SYW5nb29ufFJNVCBCVVJUIEpTVCBNTVR8LTZvLkUgLTZ1IC05MCAtNnV8MDEyM3wtMjFKaW8uRSBTbW5TLkUgN2o5dSIsCgkJCSJBc2lhL1JpeWFkaHxMTVQgQVNUfC0zNi5RIC0zMHwwMXwtVHZENi5RIiwKCQkJIkFzaWEvU2FraGFsaW58TE1UIEpDU1QgSlNUIFNBS1QgU0FLU1QgU0FLU1QgU0FLVHwtOXUuTSAtOTAgLTkwIC1iMCAtYzAgLWIwIC1hMHwwMTIzNDM0MzQzNDM0MzQzNDM0MzQzNDM1NjM0MzQzNDM0MzQzNTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjM2fC0yQUdWdS5NIDFpYU11Lk0gamUwMCAxcUZhMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNOMCBJTTAgclUwIDFjTDAgMWNRMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8xMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCA4SHowIiwKCQkJIkFzaWEvU2FtYXJrYW5kfExNVCBTQU1UIFNBTVQgU0FNU1QgVEFTVCBVWlNUIFVaVHwtNHIuUiAtNDAgLTUwIC02MCAtNjAgLTYwIC01MHwwMTIzNDMyMzIzMjMyMzIzMjMyMzIzMjM1NnwtMVBjNHIuUiBlVW9yLlIgMjNDTDAgMWRiMCAxY00wIDFkYzAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDExeDAgYmYwIiwKCQkJIkFzaWEvU2VvdWx8TE1UIEtTVCBKQ1NUIEpTVCBLU1QgS0RUIEtEVHwtOHIuUSAtOHUgLTkwIC05MCAtOTAgLTl1IC1hMHwwMTIzNDE1MTUxNTE1MTUxNTE0NjQ2NHwtMnVtOHIuUSA5N1hWLlEgMTJGWHUgampBMCBrS28wIDJJMHUgT0wwIDFGQjAgUmIwIDFxTjAgVFgwIDF0QjAgVFgwIDF0QjAgVFgwIDF0QjAgVFgwIDJhcDAgMTJGQnUgMTFBMCAxbzAwIDExQTAiLAoJCQkiQXNpYS9TaW5nYXBvcmV8U01UIE1BTFQgTUFMU1QgTUFMVCBNQUxUIEpTVCBTR1QgU0dUfC02VC5wIC03MCAtN2sgLTdrIC03dSAtOTAgLTd1IC04MHwwMTIzNDU0Njd8LTJCZzZULnAgMTdhblQucCA3aFhFIGRNMDAgMTdiTyA4Rnl1IE1zcHUgRFRBMCIsCgkJCSJBc2lhL1NyZWRuZWtvbHltc2t8TE1UIE1BR1QgTUFHVCBNQUdTVCBNQUdTVCBNQUdUIFNSRVR8LWFlLlEgLWEwIC1iMCAtYzAgLWIwIC1jMCAtYjB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyMzI0MTIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjU2fC0xUGNhZS5RIGVVb2UuUSAyM0NMMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNOMCBJTTAgclUwIDFjTDAgMWNRMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCA4SHowIiwKCQkJIkFzaWEvVGFpcGVpfEpXU1QgSlNUIENTVCBDRFR8LTgwIC05MCAtODAgLTkwfDAxMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyfC0xaXc4MCBqb00wIDF5bzAgVHowIDFpcDAgMWpYMCAxY04wIDExYjAgMW9OMCAxMWIwIDFvTjAgMTFiMCAxb04wIDExYjAgMTBOMCAxQlgwIDEwcDAgMXB6MCAxMHAwIDFwejAgMTBwMCAxZGIwIDFkZDAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFjTjAgMWRiMCAxQkIwIE1MMCAxQmQwIE1MMCB1cTEwIDFkYjAgMWNOMCAxZGIwIDk3QjAgQUwwIiwKCQkJIkFzaWEvVGFzaGtlbnR8TE1UIFRBU1QgVEFTVCBUQVNTVCBUQVNTVCBVWlNUIFVaVHwtNEIuYiAtNTAgLTYwIC03MCAtNjAgLTYwIC01MHwwMTIzMjMyMzIzMjMyMzIzMjMyMzIzMjQ1NnwtMVBjNEIuYiBlVW5CLmIgMjNDTDAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDExeTAgYmYwIiwKCQkJIkFzaWEvVGJpbGlzaXxUQk1UIFRCSVQgVEJJVCBUQklTVCBUQklTVCBHRVNUIEdFVCBHRVQgR0VTVHwtMlguYiAtMzAgLTQwIC01MCAtNDAgLTQwIC0zMCAtNDAgLTUwfDAxMjMyMzIzMjMyMzIzMjMyMzIzMjMyNDU2NTY1NjU3ODc4Nzg3ODc4Nzg3ODc4Nzg1Njd8LTFQYzJYLmIgMWpVblguYiBXQ0wwIDFkYjAgMWNOMCAxZGIwIDFjTjAgMWRiMCAxZGQwIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAzeTAgMTlmMCAxY0swIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY00wIDFjTDAgMWZCMCAzTnowIDExQjAgMW5YMCAxMUIwIDFxTDAgV04wIDFxTDAgV04wIDFxTDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIEFuMCBPczAgV00wIiwKCQkJIkFzaWEvVGVocmFufExNVCBUTVQgSVJTVCBJUlNUIElSRFQgSVJEVHwtM3AuSSAtM3AuSSAtM3UgLTQwIC01MCAtNHV8MDEyMzQzMjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTJ8LTJidERwLkkgMWQzYzAgMWh1TFQuSSBUWHUgMXB6MCBzTjAgdkF1IDFjTDAgMWRCMCAxZW4wIHBOQjAgVUwwIDFjTjAgMWR6MCAxY3AwIDFkejAgMWNwMCAxZHowIDFjcDAgMWR6MCAxY3AwIDFkejAgMWNOMCAxZHowIDFjcDAgMWR6MCAxY3AwIDFkejAgMWNwMCAxZHowIDFjTjAgMWR6MCAxY3AwIDFkejAgMWNwMCAxZHowIDFjcDAgMWR6MCAxY04wIDFkejAgNjRwMCAxZHowIDFjTjAgMWR6MCAxY3AwIDFkejAgMWNwMCAxZHowIDFjcDAgMWR6MCAxY04wIDFkejAgMWNwMCAxZHowIDFjcDAgMWR6MCAxY3AwIDFkejAgMWNOMCAxZHowIDFjcDAgMWR6MCAxY3AwIDFkejAgMWNwMCAxZHowIDFjTjAgMWR6MCAxY3AwIDFkejAgMWNwMCAxZHowIDFjcDAgMWR6MCAxY04wIDFkejAgMWNwMCAxZHowIDFjcDAgMWR6MCAxY3AwIDFkejAgMWNwMCAxZHowIDFjTjAgMWR6MCAxY3AwIDFkejAgMWNwMCAxZHowIDFjcDAgMWR6MCAxY04wIDFkejAgMWNwMCAxZHowIDFjcDAgMWR6MCAxY3AwIDFkejAiLAoJCQkiQXNpYS9UaGltYnV8TE1UIElTVCBCVFR8LTVXLkEgLTV1IC02MHwwMTJ8LVN1NVcuQSAxQkdNcy5BIiwKCQkJIkFzaWEvVG9reW98SkNTVCBKU1QgSkRUfC05MCAtOTAgLWEwfDAxMjEyMTIxMjF8LTFpdzkwIHBLcTAgUUwwIDFsQjAgMTNYMCAxekIwIE5YMCAxekIwIE5YMCIsCgkJCSJBc2lhL1VsYWFuYmFhdGFyfExNVCBVTEFUIFVMQVQgVUxBU1R8LTc3LncgLTcwIC04MCAtOTB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzJ8LTJBUEg3LncgMlVrbzcudyBjS24wIDFkYjAgMWRkMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWZCMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgNmhEMCAxMXowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAiLAoJCQkiQXNpYS9Vc3QtTmVyYXxMTVQgWUFLVCBZQUtUIE1BR1NUIE1BR1QgTUFHU1QgTUFHVCBNQUdUIFZMQVQgVkxBVHwtOXcuUyAtODAgLTkwIC1jMCAtYjAgLWIwIC1hMCAtYzAgLWIwIC1hMHwwMTIzNDM0MzQzNDM0MzQzNDM0MzQzNDU2NDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0Nzg5fC0yMVE5dy5TIHBBcHcuUyAyM0NMMCAxZDkwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNOMCBJTTAgclUwIDFjTDAgMWNRMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxN1YwIDd6RDAiLAoJCQkiQXNpYS9WbGFkaXZvc3Rva3xMTVQgVkxBVCBWTEFUIFZMQVNUIFZMQVNUIFZMQVR8LThMLnYgLTkwIC1hMCAtYjAgLWEwIC1iMHwwMTIzMjMyMzIzMjMyMzIzMjMyMzIzMjQxMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyNTJ8LTFTSklMLnYgaXRYTC52IDIzQ0wwIDFkYjAgMWNOMCAxZGIwIDFjTjAgMWRiMCAxZGQwIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY04wIElNMCByVTAgMWNMMCAxY1EwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDhIejAiLAoJCQkiQXNpYS9ZYWt1dHNrfExNVCBZQUtUIFlBS1QgWUFLU1QgWUFLU1QgWUFLVHwtOEMuVyAtODAgLTkwIC1hMCAtOTAgLWEwfDAxMjMyMzIzMjMyMzIzMjMyMzIzMjMyNDEyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzI1MnwtMjFROEMuVyBwQW9DLlcgMjNDTDAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTjAgSU0wIHJVMCAxY0wwIDFjUTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgOEh6MCIsCgkJCSJBc2lhL1lla2F0ZXJpbmJ1cmd8TE1UIFBNVCBTVkVUIFNWRVQgU1ZFU1QgU1ZFU1QgWUVLVCBZRUtTVCBZRUtUfC00Mi54IC0zSi41IC00MCAtNTAgLTYwIC01MCAtNTAgLTYwIC02MHwwMTIzNDM0MzQzNDM0MzQzNDM0MzQzNDM1MjY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njg2fC0yYWc0Mi54IDdtUWgucyBxQnZKLjUgMjNDTDAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTjAgSU0wIHJVMCAxY0wwIDFjUTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgOEh6MCIsCgkJCSJBc2lhL1llcmV2YW58TE1UIFlFUlQgWUVSVCBZRVJTVCBZRVJTVCBBTVNUIEFNVCBBTVQgQU1TVHwtMlcgLTMwIC00MCAtNTAgLTQwIC00MCAtMzAgLTQwIC01MHwwMTIzMjMyMzIzMjMyMzIzMjMyMzIzMjQ1NjU2NTY1NjU3ODc4Nzg3ODc4Nzg3ODc4Nzg3ODc4Nzg3ODc4Nzg3fC0xUGMyVyAxalVuVyBXQ0wwIDFkYjAgMWNOMCAxZGIwIDFjTjAgMWRiMCAxZGQwIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxYW0wIDJyMCAxY0owIDFjTDAgMWNRMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgM0ZiMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAiLAoJCQkiQXRsYW50aWMvQXpvcmVzfEhNVCBBWk9UIEFaT1NUIEFaT01UIEFaT1QgQVpPU1QgV0VUfDFTLncgMjAgMTAgMCAxMCAwIDB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMzIxMjMyMTIzMjEyMzIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjE0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTY1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTR8LTJsZFc1LnMgYVBYNS5zIFNwMCBMWDAgMXZjMCBUYzAgMXVNMCBTTTAgMXZjMCBUYzAgMXZjMCBTTTAgMXZjMCA2NjAwIDFjbzAgM0UwMCAxN2MwIDFmQTAgMWEwMCAxaW8wIDFhMDAgMWlvMCAxN2MwIDNJMDAgMTdjMCAxY00wIDFjTTAgM0ZjMCAxY00wIDFhMDAgMWZBMCAxaW8wIDE3YzAgMWNNMCAxY00wIDFhMDAgMWZBMCAxaW8wIDFxTTAgRGMwIDF0QTAgMWNNMCAxZGMwIDE0MDAgZ0wwIElNMCBzMTAgVTAwIGRYMCBSYzAgcGQwIFJjMCBnTDAgT28wIHBkMCBSYzAgZ0wwIE9vMCBwZDAgMTRvMCAxY00wIDFjUDAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDNDbzAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgcUlsMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTjAgMWNMMCAxY04wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNOMCAxY0wwIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTDAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAiLAoJCQkiQXRsYW50aWMvQmVybXVkYXxMTVQgQVNUIEFEVHw0ai5pIDQwIDMwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTFCblJFLkcgMUxUYkUuRyAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQXRsYW50aWMvQ2FuYXJ5fExNVCBDQU5UIFdFVCBXRVNUfDExLkEgMTAgMCAtMTB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzJ8LTFVdGFXLm8gWFBBVy5vIDFsQUswIDFhMTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIsCgkJCSJBdGxhbnRpYy9DYXBlX1ZlcmRlfExNVCBDVlQgQ1ZTVCBDVlR8MXkuNCAyMCAxMCAxMHwwMTIxM3wtMnhvbXAuVSAxcU9NcC5VIDd6WDAgMWRqZjAiLAoJCQkiQXRsYW50aWMvRmFlcm9lfExNVCBXRVQgV0VTVHxyLjQgMCAtMTB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTJ1U253LlUgMldnb3cuVSAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIsCgkJCSJBdGxhbnRpYy9NYWRlaXJhfEZNVCBNQURUIE1BRFNUIE1BRE1UIFdFVCBXRVNUfDE3LkEgMTAgMCAtMTAgMCAtMTB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMzIxMjMyMTIzMjEyMzIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjE0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTR8LTJsZFdRLm8gYVBXUS5vIFNwMCBMWDAgMXZjMCBUYzAgMXVNMCBTTTAgMXZjMCBUYzAgMXZjMCBTTTAgMXZjMCA2NjAwIDFjbzAgM0UwMCAxN2MwIDFmQTAgMWEwMCAxaW8wIDFhMDAgMWlvMCAxN2MwIDNJMDAgMTdjMCAxY00wIDFjTTAgM0ZjMCAxY00wIDFhMDAgMWZBMCAxaW8wIDE3YzAgMWNNMCAxY00wIDFhMDAgMWZBMCAxaW8wIDFxTTAgRGMwIDF0QTAgMWNNMCAxZGMwIDE0MDAgZ0wwIElNMCBzMTAgVTAwIGRYMCBSYzAgcGQwIFJjMCBnTDAgT28wIHBkMCBSYzAgZ0wwIE9vMCBwZDAgMTRvMCAxY00wIDFjUDAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDNDbzAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgcUlsMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTjAgMWNMMCAxY04wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNOMCAxY0wwIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAiLAoJCQkiQXRsYW50aWMvUmV5a2phdmlrfFJNVCBJU1QgSVNTVCBHTVR8MXIuTSAxMCAwIDB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTN8LTJ1V213LmMgbWZhdy5jIDFCZDAgTUwwIDFMQjAgTkxYMCAxcGUwIHpkMCAxRUwwIExBMCAxQzAwIE9vMCAxd28wIFJjMCAxd28wIFJjMCAxd28wIFJjMCAxemMwIE9vMCAxemMwIDE0bzAgMWxjMCAxNG8wIDFsYzAgMTRvMCAxbzAwIDExQTAgMWxjMCAxNG8wIDFvMDAgMTRvMCAxbGMwIDE0bzAgMWxjMCAxNG8wIDFsYzAgMTRvMCAxbGMwIDE0bzAgMW8wMCAxNG8wIDFsYzAgMTRvMCAxbGMwIDE0bzAgMWxjMCAxNG8wIDFsYzAgMTRvMCAxbGMwIDE0bzAgMW8wMCAxNG8wIDFsYzAgMTRvMCAxbGMwIDE0bzAgMWxjMCAxNG8wIDFsYzAgMTRvMCAxbzAwIDE0bzAiLAoJCQkiQXRsYW50aWMvU291dGhfR2VvcmdpYXxHU1R8MjB8MHwiLAoJCQkiQXRsYW50aWMvU3RhbmxleXxTTVQgRktUIEZLU1QgRktUIEZLU1R8M1AubyA0MCAzMCAzMCAyMHwwMTIxMjEyMTIxMjEyMTM0MzQzMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyfC0ya0p3OC5BIDEyYkE4LkEgMTlYMCAxZkIwIDE5WDAgMWlwMCAxOVgwIDFmQjAgMTlYMCAxZkIwIDE5WDAgMWZCMCBDbjAgMUNjMTAgV0wwIDFxTDAgVTEwIDF0ejAgVTEwIDFxTTAgV04wIDFxTDAgV04wIDFxTDAgV04wIDFxTDAgV04wIDF0ejAgVTEwIDF0ejAgV04wIDFxTDAgV04wIDFxTDAgV04wIDFxTDAgV04wIDFxTDAgV04wIDF0ejAgV04wIDFxTDAgV04wIDFxTDAgV04wIDFxTDAgV04wIDFxTDAgV04wIDFxTjAgVTEwIDF3bjAgUmQwIDF3bjAgVTEwIDF0ejAgVTEwIDF0ejAgVTEwIDF0ejAgVTEwIDF0ejAgVTEwIDF3bjAgVTEwIDF0ejAgVTEwIDF0ejAgVTEwIiwKCQkJIkF1c3RyYWxpYS9BQ1R8QUVTVCBBRURUfC1hMCAtYjB8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMXwtMjkzbFggeGNYIDEwamQwIHlMMCAxY04wIDFjTDAgMWZCMCAxOVgwIDE3YzEwIExBMCAxQzAwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIFJjMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIDE0bzAgMW8wMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBVMDAgMXFNMCBXTTAgMXRBMCBXTTAgMXRBMCBVMDAgMXRBMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBSYzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDExQTAgMW8wMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCBXTTAgMXFNMCAxNG8wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCIsCgkJCSJBdXN0cmFsaWEvQWRlbGFpZGV8QUNTVCBBQ0RUfC05dSAtYXV8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMXwtMjkzbHQgeGNYIDEwamQwIHlMMCAxY04wIDFjTDAgMWZCMCAxOVgwIDE3YzEwIExBMCAxQzAwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIFJjMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIFJjMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIFUwMCAxcU0wIFdNMCAxdEEwIFdNMCAxdEEwIFUwMCAxdEEwIFUwMCAxdEEwIE9vMCAxemMwIFdNMCAxcU0wIFJjMCAxemMwIFUwMCAxdEEwIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgV00wIDFxTTAgMTRvMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAiLAoJCQkiQXVzdHJhbGlhL0JyaXNiYW5lfEFFU1QgQUVEVHwtYTAgLWIwfDAxMDEwMTAxMDEwMTAxMDEwfC0yOTNsWCB4Y1ggMTBqZDAgeUwwIDFjTjAgMWNMMCAxZkIwIDE5WDAgMTdjMTAgTEEwIEgxQTAgT28wIDF6YzAgT28wIDF6YzAgT28wIiwKCQkJIkF1c3RyYWxpYS9Ccm9rZW5fSGlsbHxBQ1NUIEFDRFR8LTl1IC1hdXwwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxfC0yOTNsdCB4Y1ggMTBqZDAgeUwwIDFjTjAgMWNMMCAxZkIwIDE5WDAgMTdjMTAgTEEwIDFDMDAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgUmMwIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgMTRvMCAxbzAwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIFUwMCAxcU0wIFdNMCAxdEEwIFdNMCAxdEEwIFUwMCAxdEEwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIFJjMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgV00wIDFxTTAgMTRvMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAiLAoJCQkiQXVzdHJhbGlhL0N1cnJpZXxBRVNUIEFFRFR8LWEwIC1iMHwwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxfC0yOUU4MCAxOVgwIDEwamQwIHlMMCAxY04wIDFjTDAgMWZCMCAxOVgwIDE3YzEwIExBMCAxQzAwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIFJjMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIDExQTAgMXFNMCBXTTAgMXFNMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXdvMCBXTTAgMXRBMCBXTTAgMXRBMCBVMDAgMXRBMCBVMDAgMXRBMCAxMUEwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFjTTAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDExQTAgMW8wMCAxaW8wIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxY00wIDFjTTAgMWEwMCAxaW8wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIiwKCQkJIkF1c3RyYWxpYS9EYXJ3aW58QUNTVCBBQ0RUfC05dSAtYXV8MDEwMTAxMDEwfC0yOTNsdCB4Y1ggMTBqZDAgeUwwIDFjTjAgMWNMMCAxZkIwIDE5WDAiLAoJCQkiQXVzdHJhbGlhL0V1Y2xhfEFDV1NUIEFDV0RUfC04SiAtOUp8MDEwMTAxMDEwMTAxMDEwMTAxMHwtMjkza0kgeGNYIDEwamQwIHlMMCAxY04wIDFjTDAgMWdTcDAgT28wIGw1QTAgT28wIGlKQTAgRzAwIHpVMDAgSU0wIDFxTTAgMTFBMCAxbzAwIDExQTAiLAoJCQkiQXVzdHJhbGlhL0hvYmFydHxBRVNUIEFFRFR8LWEwIC1iMHwwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDF8LTI5RTgwIDE5WDAgMTBqZDAgeUwwIDFjTjAgMWNMMCAxZkIwIDE5WDAgVmZCMCAxY00wIDFvMDAgUmMwIDF3bzAgUmMwIDF3bzAgVTAwIDF3bzAgTEEwIDFDMDAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgUmMwIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgMTFBMCAxcU0wIFdNMCAxcU0wIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxd28wIFdNMCAxdEEwIFdNMCAxdEEwIFUwMCAxdEEwIFUwMCAxdEEwIDExQTAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWNNMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMTFBMCAxbzAwIDFpbzAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFjTTAgMWNNMCAxYTAwIDFpbzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAiLAoJCQkiQXVzdHJhbGlhL0xISXxBRVNUIExIU1QgTEhEVCBMSERUfC1hMCAtYXUgLWJ1IC1iMHwwMTIxMjEyMTIxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzfHJhQzAgMXpkdSBSYjAgMXpkMCBPbjAgMXpkMCBPbjAgMXpkMCBPbjAgMXpkMCBUWHUgMXFNdSBXTHUgMXRBdSBXTHUgMXRBdSBUWHUgMXRBdSBPbnUgMXpjdSBPbnUgMXpjdSBPbnUgMXpjdSBSYnUgMXpjdSBPbnUgMXpjdSBPbnUgMXpjdSAxMXp1IDFvMHUgMTF6dSAxbzB1IDExenUgMW8wdSAxMXp1IDFxTXUgV0x1IDExQXUgMW5YdSAxcU11IDExenUgMW8wdSAxMXp1IDFvMHUgMTF6dSAxcU11IFdMdSAxcU11IDExenUgMW8wdSBXTHUgMXFNdSAxNG51IDFjTXUgMWNMdSAxY011IDFjTHUgMWNNdSAxY0x1IDFjTXUgMWNMdSAxZkF1IDFjTHUgMWNNdSAxY0x1IDFjTXUgMWNMdSAxY011IDFjTHUgMWNNdSAxY0x1IDFjTXUgMWNMdSAxZkF1IDFjTHUgMWNNdSAxY0x1IDFjTXUgMWNMdSAxY011IDFjTHUgMWNNdSAxY0x1IDFjTXUgMWZ6dSAxY011IDFjTHUgMWNNdSAxY0x1IDFjTXUgMWNMdSAxY011IDFjTHUgMWNNdSAxY0x1IDFmQXUgMWNMdSAxY011IDFjTHUgMWNNdSAxY0x1IDFjTXUgMWNMdSAxY011IDFjTHUgMWNNdSAxY0x1IDFmQXUgMWNMdSAxY011IDFjTHUgMWNNdSIsCgkJCSJBdXN0cmFsaWEvTGluZGVtYW58QUVTVCBBRURUfC1hMCAtYjB8MDEwMTAxMDEwMTAxMDEwMTAxMDEwfC0yOTNsWCB4Y1ggMTBqZDAgeUwwIDFjTjAgMWNMMCAxZkIwIDE5WDAgMTdjMTAgTEEwIEgxQTAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgUmMwIDF6YzAgT28wIiwKCQkJIkF1c3RyYWxpYS9NZWxib3VybmV8QUVTVCBBRURUfC1hMCAtYjB8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMXwtMjkzbFggeGNYIDEwamQwIHlMMCAxY04wIDFjTDAgMWZCMCAxOVgwIDE3YzEwIExBMCAxQzAwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIFJjMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIFJjMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIFUwMCAxcU0wIFdNMCAxcU0wIDExQTAgMXRBMCBVMDAgMXRBMCBVMDAgMXRBMCBPbzAgMXpjMCBPbzAgMXpjMCBSYzAgMXpjMCBPbzAgMXpjMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDExQTAgMW8wMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCBXTTAgMXFNMCAxNG8wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCIsCgkJCSJBdXN0cmFsaWEvUGVydGh8QVdTVCBBV0RUfC04MCAtOTB8MDEwMTAxMDEwMTAxMDEwMTAxMHwtMjkzalggeGNYIDEwamQwIHlMMCAxY04wIDFjTDAgMWdTcDAgT28wIGw1QTAgT28wIGlKQTAgRzAwIHpVMDAgSU0wIDFxTTAgMTFBMCAxbzAwIDExQTAiLAoJCQkiQ0VUfENFVCBDRVNUfC0xMCAtMjB8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTB8LTJhRmUwIDExZDAgMWlPMCAxMUEwIDFvMDAgMTFBMCBRcmMwIDZpMDAgV00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMTZNMCAxZ01NMCAxYTAwIDFmQTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxYTAwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAiLAoJCQkiQ1NUNkNEVHxDU1QgQ0RUIENXVCBDUFR8NjAgNTAgNTAgNTB8MDEwMTAyMzAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwfC0yNjFzMCAxblgwIDExQjAgMW5YMCBTZ04wIDh4MzAgaXcwIFF3TjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCBzMTAgMVZ6MCBMQjAgMUJYMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQ2hpbGUvRWFzdGVySXNsYW5kfEVNVCBFQVNTVCBFQVNUIEVBU1QgRUFTU1R8N2gucyA2MCA3MCA2MCA1MHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzR8LTF1U2dHLncgbkhVRy53IG9wMCA5VUswIFJYQjAgV0wwIDF6ZDAgT24wIDFpcDAgMTF6MCAxbzEwIDExejAgMXFOMCBXTDAgMWxkMCAxNG4wIDFxTjAgV0wwIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgV0wwIDFxTjAgV0wwIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIFdMMCAxcU4wIDFjTDAgMWNOMCAxMXowIDFsZDAgMTRuMCAxcU4wIDExejAgMWNOMCAxOVgwIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDE3YjAgMWlwMCAxMXowIDFpcDAgMWZ6MCAxZkIwIDExejAgMXFOMCBXTDAgMXFOMCBXTDAgMXFOMCBXTDAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCBXTDAgMXFOMCAxN2IwIDFpcDAgMTF6MCAxbzEwIDE5WDAgMWZCMCAxblgwIEcxMCAxRUwwIE9wMCAxemIwIFJkMCAxd24wIFJkMCAxd24wIFJkMCAxd24wIFJkMCAxd24wIFJkMCAxemIwIE9wMCAxemIwIFJkMCAxd24wIFJkMCAxd24wIFJkMCAxd24wIFJkMCAxd24wIFJkMCAxemIwIFJkMCAxd24wIFJkMCAxd24wIFJkMCAxd24wIFJkMCAxd24wIFJkMCAxemIwIE9wMCAxemIwIFJkMCAxd24wIFJkMCAxd24wIFJkMCAxd24wIFJkMCAxd24wIFJkMCAxemIwIE9wMCAxemIwIFJkMCAxd24wIFJkMCIsCgkJCSJFRVR8RUVUIEVFU1R8LTIwIC0zMHwwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTB8aERCMCAxYTAwIDFmQTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxYTAwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAiLAoJCQkiRVNUfEVTVHw1MHwwfCIsCgkJCSJFU1Q1RURUfEVTVCBFRFQgRVdUIEVQVHw1MCA0MCA0MCA0MHwwMTAxMDIzMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTB8LTI2MXQwIDFuWDAgMTFCMCAxblgwIFNnTjAgOHg0MCBpdjAgUXdOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIHMxMCAxVnowIExCMCAxQlgwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJFaXJlfERNVCBJU1QgR01UIEJTVCBJU1R8cC5sIC15LkQgMCAtMTAgLTEwfDAxMjMyMzIzMjMyMzI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyfC0yYXg5eS5EIFJjMCAxZnp5LkQgMTRNMCAxZmMwIDFnMDAgMWNvMCAxZGMwIDFjbzAgMW9vMCAxNDAwIDFkYzAgMTlBMCAxaW8wIDFpbzAgV00wIDFvMDAgMTRvMCAxbzAwIDE3YzAgMWlvMCAxN2MwIDFmQTAgMWEwMCAxbGMwIDE3YzAgMWlvMCAxN2MwIDFmQTAgMWEwMCAxaW8wIDE3YzAgMWlvMCAxN2MwIDFmQTAgMWNNMCAxaW8wIDE3YzAgMWZBMCAxYTAwIDFpbzAgMTdjMCAxaW8wIDE3YzAgMWZBMCAxYTAwIDFpbzAgMXFNMCBEYzAgZzVYMCAxNHAwIDF3bjAgMTdkMCAxaW8wIDExQTAgMW8wMCAxN2MwIDFmQTAgMWEwMCAxZkEwIDFjTTAgMWZBMCAxYTAwIDE3YzAgMWZBMCAxYTAwIDFpbzAgMTdjMCAxbGMwIDE3YzAgMWZBMCAxYTAwIDFpbzAgMTdjMCAxaW8wIDE3YzAgMWZBMCAxYTAwIDFhMDAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDF0QTAgSU0wIDkwbzAgVTAwIDF0QTAgVTAwIDF0QTAgVTAwIDF0QTAgVTAwIDF0QTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDF0QTAgVTAwIDF0QTAgVTAwIDF0QTAgMTF6MCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxNG8wIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIiwKCQkJIkV0Yy9HTVQrMHxHTVR8MHwwfCIsCgkJCSJFdGMvR01UKzF8R01UKzF8MTB8MHwiLAoJCQkiRXRjL0dNVCsxMHxHTVQrMTB8YTB8MHwiLAoJCQkiRXRjL0dNVCsxMXxHTVQrMTF8YjB8MHwiLAoJCQkiRXRjL0dNVCsxMnxHTVQrMTJ8YzB8MHwiLAoJCQkiRXRjL0dNVCsyfEdNVCsyfDIwfDB8IiwKCQkJIkV0Yy9HTVQrM3xHTVQrM3wzMHwwfCIsCgkJCSJFdGMvR01UKzR8R01UKzR8NDB8MHwiLAoJCQkiRXRjL0dNVCs1fEdNVCs1fDUwfDB8IiwKCQkJIkV0Yy9HTVQrNnxHTVQrNnw2MHwwfCIsCgkJCSJFdGMvR01UKzd8R01UKzd8NzB8MHwiLAoJCQkiRXRjL0dNVCs4fEdNVCs4fDgwfDB8IiwKCQkJIkV0Yy9HTVQrOXxHTVQrOXw5MHwwfCIsCgkJCSJFdGMvR01ULTF8R01ULTF8LTEwfDB8IiwKCQkJIkV0Yy9HTVQtMTB8R01ULTEwfC1hMHwwfCIsCgkJCSJFdGMvR01ULTExfEdNVC0xMXwtYjB8MHwiLAoJCQkiRXRjL0dNVC0xMnxHTVQtMTJ8LWMwfDB8IiwKCQkJIkV0Yy9HTVQtMTN8R01ULTEzfC1kMHwwfCIsCgkJCSJFdGMvR01ULTE0fEdNVC0xNHwtZTB8MHwiLAoJCQkiRXRjL0dNVC0yfEdNVC0yfC0yMHwwfCIsCgkJCSJFdGMvR01ULTN8R01ULTN8LTMwfDB8IiwKCQkJIkV0Yy9HTVQtNHxHTVQtNHwtNDB8MHwiLAoJCQkiRXRjL0dNVC01fEdNVC01fC01MHwwfCIsCgkJCSJFdGMvR01ULTZ8R01ULTZ8LTYwfDB8IiwKCQkJIkV0Yy9HTVQtN3xHTVQtN3wtNzB8MHwiLAoJCQkiRXRjL0dNVC04fEdNVC04fC04MHwwfCIsCgkJCSJFdGMvR01ULTl8R01ULTl8LTkwfDB8IiwKCQkJIkV0Yy9VQ1R8VUNUfDB8MHwiLAoJCQkiRXRjL1VUQ3xVVEN8MHwwfCIsCgkJCSJFdXJvcGUvQW1zdGVyZGFtfEFNVCBOU1QgTkVTVCBORVQgQ0VTVCBDRVR8LWoudyAtMWoudyAtMWsgLWsgLTIwIC0xMHwwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTIzMjMyMzQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDV8LTJhRmNqLncgMTFiMCAxaVAwIDExQTAgMWlvMCAxY00wIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFjbzAgMWlvMCAxeW8wIFBjMCAxYTAwIDFmQTAgMUJjMCBNbzAgMXRjMCBVbzAgMXRBMCBVMDAgMXVvMCBXMDAgMXMwMCBWQTAgMXNvMCBWYzAgMXNNMCBVTTAgMXdvMCBSYzAgMXUwMCBXbzAgMXJBMCBXMDAgMXMwMCBWQTAgMXNNMCBVTTAgMXcwMCBmVjAgQkNYLncgMXRBMCBVMDAgMXUwMCBXbzAgMXNtMCA2MDFrIFdNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDE2TTAgMWdNTTAgMWEwMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFmQTAgMWEwMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIiwKCQkJIkV1cm9wZS9BbmRvcnJhfFdFVCBDRVQgQ0VTVHwwIC0xMCAtMjB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC1VQkEwIDF4SU4wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAiLAoJCQkiRXVyb3BlL0F0aGVuc3xBTVQgRUVUIEVFU1QgQ0VTVCBDRVR8LTF5LlEgLTIwIC0zMCAtMjAgLTEwfDAxMjEyMzQzNDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMmE2MXguUSBDTmJ4LlEgbW4wIGtVMTAgOWIwIDNFczAgWGEwIDFmYjAgMWRkMCBrM1gwIE56MCBTQ3AwIDF2YzAgU08wIDFjTTAgMWEwMCAxYW8wIDFmYzAgMWExMCAxZkcwIDFjZzAgMWRYMCAxYlgwIDFjUTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAiLAoJCQkiRXVyb3BlL0JlbGZhc3R8R01UIEJTVCBCRFNUfDAgLTEwIC0yMHwwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTIxMjEyMTIxMjEwMTAxMjEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwfC0yYXhhMCBSYzAgMWZBMCAxNE0wIDFmYzAgMWcwMCAxY28wIDFkYzAgMWNvMCAxb28wIDE0MDAgMWRjMCAxOUEwIDFpbzAgMWlvMCBXTTAgMW8wMCAxNG8wIDFvMDAgMTdjMCAxaW8wIDE3YzAgMWZBMCAxYTAwIDFsYzAgMTdjMCAxaW8wIDE3YzAgMWZBMCAxYTAwIDFpbzAgMTdjMCAxaW8wIDE3YzAgMWZBMCAxY00wIDFpbzAgMTdjMCAxZkEwIDFhMDAgMWlvMCAxN2MwIDFpbzAgMTdjMCAxZkEwIDFhMDAgMWlvMCAxcU0wIERjMCAyUnowIERjMCAxemMwIE9vMCAxemMwIFJjMCAxd28wIDE3YzAgMWlNMCBGQTAgeEIwIDFmQTAgMWEwMCAxNG8wIGJiMCBMQTAgeEIwIFJjMCAxd28wIDExQTAgMW8wMCAxN2MwIDFmQTAgMWEwMCAxZkEwIDFjTTAgMWZBMCAxYTAwIDE3YzAgMWZBMCAxYTAwIDFpbzAgMTdjMCAxbGMwIDE3YzAgMWZBMCAxYTAwIDFpbzAgMTdjMCAxaW8wIDE3YzAgMWZBMCAxYTAwIDFhMDAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDF0QTAgSU0wIDkwbzAgVTAwIDF0QTAgVTAwIDF0QTAgVTAwIDF0QTAgVTAwIDF0QTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDF0QTAgVTAwIDF0QTAgVTAwIDF0QTAgMTF6MCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxNG8wIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIiwKCQkJIkV1cm9wZS9CZWxncmFkZXxDRVQgQ0VTVHwtMTAgLTIwfDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwfC0xOVJDMCAzSVAwIFdNMCAxZkEwIDFjTTAgMWNNMCAxcmMwIFFvMCAxdm1vMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAiLAoJCQkiRXVyb3BlL0JlcmxpbnxDRVQgQ0VTVCBDRU1UfC0xMCAtMjAgLTMwfDAxMDEwMTAxMDEwMTAxMjEwMTAxMjEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwfC0yYUZlMCAxMWQwIDFpTzAgMTFBMCAxbzAwIDExQTAgUXJjMCA2aTAwIFdNMCAxZkEwIDFjTTAgMWNNMCAxY00wIGtMMCBOYzAgbTEwIFdNMCAxYW8wIDFjcDAgZFgwIGp6MCBEZDAgMWlvMCAxN2MwIDFmQTAgMWEwMCAxZWhBMCAxYTAwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAiLAoJCQkiRXVyb3BlL0JyYXRpc2xhdmF8Q0VUIENFU1R8LTEwIC0yMHwwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTB8LTJhRmUwIDExZDAgMWlPMCAxMUEwIDFvMDAgMTFBMCBRcmMwIDZpMDAgV00wIDFmQTAgMWNNMCAxNk0wIDFsYzAgMXRBMCAxN0EwIDExYzAgMWlvMCAxN2MwIDFpbzAgMTdjMCAxZmMwIDFhbzAgMWJOYzAgMWNNMCAxZkEwIDFhMDAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIsCgkJCSJFdXJvcGUvQnJ1c3NlbHN8V0VUIENFVCBDRVNUIFdFU1R8MCAtMTAgLTIwIC0xMHwwMTIxMjEyMTAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0yZWhjMCAzelgwIDExYzAgMWlPMCAxMUEwIDFvMDAgMTFBMCBteTAgSWMwIDFxTTAgUmMwIDFFTTAgVU0wIDF1MDAgMTBvMCAxaW8wIDFpbzAgMTdjMCAxYTAwIDFmQTAgMWNNMCAxY00wIDFpbzAgMTdjMCAxZkEwIDFhMDAgMWlvMCAxYTMwIDFpbzAgMTdjMCAxZkEwIDFhMDAgMWlvMCAxN2MwIDFjTTAgMWNNMCAxYTAwIDFpbzAgMWNNMCAxY00wIDFhMDAgMWZBMCAxaW8wIDE3YzAgMWNNMCAxY00wIDFhMDAgMWZBMCAxaW8wIDFxTTAgRGMwIHkwMCA1V24wIFdNMCAxZkEwIDFjTTAgMTZNMCAxaU0wIDE2TTAgMUMwMCBVbzAgMWVlbzAgMWEwMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFmQTAgMWEwMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIiwKCQkJIkV1cm9wZS9CdWNoYXJlc3R8Qk1UIEVFVCBFRVNUfC0xSS5vIC0yMCAtMzB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMXhBcEkubyAyMExJLm8gUkEwIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxQXhjMCBPbjAgMWZBMCAxYTEwIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY0swIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTDAgMWNOMCAxY0wwIDFmQjAgMW5YMCAxMUUwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAiLAoJCQkiRXVyb3BlL0J1ZGFwZXN0fENFVCBDRVNUfC0xMCAtMjB8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMmFGZTAgMTFkMCAxaU8wIDExQTAgMWlwMCAxN2IwIDFvcDAgMXRiMCBRMm0wIDNOZTAgV00wIDFmQTAgMWNNMCAxY00wIDFvSjAgMWRjMCAxMDMwIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFhMDAgMWlNMCAxZkEwIDhIYTAgUmIwIDF3TjAgUmIwIDFCQjAgTHowIDFDMjAgTEIwIFNOWDAgMWExMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIiwKCQkJIkV1cm9wZS9CdXNpbmdlbnxDRVQgQ0VTVHwtMTAgLTIwfDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwfC0xOUxjMCAxMUEwIDFvMDAgMTFBMCAxeEcxMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIsCgkJCSJFdXJvcGUvQ2hpc2luYXV8Q01UIEJNVCBFRVQgRUVTVCBDRVNUIENFVCBNU0sgTVNEfC0xVCAtMUkubyAtMjAgLTMwIC0yMCAtMTAgLTMwIC00MHwwMTIzMjMyMzIzMjMyMzIzMjMyMzQ1NDU0Njc2NzY3Njc2NzY3Njc2NzY3NjIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyfC0yNmpkVCB3R01hLkEgMjBMSS5vIFJBMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMjdBMCAyZW4wIDM5ZzAgV00wIDFmQTAgMWNNMCBWOTAgMXQ3ejAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDF0eTAgMmJEMCAxY00wIDFjSzAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxZkIwIDFuWDAgMTFFMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIiwKCQkJIkV1cm9wZS9Db3BlbmhhZ2VufENFVCBDRVNUfC0xMCAtMjB8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMmF6QzAgVHowIFZ1TzAgNjBxMCBXTTAgMWZBMCAxY00wIDFjTTAgMWNNMCBTMDAgMUhBMCBOYzAgMUMwMCBEYzAgMU5jMCBBbzAgMWg1QTAgMWEwMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIiwKCQkJIkV1cm9wZS9HaWJyYWx0YXJ8R01UIEJTVCBCRFNUIENFVCBDRVNUfDAgLTEwIC0yMCAtMTAgLTIwfDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMjEyMTIxMjEyMTAxMDEyMTAxMDEwMTAxMDEwMTAxMDEwMTAzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0M3wtMmF4YTAgUmMwIDFmQTAgMTRNMCAxZmMwIDFnMDAgMWNvMCAxZGMwIDFjbzAgMW9vMCAxNDAwIDFkYzAgMTlBMCAxaW8wIDFpbzAgV00wIDFvMDAgMTRvMCAxbzAwIDE3YzAgMWlvMCAxN2MwIDFmQTAgMWEwMCAxbGMwIDE3YzAgMWlvMCAxN2MwIDFmQTAgMWEwMCAxaW8wIDE3YzAgMWlvMCAxN2MwIDFmQTAgMWNNMCAxaW8wIDE3YzAgMWZBMCAxYTAwIDFpbzAgMTdjMCAxaW8wIDE3YzAgMWZBMCAxYTAwIDFpbzAgMXFNMCBEYzAgMlJ6MCBEYzAgMXpjMCBPbzAgMXpjMCBSYzAgMXdvMCAxN2MwIDFpTTAgRkEwIHhCMCAxZkEwIDFhMDAgMTRvMCBiYjAgTEEwIHhCMCBSYzAgMXdvMCAxMUEwIDFvMDAgMTdjMCAxZkEwIDFhMDAgMWZBMCAxY00wIDFmQTAgMWEwMCAxN2MwIDFmQTAgMWEwMCAxaW8wIDE3YzAgMWxjMCAxN2MwIDFmQTAgMTBKejAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIsCgkJCSJFdXJvcGUvSGVsc2lua2l8SE1UIEVFVCBFRVNUfC0xRC5OIC0yMCAtMzB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMVd1TkQuTiBPVUxELk4gMWRBMCAxeEdxMCAxY00wIDFjTTAgMWNNMCAxY04wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIsCgkJCSJFdXJvcGUvS2FsaW5pbmdyYWR8Q0VUIENFU1QgQ0VUIENFU1QgTVNLIE1TRCBFRVNUIEVFVCBGRVR8LTEwIC0yMCAtMjAgLTMwIC0zMCAtNDAgLTMwIC0yMCAtMzB8MDEwMTAxMDEwMTAxMDIzMjQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc4N3wtMmFGZTAgMTFkMCAxaU8wIDExQTAgMW8wMCAxMUEwIFFyYzAgNmkwMCBXTTAgMWZBMCAxY00wIDFjTTAgQW0wIExiMCAxZW4wIG9wMCAxcE56MCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNOMCAxY0owIDFjTDAgMWNRMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCA4SHowIiwKCQkJIkV1cm9wZS9LaWV2fEtNVCBFRVQgTVNLIENFU1QgQ0VUIE1TRCBFRVNUfC0yMi40IC0yMCAtMzAgLTIwIC0xMCAtNDAgLTMwfDAxMjM0MzQyNTI1MjUyNTI1MjUyNTI1MjUyNTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjF8LTFQYzIyLjQgZVVvMi40IHJuejAgMkhnMCBXTTAgMWZBMCBkYTAgMXY0bTAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgRGIwIDMyMjAgMWNLMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNRMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAiLAoJCQkiRXVyb3BlL0xpc2JvbnxMTVQgV0VUIFdFU1QgV0VNVCBDRVQgQ0VTVHxBLkogMCAtMTAgLTIwIC0xMCAtMjB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMzIxMjMyMTIzMjEyMzIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjE0MTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTI0NTQ1NDU0MjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0ybGRYbi5mIGFQV24uZiBTcDAgTFgwIDF2YzAgVGMwIDF1TTAgU00wIDF2YzAgVGMwIDF2YzAgU00wIDF2YzAgNjYwMCAxY28wIDNFMDAgMTdjMCAxZkEwIDFhMDAgMWlvMCAxYTAwIDFpbzAgMTdjMCAzSTAwIDE3YzAgMWNNMCAxY00wIDNGYzAgMWNNMCAxYTAwIDFmQTAgMWlvMCAxN2MwIDFjTTAgMWNNMCAxYTAwIDFmQTAgMWlvMCAxcU0wIERjMCAxdEEwIDFjTTAgMWRjMCAxNDAwIGdMMCBJTTAgczEwIFUwMCBkWDAgUmMwIHBkMCBSYzAgZ0wwIE9vMCBwZDAgUmMwIGdMMCBPbzAgcGQwIDE0bzAgMWNNMCAxY1AwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAzQ28wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIHB2eTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTjAgMWNMMCAxY04wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNOMCAxY0wwIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAiLAoJCQkiRXVyb3BlL0x1eGVtYm91cmd8TE1UIENFVCBDRVNUIFdFVCBXRVNUIFdFU1QgV0VUfC1vLkEgLTEwIC0yMCAwIC0xMCAtMjAgLTEwfDAxMjEyMTIxMzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQ1NjU2NTEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTJERzBvLkEgdDZtby5BIFRCMCAxblgwIFVwMCAxbzIwIDExQTAgclcwIENNMCAxcVAwIFI5MCAxRU8wIFVLMCAxdTIwIDEwbTAgMWlwMCAxaW4wIDE3ZTAgMTlXMCAxZkIwIDFkYjAgMWNwMCAxaW4wIDE3ZDAgMWZ6MCAxYTEwIDFpbjAgMWExMCAxaW4wIDE3ZjAgMWZBMCAxYTAwIDFpbzAgMTdjMCAxY00wIDFjTTAgMWEwMCAxaW8wIDFjTTAgMWNNMCAxYTAwIDFmQTAgMWlvMCAxN2MwIDFjTTAgMWNNMCAxYTAwIDFmQTAgMWlvMCAxcU0wIERjMCB2QTAgNjBMMCBXTTAgMWZBMCAxY00wIDE3YzAgMWlvMCAxNk0wIDFDMDAgVW8wIDFlZW8wIDFhMDAgMWZBMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFhMDAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIsCgkJCSJFdXJvcGUvTWFkcmlkfFdFVCBXRVNUIFdFTVQgQ0VUIENFU1R8MCAtMTAgLTIwIC0xMCAtMjB8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMjEyMTIxMjEyMzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDN8LTI4ZGQwIDExQTAgMWdvMCAxOUEwIDFjbzAgMWRBMCBiMUEwIDE4bzAgM0kwMCAxN2MwIDFmQTAgMWEwMCAxaW8wIDFhMDAgMWlvMCAxN2MwIGl5bzAgUmMwIDE4bzAgMWhjMCAxaW8wIDFhMDAgMTRvMCA1YUwwIE1NMCAxdmMwIDE3QTAgMWkwMCAxYmMwIDFlbzAgMTdkMCAxaW4wIDE3QTAgNmhBMCAxME4wIFhJTDAgMWExMCAxaW4wIDE3ZDAgMTlYMCAxY04wIDFmejAgMWExMCAxZlgwIDFjcDAgMWNPMCAxY00wIDFmQTAgMWEwMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIiwKCQkJIkV1cm9wZS9NYWx0YXxDRVQgQ0VTVHwtMTAgLTIwfDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTB8LTJhczEwIE0wMCAxY00wIDFjTTAgMTRvMCAxbzAwIFdNMCAxcU0wIDE3YzAgMWNNMCBNM0EwIDVNMjAgV00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMTZtMCAxZGUwIDFsYzAgMTRtMCAxbGMwIFdPMCAxcU0wIEdUVzAgT24wIDFDMTAgTHowIDFDMTAgTHowIDFFTjAgTHowIDFDMTAgTHowIDF6ZDAgT28wIDFDMDAgT24wIDFjcDAgMWNNMCAxbEEwIFhjMCAxcXEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFpTjAgMTl6MCAxZkIwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIiwKCQkJIkV1cm9wZS9NaW5za3xNTVQgRUVUIE1TSyBDRVNUIENFVCBNU0QgRUVTVCBGRVR8LTFPIC0yMCAtMzAgLTIwIC0xMCAtNDAgLTMwIC0zMHwwMTIzNDM0MzI1MjUyNTI1MjUyNTI1MjUyNTI2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNzJ8LTFQYzFPIGVVbk8gcU5YMCAzZ1EwIFdNMCAxZkEwIDFjTTAgQWwwIDF0c24wIDFkYjAgMWNOMCAxZGIwIDFjTjAgMWRiMCAxZGQwIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAzRmMwIDFjTjAgMWNLMCAxY00wIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgOEh5MCIsCgkJCSJFdXJvcGUvTW9uYWNvfFBNVCBXRVQgV0VTVCBXRU1UIENFVCBDRVNUfC05LmwgMCAtMTAgLTIwIC0xMCAtMjB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMzIzMjMyMzIzNDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTR8LTJuY285LmwgY05iOS5sIEhBMCAxOUEwIDFpTTAgMTFjMCAxb28wIFdvMCAxcmMwIFFNMCAxRU0wIFVNMCAxdTAwIDEwbzAgMWlvMCAxd28wIFJjMCAxYTAwIDFmQTAgMWNNMCAxY00wIDFpbzAgMTdjMCAxZkEwIDFhMDAgMWlvMCAxYTAwIDFpbzAgMTdjMCAxZkEwIDFhMDAgMWlvMCAxN2MwIDFjTTAgMWNNMCAxYTAwIDFpbzAgMWNNMCAxY00wIDFhMDAgMWZBMCAxaW8wIDE3YzAgMWNNMCAxY00wIDFhMDAgMWZBMCAxaW8wIDFxTTAgRGYwIDJSVjAgMTF6MCAxMUIwIDF6ZTAgV00wIDFmQTAgMWNNMCAxZmEwIDFhcTAgMTZNMCAxZWtuMCAxY0wwIDFmQzAgMWEwMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFmQTAgMWEwMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIiwKCQkJIkV1cm9wZS9Nb3Njb3d8TU1UIE1NVCBNU1QgTURTVCBNU0QgTVNLIE1TTSBFRVQgRUVTVCBNU0t8LTJ1LmggLTJ2LmogLTN2LmogLTR2LmogLTQwIC0zMCAtNTAgLTIwIC0zMCAtNDB8MDEyMTMyMzQ1NDY0NTc1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU4NzU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTk1fC0yYWcydS5oIDJweVcuVyAxYkEwIDExWDAgR04wIDFIYjAgYzIwIGltdi5qIDNEQTAgZHowIDE1QTAgYzEwIDJxMTAgaU0xMCAyM0NMMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNOMCBJTTAgclUwIDFjTDAgMWNRMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCA4SHowIiwKCQkJIkV1cm9wZS9QYXJpc3xQTVQgV0VUIFdFU1QgQ0VTVCBDRVQgV0VNVHwtOS5sIDAgLTEwIC0yMCAtMTAgLTIwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjM0MzQzNTI1NDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzR8LTJuY284LmwgY05iOC5sIEhBMCAxOUEwIDFpTTAgMTFjMCAxb28wIFdvMCAxcmMwIFFNMCAxRU0wIFVNMCAxdTAwIDEwbzAgMWlvMCAxd28wIFJjMCAxYTAwIDFmQTAgMWNNMCAxY00wIDFpbzAgMTdjMCAxZkEwIDFhMDAgMWlvMCAxYTAwIDFpbzAgMTdjMCAxZkEwIDFhMDAgMWlvMCAxN2MwIDFjTTAgMWNNMCAxYTAwIDFpbzAgMWNNMCAxY00wIDFhMDAgMWZBMCAxaW8wIDE3YzAgMWNNMCAxY00wIDFhMDAgMWZBMCAxaW8wIDFxTTAgRGYwIElrMCA1TTMwIFdNMCAxZkEwIDFjTTAgVngwIGhCMCAxYXEwIDE2TTAgMWVrbjAgMWNMMCAxZkMwIDFhMDAgMWZBMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFhMDAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIsCgkJCSJFdXJvcGUvUmlnYXxSTVQgTFNUIEVFVCBNU0sgQ0VTVCBDRVQgTVNEIEVFU1R8LTFBLnkgLTJBLnkgLTIwIC0zMCAtMjAgLTEwIC00MCAtMzB8MDEwMTAyMzQ1NDU0NTM2MzYzNjM2MzYzNjM2MzYzNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyfC0yNVR6QS55IDExQTAgMWlNMCBrbzAgZ1dtMCB5RFhBLnkgMmJYMCAzZkUwIFdNMCAxZkEwIDFjTTAgMWNNMCA0bTAgMXNMeTAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY04wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY04wIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCAzb28wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIiwKCQkJIkV1cm9wZS9Sb21lfENFVCBDRVNUfC0xMCAtMjB8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMmFzMTAgTTAwIDFjTTAgMWNNMCAxNG8wIDFvMDAgV00wIDFxTTAgMTdjMCAxY00wIE0zQTAgNU0yMCBXTTAgMWZBMCAxY00wIDE2SzAgMWlPMCAxNm0wIDFkZTAgMWxjMCAxNG0wIDFsYzAgV08wIDFxTTAgR1RXMCBPbjAgMUMxMCBMejAgMUMxMCBMejAgMUVOMCBMejAgMUMxMCBMejAgMXpkMCBPbzAgMUMwMCBPbjAgMUMxMCBMejAgMXpkMCBPbjAgMUMxMCBMQTAgMUMwMCBMQTAgMXpjMCBPbzAgMUMwMCBPbzAgMXpjMCBPbzAgMWZDMCAxYTAwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAiLAoJCQkiRXVyb3BlL1NhbWFyYXxMTVQgU0FNVCBTQU1UIEtVWVQgS1VZU1QgTVNEIE1TSyBFRVNUIEtVWVQgU0FNU1QgU0FNU1R8LTNrLmsgLTMwIC00MCAtNDAgLTUwIC00MCAtMzAgLTMwIC0zMCAtNTAgLTQwfDAxMjM0MzQzNDM0MzQzNDM0MzQzNTY1Njc4MjkyOTI5MjkyOTI5MjkyOTI5MjkyOTI5MjkyOTI5MjkyOTI5MmExMnwtMjJXTmsuayBxSGFrLmsgYmNuMCAxUXFvMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTjAgMWNNMCAxZkEwIDFjTTAgMWNOMCA4bzAgMTRqMCAxY0wwIDFjUTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFOMCBXTTAiLAoJCQkiRXVyb3BlL1NpbWZlcm9wb2x8U01UIEVFVCBNU0sgQ0VTVCBDRVQgTVNEIEVFU1QgTVNLfC0yZyAtMjAgLTMwIC0yMCAtMTAgLTQwIC0zMCAtNDB8MDEyMzQzNDMyNTI1MjUyNTI1MjUyNTI1MjUyMTYxNjE2NTI1MjUyNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTcyfC0xUGMyZyBlVW9nIHJFbjAgMnFzMCBXTTAgMWZBMCAxY00wIDNWMCAxdTBMMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMVEwMCA0ZUwwIDFjTDAgMWNOMCAxY0wwIDFjTjAgZFgwIFdMMCAxY04wIDFjTDAgMWZCMCAxbzMwIDExQjAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMXowIDFuVzAiLAoJCQkiRXVyb3BlL1NvZmlhfEVFVCBDRVQgQ0VTVCBFRVNUfC0yMCAtMTAgLTIwIC0zMHwwMTIxMjEwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMHwtMTY4TDAgV00wIDFmQTAgMWNNMCAxY00wIDFjTjAgMW1LSDAgMWRkMCAxZmIwIDFhcDAgMWZiMCAxYTIwIDFmeTAgMWEzMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjSzAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWZCMCAxblgwIDExRTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIsCgkJCSJFdXJvcGUvU3RvY2tob2xtfENFVCBDRVNUfC0xMCAtMjB8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTB8LTJhekMwIFRCMCAyeURlMCAxYTAwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAiLAoJCQkiRXVyb3BlL1RhbGxpbm58VE1UIENFVCBDRVNUIEVFVCBNU0sgTVNEIEVFU1R8LTFEIC0xMCAtMjAgLTIwIC0zMCAtNDAgLTMwfDAxMjEwMzQyMTIxMjQ1NDU0NTQ1NDU0NTQ1NDU0NjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2M3wtMjZvTkQgdGVEIDExQTAgMVRhMCA0clhsIEtTTEQgMkZYMCAySmcwIFdNMCAxZkEwIDFjTTAgMThKMCAxc1RYMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTjAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMTAgMTFBMCAxcU0wIDVRTTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIsCgkJCSJFdXJvcGUvVGlyYW5lfExNVCBDRVQgQ0VTVHwtMWouayAtMTAgLTIwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0yZ2xCai5rIDE0cGNqLmsgNUxDMCBXTTAgNE0wIDFmQ0swIDEwbjAgMW9wMCAxMXowIDFwZDAgMTF6MCAxcU4wIFdMMCAxcXAwIFhiMCAxcXAwIFhiMCAxcXAwIDExejAgMWxCMCAxMXowIDFxTjAgMTF6MCAxaU4wIDE2bjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIsCgkJCSJFdXJvcGUvVXpoZ29yb2R8Q0VUIENFU1QgTVNLIE1TRCBFRVQgRUVTVHwtMTAgLTIwIC0zMCAtNDAgLTIwIC0zMHwwMTAxMDEwMjMyMzIzMjMyMzIzMjMyMzIzMjA0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTR8LTFjcUwwIDZpMDAgV00wIDFmQTAgMWNNMCAxbWwwIDFDcDAgMXIzVzAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFRMDAgMU5mMCAycHcwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY1EwIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIsCgkJCSJFdXJvcGUvVmllbm5hfENFVCBDRVNUfC0xMCAtMjB8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMmFGZTAgMTFkMCAxaU8wIDExQTAgMW8wMCAxMUEwIDNLTTAgMTRvMCBMQTAwIDZpMDAgV00wIDFmQTAgMWNNMCAxY00wIDFjTTAgNDAwIDJxTTAgMWEwMCAxY00wIDFjTTAgMWlvMCAxN2MwIDFnSGEwIDE5WDAgMWNQMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIsCgkJCSJFdXJvcGUvVmlsbml1c3xXTVQgS01UIENFVCBFRVQgTVNLIENFU1QgTVNEIEVFU1R8LTFvIC0xei5BIC0xMCAtMjAgLTMwIC0yMCAtNDAgLTMwfDAxMjMyNDUyNTI1NDY0NjQ2NDY0NjQ2NDY0NjQ2NDY0NzM3MzczNzM3MzczNzM1MjUzNzM3MzczNzM3MzczNzM3MzczNzM3MzczNzM3MzczNzM3MzczNzM3MzczNzM3MzczNzM3MzczNzM3MzczNzM3MzczNzM3M3wtMjkzZG8gNklMTS5vIDFPb3ouQSB6ejAgTWZkMCAyOVcwIDNpczAgV00wIDFmQTAgMWNNMCBMVjAgMXRnTDAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTjAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFCMCAxbzAwIDExQTAgMXFNMCA4aW8wIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIsCgkJCSJFdXJvcGUvVm9sZ29ncmFkfExNVCBUU0FUIFNUQVQgU1RBVCBWT0xUIFZPTFNUIFZPTFNUIFZPTFQgTVNLIE1TS3wtMlYuRSAtMzAgLTMwIC00MCAtNDAgLTUwIC00MCAtMzAgLTQwIC0zMHwwMTIzNDU0NTQ1NDU0NTQ1NDU0NTQ2NzY3NDg5ODk4OTg5ODk4OTg5ODk4OTg5ODk4OTg5ODk4OTg5ODk4OTg5ODl8LTIxSXFWLkUgY0xYVi5FIGNFTTAgMWdxbjAgTGNvMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTjAgMWNNMCAxZkEwIDFjTTAgMnB6MCAxY0owIDFjUTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgOEh6MCIsCgkJCSJFdXJvcGUvV2Fyc2F3fFdNVCBDRVQgQ0VTVCBFRVQgRUVTVHwtMW8gLTEwIC0yMCAtMjAgLTMwfDAxMjEyMTIzNDMxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMmN0ZG8gMUxYbyAxMWQwIDFpTzAgMTFBMCAxbzAwIDExQTAgMW9uMCAxMUEwIDZ6eTAgSFdQMCA1SU0wIFdNMCAxZkEwIDFjTTAgMWR6MCAxbUwwIDFlbjAgMTVCMCAxYXEwIDFuQTAgMTFBMCAxaW8wIDE3YzAgMWZBMCAxYTAwIGlEWDAgTEEwIDFjTTAgMWNNMCAxQzAwIE9vMCAxY00wIDFjTTAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMUMwMCBMQTAgdXNvMCAxYTAwIDFmQTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxYTAwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY04wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAiLAoJCQkiRXVyb3BlL1phcG9yb3poeWV8Q1VUIEVFVCBNU0sgQ0VTVCBDRVQgTVNEIEVFU1R8LTJrIC0yMCAtMzAgLTIwIC0xMCAtNDAgLTMwfDAxMjM0MzQyNTI1MjUyNTI1MjUyNTI1MjUyNTI2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxfC0xUGMyayBlVW9rIHJkYjAgMlJFMCBXTTAgMWZBMCA4bTAgMXY5YTAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjSzAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNRMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAiLAoJCQkiSFNUfEhTVHxhMHwwfCIsCgkJCSJJbmRpYW4vQ2hhZ29zfExNVCBJT1QgSU9UfC00Ti5FIC01MCAtNjB8MDEyfC0yeG9zTi5FIDNBR0xOLkUiLAoJCQkiSW5kaWFuL0NocmlzdG1hc3xDWFR8LTcwfDB8IiwKCQkJIkluZGlhbi9Db2Nvc3xDQ1R8LTZ1fDB8IiwKCQkJIkluZGlhbi9LZXJndWVsZW58enp6IFRGVHwwIC01MHwwMXwtTUcwMCIsCgkJCSJJbmRpYW4vTWFoZXxMTVQgU0NUfC0zRi5NIC00MHwwMXwtMnlPM0YuTSIsCgkJCSJJbmRpYW4vTWFsZGl2ZXN8TU1UIE1WVHwtNFMgLTUwfDAxfC1vbGdTIiwKCQkJIkluZGlhbi9NYXVyaXRpdXN8TE1UIE1VVCBNVVNUfC0zTyAtNDAgLTUwfDAxMjEyMXwtMnhvck8gMzR1bk8gMTRMMCAxMmtyMCAxMXowIiwKCQkJIkluZGlhbi9SZXVuaW9ufExNVCBSRVR8LTNGLlEgLTQwfDAxfC0ybURERi5RIiwKCQkJIkt3YWphbGVpbnxNSFQgS1dBVCBNSFR8LWIwIGMwIC1jMHwwMTJ8LUFYMCBXOVgwIiwKCQkJIk1FVHxNRVQgTUVTVHwtMTAgLTIwfDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwfC0yYUZlMCAxMWQwIDFpTzAgMTFBMCAxbzAwIDExQTAgUXJjMCA2aTAwIFdNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDE2TTAgMWdNTTAgMWEwMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFmQTAgMWEwMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIiwKCQkJIk1TVHxNU1R8NzB8MHwiLAoJCQkiTVNUN01EVHxNU1QgTURUIE1XVCBNUFR8NzAgNjAgNjAgNjB8MDEwMTAyMzAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwfC0yNjFyMCAxblgwIDExQjAgMW5YMCBTZ04wIDh4MjAgaXgwIFF3TjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCBzMTAgMVZ6MCBMQjAgMUJYMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiTlotQ0hBVHxDSEFTVCBDSEFTVCBDSEFEVHwtY2YgLWNKIC1kSnwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTJ8LVdxQWYgMWFkZWYgSU0wIDFDMDAgUmMwIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgUmMwIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgUmMwIDF6YzAgT28wIDFxTTAgMTRvMCAxbGMwIDE0bzAgMWxjMCAxNG8wIDFsYzAgMTdjMCAxaW8wIDE3YzAgMWlvMCAxN2MwIDFpbzAgMTdjMCAxbGMwIDE0bzAgMWxjMCAxNG8wIDFsYzAgMTdjMCAxaW8wIDE3YzAgMWlvMCAxN2MwIDFsYzAgMTRvMCAxbGMwIDE0bzAgMWxjMCAxN2MwIDFpbzAgMTdjMCAxaW8wIDE3YzAgMWlvMCAxN2MwIDFpbzAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWNNMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWNNMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFpbzAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxY00wIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxY00wIDFmQTAgMWEwMCAxZkEwIDFhMDAiLAoJCQkiUFNUOFBEVHxQU1QgUERUIFBXVCBQUFR8ODAgNzAgNzAgNzB8MDEwMTAyMzAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwfC0yNjFxMCAxblgwIDExQjAgMW5YMCBTZ04wIDh4MTAgaXkwIFF3TjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCBzMTAgMVZ6MCBMQjAgMUJYMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiUGFjaWZpYy9BcGlhfExNVCBXU1NUIFNTVCBTRFQgV1NEVCBXU1NUfGJxLlUgYnUgYjAgYTAgLWUwIC1kMHwwMTIzMjM0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NHwtMm5ETXguNCAxeVcwMy40IDJyUmJ1IDFmZjAgMWEwMCBDSTAgQVEwIDFjTTAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFjTTAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxaW8wIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWNNMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWNNMCAxZkEwIDFhMDAgMWZBMCAxYTAwIiwKCQkJIlBhY2lmaWMvQm91Z2FpbnZpbGxlfFBHVCBKU1QgQlNUfC1hMCAtOTAgLWIwfDAxMDJ8LTE2V3kwIDdDTjAgMk1RcDAiLAoJCQkiUGFjaWZpYy9DaHV1a3xDSFVUfC1hMHwwfCIsCgkJCSJQYWNpZmljL0VmYXRlfExNVCBWVVQgVlVTVHwtYmQuZyAtYjAgLWMwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTJsOW5kLmcgMlN6Y2QuZyAxY0wwIDFvTjAgMTBMMCAxZkIwIDE5WDAgMWZCMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxZkIwIEx6MCAxTmQwIEFuMCIsCgkJCSJQYWNpZmljL0VuZGVyYnVyeXxQSE9UIFBIT1QgUEhPVHxjMCBiMCAtZDB8MDEyfG5JYzAgQjhuMCIsCgkJCSJQYWNpZmljL0Zha2FvZm98VEtUIFRLVHxiMCAtZDB8MDF8MUdmbjAiLAoJCQkiUGFjaWZpYy9GaWppfExNVCBGSlQgRkpTVHwtYlQuSSAtYzAgLWQwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMnwtMmJVelQuSSAzbThOVC5JIExBMCAxRU0wIElNMCBuSmMwIExBMCAxbzAwIFJjMCAxd28wIEFvMCAxTmMwIEFvMCAxUTAwIHh6MCAxU04wIHVNMCAxU00wIHhBMCAxU00wIHVNMCAxU00wIHVNMCAxU00wIHVNMCAxU00wIHVNMCAxU00wIHhBMCAxU00wIHVNMCAxU00wIHVNMCAxU00wIHVNMCAxU00wIHVNMCAxU00wIHVNMCAxU00wIHhBMCAxU00wIHVNMCAxU00wIHVNMCAxU00wIHVNMCAxU00wIHVNMCAxU00wIHVNMCAxVkEwIHVNMCAxU00wIHVNMCAxU00wIHVNMCAxU00wIHVNMCAxU00wIHVNMCAxU00wIiwKCQkJIlBhY2lmaWMvRnVuYWZ1dGl8VFZUfC1jMHwwfCIsCgkJCSJQYWNpZmljL0dhbGFwYWdvc3xMTVQgRUNUIEdBTFR8NVcubyA1MCA2MHwwMTJ8LTF5VlMxLkEgMmRUejEuQSIsCgkJCSJQYWNpZmljL0dhbWJpZXJ8TE1UIEdBTVR8OFguTSA5MHwwMXwtMmpvZjAuYyIsCgkJCSJQYWNpZmljL0d1YWRhbGNhbmFsfExNVCBTQlR8LWFELk0gLWIwfDAxfC0yam95RC5NIiwKCQkJIlBhY2lmaWMvR3VhbXxHU1QgQ2hTVHwtYTAgLWEwfDAxfDFmcHEwIiwKCQkJIlBhY2lmaWMvSG9ub2x1bHV8SFNUIEhEVCBIU1R8YXUgOXUgYTB8MDEwMTAyfC0xdGhMdSA4eDAgbGVmMCA4UHowIDQ2cDAiLAoJCQkiUGFjaWZpYy9LaXJpdGltYXRpfExJTlQgTElOVCBMSU5UfGFFIGEwIC1lMHwwMTJ8bklhRSBCOG5rIiwKCQkJIlBhY2lmaWMvS29zcmFlfEtPU1QgS09TVHwtYjAgLWMwfDAxMHwtQVgwIDFiZHowIiwKCQkJIlBhY2lmaWMvTWFqdXJvfE1IVCBNSFR8LWIwIC1jMHwwMXwtQVgwIiwKCQkJIlBhY2lmaWMvTWFycXVlc2FzfExNVCBNQVJUfDlpIDl1fDAxfC0yam9lRyIsCgkJCSJQYWNpZmljL01pZHdheXxOU1QgTkRUIEJTVCBTU1R8YjAgYTAgYjAgYjB8MDEwMjN8LXgzTjAgQW4wIHBKZDAgRXlNMCIsCgkJCSJQYWNpZmljL05hdXJ1fExNVCBOUlQgSlNUIE5SVHwtYjcuRSAtYnUgLTkwIC1jMHwwMTIxM3wtMVhkbjcuRSBQdnpCLkUgNVJDdSAxb3VKdSIsCgkJCSJQYWNpZmljL05pdWV8TlVUIE5VVCBOVVR8YmsgYnUgYjB8MDEyfC1LZk1FIDE3eTBhIiwKCQkJIlBhY2lmaWMvTm9yZm9sa3xOTVQgTkZUfC1iYyAtYnV8MDF8LUtnYmMiLAoJCQkiUGFjaWZpYy9Ob3VtZWF8TE1UIE5DVCBOQ1NUfC1iNS5NIC1iMCAtYzB8MDEyMTIxMjF8LTJsOW41Lk0gMkVxTTUuTSB4WDAgMVBCMCB5bjAgSGVQMCBBbzAiLAoJCQkiUGFjaWZpYy9QYWdvX1BhZ298TE1UIE5TVCBCU1QgU1NUfGJtLk0gYjAgYjAgYjB8MDEyM3wtMm5ETUIuYyAyZ1Z6Qi5jIEV5TTAiLAoJCQkiUGFjaWZpYy9QYWxhdXxQV1R8LTkwfDB8IiwKCQkJIlBhY2lmaWMvUGl0Y2Fpcm58UE5UIFBTVHw4dSA4MHwwMXwxOFZrdSIsCgkJCSJQYWNpZmljL1BvaG5wZWl8UE9OVHwtYjB8MHwiLAoJCQkiUGFjaWZpYy9Qb3J0X01vcmVzYnl8UEdUfC1hMHwwfCIsCgkJCSJQYWNpZmljL1Jhcm90b25nYXxDS1QgQ0tIU1QgQ0tUfGF1IDl1IGEwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMnxseVd1IElMMCAxemN1IE9udSAxemN1IE9udSAxemN1IFJidSAxemN1IE9udSAxemN1IE9udSAxemN1IE9udSAxemN1IE9udSAxemN1IE9udSAxemN1IFJidSAxemN1IE9udSAxemN1IE9udSAxemN1IE9udSIsCgkJCSJQYWNpZmljL1NhaXBhbnxNUFQgTVBUIENoU1R8LTkwIC1hMCAtYTB8MDEyfC1BVjAgMWcybjAiLAoJCQkiUGFjaWZpYy9UYWhpdGl8TE1UIFRBSFR8OVcuZyBhMHwwMXwtMmpvZTEuSSIsCgkJCSJQYWNpZmljL1RhcmF3YXxHSUxUfC1jMHwwfCIsCgkJCSJQYWNpZmljL1RvbmdhdGFwdXxUT1QgVE9UIFRPU1R8LWNrIC1kMCAtZTB8MDEyMTIxMjF8LTFhQjBrIDJuNWRrIDE1QTAgMXdvMCB4ejAgMVExMCB4ejAiLAoJCQkiUGFjaWZpYy9XYWtlfFdBS1R8LWMwfDB8IiwKCQkJIlBhY2lmaWMvV2FsbGlzfFdGVHwtYzB8MHwiLAoJCQkiV0VUfFdFVCBXRVNUfDAgLTEwfDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHxoREIwIDFhMDAgMWZBMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFhMDAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIKCQldLAoJCSJsaW5rcyI6IFsKCQkJIkFmcmljYS9BYmlkamFufEFmcmljYS9CYW1ha28iLAoJCQkiQWZyaWNhL0FiaWRqYW58QWZyaWNhL0Jhbmp1bCIsCgkJCSJBZnJpY2EvQWJpZGphbnxBZnJpY2EvQ29uYWtyeSIsCgkJCSJBZnJpY2EvQWJpZGphbnxBZnJpY2EvRGFrYXIiLAoJCQkiQWZyaWNhL0FiaWRqYW58QWZyaWNhL0ZyZWV0b3duIiwKCQkJIkFmcmljYS9BYmlkamFufEFmcmljYS9Mb21lIiwKCQkJIkFmcmljYS9BYmlkamFufEFmcmljYS9Ob3Vha2Nob3R0IiwKCQkJIkFmcmljYS9BYmlkamFufEFmcmljYS9PdWFnYWRvdWdvdSIsCgkJCSJBZnJpY2EvQWJpZGphbnxBZnJpY2EvU2FvX1RvbWUiLAoJCQkiQWZyaWNhL0FiaWRqYW58QWZyaWNhL1RpbWJ1a3R1IiwKCQkJIkFmcmljYS9BYmlkamFufEF0bGFudGljL1N0X0hlbGVuYSIsCgkJCSJBZnJpY2EvQWRkaXNfQWJhYmF8QWZyaWNhL0FzbWFyYSIsCgkJCSJBZnJpY2EvQWRkaXNfQWJhYmF8QWZyaWNhL0FzbWVyYSIsCgkJCSJBZnJpY2EvQWRkaXNfQWJhYmF8QWZyaWNhL0Rhcl9lc19TYWxhYW0iLAoJCQkiQWZyaWNhL0FkZGlzX0FiYWJhfEFmcmljYS9Eamlib3V0aSIsCgkJCSJBZnJpY2EvQWRkaXNfQWJhYmF8QWZyaWNhL0thbXBhbGEiLAoJCQkiQWZyaWNhL0FkZGlzX0FiYWJhfEFmcmljYS9Nb2dhZGlzaHUiLAoJCQkiQWZyaWNhL0FkZGlzX0FiYWJhfEFmcmljYS9OYWlyb2JpIiwKCQkJIkFmcmljYS9BZGRpc19BYmFiYXxJbmRpYW4vQW50YW5hbmFyaXZvIiwKCQkJIkFmcmljYS9BZGRpc19BYmFiYXxJbmRpYW4vQ29tb3JvIiwKCQkJIkFmcmljYS9BZGRpc19BYmFiYXxJbmRpYW4vTWF5b3R0ZSIsCgkJCSJBZnJpY2EvQmFuZ3VpfEFmcmljYS9CcmF6emF2aWxsZSIsCgkJCSJBZnJpY2EvQmFuZ3VpfEFmcmljYS9Eb3VhbGEiLAoJCQkiQWZyaWNhL0Jhbmd1aXxBZnJpY2EvS2luc2hhc2EiLAoJCQkiQWZyaWNhL0Jhbmd1aXxBZnJpY2EvTGFnb3MiLAoJCQkiQWZyaWNhL0Jhbmd1aXxBZnJpY2EvTGlicmV2aWxsZSIsCgkJCSJBZnJpY2EvQmFuZ3VpfEFmcmljYS9MdWFuZGEiLAoJCQkiQWZyaWNhL0Jhbmd1aXxBZnJpY2EvTWFsYWJvIiwKCQkJIkFmcmljYS9CYW5ndWl8QWZyaWNhL05pYW1leSIsCgkJCSJBZnJpY2EvQmFuZ3VpfEFmcmljYS9Qb3J0by1Ob3ZvIiwKCQkJIkFmcmljYS9CbGFudHlyZXxBZnJpY2EvQnVqdW1idXJhIiwKCQkJIkFmcmljYS9CbGFudHlyZXxBZnJpY2EvR2Fib3JvbmUiLAoJCQkiQWZyaWNhL0JsYW50eXJlfEFmcmljYS9IYXJhcmUiLAoJCQkiQWZyaWNhL0JsYW50eXJlfEFmcmljYS9LaWdhbGkiLAoJCQkiQWZyaWNhL0JsYW50eXJlfEFmcmljYS9MdWJ1bWJhc2hpIiwKCQkJIkFmcmljYS9CbGFudHlyZXxBZnJpY2EvTHVzYWthIiwKCQkJIkFmcmljYS9CbGFudHlyZXxBZnJpY2EvTWFwdXRvIiwKCQkJIkFmcmljYS9DYWlyb3xFZ3lwdCIsCgkJCSJBZnJpY2EvSm9oYW5uZXNidXJnfEFmcmljYS9NYXNlcnUiLAoJCQkiQWZyaWNhL0pvaGFubmVzYnVyZ3xBZnJpY2EvTWJhYmFuZSIsCgkJCSJBZnJpY2EvSnViYXxBZnJpY2EvS2hhcnRvdW0iLAoJCQkiQWZyaWNhL1RyaXBvbGl8TGlieWEiLAoJCQkiQW1lcmljYS9BZGFrfEFtZXJpY2EvQXRrYSIsCgkJCSJBbWVyaWNhL0FkYWt8VVMvQWxldXRpYW4iLAoJCQkiQW1lcmljYS9BbmNob3JhZ2V8VVMvQWxhc2thIiwKCQkJIkFtZXJpY2EvQW5ndWlsbGF8QW1lcmljYS9Eb21pbmljYSIsCgkJCSJBbWVyaWNhL0FuZ3VpbGxhfEFtZXJpY2EvR3JlbmFkYSIsCgkJCSJBbWVyaWNhL0FuZ3VpbGxhfEFtZXJpY2EvR3VhZGVsb3VwZSIsCgkJCSJBbWVyaWNhL0FuZ3VpbGxhfEFtZXJpY2EvTWFyaWdvdCIsCgkJCSJBbWVyaWNhL0FuZ3VpbGxhfEFtZXJpY2EvTW9udHNlcnJhdCIsCgkJCSJBbWVyaWNhL0FuZ3VpbGxhfEFtZXJpY2EvUG9ydF9vZl9TcGFpbiIsCgkJCSJBbWVyaWNhL0FuZ3VpbGxhfEFtZXJpY2EvU3RfQmFydGhlbGVteSIsCgkJCSJBbWVyaWNhL0FuZ3VpbGxhfEFtZXJpY2EvU3RfS2l0dHMiLAoJCQkiQW1lcmljYS9Bbmd1aWxsYXxBbWVyaWNhL1N0X0x1Y2lhIiwKCQkJIkFtZXJpY2EvQW5ndWlsbGF8QW1lcmljYS9TdF9UaG9tYXMiLAoJCQkiQW1lcmljYS9Bbmd1aWxsYXxBbWVyaWNhL1N0X1ZpbmNlbnQiLAoJCQkiQW1lcmljYS9Bbmd1aWxsYXxBbWVyaWNhL1RvcnRvbGEiLAoJCQkiQW1lcmljYS9Bbmd1aWxsYXxBbWVyaWNhL1ZpcmdpbiIsCgkJCSJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXN8QW1lcmljYS9CdWVub3NfQWlyZXMiLAoJCQkiQW1lcmljYS9BcmdlbnRpbmEvQ2F0YW1hcmNhfEFtZXJpY2EvQXJnZW50aW5hL0NvbW9kUml2YWRhdmlhIiwKCQkJIkFtZXJpY2EvQXJnZW50aW5hL0NhdGFtYXJjYXxBbWVyaWNhL0NhdGFtYXJjYSIsCgkJCSJBbWVyaWNhL0FyZ2VudGluYS9Db3Jkb2JhfEFtZXJpY2EvQ29yZG9iYSIsCgkJCSJBbWVyaWNhL0FyZ2VudGluYS9Db3Jkb2JhfEFtZXJpY2EvUm9zYXJpbyIsCgkJCSJBbWVyaWNhL0FyZ2VudGluYS9KdWp1eXxBbWVyaWNhL0p1anV5IiwKCQkJIkFtZXJpY2EvQXJnZW50aW5hL01lbmRvemF8QW1lcmljYS9NZW5kb3phIiwKCQkJIkFtZXJpY2EvQXJ1YmF8QW1lcmljYS9DdXJhY2FvIiwKCQkJIkFtZXJpY2EvQXJ1YmF8QW1lcmljYS9LcmFsZW5kaWprIiwKCQkJIkFtZXJpY2EvQXJ1YmF8QW1lcmljYS9Mb3dlcl9QcmluY2VzIiwKCQkJIkFtZXJpY2EvQXRpa29rYW58QW1lcmljYS9Db3JhbF9IYXJib3VyIiwKCQkJIkFtZXJpY2EvQ2hpY2Fnb3xVUy9DZW50cmFsIiwKCQkJIkFtZXJpY2EvRGVudmVyfEFtZXJpY2EvU2hpcHJvY2siLAoJCQkiQW1lcmljYS9EZW52ZXJ8TmF2YWpvIiwKCQkJIkFtZXJpY2EvRGVudmVyfFVTL01vdW50YWluIiwKCQkJIkFtZXJpY2EvRGV0cm9pdHxVUy9NaWNoaWdhbiIsCgkJCSJBbWVyaWNhL0VkbW9udG9ufENhbmFkYS9Nb3VudGFpbiIsCgkJCSJBbWVyaWNhL0Vuc2VuYWRhfEFtZXJpY2EvVGlqdWFuYSIsCgkJCSJBbWVyaWNhL0Vuc2VuYWRhfE1leGljby9CYWphTm9ydGUiLAoJCQkiQW1lcmljYS9Gb3J0X1dheW5lfEFtZXJpY2EvSW5kaWFuYS9JbmRpYW5hcG9saXMiLAoJCQkiQW1lcmljYS9Gb3J0X1dheW5lfEFtZXJpY2EvSW5kaWFuYXBvbGlzIiwKCQkJIkFtZXJpY2EvRm9ydF9XYXluZXxVUy9FYXN0LUluZGlhbmEiLAoJCQkiQW1lcmljYS9IYWxpZmF4fENhbmFkYS9BdGxhbnRpYyIsCgkJCSJBbWVyaWNhL0hhdmFuYXxDdWJhIiwKCQkJIkFtZXJpY2EvSW5kaWFuYS9Lbm94fEFtZXJpY2EvS25veF9JTiIsCgkJCSJBbWVyaWNhL0luZGlhbmEvS25veHxVUy9JbmRpYW5hLVN0YXJrZSIsCgkJCSJBbWVyaWNhL0phbWFpY2F8SmFtYWljYSIsCgkJCSJBbWVyaWNhL0tlbnR1Y2t5L0xvdWlzdmlsbGV8QW1lcmljYS9Mb3Vpc3ZpbGxlIiwKCQkJIkFtZXJpY2EvTG9zX0FuZ2VsZXN8VVMvUGFjaWZpYyIsCgkJCSJBbWVyaWNhL0xvc19BbmdlbGVzfFVTL1BhY2lmaWMtTmV3IiwKCQkJIkFtZXJpY2EvTWFuYXVzfEJyYXppbC9XZXN0IiwKCQkJIkFtZXJpY2EvTWF6YXRsYW58TWV4aWNvL0JhamFTdXIiLAoJCQkiQW1lcmljYS9NZXhpY29fQ2l0eXxNZXhpY28vR2VuZXJhbCIsCgkJCSJBbWVyaWNhL05ld19Zb3JrfFVTL0Vhc3Rlcm4iLAoJCQkiQW1lcmljYS9Ob3JvbmhhfEJyYXppbC9EZU5vcm9uaGEiLAoJCQkiQW1lcmljYS9QaG9lbml4fFVTL0FyaXpvbmEiLAoJCQkiQW1lcmljYS9Qb3J0b19BY3JlfEFtZXJpY2EvUmlvX0JyYW5jbyIsCgkJCSJBbWVyaWNhL1BvcnRvX0FjcmV8QnJhemlsL0FjcmUiLAoJCQkiQW1lcmljYS9SZWdpbmF8Q2FuYWRhL0Vhc3QtU2Fza2F0Y2hld2FuIiwKCQkJIkFtZXJpY2EvUmVnaW5hfENhbmFkYS9TYXNrYXRjaGV3YW4iLAoJCQkiQW1lcmljYS9TYW50aWFnb3xDaGlsZS9Db250aW5lbnRhbCIsCgkJCSJBbWVyaWNhL1Nhb19QYXVsb3xCcmF6aWwvRWFzdCIsCgkJCSJBbWVyaWNhL1N0X0pvaG5zfENhbmFkYS9OZXdmb3VuZGxhbmQiLAoJCQkiQW1lcmljYS9Ub3JvbnRvfENhbmFkYS9FYXN0ZXJuIiwKCQkJIkFtZXJpY2EvVmFuY291dmVyfENhbmFkYS9QYWNpZmljIiwKCQkJIkFtZXJpY2EvV2hpdGVob3JzZXxDYW5hZGEvWXVrb24iLAoJCQkiQW1lcmljYS9XaW5uaXBlZ3xDYW5hZGEvQ2VudHJhbCIsCgkJCSJBbnRhcmN0aWNhL01jTXVyZG98QW50YXJjdGljYS9Tb3V0aF9Qb2xlIiwKCQkJIkFudGFyY3RpY2EvTWNNdXJkb3xOWiIsCgkJCSJBbnRhcmN0aWNhL01jTXVyZG98UGFjaWZpYy9BdWNrbGFuZCIsCgkJCSJBcmN0aWMvTG9uZ3llYXJieWVufEF0bGFudGljL0phbl9NYXllbiIsCgkJCSJBcmN0aWMvTG9uZ3llYXJieWVufEV1cm9wZS9Pc2xvIiwKCQkJIkFzaWEvQXNoZ2FiYXR8QXNpYS9Bc2hraGFiYWQiLAoJCQkiQXNpYS9CYW5na29rfEFzaWEvUGhub21fUGVuaCIsCgkJCSJBc2lhL0Jhbmdrb2t8QXNpYS9WaWVudGlhbmUiLAoJCQkiQXNpYS9DYWxjdXR0YXxBc2lhL0tvbGthdGEiLAoJCQkiQXNpYS9DaG9uZ3Fpbmd8QXNpYS9DaHVuZ2tpbmciLAoJCQkiQXNpYS9DaG9uZ3Fpbmd8QXNpYS9IYXJiaW4iLAoJCQkiQXNpYS9DaG9uZ3Fpbmd8QXNpYS9TaGFuZ2hhaSIsCgkJCSJBc2lhL0Nob25ncWluZ3xQUkMiLAoJCQkiQXNpYS9EYWNjYXxBc2lhL0RoYWthIiwKCQkJIkFzaWEvSG9fQ2hpX01pbmh8QXNpYS9TYWlnb24iLAoJCQkiQXNpYS9Ib25nX0tvbmd8SG9uZ2tvbmciLAoJCQkiQXNpYS9Jc3RhbmJ1bHxFdXJvcGUvSXN0YW5idWwiLAoJCQkiQXNpYS9Jc3RhbmJ1bHxUdXJrZXkiLAoJCQkiQXNpYS9KZXJ1c2FsZW18QXNpYS9UZWxfQXZpdiIsCgkJCSJBc2lhL0plcnVzYWxlbXxJc3JhZWwiLAoJCQkiQXNpYS9LYXNoZ2FyfEFzaWEvVXJ1bXFpIiwKCQkJIkFzaWEvS2F0aG1hbmR1fEFzaWEvS2F0bWFuZHUiLAoJCQkiQXNpYS9NYWNhb3xBc2lhL01hY2F1IiwKCQkJIkFzaWEvTWFrYXNzYXJ8QXNpYS9VanVuZ19QYW5kYW5nIiwKCQkJIkFzaWEvTmljb3NpYXxFdXJvcGUvTmljb3NpYSIsCgkJCSJBc2lhL1Nlb3VsfFJPSyIsCgkJCSJBc2lhL1NpbmdhcG9yZXxTaW5nYXBvcmUiLAoJCQkiQXNpYS9UYWlwZWl8Uk9DIiwKCQkJIkFzaWEvVGVocmFufElyYW4iLAoJCQkiQXNpYS9UaGltYnV8QXNpYS9UaGltcGh1IiwKCQkJIkFzaWEvVG9reW98SmFwYW4iLAoJCQkiQXNpYS9VbGFhbmJhYXRhcnxBc2lhL1VsYW5fQmF0b3IiLAoJCQkiQXRsYW50aWMvRmFlcm9lfEF0bGFudGljL0Zhcm9lIiwKCQkJIkF0bGFudGljL1JleWtqYXZpa3xJY2VsYW5kIiwKCQkJIkF1c3RyYWxpYS9BQ1R8QXVzdHJhbGlhL0NhbmJlcnJhIiwKCQkJIkF1c3RyYWxpYS9BQ1R8QXVzdHJhbGlhL05TVyIsCgkJCSJBdXN0cmFsaWEvQUNUfEF1c3RyYWxpYS9TeWRuZXkiLAoJCQkiQXVzdHJhbGlhL0FkZWxhaWRlfEF1c3RyYWxpYS9Tb3V0aCIsCgkJCSJBdXN0cmFsaWEvQnJpc2JhbmV8QXVzdHJhbGlhL1F1ZWVuc2xhbmQiLAoJCQkiQXVzdHJhbGlhL0Jyb2tlbl9IaWxsfEF1c3RyYWxpYS9ZYW5jb3dpbm5hIiwKCQkJIkF1c3RyYWxpYS9EYXJ3aW58QXVzdHJhbGlhL05vcnRoIiwKCQkJIkF1c3RyYWxpYS9Ib2JhcnR8QXVzdHJhbGlhL1Rhc21hbmlhIiwKCQkJIkF1c3RyYWxpYS9MSEl8QXVzdHJhbGlhL0xvcmRfSG93ZSIsCgkJCSJBdXN0cmFsaWEvTWVsYm91cm5lfEF1c3RyYWxpYS9WaWN0b3JpYSIsCgkJCSJBdXN0cmFsaWEvUGVydGh8QXVzdHJhbGlhL1dlc3QiLAoJCQkiQ2hpbGUvRWFzdGVySXNsYW5kfFBhY2lmaWMvRWFzdGVyIiwKCQkJIkVpcmV8RXVyb3BlL0R1YmxpbiIsCgkJCSJFdGMvR01UKzB8RXRjL0dNVCIsCgkJCSJFdGMvR01UKzB8RXRjL0dNVC0wIiwKCQkJIkV0Yy9HTVQrMHxFdGMvR01UMCIsCgkJCSJFdGMvR01UKzB8RXRjL0dyZWVud2ljaCIsCgkJCSJFdGMvR01UKzB8R01UIiwKCQkJIkV0Yy9HTVQrMHxHTVQrMCIsCgkJCSJFdGMvR01UKzB8R01ULTAiLAoJCQkiRXRjL0dNVCswfEdNVDAiLAoJCQkiRXRjL0dNVCswfEdyZWVud2ljaCIsCgkJCSJFdGMvVUNUfFVDVCIsCgkJCSJFdGMvVVRDfEV0Yy9Vbml2ZXJzYWwiLAoJCQkiRXRjL1VUQ3xFdGMvWnVsdSIsCgkJCSJFdGMvVVRDfFVUQyIsCgkJCSJFdGMvVVRDfFVuaXZlcnNhbCIsCgkJCSJFdGMvVVRDfFp1bHUiLAoJCQkiRXVyb3BlL0JlbGZhc3R8RXVyb3BlL0d1ZXJuc2V5IiwKCQkJIkV1cm9wZS9CZWxmYXN0fEV1cm9wZS9Jc2xlX29mX01hbiIsCgkJCSJFdXJvcGUvQmVsZmFzdHxFdXJvcGUvSmVyc2V5IiwKCQkJIkV1cm9wZS9CZWxmYXN0fEV1cm9wZS9Mb25kb24iLAoJCQkiRXVyb3BlL0JlbGZhc3R8R0IiLAoJCQkiRXVyb3BlL0JlbGZhc3R8R0ItRWlyZSIsCgkJCSJFdXJvcGUvQmVsZ3JhZGV8RXVyb3BlL0xqdWJsamFuYSIsCgkJCSJFdXJvcGUvQmVsZ3JhZGV8RXVyb3BlL1BvZGdvcmljYSIsCgkJCSJFdXJvcGUvQmVsZ3JhZGV8RXVyb3BlL1NhcmFqZXZvIiwKCQkJIkV1cm9wZS9CZWxncmFkZXxFdXJvcGUvU2tvcGplIiwKCQkJIkV1cm9wZS9CZWxncmFkZXxFdXJvcGUvWmFncmViIiwKCQkJIkV1cm9wZS9CcmF0aXNsYXZhfEV1cm9wZS9QcmFndWUiLAoJCQkiRXVyb3BlL0J1c2luZ2VufEV1cm9wZS9WYWR1eiIsCgkJCSJFdXJvcGUvQnVzaW5nZW58RXVyb3BlL1p1cmljaCIsCgkJCSJFdXJvcGUvQ2hpc2luYXV8RXVyb3BlL1RpcmFzcG9sIiwKCQkJIkV1cm9wZS9IZWxzaW5raXxFdXJvcGUvTWFyaWVoYW1uIiwKCQkJIkV1cm9wZS9MaXNib258UG9ydHVnYWwiLAoJCQkiRXVyb3BlL01vc2Nvd3xXLVNVIiwKCQkJIkV1cm9wZS9Sb21lfEV1cm9wZS9TYW5fTWFyaW5vIiwKCQkJIkV1cm9wZS9Sb21lfEV1cm9wZS9WYXRpY2FuIiwKCQkJIkV1cm9wZS9XYXJzYXd8UG9sYW5kIiwKCQkJIkt3YWphbGVpbnxQYWNpZmljL0t3YWphbGVpbiIsCgkJCSJOWi1DSEFUfFBhY2lmaWMvQ2hhdGhhbSIsCgkJCSJQYWNpZmljL0NodXVrfFBhY2lmaWMvVHJ1ayIsCgkJCSJQYWNpZmljL0NodXVrfFBhY2lmaWMvWWFwIiwKCQkJIlBhY2lmaWMvSG9ub2x1bHV8UGFjaWZpYy9Kb2huc3RvbiIsCgkJCSJQYWNpZmljL0hvbm9sdWx1fFVTL0hhd2FpaSIsCgkJCSJQYWNpZmljL1BhZ29fUGFnb3xQYWNpZmljL1NhbW9hIiwKCQkJIlBhY2lmaWMvUGFnb19QYWdvfFVTL1NhbW9hIiwKCQkJIlBhY2lmaWMvUG9obnBlaXxQYWNpZmljL1BvbmFwZSIKCQldCgl9KTsKCgoJcmV0dXJuIG1vbWVudDsKfSkpOwo="></script>
<script src="data:application/x-javascript;base64,Ci8vIHBvbHlmaWxsIGluZGV4T2YgZm9yIElFOAppZiAoIUFycmF5LnByb3RvdHlwZS5pbmRleE9mKSB7CiAgQXJyYXkucHJvdG90eXBlLmluZGV4T2YgPSBmdW5jdGlvbihlbHQgLyosIGZyb20qLykgewogICAgdmFyIGxlbiA9IHRoaXMubGVuZ3RoID4+PiAwOwoKICAgIHZhciBmcm9tID0gTnVtYmVyKGFyZ3VtZW50c1sxXSkgfHwgMDsKICAgIGZyb20gPSAoZnJvbSA8IDApCiAgICAgICAgID8gTWF0aC5jZWlsKGZyb20pCiAgICAgICAgIDogTWF0aC5mbG9vcihmcm9tKTsKICAgIGlmIChmcm9tIDwgMCkKICAgICAgZnJvbSArPSBsZW47CgogICAgZm9yICg7IGZyb20gPCBsZW47IGZyb20rKykgewogICAgICBpZiAoZnJvbSBpbiB0aGlzICYmCiAgICAgICAgICB0aGlzW2Zyb21dID09PSBlbHQpCiAgICAgICAgcmV0dXJuIGZyb207CiAgICB9CiAgICByZXR1cm4gLTE7CiAgfTsKfQoKCkhUTUxXaWRnZXRzLndpZGdldCh7CgogIG5hbWU6ICJkeWdyYXBocyIsCgogIHR5cGU6ICJvdXRwdXQiLAoKICBpbml0aWFsaXplOiBmdW5jdGlvbihlbCwgd2lkdGgsIGhlaWdodCkgeyAKICAgIHJldHVybiB7fTsKICB9LAoKICByZXNpemU6IGZ1bmN0aW9uKGVsLCB3aWR0aCwgaGVpZ2h0LCBpbnN0YW5jZSkgewogICAgaWYgKGluc3RhbmNlLmR5Z3JhcGgpCiAgICAgIGluc3RhbmNlLmR5Z3JhcGgucmVzaXplKCk7CiAgfSwKCiAgcmVuZGVyVmFsdWU6IGZ1bmN0aW9uKGVsLCB4LCBpbnN0YW5jZSkgewogICAgCiAgICAvLyByZWZlcmVuY2UgdG8gdGhpcyBmb3IgY2xvc3VyZXMKICAgIHZhciB0aGl6ID0gdGhpczsKICAgIAogICAgLy8gZ2V0IGR5Z3JhcGggYXR0cnMgYW5kIHBvcHVsYXRlIGZpbGUgZmllbGQKICAgIHZhciBhdHRycyA9IHguYXR0cnM7CiAgICBhdHRycy5maWxlID0geC5kYXRhOwogICAgICAgIAogICAgLy8gcmVzb2x2ZSAiYXV0byIgbGVnZW5kIGJlaGF2aW9yCiAgICBpZiAoeC5hdHRycy5sZWdlbmQgPT0gImF1dG8iKSB7CiAgICAgIGlmICh4LmRhdGEubGVuZ3RoIDw9IDIpCiAgICAgICAgeC5hdHRycy5sZWdlbmQgPSAib25tb3VzZW92ZXIiOwogICAgICBlbHNlCiAgICAgICAgeC5hdHRycy5sZWdlbmQgPSAiYWx3YXlzIjsKICAgIH0KICAgIAogICAgLy8gc2V0IGFwcHJvcHJpYXRlZCBmdW5jdGlvbiBpbiBjYXNlIG9mIGZpeGVkIHR6CiAgICBpZiAoKGF0dHJzLmF4ZXMueC5heGlzTGFiZWxGb3JtYXR0ZXIgPT09IHVuZGVmaW5lZCkgJiYgeC5maXhlZHR6KQogICAgICBhdHRycy5heGVzLnguYXhpc0xhYmVsRm9ybWF0dGVyID0gdGhpcy54QXhpc0xhYmVsRm9ybWF0dGVyRml4ZWRUWih4LnR6b25lKTsKICAgICAgCiAgICBpZiAoKGF0dHJzLmF4ZXMueC52YWx1ZUZvcm1hdHRlciA9PT0gdW5kZWZpbmVkKSAmJiB4LmZpeGVkdHopCiAgICAgIGF0dHJzLmF4ZXMueC52YWx1ZUZvcm1hdHRlciA9IHRoaXMueFZhbHVlRm9ybWF0dGVyRml4ZWRUWih4LnNjYWxlLCB4LnR6b25lKTsKCiAgICBpZiAoKGF0dHJzLmF4ZXMueC50aWNrZXIgPT09IHVuZGVmaW5lZCkgJiYgeC5maXhlZHR6KQogICAgICBhdHRycy5heGVzLngudGlja2VyID0gdGhpcy5jdXN0b21EYXRlVGlja2VyRml4ZWRUWih4LnR6b25lKTsKICAKICAgIC8vIHByb3ZpZGUgYW4gYXV0b21hdGljIHggdmFsdWUgZm9ybWF0dGVyIGlmIG5vbmUgaXMgYWxyZWFkeSBzcGVjaWZpZWQKICAgIGlmICgoYXR0cnMuYXhlcy54LnZhbHVlRm9ybWF0dGVyID09PSB1bmRlZmluZWQpICYmICh4LmZpeGVkdHogIT0gdHJ1ZSkpCiAgICAgIGF0dHJzLmF4ZXMueC52YWx1ZUZvcm1hdHRlciA9IHRoaXMueFZhbHVlRm9ybWF0dGVyKHguc2NhbGUpOwogICAgCiAgICAvLyBjb252ZXJ0IHRpbWUgdG8ganMgdGltZQogICAgYXR0cnMuZmlsZVswXSA9IGF0dHJzLmZpbGVbMF0ubWFwKGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgIHJldHVybiB0aGl6Lm5vcm1hbGl6ZURhdGVWYWx1ZSh4LnNjYWxlLCB2YWx1ZSwgeC5maXhlZHR6KTsKICAgIH0pOwogICAgaWYgKGF0dHJzLmRhdGVXaW5kb3cgIT0gbnVsbCkgewogICAgICBhdHRycy5kYXRlV2luZG93ID0gYXR0cnMuZGF0ZVdpbmRvdy5tYXAoZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICB2YXIgZGF0ZSA9IHRoaXoubm9ybWFsaXplRGF0ZVZhbHVlKHguc2NhbGUsIHZhbHVlLCB4LmZpeGVkdHopOwogICAgICAgIHJldHVybiBkYXRlLmdldFRpbWUoKTsKICAgICAgfSk7CiAgICB9CiAgICAKICAgIC8vIHRyYW5zcG9zZSBhcnJheQogICAgYXR0cnMuZmlsZSA9IEhUTUxXaWRnZXRzLnRyYW5zcG9zZUFycmF5MkQoYXR0cnMuZmlsZSk7CiAgICAKICAgIC8vIGFkZCBkcmF3Q2FsbGJhY2sgZm9yIGdyb3VwCiAgICBpZiAoeC5ncm91cCAhPSBudWxsKQogICAgICB0aGlzLmFkZEdyb3VwRHJhd0NhbGxiYWNrKHgpOyAgCiAgICAgIAogICAgLy8gYWRkIHNoYWRpbmcgYW5kIGV2ZW50IGNhbGxiYWNrIGlmIG5lY2Vzc2FyeQogICAgdGhpcy5hZGRTaGFkaW5nQ2FsbGJhY2soeCk7CiAgICB0aGlzLmFkZEV2ZW50Q2FsbGJhY2soeCk7CiAgICB0aGlzLmFkZFpvb21DYWxsYmFjayh4LCBpbnN0YW5jZSk7CiAgICAgIAogICAgCiAgICAvLyBpZiB0aGVyZSBpcyBubyBleGlzdGluZyBpbnN0YW5jZSBwZXJmb3JtIG9uZS10aW1lIGluaXRpYWxpemF0aW9uCiAgICBpZiAoIWluc3RhbmNlLmR5Z3JhcGgpIHsKICAgICAgCiAgICAgIC8vIHN1YnNjcmliZSB0byBjdXN0b20gc2hvd24gZXZlbnQgKGZpcmVkIGJ5IGlvc2xpZGVzIHRvIHRyaWdnZXIKICAgICAgLy8gc2hpbnkgcmVhY3Rpdml0eSBidXQgd2UgY2FuIHVzZSBpdCBhcyB3ZWxsKS4gdGhpcyBpcyBuZWNlc3NhcnkKICAgICAgLy8gYmVjYXVzZSBpZiBhIGR5Z3JhcGggc3RhcnRzIG91dCBhcyBkaXNwbGF5Om5vbmUgaXQgaGFzIGhlaWdodAogICAgICAvLyBhbmQgd2lkdGggPT0gMCBhbmQgdGhpcyBkb2Vzbid0IGNoYW5nZSB3aGVuIGl0IGJlY29tZXMgdmlzaWJsZQogICAgICAkKGVsKS5jbG9zZXN0KCdzbGlkZScpLm9uKCdzaG93bicsIGZ1bmN0aW9uKCkgewogICAgICAgIGlmIChpbnN0YW5jZS5keWdyYXBoKQogICAgICAgICAgaW5zdGFuY2UuZHlncmFwaC5yZXNpemUoKTsgIAogICAgICB9KTsKICAgICAgCiAgICAgIC8vIGFkZCBkZWZhdWx0IGZvbnQgZm9yIHZpZXdlciBtb2RlCiAgICAgIGlmICh0aGlzLnF1ZXJ5VmFyKCJ2aWV3ZXJfcGFuZSIpID09PSAiMSIpCiAgICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5mb250RmFtaWx5ID0gIkFyaWFsLCBzYW5zLXNlcmlmIjsKCiAgICAgIC8vIGluamVjdCBjc3MgaWYgbmVjZXNzYXJ5CiAgICAgIGlmICh4LmNzcyAhPSBudWxsKSB7CiAgICAgICAgdmFyIHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTsKICAgICAgICBzdHlsZS50eXBlID0gJ3RleHQvY3NzJzsKICAgICAgICBpZiAoc3R5bGUuc3R5bGVTaGVldCkgCiAgICAgICAgICBzdHlsZS5zdHlsZVNoZWV0LmNzc1RleHQgPSB4LmNzczsKICAgICAgICBlbHNlIAogICAgICAgICAgc3R5bGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoeC5jc3MpKTsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENoaWxkKHN0eWxlKTsKICAgICAgfQogICAgICAKICAgIH0gZWxzZSB7CiAgICAgIAogICAgICAgIC8vIHJldGFpbiB0aGUgdXNlckRhdGVXaW5kb3cgaWYgcmVxdWVzdGVkCiAgICAgICAgaWYgKGluc3RhbmNlLmR5Z3JhcGgudXNlckRhdGVXaW5kb3cgIT0gbnVsbAogICAgICAgICAgICAmJiBhdHRycy5yZXRhaW5EYXRlV2luZG93ID09IHRydWUpIHsKICAgICAgICAgIGF0dHJzLmRhdGVXaW5kb3cgPSBpbnN0YW5jZS5keWdyYXBoLnhBeGlzUmFuZ2UoKTsKICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgIC8vIHJlbW92ZSBpdCBmcm9tIGdyb3VwcyBpZiBpdCdzIHRoZXJlCiAgICAgICAgaWYgKHguZ3JvdXAgIT0gbnVsbCAmJiB0aGlzLmdyb3Vwc1t4Lmdyb3VwXSAhPSBudWxsKSB7CiAgICAgICAgICB2YXIgaW5kZXggPSB0aGlzLmdyb3Vwc1t4Lmdyb3VwXS5pbmRleE9mKGluc3RhbmNlLmR5Z3JhcGgpOwogICAgICAgICAgaWYgKGluZGV4ICE9IC0xKQogICAgICAgICAgICB0aGlzLmdyb3Vwc1t4Lmdyb3VwXS5zcGxpY2UoaW5kZXgsIDEpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBkZXN0cm95IHRoZSBleGlzdGluZyBkeWdyYXBoIAogICAgICAgIGluc3RhbmNlLmR5Z3JhcGguZGVzdHJveSgpOwogICAgICAgIGluc3RhbmNlLmR5Z3JhcGggPSBudWxsOwogICAgfQogICAgCiAgICAvLyBhZGQgc2hpbnkgaW5wdXQgZm9yIGRhdGUgd2luZG93CiAgICBpZiAoSFRNTFdpZGdldHMuc2hpbnlNb2RlKQogICAgICB0aGlzLmFkZERhdGVXaW5kb3dTaGlueUlucHV0KGVsLmlkLCB4KTsKICAgIAogICAgLy8gY3JlYXRlIHRoZSBpbnN0YW5jZSBhbmQgYWRkIGl0IHRvIGl0J3MgZ3JvdXAgKGlmIGFueSkKICAgIGluc3RhbmNlLmR5Z3JhcGggPSBuZXcgRHlncmFwaChlbCwgYXR0cnMuZmlsZSwgYXR0cnMpOwogICAgaW5zdGFuY2UuZHlncmFwaC51c2VyRGF0ZVdpbmRvdyA9IGF0dHJzLmRhdGVXaW5kb3c7CiAgICBpZiAoeC5ncm91cCAhPSBudWxsKQogICAgICB0aGlzLmdyb3Vwc1t4Lmdyb3VwXS5wdXNoKGluc3RhbmNlLmR5Z3JhcGgpOwogICAgCiAgICAvLyBzZXQgYW5ub3RhdGlvbnMKICAgIGlmICh4LmFubm90YXRpb25zICE9IG51bGwpIHsKICAgICAgaW5zdGFuY2UuZHlncmFwaC5yZWFkeShmdW5jdGlvbigpIHsKICAgICAgICB4LmFubm90YXRpb25zLm1hcChmdW5jdGlvbihhbm5vdGF0aW9uKSB7CiAgICAgICAgICB2YXIgZGF0ZSA9IHRoaXoubm9ybWFsaXplRGF0ZVZhbHVlKHguc2NhbGUsIGFubm90YXRpb24ueCwgeC5maXhlZHR6KTsKICAgICAgICAgIGFubm90YXRpb24ueCA9IGRhdGUuZ2V0VGltZSgpOwogICAgICAgIH0pOwogICAgICAgIGluc3RhbmNlLmR5Z3JhcGguc2V0QW5ub3RhdGlvbnMoeC5hbm5vdGF0aW9ucyk7CiAgICAgIH0pOyAKICAgIH0KICAgICAgCiAgfSwKICAKICAvLyBzZXQgb2YgZnVuY3Rpb25zIG5lZWRlZCB3aXRoIGZpeGVkIHR6CiAgY3VzdG9tRGF0ZVRpY2tlckZpeGVkVFogOiBmdW5jdGlvbih0eil7CiAgICByZXR1cm4gZnVuY3Rpb24oYSwgYiwgcGl4ZWxzLCBvcHRzLCBkeWdyYXBoLCB2YWxzKSB7ICAgCiAgICAgIHZhciBjaG9zZW4gPSBEeWdyYXBoLnBpY2tEYXRlVGlja0dyYW51bGFyaXR5KGEsIGIsIHBpeGVscywgb3B0cyk7CiAgICAgIGlmIChjaG9zZW4gPj0gMCkgewogICAgICAgIHZhciBmb3JtYXR0ZXIgPSAob3B0cygiYXhpc0xhYmVsRm9ybWF0dGVyIikpOwogICAgICAgIHZhciB0aWNrcyA9IFtdOwogICAgICAgIHZhciB0OyAKCiAgICAgICAgaWYgKGNob3NlbiA8IER5Z3JhcGguTU9OVEhMWSkgewogICAgICAgICAgLy8gR2VuZXJhdGUgb25lIHRpY2sgbWFyayBmb3IgZXZlcnkgZml4ZWQgaW50ZXJ2YWwgb2YgdGltZS4KICAgICAgICAgIHZhciBzcGFjaW5nID0gRHlncmFwaC5TSE9SVF9TUEFDSU5HU1tjaG9zZW5dOwoKICAgICAgICAgIC8vIEZpbmQgYSB0aW1lIGxlc3MgdGhhbiBzdGFydF90aW1lIHdoaWNoIG9jY3VycyBvbiBhICJuaWNlIiB0aW1lIGJvdW5kYXJ5CiAgICAgICAgICAvLyBmb3IgdGhpcyBncmFudWxhcml0eS4KICAgICAgICAgIHZhciBnID0gc3BhY2luZyAvIDEwMDA7CiAgICAgICAgICB2YXIgZCA9IG1vbWVudChhKTsKICAgICAgICAgIGQudHoodHopOyAKICAgICAgICAgIGQubWlsbGlzZWNvbmQoMCk7CgogICAgICAgICAgdmFyIHg7CiAgICAgICAgICBpZiAoZyA8PSA2MCkgeyAgLy8gc2Vjb25kcyAKICAgICAgICAgICAgeCA9IGQuc2Vjb25kKCk7ICAgICAgICAgCiAgICAgICAgICAgIGQuc2Vjb25kKHggLSB4ICUgZyk7ICAgICAKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGQuc2Vjb25kKDApOwogICAgICAgICAgICBnIC89IDYwOyAKICAgICAgICAgICAgaWYgKGcgPD0gNjApIHsgIC8vIG1pbnV0ZXMKICAgICAgICAgICAgICB4ID0gZC5taW51dGUoKTsKICAgICAgICAgICAgICBkLm1pbnV0ZSh4IC0geCAlIGcpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIGQubWludXRlKDApOwogICAgICAgICAgICAgIGcgLz0gNjA7CgogICAgICAgICAgICAgIGlmIChnIDw9IDI0KSB7ICAvLyBkYXlzCiAgICAgICAgICAgICAgICB4ID0gZC5ob3VyKCk7CiAgICAgICAgICAgICAgICBkLmhvdXIoeCAtIHggJSBnKTsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgZC5ob3VyKDApOwogICAgICAgICAgICAgICAgZyAvPSAyNDsKCiAgICAgICAgICAgICAgICBpZiAoZyA9PSA3KSB7ICAvLyBvbmUgd2VlawogICAgICAgICAgICAgICAgICBkLnN0YXJ0T2YoJ3dlZWsnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGEgPSBkLnZhbHVlT2YoKTsKCiAgICAgICAgICAvLyBGb3Igc3BhY2luZ3MgY29hcnNlciB0aGFuIHR3by1ob3VybHksIHdlIHdhbnQgdG8gaWdub3JlIGRheWxpZ2h0CiAgICAgICAgICAvLyBzYXZpbmdzIHRyYW5zaXRpb25zIHRvIGdldCBjb25zaXN0ZW50IHRpY2tzLiBGb3IgZmluZXItZ3JhaW5lZCB0aWNrcywKICAgICAgICAgIC8vIGl0J3MgZXNzZW50aWFsIHRvIHNob3cgdGhlIERTVCB0cmFuc2l0aW9uIGluIGFsbCBpdHMgbWVzc2luZXNzLgogICAgICAgICAgdmFyIHN0YXJ0X29mZnNldF9taW4gPSBtb21lbnQoYSkudHoodHopLnpvbmUoKTsKICAgICAgICAgIHZhciBjaGVja19kc3QgPSAoc3BhY2luZyA+PSBEeWdyYXBoLlNIT1JUX1NQQUNJTkdTW0R5Z3JhcGguVFdPX0hPVVJMWV0pOwoKICAgICAgICAgIGZvciAodCA9IGE7IHQgPD0gYjsgdCArPSBzcGFjaW5nKSB7CiAgICAgICAgICAgIGQgPSBtb21lbnQodCkudHoodHopOwoKICAgICAgICAgICAgLy8gVGhpcyBlbnN1cmVzIHRoYXQgd2Ugc3RheSBvbiB0aGUgc2FtZSBob3VybHkgInJoeXRobSIgYWNyb3NzCiAgICAgICAgICAgIC8vIGRheWxpZ2h0IHNhdmluZ3MgdHJhbnNpdGlvbnMuIFdpdGhvdXQgdGhpcywgdGhlIHRpY2tzIGNvdWxkIGdldCBvZmYKICAgICAgICAgICAgLy8gYnkgYW4gaG91ci4gU2VlIHRlc3RzL2RheWxpZ2h0LXNhdmluZ3MuaHRtbCBvciBpc3N1ZSAxNDcuCiAgICAgICAgICAgIGlmIChjaGVja19kc3QgJiYgZC56b25lKCkgIT0gc3RhcnRfb2Zmc2V0X21pbikgewogICAgICAgICAgICAgIHZhciBkZWx0YV9taW4gPSBkLnpvbmUoKSAtIHN0YXJ0X29mZnNldF9taW47CiAgICAgICAgICAgICAgdCArPSBkZWx0YV9taW4gKiA2MCAqIDEwMDA7CiAgICAgICAgICAgICAgZCA9IG1vbWVudCh0KS50eih0eik7CiAgICAgICAgICAgICAgc3RhcnRfb2Zmc2V0X21pbiA9IGQuem9uZSgpOwoKICAgICAgICAgICAgICAvLyBDaGVjayB3aGV0aGVyIHdlJ3ZlIGJhY2tlZCBpbnRvIHRoZSBwcmV2aW91cyB0aW1lem9uZSBhZ2Fpbi4KICAgICAgICAgICAgICAvLyBUaGlzIGNhbiBoYXBwZW4gZHVyaW5nIGEgInNwcmluZyBmb3J3YXJkIiB0cmFuc2l0aW9uLiBJbiB0aGlzIGNhc2UsCiAgICAgICAgICAgICAgLy8gaXQncyBiZXN0IHRvIHNraXAgdGhpcyB0aWNrIGFsdG9nZXRoZXIgKHdlIG1heSBiZSBzaG9vdGluZyBmb3IgYQogICAgICAgICAgICAgIC8vIG5vbi1leGlzdGVudCB0aW1lIGxpa2UgdGhlIDJBTSB0aGF0J3Mgc2tpcHBlZCkgYW5kIGdvIHRvIHRoZSBuZXh0CiAgICAgICAgICAgICAgLy8gb25lLgogICAgICAgICAgICAgIGlmIChtb21lbnQodCArIHNwYWNpbmcpLnR6KHR6KS56b25lKCkgIT0gc3RhcnRfb2Zmc2V0X21pbikgewogICAgICAgICAgICAgICAgdCArPSBzcGFjaW5nOwogICAgICAgICAgICAgICAgZCA9IG1vbWVudCh0KS50eih0eik7CiAgICAgICAgICAgICAgICBzdGFydF9vZmZzZXRfbWluID0gZC56b25lKCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICB0aWNrcy5wdXNoKHsgdjp0LAogICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGZvcm1hdHRlcihkLCBjaG9zZW4sIG9wdHMsIGR5Z3JhcGgpCiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIC8vIERpc3BsYXkgYSB0aWNrIG1hcmsgb24gdGhlIGZpcnN0IG9mIGEgc2V0IG9mIG1vbnRocyBvZiBlYWNoIHllYXIuCiAgICAgICAgICAvLyBZZWFycyBnZXQgYSB0aWNrIG1hcmsgaWZmIHkgJSB5ZWFyX21vZCA9PSAwLiBUaGlzIGlzIHVzZWZ1bCBmb3IKICAgICAgICAgIC8vIGRpc3BsYXlpbmcgYSB0aWNrIG1hcmsgb25jZSBldmVyeSAxMCB5ZWFycywgc2F5LCBvbiBsb25nIHRpbWUgc2NhbGVzLgogICAgICAgICAgdmFyIG1vbnRoczsKICAgICAgICAgIHZhciB5ZWFyX21vZCA9IDE7ICAvLyBlLmcuIHRvIG9ubHkgcHJpbnQgb25lIHBvaW50IGV2ZXJ5IDEwIHllYXJzLgogICAgICAgICAgaWYgKGNob3NlbiA8IER5Z3JhcGguTlVNX0dSQU5VTEFSSVRJRVMpIHsKICAgICAgICAgICAgbW9udGhzID0gRHlncmFwaC5MT05HX1RJQ0tfUExBQ0VNRU5UU1tjaG9zZW5dLm1vbnRoczsKICAgICAgICAgICAgeWVhcl9tb2QgPSBEeWdyYXBoLkxPTkdfVElDS19QTEFDRU1FTlRTW2Nob3Nlbl0ueWVhcl9tb2Q7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBEeWdyYXBoLndhcm4oIlNwYW4gb2YgZGF0ZXMgaXMgdG9vIGxvbmciKTsKICAgICAgICAgIH0KCiAgICAgICAgICB2YXIgc3RhcnRfeWVhciA9IG1vbWVudChhKS50eih0eikueWVhcigpOwogICAgICAgICAgdmFyIGVuZF95ZWFyICAgPSBtb21lbnQoYikudHoodHopLnllYXIoKTsKICAgICAgICAgIGZvciAodmFyIGkgPSBzdGFydF95ZWFyOyBpIDw9IGVuZF95ZWFyOyBpKyspIHsKICAgICAgICAgICAgaWYgKGkgJSB5ZWFyX21vZCAhPT0gMCkgY29udGludWU7CiAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgbW9udGhzLmxlbmd0aDsgaisrKSB7CiAgICAgICAgICAgICAgdmFyIGR0ID0gbW9tZW50LnR6KG5ldyBEYXRlKGksIG1vbnRoc1tqXSwgMSksIHR6KTsgCiAgICAgICAgICAgICAgZHQueWVhcihpKTsKICAgICAgICAgICAgICB0ID0gZHQudmFsdWVPZigpOwogICAgICAgICAgICAgIGlmICh0IDwgYSB8fCB0ID4gYikgY29udGludWU7CiAgICAgICAgICAgICAgdGlja3MucHVzaCh7IHY6dCwKICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGZvcm1hdHRlcihtb21lbnQodCkudHoodHopLCBjaG9zZW4sIG9wdHMsIGR5Z3JhcGgpCiAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gdGlja3M7CiAgICAgIH1lbHNlewogICAgICAvLyB0aGlzIGNhbiBoYXBwZW4gaWYgc2VsZi53aWR0aF8gaXMgemVyby4KICAgICAgICByZXR1cm4gW107CiAgICAgIH0KICAgIH07CiAgfSwKCiAgeEF4aXNMYWJlbEZvcm1hdHRlckZpeGVkVFogOiBmdW5jdGlvbih0eil7CiAgCiAgICByZXR1cm4gZnVuY3Rpb24gZGF0ZUF4aXNGb3JtYXR0ZXIoZGF0ZSwgZ3JhbnVsYXJpdHkpewogICAgICB2YXIgbW1udCA9IG1vbWVudChkYXRlKS50eih0eik7CiAgICAgIGlmIChncmFudWxhcml0eSA+PSBEeWdyYXBoLkRFQ0FEQUwpewogICAgICAgIHJldHVybiBtbW50LmZvcm1hdCgnWVlZWScpOwogICAgICB9ZWxzZXsKICAgICAgICBpZihncmFudWxhcml0eSA+PSBEeWdyYXBoLk1PTlRITFkpewogICAgICAgICAgcmV0dXJuIG1tbnQuZm9ybWF0KCdNTU0gWVlZWScpOwogICAgICAgIH1lbHNlewogICAgICAgICAgdmFyIGZyYWMgPSBtbW50LmhvdXIoKSAqIDM2MDAgKyBtbW50Lm1pbnV0ZSgpICogNjAgKyBtbW50LnNlY29uZCgpICsgbW1udC5taWxsaXNlY29uZCgpOwogICAgICAgICAgICBpZiAoZnJhYyA9PT0gMCB8fCBncmFudWxhcml0eSA+PSBEeWdyYXBoLkRBSUxZKSB7CiAgICAgICAgICAgICAgcmV0dXJuIG1tbnQuZm9ybWF0KCdERCBNTU0nKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmIChtbW50LnNlY29uZCgpKSB7CiAgICAgICAgICAgICAgIHJldHVybiBtbW50LmZvcm1hdCgnSEg6bW06c3MnKTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgIHJldHVybiBtbW50LmZvcm1hdCgnSEg6bW0nKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICB9IAogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgIH0gICAgICAgICAKICAgfQogIH0sCiAgICAgICAgIAogIHhWYWx1ZUZvcm1hdHRlckZpeGVkVFo6IGZ1bmN0aW9uKHNjYWxlLCB0eikgewogICAgICAgICAgICAgICAgICAgCiAgICByZXR1cm4gZnVuY3Rpb24obWlsbGlzKSB7CiAgICAgIHZhciBtbW50ID0gbW9tZW50KG1pbGxpcykudHoodHopOwogICAgICAgIGlmIChzY2FsZSA9PSAieWVhcmx5IikKICAgICAgICAgIHJldHVybiBtbW50LmZvcm1hdCgnWVlZWScpICsgJyAoJyArIG1tbnQuem9uZUFiYnIoKSArICcpJzsKICAgICAgICBlbHNlIGlmIChzY2FsZSA9PSAibW9udGhseSIgfHwgc2NhbGUgPT0gInF1YXJ0ZXJseSIpCiAgICAgICAgICByZXR1cm4gbW1udC5mb3JtYXQoJ01NTSwgWVlZWScpKyAnICgnICsgbW1udC56b25lQWJicigpICsgJyknOwogICAgICAgIGVsc2UgaWYgKHNjYWxlID09ICJkYWlseSIgfHwgc2NhbGUgPT0gIndlZWtseSIpCiAgICAgICAgICByZXR1cm4gbW1udC5mb3JtYXQoJ01NTSwgREQsIFlZWVknKSsgJyAoJyArIG1tbnQuem9uZUFiYnIoKSArICcpJzsKICAgICAgICBlbHNlCiAgICAgICAgICByZXR1cm4gbW1udC5mb3JtYXQoJ2RkZGQsIE1NTU0sIERELCBZWVlZIEhIOm1tOnNzJykrICcgKCcgKyBtbW50LnpvbmVBYmJyKCkgKyAnKSc7CiAgICB9CiAgfSwKICAKICB4VmFsdWVGb3JtYXR0ZXI6IGZ1bmN0aW9uKHNjYWxlKSB7CiAgICAKICAgIHZhciBtb250aE5hbWVzID0gWyJKYW4iLCAiRmViIiwgIk1hciIsICJBcHIiLCAiTWF5IiwgIkp1biIsIAogICAgICAgICAgICAgICAgICAgICAgIkp1bCIsICJBdWciLCAiU2VwIiwgIk9jdCIsICJOb3YiLCAiRGVjIl07CiAgICAgICAgICAgICAgICAgICAgICAKICAgIHJldHVybiBmdW5jdGlvbihtaWxsaXMpIHsKICAgICAgdmFyIGRhdGUgPSBuZXcgRGF0ZShtaWxsaXMpOwogICAgICAgIGlmIChzY2FsZSA9PSAieWVhcmx5IikKICAgICAgICAgIHJldHVybiBkYXRlLmdldEZ1bGxZZWFyKCk7CiAgICAgICAgZWxzZSBpZiAoc2NhbGUgPT0gIm1vbnRobHkiIHx8IHNjYWxlID09ICJxdWFydGVybHkiKQogICAgICAgICAgcmV0dXJuIG1vbnRoTmFtZXNbZGF0ZS5nZXRNb250aCgpXSArICcsICcgKyBkYXRlLmdldEZ1bGxZZWFyKCk7IAogICAgICAgIGVsc2UgaWYgKHNjYWxlID09ICJkYWlseSIgfHwgc2NhbGUgPT0gIndlZWtseSIpCiAgICAgICAgICByZXR1cm4gbW9udGhOYW1lc1tkYXRlLmdldE1vbnRoKCldICsgJywgJyArIAogICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlLmdldERhdGUoKSArICcsICcgKyAKICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpOwogICAgICAgIGVsc2UKICAgICAgICAgIHJldHVybiBkYXRlLnRvTG9jYWxlU3RyaW5nKCk7CiAgICB9CiAgfSwKICAKICBhZGRab29tQ2FsbGJhY2s6IGZ1bmN0aW9uKHgsIGluc3RhbmNlKSB7CiAgICAKICAgIC8vIGFsaWFzIHRoaXMKICAgIHZhciB0aGl6ID0gdGhpczsKICAgIAogICAgLy8gZ2V0IGF0dHJzCiAgICB2YXIgYXR0cnMgPSB4LmF0dHJzOwogICAgCiAgICAvLyBjaGVjayBmb3IgYW4gZXhpc3Rpbmcgem9vbUNhbGxiYWNrCiAgICB2YXIgcHJldlpvb21DYWxsYmFjayA9IGF0dHJzWyJ6b29tQ2FsbGJhY2siXTsKICAgIAogICAgYXR0cnMuem9vbUNhbGxiYWNrID0gZnVuY3Rpb24obWluRGF0ZSwgbWF4RGF0ZSwgeVJhbmdlcykgewogICAgICAKICAgICAgLy8gY2FsbCBleGlzdGluZwogICAgICBpZiAocHJldlpvb21DYWxsYmFjaykKICAgICAgICBwcmV2Wm9vbUNhbGxiYWNrKG1pbkRhdGUsIG1heERhdGUsIHlSYW5nZXMpOwogICAgICAgIAogICAgICAvLyByZWNvcmQgdXNlciBkYXRlIHdpbmRvdyAob3IgbGFjayB0aGVyZW9mKQogICAgICB2YXIgbWUgPSBpbnN0YW5jZS5keWdyYXBoOwogICAgICBpZiAobWUueEF4aXNFeHRyZW1lcygpWzBdICE9IG1pbkRhdGUgfHwKICAgICAgICAgIG1lLnhBeGlzRXh0cmVtZXMoKVsxXSAhPSBtYXhEYXRlKSB7CiAgICAgICAgIG1lLnVzZXJEYXRlV2luZG93ID0gW21pbkRhdGUsIG1heERhdGVdOwogICAgICB9IGVsc2UgewogICAgICAgICBtZS51c2VyRGF0ZVdpbmRvdyA9IG51bGw7CiAgICAgIH0KICAgICAgCiAgICAgIC8vIHJlY29yZCBpbiBncm91cCBpZiBuZWNlc3NhcnkKICAgICAgaWYgKHguZ3JvdXAgIT0gbnVsbCAmJiB0aGl6Lmdyb3Vwc1t4Lmdyb3VwXSAhPSBudWxsKSB7CiAgICAgICAgdmFyIGdyb3VwID0gdGhpei5ncm91cHNbeC5ncm91cF07CiAgICAgICAgZm9yKHZhciBpID0gMDsgaTxncm91cC5sZW5ndGg7IGkrKykKICAgICAgICAgIGdyb3VwW2ldLnVzZXJEYXRlV2luZG93ID0gbWUudXNlckRhdGVXaW5kb3c7CiAgICAgIH0KICAgIH07CiAgfSwKICAKICAKICBncm91cHM6IHt9LAogIAogIGFkZEdyb3VwRHJhd0NhbGxiYWNrOiBmdW5jdGlvbih4KSB7CiAgICAKICAgIC8vIGdldCBhdHRycwogICAgdmFyIGF0dHJzID0geC5hdHRyczsKICAgIAogICAgLy8gY2hlY2sgZm9yIGFuIGV4aXN0aW5nIGRyYXdDYWxsYmFjawogICAgdmFyIHByZXZEcmF3Q2FsbGJhY2sgPSBhdHRyc1siZHJhd0NhbGxiYWNrIl07CiAgICAKICAgIHRoaXMuZ3JvdXBzW3guZ3JvdXBdID0gdGhpcy5ncm91cHNbeC5ncm91cF0gfHwgW107CiAgICB2YXIgZ3JvdXAgPSB0aGlzLmdyb3Vwc1t4Lmdyb3VwXTsKICAgIHZhciBibG9ja1JlZHJhdyA9IGZhbHNlOwogICAgYXR0cnMuZHJhd0NhbGxiYWNrID0gZnVuY3Rpb24obWUsIGluaXRpYWwpIHsKICAgICAgCiAgICAgIC8vIGNhbGwgZXhpc3RpbmcKICAgICAgaWYgKHByZXZEcmF3Q2FsbGJhY2spCiAgICAgICAgcHJldkRyYXdDYWxsYmFjayhtZSwgaW5pdGlhbCk7CiAgICAgIAogICAgICAvLyBzeW5jIHBlZXJzIGluIGdyb3VwCiAgICAgIGlmIChibG9ja1JlZHJhdyB8fCBpbml0aWFsKSByZXR1cm47CiAgICAgIGJsb2NrUmVkcmF3ID0gdHJ1ZTsKICAgICAgdmFyIHJhbmdlID0gbWUueEF4aXNSYW5nZSgpOwogICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGdyb3VwLmxlbmd0aDsgaisrKSB7CiAgICAgICAgaWYgKGdyb3VwW2pdID09IG1lKSBjb250aW51ZTsKICAgICAgICAvLyB1cGRhdGUgZ3JvdXAgcmFuZ2Ugb25seSBpZiBpdCdzIGRpZmZlcmVudCAocHJldmVudHMKICAgICAgICAvLyBpbmZpbml0ZSByZWN1cnNpb24gaW4gdXBkYXRlT3B0aW9ucykKICAgICAgICB2YXIgcGVlclJhbmdlID0gZ3JvdXBbal0ueEF4aXNSYW5nZSgpOwogICAgICAgIGlmIChwZWVyUmFuZ2VbMF0gIT0gcmFuZ2VbMF0gfHwgcGVlclJhbmdlWzFdICE9IHJhbmdlWzFdKSB7CiAgICAgICAgICBncm91cFtqXS51cGRhdGVPcHRpb25zKHsKICAgICAgICAgICAgZGF0ZVdpbmRvdzogcmFuZ2UKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfQogICAgICBibG9ja1JlZHJhdyA9IGZhbHNlOwogICAgfTsKICB9LAogIAogIGFkZFNoYWRpbmdDYWxsYmFjazogZnVuY3Rpb24oeCkgewogICAgCiAgICAvLyBiYWlsIGlmIG5vIHNoYWRpbmdzCiAgICBpZiAoeC5zaGFkaW5ncy5sZW5ndGggPT0gMCkKICAgICAgcmV0dXJuOwogICAgCiAgICAvLyBhbGlhcyB0aGlzCiAgICB2YXIgdGhpeiA9IHRoaXM7CiAgICAKICAgIC8vIGdldCBhdHRycwogICAgdmFyIGF0dHJzID0geC5hdHRyczsKICAgIAogICAgLy8gY2hlY2sgZm9yIGFuIGV4aXN0aW5nIHVuZGVybGF5Q2FsbGJhY2sKICAgIHZhciBwcmV2VW5kZXJsYXlDYWxsYmFjayA9IGF0dHJzWyJ1bmRlcmxheUNhbGxiYWNrIl07CiAgICAKICAgIC8vIGluc3RhbGwgY2FsbGJhY2sKICAgIGF0dHJzLnVuZGVybGF5Q2FsbGJhY2sgPSBmdW5jdGlvbihjYW52YXMsIGFyZWEsIGcpIHsKICAgICAgCiAgICAgIC8vIGNhbGwgZXhpc3RpbmcKICAgICAgaWYgKHByZXZVbmRlcmxheUNhbGxiYWNrKQogICAgICAgIHByZXZVbmRlcmxheUNhbGxiYWNrKGNhbnZhcywgYXJlYSwgZyk7CiAgICAgICAgCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgeC5zaGFkaW5ncy5sZW5ndGg7IGkrKykgewogICAgICAgIHZhciBzaGFkaW5nID0geC5zaGFkaW5nc1tpXTsKICAgICAgICBjYW52YXMuc2F2ZSgpOwogICAgICAgIGNhbnZhcy5maWxsU3R5bGUgPSBzaGFkaW5nLmNvbG9yOwogICAgICAgIGlmIChzaGFkaW5nLmF4aXMgPT0gIngiKSB7CiAgICAgICAgICB2YXIgeDEgPSB0aGl6Lm5vcm1hbGl6ZURhdGVWYWx1ZSh4LnNjYWxlLCBzaGFkaW5nLmZyb20sIHguZml4ZWR0eikuZ2V0VGltZSgpOwogICAgICAgICAgdmFyIHgyID0gdGhpei5ub3JtYWxpemVEYXRlVmFsdWUoeC5zY2FsZSwgc2hhZGluZy50bywgeC5maXhlZHR6KS5nZXRUaW1lKCk7CiAgICAgICAgICB2YXIgbGVmdCA9IGcudG9Eb21YQ29vcmQoeDEpOwogICAgICAgICAgdmFyIHJpZ2h0ID0gZy50b0RvbVhDb29yZCh4Mik7CiAgICAgICAgICAKICAgICAgICAgIGNhbnZhcy5maWxsUmVjdChsZWZ0LCBhcmVhLnksIHJpZ2h0IC0gbGVmdCwgYXJlYS5oKTsKICAgICAgICB9IGVsc2UgaWYgKHNoYWRpbmcuYXhpcyA9PSAieSIpIHsKICAgICAgICAgIHZhciBib3R0b20gPSBnLnRvRG9tWUNvb3JkKHNoYWRpbmcuZnJvbSk7CiAgICAgICAgICB2YXIgdG9wID0gZy50b0RvbVlDb29yZChzaGFkaW5nLnRvKTsKCiAgICAgICAgICBjYW52YXMuZmlsbFJlY3QoYXJlYS54LCBib3R0b20sIGFyZWEudywgdG9wIC0gYm90dG9tKTsKICAgICAgICB9CiAgICAgICAgY2FudmFzLnJlc3RvcmUoKTsKICAgICAgfQogICAgfTsKICB9LAogIAogIGFkZEV2ZW50Q2FsbGJhY2s6IGZ1bmN0aW9uKHgpIHsKICAgIAogICAgLy8gYmFpbCBpZiBubyBldmV0cwogICAgaWYgKHguZXZlbnRzLmxlbmd0aCA9PSAwKQogICAgICByZXR1cm47CiAgICAKICAgIC8vIGFsaWFzIHRoaXMKICAgIHZhciB0aGl6ID0gdGhpczsKICAgIAogICAgLy8gZ2V0IGF0dHJzCiAgICB2YXIgYXR0cnMgPSB4LmF0dHJzOwogICAgCiAgICAvLyBjaGVjayBmb3IgYW4gZXhpc3RpbmcgdW5kZXJsYXlDYWxsYmFjawogICAgdmFyIHByZXZVbmRlcmxheUNhbGxiYWNrID0gYXR0cnNbInVuZGVybGF5Q2FsbGJhY2siXTsKICAgIAogICAgLy8gaW5zdGFsbCBjYWxsYmFjawogICAgYXR0cnMudW5kZXJsYXlDYWxsYmFjayA9IGZ1bmN0aW9uKGNhbnZhcywgYXJlYSwgZykgewogICAgICAKICAgICAgLy8gY2FsbCBleGlzdGluZwogICAgICBpZiAocHJldlVuZGVybGF5Q2FsbGJhY2spCiAgICAgICAgcHJldlVuZGVybGF5Q2FsbGJhY2soY2FudmFzLCBhcmVhLCBnKTsKICAgICAgICAKICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB4LmV2ZW50cy5sZW5ndGg7IGkrKykgewogICAgICAgIAogICAgICAgIC8vIGdldCBldmVudCBhbmQgeC1jb29yZGluYXRlCiAgICAgICAgdmFyIGV2ZW50ID0geC5ldmVudHNbaV07CiAgICAgICAgCiAgICAgICAgLy8gZHJhdyBsaW5lCiAgICAgICAgY2FudmFzLnNhdmUoKTsKICAgICAgICBjYW52YXMuc3Ryb2tlU3R5bGUgPSBldmVudC5jb2xvcjsKICAgICAgICBpZiAoZXZlbnQuYXhpcyA9PSAieCIpIHsKICAgICAgICAgIHZhciB4UG9zID0gdGhpei5ub3JtYWxpemVEYXRlVmFsdWUoeC5zY2FsZSwgZXZlbnQucG9zLCB4LmZpeGVkdHopLmdldFRpbWUoKTsKICAgICAgICAgIHhQb3MgPSBnLnRvRG9tWENvb3JkKHhQb3MpOwogICAgICAgICAgCiAgICAgICAgICAvLyBkcmF3IGxpbmUKICAgICAgICAgIHRoaXouZGFzaGVkTGluZShjYW52YXMsIAogICAgICAgICAgICAgICAgICAgICAgICAgIHhQb3MsIAogICAgICAgICAgICAgICAgICAgICAgICAgIGFyZWEueSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgeFBvcywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgYXJlYS55ICsgYXJlYS5oLAogICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0cm9rZVBhdHRlcm4pOwogICAgICAgIH0gZWxzZSBpZiAoZXZlbnQuYXhpcyA9PSAieSIpIHsKICAgICAgICAgIHlQb3MgPSBnLnRvRG9tWUNvb3JkKGV2ZW50LnBvcyk7CiAgICAgICAgICAKICAgICAgICAgIHRoaXouZGFzaGVkTGluZShjYW52YXMsIAogICAgICAgICAgICAgICAgICAgICAgICAgIGFyZWEueCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgeVBvcywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgYXJlYS54ICsgYXJlYS53LCAKICAgICAgICAgICAgICAgICAgICAgICAgICB5UG9zLAogICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0cm9rZVBhdHRlcm4pOwogICAgICAgIH0KICAgICAgICBjYW52YXMucmVzdG9yZSgpOwogICAgICAgIAogICAgICAgIC8vIGRyYXcgbGFiZWwKICAgICAgICBpZiAoZXZlbnQubGFiZWwgIT0gbnVsbCkgewogICAgICAgICAgY2FudmFzLnNhdmUoKTsKICAgICAgICAgIHRoaXouc2V0Rm9udFNpemUoY2FudmFzLCAxMik7CiAgICAgICAgICB2YXIgc2l6ZSA9IGNhbnZhcy5tZWFzdXJlVGV4dChldmVudC5sYWJlbCk7CiAgICAgICAgICBpZiAoZXZlbnQuYXhpcyA9PSAieCIpIHsKICAgICAgICAgICAgdmFyIHR4ID0geFBvcyAtIDQ7CiAgICAgICAgICAgIHZhciB0eTsKICAgICAgICAgICAgaWYgKGV2ZW50LmxhYmVsTG9jID09ICJ0b3AiKQogICAgICAgICAgICAgIHR5ID0gYXJlYS55ICsgc2l6ZS53aWR0aCArIDEwOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgdHkgPSBhcmVhLnkgKyBhcmVhLmggLSAxMDsKICAgICAgICAgICAgY2FudmFzLnRyYW5zbGF0ZSh0eCwgdHkpOwogICAgICAgICAgICBjYW52YXMucm90YXRlKDMgKiBNYXRoLlBJIC8gMik7CiAgICAgICAgICAgIGNhbnZhcy50cmFuc2xhdGUoLXR4LC10eSk7CiAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmF4aXMgPT0gInkiKSB7CiAgICAgICAgICAgIHZhciB0eSA9IHlQb3MgLSA0OwogICAgICAgICAgICB2YXIgdHg7CiAgICAgICAgICAgIGlmIChldmVudC5sYWJlbExvYyA9PSAicmlnaHQiKQogICAgICAgICAgICAgIHR4ID0gYXJlYS54ICsgYXJlYS53IC0gc2l6ZS53aWR0aCAtIDEwOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgdHggPSBhcmVhLnggKyAxMDsKICAgICAgICAgIH0KICAgICAgICAgIGNhbnZhcy5maWxsVGV4dChldmVudC5sYWJlbCwgdHgsIHR5KTsKICAgICAgICAgIGNhbnZhcy5yZXN0b3JlKCk7CiAgICAgICAgfQogICAgICB9CiAgICB9OwogIH0sCiAgCiAgYWRkRGF0ZVdpbmRvd1NoaW55SW5wdXQ6IGZ1bmN0aW9uKGlkLCB4KSB7CiAgICAgIAogICAgLy8gY2hlY2sgZm9yIGFuIGV4aXN0aW5nIGRyYXdDYWxsYmFjawogICAgdmFyIHByZXZEcmF3Q2FsbGJhY2sgPSB4LmF0dHJzWyJkcmF3Q2FsbGJhY2siXTsKICAgIAogICAgLy8gaW5zdGFsbCB0aGUgY2FsbGJhY2sKICAgIHguYXR0cnMuZHJhd0NhbGxiYWNrID0gZnVuY3Rpb24obWUsIGluaXRpYWwpIHsKICAgICAgCiAgICAgIC8vIGNhbGwgZXhpc3RpbmcKICAgICAgaWYgKHByZXZEcmF3Q2FsbGJhY2spCiAgICAgICAgcHJldkRyYXdDYWxsYmFjayhtZSwgaW5pdGlhbCk7CiAgICAgICAgCiAgICAgIC8vIGZpcmUgaW5wdXQgY2hhbmdlCiAgICAgIHZhciByYW5nZSA9IG1lLnhBeGlzUmFuZ2UoKTsKICAgICAgdmFyIGRhdGVXaW5kb3cgPSBbbmV3IERhdGUocmFuZ2VbMF0pLCBuZXcgRGF0ZShyYW5nZVsxXSldOwogICAgICBTaGlueS5vbklucHV0Q2hhbmdlKGlkICsgIl9kYXRlX3dpbmRvdyIsIGRhdGVXaW5kb3cpOyAKICAgIH07CiAgfSwKICAKICAvLyBBZGQgZGFzaGVkIGxpbmUgc3VwcG9ydCB0byBjYW52YXMgcmVuZGVyaW5nIGNvbnRleHQKICAvLyBTZWU6IGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNDU3NjcyNC9kb3R0ZWQtc3Ryb2tlLWluLWNhbnZhcwogIGRhc2hlZExpbmU6IGZ1bmN0aW9uKGNhbnZhcywgeCwgeSwgeDIsIHkyLCBkYXNoQXJyYXkpIHsKICAgIGNhbnZhcy5iZWdpblBhdGgoKTsKICAgIGlmICghZGFzaEFycmF5KSBkYXNoQXJyYXk9WzEwLDVdOwogICAgaWYgKGRhc2hMZW5ndGg9PTApIGRhc2hMZW5ndGggPSAwLjAwMTsgLy8gSGFjayBmb3IgU2FmYXJpCiAgICB2YXIgZGFzaENvdW50ID0gZGFzaEFycmF5Lmxlbmd0aDsKICAgIGNhbnZhcy5tb3ZlVG8oeCwgeSk7CiAgICB2YXIgZHggPSAoeDIteCksIGR5ID0gKHkyLXkpOwogICAgdmFyIHNsb3BlID0gZHggPyBkeS9keCA6IDFlMTU7CiAgICB2YXIgZGlzdFJlbWFpbmluZyA9IE1hdGguc3FydCggZHgqZHggKyBkeSpkeSApOwogICAgdmFyIGRhc2hJbmRleD0wLCBkcmF3PXRydWU7CiAgICB3aGlsZSAoZGlzdFJlbWFpbmluZz49MC4xKXsKICAgICAgdmFyIGRhc2hMZW5ndGggPSBkYXNoQXJyYXlbZGFzaEluZGV4KyslZGFzaENvdW50XTsKICAgICAgaWYgKGRhc2hMZW5ndGggPiBkaXN0UmVtYWluaW5nKSBkYXNoTGVuZ3RoID0gZGlzdFJlbWFpbmluZzsKICAgICAgdmFyIHhTdGVwID0gTWF0aC5zcXJ0KCBkYXNoTGVuZ3RoKmRhc2hMZW5ndGggLyAoMSArIHNsb3BlKnNsb3BlKSApOwogICAgICBpZiAoZHg8MCkgeFN0ZXAgPSAteFN0ZXA7CiAgICAgIHggKz0geFN0ZXAKICAgICAgeSArPSBzbG9wZSp4U3RlcDsKICAgICAgY2FudmFzW2RyYXcgPyAnbGluZVRvJyA6ICdtb3ZlVG8nXSh4LHkpOwogICAgICBkaXN0UmVtYWluaW5nIC09IGRhc2hMZW5ndGg7CiAgICAgIGRyYXcgPSAhZHJhdzsKICAgIH0KICAgIGNhbnZhcy5zdHJva2UoKTsKICB9LAogIAogIHNldEZvbnRTaXplOiBmdW5jdGlvbihjYW52YXMsIHNpemUpIHsKICAgIHZhciBjRm9udCA9IGNhbnZhcy5mb250OwogICAgdmFyIHBhcnRzID0gY0ZvbnQuc3BsaXQoJyAnKTsKICAgIGlmIChwYXJ0cy5sZW5ndGggPT09IDIpCiAgICAgIGNhbnZhcy5mb250ID0gc2l6ZSArICdweCAnICsgcGFydHNbMV07CiAgICBlbHNlIGlmIChwYXJ0cy5sZW5ndGggPT09IDMpCiAgICAgIGNhbnZhcy5mb250ID0gcGFydHNbMF0gKyAnICcgKyBzaXplICsgJ3B4ICcgKyBwYXJ0c1syXTsKICB9LAogIAogIC8vIFJldHVybnMgdGhlIHZhbHVlIG9mIGEgR0VUIHZhcmlhYmxlCiAgcXVlcnlWYXI6IGZ1bmN0aW9uKG5hbWUpIHsKICAgIHJldHVybiBkZWNvZGVVUkkod2luZG93LmxvY2F0aW9uLnNlYXJjaC5yZXBsYWNlKAogICAgICBuZXcgUmVnRXhwKCJeKD86LipbJlxcP10iICsKICAgICAgICAgICAgICAgICBlbmNvZGVVUkkobmFtZSkucmVwbGFjZSgvW1wuXCtcKl0vZywgIlxcJCYiKSArCiAgICAgICAgICAgICAgICAgIig/OlxcPShbXiZdKikpPyk/LiokIiwgImkiKSwKICAgICAgIiQxIikpOwogIH0sCiAgCiAgLy8gV2UgZGVhbCBleGNsdXNpdmVseSBpbiBVVEMgZGF0ZXMgd2l0aGluIFIsIGhvd2V2ZXIgZHlncmFwaHMgZGVhbHMgCiAgLy8gZXhjbHVzaXZlbHkgaW4gdGhlIGxvY2FsIHRpbWUgem9uZS4gVGhlcmVmb3JlLCBpbiBvcmRlciB0byBwbG90IGRhdGUKICAvLyBsYWJlbHMgdGhhdCBtYWtlIHNlbnNlIHRvIHRoZSB1c2VyIHdoZW4gd2UgYXJlIGRlYWxpbmcgd2l0aCBkYXlzLAogIC8vIG1vbnRocyBvciB5ZWFycyB3ZSBuZWVkIHRvIGNvbnZlcnQgdGhlIFVUQyBkYXRlIHZhbHVlIHRvIGEgbG9jYWwgdGltZQogIC8vIHZhbHVlIHRoYXQgImxvb2tzIGxpa2UiIHRoZSBlcXVpdmlsYW50IFVUQyB2YWx1ZS4gVG8gZG8gdGhpcyB3ZSBhZGQgdGhlCiAgLy8gdGltZXpvbmUgb2Zmc2V0IHRvIHRoZSBVVEMgZGF0ZS4KICAvLyBEb24ndCB1c2UgaW4gY2FzZSBvZiBmaXhlZHR6CiAgbm9ybWFsaXplRGF0ZVZhbHVlOiBmdW5jdGlvbihzY2FsZSwgdmFsdWUsIGZpeGVkdHopIHsKICAgIHZhciBkYXRlID0gbmV3IERhdGUodmFsdWUpOyAKICAgIGlmIChzY2FsZSAhPSAibWludXRlIiAmJiBzY2FsZSAhPSAiaG91cmx5IiAmJiBzY2FsZSAhPSAic2Vjb25kcyIgJiYgIWZpeGVkdHopIHsKICAgICAgdmFyIGxvY2FsQXNVVEMgPSBkYXRlLmdldFRpbWUoKSArIChkYXRlLmdldFRpbWV6b25lT2Zmc2V0KCkgKiA2MDAwMCk7CiAgICAgIGRhdGUgPSBuZXcgRGF0ZShsb2NhbEFzVVRDKTsKICAgIH0KICAgIHJldHVybiBkYXRlOwogIH0KICAKfSk7Cgo="></script>
<style type="text/css">code{white-space: pre;}</style>
<link href="data:text/css;charset=utf-8,pre%20%2Eoperator%2C%0Apre%20%2Eparen%20%7B%0Acolor%3A%20rgb%28104%2C%20118%2C%20135%29%0A%7D%0Apre%20%2Eliteral%20%7B%0Acolor%3A%20%23990073%0A%7D%0Apre%20%2Enumber%20%7B%0Acolor%3A%20%23099%3B%0A%7D%0Apre%20%2Ecomment%20%7B%0Acolor%3A%20%23998%3B%0Afont%2Dstyle%3A%20italic%0A%7D%0Apre%20%2Ekeyword%20%7B%0Acolor%3A%20%23900%3B%0Afont%2Dweight%3A%20bold%0A%7D%0Apre%20%2Eidentifier%20%7B%0Acolor%3A%20rgb%280%2C%200%2C%200%29%3B%0A%7D%0Apre%20%2Estring%20%7B%0Acolor%3A%20%23d14%3B%0A%7D%0A" rel="stylesheet" type="text/css" />
<script src="data:application/x-javascript;base64,CnZhciBobGpzPW5ldyBmdW5jdGlvbigpe2Z1bmN0aW9uIG0ocCl7cmV0dXJuIHAucmVwbGFjZSgvJi9nbSwiJmFtcDsiKS5yZXBsYWNlKC88L2dtLCImbHQ7Iil9ZnVuY3Rpb24gZihyLHEscCl7cmV0dXJuIFJlZ0V4cChxLCJtIisoci5jST8iaSI6IiIpKyhwPyJnIjoiIikpfWZ1bmN0aW9uIGIocil7Zm9yKHZhciBwPTA7cDxyLmNoaWxkTm9kZXMubGVuZ3RoO3ArKyl7dmFyIHE9ci5jaGlsZE5vZGVzW3BdO2lmKHEubm9kZU5hbWU9PSJDT0RFIil7cmV0dXJuIHF9aWYoIShxLm5vZGVUeXBlPT0zJiZxLm5vZGVWYWx1ZS5tYXRjaCgvXHMrLykpKXticmVha319fWZ1bmN0aW9uIGgodCxzKXt2YXIgcD0iIjtmb3IodmFyIHI9MDtyPHQuY2hpbGROb2Rlcy5sZW5ndGg7cisrKXtpZih0LmNoaWxkTm9kZXNbcl0ubm9kZVR5cGU9PTMpe3ZhciBxPXQuY2hpbGROb2Rlc1tyXS5ub2RlVmFsdWU7aWYocyl7cT1xLnJlcGxhY2UoL1xuL2csIiIpfXArPXF9ZWxzZXtpZih0LmNoaWxkTm9kZXNbcl0ubm9kZU5hbWU9PSJCUiIpe3ArPSJcbiJ9ZWxzZXtwKz1oKHQuY2hpbGROb2Rlc1tyXSl9fX1pZigvTVNJRSBbNjc4XS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSl7cD1wLnJlcGxhY2UoL1xyL2csIlxuIil9cmV0dXJuIHB9ZnVuY3Rpb24gYShzKXt2YXIgcj1zLmNsYXNzTmFtZS5zcGxpdCgvXHMrLyk7cj1yLmNvbmNhdChzLnBhcmVudE5vZGUuY2xhc3NOYW1lLnNwbGl0KC9ccysvKSk7Zm9yKHZhciBxPTA7cTxyLmxlbmd0aDtxKyspe3ZhciBwPXJbcV0ucmVwbGFjZSgvXmxhbmd1YWdlLS8sIiIpO2lmKGVbcF0pe3JldHVybiBwfX19ZnVuY3Rpb24gYyhxKXt2YXIgcD1bXTsoZnVuY3Rpb24ocyx0KXtmb3IodmFyIHI9MDtyPHMuY2hpbGROb2Rlcy5sZW5ndGg7cisrKXtpZihzLmNoaWxkTm9kZXNbcl0ubm9kZVR5cGU9PTMpe3QrPXMuY2hpbGROb2Rlc1tyXS5ub2RlVmFsdWUubGVuZ3RofWVsc2V7aWYocy5jaGlsZE5vZGVzW3JdLm5vZGVOYW1lPT0iQlIiKXt0Kz0xfWVsc2V7aWYocy5jaGlsZE5vZGVzW3JdLm5vZGVUeXBlPT0xKXtwLnB1c2goe2V2ZW50OiJzdGFydCIsb2Zmc2V0OnQsbm9kZTpzLmNoaWxkTm9kZXNbcl19KTt0PWFyZ3VtZW50cy5jYWxsZWUocy5jaGlsZE5vZGVzW3JdLHQpO3AucHVzaCh7ZXZlbnQ6InN0b3AiLG9mZnNldDp0LG5vZGU6cy5jaGlsZE5vZGVzW3JdfSl9fX19cmV0dXJuIHR9KShxLDApO3JldHVybiBwfWZ1bmN0aW9uIGsoeSx3LHgpe3ZhciBxPTA7dmFyIHo9IiI7dmFyIHM9W107ZnVuY3Rpb24gdSgpe2lmKHkubGVuZ3RoJiZ3Lmxlbmd0aCl7aWYoeVswXS5vZmZzZXQhPXdbMF0ub2Zmc2V0KXtyZXR1cm4oeVswXS5vZmZzZXQ8d1swXS5vZmZzZXQpP3k6d31lbHNle3JldHVybiB3WzBdLmV2ZW50PT0ic3RhcnQiP3k6d319ZWxzZXtyZXR1cm4geS5sZW5ndGg/eTp3fX1mdW5jdGlvbiB0KEQpe3ZhciBBPSI8IitELm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7Zm9yKHZhciBCPTA7QjxELmF0dHJpYnV0ZXMubGVuZ3RoO0IrKyl7dmFyIEM9RC5hdHRyaWJ1dGVzW0JdO0ErPSIgIitDLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7aWYoQy52YWx1ZSE9PXVuZGVmaW5lZCYmQy52YWx1ZSE9PWZhbHNlJiZDLnZhbHVlIT09bnVsbCl7QSs9Jz0iJyttKEMudmFsdWUpKyciJ319cmV0dXJuIEErIj4ifXdoaWxlKHkubGVuZ3RofHx3Lmxlbmd0aCl7dmFyIHY9dSgpLnNwbGljZSgwLDEpWzBdO3orPW0oeC5zdWJzdHIocSx2Lm9mZnNldC1xKSk7cT12Lm9mZnNldDtpZih2LmV2ZW50PT0ic3RhcnQiKXt6Kz10KHYubm9kZSk7cy5wdXNoKHYubm9kZSl9ZWxzZXtpZih2LmV2ZW50PT0ic3RvcCIpe3ZhciBwLHI9cy5sZW5ndGg7ZG97ci0tO3A9c1tyXTt6Kz0oIjwvIitwLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkrIj4iKX13aGlsZShwIT12Lm5vZGUpO3Muc3BsaWNlKHIsMSk7d2hpbGUocjxzLmxlbmd0aCl7eis9dChzW3JdKTtyKyt9fX19cmV0dXJuIHorbSh4LnN1YnN0cihxKSl9ZnVuY3Rpb24gaigpe2Z1bmN0aW9uIHEoeCx5LHYpe2lmKHguY29tcGlsZWQpe3JldHVybn12YXIgdTt2YXIgcz1bXTtpZih4Lmspe3gubFI9Zih5LHgubHx8aGxqcy5JUix0cnVlKTtmb3IodmFyIHcgaW4geC5rKXtpZigheC5rLmhhc093blByb3BlcnR5KHcpKXtjb250aW51ZX1pZih4Lmtbd10gaW5zdGFuY2VvZiBPYmplY3Qpe3U9eC5rW3ddfWVsc2V7dT14Lms7dz0ia2V5d29yZCJ9Zm9yKHZhciByIGluIHUpe2lmKCF1Lmhhc093blByb3BlcnR5KHIpKXtjb250aW51ZX14Lmtbcl09W3csdVtyXV07cy5wdXNoKHIpfX19aWYoIXYpe2lmKHguYldLKXt4LmI9IlxcYigiK3Muam9pbigifCIpKyIpXFxzIn14LmJSPWYoeSx4LmI/eC5iOiJcXEJ8XFxiIik7aWYoIXguZSYmIXguZVcpe3guZT0iXFxCfFxcYiJ9aWYoeC5lKXt4LmVSPWYoeSx4LmUpfX1pZih4Lmkpe3guaVI9Zih5LHguaSl9aWYoeC5yPT09dW5kZWZpbmVkKXt4LnI9MX1pZigheC5jKXt4LmM9W119eC5jb21waWxlZD10cnVlO2Zvcih2YXIgdD0wO3Q8eC5jLmxlbmd0aDt0Kyspe2lmKHguY1t0XT09InNlbGYiKXt4LmNbdF09eH1xKHguY1t0XSx5LGZhbHNlKX1pZih4LnN0YXJ0cyl7cSh4LnN0YXJ0cyx5LGZhbHNlKX19Zm9yKHZhciBwIGluIGUpe2lmKCFlLmhhc093blByb3BlcnR5KHApKXtjb250aW51ZX1xKGVbcF0uZE0sZVtwXSx0cnVlKX19ZnVuY3Rpb24gZChCLEMpe2lmKCFqLmNhbGxlZCl7aigpO2ouY2FsbGVkPXRydWV9ZnVuY3Rpb24gcShyLE0pe2Zvcih2YXIgTD0wO0w8TS5jLmxlbmd0aDtMKyspe2lmKChNLmNbTF0uYlIuZXhlYyhyKXx8W251bGxdKVswXT09cil7cmV0dXJuIE0uY1tMXX19fWZ1bmN0aW9uIHYoTCxyKXtpZihEW0xdLmUmJkRbTF0uZVIudGVzdChyKSl7cmV0dXJuIDF9aWYoRFtMXS5lVyl7dmFyIE09dihMLTEscik7cmV0dXJuIE0/TSsxOjB9cmV0dXJuIDB9ZnVuY3Rpb24gdyhyLEwpe3JldHVybiBMLmkmJkwuaVIudGVzdChyKX1mdW5jdGlvbiBLKE4sTyl7dmFyIE09W107Zm9yKHZhciBMPTA7TDxOLmMubGVuZ3RoO0wrKyl7TS5wdXNoKE4uY1tMXS5iKX12YXIgcj1ELmxlbmd0aC0xO2Rve2lmKERbcl0uZSl7TS5wdXNoKERbcl0uZSl9ci0tfXdoaWxlKERbcisxXS5lVyk7aWYoTi5pKXtNLnB1c2goTi5pKX1yZXR1cm4gZihPLE0uam9pbigifCIpLHRydWUpfWZ1bmN0aW9uIHAoTSxMKXt2YXIgTj1EW0QubGVuZ3RoLTFdO2lmKCFOLnQpe04udD1LKE4sRSl9Ti50Lmxhc3RJbmRleD1MO3ZhciByPU4udC5leGVjKE0pO3JldHVybiByP1tNLnN1YnN0cihMLHIuaW5kZXgtTCksclswXSxmYWxzZV06W00uc3Vic3RyKEwpLCIiLHRydWVdfWZ1bmN0aW9uIHooTixyKXt2YXIgTD1FLmNJP3JbMF0udG9Mb3dlckNhc2UoKTpyWzBdO3ZhciBNPU4ua1tMXTtpZihNJiZNIGluc3RhbmNlb2YgQXJyYXkpe3JldHVybiBNfXJldHVybiBmYWxzZX1mdW5jdGlvbiBGKEwsUCl7TD1tKEwpO2lmKCFQLmspe3JldHVybiBMfXZhciByPSIiO3ZhciBPPTA7UC5sUi5sYXN0SW5kZXg9MDt2YXIgTT1QLmxSLmV4ZWMoTCk7d2hpbGUoTSl7cis9TC5zdWJzdHIoTyxNLmluZGV4LU8pO3ZhciBOPXooUCxNKTtpZihOKXt4Kz1OWzFdO3IrPSc8c3BhbiBjbGFzcz0iJytOWzBdKyciPicrTVswXSsiPC9zcGFuPiJ9ZWxzZXtyKz1NWzBdfU89UC5sUi5sYXN0SW5kZXg7TT1QLmxSLmV4ZWMoTCl9cmV0dXJuIHIrTC5zdWJzdHIoTyxMLmxlbmd0aC1PKX1mdW5jdGlvbiBKKEwsTSl7aWYoTS5zTCYmZVtNLnNMXSl7dmFyIHI9ZChNLnNMLEwpO3grPXIua2V5d29yZF9jb3VudDtyZXR1cm4gci52YWx1ZX1lbHNle3JldHVybiBGKEwsTSl9fWZ1bmN0aW9uIEkoTSxyKXt2YXIgTD1NLmNOPyc8c3BhbiBjbGFzcz0iJytNLmNOKyciPic6IiI7aWYoTS5yQil7eSs9TDtNLmJ1ZmZlcj0iIn1lbHNle2lmKE0uZUIpe3krPW0ocikrTDtNLmJ1ZmZlcj0iIn1lbHNle3krPUw7TS5idWZmZXI9cn19RC5wdXNoKE0pO0ErPU0ucn1mdW5jdGlvbiBHKE4sTSxRKXt2YXIgUj1EW0QubGVuZ3RoLTFdO2lmKFEpe3krPUooUi5idWZmZXIrTixSKTtyZXR1cm4gZmFsc2V9dmFyIFA9cShNLFIpO2lmKFApe3krPUooUi5idWZmZXIrTixSKTtJKFAsTSk7cmV0dXJuIFAuckJ9dmFyIEw9dihELmxlbmd0aC0xLE0pO2lmKEwpe3ZhciBPPVIuY04/Ijwvc3Bhbj4iOiIiO2lmKFIuckUpe3krPUooUi5idWZmZXIrTixSKStPfWVsc2V7aWYoUi5lRSl7eSs9SihSLmJ1ZmZlcitOLFIpK08rbShNKX1lbHNle3krPUooUi5idWZmZXIrTitNLFIpK099fXdoaWxlKEw+MSl7Tz1EW0QubGVuZ3RoLTJdLmNOPyI8L3NwYW4+IjoiIjt5Kz1PO0wtLTtELmxlbmd0aC0tfXZhciByPURbRC5sZW5ndGgtMV07RC5sZW5ndGgtLTtEW0QubGVuZ3RoLTFdLmJ1ZmZlcj0iIjtpZihyLnN0YXJ0cyl7SShyLnN0YXJ0cywiIil9cmV0dXJuIFIuckV9aWYodyhNLFIpKXt0aHJvdyJJbGxlZ2FsIn19dmFyIEU9ZVtCXTt2YXIgRD1bRS5kTV07dmFyIEE9MDt2YXIgeD0wO3ZhciB5PSIiO3RyeXt2YXIgcyx1PTA7RS5kTS5idWZmZXI9IiI7ZG97cz1wKEMsdSk7dmFyIHQ9RyhzWzBdLHNbMV0sc1syXSk7dSs9c1swXS5sZW5ndGg7aWYoIXQpe3UrPXNbMV0ubGVuZ3RofX13aGlsZSghc1syXSk7aWYoRC5sZW5ndGg+MSl7dGhyb3ciSWxsZWdhbCJ9cmV0dXJue3I6QSxrZXl3b3JkX2NvdW50OngsdmFsdWU6eX19Y2F0Y2goSCl7aWYoSD09IklsbGVnYWwiKXtyZXR1cm57cjowLGtleXdvcmRfY291bnQ6MCx2YWx1ZTptKEMpfX1lbHNle3Rocm93IEh9fX1mdW5jdGlvbiBnKHQpe3ZhciBwPXtrZXl3b3JkX2NvdW50OjAscjowLHZhbHVlOm0odCl9O3ZhciByPXA7Zm9yKHZhciBxIGluIGUpe2lmKCFlLmhhc093blByb3BlcnR5KHEpKXtjb250aW51ZX12YXIgcz1kKHEsdCk7cy5sYW5ndWFnZT1xO2lmKHMua2V5d29yZF9jb3VudCtzLnI+ci5rZXl3b3JkX2NvdW50K3Iucil7cj1zfWlmKHMua2V5d29yZF9jb3VudCtzLnI+cC5rZXl3b3JkX2NvdW50K3Aucil7cj1wO3A9c319aWYoci5sYW5ndWFnZSl7cC5zZWNvbmRfYmVzdD1yfXJldHVybiBwfWZ1bmN0aW9uIGkocixxLHApe2lmKHEpe3I9ci5yZXBsYWNlKC9eKCg8W14+XSs+fFx0KSspL2dtLGZ1bmN0aW9uKHQsdyx2LHUpe3JldHVybiB3LnJlcGxhY2UoL1x0L2cscSl9KX1pZihwKXtyPXIucmVwbGFjZSgvXG4vZywiPGJyPiIpfXJldHVybiByfWZ1bmN0aW9uIG4odCx3LHIpe3ZhciB4PWgodCxyKTt2YXIgdj1hKHQpO3ZhciB5LHM7aWYodil7eT1kKHYseCl9ZWxzZXtyZXR1cm59dmFyIHE9Yyh0KTtpZihxLmxlbmd0aCl7cz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwcmUiKTtzLmlubmVySFRNTD15LnZhbHVlO3kudmFsdWU9ayhxLGMocykseCl9eS52YWx1ZT1pKHkudmFsdWUsdyxyKTt2YXIgdT10LmNsYXNzTmFtZTtpZighdS5tYXRjaCgiKFxcc3xeKShsYW5ndWFnZS0pPyIrdisiKFxcc3wkKSIpKXt1PXU/KHUrIiAiK3YpOnZ9aWYoL01TSUUgWzY3OF0vLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJnQudGFnTmFtZT09IkNPREUiJiZ0LnBhcmVudE5vZGUudGFnTmFtZT09IlBSRSIpe3M9dC5wYXJlbnROb2RlO3ZhciBwPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3AuaW5uZXJIVE1MPSI8cHJlPjxjb2RlPiIreS52YWx1ZSsiPC9jb2RlPjwvcHJlPiI7dD1wLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZDtwLmZpcnN0Q2hpbGQuY049cy5jTjtzLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKHAuZmlyc3RDaGlsZCxzKX1lbHNle3QuaW5uZXJIVE1MPXkudmFsdWV9dC5jbGFzc05hbWU9dTt0LnJlc3VsdD17bGFuZ3VhZ2U6dixrdzp5LmtleXdvcmRfY291bnQscmU6eS5yfTtpZih5LnNlY29uZF9iZXN0KXt0LnNlY29uZF9iZXN0PXtsYW5ndWFnZTp5LnNlY29uZF9iZXN0Lmxhbmd1YWdlLGt3Onkuc2Vjb25kX2Jlc3Qua2V5d29yZF9jb3VudCxyZTp5LnNlY29uZF9iZXN0LnJ9fX1mdW5jdGlvbiBvKCl7aWYoby5jYWxsZWQpe3JldHVybn1vLmNhbGxlZD10cnVlO3ZhciByPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwcmUiKTtmb3IodmFyIHA9MDtwPHIubGVuZ3RoO3ArKyl7dmFyIHE9YihyW3BdKTtpZihxKXtuKHEsaGxqcy50YWJSZXBsYWNlKX19fWZ1bmN0aW9uIGwoKXtpZih3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcil7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLG8sZmFsc2UpO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixvLGZhbHNlKX1lbHNle2lmKHdpbmRvdy5hdHRhY2hFdmVudCl7d2luZG93LmF0dGFjaEV2ZW50KCJvbmxvYWQiLG8pfWVsc2V7d2luZG93Lm9ubG9hZD1vfX19dmFyIGU9e307dGhpcy5MQU5HVUFHRVM9ZTt0aGlzLmhpZ2hsaWdodD1kO3RoaXMuaGlnaGxpZ2h0QXV0bz1nO3RoaXMuZml4TWFya3VwPWk7dGhpcy5oaWdobGlnaHRCbG9jaz1uO3RoaXMuaW5pdEhpZ2hsaWdodGluZz1vO3RoaXMuaW5pdEhpZ2hsaWdodGluZ09uTG9hZD1sO3RoaXMuSVI9IlthLXpBLVpdW2EtekEtWjAtOV9dKiI7dGhpcy5VSVI9IlthLXpBLVpfXVthLXpBLVowLTlfXSoiO3RoaXMuTlI9IlxcYlxcZCsoXFwuXFxkKyk/Ijt0aGlzLkNOUj0iXFxiKDBbeFhdW2EtZkEtRjAtOV0rfChcXGQrKFxcLlxcZCopP3xcXC5cXGQrKShbZUVdWy0rXT9cXGQrKT8pIjt0aGlzLkJOUj0iXFxiKDBiWzAxXSspIjt0aGlzLlJTUj0iIXwhPXwhPT18JXwlPXwmfCYmfCY9fFxcKnxcXCo9fFxcK3xcXCs9fCx8XFwufC18LT18L3wvPXw6fDt8PHw8PHw8PD18PD18PXw9PXw9PT18Pnw+PXw+Pnw+Pj18Pj4+fD4+Pj18XFw/fFxcW3xcXHt8XFwofFxcXnxcXF49fFxcfHxcXHw9fFxcfFxcfHx+Ijt0aGlzLkVSPSIoPyFbXFxzXFxTXSkiO3RoaXMuQkU9e2I6IlxcXFwuIixyOjB9O3RoaXMuQVNNPXtjTjoic3RyaW5nIixiOiInIixlOiInIixpOiJcXG4iLGM6W3RoaXMuQkVdLHI6MH07dGhpcy5RU009e2NOOiJzdHJpbmciLGI6JyInLGU6JyInLGk6IlxcbiIsYzpbdGhpcy5CRV0scjowfTt0aGlzLkNMQ009e2NOOiJjb21tZW50IixiOiIvLyIsZToiJCJ9O3RoaXMuQ0JMQ0xNPXtjTjoiY29tbWVudCIsYjoiL1xcKiIsZToiXFwqLyJ9O3RoaXMuSENNPXtjTjoiY29tbWVudCIsYjoiIyIsZToiJCJ9O3RoaXMuTk09e2NOOiJudW1iZXIiLGI6dGhpcy5OUixyOjB9O3RoaXMuQ05NPXtjTjoibnVtYmVyIixiOnRoaXMuQ05SLHI6MH07dGhpcy5CTk09e2NOOiJudW1iZXIiLGI6dGhpcy5CTlIscjowfTt0aGlzLmluaGVyaXQ9ZnVuY3Rpb24ocixzKXt2YXIgcD17fTtmb3IodmFyIHEgaW4gcil7cFtxXT1yW3FdfWlmKHMpe2Zvcih2YXIgcSBpbiBzKXtwW3FdPXNbcV19fXJldHVybiBwfX0oKTtobGpzLkxBTkdVQUdFUy5jcHA9ZnVuY3Rpb24oKXt2YXIgYT17a2V5d29yZDp7ImZhbHNlIjoxLCJpbnQiOjEsImZsb2F0IjoxLCJ3aGlsZSI6MSwicHJpdmF0ZSI6MSwiY2hhciI6MSwiY2F0Y2giOjEsImV4cG9ydCI6MSx2aXJ0dWFsOjEsb3BlcmF0b3I6MixzaXplb2Y6MixkeW5hbWljX2Nhc3Q6Mix0eXBlZGVmOjIsY29uc3RfY2FzdDoyLCJjb25zdCI6MSxzdHJ1Y3Q6MSwiZm9yIjoxLHN0YXRpY19jYXN0OjIsdW5pb246MSxuYW1lc3BhY2U6MSx1bnNpZ25lZDoxLCJsb25nIjoxLCJ0aHJvdyI6MSwidm9sYXRpbGUiOjIsInN0YXRpYyI6MSwicHJvdGVjdGVkIjoxLGJvb2w6MSx0ZW1wbGF0ZToxLG11dGFibGU6MSwiaWYiOjEsInB1YmxpYyI6MSxmcmllbmQ6MiwiZG8iOjEsInJldHVybiI6MSwiZ290byI6MSxhdXRvOjEsInZvaWQiOjIsImVudW0iOjEsImVsc2UiOjEsImJyZWFrIjoxLCJuZXciOjEsZXh0ZXJuOjEsdXNpbmc6MSwidHJ1ZSI6MSwiY2xhc3MiOjEsYXNtOjEsImNhc2UiOjEsdHlwZWlkOjEsInNob3J0IjoxLHJlaW50ZXJwcmV0X2Nhc3Q6MiwiZGVmYXVsdCI6MSwiZG91YmxlIjoxLHJlZ2lzdGVyOjEsZXhwbGljaXQ6MSxzaWduZWQ6MSx0eXBlbmFtZToxLCJ0cnkiOjEsInRoaXMiOjEsInN3aXRjaCI6MSwiY29udGludWUiOjEsd2NoYXJfdDoxLGlubGluZToxLCJkZWxldGUiOjEsYWxpZ25vZjoxLGNoYXIxNl90OjEsY2hhcjMyX3Q6MSxjb25zdGV4cHI6MSxkZWNsdHlwZToxLG5vZXhjZXB0OjEsbnVsbHB0cjoxLHN0YXRpY19hc3NlcnQ6MSx0aHJlYWRfbG9jYWw6MSxyZXN0cmljdDoxLF9Cb29sOjEsY29tcGxleDoxfSxidWlsdF9pbjp7c3RkOjEsc3RyaW5nOjEsY2luOjEsY291dDoxLGNlcnI6MSxjbG9nOjEsc3RyaW5nc3RyZWFtOjEsaXN0cmluZ3N0cmVhbToxLG9zdHJpbmdzdHJlYW06MSxhdXRvX3B0cjoxLGRlcXVlOjEsbGlzdDoxLHF1ZXVlOjEsc3RhY2s6MSx2ZWN0b3I6MSxtYXA6MSxzZXQ6MSxiaXRzZXQ6MSxtdWx0aXNldDoxLG11bHRpbWFwOjEsdW5vcmRlcmVkX3NldDoxLHVub3JkZXJlZF9tYXA6MSx1bm9yZGVyZWRfbXVsdGlzZXQ6MSx1bm9yZGVyZWRfbXVsdGltYXA6MSxhcnJheToxLHNoYXJlZF9wdHI6MX19O3JldHVybntkTTp7azphLGk6IjwvIixjOltobGpzLkNMQ00saGxqcy5DQkxDTE0saGxqcy5RU00se2NOOiJzdHJpbmciLGI6IidcXFxcPy4iLGU6IiciLGk6Ii4ifSx7Y046Im51bWJlciIsYjoiXFxiKFxcZCsoXFwuXFxkKik/fFxcLlxcZCspKHV8VXxsfEx8dWx8VUx8ZnxGKSJ9LGhsanMuQ05NLHtjTjoicHJlcHJvY2Vzc29yIixiOiIjIixlOiIkIn0se2NOOiJzdGxfY29udGFpbmVyIixiOiJcXGIoZGVxdWV8bGlzdHxxdWV1ZXxzdGFja3x2ZWN0b3J8bWFwfHNldHxiaXRzZXR8bXVsdGlzZXR8bXVsdGltYXB8dW5vcmRlcmVkX21hcHx1bm9yZGVyZWRfc2V0fHVub3JkZXJlZF9tdWx0aXNldHx1bm9yZGVyZWRfbXVsdGltYXB8YXJyYXkpXFxzKjwiLGU6Ij4iLGs6YSxyOjEwLGM6WyJzZWxmIl19XX19fSgpO2hsanMuTEFOR1VBR0VTLnI9e2RNOntjOltobGpzLkhDTSx7Y046Im51bWJlciIsYjoiXFxiMFt4WF1bMC05YS1mQS1GXStbTGldP1xcYiIsZTpobGpzLklNTUVESUFURV9SRSxyOjB9LHtjTjoibnVtYmVyIixiOiJcXGJcXGQrKD86W2VFXVsrXFwtXT9cXGQqKT9MXFxiIixlOmhsanMuSU1NRURJQVRFX1JFLHI6MH0se2NOOiJudW1iZXIiLGI6IlxcYlxcZCtcXC4oPyFcXGQpKD86aVxcYik/IixlOmhsanMuSU1NRURJQVRFX1JFLHI6MX0se2NOOiJudW1iZXIiLGI6IlxcYlxcZCsoPzpcXC5cXGQqKT8oPzpbZUVdWytcXC1dP1xcZCopP2k/XFxiIixlOmhsanMuSU1NRURJQVRFX1JFLHI6MH0se2NOOiJudW1iZXIiLGI6IlxcLlxcZCsoPzpbZUVdWytcXC1dP1xcZCopP2k/XFxiIixlOmhsanMuSU1NRURJQVRFX1JFLHI6MX0se2NOOiJrZXl3b3JkIixiOiIoPzp0cnlDYXRjaHxsaWJyYXJ5fHNldEdlbmVyaWN8c2V0R3JvdXBHZW5lcmljKVxcYiIsZTpobGpzLklNTUVESUFURV9SRSxyOjEwfSx7Y046ImtleXdvcmQiLGI6IlxcLlxcLlxcLiIsZTpobGpzLklNTUVESUFURV9SRSxyOjEwfSx7Y046ImtleXdvcmQiLGI6IlxcLlxcLlxcZCsoPyFbXFx3Ll0pIixlOmhsanMuSU1NRURJQVRFX1JFLHI6MTB9LHtjTjoia2V5d29yZCIsYjoiXFxiKD86ZnVuY3Rpb24pIixlOmhsanMuSU1NRURJQVRFX1JFLHI6Mn0se2NOOiJrZXl3b3JkIixiOiIoPzppZnxpbnxicmVha3xuZXh0fHJlcGVhdHxlbHNlfGZvcnxyZXR1cm58c3dpdGNofHdoaWxlfHRyeXxzdG9wfHdhcm5pbmd8cmVxdWlyZXxhdHRhY2h8ZGV0YWNofHNvdXJjZXxzZXRNZXRob2R8c2V0Q2xhc3MpXFxiIixlOmhsanMuSU1NRURJQVRFX1JFLHI6MX0se2NOOiJsaXRlcmFsIixiOiIoPzpOQXxOQV9pbnRlZ2VyX3xOQV9yZWFsX3xOQV9jaGFyYWN0ZXJffE5BX2NvbXBsZXhfKVxcYiIsZTpobGpzLklNTUVESUFURV9SRSxyOjEwfSx7Y046ImxpdGVyYWwiLGI6Iig/Ok5VTEx8VFJVRXxGQUxTRXxUfEZ8SW5mfE5hTilcXGIiLGU6aGxqcy5JTU1FRElBVEVfUkUscjoxfSx7Y046ImlkZW50aWZpZXIiLGI6IlthLXpBLVouXVthLXpBLVowLTkuX10qXFxiIixlOmhsanMuSU1NRURJQVRFX1JFLHI6MH0se2NOOiJvcGVyYXRvciIsYjoiPFxcLSg/IVxccypcXGQpIixlOmhsanMuSU1NRURJQVRFX1JFLHI6Mn0se2NOOiJvcGVyYXRvciIsYjoiXFwtPnw8XFwtIixlOmhsanMuSU1NRURJQVRFX1JFLHI6MX0se2NOOiJvcGVyYXRvciIsYjoiJSV8fiIsZTpobGpzLklNTUVESUFURV9SRX0se2NOOiJvcGVyYXRvciIsYjoiPj18PD18PT18IT18XFx8XFx8fCYmfD18XFwrfFxcLXxcXCp8L3xcXF58Pnw8fCF8JnxcXHx8XFwkfDoiLGU6aGxqcy5JTU1FRElBVEVfUkUscjowfSx7Y046Im9wZXJhdG9yIixiOiIlIixlOiIlIixpOiJcXG4iLHI6MX0se2NOOiJpZGVudGlmaWVyIixiOiJgIixlOiJgIixyOjB9LHtjTjoic3RyaW5nIixiOiciJyxlOiciJyxjOltobGpzLkJFXSxyOjB9LHtjTjoic3RyaW5nIixiOiInIixlOiInIixjOltobGpzLkJFXSxyOjB9LHtjTjoicGFyZW4iLGI6IltbKHtcXF0pfV0iLGU6aGxqcy5JTU1FRElBVEVfUkUscjowfV19fTsKaGxqcy5pbml0SGlnaGxpZ2h0aW5nT25Mb2FkKCk7Cgo="></script>
<style type="text/css">
pre:not([class]) {
background-color: white;
}
</style>
<script type="text/javascript">
if (window.hljs && document.readyState && document.readyState === "complete") {
window.setTimeout(function() {
hljs.initHighlighting();
}, 0);
}
</script>
<link href="data:text/css;charset=utf-8,%23summary%20li%20%7B%0Amargin%3A%200%3B%0Aline%2Dheight%3A%2022px%3B%0A%7D%0A" rel="stylesheet" type="text/css" />
</head>
<body>
<style type="text/css">
.main-container {
max-width: 940px;
margin-left: auto;
margin-right: auto;
}
code {
color: inherit;
background-color: rgba(0, 0, 0, 0.04);
}
img {
max-width:100%;
height: auto;
}
</style>
<div class="container-fluid main-container">
<div style="align: center;">
<h1 style="font-style: italic;">Who is using Wikidata Query Service and how are they using it?</h1>
<p>Mikhail Popov<br>
<span style="color: DimGray;">Discovery / Analysis</span><br>
<span style="color: Gray;">Wikimedia Foundation</span></p>
<h2>Summary</h2>
<ul id="summary">
<li>We announced the launch of WDQS on Labor Day (Monday, September 7th, 2014) and saw a huge spike in number of users. While the number of users has fallen over time (to around 100 users per day on average), we've seen high usage of the service.</li>
<li>The users of the service are a geographically diverse bunch, representing 73 different countries. Many of the users were from U.S. (17.8%), Germany (13.4%), and France (12.8%). One of the more interesting findings is how much of the usage is by very few users in Republic of Korea.</li>
<li>The majority of WDQS users prefer Chrome (42.1%) and Firefox (26.2%) as their browsers and Mac OS X (26.9%) and Windows 7 (22.2%) as their operating systems. A vast of majority of our users are coming to use the service directly, rather than coming to it from elsewhere on the Internet.</li>
<li>As many as 56.48% of the queries are user-written. In reality, the actual number is smaller because the detection procedure did not take into account French translations of example queries that exist on MediaWiki/Wikitech.</li>
</ul>
</div>
<h2>Table of Contents</h2>
<div id="TOC">
<ul>
<li><a href="#background">Background</a></li>
<li><a href="#statistics">Statistics</a><ul>
<li><a href="#user-written-queries-vs-provided-example-queries">User-written queries vs provided example queries</a></li>
<li><a href="#tracking-daily-service-usage-in-top-countries">Tracking daily service usage in top countries</a></li>
<li><a href="#who-are-our-most-active-users">Who are our most active users?</a></li>
<li><a href="#referrers">Referrers</a></li>
</ul></li>
<li><a href="#queries">Queries</a><ul>
<li><a href="#query-lengths">Query lengths</a></li>
<li><a href="#example-queries">Example queries</a></li>
</ul></li>
<li><a href="#discussion">Discussion</a><ul>
<li><a href="#partial-queries">Partial Queries</a></li>
<li><a href="#example-matching">Example Matching</a></li>
</ul></li>
<li><a href="#acknowledgements">Acknowledgements</a></li>
<li><a href="#references">References</a></li>
</ul>
</div>
<div id="background" class="section level2">
<h2>Background</h2>
<p>The Wikidata Query Service (WDQS) is designed to let users run queries on the data contained in Wikidata. The service uses <em>SPARQL Protocol and RDF Query Language</em> (SPARQL) as the query language.</p>
</div>
<div id="statistics" class="section level2">
<h2>Statistics</h2>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA8AAAAHgCAYAAABq5QSEAAAEDWlDQ1BJQ0MgUHJvZmlsZQAAOI2NVV1oHFUUPrtzZyMkzlNsNIV0qD8NJQ2TVjShtLp/3d02bpZJNtoi6GT27s6Yyc44M7v9oU9FUHwx6psUxL+3gCAo9Q/bPrQvlQol2tQgKD60+INQ6Ium65k7M5lpurHeZe58853vnnvuuWfvBei5qliWkRQBFpquLRcy4nOHj4g9K5CEh6AXBqFXUR0rXalMAjZPC3e1W99Dwntf2dXd/p+tt0YdFSBxH2Kz5qgLiI8B8KdVy3YBevqRHz/qWh72Yui3MUDEL3q44WPXw3M+fo1pZuQs4tOIBVVTaoiXEI/MxfhGDPsxsNZfoE1q66ro5aJim3XdoLFw72H+n23BaIXzbcOnz5mfPoTvYVz7KzUl5+FRxEuqkp9G/Ajia219thzg25abkRE/BpDc3pqvphHvRFys2weqvp+krbWKIX7nhDbzLOItiM8358pTwdirqpPFnMF2xLc1WvLyOwTAibpbmvHHcvttU57y5+XqNZrLe3lE/Pq8eUj2fXKfOe3pfOjzhJYtB/yll5SDFcSDiH+hRkH25+L+sdxKEAMZahrlSX8ukqMOWy/jXW2m6M9LDBc31B9LFuv6gVKg/0Szi3KAr1kGq1GMjU/aLbnq6/lRxc4XfJ98hTargX++DbMJBSiYMIe9Ck1YAxFkKEAG3xbYaKmDDgYyFK0UGYpfoWYXG+fAPPI6tJnNwb7ClP7IyF+D+bjOtCpkhz6CFrIa/I6sFtNl8auFXGMTP34sNwI/JhkgEtmDz14ySfaRcTIBInmKPE32kxyyE2Tv+thKbEVePDfW/byMM1Kmm0XdObS7oGD/MypMXFPXrCwOtoYjyyn7BV29/MZfsVzpLDdRtuIZnbpXzvlf+ev8MvYr/Gqk4H/kV/G3csdazLuyTMPsbFhzd1UabQbjFvDRmcWJxR3zcfHkVw9GfpbJmeev9F08WW8uDkaslwX6avlWGU6NRKz0g/SHtCy9J30o/ca9zX3Kfc19zn3BXQKRO8ud477hLnAfc1/G9mrzGlrfexZ5GLdn6ZZrrEohI2wVHhZywjbhUWEy8icMCGNCUdiBlq3r+xafL549HQ5jH+an+1y+LlYBifuxAvRN/lVVVOlwlCkdVm9NOL5BE4wkQ2SMlDZU97hX86EilU/lUmkQUztTE6mx1EEPh7OmdqBtAvv8HdWpbrJS6tJj3n0CWdM6busNzRV3S9KTYhqvNiqWmuroiKgYhshMjmhTh9ptWhsF7970j/SbMrsPE1suR5z7DMC+P/Hs+y7ijrQAlhyAgccjbhjPygfeBTjzhNqy28EdkUh8C+DU9+z2v/oyeH791OncxHOs5y2AtTc7nb/f73TWPkD/qwBnjX8BoJ98VVBg/m8AAEAASURBVHgB7J0HvBTV9cfPo0jvIhZEUIoNEUussWs0xq7BllhiiUajMbb8bbHE2Hs3aqxRY++9a+wCShFIBAFRAem9vD+/MXdyd9ndNzs7u2/L93w+783dmTu3fGd2ds49555bN2XKlHpDIAABCEAAAhCAAAQgAAEIQAACVU6gSZX3j+5BAAIQgAAEIAABCEAAAhCAAAQCAijA3AgQgAAEIAABCEAAAhCAAAQgUBMEUIBr4jLTSQhAAAIQgAAEIAABCEAAAhBAAeYegAAEIAABCEAAAhCAAAQgAIGaIIACXBOXmU5CAAIQgAAEIAABCEAAAhCAAAow9wAEIAABCEAAAhCAAAQgAAEI1AQBFOCauMx0EgIQgAAEIAABCEAAAhCAAARQgLkHIAABCEAAAhCAAAQgAAEIQKAmCKAA18RlppMQgAAEIAABCEAAAhCAAAQggALMPQABCEAAAhCAAAQgAAEIQAACNUEABbgmLjOdhAAEIAABCEAAAhCAAAQgAAEUYO4BCEAAAhCAAAQgAAEIQAACEKgJAijANXGZ6SQEIAABCEAAAhCAAAQgAAEIoABzD0AAAhCAAAQgAAEIQAACEIBATRBAAa6Jy0wnIQABCEAAAhCAAAQgAAEIQAAFmHsAAhCAAAQgAAEIQAACEIAABGqCAApwTVxmOgkBCEAAAhCAAAQgAAEIQAACKMDcAxCAAAQgAAEIQAACEIAABCBQEwRQgGviMtNJCEAAAhCAAAQgAAEIQAACEEAB5h6AAAQgAAEIQAACEIAABCAAgZoggAJcE5eZTkIAAhCAAAQgAAEIQAACEIAACjD3AAQgAAEIQAACEIAABCAAAQjUBAEU4Jq4zHQSAhCAAAQgAAEIQAACEIAABJqBIBkC8+bNsy+++CJrYS1btrRVV13VunTpkjVP3APjx48P666rq7Ndd901LOrzzz+3+fPnB59XX311W3nllcNjJJYn8Prrr4e8+vTpY717914+E3sqksC7775rQ4YMsebNm9uRRx5pTZs2rbh+8H02y/W8q7gLWgENnjt3ro0aNSpsab9+/axVq1bh52InFi5caHfeeactXbrUNt100+Cv2HVSPgQgAAEIVDcBFOCEru+3335rZ5xxRoOlSRHefvvt7de//rV169atwfxRMgwdOtSuvPLKIGu6AvzXv/7V1DbJ0UcfbQcddFCQ5l9mAjfffLNNmTIlOHj44YejAGfGVHF7v/vuO7v44otNA1X77LNPqPzqWn///fdBf1q0aGFrrbVWYn0rRtl8n81yPe8Su3gUFBKYMGGCnXLKKeHn22+/PdHvSVhwlsQKK6xgM2bMsBdffNFeeuklu+uuu6xTp05ZcrMbAhCAAAQg0DABXKAbZpRoDlljn3/++UAZHTNmTKJlUxgEIJCZwFVXXRUov7L6HnjggWEmvVCfcMIJwd9f/vKXcH8SiWKWnUT7KAMClULADdzOnDnTrr/++kppNu2EAAQgAIEyJYAFuEgXZs0117TOnTsHpS9ZssQmTZoUWmK1c/bs2YHF+P777zdZhQuRlVZayTbffPOgCFmAkfgENtpoI9NLlqR79+7xC+LMsiHw0Ucfmf4k8r7o2rVr2bSNhuRPgOdd/swq/YwePXrYlltuae+995698cYbtt9++9l6661X6d2i/RCAAAQg0EgEUICLBP5Xv/qVbbvttimly43rggsusM8++yzYP23atMCta6+99krJ53+Q8rx48WKTe2Y2Kcd5UWr3Dz/8YB07dgzmXGZre/r+RYsWmc6NOyggC3vcc9WWM888M71JOT/nW1+h/cvZmDwPStGvr6+3Dh06RD4zyv2YqTDN45MrY76SBC+5TDrZd999XTLWVrzkTt22bdvgL1YhWU6KyzZLcVl3ay6lnilxrkfWQiMcKORa+m3O53kXp864z64ICIJnWz5zz+O0329Hvs8nd67q1Vz5fKWY97C+u1KAJfpOX3HFFfk2j/wQgAAEIACBgAAKcAlvBCkal156qQ0aNMik/EoeffRR23PPPc233GrO7t/+9jf797//bRMnTgxeVtu1a2frrLOO7bLLLrbDDjuktFrBff7xj38E+1ROQy5isjr/61//CvNrXqFe6H256aabbPjw4cEujb6ffvrp/uGMab38PPvs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339/mCYBARGIpAD/7Gc/s0MPPdTkAnLttdfavHnzoAcBCEAAAhBIIVBJCnDr1q2td+/eYftxgw5RkIAABNIIuHgB2l3s+b+uat8CXC4DdJpTe9lll9kBBxwQzk9We6UjvPDCC9ajRw/X/Ebf+m7QTz31lM2cObPR20QDyodAJAd9jfRoIr4mtesmeuWVV4KFrfUCkU0uvfTSbIfYDwEIQAACVUZALsQzZswIe1XuLtBqqFwZFblUIgV47733DtL8gwAEIOAI6Lk2ZswY97FRFGC58Ta2aF3dY4891t58882wKa1atbIrrrjCBg0aFOzz5wGHmRopIePdiiuuGKwHrHWBZZ0+4ogjGqk1VFtuBCIpwCNGjLDnn38+bPvcuXMDa3C4gwQEIAABCNQMgSbLfjmad15sTZr/L7DI9OnTbcmSJSGDSlCAncueGo0FOLx0JCAAAY/AZ599Fn5SZOY11lgj/FzMRK9evcLi58yZY99++62tvPLK4b5SJj788EM78sgjgza4euVBo3V/NZ2kHEXztLWqzU033RQ0T2sCowCX45VqnDZFUoC32267snJraBxU1AoBCEAAAiLQoW+9bfbcWOuy2mohEN/9WevstmvXLjxWrglZgJ1oLWAEAhCAQDqBxpj/qzboGbrSSivZ999/HzRJbtCNoQBLgTz//PNTBjjlLXPNNdeYgl6Vs8g12ynAQ4YMMV3LUrmwlzMX2mYWSQHW6E65jvBwESEAAQhAoPEJ+AqwrCSVIP5SJnrJ/O6776xbt26V0HTaCAEIFJHApEmT7KWXXrIXX3wxxeW31MqT5gH7CvCWW25ZxF6nFq05syeccII999xz4QFZVS+88EI76qijwn3lnOjbt69tvfXW9s477wTNvOOOO1CAy/mClbBtkRTg9PbIx19LI8kVWhPe9cKwePHiRlvzK719fIYABCAAgdIS8BXgTp06lbbymLVpfpiiheplVyIrMApwTJicBoEKJqAYBrIQSuHV39ChQzP2ZtNNN824v1g7pQC///77QfGlDISlKSFyFx47dmzYte7du9udd95ppYqCHVZcYOI3v/lNqAA/8cQTdsEFFwRzgwssltMrnEBeCrDmQTz22GPBl9HN9TrllFPsF7/4RRABbvPNN7ejjz7a2rRpU+FYaD4EIAABCORDwFeAK8UCrP71798/VID10ucvnZFP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996mSZMmbrfot74Z9LBhwwzzWhVqJoBVgL8m9O67717zRUohAiJgCfgC8KxZs8yyZctySuabb74x3333XXAPTKDLJUgDXC4trXqKgAiIQEgE5s+fH+QkDXCAomARXwOcTxPol19+OahzqZg/uwodfvjhgWn5vHnzzEsvveROaZuCwKeffhp02hs2bKj5vylY6ZQIxBPo0KGDYd1sF6ZMmeKiOdn683+33HLLsprSJAE4J4+UMhUBERCB0iXga4DlAbrw7VwIARhNs79E0P777194ECGWAMduRxxxRJDjgw8+GMQVSU7AX/6I9X8RghVEQATSI1BRUWG6d+8eJM61IyxfAC4n82cASwAOHjNFREAEREAE0iHgC8AygU6HWG7T+CbQmLSxrmOuwxtvvBHcolevXqZNmzbBfqlETjvttKAqeLvGy7ZCagIjR44MEmj+b4BCERFIm4BvBo0TvlwGCcC5pKu8RUAEREAESorA4u9Wmn7mFNPMtJUTrAi0LE6bnNnc+vXrTT7MoF9//fWg5v379w/ipRTBg7HrjML1oYceKqXqhV6XtWvXmtGjRwf5av5vgEIREUibgHvncEEuNcD4NZgwYUJQLmmAAxSKiIAIiIAIiEB1Aivn1DODza2mjSmvOUPVSUTjCGZzvhl0rrUGrPE6atSooPJ77bVXEC+1yJAhQ4IqPfbYYwYnTwqJCUycONEsXbrUnmTpo3JyqJOYiI6KQOYE8iUAjx8/3qxcudIWEC/+PXr0yLywRXyFTKCLuPFUdBEQAREoBIElixcHt9Uc4ABFQSO+GXSuNcAjRowwq1atsvVt3ry52X777Qta91zeHG/Qbh1bvKW+8sorubxdUec9ZsyYoPxok9z61MFBRURABGok4AvAX331lVm3bl2N19QmgW/+3Lt3b1OvXr3aZFO010gALtqmU8FFQAREoDAEFi1eFNxYAnCAoqARXwOcawH4zTffDOqKmXDdunWD/VKL4OUcj9AuyAzakai+9QVgmT9X56MjIpAOgS5duhiseghoaKdPn57OZRmn8QXgcjN/BpYE4IwfGV0gAiIgAuVNYLE0wJF7APKpAfYdYO26666RYxF2gU499dQgS4R/3/t1cKLMI8z/HTduXEBBDrACFIqIQEYEsJzYYostgmtyNQ9YAnCAWBEREAEREAERSE0Apxn+PMhNNtkk9QU6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IlBUBCQAF1VzqbAiIAIiIAIiIAIiEEugQ4cOMfN///Wvf8Ws6Rubuvqe7wF6hx12qJ5AR0RABESghAhIAC6hxlRVREAERCAfBBpstN60PWCJadRGbqDzwVv3EIF0CJx99tlm6623tknXV7poxyEWc3vTCb4GWPN/0yGmNCIgAsVMQAJwMbeeyi4CIiACBSDQdDNjtv7j96b5lhKAC4BftxSBhATq1asXsxYwWt0HH3wwYVr/4Jo1a8yECROCQ9IABygUEQERKFECEoBLtGFVLREQAREQAREQgfIisNtuu5ljjz02qPR1111nmBOcKkyaNMmsXLnSJmnQoIHp0aNHquQ6JwIiIAJFT0ACcNE3oSogAiIgAiIgAiIgAlUE/vjHP5oWLVrYHbxBX3311SnR+ObPeH+uX79+yvQ6KQIiIALFTkACcLG3oMovAiIgAiIgAiIgAj8RaNu2rbn88ssDHo899pgZPXp0sB8f8QVgzf+Np6N9ERCBUiQgAbgUW1V1EgEREAEREAERKFsCP//5z832228f1P+iiy4yzPVNFOQBOhEVHRMBEShlAhKAS7l1VTcREAERyAGBpd8YM/F37cziLytykLuyFAERyJZAnTp1rEOsioqq3yjzfO+///5q2TL3d+LEicFxOcAKUCgiAiJQwgQkAJdw46pqIiACIpALAquXVJj57zYzKxdIAM4FX+UpAmEQ6NOnjzn11FODrG666SYze/bsYJ/I559/HmiGGzduHCyjFJNIOyIgAiJQYgQkAJdYg6o6IiACIiACIiACIgCBK6+80rRu3drCWLp0qbniiitiwPjzf3v16mXq1q0bc147IiACIlCKBCQAl2Krqk4iIAIiIAIiIAJlT6Bly5bmqquuCjgMHz7cvP3228G+5v8GKBQRAREoIwISgMuosVVVERABERABERCB8iJwwgknmJ133jmo9CWXXGJWrVpl930NsOb/BogUEQERKHECEoBLvIFVPREQARHICYG6602FviA5QatMRSBMAjjCuvnmmwPz5qlTp5o777zT/Pjjj+aLL74IbiUBOEChiAiIQIkTUPelxBtY1RMBERCBsAm06rHe7PH+VNNmp3VhZ638REAEckCgZ8+e5swzzwxyvvXWW80LL7xg1q2r+g03a9bMbLXVVsF5RURABESglAlIAC7l1lXdREAEREAEREAERKCSAKbP7dq1syxWrFhhLrzwwoALawa7JZOCg4qIgAiIQIkSkABcog2raomACIiACIiACIiAI9C8eXNz7bXXul1rAu12ZP7sSGgrAiJQDgQkAJdDK6uOIiACIiACIiACZU9g0KBBpn///tU4SACuhkQHREAESpiABOASblxVTQREQAREQAREQAR8AjfddJOpX7++f8j07t07Zl87IiACIlDKBCQAl3Lrqm4iIAIikAMCqxYZM/fVZmbl/BxkrixFQARySqBbt27m17/+dXAP1gru3LlzsK+ICIiACJQ6AQnApd7Cqp8IiIAIhExg2cwK88Uf2pnFU/QJCRmtshOBvBD47W9/a5zZ89lnn52Xe+omIiACIhAVAvWiUhCVQwREQAREQAREQAREIPcEGjdubF577TWzZMkS06JFi9zfUHcQAREQgQgR0PB9hBpDRREBERABERABERCBfBBg2SMJv/kgrXuIgAhEjYAE4Ki1iMojAiIgAiIgAiIgAiIgAiIgAiKQEwISgHOCVZmKgAiIgAiIgAiIgAiIgAiIgAhEjYAE4Ki1iMojAiIgAhEn0LTjevOz62ebFluti3hJVTwREAEREAEREAERiCUgATiWh/ZEQAREQARqINCg0mdOm32WmYatakio0yIgAiIgAiIgAiIQMQISgCPWICqOCIiACIiACIiACIiACIiACIhAbghIAM4NV+UqAiIgAiIgAiIgAiIgAiIgAiIQMQISgCPWICqOCIiACIiACIiACIiACIiACIhAbghIAM4NV+UqAiIgAiVNYL38X5V0+6pyIiACIiACIlCqBCQAl2rLql4iIAIikCMCCyZWmPd362bmfqhPSI4QK1sREAEREAEREIEcEVDvJUdgla0IiIAIiIAIiIAIiIAIiIAIiEC0CEgAjlZ7qDQiIAIiIAIiIAIiIAIiIAIiIAI5IiABOEdgla0IiIAIiIAIiIAIiIAIiIAIiEC0CEgAjlZ7qDQiIAIiIAIiIAIiIAIiIAIiIAI5IlAvR/kq2xIj0KxZM9O4ceMSq5WqkymBRo0amTZt2mR6mdKXGIEWHeuaXlf+aFp2a1BiNVN1MiXA+0DfhkyplV76li1bmjp1pFMpvZbNrEb0FRs2bJjZRUpdcgRcX7GioiKydauYN2/e+siWTgUTAREQAREQAREQAREQAREQAREQgZAIaLguJJDKRgREQAREQAREQAREQAREQAREINoEJABHu31UOhEQAREQAREQAREQAREQAREQgZAISAAOCaSyEQEREAEREAEREAEREAEREAERiDYBCcDRbh+VTgREQAREQAREQAREQAREQAREICQCEoBDAqlsREAEREAEREAEREAEREAEREAEok1AAnC020elEwEREAEREAEREAEREAEREAERCImABOCQQCobERABERABERABERABERABERCBaBOoF+3iqXQiIAIiIALZEFi1apX57rvvzJIlS8wmm2xi2rZtm012urZICaxfv97MmzfPfP/992ajjTYy7du3N/XqqQtQpM1Z62LrOag1upK7cOnSpWbmzJmmTp06pkOHDqZp06YlV0dVKDMC9BemTZtmGjdubDp27Gjq1q2bWQZFlFpfvyJqrHSLygN8zDHHGF5uQ4cONZtvvnm6l4aS7vXXXzfjx4838+fPN506dTJHHXVU0k73qFGjzBNPPGGuv/5607Bhw1Dur0yqCBTyOVi+fLl5+eWXzcSJE02bNm3Mrrvuanr27Jn0ZXrrrbeaAw44wPTo0UPNFyKBp59+2jzwwANm2bJlQa5bb721+dWvfmW23Xbb4FguI3PmzDHvvvuu+fLLL2377r333lYA454vvPCCmT17dtLb//znP0/6zCS9SCeqEZg0aZL561//aqZOnRqca9mypTnhhBPM4MGDg2P5iLzyyit2MIZvVKpw3333mYqKCnPWWWelSqZzGRCIwnOwcOFC8+qrrxrKwgDMNttsY4444oiEv/NvvvnG/Otf/zJ/+MMfMqilktZEgL7hnXfeaV577bUgKULwPvvsY84//3zTrFmz4HguIzX1FX/44Qfz3//+18yYMcO0aNHC7LHHHmb33XfPZZHKNu9Zs2aZG264wfzvf/8za9assRwaNGhgevfubX73u9+ZVq1apc2G3+26devMFltskfKaVH0DLmRw5qWXXqqWB++MMJ4DCcDV0Bb/gdGjR1vhlxfam2++aYYMGZK3SvFSfeaZZ0yvXr0MPx6E2xdffNHcfffdZrPNNospx6JFi8zNN99sFixYYNauXRtzTjvZEyjUc4DgfcUVV1jhd/vtt7cvsccff9wgePF8xGudPvnkE/Pcc8+ZPn36ZF9p5RAQGDlypOU9YMAAs++++9qP0ZQpU8w999xj2+fvf/970oGpIJMs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zwGjtphJMWDCizHR4EzpUIxuTeh40g6YpPFb71w5eptI08oIKxpitnRE/Q4Omh60fozAoiVmZJc0TkiqqfY8Y4wU46MgjJHbmu6n89UJMEKPSSHtwKAov0kGQxIF2hdNDiaMvmVOts9BonvpWH4JhPEcoOlD2Lm60mEaQi8msDwresfnty2zvRvvAqelw6TUCb7x+WK9w7eB9kVI9gMDaDhFQyAiP/qMYZinunuQJ98v3lV8u5IJ1S69ttkRwHEZv2d4Mz841featuF8IhkCB7w8NzUNVqTTN6AvyfcIywW0x2EFaYDDIlmE+biJ6ImKjpaGThLaADrCaBcxh4t/+SW6VseKi0CungNefDW9/IqLVHGWFvNRtD81BToWCKg1BT5ALEmRSeAZS/WcZZKX0taOAIMedGic05NUudARTtYZdtfV5jlw12pbOAJhPwdYEmT6Pihc7XVnnwBzP+M9+/vnXRwNnm+1447Hb9PJK/6amvbTLWNN+eh8egSY7oKZczohVXsjGKfT/0unb5CrvqQE4HRauQzTsGQKo7uDBw+25g2MCDGyh9mMQvkQ0HNQPm2tmoqACIiACIiACIhAORCQCXQ5tHIt64ipI3N1mLeD1oC5wols+WuZvS4rEgJ6DoqkoXJYTMzk8PjK3B6F8iWg56B8296vOWbUOL/CoZXW8PXJlF8cz99YFaTyBVF+VFTjYiAgAbgYWkllFAEREAEREIEEBPCqzVwrzFCTzelNcJkOiYAIiIAIiEDZEtAySGXb9Kq4CIiACIhAsRO49957zSWXXGKXK8m2Llh78Oc8bmabn64XAREQAREQgSgSkAAcxVZRmURABERABEQgjwTw/s0SE/zhdVNBBERABERABEqVgATgUm1Z1UsEREAEREAEREAEREAEREAERCCGgATgGBzaEQEREAEREAEREAEREAEREAERKFUCWgapVFtW9RIBERABESgZAiNHjjSfffaZ+eqrr6xX/t69e9e4XuN3331nhg8fbj14Y9aMk6yOHTuagQMHml69egVsnn/+eevt3x148MEHTaNGjcxpp51mWO/XBeYGv/XWW7YcU6ZMMZtssonZbrvtzK677mrjLp22IiACIiACIhBlAvICHeXWUdlEQAREQATKmsDatWvN7bffbhBS48O+++5rEHI///xzc+ONN5q+ffsGSUaNGmWuuOIKu347B1mqhOVrXDjmmGPMOeecY3cvvvhiM3bsWHcq2D7xxBOmTZs2dh9P0zfccIMh3/jQrFkzu258nz594k9pXwREQAREQAQiR0ACcOSaRAUSAREQAREQgSoCd999t/nvf/9rBdhf/OIXpl+/flaQffXVV+1xx8kXgFesWGGOOuoow/bEE080xx57rGnevLmZPn261eA+/PDD9rL777/fdOvWzQrRCLhnn322PX7LLbeYli1bms0339zUrVvXHjvvvPPMhAkTzJZbbml+9atfma222srMnj3bUI6nnnrKprvpppsMmmkFERABERABEYgyAZlAR7l1VDYREAEREIGyJbBgwQLz7LPP2vpfffXV1tTYwUBwbdy4sXHCrDvOFvNkhN9OnTqZM844IzjVuXNna9b8zjvvmBkzZpj//e9/VgBu166d2XjjjYN0CL6tW7cO9t9++20r/GLyfOedd9r7chIhmL9169aZp59+2gwbNkwCcEBNEREQAREQgagSkBOsqLaMyiUCIiACIlDWBF566SXD8kQ/+9nPYoRfB2Xw4MF2rq7bd1sEWsyVEZrjQ506dQLhFiE5nYAGmnDCCScEwq9/3QEHHGB3MY9esmSJf0pxERABERABEYgcAWmAI9ckKpAIiIAIiIAImMAxFY6mEgXm3m622WZm6tSpMaeZt+vm7i5btsxMnjzZmjkzX/jjjz+22tyYC2rYwXSagDA+ZsyYaqlxjuXmGKNZ7tmzZ7U0OiACIiACIiACUSEgATgqLaFyiIAIiIAIiIBHYNasWXYP0+NkAUE3XgAmLWbQmE+//vrr1hzaXd+iRQurAf7hhx/coZRbzLARogn33HNPyrSc/PHHH2tMowQiIAIiIAIiUEgCEoALSV/3FgEREAEREIEkBCoqKuwZ33tzfNLly5fHHzIsmYQHaAJzhXfeeWfTtWtXOye4S5cu5tprrzXvvvuucflXy8A7gMm0CyeffHKNyx0xf1hBBERABERABKJMQAJwlFtHZRMBERABEShbAqzZyxJHeFtOFr7//vtqpx544AF77PDDDzcXXHBBtfNLly6tdizZAdYOxoM0c3vxDH3ooYcmS6rjIiACIiACIlAUBDYM7RZFcVVIERABERABESgPAmhrCSNGjDBr1qypVumJEyeaeAEYj8xuzu6AAQOqXYM2GaGawNzddIIrR6I1gLkec+vDDjvMHH/88TFrDaeTt9KIgAiIgAiIQL4JSADON3HdTwREQAREQATSIHDIIYcYNLDMw3VaXXcZ83ITzcnFZLlVq1Y22XvvveeS2+3KlSvNddddZ9jGB9b7dWv+zps3L+b0KaecYvc//fTTavON0Sbfcccddp7wLrvsYp1hxVysHREQAREQARGIGIG6v/vd766OWJlUHBEQAREQAREoewINGjSwZsfvv/++9dyMAIrG96OPPjJ33XWXmTt3rkE7i8C6//77W4/QQFu0aJH57LPPrPdntLM4vMIh1t13322++eYbs8MOOxgcbC1evNgKvazli+A8btw4mz+eoidNmmTX9G3YsKHp0KGD+fbbb62m99VXXzVz5syxZtmsJ8y6wF999ZVNc9VVVxnKrCACIiACIiACUSYgATjKraOyiYAIiIAIlDUBnFgh5I4ePdoKoZ988okVbll26JZbbrGCLEKuLwD36tXLCqlffvmlYVkili6aNm2azYf1gfv27WuXQ8J79MyZM82RRx5pGSO8ImwjGCPUDho0yDRt2tSe22OPPQzC8NixY80XX3xhPvzwQ2tKzdJIRx99tLn00kvtXOGybixVXgREQAREoCgIVFSOHKc3CagoqqNCioAIiIAIiEDpEcDbM1pZNMDdu3e3wqzvoTlRjZkLjHDMesGszcvWBeb/Mod44403Nu3bt3eHDfdhvWDStm3bNjjuIpg8s64wGmHMs3v06JEwnUuvrQiIgAiIgAhEjYAE4Ki1iMojAiIgAiIgAiIgAiIgAiIgAiKQEwJygpUTrMpUBERABERABERABERABERABEQgagQkAEetRVQeERABERABERABERABERABERCBnBCQAJwTrMpUBERABERABERABERABERABEQgagQkAEetRVQeERABERABERABERABERABERCBnBCQAJwTrMpUBERABERABERABERABERABEQgagQkAEetRVQeERABERABERABERABERABERCBnBCQAJwTrMpUBERABERABERABERABERABEQgagQkAEetRVQeERABERABERABERABERABERCBnBCQAJwTrMpUBERABERABERABERABERABEQgagQkAEetRVQeERABERABERABERABERABERCBnBCQAJwTrMpUBERABERABERABERABERABEQgagQkAEetRVQeERABERABERABERABERABERCBnBD4f92rim5P/DSYAAAAAElFTkSuQmCC" alt /></p>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA8AAAAHgCAYAAABq5QSEAAAEDWlDQ1BJQ0MgUHJvZmlsZQAAOI2NVV1oHFUUPrtzZyMkzlNsNIV0qD8NJQ2TVjShtLp/3d02bpZJNtoi6GT27s6Yyc44M7v9oU9FUHwx6psUxL+3gCAo9Q/bPrQvlQol2tQgKD60+INQ6Ium65k7M5lpurHeZe58853vnnvuuWfvBei5qliWkRQBFpquLRcy4nOHj4g9K5CEh6AXBqFXUR0rXalMAjZPC3e1W99Dwntf2dXd/p+tt0YdFSBxH2Kz5qgLiI8B8KdVy3YBevqRHz/qWh72Yui3MUDEL3q44WPXw3M+fo1pZuQs4tOIBVVTaoiXEI/MxfhGDPsxsNZfoE1q66ro5aJim3XdoLFw72H+n23BaIXzbcOnz5mfPoTvYVz7KzUl5+FRxEuqkp9G/Ajia219thzg25abkRE/BpDc3pqvphHvRFys2weqvp+krbWKIX7nhDbzLOItiM8358pTwdirqpPFnMF2xLc1WvLyOwTAibpbmvHHcvttU57y5+XqNZrLe3lE/Pq8eUj2fXKfOe3pfOjzhJYtB/yll5SDFcSDiH+hRkH25+L+sdxKEAMZahrlSX8ukqMOWy/jXW2m6M9LDBc31B9LFuv6gVKg/0Szi3KAr1kGq1GMjU/aLbnq6/lRxc4XfJ98hTargX++DbMJBSiYMIe9Ck1YAxFkKEAG3xbYaKmDDgYyFK0UGYpfoWYXG+fAPPI6tJnNwb7ClP7IyF+D+bjOtCpkhz6CFrIa/I6sFtNl8auFXGMTP34sNwI/JhkgEtmDz14ySfaRcTIBInmKPE32kxyyE2Tv+thKbEVePDfW/byMM1Kmm0XdObS7oGD/MypMXFPXrCwOtoYjyyn7BV29/MZfsVzpLDdRtuIZnbpXzvlf+ev8MvYr/Gqk4H/kV/G3csdazLuyTMPsbFhzd1UabQbjFvDRmcWJxR3zcfHkVw9GfpbJmeev9F08WW8uDkaslwX6avlWGU6NRKz0g/SHtCy9J30o/ca9zX3Kfc19zn3BXQKRO8ud477hLnAfc1/G9mrzGlrfexZ5GLdn6ZZrrEohI2wVHhZywjbhUWEy8icMCGNCUdiBlq3r+xafL549HQ5jH+an+1y+LlYBifuxAvRN/lVVVOlwlCkdVm9NOL5BE4wkQ2SMlDZU97hX86EilU/lUmkQUztTE6mx1EEPh7OmdqBtAvv8HdWpbrJS6tJj3n0CWdM6busNzRV3S9KTYhqvNiqWmuroiKgYhshMjmhTh9ptWhsF7970j/SbMrsPE1suR5z7DMC+P/Hs+y7ijrQAlhyAgccjbhjPygfeBTjzhNqy28EdkUh8C+DU9+z2v/oyeH791OncxHOs5y2AtTc7nb/f73TWPkD/qwBnjX8BoJ98VVBg/m8AAEAASURBVHgB7N0JmBxV2fbxZzJbkpkQQhKybyQhJmwBXEAUIoIoIoiogICAgLhFICLihwqvGyBI2FF82VEWAwKCIBBEJBDgZRHDErIvJIGQTZKZbDPzzV3DqZzp6ZmpXqe763+uK+nq6qpTdX5V3VNPnaXK3nvvvSYjIYAAAggggAACCCCAAAIIIFDiAt1KvHwUDwEEEEAAAQQQQAABBBBAAIFAgACYEwEBBBBAAAEEEEAAAQQQQCAWAgTAsTjMFBIBBBBAAAEEEEAAAQQQQIAAmHMAAQQQQAABBBBAAAEEEEAgFgIEwLE4zBQSAQQQQAABBBBAAAEEEECAAJhzAAEEEEAAAQQQQAABBBBAIBYCBMCxOMwUEgEEEEAAAQQQQAABBBBAgACYcwABBBBAAAEEEEAAAQQQQCAWAgTAsTjMFBIBBBBAAAEEEEAAAQQQQIAAmHMAAQQQQAABBBBAAAEEEEAgFgIEwLE4zBQSAQQQQAABBBBAAAEEEECAAJhzAAEEEEAAAQQQQAABBBBAIBYCBMCxOMwUEgEEEEAA